From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5201 invoked by alias); 4 Jan 2008 21:40:33 -0000 Received: (qmail 5184 invoked by uid 22791); 4 Jan 2008 21:40:31 -0000 X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.45.13) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 04 Jan 2008 21:39:58 +0000 Received: from zps75.corp.google.com (zps75.corp.google.com [172.25.146.75]) by smtp-out.google.com with ESMTP id m04LdqP6012315 for ; Fri, 4 Jan 2008 13:39:52 -0800 Received: from wa-out-1112.google.com (wahj5.prod.google.com [10.114.236.5]) by zps75.corp.google.com with ESMTP id m04LdDvP012977 for ; Fri, 4 Jan 2008 13:39:51 -0800 Received: by wa-out-1112.google.com with SMTP id j5so9829455wah.15 for ; Fri, 04 Jan 2008 13:39:51 -0800 (PST) Received: by 10.114.177.1 with SMTP id z1mr18391672wae.144.1199482791450; Fri, 04 Jan 2008 13:39:51 -0800 (PST) Received: by 10.115.107.7 with HTTP; Fri, 4 Jan 2008 13:39:51 -0800 (PST) Message-ID: Date: Fri, 04 Jan 2008 21:40:00 -0000 From: "Doug Evans" To: "Aleksandar Ristovski" Subject: Re: gdb_realpath: dealing with ./ and ../ Cc: "Daniel Jacobowitz" , gdb@sourceware.org, "Ryan Mansfield" In-Reply-To: <2F6320727174C448A52CEB63D85D11F40A4A@nova.ott.qnx.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_45110_31249664.1199482791442" References: <2F6320727174C448A52CEB63D85D11F40A4A@nova.ott.qnx.com> X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2008-01/txt/msg00027.txt.bz2 ------=_Part_45110_31249664.1199482791442 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 604 The use of #line in the testcases in the appended patch is questionable, but as a data point the testcases fail without the patch and pass with the patch. These versions of the testcases have been amended to use substitute-path. ref: pr 2360 http://sourceware.org/ml/gdb/2007-11/msg00138.html http://sourceware.org/ml/gdb-patches/2007-11/msg00314.html Maybe #line + substitute-path fixup isn't supported. Again, this patch is just a data point. Note: This patch contains the rewrite_subfile_path suggestion of my previous email. I don't know whether it helps or hurts the case you're trying to fix. ------=_Part_45110_31249664.1199482791442 Content-Type: text/x-patch; name=rewrite-path-3.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_fb1904f70 Content-Disposition: attachment; filename=rewrite-path-3.patch Content-length: 17605 SW5kZXg6IGJ1aWxkc3ltLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg ZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9idWlsZHN5bS5jLHYKcmV0cmlldmlu ZyByZXZpc2lvbiAxLjU5CmRpZmYgLXUgLXAgLXUgLXAgLXIxLjU5IGJ1aWxk c3ltLmMKLS0tIGJ1aWxkc3ltLmMJMSBKYW4gMjAwOCAyMjo1MzowOSAtMDAw MAkxLjU5CisrKyBidWlsZHN5bS5jCTQgSmFuIDIwMDggMjE6MjY6MTEgLTAw MDAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJjcC1zdXBwb3J0Lmgi CiAjaW5jbHVkZSAiZGljdGlvbmFyeS5oIgogI2luY2x1ZGUgImFkZHJtYXAu aCIKKyNpbmNsdWRlICJzb3VyY2UuaCIKIAogLyogQXNrIGJ1aWxkc3ltLmgg dG8gZGVmaW5lIHRoZSB2YXJzIGl0IG5vcm1hbGx5IGRlY2xhcmVzIGBleHRl cm4nLiAgKi8KICNkZWZpbmUJRVhURVJOCkBAIC04Niw2ICs4Nyw3IEBAIHN0 YXRpYyBzdHJ1Y3Qgb2JzdGFjayBwZW5kaW5nX2FkZHJtYXBfb2IKIHN0YXRp YyBpbnQgcGVuZGluZ19hZGRybWFwX2ludGVyZXN0aW5nOwogCiAMCitzdGF0 aWMgY2hhciAqcmV3cml0ZV9zdWJmaWxlX3BhdGggKGNoYXIgKm5hbWUsIGNo YXIqIGRpcm5hbWUpOwogc3RhdGljIGludCBjb21wYXJlX2xpbmVfbnVtYmVy cyAoY29uc3Qgdm9pZCAqbG4xcCwgY29uc3Qgdm9pZCAqbG4ycCk7CiAMCiAK QEAgLTU3NCw2ICs1NzYsMjAgQEAgbWFrZV9ibG9ja3ZlY3RvciAoc3RydWN0 IG9iamZpbGUgKm9iamZpbAogICByZXR1cm4gKGJsb2NrdmVjdG9yKTsKIH0K IAwKKworLyogV29ya2Fyb3VuZCBmb3IgSVNfQUJTT0xVVEVfUEFUSCBpc3N1 ZS4gV2hlbiBnZGIgaXMgY29uZmlndXJlZCBmb3IKKyAgICppeCwgYW5kIHdl IGFyZSBkZWJ1Z2dpbmcgYmluYXJ5IGNyb3NzLWNvbXBpbGVkIG9uIHdpbmRv d3MsIHRoZSBvcmlnaW5hbAorICAgSVNfQUJTT0xVVEVfUEFUSCB3aWxsIGFs d2F5cyByZXR1cm4gMC4gVGhpcyBpcyBub3QgZ29vZC4gICovCisjdW5kZWYg SVNfQUJTT0xVVEVfUEFUSAorI3VuZGVmIElTX0RJUl9TRVBBUkFUT1IKKwor I2RlZmluZSBJU19ESVJfU0VQQVJBVE9SKGMpCSgoYykgPT0gJy8nIHx8IChj KSA9PSAnXFwnKQorLyogTm90ZSB0aGF0IElTX0FCU09MVVRFX1BBVEggYWNj ZXB0cyBkOmZvbyBhcyB3ZWxsLCBhbHRob3VnaCBpdCBpcworICAgb25seSBz ZW1pLWFic29sdXRlLiAgVGhpcyBpcyBiZWNhdXNlIHRoZSB1c2VycyBvZiBJ U19BQlNPTFVURV9QQVRICisgICB3YW50IHRvIGtub3cgd2hldGhlciB0byBw cmVwZW5kIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IHRvCisgICBh IGZpbGUgbmFtZSwgd2hpY2ggc2hvdWxkIG5vdCBiZSBkb25lIHdpdGggYSBu YW1lIGxpa2UgZDpmb28uICAqLworI2RlZmluZSBJU19BQlNPTFVURV9QQVRI KGYpCShJU19ESVJfU0VQQVJBVE9SKChmKVswXSkgfHwgKCgoZilbMF0pICYm ICgoZilbMV0gPT0gJzonKSkpCisKIC8qIFN0YXJ0IHJlY29yZGluZyBpbmZv cm1hdGlvbiBhYm91dCBzb3VyY2UgY29kZSB0aGF0IGNhbWUgZnJvbSBhbgog ICAgaW5jbHVkZWQgKG9yIG90aGVyd2lzZSBtZXJnZWQtaW4pIHNvdXJjZSBm aWxlIHdpdGggYSBkaWZmZXJlbnQKICAgIG5hbWUuICBOQU1FIGlzIHRoZSBu YW1lIG9mIHRoZSBmaWxlIChjYW5ub3QgYmUgTlVMTCksIERJUk5BTUUgaXMK QEAgLTU4MywzNSArNTk5LDMyIEBAIHZvaWQKIHN0YXJ0X3N1YmZpbGUgKGNo YXIgKm5hbWUsIGNoYXIgKmRpcm5hbWUpCiB7CiAgIHN0cnVjdCBzdWJmaWxl ICpzdWJmaWxlOworICAvKiBSZXdyaXR0ZW4gTkFNRSwgdHlwaWNhbGx5IGFu IGFic29sdXRlIHBhdGgsIHRoYXQgaXMgdXNlZCB0byBkZXRlY3QKKyAgICAg aWRlbnRpY2FsIHN1YmZpbGVzLiAgKi8KKyAgY2hhciAqY29tcGFyYWJsZV9u YW1lOworCisgIGNvbXBhcmFibGVfbmFtZSA9IHJld3JpdGVfc3ViZmlsZV9w YXRoIChuYW1lLCBkaXJuYW1lKTsKIAogICAvKiBTZWUgaWYgdGhpcyBzdWJm aWxlIGlzIGFscmVhZHkga25vd24gYXMgYSBzdWJmaWxlIG9mIHRoZSBjdXJy ZW50CiAgICAgIG1haW4gc291cmNlIGZpbGUuICAqLwogCiAgIGZvciAoc3Vi ZmlsZSA9IHN1YmZpbGVzOyBzdWJmaWxlOyBzdWJmaWxlID0gc3ViZmlsZS0+ bmV4dCkKICAgICB7Ci0gICAgICBjaGFyICpzdWJmaWxlX25hbWU7Ci0KLSAg ICAgIC8qIElmIE5BTUUgaXMgYW4gYWJzb2x1dGUgcGF0aCwgYW5kIHRoaXMg c3ViZmlsZSBpcyBub3QsIHRoZW4KLQkgYXR0ZW1wdCB0byBjcmVhdGUgYW4g YWJzb2x1dGUgcGF0aCB0byBjb21wYXJlLiAgKi8KLSAgICAgIGlmIChJU19B QlNPTFVURV9QQVRIIChuYW1lKQotCSAgJiYgIUlTX0FCU09MVVRFX1BBVEgg KHN1YmZpbGUtPm5hbWUpCi0JICAmJiBzdWJmaWxlLT5kaXJuYW1lICE9IE5V TEwpCi0Jc3ViZmlsZV9uYW1lID0gY29uY2F0IChzdWJmaWxlLT5kaXJuYW1l LCBTTEFTSF9TVFJJTkcsCi0JCQkgICAgICAgc3ViZmlsZS0+bmFtZSwgTlVM TCk7Ci0gICAgICBlbHNlCi0Jc3ViZmlsZV9uYW1lID0gc3ViZmlsZS0+bmFt ZTsKKyAgICAgIGNoYXIgKnN1YmZpbGVfbmFtZSA9IHJld3JpdGVfc3ViZmls ZV9wYXRoIChzdWJmaWxlLT5uYW1lLAorCQkJCQkJIHN1YmZpbGUtPmRpcm5h bWUpOwogCi0gICAgICBpZiAoRklMRU5BTUVfQ01QIChzdWJmaWxlX25hbWUs IG5hbWUpID09IDApCisgICAgICBpZiAoRklMRU5BTUVfQ01QIChzdWJmaWxl X25hbWUsIGNvbXBhcmFibGVfbmFtZSkgPT0gMCkKIAl7CiAJICBjdXJyZW50 X3N1YmZpbGUgPSBzdWJmaWxlOwotCSAgaWYgKHN1YmZpbGVfbmFtZSAhPSBz dWJmaWxlLT5uYW1lKQotCSAgICB4ZnJlZSAoc3ViZmlsZV9uYW1lKTsKKwkg IHhmcmVlIChjb21wYXJhYmxlX25hbWUpOworCSAgeGZyZWUgKHN1YmZpbGVf bmFtZSk7CiAJICByZXR1cm47CiAJfQotICAgICAgaWYgKHN1YmZpbGVfbmFt ZSAhPSBzdWJmaWxlLT5uYW1lKQotCXhmcmVlIChzdWJmaWxlX25hbWUpOwor ICAgICAgeGZyZWUgKHN1YmZpbGVfbmFtZSk7CiAgICAgfQogCisgIHhmcmVl IChjb21wYXJhYmxlX25hbWUpOworCiAgIC8qIFRoaXMgc3ViZmlsZSBpcyBu b3Qga25vd24uICBBZGQgYW4gZW50cnkgZm9yIGl0LiBNYWtlIGFuIGVudHJ5 CiAgICAgIGZvciB0aGlzIHN1YmZpbGUgaW4gdGhlIGxpc3Qgb2YgYWxsIHN1 YmZpbGVzIG9mIHRoZSBjdXJyZW50IG1haW4KICAgICAgc291cmNlIGZpbGUu ICAqLwpAQCAtNjgxLDYgKzY5NCwzNCBAQCBzdGFydF9zdWJmaWxlIChjaGFy ICpuYW1lLCBjaGFyICpkaXJuYW1lCiAgICAgfQogfQogCisvKiBTdWJyb3V0 aW5lIG9mIHN0YXJ0X3N1YmZpbGUgdG8gc2ltcGxpZnkgaXQuCisgICBDb252 ZXJ0IE5BTUUsIERJUk5BTUUgdG8gYSBmb3JtIHRoYXQgY2FuIGJlIHVzZWQg dG8gd2F0Y2ggZm9yCisgICBpZGVudGljYWwgc3ViZmlsZXMuCisgICBTcGFj ZSBmb3IgdGhlIHJlc3VsdCBpcyBtYWxsb2MnZCwgY2FsbGVyIG11c3QgZnJl ZS4gICovCisKK3N0YXRpYyBjaGFyICoKK3Jld3JpdGVfc3ViZmlsZV9wYXRo IChjaGFyICpuYW1lLCBjaGFyICpkaXJuYW1lKQoreworICBjaGFyICpwID0g bmFtZTsKKyAgY2hhciAqcnduYW1lOworCisgIGlmICghIElTX0FCU09MVVRF X1BBVEggKG5hbWUpCisgICAgICAmJiBkaXJuYW1lICE9IE5VTEwpCisgICAg cCA9IGNvbmNhdCAoZGlybmFtZSwgU0xBU0hfU1RSSU5HLCBuYW1lLCBOVUxM KTsKKworICByd25hbWUgPSByZXdyaXRlX3NvdXJjZV9wYXRoIChwKTsKKwor ICBpZiAocnduYW1lICE9IE5VTEwpCisgICAgeworICAgICAgaWYgKHAgIT0g bmFtZSkKKwl4ZnJlZSAocCk7CisgICAgICByZXR1cm4gcnduYW1lOworICAg IH0KKyAgaWYgKHAgIT0gbmFtZSkKKyAgICByZXR1cm4gcDsKKyAgcmV0dXJu IHhzdHJkdXAgKG5hbWUpOworfQorCiAvKiBGb3Igc3RhYnMgcmVhZGVycywg dGhlIGZpcnN0IE5fU08gc3ltYm9sIGlzIGFzc3VtZWQgdG8gYmUgdGhlCiAg ICBzb3VyY2UgZmlsZSBuYW1lLCBhbmQgdGhlIHN1YmZpbGUgc3RydWN0IGlz IGluaXRpYWxpemVkIHVzaW5nIHRoYXQKICAgIGFzc3VtcHRpb24uICBJZiBh bm90aGVyIE5fU08gc3ltYm9sIGlzIGxhdGVyIHNlZW4sIGltbWVkaWF0ZWx5 CkluZGV4OiBzb3VyY2UuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm aWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL3NvdXJjZS5jLHYKcmV0cmlldmluZyBy ZXZpc2lvbiAxLjgzCmRpZmYgLXUgLXAgLXUgLXAgLXIxLjgzIHNvdXJjZS5j Ci0tLSBzb3VyY2UuYwkxIEphbiAyMDA4IDIyOjUzOjEzIC0wMDAwCTEuODMK KysrIHNvdXJjZS5jCTQgSmFuIDIwMDggMjE6MjY6MTEgLTAwMDAKQEAgLTg5 NSwxMCArODk1LDEyIEBAIGdldF9zdWJzdGl0dXRlX3BhdGhfcnVsZSAoY29u c3QgY2hhciAqcGEKICAgIFJldHVybiBOVUxMIGlmIG5vIHN1YnN0aXR1dGlv biBydWxlIHdhcyBzcGVjaWZpZWQgYnkgdGhlIHVzZXIsCiAgICBvciBpZiBu byBydWxlIGFwcGxpZWQgdG8gdGhlIGdpdmVuIFBBVEguICAqLwogICAgCi1z dGF0aWMgY2hhciAqCitjaGFyICoKIHJld3JpdGVfc291cmNlX3BhdGggKGNv bnN0IGNoYXIgKnBhdGgpCiB7Ci0gIGNvbnN0IHN0cnVjdCBzdWJzdGl0dXRl X3BhdGhfcnVsZSAqcnVsZSA9IGdldF9zdWJzdGl0dXRlX3BhdGhfcnVsZSAo cGF0aCk7CisgIGNvbnN0IHN0cnVjdCBzdWJzdGl0dXRlX3BhdGhfcnVsZSAq cnVsZSA9IChwYXRoICE9IE5VTEwpID8gCisJCQkJCWdldF9zdWJzdGl0dXRl X3BhdGhfcnVsZSAocGF0aCk6CisJCQkJCU5VTEw7CiAgIGNoYXIgKm5ld19w YXRoOwogICBpbnQgZnJvbV9sZW47CiAgIApAQCAtOTk5LDEwICsxMDAxLDEx IEBAIGZpbmRfYW5kX29wZW5fc291cmNlIChzdHJ1Y3Qgb2JqZmlsZSAqb2IK IAkgIHN0cmNhdCAocGF0aCArIGxlbiwgc291cmNlX3BhdGggKyBsZW4gKyBj ZGlyX2xlbik7CS8qIEFmdGVyICRjZGlyICovCiAJfQogICAgIH0KLSAgZWxz ZQorICAKKyAgaWYgKElTX0FCU09MVVRFX1BBVEggKGZpbGVuYW1lKSkKICAg ICB7Ci0gICAgICAvKiBJZiBkaXJuYW1lIGlzIE5VTEwsIGNoYW5jZXMgYXJl IHRoZSBwYXRoIGlzIGVtYmVkZGVkIGluCi0gICAgICAgICB0aGUgZmlsZW5h bWUuICBUcnkgdGhlIHNvdXJjZSBwYXRoIHN1YnN0aXR1dGlvbiBvbiBpdC4g ICovCisgICAgICAvKiBJZiBmaWxlbmFtZSBpcyBhYnNvbHV0ZSBwYXRoLCB0 cnkgdGhlIHNvdXJjZSBwYXRoIAorCSBzdWJzdGl0dXRpb24gb24gaXQuICAq LwogICAgICAgY2hhciAqcmV3cml0dGVuX2ZpbGVuYW1lID0gcmV3cml0ZV9z b3VyY2VfcGF0aCAoZmlsZW5hbWUpOwogCiAgICAgICBpZiAocmV3cml0dGVu X2ZpbGVuYW1lICE9IE5VTEwpCkluZGV4OiBzb3VyY2UuaAo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL3NvdXJj ZS5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjkKZGlmZiAtdSAtcCAtdSAt cCAtcjEuOSBzb3VyY2UuaAotLS0gc291cmNlLmgJMSBKYW4gMjAwOCAyMjo1 MzoxMyAtMDAwMAkxLjkKKysrIHNvdXJjZS5oCTQgSmFuIDIwMDggMjE6MjY6 MTEgLTAwMDAKQEAgLTY2LDQgKzY2LDE0IEBAIGV4dGVybiBzdHJ1Y3Qgc3lt dGFiX2FuZF9saW5lIHNldF9jdXJyZW4KIAogLyogUmVzZXQgYW55IGluZm9y bWF0aW9uIHN0b3JlZCBhYm91dCBhIGRlZmF1bHQgZmlsZSBhbmQgbGluZSB0 byBwcmludC4gKi8KIGV4dGVybiB2b2lkIGNsZWFyX2N1cnJlbnRfc291cmNl X3N5bXRhYl9hbmRfbGluZSAodm9pZCk7CisKKy8qIElmIHRoZSB1c2VyIHNw ZWNpZmllZCBhIHNvdXJjZSBwYXRoIHN1YnN0aXR1dGlvbiBydWxlIHRoYXQg YXBwbGllcworICAgdG8gUEFUSCwgdGhlbiBhcHBseSBpdCBhbmQgcmV0dXJu IHRoZSBuZXcgcGF0aC4gIFRoaXMgbmV3IHBhdGggbXVzdAorICAgYmUgZGVh bGxvY2F0ZWQgYWZ0ZXJ3YXJkcy4gIAorICAgCisgICBSZXR1cm4gTlVMTCBp ZiBubyBzdWJzdGl0dXRpb24gcnVsZSB3YXMgc3BlY2lmaWVkIGJ5IHRoZSB1 c2VyLAorICAgb3IgaWYgbm8gcnVsZSBhcHBsaWVkIHRvIHRoZSBnaXZlbiBQ QVRILiAgKi8KKyAgIAorZXh0ZXJuIGNoYXIgKnJld3JpdGVfc291cmNlX3Bh dGggKGNvbnN0IGNoYXIgKnBhdGgpOworCiAjZW5kaWYKSW5kZXg6IHRlc3Rz dWl0ZS9nZGIuYmFzZS9oYXNobGluZTEuZXhwCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KUkNTIGZpbGU6IHRlc3RzdWl0ZS9nZGIuYmFzZS9oYXNobGluZTEu ZXhwCmRpZmYgLU4gdGVzdHN1aXRlL2dkYi5iYXNlL2hhc2hsaW5lMS5leHAK LS0tIC9kZXYvbnVsbAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyB0 ZXN0c3VpdGUvZ2RiLmJhc2UvaGFzaGxpbmUxLmV4cAk0IEphbiAyMDA4IDIx OjI2OjE4IC0wMDAwCkBAIC0wLDAgKzEsNjAgQEAKKyMgQ29weXJpZ2h0IDIw MDcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyMgVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkK KyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisj IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMK KyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uCisKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGdkYiB0ZXN0 c3VpdGUuCisKKyMgVGVzdCBsb2FkaW5nIG9mIGxpbmUgbnVtYmVyIGluZm9y bWF0aW9uIHdpdGggYWJzb2x1dGUgcGF0aCBpbiAjbGluZSwgYnVnIDIzNjAu CisKK2lmICR0cmFjZWxldmVsIHRoZW4geworICAgIHN0cmFjZSAkdHJhY2Vs ZXZlbAorfQorCitzZXQgcHJtc19pZCAyMzYwCitzZXQgYnVnX2lkIDAKKwor IyBzcmNmaWxlIGlzIGluIG9iamRpciBiZWNhdXNlIHdlIG5lZWQgdG8gbWFj aGluZSBnZW5lcmF0ZSBpdCBpbiBvcmRlcgorIyB0byBnZXQgY29ycmVjdCB0 aGUgY29ycmVjdCBwYXRoIGluIHRoZSAjbGluZSBkaXJlY3RpdmUuCisKK3Nl dCB0ZXN0ZmlsZSAiaGFzaGxpbmUxIgorc2V0IHNyY2ZpbGUgIiR7dGVzdGZp bGV9LmMiCitzZXQgYmluZmlsZSAiJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rl c3RmaWxlfSIKKworc2V0IGZkIFtvcGVuICR7b2JqZGlyfS8ke3N1YmRpcn0v JHtzcmNmaWxlfSB3XQorcHV0cyAkZmQgIiNsaW5lIDIgXCJbcHdkXS8ke3N1 YmRpcn0vJHtzcmNmaWxlfVwiIgorcHV0cyAkZmQgImludCBtYWluICgpIHsg cmV0dXJuIDA7IH0gLyogc2V0IGJyZWFrcG9pbnQgaGVyZSAqLyIKK2Nsb3Nl ICRmZAorCisjIFRoZSBjaG9pY2Ugb2YgcGF0aCBuYW1lIGZvciB0aGUgc291 cmNlIGZpbGUgaXMgaW1wb3J0YW50IGluIG9yZGVyIHRvCisjIHRyaWdnZXIg dGhlIGJ1Zy4gIFVzaW5nICR7b2JqZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxl fSBoZXJlIHdvbid0IHRyaWdnZXIKKyMgdGhlIGJ1Zy4KK2lmIHsgW2dkYl9j b21waWxlICIuLyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIg ZXhlY3V0YWJsZSB7ZGVidWd9XSAhPSAiIiB9IHsKKyAgICB1bnRlc3RlZCBo YXNobGluZTEuZXhwCisgICAgcmV0dXJuIC0xCit9CisKK2dkYl9leGl0Citn ZGJfc3RhcnQKK2dkYl9yZWluaXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRp cgorZ2RiX2xvYWQgJHtiaW5maWxlfQorCitzZXQgYnBfbG9jYXRpb24gW2dk Yl9nZXRfbGluZV9udW1iZXIgInNldCBicmVha3BvaW50IGhlcmUiICR7b2Jq ZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfV0KKworIyBUcnkgdG8gc2V0IGEg YnJlYWtwb2ludCBvbiB0aGUgc3BlY2lmaWVkIGZpbGUgbG9jYXRpb24uCisK K2dkYl90ZXN0ICJzZXQgc3Vic3RpdHV0ZS1wYXRoIFtwd2RdLy4gW3B3ZF0i ICIiICIiCisKK2dkYl90ZXN0ICJicmVhayAkc3JjZmlsZTokYnBfbG9jYXRp b24iIFwKKyAgICAiQnJlYWtwb2ludC4qYXQuKiBmaWxlIC4qJHNyY2ZpbGUs IGxpbmUuKiIgXAorICAgICJzZXQgYnJlYWtwb2ludCIKSW5kZXg6IHRlc3Rz dWl0ZS9nZGIuYmFzZS9oYXNobGluZTIuZXhwCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KUkNTIGZpbGU6IHRlc3RzdWl0ZS9nZGIuYmFzZS9oYXNobGluZTIu ZXhwCmRpZmYgLU4gdGVzdHN1aXRlL2dkYi5iYXNlL2hhc2hsaW5lMi5leHAK LS0tIC9kZXYvbnVsbAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyB0 ZXN0c3VpdGUvZ2RiLmJhc2UvaGFzaGxpbmUyLmV4cAk0IEphbiAyMDA4IDIx OjI2OjE4IC0wMDAwCkBAIC0wLDAgKzEsNTggQEAKKyMgQ29weXJpZ2h0IDIw MDcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyMgVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkK KyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisj IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMK KyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uCisKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGdkYiB0ZXN0 c3VpdGUuCisKKyMgVGVzdCBsb2FkaW5nIG9mIGxpbmUgbnVtYmVyIGluZm9y bWF0aW9uIHdpdGggYW4gYWJzb2x1dGUgcGF0aCB3aXRoIGV4dHJhCisjIC8n cyBpbiAjbGluZSwgYnVnIDIzNjAuCisKK2lmICR0cmFjZWxldmVsIHRoZW4g eworICAgIHN0cmFjZSAkdHJhY2VsZXZlbAorfQorCitzZXQgcHJtc19pZCAy MzYwCitzZXQgYnVnX2lkIDAKKworIyBzcmNmaWxlIGlzIGluIG9iamRpciBi ZWNhdXNlIHdlIG5lZWQgdG8gbWFjaGluZSBnZW5lcmF0ZSBpdCBpbiBvcmRl cgorIyB0byBnZXQgY29ycmVjdCB0aGUgY29ycmVjdCBwYXRoIGluIHRoZSAj bGluZSBkaXJlY3RpdmUuCisKK3NldCB0ZXN0ZmlsZSAiaGFzaGxpbmUyIgor c2V0IHNyY2ZpbGUgIiR7dGVzdGZpbGV9LmMiCitzZXQgYmluZmlsZSAiJHtv YmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfSIKKworc2V0IGZkIFtvcGVu ICR7b2JqZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSB3XQorcHV0cyAkZmQg IiNsaW5lIDIgXCIvLy9bcHdkXS8ke3N1YmRpcn0vJHtzcmNmaWxlfVwiIgor cHV0cyAkZmQgImludCBtYWluICgpIHsgcmV0dXJuIDA7IH0gLyogc2V0IGJy ZWFrcG9pbnQgaGVyZSAqLyIKK2Nsb3NlICRmZAorCitpZiB7IFtnZGJfY29t cGlsZSAiJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5m aWxlfSIgZXhlY3V0YWJsZSB7ZGVidWd9XSAhPSAiIiB9IHsKKyAgICB1bnRl c3RlZCBoYXNobGluZTEuZXhwCisgICAgcmV0dXJuIC0xCit9CisKK2dkYl9l eGl0CitnZGJfc3RhcnQKK2dkYl9yZWluaXRpYWxpemVfZGlyICRzcmNkaXIv JHN1YmRpcgorZ2RiX2xvYWQgJHtiaW5maWxlfQorCitzZXQgYnBfbG9jYXRp b24gW2dkYl9nZXRfbGluZV9udW1iZXIgInNldCBicmVha3BvaW50IGhlcmUi ICR7b2JqZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfV0KKworIyBUcnkgdG8g c2V0IGEgYnJlYWtwb2ludCBvbiB0aGUgc3BlY2lmaWVkIGZpbGUgbG9jYXRp b24uCisKK2dkYl90ZXN0ICJzZXQgc3Vic3RpdHV0ZS1wYXRoIC8vL1twd2Rd IFtwd2RdIiAiIiAiIgorCitnZGJfdGVzdCAiYnJlYWsgJHNyY2ZpbGU6JGJw X2xvY2F0aW9uIiBcCisgICAgIkJyZWFrcG9pbnQuKmF0LiogZmlsZSAuKiRz cmNmaWxlLCBsaW5lLioiIFwKKyAgICAic2V0IGJyZWFrcG9pbnQiCkluZGV4 OiB0ZXN0c3VpdGUvZ2RiLmJhc2UvaGFzaGxpbmUzLmV4cAo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09ClJDUyBmaWxlOiB0ZXN0c3VpdGUvZ2RiLmJhc2UvaGFz aGxpbmUzLmV4cApkaWZmIC1OIHRlc3RzdWl0ZS9nZGIuYmFzZS9oYXNobGlu ZTMuZXhwCi0tLSAvZGV2L251bGwJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAw MAorKysgdGVzdHN1aXRlL2dkYi5iYXNlL2hhc2hsaW5lMy5leHAJNCBKYW4g MjAwOCAyMToyNjoxOCAtMDAwMApAQCAtMCwwICsxLDU3IEBACisjIENvcHly aWdodCAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisj IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl CisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LgorCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBn ZGIgdGVzdHN1aXRlLgorCisjIFRlc3QgbG9hZGluZyBvZiBsaW5lIG51bWJl ciBpbmZvcm1hdGlvbiB3aXRoIHJlbGF0aXZlIHBhdGggaW4gI2xpbmUsIGJ1 ZyAyMzYwLgorCitpZiAkdHJhY2VsZXZlbCB0aGVuIHsKKyAgICBzdHJhY2Ug JHRyYWNlbGV2ZWwKK30KKworc2V0IHBybXNfaWQgMjM2MAorc2V0IGJ1Z19p ZCAwCisKKyMgc3JjZmlsZSBpcyBpbiBvYmpkaXIgYmVjYXVzZSB3ZSBuZWVk IHRvIG1hY2hpbmUgZ2VuZXJhdGUgaXQgaW4gb3JkZXIKKyMgdG8gZ2V0IGNv cnJlY3QgdGhlIGNvcnJlY3QgcGF0aCBpbiB0aGUgI2xpbmUgZGlyZWN0aXZl LgorCitzZXQgdGVzdGZpbGUgImhhc2hsaW5lMyIKK3NldCBzcmNmaWxlICIk e3Rlc3RmaWxlfS5jIgorc2V0IGJpbmZpbGUgIiR7b2JqZGlyfS8ke3N1YmRp cn0vJHt0ZXN0ZmlsZX0iCisKK3NldCBmZCBbb3BlbiAke29iamRpcn0vJHtz dWJkaXJ9LyR7c3JjZmlsZX0gd10KK3B1dHMgJGZkICIjbGluZSAyIFwiLi8k e3N1YmRpcn0vJHtzcmNmaWxlfVwiIgorcHV0cyAkZmQgImludCBtYWluICgp IHsgcmV0dXJuIDA7IH0gLyogc2V0IGJyZWFrcG9pbnQgaGVyZSAqLyIKK2Ns b3NlICRmZAorCitpZiB7IFtnZGJfY29tcGlsZSAiJHtvYmpkaXJ9LyR7c3Vi ZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0YWJsZSB7ZGVi dWd9XSAhPSAiIiB9IHsKKyAgICB1bnRlc3RlZCBoYXNobGluZTEuZXhwCisg ICAgcmV0dXJuIC0xCit9CisKK2dkYl9leGl0CitnZGJfc3RhcnQKK2dkYl9y ZWluaXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgorZ2RiX2xvYWQgJHti aW5maWxlfQorCitzZXQgYnBfbG9jYXRpb24gW2dkYl9nZXRfbGluZV9udW1i ZXIgInNldCBicmVha3BvaW50IGhlcmUiICR7b2JqZGlyfS8ke3N1YmRpcn0v JHtzcmNmaWxlfV0KKworIyBUcnkgdG8gc2V0IGEgYnJlYWtwb2ludCBvbiB0 aGUgc3BlY2lmaWVkIGZpbGUgbG9jYXRpb24uCisKK2dkYl90ZXN0ICJzZXQg c3Vic3RpdHV0ZS1wYXRoICR7b2JqZGlyfS8uICR7b2JqZGlyfSIgIiIgIiIK KworZ2RiX3Rlc3QgImJyZWFrICRzcmNmaWxlOiRicF9sb2NhdGlvbiIgXAor ICAgICJCcmVha3BvaW50LiphdC4qIGZpbGUgLiokc3JjZmlsZSwgbGluZS4q IiBcCisgICAgInNldCBicmVha3BvaW50Igo= ------=_Part_45110_31249664.1199482791442--