From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20936 invoked by alias); 27 Apr 2010 23:55:00 -0000 Received: (qmail 20928 invoked by uid 22791); 27 Apr 2010 23:55:00 -0000 X-SWARE-Spam-Status: No, hits=0.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_BL_SPAMCOP_NET,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_WEB X-Spam-Check-By: sourceware.org Received: from mail-bw0-f225.google.com (HELO mail-bw0-f225.google.com) (209.85.218.225) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 27 Apr 2010 23:54:56 +0000 Received: by bwz25 with SMTP id 25so13587580bwz.8 for ; Tue, 27 Apr 2010 16:54:52 -0700 (PDT) Received: by 10.204.163.129 with SMTP id a1mr4068334bky.144.1272412492721; Tue, 27 Apr 2010 16:54:52 -0700 (PDT) Received: from localhost (99-243-252-87-dynamic-pool.gprs.mts.by [87.252.243.99]) by mx.google.com with ESMTPS id 14sm2010002bwz.6.2010.04.27.16.53.58 (version=SSLv3 cipher=RC4-MD5); Tue, 27 Apr 2010 16:54:51 -0700 (PDT) Date: Tue, 27 Apr 2010 23:55:00 -0000 From: Mihail Zenkov To: Joel Brobecker Cc: Mihail Zenkov , tromey@redhat.com, gdb-patches@sourceware.org Subject: Re: D language support Message-Id: <20100428025334.69e28794.mihai.zenkov@gmail.com> In-Reply-To: <20100427160523.GD2951@adacore.com> References: <20100415012124.91ce1769.mihai.zenkov@gmail.com> <20100421025919.ad3a0830.mihai.zenkov@gmail.com> <20100421155657.GA19194@adacore.com> <20100422030910.7e84f7ea.mihai.zenkov@gmail.com> <20100422004441.GE19194@adacore.com> <20100422045136.bc397747.mihai.zenkov@gmail.com> <20100424030441.81b6b66b.mihai.zenkov@gmail.com> <20100427160523.GD2951@adacore.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Wed__28_Apr_2010_02_53_34_+0300_y9T5ux=nWeBdR6S0" X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2010-04/txt/msg00934.txt.bz2 This is a multi-part message in MIME format. --Multipart=_Wed__28_Apr_2010_02_53_34_+0300_y9T5ux=nWeBdR6S0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-length: 327 On Tue, 27 Apr 2010 09:05:23 -0700 Joel Brobecker wrote: > > +static const char *mangled_str; > > +/* Temporary obstack used for holding strings. */ > > +static struct obstack tempbuf; > > Can you remove the declaration of these globals? They shouldn't be > necessary anymore... Oops! Sorry, fixed. --Multipart=_Wed__28_Apr_2010_02_53_34_+0300_y9T5ux=nWeBdR6S0 Content-Type: application/octet-stream; name="gdb-100428-d.patch" Content-Disposition: attachment; filename="gdb-100428-d.patch" Content-Transfer-Encoding: base64 Content-length: 37011 Z2RiL05FV1M6CiogRCBsYW5ndWFnZSBzdXBwb3J0LgogU3VwcG9ydCBmb3Ig ZGVidWdnaW5nIHRoZSBEIHByb2dyYW1taW5nIGxhbmd1YWdlIGhhcyBiZWVu CiBpbnRlZ3JhdGVkIGludG8gR0RCLgpnZGIvQ2hhbmdlTG9nOgoJRCBsYW5n dWFnZSBzdXBwb3J0LgoJKiBNYWtlZmlsZS5pbiAoU0ZJTEVTKTogQWRkIGQt bGFuZy5jIGQtdmFscHJpbnQuYy4KCShDT01NT05fT0JTKTogQWRkIGQtbGFu Zy5vIGQtdmFscHJpbnQuby4KCShIRklMRVNfTk9fU1JDRElSKTogQWRkIGQt bGFuZy5oLgoJKiBjLWxhbmcuYyAoY19lbWl0X2NoYXIsIGV4cF9kZXNjcmlw dG9yX2MpOiBNYWtlIHB1YmxpYy4KCSogYy1sYW5nLmggKGNfZW1pdF9jaGFy LCBleHBfZGVzY3JpcHRvcl9jKTogQWRkIGRlY2xhcmF0aW9uLgoJKiBkLWxh bmcuYzogTmV3IGZpbGUuCgkqIGQtbGFuZy5oOiBOZXcgZmlsZS4KCSogZC12 YWxwcmludC5jOiBOZXcgZmlsZS4KCSogZGVmcy5oIChlbnVtIGxhbmd1YWdl KTogQWRkIGxhbmd1YWdlX2QuCgkqIGR3YXJmMnJlYWQuYyAoc2V0X2N1X2xh bmd1YWdlKTogQWRkIERXX0xBTkdfRC4KCSogbGFuZ3VhZ2UuYyAoYmlub3Bf cmVzdWx0X3R5cGUsIGludGVncmFsX3R5cGUsIGNoYXJhY3Rlcl90eXBlKSAK CShzdHJpbmdfdHlwZSwgYm9vbGVhbl90eXBlLCBzdHJ1Y3R1cmVkX3R5cGUp OiBBZGQgbGFuZ3VhZ2VfZC4KCSogc3ltZmlsZS5jIChpbml0X2ZpbGVuYW1l X2xhbmd1YWdlX3RhYmxlKTogQWRkIGxhbmd1YWdlX2QuCgkqIHN5bXRhYi5j OiBJbmNsdWRlIGQtbGFuZy5oLgoJKHN5bWJvbF9pbml0X2xhbmd1YWdlX3Nw ZWNpZmljLCBzeW1ib2xfZmluZF9kZW1hbmdsZWRfbmFtZSkKCShzeW1ib2xf bmF0dXJhbF9uYW1lLCBsb29rdXBfc3ltYm9sX2luX2xhbmd1YWdlKQoJKHN5 bWJvbF9kZW1hbmdsZWRfbmFtZSwgc3ltYm9sX21hdGNoZXNfZG9tYWluKTog QWRkIGxhbmd1YWdlX2QuCmdkYi9kb2MvQ2hhbmdlTG9nOgoJKiBnZGIudGV4 aW5mbzogQWRkIG1lbnRpb24gYWJvdXQgRCBsYW5ndWFnZSBzdXBwb3J0Lgpn ZGIvdGVzdHN1aXRlL0NoYW5nZUxvZzoKCSogZ2RiLmJhc2UvZGVmYXVsdC5l eHA6IEZpeCAic2V0IGxhbmd1YWdlIiB0ZXN0LgpkaWZmIC0tZ2l0IGEvZ2Ri L01ha2VmaWxlLmluIGIvZ2RiL01ha2VmaWxlLmluCmluZGV4IDc1MGZkZmQu LmNiYmQ4MTMgMTAwNjQ0Ci0tLSBhL2dkYi9NYWtlZmlsZS5pbgorKysgYi9n ZGIvTWFrZWZpbGUuaW4KQEAgLTY1OCw2ICs2NTgsNyBAQCBTRklMRVMgPSBh ZGEtZXhwLnkgYWRhLWxhbmcuYyBhZGEtdHlwZXByaW50LmMgYWRhLXZhbHBy aW50LmMgYWRhLXRhc2tzLmMgXAogCWNoYXJzZXQuYyBjbGktb3V0LmMgY29m ZnJlYWQuYyBjb2ZmLXBlLXJlYWQuYyBcCiAJY29tcGxhaW50cy5jIGNvbXBs ZXRlci5jIGNvcmVmaWxlLmMgXAogCWNwLWFiaS5jIGNwLXN1cHBvcnQuYyBj cC1uYW1lc3BhY2UuYyBjcC12YWxwcmludC5jIFwKKwlkLWxhbmcuYyBkLXZh bHByaW50LmMgXAogCWNwLW5hbWUtcGFyc2VyLnkgXAogCWRieHJlYWQuYyBk ZW1hbmdsZS5jIGRpY3Rpb25hcnkuYyBkaXNhc20uYyBkb3VibGVzdC5jIGR1 bW15LWZyYW1lLmMgXAogCWR3YXJmMmV4cHIuYyBkd2FyZjJsb2MuYyBkd2Fy ZjJyZWFkLmMgZHdhcmYyLWZyYW1lLmMgXApAQCAtNzI1LDcgKzcyNiw3IEBA IGNsaS1vdXQuaCBnZGJfZXhwYXQuaCBicmVha3BvaW50LmggaW5mY2FsbC5o IG9ic2QtdGRlcC5oIFwKIGV4ZWMuaCBtMzJyLXRkZXAuaCBvc2FiaS5oIGdk YmNvcmUuaCBzb2xpYi1zb20uaCBcCiBpMzg2YnNkLW5hdC5oIHhtbC1zdXBw b3J0LmggeG1sLXRkZXNjLmggYWxwaGFic2QtdGRlcC5oIGdkYl9vYnN0YWNr LmggXAogaWE2NC10ZGVwLmggYWRhLWxhbmcuaCB2YXJvYmouaCBmcnYtdGRl cC5oIG50by10ZGVwLmggc2VyaWFsLmggXAotYy1sYW5nLmggZnJhbWUuaCBl dmVudC1sb29wLmggYmxvY2suaCBjbGkvY2xpLXNldHNob3cuaAlcCitjLWxh bmcuaCBkLWxhbmcuaCBmcmFtZS5oIGV2ZW50LWxvb3AuaCBibG9jay5oIGNs aS9jbGktc2V0c2hvdy5oCVwKIGNsaS9jbGktZGVjb2RlLmggY2xpL2NsaS1j bWRzLmggY2xpL2NsaS1kdW1wLmggXAogY2xpL2NsaS1zY3JpcHQuaCBtYWNy b3RhYi5oIHN5bXRhYi5oIHZlcnNpb24uaCBnbnVsaWIvd2NoYXIuaW4uaCBc CiBnbnVsaWIvc3RyaW5nLmluLmggZ251bGliL3N0ci10d28td2F5LmggZ251 bGliL2V4dHJhL2xpbmstd2FybmluZy5oIFwKQEAgLTgzMSw3ICs4MzIsNyBA QCBDT01NT05fT0JTID0gJChERVBGSUxFUykgJChDT05GSUdfT0JTKSAkKFlZ T0JKKSBcCiAJZGJ4cmVhZC5vIGNvZmZyZWFkLm8gY29mZi1wZS1yZWFkLm8g XAogCWR3YXJmMnJlYWQubyBtaXBzcmVhZC5vIHN0YWJzcmVhZC5vIGNvcmVm aWxlLm8gXAogCWR3YXJmMmV4cHIubyBkd2FyZjJsb2MubyBkd2FyZjItZnJh bWUubyBcCi0JYWRhLWxhbmcubyBjLWxhbmcubyBmLWxhbmcubyBvYmpjLWxh bmcubyBcCisJYWRhLWxhbmcubyBjLWxhbmcubyBkLWxhbmcubyBmLWxhbmcu byBvYmpjLWxhbmcubyBcCiAJYWRhLXRhc2tzLm8gXAogCXVpLW91dC5vIGNs aS1vdXQubyBcCiAJdmFyb2JqLm8gdmVjLm8gd3JhcHBlci5vIFwKQEAgLTg0 MSw3ICs4NDIsOCBAQCBDT01NT05fT0JTID0gJChERVBGSUxFUykgJChDT05G SUdfT0JTKSAkKFlZT0JKKSBcCiAJc2VudGluZWwtZnJhbWUubyBcCiAJY29t cGxhaW50cy5vIHR5cGVwcmludC5vIFwKIAlhZGEtdHlwZXByaW50Lm8gYy10 eXBlcHJpbnQubyBmLXR5cGVwcmludC5vIG0yLXR5cGVwcmludC5vIFwKLQlh ZGEtdmFscHJpbnQubyBjLXZhbHByaW50Lm8gY3AtdmFscHJpbnQubyBmLXZh bHByaW50Lm8gbTItdmFscHJpbnQubyBcCisJYWRhLXZhbHByaW50Lm8gYy12 YWxwcmludC5vIGNwLXZhbHByaW50Lm8gZC12YWxwcmludC5vIGYtdmFscHJp bnQubyBcCisJbTItdmFscHJpbnQubyBcCiAJc2VyaWFsLm8gbWRlYnVncmVh ZC5vIHRvcC5vIHV0aWxzLm8gXAogCXVpLWZpbGUubyBcCiAJdXNlci1yZWdz Lm8gXApkaWZmIC0tZ2l0IGEvZ2RiL2MtbGFuZy5jIGIvZ2RiL2MtbGFuZy5j CmluZGV4IDgwNWM1NzIuLmFhNjlmOTQgMTAwNjQ0Ci0tLSBhL2dkYi9jLWxh bmcuYworKysgYi9nZGIvYy1sYW5nLmMKQEAgLTI1Myw4ICsyNTMsOSBAQCBw cmludF93Y2hhciAoZ2RiX3dpbnRfdCB3LCBjb25zdCBnZGJfYnl0ZSAqb3Jp ZywgaW50IG9yaWdfbGVuLAogICAgc3RyaW5nIHdob3NlIGRlbGltaXRlciBp cyBRVU9URVIuICBOb3RlIHRoYXQgdGhhdCBmb3JtYXQgZm9yIHByaW50aW5n CiAgICBjaGFyYWN0ZXJzIGFuZCBzdHJpbmdzIGlzIGxhbmd1YWdlIHNwZWNp ZmljLiAqLwogCi1zdGF0aWMgdm9pZAotY19lbWl0X2NoYXIgKGludCBjLCBz dHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50 IHF1b3RlcikKK3ZvaWQKK2NfZW1pdF9jaGFyIChpbnQgYywgc3RydWN0IHR5 cGUgKnR5cGUsCisJICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQg cXVvdGVyKQogewogICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdk YmFyY2hfYnl0ZV9vcmRlciAoZ2V0X3R5cGVfYXJjaCAodHlwZSkpOwogICBz dHJ1Y3Qgb2JzdGFjayB3Y2hhcl9idWYsIG91dHB1dDsKQEAgLTExMzUsNyAr MTEzNiw3IEBAIGNfbGFuZ3VhZ2VfYXJjaF9pbmZvIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCwKICAgbGFpLT5ib29sX3R5cGVfZGVmYXVsdCA9IGJ1aWx0 aW4tPmJ1aWx0aW5faW50OwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGV4 cF9kZXNjcmlwdG9yIGV4cF9kZXNjcmlwdG9yX2MgPSAKK2NvbnN0IHN0cnVj dCBleHBfZGVzY3JpcHRvciBleHBfZGVzY3JpcHRvcl9jID0gCiB7CiAgIHBy aW50X3N1YmV4cF9zdGFuZGFyZCwKICAgb3BlcmF0b3JfbGVuZ3RoX3N0YW5k YXJkLApkaWZmIC0tZ2l0IGEvZ2RiL2MtbGFuZy5oIGIvZ2RiL2MtbGFuZy5o CmluZGV4IDQyM2NlZTAuLmMyY2RkNTYgMTAwNjQ0Ci0tLSBhL2dkYi9jLWxh bmcuaAorKysgYi9nZGIvYy1sYW5nLmgKQEAgLTg3LDYgKzg3LDExIEBAIGV4 dGVybiB2b2lkIGNfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICogc3RyZWFt LCBzdHJ1Y3QgdHlwZSAqZWx0dHlwZSwKIGV4dGVybiB2b2lkIGNfbGFuZ3Vh Z2VfYXJjaF9pbmZvIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKIAkJCQkg IHN0cnVjdCBsYW5ndWFnZV9hcmNoX2luZm8gKmxhaSk7CiAKK2V4dGVybiBj b25zdCBzdHJ1Y3QgZXhwX2Rlc2NyaXB0b3IgZXhwX2Rlc2NyaXB0b3JfYzsK KworZXh0ZXJuIHZvaWQgY19lbWl0X2NoYXIgKGludCBjLCBzdHJ1Y3QgdHlw ZSAqdHlwZSwKKwkJCSBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcXVv dGVyKTsKKwogLyogVGhlc2UgYXJlIGluIGMtdHlwZXByaW50LmM6ICovCiAK IGV4dGVybiB2b2lkIGNfdHlwZV9wcmludF9iYXNlIChzdHJ1Y3QgdHlwZSAq LCBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsIGludCk7CmRpZmYgLS1naXQgYS9n ZGIvZC1sYW5nLmMgYi9nZGIvZC1sYW5nLmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uNmRiNTIxYgotLS0gL2Rldi9udWxsCisrKyBi L2dkYi9kLWxhbmcuYwpAQCAtMCwwICsxLDI3OCBAQAorLyogRCBsYW5ndWFn ZSBzdXBwb3J0IHJvdXRpbmVzIGZvciBHREIsIHRoZSBHTlUgZGVidWdnZXIu CisKKyAgIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCwgMjAwOSwg MjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAgVGhp cyBmaWxlIGlzIHBhcnQgb2YgR0RCLgorCisgICBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQorICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAgIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2Yg dGhlIExpY2Vuc2UsIG9yCisgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uICAqLworCisjaW5jbHVkZSAiZGVmcy5oIgorI2luY2x1ZGUgInN5bXRh Yi5oIgorI2luY2x1ZGUgImxhbmd1YWdlLmgiCisjaW5jbHVkZSAiZC1sYW5n LmgiCisjaW5jbHVkZSAiYy1sYW5nLmgiCisjaW5jbHVkZSAiZ2RiX3N0cmlu Zy5oIgorI2luY2x1ZGUgInBhcnNlci1kZWZzLmgiCisjaW5jbHVkZSAiZ2Ri X29ic3RhY2suaCIKKworI2luY2x1ZGUgPGN0eXBlLmg+CisKKy8qIEV4dHJh Y3QgaWRlbnRpZmllcnMgZnJvbSBNQU5HTEVEX1NUUiBhbmQgYXBwZW5kIGl0 IHRvIFRFTVBCVUYuCisgICBSZXR1cm4gMSBvbiBzdWNjZXNzIG9yIDAgb24g ZmFpbHVyZS4gICovCitzdGF0aWMgaW50CitleHRyYWN0X2lkZW50aWZpZXJz IChjb25zdCBjaGFyICptYW5nbGVkX3N0ciwgc3RydWN0IG9ic3RhY2sgKnRl bXBidWYpCit7CisgIGxvbmcgaSA9IDA7CisKKyAgd2hpbGUgKGlzZGlnaXQg KCptYW5nbGVkX3N0cikpCisgICAgeworICAgICAgaSA9IHN0cnRvbCAobWFu Z2xlZF9zdHIsIE5VTEwsIDEwKTsKKyAgICAgIG1hbmdsZWRfc3RyKys7Cisg ICAgICBpZiAoaSA8PSAwICAmJiBzdHJsZW4gKG1hbmdsZWRfc3RyKSA8IGkp CisgICAgICAgIHJldHVybiAwOworICAgICAgb2JzdGFja19ncm93ICh0ZW1w YnVmLCBtYW5nbGVkX3N0ciwgaSk7CisgICAgICBtYW5nbGVkX3N0ciArPSBp OworICAgICAgb2JzdGFja19ncm93X3N0ciAodGVtcGJ1ZiwgIi4iKTsKKyAg ICB9CisgIGlmICgqbWFuZ2xlZF9zdHIgPT0gJ1wwJyB8fCBpID09IDApCisg ICAgcmV0dXJuIDA7CisgIG9ic3RhY2tfYmxhbmsgKHRlbXBidWYsIC0xKTsK KyAgcmV0dXJuIDE7Cit9CisKKy8qIEV4dHJhY3QgYW5kIGRlbWFuZ2xlIHR5 cGUgZnJvbSBNQU5HTEVEX1NUUiBhbmQgYXBwZW5kIGl0IHRvIFRFTVBCVUYu CisgICBSZXR1cm4gMSBvbiBzdWNjZXNzIG9yIDAgb24gZmFpbHVyZS4gICov CitzdGF0aWMgaW50CitleHRyYWN0X3R5cGVfaW5mbyAoY29uc3QgY2hhciAq bWFuZ2xlZF9zdHIsIHN0cnVjdCBvYnN0YWNrICp0ZW1wYnVmKQoreworICBp ZiAoKm1hbmdsZWRfc3RyID09ICdcMCcpCisgICAgcmV0dXJuIDA7CisgIHN3 aXRjaCAoKm1hbmdsZWRfc3RyKyspCisgICAgeworICAgICAgY2FzZSAnQSc6 IC8qIGR5bmFtaWMgYXJyYXkgKi8KKyAgICAgIGNhc2UgJ0cnOiAvKiBzdGF0 aWMgYXJyYXkgKi8KKyAgICAgIGNhc2UgJ0gnOiAvKiBhc3NvY2lhdGl2ZSBh cnJheSAqLworCWlmICghZXh0cmFjdF90eXBlX2luZm8gKG1hbmdsZWRfc3Ry LCB0ZW1wYnVmKSkKKwkgIHJldHVybiAwOworCW9ic3RhY2tfZ3Jvd19zdHIg KHRlbXBidWYsICJbXSIpOworCXJldHVybiAxOworICAgICAgY2FzZSAnUCc6 IC8qIHBvaW50ZXIgKi8KKwlpZiAoIWV4dHJhY3RfdHlwZV9pbmZvIChtYW5n bGVkX3N0ciwgdGVtcGJ1ZikpCisJICByZXR1cm4gMDsKKwlvYnN0YWNrX2dy b3dfc3RyICh0ZW1wYnVmLCAiKiIpOworCXJldHVybiAxOworICAgICAgY2Fz ZSAnUic6IC8qIHJlZmVyZW5jZSAqLworCWlmICghZXh0cmFjdF90eXBlX2lu Zm8gKG1hbmdsZWRfc3RyLCB0ZW1wYnVmKSkKKwkgIHJldHVybiAwOworCW9i c3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICImIik7CisJcmV0dXJuIDE7Cisg ICAgICBjYXNlICdaJzogLyogcmV0dXJuIHZhbHVlICovCisJcmV0dXJuIGV4 dHJhY3RfdHlwZV9pbmZvIChtYW5nbGVkX3N0ciwgdGVtcGJ1Zik7CisgICAg ICBjYXNlICdKJzogLyogb3V0ICovCisJb2JzdGFja19ncm93X3N0ciAodGVt cGJ1ZiwgIm91dCAiKTsKKwlyZXR1cm4gZXh0cmFjdF90eXBlX2luZm8gKG1h bmdsZWRfc3RyLCB0ZW1wYnVmKTsKKyAgICAgIGNhc2UgJ0snOiAvKiBpbm91 dCAqLworCW9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJpbm91dCAiKTsK KwlyZXR1cm4gZXh0cmFjdF90eXBlX2luZm8gKG1hbmdsZWRfc3RyLCB0ZW1w YnVmKTsKKyAgICAgIGNhc2UgJ0UnOiAvKiBlbnVtICovCisgICAgICBjYXNl ICdUJzogLyogdHlwZWRlZiAqLworICAgICAgY2FzZSAnRCc6IC8qIGRlbGVn YXRlICovCisgICAgICBjYXNlICdDJzogLyogY2xhc3MgKi8KKyAgICAgIGNh c2UgJ1MnOiAvKiBzdHJ1Y3QgKi8KKwlyZXR1cm4gZXh0cmFjdF9pZGVudGlm aWVycyAobWFuZ2xlZF9zdHIsIHRlbXBidWYpOworCisgICAgICAvKiBiYXNp YyB0eXBlczogKi8KKyAgICAgIGNhc2UgJ24nOiBvYnN0YWNrX2dyb3dfc3Ry ICh0ZW1wYnVmLCAibm9uZSIpOyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ3Yn OiBvYnN0YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAidm9pZCIpOyByZXR1cm4g MTsKKyAgICAgIGNhc2UgJ2cnOiBvYnN0YWNrX2dyb3dfc3RyICh0ZW1wYnVm LCAiYnl0ZSIpOyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ2gnOiBvYnN0YWNr X2dyb3dfc3RyICh0ZW1wYnVmLCAidWJ5dGUiKTsgcmV0dXJuIDE7CisgICAg ICBjYXNlICdzJzogb2JzdGFja19ncm93X3N0ciAodGVtcGJ1ZiwgInNob3J0 Iik7IHJldHVybiAxOworICAgICAgY2FzZSAndCc6IG9ic3RhY2tfZ3Jvd19z dHIgKHRlbXBidWYsICJ1c2hvcnQiKTsgcmV0dXJuIDE7CisgICAgICBjYXNl ICdpJzogb2JzdGFja19ncm93X3N0ciAodGVtcGJ1ZiwgImludCIpOyByZXR1 cm4gMTsKKyAgICAgIGNhc2UgJ2snOiBvYnN0YWNrX2dyb3dfc3RyICh0ZW1w YnVmLCAidWludCIpOyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ2wnOiBvYnN0 YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAibG9uZyIpOyByZXR1cm4gMTsKKyAg ICAgIGNhc2UgJ20nOiBvYnN0YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAidWxv bmciKTsgcmV0dXJuIDE7CisgICAgICBjYXNlICdmJzogb2JzdGFja19ncm93 X3N0ciAodGVtcGJ1ZiwgImZsb2F0Iik7IHJldHVybiAxOworICAgICAgY2Fz ZSAnZCc6IG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJkb3VibGUiKTsg cmV0dXJuIDE7CisgICAgICBjYXNlICdlJzogb2JzdGFja19ncm93X3N0ciAo dGVtcGJ1ZiwgInJlYWwiKTsgcmV0dXJuIDE7CisKKyAgICAgIC8qIGltYWdp bmFyeSBhbmQgY29tcGxleDogKi8KKyAgICAgIGNhc2UgJ28nOiBvYnN0YWNr X2dyb3dfc3RyICh0ZW1wYnVmLCAiaWZsb2F0Iik7IHJldHVybiAxOworICAg ICAgY2FzZSAncCc6IG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJpZG91 YmxlIik7IHJldHVybiAxOworICAgICAgY2FzZSAnaic6IG9ic3RhY2tfZ3Jv d19zdHIgKHRlbXBidWYsICJpcmVhbCIpOyByZXR1cm4gMTsKKyAgICAgIGNh c2UgJ3EnOiBvYnN0YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAiY2Zsb2F0Iik7 IHJldHVybiAxOworICAgICAgY2FzZSAncic6IG9ic3RhY2tfZ3Jvd19zdHIg KHRlbXBidWYsICJjZG91YmxlIik7IHJldHVybiAxOworICAgICAgY2FzZSAn Yyc6IG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJjcmVhbCIpOyByZXR1 cm4gMTsKKworICAgICAgLyogb3RoZXIgdHlwZXM6ICovCisgICAgICBjYXNl ICdiJzogb2JzdGFja19ncm93X3N0ciAodGVtcGJ1ZiwgImJpdCIpOyByZXR1 cm4gMTsKKyAgICAgIGNhc2UgJ2EnOiBvYnN0YWNrX2dyb3dfc3RyICh0ZW1w YnVmLCAiY2hhciIpOyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ3UnOiBvYnN0 YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAid2NoYXIiKTsgcmV0dXJuIDE7Cisg ICAgICBjYXNlICd3Jzogb2JzdGFja19ncm93X3N0ciAodGVtcGJ1ZiwgImRj aGFyIik7IHJldHVybiAxOworCisgICAgICBkZWZhdWx0OgorCW9ic3RhY2tf Z3Jvd19zdHIgKHRlbXBidWYsICJ1bmtub3duIik7CisJcmV0dXJuIDE7Cisg ICAgfQorfQorCisvKiBJbXBsZW1lbnRzIHRoZSBsYV9kZW1hbmdsZSBsYW5n dWFnZV9kZWZuIHJvdXRpbmUgZm9yIGxhbmd1YWdlIEQuICAqLworY2hhciAq CitkX2RlbWFuZ2xlIChjb25zdCBjaGFyICpzeW1ib2wsIGludCBvcHRpb25z KQoreworICBzdHJ1Y3Qgb2JzdGFjayB0ZW1wYnVmOworICBjaGFyICpvdXRf c3RyOworICB1bnNpZ25lZCBjaGFyIGlzX2Z1bmMgPSAwOworCisgIGlmIChz eW1ib2wgPT0gTlVMTCkKKyAgICByZXR1cm4gTlVMTDsKKyAgZWxzZSBpZiAo c3RyY21wIChzeW1ib2wsICJfRG1haW4iKSA9PSAwKQorICAgIHJldHVybiB4 c3RyZHVwICgiRCBtYWluIik7CisKKyAgb2JzdGFja19pbml0ICgmdGVtcGJ1 Zik7CisgIAorICBpZiAoc3ltYm9sWzBdID09ICdfJyAmJiBzeW1ib2xbMV0g PT0gJ0QnKQorICAgIHsKKyAgICAgIHN5bWJvbCArPSAyOworICAgICAgaXNf ZnVuYyA9IDE7CisgICAgfQorICBlbHNlIGlmIChzdHJuY21wIChzeW1ib2ws ICJfX0NsYXNzXyIsIDgpID09IDApCisgICAgc3ltYm9sICs9IDg7CisgIGVs c2UgaWYgKHN0cm5jbXAgKHN5bWJvbCwgIl9faW5pdF8iLCA3KSA9PSAwKQor ICAgIHN5bWJvbCArPSA3OworICBlbHNlIGlmIChzdHJuY21wIChzeW1ib2ws ICJfX3Z0YmxfIiwgNykgPT0gMCkKKyAgICBzeW1ib2wgKz0gNzsKKyAgZWxz ZSBpZiAoc3RybmNtcCAoc3ltYm9sLCAiX19tb2RjdG9yXyIsIDEwKSA9PSAw KQorICAgIHN5bWJvbCArPSAxMDsKKyAgZWxzZSBpZiAoc3RybmNtcCAoc3lt Ym9sLCAiX19tb2RkdG9yXyIsIDEwKSA9PSAwKQorICAgIHN5bWJvbCArPSAx MDsKKyAgZWxzZSBpZiAoc3RybmNtcCAoc3ltYm9sLCAiX19Nb2R1bGVJbmZv XyIsIDEzKSA9PSAwKQorICAgIHN5bWJvbCArPSAxMzsKKyAgZWxzZQorICAg IHsKKyAgICAgIG9ic3RhY2tfZnJlZSAoJnRlbXBidWYsIE5VTEwpOworICAg ICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAKKyAgaWYgKCFleHRyYWN0X2lk ZW50aWZpZXJzIChzeW1ib2wsICZ0ZW1wYnVmKSkKKyAgICB7CisgICAgICBv YnN0YWNrX2ZyZWUgKCZ0ZW1wYnVmLCBOVUxMKTsKKyAgICAgIHJldHVybiBO VUxMOworICAgIH0KKworICBvYnN0YWNrX2dyb3dfc3RyICgmdGVtcGJ1Ziwg IigiKTsKKyAgaWYgKGlzX2Z1bmMgPT0gMSAmJiAqc3ltYm9sID09ICdGJykK KyAgICB7CisgICAgICBzeW1ib2wrKzsKKyAgICAgIHdoaWxlICgqc3ltYm9s ICE9ICdcMCcgJiYgKnN5bWJvbCAhPSAnWicpCisJeworCSAgaWYgKGlzX2Z1 bmMgPT0gMSkKKwkgICAgaXNfZnVuYysrOworCSAgZWxzZQorCSAgICBvYnN0 YWNrX2dyb3dfc3RyICgmdGVtcGJ1ZiwgIiwgIik7CisJICBpZiAoIWV4dHJh Y3RfdHlwZV9pbmZvIChzeW1ib2wsICZ0ZW1wYnVmKSkKKwkgICAgeworCSAg ICAgIG9ic3RhY2tfZnJlZSAoJnRlbXBidWYsIE5VTEwpOworCSAgICAgIHJl dHVybiBOVUxMOworCSAgIH0KKwl9CisgICAgIH0KKyAgb2JzdGFja19ncm93 X3N0cjAgKCZ0ZW1wYnVmLCAiKSIpOworCisgIC8qIERvZXNuJ3QgZGlzcGxh eSB0aGUgcmV0dXJuIHR5cGUsIGJ1dCB3b3VsZG4ndCBiZSB0b28gaGFyZCB0 byBkby4gICovCisKKyAgb3V0X3N0ciA9IHhzdHJkdXAgKG9ic3RhY2tfZmlu aXNoICgmdGVtcGJ1ZikpOworICBvYnN0YWNrX2ZyZWUgKCZ0ZW1wYnVmLCBO VUxMKTsKKyAgcmV0dXJuIG91dF9zdHI7Cit9CisKKy8qIFRhYmxlIG1hcHBp bmcgb3Bjb2RlcyBpbnRvIHN0cmluZ3MgZm9yIHByaW50aW5nIG9wZXJhdG9y cworICAgYW5kIHByZWNlZGVuY2VzIG9mIHRoZSBvcGVyYXRvcnMuICAqLwor c3RhdGljIGNvbnN0IHN0cnVjdCBvcF9wcmludCBkX29wX3ByaW50X3RhYltd ID0KK3sKKyAgeyIsIiwgQklOT1BfQ09NTUEsIFBSRUNfQ09NTUEsIDB9LAor ICB7Ij0iLCBCSU5PUF9BU1NJR04sIFBSRUNfQVNTSUdOLCAxfSwKKyAgeyJ8 fCIsIEJJTk9QX0xPR0lDQUxfT1IsIFBSRUNfTE9HSUNBTF9PUiwgMH0sCisg IHsiJiYiLCBCSU5PUF9MT0dJQ0FMX0FORCwgUFJFQ19MT0dJQ0FMX0FORCwg MH0sCisgIHsifCIsIEJJTk9QX0JJVFdJU0VfSU9SLCBQUkVDX0JJVFdJU0Vf SU9SLCAwfSwKKyAgeyJeIiwgQklOT1BfQklUV0lTRV9YT1IsIFBSRUNfQklU V0lTRV9YT1IsIDB9LAorICB7IiYiLCBCSU5PUF9CSVRXSVNFX0FORCwgUFJF Q19CSVRXSVNFX0FORCwgMH0sCisgIHsiPT0iLCBCSU5PUF9FUVVBTCwgUFJF Q19FUVVBTCwgMH0sCisgIHsiIT0iLCBCSU5PUF9OT1RFUVVBTCwgUFJFQ19F UVVBTCwgMH0sCisgIHsiPD0iLCBCSU5PUF9MRVEsIFBSRUNfT1JERVIsIDB9 LAorICB7Ij49IiwgQklOT1BfR0VRLCBQUkVDX09SREVSLCAwfSwKKyAgeyI+ IiwgQklOT1BfR1RSLCBQUkVDX09SREVSLCAwfSwKKyAgeyI8IiwgQklOT1Bf TEVTUywgUFJFQ19PUkRFUiwgMH0sCisgIHsiPj4iLCBCSU5PUF9SU0gsIFBS RUNfU0hJRlQsIDB9LAorICB7Ijw8IiwgQklOT1BfTFNILCBQUkVDX1NISUZU LCAwfSwKKyAgeyIrIiwgQklOT1BfQURELCBQUkVDX0FERCwgMH0sCisgIHsi LSIsIEJJTk9QX1NVQiwgUFJFQ19BREQsIDB9LAorICB7IioiLCBCSU5PUF9N VUwsIFBSRUNfTVVMLCAwfSwKKyAgeyIvIiwgQklOT1BfRElWLCBQUkVDX01V TCwgMH0sCisgIHsiJSIsIEJJTk9QX1JFTSwgUFJFQ19NVUwsIDB9LAorICB7 IkAiLCBCSU5PUF9SRVBFQVQsIFBSRUNfUkVQRUFULCAwfSwKKyAgeyItIiwg VU5PUF9ORUcsIFBSRUNfUFJFRklYLCAwfSwKKyAgeyIhIiwgVU5PUF9MT0dJ Q0FMX05PVCwgUFJFQ19QUkVGSVgsIDB9LAorICB7In4iLCBVTk9QX0NPTVBM RU1FTlQsIFBSRUNfUFJFRklYLCAwfSwKKyAgeyIqIiwgVU5PUF9JTkQsIFBS RUNfUFJFRklYLCAwfSwKKyAgeyImIiwgVU5PUF9BRERSLCBQUkVDX1BSRUZJ WCwgMH0sCisgIHsic2l6ZW9mICIsIFVOT1BfU0laRU9GLCBQUkVDX1BSRUZJ WCwgMH0sCisgIHsiKysiLCBVTk9QX1BSRUlOQ1JFTUVOVCwgUFJFQ19QUkVG SVgsIDB9LAorICB7Ii0tIiwgVU5PUF9QUkVERUNSRU1FTlQsIFBSRUNfUFJF RklYLCAwfSwKKyAge05VTEwsIDAsIDAsIDB9Cit9OworCitzdGF0aWMgY29u c3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gZF9sYW5ndWFnZV9kZWZuID0KK3sK KyAgImQiLAorICBsYW5ndWFnZV9kLAorICByYW5nZV9jaGVja19vZmYsCisg IHR5cGVfY2hlY2tfb2ZmLAorICBjYXNlX3NlbnNpdGl2ZV9vbiwKKyAgYXJy YXlfcm93X21ham9yLAorICBtYWNyb19leHBhbnNpb25fYywKKyAgJmV4cF9k ZXNjcmlwdG9yX2MsCisgIGNfcGFyc2UsCisgIGNfZXJyb3IsCisgIG51bGxf cG9zdF9wYXJzZXIsCisgIGNfcHJpbnRjaGFyLAkJCS8qIFByaW50IGEgY2hh cmFjdGVyIGNvbnN0YW50LiAgKi8KKyAgY19wcmludHN0ciwJCQkvKiBGdW5j dGlvbiB0byBwcmludCBzdHJpbmcgY29uc3RhbnQuICAqLworICBjX2VtaXRf Y2hhciwJCQkvKiBQcmludCBhIHNpbmdsZSBjaGFyLiAgKi8KKyAgY19wcmlu dF90eXBlLAkJCS8qIFByaW50IGEgdHlwZSB1c2luZyBhcHByb3ByaWF0ZSBz eW50YXguICAqLworICBjX3ByaW50X3R5cGVkZWYsCQkvKiBQcmludCBhIHR5 cGVkZWYgdXNpbmcgYXBwcm9wcmlhdGUgc3ludGF4LiAgKi8KKyAgZF92YWxf cHJpbnQsCQkJLyogUHJpbnQgYSB2YWx1ZSB1c2luZyBhcHByb3ByaWF0ZSBz eW50YXguICAqLworICBjX3ZhbHVlX3ByaW50LAkJLyogUHJpbnQgYSB0b3At bGV2ZWwgdmFsdWUuICAqLworICBOVUxMLAkJCQkvKiBMYW5ndWFnZSBzcGVj aWZpYyBza2lwX3RyYW1wb2xpbmUuICAqLworICAidGhpcyIsCisgIGJhc2lj X2xvb2t1cF9zeW1ib2xfbm9ubG9jYWwsIAorICBiYXNpY19sb29rdXBfdHJh bnNwYXJlbnRfdHlwZSwKKyAgZF9kZW1hbmdsZSwJCQkvKiBMYW5ndWFnZSBz cGVjaWZpYyBzeW1ib2wgZGVtYW5nbGVyLiAgKi8KKyAgTlVMTCwJCQkJLyog TGFuZ3VhZ2Ugc3BlY2lmaWMgY2xhc3NfbmFtZV9mcm9tX3BoeXNuYW1lLiAg Ki8KKyAgZF9vcF9wcmludF90YWIsCQkvKiBFeHByZXNzaW9uIG9wZXJhdG9y cyBmb3IgcHJpbnRpbmcuICAqLworICAxLAkJCQkvKiBDLXN0eWxlIGFycmF5 cy4gICovCisgIDAsCQkJCS8qIFN0cmluZyBsb3dlciBib3VuZC4gICovCisg IGRlZmF1bHRfd29yZF9icmVha19jaGFyYWN0ZXJzLAorICBkZWZhdWx0X21h a2Vfc3ltYm9sX2NvbXBsZXRpb25fbGlzdCwKKyAgY19sYW5ndWFnZV9hcmNo X2luZm8sCisgIGRlZmF1bHRfcHJpbnRfYXJyYXlfaW5kZXgsCisgIGRlZmF1 bHRfcGFzc19ieV9yZWZlcmVuY2UsCisgIGNfZ2V0X3N0cmluZywKKyAgTEFO R19NQUdJQworfTsKKwordm9pZAorX2luaXRpYWxpemVfZF9sYW5ndWFnZSAo dm9pZCkKK3sKKyAgYWRkX2xhbmd1YWdlICgmZF9sYW5ndWFnZV9kZWZuKTsK K30KZGlmZiAtLWdpdCBhL2dkYi9kLWxhbmcuaCBiL2dkYi9kLWxhbmcuaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZTI3ODI3Ci0t LSAvZGV2L251bGwKKysrIGIvZ2RiL2QtbGFuZy5oCkBAIC0wLDAgKzEsMzIg QEAKKy8qIEQgbGFuZ3VhZ2Ugc3VwcG9ydCBkZWZpbml0aW9ucyBmb3IgR0RC LCB0aGUgR05VIGRlYnVnZ2VyLgorCisgICBDb3B5cmlnaHQgKEMpIDIwMDUs IDIwMDYsIDIwMDgsIDIwMDksIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCisKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4KKwor ICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorICAgKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2lmICFkZWZpbmVkIChE X0xBTkdfSCkKKyNkZWZpbmUgRF9MQU5HX0ggMQorCisjaW5jbHVkZSAic3lt dGFiLmgiCisKK2V4dGVybiBjaGFyICpkX2RlbWFuZ2xlIChjb25zdCBjaGFy ICptYW5nbGVkLCBpbnQgb3B0aW9ucyk7CisKK2V4dGVybiBpbnQgZF92YWxf cHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFs YWRkciwKKwkJCWludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRy ZXNzLAorCQkJc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2Us CisJCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9u cyk7CisKKyNlbmRpZiAvKiAhZGVmaW5lZCAoRF9MQU5HX0gpICovCmRpZmYg LS1naXQgYS9nZGIvZC12YWxwcmludC5jIGIvZ2RiL2QtdmFscHJpbnQuYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42N2IzMmI3Ci0t LSAvZGV2L251bGwKKysrIGIvZ2RiL2QtdmFscHJpbnQuYwpAQCAtMCwwICsx LDkxIEBACisvKiBTdXBwb3J0IGZvciBwcmludGluZyBEIHZhbHVlcyBmb3Ig R0RCLCB0aGUgR05VIGRlYnVnZ2VyLgorCisgICBDb3B5cmlnaHQgKEMpIDIw MDgsIDIwMDksIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu CisKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4KKworICAgVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkKKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorICAgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQor ICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LiAgKi8KKworI2luY2x1ZGUgImRlZnMuaCIKKyNpbmNs dWRlICJnZGJ0eXBlcy5oIgorI2luY2x1ZGUgImdkYmNvcmUuaCIKKyNpbmNs dWRlICJkLWxhbmcuaCIKKyNpbmNsdWRlICJjLWxhbmcuaCIKKworLyogQXNz dW1pbmcgdGhhdCBUWVBFIGlzIGEgVFlQRV9DT0RFX1NUUlVDVCwgdmVyaWZ5 IHRoYXQgVFlQRSBpcworICAgYSBkeW5hbWljIGFycmF5LCBhbmQgdGhlbiBw cmludCBpdHMgdmFsdWUgdG8gU1RSRUFNLiAgUmV0dXJuCisgICB0aGUgbnVt YmVyIG9mIHN0cmluZyBjaGFyYWN0ZXJzIHByaW50ZWQsIG9yIC0xIGlmIFRZ UEUgaXMgbm90CisgICBhIGR5bmFtaWMgYXJyYXkuICAqLworc3RhdGljIGlu dAorZHluYW1pY19hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29u c3QgZ2RiX2J5dGUgKnZhbGFkZHIsCisJCSAgICBpbnQgZW1iZWRkZWRfb2Zm c2V0LCBDT1JFX0FERFIgYWRkcmVzcywKKwkJICAgIHN0cnVjdCB1aV9maWxl ICpzdHJlYW0sIGludCByZWN1cnNlLAorCQkgICAgY29uc3Qgc3RydWN0IHZh bHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCit7CisgIGlmIChUWVBFX05G SUVMRFMgKHR5cGUpID09IDIKKyAgICAgICYmIFRZUEVfQ09ERSAoVFlQRV9G SUVMRF9UWVBFICh0eXBlLCAwKSkgPT0gVFlQRV9DT0RFX0lOVAorICAgICAg JiYgc3RyY21wIChUWVBFX0ZJRUxEX05BTUUgKHR5cGUsIDApLCAibGVuZ3Ro IikgPT0gMAorICAgICAgJiYgc3RyY21wIChUWVBFX0ZJRUxEX05BTUUgKHR5 cGUsIDEpLCAicHRyIikgPT0gMCkKKyAgICB7CisgICAgICBDT1JFX0FERFIg YWRkcjsKKyAgICAgIHN0cnVjdCB0eXBlICplbHR0eXBlOworICAgICAgc3Ry dWN0IHR5cGUgKnRydWVfdHlwZTsKKyAgICAgIHN0cnVjdCB0eXBlICpwdHJf dHlwZTsKKyAgICAgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBlOworICAgICAg Y29uc3QgZ2RiX2J5dGUgKnB0cmFkZHI7CisgICAgICBzdHJ1Y3QgdmFsdWUg KnZhbDsKKyAgICAgIGludCBsZW5ndGg7CisKKyAgICAgIGxlbmd0aCA9IHVu cGFja19maWVsZF9hc19sb25nICh0eXBlLCB2YWxhZGRyICsgZW1iZWRkZWRf b2Zmc2V0LCAwKTsKKworICAgICAgcHRyX3R5cGUgPSBUWVBFX0ZJRUxEX1RZ UEUgKHR5cGUsIDEpOworICAgICAgZWx0dHlwZSA9IGNoZWNrX3R5cGVkZWYg KFRZUEVfVEFSR0VUX1RZUEUgKHB0cl90eXBlKSk7CisgICAgICBhZGRyID0g dW5wYWNrX3BvaW50ZXIgKHB0cl90eXBlLAorCQkJICAgICB2YWxhZGRyICsg VFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsIDEpIC8gOAorCQkJICAgICArIGVt YmVkZGVkX29mZnNldCk7CisgICAgICB0cnVlX3R5cGUgPSBjaGVja190eXBl ZGVmIChlbHR0eXBlKTsKKworICAgICAgdHJ1ZV90eXBlID0gbG9va3VwX2Fy cmF5X3JhbmdlX3R5cGUgKHRydWVfdHlwZSwgMCwgbGVuZ3RoIC0gMSk7Cisg ICAgICB2YWwgPSB2YWx1ZV9hdCAodHJ1ZV90eXBlLCBhZGRyKTsKKyAgICAg IHB0cmFkZHIgPSB2YWx1ZV9jb250ZW50cyAodmFsKTsKKworICAgICAgcmV0 dXJuIGRfdmFsX3ByaW50ICh0cnVlX3R5cGUsIHB0cmFkZHIsIDAsIGFkZHIs IHN0cmVhbSwgcmVjdXJzZSArIDEsCisJCQkgIG9wdGlvbnMpOworICAgIH0K KyAgcmV0dXJuIC0xOworfQorCisvKiBJbXBsZW1lbnRzIHRoZSBsYV92YWxf cHJpbnQgcm91dGluZSBmb3IgbGFuZ3VhZ2UgRC4gICovCitpbnQKK2RfdmFs X3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZh bGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCisgICAgICAgICAgICAgQ09S RV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBy ZWN1cnNlLAorICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmlu dF9vcHRpb25zICpvcHRpb25zKQoreworICBpbnQgcmV0OworCisgIENIRUNL X1RZUEVERUYgKHR5cGUpOworICBzd2l0Y2ggKFRZUEVfQ09ERSAodHlwZSkp CisgICAgeworICAgICAgY2FzZSBUWVBFX0NPREVfU1RSVUNUOgorICAgICAg ICByZXQgPSBkeW5hbWljX2FycmF5X3R5cGUgKHR5cGUsIHZhbGFkZHIsIGVt YmVkZGVkX29mZnNldCwgYWRkcmVzcywKKwkJCQkgIHN0cmVhbSwgcmVjdXJz ZSwgb3B0aW9ucyk7CisJaWYgKHJldCAhPSAtMSkKKwkgICBicmVhazsKKyAg ICAgIGRlZmF1bHQ6CisJcmV0ID0gY192YWxfcHJpbnQgKHR5cGUsIHZhbGFk ZHIsIGVtYmVkZGVkX29mZnNldCwgYWRkcmVzcywgc3RyZWFtLAorCQkJICAg cmVjdXJzZSwgb3B0aW9ucyk7CisgICAgfQorCisgIHJldHVybiByZXQ7Cit9 CmRpZmYgLS1naXQgYS9nZGIvZGVmcy5oIGIvZ2RiL2RlZnMuaAppbmRleCAy YzRlNWM0Li43MWU4YjNhIDEwMDY0NAotLS0gYS9nZGIvZGVmcy5oCisrKyBi L2dkYi9kZWZzLmgKQEAgLTE4OCw2ICsxODgsNyBAQCBlbnVtIGxhbmd1YWdl CiAgICAgbGFuZ3VhZ2VfYXV0bywJCS8qIFBsYWNlaG9sZGVyIGZvciBhdXRv bWF0aWMgc2V0dGluZyAqLwogICAgIGxhbmd1YWdlX2MsCQkJLyogQyAqLwog ICAgIGxhbmd1YWdlX2NwbHVzLAkJLyogQysrICovCisgICAgbGFuZ3VhZ2Vf ZCwJCQkvKiBEICovCiAgICAgbGFuZ3VhZ2Vfb2JqYywJCS8qIE9iamVjdGl2 ZS1DICovCiAgICAgbGFuZ3VhZ2VfamF2YSwJCS8qIEphdmEgKi8KICAgICBs YW5ndWFnZV9mb3J0cmFuLAkJLyogRm9ydHJhbiAqLwpkaWZmIC0tZ2l0IGEv Z2RiL2RvYy9nZGIudGV4aW5mbyBiL2dkYi9kb2MvZ2RiLnRleGluZm8KaW5k ZXggM2JiOGVmOS4uNWMxOTlmZiAxMDA2NDQKLS0tIGEvZ2RiL2RvYy9nZGIu dGV4aW5mbworKysgYi9nZGIvZG9jL2dkYi50ZXhpbmZvCkBAIC0yMTQsNiAr MjE0LDEwIEBAIFlvdSBjYW4gdXNlIEB2YWx1ZXtHREJOfSB0byBkZWJ1ZyBw cm9ncmFtcyB3cml0dGVuIGluIEMgYW5kIENAdHsrK30uCiBGb3IgbW9yZSBp bmZvcm1hdGlvbiwgc2VlIEByZWZ7U3VwcG9ydGVkIExhbmd1YWdlcywsU3Vw cG9ydGVkIExhbmd1YWdlc30uCiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2Vl IEByZWZ7QywsQyBhbmQgQysrfS4KIAorQGNpbmRleCBECitTdXBwb3J0IGZv ciBEIGlzIHBhcnRpYWwuICBGb3IgaW5mb3JtYXRpb24gb24gRCwgc2VlCitA cmVme0QsLER9LgorCiBAY2luZGV4IE1vZHVsYS0yCiBTdXBwb3J0IGZvciBN b2R1bGEtMiBpcyBwYXJ0aWFsLiAgRm9yIGluZm9ybWF0aW9uIG9uIE1vZHVs YS0yLCBzZWUKIEByZWZ7TW9kdWxhLTIsLE1vZHVsYS0yfS4KQEAgLTEwODI0 LDYgKzEwODI4LDkgQEAgQyBzb3VyY2UgZmlsZQogQGl0ZW14IC5jKysKIENA dHsrK30gc291cmNlIGZpbGUKIAorQGl0ZW0gLmQKK0Qgc291cmNlIGZpbGUK KwogQGl0ZW0gLm0KIE9iamVjdGl2ZS1DIHNvdXJjZSBmaWxlCiAKQEAgLTEx MTAxLDcgKzExMTA4LDcgQEAgYmVpbmcgc2V0IGF1dG9tYXRpY2FsbHkgYnkg QHZhbHVle0dEQk59LgogQG5vZGUgU3VwcG9ydGVkIExhbmd1YWdlcwogQHNl Y3Rpb24gU3VwcG9ydGVkIExhbmd1YWdlcwogCi1AdmFsdWV7R0RCTn0gc3Vw cG9ydHMgQywgQ0B0eysrfSwgT2JqZWN0aXZlLUMsIEZvcnRyYW4sIEphdmEs IFBhc2NhbCwKK0B2YWx1ZXtHREJOfSBzdXBwb3J0cyBDLCBDQHR7Kyt9LCBE LCBPYmplY3RpdmUtQywgRm9ydHJhbiwgSmF2YSwgUGFzY2FsLAogYXNzZW1i bHksIE1vZHVsYS0yLCBhbmQgQWRhLgogQGMgVGhpcyBpcyBmYWxzZSAuLi4K IFNvbWUgQHZhbHVle0dEQk59IGZlYXR1cmVzIG1heSBiZSB1c2VkIGluIGV4 cHJlc3Npb25zIHJlZ2FyZGxlc3Mgb2YgdGhlCkBAIC0xMTEyMCw2ICsxMTEy Nyw3IEBAIGxhbmd1YWdlIHJlZmVyZW5jZSBvciB0dXRvcmlhbC4KIAogQG1l bnUKICogQzo6ICAgICAgICAgICAgICAgICAgICAgICAgICAgQyBhbmQgQ0B0 eysrfQorKiBEOjogICAgICAgICAgICAgICAgICAgICAgICAgICBECiAqIE9i amVjdGl2ZS1DOjogICAgICAgICAgICAgICAgIE9iamVjdGl2ZS1DCiAqIEZv cnRyYW46OiAgICAgICAgICAgICAgICAgICAgIEZvcnRyYW4KICogUGFzY2Fs OjogICAgICAgICAgICAgICAgICAgICAgUGFzY2FsCkBAIC0xMTY1Nyw2ICsx MTY2NSwxNCBAQCBJbiB0aGUgUG93ZXJQQyBhcmNoaXRlY3R1cmUsIEB2YWx1 ZXtHREJOfSBwcm92aWRlcyBhIHNldCBvZiBwc2V1ZG8tcmVnaXN0ZXJzCiB0 byBpbnNwZWN0IEBjb2Rle19EZWNpbWFsMTI4fSB2YWx1ZXMgc3RvcmVkIGlu IGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycy4KIFNlZSBAcmVme1Bvd2VyUEMs LFBvd2VyUEN9IGZvciBtb3JlIGRldGFpbHMuCiAKK0Bub2RlIEQKK0BzdWJz ZWN0aW9uIEQKKworQGNpbmRleCBECitAdmFsdWV7R0RCTn0gY2FuIGJlIHVz ZWQgdG8gZGVidWcgcHJvZ3JhbXMgd3JpdHRlbiBpbiBEIGFuZCBjb21waWxl ZCB3aXRoCitHREMsIExEQyBvciBETUQuIEN1cnJlbnRseSBAdmFsdWV7R0RC Tn0gc3VwcG9ydHMgb25seSBvbmUgRCBzcGVjaWZpYworZmVhdHVyZSAtIGR5 bmFtaWMgYXJyYXlzLgorCiBAbm9kZSBPYmplY3RpdmUtQwogQHN1YnNlY3Rp b24gT2JqZWN0aXZlLUMKIApkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQu YyBiL2dkYi9kd2FyZjJyZWFkLmMKaW5kZXggMzA5NmFiNy4uZjRjYmM1OSAx MDA2NDQKLS0tIGEvZ2RiL2R3YXJmMnJlYWQuYworKysgYi9nZGIvZHdhcmYy cmVhZC5jCkBAIC03NjE5LDYgKzc2MTksOSBAQCBzZXRfY3VfbGFuZ3VhZ2Ug KHVuc2lnbmVkIGludCBsYW5nLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAg ICBjYXNlIERXX0xBTkdfQ19wbHVzX3BsdXM6CiAgICAgICBjdS0+bGFuZ3Vh Z2UgPSBsYW5ndWFnZV9jcGx1czsKICAgICAgIGJyZWFrOworICAgIGNhc2Ug RFdfTEFOR19EOgorICAgICAgY3UtPmxhbmd1YWdlID0gbGFuZ3VhZ2VfZDsK KyAgICAgIGJyZWFrOwogICAgIGNhc2UgRFdfTEFOR19Gb3J0cmFuNzc6CiAg ICAgY2FzZSBEV19MQU5HX0ZvcnRyYW45MDoKICAgICBjYXNlIERXX0xBTkdf Rm9ydHJhbjk1OgpkaWZmIC0tZ2l0IGEvZ2RiL2xhbmd1YWdlLmMgYi9nZGIv bGFuZ3VhZ2UuYwppbmRleCBkY2Q3MGIwLi5hYmE4YTllIDEwMDY0NAotLS0g YS9nZGIvbGFuZ3VhZ2UuYworKysgYi9nZGIvbGFuZ3VhZ2UuYwpAQCAtNDg2 LDYgKzQ4Niw3IEBAIGJpbm9wX3Jlc3VsdF90eXBlIChzdHJ1Y3QgdmFsdWUg KnYxLCBzdHJ1Y3QgdmFsdWUgKnYyKQogICAgIHsKICAgICBjYXNlIGxhbmd1 YWdlX2M6CiAgICAgY2FzZSBsYW5ndWFnZV9jcGx1czoKKyAgICBjYXNlIGxh bmd1YWdlX2Q6CiAgICAgY2FzZSBsYW5ndWFnZV9vYmpjOgogICAgICAgaWYg KFRZUEVfQ09ERSAodDEpID09IFRZUEVfQ09ERV9GTFQpCiAJcmV0dXJuIFRZ UEVfQ09ERSAodDIpID09IFRZUEVfQ09ERV9GTFQgJiYgbDIgPiBsMSA/CkBA IC01OTcsNiArNTk4LDcgQEAgaW50ZWdyYWxfdHlwZSAoc3RydWN0IHR5cGUg KnR5cGUpCiAgICAgewogICAgIGNhc2UgbGFuZ3VhZ2VfYzoKICAgICBjYXNl IGxhbmd1YWdlX2NwbHVzOgorICAgIGNhc2UgbGFuZ3VhZ2VfZDoKICAgICBj YXNlIGxhbmd1YWdlX29iamM6CiAgICAgICByZXR1cm4gKFRZUEVfQ09ERSAo dHlwZSkgIT0gVFlQRV9DT0RFX0lOVCkgJiYKIAkoVFlQRV9DT0RFICh0eXBl KSAhPSBUWVBFX0NPREVfRU5VTSkgPyAwIDogMTsKQEAgLTYzNyw2ICs2Mzks NyBAQCBjaGFyYWN0ZXJfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUpCiAKICAg ICBjYXNlIGxhbmd1YWdlX2M6CiAgICAgY2FzZSBsYW5ndWFnZV9jcGx1czoK KyAgICBjYXNlIGxhbmd1YWdlX2Q6CiAgICAgY2FzZSBsYW5ndWFnZV9vYmpj OgogICAgICAgcmV0dXJuIChUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09E RV9JTlQpICYmCiAJVFlQRV9MRU5HVEggKHR5cGUpID09IHNpemVvZiAoY2hh cikKQEAgLTY1OSw2ICs2NjIsNyBAQCBzdHJpbmdfdHlwZSAoc3RydWN0IHR5 cGUgKnR5cGUpCiAKICAgICBjYXNlIGxhbmd1YWdlX2M6CiAgICAgY2FzZSBs YW5ndWFnZV9jcGx1czoKKyAgICBjYXNlIGxhbmd1YWdlX2Q6CiAgICAgY2Fz ZSBsYW5ndWFnZV9vYmpjOgogICAgICAgLyogQyBkb2VzIG5vdCBoYXZlIGRp c3RpbmN0IHN0cmluZyB0eXBlLiAqLwogICAgICAgcmV0dXJuICgwKTsKQEAg LTY3OCw2ICs2ODIsNyBAQCBib29sZWFuX3R5cGUgKHN0cnVjdCB0eXBlICp0 eXBlKQogICAgIHsKICAgICBjYXNlIGxhbmd1YWdlX2M6CiAgICAgY2FzZSBs YW5ndWFnZV9jcGx1czoKKyAgICBjYXNlIGxhbmd1YWdlX2Q6CiAgICAgY2Fz ZSBsYW5ndWFnZV9vYmpjOgogICAgICAgLyogTWlnaHQgYmUgbW9yZSBjbGVh bmx5IGhhbmRsZWQgYnkgaGF2aW5nIGEKICAgICAgICAgIFRZUEVfQ09ERV9J TlRfTk9UX0JPT0wgZm9yICh0aGUgZGVsZXRlZCkgQ0hJTEwgYW5kIHN1Y2gK QEAgLTcxNyw2ICs3MjIsNyBAQCBzdHJ1Y3R1cmVkX3R5cGUgKHN0cnVjdCB0 eXBlICp0eXBlKQogICAgIHsKICAgICBjYXNlIGxhbmd1YWdlX2M6CiAgICAg Y2FzZSBsYW5ndWFnZV9jcGx1czoKKyAgICBjYXNlIGxhbmd1YWdlX2Q6CiAg ICAgY2FzZSBsYW5ndWFnZV9vYmpjOgogICAgICAgcmV0dXJuIChUWVBFX0NP REUgKHR5cGUpID09IFRZUEVfQ09ERV9TVFJVQ1QpIHx8CiAJKFRZUEVfQ09E RSAodHlwZSkgPT0gVFlQRV9DT0RFX1VOSU9OKSB8fApkaWZmIC0tZ2l0IGEv Z2RiL3N5bWZpbGUuYyBiL2dkYi9zeW1maWxlLmMKaW5kZXggYTAyYjJkMi4u ZTM5YTFmMCAxMDA2NDQKLS0tIGEvZ2RiL3N5bWZpbGUuYworKysgYi9nZGIv c3ltZmlsZS5jCkBAIC0yNjE2LDYgKzI2MTYsNyBAQCBpbml0X2ZpbGVuYW1l X2xhbmd1YWdlX3RhYmxlICh2b2lkKQogICAgICAgZmlsZW5hbWVfbGFuZ3Vh Z2VfdGFibGUgPQogCXhtYWxsb2MgKGZsX3RhYmxlX3NpemUgKiBzaXplb2Yg KCpmaWxlbmFtZV9sYW5ndWFnZV90YWJsZSkpOwogICAgICAgYWRkX2ZpbGVu YW1lX2xhbmd1YWdlICgiLmMiLCBsYW5ndWFnZV9jKTsKKyAgICAgIGFkZF9m aWxlbmFtZV9sYW5ndWFnZSAoIi5kIiwgbGFuZ3VhZ2VfZCk7CiAgICAgICBh ZGRfZmlsZW5hbWVfbGFuZ3VhZ2UgKCIuQyIsIGxhbmd1YWdlX2NwbHVzKTsK ICAgICAgIGFkZF9maWxlbmFtZV9sYW5ndWFnZSAoIi5jYyIsIGxhbmd1YWdl X2NwbHVzKTsKICAgICAgIGFkZF9maWxlbmFtZV9sYW5ndWFnZSAoIi5jcCIs IGxhbmd1YWdlX2NwbHVzKTsKZGlmZiAtLWdpdCBhL2dkYi9zeW10YWIuYyBi L2dkYi9zeW10YWIuYwppbmRleCAxZDZiNjQ4Li42N2E3ODRiIDEwMDY0NAot LS0gYS9nZGIvc3ltdGFiLmMKKysrIGIvZ2RiL3N5bXRhYi5jCkBAIC0zOSw2 ICszOSw3IEBACiAjaW5jbHVkZSAic291cmNlLmgiCiAjaW5jbHVkZSAiZmls ZW5hbWVzLmgiCQkvKiBmb3IgRklMRU5BTUVfQ01QICovCiAjaW5jbHVkZSAi b2JqYy1sYW5nLmgiCisjaW5jbHVkZSAiZC1sYW5nLmgiCiAjaW5jbHVkZSAi YWRhLWxhbmcuaCIKICNpbmNsdWRlICJwLWxhbmcuaCIKICNpbmNsdWRlICJh ZGRybWFwLmgiCkBAIC0zNDYsNiArMzQ3LDcgQEAgc3ltYm9sX2luaXRfbGFu Z3VhZ2Vfc3BlY2lmaWMgKHN0cnVjdCBnZW5lcmFsX3N5bWJvbF9pbmZvICpn c3ltYm9sLAogewogICBnc3ltYm9sLT5sYW5ndWFnZSA9IGxhbmd1YWdlOwog ICBpZiAoZ3N5bWJvbC0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfY3BsdXMKKyAg ICAgIHx8IGdzeW1ib2wtPmxhbmd1YWdlID09IGxhbmd1YWdlX2QKICAgICAg IHx8IGdzeW1ib2wtPmxhbmd1YWdlID09IGxhbmd1YWdlX2phdmEKICAgICAg IHx8IGdzeW1ib2wtPmxhbmd1YWdlID09IGxhbmd1YWdlX29iamMpCiAgICAg ewpAQCAtNDQ5LDYgKzQ1MSwxNiBAQCBzeW1ib2xfZmluZF9kZW1hbmdsZWRf bmFtZSAoc3RydWN0IGdlbmVyYWxfc3ltYm9sX2luZm8gKmdzeW1ib2wsCiAJ ICByZXR1cm4gZGVtYW5nbGVkOwogCX0KICAgICB9CisgIGlmIChnc3ltYm9s LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9kCisgICAgICB8fCBnc3ltYm9sLT5s YW5ndWFnZSA9PSBsYW5ndWFnZV9hdXRvKQorICAgIHsKKyAgICAgIGRlbWFu Z2xlZCA9IGRfZGVtYW5nbGUobWFuZ2xlZCwgMCk7CisgICAgICBpZiAoZGVt YW5nbGVkICE9IE5VTEwpCisJeworCSAgZ3N5bWJvbC0+bGFuZ3VhZ2UgPSBs YW5ndWFnZV9kOworCSAgcmV0dXJuIGRlbWFuZ2xlZDsKKwl9CisgICAgfQog ICByZXR1cm4gTlVMTDsKIH0KIApAQCAtNjI2LDYgKzYzOCw3IEBAIHN5bWJv bF9uYXR1cmFsX25hbWUgKGNvbnN0IHN0cnVjdCBnZW5lcmFsX3N5bWJvbF9p bmZvICpnc3ltYm9sKQogICBzd2l0Y2ggKGdzeW1ib2wtPmxhbmd1YWdlKQog ICAgIHsKICAgICBjYXNlIGxhbmd1YWdlX2NwbHVzOgorICAgIGNhc2UgbGFu Z3VhZ2VfZDoKICAgICBjYXNlIGxhbmd1YWdlX2phdmE6CiAgICAgY2FzZSBs YW5ndWFnZV9vYmpjOgogICAgICAgaWYgKGdzeW1ib2wtPmxhbmd1YWdlX3Nw ZWNpZmljLmNwbHVzX3NwZWNpZmljLmRlbWFuZ2xlZF9uYW1lICE9IE5VTEwp CkBAIC02NTEsNiArNjY0LDcgQEAgc3ltYm9sX2RlbWFuZ2xlZF9uYW1lIChj b25zdCBzdHJ1Y3QgZ2VuZXJhbF9zeW1ib2xfaW5mbyAqZ3N5bWJvbCkKICAg c3dpdGNoIChnc3ltYm9sLT5sYW5ndWFnZSkKICAgICB7CiAgICAgY2FzZSBs YW5ndWFnZV9jcGx1czoKKyAgICBjYXNlIGxhbmd1YWdlX2Q6CiAgICAgY2Fz ZSBsYW5ndWFnZV9qYXZhOgogICAgIGNhc2UgbGFuZ3VhZ2Vfb2JqYzoKICAg ICAgIGlmIChnc3ltYm9sLT5sYW5ndWFnZV9zcGVjaWZpYy5jcGx1c19zcGVj aWZpYy5kZW1hbmdsZWRfbmFtZSAhPSBOVUxMKQpAQCAtOTQwLDcgKzk1NCw3 IEBAIGxvb2t1cF9zeW1ib2xfaW5fbGFuZ3VhZ2UgKGNvbnN0IGNoYXIgKm5h bWUsIGNvbnN0IHN0cnVjdCBibG9jayAqYmxvY2ssCiAKICAgbW9kaWZpZWRf bmFtZSA9IG5hbWU7CiAKLSAgLyogSWYgd2UgYXJlIHVzaW5nIEMrKyBvciBK YXZhLCBkZW1hbmdsZSB0aGUgbmFtZSBiZWZvcmUgZG9pbmcgYSBsb29rdXAs IHNvCisgIC8qIElmIHdlIGFyZSB1c2luZyBDKyssIEQsIG9yIEphdmEsIGRl bWFuZ2xlIHRoZSBuYW1lIGJlZm9yZSBkb2luZyBhIGxvb2t1cCwgc28KICAg ICAgd2UgY2FuIGFsd2F5cyBiaW5hcnkgc2VhcmNoLiAqLwogICBpZiAobGFu ZyA9PSBsYW5ndWFnZV9jcGx1cykKICAgICB7CkBAIC05NzIsNiArOTg2LDE1 IEBAIGxvb2t1cF9zeW1ib2xfaW5fbGFuZ3VhZ2UgKGNvbnN0IGNoYXIgKm5h bWUsIGNvbnN0IHN0cnVjdCBibG9jayAqYmxvY2ssCiAJICBtYWtlX2NsZWFu dXAgKHhmcmVlLCBkZW1hbmdsZWRfbmFtZSk7CiAJfQogICAgIH0KKyAgZWxz ZSBpZiAobGFuZyA9PSBsYW5ndWFnZV9kKQorICAgIHsKKyAgICAgIGRlbWFu Z2xlZF9uYW1lID0gZF9kZW1hbmdsZSAobmFtZSwgMCk7CisgICAgICBpZiAo ZGVtYW5nbGVkX25hbWUpCisJeworCSAgbW9kaWZpZWRfbmFtZSA9IGRlbWFu Z2xlZF9uYW1lOworCSAgbWFrZV9jbGVhbnVwICh4ZnJlZSwgZGVtYW5nbGVk X25hbWUpOworCX0KKyAgICB9CiAKICAgaWYgKGNhc2Vfc2Vuc2l0aXZpdHkg PT0gY2FzZV9zZW5zaXRpdmVfb2ZmKQogICAgIHsKQEAgLTE0MTIsNiArMTQz NSw3IEBAIHN5bWJvbF9tYXRjaGVzX2RvbWFpbiAoZW51bSBsYW5ndWFnZSBz eW1ib2xfbGFuZ3VhZ2UsCiAgICAgIEEgSmF2YSBjbGFzcyBkZWNsYXJhdGlv biBhbHNvIGRlZmluZXMgYSB0eXBlZGVmIGZvciB0aGUgY2xhc3MuCiAgICAg IFNpbWlsYXJseSwgYW55IEFkYSB0eXBlIGRlY2xhcmF0aW9uIGltcGxpY2l0 bHkgZGVmaW5lcyBhIHR5cGVkZWYuICAqLwogICBpZiAoc3ltYm9sX2xhbmd1 YWdlID09IGxhbmd1YWdlX2NwbHVzCisgICAgICB8fCBzeW1ib2xfbGFuZ3Vh Z2UgPT0gbGFuZ3VhZ2VfZAogICAgICAgfHwgc3ltYm9sX2xhbmd1YWdlID09 IGxhbmd1YWdlX2phdmEKICAgICAgIHx8IHN5bWJvbF9sYW5ndWFnZSA9PSBs YW5ndWFnZV9hZGEpCiAgICAgewpkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9kZWZhdWx0LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvZGVmYXVsdC5leHAKaW5kZXggOTdkNTQwNy4uMmExMzAwNyAxMDA2NDQK LS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9kZWZhdWx0LmV4cAorKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2RlZmF1bHQuZXhwCkBAIC01MzEs NyArNTMxLDcgQEAgZ2RiX3Rlc3QgInNldCBoaXN0b3J5IHNpemUiICJBcmd1 bWVudCByZXF1aXJlZCAuaW50ZWdlciB0byBzZXQgaXQgdG8uKiIgInNldCBo aXMKICN0ZXN0IHNldCBoaXN0b3J5CiBnZGJfdGVzdCAic2V0IGhpc3Rvcnki ICJcInNldCBoaXN0b3J5XCIgbXVzdCBiZSBmb2xsb3dlZCBieSB0aGUgbmFt ZSBvZiBhIGhpc3Rvcnkgc3ViY29tbWFuZC4oXFteXHJcblxdKlxbXHJcblxd KStMaXN0IG9mIHNldCBoaXN0b3J5IHN1YmNvbW1hbmRzOihcW15cclxuXF0q XFtcclxuXF0pK3NldCBoaXN0b3J5IGV4cGFuc2lvbiAtLSBTZXQgaGlzdG9y eSBleHBhbnNpb24gb24gY29tbWFuZCBpbnB1dChcW15cclxuXF0qXFtcclxu XF0pK3NldCBoaXN0b3J5IGZpbGVuYW1lIC0tIFNldCB0aGUgZmlsZW5hbWUg aW4gd2hpY2ggdG8gcmVjb3JkIHRoZSBjb21tYW5kIGhpc3RvcnkoXFteXHJc blxdKlxbXHJcblxdKStzZXQgaGlzdG9yeSBzYXZlIC0tIFNldCBzYXZpbmcg b2YgdGhlIGhpc3RvcnkgcmVjb3JkIG9uIGV4aXQoXFteXHJcblxdKlxbXHJc blxdKStzZXQgaGlzdG9yeSBzaXplIC0tIFNldCB0aGUgc2l6ZSBvZiB0aGUg Y29tbWFuZCBoaXN0b3J5KFxbXlxyXG5cXSpcW1xyXG5cXSkrVHlwZSBcImhl bHAgc2V0IGhpc3RvcnlcIiBmb2xsb3dlZCBieSBzZXQgaGlzdG9yeSBzdWJj b21tYW5kIG5hbWUgZm9yIGZ1bGwgZG9jdW1lbnRhdGlvbi4oXFteXHJcblxd KlxbXHJcblxdKStDb21tYW5kIG5hbWUgYWJicmV2aWF0aW9ucyBhcmUgYWxs b3dlZCBpZiB1bmFtYmlndW91cy4iICJzZXQgaGlzdG9yeSIKICN0ZXN0IHNl dCBsYW5ndWFnZQotZ2RiX3Rlc3QgInNldCBsYW5ndWFnZSIgIlJlcXVpcmVz IGFuIGFyZ3VtZW50LiBWYWxpZCBhcmd1bWVudHMgYXJlIGF1dG8sIGxvY2Fs LCB1bmtub3duLCBhZGEsIGMsIGMuLiwgYXNtLCBtaW5pbWFsLCBmb3J0cmFu LCBvYmplY3RpdmUtYywgamF2YSwgbW9kdWxhLTIsIHBhc2NhbCwgc2NoZW1l LiIgInNldCBsYW5ndWFnZSIKK2dkYl90ZXN0ICJzZXQgbGFuZ3VhZ2UiICJS ZXF1aXJlcyBhbiBhcmd1bWVudC4gVmFsaWQgYXJndW1lbnRzIGFyZSBhdXRv LCBsb2NhbCwgdW5rbm93biwgYWRhLCBjLCBjLi4sIGFzbSwgbWluaW1hbCwg ZCwgZm9ydHJhbiwgb2JqZWN0aXZlLWMsIGphdmEsIG1vZHVsYS0yLCBwYXNj YWwsIHNjaGVtZS4iICJzZXQgbGFuZ3VhZ2UiCiAjdGVzdCBzZXQgbGlzdHNp emUKIGdkYl90ZXN0ICJzZXQgbGlzdHNpemUiICJBcmd1bWVudCByZXF1aXJl ZCAuaW50ZWdlciB0byBzZXQgaXQgdG8uKiIgInNldCBsaXN0c2l6ZSIKICN0 ZXN0IHNldCBwcmludCAicCIgYWJicmV2aWF0aW9uCg== --Multipart=_Wed__28_Apr_2010_02_53_34_+0300_y9T5ux=nWeBdR6S0--