From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([184.105.139.130]:48770 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750899AbcGFFCR (ORCPT ); Wed, 6 Jul 2016 01:02:17 -0400 Received: from localhost (74-93-104-98-Washington.hfc.comcastbusiness.net [74.93.104.98]) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id CAF90594A63 for ; Tue, 5 Jul 2016 22:02:15 -0700 (PDT) Date: Tue, 05 Jul 2016 22:02:12 -0700 (PDT) Message-Id: <20160705.220212.1163599673285928871.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Tue_Jul__5_22_02_12_2016_080)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Tue_Jul__5_22_02_12_2016_080)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following bug fixes for 4.4.x and 4.6.x -stable, respectively. Thanks! ----Next_Part(Tue_Jul__5_22_02_12_2016_080)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_44.mbox" RnJvbSA0YzNiYTM1NDUwZjY4MTViYmI0ZTI3OGViZmZjZDM5ZGRmN2RmZGY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRh dGU6IFN1biwgMTIgSnVuIDIwMTYgMjA6MDE6MjUgLTA3MDAKU3ViamVjdDogW1BBVENIIDAxLzE0 XSBuZXRfc2NoZWQ6IGZpeCBwZmlmb19oZWFkX2Ryb3AgYmVoYXZpb3IgdnMgYmFja2xvZwoKWyBV cHN0cmVhbSBjb21taXQgNmMwZDU0ZjE4OTdkMjI5NzQ4ZDRmNDFlZjkxOTA3OGRiNmRiMjEyMyBd CgpXaGVuIHRoZSBxZGlzYyBpcyBmdWxsLCB3ZSBkcm9wIGEgcGFja2V0IGF0IHRoZSBoZWFkIG9m IHRoZSBxdWV1ZSwKcXVldWUgdGhlIGN1cnJlbnQgc2tiIGFuZCByZXR1cm4gTkVUX1hNSVRfQ04K Ck5vdyB3ZSB0cmFjayBiYWNrbG9nIG9uIHVwcGVyIHFkaXNjcywgd2UgbmVlZCB0byBjYWxsCnFk aXNjX3RyZWVfcmVkdWNlX2JhY2tsb2coKSwgZXZlbiBpZiB0aGUgcWxlbiBkaWQgbm90IGNoYW5n ZS4KCkZpeGVzOiAyY2NjY2Y1ZmI0M2YgKCJuZXRfc2NoZWQ6IHVwZGF0ZSBoaWVyYXJjaGljYWwg YmFja2xvZyB0b28iKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2ds ZS5jb20+CkNjOiBXQU5HIENvbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KQ2M6IEphbWFs IEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+CkFja2VkLWJ5OiBDb25nIFdhbmcgPHhpeW91 Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9zY2hfZmlmby5jIHwgNCArKysrCiAxIGZp bGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9m aWZvLmMgYi9uZXQvc2NoZWQvc2NoX2ZpZm8uYwppbmRleCAyMTc3ZWFjLi4yZTRiZDJjIDEwMDY0 NAotLS0gYS9uZXQvc2NoZWQvc2NoX2ZpZm8uYworKysgYi9uZXQvc2NoZWQvc2NoX2ZpZm8uYwpA QCAtMzcsMTQgKzM3LDE4IEBAIHN0YXRpYyBpbnQgcGZpZm9fZW5xdWV1ZShzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnNjaCkKIAogc3RhdGljIGludCBwZmlmb190YWlsX2VucXVl dWUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IFFkaXNjICpzY2gpCiB7CisJdW5zaWduZWQg aW50IHByZXZfYmFja2xvZzsKKwogCWlmIChsaWtlbHkoc2tiX3F1ZXVlX2xlbigmc2NoLT5xKSA8 IHNjaC0+bGltaXQpKQogCQlyZXR1cm4gcWRpc2NfZW5xdWV1ZV90YWlsKHNrYiwgc2NoKTsKIAor CXByZXZfYmFja2xvZyA9IHNjaC0+cXN0YXRzLmJhY2tsb2c7CiAJLyogcXVldWUgZnVsbCwgcmVt b3ZlIG9uZSBza2IgdG8gZnVsZmlsbCB0aGUgbGltaXQgKi8KIAlfX3FkaXNjX3F1ZXVlX2Ryb3Bf aGVhZChzY2gsICZzY2gtPnEpOwogCXFkaXNjX3FzdGF0c19kcm9wKHNjaCk7CiAJcWRpc2NfZW5x dWV1ZV90YWlsKHNrYiwgc2NoKTsKIAorCXFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2coc2NoLCAw LCBwcmV2X2JhY2tsb2cgLSBzY2gtPnFzdGF0cy5iYWNrbG9nKTsKIAlyZXR1cm4gTkVUX1hNSVRf Q047CiB9CiAKLS0gCjIuMS4wCgoKRnJvbSAyYzQyMGUyOGI4ZmJkNzE3ZThmMjcyZGE3ZGE1OWE0 MTdlNmE4Yjc1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiSmFzb24gQS4gRG9uZW5m ZWxkIiA8SmFzb25AengyYzQuY29tPgpEYXRlOiBXZWQsIDE1IEp1biAyMDE2IDExOjE0OjUzICsw MjAwClN1YmplY3Q6IFtQQVRDSCAwMi8xNF0gbmV0OiBEb24ndCBmb3JnZXQgcHJfZm10IG9uIG5l dF9kYmdfcmF0ZWxpbWl0ZWQgZm9yCiBDT05GSUdfRFlOQU1JQ19ERUJVRwoKWyBVcHN0cmVhbSBj b21taXQgZGFkZGVmNzZjM2RlYWFhNzkyMmY5ZDdiMThlZGJmMGEwNjEyMTVjMyBdCgpUaGUgaW1w bGVtZW50YXRpb24gb2YgbmV0X2RiZ19yYXRlbGltaXRlZCBpbiB0aGUgQ09ORklHX0RZTkFNSUNf REVCVUcKY2FzZSB3YXMgYWRkZWQgd2l0aCAyYzk0YjUzNzMgKCJuZXQ6IEltcGxlbWVudCBuZXRf ZGJnX3JhdGVsaW1pdGVkKCkgZm9yCkNPTkZJR19EWU5BTUlDX0RFQlVHIGNhc2UiKS4gVGhlIGlt cGxlbWVudGF0aW9uIHN0cmF0ZWd5IHdhcyB0byB0YWtlIHRoZQp1c3VhbCBkZWZpbml0aW9uIG9m IHRoZSBkeW5hbWljX3ByX2RlYnVnIG1hY3JvLCBidXQgYWx0ZXIgaXQgYnkgYWRkaW5nIGEKY2Fs bCB0byAibmV0X3JhdGVsaW1pdCgpIiBpbiB0aGUgaWYgc3RhdGVtZW50LiBUaGlzIGlzLCBpbiBm YWN0LCB0aGUKY29ycmVjdCBhcHByb2FjaC4KCkhvd2V2ZXIsIHdoaWxlIGRvaW5nIHRoaXMsIHRo ZSBhdXRob3Igb2YgdGhlIGNvbW1pdCBmb3Jnb3QgdG8gc3Vycm91bmQKZm10IGJ5IHByX2ZtdCwg cmVzdWx0aW5nIGluIHVucHJlZml4ZWQgbG9nIG1lc3NhZ2VzIGFwcGVhcmluZyBpbiB0aGUKY29u c29sZS4gU28sIHRoaXMgY29tbWl0IGFkZHMgYmFjayB0aGUgcHJfZm10KGZtdCkgaW52b2NhdGlv biwgbWFraW5nCm5ldF9kYmdfcmF0ZWxpbWl0ZWQgcHJvcGVybHkgY29uc2lzdGVudCBhY3Jvc3Mg REVCVUcsIG5vIERFQlVHLCBhbmQKRFlOQU1JQ19ERUJVRyBjYXNlcywgYW5kIGJyaW5naW5nIHBh cml0eSB3aXRoIHRoZSBiZWhhdmlvciBvZgpkeW5hbWljX3ByX2RlYnVnIGFzIHdlbGwuCgpGaXhl czogMmM5NGI1MzczICgibmV0OiBJbXBsZW1lbnQgbmV0X2RiZ19yYXRlbGltaXRlZCgpIGZvciBD T05GSUdfRFlOQU1JQ19ERUJVRyBjYXNlIikKU2lnbmVkLW9mZi1ieTogSmFzb24gQS4gRG9uZW5m ZWxkIDxKYXNvbkB6eDJjNC5jb20+CkNjOiBUaW0gQmluZ2hhbSA8dGJpbmdoYW1AYWthbWFpLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIGluY2x1ZGUvbGludXgvbmV0LmggfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbmV0Lmgg Yi9pbmNsdWRlL2xpbnV4L25ldC5oCmluZGV4IDI1ZWY2MzAuLmMwMGI4ZDEgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvbGludXgvbmV0LmgKKysrIGIvaW5jbHVkZS9saW51eC9uZXQuaApAQCAtMjUxLDcg KzI1MSw4IEBAIGRvIHsJCQkJCQkJCQlcCiAJREVGSU5FX0RZTkFNSUNfREVCVUdfTUVUQURBVEEo ZGVzY3JpcHRvciwgZm10KTsJCQlcCiAJaWYgKHVubGlrZWx5KGRlc2NyaXB0b3IuZmxhZ3MgJiBf RFBSSU5US19GTEFHU19QUklOVCkgJiYJXAogCSAgICBuZXRfcmF0ZWxpbWl0KCkpCQkJCQkJXAot CQlfX2R5bmFtaWNfcHJfZGVidWcoJmRlc2NyaXB0b3IsIGZtdCwgIyNfX1ZBX0FSR1NfXyk7CVwK KwkJX19keW5hbWljX3ByX2RlYnVnKCZkZXNjcmlwdG9yLCBwcl9mbXQoZm10KSwJCVwKKwkJICAg ICAgICAgICAgICAgICAgICMjX19WQV9BUkdTX18pOwkJCVwKIH0gd2hpbGUgKDApCiAjZWxpZiBk ZWZpbmVkKERFQlVHKQogI2RlZmluZSBuZXRfZGJnX3JhdGVsaW1pdGVkKGZtdCwgLi4uKQkJCQlc Ci0tIAoyLjEuMAoKCkZyb20gMGJhNzU2NTY0NWI3YmY1YjE0NDZiZjk0ZGZlYzU5NDk0MDk5OWE4 YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU2ltb24gSG9ybWFuIDxzaW1vbi5ob3Jt YW5AbmV0cm9ub21lLmNvbT4KRGF0ZTogVGh1LCAxNiBKdW4gMjAxNiAxNzowNjoxOSArMDkwMApT dWJqZWN0OiBbUEFUQ0ggMDMvMTRdIHNpdDogY29ycmVjdCBJUCBwcm90b2NvbCB1c2VkIGluIGlw aXA2X2VycgoKWyBVcHN0cmVhbSBjb21taXQgZDVkODc2MGI3OGQwY2ZhZmUyOTJmOTY1ZjU5OTk4 ODEzOGIwNmE3MCBdCgpTaW5jZSAzMmI4YThlNTljOWMgKCJzaXQ6IGFkZCBJUHY0IG92ZXIgSVB2 NCBzdXBwb3J0IikKaXBpcDZfZXJyKCkgbWF5IGJlIGNhbGxlZCBmb3IgcGFja2V0cyB3aG9zZSBJ UCBwcm90b2NvbCBpcwpJUFBST1RPX0lQSVAgYXMgd2VsbCBhcyB0aG9zZSB3aG9zZSBJUCBwcm90 b2NvbCBpcyBJUFBST1RPX0lQVjYuCgpJbiB0aGUgY2FzZSBvZiBJUFBST1RPX0lQSVAgcGFja2V0 cyB0aGUgY29ycmVjdCBwcm90b2NvbCB2YWx1ZSBpcyBub3QKcGFzc2VkIHRvIGlwdjRfdXBkYXRl X3BtdHUoKSBvciBpcHY0X3JlZGlyZWN0KCkuCgpUaGlzIHBhdGNoIHJlc29sdmVzIHRoaXMgcHJv YmxlbSBieSB1c2luZyB0aGUgSVAgcHJvdG9jb2wgb2YgdGhlIHBhY2tldApyYXRoZXIgdGhhbiBh IGhhcmQtY29kZWQgdmFsdWUuIFRoaXMgYXBwZWFycyB0byBiZSBjb25zaXN0ZW50CndpdGggdGhl IHVzYWdlIG9mIHRoZSBwcm90b2NvbCBvZiBhIHBhY2tldCBieSBpY21wX3NvY2tldF9kZWxpdmVy KCkKdGhlIGNhbGxlciBvZiBpcGlwNl9lcnIoKS4KCkkgd2FzIGFibGUgdG8gZXhlcmNpc2UgdGhl IHJlZGlyZWN0IGNhc2UgYnkgdXNpbmcgYSBzZXR1cCB3aGVyZSBhbiBJQ01QCnJlZGlyZWN0IHdh cyByZWNlaXZlZCBmb3IgdGhlIGRlc3RpbmF0aW9uIG9mIHRoZSBlbmNhcHN1bGF0ZWQgcGFja2V0 LgpIb3dldmVyLCBpdCBhcHBlYXJzIHRoYXQgYWx0aG91Z2ggaW5jb3JyZWN0IHRoZSBwcm90b2Nv bCBmaWVsZCBpcyBub3QgdXNlZAppbiB0aGlzIGNhc2UgYW5kIHRodXMgbm8gcHJvYmxlbSBtYW5p ZmVzdHMuICBPbiBpbnNwZWN0aW9uIGl0IGRvZXMgbm90CmFwcGVhciB0aGF0IGEgcHJvYmxlbSB3 aWxsIG1hbmlmZXN0IGluIHRoZSBmcmFnbWVudGF0aW9uIG5lZWRlZC91cGRhdGUgcG10dQpjYXNl IGVpdGhlci4KCkluIHNob3J0IEkgYmVsaWV2ZSB0aGlzIGlzIGEgY29zbWV0aWMgZml4LiBOb25l IHRoZSBsZXNzLCB0aGUgdXNlIG9mCklQUFJPVE9fSVBWNiBzZWVtcyB3cm9uZyBhbmQgY29uZnVz aW5nLgoKUmV2aWV3ZWQtYnk6IERpbmFuIEd1bmF3YXJkZW5hIDxkaW5hbi5ndW5hd2FyZGVuYUBu ZXRyb25vbWUuY29tPgpTaWduZWQtb2ZmLWJ5OiBTaW1vbiBIb3JtYW4gPHNpbW9uLmhvcm1hbkBu ZXRyb25vbWUuY29tPgpBY2tlZC1ieTogWU9TSElGVUpJIEhpZGVha2kgPHlvc2hmdWppQGxpbnV4 LWlwdjYub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L2lwdjYvc2l0LmMgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvc2l0LmMg Yi9uZXQvaXB2Ni9zaXQuYwppbmRleCBkY2NjYWU4Li5iYTNkMmYzIDEwMDY0NAotLS0gYS9uZXQv aXB2Ni9zaXQuYworKysgYi9uZXQvaXB2Ni9zaXQuYwpAQCAtNTYwLDEzICs1NjAsMTMgQEAgc3Rh dGljIGludCBpcGlwNl9lcnIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIGluZm8pCiAKIAlpZiAo dHlwZSA9PSBJQ01QX0RFU1RfVU5SRUFDSCAmJiBjb2RlID09IElDTVBfRlJBR19ORUVERUQpIHsK IAkJaXB2NF91cGRhdGVfcG10dShza2IsIGRldl9uZXQoc2tiLT5kZXYpLCBpbmZvLAotCQkJCSB0 LT5wYXJtcy5saW5rLCAwLCBJUFBST1RPX0lQVjYsIDApOworCQkJCSB0LT5wYXJtcy5saW5rLCAw LCBpcGgtPnByb3RvY29sLCAwKTsKIAkJZXJyID0gMDsKIAkJZ290byBvdXQ7CiAJfQogCWlmICh0 eXBlID09IElDTVBfUkVESVJFQ1QpIHsKIAkJaXB2NF9yZWRpcmVjdChza2IsIGRldl9uZXQoc2ti LT5kZXYpLCB0LT5wYXJtcy5saW5rLCAwLAotCQkJICAgICAgSVBQUk9UT19JUFY2LCAwKTsKKwkJ CSAgICAgIGlwaC0+cHJvdG9jb2wsIDApOwogCQllcnIgPSAwOwogCQlnb3RvIG91dDsKIAl9Ci0t IAoyLjEuMAoKCkZyb20gNzM2OGUwNmQ0MzA4NDI2MWE4OTViN2QxNGI2MDQ4MGY0Mjc1MmQwZiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGVyYmVydCBYdSA8aGVyYmVydEBnb25kb3Iu YXBhbmEub3JnLmF1PgpEYXRlOiBTYXQsIDE4IEp1biAyMDE2IDEzOjAzOjM2ICswODAwClN1Ympl Y3Q6IFtQQVRDSCAwNC8xNF0gZXNwOiBGaXggRVNOIGdlbmVyYXRpb24gdW5kZXIgVURQIGVuY2Fw c3VsYXRpb24KClsgVXBzdHJlYW0gY29tbWl0IDk2MmZjZWYzM2IwMzM5NTA1MTM2NzE4MWEwNTQ5 ZDI5ZDEwOWQ5YTQgXQoKQmxhaXIgU3RldmVuIG5vdGljZWQgdGhhdCBFU04gaW4gY29uanVuY3Rp b24gd2l0aCBVRFAgZW5jYXBzdWxhdGlvbgppcyBicm9rZW4gYmVjYXVzZSB3ZSBzZXQgdGhlIHRl bXBvcmFyeSBFU1AgaGVhZGVyIHRvIHRoZSB3cm9uZyBzcG90LgoKVGhpcyBwYXRjaCBmaXhlcyB0 aGlzIGJ5IGZpcnN0IG9mIGFsbCB1c2luZyB0aGUgcmlnaHQgc3BvdCwgaS5lLiwKNCBieXRlcyBv ZmYgdGhlIHJlYWwgRVNQIGhlYWRlciwgYW5kIHRoZW4gc2F2aW5nIHRoaXMgaW5mb3JtYXRpb24K c28gdGhhdCBhZnRlciBlbmNyeXB0aW9uIHdlIGNhbiByZXN0b3JlIGl0IHByb3Blcmx5LgoKRml4 ZXM6IDcwMjFiMmUxY2RkZCAoImVzcDQ6IFN3aXRjaCB0byBuZXcgQUVBRCBpbnRlcmZhY2UiKQpS ZXBvcnRlZC1ieTogQmxhaXIgU3RldmVuIDxCbGFpci5TdGV2ZW5AYWxsaWVkdGVsZXNpcy5jby5u ej4KU2lnbmVkLW9mZi1ieTogSGVyYmVydCBYdSA8aGVyYmVydEBnb25kb3IuYXBhbmEub3JnLmF1 PgpBY2tlZC1ieTogU3RlZmZlbiBLbGFzc2VydCA8c3RlZmZlbi5rbGFzc2VydEBzZWN1bmV0LmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9pcHY0L2VzcDQuYyB8IDUyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMiBpbnNlcnRpb25zKCspLCAy MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9lc3A0LmMgYi9uZXQvaXB2NC9l c3A0LmMKaW5kZXggNDc3OTM3NC4uZDk1NjMxZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZXNwNC5j CisrKyBiL25ldC9pcHY0L2VzcDQuYwpAQCAtMjMsNiArMjMsMTEgQEAgc3RydWN0IGVzcF9za2Jf Y2IgewogCXZvaWQgKnRtcDsKIH07CiAKK3N0cnVjdCBlc3Bfb3V0cHV0X2V4dHJhIHsKKwlfX2Jl MzIgc2VxaGk7CisJdTMyIGVzcGhvZmY7Cit9OworCiAjZGVmaW5lIEVTUF9TS0JfQ0IoX19za2Ip ICgoc3RydWN0IGVzcF9za2JfY2IgKikmKChfX3NrYiktPmNiWzBdKSkKIAogc3RhdGljIHUzMiBl c3A0X2dldF9tdHUoc3RydWN0IHhmcm1fc3RhdGUgKngsIGludCBtdHUpOwpAQCAtMzUsMTEgKzQw LDExIEBAIHN0YXRpYyB1MzIgZXNwNF9nZXRfbXR1KHN0cnVjdCB4ZnJtX3N0YXRlICp4LCBpbnQg bXR1KTsKICAqCiAgKiBUT0RPOiBVc2Ugc3BhcmUgc3BhY2UgaW4gc2tiIGZvciB0aGlzIHdoZXJl IHBvc3NpYmxlLgogICovCi1zdGF0aWMgdm9pZCAqZXNwX2FsbG9jX3RtcChzdHJ1Y3QgY3J5cHRv X2FlYWQgKmFlYWQsIGludCBuZnJhZ3MsIGludCBzZXFoaWxlbikKK3N0YXRpYyB2b2lkICplc3Bf YWxsb2NfdG1wKHN0cnVjdCBjcnlwdG9fYWVhZCAqYWVhZCwgaW50IG5mcmFncywgaW50IGV4dHJh bGVuKQogewogCXVuc2lnbmVkIGludCBsZW47CiAKLQlsZW4gPSBzZXFoaWxlbjsKKwlsZW4gPSBl eHRyYWxlbjsKIAogCWxlbiArPSBjcnlwdG9fYWVhZF9pdnNpemUoYWVhZCk7CiAKQEAgLTU3LDE1 ICs2MiwxNiBAQCBzdGF0aWMgdm9pZCAqZXNwX2FsbG9jX3RtcChzdHJ1Y3QgY3J5cHRvX2FlYWQg KmFlYWQsIGludCBuZnJhZ3MsIGludCBzZXFoaWxlbikKIAlyZXR1cm4ga21hbGxvYyhsZW4sIEdG UF9BVE9NSUMpOwogfQogCi1zdGF0aWMgaW5saW5lIF9fYmUzMiAqZXNwX3RtcF9zZXFoaSh2b2lk ICp0bXApCitzdGF0aWMgaW5saW5lIHZvaWQgKmVzcF90bXBfZXh0cmEodm9pZCAqdG1wKQogewot CXJldHVybiBQVFJfQUxJR04oKF9fYmUzMiAqKXRtcCwgX19hbGlnbm9mX18oX19iZTMyKSk7CisJ cmV0dXJuIFBUUl9BTElHTih0bXAsIF9fYWxpZ25vZl9fKHN0cnVjdCBlc3Bfb3V0cHV0X2V4dHJh KSk7CiB9Ci1zdGF0aWMgaW5saW5lIHU4ICplc3BfdG1wX2l2KHN0cnVjdCBjcnlwdG9fYWVhZCAq YWVhZCwgdm9pZCAqdG1wLCBpbnQgc2VxaGlsZW4pCisKK3N0YXRpYyBpbmxpbmUgdTggKmVzcF90 bXBfaXYoc3RydWN0IGNyeXB0b19hZWFkICphZWFkLCB2b2lkICp0bXAsIGludCBleHRyYWxlbikK IHsKIAlyZXR1cm4gY3J5cHRvX2FlYWRfaXZzaXplKGFlYWQpID8KLQkgICAgICAgUFRSX0FMSUdO KCh1OCAqKXRtcCArIHNlcWhpbGVuLAotCQkJIGNyeXB0b19hZWFkX2FsaWdubWFzayhhZWFkKSAr IDEpIDogdG1wICsgc2VxaGlsZW47CisJICAgICAgIFBUUl9BTElHTigodTggKil0bXAgKyBleHRy YWxlbiwKKwkJCSBjcnlwdG9fYWVhZF9hbGlnbm1hc2soYWVhZCkgKyAxKSA6IHRtcCArIGV4dHJh bGVuOwogfQogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBhZWFkX3JlcXVlc3QgKmVzcF90bXBfcmVx KHN0cnVjdCBjcnlwdG9fYWVhZCAqYWVhZCwgdTggKml2KQpAQCAtOTksNyArMTA1LDcgQEAgc3Rh dGljIHZvaWQgZXNwX3Jlc3RvcmVfaGVhZGVyKHN0cnVjdCBza19idWZmICpza2IsIHVuc2lnbmVk IGludCBvZmZzZXQpCiB7CiAJc3RydWN0IGlwX2VzcF9oZHIgKmVzcGggPSAodm9pZCAqKShza2It PmRhdGEgKyBvZmZzZXQpOwogCXZvaWQgKnRtcCA9IEVTUF9TS0JfQ0Ioc2tiKS0+dG1wOwotCV9f YmUzMiAqc2VxaGkgPSBlc3BfdG1wX3NlcWhpKHRtcCk7CisJX19iZTMyICpzZXFoaSA9IGVzcF90 bXBfZXh0cmEodG1wKTsKIAogCWVzcGgtPnNlcV9ubyA9IGVzcGgtPnNwaTsKIAllc3BoLT5zcGkg PSAqc2VxaGk7CkBAIC0xMDcsNyArMTEzLDExIEBAIHN0YXRpYyB2b2lkIGVzcF9yZXN0b3JlX2hl YWRlcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1bnNpZ25lZCBpbnQgb2Zmc2V0KQogCiBzdGF0aWMg dm9pZCBlc3Bfb3V0cHV0X3Jlc3RvcmVfaGVhZGVyKHN0cnVjdCBza19idWZmICpza2IpCiB7Ci0J ZXNwX3Jlc3RvcmVfaGVhZGVyKHNrYiwgc2tiX3RyYW5zcG9ydF9vZmZzZXQoc2tiKSAtIHNpemVv ZihfX2JlMzIpKTsKKwl2b2lkICp0bXAgPSBFU1BfU0tCX0NCKHNrYiktPnRtcDsKKwlzdHJ1Y3Qg ZXNwX291dHB1dF9leHRyYSAqZXh0cmEgPSBlc3BfdG1wX2V4dHJhKHRtcCk7CisKKwllc3BfcmVz dG9yZV9oZWFkZXIoc2tiLCBza2JfdHJhbnNwb3J0X29mZnNldChza2IpICsgZXh0cmEtPmVzcGhv ZmYgLQorCQkJCXNpemVvZihfX2JlMzIpKTsKIH0KIAogc3RhdGljIHZvaWQgZXNwX291dHB1dF9k b25lX2VzbihzdHJ1Y3QgY3J5cHRvX2FzeW5jX3JlcXVlc3QgKmJhc2UsIGludCBlcnIpCkBAIC0x MjEsNiArMTMxLDcgQEAgc3RhdGljIHZvaWQgZXNwX291dHB1dF9kb25lX2VzbihzdHJ1Y3QgY3J5 cHRvX2FzeW5jX3JlcXVlc3QgKmJhc2UsIGludCBlcnIpCiBzdGF0aWMgaW50IGVzcF9vdXRwdXQo c3RydWN0IHhmcm1fc3RhdGUgKngsIHN0cnVjdCBza19idWZmICpza2IpCiB7CiAJaW50IGVycjsK KwlzdHJ1Y3QgZXNwX291dHB1dF9leHRyYSAqZXh0cmE7CiAJc3RydWN0IGlwX2VzcF9oZHIgKmVz cGg7CiAJc3RydWN0IGNyeXB0b19hZWFkICphZWFkOwogCXN0cnVjdCBhZWFkX3JlcXVlc3QgKnJl cTsKQEAgLTEzNyw4ICsxNDgsNyBAQCBzdGF0aWMgaW50IGVzcF9vdXRwdXQoc3RydWN0IHhmcm1f c3RhdGUgKngsIHN0cnVjdCBza19idWZmICpza2IpCiAJaW50IHRmY2xlbjsKIAlpbnQgbmZyYWdz OwogCWludCBhc3NvY2xlbjsKLQlpbnQgc2VxaGlsZW47Ci0JX19iZTMyICpzZXFoaTsKKwlpbnQg ZXh0cmFsZW47CiAJX19iZTY0IHNlcW5vOwogCiAJLyogc2tiIGlzIHB1cmUgcGF5bG9hZCB0byBl bmNyeXB0ICovCkBAIC0xNjYsMjEgKzE3NiwyMSBAQCBzdGF0aWMgaW50IGVzcF9vdXRwdXQoc3Ry dWN0IHhmcm1fc3RhdGUgKngsIHN0cnVjdCBza19idWZmICpza2IpCiAJbmZyYWdzID0gZXJyOwog CiAJYXNzb2NsZW4gPSBzaXplb2YoKmVzcGgpOwotCXNlcWhpbGVuID0gMDsKKwlleHRyYWxlbiA9 IDA7CiAKIAlpZiAoeC0+cHJvcHMuZmxhZ3MgJiBYRlJNX1NUQVRFX0VTTikgewotCQlzZXFoaWxl biArPSBzaXplb2YoX19iZTMyKTsKLQkJYXNzb2NsZW4gKz0gc2VxaGlsZW47CisJCWV4dHJhbGVu ICs9IHNpemVvZigqZXh0cmEpOworCQlhc3NvY2xlbiArPSBzaXplb2YoX19iZTMyKTsKIAl9CiAK LQl0bXAgPSBlc3BfYWxsb2NfdG1wKGFlYWQsIG5mcmFncywgc2VxaGlsZW4pOworCXRtcCA9IGVz cF9hbGxvY190bXAoYWVhZCwgbmZyYWdzLCBleHRyYWxlbik7CiAJaWYgKCF0bXApIHsKIAkJZXJy ID0gLUVOT01FTTsKIAkJZ290byBlcnJvcjsKIAl9CiAKLQlzZXFoaSA9IGVzcF90bXBfc2VxaGko dG1wKTsKLQlpdiA9IGVzcF90bXBfaXYoYWVhZCwgdG1wLCBzZXFoaWxlbik7CisJZXh0cmEgPSBl c3BfdG1wX2V4dHJhKHRtcCk7CisJaXYgPSBlc3BfdG1wX2l2KGFlYWQsIHRtcCwgZXh0cmFsZW4p OwogCXJlcSA9IGVzcF90bXBfcmVxKGFlYWQsIGl2KTsKIAlzZyA9IGVzcF9yZXFfc2coYWVhZCwg cmVxKTsKIApAQCAtMjQ3LDggKzI1NywxMCBAQCBzdGF0aWMgaW50IGVzcF9vdXRwdXQoc3RydWN0 IHhmcm1fc3RhdGUgKngsIHN0cnVjdCBza19idWZmICpza2IpCiAJICogZW5jcnlwdGlvbi4KIAkg Ki8KIAlpZiAoKHgtPnByb3BzLmZsYWdzICYgWEZSTV9TVEFURV9FU04pKSB7Ci0JCWVzcGggPSAo dm9pZCAqKShza2JfdHJhbnNwb3J0X2hlYWRlcihza2IpIC0gc2l6ZW9mKF9fYmUzMikpOwotCQkq c2VxaGkgPSBlc3BoLT5zcGk7CisJCWV4dHJhLT5lc3Bob2ZmID0gKHVuc2lnbmVkIGNoYXIgKill c3BoIC0KKwkJCQkgc2tiX3RyYW5zcG9ydF9oZWFkZXIoc2tiKTsKKwkJZXNwaCA9IChzdHJ1Y3Qg aXBfZXNwX2hkciAqKSgodW5zaWduZWQgY2hhciAqKWVzcGggLSA0KTsKKwkJZXh0cmEtPnNlcWhp ID0gZXNwaC0+c3BpOwogCQllc3BoLT5zZXFfbm8gPSBodG9ubChYRlJNX1NLQl9DQihza2IpLT5z ZXEub3V0cHV0LmhpKTsKIAkJYWVhZF9yZXF1ZXN0X3NldF9jYWxsYmFjayhyZXEsIDAsIGVzcF9v dXRwdXRfZG9uZV9lc24sIHNrYik7CiAJfQpAQCAtNDQ1LDcgKzQ1Nyw3IEBAIHN0YXRpYyBpbnQg ZXNwX2lucHV0KHN0cnVjdCB4ZnJtX3N0YXRlICp4LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQln b3RvIG91dDsKIAogCUVTUF9TS0JfQ0Ioc2tiKS0+dG1wID0gdG1wOwotCXNlcWhpID0gZXNwX3Rt cF9zZXFoaSh0bXApOworCXNlcWhpID0gZXNwX3RtcF9leHRyYSh0bXApOwogCWl2ID0gZXNwX3Rt cF9pdihhZWFkLCB0bXAsIHNlcWhpbGVuKTsKIAlyZXEgPSBlc3BfdG1wX3JlcShhZWFkLCBpdik7 CiAJc2cgPSBlc3BfcmVxX3NnKGFlYWQsIHJlcSk7Ci0tIAoyLjEuMAoKCkZyb20gYzBmYWE2NGVj ZWY2ZTFjNjQxMmE5NDc1OWI3OTA5NTdjZGIyYWFmYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBNb24sIDIwIEp1 biAyMDE2IDE1OjAwOjQzIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwNS8xNF0gbmV0ZW06IGZpeCBh IHVzZSBhZnRlciBmcmVlCgpbIFVwc3RyZWFtIGNvbW1pdCAyMWRlMTJlZTU1NjhmZDFhZWM0Nzg5 MGM3Mjk2N2FiZjc5MWFjODBhIF0KCklmIHRoZSBwYWNrZXQgd2FzIGRyb3BwZWQgYnkgbG93ZXIg cWRpc2MsIHRoZW4gd2UgbXVzdCBub3QKYWNjZXNzIGl0IGxhdGVyLgoKU2F2ZSBxZGlzY19wa3Rf bGVuKHNrYikgaW4gYSB0ZW1wIHZhcmlhYmxlLgoKRml4ZXM6IDJjY2NjZjVmYjQzZiAoIm5ldF9z Y2hlZDogdXBkYXRlIGhpZXJhcmNoaWNhbCBiYWNrbG9nIHRvbyIpClNpZ25lZC1vZmYtYnk6IEVy aWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IFdBTkcgQ29uZyA8eGl5b3Uud2Fu Z2NvbmdAZ21haWwuY29tPgpDYzogSmFtYWwgSGFkaSBTYWxpbSA8amhzQG1vamF0YXR1LmNvbT4K Q2M6IFN0ZXBoZW4gSGVtbWluZ2VyIDxzdGVwaGVuQG5ldHdvcmtwbHVtYmVyLm9yZz4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9z Y2hlZC9zY2hfbmV0ZW0uYyB8IDEyICsrKysrKy0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5z ZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX25l dGVtLmMgYi9uZXQvc2NoZWQvc2NoX25ldGVtLmMKaW5kZXggNGJlZmU5Ny4uYjdjMjlkNSAxMDA2 NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9uZXRlbS5jCisrKyBiL25ldC9zY2hlZC9zY2hfbmV0ZW0u YwpAQCAtNjUwLDE0ICs2NTAsMTQgQEAgZGVsaXZlcjoKICNlbmRpZgogCiAJCQlpZiAocS0+cWRp c2MpIHsKKwkJCQl1bnNpZ25lZCBpbnQgcGt0X2xlbiA9IHFkaXNjX3BrdF9sZW4oc2tiKTsKIAkJ CQlpbnQgZXJyID0gcWRpc2NfZW5xdWV1ZShza2IsIHEtPnFkaXNjKTsKIAotCQkJCWlmICh1bmxp a2VseShlcnIgIT0gTkVUX1hNSVRfU1VDQ0VTUykpIHsKLQkJCQkJaWYgKG5ldF94bWl0X2Ryb3Bf Y291bnQoZXJyKSkgewotCQkJCQkJcWRpc2NfcXN0YXRzX2Ryb3Aoc2NoKTsKLQkJCQkJCXFkaXNj X3RyZWVfcmVkdWNlX2JhY2tsb2coc2NoLCAxLAotCQkJCQkJCQkJICBxZGlzY19wa3RfbGVuKHNr YikpOwotCQkJCQl9CisJCQkJaWYgKGVyciAhPSBORVRfWE1JVF9TVUNDRVNTICYmCisJCQkJICAg IG5ldF94bWl0X2Ryb3BfY291bnQoZXJyKSkgeworCQkJCQlxZGlzY19xc3RhdHNfZHJvcChzY2gp OworCQkJCQlxZGlzY190cmVlX3JlZHVjZV9iYWNrbG9nKHNjaCwgMSwKKwkJCQkJCQkJICBwa3Rf bGVuKTsKIAkJCQl9CiAJCQkJZ290byB0Zmlmb19kZXF1ZXVlOwogCQkJfQotLSAKMi4xLjAKCgpG cm9tIGY0NDA2ZDY3MGY2NmZlODRiN2Y0MmY3YzM3ZTJmZGYwYjQ2ZTFmZDEgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFRvbSBHb2ZmIDx0aG9tYXMuZ29mZkBsbC5taXQuZWR1PgpEYXRl OiBUaHUsIDIzIEp1biAyMDE2IDE2OjExOjU3IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAwNi8xNF0g aXBtci9pcDZtcjogSW5pdGlhbGl6ZSB0aGUgbGFzdCBhc3NlcnQgdGltZSBvZiBtZmMKIGVudHJp ZXMuCgpbIFVwc3RyZWFtIGNvbW1pdCA3MGEwZGVjNDUxNzRjOTc2YzY0YjRjOGMxZDA4OTg1ODFm NzU5OTQ4IF0KClRoaXMgZml4ZXMgd3JvbmctaW50ZXJmYWNlIHNpZ25hbGluZyBvbiAzMi1iaXQg cGxhdGZvcm1zIGZvciBlbnRyaWVzCmNyZWF0ZWQgd2hlbiBqaWZmaWVzID4gMl4zMSArIE1GQ19B U1NFUlRfVEhSRVNILgoKU2lnbmVkLW9mZi1ieTogVG9tIEdvZmYgPHRob21hcy5nb2ZmQGxsLm1p dC5lZHU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvaXB2NC9pcG1yLmMgIHwgNCArKystCiBuZXQvaXB2Ni9pcDZtci5jIHwgMSAr CiAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL25ldC9pcHY0L2lwbXIuYyBiL25ldC9pcHY0L2lwbXIuYwppbmRleCBjM2EzODM1Li45 ZDFlNTU1IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pcG1yLmMKKysrIGIvbmV0L2lwdjQvaXBtci5j CkBAIC04ODIsOCArODgyLDEwIEBAIHN0YXRpYyBzdHJ1Y3QgbWZjX2NhY2hlICppcG1yX2NhY2hl X2FsbG9jKHZvaWQpCiB7CiAJc3RydWN0IG1mY19jYWNoZSAqYyA9IGttZW1fY2FjaGVfemFsbG9j KG1ydF9jYWNoZXAsIEdGUF9LRVJORUwpOwogCi0JaWYgKGMpCisJaWYgKGMpIHsKKwkJYy0+bWZj X3VuLnJlcy5sYXN0X2Fzc2VydCA9IGppZmZpZXMgLSBNRkNfQVNTRVJUX1RIUkVTSCAtIDE7CiAJ CWMtPm1mY191bi5yZXMubWludmlmID0gTUFYVklGUzsKKwl9CiAJcmV0dXJuIGM7CiB9CiAKZGlm ZiAtLWdpdCBhL25ldC9pcHY2L2lwNm1yLmMgYi9uZXQvaXB2Ni9pcDZtci5jCmluZGV4IGExMGU3 NzEuLmUyMDdjYjIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNm1yLmMKKysrIGIvbmV0L2lwdjYv aXA2bXIuYwpAQCAtMTA3NCw2ICsxMDc0LDcgQEAgc3RhdGljIHN0cnVjdCBtZmM2X2NhY2hlICpp cDZtcl9jYWNoZV9hbGxvYyh2b2lkKQogCXN0cnVjdCBtZmM2X2NhY2hlICpjID0ga21lbV9jYWNo ZV96YWxsb2MobXJ0X2NhY2hlcCwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFjKQogCQlyZXR1cm4gTlVM TDsKKwljLT5tZmNfdW4ucmVzLmxhc3RfYXNzZXJ0ID0gamlmZmllcyAtIE1GQ19BU1NFUlRfVEhS RVNIIC0gMTsKIAljLT5tZmNfdW4ucmVzLm1pbnZpZiA9IE1BWE1JRlM7CiAJcmV0dXJuIGM7CiB9 Ci0tIAoyLjEuMAoKCkZyb20gMDgxOWJkYWYxNTNjMDNkZTBlOGRhODgwOTJjZDA5YjlkMzRiZjRh ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogZGFuaWVsIDxkYW5pZWxAZGQtd3J0LmNv bT4KRGF0ZTogRnJpLCAyNCBKdW4gMjAxNiAxMjozNToxOCArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MDcvMTRdIEJyaWRnZTogRml4IGlwdjYgbWMgc25vb3BpbmcgaWYgYnJpZGdlIGhhcyBubyBpcHY2 CiBhZGRyZXNzCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hh cnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNv bW1pdCAwODg4ZDVmM2MwZjE4M2VhNjE3NzM1NTc1MmFkYTQzM2QzNzBhYzg5IF0KClRoZSBicmlk Z2UgaXMgZmFsc2x5IGRyb3BwaW5nIGlwdjYgbXVsaXRjYXN0IHBhY2tldHMgaWYgdGhlcmUgaXM6 CiAxLiBObyBpcHY2IGFkZHJlc3MgYXNzaWduZWQgb24gdGhlIGJyaWdkZS4KIDIuIE5vIGV4dGVy bmFsIG1sZCBxdWVyaWVyIHByZXNlbnQuCiAzLiBUaGUgaW50ZXJuYWwgcXVlcmllciBlbmFibGVk LgoKV2hlbiB0aGUgYnJpZGdlIGZhaWxzIHRvIGJ1aWxkIG1sZCBxdWVyaWVzLCBiZWNhdXNlIGl0 IGhhcyBubwppcHY2IGFkZHJlc3MsIGl0IHNsaWxlbnRseSByZXR1cm5zLCBidXQga2VlcHMgdGhl IGxvY2FsIHF1ZXJpZXIgZW5hYmxlZC4KVGhpcyBzcGVjaWZpYyBjYXNlIGNhdXNlcyBjb25mdXNp bmcgcGFja2V0IGxvc3MuCgpJcHY2IG11bHRpY2FzdCBzbm9vcGluZyBjYW4gb25seSB3b3JrIGlm OgogYSkgQW4gZXh0ZXJuYWwgcXVlcmllciBpcyBwcmVzZW50CiBPUgogYikgVGhlIGJyaWRnZSBo YXMgYW4gaXB2NiBhZGRyZXNzIGFuIGlzIGNhcGFibGUgb2Ygc2VuZGluZyBvd24gcXVlcmllcwoK T3RoZXJ3aXNlIGl0IGhhcyB0byBmb3J3YXJkL2Zsb29kIHRoZSBpcHY2IG11bHRpY2FzdCB0cmFm ZmljLApiZWNhdXNlIHNub29waW5nIGNhbm5vdCB3b3JrLgoKVGhpcyBwYXRjaCBmaXhlcyB0aGUg aXNzdWUgYnkgYWRkaW5nIGEgZmxhZyB0byB0aGUgYnJpZGdlIHN0cnVjdCB0aGF0CmluZGljYXRl cyB0aGF0IHRoZXJlIGlzIGN1cnJlbnRseSBubyBpcHY2IGFkZHJlc3MgYXNzaW5nZWQgdG8gdGhl IGJyaWRnZQphbmQgcmV0dXJucyBhIGZhbHNlIHN0YXRlIGZvciB0aGUgbG9jYWwgcXVlcmllciBp bgpfX2JyX211bHRpY2FzdF9xdWVyaWVyX2V4aXN0cygpLgoKU3BlY2lhbCB0aGFua3MgdG8gTGlu dXMgTMO8c3NpbmcuCgpGaXhlczogZDFkODFkNGMzZGQ4ICgiYnJpZGdlOiBjaGVjayByZXR1cm4g dmFsdWUgb2YgaXB2Nl9kZXZfZ2V0X3NhZGRyKCkiKQpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgRGFu emJlcmdlciA8ZGFuaWVsQGRkLXdydC5jb20+CkFja2VkLWJ5OiBMaW51cyBMw7xzc2luZyA8bGlu dXMubHVlc3NpbmdAYzBkMy5ibHVlPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYyB8ICA0ICsr KysKIG5ldC9icmlkZ2UvYnJfcHJpdmF0ZS5oICAgfCAyMyArKysrKysrKysrKysrKysrKysrLS0t LQogMiBmaWxlcyBjaGFuZ2VkLCAyMyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMgYi9uZXQvYnJpZGdlL2JyX211bHRp Y2FzdC5jCmluZGV4IGVhOTg5MzcuLjcxNzNhNjggMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvYnJf bXVsdGljYXN0LmMKKysrIGIvbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYwpAQCAtNDY0LDggKzQ2 NCwxMSBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmJyX2lwNl9tdWx0aWNhc3RfYWxsb2NfcXVl cnkoc3RydWN0IG5ldF9icmlkZ2UgKmJyLAogCWlmIChpcHY2X2Rldl9nZXRfc2FkZHIoZGV2X25l dChici0+ZGV2KSwgYnItPmRldiwgJmlwNmgtPmRhZGRyLCAwLAogCQkJICAgICAgICZpcDZoLT5z YWRkcikpIHsKIAkJa2ZyZWVfc2tiKHNrYik7CisJCWJyLT5oYXNfaXB2Nl9hZGRyID0gMDsKIAkJ cmV0dXJuIE5VTEw7CiAJfQorCisJYnItPmhhc19pcHY2X2FkZHIgPSAxOwogCWlwdjZfZXRoX21j X21hcCgmaXA2aC0+ZGFkZHIsIGV0aC0+aF9kZXN0KTsKIAogCWhvcG9wdCA9ICh1OCAqKShpcDZo ICsgMSk7CkBAIC0xNzM2LDYgKzE3MzksNyBAQCB2b2lkIGJyX211bHRpY2FzdF9pbml0KHN0cnVj dCBuZXRfYnJpZGdlICpicikKIAlici0+aXA2X290aGVyX3F1ZXJ5LmRlbGF5X3RpbWUgPSAwOwog CWJyLT5pcDZfcXVlcmllci5wb3J0ID0gTlVMTDsKICNlbmRpZgorCWJyLT5oYXNfaXB2Nl9hZGRy ID0gMTsKIAogCXNwaW5fbG9ja19pbml0KCZici0+bXVsdGljYXN0X2xvY2spOwogCXNldHVwX3Rp bWVyKCZici0+bXVsdGljYXN0X3JvdXRlcl90aW1lciwKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2Uv YnJfcHJpdmF0ZS5oIGIvbmV0L2JyaWRnZS9icl9wcml2YXRlLmgKaW5kZXggMjE2MDE4Yy4uMTAw MWExYiAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9icl9wcml2YXRlLmgKKysrIGIvbmV0L2JyaWRn ZS9icl9wcml2YXRlLmgKQEAgLTMwMSw2ICszMDEsNyBAQCBzdHJ1Y3QgbmV0X2JyaWRnZQogCXU4 CQkJCW11bHRpY2FzdF9kaXNhYmxlZDoxOwogCXU4CQkJCW11bHRpY2FzdF9xdWVyaWVyOjE7CiAJ dTgJCQkJbXVsdGljYXN0X3F1ZXJ5X3VzZV9pZmFkZHI6MTsKKwl1OAkJCQloYXNfaXB2Nl9hZGRy OjE7CiAKIAl1MzIJCQkJaGFzaF9lbGFzdGljaXR5OwogCXUzMgkJCQloYXNoX21heDsKQEAgLTU3 NCwxMCArNTc1LDIyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBicl9tdWx0aWNhc3RfaXNfcm91dGVy KHN0cnVjdCBuZXRfYnJpZGdlICpicikKIAogc3RhdGljIGlubGluZSBib29sCiBfX2JyX211bHRp Y2FzdF9xdWVyaWVyX2V4aXN0cyhzdHJ1Y3QgbmV0X2JyaWRnZSAqYnIsCi0JCQkgICAgICBzdHJ1 Y3QgYnJpZGdlX21jYXN0X290aGVyX3F1ZXJ5ICpxdWVyaWVyKQorCQkJCXN0cnVjdCBicmlkZ2Vf bWNhc3Rfb3RoZXJfcXVlcnkgKnF1ZXJpZXIsCisJCQkJY29uc3QgYm9vbCBpc19pcHY2KQogewor CWJvb2wgb3duX3F1ZXJpZXJfZW5hYmxlZDsKKworCWlmIChici0+bXVsdGljYXN0X3F1ZXJpZXIp IHsKKwkJaWYgKGlzX2lwdjYgJiYgIWJyLT5oYXNfaXB2Nl9hZGRyKQorCQkJb3duX3F1ZXJpZXJf ZW5hYmxlZCA9IGZhbHNlOworCQllbHNlCisJCQlvd25fcXVlcmllcl9lbmFibGVkID0gdHJ1ZTsK Kwl9IGVsc2UgeworCQlvd25fcXVlcmllcl9lbmFibGVkID0gZmFsc2U7CisJfQorCiAJcmV0dXJu IHRpbWVfaXNfYmVmb3JlX2ppZmZpZXMocXVlcmllci0+ZGVsYXlfdGltZSkgJiYKLQkgICAgICAg KGJyLT5tdWx0aWNhc3RfcXVlcmllciB8fCB0aW1lcl9wZW5kaW5nKCZxdWVyaWVyLT50aW1lcikp OworCSAgICAgICAob3duX3F1ZXJpZXJfZW5hYmxlZCB8fCB0aW1lcl9wZW5kaW5nKCZxdWVyaWVy LT50aW1lcikpOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgYnJfbXVsdGljYXN0X3F1ZXJpZXJf ZXhpc3RzKHN0cnVjdCBuZXRfYnJpZGdlICpiciwKQEAgLTU4NSwxMCArNTk4LDEyIEBAIHN0YXRp YyBpbmxpbmUgYm9vbCBicl9tdWx0aWNhc3RfcXVlcmllcl9leGlzdHMoc3RydWN0IG5ldF9icmlk Z2UgKmJyLAogewogCXN3aXRjaCAoZXRoLT5oX3Byb3RvKSB7CiAJY2FzZSAoaHRvbnMoRVRIX1Bf SVApKToKLQkJcmV0dXJuIF9fYnJfbXVsdGljYXN0X3F1ZXJpZXJfZXhpc3RzKGJyLCAmYnItPmlw NF9vdGhlcl9xdWVyeSk7CisJCXJldHVybiBfX2JyX211bHRpY2FzdF9xdWVyaWVyX2V4aXN0cyhi ciwKKwkJCSZici0+aXA0X290aGVyX3F1ZXJ5LCBmYWxzZSk7CiAjaWYgSVNfRU5BQkxFRChDT05G SUdfSVBWNikKIAljYXNlIChodG9ucyhFVEhfUF9JUFY2KSk6Ci0JCXJldHVybiBfX2JyX211bHRp Y2FzdF9xdWVyaWVyX2V4aXN0cyhiciwgJmJyLT5pcDZfb3RoZXJfcXVlcnkpOworCQlyZXR1cm4g X19icl9tdWx0aWNhc3RfcXVlcmllcl9leGlzdHMoYnIsCisJCQkmYnItPmlwNl9vdGhlcl9xdWVy eSwgdHJ1ZSk7CiAjZW5kaWYKIAlkZWZhdWx0OgogCQlyZXR1cm4gZmFsc2U7Ci0tIAoyLjEuMAoK CkZyb20gODVmOWZhYTllMzhiOTRjNWY5NDk3YmE5Y2RmMjIzZDMzOTY1NjViNCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29t PgpEYXRlOiBGcmksIDI0IEp1biAyMDE2IDE2OjAyOjM1IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAw OC8xNF0gc29ja19kaWFnOiBkbyBub3QgYnJvYWRjYXN0IHJhdyBzb2NrZXQgZGVzdHJ1Y3Rpb24K ClsgVXBzdHJlYW0gY29tbWl0IDlhMGZlZTJiNTUyYjEyMzVmYjE3MDZhZTFmYzY2NGFlNzQ1NzNi ZTggXQoKRGlhZyBpbnRlbmRzIHRvIGJyb2FkY2FzdCB0Y3Bfc2sgYW5kIHVkcF9zayBzb2NrZXQg ZGVzdHJ1Y3Rpb24uClRlc3Rpbmcgc2stPnNrX3Byb3RvY29sIGZvciBJUFBST1RPX1RDUC9JUFBS T1RPX1VEUCBhbG9uZSBpcyBub3QKc3VmZmljaWVudCBmb3IgdGhpcy4gUmF3IHNvY2tldHMgY2Fu IGhhdmUgdGhlIHNhbWUgdHlwZS4KCkFkZCBhIHRlc3QgZm9yIHNrLT5za190eXBlLgoKRml4ZXM6 IGViNGNiMDA4NTI5YyAoInNvY2tfZGlhZzogZGVmaW5lIGRlc3RydWN0aW9uIG11bHRpY2FzdCBn cm91cHMiKQpTaWduZWQtb2ZmLWJ5OiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBpbmNsdWRlL2xpbnV4L3NvY2tfZGlhZy5oIHwgNiArKysrKysKIDEgZmlsZSBjaGFuZ2Vk LCA2IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NvY2tfZGlhZy5o IGIvaW5jbHVkZS9saW51eC9zb2NrX2RpYWcuaAppbmRleCBmZGRlYmM2Li44ZmYzNGVkMSAxMDA2 NDQKLS0tIGEvaW5jbHVkZS9saW51eC9zb2NrX2RpYWcuaAorKysgYi9pbmNsdWRlL2xpbnV4L3Nv Y2tfZGlhZy5oCkBAIC0zNSw2ICszNSw5IEBAIGVudW0gc2tuZXRsaW5rX2dyb3VwcyBzb2NrX2Rp YWdfZGVzdHJveV9ncm91cChjb25zdCBzdHJ1Y3Qgc29jayAqc2spCiB7CiAJc3dpdGNoIChzay0+ c2tfZmFtaWx5KSB7CiAJY2FzZSBBRl9JTkVUOgorCQlpZiAoc2stPnNrX3R5cGUgPT0gU09DS19S QVcpCisJCQlyZXR1cm4gU0tOTEdSUF9OT05FOworCiAJCXN3aXRjaCAoc2stPnNrX3Byb3RvY29s KSB7CiAJCWNhc2UgSVBQUk9UT19UQ1A6CiAJCQlyZXR1cm4gU0tOTEdSUF9JTkVUX1RDUF9ERVNU Uk9ZOwpAQCAtNDQsNiArNDcsOSBAQCBlbnVtIHNrbmV0bGlua19ncm91cHMgc29ja19kaWFnX2Rl c3Ryb3lfZ3JvdXAoY29uc3Qgc3RydWN0IHNvY2sgKnNrKQogCQkJcmV0dXJuIFNLTkxHUlBfTk9O RTsKIAkJfQogCWNhc2UgQUZfSU5FVDY6CisJCWlmIChzay0+c2tfdHlwZSA9PSBTT0NLX1JBVykK KwkJCXJldHVybiBTS05MR1JQX05PTkU7CisKIAkJc3dpdGNoIChzay0+c2tfcHJvdG9jb2wpIHsK IAkJY2FzZSBJUFBST1RPX1RDUDoKIAkJCXJldHVybiBTS05MR1JQX0lORVQ2X1RDUF9ERVNUUk9Z OwotLSAKMi4xLjAKCgpGcm9tIDE4ZmVlN2I2YzRmMGNiYjYxNjU4NDU2OTY0Y2FhOGQ5N2ZmZWQ5 NjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBCb3JrbWFubiA8ZGFuaWVs QGlvZ2VhcmJveC5uZXQ+CkRhdGU6IE1vbiwgMjcgSnVuIDIwMTYgMjE6Mzg6MTEgKzAyMDAKU3Vi amVjdDogW1BBVENIIDA5LzE0XSBicGYsIHBlcmY6IGRlbGF5IHJlbGVhc2Ugb2YgQlBGIHByb2cg YWZ0ZXIgZ3JhY2UgcGVyaW9kCgpbIFVwc3RyZWFtIGNvbW1pdCBjZWI1NjA3MDM1OWI3MzI5YjU2 NzhiNWQ5NWEzNzZmY2IyNDc2N2JlIF0KCkNvbW1pdCBkZWFkOWYyOWRkY2MgKCJwZXJmOiBGaXgg cmFjZSBpbiBCUEYgcHJvZ3JhbSB1bnJlZ2lzdGVyIikgbW92ZWQKZGVzdHJ1Y3Rpb24gb2YgQlBG IHByb2dyYW0gZnJvbSBmcmVlX2V2ZW50X3JjdSgpIGNhbGxiYWNrIHRvIF9fZnJlZV9ldmVudCgp LAp3aGljaCBpcyBwcm9ibGVtYXRpYyBpZiB1c2VkIHdpdGggdGFpbCBjYWxsczogaWYgcHJvZyBB IGlzIGF0dGFjaGVkIGFzCnRyYWNlIGV2ZW50IGRpcmVjdGx5LCBidXQgYXQgdGhlIHNhbWUgdGlt ZSBwcmVzZW50IGluIGEgdGFpbCBjYWxsIG1hcCB1c2VkCmJ5IGFub3RoZXIgdHJhY2UgZXZlbnQg cHJvZ3JhbSBlbHNld2hlcmUsIHRoZW4gd2UgbmVlZCB0byBkZWxheSBkZXN0cnVjdGlvbgp2aWEg UkNVIGdyYWNlIHBlcmlvZCBzaW5jZSBpdCBjYW4gc3RpbGwgYmUgaW4gdXNlIGJ5IHRoZSBwcm9n cmFtIGRvaW5nIHRoZQp0YWlsIGNhbGwgKHRoZSBwcm9nIGZpcnN0IG5lZWRzIHRvIGJlIGRyb3Bw ZWQgZnJvbSB0aGUgdGFpbCBjYWxsIG1hcCwgdGhlbgp0cmFjZSBldmVudCB3aXRoIHByb2cgQSBh dHRhY2hlZCBkZXN0cm95ZWQsIHNvIHdlIGdldCBpbW1lZGlhdGUgZGVzdHJ1Y3Rpb24pLgoKRml4 ZXM6IGRlYWQ5ZjI5ZGRjYyAoInBlcmY6IEZpeCByYWNlIGluIEJQRiBwcm9ncmFtIHVucmVnaXN0 ZXIiKQpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0 PgpBY2tlZC1ieTogQWxleGVpIFN0YXJvdm9pdG92IDxhc3RAa2VybmVsLm9yZz4KQ2M6IEphbm4g SG9ybiA8amFubkB0aGVqaC5uZXQ+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL2xpbnV4L2JwZi5oICB8IDQgKysrKwoga2Vy bmVsL2V2ZW50cy9jb3JlLmMgfCAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYnBmLmggYi9pbmNs dWRlL2xpbnV4L2JwZi5oCmluZGV4IDY3YmMyZGEuLjRmNmQyOWMgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvbGludXgvYnBmLmgKKysrIGIvaW5jbHVkZS9saW51eC9icGYuaApAQCAtMTk4LDYgKzE5OCwx MCBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2dfZ2V0KHUzMiB1ZmQp CiBzdGF0aWMgaW5saW5lIHZvaWQgYnBmX3Byb2dfcHV0KHN0cnVjdCBicGZfcHJvZyAqcHJvZykK IHsKIH0KKworc3RhdGljIGlubGluZSB2b2lkIGJwZl9wcm9nX3B1dF9yY3Uoc3RydWN0IGJwZl9w cm9nICpwcm9nKQoreworfQogI2VuZGlmIC8qIENPTkZJR19CUEZfU1lTQ0FMTCAqLwogCiAvKiB2 ZXJpZmllciBwcm90b3R5cGVzIGZvciBoZWxwZXIgZnVuY3Rpb25zIGNhbGxlZCBmcm9tIGVCUEYg cHJvZ3JhbXMgKi8KZGlmZiAtLWdpdCBhL2tlcm5lbC9ldmVudHMvY29yZS5jIGIva2VybmVsL2V2 ZW50cy9jb3JlLmMKaW5kZXggOTVlNDdkMi4uMTJlY2Q0ZiAxMDA2NDQKLS0tIGEva2VybmVsL2V2 ZW50cy9jb3JlLmMKKysrIGIva2VybmVsL2V2ZW50cy9jb3JlLmMKQEAgLTcxMDEsNyArNzEwMSw3 IEBAIHN0YXRpYyB2b2lkIHBlcmZfZXZlbnRfZnJlZV9icGZfcHJvZyhzdHJ1Y3QgcGVyZl9ldmVu dCAqZXZlbnQpCiAJcHJvZyA9IGV2ZW50LT50cF9ldmVudC0+cHJvZzsKIAlpZiAocHJvZykgewog CQlldmVudC0+dHBfZXZlbnQtPnByb2cgPSBOVUxMOwotCQlicGZfcHJvZ19wdXQocHJvZyk7CisJ CWJwZl9wcm9nX3B1dF9yY3UocHJvZyk7CiAJfQogfQogCi0tIAoyLjEuMAoKCkZyb20gYTdkYjI0 ZjFkYzE0MTc0NmQ5ZDdlMjc3YjViNTRjMmNjMjFmZTNjNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGF2aWQgQmFycm9zbyA8ZGJhcnJvc29AZmFzdGx5LmNvbT4KRGF0ZTogVHVlLCAy OCBKdW4gMjAxNiAxMToxNjo0MyArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMTRdIG5laWdoOiBF eHBsaWNpdGx5IGRlY2xhcmUgUkNVLWJoIHJlYWQgc2lkZSBjcml0aWNhbAogc2VjdGlvbiBpbiBu ZWlnaF94bWl0KCkKClsgVXBzdHJlYW0gY29tbWl0IGI1NjBmMDNkZGZiMDcyYmNhNjVlOTQ0MGZm MGRjNGY5YjFkMWYwNTYgXQoKbmVpZ2hfeG1pdCgpIGV4cGVjdHMgdG8gYmUgY2FsbGVkIGluc2lk ZSBhbiBSQ1UtYmggcmVhZCBzaWRlIGNyaXRpY2FsCnNlY3Rpb24sIGFuZCB3aGlsZSBvbmUgb2Yg aXRzIHR3byBjdXJyZW50IGNhbGxlcnMgZ2V0cyB0aGlzIHJpZ2h0LCB0aGUKb3RoZXIgb25lIGRv ZXNuJ3QuCgpNb3JlIHNwZWNpZmljYWxseSwgbmVpZ2hfeG1pdCgpIGhhcyB0d28gY2FsbGVycywg bXBsc19mb3J3YXJkKCkgYW5kCm1wbHNfb3V0cHV0KCksIGFuZCB3aGlsZSBib3RoIGNhbGxlcnMg Y2FsbCBuZWlnaF94bWl0KCkgdW5kZXIKcmN1X3JlYWRfbG9jaygpLCB0aGlzIHByb3ZpZGVzIHN1 ZmZpY2llbnQgcHJvdGVjdGlvbiBmb3IgbmVpZ2hfeG1pdCgpCm9ubHkgaW4gdGhlIGNhc2Ugb2Yg bXBsc19mb3J3YXJkKCksIGFzIHRoYXQgaXMgYWx3YXlzIGNhbGxlZCBmcm9tCnNvZnRpcnEgY29u dGV4dCBhbmQgdGhlcmVmb3JlIGRvZXNuJ3QgbmVlZCBleHBsaWNpdCBCSCBwcm90ZWN0aW9uLAp3 aGlsZSBtcGxzX291dHB1dCgpIGNhbiBiZSBjYWxsZWQgZnJvbSBwcm9jZXNzIGNvbnRleHQgd2l0 aCBzb2Z0aXJxcwplbmFibGVkLgoKV2hlbiBtcGxzX291dHB1dCgpIGlzIGNhbGxlZCBmcm9tIHBy b2Nlc3MgY29udGV4dCwgd2l0aCBzb2Z0aXJxcwplbmFibGVkLCB3ZSBjYW4gYmUgcHJlZW1wdGVk IGJ5IGEgc29mdGlycSBhdCBhbnkgdGltZSwgYW5kIFJDVS1iaApjb25zaWRlcnMgdGhlIGNvbXBs ZXRpb24gb2YgYSBzb2Z0aXJxIGFzIHNpZ25hbGluZyB0aGUgZW5kIG9mIGFueQpwZW5kaW5nIHJl YWQtc2lkZSBjcml0aWNhbCBzZWN0aW9ucywgc28gaWYgd2UgZG8gZ2V0IGEgc29mdGlycQp3aGls ZSB3ZSBhcmUgaW4gdGhlIHBhcnQgb2YgbmVpZ2hfeG1pdCgpIHRoYXQgZXhwZWN0cyB0byBiZSBy dW4gaW5zaWRlCmFuIFJDVS1iaCByZWFkIHNpZGUgY3JpdGljYWwgc2VjdGlvbiwgd2UgY2FuIGVu ZCB1cCB3aXRoIGFuIHVuZXhwZWN0ZWQKUkNVIGdyYWNlIHBlcmlvZCBydW5uaW5nIHJpZ2h0IGlu IHRoZSBtaWRkbGUgb2YgdGhhdCBjcml0aWNhbCBzZWN0aW9uLAptYWtpbmcgdGhpbmdzIGdvIGJv b20uCgpUaGlzIHBhdGNoIGZpeGVzIHRoaXMgaW1wZWRhbmNlIG1pc21hdGNoIGluIHRoZSBjYWxs ZWUsIGJ5IG1ha2luZwpuZWlnaF94bWl0KCkgYWx3YXlzIHRha2UgcmN1X3JlYWRfeyx1bn1sb2Nr X2JoKCkgYXJvdW5kIHRoZSBjb2RlIHRoYXQKZXhwZWN0cyB0byBiZSB0cmVhdGVkIGFzIGFuIFJD VS1iaCByZWFkIHNpZGUgY3JpdGljYWwgc2VjdGlvbiwgYXMgdGhpcwpzZWVtcyBhIHNhZmVyIG9w dGlvbiB0aGFuIGZpeGluZyBpdCBpbiB0aGUgY2FsbGVycy4KCkZpeGVzOiA0ZmQzZDdkOWU4Njhm ICgibmVpZ2g6IEFkZCBoZWxwZXIgZnVuY3Rpb24gbmVpZ2hfeG1pdCIpClNpZ25lZC1vZmYtYnk6 IERhdmlkIEJhcnJvc28gPGRiYXJyb3NvQGZhc3RseS5jb20+ClNpZ25lZC1vZmYtYnk6IExlbm5l cnQgQnV5dGVuaGVrIDxsYnV5dGVuaGVrQGZhc3RseS5jb20+CkFja2VkLWJ5OiBEYXZpZCBBaGVy biA8ZHNhQGN1bXVsdXNuZXR3b3Jrcy5jb20+CkFja2VkLWJ5OiBSb2JlcnQgU2hlYXJtYW4gPHJz aGVhcm1hQGJyb2NhZGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvbmVpZ2hib3VyLmMgfCA2ICsrKysrLQogMSBm aWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L25ldC9jb3JlL25laWdoYm91ci5jIGIvbmV0L2NvcmUvbmVpZ2hib3VyLmMKaW5kZXggZjE4YWU5 MS4uNzY5Y2VjZSAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvbmVpZ2hib3VyLmMKKysrIGIvbmV0L2Nv cmUvbmVpZ2hib3VyLmMKQEAgLTI0NjcsMTMgKzI0NjcsMTcgQEAgaW50IG5laWdoX3htaXQoaW50 IGluZGV4LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQl0YmwgPSBuZWlnaF90YWJsZXNbaW5k ZXhdOwogCQlpZiAoIXRibCkKIAkJCWdvdG8gb3V0OworCQlyY3VfcmVhZF9sb2NrX2JoKCk7CiAJ CW5laWdoID0gX19uZWlnaF9sb29rdXBfbm9yZWYodGJsLCBhZGRyLCBkZXYpOwogCQlpZiAoIW5l aWdoKQogCQkJbmVpZ2ggPSBfX25laWdoX2NyZWF0ZSh0YmwsIGFkZHIsIGRldiwgZmFsc2UpOwog CQllcnIgPSBQVFJfRVJSKG5laWdoKTsKLQkJaWYgKElTX0VSUihuZWlnaCkpCisJCWlmIChJU19F UlIobmVpZ2gpKSB7CisJCQlyY3VfcmVhZF91bmxvY2tfYmgoKTsKIAkJCWdvdG8gb3V0X2tmcmVl X3NrYjsKKwkJfQogCQllcnIgPSBuZWlnaC0+b3V0cHV0KG5laWdoLCBza2IpOworCQlyY3VfcmVh ZF91bmxvY2tfYmgoKTsKIAl9CiAJZWxzZSBpZiAoaW5kZXggPT0gTkVJR0hfTElOS19UQUJMRSkg ewogCQllcnIgPSBkZXZfaGFyZF9oZWFkZXIoc2tiLCBkZXYsIG50b2hzKHNrYi0+cHJvdG9jb2wp LAotLSAKMi4xLjAKCgpGcm9tIDNjYzJmYTk2NTRlNmE0YTliZmIwOWI2NjhiMDQzYTU4ZDMzNmJh MDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5pY29sYXMgRmVycmUgPG5pY29sYXMu ZmVycmVAYXRtZWwuY29tPgpEYXRlOiBUaHUsIDEwIE1hciAyMDE2IDE2OjQ0OjMyICswMTAwClN1 YmplY3Q6IFtQQVRDSCAxMS8xNF0gbmV0OiBtYWNiOiBmaXggZGVmYXVsdCBjb25maWd1cmF0aW9u IGZvciBHTUFDIG9uIEFUOTEKClsgVXBzdHJlYW0gY29tbWl0IDZiZGFhNWU5ZWQzOWIzYjMzMjhm MzVkMjE4ZThhZDVhOTljZmM0ZDIgXQoKT24gQVQ5MSBTb0NzLCB0aGUgVXNlciBSZWdpc3RlciAo VVNSSU8pIGV4cG9zZXMgYSBzd2l0Y2ggdG8gY29uZmlndXJlIHRoZQoiUmVkdWNlZCIgb3IgIlRy YWRpdGlvbmFsIiB2ZXJzaW9uIG9mIHRoZSBNZWRpYSBJbmRlcGVuZGVudCBJbnRlcmZhY2UKKFJN SUkgdnMuIE1JSSBvciBSR01JSSB2cy4gR01JSSkuCkFzIG9uIHRoZSBvbGRlciBFTUFDIHZlcnNp b24sIG9uIEdNQUMsIHRoaXMgc3dpdGNoIGlzIHNldCBieSBkZWZhdWx0IHRvIHRoZQpub24tcmVk dWNlZCB0eXBlIG9mIGludGVyZmFjZSwgc28gdXNlIHRoZSBleGlzdGluZyBjYXBhYmlsaXR5IGFu ZCBleHRlbmQgaXQgdG8KR01JSSBhcyB3ZWxsLiBXZSB0aGVuIGtlZXAgdGhlIGN1cnJlbnQgbG9n aWMgaW4gdGhlIG1hY2JfaW5pdCgpIGZ1bmN0aW9uLgoKVGhlIGNhcGFiaWxpdGllcyBvZiBzYW1h NWQyLCBzYW1hNWQ0IGFuZCBzYW1hNWQzIEdFTSBpbnRlcmZhY2UgYXJlIHVwZGF0ZWQgaW4KdGhl IG1hY2JfY29uZmlnIHN0cnVjdHVyZSB0byBiZSBhYmxlIHRvIHByb3Blcmx5IGVuYWJsZSB0aGVt IHdpdGggYSB0cmFkaXRpb25hbAppbnRlcmZhY2UgKEdNSUkgb3IgTUlJKS4KClJlcG9ydGVkLWJ5 OiBSb21haW4gSEVOUklFVCA8cm9tYWluLmhlbnJpZXRAbC1hY291c3RpY3MuY29tPgpTaWduZWQt b2ZmLWJ5OiBOaWNvbGFzIEZlcnJlIDxuaWNvbGFzLmZlcnJlQGF0bWVsLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgpbY3lyaWxsZS5waXRj aGVuQGF0bWVsLmNvbTogYmFja3BvcnRlZCB0byA0LjQueV0KU2lnbmVkLW9mZi1ieTogQ3lyaWxs ZSBQaXRjaGVuIDxjeXJpbGxlLnBpdGNoZW5AYXRtZWwuY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0 aGVybmV0L2NhZGVuY2UvbWFjYi5jIHwgMTMgKysrKysrKy0tLS0tLQogZHJpdmVycy9uZXQvZXRo ZXJuZXQvY2FkZW5jZS9tYWNiLmggfCAgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlv bnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv Y2FkZW5jZS9tYWNiLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuYwppbmRl eCAxNjkwNTljLi44ZDU0ZTdiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRl bmNlL21hY2IuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuYwpAQCAt MjQwNSw5ICsyNDA1LDkgQEAgc3RhdGljIGludCBtYWNiX2luaXQoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikKIAlpZiAoYnAtPnBoeV9pbnRlcmZhY2UgPT0gUEhZX0lOVEVSRkFDRV9NT0RF X1JHTUlJKQogCQl2YWwgPSBHRU1fQklUKFJHTUlJKTsKIAllbHNlIGlmIChicC0+cGh5X2ludGVy ZmFjZSA9PSBQSFlfSU5URVJGQUNFX01PREVfUk1JSSAmJgotCQkgKGJwLT5jYXBzICYgTUFDQl9D QVBTX1VTUklPX0RFRkFVTFRfSVNfTUlJKSkKKwkJIChicC0+Y2FwcyAmIE1BQ0JfQ0FQU19VU1JJ T19ERUZBVUxUX0lTX01JSV9HTUlJKSkKIAkJdmFsID0gTUFDQl9CSVQoUk1JSSk7Ci0JZWxzZSBp ZiAoIShicC0+Y2FwcyAmIE1BQ0JfQ0FQU19VU1JJT19ERUZBVUxUX0lTX01JSSkpCisJZWxzZSBp ZiAoIShicC0+Y2FwcyAmIE1BQ0JfQ0FQU19VU1JJT19ERUZBVUxUX0lTX01JSV9HTUlJKSkKIAkJ dmFsID0gTUFDQl9CSVQoTUlJKTsKIAogCWlmIChicC0+Y2FwcyAmIE1BQ0JfQ0FQU19VU1JJT19I QVNfQ0xLRU4pCkBAIC0yNzM4LDcgKzI3MzgsNyBAQCBzdGF0aWMgaW50IGF0OTFldGhlcl9pbml0 KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg bWFjYl9jb25maWcgYXQ5MXNhbTkyNjBfY29uZmlnID0gewotCS5jYXBzID0gTUFDQl9DQVBTX1VT UklPX0hBU19DTEtFTiB8IE1BQ0JfQ0FQU19VU1JJT19ERUZBVUxUX0lTX01JSSwKKwkuY2FwcyA9 IE1BQ0JfQ0FQU19VU1JJT19IQVNfQ0xLRU4gfCBNQUNCX0NBUFNfVVNSSU9fREVGQVVMVF9JU19N SUlfR01JSSwKIAkuY2xrX2luaXQgPSBtYWNiX2Nsa19pbml0LAogCS5pbml0ID0gbWFjYl9pbml0 LAogfTsKQEAgLTI3NTEsMjEgKzI3NTEsMjIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtYWNiX2Nv bmZpZyBwYzMwMmdlbV9jb25maWcgPSB7CiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG1hY2Jf Y29uZmlnIHNhbWE1ZDJfY29uZmlnID0gewotCS5jYXBzID0gMCwKKwkuY2FwcyA9IE1BQ0JfQ0FQ U19VU1JJT19ERUZBVUxUX0lTX01JSV9HTUlJLAogCS5kbWFfYnVyc3RfbGVuZ3RoID0gMTYsCiAJ LmNsa19pbml0ID0gbWFjYl9jbGtfaW5pdCwKIAkuaW5pdCA9IG1hY2JfaW5pdCwKIH07CiAKIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgbWFjYl9jb25maWcgc2FtYTVkM19jb25maWcgPSB7Ci0JLmNhcHMg PSBNQUNCX0NBUFNfU0dfRElTQUJMRUQgfCBNQUNCX0NBUFNfR0lHQUJJVF9NT0RFX0FWQUlMQUJM RSwKKwkuY2FwcyA9IE1BQ0JfQ0FQU19TR19ESVNBQkxFRCB8IE1BQ0JfQ0FQU19HSUdBQklUX01P REVfQVZBSUxBQkxFCisJICAgICAgfCBNQUNCX0NBUFNfVVNSSU9fREVGQVVMVF9JU19NSUlfR01J SSwKIAkuZG1hX2J1cnN0X2xlbmd0aCA9IDE2LAogCS5jbGtfaW5pdCA9IG1hY2JfY2xrX2luaXQs CiAJLmluaXQgPSBtYWNiX2luaXQsCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG1hY2JfY29u ZmlnIHNhbWE1ZDRfY29uZmlnID0gewotCS5jYXBzID0gMCwKKwkuY2FwcyA9IE1BQ0JfQ0FQU19V U1JJT19ERUZBVUxUX0lTX01JSV9HTUlJLAogCS5kbWFfYnVyc3RfbGVuZ3RoID0gNCwKIAkuY2xr X2luaXQgPSBtYWNiX2Nsa19pbml0LAogCS5pbml0ID0gbWFjYl9pbml0LApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiLmggYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9jYWRlbmNlL21hY2IuaAppbmRleCBkODNiMGRiLi4zZjM4NWFiIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2IuaAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9jYWRlbmNlL21hY2IuaApAQCAtMzk4LDcgKzM5OCw3IEBACiAvKiBDYXBhYmlsaXR5IG1hc2sg Yml0cyAqLwogI2RlZmluZSBNQUNCX0NBUFNfSVNSX0NMRUFSX09OX1dSSVRFCQkweDAwMDAwMDAx CiAjZGVmaW5lIE1BQ0JfQ0FQU19VU1JJT19IQVNfQ0xLRU4JCTB4MDAwMDAwMDIKLSNkZWZpbmUg TUFDQl9DQVBTX1VTUklPX0RFRkFVTFRfSVNfTUlJCQkweDAwMDAwMDA0CisjZGVmaW5lIE1BQ0Jf Q0FQU19VU1JJT19ERUZBVUxUX0lTX01JSV9HTUlJCTB4MDAwMDAwMDQKICNkZWZpbmUgTUFDQl9D QVBTX05PX0dJR0FCSVRfSEFMRgkJMHgwMDAwMDAwOAogI2RlZmluZSBNQUNCX0NBUFNfRklGT19N T0RFCQkJMHgxMDAwMDAwMAogI2RlZmluZSBNQUNCX0NBUFNfR0lHQUJJVF9NT0RFX0FWQUlMQUJM RQkweDIwMDAwMDAwCi0tIAoyLjEuMAoKCkZyb20gMjk2ZGEyMGRiYWM2MDdlNGI4MDg4YzQyYWNh MWYyMDUzNjk3ODUyYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRmVuZyBUYW5nIDxm ZW5nLnRhbmdAaW50ZWwuY29tPgpEYXRlOiBGcmksIDI0IEp1biAyMDE2IDE1OjI2OjA1ICswODAw ClN1YmplY3Q6IFtQQVRDSCAxMi8xNF0gbmV0OiBhbHg6IFdvcmsgYXJvdW5kIHRoZSBETUEgUlgg b3ZlcmZsb3cgaXNzdWUKClsgVXBzdHJlYW0gY29tbWl0IDg4MWQwMzI3ZGIzN2FkOTE3YTM2N2M3 N2FmZjFhZmExZWU0MWUwYTkgXQoKTm90ZTogVGhpcyBpcyBhIHZlcmlmaWVkIGJhY2twb3J0ZWQg cGF0Y2ggZm9yIHN0YWJsZSA0LjQga2VybmVsLCBhbmQgaXQKY291bGQgYWxzbyBiZSBhcHBsaWVk IHRvIDQuMy80LjIvNC4xLzMuMTgvMy4xNgoKVGhlcmUgaXMgYSBwcm9ibGVtIHdpdGggYWx4IGRl dmljZXMsIHRoYXQgdGhlIG5ldHdvcmsgbGluayB3aWxsIGJlCmxvc3QgaW4gMS01IG1pbnV0ZXMg YWZ0ZXIgdGhlIGRldmljZSBpcyB1cC4KCj5Gcm9tIGRlYnVnZ2luZyB3aXRob3V0IGRhdGFzaGVl dCwgd2UgZm91bmQgdGhlIGVycm9yIGFsd2F5cwpoYXBwZW4gd2hlbiB0aGUgRE1BIFJYIGFkZHJl c3MgaXMgc2V0IHRvIDB4Li4uLmZjMCwgd2hpY2ggaXMgdmVyeQpsaWtlbHkgdG8gYmUgYSBIVy9z aWxpY29uIHByb2JsZW0uCgpUaGlzIHBhdGNoIHdpbGwgYXBwbHkgcnggc2tiIHdpdGggNjQgYnl0 ZXMgbG9uZ2VyIHNwYWNlLCBhbmQgaWYgdGhlCmFsbG9jYXRlZCBza2IgaGFzIGEgMHguLi5mYzAg YWRkcmVzcywgaXQgd2lsbCB1c2Ugc2tiX3Jlc2V2ZXIoc2tiLCA2NCkKdG8gYWR2YW5jZSB0aGUg YWRkcmVzcywgc28gdGhhdCB0aGUgUlggb3ZlcmZsb3cgY2FuIGJlIGF2b2lkZWQuCgpCdWd6aWxs YTogaHR0cHM6Ly9idWd6aWxsYS5rZXJuZWwub3JnL3Nob3dfYnVnLmNnaT9pZD03MDc2MQpTaWdu ZWQtb2ZmLWJ5OiBGZW5nIFRhbmcgPGZlbmcudGFuZ0BpbnRlbC5jb20+ClN1Z2dlc3RlZC1ieTog RXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpUZXN0ZWQtYnk6IE9sZSBMdWtvaWUg PG9sZWx1a29pZUBtYWlsLnJ1PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvYWx4 L21haW4uYyB8IDcgKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvYWx4 L21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvYWx4L21haW4uYwppbmRleCBi ZDM3N2E2Li5kZjU0NDc1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9z L2FseC9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hbHgvbWFpbi5j CkBAIC04Niw5ICs4NiwxNCBAQCBzdGF0aWMgaW50IGFseF9yZWZpbGxfcnhfcmluZyhzdHJ1Y3Qg YWx4X3ByaXYgKmFseCwgZ2ZwX3QgZ2ZwKQogCXdoaWxlICghY3VyX2J1Zi0+c2tiICYmIG5leHQg IT0gcnhxLT5yZWFkX2lkeCkgewogCQlzdHJ1Y3QgYWx4X3JmZCAqcmZkID0gJnJ4cS0+cmZkW2N1 cl07CiAKLQkJc2tiID0gX19uZXRkZXZfYWxsb2Nfc2tiKGFseC0+ZGV2LCBhbHgtPnJ4YnVmX3Np emUsIGdmcCk7CisJCXNrYiA9IF9fbmV0ZGV2X2FsbG9jX3NrYihhbHgtPmRldiwgYWx4LT5yeGJ1 Zl9zaXplICsgNjQsIGdmcCk7CiAJCWlmICghc2tiKQogCQkJYnJlYWs7CisKKwkJLyogV29ya3Jv dW5kIGZvciB0aGUgSFcgUlggRE1BIG92ZXJmbG93IGlzc3VlICovCisJCWlmICgoKHVuc2lnbmVk IGxvbmcpc2tiLT5kYXRhICYgMHhmZmYpID09IDB4ZmMwKQorCQkJc2tiX3Jlc2VydmUoc2tiLCA2 NCk7CisKIAkJZG1hID0gZG1hX21hcF9zaW5nbGUoJmFseC0+aHcucGRldi0+ZGV2LAogCQkJCSAg ICAgc2tiLT5kYXRhLCBhbHgtPnJ4YnVmX3NpemUsCiAJCQkJICAgICBETUFfRlJPTV9ERVZJQ0Up OwotLSAKMi4xLjAKCgpGcm9tIGFjMzY3MjlhM2UwNTZjY2FmNDhjNzdhZGNjN2I0N2E2YzYzYWZh YmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBCb3JrbWFubiA8ZGFuaWVs QGlvZ2VhcmJveC5uZXQ+CkRhdGU6IEZyaSwgMTkgRmViIDIwMTYgMjM6MDU6MjUgKzAxMDAKU3Vi amVjdDogW1BBVENIIDEzLzE0XSBicGY6IHRyeSBoYXJkZXIgb24gY2xvbmVzIHdoZW4gd3JpdGlu ZyBpbnRvIHNrYgoKWyBVcHN0cmVhbSBjb21taXQgMzY5NzY0OWZmMjllMGY2NDc1NjVlZWQwNGIy N2E3Nzc5YzY0NmEyMiBdCgpXaGVuIHdlJ3JlIGRlYWxpbmcgd2l0aCBjbG9uZXMgYW5kIHRoZSBh cmVhIGlzIG5vdCB3cml0ZWFibGUsIHRyeQpoYXJkZXIgYW5kIGdldCBhIGNvcHkgdmlhIHBza2Jf ZXhwYW5kX2hlYWQoKS4gUmVwbGFjZSBhbHNvIG90aGVyCm9jY3VyZW5jZXMgaW4gdGMgYWN0aW9u cyB3aXRoIHRoZSBuZXcgc2tiX3RyeV9tYWtlX3dyaXRhYmxlKCkuCgpSZXBvcnRlZC1ieTogQXNo aGFkIFNoZWlraCA8YXNoaGFkc2hlaWtoMzk0QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGFu aWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5ldD4KQWNrZWQtYnk6IEFsZXhlaSBTdGFy b3ZvaXRvdiA8YXN0QGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oIHwgIDcgKysr KysrKwogbmV0L2NvcmUvZmlsdGVyLmMgICAgICB8IDE4ICsrKysrKysrKystLS0tLS0tLQogbmV0 L3NjaGVkL2FjdF9jc3VtLmMgICB8ICA4ICsrLS0tLS0tCiBuZXQvc2NoZWQvYWN0X25hdC5jICAg IHwgMTggKysrKystLS0tLS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDI0IGluc2VydGlvbnMo KyksIDI3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc2tidWZmLmgg Yi9pbmNsdWRlL2xpbnV4L3NrYnVmZi5oCmluZGV4IDRmZGU2MTguLjE3MTZmOTMgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvbGludXgvc2tidWZmLmgKKysrIGIvaW5jbHVkZS9saW51eC9za2J1ZmYuaApA QCAtMjU2NCw2ICsyNTY0LDEzIEBAIHN0YXRpYyBpbmxpbmUgaW50IHNrYl9jbG9uZV93cml0YWJs ZShjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1bnNpZ25lZCBpbnQgbGVuCiAJICAgICAgIHNr Yl9oZWFkcm9vbShza2IpICsgbGVuIDw9IHNrYi0+aGRyX2xlbjsKIH0KIAorc3RhdGljIGlubGlu ZSBpbnQgc2tiX3RyeV9tYWtlX3dyaXRhYmxlKHN0cnVjdCBza19idWZmICpza2IsCisJCQkJCXVu c2lnbmVkIGludCB3cml0ZV9sZW4pCit7CisJcmV0dXJuIHNrYl9jbG9uZWQoc2tiKSAmJiAhc2ti X2Nsb25lX3dyaXRhYmxlKHNrYiwgd3JpdGVfbGVuKSAmJgorCSAgICAgICBwc2tiX2V4cGFuZF9o ZWFkKHNrYiwgMCwgMCwgR0ZQX0FUT01JQyk7Cit9CisKIHN0YXRpYyBpbmxpbmUgaW50IF9fc2ti X2NvdyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1bnNpZ25lZCBpbnQgaGVhZHJvb20sCiAJCQkgICAg aW50IGNsb25lZCkKIHsKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2ZpbHRlci5jIGIvbmV0L2NvcmUv ZmlsdGVyLmMKaW5kZXggZjM5M2EyMi4uNzVlOWIyYiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZmls dGVyLmMKKysrIGIvbmV0L2NvcmUvZmlsdGVyLmMKQEAgLTEyNzUsOSArMTI3NSw3IEBAIHN0YXRp YyB1NjQgYnBmX3NrYl9zdG9yZV9ieXRlcyh1NjQgcjEsIHU2NCByMiwgdTY0IHIzLCB1NjQgcjQs IHU2NCBmbGFncykKIAkgKi8KIAlpZiAodW5saWtlbHkoKHUzMikgb2Zmc2V0ID4gMHhmZmZmIHx8 IGxlbiA+IHNpemVvZihidWYpKSkKIAkJcmV0dXJuIC1FRkFVTFQ7Ci0KLQlpZiAodW5saWtlbHko c2tiX2Nsb25lZChza2IpICYmCi0JCSAgICAgIXNrYl9jbG9uZV93cml0YWJsZShza2IsIG9mZnNl dCArIGxlbikpKQorCWlmICh1bmxpa2VseShza2JfdHJ5X21ha2Vfd3JpdGFibGUoc2tiLCBvZmZz ZXQgKyBsZW4pKSkKIAkJcmV0dXJuIC1FRkFVTFQ7CiAKIAlwdHIgPSBza2JfaGVhZGVyX3BvaW50 ZXIoc2tiLCBvZmZzZXQsIGxlbiwgYnVmKTsKQEAgLTEzMjEsOCArMTMxOSw3IEBAIHN0YXRpYyB1 NjQgYnBmX2wzX2NzdW1fcmVwbGFjZSh1NjQgcjEsIHU2NCByMiwgdTY0IGZyb20sIHU2NCB0bywg dTY0IGZsYWdzKQogCWlmICh1bmxpa2VseSgodTMyKSBvZmZzZXQgPiAweGZmZmYpKQogCQlyZXR1 cm4gLUVGQVVMVDsKIAotCWlmICh1bmxpa2VseShza2JfY2xvbmVkKHNrYikgJiYKLQkJICAgICAh c2tiX2Nsb25lX3dyaXRhYmxlKHNrYiwgb2Zmc2V0ICsgc2l6ZW9mKHN1bSkpKSkKKwlpZiAodW5s aWtlbHkoc2tiX3RyeV9tYWtlX3dyaXRhYmxlKHNrYiwgb2Zmc2V0ICsgc2l6ZW9mKHN1bSkpKSkK IAkJcmV0dXJuIC1FRkFVTFQ7CiAKIAlwdHIgPSBza2JfaGVhZGVyX3BvaW50ZXIoc2tiLCBvZmZz ZXQsIHNpemVvZihzdW0pLCAmc3VtKTsKQEAgLTEzNjcsOSArMTM2NCw3IEBAIHN0YXRpYyB1NjQg YnBmX2w0X2NzdW1fcmVwbGFjZSh1NjQgcjEsIHU2NCByMiwgdTY0IGZyb20sIHU2NCB0bywgdTY0 IGZsYWdzKQogCiAJaWYgKHVubGlrZWx5KCh1MzIpIG9mZnNldCA+IDB4ZmZmZikpCiAJCXJldHVy biAtRUZBVUxUOwotCi0JaWYgKHVubGlrZWx5KHNrYl9jbG9uZWQoc2tiKSAmJgotCQkgICAgICFz a2JfY2xvbmVfd3JpdGFibGUoc2tiLCBvZmZzZXQgKyBzaXplb2Yoc3VtKSkpKQorCWlmICh1bmxp a2VseShza2JfdHJ5X21ha2Vfd3JpdGFibGUoc2tiLCBvZmZzZXQgKyBzaXplb2Yoc3VtKSkpKQog CQlyZXR1cm4gLUVGQVVMVDsKIAogCXB0ciA9IHNrYl9oZWFkZXJfcG9pbnRlcihza2IsIG9mZnNl dCwgc2l6ZW9mKHN1bSksICZzdW0pOwpAQCAtMTU1NCw2ICsxNTQ5LDEzIEBAIGJvb2wgYnBmX2hl bHBlcl9jaGFuZ2VzX3NrYl9kYXRhKHZvaWQgKmZ1bmMpCiAJCXJldHVybiB0cnVlOwogCWlmIChm dW5jID09IGJwZl9za2Jfdmxhbl9wb3ApCiAJCXJldHVybiB0cnVlOworCWlmIChmdW5jID09IGJw Zl9za2Jfc3RvcmVfYnl0ZXMpCisJCXJldHVybiB0cnVlOworCWlmIChmdW5jID09IGJwZl9sM19j c3VtX3JlcGxhY2UpCisJCXJldHVybiB0cnVlOworCWlmIChmdW5jID09IGJwZl9sNF9jc3VtX3Jl cGxhY2UpCisJCXJldHVybiB0cnVlOworCiAJcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQg YS9uZXQvc2NoZWQvYWN0X2NzdW0uYyBiL25ldC9zY2hlZC9hY3RfY3N1bS5jCmluZGV4IGIwN2M1 MzUuLmVlYjNlYjMgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9hY3RfY3N1bS5jCisrKyBiL25ldC9z Y2hlZC9hY3RfY3N1bS5jCkBAIC0xMDUsOSArMTA1LDcgQEAgc3RhdGljIHZvaWQgKnRjZl9jc3Vt X3NrYl9uZXh0bGF5ZXIoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAlpbnQgaGwgPSBpaGwgKyBqaGw7 CiAKIAlpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBpcGwgKyBudGtvZmYpIHx8IChpcGwgPCBobCkg fHwKLQkgICAgKHNrYl9jbG9uZWQoc2tiKSAmJgotCSAgICAgIXNrYl9jbG9uZV93cml0YWJsZShz a2IsIGhsICsgbnRrb2ZmKSAmJgotCSAgICAgcHNrYl9leHBhbmRfaGVhZChza2IsIDAsIDAsIEdG UF9BVE9NSUMpKSkKKwkgICAgc2tiX3RyeV9tYWtlX3dyaXRhYmxlKHNrYiwgaGwgKyBudGtvZmYp KQogCQlyZXR1cm4gTlVMTDsKIAllbHNlCiAJCXJldHVybiAodm9pZCAqKShza2JfbmV0d29ya19o ZWFkZXIoc2tiKSArIGlobCk7CkBAIC0zNjUsOSArMzYzLDcgQEAgc3RhdGljIGludCB0Y2ZfY3N1 bV9pcHY0KHN0cnVjdCBza19idWZmICpza2IsIHUzMiB1cGRhdGVfZmxhZ3MpCiAJfQogCiAJaWYg KHVwZGF0ZV9mbGFncyAmIFRDQV9DU1VNX1VQREFURV9GTEFHX0lQVjRIRFIpIHsKLQkJaWYgKHNr Yl9jbG9uZWQoc2tiKSAmJgotCQkgICAgIXNrYl9jbG9uZV93cml0YWJsZShza2IsIHNpemVvZigq aXBoKSArIG50a29mZikgJiYKLQkJICAgIHBza2JfZXhwYW5kX2hlYWQoc2tiLCAwLCAwLCBHRlBf QVRPTUlDKSkKKwkJaWYgKHNrYl90cnlfbWFrZV93cml0YWJsZShza2IsIHNpemVvZigqaXBoKSAr IG50a29mZikpCiAJCQlnb3RvIGZhaWw7CiAKIAkJaXBfc2VuZF9jaGVjayhpcF9oZHIoc2tiKSk7 CmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvYWN0X25hdC5jIGIvbmV0L3NjaGVkL2FjdF9uYXQuYwpp bmRleCBiN2M0ZWFkLi4yNzYwN2I4IDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvYWN0X25hdC5jCisr KyBiL25ldC9zY2hlZC9hY3RfbmF0LmMKQEAgLTEyNiw5ICsxMjYsNyBAQCBzdGF0aWMgaW50IHRj Zl9uYXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IHRjX2FjdGlvbiAqYSwKIAkJ YWRkciA9IGlwaC0+ZGFkZHI7CiAKIAlpZiAoISgob2xkX2FkZHIgXiBhZGRyKSAmIG1hc2spKSB7 Ci0JCWlmIChza2JfY2xvbmVkKHNrYikgJiYKLQkJICAgICFza2JfY2xvbmVfd3JpdGFibGUoc2ti LCBzaXplb2YoKmlwaCkgKyBub2ZmKSAmJgotCQkgICAgcHNrYl9leHBhbmRfaGVhZChza2IsIDAs IDAsIEdGUF9BVE9NSUMpKQorCQlpZiAoc2tiX3RyeV9tYWtlX3dyaXRhYmxlKHNrYiwgc2l6ZW9m KCppcGgpICsgbm9mZikpCiAJCQlnb3RvIGRyb3A7CiAKIAkJbmV3X2FkZHIgJj0gbWFzazsKQEAg LTE1Niw5ICsxNTQsNyBAQCBzdGF0aWMgaW50IHRjZl9uYXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwg Y29uc3Qgc3RydWN0IHRjX2FjdGlvbiAqYSwKIAkJc3RydWN0IHRjcGhkciAqdGNwaDsKIAogCQlp ZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBpaGwgKyBzaXplb2YoKnRjcGgpICsgbm9mZikgfHwKLQkJ ICAgIChza2JfY2xvbmVkKHNrYikgJiYKLQkJICAgICAhc2tiX2Nsb25lX3dyaXRhYmxlKHNrYiwg aWhsICsgc2l6ZW9mKCp0Y3BoKSArIG5vZmYpICYmCi0JCSAgICAgcHNrYl9leHBhbmRfaGVhZChz a2IsIDAsIDAsIEdGUF9BVE9NSUMpKSkKKwkJICAgIHNrYl90cnlfbWFrZV93cml0YWJsZShza2Is IGlobCArIHNpemVvZigqdGNwaCkgKyBub2ZmKSkKIAkJCWdvdG8gZHJvcDsKIAogCQl0Y3BoID0g KHZvaWQgKikoc2tiX25ldHdvcmtfaGVhZGVyKHNrYikgKyBpaGwpOwpAQCAtMTcxLDkgKzE2Nyw3 IEBAIHN0YXRpYyBpbnQgdGNmX25hdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3Qg dGNfYWN0aW9uICphLAogCQlzdHJ1Y3QgdWRwaGRyICp1ZHBoOwogCiAJCWlmICghcHNrYl9tYXlf cHVsbChza2IsIGlobCArIHNpemVvZigqdWRwaCkgKyBub2ZmKSB8fAotCQkgICAgKHNrYl9jbG9u ZWQoc2tiKSAmJgotCQkgICAgICFza2JfY2xvbmVfd3JpdGFibGUoc2tiLCBpaGwgKyBzaXplb2Yo KnVkcGgpICsgbm9mZikgJiYKLQkJICAgICBwc2tiX2V4cGFuZF9oZWFkKHNrYiwgMCwgMCwgR0ZQ X0FUT01JQykpKQorCQkgICAgc2tiX3RyeV9tYWtlX3dyaXRhYmxlKHNrYiwgaWhsICsgc2l6ZW9m KCp1ZHBoKSArIG5vZmYpKQogCQkJZ290byBkcm9wOwogCiAJCXVkcGggPSAodm9pZCAqKShza2Jf bmV0d29ya19oZWFkZXIoc2tiKSArIGlobCk7CkBAIC0yMTMsMTAgKzIwNyw4IEBAIHN0YXRpYyBp bnQgdGNmX25hdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgdGNfYWN0aW9uICph LAogCQlpZiAoKG9sZF9hZGRyIF4gYWRkcikgJiBtYXNrKQogCQkJYnJlYWs7CiAKLQkJaWYgKHNr Yl9jbG9uZWQoc2tiKSAmJgotCQkgICAgIXNrYl9jbG9uZV93cml0YWJsZShza2IsIGlobCArIHNp emVvZigqaWNtcGgpICsKLQkJCQkJICAgICBzaXplb2YoKmlwaCkgKyBub2ZmKSAmJgotCQkgICAg cHNrYl9leHBhbmRfaGVhZChza2IsIDAsIDAsIEdGUF9BVE9NSUMpKQorCQlpZiAoc2tiX3RyeV9t YWtlX3dyaXRhYmxlKHNrYiwgaWhsICsgc2l6ZW9mKCppY21waCkgKworCQkJCQkgIHNpemVvZigq aXBoKSArIG5vZmYpKQogCQkJZ290byBkcm9wOwogCiAJCWljbXBoID0gKHZvaWQgKikoc2tiX25l dHdvcmtfaGVhZGVyKHNrYikgKyBpaGwpOwotLSAKMi4xLjAKCgpGcm9tIDc1M2Y3OTYxMDE4OGU5 ZThhMzlmZDE0NDhhZjIzNmJlYzVmYjE2YmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEJhc2lsIEd1bm4gPGJhc2lsQHBhY2FidW5nYS5jb20+CkRhdGU6IFRodSwgMTYgSnVuIDIwMTYg MDk6NDI6MzAgLTA3MDAKU3ViamVjdDogW1BBVENIIDE0LzE0XSBBWC4yNTogQ2xvc2Ugc29ja2V0 IGNvbm5lY3Rpb24gb24gc2Vzc2lvbiBjb21wbGV0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCA0YTdk OTllYTFiMjc3MzQ1NThmZWI2ODMzZjE4MGNkMzhhMTU5OTQwIF0KCkEgc29ja2V0IGNvbm5lY3Rp b24gbWFkZSBpbiBheC4yNSBpcyBub3QgY2xvc2VkIHdoZW4gc2Vzc2lvbiBpcwpjb21wbGV0ZWQu ICBUaGUgaGVhcnRiZWF0IHRpbWVyIGlzIHN0b3BwZWQgcHJlbWF0dXJlbHkgYW5kIHRoaXMgaXMK d2hlcmUgdGhlIHNvY2tldCBnZXRzIGNsb3NlZC4gQWxsb3cgaGVhdGJlYXQgdGltZXIgdG8gcnVu IHRvIGNsb3NlCnNvY2tldC4gU3ltcHRvbSBvY2N1cnMgaW4ga2VybmVscyA+PSA0LjIuMAoKT3Jp Z2luYWxseSBzZW50IDYvMTUvMjAxNi4gUmVzZW5kIHdpdGggZGlzdHJpYnV0aW9uIGxpc3QgbWF0 Y2hpbmcKc2NyaXB0cy9tYWludGFpbmVyLnBsIG91dHB1dC4KClNpZ25lZC1vZmYtYnk6IEJhc2ls IEd1bm4gPGJhc2lsQHBhY2FidW5nYS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYXgyNS9hZl9heDI1LmMgICAgICAgIHwg MyArKy0KIG5ldC9heDI1L2F4MjVfZHNfdGltZXIuYyAgfCA1ICsrKystCiBuZXQvYXgyNS9heDI1 X3N0ZF90aW1lci5jIHwgNSArKysrLQogbmV0L2F4MjUvYXgyNV9zdWJyLmMgICAgICB8IDMgKyst CiA0IGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbmV0L2F4MjUvYWZfYXgyNS5jIGIvbmV0L2F4MjUvYWZfYXgyNS5jCmluZGV4IGZi ZDBhY2YuLjJmZGViYWIgMTAwNjQ0Ci0tLSBhL25ldC9heDI1L2FmX2F4MjUuYworKysgYi9uZXQv YXgyNS9hZl9heDI1LmMKQEAgLTk3Niw3ICs5NzYsOCBAQCBzdGF0aWMgaW50IGF4MjVfcmVsZWFz ZShzdHJ1Y3Qgc29ja2V0ICpzb2NrKQogCQkJcmVsZWFzZV9zb2NrKHNrKTsKIAkJCWF4MjVfZGlz Y29ubmVjdChheDI1LCAwKTsKIAkJCWxvY2tfc29jayhzayk7Ci0JCQlheDI1X2Rlc3Ryb3lfc29j a2V0KGF4MjUpOworCQkJaWYgKCFzb2NrX2ZsYWcoYXgyNS0+c2ssIFNPQ0tfREVTVFJPWSkpCisJ CQkJYXgyNV9kZXN0cm95X3NvY2tldChheDI1KTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgQVgyNV9T VEFURV8zOgpkaWZmIC0tZ2l0IGEvbmV0L2F4MjUvYXgyNV9kc190aW1lci5jIGIvbmV0L2F4MjUv YXgyNV9kc190aW1lci5jCmluZGV4IDk1MWNkNTcuLjUyMzdkZmYgMTAwNjQ0Ci0tLSBhL25ldC9h eDI1L2F4MjVfZHNfdGltZXIuYworKysgYi9uZXQvYXgyNS9heDI1X2RzX3RpbWVyLmMKQEAgLTEw Miw2ICsxMDIsNyBAQCB2b2lkIGF4MjVfZHNfaGVhcnRiZWF0X2V4cGlyeShheDI1X2NiICpheDI1 KQogCXN3aXRjaCAoYXgyNS0+c3RhdGUpIHsKIAogCWNhc2UgQVgyNV9TVEFURV8wOgorCWNhc2Ug QVgyNV9TVEFURV8yOgogCQkvKiBNYWdpYyBoZXJlOiBJZiB3ZSBsaXN0ZW4oKSBhbmQgYSBuZXcg bGluayBkaWVzIGJlZm9yZSBpdAogCQkgICBpcyBhY2NlcHRlZCgpIGl0IGlzbid0ICdkZWFkJyBz byBkb2Vzbid0IGdldCByZW1vdmVkLiAqLwogCQlpZiAoIXNrIHx8IHNvY2tfZmxhZyhzaywgU09D S19ERVNUUk9ZKSB8fApAQCAtMTExLDYgKzExMiw3IEBAIHZvaWQgYXgyNV9kc19oZWFydGJlYXRf ZXhwaXJ5KGF4MjVfY2IgKmF4MjUpCiAJCQkJc29ja19ob2xkKHNrKTsKIAkJCQlheDI1X2Rlc3Ry b3lfc29ja2V0KGF4MjUpOwogCQkJCWJoX3VubG9ja19zb2NrKHNrKTsKKwkJCQkvKiBVbmdyYWIg c29ja2V0IGFuZCBkZXN0cm95IGl0ICovCiAJCQkJc29ja19wdXQoc2spOwogCQkJfSBlbHNlCiAJ CQkJYXgyNV9kZXN0cm95X3NvY2tldChheDI1KTsKQEAgLTIxMyw3ICsyMTUsOCBAQCB2b2lkIGF4 MjVfZHNfdDFfdGltZW91dChheDI1X2NiICpheDI1KQogCWNhc2UgQVgyNV9TVEFURV8yOgogCQlp ZiAoYXgyNS0+bjJjb3VudCA9PSBheDI1LT5uMikgewogCQkJYXgyNV9zZW5kX2NvbnRyb2woYXgy NSwgQVgyNV9ESVNDLCBBWDI1X1BPTExPTiwgQVgyNV9DT01NQU5EKTsKLQkJCWF4MjVfZGlzY29u bmVjdChheDI1LCBFVElNRURPVVQpOworCQkJaWYgKCFzb2NrX2ZsYWcoYXgyNS0+c2ssIFNPQ0tf REVTVFJPWSkpCisJCQkJYXgyNV9kaXNjb25uZWN0KGF4MjUsIEVUSU1FRE9VVCk7CiAJCQlyZXR1 cm47CiAJCX0gZWxzZSB7CiAJCQlheDI1LT5uMmNvdW50Kys7CmRpZmYgLS1naXQgYS9uZXQvYXgy NS9heDI1X3N0ZF90aW1lci5jIGIvbmV0L2F4MjUvYXgyNV9zdGRfdGltZXIuYwppbmRleCAwMDQ0 NjdjOS4uMmMwZDZlZiAxMDA2NDQKLS0tIGEvbmV0L2F4MjUvYXgyNV9zdGRfdGltZXIuYworKysg Yi9uZXQvYXgyNS9heDI1X3N0ZF90aW1lci5jCkBAIC0zOCw2ICszOCw3IEBAIHZvaWQgYXgyNV9z dGRfaGVhcnRiZWF0X2V4cGlyeShheDI1X2NiICpheDI1KQogCiAJc3dpdGNoIChheDI1LT5zdGF0 ZSkgewogCWNhc2UgQVgyNV9TVEFURV8wOgorCWNhc2UgQVgyNV9TVEFURV8yOgogCQkvKiBNYWdp YyBoZXJlOiBJZiB3ZSBsaXN0ZW4oKSBhbmQgYSBuZXcgbGluayBkaWVzIGJlZm9yZSBpdAogCQkg ICBpcyBhY2NlcHRlZCgpIGl0IGlzbid0ICdkZWFkJyBzbyBkb2Vzbid0IGdldCByZW1vdmVkLiAq LwogCQlpZiAoIXNrIHx8IHNvY2tfZmxhZyhzaywgU09DS19ERVNUUk9ZKSB8fApAQCAtNDcsNiAr NDgsNyBAQCB2b2lkIGF4MjVfc3RkX2hlYXJ0YmVhdF9leHBpcnkoYXgyNV9jYiAqYXgyNSkKIAkJ CQlzb2NrX2hvbGQoc2spOwogCQkJCWF4MjVfZGVzdHJveV9zb2NrZXQoYXgyNSk7CiAJCQkJYmhf dW5sb2NrX3NvY2soc2spOworCQkJCS8qIFVuZ3JhYiBzb2NrZXQgYW5kIGRlc3Ryb3kgaXQgKi8K IAkJCQlzb2NrX3B1dChzayk7CiAJCQl9IGVsc2UKIAkJCQlheDI1X2Rlc3Ryb3lfc29ja2V0KGF4 MjUpOwpAQCAtMTQ0LDcgKzE0Niw4IEBAIHZvaWQgYXgyNV9zdGRfdDF0aW1lcl9leHBpcnkoYXgy NV9jYiAqYXgyNSkKIAljYXNlIEFYMjVfU1RBVEVfMjoKIAkJaWYgKGF4MjUtPm4yY291bnQgPT0g YXgyNS0+bjIpIHsKIAkJCWF4MjVfc2VuZF9jb250cm9sKGF4MjUsIEFYMjVfRElTQywgQVgyNV9Q T0xMT04sIEFYMjVfQ09NTUFORCk7Ci0JCQlheDI1X2Rpc2Nvbm5lY3QoYXgyNSwgRVRJTUVET1VU KTsKKwkJCWlmICghc29ja19mbGFnKGF4MjUtPnNrLCBTT0NLX0RFU1RST1kpKQorCQkJCWF4MjVf ZGlzY29ubmVjdChheDI1LCBFVElNRURPVVQpOwogCQkJcmV0dXJuOwogCQl9IGVsc2UgewogCQkJ YXgyNS0+bjJjb3VudCsrOwpkaWZmIC0tZ2l0IGEvbmV0L2F4MjUvYXgyNV9zdWJyLmMgYi9uZXQv YXgyNS9heDI1X3N1YnIuYwppbmRleCAzYjc4ZTg0Li42NTVhN2Q0IDEwMDY0NAotLS0gYS9uZXQv YXgyNS9heDI1X3N1YnIuYworKysgYi9uZXQvYXgyNS9heDI1X3N1YnIuYwpAQCAtMjY0LDcgKzI2 NCw4IEBAIHZvaWQgYXgyNV9kaXNjb25uZWN0KGF4MjVfY2IgKmF4MjUsIGludCByZWFzb24pCiB7 CiAJYXgyNV9jbGVhcl9xdWV1ZXMoYXgyNSk7CiAKLQlheDI1X3N0b3BfaGVhcnRiZWF0KGF4MjUp OworCWlmICghc29ja19mbGFnKGF4MjUtPnNrLCBTT0NLX0RFU1RST1kpKQorCQlheDI1X3N0b3Bf aGVhcnRiZWF0KGF4MjUpOwogCWF4MjVfc3RvcF90MXRpbWVyKGF4MjUpOwogCWF4MjVfc3RvcF90 MnRpbWVyKGF4MjUpOwogCWF4MjVfc3RvcF90M3RpbWVyKGF4MjUpOwotLSAKMi4xLjAKCg== ----Next_Part(Tue_Jul__5_22_02_12_2016_080)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_46.mbox" RnJvbSAxYTI3M2U0ZGY5YWFiNjA5NTdhMDRlODc1M2E1ZTVhZDgzZDY3ZThhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRh dGU6IFN1biwgMTIgSnVuIDIwMTYgMjA6MDE6MjUgLTA3MDAKU3ViamVjdDogW1BBVENIIDAxLzEz XSBuZXRfc2NoZWQ6IGZpeCBwZmlmb19oZWFkX2Ryb3AgYmVoYXZpb3IgdnMgYmFja2xvZwoKWyBV cHN0cmVhbSBjb21taXQgNmMwZDU0ZjE4OTdkMjI5NzQ4ZDRmNDFlZjkxOTA3OGRiNmRiMjEyMyBd CgpXaGVuIHRoZSBxZGlzYyBpcyBmdWxsLCB3ZSBkcm9wIGEgcGFja2V0IGF0IHRoZSBoZWFkIG9m IHRoZSBxdWV1ZSwKcXVldWUgdGhlIGN1cnJlbnQgc2tiIGFuZCByZXR1cm4gTkVUX1hNSVRfQ04K Ck5vdyB3ZSB0cmFjayBiYWNrbG9nIG9uIHVwcGVyIHFkaXNjcywgd2UgbmVlZCB0byBjYWxsCnFk aXNjX3RyZWVfcmVkdWNlX2JhY2tsb2coKSwgZXZlbiBpZiB0aGUgcWxlbiBkaWQgbm90IGNoYW5n ZS4KCkZpeGVzOiAyY2NjY2Y1ZmI0M2YgKCJuZXRfc2NoZWQ6IHVwZGF0ZSBoaWVyYXJjaGljYWwg YmFja2xvZyB0b28iKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2ds ZS5jb20+CkNjOiBXQU5HIENvbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KQ2M6IEphbWFs IEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+CkFja2VkLWJ5OiBDb25nIFdhbmcgPHhpeW91 Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9zY2hfZmlmby5jIHwgNCArKysrCiAxIGZp bGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9m aWZvLmMgYi9uZXQvc2NoZWQvc2NoX2ZpZm8uYwppbmRleCAyMTc3ZWFjLi4yZTRiZDJjIDEwMDY0 NAotLS0gYS9uZXQvc2NoZWQvc2NoX2ZpZm8uYworKysgYi9uZXQvc2NoZWQvc2NoX2ZpZm8uYwpA QCAtMzcsMTQgKzM3LDE4IEBAIHN0YXRpYyBpbnQgcGZpZm9fZW5xdWV1ZShzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnNjaCkKIAogc3RhdGljIGludCBwZmlmb190YWlsX2VucXVl dWUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IFFkaXNjICpzY2gpCiB7CisJdW5zaWduZWQg aW50IHByZXZfYmFja2xvZzsKKwogCWlmIChsaWtlbHkoc2tiX3F1ZXVlX2xlbigmc2NoLT5xKSA8 IHNjaC0+bGltaXQpKQogCQlyZXR1cm4gcWRpc2NfZW5xdWV1ZV90YWlsKHNrYiwgc2NoKTsKIAor CXByZXZfYmFja2xvZyA9IHNjaC0+cXN0YXRzLmJhY2tsb2c7CiAJLyogcXVldWUgZnVsbCwgcmVt b3ZlIG9uZSBza2IgdG8gZnVsZmlsbCB0aGUgbGltaXQgKi8KIAlfX3FkaXNjX3F1ZXVlX2Ryb3Bf aGVhZChzY2gsICZzY2gtPnEpOwogCXFkaXNjX3FzdGF0c19kcm9wKHNjaCk7CiAJcWRpc2NfZW5x dWV1ZV90YWlsKHNrYiwgc2NoKTsKIAorCXFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2coc2NoLCAw LCBwcmV2X2JhY2tsb2cgLSBzY2gtPnFzdGF0cy5iYWNrbG9nKTsKIAlyZXR1cm4gTkVUX1hNSVRf Q047CiB9CiAKLS0gCjIuMS4wCgoKRnJvbSA3Mzk3NGJjODM4ZDk1NTRkOTRiMGQ3YWFiNGI3N2Q4 ODRkYmFlZmI1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBXQU5HIENvbmcgPHhpeW91 Lndhbmdjb25nQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxMyBKdW4gMjAxNiAxMzo0NDoxNCAtMDcw MApTdWJqZWN0OiBbUEFUQ0ggMDIvMTNdIGFjdF9pcHQ6IGZpeCBhIGJpbmQgcmVmY250IGxlYWsK ClsgVXBzdHJlYW0gY29tbWl0IGQxNWVjY2VhNjliOTZhNTExNjE2OTY4OGRjYzliYWY2ZDFjZTI3 NTEgXQoKQW5kIGF2b2lkIGNhbGxpbmcgdGNmX2hhc2hfY2hlY2soKSB0d2ljZS4KCkZpeGVzOiBh NTdmMTlkMzBiMmQgKCJuZXQgc2NoZWQ6IGlwdCBhY3Rpb24gZml4IGxhdGUgYmluZGluZyIpCkNj OiBKYW1hbCBIYWRpIFNhbGltIDxqaHNAbW9qYXRhdHUuY29tPgpTaWduZWQtb2ZmLWJ5OiBDb25n IFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KQWNrZWQtYnk6IEphbWFsIEhhZGkgU2Fs aW0gPGpoc0Btb2phdGF0dS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvYWN0X2lwdC5jIHwgNyArKysrKy0tCiAx IGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL25ldC9zY2hlZC9hY3RfaXB0LmMgYi9uZXQvc2NoZWQvYWN0X2lwdC5jCmluZGV4IDhiNTI3 MDAuLjYwNjMyMzMgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9hY3RfaXB0LmMKKysrIGIvbmV0L3Nj aGVkL2FjdF9pcHQuYwpAQCAtMTIxLDEwICsxMjEsMTMgQEAgc3RhdGljIGludCBfX3RjZl9pcHRf aW5pdChzdHJ1Y3QgdGNfYWN0aW9uX25ldCAqdG4sIHN0cnVjdCBubGF0dHIgKm5sYSwKIAl9CiAK IAl0ZCA9IChzdHJ1Y3QgeHRfZW50cnlfdGFyZ2V0ICopbmxhX2RhdGEodGJbVENBX0lQVF9UQVJH XSk7Ci0JaWYgKG5sYV9sZW4odGJbVENBX0lQVF9UQVJHXSkgPCB0ZC0+dS50YXJnZXRfc2l6ZSkK KwlpZiAobmxhX2xlbih0YltUQ0FfSVBUX1RBUkddKSA8IHRkLT51LnRhcmdldF9zaXplKSB7CisJ CWlmIChleGlzdHMpCisJCQl0Y2ZfaGFzaF9yZWxlYXNlKGEsIGJpbmQpOwogCQlyZXR1cm4gLUVJ TlZBTDsKKwl9CiAKLQlpZiAoIXRjZl9oYXNoX2NoZWNrKHRuLCBpbmRleCwgYSwgYmluZCkpIHsK KwlpZiAoIWV4aXN0cykgewogCQlyZXQgPSB0Y2ZfaGFzaF9jcmVhdGUodG4sIGluZGV4LCBlc3Qs IGEsIHNpemVvZigqaXB0KSwgYmluZCwKIAkJCQkgICAgICBmYWxzZSk7CiAJCWlmIChyZXQpCi0t IAoyLjEuMAoKCkZyb20gOGI5MGUxODM1NjAyZTFlZWQ3ZTEwZGQ5YmUxYzM2MTcyN2NhOTE0ZiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogIkphc29uIEEuIERvbmVuZmVsZCIgPEphc29u QHp4MmM0LmNvbT4KRGF0ZTogV2VkLCAxNSBKdW4gMjAxNiAxMToxNDo1MyArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMDMvMTNdIG5ldDogRG9uJ3QgZm9yZ2V0IHByX2ZtdCBvbiBuZXRfZGJnX3JhdGVs aW1pdGVkIGZvcgogQ09ORklHX0RZTkFNSUNfREVCVUcKClsgVXBzdHJlYW0gY29tbWl0IGRhZGRl Zjc2YzNkZWFhYTc5MjJmOWQ3YjE4ZWRiZjBhMDYxMjE1YzMgXQoKVGhlIGltcGxlbWVudGF0aW9u IG9mIG5ldF9kYmdfcmF0ZWxpbWl0ZWQgaW4gdGhlIENPTkZJR19EWU5BTUlDX0RFQlVHCmNhc2Ug d2FzIGFkZGVkIHdpdGggMmM5NGI1MzczICgibmV0OiBJbXBsZW1lbnQgbmV0X2RiZ19yYXRlbGlt aXRlZCgpIGZvcgpDT05GSUdfRFlOQU1JQ19ERUJVRyBjYXNlIikuIFRoZSBpbXBsZW1lbnRhdGlv biBzdHJhdGVneSB3YXMgdG8gdGFrZSB0aGUKdXN1YWwgZGVmaW5pdGlvbiBvZiB0aGUgZHluYW1p Y19wcl9kZWJ1ZyBtYWNybywgYnV0IGFsdGVyIGl0IGJ5IGFkZGluZyBhCmNhbGwgdG8gIm5ldF9y YXRlbGltaXQoKSIgaW4gdGhlIGlmIHN0YXRlbWVudC4gVGhpcyBpcywgaW4gZmFjdCwgdGhlCmNv cnJlY3QgYXBwcm9hY2guCgpIb3dldmVyLCB3aGlsZSBkb2luZyB0aGlzLCB0aGUgYXV0aG9yIG9m IHRoZSBjb21taXQgZm9yZ290IHRvIHN1cnJvdW5kCmZtdCBieSBwcl9mbXQsIHJlc3VsdGluZyBp biB1bnByZWZpeGVkIGxvZyBtZXNzYWdlcyBhcHBlYXJpbmcgaW4gdGhlCmNvbnNvbGUuIFNvLCB0 aGlzIGNvbW1pdCBhZGRzIGJhY2sgdGhlIHByX2ZtdChmbXQpIGludm9jYXRpb24sIG1ha2luZwpu ZXRfZGJnX3JhdGVsaW1pdGVkIHByb3Blcmx5IGNvbnNpc3RlbnQgYWNyb3NzIERFQlVHLCBubyBE RUJVRywgYW5kCkRZTkFNSUNfREVCVUcgY2FzZXMsIGFuZCBicmluZ2luZyBwYXJpdHkgd2l0aCB0 aGUgYmVoYXZpb3Igb2YKZHluYW1pY19wcl9kZWJ1ZyBhcyB3ZWxsLgoKRml4ZXM6IDJjOTRiNTM3 MyAoIm5ldDogSW1wbGVtZW50IG5ldF9kYmdfcmF0ZWxpbWl0ZWQoKSBmb3IgQ09ORklHX0RZTkFN SUNfREVCVUcgY2FzZSIpClNpZ25lZC1vZmYtYnk6IEphc29uIEEuIERvbmVuZmVsZCA8SmFzb25A engyYzQuY29tPgpDYzogVGltIEJpbmdoYW0gPHRiaW5naGFtQGFrYW1haS5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRl L2xpbnV4L25ldC5oIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L25ldC5oIGIvaW5jbHVkZS9s aW51eC9uZXQuaAppbmRleCBmODQwZDc3Li45ZDkwZWZlNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9s aW51eC9uZXQuaAorKysgYi9pbmNsdWRlL2xpbnV4L25ldC5oCkBAIC0yNTIsNyArMjUyLDggQEAg ZG8gewkJCQkJCQkJCVwKIAlERUZJTkVfRFlOQU1JQ19ERUJVR19NRVRBREFUQShkZXNjcmlwdG9y LCBmbXQpOwkJCVwKIAlpZiAodW5saWtlbHkoZGVzY3JpcHRvci5mbGFncyAmIF9EUFJJTlRLX0ZM QUdTX1BSSU5UKSAmJglcCiAJICAgIG5ldF9yYXRlbGltaXQoKSkJCQkJCQlcCi0JCV9fZHluYW1p Y19wcl9kZWJ1ZygmZGVzY3JpcHRvciwgZm10LCAjI19fVkFfQVJHU19fKTsJXAorCQlfX2R5bmFt aWNfcHJfZGVidWcoJmRlc2NyaXB0b3IsIHByX2ZtdChmbXQpLAkJXAorCQkgICAgICAgICAgICAg ICAgICAgIyNfX1ZBX0FSR1NfXyk7CQkJXAogfSB3aGlsZSAoMCkKICNlbGlmIGRlZmluZWQoREVC VUcpCiAjZGVmaW5lIG5ldF9kYmdfcmF0ZWxpbWl0ZWQoZm10LCAuLi4pCQkJCVwKLS0gCjIuMS4w CgoKRnJvbSAyMTgwYTE1MzIwYTk4YTIwMjZiNTcxNjY3YTJhZWNmOWMzMTdlYWEzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTaW1vbiBIb3JtYW4gPHNpbW9uLmhvcm1hbkBuZXRyb25v bWUuY29tPgpEYXRlOiBUaHUsIDE2IEp1biAyMDE2IDE3OjA2OjE5ICswOTAwClN1YmplY3Q6IFtQ QVRDSCAwNC8xM10gc2l0OiBjb3JyZWN0IElQIHByb3RvY29sIHVzZWQgaW4gaXBpcDZfZXJyCgpb IFVwc3RyZWFtIGNvbW1pdCBkNWQ4NzYwYjc4ZDBjZmFmZTI5MmY5NjVmNTk5OTg4MTM4YjA2YTcw IF0KClNpbmNlIDMyYjhhOGU1OWM5YyAoInNpdDogYWRkIElQdjQgb3ZlciBJUHY0IHN1cHBvcnQi KQppcGlwNl9lcnIoKSBtYXkgYmUgY2FsbGVkIGZvciBwYWNrZXRzIHdob3NlIElQIHByb3RvY29s IGlzCklQUFJPVE9fSVBJUCBhcyB3ZWxsIGFzIHRob3NlIHdob3NlIElQIHByb3RvY29sIGlzIElQ UFJPVE9fSVBWNi4KCkluIHRoZSBjYXNlIG9mIElQUFJPVE9fSVBJUCBwYWNrZXRzIHRoZSBjb3Jy ZWN0IHByb3RvY29sIHZhbHVlIGlzIG5vdApwYXNzZWQgdG8gaXB2NF91cGRhdGVfcG10dSgpIG9y IGlwdjRfcmVkaXJlY3QoKS4KClRoaXMgcGF0Y2ggcmVzb2x2ZXMgdGhpcyBwcm9ibGVtIGJ5IHVz aW5nIHRoZSBJUCBwcm90b2NvbCBvZiB0aGUgcGFja2V0CnJhdGhlciB0aGFuIGEgaGFyZC1jb2Rl ZCB2YWx1ZS4gVGhpcyBhcHBlYXJzIHRvIGJlIGNvbnNpc3RlbnQKd2l0aCB0aGUgdXNhZ2Ugb2Yg dGhlIHByb3RvY29sIG9mIGEgcGFja2V0IGJ5IGljbXBfc29ja2V0X2RlbGl2ZXIoKQp0aGUgY2Fs bGVyIG9mIGlwaXA2X2VycigpLgoKSSB3YXMgYWJsZSB0byBleGVyY2lzZSB0aGUgcmVkaXJlY3Qg Y2FzZSBieSB1c2luZyBhIHNldHVwIHdoZXJlIGFuIElDTVAKcmVkaXJlY3Qgd2FzIHJlY2VpdmVk IGZvciB0aGUgZGVzdGluYXRpb24gb2YgdGhlIGVuY2Fwc3VsYXRlZCBwYWNrZXQuCkhvd2V2ZXIs IGl0IGFwcGVhcnMgdGhhdCBhbHRob3VnaCBpbmNvcnJlY3QgdGhlIHByb3RvY29sIGZpZWxkIGlz IG5vdCB1c2VkCmluIHRoaXMgY2FzZSBhbmQgdGh1cyBubyBwcm9ibGVtIG1hbmlmZXN0cy4gIE9u IGluc3BlY3Rpb24gaXQgZG9lcyBub3QKYXBwZWFyIHRoYXQgYSBwcm9ibGVtIHdpbGwgbWFuaWZl c3QgaW4gdGhlIGZyYWdtZW50YXRpb24gbmVlZGVkL3VwZGF0ZSBwbXR1CmNhc2UgZWl0aGVyLgoK SW4gc2hvcnQgSSBiZWxpZXZlIHRoaXMgaXMgYSBjb3NtZXRpYyBmaXguIE5vbmUgdGhlIGxlc3Ms IHRoZSB1c2Ugb2YKSVBQUk9UT19JUFY2IHNlZW1zIHdyb25nIGFuZCBjb25mdXNpbmcuCgpSZXZp ZXdlZC1ieTogRGluYW4gR3VuYXdhcmRlbmEgPGRpbmFuLmd1bmF3YXJkZW5hQG5ldHJvbm9tZS5j b20+ClNpZ25lZC1vZmYtYnk6IFNpbW9uIEhvcm1hbiA8c2ltb24uaG9ybWFuQG5ldHJvbm9tZS5j b20+CkFja2VkLWJ5OiBZT1NISUZVSkkgSGlkZWFraSA8eW9zaGZ1amlAbGludXgtaXB2Ni5vcmc+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvaXB2Ni9zaXQuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9zaXQuYyBiL25ldC9pcHY2 L3NpdC5jCmluZGV4IDgzMzg0MzAuLjZjNTNlNGUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3NpdC5j CisrKyBiL25ldC9pcHY2L3NpdC5jCkBAIC01NjAsMTMgKzU2MCwxMyBAQCBzdGF0aWMgaW50IGlw aXA2X2VycihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgaW5mbykKIAogCWlmICh0eXBlID09IElD TVBfREVTVF9VTlJFQUNIICYmIGNvZGUgPT0gSUNNUF9GUkFHX05FRURFRCkgewogCQlpcHY0X3Vw ZGF0ZV9wbXR1KHNrYiwgZGV2X25ldChza2ItPmRldiksIGluZm8sCi0JCQkJIHQtPnBhcm1zLmxp bmssIDAsIElQUFJPVE9fSVBWNiwgMCk7CisJCQkJIHQtPnBhcm1zLmxpbmssIDAsIGlwaC0+cHJv dG9jb2wsIDApOwogCQllcnIgPSAwOwogCQlnb3RvIG91dDsKIAl9CiAJaWYgKHR5cGUgPT0gSUNN UF9SRURJUkVDVCkgewogCQlpcHY0X3JlZGlyZWN0KHNrYiwgZGV2X25ldChza2ItPmRldiksIHQt PnBhcm1zLmxpbmssIDAsCi0JCQkgICAgICBJUFBST1RPX0lQVjYsIDApOworCQkJICAgICAgaXBo LT5wcm90b2NvbCwgMCk7CiAJCWVyciA9IDA7CiAJCWdvdG8gb3V0OwogCX0KLS0gCjIuMS4wCgoK RnJvbSAzMzJjYmExNmI5YjM3ZWM3ZTQ2MmNkZWQ4NzdhODI2ZDEzYTI0ZTJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKaXJpIFNsYWJ5IDxqc2xhYnlAc3VzZS5jej4KRGF0ZTogTW9u LCAyMCBKdW4gMjAxNiAxMTozNjoyOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMTNdIGtjbTog Zml4IC9wcm9jIG1lbW9yeSBsZWFrCgpbIFVwc3RyZWFtIGNvbW1pdCBkMTlhZjBhNzY0NDRmZGU2 Mjk2NjdlY2I4MjNjMGVlMjhmOWY2N2Q4IF0KCkV2ZXJ5IG9wZW4gb2YgL3Byb2MvbmV0L2tjbSBs ZWFrcyAxNiBieXRlcyBvZiBtZW1vcnkgYXMgaXMgcmVwb3J0ZWQgYnkKa21lbWxlYWs6CnVucmVm ZXJlbmNlZCBvYmplY3QgMHhmZmZmODgwNTljMGUzNDU4IChzaXplIDE5Mik6CiAgY29tbSAiY2F0 IiwgcGlkIDE0MDEsIGppZmZpZXMgNDI5NDkzNTc0MiAoYWdlIDMxMC43MjBzKQogIGhleCBkdW1w IChmaXJzdCAzMiBieXRlcyk6CiAgICAyOCA0NSA3MSA5NiAwNSA4OCBmZiBmZiAwMCAxMCAwMCAw MCAwMCAwMCAwMCAwMCAgKEVxLi4uLi4uLi4uLi4uLgogICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIC4uLi4uLi4uLi4uLi4uLi4KICBiYWNrdHJhY2U6 CiAgICBbPGZmZmZmZmZmODE1NmEyZGU+XSBrbWVtX2NhY2hlX2FsbG9jX3RyYWNlKzB4MTZlLzB4 MjMwCiAgICBbPGZmZmZmZmZmODE2MmE0Nzk+XSBzZXFfb3BlbisweDc5LzB4MWQwCiAgICBbPGZm ZmZmZmZmYTA1Nzg1MTA+XSBrY21fc2VxX29wZW4rMHgwLzB4MzAgW2tjbV0KICAgIFs8ZmZmZmZm ZmY4MTYyYTQ3OT5dIHNlcV9vcGVuKzB4NzkvMHgxZDAKICAgIFs8ZmZmZmZmZmY4MTYyYThjZj5d IF9fc2VxX29wZW5fcHJpdmF0ZSsweDJmLzB4YTAKICAgIFs8ZmZmZmZmZmY4MTcxMjU0OD5dIHNl cV9vcGVuX25ldCsweDM4LzB4YTAKLi4uCgpJdCBpcyBjYXVzZWQgYnkgYSBtaXNzaW5nIGZyZWUg aW4gdGhlIC0+cmVsZWFzZSBwYXRoLiBTbyBmaXggaXQgYnkKcHJvdmlkaW5nIHNlcV9yZWxlYXNl X25ldCBhcyB0aGUgLT5yZWxlYXNlIG1ldGhvZC4KClNpZ25lZC1vZmYtYnk6IEppcmkgU2xhYnkg PGpzbGFieUBzdXNlLmN6PgpGaXhlczogY2Q2ZTExMWJmNSAoa2NtOiBBZGQgc3RhdGlzdGljcyBh bmQgcHJvYyBpbnRlcmZhY2VzKQpDYzogIkRhdmlkIFMuIE1pbGxlciIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+CkNjOiBUb20gSGVyYmVydCA8dG9tQGhlcmJlcnRsYW5kLmNvbT4KQ2M6IG5ldGRldkB2 Z2VyLmtlcm5lbC5vcmcKU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIG5ldC9rY20va2NtcHJvYy5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9uZXQva2NtL2tjbXByb2MuYyBiL25ldC9rY20v a2NtcHJvYy5jCmluZGV4IDczODAwODcuLmZkYTdmNDcgMTAwNjQ0Ci0tLSBhL25ldC9rY20va2Nt cHJvYy5jCisrKyBiL25ldC9rY20va2NtcHJvYy5jCkBAIC0yNDEsNiArMjQxLDcgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMga2NtX3NlcV9mb3BzID0gewogCS5vcGVuCQk9 IGtjbV9zZXFfb3BlbiwKIAkucmVhZAkJPSBzZXFfcmVhZCwKIAkubGxzZWVrCQk9IHNlcV9sc2Vl aywKKwkucmVsZWFzZQk9IHNlcV9yZWxlYXNlX25ldCwKIH07CiAKIHN0YXRpYyBzdHJ1Y3Qga2Nt X3NlcV9tdXhpbmZvIGtjbV9zZXFfbXV4aW5mbyA9IHsKLS0gCjIuMS4wCgoKRnJvbSA5YzlmZDU5 MDUwNWQyNGE5YjhmZjM0MzJkMjIwNDQ4Y2YwNzA0Y2I0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CkRhdGU6IFNh dCwgMTggSnVuIDIwMTYgMTM6MDM6MzYgKzA4MDAKU3ViamVjdDogW1BBVENIIDA2LzEzXSBlc3A6 IEZpeCBFU04gZ2VuZXJhdGlvbiB1bmRlciBVRFAgZW5jYXBzdWxhdGlvbgoKWyBVcHN0cmVhbSBj b21taXQgOTYyZmNlZjMzYjAzMzk1MDUxMzY3MTgxYTA1NDlkMjlkMTA5ZDlhNCBdCgpCbGFpciBT dGV2ZW4gbm90aWNlZCB0aGF0IEVTTiBpbiBjb25qdW5jdGlvbiB3aXRoIFVEUCBlbmNhcHN1bGF0 aW9uCmlzIGJyb2tlbiBiZWNhdXNlIHdlIHNldCB0aGUgdGVtcG9yYXJ5IEVTUCBoZWFkZXIgdG8g dGhlIHdyb25nIHNwb3QuCgpUaGlzIHBhdGNoIGZpeGVzIHRoaXMgYnkgZmlyc3Qgb2YgYWxsIHVz aW5nIHRoZSByaWdodCBzcG90LCBpLmUuLAo0IGJ5dGVzIG9mZiB0aGUgcmVhbCBFU1AgaGVhZGVy LCBhbmQgdGhlbiBzYXZpbmcgdGhpcyBpbmZvcm1hdGlvbgpzbyB0aGF0IGFmdGVyIGVuY3J5cHRp b24gd2UgY2FuIHJlc3RvcmUgaXQgcHJvcGVybHkuCgpGaXhlczogNzAyMWIyZTFjZGRkICgiZXNw NDogU3dpdGNoIHRvIG5ldyBBRUFEIGludGVyZmFjZSIpClJlcG9ydGVkLWJ5OiBCbGFpciBTdGV2 ZW4gPEJsYWlyLlN0ZXZlbkBhbGxpZWR0ZWxlc2lzLmNvLm56PgpTaWduZWQtb2ZmLWJ5OiBIZXJi ZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CkFja2VkLWJ5OiBTdGVmZmVuIEts YXNzZXJ0IDxzdGVmZmVuLmtsYXNzZXJ0QHNlY3VuZXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvZXNwNC5jIHwg NTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL25ldC9pcHY0L2VzcDQuYyBiL25ldC9pcHY0L2VzcDQuYwppbmRleCA0Nzc5Mzc0Li5k OTU2MzFkIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9lc3A0LmMKKysrIGIvbmV0L2lwdjQvZXNwNC5j CkBAIC0yMyw2ICsyMywxMSBAQCBzdHJ1Y3QgZXNwX3NrYl9jYiB7CiAJdm9pZCAqdG1wOwogfTsK IAorc3RydWN0IGVzcF9vdXRwdXRfZXh0cmEgeworCV9fYmUzMiBzZXFoaTsKKwl1MzIgZXNwaG9m ZjsKK307CisKICNkZWZpbmUgRVNQX1NLQl9DQihfX3NrYikgKChzdHJ1Y3QgZXNwX3NrYl9jYiAq KSYoKF9fc2tiKS0+Y2JbMF0pKQogCiBzdGF0aWMgdTMyIGVzcDRfZ2V0X210dShzdHJ1Y3QgeGZy bV9zdGF0ZSAqeCwgaW50IG10dSk7CkBAIC0zNSwxMSArNDAsMTEgQEAgc3RhdGljIHUzMiBlc3A0 X2dldF9tdHUoc3RydWN0IHhmcm1fc3RhdGUgKngsIGludCBtdHUpOwogICoKICAqIFRPRE86IFVz ZSBzcGFyZSBzcGFjZSBpbiBza2IgZm9yIHRoaXMgd2hlcmUgcG9zc2libGUuCiAgKi8KLXN0YXRp YyB2b2lkICplc3BfYWxsb2NfdG1wKHN0cnVjdCBjcnlwdG9fYWVhZCAqYWVhZCwgaW50IG5mcmFn cywgaW50IHNlcWhpbGVuKQorc3RhdGljIHZvaWQgKmVzcF9hbGxvY190bXAoc3RydWN0IGNyeXB0 b19hZWFkICphZWFkLCBpbnQgbmZyYWdzLCBpbnQgZXh0cmFsZW4pCiB7CiAJdW5zaWduZWQgaW50 IGxlbjsKIAotCWxlbiA9IHNlcWhpbGVuOworCWxlbiA9IGV4dHJhbGVuOwogCiAJbGVuICs9IGNy eXB0b19hZWFkX2l2c2l6ZShhZWFkKTsKIApAQCAtNTcsMTUgKzYyLDE2IEBAIHN0YXRpYyB2b2lk ICplc3BfYWxsb2NfdG1wKHN0cnVjdCBjcnlwdG9fYWVhZCAqYWVhZCwgaW50IG5mcmFncywgaW50 IHNlcWhpbGVuKQogCXJldHVybiBrbWFsbG9jKGxlbiwgR0ZQX0FUT01JQyk7CiB9CiAKLXN0YXRp YyBpbmxpbmUgX19iZTMyICplc3BfdG1wX3NlcWhpKHZvaWQgKnRtcCkKK3N0YXRpYyBpbmxpbmUg dm9pZCAqZXNwX3RtcF9leHRyYSh2b2lkICp0bXApCiB7Ci0JcmV0dXJuIFBUUl9BTElHTigoX19i ZTMyICopdG1wLCBfX2FsaWdub2ZfXyhfX2JlMzIpKTsKKwlyZXR1cm4gUFRSX0FMSUdOKHRtcCwg X19hbGlnbm9mX18oc3RydWN0IGVzcF9vdXRwdXRfZXh0cmEpKTsKIH0KLXN0YXRpYyBpbmxpbmUg dTggKmVzcF90bXBfaXYoc3RydWN0IGNyeXB0b19hZWFkICphZWFkLCB2b2lkICp0bXAsIGludCBz ZXFoaWxlbikKKworc3RhdGljIGlubGluZSB1OCAqZXNwX3RtcF9pdihzdHJ1Y3QgY3J5cHRvX2Fl YWQgKmFlYWQsIHZvaWQgKnRtcCwgaW50IGV4dHJhbGVuKQogewogCXJldHVybiBjcnlwdG9fYWVh ZF9pdnNpemUoYWVhZCkgPwotCSAgICAgICBQVFJfQUxJR04oKHU4ICopdG1wICsgc2VxaGlsZW4s Ci0JCQkgY3J5cHRvX2FlYWRfYWxpZ25tYXNrKGFlYWQpICsgMSkgOiB0bXAgKyBzZXFoaWxlbjsK KwkgICAgICAgUFRSX0FMSUdOKCh1OCAqKXRtcCArIGV4dHJhbGVuLAorCQkJIGNyeXB0b19hZWFk X2FsaWdubWFzayhhZWFkKSArIDEpIDogdG1wICsgZXh0cmFsZW47CiB9CiAKIHN0YXRpYyBpbmxp bmUgc3RydWN0IGFlYWRfcmVxdWVzdCAqZXNwX3RtcF9yZXEoc3RydWN0IGNyeXB0b19hZWFkICph ZWFkLCB1OCAqaXYpCkBAIC05OSw3ICsxMDUsNyBAQCBzdGF0aWMgdm9pZCBlc3BfcmVzdG9yZV9o ZWFkZXIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdW5zaWduZWQgaW50IG9mZnNldCkKIHsKIAlzdHJ1 Y3QgaXBfZXNwX2hkciAqZXNwaCA9ICh2b2lkICopKHNrYi0+ZGF0YSArIG9mZnNldCk7CiAJdm9p ZCAqdG1wID0gRVNQX1NLQl9DQihza2IpLT50bXA7Ci0JX19iZTMyICpzZXFoaSA9IGVzcF90bXBf c2VxaGkodG1wKTsKKwlfX2JlMzIgKnNlcWhpID0gZXNwX3RtcF9leHRyYSh0bXApOwogCiAJZXNw aC0+c2VxX25vID0gZXNwaC0+c3BpOwogCWVzcGgtPnNwaSA9ICpzZXFoaTsKQEAgLTEwNyw3ICsx MTMsMTEgQEAgc3RhdGljIHZvaWQgZXNwX3Jlc3RvcmVfaGVhZGVyKHN0cnVjdCBza19idWZmICpz a2IsIHVuc2lnbmVkIGludCBvZmZzZXQpCiAKIHN0YXRpYyB2b2lkIGVzcF9vdXRwdXRfcmVzdG9y ZV9oZWFkZXIoc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKLQllc3BfcmVzdG9yZV9oZWFkZXIoc2ti LCBza2JfdHJhbnNwb3J0X29mZnNldChza2IpIC0gc2l6ZW9mKF9fYmUzMikpOworCXZvaWQgKnRt cCA9IEVTUF9TS0JfQ0Ioc2tiKS0+dG1wOworCXN0cnVjdCBlc3Bfb3V0cHV0X2V4dHJhICpleHRy YSA9IGVzcF90bXBfZXh0cmEodG1wKTsKKworCWVzcF9yZXN0b3JlX2hlYWRlcihza2IsIHNrYl90 cmFuc3BvcnRfb2Zmc2V0KHNrYikgKyBleHRyYS0+ZXNwaG9mZiAtCisJCQkJc2l6ZW9mKF9fYmUz MikpOwogfQogCiBzdGF0aWMgdm9pZCBlc3Bfb3V0cHV0X2RvbmVfZXNuKHN0cnVjdCBjcnlwdG9f YXN5bmNfcmVxdWVzdCAqYmFzZSwgaW50IGVycikKQEAgLTEyMSw2ICsxMzEsNyBAQCBzdGF0aWMg dm9pZCBlc3Bfb3V0cHV0X2RvbmVfZXNuKHN0cnVjdCBjcnlwdG9fYXN5bmNfcmVxdWVzdCAqYmFz ZSwgaW50IGVycikKIHN0YXRpYyBpbnQgZXNwX291dHB1dChzdHJ1Y3QgeGZybV9zdGF0ZSAqeCwg c3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKIAlpbnQgZXJyOworCXN0cnVjdCBlc3Bfb3V0cHV0X2V4 dHJhICpleHRyYTsKIAlzdHJ1Y3QgaXBfZXNwX2hkciAqZXNwaDsKIAlzdHJ1Y3QgY3J5cHRvX2Fl YWQgKmFlYWQ7CiAJc3RydWN0IGFlYWRfcmVxdWVzdCAqcmVxOwpAQCAtMTM3LDggKzE0OCw3IEBA IHN0YXRpYyBpbnQgZXNwX291dHB1dChzdHJ1Y3QgeGZybV9zdGF0ZSAqeCwgc3RydWN0IHNrX2J1 ZmYgKnNrYikKIAlpbnQgdGZjbGVuOwogCWludCBuZnJhZ3M7CiAJaW50IGFzc29jbGVuOwotCWlu dCBzZXFoaWxlbjsKLQlfX2JlMzIgKnNlcWhpOworCWludCBleHRyYWxlbjsKIAlfX2JlNjQgc2Vx bm87CiAKIAkvKiBza2IgaXMgcHVyZSBwYXlsb2FkIHRvIGVuY3J5cHQgKi8KQEAgLTE2NiwyMSAr MTc2LDIxIEBAIHN0YXRpYyBpbnQgZXNwX291dHB1dChzdHJ1Y3QgeGZybV9zdGF0ZSAqeCwgc3Ry dWN0IHNrX2J1ZmYgKnNrYikKIAluZnJhZ3MgPSBlcnI7CiAKIAlhc3NvY2xlbiA9IHNpemVvZigq ZXNwaCk7Ci0Jc2VxaGlsZW4gPSAwOworCWV4dHJhbGVuID0gMDsKIAogCWlmICh4LT5wcm9wcy5m bGFncyAmIFhGUk1fU1RBVEVfRVNOKSB7Ci0JCXNlcWhpbGVuICs9IHNpemVvZihfX2JlMzIpOwot CQlhc3NvY2xlbiArPSBzZXFoaWxlbjsKKwkJZXh0cmFsZW4gKz0gc2l6ZW9mKCpleHRyYSk7CisJ CWFzc29jbGVuICs9IHNpemVvZihfX2JlMzIpOwogCX0KIAotCXRtcCA9IGVzcF9hbGxvY190bXAo YWVhZCwgbmZyYWdzLCBzZXFoaWxlbik7CisJdG1wID0gZXNwX2FsbG9jX3RtcChhZWFkLCBuZnJh Z3MsIGV4dHJhbGVuKTsKIAlpZiAoIXRtcCkgewogCQllcnIgPSAtRU5PTUVNOwogCQlnb3RvIGVy cm9yOwogCX0KIAotCXNlcWhpID0gZXNwX3RtcF9zZXFoaSh0bXApOwotCWl2ID0gZXNwX3RtcF9p dihhZWFkLCB0bXAsIHNlcWhpbGVuKTsKKwlleHRyYSA9IGVzcF90bXBfZXh0cmEodG1wKTsKKwlp diA9IGVzcF90bXBfaXYoYWVhZCwgdG1wLCBleHRyYWxlbik7CiAJcmVxID0gZXNwX3RtcF9yZXEo YWVhZCwgaXYpOwogCXNnID0gZXNwX3JlcV9zZyhhZWFkLCByZXEpOwogCkBAIC0yNDcsOCArMjU3 LDEwIEBAIHN0YXRpYyBpbnQgZXNwX291dHB1dChzdHJ1Y3QgeGZybV9zdGF0ZSAqeCwgc3RydWN0 IHNrX2J1ZmYgKnNrYikKIAkgKiBlbmNyeXB0aW9uLgogCSAqLwogCWlmICgoeC0+cHJvcHMuZmxh Z3MgJiBYRlJNX1NUQVRFX0VTTikpIHsKLQkJZXNwaCA9ICh2b2lkICopKHNrYl90cmFuc3BvcnRf aGVhZGVyKHNrYikgLSBzaXplb2YoX19iZTMyKSk7Ci0JCSpzZXFoaSA9IGVzcGgtPnNwaTsKKwkJ ZXh0cmEtPmVzcGhvZmYgPSAodW5zaWduZWQgY2hhciAqKWVzcGggLQorCQkJCSBza2JfdHJhbnNw b3J0X2hlYWRlcihza2IpOworCQllc3BoID0gKHN0cnVjdCBpcF9lc3BfaGRyICopKCh1bnNpZ25l ZCBjaGFyICopZXNwaCAtIDQpOworCQlleHRyYS0+c2VxaGkgPSBlc3BoLT5zcGk7CiAJCWVzcGgt PnNlcV9ubyA9IGh0b25sKFhGUk1fU0tCX0NCKHNrYiktPnNlcS5vdXRwdXQuaGkpOwogCQlhZWFk X3JlcXVlc3Rfc2V0X2NhbGxiYWNrKHJlcSwgMCwgZXNwX291dHB1dF9kb25lX2Vzbiwgc2tiKTsK IAl9CkBAIC00NDUsNyArNDU3LDcgQEAgc3RhdGljIGludCBlc3BfaW5wdXQoc3RydWN0IHhmcm1f c3RhdGUgKngsIHN0cnVjdCBza19idWZmICpza2IpCiAJCWdvdG8gb3V0OwogCiAJRVNQX1NLQl9D Qihza2IpLT50bXAgPSB0bXA7Ci0Jc2VxaGkgPSBlc3BfdG1wX3NlcWhpKHRtcCk7CisJc2VxaGkg PSBlc3BfdG1wX2V4dHJhKHRtcCk7CiAJaXYgPSBlc3BfdG1wX2l2KGFlYWQsIHRtcCwgc2VxaGls ZW4pOwogCXJlcSA9IGVzcF90bXBfcmVxKGFlYWQsIGl2KTsKIAlzZyA9IGVzcF9yZXFfc2coYWVh ZCwgcmVxKTsKLS0gCjIuMS4wCgoKRnJvbSBmODIzOTc5MWQ1ZTdiMTE4ZjQ1YmU4OTFjNTJiZTJm OGU5Y2M3OTVlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVk dW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IE1vbiwgMjAgSnVuIDIwMTYgMTU6MDA6NDMgLTA3MDAK U3ViamVjdDogW1BBVENIIDA3LzEzXSBuZXRlbTogZml4IGEgdXNlIGFmdGVyIGZyZWUKClsgVXBz dHJlYW0gY29tbWl0IDIxZGUxMmVlNTU2OGZkMWFlYzQ3ODkwYzcyOTY3YWJmNzkxYWM4MGEgXQoK SWYgdGhlIHBhY2tldCB3YXMgZHJvcHBlZCBieSBsb3dlciBxZGlzYywgdGhlbiB3ZSBtdXN0IG5v dAphY2Nlc3MgaXQgbGF0ZXIuCgpTYXZlIHFkaXNjX3BrdF9sZW4oc2tiKSBpbiBhIHRlbXAgdmFy aWFibGUuCgpGaXhlczogMmNjY2NmNWZiNDNmICgibmV0X3NjaGVkOiB1cGRhdGUgaGllcmFyY2hp Y2FsIGJhY2tsb2cgdG9vIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBn b29nbGUuY29tPgpDYzogV0FORyBDb25nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkNjOiBK YW1hbCBIYWRpIFNhbGltIDxqaHNAbW9qYXRhdHUuY29tPgpDYzogU3RlcGhlbiBIZW1taW5nZXIg PHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL3NjaF9uZXRlbS5jIHwgMTIg KysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfbmV0ZW0uYyBiL25ldC9zY2hlZC9zY2hf bmV0ZW0uYwppbmRleCA0YmVmZTk3Li5iN2MyOWQ1IDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2No X25ldGVtLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9uZXRlbS5jCkBAIC02NTAsMTQgKzY1MCwxNCBA QCBkZWxpdmVyOgogI2VuZGlmCiAKIAkJCWlmIChxLT5xZGlzYykgeworCQkJCXVuc2lnbmVkIGlu dCBwa3RfbGVuID0gcWRpc2NfcGt0X2xlbihza2IpOwogCQkJCWludCBlcnIgPSBxZGlzY19lbnF1 ZXVlKHNrYiwgcS0+cWRpc2MpOwogCi0JCQkJaWYgKHVubGlrZWx5KGVyciAhPSBORVRfWE1JVF9T VUNDRVNTKSkgewotCQkJCQlpZiAobmV0X3htaXRfZHJvcF9jb3VudChlcnIpKSB7Ci0JCQkJCQlx ZGlzY19xc3RhdHNfZHJvcChzY2gpOwotCQkJCQkJcWRpc2NfdHJlZV9yZWR1Y2VfYmFja2xvZyhz Y2gsIDEsCi0JCQkJCQkJCQkgIHFkaXNjX3BrdF9sZW4oc2tiKSk7Ci0JCQkJCX0KKwkJCQlpZiAo ZXJyICE9IE5FVF9YTUlUX1NVQ0NFU1MgJiYKKwkJCQkgICAgbmV0X3htaXRfZHJvcF9jb3VudChl cnIpKSB7CisJCQkJCXFkaXNjX3FzdGF0c19kcm9wKHNjaCk7CisJCQkJCXFkaXNjX3RyZWVfcmVk dWNlX2JhY2tsb2coc2NoLCAxLAorCQkJCQkJCQkgIHBrdF9sZW4pOwogCQkJCX0KIAkJCQlnb3Rv IHRmaWZvX2RlcXVldWU7CiAJCQl9Ci0tIAoyLjEuMAoKCkZyb20gYjRkNWE2MDA3ZTZiODQwY2Y0 N2JjNGEyMzk4MzFkZGVjODU4NzVhOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVG9t IEdvZmYgPHRob21hcy5nb2ZmQGxsLm1pdC5lZHU+CkRhdGU6IFRodSwgMjMgSnVuIDIwMTYgMTY6 MTE6NTcgLTA0MDAKU3ViamVjdDogW1BBVENIIDA4LzEzXSBpcG1yL2lwNm1yOiBJbml0aWFsaXpl IHRoZSBsYXN0IGFzc2VydCB0aW1lIG9mIG1mYwogZW50cmllcy4KClsgVXBzdHJlYW0gY29tbWl0 IDcwYTBkZWM0NTE3NGM5NzZjNjRiNGM4YzFkMDg5ODU4MWY3NTk5NDggXQoKVGhpcyBmaXhlcyB3 cm9uZy1pbnRlcmZhY2Ugc2lnbmFsaW5nIG9uIDMyLWJpdCBwbGF0Zm9ybXMgZm9yIGVudHJpZXMK Y3JlYXRlZCB3aGVuIGppZmZpZXMgPiAyXjMxICsgTUZDX0FTU0VSVF9USFJFU0guCgpTaWduZWQt b2ZmLWJ5OiBUb20gR29mZiA8dGhvbWFzLmdvZmZAbGwubWl0LmVkdT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L2lwbXIu YyAgfCA0ICsrKy0KIG5ldC9pcHY2L2lwNm1yLmMgfCAxICsKIDIgZmlsZXMgY2hhbmdlZCwgNCBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBtci5j IGIvbmV0L2lwdjQvaXBtci5jCmluZGV4IDM5NWUyODEuLmE0MmRkODAgMTAwNjQ0Ci0tLSBhL25l dC9pcHY0L2lwbXIuYworKysgYi9uZXQvaXB2NC9pcG1yLmMKQEAgLTg5MSw4ICs4OTEsMTAgQEAg c3RhdGljIHN0cnVjdCBtZmNfY2FjaGUgKmlwbXJfY2FjaGVfYWxsb2Modm9pZCkKIHsKIAlzdHJ1 Y3QgbWZjX2NhY2hlICpjID0ga21lbV9jYWNoZV96YWxsb2MobXJ0X2NhY2hlcCwgR0ZQX0tFUk5F TCk7CiAKLQlpZiAoYykKKwlpZiAoYykgeworCQljLT5tZmNfdW4ucmVzLmxhc3RfYXNzZXJ0ID0g amlmZmllcyAtIE1GQ19BU1NFUlRfVEhSRVNIIC0gMTsKIAkJYy0+bWZjX3VuLnJlcy5taW52aWYg PSBNQVhWSUZTOworCX0KIAlyZXR1cm4gYzsKIH0KIApkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2 bXIuYyBiL25ldC9pcHY2L2lwNm1yLmMKaW5kZXggYTEwZTc3MS4uZTIwN2NiMiAxMDA2NDQKLS0t IGEvbmV0L2lwdjYvaXA2bXIuYworKysgYi9uZXQvaXB2Ni9pcDZtci5jCkBAIC0xMDc0LDYgKzEw NzQsNyBAQCBzdGF0aWMgc3RydWN0IG1mYzZfY2FjaGUgKmlwNm1yX2NhY2hlX2FsbG9jKHZvaWQp CiAJc3RydWN0IG1mYzZfY2FjaGUgKmMgPSBrbWVtX2NhY2hlX3phbGxvYyhtcnRfY2FjaGVwLCBH RlBfS0VSTkVMKTsKIAlpZiAoIWMpCiAJCXJldHVybiBOVUxMOworCWMtPm1mY191bi5yZXMubGFz dF9hc3NlcnQgPSBqaWZmaWVzIC0gTUZDX0FTU0VSVF9USFJFU0ggLSAxOwogCWMtPm1mY191bi5y ZXMubWludmlmID0gTUFYTUlGUzsKIAlyZXR1cm4gYzsKIH0KLS0gCjIuMS4wCgoKRnJvbSA0NDM1 ZGE2MjI2ZDNmODdmZjYxNGRlMDBiZDg0NDE0MTU5ZTVlNGQwIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBkYW5pZWwgPGRhbmllbEBkZC13cnQuY29tPgpEYXRlOiBGcmksIDI0IEp1biAy MDE2IDEyOjM1OjE4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOS8xM10gQnJpZGdlOiBGaXggaXB2 NiBtYyBzbm9vcGluZyBpZiBicmlkZ2UgaGFzIG5vIGlwdjYKIGFkZHJlc3MKTUlNRS1WZXJzaW9u OiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJh bnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IDA4ODhkNWYzYzBmMTgzZWE2 MTc3MzU1NzUyYWRhNDMzZDM3MGFjODkgXQoKVGhlIGJyaWRnZSBpcyBmYWxzbHkgZHJvcHBpbmcg aXB2NiBtdWxpdGNhc3QgcGFja2V0cyBpZiB0aGVyZSBpczoKIDEuIE5vIGlwdjYgYWRkcmVzcyBh c3NpZ25lZCBvbiB0aGUgYnJpZ2RlLgogMi4gTm8gZXh0ZXJuYWwgbWxkIHF1ZXJpZXIgcHJlc2Vu dC4KIDMuIFRoZSBpbnRlcm5hbCBxdWVyaWVyIGVuYWJsZWQuCgpXaGVuIHRoZSBicmlkZ2UgZmFp bHMgdG8gYnVpbGQgbWxkIHF1ZXJpZXMsIGJlY2F1c2UgaXQgaGFzIG5vCmlwdjYgYWRkcmVzcywg aXQgc2xpbGVudGx5IHJldHVybnMsIGJ1dCBrZWVwcyB0aGUgbG9jYWwgcXVlcmllciBlbmFibGVk LgpUaGlzIHNwZWNpZmljIGNhc2UgY2F1c2VzIGNvbmZ1c2luZyBwYWNrZXQgbG9zcy4KCklwdjYg bXVsdGljYXN0IHNub29waW5nIGNhbiBvbmx5IHdvcmsgaWY6CiBhKSBBbiBleHRlcm5hbCBxdWVy aWVyIGlzIHByZXNlbnQKIE9SCiBiKSBUaGUgYnJpZGdlIGhhcyBhbiBpcHY2IGFkZHJlc3MgYW4g aXMgY2FwYWJsZSBvZiBzZW5kaW5nIG93biBxdWVyaWVzCgpPdGhlcndpc2UgaXQgaGFzIHRvIGZv cndhcmQvZmxvb2QgdGhlIGlwdjYgbXVsdGljYXN0IHRyYWZmaWMsCmJlY2F1c2Ugc25vb3Bpbmcg Y2Fubm90IHdvcmsuCgpUaGlzIHBhdGNoIGZpeGVzIHRoZSBpc3N1ZSBieSBhZGRpbmcgYSBmbGFn IHRvIHRoZSBicmlkZ2Ugc3RydWN0IHRoYXQKaW5kaWNhdGVzIHRoYXQgdGhlcmUgaXMgY3VycmVu dGx5IG5vIGlwdjYgYWRkcmVzcyBhc3NpbmdlZCB0byB0aGUgYnJpZGdlCmFuZCByZXR1cm5zIGEg ZmFsc2Ugc3RhdGUgZm9yIHRoZSBsb2NhbCBxdWVyaWVyIGluCl9fYnJfbXVsdGljYXN0X3F1ZXJp ZXJfZXhpc3RzKCkuCgpTcGVjaWFsIHRoYW5rcyB0byBMaW51cyBMw7xzc2luZy4KCkZpeGVzOiBk MWQ4MWQ0YzNkZDggKCJicmlkZ2U6IGNoZWNrIHJldHVybiB2YWx1ZSBvZiBpcHY2X2Rldl9nZXRf c2FkZHIoKSIpClNpZ25lZC1vZmYtYnk6IERhbmllbCBEYW56YmVyZ2VyIDxkYW5pZWxAZGQtd3J0 LmNvbT4KQWNrZWQtYnk6IExpbnVzIEzDvHNzaW5nIDxsaW51cy5sdWVzc2luZ0BjMGQzLmJsdWU+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvYnJpZGdlL2JyX211bHRpY2FzdC5jIHwgIDQgKysrKwogbmV0L2JyaWRnZS9icl9wcml2 YXRlLmggICB8IDIzICsrKysrKysrKysrKysrKysrKystLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDIz IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9i cl9tdWx0aWNhc3QuYyBiL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMKaW5kZXggNjg1MmYzYy4u NDM4NDQxNCAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYworKysgYi9uZXQv YnJpZGdlL2JyX211bHRpY2FzdC5jCkBAIC00NjQsOCArNDY0LDExIEBAIHN0YXRpYyBzdHJ1Y3Qg c2tfYnVmZiAqYnJfaXA2X211bHRpY2FzdF9hbGxvY19xdWVyeShzdHJ1Y3QgbmV0X2JyaWRnZSAq YnIsCiAJaWYgKGlwdjZfZGV2X2dldF9zYWRkcihkZXZfbmV0KGJyLT5kZXYpLCBici0+ZGV2LCAm aXA2aC0+ZGFkZHIsIDAsCiAJCQkgICAgICAgJmlwNmgtPnNhZGRyKSkgewogCQlrZnJlZV9za2Io c2tiKTsKKwkJYnItPmhhc19pcHY2X2FkZHIgPSAwOwogCQlyZXR1cm4gTlVMTDsKIAl9CisKKwli ci0+aGFzX2lwdjZfYWRkciA9IDE7CiAJaXB2Nl9ldGhfbWNfbWFwKCZpcDZoLT5kYWRkciwgZXRo LT5oX2Rlc3QpOwogCiAJaG9wb3B0ID0gKHU4ICopKGlwNmggKyAxKTsKQEAgLTE3NDUsNiArMTc0 OCw3IEBAIHZvaWQgYnJfbXVsdGljYXN0X2luaXQoc3RydWN0IG5ldF9icmlkZ2UgKmJyKQogCWJy LT5pcDZfb3RoZXJfcXVlcnkuZGVsYXlfdGltZSA9IDA7CiAJYnItPmlwNl9xdWVyaWVyLnBvcnQg PSBOVUxMOwogI2VuZGlmCisJYnItPmhhc19pcHY2X2FkZHIgPSAxOwogCiAJc3Bpbl9sb2NrX2lu aXQoJmJyLT5tdWx0aWNhc3RfbG9jayk7CiAJc2V0dXBfdGltZXIoJmJyLT5tdWx0aWNhc3Rfcm91 dGVyX3RpbWVyLApkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9wcml2YXRlLmggYi9uZXQvYnJp ZGdlL2JyX3ByaXZhdGUuaAppbmRleCBkOWRhODU3Li5mNTE2YzUzIDEwMDY0NAotLS0gYS9uZXQv YnJpZGdlL2JyX3ByaXZhdGUuaAorKysgYi9uZXQvYnJpZGdlL2JyX3ByaXZhdGUuaApAQCAtMzA0 LDYgKzMwNCw3IEBAIHN0cnVjdCBuZXRfYnJpZGdlCiAJdTgJCQkJbXVsdGljYXN0X2Rpc2FibGVk OjE7CiAJdTgJCQkJbXVsdGljYXN0X3F1ZXJpZXI6MTsKIAl1OAkJCQltdWx0aWNhc3RfcXVlcnlf dXNlX2lmYWRkcjoxOworCXU4CQkJCWhhc19pcHY2X2FkZHI6MTsKIAogCXUzMgkJCQloYXNoX2Vs YXN0aWNpdHk7CiAJdTMyCQkJCWhhc2hfbWF4OwpAQCAtNTc3LDEwICs1NzgsMjIgQEAgc3RhdGlj IGlubGluZSBib29sIGJyX211bHRpY2FzdF9pc19yb3V0ZXIoc3RydWN0IG5ldF9icmlkZ2UgKmJy KQogCiBzdGF0aWMgaW5saW5lIGJvb2wKIF9fYnJfbXVsdGljYXN0X3F1ZXJpZXJfZXhpc3RzKHN0 cnVjdCBuZXRfYnJpZGdlICpiciwKLQkJCSAgICAgIHN0cnVjdCBicmlkZ2VfbWNhc3Rfb3RoZXJf cXVlcnkgKnF1ZXJpZXIpCisJCQkJc3RydWN0IGJyaWRnZV9tY2FzdF9vdGhlcl9xdWVyeSAqcXVl cmllciwKKwkJCQljb25zdCBib29sIGlzX2lwdjYpCiB7CisJYm9vbCBvd25fcXVlcmllcl9lbmFi bGVkOworCisJaWYgKGJyLT5tdWx0aWNhc3RfcXVlcmllcikgeworCQlpZiAoaXNfaXB2NiAmJiAh YnItPmhhc19pcHY2X2FkZHIpCisJCQlvd25fcXVlcmllcl9lbmFibGVkID0gZmFsc2U7CisJCWVs c2UKKwkJCW93bl9xdWVyaWVyX2VuYWJsZWQgPSB0cnVlOworCX0gZWxzZSB7CisJCW93bl9xdWVy aWVyX2VuYWJsZWQgPSBmYWxzZTsKKwl9CisKIAlyZXR1cm4gdGltZV9pc19iZWZvcmVfamlmZmll cyhxdWVyaWVyLT5kZWxheV90aW1lKSAmJgotCSAgICAgICAoYnItPm11bHRpY2FzdF9xdWVyaWVy IHx8IHRpbWVyX3BlbmRpbmcoJnF1ZXJpZXItPnRpbWVyKSk7CisJICAgICAgIChvd25fcXVlcmll cl9lbmFibGVkIHx8IHRpbWVyX3BlbmRpbmcoJnF1ZXJpZXItPnRpbWVyKSk7CiB9CiAKIHN0YXRp YyBpbmxpbmUgYm9vbCBicl9tdWx0aWNhc3RfcXVlcmllcl9leGlzdHMoc3RydWN0IG5ldF9icmlk Z2UgKmJyLApAQCAtNTg4LDEwICs2MDEsMTIgQEAgc3RhdGljIGlubGluZSBib29sIGJyX211bHRp Y2FzdF9xdWVyaWVyX2V4aXN0cyhzdHJ1Y3QgbmV0X2JyaWRnZSAqYnIsCiB7CiAJc3dpdGNoIChl dGgtPmhfcHJvdG8pIHsKIAljYXNlIChodG9ucyhFVEhfUF9JUCkpOgotCQlyZXR1cm4gX19icl9t dWx0aWNhc3RfcXVlcmllcl9leGlzdHMoYnIsICZici0+aXA0X290aGVyX3F1ZXJ5KTsKKwkJcmV0 dXJuIF9fYnJfbXVsdGljYXN0X3F1ZXJpZXJfZXhpc3RzKGJyLAorCQkJJmJyLT5pcDRfb3RoZXJf cXVlcnksIGZhbHNlKTsKICNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KQogCWNhc2UgKGh0b25z KEVUSF9QX0lQVjYpKToKLQkJcmV0dXJuIF9fYnJfbXVsdGljYXN0X3F1ZXJpZXJfZXhpc3RzKGJy LCAmYnItPmlwNl9vdGhlcl9xdWVyeSk7CisJCXJldHVybiBfX2JyX211bHRpY2FzdF9xdWVyaWVy X2V4aXN0cyhiciwKKwkJCSZici0+aXA2X290aGVyX3F1ZXJ5LCB0cnVlKTsKICNlbmRpZgogCWRl ZmF1bHQ6CiAJCXJldHVybiBmYWxzZTsKLS0gCjIuMS4wCgoKRnJvbSAyY2NhZjY2MWUyMmE5ZDg1 MjFmNDE4Mzk0YThlNmUzNGU2ZWRlY2E2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBX aWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+CkRhdGU6IEZyaSwgMjQgSnVuIDIw MTYgMTY6MDI6MzUgLTA0MDAKU3ViamVjdDogW1BBVENIIDEwLzEzXSBzb2NrX2RpYWc6IGRvIG5v dCBicm9hZGNhc3QgcmF3IHNvY2tldCBkZXN0cnVjdGlvbgoKWyBVcHN0cmVhbSBjb21taXQgOWEw ZmVlMmI1NTJiMTIzNWZiMTcwNmFlMWZjNjY0YWU3NDU3M2JlOCBdCgpEaWFnIGludGVuZHMgdG8g YnJvYWRjYXN0IHRjcF9zayBhbmQgdWRwX3NrIHNvY2tldCBkZXN0cnVjdGlvbi4KVGVzdGluZyBz ay0+c2tfcHJvdG9jb2wgZm9yIElQUFJPVE9fVENQL0lQUFJPVE9fVURQIGFsb25lIGlzIG5vdApz dWZmaWNpZW50IGZvciB0aGlzLiBSYXcgc29ja2V0cyBjYW4gaGF2ZSB0aGUgc2FtZSB0eXBlLgoK QWRkIGEgdGVzdCBmb3Igc2stPnNrX3R5cGUuCgpGaXhlczogZWI0Y2IwMDg1MjljICgic29ja19k aWFnOiBkZWZpbmUgZGVzdHJ1Y3Rpb24gbXVsdGljYXN0IGdyb3VwcyIpClNpZ25lZC1vZmYtYnk6 IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbGludXgvc29j a19kaWFnLmggfCA2ICsrKysrKwogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc29ja19kaWFnLmggYi9pbmNsdWRlL2xpbnV4L3NvY2tf ZGlhZy5oCmluZGV4IDQwMThiNDguLmEwNTk2Y2EwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4 L3NvY2tfZGlhZy5oCisrKyBiL2luY2x1ZGUvbGludXgvc29ja19kaWFnLmgKQEAgLTM2LDYgKzM2 LDkgQEAgZW51bSBza25ldGxpbmtfZ3JvdXBzIHNvY2tfZGlhZ19kZXN0cm95X2dyb3VwKGNvbnN0 IHN0cnVjdCBzb2NrICpzaykKIHsKIAlzd2l0Y2ggKHNrLT5za19mYW1pbHkpIHsKIAljYXNlIEFG X0lORVQ6CisJCWlmIChzay0+c2tfdHlwZSA9PSBTT0NLX1JBVykKKwkJCXJldHVybiBTS05MR1JQ X05PTkU7CisKIAkJc3dpdGNoIChzay0+c2tfcHJvdG9jb2wpIHsKIAkJY2FzZSBJUFBST1RPX1RD UDoKIAkJCXJldHVybiBTS05MR1JQX0lORVRfVENQX0RFU1RST1k7CkBAIC00NSw2ICs0OCw5IEBA IGVudW0gc2tuZXRsaW5rX2dyb3VwcyBzb2NrX2RpYWdfZGVzdHJveV9ncm91cChjb25zdCBzdHJ1 Y3Qgc29jayAqc2spCiAJCQlyZXR1cm4gU0tOTEdSUF9OT05FOwogCQl9CiAJY2FzZSBBRl9JTkVU NjoKKwkJaWYgKHNrLT5za190eXBlID09IFNPQ0tfUkFXKQorCQkJcmV0dXJuIFNLTkxHUlBfTk9O RTsKKwogCQlzd2l0Y2ggKHNrLT5za19wcm90b2NvbCkgewogCQljYXNlIElQUFJPVE9fVENQOgog CQkJcmV0dXJuIFNLTkxHUlBfSU5FVDZfVENQX0RFU1RST1k7Ci0tIAoyLjEuMAoKCkZyb20gMzA0 ZmJiNTQ3MmVhMTFmYmNhN2M5YWI3YjMzZGMxZGVmMmM2ZWIwNiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5ldD4KRGF0ZTog TW9uLCAyNyBKdW4gMjAxNiAyMTozODoxMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMTNdIGJw ZiwgcGVyZjogZGVsYXkgcmVsZWFzZSBvZiBCUEYgcHJvZyBhZnRlciBncmFjZSBwZXJpb2QKClsg VXBzdHJlYW0gY29tbWl0IGNlYjU2MDcwMzU5YjczMjliNTY3OGI1ZDk1YTM3NmZjYjI0NzY3YmUg XQoKQ29tbWl0IGRlYWQ5ZjI5ZGRjYyAoInBlcmY6IEZpeCByYWNlIGluIEJQRiBwcm9ncmFtIHVu cmVnaXN0ZXIiKSBtb3ZlZApkZXN0cnVjdGlvbiBvZiBCUEYgcHJvZ3JhbSBmcm9tIGZyZWVfZXZl bnRfcmN1KCkgY2FsbGJhY2sgdG8gX19mcmVlX2V2ZW50KCksCndoaWNoIGlzIHByb2JsZW1hdGlj IGlmIHVzZWQgd2l0aCB0YWlsIGNhbGxzOiBpZiBwcm9nIEEgaXMgYXR0YWNoZWQgYXMKdHJhY2Ug ZXZlbnQgZGlyZWN0bHksIGJ1dCBhdCB0aGUgc2FtZSB0aW1lIHByZXNlbnQgaW4gYSB0YWlsIGNh bGwgbWFwIHVzZWQKYnkgYW5vdGhlciB0cmFjZSBldmVudCBwcm9ncmFtIGVsc2V3aGVyZSwgdGhl biB3ZSBuZWVkIHRvIGRlbGF5IGRlc3RydWN0aW9uCnZpYSBSQ1UgZ3JhY2UgcGVyaW9kIHNpbmNl IGl0IGNhbiBzdGlsbCBiZSBpbiB1c2UgYnkgdGhlIHByb2dyYW0gZG9pbmcgdGhlCnRhaWwgY2Fs bCAodGhlIHByb2cgZmlyc3QgbmVlZHMgdG8gYmUgZHJvcHBlZCBmcm9tIHRoZSB0YWlsIGNhbGwg bWFwLCB0aGVuCnRyYWNlIGV2ZW50IHdpdGggcHJvZyBBIGF0dGFjaGVkIGRlc3Ryb3llZCwgc28g d2UgZ2V0IGltbWVkaWF0ZSBkZXN0cnVjdGlvbikuCgpGaXhlczogZGVhZDlmMjlkZGNjICgicGVy ZjogRml4IHJhY2UgaW4gQlBGIHByb2dyYW0gdW5yZWdpc3RlciIpClNpZ25lZC1vZmYtYnk6IERh bmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkFja2VkLWJ5OiBBbGV4ZWkgU3Rh cm92b2l0b3YgPGFzdEBrZXJuZWwub3JnPgpDYzogSmFubiBIb3JuIDxqYW5uQHRoZWpoLm5ldD4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGluY2x1ZGUvbGludXgvYnBmLmggIHwgNCArKysrCiBrZXJuZWwvZXZlbnRzL2NvcmUuYyB8IDIg Ky0KIDIgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9saW51eC9icGYuaCBiL2luY2x1ZGUvbGludXgvYnBmLmgKaW5kZXgg ZjFkNWM1YWMuLmNhODBkNTggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvYnBmLmgKKysrIGIv aW5jbHVkZS9saW51eC9icGYuaApAQCAtMjI5LDYgKzIyOSwxMCBAQCBzdGF0aWMgaW5saW5lIHN0 cnVjdCBicGZfcHJvZyAqYnBmX3Byb2dfZ2V0KHUzMiB1ZmQpCiBzdGF0aWMgaW5saW5lIHZvaWQg YnBmX3Byb2dfcHV0KHN0cnVjdCBicGZfcHJvZyAqcHJvZykKIHsKIH0KKworc3RhdGljIGlubGlu ZSB2b2lkIGJwZl9wcm9nX3B1dF9yY3Uoc3RydWN0IGJwZl9wcm9nICpwcm9nKQoreworfQogI2Vu ZGlmIC8qIENPTkZJR19CUEZfU1lTQ0FMTCAqLwogCiAvKiB2ZXJpZmllciBwcm90b3R5cGVzIGZv ciBoZWxwZXIgZnVuY3Rpb25zIGNhbGxlZCBmcm9tIGVCUEYgcHJvZ3JhbXMgKi8KZGlmZiAtLWdp dCBhL2tlcm5lbC9ldmVudHMvY29yZS5jIGIva2VybmVsL2V2ZW50cy9jb3JlLmMKaW5kZXggYzBk ZWQyNC4uYTY5YzkwYyAxMDA2NDQKLS0tIGEva2VybmVsL2V2ZW50cy9jb3JlLmMKKysrIGIva2Vy bmVsL2V2ZW50cy9jb3JlLmMKQEAgLTcxNDMsNyArNzE0Myw3IEBAIHN0YXRpYyB2b2lkIHBlcmZf ZXZlbnRfZnJlZV9icGZfcHJvZyhzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQpCiAJcHJvZyA9IGV2 ZW50LT50cF9ldmVudC0+cHJvZzsKIAlpZiAocHJvZykgewogCQlldmVudC0+dHBfZXZlbnQtPnBy b2cgPSBOVUxMOwotCQlicGZfcHJvZ19wdXQocHJvZyk7CisJCWJwZl9wcm9nX3B1dF9yY3UocHJv Zyk7CiAJfQogfQogCi0tIAoyLjEuMAoKCkZyb20gMzAyNzU5NGRlODcwMDcyNTIyODE2MTdiNTkz NzRiMWNjNTc2ZjdmNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2aWQgQmFycm9z byA8ZGJhcnJvc29AZmFzdGx5LmNvbT4KRGF0ZTogVHVlLCAyOCBKdW4gMjAxNiAxMToxNjo0MyAr MDMwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMTNdIG5laWdoOiBFeHBsaWNpdGx5IGRlY2xhcmUgUkNV LWJoIHJlYWQgc2lkZSBjcml0aWNhbAogc2VjdGlvbiBpbiBuZWlnaF94bWl0KCkKClsgVXBzdHJl YW0gY29tbWl0IGI1NjBmMDNkZGZiMDcyYmNhNjVlOTQ0MGZmMGRjNGY5YjFkMWYwNTYgXQoKbmVp Z2hfeG1pdCgpIGV4cGVjdHMgdG8gYmUgY2FsbGVkIGluc2lkZSBhbiBSQ1UtYmggcmVhZCBzaWRl IGNyaXRpY2FsCnNlY3Rpb24sIGFuZCB3aGlsZSBvbmUgb2YgaXRzIHR3byBjdXJyZW50IGNhbGxl cnMgZ2V0cyB0aGlzIHJpZ2h0LCB0aGUKb3RoZXIgb25lIGRvZXNuJ3QuCgpNb3JlIHNwZWNpZmlj YWxseSwgbmVpZ2hfeG1pdCgpIGhhcyB0d28gY2FsbGVycywgbXBsc19mb3J3YXJkKCkgYW5kCm1w bHNfb3V0cHV0KCksIGFuZCB3aGlsZSBib3RoIGNhbGxlcnMgY2FsbCBuZWlnaF94bWl0KCkgdW5k ZXIKcmN1X3JlYWRfbG9jaygpLCB0aGlzIHByb3ZpZGVzIHN1ZmZpY2llbnQgcHJvdGVjdGlvbiBm b3IgbmVpZ2hfeG1pdCgpCm9ubHkgaW4gdGhlIGNhc2Ugb2YgbXBsc19mb3J3YXJkKCksIGFzIHRo YXQgaXMgYWx3YXlzIGNhbGxlZCBmcm9tCnNvZnRpcnEgY29udGV4dCBhbmQgdGhlcmVmb3JlIGRv ZXNuJ3QgbmVlZCBleHBsaWNpdCBCSCBwcm90ZWN0aW9uLAp3aGlsZSBtcGxzX291dHB1dCgpIGNh biBiZSBjYWxsZWQgZnJvbSBwcm9jZXNzIGNvbnRleHQgd2l0aCBzb2Z0aXJxcwplbmFibGVkLgoK V2hlbiBtcGxzX291dHB1dCgpIGlzIGNhbGxlZCBmcm9tIHByb2Nlc3MgY29udGV4dCwgd2l0aCBz b2Z0aXJxcwplbmFibGVkLCB3ZSBjYW4gYmUgcHJlZW1wdGVkIGJ5IGEgc29mdGlycSBhdCBhbnkg dGltZSwgYW5kIFJDVS1iaApjb25zaWRlcnMgdGhlIGNvbXBsZXRpb24gb2YgYSBzb2Z0aXJxIGFz IHNpZ25hbGluZyB0aGUgZW5kIG9mIGFueQpwZW5kaW5nIHJlYWQtc2lkZSBjcml0aWNhbCBzZWN0 aW9ucywgc28gaWYgd2UgZG8gZ2V0IGEgc29mdGlycQp3aGlsZSB3ZSBhcmUgaW4gdGhlIHBhcnQg b2YgbmVpZ2hfeG1pdCgpIHRoYXQgZXhwZWN0cyB0byBiZSBydW4gaW5zaWRlCmFuIFJDVS1iaCBy ZWFkIHNpZGUgY3JpdGljYWwgc2VjdGlvbiwgd2UgY2FuIGVuZCB1cCB3aXRoIGFuIHVuZXhwZWN0 ZWQKUkNVIGdyYWNlIHBlcmlvZCBydW5uaW5nIHJpZ2h0IGluIHRoZSBtaWRkbGUgb2YgdGhhdCBj cml0aWNhbCBzZWN0aW9uLAptYWtpbmcgdGhpbmdzIGdvIGJvb20uCgpUaGlzIHBhdGNoIGZpeGVz IHRoaXMgaW1wZWRhbmNlIG1pc21hdGNoIGluIHRoZSBjYWxsZWUsIGJ5IG1ha2luZwpuZWlnaF94 bWl0KCkgYWx3YXlzIHRha2UgcmN1X3JlYWRfeyx1bn1sb2NrX2JoKCkgYXJvdW5kIHRoZSBjb2Rl IHRoYXQKZXhwZWN0cyB0byBiZSB0cmVhdGVkIGFzIGFuIFJDVS1iaCByZWFkIHNpZGUgY3JpdGlj YWwgc2VjdGlvbiwgYXMgdGhpcwpzZWVtcyBhIHNhZmVyIG9wdGlvbiB0aGFuIGZpeGluZyBpdCBp biB0aGUgY2FsbGVycy4KCkZpeGVzOiA0ZmQzZDdkOWU4NjhmICgibmVpZ2g6IEFkZCBoZWxwZXIg ZnVuY3Rpb24gbmVpZ2hfeG1pdCIpClNpZ25lZC1vZmYtYnk6IERhdmlkIEJhcnJvc28gPGRiYXJy b3NvQGZhc3RseS5jb20+ClNpZ25lZC1vZmYtYnk6IExlbm5lcnQgQnV5dGVuaGVrIDxsYnV5dGVu aGVrQGZhc3RseS5jb20+CkFja2VkLWJ5OiBEYXZpZCBBaGVybiA8ZHNhQGN1bXVsdXNuZXR3b3Jr cy5jb20+CkFja2VkLWJ5OiBSb2JlcnQgU2hlYXJtYW4gPHJzaGVhcm1hQGJyb2NhZGUuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2NvcmUvbmVpZ2hib3VyLmMgfCA2ICsrKysrLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL25laWdoYm91ci5j IGIvbmV0L2NvcmUvbmVpZ2hib3VyLmMKaW5kZXggZjE4YWU5MS4uNzY5Y2VjZSAxMDA2NDQKLS0t IGEvbmV0L2NvcmUvbmVpZ2hib3VyLmMKKysrIGIvbmV0L2NvcmUvbmVpZ2hib3VyLmMKQEAgLTI0 NjcsMTMgKzI0NjcsMTcgQEAgaW50IG5laWdoX3htaXQoaW50IGluZGV4LCBzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2LAogCQl0YmwgPSBuZWlnaF90YWJsZXNbaW5kZXhdOwogCQlpZiAoIXRibCkKIAkJ CWdvdG8gb3V0OworCQlyY3VfcmVhZF9sb2NrX2JoKCk7CiAJCW5laWdoID0gX19uZWlnaF9sb29r dXBfbm9yZWYodGJsLCBhZGRyLCBkZXYpOwogCQlpZiAoIW5laWdoKQogCQkJbmVpZ2ggPSBfX25l aWdoX2NyZWF0ZSh0YmwsIGFkZHIsIGRldiwgZmFsc2UpOwogCQllcnIgPSBQVFJfRVJSKG5laWdo KTsKLQkJaWYgKElTX0VSUihuZWlnaCkpCisJCWlmIChJU19FUlIobmVpZ2gpKSB7CisJCQlyY3Vf cmVhZF91bmxvY2tfYmgoKTsKIAkJCWdvdG8gb3V0X2tmcmVlX3NrYjsKKwkJfQogCQllcnIgPSBu ZWlnaC0+b3V0cHV0KG5laWdoLCBza2IpOworCQlyY3VfcmVhZF91bmxvY2tfYmgoKTsKIAl9CiAJ ZWxzZSBpZiAoaW5kZXggPT0gTkVJR0hfTElOS19UQUJMRSkgewogCQllcnIgPSBkZXZfaGFyZF9o ZWFkZXIoc2tiLCBkZXYsIG50b2hzKHNrYi0+cHJvdG9jb2wpLAotLSAKMi4xLjAKCgpGcm9tIDAy NmRmMjg5ZmIyNGIzN2U4ODJjZTIyY2JmZjBmMDAzOTJjMzdmZmUgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEJhc2lsIEd1bm4gPGJhc2lsQHBhY2FidW5nYS5jb20+CkRhdGU6IFRodSwg MTYgSnVuIDIwMTYgMDk6NDI6MzAgLTA3MDAKU3ViamVjdDogW1BBVENIIDEzLzEzXSBBWC4yNTog Q2xvc2Ugc29ja2V0IGNvbm5lY3Rpb24gb24gc2Vzc2lvbiBjb21wbGV0aW9uCgpbIFVwc3RyZWFt IGNvbW1pdCA0YTdkOTllYTFiMjc3MzQ1NThmZWI2ODMzZjE4MGNkMzhhMTU5OTQwIF0KCkEgc29j a2V0IGNvbm5lY3Rpb24gbWFkZSBpbiBheC4yNSBpcyBub3QgY2xvc2VkIHdoZW4gc2Vzc2lvbiBp cwpjb21wbGV0ZWQuICBUaGUgaGVhcnRiZWF0IHRpbWVyIGlzIHN0b3BwZWQgcHJlbWF0dXJlbHkg YW5kIHRoaXMgaXMKd2hlcmUgdGhlIHNvY2tldCBnZXRzIGNsb3NlZC4gQWxsb3cgaGVhdGJlYXQg dGltZXIgdG8gcnVuIHRvIGNsb3NlCnNvY2tldC4gU3ltcHRvbSBvY2N1cnMgaW4ga2VybmVscyA+ PSA0LjIuMAoKT3JpZ2luYWxseSBzZW50IDYvMTUvMjAxNi4gUmVzZW5kIHdpdGggZGlzdHJpYnV0 aW9uIGxpc3QgbWF0Y2hpbmcKc2NyaXB0cy9tYWludGFpbmVyLnBsIG91dHB1dC4KClNpZ25lZC1v ZmYtYnk6IEJhc2lsIEd1bm4gPGJhc2lsQHBhY2FidW5nYS5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYXgyNS9hZl9heDI1 LmMgICAgICAgIHwgMyArKy0KIG5ldC9heDI1L2F4MjVfZHNfdGltZXIuYyAgfCA1ICsrKystCiBu ZXQvYXgyNS9heDI1X3N0ZF90aW1lci5jIHwgNSArKysrLQogbmV0L2F4MjUvYXgyNV9zdWJyLmMg ICAgICB8IDMgKystCiA0IGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2F4MjUvYWZfYXgyNS5jIGIvbmV0L2F4MjUvYWZfYXgy NS5jCmluZGV4IGZiZDBhY2YuLjJmZGViYWIgMTAwNjQ0Ci0tLSBhL25ldC9heDI1L2FmX2F4MjUu YworKysgYi9uZXQvYXgyNS9hZl9heDI1LmMKQEAgLTk3Niw3ICs5NzYsOCBAQCBzdGF0aWMgaW50 IGF4MjVfcmVsZWFzZShzdHJ1Y3Qgc29ja2V0ICpzb2NrKQogCQkJcmVsZWFzZV9zb2NrKHNrKTsK IAkJCWF4MjVfZGlzY29ubmVjdChheDI1LCAwKTsKIAkJCWxvY2tfc29jayhzayk7Ci0JCQlheDI1 X2Rlc3Ryb3lfc29ja2V0KGF4MjUpOworCQkJaWYgKCFzb2NrX2ZsYWcoYXgyNS0+c2ssIFNPQ0tf REVTVFJPWSkpCisJCQkJYXgyNV9kZXN0cm95X3NvY2tldChheDI1KTsKIAkJCWJyZWFrOwogCiAJ CWNhc2UgQVgyNV9TVEFURV8zOgpkaWZmIC0tZ2l0IGEvbmV0L2F4MjUvYXgyNV9kc190aW1lci5j IGIvbmV0L2F4MjUvYXgyNV9kc190aW1lci5jCmluZGV4IDk1MWNkNTcuLjUyMzdkZmYgMTAwNjQ0 Ci0tLSBhL25ldC9heDI1L2F4MjVfZHNfdGltZXIuYworKysgYi9uZXQvYXgyNS9heDI1X2RzX3Rp bWVyLmMKQEAgLTEwMiw2ICsxMDIsNyBAQCB2b2lkIGF4MjVfZHNfaGVhcnRiZWF0X2V4cGlyeShh eDI1X2NiICpheDI1KQogCXN3aXRjaCAoYXgyNS0+c3RhdGUpIHsKIAogCWNhc2UgQVgyNV9TVEFU RV8wOgorCWNhc2UgQVgyNV9TVEFURV8yOgogCQkvKiBNYWdpYyBoZXJlOiBJZiB3ZSBsaXN0ZW4o KSBhbmQgYSBuZXcgbGluayBkaWVzIGJlZm9yZSBpdAogCQkgICBpcyBhY2NlcHRlZCgpIGl0IGlz bid0ICdkZWFkJyBzbyBkb2Vzbid0IGdldCByZW1vdmVkLiAqLwogCQlpZiAoIXNrIHx8IHNvY2tf ZmxhZyhzaywgU09DS19ERVNUUk9ZKSB8fApAQCAtMTExLDYgKzExMiw3IEBAIHZvaWQgYXgyNV9k c19oZWFydGJlYXRfZXhwaXJ5KGF4MjVfY2IgKmF4MjUpCiAJCQkJc29ja19ob2xkKHNrKTsKIAkJ CQlheDI1X2Rlc3Ryb3lfc29ja2V0KGF4MjUpOwogCQkJCWJoX3VubG9ja19zb2NrKHNrKTsKKwkJ CQkvKiBVbmdyYWIgc29ja2V0IGFuZCBkZXN0cm95IGl0ICovCiAJCQkJc29ja19wdXQoc2spOwog CQkJfSBlbHNlCiAJCQkJYXgyNV9kZXN0cm95X3NvY2tldChheDI1KTsKQEAgLTIxMyw3ICsyMTUs OCBAQCB2b2lkIGF4MjVfZHNfdDFfdGltZW91dChheDI1X2NiICpheDI1KQogCWNhc2UgQVgyNV9T VEFURV8yOgogCQlpZiAoYXgyNS0+bjJjb3VudCA9PSBheDI1LT5uMikgewogCQkJYXgyNV9zZW5k X2NvbnRyb2woYXgyNSwgQVgyNV9ESVNDLCBBWDI1X1BPTExPTiwgQVgyNV9DT01NQU5EKTsKLQkJ CWF4MjVfZGlzY29ubmVjdChheDI1LCBFVElNRURPVVQpOworCQkJaWYgKCFzb2NrX2ZsYWcoYXgy NS0+c2ssIFNPQ0tfREVTVFJPWSkpCisJCQkJYXgyNV9kaXNjb25uZWN0KGF4MjUsIEVUSU1FRE9V VCk7CiAJCQlyZXR1cm47CiAJCX0gZWxzZSB7CiAJCQlheDI1LT5uMmNvdW50Kys7CmRpZmYgLS1n aXQgYS9uZXQvYXgyNS9heDI1X3N0ZF90aW1lci5jIGIvbmV0L2F4MjUvYXgyNV9zdGRfdGltZXIu YwppbmRleCAwMDQ0NjdjOS4uMmMwZDZlZiAxMDA2NDQKLS0tIGEvbmV0L2F4MjUvYXgyNV9zdGRf dGltZXIuYworKysgYi9uZXQvYXgyNS9heDI1X3N0ZF90aW1lci5jCkBAIC0zOCw2ICszOCw3IEBA IHZvaWQgYXgyNV9zdGRfaGVhcnRiZWF0X2V4cGlyeShheDI1X2NiICpheDI1KQogCiAJc3dpdGNo IChheDI1LT5zdGF0ZSkgewogCWNhc2UgQVgyNV9TVEFURV8wOgorCWNhc2UgQVgyNV9TVEFURV8y OgogCQkvKiBNYWdpYyBoZXJlOiBJZiB3ZSBsaXN0ZW4oKSBhbmQgYSBuZXcgbGluayBkaWVzIGJl Zm9yZSBpdAogCQkgICBpcyBhY2NlcHRlZCgpIGl0IGlzbid0ICdkZWFkJyBzbyBkb2Vzbid0IGdl dCByZW1vdmVkLiAqLwogCQlpZiAoIXNrIHx8IHNvY2tfZmxhZyhzaywgU09DS19ERVNUUk9ZKSB8 fApAQCAtNDcsNiArNDgsNyBAQCB2b2lkIGF4MjVfc3RkX2hlYXJ0YmVhdF9leHBpcnkoYXgyNV9j YiAqYXgyNSkKIAkJCQlzb2NrX2hvbGQoc2spOwogCQkJCWF4MjVfZGVzdHJveV9zb2NrZXQoYXgy NSk7CiAJCQkJYmhfdW5sb2NrX3NvY2soc2spOworCQkJCS8qIFVuZ3JhYiBzb2NrZXQgYW5kIGRl c3Ryb3kgaXQgKi8KIAkJCQlzb2NrX3B1dChzayk7CiAJCQl9IGVsc2UKIAkJCQlheDI1X2Rlc3Ry b3lfc29ja2V0KGF4MjUpOwpAQCAtMTQ0LDcgKzE0Niw4IEBAIHZvaWQgYXgyNV9zdGRfdDF0aW1l cl9leHBpcnkoYXgyNV9jYiAqYXgyNSkKIAljYXNlIEFYMjVfU1RBVEVfMjoKIAkJaWYgKGF4MjUt Pm4yY291bnQgPT0gYXgyNS0+bjIpIHsKIAkJCWF4MjVfc2VuZF9jb250cm9sKGF4MjUsIEFYMjVf RElTQywgQVgyNV9QT0xMT04sIEFYMjVfQ09NTUFORCk7Ci0JCQlheDI1X2Rpc2Nvbm5lY3QoYXgy NSwgRVRJTUVET1VUKTsKKwkJCWlmICghc29ja19mbGFnKGF4MjUtPnNrLCBTT0NLX0RFU1RST1kp KQorCQkJCWF4MjVfZGlzY29ubmVjdChheDI1LCBFVElNRURPVVQpOwogCQkJcmV0dXJuOwogCQl9 IGVsc2UgewogCQkJYXgyNS0+bjJjb3VudCsrOwpkaWZmIC0tZ2l0IGEvbmV0L2F4MjUvYXgyNV9z dWJyLmMgYi9uZXQvYXgyNS9heDI1X3N1YnIuYwppbmRleCAzYjc4ZTg0Li42NTVhN2Q0IDEwMDY0 NAotLS0gYS9uZXQvYXgyNS9heDI1X3N1YnIuYworKysgYi9uZXQvYXgyNS9heDI1X3N1YnIuYwpA QCAtMjY0LDcgKzI2NCw4IEBAIHZvaWQgYXgyNV9kaXNjb25uZWN0KGF4MjVfY2IgKmF4MjUsIGlu dCByZWFzb24pCiB7CiAJYXgyNV9jbGVhcl9xdWV1ZXMoYXgyNSk7CiAKLQlheDI1X3N0b3BfaGVh cnRiZWF0KGF4MjUpOworCWlmICghc29ja19mbGFnKGF4MjUtPnNrLCBTT0NLX0RFU1RST1kpKQor CQlheDI1X3N0b3BfaGVhcnRiZWF0KGF4MjUpOwogCWF4MjVfc3RvcF90MXRpbWVyKGF4MjUpOwog CWF4MjVfc3RvcF90MnRpbWVyKGF4MjUpOwogCWF4MjVfc3RvcF90M3RpbWVyKGF4MjUpOwotLSAK Mi4xLjAKCg== ----Next_Part(Tue_Jul__5_22_02_12_2016_080)----