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 88A93EB64DC for ; Mon, 3 Jul 2023 11:07:10 +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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:From:References:Cc:To: Subject:Date:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=sDqtnNs3WXU+pmXQUR28fcrONcMdEzhBq0k3h/f7QVk=; b=2UJfdFcDcrGZs44C9mD5oThGSn k8lr/pSb7L8HyfceRjLZzopGf7iKhxp9E56yr7NVBwNNVN8c04bxYmpFgYoS0S6VL9XTVKooZQ28I JVYYQ8cEZWU47HYIRxMiF5jh7Uva1/2wHTOdJHxEcEATtvilC7fVaLogNKn/1XHrqex37aYwhhMpW PoUh4N6Xlbw7md/dMj7Fs8lquGUlkp0A8r3eXMeGuAf0C6E8iO+hO7wBJey9pAfMyeGKI08b1Qgsf XpNAgX8yKLhrmOpibTzPYNfRfQkWvAF/kxWV9/Mn+yvg3UeJ7dgTipTWxKkROf+0QUZLWQzsGRrXP EUlZWzvQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qGHOZ-00AKUC-36; Mon, 03 Jul 2023 11:07:03 +0000 Received: from mail-dm3nam02on20605.outbound.protection.outlook.com ([2a01:111:f400:7e83::605] helo=NAM02-DM3-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qGHOV-00AKST-0e; Mon, 03 Jul 2023 11:07:02 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z2nQCt7KIMVwR2CoB+rK8fZ7JEMhUUyfXR4Sgv3m9lRCQlIP8K7kPN0jItNn9jWKKSqIBZCV70tYlp/ihaqVDOo2IfK51+JLtMDNX9eTLUEs69dPH9PlrmuzmxEE3PDJSJJUrxVIsS49s+zXC4aofBC5t9fn0hv1YquuHDS1i94Bsr1ReAq1re10xxm4m+DYw9IwCk7NE/uPIYe732Kgbrj3x1YpNqJpidhAuIqhCwNeuQLCujcxpB2G74R6HB+mbo0s6h82h5vutyOVyXcElPIDM9QQTMHJIbarlOSchw2prsDmizBo9FRV9GbfCU1ReKircacnDRQTj+pDcW1AKw== 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=9fB2Va4s+TwVX7wydDYKCFEqtBrVaF0YG/ECMYk98h0=; b=MPSFXj0BB5ymrlIfCbwO+SteFtl367C2ZiQ5gutGP1YM9Vasi1fXVQqL35WAEAE5RSnOTGnW+MvM9UMbuNJEl5QoRO2Hthmf5XARWlZxUL++AWsKZdXLSnN8nDS1kohyNsIlTjCjFG0Lant5qiZ2jViFaKM6fa38uh3IkdkSEQGuwB1lb2NKyYdr/fo78GkehAAccMkmc3rDiAObRESIip/6i6dD4FvRk836dhE0FiEWQebgTUzMZQb8IApiENXV6OLHgY8p8Yh9rVgbQfHwKELis/fkfhGiEg4ThYyqThmM5UqpZtmmZIcY34owWSIftRdXpdZgPqmUlR30tDjM1w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=synaptics.com; dmarc=pass action=none header.from=synaptics.com; dkim=pass header.d=synaptics.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Synaptics.onmicrosoft.com; s=selector2-Synaptics-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9fB2Va4s+TwVX7wydDYKCFEqtBrVaF0YG/ECMYk98h0=; b=O9YLTJwjowH8wQKhlUrgDqBasIsg5/j+l+3a7moYlXwsJmZ2nbL+qGpRAkE7RnvdvppWxX5nMMkszzDKMR404duHUo6RioZDP1UUpLshj3zj7VCYStrUDflR61CSKZxeC/t9zQIfHEFvqXNJ+sIq8vjWgw3+InBBEoPCjTC94pA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=synaptics.com; Received: from DM6PR03MB5196.namprd03.prod.outlook.com (2603:10b6:5:24a::19) by SJ2PR03MB7475.namprd03.prod.outlook.com (2603:10b6:a03:55b::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Mon, 3 Jul 2023 11:06:48 +0000 Received: from DM6PR03MB5196.namprd03.prod.outlook.com ([fe80::6882:b9c1:2b2d:998d]) by DM6PR03MB5196.namprd03.prod.outlook.com ([fe80::6882:b9c1:2b2d:998d%5]) with mapi id 15.20.6544.024; Mon, 3 Jul 2023 11:06:48 +0000 Message-ID: Date: Mon, 3 Jul 2023 19:06:40 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [PATCH v3 10/11] media: v4l2: Add DELETE_BUF ioctl Content-Language: en-GB To: Benjamin Gaignard Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, p.zabel@pengutronix.de, ming.qian@nxp.com, hverkuil-cisco@xs4all.nl, gregkh@linuxfoundation.org, ezequiel@vanguardiasur.com.ar, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-rockchip@lists.infradead.org, nicolas.dufresne@collabora.com, linux-staging@lists.linux.dev, kernel@collabora.com, mchehab@kernel.org, tfiga@chromium.org, m.szyprowski@samsung.com, ayaka References: <20230622131349.144160-1-benjamin.gaignard@collabora.com> <20230622131349.144160-11-benjamin.gaignard@collabora.com> <80a03c29-6f3d-43f1-755c-10f3ae2c2756@synaptics.com> <42a45bad-09c7-ffb6-49cb-29ec0826599d@collabora.com> <3b22fda9-4a0e-2c03-2f12-19e5e3239235@synaptics.com> <54833256-7d88-9316-4f0f-b8c57552cd7b@synaptics.com> <0f4fd31f-ef61-8dee-7a88-55263f266975@collabora.com> <483472c8-74fd-4208-343e-4a8bf79dc6e7@synaptics.com> <2b64b605-61cc-248e-a67a-85266434c7a6@collabora.com> <16feefaa-e4d9-ad5a-71c5-cee8ce8be5e4@synaptics.com> From: Hsia-Jun Li In-Reply-To: X-ClientProxiedBy: BYAPR02CA0045.namprd02.prod.outlook.com (2603:10b6:a03:54::22) To DM6PR03MB5196.namprd03.prod.outlook.com (2603:10b6:5:24a::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6PR03MB5196:EE_|SJ2PR03MB7475:EE_ X-MS-Office365-Filtering-Correlation-Id: 4b7353f3-020c-4b86-44c1-08db7bb598bf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0OrmLXBUcjoQBkLHE0mVEbTpr8muTOhGI8LnI1Me2g6xZfSVcrCkuwTo/rPJwsfrbEZbBQmLGsjcdxE0SJ4MksyzTIW+Mj/1Q+msoP9DjL9aMy58Zxcef2yFqeGORxEVr22B6bZ5iEKab7PEy+CGaJOR6xmEGt8g5ZFDxezN3i5WxbozrpX1Tp8GJVE3DvYik0C02VAlpJ/bD8G0WLN2jn5Xw3Ztkk+GcLZkaVYf+HyRmL/LcauxSCuP0izkDj4zk6oU2dVHW24tzPQBVtEhSekSpDAHKe+1qyiLjDhsqcxzue+KBNHu6BmD8LiAS5hINUFvJye5HktNMX2HyJs3ayQCnq4Lwk/JbAYcgyaoU42nevfBV8dbf4QLyo/HcsStIc00WVKjvHw5BryXa6zeif1iBSqUI9EXZKWTzML64QXn+zJdEQbA0zZD0v62NqOFdCccSMiLQ/ujQHSiIR413M2g/yU+pMiCUWS7i7IIjtqGXCAnPKp9NvIfX/58T3/5WBA8UxSw+91gSUlFnpDw9FeMk+4voxQOxXjcGix4SrndCAkdjetimDwnBykeuRybpm9KdvpY5QC3JRnVQQYuWf1M98aOSHJqv7brWnUH1fHGNrnV7i8q/G29ZJtgzt7eDJmjuOFPLRkABqqw/kwGk7C+9sHoA7MSnKDf+evNBqE= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR03MB5196.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(366004)(39860400002)(396003)(136003)(376002)(451199021)(31696002)(41300700001)(6486002)(30864003)(38350700002)(6666004)(38100700002)(2616005)(83380400001)(6506007)(26005)(186003)(53546011)(66574015)(52116002)(966005)(6512007)(86362001)(478600001)(316002)(2906002)(36756003)(66476007)(6916009)(4326008)(66556008)(66946007)(8936002)(8676002)(31686004)(7416002)(5660300002)(66899021)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OFlyVXo3eTRBQUlsL1dXOVgvLysrQ2xwUmdCcGhlbDdvUGFVT3NIMDYyeFpS?= =?utf-8?B?cnNnOVQ3ZmxrNFZsaHpncFdHY1JuYk1SZGlmek5qR0NEekZzZVUxaVFIZzRl?= =?utf-8?B?eTR1LzZEY203YjROTVhHTTBKMi80ckVHdDRVNVQvSXBaTC9abm5VSkFtc1Vo?= =?utf-8?B?Mm85MEdqOTU5QWVhOEpxTGZZR1dYb09ESUFNSWVsdzAwdmlFaVlyZVF1UTZx?= =?utf-8?B?anhhZnFRSkRTcW5UMld3M2t5aHNTMTZub1BWZUdvZDM5dDFDV21DbWhlNmdO?= =?utf-8?B?MnBPdHZJam5sRmNCbVQ1aWthVW0vL1JtbTRIc0xqMDd2VEJQcUtGNlFYc3kz?= =?utf-8?B?TExHamc4SXE1Q1JML0hiMHBhRzRDRGJhc1NhZU5ZSDRJZU9aenVKN2RkVVZr?= =?utf-8?B?RVJXM1FFSmxlUzI5N29jRWFyelBaWHlFWXlCZG5TSUtwbWZ6dEs3c3dlajJq?= =?utf-8?B?NE5BL0I5b0k1bWE3UXlsajExcUp4OURTS3NRc09ndE5hYjg2Z3h3RmJJRy9V?= =?utf-8?B?bFl3UWV6dHcwWkNDTGprU0hSQ1VFTVROQi9tbDdSZFpwb20rRXZNVURSUVRG?= =?utf-8?B?Wml1dHE3MXE3ZklnVUNoazdsTU1jKytITWE4NFAwV0xqUFg4RGtGOURIK3Ir?= =?utf-8?B?ZHV2MkF5Rm5OL2xRcy82cFUvLzdUeEJTdXdDWkhXeVB2akpYNGtobUxpQjRy?= =?utf-8?B?WVRFUWFQTDR1cndyZVplVUVOOU1rQ1pBQmpDMjZySGw2UWdwcktnMGpsNzYv?= =?utf-8?B?dFhPOU50L3Bkejk3U0RBbVQ4WnQxQTZQVzQrd2NBU2J6aXNRN2pUcFNFVUU5?= =?utf-8?B?UHRrWkhRNG9mbWFtTEJrdFFZUit5Ympsa2FFYXpGU1FsZGpiQ1FCWDZTcVdH?= =?utf-8?B?QnVBTVdLSGdpQjdPWGI3dTJlQS9YQVRNaWpwRUVBY3hWTjJ6VVVpME56Z0xw?= =?utf-8?B?R0JoL3RRcEtRNmhtNXZwSGl3aWg4UVExVGR0d0piRHF1cjVNMkthcjFQRkFh?= =?utf-8?B?WVNDQy9yTm0zS0JUWFA5ODNqTnljRm9LT2VKYkphN1NyL3BLTzNIMDZKVkVJ?= =?utf-8?B?b3ZsZ1pCTVF3OEozUU56UkVsZ2ZZRCs4cU5QUFpPMGg2QXFKSGxoQk15TmhZ?= =?utf-8?B?S0tVNEFoQkN6enc5b095SEFra1VDaXRkVzdwQ2kxT1E1S0pnRHF1MCsyRmN6?= =?utf-8?B?MDNoTnZUaHBVUFV0c2xsOFVXdjFTSEc5VmVkM1BjUXk3M3RzSzdMVTFRYjFp?= =?utf-8?B?eHR1TTErUnE5bC9VWmdaR3E4bjlhYzF0aXp2MGoxOG5OSSs3bUorRWYwSFlD?= =?utf-8?B?MGlYUVUvSmNNeFZrY2lIZVpMeE5BRzRCc0xDMk54Q3J6dk0vYVdqWnpEaElJ?= =?utf-8?B?dGlQSWhGZUtkQ1lpVlVpZXJTMk0yMmZrQTF6SlN3TnpxaVdkRzROT0hiNGJU?= =?utf-8?B?MTkreExSSnFHd0RxR25abW1qS0JIYjhFdE8wSXJQUCsyK21TWlg3S0cyNWtl?= =?utf-8?B?R1lvdFJHUkFWTmZFZ2ZnbURCT3hNelkxR1RVTmtWL1F3bFpWcERSUlBXQytI?= =?utf-8?B?eHJDdkRyeXBkRGpDMDBuTStleWw5Nmk0dGhiWktaTzRGNFJ6d2ZHaWFZRlFu?= =?utf-8?B?K1YwbWVQQ0FDMEpKWU1NaFZTM1hiNkZJb3pSNjBXdFBBa0l6UXEya0pTdFhI?= =?utf-8?B?NWQ2bDZDQ013bUxZN1BVQk1aZ2RMNDZJMXk2SE5iV05jYlJJbEQwVmxqWWpz?= =?utf-8?B?NHRGenA0bjVmQm50eGpma1lvdHV1a0VGUFlUUUxXdEdBV1MwaDlJNVJxb0ow?= =?utf-8?B?Q2lQUGwvZkdEQkgrVVBqcExOTStqcE0vS1ZxSXNrakVxZTdZM3pxbmxGNmRm?= =?utf-8?B?RDZ2Mit0K0taSDl3TE5uVytWVVZHTlQzc2ZTYlNURTh6azd4UVVoSlZWLzRE?= =?utf-8?B?QXVzU2lXTXN3WURjNXNzTTRiY21BR3ZmYi9OdGlVQWpKNGV4ZGx3UzY2UkJM?= =?utf-8?B?QkdDRU5IY05lQk15Z1d3V25MTFNiZGc1dVN0aVQ0UTlvNmRtUXJ0TGdvYVFP?= =?utf-8?B?K0Zod2NFSlZrdTF6RXg4d1Z5QlF6ZS9nbnFJMzZQNmdVamRSMkhOdTNpZmhX?= =?utf-8?Q?8/+31WDD0+FUDX6d5U5b0dYcj?= X-OriginatorOrg: synaptics.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4b7353f3-020c-4b86-44c1-08db7bb598bf X-MS-Exchange-CrossTenant-AuthSource: DM6PR03MB5196.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jul 2023 11:06:48.6455 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 335d1fbc-2124-4173-9863-17e7051a2a0e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: +NJMDaP0oM0fX9eyegQ572As9Y1cWCOUKtQl3X20fcOsvAxLw452Lf3qNHXFNBUZXT/jm3/6uZqGW2aZdTqePQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR03MB7475 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230703_040659_294647_BC4C2A2A X-CRM114-Status: GOOD ( 12.18 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org U29ycnkgZm9yIGh0bWwgdmVyc2lvbiwgYWdhaW4uCgpPbiA3LzMvMjMgMTg6MzUsIEJlbmphbWlu IEdhaWduYXJkIHdyb3RlOgo+IENBVVRJT046IEVtYWlsIG9yaWdpbmF0ZWQgZXh0ZXJuYWxseSwg ZG8gbm90IGNsaWNrIGxpbmtzIG9yIG9wZW4gCj4gYXR0YWNobWVudHMgdW5sZXNzIHlvdSByZWNv Z25pemUgdGhlIHNlbmRlciBhbmQga25vdyB0aGUgY29udGVudCBpcyBzYWZlLgo+Cj4KPiBMZSAw My8wNy8yMDIzIMOgIDExOjIwLCBIc2lhLUp1biBMaSBhIMOpY3JpdCA6Cj4+Cj4+IE9uIDcvMy8y MyAxNjo1MiwgQmVuamFtaW4gR2FpZ25hcmQgd3JvdGU6Cj4+PiBDQVVUSU9OOiBFbWFpbCBvcmln aW5hdGVkIGV4dGVybmFsbHksIGRvIG5vdCBjbGljayBsaW5rcyBvciBvcGVuCj4+PiBhdHRhY2ht ZW50cyB1bmxlc3MgeW91IHJlY29nbml6ZSB0aGUgc2VuZGVyIGFuZCBrbm93IHRoZSBjb250ZW50 IGlzCj4+PiBzYWZlLgo+Pj4KPj4+Cj4+PiBMZSAwMy8wNy8yMDIzIMOgIDEwOjE5LCBIc2lhLUp1 biBMaSBhIMOpY3JpdCA6Cj4+Pj4KPj4+PiBPbiA3LzMvMjMgMTY6MTIsIEJlbmphbWluIEdhaWdu YXJkIHdyb3RlOgo+Pj4+PiBDQVVUSU9OOiBFbWFpbCBvcmlnaW5hdGVkIGV4dGVybmFsbHksIGRv IG5vdCBjbGljayBsaW5rcyBvciBvcGVuCj4+Pj4+IGF0dGFjaG1lbnRzIHVubGVzcyB5b3UgcmVj b2duaXplIHRoZSBzZW5kZXIgYW5kIGtub3cgdGhlIGNvbnRlbnQgaXMKPj4+Pj4gc2FmZS4KPj4+ Pj4KPj4+Pj4KPj4+Pj4gTGUgMzAvMDYvMjAyMyDDoCAxMTo0MywgSHNpYS1KdW4gTGkgYSDDqWNy aXQgOgo+Pj4+Pj4KPj4+Pj4+IE9uIDYvMjcvMjMgMTY6NDcsIEhzaWEtSnVuIExpIHdyb3RlOgo+ Pj4+Pj4+IENBVVRJT046IEVtYWlsIG9yaWdpbmF0ZWQgZXh0ZXJuYWxseSwgZG8gbm90IGNsaWNr IGxpbmtzIG9yIG9wZW4KPj4+Pj4+PiBhdHRhY2htZW50cyB1bmxlc3MgeW91IHJlY29nbml6ZSB0 aGUgc2VuZGVyIGFuZCBrbm93IHRoZSBjb250ZW50IGlzCj4+Pj4+Pj4gc2FmZS4KPj4+Pj4+Pgo+ Pj4+Pj4+Cj4+Pj4+Pj4gT24gNi8yNy8yMyAxNjo0MywgQmVuamFtaW4gR2FpZ25hcmQgd3JvdGU6 Cj4+Pj4+Pj4+IENBVVRJT046IEVtYWlsIG9yaWdpbmF0ZWQgZXh0ZXJuYWxseSwgZG8gbm90IGNs aWNrIGxpbmtzIG9yIG9wZW4KPj4+Pj4+Pj4gYXR0YWNobWVudHMgdW5sZXNzIHlvdSByZWNvZ25p emUgdGhlIHNlbmRlciBhbmQga25vdyB0aGUgCj4+Pj4+Pj4+IGNvbnRlbnQgaXMKPj4+Pj4+Pj4g c2FmZS4KPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gTGUgMjcvMDYvMjAyMyDDoCAwOTozMCwg SHNpYS1KdW4gTGkgYSDDqWNyaXQgOgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IE9uIDYvMjIvMjMgMjE6 MTMsIEJlbmphbWluIEdhaWduYXJkIHdyb3RlOgo+Pj4+Pj4+Pj4+IENBVVRJT046IEVtYWlsIG9y aWdpbmF0ZWQgZXh0ZXJuYWxseSwgZG8gbm90IGNsaWNrIGxpbmtzIG9yIG9wZW4KPj4+Pj4+Pj4+ PiBhdHRhY2htZW50cyB1bmxlc3MgeW91IHJlY29nbml6ZSB0aGUgc2VuZGVyIGFuZCBrbm93IHRo ZQo+Pj4+Pj4+Pj4+IGNvbnRlbnQgaXMKPj4+Pj4+Pj4+PiBzYWZlLgo+Pj4+Pj4+Pj4+Cj4+Pj4+ Pj4+Pj4KPj4+Pj4+Pj4+PiBWSURJT0NfREVMRVRFX0JVRiBpb2N0bCBhbGxvd3MgdG8gZGVsZXRl IGEgYnVmZmVyIGZyb20gYSBxdWV1ZS4KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IFNpZ25lZC1vZmYt Ynk6IEJlbmphbWluIEdhaWduYXJkCj4+Pj4+Pj4+Pj4gPGJlbmphbWluLmdhaWduYXJkQGNvbGxh Ym9yYS5jb20+Cj4+Pj4+Pj4+Pj4gLS0tCj4+Pj4+Pj4+Pj4gwqAgLi4uL3VzZXJzcGFjZS1hcGkv bWVkaWEvdjRsL3VzZXItZnVuYy5yc3QgfCAxICsKPj4+Pj4+Pj4+PiDCoCAuLi4vbWVkaWEvdjRs L3ZpZGlvYy1kZWxldGUtYnVmLnJzdCB8IDUxCj4+Pj4+Pj4+Pj4gKysrKysrKysrKysrKysrKysr Kwo+Pj4+Pj4+Pj4+IMKgIC4uLi9tZWRpYS9jb21tb24vdmlkZW9idWYyL3ZpZGVvYnVmMi1jb3Jl LmMgfCAzMyArKysrKysrKysrKysKPj4+Pj4+Pj4+PiDCoCAuLi4vbWVkaWEvY29tbW9uL3ZpZGVv YnVmMi92aWRlb2J1ZjItdjRsMi5jIHwgNiArKysKPj4+Pj4+Pj4+PiDCoCBkcml2ZXJzL21lZGlh L3Y0bDItY29yZS92NGwyLWRldi5jIHwgMSArCj4+Pj4+Pj4+Pj4gwqAgZHJpdmVycy9tZWRpYS92 NGwyLWNvcmUvdjRsMi1pb2N0bC5jIHwgMTAgKysrKwo+Pj4+Pj4+Pj4+IMKgIGluY2x1ZGUvbWVk aWEvdjRsMi1pb2N0bC5oIHwgNCArKwo+Pj4+Pj4+Pj4+IMKgIGluY2x1ZGUvbWVkaWEvdmlkZW9i dWYyLWNvcmUuaCB8IDkgKysrKwo+Pj4+Pj4+Pj4+IMKgIGluY2x1ZGUvbWVkaWEvdmlkZW9idWYy LXY0bDIuaCB8IDExICsrKysKPj4+Pj4+Pj4+PiDCoCBpbmNsdWRlL3VhcGkvbGludXgvdmlkZW9k ZXYyLmggfCAyICsKPj4+Pj4+Pj4+PiDCoCAxMCBmaWxlcyBjaGFuZ2VkLCAxMjggaW5zZXJ0aW9u cygrKQo+Pj4+Pj4+Pj4+IMKgIGNyZWF0ZSBtb2RlIDEwMDY0NAo+Pj4+Pj4+Pj4+IERvY3VtZW50 YXRpb24vdXNlcnNwYWNlLWFwaS9tZWRpYS92NGwvdmlkaW9jLWRlbGV0ZS1idWYucnN0Cj4+Pj4+ Pj4+Pj4KPj4+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBp L21lZGlhL3Y0bC91c2VyLWZ1bmMucnN0Cj4+Pj4+Pj4+Pj4gYi9Eb2N1bWVudGF0aW9uL3VzZXJz cGFjZS1hcGkvbWVkaWEvdjRsL3VzZXItZnVuYy5yc3QKPj4+Pj4+Pj4+PiBpbmRleCAxNWZmMGJm N2JiZTYuLjhjNzQwMTZlMTJmZCAxMDA2NDQKPj4+Pj4+Pj4+PiAtLS0gYS9Eb2N1bWVudGF0aW9u L3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL3VzZXItZnVuYy5yc3QKPj4+Pj4+Pj4+PiArKysgYi9E b2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL3VzZXItZnVuYy5yc3QKPj4+Pj4+ Pj4+PiBAQCAtMTcsNiArMTcsNyBAQCBGdW5jdGlvbiBSZWZlcmVuY2UKPj4+Pj4+Pj4+PiDCoMKg wqDCoMKgIHZpZGlvYy1kYmctZy1jaGlwLWluZm8KPj4+Pj4+Pj4+PiDCoMKgwqDCoMKgIHZpZGlv Yy1kYmctZy1yZWdpc3Rlcgo+Pj4+Pj4+Pj4+IMKgwqDCoMKgwqAgdmlkaW9jLWRlY29kZXItY21k Cj4+Pj4+Pj4+Pj4gK8KgwqDCoCB2aWRpb2MtZGVsZXRlLWJ1Zgo+Pj4+Pj4+Pj4+IMKgwqDCoMKg wqAgdmlkaW9jLWRxZXZlbnQKPj4+Pj4+Pj4+PiDCoMKgwqDCoMKgIHZpZGlvYy1kdi10aW1pbmdz LWNhcAo+Pj4+Pj4+Pj4+IMKgwqDCoMKgwqAgdmlkaW9jLWVuY29kZXItY21kCj4+Pj4+Pj4+Pj4g ZGlmZiAtLWdpdAo+Pj4+Pj4+Pj4+IGEvRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL21lZGlh L3Y0bC92aWRpb2MtZGVsZXRlLWJ1Zi5yc3QKPj4+Pj4+Pj4+PiBiL0RvY3VtZW50YXRpb24vdXNl cnNwYWNlLWFwaS9tZWRpYS92NGwvdmlkaW9jLWRlbGV0ZS1idWYucnN0Cj4+Pj4+Pj4+Pj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQKPj4+Pj4+Pj4+PiBpbmRleCAwMDAwMDAwMDAwMDAuLjBlN2NlNThm OTFiYwo+Pj4+Pj4+Pj4+IC0tLSAvZGV2L251bGwKPj4+Pj4+Pj4+PiArKysgCj4+Pj4+Pj4+Pj4g Yi9Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL3ZpZGlvYy1kZWxldGUtYnVm LnJzdAo+Pj4+Pj4+Pj4+IEBAIC0wLDAgKzEsNTEgQEAKPj4+Pj4+Pj4+PiArLi4gU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdGREwtMS4xLW5vLWludmFyaWFudHMtb3ItbGF0ZXIKPj4+Pj4+Pj4+ PiArLi4gYzpuYW1lc3BhY2U6OiBWNEwKPj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+Pj4gKy4uIF9WSURJ T0NfREVMRVRFX0JVRjoKPj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+Pj4gKyoqKioqKioqKioqKioqKioq KioqKioqKgo+Pj4+Pj4+Pj4+ICtpb2N0bCBWSURJT0NfREVMRVRFX0JVRgo+Pj4+Pj4+Pj4+ICsq KioqKioqKioqKioqKioqKioqKioqKioKPj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+Pj4gK05hbWUKPj4+ Pj4+Pj4+PiArPT09PQo+Pj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+PiArVklESU9DX0RFTEVURV9CVUYg LSBEZWxldGUgYSBidWZmZXIgZnJvbSBhIHF1ZXVlCj4+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+Pj4+ICtT eW5vcHNpcwo+Pj4+Pj4+Pj4+ICs9PT09PT09PQo+Pj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+PiArLi4g YzptYWNybzo6IFZJRElPQ19ERUxFVEVfQlVGCj4+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+Pj4+ICtgYGlu dCBpb2N0bChpbnQgZmQsIFZJRElPQ19ERUxFVEVfQlVGLCBzdHJ1Y3QgdjRsMl9idWZmZXIKPj4+ Pj4+Pj4+PiAqYXJncClgYAo+Pj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+PiArQXJndW1lbnRzCj4+Pj4+ Pj4+Pj4gKz09PT09PT09PQo+Pj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+PiArYGBmZGBgCj4+Pj4+Pj4+ Pj4gK8KgwqDCoCBGaWxlIGRlc2NyaXB0b3IgcmV0dXJuZWQgYnkgOmM6ZnVuYzpgb3BlbigpYC4K Pj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+Pj4gK2BgYXJncGBgCj4+Pj4+Pj4+Pj4gK8KgwqDCoCBQb2lu dGVyIHRvIHN0cnVjdCA6Yzp0eXBlOmB2NGwyX2J1ZmZlcmAuCj4+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+ Pj4+ICtEZXNjcmlwdGlvbgo+Pj4+Pj4+Pj4+ICs9PT09PT09PT09PQo+Pj4+Pj4+Pj4+ICsKPj4+ Pj4+Pj4+PiArQXBwbGljYXRpb25zIGNhbiBvcHRpb25hbGx5IGNhbGwgdGhlIDpyZWY6YFZJRElP Q19ERUxFVEVfQlVGYAo+Pj4+Pj4+Pj4+IGlvY3RsIHRvCj4+Pj4+Pj4+Pj4gK2RlbGV0ZSBhIGJ1 ZmZlciBmcm9tIGEgcXVldWUuCj4+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+Pj4+ICtUaGUgc3RydWN0IDpj OnR5cGU6YHY0bDJfYnVmZmVyYCBzdHJ1Y3R1cmUgaXMgc3BlY2lmaWVkIGluCj4+Pj4+Pj4+Pj4g KzpyZWY6YGJ1ZmZlcmAuCj4+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+Pj4+ICtSZXR1cm4gVmFsdWUKPj4+ Pj4+Pj4+PiArPT09PT09PT09PT09Cj4+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+Pj4+ICtPbiBzdWNjZXNz IDAgaXMgcmV0dXJuZWQsIG9uIGVycm9yIC0xIGFuZCB0aGUgYGBlcnJub2BgCj4+Pj4+Pj4+Pj4g dmFyaWFibGUgaXMKPj4+Pj4+Pj4+PiBzZXQKPj4+Pj4+Pj4+PiArYXBwcm9wcmlhdGVseS4gVGhl IGdlbmVyaWMgZXJyb3IgY29kZXMgYXJlIGRlc2NyaWJlZCBhdCB0aGUKPj4+Pj4+Pj4+PiArOnJl ZjpgR2VuZXJpYyBFcnJvciBDb2RlcyA8Z2VuLWVycm9ycz5gIGNoYXB0ZXIuCj4+Pj4+Pj4+Pj4g Kwo+Pj4+Pj4+Pj4+ICtFQlVTWQo+Pj4+Pj4+Pj4+ICvCoMKgwqAgRmlsZSBJL08gaXMgaW4gcHJv Z3Jlc3MuCj4+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+Pj4+ICtFSU5WQUwKPj4+Pj4+Pj4+PiArwqDCoMKg IFRoZSBidWZmZXIgYGBpbmRleGBgIGRvZXNuJ3QgZXhpc3QgaW4gdGhlIHF1ZXVlLgo+Pj4+Pj4+ Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvdmlkZW9idWYy LWNvcmUuYwo+Pj4+Pj4+Pj4+IGIvZHJpdmVycy9tZWRpYS9jb21tb24vdmlkZW9idWYyL3ZpZGVv YnVmMi1jb3JlLmMKPj4+Pj4+Pj4+PiBpbmRleCA4OTk3ODNmNjc1ODAuLmFhNTQ2Yzk3MmMzZCAx MDA2NDQKPj4+Pj4+Pj4+PiAtLS0gYS9kcml2ZXJzL21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvdmlk ZW9idWYyLWNvcmUuYwo+Pj4+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVv YnVmMi92aWRlb2J1ZjItY29yZS5jCj4+Pj4+Pj4+Pj4gQEAgLTE2MzcsNiArMTYzNywzOSBAQCBp bnQgdmIyX2NvcmVfcHJlcGFyZV9idWYoc3RydWN0IHZiMl9xdWV1ZQo+Pj4+Pj4+Pj4+ICpxLAo+ Pj4+Pj4+Pj4+IHVuc2lnbmVkIGludCBpbmRleCwgdm9pZCAqcGIpCj4+Pj4+Pj4+Pj4gwqAgfQo+ Pj4+Pj4+Pj4+IMKgIEVYUE9SVF9TWU1CT0xfR1BMKHZiMl9jb3JlX3ByZXBhcmVfYnVmKTsKPj4+ Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+ICtpbnQgdmIyX2NvcmVfZGVsZXRlX2J1ZihzdHJ1Y3QgdmIyX3F1 ZXVlICpxLCB1bnNpZ25lZCBpbnQgCj4+Pj4+Pj4+Pj4gaW5kZXgpCj4+Pj4+Pj4+Pj4gK3sKPj4+ Pj4+Pj4+PiArwqDCoMKgwqDCoMKgIHN0cnVjdCB2YjJfYnVmZmVyICp2YjsKPj4+Pj4+Pj4+PiAr Cj4+Pj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoCB2YiA9IHZiMl9nZXRfYnVmZmVyKHEsIGluZGV4KTsK Pj4+Pj4+Pj4+PiArwqDCoMKgwqDCoMKgIGlmICghdmIpIHsKPj4+Pj4+Pj4+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBkcHJpbnRrKHEsIDEsICJpbnZhbGlkIGJ1ZmZlciBpbmRleCAl ZFxuIiwKPj4+Pj4+Pj4+PiBpbmRleCk7Cj4+Pj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgcmV0dXJuIC1FSU5WQUw7Cj4+Pj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoCB9Cj4+Pj4+ Pj4+Pj4gKwo+Pj4+Pj4+Pj4+ICvCoMKgwqDCoMKgwqAgaWYgKHZiLT5zdGF0ZSAhPSBWQjJfQlVG X1NUQVRFX0RFUVVFVUVEKSB7Cj4+Pj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgZHByaW50ayhxLCAxLCAiY2FuJ3QgZGVsZXRlIG5vbiBkZXF1ZXVlZCBidWZmZXIKPj4+Pj4+ Pj4+PiBpbmRleAo+Pj4+Pj4+Pj4+ICVkXG4iLCBpbmRleCk7Cj4+Pj4+Pj4+Pj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FSU5WQUw7Cj4+Pj4+Pj4+Pj4gK8KgwqDCoMKg wqDCoCB9Cj4+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+Pj4gSSBrbm93IHRoZSBkcml2ZXIgY291bGQgaW1w bGVtZW50IGl0cyBvd24KPj4+Pj4+Pj4+IHY0bDJfaW9jdGxfb3BzLT52aWRpb2NfZGVsZXRlX2J1 ZigpIHRoYXQgY2hlY2sgd2hldGhlciBhIAo+Pj4+Pj4+Pj4gYnVmZmVyIGlzCj4+Pj4+Pj4+PiB1 c2VkIGJ5IHRoZSBoYXJkd2FyZSBhcyBhIGZ1dHVyZSByZWZlcmVuY2UgZnJhbWUuCj4+Pj4+Pj4+ PiBCdXQgSSB0aGluayB3ZSBuZWVkIGEgZmxhZyB0byBsZXQgdGhlIHVzZXIga25vdyB3aGljaCBi dWZmZXIgaXMKPj4+Pj4+Pj4+IHN0aWxsCj4+Pj4+Pj4+PiB1c2VkIGJ5IHRoZSBoYXJkd2FyZS4K Pj4+Pj4+Pj4+IEFsdGVybmF0aXZlIHJlZiBjYXNlIGlzIHNhZmUsIHdlIG9ubHkga25vdyBpdCdz IGV4aXN0aW5nIHdoZW4KPj4+Pj4+Pj4+IGl0IGlzCj4+Pj4+Pj4+PiBkZXF1ZXVlZCBpbiBjdXJy ZW50IFY0TDIgYnVmZmVyIG1lY2hhbmlzbS4KPj4+Pj4+Pj4+IFdoaWxlIHRoZSBHb2xkZW4gcmVm ZXJlbmNlIGZyYW1lLCBzdWNoIGxvbmcgdGVybSByZWZlcmVuY2UgZnJhbWUKPj4+Pj4+Pj4+IGNv dWxkCj4+Pj4+Pj4+PiBsYXN0IG11Y2ggbG9uZ2VyLgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBJdCBpcyB1 cCB0byB1c2VybGFuZCBzdGFjayB0byBrbm93IGZyYW1lcyBsaWZlIHRpbWUsIGl0IGdvdCB0aGUK Pj4+Pj4+Pj4gaW5mb3JtYXRpb24gZm9yIHRoYXQuCj4+Pj4+Pj4KPj4+Pj4+PiBUaGF0IGlzIHRy dWUgZm9yIHRoZSBzdGF0ZWxlc3MgY29kZWMgZHJpdmVyLgo+Pj4+Pj4+Cj4+Pj4+Pj4gV2hpbGUg YXBwbGljYXRpb24gZm9yIHN0YXRlZnVsIGRlY29kZXIgY291bGQgbmV2ZXIgZG8gdGhhdC4gSXQg YWxzbwo+Pj4+Pj4+IGJyZWFrcyB3aGF0IHRoZSBkb2N1bWVudCBzYWlkOgo+Pj4+Pj4+Cj4+Pj4+ Pj4gIlRoZSBiYWNraW5nIG1lbW9yeSBvZiB8Q0FQVFVSRXwgYnVmZmVycyB0aGF0IGFyZSB1c2Vk IGFzIHJlZmVyZW5jZQo+Pj4+Pj4+IGZyYW1lcyBieSB0aGUgc3RyZWFtIG1heSBiZSByZWFkIGJ5 IHRoZSBoYXJkd2FyZSBldmVuIGFmdGVyIHRoZXkgCj4+Pj4+Pj4gYXJlCj4+Pj4+Pj4gZGVxdWV1 ZWQuIENvbnNlcXVlbnRseSwgdGhlIGNsaWVudCBzaG91bGQgYXZvaWQgd3JpdGluZyBpbnRvIHRo aXMKPj4+Pj4+PiBtZW1vcnkKPj4+Pj4+PiB3aGlsZSB0aGUgfENBUFRVUkV8IHF1ZXVlIGlzIHN0 cmVhbWluZy4gRmFpbHVyZSB0byBvYnNlcnZlIHRoaXMgbWF5Cj4+Pj4+Pj4gcmVzdWx0IGluIGNv cnJ1cHRpb24gb2YgZGVjb2RlZCBmcmFtZXMuIgo+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4g K8KgwqDCoMKgwqDCoCBpZiAodmItPnBsYW5lc1swXS5tZW1fcHJpdikKPj4+Pj4+Pj4+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjYWxsX3ZvaWRfdmJfcW9wKHZiLCBidWZfY2xlYW51 cCwgdmIpOwo+Pj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+PiArwqDCoMKgwqDCoMKgIC8qIEZyZWUgTU1B UCBidWZmZXJzIG9yIHJlbGVhc2UgVVNFUlBUUiBidWZmZXJzICovCj4+Pj4+Pj4+Pj4gK8KgwqDC oMKgwqDCoCBpZiAocS0+bWVtb3J5ID09IFZCMl9NRU1PUllfTU1BUCkKPj4+Pj4+Pj4+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfX3ZiMl9idWZfbWVtX2ZyZWUodmIpOwo+Pj4+Pj4K Pj4+Pj4+IEhlcmUgaXMgYW5vdGhlciBwcm9ibGVtIGZvciB0aGUgZXhpc3RpbmcgYXBwbGljYXRp b24sIHRoZSBtbWFwKCkgCj4+Pj4+PiBmcm9tCj4+Pj4+PiB0aGUgbW1hcCBvZmZzZXQgb3IgZXhw b3J0YnVmZmVyIGZkIHdvdWxkIG5vdCBjcmVhdGUgYSByZWZlcmVuY2UgdG8KPj4+Pj4+IGJ1ZmZl ciBpbiB0aGlzIHN0ZXAod2hpbGUgdGhlIGV4cG9ydGJ1ZmZlciB3b3VsZCBjcmVhdGUgb25lIGl0 c2VsZikuCj4+Pj4+Pgo+Pj4+Pj4gV2hlbiB5b3UgZGVsZXRlIGEgYnVmZmVyLCB5b3UgbWF5IG5v dCByZWxlYXNlIGl0IGZyb20gaXRzIHZpcnR1YWwKPj4+Pj4+IG1lbW9yeSBzcGFjZSwgbGVhdmlu ZyBhIGNvcnJ1cHRlZCB2aXJ0dWFsIG1lbW9yeSBzcGFjZS4gQWxzbyB0aGlzCj4+Pj4+PiBiZWhh dmlvciBpcyByaWdodCwgYmVjYXVzZSBtbWFwKDIpIHNheXM6Cj4+Pj4+Pgo+Pj4+Pj4gIkFmdGVy wqAgdGhlwqAgbW1hcCgpwqAgY2FsbCBoYXMgcmV0dXJuZWQsIHRoZSBmaWxlIGRlc2NyaXB0b3Is IGZkLCBjYW4KPj4+Pj4+IGJlIGNsb3NlZCBpbW1lZGlhdGVseSB3aXRob3V0IGludmFsaWRhdGlu ZyB0aGUgbWFw4oCQcGluZy4iCj4+Pj4+Cj4+Pj4+IEV4aXN0aW5nIGFwcGxpY2F0aW9ucyBkbyBu b3QgY2FsbCBERUxFVEVfQlVGIGlvY3RsIGFuZCB3aGVuIGNhbGwgaXQKPj4+Pj4gdGhleSB3aWxs IGJlIGF3YXJlIHRoYXQgdGhlIGJ1ZmZlciBpcyByZW1vdmVkLgo+Pj4+PiBJIGhhdmUgZG9uZSBp dCBpbiBHU3RyZWFtZXI6Cj4+Pj4+IGh0dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50LmNvbS92 Mi91cmw/dT1odHRwcy0zQV9fZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZ19iZW5qYW1pbi5nYWlnbmFy ZDFfZ3N0cmVhbWVyXy0yRF9jb21taXRfZmNhMGZiYzkzNGY0NDQwNjkzY2UwZmY2YzhkYzhhMmU1 ZjVmMTdkOSZkPUR3SURhUSZjPTdkZkJKOGNYYldqaGMwQmhJbXU4d1ZJb1VGbUJ6ajFzODhyOEVH eU0wVVkmcj1QNHhiMl83YmlxQnhENExHR1ByU1Y2ai1qZjNDM3hsUjdQWFUtbUxUZVpFJm09VEdI OXRvVHpHUmZPNWFCc2ZhTXZHYmNPdy0yOHE2Y1BtcFg2dlNjYkhqcEN0YUx0Yi1SdXZCdnNKMHo5 UnZBQiZzPVVmbDFjY2ZSWmYyRWhuZkNCdm5RelJKVjlDRGhHeGw1c3BlOVdORUNzcFUmZT0gCj4+ Pj4+Cj4+Pj4+Cj4+Pj4+Cj4+Pj4KPj4+PiBJIGhhdmUgcmVhZCB0aGF0Lgo+Pj4+Cj4+Pj4gVGhl cmUgaXMgbm90IGEgVlA4IHBhcnNlciBpbiBHc3RyZWFtZXIsIHdoaWxlIGEgcGFyc2VyIHdvdWxk IG5vdCB3b3JrCj4+Pj4gd2hlbiBkZWFsIHdpdGggdGhlIHNlY3VyZSB2aWRlbyh1c2Vyc3BhY2Ug Y2FuJ3QgYWNjZXNzIHRoZSBkYXRhCj4+Pj4gY29udGV4dCBhdCBhbGwpLgo+Pj4+Cj4+Pj4gQmVz aWRlcywgdGhpcyBhZGRzIGV4dHJhIHdvcmsgZm9yIHRoZSBhcHBsaWNhdGlvbiBmb3IgYSBzdGF0 ZWZ1bCBjb2RlYwo+Pj4+IGRyaXZlci4gVGhlIGFwcGxpY2F0aW9uIG5lZWQgdG8gcGFyc2VyIHRo ZSBiaXRzdHJlYW0gYW5kIHRyYWNrIHRoZSAKPj4+PiBkcGIuCj4+Pj4KPj4+PiBJIGRvbid0IG1p bmQgaWYgeW91IGNvdWxkIGZpeCB0aGUgbm9uZmljdGlvbiBtZWNoYW5pc20gZm9yIHRob3NlCj4+ Pj4gbm9uLWRpc3BsYXkgZnJhbWUgYW5kIGludGVybmFsIHJlZmVyZW5jZSBzdGF0ZS4KPj4+Pgo+ Pj4+IFRoYXQgY291bGQgYmUgcmVxdWlyZW1lbnQgZm9yIGNvZGVjIGZpcm13YXJlIHRoYXQgaXRz IGRyaXZlciBjb3VsZAo+Pj4+IHN1cHBvcnQgdGhpcyBERUxFVEVfQlVGIGlvY3RsKCkgZmVhdHVy ZS4KPj4+Cj4+PiBTb3JyeSBJIGRvbid0IHNlZSB0aGUgbGluayB3aXRoIG15IHBhdGNoZXMgaGVy ZS4uLgo+Pj4gSSBoYXZlIHdvcmsgb24gbm9uLXNlY3VyZSBWUDkgb24gc3RhdGVsZXNzIGNvZGVj Lgo+Pj4gREVMRVRFX0JVRiBpb2N0bCBpcyBvcHRpb25hbCBhbmQgdGhlIG1haW4gZ29hbCBpcyB0 byBvZmZlciBhIHdheSB0bwo+Pj4gYXBwbGljYXRpb25zCj4+PiB0byBzYXZlIG1lbW9yeSBpZiB0 aGV5IGtub3cgd2hlbiB0aGV5IGNvdWxkIGRlbGV0ZSBidWZmZXJzIHdpdGhvdXQgCj4+PiByaXNr Lgo+Pgo+PiBJIHRyeSB0byBleHBsYWluIHdoeSBJIHRoaW5rIHRoaXMgZGVzaWduIGluIG5vdCAi Y29tcGxldGUiLiBPbmUKPj4gcHJvYmxlbSByZXNvbHZlZCwgbW9yZSBwcm9ibGVtcyB3b3VsZCBv Y2N1ci4KPj4KPj4KPj4gRm9yIG5vbi1zZWN1cmUgdmlkZW8sIHRob3NlIGFwcGxpY2F0aW9ucyBo YXZlIHdvcmtlZDoKPj4KPj4gLSBJdCB3b3VsZCBicmVhayB3aGF0IHN0YXRlZnVsIG1lYW5zIGhl cmUsIGFwcGxpY2F0aW9uIG5lZWQgdG8KPj4gYWNxdWlyZShwYXJzZSkgdGhlIGluZm9ybWF0aW9u IHRoYXQgZHJpdmVyIHNob3VsZCBvZmZlci4KPj4KPj4gwqAgT3IgaXQgd291bGQgYnJlYWsgdGhl IGRlY29kaW5nIG1vZGVsLgo+Pgo+PiAtIFlvdXIgR3N0cmVhbWVyIHNhbXBsZSBjb2RlIG9yIHRo aXMgZGVzaWduIHdvbid0IHdvcmsgZm9yIEFWMS4KPiB3aHkgPwoKQSBmcmFtZSBpbiBBVjEgY291 bGQgYmUgcHV0IHRvIGRpc3BsYXkgb3JkZXIgd2l0aCBhIGZ1dHVyZSBmcmFtZS4gVGhhdCAKaXMg cXVpdGUgZGlmZmVyZW50IHRvIHRob3NlIElUVSBjb2RlY3MuCgpTdXBwb3NpbmcgYSBmcmFtZSAo d2UgY2FsbCBpdCBmcmFtZSAwKSB3aXRob3V0IHNob3dfZGlzcGxheSBmcmFtZSwgeW91IApjb3Vs ZCBkZWxldGUgaXQgKGp1c3Qgd2FudCB0byBkbyB0aGF0KSBvbmNlIGl0IGlzIGRlY29kZWQuCgpB Y3R1YWxseSwgdW5sZXNzIDcgZnV0dXJlIGZyYW1lcyBoYXZlIGNhbWUgYW5kIHBhcnNlciBoYXMg YWNrbm93bGVkZ2VkIAp0aGVtLCBpdCBpcyBub3Qgc2FmZSB0byBkZWxldGUgdGhhdCBmcmFtZS4K Ck9yIGEgc2hvd19leGlzdCB0aGF0IG1ha2UgZnJhbWUgMCBwcmVzZW50LgoKSW4gbXkgcGVyc29u YWwgb3BpbmlvbiwgdGhpcyBmZWF0dXJlIGNvdWxkIGJyZWFrIG1hbnkgdUFQSSdzLCBJIGhhdmUg CnNhaWQgbXkgd29ycnlpbmcgaW4gdGhlIG90aGVyIGVtYWlscy4KPj4KPj4gRm9yIGFsbCB0aGUg ZnV0dXJlIHBvc3NpYmxlIHNlY3VyZSB2aWRlbzoKPj4KPj4gLSBUaGlzIGZlYXR1cmUgY291bGQg bmV2ZXIgYmUgdXNlZCBmcm9tIHRoZSBjdXJyZW50IGRlc2lnbi4KPj4KPj4KPj4+Cj4+Pj4KPj4+ Pj4KPj4+Pj4gUmVnYXJkcywKPj4+Pj4gQmVuamFtaW4KPj4+Pj4KPj4+Pj4+Cj4+Pj4+Pj4+Pj4g K8KgwqDCoMKgwqDCoCBlbHNlIGlmIChxLT5tZW1vcnkgPT0gVkIyX01FTU9SWV9ETUFCVUYpCj4+ Pj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgX192YjJfYnVmX2RtYWJ1Zl9w dXQodmIpOwo+Pj4+Pj4+Pj4+ICvCoMKgwqDCoMKgwqAgZWxzZQo+Pj4+Pj4+Pj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9fdmIyX2J1Zl91c2VycHRyX3B1dCh2Yik7Cj4+Pj4+Pj4+ Pj4gKwo+Pj4+Pj4+Pj4+ICvCoMKgwqDCoMKgwqAgdmIyX3F1ZXVlX3JlbW92ZV9idWZmZXIocSwg dmIpOwo+Pj4+Pj4+Pj4+ICvCoMKgwqDCoMKgwqAga2ZyZWUodmIpOwo+Pj4+Pj4+Pj4+ICsKPj4+ Pj4+Pj4+PiArwqDCoMKgwqDCoMKgIGRwcmludGsocSwgMiwgImJ1ZmZlciAlZCBkZWxldGVkXG4i LCBpbmRleCk7Cj4+Pj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoCByZXR1cm4gMDsKPj4+Pj4+Pj4+PiAr fQo+Pj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+PiDCoCAvKgo+Pj4+Pj4+Pj4+IMKgwqAgKiB2YjJfc3Rh cnRfc3RyZWFtaW5nKCkgLSBBdHRlbXB0IHRvIHN0YXJ0IHN0cmVhbWluZy4KPj4+Pj4+Pj4+PiDC oMKgICogQHE6wqDCoMKgwqDCoMKgwqDCoCB2aWRlb2J1ZjIgcXVldWUKPj4+Pj4+Pj4+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9jb21tb24vdmlkZW9idWYyL3ZpZGVvYnVmMi12NGwyLmMK Pj4+Pj4+Pj4+PiBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItdjRs Mi5jCj4+Pj4+Pj4+Pj4gaW5kZXggNzI0MTM1ZDQxZjdmLi5jZWE2NjZjMTdiNDEgMTAwNjQ0Cj4+ Pj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9tZWRpYS9jb21tb24vdmlkZW9idWYyL3ZpZGVvYnVmMi12 NGwyLmMKPj4+Pj4+Pj4+PiArKysgYi9kcml2ZXJzL21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvdmlk ZW9idWYyLXY0bDIuYwo+Pj4+Pj4+Pj4+IEBAIC03NTEsNiArNzUxLDEyIEBAIGludCB2YjJfcHJl cGFyZV9idWYoc3RydWN0IHZiMl9xdWV1ZSAqcSwKPj4+Pj4+Pj4+PiBzdHJ1Y3QKPj4+Pj4+Pj4+ PiBtZWRpYV9kZXZpY2UgKm1kZXYsCj4+Pj4+Pj4+Pj4gwqAgfQo+Pj4+Pj4+Pj4+IMKgIEVYUE9S VF9TWU1CT0xfR1BMKHZiMl9wcmVwYXJlX2J1Zik7Cj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiAraW50 IHZiMl9kZWxldGVfYnVmKHN0cnVjdCB2YjJfcXVldWUgKnEsIHN0cnVjdCB2NGwyX2J1ZmZlciAq YikKPj4+Pj4+Pj4+PiArewo+Pj4+Pj4+Pj4+ICvCoMKgwqDCoMKgwqAgcmV0dXJuIHZiMl9jb3Jl X2RlbGV0ZV9idWYocSwgYi0+aW5kZXgpOwo+Pj4+Pj4+Pj4+ICt9Cj4+Pj4+Pj4+Pj4gK0VYUE9S VF9TWU1CT0xfR1BMKHZiMl9kZWxldGVfYnVmKTsKPj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+Pj4gwqAg aW50IHZiMl9jcmVhdGVfYnVmcyhzdHJ1Y3QgdmIyX3F1ZXVlICpxLCBzdHJ1Y3QKPj4+Pj4+Pj4+ PiB2NGwyX2NyZWF0ZV9idWZmZXJzCj4+Pj4+Pj4+Pj4gKmNyZWF0ZSkKPj4+Pj4+Pj4+PiDCoCB7 Cj4+Pj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25lZCByZXF1ZXN0ZWRfcGxhbmVzID0g MTsKPj4+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1k ZXYuYwo+Pj4+Pj4+Pj4+IGIvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1kZXYuYwo+Pj4+ Pj4+Pj4+IGluZGV4IGY4MTI3OTQ5MjY4Mi4uODBhY2UyZTFlOTMyIDEwMDY0NAo+Pj4+Pj4+Pj4+ IC0tLSBhL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItZGV2LmMKPj4+Pj4+Pj4+PiArKysg Yi9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWRldi5jCj4+Pj4+Pj4+Pj4gQEAgLTcyMCw2 ICs3MjAsNyBAQCBzdGF0aWMgdm9pZCBkZXRlcm1pbmVfdmFsaWRfaW9jdGxzKHN0cnVjdAo+Pj4+ Pj4+Pj4+IHZpZGVvX2RldmljZSAqdmRldikKPj4+Pj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBTRVRfVkFMSURfSU9DVEwob3BzLCBWSURJT0NfUFJFUEFSRV9CVUYsCj4+ Pj4+Pj4+Pj4gdmlkaW9jX3ByZXBhcmVfYnVmKTsKPj4+Pj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBTRVRfVkFMSURfSU9DVEwob3BzLCBWSURJT0NfU1RSRUFNT04sCj4+ Pj4+Pj4+Pj4gdmlkaW9jX3N0cmVhbW9uKTsKPj4+Pj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBTRVRfVkFMSURfSU9DVEwob3BzLCBWSURJT0NfU1RSRUFNT0ZGLAo+Pj4+ Pj4+Pj4+IHZpZGlvY19zdHJlYW1vZmYpOwo+Pj4+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIFNFVF9WQUxJRF9JT0NUTChvcHMsIFZJRElPQ19ERUxFVEVfQlVGLAo+Pj4+Pj4+ Pj4+IHZpZGlvY19kZWxldGVfYnVmKTsKPj4+Pj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgIH0KPj4+ Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqAgaWYgKGlzX3ZpZCB8fCBpc192Ymkg fHwgaXNfbWV0YSkgewo+Pj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3Y0bDIt Y29yZS92NGwyLWlvY3RsLmMKPj4+Pj4+Pj4+PiBiL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0 bDItaW9jdGwuYwo+Pj4+Pj4+Pj4+IGluZGV4IGE4NThhY2VhNjU0Ny4uMWM3MzcyNzlkM2VmIDEw MDY0NAo+Pj4+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItaW9jdGwu Ywo+Pj4+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItaW9jdGwuYwo+ Pj4+Pj4+Pj4+IEBAIC0yMTU2LDYgKzIxNTYsMTUgQEAgc3RhdGljIGludCB2NGxfcHJlcGFyZV9i dWYoY29uc3Qgc3RydWN0Cj4+Pj4+Pj4+Pj4gdjRsMl9pb2N0bF9vcHMgKm9wcywKPj4+Pj4+Pj4+ PiDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiByZXQgPyByZXQgOiBvcHMtPnZpZGlvY19wcmVwYXJl X2J1ZihmaWxlLCBmaCwgCj4+Pj4+Pj4+Pj4gYik7Cj4+Pj4+Pj4+Pj4gwqAgfQo+Pj4+Pj4+Pj4+ Cj4+Pj4+Pj4+Pj4gK3N0YXRpYyBpbnQgdjRsX2RlbGV0ZV9idWYoY29uc3Qgc3RydWN0IHY0bDJf aW9jdGxfb3BzICpvcHMsCj4+Pj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqZmgsIHZvaWQgCj4+ Pj4+Pj4+Pj4gKmFyZykKPj4+Pj4+Pj4+PiArewo+Pj4+Pj4+Pj4+ICvCoMKgwqDCoMKgwqAgc3Ry dWN0IHY0bDJfYnVmZmVyICpiID0gYXJnOwo+Pj4+Pj4+Pj4+ICvCoMKgwqDCoMKgwqAgaW50IHJl dCA9IGNoZWNrX2ZtdChmaWxlLCBiLT50eXBlKTsKPj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+Pj4gK8Kg wqDCoMKgwqDCoCByZXR1cm4gcmV0ID8gcmV0IDogb3BzLT52aWRpb2NfZGVsZXRlX2J1ZihmaWxl LCBmaCwgYik7Cj4+Pj4+Pj4+Pj4gK30KPj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+Pj4gwqAgc3RhdGlj IGludCB2NGxfZ19wYXJtKGNvbnN0IHN0cnVjdCB2NGwyX2lvY3RsX29wcyAqb3BzLAo+Pj4+Pj4+ Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKmZoLAo+Pj4+Pj4+Pj4+IHZvaWQK Pj4+Pj4+Pj4+PiAqYXJnKQo+Pj4+Pj4+Pj4+IMKgIHsKPj4+Pj4+Pj4+PiBAQCAtMjkwNSw2ICsy OTE0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2NGwyX2lvY3RsX2luZm8KPj4+Pj4+Pj4+PiB2 NGwyX2lvY3Rsc1tdID0gewo+Pj4+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqAgSU9DVExfSU5GTyhW SURJT0NfRU5VTV9GUkVRX0JBTkRTLCB2NGxfZW51bV9mcmVxX2JhbmRzLAo+Pj4+Pj4+Pj4+IHY0 bF9wcmludF9mcmVxX2JhbmQsIDApLAo+Pj4+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqAgSU9DVExf SU5GTyhWSURJT0NfREJHX0dfQ0hJUF9JTkZPLCB2NGxfZGJnX2dfY2hpcF9pbmZvLAo+Pj4+Pj4+ Pj4+IHY0bF9wcmludF9kYmdfY2hpcF9pbmZvLCBJTkZPX0ZMX0NMRUFSKHY0bDJfZGJnX2NoaXBf aW5mbywKPj4+Pj4+Pj4+PiBtYXRjaCkpLAo+Pj4+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqAgSU9D VExfSU5GTyhWSURJT0NfUVVFUllfRVhUX0NUUkwsIHY0bF9xdWVyeV9leHRfY3RybCwKPj4+Pj4+ Pj4+PiB2NGxfcHJpbnRfcXVlcnlfZXh0X2N0cmwsIElORk9fRkxfQ1RSTCB8Cj4+Pj4+Pj4+Pj4g SU5GT19GTF9DTEVBUih2NGwyX3F1ZXJ5X2V4dF9jdHJsLCBpZCkpLAo+Pj4+Pj4+Pj4+ICvCoMKg wqDCoMKgwqAgSU9DVExfSU5GTyhWSURJT0NfREVMRVRFX0JVRiwgdjRsX2RlbGV0ZV9idWYsCj4+ Pj4+Pj4+Pj4gdjRsX3ByaW50X2J1ZmZlciwgSU5GT19GTF9RVUVVRSksCj4+Pj4+Pj4+Pj4gwqAg fTsKPj4+Pj4+Pj4+PiDCoCAjZGVmaW5lIFY0TDJfSU9DVExTIEFSUkFZX1NJWkUodjRsMl9pb2N0 bHMpCj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tZWRpYS92NGwy LWlvY3RsLmgKPj4+Pj4+Pj4+PiBiL2luY2x1ZGUvbWVkaWEvdjRsMi1pb2N0bC5oCj4+Pj4+Pj4+ Pj4gaW5kZXggZWRiNzMzZjIxNjA0Li4yZjIzMmVkODg0YzcgMTAwNjQ0Cj4+Pj4+Pj4+Pj4gLS0t IGEvaW5jbHVkZS9tZWRpYS92NGwyLWlvY3RsLmgKPj4+Pj4+Pj4+PiArKysgYi9pbmNsdWRlL21l ZGlhL3Y0bDItaW9jdGwuaAo+Pj4+Pj4+Pj4+IEBAIC0xNjMsNiArMTYzLDggQEAgc3RydWN0IHY0 bDJfZmg7Cj4+Pj4+Pj4+Pj4gwqDCoCAqwqDCoMKgwqAgOnJlZjpgVklESU9DX0NSRUFURV9CVUZT IDx2aWRpb2NfY3JlYXRlX2J1ZnM+YCBpb2N0bAo+Pj4+Pj4+Pj4+IMKgwqAgKiBAdmlkaW9jX3By ZXBhcmVfYnVmOiBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IAo+Pj4+Pj4+Pj4+IGltcGxl bWVudHMKPj4+Pj4+Pj4+PiDCoMKgICrCoMKgwqDCoCA6cmVmOmBWSURJT0NfUFJFUEFSRV9CVUYg PHZpZGlvY19wcmVwYXJlX2J1Zj5gIGlvY3RsCj4+Pj4+Pj4+Pj4gKyAqIEB2aWRpb2NfZGVsZXRl X2J1ZjogcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCBpbXBsZW1lbnRzCj4+Pj4+Pj4+Pj4g KyAqwqDCoMKgwqAgOnJlZjpgVklESU9DX0RFTEVURV9CVUYgPHZpZGlvY19kZWxldGVfYnVmPmAg aW9jdGwKPj4+Pj4+Pj4+PiDCoMKgICogQHZpZGlvY19vdmVybGF5OiBwb2ludGVyIHRvIHRoZSBm dW5jdGlvbiB0aGF0IGltcGxlbWVudHMKPj4+Pj4+Pj4+PiDCoMKgICrCoMKgwqDCoCA6cmVmOmBW SURJT0NfT1ZFUkxBWSA8dmlkaW9jX292ZXJsYXk+YCBpb2N0bAo+Pj4+Pj4+Pj4+IMKgwqAgKiBA dmlkaW9jX2dfZmJ1ZjogcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCBpbXBsZW1lbnRzCj4+ Pj4+Pj4+Pj4gQEAgLTQyMiw2ICs0MjQsOCBAQCBzdHJ1Y3QgdjRsMl9pb2N0bF9vcHMgewo+Pj4+ Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCB2NGwyX2NyZWF0ZV9idWZmZXJzCj4+Pj4+Pj4+Pj4g KmIpOwo+Pj4+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqAgaW50ICgqdmlkaW9jX3ByZXBhcmVfYnVm KShzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqZmgsCj4+Pj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3Ry dWN0IHY0bDJfYnVmZmVyICpiKTsKPj4+Pj4+Pj4+PiArwqDCoMKgwqDCoMKgIGludCAoKnZpZGlv Y19kZWxldGVfYnVmKShzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqZmgsCj4+Pj4+Pj4+Pj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHN0cnVjdCB2NGwyX2J1ZmZlciAqYik7Cj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiDCoMKgwqDC oMKgwqDCoMKgIGludCAoKnZpZGlvY19vdmVybGF5KShzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAq ZmgsCj4+Pj4+Pj4+Pj4gdW5zaWduZWQKPj4+Pj4+Pj4+PiBpbnQgaSk7Cj4+Pj4+Pj4+Pj4gwqDC oMKgwqDCoMKgwqDCoCBpbnQgKCp2aWRpb2NfZ19mYnVmKShzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9p ZCAqZmgsCj4+Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWVkaWEvdmlkZW9idWYyLWNv cmUuaAo+Pj4+Pj4+Pj4+IGIvaW5jbHVkZS9tZWRpYS92aWRlb2J1ZjItY29yZS5oCj4+Pj4+Pj4+ Pj4gaW5kZXggMDgwYjc4M2Q2MDhkLi4wZjllNjhmNzZiNzcgMTAwNjQ0Cj4+Pj4+Pj4+Pj4gLS0t IGEvaW5jbHVkZS9tZWRpYS92aWRlb2J1ZjItY29yZS5oCj4+Pj4+Pj4+Pj4gKysrIGIvaW5jbHVk ZS9tZWRpYS92aWRlb2J1ZjItY29yZS5oCj4+Pj4+Pj4+Pj4gQEAgLTg0MCw2ICs4NDAsMTUgQEAg aW50IHZiMl9jb3JlX2NyZWF0ZV9idWZzKHN0cnVjdCB2YjJfcXVldWUKPj4+Pj4+Pj4+PiAqcSwK Pj4+Pj4+Pj4+PiBlbnVtIHZiMl9tZW1vcnkgbWVtb3J5LAo+Pj4+Pj4+Pj4+IMKgwqAgKi8KPj4+ Pj4+Pj4+PiDCoCBpbnQgdmIyX2NvcmVfcHJlcGFyZV9idWYoc3RydWN0IHZiMl9xdWV1ZSAqcSwg dW5zaWduZWQgaW50Cj4+Pj4+Pj4+Pj4gaW5kZXgsCj4+Pj4+Pj4+Pj4gdm9pZCAqcGIpOwo+Pj4+ Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gKy8qKgo+Pj4+Pj4+Pj4+ICsgKiB2YjJfY29yZV9kZWxldGVfYnVm KCkgLQo+Pj4+Pj4+Pj4+ICsgKiBAcTogcG9pbnRlciB0byAmc3RydWN0IHZiMl9xdWV1ZSB3aXRo IHZpZGVvYnVmMiBxdWV1ZS4KPj4+Pj4+Pj4+PiArICogQGluZGV4OsKgwqDCoMKgIGlkIG51bWJl ciBvZiB0aGUgYnVmZmVyLgo+Pj4+Pj4+Pj4+ICsgKgo+Pj4+Pj4+Pj4+ICsgKsKgIFJldHVybjog cmV0dXJucyB6ZXJvIG9uIHN1Y2Nlc3M7IGFuIGVycm9yIGNvZGUgb3RoZXJ3aXNlLgo+Pj4+Pj4+ Pj4+ICsgKi8KPj4+Pj4+Pj4+PiAraW50IHZiMl9jb3JlX2RlbGV0ZV9idWYoc3RydWN0IHZiMl9x dWV1ZSAqcSwgdW5zaWduZWQgaW50Cj4+Pj4+Pj4+Pj4gaW5kZXgpOwo+Pj4+Pj4+Pj4+ICsKPj4+ Pj4+Pj4+PiDCoCAvKioKPj4+Pj4+Pj4+PiDCoMKgICogdmIyX2NvcmVfcWJ1ZigpIC0gUXVldWUg YSBidWZmZXIgZnJvbSB1c2Vyc3BhY2UKPj4+Pj4+Pj4+PiDCoMKgICoKPj4+Pj4+Pj4+PiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS9tZWRpYS92aWRlb2J1ZjItdjRsMi5oCj4+Pj4+Pj4+Pj4gYi9pbmNs dWRlL21lZGlhL3ZpZGVvYnVmMi12NGwyLmgKPj4+Pj4+Pj4+PiBpbmRleCA4OGE3YTU2NTE3MGUu LjNiZWViNGM3MzVmMCAxMDA2NDQKPj4+Pj4+Pj4+PiAtLS0gYS9pbmNsdWRlL21lZGlhL3ZpZGVv YnVmMi12NGwyLmgKPj4+Pj4+Pj4+PiArKysgYi9pbmNsdWRlL21lZGlhL3ZpZGVvYnVmMi12NGwy LmgKPj4+Pj4+Pj4+PiBAQCAtMTE0LDYgKzExNCwxNyBAQCBpbnQgdmIyX2NyZWF0ZV9idWZzKHN0 cnVjdCB2YjJfcXVldWUgKnEsCj4+Pj4+Pj4+Pj4gc3RydWN0Cj4+Pj4+Pj4+Pj4gdjRsMl9jcmVh dGVfYnVmZmVycyAqY3JlYXRlKTsKPj4+Pj4+Pj4+PiDCoMKgICovCj4+Pj4+Pj4+Pj4gwqAgaW50 IHZiMl9wcmVwYXJlX2J1ZihzdHJ1Y3QgdmIyX3F1ZXVlICpxLCBzdHJ1Y3QgbWVkaWFfZGV2aWNl Cj4+Pj4+Pj4+Pj4gKm1kZXYsCj4+Pj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBzdHJ1Y3QgdjRsMl9idWZmZXIgKmIpOwo+Pj4+Pj4+Pj4+ICsvKioKPj4+ Pj4+Pj4+PiArICogdmIyX2RlbGV0ZV9idWYoKSAtIERlbGV0ZSB0aGUgYnVmZmVyIGZyb20gdGhl IHF1ZXVlCj4+Pj4+Pj4+Pj4gKyAqCj4+Pj4+Pj4+Pj4gKyAqIEBxOsKgwqDCoMKgwqDCoMKgwqAg cG9pbnRlciB0byAmc3RydWN0IHZiMl9xdWV1ZSB3aXRoIHZpZGVvYnVmMgo+Pj4+Pj4+Pj4+IHF1 ZXVlLgo+Pj4+Pj4+Pj4+ICsgKiBAYjrCoMKgwqDCoMKgwqDCoMKgIGJ1ZmZlciBzdHJ1Y3R1cmUg cGFzc2VkIGZyb20gdXNlcnNwYWNlIHRvCj4+Pj4+Pj4+Pj4gKyAqICZ2NGwyX2lvY3RsX29wcy0+ dmlkaW9jX2RlbGV0ZV9idWYgaGFuZGxlciBpbiBkcml2ZXIKPj4+Pj4+Pj4+PiArICoKPj4+Pj4+ Pj4+PiArICogVGhlIHJldHVybiB2YWx1ZXMgZnJvbSB0aGlzIGZ1bmN0aW9uIGFyZSBpbnRlbmRl ZCB0byBiZQo+Pj4+Pj4+Pj4+IGRpcmVjdGx5Cj4+Pj4+Pj4+Pj4gcmV0dXJuZWQKPj4+Pj4+Pj4+ PiArICogZnJvbSAmdjRsMl9pb2N0bF9vcHMtPnZpZGlvY19kZWxldGVfYnVmIGhhbmRsZXIgaW4g ZHJpdmVyLgo+Pj4+Pj4+Pj4+ICsgKi8KPj4+Pj4+Pj4+PiAraW50IHZiMl9kZWxldGVfYnVmKHN0 cnVjdCB2YjJfcXVldWUgKnEsIHN0cnVjdCB2NGwyX2J1ZmZlciAqYik7Cj4+Pj4+Pj4+Pj4KPj4+ Pj4+Pj4+PiDCoCAvKioKPj4+Pj4+Pj4+PiDCoMKgICogdmIyX3FidWYoKSAtIFF1ZXVlIGEgYnVm ZmVyIGZyb20gdXNlcnNwYWNlCj4+Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9s aW51eC92aWRlb2RldjIuaAo+Pj4+Pj4+Pj4+IGIvaW5jbHVkZS91YXBpL2xpbnV4L3ZpZGVvZGV2 Mi5oCj4+Pj4+Pj4+Pj4gaW5kZXggYWVlNzVlYjllNjg2Li4zMWJiYTE5MTU2NDIgMTAwNjQ0Cj4+ Pj4+Pj4+Pj4gLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L3ZpZGVvZGV2Mi5oCj4+Pj4+Pj4+Pj4g KysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L3ZpZGVvZGV2Mi5oCj4+Pj4+Pj4+Pj4gQEAgLTI3MDIs NiArMjcwMiw4IEBAIHN0cnVjdCB2NGwyX2NyZWF0ZV9idWZmZXJzIHsKPj4+Pj4+Pj4+PiDCoCAj ZGVmaW5lIFZJRElPQ19EQkdfR19DSElQX0lORk/CoCBfSU9XUignVicsIDEwMiwgc3RydWN0Cj4+ Pj4+Pj4+Pj4gdjRsMl9kYmdfY2hpcF9pbmZvKQo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gwqAgI2Rl ZmluZSBWSURJT0NfUVVFUllfRVhUX0NUUkzCoCBfSU9XUignVicsIDEwMywgc3RydWN0Cj4+Pj4+ Pj4+Pj4gdjRsMl9xdWVyeV9leHRfY3RybCkKPj4+Pj4+Pj4+PiArI2RlZmluZSBWSURJT0NfREVM RVRFX0JVRsKgwqDCoMKgwqAgX0lPV1IoJ1YnLCAxMDQsIHN0cnVjdAo+Pj4+Pj4+Pj4+IHY0bDJf YnVmZmVyKQo+Pj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IMKgIC8qIFJlbWluZGVy OiB3aGVuIGFkZGluZyBuZXcgaW9jdGxzIHBsZWFzZSBhZGQgc3VwcG9ydCBmb3IKPj4+Pj4+Pj4+ PiB0aGVtIHRvCj4+Pj4+Pj4+Pj4gZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1jb21wYXQt aW9jdGwzMi5jIGFzIHdlbGwhICovCj4+Pj4+Pj4+Pj4gLS0gCj4+Pj4+Pj4+Pj4gMi4zOS4yCj4+ Pj4+Pj4+Pj4KPj4+Pj4+PiAtLSAKPj4+Pj4+PiBIc2lhLUp1bihSYW5keSkgTGkKPj4+Pj4+Pgot LSAKSHNpYS1KdW4oUmFuZHkpIExpCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KTGludXgtcm9ja2NoaXAgbWFpbGluZyBsaXN0CkxpbnV4LXJvY2tjaGlw QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9s aXN0aW5mby9saW51eC1yb2NrY2hpcAo=