From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8836 invoked by alias); 25 Oct 2014 14:24:17 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 8824 invoked by uid 89); 25 Oct 2014 14:24:16 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.8 required=5.0 tests=AWL,BAYES_00,KAM_STOCKGEN,RCVD_IN_DNSWL_LOW,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-oi0-f42.google.com Received: from mail-oi0-f42.google.com (HELO mail-oi0-f42.google.com) (209.85.218.42) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Sat, 25 Oct 2014 14:24:12 +0000 Received: by mail-oi0-f42.google.com with SMTP id a141so1556873oig.29 for ; Sat, 25 Oct 2014 07:24:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=IYx5xGgPVpMSPS8Su9CR1ErD3BNLDnIhkMngXO1SXqs=; b=mO7Crr7ivI7199UufakJyoRF2/aEMXDYpBkb+yD1mF8nN0xurGRBeFxbxIF0hEjXOn YjuRreGBRsVTNcCIa6Su5b8Ew+dzKbT0vxiS1+LBwOn4DsEGd53PuxLD3XHLJoFrNRiY rcF+wG4U4VBU9uYFb3NUWV7zcf9Y30i0y2xzLqX0WSL7PXXOjGsRiQ0XPXkkg/IrMA79 L+XmTL9iQKxDO/ozcy1C8DB99nU0Wc0RwvsrVSew7so8lowrYivxGcy1zmlumD1w1Vyk zu24wTOfQduX7KV3iGgD4ij2RJHzUbmFDIMBjcke5vn1ZLSR79gz58MJ3SkgObWWQ5nq BAzA== X-Gm-Message-State: ALoCoQk/MOz7imb9C5epiTrczWxrVFKnY8EdWy54pqv4C88lY8WGYNpDIKrOmiadpE6LMcKpePeP MIME-Version: 1.0 X-Received: by 10.60.47.40 with SMTP id a8mr9769528oen.18.1414247050302; Sat, 25 Oct 2014 07:24:10 -0700 (PDT) Received: by 10.202.197.13 with HTTP; Sat, 25 Oct 2014 07:24:10 -0700 (PDT) Date: Sat, 25 Oct 2014 14:24:00 -0000 Message-ID: Subject: [PATCH v4] Make chained function calls in expressions work From: Siva Chandra To: gdb-patches , Ulrich Weigand Content-Type: multipart/mixed; boundary=001a11c209be0f13110506400d82 X-IsSubscribed: yes X-SW-Source: 2014-10/txt/msg00697.txt.bz2 --001a11c209be0f13110506400d82 Content-Type: text/plain; charset=UTF-8 Content-length: 1667 This is a follow up to the thread here: https://sourceware.org/ml/gdb-patches/2014-10/msg00000.html I have made all the suggested changes which now eliminates the need for two patches in this set. The single patch is attached. gdb/ChangeLog: 2014-10-25 Siva Chandra Reddy * eval.c (evaluate_expression): Cleanup stack mirrors that might have been created. (add_value_to_expression_stack, skip_current_expression_stack): New functions. * expression.h (struct expression): New field 'on_stack_temporaries_vec'. * gdbtypes.c (class_or_union_p): New function. * gdbtypes.h (class_or_union_p): Declare. * infcall.c (call_function_by_hand): New argument EXP of type struct expression *. Setup stack temporaries for return values of class type. (get_return_value_from_memory): New function. * infcall.h (call_function_by_hand): Update signature and all callers. * valarith.c (value_x_binop): New argument EXP of type struct expression *. (value_x_unop): Likewise. * value.c (write_value_to_memory): New function. (value_fetch_lazy): Fix its description comment. * value.h (add_value_to_expression_stack) (skip_current_expression_stack, write_value_to_memory): Declare. (value_x_binop, value_x_unop): Update signature and all callers. gdb/testsuite/ChangeLog: 2014-10-25 Siva Chandra Reddy * gdb.cp/chained-calls.cc: New file. * gdb.cp/chained-calls.exp: New file. * gdb.cp/smartp.exp: Remove KFAIL from c2->inta. --001a11c209be0f13110506400d82 Content-Type: text/plain; charset=US-ASCII; name="chained-calls-v4.txt" Content-Disposition: attachment; filename="chained-calls-v4.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i1p21z170 Content-length: 53172 ZGlmZiAtLWdpdCBhL2dkYi9hZGEtbGFuZy5jIGIvZ2RiL2FkYS1sYW5nLmMK aW5kZXggNTc5M2NkMi4uMzJkYTcwNSAxMDA2NDQKLS0tIGEvZ2RiL2FkYS1s YW5nLmMKKysrIGIvZ2RiL2FkYS1sYW5nLmMKQEAgLTEwMjk3LDcgKzEwMjk3 LDcgQEAgYWRhX2V2YWx1YXRlX3N1YmV4cCAoc3RydWN0IHR5cGUgKmV4cGVj dF90eXBlLCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAogCQlyZXR1cm4gYWxs b2NhdGVfdmFsdWUgKFRZUEVfVEFSR0VUX1RZUEUgKHJ0eXBlKSk7CiAJICAg ICAgcmV0dXJuIGFsbG9jYXRlX3ZhbHVlIChydHlwZSk7CiAJICAgIH0KLSAg ICAgICAgICByZXR1cm4gY2FsbF9mdW5jdGlvbl9ieV9oYW5kIChhcmd2ZWNb MF0sIG5hcmdzLCBhcmd2ZWMgKyAxKTsKKyAgICAgICAgICByZXR1cm4gY2Fs bF9mdW5jdGlvbl9ieV9oYW5kIChhcmd2ZWNbMF0sIG5hcmdzLCBhcmd2ZWMg KyAxLCBleHApOwogCWNhc2UgVFlQRV9DT0RFX0lOVEVSTkFMX0ZVTkNUSU9O OgogCSAgaWYgKG5vc2lkZSA9PSBFVkFMX0FWT0lEX1NJREVfRUZGRUNUUykK IAkgICAgLyogV2UgZG9uJ3Qga25vdyBhbnl0aGluZyBhYm91dCB3aGF0IHRo ZSBpbnRlcm5hbApkaWZmIC0tZ2l0IGEvZ2RiL2VsZnJlYWQuYyBiL2dkYi9l bGZyZWFkLmMKaW5kZXggMTlhYWVkMy4uZGVlNGFiOSAxMDA2NDQKLS0tIGEv Z2RiL2VsZnJlYWQuYworKysgYi9nZGIvZWxmcmVhZC5jCkBAIC05NTUsNyAr OTU1LDcgQEAgZWxmX2dudV9pZnVuY19yZXNvbHZlX2FkZHIgKHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoLCBDT1JFX0FERFIgcGMpCiAgIC8qIFNUVF9HTlVf SUZVTkMgcmVzb2x2ZXIgZnVuY3Rpb25zIGhhdmUgbm8gcGFyYW1ldGVycy4g IEZVTkNUSU9OIGlzIHRoZQogICAgICBmdW5jdGlvbiBlbnRyeSBhZGRyZXNz LiAgQUREUkVTUyBtYXkgYmUgYSBmdW5jdGlvbiBkZXNjcmlwdG9yLiAgKi8K IAotICBhZGRyZXNzX3ZhbCA9IGNhbGxfZnVuY3Rpb25fYnlfaGFuZCAoZnVu Y3Rpb24sIDAsIE5VTEwpOworICBhZGRyZXNzX3ZhbCA9IGNhbGxfZnVuY3Rp b25fYnlfaGFuZCAoZnVuY3Rpb24sIDAsIE5VTEwsIE5VTEwpOwogICBhZGRy ZXNzID0gdmFsdWVfYXNfYWRkcmVzcyAoYWRkcmVzc192YWwpOwogICBhZGRy ZXNzID0gZ2RiYXJjaF9jb252ZXJ0X2Zyb21fZnVuY19wdHJfYWRkciAoZ2Ri YXJjaCwgYWRkcmVzcywKIAkJCQkJCSZjdXJyZW50X3RhcmdldCk7CmRpZmYg LS1naXQgYS9nZGIvZXZhbC5jIGIvZ2RiL2V2YWwuYwppbmRleCA1OTA2NzQ0 Li5kMWNjMzA5IDEwMDY0NAotLS0gYS9nZGIvZXZhbC5jCisrKyBiL2dkYi9l dmFsLmMKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJ2YWxwcmludC5o IgogI2luY2x1ZGUgImdkYl9vYnN0YWNrLmgiCiAjaW5jbHVkZSAib2JqZmls ZXMuaCIKKyNpbmNsdWRlICJjb21tb24vdmVjLmgiCiAjaW5jbHVkZSA8Y3R5 cGUuaD4KIAogLyogVGhpcyBpcyBkZWZpbmVkIGluIHZhbG9wcy5jICovCkBA IC0xMzYsOSArMTM3LDcyIEBAIHBhcnNlX3RvX2NvbW1hX2FuZF9ldmFsIChj b25zdCBjaGFyICoqZXhwcCkKIHN0cnVjdCB2YWx1ZSAqCiBldmFsdWF0ZV9l eHByZXNzaW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwKQogewotICBpbnQg cGMgPSAwOworICBpbnQgaSwgcGMgPSAwOworICBzdHJ1Y3QgdmFsdWUgKnJl cywgKnZhbDsKKyAgc3RydWN0IGNsZWFudXAgKmNsZWFudXBzOworICB2YWx1 ZV92ZWMgKnZlYyA9IGV4cC0+b25fc3RhY2tfdGVtcG9yYXJpZXNfdmVjOwor CisgIGNsZWFudXBzID0gbWFrZV9jbGVhbnVwIChWRUNfY2xlYW51cCAodmFs dWVfcHRyKSwKKwkJCSAgICZleHAtPm9uX3N0YWNrX3RlbXBvcmFyaWVzX3Zl Yyk7CisgIHJlcyA9IGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAs ICZwYywgRVZBTF9OT1JNQUwpOworICAvKiBJZiB0aGUgcmVzdWx0IGlzIG9u IHRoZSBleHByZXNzaW9uIHN0YWNrLCBmZXRjaCBpdCBhbmQgbWFyayBpdCBh cworICAgICBub3RfbHZhbC4gICovCisgIGZvciAoaSA9IDA7IFZFQ19pdGVy YXRlICh2YWx1ZV9wdHIsIHZlYywgMSwgdmFsKTsgaSsrKQorICAgIHsKKyAg ICAgIGlmIChyZXMgPT0gdmFsKQorCXsKKwkgIGlmICh2YWx1ZV9sYXp5IChy ZXMpKQorCSAgICB2YWx1ZV9mZXRjaF9sYXp5IChyZXMpOworCSAgVkFMVUVf TFZBTCAocmVzKSA9IG5vdF9sdmFsOworCSAgYnJlYWs7CisJfQorICAgIH0K KyAgZG9fY2xlYW51cHMgKGNsZWFudXBzKTsKKworICByZXR1cm4gcmVzOwor fQorCisvKiBBZGQgdmFsdWUgViB0byB0aGUgZXhwcmVzc2lvbiBzdGFjayBv ZiBleHByZXNzaW9uIEVYUC4gICovCisKK3ZvaWQKK2FkZF92YWx1ZV90b19l eHByZXNzaW9uX3N0YWNrIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBzdHJ1 Y3QgdmFsdWUgKnYpCit7CisgIGdkYl9hc3NlcnQgKGV4cCAhPSBOVUxMKTsK KyAgVkVDX3NhZmVfcHVzaCAodmFsdWVfcHRyLCBleHAtPm9uX3N0YWNrX3Rl bXBvcmFyaWVzX3ZlYywgdik7Cit9CisKKy8qIFJldHVybiBhbiBhZGRyZXNz IGFmdGVyIHNraXBwaW5nIG92ZXIgdGhlIGN1cnJlbnQgdmFsdWVzIG9uIHRo ZSBleHByZXNzaW9uCisgICBzdGFjayBvZiBFWFAuICBTUCBpcyB0aGUgY3Vy cmVudCBzdGFjayBmcmFtZSBwb2ludGVyLiAgTm9uLXplcm8gRE9XTldBUkQK KyAgIGluZGljYXRlcyB0aGF0IHRoZSBzdGFjayBncm93cyBkb3dud2FyZHMv YmFja3dhcmRzLiAgKi8KIAotICByZXR1cm4gZXZhbHVhdGVfc3ViZXhwIChO VUxMX1RZUEUsIGV4cCwgJnBjLCBFVkFMX05PUk1BTCk7CitDT1JFX0FERFIK K3NraXBfY3VycmVudF9leHByZXNzaW9uX3N0YWNrIChzdHJ1Y3QgZXhwcmVz c2lvbiAqZXhwLCBDT1JFX0FERFIgc3AsCisJCQkgICAgICAgaW50IGRvd253 YXJkKQoreworICBDT1JFX0FERFIgYWRkciA9IHNwOworCisgIGdkYl9hc3Nl cnQgKGV4cCAhPSBOVUxMKTsKKyAgaWYgKCFWRUNfZW1wdHkgKHZhbHVlX3B0 ciwgZXhwLT5vbl9zdGFja190ZW1wb3Jhcmllc192ZWMpKQorICAgIHsKKyAg ICAgIHN0cnVjdCB2YWx1ZSAqdiA9IFZFQ19sYXN0ICh2YWx1ZV9wdHIsIGV4 cC0+b25fc3RhY2tfdGVtcG9yYXJpZXNfdmVjKTsKKyAgICAgIENPUkVfQURE UiB2YWxfYWRkciA9IHZhbHVlX2FkZHJlc3MgKHYpOworCisgICAgICBpZiAo ZG93bndhcmQpCisJeworCSAgZ2RiX2Fzc2VydCAoc3AgPj0gdmFsX2FkZHIp OworCSAgYWRkciA9IHZhbF9hZGRyOworCX0KKyAgICAgIGVsc2UKKwl7CisJ ICBzdHJ1Y3QgdHlwZSAqdHlwZTsKKworCSAgZ2RiX2Fzc2VydCAoc3AgPD0g dmFsX2FkZHIpOworCSAgdHlwZSA9IHZhbHVlX3R5cGUgKHYpOworCSAgYWRk ciA9IHZhbF9hZGRyICsgVFlQRV9MRU5HVEggKHR5cGUpOworCX0KKyAgICB9 CisKKyAgcmV0dXJuIGFkZHI7CiB9CiAKIC8qIEV2YWx1YXRlIGFuIGV4cHJl c3Npb24sIGF2b2lkaW5nIGFsbCBtZW1vcnkgcmVmZXJlbmNlcwpAQCAtMTE0 MywxMiArMTIwNywxMiBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0 cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKIAlhcmd2ZWNbM10gPSB2YWx1ZV9m cm9tX2xvbmdlc3QgKGxvbmdfdHlwZSwgc2VsZWN0b3IpOwogCWFyZ3ZlY1s0 XSA9IDA7CiAKLQlyZXQgPSBjYWxsX2Z1bmN0aW9uX2J5X2hhbmQgKGFyZ3Zl Y1swXSwgMywgYXJndmVjICsgMSk7CisJcmV0ID0gY2FsbF9mdW5jdGlvbl9i eV9oYW5kIChhcmd2ZWNbMF0sIDMsIGFyZ3ZlYyArIDEsIGV4cCk7CiAJaWYg KGdudV9ydW50aW1lKQogCSAgewogCSAgICAvKiBGdW5jdGlvbiBvYmpjX21z Z19sb29rdXAgcmV0dXJucyBhIHBvaW50ZXIuICAqLwogCSAgICBhcmd2ZWNb MF0gPSByZXQ7Ci0JICAgIHJldCA9IGNhbGxfZnVuY3Rpb25fYnlfaGFuZCAo YXJndmVjWzBdLCAzLCBhcmd2ZWMgKyAxKTsKKwkgICAgcmV0ID0gY2FsbF9m dW5jdGlvbl9ieV9oYW5kIChhcmd2ZWNbMF0sIDMsIGFyZ3ZlYyArIDEsIGV4 cCk7CiAJICB9CiAJaWYgKHZhbHVlX2FzX2xvbmcgKHJldCkgPT0gMCkKIAkg IGVycm9yIChfKCJUYXJnZXQgZG9lcyBub3QgcmVzcG9uZCB0byB0aGlzIG1l c3NhZ2Ugc2VsZWN0b3IuIikpOwpAQCAtMTE2NSwxMSArMTIyOSwxMSBAQCBl dmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3Rf dHlwZSwKIAlhcmd2ZWNbM10gPSB2YWx1ZV9mcm9tX2xvbmdlc3QgKGxvbmdf dHlwZSwgc2VsZWN0b3IpOwogCWFyZ3ZlY1s0XSA9IDA7CiAKLQlyZXQgPSBj YWxsX2Z1bmN0aW9uX2J5X2hhbmQgKGFyZ3ZlY1swXSwgMywgYXJndmVjICsg MSk7CisJcmV0ID0gY2FsbF9mdW5jdGlvbl9ieV9oYW5kIChhcmd2ZWNbMF0s IDMsIGFyZ3ZlYyArIDEsIGV4cCk7CiAJaWYgKGdudV9ydW50aW1lKQogCSAg ewogCSAgICBhcmd2ZWNbMF0gPSByZXQ7Ci0JICAgIHJldCA9IGNhbGxfZnVu Y3Rpb25fYnlfaGFuZCAoYXJndmVjWzBdLCAzLCBhcmd2ZWMgKyAxKTsKKwkg ICAgcmV0ID0gY2FsbF9mdW5jdGlvbl9ieV9oYW5kIChhcmd2ZWNbMF0sIDMs IGFyZ3ZlYyArIDEsIGV4cCk7CiAJICB9CiAKIAkvKiByZXQgc2hvdWxkIG5v dyBiZSB0aGUgc2VsZWN0b3IuICAqLwpAQCAtMTMxMSwxMCArMTM3NSwxMCBA QCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBl Y3RfdHlwZSwKIAkgICAgZGVwcmVjYXRlZF9zZXRfdmFsdWVfdHlwZSAoYXJn dmVjWzBdLAogCQkJCSAgICAgICBsb29rdXBfcG9pbnRlcl90eXBlIChsb29r dXBfZnVuY3Rpb25fdHlwZSAodmFsdWVfdHlwZSAoYXJndmVjWzBdKSkpKTsK IAkgICAgYXJndmVjWzBdCi0JICAgICAgPSBjYWxsX2Z1bmN0aW9uX2J5X2hh bmQgKGFyZ3ZlY1swXSwgbmFyZ3MgKyAyLCBhcmd2ZWMgKyAxKTsKKwkgICAg ICA9IGNhbGxfZnVuY3Rpb25fYnlfaGFuZCAoYXJndmVjWzBdLCBuYXJncyAr IDIsIGFyZ3ZlYyArIDEsIGV4cCk7CiAJICB9CiAKLQlyZXQgPSBjYWxsX2Z1 bmN0aW9uX2J5X2hhbmQgKGFyZ3ZlY1swXSwgbmFyZ3MgKyAyLCBhcmd2ZWMg KyAxKTsKKwlyZXQgPSBjYWxsX2Z1bmN0aW9uX2J5X2hhbmQgKGFyZ3ZlY1sw XSwgbmFyZ3MgKyAyLCBhcmd2ZWMgKyAxLCBleHApOwogCXJldHVybiByZXQ7 CiAgICAgICB9CiAgICAgICBicmVhazsKQEAgLTE0MzEsNyArMTQ5NSw3IEBA IGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVj dF90eXBlLAogCQkgIHN0cnVjdCB2YWx1ZSAqdmFsdWUgPSBOVUxMOwogCQkg IFRSWV9DQVRDSCAoZXhjZXB0LCBSRVRVUk5fTUFTS19FUlJPUikKIAkJICAg IHsKLQkJICAgICAgdmFsdWUgPSB2YWx1ZV94X3Vub3AgKGFyZzIsIG9wLCBu b3NpZGUpOworCQkgICAgICB2YWx1ZSA9IHZhbHVlX3hfdW5vcCAoYXJnMiwg b3AsIG5vc2lkZSwgZXhwKTsKIAkJICAgIH0KIAogCQkgIGlmIChleGNlcHQu cmVhc29uIDwgMCkKQEAgLTE3MzQsNyArMTc5OCw3IEBAIGV2YWx1YXRlX3N1 YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAogCWNh c2UgVFlQRV9DT0RFX1hNRVRIT0Q6CiAJICByZXR1cm4gY2FsbF94bWV0aG9k IChhcmd2ZWNbMF0sIG5hcmdzLCBhcmd2ZWMgKyAxKTsKIAlkZWZhdWx0Ogot CSAgcmV0dXJuIGNhbGxfZnVuY3Rpb25fYnlfaGFuZCAoYXJndmVjWzBdLCBu YXJncywgYXJndmVjICsgMSk7CisJICByZXR1cm4gY2FsbF9mdW5jdGlvbl9i eV9oYW5kIChhcmd2ZWNbMF0sIG5hcmdzLCBhcmd2ZWMgKyAxLCBleHApOwog CX0KICAgICAgIC8qIHBhaTogRklYTUUgc2F2ZSB2YWx1ZSBmcm9tIGNhbGxf ZnVuY3Rpb25fYnlfaGFuZCwgdGhlbiBhZGp1c3QKIAkgcGMgYnkgYWRqdXN0 X2ZuX3BjIGlmICt2ZS4gICovCkBAIC0xODQ1LDcgKzE5MDksNyBAQCBldmFs dWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlw ZSwKIAkgIHN0cnVjdCB2YWx1ZSAqdmFsdWUgPSBOVUxMOwogCSAgVFJZX0NB VENIIChleGNlcHQsIFJFVFVSTl9NQVNLX0VSUk9SKQogCSAgICB7Ci0JICAg ICAgdmFsdWUgPSB2YWx1ZV94X3Vub3AgKGFyZzEsIG9wLCBub3NpZGUpOwor CSAgICAgIHZhbHVlID0gdmFsdWVfeF91bm9wIChhcmcxLCBvcCwgbm9zaWRl LCBleHApOwogCSAgICB9CiAKIAkgIGlmIChleGNlcHQucmVhc29uIDwgMCkK QEAgLTE5NDUsNyArMjAwOSw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFy ZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAogICAgICAgaWYgKG5vc2lk ZSA9PSBFVkFMX1NLSVApCiAJZ290byBub3NpZGVyZXQ7CiAgICAgICBpZiAo Ymlub3BfdXNlcl9kZWZpbmVkX3AgKG9wLCBhcmcxLCBhcmcyKSkKLQlyZXR1 cm4gdmFsdWVfeF9iaW5vcCAoYXJnMSwgYXJnMiwgb3AsIE9QX05VTEwsIG5v c2lkZSk7CisJcmV0dXJuIHZhbHVlX3hfYmlub3AgKGFyZzEsIGFyZzIsIG9w LCBPUF9OVUxMLCBub3NpZGUsIGV4cCk7CiAgICAgICBlbHNlCiAJcmV0dXJu IHZhbHVlX2NvbmNhdCAoYXJnMSwgYXJnMik7CiAKQEAgLTE5NTYsNyArMjAy MCw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUg KmV4cGVjdF90eXBlLAogICAgICAgaWYgKG5vc2lkZSA9PSBFVkFMX1NLSVAg fHwgbm9zaWRlID09IEVWQUxfQVZPSURfU0lERV9FRkZFQ1RTKQogCXJldHVy biBhcmcxOwogICAgICAgaWYgKGJpbm9wX3VzZXJfZGVmaW5lZF9wIChvcCwg YXJnMSwgYXJnMikpCi0JcmV0dXJuIHZhbHVlX3hfYmlub3AgKGFyZzEsIGFy ZzIsIG9wLCBPUF9OVUxMLCBub3NpZGUpOworCXJldHVybiB2YWx1ZV94X2Jp bm9wIChhcmcxLCBhcmcyLCBvcCwgT1BfTlVMTCwgbm9zaWRlLCBleHApOwog ICAgICAgZWxzZQogCXJldHVybiB2YWx1ZV9hc3NpZ24gKGFyZzEsIGFyZzIp OwogCkBAIC0xOTY4LDcgKzIwMzIsOCBAQCBldmFsdWF0ZV9zdWJleHBfc3Rh bmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKIAlyZXR1cm4gYXJn MTsKICAgICAgIG9wID0gZXhwLT5lbHRzW3BjICsgMV0ub3Bjb2RlOwogICAg ICAgaWYgKGJpbm9wX3VzZXJfZGVmaW5lZF9wIChvcCwgYXJnMSwgYXJnMikp Ci0JcmV0dXJuIHZhbHVlX3hfYmlub3AgKGFyZzEsIGFyZzIsIEJJTk9QX0FT U0lHTl9NT0RJRlksIG9wLCBub3NpZGUpOworCXJldHVybiB2YWx1ZV94X2Jp bm9wIChhcmcxLCBhcmcyLCBCSU5PUF9BU1NJR05fTU9ESUZZLCBvcCwgbm9z aWRlLAorCQkJICAgICAgZXhwKTsKICAgICAgIGVsc2UgaWYgKG9wID09IEJJ Tk9QX0FERCAmJiBwdHJtYXRoX3R5cGVfcCAoZXhwLT5sYW5ndWFnZV9kZWZu LAogCQkJCQkJICB2YWx1ZV90eXBlIChhcmcxKSkKIAkgICAgICAgJiYgaXNf aW50ZWdyYWxfdHlwZSAodmFsdWVfdHlwZSAoYXJnMikpKQpAQCAtMTk5OSw3 ICsyMDY0LDcgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3Qg dHlwZSAqZXhwZWN0X3R5cGUsCiAgICAgICBpZiAobm9zaWRlID09IEVWQUxf U0tJUCkKIAlnb3RvIG5vc2lkZXJldDsKICAgICAgIGlmIChiaW5vcF91c2Vy X2RlZmluZWRfcCAob3AsIGFyZzEsIGFyZzIpKQotCXJldHVybiB2YWx1ZV94 X2Jpbm9wIChhcmcxLCBhcmcyLCBvcCwgT1BfTlVMTCwgbm9zaWRlKTsKKwly ZXR1cm4gdmFsdWVfeF9iaW5vcCAoYXJnMSwgYXJnMiwgb3AsIE9QX05VTEws IG5vc2lkZSwgZXhwKTsKICAgICAgIGVsc2UgaWYgKHB0cm1hdGhfdHlwZV9w IChleHAtPmxhbmd1YWdlX2RlZm4sIHZhbHVlX3R5cGUgKGFyZzEpKQogCSAg ICAgICAmJiBpc19pbnRlZ3JhbF90eXBlICh2YWx1ZV90eXBlIChhcmcyKSkp CiAJcmV0dXJuIHZhbHVlX3B0cmFkZCAoYXJnMSwgdmFsdWVfYXNfbG9uZyAo YXJnMikpOwpAQCAtMjAxOCw3ICsyMDgzLDcgQEAgZXZhbHVhdGVfc3ViZXhw X3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgICAgICBp ZiAobm9zaWRlID09IEVWQUxfU0tJUCkKIAlnb3RvIG5vc2lkZXJldDsKICAg ICAgIGlmIChiaW5vcF91c2VyX2RlZmluZWRfcCAob3AsIGFyZzEsIGFyZzIp KQotCXJldHVybiB2YWx1ZV94X2Jpbm9wIChhcmcxLCBhcmcyLCBvcCwgT1Bf TlVMTCwgbm9zaWRlKTsKKwlyZXR1cm4gdmFsdWVfeF9iaW5vcCAoYXJnMSwg YXJnMiwgb3AsIE9QX05VTEwsIG5vc2lkZSwgZXhwKTsKICAgICAgIGVsc2Ug aWYgKHB0cm1hdGhfdHlwZV9wIChleHAtPmxhbmd1YWdlX2RlZm4sIHZhbHVl X3R5cGUgKGFyZzEpKQogCSAgICAgICAmJiBwdHJtYXRoX3R5cGVfcCAoZXhw LT5sYW5ndWFnZV9kZWZuLCB2YWx1ZV90eXBlIChhcmcyKSkpCiAJewpAQCAt MjA1MSw3ICsyMTE2LDcgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChz dHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgICAgICBpZiAobm9zaWRlID09 IEVWQUxfU0tJUCkKIAlnb3RvIG5vc2lkZXJldDsKICAgICAgIGlmIChiaW5v cF91c2VyX2RlZmluZWRfcCAob3AsIGFyZzEsIGFyZzIpKQotCXJldHVybiB2 YWx1ZV94X2Jpbm9wIChhcmcxLCBhcmcyLCBvcCwgT1BfTlVMTCwgbm9zaWRl KTsKKwlyZXR1cm4gdmFsdWVfeF9iaW5vcCAoYXJnMSwgYXJnMiwgb3AsIE9Q X05VTEwsIG5vc2lkZSwgZXhwKTsKICAgICAgIGVsc2UKIAl7CiAJICAvKiBJ ZiBFVkFMX0FWT0lEX1NJREVfRUZGRUNUUyBhbmQgd2UncmUgZGl2aWRpbmcg YnkgemVybywKQEAgLTIwOTQsNyArMjE1OSw3IEBAIGV2YWx1YXRlX3N1YmV4 cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAogICAgICAg aWYgKG5vc2lkZSA9PSBFVkFMX1NLSVApCiAJZ290byBub3NpZGVyZXQ7CiAg ICAgICBpZiAoYmlub3BfdXNlcl9kZWZpbmVkX3AgKG9wLCBhcmcxLCBhcmcy KSkKLQlyZXR1cm4gdmFsdWVfeF9iaW5vcCAoYXJnMSwgYXJnMiwgb3AsIE9Q X05VTEwsIG5vc2lkZSk7CisJcmV0dXJuIHZhbHVlX3hfYmlub3AgKGFyZzEs IGFyZzIsIG9wLCBPUF9OVUxMLCBub3NpZGUsIGV4cCk7CiAgICAgICBlbHNl CiAJewogCSAgLyogSWYgdGhlIHVzZXIgYXR0ZW1wdHMgdG8gc3Vic2NyaXB0 IHNvbWV0aGluZyB0aGF0IGlzIG5vdCBhbgpAQCAtMjE2MCw3ICsyMjI1LDcg QEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhw ZWN0X3R5cGUsCiAKIAkgIGlmIChiaW5vcF91c2VyX2RlZmluZWRfcCAob3As IGFyZzEsIGFyZzIpKQogCSAgICB7Ci0JICAgICAgYXJnMSA9IHZhbHVlX3hf Ymlub3AgKGFyZzEsIGFyZzIsIG9wLCBPUF9OVUxMLCBub3NpZGUpOworCSAg ICAgIGFyZzEgPSB2YWx1ZV94X2Jpbm9wIChhcmcxLCBhcmcyLCBvcCwgT1Bf TlVMTCwgbm9zaWRlLCBleHApOwogCSAgICB9CiAJICBlbHNlCiAJICAgIHsK QEAgLTIyNDQsNyArMjMwOSw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFy ZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAogICAgICAgaWYgKGJpbm9w X3VzZXJfZGVmaW5lZF9wIChvcCwgYXJnMSwgYXJnMikpCiAJewogCSAgYXJn MiA9IGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsIHBvcywgbm9z aWRlKTsKLQkgIHJldHVybiB2YWx1ZV94X2Jpbm9wIChhcmcxLCBhcmcyLCBv cCwgT1BfTlVMTCwgbm9zaWRlKTsKKwkgIHJldHVybiB2YWx1ZV94X2Jpbm9w IChhcmcxLCBhcmcyLCBvcCwgT1BfTlVMTCwgbm9zaWRlLCBleHApOwogCX0K ICAgICAgIGVsc2UKIAl7CkBAIC0yMjcxLDcgKzIzMzYsNyBAQCBldmFsdWF0 ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwK ICAgICAgIGlmIChiaW5vcF91c2VyX2RlZmluZWRfcCAob3AsIGFyZzEsIGFy ZzIpKQogCXsKIAkgIGFyZzIgPSBldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQ RSwgZXhwLCBwb3MsIG5vc2lkZSk7Ci0JICByZXR1cm4gdmFsdWVfeF9iaW5v cCAoYXJnMSwgYXJnMiwgb3AsIE9QX05VTEwsIG5vc2lkZSk7CisJICByZXR1 cm4gdmFsdWVfeF9iaW5vcCAoYXJnMSwgYXJnMiwgb3AsIE9QX05VTEwsIG5v c2lkZSwgZXhwKTsKIAl9CiAgICAgICBlbHNlCiAJewpAQCAtMjI5MCw3ICsy MzU1LDcgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlw ZSAqZXhwZWN0X3R5cGUsCiAJZ290byBub3NpZGVyZXQ7CiAgICAgICBpZiAo Ymlub3BfdXNlcl9kZWZpbmVkX3AgKG9wLCBhcmcxLCBhcmcyKSkKIAl7Ci0J ICByZXR1cm4gdmFsdWVfeF9iaW5vcCAoYXJnMSwgYXJnMiwgb3AsIE9QX05V TEwsIG5vc2lkZSk7CisJICByZXR1cm4gdmFsdWVfeF9iaW5vcCAoYXJnMSwg YXJnMiwgb3AsIE9QX05VTEwsIG5vc2lkZSwgZXhwKTsKIAl9CiAgICAgICBl bHNlCiAJewpAQCAtMjMwNyw3ICsyMzcyLDcgQEAgZXZhbHVhdGVfc3ViZXhw X3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAJZ290byBu b3NpZGVyZXQ7CiAgICAgICBpZiAoYmlub3BfdXNlcl9kZWZpbmVkX3AgKG9w LCBhcmcxLCBhcmcyKSkKIAl7Ci0JICByZXR1cm4gdmFsdWVfeF9iaW5vcCAo YXJnMSwgYXJnMiwgb3AsIE9QX05VTEwsIG5vc2lkZSk7CisJICByZXR1cm4g dmFsdWVfeF9iaW5vcCAoYXJnMSwgYXJnMiwgb3AsIE9QX05VTEwsIG5vc2lk ZSwgZXhwKTsKIAl9CiAgICAgICBlbHNlCiAJewpAQCAtMjMyNCw3ICsyMzg5 LDcgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAq ZXhwZWN0X3R5cGUsCiAJZ290byBub3NpZGVyZXQ7CiAgICAgICBpZiAoYmlu b3BfdXNlcl9kZWZpbmVkX3AgKG9wLCBhcmcxLCBhcmcyKSkKIAl7Ci0JICBy ZXR1cm4gdmFsdWVfeF9iaW5vcCAoYXJnMSwgYXJnMiwgb3AsIE9QX05VTEws IG5vc2lkZSk7CisJICByZXR1cm4gdmFsdWVfeF9iaW5vcCAoYXJnMSwgYXJn Miwgb3AsIE9QX05VTEwsIG5vc2lkZSwgZXhwKTsKIAl9CiAgICAgICBlbHNl CiAJewpAQCAtMjM0MSw3ICsyNDA2LDcgQEAgZXZhbHVhdGVfc3ViZXhwX3N0 YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAJZ290byBub3Np ZGVyZXQ7CiAgICAgICBpZiAoYmlub3BfdXNlcl9kZWZpbmVkX3AgKG9wLCBh cmcxLCBhcmcyKSkKIAl7Ci0JICByZXR1cm4gdmFsdWVfeF9iaW5vcCAoYXJn MSwgYXJnMiwgb3AsIE9QX05VTEwsIG5vc2lkZSk7CisJICByZXR1cm4gdmFs dWVfeF9iaW5vcCAoYXJnMSwgYXJnMiwgb3AsIE9QX05VTEwsIG5vc2lkZSwg ZXhwKTsKIAl9CiAgICAgICBlbHNlCiAJewpAQCAtMjM1OCw3ICsyNDIzLDcg QEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhw ZWN0X3R5cGUsCiAJZ290byBub3NpZGVyZXQ7CiAgICAgICBpZiAoYmlub3Bf dXNlcl9kZWZpbmVkX3AgKG9wLCBhcmcxLCBhcmcyKSkKIAl7Ci0JICByZXR1 cm4gdmFsdWVfeF9iaW5vcCAoYXJnMSwgYXJnMiwgb3AsIE9QX05VTEwsIG5v c2lkZSk7CisJICByZXR1cm4gdmFsdWVfeF9iaW5vcCAoYXJnMSwgYXJnMiwg b3AsIE9QX05VTEwsIG5vc2lkZSwgZXhwKTsKIAl9CiAgICAgICBlbHNlCiAJ ewpAQCAtMjM3NSw3ICsyNDQwLDcgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5k YXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAJZ290byBub3NpZGVy ZXQ7CiAgICAgICBpZiAoYmlub3BfdXNlcl9kZWZpbmVkX3AgKG9wLCBhcmcx LCBhcmcyKSkKIAl7Ci0JICByZXR1cm4gdmFsdWVfeF9iaW5vcCAoYXJnMSwg YXJnMiwgb3AsIE9QX05VTEwsIG5vc2lkZSk7CisJICByZXR1cm4gdmFsdWVf eF9iaW5vcCAoYXJnMSwgYXJnMiwgb3AsIE9QX05VTEwsIG5vc2lkZSwgZXhw KTsKIAl9CiAgICAgICBlbHNlCiAJewpAQCAtMjQxMCw3ICsyNDc1LDcgQEAg ZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0 X3R5cGUsCiAgICAgICBpZiAobm9zaWRlID09IEVWQUxfU0tJUCkKIAlnb3Rv IG5vc2lkZXJldDsKICAgICAgIGlmICh1bm9wX3VzZXJfZGVmaW5lZF9wIChv cCwgYXJnMSkpCi0JcmV0dXJuIHZhbHVlX3hfdW5vcCAoYXJnMSwgb3AsIG5v c2lkZSk7CisJcmV0dXJuIHZhbHVlX3hfdW5vcCAoYXJnMSwgb3AsIG5vc2lk ZSwgZXhwKTsKICAgICAgIGVsc2UKIAl7CiAJICB1bm9wX3Byb21vdGUgKGV4 cC0+bGFuZ3VhZ2VfZGVmbiwgZXhwLT5nZGJhcmNoLCAmYXJnMSk7CkBAIC0y NDIyLDcgKzI0ODcsNyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0 cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAgICAgIGlmIChub3NpZGUgPT0g RVZBTF9TS0lQKQogCWdvdG8gbm9zaWRlcmV0OwogICAgICAgaWYgKHVub3Bf dXNlcl9kZWZpbmVkX3AgKG9wLCBhcmcxKSkKLQlyZXR1cm4gdmFsdWVfeF91 bm9wIChhcmcxLCBvcCwgbm9zaWRlKTsKKwlyZXR1cm4gdmFsdWVfeF91bm9w IChhcmcxLCBvcCwgbm9zaWRlLCBleHApOwogICAgICAgZWxzZQogCXsKIAkg IHVub3BfcHJvbW90ZSAoZXhwLT5sYW5ndWFnZV9kZWZuLCBleHAtPmdkYmFy Y2gsICZhcmcxKTsKQEAgLTI0MzcsNyArMjUwMiw3IEBAIGV2YWx1YXRlX3N1 YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAogICAg ICAgaWYgKG5vc2lkZSA9PSBFVkFMX1NLSVApCiAJZ290byBub3NpZGVyZXQ7 CiAgICAgICBpZiAodW5vcF91c2VyX2RlZmluZWRfcCAoVU5PUF9DT01QTEVN RU5ULCBhcmcxKSkKLQlyZXR1cm4gdmFsdWVfeF91bm9wIChhcmcxLCBVTk9Q X0NPTVBMRU1FTlQsIG5vc2lkZSk7CisJcmV0dXJuIHZhbHVlX3hfdW5vcCAo YXJnMSwgVU5PUF9DT01QTEVNRU5ULCBub3NpZGUsIGV4cCk7CiAgICAgICBl bHNlCiAJewogCSAgdW5vcF9wcm9tb3RlIChleHAtPmxhbmd1YWdlX2RlZm4s IGV4cC0+Z2RiYXJjaCwgJmFyZzEpOwpAQCAtMjQ0OSw3ICsyNTE0LDcgQEAg ZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0 X3R5cGUsCiAgICAgICBpZiAobm9zaWRlID09IEVWQUxfU0tJUCkKIAlnb3Rv IG5vc2lkZXJldDsKICAgICAgIGlmICh1bm9wX3VzZXJfZGVmaW5lZF9wIChv cCwgYXJnMSkpCi0JcmV0dXJuIHZhbHVlX3hfdW5vcCAoYXJnMSwgb3AsIG5v c2lkZSk7CisJcmV0dXJuIHZhbHVlX3hfdW5vcCAoYXJnMSwgb3AsIG5vc2lk ZSwgZXhwKTsKICAgICAgIGVsc2UKIAl7CiAJICB0eXBlID0gbGFuZ3VhZ2Vf Ym9vbF90eXBlIChleHAtPmxhbmd1YWdlX2RlZm4sIGV4cC0+Z2RiYXJjaCk7 CkBAIC0yNDY4LDcgKzI1MzMsNyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRh cmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAgICAgIGlmIChub3Np ZGUgPT0gRVZBTF9TS0lQKQogCWdvdG8gbm9zaWRlcmV0OwogICAgICAgaWYg KHVub3BfdXNlcl9kZWZpbmVkX3AgKG9wLCBhcmcxKSkKLQlyZXR1cm4gdmFs dWVfeF91bm9wIChhcmcxLCBvcCwgbm9zaWRlKTsKKwlyZXR1cm4gdmFsdWVf eF91bm9wIChhcmcxLCBvcCwgbm9zaWRlLCBleHApOwogICAgICAgZWxzZSBp ZiAobm9zaWRlID09IEVWQUxfQVZPSURfU0lERV9FRkZFQ1RTKQogCXsKIAkg IHR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcxKSk7CkBA IC0yNjAyLDcgKzI2NjcsNyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQg KHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKIAlyZXR1cm4gYXJnMTsKICAg ICAgIGVsc2UgaWYgKHVub3BfdXNlcl9kZWZpbmVkX3AgKG9wLCBhcmcxKSkK IAl7Ci0JICByZXR1cm4gdmFsdWVfeF91bm9wIChhcmcxLCBvcCwgbm9zaWRl KTsKKwkgIHJldHVybiB2YWx1ZV94X3Vub3AgKGFyZzEsIG9wLCBub3NpZGUs IGV4cCk7CiAJfQogICAgICAgZWxzZQogCXsKQEAgLTI2MjYsNyArMjY5MSw3 IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4 cGVjdF90eXBlLAogCXJldHVybiBhcmcxOwogICAgICAgZWxzZSBpZiAodW5v cF91c2VyX2RlZmluZWRfcCAob3AsIGFyZzEpKQogCXsKLQkgIHJldHVybiB2 YWx1ZV94X3Vub3AgKGFyZzEsIG9wLCBub3NpZGUpOworCSAgcmV0dXJuIHZh bHVlX3hfdW5vcCAoYXJnMSwgb3AsIG5vc2lkZSwgZXhwKTsKIAl9CiAgICAg ICBlbHNlCiAJewpAQCAtMjY1MCw3ICsyNzE1LDcgQEAgZXZhbHVhdGVfc3Vi ZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAJcmV0 dXJuIGFyZzE7CiAgICAgICBlbHNlIGlmICh1bm9wX3VzZXJfZGVmaW5lZF9w IChvcCwgYXJnMSkpCiAJewotCSAgcmV0dXJuIHZhbHVlX3hfdW5vcCAoYXJn MSwgb3AsIG5vc2lkZSk7CisJICByZXR1cm4gdmFsdWVfeF91bm9wIChhcmcx LCBvcCwgbm9zaWRlLCBleHApOwogCX0KICAgICAgIGVsc2UKIAl7CkBAIC0y Njc3LDcgKzI3NDIsNyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0 cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKIAlyZXR1cm4gYXJnMTsKICAgICAg IGVsc2UgaWYgKHVub3BfdXNlcl9kZWZpbmVkX3AgKG9wLCBhcmcxKSkKIAl7 Ci0JICByZXR1cm4gdmFsdWVfeF91bm9wIChhcmcxLCBvcCwgbm9zaWRlKTsK KwkgIHJldHVybiB2YWx1ZV94X3Vub3AgKGFyZzEsIG9wLCBub3NpZGUsIGV4 cCk7CiAJfQogICAgICAgZWxzZQogCXsKQEAgLTI4MjcsNyArMjg5Miw3IEBA IGV2YWx1YXRlX3N1YmV4cF9mb3JfYWRkcmVzcyAoc3RydWN0IGV4cHJlc3Np b24gKmV4cCwgaW50ICpwb3MsCiAgICAgICAvKiBXZSBjYW4ndCBvcHRpbWl6 ZSBvdXQgIiYqIiBpZiB0aGVyZSdzIGEgdXNlci1kZWZpbmVkIG9wZXJhdG9y Ki4gICovCiAgICAgICBpZiAodW5vcF91c2VyX2RlZmluZWRfcCAob3AsIHgp KQogCXsKLQkgIHggPSB2YWx1ZV94X3Vub3AgKHgsIG9wLCBub3NpZGUpOwor CSAgeCA9IHZhbHVlX3hfdW5vcCAoeCwgb3AsIG5vc2lkZSwgZXhwKTsKIAkg IGdvdG8gZGVmYXVsdF9jYXNlX2FmdGVyX2V2YWw7CiAJfQogCmRpZmYgLS1n aXQgYS9nZGIvZXhwcmVzc2lvbi5oIGIvZ2RiL2V4cHJlc3Npb24uaAppbmRl eCA0MDgxYTYwLi4wNTI0MmI2IDEwMDY0NAotLS0gYS9nZGIvZXhwcmVzc2lv bi5oCisrKyBiL2dkYi9leHByZXNzaW9uLmgKQEAgLTc2LDExICs3NiwxNyBA QCB1bmlvbiBleHBfZWxlbWVudAogICAgIHN0cnVjdCBvYmpmaWxlICpvYmpm aWxlOwogICB9OwogCitzdHJ1Y3QgdmFsdWU7Cit0eXBlZGVmIHN0cnVjdCB2 YWx1ZSAqdmFsdWVfcHRyOworREVGX1ZFQ19QICh2YWx1ZV9wdHIpOwordHlw ZWRlZiBWRUMgKHZhbHVlX3B0cikgdmFsdWVfdmVjOworCiBzdHJ1Y3QgZXhw cmVzc2lvbgogICB7CiAgICAgY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4g Kmxhbmd1YWdlX2RlZm47CS8qIGxhbmd1YWdlIGl0IHdhcwogCQkJCQkJICAg ZW50ZXJlZCBpbi4gICovCiAgICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2g7 ICAvKiBhcmNoaXRlY3R1cmUgaXQgd2FzIHBhcnNlZCBpbi4gICovCisgICAg dmFsdWVfdmVjICpvbl9zdGFja190ZW1wb3Jhcmllc192ZWM7CiAgICAgaW50 IG5lbHRzOwogICAgIHVuaW9uIGV4cF9lbGVtZW50IGVsdHNbMV07CiAgIH07 CmRpZmYgLS1naXQgYS9nZGIvZ2NvcmUuYyBiL2dkYi9nY29yZS5jCmluZGV4 IGQyYWRmYzguLmM0YmE5NjEgMTAwNjQ0Ci0tLSBhL2dkYi9nY29yZS5jCisr KyBiL2dkYi9nY29yZS5jCkBAIC0zMDgsNyArMzA4LDcgQEAgY2FsbF90YXJn ZXRfc2JyayAoaW50IHNicmtfYXJnKQogICB0YXJnZXRfc2Jya19hcmcgPSB2 YWx1ZV9mcm9tX2xvbmdlc3QgKGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1 aWx0aW5faW50LCAKIAkJCQkJc2Jya19hcmcpOwogICBnZGJfYXNzZXJ0ICh0 YXJnZXRfc2Jya19hcmcpOwotICByZXQgPSBjYWxsX2Z1bmN0aW9uX2J5X2hh bmQgKHNicmtfZm4sIDEsICZ0YXJnZXRfc2Jya19hcmcpOworICByZXQgPSBj YWxsX2Z1bmN0aW9uX2J5X2hhbmQgKHNicmtfZm4sIDEsICZ0YXJnZXRfc2Jy a19hcmcsIE5VTEwpOwogICBpZiAocmV0ID09IE5VTEwpCiAgICAgcmV0dXJu IChiZmRfdm1hKSAwOwogCmRpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuYyBi L2dkYi9nZGJ0eXBlcy5jCmluZGV4IGVlMzNkNzcuLjUzODg2MTIgMTAwNjQ0 Ci0tLSBhL2dkYi9nZGJ0eXBlcy5jCisrKyBiL2dkYi9nZGJ0eXBlcy5jCkBA IC0yNTAxLDYgKzI1MDEsMTUgQEAgaXNfc2NhbGFyX3R5cGVfcmVjdXJzaXZl IChzdHJ1Y3QgdHlwZSAqdCkKICAgcmV0dXJuIDA7CiB9CiAKKy8qIFJldHVy biB0cnVlIGlzIFQgaXMgYSBjbGFzcyBvciBhIHVuaW9uLiAgRmFsc2Ugb3Ro ZXJ3aXNlLiAgKi8KKworaW50CitjbGFzc19vcl91bmlvbl9wIChjb25zdCBz dHJ1Y3QgdHlwZSAqdCkKK3sKKyAgcmV0dXJuIChUWVBFX0NPREUgKHQpID09 IFRZUEVfQ09ERV9TVFJVQ1QKKwkgIHx8IFRZUEVfQ09ERSAodCkgPT0gVFlQ RV9DT0RFX1VOSU9OKTsKK30KKwogLyogQSBoZWxwZXIgZnVuY3Rpb24gd2hp Y2ggcmV0dXJucyB0cnVlIGlmIHR5cGVzIEEgYW5kIEIgcmVwcmVzZW50IHRo ZQogICAgInNhbWUiIGNsYXNzIHR5cGUuICBUaGlzIGlzIHRydWUgaWYgdGhl IHR5cGVzIGhhdmUgdGhlIHNhbWUgbWFpbgogICAgdHlwZSwgb3IgdGhlIHNh bWUgbmFtZS4gICovCmRpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuaCBiL2dk Yi9nZGJ0eXBlcy5oCmluZGV4IGJkMWEwYWIuLmY5ZDI5ODYgMTAwNjQ0Ci0t LSBhL2dkYi9nZGJ0eXBlcy5oCisrKyBiL2dkYi9nZGJ0eXBlcy5oCkBAIC0x NzUxLDYgKzE3NTEsOCBAQCBleHRlcm4gaW50IGdldF9hcnJheV9ib3VuZHMg KHN0cnVjdCB0eXBlICp0eXBlLCBMT05HRVNUICpsb3dfYm91bmQsCiAKIGV4 dGVybiBpbnQgY2xhc3NfdHlwZXNfc2FtZV9wIChjb25zdCBzdHJ1Y3QgdHlw ZSAqLCBjb25zdCBzdHJ1Y3QgdHlwZSAqKTsKIAorZXh0ZXJuIGludCBjbGFz c19vcl91bmlvbl9wIChjb25zdCBzdHJ1Y3QgdHlwZSAqKTsKKwogZXh0ZXJu IGludCBpc19hbmNlc3RvciAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUg Kik7CiAKIGV4dGVybiBpbnQgaXNfcHVibGljX2FuY2VzdG9yIChzdHJ1Y3Qg dHlwZSAqLCBzdHJ1Y3QgdHlwZSAqKTsKZGlmZiAtLWdpdCBhL2dkYi9pbmZj YWxsLmMgYi9nZGIvaW5mY2FsbC5jCmluZGV4IGJiYWM2OTMuLjI0MWVjMmUg MTAwNjQ0Ci0tLSBhL2dkYi9pbmZjYWxsLmMKKysrIGIvZ2RiL2luZmNhbGwu YwpAQCAtNDU1LDYgKzQ1NSwzMyBAQCBjbGVhbnVwX2RlbGV0ZV9zdGRfdGVy bWluYXRlX2JyZWFrcG9pbnQgKHZvaWQgKmlnbm9yZSkKICAgZGVsZXRlX3N0 ZF90ZXJtaW5hdGVfYnJlYWtwb2ludCAoKTsKIH0KIAorLyogUmVhZHMgYSB2 YWx1ZSByZXR1cm5lZCBieSBhbiBpbmZlcmlvciBmdW5jdGlvbiBmb3IgdGhv c2UgcmV0dXJuCisgICB2YWx1ZXMgd2hvc2UgYWRkcmVzcyBpcyBwYXNzZWQg YXMgdGhlIGhpZGRlbiBmaXJzdCBhcmd1bWVudC4KKyAgIFRZUEUgaXMgdGhl IHR5cGUgb2YgdmFsdWUuICBBRERSIGlzIHRoZSBhZGRyZXNzIGZyb20gd2hl cmUgdG8gcmVhZCBpdC4KKyAgIEVYUCBpcyB0aGUgZXhwcmVzc2lvbiB3aG9z ZSBldmFsdWF0aW9uIGxlYWQgdG8gY2FsbGluZyB0aGUgaW5mZXJpb3IKKyAg IGZ1bmN0aW9uLiAgSXQgaXMgTlVMTCBpZiB0aGUgaW5mZXJpb3IgZnVuY3Rp b24gY2FsbCB3YXMgbm90IG1hZGUgd2hpbGUKKyAgIGV2YWx1YXRpbmcgYW4g ZXhwcmVzc2lvbi4gICovCisKK3N0YXRpYyBzdHJ1Y3QgdmFsdWUgKgorZ2V0 X3JldHVybl92YWx1ZV9mcm9tX21lbW9yeSAoc3RydWN0IHR5cGUgKnR5cGUs IENPUkVfQUREUiBhZGRyLAorCQkJICAgICAgc3RydWN0IGV4cHJlc3Npb24g KmV4cCkKK3sKKyAgc3RydWN0IHZhbHVlICpyZXR2YWw7CisgIGlmIChleHAg IT0gTlVMTCkKKyAgICB7CisgICAgICByZXR2YWwgPSB2YWx1ZV9mcm9tX2Nv bnRlbnRzX2FuZF9hZGRyZXNzICh0eXBlLCBOVUxMLCBhZGRyKTsKKyAgICAg IGFkZF92YWx1ZV90b19leHByZXNzaW9uX3N0YWNrIChleHAsIHJldHZhbCk7 CisgICAgfQorICBlbHNlCisgICAgeworICAgICAgcmV0dmFsID0gYWxsb2Nh dGVfdmFsdWUgKHR5cGUpOworICAgICAgcmVhZF92YWx1ZV9tZW1vcnkgKHJl dHZhbCwgMCwgMSwgYWRkciwgdmFsdWVfY29udGVudHNfcmF3IChyZXR2YWwp LAorCQkJIFRZUEVfTEVOR1RIICh0eXBlKSk7CisgICAgfQorCisgIHJldHVy biByZXR2YWw7Cit9CisKIC8qIEFsbCB0aGlzIHN0dWZmIHdpdGggYSBkdW1t eSBmcmFtZSBtYXkgc2VlbSB1bm5lY2Vzc2FyaWx5IGNvbXBsaWNhdGVkCiAg ICAod2h5IG5vdCBqdXN0IHNhdmUgcmVnaXN0ZXJzIGluIEdEQj8pLiAgVGhl IHB1cnBvc2Ugb2YgcHVzaGluZyBhIGR1bW15CiAgICBmcmFtZSB3aGljaCBs b29rcyBqdXN0IGxpa2UgYSByZWFsIGZyYW1lIGlzIHNvIHRoYXQgaWYgeW91 IGNhbGwgYQpAQCAtNDcxLDEwICs0OTgsMTQgQEAgY2xlYW51cF9kZWxldGVf c3RkX3Rlcm1pbmF0ZV9icmVha3BvaW50ICh2b2lkICppZ25vcmUpCiAgICBN YXkgZmFpbCB0byByZXR1cm4sIGlmIGEgYnJlYWtwb2ludCBvciBzaWduYWwg aXMgaGl0CiAgICBkdXJpbmcgdGhlIGV4ZWN1dGlvbiBvZiB0aGUgZnVuY3Rp b24uCiAKLSAgIEFSR1MgaXMgbW9kaWZpZWQgdG8gY29udGFpbiBjb2VyY2Vk IHZhbHVlcy4gICovCisgICBBUkdTIGlzIG1vZGlmaWVkIHRvIGNvbnRhaW4g Y29lcmNlZCB2YWx1ZXMuCisgICBFWFAgaXMgdGhlIGV4cHJlc3Npb24gd2hv c2UgZXZhbHVhdGlvbiBsZWFkIHRvIGNhbGxpbmcgdGhlIGluZmVyaW9yCisg ICBmdW5jdGlvbi4gIEl0IGlzIE5VTEwgaWYgdGhlIGluZmVyaW9yIGZ1bmN0 aW9uIGNhbGwgd2FzIG5vdCBtYWRlIHdoaWxlCisgICBldmFsdWF0aW5nIGFu IGV4cHJlc3Npb24uICAqLwogCiBzdHJ1Y3QgdmFsdWUgKgotY2FsbF9mdW5j dGlvbl9ieV9oYW5kIChzdHJ1Y3QgdmFsdWUgKmZ1bmN0aW9uLCBpbnQgbmFy Z3MsIHN0cnVjdCB2YWx1ZSAqKmFyZ3MpCitjYWxsX2Z1bmN0aW9uX2J5X2hh bmQgKHN0cnVjdCB2YWx1ZSAqZnVuY3Rpb24sIGludCBuYXJncywgc3RydWN0 IHZhbHVlICoqYXJncywKKwkJICAgICAgIHN0cnVjdCBleHByZXNzaW9uICpl eHApCiB7CiAgIENPUkVfQUREUiBzcDsKICAgc3RydWN0IHR5cGUgKnZhbHVl c190eXBlLCAqdGFyZ2V0X3ZhbHVlc190eXBlOwpAQCAtNTMyLDYgKzU2Mywx NiBAQCBjYWxsX2Z1bmN0aW9uX2J5X2hhbmQgKHN0cnVjdCB2YWx1ZSAqZnVu Y3Rpb24sIGludCBuYXJncywgc3RydWN0IHZhbHVlICoqYXJncykKICAgewog ICAgIENPUkVfQUREUiBvbGRfc3AgPSBnZXRfZnJhbWVfc3AgKGZyYW1lKTsK IAorICAgIC8qIFNraXAgb3ZlciB0aGUgc3RhY2sgbWlycm9ycyB0aGF0IG1p Z2h0IGhhdmUgYmVlbiBnZW5lcmF0ZWQgZHVyaW5nIHRoZQorICAgICAgIGV2 YWx1YXRpb24gb2YgdGhlIGN1cnJlbnQgZXhwcmVzc2lvbi4gICovCisgICAg aWYgKGV4cCAhPSBOVUxMKQorICAgICAgeworCWlmIChnZGJhcmNoX2lubmVy X3RoYW4gKGdkYmFyY2gsIDEsIDIpKQorCSAgb2xkX3NwID0gc2tpcF9jdXJy ZW50X2V4cHJlc3Npb25fc3RhY2sgKGV4cCwgb2xkX3NwLCAxKTsKKwllbHNl CisJICBvbGRfc3AgPSBza2lwX2N1cnJlbnRfZXhwcmVzc2lvbl9zdGFjayAo ZXhwLCBvbGRfc3AsIDApOworICAgICAgfQorCiAgICAgaWYgKGdkYmFyY2hf ZnJhbWVfYWxpZ25fcCAoZ2RiYXJjaCkpCiAgICAgICB7CiAJc3AgPSBnZGJh cmNoX2ZyYW1lX2FsaWduIChnZGJhcmNoLCBvbGRfc3ApOwpAQCAtNzE5LDkg Kzc2MCwyMSBAQCBjYWxsX2Z1bmN0aW9uX2J5X2hhbmQgKHN0cnVjdCB2YWx1 ZSAqZnVuY3Rpb24sIGludCBuYXJncywgc3RydWN0IHZhbHVlICoqYXJncykK IAogICAvKiBSZXNlcnZlIHNwYWNlIGZvciB0aGUgcmV0dXJuIHN0cnVjdHVy ZSB0byBiZSB3cml0dGVuIG9uIHRoZQogICAgICBzdGFjaywgaWYgbmVjZXNz YXJ5LiAgTWFrZSBjZXJ0YWluIHRoYXQgdGhlIHZhbHVlIGlzIGNvcnJlY3Rs eQotICAgICBhbGlnbmVkLiAgKi8KKyAgICAgYWxpZ25lZC4KKworICAgICBX aGlsZSBldmFsdWF0aW5nIGV4cHJlc3Npb25zLCB3ZSByZXNlcnZlIHNwYWNl IG9uIHRoZSBzdGFjayBmb3IKKyAgICAgcmV0dXJuIHZhbHVlcyBvZiBjbGFz cyB0eXBlIGV2ZW4gaWYgdGhlIGxhbmd1YWdlIEFCSSBhbmQgdGhlIHRhcmdl dAorICAgICBBQkkgZG8gbm90IHJlcXVpcmUgdGhhdCB0aGUgcmV0dXJuIHZh bHVlIGJlIHBhc3NlZCBhcyBhIGhpZGRlbiBmaXJzdAorICAgICBhcmd1bWVu dC4gIFRoaXMgaXMgYmVjYXVzZSB3ZSB3YW50IHRvIHN0b3JlIHRoZSByZXR1 cm4gdmFsdWUgYXMgYW4KKyAgICAgb24tc3RhY2sgdGVtcG9yYXJ5IHdoaWxl IHRoZSBleHByZXNzaW9uIGlzIGJlaW5nIGV2YWx1YXRlZC4gIFRoaXMKKyAg ICAgZW5hYmxlcyB1cyB0byBoYXZlIGNoYWluZWQgZnVuY3Rpb24gY2FsbHMg aW4gZXhwcmVzc2lvbnMuCisKKyAgICAgS2VlcGluZyB0aGUgcmV0dXJuIHZh bHVlcyBhcyBvbi1zdGFjayB0ZW1wb3JhcmllcyB3aGlsZSB0aGUgZXhwcmVz c2lvbgorICAgICBpcyBiZWluZyBldmFsdWF0ZWQgaXMgT0sgYmVjYXVzZSB0 aGUgdGhyZWFkIGlzIHN0b3BwZWQgdW50aWwgdGhlCisgICAgIGV4cHJlc3Np b24gaXMgY29tcGxldGVseSBldmFsdWF0ZWQuICAqLwogCi0gIGlmIChzdHJ1 Y3RfcmV0dXJuIHx8IGhpZGRlbl9maXJzdF9wYXJhbV9wKQorICBpZiAoc3Ry dWN0X3JldHVybiB8fCBoaWRkZW5fZmlyc3RfcGFyYW1fcAorICAgICAgfHwg KGV4cCAhPSBOVUxMICYmIGNsYXNzX29yX3VuaW9uX3AgKHZhbHVlc190eXBl KSkpCiAgICAgewogICAgICAgaWYgKGdkYmFyY2hfaW5uZXJfdGhhbiAoZ2Ri YXJjaCwgMSwgMikpCiAJewpAQCAtMTA1OSwxMyArMTExMiw4IEBAIFdoZW4g dGhlIGZ1bmN0aW9uIGlzIGRvbmUgZXhlY3V0aW5nLCBHREIgd2lsbCBzaWxl bnRseSBzdG9wLiIpLAogICAgICAgIEF0IHRoaXMgc3RhZ2UsIGxlYXZlIHRo ZSBSRVRCVUYgYWxvbmUuICAqLwogICAgIHJlc3RvcmVfaW5mY2FsbF9jb250 cm9sX3N0YXRlIChpbmZfc3RhdHVzKTsKIAotICAgIC8qIEZpZ3VyZSBvdXQg dGhlIHZhbHVlIHJldHVybmVkIGJ5IHRoZSBmdW5jdGlvbi4gICovCi0gICAg cmV0dmFsID0gYWxsb2NhdGVfdmFsdWUgKHZhbHVlc190eXBlKTsKLQogICAg IGlmIChoaWRkZW5fZmlyc3RfcGFyYW1fcCkKLSAgICAgIHJlYWRfdmFsdWVf bWVtb3J5IChyZXR2YWwsIDAsIDEsIHN0cnVjdF9hZGRyLAotCQkJIHZhbHVl X2NvbnRlbnRzX3JhdyAocmV0dmFsKSwKLQkJCSBUWVBFX0xFTkdUSCAodmFs dWVzX3R5cGUpKTsKKyAgICAgIHJldHZhbCA9IGdldF9yZXR1cm5fdmFsdWVf ZnJvbV9tZW1vcnkgKHZhbHVlc190eXBlLCBzdHJ1Y3RfYWRkciwgZXhwKTsK ICAgICBlbHNlIGlmIChUWVBFX0NPREUgKHRhcmdldF92YWx1ZXNfdHlwZSkg IT0gVFlQRV9DT0RFX1ZPSUQpCiAgICAgICB7CiAJLyogSWYgdGhlIGZ1bmN0 aW9uIHJldHVybnMgdm9pZCwgZG9uJ3QgYm90aGVyIGZldGNoaW5nIHRoZQpA QCAtMTA3NiwxNiArMTEyNCwzMCBAQCBXaGVuIHRoZSBmdW5jdGlvbiBpcyBk b25lIGV4ZWN1dGluZywgR0RCIHdpbGwgc2lsZW50bHkgc3RvcC4iKSwKIAkg IGNhc2UgUkVUVVJOX1ZBTFVFX1JFR0lTVEVSX0NPTlZFTlRJT046CiAJICBj YXNlIFJFVFVSTl9WQUxVRV9BQklfUkVUVVJOU19BRERSRVNTOgogCSAgY2Fz ZSBSRVRVUk5fVkFMVUVfQUJJX1BSRVNFUlZFU19BRERSRVNTOgorCSAgICBy ZXR2YWwgPSBhbGxvY2F0ZV92YWx1ZSAodmFsdWVzX3R5cGUpOwogCSAgICBn ZGJhcmNoX3JldHVybl92YWx1ZSAoZ2RiYXJjaCwgZnVuY3Rpb24sIHZhbHVl c190eXBlLAogCQkJCSAgcmV0YnVmLCB2YWx1ZV9jb250ZW50c19yYXcgKHJl dHZhbCksIE5VTEwpOworCSAgICBpZiAoZXhwICE9IE5VTEwgJiYgY2xhc3Nf b3JfdW5pb25fcCAodmFsdWVzX3R5cGUpKQorCSAgICAgIHsKKwkJLyogVmFs dWVzIG9mIGNsYXNzIHR5cGUgcmV0dXJuZWQgaW4gcmVnaXN0ZXJzIGFyZSBj b3BpZWQgb250bworCQkgICB0aGUgc3RhY2sgYW5kIHRoZWlyIGx2YWxfdHlw ZSBzZXQgdG8gbHZhbF9tZW1vcnkuICBUaGlzIGlzCisJCSAgIHJlcXVpcmVk IGJlY2F1c2UgZnVydGhlciBldmFsdWF0aW9uIG9mIHRoZSBleHByZXNzaW9u CisJCSAgIGNvdWxkIHBvdGVudGlhbGx5IGludm9rZSBtZXRob2RzIG9uIHRo ZSByZXR1cm4gdmFsdWUKKwkJICAgcmVxdWlyaW5nIEdEQiB0byBldmFsdWF0 ZSB0aGUgInRoaXMiIHBvaW50ZXIuICBUbyBldmFsdWF0ZQorCQkgICB0aGUg dGhpcyBwb2ludGVyLCBHREIgbmVlZHMgdGhlIG1lbW9yeSBhZGRyZXNzIG9m IHRoZQorCQkgICB2YWx1ZS4gICovCisJCXdyaXRlX3ZhbHVlX3RvX21lbW9y eSAocmV0dmFsLCBzdHJ1Y3RfYWRkcik7CisJCWFkZF92YWx1ZV90b19leHBy ZXNzaW9uX3N0YWNrIChleHAsIHJldHZhbCk7CisJICAgICAgfQogCSAgICBi cmVhazsKIAkgIGNhc2UgUkVUVVJOX1ZBTFVFX1NUUlVDVF9DT05WRU5USU9O OgotCSAgICByZWFkX3ZhbHVlX21lbW9yeSAocmV0dmFsLCAwLCAxLCBzdHJ1 Y3RfYWRkciwKLQkJCSAgICAgICB2YWx1ZV9jb250ZW50c19yYXcgKHJldHZh bCksCi0JCQkgICAgICAgVFlQRV9MRU5HVEggKHZhbHVlc190eXBlKSk7CisJ ICAgIHJldHZhbCA9IGdldF9yZXR1cm5fdmFsdWVfZnJvbV9tZW1vcnkgKHZh bHVlc190eXBlLCBzdHJ1Y3RfYWRkciwKKwkJCQkJCSAgIGV4cCk7CiAJICAg IGJyZWFrOwogCSAgfQogICAgICAgfQorICAgIGVsc2UKKyAgICAgIHJldHZh bCA9IGFsbG9jYXRlX3ZhbHVlICh2YWx1ZXNfdHlwZSk7CiAKICAgICBkb19j bGVhbnVwcyAocmV0YnVmX2NsZWFudXApOwogCmRpZmYgLS1naXQgYS9nZGIv aW5mY2FsbC5oIGIvZ2RiL2luZmNhbGwuaAppbmRleCBjNmRjZGMzLi40ZGU5 MzFiIDEwMDY0NAotLS0gYS9nZGIvaW5mY2FsbC5oCisrKyBiL2dkYi9pbmZj YWxsLmgKQEAgLTIyLDYgKzIyLDcgQEAKIAogc3RydWN0IHZhbHVlOwogc3Ry dWN0IHR5cGU7CitzdHJ1Y3QgZXhwcmVzc2lvbjsKIAogZXh0ZXJuIENPUkVf QUREUiBmaW5kX2Z1bmN0aW9uX2FkZHIgKHN0cnVjdCB2YWx1ZSAqZnVuY3Rp b24sIAogCQkJCSAgICAgc3RydWN0IHR5cGUgKipyZXR2YWxfdHlwZSk7CkBA IC0zNiw2ICszNyw3IEBAIGV4dGVybiBDT1JFX0FERFIgZmluZF9mdW5jdGlv bl9hZGRyIChzdHJ1Y3QgdmFsdWUgKmZ1bmN0aW9uLAogICAgQVJHUyBpcyBt b2RpZmllZCB0byBjb250YWluIGNvZXJjZWQgdmFsdWVzLiAgKi8KIAogZXh0 ZXJuIHN0cnVjdCB2YWx1ZSAqY2FsbF9mdW5jdGlvbl9ieV9oYW5kIChzdHJ1 Y3QgdmFsdWUgKmZ1bmN0aW9uLCBpbnQgbmFyZ3MsCi0JCQkJCSAgICBzdHJ1 Y3QgdmFsdWUgKiphcmdzKTsKKwkJCQkJICAgIHN0cnVjdCB2YWx1ZSAqKmFy Z3MsCisJCQkJCSAgICBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwKTsKIAogI2Vu ZGlmCmRpZmYgLS1naXQgYS9nZGIvbGludXgtZm9yay5jIGIvZ2RiL2xpbnV4 LWZvcmsuYwppbmRleCA4MzVlNjEyLi44YmE0NzQxIDEwMDY0NAotLS0gYS9n ZGIvbGludXgtZm9yay5jCisrKyBiL2dkYi9saW51eC1mb3JrLmMKQEAgLTQ2 OCw3ICs0NjgsNyBAQCBpbmZlcmlvcl9jYWxsX3dhaXRwaWQgKHB0aWRfdCBw cHRpZCwgaW50IHBpZCkKICAgYXJndlsyXSA9IHZhbHVlX2Zyb21fbG9uZ2Vz dCAoYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9pbnQsIDApOwog ICBhcmd2WzNdID0gMDsKIAotICByZXR2ID0gY2FsbF9mdW5jdGlvbl9ieV9o YW5kICh3YWl0cGlkX2ZuLCAzLCBhcmd2KTsKKyAgcmV0diA9IGNhbGxfZnVu Y3Rpb25fYnlfaGFuZCAod2FpdHBpZF9mbiwgMywgYXJndiwgTlVMTCk7CiAg IGlmICh2YWx1ZV9hc19sb25nIChyZXR2KSA8IDApCiAgICAgZ290byBvdXQ7 CiAKQEAgLTY4Myw3ICs2ODMsNyBAQCBjaGVja3BvaW50X2NvbW1hbmQgKGNo YXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKICAgb2xkX2NoYWluID0gbWFrZV9j bGVhbnVwX3Jlc3RvcmVfaW50ZWdlciAoJmNoZWNrcG9pbnRpbmdfcGlkKTsK ICAgY2hlY2twb2ludGluZ19waWQgPSBwdGlkX2dldF9waWQgKGluZmVyaW9y X3B0aWQpOwogCi0gIHJldCA9IGNhbGxfZnVuY3Rpb25fYnlfaGFuZCAoZm9y a19mbiwgMCwgJnJldCk7CisgIHJldCA9IGNhbGxfZnVuY3Rpb25fYnlfaGFu ZCAoZm9ya19mbiwgMCwgJnJldCwgTlVMTCk7CiAgIGRvX2NsZWFudXBzIChv bGRfY2hhaW4pOwogICBpZiAoIXJldCkJLyogUHJvYmFibHkgY2FuJ3QgaGFw cGVuLiAgKi8KICAgICBlcnJvciAoXygiY2hlY2twb2ludDogY2FsbF9mdW5j dGlvbl9ieV9oYW5kIHJldHVybmVkIG51bGwuIikpOwpkaWZmIC0tZ2l0IGEv Z2RiL29iamMtbGFuZy5jIGIvZ2RiL29iamMtbGFuZy5jCmluZGV4IDhhM2Qy MWUuLjEwMTk0ZjAgMTAwNjQ0Ci0tLSBhL2dkYi9vYmpjLWxhbmcuYworKysg Yi9nZGIvb2JqYy1sYW5nLmMKQEAgLTEzMSw3ICsxMzEsNyBAQCBsb29rdXBf b2JqY19jbGFzcyAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGNoYXIgKmNs YXNzbmFtZSkKICAgY2xhc3N2YWwgPSB2YWx1ZV9zdHJpbmcgKGNsYXNzbmFt ZSwgc3RybGVuIChjbGFzc25hbWUpICsgMSwgY2hhcl90eXBlKTsKICAgY2xh c3N2YWwgPSB2YWx1ZV9jb2VyY2VfYXJyYXkgKGNsYXNzdmFsKTsKICAgcmV0 dXJuIChDT1JFX0FERFIpIHZhbHVlX2FzX2xvbmcgKGNhbGxfZnVuY3Rpb25f YnlfaGFuZCAoZnVuY3Rpb24sIAotCQkJCQkJCSAgIDEsICZjbGFzc3ZhbCkp OworCQkJCQkJCSAgIDEsICZjbGFzc3ZhbCwgTlVMTCkpOwogfQogCiBDT1JF X0FERFIKQEAgLTE2MCw3ICsxNjAsNyBAQCBsb29rdXBfY2hpbGRfc2VsZWN0 b3IgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBjaGFyICpzZWxuYW1lKQog ICBzZWxzdHJpbmcgPSB2YWx1ZV9jb2VyY2VfYXJyYXkgKHZhbHVlX3N0cmlu ZyAoc2VsbmFtZSwgCiAJCQkJCQlzdHJsZW4gKHNlbG5hbWUpICsgMSwKIAkJ CQkJCWNoYXJfdHlwZSkpOwotICByZXR1cm4gdmFsdWVfYXNfbG9uZyAoY2Fs bF9mdW5jdGlvbl9ieV9oYW5kIChmdW5jdGlvbiwgMSwgJnNlbHN0cmluZykp OworICByZXR1cm4gdmFsdWVfYXNfbG9uZyAoY2FsbF9mdW5jdGlvbl9ieV9o YW5kIChmdW5jdGlvbiwgMSwgJnNlbHN0cmluZywgTlVMTCkpOwogfQogCiBz dHJ1Y3QgdmFsdWUgKiAKQEAgLTE4MSwxMiArMTgxLDEyIEBAIHZhbHVlX25z c3RyaW5nIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgY2hhciAqcHRyLCBp bnQgbGVuKQogICBpZiAobG9va3VwX21pbmltYWxfc3ltYm9sKCJfTlNOZXdT dHJpbmdGcm9tQ1N0cmluZyIsIDAsIDApLm1pbnN5bSkKICAgICB7CiAgICAg ICBmdW5jdGlvbiA9IGZpbmRfZnVuY3Rpb25faW5faW5mZXJpb3IoIl9OU05l d1N0cmluZ0Zyb21DU3RyaW5nIiwgTlVMTCk7Ci0gICAgICBuc3N0cmluZ1Zh bHVlID0gY2FsbF9mdW5jdGlvbl9ieV9oYW5kKGZ1bmN0aW9uLCAxLCAmc3Ry aW5nVmFsdWVbMl0pOworICAgICAgbnNzdHJpbmdWYWx1ZSA9IGNhbGxfZnVu Y3Rpb25fYnlfaGFuZChmdW5jdGlvbiwgMSwgJnN0cmluZ1ZhbHVlWzJdLCBO VUxMKTsKICAgICB9CiAgIGVsc2UgaWYgKGxvb2t1cF9taW5pbWFsX3N5bWJv bCgiaXN0ciIsIDAsIDApLm1pbnN5bSkKICAgICB7CiAgICAgICBmdW5jdGlv biA9IGZpbmRfZnVuY3Rpb25faW5faW5mZXJpb3IoImlzdHIiLCBOVUxMKTsK LSAgICAgIG5zc3RyaW5nVmFsdWUgPSBjYWxsX2Z1bmN0aW9uX2J5X2hhbmQo ZnVuY3Rpb24sIDEsICZzdHJpbmdWYWx1ZVsyXSk7CisgICAgICBuc3N0cmlu Z1ZhbHVlID0gY2FsbF9mdW5jdGlvbl9ieV9oYW5kKGZ1bmN0aW9uLCAxLCAm c3RyaW5nVmFsdWVbMl0sIE5VTEwpOwogICAgIH0KICAgZWxzZSBpZiAobG9v a3VwX21pbmltYWxfc3ltYm9sKCIrW05TU3RyaW5nIHN0cmluZ1dpdGhDU3Ry aW5nOl0iLCAwLCAwKS5taW5zeW0pCiAgICAgewpAQCAtMTk4LDcgKzE5OCw3 IEBAIHZhbHVlX25zc3RyaW5nIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwg Y2hhciAqcHRyLCBpbnQgbGVuKQogCSh0eXBlLCBsb29rdXBfb2JqY19jbGFz cyAoZ2RiYXJjaCwgIk5TU3RyaW5nIikpOwogICAgICAgc3RyaW5nVmFsdWVb MV0gPSB2YWx1ZV9mcm9tX2xvbmdlc3QgCiAJKHR5cGUsIGxvb2t1cF9jaGls ZF9zZWxlY3RvciAoZ2RiYXJjaCwgInN0cmluZ1dpdGhDU3RyaW5nOiIpKTsK LSAgICAgIG5zc3RyaW5nVmFsdWUgPSBjYWxsX2Z1bmN0aW9uX2J5X2hhbmQo ZnVuY3Rpb24sIDMsICZzdHJpbmdWYWx1ZVswXSk7CisgICAgICBuc3N0cmlu Z1ZhbHVlID0gY2FsbF9mdW5jdGlvbl9ieV9oYW5kKGZ1bmN0aW9uLCAzLCAm c3RyaW5nVmFsdWVbMF0sIE5VTEwpOwogICAgIH0KICAgZWxzZQogICAgIGVy cm9yIChfKCJOU1N0cmluZzogaW50ZXJuYWwgZXJyb3IgLS0gbm8gd2F5IHRv IGNyZWF0ZSBuZXcgTlNTdHJpbmciKSk7CkBAIC0xMTk0LDcgKzExOTQsNyBA QCBwcmludF9vYmplY3RfY29tbWFuZCAoY2hhciAqYXJncywgaW50IGZyb21f dHR5KQogICBpZiAoZnVuY3Rpb24gPT0gTlVMTCkKICAgICBlcnJvciAoXygi VW5hYmxlIHRvIGxvY2F0ZSBfTlNQcmludEZvckRlYnVnZ2VyIGluIGNoaWxk IHByb2Nlc3MiKSk7CiAKLSAgZGVzY3JpcHRpb24gPSBjYWxsX2Z1bmN0aW9u X2J5X2hhbmQgKGZ1bmN0aW9uLCAxLCAmb2JqZWN0KTsKKyAgZGVzY3JpcHRp b24gPSBjYWxsX2Z1bmN0aW9uX2J5X2hhbmQgKGZ1bmN0aW9uLCAxLCAmb2Jq ZWN0LCBOVUxMKTsKIAogICBzdHJpbmdfYWRkciA9IHZhbHVlX2FzX2xvbmcg KGRlc2NyaXB0aW9uKTsKICAgaWYgKHN0cmluZ19hZGRyID09IDApCmRpZmYg LS1naXQgYS9nZGIvcGFyc2UuYyBiL2dkYi9wYXJzZS5jCmluZGV4IDI3OTQ3 ZTcuLmEwM2MyNjYgMTAwNjQ0Ci0tLSBhL2dkYi9wYXJzZS5jCisrKyBiL2dk Yi9wYXJzZS5jCkBAIC0xOTMsNiArMTkzLDcgQEAgaW5pdGlhbGl6ZV9leHBv dXQgKHN0cnVjdCBwYXJzZXJfc3RhdGUgKnBzLCBzaXplX3QgaW5pdGlhbF9z aXplLAogCQkJKyBFWFBfRUxFTV9UT19CWVRFUyAocHMtPmV4cG91dF9zaXpl KSk7CiAgIHBzLT5leHBvdXQtPmxhbmd1YWdlX2RlZm4gPSBsYW5nOwogICBw cy0+ZXhwb3V0LT5nZGJhcmNoID0gZ2RiYXJjaDsKKyAgcHMtPmV4cG91dC0+ b25fc3RhY2tfdGVtcG9yYXJpZXNfdmVjID0gTlVMTDsKIH0KIAogLyogU2Vl IGRlZmluaXRpb24gaW4gcGFyc2VyLWRlZnMuaC4gICovCmRpZmYgLS1naXQg YS9nZGIvcHl0aG9uL3B5LXZhbHVlLmMgYi9nZGIvcHl0aG9uL3B5LXZhbHVl LmMKaW5kZXggNDMxMzE3MC4uMGQ2NWI0OCAxMDA2NDQKLS0tIGEvZ2RiL3B5 dGhvbi9weS12YWx1ZS5jCisrKyBiL2dkYi9weXRob24vcHktdmFsdWUuYwpA QCAtNzk1LDcgKzc5NSw3IEBAIHZhbHB5X2NhbGwgKFB5T2JqZWN0ICpzZWxm LCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmtleXdvcmRzKQogICAgICAg c3RydWN0IGNsZWFudXAgKmNsZWFudXAgPSBtYWtlX2NsZWFudXBfdmFsdWVf ZnJlZV90b19tYXJrIChtYXJrKTsKICAgICAgIHN0cnVjdCB2YWx1ZSAqcmV0 dXJuX3ZhbHVlOwogCi0gICAgICByZXR1cm5fdmFsdWUgPSBjYWxsX2Z1bmN0 aW9uX2J5X2hhbmQgKGZ1bmN0aW9uLCBhcmdzX2NvdW50LCB2YXJncyk7Cisg ICAgICByZXR1cm5fdmFsdWUgPSBjYWxsX2Z1bmN0aW9uX2J5X2hhbmQgKGZ1 bmN0aW9uLCBhcmdzX2NvdW50LCB2YXJncywgTlVMTCk7CiAgICAgICByZXN1 bHQgPSB2YWx1ZV90b192YWx1ZV9vYmplY3QgKHJldHVybl92YWx1ZSk7CiAg ICAgICBkb19jbGVhbnVwcyAoY2xlYW51cCk7CiAgICAgfQpAQCAtMTAzOSw3 ICsxMDM5LDEwIEBAIHZhbHB5X2Jpbm9wIChlbnVtIHZhbHB5X29wY29kZSBv cGNvZGUsIFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqb3RoZXIpCiAgICAg ICBpZiAoIWhhbmRsZWQpCiAJewogCSAgaWYgKGJpbm9wX3VzZXJfZGVmaW5l ZF9wIChvcCwgYXJnMSwgYXJnMikpCi0JICAgIHJlc192YWwgPSB2YWx1ZV94 X2Jpbm9wIChhcmcxLCBhcmcyLCBvcCwgT1BfTlVMTCwgRVZBTF9OT1JNQUwp OworCSAgICB7CisJICAgICAgcmVzX3ZhbCA9IHZhbHVlX3hfYmlub3AgKGFy ZzEsIGFyZzIsIG9wLCBPUF9OVUxMLAorCQkJCSAgICAgICBFVkFMX05PUk1B TCwgTlVMTCk7CisJICAgIH0KIAkgIGVsc2UKIAkgICAgcmVzX3ZhbCA9IHZh bHVlX2Jpbm9wIChhcmcxLCBhcmcyLCBvcCk7CiAJfQpkaWZmIC0tZ2l0IGEv Z2RiL3NwdS10ZGVwLmMgYi9nZGIvc3B1LXRkZXAuYwppbmRleCAwMzJmNWRl Li5mM2JkNmM3IDEwMDY0NAotLS0gYS9nZGIvc3B1LXRkZXAuYworKysgYi9n ZGIvc3B1LXRkZXAuYwpAQCAtMjA1OCw3ICsyMDU4LDcgQEAgZmx1c2hfZWFf Y2FjaGUgKHZvaWQpCiAgICAgICB0eXBlID0gbG9va3VwX3BvaW50ZXJfdHlw ZSAodHlwZSk7CiAgICAgICBhZGRyID0gQk1TWU1CT0xfVkFMVUVfQUREUkVT UyAobXN5bWJvbCk7CiAKLSAgICAgIGNhbGxfZnVuY3Rpb25fYnlfaGFuZCAo dmFsdWVfZnJvbV9wb2ludGVyICh0eXBlLCBhZGRyKSwgMCwgTlVMTCk7Cisg ICAgICBjYWxsX2Z1bmN0aW9uX2J5X2hhbmQgKHZhbHVlX2Zyb21fcG9pbnRl ciAodHlwZSwgYWRkciksIDAsIE5VTEwsIE5VTEwpOwogICAgIH0KIH0KIApk aWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvY2hhaW5lZC1jYWxs cy5jYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2NoYWluZWQtY2FsbHMuY2MK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTMwZWMzYgot LS0gL2Rldi9udWxsCisrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2NoYWlu ZWQtY2FsbHMuY2MKQEAgLTAsMCArMSwyMDMgQEAKKy8qIFRoaXMgdGVzdGNh c2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisKKyAgIENv cHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgor CisgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICAgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkKKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisgICAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCisgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAg YWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworCitjbGFzcyBTCit7Citw dWJsaWM6CisgIFMgKCkgeyB9CisgIFMgKFMgJm9iaik7CisKKyAgUyBvcGVy YXRvcisgKGNvbnN0IFMgJnMpOworCisgIGludCBhOworfTsKKworUzo6UyAo UyAmb2JqKQoreworICBhID0gb2JqLmE7Cit9CisKK1MKK1M6Om9wZXJhdG9y KyAoY29uc3QgUyAmcykKK3sKKyAgUyByZXM7CisKKyAgcmVzLmEgPSBhICsg cy5hOworCisgIHJldHVybiByZXM7Cit9CisKK1MKK2YgKGludCBpKQorewor ICBTIHM7CisKKyAgcy5hID0gaTsKKworICByZXR1cm4gczsKK30KKworaW50 CitnIChjb25zdCBTICZzKQoreworICByZXR1cm4gcy5hOworfQorCitjbGFz cyBBCit7CitwdWJsaWM6CisgIEEgb3BlcmF0b3IrIChjb25zdCBBICYpOwor ICBpbnQgYTsKK307CisKK0EKK0E6Om9wZXJhdG9yKyAoY29uc3QgQSAmb2Jq KQoreworICBBIG47CisKKyAgbi5hID0gYSArIG9iai5hOworCisgIHJldHVy biBuOworfQorCitBCitwICgpCit7CisgIEEgYTsKKyAgYS5hID0gMTIzNDU2 Nzg7CisgIHJldHVybiBhOworfQorCitBCityICgpCit7CisgIEEgYTsKKyAg YS5hID0gMTAwMDAwMDA7CisgIHJldHVybiBhOworfQorCitBCitxIChjb25z dCBBICZhKQoreworICByZXR1cm4gYTsKK30KKworY2xhc3MgQgoreworcHVi bGljOgorICBpbnQgYlsxMDI0XTsKK307CisKK0IKK21ha2ViICgpCit7Cisg IEIgYjsKKyAgaW50IGk7CisKKyAgZm9yIChpID0gMDsgaSA8IDEwMjQ7IGkr KykKKyAgICBiLmJbaV0gPSBpOworCisgIHJldHVybiBiOworfQorCitpbnQK K2dldGIgKGNvbnN0IEIgJmIsIGludCBpKQoreworICByZXR1cm4gYi5iW2ld OworfQorCitjbGFzcyBDCit7CitwdWJsaWM6CisgIEMgKCk7CisgIH5DICgp OworCisgIEEgb3BlcmF0b3IqICgpOworCisgIEEgKmFfcHRyOworfTsKKwor Qzo6QyAoKQoreworICBhX3B0ciA9IG5ldyBBOworICBhX3B0ci0+YSA9IDU2 Nzg7Cit9CisKK0M6On5DICgpCit7CisgIGRlbGV0ZSBhX3B0cjsKK30KKwor QQorQzo6b3BlcmF0b3IqICgpCit7CisgIHJldHVybiAqYV9wdHI7Cit9CisK KyNkZWZpbmUgVFlQRV9JTkRFWCAxCisKK2VudW0gdHlwZQoreworICBJTlQs CisgIENIQVIKK307CisKK3VuaW9uIFUKK3sKK3B1YmxpYzoKKyAgVSAodHlw ZSB0KTsKKyAgdHlwZSBnZXRfdHlwZSAoKTsKKworICBpbnQgYTsKKyAgY2hh ciBjOworICB0eXBlIHRwWzJdOworfTsKKworVTo6VSAodHlwZSB0KQorewor ICB0cFtUWVBFX0lOREVYXSA9IHQ7Cit9CisKK1UKK21ha2VfaW50ICgpCit7 CisgIHJldHVybiBVIChJTlQpOworfQorCitVCittYWtlX2NoYXIgKCkKK3sK KyAgcmV0dXJuIFUgKENIQVIpOworfQorCit0eXBlCitVOjpnZXRfdHlwZSAo KQoreworICByZXR1cm4gdHBbVFlQRV9JTkRFWF07Cit9CisKK2ludAorbWFp biAoKQoreworICBpbnQgaSA9IGcoZigwKSk7CisgIEEgYSA9IHEocCgpICsg cigpKTsKKworICBCIGIgPSBtYWtlYiAoKTsKKyAgQyBjOworCisgIHJldHVy biBpICsgZ2V0YihiLCAwKTsgIC8qIEJyZWFrIGhlcmUgICovCit9CmRpZmYg LS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9jaGFpbmVkLWNhbGxzLmV4 cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2NoYWluZWQtY2FsbHMuZXhwCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5MDNiZWEKLS0t IC9kZXYvbnVsbAorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9jaGFpbmVk LWNhbGxzLmV4cApAQCAtMCwwICsxLDQ0IEBACisjIENvcHlyaWdodCAyMDE0 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisjIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cisj IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisj IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LgorCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBnZGIgdGVzdHN1 aXRlCisKK2lmIHtbc2tpcF9jcGx1c190ZXN0c119IHsgY29udGludWUgfQor CitzdGFuZGFyZF90ZXN0ZmlsZSAuY2MKKworaWYge1twcmVwYXJlX2Zvcl90 ZXN0aW5nICR0ZXN0ZmlsZS5leHAgJHRlc3RmaWxlICRzcmNmaWxlIHtkZWJ1 ZyBjKyt9XX0geworICAgIHJldHVybiAtMQorfQorCitpZiB7IVtydW50b19t YWluXX0geworICAgIHJldHVybiAtMQorfQorCitnZGJfYnJlYWtwb2ludCBb Z2RiX2dldF9saW5lX251bWJlciAiQnJlYWsgaGVyZSJdCitnZGJfY29udGlu dWVfdG9fYnJlYWtwb2ludCAiQnJlYWsgaGVyZSIKKworZ2RiX3Rlc3QgInAg ZyhmKDEyMzQ1KSkiICIuKiA9IDEyMzQ1IiAiZyhmKCkpIgorZ2RiX3Rlc3Qg InAgcShwKCkpIiAiLiogPSB7YSA9IDEyMzQ1Njc4fSIgInEocCgpKSIKK2dk Yl90ZXN0ICJwIHAoKSArIHIoKSIgIi4qID0ge2EgPSAyMjM0NTY3OH0iICJw KCkgKyByKCkiCitnZGJfdGVzdCAicCBxKHAoKSArIHIoKSkiICIuKiA9IHth ID0gMjIzNDU2Nzh9IiAicShwKCkgKyByKCkpIgorZ2RiX3Rlc3QgInAgZyhm KDY3MDApICsgZig4OSkpIiAiLiogPSA2Nzg5IiAiZyhmKCkgKyBmKCkpIgor Z2RiX3Rlc3QgInAgZyhmKGcoZigzMDApICsgZig0MCkpKSArIGYoNSkpIiAi LiogPSAzNDUiIFwKKyAgICAiZyhmKGcoZigpICsgZigpKSkgKyBmKCkpIgor Z2RiX3Rlc3QgInAgZ2V0YihtYWtlYigpLCA3ODkpIiAiLiogPSA3ODkiICJn ZXRiKG1ha2ViKCksIC4uLikiCitnZGJfdGVzdCAicCAqYyIgIi4qID0ge2Eg PSA1Njc4fSIgIipjIgorZ2RiX3Rlc3QgInAgKmMgKyAqYyIgIi4qID0ge2Eg PSAxMTM1Nn0iICIqYyArICpjIgorZ2RiX3Rlc3QgIlAgcSgqYyArICpjKSIg Ii4qID0ge2EgPSAxMTM1Nn0iICJxKCpjICsgKmMpIgorZ2RiX3Rlc3QgInAg bWFrZV9pbnQoKS5nZXRfdHlwZSAoKSIgIi4qID0gSU5UIiAibWFrZV9pbnQo KS5nZXRfdHlwZSAoKSIKZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2Ri LmNwL3NtYXJ0cC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9zbWFydHAu ZXhwCmluZGV4IDJhMTAyOGEuLmUzZDI3MWYgMTAwNjQ0Ci0tLSBhL2dkYi90 ZXN0c3VpdGUvZ2RiLmNwL3NtYXJ0cC5leHAKKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuY3Avc21hcnRwLmV4cApAQCAtNzIsNiArNzIsNSBAQCBnZGJfdGVz dCAicCBiLT5mb28oKSIgICAgICAgICAiPSA2NiIKIGdkYl90ZXN0ICJwIGMt PmZvbygpIiAgICAgICAgICI9IDY2IgogZ2RiX3Rlc3QgInAgYy0+aW50YSIg ICAgICAgICAgIj0gNzciCiAKLXNldHVwX2tmYWlsICJnZGIvMTE2MDYiICIq LSotKiIKIGdkYl90ZXN0ICJwIGMyLT5pbnRhIiAgICAgICAgICAiPSA3NyIK IApkaWZmIC0tZ2l0IGEvZ2RiL3ZhbGFyaXRoLmMgYi9nZGIvdmFsYXJpdGgu YwppbmRleCAxNTQ2MjliLi5kODBjZjYyIDEwMDY0NAotLS0gYS9nZGIvdmFs YXJpdGguYworKysgYi9nZGIvdmFsYXJpdGguYwpAQCAtMzM5LDExICszMzks MTYgQEAgdmFsdWVfdXNlcl9kZWZpbmVkX29wIChzdHJ1Y3QgdmFsdWUgKiph cmdwLCBzdHJ1Y3QgdmFsdWUgKiphcmdzLCBjaGFyICpuYW1lLAogCiAgICBP UCBpcyB0aGUgb3BlcmF0b3JlLCBhbmQgaWYgaXQgaXMgQklOT1BfQVNTSUdO X01PRElGWSwgdGhlbiBPVEhFUk9QCiAgICBpcyB0aGUgb3Bjb2RlIHNheWlu ZyBob3cgdG8gbW9kaWZ5IGl0LiAgT3RoZXJ3aXNlLCBPVEhFUk9QIGlzCi0g ICB1bnVzZWQuICAqLworICAgdW51c2VkLgorCisgICBFWFAgaXMgdGhlIGV4 cHJlc3Npb24gd2hvc2UgZXZhbHVhdGlvbiByZXF1aXJlcyBwZXJmb3JtaW5n IHRoZSBiaW5hcnkKKyAgIG9wZXJhdGlvbi4gIEl0IGlzIE5VTEwgaWYgdGhl IG9wZXJhdGlvbiBpcyBub3QgYmVpbmcgcGVyZm9ybWVkIGFzIHBhcnQKKyAg IG9mIGFuIGV4cHJlc3Npb24gZXZhbHVhdGlvbi4gICovCiAKIHN0cnVjdCB2 YWx1ZSAqCiB2YWx1ZV94X2Jpbm9wIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIHN0 cnVjdCB2YWx1ZSAqYXJnMiwgZW51bSBleHBfb3Bjb2RlIG9wLAotCSAgICAg ICBlbnVtIGV4cF9vcGNvZGUgb3RoZXJvcCwgZW51bSBub3NpZGUgbm9zaWRl KQorCSAgICAgICBlbnVtIGV4cF9vcGNvZGUgb3RoZXJvcCwgZW51bSBub3Np ZGUgbm9zaWRlLAorCSAgICAgICBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwKQog ewogICBzdHJ1Y3QgdmFsdWUgKiphcmd2ZWM7CiAgIGNoYXIgKnB0cjsKQEAg LTQ5OSwxMiArNTA0LDEzIEBAIHZhbHVlX3hfYmlub3AgKHN0cnVjdCB2YWx1 ZSAqYXJnMSwgc3RydWN0IHZhbHVlICphcmcyLCBlbnVtIGV4cF9vcGNvZGUg b3AsCiAJfQogICAgICAgZWxzZQogCXJldHVybiBjYWxsX2Z1bmN0aW9uX2J5 X2hhbmQgKGFyZ3ZlY1swXSwgMiAtIHN0YXRpY19tZW1mdW5jcCwKLQkJCQkg ICAgICBhcmd2ZWMgKyAxKTsKKwkJCQkgICAgICBhcmd2ZWMgKyAxLCBleHAp OwogICAgIH0KICAgdGhyb3dfZXJyb3IgKE5PVF9GT1VORF9FUlJPUiwKICAg ICAgICAgICAgICAgIF8oIm1lbWJlciBmdW5jdGlvbiAlcyBub3QgZm91bmQi KSwgdHN0cik7CiAjaWZkZWYgbGludAotICByZXR1cm4gY2FsbF9mdW5jdGlv bl9ieV9oYW5kIChhcmd2ZWNbMF0sIDIgLSBzdGF0aWNfbWVtZnVuY3AsIGFy Z3ZlYyArIDEpOworICByZXR1cm4gY2FsbF9mdW5jdGlvbl9ieV9oYW5kIChh cmd2ZWNbMF0sIDIgLSBzdGF0aWNfbWVtZnVuY3AsIGFyZ3ZlYyArIDEsCisJ CQkJZXhwKTsKICNlbmRpZgogfQogCkBAIC01MTIsMTAgKzUxOCwxNSBAQCB2 YWx1ZV94X2Jpbm9wIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIHN0cnVjdCB2YWx1 ZSAqYXJnMiwgZW51bSBleHBfb3Bjb2RlIG9wLAogICAgZGVmaW5lZCBvcGVy YXRvciB0aGF0IG1hdGNoZXMgdGhlIG9wZXJhdG9yIGluIHF1ZXN0aW9uLgog ICAgQ3JlYXRlIGFuIGFyZ3VtZW50IHZlY3RvciB0aGF0IGNhbGxzIGFyZzEu b3BlcmF0b3IgQCAoYXJnMSkKICAgIGFuZCByZXR1cm4gdGhhdCB2YWx1ZSAo d2hlcmUgJ0AnIGlzIChhbG1vc3QpIGFueSB1bmFyeSBvcGVyYXRvciB3aGlj aAotICAgaXMgbGVnYWwgZm9yIEdOVSBDKyspLiAgKi8KKyAgIGlzIGxlZ2Fs IGZvciBHTlUgQysrKS4KKworICAgRVhQIGlzIHRoZSBleHByZXNzaW9uIHdo b3NlIGV2YWx1YXRpb24gcmVxdWlyZXMgcGVyZm9ybWluZyB0aGUgdW5hcnkK KyAgIG9wZXJhdGlvbi4gIEl0IGlzIE5VTEwgaWYgdGhlIG9wZXJhdGlvbiBp cyBub3QgYmVpbmcgcGVyZm9ybWVkIGFzIHBhcnQKKyAgIG9mIGFuIGV4cHJl c3Npb24gZXZhbHVhdGlvbi4gICovCiAKIHN0cnVjdCB2YWx1ZSAqCi12YWx1 ZV94X3Vub3AgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgZW51bSBleHBfb3Bjb2Rl IG9wLCBlbnVtIG5vc2lkZSBub3NpZGUpCit2YWx1ZV94X3Vub3AgKHN0cnVj dCB2YWx1ZSAqYXJnMSwgZW51bSBleHBfb3Bjb2RlIG9wLCBlbnVtIG5vc2lk ZSBub3NpZGUsCisJICAgICAgc3RydWN0IGV4cHJlc3Npb24gKmV4cCkKIHsK ICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfdHlwZV9hcmNoICh2 YWx1ZV90eXBlIChhcmcxKSk7CiAgIHN0cnVjdCB2YWx1ZSAqKmFyZ3ZlYzsK QEAgLTYwOSw3ICs2MjAsNyBAQCB2YWx1ZV94X3Vub3AgKHN0cnVjdCB2YWx1 ZSAqYXJnMSwgZW51bSBleHBfb3Bjb2RlIG9wLCBlbnVtIG5vc2lkZSBub3Np ZGUpCiAJICByZXR1cm4gY2FsbF94bWV0aG9kIChhcmd2ZWNbMF0sIDEsIGFy Z3ZlYyArIDEpOwogCX0KICAgICAgIGVsc2UKLQlyZXR1cm4gY2FsbF9mdW5j dGlvbl9ieV9oYW5kIChhcmd2ZWNbMF0sIG5hcmdzLCBhcmd2ZWMgKyAxKTsK KwlyZXR1cm4gY2FsbF9mdW5jdGlvbl9ieV9oYW5kIChhcmd2ZWNbMF0sIG5h cmdzLCBhcmd2ZWMgKyAxLCBleHApOwogICAgIH0KICAgdGhyb3dfZXJyb3Ig KE5PVF9GT1VORF9FUlJPUiwKICAgICAgICAgICAgICAgIF8oIm1lbWJlciBm dW5jdGlvbiAlcyBub3QgZm91bmQiKSwgdHN0cik7CmRpZmYgLS1naXQgYS9n ZGIvdmFsb3BzLmMgYi9nZGIvdmFsb3BzLmMKaW5kZXggN2YzZTRmNS4uNWZj ZWZjMiAxMDA2NDQKLS0tIGEvZ2RiL3ZhbG9wcy5jCisrKyBiL2dkYi92YWxv cHMuYwpAQCAtMTkxLDcgKzE5MSw3IEBAIHZhbHVlX2FsbG9jYXRlX3NwYWNl X2luX2luZmVyaW9yIChpbnQgbGVuKQogICBzdHJ1Y3QgdmFsdWUgKmJsb2Nr bGVuOwogCiAgIGJsb2NrbGVuID0gdmFsdWVfZnJvbV9sb25nZXN0IChidWls dGluX3R5cGUgKGdkYmFyY2gpLT5idWlsdGluX2ludCwgbGVuKTsKLSAgdmFs ID0gY2FsbF9mdW5jdGlvbl9ieV9oYW5kICh2YWwsIDEsICZibG9ja2xlbik7 CisgIHZhbCA9IGNhbGxfZnVuY3Rpb25fYnlfaGFuZCAodmFsLCAxLCAmYmxv Y2tsZW4sIE5VTEwpOwogICBpZiAodmFsdWVfbG9naWNhbF9ub3QgKHZhbCkp CiAgICAgewogICAgICAgaWYgKCF0YXJnZXRfaGFzX2V4ZWN1dGlvbikKZGlm ZiAtLWdpdCBhL2dkYi92YWx1ZS5jIGIvZ2RiL3ZhbHVlLmMKaW5kZXggZWNm YjE1NC4uMDU4ZDA0ZiAxMDA2NDQKLS0tIGEvZ2RiL3ZhbHVlLmMKKysrIGIv Z2RiL3ZhbHVlLmMKQEAgLTEwODAsNiArMTA4MCwyMCBAQCBzZXRfdmFsdWVf cGFyZW50IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBzdHJ1Y3QgdmFsdWUgKnBh cmVudCkKICAgdmFsdWVfZnJlZSAob2xkKTsKIH0KIAorLyogV3JpdGUgY29u dGVudHMgb2YgViBhdCBBRERSLiAgQWxzbywgc2V0IGx2YWxfdHlwZSBvZiBW IHRvIGx2YWxfbWVtb3J5LgorICAgSXQgaXMgYXMgZXJyb3IgaWYgVidzIGx2 YWxfdHlwZSBpcyBhbnl0aGluZyBvdGhlciB0aGFuIG5vdF9sdmFsLiAgKi8K Kwordm9pZAord3JpdGVfdmFsdWVfdG9fbWVtb3J5IChzdHJ1Y3QgdmFsdWUg KnYsIENPUkVfQUREUiBhZGRyKQoreworICBnZGJfYXNzZXJ0IChWQUxVRV9M VkFMICh2KSA9PSBub3RfbHZhbCk7CisKKyAgd3JpdGVfbWVtb3J5IChhZGRy LCB2YWx1ZV9jb250ZW50c19yYXcgKHYpLCBUWVBFX0xFTkdUSCAodmFsdWVf dHlwZSAodikpKTsKKyAgVkFMVUVfTFZBTCAodikgPSBsdmFsX21lbW9yeTsK KyAgdi0+bG9jYXRpb24uYWRkcmVzcyA9IGFkZHI7CisgIHYtPmxhenkgPSAw OworfQorCiBnZGJfYnl0ZSAqCiB2YWx1ZV9jb250ZW50c19yYXcgKHN0cnVj dCB2YWx1ZSAqdmFsdWUpCiB7CkBAIC0zNzMwLDExICszNzQ0LDggQEAgdmFs dWVfaW5pdGlhbGl6ZWQgKHN0cnVjdCB2YWx1ZSAqdmFsKQogICByZXR1cm4g dmFsLT5pbml0aWFsaXplZDsKIH0KIAotLyogQ2FsbGVkIG9ubHkgZnJvbSB0 aGUgdmFsdWVfY29udGVudHMgYW5kIHZhbHVlX2NvbnRlbnRzX2FsbCgpCi0g ICBtYWNyb3MsIGlmIHRoZSBjdXJyZW50IGRhdGEgZm9yIGEgdmFyaWFibGUg bmVlZHMgdG8gYmUgbG9hZGVkIGludG8KLSAgIHZhbHVlX2NvbnRlbnRzKFZB TCkuICBGZXRjaGVzIHRoZSBkYXRhIGZyb20gdGhlIHVzZXIncyBwcm9jZXNz LCBhbmQKLSAgIGNsZWFycyB0aGUgbGF6eSBmbGFnIHRvIGluZGljYXRlIHRo YXQgdGhlIGRhdGEgaW4gdGhlIGJ1ZmZlciBpcwotICAgdmFsaWQuCisvKiBG ZXRjaGVzIHRoZSBkYXRhIGZyb20gdGhlIHVzZXIncyBwcm9jZXNzLCBhbmQg Y2xlYXJzIHRoZSBsYXp5IGZsYWcKKyAgIHRvIGluZGljYXRlIHRoYXQgdGhl IGRhdGEgaW4gdGhlIGJ1ZmZlciBpcyB2YWxpZC4KIAogICAgSWYgdGhlIHZh bHVlIGlzIHplcm8tbGVuZ3RoLCB3ZSBhdm9pZCBjYWxsaW5nIHJlYWRfbWVt b3J5LCB3aGljaAogICAgd291bGQgYWJvcnQuICBXZSBtYXJrIHRoZSB2YWx1 ZSBhcyBmZXRjaGVkIGFueXdheSAtLSBhbGwgMCBieXRlcyBvZgpkaWZmIC0t Z2l0IGEvZ2RiL3ZhbHVlLmggYi9nZGIvdmFsdWUuaAppbmRleCBlMzYwM2Mz Li4xZTBlZmVlIDEwMDY0NAotLS0gYS9nZGIvdmFsdWUuaAorKysgYi9nZGIv dmFsdWUuaApAQCAtMzYzLDYgKzM2Myw4IEBAIGV4dGVybiBjb25zdCBnZGJf Ynl0ZSAqCiAKIGV4dGVybiBpbnQgdmFsdWVfZmV0Y2hfbGF6eSAoc3RydWN0 IHZhbHVlICp2YWwpOwogCitleHRlcm4gdm9pZCB3cml0ZV92YWx1ZV90b19t ZW1vcnkgKHN0cnVjdCB2YWx1ZSAqdiwgQ09SRV9BRERSIGFkZHIpOworCiAv KiBJZiBub256ZXJvLCB0aGlzIGlzIHRoZSB2YWx1ZSBvZiBhIHZhcmlhYmxl IHdoaWNoIGRvZXMgbm90IGFjdHVhbGx5CiAgICBleGlzdCBpbiB0aGUgcHJv Z3JhbSwgYXQgbGVhc3QgcGFydGlhbGx5LiAgSWYgdGhlIHZhbHVlIGlzIGxh enksCiAgICB0aGlzIG1heSBmZXRjaCBpdCBub3cuICAqLwpAQCAtODE5LDYg KzgyMSwxMiBAQCBleHRlcm4gc3RydWN0IHZhbHVlICpldmFsdWF0ZV9zdWJl eHAgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKIGV4dGVybiBzdHJ1Y3Qg dmFsdWUgKmV2YWx1YXRlX3N1YmV4cHJlc3Npb25fdHlwZSAoc3RydWN0IGV4 cHJlc3Npb24gKmV4cCwKIAkJCQkJCSAgaW50IHN1YmV4cCk7CiAKK2V4dGVy biB2b2lkIGFkZF92YWx1ZV90b19leHByZXNzaW9uX3N0YWNrIChzdHJ1Y3Qg ZXhwcmVzc2lvbiAqZXhwLAorCQkJCQkgICBzdHJ1Y3QgdmFsdWUgKnYpOwor CitleHRlcm4gQ09SRV9BRERSIHNraXBfY3VycmVudF9leHByZXNzaW9uX3N0 YWNrIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorCQkJCQkJQ09SRV9BRERS IHNwLCBpbnQgZG93bndhcmQpOworCiBleHRlcm4gdm9pZCBmZXRjaF9zdWJl eHBfdmFsdWUgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcGMsCiAJ CQkJc3RydWN0IHZhbHVlICoqdmFscCwgc3RydWN0IHZhbHVlICoqcmVzdWx0 cCwKIAkJCQlzdHJ1Y3QgdmFsdWUgKip2YWxfY2hhaW4sCkBAIC05MzksMTAg Kzk0NywxMSBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9vZl90aGlz X3NpbGVudCAoY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gKmxhbmcpOwog ZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfeF9iaW5vcCAoc3RydWN0IHZh bHVlICphcmcxLCBzdHJ1Y3QgdmFsdWUgKmFyZzIsCiAJCQkJICAgIGVudW0g ZXhwX29wY29kZSBvcCwKIAkJCQkgICAgZW51bSBleHBfb3Bjb2RlIG90aGVy b3AsCi0JCQkJICAgIGVudW0gbm9zaWRlIG5vc2lkZSk7CisJCQkJICAgIGVu dW0gbm9zaWRlIG5vc2lkZSwKKwkJCQkgICAgc3RydWN0IGV4cHJlc3Npb24g KmV4cCk7CiAKIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3hfdW5vcCAo c3RydWN0IHZhbHVlICphcmcxLCBlbnVtIGV4cF9vcGNvZGUgb3AsCi0JCQkJ ICAgZW51bSBub3NpZGUgbm9zaWRlKTsKKwkJCQkgICBlbnVtIG5vc2lkZSBu b3NpZGUsIHN0cnVjdCBleHByZXNzaW9uICpleHApOwogCiBleHRlcm4gc3Ry dWN0IHZhbHVlICp2YWx1ZV9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqYXJn MXAsIHN0cnVjdCBmbl9maWVsZCAqZiwKIAkJCQkgICAgIGludCBqLCBzdHJ1 Y3QgdHlwZSAqdHlwZSwgaW50IG9mZnNldCk7Cg== --001a11c209be0f13110506400d82--