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=-10.1 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE, SPF_PASS,USER_AGENT_SANE_1 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 17390C56202 for ; Thu, 26 Nov 2020 11:28:26 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 83304206CA for ; Thu, 26 Nov 2020 11:28:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="Le8S/s7+" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 83304206CA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 014AF6E8D0; Thu, 26 Nov 2020 11:28:25 +0000 (UTC) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2053.outbound.protection.outlook.com [40.107.220.53]) by gabe.freedesktop.org (Postfix) with ESMTPS id E1BA06E8D0; Thu, 26 Nov 2020 11:28:23 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BVOLclIclZPDIpyX8ibOj/ocPmbMQotpC80wb34oqpxnNtG4dr2Is1b9lmj0LBukp2shHX5fFWbZH2brc5IWwJ/XiJ6xYrPr+7Fe6m6RPfapwaKsiXv9dGtgkCe3fnlJnLoWCaDqbSF28z/U8feA30+0H0wwY7rOLkGOJRGATh9A6ZWOSA91b/qLV8aHy+xlLbEaw1rjMnB1FjPhrnoq3PF7YLfbVrGPEpegD2BoJzxwf5DHialNpHNGpOEW9Nnic9Zfx97/2eJo3yaFJU1HlBIBke+WRjJoqxPMhi0UztzAUT/0CwpSBF2ohRghsHywmjOiv3351WMcCmb7V3rLsQ== 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-SenderADCheck; bh=EmAG7Iq/f0ju+WZ7iBDfobLvXC1/4BWHAE7kWbiQQyk=; b=eZSYu34SIVoe47F0G1RRdLwlWljDHJIZjhVbfDWg3SpQjxukTCRvXRjQRy9YxSgy84qxCZx9zSCLLHGxlyUdv+c7b2aZBNPrfgJUYlSQuRWkc9cRHU3i7eizmRmItO8jqyCAIsxk8Jsc1mQ9MAVi/10bYJAM16WRTC+vLtZJqAfvgvILNsqa1yBT5O/T58VNR3Op5TpqfV825tkZ3Q2rnkGzeg2bi+cb9XFyz1PPBtNDBrMpiJvWX1kpjeNy4MJ2/yY+oRmo9fHjkr1fpFsQszbdUc4VL+0mURMPTYtGVAJaS5Li3xb2J9+W1quEKXaIRmCJ6He113giw3rIrL+JRQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EmAG7Iq/f0ju+WZ7iBDfobLvXC1/4BWHAE7kWbiQQyk=; b=Le8S/s7+aY0tbtUDor40Lpe3E+1TWjc8US/e5zrtb4YAx1vYq/YtmmP10zephbWxWQ2cyEgjdrEg+KXvUQ+ws4uymmoseORDTSRDyCH6lqVcYbWj7vYDvettDXddF2ZDS+OxfHXNUcBEJtMiJ/bdSvs+4kcjHVC10QttHTuoPvA= Authentication-Results: amd.com; dkim=none (message not signed) header.d=none;amd.com; dmarc=none action=none header.from=amd.com; Received: from MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) by BL0PR12MB4930.namprd12.prod.outlook.com (2603:10b6:208:1c8::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3611.20; Thu, 26 Nov 2020 11:28:22 +0000 Received: from MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::1ccc:8a9a:45d3:dd31]) by MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::1ccc:8a9a:45d3:dd31%7]) with mapi id 15.20.3589.032; Thu, 26 Nov 2020 11:28:22 +0000 Subject: Re: [PATCH 4/7] drm/radeon: Pin buffers while they are vmap'ed To: Daniel Vetter , Thomas Zimmermann References: <6d2ee787-0bf5-de1d-73af-7c87bad63cda@suse.de> <2431a0e1-7159-b3e7-e1ca-3e7f55c38d8a@amd.com> <20201124140937.GK401619@phenom.ffwll.local> <278a4498-bdde-402a-1cea-668e9683f7eb@suse.de> <2f8a252a-5413-4b75-a367-f6233121e36e@amd.com> <20201125103645.GU401619@phenom.ffwll.local> <20201125163251.GY401619@phenom.ffwll.local> <75385451-7969-e199-1a8e-f29fd08d5043@suse.de> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <6ac3b5d2-bb37-0058-864f-bed6bb5311a9@amd.com> Date: Thu, 26 Nov 2020 12:28:15 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 In-Reply-To: Content-Language: en-US X-Originating-IP: [2a02:908:1252:fb60:be8a:bd56:1f94:86e7] X-ClientProxiedBy: AM3PR05CA0105.eurprd05.prod.outlook.com (2603:10a6:207:1::31) To MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [IPv6:2a02:908:1252:fb60:be8a:bd56:1f94:86e7] (2a02:908:1252:fb60:be8a:bd56:1f94:86e7) by AM3PR05CA0105.eurprd05.prod.outlook.com (2603:10a6:207:1::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3611.20 via Frontend Transport; Thu, 26 Nov 2020 11:28:20 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 4b004b4b-aa0a-4a5b-1051-08d891fe6171 X-MS-TrafficTypeDiagnostic: BL0PR12MB4930: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Ch0CYMjH5qIG1oSbvQqwAdOGML67LILlid34MYsxBmntKL8fOqNjT64tX2aUsQlpzfV8QXGPL4xh+n5sGNrH7orUmtUUtwZ0c8o3MaiAtTVU2sMZ5rXpGE/ZQ615kH7QkrPn/OBw2Wb00xf+KXmaVGnFprlUMVS6ifcshnU/FEDGwN5QFZp74F+3xp+25vQ24g8NANLTS3YfG35+xcOzZR8KG9oD66ze4QOt/VYfii5p8b2A8tZJh6wlV5iogO5DGA6sxPJ/pcER73bTenj7vBWwEXMrf313P+RqPDbeluRodqW64upf97gsiUpiyr6+WTMgKyGHIMWY5UcK1QFNDLj6G6buEdy6XyPY2U2/ZJZQJnAI1chLipDVKZAiRRCOmKw3Ved/NFW6WWT04/QVjRVQGBZ++oeEP723bOkPKmw= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR12MB3775.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(346002)(396003)(136003)(366004)(39860400002)(6486002)(6666004)(31686004)(4326008)(31696002)(66574015)(478600001)(2616005)(8936002)(8676002)(186003)(86362001)(316002)(66946007)(5660300002)(16526019)(83380400001)(66556008)(54906003)(110136005)(52116002)(966005)(45080400002)(36756003)(53546011)(2906002)(66476007)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?WnAzajY4THMvRTZMbEpwWUVJMDMvOEJKTHRabnViN3k5QXB4dDgvSldDMzNy?= =?utf-8?B?d3Y2TTFYTC9BRjVpbkl6Qm04U3N0SjFaMHUzMHlzNDdQaVd2T2FvUHRXSkw5?= =?utf-8?B?Q0I2bmlENjkwOHNNY084cktSaXBYellSd28rcEtaM2xPVnh5bjRRNUZVQmZL?= =?utf-8?B?WjEzTDR6THhaeVREKy9KNEd5RjlBc2pCSTE4VGVDdTVra2IvTTIxWkxSZzNK?= =?utf-8?B?UnhUNTNkNDVhc3BzQ0l2MFVBTTR3STBDQ3ExNk82azJsNkRlTG9XZlRzdFp0?= =?utf-8?B?WFVNVlZmZVYxbmxwbVltWkxEWGoxQnhHaFZMaGtQMXVXZ0lNRGEwRC9VQVd6?= =?utf-8?B?YjM1VXptRlhGS0daYmNtUnBmby94TFBOQ3VGdkNvaTF0ZEtENlJFdTNzcGhU?= =?utf-8?B?MkRsUHhKdTExekZJRDA2cHBRVEwwNWIrNU1ha3RZMnBvV0hPaUx6YTVodkVL?= =?utf-8?B?V3BRdzA5aWZRbXJMb0VqbUpUMTk3Z1kxSDh0dEIraHIydTRSVnEzdzVJZVdl?= =?utf-8?B?VHFPbW5zMk16R0F2UFYzS0Q0REJoYmc2VzFOckpJRDRBYkhKQ1J4K0xzemhh?= =?utf-8?B?R3B3d0ljbnlwNGJpbklRU2QvczIvNHBac1dzM1ptbzBUcmRvaDRuMkV2SDJq?= =?utf-8?B?Smwzc1Z4Y1A4RWtJb3BmT3lCdlhsY1hyMEl3NDZtR0RpVitiVjRJUTJucGZm?= =?utf-8?B?RmNJUlQ5WFlzNnkxcFpZZkVCdkhhNkZEWlkvdDlqajZEbzZ3ODFCLzhCRW1V?= =?utf-8?B?V3JYYjlnZWtpbGhvb3VNK25URGdxQ1RBUGYrZURrVm1TeHFxZTgzVDdjRVVC?= =?utf-8?B?VXFMUi9YZHpSdHBxekt2RDYrWUlXYlU5cW5KMnF3WVlleEdibTB3dVFYZkpm?= =?utf-8?B?TXM1MVdJbXpNZFAzMzdPbTU3TXRNT2RSU3FTSnI5NkNTcWYxNEVlMjZ6L29r?= =?utf-8?B?dU5MczNFOEl1Q3llVG42a2lSeGNLeTNrcWFoYSs0b2FsSkVhREV1c1d0NGJu?= =?utf-8?B?K1pjWElZQVFFQzdnUWtTVExGWFFvRVllcU1BYjBIdmZ4WFNMZVZhRkJ5VGRZ?= =?utf-8?B?T1RwaTBCT0FKTEh3dXJ4MWVualpLdVk4TXR3VnFJbG0zc2ZSMEZZVUVHOFFP?= =?utf-8?B?b3MxcVg4M21zK0h5b1JIT01zTEk5RkJRbXZ0ZGtGMmlSei9CN0RESS9scjBk?= =?utf-8?B?dHFTTjE1NlplQjlGcWFxYzN3Zk9xa2ZJdUVrSjAzU1BaMURXL0Z1bDdhdDZW?= =?utf-8?B?VnpZVGYyREE5dmtrbkpjKzdHblpoODFTWWMzS2hZaHVmU0JqK2YzRDEyT3RN?= =?utf-8?B?Qis3RVNIUHdia1l1Z0RxWlRqZzJZVmdVWm9YNzZqZ0dRczhBYTNCcENFSkoy?= =?utf-8?B?Sjg3NUhLVGhsL3pnQW84OSt1djRNRVNOanhsaFNIUnFGQURHcHdkRnU2VDhl?= =?utf-8?Q?QLk5qyYg?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4b004b4b-aa0a-4a5b-1051-08d891fe6171 X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3775.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2020 11:28:22.3900 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: HqDbwEv7xtBOqVxI5ckN22NhMKRlAl85eRVlQw4imPDgnzY7oa3Te5qXBXr93H1E X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR12MB4930 X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Dave Airlie , Alex Deucher , dri-devel , amd-gfx list Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" QW0gMjYuMTEuMjAgdW0gMTI6MDQgc2NocmllYiBEYW5pZWwgVmV0dGVyOgo+IE9uIFRodSwgTm92 IDI2LCAyMDIwIGF0IDExOjE1IEFNIFRob21hcyBaaW1tZXJtYW5uIDx0emltbWVybWFubkBzdXNl LmRlPiB3cm90ZToKPj4gSGkKPj4KPj4gQW0gMjUuMTEuMjAgdW0gMTc6MzIgc2NocmllYiBEYW5p ZWwgVmV0dGVyOgo+Pj4gWy4uLl0KPj4+IEkgZ3Vlc3MgZnVsbCBsb2NraW5nIGlzIHJlcXVpcmVk IDotLyBJJ20gbm90IGV4YWN0bHkgc3VyZSBob3cgdG8gbWFrZSB0aGlzCj4+PiBoYXBwZW4gd2l0 aCB0aGUgY3VycmVudCBwbGV0aG9yYSBvZiBoZWxwZXJzIC4uLiBJIHRoaW5rIHdlIG5lZWQgYW4K Pj4+IF9sb2NrZWQgdmVyc2lvbiBvZiB2bWFwL3Z1bm1hcCBjYWxsYmFja3MgaW4gZHJtX2dlbV9v YmplY3RfZnVuY3MuCj4+IEkgdGhpbmsgd2UgbWlnaHQgYmUgYWJsZSB0byBnZXQgYXdheSB3aXRo b3V0IG5ldyBjYWxsYmFja3MuCj4+Cj4+IEkgbG9va2VkIHRocm91Z2ggdGhlIHNvdXJjZXMgdGhh dCBpbXBsZW1lbnQgYW5kIHVzZSB2bWFwLiBBbGwgdGhlCj4+IGltcGxlbWVudGF0aW9ucyBhcmUg d2l0aG91dCB0YWtpbmcgcmVzdiBsb2Nrcy4gRm9yIGxvY2tpbmcsIHdlIGNhbiB3cmFwCj4+IHRo ZW0gaW4gbG9jay91bmxvY2sgcGFpcnMuIEhhdmluZyBzb21ldGhpbmcgbGlrZSBkcm1fZ2VtX3Zt YXBfdW5sb2NrZWQoKQo+PiB0aGF0IGxvY2tzIGFuZCB2bWFwcyBzaG91bGQgbWFrZSB0aGlzIGVh c3kuCj4+Cj4+IEluIHRlcm1zIG9mIGltcGxlbWVudGF0aW9uLCBvbmx5IHZyYW0gaGVscGVycyBk byBhIHBpbittYXAgaW4gdGhlaXIgdm1hcAo+PiBjb2RlLiBBbmQgYXMgSSBtZW50aW9uZWQgYmVm b3JlLCB0aGlzIGlzIGFjdHVhbGx5IHdyb25nLiBUaGUgcGF0dGVybgo+PiBkYXRlcyBiYWNrIHRv IHdoZW4gdGhlIGNvZGUgd2FzIHN0aWxsIGluIGluZGl2aWR1YWwgZHJpdmVycy4gSXQncyB0aW1l Cj4+IHRvIGNsZWFuIHRoaXMgdXAuIFZyYW0gaGVscGVycyBjYW4gdXNlIGRybV9nZW1fdHRtX3Zt YXAoKSBpbnN0ZWFkLgo+Pgo+PiBGaW5hbGx5LCB0aGVyZSBhcmVuJ3QgdGhhdCBtYW55IHVzZXJz IG9mIHZtYXAuIEEgZmV3IGRyaXZlcnMgdXNlIGl0Cj4+IHdoaWxlIGJsaXR0aW5nIGZyYW1lYnVm ZmVycyBpbnRvIEhXIGJ1ZmZlcnMgYW5kIGFzdCBkb2VzIHNvbWUgcGVybWFuZW50Cj4+IG1hcHBp bmcgb2YgdGhlIGN1cnNvciBCTy4gQWxsIHRoaXMgaXMgdHJpdmlhbCB0byB0dXJuIGludG8gc21h bGwgcGFpcnMKPj4gb2YgbG9jayt2bWFwIGFuZCB2dW5tYXArdW5sb2NrLgo+Pgo+PiBUaGF0IGxl YXZlcyBnZW5lcmljIGZiZGV2LiBUaGUgc2hhZG93IGJ1ZmZlciBpcyBhbHNvIHRyaXZpYWwgdG8g Zml4LCBhcwo+PiBvdXRsaW5lZCBkdXJpbmcgdGhpcyBkaXNjdXNzaW9uLgo+Pgo+PiBUaGUgY29k ZSBmb3IgZmJkZXYgaW4gaGFyZHdhcmUgYnVmZmVycyBpcyBhIHNwZWNpYWwgY2FzZS4gSXQgdm1h cHMgdGhlCj4+IGJ1ZmZlciBkdXJpbmcgaW5pdGlhbGl6YXRpb24gYW5kIG9ubHkgdnVubWFwcyBp dCBkdXJpbmcgc2h1dGRvd24uIEFzCj4+IHRoaXMgaGFzIHdvcmtlZCBzbyBmYXIgd2l0aG91dCBs b2NraW5nLCBJJ2QgbGVhdmUgaXQgYXMgaXQgaXMgYW5kIHB1dCBhCj4+IGJpZyBjb21tZW50IG5l eHQgdG8gaXMuCgpQbGVhc2Uga2VlcCBpbiBtaW5kIHRoYXQgeW91IG9ubHkgbmVlZCB0byBncmFi IHRoZSBsb2NrIGlmIHRoZSBidWZmZXIgaXMgCm5vdCBwaW5uZWQgb3RoZXJ3aXNlLgoKSW4gb3Ro ZXIgd29yZHMgd2hlbiB3ZSBhcmUgc2Nhbm5pbmcgb3V0IGZyb20gdGhlIEJPIGl0IGlzIGd1YXJh bnRlZWQgCnRoYXQgaXQgY2FuJ3QgbW92ZSBhcm91bmQuCgpNYXliZSB0aGlzIG1ha2VzIHRoZSBj YXNlIGhlcmUgZWFzaWVyIHRvIGhhbmRsZS4KCj4+Cj4+IEhhcmR3YXJlIGZiZGV2IGJ1ZmZlcnMg aXMgb25seSByZXF1aXJlZCBieSBmZXcgZHJpdmVyczsgbmFtZWx5IHRob3NlCj4+IHRoYXQgcmVx dWlyZSB0aGUgQ09ORklHX0RSTV9GQkRFVl9MRUFLX1BIWVNfU01FTSBjb25maWcgb3B0aW9uIHRv IHdvcmsuCj4+IFdlIHNob3VsZCBjb25zaWRlciB0byBtYWtlIHRoZSBmYmRldiBzaGFkb3cgYnVm ZmVyIHRoZSBkZWZhdWx0IGFuZCBoYXZlCj4+IGRyaXZlcnMgb3B0LWluIGZvciB0aGUgaGFyZHdh cmUgYnVmZmVyLCBpZiB0aGV5IG5lZWQgaXQuCj4+Cj4+PiBBbmQgdGhlbiBkb2N1bWVudCB0aGF0 IGlmIHRoZSBjYWxsZXJzIG9mIHRoZSBfbG9ja2VkIHZlcnNpb24gd2FudHMgYQo+Pj4gcGVybWFu ZW50IG1hcHBpbmcsIGl0IGFsc28gbmVlZHMgdG8gcGluIGl0LiBQbHVzIEkgZ3Vlc3MgaWRlYWxs eSBpbXBsZW1lbnQKPj4+IHRoZSB1bmxvY2tlZC9wZXJtYW5lbnQgdmVyc2lvbnMgaW4gdGVybXMg b2YgdGhhdCwgc28gdGhhdCBkcml2ZXJzIG9ubHkKPj4+IGhhdmUgdG8gaW1wbGVtZW50IG9uZSBv ciB0aGUgb3RoZXIuCj4+IEZvciBteSB1bmRlcnN0YW5kaW5nLCBwaW5uaW5nIGlzIG9ubHkgZG9u ZSBpbiBwcmVwYXJlX2ZiIGNvZGUuIEFuZCBhc3QKPj4gcGlucyBpdHMgY3Vyc29yIEJPcyBpbnRv IHZyYW0uIFdlIHNob3VsZCBkb2N1bWVudCB0byBob2xzIHZtYXAvdnVubWFwCj4+IG9ubHkgZm9y IHRpbWUgYW5kIGNvdmVyIHRoZW0gd2l0aCByZXN2IGxvY2tzLiBQaW5uaW5nIGlzIGZvciBjYXNl cyB3aGVyZQo+PiB0aGUgaGFyZHdhcmUgcmVxdWlyZXMgYnVmZmVycyBpbiBhIHNwZWNpYWwgbG9j YXRpb24sIGJ1dCBkb2VzIG5vdAo+PiBwcm90ZWN0IGFnYWluc3QgY29uY3VycmVudCB0aHJlYXQu IEkgdGhpbmsgdGhvc2UgYXJlIHRoZSBpbXBsaWNpdCBydWxlcwo+PiBhbHJlYWR5Lgo+Pgo+PiBJ IHVwZGF0ZWQgdGhlIHJhZGVvbiBwYXRjaHNldCwgd2hlcmUgYWxsIHRoaXMgYXBwZWFycyB0byBi ZSB3b3JraW5nIHdlbGwuCj4gSG0geWVhaCBpZiB5b3Ugd2FudCB0byBkbyB0aGUgZnVsbCBjaGFu Z2UsIHRoZW4gdGhhdCB3b3JrcyBvdXQgdG9vLgo+IEl0J3MganVzdCBhIHBpbGUgb2Ygd29yay4K Pgo+IEJ1dCBpZiB3ZSBjYW4gZmluaXNoIG9mZiB3aXRoIGFuIGRtYV9yZXN2X2Fzc2VydF9sb2Nr ZWQgaW4KPiBkbWFfYnVmX3ZtYXAvdnVubWFwLCB0aGVuIEkgdGhpbmsgdGhhdCdzIG9rLiBJdCBk b2VzIG1lYW4gdGhhdAo+IGV4cG9ydGVycyBtdXN0IGltcGxlbWVudCB2bWFwIGNhY2hpbmcsIG9y IHBlcmZvcm1hbmNlIHdpbGwgYmUKPiB0ZXJyaWJsZS4gU28gcXVpdGUgc29tZSB1cGRhdGUgZm9y IHRoZSBkbWEtYnVmIGRvY3MuCgpUaGF0J3Mgb25lIHBvc3NpYmlsaXR5LCBidXQgSSB0aGluayB3 ZSBzaG91bGQga2VlcCB0aGUgYWJpbGl0eSB0byB1c2UgCnBpbit2bWFwIGluc3RlYWQgb2YgbG9j ayt2bWFwLgoKUmVnYXJkcywKQ2hyaXN0aWFuLgoKPgo+IEJ1dCBpZiB5b3UncmUgd2lsbGluZyB0 byBkbyBhbGwgdGhhdCBjb252ZXJzaW9uIG9mIGNhbGxlcnMsIHRoZW4gb2YKPiBjb3Vyc2UgSSdt IG5vdCBzdG9wcGluZyB5b3UuIE5vdCBhdCBhbGwsIGl0J3MgZ3JlYXQgdG8gc2VlIHRoYXQga2lu ZAo+IG9mIG1hemUgdW50YW5nbGVkLgo+IC1EYW5pZWwKPgo+PiBCZXN0IHJlZ2FyZHMKPj4gVGhv bWFzCj4+Cj4+PiBUaGF0IHNob3VsZCBnaXZlIHVzIGF0IGxlYXN0IHNvbWUgd2F5IGZvcndhcmQg dG8gZ3JhZHVhbGx5IGNvbnZlciBhbGwgdGhlCj4+PiBkcml2ZXJzIGFuZCBoZWxwZXJzIG92ZXIg dG8gZG1hX3Jlc3YgbG9ja2luZy4KPj4+IC1EYW5pZWwKPj4+Cj4+Pj4gVGhlIHBpbiBjb3VudCBp cyBjdXJyZW50bHkgbWFpbnRhaW5lZCBieSB0aGUgdm1hcCBpbXBsZW1lbnRhdGlvbiBpbiB2cmFt Cj4+Pj4gaGVscGVycy4gQ2FsbGluZyB2bWFwIGlzIGFuIGltcGxpY2l0IHBpbjsgY2FsbGluZyB2 dW5tYXAgaXMgYW4gaW1wbGljaXQKPj4+PiB1bnBpbi4gVGhpcyBwcmV2ZW50cyBldmljdGlvbiBp biB0aGUgZGFtYWdlIHdvcmtlci4gQnV0IG5vdyBJIHdhcyB0b2xkIHRoYW4KPj4+PiBwaW5uaW5n IGlzIG9ubHkgZm9yIEJPcyB0aGF0IGFyZSBjb250cm9sbGVkIGJ5IHVzZXJzcGFjZSBhbmQgaW50 ZXJuYWwgdXNlcnMKPj4+PiBzaG91bGQgYWNxdWlyZSB0aGUgcmVzdiBsb2NrLiBTbyB2cmFtIGhl bHBlcnMgaGF2ZSB0byBiZSBmaXhlZCwgYWN0dWFsbHkuCj4+Pj4KPj4+PiBJbiB2cmFtIGhlbHBl cnMsIHVubWFwcGluZyBkb2VzIG5vdCBtZWFuIGV2aWN0aW9uLiBUaGUgdW5tYXAgb3BlcmF0aW9u IG9ubHkKPj4+PiBtYXJrcyB0aGUgQk8gYXMgdW5tYXBwYWJsZS4gVGhlIHJlYWwgdW5tYXAgaGFw cGVucyB3aGVuIHRoZSBldmljdGlvbiB0YWtlcwo+Pj4+IHBsYWNlLiBUaGlzIGF2b2lkcyBtYW55 IG1vZGlmaWNhdGlvbnMgdG8gdGhlIHBhZ2UgdGFibGVzLiBJT1cgYW4gdW5waW5uZWQsCj4+Pj4g dW5tYXBwZWQgQk8gd2lsbCByZW1haW4gaW4gVlJBTSB1bnRpbCB0aGUgbWVtb3J5IGlzIGFjdHVh bGx5IG5lZWRlZC4KPj4+Pgo+Pj4+IEJlc3QgcmVnYXJkcwo+Pj4+IFRob21hcwo+Pj4+Cj4+Pj4+ IFNvIEknbSBzdGlsbCBub3Qgc2VlaW5nIGhvdyB0aGlzIGNhbiBnbyBib29tLgo+Pj4+Pgo+Pj4+ PiBOb3cgbG9uZyB0ZXJtIGl0J2QgYmUgbmljZSB0byBjdXQgZXZlcnl0aGluZyBvdmVyIHRvIGRt YV9yZXN2IGxvY2tpbmcsIGJ1dAo+Pj4+PiB0aGUgaXNzdWUgdGhlcmUgaXMgdGhhdCBiZXlvbmQg dHRtLCBub25lIG9mIHRoZSBoZWxwZXJzIChhbmQgZmV3IG9mIHRoZQo+Pj4+PiBkcml2ZXJzKSB1 c2UgZG1hX3Jlc3YuIFNvIHRoaXMgaXMgYSBmYWlybHkgYmlnIHVwaGlsbCBiYXR0bGUuIFF1aWNr Cj4+Pj4+IGludGVyaW0gZml4IHNlZW1zIGxpa2UgdGhlIHJpZ2h0IHNvbHV0aW9uIHRvIG1lLgo+ Pj4+PiAtRGFuaWVsCj4+Pj4+Cj4+Pj4+PiBSZWdhcmRzLAo+Pj4+Pj4gQ2hyaXN0aWFuLgo+Pj4+ Pj4KPj4+Pj4+PiBCZXN0IHJlZ2FyZHMKPj4+Pj4+PiBUaG9tYXMKPj4+Pj4+Pgo+Pj4+Pj4+Pj4g VGhlcmUncyBubyByZWN1cnNpb24gdGFraW5nIHBsYWNlLCBzbyBJIGd1ZXNzIHRoZSByZXNlcnZh dGlvbgo+Pj4+Pj4+Pj4gbG9jayBjb3VsZCBiZQo+Pj4+Pj4+Pj4gYWNxdWlyZWQvcmVsZWFzZSBp biBkcm1fY2xpZW50X2J1ZmZlcl92bWFwL3Z1bm1hcCgpLCBvciBhCj4+Pj4+Pj4+PiBzZXBhcmF0 ZSBwYWlyIG9mCj4+Pj4+Pj4+PiBEUk0gY2xpZW50IGZ1bmN0aW9ucyBjb3VsZCBkbyB0aGUgbG9j a2luZy4KPj4+Pj4+Pj4gR2l2ZW4gaG93IHRoaXMgImRvIHRoZSByaWdodCBsb2NraW5nIiBpcyBh IGNhbiBvZiB3b3JtcyAoYW5kIEkgdGhpbmsKPj4+Pj4+Pj4gaXQncwo+Pj4+Pj4+PiB3b3JzZSB0 aGFuIHdoYXQgeW91IGR1ZyBvdXQgYWxyZWFkeSkgSSB0aGluayB0aGUgZmJfaGVscGVyLmxvY2sg aGFjayBpcwo+Pj4+Pj4+PiBwZXJmZWN0bHkgZ29vZCBlbm91Z2guCj4+Pj4+Pj4+Cj4+Pj4+Pj4+ IEknbSBhbHNvIHNvbWV3aGF0IHdvcnJpZWQgdGhhdCBzdGFydGluZyB0byB1c2UgZG1hX3Jlc3Yg bG9jayBpbiBnZW5lcmljCj4+Pj4+Pj4+IGNvZGUsIHdoaWxlIG1hbnkgaGVscGVycy9kcml2ZXJz IHN0aWxsIGhhdmUgdGhlaXIgaGFuZC1yb2xsZWQgbG9ja2luZywKPj4+Pj4+Pj4gd2lsbCBtYWtl IGNvbnZlcnNpb24gb3ZlciB0byBkbWFfcmVzdiBuZWVkbGVzc2x5IG1vcmUgY29tcGxpY2F0ZWQu Cj4+Pj4+Pj4+IC1EYW5pZWwKPj4+Pj4+Pj4KPj4+Pj4+Pj4+IEJlc3QgcmVnYXJkcwo+Pj4+Pj4+ Pj4gVGhvbWFzCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gWzFdIGh0dHBzOi8vbmFtMTEuc2FmZWxpbmtz LnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmNnaXQuZnJlZWRlc2t0 b3Aub3JnJTJGZHJtJTJGZHJtLXRpcCUyRnRyZWUlMkZkcml2ZXJzJTJGZ3B1JTJGZHJtJTJGZHJt X2ZiX2hlbHBlci5jJTNGaWQlM0RhYzYwZjNmMzA5MDExNWQyMWYwMjhiZmZhMmRjZmI2N2Y2OTVj NGYyJTIzbjM5NCZhbXA7ZGF0YT0wNCU3QzAxJTdDY2hyaXN0aWFuLmtvZW5pZyU0MGFtZC5jb20l N0M3MzQ1OGQzNjQ3MTU0N2NhMTI4MDA4ZDg5MWZiMDk1OCU3QzNkZDg5NjFmZTQ4ODRlNjA4ZTEx YTgyZDk5NGUxODNkJTdDMCU3QzAlN0M2Mzc0MTk4NTQ2ODI2NjA1NTAlN0NVbmtub3duJTdDVFdG cGJHWnNiM2Q4ZXlKV0lqb2lNQzR3TGpBd01EQWlMQ0pRSWpvaVYybHVNeklpTENKQlRpSTZJazFo YVd3aUxDSlhWQ0k2TW4wJTNEJTdDMTAwMCZhbXA7c2RhdGE9Q2t5JTJCb3pFTlUxbnNkNGhsZkFk c3ZBNndDMFJYc2V4N2dwRnV2SGxDUk9NJTNEJmFtcDtyZXNlcnZlZD0wCj4+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4+IFBsZWFzZSBub3RlIHRoYXQgdGhlIHJlc2VydmF0aW9uIGxvY2sgeW91IG5lZWQgdG8g dGFrZSBoZXJlIGlzIHBhcnQgb2YKPj4+Pj4+Pj4+PiB0aGUgR0VNIG9iamVjdC4KPj4+Pj4+Pj4+ Pgo+Pj4+Pj4+Pj4+IFVzdWFsbHkgd2UgZGVzaWduIHRoaW5ncyBpbiB0aGUgd2F5IHRoYXQgdGhl IGNvZGUgbmVlZHMgdG8gdGFrZSBhIGxvY2sKPj4+Pj4+Pj4+PiB3aGljaCBwcm90ZWN0cyBhbiBv YmplY3QsIHRoZW4gZG8gc29tZSBvcGVyYXRpb25zIHdpdGggdGhlIG9iamVjdCBhbmQKPj4+Pj4+ Pj4+PiB0aGVuIHJlbGVhc2UgdGhlIGxvY2sgYWdhaW4uCj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBI YXZpbmcgaW4gdGhlIGxvY2sgaW5zaWRlIHRoZSBvcGVyYXRpb24gY2FuIGJlIGRvbmUgYXMgd2Vs bCwgYnV0Cj4+Pj4+Pj4+Pj4gcmV0dXJuaW5nIHdpdGggaXQgaXMga2luZCBvZiB1bnVzdWFsIGRl c2lnbi4KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiBTb3JyeSBmb3IgdGhlIG5vb2IgcXVlc3Rpb25z LiBJJ20gc3RpbGwgdHJ5aW5nIHRvIHVuZGVyc3RhbmQgdGhlCj4+Pj4+Pj4+Pj4+IGltcGxpY2F0 aW9ucyBvZiBhY3F1aXJpbmcgdGhlc2UgbG9ja3MuCj4+Pj4+Pj4+Pj4gV2VsbCB0aGlzIGlzIHRo ZSByZXNlcnZhdGlvbiBsb2NrIG9mIHRoZSBHRU0gb2JqZWN0IHdlIGFyZQo+Pj4+Pj4+Pj4+IHRh bGtpbmcgYWJvdXQKPj4+Pj4+Pj4+PiBoZXJlLiBXZSBuZWVkIHRvIHRha2UgdGhhdCBmb3IgYSBj b3VwbGUgb2YgZGlmZmVyZW50IG9wZXJhdGlvbnMsCj4+Pj4+Pj4+Pj4gdm1hcC92dW5tYXAgZG9l c24ndCBzb3VuZCBsaWtlIGEgc3BlY2lhbCBjYXNlIHRvIG1lLgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+ Pj4gUmVnYXJkcywKPj4+Pj4+Pj4+PiBDaHJpc3RpYW4uCj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4g QmVzdCByZWdhcmRzCj4+Pj4+Pj4+Pj4+IFRob21hcwo+Pj4+Pj4+Pj4+IF9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+Pj4+Pj4+Pj4gZHJpLWRldmVsIG1h aWxpbmcgbGlzdAo+Pj4+Pj4+Pj4+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+ Pj4+Pj4+PiBodHRwczovL25hbTExLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91 cmw9aHR0cHMlM0ElMkYlMkZsaXN0cy5mcmVlZGVza3RvcC5vcmclMkZtYWlsbWFuJTJGbGlzdGlu Zm8lMkZkcmktZGV2ZWwmYW1wO2RhdGE9MDQlN0MwMSU3Q2NocmlzdGlhbi5rb2VuaWclNDBhbWQu Y29tJTdDNzM0NThkMzY0NzE1NDdjYTEyODAwOGQ4OTFmYjA5NTglN0MzZGQ4OTYxZmU0ODg0ZTYw OGUxMWE4MmQ5OTRlMTgzZCU3QzAlN0MwJTdDNjM3NDE5ODU0NjgyNjcwNTQzJTdDVW5rbm93biU3 Q1RXRnBiR1pzYjNkOGV5SldJam9pTUM0d0xqQXdNREFpTENKUUlqb2lWMmx1TXpJaUxDSkJUaUk2 SWsxaGFXd2lMQ0pYVkNJNk1uMCUzRCU3QzEwMDAmYW1wO3NkYXRhPVNhNWFvMVg1SkdGZ2NuaE5p RGJDakk0U2xNTVd6SElUQnlsQVpzRyUyQlZ6cyUzRCZhbXA7cmVzZXJ2ZWQ9MAo+Pj4+Pj4+Pj4g LS0KPj4+Pj4+Pj4+IFRob21hcyBaaW1tZXJtYW5uCj4+Pj4+Pj4+PiBHcmFwaGljcyBEcml2ZXIg RGV2ZWxvcGVyCj4+Pj4+Pj4+PiBTVVNFIFNvZnR3YXJlIFNvbHV0aW9ucyBHZXJtYW55IEdtYkgK Pj4+Pj4+Pj4+IE1heGZlbGRzdHIuIDUsIDkwNDA5IE7DvHJuYmVyZywgR2VybWFueQo+Pj4+Pj4+ Pj4gKEhSQiAzNjgwOSwgQUcgTsO8cm5iZXJnKQo+Pj4+Pj4+Pj4gR2VzY2jDpGZ0c2bDvGhyZXI6 IEZlbGl4IEltZW5kw7ZyZmZlcgo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+ Pj4+Pj4+Pgo+Pj4+IC0tCj4+Pj4gVGhvbWFzIFppbW1lcm1hbm4KPj4+PiBHcmFwaGljcyBEcml2 ZXIgRGV2ZWxvcGVyCj4+Pj4gU1VTRSBTb2Z0d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJICj4+ Pj4gTWF4ZmVsZHN0ci4gNSwgOTA0MDkgTsO8cm5iZXJnLCBHZXJtYW55Cj4+Pj4gKEhSQiAzNjgw OSwgQUcgTsO8cm5iZXJnKQo+Pj4+IEdlc2Now6RmdHNmw7xocmVyOiBGZWxpeCBJbWVuZMO2cmZm ZXIKPj4+Cj4+Pgo+Pj4KPj4+Cj4+Pgo+PiAtLQo+PiBUaG9tYXMgWmltbWVybWFubgo+PiBHcmFw aGljcyBEcml2ZXIgRGV2ZWxvcGVyCj4+IFNVU0UgU29mdHdhcmUgU29sdXRpb25zIEdlcm1hbnkg R21iSAo+PiBNYXhmZWxkc3RyLiA1LCA5MDQwOSBOw7xybmJlcmcsIEdlcm1hbnkKPj4gKEhSQiAz NjgwOSwgQUcgTsO8cm5iZXJnKQo+PiBHZXNjaMOkZnRzZsO8aHJlcjogRmVsaXggSW1lbmTDtnJm ZmVyCj4KPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K YW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==