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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8C2D0C46CD2 for ; Tue, 2 Jan 2024 14:49:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=RUCPMJt19YZkEUCCGcDaPBue3zIaogfUIYy+NV6LJrw=; b=3/RFbT6Dn0whOH LwCdo8PzCuAUXQFeDJ0WgKYQW5I8QEErqrx041RX8io4FdAOkJrdRQMhC3XkaGWUG+DORBY3zmX2k 6ZrrrmVQ8k2m5oh8CCP9wM7nsQhHd7Gxa3/dglLBWpXKPDl1LjjddbEE1/aBJAJc0CACHPvHU3OdD qFNGyp7/gae+sRAj7dHlHbP3sZO9MukxFu0Dr3En+OjervfJJ1zYxXSnmWz3t4nv2ec0GAlBQrZ/y Pt8qZ9Osw4mZjZUy6Y4NdwNG9uOXtHOQGznla0bvIFZjqhJbeSa0RhjSrdgz90sxU95mnCF2veh/5 YqTUeso5o2bZqC9iVQWg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rKg4j-008Hc0-1w; Tue, 02 Jan 2024 14:49:01 +0000 Received: from mail-dm6nam10on20620.outbound.protection.outlook.com ([2a01:111:f400:7e88::620] helo=NAM10-DM6-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rKg4f-008Hak-34 for linux-arm-kernel@lists.infradead.org; Tue, 02 Jan 2024 14:48:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jL7m/BNK3KSNE20jROMOZw6Cw75GTXWRT+bXPNIQbTKVMzSNAXkrzGCnwbO1s7GhWMCsPjirPNGdawbtWOfO4mLcJcCH4hA1ZQVh12+EGrId0Cn4PI+233qNSk7Uw+RZyPJY3eV4lCRdQ4vXY+O3T6/scr0DaN+aKymyMHl00DCC3x49TMj0wzy/jt01eJPNt07034mBGONi7lB1KxIuGpm+0ccNeWeUFNjLPdMnJmPi2WjmVs7ABi9/oAXZLY9WSIeMFzMoc5xvi2LdKI86IlwLW9bo52BsBGrza32D/BZDUAP88VPsdWdweVNkOzYqSpeMqJRjHshLUY/47sKYbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=pmlFFhdqVTN5w3Q7u0ayR6ykW44X5ROoXv9UIRzehRQ=; b=Z07dw62Qfu+jywuDXv/qEhXEk1GARbK2sZkCTBpP5/Kx1OhhhkcIZv4iDRsE6QK9lq3uzp3YDWaFVlDVG0TQDGlxlvd8nTF+3n0z3jhR/fpB+B9pSxeDqbZSDCOhj68BQFueR9MGko7Se//Z5MOdEancsdh6MpfmeXla/74HHSfeqwPB542K3Rlj1skepPf/qTE0REoZdDk87IgIJ5+QG6VUfmGGAiIJ17MrP6YFSuH5pBOXX5mpNfjVK7L2NeaKRnHul/EZ8WTqJw0bwfD6nAcTL54jU0i8uMiTxNly3dBkOkCilmdYrjs9u1/mXsk/LNv4hIs8QKShQhv7AAtQKQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pmlFFhdqVTN5w3Q7u0ayR6ykW44X5ROoXv9UIRzehRQ=; b=i5PCoDqOU5Eq8RyFsvcjEyCw2X90VSfnkaNh83PK4LhGDrL2CiASCs+/H3I6Xr4FD+buUyITAAFldL7NnKPW8X4hqqSVJiqOLTVTV4cSklPVi+qumhQ7UGKYz2Yk4u/Smdwbmhh2CXJ0+VPOAUzrYKqzMC/zsi0dx2BKMOrIxFEaqM5pgqxepwjUBA+aivhN2Z5oiPAj9b7HxT6ddvZCRrh6OF7ybjBJQbK/ChyNfgPs+2llC8lmfOU8Liz4JKVwIrvLm5BwoGk5CHuAlRyJcsHj3g6CFKZ/UCA/QyjzZ/79gWvoEMpCX7U1NLssERRks+gIKY/AlbezsNrEQVJX+w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) by CYYPR12MB8940.namprd12.prod.outlook.com (2603:10b6:930:bd::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7135.25; Tue, 2 Jan 2024 14:48:46 +0000 Received: from LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::60d4:c1e3:e1aa:8f93]) by LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::60d4:c1e3:e1aa:8f93%4]) with mapi id 15.20.7135.023; Tue, 2 Jan 2024 14:48:46 +0000 Date: Tue, 2 Jan 2024 10:48:45 -0400 From: Jason Gunthorpe To: Michael Shavit Cc: iommu@lists.linux.dev, Joerg Roedel , linux-arm-kernel@lists.infradead.org, Robin Murphy , Will Deacon , Nicolin Chen Subject: Re: [PATCH 04/19] iommu/arm-smmu-v3: Make STE programming independent of the callers Message-ID: <20240102144845.GD50406@nvidia.com> References: <20231018130455.GU3952@nvidia.com> <20231020113918.GD3952@nvidia.com> Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: MN2PR11CA0027.namprd11.prod.outlook.com (2603:10b6:208:23b::32) To LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV2PR12MB5869:EE_|CYYPR12MB8940:EE_ X-MS-Office365-Filtering-Correlation-Id: e60a12af-021c-49ae-d9b6-08dc0ba1ec1d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cokdmONXmr07sW8G6FcU8AYWWO1G/YepqZhLdzbrjQgig8tULZXjCalkYgtKEgQrmwRFIqanoztYuVnlOXI9XiFvDqV7mld+K4vK2ReULpYSM0Vijcv3Ry8k/QGZW5L+OkVgCOOjUYDVp0HUcYTJhANfIy6b6WRtXtNhqrnDCK34m7wu1v2eH7Tbf6FEipFnpd9MLQURpUVU4PTBvapD8pUF1HeiHnjx6HRT+BQGU0FPKqacSnGxIWsReeP9BFjF3LlggyWenYHgPejWarFuyu/46BNlJ2aX0Pk2UotrFM83tyrk4CpEGf+co7dfMCXYLRVlgciGJ+wLSAW9nZLl0s/s1DZAzFZqhxHFaGAbW7++0sVLX6g+NBromjVAbMzvtlqzC88gDiSdwd6wfR0cQBPlcetbG8f3qhHg/JHj6pZT8LO+TihKuZ+Gwgjb1n2Y0N30QOL+otu74AztztHOCf8BZVtq2OHzrshM/1Dv1GDT+wTNgl3M6KLPdyDnBaEiz7M0XLRUz+xbv7/zpx5h2zm8zCEiLOXavZ5CUP4aM2nKKOF+Ps0MHcdMyD9IWjq3 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV2PR12MB5869.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(136003)(366004)(396003)(39860400002)(376002)(230922051799003)(1800799012)(186009)(451199024)(64100799003)(38100700002)(36756003)(2906002)(83380400001)(41300700001)(5660300002)(86362001)(478600001)(33656002)(6486002)(6506007)(53546011)(6512007)(4326008)(6916009)(66476007)(26005)(8936002)(8676002)(66946007)(66556008)(1076003)(54906003)(316002)(2616005)(107886003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MVVWdHQ0YU8vdjd4aFA0YS9VSHljcTc5bm8wOExJOVQxTjVwYW54MkhzTmJR?= =?utf-8?B?bllaNHdXTldiQVRLNENkaDQ0RDRNSCtIZnVybXRTTFVUUU4zQy92aVpCM1I1?= =?utf-8?B?YnV4Vk04bklRdkFSb2tybytCd1RuQ3dEK003YXJRMkYvbytFTHF4Q3JIZ1By?= =?utf-8?B?MGxhdE5OeGhjY0RXRlFEeHVxd0RheElJTjRyQi9ucFRYeDVqaVU0dDNxenlI?= =?utf-8?B?a1gxSUNzVkZvZWgxT0NiTStURFVrRjhiQzdYSTJqYk1SWTZTRmJCdlRRRE1V?= =?utf-8?B?Nlp2QXRyMW9WelZldW93R0ZRU0Zya1VXd1BnbWUrdmg5ck5maGhaTVNuNUh4?= =?utf-8?B?aGhQclYwZTZiaXVTT2hVcWp5S1ErOGhRb1BkWmhlSXl4WTI3MS8zZTZISCtO?= =?utf-8?B?QmxaemZXRFMxSWtUbGx3eDRONHJxaVdYeTlEUlhjKzJiR2U1a2NWQ0ltdnBx?= =?utf-8?B?MHJZUzVLOWovdTRtVW1xQ3RCQjBrY2hBNGZsS2xBQXVhSG9FQmJPaHNmVldv?= =?utf-8?B?Q3JWdWxvV2hYSFN6Mm5Mek1QdzNjVW9nVG5ickdsVHFESjU5MW5NeDg1WXdr?= =?utf-8?B?WWpoazJZdkg0QkRWQ0ErenNmM0gvQXE0MzVxRTRnQnpIc3g0a1VzbFY4THFU?= =?utf-8?B?dlp5TzBDMXE0VkZqd001SlFPVk53M0NMTDJyb1dVQmFFRXNwdEF2dWRCVG4z?= =?utf-8?B?NWRncDhWK0JCbnd2RVVFVmRLbzhsZ1VIWWpwYUNueWszL2lITGgrZW5CNDhF?= =?utf-8?B?TnRCeXBXc1JBL0FCK0ZCK0pLQTBTQVBKWDdCN0gxdGwvUzhlZ3pBWmlmSVRI?= =?utf-8?B?SXFLWVlLN3phelN4eUZKMVkvKy8rK3ZtWWluYlN2SWdXU2UrNXBRbmdmL0JW?= =?utf-8?B?MGYyVGN4T2NIeUM2SUFuSEh3eHFocnY3Vm1DM3kzblRBRDE2L3VRREt4ajdB?= =?utf-8?B?RUNmUWVvZE5PemxSVjM3aGpkMmJyQWhDN1F2T01McUNDak1xQ29jWUQwaWJE?= =?utf-8?B?OXlpWlJoY2hOVUpDa3M4NW5xdWVGRk5wYkhhREZSWlJFVFVoeFJ0ZXBRaTh1?= =?utf-8?B?dFhKZ2FsWVlTMVB0dlB4Y1pqMVJJTWpQbEVQbjlkWjZDellGUFRCR25JMDJL?= =?utf-8?B?WlJIT1krekFSNlZELzRnZDVwbExvWExGdFdhNVpUbGdCL0w2bXBsQWF0ZTNj?= =?utf-8?B?dmJhYXUzNWRZdWV3VFlTa3JHUW5iLzFhVE9OOUUrUmMrV0REcWRTLy9VaWxY?= =?utf-8?B?WEhkSkNHU0ZNT0V2SzBRM3RXWXpyTFl6d3FQNmNKWkUwOURubmVXaUFoS0J4?= =?utf-8?B?bFpwakF0eVplSlIrb3FUaHJLZG5jblJNWGVmTVFUUkJobzJkNEw5WUJLbkRB?= =?utf-8?B?UE9ieDY1OGNFd0d5REIyY2FxMXhoaWdKSDZGN1AzaGdKYm9GT3N3Y1hXUEF6?= =?utf-8?B?N1JWQzZRRmhCWTgvRFZOMWZXdFdxYlBkVklZblBHVkVWNW5YVzMwR2RVVTZv?= =?utf-8?B?T0VvVzZZb2FXM3RYcHpwOTYxQUk2YlZlVi9OY05KZm14OHRIQXRjS2dHUVl5?= =?utf-8?B?Z29xSWJBaVJEMktldENXemoyQTcyY01aVHJIVGtTbWowVzhhT0Y4ZFNEVDNS?= =?utf-8?B?TFcvRE9BWDJpYmltYTFncFV3b2FDZUo5L2Y2Q3hOamRFdThDb3RkbTVoMHdK?= =?utf-8?B?V09XRHlKbjdKMnhsaERMeEFQWmZSS0EwUGZ3SFhFK0dQMlRQcklHZG4reXo2?= =?utf-8?B?QmFWaGZjTTVnZFdXZWJKK0xRMm5uMUEwWXNUcCsxQTFoMFNkVzMxcHNjNExJ?= =?utf-8?B?dTZ4c1lYcmJYU2hpa2RuYVNZWXpDUzNCNDBIVHNTWU1XbW9Xc3RxOEt0d1Yv?= =?utf-8?B?Ti9HVWEzS0E3aVVjcWhHMkthSDBWVkNiZHYzVkZLbVN3VlhEMVh2VWdwT0Jr?= =?utf-8?B?Mk5LTUdJMW5mQy9UOXBPQlFPUkdYRWV6YWR5bHVNUGYvVTJQYUs4MmNtY01Q?= =?utf-8?B?R2JJbnhJMW5jcmd0Z1JJUmdrenJsOVRtZWM0ZlhUZ29GRDFpYU92TUVSL3o1?= =?utf-8?B?TVpaSjZRdllna2g1Z1JkNzFneE96RHJ5MTQ1b0J2MU1qRS9qbDZVTFlmeW16?= =?utf-8?Q?qiVw=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: e60a12af-021c-49ae-d9b6-08dc0ba1ec1d X-MS-Exchange-CrossTenant-AuthSource: LV2PR12MB5869.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jan 2024 14:48:45.9987 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Qz5vienD4ItMBvP++SPswCiWJqcdITEaeoFcYgsTCcxfn/5ZUCSR+TjyvqKPOomt X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8940 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240102_064857_992587_A1677746 X-CRM114-Status: GOOD ( 24.60 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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 T24gVHVlLCBKYW4gMDIsIDIwMjQgYXQgMDQ6MTM6MjhQTSArMDgwMCwgTWljaGFlbCBTaGF2aXQg d3JvdGU6Cj4gT24gVHVlLCBEZWMgMTksIDIwMjMgYXQgOTo0MuKAr1BNIE1pY2hhZWwgU2hhdml0 IDxtc2hhdml0QGdvb2dsZS5jb20+IHdyb3RlOgo+IC4uLgo+ID4gKyAgICAgICBpZiAoaHdlaWdo dDgoZW50cnlfcXdvcmRzX3VzZWRfZGlmZikgPiAxKSB7Cj4gPiArICAgICAgICAgICAgICAgLyoK PiA+ICsgICAgICAgICAgICAgICAgKiBJZiB0cmFuc2l0aW9uaW5nIHRvIHRoZSB0YXJnZXQgZW50 cnkgd2l0aCBhIHNpbmdsZSBxd29yZAo+ID4gKyAgICAgICAgICAgICAgICAqIHdyaXRlIGlzbid0 IHBvc3NpYmxlLCB0aGVuIHdlIG11c3QgZmlyc3QgdHJhbnNpdGlvbiB0byBhbgo+ID4gKyAgICAg ICAgICAgICAgICAqIGludGVybWVkaWF0ZSBlbnRyeS4gVGhlIGludGVybWVkaWF0ZSBlbnRyeSBt YXkgZWl0aGVyIGJlIGFuCj4gPiArICAgICAgICAgICAgICAgICogZW50cnkgdGhhdCBtZWxkcyBi aXRzIG9mIHRoZSB0YXJnZXQgZW50cnkgaW50byB0aGUgY3VycmVudAo+ID4gKyAgICAgICAgICAg ICAgICAqIGVudHJ5IHdpdGhvdXQgZGlzcnVwdGluZyB0aGUgaGFyZHdhcmUsIG9yIGEgYnJlYWtp bmcgZW50cnkgaWYKPiA+ICsgICAgICAgICAgICAgICAgKiBhIGhpdGxlc3MgdHJhbnNpdGlvbiB0 byB0aGUgdGFyZ2V0IGlzIGltcG9zc2libGUuCj4gPiArICAgICAgICAgICAgICAgICovCj4gPiAr Cj4gPiArICAgICAgICAgICAgICAgLyoKPiA+ICsgICAgICAgICAgICAgICAgKiBDb21wdXRlIGEg c3RhZ2luZyBlbnRyeSB0aGF0IGhhcyBhbGwgdGhlIGJpdHMgY3VycmVudGx5Cj4gPiArICAgICAg ICAgICAgICAgICogdW51c2VkIGJ5IEhXIHNldCB0byB0aGVpciB0YXJnZXQgdmFsdWVzLCBzdWNo IHRoYXQgY29taXR0aW5nCj4gPiArICAgICAgICAgICAgICAgICogaXQgdG8gdGhlIGVudHJ5IHRh YmxlIHdvdWRuJ3QgZGlzcnVwdCB0aGUgaGFyZHdhcmUuCj4gPiArICAgICAgICAgICAgICAgICov Cj4gPiArICAgICAgICAgICAgICAgbWVtY3B5KHN0YWdpbmdfZW50cnksIGN1ciwgd3JpdGVyLT5l bnRyeV9sZW5ndGgpOwo+ID4gKyAgICAgICAgICAgICAgIHdyaXRlci0+b3BzLnNldF91bnVzZWRf Yml0cyhzdGFnaW5nX2VudHJ5LCB0YXJnZXQpOwo+ID4gKwo+ID4gKyAgICAgICAgICAgICAgIGVu dHJ5X3F3b3Jkc191c2VkX2RpZmYgPQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVy LT5vcHMuZ2V0X3VzZWRfcXdvcmRfZGlmZl9pbmRleGVzKHN0YWdpbmdfZW50cnksCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGFyZ2V0KTsKPiA+ICsgICAgICAgICAgICAgICBpZiAoaHdlaWdodDgoZW50cnlfcXdvcmRz X3VzZWRfZGlmZikgPiAxKSB7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAvKgo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICogTW9yZSB0aGFuIDEgcXdvcmQgaXMgbWlzbWF0Y2hlZCBi ZXR3ZWVuIHRoZSBzdGFnaW5nCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgKiBhbmQgdGFy Z2V0IGVudHJ5LiBBIGhpdGxlc3MgdHJhbnNpdGlvbiB0byB0aGUgdGFyZ2V0Cj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgKiBlbnRyeSBpcyBub3QgcG9zc2libGUuIFNldCB0aGUgc3RhZ2lu ZyBlbnRyeSB0byBiZQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICogZXF1YWwgdG8gdGhl IHRhcmdldCBlbnRyeSwgYXBhcnQgZnJvbSB0aGUgViBiaXQncwo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICogcXdvcmQuIEFzIGxvbmcgYXMgdGhlIFYgYml0IGlzIGNsZWFyZWQgZmlyc3Qg dGhlbgo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICogd3JpdGVzIHRvIHRoZSBzdWJzZXF1 ZW50IHF3b3JkcyB3aWxsIG5vdCBmdXJ0aGVyCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg KiBkaXNydXB0IHRoZSBoYXJkd2FyZS4KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAqLwo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgbWVtY3B5KHN0YWdpbmdfZW50cnksIHRhcmdldCwg d3JpdGVyLT5lbnRyeV9sZW5ndGgpOwo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgc3RhZ2lu Z19lbnRyeVswXSAmPSB+d3JpdGVyLT52X2JpdDsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAg IC8qCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgKiBBZnRlciBjb21pdHRpbmcgdGhlIHN0 YWdpbmcgZW50cnksIG9ubHkgdGhlIDB0aCBxd29yZAo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICogd2lsbCBkaWZmZXIgZnJvbSB0aGUgdGFyZ2V0Lgo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICovCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBlbnRyeV9xd29yZHNfdXNlZF9k aWZmID0gMTsKPiA+ICsgICAgICAgICAgICAgICB9Cj4gPiArCj4gPiArICAgICAgICAgICAgICAg LyoKPiA+ICsgICAgICAgICAgICAgICAgKiBDb21taXQgdGhlIHN0YWdpbmcgZW50cnkuIE5vdGUg dGhhdCB0aGUgaXRlcmF0aW9uIG9yZGVyCj4gPiArICAgICAgICAgICAgICAgICogbWF0dGVycywg YXMgd2UgbWF5IGJlIGNvbWl0dGluZyBhIGJyZWFraW5nIGVudHJ5IGluIHRoZQo+ID4gKyAgICAg ICAgICAgICAgICAqIG5vbi1oaXRsZXNzIGNhc2UuIFRoZSAwdGggcXdvcmQgd2hpY2ggaG9sZHMg dGhlIHZhbGlkIGJpdAo+ID4gKyAgICAgICAgICAgICAgICAqIG11c3QgYmUgd3JpdHRlbiBmaXJz dCBpbiB0aGF0IGNhc2UuCj4gPiArICAgICAgICAgICAgICAgICovCj4gPiArICAgICAgICAgICAg ICAgZm9yIChpID0gMDsgaSAhPSB3cml0ZXItPmVudHJ5X2xlbmd0aDsgaSsrKQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgV1JJVEVfT05DRShjdXJbaV0sIHN0YWdpbmdfZW50cnlbaV0pOwo+ ID4gKyAgICAgICAgICAgICAgIHdyaXRlci0+b3BzLnN5bmNfZW50cnkod3JpdGVyKTsKPiAKPiBS ZWFsaXplZCB3aGlsZSByZXBseWluZyB0byB5b3VyIGxhdGVzdCBlbWFpbCB0aGF0IHRoaXMgaXMg d3JvbmcgKGFuZAo+IHRoZSB1bml0LXRlc3QgYXMgd2VsbCEpLiBJdCdzIG5vdCBlbm91Z2ggdG8g anVzdCB3cml0ZSB0aGUgMHRoIHF3b3JkCj4gZmlyc3QgaWYgaXQncyBhIGJyZWFraW5nIGVudHJ5 LCBpdCBtdXN0IGFsc28gc3luYyBhZnRlciB0aGF0IDB0aCBxd29yZAo+IHdyaXRlLgoKUmlnaHQu CgpKYXNvbgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K bGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZy YWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGlu dXgtYXJtLWtlcm5lbAo=