From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7709 invoked by alias); 24 Apr 2010 00:06:49 -0000 Received: (qmail 7701 invoked by uid 22791); 24 Apr 2010 00:06:48 -0000 X-SWARE-Spam-Status: No, hits=-1.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_WEB,T_TO_NO_BRKTS_FREEMAIL 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; Sat, 24 Apr 2010 00:06:44 +0000 Received: by bwz25 with SMTP id 25so10662783bwz.8 for ; Fri, 23 Apr 2010 17:06:40 -0700 (PDT) Received: by 10.204.83.26 with SMTP id d26mr453279bkl.157.1272067600827; Fri, 23 Apr 2010 17:06:40 -0700 (PDT) Received: from localhost (131-243-252-87-dynamic-pool.gprs.mts.by [87.252.243.131]) by mx.google.com with ESMTPS id 14sm674660bwz.2.2010.04.23.17.05.29 (version=SSLv3 cipher=RC4-MD5); Fri, 23 Apr 2010 17:06:40 -0700 (PDT) Date: Sat, 24 Apr 2010 00:06:00 -0000 From: Mihail Zenkov To: tromey@redhat.com Cc: Mihail Zenkov , Joel Brobecker , gdb-patches@sourceware.org Subject: Re: D language support Message-Id: <20100424030441.81b6b66b.mihai.zenkov@gmail.com> In-Reply-To: References: <20100109082524.263bcb17.mihai.zenkov@gmail.com> <20100109082830.dd984de8.mihai.zenkov@gmail.com> <20100109142327.GC2007@adacore.com> <20100113064026.14f75ff2.mihai.zenkov@gmail.com> <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> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Sat__24_Apr_2010_03_04_41_+0300_n6XEoZ3bsBLSTEA6" 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/msg00825.txt.bz2 This is a multi-part message in MIME format. --Multipart=_Sat__24_Apr_2010_03_04_41_+0300_n6XEoZ3bsBLSTEA6 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-length: 169 On Fri, 23 Apr 2010 12:10:33 -0600 Tom Tromey wrote: > >>>>> "Mihail" == Mihail Zenkov writes: > > Style nits... Fixed. --Multipart=_Sat__24_Apr_2010_03_04_41_+0300_n6XEoZ3bsBLSTEA6 Content-Type: application/octet-stream; name="gdb-100424-d.patch" Content-Disposition: attachment; filename="gdb-100424-d.patch" Content-Transfer-Encoding: base64 Content-length: 37174 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 L01ha2VmaWxlLmluIGIvZ2RiL01ha2VmaWxlLmluCmluZGV4IGQ2MmRjNjMu LmQxOWM3NGQgMTAwNjQ0Ci0tLSBhL2dkYi9NYWtlZmlsZS5pbgorKysgYi9n ZGIvTWFrZWZpbGUuaW4KQEAgLTY1OCw2ICs2NTgsNyBAQCBTRklMRVMgPSBh ZGEtZXhwLnkgYWRhLWxhbmcuYyBhZGEtdHlwZXByaW50LmMgYWRhLXZhbHBy aW50LmMgYWRhLXRhc2tzLmMgXAogCWNoYXJzZXQuYyBjbGktb3V0LmMgY29m ZnJlYWQuYyBjb2ZmLXBlLXJlYWQuYyBcCiAJY29tcGxhaW50cy5jIGNvbXBs ZXRlci5jIGNvcmVmaWxlLmMgXAogCWNwLWFiaS5jIGNwLXN1cHBvcnQuYyBj cC1uYW1lc3BhY2UuYyBjcC12YWxwcmludC5jIFwKKwlkLWxhbmcuYyBkLXZh bHByaW50LmMgXAogCWNwLW5hbWUtcGFyc2VyLnkgXAogCWRieHJlYWQuYyBk ZW1hbmdsZS5jIGRpY3Rpb25hcnkuYyBkaXNhc20uYyBkb3VibGVzdC5jIGR1 bW15LWZyYW1lLmMgXAogCWR3YXJmMmV4cHIuYyBkd2FyZjJsb2MuYyBkd2Fy ZjJyZWFkLmMgZHdhcmYyLWZyYW1lLmMgXApAQCAtNzI1LDcgKzcyNiw3IEBA IGNsaS1vdXQuaCBnZGJfZXhwYXQuaCBicmVha3BvaW50LmggaW5mY2FsbC5o IG9ic2QtdGRlcC5oIFwKIGV4ZWMuaCBtMzJyLXRkZXAuaCBvc2FiaS5oIGdk YmNvcmUuaCBzb2xpYi1zb20uaCBcCiBpMzg2YnNkLW5hdC5oIHhtbC1zdXBw b3J0LmggeG1sLXRkZXNjLmggYWxwaGFic2QtdGRlcC5oIGdkYl9vYnN0YWNr LmggXAogaWE2NC10ZGVwLmggYWRhLWxhbmcuaCB2YXJvYmouaCBmcnYtdGRl cC5oIG50by10ZGVwLmggc2VyaWFsLmggXAotYy1sYW5nLmggZnJhbWUuaCBl dmVudC1sb29wLmggYmxvY2suaCBjbGkvY2xpLXNldHNob3cuaAlcCitjLWxh bmcuaCBkLWxhbmcuaCBmcmFtZS5oIGV2ZW50LWxvb3AuaCBibG9jay5oIGNs aS9jbGktc2V0c2hvdy5oCVwKIGNsaS9jbGktZGVjb2RlLmggY2xpL2NsaS1j bWRzLmggY2xpL2NsaS1kdW1wLmggXAogY2xpL2NsaS1zY3JpcHQuaCBtYWNy b3RhYi5oIHN5bXRhYi5oIHZlcnNpb24uaCBnbnVsaWIvd2NoYXIuaW4uaCBc CiBnbnVsaWIvc3RyaW5nLmluLmggZ251bGliL3N0ci10d28td2F5LmggZ251 bGliL2V4dHJhL2xpbmstd2FybmluZy5oIFwKQEAgLTgzMCw3ICs4MzEsNyBA QCBDT01NT05fT0JTID0gJChERVBGSUxFUykgJChDT05GSUdfT0JTKSAkKFlZ T0JKKSBcCiAJZGJ4cmVhZC5vIGNvZmZyZWFkLm8gY29mZi1wZS1yZWFkLm8g XAogCWR3YXJmMnJlYWQubyBtaXBzcmVhZC5vIHN0YWJzcmVhZC5vIGNvcmVm aWxlLm8gXAogCWR3YXJmMmV4cHIubyBkd2FyZjJsb2MubyBkd2FyZjItZnJh bWUubyBcCi0JYWRhLWxhbmcubyBjLWxhbmcubyBmLWxhbmcubyBvYmpjLWxh bmcubyBcCisJYWRhLWxhbmcubyBjLWxhbmcubyBkLWxhbmcubyBmLWxhbmcu byBvYmpjLWxhbmcubyBcCiAJYWRhLXRhc2tzLm8gXAogCXVpLW91dC5vIGNs aS1vdXQubyBcCiAJdmFyb2JqLm8gdmVjLm8gd3JhcHBlci5vIFwKQEAgLTg0 MCw3ICs4NDEsOCBAQCBDT01NT05fT0JTID0gJChERVBGSUxFUykgJChDT05G 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 NDQKaW5kZXggMDAwMDAwMC4uY2Y1ODMzNQotLS0gL2Rldi9udWxsCisrKyBi L2dkYi9kLWxhbmcuYwpAQCAtMCwwICsxLDI4MyBAQAorLyogRCBsYW5ndWFn ZSBzdXBwb3J0IHJvdXRpbmVzIGZvciBHREIsIHRoZSBHTlUgZGVidWdnZXIu CisKKyAgIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCwgMjAwOSwg MjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAgVGhp cyBmaWxlIGlzIHBhcnQgb2YgR0RCLgorCisgICBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQorICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAgIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2Yg dGhlIExpY2Vuc2UsIG9yCisgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uICAqLworCisjaW5jbHVkZSAiZGVmcy5oIgorI2luY2x1ZGUgInN5bXRh Yi5oIgorI2luY2x1ZGUgImxhbmd1YWdlLmgiCisjaW5jbHVkZSAiZC1sYW5n LmgiCisjaW5jbHVkZSAiYy1sYW5nLmgiCisjaW5jbHVkZSAiZ2RiX3N0cmlu Zy5oIgorI2luY2x1ZGUgInBhcnNlci1kZWZzLmgiCisjaW5jbHVkZSAiZ2Ri X29ic3RhY2suaCIKKworI2luY2x1ZGUgPGN0eXBlLmg+CisKKworc3RhdGlj IGNvbnN0IGNoYXIgKm1hbmdsZWRfc3RyOworLyogVGVtcG9yYXJ5IG9ic3Rh Y2sgdXNlZCBmb3IgaG9sZGluZyBzdHJpbmdzLiAgKi8KK3N0YXRpYyBzdHJ1 Y3Qgb2JzdGFjayB0ZW1wYnVmOworCisvKiBFeHRyYWN0IGlkZW50aWZpZXJz IGZyb20gTUFOR0xFRF9TVFIgYW5kIGFwcGVuZCBpdCB0byBURU1QQlVGLgor ICAgUmV0dXJuIDEgb24gc3VjY2VzcyBvciAwIG9uIGZhaWx1cmUuICAqLwor c3RhdGljIGludAorZXh0cmFjdF9pZGVudGlmaWVycyAoY29uc3QgY2hhciAq bWFuZ2xlZF9zdHIsIHN0cnVjdCBvYnN0YWNrICp0ZW1wYnVmKQoreworICBs b25nIGkgPSAwOworCisgIHdoaWxlIChpc2RpZ2l0ICgqbWFuZ2xlZF9zdHIp KQorICAgIHsKKyAgICAgIGkgPSBzdHJ0b2wgKG1hbmdsZWRfc3RyLCBOVUxM LCAxMCk7CisgICAgICBtYW5nbGVkX3N0cisrOworICAgICAgaWYgKGkgPD0g MCAgJiYgc3RybGVuIChtYW5nbGVkX3N0cikgPCBpKQorICAgICAgICByZXR1 cm4gMDsKKyAgICAgIG9ic3RhY2tfZ3JvdyAodGVtcGJ1ZiwgbWFuZ2xlZF9z dHIsIGkpOworICAgICAgbWFuZ2xlZF9zdHIgKz0gaTsKKyAgICAgIG9ic3Rh Y2tfZ3Jvd19zdHIgKHRlbXBidWYsICIuIik7CisgICAgfQorICBpZiAoKm1h bmdsZWRfc3RyID09ICdcMCcgfHwgaSA9PSAwKQorICAgIHJldHVybiAwOwor ICBvYnN0YWNrX2JsYW5rICh0ZW1wYnVmLCAtMSk7CisgIHJldHVybiAxOwor fQorCisvKiBFeHRyYWN0IGFuZCBkZW1hbmdsZSB0eXBlIGZyb20gTUFOR0xF RF9TVFIgYW5kIGFwcGVuZCBpdCB0byBURU1QQlVGLgorICAgUmV0dXJuIDEg b24gc3VjY2VzcyBvciAwIG9uIGZhaWx1cmUuICAqLworc3RhdGljIGludAor ZXh0cmFjdF90eXBlX2luZm8gKGNvbnN0IGNoYXIgKm1hbmdsZWRfc3RyLCBz dHJ1Y3Qgb2JzdGFjayAqdGVtcGJ1ZikKK3sKKyAgaWYgKCptYW5nbGVkX3N0 ciA9PSAnXDAnKQorICAgIHJldHVybiAwOworICBzd2l0Y2ggKCptYW5nbGVk X3N0cisrKQorICAgIHsKKyAgICAgIGNhc2UgJ0EnOiAvKiBkeW5hbWljIGFy cmF5ICovCisgICAgICBjYXNlICdHJzogLyogc3RhdGljIGFycmF5ICovCisg ICAgICBjYXNlICdIJzogLyogYXNzb2NpYXRpdmUgYXJyYXkgKi8KKwlpZiAo IWV4dHJhY3RfdHlwZV9pbmZvIChtYW5nbGVkX3N0ciwgdGVtcGJ1ZikpCisJ ICByZXR1cm4gMDsKKwlvYnN0YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAiW10i KTsKKwlyZXR1cm4gMTsKKyAgICAgIGNhc2UgJ1AnOiAvKiBwb2ludGVyICov CisJaWYgKCFleHRyYWN0X3R5cGVfaW5mbyAobWFuZ2xlZF9zdHIsIHRlbXBi dWYpKQorCSAgcmV0dXJuIDA7CisJb2JzdGFja19ncm93X3N0ciAodGVtcGJ1 ZiwgIioiKTsKKwlyZXR1cm4gMTsKKyAgICAgIGNhc2UgJ1InOiAvKiByZWZl cmVuY2UgKi8KKwlpZiAoIWV4dHJhY3RfdHlwZV9pbmZvIChtYW5nbGVkX3N0 ciwgdGVtcGJ1ZikpCisJICByZXR1cm4gMDsKKwlvYnN0YWNrX2dyb3dfc3Ry ICh0ZW1wYnVmLCAiJiIpOworCXJldHVybiAxOworICAgICAgY2FzZSAnWic6 IC8qIHJldHVybiB2YWx1ZSAqLworCXJldHVybiBleHRyYWN0X3R5cGVfaW5m byAobWFuZ2xlZF9zdHIsIHRlbXBidWYpOworICAgICAgY2FzZSAnSic6IC8q IG91dCAqLworCW9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJvdXQgIik7 CisJcmV0dXJuIGV4dHJhY3RfdHlwZV9pbmZvIChtYW5nbGVkX3N0ciwgdGVt cGJ1Zik7CisgICAgICBjYXNlICdLJzogLyogaW5vdXQgKi8KKwlvYnN0YWNr X2dyb3dfc3RyICh0ZW1wYnVmLCAiaW5vdXQgIik7CisJcmV0dXJuIGV4dHJh Y3RfdHlwZV9pbmZvIChtYW5nbGVkX3N0ciwgdGVtcGJ1Zik7CisgICAgICBj YXNlICdFJzogLyogZW51bSAqLworICAgICAgY2FzZSAnVCc6IC8qIHR5cGVk ZWYgKi8KKyAgICAgIGNhc2UgJ0QnOiAvKiBkZWxlZ2F0ZSAqLworICAgICAg Y2FzZSAnQyc6IC8qIGNsYXNzICovCisgICAgICBjYXNlICdTJzogLyogc3Ry dWN0ICovCisJcmV0dXJuIGV4dHJhY3RfaWRlbnRpZmllcnMgKG1hbmdsZWRf c3RyLCB0ZW1wYnVmKTsKKworICAgICAgLyogYmFzaWMgdHlwZXM6ICovCisg ICAgICBjYXNlICduJzogb2JzdGFja19ncm93X3N0ciAodGVtcGJ1ZiwgIm5v bmUiKTsgcmV0dXJuIDE7CisgICAgICBjYXNlICd2Jzogb2JzdGFja19ncm93 X3N0ciAodGVtcGJ1ZiwgInZvaWQiKTsgcmV0dXJuIDE7CisgICAgICBjYXNl ICdnJzogb2JzdGFja19ncm93X3N0ciAodGVtcGJ1ZiwgImJ5dGUiKTsgcmV0 dXJuIDE7CisgICAgICBjYXNlICdoJzogb2JzdGFja19ncm93X3N0ciAodGVt cGJ1ZiwgInVieXRlIik7IHJldHVybiAxOworICAgICAgY2FzZSAncyc6IG9i c3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJzaG9ydCIpOyByZXR1cm4gMTsK KyAgICAgIGNhc2UgJ3QnOiBvYnN0YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAi dXNob3J0Iik7IHJldHVybiAxOworICAgICAgY2FzZSAnaSc6IG9ic3RhY2tf Z3Jvd19zdHIgKHRlbXBidWYsICJpbnQiKTsgcmV0dXJuIDE7CisgICAgICBj YXNlICdrJzogb2JzdGFja19ncm93X3N0ciAodGVtcGJ1ZiwgInVpbnQiKTsg cmV0dXJuIDE7CisgICAgICBjYXNlICdsJzogb2JzdGFja19ncm93X3N0ciAo dGVtcGJ1ZiwgImxvbmciKTsgcmV0dXJuIDE7CisgICAgICBjYXNlICdtJzog b2JzdGFja19ncm93X3N0ciAodGVtcGJ1ZiwgInVsb25nIik7IHJldHVybiAx OworICAgICAgY2FzZSAnZic6IG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYs ICJmbG9hdCIpOyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ2QnOiBvYnN0YWNr X2dyb3dfc3RyICh0ZW1wYnVmLCAiZG91YmxlIik7IHJldHVybiAxOworICAg ICAgY2FzZSAnZSc6IG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJyZWFs Iik7IHJldHVybiAxOworCisgICAgICAvKiBpbWFnaW5hcnkgYW5kIGNvbXBs ZXg6ICovCisgICAgICBjYXNlICdvJzogb2JzdGFja19ncm93X3N0ciAodGVt cGJ1ZiwgImlmbG9hdCIpOyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ3AnOiBv YnN0YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAiaWRvdWJsZSIpOyByZXR1cm4g MTsKKyAgICAgIGNhc2UgJ2onOiBvYnN0YWNrX2dyb3dfc3RyICh0ZW1wYnVm LCAiaXJlYWwiKTsgcmV0dXJuIDE7CisgICAgICBjYXNlICdxJzogb2JzdGFj a19ncm93X3N0ciAodGVtcGJ1ZiwgImNmbG9hdCIpOyByZXR1cm4gMTsKKyAg ICAgIGNhc2UgJ3InOiBvYnN0YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAiY2Rv dWJsZSIpOyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ2MnOiBvYnN0YWNrX2dy b3dfc3RyICh0ZW1wYnVmLCAiY3JlYWwiKTsgcmV0dXJuIDE7CisKKyAgICAg IC8qIG90aGVyIHR5cGVzOiAqLworICAgICAgY2FzZSAnYic6IG9ic3RhY2tf Z3Jvd19zdHIgKHRlbXBidWYsICJiaXQiKTsgcmV0dXJuIDE7CisgICAgICBj YXNlICdhJzogb2JzdGFja19ncm93X3N0ciAodGVtcGJ1ZiwgImNoYXIiKTsg cmV0dXJuIDE7CisgICAgICBjYXNlICd1Jzogb2JzdGFja19ncm93X3N0ciAo dGVtcGJ1ZiwgIndjaGFyIik7IHJldHVybiAxOworICAgICAgY2FzZSAndyc6 IG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJkY2hhciIpOyByZXR1cm4g MTsKKworICAgICAgZGVmYXVsdDoKKwlvYnN0YWNrX2dyb3dfc3RyICh0ZW1w YnVmLCAidW5rbm93biIpOworCXJldHVybiAxOworICAgIH0KK30KKworLyog SW1wbGVtZW50cyB0aGUgbGFfZGVtYW5nbGUgbGFuZ3VhZ2VfZGVmbiByb3V0 aW5lIGZvciBsYW5ndWFnZSBELiAgKi8KK2NoYXIgKgorZF9kZW1hbmdsZSAo Y29uc3QgY2hhciAqc3ltYm9sLCBpbnQgb3B0aW9ucykKK3sKKyAgc3RydWN0 IG9ic3RhY2sgdGVtcGJ1ZjsKKyAgY2hhciAqb3V0X3N0cjsKKyAgdW5zaWdu ZWQgY2hhciBpc19mdW5jID0gMDsKKworICBpZiAoc3ltYm9sID09IE5VTEwp CisgICAgcmV0dXJuIE5VTEw7CisgIGVsc2UgaWYgKHN0cmNtcCAoc3ltYm9s LCAiX0RtYWluIikgPT0gMCkKKyAgICByZXR1cm4geHN0cmR1cCAoIkQgbWFp biIpOworCisgIG9ic3RhY2tfaW5pdCAoJnRlbXBidWYpOworICAKKyAgaWYg KHN5bWJvbFswXSA9PSAnXycgJiYgc3ltYm9sWzFdID09ICdEJykKKyAgICB7 CisgICAgICBzeW1ib2wgKz0gMjsKKyAgICAgIGlzX2Z1bmMgPSAxOworICAg IH0KKyAgZWxzZSBpZiAoc3RybmNtcCAoc3ltYm9sLCAiX19DbGFzc18iLCA4 KSA9PSAwKQorICAgIHN5bWJvbCArPSA4OworICBlbHNlIGlmIChzdHJuY21w IChzeW1ib2wsICJfX2luaXRfIiwgNykgPT0gMCkKKyAgICBzeW1ib2wgKz0g NzsKKyAgZWxzZSBpZiAoc3RybmNtcCAoc3ltYm9sLCAiX192dGJsXyIsIDcp ID09IDApCisgICAgc3ltYm9sICs9IDc7CisgIGVsc2UgaWYgKHN0cm5jbXAg KHN5bWJvbCwgIl9fbW9kY3Rvcl8iLCAxMCkgPT0gMCkKKyAgICBzeW1ib2wg Kz0gMTA7CisgIGVsc2UgaWYgKHN0cm5jbXAgKHN5bWJvbCwgIl9fbW9kZHRv cl8iLCAxMCkgPT0gMCkKKyAgICBzeW1ib2wgKz0gMTA7CisgIGVsc2UgaWYg KHN0cm5jbXAgKHN5bWJvbCwgIl9fTW9kdWxlSW5mb18iLCAxMykgPT0gMCkK KyAgICBzeW1ib2wgKz0gMTM7CisgIGVsc2UKKyAgICB7CisgICAgICBvYnN0 YWNrX2ZyZWUgKCZ0ZW1wYnVmLCBOVUxMKTsKKyAgICAgIHJldHVybiBOVUxM OworICAgIH0KKyAgCisgIGlmICghZXh0cmFjdF9pZGVudGlmaWVycyAoc3lt Ym9sLCAmdGVtcGJ1ZikpCisgICAgeworICAgICAgb2JzdGFja19mcmVlICgm dGVtcGJ1ZiwgTlVMTCk7CisgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisK KyAgb2JzdGFja19ncm93X3N0ciAoJnRlbXBidWYsICIoIik7CisgIGlmIChp c19mdW5jID09IDEgJiYgKnN5bWJvbCA9PSAnRicpCisgICAgeworICAgICAg c3ltYm9sKys7CisgICAgICB3aGlsZSAoKnN5bWJvbCAhPSAnXDAnICYmICpz eW1ib2wgIT0gJ1onKQorCXsKKwkgIGlmIChpc19mdW5jID09IDEpCisJICAg IGlzX2Z1bmMrKzsKKwkgIGVsc2UKKwkgICAgb2JzdGFja19ncm93X3N0ciAo JnRlbXBidWYsICIsICIpOworCSAgaWYgKCFleHRyYWN0X3R5cGVfaW5mbyAo c3ltYm9sLCAmdGVtcGJ1ZikpCisJICAgIHsKKwkgICAgICBvYnN0YWNrX2Zy ZWUgKCZ0ZW1wYnVmLCBOVUxMKTsKKwkgICAgICByZXR1cm4gTlVMTDsKKwkg ICB9CisJfQorICAgICB9CisgIG9ic3RhY2tfZ3Jvd19zdHIwICgmdGVtcGJ1 ZiwgIikiKTsKKworICAvKiBEb2Vzbid0IGRpc3BsYXkgdGhlIHJldHVybiB0 eXBlLCBidXQgd291bGRuJ3QgYmUgdG9vIGhhcmQgdG8gZG8uICAqLworCisg IG91dF9zdHIgPSB4c3RyZHVwIChvYnN0YWNrX2ZpbmlzaCAoJnRlbXBidWYp KTsKKyAgb2JzdGFja19mcmVlICgmdGVtcGJ1ZiwgTlVMTCk7CisgIHJldHVy biBvdXRfc3RyOworfQorCisvKiBUYWJsZSBtYXBwaW5nIG9wY29kZXMgaW50 byBzdHJpbmdzIGZvciBwcmludGluZyBvcGVyYXRvcnMKKyAgIGFuZCBwcmVj ZWRlbmNlcyBvZiB0aGUgb3BlcmF0b3JzLiAgKi8KK3N0YXRpYyBjb25zdCBz dHJ1Y3Qgb3BfcHJpbnQgZF9vcF9wcmludF90YWJbXSA9Cit7CisgIHsiLCIs IEJJTk9QX0NPTU1BLCBQUkVDX0NPTU1BLCAwfSwKKyAgeyI9IiwgQklOT1Bf QVNTSUdOLCBQUkVDX0FTU0lHTiwgMX0sCisgIHsifHwiLCBCSU5PUF9MT0dJ Q0FMX09SLCBQUkVDX0xPR0lDQUxfT1IsIDB9LAorICB7IiYmIiwgQklOT1Bf TE9HSUNBTF9BTkQsIFBSRUNfTE9HSUNBTF9BTkQsIDB9LAorICB7InwiLCBC SU5PUF9CSVRXSVNFX0lPUiwgUFJFQ19CSVRXSVNFX0lPUiwgMH0sCisgIHsi XiIsIEJJTk9QX0JJVFdJU0VfWE9SLCBQUkVDX0JJVFdJU0VfWE9SLCAwfSwK KyAgeyImIiwgQklOT1BfQklUV0lTRV9BTkQsIFBSRUNfQklUV0lTRV9BTkQs IDB9LAorICB7Ij09IiwgQklOT1BfRVFVQUwsIFBSRUNfRVFVQUwsIDB9LAor ICB7IiE9IiwgQklOT1BfTk9URVFVQUwsIFBSRUNfRVFVQUwsIDB9LAorICB7 Ijw9IiwgQklOT1BfTEVRLCBQUkVDX09SREVSLCAwfSwKKyAgeyI+PSIsIEJJ Tk9QX0dFUSwgUFJFQ19PUkRFUiwgMH0sCisgIHsiPiIsIEJJTk9QX0dUUiwg UFJFQ19PUkRFUiwgMH0sCisgIHsiPCIsIEJJTk9QX0xFU1MsIFBSRUNfT1JE RVIsIDB9LAorICB7Ij4+IiwgQklOT1BfUlNILCBQUkVDX1NISUZULCAwfSwK KyAgeyI8PCIsIEJJTk9QX0xTSCwgUFJFQ19TSElGVCwgMH0sCisgIHsiKyIs IEJJTk9QX0FERCwgUFJFQ19BREQsIDB9LAorICB7Ii0iLCBCSU5PUF9TVUIs IFBSRUNfQURELCAwfSwKKyAgeyIqIiwgQklOT1BfTVVMLCBQUkVDX01VTCwg MH0sCisgIHsiLyIsIEJJTk9QX0RJViwgUFJFQ19NVUwsIDB9LAorICB7IiUi LCBCSU5PUF9SRU0sIFBSRUNfTVVMLCAwfSwKKyAgeyJAIiwgQklOT1BfUkVQ RUFULCBQUkVDX1JFUEVBVCwgMH0sCisgIHsiLSIsIFVOT1BfTkVHLCBQUkVD X1BSRUZJWCwgMH0sCisgIHsiISIsIFVOT1BfTE9HSUNBTF9OT1QsIFBSRUNf UFJFRklYLCAwfSwKKyAgeyJ+IiwgVU5PUF9DT01QTEVNRU5ULCBQUkVDX1BS RUZJWCwgMH0sCisgIHsiKiIsIFVOT1BfSU5ELCBQUkVDX1BSRUZJWCwgMH0s CisgIHsiJiIsIFVOT1BfQUREUiwgUFJFQ19QUkVGSVgsIDB9LAorICB7InNp emVvZiAiLCBVTk9QX1NJWkVPRiwgUFJFQ19QUkVGSVgsIDB9LAorICB7Iisr IiwgVU5PUF9QUkVJTkNSRU1FTlQsIFBSRUNfUFJFRklYLCAwfSwKKyAgeyIt LSIsIFVOT1BfUFJFREVDUkVNRU5ULCBQUkVDX1BSRUZJWCwgMH0sCisgIHtO VUxMLCAwLCAwLCAwfQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBsYW5n dWFnZV9kZWZuIGRfbGFuZ3VhZ2VfZGVmbiA9Cit7CisgICJkIiwKKyAgbGFu Z3VhZ2VfZCwKKyAgcmFuZ2VfY2hlY2tfb2ZmLAorICB0eXBlX2NoZWNrX29m ZiwKKyAgY2FzZV9zZW5zaXRpdmVfb24sCisgIGFycmF5X3Jvd19tYWpvciwK KyAgbWFjcm9fZXhwYW5zaW9uX2MsCisgICZleHBfZGVzY3JpcHRvcl9jLAor ICBjX3BhcnNlLAorICBjX2Vycm9yLAorICBudWxsX3Bvc3RfcGFyc2VyLAor ICBjX3ByaW50Y2hhciwJCQkvKiBQcmludCBhIGNoYXJhY3RlciBjb25zdGFu dC4gICovCisgIGNfcHJpbnRzdHIsCQkJLyogRnVuY3Rpb24gdG8gcHJpbnQg c3RyaW5nIGNvbnN0YW50LiAgKi8KKyAgY19lbWl0X2NoYXIsCQkJLyogUHJp bnQgYSBzaW5nbGUgY2hhci4gICovCisgIGNfcHJpbnRfdHlwZSwJCQkvKiBQ cmludCBhIHR5cGUgdXNpbmcgYXBwcm9wcmlhdGUgc3ludGF4LiAgKi8KKyAg Y19wcmludF90eXBlZGVmLAkJLyogUHJpbnQgYSB0eXBlZGVmIHVzaW5nIGFw cHJvcHJpYXRlIHN5bnRheC4gICovCisgIGRfdmFsX3ByaW50LAkJCS8qIFBy aW50IGEgdmFsdWUgdXNpbmcgYXBwcm9wcmlhdGUgc3ludGF4LiAgKi8KKyAg Y192YWx1ZV9wcmludCwJCS8qIFByaW50IGEgdG9wLWxldmVsIHZhbHVlLiAg Ki8KKyAgTlVMTCwJCQkJLyogTGFuZ3VhZ2Ugc3BlY2lmaWMgc2tpcF90cmFt cG9saW5lLiAgKi8KKyAgInRoaXMiLAorICBiYXNpY19sb29rdXBfc3ltYm9s X25vbmxvY2FsLCAKKyAgYmFzaWNfbG9va3VwX3RyYW5zcGFyZW50X3R5cGUs CisgIGRfZGVtYW5nbGUsCQkJLyogTGFuZ3VhZ2Ugc3BlY2lmaWMgc3ltYm9s IGRlbWFuZ2xlci4gICovCisgIE5VTEwsCQkJCS8qIExhbmd1YWdlIHNwZWNp ZmljIGNsYXNzX25hbWVfZnJvbV9waHlzbmFtZS4gICovCisgIGRfb3BfcHJp bnRfdGFiLAkJLyogRXhwcmVzc2lvbiBvcGVyYXRvcnMgZm9yIHByaW50aW5n LiAgKi8KKyAgMSwJCQkJLyogQy1zdHlsZSBhcnJheXMuICAqLworICAwLAkJ CQkvKiBTdHJpbmcgbG93ZXIgYm91bmQuICAqLworICBkZWZhdWx0X3dvcmRf YnJlYWtfY2hhcmFjdGVycywKKyAgZGVmYXVsdF9tYWtlX3N5bWJvbF9jb21w bGV0aW9uX2xpc3QsCisgIGNfbGFuZ3VhZ2VfYXJjaF9pbmZvLAorICBkZWZh dWx0X3ByaW50X2FycmF5X2luZGV4LAorICBkZWZhdWx0X3Bhc3NfYnlfcmVm ZXJlbmNlLAorICBjX2dldF9zdHJpbmcsCisgIExBTkdfTUFHSUMKK307CisK K3ZvaWQKK19pbml0aWFsaXplX2RfbGFuZ3VhZ2UgKHZvaWQpCit7CisgIGFk ZF9sYW5ndWFnZSAoJmRfbGFuZ3VhZ2VfZGVmbik7Cit9CmRpZmYgLS1naXQg YS9nZGIvZC1sYW5nLmggYi9nZGIvZC1sYW5nLmgKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uYmUyNzgyNwotLS0gL2Rldi9udWxsCisr KyBiL2dkYi9kLWxhbmcuaApAQCAtMCwwICsxLDMyIEBACisvKiBEIGxhbmd1 YWdlIHN1cHBvcnQgZGVmaW5pdGlvbnMgZm9yIEdEQiwgdGhlIEdOVSBkZWJ1 Z2dlci4KKworICAgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4LCAy MDA5LCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisg ICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHREIuCisKKyAgIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CisgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICAg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgTGljZW5zZSwgb3IKKyAgIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisK KyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMg cHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4gICovCisKKyNpZiAhZGVmaW5lZCAoRF9MQU5HX0gpCisjZGVm aW5lIERfTEFOR19IIDEKKworI2luY2x1ZGUgInN5bXRhYi5oIgorCitleHRl cm4gY2hhciAqZF9kZW1hbmdsZSAoY29uc3QgY2hhciAqbWFuZ2xlZCwgaW50 IG9wdGlvbnMpOworCitleHRlcm4gaW50IGRfdmFsX3ByaW50IChzdHJ1Y3Qg dHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCisJCQlpbnQg ZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKKwkJCXN0cnVj dCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorCQkJY29uc3Qgc3Ry dWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpOworCisjZW5kaWYg LyogIWRlZmluZWQgKERfTEFOR19IKSAqLwpkaWZmIC0tZ2l0IGEvZ2RiL2Qt dmFscHJpbnQuYyBiL2dkYi9kLXZhbHByaW50LmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uNjdiMzJiNwotLS0gL2Rldi9udWxsCisr KyBiL2dkYi9kLXZhbHByaW50LmMKQEAgLTAsMCArMSw5MSBAQAorLyogU3Vw cG9ydCBmb3IgcHJpbnRpbmcgRCB2YWx1ZXMgZm9yIEdEQiwgdGhlIEdOVSBk ZWJ1Z2dlci4KKworICAgQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEw IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisgICBUaGlzIGZp bGUgaXMgcGFydCBvZiBHREIuCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5CisgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICAgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUg TGljZW5zZSwgb3IKKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4g IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4g ICovCisKKyNpbmNsdWRlICJkZWZzLmgiCisjaW5jbHVkZSAiZ2RidHlwZXMu aCIKKyNpbmNsdWRlICJnZGJjb3JlLmgiCisjaW5jbHVkZSAiZC1sYW5nLmgi CisjaW5jbHVkZSAiYy1sYW5nLmgiCisKKy8qIEFzc3VtaW5nIHRoYXQgVFlQ RSBpcyBhIFRZUEVfQ09ERV9TVFJVQ1QsIHZlcmlmeSB0aGF0IFRZUEUgaXMK KyAgIGEgZHluYW1pYyBhcnJheSwgYW5kIHRoZW4gcHJpbnQgaXRzIHZhbHVl IHRvIFNUUkVBTS4gIFJldHVybgorICAgdGhlIG51bWJlciBvZiBzdHJpbmcg Y2hhcmFjdGVycyBwcmludGVkLCBvciAtMSBpZiBUWVBFIGlzIG5vdAorICAg YSBkeW5hbWljIGFycmF5LiAgKi8KK3N0YXRpYyBpbnQKK2R5bmFtaWNfYXJy YXlfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2 YWxhZGRyLAorCQkgICAgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERS IGFkZHJlc3MsCisJCSAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQg cmVjdXJzZSwKKwkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRp b25zICpvcHRpb25zKQoreworICBpZiAoVFlQRV9ORklFTERTICh0eXBlKSA9 PSAyCisgICAgICAmJiBUWVBFX0NPREUgKFRZUEVfRklFTERfVFlQRSAodHlw ZSwgMCkpID09IFRZUEVfQ09ERV9JTlQKKyAgICAgICYmIHN0cmNtcCAoVFlQ RV9GSUVMRF9OQU1FICh0eXBlLCAwKSwgImxlbmd0aCIpID09IDAKKyAgICAg ICYmIHN0cmNtcCAoVFlQRV9GSUVMRF9OQU1FICh0eXBlLCAxKSwgInB0ciIp ID09IDApCisgICAgeworICAgICAgQ09SRV9BRERSIGFkZHI7CisgICAgICBz dHJ1Y3QgdHlwZSAqZWx0dHlwZTsKKyAgICAgIHN0cnVjdCB0eXBlICp0cnVl X3R5cGU7CisgICAgICBzdHJ1Y3QgdHlwZSAqcHRyX3R5cGU7CisgICAgICBz dHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZTsKKyAgICAgIGNvbnN0IGdkYl9ieXRl ICpwdHJhZGRyOworICAgICAgc3RydWN0IHZhbHVlICp2YWw7CisgICAgICBp bnQgbGVuZ3RoOworCisgICAgICBsZW5ndGggPSB1bnBhY2tfZmllbGRfYXNf bG9uZyAodHlwZSwgdmFsYWRkciArIGVtYmVkZGVkX29mZnNldCwgMCk7CisK KyAgICAgIHB0cl90eXBlID0gVFlQRV9GSUVMRF9UWVBFICh0eXBlLCAxKTsK KyAgICAgIGVsdHR5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9U WVBFIChwdHJfdHlwZSkpOworICAgICAgYWRkciA9IHVucGFja19wb2ludGVy IChwdHJfdHlwZSwKKwkJCSAgICAgdmFsYWRkciArIFRZUEVfRklFTERfQklU UE9TICh0eXBlLCAxKSAvIDgKKwkJCSAgICAgKyBlbWJlZGRlZF9vZmZzZXQp OworICAgICAgdHJ1ZV90eXBlID0gY2hlY2tfdHlwZWRlZiAoZWx0dHlwZSk7 CisKKyAgICAgIHRydWVfdHlwZSA9IGxvb2t1cF9hcnJheV9yYW5nZV90eXBl ICh0cnVlX3R5cGUsIDAsIGxlbmd0aCAtIDEpOworICAgICAgdmFsID0gdmFs dWVfYXQgKHRydWVfdHlwZSwgYWRkcik7CisgICAgICBwdHJhZGRyID0gdmFs dWVfY29udGVudHMgKHZhbCk7CisKKyAgICAgIHJldHVybiBkX3ZhbF9wcmlu dCAodHJ1ZV90eXBlLCBwdHJhZGRyLCAwLCBhZGRyLCBzdHJlYW0sIHJlY3Vy c2UgKyAxLAorCQkJICBvcHRpb25zKTsKKyAgICB9CisgIHJldHVybiAtMTsK K30KKworLyogSW1wbGVtZW50cyB0aGUgbGFfdmFsX3ByaW50IHJvdXRpbmUg Zm9yIGxhbmd1YWdlIEQuICAqLworaW50CitkX3ZhbF9wcmludCAoc3RydWN0 IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1i ZWRkZWRfb2Zmc2V0LAorICAgICAgICAgICAgIENPUkVfQUREUiBhZGRyZXNz LCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKKyAgICAg ICAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0 aW9ucykKK3sKKyAgaW50IHJldDsKKworICBDSEVDS19UWVBFREVGICh0eXBl KTsKKyAgc3dpdGNoIChUWVBFX0NPREUgKHR5cGUpKQorICAgIHsKKyAgICAg IGNhc2UgVFlQRV9DT0RFX1NUUlVDVDoKKyAgICAgICAgcmV0ID0gZHluYW1p Y19hcnJheV90eXBlICh0eXBlLCB2YWxhZGRyLCBlbWJlZGRlZF9vZmZzZXQs IGFkZHJlc3MsCisJCQkJICBzdHJlYW0sIHJlY3Vyc2UsIG9wdGlvbnMpOwor CWlmIChyZXQgIT0gLTEpCisJICAgYnJlYWs7CisgICAgICBkZWZhdWx0Ogor CXJldCA9IGNfdmFsX3ByaW50ICh0eXBlLCB2YWxhZGRyLCBlbWJlZGRlZF9v ZmZzZXQsIGFkZHJlc3MsIHN0cmVhbSwKKwkJCSAgIHJlY3Vyc2UsIG9wdGlv bnMpOworICAgIH0KKworICByZXR1cm4gcmV0OworfQpkaWZmIC0tZ2l0IGEv Z2RiL2RlZnMuaCBiL2dkYi9kZWZzLmgKaW5kZXggZThhMWRkNC4uZDRhOWIx OSAxMDA2NDQKLS0tIGEvZ2RiL2RlZnMuaAorKysgYi9nZGIvZGVmcy5oCkBA IC0xODgsNiArMTg4LDcgQEAgZW51bSBsYW5ndWFnZQogICAgIGxhbmd1YWdl X2F1dG8sCQkvKiBQbGFjZWhvbGRlciBmb3IgYXV0b21hdGljIHNldHRpbmcg Ki8KICAgICBsYW5ndWFnZV9jLAkJCS8qIEMgKi8KICAgICBsYW5ndWFnZV9j cGx1cywJCS8qIEMrKyAqLworICAgIGxhbmd1YWdlX2QsCQkJLyogRCAqLwog ICAgIGxhbmd1YWdlX29iamMsCQkvKiBPYmplY3RpdmUtQyAqLwogICAgIGxh bmd1YWdlX2phdmEsCQkvKiBKYXZhICovCiAgICAgbGFuZ3VhZ2VfZm9ydHJh biwJCS8qIEZvcnRyYW4gKi8KZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiLnRl eGluZm8gYi9nZGIvZG9jL2dkYi50ZXhpbmZvCmluZGV4IDkzYTk4ZjMuLjBm N2VhMzggMTAwNjQ0Ci0tLSBhL2dkYi9kb2MvZ2RiLnRleGluZm8KKysrIGIv Z2RiL2RvYy9nZGIudGV4aW5mbwpAQCAtMjE0LDYgKzIxNCwxMCBAQCBZb3Ug Y2FuIHVzZSBAdmFsdWV7R0RCTn0gdG8gZGVidWcgcHJvZ3JhbXMgd3JpdHRl biBpbiBDIGFuZCBDQHR7Kyt9LgogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNl ZSBAcmVme1N1cHBvcnRlZCBMYW5ndWFnZXMsLFN1cHBvcnRlZCBMYW5ndWFn ZXN9LgogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBAcmVme0MsLEMgYW5k IEMrK30uCiAKK0BjaW5kZXggRAorU3VwcG9ydCBmb3IgRCBpcyBwYXJ0aWFs LiAgRm9yIGluZm9ybWF0aW9uIG9uIEQsIHNlZQorQHJlZntELCxEfS4KKwog QGNpbmRleCBNb2R1bGEtMgogU3VwcG9ydCBmb3IgTW9kdWxhLTIgaXMgcGFy dGlhbC4gIEZvciBpbmZvcm1hdGlvbiBvbiBNb2R1bGEtMiwgc2VlCiBAcmVm e01vZHVsYS0yLCxNb2R1bGEtMn0uCkBAIC0xMDgyNCw2ICsxMDgyOCw5IEBA IEMgc291cmNlIGZpbGUKIEBpdGVteCAuYysrCiBDQHR7Kyt9IHNvdXJjZSBm aWxlCiAKK0BpdGVtIC5kCitEIHNvdXJjZSBmaWxlCisKIEBpdGVtIC5tCiBP YmplY3RpdmUtQyBzb3VyY2UgZmlsZQogCkBAIC0xMTEwMSw3ICsxMTEwOCw3 IEBAIGJlaW5nIHNldCBhdXRvbWF0aWNhbGx5IGJ5IEB2YWx1ZXtHREJOfS4K IEBub2RlIFN1cHBvcnRlZCBMYW5ndWFnZXMKIEBzZWN0aW9uIFN1cHBvcnRl ZCBMYW5ndWFnZXMKIAotQHZhbHVle0dEQk59IHN1cHBvcnRzIEMsIENAdHsr K30sIE9iamVjdGl2ZS1DLCBGb3J0cmFuLCBKYXZhLCBQYXNjYWwsCitAdmFs dWV7R0RCTn0gc3VwcG9ydHMgQywgQ0B0eysrfSwgRCwgT2JqZWN0aXZlLUMs IEZvcnRyYW4sIEphdmEsIFBhc2NhbCwKIGFzc2VtYmx5LCBNb2R1bGEtMiwg YW5kIEFkYS4KIEBjIFRoaXMgaXMgZmFsc2UgLi4uCiBTb21lIEB2YWx1ZXtH REJOfSBmZWF0dXJlcyBtYXkgYmUgdXNlZCBpbiBleHByZXNzaW9ucyByZWdh cmRsZXNzIG9mIHRoZQpAQCAtMTExMjAsNiArMTExMjcsNyBAQCBsYW5ndWFn ZSByZWZlcmVuY2Ugb3IgdHV0b3JpYWwuCiAKIEBtZW51CiAqIEM6OiAgICAg ICAgICAgICAgICAgICAgICAgICAgIEMgYW5kIENAdHsrK30KKyogRDo6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgRAogKiBPYmplY3RpdmUtQzo6ICAg ICAgICAgICAgICAgICBPYmplY3RpdmUtQwogKiBGb3J0cmFuOjogICAgICAg ICAgICAgICAgICAgICBGb3J0cmFuCiAqIFBhc2NhbDo6ICAgICAgICAgICAg ICAgICAgICAgIFBhc2NhbApAQCAtMTE2NTcsNiArMTE2NjUsMTQgQEAgSW4g dGhlIFBvd2VyUEMgYXJjaGl0ZWN0dXJlLCBAdmFsdWV7R0RCTn0gcHJvdmlk ZXMgYSBzZXQgb2YgcHNldWRvLXJlZ2lzdGVycwogdG8gaW5zcGVjdCBAY29k ZXtfRGVjaW1hbDEyOH0gdmFsdWVzIHN0b3JlZCBpbiBmbG9hdGluZyBwb2lu dCByZWdpc3RlcnMuCiBTZWUgQHJlZntQb3dlclBDLCxQb3dlclBDfSBmb3Ig bW9yZSBkZXRhaWxzLgogCitAbm9kZSBECitAc3Vic2VjdGlvbiBECisKK0Bj aW5kZXggRAorQHZhbHVle0dEQk59IGNhbiBiZSB1c2VkIHRvIGRlYnVnIHBy b2dyYW1zIHdyaXR0ZW4gaW4gRCBhbmQgY29tcGlsZWQgd2l0aAorR0RDLCBM REMgb3IgRE1ELiBDdXJyZW50bHkgQHZhbHVle0dEQk59IHN1cHBvcnRzIG9u bHkgb25lIEQgc3BlY2lmaWMKK2ZlYXR1cmUgLSBkeW5hbWljIGFycmF5cy4K KwogQG5vZGUgT2JqZWN0aXZlLUMKIEBzdWJzZWN0aW9uIE9iamVjdGl2ZS1D CiAKZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJyZWFkLmMgYi9nZGIvZHdhcmYy cmVhZC5jCmluZGV4IDMwOTZhYjcuLmY0Y2JjNTkgMTAwNjQ0Ci0tLSBhL2dk Yi9kd2FyZjJyZWFkLmMKKysrIGIvZ2RiL2R3YXJmMnJlYWQuYwpAQCAtNzYx OSw2ICs3NjE5LDkgQEAgc2V0X2N1X2xhbmd1YWdlICh1bnNpZ25lZCBpbnQg bGFuZywgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgY2FzZSBEV19MQU5H X0NfcGx1c19wbHVzOgogICAgICAgY3UtPmxhbmd1YWdlID0gbGFuZ3VhZ2Vf Y3BsdXM7CiAgICAgICBicmVhazsKKyAgICBjYXNlIERXX0xBTkdfRDoKKyAg ICAgIGN1LT5sYW5ndWFnZSA9IGxhbmd1YWdlX2Q7CisgICAgICBicmVhazsK ICAgICBjYXNlIERXX0xBTkdfRm9ydHJhbjc3OgogICAgIGNhc2UgRFdfTEFO R19Gb3J0cmFuOTA6CiAgICAgY2FzZSBEV19MQU5HX0ZvcnRyYW45NToKZGlm ZiAtLWdpdCBhL2dkYi9sYW5ndWFnZS5jIGIvZ2RiL2xhbmd1YWdlLmMKaW5k ZXggZGNkNzBiMC4uYWJhOGE5ZSAxMDA2NDQKLS0tIGEvZ2RiL2xhbmd1YWdl LmMKKysrIGIvZ2RiL2xhbmd1YWdlLmMKQEAgLTQ4Niw2ICs0ODYsNyBAQCBi aW5vcF9yZXN1bHRfdHlwZSAoc3RydWN0IHZhbHVlICp2MSwgc3RydWN0IHZh bHVlICp2MikKICAgICB7CiAgICAgY2FzZSBsYW5ndWFnZV9jOgogICAgIGNh c2UgbGFuZ3VhZ2VfY3BsdXM6CisgICAgY2FzZSBsYW5ndWFnZV9kOgogICAg IGNhc2UgbGFuZ3VhZ2Vfb2JqYzoKICAgICAgIGlmIChUWVBFX0NPREUgKHQx KSA9PSBUWVBFX0NPREVfRkxUKQogCXJldHVybiBUWVBFX0NPREUgKHQyKSA9 PSBUWVBFX0NPREVfRkxUICYmIGwyID4gbDEgPwpAQCAtNTk3LDYgKzU5OCw3 IEBAIGludGVncmFsX3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlKQogICAgIHsK ICAgICBjYXNlIGxhbmd1YWdlX2M6CiAgICAgY2FzZSBsYW5ndWFnZV9jcGx1 czoKKyAgICBjYXNlIGxhbmd1YWdlX2Q6CiAgICAgY2FzZSBsYW5ndWFnZV9v YmpjOgogICAgICAgcmV0dXJuIChUWVBFX0NPREUgKHR5cGUpICE9IFRZUEVf Q09ERV9JTlQpICYmCiAJKFRZUEVfQ09ERSAodHlwZSkgIT0gVFlQRV9DT0RF X0VOVU0pID8gMCA6IDE7CkBAIC02MzcsNiArNjM5LDcgQEAgY2hhcmFjdGVy X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlKQogCiAgICAgY2FzZSBsYW5ndWFn ZV9jOgogICAgIGNhc2UgbGFuZ3VhZ2VfY3BsdXM6CisgICAgY2FzZSBsYW5n dWFnZV9kOgogICAgIGNhc2UgbGFuZ3VhZ2Vfb2JqYzoKICAgICAgIHJldHVy biAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfSU5UKSAmJgogCVRZ UEVfTEVOR1RIICh0eXBlKSA9PSBzaXplb2YgKGNoYXIpCkBAIC02NTksNiAr NjYyLDcgQEAgc3RyaW5nX3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlKQogCiAg ICAgY2FzZSBsYW5ndWFnZV9jOgogICAgIGNhc2UgbGFuZ3VhZ2VfY3BsdXM6 CisgICAgY2FzZSBsYW5ndWFnZV9kOgogICAgIGNhc2UgbGFuZ3VhZ2Vfb2Jq YzoKICAgICAgIC8qIEMgZG9lcyBub3QgaGF2ZSBkaXN0aW5jdCBzdHJpbmcg dHlwZS4gKi8KICAgICAgIHJldHVybiAoMCk7CkBAIC02NzgsNiArNjgyLDcg QEAgYm9vbGVhbl90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgICB7CiAg ICAgY2FzZSBsYW5ndWFnZV9jOgogICAgIGNhc2UgbGFuZ3VhZ2VfY3BsdXM6 CisgICAgY2FzZSBsYW5ndWFnZV9kOgogICAgIGNhc2UgbGFuZ3VhZ2Vfb2Jq YzoKICAgICAgIC8qIE1pZ2h0IGJlIG1vcmUgY2xlYW5seSBoYW5kbGVkIGJ5 IGhhdmluZyBhCiAgICAgICAgICBUWVBFX0NPREVfSU5UX05PVF9CT09MIGZv ciAodGhlIGRlbGV0ZWQpIENISUxMIGFuZCBzdWNoCkBAIC03MTcsNiArNzIy LDcgQEAgc3RydWN0dXJlZF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICAg ICB7CiAgICAgY2FzZSBsYW5ndWFnZV9jOgogICAgIGNhc2UgbGFuZ3VhZ2Vf Y3BsdXM6CisgICAgY2FzZSBsYW5ndWFnZV9kOgogICAgIGNhc2UgbGFuZ3Vh Z2Vfb2JqYzoKICAgICAgIHJldHVybiAoVFlQRV9DT0RFICh0eXBlKSA9PSBU WVBFX0NPREVfU1RSVUNUKSB8fAogCShUWVBFX0NPREUgKHR5cGUpID09IFRZ UEVfQ09ERV9VTklPTikgfHwKZGlmZiAtLWdpdCBhL2dkYi9zeW1maWxlLmMg Yi9nZGIvc3ltZmlsZS5jCmluZGV4IGVkYTI2Y2MuLmNmN2I0MWEgMTAwNjQ0 Ci0tLSBhL2dkYi9zeW1maWxlLmMKKysrIGIvZ2RiL3N5bWZpbGUuYwpAQCAt MjYxOCw2ICsyNjE4LDcgQEAgaW5pdF9maWxlbmFtZV9sYW5ndWFnZV90YWJs ZSAodm9pZCkKICAgICAgIGZpbGVuYW1lX2xhbmd1YWdlX3RhYmxlID0KIAl4 bWFsbG9jIChmbF90YWJsZV9zaXplICogc2l6ZW9mICgqZmlsZW5hbWVfbGFu Z3VhZ2VfdGFibGUpKTsKICAgICAgIGFkZF9maWxlbmFtZV9sYW5ndWFnZSAo Ii5jIiwgbGFuZ3VhZ2VfYyk7CisgICAgICBhZGRfZmlsZW5hbWVfbGFuZ3Vh Z2UgKCIuZCIsIGxhbmd1YWdlX2QpOwogICAgICAgYWRkX2ZpbGVuYW1lX2xh bmd1YWdlICgiLkMiLCBsYW5ndWFnZV9jcGx1cyk7CiAgICAgICBhZGRfZmls ZW5hbWVfbGFuZ3VhZ2UgKCIuY2MiLCBsYW5ndWFnZV9jcGx1cyk7CiAgICAg ICBhZGRfZmlsZW5hbWVfbGFuZ3VhZ2UgKCIuY3AiLCBsYW5ndWFnZV9jcGx1 cyk7CmRpZmYgLS1naXQgYS9nZGIvc3ltdGFiLmMgYi9nZGIvc3ltdGFiLmMK aW5kZXggMWQ2YjY0OC4uNjdhNzg0YiAxMDA2NDQKLS0tIGEvZ2RiL3N5bXRh Yi5jCisrKyBiL2dkYi9zeW10YWIuYwpAQCAtMzksNiArMzksNyBAQAogI2lu Y2x1ZGUgInNvdXJjZS5oIgogI2luY2x1ZGUgImZpbGVuYW1lcy5oIgkJLyog Zm9yIEZJTEVOQU1FX0NNUCAqLwogI2luY2x1ZGUgIm9iamMtbGFuZy5oIgor I2luY2x1ZGUgImQtbGFuZy5oIgogI2luY2x1ZGUgImFkYS1sYW5nLmgiCiAj aW5jbHVkZSAicC1sYW5nLmgiCiAjaW5jbHVkZSAiYWRkcm1hcC5oIgpAQCAt MzQ2LDYgKzM0Nyw3IEBAIHN5bWJvbF9pbml0X2xhbmd1YWdlX3NwZWNpZmlj IChzdHJ1Y3QgZ2VuZXJhbF9zeW1ib2xfaW5mbyAqZ3N5bWJvbCwKIHsKICAg Z3N5bWJvbC0+bGFuZ3VhZ2UgPSBsYW5ndWFnZTsKICAgaWYgKGdzeW1ib2wt Pmxhbmd1YWdlID09IGxhbmd1YWdlX2NwbHVzCisgICAgICB8fCBnc3ltYm9s LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9kCiAgICAgICB8fCBnc3ltYm9sLT5s YW5ndWFnZSA9PSBsYW5ndWFnZV9qYXZhCiAgICAgICB8fCBnc3ltYm9sLT5s YW5ndWFnZSA9PSBsYW5ndWFnZV9vYmpjKQogICAgIHsKQEAgLTQ0OSw2ICs0 NTEsMTYgQEAgc3ltYm9sX2ZpbmRfZGVtYW5nbGVkX25hbWUgKHN0cnVjdCBn ZW5lcmFsX3N5bWJvbF9pbmZvICpnc3ltYm9sLAogCSAgcmV0dXJuIGRlbWFu Z2xlZDsKIAl9CiAgICAgfQorICBpZiAoZ3N5bWJvbC0+bGFuZ3VhZ2UgPT0g bGFuZ3VhZ2VfZAorICAgICAgfHwgZ3N5bWJvbC0+bGFuZ3VhZ2UgPT0gbGFu Z3VhZ2VfYXV0bykKKyAgICB7CisgICAgICBkZW1hbmdsZWQgPSBkX2RlbWFu Z2xlKG1hbmdsZWQsIDApOworICAgICAgaWYgKGRlbWFuZ2xlZCAhPSBOVUxM KQorCXsKKwkgIGdzeW1ib2wtPmxhbmd1YWdlID0gbGFuZ3VhZ2VfZDsKKwkg IHJldHVybiBkZW1hbmdsZWQ7CisJfQorICAgIH0KICAgcmV0dXJuIE5VTEw7 CiB9CiAKQEAgLTYyNiw2ICs2MzgsNyBAQCBzeW1ib2xfbmF0dXJhbF9uYW1l IChjb25zdCBzdHJ1Y3QgZ2VuZXJhbF9zeW1ib2xfaW5mbyAqZ3N5bWJvbCkK ICAgc3dpdGNoIChnc3ltYm9sLT5sYW5ndWFnZSkKICAgICB7CiAgICAgY2Fz ZSBsYW5ndWFnZV9jcGx1czoKKyAgICBjYXNlIGxhbmd1YWdlX2Q6CiAgICAg Y2FzZSBsYW5ndWFnZV9qYXZhOgogICAgIGNhc2UgbGFuZ3VhZ2Vfb2JqYzoK ICAgICAgIGlmIChnc3ltYm9sLT5sYW5ndWFnZV9zcGVjaWZpYy5jcGx1c19z cGVjaWZpYy5kZW1hbmdsZWRfbmFtZSAhPSBOVUxMKQpAQCAtNjUxLDYgKzY2 NCw3IEBAIHN5bWJvbF9kZW1hbmdsZWRfbmFtZSAoY29uc3Qgc3RydWN0IGdl bmVyYWxfc3ltYm9sX2luZm8gKmdzeW1ib2wpCiAgIHN3aXRjaCAoZ3N5bWJv bC0+bGFuZ3VhZ2UpCiAgICAgewogICAgIGNhc2UgbGFuZ3VhZ2VfY3BsdXM6 CisgICAgY2FzZSBsYW5ndWFnZV9kOgogICAgIGNhc2UgbGFuZ3VhZ2VfamF2 YToKICAgICBjYXNlIGxhbmd1YWdlX29iamM6CiAgICAgICBpZiAoZ3N5bWJv bC0+bGFuZ3VhZ2Vfc3BlY2lmaWMuY3BsdXNfc3BlY2lmaWMuZGVtYW5nbGVk X25hbWUgIT0gTlVMTCkKQEAgLTk0MCw3ICs5NTQsNyBAQCBsb29rdXBfc3lt Ym9sX2luX2xhbmd1YWdlIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBzdHJ1 Y3QgYmxvY2sgKmJsb2NrLAogCiAgIG1vZGlmaWVkX25hbWUgPSBuYW1lOwog Ci0gIC8qIElmIHdlIGFyZSB1c2luZyBDKysgb3IgSmF2YSwgZGVtYW5nbGUg dGhlIG5hbWUgYmVmb3JlIGRvaW5nIGEgbG9va3VwLCBzbworICAvKiBJZiB3 ZSBhcmUgdXNpbmcgQysrLCBELCBvciBKYXZhLCBkZW1hbmdsZSB0aGUgbmFt ZSBiZWZvcmUgZG9pbmcgYSBsb29rdXAsIHNvCiAgICAgIHdlIGNhbiBhbHdh eXMgYmluYXJ5IHNlYXJjaC4gKi8KICAgaWYgKGxhbmcgPT0gbGFuZ3VhZ2Vf Y3BsdXMpCiAgICAgewpAQCAtOTcyLDYgKzk4NiwxNSBAQCBsb29rdXBfc3lt Ym9sX2luX2xhbmd1YWdlIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBzdHJ1 Y3QgYmxvY2sgKmJsb2NrLAogCSAgbWFrZV9jbGVhbnVwICh4ZnJlZSwgZGVt YW5nbGVkX25hbWUpOwogCX0KICAgICB9CisgIGVsc2UgaWYgKGxhbmcgPT0g bGFuZ3VhZ2VfZCkKKyAgICB7CisgICAgICBkZW1hbmdsZWRfbmFtZSA9IGRf ZGVtYW5nbGUgKG5hbWUsIDApOworICAgICAgaWYgKGRlbWFuZ2xlZF9uYW1l KQorCXsKKwkgIG1vZGlmaWVkX25hbWUgPSBkZW1hbmdsZWRfbmFtZTsKKwkg IG1ha2VfY2xlYW51cCAoeGZyZWUsIGRlbWFuZ2xlZF9uYW1lKTsKKwl9Cisg ICAgfQogCiAgIGlmIChjYXNlX3NlbnNpdGl2aXR5ID09IGNhc2Vfc2Vuc2l0 aXZlX29mZikKICAgICB7CkBAIC0xNDEyLDYgKzE0MzUsNyBAQCBzeW1ib2xf bWF0Y2hlc19kb21haW4gKGVudW0gbGFuZ3VhZ2Ugc3ltYm9sX2xhbmd1YWdl LAogICAgICBBIEphdmEgY2xhc3MgZGVjbGFyYXRpb24gYWxzbyBkZWZpbmVz IGEgdHlwZWRlZiBmb3IgdGhlIGNsYXNzLgogICAgICBTaW1pbGFybHksIGFu eSBBZGEgdHlwZSBkZWNsYXJhdGlvbiBpbXBsaWNpdGx5IGRlZmluZXMgYSB0 eXBlZGVmLiAgKi8KICAgaWYgKHN5bWJvbF9sYW5ndWFnZSA9PSBsYW5ndWFn ZV9jcGx1cworICAgICAgfHwgc3ltYm9sX2xhbmd1YWdlID09IGxhbmd1YWdl X2QKICAgICAgIHx8IHN5bWJvbF9sYW5ndWFnZSA9PSBsYW5ndWFnZV9qYXZh CiAgICAgICB8fCBzeW1ib2xfbGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfYWRhKQog ICAgIHsKZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZGVm YXVsdC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2RlZmF1bHQuZXhw CmluZGV4IDk3ZDU0MDcuLjJhMTMwMDcgMTAwNjQ0Ci0tLSBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvZGVmYXVsdC5leHAKKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9kZWZhdWx0LmV4cApAQCAtNTMxLDcgKzUzMSw3IEBAIGdk Yl90ZXN0ICJzZXQgaGlzdG9yeSBzaXplIiAiQXJndW1lbnQgcmVxdWlyZWQg LmludGVnZXIgdG8gc2V0IGl0IHRvLioiICJzZXQgaGlzCiAjdGVzdCBzZXQg aGlzdG9yeQogZ2RiX3Rlc3QgInNldCBoaXN0b3J5IiAiXCJzZXQgaGlzdG9y eVwiIG11c3QgYmUgZm9sbG93ZWQgYnkgdGhlIG5hbWUgb2YgYSBoaXN0b3J5 IHN1YmNvbW1hbmQuKFxbXlxyXG5cXSpcW1xyXG5cXSkrTGlzdCBvZiBzZXQg aGlzdG9yeSBzdWJjb21tYW5kczooXFteXHJcblxdKlxbXHJcblxdKStzZXQg aGlzdG9yeSBleHBhbnNpb24gLS0gU2V0IGhpc3RvcnkgZXhwYW5zaW9uIG9u IGNvbW1hbmQgaW5wdXQoXFteXHJcblxdKlxbXHJcblxdKStzZXQgaGlzdG9y eSBmaWxlbmFtZSAtLSBTZXQgdGhlIGZpbGVuYW1lIGluIHdoaWNoIHRvIHJl Y29yZCB0aGUgY29tbWFuZCBoaXN0b3J5KFxbXlxyXG5cXSpcW1xyXG5cXSkr c2V0IGhpc3Rvcnkgc2F2ZSAtLSBTZXQgc2F2aW5nIG9mIHRoZSBoaXN0b3J5 IHJlY29yZCBvbiBleGl0KFxbXlxyXG5cXSpcW1xyXG5cXSkrc2V0IGhpc3Rv cnkgc2l6ZSAtLSBTZXQgdGhlIHNpemUgb2YgdGhlIGNvbW1hbmQgaGlzdG9y eShcW15cclxuXF0qXFtcclxuXF0pK1R5cGUgXCJoZWxwIHNldCBoaXN0b3J5 XCIgZm9sbG93ZWQgYnkgc2V0IGhpc3Rvcnkgc3ViY29tbWFuZCBuYW1lIGZv ciBmdWxsIGRvY3VtZW50YXRpb24uKFxbXlxyXG5cXSpcW1xyXG5cXSkrQ29t bWFuZCBuYW1lIGFiYnJldmlhdGlvbnMgYXJlIGFsbG93ZWQgaWYgdW5hbWJp Z3VvdXMuIiAic2V0IGhpc3RvcnkiCiAjdGVzdCBzZXQgbGFuZ3VhZ2UKLWdk Yl90ZXN0ICJzZXQgbGFuZ3VhZ2UiICJSZXF1aXJlcyBhbiBhcmd1bWVudC4g VmFsaWQgYXJndW1lbnRzIGFyZSBhdXRvLCBsb2NhbCwgdW5rbm93biwgYWRh LCBjLCBjLi4sIGFzbSwgbWluaW1hbCwgZm9ydHJhbiwgb2JqZWN0aXZlLWMs IGphdmEsIG1vZHVsYS0yLCBwYXNjYWwsIHNjaGVtZS4iICJzZXQgbGFuZ3Vh Z2UiCitnZGJfdGVzdCAic2V0IGxhbmd1YWdlIiAiUmVxdWlyZXMgYW4gYXJn dW1lbnQuIFZhbGlkIGFyZ3VtZW50cyBhcmUgYXV0bywgbG9jYWwsIHVua25v d24sIGFkYSwgYywgYy4uLCBhc20sIG1pbmltYWwsIGQsIGZvcnRyYW4sIG9i amVjdGl2ZS1jLCBqYXZhLCBtb2R1bGEtMiwgcGFzY2FsLCBzY2hlbWUuIiAi c2V0IGxhbmd1YWdlIgogI3Rlc3Qgc2V0IGxpc3RzaXplCiBnZGJfdGVzdCAi c2V0IGxpc3RzaXplIiAiQXJndW1lbnQgcmVxdWlyZWQgLmludGVnZXIgdG8g c2V0IGl0IHRvLioiICJzZXQgbGlzdHNpemUiCiAjdGVzdCBzZXQgcHJpbnQg InAiIGFiYnJldmlhdGlvbgo= --Multipart=_Sat__24_Apr_2010_03_04_41_+0300_n6XEoZ3bsBLSTEA6--