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 843B5C433EF for ; Mon, 27 Jun 2022 21:36:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241214AbiF0Vgm (ORCPT ); Mon, 27 Jun 2022 17:36:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40954 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236180AbiF0Vgj (ORCPT ); Mon, 27 Jun 2022 17:36:39 -0400 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8B5AD10FF; Mon, 27 Jun 2022 14:36:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1656365798; x=1687901798; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=/Pwkh0uaaHn/paz+I3Jd0J5JSGkYUy5dysY8kQJiyz0=; b=NUrucmQ9b/sFLLkjQ+m8g61IcAD0leLwky2Qp3yFskHJ89LjjWOSB7r7 ajOIYiHKzb6TYddoMRINv9Uy/W1Ote6Msw8txvlwPUAwZGcsXdqsjkM8L r0vXVsc1kXXwQ1vXsEi9sNTz9HDnwgnLemFfbWY5ywBQlcoTHi61t5D68 Y8tOnj6U1P6wMRUNbQPK+TosWoLp7oYIts5aaY3pB4UW0AGAiN5ZVkmAS snNAtDYOA0gYZozs4r/knvQlpKpozzGGzcuqXYRIxHohaS1uL6EPWBpH0 9JiTxyGBReaOLBZ+9k5ecUjhc5Cta2dJl/UokcjSYESc2E15oRn2Yqa8p A==; X-IronPort-AV: E=McAfee;i="6400,9594,10391"; a="264610031" X-IronPort-AV: E=Sophos;i="5.92,227,1650956400"; d="scan'208";a="264610031" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Jun 2022 14:36:38 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,227,1650956400"; d="scan'208";a="836380542" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by fmsmga006.fm.intel.com with ESMTP; 27 Jun 2022 14:36:37 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Mon, 27 Jun 2022 14:36:37 -0700 Received: from fmsmsx605.amr.corp.intel.com (10.18.126.85) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Mon, 27 Jun 2022 14:36:37 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Mon, 27 Jun 2022 14:36:36 -0700 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.48) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Mon, 27 Jun 2022 14:36:36 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZifawIHS82eafGEnYWXWJWsqh3kMlnGaSimq1G9h0YUl4797XwYcNDFBeqX5b5VO0tmKGGePj313gFhSkoVbFS8Gk1HFuxYC+vXWu/VNbZgpNBV5+rEI97XTCFhC9IE/HJ8zl9v5XwWHulEVPExrwr2vWCf59vhnPzQhrcFn+I6qP01J8Y+8gqJOyMp2AvnI35w9yvuXR6/fZdmWpWKUuOJqLSNGM9ezhppdggCtHuRS7kzIjSPzGxJjRX342j8gJB98Iy1tIHrfpaiZF3PO+vN/Ng8tUzdGtb6C1QS+Fzy88MMBKYOXjQoSNO1f9WXiF7N6eWttdqmtEPVXWQYvRw== 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=/Pwkh0uaaHn/paz+I3Jd0J5JSGkYUy5dysY8kQJiyz0=; b=cYSXiebN9QsNn7D1wT6EccgC3nDuhfru+RYdAC6T9FaE6dBRg7ptt26StJjJy//v5IExQM1EUVBFvWCL4AJ5BIyaSwgP8mfB9GtBwyvvnyMwH9TiH179C5IaRaUrfYnqjF6c3zFaMRY64WFpMRVzY3vZo1FkIZo6rfccj4h3c1t7Mh5qNevsDWnR9gs5kd1j4bRLTwRW7VZ0PeWICJ9V7aW+TMqblx9Ver+3Pr3VImG2M+TZf+H0Fy8eIJIH6S1SgkkHK4U485nVfp8lTN5FIDMav6u7xRYbok3+KHqsoCjqTN044Onj+xr7YLpu5hT0Z0ax2NWr3KAdb3Ohr3K8TQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BL0PR11MB3042.namprd11.prod.outlook.com (2603:10b6:208:78::17) by MWHPR11MB1647.namprd11.prod.outlook.com (2603:10b6:301:d::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 21:36:33 +0000 Received: from BL0PR11MB3042.namprd11.prod.outlook.com ([fe80::f8f7:ef02:6185:285c]) by BL0PR11MB3042.namprd11.prod.outlook.com ([fe80::f8f7:ef02:6185:285c%7]) with mapi id 15.20.5373.019; Mon, 27 Jun 2022 21:36:33 +0000 From: "Dong, Eddie" To: Vitaly Kuznetsov , "kvm@vger.kernel.org" , Paolo Bonzini , "Christopherson,, Sean" CC: Anirudh Rayabharam , Wanpeng Li , Jim Mattson , Maxim Levitsky , "linux-hyperv@vger.kernel.org" , "linux-kernel@vger.kernel.org" Subject: RE: [PATCH 04/14] KVM: VMX: Extend VMX controls macro shenanigans Thread-Topic: [PATCH 04/14] KVM: VMX: Extend VMX controls macro shenanigans Thread-Index: AQHYik6KKFE01MBgH0muEzHMVocHMK1jv5fQ Date: Mon, 27 Jun 2022 21:36:33 +0000 Message-ID: References: <20220627160440.31857-1-vkuznets@redhat.com> <20220627160440.31857-5-vkuznets@redhat.com> In-Reply-To: <20220627160440.31857-5-vkuznets@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.500.17 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 8b90c33e-24bc-4b50-b275-08da58851b0e x-ms-traffictypediagnostic: MWHPR11MB1647:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: +h/8pbZm+BbSp6QT8tnPE0lro7k1f622gDTXSkaf4vqg1EbeNf+uyfDAappSgIOXtSPQMduiusoK8m2GanqUKKjiG0zayEoU1whCkB76ZCaT4xefShUw5MsaTKEarIXPk/ry+NPzJ8RCw9Q4kO1ZqPUgS3rh/JMsOhp8oSA51Fi3xkAlsasrgC5QFYGezY4PVYyD7yj8Psooy1+ptwKJOB0ctJ3ZzHqXn6v5FFQTbxP5FOCVa7OF7hUN662o2Xpbe6skVtDt02C88pIO0qG/Vr6/G1xw2zlqwbzu7ERTcW0ej7qsDbHIH6lwFU7oWUWtZ6NWnBI0gkeZABASeIBWGoczDY/bQgvXzTO09c6RWsQjkYlkS0eeOR1U2HOz1k+iBXD0ujMQ1ZVmiA6BleO8bhXLXTwth2fdqctYLytzJyNv76K6+YjNfUnNcIj6le5aPmPe2vRyZYbXc2aSXoaF1WgYRVUgkn5HiZMufaWVsVO8FZaAoDGO4zZxWIkpb1hbSlK80I350Ko+aFin9nC2B5jIpacGvkMCx3F+60hEyWntuylptgomzPStD7FJklX0e6lltL0r7IcZsElxvsCrbGUqpF465Y83CM3MV8nVbZimrK2DlK4Rl5CLWg2V9Rwq8koyhosPiu5JRrtuRpiNrL8mFs/bu29Xm0tX2aRuo089WtCqm5DaY6AQSEa60Y8F4Y/lbPJXGO/n79cWY8Qkv3gUDWIfr+Y2sp37URgU5bVZyRCvwfh0QYyv1dcw0V+A/mNKgW/5dIym3+eYuNeCGQK9Sw6yD/YqBc66mMNcUUc= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR11MB3042.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(396003)(346002)(366004)(376002)(39860400002)(136003)(66476007)(41300700001)(66446008)(64756008)(66556008)(478600001)(66946007)(30864003)(122000001)(76116006)(8936002)(71200400001)(6506007)(8676002)(86362001)(4326008)(9686003)(110136005)(53546011)(186003)(7416002)(83380400001)(54906003)(82960400001)(55016003)(5660300002)(7696005)(2906002)(38070700005)(316002)(52536014)(26005)(38100700002)(33656002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?b0Fsdm0vZisvNWp4YllPMmlxUG5iaEsrZUxOZzhySG93MUgvYXFMN3RUYU5n?= =?utf-8?B?Mm9YRnZ2d0hEaDJtWGdtVndUT1BuR1BkdmdPeElocGoyRlRYdlliZW1EZWpj?= =?utf-8?B?ZWxRNVZpTHJGSWdmOFRGd3BUT0dtaXgwUkxIUFdhak1hamI0d1lWSDBHaVdz?= =?utf-8?B?SXd4cW96OTJGUFZnVXFBNkZ2RkFNakhRRVl0WlUrL3pVZCtVK1VTZFdqa21C?= =?utf-8?B?Mi9LbldYU2hOZEtiUU5xdEFMNFJsODh0RCt2Z3VOa0dwNE01UXJpVUJRbC9N?= =?utf-8?B?Sjc2T3ZoZUs1ZjY2ZzljU3lSZ3JIN29UcVRGMEkwMjA5cmg2bmhwa1YzVUtG?= =?utf-8?B?TGNpdFZ2U0Y3TWRLOEVqUG9Sc3laUmd2MWV6cTRubUNLVFBSU1FIL2FWdndn?= =?utf-8?B?b1VBV3hnaG9aVE9Namt4WTJaeStRNE00NHkxUSt6SGtTQVZsUlNOcTk1amhY?= =?utf-8?B?amttdE1WY1N3YzE4b0NtNFFLK09rYWVZR2oxdnhlMnpacWJWRFczR3VMc3pB?= =?utf-8?B?TGZaMTdtUkdVSFlBWjgwM3E0UDV0NTV5aCtna0Q1S2NuckRhMVJuMVR4YmNR?= =?utf-8?B?VVZtbGk1a1NTTXN0d05xSC83UUpsSDVlQVZEWW00UmhEYndBVmNHOWhuWHRC?= =?utf-8?B?VVd0dmV4ek1XeUFieE43Z0FsZjI2a0JETU1YWmdGYy9wUFRPMGlwTmpKbmdC?= =?utf-8?B?bElUbTQzMkE2Uk5FVVI4WTZFb3JjeUNiWlRpamRhRFFFU3MwVGExaGMwWk5D?= =?utf-8?B?cWpadjN6TzFPOGZEOUEvOVJyamZDVmk0bm1KTFN0OHE0SXZUM3ZvU1dqd1hu?= =?utf-8?B?U2RmRDU3ZDJJekpmTkllaWs2ZDd2Z2xzVXVsMzZRU29lYWdHOXQ3eFN6NG44?= =?utf-8?B?ZGRaMFQ3QktXdGRaWlpveFpKN01Yb0Y4ajlVdnZ1Y0pjTXVxYkkrMUE1ZWJ6?= =?utf-8?B?SFEwNU9LS2UzbUMrV1I1L1BpcWlWY2l1ditXNnl6dktjNmV2ZjRaVVY1Yy9h?= =?utf-8?B?aytqRnN0eTZyVnAwK3NQcEZSSkRIS254K2xJaWt6Ty9WeTc5TFQ0a3YvNFdn?= =?utf-8?B?Vk42WWltbEN2S3VxWGRLK29ZQkZYOW05YW9sR0xYMGlaR2dEcEsvVE1iV1l0?= =?utf-8?B?b2dRVXRXRmhxZ2FSN2YwNEN0WlREdVRzZDBMNDJNS25XcllTSTVqRnBkaFJU?= =?utf-8?B?QkJPWUMxdXIrOXZ5bnVoWHRzUkZ6L1dCc2kvT1NxL0lRVjMxZnNTYXNvUVBr?= =?utf-8?B?Z3YxZGlDT013MjFHa0hFLzZlbFNqWHVxRnVsTW1vUmdEUGdVZGRReEhNSEc3?= =?utf-8?B?aHFwYW9jV2syZEdLOHlRQmlKaDBsbW42Nm9jazY5bkplamlXSzU3Q09zU0Vk?= =?utf-8?B?ZGVmT1JSVGxiRXQrN2N5ZlhrQlczOXNTS1gzMjRCTGsyekRnZzYyUnBQYXdU?= =?utf-8?B?RzdWRXJjVjk1WWpWMVZmWm5CVzJRclp2cTdWb0t1anJzYUd0Q3dlaEFEUzNL?= =?utf-8?B?MDNqdUZpR0Z6L3pHc1FiUFZsNmp3T1JFWmkwTENramNhNHg5YzE2WDdab1pO?= =?utf-8?B?SDJlaEVTY2ZPaGVHVGpFMjB1L21IRVo5a2M1am53NXpwUzhXMjBmWjVqdHJi?= =?utf-8?B?TFdvZ2JxdE5xenoyZURkd0l0WXlPdER0R1EzYVpPN3VjQzduRFZRRTFtNTFq?= =?utf-8?B?SlhGRjhwOXBSNG9jY0w3eU1kcXJHWndBdi8xdnpKMHVhK2srVzJKOVZPdHZm?= =?utf-8?B?Qzk2b1JZbmh3SmRFRHV3dzZWKzZJMGk5WkVMVCtiMDhNT0VPNU92TW55bzJW?= =?utf-8?B?d3BNVmx6bTY4aVRLVTFBbEM1T0FNU1hoaDluMmE2d2NQQXNwS1UyMEhiRzFu?= =?utf-8?B?NUw4UEU3b0JDb2hOTCtkcXY5dlVvOFBGQmg0RENyZzR1NTZtTmk4eG1rdXIr?= =?utf-8?B?SkJ5b01UbzhLS1dlMmN0Z0RJZG1sa0ZTTUN6V1h3T2hCZnRkN2ErSWFxZkxV?= =?utf-8?B?RTkraXo2eGg3K2xXb0V6ckVKS2dIbEdTVnhHR2VzeExia00xQXBrVUE1VG9D?= =?utf-8?B?WGZBR1gwN0lheXlsaXNhM3E2bUExbE5yYW5KR09oeXFKUkthVm14Y0ZWUith?= =?utf-8?Q?f/9tuCYmBcfa5IS1laU4Skc/O?= 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: BL0PR11MB3042.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8b90c33e-24bc-4b50-b275-08da58851b0e X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Jun 2022 21:36:33.3876 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: jdkx7STJWeeVDIa3KY/73ILUK58UJNerFj/YQvdVWiE1K9Q7k2UHtAdIeEtryBaM5kzBstn+zAoTs7PzDMdK/g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1647 X-OriginatorOrg: intel.com Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogVml0YWx5IEt1em5ldHNv diA8dmt1em5ldHNAcmVkaGF0LmNvbT4NCj4gU2VudDogTW9uZGF5LCBKdW5lIDI3LCAyMDIyIDk6 MDUgQU0NCj4gVG86IGt2bUB2Z2VyLmtlcm5lbC5vcmc7IFBhb2xvIEJvbnppbmkgPHBib256aW5p QHJlZGhhdC5jb20+Ow0KPiBDaHJpc3RvcGhlcnNvbiwsIFNlYW4gPHNlYW5qY0Bnb29nbGUuY29t Pg0KPiBDYzogQW5pcnVkaCBSYXlhYmhhcmFtIDxhbnJheWFiaEBsaW51eC5taWNyb3NvZnQuY29t PjsgV2FucGVuZyBMaQ0KPiA8d2FucGVuZ2xpQHRlbmNlbnQuY29tPjsgSmltIE1hdHRzb24gPGpt YXR0c29uQGdvb2dsZS5jb20+OyBNYXhpbQ0KPiBMZXZpdHNreSA8bWxldml0c2tAcmVkaGF0LmNv bT47IGxpbnV4LWh5cGVydkB2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4LQ0KPiBrZXJuZWxAdmdlci5r ZXJuZWwub3JnDQo+IFN1YmplY3Q6IFtQQVRDSCAwNC8xNF0gS1ZNOiBWTVg6IEV4dGVuZCBWTVgg Y29udHJvbHMgbWFjcm8gc2hlbmFuaWdhbnMNCj4gDQo+IFdoZW4gVk1YIGNvbnRyb2xzIG1hY3Jv cyBhcmUgdXNlZCB0byBzZXQgb3IgY2xlYXIgYSBjb250cm9sIGJpdCwgbWFrZSBzdXJlDQo+IHRo YXQgdGhpcyBiaXQgd2FzIGNoZWNrZWQgaW4gc2V0dXBfdm1jc19jb25maWcoKSBhbmQgdGh1cyBp cyBwcm9wZXJseQ0KPiByZWZsZWN0ZWQgaW4gdm1jc19jb25maWcuDQo+IA0KPiBObyBmdW5jdGlv bmFsIGNoYW5nZSBpbnRlbmRlZC4NCj4gDQo+IFN1Z2dlc3RlZC1ieTogU2VhbiBDaHJpc3RvcGhl cnNvbiA8c2VhbmpjQGdvb2dsZS5jb20+DQo+IFNpZ25lZC1vZmYtYnk6IFZpdGFseSBLdXpuZXRz b3YgPHZrdXpuZXRzQHJlZGhhdC5jb20+DQo+IC0tLQ0KPiAgYXJjaC94ODYva3ZtL3ZteC92bXgu YyB8ICA5OSArKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICBhcmNoL3g4 Ni9rdm0vdm14L3ZteC5oIHwgMTA5DQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrDQo+ICAyIGZpbGVzIGNoYW5nZWQsIDEyNyBpbnNlcnRpb25zKCspLCA4MSBkZWxl dGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jIGIvYXJj aC94ODYva3ZtL3ZteC92bXguYyBpbmRleA0KPiA1MzAwZjJhZDZhMjUuLjdlZjRiYzY5ZTJjNiAx MDA2NDQNCj4gLS0tIGEvYXJjaC94ODYva3ZtL3ZteC92bXguYw0KPiArKysgYi9hcmNoL3g4Ni9r dm0vdm14L3ZteC5jDQo+IEBAIC0yNDQ4LDcgKzI0NDgsNiBAQCBzdGF0aWMgX19pbml0IGludCBz ZXR1cF92bWNzX2NvbmZpZyhzdHJ1Y3QNCj4gdm1jc19jb25maWcgKnZtY3NfY29uZiwNCj4gIAkJ CQkgICAgc3RydWN0IHZteF9jYXBhYmlsaXR5ICp2bXhfY2FwKSAgew0KPiAgCXUzMiB2bXhfbXNy X2xvdywgdm14X21zcl9oaWdoOw0KPiAtCXUzMiBtaW4sIG9wdCwgbWluMiwgb3B0MjsNCj4gIAl1 MzIgX3Bpbl9iYXNlZF9leGVjX2NvbnRyb2wgPSAwOw0KPiAgCXUzMiBfY3B1X2Jhc2VkX2V4ZWNf Y29udHJvbCA9IDA7DQo+ICAJdTMyIF9jcHVfYmFzZWRfMm5kX2V4ZWNfY29udHJvbCA9IDA7DQo+ IEBAIC0yNDc0LDI4ICsyNDczLDEwIEBAIHN0YXRpYyBfX2luaXQgaW50IHNldHVwX3ZtY3NfY29u ZmlnKHN0cnVjdA0KPiB2bWNzX2NvbmZpZyAqdm1jc19jb25mLA0KPiAgCX07DQo+IA0KPiAgCW1l bXNldCh2bWNzX2NvbmYsIDAsIHNpemVvZigqdm1jc19jb25mKSk7DQo+IC0JbWluID0gQ1BVX0JB U0VEX0hMVF9FWElUSU5HIHwNCj4gLSNpZmRlZiBDT05GSUdfWDg2XzY0DQo+IC0JICAgICAgQ1BV X0JBU0VEX0NSOF9MT0FEX0VYSVRJTkcgfA0KPiAtCSAgICAgIENQVV9CQVNFRF9DUjhfU1RPUkVf RVhJVElORyB8DQo+IC0jZW5kaWYNCj4gLQkgICAgICBDUFVfQkFTRURfQ1IzX0xPQURfRVhJVElO RyB8DQo+IC0JICAgICAgQ1BVX0JBU0VEX0NSM19TVE9SRV9FWElUSU5HIHwNCj4gLQkgICAgICBD UFVfQkFTRURfVU5DT05EX0lPX0VYSVRJTkcgfA0KPiAtCSAgICAgIENQVV9CQVNFRF9NT1ZfRFJf RVhJVElORyB8DQo+IC0JICAgICAgQ1BVX0JBU0VEX1VTRV9UU0NfT0ZGU0VUVElORyB8DQo+IC0J ICAgICAgQ1BVX0JBU0VEX01XQUlUX0VYSVRJTkcgfA0KPiAtCSAgICAgIENQVV9CQVNFRF9NT05J VE9SX0VYSVRJTkcgfA0KPiAtCSAgICAgIENQVV9CQVNFRF9JTlZMUEdfRVhJVElORyB8DQo+IC0J ICAgICAgQ1BVX0JBU0VEX1JEUE1DX0VYSVRJTkcgfA0KPiAtCSAgICAgIENQVV9CQVNFRF9JTlRS X1dJTkRPV19FWElUSU5HIHwNCj4gLQkgICAgICBDUFVfQkFTRURfTk1JX1dJTkRPV19FWElUSU5H Ow0KPiAtDQo+IC0Jb3B0ID0gQ1BVX0JBU0VEX1RQUl9TSEFET1cgfA0KPiAtCSAgICAgIENQVV9C QVNFRF9VU0VfTVNSX0JJVE1BUFMgfA0KPiAtCSAgICAgIENQVV9CQVNFRF9BQ1RJVkFURV9TRUNP TkRBUllfQ09OVFJPTFMgfA0KPiAtCSAgICAgIENQVV9CQVNFRF9BQ1RJVkFURV9URVJUSUFSWV9D T05UUk9MUzsNCj4gLQlpZiAoYWRqdXN0X3ZteF9jb250cm9scyhtaW4sIG9wdCwNCj4gTVNSX0lB MzJfVk1YX1BST0NCQVNFRF9DVExTLA0KPiArDQo+ICsJaWYNCj4gKGFkanVzdF92bXhfY29udHJv bHMoS1ZNX1JFUV9WTVhfQ1BVX0JBU0VEX1ZNX0VYRUNfQ09OVFJPTCwNCj4gKw0KPiAJS1ZNX09Q VF9WTVhfQ1BVX0JBU0VEX1ZNX0VYRUNfQ09OVFJPTCwNCj4gKwkJCQlNU1JfSUEzMl9WTVhfUFJP Q0JBU0VEX0NUTFMsDQo+ICAJCQkJJl9jcHVfYmFzZWRfZXhlY19jb250cm9sKSA8IDApDQo+ICAJ CXJldHVybiAtRUlPOw0KPiAgI2lmZGVmIENPTkZJR19YODZfNjQNCj4gQEAgLTI1MDQsMzQgKzI0 ODUsOCBAQCBzdGF0aWMgX19pbml0IGludCBzZXR1cF92bWNzX2NvbmZpZyhzdHJ1Y3QNCj4gdm1j c19jb25maWcgKnZtY3NfY29uZiwNCj4gDQo+IH5DUFVfQkFTRURfQ1I4X1NUT1JFX0VYSVRJTkc7 DQo+ICAjZW5kaWYNCj4gIAlpZiAoX2NwdV9iYXNlZF9leGVjX2NvbnRyb2wgJg0KPiBDUFVfQkFT RURfQUNUSVZBVEVfU0VDT05EQVJZX0NPTlRST0xTKSB7DQo+IC0JCW1pbjIgPSAwOw0KPiAtCQlv cHQyID0gU0VDT05EQVJZX0VYRUNfVklSVFVBTElaRV9BUElDX0FDQ0VTU0VTIHwNCj4gLQkJCVNF Q09OREFSWV9FWEVDX1ZJUlRVQUxJWkVfWDJBUElDX01PREUgfA0KPiAtCQkJU0VDT05EQVJZX0VY RUNfV0JJTlZEX0VYSVRJTkcgfA0KPiAtCQkJU0VDT05EQVJZX0VYRUNfRU5BQkxFX1ZQSUQgfA0K PiAtCQkJU0VDT05EQVJZX0VYRUNfRU5BQkxFX0VQVCB8DQo+IC0JCQlTRUNPTkRBUllfRVhFQ19V TlJFU1RSSUNURURfR1VFU1QgfA0KPiAtCQkJU0VDT05EQVJZX0VYRUNfUEFVU0VfTE9PUF9FWElU SU5HIHwNCj4gLQkJCVNFQ09OREFSWV9FWEVDX0RFU0MgfA0KPiAtCQkJU0VDT05EQVJZX0VYRUNf RU5BQkxFX1JEVFNDUCB8DQo+IC0JCQlTRUNPTkRBUllfRVhFQ19FTkFCTEVfSU5WUENJRCB8DQo+ IC0JCQlTRUNPTkRBUllfRVhFQ19BUElDX1JFR0lTVEVSX1ZJUlQgfA0KPiAtCQkJU0VDT05EQVJZ X0VYRUNfVklSVFVBTF9JTlRSX0RFTElWRVJZIHwNCj4gLQkJCVNFQ09OREFSWV9FWEVDX1NIQURP V19WTUNTIHwNCj4gLQkJCVNFQ09OREFSWV9FWEVDX1hTQVZFUyB8DQo+IC0JCQlTRUNPTkRBUllf RVhFQ19SRFNFRURfRVhJVElORyB8DQo+IC0JCQlTRUNPTkRBUllfRVhFQ19SRFJBTkRfRVhJVElO RyB8DQo+IC0JCQlTRUNPTkRBUllfRVhFQ19FTkFCTEVfUE1MIHwNCj4gLQkJCVNFQ09OREFSWV9F WEVDX1RTQ19TQ0FMSU5HIHwNCj4gLQkJCVNFQ09OREFSWV9FWEVDX0VOQUJMRV9VU1JfV0FJVF9Q QVVTRSB8DQo+IC0JCQlTRUNPTkRBUllfRVhFQ19QVF9VU0VfR1BBIHwNCj4gLQkJCVNFQ09OREFS WV9FWEVDX1BUX0NPTkNFQUxfVk1YIHwNCj4gLQkJCVNFQ09OREFSWV9FWEVDX0VOQUJMRV9WTUZV TkMgfA0KPiAtCQkJU0VDT05EQVJZX0VYRUNfQlVTX0xPQ0tfREVURUNUSU9OIHwNCj4gLQkJCVNF Q09OREFSWV9FWEVDX05PVElGWV9WTV9FWElUSU5HIHwNCj4gLQkJCVNFQ09OREFSWV9FWEVDX0VO Q0xTX0VYSVRJTkc7DQo+IC0NCj4gLQkJaWYgKGFkanVzdF92bXhfY29udHJvbHMobWluMiwgb3B0 MiwNCj4gKwkJaWYNCj4gKGFkanVzdF92bXhfY29udHJvbHMoS1ZNX1JFUV9WTVhfU0VDT05EQVJZ X1ZNX0VYRUNfQ09OVFJPTCwNCj4gKw0KPiAJS1ZNX09QVF9WTVhfU0VDT05EQVJZX1ZNX0VYRUNf Q09OVFJPTCwNCj4gDQo+IAlNU1JfSUEzMl9WTVhfUFJPQ0JBU0VEX0NUTFMyLA0KPiAgCQkJCQkm X2NwdV9iYXNlZF8ybmRfZXhlY19jb250cm9sKSA8DQo+IDApDQo+ICAJCQlyZXR1cm4gLUVJTzsN Cj4gQEAgLTI1ODEsMzAgKzI1MzYsMjAgQEAgc3RhdGljIF9faW5pdCBpbnQgc2V0dXBfdm1jc19j b25maWcoc3RydWN0DQo+IHZtY3NfY29uZmlnICp2bWNzX2NvbmYsDQo+ICAJCV9jcHVfYmFzZWRf Mm5kX2V4ZWNfY29udHJvbCAmPQ0KPiB+U0VDT05EQVJZX0VYRUNfRU5DTFNfRVhJVElORzsNCj4g DQo+ICAJaWYgKF9jcHVfYmFzZWRfZXhlY19jb250cm9sICYNCj4gQ1BVX0JBU0VEX0FDVElWQVRF X1RFUlRJQVJZX0NPTlRST0xTKSB7DQo+IC0JCXU2NCBvcHQzID0gVEVSVElBUllfRVhFQ19JUElf VklSVDsNCj4gLQ0KPiAtCQlfY3B1X2Jhc2VkXzNyZF9leGVjX2NvbnRyb2wgPQ0KPiBhZGp1c3Rf dm14X2NvbnRyb2xzNjQob3B0MywNCj4gLQ0KPiBNU1JfSUEzMl9WTVhfUFJPQ0JBU0VEX0NUTFMz KTsNCj4gKwkJX2NwdV9iYXNlZF8zcmRfZXhlY19jb250cm9sID0NCj4gKw0KPiAJYWRqdXN0X3Zt eF9jb250cm9sczY0KEtWTV9PUFRfVk1YX1RFUlRJQVJZX1ZNX0VYRUNfQ09ODQo+IFRST0wsDQo+ ICsJCQlNU1JfSUEzMl9WTVhfUFJPQ0JBU0VEX0NUTFMzKTsNCj4gIAl9DQo+IA0KPiAtCW1pbiA9 IFZNX0VYSVRfU0FWRV9ERUJVR19DT05UUk9MUyB8DQo+IFZNX0VYSVRfQUNLX0lOVFJfT05fRVhJ VDsNCj4gLSNpZmRlZiBDT05GSUdfWDg2XzY0DQo+IC0JbWluIHw9IFZNX0VYSVRfSE9TVF9BRERS X1NQQUNFX1NJWkU7DQo+IC0jZW5kaWYNCj4gLQlvcHQgPSBWTV9FWElUX0xPQURfSUEzMl9QRVJG X0dMT0JBTF9DVFJMIHwNCj4gLQkgICAgICBWTV9FWElUX0xPQURfSUEzMl9QQVQgfA0KPiAtCSAg ICAgIFZNX0VYSVRfTE9BRF9JQTMyX0VGRVIgfA0KPiAtCSAgICAgIFZNX0VYSVRfQ0xFQVJfQk5E Q0ZHUyB8DQo+IC0JICAgICAgVk1fRVhJVF9QVF9DT05DRUFMX1BJUCB8DQo+IC0JICAgICAgVk1f RVhJVF9DTEVBUl9JQTMyX1JUSVRfQ1RMOw0KPiAtCWlmIChhZGp1c3Rfdm14X2NvbnRyb2xzKG1p biwgb3B0LCBNU1JfSUEzMl9WTVhfRVhJVF9DVExTLA0KPiArCWlmIChhZGp1c3Rfdm14X2NvbnRy b2xzKEtWTV9SRVFfVk1YX1ZNX0VYSVRfQ09OVFJPTFMsDQo+ICsJCQkJS1ZNX09QVF9WTVhfVk1f RVhJVF9DT05UUk9MUywNCj4gKwkJCQlNU1JfSUEzMl9WTVhfRVhJVF9DVExTLA0KPiAgCQkJCSZf dm1leGl0X2NvbnRyb2wpIDwgMCkNCj4gIAkJcmV0dXJuIC1FSU87DQo+IA0KPiAtCW1pbiA9IFBJ Tl9CQVNFRF9FWFRfSU5UUl9NQVNLIHwgUElOX0JBU0VEX05NSV9FWElUSU5HOw0KPiAtCW9wdCA9 IFBJTl9CQVNFRF9WSVJUVUFMX05NSVMgfCBQSU5fQkFTRURfUE9TVEVEX0lOVFIgfA0KPiAtCQkg UElOX0JBU0VEX1ZNWF9QUkVFTVBUSU9OX1RJTUVSOw0KPiAtCWlmIChhZGp1c3Rfdm14X2NvbnRy b2xzKG1pbiwgb3B0LCBNU1JfSUEzMl9WTVhfUElOQkFTRURfQ1RMUywNCj4gKwlpZg0KPiAoYWRq dXN0X3ZteF9jb250cm9scyhLVk1fUkVRX1ZNWF9QSU5fQkFTRURfVk1fRVhFQ19DT05UUk9MLA0K PiArDQo+IAlLVk1fT1BUX1ZNWF9QSU5fQkFTRURfVk1fRVhFQ19DT05UUk9MLA0KPiArCQkJCU1T Ul9JQTMyX1ZNWF9QSU5CQVNFRF9DVExTLA0KPiAgCQkJCSZfcGluX2Jhc2VkX2V4ZWNfY29udHJv bCkgPCAwKQ0KPiAgCQlyZXR1cm4gLUVJTzsNCj4gDQo+IEBAIC0yNjE0LDE3ICsyNTU5LDkgQEAg c3RhdGljIF9faW5pdCBpbnQgc2V0dXBfdm1jc19jb25maWcoc3RydWN0DQo+IHZtY3NfY29uZmln ICp2bWNzX2NvbmYsDQo+ICAJCVNFQ09OREFSWV9FWEVDX1ZJUlRVQUxfSU5UUl9ERUxJVkVSWSkp DQo+ICAJCV9waW5fYmFzZWRfZXhlY19jb250cm9sICY9IH5QSU5fQkFTRURfUE9TVEVEX0lOVFI7 DQo+IA0KPiAtCW1pbiA9IFZNX0VOVFJZX0xPQURfREVCVUdfQ09OVFJPTFM7DQo+IC0jaWZkZWYg Q09ORklHX1g4Nl82NA0KPiAtCW1pbiB8PSBWTV9FTlRSWV9JQTMyRV9NT0RFOw0KPiAtI2VuZGlm DQo+IC0Jb3B0ID0gVk1fRU5UUllfTE9BRF9JQTMyX1BFUkZfR0xPQkFMX0NUUkwgfA0KPiAtCSAg ICAgIFZNX0VOVFJZX0xPQURfSUEzMl9QQVQgfA0KPiAtCSAgICAgIFZNX0VOVFJZX0xPQURfSUEz Ml9FRkVSIHwNCj4gLQkgICAgICBWTV9FTlRSWV9MT0FEX0JORENGR1MgfA0KPiAtCSAgICAgIFZN X0VOVFJZX1BUX0NPTkNFQUxfUElQIHwNCj4gLQkgICAgICBWTV9FTlRSWV9MT0FEX0lBMzJfUlRJ VF9DVEw7DQo+IC0JaWYgKGFkanVzdF92bXhfY29udHJvbHMobWluLCBvcHQsIE1TUl9JQTMyX1ZN WF9FTlRSWV9DVExTLA0KPiArCWlmIChhZGp1c3Rfdm14X2NvbnRyb2xzKEtWTV9SRVFfVk1YX1ZN X0VOVFJZX0NPTlRST0xTLA0KPiArCQkJCUtWTV9PUFRfVk1YX1ZNX0VOVFJZX0NPTlRST0xTLA0K PiArCQkJCU1TUl9JQTMyX1ZNWF9FTlRSWV9DVExTLA0KPiAgCQkJCSZfdm1lbnRyeV9jb250cm9s KSA8IDApDQo+ICAJCXJldHVybiAtRUlPOw0KPiANCj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2 bS92bXgvdm14LmggYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5oIGluZGV4DQo+IDI4NmM4OGUyODVl YS4uNTQwZmViZWNhYzkyIDEwMDY0NA0KPiAtLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5oDQo+ ICsrKyBiL2FyY2gveDg2L2t2bS92bXgvdm14LmgNCj4gQEAgLTQ2Nyw2ICs0NjcsMTEzIEBAIHN0 YXRpYyBpbmxpbmUgdTggdm14X2dldF9ydmkodm9pZCkNCj4gIAlyZXR1cm4gdm1jc19yZWFkMTYo R1VFU1RfSU5UUl9TVEFUVVMpICYgMHhmZjsgIH0NCj4gDQo+ICsjZGVmaW5lIF9fS1ZNX1JFUV9W TVhfVk1fRU5UUllfQ09OVFJPTFMNCj4gCVwNCj4gKwkoVk1fRU5UUllfTE9BRF9ERUJVR19DT05U Uk9MUykNCj4gKyNpZmRlZiBDT05GSUdfWDg2XzY0DQo+ICsJI2RlZmluZSBLVk1fUkVRX1ZNWF9W TV9FTlRSWV9DT05UUk9MUwkJCVwNCj4gKwkJKF9fS1ZNX1JFUV9WTVhfVk1fRU5UUllfQ09OVFJP TFMgfAkJXA0KPiArCQlWTV9FTlRSWV9JQTMyRV9NT0RFKQ0KPiArI2Vsc2UNCj4gKwkjZGVmaW5l IEtWTV9SRVFfVk1YX1ZNX0VOVFJZX0NPTlRST0xTCQkJXA0KPiArCQlfX0tWTV9SRVFfVk1YX1ZN X0VOVFJZX0NPTlRST0xTDQo+ICsjZW5kaWYNCj4gKyNkZWZpbmUgS1ZNX09QVF9WTVhfVk1fRU5U UllfQ09OVFJPTFMNCj4gCVwNCj4gKwkoVk1fRU5UUllfTE9BRF9JQTMyX1BFUkZfR0xPQkFMX0NU UkwgfAkJCVwNCj4gKwlWTV9FTlRSWV9MT0FEX0lBMzJfUEFUIHwJCQkJXA0KPiArCVZNX0VOVFJZ X0xPQURfSUEzMl9FRkVSIHwJCQkJXA0KPiArCVZNX0VOVFJZX0xPQURfQk5EQ0ZHUyB8CQkJCQlc DQo+ICsJVk1fRU5UUllfUFRfQ09OQ0VBTF9QSVAgfAkJCQlcDQo+ICsJVk1fRU5UUllfTE9BRF9J QTMyX1JUSVRfQ1RMKQ0KPiArDQo+ICsjZGVmaW5lIF9fS1ZNX1JFUV9WTVhfVk1fRVhJVF9DT05U Uk9MUw0KPiAJXA0KPiArCShWTV9FWElUX1NBVkVfREVCVUdfQ09OVFJPTFMgfAkJCQlcDQo+ICsJ Vk1fRVhJVF9BQ0tfSU5UUl9PTl9FWElUKQ0KPiArI2lmZGVmIENPTkZJR19YODZfNjQNCj4gKwkj ZGVmaW5lIEtWTV9SRVFfVk1YX1ZNX0VYSVRfQ09OVFJPTFMJCQlcDQo+ICsJCShfX0tWTV9SRVFf Vk1YX1ZNX0VYSVRfQ09OVFJPTFMgfAkJXA0KPiArCQlWTV9FWElUX0hPU1RfQUREUl9TUEFDRV9T SVpFKQ0KPiArI2Vsc2UNCj4gKwkjZGVmaW5lIEtWTV9SRVFfVk1YX1ZNX0VYSVRfQ09OVFJPTFMJ CQlcDQo+ICsJCV9fS1ZNX1JFUV9WTVhfVk1fRVhJVF9DT05UUk9MUw0KPiArI2VuZGlmDQo+ICsj ZGVmaW5lIEtWTV9PUFRfVk1YX1ZNX0VYSVRfQ09OVFJPTFMJCQkJXA0KPiArCSAgICAgIChWTV9F WElUX0xPQURfSUEzMl9QRVJGX0dMT0JBTF9DVFJMIHwJCVwNCj4gKwkgICAgICBWTV9FWElUX0xP QURfSUEzMl9QQVQgfAkJCQlcDQo+ICsJICAgICAgVk1fRVhJVF9MT0FEX0lBMzJfRUZFUiB8CQkJ CVwNCj4gKwkgICAgICBWTV9FWElUX0NMRUFSX0JORENGR1MgfAkJCQlcDQo+ICsJICAgICAgVk1f RVhJVF9QVF9DT05DRUFMX1BJUCB8CQkJCVwNCj4gKwkgICAgICBWTV9FWElUX0NMRUFSX0lBMzJf UlRJVF9DVEwpDQo+ICsNCj4gKyNkZWZpbmUgS1ZNX1JFUV9WTVhfUElOX0JBU0VEX1ZNX0VYRUNf Q09OVFJPTA0KPiAJXA0KPiArCShQSU5fQkFTRURfRVhUX0lOVFJfTUFTSyB8CQkJCVwNCj4gKwkg UElOX0JBU0VEX05NSV9FWElUSU5HKQ0KPiArI2RlZmluZSBLVk1fT1BUX1ZNWF9QSU5fQkFTRURf Vk1fRVhFQ19DT05UUk9MDQo+IAlcDQo+ICsJKFBJTl9CQVNFRF9WSVJUVUFMX05NSVMgfAkJCQlc DQo+ICsJUElOX0JBU0VEX1BPU1RFRF9JTlRSIHwJCQkJCVwNCj4gKwlQSU5fQkFTRURfVk1YX1BS RUVNUFRJT05fVElNRVIpDQo+ICsNCj4gKyNkZWZpbmUgX19LVk1fUkVRX1ZNWF9DUFVfQkFTRURf Vk1fRVhFQ19DT05UUk9MDQo+IAlcDQo+ICsJKENQVV9CQVNFRF9ITFRfRVhJVElORyB8CQkJCVwN Cj4gKwlDUFVfQkFTRURfQ1IzX0xPQURfRVhJVElORyB8CQkJCVwNCj4gKwlDUFVfQkFTRURfQ1Iz X1NUT1JFX0VYSVRJTkcgfAkJCQlcDQo+ICsJQ1BVX0JBU0VEX1VOQ09ORF9JT19FWElUSU5HIHwJ CQkJXA0KPiArCUNQVV9CQVNFRF9NT1ZfRFJfRVhJVElORyB8CQkJCVwNCj4gKwlDUFVfQkFTRURf VVNFX1RTQ19PRkZTRVRUSU5HIHwJCQkJXA0KPiArCUNQVV9CQVNFRF9NV0FJVF9FWElUSU5HIHwJ CQkJXA0KPiArCUNQVV9CQVNFRF9NT05JVE9SX0VYSVRJTkcgfAkJCQlcDQo+ICsJQ1BVX0JBU0VE X0lOVkxQR19FWElUSU5HIHwJCQkJXA0KPiArCUNQVV9CQVNFRF9SRFBNQ19FWElUSU5HIHwJCQkJ XA0KPiArCUNQVV9CQVNFRF9JTlRSX1dJTkRPV19FWElUSU5HIHwJCQkJXA0KPiArCUNQVV9CQVNF RF9OTUlfV0lORE9XX0VYSVRJTkcpDQo+ICsNCj4gKyNpZmRlZiBDT05GSUdfWDg2XzY0DQo+ICsJ I2RlZmluZSBLVk1fUkVRX1ZNWF9DUFVfQkFTRURfVk1fRVhFQ19DT05UUk9MDQo+IAlcDQo+ICsJ CShfX0tWTV9SRVFfVk1YX0NQVV9CQVNFRF9WTV9FWEVDX0NPTlRST0wgfAlcDQo+ICsJCUNQVV9C QVNFRF9DUjhfTE9BRF9FWElUSU5HIHwJCQlcDQo+ICsJCUNQVV9CQVNFRF9DUjhfU1RPUkVfRVhJ VElORykNCj4gKyNlbHNlDQo+ICsJI2RlZmluZSBLVk1fUkVRX1ZNWF9DUFVfQkFTRURfVk1fRVhF Q19DT05UUk9MDQo+IAlcDQo+ICsJCV9fS1ZNX1JFUV9WTVhfQ1BVX0JBU0VEX1ZNX0VYRUNfQ09O VFJPTA0KPiArI2VuZGlmDQo+ICsNCj4gKyNkZWZpbmUgS1ZNX09QVF9WTVhfQ1BVX0JBU0VEX1ZN X0VYRUNfQ09OVFJPTA0KPiAJXA0KPiArCShDUFVfQkFTRURfVFBSX1NIQURPVyB8CQkJCQlcDQo+ ICsJQ1BVX0JBU0VEX1VTRV9NU1JfQklUTUFQUyB8CQkJCVwNCj4gKwlDUFVfQkFTRURfQUNUSVZB VEVfU0VDT05EQVJZX0NPTlRST0xTIHwNCj4gCVwNCj4gKwlDUFVfQkFTRURfQUNUSVZBVEVfVEVS VElBUllfQ09OVFJPTFMpDQo+ICsNCj4gKyNkZWZpbmUgS1ZNX1JFUV9WTVhfU0VDT05EQVJZX1ZN X0VYRUNfQ09OVFJPTCAwDQo+ICsjZGVmaW5lIEtWTV9PUFRfVk1YX1NFQ09OREFSWV9WTV9FWEVD X0NPTlRST0wNCj4gCVwNCj4gKwkoU0VDT05EQVJZX0VYRUNfVklSVFVBTElaRV9BUElDX0FDQ0VT U0VTIHwJCVwNCj4gKwlTRUNPTkRBUllfRVhFQ19WSVJUVUFMSVpFX1gyQVBJQ19NT0RFIHwNCj4g CVwNCj4gKwlTRUNPTkRBUllfRVhFQ19XQklOVkRfRVhJVElORyB8CQkJCVwNCj4gKwlTRUNPTkRB UllfRVhFQ19FTkFCTEVfVlBJRCB8CQkJCVwNCj4gKwlTRUNPTkRBUllfRVhFQ19FTkFCTEVfRVBU IHwJCQkJXA0KPiArCVNFQ09OREFSWV9FWEVDX1VOUkVTVFJJQ1RFRF9HVUVTVCB8CQkJXA0KPiAr CVNFQ09OREFSWV9FWEVDX1BBVVNFX0xPT1BfRVhJVElORyB8CQkJXA0KPiArCVNFQ09OREFSWV9F WEVDX0RFU0MgfAkJCQkJXA0KPiArCVNFQ09OREFSWV9FWEVDX0VOQUJMRV9SRFRTQ1AgfAkJCQlc DQo+ICsJU0VDT05EQVJZX0VYRUNfRU5BQkxFX0lOVlBDSUQgfAkJCQlcDQo+ICsJU0VDT05EQVJZ X0VYRUNfQVBJQ19SRUdJU1RFUl9WSVJUIHwJCQlcDQo+ICsJU0VDT05EQVJZX0VYRUNfVklSVFVB TF9JTlRSX0RFTElWRVJZIHwJCQlcDQo+ICsJU0VDT05EQVJZX0VYRUNfU0hBRE9XX1ZNQ1MgfAkJ CQlcDQo+ICsJU0VDT05EQVJZX0VYRUNfWFNBVkVTIHwJCQkJCVwNCj4gKwlTRUNPTkRBUllfRVhF Q19SRFNFRURfRVhJVElORyB8CQkJCVwNCj4gKwlTRUNPTkRBUllfRVhFQ19SRFJBTkRfRVhJVElO RyB8CQkJCVwNCj4gKwlTRUNPTkRBUllfRVhFQ19FTkFCTEVfUE1MIHwJCQkJXA0KPiArCVNFQ09O REFSWV9FWEVDX1RTQ19TQ0FMSU5HIHwJCQkJXA0KPiArCVNFQ09OREFSWV9FWEVDX0VOQUJMRV9V U1JfV0FJVF9QQVVTRSB8DQo+IAlcDQo+ICsJU0VDT05EQVJZX0VYRUNfUFRfVVNFX0dQQSB8CQkJ CVwNCj4gKwlTRUNPTkRBUllfRVhFQ19QVF9DT05DRUFMX1ZNWCB8DQo+IAlcDQo+ICsJU0VDT05E QVJZX0VYRUNfRU5BQkxFX1ZNRlVOQyB8CQkJCVwNCj4gKwlTRUNPTkRBUllfRVhFQ19CVVNfTE9D S19ERVRFQ1RJT04gfAkJCVwNCj4gKwlTRUNPTkRBUllfRVhFQ19OT1RJRllfVk1fRVhJVElORyB8 CQkJXA0KPiArCVNFQ09OREFSWV9FWEVDX0VOQ0xTX0VYSVRJTkcpDQo+ICsNCj4gKyNkZWZpbmUg S1ZNX1JFUV9WTVhfVEVSVElBUllfVk1fRVhFQ19DT05UUk9MIDANCj4gKyNkZWZpbmUgS1ZNX09Q VF9WTVhfVEVSVElBUllfVk1fRVhFQ19DT05UUk9MDQo+IAlcDQo+ICsJKFRFUlRJQVJZX0VYRUNf SVBJX1ZJUlQpDQo+ICsNCj4gICNkZWZpbmUgQlVJTERfQ09OVFJPTFNfU0hBRE9XKGxuYW1lLCB1 bmFtZSwgYml0cykNCj4gCQlcDQo+ICBzdGF0aWMgaW5saW5lIHZvaWQgbG5hbWUjI19jb250cm9s c19zZXQoc3RydWN0IHZjcHVfdm14ICp2bXgsIHUjI2JpdHMgdmFsKQ0KPiAJXA0KPiAgew0KPiAJ XA0KPiBAQCAtNDg1LDEwICs1OTIsMTIgQEAgc3RhdGljIGlubGluZSB1IyNiaXRzIGxuYW1lIyNf Y29udHJvbHNfZ2V0KHN0cnVjdA0KPiB2Y3B1X3ZteCAqdm14KQkJXA0KPiAgfQ0KPiAJXA0KPiAg c3RhdGljIGlubGluZSB2b2lkIGxuYW1lIyNfY29udHJvbHNfc2V0Yml0KHN0cnVjdCB2Y3B1X3Zt eCAqdm14LCB1IyNiaXRzDQo+IHZhbCkJXA0KPiAgew0KPiAJXA0KPiArCUJVSUxEX0JVR19PTigh KHZhbCAmIChLVk1fUkVRX1ZNWF8jI3VuYW1lIHwNCj4gS1ZNX09QVF9WTVhfIyN1bmFtZSkpKTsJ XA0KPiAgCWxuYW1lIyNfY29udHJvbHNfc2V0KHZteCwgbG5hbWUjI19jb250cm9sc19nZXQodm14 KSB8IHZhbCk7DQo+IAlcDQo+ICB9DQo+IAlcDQo+ICBzdGF0aWMgaW5saW5lIHZvaWQgbG5hbWUj I19jb250cm9sc19jbGVhcmJpdChzdHJ1Y3QgdmNwdV92bXggKnZteCwgdSMjYml0cw0KPiB2YWwp CVwNCj4gIHsNCj4gCVwNCj4gKwlCVUlMRF9CVUdfT04oISh2YWwgJiAoS1ZNX1JFUV9WTVhfIyN1 bmFtZSB8DQo+IEtWTV9PUFRfVk1YXyMjdW5hbWUpKSk7CVwNCj4gIAlsbmFtZSMjX2NvbnRyb2xz X3NldCh2bXgsIGxuYW1lIyNfY29udHJvbHNfZ2V0KHZteCkgJiB+dmFsKTsNCj4gCVwNCj4gIH0N Cg0KV2l0aCB0aGlzLCB3aWxsIGl0IGJlIHNhZmVyIGlmIHdlIHByZXNlbnQgTDEgQ1RSTCBNU1Jz IHdpdGggdGhlIGJpdHMgS1ZNIHJlYWxseSB1c2VzPyBEbyBJIG1pc3Mgc29tZXRoaW5nPw0KDQo+ ICBCVUlMRF9DT05UUk9MU19TSEFET1codm1fZW50cnksIFZNX0VOVFJZX0NPTlRST0xTLCAzMikN Cj4gLS0NCj4gMi4zNS4zDQoNCg==