From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 45DDCC3A59E for ; Wed, 21 Aug 2019 16:36:17 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 081F4216F4 for ; Wed, 21 Aug 2019 16:36:17 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="zqgHjibK" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 081F4216F4 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=infradead.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i0Taf-00032T-AM; Wed, 21 Aug 2019 16:36:05 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i0Tae-00031v-18 for xen-devel@lists.xenproject.org; Wed, 21 Aug 2019 16:36:04 +0000 X-Inumbo-ID: b8987c92-c431-11e9-b95f-bc764e2007e4 Received: from merlin.infradead.org (unknown [2001:8b0:10b:1231::1]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id b8987c92-c431-11e9-b95f-bc764e2007e4; Wed, 21 Aug 2019 16:35:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=BNqiXvzo0o+08Ik3jef50oWJKcjgYA7ylYJ2HaN50rw=; b=zqgHjibK7Z8z+1Z4GPcHAYijhR Fod+DKr+W2H02dOqpGsIERQ3ON1s1CQVYGrQDzX8r/Ny1Ll3yLk980JSXGZDl+2ImdXWEFbooRGLC SDvbnfwZ4HxddGXEYHFPtFvojacZyRBPuCvt+PgRHiVwV4RnRJLYnwBGgi37Qk9MJMz9oTLohq7YD iwFLhTYP02mXE/D8QDghu8aMOdSU6UClhXoIn/wWiReYw/kXlgBWAuIyYaTHk15p5kCZA6iq7GeJ9 UuV7EfDKt6zS6EAQC6ssjTisN6j/ECxxmTGiTKyfW1YnaToe0dD5ZuQukETmGlLVUTNfnnyYZuKoS 9h5xc52g==; Received: from i7.infradead.org ([2001:8b0:10b:1:21e:67ff:fecb:7a92]) by merlin.infradead.org with esmtpsa (Exim 4.92 #3 (Red Hat Linux)) id 1i0TaJ-0001Dj-G3; Wed, 21 Aug 2019 16:35:43 +0000 Received: from dwoodhou by i7.infradead.org with local (Exim 4.92 #3 (Red Hat Linux)) id 1i0TaI-000imC-MY; Wed, 21 Aug 2019 17:35:42 +0100 From: David Woodhouse To: xen-devel@lists.xenproject.org Date: Wed, 21 Aug 2019 17:35:42 +0100 Message-Id: <20190821163542.172063-5-dwmw2@infradead.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190821163542.172063-1-dwmw2@infradead.org> References: <012a0e6de52d8a0ad50b0b784362cf509768990e.camel@infradead.org> <20190821163542.172063-1-dwmw2@infradead.org> MIME-Version: 1.0 X-SRS-Rewrite: SMTP reverse-path rewritten from by merlin.infradead.org. See http://www.infradead.org/rpr.html Subject: [Xen-devel] [PATCH v3 5/5] x86/boot: Do not use trampoline for no-real-mode boot paths X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Andrew Cooper , Wei Liu , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" RnJvbTogRGF2aWQgV29vZGhvdXNlIDxkd213QGFtYXpvbi5jby51az4KCldoZXJlIGJvb3RlZCBm cm9tIEVGSSBvciB3aXRoIG5vLXJlYWwtbW9kZSwgdGhlcmUgaXMgbm8gbmVlZCB0byBzdG9tcApv biBsb3cgbWVtb3J5IHdpdGggdGhlIDE2LWJvb3QgY29kZS4gSW5zdGVhZCwganVzdCBnbyBzdHJh aWdodCB0bwp0cmFtcG9saW5lX3Byb3Rtb2RlX2VudHJ5KCkgYXQgaXRzIHBoeXNpY2FsIGxvY2F0 aW9uIHdpdGhpbiB0aGUgWGVuCmltYWdlLCBoYXZpbmcgYXBwbGllZCBzdWl0YWJsZSByZWxvY2F0 aW9ucy4KClRoaXMgbWVhbnMgdGhhdCB0aGUgR0RUIGhhcyB0byBiZSBsb2FkZWQgd2l0aCBsZ2R0 bCBiZWNhdXNlIHRoZSAxNi1iaXQKbGdkdCBpbnN0cnVjdGlvbiB3b3VsZCBkcm9wIHRoZSBoaWdo IDggYml0cyBvZiB0aGUgZ2R0X3RyYW1wb2xpbmUKYWRkcmVzcywgY2F1c2luZyBmYWlsdXJlcyBp ZiB0aGUgWGVuIGltYWdlIHdhcyBsb2FkZWQgYWJvdmUgMTZNaUIuCgpGb3Igbm93LCB0aGUgYm9v dCBjb2RlIChpbmNsdWRpbmcgdGhlIEVGSSBsb2FkZXIgcGF0aCkgc3RpbGwgZGV0ZXJtaW5lcwp3 aGF0IHRoZSB0cmFtcG9saW5lX3BoeXMgYWRkcmVzcyBzaG91bGQgYmUgZm9yIHRoZSBwZXJtYW5l bnQgMTYtYml0CnRyYW1wb2xpbmUgKHVzZWQgZm9yIEFQIHN0YXJ0dXAsIGFuZCB3YWtldXApLiBC dXQgdGhhdCB0cmFtcG9saW5lIGlzCm5vdyBvbmx5IHJlbG9jYXRlZCBmb3IgdGhhdCBhZGRyZXNz IGFuZCBjb3BpZWQgaW50byBsb3cgbWVtb3J5IGxhdGVyLApmcm9tIGEgcmVsb2NhdGVfdHJhbXBv bGluZSgpIGNhbGwgbWFkZSBmcm9tIF9fc3RhcnRfeGVuKCkuCgpUaGUgcGVybWFuZW50IHRyYW1w b2xpbmUgY2FuJ3QgdHJpdmlhbGx5IHVzZSB0aGUgMzItYml0IGNvZGUgaW4gcGxhY2UgaW4KaXRz IHBoeXNpY2FsIGxvY2F0aW9uIGluIHRoZSBYZW4gaW1hZ2UsIGFzIGlkbGVfcGdfdGFibGUgZG9l c24ndCBoYXZlIGEKZnVsbCBwaHlzaWNhbCBtYXBwaW5nLiBGaXhpbmcgdGhhdCBpcyB0aGVvcmV0 aWNhbGx5IHBvc3NpYmxlIGJ1dCBpdCdzCmFjdHVhbGx5IG11Y2ggc2ltcGxlciBqdXN0IHRvIHJl bG9jYXRlIHRoZSAzMi1iaXQgY29kZSAoYWdhaW4pIGludG8gbG93Cm1lbW9yeSwgYWxvbmdzaWRl IHRoZSAxNi1iaXQgY29kZSBmb3IgdGhlIHBlcm1hbmVudCB0cmFtcG9saW5lLgoKU2lnbmVkLW9m Zi1ieTogRGF2aWQgV29vZGhvdXNlIDxkd213QGFtYXpvbi5jby51az4KLS0tCiB4ZW4vYXJjaC94 ODYvYWNwaS9wb3dlci5jICAgICAgfCAgNiArLS0KIHhlbi9hcmNoL3g4Ni9ib290L2hlYWQuUyAg ICAgICB8IDY3ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4 Ni9ib290L3RyYW1wb2xpbmUuUyB8IDMyICsrKysrKysrKysrKy0tLS0KIHhlbi9hcmNoL3g4Ni9j cHUvY29tbW9uLmMgICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMgICAgICAg fCAgMiArLQogeGVuL2FyY2gveDg2L2VmaS9lZmktYm9vdC5oICAgIHwgMzEgKystLS0tLS0tLS0t LS0tLQogeGVuL2FyY2gveDg2L3NldHVwLmMgICAgICAgICAgIHwgNDYgKysrKysrKysrKysrKysr KysrKysrLS0KIHhlbi9hcmNoL3g4Ni9zbXBib290LmMgICAgICAgICB8ICA2ICstLQogeGVuL2Fy Y2gveDg2L3Rib290LmMgICAgICAgICAgIHwgIDYgKy0tCiB4ZW4vYXJjaC94ODYveDg2XzY0L21t LmMgICAgICAgfCAgMiArLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9hY3BpLmggICAgIHwgIDIgKy0K IHhlbi9pbmNsdWRlL2FzbS14ODYvY29uZmlnLmggICB8IDEyICsrKy0tLQogMTIgZmlsZXMgY2hh bmdlZCwgMTIyIGluc2VydGlvbnMoKyksIDkyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9hY3BpL3Bvd2VyLmMgYi94ZW4vYXJjaC94ODYvYWNwaS9wb3dlci5jCmluZGV4 IGFlY2M3NTRmZGIuLmQyYTM1NTQyOWUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL3Bv d2VyLmMKKysrIGIveGVuL2FyY2gveDg2L2FjcGkvcG93ZXIuYwpAQCAtMTUyLDkgKzE1Miw5IEBA IHN0YXRpYyB2b2lkIGFjcGlfc2xlZXBfcHJlcGFyZSh1MzIgc3RhdGUpCiAgICAgICAgIHJldHVy bjsKIAogICAgIGlmICggYWNwaV9zaW5mby52ZWN0b3Jfd2lkdGggPT0gMzIgKQotICAgICAgICAq KHVpbnQzMl90ICopd2FrZXVwX3ZlY3Rvcl92YSA9IGJvb3RzeW1fcGh5cyh3YWtldXBfc3RhcnQp OworICAgICAgICAqKHVpbnQzMl90ICopd2FrZXVwX3ZlY3Rvcl92YSA9IHRyYW1wc3ltX3BoeXMo d2FrZXVwX3N0YXJ0KTsKICAgICBlbHNlCi0gICAgICAgICoodWludDY0X3QgKil3YWtldXBfdmVj dG9yX3ZhID0gYm9vdHN5bV9waHlzKHdha2V1cF9zdGFydCk7CisgICAgICAgICoodWludDY0X3Qg Kil3YWtldXBfdmVjdG9yX3ZhID0gdHJhbXBzeW1fcGh5cyh3YWtldXBfc3RhcnQpOwogfQogCiBz dGF0aWMgdm9pZCBhY3BpX3NsZWVwX3Bvc3QodTMyIHN0YXRlKSB7fQpAQCAtMzg4LDcgKzM4OCw3 IEBAIHN0YXRpYyB2b2lkIHRib290X3NsZWVwKHU4IHNsZWVwX3N0YXRlKQogICAgIGdfdGJvb3Rf c2hhcmVkLT5hY3BpX3NpbmZvLndha2V1cF92ZWN0b3IgPSBhY3BpX3NpbmZvLndha2V1cF92ZWN0 b3I7CiAgICAgZ190Ym9vdF9zaGFyZWQtPmFjcGlfc2luZm8udmVjdG9yX3dpZHRoID0gYWNwaV9z aW5mby52ZWN0b3Jfd2lkdGg7CiAgICAgZ190Ym9vdF9zaGFyZWQtPmFjcGlfc2luZm8ua2VybmVs X3MzX3Jlc3VtZV92ZWN0b3IgPQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJvb3RzeW1fcGh5cyh3YWtldXBfc3RhcnQpOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW1wc3ltX3BoeXMod2FrZXVwX3N0YXJ0KTsK IAogICAgIHN3aXRjaCAoIHNsZWVwX3N0YXRlICkKICAgICB7CmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvYm9vdC9oZWFkLlMgYi94ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMKaW5kZXggNmQzMTUw MjBkMi4uY2ViYWQwMGMxMyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TCisr KyBiL3hlbi9hcmNoL3g4Ni9ib290L2hlYWQuUwpAQCAtNjg5LDE2ICs2ODksMjMgQEAgdHJhbXBv bGluZV9zZXR1cDoKICAgICAgICAgbGVhICAgICBfX1BBR0VfSFlQRVJWSVNPUitzeW1fZXNpKGwx X2lkZW50bWFwKSwlZWRpCiAgICAgICAgIG1vdiAgICAgJWVkaSxzeW1fZnMobDJfYm9vdG1hcCkK IAotICAgICAgICAvKiBBcHBseSByZWxvY2F0aW9ucyB0byBib290c3RyYXAgdHJhbXBvbGluZS4g Ki8KLSAgICAgICAgbW92ICAgICBzeW1fZnModHJhbXBvbGluZV9waHlzKSwlZWR4Ci0gICAgICAg IG1vdiAgICAgJHN5bV9vZmZzKF9fdHJhbXBvbGluZV9yZWxfc3RhcnQpLCVlZGkKLTE6Ci0gICAg ICAgIG1vdiAgICAgJWZzOiglZWRpKSwlZWF4Ci0gICAgICAgIGFkZCAgICAgJWVkeCwlZnM6KCVl ZGksJWVheCkKLSAgICAgICAgYWRkICAgICAkNCwlZWRpCi0gICAgICAgIGNtcCAgICAgJHN5bV9v ZmZzKF9fdHJhbXBvbGluZV9yZWxfc3RvcCksJWVkaQotICAgICAgICBqYiAgICAgIDFiCisgICAg ICAgIC8qIERvIG5vdCBwYXJzZSBjb21tYW5kIGxpbmUgb24gRUZJIHBsYXRmb3JtIGhlcmUuICov CisgICAgICAgIGNtcGIgICAgJDAsc3ltX2ZzKGVmaV9wbGF0Zm9ybSkKKyAgICAgICAgam56ICAg ICAxZgogCisgICAgICAgIC8qIEJhaWwgaWYgdGhlcmUgaXMgbm8gY29tbWFuZCBsaW5lIHRvIHBh cnNlLiAqLworICAgICAgICBtb3YgICAgIHN5bV9mcyhtdWx0aWJvb3RfcHRyKSwlZWJ4CisgICAg ICAgIHRlc3RsICAgJE1CSV9DTURMSU5FLE1CX2ZsYWdzKCVlYngpCisgICAgICAgIGp6ICAgICAg MWYKKworICAgICAgICBsZWEgICAgIHN5bV9lc2koZWFybHlfYm9vdF9vcHRzKSwlZWF4CisgICAg ICAgIHB1c2ggICAgJWVheAorICAgICAgICBwdXNobCAgIE1CX2NtZGxpbmUoJWVieCkKKyAgICAg ICAgY2FsbCAgICBjbWRsaW5lX3BhcnNlX2Vhcmx5CisKKzE6CisgICAgICAgIC8qIEFwcGx5IHJl bG9jYXRpb25zIHRvIDMyLWJpdCB0cmFtcG9saW5lIGZvciBleGVjdXRpb24gaW4gcGxhY2UuICov CisgICAgICAgIGxlYSAgICAgc3ltX2VzaShwZXJtX3RyYW1wb2xpbmVfc3RhcnQpLCVlZHgKICAg ICAgICAgbW92ICAgICAkc3ltX29mZnMoX190cmFtcG9saW5lMzJfcmVsX3N0YXJ0KSwlZWRpCiAx OgogICAgICAgICBtb3YgICAgICVmczooJWVkaSksJWVheApAQCAtNzA3LDYgKzcxNCwyMSBAQCB0 cmFtcG9saW5lX3NldHVwOgogICAgICAgICBjbXAgICAgICRzeW1fb2ZmcyhfX3RyYW1wb2xpbmUz Ml9yZWxfc3RvcCksJWVkaQogICAgICAgICBqYiAgICAgIDFiCiAKKyAgICAgICAgY21wICAgICAk MCxzeW1fZXNpKHNraXBfcmVhbG1vZGUpCisgICAgICAgIGp6ICAgICAgLkxkb19yZWFsbW9kZQor CisgICAgICAgIC8qIEdvIGRpcmVjdGx5IHRvIHRyYW1wb2xpbmVfcHJvdG1vZGVfZW50cnkgYXQg aXRzIHBoeXNpY2FsIGFkZHJlc3MgKi8KKyAgICAgICAgbGVhICAgICB0cmFtcG9saW5lX3Byb3Rt b2RlX2VudHJ5LV9fWEVOX1ZJUlRfU1RBUlQoJWVzaSksJWVheAorICAgICAgICBwdXNobCAgICRC T09UX0NTMzIKKyAgICAgICAgcHVzaCAgICAlZWF4CisKKyAgICAgICAgLyogRUJYID09IDAgaW5k aWNhdGVzIHdlIGFyZSB0aGUgQlAgKEJvb3QgUHJvY2Vzc29yKS4gKi8KKyAgICAgICAgeG9yICAg ICAlZWJ4LCVlYngKKyAgICAgICAgcmV0bAorCisuTGRvX3JlYWxtb2RlOgorICAgICAgICAvKiBB cHBseSByZWxvY2F0aW9ucyB0byAxNi1iaXQgYm9vdCBjb2RlLiAqLworICAgICAgICBtb3YgICAg IHN5bV9mcyh0cmFtcG9saW5lX3BoeXMpLCVlZHgKICAgICAgICAgbW92ICAgICAkc3ltX29mZnMo X19ib290c3ltX3JlbF9zdGFydCksJWVkaQogMToKICAgICAgICAgbW92ICAgICAlZnM6KCVlZGkp LCVlYXgKQEAgLTczNiwzNSArNzU4LDEyIEBAIHRyYW1wb2xpbmVfc2V0dXA6CiAgICAgICAgIGNt cCAgICAgJHN5bV9vZmZzKF9fYm9vdGRhdGFzeW1fcmVsX3N0b3ApLCVlZGkKICAgICAgICAgamIg ICAgICAxYgogCi0gICAgICAgIC8qIERvIG5vdCBwYXJzZSBjb21tYW5kIGxpbmUgb24gRUZJIHBs YXRmb3JtIGhlcmUuICovCi0gICAgICAgIGNtcGIgICAgJDAsc3ltX2ZzKGVmaV9wbGF0Zm9ybSkK LSAgICAgICAgam56ICAgICAxZgotCi0gICAgICAgIC8qIEJhaWwgaWYgdGhlcmUgaXMgbm8gY29t bWFuZCBsaW5lIHRvIHBhcnNlLiAqLwotICAgICAgICBtb3YgICAgIHN5bV9mcyhtdWx0aWJvb3Rf cHRyKSwlZWJ4Ci0gICAgICAgIHRlc3RsICAgJE1CSV9DTURMSU5FLE1CX2ZsYWdzKCVlYngpCi0g ICAgICAgIGp6ICAgICAgMWYKLQotICAgICAgICBsZWEgICAgIHN5bV9lc2koZWFybHlfYm9vdF9v cHRzKSwlZWF4Ci0gICAgICAgIHB1c2ggICAgJWVheAotICAgICAgICBwdXNobCAgIE1CX2NtZGxp bmUoJWVieCkKLSAgICAgICAgY2FsbCAgICBjbWRsaW5lX3BhcnNlX2Vhcmx5Ci0KLTE6CiAgICAg ICAgIC8qIFN3aXRjaCB0byBsb3ctbWVtb3J5IHN0YWNrIHdoaWNoIGxpdmVzIGF0IHRoZSBlbmQg b2YgdHJhbXBvbGluZSByZWdpb24uICovCiAgICAgICAgIG1vdiAgICAgc3ltX2ZzKHRyYW1wb2xp bmVfcGh5cyksJWVkaQogICAgICAgICBsZWEgICAgIFRSQU1QT0xJTkVfU1BBQ0UrVFJBTVBPTElO RV9TVEFDS19TUEFDRSglZWRpKSwlZXNwCi0gICAgICAgIGNtcGIgICAgJDAsIHN5bV9mcyhza2lw X3JlYWxtb2RlKQotICAgICAgICBqeiAgICAgIDFmCi0gICAgICAgIC8qIElmIG5vLXJlYWwtbW9k ZSwganVtcCBzdHJhaWdodCB0byB0cmFtcG9saW5lX3Byb3Rtb2RlX2VudHJ5ICovCi0gICAgICAg IGxlYSAgICAgdHJhbXBvbGluZV9wcm90bW9kZV9lbnRyeS1ib290X3RyYW1wb2xpbmVfc3RhcnQo JWVkaSksJWVheAotICAgICAgICAvKiBFQlggPT0gMCBpbmRpY2F0ZXMgd2UgYXJlIHRoZSBCUCAo Qm9vdCBQcm9jZXNzb3IpLiAqLwotICAgICAgICB4b3IgICAgICVlYngsJWVieAotICAgICAgICBq bXAgICAgIDJmCi0xOgorCiAgICAgICAgIC8qIEdvIHZpYSAxNi1iaXQgY29kZSBpbiB0cmFtcG9s aW5lX2Jvb3RfY3B1X2VudHJ5ICovCiAgICAgICAgIGxlYSAgICAgdHJhbXBvbGluZV9ib290X2Nw dV9lbnRyeS1ib290X3RyYW1wb2xpbmVfc3RhcnQoJWVkaSksJWVheAotMjoKICAgICAgICAgcHVz aGwgICAkQk9PVF9DUzMyCiAgICAgICAgIHB1c2ggICAgJWVheAogCkBAIC03ODcsOCArNzg2LDYg QEAgY21kbGluZV9wYXJzZV9lYXJseToKIHJlbG9jOgogI2luY2x1ZGUgInJlbG9jLlMiCiAKLUVO VFJZKGJvb3RfdHJhbXBvbGluZV9zdGFydCkKICNpbmNsdWRlICJ0cmFtcG9saW5lLlMiCi1FTlRS WShib290X3RyYW1wb2xpbmVfZW5kKQogCiAjaW5jbHVkZSAieDg2XzY0LlMiCmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvYm9vdC90cmFtcG9saW5lLlMgYi94ZW4vYXJjaC94ODYvYm9vdC90cmFt cG9saW5lLlMKaW5kZXggYzc0N2Q3MDQwNC4uYjg0Njk3N2FkMCAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L2Jvb3QvdHJhbXBvbGluZS5TCisrKyBiL3hlbi9hcmNoL3g4Ni9ib290L3RyYW1wb2xp bmUuUwpAQCAtNjAsNyArNjAsNyBAQCBHTE9CQUwoYm9vdGRhdGFfc3RhcnQpCiAgICAgICAgIC5w b3BzZWN0aW9uCiAKICN1bmRlZiB0cmFtcHN5bQotI2RlZmluZSB0cmFtcHN5bShzKSAoKHMpLWJv b3RfdHJhbXBvbGluZV9zdGFydCkKKyNkZWZpbmUgdHJhbXBzeW0ocykgKChzKS1wZXJtX3RyYW1w b2xpbmVfc3RhcnQpCiAKICNkZWZpbmUgdHJhbXBzeW1fcmVsKHN5bSwgb2ZmLCBvcG5kLi4uKSAg ICBcCiAgICAgICAgIHRyYW1wc3ltKHN5bSksIyNvcG5kOyAgICAgICAgICAgICAgXApAQCAtNzAs NyArNzAsNyBAQCBHTE9CQUwoYm9vdGRhdGFfc3RhcnQpCiAgICAgICAgIC5wb3BzZWN0aW9uCiAK ICN1bmRlZiB0cmFtcDMyc3ltCi0jZGVmaW5lIHRyYW1wMzJzeW0ocykgKChzKS1ib290X3RyYW1w b2xpbmVfc3RhcnQpCisjZGVmaW5lIHRyYW1wMzJzeW0ocykgKChzKS1wZXJtX3RyYW1wb2xpbmVf c3RhcnQpCiAKICNkZWZpbmUgdHJhbXAzMnN5bV9yZWwoc3ltLCBvZmYsIG9wbmQuLi4pICBcCiAg ICAgICAgIHRyYW1wMzJzeW0oc3ltKSwjI29wbmQ7ICAgICAgICAgICAgXApAQCAtODMsNiArODMs OCBAQCBHTE9CQUwoYm9vdGRhdGFfc3RhcnQpCiAKICAgICAgICAgLmNvZGUxNgogCitFTlRSWShw ZXJtX3RyYW1wb2xpbmVfc3RhcnQpCisKIC8qCiAgKiBkb19ib290X2NwdSgpIHByb2dyYW1zIHRo ZSBTdGFydHVwLUlQSSB0byBwb2ludCBoZXJlLiAgRHVlIHRvIHRoZSBTSVBJCiAgKiBmb3JtYXQs IHRoZSByZWxvY2F0ZWQgZW50cnlwb2ludCBtdXN0IGJlIDRrIGFsaWduZWQuCkBAIC05MCw2ICs5 Miw3IEBAIEdMT0JBTChib290ZGF0YV9zdGFydCkKICAqIEl0IGlzIGVudGVyZWQgaW4gUmVhbCBN b2RlLCB3aXRoICVjcyA9IHRyYW1wb2xpbmVfcmVhbG1vZGVfZW50cnkgPj4gNCBhbmQKICAqICVp cCA9IDAuCiAgKi8KKwogR0xPQkFMKHRyYW1wb2xpbmVfcmVhbG1vZGVfZW50cnkpCiAgICAgICAg IG1vdiAgICAgJWNzLCVheAogICAgICAgICBtb3YgICAgICVheCwlZHMKQEAgLTk3LDcgKzEwMCw3 IEBAIEdMT0JBTCh0cmFtcG9saW5lX3JlYWxtb2RlX2VudHJ5KQogICAgICAgICBjbGQKICAgICAg ICAgY2xpCiAgICAgICAgIGxpZHQgICAgdHJhbXBzeW0oaWR0XzQ4KQotICAgICAgICBsZ2R0ICAg IHRyYW1wc3ltKGdkdF80OCkKKyAgICAgICAgbGdkdGwgICB0cmFtcHN5bShnZHRfNDgpCiAgICAg ICAgIG1vdiAgICAgJDEsJWJsICAgICAgICAgICAgICAgICAgICAjIEVCWCAhPSAwIGluZGljYXRl cyB3ZSBhcmUgYW4gQVAKICAgICAgICAgeG9yICAgICAlYXgsICVheAogICAgICAgICBpbmMgICAg ICVheApAQCAtMjM2LDExICsyMzksMjMgQEAgZ2R0XzQ4OiAud29yZCAgIDcqOC0xCiAKIC8qIFRo ZSBmaXJzdCBwYWdlIG9mIHRyYW1wb2xpbmUgaXMgcGVybWFuZW50LCB0aGUgcmVzdCBib290LXRp bWUgb25seS4gKi8KIC8qIFJldXNlIHRoZSBib290IHRyYW1wb2xpbmUgb24gdGhlIDFzdCB0cmFt cG9saW5lIHBhZ2UgYXMgc3RhY2sgZm9yIHdha2V1cC4gKi8KLSAgICAgICAgLmVxdSAgICB3YWtl dXBfc3RhY2ssIGJvb3RfdHJhbXBvbGluZV9zdGFydCArIFBBR0VfU0laRQorICAgICAgICAuZXF1 ICAgIHdha2V1cF9zdGFjaywgcGVybV90cmFtcG9saW5lX3N0YXJ0ICsgUEFHRV9TSVpFCiAgICAg ICAgIC5nbG9iYWwgd2FrZXVwX3N0YWNrCiAKK0VOVFJZKHBlcm1fdHJhbXBvbGluZV9lbmQpCisK IC8qIEZyb20gaGVyZSBvbiBlYXJseSBib290IG9ubHkuICovCiAKK0VOVFJZKGJvb3RfdHJhbXBv bGluZV9zdGFydCkKKworICAgICAgICAud29yZCAgIDAKK2Jvb3QxNl9pZHQ6CisgICAgICAgIC53 b3JkICAgMCwgMCwgMCAjIGJhc2UgPSBsaW1pdCA9IDAKKyAgICAgICAgLndvcmQgICAwCitib290 MTZfZ2R0OgorICAgICAgICAud29yZCAgIDcqOC0xCisgICAgICAgIC5sb25nICAgdHJhbXAzMnN5 bV9yZWwodHJhbXBvbGluZV9nZHQsNCkKKwogICAgICAgICAuY29kZTMyCiB0cmFtcG9saW5lX2Jv b3RfY3B1X2VudHJ5OgogICAgICAgICAvKiBMb2FkIHBzZXVkby1yZWFsLW1vZGUgc2VnbWVudHMu ICovCkBAIC0zMDQsOCArMzE5LDggQEAgdHJhbXBvbGluZV9ib290X2NwdV9lbnRyeToKICAgICAg ICAgY2xpCiAKICAgICAgICAgLyogUmVzZXQgR0RUIGFuZCBJRFQuIFNvbWUgQklPU2VzIGNsb2Ji ZXIgR0RUUi4gKi8KLSAgICAgICAgbGlkdCAgICBib290c3ltKGlkdF80OCkKLSAgICAgICAgbGdk dCAgICBib290c3ltKGdkdF80OCkKKyAgICAgICAgbGlkdCAgICBib290c3ltKGJvb3QxNl9pZHQp CisgICAgICAgIGxnZHRsICAgYm9vdHN5bShib290MTZfZ2R0KQogCiAgICAgICAgIC8qIEVudGVy IHByb3RlY3RlZCBtb2RlLCBhbmQgZmx1c2ggaW5zbiBxdWV1ZS4gKi8KICAgICAgICAgeG9yICAg ICAlYXgsJWF4CkBAIC0zNDMsNyArMzU4LDggQEAgdHJhbXBvbGluZV9ib290X2NwdV9lbnRyeToK ICAgICAgICAgeG9yICAgICAlZWJ4LCVlYngKIAogICAgICAgICAvKiBKdW1wIHRvIHRoZSBjb21t b24gYm9vdHN0cmFwIGVudHJ5IHBvaW50LiAqLwotICAgICAgICBqbXAgICAgIHRyYW1wb2xpbmVf cHJvdG1vZGVfZW50cnkKKyAgICAgICAgbW92ICAgICAkdHJhbXAzMnN5bV9yZWwodHJhbXBvbGlu ZV9wcm90bW9kZV9lbnRyeSw0LCVlYXgpCisgICAgICAgIGptcCAgICAgKiVlYXgKIAogI2luY2x1 ZGUgInZpZGVvLmgiCiAKQEAgLTM3OSw2ICszOTUsOCBAQCBybV9pZHQ6IC53b3JkICAgMjU2KjQt MSwgMCwgMAogI2luY2x1ZGUgInZpZGVvLlMiCiAjZW5kaWYKIAorRU5UUlkoYm9vdF90cmFtcG9s aW5lX2VuZCkKKwogICAgICAgICAucHVzaHNlY3Rpb24gLmRhdGEuYm9vdDE2LCAiYXciLCBAcHJv Z2JpdHMKIEdMT0JBTChib290ZGF0YV9lbmQpCiAgICAgICAgIC5wb3BzZWN0aW9uCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvY3B1L2NvbW1vbi5jIGIveGVuL2FyY2gveDg2L2NwdS9jb21tb24u YwppbmRleCBhMDc0MTc2YzAwLi4wNWNlZDI2NTk3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv Y3B1L2NvbW1vbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvY29tbW9uLmMKQEAgLTM4OSw3ICsz ODksNyBAQCBzdGF0aWMgdm9pZCBnZW5lcmljX2lkZW50aWZ5KHN0cnVjdCBjcHVpbmZvX3g4NiAq YykKIAkJICAgICAgJmMtPng4Nl9jYXBhYmlsaXR5W2NwdWZlYXRfd29yZChYODZfRkVBVFVSRV9M QUhGX0xNKV0sCiAJCSAgICAgICZjLT54ODZfY2FwYWJpbGl0eVtjcHVmZWF0X3dvcmQoWDg2X0ZF QVRVUkVfU1lTQ0FMTCldKTsKIAlpZiAoYyA9PSAmYm9vdF9jcHVfZGF0YSkKLQkJYm9vdHN5bShj cHVpZF9leHRfZmVhdHVyZXMpID0KKwkJdHJhbXBzeW0oY3B1aWRfZXh0X2ZlYXR1cmVzKSA9CiAJ CQljLT54ODZfY2FwYWJpbGl0eVtjcHVmZWF0X3dvcmQoWDg2X0ZFQVRVUkVfTlgpXTsKIAogCWlm IChjLT5leHRlbmRlZF9jcHVpZF9sZXZlbCA+PSAweDgwMDAwMDA0KQpkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L2NwdS9pbnRlbC5jIGIveGVuL2FyY2gveDg2L2NwdS9pbnRlbC5jCmluZGV4IDUz NTZhNmFlMTAuLjE5NzBlYjE4NDggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvaW50ZWwu YworKysgYi94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKQEAgLTI2OSw3ICsyNjksNyBAQCBzdGF0 aWMgdm9pZCBlYXJseV9pbml0X2ludGVsKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKIAkJCQkgTVNS X0lBMzJfTUlTQ19FTkFCTEVfWERfRElTQUJMRSk7CiAJaWYgKGRpc2FibGUpIHsKIAkJd3Jtc3Js KE1TUl9JQTMyX01JU0NfRU5BQkxFLCBtaXNjX2VuYWJsZSAmIH5kaXNhYmxlKTsKLQkJYm9vdHN5 bSh0cmFtcG9saW5lX21pc2NfZW5hYmxlX29mZikgfD0gZGlzYWJsZTsKKwkJdHJhbXBzeW0odHJh bXBvbGluZV9taXNjX2VuYWJsZV9vZmYpIHw9IGRpc2FibGU7CiAJfQogCiAJaWYgKGRpc2FibGUg JiBNU1JfSUEzMl9NSVNDX0VOQUJMRV9MSU1JVF9DUFVJRCkKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9lZmkvZWZpLWJvb3QuaCBiL3hlbi9hcmNoL3g4Ni9lZmkvZWZpLWJvb3QuaAppbmRleCBm YWMyYjVlMTJhLi5mOGM2ZWExMDBjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZWZpL2VmaS1i b290LmgKKysrIGIveGVuL2FyY2gveDg2L2VmaS9lZmktYm9vdC5oCkBAIC05OCwyOSArOTgsNiBA QCBzdGF0aWMgdm9pZCBfX2luaXQgZWZpX2FyY2hfcmVsb2NhdGVfaW1hZ2UodW5zaWduZWQgbG9u ZyBkZWx0YSkKICAgICB9CiB9CiAKLWV4dGVybiBjb25zdCBzMzIgX190cmFtcG9saW5lX3JlbF9z dGFydFtdLCBfX3RyYW1wb2xpbmVfcmVsX3N0b3BbXTsKLWV4dGVybiBjb25zdCBzMzIgX190cmFt cG9saW5lMzJfcmVsX3N0YXJ0W10sIF9fdHJhbXBvbGluZTMyX3JlbF9zdG9wW107Ci0KLXN0YXRp YyB2b2lkIF9faW5pdCByZWxvY2F0ZV90cmFtcG9saW5lKHVuc2lnbmVkIGxvbmcgcGh5cykKLXsK LSAgICBjb25zdCBzMzIgKnRyYW1wb2xpbmVfcHRyOwotCi0gICAgdHJhbXBvbGluZV9waHlzID0g cGh5czsKLQotICAgIGlmICggIWVmaV9lbmFibGVkKEVGSV9MT0FERVIpICkKLSAgICAgICAgcmV0 dXJuOwotCi0gICAgLyogQXBwbHkgcmVsb2NhdGlvbnMgdG8gdHJhbXBvbGluZS4gKi8KLSAgICBm b3IgKCB0cmFtcG9saW5lX3B0ciA9IF9fdHJhbXBvbGluZV9yZWxfc3RhcnQ7Ci0gICAgICAgICAg dHJhbXBvbGluZV9wdHIgPCBfX3RyYW1wb2xpbmVfcmVsX3N0b3A7Ci0gICAgICAgICAgKyt0cmFt cG9saW5lX3B0ciApCi0gICAgICAgICoodTMyICopKCp0cmFtcG9saW5lX3B0ciArIChsb25nKXRy YW1wb2xpbmVfcHRyKSArPSBwaHlzOwotICAgIGZvciAoIHRyYW1wb2xpbmVfcHRyID0gX190cmFt cG9saW5lMzJfcmVsX3N0YXJ0OwotICAgICAgICAgIHRyYW1wb2xpbmVfcHRyIDwgX190cmFtcG9s aW5lMzJfcmVsX3N0b3A7Ci0gICAgICAgICAgKyt0cmFtcG9saW5lX3B0ciApCi0gICAgICAgICoo dTMyICopKCp0cmFtcG9saW5lX3B0ciArIChsb25nKXRyYW1wb2xpbmVfcHRyKSArPSBwaHlzOwot fQotCiBzdGF0aWMgdm9pZCBfX2luaXQgcGxhY2Vfc3RyaW5nKHUzMiAqYWRkciwgY29uc3QgY2hh ciAqcykKIHsKICAgICBjaGFyICphbGxvYyA9IE5VTEw7CkBAIC0yMjMsNyArMjAwLDcgQEAgc3Rh dGljIHZvaWQgX19pbml0IGVmaV9hcmNoX3ByZV9leGl0X2Jvb3Qodm9pZCkKICAgICB7CiAgICAg ICAgIGlmICggIWNmZy5hZGRyICkKICAgICAgICAgICAgIGJsZXhpdChMIk5vIG1lbW9yeSBmb3Ig dHJhbXBvbGluZSIpOwotICAgICAgICByZWxvY2F0ZV90cmFtcG9saW5lKGNmZy5hZGRyKTsKKyAg ICAgICAgdHJhbXBvbGluZV9waHlzID0gY2ZnLmFkZHI7CiAgICAgfQogfQogCkBAIC0yMzIsNyAr MjA5LDYgQEAgc3RhdGljIHZvaWQgX19pbml0IG5vcmV0dXJuIGVmaV9hcmNoX3Bvc3RfZXhpdF9i b290KHZvaWQpCiAgICAgdTY0IGNyNCA9IFhFTl9NSU5JTUFMX0NSNCAmIH5YODZfQ1I0X1BHRSwg ZWZlcjsKIAogICAgIGVmaV9hcmNoX3JlbG9jYXRlX2ltYWdlKF9fWEVOX1ZJUlRfU1RBUlQgLSB4 ZW5fcGh5c19zdGFydCk7Ci0gICAgbWVtY3B5KCh2b2lkICopdHJhbXBvbGluZV9waHlzLCBib290 X3RyYW1wb2xpbmVfc3RhcnQsIGNmZy5zaXplKTsKIAogICAgIC8qIFNldCBzeXN0ZW0gcmVnaXN0 ZXJzIGFuZCB0cmFuc2ZlciBjb250cm9sLiAqLwogICAgIGFzbSB2b2xhdGlsZSgicHVzaHEgJDBc blx0cG9wZnEiKTsKQEAgLTU2NiwxNCArNTQyLDE0IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBlZmlf YXJjaF9tZW1vcnlfc2V0dXAodm9pZCkKICAgICBjZmcuYWRkciA9IDB4MTAwMDAwOwogCiAgICAg aWYgKCBlZmlfZW5hYmxlZChFRklfTE9BREVSKSApCi0gICAgICAgIGNmZy5zaXplID0gYm9vdF90 cmFtcG9saW5lX2VuZCAtIGJvb3RfdHJhbXBvbGluZV9zdGFydDsKKyAgICAgICAgY2ZnLnNpemUg PSBwZXJtX3RyYW1wb2xpbmVfZW5kIC0gcGVybV90cmFtcG9saW5lX3N0YXJ0OwogICAgIGVsc2UK ICAgICAgICAgY2ZnLnNpemUgPSBUUkFNUE9MSU5FX1NQQUNFICsgVFJBTVBPTElORV9TVEFDS19T UEFDRTsKIAogICAgIHN0YXR1cyA9IGVmaV9icy0+QWxsb2NhdGVQYWdlcyhBbGxvY2F0ZU1heEFk ZHJlc3MsIEVmaUxvYWRlckRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBGTl9VUChjZmcuc2l6ZSksICZjZmcuYWRkcik7CiAgICAgaWYgKCBzdGF0dXMgPT0gRUZJX1NV Q0NFU1MgKQotICAgICAgICByZWxvY2F0ZV90cmFtcG9saW5lKGNmZy5hZGRyKTsKKyAgICAgICAg dHJhbXBvbGluZV9waHlzID0gY2ZnLmFkZHI7CiAgICAgZWxzZQogICAgIHsKICAgICAgICAgY2Zn LmFkZHIgPSAwOwpAQCAtNjY1LDcgKzY0MSw2IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBlZmlfYXJj aF9sb2FkX2FkZHJfY2hlY2soRUZJX0xPQURFRF9JTUFHRSAqbG9hZGVkX2ltYWdlKQogICAgICAg ICBibGV4aXQoTCJYZW4gbXVzdCBiZSBsb2FkZWQgYmVsb3cgNEdiLiIpOwogICAgIGlmICggeGVu X3BoeXNfc3RhcnQgJiAoKDEgPDwgTDJfUEFHRVRBQkxFX1NISUZUKSAtIDEpICkKICAgICAgICAg YmxleGl0KEwiWGVuIG11c3QgYmUgbG9hZGVkIGF0IGEgMk1iIGJvdW5kYXJ5LiIpOwotICAgIHRy YW1wb2xpbmVfeGVuX3BoeXNfc3RhcnQgPSB4ZW5fcGh5c19zdGFydDsKIH0KIAogc3RhdGljIGJv b2wgX19pbml0IGVmaV9hcmNoX3VzZV9jb25maWdfZmlsZShFRklfU1lTVEVNX1RBQkxFICpTeXN0 ZW1UYWJsZSkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zZXR1cC5jIGIveGVuL2FyY2gveDg2 L3NldHVwLmMKaW5kZXggNWM4MThjYWVkMi4uNGZhYWZjMTgwYyAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L3NldHVwLmMKKysrIGIveGVuL2FyY2gveDg2L3NldHVwLmMKQEAgLTY3OSw2ICs2Nzks NDUgQEAgc3RhdGljIHVuc2lnbmVkIGludCBfX2luaXQgY29weV9iaW9zX2U4MjAoc3RydWN0IGU4 MjBlbnRyeSAqbWFwLCB1bnNpZ25lZCBpbnQgbGkKICAgICByZXR1cm4gbjsKIH0KIAorZXh0ZXJu IGNvbnN0IHMzMiBfX3RyYW1wb2xpbmVfcmVsX3N0YXJ0W10sIF9fdHJhbXBvbGluZV9yZWxfc3Rv cFtdOworZXh0ZXJuIGNvbnN0IHMzMiBfX3RyYW1wb2xpbmUzMl9yZWxfc3RhcnRbXSwgX190cmFt cG9saW5lMzJfcmVsX3N0b3BbXTsKKworc3RhdGljIHZvaWQgX19pbml0IHJlbG9jYXRlX3RyYW1w b2xpbmUodW5zaWduZWQgbG9uZyBwaHlzKQoreworICAgIGNvbnN0IHMzMiAqdHJhbXBvbGluZV9w dHI7CisgICAgdWludDMyX3QgdHJhbXAzMl9kZWx0YTsKKworICAgIC8qIEFwcGx5IHJlbG9jYXRp b25zIHRvIHRyYW1wb2xpbmUuICovCisgICAgZm9yICggdHJhbXBvbGluZV9wdHIgPSBfX3RyYW1w b2xpbmVfcmVsX3N0YXJ0OworICAgICAgICAgIHRyYW1wb2xpbmVfcHRyIDwgX190cmFtcG9saW5l X3JlbF9zdG9wOworICAgICAgICAgICsrdHJhbXBvbGluZV9wdHIgKQorICAgICAgICAqKHUzMiAq KSgqdHJhbXBvbGluZV9wdHIgKyAobG9uZyl0cmFtcG9saW5lX3B0cikgKz0gcGh5czsKKworICAg IHRyYW1wMzJfZGVsdGEgPSBwaHlzOworICAgIGlmICggIWVmaV9lbmFibGVkKEVGSV9MT0FERVIp ICkKKyAgICB7CisgICAgICAgIC8qCisgICAgICAgICAqIFRoZSBub24tRUZJIGJvb3QgY29kZSB1 c2VzIHRoZSAzMi1iaXQgdHJhbXBvbGluZSBpbiBwbGFjZQorICAgICAgICAgKiBzbyB3aWxsIGhh dmUgcmVsb2NhdGVkIGl0IHRvIHRoZSBwaHlzaWNhbCBhZGRyZXNzIG9mCisgICAgICAgICAqIHBl cm1fdHJhbXBvbGluZV9zdGFydCBhbHJlYWR5LiBVbmRvIHRoYXQgYXMgaXQgbmVlZHMgdG8KKyAg ICAgICAgICogcnVuIGZyb20gbG93IG1lbW9yeSBmb3IgQVAgc3RhcnR1cCwgYmVjYXVzZSB0aGUg WGVuCisgICAgICAgICAqIHBoeXNpY2FsIGFkZHJlc3MgcmFuZ2Ugd29uJ3QgYmUgbWFwcGVkLgor ICAgICAgICAgKi8KKyAgICAgICAgdHJhbXAzMl9kZWx0YSAtPSB0cmFtcG9saW5lX3hlbl9waHlz X3N0YXJ0OworICAgICAgICB0cmFtcDMyX2RlbHRhIC09ICh1bnNpZ25lZCBsb25nKShwZXJtX3Ry YW1wb2xpbmVfc3RhcnQgLSBfX1hFTl9WSVJUX1NUQVJUKTsKKyAgICB9CisgICAgZm9yICggdHJh bXBvbGluZV9wdHIgPSBfX3RyYW1wb2xpbmUzMl9yZWxfc3RhcnQ7CisgICAgICAgICAgdHJhbXBv bGluZV9wdHIgPCBfX3RyYW1wb2xpbmUzMl9yZWxfc3RvcDsKKyAgICAgICAgICArK3RyYW1wb2xp bmVfcHRyICkKKyAgICB7CisgICAgICAgICoodTMyICopKCp0cmFtcG9saW5lX3B0ciArIChsb25n KXRyYW1wb2xpbmVfcHRyKSArPSB0cmFtcDMyX2RlbHRhOworICAgIH0KKyAgICB0cmFtcG9saW5l X3hlbl9waHlzX3N0YXJ0ID0geGVuX3BoeXNfc3RhcnQ7CisKKyAgICBtZW1jcHkodHJhbXBzeW0o cGVybV90cmFtcG9saW5lX3N0YXJ0KSwgcGVybV90cmFtcG9saW5lX3N0YXJ0LAorICAgICAgICAg ICBwZXJtX3RyYW1wb2xpbmVfZW5kIC0gcGVybV90cmFtcG9saW5lX3N0YXJ0KTsKK30KKwogdm9p ZCBfX2luaXQgbm9yZXR1cm4gX19zdGFydF94ZW4odW5zaWduZWQgbG9uZyBtYmlfcCkKIHsKICAg ICBjaGFyICptZW1tYXBfdHlwZSA9IE5VTEw7CkBAIC0xMDczLDcgKzExMTIsNiBAQCB2b2lkIF9f aW5pdCBub3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogICAgICAgICAg ICAgLyogU2VsZWN0IHJlbG9jYXRpb24gYWRkcmVzcy4gKi8KICAgICAgICAgICAgIGUgPSBlbmQg LSByZWxvY19zaXplOwogICAgICAgICAgICAgeGVuX3BoeXNfc3RhcnQgPSBlOwotICAgICAgICAg ICAgYm9vdHN5bSh0cmFtcG9saW5lX3hlbl9waHlzX3N0YXJ0KSA9IGU7CiAKICAgICAgICAgICAg IC8qCiAgICAgICAgICAgICAgKiBObyBQVEVzIHBvaW50aW5nIGFib3ZlIHRoaXMgYWRkcmVzcyBh cmUgY2FuZGlkYXRlcyBmb3IgcmVsb2NhdGlvbi4KQEAgLTE1MDYsNiArMTU0NCw4IEBAIHZvaWQg X19pbml0IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAgICAgZWxz ZQogICAgICAgICBlbmRfYm9vdF9hbGxvY2F0b3IoKTsKIAorICAgIHJlbG9jYXRlX3RyYW1wb2xp bmUodHJhbXBvbGluZV9waHlzKTsKKwogICAgIHN5c3RlbV9zdGF0ZSA9IFNZU19TVEFURV9ib290 OwogICAgIC8qCiAgICAgICogTm8gY2FsbHMgaW52b2x2aW5nIEFDUEkgY29kZSBzaG91bGQgZ28g YmV0d2VlbiB0aGUgc2V0dGluZyBvZgpAQCAtMTg3Niw4ICsxOTE2LDggQEAgaW50IF9faHdkb21f aW5pdCB4ZW5faW5fcmFuZ2UodW5zaWduZWQgbG9uZyBtZm4pCiAgICAgaWYgKCAheGVuX3JlZ2lv bnNbMF0ucyApCiAgICAgewogICAgICAgICAvKiBTMyByZXN1bWUgY29kZSAoYW5kIG90aGVyIHJl YWwgbW9kZSB0cmFtcG9saW5lIGNvZGUpICovCi0gICAgICAgIHhlbl9yZWdpb25zW3JlZ2lvbl9z M10ucyA9IGJvb3RzeW1fcGh5cyhib290X3RyYW1wb2xpbmVfc3RhcnQpOwotICAgICAgICB4ZW5f cmVnaW9uc1tyZWdpb25fczNdLmUgPSBib290c3ltX3BoeXMoYm9vdF90cmFtcG9saW5lX2VuZCk7 CisgICAgICAgIHhlbl9yZWdpb25zW3JlZ2lvbl9zM10ucyA9IHRyYW1wc3ltX3BoeXMocGVybV90 cmFtcG9saW5lX3N0YXJ0KTsKKyAgICAgICAgeGVuX3JlZ2lvbnNbcmVnaW9uX3MzXS5lID0gdHJh bXBzeW1fcGh5cyhwZXJtX3RyYW1wb2xpbmVfZW5kKTsKIAogICAgICAgICAvKgogICAgICAgICAg KiBUaGlzIG5lZWRzIHRvIHJlbWFpbiBpbiBzeW5jIHdpdGggdGhlIHVzZXMgb2YgdGhlIHNhbWUg c3ltYm9scyBpbgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3NtcGJvb3QuYyBiL3hlbi9hcmNo L3g4Ni9zbXBib290LmMKaW5kZXggNWM0MjU0YWM4Ny4uOGUwYzg0NGUzNyAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L3NtcGJvb3QuYworKysgYi94ZW4vYXJjaC94ODYvc21wYm9vdC5jCkBAIC00 Nyw3ICs0Nyw3IEBACiAjaW5jbHVkZSA8YXNtL3Rib290Lmg+CiAjaW5jbHVkZSA8bWFjaF9hcGlj Lmg+CiAKLSNkZWZpbmUgc2V0dXBfdHJhbXBvbGluZSgpICAgIChib290c3ltX3BoeXModHJhbXBv bGluZV9yZWFsbW9kZV9lbnRyeSkpCisjZGVmaW5lIHNldHVwX3RyYW1wb2xpbmUoKSAgICAodHJh bXBzeW1fcGh5cyh0cmFtcG9saW5lX3JlYWxtb2RlX2VudHJ5KSkKIAogdW5zaWduZWQgbG9uZyBf X3JlYWRfbW9zdGx5IHRyYW1wb2xpbmVfcGh5czsKIApAQCAtNTk4LDcgKzU5OCw3IEBAIHN0YXRp YyBpbnQgZG9fYm9vdF9jcHUoaW50IGFwaWNpZCwgaW50IGNwdSkKICAgICAgICAgewogICAgICAg ICAgICAgYm9vdF9lcnJvciA9IDE7CiAgICAgICAgICAgICBzbXBfbWIoKTsKLSAgICAgICAgICAg IGlmICggYm9vdHN5bSh0cmFtcG9saW5lX2NwdV9zdGFydGVkKSA9PSAweEE1ICkKKyAgICAgICAg ICAgIGlmICggdHJhbXBzeW0odHJhbXBvbGluZV9jcHVfc3RhcnRlZCkgPT0gMHhBNSApCiAgICAg ICAgICAgICAgICAgLyogdHJhbXBvbGluZSBzdGFydGVkIGJ1dC4uLj8gKi8KICAgICAgICAgICAg ICAgICBwcmludGsoIlN0dWNrID8/XG4iKTsKICAgICAgICAgICAgIGVsc2UKQEAgLTYxNCw3ICs2 MTQsNyBAQCBzdGF0aWMgaW50IGRvX2Jvb3RfY3B1KGludCBhcGljaWQsIGludCBjcHUpCiAgICAg fQogCiAgICAgLyogbWFyayAic3R1Y2siIGFyZWEgYXMgbm90IHN0dWNrICovCi0gICAgYm9vdHN5 bSh0cmFtcG9saW5lX2NwdV9zdGFydGVkKSA9IDA7CisgICAgdHJhbXBzeW0odHJhbXBvbGluZV9j cHVfc3RhcnRlZCkgPSAwOwogICAgIHNtcF9tYigpOwogCiAgICAgcmV0dXJuIHJjOwpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L3Rib290LmMgYi94ZW4vYXJjaC94ODYvdGJvb3QuYwppbmRleCAy NzY5ZTFjY2Q5Li5hZDI1OTE1NzhkIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvdGJvb3QuYwor KysgYi94ZW4vYXJjaC94ODYvdGJvb3QuYwpAQCAtMzY5LDkgKzM2OSw5IEBAIHZvaWQgdGJvb3Rf c2h1dGRvd24odWludDMyX3Qgc2h1dGRvd25fdHlwZSkKICAgICAgICAgICovCiAgICAgICAgIGdf dGJvb3Rfc2hhcmVkLT5udW1fbWFjX3JlZ2lvbnMgPSAzOwogICAgICAgICAvKiBTMyByZXN1bWUg Y29kZSAoYW5kIG90aGVyIHJlYWwgbW9kZSB0cmFtcG9saW5lIGNvZGUpICovCi0gICAgICAgIGdf dGJvb3Rfc2hhcmVkLT5tYWNfcmVnaW9uc1swXS5zdGFydCA9IGJvb3RzeW1fcGh5cyhib290X3Ry YW1wb2xpbmVfc3RhcnQpOwotICAgICAgICBnX3Rib290X3NoYXJlZC0+bWFjX3JlZ2lvbnNbMF0u c2l6ZSA9IGJvb3RzeW1fcGh5cyhib290X3RyYW1wb2xpbmVfZW5kKSAtCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vdHN5bV9waHlzKGJvb3RfdHJhbXBv bGluZV9zdGFydCk7CisgICAgICAgIGdfdGJvb3Rfc2hhcmVkLT5tYWNfcmVnaW9uc1swXS5zdGFy dCA9IHRyYW1wc3ltX3BoeXMocGVybV90cmFtcG9saW5lX3N0YXJ0KTsKKyAgICAgICAgZ190Ym9v dF9zaGFyZWQtPm1hY19yZWdpb25zWzBdLnNpemUgPSB0cmFtcHN5bV9waHlzKHBlcm1fdHJhbXBv bGluZV9lbmQpIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0cmFtcHN5bV9waHlzKHBlcm1fdHJhbXBvbGluZV9zdGFydCk7CiAgICAgICAgIC8qIGh5cGVy dmlzb3IgLnRleHQgKyAucm9kYXRhICovCiAgICAgICAgIGdfdGJvb3Rfc2hhcmVkLT5tYWNfcmVn aW9uc1sxXS5zdGFydCA9ICh1aW50NjRfdClfX3BhKCZfc3RleHQpOwogICAgICAgICBnX3Rib290 X3NoYXJlZC0+bWFjX3JlZ2lvbnNbMV0uc2l6ZSA9IF9fcGEoJl9fMk1fcm9kYXRhX2VuZCkgLQpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jIGIveGVuL2FyY2gveDg2L3g4Nl82 NC9tbS5jCmluZGV4IDE0OWNjNGY3YjUuLjA1ZDQ3NmM0MjMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni94ODZfNjQvbW0uYworKysgYi94ZW4vYXJjaC94ODYveDg2XzY0L21tLmMKQEAgLTY5Nyw3 ICs2OTcsNyBAQCB2b2lkIF9faW5pdCB6YXBfbG93X21hcHBpbmdzKHZvaWQpCiAKICAgICAvKiBS ZXBsYWNlIHdpdGggbWFwcGluZyBvZiB0aGUgYm9vdCB0cmFtcG9saW5lIG9ubHkuICovCiAgICAg bWFwX3BhZ2VzX3RvX3hlbih0cmFtcG9saW5lX3BoeXMsIG1hZGRyX3RvX21mbih0cmFtcG9saW5l X3BoeXMpLAotICAgICAgICAgICAgICAgICAgICAgUEZOX1VQKGJvb3RfdHJhbXBvbGluZV9lbmQg LSBib290X3RyYW1wb2xpbmVfc3RhcnQpLAorICAgICAgICAgICAgICAgICAgICAgUEZOX1VQKHBl cm1fdHJhbXBvbGluZV9lbmQgLSBwZXJtX3RyYW1wb2xpbmVfc3RhcnQpLAogICAgICAgICAgICAg ICAgICAgICAgX19QQUdFX0hZUEVSVklTT1IpOwogfQogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS9hc20teDg2L2FjcGkuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvYWNwaS5oCmluZGV4IDcwMzJm M2EwMDEuLjhjNTM4MWFhNDcgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvYWNwaS5o CisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvYWNwaS5oCkBAIC0xMDYsNyArMTA2LDcgQEAgZXh0 ZXJuIGludCBhY3BpX3NjYW5fbm9kZXModTY0IHN0YXJ0LCB1NjQgZW5kKTsKICNkZWZpbmUgTlJf Tk9ERV9NRU1CTEtTIChNQVhfTlVNTk9ERVMqMikKIAogZXh0ZXJuIHN0cnVjdCBhY3BpX3NsZWVw X2luZm8gYWNwaV9zaW5mbzsKLSNkZWZpbmUgYWNwaV92aWRlb19mbGFncyBib290c3ltKHZpZGVv X2ZsYWdzKQorI2RlZmluZSBhY3BpX3ZpZGVvX2ZsYWdzIHRyYW1wc3ltKHZpZGVvX2ZsYWdzKQog c3RydWN0IHhlbnBmX2VudGVyX2FjcGlfc2xlZXA7CiBleHRlcm4gaW50IGFjcGlfZW50ZXJfc2xl ZXAoc3RydWN0IHhlbnBmX2VudGVyX2FjcGlfc2xlZXAgKnNsZWVwKTsKIGV4dGVybiBpbnQgYWNw aV9lbnRlcl9zdGF0ZSh1MzIgc3RhdGUpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4 Ni9jb25maWcuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvY29uZmlnLmgKaW5kZXggNTA0ODE3NDhm Ni4uZTUwNDNmYWZiZCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9jb25maWcuaAor KysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2NvbmZpZy5oCkBAIC04OSwxMiArODksMTIgQEAKIAog I2lmbmRlZiBfX0FTU0VNQkxZX18KIGV4dGVybiB1bnNpZ25lZCBsb25nIHRyYW1wb2xpbmVfcGh5 czsKLSNkZWZpbmUgYm9vdHN5bV9waHlzKHN5bSkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCi0gICAgKCgodW5zaWduZWQgbG9uZykmKHN5bSktKHVuc2lnbmVkIGxvbmcpJmJvb3Rf dHJhbXBvbGluZV9zdGFydCkrdHJhbXBvbGluZV9waHlzKQotI2RlZmluZSBib290c3ltKHN5bSkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAoKlJFTE9DX0hJREUo KHR5cGVvZigmKHN5bSkpKV9fdmEoX19wYSgmKHN5bSkpKSwgICAgICBcCi0gICAgICAgICAgICAg ICAgIHRyYW1wb2xpbmVfcGh5cy1fX3BhKGJvb3RfdHJhbXBvbGluZV9zdGFydCkpKQotZXh0ZXJu IGNoYXIgYm9vdF90cmFtcG9saW5lX3N0YXJ0W10sIGJvb3RfdHJhbXBvbGluZV9lbmRbXTsKKyNk ZWZpbmUgdHJhbXBzeW1fcGh5cyhzeW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorICAgICgoKHVuc2lnbmVkIGxvbmcpJihzeW0pIC0gKHVuc2lnbmVkIGxvbmcpJnBlcm1fdHJh bXBvbGluZV9zdGFydCkgKyB0cmFtcG9saW5lX3BoeXMpCisjZGVmaW5lIHRyYW1wc3ltKHN5bSkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoKlJFTE9DX0hJREUo KHR5cGVvZigmKHN5bSkpKV9fdmEoX19wYSgmKHN5bSkpKSwgICAgICAgXAorICAgICAgICAgICAg ICAgICB0cmFtcG9saW5lX3BoeXMgLSBfX3BhKHBlcm1fdHJhbXBvbGluZV9zdGFydCkpKQorZXh0 ZXJuIGNoYXIgcGVybV90cmFtcG9saW5lX3N0YXJ0W10sIHBlcm1fdHJhbXBvbGluZV9lbmRbXTsK IGV4dGVybiBjaGFyIHRyYW1wb2xpbmVfcmVhbG1vZGVfZW50cnlbXTsKIGV4dGVybiB1bnNpZ25l ZCBpbnQgdHJhbXBvbGluZV94ZW5fcGh5c19zdGFydDsKIGV4dGVybiB1bnNpZ25lZCBjaGFyIHRy YW1wb2xpbmVfY3B1X3N0YXJ0ZWQ7Ci0tIAoyLjIxLjAKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxt YW4vbGlzdGluZm8veGVuLWRldmVs