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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9F316C4332F for ; Mon, 21 Nov 2022 17:03:21 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A1BFA10E06E; Mon, 21 Nov 2022 17:03:20 +0000 (UTC) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id BB9EC10E30A for ; Mon, 21 Nov 2022 17:03:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1669050192; x=1700586192; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=PWvBOOYAUp8t7alE3/FkGm67b5eg1Hp/pLPPy++DXf4=; b=SL/a/TdFvW+NkksQCiP+iE48bogvxMWihZvrlC9ua4qEKgZtv0c+zFzd kil1A7aGkYYZIpepEtQJU4Ns971AsXCBQznlwHcY7KkGsDisvJl/nJqTn RmoduipDxiaxXTH2EIKYNbwCa5ZlVZm0MmTh1niTnlydlTSYwi68tgGfi 3GI8WeQYDUNm/6sRYHPMjdnG2teEfxB8FChIXDc0xI2aLyo1nKJpZ8Rcx 90SgHe6fSJ6ziM54Hqbr1f762yNX+mPmsYQZGzgKG/VxwD2HDJ3pjkNSw 26S0UFNgoVr0NBvSm8rC2JwoTiMQruT/1mBDb/ePLPm2om7gYLRyc1fnc g==; X-IronPort-AV: E=McAfee;i="6500,9779,10538"; a="340470412" X-IronPort-AV: E=Sophos;i="5.96,182,1665471600"; d="scan'208";a="340470412" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Nov 2022 09:02:58 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10538"; a="643388517" X-IronPort-AV: E=Sophos;i="5.96,182,1665471600"; d="scan'208";a="643388517" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmsmga007.fm.intel.com with ESMTP; 21 Nov 2022 09:02:57 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Mon, 21 Nov 2022 09:02:57 -0800 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Mon, 21 Nov 2022 09:02:56 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Mon, 21 Nov 2022 09:02:56 -0800 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.175) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Mon, 21 Nov 2022 09:02:56 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i1Ht9/yhITmnZitN1iD/B15bA7/1G5uanIdKfOZwR0id1ZU4YxcH1vqyfm1VNGEFHTokquIsd0RXR9EeHmhpPsQfMo3gMAFy/JaevMld9N/NNhgb7c7T5qHlL+7NPbweTccloqJbAOzs673v558/fCDU5j73fTpQ9QtZFdw9MGLlUoaR6O4Fr9RfomNTGJ9x+3LAOnSr6jLcI4dxITGT8YFajxALTwRmBWGXX6Xt8/xVbQJK1lYD8Q9vw/GP6r8gzCYZZhkxaY4UmUeV6px2Y9kSJA4ThqYuEMtglv1OgJX0K2MDL8eUPrYOSMB+nP4hapJqGtp/kk1+5lB2FHuPzw== 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=PWvBOOYAUp8t7alE3/FkGm67b5eg1Hp/pLPPy++DXf4=; b=lJEY1IxZ1JPszXUZvtJOh7CdLtlDt1x21Zc64uxLPb10mTjkRyHyu7Ux4Z90ePz2tdsK0VMm2smjcPx24toMuV/kQ8Udq0oO5DUxhSa8YKUDRAn3/RBlQrgLIWjAhjZL29/bdyI7JwcLbQZC4VtolJGrkN1bgQi3QL5C1Pp8M530VnMY5CaWM2e6d1AWE80aFznS8DRUeIZS4itfwg1THLoy6+khlqhm0ZmgUE8kObAwU8NK8LjseBEyrSdSjT9FTTFwVOx3gC4iFR/ZfTKPrXoTiiPRtxxjpHe+buFbtMgVkUkuZesu8PW6MQfl344Ccn+oQTbssxyuNIWiPG/KgA== 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 DM8PR11MB5751.namprd11.prod.outlook.com (2603:10b6:8:12::16) by PH7PR11MB5861.namprd11.prod.outlook.com (2603:10b6:510:133::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.9; Mon, 21 Nov 2022 17:02:54 +0000 Received: from DM8PR11MB5751.namprd11.prod.outlook.com ([fe80::bbc2:ab8e:b98:feaf]) by DM8PR11MB5751.namprd11.prod.outlook.com ([fe80::bbc2:ab8e:b98:feaf%8]) with mapi id 15.20.5834.015; Mon, 21 Nov 2022 17:02:54 +0000 From: "Teres Alexis, Alan Previn" To: "Vivi, Rodrigo" , "tvrtko.ursulin@linux.intel.com" , "jani.nikula@linux.intel.com" Thread-Topic: [Intel-gfx] [PATCH v4 1/6] drm/i915/pxp: Make gt and pxp init/fini aware of PXP-owning-GT Thread-Index: AQHY+huC07hRuiUUpkeQbbJYwqcxJq5DR+AAgABuNACABZGagIAACSYAgABR1gA= Date: Mon, 21 Nov 2022 17:02:54 +0000 Message-ID: References: <20221117003018.1433115-1-alan.previn.teres.alexis@intel.com> <20221117003018.1433115-2-alan.previn.teres.alexis@intel.com> <0067b884a5787ea4fbf5d6dffc5e7d4219a23585.camel@intel.com> <6e6219c3-8d9d-6033-5f23-6008c66ac9fa@linux.intel.com> <87sficzetv.fsf@intel.com> In-Reply-To: <87sficzetv.fsf@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.44.4-0ubuntu1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM8PR11MB5751:EE_|PH7PR11MB5861:EE_ x-ms-office365-filtering-correlation-id: 232596a8-ca6f-46cf-aed5-08dacbe23b6f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: lHCwGHJyB1g9oEUBjc0uZ1O0LDWGQDg6kJPrTefTDWQjI9YNH3X5NeUuZqr6HtfIjYVFFyYZzQhsGmhINGpZiU0pkbBEXC291ASCoc+8V+hG1fbIrfj29L9bjqN5mInDrfYAPmj+gisO+iV30jxWGfdD2fXG+xX8FLkK3eTAvZAyhqNHzvOvds9h4Wnbh77lxKWhB3yoHSDeIgZvnvd9zH7BwEOf6nQrPebJZ12RRTMYYIS68qWmnI/K4cuJDi/B4bjQyDnQogHVr/TAZJVQude6Vs/480tIj06rF/ju7FU0Vh2gFpIiDCA+q+xwpnAU49ajItQxvOuxpmtyOlVKqpchXzvrFd905WWIzeQ4e4gtQ+POYWKMyjogSpCCtrXpK8QAg3rV42Oo8alcOfyu+NvHhaN518YzoQzlivJPy9WwR//0y8L5BwHBZoY71JjBYrjjWOSSQ+2hP+rZPrSfCQURzrELpJQhLcAFqytsLDtk8t6Qj5MvwaiQhINvfZaTl1jaU+gGKShx3BQCsR/q0snMDo4lrl7vaT8O3w+wYVOcDTqDtGDXRAVJpPUd7jFr9N/e77YS3TSrswK2YT1MRDIKrzdUcDnar6WUkRdVhyaCATMTxvYI1T+rpikJBZyfhoJIp7s8QYZaiPBI3ZfwNRdPxcyGMvgV51Pl/qzk8Fnp3unf82ReG4yg4ZKT06VqUByERNPa1PMJPQuB9Q/ZoZGbDX06jyr5vxYXwSKqym0hDmLKxqNhDT+iq7ZCJV7Xt0uwYewTqfVjtacud5Uurw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM8PR11MB5751.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(346002)(396003)(136003)(366004)(39860400002)(376002)(451199015)(82960400001)(6486002)(478600001)(966005)(86362001)(38100700002)(83380400001)(71200400001)(122000001)(6506007)(2616005)(36756003)(186003)(316002)(2906002)(110136005)(4001150100001)(26005)(53546011)(41300700001)(91956017)(8936002)(30864003)(76116006)(66556008)(64756008)(5660300002)(6512007)(8676002)(66946007)(66476007)(38070700005)(66446008)(4326008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NDB2MXdYdjY3aCtFeEdZa3pZMTR2U05aNDR0UGVKSjNseW9FUUNuaWFZdk1m?= =?utf-8?B?MkJ5U2hXMjMrQXNudERGZHVQRFp1OXRpN0xTN2dJZWNGUjJjaWNJTmZxa1pv?= =?utf-8?B?cnpXb2swdm5rL1J4T1JlVytlSUlXejEyM2VqL2NMY1pjcUxHSXJtUTRWWE5Z?= =?utf-8?B?dTNIRXl2bjd4Qi8rZVk2Q0lHUk1ZZ1JtaHc2Z0ppQk1KUUlldXNML3FjWFdw?= =?utf-8?B?N0p3VFBrUm1BVysrVmQzanU1dWgxYTVGWExHcGg1Mm00VlV2TVFRTmx1WXlv?= =?utf-8?B?NmRWak1JcHdzSmtjTWZsRWJ0REp1MWpQa0wyOVYreE5tSEZScjBRRUUxZS9a?= =?utf-8?B?dXh2aVQvank0QVJGdE1yRE5XalZOOGx1OUFVZjlMYjRxOFRTeERsYWViU0ls?= =?utf-8?B?b0p0OFlRUjd0SGdweEhvYmpYQitMc3pzRi83Nm9QNEpVREhKbmVKZmdnbzVu?= =?utf-8?B?c1NsZ0FyOGJYb29VREJDVExPeFVxMW1KU3ZHSno5RkE0dGdQNXZuQ2pzUzF4?= =?utf-8?B?K2FnV2FYekFCZFBtVE5uL2IyTVZVVmc4TE9WUlhOQ1N2LzI1ZXBkNm1zZ3o5?= =?utf-8?B?TVI1cU4xQzI1WTZiZU1IN1lTaTVoYU9FbWRKVTZBU3dYNnB2Y05FN0xoanA0?= =?utf-8?B?czVxMm9DcDIzQ0NRYzQzbHA1WUo3MDVsN1oyK1VLY1NQTTc3NENTVWMvQTV2?= =?utf-8?B?aUJ5cHRzd2dlM2RDWkZ4ck9tL0NaSklKMVMrelNYYk83SWFSNDUrT3M3dktl?= =?utf-8?B?TjRpN01zZlA5bWliQk04K0N6VG9tTDRJWWJPcFliZ25qS2ZYQWVva2RiemRs?= =?utf-8?B?NEt2aFd6ZDVPZnVRMmRhaUY2UmpFaWtPc2E3TEdsSWZITmJOZGZTMHNNR2tu?= =?utf-8?B?dmxya3p2TnJZNjY4dW5PdSsySGRzKytxbXNYYjY0ZVRUZFZlYW9jRWh3UXVO?= =?utf-8?B?cXVMVVRGcWY5VTZUSVc3MnFxQmVRVEU3NUdwRUVMWi9HMG0zaFJwQ3pPMVhi?= =?utf-8?B?dWVXN3VzZTR3YjM4WS90WEVyZ2JwS1lCOW8renBHa1pIMG5oTjBkaDJCVGZQ?= =?utf-8?B?VUtSMlVKUFFzV3hjUmc5QXhYUUVCMFdnMWwvMnVUUk00R3dIV2VzOVV3NG5x?= =?utf-8?B?NEIwQXdhUlFPN1lEaU9ZN2VtbmxHTHR3a2NFZCtyNWh4UG5KS2o3ZWJKMGI2?= =?utf-8?B?L3dkbnhEVXo1LzZVMERjSTM2U3grQ1dDMTF6bm9XVisrdWVPaEsxMnFXdlBD?= =?utf-8?B?ek1ZMHc5SVJWMjVlU04yV2xkK1dOd2EvQ1NlYWhsdjVlM1ZKM3lEWkNIVHFx?= =?utf-8?B?dlRTVkhaM1hzQm9QM1FPUWovMXZTL2ozWXJnQmgyK0YybDhhK3NySStuZGZT?= =?utf-8?B?OVNwcmVSNVR2d0NKWk1CMjhNdER5cE9PV1N4aEFwZ2xRTlJ0Z0o5UGJiUkNm?= =?utf-8?B?Z2kyeWk3ZHNNY2NlQUorUXR1STBuSkxaZ0ZtRi83bW02K3JzeXlyVmpiZUZn?= =?utf-8?B?V1g0M2V2OEIyWGpuTURveDFTNEhTT3M0Yi9xdzNyTVVDUWtsQklNZHNLZHNE?= =?utf-8?B?TnFvaGhTaXlVL1hOc3NDb2E5RktNK2xNdE9YUDVNRDVuQlBoTFVqcnJSdlpB?= =?utf-8?B?VFRMYmZQaUxQOVlLWkZ6UHBLZk53eTBpQ0VPeS91TXNBZUZqbDQyZFpXdjdY?= =?utf-8?B?TWhrRjdpT0VFT2ZQVjRSNUltdXYyTDc0YjZSSFRMMlJuNGlBOTNkSXpPeFpS?= =?utf-8?B?SFRDQ0drcFlQTkFDZTZFZlExRHE0czdNeDNDYTIweDhTMnRKN1JoSmZoRmt5?= =?utf-8?B?S0JYRzY3N3JuTnVtLzFwZDdFeFlxa2lOYVRET3dYa0h6TTMxd0RUVFpCOGpD?= =?utf-8?B?UTd6bWdLajdLekY5Zngvc3NocnJMT3BUMDVMcWd3b3pBRHBtUHNuUWlpQzNr?= =?utf-8?B?MXpKMEpJd1FXVk93OFpydWtxZlVld0FVNU9xRFpYT2JIV2Nva0pwYzBXdHFV?= =?utf-8?B?R3lOaHZyM3NaZ3BPNFFOVFA2NURJcDBVUDZnSGhMZ2Z1NlNnR3RtaDNTVnl4?= =?utf-8?B?amVhYXNSNmsxdGFuZGE4eDV6ZEFXTWhaMUVKWVF0ZmZmTXhPdER5TlluUDk5?= =?utf-8?B?cHl6UkdUcG9kSG9uWGZ3VGZXV0pZeUpPTzhTV01VV2h5M2dBWUtYS2daakhL?= =?utf-8?Q?UD4MYbfmcO/36jDRg+OLF8c=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <575618AFCCFA2B49B7996344A3353693@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8PR11MB5751.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 232596a8-ca6f-46cf-aed5-08dacbe23b6f X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Nov 2022 17:02:54.6412 (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: +4hWqB3lVrxjUnKNMedBkbuqb45gDMbx2vE/udlXPvLqfUQtJXGqjxz1scc/+hTBZ5ECgDEV/mxr17SzTxT688AdzJSPchZ1duJMXDocDccE3l5z7aWQyUJry8YuLIKG X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB5861 X-OriginatorOrg: intel.com Subject: Re: [Intel-gfx] [PATCH v4 1/6] drm/i915/pxp: Make gt and pxp init/fini aware of PXP-owning-GT X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "intel-gfx@lists.freedesktop.org" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" VGhhbmsgeW91IEphbmkgLSB0aGlzIHdhcyBjbGVhcmx5IG15IG1pc3Rha2UgKGFwb2xvZ2llcyB0 byBEYW5pZWxlL1JvZHJpZ28pIC0gZGlkbid0IHJlYWxpemUgd2UgaGFkIHRoaXMgZG9jdW1lbnRl ZC4gSQ0Kd2lsbCBnbyB0aHJvdWdoIHRoYXQgZmlyc3QuDQoNCi4uLmFsYW4NCg0KT24gTW9uLCAy MDIyLTExLTIxIGF0IDE0OjEyICswMjAwLCBKYW5pIE5pa3VsYSB3cm90ZToNCj4gT24gTW9uLCAy MSBOb3YgMjAyMiwgVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGxpbnV4LmludGVsLmNv bT4gd3JvdGU6DQo+ID4gT24gMTcvMTEvMjAyMiAyMjozNCwgVGVyZXMgQWxleGlzLCBBbGFuIFBy ZXZpbiB3cm90ZToNCj4gPiA+IE9uIFRodSwgMjAyMi0xMS0xNyBhdCAxMTowMiAtMDUwMCwgVml2 aSwgUm9kcmlnbyB3cm90ZToNCj4gPiA+ID4gT24gV2VkLCBOb3YgMTYsIDIwMjIgYXQgMDQ6MzA6 MTNQTSAtMDgwMCwgQWxhbiBQcmV2aW4gd3JvdGU6DQo+ID4gPiA+ID4gSW4gcHJlcGFyYXRpb24g Zm9yIGZ1dHVyZSBNVEwtUFhQIGZlYXR1cmUgc3VwcG9ydCwgUFhQIGNvbnRyb2wNCj4gPiA+ID4g PiBjb250ZXh0IHNob3VsZCBvbmx5IHZhbGlkIG9uIHRoZSBjb3JyZWN0IGd0IHRpbGUuIERlcGVu ZGluZyBvbiB0aGUNCj4gPiA+ID4gPiBkZXZpY2UtaW5mbyB0aGlzIGRlcGVuZHMgb24gd2hpY2gg dGlsZSBvd25zIHRoZSBWRUJPWCBhbmQgS0NSLg0KPiA+ID4gPiA+IFBYUCBpcyBzdGlsbCBhIGds b2JhbCBmZWF0dXJlIHRob3VnaCAoZGVzcGl0ZSBpdHMgY29udHJvbC1jb250ZXh0DQo+ID4gPiA+ ID4gbG9jYXRlZCBpbiB0aGUgb3duaW5nIEdUIHN0cnVjdHVyZSkuIEFkZGl0aW9uYWxseSwgd2Ug ZmluZA0KPiA+ID4gPiA+IHRoYXQgdGhlIEhBU19QWFAgbWFjcm8gaXMgb25seSB1c2VkIHdpdGhp biB0aGUgcHhwIG1vZHVsZSwNCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBUaGF0IHNhaWQsIGxldHMg ZHJvcCB0aGF0IEhBU19QWFAgbWFjcm8gYWx0b2dldGhlciBhbmQgcmVwbGFjZSBpdA0KPiA+ID4g PiA+IHdpdGggYSBtb3JlIGZpdHRpbmcgbmFtZWQgaW50ZWxfZ3RweHBfaXNfc3VwcG9ydGVkIGFu ZCBoZWxwZXJzDQo+ID4gPiA+ID4gc28gdGhhdCBQWFAgaW5pdC9maW5pIGNhbiB1c2UgdG8gdmVy aWZ5IGlmIHRoZSByZWZlcmVuY2VkIGd0IHN1cHBvcnRzDQo+ID4gPiA+ID4gUFhQIG9yIHRlZWxp bmsuDQo+ID4gPiA+IA0KPiA+ID4gPiBZZXAsIEkgdW5kZXJzdGFuZCB5b3UgYXMgSSdtIG5vdCBm YW4gb2YgdGhlc2UgbWFjcm9zLCBzcGVjaWFsbHkNCj4gPiA+ID4gc2luZ2xlIHVzYWdlLiBCdXQg d2UgbmVlZCB0byBjb25zaWRlciB0aGF0IHdlIGhhdmUgbXVsdGlwbGUgZGVwZW5kZW5jaWVzDQo+ ID4gPiA+IHRoZXJlIGFuZCBvdGhlciBjYXNlcyBsaWtlIHRoaXMgaW4gdGhlIGRyaXZlci4uLiBX ZWxsLCBidXQgSSdtIG5vdA0KPiA+ID4gPiBvcHBvc2luZywgYnV0IHByb2JhYmx5IGJldHRlciB0 byBmaXJzdCBnZXQgcmlkIG9mIHRoZSBtYWNybywNCj4gPiA+ID4gdGhlbiBjaGFuZ2UgdGhlIGJl aGF2aW9yIG9mIHRoZSBmdW5jdGlvbiBvbiB0aGUgbmV4dCBwYXRjaC4NCj4gPiA+ID4gDQo+ID4g PiA+ID4gDQo+ID4gPiA+ID4gQWRkIFRPRE8gZm9yIE1ldGVvcmxha2UgdGhhdCB3aWxsIGNvbWUg aW4gZnV0dXJlIHNlcmllcy4NCj4gPiA+ID4gDQo+ID4gPiA+IFRoaXMgcmVmYWN0b3IgcGF0Y2gg c2hvdWxkIGJlIHN0YW5kYWxvbmUsIHdpdGhvdXQgcG9wdXRpbmcgaXQgd2l0aA0KPiA+ID4gPiB0 aGUgY2hhbmdlcyB0aGF0IGRpZG4ndCBjYW1lIHlldCB0byB0aGlzIHBvaW50Lg0KPiA+ID4gPiAN Cj4gPiA+IFN1cmUgaSBjYW4gZm9sbG93IHRoaXMgcnVsZSwgYnV0IGl0IHdvdWxkIHRoZW4gcmFp c2UgdGhlIHF1ZXN0aW9uIG9mICJub3RoaWduIGlzIHJlYWxseSBjaGFuZ2luZyBhbnl3aGVyZSBm b3IgTVRMLCB3aHkNCj4gPiA+IGFyZSB3ZSBkb2luZyB0aGlzIiB0aGF0cyB3aHkgaSB3YW50ZWQg dG8gYWRkIHRoYXQgcGxhY2Vob2xkZXIuIEkgc2VlICJUT0RPInMgYXJlIGEgY29tbW9uIHRoaW5n IGluIHRoZSBkcml2ZXIgZm9yIGxhcmdlcg0KPiA+ID4gZmVhdHVyZXMgdGhhdCBjYW50IGFsbCBi ZSBlbmFibGVkIGF0IG9uY2UuIFJlc3BlY3RmdWxseSBhbmQgaHVtYmx5LCBpcyB0aGVyZSBzb21l IGRvY3VtZW50ZWQgcnVsZT8gQ2FuIHlvdSBzaG93IGl0IHRvDQo+ID4gPiBtZT8NCj4gPiANCj4g PiBTZXBhcmF0aW5nIHJlZmFjdG9yaW5nIGZyb20gZnVuY3Rpb25hbCBjaGFuZ2VzIGlzIG9uZSBv ZiB0aGUgbW9zdCBiYXNpYyANCj4gPiBwcmluY2lwbGVzIHdlIGZvbGxvdyAoYW5kIG5vdCBqdXN0 IHVzKSBhbmQgdGhlcmUgc2hvdWxkIG5ldmVyIGJlIA0KPiA+IHB1c2hiYWNrIG9uIHRoZSBmb3Jt ZXIgZHVlIGxhY2sgb2YgZnVuY3Rpb25hbCBjaGFuZ2VzLg0KPiANCj4gSXQncyBhbHNvIGRvY3Vt ZW50ZWQgWzFdWzJdIGJ1dCB0aGF0IG5ldmVyIHNlZW1zIHRvIG1ha2UgYSBkaWZmZXJlbmNlLg0K PiANCj4gQlIsDQo+IEphbmkuDQo+IA0KPiANCj4gWzFdIGh0dHBzOi8vZG9jcy5rZXJuZWwub3Jn L3Byb2Nlc3Mvc3VibWl0dGluZy1wYXRjaGVzLmh0bWwjc2VwYXJhdGUteW91ci1jaGFuZ2VzDQo+ IFsyXSBodHRwczovL2RvY3Mua2VybmVsLm9yZy9wcm9jZXNzLzUuUG9zdGluZy5odG1sI3BhdGNo LXByZXBhcmF0aW9uDQo+IA0KPiANCj4gDQo+IA0KPiA+IA0KPiA+IE9uIHRoZSBiYXNpYyBsZXZl bCBmb2xsb3dpbmcgdGhpcyBndWlkZWxpbmUgbWFrZXMgaXQgdHJpdmlhbCB0byByZXZpZXcgDQo+ ID4gdGhlIHJlZmFjdG9yaW5nIHBhdGNoLCBhbmQgaW4gdGhlIHZhc3QgbWFqb3JpdHkgb2YgY2Fz ZXMgbXVjaCBlYXNpZXIgdG8gDQo+ID4gcmV2aWV3IHRoZSBmdW5jdGlvbmFsIGNoYW5nZSBwYXRj aCBhcyB3ZWxsLg0KPiA+IA0KPiA+IEFuZCBlYXN5IHRvIHJldmlldyBtZWFucyBoYXBweSByZXZp ZXdlcnMsIGZhc3RlciB0dXJuYXJvdW5kIHRpbWUgKGVhc2llciANCj4gPiB0byBjYXJyeSBhIHJl YmFzZSksIGhhcHBpZXIgYXV0aG9ycywgZWFzaWVyIHJldmVydHMgd2hlbiB0aGluZ3MgZ28gYmFk IA0KPiA+IChvbmx5IHNtYWxsIGZ1bmN0aW9uYWwgcGF0Y2ggbmVlZHMgdG8gYmUgcmV2ZXJ0ZWQp LCBzb21ldGltZXMgZXZlbiANCj4gPiBlYXNpZXIgYmFja3BvcnRpbmcgaWYgY29kZSBkaXZlcmdl ZCBhIGxvdC4NCj4gPiANCj4gPiBPaCwgYW5kIGl0IGV2ZW4gaGFzIHBvdGVudGlhbCB0byBkZWNy ZWFzZSBpbnRlcm5hbCB0ZWNobmljYWwgZGVidC4gT2Z0ZW4gDQo+ID4geW91IGNhbiBwdXNoIHJl ZmFjdG9yaW5nIHVwc3RyZWFtIGFuZCBrZWVwIGEgc21hbGxlciBkZWx0YSBiZWhpbmQgdGhlIA0K PiA+IGNsb3NlZCBkb29ycywgd2hlbiB0aGF0IGlzIHJlcXVpcmVkLg0KPiA+IA0KPiA+ID4gPiA+ IFNpZ25lZC1vZmYtYnk6IEFsYW4gUHJldmluIDxhbGFuLnByZXZpbi50ZXJlcy5hbGV4aXNAaW50 ZWwuY29tPg0KPiA+ID4gPiA+IC0tLQ0KPiA+ID4gPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCAgICAgICAgICAgICAgfCAgNCAtLS0tDQo+ID4gPiA+ID4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9weHAvaW50ZWxfcHhwLmMgICAgICAgICB8IDIyICsrKysrKysrKysrKysrLS0t LS0tDQo+ID4gPiA+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9weHAvaW50ZWxfcHhwLmggICAg ICAgICB8ICAzICsrKw0KPiA+ID4gPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvcHhwL2ludGVs X3B4cF9kZWJ1Z2ZzLmMgfCAgMiArLQ0KPiA+ID4gPiA+ICAgNCBmaWxlcyBjaGFuZ2VkLCAyMCBp bnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkNCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgNCj4gPiA+ID4gPiBpbmRleCA3ZTM4MjBkMmM0MDQuLjA2MTZlNWYw YmQzMSAxMDA2NDQNCj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oDQo+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaA0KPiA+ ID4gPiA+IEBAIC05MzMsMTAgKzkzMyw2IEBAIElTX1NVQlBMQVRGT1JNKGNvbnN0IHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1LA0KPiA+ID4gPiA+ICAgDQo+ID4gPiA+ID4gICAjZGVmaW5l IEhBU19HTE9CQUxfTU9DU19SRUdJU1RFUlMoZGV2X3ByaXYpCShJTlRFTF9JTkZPKGRldl9wcml2 KS0+aGFzX2dsb2JhbF9tb2NzKQ0KPiA+ID4gPiA+ICAgDQo+ID4gPiA+ID4gLSNkZWZpbmUgSEFT X1BYUChkZXZfcHJpdikgICgoSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfUFhQKSAmJiBcDQo+ ID4gPiA+ID4gLQkJCSAgICBJTlRFTF9JTkZPKGRldl9wcml2KS0+aGFzX3B4cCkgJiYgXA0KPiA+ ID4gPiA+IC0JCQkgICAgVkRCT1hfTUFTSyh0b19ndChkZXZfcHJpdikpKQ0KPiA+ID4gPiA+IC0N Cj4gPiA+ID4gPiAgICNkZWZpbmUgSEFTX0dNQ0goZGV2X3ByaXYpIChJTlRFTF9JTkZPKGRldl9w cml2KS0+ZGlzcGxheS5oYXNfZ21jaCkNCj4gPiA+ID4gPiAgIA0KPiA+ID4gPiA+ICAgI2RlZmlu ZSBIQVNfR01EX0lEKGk5MTUpCShJTlRFTF9JTkZPKGk5MTUpLT5oYXNfZ21kX2lkKQ0KPiA+ID4g PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9weHAvaW50ZWxfcHhwLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9weHAvaW50ZWxfcHhwLmMNCj4gPiA+ID4gPiBpbmRleCA1ZWZl NjFmNjc1NDYuLmQ5OTNlNzUyYmQzNiAxMDA2NDQNCj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9weHAvaW50ZWxfcHhwLmMNCj4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9weHAvaW50ZWxfcHhwLmMNCj4gPiA+ID4gPiBAQCAtNDQsNiArNDQsMjAgQEAgc3Ry dWN0IGludGVsX2d0ICpweHBfdG9fZ3QoY29uc3Qgc3RydWN0IGludGVsX3B4cCAqcHhwKQ0KPiA+ ID4gPiA+ICAgCXJldHVybiBjb250YWluZXJfb2YocHhwLCBzdHJ1Y3QgaW50ZWxfZ3QsIHB4cCk7 DQo+ID4gPiA+ID4gICB9DQo+ID4gPiA+ID4gICANCj4gPiA+ID4gPiArc3RhdGljIGJvb2wgX2d0 X25lZWRzX3RlZWxpbmsoc3RydWN0IGludGVsX2d0ICpndCkNCj4gPiA+ID4gPiArew0KPiA+ID4g PiA+ICsJLyogVE9ETzogTVRMIHdvbid0IHJlbHkgb24gQ09ORklHX0lOVEVMX01FSV9QWFAgYnV0 IG9uIEdTQyBlbmdpbmUgKi8NCj4gPiA+ID4gPiArCXJldHVybiAoSVNfRU5BQkxFRChDT05GSUdf SU5URUxfTUVJX1BYUCkgJiYgaW50ZWxfaHVjX2lzX2xvYWRlZF9ieV9nc2MoJmd0LT51Yy5odWMp ICYmDQo+ID4gPiA+ID4gKwkJaW50ZWxfdWNfdXNlc19odWMoJmd0LT51YykpOw0KPiA+ID4gPiA+ ICt9DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICtib29sIGludGVsX3B4cF9zdXBwb3J0ZWRfb25f Z3QoY29uc3Qgc3RydWN0IGludGVsX3B4cCAqcHhwKQ0KPiA+ID4gPiANCj4gPiA+ID4gSWYgd2Ug YXJlIGFza2luZyBpZiBpdCBpcyBzdXBwb3J0ZWQgb24gZ3QsIHRoZW4gdGhlIGFyZ3VtZW50IG11 c3QgYmUgYSBndCBzdHJ1Y3QuDQo+ID4gPiA+IA0KPiA+ID4gSSBhZ3JlZSB3aXRoIHlvdSBidXQg RGFuaWVsZSBzYWlkIGFib3ZlIGlzIG1vcmUgY29uc2lzdGVudCB3aXRoIGV4aXN0aW5nIHdheXMg dGhhdCBpcyBjb25zaWRlcmVkIHRoZSBzdGFuZGFyZC4NCj4gPiA+IFJlc3BlY3RmdWxseSBhbmQg aHVtYmx5IEkgd291bGQgbGlrZSB0byByZXF1ZXN0IGJvdGggeW91cnNlbGYgYW5kIERhbmllbGUg dG8gc2hvdyBtZSB0aGUgY29kaW5nIGd1aWRlbGluZXMgc29tZXdoZXJlLg0KPiA+ID4gDQo+ID4g PiBIb25lc3RseSwgdGhpcyBpcyBvbmUgb2YgdGhlIGZpcnN0IGZldyBodW5rcyBvZiB0aGUgZmly c3QgcGF0Y2ggb2YgdGhlIGZpcnN0IHNlcmllcyBpbiBhIHZlcnkgbGFyZ2UgY29tcGxleCBkZXNp Z24gdG8NCj4gPiA+IGVuYWJsZSBQWFAgb24gTVRMIGFuZCBpdCBvbmx5IGEgaGVscGVyIHV0aWxp dHkgZnVuY3Rpb24uIFJlc3BlY2Z1bGx5IGFuZCBodW1ibHksIEkgcmF0aGVyIHdlIGZvY3VzIG91 ciBlbmVyZ3kgZm9yIHJldmlldw0KPiA+ID4gKyByZWRvICBvbiBtb3JlIGNyaXRpY2FsIHRoaW5n cyBsaWtlIHRoZSBlMmUgdXNhZ2UgYW5kIHRvcC10by1ib3R0b20gZGVzaWduIG9yIGNvZGluZyBs b2dpYyBmbG93cyBvciBmaW5kIGFjdHVhbCBidWdzDQo+ID4gPiBpbnN0ZWFkIG9mIGRlYmF0aW5n IGFib3V0IGNvZGluZyBzdHlsZXMgZm9yIGludGVybmFsIG9ubHkgaGVscGVyIGZ1bmN0aW9ucy4N Cj4gPiANCj4gPiBNeSAyYy9wIGlzIHRoYXQgdGhlIGludGVsX3B4cF9zdXBwb3J0ZWRfb25fZ3Qg dGhlICJvbl9ndCIgcGFydCByZWFkcyBhIA0KPiA+IGJpdCBjbHVtc3kgYmVjYXVzZSBpdCBtYWtl cyBpdCBzb3VuZCBsaWtlIHRoZSB0d28gYXJlIGluZGVwZW5kZW50IA0KPiA+IG9iamVjdHMuIExp a2UgSSBjb3VsZCBwYXNzIG9uZSBweHAgdG8gZGlmZmVyZW50IEdUcyBhbmQgYXNrIGlmIHRoYXQg b25lIA0KPiA+IHdvcmtzIGhlcmUsIG9yIG1heWJlIHRoZXJlLg0KPiA+IA0KPiA+IEkgYW0gdGhv dWdoIGEgZmFuIG9mIGludGVsX3B4cF8gcHJlZml4IG1lYW5pbmcgZnVuY3Rpb24gb3BlcmF0ZXMg b24gDQo+ID4gc3RydWN0IGludGVsX3B4cC4NCj4gPiANCj4gPiBJbiB0aGlzIGNhc2UgSSBkb24n dCBrbm93IHdoYXQgaXMgdGhlIGNvcnJlY3QgcmVsYXRpb25zaGlwLiBJZiBpdCBpcyAxOjEgDQo+ ID4gYmV0d2VlbiBpbnRlbF9weHA6aW50ZWxfZ3QgdGhlbiBpbnRlbF9weHBfc3VwcG9ydGVkKHB4 cCkgc291bmRzIGZpbmUuIA0KPiA+IEV2ZW4gaWYgYSBzaW5nbGV0b24gdGhhdCB3b3JrcyBmb3Ig bWUuIElmIHdlIGRvIGhhdmUgMToxIGJ1dCBvbmx5IHdhbnQgDQo+ID4gdG8gaW5pdCB0aGUgZmly c3Qgb25lLCBidXQgUFhQIHRydWx5IGxpdmVzIGluIHRoZSBHVCBibG9jaywgd2UgY291bGQgDQo+ ID4gaGF2ZSBwb2ludGVycyBwZXIgR1QsIHdpdGggb25seSB0aGUgZ3QwIG9uZSBiZWluZyBpbml0 aWFsaXplZCwgYW5kIA0KPiA+IHBlcmhhcHMgYSBzaGFkb3cgaTkxNS0+cHhwIHBvaW50ZXIgd2hp Y2ggcG9pbnRzIHRvIGd0WzBdLT5weHAsIGlmIHRoYXQgDQo+ID4gbWFrZXMgZm9yIGJldHRlciBj b2RlIG9yZ2FuaXNhdGlvbj8NCj4gPiANCj4gPiBSZWdhcmRzLA0KPiA+IA0KPiA+IFR2cnRrbw0K PiA+IA0KPiA+ID4gDQo+ID4gPiANCj4gPiA+ID4gPiArew0KPiA+ID4gPiA+ICsJLyogVE9ETzog TVRMIHdvbid0IHJlbHkgb24gQ09ORklHX0lOVEVMX01FSV9QWFAgYnV0IG9uIEdTQyBlbmdpbmUg Ki8NCj4gPiA+ID4gPiArCXJldHVybiAoSVNfRU5BQkxFRChDT05GSUdfSU5URUxfTUVJX1BYUCkg JiYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfUFhQKSAmJg0KPiA+ID4gPiA+ICsJCUlOVEVM X0lORk8oKHB4cF90b19ndChweHApKS0+aTkxNSktPmhhc19weHAgJiYgVkRCT1hfTUFTSyhweHBf dG9fZ3QocHhwKSkpOw0KPiA+ID4gPiA+ICt9DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICAgYm9v bCBpbnRlbF9weHBfaXNfZW5hYmxlZChjb25zdCBzdHJ1Y3QgaW50ZWxfcHhwICpweHApDQo+ID4g PiA+ID4gICB7DQo+ID4gPiA+ID4gICAJcmV0dXJuIHB4cC0+Y2U7DQo+ID4gPiA+ID4gQEAgLTE0 MiwxNyArMTU2LDEzIEBAIHZvaWQgaW50ZWxfcHhwX2luaXQoc3RydWN0IGludGVsX3B4cCAqcHhw KQ0KPiA+ID4gPiA+ICAgew0KPiA+ID4gPiA+ICAgCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSBweHBf dG9fZ3QocHhwKTsNCj4gPiA+ID4gPiAgIA0KPiA+ID4gPiA+IC0JLyogd2UgcmVseSBvbiB0aGUg bWVpIFBYUCBtb2R1bGUgKi8NCj4gPiA+ID4gPiAtCWlmICghSVNfRU5BQkxFRChDT05GSUdfSU5U RUxfTUVJX1BYUCkpDQo+ID4gPiA+ID4gLQkJcmV0dXJuOw0KPiA+ID4gPiANCj4gPiA+ID4gSSB0 b29rIGEgdGltZSB0byB1bmRlcnN0YW5kIHRoaXMgbW92ZW1lbnQgYmFzZWQgb24gdGhlIGNvbW1p dCBkZXNjcmlwdGlvbi4NCj4gPiA+ID4gSSBoYXZlIHRoZSBmZWVsaW5nIHRoYXQgdGhpcyBwYXRj aCBkZXNlcnZlcyBmdXJ0aGVyIHNwbGl0IGluIGRpZmZlcmVudCBwYXRjaGVzLg0KPiA+ID4gPiAN Cj4gPiA+ID4gQnV0IGFsc28sIGxvb2tpbmcgYSBmZXcgbGluZXMgYWJvdmUgcHhwX3RvX2d0KHB4 cCksIEkgYmVsaWV2ZSB3ZQ0KPiA+ID4gPiBoYXZlIGZ1cnRoZXIgcmVmYWN0b3IgdG8gZG8gc29v bmVyLiBpcyBpcyBvbmUgcHhwIHBlciBndCwgdGhlbiB3ZQ0KPiA+ID4gPiBuZWVkIHRvIG9ubHkg ZW5hYmxlIGluIHRoZSBndDA/DQo+ID4gPiA+IA0KPiA+ID4gSW4gb3VyIGRyaXZlciwgUFhQIGFz IHJlZmxlY3RlZCBieSB0aGUgZGV2aWNlIGluZm8gaXMgYmVpbmcgdHJlYXRlZCBhcyBhIGdsb2Jh bCBmZWF0dXJlLg0KPiA+ID4gUFhQIGFzIGEgSFcgc3Vic3lzdGVtIGlzICJ1c2FibGUiIGRldmlj ZS13aWRlIGZyb20gYW55IHdvcmtsb2FkIG9uIGFueSBlbmdpbmUgb24gYW55IHRpbGUgKGR1ZSB0 byB0aGUgaW50ZXJuYWwgbWlycm9yDQo+ID4gPiBjb21wb25lbnQgYW5kIGFkZGl0aW9uYWwgcGx1 bWJpbmcgYWNyb3NzIHRoZSB0aWxlcykuIFNvIGluIGxpbmUgd2l0aCB0aGF0IEkgcmF0aGVyIG5v dCBoYXZlIHRoZSBnZW0tZXhlYy1idWYsIGdlbS1jcmVhdGUNCj4gPiA+IGFuZCBnZW0tY29udGV4 dCBjYWxscyBiZSBib3RoZXJlZCBhYm91dCB3aGljaCBHVCB0byBhY2Nlc3MgdG8gcXVlcnkgb2Yg dGhpcyBnbG9iYWwgaHcgZmVhdHVyZSBpcyBlbmFibGVkIG9yIGFjdGl2ZS4NCj4gPiA+IEhvd2V2 ZXIgdGhlIGNvbnRyb2wgcG9pbnQgZm9yIGFsbG9jYXRpbmcgc2Vzc2lvbnMsIHRhbGtpbmcgdG8g dGhlIGdzYyBmaXJtd2FyZSBhbmQgZG9pbmcgZ2xvYmFsIHRlYXJkb3ducyBhcmUgb25seSBtZWFu dA0KPiA+ID4gdG8gb2NjdXIgb24gYW5kIHZpYSB0aGUgdGlsZSB0aGF0IG93bnMgdGhlIEtDUiBl bmdpbmUgd2hpY2ggdGhlIG1lZGlhIHRpbGUuIFRoaXMgaW5jbHVkZXMgdGhpbmdzIGxpa2UgcGVy LXRpbGUgdW5jb3JlDQo+ID4gPiBwb3dlciBnYXRpbmcgY29udHJvbHMgb2YgdGhlIEdTQy1DUy4g KGFsdGhvdWdoIHNvbWUgYXNwZWN0cyBsaWtlIElSUSBmb3IgS0NSIGdsb2JhbCkuIFNvIGFzIHUg c2VlIGl0cyBub3QgYSBjbGVhbiBwZXItR1QNCj4gPiA+IGZlYXR1cmUuDQo+ID4gPiANCj4gPiA+ IEkgZGlkIHNwZWFrIHRvIERhbmllbGUgbWFueSBtb250aHMgYmFjayB3aGVuIGVuYWJsaW5nIHRo ZSBmdWxsIGZlYXR1cmUgc2V0IChvbiBpbnRlcm5hbCBQT0Mgd29yaykgYWJvdXQgd2hldGhlciB3 ZQ0KPiA+ID4gc2hvdWxkIG1ha2UgUFhQIGEgZ2xvYmFsIHN1YnN5c3RlbSBpbnN0ZWFkIG9mIGhh bmdpbmcgb2ZmIGd0IGJ1dCB3ZSBib3RoIGFncmVlZCB0aGF0IGJlY2F1c2UgdGhlIGNvbnRyb2wg ZW5naW5lcyBhcmUNCj4gPiA+IG9ubHkgbG9jYXRlZCBvbiBvbmUgdGlsZSwgc28geW91IG1pZ2h0 IGZhY2Ugc29tZSBpdHMgZ29ubmEgYmUgYSB0cmFkZSBvZmYgb25lIHdheSBvciB0aGUgb3RoZXI6 DQo+ID4gPiAgICAgICAtIHB4cCBhIGdsb2JhbCBzdHJ1Y3R1cmUsIHRoZW4gYWxsIG9mIHRoZSBp bml0IC8gc2h1dGRvd24gLyBzdXNwZW5kLXJlc3VtZSBmbG93cyB3b3VsZCB0aGVuIGhhdmUgYSBk aWZmZXJlbnQgc2V0IG9mDQo+ID4gPiBjb252b2x1dGVkIGZ1bmN0aW9ucyB0aGF0IHRyeSB0byBn ZXQgYWNjZXNzIHRvIGd0IHNwZWNpZmljIGNvbnRyb2xzIGZyb20gYSB0b3AgbGV2ZWwgZnVuY3Rp b24gZmxvdy4NCj4gPiA+IA0KPiA+ID4gDQo+ID4gPiBBZGRpdGlvbmFsbHksIGh1bWJseSBhbmQg cmVzcGVjdGZ1bGx5LCBwZXJoYXBzIHlvdSBjYW4gcmVhZCB0aHJvdWdoIHRoZSBpbnRlcm5hbCBh cmNoIEhXIHNwZWNzIHRocm91Z2ggd2hpY2ggaXQgY2FuIGJlDQo+ID4gPiBpbmZlcmVkIHRoYXQg UFhQIHdpbGwgY29udGludWUgdG8gaGF2ZSBhIHNpbmdsZSBlbnRpdHkgZm9yIGNvbnRyb2wgZXZl bnRzIGRlc3BpdGUgdGhlIGZlYXR1cmUgYmVpbmcgdXNhYmxlIC8gYWNjZXNzaWJsZQ0KPiA+ID4g YWNyb3NzIGFsbCB0aWxlcy4NCj4gPiA+IA0KPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiAgIAkvKg0K PiA+ID4gPiA+ICAgCSAqIElmIEh1QyBpcyBsb2FkZWQgYnkgR1NDIGJ1dCBQWFAgaXMgZGlzYWJs ZWQsIHdlIGNhbiBza2lwIHRoZSBpbml0IG9mDQo+ID4gPiA+ID4gICAJICogdGhlIGZ1bGwgUFhQ IHNlc3Npb24vb2JqZWN0IG1hbmFnZW1lbnQgYW5kIGp1c3QgaW5pdCB0aGUgdGVlIGNoYW5uZWwu DQo+ID4gPiA+ID4gICAJICovDQo+ID4gPiA+ID4gLQlpZiAoSEFTX1BYUChndC0+aTkxNSkpDQo+ ID4gPiA+ID4gKwlpZiAoaW50ZWxfcHhwX3N1cHBvcnRlZF9vbl9ndChweHApKQ0KPiA+ID4gPiA+ ICAgCQlweHBfaW5pdF9mdWxsKHB4cCk7DQo+ID4gPiA+ID4gLQllbHNlIGlmIChpbnRlbF9odWNf aXNfbG9hZGVkX2J5X2dzYygmZ3QtPnVjLmh1YykgJiYgaW50ZWxfdWNfdXNlc19odWMoJmd0LT51 YykpDQo+ID4gPiA+ID4gKwllbHNlIGlmIChfZ3RfbmVlZHNfdGVlbGluayhndCkpDQo+ID4gPiA+ ID4gICAJCWludGVsX3B4cF90ZWVfY29tcG9uZW50X2luaXQocHhwKTsNCj4gPiA+ID4gPiAgIH0N Cj4gPiA+ID4gPiAgIA0KPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9weHAvaW50ZWxfcHhwLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9weHAvaW50ZWxfcHhwLmgN Cj4gPiA+ID4gPiBpbmRleCAyZGEzMDkwODhjNmQuLmVmYTgzZjlkNWUyNCAxMDA2NDQNCj4gPiA+ ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9weHAvaW50ZWxfcHhwLmgNCj4gPiA+ID4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9weHAvaW50ZWxfcHhwLmgNCj4gPiA+ID4gPiBA QCAtMTMsNiArMTMsOSBAQCBzdHJ1Y3QgaW50ZWxfcHhwOw0KPiA+ID4gPiA+ICAgc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3Q7DQo+ID4gPiA+ID4gICANCj4gPiA+ID4gPiAgIHN0cnVjdCBpbnRl bF9ndCAqcHhwX3RvX2d0KGNvbnN0IHN0cnVjdCBpbnRlbF9weHAgKnB4cCk7DQo+ID4gPiA+ID4g Kw0KPiA+ID4gPiA+ICtib29sIGludGVsX3B4cF9zdXBwb3J0ZWRfb25fZ3QoY29uc3Qgc3RydWN0 IGludGVsX3B4cCAqcHhwKTsNCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gICBib29sIGludGVsX3B4 cF9pc19lbmFibGVkKGNvbnN0IHN0cnVjdCBpbnRlbF9weHAgKnB4cCk7DQo+ID4gPiA+ID4gICBi b29sIGludGVsX3B4cF9pc19hY3RpdmUoY29uc3Qgc3RydWN0IGludGVsX3B4cCAqcHhwKTsNCj4g PiA+ID4gPiAgIA0KPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9w eHAvaW50ZWxfcHhwX2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3B4cC9pbnRlbF9w eHBfZGVidWdmcy5jDQo+ID4gPiA+ID4gaW5kZXggNDM1OWU4YmU0MTAxLi5mMGFkNmYzNDYyNGEg MTAwNjQ0DQo+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvcHhwL2ludGVsX3B4 cF9kZWJ1Z2ZzLmMNCj4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9weHAvaW50 ZWxfcHhwX2RlYnVnZnMuYw0KPiA+ID4gPiA+IEBAIC03MCw3ICs3MCw3IEBAIHZvaWQgaW50ZWxf cHhwX2RlYnVnZnNfcmVnaXN0ZXIoc3RydWN0IGludGVsX3B4cCAqcHhwLCBzdHJ1Y3QgZGVudHJ5 ICpndF9yb290KQ0KPiA+ID4gPiA+ICAgCWlmICghZ3Rfcm9vdCkNCj4gPiA+ID4gPiAgIAkJcmV0 dXJuOw0KPiA+ID4gPiA+ICAgDQo+ID4gPiA+ID4gLQlpZiAoIUhBU19QWFAoKHB4cF90b19ndChw eHApLT5pOTE1KSkpDQo+ID4gPiA+ID4gKwlpZiAoIWludGVsX3B4cF9zdXBwb3J0ZWRfb25fZ3Qo cHhwKSkNCj4gPiA+ID4gPiAgIAkJcmV0dXJuOw0KPiA+ID4gPiA+ICAgDQo+ID4gPiA+ID4gICAJ cm9vdCA9IGRlYnVnZnNfY3JlYXRlX2RpcigicHhwIiwgZ3Rfcm9vdCk7DQo+ID4gPiA+ID4gLS0g DQo+ID4gPiA+ID4gMi4zNC4xDQo+ID4gPiA+ID4gDQo+ID4gPiANCj4gDQo+IC0tIA0KPiBKYW5p IE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgR3JhcGhpY3MgQ2VudGVyDQoNCg==