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=-7.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no 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 920DEC433E1 for ; Thu, 6 Aug 2020 17:27:35 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 D8085221E3 for ; Thu, 6 Aug 2020 17:27:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="fmFVi9He"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=linux.microsoft.com header.i=@linux.microsoft.com header.b="e52b+Hsf" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D8085221E3 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.microsoft.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=PyRcYqhmCr9EqJj8YcptMYenvpOkpQ9toiKX1GrdheE=; b=fmFVi9HeClj4zTtx4MVaeeKbr zcRAL3003Mo244azOlF8DL1IZBlqWNWC62rpQY37/rgXENF5sVcrRitItU/swYr4dC99+N6b3aYBx 9et7gCMeKSZPOg0zUQvX2QhS4un/gtpvckvSIA1ituyNRU4HCf8X78ttVteDa4ymVMKUNSordDNNO T6m3UT3k+hUpQhjyxxHD4c0T1aQjQsY1/3C14Tu6Re9YtxO5tVa5KX7NVsz0QZ1R9UYsJKa2FPNsb jwmsE3pOQviNAhFvVtYlXwP6799rSJaRZQfF372ZtVsiKsIbFJe5j0+wbkMKrYrfKleLfvHK3jVaO 2GNmrQLcg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1k3jec-0003Ob-M4; Thu, 06 Aug 2020 17:26:10 +0000 Received: from linux.microsoft.com ([13.77.154.182]) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1k3jeZ-0003N7-9P for linux-arm-kernel@lists.infradead.org; Thu, 06 Aug 2020 17:26:08 +0000 Received: from [192.168.254.32] (unknown [47.187.206.220]) by linux.microsoft.com (Postfix) with ESMTPSA id 2A06620B4908; Thu, 6 Aug 2020 10:26:03 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 2A06620B4908 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1596734763; bh=SKMTpymjM2dm1WgVhMrKQuNr9tnwmD1sIq+q78ljXI4=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=e52b+HsfeIrZBK4wd2YokPWiDGtVrTgHsUcshaMv/Q+OZ4/ixW20KNmfWuWvqGZx5 tyqKKklbNwZq0c9vHJI4FRFVgiMVS4haqJy4sZeFyMsivmCKtipv1WlRbXCzCUMjOy zCggK+Qp7AEqHKECbf1qqN6OApZ4JBNLNtAf0X/s= Subject: Re: [PATCH v1 0/4] [RFC] Implement Trampoline File Descriptor To: Mark Rutland References: <20200728131050.24443-1-madvenka@linux.microsoft.com> <20200731180955.GC67415@C02TD0UTHF1T.local> <6236adf7-4bed-534e-0956-fddab4fd96b6@linux.microsoft.com> <20200804143018.GB7440@C02TD0UTHF1T.local> From: "Madhavan T. Venkataraman" Message-ID: Date: Thu, 6 Aug 2020 12:26:02 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20200804143018.GB7440@C02TD0UTHF1T.local> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200806_132607_465369_4DDCC9DD X-CRM114-Status: GOOD ( 49.52 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kernel-hardening@lists.openwall.com, linux-api@vger.kernel.org, x86@kernel.org, linux-kernel@vger.kernel.org, oleg@redhat.com, linux-security-module@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-integrity@vger.kernel.org, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org VGhhbmtzIGZvciB0aGUgbGl2ZWx5IGRpc2N1c3Npb24uIEkgaGF2ZSB0cmllZCB0byBhbnN3ZXIg c29tZSBvZiB0aGUKY29tbWVudHMgYmVsb3cuCgpPbiA4LzQvMjAgOTozMCBBTSwgTWFyayBSdXRs YW5kIHdyb3RlOgo+Cj4+IFNvLCB0aGUgY29udGV4dCBpcyAtIGlmIHNlY3VyaXR5IHNldHRpbmdz IGluIGEgc3lzdGVtIGRpc2FsbG93IGEgcGFnZSB0byBoYXZlCj4+IGJvdGggd3JpdGUgYW5kIGV4 ZWN1dGUgcGVybWlzc2lvbnMsIGhvdyBkbyB5b3UgYWxsb3cgdGhlIGV4ZWN1dGlvbiBvZgo+PiBn ZW51aW5lIHRyYW1wb2xpbmVzIHRoYXQgYXJlIHJ1bnRpbWUgZ2VuZXJhdGVkIGFuZCBwbGFjZWQg aW4gYSBkYXRhCj4+IHBhZ2Ugb3IgYSBzdGFjayBwYWdlPwo+IFRoZXJlIGFyZSBvcHRpb25zIHRv ZGF5LCBlLmcuCj4KPiBhKSBJZiB0aGUgcmVzdHJpY3Rpb24gaXMgb25seSBwZXItYWxpYXMsIHlv dSBjYW4gaGF2ZSBkaXN0aW5jdCBhbGlhc2VzCj4gICAgd2hlcmUgb25lIGlzIHdyaXRhYmxlIGFu ZCBhbm90aGVyIGlzIGV4ZWN1dGFibGUsIGFuZCB5b3UgY2FuIG1ha2UgaXQKPiAgICBoYXJkIHRv IGZpbmQgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHRoZSB0d28uCj4KPiBiKSBJZiB0aGUgcmVz dHJpY3Rpb24gaXMgb25seSB0ZW1wb3JhbCwgeW91IGNhbiB3cml0ZSBpbnN0cnVjdGlvbnMgaW50 bwo+ICAgIGFuIFJXLSBidWZmZXIsIHRyYW5zaXRpb24gdGhlIGJ1ZmZlciB0byBSLS0sIHZlcmlm eSB0aGUgYnVmZmVyCj4gICAgY29udGVudHMsIHRoZW4gdHJhbnNpdGlvbiBpdCB0byAtLVguCj4K PiBjKSBZb3UgY2FuIGhhdmUgdHdvIHByb2Nlc3NlcyBBIGFuZCBCIHdoZXJlIEEgZ2VuZXJhdGVz IGluc3RydWNpdG9ucyBpbnRvCj4gICAgYSBidWZmZXIgdGhhdCAob25seSkgQiBjYW4gZXhlY3V0 ZSAod2hlcmUgQiBtYXkgYmUgcmVzdHJpY3RlZCBmcm9tCj4gICAgbWFraW5nIHN5c2NhbGxzIGxp a2Ugd3JpdGUsIG1wcm90ZWN0LCBldGMpLgoKVGhlIGdlbmVyYWwgcHJpbmNpcGxlIG9mIHRoZSBt aXRpZ2F0aW9uIGlzIFdeWC4gSSB3b3VsZCBhcmd1ZSB0aGF0CnRoZSBhYm92ZSBvcHRpb25zIGFy ZSB2aW9sYXRpb25zIG9mIHRoZSBXXlggcHJpbmNpcGxlLiBJZiB0aGV5IGFyZQphbGxvd2VkIHRv ZGF5LCB0aGV5IG11c3QgYmUgZml4ZWQuIEFuZCB0aGV5IHdpbGwgYmUuIFNvLCB3ZSBjYW5ub3QK cmVseSBvbiB0aGVtLgoKYSkgVGhpcyByZXF1aXJlcyBhIHJlbWFwIG9wZXJhdGlvbi4gVHdvIG1h cHBpbmdzIHBvaW50IHRvIHRoZSBzYW1lCsKgwqDCoMKgIHBoeXNpY2FsIHBhZ2UuIE9uZSBtYXBw aW5nIGhhcyBXIGFuZCB0aGUgb3RoZXIgb25lIGhhcyBYLiBUaGlzCsKgwqDCoMKgIGlzIGEgdmlv bGF0aW9uIG9mIFdeWC4KCmIpIFRoaXMgaXMgYWdhaW4gYSB2aW9sYXRpb24uIFRoZSBrZXJuZWwg c2hvdWxkIHJlZnVzZSB0byBnaXZlIGV4ZWN1dGUKwqDCoMKgwqAgcGVybWlzc2lvbiB0byBhIHBh Z2UgdGhhdCB3YXMgd3JpdGVhYmxlIGluIHRoZSBwYXN0IGFuZCByZWZ1c2UgdG8KwqDCoMKgwqAg Z2l2ZSB3cml0ZSBwZXJtaXNzaW9uIHRvIGEgcGFnZSB0aGF0IHdhcyBleGVjdXRhYmxlIGluIHRo ZSBwYXN0LgoKYykgVGhpcyBpcyBqdXN0IGEgdmFyaWF0aW9uIG9mIChhKS4KCkluIGdlbmVyYWws IHRoZSBwcm9ibGVtIHdpdGggdXNlci1sZXZlbCBtZXRob2RzIHRvIG1hcCBhbmQgZXhlY3V0ZQpk eW5hbWljIGNvZGUgaXMgdGhhdCB0aGUga2VybmVsIGNhbm5vdCB0ZWxsIGlmIGEgZ2VudWluZSBh cHBsaWNhdGlvbiBpcwp1c2luZyB0aGVtIG9yIGFuIGF0dGFja2VyIGlzIHVzaW5nIHRoZW0gb3Ig cGlnZ3ktYmFja2luZyBvbiB0aGVtLgpJZiBhIHNlY3VyaXR5IHN1YnN5c3RlbSBibG9ja3MgYWxs IHVzZXItbGV2ZWwgbWV0aG9kcyBmb3IgdGhpcyByZWFzb24sCndlIG5lZWQgYSBrZXJuZWwgbWVj aGFuaXNtIHRvIGRlYWwgd2l0aCB0aGUgcHJvYmxlbS4KClRoZSBrZXJuZWwgbWVjaGFuaXNtIGlz IG5vdCB0byBiZSBhIGJhY2tkb29yLiBJdCBpcyB0aGVyZSB0byBkZWZpbmUKd2F5cyBpbiB3aGlj aCBzYWZlIGR5bmFtaWMgY29kZSBjYW4gYmUgZXhlY3V0ZWQuCgpJIGFkbWl0IEkgaGF2ZSB0byBw cm92aWRlIG1vcmUgcHJvb2YgdGhhdCBteSBBUEkgYW5kIGZyYW1ld29yayBjYW4KY292ZXIgZGlm ZmVyZW50IGNhc2VzLiBTbywgdGhhdCBpcyB3aGF0IEkgYW0gZG9pbmcgbm93LiBJIGFtIGluIHRo ZSBwcm9jZXNzCm9mIGlkZW50aWZ5aW5nIG90aGVyIGV4YW1wbGVzIChwZXIgQW5keSdzIGNvbW1l bnQpIGFuZCBhdHRlbXB0aW5nIHRvCnNob3cgdGhhdCB0aGlzIEFQSSBhbmQgZnJhbWV3b3JrIGNh biBhZGRyZXNzIHRoZW0uIEl0IHdpbGwgdGFrZSBhIGxpdHRsZSB0aW1lLgoKCj4+Cj4+IElJVUMs IHlvdSBhcmUgc3VnZ2VzdGluZyB0aGF0IHRoZSB1c2VyIGhhbmRzIHRoZSBrZXJuZWwgYSBjb2Rl IGZyYWdtZW50Cj4+IGFuZCByZXF1ZXN0cyBpdCB0byBiZSBwbGFjZWQgaW4gYW4gci14IHBhZ2Us IGNvcnJlY3Q/IEhvd2V2ZXIsIHRoZQo+PiBrZXJuZWwgY2Fubm90IHRydXN0IGFueSBjb2RlIGdp dmVuIHRvIGl0IGJ5IHRoZSB1c2VyLiBOb3IgY2FuIGl0IHNjYW4gYW55Cj4+IHBpZWNlIG9mIGNv ZGUgYW5kIHJlbGlhYmx5IGRlY2lkZSBpZiBpdCBpcyBzYWZlIG9yIG5vdC4KPiBQZXIgdGhhdCBz YW1lIGxvZ2ljIHRoZSBrZXJuZWwgY2Fubm90IHRydXN0IHRyYW1wZmQgY3JlYXRpb24gY2FsbHMg dG8gYmUKPiBsZWdpdGltYXRlIGFzIHRoZSBhZHZlcnNhcnkgY291bGQgbWVzcyB3aXRoIHRoZSBh cmd1bWVudHMuIEl0IGRvZXNuJ3QKPiBtYXR0ZXIgaWYgdGhlIGtlcm5lbCdzIGNvZGVnZW4gaXMg dHJ1c3R3b3J0aHkgaWYgaXQncyBwb3RlbnRpYWxseSBkcml2ZW4KPiBieSBhbiBhZHZlcnNhcnku CgpUaGF0IGlzIG5vdCB0cnVlLiBJTU8sIHRoaXMgaXMgbm90IGEgZGVmaWNpZW5jeSBpbiB0cmFt cGZkLiBUaGlzIGlzCnNvbWV0aGluZyB0aGF0IGlzIHRoZXJlIGV2ZW4gZm9yIHJlZ3VsYXIgc3lz dGVtIGNhbGxzLiBGb3IgaW5zdGFuY2UsCnRoZSB3cml0ZSgpIHN5c3RlbSBjYWxsIHdpbGwgZmFp dGhmdWxseSB3cml0ZSBvdXQgYSBidWZmZXIgdG8gYSBmaWxlCmV2ZW4gaWYgdGhlIGJ1ZmZlciBj b250ZW50cyBoYXZlIGJlZW4gaGFja2VkIGJ5IGFuIGF0dGFja2VyLgpBIHN5c3RlbSBjYWxsIGNh biBwZXJmb3JtIGNlcnRhaW4gY2hlY2tzIG9uIGluY29taW5nIGFyZ3VtZW50cy4KQnV0IGl0IGNh bm5vdCB0ZWxsIGlmIGEgaGFja2VyIGhhcyBtb2RpZmllZCB0aGVtLgoKU28sIHRoZXJlIGFyZSB0 d28gYXNwZWN0cyBpbiBkeW5hbWljIGNvZGUgdGhhdCBJIGFtIGNvbnNpZGVyaW5nIC0KZGF0YSBh bmQgY29kZS4gSSBzdWJtaXQgdGhhdCB0aGUgZGF0YSBwYXJ0IGNhbiBiZSBoYWNrZWQgaWYgYW4K YXBwbGljYXRpb24gaGFzIGEgdnVsbmVyYWJpbGl0eSBzdWNoIGFzIGJ1ZmZlciBvdmVyZmxvdy4g SSBkb24ndCBzZWUKaG93IHdlIGNhbiBldmVyIGhlbHAgdGhhdC4KClNvLCBJIGFtIGZvY3VzZWQg b24gdGhlIGNvZGUgZ2VuZXJhdGlvbiBwYXJ0LiBOb3QgYWxsIGR5bmFtaWMgY29kZQppcyB0aGUg c2FtZS4gVGhleSBoYXZlIGRpZmZlcmVudCBkZWdyZWVzIG9mIHRydXN0LgoKT2ZmIHRoZSB0b3Ag b2YgbXkgaGVhZCwgSSBoYXZlIHRyaWVkIHRvIGlkZW50aWZ5IHNvbWUgZXhhbXBsZXMKd2hlcmUg d2UgY2FuIGhhdmUgbW9yZSB0cnVzdCBvbiBkeW5hbWljIGNvZGUgYW5kIGhhdmUgdGhlIGtlcm5l bApwZXJtaXQgaXRzIGV4ZWN1dGlvbi4KCjEuIElmIHRoZSBrZXJuZWwgY2FuIGRvIHRoZSBqb2Is IHRoZW4gdGhhdCBpcyBvbmUgc2FmZSB3YXkuIEhlcmUsIHRoZSBrZXJuZWwKwqDCoMKgIGlzIHRo ZSBjb2RlLiBUaGVyZSBpcyBubyBjb2RlIGdlbmVyYXRpb24gaW52b2x2ZWQuIFRoaXMgaXMgd2hh dCBJCsKgwqDCoCBoYXZlIHByZXNlbnRlZCBpbiB0aGUgcGF0Y2ggc2VyaWVzIGFzIHRoZSBmaXJz dCBjdXQuCgoyLiBJZiB0aGUga2VybmVsIGNhbiBnZW5lcmF0ZSB0aGUgY29kZSwgdGhlbiB0aGF0 IGNvZGUgaGFzIGEgbWVhc3VyZQrCoMKgwqAgb2YgdHJ1c3QuIEZvciB0cmFtcG9saW5lcywgSSBh Z3JlZWQgdG8gZG8gdGhpcyBmb3IgcGVyZm9ybWFuY2UuCgozLiBJZiB0aGUgY29kZSByZXNpZGVz IGluIGEgc2lnbmVkIGZpbGUsIHRoZW4gd2Uga25vdyB0aGF0IGl0IGNvbWVzIGZyb20KwqDCoMKg IGFuIGtub3duIHNvdXJjZSBhbmQgaXQgd2FzIGdlbmVyYXRlZCBhdCBidWlsZCB0aW1lLiBTbywg aXQgaXMgbm90CsKgwqDCoCBoYWNrZXIgZ2VuZXJhdGVkLiBTbywgdGhlcmUgaXMgYSBtZWFzdXJl IG9mIHRydXN0LgoKwqDCoMKgIFRoaXMgaXMgbm90IGp1c3QgcHJvZ3JhbSB0ZXh0LiBUaGlzIGNv dWxkIGFsc28gYmUgYSBidWZmZXIgdGhhdCBjb250YWlucwrCoMKgwqAgdHJhbXBvbGluZSBjb2Rl IHRoYXQgcmVzaWRlcyBpbiB0aGUgcmVhZC1vbmx5IGRhdGEgc2VjdGlvbiBvZiBhIGJpbmFyeS4K CjQuIElmIHRoZSBjb2RlIHJlc2lkZXMgaW4gYSBzaWduZWQgZmlsZSBhbmQgaXMgZW11bGF0ZWQg KGUuZy4gYnkgUUVNVSkKwqDCoMKgIGFuZCB3ZSBnZW5lcmF0ZSBjb2RlIGZvciBkeW5hbWljIGJp bmFyeSB0cmFuc2xhdGlvbiwgd2Ugc2hvdWxkCsKgwqDCoCBiZSBhYmxlIHRvIGRvIHRoYXQgcHJv dmlkZWQgdGhlIGNvZGUgZ2VuZXJhdG9yIGl0c2VsZiBpcyBub3Qgc3VzcGVjdC4KwqDCoMKgIFNl ZSB0aGUgbmV4dCBwb2ludC7CoMKgwqAKCjUuIFRoZSBhYm92ZSBhcmUgZXhhbXBsZXMgb2YgYWN0 dWFsIG1hY2hpbmUgY29kZSBvciBlcXVpdmFsZW50LgrCoMKgwqAgV2UgY291bGQgYWxzbyBoYXZl IHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggd2UgZ2VuZXJhdGUgbWFjaGluZQrCoMKgwqAgY29kZS4g RS5nLiwgSklUIGNvZGUgZnJvbSBKYXZhIGJ5dGUgY29kZS4gSW4gdGhpcyBjYXNlLCBpZiB0aGUg c291cmNlCsKgwqAgY29kZSBpcyBpbiBhIHNpZ25lZCBmaWxlLCB3ZSBoYXZlIGEgbWVhc3VyZSBv ZiB0cnVzdCBvbiB0aGUgc291cmNlLgrCoMKgIElmIHRoZSBrZXJuZWwgdXNlcyBpdHMgb3duIHRy dXN0ZWQgY29kZSBnZW5lcmF0b3IgdG8gZ2VuZXJhdGUgdGhlCsKgwqAgb2JqZWN0IGNvZGUgZnJv bSB0aGUgc291cmNlIGNvZGUsIHRoZW4gdGhhdCBvYmplY3QgY29kZSBoYXMgYQrCoMKgIG1lYXN1 cmUgb2YgdHJ1c3QuCgpBbnl3YXksIHRoZXNlIGFyZSBqdXN0IGV4YW1wbGVzLiBUaGUgcHJpbmNp cGxlIGlzIC0gaWYgd2UgY2FuIGlkZW50aWZ5CmR5bmFtaWMgY29kZSB0aGF0IGhhcyBhIGNlcnRh aW4gbWVhc3VyZSBvZiB0cnVzdCwgY2FuIHRoZSBrZXJuZWwKcGVybWl0IHRoZWlyIGV4ZWN1dGlv bj8KCkFsbCBvdGhlciBjb2RlIHRoYXQgY2Fubm90IHJlYWxseSBiZSB0cnVzdGVkIGJ5IHRoZSBr ZXJuZWwgY2Fubm90IGJlCmV4ZWN1dGVkIHNhZmVseSAodW5sZXNzIHdlIGZpbmQgc29tZSBzYWZl IGFuZCBlZmZpY2llbnQgd2F5IHRvCnNhbmRib3ggc3VjaCBjb2RlIGFuZCBsaW1pdCB0aGUgZWZm ZWN0cyBvZiB0aGUgY29kZSB0byB3aXRoaW4KdGhlIHNhbmRib3gpLiBUaGlzIGlzIG91dHNpZGUg dGhlIHNjb3BlIG9mIHdoYXQgSSBhbSBkb2luZy4KCj4+IFNvLCB0aGUgcHJvYmxlbSBvZiBleGVj dXRpbmcgZHluYW1pYyBjb2RlIHdoZW4gc2VjdXJpdHkgc2V0dGluZ3MgYXJlCj4+IHJlc3RyaWN0 aXZlIGNhbm5vdCBiZSBzb2x2ZWQgaW4gdXNlcmxhbmQuIFRoZSBvbmx5IG9wdGlvbiBJIGNhbiB0 aGluayBvZiBpcwo+PiB0byBoYXZlIHRoZSBrZXJuZWwgcHJvdmlkZSBzdXBwb3J0IGZvciBkeW5h bWljIGNvZGUuIEl0IG11c3QgaGF2ZSBvbmUKPj4gb3IgbW9yZSBzYWZlLCB0cnVzdGVkIGNvZGUg Z2VuZXJhdGlvbiBjb21wb25lbnRzIGFuZCBhbiBBUEkgdG8gdXNlCj4+IHRoZSBjb21wb25lbnRz Lgo+Pgo+PiBNeSBnb2FsIGlzIHRvIGludHJvZHVjZSBhbiBBUEkgYW5kIHN0YXJ0IG9mZiBieSBz dXBwb3J0aW5nIHNpbXBsZSwgcmVndWxhcgo+PiB0cmFtcG9saW5lcyB0aGF0IGFyZSB3aWRlbHkg dXNlZC4gVGhlbiwgZXZvbHZlIHRoZSBmZWF0dXJlIG92ZXIgYSBwZXJpb2QKPj4gb2YgdGltZSB0 byBpbmNsdWRlIG90aGVyIGZvcm1zIG9mIGR5bmFtaWMgY29kZSBzdWNoIGFzIEpJVCBjb2RlLgo+ IEkgdGhpbmsgdGhhdCB5b3UncmUgbWFraW5nIGEgbGVhcCB0byB0aGlzIGFwcHJvYWNoIHdpdGhv dXQgc3VmZmljaWVudAo+IGp1c3RpZmljYXRpb24gdGhhdCBpdCBhY3R1YWxseSBzb2x2ZXMgdGhl IHByb2JsZW0sIGFuZCBJIGJlbGlldmUgdGhhdAo+IHRoZXJlIHdpbGwgYmUgQUJJIGlzc3VlcyB3 aXRoIHRoaXMgYXBwcm9hY2ggd2hpY2ggY2FuIGJlIHNpZGVzdGVwcGVkIGJ5Cj4gb3RoZXIgcG90 ZW50aWFsIGFwcHJvYWNoZXMuCj4KPiBUYWtpbmcgYSBzdGVwIGJhY2ssIEkgdGhpbmsgaXQncyBu ZWNlc3NhcnkgdG8gYmV0dGVyIGRlc2NyaWJlIHRoZQo+IHByb2JsZW0gYW5kIGNvbnN0cmFpbnRz IHRoYXQgeW91IGJlbGlldmUgYXBwbHkgYmVmb3JlIGF0dGVtcHRpbmcgdG8KPiBqdXN0aWZ5IGFu eSBwb3RlbnRpYWwgc29sdXRpb24uCgpJIHRvdGFsbHkgYWdyZWUgdGhhdCBtb3JlIGp1c3RpZmlj YXRpb24gaXMgbmVlZGVkIGFuZCBJIGFtIHdvcmtpbmcgb24gaXQuCgpBcyBJIGhhdmUgbWVudGlv bmVkIGFib3ZlLCBJIGludGVuZCB0byBoYXZlIHRoZSBrZXJuZWwgZ2VuZXJhdGUgY29kZQpvbmx5 IGlmIHRoZSBjb2RlIGdlbmVyYXRpb24gaXMgc2ltcGxlIGVub3VnaC4gRm9yIG1vcmUgY29tcGxp Y2F0ZWQgY2FzZXMsCkkgcGxhbiB0byB1c2UgYSB1c2VyLWxldmVsIGNvZGUgZ2VuZXJhdG9yIHRo YXQgaXMgZm9yIGV4Y2x1c2l2ZSBrZXJuZWwgdXNlLgpJIGhhdmUgeWV0IHRvIHdvcmsgb3V0IHRo ZSBkZXRhaWxzIG9uIGhvdyB0aGlzIHdvdWxkIHdvcmsuIE5lZWQgdGltZS4KCj4KPiBbLi4uXQo+ Cj4+Cj4+IDEuIENyZWF0ZSBhIHRyYW1wb2xpbmUgYnkgY2FsbGluZyB0cmFtcGZkX2NyZWF0ZSgp Cj4+IDIuIFNldCB0aGUgcmVnaXN0ZXIgYW5kL29yIHN0YWNrIGNvbnRleHRzIGZvciB0aGUgdHJh bXBvbGluZS4KPj4gMy4gbW1hcCgpIHRoZSB0cmFtcG9saW5lIHRvIGdldCBhbiBhZGRyZXNzCj4+ IDRhLiBSZXRyaWV2ZSB0aGUgcmVnaXN0ZXIgYW5kIHN0YWNrIGNvbnRleHQgZm9yIHRoZSB0cmFt cG9saW5lIGZyb20gdGhlCj4+IMKgwqDCoMKgwqAga2VybmVsIGFuZCBjaGVjayBpZiBhbnl0aGlu ZyBoYXMgYmVlbiBhbHRlcmVkLiBJZiB5ZXMsIGFib3J0Lgo+PiA0Yi4gSW52b2tlIHRoZSB0cmFt cG9saW5lIHVzaW5nIHRoZSBhZGRyZXNzCj4gQXMgYWJvdmUsIHlvdSBjYW4gYWxzbyBkbyB0aGlz IHdoZW4gdXNpbmcgbXByb3RlY3QgdG9kYXksIHRyYW5zaXRpb25pbmcKPiB0aGUgYnVmZmVyIFJX WCAtPiBSLS0gLT4gUi1YLiBJZiB5b3UncmUgd29ycmllZCBhYm91dCBzdWJzZXF1ZW50Cj4gbW9k aWZpY2F0aW9uIHZpYSBhbiBhbGlhcywgYSBzZWFsZWQgbWVtZmQgd291bGQgd29yayBhc3N1bWlu ZyB0aGF0IGNhbgo+IGJlIG1hcHBlZCBSLVguCgpUaGlzIGlzIGEgdmlvbGF0aW9uIG9mIFdeWCBh bmQgdGhlIHNlY3VyaXR5IHN1YnN5c3RlbSBtdXN0IGJlIGZpeGVkCmlmIGl0IHBlcm1pdHMgaXQu Cgo+IFRoaXMgYXBwcm9hY2ggaXMgYXBwbGljYWJsZSB0byB0cmFtcGZkLCBidXQgaXQgaXNuJ3Qg YSBzcGVjaWZpYyBiZW5lZml0Cj4gb2YgdHJhbXBmZC4KPgo+IFsuLi5dIAo+Cj4+Pj4gLSBJbiB0 aGUgZnV0dXJlLCBpZiB0aGUga2VybmVsIGNhbiBiZSBlbmhhbmNlZCB0byB1c2UgYSBzYWZlIGNv ZGUKPj4+PiAgIGdlbmVyYXRpb24gY29tcG9uZW50LCB0aGF0IGNvZGUgY2FuIGJlIHBsYWNlZCBp biB0aGUgdHJhbXBvbGluZSBtYXBwaW5nCj4+Pj4gICBwYWdlcy4gVGhlbiwgdGhlIHRyYW1wb2xp bmUgaW52b2NhdGlvbiBkb2VzIG5vdCBoYXZlIHRvIGluY3VyIGEgdHJpcAo+Pj4+ICAgaW50byB0 aGUga2VybmVsLgo+Pj4+Cj4+Pj4gLSBBbHNvLCBpZiB0aGUga2VybmVsIGNhbiBiZSBlbmhhbmNl ZCB0byB1c2UgYSBzYWZlIGNvZGUgZ2VuZXJhdGlvbgo+Pj4+ICAgY29tcG9uZW50LCBvdGhlciBm b3JtcyBvZiBkeW5hbWljIGNvZGUgc3VjaCBhcyBKSVQgY29kZSBjYW4gYmUKPj4+PiAgIGFkZHJl c3NlZCBieSB0aGUgdHJhbXBmZCBmcmFtZXdvcmsuCj4+PiBJIGRvbid0IHNlZSB3aHkgaXQncyBu ZWNlc3NhcnkgZm9yIHRoZSBrZXJuZWwgdG8gZ2VuZXJhdGUgY29kZSBhdCBhbGwuCj4+PiBJZiB0 aGUgdHJhbXBmZCBjcmVhdGlvbiByZXF1ZXN0cyBjYW4gYmUgdHJ1c3RlZCwgd2hhdCBwcmV2ZW50 cyB0cnVzdGluZwo+Pj4gYSBzZWFsZWQgc2V0IG9mIGluc3RydWN0aW9ucyBnZW5lcmF0ZWQgaW4g dXNlcnNwYWNlPwo+PiBMZXQgdXMgY29uc2lkZXIgYSBzeXN0ZW0gaW4gd2hpY2g6Cj4+IMKgwqDC oCAtIGEgcHJvY2VzcyBpcyBub3QgcGVybWl0dGVkIHRvIGhhdmUgcGFnZXMgd2l0aCBib3RoIHdy aXRlIGFuZCBleGVjdXRlCj4+IMKgwqDCoCAtIGEgcHJvY2VzcyBpcyBub3QgcGVybWl0dGVkIHRv IG1hcCBhbnkgZmlsZSBhcyBleGVjdXRhYmxlIHVubGVzcyBpdAo+PiDCoMKgwqDCoMKgIGlzIHBy b3Blcmx5IHNpZ25lZC4gSW4gb3RoZXIgd29yZHMsIGNyeXB0b2dyYXBoaWNhbGx5IHZlcmlmaWVk Lgo+Pgo+PiBUaGVuLCB0aGUgcHJvY2VzcyBjYW5ub3QgZXhlY3V0ZSBhbnkgY29kZSB0aGF0IGlz IHJ1bnRpbWUgZ2VuZXJhdGVkLgo+PiBUaGF0IGluY2x1ZGVzIHRyYW1wb2xpbmVzLiBPbmx5IHRy YW1wb2xpbmUgY29kZSB0aGF0IGlzIHBhcnQgb2YgcHJvZ3JhbQo+PiB0ZXh0IGF0IGJ1aWxkIHRp bWUgd291bGQgYmUgcGVybWl0dGVkIHRvIGV4ZWN1dGUuCj4+Cj4+IEluIHRoaXMgc2NlbmFyaW8s IHRyYW1wZmQgcmVxdWVzdHMgYXJlIGNvbWluZyBmcm9tIHNpZ25lZCBjb2RlLiBTbywgdGhleQo+ PiBhcmUgdHJ1c3RlZCBieSB0aGUga2VybmVsLiBCdXQgdHJhbXBvbGluZSBjb2RlIGNvdWxkIGJl IGR5bmFtaWNhbGx5IGdlbmVyYXRlZC4KPj4gVGhlIGtlcm5lbCB3aWxsIG5vdCB0cnVzdCBpdC4K PiBJIHRoaW5rIHRoaXMgYSB2ZXJ5IGhhbmQtd2F2eSBhcmd1bWVudCwgYXMgaXQgc3VnZ2VzdHMg dGhhdCBnZW5lcmF0ZWQKPiBjb2RlIGlzIG5vdCB0cnVzdGVkLCBidXQgd2hhdCBpcyBlZmZlY3Rp dmVseSBhIGdlbmVyYXRlZCBieXRlY29kZSBpcy4KPiBJZiBjZXJ0YWluIGNvZGVnZW4gY2FuIGJl IHRydXN0ZWQsIHRoZW4gd2UgY2FuIGFkZCBtZWNoYW5pc21zIHRvIHBlcm1pdAo+IHRoZSByZXN1 bHRzIG9mIHRoaXMgdG8gYmUgbWFwcGVkIHIteC4gSWYgdGhhdCBpcyBub3QgcG9zc2libGUsIHRo ZW4gdGhlCj4gc2FtZSBhcmd1bWVudCBzYXlzIHRoYXQgdHJhbXBmZCByZXF1ZXN0cyBjYW5ub3Qg YmUgdHJ1c3RlZC4KClRoZXJlIGlzIGNlcnRhaW5seSBhbiBleHRyYSBtZWFzdXJlIG9mIHRydXN0 IGluIGNvZGUgdGhhdCBpcyBpbgpzaWduYXR1cmUgdmVyaWZpZWQgZmlsZXMgYXMgY29tcGFyZWQg dG8gY29kZSB0aGF0IGlzIGdlbmVyYXRlZApvbiB0aGUgZmx5LiBBdCBsZWFzdCwgd2Uga25vdyB0 aGF0IHRoZSBwbGFjZSBmcm9tIHdoaWNoIHdlIGdldAp0aGF0IGNvZGUgaXMga25vd24gYW5kIHRo ZSBmaWxlIHdhcyBnZW5lcmF0ZWQgYXQgYnVpbGQgdGltZQphbmQgbm90IGhhY2tlciBnZW5lcmF0 ZWQuIFN1Y2ggZmlsZXMgY291bGQgc3RpbGwgY29udGFpbiBhIHZ1bG5lcmFiaWxpdHkuCkJ1dCBi ZWNhdXNlIHRoZXNlIGZpbGVzIGFyZSBtYWludGFpbmVkIGJ5IGEga25vd24gc291cmNlLCBjaGFu Y2VzCmFyZSB0aGF0IHRoZXJlIGlzIG5vdGhpbmcgbWFsaWNpb3VzIGluIHRoZW0uCgpUaGFua3Mu CgpNYWRoYXZhbgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5p bmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8v bGludXgtYXJtLWtlcm5lbAo=