From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dani Moncayo Newsgroups: gmane.emacs.devel Subject: Re: Building Emacs from a new MinGW environment Date: Sun, 10 Nov 2013 17:32:56 +0100 Message-ID: References: <83sixwfdjk.fsf@gnu.org> <834n9nhhp6.fsf@gnu.org> <83ppsbfoe7.fsf@gnu.org> <83mwnffkom.fsf@gnu.org> <83k3ijfhk0.fsf@gnu.org> <83hadnf7gs.fsf@gnu.org> <83hadmqvql.fsf@gnu.org> <83txhkpszv.fsf@gnu.org> <83pps8pnc9.fsf@gnu.org> <83ob7splia.fsf@gnu.org> <83k3ifq5o5.fsf@gnu.org> <83d2o7q28r.fsf@gnu.org> <8338p3pded.fsf@gnu.org> <83r4cmo9m2.fsf@gnu.org> <83bo3pmc8b.fsf@gnu.org> <8361txm9r1.fsf@gnu.org> <834n9hm87s.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a1135e318fc204104ead52a7e X-Trace: ger.gmane.org 1384101185 7664 80.91.229.3 (10 Nov 2013 16:33:05 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 10 Nov 2013 16:33:05 +0000 (UTC) To: Emacs development discussions Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Nov 10 17:33:11 2013 Return-path: Envelope-to: ged-emacs-devel@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 1VfXwj-0001lO-VE for ged-emacs-devel@m.gmane.org; Sun, 10 Nov 2013 17:33:10 +0100 Original-Received: from localhost ([::1]:60838 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VfXwj-00067O-Hc for ged-emacs-devel@m.gmane.org; Sun, 10 Nov 2013 11:33:09 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:53842) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VfXwf-00067I-9H for emacs-devel@gnu.org; Sun, 10 Nov 2013 11:33:06 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VfXwZ-0004E4-27 for emacs-devel@gnu.org; Sun, 10 Nov 2013 11:33:05 -0500 Original-Received: from mail-la0-x229.google.com ([2a00:1450:4010:c03::229]:50889) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VfXwY-0004Dq-Lm for emacs-devel@gnu.org; Sun, 10 Nov 2013 11:32:58 -0500 Original-Received: by mail-la0-f41.google.com with SMTP id ea20so3341250lab.28 for ; Sun, 10 Nov 2013 08:32:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=ZqcS9RYceJDkiNBu5W5c/mvXjf27Lz7eQJlnHWEzQhk=; b=FMyELU+0dD/ECWUIvKH/T7IGzpeY9yzpCXZCXY1hxnaZSfako2sIAynFehcCStv3uN tOzjfhsJ7LMZtWEscR8tkTYWDIifjcUjUhQ/5rMgH1UNfvB3mGdtyx/ZDcfNXqCZqZFU juw2wo032b6LRPMr06vPGkl6kBVqIZkzbcjAWlIqTtF9tHvA8AHrUe8QQk5ODjMkvBbD th7uXm8ucKnnBZOKHdGU1/HIeiHHS1hzA6OqMVpYFLZ9vfLzllSVmBWMkIDydShuJIx/ t0uRkJlREL9LhU8RXm6XHFHsEF35Il/4NCGWMRiS7UUnHf38jr8mP4kmeAA3NeAWqtI4 RTwg== X-Received: by 10.152.216.167 with SMTP id or7mr19352956lac.10.1384101176935; Sun, 10 Nov 2013 08:32:56 -0800 (PST) Original-Received: by 10.114.176.231 with HTTP; Sun, 10 Nov 2013 08:32:56 -0800 (PST) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:4010:c03::229 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:165116 Archived-At: --001a1135e318fc204104ead52a7e Content-Type: text/plain; charset=ISO-8859-1 >>> A more ambitious goal, IMO, would be to understand what is the problem >>> with doing every conversion of MSYS paths to native w32 format with >>> "pwd -W", so that the pattern-matching technique could be entirely >>> replaced with that simpler and more elegant one. >> >> That's a possibility, but note that "pwd -W" requires that you cd into >> the directory first, which might be a problem in some rare cases. >> >> Also msys_lisppath_to_w32 works on PATH-style directory lists, not on >> single directories, and some of those directories might not exist, or >> include %emacs_dir%, which will cause pwd to fail. >> >> If these difficulties can be overcome, I have nothing against using >> "pwd -W". > > I'm attaching a patch that works for me, and I think fulfills the > above requirements. > > It makes _all_ translations of paths to native MS-Windows format using > the "pwd -W" feature of the MSYS shell, which I think is the only > reliable way of doing such translations. I'm attaching a second version of the patch, with documentation improvements and minor fixes to the 'msys-to-w32' script. -- Dani Moncayo --001a1135e318fc204104ead52a7e Content-Type: text/plain; charset=US-ASCII; name="msys-to-w32.v2.diff" Content-Disposition: attachment; filename="msys-to-w32.v2.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hnui2pfy1 ZGlmZiAtLWdpdCBhL01ha2VmaWxlLmluIGIvTWFrZWZpbGUuaW4KaW5kZXggOTg0ZGNlYS4uZWQz YWE4YiAxMDA2NDQKLS0tIGEvTWFrZWZpbGUuaW4KKysrIGIvTWFrZWZpbGUuaW4KQEAgLTMxNywy MiArMzE3LDkgQEAgZXBhdGhzLWZvcmNlOiBGUkMKIAkgIC1lICdzO1woIy4qUEFUSF9ET0NcKS4q JCQ7XDEgIiR7ZXRjZG9jZGlyfSI7JykgJiYJCVwKIAkke3NyY2Rpcn0vYnVpbGQtYXV4L21vdmUt aWYtY2hhbmdlIGVwYXRocy5oLiQkJCQgc3JjL2VwYXRocy5oCiAKLSMgQ29udmVydCBNU1lTLXN0 eWxlIC94L2ZvbyBvciBXaW5kb3dzLXN0eWxlIHg6XGZvbyBmaWxlIG5hbWVzCi0jIGludG8geDov Zm9vIHRoYXQgV2luZG93cyBjYW4gZ3Jvay4KLW1zeXNfdG9fdzMyPXNlZCAtZSAncyxcXFxcLC8s ZycgLWUgJ3MsXi9cKFtBLVphLXpdXCkvLFwxOi8sJwotCi0jIFRyYW5zZm9ybSBkaXJlY3Rvcnkg c2VhcmNoIHBhdGggYW5kIGl0cyBjb21wb25lbnRzLiAgT3JpZ2luYWwgY2FuCi0jIGJlIE1TWVMg b3IgV2luZG93cyBzdHlsZS4gIFNldCBwYXRoIHNlcGFyYXRvciB0byAiOyIsIGRpcmVjdG9yeQot IyBzZXBhcmF0b3IgdG8gIi8iIGFuZCB0cmFuc2Zvcm0gTVNZUy1zdHlsZSAiL2MvIiB0byAiYzov Ii4KLSMgUmVtb3ZlIGVtcHR5IHBhdGggY29tcG9uZW50cyBhbmQgZXNjYXBlIHNlbWljb2xvbnMu Ci1tc3lzX2xpc3BwYXRoX3RvX3czMj1zZWQgLWUgJ3MsXFxcXCwvLGcnIAkJCVwKLQktZSAncyxc KF5cfFs6O11cKVwoW0EtWmEtel1cKTovLFwxL1wyLyxnJwkJXAotCS1lICdzLzovOy9nJyAtZSAn cyxcKF5cfDtcKS9cKFtBLVphLXpdXCkvLFwxXDI6LyxnJwlcCi0JLWUgJ3MvO1wrLzsvZycgLWUg J3MvXjsvLycgLWUgJ3MvOyQkLy8nIC1lICdzLzsvXFxcXDsvZycKLQotIyBSZXBsYWNlICIke3By ZWZpeH0iIHdpdGggJyVlbWFjc19kaXIlJyAod2hpY2ggZXhwYW5kcyB0byBpbnN0YWxsCisjIFJl cGxhY2UgIiR7dzMycHJlZml4fSIgd2l0aCAnJWVtYWNzX2RpciUnICh3aGljaCBleHBhbmRzIHRv IGluc3RhbGwKICMgZGlyZWN0b3J5IGF0IHJ1bnRpbWUpLgotbXN5c19wcmVmaXhfc3Vic3Q9c2Vk IC1lICdzIVwoXlx8O1wpJyIkJHtwcmVmaXhwYXR0ZXJufSInXChbOy9dXHwkJFwpIVwxJWVtYWNz X2RpciVcMiFnJworbXN5c193MzJwcmVmaXhfc3Vic3Q9c2VkIC1lICdzIVwoXlx8O1wpJyIkJHt3 MzJwcmVmaXhwYXR0ZXJufSInXChbOy9dXHwkJFwpIVwxJWVtYWNzX2RpciVcMiFnJwogCiAjIFF1 b3RlIFNlZCBzcGVjaWFsIGNoYXJhY3RlcnMgKGV4Y2VwdCBiYWNrc2xhc2ggYW5kIG5ld2xpbmUp IHdpdGgKICMgYSBkb3VibGUgYmFja3NsYXNoLgpAQCAtMzQwLDIyICszMjcsMjEgQEAgbXN5c19z ZWRfc2hfZXNjYXBlPXNlZCAtZSAncy9bXTskJCouXltdL1xcXFwmL2cnCiAKICMgVGhlIHczMiBi dWlsZCBuZWVkcyBhIHNsaWdodGx5IGRpZmZlcmVudCBlZGl0aW5nLCBhbmQgaXQgdXNlcwogIyBu dC9lcGF0aHMubnQgYXMgdGhlIHRlbXBsYXRlLgorIwogIyBVc2UgdGhlIHZhbHVlIG9mICR7bG9j YWxsaXNwcGF0aH0gc3VwcGxpZWQgYnkgYGNvbmZpZ3VyZScsCiAjIHRvIHN1cHBvcnQgdGhlIC0t ZW5hYmxlLWxvY2FsbGlzcHBhdGggYXJndW1lbnQuCiAjCi0jIFdoZW4gYnVpbGRpbmcgd2l0aCBN aW5HVyBpbnNpZGUgdGhlIE1TWVMgdHJlZSwgJ3B3ZCcgcHJvZHVjZXMgZGlyZWN0b3JpZXMKLSMg cmVsYXRpdmUgdG8gdGhlIHJvb3Qgb2YgdGhlIE1TWVMgdHJlZSwgZS5nLiAnL2hvbWUvdXNlci9m b28nIGluc3RlYWQgb2YKLSMgJy9kL01TWVMvaG9tZS91c2VyL2ZvbycuICBJZiBzdWNoIGEgdmFs dWUgb2Ygc3JjZGlyIGlzIHdyaXR0ZW4gdG8KLSMgc3JjL2VwYXRocy5oLCB0aGF0IGNhdXNlcyB0 ZW1hY3MgdG8gZmFpbCwgYmVjYXVzZSwgYmVpbmcgYSBNaW5HVwotIyBwcm9ncmFtIHRoYXQga25v d3Mgbm90aGluZyBvZiBNU1lTIHJvb3Qgc3Vic3RpdHV0aW9uLCBpdCBjYW5ub3QgZmluZAotIyB0 aGUgZGF0YSBkaXJlY3RvcnkuICAicHdkIC1XIiBwcm9kdWNlcyBXaW5kb3dzLXN0eWxlICdkOi9m b28vYmFyJwotIyBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZXMsIHNvIHdlIHVzZSBpdCBoZXJlIHRv IGNvdW50ZXJtYW5kIHRoYXQgbG9zc2FnZS4KKyMgSW4gdGhpcyBjYXNlLCB0aGUgcGF0aHMgd3Jp dHRlbiB0byAnc3JjL2VwYXRocy5oJyBtdXN0IGJlIGluIG5hdGl2ZQorIyBNUy1XaW5kb3dzIGZv cm1hdCAoZS5nLiAnYzovZm9vL2JhcicpLCBiZWNhdXNlIHRlbWFjcyBpcyBhIE1pbkdXCisjIHBy b2dyYW0gdGhhdCBkb2Vzbid0IHN1cHBvcnQgTVNZUy1zdHlsZSBwYXRocyAoZS5nLiAnL2MvZm9v L2Jhcicgb3IKKyMgJy9mb28vYmFyJykuCiBlcGF0aHMtZm9yY2UtdzMyOiBGUkMKLQlAKHczMnNy Y2Rpcj1gY2QgIiR7c3JjZGlyfSI7IHB3ZCAtVyB8IHNlZCAtZSAncyxeXChbQS1aYS16XVwpOiwv XDEsJyB8ICR7bXN5c190b193MzJ9YCA7IAlcCi0JICBwcmVmaXhwYXR0ZXJuPWBlY2hvICcke3By ZWZpeH0nIHwgJHttc3lzX3RvX3czMn0gfCAke21zeXNfc2VkX3NoX2VzY2FwZX1gIDsgXAotCSAg bG9jYWxsaXNwcGF0aD1gZWNobyAnJHtsb2NhbGxpc3BwYXRofScgfCAke21zeXNfbGlzcHBhdGhf dG9fdzMyfSB8ICR7bXN5c19wcmVmaXhfc3Vic3R9YCA7IFwKKwlAKHczMnNyY2Rpcj1gJHtzcmNk aXJ9L2J1aWxkLWF1eC9tc3lzLXRvLXczMiAiJHtzcmNkaXJ9ImA7IFwKKwkgIHczMnByZWZpeD1g JHtzcmNkaXJ9L2J1aWxkLWF1eC9tc3lzLXRvLXczMiAiJHtwcmVmaXh9IiBOYDsgXAorCSAgdzMy cHJlZml4cGF0dGVybj1gZWNobyAiJHt3MzJwcmVmaXh9IiB8ICR7bXN5c19zZWRfc2hfZXNjYXBl fWAgOyBcCisJICB3MzJsb2NhbGxpc3BwYXRoPWAke3NyY2Rpcn0vYnVpbGQtYXV4L21zeXMtdG8t dzMyICIke2xvY2FsbGlzcHBhdGh9IiBOICI6IiAiXFw7IiB8ICR7bXN5c193MzJwcmVmaXhfc3Vi c3R9YCA7IFwKIAkgIHNlZCA8ICR7c3JjZGlyfS9udC9lcGF0aHMubnQgPiBlcGF0aHMuaC4kJCQk CQlcCi0JICAtZSAncztcKCMuKlBBVEhfU0lURUxPQURTRUFSQ0hcKS4qJCQ7XDEgIiciJCR7bG9j YWxsaXNwcGF0aH0iJyI7JyBcCisJICAtZSAncztcKCMuKlBBVEhfU0lURUxPQURTRUFSQ0hcKS4q JCQ7XDEgIiciJCR7dzMybG9jYWxsaXNwcGF0aH0iJyI7JyBcCiAJICAtZSAnL14uKiMvcy9AVkVS QC8ke3ZlcnNpb259L2cnIAkJCVwKIAkgIC1lICcvXi4qIy9zL0BDRkdALyR7Y29uZmlndXJhdGlv bn0vZycgCQlcCiAJICAtZSAiL14uKiMvc3xAU1JDQHwkJHt3MzJzcmNkaXJ9fGciKSAmJgkJXApk aWZmIC0tZ2l0IGEvYnVpbGQtYXV4L21zeXMtdG8tdzMyIGIvYnVpbGQtYXV4L21zeXMtdG8tdzMy Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzMTMwYmYKLS0tIC9kZXYvbnVs bAorKysgYi9idWlsZC1hdXgvbXN5cy10by13MzIKQEAgLTAsMCArMSwxODggQEAKKyMhL2Jpbi9z aAorIyBUYWtlIGEgbGlzdCBvZiBNU1lTLWNvbXBhdGlibGUgcGF0aHMgYW5kIGNvbnZlcnQgdGhl bSB0byBuYXRpdmUKKyMgTVMtV2luZG93cyBmb3JtYXQuCisjIFN0YXR1cyBpcyB6ZXJvIGlmIHN1 Y2Nlc3NmdWwsIG5vbnplcm8gb3RoZXJ3aXNlLgorCitWRVJTSU9OPScyMDEzLTExLTEwIDE0OjQ4 JzsgIyBVVEMKKyMgVGhlIGRlZmluaXRpb24gYWJvdmUgbXVzdCBsaWUgd2l0aGluIHRoZSBmaXJz dCA4IGxpbmVzIGluIG9yZGVyCisjIGZvciB0aGUgRW1hY3MgdGltZS1zdGFtcCB3cml0ZSBob29r IChhdCBlbmQpIHRvIHVwZGF0ZSBpdC4KKyMgSWYgeW91IGNoYW5nZSB0aGlzIGZpbGUgd2l0aCBF bWFjcywgcGxlYXNlIGxldCB0aGUgd3JpdGUgaG9vaworIyBkbyBpdHMgam9iLiAgT3RoZXJ3aXNl LCB1cGRhdGUgdGhpcyBzdHJpbmcgbWFudWFsbHkuCisKKyMgQ29weXJpZ2h0IChDKSAyMDAyLTIw MTMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisj IFRha2Ugb25seSB0aGUgYmFzZW5hbWUgZnJvbSB0aGUgZnVsbCBwYXRobmFtZQorbWU9JHswLy8q XC8vfQorCit1c2FnZT0idXNhZ2U6ICR7bWV9IFBBVEhMSVNUIFtNVVNURVhJU1RdIFtTRVBBUkFU T1IgW1NFUEFSQVRPUjJdXSIKKworaGVscD0iJHVzYWdlCisgIG9yOiAgJHttZX0gT1BUSU9OCisK K0NvbnZlcnQgTVNZUy1jb21wYXRpYmxlIHBhdGhzIHRvIE1TLVdpbmRvd3MgbmF0aXZlIGZvcm1h dC4KKworUEFUSExJU1Qgc2hvdWxkIGJlIGEgbGlzdCBvZiBwYXRocyBzZXBhcmF0ZWQgYnkgU0VQ QVJBVE9SLiAgVGhpcyBsaXN0Cit3aWxsIGJlIHdyaXR0ZW4gdG8gdGhlIHN0YW5kYXJkIG91dHB1 dCBhZnRlciBwZXJmb3JtaW5nIHRoZSBmb2xsb3dpbmcKK3RyYW5zZm9ybWF0aW9uczoKKzEuIERp c2NhcmQgZW1wdHkgcGF0aHMuCisyLiBSZXBsYWNlIGJhY2tzbGFzaGVzIHdpdGggZm9yd2FyZCBz bGFzaGVzLgorMy4gUmVwbGFjZSB0d28gY29uc2VjdXRpdmUgc2xhc2hlcyB3aXRoIHNpbmdsZSBv bmVzLgorNC4gVHJhbnNsYXRlIGVhY2ggcGF0aCB0byBXaW5kb3dzLW5hdGl2ZSBmb3JtYXQuICBU aGUgdHJhbnNsYXRlZCBwYXRoCisgICB3aWxsIG5vdCBlbmQgd2l0aCBhIHNsYXNoLCBleGNlcHQg Zm9yIHJvb3QgZGlyZWN0b3JpZXMgKGUuZy4gJ2M6LycpLgorNS4gRXNjYXBlIHdpdGggYmFja3Ns YXNoZXMgZXZlcnkgb2N1cnJlbmNlIG9mIFNFUEFSQVRPUjIgd2l0aGluIHRoZSBwYXRocy4KKzYu IENvbmNhdGVuYXRlIHRoZSB0cmFuc2xhdGVkIHBhdGhzIHdpdGggU0VQQVJBVE9SMi4KKworSWYg TVVTVEVYSVNUIGlzICdZJyBvciBub3Qgc3VwcGxpZWQsIHRoZW4gZWFjaCBwYXRoIGluIFBBVEhM SVNUIG11c3QKK2V4aXN0cy4gIE90aGVyd2lzZSwgb25seSBzb21lIHBhcnQgb2YgdGhpcyBwYXRo IGlzIHJlcXVpcmVkIHRvIGV4aXN0CisodGhhdCBwYXJ0IHdpbGwgYmUgdHJhbnNsYXRlZCBhbmQg dGhlIHJlbWFpbmRlciB3aWxsIGJlIGNvbmNhdGVuYXRlZCkuCisKK0lmIFNFUEFSQVRPUiBpcyBu b3Qgc3VwcGxpZWQsIFBBVEhMSVNUIHdpbGwgYmUgcmVnYXJkZWQgYXMgYSBzaW5nbGUKK3BhdGgu CisKK0lmIFNFUEFSQVRPUjIgaXMgbm90IHN1cHBsaWVkLCBpdCB3aWxsIHRha2UgdGhlIHNhbWUg dmFsdWUgYXMKK1NFUEFSQVRPUi4KKworT3B0aW9uczoKKyAgLS1oZWxwICAgICBkaXNwbGF5IHRo aXMgaGVscCBhbmQgZXhpdAorICAtLXZlcnNpb24gIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9u IGFuZCBleGl0CisKK1JlcG9ydCBidWdzIHRvIDxidWctZ251LWVtYWNzQGdudS5vcmc+LiIKKwor dmVyc2lvbj1gZXhwciAiJFZFUlNJT04iIDogJ1woW14gXSpcKSdgCit2ZXJzaW9uPSJtc3lzLXRv LXczMiAkdmVyc2lvbgorQ29weXJpZ2h0IChDKSAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorTGljZW5zZSBHUEx2Mys6IEdOVSBHUEwgdmVyc2lvbiAzIG9yIGxhdGVyIDxodHRw Oi8vZ251Lm9yZy9saWNlbnNlcy9ncGwuaHRtbD4KK1RoaXMgaXMgZnJlZSBzb2Z0d2FyZTogeW91 IGFyZSBmcmVlIHRvIGNoYW5nZSBhbmQgcmVkaXN0cmlidXRlIGl0LgorVGhlcmUgaXMgTk8gV0FS UkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdy4iCisKK2ZvciBhcmcKK2RvCisg IGNhc2UgJGFyZyBpbgorICAgIC0taGVscCB8IC0taGVsIHwgLS1oZSB8IC0taCkKKyAgICAgIGV4 ZWMgZWNobyAiJGhlbHAiIDs7CisgICAgLS12ZXJzaW9uIHwgLS12ZXJzaW8gfCAtLXZlcnNpIHwg LS12ZXJzIHwgLS12ZXIgfCAtLXZlIHwgLS12KQorICAgICAgZXhlYyBlY2hvICIkdmVyc2lvbiIg OzsKKyAgICAtLSkKKyAgICAgIHNoaWZ0CisgICAgICBicmVhayA7OworICAgIC0qKQorICAgICAg ZWNobyAiJHttZX06IGludmFsaWQgb3B0aW9uOiAkYXJnIiA+JjIKKyAgICAgIGV4aXQgMSA7Owor ICAgICopCisgICAgICBicmVhayA7OworICBlc2FjCitkb25lCisKK3sgdGVzdCAkIyAtZ2UgMSAm JiB0ZXN0ICQjIC1sZSA0OyB9IHx8Cit7IGVjaG8gIiR7bWV9OiAkdXNhZ2UiID4mMjsgZXhpdCAx OyB9CisKKyMgQXJndW1lbnRzCitwYXRobGlzdD0iJDEiCittdXN0ZXhpc3Q9IiR7MjotWX0iCitz ZXBhcmF0b3I9IiQzIgorc2VwYXJhdG9yMj0iJHs0Oi0ke3NlcGFyYXRvcn19IgorCisjIFNwbGl0 IHBhdGhsaXN0IGludG8gaXRzIHBhdGggY29tcG9uZW50cworaWYgdGVzdCAtbiAiJHNlcGFyYXRv ciIKK3RoZW4KKyAgICBJRlM9JHtzZXBhcmF0b3J9IHBhdGhhcnJheT0oICRwYXRobGlzdCApCitl bHNlCisgICAgcGF0aGFycmF5PSggIiRwYXRobGlzdCIgKQorZmkKKworIyBPdXRwdXQgcGF0aGxp c3QKK3BhdGhsaXN0Mj0iIgorCitmb3IgcCBpbiAiJHtwYXRoYXJyYXlbQF19IgorZG8KKyAgICAj IFNraXAgZW1wdHkgcGF0aHMKKyAgICB0ZXN0ICIkcCIgPSAiIiAmJiBjb250aW51ZQorCisgICAg IyBSZXBsYWNlICdcJyB3aXRoICcvJyBhbmQgJy8vJyB3aXRoICcvJworICAgIHA9IiR7cC8vXFwv L30iCisgICAgcD0iJHtwLy9cL1wvLy99IgorCisgICAgaWYgdGVzdCAtZCAiJHAiCisgICAgdGhl bgorCSMgVGhlIHBhdGggZXhpc3RzLCBzbyBqdXN0IHRyYW5zbGF0ZSBpdAorCXczMnA9YGNkICIk cCIgJiYgcHdkIC1XYAorICAgIGVsc2UKKwkjIFRoZSBwYXRoIGRvZXMgbm90IGV4aXN0cy4gIFNv LCB0cnkgdG8gZ3Vlc3MgdGhlCisJIyBXaW5kb3dzLW5hdGl2ZSB0cmFuc2xhdGlvbiwgYnkgbG9v a2luZyBmb3IgdGhlIGRlZXBlc3QKKwkjIGV4aXN0aW5nIGRpcmVjdG9yeSBpbiB0aGlzIHBhdGgs IGFuZCB0aGVuIHRyYW5zbGF0aW5nIHRoZQorCSMgZXhpc3RpbmcgcGFydCBhbmQgY29uY2F0ZW5h dGluZyB0aGUgcmVtYWluZGVyLgorCisJdGVzdCAiJHttdXN0ZXhpc3R9IiA9ICJZIiAmJgorCXsg ZWNobyAiJHttZX06IGludmFsaWQgcGF0aDogJHAiID4mMjsgZXhpdCAxOyB9CisKKwlwMT0kcAor CUlGUz0vIHBjb21wb25lbnRzPSggJHAgKQorCisJZm9yICgoIGk9JHsjcGNvbXBvbmVudHNbQF19 LTEgOyBpPj0wIDsgaS0tICkpCisJZG8KKworCSAgICBpZiB0ZXN0ICIke3Bjb21wb25lbnRzW2ld fSIgPSAiIgorCSAgICB0aGVuCisJCSMgVGhlIHBhdGggY29tcG9uZW50IGlzIGVtcHR5LiAgVGhp cyBjYW4gb25seSBtZWFuCisJCSMgdGhhdCB0aGUgcGF0aCBzdGFydHMgd2l0aCAiLyIgYW5kIGFs bCBjb21wb25lbnRzCisJCSMgaGF2ZSBiZWVuIHN0cmlwcGVkIG91dCBhbHJlYWR5LiAgU28gaW4g dGhpcyBjYXNlIHdlCisJCSMgd2FudCB0byB0ZXN0IHdpdGggdGhlIE1TWVMgcm9vdCBkaXJlY3Rv cnkKKwkJcDE9Ii8iCisJICAgIGVsc2UKKwkJcDE9IiR7cDElL30iCisJCXAxPSIke3AxJSR7cGNv bXBvbmVudHNbaV19fSIKKwkgICAgZmkKKworCSAgICBpZiB0ZXN0IC1kICIke3AxfSIKKwkgICAg dGhlbgorCisJCSMgRXhpc3RpbmcgcGF0aCBmb3VuZAorCisJCSMgVHJhbnNsYXRlIHRoZSBleGlz dGluZyBwYXJ0IGFuZCBjb25jYXRlbmF0ZSB0aGUKKwkJIyByZW1haW5kZXIgKGVuc3VyaW5nIHRo YXQgb25seSBvbmUgc2xhc2ggaXMgdXNlZCBpbgorCQkjIHRoZSBqb2luLCBhbmQgbm8gdHJhaWxp bmcgc2xhc2ggaXMgbGVmdCkKKwkJdzMycDE9YGNkICIke3AxfSIgJiYgcHdkIC1XYAorCQlyZW1h aW5kZXI9IiR7cCMke3AxfX0iCisJCXJlbWFpbmRlcj0iJHtyZW1haW5kZXIjL30iCisJCXJlbWFp bmRlcj0iJHtyZW1haW5kZXIlL30iCisJCXczMnA9IiR7dzMycDElL30vJHtyZW1haW5kZXJ9Igor CisJCWJyZWFrCisJICAgIGZpCisKKwlkb25lCisKKwkjIElmIG5vIGV4aXN0aW5nIGRpcmVjdG9y eSB3YXMgZm91bmQsIGVycm9yIG91dAorCXRlc3QgLWUgIiR7cDF9IiB8fAorCXsgZWNobyAiJHtt ZX06IGludmFsaWQgcGF0aDogJHtwfSIgPiYyOyBleGl0IDE7IH0KKyAgICBmaQorCisgICAgIyBD b25jYXRlbmF0ZSB0aGUgdHJhbnNsYXRlZCBwYXRoIHRvIHRoZSB0cmFuc2xhdGVkIHBhdGhsaXN0 CisgICAgdGVzdCAiJHtwYXRobGlzdDJ9IiA9ICIiIHx8IHBhdGhsaXN0Mj0iJHtwYXRobGlzdDJ9 JHtzZXBhcmF0b3IyfSIKKyAgICBwYXRobGlzdDI9IiR7cGF0aGxpc3QyfSR7dzMycC8vJHtzZXBh cmF0b3IyfS9cXCR7c2VwYXJhdG9yMn19IgorCitkb25lCisKKyMgV3JpdGUgdGhlIHRyYW5zbGF0 ZWQgcGF0aGxpc3QgdG8gdGhlIHN0YW5kYXJkIG91dHB1dAorcHJpbnRmICIke3BhdGhsaXN0Mn0i CisKKyMjIExvY2FsIFZhcmlhYmxlczoKKyMjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1m dW5jdGlvbnMgJ3RpbWUtc3RhbXApCisjIyB0aW1lLXN0YW1wLXN0YXJ0OiAiVkVSU0lPTj0nIgor IyMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkICUwMkg6JTAyTSIKKyMjIHRpbWUt c3RhbXAtdGltZS16b25lOiAiVVRDIgorIyMgdGltZS1zdGFtcC1lbmQ6ICInOyAjIFVUQyIKKyMj IEVuZDoK --001a1135e318fc204104ead52a7e--