From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755506AbYDIVML (ORCPT ); Wed, 9 Apr 2008 17:12:11 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753471AbYDIVL5 (ORCPT ); Wed, 9 Apr 2008 17:11:57 -0400 Received: from el-out-1112.google.com ([209.85.162.178]:11888 "EHLO el-out-1112.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753226AbYDIVLz (ORCPT ); Wed, 9 Apr 2008 17:11:55 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=q60vdbzPi0D/UcViKImWMqatUDgbX72j9BTdwiT7vmUvK7Ww8CheVFd07n+sETE4U2oGYyUTu24uUw3FhIpOD1QzvXmO4H4HXCiiQ1Yv8nr16MUN0RutSVzEkc1cXLKUWQkdnFagwmdG2hPvOEi3BacNaG3bazFEgy1MssrXNog= Message-ID: <86802c440804091411n7775c444r5379b76e7b450332@mail.gmail.com> Date: Wed, 9 Apr 2008 14:11:53 -0700 From: "Yinghai Lu" To: "Pavel Machek" Subject: Re: build error on x86_64 with x86.git#latest Cc: "Ingo Molnar" , LKML In-Reply-To: <20080409210138.GA9660@ucw.cz> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_13818_32005627.1207775513748" References: <86802c440804091036p3a3837e8td8f17d6195561aaf@mail.gmail.com> <20080409204250.GD18968@elte.hu> <20080409210138.GA9660@ucw.cz> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org ------=_Part_13818_32005627.1207775513748 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline On Wed, Apr 9, 2008 at 2:01 PM, Pavel Machek wrote: > Hi! > > > > > commit 0465ac59164eda30f4fe49006a67dd6d2c9fc3cf > > > Author: Pavel Machek > > > Date: Wed Feb 20 01:48:39 2008 +0100 > > > > > > suspend: wakeup code in c > > > > oops, that was not meant to be pushed out at all - it was just a > > temporary merge which clearly needed more work. > > > > it's all fixed up now - please let me know if you still see any > > problems. > > Is there something I could do to pull this? Lu, could you post the patch > to fix the first problem you hit? > but Ingo already pulled off your patch. YH ------=_Part_13818_32005627.1207775513748 Content-Type: text/x-patch; name=fix_wakup_build.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_feuecxus0 Content-Disposition: attachment; filename=fix_wakup_build.patch SW5kZXg6IGxpbnV4LTIuNi9hcmNoL3g4Ni9rZXJuZWwvc21wYm9vdC5jCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IGxpbnV4LTIuNi5vcmlnL2FyY2gveDg2L2tlcm5lbC9zbXBib290LmMKKysrIGxpbnV4LTIuNi9h cmNoL3g4Ni9rZXJuZWwvc21wYm9vdC5jCkBAIC02MSw2ICs2MSw3IEBACiAjaW5jbHVkZSA8YXNt L25taS5oPgogI2luY2x1ZGUgPGFzbS92bWkuaD4KICNpbmNsdWRlIDxsaW51eC9tYzE0NjgxOHJ0 Yy5oPgorI2luY2x1ZGUgPGFzbS90cmFtcG9saW5lLmg+CiAKICNpbmNsdWRlIDxtYWNoX2FwaWMu aD4KICNpbmNsdWRlIDxtYWNoX3dha2VjcHUuaD4KSW5kZXg6IGxpbnV4LTIuNi9pbmNsdWRlL2Fz bS14ODYvc21wLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0gbGludXgtMi42Lm9yaWcvaW5jbHVkZS9hc20teDg2 L3NtcC5oCisrKyBsaW51eC0yLjYvaW5jbHVkZS9hc20teDg2L3NtcC5oCkBAIC01OSw3ICs1OSw4 IEBAIGV4dGVybiBzdHJ1Y3QgewogfSBzdGFja19zdGFydDsKIAogZXh0ZXJuIHVuc2lnbmVkIGxv bmcgaW5pdF9yc3A7Ci1leHRlcm4gdW5zaWduZWQgbG9uZyBpbml0aWFsX2NvZGU7CisvKmV4dGVy biB1bnNpZ25lZCBsb25nIGluaXRpYWxfY29kZTsqLworZXh0ZXJuIHZvaWQgKCppbml0aWFsX2Nv ZGUpKHZvaWQpOwogCiBzdHJ1Y3Qgc21wX29wcyB7CiAJdm9pZCAoKnNtcF9wcmVwYXJlX2Jvb3Rf Y3B1KSh2b2lkKTsK ------=_Part_13818_32005627.1207775513748 Content-Type: application/octet-stream; name=commit-0465ac5 Content-Transfer-Encoding: base64 X-Attachment-Id: f_feueekbq1 Content-Disposition: attachment; filename=commit-0465ac5 Y29tbWl0IDA0NjVhYzU5MTY0ZWRhMzBmNGZlNDkwMDZhNjdkZDZkMmM5ZmMzY2YKQXV0aG9yOiBQ YXZlbCBNYWNoZWsgPHBhdmVsQHN1c2UuY3o+CkRhdGU6ICAgV2VkIEZlYiAyMCAwMTo0ODozOSAy MDA4ICswMTAwCgogICAgc3VzcGVuZDogd2FrZXVwIGNvZGUgaW4gYwogICAgCiAgICAgICAgU3Vz cGVuZDogV2FrZXVwIGNvZGUgaW4gQwogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBJbmdvIE1vbG5h ciA8bWluZ29AZWx0ZS5odT4KCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9LY29uZmlnIGIvYXJjaC94 ODYvS2NvbmZpZwppbmRleCA1NmJlZjM5Li5lZGY0MmI4IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9L Y29uZmlnCisrKyBiL2FyY2gveDg2L0tjb25maWcKQEAgLTE5MSw3ICsxOTEsNyBAQCBjb25maWcg WDg2X0JJT1NfUkVCT09UCiAKIGNvbmZpZyBYODZfVFJBTVBPTElORQogCWJvb2wKLQlkZXBlbmRz IG9uIFg4Nl9TTVAgfHwgKFg4Nl9WT1lBR0VSICYmIFNNUCkKKwlkZXBlbmRzIG9uIFg4Nl9TTVAg fHwgKFg4Nl9WT1lBR0VSICYmIFNNUCkgfHwgKDY0QklUICYmIEFDUElfU0xFRVApCiAJZGVmYXVs dCB5CiAKIGNvbmZpZyBLVElNRV9TQ0FMQVIKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2Jvb3QvTWFr ZWZpbGUgYi9hcmNoL3g4Ni9ib290L01ha2VmaWxlCmluZGV4IDk2OTVhZmYuLjdlZTEwMmYgMTAw NjQ0Ci0tLSBhL2FyY2gveDg2L2Jvb3QvTWFrZWZpbGUKKysrIGIvYXJjaC94ODYvYm9vdC9NYWtl ZmlsZQpAQCAtMzAsNyArMzAsNyBAQCBzdWJkaXItCQk6PSBjb21wcmVzc2VkCiAKIHNldHVwLXkJ CSs9IGEyMC5vIGNtZGxpbmUubyBjb3B5Lm8gY3B1Lm8gY3B1Y2hlY2subyBlZGQubwogc2V0dXAt eQkJKz0gaGVhZGVyLm8gbWFpbi5vIG1jYS5vIG1lbW9yeS5vIHBtLm8gcG1qdW1wLm8KLXNldHVw LXkJCSs9IHByaW50Zi5vIHN0cmluZy5vIHR0eS5vIHZpZGVvLm8gdmVyc2lvbi5vCitzZXR1cC15 CQkrPSBwcmludGYubyBzdHJpbmcubyB0dHkubyB2aWRlby5vIHZpZGVvLW1vZGUubyB2ZXJzaW9u Lm8KIHNldHVwLSQoQ09ORklHX1g4Nl9BUE1fQk9PVCkgKz0gYXBtLm8KIHNldHVwLSQoQ09ORklH X1g4Nl9WT1lBR0VSKSArPSB2b3lhZ2VyLm8KIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvYm9vdC9i b290LmggYi9hcmNoL3g4Ni9ib290L2Jvb3QuaAppbmRleCA5MjU4NGU5Li5hMzRiOTk4IDEwMDY0 NAotLS0gYS9hcmNoL3g4Ni9ib290L2Jvb3QuaAorKysgYi9hcmNoL3g4Ni9ib290L2Jvb3QuaApA QCAtMjg0LDYgKzI4NCwxMSBAQCBpbnQgZ2V0Y2hhcl90aW1lb3V0KHZvaWQpOwogLyogdmlkZW8u YyAqLwogdm9pZCBzZXRfdmlkZW8odm9pZCk7CiAKKy8qIHZpZGVvLW1vZGUuYyAqLworaW50IHNl dF9tb2RlKHUxNiBtb2RlKTsKK2ludCBtb2RlX2RlZmluZWQodTE2IG1vZGUpOwordm9pZCBwcm9i ZV9jYXJkcyhpbnQgdW5zYWZlKTsKKwogLyogdmlkZW8tdmVzYS5jICovCiB2b2lkIHZlc2Ffc3Rv cmVfZWRpZCh2b2lkKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvYm9vdC92aWRlby1iaW9zLmMg Yi9hcmNoL3g4Ni9ib290L3ZpZGVvLWJpb3MuYwppbmRleCAyOWJjNDM4Li40OWYyNmFhIDEwMDY0 NAotLS0gYS9hcmNoL3g4Ni9ib290L3ZpZGVvLWJpb3MuYworKysgYi9hcmNoL3g4Ni9ib290L3Zp ZGVvLWJpb3MuYwpAQCAtNDgsNiArNDgsNyBAQCBzdGF0aWMgaW50IHNldF9iaW9zX21vZGUodTgg bW9kZSkKIAlpZiAobmV3X21vZGUgPT0gbW9kZSkKIAkJcmV0dXJuIDA7CS8qIE1vZGUgY2hhbmdl IE9LICovCiAKKyNpZm5kZWYgX1dBS0VVUAogCWlmIChuZXdfbW9kZSAhPSBib290X3BhcmFtcy5z Y3JlZW5faW5mby5vcmlnX3ZpZGVvX21vZGUpIHsKIAkJLyogTW9kZSBzZXR0aW5nIGZhaWxlZCwg YnV0IHdlIGRpZG4ndCBlbmQgdXAgd2hlcmUgd2UKIAkJICAgc3RhcnRlZC4gIFRoYXQncyBiYWQu ICBUcnkgdG8gcmV2ZXJ0IHRvIHRoZSBvcmlnaW5hbApAQCAtNTcsMTMgKzU4LDE4IEBAIHN0YXRp YyBpbnQgc2V0X2Jpb3NfbW9kZSh1OCBtb2RlKQogCQkJICAgICA6ICIrYSIgKGF4KQogCQkJICAg ICA6IDogImVieCIsICJlY3giLCAiZWR4IiwgImVzaSIsICJlZGkiKTsKIAl9CisjZW5kaWYKIAly ZXR1cm4gLTE7CiB9CiAKIHN0YXRpYyBpbnQgYmlvc19wcm9iZSh2b2lkKQogewogCXU4IG1vZGU7 CisjaWZkZWYgX1dBS0VVUAorCXU4IHNhdmVkX21vZGUgPSAweDAzOworI2Vsc2UKIAl1OCBzYXZl ZF9tb2RlID0gYm9vdF9wYXJhbXMuc2NyZWVuX2luZm8ub3JpZ192aWRlb19tb2RlOworI2VuZGlm CiAJdTE2IGNydGM7CiAJc3RydWN0IG1vZGVfaW5mbyAqbWk7CiAJaW50IG5tb2RlcyA9IDA7CmRp ZmYgLS1naXQgYS9hcmNoL3g4Ni9ib290L3ZpZGVvLW1vZGUuYyBiL2FyY2gveDg2L2Jvb3Qvdmlk ZW8tbW9kZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0OGU4ZDAKLS0t IC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9ib290L3ZpZGVvLW1vZGUuYwpAQCAtMCwwICsxLDE3 MyBAQAorLyogLSotIGxpbnV4LWMgLSotIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKgorICoKKyAqICAgQ29weXJpZ2h0IChDKSAxOTkxLCAx OTkyIExpbnVzIFRvcnZhbGRzCisgKiAgIENvcHlyaWdodCAyMDA3LTIwMDggclBhdGgsIEluYy4g LSBBbGwgUmlnaHRzIFJlc2VydmVkCisgKgorICogICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUg TGludXgga2VybmVsLCBhbmQgaXMgbWFkZSBhdmFpbGFibGUgdW5kZXIKKyAqICAgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuCisgKgorICogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gKi8KKworLyoKKyAqIGFyY2gvaTM4Ni9ib290L3ZpZGVvLW1vZGUuYworICoK KyAqIFNldCB0aGUgdmlkZW8gbW9kZS4gIFRoaXMgaXMgc2VwYXJhdGVkIG91dCBpbnRvIGEgZGlm ZmVyZW50CisgKiBmaWxlIGluIG9yZGVyIHRvIGJlIHNoYXJlZCB3aXRoIHRoZSBBQ1BJIHdha2V1 cCBjb2RlLgorICovCisKKyNpbmNsdWRlICJib290LmgiCisjaW5jbHVkZSAidmlkZW8uaCIKKyNp bmNsdWRlICJ2ZXNhLmgiCisKKy8qCisgKiBDb21tb24gdmFyaWFibGVzCisgKi8KK2ludCBhZGFw dGVyOwkJCS8qIDA9Q0dBL01EQS9IR0MsIDE9RUdBLCAyPVZHQSsgKi8KK3UxNiB2aWRlb19zZWdt ZW50OworaW50IGZvcmNlX3gsIGZvcmNlX3k7CS8qIERvbid0IHF1ZXJ5IHRoZSBCSU9TIGZvciBj b2xzL3Jvd3MgKi8KKworaW50IGRvX3Jlc3RvcmU7CQkvKiBTY3JlZW4gY29udGVudHMgY2hhbmdl ZCBkdXJpbmcgbW9kZSBmbGlwICovCitpbnQgZ3JhcGhpY19tb2RlOwkvKiBHcmFwaGljIG1vZGUg d2l0aCBsaW5lYXIgZnJhbWUgYnVmZmVyICovCisKKy8qIFByb2JlIHRoZSB2aWRlbyBkcml2ZXJz IGFuZCBoYXZlIHRoZW0gZ2VuZXJhdGUgdGhlaXIgbW9kZSBsaXN0cy4gKi8KK3ZvaWQgcHJvYmVf Y2FyZHMoaW50IHVuc2FmZSkKK3sKKwlzdHJ1Y3QgY2FyZF9pbmZvICpjYXJkOworCXN0YXRpYyB1 OCBwcm9iZWRbMl07CisKKwlpZiAocHJvYmVkW3Vuc2FmZV0pCisJCXJldHVybjsKKworCXByb2Jl ZFt1bnNhZmVdID0gMTsKKworCWZvciAoY2FyZCA9IHZpZGVvX2NhcmRzOyBjYXJkIDwgdmlkZW9f Y2FyZHNfZW5kOyBjYXJkKyspIHsKKwkJaWYgKGNhcmQtPnVuc2FmZSA9PSB1bnNhZmUpIHsKKwkJ CWlmIChjYXJkLT5wcm9iZSkKKwkJCQljYXJkLT5ubW9kZXMgPSBjYXJkLT5wcm9iZSgpOworCQkJ ZWxzZQorCQkJCWNhcmQtPm5tb2RlcyA9IDA7CisJCX0KKwl9Cit9CisKKy8qIFRlc3QgaWYgYSBt b2RlIGlzIGRlZmluZWQgKi8KK2ludCBtb2RlX2RlZmluZWQodTE2IG1vZGUpCit7CisJc3RydWN0 IGNhcmRfaW5mbyAqY2FyZDsKKwlzdHJ1Y3QgbW9kZV9pbmZvICptaTsKKwlpbnQgaTsKKworCWZv ciAoY2FyZCA9IHZpZGVvX2NhcmRzOyBjYXJkIDwgdmlkZW9fY2FyZHNfZW5kOyBjYXJkKyspIHsK KwkJbWkgPSBjYXJkLT5tb2RlczsKKwkJZm9yIChpID0gMDsgaSA8IGNhcmQtPm5tb2RlczsgaSsr LCBtaSsrKSB7CisJCQlpZiAobWktPm1vZGUgPT0gbW9kZSkKKwkJCQlyZXR1cm4gMTsKKwkJfQor CX0KKworCXJldHVybiAwOworfQorCisvKiBTZXQgbW9kZSAod2l0aG91dCByZWNhbGMpICovCitz dGF0aWMgaW50IHJhd19zZXRfbW9kZSh1MTYgbW9kZSwgdTE2ICpyZWFsX21vZGUpCit7CisJaW50 IG5tb2RlLCBpOworCXN0cnVjdCBjYXJkX2luZm8gKmNhcmQ7CisJc3RydWN0IG1vZGVfaW5mbyAq bWk7CisKKwkvKiBEcm9wIHRoZSByZWNhbGMgYml0IGlmIHNldCAqLworCW1vZGUgJj0gflZJREVP X1JFQ0FMQzsKKworCS8qIFNjYW4gZm9yIG1vZGUgYmFzZWQgb24gZml4ZWQgSUQsIHBvc2l0aW9u LCBvciByZXNvbHV0aW9uICovCisJbm1vZGUgPSAwOworCWZvciAoY2FyZCA9IHZpZGVvX2NhcmRz OyBjYXJkIDwgdmlkZW9fY2FyZHNfZW5kOyBjYXJkKyspIHsKKwkJbWkgPSBjYXJkLT5tb2RlczsK KwkJZm9yIChpID0gMDsgaSA8IGNhcmQtPm5tb2RlczsgaSsrLCBtaSsrKSB7CisJCQlpbnQgdmlz aWJsZSA9IG1pLT54IHx8IG1pLT55OworCisJCQlpZiAoKG1vZGUgPT0gbm1vZGUgJiYgdmlzaWJs ZSkgfHwKKwkJCSAgICBtb2RlID09IG1pLT5tb2RlIHx8CisJCQkgICAgbW9kZSA9PSAobWktPnkg PDwgOCkrbWktPngpIHsKKwkJCQkqcmVhbF9tb2RlID0gbWktPm1vZGU7CisJCQkJcmV0dXJuIGNh cmQtPnNldF9tb2RlKG1pKTsKKwkJCX0KKworCQkJaWYgKHZpc2libGUpCisJCQkJbm1vZGUrKzsK KwkJfQorCX0KKworCS8qIE5vdGhpbmcgZm91bmQ/ICBJcyBpdCBhbiAiZXhjZXB0aW9uYWwiICh1 bnByb2JlZCkgbW9kZT8gKi8KKwlmb3IgKGNhcmQgPSB2aWRlb19jYXJkczsgY2FyZCA8IHZpZGVv X2NhcmRzX2VuZDsgY2FyZCsrKSB7CisJCWlmIChtb2RlID49IGNhcmQtPnhtb2RlX2ZpcnN0ICYm CisJCSAgICBtb2RlIDwgY2FyZC0+eG1vZGVfZmlyc3QrY2FyZC0+eG1vZGVfbikgeworCQkJc3Ry dWN0IG1vZGVfaW5mbyBtaXg7CisJCQkqcmVhbF9tb2RlID0gbWl4Lm1vZGUgPSBtb2RlOworCQkJ bWl4LnggPSBtaXgueSA9IDA7CisJCQlyZXR1cm4gY2FyZC0+c2V0X21vZGUoJm1peCk7CisJCX0K Kwl9CisKKwkvKiBPdGhlcndpc2UsIGZhaWx1cmUuLi4gKi8KKwlyZXR1cm4gLTE7Cit9CisKKy8q CisgKiBSZWNhbGN1bGF0ZSB0aGUgdmVydGljYWwgdmlkZW8gY3V0b2ZmIChoYWNrISkKKyAqLwor c3RhdGljIHZvaWQgdmdhX3JlY2FsY192ZXJ0aWNhbCh2b2lkKQoreworCXVuc2lnbmVkIGludCBm b250X3NpemUsIHJvd3M7CisJdTE2IGNydGM7CisJdTggcHQsIG92OworCisJc2V0X2ZzKDApOwor CWZvbnRfc2l6ZSA9IHJkZnM4KDB4NDg1KTsgLyogQklPUzogZm9udCBzaXplIChwaXhlbHMpICov CisJcm93cyA9IGZvcmNlX3kgPyBmb3JjZV95IDogcmRmczgoMHg0ODQpKzE7IC8qIFRleHQgcm93 cyAqLworCisJcm93cyAqPSBmb250X3NpemU7CS8qIFZpc2libGUgc2NhbiBsaW5lcyAqLworCXJv d3MtLTsJCQkvKiAuLi4gbWludXMgb25lICovCisKKwljcnRjID0gdmdhX2NydGMoKTsKKworCXB0 ID0gaW5faWR4KGNydGMsIDB4MTEpOworCXB0ICY9IH4weDgwOwkJLyogVW5sb2NrIENSMC03ICov CisJb3V0X2lkeChwdCwgY3J0YywgMHgxMSk7CisKKwlvdXRfaWR4KCh1OClyb3dzLCBjcnRjLCAw eDEyKTsgLyogTG93ZXIgaGVpZ2h0IHJlZ2lzdGVyICovCisKKwlvdiA9IGluX2lkeChjcnRjLCAw eDA3KTsgLyogT3ZlcmZsb3cgcmVnaXN0ZXIgKi8KKwlvdiAmPSAweGJkOworCW92IHw9IChyb3dz ID4+ICg4LTEpKSAmIDB4MDI7CisJb3YgfD0gKHJvd3MgPj4gKDktNikpICYgMHg0MDsKKwlvdXRf aWR4KG92LCBjcnRjLCAweDA3KTsKK30KKworLyogU2V0IG1vZGUgKHdpdGggcmVjYWxjIGlmIHNw ZWNpZmllZCkgKi8KK2ludCBzZXRfbW9kZSh1MTYgbW9kZSkKK3sKKwlpbnQgcnY7CisJdTE2IHJl YWxfbW9kZTsKKworCS8qIFZlcnkgc3BlY2lhbCBtb2RlIG51bWJlcnMuLi4gKi8KKwlpZiAobW9k ZSA9PSBWSURFT19DVVJSRU5UX01PREUpCisJCXJldHVybiAwOwkvKiBOb3RoaW5nIHRvIGRvLi4u ICovCisJZWxzZSBpZiAobW9kZSA9PSBOT1JNQUxfVkdBKQorCQltb2RlID0gVklERU9fODB4MjU7 CisJZWxzZSBpZiAobW9kZSA9PSBFWFRFTkRFRF9WR0EpCisJCW1vZGUgPSBWSURFT184UE9JTlQ7 CisKKwlydiA9IHJhd19zZXRfbW9kZShtb2RlLCAmcmVhbF9tb2RlKTsKKwlpZiAocnYpCisJCXJl dHVybiBydjsKKworCWlmIChtb2RlICYgVklERU9fUkVDQUxDKQorCQl2Z2FfcmVjYWxjX3ZlcnRp Y2FsKCk7CisKKwkvKiBTYXZlIHRoZSBjYW5vbmljYWwgbW9kZSBudW1iZXIgZm9yIHRoZSBrZXJu ZWwsIG5vdAorCSAgIGFuIGFsaWFzLCBzaXplIHNwZWNpZmljYXRpb24gb3IgbWVudSBwb3NpdGlv biAqLworI2lmbmRlZiBfV0FLRVVQCisJYm9vdF9wYXJhbXMuaGRyLnZpZF9tb2RlID0gcmVhbF9t b2RlOworI2VuZGlmCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9ib290L3Zp ZGVvLXZlc2EuYyBiL2FyY2gveDg2L2Jvb3QvdmlkZW8tdmVzYS5jCmluZGV4IDViMTA5OWUuLjQw MWFkOTkgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2Jvb3QvdmlkZW8tdmVzYS5jCisrKyBiL2FyY2gv eDg2L2Jvb3QvdmlkZW8tdmVzYS5jCkBAIC0yMiw3ICsyMiwxMSBAQCBzdGF0aWMgc3RydWN0IHZl c2FfbW9kZV9pbmZvIHZtaW5mbzsKIAogX192aWRlb2NhcmQgdmlkZW9fdmVzYTsKIAorI2lmbmRl ZiBfV0FLRVVQCiBzdGF0aWMgdm9pZCB2ZXNhX3N0b3JlX21vZGVfcGFyYW1zX2dyYXBoaWNzKHZv aWQpOworI2Vsc2UgLyogX1dBS0VVUCAqLworc3RhdGljIGlubGluZSB2b2lkIHZlc2Ffc3RvcmVf bW9kZV9wYXJhbXNfZ3JhcGhpY3Modm9pZCkge30KKyNlbmRpZiAvKiBfV0FLRVVQICovCiAKIHN0 YXRpYyBpbnQgdmVzYV9wcm9iZSh2b2lkKQogewpAQCAtMTYzLDYgKzE2Nyw4IEBAIHN0YXRpYyBp bnQgdmVzYV9zZXRfbW9kZShzdHJ1Y3QgbW9kZV9pbmZvICptb2RlKQogfQogCiAKKyNpZm5kZWYg X1dBS0VVUAorCiAvKiBTd2l0Y2ggREFDIHRvIDgtYml0IG1vZGUgKi8KIHN0YXRpYyB2b2lkIHZl c2FfZGFjX3NldF84Yml0cyh2b2lkKQogewpAQCAtMjg2LDYgKzI5Miw4IEBAIHZvaWQgdmVzYV9z dG9yZV9lZGlkKHZvaWQpCiAjZW5kaWYgLyogQ09ORklHX0ZJUk1XQVJFX0VESUQgKi8KIH0KIAor I2VuZGlmIC8qIG5vdCBfV0FLRVVQICovCisKIF9fdmlkZW9jYXJkIHZpZGVvX3Zlc2EgPQogewog CS5jYXJkX25hbWUJPSAiVkVTQSIsCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9ib290L3ZpZGVvLXZn YS5jIGIvYXJjaC94ODYvYm9vdC92aWRlby12Z2EuYwppbmRleCBlNDA1YmU4Li40MGVjYjhkIDEw MDY0NAotLS0gYS9hcmNoL3g4Ni9ib290L3ZpZGVvLXZnYS5jCisrKyBiL2FyY2gveDg2L2Jvb3Qv dmlkZW8tdmdhLmMKQEAgLTIwOCw2ICsyMDgsOCBAQCBzdGF0aWMgaW50IHZnYV9zZXRfbW9kZShz dHJ1Y3QgbW9kZV9pbmZvICptb2RlKQogICovCiBzdGF0aWMgaW50IHZnYV9wcm9iZSh2b2lkKQog eworCXUxNiBlZ2FfYng7CisKIAlzdGF0aWMgY29uc3QgY2hhciAqY2FyZF9uYW1lW10gPSB7CiAJ CSJDR0EvTURBL0hHQyIsICJFR0EiLCAiVkdBIgogCX07CkBAIC0yMjQsMTIgKzIyNiwxNiBAQCBz dGF0aWMgaW50IHZnYV9wcm9iZSh2b2lkKQogCXU4IHZnYV9mbGFnOwogCiAJYXNtKElOVDEwCi0J ICAgIDogIj1iIiAoYm9vdF9wYXJhbXMuc2NyZWVuX2luZm8ub3JpZ192aWRlb19lZ2FfYngpCisJ ICAgIDogIj1iIiAoZWdhX2J4KQogCSAgICA6ICJhIiAoMHgxMjAwKSwgImIiICgweDEwKSAvKiBD aGVjayBFR0EvVkdBICovCiAJICAgIDogImVjeCIsICJlZHgiLCAiZXNpIiwgImVkaSIpOwogCisj aWZuZGVmIF9XQUtFVVAKKwlib290X3BhcmFtcy5zY3JlZW5faW5mby5vcmlnX3ZpZGVvX2VnYV9i eCA9IGVnYV9ieDsKKyNlbmRpZgorCiAJLyogSWYgd2UgaGF2ZSBNREEvQ0dBL0hHQyB0aGVuIEJM IHdpbGwgYmUgdW5jaGFuZ2VkIGF0IDB4MTAgKi8KLQlpZiAoKHU4KWJvb3RfcGFyYW1zLnNjcmVl bl9pbmZvLm9yaWdfdmlkZW9fZWdhX2J4ICE9IDB4MTApIHsKKwlpZiAoKHU4KWVnYV9ieCAhPSAw eDEwKSB7CiAJCS8qIEVHQS9WR0EgKi8KIAkJYXNtKElOVDEwCiAJCSAgICA6ICI9YSIgKHZnYV9m bGFnKQpAQCAtMjM4LDcgKzI0NCw5IEBAIHN0YXRpYyBpbnQgdmdhX3Byb2JlKHZvaWQpCiAKIAkJ aWYgKHZnYV9mbGFnID09IDB4MWEpIHsKIAkJCWFkYXB0ZXIgPSBBREFQVEVSX1ZHQTsKKyNpZm5k ZWYgX1dBS0VVUAogCQkJYm9vdF9wYXJhbXMuc2NyZWVuX2luZm8ub3JpZ192aWRlb19pc1ZHQSA9 IDE7CisjZW5kaWYKIAkJfSBlbHNlIHsKIAkJCWFkYXB0ZXIgPSBBREFQVEVSX0VHQTsKIAkJfQpk aWZmIC0tZ2l0IGEvYXJjaC94ODYvYm9vdC92aWRlby5jIGIvYXJjaC94ODYvYm9vdC92aWRlby5j CmluZGV4IDVkNTY3MWEuLjgzNTk4YjIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2Jvb3QvdmlkZW8u YworKysgYi9hcmNoL3g4Ni9ib290L3ZpZGVvLmMKQEAgLTE2LDIxICsxNiw2IEBACiAjaW5jbHVk ZSAidmlkZW8uaCIKICNpbmNsdWRlICJ2ZXNhLmgiCiAKLS8qCi0gKiBNb2RlIGxpc3QgdmFyaWFi bGVzCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgY2FyZF9pbmZvIGNhcmRzW107ICAgIC8qIExpc3Qgb2Yg Y2FyZHMgdG8gcHJvYmUgZm9yICovCi0KLS8qCi0gKiBDb21tb24gdmFyaWFibGVzCi0gKi8KLWlu dCBhZGFwdGVyOwkJCS8qIDA9Q0dBL01EQS9IR0MsIDE9RUdBLCAyPVZHQSsgKi8KLXUxNiB2aWRl b19zZWdtZW50OwotaW50IGZvcmNlX3gsIGZvcmNlX3k7CS8qIERvbid0IHF1ZXJ5IHRoZSBCSU9T IGZvciBjb2xzL3Jvd3MgKi8KLQotaW50IGRvX3Jlc3RvcmUgPSAwOwkvKiBTY3JlZW4gY29udGVu dHMgY2hhbmdlZCBkdXJpbmcgbW9kZSBmbGlwICovCi1pbnQgZ3JhcGhpY19tb2RlOwkvKiBHcmFw aGljIG1vZGUgd2l0aCBsaW5lYXIgZnJhbWUgYnVmZmVyICovCi0KIHN0YXRpYyB2b2lkIHN0b3Jl X2N1cnNvcl9wb3NpdGlvbih2b2lkKQogewogCXUxNiBjdXJwb3M7CkBAIC0xMDUsMTQ3ICs5MCw2 IEBAIHN0YXRpYyB2b2lkIHN0b3JlX21vZGVfcGFyYW1zKHZvaWQpCiAJYm9vdF9wYXJhbXMuc2Ny ZWVuX2luZm8ub3JpZ192aWRlb19saW5lcyA9IHk7CiB9CiAKLS8qIFByb2JlIHRoZSB2aWRlbyBk cml2ZXJzIGFuZCBoYXZlIHRoZW0gZ2VuZXJhdGUgdGhlaXIgbW9kZSBsaXN0cy4gKi8KLXN0YXRp YyB2b2lkIHByb2JlX2NhcmRzKGludCB1bnNhZmUpCi17Ci0Jc3RydWN0IGNhcmRfaW5mbyAqY2Fy ZDsKLQlzdGF0aWMgdTggcHJvYmVkWzJdOwotCi0JaWYgKHByb2JlZFt1bnNhZmVdKQotCQlyZXR1 cm47Ci0KLQlwcm9iZWRbdW5zYWZlXSA9IDE7Ci0KLQlmb3IgKGNhcmQgPSB2aWRlb19jYXJkczsg Y2FyZCA8IHZpZGVvX2NhcmRzX2VuZDsgY2FyZCsrKSB7Ci0JCWlmIChjYXJkLT51bnNhZmUgPT0g dW5zYWZlKSB7Ci0JCQlpZiAoY2FyZC0+cHJvYmUpCi0JCQkJY2FyZC0+bm1vZGVzID0gY2FyZC0+ cHJvYmUoKTsKLQkJCWVsc2UKLQkJCQljYXJkLT5ubW9kZXMgPSAwOwotCQl9Ci0JfQotfQotCi0v KiBUZXN0IGlmIGEgbW9kZSBpcyBkZWZpbmVkICovCi1pbnQgbW9kZV9kZWZpbmVkKHUxNiBtb2Rl KQotewotCXN0cnVjdCBjYXJkX2luZm8gKmNhcmQ7Ci0Jc3RydWN0IG1vZGVfaW5mbyAqbWk7Ci0J aW50IGk7Ci0KLQlmb3IgKGNhcmQgPSB2aWRlb19jYXJkczsgY2FyZCA8IHZpZGVvX2NhcmRzX2Vu ZDsgY2FyZCsrKSB7Ci0JCW1pID0gY2FyZC0+bW9kZXM7Ci0JCWZvciAoaSA9IDA7IGkgPCBjYXJk LT5ubW9kZXM7IGkrKywgbWkrKykgewotCQkJaWYgKG1pLT5tb2RlID09IG1vZGUpCi0JCQkJcmV0 dXJuIDE7Ci0JCX0KLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyogU2V0IG1vZGUgKHdpdGhvdXQg cmVjYWxjKSAqLwotc3RhdGljIGludCByYXdfc2V0X21vZGUodTE2IG1vZGUsIHUxNiAqcmVhbF9t b2RlKQotewotCWludCBubW9kZSwgaTsKLQlzdHJ1Y3QgY2FyZF9pbmZvICpjYXJkOwotCXN0cnVj dCBtb2RlX2luZm8gKm1pOwotCi0JLyogRHJvcCB0aGUgcmVjYWxjIGJpdCBpZiBzZXQgKi8KLQlt b2RlICY9IH5WSURFT19SRUNBTEM7Ci0KLQkvKiBTY2FuIGZvciBtb2RlIGJhc2VkIG9uIGZpeGVk IElELCBwb3NpdGlvbiwgb3IgcmVzb2x1dGlvbiAqLwotCW5tb2RlID0gMDsKLQlmb3IgKGNhcmQg PSB2aWRlb19jYXJkczsgY2FyZCA8IHZpZGVvX2NhcmRzX2VuZDsgY2FyZCsrKSB7Ci0JCW1pID0g Y2FyZC0+bW9kZXM7Ci0JCWZvciAoaSA9IDA7IGkgPCBjYXJkLT5ubW9kZXM7IGkrKywgbWkrKykg ewotCQkJaW50IHZpc2libGUgPSBtaS0+eCB8fCBtaS0+eTsKLQotCQkJaWYgKChtb2RlID09IG5t b2RlICYmIHZpc2libGUpIHx8Ci0JCQkgICAgbW9kZSA9PSBtaS0+bW9kZSB8fAotCQkJICAgIG1v ZGUgPT0gKG1pLT55IDw8IDgpK21pLT54KSB7Ci0JCQkJKnJlYWxfbW9kZSA9IG1pLT5tb2RlOwot CQkJCXJldHVybiBjYXJkLT5zZXRfbW9kZShtaSk7Ci0JCQl9Ci0KLQkJCWlmICh2aXNpYmxlKQot CQkJCW5tb2RlKys7Ci0JCX0KLQl9Ci0KLQkvKiBOb3RoaW5nIGZvdW5kPyAgSXMgaXQgYW4gImV4 Y2VwdGlvbmFsIiAodW5wcm9iZWQpIG1vZGU/ICovCi0JZm9yIChjYXJkID0gdmlkZW9fY2FyZHM7 IGNhcmQgPCB2aWRlb19jYXJkc19lbmQ7IGNhcmQrKykgewotCQlpZiAobW9kZSA+PSBjYXJkLT54 bW9kZV9maXJzdCAmJgotCQkgICAgbW9kZSA8IGNhcmQtPnhtb2RlX2ZpcnN0K2NhcmQtPnhtb2Rl X24pIHsKLQkJCXN0cnVjdCBtb2RlX2luZm8gbWl4OwotCQkJKnJlYWxfbW9kZSA9IG1peC5tb2Rl ID0gbW9kZTsKLQkJCW1peC54ID0gbWl4LnkgPSAwOwotCQkJcmV0dXJuIGNhcmQtPnNldF9tb2Rl KCZtaXgpOwotCQl9Ci0JfQotCi0JLyogT3RoZXJ3aXNlLCBmYWlsdXJlLi4uICovCi0JcmV0dXJu IC0xOwotfQotCi0vKgotICogUmVjYWxjdWxhdGUgdGhlIHZlcnRpY2FsIHZpZGVvIGN1dG9mZiAo aGFjayEpCi0gKi8KLXN0YXRpYyB2b2lkIHZnYV9yZWNhbGNfdmVydGljYWwodm9pZCkKLXsKLQl1 bnNpZ25lZCBpbnQgZm9udF9zaXplLCByb3dzOwotCXUxNiBjcnRjOwotCXU4IHB0LCBvdjsKLQot CXNldF9mcygwKTsKLQlmb250X3NpemUgPSByZGZzOCgweDQ4NSk7IC8qIEJJT1M6IGZvbnQgc2l6 ZSAocGl4ZWxzKSAqLwotCXJvd3MgPSBmb3JjZV95ID8gZm9yY2VfeSA6IHJkZnM4KDB4NDg0KSsx OyAvKiBUZXh0IHJvd3MgKi8KLQotCXJvd3MgKj0gZm9udF9zaXplOwkvKiBWaXNpYmxlIHNjYW4g bGluZXMgKi8KLQlyb3dzLS07CQkJLyogLi4uIG1pbnVzIG9uZSAqLwotCi0JY3J0YyA9IHZnYV9j cnRjKCk7Ci0KLQlwdCA9IGluX2lkeChjcnRjLCAweDExKTsKLQlwdCAmPSB+MHg4MDsJCS8qIFVu bG9jayBDUjAtNyAqLwotCW91dF9pZHgocHQsIGNydGMsIDB4MTEpOwotCi0Jb3V0X2lkeCgodTgp cm93cywgY3J0YywgMHgxMik7IC8qIExvd2VyIGhlaWdodCByZWdpc3RlciAqLwotCi0Jb3YgPSBp bl9pZHgoY3J0YywgMHgwNyk7IC8qIE92ZXJmbG93IHJlZ2lzdGVyICovCi0Jb3YgJj0gMHhiZDsK LQlvdiB8PSAocm93cyA+PiAoOC0xKSkgJiAweDAyOwotCW92IHw9IChyb3dzID4+ICg5LTYpKSAm IDB4NDA7Ci0Jb3V0X2lkeChvdiwgY3J0YywgMHgwNyk7Ci19Ci0KLS8qIFNldCBtb2RlICh3aXRo IHJlY2FsYyBpZiBzcGVjaWZpZWQpICovCi1zdGF0aWMgaW50IHNldF9tb2RlKHUxNiBtb2RlKQot ewotCWludCBydjsKLQl1MTYgcmVhbF9tb2RlOwotCi0JLyogVmVyeSBzcGVjaWFsIG1vZGUgbnVt YmVycy4uLiAqLwotCWlmIChtb2RlID09IFZJREVPX0NVUlJFTlRfTU9ERSkKLQkJcmV0dXJuIDA7 CS8qIE5vdGhpbmcgdG8gZG8uLi4gKi8KLQllbHNlIGlmIChtb2RlID09IE5PUk1BTF9WR0EpCi0J CW1vZGUgPSBWSURFT184MHgyNTsKLQllbHNlIGlmIChtb2RlID09IEVYVEVOREVEX1ZHQSkKLQkJ bW9kZSA9IFZJREVPXzhQT0lOVDsKLQotCXJ2ID0gcmF3X3NldF9tb2RlKG1vZGUsICZyZWFsX21v ZGUpOwotCWlmIChydikKLQkJcmV0dXJuIHJ2OwotCi0JaWYgKG1vZGUgJiBWSURFT19SRUNBTEMp Ci0JCXZnYV9yZWNhbGNfdmVydGljYWwoKTsKLQotCS8qIFNhdmUgdGhlIGNhbm9uaWNhbCBtb2Rl IG51bWJlciBmb3IgdGhlIGtlcm5lbCwgbm90Ci0JICAgYW4gYWxpYXMsIHNpemUgc3BlY2lmaWNh dGlvbiBvciBtZW51IHBvc2l0aW9uICovCi0JYm9vdF9wYXJhbXMuaGRyLnZpZF9tb2RlID0gcmVh bF9tb2RlOwotCXJldHVybiAwOwotfQotCiBzdGF0aWMgdW5zaWduZWQgaW50IGdldF9lbnRyeSh2 b2lkKQogewogCWNoYXIgZW50cnlfYnVmWzRdOwpAQCAtNDg0LDYgKzMyOCw3IEBAIHZvaWQgc2V0 X3ZpZGVvKHZvaWQpCiAJCXByaW50ZigiVW5kZWZpbmVkIHZpZGVvIG1vZGUgbnVtYmVyOiAleFxu IiwgbW9kZSk7CiAJCW1vZGUgPSBBU0tfVkdBOwogCX0KKwlib290X3BhcmFtcy5oZHIudmlkX21v ZGUgPSBtb2RlOwogCXZlc2Ffc3RvcmVfZWRpZCgpOwogCXN0b3JlX21vZGVfcGFyYW1zKCk7CiAK ZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hY3BpL01ha2VmaWxlIGIvYXJjaC94ODYva2Vy bmVsL2FjcGkvTWFrZWZpbGUKaW5kZXggMTlkM2Q2ZS4uMGJhMjZkNSAxMDA2NDQKLS0tIGEvYXJj aC94ODYva2VybmVsL2FjcGkvTWFrZWZpbGUKKysrIGIvYXJjaC94ODYva2VybmVsL2FjcGkvTWFr ZWZpbGUKQEAgLTEsNyArMSwxMyBAQAorc3ViZGlyLQkJCQk6PSByZWFsbW9kZQorCiBvYmotJChD T05GSUdfQUNQSSkJCSs9IGJvb3Qubwotb2JqLSQoQ09ORklHX0FDUElfU0xFRVApCSs9IHNsZWVw Lm8gd2FrZXVwXyQoQklUUykubworb2JqLSQoQ09ORklHX0FDUElfU0xFRVApCSs9IHNsZWVwLm8g d2FrZXVwX3JtLm8gd2FrZXVwXyQoQklUUykubwogCiBpZm5lcSAoJChDT05GSUdfQUNQSV9QUk9D RVNTT1IpLCkKIG9iai15CQkJCSs9IGNzdGF0ZS5vIHByb2Nlc3Nvci5vCiBlbmRpZgogCiskKG9i aikvd2FrZXVwX3JtLm86ICAgICQob2JqKS9yZWFsbW9kZS93YWtldXAuYmluCisKKyQob2JqKS9y ZWFsbW9kZS93YWtldXAuYmluOiBGT1JDRQorCSQoUSkkKE1BS0UpICQoYnVpbGQpPSQob2JqKS9y ZWFsbW9kZSAkQApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2FjcGkvcmVhbG1vZGUvTWFr ZWZpbGUgYi9hcmNoL3g4Ni9rZXJuZWwvYWNwaS9yZWFsbW9kZS9NYWtlZmlsZQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTI5MDA4Ci0tLSAvZGV2L251bGwKKysrIGIvYXJj aC94ODYva2VybmVsL2FjcGkvcmVhbG1vZGUvTWFrZWZpbGUKQEAgLTAsMCArMSw1NyBAQAorIwor IyBhcmNoL3g4Ni9rZXJuZWwvYWNwaS9yZWFsbW9kZS9NYWtlZmlsZQorIworIyBUaGlzIGZpbGUg aXMgc3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYworIyBMaWNlbnNlLiAgU2VlIHRoZSBmaWxlICJDT1BZSU5HIiBpbiB0aGUgbWFpbiBk aXJlY3Rvcnkgb2YgdGhpcyBhcmNoaXZlCisjIGZvciBtb3JlIGRldGFpbHMuCisjCisKK3Rhcmdl dHMJCTo9IHdha2V1cC5iaW4gd2FrZXVwLmVsZgorCit3YWtldXAteQkrPSB3YWtldXAubyB3YWtl bWFpbi5vIHZpZGVvLW1vZGUubyBjb3B5Lm8KKworIyBUaGUgbGluayBvcmRlciBvZiB0aGUgdmlk ZW8tKi5vIG1vZHVsZXMgY2FuIG1hdHRlci4gIEluIHBhcnRpY3VsYXIsCisjIHZpZGVvLXZnYS5v ICptdXN0KiBiZSBsaXN0ZWQgZmlyc3QsIGZvbGxvd2VkIGJ5IHZpZGVvLXZlc2Euby4KKyMgSGFy ZHdhcmUtc3BlY2lmaWMgZHJpdmVycyBzaG91bGQgZm9sbG93IGluIHRoZSBvcmRlciB0aGV5IHNo b3VsZCBiZQorIyBwcm9iZWQsIGFuZCB2aWRlby1iaW9zLm8gc2hvdWxkIHR5cGljYWxseSBiZSBs YXN0Lgord2FrZXVwLXkJKz0gdmlkZW8tdmdhLm8KK3dha2V1cC15CSs9IHZpZGVvLXZlc2Eubwor d2FrZXVwLXkJKz0gdmlkZW8tYmlvcy5vCisKK3RhcmdldHMJCSs9ICQod2FrZXVwLXkpCisKK2Jv b3RzcmMJCTo9ICQoc3JjKS8uLi8uLi8uLi9ib290CisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK KyMgSG93IHRvIGNvbXBpbGUgdGhlIDE2LWJpdCBjb2RlLiAgTm90ZSB3ZSBhbHdheXMgY29tcGls ZSBmb3IgLW1hcmNoPWkzODYsCisjIHRoYXQgd2F5IHdlIGNhbiBjb21wbGFpbiB0byB0aGUgdXNl ciBpZiB0aGUgQ1BVIGlzIGluc3VmZmljaWVudC4KKyMgQ29tcGlsZSB3aXRoIF9TRVRVUCBzaW5j ZSB0aGlzIGlzIHNpbWlsYXIgdG8gdGhlIGJvb3QtdGltZSBzZXR1cCBjb2RlLgorS0JVSUxEX0NG TEFHUwk6PSAkKExJTlVYSU5DTFVERSkgLWcgLU9zIC1EX1NFVFVQIC1EX1dBS0VVUCAtRF9fS0VS TkVMX18gXAorCQkgICAtSSQoc3JjdHJlZSkvJChib290c3JjKSBcCisJCSAgICQoY2ZsYWdzLXkp IFwKKwkJICAgLVdhbGwgLVdzdHJpY3QtcHJvdG90eXBlcyBcCisJCSAgIC1tYXJjaD1pMzg2IC1t cmVncGFybT0zIFwKKwkJICAgLWluY2x1ZGUgJChzcmN0cmVlKS8kKGJvb3RzcmMpL2NvZGUxNmdj Yy5oIFwKKwkJICAgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZvbWl0LWZyYW1lLXBvaW50ZXIgXAor CQkgICAkKGNhbGwgY2Mtb3B0aW9uLCAtZmZyZWVzdGFuZGluZykgXAorCQkgICAkKGNhbGwgY2Mt b3B0aW9uLCAtZm5vLXRvcGxldmVsLXJlb3JkZXIsXAorCQkJJChjYWxsIGNjLW9wdGlvbiwgLWZu by11bml0LWF0LWEtdGltZSkpIFwKKwkJICAgJChjYWxsIGNjLW9wdGlvbiwgLWZuby1zdGFjay1w cm90ZWN0b3IpIFwKKwkJICAgJChjYWxsIGNjLW9wdGlvbiwgLW1wcmVmZXJyZWQtc3RhY2stYm91 bmRhcnk9MikKK0tCVUlMRF9DRkxBR1MJKz0gJChjYWxsIGNjLW9wdGlvbiwgLW0zMikKK0tCVUlM RF9BRkxBR1MJOj0gJChLQlVJTERfQ0ZMQUdTKSAtRF9fQVNTRU1CTFlfXworCitXQUtFVVBfT0JK UyA9ICQoYWRkcHJlZml4ICQob2JqKS8sJCh3YWtldXAteSkpCisKK0xERkxBR1Nfd2FrZXVwLmVs Zgk6PSAtVAorCitDUFBGTEFHU193YWtldXAubGRzICs9IC1QIC1DCisKKyQob2JqKS93YWtldXAu ZWxmOiAkKHNyYykvd2FrZXVwLmxkcyAkKFdBS0VVUF9PQkpTKSBGT1JDRQorCSQoY2FsbCBpZl9j aGFuZ2VkLGxkKQorCitPQkpDT1BZRkxBR1Nfd2FrZXVwLmJpbgk6PSAtTyBiaW5hcnkKKworJChv YmopL3dha2V1cC5iaW46ICQob2JqKS93YWtldXAuZWxmIEZPUkNFCisJJChjYWxsIGlmX2NoYW5n ZWQsb2JqY29weSkKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hY3BpL3JlYWxtb2RlL2Nv cHkuUyBiL2FyY2gveDg2L2tlcm5lbC9hY3BpL3JlYWxtb2RlL2NvcHkuUwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzU5ZWJlCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94 ODYva2VybmVsL2FjcGkvcmVhbG1vZGUvY29weS5TCkBAIC0wLDAgKzEgQEAKKyNpbmNsdWRlICIu Li8uLi8uLi9ib290L2NvcHkuUyIKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hY3BpL3Jl YWxtb2RlL3ZpZGVvLWJpb3MuYyBiL2FyY2gveDg2L2tlcm5lbC9hY3BpL3JlYWxtb2RlL3ZpZGVv LWJpb3MuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZGVhYmMxCi0tLSAv ZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL2FjcGkvcmVhbG1vZGUvdmlkZW8tYmlvcy5j CkBAIC0wLDAgKzEgQEAKKyNpbmNsdWRlICIuLi8uLi8uLi9ib290L3ZpZGVvLWJpb3MuYyIKZGlm ZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hY3BpL3JlYWxtb2RlL3ZpZGVvLW1vZGUuYyBiL2Fy Y2gveDg2L2tlcm5lbC9hY3BpL3JlYWxtb2RlL3ZpZGVvLW1vZGUuYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi4zMjhhZDIwCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYv a2VybmVsL2FjcGkvcmVhbG1vZGUvdmlkZW8tbW9kZS5jCkBAIC0wLDAgKzEgQEAKKyNpbmNsdWRl ICIuLi8uLi8uLi9ib290L3ZpZGVvLW1vZGUuYyIKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5l bC9hY3BpL3JlYWxtb2RlL3ZpZGVvLXZlc2EuYyBiL2FyY2gveDg2L2tlcm5lbC9hY3BpL3JlYWxt b2RlL3ZpZGVvLXZlc2EuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZGJi OTY3Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL2FjcGkvcmVhbG1vZGUvdmlk ZW8tdmVzYS5jCkBAIC0wLDAgKzEgQEAKKyNpbmNsdWRlICIuLi8uLi8uLi9ib290L3ZpZGVvLXZl c2EuYyIKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hY3BpL3JlYWxtb2RlL3ZpZGVvLXZn YS5jIGIvYXJjaC94ODYva2VybmVsL2FjcGkvcmVhbG1vZGUvdmlkZW8tdmdhLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmNjODEyNQotLS0gL2Rldi9udWxsCisrKyBiL2Fy Y2gveDg2L2tlcm5lbC9hY3BpL3JlYWxtb2RlL3ZpZGVvLXZnYS5jCkBAIC0wLDAgKzEgQEAKKyNp bmNsdWRlICIuLi8uLi8uLi9ib290L3ZpZGVvLXZnYS5jIgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYv a2VybmVsL2FjcGkvcmVhbG1vZGUvd2FrZW1haW4uYyBiL2FyY2gveDg2L2tlcm5lbC9hY3BpL3Jl YWxtb2RlL3dha2VtYWluLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODgz OTYyZAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hY3BpL3JlYWxtb2RlL3dh a2VtYWluLmMKQEAgLTAsMCArMSw4MSBAQAorI2luY2x1ZGUgIndha2V1cC5oIgorI2luY2x1ZGUg ImJvb3QuaCIKKworc3RhdGljIHZvaWQgdWRlbGF5KGludCBsb29wcykKK3sKKwl3aGlsZSAobG9v cHMtLSkKKwkJaW9fZGVsYXkoKTsJLyogQXBwcm94aW1hdGVseSAxIHVzICovCit9CisKK3N0YXRp YyB2b2lkIGJlZXAodW5zaWduZWQgaW50IGh6KQoreworCXU4IGVuYWJsZTsKKworCWlmICghaHop IHsKKwkJZW5hYmxlID0gMHgwMDsJCS8qIFR1cm4gb2ZmIHNwZWFrZXIgKi8KKwl9IGVsc2Ugewor CQl1MTYgZGl2ID0gMTE5MzE4MS9oejsKKworCQlvdXRiKDB4YjYsIDB4NDMpOwkvKiBDdHIgMiwg c3F1YXJld2F2ZSwgbG9hZCwgYmluYXJ5ICovCisJCWlvX2RlbGF5KCk7CisJCW91dGIoZGl2LCAw eDQyKTsJLyogTFNCIG9mIGNvdW50ZXIgKi8KKwkJaW9fZGVsYXkoKTsKKwkJb3V0YihkaXYgPj4g OCwgMHg0Mik7CS8qIE1TQiBvZiBjb3VudGVyICovCisJCWlvX2RlbGF5KCk7CisKKwkJZW5hYmxl ID0gMHgwMzsJCS8qIFR1cm4gb24gc3BlYWtlciAqLworCX0KKwlpbmIoMHg2MSk7CQkvKiBEdW1t eSByZWFkIG9mIFN5c3RlbSBDb250cm9sIFBvcnQgQiAqLworCWlvX2RlbGF5KCk7CisJb3V0Yihl bmFibGUsIDB4NjEpOwkvKiBFbmFibGUgdGltZXIgMiBvdXRwdXQgdG8gc3BlYWtlciAqLworCWlv X2RlbGF5KCk7Cit9CisKKyNkZWZpbmUgRE9UX0haCQk4ODAKKyNkZWZpbmUgREFTSF9IWgkJNTg3 CisjZGVmaW5lIFVTX1BFUl9ET1QJMTI1MDAwCisKKy8qIE9rYXksIHRoaXMgaXMgdG90YWxseSBz aWxseSwgYnV0IGl0J3Mga2luZCBvZiBmdW4uICovCitzdGF0aWMgdm9pZCBzZW5kX21vcnNlKGNv bnN0IGNoYXIgKnBhdHRlcm4pCit7CisJY2hhciBzOworCisJd2hpbGUgKChzID0gKnBhdHRlcm4r KykpIHsKKwkJc3dpdGNoIChzKSB7CisJCWNhc2UgJy4nOgorCQkJYmVlcChET1RfSFopOworCQkJ dWRlbGF5KFVTX1BFUl9ET1QpOworCQkJYmVlcCgwKTsKKwkJCXVkZWxheShVU19QRVJfRE9UKTsK KwkJCWJyZWFrOworCQljYXNlICctJzoKKwkJCWJlZXAoREFTSF9IWik7CisJCQl1ZGVsYXkoVVNf UEVSX0RPVCAqIDMpOworCQkJYmVlcCgwKTsKKwkJCXVkZWxheShVU19QRVJfRE9UKTsKKwkJCWJy ZWFrOworCQlkZWZhdWx0OgkvKiBBc3N1bWUgaXQncyBhIHNwYWNlICovCisJCQl1ZGVsYXkoVVNf UEVSX0RPVCAqIDMpOworCQkJYnJlYWs7CisJCX0KKwl9Cit9CisKK3ZvaWQgbWFpbih2b2lkKQor eworCS8qIEtpbGwgbWFjaGluZSBpZiBzdHJ1Y3R1cmVzIGFyZSB3cm9uZyAqLworCWlmICh3YWtl dXBfaGVhZGVyLnJlYWxfbWFnaWMgIT0gMHgxMjM0NTY3OCkKKwkJd2hpbGUgKDEpOworCisJaWYg KHdha2V1cF9oZWFkZXIucmVhbG1vZGVfZmxhZ3MgJiA0KQorCQlzZW5kX21vcnNlKCIuLi4tIik7 CisKKwlpZiAod2FrZXVwX2hlYWRlci5yZWFsbW9kZV9mbGFncyAmIDEpCisJCWFzbSB2b2xhdGls ZSgibGNhbGx3ICAgJDB4YzAwMCwkMyIpOworCisJaWYgKHdha2V1cF9oZWFkZXIucmVhbG1vZGVf ZmxhZ3MgJiAyKSB7CisJCS8qIE5lZWQgdG8gY2FsbCBCSU9TICovCisJCXByb2JlX2NhcmRzKDAp OworCQlzZXRfbW9kZSh3YWtldXBfaGVhZGVyLnZpZGVvX21vZGUpOworCX0KK30KZGlmZiAtLWdp dCBhL2FyY2gveDg2L2tlcm5lbC9hY3BpL3JlYWxtb2RlL3dha2V1cC5TIGIvYXJjaC94ODYva2Vy bmVsL2FjcGkvcmVhbG1vZGUvd2FrZXVwLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uZjliNzdmYgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hY3BpL3Jl YWxtb2RlL3dha2V1cC5TCkBAIC0wLDAgKzEsMTEzIEBACisvKgorICogQUNQSSB3YWtldXAgcmVh bCBtb2RlIHN0YXJ0dXAgc3R1YgorICovCisjaW5jbHVkZSA8YXNtL3NlZ21lbnQuaD4KKyNpbmNs dWRlIDxhc20vbXNyLWluZGV4Lmg+CisjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KKyNpbmNsdWRlIDxh c20vcGd0YWJsZS5oPgorCisJLmNvZGUxNgorCS5zZWN0aW9uICIuaGVhZGVyIiwgImEiCisKKy8q IFRoaXMgc2hvdWxkIG1hdGNoIHRoZSBzdHJ1Y3R1cmUgaW4gd2FrZXVwLmggKi8KKwkJLmdsb2Js CXdha2V1cF9oZWFkZXIKK3dha2V1cF9oZWFkZXI6Cit2aWRlb19tb2RlOgkuc2hvcnQJMAkvKiBW aWRlbyBtb2RlIG51bWJlciAqLworcG1vZGVfcmV0dXJuOgkuYnl0ZQkweDY2LCAweGVhCS8qIGxq bXBsICovCisJCS5sb25nCTAJLyogb2Zmc2V0IGdvZXMgaGVyZSAqLworCQkuc2hvcnQJX19LRVJO RUxfQ1MKK3Btb2RlX2NyMDoJLmxvbmcJMAkvKiBTYXZlZCAlY3IwICovCitwbW9kZV9jcjM6CS5s b25nCTAJLyogU2F2ZWQgJWNyMyAqLworcG1vZGVfY3I0OgkubG9uZwkwCS8qIFNhdmVkICVjcjQg Ki8KK3Btb2RlX2VmZXI6CS5xdWFkCTAJLyogU2F2ZWQgRUZFUiAqLworcG1vZGVfZ2R0OgkucXVh ZAkwCityZWFsbW9kZV9mbGFnczoJLmxvbmcJMAorcmVhbF9tYWdpYzoJLmxvbmcJMAordHJhbXBv bGluZV9zZWdtZW50Ogkud29yZCAwCitzaWduYXR1cmU6CS5sb25nCTB4NTFlZTExMTEKKworCS50 ZXh0CisJLmdsb2JsCV9zdGFydAorCS5jb2RlMTYKK3dha2V1cF9jb2RlOgorX3N0YXJ0OgorCWNs aQorCWNsZAorCisJLyogU2V0IHVwIHNlZ21lbnRzICovCisJbW92dwklY3MsICVheAorCW1vdncJ JWF4LCAlZHMKKwltb3Z3CSVheCwgJWVzCisJbW92dwklYXgsICVzcworCisJbW92bAkkd2FrZXVw X3N0YWNrX2VuZCwgJWVzcAorCisJLyogQ2xlYXIgdGhlIEVGTEFHUyAqLworCXB1c2hsCSQwCisJ cG9wZmwKKworCS8qIENoZWNrIGhlYWRlciBzaWduYXR1cmUuLi4gKi8KKwltb3ZsCXNpZ25hdHVy ZSwgJWVheAorCWNtcGwJJDB4NTFlZTExMTEsICVlYXgKKwlqbmUJYm9ndXNfcmVhbF9tYWdpYwor CisJLyogQ2hlY2sgd2UgcmVhbGx5IGhhdmUgZXZlcnl0aGluZy4uLiAqLworCW1vdmwJZW5kX3Np Z25hdHVyZSwgJWVheAorCWNtcGwJJDB4NjVhMjJjODIsICVlYXgKKwlqbmUJYm9ndXNfcmVhbF9t YWdpYworCisJLyogQ2FsbCB0aGUgQyBjb2RlICovCisJY2FsbGwJbWFpbgorCisJLyogRG8gYW55 IG90aGVyIHN0dWZmLi4uICovCisKKyNpZm5kZWYgQ09ORklHXzY0QklUCisJLyogVGhpcyBjb3Vs ZCBhbHNvIGJlIGRvbmUgaW4gQyBjb2RlLi4uICovCisJbW92bAlwbW9kZV9jcjMsICVlYXgKKwlt b3ZsCSVlYXgsICVjcjMKKworCW1vdmwJcG1vZGVfY3I0LCAlZWN4CisJamVjeHoJMWYKKwltb3Zs CSVlY3gsICVjcjQKKzE6CisJbW92bAlwbW9kZV9lZmVyLCAlZWF4CisJbW92bAlwbW9kZV9lZmVy ICsgNCwgJWVkeAorCW1vdmwJJWVheCwgJWVjeAorCW9ybAklZWR4LCAlZWN4CisJanoJMWYKKwlt b3ZsCSQweGMwMDAwMDgwLCAlZWN4CisJd3Jtc3IKKzE6CisKKwlsZ2R0bAlwbW9kZV9nZHQKKwor CS8qIFRoaXMgcmVhbGx5IGNvdWxkbid0Li4uICovCisJbW92bAlwbW9kZV9jcjAsICVlYXgKKwlt b3ZsCSVlYXgsICVjcjAKKwlqbXAJcG1vZGVfcmV0dXJuCisjZWxzZQorCXB1c2h3CSQwCisJcHVz aHcJdHJhbXBvbGluZV9zZWdtZW50CisJcHVzaHcJJDAKKwlscmV0CisjZW5kaWYKKworYm9ndXNf cmVhbF9tYWdpYzoKKzE6CisJaGx0CisJam1wCTFiCisKKwkuZGF0YQorCS5iYWxpZ24JNAorCS5n bG9ibAlIRUFQLCBoZWFwX2VuZAorSEVBUDoKKwkubG9uZwl3YWtldXBfaGVhcAoraGVhcF9lbmQ6 CisJLmxvbmcJd2FrZXVwX3N0YWNrCisKKwkuYnNzCit3YWtldXBfaGVhcDoKKwkuc3BhY2UJMjA0 OAord2FrZXVwX3N0YWNrOgorCS5zcGFjZQkyMDQ4Cit3YWtldXBfc3RhY2tfZW5kOgpkaWZmIC0t Z2l0IGEvYXJjaC94ODYva2VybmVsL2FjcGkvcmVhbG1vZGUvd2FrZXVwLmggYi9hcmNoL3g4Ni9r ZXJuZWwvYWNwaS9yZWFsbW9kZS93YWtldXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi5lZjgxNjZmCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL2FjcGkv cmVhbG1vZGUvd2FrZXVwLmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIERlZmluaXRpb25zIGZv ciB0aGUgd2FrZXVwIGRhdGEgc3RydWN0dXJlIGF0IHRoZSBoZWFkIG9mIHRoZQorICogd2FrZXVw IGNvZGUuCisgKi8KKworI2lmbmRlZiBBUkNIX1g4Nl9LRVJORUxfQUNQSV9STV9XQUtFVVBfSAor I2RlZmluZSBBUkNIX1g4Nl9LRVJORUxfQUNQSV9STV9XQUtFVVBfSAorCisjaWZuZGVmIF9fQVNT RU1CTFlfXworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisKKy8qIFRoaXMgbXVzdCBtYXRjaCBk YXRhIGF0IHdha2V1cC5TICovCitzdHJ1Y3Qgd2FrZXVwX2hlYWRlciB7CisJdTE2IHZpZGVvX21v ZGU7CQkvKiBWaWRlbyBtb2RlIG51bWJlciAqLworCXUxNiBfam1wMTsJCS8qIGxqbXBsIG9wY29k ZSwgMzItYml0IG9ubHkgKi8KKwl1MzIgcG1vZGVfZW50cnk7CS8qIFByb3RlY3RlZCBtb2RlIHJl c3VtZSBwb2ludCwgMzItYml0IG9ubHkgKi8KKwl1MTYgX2ptcDI7CQkvKiBDUyB2YWx1ZSwgMzIt Yml0IG9ubHkgKi8KKwl1MzIgcG1vZGVfY3IwOwkJLyogUHJvdGVjdGVkIG1vZGUgY3IwICovCisJ dTMyIHBtb2RlX2NyMzsJCS8qIFByb3RlY3RlZCBtb2RlIGNyMyAqLworCXUzMiBwbW9kZV9jcjQ7 CQkvKiBQcm90ZWN0ZWQgbW9kZSBjcjQgKi8KKwl1MzIgcG1vZGVfZWZlcl9sb3c7CS8qIFByb3Rl Y3RlZCBtb2RlIEVGRVIgKi8KKwl1MzIgcG1vZGVfZWZlcl9oaWdoOworCXU2NCBwbW9kZV9nZHQ7 CisJdTMyIHJlYWxtb2RlX2ZsYWdzOworCXUzMiByZWFsX21hZ2ljOworCXUxNiB0cmFtcG9saW5l X3NlZ21lbnQ7CS8qIHNlZ21lbnQgd2l0aCB0cmFtcG9saW5lIGNvZGUsIDY0LWJpdCBvbmx5ICov CisJdTMyIHNpZ25hdHVyZTsJCS8qIFRvIGNoZWNrIHdlIGhhdmUgY29ycmVjdCBzdHJ1Y3R1cmUg Ki8KK30gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXykpOworCitleHRlcm4gc3RydWN0IHdha2V1 cF9oZWFkZXIgd2FrZXVwX2hlYWRlcjsKKyNlbmRpZgorCisjZGVmaW5lIEhFQURFUl9PRkZTRVQg MHgzZjAwCisjZGVmaW5lIFdBS0VVUF9TSVpFICAgMHg0MDAwCisKKyNlbmRpZiAvKiBBUkNIX1g4 Nl9LRVJORUxfQUNQSV9STV9XQUtFVVBfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVs L2FjcGkvcmVhbG1vZGUvd2FrZXVwLmxkcy5TIGIvYXJjaC94ODYva2VybmVsL2FjcGkvcmVhbG1v ZGUvd2FrZXVwLmxkcy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyZmFi NmMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9rZXJuZWwvYWNwaS9yZWFsbW9kZS93YWtl dXAubGRzLlMKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIHdha2V1cC5sZAorICoKKyAqIExpbmtl ciBzY3JpcHQgZm9yIHRoZSByZWFsLW1vZGUgd2FrZXVwIGNvZGUKKyAqLworI3VuZGVmIGkzODYK KyNpbmNsdWRlICJ3YWtldXAuaCIKKworT1VUUFVUX0ZPUk1BVCgiZWxmMzItaTM4NiIsICJlbGYz Mi1pMzg2IiwgImVsZjMyLWkzODYiKQorT1VUUFVUX0FSQ0goaTM4NikKK0VOVFJZKF9zdGFydCkK KworU0VDVElPTlMKK3sKKwkuID0gSEVBREVSX09GRlNFVDsKKwkuaGVhZGVyIDogeworCQkgKigu aGVhZGVyKQorCX0KKworCS4gPSAwOworCS50ZXh0IDogeworCQkgKigudGV4dCopCisJfQorCisJ LiA9IEFMSUdOKDE2KTsKKwkucm9kYXRhIDogeworCQkqKC5yb2RhdGEqKQorCX0KKworCS52aWRl b2NhcmRzIDogeworCQl2aWRlb19jYXJkcyA9IC47CisJCSooLnZpZGVvY2FyZHMpCisJCXZpZGVv X2NhcmRzX2VuZCA9IC47CisJfQorCisJLiA9IEFMSUdOKDE2KTsKKwkuZGF0YSA6IHsKKwkJICoo LmRhdGEqKQorCX0KKworCS5zaWduYXR1cmUgOiB7CisJCWVuZF9zaWduYXR1cmUgPSAuOworCQlM T05HKDB4NjVhMjJjODIpCisJfQorCisJLiA9IEFMSUdOKDE2KTsKKwkuYnNzIDoJeworCQlfX2Jz c19zdGFydCA9IC47CisJCSooLmJzcykKKwkJX19ic3NfZW5kID0gLjsKKwl9CisKKwkuID0gQUxJ R04oMTYpOworCV9lbmQgPSAuOworCisJL0RJU0NBUkQvIDogeworCQkqKC5ub3RlKikKKwl9CisK KwkuID0gQVNTRVJUKF9lbmQgPD0gV0FLRVVQX1NJWkUsICJXYWtldXAgdG9vIGJpZyEiKTsKK30K ZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hY3BpL3NsZWVwLmMgYi9hcmNoL3g4Ni9rZXJu ZWwvYWNwaS9zbGVlcC5jCmluZGV4IGRkNzgzMjYuLjFkYTQ4NGMgMTAwNjQ0Ci0tLSBhL2FyY2gv eDg2L2tlcm5lbC9hY3BpL3NsZWVwLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2FjcGkvc2xlZXAu YwpAQCAtMTAsMzAgKzEwLDcyIEBACiAjaW5jbHVkZSA8bGludXgvZG1pLmg+CiAjaW5jbHVkZSA8 bGludXgvY3B1bWFzay5oPgogCi0jaW5jbHVkZSA8YXNtL3NtcC5oPgorI2luY2x1ZGUgInJlYWxt b2RlL3dha2V1cC5oIgorI2luY2x1ZGUgInNsZWVwLmgiCiAKIC8qIGFkZHJlc3MgaW4gbG93IG1l bW9yeSBvZiB0aGUgd2FrZXVwIHJvdXRpbmUuICovCiB1bnNpZ25lZCBsb25nIGFjcGlfd2FrZXVw X2FkZHJlc3M7CiB1bnNpZ25lZCBsb25nIGFjcGlfcmVhbG1vZGVfZmxhZ3M7Ci1leHRlcm4gY2hh ciB3YWtldXBfc3RhcnQsIHdha2V1cF9lbmQ7CiAKLWV4dGVybiB1bnNpZ25lZCBsb25nIGFjcGlf Y29weV93YWtldXBfcm91dGluZSh1bnNpZ25lZCBsb25nKTsKK3N0YXRpYyB1bnNpZ25lZCBsb25n IGFjcGlfcmVhbG1vZGU7CisKKyNpZmRlZiBDT05GSUdfNjRCSVQKK3N0YXRpYyBjaGFyIHRlbXBf c3RhY2tbMTAyNDBdOworI2VuZGlmCiAKIC8qKgogICogYWNwaV9zYXZlX3N0YXRlX21lbSAtIHNh dmUga2VybmVsIHN0YXRlCiAgKgogICogQ3JlYXRlIGFuIGlkZW50aXR5IG1hcHBlZCBwYWdlIHRh YmxlIGFuZCBjb3B5IHRoZSB3YWtldXAgcm91dGluZSB0bwogICogbG93IG1lbW9yeS4KKyAqCisg KiBOb3RlIHRoYXQgdGhpcyBpcyB0b28gbGF0ZSB0byBjaGFuZ2UgYWNwaV93YWtldXBfYWRkcmVz cy4KICAqLwogaW50IGFjcGlfc2F2ZV9zdGF0ZV9tZW0odm9pZCkKIHsKLQlpZiAoIWFjcGlfd2Fr ZXVwX2FkZHJlc3MpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJDb3VsZCBub3QgYWxsb2NhdGUgbWVt b3J5IGR1cmluZyBib290LCBTMyBkaXNhYmxlZFxuIik7CisJc3RydWN0IHdha2V1cF9oZWFkZXIg KmhlYWRlcjsKKworCWlmICghYWNwaV9yZWFsbW9kZSkgeworCQlwcmludGsoS0VSTl9FUlIgIkNv dWxkIG5vdCBhbGxvY2F0ZSBtZW1vcnkgZHVyaW5nIGJvb3QsICIKKwkJICAgICAgICJTMyBkaXNh YmxlZFxuIik7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KLQltZW1jcHkoKHZvaWQgKilhY3BpX3dh a2V1cF9hZGRyZXNzLCAmd2FrZXVwX3N0YXJ0LAotCSAgICAgICAmd2FrZXVwX2VuZCAtICZ3YWtl dXBfc3RhcnQpOwotCWFjcGlfY29weV93YWtldXBfcm91dGluZShhY3BpX3dha2V1cF9hZGRyZXNz KTsKKwltZW1jcHkoKHZvaWQgKilhY3BpX3JlYWxtb2RlLCAmd2FrZXVwX2NvZGVfc3RhcnQsIFdB S0VVUF9TSVpFKTsKKworCWhlYWRlciA9IChzdHJ1Y3Qgd2FrZXVwX2hlYWRlciAqKShhY3BpX3Jl YWxtb2RlICsgSEVBREVSX09GRlNFVCk7CisJaWYgKGhlYWRlci0+c2lnbmF0dXJlICE9IDB4NTFl ZTExMTEpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJ3YWtldXAgaGVhZGVyIGRvZXMgbm90IG1hdGNo XG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaGVhZGVyLT52aWRlb19tb2RlID0gc2F2 ZWRfdmlkZW9fbW9kZTsKKworI2lmbmRlZiBDT05GSUdfNjRCSVQKKwlzdG9yZV9nZHQoKHN0cnVj dCBkZXNjX3B0ciAqKSZoZWFkZXItPnBtb2RlX2dkdCk7CisKKwloZWFkZXItPnBtb2RlX2VmZXJf bG93ID0gbnhfZW5hYmxlZDsKKwlpZiAoaGVhZGVyLT5wbW9kZV9lZmVyX2xvdyAmIDEpIHsKKwkJ LyogVGhpcyBpcyBzdHJhbmdlLCB3aHkgbm90IHNhdmUgZWZlciwgYWx3YXlzPyAqLworCQlyZG1z cihNU1JfRUZFUiwgaGVhZGVyLT5wbW9kZV9lZmVyX2xvdywKKwkJCWhlYWRlci0+cG1vZGVfZWZl cl9oaWdoKTsKKwl9CisjZW5kaWYgLyogIUNPTkZJR182NEJJVCAqLworCisJaGVhZGVyLT5wbW9k ZV9jcjAgPSByZWFkX2NyMCgpOworCWhlYWRlci0+cG1vZGVfY3I0ID0gcmVhZF9jcjQoKTsKKwlo ZWFkZXItPnJlYWxtb2RlX2ZsYWdzID0gYWNwaV9yZWFsbW9kZV9mbGFnczsKKwloZWFkZXItPnJl YWxfbWFnaWMgPSAweDEyMzQ1Njc4OworCisjaWZuZGVmIENPTkZJR182NEJJVAorCWhlYWRlci0+ cG1vZGVfZW50cnkgPSAodTMyKSZ3YWtldXBfcG1vZGVfcmV0dXJuOworCWhlYWRlci0+cG1vZGVf Y3IzID0gKHUzMikoc3dzdXNwX3BnX2RpciAtIF9fUEFHRV9PRkZTRVQpOworCXNhdmVkX21hZ2lj ID0gMHgxMjM0NTY3ODsKKyNlbHNlIC8qIENPTkZJR182NEJJVCAqLworCWhlYWRlci0+dHJhbXBv bGluZV9zZWdtZW50ID0gc2V0dXBfdHJhbXBvbGluZSgpID4+IDQ7CisJaW5pdF9yc3AgPSAodW5z aWduZWQgbG9uZyl0ZW1wX3N0YWNrICsgNDA5NjsKKwlpbml0aWFsX2NvZGUgPSB3YWtldXBfbG9u ZzY0OworCXNhdmVkX21hZ2ljID0gMHgxMjM0NTY3ODlhYmNkZWYwOworI2VuZGlmIC8qIENPTkZJ R182NEJJVCAqLwogCiAJcmV0dXJuIDA7CiB9CkBAIC01NiwxNSArOTgsMjAgQEAgdm9pZCBhY3Bp X3Jlc3RvcmVfc3RhdGVfbWVtKHZvaWQpCiAgKi8KIHZvaWQgX19pbml0IGFjcGlfcmVzZXJ2ZV9i b290bWVtKHZvaWQpCiB7Ci0JaWYgKCgmd2FrZXVwX2VuZCAtICZ3YWtldXBfc3RhcnQpID4gUEFH RV9TSVpFKjIpIHsKKwlpZiAoKCZ3YWtldXBfY29kZV9lbmQgLSAmd2FrZXVwX2NvZGVfc3RhcnQp ID4gV0FLRVVQX1NJWkUpIHsKIAkJcHJpbnRrKEtFUk5fRVJSCiAJCSAgICAgICAiQUNQSTogV2Fr ZXVwIGNvZGUgd2F5IHRvbyBiaWcsIFMzIGRpc2FibGVkLlxuIik7CiAJCXJldHVybjsKIAl9CiAK LQlhY3BpX3dha2V1cF9hZGRyZXNzID0gKHVuc2lnbmVkIGxvbmcpYWxsb2NfYm9vdG1lbV9sb3co UEFHRV9TSVpFKjIpOwotCWlmICghYWNwaV93YWtldXBfYWRkcmVzcykKKwlhY3BpX3JlYWxtb2Rl ID0gKHVuc2lnbmVkIGxvbmcpYWxsb2NfYm9vdG1lbV9sb3coV0FLRVVQX1NJWkUpOworCisJaWYg KCFhY3BpX3JlYWxtb2RlKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiQUNQSTogQ2Fubm90IGFsbG9j YXRlIGxvd21lbSwgUzMgZGlzYWJsZWQuXG4iKTsKKwkJcmV0dXJuOworCX0KKworCWFjcGlfd2Fr ZXVwX2FkZHJlc3MgPSBhY3BpX3JlYWxtb2RlOwogfQogCiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2 L2tlcm5lbC9hY3BpL3NsZWVwLmggYi9hcmNoL3g4Ni9rZXJuZWwvYWNwaS9zbGVlcC5oCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5YTc1ZDkKLS0tIC9kZXYvbnVsbAorKysg Yi9hcmNoL3g4Ni9rZXJuZWwvYWNwaS9zbGVlcC5oCkBAIC0wLDAgKzEsMTggQEAKKy8qCisgKglW YXJpYWJsZXMgYW5kIGZ1bmN0aW9ucyB1c2VkIGJ5IHRoZSBjb2RlIGluIHNsZWVwLmMKKyAqLwor CisjaW5jbHVkZSA8YXNtL3RyYW1wb2xpbmUuaD4KKworZXh0ZXJuIGNoYXIgd2FrZXVwX2NvZGVf c3RhcnQsIHdha2V1cF9jb2RlX2VuZDsKKworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgc2F2ZWRfdmlk ZW9fbW9kZTsKK2V4dGVybiBsb25nIHNhdmVkX21hZ2ljOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcg aW5pdF9yc3A7CitleHRlcm4gdm9pZCAoKmluaXRpYWxfY29kZSkodm9pZCk7CisKK2V4dGVybiBp bnQgd2FrZXVwX3Btb2RlX3JldHVybjsKK2V4dGVybiBjaGFyIHN3c3VzcF9wZ19kaXJbUEFHRV9T SVpFXTsKKworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgYWNwaV9jb3B5X3dha2V1cF9yb3V0aW5lKHVu c2lnbmVkIGxvbmcpOworZXh0ZXJuIHZvaWQgd2FrZXVwX2xvbmc2NCh2b2lkKTsKZGlmZiAtLWdp dCBhL2FyY2gveDg2L2tlcm5lbC9hY3BpL3NsZWVwXzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvYWNw aS9zbGVlcF8zMi5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2M2ZlNTUyLi4wMDAw MDAwCi0tLSBhL2FyY2gveDg2L2tlcm5lbC9hY3BpL3NsZWVwXzMyLmMKKysrIC9kZXYvbnVsbApA QCAtMSw0MCArMCwwIEBACi0vKgotICogc2xlZXAuYyAtIHg4Ni1zcGVjaWZpYyBBQ1BJIHNsZWVw IHN1cHBvcnQuCi0gKgotICogIENvcHlyaWdodCAoQykgMjAwMS0yMDAzIFBhdHJpY2sgTW9jaGVs Ci0gKiAgQ29weXJpZ2h0IChDKSAyMDAxLTIwMDMgUGF2ZWwgTWFjaGVrIDxwYXZlbEBzdXNlLmN6 PgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9hY3BpLmg+Ci0jaW5jbHVkZSA8bGludXgvYm9vdG1l bS5oPgotI2luY2x1ZGUgPGxpbnV4L2RtaS5oPgotI2luY2x1ZGUgPGxpbnV4L2NwdW1hc2suaD4K LQotI2luY2x1ZGUgPGFzbS9zbXAuaD4KLQotLyogT3VjaCwgd2Ugd2FudCB0byBkZWxldGUgdGhp cy4gV2UgYWxyZWFkeSBoYXZlIGJldHRlciB2ZXJzaW9uIGluIHVzZXJzcGFjZSwgaW4KLSAgIHMy cmFtIGZyb20gc3VzcGVuZC5zZi5uZXQgcHJvamVjdCAqLwotc3RhdGljIF9faW5pdCBpbnQgcmVz ZXRfdmlkZW9tb2RlX2FmdGVyX3MzKGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkICpkKQotewot CWFjcGlfcmVhbG1vZGVfZmxhZ3MgfD0gMjsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIF9faW5p dGRhdGEgc3RydWN0IGRtaV9zeXN0ZW1faWQgYWNwaXNsZWVwX2RtaV90YWJsZVtdID0gewotCXsJ CQkvKiBSZXNldCB2aWRlbyBtb2RlIGFmdGVyIHJldHVybmluZyBmcm9tIEFDUEkgUzMgc2xlZXAg Ki8KLQkgLmNhbGxiYWNrID0gcmVzZXRfdmlkZW9tb2RlX2FmdGVyX3MzLAotCSAuaWRlbnQgPSAi VG9zaGliYSBTYXRlbGxpdGUgNDAzMGNkdCIsCi0JIC5tYXRjaGVzID0gewotCQkgICAgIERNSV9N QVRDSChETUlfUFJPRFVDVF9OQU1FLCAiUzQwMzBDRFQvNC4zIiksCi0JCSAgICAgfSwKLQkgfSwK LQl7fQotfTsKLQotc3RhdGljIGludCBfX2luaXQgYWNwaXNsZWVwX2RtaV9pbml0KHZvaWQpCi17 Ci0JZG1pX2NoZWNrX3N5c3RlbShhY3Bpc2xlZXBfZG1pX3RhYmxlKTsKLQlyZXR1cm4gMDsKLX0K LQotY29yZV9pbml0Y2FsbChhY3Bpc2xlZXBfZG1pX2luaXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC94 ODYva2VybmVsL2FjcGkvd2FrZXVwXzMyLlMgYi9hcmNoL3g4Ni9rZXJuZWwvYWNwaS93YWtldXBf MzIuUwppbmRleCBmNTNlMzI3Li5hMTJlNmE5IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwv YWNwaS93YWtldXBfMzIuUworKysgYi9hcmNoL3g4Ni9rZXJuZWwvYWNwaS93YWtldXBfMzIuUwpA QCAtMywxNzggKzMsMTIgQEAKICNpbmNsdWRlIDxhc20vc2VnbWVudC5oPgogI2luY2x1ZGUgPGFz bS9wYWdlLmg+CiAKLSMKLSMgd2FrZXVwX2NvZGUgcnVucyBpbiByZWFsIG1vZGUsIGFuZCBhdCB1 bmtub3duIGFkZHJlc3MgKGRldGVybWluZWQgYXQgcnVuLXRpbWUpLgotIyBUaGVyZWZvcmUgaXQg bXVzdCBvbmx5IHVzZSByZWxhdGl2ZSBqdW1wcy9jYWxscy4gCi0jCi0jIERvIHdlIG5lZWQgdG8g ZGVhbCB3aXRoIEEyMD8gSXQgaXMgb2theTogQUNQSSBzcGVjcyBzYXlzIEEyMCBtdXN0IGJlIGVu YWJsZWQKLSMKLSMgSWYgcGh5c2ljYWwgYWRkcmVzcyBvZiB3YWtldXBfY29kZSBpcyAweDEyMzQ1 LCBCSU9TIHNob3VsZCBjYWxsIHVzIHdpdGgKLSMgY3MgPSAweDEyMzQsIGVpcCA9IDB4MDUKLSMK LQotI2RlZmluZSBCRUVQIFwKLQlpbmIJJDk3LCAlYWw7IAlcCi0Jb3V0YgklYWwsICQweDgwOyAJ XAotCW1vdmIJJDMsICVhbDsgCVwKLQlvdXRiCSVhbCwgJDk3OyAJXAotCW91dGIJJWFsLCAkMHg4 MDsgCVwKLQltb3ZiCSQtNzQsICVhbDsgCVwKLQlvdXRiCSVhbCwgJDY3OyAJXAotCW91dGIJJWFs LCAkMHg4MDsgCVwKLQltb3ZiCSQtMTE5LCAlYWw7IAlcCi0Jb3V0YgklYWwsICQ2NjsgCVwKLQlv dXRiCSVhbCwgJDB4ODA7IAlcCi0JbW92YgkkMTUsICVhbDsgCVwKLQlvdXRiCSVhbCwgJDY2Owot Ci1BTElHTgotCS5hbGlnbgk0MDk2Ci1FTlRSWSh3YWtldXBfc3RhcnQpCi13YWtldXBfY29kZToK LQl3YWtldXBfY29kZV9zdGFydCA9IC4KLQkuY29kZTE2Ci0KLQljbGkKLQljbGQKLQotCSMgc2V0 dXAgZGF0YSBzZWdtZW50Ci0JbW92dwklY3MsICVheAotCW1vdncJJWF4LCAlZHMJCQkJCSMgTWFr ZSBkczowIHBvaW50IHRvIHdha2V1cF9zdGFydAotCW1vdncJJWF4LCAlc3MKLQotCXRlc3RsICAg JDQsIHJlYWxtb2RlX2ZsYWdzIC0gd2FrZXVwX2NvZGUKLQlqeiAgICAgIDFmCi0JQkVFUAotMToK LQltb3YJJCh3YWtldXBfc3RhY2sgLSB3YWtldXBfY29kZSksICVzcAkJIyBQcml2YXRlIHN0YWNr IGlzIG5lZWRlZCBmb3IgQVNVUyBib2FyZAotCi0JcHVzaGwJJDAJCQkJCQkjIEtpbGwgYW55IGRh bmdlcm91cyBmbGFncwotCXBvcGZsCi0KLQltb3ZsCXJlYWxfbWFnaWMgLSB3YWtldXBfY29kZSwg JWVheAotCWNtcGwJJDB4MTIzNDU2NzgsICVlYXgKLQlqbmUJYm9ndXNfcmVhbF9tYWdpYwotCi0J dGVzdGwJJDEsIHJlYWxtb2RlX2ZsYWdzIC0gd2FrZXVwX2NvZGUKLQlqegkxZgotCWxjYWxsICAg JDB4YzAwMCwkMwotCW1vdncJJWNzLCAlYXgKLQltb3Z3CSVheCwgJWRzCQkJCQkjIEJpb3MgbWln aHQgaGF2ZSBwbGF5ZWQgd2l0aCB0aGF0Ci0JbW92dwklYXgsICVzcwotMToKLQotCXRlc3RsCSQy LCByZWFsbW9kZV9mbGFncyAtIHdha2V1cF9jb2RlCi0JanoJMWYKLQltb3YJdmlkZW9fbW9kZSAt IHdha2V1cF9jb2RlLCAlYXgKLQljYWxsCW1vZGVfc2V0Ci0xOgotCi0JIyBzZXQgdXAgcGFnZSB0 YWJsZQotCW1vdmwJJHN3c3VzcF9wZ19kaXItX19QQUdFX09GRlNFVCwgJWVheAotCW1vdmwJJWVh eCwgJWNyMwotCi0JdGVzdGwJJDEsIHJlYWxfZWZlcl9zYXZlX3Jlc3RvcmUgLSB3YWtldXBfY29k ZQotCWp6CTRmCi0JIyByZXN0b3JlIGVmZXIgc2V0dGluZwotCW1vdmwJcmVhbF9zYXZlX2VmZXJf ZWR4IC0gd2FrZXVwX2NvZGUsICVlZHgKLQltb3ZsCXJlYWxfc2F2ZV9lZmVyX2VheCAtIHdha2V1 cF9jb2RlLCAlZWF4Ci0JbW92ICAgICAkMHhjMDAwMDA4MCwgJWVjeAotCXdybXNyCi00OgotCSMg bWFrZSBzdXJlICVjcjQgaXMgc2V0IGNvcnJlY3RseSAoZmVhdHVyZXMsIGV0YykKLQltb3ZsCXJl YWxfc2F2ZV9jcjQgLSB3YWtldXBfY29kZSwgJWVheAotCW1vdmwJJWVheCwgJWNyNAotCQotCSMg bmVlZCBhIGdkdCAtLSB1c2UgbGdkdGwgdG8gZm9yY2UgMzItYml0IG9wZXJhbmRzLCBpbiBjYXNl Ci0JIyB0aGUgR0RUIGlzIGxvY2F0ZWQgcGFzdCAxNiBtZWdhYnl0ZXMuCi0JbGdkdGwJcmVhbF9z YXZlX2dkdCAtIHdha2V1cF9jb2RlCi0KLQltb3ZsCXJlYWxfc2F2ZV9jcjAgLSB3YWtldXBfY29k ZSwgJWVheAotCW1vdmwJJWVheCwgJWNyMAotCWptcCAxZgotMToKLQltb3ZsCXJlYWxfbWFnaWMg LSB3YWtldXBfY29kZSwgJWVheAotCWNtcGwJJDB4MTIzNDU2NzgsICVlYXgKLQlqbmUJYm9ndXNf cmVhbF9tYWdpYwotCi0JdGVzdGwgICAkOCwgcmVhbG1vZGVfZmxhZ3MgLSB3YWtldXBfY29kZQot CWp6ICAgICAgMWYKLQlCRUVQCi0xOgotCWxqbXBsCSRfX0tFUk5FTF9DUywgJHdha2V1cF9wbW9k ZV9yZXR1cm4KLQotcmVhbF9zYXZlX2dkdDoJLndvcmQgMAotCQkubG9uZyAwCi1yZWFsX3NhdmVf Y3IwOgkubG9uZyAwCi1yZWFsX3NhdmVfY3IzOgkubG9uZyAwCi1yZWFsX3NhdmVfY3I0OgkubG9u ZyAwCi1yZWFsX21hZ2ljOgkubG9uZyAwCi12aWRlb19tb2RlOgkubG9uZyAwCi1yZWFsbW9kZV9m bGFnczoJLmxvbmcgMAotcmVhbF9lZmVyX3NhdmVfcmVzdG9yZToJLmxvbmcgMAotcmVhbF9zYXZl X2VmZXJfZWR4OiAJLmxvbmcgMAotcmVhbF9zYXZlX2VmZXJfZWF4OiAJLmxvbmcgMAotCi1ib2d1 c19yZWFsX21hZ2ljOgotCWptcCBib2d1c19yZWFsX21hZ2ljCi0KLS8qIFRoaXMgY29kZSB1c2Vz IGFuIGV4dGVuZGVkIHNldCBvZiB2aWRlbyBtb2RlIG51bWJlcnMuIFRoZXNlIGluY2x1ZGU6Ci0g KiBBbGlhc2VzIGZvciBzdGFuZGFyZCBtb2RlcwotICoJTk9STUFMX1ZHQSAoLTEpCi0gKglFWFRF TkRFRF9WR0EgKC0yKQotICoJQVNLX1ZHQSAoLTMpCi0gKiBWaWRlbyBtb2RlcyBudW1iZXJlZCBi eSBtZW51IHBvc2l0aW9uIC0tIE5PVCBSRUNPTU1FTkRFRCBiZWNhdXNlIG9mIGxhY2sKLSAqIG9m IGNvbXBhdGliaWxpdHkgd2hlbiBleHRlbmRpbmcgdGhlIHRhYmxlLiBUaGVzZSBhcmUgYmV0d2Vl biAweDAwIGFuZCAweGZmLgotICovCi0jZGVmaW5lIFZJREVPX0ZJUlNUX01FTlUgMHgwMDAwCi0K LS8qIFN0YW5kYXJkIEJJT1MgdmlkZW8gbW9kZXMgKEJJT1MgbnVtYmVyICsgMHgwMTAwKSAqLwot I2RlZmluZSBWSURFT19GSVJTVF9CSU9TIDB4MDEwMAotCi0vKiBWRVNBIEJJT1MgdmlkZW8gbW9k ZXMgKFZFU0EgbnVtYmVyICsgMHgwMjAwKSAqLwotI2RlZmluZSBWSURFT19GSVJTVF9WRVNBIDB4 MDIwMAotCi0vKiBWaWRlbzcgc3BlY2lhbCBtb2RlcyAoQklPUyBudW1iZXIgKyAweDA5MDApICov Ci0jZGVmaW5lIFZJREVPX0ZJUlNUX1Y3IDB4MDkwMAotCi0jIFNldHRpbmcgb2YgdXNlciBtb2Rl IChBWD1tb2RlIElEKSA9PiBDRj1zdWNjZXNzCi0KLSMgRm9yIG5vdywgd2Ugb25seSBoYW5kbGUg VkVTQSBtb2RlcyAoMHgwMjAwLi4weDAzZmYpLiAgVG8gaGFuZGxlIG90aGVyCi0jIG1vZGVzLCB3 ZSBzaG91bGQgcHJvYmFibHkgY29tcGlsZSBpbiB0aGUgdmlkZW8gY29kZSBmcm9tIHRoZSBib290 Ci0jIGRpcmVjdG9yeS4KLW1vZGVfc2V0OgotCW1vdncJJWF4LCAlYngKLQlzdWJiCSRWSURFT19G SVJTVF9WRVNBPj44LCAlYmgKLQljbXBiCSQyLCAlYmgKLQlqYgljaGVja192ZXNhCi0KLXNldGJh ZDoKLQljbGMKLQlyZXQKLQotY2hlY2tfdmVzYToKLQlvcncJJDB4NDAwMCwgJWJ4CQkJIyBVc2Ug bGluZWFyIGZyYW1lIGJ1ZmZlcgotCW1vdncJJDB4NGYwMiwgJWF4CQkJIyBWRVNBIEJJT1MgbW9k ZSBzZXQgY2FsbAotCWludAkkMHgxMAotCWNtcHcJJDB4MDA0ZiwgJWF4CQkJIyBBTD00ZiBpZiBp bXBsZW1lbnRlZAotCWpueglzZXRiYWQJCQkJIyBBSD0wIGlmIE9LCi0KLQlzdGMKLQlyZXQKKyMg Q29weXJpZ2h0IDIwMDMsIDIwMDggUGF2ZWwgTWFjaGVrIDxwYXZlbEBzdXNlLmN6PiwgZGlzdHJp YnV0ZSB1bmRlciBHUEx2MgogCiAJLmNvZGUzMgogCUFMSUdOCiAKLS5vcmcJMHg4MDAKLXdha2V1 cF9zdGFja19iZWdpbjoJIyBTdGFjayBncm93cyBkb3duCi0KLS5vcmcJMHhmZjAJCSMgSnVzdCBi ZWxvdyBlbmQgb2YgcGFnZQotd2FrZXVwX3N0YWNrOgotRU5UUlkod2FrZXVwX2VuZCkKLQkKLS5v cmcJMHgxMDAwCi0KK0VOVFJZKHdha2V1cF9wbW9kZV9yZXR1cm4pCiB3YWtldXBfcG1vZGVfcmV0 dXJuOgogCW1vdncJJF9fS0VSTkVMX0RTLCAlYXgKIAltb3Z3CSVheCwgJXNzCkBAIC0xODcsNyAr MjEsNyBAQCB3YWtldXBfcG1vZGVfcmV0dXJuOgogCWxnZHQJc2F2ZWRfZ2R0CiAJbGlkdAlzYXZl ZF9pZHQKIAlsbGR0CXNhdmVkX2xkdAotCWxqbXAJJChfX0tFUk5FTF9DUyksJDFmCisJbGptcAkk KF9fS0VSTkVMX0NTKSwgJDFmCiAxOgogCW1vdmwJJWNyMywgJWVheAogCW1vdmwJJWVheCwgJWNy MwpAQCAtMjAxLDgyICszNSw0MSBAQCB3YWtldXBfcG1vZGVfcmV0dXJuOgogCWpuZQlib2d1c19t YWdpYwogCiAJIyBqdW1wIHRvIHBsYWNlIHdoZXJlIHdlIGxlZnQgb2ZmCi0JbW92bAlzYXZlZF9l aXAsJWVheAorCW1vdmwJc2F2ZWRfZWlwLCAlZWF4CiAJam1wCSolZWF4CiAKIGJvZ3VzX21hZ2lj OgogCWptcAlib2d1c19tYWdpYwogCiAKLSMjCi0jIGFjcGlfY29weV93YWtldXBfcm91dGluZQot IwotIyBDb3B5IHRoZSBhYm92ZSByb3V0aW5lIHRvIGxvdyBtZW1vcnkuCi0jCi0jIFBhcmFtZXRl cnM6Ci0jICVlYXg6CXBsYWNlIHRvIGNvcHkgd2FrZXVwIHJvdXRpbmUgdG8KLSMKLSMgUmV0dXJu ZWQgYWRkcmVzcyBpcyBsb2NhdGlvbiBvZiBjb2RlIGluIGxvdyBtZW1vcnkgKHBhc3QgZGF0YSBh bmQgc3RhY2spCi0jCi1FTlRSWShhY3BpX2NvcHlfd2FrZXVwX3JvdXRpbmUpCiAKLQlwdXNobAkl ZWJ4CitzYXZlX3JlZ2lzdGVyczoKIAlzZ2R0CXNhdmVkX2dkdAogCXNpZHQJc2F2ZWRfaWR0CiAJ c2xkdAlzYXZlZF9sZHQKIAlzdHIJc2F2ZWRfdHNzCiAKLQltb3ZsCW54X2VuYWJsZWQsICVlZHgK LQltb3ZsCSVlZHgsIHJlYWxfZWZlcl9zYXZlX3Jlc3RvcmUgLSB3YWtldXBfc3RhcnQgKCVlYXgp Ci0JdGVzdGwJJDEsIHJlYWxfZWZlcl9zYXZlX3Jlc3RvcmUgLSB3YWtldXBfc3RhcnQgKCVlYXgp Ci0JanoJMmYKLQkjIHNhdmUgZWZlciBzZXR0aW5nCi0JcHVzaGwJJWVheAotCW1vdmwJJWVheCwg JWVieAotCW1vdiAgICAgJDB4YzAwMDAwODAsICVlY3gKLQlyZG1zcgotCW1vdmwJJWVkeCwgcmVh bF9zYXZlX2VmZXJfZWR4IC0gd2FrZXVwX3N0YXJ0ICglZWJ4KQotCW1vdmwJJWVheCwgcmVhbF9z YXZlX2VmZXJfZWF4IC0gd2FrZXVwX3N0YXJ0ICglZWJ4KQotCXBvcGwJJWVheAotMjoKLQotCW1v dmwgICAgJWNyMywgJWVkeAotCW1vdmwgICAgJWVkeCwgcmVhbF9zYXZlX2NyMyAtIHdha2V1cF9z dGFydCAoJWVheCkKLQltb3ZsICAgICVjcjQsICVlZHgKLQltb3ZsICAgICVlZHgsIHJlYWxfc2F2 ZV9jcjQgLSB3YWtldXBfc3RhcnQgKCVlYXgpCi0JbW92bAklY3IwLCAlZWR4Ci0JbW92bAklZWR4 LCByZWFsX3NhdmVfY3IwIC0gd2FrZXVwX3N0YXJ0ICglZWF4KQotCXNnZHQgICAgcmVhbF9zYXZl X2dkdCAtIHdha2V1cF9zdGFydCAoJWVheCkKLQotCW1vdmwJc2F2ZWRfdmlkZW9tb2RlLCAlZWR4 Ci0JbW92bAklZWR4LCB2aWRlb19tb2RlIC0gd2FrZXVwX3N0YXJ0ICglZWF4KQotCW1vdmwJYWNw aV9yZWFsbW9kZV9mbGFncywgJWVkeAotCW1vdmwJJWVkeCwgcmVhbG1vZGVfZmxhZ3MgLSB3YWtl dXBfc3RhcnQgKCVlYXgpCi0JbW92bAkkMHgxMjM0NTY3OCwgcmVhbF9tYWdpYyAtIHdha2V1cF9z dGFydCAoJWVheCkKLQltb3ZsCSQweDEyMzQ1Njc4LCBzYXZlZF9tYWdpYwotCXBvcGwJJWVieAot CXJldAotCi1zYXZlX3JlZ2lzdGVyczoKIAlsZWFsCTQoJWVzcCksICVlYXgKIAltb3ZsCSVlYXgs IHNhdmVkX2NvbnRleHRfZXNwCi0JbW92bCAlZWJ4LCBzYXZlZF9jb250ZXh0X2VieAotCW1vdmwg JWVicCwgc2F2ZWRfY29udGV4dF9lYnAKLQltb3ZsICVlc2ksIHNhdmVkX2NvbnRleHRfZXNpCi0J bW92bCAlZWRpLCBzYXZlZF9jb250ZXh0X2VkaQotCXB1c2hmbCA7IHBvcGwgc2F2ZWRfY29udGV4 dF9lZmxhZ3MKLQotCW1vdmwgJHJldF9wb2ludCwgc2F2ZWRfZWlwCisJbW92bAklZWJ4LCBzYXZl ZF9jb250ZXh0X2VieAorCW1vdmwJJWVicCwgc2F2ZWRfY29udGV4dF9lYnAKKwltb3ZsCSVlc2ks IHNhdmVkX2NvbnRleHRfZXNpCisJbW92bAklZWRpLCBzYXZlZF9jb250ZXh0X2VkaQorCXB1c2hm bAorCXBvcGwJc2F2ZWRfY29udGV4dF9lZmxhZ3MKKworCW1vdmwJJHJldF9wb2ludCwgc2F2ZWRf ZWlwCiAJcmV0CiAKIAogcmVzdG9yZV9yZWdpc3RlcnM6Ci0JbW92bCBzYXZlZF9jb250ZXh0X2Vi cCwgJWVicAotCW1vdmwgc2F2ZWRfY29udGV4dF9lYngsICVlYngKLQltb3ZsIHNhdmVkX2NvbnRl eHRfZXNpLCAlZXNpCi0JbW92bCBzYXZlZF9jb250ZXh0X2VkaSwgJWVkaQotCXB1c2hsIHNhdmVk X2NvbnRleHRfZWZsYWdzIDsgcG9wZmwKLQlyZXQJCisJbW92bAlzYXZlZF9jb250ZXh0X2VicCwg JWVicAorCW1vdmwJc2F2ZWRfY29udGV4dF9lYngsICVlYngKKwltb3ZsCXNhdmVkX2NvbnRleHRf ZXNpLCAlZXNpCisJbW92bAlzYXZlZF9jb250ZXh0X2VkaSwgJWVkaQorCXB1c2hsCXNhdmVkX2Nv bnRleHRfZWZsYWdzCisJcG9wZmwKKwlyZXQKIAogRU5UUlkoZG9fc3VzcGVuZF9sb3dsZXZlbCkK IAljYWxsCXNhdmVfcHJvY2Vzc29yX3N0YXRlCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwv YWNwaS93YWtldXBfNjQuUyBiL2FyY2gveDg2L2tlcm5lbC9hY3BpL3dha2V1cF82NC5TCmluZGV4 IDJlMWI5ZTAuLmJjYzI5MzQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9hY3BpL3dha2V1 cF82NC5TCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hY3BpL3dha2V1cF82NC5TCkBAIC03LDE5MSAr NywxOCBAQAogI2luY2x1ZGUgPGFzbS9hc20tb2Zmc2V0cy5oPgogCiAjIENvcHlyaWdodCAyMDAz IFBhdmVsIE1hY2hlayA8cGF2ZWxAc3VzZS5jej4sIGRpc3RyaWJ1dGUgdW5kZXIgR1BMdjIKLSMK LSMgd2FrZXVwX2NvZGUgcnVucyBpbiByZWFsIG1vZGUsIGFuZCBhdCB1bmtub3duIGFkZHJlc3Mg KGRldGVybWluZWQgYXQgcnVuLXRpbWUpLgotIyBUaGVyZWZvcmUgaXQgbXVzdCBvbmx5IHVzZSBy ZWxhdGl2ZSBqdW1wcy9jYWxscy4gCi0jCi0jIERvIHdlIG5lZWQgdG8gZGVhbCB3aXRoIEEyMD8g SXQgaXMgb2theTogQUNQSSBzcGVjcyBzYXlzIEEyMCBtdXN0IGJlIGVuYWJsZWQKLSMKLSMgSWYg cGh5c2ljYWwgYWRkcmVzcyBvZiB3YWtldXBfY29kZSBpcyAweDEyMzQ1LCBCSU9TIHNob3VsZCBj YWxsIHVzIHdpdGgKLSMgY3MgPSAweDEyMzQsIGVpcCA9IDB4MDUKLSMKLQotI2RlZmluZSBCRUVQ IFwKLQlpbmIJJDk3LCAlYWw7IAlcCi0Jb3V0YgklYWwsICQweDgwOyAJXAotCW1vdmIJJDMsICVh bDsgCVwKLQlvdXRiCSVhbCwgJDk3OyAJXAotCW91dGIJJWFsLCAkMHg4MDsgCVwKLQltb3ZiCSQt NzQsICVhbDsgCVwKLQlvdXRiCSVhbCwgJDY3OyAJXAotCW91dGIJJWFsLCAkMHg4MDsgCVwKLQlt b3ZiCSQtMTE5LCAlYWw7IAlcCi0Jb3V0YgklYWwsICQ2NjsgCVwKLQlvdXRiCSVhbCwgJDB4ODA7 IAlcCi0JbW92YgkkMTUsICVhbDsgCVwKLQlvdXRiCSVhbCwgJDY2OwotCi0KLUFMSUdOCi0JLmFs aWduCTE2Ci1FTlRSWSh3YWtldXBfc3RhcnQpCi13YWtldXBfY29kZToKLQl3YWtldXBfY29kZV9z dGFydCA9IC4KLQkuY29kZTE2Ci0KLSMgUnVubmluZyBpbiAqY29weSogb2YgdGhpcyBjb2RlLCBz b21ld2hlcmUgaW4gbG93IDFNQi4KLQotCWNsaQotCWNsZAotCSMgc2V0dXAgZGF0YSBzZWdtZW50 Ci0JbW92dwklY3MsICVheAotCW1vdncJJWF4LCAlZHMJCSMgTWFrZSBkczowIHBvaW50IHRvIHdh a2V1cF9zdGFydAotCW1vdncJJWF4LCAlc3MKLQotCSMgRGF0YSBzZWdtZW50IG11c3QgYmUgc2V0 IHVwIGJlZm9yZSB3ZSBjYW4gc2VlIHdoZXRoZXIgdG8gYmVlcC4KLQl0ZXN0bCAgICQ0LCByZWFs bW9kZV9mbGFncyAtIHdha2V1cF9jb2RlCi0JanogICAgICAxZgotCUJFRVAKLTE6Ci0KLQkJCQkJ IyBQcml2YXRlIHN0YWNrIGlzIG5lZWRlZCBmb3IgQVNVUyBib2FyZAotCW1vdgkkKHdha2V1cF9z dGFjayAtIHdha2V1cF9jb2RlKSwgJXNwCi0KLQlwdXNobAkkMAkJCSMgS2lsbCBhbnkgZGFuZ2Vy b3VzIGZsYWdzCi0JcG9wZmwKLQotCW1vdmwJcmVhbF9tYWdpYyAtIHdha2V1cF9jb2RlLCAlZWF4 Ci0JY21wbAkkMHgxMjM0NTY3OCwgJWVheAotCWpuZQlib2d1c19yZWFsX21hZ2ljCi0KLQl0ZXN0 bAkkMSwgcmVhbG1vZGVfZmxhZ3MgLSB3YWtldXBfY29kZQotCWp6CTFmCi0JbGNhbGwgICAkMHhj MDAwLCQzCi0JbW92dwklY3MsICVheAotCW1vdncJJWF4LCAlZHMJCSMgQmlvcyBtaWdodCBoYXZl IHBsYXllZCB3aXRoIHRoYXQKLQltb3Z3CSVheCwgJXNzCi0xOgotCi0JdGVzdGwJJDIsIHJlYWxt b2RlX2ZsYWdzIC0gd2FrZXVwX2NvZGUKLQlqegkxZgotCW1vdgl2aWRlb19tb2RlIC0gd2FrZXVw X2NvZGUsICVheAotCWNhbGwJbW9kZV9zZXQKLTE6Ci0KLQltb3YJJWRzLCAlYXgJCQkjIEZpbmQg MzJiaXQgd2FrZXVwX2NvZGUgYWRkcgotCW1vdnp4ICAgJWF4LCAlZXNpCQkJIyAoQ29udmVydCAl ZHM6Z2R0IHRvIGEgbGluZXIgcHRyKQotCXNobGwgICAgJDQsICVlc2kKLQkJCQkJCSMgRml4IHVw IHRoZSB2ZWN0b3JzCi0JYWRkbCAgICAlZXNpLCB3YWtldXBfMzJfdmVjdG9yIC0gd2FrZXVwX2Nv ZGUKLQlhZGRsICAgICVlc2ksIHdha2V1cF9sb25nNjRfdmVjdG9yIC0gd2FrZXVwX2NvZGUKLQlh ZGRsICAgICVlc2ksIGdkdF80OGEgKyAyIC0gd2FrZXVwX2NvZGUgIyBGaXh1cCB0aGUgZ2R0IHBv aW50ZXIKLQotCWxpZHRsCSVkczppZHRfNDhhIC0gd2FrZXVwX2NvZGUKLQlsZ2R0bAklZHM6Z2R0 XzQ4YSAtIHdha2V1cF9jb2RlCSMgbG9hZCBnZHQgd2l0aCB3aGF0ZXZlciBpcwotCQkJCQkJIyBh cHByb3ByaWF0ZQotCi0JbW92bAkkMSwgJWVheAkJCSMgcHJvdGVjdGVkIG1vZGUgKFBFKSBiaXQK LQlsbXN3CSVheAkJCQkjIFRoaXMgaXMgaXQhCi0Jam1wCTFmCi0xOgotCi0JbGptcGwgICAqKHdh a2V1cF8zMl92ZWN0b3IgLSB3YWtldXBfY29kZSkKLQotCS5iYWxpZ24gNAotd2FrZXVwXzMyX3Zl Y3RvcjoKLQkubG9uZyAgIHdha2V1cF8zMiAtIHdha2V1cF9jb2RlCi0JLndvcmQgICBfX0tFUk5F TDMyX0NTLCAwCi0KLQkuY29kZTMyCi13YWtldXBfMzI6Ci0jIFJ1bm5pbmcgaW4gdGhpcyBjb2Rl LCBidXQgYXQgbG93IGFkZHJlc3M7IHBhZ2luZyBpcyBub3QgeWV0IHR1cm5lZCBvbi4KLQotCW1v dmwJJF9fS0VSTkVMX0RTLCAlZWF4Ci0JbW92bAklZWF4LCAlZHMKLQotCS8qCi0JICogUHJlcGFy ZSBmb3IgZW50ZXJpbmcgNjRiaXRzIG1vZGUKLQkgKi8KLQotCS8qIEVuYWJsZSBQQUUgKi8KLQl4 b3JsCSVlYXgsICVlYXgKLQlidHNsCSQ1LCAlZWF4Ci0JbW92bAklZWF4LCAlY3I0Ci0KLQkvKiBT ZXR1cCBlYXJseSBib290IHN0YWdlIDQgbGV2ZWwgcGFnZXRhYmxlcyAqLwotCWxlYWwgICAgKHdh a2V1cF9sZXZlbDRfcGd0IC0gd2FrZXVwX2NvZGUpKCVlc2kpLCAlZWF4Ci0JbW92bAklZWF4LCAl Y3IzCi0KLSAgICAgICAgLyogQ2hlY2sgaWYgbnggaXMgaW1wbGVtZW50ZWQgKi8KLSAgICAgICAg bW92bCAgICAkMHg4MDAwMDAwMSwgJWVheAotICAgICAgICBjcHVpZAotICAgICAgICBtb3ZsICAg ICVlZHgsJWVkaQotCi0JLyogRW5hYmxlIExvbmcgTW9kZSAqLwotCXhvcmwgICAgJWVheCwgJWVh eAotCWJ0c2wJJF9FRkVSX0xNRSwgJWVheAotCi0JLyogTm8gRXhlY3V0ZSBzdXBwb3J0ZWQ/ICov Ci0JYnRsCSQyMCwlZWRpCi0Jam5jICAgICAxZgotCWJ0c2wJJF9FRkVSX05YLCAlZWF4Ci0JCQkJ Ci0JLyogTWFrZSBjaGFuZ2VzIGVmZmVjdGl2ZSAqLwotMToJbW92bCAgICAkTVNSX0VGRVIsICVl Y3gKLQl4b3JsICAgICVlZHgsICVlZHgKLQl3cm1zcgotCi0JeG9ybAklZWF4LCAlZWF4Ci0JYnRz bAkkMzEsICVlYXgJCQkvKiBFbmFibGUgcGFnaW5nIGFuZCBpbiB0dXJuIGFjdGl2YXRlIExvbmcg TW9kZSAqLwotCWJ0c2wJJDAsICVlYXgJCQkvKiBFbmFibGUgcHJvdGVjdGVkIG1vZGUgKi8KLQot CS8qIE1ha2UgY2hhbmdlcyBlZmZlY3RpdmUgKi8KLQltb3ZsCSVlYXgsICVjcjAKLQotCS8qIEF0 IHRoaXMgcG9pbnQ6Ci0JCUNSNC5QQUUgbXVzdCBiZSAxCi0JCUNTLkwgbXVzdCBiZSAwCi0JCUNS MyBtdXN0IHBvaW50IHRvIFBNTDQKLQkJTmV4dCBpbnN0cnVjdGlvbiBtdXN0IGJlIGEgYnJhbmNo Ci0JCVRoaXMgbXVzdCBiZSBvbiBpZGVudGl0eS1tYXBwZWQgcGFnZQotCSovCi0JLyoKLQkgKiBB dCB0aGlzIHBvaW50IHdlJ3JlIGluIGxvbmcgbW9kZSBidXQgaW4gMzJiaXQgY29tcGF0aWJpbGl0 eSBtb2RlCi0JICogd2l0aCBFRkVSLkxNRSA9IDEsIENTLkwgPSAwLCBDUy5EID0gMSAoYW5kIGlu IHR1cm4KLQkgKiBFRkVSLkxNQSA9IDEpLiBOb3cgd2Ugd2FudCB0byBqdW1wIGluIDY0Yml0IG1v ZGUsIHRvIGRvIHRoYXQgd2UgbG9hZAotCSAqIHRoZSBuZXcgZ2R0L2lkdCB0aGF0IGhhcyBfX0tF Uk5FTF9DUyB3aXRoIENTLkwgPSAxLgotCSAqLwotCi0JLyogRmluYWxseSBqdW1wIGluIDY0Yml0 IG1vZGUgKi8KLSAgICAgICAgbGptcCAgICAqKHdha2V1cF9sb25nNjRfdmVjdG9yIC0gd2FrZXVw X2NvZGUpKCVlc2kpCi0KLQkuYmFsaWduIDQKLXdha2V1cF9sb25nNjRfdmVjdG9yOgotCS5sb25n ICAgd2FrZXVwX2xvbmc2NCAtIHdha2V1cF9jb2RlCi0JLndvcmQgICBfX0tFUk5FTF9DUywgMAog CiAuY29kZTY0Ci0KLQkvKiBIb29yYXksIHdlIGFyZSBpbiBMb25nIDY0LWJpdCBtb2RlIChidXQg c3RpbGwgcnVubmluZyBpbgotCSAqIGxvdyBtZW1vcnkpCi0JICovCi13YWtldXBfbG9uZzY0Ogog CS8qCi0JICogV2UgbXVzdCBzd2l0Y2ggdG8gYSBuZXcgZGVzY3JpcHRvciBpbiBrZXJuZWwgc3Bh Y2UgZm9yIHRoZSBHRFQKLQkgKiBiZWNhdXNlIHNvb24gdGhlIGtlcm5lbCB3b24ndCBoYXZlIGFj Y2VzcyBhbnltb3JlIHRvIHRoZSB1c2Vyc3BhY2UKLQkgKiBhZGRyZXNzZXMgd2hlcmUgd2UncmUg Y3VycmVudGx5IHJ1bm5pbmcgb24uIFdlIGhhdmUgdG8gZG8gdGhhdCBoZXJlCi0JICogYmVjYXVz ZSBpbiAzMmJpdCB3ZSBjb3VsZG4ndCBsb2FkIGEgNjRiaXQgbGluZWFyIGFkZHJlc3MuCisJICog SG9vcmF5LCB3ZSBhcmUgaW4gTG9uZyA2NC1iaXQgbW9kZSAoYnV0IHN0aWxsIHJ1bm5pbmcgaW4g bG93IG1lbW9yeSkKIAkgKi8KLQlsZ2R0CWNwdV9nZHRfZGVzY3IKLQotCW1vdnEgICAgc2F2ZWRf bWFnaWMsICVyYXgKLQltb3ZxICAgICQweDEyMzQ1Njc4OWFiY2RlZjAsICVyZHgKLQljbXBxICAg ICVyZHgsICVyYXgKLQlqbmUgICAgIGJvZ3VzXzY0X21hZ2ljCitFTlRSWSh3YWtldXBfbG9uZzY0 KQord2FrZXVwX2xvbmc2NDoKKwltb3ZxCXNhdmVkX21hZ2ljLCAlcmF4CisJbW92cQkkMHgxMjM0 NTY3ODlhYmNkZWYwLCAlcmR4CisJY21wcQklcmR4LCAlcmF4CisJam5lCWJvZ3VzXzY0X21hZ2lj CiAKLQlub3AKLQlub3AKIAltb3Z3CSRfX0tFUk5FTF9EUywgJWF4CiAJbW92dwklYXgsICVzcwkK IAltb3Z3CSVheCwgJWRzCkBAIC0yMDgsMTMwICszNSw4IEBAIHdha2V1cF9sb25nNjQ6CiAJbW92 cQlzYXZlZF9yaXAsICVyYXgKIAlqbXAJKiVyYXgKIAotLmNvZGUzMgotCi0JLmFsaWduCTY0CQot Z2R0YToKLQkvKiBJdHMgZ29vZCB0byBrZWVwIGdkdCBpbiBzeW5jIHdpdGggb25lIGluIHRyYW1w b2xpbmUuUyAqLwotCS53b3JkCTAsIDAsIDAsIDAJCQkjIGR1bW15Ci0JLyogPz8/IFdoeSBJIG5l ZWQgdGhlIGFjY2Vzc2VkIGJpdCBzZXQgaW4gb3JkZXIgZm9yIHRoaXMgdG8gd29yaz8gKi8KLQku cXVhZCAgIDB4MDBjZjliMDAwMDAwZmZmZiAgICAgICAgICAgICAgIyBfX0tFUk5FTDMyX0NTCi0J LnF1YWQgICAweDAwYWY5YjAwMDAwMGZmZmYgICAgICAgICAgICAgICMgX19LRVJORUxfQ1MKLQku cXVhZCAgIDB4MDBjZjkzMDAwMDAwZmZmZiAgICAgICAgICAgICAgIyBfX0tFUk5FTF9EUwotCi1p ZHRfNDhhOgotCS53b3JkCTAJCQkJIyBpZHQgbGltaXQgPSAwCi0JLndvcmQJMCwgMAkJCQkjIGlk dCBiYXNlID0gMEwKLQotZ2R0XzQ4YToKLQkud29yZAkweDgwMAkJCQkjIGdkdCBsaW1pdD0yMDQ4 LAotCQkJCQkJIyAgMjU2IEdEVCBlbnRyaWVzCi0JLmxvbmcgICBnZHRhIC0gd2FrZXVwX2NvZGUg ICAgICAgICAgICAgICMgZ2R0IGJhc2UgKHJlbG9jYXRlZCBpbiBsYXRlcikKLQkKLXJlYWxfbWFn aWM6CS5xdWFkIDAKLXZpZGVvX21vZGU6CS5xdWFkIDAKLXJlYWxtb2RlX2ZsYWdzOgkucXVhZCAw Ci0KLS5jb2RlMTYKLWJvZ3VzX3JlYWxfbWFnaWM6Ci0Jam1wIGJvZ3VzX3JlYWxfbWFnaWMKLQot LmNvZGU2NAogYm9ndXNfNjRfbWFnaWM6Ci0Jam1wIGJvZ3VzXzY0X21hZ2ljCi0KLS8qIFRoaXMg Y29kZSB1c2VzIGFuIGV4dGVuZGVkIHNldCBvZiB2aWRlbyBtb2RlIG51bWJlcnMuIFRoZXNlIGlu Y2x1ZGU6Ci0gKiBBbGlhc2VzIGZvciBzdGFuZGFyZCBtb2RlcwotICoJTk9STUFMX1ZHQSAoLTEp Ci0gKglFWFRFTkRFRF9WR0EgKC0yKQotICoJQVNLX1ZHQSAoLTMpCi0gKiBWaWRlbyBtb2RlcyBu dW1iZXJlZCBieSBtZW51IHBvc2l0aW9uIC0tIE5PVCBSRUNPTU1FTkRFRCBiZWNhdXNlIG9mIGxh Y2sKLSAqIG9mIGNvbXBhdGliaWxpdHkgd2hlbiBleHRlbmRpbmcgdGhlIHRhYmxlLiBUaGVzZSBh cmUgYmV0d2VlbiAweDAwIGFuZCAweGZmLgotICovCi0jZGVmaW5lIFZJREVPX0ZJUlNUX01FTlUg MHgwMDAwCi0KLS8qIFN0YW5kYXJkIEJJT1MgdmlkZW8gbW9kZXMgKEJJT1MgbnVtYmVyICsgMHgw MTAwKSAqLwotI2RlZmluZSBWSURFT19GSVJTVF9CSU9TIDB4MDEwMAotCi0vKiBWRVNBIEJJT1Mg dmlkZW8gbW9kZXMgKFZFU0EgbnVtYmVyICsgMHgwMjAwKSAqLwotI2RlZmluZSBWSURFT19GSVJT VF9WRVNBIDB4MDIwMAotCi0vKiBWaWRlbzcgc3BlY2lhbCBtb2RlcyAoQklPUyBudW1iZXIgKyAw eDA5MDApICovCi0jZGVmaW5lIFZJREVPX0ZJUlNUX1Y3IDB4MDkwMAotCi0jIFNldHRpbmcgb2Yg dXNlciBtb2RlIChBWD1tb2RlIElEKSA9PiBDRj1zdWNjZXNzCi0KLSMgRm9yIG5vdywgd2Ugb25s eSBoYW5kbGUgVkVTQSBtb2RlcyAoMHgwMjAwLi4weDAzZmYpLiAgVG8gaGFuZGxlIG90aGVyCi0j IG1vZGVzLCB3ZSBzaG91bGQgcHJvYmFibHkgY29tcGlsZSBpbiB0aGUgdmlkZW8gY29kZSBmcm9t IHRoZSBib290Ci0jIGRpcmVjdG9yeS4KLS5jb2RlMTYKLW1vZGVfc2V0OgotCW1vdncJJWF4LCAl YngKLQlzdWJiCSRWSURFT19GSVJTVF9WRVNBPj44LCAlYmgKLQljbXBiCSQyLCAlYmgKLQlqYglj aGVja192ZXNhCi0KLXNldGJhZDoKLQljbGMKLQlyZXQKLQotY2hlY2tfdmVzYToKLQlvcncJJDB4 NDAwMCwgJWJ4CQkJIyBVc2UgbGluZWFyIGZyYW1lIGJ1ZmZlcgotCW1vdncJJDB4NGYwMiwgJWF4 CQkJIyBWRVNBIEJJT1MgbW9kZSBzZXQgY2FsbAotCWludAkkMHgxMAotCWNtcHcJJDB4MDA0Ziwg JWF4CQkJIyBBTD00ZiBpZiBpbXBsZW1lbnRlZAotCWpueglzZXRiYWQJCQkJIyBBSD0wIGlmIE9L Ci0KLQlzdGMKLQlyZXQKLQotd2FrZXVwX3N0YWNrX2JlZ2luOgkjIFN0YWNrIGdyb3dzIGRvd24K LQotLm9yZwkweGZmMAotd2FrZXVwX3N0YWNrOgkJIyBKdXN0IGJlbG93IGVuZCBvZiBwYWdlCi0K LS5vcmcgICAweDEwMDAKLUVOVFJZKHdha2V1cF9sZXZlbDRfcGd0KQotCS5xdWFkICAgbGV2ZWwz X2lkZW50X3BndCAtIF9fU1RBUlRfS0VSTkVMX21hcCArIF9LRVJOUEdfVEFCTEUKLQkuZmlsbCAg IDUxMCw4LDAKLQkvKiAoMl40OC0oMioxMDI0KjEwMjQqMTAyNCkpLygyXjM5KSA9IDUxMSAqLwot CS5xdWFkICAgbGV2ZWwzX2tlcm5lbF9wZ3QgLSBfX1NUQVJUX0tFUk5FTF9tYXAgKyBfS0VSTlBH X1RBQkxFCi0KLUVOVFJZKHdha2V1cF9lbmQpCi0JCi0jIwotIyBhY3BpX2NvcHlfd2FrZXVwX3Jv dXRpbmUKLSMKLSMgQ29weSB0aGUgYWJvdmUgcm91dGluZSB0byBsb3cgbWVtb3J5LgotIwotIyBQ YXJhbWV0ZXJzOgotIyAlcmRpOglwbGFjZSB0byBjb3B5IHdha2V1cCByb3V0aW5lIHRvCi0jCi0j IFJldHVybmVkIGFkZHJlc3MgaXMgbG9jYXRpb24gb2YgY29kZSBpbiBsb3cgbWVtb3J5IChwYXN0 IGRhdGEgYW5kIHN0YWNrKQotIwotCS5jb2RlNjQKLUVOVFJZKGFjcGlfY29weV93YWtldXBfcm91 dGluZSkKLQlwdXNocQklcmF4Ci0JcHVzaHEJJXJkeAotCi0JbW92bAlzYXZlZF92aWRlb19tb2Rl LCAlZWR4Ci0JbW92bAklZWR4LCB2aWRlb19tb2RlIC0gd2FrZXVwX3N0YXJ0ICgsJXJkaSkKLQlt b3ZsCWFjcGlfcmVhbG1vZGVfZmxhZ3MsICVlZHgKLQltb3ZsCSVlZHgsIHJlYWxtb2RlX2ZsYWdz IC0gd2FrZXVwX3N0YXJ0ICgsJXJkaSkKLQltb3ZxCSQweDEyMzQ1Njc4LCByZWFsX21hZ2ljIC0g d2FrZXVwX3N0YXJ0ICgsJXJkaSkKLQltb3ZxCSQweDEyMzQ1Njc4OWFiY2RlZjAsICVyZHgKLQlt b3ZxCSVyZHgsIHNhdmVkX21hZ2ljCi0KLQltb3ZxICAgIHNhdmVkX21hZ2ljLCAlcmF4Ci0JbW92 cSAgICAkMHgxMjM0NTY3ODlhYmNkZWYwLCAlcmR4Ci0JY21wcSAgICAlcmR4LCAlcmF4Ci0Jam5l ICAgICBib2d1c182NF9tYWdpYwotCi0JIyByZXN0b3JlIHRoZSByZWdzIHdlIHVzZWQKLQlwb3Bx CSVyZHgKLQlwb3BxCSVyYXgKLUVOVFJZKGRvX3N1c3BlbmRfbG93bGV2ZWxfczRiaW9zKQotCXJl dAorCWptcAlib2d1c182NF9tYWdpYwogCiAJLmFsaWduIDIKIAkucDJhbGlnbiA0LCwxNQpAQCAt NDE0LDcgKzExOSw3IEBAIGRvX3N1c3BlbmRfbG93bGV2ZWw6CiAJam1wCXJlc3RvcmVfcHJvY2Vz c29yX3N0YXRlCiAuTEZFNToKIC5MZmU1OgotCS5zaXplCWRvX3N1c3BlbmRfbG93bGV2ZWwsLkxm ZTUtZG9fc3VzcGVuZF9sb3dsZXZlbAorCS5zaXplCWRvX3N1c3BlbmRfbG93bGV2ZWwsIC5MZmU1 LWRvX3N1c3BlbmRfbG93bGV2ZWwKIAkKIC5kYXRhCiBBTElHTgpkaWZmIC0tZ2l0IGEvYXJjaC94 ODYva2VybmVsL2FjcGkvd2FrZXVwX3JtLlMgYi9hcmNoL3g4Ni9rZXJuZWwvYWNwaS93YWtldXBf cm0uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZmYzYjU3Ci0tLSAvZGV2 L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL2FjcGkvd2FrZXVwX3JtLlMKQEAgLTAsMCArMSwx MCBAQAorLyoKKyAqIFdyYXBwZXIgc2NyaXB0IGZvciB0aGUgcmVhbG1vZGUgYmluYXJ5IGFzIGEg dHJhbnNwb3J0IG9iamVjdAorICogYmVmb3JlIGNvcHlpbmcgdG8gbG93IG1lbW9yeS4KKyAqLwor CS5zZWN0aW9uICIucm9kYXRhIiwiYSIKKwkuZ2xvYmwJd2FrZXVwX2NvZGVfc3RhcnQsIHdha2V1 cF9jb2RlX2VuZAord2FrZXVwX2NvZGVfc3RhcnQ6CisJLmluY2JpbgkiYXJjaC94ODYva2VybmVs L2FjcGkvcmVhbG1vZGUvd2FrZXVwLmJpbiIKK3dha2V1cF9jb2RlX2VuZDoKKwkuc2l6ZQl3YWtl dXBfY29kZV9zdGFydCwgLi13YWtldXBfY29kZV9zdGFydApkaWZmIC0tZ2l0IGEvYXJjaC94ODYv a2VybmVsL2U4MjBfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9lODIwXzY0LmMKaW5kZXggNmE1YTcy NS4uNGY0YjY5MCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2U4MjBfNjQuYworKysgYi9h cmNoL3g4Ni9rZXJuZWwvZTgyMF82NC5jCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSA8YXNt L3NldHVwLmg+CiAjaW5jbHVkZSA8YXNtL3NlY3Rpb25zLmg+CiAjaW5jbHVkZSA8YXNtL2tkZWJ1 Zy5oPgorI2luY2x1ZGUgPGFzbS90cmFtcG9saW5lLmg+CiAKIHN0cnVjdCBlODIwbWFwIGU4MjA7 CiAKQEAgLTU4LDggKzU5LDggQEAgc3RydWN0IGVhcmx5X3JlcyB7CiB9Owogc3RhdGljIHN0cnVj dCBlYXJseV9yZXMgZWFybHlfcmVzW01BWF9FQVJMWV9SRVNdIF9faW5pdGRhdGEgPSB7CiAJeyAw LCBQQUdFX1NJWkUsICJCSU9TIGRhdGEgcGFnZSIgfSwJCQkvKiBCSU9TIGRhdGEgcGFnZSAqLwot I2lmZGVmIENPTkZJR19TTVAKLQl7IFNNUF9UUkFNUE9MSU5FX0JBU0UsIFNNUF9UUkFNUE9MSU5F X0JBU0UgKyAyKlBBR0VfU0laRSwgIlNNUF9UUkFNUE9MSU5FIiB9LAorI2lmZGVmIENPTkZJR19Y ODZfVFJBTVBPTElORQorCXsgVFJBTVBPTElORV9CQVNFLCBUUkFNUE9MSU5FX0JBU0UgKyAyICog UEFHRV9TSVpFLCAiVFJBTVBPTElORSIgfSwKICNlbmRpZgogCXt9CiB9OwpkaWZmIC0tZ2l0IGEv YXJjaC94ODYva2VybmVsL2hlYWRfNjQuUyBiL2FyY2gveDg2L2tlcm5lbC9oZWFkXzY0LlMKaW5k ZXggYzFkN2E4Ny4uMTBhMTk1NSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2hlYWRfNjQu UworKysgYi9hcmNoL3g4Ni9rZXJuZWwvaGVhZF82NC5TCkBAIC0xMzIsMTAgKzEzMiw2IEBAIGlk ZW50X2NvbXBsZXRlOgogCWFkZHEJJXJicCwgdHJhbXBvbGluZV9sZXZlbDRfcGd0ICsgMCglcmlw KQogCWFkZHEJJXJicCwgdHJhbXBvbGluZV9sZXZlbDRfcGd0ICsgKDUxMSo4KSglcmlwKQogI2Vu ZGlmCi0jaWZkZWYgQ09ORklHX0FDUElfU0xFRVAKLQlhZGRxCSVyYnAsIHdha2V1cF9sZXZlbDRf cGd0ICsgMCglcmlwKQotCWFkZHEJJXJicCwgd2FrZXVwX2xldmVsNF9wZ3QgKyAoNTExKjgpKCVy aXApCi0jZW5kaWYKIAogCS8qIER1ZSB0byBFTlRSWSgpLCBzb21ldGltZXMgdGhlIGVtcHR5IHNw YWNlIGdldHMgZmlsbGVkIHdpdGgKIAkgKiB6ZXJvcy4gQmV0dGVyIHRha2UgYSBqbXAgdGhhbiBy ZWx5aW5nIG9uIGVtcHR5IHNwYWNlIGJlaW5nCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwv c2V0dXBfMzIuYyBiL2FyY2gveDg2L2tlcm5lbC9zZXR1cF8zMi5jCmluZGV4IDRiMTk4ZDkuLjVi MGJmZmIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9zZXR1cF8zMi5jCisrKyBiL2FyY2gv eDg2L2tlcm5lbC9zZXR1cF8zMi5jCkBAIC0xOTIsNyArMTkyLDcgQEAgRVhQT1JUX1NZTUJPTChp c3RfaW5mbyk7CiBleHRlcm4gdm9pZCBlYXJseV9jcHVfaW5pdCh2b2lkKTsKIGV4dGVybiBpbnQg cm9vdF9tb3VudGZsYWdzOwogCi11bnNpZ25lZCBsb25nIHNhdmVkX3ZpZGVvbW9kZTsKK3Vuc2ln bmVkIGxvbmcgc2F2ZWRfdmlkZW9fbW9kZTsKIAogI2RlZmluZSBSQU1ESVNLX0lNQUdFX1NUQVJU X01BU0sJMHgwN0ZGCiAjZGVmaW5lIFJBTURJU0tfUFJPTVBUX0ZMQUcJCTB4ODAwMApAQCAtNzYz LDcgKzc2Myw3IEBAIHZvaWQgX19pbml0IHNldHVwX2FyY2goY2hhciAqKmNtZGxpbmVfcCkKIAll ZGlkX2luZm8gPSBib290X3BhcmFtcy5lZGlkX2luZm87CiAJYXBtX2luZm8uYmlvcyA9IGJvb3Rf cGFyYW1zLmFwbV9iaW9zX2luZm87CiAJaXN0X2luZm8gPSBib290X3BhcmFtcy5pc3RfaW5mbzsK LQlzYXZlZF92aWRlb21vZGUgPSBib290X3BhcmFtcy5oZHIudmlkX21vZGU7CisJc2F2ZWRfdmlk ZW9fbW9kZSA9IGJvb3RfcGFyYW1zLmhkci52aWRfbW9kZTsKIAlpZiggYm9vdF9wYXJhbXMuc3lz X2Rlc2NfdGFibGUubGVuZ3RoICE9IDAgKSB7CiAJCXNldF9tY2FfYnVzKGJvb3RfcGFyYW1zLnN5 c19kZXNjX3RhYmxlLnRhYmxlWzNdICYgMHgyKTsKIAkJbWFjaGluZV9pZCA9IGJvb3RfcGFyYW1z LnN5c19kZXNjX3RhYmxlLnRhYmxlWzBdOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3Nl dHVwXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvc2V0dXBfNjQuYwppbmRleCBmYmVkZjVlLi40ZmY3 OGU2IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvc2V0dXBfNjQuYworKysgYi9hcmNoL3g4 Ni9rZXJuZWwvc2V0dXBfNjQuYwpAQCAtNjcsNiArNjcsNyBAQAogI2luY2x1ZGUgPGFzbS9tY2Uu aD4KICNpbmNsdWRlIDxhc20vZHMuaD4KICNpbmNsdWRlIDxhc20vdG9wb2xvZ3kuaD4KKyNpbmNs dWRlIDxhc20vdHJhbXBvbGluZS5oPgogCiAjaW5jbHVkZSA8bWFjaF9hcGljLmg+CiAjaWZkZWYg Q09ORklHX1BBUkFWSVJUCkBAIC0yNTksNiArMjYwLDIxIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBf X2luaXQgcmVzZXJ2ZV9jcmFzaGtlcm5lbCh2b2lkKQoge30KICNlbmRpZgogCisjaWZkZWYgQ09O RklHX1g4Nl9UUkFNUE9MSU5FCisvKgorICogQ3VycmVudGx5IHRyaXZpYWwuIFdyaXRlIHRoZSBy ZWFsLT5wcm90ZWN0ZWQgbW9kZQorICogYm9vdHN0cmFwIGludG8gdGhlIHBhZ2UgY29uY2VybmVk LiBUaGUgY2FsbGVyCisgKiBoYXMgbWFkZSBzdXJlIGl0J3Mgc3VpdGFibHkgYWxpZ25lZC4KKyAq LworCit1bnNpZ25lZCBsb25nIHNldHVwX3RyYW1wb2xpbmUodm9pZCkKK3sKKwl2b2lkICp0cmFt cCA9IF9fdmEoVFJBTVBPTElORV9CQVNFKTsKKwltZW1jcHkodHJhbXAsIHRyYW1wb2xpbmVfZGF0 YSwgdHJhbXBvbGluZV9lbmQgLSB0cmFtcG9saW5lX2RhdGEpOworCXJldHVybiB2aXJ0X3RvX3Bo eXModHJhbXApOworfQorI2VuZGlmIC8qIENPTkZJR19YODZfVFJBTVBPTElORSAqLworCiAvKiBP dmVycmlkZGVuIGluIHBhcmF2aXJ0LmMgaWYgQ09ORklHX1BBUkFWSVJUICovCiB2b2lkIF9fYXR0 cmlidXRlX18oKHdlYWspKSBfX2luaXQgbWVtb3J5X3NldHVwKHZvaWQpCiB7CmRpZmYgLS1naXQg YS9hcmNoL3g4Ni9rZXJuZWwvc21wYm9vdC5jIGIvYXJjaC94ODYva2VybmVsL3NtcGJvb3QuYwpp bmRleCA4NzI4ZTJlLi40ODgyYTM1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvc21wYm9v dC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9zbXBib290LmMKQEAgLTE0MCw3ICsxNDAsNyBAQCBz dGF0aWMgYXRvbWljX3QgaW5pdF9kZWFzc2VydGVkOwogc3RhdGljIGludCBib290X2NwdV9sb2dp Y2FsX2FwaWNpZDsKIAogLyogcmVhZHkgZm9yIHg4Nl82NCwgbm8gaGFybSBmb3IgeDg2LCBzaW5j ZSBpdCB3aWxsIG92ZXJ3cml0ZSBhZnRlciBhbGxvYyAqLwotdW5zaWduZWQgY2hhciAqdHJhbXBv bGluZV9iYXNlID0gX192YShTTVBfVFJBTVBPTElORV9CQVNFKTsKK3Vuc2lnbmVkIGNoYXIgKnRy YW1wb2xpbmVfYmFzZSA9IF9fdmEoVFJBTVBPTElORV9CQVNFKTsKIAogLyogcmVwcmVzZW50aW5n IGNwdXMgZm9yIHdoaWNoIHNpYmxpbmcgbWFwcyBjYW4gYmUgY29tcHV0ZWQgKi8KIHN0YXRpYyBj cHVtYXNrX3QgY3B1X3NpYmxpbmdfc2V0dXBfbWFwOwpAQCAtNTQ5LDE5ICs1NDksNiBAQCBjcHVt YXNrX3QgY3B1X2NvcmVncm91cF9tYXAoaW50IGNwdSkKIAkJcmV0dXJuIGMtPmxsY19zaGFyZWRf bWFwOwogfQogCi0vKgotICogQ3VycmVudGx5IHRyaXZpYWwuIFdyaXRlIHRoZSByZWFsLT5wcm90 ZWN0ZWQgbW9kZQotICogYm9vdHN0cmFwIGludG8gdGhlIHBhZ2UgY29uY2VybmVkLiBUaGUgY2Fs bGVyCi0gKiBoYXMgbWFkZSBzdXJlIGl0J3Mgc3VpdGFibHkgYWxpZ25lZC4KLSAqLwotCi11bnNp Z25lZCBsb25nIF9fY3B1aW5pdCBzZXR1cF90cmFtcG9saW5lKHZvaWQpCi17Ci0JbWVtY3B5KHRy YW1wb2xpbmVfYmFzZSwgdHJhbXBvbGluZV9kYXRhLAotCSAgICAgICB0cmFtcG9saW5lX2VuZCAt IHRyYW1wb2xpbmVfZGF0YSk7Ci0JcmV0dXJuIHZpcnRfdG9fcGh5cyh0cmFtcG9saW5lX2Jhc2Up OwotfQotCiAjaWZkZWYgQ09ORklHX1g4Nl8zMgogLyoKICAqIFdlIGFyZSBjYWxsZWQgdmVyeSBl YXJseSB0byBnZXQgdGhlIGxvdyBtZW1vcnkgZm9yIHRoZQpAQCAtNjYxLDYgKzY0OCw5IEBAIHdh a2V1cF9zZWNvbmRhcnlfY3B1KGludCBsb2dpY2FsX2FwaWNpZCwgdW5zaWduZWQgbG9uZyBzdGFy dF9laXApCiAJRHByaW50aygiV2FpdGluZyBmb3Igc2VuZCB0byBmaW5pc2guLi5cbiIpOwogCXNl bmRfc3RhdHVzID0gc2FmZV9hcGljX3dhaXRfaWNyX2lkbGUoKTsKIAorCS8qIFRyYW1wb2xpbmUg YXNzdW1lcyBpdCBpcyBhdCBiZWdnaW5pbmcgb2Ygc2VnbWVudCAqLworCUJVR19PTihzdGFydF9y aXAgJiAweGYpOworCiAJLyoKIAkgKiBHaXZlIHRoZSBvdGhlciBDUFUgc29tZSB0aW1lIHRvIGFj Y2VwdCB0aGUgSVBJLgogCSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3NtcC5oIGIv aW5jbHVkZS9hc20teDg2L3NtcC5oCmluZGV4IDM0OTZlMWMuLjMzNDgyYTUgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvYXNtLXg4Ni9zbXAuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvc21wLmgKQEAgLTEz MCw3ICsxMzAsNiBAQCBleHRlcm4gdm9pZCBfX2NwdV9kaWUodW5zaWduZWQgaW50IGNwdSk7CiAK IGV4dGVybiB2b2lkIHByZWZpbGxfcG9zc2libGVfbWFwKHZvaWQpOwogCi0jZGVmaW5lIFNNUF9U UkFNUE9MSU5FX0JBU0UgMHg2MDAwCiBleHRlcm4gdW5zaWduZWQgbG9uZyBzZXR1cF90cmFtcG9s aW5lKHZvaWQpOwogCiB2b2lkIHNtcF9zdG9yZV9jcHVfaW5mbyhpbnQgaWQpOwpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9hc20teDg2L3RyYW1wb2xpbmUuaCBiL2luY2x1ZGUvYXNtLXg4Ni90cmFtcG9s aW5lLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDFjMThkNwotLS0gL2Rl di9udWxsCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni90cmFtcG9saW5lLmgKQEAgLTAsMCArMSwxOCBA QAorI2lmbmRlZiBfX1RSQU1QT0xJTkVfSEVBREVSCisjZGVmaW5lIF9fVFJBTVBPTElORV9IRUFE RVIKKworI2lmbmRlZiBfX0FTU0VNQkxZX18KKworI2RlZmluZSBUUkFNUE9MSU5FX0JBU0UgMHg2 MDAwCisKKy8qCisgKiBUcmFtcG9saW5lIDgweDg2IHByb2dyYW0gYXMgYW4gYXJyYXkuCisgKi8K K2V4dGVybiBjb25zdCB1bnNpZ25lZCBjaGFyIHRyYW1wb2xpbmVfZGF0YVtdOworZXh0ZXJuIGNv bnN0IHVuc2lnbmVkIGNoYXIgdHJhbXBvbGluZV9lbmRbXTsKKworZXh0ZXJuIHVuc2lnbmVkIGxv bmcgc2V0dXBfdHJhbXBvbGluZSh2b2lkKTsKKworI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLwor CisjZW5kaWYgLyogX19UUkFNUE9MSU5FX0hFQURFUiAqLwo= ------=_Part_13818_32005627.1207775513748--