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=-6.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 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 0BC50C4321A for ; Tue, 11 Jun 2019 18:46:51 +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 CCC1F217F5 for ; Tue, 11 Jun 2019 18:46:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=epam.com header.i=@epam.com header.b="oE2k7oCx" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CCC1F217F5 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=epam.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 1haln1-0006HW-P8; Tue, 11 Jun 2019 18:46:35 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1haln0-0006Gn-4b for xen-devel@lists.xenproject.org; Tue, 11 Jun 2019 18:46:34 +0000 X-Inumbo-ID: 3b07a816-8c79-11e9-8980-bc764e045a96 Received: from EUR01-VE1-obe.outbound.protection.outlook.com (unknown [2a01:111:f400:fe1f::627]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 3b07a816-8c79-11e9-8980-bc764e045a96; Tue, 11 Jun 2019 18:46:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=j5W+EtIqbLFMOIIY63AwYHsz7gbPWX2YmahaVw/dIHM=; b=oE2k7oCxTLrTt0KGn+vEZ3JkfNlDSz2BRAAIxuHjElHrXx/KBVKAhuzefTofOKTWdDYCCoH5PpyPuYCNQostbNuGtHsUV8sHGSEw7wkR6ef/KlBHm/lnE6RZcSfuHi/dGfK92p04mUmXnOZDXIRXVZcDbhZ/DhPuOnYslyw7jJHHam3UJuHqGvF6Zync1nYWrTO53YD4vibMCJjzQyHYK+hUhmkAuo7xQ5YE1S8UcTCxcRUWz34QT4D8UVE2JdARz/tpngBfr5mUjGUZlEetyvhkEVQf0b/PcpFCTuzVRjo3Fmoo6bAoF/AQ+bLHFPjxhv746dKBnKHr8W+cySDcww== Received: from AM0PR03MB4148.eurprd03.prod.outlook.com (20.176.214.210) by AM0PR03MB3795.eurprd03.prod.outlook.com (52.135.146.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1965.17; Tue, 11 Jun 2019 18:46:30 +0000 Received: from AM0PR03MB4148.eurprd03.prod.outlook.com ([fe80::d09e:ef3:88b6:b1eb]) by AM0PR03MB4148.eurprd03.prod.outlook.com ([fe80::d09e:ef3:88b6:b1eb%7]) with mapi id 15.20.1965.011; Tue, 11 Jun 2019 18:46:30 +0000 From: Volodymyr Babchuk To: "xen-devel@lists.xenproject.org" Thread-Topic: [PATCH v6 04/10] xen/arm: optee: add fast calls handling Thread-Index: AQHVIIX72lCMo2UwcEWPIdWg/KmYYQ== Date: Tue, 11 Jun 2019 18:46:30 +0000 Message-ID: <20190611184541.7281-5-volodymyr_babchuk@epam.com> References: <20190611184541.7281-1-volodymyr_babchuk@epam.com> In-Reply-To: <20190611184541.7281-1-volodymyr_babchuk@epam.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Volodymyr_Babchuk@epam.com; x-originating-ip: [85.223.209.22] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c0be3608-ada3-4686-8c0c-08d6ee9d1e73 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:AM0PR03MB3795; x-ms-traffictypediagnostic: AM0PR03MB3795: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7691; x-forefront-prvs: 006546F32A x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(346002)(136003)(376002)(396003)(366004)(189003)(199004)(73956011)(256004)(1076003)(305945005)(5660300002)(14444005)(76116006)(486006)(7736002)(91956017)(53936002)(14454004)(71190400001)(71200400001)(26005)(80792005)(76176011)(66946007)(2501003)(6506007)(102836004)(25786009)(55236004)(186003)(36756003)(86362001)(68736007)(2351001)(99286004)(2906002)(81166006)(81156014)(66476007)(4326008)(5640700003)(8676002)(8936002)(64756008)(66446008)(6512007)(478600001)(66556008)(316002)(6486002)(54906003)(2616005)(446003)(6116002)(6436002)(3846002)(66066001)(11346002)(72206003)(476003)(6916009); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR03MB3795; H:AM0PR03MB4148.eurprd03.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: epam.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: JgDmIQC9UzgG5LBS7MdNTIcM02SGKx0ocjzIXuhxfJ5fpr0jt7jOn2Rue57HOWKiGP0naqraiH1Li5hEwA6S6Vq3gbgaICI04rVmLZst8leIkMmsZMg5JibAA2cncTZs7J7g2Nh8Blzz21D21GgabJSgrSs0SyXO9JEoai9uzgQWL48v8oHKefR9LnJyBT9ab2C0WgREY2dfk2KHxN99b1met790H0RYF5whwRR1r0iL1VuJtW8Y35+pIdk1eO/jp2IOrougWDTPCxY1dU+YnzfvHJl8cQNXU5mC/JDHqvAzHhpkUmNkAzhW4n3wLn/QLq6JQqnpoYuEn7YUlqtnHSn/nBELil3BIEkEje4Vd/fVQgo1pvJYk8kFbuDyX/2mXkq4nD+hrViJH9mvacgSDP8yKQTys3hE0lm2cOFt6ek= MIME-Version: 1.0 X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-Network-Message-Id: c0be3608-ada3-4686-8c0c-08d6ee9d1e73 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Jun 2019 18:46:30.7209 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Volodymyr_Babchuk@epam.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB3795 Subject: [Xen-devel] [PATCH v6 04/10] xen/arm: optee: add fast calls handling 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: "tee-dev@lists.linaro.org" , Julien Grall , Stefano Stabellini , Volodymyr Babchuk Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" VGhpcyBwYXRjaCBhZGRzIGhhbmRsaW5nIGZvciB0aGUgZmFzdCBTTUNzLiBBcyBuYW1lIHN1Z2dl c3RzLCB0aG9zZQpjYWxscyBjYW4ndCBiZSBwcmVlbXB0ZWQgYW5kIGFyZSB1c2VkIGZvciBhdXhp bGlhcnkgdGFza3Mgc3VjaCBhcwppbmZvcm1hdGlvbiByZXRyaWV2YWwuIE1vc3QgaGFuZGxlcnMg YXJlIHF1aXRlIHRyaXZpYWwsIHdpdGggZXhjZXB0aW9uCmZvciBjYXBhYmlsaXRpZXMgaW5mb3Jt YXRpb24uCgpDYXBhYmlsaXRpZXMgZXhjaGFuZ2Ugc2hvdWxkIGJlIGZpbHRlcmVkIG91dCwgc28g b25seSBjYXBzCmtub3duIHRvIG1lZGlhdG9yIGFyZSB1c2VkLiBBbHNvIG1lZGlhdG9yIGRpc2Fi bGVzIHN0YXRpYyBTSE0KbWVtb3J5IGNhcGFiaWxpdHksIGJlY2F1c2UgaXQgY2FuJ3Qgc2hhcmUg T1AtVEVFIG1lbW9yeSB3aXRoIGEgZG9tYWluLgpPbmx5IGRvbWFpbiBjYW4gc2hhcmUgbWVtb3J5 IHdpdGggT1AtVEVFLCBzbyBpdCBlbnN1cmVzIHRoYXQgT1AtVEVFCnN1cHBvcnRzIGR5bmFtaWMg U0hNLgoKQmFzaWNhbGx5LCBzdGF0aWMgU0hNIGlzIGEgcmVzZXJ2ZWQgbWVtb3J5IHJlZ2lvbiB3 aGljaCBpcyBhbHdheXMKbWFwcGVkIGludG8gT1AtVEVFIGFkZHJlc3Mgc3BhY2UuIEl0IGJlbG9u Z3MgdG8gT1AtVEVFLiBOb3JtYWxseSwKTlcgaXMgYWxsb3dlZCB0byBhY2Nlc3MgdGhlcmUsIHNv IGl0IGNhbiBjb21tdW5pY2F0ZSB3aXRoIE9QLVRFRS4KCk9uIG90aGVyIGhhbmQsIGR5bmFtaWMg U0hNIGlzIE5XJ3Mgb3duIG1lbW9yeSwgd2hpY2ggaXQgY2FuIHNoYXJlCndpdGggT1AtVEVFLiBP UC1URUUgbWFwcyB0aGlzIG1lbW9yeSBkeW5hbWljYWxseSwgd2hlbiBpdCB3YW50cyB0bwphY2Nl c3MgaXQuCgpCZWNhdXNlIG1lZGlhdG9yIGNhbid0IHNoYXJlIG9uZSBzdGF0aWMgU0hNIHJlZ2lv biB3aXRoIGFsbCBndWVzdHMsIGl0Cmp1c3QgZGlzYWJsZXMgaXQgZm9yIGFsbCBvZiB0aGVtLiBJ dCBpcyBwb3NzaWJsZSB0byBtYWtlIGV4Y2VwdGlvbiBmb3IKRG9tMCwgYnV0IGl0IHJlcXVpcmVz IHNlcGFyYXRlIGhhbmRsaW5nIGZvciBidWZmZXJzIGFsbG9jYXRlZCBmcm9tCnRoYXQgcmVnaW9u LiBUaHVzLCBpdCBpcyBub3QgaW1wbGVtZW50ZWQgeWV0LgoKU2lnbmVkLW9mZi1ieTogVm9sb2R5 bXlyIEJhYmNodWsgPHZvbG9keW15cl9iYWJjaHVrQGVwYW0uY29tPgpBY2tlZC1ieTogSnVsaWVu IEdyYWwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgoKLS0tCiBBbGwgdGhlIHBhdGNoZXMgdG8gb3B0 ZWUuYyBzaG91bGQgYmUgbWVyZ2VkIHRvZ2V0aGVyLiBUaGV5IHdlcmUKIHNwbGl0IHRvIGVhc2Ug dXAgcmV2aWV3LiBCdXQgdGhleSBkZXBlbmQgaGVhdmlseSBvbiBlYWNoIG90aGVyLgoKQ2hhbmdl cyBmcm9tIHY0OgogIC0gSGFuZGxlciBkb2VzIG5vdCB1c2UgZm9yd2FyZF9jYWxsKCkuIEluc3Rl YWQgaXQgY2FsbHMgT1AtVEVFCiAgICBkaXJlY3RseSB3aXRoIGFybV9zbWNjY19zbWMoKS4KICAt IEhhbmRsZXIgbW9kaWZpZXMgb25seSB0aG9zZSBndWVzdCByZWdpc3RlcnMgdGhhdCBhcmUgc2hv dWxkCiAgICBiZSB0b3VjaGVkIGFjY29yZGluZyB0byBPUC1URUUgcHJvdG9jb2wgc3BlY2lmaWNh dGlvbi4KICAtIEFkZGVkIE9QVEVFX01FRElBVE9SX1NNQ19DT1VOVCBkZWZpbml0aW9uLgoKQ2hh bmdlcyBmcm9tIHYyOgogIC0gRGVmaW5lZCBrbm93biBjYXBhYmlsaXRpZXMgZXhwbGljaXRseQog IC0gRml4ZWQgY29kZSBzdHlsZQotLS0KIHhlbi9hcmNoL2FybS90ZWUvb3B0ZWUuYyB8IDk3ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA5 NyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3RlZS9vcHRlZS5jIGIv eGVuL2FyY2gvYXJtL3RlZS9vcHRlZS5jCmluZGV4IGU5YjY5YmQyZDIuLjZjNTFjYWE0MWEgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS90ZWUvb3B0ZWUuYworKysgYi94ZW4vYXJjaC9hcm0vdGVl L29wdGVlLmMKQEAgLTMyLDkgKzMyLDE3IEBACiAjaW5jbHVkZSA8YXNtL3RlZS9vcHRlZV9tc2cu aD4KICNpbmNsdWRlIDxhc20vdGVlL29wdGVlX3NtYy5oPgogCisvKiBOdW1iZXIgb2YgU01DcyBr bm93biB0byB0aGUgbWVkaWF0b3IgKi8KKyNkZWZpbmUgT1BURUVfTUVESUFUT1JfU01DX0NPVU5U ICAgMTEKKwogLyogQ2xpZW50IElEIDAgaXMgcmVzZXJ2ZWQgZm9yIHRoZSBoeXBlcnZpc29yIGl0 c2VsZiAqLwogI2RlZmluZSBPUFRFRV9DTElFTlRfSUQoZG9tYWluKSAoKGRvbWFpbiktPmRvbWFp bl9pZCArIDEpCiAKKyNkZWZpbmUgT1BURUVfS05PV05fTlNFQ19DQVBTIE9QVEVFX1NNQ19OU0VD X0NBUF9VTklQUk9DRVNTT1IKKyNkZWZpbmUgT1BURUVfS05PV05fU0VDX0NBUFMgKE9QVEVFX1NN Q19TRUNfQ0FQX0hBVkVfUkVTRVJWRURfU0hNIHwgXAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgT1BURUVfU01DX1NFQ19DQVBfVU5SRUdJU1RFUkVEX1NITSB8IFwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE9QVEVFX1NNQ19TRUNfQ0FQX0RZTkFNSUNfU0hNKQorCiAvKiBE b21haW4gY29udGV4dCAqLwogc3RydWN0IG9wdGVlX2RvbWFpbiB7CiB9OwpAQCAtMTIwLDIyICsx MjgsMTExIEBAIHN0YXRpYyBpbnQgb3B0ZWVfcmVsaW5xdWlzaF9yZXNvdXJjZXMoc3RydWN0IGRv bWFpbiAqZCkKICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGljIHZvaWQgaGFuZGxlX2V4Y2hhbmdl X2NhcGFiaWxpdGllcyhzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKK3sKKyAgICBzdHJ1Y3Qg YXJtX3NtY2NjX3JlcyByZXNwOworICAgIHVpbnQzMl90IGNhcHM7CisKKyAgICAvKiBGaWx0ZXIg b3V0IHVua25vd24gZ3Vlc3QgY2FwcyAqLworICAgIGNhcHMgPSBnZXRfdXNlcl9yZWcocmVncywg MSk7CisgICAgY2FwcyAmPSBPUFRFRV9LTk9XTl9OU0VDX0NBUFM7CisKKyAgICBhcm1fc21jY2Nf c21jKE9QVEVFX1NNQ19FWENIQU5HRV9DQVBBQklMSVRJRVMsIGNhcHMsIDAsIDAsIDAsIDAsIDAs CisgICAgICAgICAgICAgICAgICBPUFRFRV9DTElFTlRfSUQoY3VycmVudC0+ZG9tYWluKSwgJnJl c3ApOworICAgIGlmICggcmVzcC5hMCAhPSBPUFRFRV9TTUNfUkVUVVJOX09LICkgeworICAgICAg ICBzZXRfdXNlcl9yZWcocmVncywgMCwgcmVzcC5hMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9 CisKKyAgICBjYXBzID0gcmVzcC5hMTsKKworICAgIC8qIEZpbHRlciBvdXQgdW5rbm93biBPUC1U RUUgY2FwcyAqLworICAgIGNhcHMgJj0gT1BURUVfS05PV05fU0VDX0NBUFM7CisKKyAgICAvKiBE cm9wIHN0YXRpYyBTSE1fUlBDIGNhcCAqLworICAgIGNhcHMgJj0gfk9QVEVFX1NNQ19TRUNfQ0FQ X0hBVkVfUkVTRVJWRURfU0hNOworCisgICAgLyogRG9uJ3QgYWxsb3cgZ3Vlc3RzIHRvIHdvcmsg d2l0aG91dCBkeW5hbWljIFNITSAqLworICAgIGlmICggIShjYXBzICYgT1BURUVfU01DX1NFQ19D QVBfRFlOQU1JQ19TSE0pICkKKyAgICB7CisgICAgICAgIHNldF91c2VyX3JlZyhyZWdzLCAwLCBP UFRFRV9TTUNfUkVUVVJOX0VOT1RBVkFJTCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg ICBzZXRfdXNlcl9yZWcocmVncywgMCwgT1BURUVfU01DX1JFVFVSTl9PSyk7CisgICAgc2V0X3Vz ZXJfcmVnKHJlZ3MsIDEsIGNhcHMpOworfQorCiBzdGF0aWMgYm9vbCBvcHRlZV9oYW5kbGVfY2Fs bChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKIHsKKyAgICBzdHJ1Y3QgYXJtX3NtY2NjX3Jl cyByZXNwOworCiAgICAgaWYgKCAhY3VycmVudC0+ZG9tYWluLT5hcmNoLnRlZSApCiAgICAgICAg IHJldHVybiBmYWxzZTsKIAogICAgIHN3aXRjaCAoIGdldF91c2VyX3JlZyhyZWdzLCAwKSApCiAg ICAgewogICAgIGNhc2UgT1BURUVfU01DX0NBTExTX0NPVU5UOgorICAgICAgICBzZXRfdXNlcl9y ZWcocmVncywgMCwgT1BURUVfTUVESUFUT1JfU01DX0NPVU5UKTsKKyAgICAgICAgcmV0dXJuIHRy dWU7CisKICAgICBjYXNlIE9QVEVFX1NNQ19DQUxMU19VSUQ6CisgICAgICAgIGFybV9zbWNjY19z bWMoT1BURUVfU01DX0NBTExTX1VJRCwgMCwgMCwgMCwgMCwgMCwgMCwKKyAgICAgICAgICAgICAg ICAgICAgICBPUFRFRV9DTElFTlRfSUQoY3VycmVudC0+ZG9tYWluKSwgJnJlc3ApOworICAgICAg ICBzZXRfdXNlcl9yZWcocmVncywgMCwgcmVzcC5hMCk7CisgICAgICAgIHNldF91c2VyX3JlZyhy ZWdzLCAxLCByZXNwLmExKTsKKyAgICAgICAgc2V0X3VzZXJfcmVnKHJlZ3MsIDIsIHJlc3AuYTIp OworICAgICAgICBzZXRfdXNlcl9yZWcocmVncywgMywgcmVzcC5hMyk7CisgICAgICAgIHJldHVy biB0cnVlOworCiAgICAgY2FzZSBPUFRFRV9TTUNfQ0FMTFNfUkVWSVNJT046CisgICAgICAgIGFy bV9zbWNjY19zbWMoT1BURUVfU01DX0NBTExTX1JFVklTSU9OLCAwLCAwLCAwLCAwLCAwLCAwLAor ICAgICAgICAgICAgICAgICAgICAgIE9QVEVFX0NMSUVOVF9JRChjdXJyZW50LT5kb21haW4pLCAm cmVzcCk7CisgICAgICAgIHNldF91c2VyX3JlZyhyZWdzLCAwLCByZXNwLmEwKTsKKyAgICAgICAg c2V0X3VzZXJfcmVnKHJlZ3MsIDEsIHJlc3AuYTEpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKwog ICAgIGNhc2UgT1BURUVfU01DX0NBTExfR0VUX09TX1VVSUQ6CisgICAgICAgIGFybV9zbWNjY19z bWMoT1BURUVfU01DX0NBTExfR0VUX09TX1VVSUQsIDAsIDAsIDAsIDAsIDAsIDAsCisgICAgICAg ICAgICAgICAgICAgICAgT1BURUVfQ0xJRU5UX0lEKGN1cnJlbnQtPmRvbWFpbiksJnJlc3ApOwor ICAgICAgICBzZXRfdXNlcl9yZWcocmVncywgMCwgcmVzcC5hMCk7CisgICAgICAgIHNldF91c2Vy X3JlZyhyZWdzLCAxLCByZXNwLmExKTsKKyAgICAgICAgc2V0X3VzZXJfcmVnKHJlZ3MsIDIsIHJl c3AuYTIpOworICAgICAgICBzZXRfdXNlcl9yZWcocmVncywgMywgcmVzcC5hMyk7CisgICAgICAg IHJldHVybiB0cnVlOworCiAgICAgY2FzZSBPUFRFRV9TTUNfQ0FMTF9HRVRfT1NfUkVWSVNJT046 CisgICAgICAgIGFybV9zbWNjY19zbWMoT1BURUVfU01DX0NBTExfR0VUX09TX1JFVklTSU9OLCAw LCAwLCAwLCAwLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgIE9QVEVFX0NMSUVOVF9JRChj dXJyZW50LT5kb21haW4pLCAmcmVzcCk7CisgICAgICAgIHNldF91c2VyX3JlZyhyZWdzLCAwLCBy ZXNwLmEwKTsKKyAgICAgICAgc2V0X3VzZXJfcmVnKHJlZ3MsIDEsIHJlc3AuYTEpOworICAgICAg ICByZXR1cm4gdHJ1ZTsKKwogICAgIGNhc2UgT1BURUVfU01DX0VOQUJMRV9TSE1fQ0FDSEU6Cisg ICAgICAgIGFybV9zbWNjY19zbWMoT1BURUVfU01DX0VOQUJMRV9TSE1fQ0FDSEUsIDAsIDAsIDAs IDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgT1BURUVfQ0xJRU5UX0lEKGN1cnJlbnQt PmRvbWFpbiksICZyZXNwKTsKKyAgICAgICAgc2V0X3VzZXJfcmVnKHJlZ3MsIDAsIHJlc3AuYTAp OworICAgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgIGNhc2UgT1BURUVfU01DX0RJU0FCTEVfU0hN X0NBQ0hFOgorICAgICAgICBhcm1fc21jY2Nfc21jKE9QVEVFX1NNQ19FTkFCTEVfU0hNX0NBQ0hF LCAwLCAwLCAwLCAwLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgIE9QVEVFX0NMSUVOVF9J RChjdXJyZW50LT5kb21haW4pLCAmcmVzcCk7CisgICAgICAgIHNldF91c2VyX3JlZyhyZWdzLCAw LCByZXNwLmEwKTsKKyAgICAgICAgaWYgKCByZXNwLmEwID09IE9QVEVFX1NNQ19SRVRVUk5fT0sg KSB7CisgICAgICAgICAgICBzZXRfdXNlcl9yZWcocmVncywgMSwgcmVzcC5hMSk7CisgICAgICAg ICAgICBzZXRfdXNlcl9yZWcocmVncywgMiwgcmVzcC5hMik7CisgICAgICAgIH0KKyAgICAgICAg cmV0dXJuIHRydWU7CisKICAgICBjYXNlIE9QVEVFX1NNQ19HRVRfU0hNX0NPTkZJRzoKKyAgICAg ICAgLyogTm8gc3RhdGljIFNITSBhdmFpbGFibGUgZm9yIGd1ZXN0cyAqLworICAgICAgICBzZXRf dXNlcl9yZWcocmVncywgMCwgT1BURUVfU01DX1JFVFVSTl9FTk9UQVZBSUwpOworICAgICAgICBy ZXR1cm4gdHJ1ZTsKKwogICAgIGNhc2UgT1BURUVfU01DX0VYQ0hBTkdFX0NBUEFCSUxJVElFUzoK KyAgICAgICAgaGFuZGxlX2V4Y2hhbmdlX2NhcGFiaWxpdGllcyhyZWdzKTsKKyAgICAgICAgcmV0 dXJuIHRydWU7CisKICAgICBjYXNlIE9QVEVFX1NNQ19DQUxMX1dJVEhfQVJHOgogICAgIGNhc2Ug T1BURUVfU01DX0NBTExfUkVUVVJOX0ZST01fUlBDOgogICAgICAgICBzZXRfdXNlcl9yZWcocmVn cywgMCwgT1BURUVfU01DX1JFVFVSTl9FTk9UQVZBSUwpOwotLSAKMi4yMS4wCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBs aXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2pl Y3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs