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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2F852C433FE for ; Wed, 5 Oct 2022 03:29:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0A3318E0001; Tue, 4 Oct 2022 23:29:40 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 051A16B0073; Tue, 4 Oct 2022 23:29:40 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D980F8E0001; Tue, 4 Oct 2022 23:29:39 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id BEE6E6B0072 for ; Tue, 4 Oct 2022 23:29:39 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 7565CC0B8D for ; Wed, 5 Oct 2022 03:29:39 +0000 (UTC) X-FDA: 79985466078.24.CA0B815 Received: from mailgw01.mediatek.com (mailgw01.mediatek.com [216.200.240.184]) by imf12.hostedemail.com (Postfix) with ESMTP id 4844040015 for ; Wed, 5 Oct 2022 03:29:37 +0000 (UTC) X-UUID: 8e0d4b89f6ba44c5b8e70b39a3b0aa4d-20221004 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Type:MIME-Version:Content-Transfer-Encoding:In-Reply-To:References:Message-ID:Date:Subject:CC:To:From; bh=KLLnXNtakwljPLKJfo+SoSt4Yyo63u6gBetpqJupxpk=; b=fXHwCYa3dbNcTTgxXOtwOF+nPBa3xHVADuFdZmHyUDLtyEw1stsMn947lR1IoZ+YMK1VQNAg7nbcBTaD1RwNYUhrWbHDQ3MEOj71gL5g9YLkg6s03juZ7zP4DFaSd5SVjCP0/a2BpU9Yq4pLmsr74SbYGAsLUNyEPZqDOqzfuC8=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.11,REQID:598f5a05-d8ac-4318-bcb3-761021864f46,IP:0,U RL:0,TC:0,Content:0,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:0 X-CID-META: VersionHash:39a5ff1,CLOUDID:0e3ce569-c578-4abf-baf4-d93ecc5e701f,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102,TC:nil,Content:0,EDM:-3,IP:nil,U RL:1,File:nil,Bulk:nil,QS:nil,BEC:nil,COL:0 X-UUID: 8e0d4b89f6ba44c5b8e70b39a3b0aa4d-20221004 Received: from mtkmbs11n1.mediatek.inc [(172.21.101.185)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1359797200; Tue, 04 Oct 2022 20:29:29 -0700 Received: from mtkmbs10n2.mediatek.inc (172.21.101.183) by mtkmbs11n2.mediatek.inc (172.21.101.187) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.792.15; Wed, 5 Oct 2022 11:28:56 +0800 Received: from APC01-PSA-obe.outbound.protection.outlook.com (172.21.101.239) by mtkmbs10n2.mediatek.inc (172.21.101.183) with Microsoft SMTP Server id 15.2.792.3 via Frontend Transport; Wed, 5 Oct 2022 11:28:56 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=B0cTmdZt8pOp6zsnAmh91ak89j0xISe2Ir/wvL48BB2iXjpN5WzjE7SRH0xA32xD+uzQu+MC9EIGx0P5gcTJI8rPcdOVKw+FkZDY8sNgWpb6DQfYiulCFj96h12zzQsLq9E02X6UH4nTsFz4TDWr67xQLA5HAOuUg0Io6P74bduA6Uqn3ksWE+9dl8SSrsXA9h3cYMMHHlv55iwUUdsjCuppHXkeGt6z1XFrMUTuBllQlEXC79JiE+JHVS2A/9KGwIn34TzxNMeBzPyeS/WM6c03pNNwGs3lLOgofJ+xhS2eK595UwvD4xPFVh+vFxNywThhA3rlD9vcTBf76+NpJw== 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=CUfKe5Bi176pExLTXoC/0Zioc0nRVISwQK06Gk94ldc=; b=OHP1sKhbZAKUYYoGIhVtLMay+Ubmzg+C8X0opjGkBP8CegeP3molNzVRsVZCpe9fRKcDe0LofUmbsjFKeb20WUPHKr9KRB03wMuTuN4z/CYVZlugaRkY7sPdeRrFb8tpwz+kaVDxetzbVPZKBNIreFVDMi8+wzNQTZk8TcpN96vws1SWq0UalFMB2Zyz12kSM0/gcmn0DCRSwhMDH1/kphVNEKcG//jwsvN74zBN+wPyNZBdbHYXHqnvFf773SspkTunACLkAMbkE6alXn+2g3pmCxWvDEp12jMdVt7GonmGJIBXKQVa0qyxLKkMqsaxoHzPiuSOBRZKI/hufTbVcg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mediatek.com; dmarc=pass action=none header.from=mediatek.com; dkim=pass header.d=mediatek.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mediateko365.onmicrosoft.com; s=selector2-mediateko365-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CUfKe5Bi176pExLTXoC/0Zioc0nRVISwQK06Gk94ldc=; b=hBVPH1F/Cah5Ij2dTzk0+zPCFt2oqWx9px6jYbL9kYvL2mzKZ/TpNi2LgxvvYyxRgaTsamuwb6WKirG8xNyy59vweu1QjW8LMfOPRe2pk07rE0g1Pf83rQCTt9TgLrXolLBFET0Ey1TlIQsy0Sl0z3VXBoJKAXfKbMCmH8E8jjA= Received: from TYZPR03MB6527.apcprd03.prod.outlook.com (2603:1096:400:1f8::13) by TY0PR03MB6703.apcprd03.prod.outlook.com (2603:1096:400:214::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.14; Wed, 5 Oct 2022 03:28:55 +0000 Received: from TYZPR03MB6527.apcprd03.prod.outlook.com ([fe80::454f:dbf:4e1f:7a07]) by TYZPR03MB6527.apcprd03.prod.outlook.com ([fe80::454f:dbf:4e1f:7a07%8]) with mapi id 15.20.5676.030; Wed, 5 Oct 2022 03:28:54 +0000 From: =?utf-8?B?UGhpbCBDaGFuZyAo5by15LiW5YuzKQ==?= To: Sumit Garg , "ira.weiny@intel.com" CC: Jens Wiklander , Andrew Morton , Al Viro , "Fabio M. De Francesco" , Christoph Hellwig , "Linus Torvalds" , "op-tee@lists.trustedfirmware.org" , "linux-kernel@vger.kernel.org" , "linux-mm@kvack.org" Subject: RE: [PATCH 2/4] tee: Remove vmalloc page support Thread-Topic: [PATCH 2/4] tee: Remove vmalloc page support Thread-Index: AQHY1vVsOAI3aGkJ6kG1DIjOysEShq3/JzRQ Date: Wed, 5 Oct 2022 03:28:54 +0000 Message-ID: References: <20221002002326.946620-1-ira.weiny@intel.com> <20221002002326.946620-3-ira.weiny@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYZPR03MB6527:EE_|TY0PR03MB6703:EE_ x-ms-office365-filtering-correlation-id: 3d85c08e-0712-40cb-780c-08daa681bb48 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: cwFlREBBU6ib7GZrfaUiCbotAKSW8UNkkthVqc20LCYqdxc3IBAYdrLCpTI6guqGfoaFkeIEtnRkLxIS6GWdwc4fDKZw+zLa067hPKrzz6JgysXZVgvGjh/4yOTZWwrBdFxVm2n8wWn5DBcF2jiraOq4/GZH0srcqRboAhmrHLfLMf8ypXuxyeeM9NFpQ0oeT6sxEQ9QWpiPGPq1cQpJricCED9oYw7+1D0ZMS2wN+egltZ+mxhBFF7Z6ei7chtF6sVRNQwJNZK6OwMUKRTsaTHceLv1gtXKSXwy7wchD+4FgRo2b1ffDA6U5eGqX9DjHaLdzNlcDaBjI4FZ3nd4BIuPfwRTHv306CodQVyr2Ch5Fn0R+wG29ohsfspz/x9VURfuMRvbntSIjExB3VN+40NSdmHSJuLEZrTraoXuLPY6bSlvseyvsYkjwKCrLtB7FuqS7OLwq8sZRSWySapSzGx0Zkg8ZA/zu1GlZifbAUFVJEduLKnweeQjrXg5USEKbsb9QiAR4B1meFWgD5FaZoMtzzlA023QmjnMJGQ+2/A3cHNUuOGlzoYKuBmmNmnL5CfJjj+RolAvjEu6jYGId9qYpTtWQb65JfnXcQ9hGajEL9jwuleEDnf4QeDc5+HnHe00A4MfwpQLbJZsw4ecMXSNh+hCEMziKQNp8m8qkSTKzam92076gRQ0ceaRfMVrhuljhw763ukx7RgWeHLgpX1lwN/7q2QqAEpVFuvADZa3m2ufwDJfXAqe1SQKxkyVbAQsARKQHC6VtmctKxFl2fNKhrU9m4IWnhNzu5qbGea+hTrkT1oVT6is59guj1HIUEsLlZqKkx7y2qAI7XtiFfEV6n71PgwptA7UwB/JssA= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYZPR03MB6527.apcprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(39860400002)(346002)(366004)(376002)(396003)(136003)(451199015)(66556008)(316002)(41300700001)(85182001)(5660300002)(2906002)(7416002)(8936002)(52536014)(122000001)(55016003)(71200400001)(64756008)(38100700002)(9686003)(38070700005)(66476007)(66946007)(478600001)(33656002)(66446008)(966005)(110136005)(76116006)(54906003)(4326008)(8676002)(186003)(7696005)(26005)(86362001)(53546011)(83380400001)(6506007);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aTFaYzRGSlhPRlFGVjVia1hZNzNJNXhhWFFONXcyRXpKVHVXWEFCQXlreExp?= =?utf-8?B?OGtFRUZwa1VnNWxlUkZFbGVCdUxSRlk4Z2R5TEY1cWZ1NnlJNTM0YmJGdGp5?= =?utf-8?B?ZXJPZGZLQ0trM3RMUGNhUlF3RmMvNVkwakI0djRkdWdTQWdpL3ZuV04zK0xW?= =?utf-8?B?VVBEWUJsZ1M3S0hBYzIzM29oWE1EdmlnWGpFbTN3eVFhekltS3cyclhQc1V2?= =?utf-8?B?RTdqV3JpOUtjR3N6NXlvUTBnN3A1Z2hQYWVIOWhZMllVZXdvWmJyYXhpVys3?= =?utf-8?B?YmlXWE5oMjJXU0JKMktBaHcxT25pc2VJZEw2ODRqK2pmQTRpSHR5ejU1bS9N?= =?utf-8?B?Qkx6b25wdDdkR3VScjA5N2liQlBmeVh2c1BFN3ZKM0xFRGU1RDg0U29LUDRB?= =?utf-8?B?M3pQT1BBVEkvWTBQNjZJTGFMZG53c0p2ZlBoYzhwdUM4bkNvSmFBeEY1a08y?= =?utf-8?B?YmdxMmxmOE5zSW51UGtISFdkanJFb2VLcW1neE9iaEsxUTBMWjZEdFFxU1NO?= =?utf-8?B?TkdnUXdlS2dxSjB4ZnNTdUd6VHlwdk1ScTBqUW9aeUw4Zm9mVWFXZGVIRzh2?= =?utf-8?B?UlUwWDZxZzVHY1o0QndIM1JQdWpYekhrZ1dxdVdpa1ZkUWVZaThIcXg1SktS?= =?utf-8?B?cUFWb3B1QWJodXZLZ0QwdnpETWFMMVVGU3RiSy9sN0Zad3lDeG8ydG9rVHNu?= =?utf-8?B?bkpyazRZbmJ1YTREdElvR0FqWUpjT3ZWYUhRUUpRbGpXeG9TWmZpR0hHQjVB?= =?utf-8?B?a0NOSzZJeTNqYVFwSDB0VVdvMHc0RTZlaEY3QmRKcGdNbmdKWHM4VlM2d0Ni?= =?utf-8?B?RlB4aTNxSlprVnZIQzlYTjBmNk9vRk5Wa0xWVi9kVFl2L2hmbVZocUczRlVw?= =?utf-8?B?M2s2dFZXYisyTWVwSHZNZCsrdk94SmZVcnJaL2FJeEJSQ2gzcEllOHVwSk4v?= =?utf-8?B?N1VkU2FDY1dsSXFqNEFNMEFrZjVtRlpqd2pLWHZ3T2ZoVWNDQkpGU3lQNlFW?= =?utf-8?B?cENHdmpMWG5WMzR4b0ZrdWJxbUdtNk5ReUgyMS9RNFRFMzJGcXRqWlhqaW9w?= =?utf-8?B?eW5KVS9wNG9xKzZaQm44OGhubFhGRks1QjJTcUtmbVJ3dXVWUDBpZEcrVnRL?= =?utf-8?B?cXBzL0NTeTBLTHpmejNtU0Y5WnV2TG1NL0lmaTVwSGVnc09RNHJoK1NHcTdV?= =?utf-8?B?dHA4cGJDSWFjUWVBQWx5QktKMkFyT29xbm9weHhXYVNyTmdrSkJKWVltRjdC?= =?utf-8?B?VW1KRjB1UDhMYUczWVdNc1ZpeTlqYml3a05NcnVXL2VSVEVHN3E0MW9hMXV3?= =?utf-8?B?L00rcmlQQUN4cUVxUkJjdFRmYmVYd3J6ZVdQTWZsaFFEZ2k3ODJiK3ZqUVRt?= =?utf-8?B?NTdKaC84ZUJITitsQkNBeS9OdThaQjN4VytqSW41ODdRbFNHSDhWaGlSRUJE?= =?utf-8?B?YXhSSjY2ZE1ib1VQU1hudDlqZDRIMHcvbE9VZjV1Q3Z4S2EraVdYV1RQd1lp?= =?utf-8?B?NmZKa1VlZ1NxVVVmRU9YWTZ6L3BxMzBXKzArUTE0L3U2Ui9IV254bHF2YzU3?= =?utf-8?B?aXpTbE5zUUZNMzZBN3VGQ0V0NElKbzU4VTRDN2ZDWndIVzlicFgyN1NjS0tm?= =?utf-8?B?TnNqZ2xsRXVlY25jM25qVXAvZTU4OXRPSGNZdS94a2lBWVk5a2pXejhNdlJ4?= =?utf-8?B?dUtYSVRJL2R1dHZzWEZTc2xGMnBHODN4dzR2S3RMY1d2ZzFhOUZJcjFyOFEz?= =?utf-8?B?cWh4VUxTcHI5am5SMTBvYzFVYk1yTEw0Y1VKRXdKWFRMYXppT3d3eTNtUC9j?= =?utf-8?B?QmJjZFJwT1JLZlVIN2VxMzJ0R0IybVdaU3l0REFmc0RyMWpXbzN0czBoYS9m?= =?utf-8?B?cnBUM2hWbUdrRDJSWERZS2JGbU1kQlpoSSsxZlNnelBtYktEY2V3NVBKclJR?= =?utf-8?B?Ykswc0x2QXBmbmNrYkNpTnprU1dyRkhrRzBFc2s2WllpTDU3TG10ME1JQ2Nz?= =?utf-8?B?RmZTUjV3bE9QNWNwNndKM3NMY09QK2FvU0h4RG52TzQ5OThDOHQ1WCtSL0k0?= =?utf-8?B?THU5aTExQ25wa1NiU01EQksyaTA1MlpQWVloL2J3TXBmYm1GQjFLZDk4SDZH?= =?utf-8?Q?nAuPqKU3jK35jkyUjPM++hAPN?= Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYZPR03MB6527.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3d85c08e-0712-40cb-780c-08daa681bb48 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Oct 2022 03:28:54.8802 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a7687ede-7a6b-4ef6-bace-642f677fbe31 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ympki48gXE9ajcjD5IsAYFozn9K3JRiGU75aWXdgn9kZhawgDzNT7lYu5AUaQjbLinPpNDOLxuOzDRvx2GlRNA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY0PR03MB6703 Content-Type: multipart/alternative; boundary="__=_Part_Boundary_002_426356397.994179320" ARC-Authentication-Results: i=2; imf12.hostedemail.com; dkim=pass header.d=mediatek.com header.s=dk header.b=fXHwCYa3; dkim=fail ("body hash did not verify") header.d=mediateko365.onmicrosoft.com header.s=selector2-mediateko365-onmicrosoft-com header.b="hBVPH1F/"; spf=pass (imf12.hostedemail.com: domain of phil.chang@mediatek.com designates 216.200.240.184 as permitted sender) smtp.mailfrom=phil.chang@mediatek.com; dmarc=pass (policy=quarantine) header.from=mediatek.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1664940579; a=rsa-sha256; cv=fail; b=l3Xeazs4ELFVAQNui9Z6KHqo/QhMlpARfuEJisl7Cjbe9H99IMp0TO6CFaYmXGQQBi7oac G5Ftatu9tPKGlM54ylU3c/NRyn3c97kBCi2rdjF9i6I1E1Epu+4VPrCaGiri0ePKIp42HG CUEBvm6LklhQsRqG0JyxvCfBqPiX3jU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1664940579; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=KLLnXNtakwljPLKJfo+SoSt4Yyo63u6gBetpqJupxpk=; b=8fl1CKVMvdJktXl2MFE02m4f8nles5wcviZrCoZ+jpvzS0rQJNaJE+NZnEPUvYoYgrsaff /BeetLndOGkePi55+gkzQXtWa8iPuNYZpx91Xy8bKNzlwj1of1yDxf960aiDntMxOcwMt+ DLgGEAdvemeew9vjfbRYoEWqdvd7vpk= X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 4844040015 X-Rspam-User: Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=mediatek.com header.s=dk header.b=fXHwCYa3; dkim=fail ("body hash did not verify") header.d=mediateko365.onmicrosoft.com header.s=selector2-mediateko365-onmicrosoft-com header.b="hBVPH1F/"; spf=pass (imf12.hostedemail.com: domain of phil.chang@mediatek.com designates 216.200.240.184 as permitted sender) smtp.mailfrom=phil.chang@mediatek.com; dmarc=pass (policy=quarantine) header.from=mediatek.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") X-Stat-Signature: xqafa3eo8dyhygmbiuh6ii3ckwb161w6 X-HE-Tag: 1664940577-820214 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: --__=_Part_Boundary_002_426356397.994179320 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PHByZT4NCkhpJiMzMjtTdW1pdA0KDQpUaGFua3MmIzMyO2ZvciYjMzI7bWVudGlvbmluZyYjMzI7 dGhhdCwmIzMyO2luJiMzMjtmYWN0LCYjMzI7b3VyJiMzMjtwcm9kdWN0JiMzMjtpcyYjMzI7bG93 JiMzMjttZW1vcnkmIzMyO2RldmljZXMsJiMzMjthbmQmIzMyO2NvbnRpbnVvdXMmIzMyO3BhZ2Vz JiMzMjthcmUmIzMyO2V4dHJlbWVseSYjMzI7dmFsdWFibGUuDQpBbHRob3VnaCYjMzI7b3VyJiMz Mjtkcml2ZXImIzMyO2lzJiMzMjtub3QmIzMyO3Vwc3RyZWFtJiMzMjt5ZXQmIzMyO2J1dCYjMzI7 aGlnaGx5JiMzMjtkZXBlbmRlbnQmIzMyO29uJiMzMjt0ZWUmIzMyO3NobSYjMzI7dm1hbGxvYyYj MzI7c3VwcG9ydCwNCnNvbWUmIzMyO3NjZW5hcmlvcyYjMzI7YXJlJiMzMjtkcml2ZXImIzMyO2Fs bG9jJiMzMjtoaWdoJiMzMjtvcmRlciYjMzI7cGFnZXMmIzMyO2J1dCYjMzI7c3lzdGVtJiMzMjtt ZW1vcnkmIzMyO2lzJiMzMjtmcmFnbWVudGF0aW9uJiMzMjtzbyYjMzI7dGhhdCYjMzI7YWxsb2Mm IzMyO2ZhaWxlZC4NCkluJiMzMjt0aGlzJiMzMjtzaXR1YXRpb24sJiMzMjt2bWFsbG9jJiMzMjtz dXBwb3J0JiMzMjtpcyYjMzI7aW1wb3J0YW50JiMzMjthbmQmIzMyO2dpdmVzJiMzMjtmbGV4aWJs ZSYjMzI7dXNhZ2UmIzMyO3RvJiMzMjt1c2VyLg0KDQoNCi0tLS0tT3JpZ2luYWwmIzMyO01lc3Nh Z2UtLS0tLQ0KRnJvbTomIzMyO1N1bWl0JiMzMjtHYXJnJiMzMjsmbHQ7c3VtaXQuZ2FyZ0BsaW5h cm8ub3JnJmd0OyYjMzI7DQpTZW50OiYjMzI7TW9uZGF5LCYjMzI7T2N0b2JlciYjMzI7MywmIzMy OzIwMjImIzMyOzI6NTcmIzMyO1BNDQpUbzomIzMyO2lyYS53ZWlueUBpbnRlbC5jb20NCkNjOiYj MzI7SmVucyYjMzI7V2lrbGFuZGVyJiMzMjsmbHQ7amVucy53aWtsYW5kZXJAbGluYXJvLm9yZyZn dDs7JiMzMjtBbmRyZXcmIzMyO01vcnRvbiYjMzI7Jmx0O2FrcG1AbGludXgtZm91bmRhdGlvbi5v cmcmZ3Q7OyYjMzI7QWwmIzMyO1Zpcm8mIzMyOyZsdDt2aXJvQHplbml2LmxpbnV4Lm9yZy51ayZn dDs7JiMzMjtGYWJpbyYjMzI7TS4mIzMyO0RlJiMzMjtGcmFuY2VzY28mIzMyOyZsdDtmbWRlZnJh bmNlc2NvQGdtYWlsLmNvbSZndDs7JiMzMjtDaHJpc3RvcGgmIzMyO0hlbGx3aWcmIzMyOyZsdDto Y2hAbHN0LmRlJmd0OzsmIzMyO0xpbnVzJiMzMjtUb3J2YWxkcyYjMzI7Jmx0O3RvcnZhbGRzQGxp bnV4LWZvdW5kYXRpb24ub3JnJmd0OzsmIzMyO29wLXRlZUBsaXN0cy50cnVzdGVkZmlybXdhcmUu b3JnOyYjMzI7bGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsmIzMyO2xpbnV4LW1tQGt2YWNr Lm9yZzsmIzMyO1BoaWwmIzMyO0NoYW5nJiMzMjsoJiMyNDM3MzsmIzE5OTkwOyYjMjEyMzU7KSYj MzI7Jmx0O1BoaWwuQ2hhbmdAbWVkaWF0ZWsuY29tJmd0Ow0KU3ViamVjdDomIzMyO1JlOiYjMzI7 W1BBVENIJiMzMjsyLzRdJiMzMjt0ZWU6JiMzMjtSZW1vdmUmIzMyO3ZtYWxsb2MmIzMyO3BhZ2Um IzMyO3N1cHBvcnQNCg0KKyYjMzI7UGhpbA0KDQpIaSYjMzI7SXJhLA0KDQpPbiYjMzI7U3VuLCYj MzI7MiYjMzI7T2N0JiMzMjsyMDIyJiMzMjthdCYjMzI7MDU6NTMsJiMzMjsmbHQ7aXJhLndlaW55 QGludGVsLmNvbSZndDsmIzMyO3dyb3RlOg0KJmd0Ow0KJmd0OyYjMzI7RnJvbTomIzMyO0lyYSYj MzI7V2VpbnkmIzMyOyZsdDtpcmEud2VpbnlAaW50ZWwuY29tJmd0Ow0KJmd0Ow0KJmd0OyYjMzI7 VGhlJiMzMjtrZXJuZWwmIzMyO3BhZ2VzJiMzMjt1c2VkJiMzMjtieSYjMzI7c2htX2dldF9rZXJu ZWxfcGFnZXMoKSYjMzI7YXJlJiMzMjthbGxvY2F0ZWQmIzMyO3VzaW5nJiMzMjsNCiZndDsmIzMy O0dGUF9LRVJORUwmIzMyO3Rocm91Z2gmIzMyO3RoZSYjMzI7Zm9sbG93aW5nJiMzMjtjYWxsJiMz MjtzdGFjazoNCiZndDsNCiZndDsmIzMyO3RydXN0ZWRfaW5zdGFudGlhdGUoKQ0KJmd0OyYjMzI7 JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyO3RydXN0ZWRfcGF5bG9hZF9h bGxvYygpJiMzMjstJmd0OyYjMzI7R0ZQX0tFUk5FTA0KJmd0OyYjMzI7JiMzMjsmIzMyOyYjMzI7 JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyZsdDt0cnVzdGVkJiMzMjtrZXkmIzMyO29wJmd0Ow0K Jmd0OyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMz MjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjt0ZWVfc2htX3JlZ2lzdGVyX2tlcm5lbF9i dWYoKQ0KJmd0OyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYj MzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMy OyYjMzI7JiMzMjsmIzMyOyYjMzI7cmVnaXN0ZXJfc2htX2hlbHBlcigpDQomZ3Q7JiMzMjsmIzMy OyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsm IzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMz MjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7c2htX2dldF9rZXJuZWxf cGFnZXMoKQ0KJmd0Ow0KJmd0OyYjMzI7V2hlcmUmIzMyOyZsdDt0cnVzdGVkJiMzMjtrZXkmIzMy O29wJmd0OyYjMzI7aXMmIzMyO29uZSYjMzI7b2Y6DQomZ3Q7DQomZ3Q7JiMzMjsmIzMyOyYjMzI7 JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7dHJ1c3RlZF9rZXlfdW5zZWFsKCkNCiZndDsm IzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjt0cnVzdGVkX2tleV9n ZXRfcmFuZG9tKCkNCiZndDsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7 JiMzMjt0cnVzdGVkX2tleV9zZWFsKCkNCiZndDsNCiZndDsmIzMyO1JlbW92ZSYjMzI7dGhlJiMz Mjt2bWFsbG9jJiMzMjtwYWdlJiMzMjtzdXBwb3J0JiMzMjtmcm9tJiMzMjtzaG1fZ2V0X2tlcm5l bF9wYWdlcygpLiYjMzI7JiMzMjtSZXBsYWNlJiMzMjsNCiZndDsmIzMyO3dpdGgmIzMyO2EmIzMy O3dhcm4mIzMyO29uJiMzMjtvbmNlLg0KJmd0Ow0KJmd0OyYjMzI7Q2M6JiMzMjtKZW5zJiMzMjtX aWtsYW5kZXImIzMyOyZsdDtqZW5zLndpa2xhbmRlckBsaW5hcm8ub3JnJmd0Ow0KJmd0OyYjMzI7 Q2M6JiMzMjtBbCYjMzI7VmlybyYjMzI7Jmx0O3Zpcm9AemVuaXYubGludXgub3JnLnVrJmd0Ow0K Jmd0OyYjMzI7Q2M6JiMzMjsmcXVvdDtGYWJpbyYjMzI7TS4mIzMyO0RlJiMzMjtGcmFuY2VzY28m cXVvdDsmIzMyOyZsdDtmbWRlZnJhbmNlc2NvQGdtYWlsLmNvbSZndDsNCiZndDsmIzMyO0NjOiYj MzI7Q2hyaXN0b3BoJiMzMjtIZWxsd2lnJiMzMjsmbHQ7aGNoQGxzdC5kZSZndDsNCiZndDsmIzMy O0NjOiYjMzI7TGludXMmIzMyO1RvcnZhbGRzJiMzMjsmbHQ7dG9ydmFsZHNAbGludXgtZm91bmRh dGlvbi5vcmcmZ3Q7DQomZ3Q7JiMzMjtTaWduZWQtb2ZmLWJ5OiYjMzI7SXJhJiMzMjtXZWlueSYj MzI7Jmx0O2lyYS53ZWlueUBpbnRlbC5jb20mZ3Q7DQomZ3Q7DQomZ3Q7JiMzMjstLS0NCiZndDsm IzMyO0plbnMmIzMyO0kmIzMyO3dlbnQmIzMyO3dpdGgmIzMyO3RoZSYjMzI7c3VnZ2VzdGlvbiYj MzI7ZnJvbSYjMzI7TGludXMmIzMyO2FuZCYjMzI7Q2hyaXN0b3BoJiMzMjthbmQmIzMyO3JlamVj dGVkJiMzMjsNCiZndDsmIzMyO3ZtYWxsb2MmIzMyO2FkZHJlc3Nlcy4mIzMyOyYjMzI7SSYjMzI7 ZGlkJiMzMjtub3QmIzMyO2hlYXImIzMyO2JhY2smIzMyO2Zyb20mIzMyO3lvdSYjMzI7cmVnYXJk aW5nJiMzMjtMaW51cyYjMzk7DQomZ3Q7JiMzMjtxdWVzdGlvbiYjMzI7aWYmIzMyO3RoZSYjMzI7 dm1hbGxvYyYjMzI7cGFnZSYjMzI7c3VwcG9ydCYjMzI7d2FzJiMzMjtyZXF1aXJlZCYjMzI7Ynkm IzMyO2FuJiMzMjt1cCYjMzI7Y29taW5nJiMzMjsNCiZndDsmIzMyO3BhdGNoJiMzMjtzZXQmIzMy O29yJiMzMjtub3QuJiMzMjsmIzMyO1NvJiMzMjtJJiMzMjthc3N1bWVkJiMzMjtpdCYjMzI7d2Fz JiMzMjtzb21ldGhpbmcmIzMyO291dCYjMzI7b2YmIzMyO3RyZWUuDQoNCkl0JiMzMjtsb29rcyYj MzI7bGlrZSYjMzI7SSYjMzI7d2FzbiYjMzk7dCYjMzI7Q0MmIzM5O2QmIzMyO3RvJiMzMjt0aGF0 JiMzMjtjb252ZXJzYXRpb24uJiMzMjtJSVJDLCYjMzI7c3VwcG9ydCYjMzI7Zm9yJiMzMjt2bWFs bG9jJiMzMjthZGRyZXNzZXMmIzMyO3dhcyYjMzI7YWRkZWQmIzMyO3JlY2VudGx5JiMzMjtieSYj MzI7UGhpbCYjMzI7aGVyZSYjMzI7WzFdLiYjMzI7U28mIzMyO0kmIzMyO3dvdWxkJiMzMjtsaWtl JiMzMjt0byYjMzI7Z2l2ZSYjMzI7aGltJiMzMjthJiMzMjtjaGFuY2UmIzMyO2lmJiMzMjtoZSYj MzI7aXMmIzMyO3BsYW5uaW5nJiMzMjt0byYjMzI7cG9zdCYjMzI7YSYjMzI7Y29ycmVzcG9uZGlu ZyYjMzI7a2VybmVsJiMzMjtkcml2ZXImIzMyO3Vwc3RyZWFtLg0KDQpbMV0mIzMyO2h0dHBzOi8v dXJsZGVmZW5zZS5jb20vdjMvX19odHRwczovL2xpc3RzLnRydXN0ZWRmaXJtd2FyZS5vcmcvYXJj aGl2ZXMvbGlzdC9vcC10ZWVAbGlzdHMudHJ1c3RlZGZpcm13YXJlLm9yZy90aHJlYWQvTTdISTNQ Mk02NlYyN1NLMzVDR1FSSUNaN0RKWjVKMlcvX187ISFDVFJOS0E5d01nMEFSYnchd0dPS1I5azNr aFpKbFB0MUtfeEJDWFg0RUJNNVpDZldLdXJ1RmdTUDQ1SDh3VHZKcng0X1N0M0ZiNVpybGpENVFR JiMzNjsmIzMyOw0KDQotU3VtaXQNCg0KJmd0OyYjMzI7LS0tDQomZ3Q7JiMzMjsmIzMyO2RyaXZl cnMvdGVlL3RlZV9zaG0uYyYjMzI7fCYjMzI7MzYmIzMyOysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KJmd0OyYjMzI7JiMzMjsxJiMzMjtmaWxlJiMzMjtjaGFuZ2VkLCYjMzI7 MTImIzMyO2luc2VydGlvbnMoKyksJiMzMjsyNCYjMzI7ZGVsZXRpb25zKC0pDQomZ3Q7DQomZ3Q7 JiMzMjtkaWZmJiMzMjstLWdpdCYjMzI7YS9kcml2ZXJzL3RlZS90ZWVfc2htLmMmIzMyO2IvZHJp dmVycy90ZWUvdGVlX3NobS5jJiMzMjtpbmRleCYjMzI7DQomZ3Q7JiMzMjsyNzI5NWJkYTNlMGIu LjUyN2E2ZWFiYzAzZSYjMzI7MTAwNjQ0DQomZ3Q7JiMzMjstLS0mIzMyO2EvZHJpdmVycy90ZWUv dGVlX3NobS5jDQomZ3Q7JiMzMjsrKysmIzMyO2IvZHJpdmVycy90ZWUvdGVlX3NobS5jDQomZ3Q7 JiMzMjtAQCYjMzI7LTI0LDM3JiMzMjsrMjQsMjUmIzMyO0BAJiMzMjtzdGF0aWMmIzMyO3ZvaWQm IzMyO3NobV9wdXRfa2VybmVsX3BhZ2VzKHN0cnVjdCYjMzI7cGFnZSYjMzI7DQomZ3Q7JiMzMjsq KnBhZ2VzLCYjMzI7c2l6ZV90JiMzMjtwYWdlX2NvdW50KSYjMzI7JiMzMjtzdGF0aWMmIzMyO2lu dCYjMzI7c2htX2dldF9rZXJuZWxfcGFnZXModW5zaWduZWQmIzMyO2xvbmcmIzMyO3N0YXJ0LCYj MzI7c2l6ZV90JiMzMjtwYWdlX2NvdW50LA0KJmd0OyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsm IzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMz MjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7 JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyO3N0cnVjdCYjMzI7cGFnZSYjMzI7KipwYWdlcykmIzMy OyYjMzI7ew0KJmd0OyYjMzI7KyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7c3Ry dWN0JiMzMjtrdmVjJiMzMjsqa2lvdjsNCiZndDsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMz MjsmIzMyOyYjMzI7JiMzMjtzaXplX3QmIzMyO247DQomZ3Q7JiMzMjsmIzMyOyYjMzI7JiMzMjsm IzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7aW50JiMzMjtyYzsNCiZndDsNCiZndDsmIzMyOy0mIzMy OyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyO2lmJiMzMjsoaXNfdm1hbGxvY19hZGRyKCh2 b2lkJiMzMjsqKXN0YXJ0KSkmIzMyO3sNCiZndDsmIzMyOy0mIzMyOyYjMzI7JiMzMjsmIzMyOyYj MzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjtzdHJ1 Y3QmIzMyO3BhZ2UmIzMyOypwYWdlOw0KJmd0OyYjMzI7LQ0KJmd0OyYjMzI7LSYjMzI7JiMzMjsm IzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMz MjsmIzMyO2ZvciYjMzI7KG4mIzMyOz0mIzMyOzA7JiMzMjtuJiMzMjsmbHQ7JiMzMjtwYWdlX2Nv dW50OyYjMzI7bisrKSYjMzI7ew0KJmd0OyYjMzI7LSYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsm IzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMz MjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjtwYWdlJiMzMjs9JiMzMjt2bWFsbG9jX3Rv X3BhZ2UoKHZvaWQmIzMyOyopKHN0YXJ0JiMzMjsrJiMzMjtQQUdFX1NJWkUmIzMyOyomIzMyO24p KTsNCiZndDsmIzMyOy0mIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMz MjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7 JiMzMjsmIzMyOyYjMzI7aWYmIzMyOyghcGFnZSkNCiZndDsmIzMyOy0mIzMyOyYjMzI7JiMzMjsm IzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMz MjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7 JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyO3JldHVybiYjMzI7LUVOT01FTTsNCiZndDsmIzMyOy0N CiZndDsmIzMyOy0mIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsm IzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMz MjsmIzMyOyYjMzI7Z2V0X3BhZ2UocGFnZSk7DQomZ3Q7JiMzMjstJiMzMjsmIzMyOyYjMzI7JiMz MjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7 JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyO3BhZ2VzW25dJiMzMjs9JiMz MjtwYWdlOw0KJmd0OyYjMzI7LSYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMz MjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyO30NCiZndDsmIzMyOy0mIzMyOyYj MzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMy OyYjMzI7JiMzMjtyYyYjMzI7PSYjMzI7cGFnZV9jb3VudDsNCiZndDsmIzMyOy0mIzMyOyYjMzI7 JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyO30mIzMyO2Vsc2UmIzMyO3sNCiZndDsmIzMyOy0mIzMy OyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsm IzMyOyYjMzI7JiMzMjtzdHJ1Y3QmIzMyO2t2ZWMmIzMyOypraW92Ow0KJmd0OyYjMzI7LQ0KJmd0 OyYjMzI7LSYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7 JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyO2tpb3YmIzMyOz0mIzMyO2tjYWxsb2MocGFnZV9jb3Vu dCwmIzMyO3NpemVvZigqa2lvdiksJiMzMjtHRlBfS0VSTkVMKTsNCiZndDsmIzMyOy0mIzMyOyYj MzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMy OyYjMzI7JiMzMjtpZiYjMzI7KCFraW92KQ0KJmd0OyYjMzI7LSYjMzI7JiMzMjsmIzMyOyYjMzI7 JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYj MzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjtyZXR1cm4mIzMyOy1FTk9NRU07 DQomZ3Q7JiMzMjsrJiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjtpZiYjMzI7KFdB Uk5fT05fT05DRShpc192bWFsbG9jX2FkZHIoKHZvaWQmIzMyOyopc3RhcnQpKSkNCiZndDsmIzMy OysmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7 JiMzMjsmIzMyOyYjMzI7JiMzMjtyZXR1cm4mIzMyOy1FSU5WQUw7DQomZ3Q7DQomZ3Q7JiMzMjst JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYj MzI7JiMzMjsmIzMyOyYjMzI7Zm9yJiMzMjsobiYjMzI7PSYjMzI7MDsmIzMyO24mIzMyOyZsdDsm IzMyO3BhZ2VfY291bnQ7JiMzMjtuKyspJiMzMjt7DQomZ3Q7JiMzMjstJiMzMjsmIzMyOyYjMzI7 JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYj MzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyO2tpb3Zbbl0uaW92X2Jh c2UmIzMyOz0mIzMyOyh2b2lkJiMzMjsqKShzdGFydCYjMzI7KyYjMzI7biYjMzI7KiYjMzI7UEFH RV9TSVpFKTsNCiZndDsmIzMyOy0mIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYj MzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMy OyYjMzI7JiMzMjsmIzMyOyYjMzI7a2lvdltuXS5pb3ZfbGVuJiMzMjs9JiMzMjtQQUdFX1NJWkU7 DQomZ3Q7JiMzMjstJiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7 JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7fQ0KJmd0OyYjMzI7KyYjMzI7JiMzMjsmIzMy OyYjMzI7JiMzMjsmIzMyOyYjMzI7a2lvdiYjMzI7PSYjMzI7a2NhbGxvYyhwYWdlX2NvdW50LCYj MzI7c2l6ZW9mKCpraW92KSwmIzMyO0dGUF9LRVJORUwpOw0KJmd0OyYjMzI7KyYjMzI7JiMzMjsm IzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7aWYmIzMyOygha2lvdikNCiZndDsmIzMyOysmIzMyOyYj MzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMy OyYjMzI7JiMzMjtyZXR1cm4mIzMyOy1FTk9NRU07DQomZ3Q7DQomZ3Q7JiMzMjstJiMzMjsmIzMy OyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsm IzMyOyYjMzI7cmMmIzMyOz0mIzMyO2dldF9rZXJuZWxfcGFnZXMoa2lvdiwmIzMyO3BhZ2VfY291 bnQsJiMzMjswLCYjMzI7cGFnZXMpOw0KJmd0OyYjMzI7LSYjMzI7JiMzMjsmIzMyOyYjMzI7JiMz MjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyO2tmcmVl KGtpb3YpOw0KJmd0OyYjMzI7KyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7Zm9y JiMzMjsobiYjMzI7PSYjMzI7MDsmIzMyO24mIzMyOyZsdDsmIzMyO3BhZ2VfY291bnQ7JiMzMjtu KyspJiMzMjt7DQomZ3Q7JiMzMjsrJiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsm IzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7a2lvdltuXS5pb3ZfYmFzZSYj MzI7PSYjMzI7KHZvaWQmIzMyOyopKHN0YXJ0JiMzMjsrJiMzMjtuJiMzMjsqJiMzMjtQQUdFX1NJ WkUpOw0KJmd0OyYjMzI7KyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsm IzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyO2tpb3Zbbl0uaW92X2xlbiYjMzI7PSYj MzI7UEFHRV9TSVpFOw0KJmd0OyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMz MjsmIzMyO30NCiZndDsNCiZndDsmIzMyOysmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMzMjsm IzMyO3JjJiMzMjs9JiMzMjtnZXRfa2VybmVsX3BhZ2VzKGtpb3YsJiMzMjtwYWdlX2NvdW50LCYj MzI7MCwmIzMyO3BhZ2VzKTsNCiZndDsmIzMyOysmIzMyOyYjMzI7JiMzMjsmIzMyOyYjMzI7JiMz MjsmIzMyO2tmcmVlKGtpb3YpOw0KJmd0OyYjMzI7Kw0KJmd0OyYjMzI7JiMzMjsmIzMyOyYjMzI7 JiMzMjsmIzMyOyYjMzI7JiMzMjsmIzMyO3JldHVybiYjMzI7cmM7DQomZ3Q7JiMzMjsmIzMyO30N CiZndDsNCiZndDsmIzMyOy0tDQomZ3Q7JiMzMjsyLjM3LjINCiZndDsNCg0KPC9wcmU+PCEtLXR5 cGU6dGV4dC0tPjwhLS17LS0+PHByZT4qKioqKioqKioqKiBNRURJQVRFSyBDb25maWRlbnRpYWxp dHkgTm90aWNlICoqKioqKioqKioqDQpUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGluIHRoaXMg ZS1tYWlsIG1lc3NhZ2UgKGluY2x1ZGluZyBhbnkgDQphdHRhY2htZW50cykgbWF5IGJlIGNvbmZp ZGVudGlhbCwgcHJvcHJpZXRhcnksIHByaXZpbGVnZWQsIG9yIA0Kb3RoZXJ3aXNlIGV4ZW1wdCBm cm9tIGRpc2Nsb3N1cmUgdW5kZXIgYXBwbGljYWJsZSBsYXdzLiBJdCBpcyANCmludGVuZGVkIHRv IGJlIGNvbnZleWVkIG9ubHkgdG8gdGhlIGRlc2lnbmF0ZWQgcmVjaXBpZW50KHMpLiBBbnkgDQp1 c2UsIGRpc3NlbWluYXRpb24sIGRpc3RyaWJ1dGlvbiwgcHJpbnRpbmcsIHJldGFpbmluZyBvciBj b3B5aW5nIA0Kb2YgdGhpcyBlLW1haWwgKGluY2x1ZGluZyBpdHMgYXR0YWNobWVudHMpIGJ5IHVu aW50ZW5kZWQgcmVjaXBpZW50KHMpIA0KaXMgc3RyaWN0bHkgcHJvaGliaXRlZCBhbmQgbWF5IGJl IHVubGF3ZnVsLiBJZiB5b3UgYXJlIG5vdCBhbiANCmludGVuZGVkIHJlY2lwaWVudCBvZiB0aGlz IGUtbWFpbCwgb3IgYmVsaWV2ZSB0aGF0IHlvdSBoYXZlIHJlY2VpdmVkIA0KdGhpcyBlLW1haWwg aW4gZXJyb3IsIHBsZWFzZSBub3RpZnkgdGhlIHNlbmRlciBpbW1lZGlhdGVseSANCihieSByZXBs eWluZyB0byB0aGlzIGUtbWFpbCksIGRlbGV0ZSBhbnkgYW5kIGFsbCBjb3BpZXMgb2YgdGhpcyAN CmUtbWFpbCAoaW5jbHVkaW5nIGFueSBhdHRhY2htZW50cykgZnJvbSB5b3VyIHN5c3RlbSwgYW5k IGRvIG5vdCANCmRpc2Nsb3NlIHRoZSBjb250ZW50IG9mIHRoaXMgZS1tYWlsIHRvIGFueSBvdGhl ciBwZXJzb24uIFRoYW5rIHlvdSENCjwvcHJlPjwhLS19LS0+ --__=_Part_Boundary_002_426356397.994179320 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgU3VtaXQNCg0KVGhhbmtzIGZvciBtZW50aW9uaW5nIHRoYXQsIGluIGZhY3QsIG91ciBwcm9k dWN0IGlzIGxvdyBtZW1vcnkgZGV2aWNlcywgYW5kIGNvbnRpbnVvdXMgcGFnZXMgYXJlIGV4dHJl bWVseSB2YWx1YWJsZS4NCkFsdGhvdWdoIG91ciBkcml2ZXIgaXMgbm90IHVwc3RyZWFtIHlldCBi dXQgaGlnaGx5IGRlcGVuZGVudCBvbiB0ZWUgc2htIHZtYWxsb2Mgc3VwcG9ydCwNCnNvbWUgc2Nl bmFyaW9zIGFyZSBkcml2ZXIgYWxsb2MgaGlnaCBvcmRlciBwYWdlcyBidXQgc3lzdGVtIG1lbW9y eSBpcyBmcmFnbWVudGF0aW9uIHNvIHRoYXQgYWxsb2MgZmFpbGVkLg0KSW4gdGhpcyBzaXR1YXRp b24sIHZtYWxsb2Mgc3VwcG9ydCBpcyBpbXBvcnRhbnQgYW5kIGdpdmVzIGZsZXhpYmxlIHVzYWdl IHRvIHVzZXIuDQoNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IFN1bWl0IEdh cmcgPHN1bWl0LmdhcmdAbGluYXJvLm9yZz4gDQpTZW50OiBNb25kYXksIE9jdG9iZXIgMywgMjAy MiAyOjU3IFBNDQpUbzogaXJhLndlaW55QGludGVsLmNvbQ0KQ2M6IEplbnMgV2lrbGFuZGVyIDxq ZW5zLndpa2xhbmRlckBsaW5hcm8ub3JnPjsgQW5kcmV3IE1vcnRvbiA8YWtwbUBsaW51eC1mb3Vu ZGF0aW9uLm9yZz47IEFsIFZpcm8gPHZpcm9AemVuaXYubGludXgub3JnLnVrPjsgRmFiaW8gTS4g RGUgRnJhbmNlc2NvIDxmbWRlZnJhbmNlc2NvQGdtYWlsLmNvbT47IENocmlzdG9waCBIZWxsd2ln IDxoY2hAbHN0LmRlPjsgTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24u b3JnPjsgb3AtdGVlQGxpc3RzLnRydXN0ZWRmaXJtd2FyZS5vcmc7IGxpbnV4LWtlcm5lbEB2Z2Vy Lmtlcm5lbC5vcmc7IGxpbnV4LW1tQGt2YWNrLm9yZzsgUGhpbCBDaGFuZyAo5by15LiW5YuzKSA8 UGhpbC5DaGFuZ0BtZWRpYXRlay5jb20+DQpTdWJqZWN0OiBSZTogW1BBVENIIDIvNF0gdGVlOiBS ZW1vdmUgdm1hbGxvYyBwYWdlIHN1cHBvcnQNCg0KKyBQaGlsDQoNCkhpIElyYSwNCg0KT24gU3Vu LCAyIE9jdCAyMDIyIGF0IDA1OjUzLCA8aXJhLndlaW55QGludGVsLmNvbT4gd3JvdGU6DQo+DQo+ IEZyb206IElyYSBXZWlueSA8aXJhLndlaW55QGludGVsLmNvbT4NCj4NCj4gVGhlIGtlcm5lbCBw YWdlcyB1c2VkIGJ5IHNobV9nZXRfa2VybmVsX3BhZ2VzKCkgYXJlIGFsbG9jYXRlZCB1c2luZyAN Cj4gR0ZQX0tFUk5FTCB0aHJvdWdoIHRoZSBmb2xsb3dpbmcgY2FsbCBzdGFjazoNCj4NCj4gdHJ1 c3RlZF9pbnN0YW50aWF0ZSgpDQo+ICAgICAgICAgdHJ1c3RlZF9wYXlsb2FkX2FsbG9jKCkgLT4g R0ZQX0tFUk5FTA0KPiAgICAgICAgIDx0cnVzdGVkIGtleSBvcD4NCj4gICAgICAgICAgICAgICAg IHRlZV9zaG1fcmVnaXN0ZXJfa2VybmVsX2J1ZigpDQo+ICAgICAgICAgICAgICAgICAgICAgICAg IHJlZ2lzdGVyX3NobV9oZWxwZXIoKQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNobV9nZXRfa2VybmVsX3BhZ2VzKCkNCj4NCj4gV2hlcmUgPHRydXN0ZWQga2V5IG9wPiBpcyBv bmUgb2Y6DQo+DQo+ICAgICAgICAgdHJ1c3RlZF9rZXlfdW5zZWFsKCkNCj4gICAgICAgICB0cnVz dGVkX2tleV9nZXRfcmFuZG9tKCkNCj4gICAgICAgICB0cnVzdGVkX2tleV9zZWFsKCkNCj4NCj4g UmVtb3ZlIHRoZSB2bWFsbG9jIHBhZ2Ugc3VwcG9ydCBmcm9tIHNobV9nZXRfa2VybmVsX3BhZ2Vz KCkuICBSZXBsYWNlIA0KPiB3aXRoIGEgd2FybiBvbiBvbmNlLg0KPg0KPiBDYzogSmVucyBXaWts YW5kZXIgPGplbnMud2lrbGFuZGVyQGxpbmFyby5vcmc+DQo+IENjOiBBbCBWaXJvIDx2aXJvQHpl bml2LmxpbnV4Lm9yZy51az4NCj4gQ2M6ICJGYWJpbyBNLiBEZSBGcmFuY2VzY28iIDxmbWRlZnJh bmNlc2NvQGdtYWlsLmNvbT4NCj4gQ2M6IENocmlzdG9waCBIZWxsd2lnIDxoY2hAbHN0LmRlPg0K PiBDYzogTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3JnPg0KPiBT aWduZWQtb2ZmLWJ5OiBJcmEgV2VpbnkgPGlyYS53ZWlueUBpbnRlbC5jb20+DQo+DQo+IC0tLQ0K PiBKZW5zIEkgd2VudCB3aXRoIHRoZSBzdWdnZXN0aW9uIGZyb20gTGludXMgYW5kIENocmlzdG9w aCBhbmQgcmVqZWN0ZWQgDQo+IHZtYWxsb2MgYWRkcmVzc2VzLiAgSSBkaWQgbm90IGhlYXIgYmFj ayBmcm9tIHlvdSByZWdhcmRpbmcgTGludXMnDQo+IHF1ZXN0aW9uIGlmIHRoZSB2bWFsbG9jIHBh Z2Ugc3VwcG9ydCB3YXMgcmVxdWlyZWQgYnkgYW4gdXAgY29taW5nIA0KPiBwYXRjaCBzZXQgb3Ig bm90LiAgU28gSSBhc3N1bWVkIGl0IHdhcyBzb21ldGhpbmcgb3V0IG9mIHRyZWUuDQoNCkl0IGxv b2tzIGxpa2UgSSB3YXNuJ3QgQ0MnZCB0byB0aGF0IGNvbnZlcnNhdGlvbi4gSUlSQywgc3VwcG9y dCBmb3Igdm1hbGxvYyBhZGRyZXNzZXMgd2FzIGFkZGVkIHJlY2VudGx5IGJ5IFBoaWwgaGVyZSBb MV0uIFNvIEkgd291bGQgbGlrZSB0byBnaXZlIGhpbSBhIGNoYW5jZSBpZiBoZSBpcyBwbGFubmlu ZyB0byBwb3N0IGEgY29ycmVzcG9uZGluZyBrZXJuZWwgZHJpdmVyIHVwc3RyZWFtLg0KDQpbMV0g aHR0cHM6Ly91cmxkZWZlbnNlLmNvbS92My9fX2h0dHBzOi8vbGlzdHMudHJ1c3RlZGZpcm13YXJl Lm9yZy9hcmNoaXZlcy9saXN0L29wLXRlZUBsaXN0cy50cnVzdGVkZmlybXdhcmUub3JnL3RocmVh ZC9NN0hJM1AyTTY2VjI3U0szNUNHUVJJQ1o3REpaNUoyVy9fXzshIUNUUk5LQTl3TWcwQVJidyF3 R09LUjlrM2toWkpsUHQxS194QkNYWDRFQk01WkNmV0t1cnVGZ1NQNDVIOHdUdkpyeDRfU3QzRmI1 WnJsakQ1UVEkIA0KDQotU3VtaXQNCg0KPiAtLS0NCj4gIGRyaXZlcnMvdGVlL3RlZV9zaG0uYyB8 IDM2ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgMSBmaWxlIGNoYW5n ZWQsIDEyIGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQ0KPg0KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy90ZWUvdGVlX3NobS5jIGIvZHJpdmVycy90ZWUvdGVlX3NobS5jIGluZGV4IA0KPiAy NzI5NWJkYTNlMGIuLjUyN2E2ZWFiYzAzZSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy90ZWUvdGVl X3NobS5jDQo+ICsrKyBiL2RyaXZlcnMvdGVlL3RlZV9zaG0uYw0KPiBAQCAtMjQsMzcgKzI0LDI1 IEBAIHN0YXRpYyB2b2lkIHNobV9wdXRfa2VybmVsX3BhZ2VzKHN0cnVjdCBwYWdlIA0KPiAqKnBh Z2VzLCBzaXplX3QgcGFnZV9jb3VudCkgIHN0YXRpYyBpbnQgc2htX2dldF9rZXJuZWxfcGFnZXMo dW5zaWduZWQgbG9uZyBzdGFydCwgc2l6ZV90IHBhZ2VfY291bnQsDQo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IHBhZ2UgKipwYWdlcykgIHsNCj4gKyAgICAgICBzdHJ1 Y3Qga3ZlYyAqa2lvdjsNCj4gICAgICAgICBzaXplX3QgbjsNCj4gICAgICAgICBpbnQgcmM7DQo+ DQo+IC0gICAgICAgaWYgKGlzX3ZtYWxsb2NfYWRkcigodm9pZCAqKXN0YXJ0KSkgew0KPiAtICAg ICAgICAgICAgICAgc3RydWN0IHBhZ2UgKnBhZ2U7DQo+IC0NCj4gLSAgICAgICAgICAgICAgIGZv ciAobiA9IDA7IG4gPCBwYWdlX2NvdW50OyBuKyspIHsNCj4gLSAgICAgICAgICAgICAgICAgICAg ICAgcGFnZSA9IHZtYWxsb2NfdG9fcGFnZSgodm9pZCAqKShzdGFydCArIFBBR0VfU0laRSAqIG4p KTsNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwYWdlKQ0KPiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPiAtDQo+IC0gICAgICAgICAgICAg ICAgICAgICAgIGdldF9wYWdlKHBhZ2UpOw0KPiAtICAgICAgICAgICAgICAgICAgICAgICBwYWdl c1tuXSA9IHBhZ2U7DQo+IC0gICAgICAgICAgICAgICB9DQo+IC0gICAgICAgICAgICAgICByYyA9 IHBhZ2VfY291bnQ7DQo+IC0gICAgICAgfSBlbHNlIHsNCj4gLSAgICAgICAgICAgICAgIHN0cnVj dCBrdmVjICpraW92Ow0KPiAtDQo+IC0gICAgICAgICAgICAgICBraW92ID0ga2NhbGxvYyhwYWdl X2NvdW50LCBzaXplb2YoKmtpb3YpLCBHRlBfS0VSTkVMKTsNCj4gLSAgICAgICAgICAgICAgIGlm ICgha2lvdikNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ICsg ICAgICAgaWYgKFdBUk5fT05fT05DRShpc192bWFsbG9jX2FkZHIoKHZvaWQgKilzdGFydCkpKQ0K PiArICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+DQo+IC0gICAgICAgICAgICAgICBm b3IgKG4gPSAwOyBuIDwgcGFnZV9jb3VudDsgbisrKSB7DQo+IC0gICAgICAgICAgICAgICAgICAg ICAgIGtpb3Zbbl0uaW92X2Jhc2UgPSAodm9pZCAqKShzdGFydCArIG4gKiBQQUdFX1NJWkUpOw0K PiAtICAgICAgICAgICAgICAgICAgICAgICBraW92W25dLmlvdl9sZW4gPSBQQUdFX1NJWkU7DQo+ IC0gICAgICAgICAgICAgICB9DQo+ICsgICAgICAga2lvdiA9IGtjYWxsb2MocGFnZV9jb3VudCwg c2l6ZW9mKCpraW92KSwgR0ZQX0tFUk5FTCk7DQo+ICsgICAgICAgaWYgKCFraW92KQ0KPiArICAg ICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+DQo+IC0gICAgICAgICAgICAgICByYyA9IGdl dF9rZXJuZWxfcGFnZXMoa2lvdiwgcGFnZV9jb3VudCwgMCwgcGFnZXMpOw0KPiAtICAgICAgICAg ICAgICAga2ZyZWUoa2lvdik7DQo+ICsgICAgICAgZm9yIChuID0gMDsgbiA8IHBhZ2VfY291bnQ7 IG4rKykgew0KPiArICAgICAgICAgICAgICAga2lvdltuXS5pb3ZfYmFzZSA9ICh2b2lkICopKHN0 YXJ0ICsgbiAqIFBBR0VfU0laRSk7DQo+ICsgICAgICAgICAgICAgICBraW92W25dLmlvdl9sZW4g PSBQQUdFX1NJWkU7DQo+ICAgICAgICAgfQ0KPg0KPiArICAgICAgIHJjID0gZ2V0X2tlcm5lbF9w YWdlcyhraW92LCBwYWdlX2NvdW50LCAwLCBwYWdlcyk7DQo+ICsgICAgICAga2ZyZWUoa2lvdik7 DQo+ICsNCj4gICAgICAgICByZXR1cm4gcmM7DQo+ICB9DQo+DQo+IC0tDQo+IDIuMzcuMg0KPg0K --__=_Part_Boundary_002_426356397.994179320-- 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E9EAEC433F5 for ; Wed, 5 Oct 2022 03:34:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229728AbiJEDeP (ORCPT ); Tue, 4 Oct 2022 23:34:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41654 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229550AbiJEDdW (ORCPT ); Tue, 4 Oct 2022 23:33:22 -0400 Received: from mailgw01.mediatek.com (unknown [60.244.123.138]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0186B75FE4 for ; Tue, 4 Oct 2022 20:29:04 -0700 (PDT) X-UUID: 4b76852ca1f046dfb0b3fb799cd67881-20221005 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=MIME-Version:Content-Transfer-Encoding:Content-Type:In-Reply-To:References:Message-ID:Date:Subject:CC:To:From; bh=CUfKe5Bi176pExLTXoC/0Zioc0nRVISwQK06Gk94ldc=; b=hD0GnBP7QMnuDBOnSByuNPHAd+A5YAzJmNbXzpCNX6CKHZg+6IyXtOyNllaDW3XXOGsnBCweK4F8kMs2+3YIFeUIA1Teu6k43VvvOcGBwuL7vJQTfodBXGESpmTdQpo0s7tmFE7ljI9oZK/JHLCMGPc1zy5sBBFASqjNYjngK8A=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.11,REQID:18ab457d-f599-4365-891e-93f01b5d0553,IP:0,U RL:0,TC:0,Content:0,EDM:0,RT:0,SF:1,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:1 X-CID-INFO: VERSION:1.1.11,REQID:18ab457d-f599-4365-891e-93f01b5d0553,IP:0,URL :0,TC:0,Content:0,EDM:0,RT:0,SF:1,FILE:0,BULK:0,RULE:Release_Ham,ACTION:re lease,TS:1 X-CID-META: VersionHash:39a5ff1,CLOUDID:f07043fe-ee8c-4ff7-afe9-644435e96625,B ulkID:22100511290116F86UD6,BulkQuantity:0,Recheck:0,SF:38|17|19|823|824|10 2,TC:nil,Content:0,EDM:-3,IP:nil,URL:1,File:nil,Bulk:nil,QS:nil,BEC:nil,CO L:0 X-UUID: 4b76852ca1f046dfb0b3fb799cd67881-20221005 Received: from mtkcas10.mediatek.inc [(172.21.101.39)] by mailgw01.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1580226020; Wed, 05 Oct 2022 11:28:58 +0800 Received: from mtkmbs10n2.mediatek.inc (172.21.101.183) by mtkmbs11n2.mediatek.inc (172.21.101.187) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.792.15; Wed, 5 Oct 2022 11:28:56 +0800 Received: from APC01-PSA-obe.outbound.protection.outlook.com (172.21.101.239) by mtkmbs10n2.mediatek.inc (172.21.101.183) with Microsoft SMTP Server id 15.2.792.3 via Frontend Transport; Wed, 5 Oct 2022 11:28:56 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=B0cTmdZt8pOp6zsnAmh91ak89j0xISe2Ir/wvL48BB2iXjpN5WzjE7SRH0xA32xD+uzQu+MC9EIGx0P5gcTJI8rPcdOVKw+FkZDY8sNgWpb6DQfYiulCFj96h12zzQsLq9E02X6UH4nTsFz4TDWr67xQLA5HAOuUg0Io6P74bduA6Uqn3ksWE+9dl8SSrsXA9h3cYMMHHlv55iwUUdsjCuppHXkeGt6z1XFrMUTuBllQlEXC79JiE+JHVS2A/9KGwIn34TzxNMeBzPyeS/WM6c03pNNwGs3lLOgofJ+xhS2eK595UwvD4xPFVh+vFxNywThhA3rlD9vcTBf76+NpJw== 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=CUfKe5Bi176pExLTXoC/0Zioc0nRVISwQK06Gk94ldc=; b=OHP1sKhbZAKUYYoGIhVtLMay+Ubmzg+C8X0opjGkBP8CegeP3molNzVRsVZCpe9fRKcDe0LofUmbsjFKeb20WUPHKr9KRB03wMuTuN4z/CYVZlugaRkY7sPdeRrFb8tpwz+kaVDxetzbVPZKBNIreFVDMi8+wzNQTZk8TcpN96vws1SWq0UalFMB2Zyz12kSM0/gcmn0DCRSwhMDH1/kphVNEKcG//jwsvN74zBN+wPyNZBdbHYXHqnvFf773SspkTunACLkAMbkE6alXn+2g3pmCxWvDEp12jMdVt7GonmGJIBXKQVa0qyxLKkMqsaxoHzPiuSOBRZKI/hufTbVcg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mediatek.com; dmarc=pass action=none header.from=mediatek.com; dkim=pass header.d=mediatek.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mediateko365.onmicrosoft.com; s=selector2-mediateko365-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CUfKe5Bi176pExLTXoC/0Zioc0nRVISwQK06Gk94ldc=; b=hBVPH1F/Cah5Ij2dTzk0+zPCFt2oqWx9px6jYbL9kYvL2mzKZ/TpNi2LgxvvYyxRgaTsamuwb6WKirG8xNyy59vweu1QjW8LMfOPRe2pk07rE0g1Pf83rQCTt9TgLrXolLBFET0Ey1TlIQsy0Sl0z3VXBoJKAXfKbMCmH8E8jjA= Received: from TYZPR03MB6527.apcprd03.prod.outlook.com (2603:1096:400:1f8::13) by TY0PR03MB6703.apcprd03.prod.outlook.com (2603:1096:400:214::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.14; Wed, 5 Oct 2022 03:28:55 +0000 Received: from TYZPR03MB6527.apcprd03.prod.outlook.com ([fe80::454f:dbf:4e1f:7a07]) by TYZPR03MB6527.apcprd03.prod.outlook.com ([fe80::454f:dbf:4e1f:7a07%8]) with mapi id 15.20.5676.030; Wed, 5 Oct 2022 03:28:54 +0000 From: =?utf-8?B?UGhpbCBDaGFuZyAo5by15LiW5YuzKQ==?= To: Sumit Garg , "ira.weiny@intel.com" CC: Jens Wiklander , Andrew Morton , Al Viro , "Fabio M. De Francesco" , Christoph Hellwig , "Linus Torvalds" , "op-tee@lists.trustedfirmware.org" , "linux-kernel@vger.kernel.org" , "linux-mm@kvack.org" Subject: RE: [PATCH 2/4] tee: Remove vmalloc page support Thread-Topic: [PATCH 2/4] tee: Remove vmalloc page support Thread-Index: AQHY1vVsOAI3aGkJ6kG1DIjOysEShq3/JzRQ Date: Wed, 5 Oct 2022 03:28:54 +0000 Message-ID: References: <20221002002326.946620-1-ira.weiny@intel.com> <20221002002326.946620-3-ira.weiny@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=mediatek.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYZPR03MB6527:EE_|TY0PR03MB6703:EE_ x-ms-office365-filtering-correlation-id: 3d85c08e-0712-40cb-780c-08daa681bb48 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: cwFlREBBU6ib7GZrfaUiCbotAKSW8UNkkthVqc20LCYqdxc3IBAYdrLCpTI6guqGfoaFkeIEtnRkLxIS6GWdwc4fDKZw+zLa067hPKrzz6JgysXZVgvGjh/4yOTZWwrBdFxVm2n8wWn5DBcF2jiraOq4/GZH0srcqRboAhmrHLfLMf8ypXuxyeeM9NFpQ0oeT6sxEQ9QWpiPGPq1cQpJricCED9oYw7+1D0ZMS2wN+egltZ+mxhBFF7Z6ei7chtF6sVRNQwJNZK6OwMUKRTsaTHceLv1gtXKSXwy7wchD+4FgRo2b1ffDA6U5eGqX9DjHaLdzNlcDaBjI4FZ3nd4BIuPfwRTHv306CodQVyr2Ch5Fn0R+wG29ohsfspz/x9VURfuMRvbntSIjExB3VN+40NSdmHSJuLEZrTraoXuLPY6bSlvseyvsYkjwKCrLtB7FuqS7OLwq8sZRSWySapSzGx0Zkg8ZA/zu1GlZifbAUFVJEduLKnweeQjrXg5USEKbsb9QiAR4B1meFWgD5FaZoMtzzlA023QmjnMJGQ+2/A3cHNUuOGlzoYKuBmmNmnL5CfJjj+RolAvjEu6jYGId9qYpTtWQb65JfnXcQ9hGajEL9jwuleEDnf4QeDc5+HnHe00A4MfwpQLbJZsw4ecMXSNh+hCEMziKQNp8m8qkSTKzam92076gRQ0ceaRfMVrhuljhw763ukx7RgWeHLgpX1lwN/7q2QqAEpVFuvADZa3m2ufwDJfXAqe1SQKxkyVbAQsARKQHC6VtmctKxFl2fNKhrU9m4IWnhNzu5qbGea+hTrkT1oVT6is59guj1HIUEsLlZqKkx7y2qAI7XtiFfEV6n71PgwptA7UwB/JssA= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYZPR03MB6527.apcprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(39860400002)(346002)(366004)(376002)(396003)(136003)(451199015)(66556008)(316002)(41300700001)(85182001)(5660300002)(2906002)(7416002)(8936002)(52536014)(122000001)(55016003)(71200400001)(64756008)(38100700002)(9686003)(38070700005)(66476007)(66946007)(478600001)(33656002)(66446008)(966005)(110136005)(76116006)(54906003)(4326008)(8676002)(186003)(7696005)(26005)(86362001)(53546011)(83380400001)(6506007);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aTFaYzRGSlhPRlFGVjVia1hZNzNJNXhhWFFONXcyRXpKVHVXWEFCQXlreExp?= =?utf-8?B?OGtFRUZwa1VnNWxlUkZFbGVCdUxSRlk4Z2R5TEY1cWZ1NnlJNTM0YmJGdGp5?= =?utf-8?B?ZXJPZGZLQ0trM3RMUGNhUlF3RmMvNVkwakI0djRkdWdTQWdpL3ZuV04zK0xW?= =?utf-8?B?VVBEWUJsZ1M3S0hBYzIzM29oWE1EdmlnWGpFbTN3eVFhekltS3cyclhQc1V2?= =?utf-8?B?RTdqV3JpOUtjR3N6NXlvUTBnN3A1Z2hQYWVIOWhZMllVZXdvWmJyYXhpVys3?= =?utf-8?B?YmlXWE5oMjJXU0JKMktBaHcxT25pc2VJZEw2ODRqK2pmQTRpSHR5ejU1bS9N?= =?utf-8?B?Qkx6b25wdDdkR3VScjA5N2liQlBmeVh2c1BFN3ZKM0xFRGU1RDg0U29LUDRB?= =?utf-8?B?M3pQT1BBVEkvWTBQNjZJTGFMZG53c0p2ZlBoYzhwdUM4bkNvSmFBeEY1a08y?= =?utf-8?B?YmdxMmxmOE5zSW51UGtISFdkanJFb2VLcW1neE9iaEsxUTBMWjZEdFFxU1NO?= =?utf-8?B?TkdnUXdlS2dxSjB4ZnNTdUd6VHlwdk1ScTBqUW9aeUw4Zm9mVWFXZGVIRzh2?= =?utf-8?B?UlUwWDZxZzVHY1o0QndIM1JQdWpYekhrZ1dxdVdpa1ZkUWVZaThIcXg1SktS?= =?utf-8?B?cUFWb3B1QWJodXZLZ0QwdnpETWFMMVVGU3RiSy9sN0Zad3lDeG8ydG9rVHNu?= =?utf-8?B?bkpyazRZbmJ1YTREdElvR0FqWUpjT3ZWYUhRUUpRbGpXeG9TWmZpR0hHQjVB?= =?utf-8?B?a0NOSzZJeTNqYVFwSDB0VVdvMHc0RTZlaEY3QmRKcGdNbmdKWHM4VlM2d0Ni?= =?utf-8?B?RlB4aTNxSlprVnZIQzlYTjBmNk9vRk5Wa0xWVi9kVFl2L2hmbVZocUczRlVw?= =?utf-8?B?M2s2dFZXYisyTWVwSHZNZCsrdk94SmZVcnJaL2FJeEJSQ2gzcEllOHVwSk4v?= =?utf-8?B?N1VkU2FDY1dsSXFqNEFNMEFrZjVtRlpqd2pLWHZ3T2ZoVWNDQkpGU3lQNlFW?= =?utf-8?B?cENHdmpMWG5WMzR4b0ZrdWJxbUdtNk5ReUgyMS9RNFRFMzJGcXRqWlhqaW9w?= =?utf-8?B?eW5KVS9wNG9xKzZaQm44OGhubFhGRks1QjJTcUtmbVJ3dXVWUDBpZEcrVnRL?= =?utf-8?B?cXBzL0NTeTBLTHpmejNtU0Y5WnV2TG1NL0lmaTVwSGVnc09RNHJoK1NHcTdV?= =?utf-8?B?dHA4cGJDSWFjUWVBQWx5QktKMkFyT29xbm9weHhXYVNyTmdrSkJKWVltRjdC?= =?utf-8?B?VW1KRjB1UDhMYUczWVdNc1ZpeTlqYml3a05NcnVXL2VSVEVHN3E0MW9hMXV3?= =?utf-8?B?L00rcmlQQUN4cUVxUkJjdFRmYmVYd3J6ZVdQTWZsaFFEZ2k3ODJiK3ZqUVRt?= =?utf-8?B?NTdKaC84ZUJITitsQkNBeS9OdThaQjN4VytqSW41ODdRbFNHSDhWaGlSRUJE?= =?utf-8?B?YXhSSjY2ZE1ib1VQU1hudDlqZDRIMHcvbE9VZjV1Q3Z4S2EraVdYV1RQd1lp?= =?utf-8?B?NmZKa1VlZ1NxVVVmRU9YWTZ6L3BxMzBXKzArUTE0L3U2Ui9IV254bHF2YzU3?= =?utf-8?B?aXpTbE5zUUZNMzZBN3VGQ0V0NElKbzU4VTRDN2ZDWndIVzlicFgyN1NjS0tm?= =?utf-8?B?TnNqZ2xsRXVlY25jM25qVXAvZTU4OXRPSGNZdS94a2lBWVk5a2pXejhNdlJ4?= =?utf-8?B?dUtYSVRJL2R1dHZzWEZTc2xGMnBHODN4dzR2S3RMY1d2ZzFhOUZJcjFyOFEz?= =?utf-8?B?cWh4VUxTcHI5am5SMTBvYzFVYk1yTEw0Y1VKRXdKWFRMYXppT3d3eTNtUC9j?= =?utf-8?B?QmJjZFJwT1JLZlVIN2VxMzJ0R0IybVdaU3l0REFmc0RyMWpXbzN0czBoYS9m?= =?utf-8?B?cnBUM2hWbUdrRDJSWERZS2JGbU1kQlpoSSsxZlNnelBtYktEY2V3NVBKclJR?= =?utf-8?B?Ykswc0x2QXBmbmNrYkNpTnprU1dyRkhrRzBFc2s2WllpTDU3TG10ME1JQ2Nz?= =?utf-8?B?RmZTUjV3bE9QNWNwNndKM3NMY09QK2FvU0h4RG52TzQ5OThDOHQ1WCtSL0k0?= =?utf-8?B?THU5aTExQ25wa1NiU01EQksyaTA1MlpQWVloL2J3TXBmYm1GQjFLZDk4SDZH?= =?utf-8?Q?nAuPqKU3jK35jkyUjPM++hAPN?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYZPR03MB6527.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3d85c08e-0712-40cb-780c-08daa681bb48 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Oct 2022 03:28:54.8802 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a7687ede-7a6b-4ef6-bace-642f677fbe31 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ympki48gXE9ajcjD5IsAYFozn9K3JRiGU75aWXdgn9kZhawgDzNT7lYu5AUaQjbLinPpNDOLxuOzDRvx2GlRNA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY0PR03MB6703 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgU3VtaXQNCg0KVGhhbmtzIGZvciBtZW50aW9uaW5nIHRoYXQsIGluIGZhY3QsIG91ciBwcm9k dWN0IGlzIGxvdyBtZW1vcnkgZGV2aWNlcywgYW5kIGNvbnRpbnVvdXMgcGFnZXMgYXJlIGV4dHJl bWVseSB2YWx1YWJsZS4NCkFsdGhvdWdoIG91ciBkcml2ZXIgaXMgbm90IHVwc3RyZWFtIHlldCBi dXQgaGlnaGx5IGRlcGVuZGVudCBvbiB0ZWUgc2htIHZtYWxsb2Mgc3VwcG9ydCwNCnNvbWUgc2Nl bmFyaW9zIGFyZSBkcml2ZXIgYWxsb2MgaGlnaCBvcmRlciBwYWdlcyBidXQgc3lzdGVtIG1lbW9y eSBpcyBmcmFnbWVudGF0aW9uIHNvIHRoYXQgYWxsb2MgZmFpbGVkLg0KSW4gdGhpcyBzaXR1YXRp b24sIHZtYWxsb2Mgc3VwcG9ydCBpcyBpbXBvcnRhbnQgYW5kIGdpdmVzIGZsZXhpYmxlIHVzYWdl IHRvIHVzZXIuDQoNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IFN1bWl0IEdh cmcgPHN1bWl0LmdhcmdAbGluYXJvLm9yZz4gDQpTZW50OiBNb25kYXksIE9jdG9iZXIgMywgMjAy MiAyOjU3IFBNDQpUbzogaXJhLndlaW55QGludGVsLmNvbQ0KQ2M6IEplbnMgV2lrbGFuZGVyIDxq ZW5zLndpa2xhbmRlckBsaW5hcm8ub3JnPjsgQW5kcmV3IE1vcnRvbiA8YWtwbUBsaW51eC1mb3Vu ZGF0aW9uLm9yZz47IEFsIFZpcm8gPHZpcm9AemVuaXYubGludXgub3JnLnVrPjsgRmFiaW8gTS4g RGUgRnJhbmNlc2NvIDxmbWRlZnJhbmNlc2NvQGdtYWlsLmNvbT47IENocmlzdG9waCBIZWxsd2ln IDxoY2hAbHN0LmRlPjsgTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24u b3JnPjsgb3AtdGVlQGxpc3RzLnRydXN0ZWRmaXJtd2FyZS5vcmc7IGxpbnV4LWtlcm5lbEB2Z2Vy Lmtlcm5lbC5vcmc7IGxpbnV4LW1tQGt2YWNrLm9yZzsgUGhpbCBDaGFuZyAo5by15LiW5YuzKSA8 UGhpbC5DaGFuZ0BtZWRpYXRlay5jb20+DQpTdWJqZWN0OiBSZTogW1BBVENIIDIvNF0gdGVlOiBS ZW1vdmUgdm1hbGxvYyBwYWdlIHN1cHBvcnQNCg0KKyBQaGlsDQoNCkhpIElyYSwNCg0KT24gU3Vu LCAyIE9jdCAyMDIyIGF0IDA1OjUzLCA8aXJhLndlaW55QGludGVsLmNvbT4gd3JvdGU6DQo+DQo+ IEZyb206IElyYSBXZWlueSA8aXJhLndlaW55QGludGVsLmNvbT4NCj4NCj4gVGhlIGtlcm5lbCBw YWdlcyB1c2VkIGJ5IHNobV9nZXRfa2VybmVsX3BhZ2VzKCkgYXJlIGFsbG9jYXRlZCB1c2luZyAN Cj4gR0ZQX0tFUk5FTCB0aHJvdWdoIHRoZSBmb2xsb3dpbmcgY2FsbCBzdGFjazoNCj4NCj4gdHJ1 c3RlZF9pbnN0YW50aWF0ZSgpDQo+ICAgICAgICAgdHJ1c3RlZF9wYXlsb2FkX2FsbG9jKCkgLT4g R0ZQX0tFUk5FTA0KPiAgICAgICAgIDx0cnVzdGVkIGtleSBvcD4NCj4gICAgICAgICAgICAgICAg IHRlZV9zaG1fcmVnaXN0ZXJfa2VybmVsX2J1ZigpDQo+ICAgICAgICAgICAgICAgICAgICAgICAg IHJlZ2lzdGVyX3NobV9oZWxwZXIoKQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNobV9nZXRfa2VybmVsX3BhZ2VzKCkNCj4NCj4gV2hlcmUgPHRydXN0ZWQga2V5IG9wPiBpcyBv bmUgb2Y6DQo+DQo+ICAgICAgICAgdHJ1c3RlZF9rZXlfdW5zZWFsKCkNCj4gICAgICAgICB0cnVz dGVkX2tleV9nZXRfcmFuZG9tKCkNCj4gICAgICAgICB0cnVzdGVkX2tleV9zZWFsKCkNCj4NCj4g UmVtb3ZlIHRoZSB2bWFsbG9jIHBhZ2Ugc3VwcG9ydCBmcm9tIHNobV9nZXRfa2VybmVsX3BhZ2Vz KCkuICBSZXBsYWNlIA0KPiB3aXRoIGEgd2FybiBvbiBvbmNlLg0KPg0KPiBDYzogSmVucyBXaWts YW5kZXIgPGplbnMud2lrbGFuZGVyQGxpbmFyby5vcmc+DQo+IENjOiBBbCBWaXJvIDx2aXJvQHpl bml2LmxpbnV4Lm9yZy51az4NCj4gQ2M6ICJGYWJpbyBNLiBEZSBGcmFuY2VzY28iIDxmbWRlZnJh bmNlc2NvQGdtYWlsLmNvbT4NCj4gQ2M6IENocmlzdG9waCBIZWxsd2lnIDxoY2hAbHN0LmRlPg0K PiBDYzogTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3JnPg0KPiBT aWduZWQtb2ZmLWJ5OiBJcmEgV2VpbnkgPGlyYS53ZWlueUBpbnRlbC5jb20+DQo+DQo+IC0tLQ0K PiBKZW5zIEkgd2VudCB3aXRoIHRoZSBzdWdnZXN0aW9uIGZyb20gTGludXMgYW5kIENocmlzdG9w aCBhbmQgcmVqZWN0ZWQgDQo+IHZtYWxsb2MgYWRkcmVzc2VzLiAgSSBkaWQgbm90IGhlYXIgYmFj ayBmcm9tIHlvdSByZWdhcmRpbmcgTGludXMnDQo+IHF1ZXN0aW9uIGlmIHRoZSB2bWFsbG9jIHBh Z2Ugc3VwcG9ydCB3YXMgcmVxdWlyZWQgYnkgYW4gdXAgY29taW5nIA0KPiBwYXRjaCBzZXQgb3Ig bm90LiAgU28gSSBhc3N1bWVkIGl0IHdhcyBzb21ldGhpbmcgb3V0IG9mIHRyZWUuDQoNCkl0IGxv b2tzIGxpa2UgSSB3YXNuJ3QgQ0MnZCB0byB0aGF0IGNvbnZlcnNhdGlvbi4gSUlSQywgc3VwcG9y dCBmb3Igdm1hbGxvYyBhZGRyZXNzZXMgd2FzIGFkZGVkIHJlY2VudGx5IGJ5IFBoaWwgaGVyZSBb MV0uIFNvIEkgd291bGQgbGlrZSB0byBnaXZlIGhpbSBhIGNoYW5jZSBpZiBoZSBpcyBwbGFubmlu ZyB0byBwb3N0IGEgY29ycmVzcG9uZGluZyBrZXJuZWwgZHJpdmVyIHVwc3RyZWFtLg0KDQpbMV0g aHR0cHM6Ly91cmxkZWZlbnNlLmNvbS92My9fX2h0dHBzOi8vbGlzdHMudHJ1c3RlZGZpcm13YXJl Lm9yZy9hcmNoaXZlcy9saXN0L29wLXRlZUBsaXN0cy50cnVzdGVkZmlybXdhcmUub3JnL3RocmVh ZC9NN0hJM1AyTTY2VjI3U0szNUNHUVJJQ1o3REpaNUoyVy9fXzshIUNUUk5LQTl3TWcwQVJidyF3 R09LUjlrM2toWkpsUHQxS194QkNYWDRFQk01WkNmV0t1cnVGZ1NQNDVIOHdUdkpyeDRfU3QzRmI1 WnJsakQ1UVEkIA0KDQotU3VtaXQNCg0KPiAtLS0NCj4gIGRyaXZlcnMvdGVlL3RlZV9zaG0uYyB8 IDM2ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgMSBmaWxlIGNoYW5n ZWQsIDEyIGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQ0KPg0KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy90ZWUvdGVlX3NobS5jIGIvZHJpdmVycy90ZWUvdGVlX3NobS5jIGluZGV4IA0KPiAy NzI5NWJkYTNlMGIuLjUyN2E2ZWFiYzAzZSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy90ZWUvdGVl X3NobS5jDQo+ICsrKyBiL2RyaXZlcnMvdGVlL3RlZV9zaG0uYw0KPiBAQCAtMjQsMzcgKzI0LDI1 IEBAIHN0YXRpYyB2b2lkIHNobV9wdXRfa2VybmVsX3BhZ2VzKHN0cnVjdCBwYWdlIA0KPiAqKnBh Z2VzLCBzaXplX3QgcGFnZV9jb3VudCkgIHN0YXRpYyBpbnQgc2htX2dldF9rZXJuZWxfcGFnZXMo dW5zaWduZWQgbG9uZyBzdGFydCwgc2l6ZV90IHBhZ2VfY291bnQsDQo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IHBhZ2UgKipwYWdlcykgIHsNCj4gKyAgICAgICBzdHJ1 Y3Qga3ZlYyAqa2lvdjsNCj4gICAgICAgICBzaXplX3QgbjsNCj4gICAgICAgICBpbnQgcmM7DQo+ DQo+IC0gICAgICAgaWYgKGlzX3ZtYWxsb2NfYWRkcigodm9pZCAqKXN0YXJ0KSkgew0KPiAtICAg ICAgICAgICAgICAgc3RydWN0IHBhZ2UgKnBhZ2U7DQo+IC0NCj4gLSAgICAgICAgICAgICAgIGZv ciAobiA9IDA7IG4gPCBwYWdlX2NvdW50OyBuKyspIHsNCj4gLSAgICAgICAgICAgICAgICAgICAg ICAgcGFnZSA9IHZtYWxsb2NfdG9fcGFnZSgodm9pZCAqKShzdGFydCArIFBBR0VfU0laRSAqIG4p KTsNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwYWdlKQ0KPiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPiAtDQo+IC0gICAgICAgICAgICAg ICAgICAgICAgIGdldF9wYWdlKHBhZ2UpOw0KPiAtICAgICAgICAgICAgICAgICAgICAgICBwYWdl c1tuXSA9IHBhZ2U7DQo+IC0gICAgICAgICAgICAgICB9DQo+IC0gICAgICAgICAgICAgICByYyA9 IHBhZ2VfY291bnQ7DQo+IC0gICAgICAgfSBlbHNlIHsNCj4gLSAgICAgICAgICAgICAgIHN0cnVj dCBrdmVjICpraW92Ow0KPiAtDQo+IC0gICAgICAgICAgICAgICBraW92ID0ga2NhbGxvYyhwYWdl X2NvdW50LCBzaXplb2YoKmtpb3YpLCBHRlBfS0VSTkVMKTsNCj4gLSAgICAgICAgICAgICAgIGlm ICgha2lvdikNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ICsg ICAgICAgaWYgKFdBUk5fT05fT05DRShpc192bWFsbG9jX2FkZHIoKHZvaWQgKilzdGFydCkpKQ0K PiArICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+DQo+IC0gICAgICAgICAgICAgICBm b3IgKG4gPSAwOyBuIDwgcGFnZV9jb3VudDsgbisrKSB7DQo+IC0gICAgICAgICAgICAgICAgICAg ICAgIGtpb3Zbbl0uaW92X2Jhc2UgPSAodm9pZCAqKShzdGFydCArIG4gKiBQQUdFX1NJWkUpOw0K PiAtICAgICAgICAgICAgICAgICAgICAgICBraW92W25dLmlvdl9sZW4gPSBQQUdFX1NJWkU7DQo+ IC0gICAgICAgICAgICAgICB9DQo+ICsgICAgICAga2lvdiA9IGtjYWxsb2MocGFnZV9jb3VudCwg c2l6ZW9mKCpraW92KSwgR0ZQX0tFUk5FTCk7DQo+ICsgICAgICAgaWYgKCFraW92KQ0KPiArICAg ICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+DQo+IC0gICAgICAgICAgICAgICByYyA9IGdl dF9rZXJuZWxfcGFnZXMoa2lvdiwgcGFnZV9jb3VudCwgMCwgcGFnZXMpOw0KPiAtICAgICAgICAg ICAgICAga2ZyZWUoa2lvdik7DQo+ICsgICAgICAgZm9yIChuID0gMDsgbiA8IHBhZ2VfY291bnQ7 IG4rKykgew0KPiArICAgICAgICAgICAgICAga2lvdltuXS5pb3ZfYmFzZSA9ICh2b2lkICopKHN0 YXJ0ICsgbiAqIFBBR0VfU0laRSk7DQo+ICsgICAgICAgICAgICAgICBraW92W25dLmlvdl9sZW4g PSBQQUdFX1NJWkU7DQo+ICAgICAgICAgfQ0KPg0KPiArICAgICAgIHJjID0gZ2V0X2tlcm5lbF9w YWdlcyhraW92LCBwYWdlX2NvdW50LCAwLCBwYWdlcyk7DQo+ICsgICAgICAga2ZyZWUoa2lvdik7 DQo+ICsNCj4gICAgICAgICByZXR1cm4gcmM7DQo+ICB9DQo+DQo+IC0tDQo+IDIuMzcuMg0KPg0K