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.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,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 412FCC34022 for ; Wed, 19 Feb 2020 08:12:08 +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 101CE2176D for ; Wed, 19 Feb 2020 08:12:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 101CE2176D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.com 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 1j4KSY-0008DD-0P; Wed, 19 Feb 2020 08:11:54 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1j4KSW-0008CL-JP for xen-devel@lists.xenproject.org; Wed, 19 Feb 2020 08:11:52 +0000 X-Inumbo-ID: 6f6bf45c-52ef-11ea-bc8e-bc764e2007e4 Received: from mx2.suse.de (unknown [195.135.220.15]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 6f6bf45c-52ef-11ea-bc8e-bc764e2007e4; Wed, 19 Feb 2020 08:11:31 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 15DDAB269; Wed, 19 Feb 2020 08:11:30 +0000 (UTC) From: Juergen Gross To: xen-devel@lists.xenproject.org Date: Wed, 19 Feb 2020 09:11:21 +0100 Message-Id: <20200219081126.29534-4-jgross@suse.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20200219081126.29534-1-jgross@suse.com> References: <20200219081126.29534-1-jgross@suse.com> Subject: [Xen-devel] [PATCH v5 3/8] xen: add basic hypervisor filesystem support 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: Juergen Gross , Stefano Stabellini , Julien Grall , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Jan Beulich , Daniel De Graaf , Volodymyr Babchuk , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" QWRkIHRoZSBpbmZyYXN0cnVjdHVyZSBmb3IgdGhlIGh5cGVydmlzb3IgZmlsZXN5c3RlbS4KClRo aXMgaW5jbHVkZXMgdGhlIGh5cGVyY2FsbCBpbnRlcmZhY2UgYW5kIHRoZSBiYXNlIGZ1bmN0aW9u cyBmb3IKZW50cnkgY3JlYXRpb24sIGRlbGV0aW9uIGFuZCBtb2RpZmljYXRpb24uCgpJbiBvcmRl ciBub3QgdG8gaGF2ZSB0byByZXBlYXQgdGhlIHNhbWUgcGF0dGVybiBtdWx0aXBsZSB0aW1lcyBp biBjYXNlCmFkZGluZyBhIG5ldyBub2RlIHNob3VsZCBCVUdfT04oKSBmYWlsdXJlLCB0aGUgaGVs cGVycyBmb3IgYWRkaW5nIGEKbm9kZSAoaHlwZnNfYWRkX2RpcigpIGFuZCBoeXBmc19hZGRfbGVh ZigpKSBnZXQgYSBub2ZhdWx0IHBhcmFtZXRlcgpjYXVzaW5nIHRoZSBCVUcoKSBpbiBjYXNlIG9m IGEgZmFpbHVyZS4KCldoZW4gc3VwcG9ydGluZyB3cml0YWJsZSBsZWFmcyB0aGUgZW50cnkncyB3 cml0ZSBwb2ludGVyIHdpbGwgbmVlZCB0bwpiZSBzZXQgdG8gdGhlIGZ1bmN0aW9uIHBlcmZvcm1p bmcgdGhlIHdyaXRlIHRvIHRoZSB2YXJpYWJsZSBob2xkaW5nIHRoZQpjb250ZW50LiBJbiBjYXNl IHRoZXJlIGFyZSBubyBzcGVjaWFsIGNvbnN0cmFpbnRzIHRoaXMgd2lsbCBiZQpoeXBmc193cml0 ZV9ib29sKCkgZm9yIHR5cGUgWEVOX0hZUEZTX1RZUEVfQk9PTCBhbmQgaHlwZnNfd3JpdGVfbGVh ZigpCmZvciB0aGUgb3RoZXIgZW50cnkgdHlwZXMuCgpTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdy b3NzIDxqZ3Jvc3NAc3VzZS5jb20+Ci0tLQpWMToKLSByZW5hbWUgZmlsZXMgZnJvbSBmaWxlc3lz dGVtLiogdG8gaHlwZnMuKgotIGFkZCBkdW1teSB3cml0ZSBlbnRyeSBzdXBwb3J0Ci0gcmVuYW1l IGh5cGVyY2FsbCBmaWxlc3lzdGVtX29wIHRvIGh5cGZzX29wCi0gYWRkIHN1cHBvcnQgZm9yIHVu c2lnbmVkIGludGVnZXIgZW50cmllcwoKVjI6Ci0gdGVzdCBuZXcgZW50cnkgbmFtZSB0byBiZSB2 YWxpZAoKVjM6Ci0gbWFqb3IgcmV3b3JrLCBlc3BlY2lhbGx5IGJ5IHN1cHBvcnRpbmcgYmluYXJ5 IGNvbnRlbnRzIG9mIGVudHJpZXMKLSBhZGRyZXNzZWQgYWxsIGNvbW1lbnRzCgpWNDoKLSBzb3J0 ICNpbmNsdWRlcyBhbHBoYWJldGljYWxseSAoV2VpIExpdSkKLSBhZGQgcHVibGljIGludGVyZmFj ZSBzdHJ1Y3R1cmVzIHRvIHhsYXQubHN0IChKYW4gQmV1bGljaCkKLSBsZXQgRElSRU5UUllfU0la RSgpIGFkZCAxIGZvciB0cmFpbGluZyBudWwgYnl0ZSAoSmFuIEJldWxpY2gpCi0gcmVtb3ZlIGh5 cGZzX2FkZF9lbnRyeSgpIChKYW4gQmV1bGljaCkKLSBsZW4gLT4gdWxlbiAoSmFuIEJldWxpY2gp Ci0gc3dpdGNoIHNlcXVlbmNlIG9mIHRlc3RzIGluIGh5cGZzX2dldF9lbnRyeV9yZWwoKSAoSmFu IEJldWxpY2gpCi0gYWRkIGNvbnN0IHF1YWxpZmllciAoSmFuIEJldWxpY2gpCi0gcmV0dXJuIC1F Tk9CVUZTIGlmIG9ubHkgZGlyZW50cnkgYnV0IG5vIGVudHJ5IGNvbnRlbnRzIGFyZSByZXR1cm5l ZAogIChKYW4gQmV1bGljaCkKLSB1c2UgeG1hbGxvYygpIGluc3RlYWQgb2YgeHphbGxvYygpIChK YW4gQmV1bGljaCkKLSBiZXR0ZXIgZXJyb3IgaGFuZGxpbmcgaW4gaHlwZnNfd3JpdGVfbGVhZigp IChKYW4gQmV1bGljaCkKLSByZXR1cm4gLUVPUE5PVFNVUFAgZm9yIHVua25vd24gc3ViLWNvbW1h bmQgKEphbiBCZXVsaWNoKQotIHVzZSBwbGFpbiBpbnRlZ2VycyBmb3IgZW51bS1saWtlIGNvbnN0 YW50cyBpbiBwdWJsaWMgaW50ZXJmYWNlCiAgKEphbiBCZXVsaWNoKQotIHJlbmFtZSBYRU5fSFlQ RlNfT1BfcmVhZF9jb250ZW50cyB0byBYRU5fSFlQRlNfT1BfcmVhZCAoSmFuIEJldWxpY2gpCi0g YWRkIHNvbWUgY29tbWVudHMgaW4gaW5jbHVkZS9wdWJsaWMvaHlwZnMuaCAoSmFuIEJldWxpY2gp Ci0gdXNlIGNvbnN0X2NoYXIgZm9yIHVzZXIgcGFyYW1ldGVyIHBhdGggKEphbiBCZXVsaWNoKQot IGFkZCBoZWxwZXJzIGZvciBYRU5fSFlQRlNfVFlQRV9CT09MIGFuZCBYRU5fSFlQRlNfVFlQRV9J TlQgZW50cnkKICBkZWZpbml0aW9ucyAoSmFuIEJldWxpY2gpCi0gbWFrZSBzdGF0aWNhbGx5IGRl ZmluZWQgZW50cmllcyBfX3JlYWRfbW9zdGx5IChKYW4gQmV1bGljaCkKClY1OgotIHN3aXRjaCB0 byB4c20gZm9yIHByaXZpbGVnZSBjaGVjawotLS0KIHRvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVz L2RvbTAudGUgIHwgICAyICstCiB4ZW4vYXJjaC9hcm0vdHJhcHMuYyAgICAgICAgICAgICAgICB8 ICAgMSArCiB4ZW4vYXJjaC94ODYvaHZtL2h5cGVyY2FsbC5jICAgICAgICB8ICAgMSArCiB4ZW4v YXJjaC94ODYvaHlwZXJjYWxsLmMgICAgICAgICAgICB8ICAgMSArCiB4ZW4vYXJjaC94ODYvcHYv aHlwZXJjYWxsLmMgICAgICAgICB8ICAgMSArCiB4ZW4vY29tbW9uL01ha2VmaWxlICAgICAgICAg ICAgICAgICB8ICAgMSArCiB4ZW4vY29tbW9uL2h5cGZzLmMgICAgICAgICAgICAgICAgICB8IDM1 NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9pbmNsdWRlL3B1Ymxp Yy9oeXBmcy5oICAgICAgICAgIHwgMTI3ICsrKysrKysrKysrKysKIHhlbi9pbmNsdWRlL3B1Ymxp Yy94ZW4uaCAgICAgICAgICAgIHwgICAxICsKIHhlbi9pbmNsdWRlL3hlbi9oeXBlcmNhbGwuaCAg ICAgICAgIHwgICA4ICsKIHhlbi9pbmNsdWRlL3hlbi9oeXBmcy5oICAgICAgICAgICAgIHwgMTA4 ICsrKysrKysrKysrCiB4ZW4vaW5jbHVkZS94bGF0LmxzdCAgICAgICAgICAgICAgICB8ICAgMiAr CiB4ZW4vaW5jbHVkZS94c20vZHVtbXkuaCAgICAgICAgICAgICB8ICAgNiArCiB4ZW4vaW5jbHVk ZS94c20veHNtLmggICAgICAgICAgICAgICB8ICAgNiArCiB4ZW4veHNtL2ZsYXNrL3BvbGljeS9h Y2Nlc3NfdmVjdG9ycyB8ICAgMiArCiAxNSBmaWxlcyBjaGFuZ2VkLCA2MjMgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9jb21tb24vaHlwZnMuYwog Y3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9pbmNsdWRlL3B1YmxpYy9oeXBmcy5oCiBjcmVhdGUgbW9k ZSAxMDA2NDQgeGVuL2luY2x1ZGUveGVuL2h5cGZzLmgKCmRpZmYgLS1naXQgYS90b29scy9mbGFz ay9wb2xpY3kvbW9kdWxlcy9kb20wLnRlIGIvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMvZG9t MC50ZQppbmRleCAyNzJmNmE0Zjc1Li4yMDkyNWUzOGEyIDEwMDY0NAotLS0gYS90b29scy9mbGFz ay9wb2xpY3kvbW9kdWxlcy9kb20wLnRlCisrKyBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVz L2RvbTAudGUKQEAgLTExLDcgKzExLDcgQEAgYWxsb3cgZG9tMF90IHhlbl90OnhlbiB7CiAJbXRy cl9kZWwgbXRycl9yZWFkIG1pY3JvY29kZSBwaHlzaW5mbyBxdWlyayB3cml0ZWNvbnNvbGUgcmVh ZGFwaWMKIAl3cml0ZWFwaWMgcHJpdnByb2ZpbGUgbm9ucHJpdnByb2ZpbGUga2V4ZWMgZmlybXdh cmUgc2xlZXAgZnJlcXVlbmN5CiAJZ2V0aWRsZSBkZWJ1ZyBnZXRjcHVpbmZvIGhlYXAgcG1fb3Ag bWNhX29wIGxvY2twcm9mIGNwdXBvb2xfb3AKLQlnZXRzY2hlZHVsZXIgc2V0c2NoZWR1bGVyCisJ Z2V0c2NoZWR1bGVyIHNldHNjaGVkdWxlciBoeXBmc19vcAogfTsKIGFsbG93IGRvbTBfdCB4ZW5f dDp4ZW4yIHsKIAlyZXNvdXJjZV9vcCBwc3JfY210X29wIHBzcl9hbGxvYyBwbXVfY3RybCBnZXRf c3ltYm9sCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdHJhcHMuYyBiL3hlbi9hcmNoL2FybS90 cmFwcy5jCmluZGV4IDZmOWJlYzIyZDMuLjg3YWY4MTA2NjcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L2FybS90cmFwcy5jCisrKyBiL3hlbi9hcmNoL2FybS90cmFwcy5jCkBAIC0xMzgyLDYgKzEzODIs NyBAQCBzdGF0aWMgYXJtX2h5cGVyY2FsbF90IGFybV9oeXBlcmNhbGxfdGFibGVbXSA9IHsKICNp ZmRlZiBDT05GSUdfQVJHTwogICAgIEhZUEVSQ0FMTChhcmdvX29wLCA1KSwKICNlbmRpZgorICAg IEhZUEVSQ0FMTChoeXBmc19vcCwgNSksCiB9OwogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L2h2bS9oeXBlcmNhbGwuYyBiL3hlbi9hcmNoL3g4Ni9odm0vaHlwZXJj YWxsLmMKaW5kZXggMzNkZDJkOTlkMi4uMjEwZGRhNGYzOCAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L2h2bS9oeXBlcmNhbGwuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2h5cGVyY2FsbC5jCkBA IC0xNDQsNiArMTQ0LDcgQEAgc3RhdGljIGNvbnN0IGh5cGVyY2FsbF90YWJsZV90IGh2bV9oeXBl cmNhbGxfdGFibGVbXSA9IHsKICNlbmRpZgogICAgIEhZUEVSQ0FMTCh4ZW5wbXVfb3ApLAogICAg IENPTVBBVF9DQUxMKGRtX29wKSwKKyAgICBIWVBFUkNBTEwoaHlwZnNfb3ApLAogICAgIEhZUEVS Q0FMTChhcmNoXzEpCiB9OwogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHlwZXJjYWxsLmMg Yi94ZW4vYXJjaC94ODYvaHlwZXJjYWxsLmMKaW5kZXggN2YyOTlkNDVjNi4uMDVhM2Y1ZTI1YiAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h5cGVyY2FsbC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9o eXBlcmNhbGwuYwpAQCAtNzMsNiArNzMsNyBAQCBjb25zdCBoeXBlcmNhbGxfYXJnc190IGh5cGVy Y2FsbF9hcmdzX3RhYmxlW05SX2h5cGVyY2FsbHNdID0KICAgICBBUkdTKGh2bV9vcCwgMiksCiAg ICAgQVJHUyhkbV9vcCwgMyksCiAjZW5kaWYKKyAgICBBUkdTKGh5cGZzX29wLCA1KSwKICAgICBB UkdTKG1jYSwgMSksCiAgICAgQVJHUyhhcmNoXzEsIDEpLAogfTsKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9wdi9oeXBlcmNhbGwuYyBiL3hlbi9hcmNoL3g4Ni9wdi9oeXBlcmNhbGwuYwppbmRl eCAxN2RkZjllYTFmLi44MzkwN2Q0ZjAwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvcHYvaHlw ZXJjYWxsLmMKKysrIGIveGVuL2FyY2gveDg2L3B2L2h5cGVyY2FsbC5jCkBAIC04NSw2ICs4NSw3 IEBAIGNvbnN0IGh5cGVyY2FsbF90YWJsZV90IHB2X2h5cGVyY2FsbF90YWJsZVtdID0gewogICAg IEhZUEVSQ0FMTChodm1fb3ApLAogICAgIENPTVBBVF9DQUxMKGRtX29wKSwKICNlbmRpZgorICAg IEhZUEVSQ0FMTChoeXBmc19vcCksCiAgICAgSFlQRVJDQUxMKG1jYSksCiAgICAgSFlQRVJDQUxM KGFyY2hfMSksCiB9OwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9NYWtlZmlsZSBiL3hlbi9jb21t b24vTWFrZWZpbGUKaW5kZXggMmFiYjgyNTBiMC4uM2EyYzFhZTY5MCAxMDA2NDQKLS0tIGEveGVu L2NvbW1vbi9NYWtlZmlsZQorKysgYi94ZW4vY29tbW9uL01ha2VmaWxlCkBAIC0xMCw2ICsxMCw3 IEBAIG9iai15ICs9IGRvbWFpbi5vCiBvYmoteSArPSBldmVudF8ybC5vCiBvYmoteSArPSBldmVu dF9jaGFubmVsLm8KIG9iai15ICs9IGV2ZW50X2ZpZm8ubworb2JqLXkgKz0gaHlwZnMubwogb2Jq LSQoQ09ORklHX0NSQVNIX0RFQlVHKSArPSBnZGJzdHViLm8KIG9iai0kKENPTkZJR19HUkFOVF9U QUJMRSkgKz0gZ3JhbnRfdGFibGUubwogb2JqLXkgKz0gZ3Vlc3Rjb3B5Lm8KZGlmZiAtLWdpdCBh L3hlbi9jb21tb24vaHlwZnMuYyBiL3hlbi9jb21tb24vaHlwZnMuYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwLi4wYTMyZDQ1OTc5Ci0tLSAvZGV2L251bGwKKysrIGIveGVu L2NvbW1vbi9oeXBmcy5jCkBAIC0wLDAgKzEsMzU3IEBACisvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CisgKgorICogaHlwZnMuYworICoKKyAqIFNpbXBsZSBzeXNmcy1saWtlIGZpbGUgc3lzdGVtIGZv ciB0aGUgaHlwZXJ2aXNvci4KKyAqLworCisjaW5jbHVkZSA8eGVuL2Vyci5oPgorI2luY2x1ZGUg PHhlbi9ndWVzdF9hY2Nlc3MuaD4KKyNpbmNsdWRlIDx4ZW4vaHlwZXJjYWxsLmg+CisjaW5jbHVk ZSA8eGVuL2h5cGZzLmg+CisjaW5jbHVkZSA8eGVuL2xpYi5oPgorI2luY2x1ZGUgPHhlbi9yd2xv Y2suaD4KKyNpbmNsdWRlIDxwdWJsaWMvaHlwZnMuaD4KKworI2RlZmluZSBESVJFTlRSWV9OQU1F X09GRiBvZmZzZXRvZihzdHJ1Y3QgeGVuX2h5cGZzX2Rpcmxpc3RlbnRyeSwgbmFtZSkKKyNkZWZp bmUgRElSRU5UUllfU0laRShuYW1lX2xlbikgXAorICAgIChESVJFTlRSWV9OQU1FX09GRiArICAg ICAgICBcCisgICAgIFJPVU5EVVAoKG5hbWVfbGVuKSArIDEsIGFsaWdub2Yoc3RydWN0IHhlbl9o eXBmc19kaXJlbnRyeSkpKQorCitzdGF0aWMgREVGSU5FX1JXTE9DSyhoeXBmc19sb2NrKTsKKwor SFlQRlNfRElSX0lOSVQoaHlwZnNfcm9vdCwgIiIpOworCitzdGF0aWMgaW50IGFkZF9lbnRyeShz dHJ1Y3QgaHlwZnNfZW50cnlfZGlyICpwYXJlbnQsIHN0cnVjdCBoeXBmc19lbnRyeSAqbmV3KQor eworICAgIGludCByZXQgPSAtRU5PRU5UOworICAgIHN0cnVjdCBoeXBmc19lbnRyeSAqZTsKKwor ICAgIHdyaXRlX2xvY2soJmh5cGZzX2xvY2spOworCisgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSAo IGUsICZwYXJlbnQtPmRpcmxpc3QsIGxpc3QgKQorICAgIHsKKyAgICAgICAgaW50IGNtcCA9IHN0 cmNtcChlLT5uYW1lLCBuZXctPm5hbWUpOworCisgICAgICAgIGlmICggY21wID4gMCApCisgICAg ICAgIHsKKyAgICAgICAgICAgIHJldCA9IDA7CisgICAgICAgICAgICBsaXN0X2FkZF90YWlsKCZu ZXctPmxpc3QsICZlLT5saXN0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg ICAgIGlmICggY21wID09IDAgKQorICAgICAgICB7CisgICAgICAgICAgICByZXQgPSAtRUVYSVNU OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIHJldCA9 PSAtRU5PRU5UICkKKyAgICB7CisgICAgICAgIHJldCA9IDA7CisgICAgICAgIGxpc3RfYWRkX3Rh aWwoJm5ldy0+bGlzdCwgJnBhcmVudC0+ZGlybGlzdCk7CisgICAgfQorCisgICAgaWYgKCAhcmV0 ICkKKyAgICB7CisgICAgICAgIHVuc2lnbmVkIGludCBzeiA9IHN0cmxlbihuZXctPm5hbWUpOwor CisgICAgICAgIHBhcmVudC0+ZS5zaXplICs9IERJUkVOVFJZX1NJWkUoc3opOworICAgIH0KKwor ICAgIHdyaXRlX3VubG9jaygmaHlwZnNfbG9jayk7CisKKyAgICByZXR1cm4gcmV0OworfQorCitp bnQgaHlwZnNfYWRkX2RpcihzdHJ1Y3QgaHlwZnNfZW50cnlfZGlyICpwYXJlbnQsCisgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgaHlwZnNfZW50cnlfZGlyICpkaXIsIGJvb2wgbm9mYXVsdCkKK3sK KyAgICBpbnQgcmV0OworCisgICAgcmV0ID0gYWRkX2VudHJ5KHBhcmVudCwgJmRpci0+ZSk7Cisg ICAgQlVHX09OKG5vZmF1bHQgJiYgcmV0KTsKKworICAgIHJldHVybiByZXQ7Cit9CisKK2ludCBo eXBmc19hZGRfbGVhZihzdHJ1Y3QgaHlwZnNfZW50cnlfZGlyICpwYXJlbnQsCisgICAgICAgICAg ICAgICAgICAgc3RydWN0IGh5cGZzX2VudHJ5X2xlYWYgKmxlYWYsIGJvb2wgbm9mYXVsdCkKK3sK KyAgICBpbnQgcmV0OworCisgICAgaWYgKCAhbGVhZi0+Y29udGVudCApCisgICAgICAgIHJldCA9 IC1FSU5WQUw7CisgICAgZWxzZQorICAgICAgICByZXQgPSBhZGRfZW50cnkocGFyZW50LCAmbGVh Zi0+ZSk7CisgICAgQlVHX09OKG5vZmF1bHQgJiYgcmV0KTsKKworICAgIHJldHVybiByZXQ7Cit9 CisKK3N0YXRpYyBpbnQgaHlwZnNfZ2V0X3BhdGhfdXNlcihjaGFyICpidWYsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTShjb25zdF9jaGFyKSB1 YWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHVsZW4p Cit7CisgICAgaWYgKCB1bGVuID4gWEVOX0hZUEZTX01BWF9QQVRITEVOICkKKyAgICAgICAgcmV0 dXJuIC1FSU5WQUw7CisKKyAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdChidWYsIHVhZGRyLCB1bGVu KSApCisgICAgICAgIHJldHVybiAtRUZBVUxUOworCisgICAgaWYgKCBidWZbdWxlbiAtIDFdICkK KyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIHN0 cnVjdCBoeXBmc19lbnRyeSAqaHlwZnNfZ2V0X2VudHJ5X3JlbChzdHJ1Y3QgaHlwZnNfZW50cnlf ZGlyICpkaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGNoYXIgKnBhdGgpCit7CisgICAgY29uc3QgY2hhciAqZW5kOworICAgIHN0cnVjdCBo eXBmc19lbnRyeSAqZW50cnk7CisgICAgdW5zaWduZWQgaW50IG5hbWVfbGVuOworCisgICAgaWYg KCBkaXItPmUudHlwZSAhPSBYRU5fSFlQRlNfVFlQRV9ESVIgKQorICAgICAgICByZXR1cm4gTlVM TDsKKworICAgIGlmICggISpwYXRoICkKKyAgICAgICAgcmV0dXJuICZkaXItPmU7CisKKyAgICBl bmQgPSBzdHJjaHIocGF0aCwgJy8nKTsKKyAgICBpZiAoICFlbmQgKQorICAgICAgICBlbmQgPSBz dHJjaHIocGF0aCwgJ1wwJyk7CisgICAgbmFtZV9sZW4gPSBlbmQgLSBwYXRoOworCisgICAgbGlz dF9mb3JfZWFjaF9lbnRyeSAoIGVudHJ5LCAmZGlyLT5kaXJsaXN0LCBsaXN0ICkKKyAgICB7Cisg ICAgICAgIGludCBjbXAgPSBzdHJuY21wKHBhdGgsIGVudHJ5LT5uYW1lLCBuYW1lX2xlbik7Cisg ICAgICAgIHN0cnVjdCBoeXBmc19lbnRyeV9kaXIgKmQgPSBjb250YWluZXJfb2YoZW50cnksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGh5 cGZzX2VudHJ5X2RpciwgZSk7CisKKyAgICAgICAgaWYgKCBjbXAgPCAwICkKKyAgICAgICAgICAg IHJldHVybiBOVUxMOworICAgICAgICBpZiAoICFjbXAgJiYgc3RybGVuKGVudHJ5LT5uYW1lKSA9 PSBuYW1lX2xlbiApCisgICAgICAgICAgICByZXR1cm4gKmVuZCA/IGh5cGZzX2dldF9lbnRyeV9y ZWwoZCwgZW5kICsgMSkgOiBlbnRyeTsKKyAgICB9CisKKyAgICByZXR1cm4gTlVMTDsKK30KKwor c3RydWN0IGh5cGZzX2VudHJ5ICpoeXBmc19nZXRfZW50cnkoY29uc3QgY2hhciAqcGF0aCkKK3sK KyAgICBpZiAoIHBhdGhbMF0gIT0gJy8nICkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBy ZXR1cm4gaHlwZnNfZ2V0X2VudHJ5X3JlbCgmaHlwZnNfcm9vdCwgcGF0aCArIDEpOworfQorCitp bnQgaHlwZnNfcmVhZF9kaXIoY29uc3Qgc3RydWN0IGh5cGZzX2VudHJ5ICplbnRyeSwKKyAgICAg ICAgICAgICAgICAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIHVhZGRyKQoreworICAg IGNvbnN0IHN0cnVjdCBoeXBmc19lbnRyeV9kaXIgKmQ7CisgICAgY29uc3Qgc3RydWN0IGh5cGZz X2VudHJ5ICplOworICAgIHVuc2lnbmVkIGludCBzaXplID0gZW50cnktPnNpemU7CisKKyAgICBk ID0gY29udGFpbmVyX29mKGVudHJ5LCBjb25zdCBzdHJ1Y3QgaHlwZnNfZW50cnlfZGlyLCBlKTsK KworICAgIGxpc3RfZm9yX2VhY2hfZW50cnkgKCBlLCAmZC0+ZGlybGlzdCwgbGlzdCApCisgICAg eworICAgICAgICBzdHJ1Y3QgeGVuX2h5cGZzX2Rpcmxpc3RlbnRyeSBkaXJlbnRyeTsKKyAgICAg ICAgdW5zaWduZWQgaW50IGVfbmFtZWxlbiA9IHN0cmxlbihlLT5uYW1lKTsKKyAgICAgICAgdW5z aWduZWQgaW50IGVfbGVuID0gRElSRU5UUllfU0laRShlX25hbWVsZW4pOworCisgICAgICAgIGRp cmVudHJ5LmUuZmxhZ3MgPSBlLT53cml0ZSA/IFhFTl9IWVBGU19XUklURUFCTEUgOiAwOworICAg ICAgICBkaXJlbnRyeS5lLnR5cGUgPSBlLT50eXBlOworICAgICAgICBkaXJlbnRyeS5lLmVuY29k aW5nID0gZS0+ZW5jb2Rpbmc7CisgICAgICAgIGRpcmVudHJ5LmUuY29udGVudF9sZW4gPSBlLT5z aXplOworICAgICAgICBkaXJlbnRyeS5vZmZfbmV4dCA9IGxpc3RfaXNfbGFzdCgmZS0+bGlzdCwg JmQtPmRpcmxpc3QpID8gMCA6IGVfbGVuOworICAgICAgICBpZiAoIGNvcHlfdG9fZ3Vlc3QodWFk ZHIsICZkaXJlbnRyeSwgMSkgKQorICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CisKKyAgICAg ICAgaWYgKCBjb3B5X3RvX2d1ZXN0X29mZnNldCh1YWRkciwgRElSRU5UUllfTkFNRV9PRkYsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS0+bmFtZSwgZV9uYW1lbGVuICsgMSkg KQorICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CisKKyAgICAgICAgZ3Vlc3RfaGFuZGxlX2Fk ZF9vZmZzZXQodWFkZHIsIGVfbGVuKTsKKworICAgICAgICBBU1NFUlQoZV9sZW4gPD0gc2l6ZSk7 CisgICAgICAgIHNpemUgLT0gZV9sZW47CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK2lu dCBoeXBmc19yZWFkX2xlYWYoY29uc3Qgc3RydWN0IGh5cGZzX2VudHJ5ICplbnRyeSwKKyAgICAg ICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSB1YWRkcikKK3sKKyAg ICBjb25zdCBzdHJ1Y3QgaHlwZnNfZW50cnlfbGVhZiAqbDsKKworICAgIGwgPSBjb250YWluZXJf b2YoZW50cnksIGNvbnN0IHN0cnVjdCBoeXBmc19lbnRyeV9sZWFmLCBlKTsKKworICAgIHJldHVy biBjb3B5X3RvX2d1ZXN0KHVhZGRyLCBsLT5jb250ZW50LCBlbnRyeS0+c2l6ZSkgPyAtRUZBVUxU OiAwOworfQorCitzdGF0aWMgaW50IGh5cGZzX3JlYWQoY29uc3Qgc3RydWN0IGh5cGZzX2VudHJ5 ICplbnRyeSwKKyAgICAgICAgICAgICAgICAgICAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZv aWQpIHVhZGRyLCB1bnNpZ25lZCBsb25nIHVsZW4pCit7CisgICAgc3RydWN0IHhlbl9oeXBmc19k aXJlbnRyeSBlOworICAgIGxvbmcgcmV0ID0gLUVJTlZBTDsKKworICAgIGlmICggdWxlbiA8IHNp emVvZihlKSApCisgICAgICAgIGdvdG8gb3V0OworCisgICAgZS5mbGFncyA9IGVudHJ5LT53cml0 ZSA/IFhFTl9IWVBGU19XUklURUFCTEUgOiAwOworICAgIGUudHlwZSA9IGVudHJ5LT50eXBlOwor ICAgIGUuZW5jb2RpbmcgPSBlbnRyeS0+ZW5jb2Rpbmc7CisgICAgZS5jb250ZW50X2xlbiA9IGVu dHJ5LT5zaXplOworCisgICAgcmV0ID0gLUVGQVVMVDsKKyAgICBpZiAoIGNvcHlfdG9fZ3Vlc3Qo dWFkZHIsICZlLCAxKSApCisgICAgICAgIGdvdG8gb3V0OworCisgICAgcmV0ID0gLUVOT0JVRlM7 CisgICAgaWYgKCB1bGVuIDwgZW50cnktPnNpemUgKyBzaXplb2YoZSkgKQorICAgICAgICBnb3Rv IG91dDsKKworICAgIGd1ZXN0X2hhbmRsZV9hZGRfb2Zmc2V0KHVhZGRyLCBzaXplb2YoZSkpOwor CisgICAgcmV0ID0gZW50cnktPnJlYWQoZW50cnksIHVhZGRyKTsKKworIG91dDoKKyAgICByZXR1 cm4gcmV0OworfQorCitpbnQgaHlwZnNfd3JpdGVfbGVhZihzdHJ1Y3QgaHlwZnNfZW50cnlfbGVh ZiAqbGVhZiwKKyAgICAgICAgICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9p ZCkgdWFkZHIsIHVuc2lnbmVkIGxvbmcgdWxlbikKK3sKKyAgICBjaGFyICpidWY7CisgICAgaW50 IHJldDsKKworICAgIGlmICggdWxlbiA+IGxlYWYtPmUuc2l6ZSApCisgICAgICAgIHJldHVybiAt RU5PU1BDOworCisgICAgYnVmID0geG1hbGxvY19hcnJheShjaGFyLCB1bGVuKTsKKyAgICBpZiAo ICFidWYgKQorICAgICAgICByZXR1cm4gLUVOT01FTTsKKworICAgIHJldCA9IC1FRkFVTFQ7Cisg ICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoYnVmLCB1YWRkciwgdWxlbikgKQorICAgICAgICBnb3Rv IG91dDsKKworICAgIHJldCA9IC1FSU5WQUw7CisgICAgaWYgKCBsZWFmLT5lLnR5cGUgPT0gWEVO X0hZUEZTX1RZUEVfU1RSSU5HICYmIGJ1Zlt1bGVuXSApCisgICAgICAgIGdvdG8gb3V0OworCisg ICAgcmV0ID0gMDsKKyAgICBtZW1jcHkobGVhZi0+d3JpdGVfcHRyLCBidWYsIHVsZW4pOworCisg b3V0OgorICAgIHhmcmVlKGJ1Zik7CisgICAgcmV0dXJuIHJldDsKK30KKworaW50IGh5cGZzX3dy aXRlX2Jvb2woc3RydWN0IGh5cGZzX2VudHJ5X2xlYWYgKmxlYWYsCisgICAgICAgICAgICAgICAg ICAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIHVhZGRyLCB1bnNpZ25lZCBsb25nIHVs ZW4pCit7CisgICAgdW5pb24geworICAgICAgICBjaGFyIGJ1Zls4XTsKKyAgICAgICAgdWludDhf dCB1ODsKKyAgICAgICAgdWludDE2X3QgdTE2OworICAgICAgICB1aW50MzJfdCB1MzI7CisgICAg ICAgIHVpbnQ2NF90IHU2NDsKKyAgICB9IHU7CisKKyAgICBBU1NFUlQobGVhZi0+ZS50eXBlID09 IFhFTl9IWVBGU19UWVBFX1VJTlQgJiYgbGVhZi0+ZS5zaXplIDw9IDgpOworCisgICAgaWYgKCB1 bGVuICE9IGxlYWYtPmUuc2l6ZSApCisgICAgICAgIHJldHVybiAtRURPTTsKKworICAgIGlmICgg Y29weV9mcm9tX2d1ZXN0KHUuYnVmLCB1YWRkciwgdWxlbikgKQorICAgICAgICByZXR1cm4gLUVG QVVMVDsKKworICAgIHN3aXRjaCAoIGxlYWYtPmUuc2l6ZSApCisgICAgeworICAgIGNhc2UgMToK KyAgICAgICAgKih1aW50OF90ICopbGVhZi0+d3JpdGVfcHRyID0gISF1LnU4OworICAgICAgICBi cmVhazsKKyAgICBjYXNlIDI6CisgICAgICAgICoodWludDE2X3QgKilsZWFmLT53cml0ZV9wdHIg PSAhIXUudTE2OworICAgICAgICBicmVhazsKKyAgICBjYXNlIDQ6CisgICAgICAgICoodWludDMy X3QgKilsZWFmLT53cml0ZV9wdHIgPSAhIXUudTMyOworICAgICAgICBicmVhazsKKyAgICBjYXNl IDg6CisgICAgICAgICoodWludDY0X3QgKilsZWFmLT53cml0ZV9wdHIgPSAhIXUudTY0OworICAg ICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCBoeXBm c193cml0ZShzdHJ1Y3QgaHlwZnNfZW50cnkgKmVudHJ5LAorICAgICAgICAgICAgICAgICAgICAg ICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIHVhZGRyLCB1bnNpZ25lZCBsb25nIHVsZW4p Cit7CisgICAgc3RydWN0IGh5cGZzX2VudHJ5X2xlYWYgKmw7CisKKyAgICBpZiAoICFlbnRyeS0+ d3JpdGUgKQorICAgICAgICByZXR1cm4gLUVBQ0NFUzsKKworICAgIGwgPSBjb250YWluZXJfb2Yo ZW50cnksIHN0cnVjdCBoeXBmc19lbnRyeV9sZWFmLCBlKTsKKworICAgIHJldHVybiBlbnRyeS0+ d3JpdGUobCwgdWFkZHIsIHVsZW4pOworfQorCitsb25nIGRvX2h5cGZzX29wKHVuc2lnbmVkIGlu dCBjbWQsCisgICAgICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oY29uc3RfY2hh cikgYXJnMSwgdW5zaWduZWQgbG9uZyBhcmcyLAorICAgICAgICAgICAgICAgICBYRU5fR1VFU1Rf SEFORExFX1BBUkFNKHZvaWQpIGFyZzMsIHVuc2lnbmVkIGxvbmcgYXJnNCkKK3sKKyAgICBpbnQg cmV0OworICAgIHN0cnVjdCBoeXBmc19lbnRyeSAqZW50cnk7CisgICAgc3RhdGljIGNoYXIgcGF0 aFtYRU5fSFlQRlNfTUFYX1BBVEhMRU5dOworCisgICAgaWYgKCB4c21faHlwZnNfb3AoWFNNX1BS SVYpICkKKyAgICAgICAgcmV0dXJuIC1FUEVSTTsKKworICAgIGlmICggY21kID09IFhFTl9IWVBG U19PUF9nZXRfdmVyc2lvbiApCisgICAgICAgIHJldHVybiBYRU5fSFlQRlNfVkVSU0lPTjsKKwor ICAgIGlmICggY21kID09IFhFTl9IWVBGU19PUF93cml0ZV9jb250ZW50cyApCisgICAgICAgIHdy aXRlX2xvY2soJmh5cGZzX2xvY2spOworICAgIGVsc2UKKyAgICAgICAgcmVhZF9sb2NrKCZoeXBm c19sb2NrKTsKKworICAgIHJldCA9IGh5cGZzX2dldF9wYXRoX3VzZXIocGF0aCwgYXJnMSwgYXJn Mik7CisgICAgaWYgKCByZXQgKQorICAgICAgICBnb3RvIG91dDsKKworICAgIGVudHJ5ID0gaHlw ZnNfZ2V0X2VudHJ5KHBhdGgpOworICAgIGlmICggIWVudHJ5ICkKKyAgICB7CisgICAgICAgIHJl dCA9IC1FTk9FTlQ7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworICAgIHN3aXRjaCAoIGNt ZCApCisgICAgeworICAgIGNhc2UgWEVOX0hZUEZTX09QX3JlYWQ6CisgICAgICAgIHJldCA9IGh5 cGZzX3JlYWQoZW50cnksIGFyZzMsIGFyZzQpOworICAgICAgICBicmVhazsKKworICAgIGNhc2Ug WEVOX0hZUEZTX09QX3dyaXRlX2NvbnRlbnRzOgorICAgICAgICByZXQgPSBoeXBmc193cml0ZShl bnRyeSwgYXJnMywgYXJnNCk7CisgICAgICAgIGJyZWFrOworCisgICAgZGVmYXVsdDoKKyAgICAg ICAgcmV0ID0gLUVPUE5PVFNVUFA7CisgICAgICAgIGJyZWFrOworICAgIH0KKworIG91dDoKKyAg ICBpZiAoIGNtZCA9PSBYRU5fSFlQRlNfT1Bfd3JpdGVfY29udGVudHMgKQorICAgICAgICB3cml0 ZV91bmxvY2soJmh5cGZzX2xvY2spOworICAgIGVsc2UKKyAgICAgICAgcmVhZF91bmxvY2soJmh5 cGZzX2xvY2spOworCisgICAgcmV0dXJuIHJldDsKK30KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRl L3B1YmxpYy9oeXBmcy5oIGIveGVuL2luY2x1ZGUvcHVibGljL2h5cGZzLmgKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNGFhMmU5NDQ5YQotLS0gL2Rldi9udWxsCisrKyBi L3hlbi9pbmNsdWRlL3B1YmxpYy9oeXBmcy5oCkBAIC0wLDAgKzEsMTI3IEBACisvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqCisgKiBYZW4gSHlwZXJ2aXNvciBGaWxlc3lzdGVtCisgKgorICogQ29weXJp Z2h0IChjKSAyMDE5LCBTVVNFIFNvZnR3YXJlIFNvbHV0aW9ucyBHZXJtYW55IEdtYkgKKyAqCisg KiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBl cnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVk IGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhl IFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRp b24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBk aXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0 d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBm dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgor ICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90 aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBv cnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1Q TElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJD SEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9O SU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJ R0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAq IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI RVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRI RSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdB UkUuCisgKgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElDX0hZUEZTX0hfXworI2RlZmluZSBf X1hFTl9QVUJMSUNfSFlQRlNfSF9fCisKKyNpbmNsdWRlICJ4ZW4uaCIKKworLyoKKyAqIERlZmlu aXRpb25zIGZvciB0aGUgX19IWVBFUlZJU09SX2h5cGZzX29wIGh5cGVyY2FsbC4KKyAqLworCisv KiBIaWdoZXN0IHZlcnNpb24gbnVtYmVyIG9mIHRoZSBoeXBmcyBpbnRlcmZhY2UgY3VycmVudGx5 IGRlZmluZWQuICovCisjZGVmaW5lIFhFTl9IWVBGU19WRVJTSU9OICAgICAgMQorCisvKiBNYXhp bXVtIGxlbmd0aCBvZiBhIHBhdGggaW4gdGhlIGZpbGVzeXN0ZW0uICovCisjZGVmaW5lIFhFTl9I WVBGU19NQVhfUEFUSExFTiAxMDI0CisKK3N0cnVjdCB4ZW5faHlwZnNfZGlyZW50cnkgeworICAg IHVpbnQxNl90IGZsYWdzOworI2RlZmluZSBYRU5fSFlQRlNfV1JJVEVBQkxFICAgIDB4MDAwMQor ICAgIHVpbnQ4X3QgdHlwZTsKKyNkZWZpbmUgWEVOX0hZUEZTX1RZUEVfRElSICAgICAwCisjZGVm aW5lIFhFTl9IWVBGU19UWVBFX0JMT0IgICAgMQorI2RlZmluZSBYRU5fSFlQRlNfVFlQRV9TVFJJ TkcgIDIKKyNkZWZpbmUgWEVOX0hZUEZTX1RZUEVfVUlOVCAgICAzCisjZGVmaW5lIFhFTl9IWVBG U19UWVBFX0lOVCAgICAgNAorI2RlZmluZSBYRU5fSFlQRlNfVFlQRV9CT09MICAgIDUKKyAgICB1 aW50OF90IGVuY29kaW5nOworI2RlZmluZSBYRU5fSFlQRlNfRU5DX1BMQUlOICAgIDAKKyNkZWZp bmUgWEVOX0hZUEZTX0VOQ19HWklQICAgICAxCisgICAgdWludDMyX3QgY29udGVudF9sZW47Cit9 OworCitzdHJ1Y3QgeGVuX2h5cGZzX2Rpcmxpc3RlbnRyeSB7CisgICAgc3RydWN0IHhlbl9oeXBm c19kaXJlbnRyeSBlOworICAgIC8qIE9mZnNldCBpbiBieXRlcyB0byBuZXh0IGVudHJ5ICgwID09 IHRoaXMgaXMgdGhlIGxhc3QgZW50cnkpLiAqLworICAgIHVpbnQxNl90IG9mZl9uZXh0OworICAg IC8qIFplcm8gdGVybWluYXRlZCBlbnRyeSBuYW1lLCBwb3NzaWJseSB3aXRoIHNvbWUgcGFkZGlu ZyBmb3IgYWxpZ25tZW50LiAqLworICAgIGNoYXIgbmFtZVtYRU5fRkxFWF9BUlJBWV9ESU1dOwor fTsKKworLyoKKyAqIEh5cGVyY2FsbCBvcGVyYXRpb25zLgorICovCisKKy8qCisgKiBYRU5fSFlQ RlNfT1BfZ2V0X3ZlcnNpb24KKyAqCisgKiBSZWFkIGhpZ2hlc3QgaW50ZXJmYWNlIHZlcnNpb24g c3VwcG9ydGVkIGJ5IHRoZSBoeXBlcnZpc29yLgorICoKKyAqIFBvc3NpYmxlIHJldHVybiB2YWx1 ZXM6CisgKiA+MDogaGlnaGVzdCBzdXBwb3J0ZWQgaW50ZXJmYWNlIHZlcnNpb24KKyAqIDwwOiBu ZWdhdGl2ZSBYZW4gZXJybm8gdmFsdWUKKyAqLworI2RlZmluZSBYRU5fSFlQRlNfT1BfZ2V0X3Zl cnNpb24gICAgIDAKKworLyoKKyAqIFhFTl9IWVBGU19PUF9yZWFkCisgKgorICogUmVhZCBhIGZp bGVzeXN0ZW0gZW50cnkuCisgKgorICogUmV0dXJucyB0aGUgZGlyZW50cnkgYW5kIGNvbnRlbnRz IG9mIGFuIGVudHJ5IGluIHRoZSBidWZmZXIgc3VwcGxpZWQgYnkgdGhlCisgKiBjYWxsZXIgKHN0 cnVjdCB4ZW5faHlwZnNfZGlyZW50cnkgd2l0aCB0aGUgY29udGVudHMgZm9sbG93aW5nIGRpcmVj dGx5CisgKiBhZnRlciBpdCkuCisgKiBUaGUgZGF0YSBidWZmZXIgbXVzdCBiZSBhdCBsZWFzdCB0 aGUgc2l6ZSBvZiB0aGUgZGlyZW50cnkgcmV0dXJuZWQgaW4gb3JkZXIKKyAqIHRvIGhhdmUgc3Vj Y2Vzcy4gSWYgdGhlIGRhdGEgYnVmZmVyIHdhcyBub3QgbGFyZ2UgZW5vdWdoIGZvciBhbGwgdGhl IGRhdGEKKyAqIC1FTk9CVUZTIGFuZCBubyBlbnRyeSBkYXRhIGlzIHJldHVybmVkLCBidXQgdGhl IGRpcmVudHJ5IHdpbGwgY29udGFpbiB0aGUKKyAqIG5lZWRlZCBzaXplIGZvciB0aGUgcmV0dXJu ZWQgZGF0YS4KKyAqIFRoZSBmb3JtYXQgb2YgdGhlIGNvbnRlbnRzIGlzIGFjY29yZGluZyB0byBp dHMgZW50cnkgdHlwZSBhbmQgZW5jb2RpbmcuCisgKiBUaGUgY29udGVudHMgb2YgYSBkaXJlY3Rv cnkgYXJlIG11bHRpcGxlIHN0cnVjdCB4ZW5faHlwZnNfZGlybGlzdGVudHJ5CisgKiBpdGVtcy4K KyAqCisgKiBhcmcxOiBYRU5fR1VFU1RfSEFORExFKHBhdGggbmFtZSkKKyAqIGFyZzI6IGxlbmd0 aCBvZiBwYXRoIG5hbWUgKGluY2x1ZGluZyB0cmFpbGluZyB6ZXJvIGJ5dGUpCisgKiBhcmczOiBY RU5fR1VFU1RfSEFORExFKGRhdGEgYnVmZmVyIHdyaXR0ZW4gYnkgaHlwZXJ2aXNvcikKKyAqIGFy ZzQ6IGRhdGEgYnVmZmVyIHNpemUKKyAqCisgKiBQb3NzaWJsZSByZXR1cm4gdmFsdWVzOgorICog MDogc3VjY2VzcyAoYXQgbGVhc3QgdGhlIGRpcmVudHJ5IHdhcyByZXR1cm5lZCkKKyAqIDwwIDog bmVnYXRpdmUgWGVuIGVycm5vIHZhbHVlCisgKi8KKyNkZWZpbmUgWEVOX0hZUEZTX09QX3JlYWQg ICAgICAgICAgICAgIDEKKworLyoKKyAqIFhFTl9IWVBGU19PUF93cml0ZV9jb250ZW50cworICoK KyAqIFdyaXRlIGNvbnRlbnRzIG9mIGEgZmlsZXN5c3RlbSBlbnRyeS4KKyAqCisgKiBXcml0ZXMg YW4gZW50cnkgd2l0aCB0aGUgY29udGVudHMgb2YgYSBidWZmZXIgc3VwcGxpZWQgYnkgdGhlIGNh bGxlci4KKyAqIFRoZSBkYXRhIHR5cGUgYW5kIGVuY29kaW5nIGNhbid0IGJlIGNoYW5nZWQuIFRo ZSBzaXplIGNhbiBiZSBjaGFuZ2VkIG9ubHkKKyAqIGZvciBibG9icyBhbmQgc3RyaW5ncy4KKyAq CisgKiBhcmcxOiBYRU5fR1VFU1RfSEFORExFKHBhdGggbmFtZSkKKyAqIGFyZzI6IGxlbmd0aCBv ZiBwYXRoIG5hbWUgKGluY2x1ZGluZyB0cmFpbGluZyB6ZXJvIGJ5dGUpCisgKiBhcmczOiBYRU5f R1VFU1RfSEFORExFKGNvbnRlbnQgYnVmZmVyIHJlYWQgYnkgaHlwZXJ2aXNvcikKKyAqIGFyZzQ6 IGNvbnRlbnQgYnVmZmVyIHNpemUKKyAqCisgKiBQb3NzaWJsZSByZXR1cm4gdmFsdWVzOgorICog MDogc3VjY2VzcworICogPDAgOiBuZWdhdGl2ZSBYZW4gZXJybm8gdmFsdWUKKyAqLworI2RlZmlu ZSBYRU5fSFlQRlNfT1Bfd3JpdGVfY29udGVudHMgICAgMgorCisjZW5kaWYgLyogX19YRU5fUFVC TElDX0hZUEZTX0hfXyAqLwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL3hlbi5oIGIv eGVuL2luY2x1ZGUvcHVibGljL3hlbi5oCmluZGV4IGQyMTk4ZGZmYWQuLmJmODBmMWRhOGMgMTAw NjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy94ZW4uaAorKysgYi94ZW4vaW5jbHVkZS9wdWJs aWMveGVuLmgKQEAgLTEzMCw2ICsxMzAsNyBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5f dWxvbmdfdCk7CiAjZGVmaW5lIF9fSFlQRVJWSVNPUl9hcmdvX29wICAgICAgICAgICAgICAzOQog I2RlZmluZSBfX0hZUEVSVklTT1JfeGVucG11X29wICAgICAgICAgICAgNDAKICNkZWZpbmUgX19I WVBFUlZJU09SX2RtX29wICAgICAgICAgICAgICAgIDQxCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9o eXBmc19vcCAgICAgICAgICAgICA0MgogCiAvKiBBcmNoaXRlY3R1cmUtc3BlY2lmaWMgaHlwZXJj YWxsIGRlZmluaXRpb25zLiAqLwogI2RlZmluZSBfX0hZUEVSVklTT1JfYXJjaF8wICAgICAgICAg ICAgICAgNDgKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9oeXBlcmNhbGwuaCBiL3hlbi9p bmNsdWRlL3hlbi9oeXBlcmNhbGwuaAppbmRleCBhZDhhZDI3YjIzLi44MzZhOGIxYmE4IDEwMDY0 NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vaHlwZXJjYWxsLmgKKysrIGIveGVuL2luY2x1ZGUveGVu L2h5cGVyY2FsbC5oCkBAIC0xNTAsNiArMTUwLDE0IEBAIGRvX2RtX29wKAogICAgIHVuc2lnbmVk IGludCBucl9idWZzLAogICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2RtX29wX2J1Zl90 KSBidWZzKTsKIAorZXh0ZXJuIGxvbmcKK2RvX2h5cGZzX29wKAorICAgIHVuc2lnbmVkIGludCBj bWQsCisgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTShjb25zdF9jaGFyKSBhcmcxLAorICAgIHVu c2lnbmVkIGxvbmcgYXJnMiwKKyAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZzMs CisgICAgdW5zaWduZWQgbG9uZyBhcmc0KTsKKwogI2lmZGVmIENPTkZJR19DT01QQVQKIAogZXh0 ZXJuIGludApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2h5cGZzLmggYi94ZW4vaW5jbHVk ZS94ZW4vaHlwZnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi41YjI2 YjJlNjExCi0tLSAvZGV2L251bGwKKysrIGIveGVuL2luY2x1ZGUveGVuL2h5cGZzLmgKQEAgLTAs MCArMSwxMDggQEAKKyNpZm5kZWYgX19YRU5fSFlQRlNfSF9fCisjZGVmaW5lIF9fWEVOX0hZUEZT X0hfXworCisjaW5jbHVkZSA8eGVuL2xpc3QuaD4KKyNpbmNsdWRlIDx4ZW4vc3RyaW5nLmg+Cisj aW5jbHVkZSA8cHVibGljL2h5cGZzLmg+CisKK3N0cnVjdCBoeXBmc19lbnRyeV9sZWFmOworCitz dHJ1Y3QgaHlwZnNfZW50cnkgeworICAgIHVuc2lnbmVkIHNob3J0IHR5cGU7CisgICAgdW5zaWdu ZWQgc2hvcnQgZW5jb2Rpbmc7CisgICAgdW5zaWduZWQgaW50IHNpemU7CisgICAgY29uc3QgY2hh ciAqbmFtZTsKKyAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CisgICAgaW50ICgqcmVhZCkoY29u c3Qgc3RydWN0IGh5cGZzX2VudHJ5ICplbnRyeSwKKyAgICAgICAgICAgICAgICBYRU5fR1VFU1Rf SEFORExFX1BBUkFNKHZvaWQpIHVhZGRyKTsKKyAgICBpbnQgKCp3cml0ZSkoc3RydWN0IGh5cGZz X2VudHJ5X2xlYWYgKmxlYWYsCisgICAgICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFS QU0odm9pZCkgdWFkZHIsIHVuc2lnbmVkIGxvbmcgdWxlbik7Cit9OworCitzdHJ1Y3QgaHlwZnNf ZW50cnlfbGVhZiB7CisgICAgc3RydWN0IGh5cGZzX2VudHJ5IGU7CisgICAgdW5pb24geworICAg ICAgICBjb25zdCB2b2lkICpjb250ZW50OworICAgICAgICB2b2lkICp3cml0ZV9wdHI7CisgICAg fTsKK307CisKK3N0cnVjdCBoeXBmc19lbnRyeV9kaXIgeworICAgIHN0cnVjdCBoeXBmc19lbnRy eSBlOworICAgIHN0cnVjdCBsaXN0X2hlYWQgZGlybGlzdDsKK307CisKKyNkZWZpbmUgSFlQRlNf RElSX0lOSVQodmFyLCBuYW0pICAgICAgICAgICAgICAgICAgXAorICAgIHN0cnVjdCBoeXBmc19l bnRyeV9kaXIgX19yZWFkX21vc3RseSB2YXIgPSB7ICBcCisgICAgICAgIC5lLnR5cGUgPSBYRU5f SFlQRlNfVFlQRV9ESVIsICAgICAgICAgICAgIFwKKyAgICAgICAgLmUuZW5jb2RpbmcgPSBYRU5f SFlQRlNfRU5DX1BMQUlOLCAgICAgICAgXAorICAgICAgICAuZS5uYW1lID0gbmFtLCAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIC5lLnNpemUgPSAwLCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgLmUubGlzdCA9IExJU1RfSEVBRF9JTklUKHZhci5l Lmxpc3QpLCAgICAgXAorICAgICAgICAuZS5yZWFkID0gaHlwZnNfcmVhZF9kaXIsICAgICAgICAg ICAgICAgICBcCisgICAgICAgIC5kaXJsaXN0ID0gTElTVF9IRUFEX0lOSVQodmFyLmRpcmxpc3Qp LCAgIFwKKyAgICB9CisKKy8qIENvbnRlbnQgYW5kIHNpemUgbmVlZCB0byBiZSBzZXQgdmlhIGh5 cGZzX3N0cmluZ19zZXQoKS4gKi8KKyNkZWZpbmUgSFlQRlNfU1RSSU5HX0lOSVQodmFyLCBuYW0p ICAgICAgICAgICAgICAgXAorICAgIHN0cnVjdCBoeXBmc19lbnRyeV9sZWFmIF9fcmVhZF9tb3N0 bHkgdmFyID0geyBcCisgICAgICAgIC5lLnR5cGUgPSBYRU5fSFlQRlNfVFlQRV9TVFJJTkcsICAg ICAgICAgIFwKKyAgICAgICAgLmUuZW5jb2RpbmcgPSBYRU5fSFlQRlNfRU5DX1BMQUlOLCAgICAg ICAgXAorICAgICAgICAuZS5uYW1lID0gbmFtLCAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgICAgICAgIC5lLnJlYWQgPSBoeXBmc19yZWFkX2xlYWYsICAgICAgICAgICAgICAgIFwKKyAg ICB9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBoeXBmc19zdHJpbmdfc2V0KHN0cnVjdCBoeXBmc19l bnRyeV9sZWFmICpsZWFmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgY2hhciAqc3RyKQoreworICAgIGxlYWYtPmNvbnRlbnQgPSBzdHI7CisgICAgbGVhZi0+ZS5z aXplID0gc3RybGVuKHN0cikgKyAxOworfQorCisjZGVmaW5lIEhZUEZTX1VJTlRfSU5JVCh2YXIs IG5hbSwgY29udHZhcikgICAgICAgIFwKKyAgICBzdHJ1Y3QgaHlwZnNfZW50cnlfbGVhZiBfX3Jl YWRfbW9zdGx5IHZhciA9IHsgXAorICAgICAgICAuZS50eXBlID0gWEVOX0hZUEZTX1RZUEVfVUlO VCwgICAgICAgICAgICBcCisgICAgICAgIC5lLmVuY29kaW5nID0gWEVOX0hZUEZTX0VOQ19QTEFJ TiwgICAgICAgIFwKKyAgICAgICAgLmUubmFtZSA9IG5hbSwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgICAgICAuZS5zaXplID0gc2l6ZW9mKGNvbnR2YXIpLCAgICAgICAgICAgICAg ICBcCisgICAgICAgIC5lLnJlYWQgPSBoeXBmc19yZWFkX2xlYWYsICAgICAgICAgICAgICAgIFwK KyAgICAgICAgLmNvbnRlbnQgPSAmY29udHZhciwgICAgICAgICAgICAgICAgICAgICAgXAorICAg IH0KKworI2RlZmluZSBIWVBGU19JTlRfSU5JVCh2YXIsIG5hbSwgY29udHZhcikgICAgICAgICBc CisgICAgc3RydWN0IGh5cGZzX2VudHJ5X2xlYWYgX19yZWFkX21vc3RseSB2YXIgPSB7IFwKKyAg ICAgICAgLmUudHlwZSA9IFhFTl9IWVBGU19UWVBFX0lOVCwgICAgICAgICAgICAgXAorICAgICAg ICAuZS5lbmNvZGluZyA9IFhFTl9IWVBGU19FTkNfUExBSU4sICAgICAgICBcCisgICAgICAgIC5l Lm5hbWUgPSBuYW0sICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgLmUuc2l6 ZSA9IHNpemVvZihjb250dmFyKSwgICAgICAgICAgICAgICAgXAorICAgICAgICAuZS5yZWFkID0g aHlwZnNfcmVhZF9sZWFmLCAgICAgICAgICAgICAgICBcCisgICAgICAgIC5jb250ZW50ID0gJmNv bnR2YXIsICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9CisKKyNkZWZpbmUgSFlQRlNfQk9P TF9JTklUKHZhciwgbmFtLCBjb250dmFyKSAgICAgICAgXAorICAgIHN0cnVjdCBoeXBmc19lbnRy eV9sZWFmIF9fcmVhZF9tb3N0bHkgdmFyID0geyBcCisgICAgICAgIC5lLnR5cGUgPSBYRU5fSFlQ RlNfVFlQRV9CT09MLCAgICAgICAgICAgIFwKKyAgICAgICAgLmUuZW5jb2RpbmcgPSBYRU5fSFlQ RlNfRU5DX1BMQUlOLCAgICAgICAgXAorICAgICAgICAuZS5uYW1lID0gbmFtLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisgICAgICAgIC5lLnNpemUgPSBzaXplb2YoY29udHZhciksICAg ICAgICAgICAgICAgIFwKKyAgICAgICAgLmUucmVhZCA9IGh5cGZzX3JlYWRfbGVhZiwgICAgICAg ICAgICAgICAgXAorICAgICAgICAuY29udGVudCA9ICZjb250dmFyLCAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgfQorCitleHRlcm4gc3RydWN0IGh5cGZzX2VudHJ5X2RpciBoeXBmc19yb290 OworCitzdHJ1Y3QgaHlwZnNfZW50cnkgKmh5cGZzX2dldF9lbnRyeShjb25zdCBjaGFyICpwYXRo KTsKK2ludCBoeXBmc19hZGRfZGlyKHN0cnVjdCBoeXBmc19lbnRyeV9kaXIgKnBhcmVudCwKKyAg ICAgICAgICAgICAgICAgIHN0cnVjdCBoeXBmc19lbnRyeV9kaXIgKmRpciwgYm9vbCBub2ZhdWx0 KTsKK2ludCBoeXBmc19hZGRfbGVhZihzdHJ1Y3QgaHlwZnNfZW50cnlfZGlyICpwYXJlbnQsCisg ICAgICAgICAgICAgICAgICAgc3RydWN0IGh5cGZzX2VudHJ5X2xlYWYgKmxlYWYsIGJvb2wgbm9m YXVsdCk7CitpbnQgaHlwZnNfcmVhZF9kaXIoY29uc3Qgc3RydWN0IGh5cGZzX2VudHJ5ICplbnRy eSwKKyAgICAgICAgICAgICAgICAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIHVhZGRy KTsKK2ludCBoeXBmc19yZWFkX2xlYWYoY29uc3Qgc3RydWN0IGh5cGZzX2VudHJ5ICplbnRyeSwK KyAgICAgICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSB1YWRkcik7 CitpbnQgaHlwZnNfd3JpdGVfbGVhZihzdHJ1Y3QgaHlwZnNfZW50cnlfbGVhZiAqbGVhZiwKKyAg ICAgICAgICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgdWFkZHIsIHVu c2lnbmVkIGxvbmcgdWxlbik7CitpbnQgaHlwZnNfd3JpdGVfYm9vbChzdHJ1Y3QgaHlwZnNfZW50 cnlfbGVhZiAqbGVhZiwKKyAgICAgICAgICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFS QU0odm9pZCkgdWFkZHIsIHVuc2lnbmVkIGxvbmcgdWxlbik7CisKKyNlbmRpZiAvKiBfX1hFTl9I WVBGU19IX18gKi8KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hsYXQubHN0IGIveGVuL2luY2x1 ZGUveGxhdC5sc3QKaW5kZXggOTVmNWU1NTkyYi4uMjI4NzI4YmEyNSAxMDA2NDQKLS0tIGEveGVu L2luY2x1ZGUveGxhdC5sc3QKKysrIGIveGVuL2luY2x1ZGUveGxhdC5sc3QKQEAgLTg2LDYgKzg2 LDggQEAKID8JdmNwdV9odm1fY29udGV4dAkJaHZtL2h2bV92Y3B1LmgKID8JdmNwdV9odm1feDg2 XzMyCQkJaHZtL2h2bV92Y3B1LmgKID8JdmNwdV9odm1feDg2XzY0CQkJaHZtL2h2bV92Y3B1LmgK Kz8JeGVuX2h5cGZzX2RpcmVudHJ5CQloeXBmcy5oCis/CXhlbl9oeXBmc19kaXJsaXN0ZW50cnkJ CWh5cGZzLmgKID8Ja2V4ZWNfZXhlYwkJCWtleGVjLmgKICEJa2V4ZWNfaW1hZ2UJCQlrZXhlYy5o CiAhCWtleGVjX3JhbmdlCQkJa2V4ZWMuaApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveHNtL2R1 bW15LmggYi94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAppbmRleCBiOGUxODVlNmZhLi42OGI1YmY4 ZjhlIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAorKysgYi94ZW4vaW5jbHVk ZS94c20vZHVtbXkuaApAQCAtNDMzLDYgKzQzMywxMiBAQCBzdGF0aWMgWFNNX0lOTElORSBpbnQg eHNtX3BhZ2Vfb2ZmbGluZShYU01fREVGQVVMVF9BUkcgdWludDMyX3QgY21kKQogICAgIHJldHVy biB4c21fZGVmYXVsdF9hY3Rpb24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4sIE5VTEwpOwogfQog CitzdGF0aWMgWFNNX0lOTElORSBpbnQgeHNtX2h5cGZzX29wKFhTTV9ERUZBVUxUX1ZPSUQpCit7 CisgICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX1BSSVYpOworICAgIHJldHVybiB4c21fZGVmYXVs dF9hY3Rpb24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4sIE5VTEwpOworfQorCiBzdGF0aWMgWFNN X0lOTElORSBsb25nIHhzbV9kb194c21fb3AoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4c21fb3Bf dCkgb3ApCiB7CiAgICAgcmV0dXJuIC1FTk9TWVM7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94 c20veHNtLmggYi94ZW4vaW5jbHVkZS94c20veHNtLmgKaW5kZXggZTIyZDYxNjBiNS4uYTgwYmNm M2U0MiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveHNtL3hzbS5oCisrKyBiL3hlbi9pbmNsdWRl L3hzbS94c20uaApAQCAtMTI3LDYgKzEyNyw3IEBAIHN0cnVjdCB4c21fb3BlcmF0aW9ucyB7CiAg ICAgaW50ICgqcmVzb3VyY2Vfc2V0dXBfbWlzYykgKHZvaWQpOwogCiAgICAgaW50ICgqcGFnZV9v ZmZsaW5lKSh1aW50MzJfdCBjbWQpOworICAgIGludCAoKmh5cGZzX29wKSh2b2lkKTsKIAogICAg IGxvbmcgKCpkb194c21fb3ApIChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhzbV9vcF90KSBvcCk7 CiAjaWZkZWYgQ09ORklHX0NPTVBBVApAQCAtNTM2LDYgKzUzNywxMSBAQCBzdGF0aWMgaW5saW5l IGludCB4c21fcGFnZV9vZmZsaW5lKHhzbV9kZWZhdWx0X3QgZGVmLCB1aW50MzJfdCBjbWQpCiAg ICAgcmV0dXJuIHhzbV9vcHMtPnBhZ2Vfb2ZmbGluZShjbWQpOwogfQogCitzdGF0aWMgaW5saW5l IGludCB4c21faHlwZnNfb3AoeHNtX2RlZmF1bHRfdCBkZWYpCit7CisgICAgcmV0dXJuIHhzbV9v cHMtPmh5cGZzX29wKCk7Cit9CisKIHN0YXRpYyBpbmxpbmUgbG9uZyB4c21fZG9feHNtX29wIChY RU5fR1VFU1RfSEFORExFX1BBUkFNKHhzbV9vcF90KSBvcCkKIHsKICAgICByZXR1cm4geHNtX29w cy0+ZG9feHNtX29wKG9wKTsKZGlmZiAtLWdpdCBhL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vz c192ZWN0b3JzIGIveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMKaW5kZXggYzA1 NWMxNGMyNi4uYzllMzg1ZmI5YiAxMDA2NDQKLS0tIGEveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNj ZXNzX3ZlY3RvcnMKKysrIGIveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMKQEAg LTY3LDYgKzY3LDggQEAgY2xhc3MgeGVuCiAgICAgbG9ja3Byb2YKICMgWEVOX1NZU0NUTF9jcHVw b29sX29wCiAgICAgY3B1cG9vbF9vcAorIyBoeXBmcyBoeXBlcmNhbGwKKyAgICBoeXBmc19vcAog IyBYRU5fU1lTQ1RMX3NjaGVkdWxlcl9vcCB3aXRoIFhFTl9ET01DVExfU0NIRURPUF9nZXRpbmZv LCBYRU5fU1lTQ1RMX3NjaGVkX2lkLCBYRU5fRE9NQ1RMX1NDSEVET1BfZ2V0dmNwdWluZm8KICAg ICBnZXRzY2hlZHVsZXIKICMgWEVOX1NZU0NUTF9zY2hlZHVsZXJfb3Agd2l0aCBYRU5fRE9NQ1RM X1NDSEVET1BfcHV0aW5mbywgWEVOX0RPTUNUTF9TQ0hFRE9QX3B1dHZjcHVpbmZvCi0tIAoyLjE2 LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczov L2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs