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 43CDAC43334 for ; Thu, 7 Jul 2022 11:27:35 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B55F4113AF3; Thu, 7 Jul 2022 11:27:29 +0000 (UTC) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id C8F9214A286; Thu, 7 Jul 2022 11:27:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1657193247; x=1688729247; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=t45zsgIrmb+dU283w3ZgIcAgKKd5nbaAfU82Fx3+Oww=; b=CeGB5T+rPBmzSUevGGHIxIHyjbXmNhBPosGmPt8thSacHF3HF5FelGpa +F3WCBwDqgcnvQKpcFM37sEpsLBpo+4gR8jnacQgFNmcpbjML+hS7B8TT lVexFoK5BYp7wad4BMJdLvN+ESYUppMq3lSSTMwxTByrnvDsGkXb0MAZK sTGCdClTpbzcEAzigSaQgemUVbj7ZNkBA7xVcOWYOKMWy44WwDI/p76hX qp7ZYOdAMQS58U3nPCUb2+1e6v2CqAlurYZfbT5nmtANh/RVWgPUQ6qgb p2v6sbE2ZS5MiQ+OwT0ijtHf9gOQe2rKXQrbckm4qCZMXGY0g+CBa7AtS g==; X-IronPort-AV: E=McAfee;i="6400,9594,10400"; a="347984648" X-IronPort-AV: E=Sophos;i="5.92,252,1650956400"; d="scan'208";a="347984648" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Jul 2022 04:27:27 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,252,1650956400"; d="scan'208";a="593703483" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga002.jf.intel.com with ESMTP; 07 Jul 2022 04:27:27 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Thu, 7 Jul 2022 04:27:26 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Thu, 7 Jul 2022 04:27:26 -0700 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.57.41) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Thu, 7 Jul 2022 04:27:26 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SHdLRZhRNcc3kXEBW7uCBm365jSOPfF3shjLg09MpAORg377URpKveWUWuFKhiBOw3V9g7YzwkiAMC3H/PjzvZacdy1H7xgAS7sXeHJMDwLpncy6YLvVKe7JxbpKXmyDuP3kvqiuRONSruCQwmKPKn9osaCLZPcOWBXvIhturWs5VFg9L0RNj6+Iujn7Eznw5mSm9a9hZo5vYHMJn4UxBxl/YDWhMAzox5VQQ6mHaTC4vDf1CAf74qmZKQY1BuhbzK5THSAGFl1SAoB1jmiqWExsx6hrpLvbTXYON8kWeKK9u2lQUnP5Fj/nIyItY0HNLv4VKserxutZpvd9H4lV1Q== 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=t45zsgIrmb+dU283w3ZgIcAgKKd5nbaAfU82Fx3+Oww=; b=Scg1/gCtng3pvM6pj+qr//Mrl+tXhnxMTXbkZEXbL7dX/2BgbPyjnVAW/u16X1BJxCymM6LKUPCgD5TK/jf/60ENXD/Wi3q0xOPVICTmKm2GE+O6VYZA2cRBAUpnD/OJVKzRRkAnNKDeVATRY1jzNJI7wj1kV5mXTbbTTRrcOEpSQN4cI5Os9SA7QP7/EMPfT2ta9F6R1EiQnPAna3rpOJi3qMLmXo+6GSvbFjEuaxzEArtpbwJrX5i8/QNbZmh3VpIC6A/onm0QPJ3LG7V1u9B7+1M87bUxjiLs4KwSTkpX10Qbd0qr45u7xfoaLu++edqM8kDdYPNsVf2qUgExDQ== 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 DM6PR11MB3114.namprd11.prod.outlook.com (2603:10b6:5:6d::11) by PH0PR11MB4807.namprd11.prod.outlook.com (2603:10b6:510:3a::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.17; Thu, 7 Jul 2022 11:27:24 +0000 Received: from DM6PR11MB3114.namprd11.prod.outlook.com ([fe80::3820:8a37:de8b:ccbd]) by DM6PR11MB3114.namprd11.prod.outlook.com ([fe80::3820:8a37:de8b:ccbd%5]) with mapi id 15.20.5395.022; Thu, 7 Jul 2022 11:27:24 +0000 From: "Hellstrom, Thomas" To: "dri-devel@lists.freedesktop.org" , "Vishwanathapura, Niranjana" , "intel-gfx@lists.freedesktop.org" Thread-Topic: [RFC 05/10] drm/i915/vm_bind: Handle persistent vmas Thread-Index: AQHYjZ0bpIcYuvmVpUqSy8xw3C6Yva1yzdIA Date: Thu, 7 Jul 2022 11:27:23 +0000 Message-ID: References: <20220701225055.8204-1-niranjana.vishwanathapura@intel.com> <20220701225055.8204-6-niranjana.vishwanathapura@intel.com> In-Reply-To: <20220701225055.8204-6-niranjana.vishwanathapura@intel.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.44.3 (3.44.3-1.fc36) 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: 71da1c19-ff22-472c-698a-08da600baa03 x-ms-traffictypediagnostic: PH0PR11MB4807: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: ooTQMZQJZEPpDoru2Yk9TAcJMgcXa+IFeZj0lcVMI6P5hXYnyaDgi7H6QcnsMwA53aDVDxYIIY1QLmvtki79dI0maXv8cBUxoXHYlGIBqeCwVjlhFkPWna2stew/M8dI7z5OX0FoGkhmS2rQof/BWXfuT3et/nRh9KzYJF4BfWW5PSPAkp/pwq8dfNEyLu5Dz89J1bonDKs+FYAwyNek2/noHkUqFumRcvtvhp5FhxRf0qYKh+nQsXsMUI+4ZuciNedjM3qO6nBqETd0cpu/6XmqFVjoI3ormyfnB9V25WsPoBKebber1Gz2uk52FMgQgnq5yOyotVALq4Fn2f56g+3oKmefe5zhL5UkCRYDhyg4lIvSRMuzfw/m/5/K8CzAZ085FMI5M7KLfdjtkg6b7gVTGUTTMaFnSrPSiZ8WK3R5416gVQCoEmLJN6trmTrjVOC2t6Q6ga9Dw6JGHxcVQjjnAOioJRR+PNi3sn8hUoyw48cv0uQzfEKXKXrdZb3RgDa0twS6+1buSh8iLcLblAUFlldkTw+wOjqCjCIbitwVvz5mqhiuUTATKmWlTI/QjZC0vUPSp6R/BjoIpliP3i5N4d0Ahuy3s/WKCrq3AvF9HnvHq+kHKnKNIywSI49vF1ycOt2vN6tMyj4UYh3k0SnzN3+LhiQ14DQiJlEtplx1pFly52MM2OOPqN6qtpF19IYNz6CKTSY+phlKSWzyVInIgUU9plOIREtZApv9gT7E3obk9szKxPQznnI3ldzVMlT6GBPKj0VCX6wOhrsx71M2+o+nepJ5voA82aWdhO67umgh39WQQNf3bnHwzjl0 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB3114.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(346002)(39860400002)(376002)(136003)(396003)(366004)(110136005)(6486002)(71200400001)(36756003)(41300700001)(122000001)(186003)(38070700005)(26005)(86362001)(66946007)(6512007)(54906003)(316002)(2616005)(76116006)(2906002)(83380400001)(66446008)(6506007)(8936002)(478600001)(8676002)(4326008)(66556008)(38100700002)(66476007)(64756008)(30864003)(82960400001)(91956017)(5660300002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Wkp3c2M5dkJPeXVUMzhWeDhuOWJMRFhncTI5TVhOaWxRb292bXdKVkdGenpG?= =?utf-8?B?dHJTS0ZGTGV6dFBFTVptSklCVjFmMDFCNHlobmFCWWRDazgzZ3BiVkdhWlhj?= =?utf-8?B?ZUhMNFJZM0ZoM0wzY3ZPQTN0b1BnclhrMWIwZUppOXFzME9zS2ZVbnkwMllY?= =?utf-8?B?dTM2L1kybE4xNDVNTTNxNTBTV1dYVzRGTXB1bitVQnFhamZ4TGdCRWhmQjdu?= =?utf-8?B?cGRzbk9jUEI1ajRIRGRyZ3BtMG9STWo5VVRxL1dwRFhFWU9UMEtscWRyRUJV?= =?utf-8?B?bHZwRmFsbWswUHlSVXVkRllXVHdEUEN1SzJhMWpadHREK0dWQXR4QTdNRG52?= =?utf-8?B?azJWdGJxais5UmgwVXY1aEZsRkFCd24rdEZndURkTktWZmpHdEF4SFRJRGk3?= =?utf-8?B?N2xyRnRuSTNwZlFTcWdCOEJKQnYvcVVhUzFSVWkrczRmWVBkeGttTVVuU1RX?= =?utf-8?B?MTYzdVlKWDJOK0o2RE1McjM2azJoenMwRjlhOVJPUkxsZEdnbCtpdTNuMVpC?= =?utf-8?B?VVlSL3lOKzhZYkVxc0lBYjBRSnFSV0QzTFZqc3hHWkFRZ0lPMFBZSHFFZ1Fj?= =?utf-8?B?MHhKOUZMRnBIdGUwaFV5VDI5L2kvNnFOOEZmSXB5ZkFHMFBNallDSWloL2VO?= =?utf-8?B?ZUtkdmJXNWI2WTdaQWsvUFdyQUtJOFpScVNmdWcrMXViMEJPb0NLV0dvVXRP?= =?utf-8?B?cVZ3M3JJY090NGRqVTE2Z1EydW44S3ZCTzZXaUI2SEtYRHdiamJXajdJQjZi?= =?utf-8?B?dUhvbG9tR283bEZ3Z29VRnhEd24wNGQvVHVLWUJISEErWS9xUGNMbmlHRUc5?= =?utf-8?B?OWpYNFhuWVVMSyt2VVZvTm04NFlUV05sb1pxU05SMFd1K2ZzTGI3UTVrVkt4?= =?utf-8?B?TXgrMHF0ZkRBMU9YTVcrdy9IMkdZZXp0WW55VUI5TjJqeDV3V082akJlaSsw?= =?utf-8?B?NG9iQlpvNkNNeU5HeTIrOW0raHJFOTJMbXZTcVd5bi9FQUJrTFlOWlRFcVZP?= =?utf-8?B?TG9xVE1ZcE9GYzU1ajRQMHM0djcwaEJqUkNhUmdOZk5EaHh0VDhwWmpIQmox?= =?utf-8?B?QStWa3hCblkwaVJxNEpMdDVFakJxbE42Y1pMN1dyRVlnbHpzRjBRbHE5OHBs?= =?utf-8?B?QkljSmN6RE16b2RHYW14cTFocEN0OEdUMWZwRVR2UEhrcS93d0xDTzRBWXNE?= =?utf-8?B?WlZUcUJvdThDSk55cEEvdkprNFFCL21kVVQ3ekl5ekI0UkR1dkQxQUd0YWxv?= =?utf-8?B?cjM4S1ArRWJTdEhmTi80aFpPTlZGMFlwS2I4TmFUMkxrSXppSVRWdWdzMlhD?= =?utf-8?B?a0o3VEUzZWE2dVUyTDI5MENTNTIvZHZWbWY5ekhzRlp3aDNlQUp5MHUwd0h3?= =?utf-8?B?VDlFcjFOUS9vR24xRTdaaW9KeVd4NFEvWWNtZ2M2cnVQdm83Yk9yVzd1RkJM?= =?utf-8?B?SFBKeHNmMG15ckpKZS9zZzJhdllrRTg1VlZuNkZsWWZ5eXVvZTZEc0NURW04?= =?utf-8?B?NHYvSXpiUmtLSllUQnhyN0hKaUkyMHFnVUxaSVhBcE9ocXZLenNDYmhnbW1E?= =?utf-8?B?NGVoMjNqTjQzYnpZWTNDMDBHU1piTytvbndCaUdQWE9hNGdJWm12RHFZR3lE?= =?utf-8?B?WVp6bm9Ud2ltTnZ6dXh4M3htb1Zma1ZTY01YZG85b2xUeVNJclV3aVFqU25Q?= =?utf-8?B?QVpCTlpraEgxUDVFUmh0N2FyNE01VjhhVnhhc29ZQVd4ekFSbThpWkY3MklO?= =?utf-8?B?SGZRbDh3ODRNK2dtZmR0S3l6SjBHSGpmOXhoY3hpaG5ndHVnMmVTUUtIeFpO?= =?utf-8?B?ZlVrZ1B1dGcrby84Zm9VdUQ5dzhiV3I5WHMyZXlHQUhDeUY3Wlo2UDQxYmx6?= =?utf-8?B?Z3VYeWUzMEhKWUNhdEhLOVRYUjhIRFlMQXRaZjd3NWhjRjY0NUpNNkYxNGln?= =?utf-8?B?QmlDaTg3b1M4MGRnSy85ci82NzBEN2U5WHlmZzBiVjZ6RUtpckdiK1U2elNR?= =?utf-8?B?dHIzNHROZEdxV1VXd2tHYU9nbjJSRjlwTmMraEhHK1RxQVlBSFRlV0FieFA4?= =?utf-8?B?QlhlMTRGRU1OUC90UllBSndBeWpYcXFVTVZnY0M4Q0l3Y29ITzFld0s0dTkr?= =?utf-8?B?SDZObGZhU0N0eU1PNDhGRGM0dDg4ekFra2gxK2U1RWtickNmN2VkSmJrMzJI?= =?utf-8?Q?M7W9AIeum7em//DDABp++ns=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <7370CA132199464A8FE198AB65F767F9@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB3114.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 71da1c19-ff22-472c-698a-08da600baa03 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jul 2022 11:27:23.8978 (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: eZVU+DcAJt/zg3hLwvS8ZxLUabDeVVBGG1BmrNcSGRolVs6Hk3lbtKha2BpYJRPDklCs6VFOzexfkE41DdMn5EL0uoRHBvRNA87BCZFfG2M= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB4807 X-OriginatorOrg: intel.com Subject: Re: [Intel-gfx] [RFC 05/10] drm/i915/vm_bind: Handle persistent vmas 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: "Zanoni, Paulo R" , "Auld, Matthew" , "Vetter, Daniel" , "christian.koenig@amd.com" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gRnJpLCAyMDIyLTA3LTAxIGF0IDE1OjUwIC0wNzAwLCBOaXJhbmphbmEgVmlzaHdhbmF0aGFw dXJhIHdyb3RlOgo+IFRyZWF0IFZNX0JJTkQgdm1hcyBhcyBwZXJzaXN0ZW50IGFuZCBoYW5kbGUg dGhlbSBkdXJpbmcgdGhlCj4gcmVxdWVzdCBzdWJtaXNzaW9uIGluIHRoZSBleGVjYnVmZiBwYXRo Lgo+IAo+IFN1cHBvcnQgZXZpY3Rpb24gYnkgbWFpbnRhaW5pbmcgYSBsaXN0IG9mIGV2aWN0ZWQg cGVyc2lzdGVudCB2bWFzCj4gZm9yIHJlYmluZGluZyBkdXJpbmcgbmV4dCBzdWJtaXNzaW9uLgo+ IAo+IFNpZ25lZC1vZmYtYnk6IE5pcmFuamFuYSBWaXNod2FuYXRoYXB1cmEKPiA8bmlyYW5qYW5h LnZpc2h3YW5hdGhhcHVyYUBpbnRlbC5jb20+Cj4gLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkx NS9nZW0vaTkxNV9nZW1fb2JqZWN0LmPCoMKgwqAgfMKgIDEgKwo+IMKgZHJpdmVycy9ncHUvZHJt L2k5MTUvZ2VtL2k5MTVfZ2VtX3ZtX2JpbmQuaMKgwqAgfMKgIDMgKwo+IMKgLi4uL2RybS9pOTE1 L2dlbS9pOTE1X2dlbV92bV9iaW5kX29iamVjdC5jwqDCoMKgIHwgMTIgKystCj4gwqBkcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndHQuY8KgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAyICsK PiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0dC5owqDCoMKgwqDCoMKgwqDCoMKg wqAgfMKgIDIgKwo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmjCoMKgwqDC oMKgwqDCoMKgwqDCoCB8IDIyICsrKysrKwo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92 bWEuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAzMiArKysrKysrLQo+IMKgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCA3 OAo+ICsrKysrKysrKysrKysrKysrLS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1h X3R5cGVzLmjCoMKgwqDCoMKgwqDCoMKgIHwgMjMgKysrKysrCj4gwqA5IGZpbGVzIGNoYW5nZWQs IDE2MyBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jCj4gYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmMKPiBpbmRleCBjY2VjNDA1NWZkZTMuLjUxMjFm MDJiYTk1YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f b2JqZWN0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0 LmMKPiBAQCAtMzgsNiArMzgsNyBAQAo+IMKgI2luY2x1ZGUgImk5MTVfZ2VtX21tYW4uaCIKPiDC oCNpbmNsdWRlICJpOTE1X2dlbV9vYmplY3QuaCIKPiDCoCNpbmNsdWRlICJpOTE1X2dlbV90dG0u aCIKPiArI2luY2x1ZGUgImk5MTVfZ2VtX3ZtX2JpbmQuaCIKPiDCoCNpbmNsdWRlICJpOTE1X21l bWNweS5oIgo+IMKgI2luY2x1ZGUgImk5MTVfdHJhY2UuaCIKPiDCoAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fdm1fYmluZC5oCj4gYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fdm1fYmluZC5oCj4gaW5kZXggODQ5YmYzYzEwNjFlLi5l YWFkZjVhNmFiMDkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX3ZtX2JpbmQuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV92 bV9iaW5kLmgKPiBAQCAtNiw2ICs2LDcgQEAKPiDCoCNpZm5kZWYgX19JOTE1X0dFTV9WTV9CSU5E X0gKPiDCoCNkZWZpbmUgX19JOTE1X0dFTV9WTV9CSU5EX0gKPiDCoAo+ICsjaW5jbHVkZSA8bGlu dXgvZG1hLXJlc3YuaD4KPiDCoCNpbmNsdWRlICJpOTE1X2Rydi5oIgo+IMKgCj4gwqAjZGVmaW5l IGFzc2VydF92bV9iaW5kX2hlbGQodm0pwqDCoCBsb2NrZGVwX2Fzc2VydF9oZWxkKCYodm0pLQo+ ID52bV9iaW5kX2xvY2spCj4gQEAgLTI2LDYgKzI3LDggQEAgc3RhdGljIGlubGluZSB2b2lkIGk5 MTVfZ2VtX3ZtX2JpbmRfdW5sb2NrKHN0cnVjdAo+IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pCj4g wqDCoMKgwqDCoMKgwqDCoG11dGV4X3VubG9jaygmdm0tPnZtX2JpbmRfbG9jayk7Cj4gwqB9Cj4g wqAKPiArI2RlZmluZSBhc3NlcnRfdm1fcHJpdl9oZWxkKHZtKcKgwqAgYXNzZXJ0X29iamVjdF9o ZWxkKCh2bSktPnJvb3Rfb2JqKQo+ICsKPiDCoHN0YXRpYyBpbmxpbmUgaW50IGk5MTVfZ2VtX3Zt X3ByaXZfbG9jayhzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlCj4gKnZtLAo+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgc3RydWN0IGk5MTVfZ2VtX3d3X2N0eCAqd3cpCj4gwqB7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV92bV9iaW5kX29iamVjdC5jCj4g Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fdm1fYmluZF9vYmplY3QuYwo+IGlu ZGV4IDk2ZjEzOWNjODA2MC4uMWE4ZWZhODM1NDdmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2dlbS9pOTE1X2dlbV92bV9iaW5kX29iamVjdC5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3ZtX2JpbmRfb2JqZWN0LmMKPiBAQCAtODUsNiArODUs MTMgQEAgdm9pZCBpOTE1X2dlbV92bV9iaW5kX3JlbW92ZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwK PiBib29sIHJlbGVhc2Vfb2JqKQo+IMKgewo+IMKgwqDCoMKgwqDCoMKgwqBhc3NlcnRfdm1fYmlu ZF9oZWxkKHZtYS0+dm0pOwo+IMKgCj4gK8KgwqDCoMKgwqDCoMKgc3Bpbl9sb2NrKCZ2bWEtPnZt LT52bV9yZWJpbmRfbG9jayk7Cj4gK8KgwqDCoMKgwqDCoMKgaWYgKCFsaXN0X2VtcHR5KCZ2bWEt PnZtX3JlYmluZF9saW5rKSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbGlzdF9k ZWxfaW5pdCgmdm1hLT52bV9yZWJpbmRfbGluayk7Cj4gK8KgwqDCoMKgwqDCoMKgaTkxNV92bWFf c2V0X3B1cmdlZCh2bWEpOwo+ICvCoMKgwqDCoMKgwqDCoGk5MTVfdm1hX3NldF9mcmVlZCh2bWEp OwoKRm9sbG93aW5nIHRoZSB2bWEgZGVzdHJ1Y3Rpb24gZGlzY3Vzc2lvbiwgY2FuIHdlIGRpdGNo IHRoZSBmcmVlZCBmbGFnCm5vdz8KCj4gK8KgwqDCoMKgwqDCoMKgc3Bpbl91bmxvY2soJnZtYS0+ dm0tPnZtX3JlYmluZF9sb2NrKTsKPiArCj4gwqDCoMKgwqDCoMKgwqDCoGlmICghbGlzdF9lbXB0 eSgmdm1hLT52bV9iaW5kX2xpbmspKSB7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBsaXN0X2RlbF9pbml0KCZ2bWEtPnZtX2JpbmRfbGluayk7Cj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBsaXN0X2RlbF9pbml0KCZ2bWEtPm5vbl9wcml2X3ZtX2JpbmRfbGluayk7 Cj4gQEAgLTIyMCw2ICsyMjcsNyBAQCBzdGF0aWMgc3RydWN0IGk5MTVfdm1hICp2bV9iaW5kX2dl dF92bWEoc3RydWN0Cj4gaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiDCoAo+IMKgwqDCoMKgwqDC oMKgwqB2bWEtPnN0YXJ0ID0gdmEtPnN0YXJ0Owo+IMKgwqDCoMKgwqDCoMKgwqB2bWEtPmxhc3Qg PSB2YS0+c3RhcnQgKyB2YS0+bGVuZ3RoIC0gMTsKPiArwqDCoMKgwqDCoMKgwqBpOTE1X3ZtYV9z ZXRfcGVyc2lzdGVudCh2bWEpOwo+IMKgCj4gwqDCoMKgwqDCoMKgwqDCoHJldHVybiB2bWE7Cj4g wqB9Cj4gQEAgLTMwNCw4ICszMTIsMTAgQEAgaW50IGk5MTVfZ2VtX3ZtX2JpbmRfb2JqKHN0cnVj dAo+IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKgaTkxNV92 bV9iaW5kX3B1dF9mZW5jZSh2bWEpOwo+IMKgcHV0X3ZtYToKPiAtwqDCoMKgwqDCoMKgwqBpZiAo cmV0KQo+ICvCoMKgwqDCoMKgwqDCoGlmIChyZXQpIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgaTkxNV92bWFfc2V0X2ZyZWVkKHZtYSk7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBpOTE1X3ZtYV9kZXN0cm95KHZtYSk7Cj4gK8KgwqDCoMKgwqDCoMKgfQo+IMKg Cj4gwqDCoMKgwqDCoMKgwqDCoGk5MTVfZ2VtX3d3X2N0eF9maW5pKCZ3dyk7Cj4gwqB1bmxvY2tf dm06Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0dC5jCj4g Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndHQuYwo+IGluZGV4IGRmMGE4NDU5YzNj Ni4uNTVkNTM4OWIyYzZjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2lu dGVsX2d0dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3R0LmMKPiBA QCAtMjkzLDYgKzI5Myw4IEBAIHZvaWQgaTkxNV9hZGRyZXNzX3NwYWNlX2luaXQoc3RydWN0Cj4g aTkxNV9hZGRyZXNzX3NwYWNlICp2bSwgaW50IHN1YmNsYXNzKQo+IMKgwqDCoMKgwqDCoMKgwqBJ TklUX0xJU1RfSEVBRCgmdm0tPm5vbl9wcml2X3ZtX2JpbmRfbGlzdCk7Cj4gwqDCoMKgwqDCoMKg wqDCoHZtLT5yb290X29iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfaW50ZXJuYWwodm0tPmk5 MTUsCj4gUEFHRV9TSVpFKTsKPiDCoMKgwqDCoMKgwqDCoMKgR0VNX0JVR19PTihJU19FUlIodm0t PnJvb3Rfb2JqKSk7Cj4gK8KgwqDCoMKgwqDCoMKgSU5JVF9MSVNUX0hFQUQoJnZtLT52bV9yZWJp bmRfbGlzdCk7Cj4gK8KgwqDCoMKgwqDCoMKgc3Bpbl9sb2NrX2luaXQoJnZtLT52bV9yZWJpbmRf bG9jayk7Cj4gwqB9Cj4gwqAKPiDCoHZvaWQgKl9fcHhfdmFkZHIoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKnApCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVs X2d0dC5oCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndHQuaAo+IGluZGV4IGY1 MzhjZTkxMTVjOS4uZmU1NDg1YzRhMWNkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX2d0dC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxf Z3R0LmgKPiBAQCAtMjY1LDYgKzI2NSw4IEBAIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2Ugewo+ IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgbXV0ZXggdm1fYmluZF9sb2NrO8KgIC8qIFByb3RlY3Rz IHZtX2JpbmQgbGlzdHMgKi8KPiDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IGxpc3RfaGVhZCB2bV9i aW5kX2xpc3Q7Cj4gwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBsaXN0X2hlYWQgdm1fYm91bmRfbGlz dDsKPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgbGlzdF9oZWFkIHZtX3JlYmluZF9saXN0Owo+ICvC oMKgwqDCoMKgwqDCoHNwaW5sb2NrX3Qgdm1fcmViaW5kX2xvY2s7wqDCoCAvKiBQcm90ZWN0cyB2 bV9yZWJpbmRfbGlzdCAqLwo+IMKgwqDCoMKgwqDCoMKgwqAvKiB2YSB0cmVlIG9mIHBlcnNpc3Rl bnQgdm1hcyAqLwo+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgcmJfcm9vdF9jYWNoZWQgdmE7Cj4g wqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBsaXN0X2hlYWQgbm9uX3ByaXZfdm1fYmluZF9saXN0Owo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAo+IGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKPiBpbmRleCA4YzJmNTdlYjVkZGEuLjA5 Yjg5ZDE5MTNmYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9n dHQuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4gQEAgLTUx LDQgKzUxLDI2IEBAIGludCBpOTE1X2dlbV9ndHRfaW5zZXJ0KHN0cnVjdCBpOTE1X2FkZHJlc3Nf c3BhY2UKPiAqdm0sCj4gwqAKPiDCoCNkZWZpbmUgUElOX09GRlNFVF9NQVNLwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBJOTE1X0dUVF9QQUdFX01BU0sKPiDCoAo+ICtzdGF0aWMgaW5s aW5lIGludCBpOTE1X3ZtX3N5bmMoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pCgpObyBu ZWVkIHRvIG1ha2UgdGhpcyBhbiBpbmxpbmUgZnVuY3Rpb24uIE9ubHkgZm9yIHBlcmZvcm1hbmNl IHJlYXNvbnMuCktlcm5lbGRvYy4KCj4gK3sKPiArwqDCoMKgwqDCoMKgwqBpbnQgcmV0Owo+ICsK PiArwqDCoMKgwqDCoMKgwqAvKiBXYWl0IGZvciBhbGwgcmVxdWVzdHMgdW5kZXIgdGhpcyB2bSB0 byBmaW5pc2ggKi8KPiArwqDCoMKgwqDCoMKgwqByZXQgPSBkbWFfcmVzdl93YWl0X3RpbWVvdXQo dm0tPnJvb3Rfb2JqLT5iYXNlLnJlc3YsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIERNQV9SRVNWX1VTQUdFX0JP T0tLRUVQLCBmYWxzZSwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwo+ICvC oMKgwqDCoMKgwqDCoGlmIChyZXQgPCAwKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqByZXR1cm4gcmV0Owo+ICvCoMKgwqDCoMKgwqDCoGVsc2UgaWYgKHJldCA+IDApCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiAwOwo+ICvCoMKgwqDCoMKgwqDCoGVsc2UK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIC1FVElNRURPVVQ7Cj4gK30K PiArCj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X3ZtX2lzX2FjdGl2ZShjb25zdCBzdHJ1Y3Qg aTkxNV9hZGRyZXNzX3NwYWNlCj4gKnZtKQo+ICt7Cj4gK8KgwqDCoMKgwqDCoMKgcmV0dXJuICFk bWFfcmVzdl90ZXN0X3NpZ25hbGVkKHZtLT5yb290X29iai0+YmFzZS5yZXN2LAo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBETUFfUkVTVl9VU0FHRV9CT09LS0VFUCk7Cj4gK30KPiArCj4gwqAjZW5kaWYK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYwo+IGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYwo+IGluZGV4IDY3MzcyMzZiNzg4NC4uNmFkYjAxMzU3 OWJlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jCj4gQEAgLTIzNyw2ICsyMzcsNyBAQCB2 bWFfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gwqAKPiDCoMKgwqDC oMKgwqDCoMKgSU5JVF9MSVNUX0hFQUQoJnZtYS0+dm1fYmluZF9saW5rKTsKPiDCoMKgwqDCoMKg wqDCoMKgSU5JVF9MSVNUX0hFQUQoJnZtYS0+bm9uX3ByaXZfdm1fYmluZF9saW5rKTsKPiArwqDC oMKgwqDCoMKgwqBJTklUX0xJU1RfSEVBRCgmdm1hLT52bV9yZWJpbmRfbGluayk7Cj4gwqDCoMKg wqDCoMKgwqDCoHJldHVybiB2bWE7Cj4gwqAKPiDCoGVycl91bmxvY2s6Cj4gQEAgLTE2MjIsNyAr MTYyMyw4IEBAIHZvaWQgaTkxNV92bWFfY2xvc2Uoc3RydWN0IGk5MTVfdm1hICp2bWEpCj4gwqDC oMKgwqDCoMKgwqDCoGlmIChhdG9taWNfZGVjX2FuZF9sb2NrX2lycXNhdmUoJnZtYS0+b3Blbl9j b3VudCwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCZndC0+Y2xvc2VkX2xvY2ssCj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBmbGFncykpIHsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgX192bWFfY2xvc2Uodm1hLCBndCk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGlmICghaTkxNV92bWFfaXNfcGVyc2lzdGVudCh2bWEpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgX192bWFfY2xvc2Uodm1hLCBndCk7CgpUaGlzIGNo YW5nZSBpcyBub3QgbmVlZGVkIHNpbmNlIHBlcnNpc3RlbnQgdm1hcyBzaG91bGRuJ3QgdGFrZSBw YXJ0IGluCnRoZSBvdGhlciB2bWEgb3Blbi1jbG9zZSBsaWZlLXRpbWUgbWFuYWdlbWVudC4KCj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZn dC0+Y2xvc2VkX2xvY2ssIGZsYWdzKTsKPiDCoMKgwqDCoMKgwqDCoMKgfQo+IMKgfQo+IEBAIC0x NjQ3LDYgKzE2NDksMTMgQEAgc3RhdGljIHZvaWQgZm9yY2VfdW5iaW5kKHN0cnVjdCBpOTE1X3Zt YSAqdm1hKQo+IMKgwqDCoMKgwqDCoMKgwqBpZiAoIWRybV9tbV9ub2RlX2FsbG9jYXRlZCgmdm1h LT5ub2RlKSkKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybjsKPiDCoAo+ ICvCoMKgwqDCoMKgwqDCoC8qCj4gK8KgwqDCoMKgwqDCoMKgICogTWFyayBwZXJzaXN0ZW50IHZt YSBhcyBwdXJnZWQgdG8gYXZvaWQgaXQgd2FpdGluZwo+ICvCoMKgwqDCoMKgwqDCoCAqIGZvciBW TSB0byBiZSByZWxlYXNlZC4KPiArwqDCoMKgwqDCoMKgwqAgKi8KPiArwqDCoMKgwqDCoMKgwqBp ZiAoaTkxNV92bWFfaXNfcGVyc2lzdGVudCh2bWEpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBpOTE1X3ZtYV9zZXRfcHVyZ2VkKHZtYSk7Cj4gKwo+IMKgwqDCoMKgwqDCoMKgwqBh dG9taWNfYW5kKH5JOTE1X1ZNQV9QSU5fTUFTSywgJnZtYS0+ZmxhZ3MpOwo+IMKgwqDCoMKgwqDC oMKgwqBXQVJOX09OKF9faTkxNV92bWFfdW5iaW5kKHZtYSkpOwo+IMKgwqDCoMKgwqDCoMKgwqBH RU1fQlVHX09OKGRybV9tbV9ub2RlX2FsbG9jYXRlZCgmdm1hLT5ub2RlKSk7Cj4gQEAgLTE2NjYs OSArMTY3NSwxMiBAQCBzdGF0aWMgdm9pZCByZWxlYXNlX3JlZmVyZW5jZXMoc3RydWN0IGk5MTVf dm1hCj4gKnZtYSwgYm9vbCB2bV9kZGVzdHJveSkKPiDCoAo+IMKgwqDCoMKgwqDCoMKgwqBzcGlu X3VubG9jaygmb2JqLT52bWEubG9jayk7Cj4gwqAKPiAtwqDCoMKgwqDCoMKgwqBpOTE1X2dlbV92 bV9iaW5kX2xvY2sodm1hLT52bSk7Cj4gLcKgwqDCoMKgwqDCoMKgaTkxNV9nZW1fdm1fYmluZF9y ZW1vdmUodm1hLCB0cnVlKTsKPiAtwqDCoMKgwqDCoMKgwqBpOTE1X2dlbV92bV9iaW5kX3VubG9j ayh2bWEtPnZtKTsKPiArwqDCoMKgwqDCoMKgwqBpZiAoaTkxNV92bWFfaXNfcGVyc2lzdGVudCh2 bWEpICYmCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgICFpOTE1X3ZtYV9pc19mcmVlZCh2bWEpKSB7 Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGk5MTVfZ2VtX3ZtX2JpbmRfbG9jayh2 bWEtPnZtKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaTkxNV9nZW1fdm1fYmlu ZF9yZW1vdmUodm1hLCB0cnVlKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaTkx NV9nZW1fdm1fYmluZF91bmxvY2sodm1hLT52bSk7Cj4gK8KgwqDCoMKgwqDCoMKgfQo+IMKgCj4g wqDCoMKgwqDCoMKgwqDCoHNwaW5fbG9ja19pcnEoJmd0LT5jbG9zZWRfbG9jayk7Cj4gwqDCoMKg wqDCoMKgwqDCoF9faTkxNV92bWFfcmVtb3ZlX2Nsb3NlZCh2bWEpOwo+IEBAIC0xODM5LDYgKzE4 NTEsOCBAQCBpbnQgX2k5MTVfdm1hX21vdmVfdG9fYWN0aXZlKHN0cnVjdCBpOTE1X3ZtYQo+ICp2 bWEsCj4gwqDCoMKgwqDCoMKgwqDCoGludCBlcnI7Cj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKgYXNz ZXJ0X29iamVjdF9oZWxkKG9iaik7Cj4gK8KgwqDCoMKgwqDCoMKgaWYgKGk5MTVfdm1hX2lzX3Bl cnNpc3RlbnQodm1hKSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIC1F SU5WQUw7Cj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKgR0VNX0JVR19PTighdm1hLT5wYWdlcyk7Cj4g wqAKPiBAQCAtMTk5OSw2ICsyMDEzLDE2IEBAIGludCBfX2k5MTVfdm1hX3VuYmluZChzdHJ1Y3Qg aTkxNV92bWEgKnZtYSkKPiDCoMKgwqDCoMKgwqDCoMKgX19pOTE1X3ZtYV9ldmljdCh2bWEsIGZh bHNlKTsKPiDCoAo+IMKgwqDCoMKgwqDCoMKgwqBkcm1fbW1fcmVtb3ZlX25vZGUoJnZtYS0+bm9k ZSk7IC8qIHBhaXJzIHdpdGgKPiBpOTE1X3ZtYV9yZWxlYXNlKCkgKi8KPiArCj4gK8KgwqDCoMKg wqDCoMKgaWYgKGk5MTVfdm1hX2lzX3BlcnNpc3RlbnQodm1hKSkgewo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBzcGluX2xvY2soJnZtYS0+dm0tPnZtX3JlYmluZF9sb2NrKTsKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKGxpc3RfZW1wdHkoJnZtYS0+dm1fcmVi aW5kX2xpbmspICYmCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAhaTkx NV92bWFfaXNfcHVyZ2VkKHZtYSkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBsaXN0X2FkZF90YWlsKCZ2bWEtPnZtX3JlYmluZF9saW5rLAo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgJnZtYS0+dm0tPnZtX3JlYmluZF9saXN0KTsKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgc3Bpbl91bmxvY2soJnZtYS0+dm0tPnZtX3JlYmluZF9sb2NrKTsKPiAr wqDCoMKgwqDCoMKgwqB9Cj4gKwo+IMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gMDsKPiDCoH0KPiDC oAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5oCj4gYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5oCj4gaW5kZXggZGNiNDlmNzlmZjdlLi42YzEzNjlh NDBlMDMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmgKPiBAQCAtNDcsMTIgKzQ3LDYgQEAg aTkxNV92bWFfaW5zdGFuY2Uoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiDCoAo+ IMKgdm9pZCBpOTE1X3ZtYV91bnBpbl9hbmRfcmVsZWFzZShzdHJ1Y3QgaTkxNV92bWEgKipwX3Zt YSwgdW5zaWduZWQKPiBpbnQgZmxhZ3MpOwo+IMKgI2RlZmluZSBJOTE1X1ZNQV9SRUxFQVNFX01B UCBCSVQoMCkKPiAtCj4gLXN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X3ZtYV9pc19hY3RpdmUoY29u c3Qgc3RydWN0IGk5MTVfdm1hICp2bWEpCj4gLXsKPiAtwqDCoMKgwqDCoMKgwqByZXR1cm4gIWk5 MTVfYWN0aXZlX2lzX2lkbGUoJnZtYS0+YWN0aXZlKTsKPiAtfQo+IC0KPiDCoC8qIGRvIG5vdCBy ZXNlcnZlIG1lbW9yeSB0byBwcmV2ZW50IGRlYWRsb2NrcyAqLwo+IMKgI2RlZmluZSBfX0VYRUNf T0JKRUNUX05PX1JFU0VSVkUgQklUKDMxKQo+IMKgCj4gQEAgLTEzOCw2ICsxMzIsNDggQEAgc3Rh dGljIGlubGluZSB1MzIgaTkxNV9nZ3R0X3Bpbl9iaWFzKHN0cnVjdAo+IGk5MTVfdm1hICp2bWEp Cj4gwqDCoMKgwqDCoMKgwqDCoHJldHVybiBpOTE1X3ZtX3RvX2dndHQodm1hLT52bSktPnBpbl9i aWFzOwo+IMKgfQo+IMKgCj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X3ZtYV9pc19wZXJzaXN0 ZW50KGNvbnN0IHN0cnVjdCBpOTE1X3ZtYQo+ICp2bWEpCj4gK3sKPiArwqDCoMKgwqDCoMKgwqBy ZXR1cm4gdGVzdF9iaXQoSTkxNV9WTUFfUEVSU0lTVEVOVF9CSVQsCj4gX19pOTE1X3ZtYV9mbGFn cyh2bWEpKTsKPiArfQo+ICsKPiArc3RhdGljIGlubGluZSB2b2lkIGk5MTVfdm1hX3NldF9wZXJz aXN0ZW50KHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+ICt7Cj4gK8KgwqDCoMKgwqDCoMKgc2V0X2Jp dChJOTE1X1ZNQV9QRVJTSVNURU5UX0JJVCwgX19pOTE1X3ZtYV9mbGFncyh2bWEpKTsKPiArfQo+ ICsKPiArc3RhdGljIGlubGluZSBib29sIGk5MTVfdm1hX2lzX3B1cmdlZChjb25zdCBzdHJ1Y3Qg aTkxNV92bWEgKnZtYSkKPiArewo+ICvCoMKgwqDCoMKgwqDCoHJldHVybiB0ZXN0X2JpdChJOTE1 X1ZNQV9QVVJHRURfQklULCBfX2k5MTVfdm1hX2ZsYWdzKHZtYSkpOwo+ICt9Cj4gKwo+ICtzdGF0 aWMgaW5saW5lIHZvaWQgaTkxNV92bWFfc2V0X3B1cmdlZChzdHJ1Y3QgaTkxNV92bWEgKnZtYSkK PiArewo+ICvCoMKgwqDCoMKgwqDCoHNldF9iaXQoSTkxNV9WTUFfUFVSR0VEX0JJVCwgX19pOTE1 X3ZtYV9mbGFncyh2bWEpKTsKPiArfQo+ICsKPiArc3RhdGljIGlubGluZSBib29sIGk5MTVfdm1h X2lzX2ZyZWVkKGNvbnN0IHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+ICt7Cj4gK8KgwqDCoMKgwqDC oMKgcmV0dXJuIHRlc3RfYml0KEk5MTVfVk1BX0ZSRUVEX0JJVCwgX19pOTE1X3ZtYV9mbGFncyh2 bWEpKTsKPiArfQo+ICsKPiArc3RhdGljIGlubGluZSB2b2lkIGk5MTVfdm1hX3NldF9mcmVlZChz dHJ1Y3QgaTkxNV92bWEgKnZtYSkKPiArewo+ICvCoMKgwqDCoMKgwqDCoHNldF9iaXQoSTkxNV9W TUFfRlJFRURfQklULCBfX2k5MTVfdm1hX2ZsYWdzKHZtYSkpOwo+ICt9Cj4gKwo+ICtzdGF0aWMg aW5saW5lIGJvb2wgaTkxNV92bWFfaXNfYWN0aXZlKGNvbnN0IHN0cnVjdCBpOTE1X3ZtYSAqdm1h KQo+ICt7Cj4gK8KgwqDCoMKgwqDCoMKgaWYgKGk5MTVfdm1hX2lzX3BlcnNpc3RlbnQodm1hKSkg ewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoaTkxNV92bWFfaXNfcHVyZ2Vk KHZtYSkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBy ZXR1cm4gZmFsc2U7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4g aTkxNV92bV9pc19hY3RpdmUodm1hLT52bSk7Cj4gK8KgwqDCoMKgwqDCoMKgfQo+ICsKPiArwqDC oMKgwqDCoMKgwqByZXR1cm4gIWk5MTVfYWN0aXZlX2lzX2lkbGUoJnZtYS0+YWN0aXZlKTsKPiAr fQo+ICsKPiDCoHN0YXRpYyBpbmxpbmUgc3RydWN0IGk5MTVfdm1hICppOTE1X3ZtYV9nZXQoc3Ry dWN0IGk5MTVfdm1hICp2bWEpCj4gwqB7Cj4gwqDCoMKgwqDCoMKgwqDCoGk5MTVfZ2VtX29iamVj dF9nZXQodm1hLT5vYmopOwo+IEBAIC00MDgsOCArNDQ0LDM2IEBAIGludCBpOTE1X3ZtYV93YWl0 X2Zvcl9iaW5kKHN0cnVjdCBpOTE1X3ZtYQo+ICp2bWEpOwo+IMKgCj4gwqBzdGF0aWMgaW5saW5l IGludCBpOTE1X3ZtYV9zeW5jKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+IMKgewo+ICvCoMKgwqDC oMKgwqDCoGludCByZXQ7Cj4gKwo+IMKgwqDCoMKgwqDCoMKgwqAvKiBXYWl0IGZvciB0aGUgYXN5 bmNocm9ub3VzIGJpbmRpbmdzIGFuZCBwZW5kaW5nIEdQVSByZWFkcwo+ICovCj4gLcKgwqDCoMKg wqDCoMKgcmV0dXJuIGk5MTVfYWN0aXZlX3dhaXQoJnZtYS0+YWN0aXZlKTsKPiArwqDCoMKgwqDC oMKgwqByZXQgPSBpOTE1X2FjdGl2ZV93YWl0KCZ2bWEtPmFjdGl2ZSk7Cj4gK8KgwqDCoMKgwqDC oMKgaWYgKHJldCB8fCAhaTkxNV92bWFfaXNfcGVyc2lzdGVudCh2bWEpIHx8Cj4gaTkxNV92bWFf aXNfcHVyZ2VkKHZtYSkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBy ZXQ7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoHJldHVybiBpOTE1X3ZtX3N5bmModm1hLT52bSk7Cj4g K30KPiArCj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X3ZtYV9pc19iaW5kX2NvbXBsZXRlKHN0 cnVjdCBpOTE1X3ZtYSAqdm1hKQo+ICt7Cj4gK8KgwqDCoMKgwqDCoMKgLyogRW5zdXJlIHZtYSBi aW5kIGlzIGluaXRpYXRlZCAqLwo+ICvCoMKgwqDCoMKgwqDCoGlmICghaTkxNV92bWFfaXNfYm91 bmQodm1hLCBJOTE1X1ZNQV9CSU5EX01BU0spKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqByZXR1cm4gZmFsc2U7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoC8qIEVuc3VyZSBhbnkgYmlu ZGluZyBzdGFydGVkIGlzIGNvbXBsZXRlICovCj4gK8KgwqDCoMKgwqDCoMKgaWYgKHJjdV9hY2Nl c3NfcG9pbnRlcih2bWEtPmFjdGl2ZS5leGNsLmZlbmNlKSkgewo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKPiArCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoHJjdV9yZWFkX2xvY2soKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgZmVuY2UgPSBkbWFfZmVuY2VfZ2V0X3JjdV9zYWZlKCZ2bWEtCj4gPmFjdGl2 ZS5leGNsLmZlbmNlKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmN1X3JlYWRf dW5sb2NrKCk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmIChmZW5jZSkgewo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZG1hX2ZlbmNl X3B1dChmZW5jZSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqByZXR1cm4gZmFsc2U7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0KPiAr wqDCoMKgwqDCoMKgwqB9CgpDb3VsZCB3ZSB1c2UgaTkxNV9hY3RpdmVfZmVuY2VfZ2V0KCkgaW5z dGVhZCBvZiBmaXJzdCB0ZXN0aW5nIHRoZQpwb2ludGVyIGFuZCB0aGVuIG9wZW4tY29kaW5nIGk5 MTVfYWN0aXZlX2ZlbmNlX2dldCgpPyBBbHNvIG5vIG5lZWQgdG8KaW5saW5lIHRoaXMuCgo+ICsK PiArwqDCoMKgwqDCoMKgwqByZXR1cm4gdHJ1ZTsKPiDCoH0KPiDCoAo+IMKgLyoqCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hX3R5cGVzLmgKPiBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfdm1hX3R5cGVzLmgKPiBpbmRleCA3ZDgzMGE2YTBiNTEuLjQwNWM4 MmUxYmMzMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYV90eXBl cy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWFfdHlwZXMuaAo+IEBAIC0y NjQsNiArMjY0LDI4IEBAIHN0cnVjdCBpOTE1X3ZtYSB7Cj4gwqAjZGVmaW5lIEk5MTVfVk1BX1ND QU5PVVRfQklUwqDCoMKgMTcKPiDCoCNkZWZpbmUgSTkxNV9WTUFfU0NBTk9VVMKgwqDCoMKgwqDC oMKgKChpbnQpQklUKEk5MTVfVk1BX1NDQU5PVVRfQklUKSkKPiDCoAo+ICvCoCAvKioKPiArwqDC oCAqIEk5MTVfVk1BX1BFUlNJU1RFTlRfQklUOgo+ICvCoMKgICogVGhlIHZtYSBpcyBwZXJzaXN0 ZW50IChjcmVhdGVkIHdpdGggVk1fQklORCBjYWxsKS4KPiArwqDCoCAqCj4gK8KgwqAgKiBJOTE1 X1ZNQV9QVVJHRURfQklUOgo+ICvCoMKgICogVGhlIHBlcnNpc3RlbnQgdm1hIGlzIGZvcmNlIHVu Ym91bmQgZWl0aGVyIGR1ZSB0byBWTV9VTkJJTkQKPiBjYWxsCj4gK8KgwqAgKiBmcm9tIFVNRCBv ciBWTSBpcyByZWxlYXNlZC4gRG8gbm90IGNoZWNrL3dhaXQgZm9yIFZNIGFjdGl2ZW5lc3MKPiAr wqDCoCAqIGluIGk5MTVfdm1hX2lzX2FjdGl2ZSgpIGFuZCBpOTE1X3ZtYV9zeW5jKCkgY2FsbHMu Cj4gK8KgwqAgKgo+ICvCoMKgICogSTkxNV9WTUFfRlJFRURfQklUOgo+ICvCoMKgICogVGhlIHBl cnNpc3RlbnQgdm1hIGlzIGJlaW5nIHJlbGVhc2VkIGJ5IFVNRCB2aWEgVk1fVU5CSU5EIGNhbGwu Cj4gK8KgwqAgKiBXaGlsZSByZWxlYXNpbmcgdGhlIHZtYSwgZG8gbm90IHRha2UgVk1fQklORCBs b2NrIGFzIFZNX1VOQklORAo+IGNhbGwKPiArwqDCoCAqIGFscmVhZHkgaG9sZHMgdGhlIGxvY2su Cj4gK8KgwqAgKi8KPiArI2RlZmluZSBJOTE1X1ZNQV9QRVJTSVNURU5UX0JJVMKgwqDCoMKgwqDC oMKgwqAxOQo+ICsjZGVmaW5lIEk5MTVfVk1BX1BVUkdFRF9CSVTCoMKgwqDCoDIwCj4gKyNkZWZp bmUgSTkxNV9WTUFfRlJFRURfQklUwqDCoMKgwqDCoDIxCj4gKwo+ICsjZGVmaW5lIEk5MTVfVk1B X1BFUlNJU1RFTlTCoMKgwqDCoCgoaW50KUJJVChJOTE1X1ZNQV9QRVJTSVNURU5UX0JJVCkpCj4g KyNkZWZpbmUKPiBJOTE1X1ZNQV9QVVJHRUTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCgoaW50KUJJVChJOTE1X1ZNQV9QVVJHRURfQklUKSkKPiArI2RlZmluZSBJOTE1X1ZNQV9GUkVF RMKgwqDCoMKgwqDCoMKgwqDCoCgoaW50KUJJVChJOTE1X1ZNQV9GUkVFRF9CSVQpKQo+ICsKPiDC oMKgwqDCoMKgwqDCoMKgc3RydWN0IGk5MTVfYWN0aXZlIGFjdGl2ZTsKPiDCoAo+IMKgI2RlZmlu ZSBJOTE1X1ZNQV9QQUdFU19CSUFTIDI0Cj4gQEAgLTI5Miw2ICszMTQsNyBAQCBzdHJ1Y3QgaTkx NV92bWEgewo+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgbGlzdF9oZWFkIHZtX2JpbmRfbGluazsg LyogTGluayBpbiBwZXJzaXN0ZW50IFZNQSBsaXN0Cj4gKi8KUHJvdGVjdGVkIGJ5Li4KCj4gwqDC oMKgwqDCoMKgwqDCoC8qIExpbmsgaW4gbm9uLXByaXZhdGUgcGVyc2lzdGVudCBWTUEgbGlzdCAq Lwo+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgbGlzdF9oZWFkIG5vbl9wcml2X3ZtX2JpbmRfbGlu azsKPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgbGlzdF9oZWFkIHZtX3JlYmluZF9saW5rOyAvKiBM aW5rIGluIHZtX3JlYmluZF9saXN0ICovCj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKgLyoqIFRpbWVs aW5lIGZlbmNlIGZvciB2bV9iaW5kIGNvbXBsZXRpb24gbm90aWZpY2F0aW9uICovCj4gwqDCoMKg wqDCoMKgwqDCoHN0cnVjdCB7Cgo=