Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:56245 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 53937 invoked from network); 10 Nov 2011 19:44:18 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 10 Nov 2011 19:44:18 -0000 Authentication-Results: pb1.pair.com smtp.mail=ralph@ralphschindler.com; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=ralph@ralphschindler.com; sender-id=unknown Received-SPF: error (pb1.pair.com: domain ralphschindler.com from 209.85.213.42 cause and error) X-PHP-List-Original-Sender: ralph@ralphschindler.com X-Host-Fingerprint: 209.85.213.42 mail-yw0-f42.google.com Received: from [209.85.213.42] ([209.85.213.42:55638] helo=mail-yw0-f42.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 3B/3F-01205-1992CBE4 for ; Thu, 10 Nov 2011 14:44:17 -0500 Received: by ywm19 with SMTP id 19so1831767ywm.29 for ; Thu, 10 Nov 2011 11:44:14 -0800 (PST) Received: by 10.101.11.18 with SMTP id o18mr3970525ani.86.1320954252695; Thu, 10 Nov 2011 11:44:12 -0800 (PST) Received: from ralph-mac.local (ip174-73-14-247.no.no.cox.net. [174.73.14.247]) by mx.google.com with ESMTPS id 40sm26597693anu.17.2011.11.10.11.44.11 (version=SSLv3 cipher=OTHER); Thu, 10 Nov 2011 11:44:12 -0800 (PST) Message-ID: <4EBC298A.3020103@ralphschindler.com> Date: Thu, 10 Nov 2011 13:44:10 -0600 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1 MIME-Version: 1.0 To: internals@lists.php.net Content-Type: multipart/mixed; boundary="------------090101070404040800050207" Subject: Patch for Bug #60164 / Phar __HALT_COMPILER() scanning issue From: ralph@ralphschindler.com (Ralph Schindler) --------------090101070404040800050207 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hey all, I've spent a bunch of time tracking down this issue (which was intermittent at best) and have identified the problem and have a patch for the solution. Details here: https://bugs.php.net/bug.php?id=60164 The attached patch is against trunk, PHP_5_4, & PHP_5_3. Seeing as though I've supplied patches in the past (see release notes), that I've spend significant time on understanding the Phar extension, and am able to fix issues there now, I'd like to be the one to commit this patch if internals is in agreement. So, how about it? -ralph --------------090101070404040800050207 Content-Type: text/plain; name="bug60164.patch.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="bug60164.patch.txt" SW5kZXg6IHRydW5rL2V4dC9waGFyL3Rlc3RzL2ZpbGVzL3N0dWJvZmxlbmd0aDEwNDEucGhh ci5pbmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0gdHJ1bmsvZXh0L3BoYXIvdGVzdHMvZmlsZXMvc3R1 Ym9mbGVuZ3RoMTA0MS5waGFyLmluYwkocmV2aXNpb24gMCkKKysrIHRydW5rL2V4dC9waGFy L3Rlc3RzL2ZpbGVzL3N0dWJvZmxlbmd0aDEwNDEucGhhci5pbmMJKHJldmlzaW9uIDApCkBA IC0wLDAgKzEsMjEgQEAKKzw/cGhwCisKK0B1bmxpbmsoX19ESVJfXyAuICcvc3R1Ym9mbGVu Z3RoMTA0MS5waGFyJyk7CisKKyRwaGFyID0gbmV3IFBoYXIoJy4vc3R1Ym9mbGVuZ3RoMTA0 MS5waGFyJyk7CiskcGhhclsnYS5waHAnXSA9ICdoaTEnOworJHBoYXJbJ2IucGhwJ10gPSAn aGkyJzsKKworJHBoYXItPnNldFN0dWIoJzw/cGhwCisvKioqc3R1YiBvZiBsZW5ndGggMTA0 MSBpbmNsdWRpbmcgdGhlIGhhbHQgY29tcGlsZXIqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK19fSEFMVF9DT01QSUxFUigpOycp OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IHRydW5rL2V4dC9waGFyL3Rl c3RzL2ZpbGVzL3N0dWJvZmxlbmd0aDEwNDEucGhhcgo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0cnVu ay9leHQvcGhhci90ZXN0cy9maWxlcy9zdHVib2ZsZW5ndGgxMDQxLnBoYXIJKHJldmlzaW9u IDApCisrKyB0cnVuay9leHQvcGhhci90ZXN0cy9maWxlcy9zdHVib2ZsZW5ndGgxMDQxLnBo YXIJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTQgQEAKKzw/cGhwCisvKioqc3R1YiBvZiBs ZW5ndGggMTA0MSBpbmNsdWRpbmcgdGhlIGhhbHQgY29tcGlsZXIqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK19fSEFMVF9DT01Q SUxFUigpOyA/Pg0KK1QAAAACAAAAEQAAAAEAAAAAAAAAAAAFAAAAYS5waHADAAAADxe8TgMA AABek2RctgEAAAAAAAAFAAAAYi5waHADAAAADxe8TgMAAADkwm3FtgEAAAAAAABoaTFoaTLu LBPdEaWsJ/65Zbg6zRHEsDcaEQIAAABHQk1CClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQpJbmRleDogdHJ1bmsvZXh0L3BoYXIvdGVzdHMvYnVnNjAxNjQucGhwdAo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLSB0cnVuay9leHQvcGhhci90ZXN0cy9idWc2MDE2NC5waHB0CShyZXZpc2lvbiAw KQorKysgdHJ1bmsvZXh0L3BoYXIvdGVzdHMvYnVnNjAxNjQucGhwdAkocmV2aXNpb24gMCkK QEAgLTAsMCArMSwyMSBAQAorLS1URVNULS0KK1BoYXI6IHZlcmlmeSBzdHViIG9mIHNwZWNp ZmljIGxlbmd0aCBkb2VzIG5vdCBicmVhayBfX0hBTFRfQ09NUElMRVIoKTsgc2Nhbm5pbmcg aW4gcGhwCistLVNLSVBJRi0tCis8P3BocAoraWYgKCFleHRlbnNpb25fbG9hZGVkKCJwaGFy IikpIGRpZSgic2tpcCIpOworPz4KKy0tSU5JLS0KK3BoYXIucmVxdWlyZV9oYXNoPTAKK3Bo YXIucmVhZG9ubHk9MAorLS1GSUxFLS0KKzw/cGhwCiskcGhhciA9IF9fRElSX18gLiAnL2Zp bGVzL3N0dWJvZmxlbmd0aDEwNDEucGhhcic7Citmb3JlYWNoIChuZXcgUmVjdXJzaXZlSXRl cmF0b3JJdGVyYXRvcihuZXcgUGhhcigkcGhhciwgbnVsbCwgJ3N0dWJvZmxlbmd0aDEwNDEu cGhhcicpKSBhcyAkaXRlbSkgeworICAgIHZhcl9kdW1wKCRpdGVtLT5nZXRGaWxlTmFtZSgp KTsKK30KKz8+Cis9PT1ET05FPT09CistLUVYUEVDVC0tCitzdHJpbmcoNSkgImEucGhwIgor c3RyaW5nKDUpICJiLnBocCIKKz09PURPTkU9PT0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm aWxlCkluZGV4OiB0cnVuay9leHQvcGhhci9waGFyLmMKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdHJ1 bmsvZXh0L3BoYXIvcGhhci5jCShyZXZpc2lvbiAzMTkwMDIpCisrKyB0cnVuay9leHQvcGhh ci9waGFyLmMJKHdvcmtpbmcgY29weSkKQEAgLTE1NjksNyArMTU2OSw4IEBACiAJY29uc3Qg Y2hhciB6aXBfbWFnaWNbXSA9ICJQS1x4MDNceDA0IjsKIAljb25zdCBjaGFyIGd6X21hZ2lj W10gPSAiXHgxZlx4OGJceDA4IjsKIAljb25zdCBjaGFyIGJ6X21hZ2ljW10gPSAiQlpoIjsK LQljaGFyICpwb3MsIGJ1ZmZlclsxMDI0ICsgc2l6ZW9mKHRva2VuKV0sIHRlc3QgPSAnXDAn OworCWNoYXIgKnBvcywgdGVzdCA9ICdcMCc7CisJY2hhciBidWZmZXJbMTAyNCArIHNpemVv Zih0b2tlbildOyAvKiBhIDEwMjQgYnl0ZSB3aW5kb3cgKyB0aGUgc2l6ZSBvZiB0aGUgaGFs dF9jb21waWxlciB0b2tlbiAobW92aW5nIHdpbmRvdykgKi8KIAljb25zdCBsb25nIHJlYWRz aXplID0gc2l6ZW9mKGJ1ZmZlcikgLSBzaXplb2YodG9rZW4pOwogCWNvbnN0IGxvbmcgdG9r ZW5sZW4gPSBzaXplb2YodG9rZW4pIC0gMTsKIAlsb25nIGhhbHRfb2Zmc2V0OwpAQCAtMTcx Nyw3ICsxNzE4LDcgQEAKIAkJfQogCiAJCWhhbHRfb2Zmc2V0ICs9IGdvdDsKLQkJbWVtbW92 ZShidWZmZXIsIGJ1ZmZlciArIHRva2VubGVuLCBnb3QgKyAxKTsKKwkJbWVtbW92ZShidWZm ZXIsIGJ1ZmZlciArIDEwMjQsIHRva2VubGVuKTsgLyogbW92ZSB0aGUgbWVtb3J5IGJ1ZmZl ciBieSB0aGUgc2l6ZSBvZiB0aGUgd2luZG93ICovCiAJfQogCiAJTUFQUEhBUl9BTExPQ19G QUlMKCJpbnRlcm5hbCBjb3JydXB0aW9uIG9mIHBoYXIgXCIlc1wiIChfX0hBTFRfQ09NUElM RVIoKTsgbm90IGZvdW5kKSIpCkluZGV4OiBicmFuY2hlcy9QSFBfNV8zL2V4dC9waGFyL3Rl c3RzL2ZpbGVzL3N0dWJvZmxlbmd0aDEwNDEucGhhci5pbmMKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g YnJhbmNoZXMvUEhQXzVfMy9leHQvcGhhci90ZXN0cy9maWxlcy9zdHVib2ZsZW5ndGgxMDQx LnBoYXIuaW5jCShyZXZpc2lvbiAwKQorKysgYnJhbmNoZXMvUEhQXzVfMy9leHQvcGhhci90 ZXN0cy9maWxlcy9zdHVib2ZsZW5ndGgxMDQxLnBoYXIuaW5jCShyZXZpc2lvbiAwKQpAQCAt MCwwICsxLDIxIEBACis8P3BocAorCitAdW5saW5rKF9fRElSX18gLiAnL3N0dWJvZmxlbmd0 aDEwNDEucGhhcicpOworCiskcGhhciA9IG5ldyBQaGFyKCcuL3N0dWJvZmxlbmd0aDEwNDEu cGhhcicpOworJHBoYXJbJ2EucGhwJ10gPSAnaGkxJzsKKyRwaGFyWydiLnBocCddID0gJ2hp Mic7CisKKyRwaGFyLT5zZXRTdHViKCc8P3BocAorLyoqKnN0dWIgb2YgbGVuZ3RoIDEwNDEg aW5jbHVkaW5nIHRoZSBoYWx0IGNvbXBpbGVyKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitfX0hBTFRfQ09NUElMRVIoKTsnKTsK XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBicmFuY2hlcy9QSFBfNV8zL2V4 dC9waGFyL3Rlc3RzL2ZpbGVzL3N0dWJvZmxlbmd0aDEwNDEucGhhcgo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLSBicmFuY2hlcy9QSFBfNV8zL2V4dC9waGFyL3Rlc3RzL2ZpbGVzL3N0dWJvZmxlbmd0 aDEwNDEucGhhcgkocmV2aXNpb24gMCkKKysrIGJyYW5jaGVzL1BIUF81XzMvZXh0L3BoYXIv dGVzdHMvZmlsZXMvc3R1Ym9mbGVuZ3RoMTA0MS5waGFyCShyZXZpc2lvbiAwKQpAQCAtMCww ICsxLDE0IEBACis8P3BocAorLyoqKnN0dWIgb2YgbGVuZ3RoIDEwNDEgaW5jbHVkaW5nIHRo ZSBoYWx0IGNvbXBpbGVyKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovCitfX0hBTFRfQ09NUElMRVIoKTsgPz4NCitUAAAAAgAAABEA AAABAAAAAAAAAAAABQAAAGEucGhwAwAAAA8XvE4DAAAAXpNkXLYBAAAAAAAABQAAAGIucGhw AwAAAA8XvE4DAAAA5MJtxbYBAAAAAAAAaGkxaGky7iwT3RGlrCf+uWW4Os0RxLA3GhECAAAA R0JNQgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IGJyYW5jaGVzL1BIUF81 XzMvZXh0L3BoYXIvdGVzdHMvYnVnNjAxNjQucGhwdAo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBicmFu Y2hlcy9QSFBfNV8zL2V4dC9waGFyL3Rlc3RzL2J1ZzYwMTY0LnBocHQJKHJldmlzaW9uIDAp CisrKyBicmFuY2hlcy9QSFBfNV8zL2V4dC9waGFyL3Rlc3RzL2J1ZzYwMTY0LnBocHQJKHJl dmlzaW9uIDApCkBAIC0wLDAgKzEsMjEgQEAKKy0tVEVTVC0tCitQaGFyOiB2ZXJpZnkgc3R1 YiBvZiBzcGVjaWZpYyBsZW5ndGggZG9lcyBub3QgYnJlYWsgX19IQUxUX0NPTVBJTEVSKCk7 IHNjYW5uaW5nIGluIHBocAorLS1TS0lQSUYtLQorPD9waHAKK2lmICghZXh0ZW5zaW9uX2xv YWRlZCgicGhhciIpKSBkaWUoInNraXAiKTsKKz8+CistLUlOSS0tCitwaGFyLnJlcXVpcmVf aGFzaD0wCitwaGFyLnJlYWRvbmx5PTAKKy0tRklMRS0tCis8P3BocAorJHBoYXIgPSBfX0RJ Ul9fIC4gJy9maWxlcy9zdHVib2ZsZW5ndGgxMDQxLnBoYXInOworZm9yZWFjaCAobmV3IFJl Y3Vyc2l2ZUl0ZXJhdG9ySXRlcmF0b3IobmV3IFBoYXIoJHBoYXIsIG51bGwsICdzdHVib2Zs ZW5ndGgxMDQxLnBoYXInKSkgYXMgJGl0ZW0pIHsKKyAgICB2YXJfZHVtcCgkaXRlbS0+Z2V0 RmlsZU5hbWUoKSk7Cit9Cis/PgorPT09RE9ORT09PQorLS1FWFBFQ1QtLQorc3RyaW5nKDUp ICJhLnBocCIKK3N0cmluZyg1KSAiYi5waHAiCis9PT1ET05FPT09ClwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQpJbmRleDogYnJhbmNoZXMvUEhQXzVfMy9leHQvcGhhci9waGFyLmMK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gYnJhbmNoZXMvUEhQXzVfMy9leHQvcGhhci9waGFyLmMJKHJl dmlzaW9uIDMxOTAwNCkKKysrIGJyYW5jaGVzL1BIUF81XzMvZXh0L3BoYXIvcGhhci5jCSh3 b3JraW5nIGNvcHkpCkBAIC0xNTY5LDcgKzE1NjksOCBAQAogCWNvbnN0IGNoYXIgemlwX21h Z2ljW10gPSAiUEtceDAzXHgwNCI7CiAJY29uc3QgY2hhciBnel9tYWdpY1tdID0gIlx4MWZc eDhiXHgwOCI7CiAJY29uc3QgY2hhciBiel9tYWdpY1tdID0gIkJaaCI7Ci0JY2hhciAqcG9z LCBidWZmZXJbMTAyNCArIHNpemVvZih0b2tlbildLCB0ZXN0ID0gJ1wwJzsKKwljaGFyICpw b3MsIHRlc3QgPSAnXDAnOworCWNoYXIgYnVmZmVyWzEwMjQgKyBzaXplb2YodG9rZW4pXTsg LyogYSAxMDI0IGJ5dGUgd2luZG93ICsgdGhlIHNpemUgb2YgdGhlIGhhbHRfY29tcGlsZXIg dG9rZW4gKG1vdmluZyB3aW5kb3cpICovCiAJY29uc3QgbG9uZyByZWFkc2l6ZSA9IHNpemVv ZihidWZmZXIpIC0gc2l6ZW9mKHRva2VuKTsKIAljb25zdCBsb25nIHRva2VubGVuID0gc2l6 ZW9mKHRva2VuKSAtIDE7CiAJbG9uZyBoYWx0X29mZnNldDsKQEAgLTE3MTcsNyArMTcxOCw3 IEBACiAJCX0KIAogCQloYWx0X29mZnNldCArPSBnb3Q7Ci0JCW1lbW1vdmUoYnVmZmVyLCBi dWZmZXIgKyB0b2tlbmxlbiwgZ290ICsgMSk7CisJCW1lbW1vdmUoYnVmZmVyLCBidWZmZXIg KyAxMDI0LCB0b2tlbmxlbik7IC8qIG1vdmUgdGhlIG1lbW9yeSBidWZmZXIgYnkgdGhlIHNp emUgb2YgdGhlIHdpbmRvdyAqLwogCX0KIAogCU1BUFBIQVJfQUxMT0NfRkFJTCgiaW50ZXJu YWwgY29ycnVwdGlvbiBvZiBwaGFyIFwiJXNcIiAoX19IQUxUX0NPTVBJTEVSKCk7IG5vdCBm b3VuZCkiKQpJbmRleDogYnJhbmNoZXMvUEhQXzVfNC9leHQvcGhhci90ZXN0cy9maWxlcy9z dHVib2ZsZW5ndGgxMDQxLnBoYXIuaW5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGJyYW5jaGVzL1BI UF81XzQvZXh0L3BoYXIvdGVzdHMvZmlsZXMvc3R1Ym9mbGVuZ3RoMTA0MS5waGFyLmluYwko cmV2aXNpb24gMCkKKysrIGJyYW5jaGVzL1BIUF81XzQvZXh0L3BoYXIvdGVzdHMvZmlsZXMv c3R1Ym9mbGVuZ3RoMTA0MS5waGFyLmluYwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMSBA QAorPD9waHAKKworQHVubGluayhfX0RJUl9fIC4gJy9zdHVib2ZsZW5ndGgxMDQxLnBoYXIn KTsKKworJHBoYXIgPSBuZXcgUGhhcignLi9zdHVib2ZsZW5ndGgxMDQxLnBoYXInKTsKKyRw aGFyWydhLnBocCddID0gJ2hpMSc7CiskcGhhclsnYi5waHAnXSA9ICdoaTInOworCiskcGhh ci0+c2V0U3R1YignPD9waHAKKy8qKipzdHViIG9mIGxlbmd0aCAxMDQxIGluY2x1ZGluZyB0 aGUgaGFsdCBjb21waWxlcioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgorKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqLworX19IQUxUX0NPTVBJTEVSKCk7Jyk7ClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogYnJhbmNoZXMvUEhQXzVfNC9leHQvcGhhci90ZXN0 cy9maWxlcy9zdHVib2ZsZW5ndGgxMDQxLnBoYXIKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYnJhbmNo ZXMvUEhQXzVfNC9leHQvcGhhci90ZXN0cy9maWxlcy9zdHVib2ZsZW5ndGgxMDQxLnBoYXIJ KHJldmlzaW9uIDApCisrKyBicmFuY2hlcy9QSFBfNV80L2V4dC9waGFyL3Rlc3RzL2ZpbGVz L3N0dWJvZmxlbmd0aDEwNDEucGhhcgkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNCBAQAor PD9waHAKKy8qKipzdHViIG9mIGxlbmd0aCAxMDQxIGluY2x1ZGluZyB0aGUgaGFsdCBjb21w aWxlcioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLworX19IQUxUX0NPTVBJTEVSKCk7ID8+DQorVAAAAAIAAAARAAAAAQAAAAAAAAAA AAUAAABhLnBocAMAAAAPF7xOAwAAAF6TZFy2AQAAAAAAAAUAAABiLnBocAMAAAAPF7xOAwAA AOTCbcW2AQAAAAAAAGhpMWhpMu4sE90Rpawn/rlluDrNEcSwNxoRAgAAAEdCTUIKXCBObyBu ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBicmFuY2hlcy9QSFBfNV80L2V4dC9waGFy L3Rlc3RzL2J1ZzYwMTY0LnBocHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYnJhbmNoZXMvUEhQXzVf NC9leHQvcGhhci90ZXN0cy9idWc2MDE2NC5waHB0CShyZXZpc2lvbiAwKQorKysgYnJhbmNo ZXMvUEhQXzVfNC9leHQvcGhhci90ZXN0cy9idWc2MDE2NC5waHB0CShyZXZpc2lvbiAwKQpA QCAtMCwwICsxLDIxIEBACistLVRFU1QtLQorUGhhcjogdmVyaWZ5IHN0dWIgb2Ygc3BlY2lm aWMgbGVuZ3RoIGRvZXMgbm90IGJyZWFrIF9fSEFMVF9DT01QSUxFUigpOyBzY2FubmluZyBp biBwaHAKKy0tU0tJUElGLS0KKzw/cGhwCitpZiAoIWV4dGVuc2lvbl9sb2FkZWQoInBoYXIi KSkgZGllKCJza2lwIik7Cis/PgorLS1JTkktLQorcGhhci5yZXF1aXJlX2hhc2g9MAorcGhh ci5yZWFkb25seT0wCistLUZJTEUtLQorPD9waHAKKyRwaGFyID0gX19ESVJfXyAuICcvZmls ZXMvc3R1Ym9mbGVuZ3RoMTA0MS5waGFyJzsKK2ZvcmVhY2ggKG5ldyBSZWN1cnNpdmVJdGVy YXRvckl0ZXJhdG9yKG5ldyBQaGFyKCRwaGFyLCBudWxsLCAnc3R1Ym9mbGVuZ3RoMTA0MS5w aGFyJykpIGFzICRpdGVtKSB7CisgICAgdmFyX2R1bXAoJGl0ZW0tPmdldEZpbGVOYW1lKCkp OworfQorPz4KKz09PURPTkU9PT0KKy0tRVhQRUNULS0KK3N0cmluZyg1KSAiYS5waHAiCitz dHJpbmcoNSkgImIucGhwIgorPT09RE9ORT09PQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKSW5kZXg6IGJyYW5jaGVzL1BIUF81XzQvZXh0L3BoYXIvcGhhci5jCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tIGJyYW5jaGVzL1BIUF81XzQvZXh0L3BoYXIvcGhhci5jCShyZXZpc2lvbiAzMTkw MDQpCisrKyBicmFuY2hlcy9QSFBfNV80L2V4dC9waGFyL3BoYXIuYwkod29ya2luZyBjb3B5 KQpAQCAtMTU2OSw3ICsxNTY5LDggQEAKIAljb25zdCBjaGFyIHppcF9tYWdpY1tdID0gIlBL XHgwM1x4MDQiOwogCWNvbnN0IGNoYXIgZ3pfbWFnaWNbXSA9ICJceDFmXHg4Ylx4MDgiOwog CWNvbnN0IGNoYXIgYnpfbWFnaWNbXSA9ICJCWmgiOwotCWNoYXIgKnBvcywgYnVmZmVyWzEw MjQgKyBzaXplb2YodG9rZW4pXSwgdGVzdCA9ICdcMCc7CisJY2hhciAqcG9zLCB0ZXN0ID0g J1wwJzsKKwljaGFyIGJ1ZmZlclsxMDI0ICsgc2l6ZW9mKHRva2VuKV07IC8qIGEgMTAyNCBi eXRlIHdpbmRvdyArIHRoZSBzaXplIG9mIHRoZSBoYWx0X2NvbXBpbGVyIHRva2VuIChtb3Zp bmcgd2luZG93KSAqLwogCWNvbnN0IGxvbmcgcmVhZHNpemUgPSBzaXplb2YoYnVmZmVyKSAt IHNpemVvZih0b2tlbik7CiAJY29uc3QgbG9uZyB0b2tlbmxlbiA9IHNpemVvZih0b2tlbikg LSAxOwogCWxvbmcgaGFsdF9vZmZzZXQ7CkBAIC0xNzE3LDcgKzE3MTgsNyBAQAogCQl9CiAK IAkJaGFsdF9vZmZzZXQgKz0gZ290OwotCQltZW1tb3ZlKGJ1ZmZlciwgYnVmZmVyICsgdG9r ZW5sZW4sIGdvdCArIDEpOworCQltZW1tb3ZlKGJ1ZmZlciwgYnVmZmVyICsgMTAyNCwgdG9r ZW5sZW4pOyAvKiBtb3ZlIHRoZSBtZW1vcnkgYnVmZmVyIGJ5IHRoZSBzaXplIG9mIHRoZSB3 aW5kb3cgKi8KIAl9CiAKIAlNQVBQSEFSX0FMTE9DX0ZBSUwoImludGVybmFsIGNvcnJ1cHRp b24gb2YgcGhhciBcIiVzXCIgKF9fSEFMVF9DT01QSUxFUigpOyBub3QgZm91bmQpIikK --------------090101070404040800050207--