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=-15.1 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,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 6162EC48BE0 for ; Thu, 10 Jun 2021 18:12:29 +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 2D2A261376 for ; Thu, 10 Jun 2021 18:12:29 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2D2A261376 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D0DAD6E4CA; Thu, 10 Jun 2021 18:12:28 +0000 (UTC) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2061.outbound.protection.outlook.com [40.107.94.61]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6CF206E4CA; Thu, 10 Jun 2021 18:12:27 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZE2QOglkgv4Y6QaEABmH7Xs2ukCNha/PzYX9USIOUn1mHbwe7BMjzQqGQx7aY1SOkGQsmTAMMtSpo4hfFtiiZi5HuBtEtncDFX6uQCovcSM2YnGLrRnkrQqT0pVKUCtcKdpfr+DLtnxMpVQdfYWJiXmN7C3lflMNYjItn3lLDPk/1Mtvs40Bg+vP4roALcRO51Y5f4UnZDuydlLbYS+XuS9OsuwXPhCOnG0DiQg8ZWzxihCgSu7MdAVo3hty7mOXHmeNwhIDjpnvUgnHjStfAYa0BRke+QbWj7kLrsCFxYvrQarHnbvbcheaPp6UWJ1LfiES1zxSQupIz9gdmtqJ4g== 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=P6Y3PL9Vq8c59LMqhJ5c85ZbDAjp/py6hzw7UBQKzAw=; b=Yu7l9C0fxxBVYuQIlbyRhRo9G6Xj2/D5dmCeLPyEuL2GjWrrYf0AKAwFKvU0B/cfARt/MQyAUV24wjMbnwh5wp1R5r6WKGV88v+Pt2K2EpUb7MzoXC5IzkUAKkI+pSE0O74d47761HeQ21rzQkbikLVli/ODen/wWaK2gWUr7HYhfFC6GLjcrkOBvK+wr2tGrADfzpKyE4mTZxfSPd7p3nia3KSC6wAzLIkljtq46bFRntcPduLnsqDWtXmxBkt8lWDTBbUTUALcvZWM6BJpA8o3jYiXNpTJ45bGOz9YjZUsLBvpU0iIMi/xJc+hDUHaASdR4uRptfaC7EeYNmWsQA== 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=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=P6Y3PL9Vq8c59LMqhJ5c85ZbDAjp/py6hzw7UBQKzAw=; b=aZnS/MGNrl9mLPrChWq0Wbb7hnoNP5Tdc//Ofb9bEgZcXSvywKIsbGiZSxIzH467HfVWpEclBVLXJhZBEFUycm3NeYto0PKOYuC2N4bJvzycc5EPJQqmcR1u/aFDBTRXpGSU7WJIOC6gQoxpq00VazadqmNAbcDdzDJ/Z6bwfz8= Authentication-Results: linux.intel.com; dkim=none (message not signed) header.d=none;linux.intel.com; dmarc=none action=none header.from=amd.com; Received: from MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) by MN2PR12MB4126.namprd12.prod.outlook.com (2603:10b6:208:199::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.21; Thu, 10 Jun 2021 18:12:25 +0000 Received: from MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::6c9e:1e08:7617:f756]) by MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::6c9e:1e08:7617:f756%5]) with mapi id 15.20.4219.022; Thu, 10 Jun 2021 18:12:25 +0000 To: Daniel Vetter References: <20210609212959.471209-1-jason@jlekstrand.net> <20210609212959.471209-6-jason@jlekstrand.net> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: Date: Thu, 10 Jun 2021 20:12:19 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 In-Reply-To: Content-Language: en-US X-Originating-IP: [2a02:908:1252:fb60:57c:8a70:f9b:430d] X-ClientProxiedBy: AM0PR02CA0084.eurprd02.prod.outlook.com (2603:10a6:208:154::25) 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:57c:8a70:f9b:430d] (2a02:908:1252:fb60:57c:8a70:f9b:430d) by AM0PR02CA0084.eurprd02.prod.outlook.com (2603:10a6:208:154::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.20 via Frontend Transport; Thu, 10 Jun 2021 18:12:24 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 23f2ce15-ff76-41ce-c798-08d92c3b4cd8 X-MS-TrafficTypeDiagnostic: MN2PR12MB4126: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6430; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tyCsjh8rRNK0iOUB9NE+1hwdhaOzPsa5gH2iszUn0rftuw+y47Q7xxFghLlKm7oKQELJgmMY2qIj5HGI0pvnzAotexU1yofaUsi3Qkp4LTBx7vuxKqobz4jXQ4zHFd6thkC7lmopF9ji5/TFJJohhG+u6pLI8E0BKzr0deUQc+hxPylGxMfG+aU9qWL+qs8b+2D6WsbVWLjdg85pfamo/Eaa7jHO8qjUdV0aZRykNnHQpqdfATSfKyZGHsQSAjdmG/W2zJEKksxJCMx/WOgW2uXHEBH4tFz6c3hQ/sJq4TcjKkMi3N9qj4j22y77u+nL76pGnOqsCnN1xZKOIAIrbmiJzaPFaU7mZzrDaT5wIq63tey9r5Q5Zux76YRoEPqL+CJd2cEaAPrI1LJLHbFPRYsBo5uPBYJA+iGYi0LZIVJZqsQrTSi3aqKUSOxZ2jS8rHepbO/7D/0HtcIJgXRUCgExO2Pn5fcHyQFgiRJQCVZJfp+nU1qiH36bF+pqJlm58aFN26pYYb5D+B34HOrCbH7JVdcb2YwZV/ao3EZUOeX0NWa7Qc0h8dlYTL2rF6Awo9hMnzTMVGZBiQDcwTb9sxGDNCS5HLPz6fXkVCfnwNLK8PSZNEQZpf3vBhS1EKn3BPiuYjnvl8ToG5q3seT8iQ2lSdwvKtFEYIksl7HycbtZhfR5//46DSidE5gP56db35sUtmQuTERP20SK2JknbtF/bYB+LfM6j98fsg/Rl9RPHV2j+h3iBUTFknoo9PhV5aFw2V+miqEUfZMScwRRffpavmEVH5UrdKwAWJQP7PyqhGBmGN0UBgt+Cw7VoLPyhJqevi3jTyasdq5KmWYQKZQBlo7OAlSdsYlMco72/Zk= 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)(39860400002)(136003)(346002)(366004)(396003)(66946007)(66476007)(6486002)(4326008)(66574015)(38100700002)(36756003)(186003)(66556008)(53546011)(31696002)(86362001)(16526019)(2616005)(6916009)(966005)(30864003)(45080400002)(478600001)(5660300002)(316002)(54906003)(2906002)(31686004)(8936002)(8676002)(6666004)(83380400001)(26583001)(87944003)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UWlldVJUS0NIWXNMYnlZd3dONEZsdDR5alVpSDZYS1RNMk9XODg3aDJjeDNE?= =?utf-8?B?VjhrYkxqVlVSZS84QkFMUDdLVmZ6TXp5OHhPT3p3UE1RSU43UDRDYWMyTHVT?= =?utf-8?B?WWgrN3NiUlpDSjFLa2ZXM1owTjY4cmo2TkdWeTkxN0lHVjdZcFhKSm83R25R?= =?utf-8?B?cUpTRkdzYUR2T252ZldSdjJNQWxNSmxSV3NyRVcyT251ZEovZzVVZE9XcmJX?= =?utf-8?B?VmN2RnpNUUFjSG9Ma0F6N0JQUGxUR1pQSzNkN29tWXVNNENzMnZDNE1MbGpi?= =?utf-8?B?b1RyTzJFT3dLaWNlYUZDVDRxZmFlOHFxcXZhMktVVFhvVGpNZWxkNUN1ZVU0?= =?utf-8?B?elFUYXg2UHFKVTdUM2lYZzc3a21qQWV1d2tXR1FVcE5uVWhJMG9WNk1IOUVq?= =?utf-8?B?cTRXbUNDVUZOdDVZZGVaalVxT0dER2xhbDg2VnJEakxTM05sVXNacXRrYXBu?= =?utf-8?B?d0VGQldqUW1haGZoSzhMYUlkak5qelNrdUJrUkpMUEp0bDY5NUNTSFM2bXAz?= =?utf-8?B?ODRCYkNxalViKytJaUtLY2xRdFRNc3FaTHhpZTNvVmlJUW5xNnBSb3BGSk84?= =?utf-8?B?WlBmSUh1VmpjMTFqcW9nTDEzaUp2UFlTQmU3L2U3ZVJEZDMvUCtkQlIrQWFr?= =?utf-8?B?S2J3K1hNREtuSURZcm4rSnJheGtVOGxyR1dxenQ2blkxVUxMY09ldG1oQnls?= =?utf-8?B?VE1zbE1QeTlIVWpyTTFHRXBqa0NiaFJhTlZNMktzTE55cGtWSXpySE5TdkdL?= =?utf-8?B?YjJHRGdraUk4UTZjbzBIR09ZVU5peDlSdkFxL3RaQXFXK2tBbk56T0VGaGx0?= =?utf-8?B?Z0RPcUNJSTFHeW1Na2d3aytjZTUyZkNoSFNVdytHZWVyUGtNcW8wME5uU2pN?= =?utf-8?B?a05XbmN4UndBL2NHdDM5UVZDWWIyZnBEcG43OHRUSWJjZmJ1Y3ZQRnNqeWdX?= =?utf-8?B?ZWl0TzdwQmlCOTIwcVlOSUNEYUU0bW5IckZkSCtXTHJMRzRoMC9mbzJPbVgr?= =?utf-8?B?UjBIa1VXb3VwcjVpd3V3d1grL1JGUUp5WG1wZEFxaXZxYzNMVFNIYkRFZWQ1?= =?utf-8?B?bE9Yd1lyQ2tSemM3QmFlaWVGaFFSOVZjeGZreGxxaGVGRE5WZE5pd0pIV2pV?= =?utf-8?B?MzlzNkQ1RmlkQ016Tjh0Zk8wREN5TXNQNnlVRWV3TUZjdm0xY0NnNVk2em1C?= =?utf-8?B?SXRHbHpsTnlKWG0zWnBzSlNCbUl2dC9YRFpIOFFyL1djb2MxUWdwODV6TXBJ?= =?utf-8?B?YWhHaE0zQk4wQ09teE4yc290Qzc4UVViY3Vsa0F6REIxZHk2REx0YW01QWRX?= =?utf-8?B?S1dtRC83R3huZzdJR0xqTW4wdStUNlBEVU5lUkh4U2xUNWpERXFUMGFRYzM3?= =?utf-8?B?WDJnL1hPTHJ4UFpjMVduSFBtUG9LSFhxeTJDclhoaytIcTNJRitwVDhUUlNo?= =?utf-8?B?b05qMjNvUXBQVmhETEdmT1RzbXdDTFluOXptaTVick13T25nc0ZISldScTBM?= =?utf-8?B?dnc2N1prdnFLaHVVVnN5LzByRStmcVl2TFJQRnFDRVdyaTg4RWtIUkZEbGl5?= =?utf-8?B?UW5STVNWLzQwaTBMQllqdVE3U29SMVpGYjdrNnROTHNJRll2eFAvcnRvZ3Jz?= =?utf-8?B?bzlnQmhPWW4xazdmUElMQXB4ZTU1UlZ6alo2Tk1ETDBtUmlFOG9VWk51NkxD?= =?utf-8?B?Zmt3djhIcmovK29BNlY0SHI4cFNzL01ZUU1GQ0pUTzJvYy9hd3FaK0NKdnVo?= =?utf-8?B?TElXRWdVTW5CVGdlbjlpMXFtWkdVNEVDS01rMDcxaHNZcDlpY2FjcEtlNklN?= =?utf-8?B?TS9HMkF4cHR5cTg1UFVsdVZyczhSNG9RclpvZjRmNmVQNXdZelh5dWEwZ3Rv?= =?utf-8?Q?u4XGDop+gpbmP?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 23f2ce15-ff76-41ce-c798-08d92c3b4cd8 X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3775.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2021 18:12:25.6522 (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: 8ufqG7X8413itR+c3QRM9EkTrHpotIRgkn4mVYcoXme+S8XEpUEqiqPDiUDPj9Na X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4126 Subject: Re: [Intel-gfx] [PATCH 5/5] DONOTMERGE: dma-buf: Get rid of dma_fence_get_rcu_safe X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Intel GFX , Maling list - DRI developers , Matthew Auld Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" CgpBbSAxMC4wNi4yMSB1bSAxOToxMSBzY2hyaWViIERhbmllbCBWZXR0ZXI6Cj4gT24gVGh1LCBK dW4gMTAsIDIwMjEgYXQgMDY6NTQ6MTNQTSArMDIwMCwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToK Pj4gQW0gMTAuMDYuMjEgdW0gMTg6Mzcgc2NocmllYiBEYW5pZWwgVmV0dGVyOgo+Pj4gT24gVGh1 LCBKdW4gMTAsIDIwMjEgYXQgNjoyNCBQTSBKYXNvbiBFa3N0cmFuZCA8amFzb25Aamxla3N0cmFu ZC5uZXQ+IHdyb3RlOgo+Pj4+IE9uIFRodSwgSnVuIDEwLCAyMDIxIGF0IDEwOjEzIEFNIERhbmll bCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+IHdyb3RlOgo+Pj4+PiBPbiBUaHUsIEp1 biAxMCwgMjAyMSBhdCAzOjU5IFBNIEphc29uIEVrc3RyYW5kIDxqYXNvbkBqbGVrc3RyYW5kLm5l dD4gd3JvdGU6Cj4+Pj4+PiBPbiBUaHUsIEp1biAxMCwgMjAyMSBhdCAxOjUxIEFNIENocmlzdGlh biBLw7ZuaWcKPj4+Pj4+IDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+IHdyb3RlOgo+Pj4+Pj4+ IEFtIDA5LjA2LjIxIHVtIDIzOjI5IHNjaHJpZWIgSmFzb24gRWtzdHJhbmQ6Cj4+Pj4+Pj4+IFRo aXMgaGVscGVyIGV4aXN0ZWQgdG8gaGFuZGxlIHRoZSB3ZWlyZCBjb3JuZXItY2FzZXMgY2F1c2Vk IGJ5IHVzaW5nCj4+Pj4+Pj4+IFNMQUJfVFlQRVNBRkVfQllfUkNVIGZvciBiYWNraW5nIGRtYV9m ZW5jZS4gIE5vdyB0aGF0IG5vIG9uZSBpcyB1c2luZwo+Pj4+Pj4+PiB0aGF0IGFueW1vcmUgKGk5 MTUgd2FzIHRoZSBvbmx5IHJlYWwgdXNlciksIGRtYV9mZW5jZV9nZXRfcmN1IGlzCj4+Pj4+Pj4+ IHN1ZmZpY2llbnQuICBUaGUgb25lIHNsaWdodGx5IGFubm95aW5nIHRoaW5nIHdlIGhhdmUgdG8g ZGVhbCB3aXRoIGhlcmUKPj4+Pj4+Pj4gaXMgdGhhdCBkbWFfZmVuY2VfZ2V0X3JjdV9zYWZlIGRp ZCBhbiByY3VfZGVyZWZlcmVuY2UgYXMgd2VsbCBhcyBhCj4+Pj4+Pj4+IFNMQUJfVFlQRVNBRkVf QllfUkNVLXNhZmUgZG1hX2ZlbmNlX2dldF9yY3UuICBUaGlzIG1lYW5zIGVhY2ggY2FsbCBzaXRl Cj4+Pj4+Pj4+IGVuZHMgdXAgYmVpbmcgMyBsaW5lcyBpbnN0ZWFkIG9mIDEuCj4+Pj4+Pj4gVGhh dCdzIGFuIG91dHJpZ2h0IE5BSy4KPj4+Pj4+Pgo+Pj4+Pj4+IFRoZSBsb29wIGluIGRtYV9mZW5j ZV9nZXRfcmN1X3NhZmUgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIHVuZGVybHlpbmcKPj4+Pj4+ PiBmZW5jZSBvYmplY3QgY2FuIGJlIHJlcGxhY2VkIHdoaWxlIHRha2luZyB0aGUgcmVmZXJlbmNl Lgo+Pj4+Pj4gUmlnaHQuICBJIGhhZCBtaXNzZWQgYSBiaXQgb2YgdGhhdCB3aGVuIEkgZmlyc3Qg cmVhZCB0aHJvdWdoIGl0LiAgSQo+Pj4+Pj4gc2VlIHRoZSBuZWVkIGZvciB0aGUgbG9vcCBub3cu ICBCdXQgdGhlcmUgYXJlIHNvbWUgb3RoZXIgdHJpY2t5IGJpdHMKPj4+Pj4+IGluIHRoZXJlIGJl c2lkZXMganVzdCB0aGUgbG9vcC4KPj4+Pj4gSSB0aG91Z2h0IHRoYXQncyB3aGF0IHRoZSBrcmVm X2dldF91bmxlc3NfemVybyB3YXMgZm9yIGluCj4+Pj4+IGRtYV9mZW5jZV9nZXRfcmN1PyBPdGhl cndpc2UgSSBndWVzcyBJJ20gbm90IHNlZWluZyB3aHkgc3RpbGwgaGF2ZQo+Pj4+PiBkbWFfZmVu Y2VfZ2V0X3JjdSBhcm91bmQsIHNpbmNlIHRoYXQgc2hvdWxkIGVpdGhlciBiZSBhIGtyZWZfZ2V0 IG9yCj4+Pj4+IGl0J3MganVzdCB1bnNhZmUgdG8gY2FsbCBpdCAuLi4KPj4+PiBBRkFJQ1QsIGRt YV9mZW5jZV9nZXRfcmN1IGlzIHVuc2FmZSB1bmxlc3MgeW91IHNvbWVob3cga25vdyB0aGF0IGl0 J3MKPj4+PiB5b3VyIGZlbmNlIGFuZCBpdCdzIG5ldmVyIHJlY3ljbGVkLgo+Pj4+Cj4+Pj4gV2hl cmUgdGhlIGxvb3AgY29tZXMgaW4gaXMgaWYgeW91IGhhdmUgc29tZW9uZSBjb21lIGFsb25nLCB1 bmRlciB0aGUKPj4+PiBSQ1Ugd3JpdGUgbG9jayBvciBub3QsIGFuZCBzd2FwIG91dCB0aGUgcG9p bnRlciBhbmQgdW5yZWYgaXQgd2hpbGUKPj4+PiB5b3UncmUgdHJ5aW5nIHRvIGZldGNoIGl0LiAg SW4gdGhpcyBjYXNlLCBpZiB5b3UganVzdCB3cml0ZSB0aGUgdGhyZWUKPj4+PiBsaW5lcyBJIGR1 cGxpY2F0ZWQgdGhyb3VnaG91dCB0aGlzIHBhdGNoLCB5b3UnbGwgZW5kIHVwIHdpdGggTlVMTCBp Zgo+Pj4+IHlvdSAocGFydGlhbGx5KSBsb3NlIHRoZSByYWNlLiAgVGhlIGxvb3AgZXhpc3RzIHRv IGVuc3VyZSB0aGF0IHlvdSBnZXQKPj4+PiBlaXRoZXIgdGhlIG9sZCBwb2ludGVyIG9yIHRoZSBu ZXcgcG9pbnRlciBhbmQgeW91IG9ubHkgZXZlciBnZXQgTlVMTAo+Pj4+IGlmIHNvbWV3aGVyZSBk dXJpbmcgdGhlIG1lc3MsIHRoZSBwb2ludGVyIGFjdHVhbGx5IGdldHMgc2V0IHRvIE5VTEwuCj4+ PiBJdCdzIG5vdCB0aGF0IGVhc3kuIEF0IGxlYXN0IG5vdCBmb3IgZG1hX3Jlc3YuCj4+Pgo+Pj4g VGhlIHRoaW5nIGlzLCB5b3UgY2FuJ3QganVzdCBnbyBpbiBhbmQgcmVwbGFjZSB0aGUgd3JpdGUg ZmVuY2Ugd2l0aAo+Pj4gc29tZXRoaW5nIGVsc2UuIFRoZXJlJ3Mgc3VwcG9zZWQgdG8gYmUgc29t ZSBvcmRlcmluZyBoZXJlIChob3cgbXVjaCB3ZQo+Pj4gYWN0dWFsbHkgc3RpbGwgZm9sbG93IHRo YXQgb3Igbm90IGlzIGEgYml0IGFub3RoZXIgcXVlc3Rpb24sIHRoYXQgSSdtCj4+PiB0cnlpbmcg dG8gYW5zd2VyIHdpdGggYW4gYXVkaXQgb2YgbG90cyBvZiBkcml2ZXJzKSwgd2hpY2ggbWVhbnMg aWYgeW91Cj4+PiByZXBsYWNlIGUuZy4gdGhlIGV4Y2x1c2l2ZSBmZW5jZSwgdGhlIHByZXZpb3Vz IGZlbmNlIHdpbGwgX25vdF8ganVzdAo+Pj4gZ2V0IGZyZWVkLiBCZWNhdXNlIHRoZSBuZXh0IGV4 Y2x1c2l2ZSBmZW5jZSBuZWVkcyB0byB3YWl0IGZvciB0aGF0IHRvCj4+PiBmaW5pc2ggZmlyc3Qu Cj4+Pgo+Pj4gQ29uY2VwdHVhbGx5IHRoZSByZWZjb3VudCB3aWxsIF9vbmx5XyBnbyB0byAwIG9u Y2UgYWxsIGxhdGVyCj4+PiBkZXBlbmRlbmNpZXMgaGF2ZSBzZWVuIGl0IGdldCBzaWduYWxsZWQs IGFuZCBvbmNlIHRoZSBmZW5jZSBpdHNlbGYgaGFzCj4+PiBiZWVuIHNpZ25hbGxlZC4KPj4gSSB0 aGluayB0aGF0J3MgdGhlIHBvaW50IHdoZXJlIGl0IGJyZWFrcy4KPj4KPj4gU2VlIElJUkMgcmFk ZW9uIGZvciBleGFtcGxlIGRvZXNuJ3Qga2VlcCB1bnNpZ25hbGVkIGZlbmNlcyBhcm91bmQgd2hl bgo+PiBub2JvZHkgaXMgaW50ZXJlc3RlZCBpbiB0aGVtLiBBbmQgSSB0aGluayBub3ZlYXUgZG9l cyBpdCB0aGF0IHdheSBhcyB3ZWxsLgo+Pgo+PiBTbyBmb3IgZXhhbXBsZSB5b3UgY2FuIGhhdmUg dGhlIGZvbGxvd2luZwo+PiAxLiBTdWJtaXNzaW9uIHRvIDNEIHJpbmcsIHRoaXMgY3JlYXRlcyBm ZW5jZSBBLgo+PiAyLiBGZW5jZSBBIGlzIHB1dCBhcyBlbiBleGNsdXNpdmUgZmVuY2UgaW4gYSBk bWFfcmVzdiBvYmplY3QuCj4+IDMuIFN1Ym1pc3Npb24gdG8gM0QgcmluZywgdGhpcyBjcmVhdGVz IGZlbmNlIEIuCj4+IDQuIEZlbmNlIEIgaXMgcmVwbGFjaW5nIGZlbmNlIEEgYXMgdGhlIGV4Y2x1 c2l2ZSBmZW5jZSBpbiB0aGUgZG1hX3Jlc3YKPj4gb2JqZWN0Lgo+Pgo+PiBGZW5jZSBBIGlzIHJl cGxhY2VkIGFuZCB0aGVyZWZvcmUgZGVzdHJveWVkIHdoaWxlIGl0IGlzIG5vdCBldmVuIGNsb3Nl IHRvIGJlCj4+IHNpZ25hbGVkLiBCdXQgdGhlIHJlcGxhY2VtZW50IGlzIHBlcmZlY3RseSBvaywg c2luY2UgZmVuY2UgQiBpcyBzdWJtaXR0ZWQgdG8KPj4gdGhlIHNhbWUgcmluZy4KPj4KPj4gV2hl biBzb21lYm9keSB3b3VsZCB1c2UgZG1hX2ZlbmNlX2dldF9yY3Ugb24gdGhlIGV4Y2x1c2l2ZSBm ZW5jZSBhbmQgZ2V0Cj4+IE5VTEwgaXQgd291bGQgZmFpbCB0byB3YWl0IGZvciB0aGUgc3VibWlz c2lvbnMuIFlvdSBkb24ndCByZWFsbHkgbmVlZCB0aGUKPj4gU0xBQl9UWVBFU0FGRV9CWV9SQ1Ug Zm9yIHRoaXMgdG8gYmxvdyB1cCBpbiB5b3VyIGZhY2UuCj4gVWggdGhhdCdzIHdpbGQgLi4uCj4K PiBJIHRob3VnaHQgdGhhdCdzIGltcG9zc2libGUsIGJ1dCBpbiBkbWFfZmVuY2VfcmVsZWFzZSgp IHdlIG9ubHkgY29tcGxhaW4KPiBpZiB0aGVyZSdzIGJvdGggd2FpdGVycyBhbmQgdGhlIGZlbmNl IGlzbid0IHNpZ25hbGxlZCB5ZXQuIEkgaGFkIG5vIGlkZWEuCj4KPj4gV2UgY291bGQgY2hhbmdl IHRoYXQgcnVsZSBvZiBjdXJzZSwgYW1kZ3B1IGZvciBleGFtcGxlIGlzIGFsd2F5cyBrZWVwaW5n Cj4+IGZlbmNlcyBhcm91bmQgdW50aWwgdGhleSBhcmUgc2lnbmFsZWQuIEJ1dCBJSVJDIHRoYXQn cyBob3cgaXQgd2FzIGZvciByYWRlb24KPj4gbGlrZSBmb3JldmVyLgo+IFllYWggSSB0aGluayB3 ZSBjb3VsZCwgYnV0IHRoZW4gd2UgbmVlZCB0byBkbyBhIGZldyB0aGluZ3M6Cj4gLSBkb2N1bWVu dCB0aGF0IGRlZmFjdG9yIG9ubHkgZ2V0X3JjdV9zYWZlIGlzIG9rIHRvIHVzZQo+IC0gZGVsZXRl IGdldF9yY3UsIGl0J3Mgbm90IHJlYWxseSBhIHNhZmUgdGhpbmcgdG8gZG8gYW55d2hlcmUKCldl bGwgSSB3b3VsZCByZW5hbWUgZG1hX2ZlbmNlX2dldF9yY3UgaW50byBkbWFfZmVuY2VfZ2V0X3Vu bGVzc196ZXJvLgoKQW5kIHRoZW4gd2UgY2FuIGRtYV9mZW5jZV9nZXRfcmN1X3NhZmUoKSBpbnRv IGRtYV9mZW5jZV9nZXRfcmN1KCkuCgpDaHJpc3RpYW4uCgo+Cj4gLURhbmllbAo+Cj4+IFJlZ2Fy ZHMsCj4+IENocmlzdGlhbi4KPj4KPj4+ICAgIEEgc2lnbmFsbGVkIGZlbmNlIG1pZ2h0IGFzIHdl bGwgbm90IGV4aXN0LCBzbyBpZgo+Pj4gdGhhdCdzIHdoYXQgIGhhcHBlbmVkIGluIHRoYXQgdGlu eSB3aW5kb3csIHRoZW4geWVzIGEgbGVnYWwgc2NlbmFyaW8KPj4+IGlzIHRoZSBmb2xsb3dpbmc6 Cj4+Pgo+Pj4gdGhyZWFkIEE6Cj4+PiAtIHJjdV9kZXJlZmVyZW5jZShyZXN2LT5leGNsdXNpdmVf ZmVuY2UpOwo+Pj4KPj4+IHRocmVhZCBCOgo+Pj4gLSBkbWFfZmVuY2Ugc2lnbmFscywgcmV0aXJl cywgZHJvcHMgcmVmY291bnQgdG8gMAo+Pj4gLSBzZXRzIHRoZSBleGNsdXNpdmUgZmVuY2UgdG8g TlVMTAo+Pj4gLSBjcmVhdGVzIGEgbmV3IGRtYV9mZW5jZQo+Pj4gLSBzZXRzIHRoZSBleGNsdXNp dmUgZmVuY2UgdG8gdGhhdCBuZXcgZmVuY2UKPj4+Cj4+PiB0aHJlYWQgQToKPj4+IC0ga3JlZl9n ZXRfdW5sZXNzX3plcm8gZmFpbHMsIHdlIHJlcG9ydCB0aGF0IHRoZSBleGNsdXNpdmUgZmVuY2Ug c2xvdCBpcyBOVUxMCj4+Pgo+Pj4gT2ZjIG5vcm1hbGx5IHdlJ3JlIGZ1bGx5IHBpcGVsaW5lLCBh bmQgd2UgbGF6aWx5IGNsZWFyIHNsb3RzLCBzbyBubwo+Pj4gb25lIGV2ZXIgd3JpdGVzIHRoZSBm ZW5jZSBwdHIgdG8gTlVMTC4gQnV0IGNvbmNlcHR1YWxseSBpdCdzIHRvdGFsbHkKPj4+IGZpbmUs IGFuZCBhbiBpbmRpc3Rpbmd1aXNoYWJsZSBzZXF1ZW5jZSBvZiBldmVudHMgZnJvbSB0aGUgcG9p bnQgb2YKPj4+IHZpZXcgb2YgdGhyZWFkIEEuCj4+Pgo+Pj4gRXJnbyBkbWFfZmVuY2VfZ2V0X3Jj dSBpcyBlbm91Z2guIElmIGl0J3Mgbm90LCB3ZSd2ZSBzY3Jld2VkIHVwIHJlYWxseQo+Pj4gYmln IHRpbWUuIFRoZSBvbmx5IHJlYXNvbiB5b3UgbmVlZCBfdW5zYWZlIGlzIGlmIHlvdSBoYXZlCj4+ PiB0eXBlc2FmZV9ieV9yY3UsIG9yIG1heWJlIGlmIHlvdSB5b2xvIHlvdXIgZmVuY2Ugb3JkZXJp bmcgYSBiaXQgbXVjaAo+Pj4gYW5kIGJyZWFrIHRoZSBEQUcgcHJvcGVydHkgaW4gYSBmZXcgY2Fz ZXMuCj4+Pgo+Pj4+IEkgYWdyZWUgd2l0aCBDaHJpc3RpYW4gdGhhdCB0aGF0IHBhcnQgb2YgZG1h X2ZlbmNlX2dldF9yY3Vfc2FmZSBuZWVkcwo+Pj4+IHRvIHN0YXkuICBJIHdhcyBtaXNzaW5nIHRo YXQgdW50aWwgSSBkaWQgbXkgZ2lhbnQgImxldCdzIHdhbGsgdGhyb3VnaAo+Pj4+IHRoZSBjb2Rl IiBlLW1haWwuCj4+PiBXZWxsIGlmIEknbSB3cm9uZyB0aGVyZSdzIGEgX3Rvbl8gb2YgYnJva2Vu IGNvZGUgaW4gdXBzdHJlYW0gcmlnaHQKPj4+IG5vdywgZXZlbiBpbiBkbWEtYnVmL2RtYS1yZXN2 LmMuIFdlJ3JlIHVzaW5nIGRtYV9mZW5jZV9nZXRfcmN1IGEgbG90Lgo+Pj4KPj4+IEFsc28gdGhl IHRpbWluZyBpcyBhbGwgYmFja3dhcmRzOiBnZXRfcmN1X3NhZmUgd2FzIGFkZGVkIGFzIGEgZml4 IGZvcgo+Pj4gd2hlbiBpOTE1IG1hZGUgaXRzIGRtYV9mZW5jZSB0eXBlc2FmZV9ieV9yY3UuIFdl IGRpZG4ndCBoYXZlIGFueSBuZWVkCj4+PiBmb3IgdGhpcyBiZWZvcmVoYW5kLiBTbyBJJ20gcmVh bGx5IG5vdCBxdWl0ZSBidXlpbmcgdGhpcyBzdG9yeSBoZXJlCj4+PiB5ZXQgeW91J3JlIGFsbCB0 cnlpbmcgdG8gc2VsbCBtZSBvbi4KPj4+IC1EYW5pZWwKPj4+Cj4+Pj4gLS1KYXNvbgo+Pj4+Cj4+ Pj4+Pj4gVGhpcyBpcyBjb21wbGV0ZWx5IHVucmVsYXRlZCB0byBTTEFCX1RZUEVTQUZFX0JZX1JD VS4gU2VlIHRoZQo+Pj4+Pj4+IGRtYV9mZW5jZV9jaGFpbiB1c2FnZSBmb3IgcmVmZXJlbmNlLgo+ Pj4+Pj4+Cj4+Pj4+Pj4gV2hhdCB5b3UgY2FuIHJlbW92ZSBpcyB0aGUgc2VxdWVuY2UgbnVtYmVy IGhhbmRsaW5nIGluIGRtYS1idWYuIFRoYXQKPj4+Pj4+PiBzaG91bGQgbWFrZSBhZGRpbmcgZmVu Y2VzIHF1aXRlIGEgYml0IHF1aWNrZXIuCj4+Pj4+PiBJJ2xsIGxvb2sgYXQgdGhhdCBhbmQgdHJ5 IHRvIHVuZGVyc3RhbmQgd2hhdCdzIGdvaW5nIG9uIHRoZXJlLgo+Pj4+PiBIbSBJIHRob3VnaHQg dGhlIHNlcWxvY2sgd2FzIHRvIG1ha2Ugc3VyZSB3ZSBoYXZlIGEgY29uc2lzdGVudCBzZXQgb2YK Pj4+Pj4gZmVuY2VzIGFjcm9zcyBleGNsdXNpdmUgYW5kIGFsbCBzaGFyZWQgc2xvdC4gTm90IHRv IHByb3RlY3QgYWdhaW5zdAo+Pj4+PiB0aGUgZmVuY2UgZGlzYXBwZWFyaW5nIGR1ZSB0byB0eXBl c2FmZV9ieV9yY3UuCj4+Pj4+IC1EYW5pZWwKPj4+Pj4KPj4+Pj4+IC0tSmFzb24KPj4+Pj4+Cj4+ Pj4+Pj4gUmVnYXJkcywKPj4+Pj4+PiBDaHJpc3RpYW4uCj4+Pj4+Pj4KPj4+Pj4+Pj4gU2lnbmVk LW9mZi1ieTogSmFzb24gRWtzdHJhbmQgPGphc29uQGpsZWtzdHJhbmQubmV0Pgo+Pj4+Pj4+PiBD YzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPj4+Pj4+Pj4gQ2M6IENo cmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPj4+Pj4+Pj4gQ2M6IE1h dHRoZXcgQXVsZCA8bWF0dGhldy5hdWxkQGludGVsLmNvbT4KPj4+Pj4+Pj4gQ2M6IE1hYXJ0ZW4g TGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4+Pj4+Pj4+IC0t LQo+Pj4+Pj4+PiAgICAgZHJpdmVycy9kbWEtYnVmL2RtYS1mZW5jZS1jaGFpbi5jICAgICAgICAg fCAgOCArKy0tCj4+Pj4+Pj4+ICAgICBkcml2ZXJzL2RtYS1idWYvZG1hLXJlc3YuYyAgICAgICAg ICAgICAgICB8ICA0ICstCj4+Pj4+Pj4+ICAgICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfZmVuY2UuYyB8ICA0ICstCj4+Pj4+Pj4+ICAgICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2FjdGl2ZS5oICAgICAgICB8ICA0ICstCj4+Pj4+Pj4+ICAgICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3ZtYS5jICAgICAgICAgICB8ICA0ICstCj4+Pj4+Pj4+ICAgICBpbmNsdWRlL2Ry bS9kcm1fc3luY29iai5oICAgICAgICAgICAgICAgICB8ICA0ICstCj4+Pj4+Pj4+ICAgICBpbmNs dWRlL2xpbnV4L2RtYS1mZW5jZS5oICAgICAgICAgICAgICAgICB8IDUwIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCj4+Pj4+Pj4+ICAgICBpbmNsdWRlL2xpbnV4L2RtYS1yZXN2LmggICAgICAgICAg ICAgICAgICB8ICA0ICstCj4+Pj4+Pj4+ICAgICA4IGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlv bnMoKyksIDU5IGRlbGV0aW9ucygtKQo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9kbWEtYnVmL2RtYS1mZW5jZS1jaGFpbi5jIGIvZHJpdmVycy9kbWEtYnVmL2RtYS1mZW5j ZS1jaGFpbi5jCj4+Pj4+Pj4+IGluZGV4IDdkMTI5ZTY4YWM3MDEuLjQ2ZGZjN2Q5NGQ4ZWQgMTAw NjQ0Cj4+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtZmVuY2UtY2hhaW4uYwo+Pj4+ Pj4+PiArKysgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWZlbmNlLWNoYWluLmMKPj4+Pj4+Pj4gQEAg LTE1LDE1ICsxNSwxNyBAQCBzdGF0aWMgYm9vbCBkbWFfZmVuY2VfY2hhaW5fZW5hYmxlX3NpZ25h bGluZyhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSk7Cj4+Pj4+Pj4+ICAgICAgKiBkbWFfZmVuY2Vf Y2hhaW5fZ2V0X3ByZXYgLSB1c2UgUkNVIHRvIGdldCBhIHJlZmVyZW5jZSB0byB0aGUgcHJldmlv dXMgZmVuY2UKPj4+Pj4+Pj4gICAgICAqIEBjaGFpbjogY2hhaW4gbm9kZSB0byBnZXQgdGhlIHBy ZXZpb3VzIG5vZGUgZnJvbQo+Pj4+Pj4+PiAgICAgICoKPj4+Pj4+Pj4gLSAqIFVzZSBkbWFfZmVu Y2VfZ2V0X3JjdV9zYWZlIHRvIGdldCBhIHJlZmVyZW5jZSB0byB0aGUgcHJldmlvdXMgZmVuY2Ug b2YgdGhlCj4+Pj4+Pj4+IC0gKiBjaGFpbiBub2RlLgo+Pj4+Pj4+PiArICogVXNlIHJjdV9kZXJl ZmVyZW5jZSBhbmQgZG1hX2ZlbmNlX2dldF9yY3UgdG8gZ2V0IGEgcmVmZXJlbmNlIHRvIHRoZQo+ Pj4+Pj4+PiArICogcHJldmlvdXMgZmVuY2Ugb2YgdGhlIGNoYWluIG5vZGUuCj4+Pj4+Pj4+ICAg ICAgKi8KPj4+Pj4+Pj4gICAgIHN0YXRpYyBzdHJ1Y3QgZG1hX2ZlbmNlICpkbWFfZmVuY2VfY2hh aW5fZ2V0X3ByZXYoc3RydWN0IGRtYV9mZW5jZV9jaGFpbiAqY2hhaW4pCj4+Pj4+Pj4+ICAgICB7 Cj4+Pj4+Pj4+ICAgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqcHJldjsKPj4+Pj4+Pj4KPj4+Pj4+ Pj4gICAgICAgICByY3VfcmVhZF9sb2NrKCk7Cj4+Pj4+Pj4+IC0gICAgIHByZXYgPSBkbWFfZmVu Y2VfZ2V0X3JjdV9zYWZlKCZjaGFpbi0+cHJldik7Cj4+Pj4+Pj4+ICsgICAgIHByZXYgPSByY3Vf ZGVyZWZlcmVuY2UoY2hhaW4tPnByZXYpOwo+Pj4+Pj4+PiArICAgICBpZiAocHJldikKPj4+Pj4+ Pj4gKyAgICAgICAgICAgICBwcmV2ID0gZG1hX2ZlbmNlX2dldF9yY3UocHJldik7Cj4+Pj4+Pj4+ ICAgICAgICAgcmN1X3JlYWRfdW5sb2NrKCk7Cj4+Pj4+Pj4+ICAgICAgICAgcmV0dXJuIHByZXY7 Cj4+Pj4+Pj4+ICAgICB9Cj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvZG1h LXJlc3YuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtcmVzdi5jCj4+Pj4+Pj4+IGluZGV4IGYyNmM3 MTc0N2Q0M2EuLmNmZTBkYjNjY2EyOTIgMTAwNjQ0Cj4+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZG1h LWJ1Zi9kbWEtcmVzdi5jCj4+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtcmVzdi5j Cj4+Pj4+Pj4+IEBAIC0zNzYsNyArMzc2LDkgQEAgaW50IGRtYV9yZXN2X2NvcHlfZmVuY2VzKHN0 cnVjdCBkbWFfcmVzdiAqZHN0LCBzdHJ1Y3QgZG1hX3Jlc3YgKnNyYykKPj4+Pj4+Pj4gICAgICAg ICAgICAgICAgIGRzdF9saXN0ID0gTlVMTDsKPj4+Pj4+Pj4gICAgICAgICB9Cj4+Pj4+Pj4+Cj4+ Pj4+Pj4+IC0gICAgIG5ldyA9IGRtYV9mZW5jZV9nZXRfcmN1X3NhZmUoJnNyYy0+ZmVuY2VfZXhj bCk7Cj4+Pj4+Pj4+ICsgICAgIG5ldyA9IHJjdV9kZXJlZmVyZW5jZShzcmMtPmZlbmNlX2V4Y2wp Owo+Pj4+Pj4+PiArICAgICBpZiAobmV3KQo+Pj4+Pj4+PiArICAgICAgICAgICAgIG5ldyA9IGRt YV9mZW5jZV9nZXRfcmN1KG5ldyk7Cj4+Pj4+Pj4+ICAgICAgICAgcmN1X3JlYWRfdW5sb2NrKCk7 Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+ICAgICAgICAgc3JjX2xpc3QgPSBkbWFfcmVzdl9zaGFyZWRfbGlz dChkc3QpOwo+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZmVuY2Uu Ywo+Pj4+Pj4+PiBpbmRleCA3MmQ5YjkyYjE3NTQ3Li4wYWViNjExN2YzODkzIDEwMDY0NAo+Pj4+ Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZmVuY2UuYwo+Pj4+ Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZmVuY2UuYwo+Pj4+ Pj4+PiBAQCAtMTYxLDcgKzE2MSw5IEBAIGludCBhbWRncHVfZmVuY2VfZW1pdChzdHJ1Y3QgYW1k Z3B1X3JpbmcgKnJpbmcsIHN0cnVjdCBkbWFfZmVuY2UgKipmLAo+Pj4+Pj4+PiAgICAgICAgICAg ICAgICAgc3RydWN0IGRtYV9mZW5jZSAqb2xkOwo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAgICAgICAgICAg ICAgICAgcmN1X3JlYWRfbG9jaygpOwo+Pj4+Pj4+PiAtICAgICAgICAgICAgIG9sZCA9IGRtYV9m ZW5jZV9nZXRfcmN1X3NhZmUocHRyKTsKPj4+Pj4+Pj4gKyAgICAgICAgICAgICBvbGQgPSByY3Vf ZGVyZWZlcmVuY2UoKnB0cik7Cj4+Pj4+Pj4+ICsgICAgICAgICAgICAgaWYgKG9sZCkKPj4+Pj4+ Pj4gKyAgICAgICAgICAgICAgICAgICAgIG9sZCA9IGRtYV9mZW5jZV9nZXRfcmN1KG9sZCk7Cj4+ Pj4+Pj4+ICAgICAgICAgICAgICAgICByY3VfcmVhZF91bmxvY2soKTsKPj4+Pj4+Pj4KPj4+Pj4+ Pj4gICAgICAgICAgICAgICAgIGlmIChvbGQpIHsKPj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2FjdGl2ZS5oCj4+Pj4+Pj4+IGluZGV4IGQwZmVkYTY4Yjg3NGYuLmJkODljZmM4MDZjYTUgMTAw NjQ0Cj4+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmgKPj4+ Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9hY3RpdmUuaAo+Pj4+Pj4+PiBA QCAtMTAzLDcgKzEwMyw5IEBAIGk5MTVfYWN0aXZlX2ZlbmNlX2dldChzdHJ1Y3QgaTkxNV9hY3Rp dmVfZmVuY2UgKmFjdGl2ZSkKPj4+Pj4+Pj4gICAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5j ZTsKPj4+Pj4+Pj4KPj4+Pj4+Pj4gICAgICAgICByY3VfcmVhZF9sb2NrKCk7Cj4+Pj4+Pj4+IC0g ICAgIGZlbmNlID0gZG1hX2ZlbmNlX2dldF9yY3Vfc2FmZSgmYWN0aXZlLT5mZW5jZSk7Cj4+Pj4+ Pj4+ICsgICAgIGZlbmNlID0gcmN1X2RlcmVmZXJlbmNlKGFjdGl2ZS0+ZmVuY2UpOwo+Pj4+Pj4+ PiArICAgICBpZiAoZmVuY2UpCj4+Pj4+Pj4+ICsgICAgICAgICAgICAgZmVuY2UgPSBkbWFfZmVu Y2VfZ2V0X3JjdShmZW5jZSk7Cj4+Pj4+Pj4+ICAgICAgICAgcmN1X3JlYWRfdW5sb2NrKCk7Cj4+ Pj4+Pj4+Cj4+Pj4+Pj4+ICAgICAgICAgcmV0dXJuIGZlbmNlOwo+Pj4+Pj4+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfdm1hLmMKPj4+Pj4+Pj4gaW5kZXggMGYyMjdmMjhiMjgwMi4uZWQwMzg4ZDk5MTk3ZSAx MDA2NDQKPj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYwo+Pj4+ Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jCj4+Pj4+Pj4+IEBAIC0z NTEsNyArMzUxLDkgQEAgaW50IGk5MTVfdm1hX3dhaXRfZm9yX2JpbmQoc3RydWN0IGk5MTVfdm1h ICp2bWEpCj4+Pj4+Pj4+ICAgICAgICAgICAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsK Pj4+Pj4+Pj4KPj4+Pj4+Pj4gICAgICAgICAgICAgICAgIHJjdV9yZWFkX2xvY2soKTsKPj4+Pj4+ Pj4gLSAgICAgICAgICAgICBmZW5jZSA9IGRtYV9mZW5jZV9nZXRfcmN1X3NhZmUoJnZtYS0+YWN0 aXZlLmV4Y2wuZmVuY2UpOwo+Pj4+Pj4+PiArICAgICAgICAgICAgIGZlbmNlID0gcmN1X2RlcmVm ZXJlbmNlKHZtYS0+YWN0aXZlLmV4Y2wuZmVuY2UpOwo+Pj4+Pj4+PiArICAgICAgICAgICAgIGlm IChmZW5jZSkKPj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgIGZlbmNlID0gZG1hX2ZlbmNl X2dldF9yY3UoZmVuY2UpOwo+Pj4+Pj4+PiAgICAgICAgICAgICAgICAgcmN1X3JlYWRfdW5sb2Nr KCk7Cj4+Pj4+Pj4+ICAgICAgICAgICAgICAgICBpZiAoZmVuY2UpIHsKPj4+Pj4+Pj4gICAgICAg ICAgICAgICAgICAgICAgICAgZXJyID0gZG1hX2ZlbmNlX3dhaXQoZmVuY2UsIE1BWF9TQ0hFRFVM RV9USU1FT1VUKTsKPj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9zeW5jb2Jq LmggYi9pbmNsdWRlL2RybS9kcm1fc3luY29iai5oCj4+Pj4+Pj4+IGluZGV4IDZjZjcyNDNhMWRj NWUuLjZjNDVkNTI5ODhiY2MgMTAwNjQ0Cj4+Pj4+Pj4+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9z eW5jb2JqLmgKPj4+Pj4+Pj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX3N5bmNvYmouaAo+Pj4+Pj4+ PiBAQCAtMTA1LDcgKzEwNSw5IEBAIGRybV9zeW5jb2JqX2ZlbmNlX2dldChzdHJ1Y3QgZHJtX3N5 bmNvYmogKnN5bmNvYmopCj4+Pj4+Pj4+ICAgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7 Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+ICAgICAgICAgcmN1X3JlYWRfbG9jaygpOwo+Pj4+Pj4+PiAtICAg ICBmZW5jZSA9IGRtYV9mZW5jZV9nZXRfcmN1X3NhZmUoJnN5bmNvYmotPmZlbmNlKTsKPj4+Pj4+ Pj4gKyAgICAgZmVuY2UgPSByY3VfZGVyZWZlcmVuY2Uoc3luY29iai0+ZmVuY2UpOwo+Pj4+Pj4+ PiArICAgICBpZiAoZmVuY2UpCj4+Pj4+Pj4+ICsgICAgICAgICAgICAgZmVuY2UgPSBkbWFfZmVu Y2VfZ2V0X3JjdShzeW5jb2JqLT5mZW5jZSk7Cj4+Pj4+Pj4+ICAgICAgICAgcmN1X3JlYWRfdW5s b2NrKCk7Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+ICAgICAgICAgcmV0dXJuIGZlbmNlOwo+Pj4+Pj4+PiBk aWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9kbWEtZmVuY2UuaCBiL2luY2x1ZGUvbGludXgvZG1h LWZlbmNlLmgKPj4+Pj4+Pj4gaW5kZXggNmZmYjRiMmM2MzcxNS4uZjRhMmFiMmIxYWU0NiAxMDA2 NDQKPj4+Pj4+Pj4gLS0tIGEvaW5jbHVkZS9saW51eC9kbWEtZmVuY2UuaAo+Pj4+Pj4+PiArKysg Yi9pbmNsdWRlL2xpbnV4L2RtYS1mZW5jZS5oCj4+Pj4+Pj4+IEBAIC0zMDcsNTYgKzMwNyw2IEBA IHN0YXRpYyBpbmxpbmUgc3RydWN0IGRtYV9mZW5jZSAqZG1hX2ZlbmNlX2dldF9yY3Uoc3RydWN0 IGRtYV9mZW5jZSAqZmVuY2UpCj4+Pj4+Pj4+ICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsK Pj4+Pj4+Pj4gICAgIH0KPj4+Pj4+Pj4KPj4+Pj4+Pj4gLS8qKgo+Pj4+Pj4+PiAtICogZG1hX2Zl bmNlX2dldF9yY3Vfc2FmZSAgLSBhY3F1aXJlIGEgcmVmZXJlbmNlIHRvIGFuIFJDVSB0cmFja2Vk IGZlbmNlCj4+Pj4+Pj4+IC0gKiBAZmVuY2VwOiBwb2ludGVyIHRvIGZlbmNlIHRvIGluY3JlYXNl IHJlZmNvdW50IG9mCj4+Pj4+Pj4+IC0gKgo+Pj4+Pj4+PiAtICogRnVuY3Rpb24gcmV0dXJucyBO VUxMIGlmIG5vIHJlZmNvdW50IGNvdWxkIGJlIG9idGFpbmVkLCBvciB0aGUgZmVuY2UuCj4+Pj4+ Pj4+IC0gKiBUaGlzIGZ1bmN0aW9uIGhhbmRsZXMgYWNxdWlyaW5nIGEgcmVmZXJlbmNlIHRvIGEg ZmVuY2UgdGhhdCBtYXkgYmUKPj4+Pj4+Pj4gLSAqIHJlYWxsb2NhdGVkIHdpdGhpbiB0aGUgUkNV IGdyYWNlIHBlcmlvZCAoc3VjaCBhcyB3aXRoIFNMQUJfVFlQRVNBRkVfQllfUkNVKSwKPj4+Pj4+ Pj4gLSAqIHNvIGxvbmcgYXMgdGhlIGNhbGxlciBpcyB1c2luZyBSQ1Ugb24gdGhlIHBvaW50ZXIg dG8gdGhlIGZlbmNlLgo+Pj4+Pj4+PiAtICoKPj4+Pj4+Pj4gLSAqIEFuIGFsdGVybmF0aXZlIG1l Y2hhbmlzbSBpcyB0byBlbXBsb3kgYSBzZXFsb2NrIHRvIHByb3RlY3QgYSBidW5jaCBvZgo+Pj4+ Pj4+PiAtICogZmVuY2VzLCBzdWNoIGFzIHVzZWQgYnkgc3RydWN0IGRtYV9yZXN2LiBXaGVuIHVz aW5nIGEgc2VxbG9jaywKPj4+Pj4+Pj4gLSAqIHRoZSBzZXFsb2NrIG11c3QgYmUgdGFrZW4gYmVm b3JlIGFuZCBjaGVja2VkIGFmdGVyIGEgcmVmZXJlbmNlIHRvIHRoZQo+Pj4+Pj4+PiAtICogZmVu Y2UgaXMgYWNxdWlyZWQgKGFzIHNob3duIGhlcmUpLgo+Pj4+Pj4+PiAtICoKPj4+Pj4+Pj4gLSAq IFRoZSBjYWxsZXIgaXMgcmVxdWlyZWQgdG8gaG9sZCB0aGUgUkNVIHJlYWQgbG9jay4KPj4+Pj4+ Pj4gLSAqLwo+Pj4+Pj4+PiAtc3RhdGljIGlubGluZSBzdHJ1Y3QgZG1hX2ZlbmNlICoKPj4+Pj4+ Pj4gLWRtYV9mZW5jZV9nZXRfcmN1X3NhZmUoc3RydWN0IGRtYV9mZW5jZSBfX3JjdSAqKmZlbmNl cCkKPj4+Pj4+Pj4gLXsKPj4+Pj4+Pj4gLSAgICAgZG8gewo+Pj4+Pj4+PiAtICAgICAgICAgICAg IHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwo+Pj4+Pj4+PiAtCj4+Pj4+Pj4+IC0gICAgICAgICAg ICAgZmVuY2UgPSByY3VfZGVyZWZlcmVuY2UoKmZlbmNlcCk7Cj4+Pj4+Pj4+IC0gICAgICAgICAg ICAgaWYgKCFmZW5jZSkKPj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOVUxM Owo+Pj4+Pj4+PiAtCj4+Pj4+Pj4+IC0gICAgICAgICAgICAgaWYgKCFkbWFfZmVuY2VfZ2V0X3Jj dShmZW5jZSkpCj4+Pj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKPj4+Pj4+ Pj4gLQo+Pj4+Pj4+PiAtICAgICAgICAgICAgIC8qIFRoZSBhdG9taWNfaW5jX25vdF96ZXJvKCkg aW5zaWRlIGRtYV9mZW5jZV9nZXRfcmN1KCkKPj4+Pj4+Pj4gLSAgICAgICAgICAgICAgKiBwcm92 aWRlcyBhIGZ1bGwgbWVtb3J5IGJhcnJpZXIgdXBvbiBzdWNjZXNzIChzdWNoIGFzIG5vdykuCj4+ Pj4+Pj4+IC0gICAgICAgICAgICAgICogVGhpcyBpcyBwYWlyZWQgd2l0aCB0aGUgd3JpdGUgYmFy cmllciBmcm9tIGFzc2lnbmluZwo+Pj4+Pj4+PiAtICAgICAgICAgICAgICAqIHRvIHRoZSBfX3Jj dSBwcm90ZWN0ZWQgZmVuY2UgcG9pbnRlciBzbyB0aGF0IGlmIHRoYXQKPj4+Pj4+Pj4gLSAgICAg ICAgICAgICAgKiBwb2ludGVyIHN0aWxsIG1hdGNoZXMgdGhlIGN1cnJlbnQgZmVuY2UsIHdlIGtu b3cgd2UKPj4+Pj4+Pj4gLSAgICAgICAgICAgICAgKiBoYXZlIHN1Y2Nlc3NmdWxseSBhY3F1aXJl IGEgcmVmZXJlbmNlIHRvIGl0LiBJZiBpdCBubwo+Pj4+Pj4+PiAtICAgICAgICAgICAgICAqIGxv bmdlciBtYXRjaGVzLCB3ZSBhcmUgaG9sZGluZyBhIHJlZmVyZW5jZSB0byBzb21lIG90aGVyCj4+ Pj4+Pj4+IC0gICAgICAgICAgICAgICogcmVhbGxvY2F0ZWQgcG9pbnRlci4gVGhpcyBpcyBwb3Nz aWJsZSBpZiB0aGUgYWxsb2NhdG9yCj4+Pj4+Pj4+IC0gICAgICAgICAgICAgICogaXMgdXNpbmcg YSBmcmVlbGlzdCBsaWtlIFNMQUJfVFlQRVNBRkVfQllfUkNVIHdoZXJlIHRoZQo+Pj4+Pj4+PiAt ICAgICAgICAgICAgICAqIGZlbmNlIHJlbWFpbnMgdmFsaWQgZm9yIHRoZSBSQ1UgZ3JhY2UgcGVy aW9kLCBidXQgaXQKPj4+Pj4+Pj4gLSAgICAgICAgICAgICAgKiBtYXkgYmUgcmVhbGxvY2F0ZWQu IFdoZW4gdXNpbmcgc3VjaCBhbGxvY2F0b3JzLCB3ZSBhcmUKPj4+Pj4+Pj4gLSAgICAgICAgICAg ICAgKiByZXNwb25zaWJsZSBmb3IgZW5zdXJpbmcgdGhlIHJlZmVyZW5jZSB3ZSBnZXQgaXMgdG8K Pj4+Pj4+Pj4gLSAgICAgICAgICAgICAgKiB0aGUgcmlnaHQgZmVuY2UsIGFzIGJlbG93Lgo+Pj4+ Pj4+PiAtICAgICAgICAgICAgICAqLwo+Pj4+Pj4+PiAtICAgICAgICAgICAgIGlmIChmZW5jZSA9 PSByY3VfYWNjZXNzX3BvaW50ZXIoKmZlbmNlcCkpCj4+Pj4+Pj4+IC0gICAgICAgICAgICAgICAg ICAgICByZXR1cm4gcmN1X3BvaW50ZXJfaGFuZG9mZihmZW5jZSk7Cj4+Pj4+Pj4+IC0KPj4+Pj4+ Pj4gLSAgICAgICAgICAgICBkbWFfZmVuY2VfcHV0KGZlbmNlKTsKPj4+Pj4+Pj4gLSAgICAgfSB3 aGlsZSAoMSk7Cj4+Pj4+Pj4+IC19Cj4+Pj4+Pj4+IC0KPj4+Pj4+Pj4gICAgICNpZmRlZiBDT05G SUdfTE9DS0RFUAo+Pj4+Pj4+PiAgICAgYm9vbCBkbWFfZmVuY2VfYmVnaW5fc2lnbmFsbGluZyh2 b2lkKTsKPj4+Pj4+Pj4gICAgIHZvaWQgZG1hX2ZlbmNlX2VuZF9zaWduYWxsaW5nKGJvb2wgY29v a2llKTsKPj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZG1hLXJlc3YuaCBiL2lu Y2x1ZGUvbGludXgvZG1hLXJlc3YuaAo+Pj4+Pj4+PiBpbmRleCA1NjJiODg1Y2Y5YzNkLi5hMzhj MDIxZjM3OWFmIDEwMDY0NAo+Pj4+Pj4+PiAtLS0gYS9pbmNsdWRlL2xpbnV4L2RtYS1yZXN2LmgK Pj4+Pj4+Pj4gKysrIGIvaW5jbHVkZS9saW51eC9kbWEtcmVzdi5oCj4+Pj4+Pj4+IEBAIC0yNDgs NyArMjQ4LDkgQEAgZG1hX3Jlc3ZfZ2V0X2V4Y2xfdW5sb2NrZWQoc3RydWN0IGRtYV9yZXN2ICpv YmopCj4+Pj4+Pj4+ICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKPj4+Pj4+Pj4KPj4+Pj4+ Pj4gICAgICAgICByY3VfcmVhZF9sb2NrKCk7Cj4+Pj4+Pj4+IC0gICAgIGZlbmNlID0gZG1hX2Zl bmNlX2dldF9yY3Vfc2FmZSgmb2JqLT5mZW5jZV9leGNsKTsKPj4+Pj4+Pj4gKyAgICAgZmVuY2Ug PSByY3VfZGVyZWZlcmVuY2Uob2JqLT5mZW5jZV9leGNsKTsKPj4+Pj4+Pj4gKyAgICAgaWYgKGZl bmNlKQo+Pj4+Pj4+PiArICAgICAgICAgICAgIGZlbmNlID0gZG1hX2ZlbmNlX2dldF9yY3UoZmVu Y2UpOwo+Pj4+Pj4+PiAgICAgICAgIHJjdV9yZWFkX3VubG9jaygpOwo+Pj4+Pj4+Pgo+Pj4+Pj4+ PiAgICAgICAgIHJldHVybiBmZW5jZTsKPj4+Pj4KPj4+Pj4gLS0KPj4+Pj4gRGFuaWVsIFZldHRl cgo+Pj4+PiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPj4+Pj4gaHR0cHM6 Ly9uYW0xMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHAlM0ElMkYl MkZibG9nLmZmd2xsLmNoJTJGJmFtcDtkYXRhPTA0JTdDMDElN0NjaHJpc3RpYW4ua29lbmlnJTQw YW1kLmNvbSU3QzdmMjJkOTM5YmY2MTQ2ZmMxNGFkMDhkOTJjMzJkYzU4JTdDM2RkODk2MWZlNDg4 NGU2MDhlMTFhODJkOTk0ZTE4M2QlN0MwJTdDMCU3QzYzNzU4OTQxOTI0ODU0MjkwNiU3Q1Vua25v d24lN0NUV0ZwYkdac2IzZDhleUpXSWpvaU1DNHdMakF3TURBaUxDSlFJam9pVjJsdU16SWlMQ0pC VGlJNklrMWhhV3dpTENKWFZDSTZNbjAlM0QlN0MxMDAwJmFtcDtzZGF0YT1ydlQ1UGhwR01MUzBt akZ5UFRmVFhRb0dGejQzcnhhNmFyVTV1cFFaQkRrJTNEJmFtcDtyZXNlcnZlZD0wCj4+PgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==