Received: by 10.223.176.5 with SMTP id f5csp437020wra; Thu, 1 Feb 2018 23:55:42 -0800 (PST) X-Google-Smtp-Source: AH8x2267Y1cSkAUuo6FO8240Xzn7XqR7THBWqbm6Y5L9Yh+PXLNmj4001kMYU7tlWTKDfAZ2RsCc X-Received: by 10.99.112.75 with SMTP id a11mr32151613pgn.47.1517558142198; Thu, 01 Feb 2018 23:55:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517558142; cv=none; d=google.com; s=arc-20160816; b=lfdWkYLebaO0f4I6hCH+hr9xGKLUyDxcLSjb0C4uMtt+SQ8lnVYPXxCDQlCL3TcOkx r6nwRtXyotkAliOuxPRoE46s8jJ8uaieuAdTh2rrNgSXnXUbBJ0wgNVbRjtS9o24OVuh 11vKCUYTSdZ88L8iQylvR9lPaseQoFQ4MZFwaM46HbDvm7qJK4YWoVHOQUPQTE4MxnEm gbTBejxyhksIgFIy9Vqqtl9XGnvRsaRpdSrlC4Dkf5R6rR7AA//tZ/0XeJJg2Ok2jfPC v7T/J0/yLDpdwxAqeIRh+Sz7XVSPXa2LuaFfm0OXKWYpNX+KQqEKyVKeJ6uEQHHh5EOv 3J6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :spamdiagnosticmetadata:spamdiagnosticoutput:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=qSfKEzZfVrf7a71IYUjx6wWh2J4NgGbv3i8/wR+8fXk=; b=so8Mu/5e7k9NvSzxPgMwUE5JdIVi1HA0IxL4+acBVUvevhsrvhtczxSSPeg62X8HRR 5xHN9WVVsk6igza3VwmJnAlVUueZl52m0Zx7/kytm8aphKTwnw40blNx8WqKW7ixW/JL rN7gbqPSZDue+8QhoIOdIdLr1FdkJBSYEUITXjRO9JIl1yM599IW7gxjVkGKBUf0wqow jrOzWPCrQwS4CCLazlzPag3ethsY4WpxBBXsCADWln3d65kF4cQVoTg6tOSXGhPggih0 C04UXhWZIONYYZXm5fgFJLvLirJ7jDK5H8rhiRehqWzvhq9LzncXzobqZeRuBi+bCUJV 20Xg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector1-amd-com header.b=U3/iSq2e; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s13-v6si1245509plp.787.2018.02.01.23.55.27; Thu, 01 Feb 2018 23:55:42 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector1-amd-com header.b=U3/iSq2e; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751735AbeBBHyh (ORCPT + 99 others); Fri, 2 Feb 2018 02:54:37 -0500 Received: from mail-bn3nam01on0084.outbound.protection.outlook.com ([104.47.33.84]:3584 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750915AbeBBHyc (ORCPT ); Fri, 2 Feb 2018 02:54:32 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=qSfKEzZfVrf7a71IYUjx6wWh2J4NgGbv3i8/wR+8fXk=; b=U3/iSq2e/6+tMQiCoSeRbkYJNGXmJC3Ro5/2+DDkO77LfAiFezaKQMO2VWFx1zsWhCOm/y25eLmdvqIzYU/4uAysyEMr+B8Vx8e0x58wKYWxFluR9gLrHDtJakugV/xgziGnkp7fEOUh0LZJA9+QehYkcc7ydSff7rR/raVtrzw= Received: from MWHPR1201MB0127.namprd12.prod.outlook.com (10.174.98.142) by MWHPR1201MB2541.namprd12.prod.outlook.com (10.172.96.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Fri, 2 Feb 2018 07:54:29 +0000 Received: from MWHPR1201MB0127.namprd12.prod.outlook.com ([10.174.98.142]) by MWHPR1201MB0127.namprd12.prod.outlook.com ([10.174.98.142]) with mapi id 15.20.0444.021; Fri, 2 Feb 2018 07:54:28 +0000 From: "He, Roger" To: "Koenig, Christian" , "Zhou, David(ChunMing)" , "dri-devel@lists.freedesktop.org" CC: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" Subject: RE: [PATCH] mm/swap: add function get_total_swap_pages to expose total_swap_pages Thread-Topic: [PATCH] mm/swap: add function get_total_swap_pages to expose total_swap_pages Thread-Index: AQHTmNtYoBUw/9kRPkGbswRNbnupYaONlMmAgAANf7CAAAKaAIABYvbAgAApVyCAAYFAEIAAD56AgAAAvMA= Date: Fri, 2 Feb 2018 07:54:28 +0000 Message-ID: References: <1517214582-30880-1-git-send-email-Hongbo.He@amd.com> <9ecba5f4-3d4c-0179-bf03-f89c436cff6b@amd.com> <540b5f5b-5670-5653-70de-4ff42e898550@amd.com> In-Reply-To: <540b5f5b-5670-5653-70de-4ff42e898550@amd.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Hongbo.He@amd.com; x-originating-ip: [116.228.147.241] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;MWHPR1201MB2541;7:o/IobO0ogxs4TUtrb77CbS6JDtBLA6SzdCRZ6UyNLmvyp3Bml5PTyXPAGpal3ACv7A88XqAjSTNcZEPkcrdGw+jikDCdl5z/N4Y+wBkKCnMpEWXCMlHntiIh6mjKKWjhu2NAmzw1xecI9aIcascAA904DezWLYzw5MQMeI2CtzMi+PlJFYDcTPUcJD7gUOH91rbblzcz/AGpJx0nhcBf4/MAKchH37Cf/9h4YjgiM9nzGRPMBbkyLum+C0hC22Sm;20:chCSbzrqFAiltCjEBDWwUm8UQI1KNW7pR4n0jqbzblj1Q3mTpZPk0Y+Kd0EY1OPNhwNakU70qCGDdInlMAAY1iQyHP1xAc1PPBKruobU5yT7/mfO9iHKqVhp0UdMz16ss20wnrsOpgKUOv6M3ZMTB5bW/umBSA/UcbR0FsF0hLtTY9Fe1sgbr0wfBvY2Qj5+KA2QOeNQ34J1P1o9ei2w+d+I92QYEBTDbeKJJSz0+vm7YguU2AQcX0QNyTR5CRKx x-ms-exchange-antispam-srfa-diagnostics: SSOS;SSOR; x-forefront-antispam-report: SFV:SKI;SCL:-1;SFV:NSPM;SFS:(10009020)(39860400002)(396003)(376002)(39380400002)(346002)(366004)(189003)(199004)(13464003)(2501003)(7696005)(76176011)(8936002)(14454004)(5660300001)(102836004)(3660700001)(97736004)(2950100002)(59450400001)(6506007)(4326008)(53546011)(86362001)(93886005)(110136005)(54906003)(6246003)(2900100001)(8676002)(81166006)(316002)(3280700002)(81156014)(53936002)(68736007)(6436002)(106356001)(105586002)(99286004)(77096007)(6306002)(9686003)(478600001)(26005)(966005)(33656002)(72206003)(55016002)(7736002)(66066001)(25786009)(229853002)(74316002)(3846002)(6116002)(2906002)(305945005);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR1201MB2541;H:MWHPR1201MB0127.namprd12.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 314f2828-e2fa-42b1-821c-08d56a122fa8 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(3008032)(2017052603307)(7153060)(7193020);SRVR:MWHPR1201MB2541; x-ms-traffictypediagnostic: MWHPR1201MB2541: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(9452136761055)(767451399110)(217544274631240); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6040501)(2401047)(5005006)(8121501046)(3231101)(2400082)(944501161)(3002001)(93006095)(93001095)(10201501046)(6055026)(6041288)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123558120)(20161123564045)(6072148)(201708071742011);SRVR:MWHPR1201MB2541;BCL:0;PCL:0;RULEID:;SRVR:MWHPR1201MB2541; x-forefront-prvs: 05715BE7FD received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: fLDDTLm+KXJdh6l+mCs6V/4VXBQhpE4uPN4lKjmIsOAXvKNZTD/Rlpu7TCm+pmhpm+iSqoFabvi5ZJAolj4T+w== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 314f2828-e2fa-42b1-821c-08d56a122fa8 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2018 07:54:28.2915 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1201MB2541 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org CUNhbiB5b3UgdHJ5IHRvIHVzZSBhIGZpeGVkIGxpbWl0IGxpa2UgSSBzdWdnZXN0ZWQgb25jZSBt b3JlPw0KCUUuZy4ganVzdCBzdG9wIHN3YXBwaW5nIGlmIGdldF9ucl9zd2FwX3BhZ2VzKCkgPCAy NTZNQi4NCg0KTWF5YmUgeW91IG1pc3NlZCBwcmV2aW91cyBtYWlsLiBJIGV4cGxhaW4gYWdhaW4g aGVyZS4NClNldCB0aGUgdmFsdWUgYXMgMjU2TUIgbm90IHdvcmsgb24gbXkgcGxhdGZvcm0uICBN eSBtYWNoaW5lIGhhcyA4R0Igc3lzdGVtIG1lbW9yeSwgYW5kIDhHQiBzd2FwIGRpc2suDQpPbiBt eSBtYWNoaW5lLCBzZXQgaXQgYXMgNEcgY2FuIHdvcmsuDQpCdXQgNEcgYWxzbyBub3Qgd29yayBv biB0ZXN0IG1hY2hpbmUgd2l0aCAxNkdCIHN5c3RlbSBtZW1vcnkgJiA4R0Igc3dhcCBkaXNrLg0K DQoNClRoYW5rcw0KUm9nZXIoSG9uZ2JvLkhlKQ0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KRnJvbTogS29lbmlnLCBDaHJpc3RpYW4gDQpTZW50OiBGcmlkYXksIEZlYnJ1YXJ5IDAyLCAy MDE4IDM6NDYgUE0NClRvOiBIZSwgUm9nZXIgPEhvbmdiby5IZUBhbWQuY29tPjsgWmhvdSwgRGF2 aWQoQ2h1bk1pbmcpIDxEYXZpZDEuWmhvdUBhbWQuY29tPjsgZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZw0KQ2M6IGxpbnV4LW1tQGt2YWNrLm9yZzsgbGludXgta2VybmVsQHZnZXIua2Vy bmVsLm9yZw0KU3ViamVjdDogUmU6IFtQQVRDSF0gbW0vc3dhcDogYWRkIGZ1bmN0aW9uIGdldF90 b3RhbF9zd2FwX3BhZ2VzIHRvIGV4cG9zZSB0b3RhbF9zd2FwX3BhZ2VzDQoNCkNhbiB5b3UgdHJ5 IHRvIHVzZSBhIGZpeGVkIGxpbWl0IGxpa2UgSSBzdWdnZXN0ZWQgb25jZSBtb3JlPw0KDQpFLmcu IGp1c3Qgc3RvcCBzd2FwcGluZyBpZiBnZXRfbnJfc3dhcF9wYWdlcygpIDwgMjU2TUIuDQoNClJl Z2FyZHMsDQpDaHJpc3RpYW4uDQoNCkFtIDAyLjAyLjIwMTggdW0gMDc6NTcgc2NocmllYiBIZSwg Um9nZXI6DQo+IAlVc2UgdGhlIGxpbWl0IGFzIHRvdGFsIHJhbSoxLzIgc2VlbXMgd29yayB2ZXJ5 IHdlbGwuDQo+IAlObyBPT00gYWx0aG91Z2ggc3dhcCBkaXNrIHJlYWNoZXMgZnVsbCBhdCBwZWFr IGZvciBwaWdsaXQgdGVzdC4NCj4NCj4gQnV0IGZvciB0aGlzIGFwcHJvYWNoLCBEYXZpZCBub3Rp Y2VkIHRoYXQgaGFzIGFuIG9idmlvdXMgZGVmZWN0Lg0KPiBGb3IgZXhhbXBsZSwgIGlmIHRoZSBw bGF0Zm9ybSBoYXMgMzJHIHN5c3RlbSBtZW1vcnksIDhHIHN3YXAgZGlzay4NCj4gMS8yICogcmFt ID0gMTZHIHdoaWNoIGlzIGJpZ2dlciB0aGFuIHN3YXAgZGlzaywgc28gbm8gc3dhcCBmb3IgVFRN IGlzIGFsbG93ZWQgYXQgYWxsLg0KPiBGb3Igbm93IHdlIHdvcmsgb3V0IGFuIGltcHJvdmVkIHZl cnNpb24gYmFzZWQgb24gZ2V0X25yX3N3YXBfcGFnZXMoKS4NCj4gR29pbmcgdG8gc2VuZCBvdXQg bGF0ZXIuDQo+DQo+IFRoYW5rcw0KPiBSb2dlcihIb25nYm8uSGUpDQo+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+IEZyb206IEhlLCBSb2dlcg0KPiBTZW50OiBUaHVyc2RheSwgRmVicnVh cnkgMDEsIDIwMTggNDowMyBQTQ0KPiBUbzogS29lbmlnLCBDaHJpc3RpYW4gPENocmlzdGlhbi5L b2VuaWdAYW1kLmNvbT47IFpob3UsIA0KPiBEYXZpZChDaHVuTWluZykgPERhdmlkMS5aaG91QGFt ZC5jb20+OyBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+IENjOiBsaW51eC1tbUBr dmFjay5vcmc7IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7ICdIZSwgUm9nZXInIA0KPiA8 SG9uZ2JvLkhlQGFtZC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbUEFUQ0hdIG1tL3N3YXA6IGFkZCBm dW5jdGlvbiBnZXRfdG90YWxfc3dhcF9wYWdlcyB0byANCj4gZXhwb3NlIHRvdGFsX3N3YXBfcGFn ZXMNCj4NCj4gSnVzdCBub3csIEkgdHJpZWQgd2l0aCBmaXhlZCBsaW1pdC4gIEJ1dCBub3Qgd29y ayBhbHdheXMuDQo+IEZvciBleGFtcGxlOiBzZXQgdGhlIGxpbWl0IGFzIDRHQiBvbiBteSBwbGF0 Zm9ybSB3aXRoIDhHQiBzeXN0ZW0gbWVtb3J5LCBpdCBjYW4gcGFzcy4NCj4gQnV0IHdoZW4gcnVu IHdpdGggcGxhdGZvcm0gd2l0aCAxNkdCIHN5c3RlbSBtZW1vcnksIGl0IGZhaWxlZCBzaW5jZSBP T00uDQo+DQo+IEFuZCBJIGd1ZXNzIGl0IGFsc28gZGVwZW5kcyBvbiBhcHAncyBiZWhhdmlvci4N Cj4gSSBtZWFuIHNvbWUgYXBwcyAgbWFrZSBPUyB0byB1c2UgbW9yZSBzd2FwIHNwYWNlIGFzIHdl bGwuDQo+DQo+IFRoYW5rcw0KPiBSb2dlcihIb25nYm8uSGUpDQo+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+IEZyb206IGRyaS1kZXZlbCBbbWFpbHRvOmRyaS1kZXZlbC1ib3VuY2VzQGxp c3RzLmZyZWVkZXNrdG9wLm9yZ10gT24gDQo+IEJlaGFsZiBPZiBIZSwgUm9nZXINCj4gU2VudDog VGh1cnNkYXksIEZlYnJ1YXJ5IDAxLCAyMDE4IDE6NDggUE0NCj4gVG86IEtvZW5pZywgQ2hyaXN0 aWFuIDxDaHJpc3RpYW4uS29lbmlnQGFtZC5jb20+OyBaaG91LCANCj4gRGF2aWQoQ2h1bk1pbmcp IDxEYXZpZDEuWmhvdUBhbWQuY29tPjsgZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0K PiBDYzogbGludXgtbW1Aa3ZhY2sub3JnOyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnDQo+ IFN1YmplY3Q6IFJFOiBbUEFUQ0hdIG1tL3N3YXA6IGFkZCBmdW5jdGlvbiBnZXRfdG90YWxfc3dh cF9wYWdlcyB0byANCj4gZXhwb3NlIHRvdGFsX3N3YXBfcGFnZXMNCj4NCj4gCUJ1dCB3aGF0IHdl IGNvdWxkIGRvIGlzIHRvIHJlbHkgb24gYSBmaXhlZCBsaW1pdCBsaWtlIHRoZSBJbnRlbCBkcml2 ZXIgZG9lcyBhbmQgSSBzdWdnZXN0ZWQgYmVmb3JlLg0KPiAJRS5nLiBkb24ndCBjb3B5IGFueXRo aW5nIGludG8gYSBzaG1lbWZpbGUgd2hlbiB0aGVyZSBpcyBvbmx5IHggTUIgb2Ygc3dhcCBzcGFj ZSBsZWZ0Lg0KPg0KPiBIZXJlIEkgdGhpbmsgd2UgY2FuIGRvIGl0IGZ1cnRoZXIsIGxldCB0aGUg bGltaXQgdmFsdWUgc2NhbGluZyB3aXRoIHRvdGFsIHN5c3RlbSBtZW1vcnkuDQo+IEZvciBleGFt cGxlOiB0b3RhbCBzeXN0ZW0gbWVtb3J5ICogMS8yLg0KPiBJZiB0aGF0IGl0IHdpbGwgbWF0Y2gg dGhlIHBsYXRmb3JtIGNvbmZpZ3VyYXRpb24gYmV0dGVyLg0KPg0KPiAJUm9nZXIgY2FuIHlvdSB0 ZXN0IHRoYXQgYXBwcm9hY2ggb25jZSBtb3JlIHdpdGggeW91ciBmaXggZm9yIHRoZSBPT00gaXNz dWVzIGluIHRoZSBwYWdlIGZhdWx0IGhhbmRsZXI/DQo+DQo+IFN1cmUuIFVzZSB0aGUgbGltaXQg YXMgdG90YWwgcmFtKjEvMiBzZWVtcyB3b3JrIHZlcnkgd2VsbC4NCj4gTm8gT09NIGFsdGhvdWdo IHN3YXAgZGlzayByZWFjaGVzIGZ1bGwgYXQgcGVhayBmb3IgcGlnbGl0IHRlc3QuDQo+IEkgc3Bl Y3VsYXRlIHRoaXMgY2FzZSBoYXBwZW5zIGJ1dCBubyBPT00gYmVjYXVzZToNCj4NCj4gYS4gcnVu IGEgd2hpbGUsIHN3YXAgZGlzayBiZSB1c2VkIGNsb3NlIHRvIDEvMiogdG90YWwgc2l6ZSBhbmQg YnV0IG5vdCBvdmVyIDEvMiAqIHRvdGFsLg0KPiBiLiBhbGwgc3Vic2VxdWVudCBzd2FwcGVkIHBh Z2VzIHN0YXkgaW4gc3lzdGVtIG1lbW9yeSB1bnRpbCBubyBzcGFjZSB0aGVyZS4NCj4gICAgICAg VGhlbiB0aGUgc3dhcHBlZCBwYWdlcyBpbiBzaG1lbSBiZSBmbHVzaGVkIGludG8gc3dhcCBkaXNr LiBBbmQgcHJvYmFibHkgT1MgYWxzbyBuZWVkIHNvbWUgc3dhcCBzcGFjZS4NCj4gICAgICAgRm9y IHRoaXMgY2FzZSwgaXQgaXMgZWFzeSB0byBnZXQgZnVsbCBmb3Igc3dhcCBkaXNrLg0KPiBjLiBi dXQgYmVjYXVzZSBub3cgZnJlZSBzd2FwIHNpemUgPCAxLzIgKiB0b3RhbCwgc28gbm8gc3dhcCBv dXQgaGFwcGVuICBhZnRlciB0aGF0Lg0KPiAgICAgIEFuZCBhdCBsZWFzdCAxLzQqIHN5c3RlbSBt ZW1vcnkgd2lsbCBsZWZ0IGJlY2F1c2UgYmVsb3cgY2hlY2sgaW4gdHRtX21lbV9nbG9iYWxfcmVz ZXJ2ZSB3aWxsIGVuc3VyZSB0aGF0Lg0KPiAJaWYgKHpvbmUtPnVzZWRfbWVtID4gbGltaXQpDQo+ IAkJCWdvdG8gb3V0X3VubG9jazsNCj4gICAgICANCj4gVGhhbmtzDQo+IFJvZ2VyKEhvbmdiby5I ZSkNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogS29lbmlnLCBDaHJpc3Rp YW4NCj4gU2VudDogV2VkbmVzZGF5LCBKYW51YXJ5IDMxLCAyMDE4IDQ6MTMgUE0NCj4gVG86IEhl LCBSb2dlciA8SG9uZ2JvLkhlQGFtZC5jb20+OyBaaG91LCBEYXZpZChDaHVuTWluZykgDQo+IDxE YXZpZDEuWmhvdUBhbWQuY29tPjsgZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KPiBD YzogbGludXgtbW1Aa3ZhY2sub3JnOyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnDQo+IFN1 YmplY3Q6IFJlOiBbUEFUQ0hdIG1tL3N3YXA6IGFkZCBmdW5jdGlvbiBnZXRfdG90YWxfc3dhcF9w YWdlcyB0byANCj4gZXhwb3NlIHRvdGFsX3N3YXBfcGFnZXMNCj4NCj4gWWVhaCwgaW5kZWVkLiBC dXQgd2hhdCB3ZSBjb3VsZCBkbyBpcyB0byByZWx5IG9uIGEgZml4ZWQgbGltaXQgbGlrZSB0aGUg SW50ZWwgZHJpdmVyIGRvZXMgYW5kIEkgc3VnZ2VzdGVkIGJlZm9yZS4NCj4NCj4gRS5nLiBkb24n dCBjb3B5IGFueXRoaW5nIGludG8gYSBzaG1lbWZpbGUgd2hlbiB0aGVyZSBpcyBvbmx5IHggTUIg b2Ygc3dhcCBzcGFjZSBsZWZ0Lg0KPg0KPiBSb2dlciBjYW4geW91IHRlc3QgdGhhdCBhcHByb2Fj aCBvbmNlIG1vcmUgd2l0aCB5b3VyIGZpeCBmb3IgdGhlIE9PTSBpc3N1ZXMgaW4gdGhlIHBhZ2Ug ZmF1bHQgaGFuZGxlcj8NCj4NCj4gVGhhbmtzLA0KPiBDaHJpc3RpYW4uDQo+DQo+IEFtIDMxLjAx LjIwMTggdW0gMDk6MDggc2NocmllYiBIZSwgUm9nZXI6DQo+PiAJSSB0aGluayB0aGlzIHBhdGNo IGlzbid0IG5lZWQgYXQgYWxsLiBZb3UgY2FuIGRpcmVjdGx5IHJlYWQgdG90YWxfc3dhcF9wYWdl cyB2YXJpYWJsZSBpbiBUVE0uDQo+Pg0KPj4gQmVjYXVzZSB0aGUgdmFyaWFibGUgaXMgbm90IGV4 cG9ydGVkIGJ5IEVYUE9SVF9TWU1CT0xfR1BMLiBTbyBkaXJlY3QgdXNpbmcgd2lsbCByZXN1bHQg aW46DQo+PiAiV0FSTklORzogInRvdGFsX3N3YXBfcGFnZXMiIFtkcml2ZXJzL2dwdS9kcm0vdHRt L3R0bS5rb10gdW5kZWZpbmVkISIuDQo+Pg0KPj4gVGhhbmtzDQo+PiBSb2dlcihIb25nYm8uSGUp DQo+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4gRnJvbTogZHJpLWRldmVsIFttYWls dG86ZHJpLWRldmVsLWJvdW5jZXNAbGlzdHMuZnJlZWRlc2t0b3Aub3JnXSBPbiANCj4+IEJlaGFs ZiBPZiBDaHVubWluZyBaaG91DQo+PiBTZW50OiBXZWRuZXNkYXksIEphbnVhcnkgMzEsIDIwMTgg MzoxNSBQTQ0KPj4gVG86IEhlLCBSb2dlciA8SG9uZ2JvLkhlQGFtZC5jb20+OyBkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+PiBDYzogbGludXgtbW1Aa3ZhY2sub3JnOyBsaW51eC1r ZXJuZWxAdmdlci5rZXJuZWwub3JnOyBLb2VuaWcsIA0KPj4gQ2hyaXN0aWFuIDxDaHJpc3RpYW4u S29lbmlnQGFtZC5jb20+DQo+PiBTdWJqZWN0OiBSZTogW1BBVENIXSBtbS9zd2FwOiBhZGQgZnVu Y3Rpb24gZ2V0X3RvdGFsX3N3YXBfcGFnZXMgdG8gDQo+PiBleHBvc2UgdG90YWxfc3dhcF9wYWdl cw0KPj4NCj4+IEhpIFJvZ2VyLA0KPj4NCj4+IEkgdGhpbmsgdGhpcyBwYXRjaCBpc24ndCBuZWVk IGF0IGFsbC4gWW91IGNhbiBkaXJlY3RseSByZWFkIHRvdGFsX3N3YXBfcGFnZXMgdmFyaWFibGUg aW4gVFRNLiBTZWUgdGhlIGNvbW1lbnQ6DQo+Pg0KPj4gLyogcHJvdGVjdGVkIHdpdGggc3dhcF9s b2NrLiByZWFkaW5nIGluIHZtX3N3YXBfZnVsbCgpIGRvZXNuJ3QgbmVlZCANCj4+IGxvY2sgKi8g bG9uZyB0b3RhbF9zd2FwX3BhZ2VzOw0KPj4NCj4+IHRoZXJlIGFyZSBtYW55IHBsYWNlcyB1c2lu ZyBpdCBkaXJlY3RseSwgeW91IGp1c3QgY291bGRuJ3QgY2hhbmdlIGl0cyB2YWx1ZS4gUmVhZGlu ZyBpdCBkb2Vzbid0IG5lZWQgbG9jay4NCj4+DQo+Pg0KPj4gUmVnYXJkcywNCj4+DQo+PiBEYXZp ZCBaaG91DQo+Pg0KPj4NCj4+IE9uIDIwMTjlubQwMeaciDI55pelIDE2OjI5LCBSb2dlciBIZSB3 cm90ZToNCj4+PiB0dG0gbW9kdWxlIG5lZWRzIGl0IHRvIGRldGVybWluZSBpdHMgaW50ZXJuYWwg cGFyYW1ldGVyIHNldHRpbmcuDQo+Pj4NCj4+PiBTaWduZWQtb2ZmLWJ5OiBSb2dlciBIZSA8SG9u Z2JvLkhlQGFtZC5jb20+DQo+Pj4gLS0tDQo+Pj4gICAgIGluY2x1ZGUvbGludXgvc3dhcC5oIHwg IDYgKysrKysrDQo+Pj4gICAgIG1tL3N3YXBmaWxlLmMgICAgICAgIHwgMTUgKysrKysrKysrKysr KysrDQo+Pj4gICAgIDIgZmlsZXMgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKQ0KPj4+DQo+Pj4g ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc3dhcC5oIGIvaW5jbHVkZS9saW51eC9zd2FwLmgg aW5kZXggDQo+Pj4gYzJiODEyOC4uNzA4ZDY2ZiAxMDA2NDQNCj4+PiAtLS0gYS9pbmNsdWRlL2xp bnV4L3N3YXAuaA0KPj4+ICsrKyBiL2luY2x1ZGUvbGludXgvc3dhcC5oDQo+Pj4gQEAgLTQ4NCw2 ICs0ODQsNyBAQCBleHRlcm4gaW50IHRyeV90b19mcmVlX3N3YXAoc3RydWN0IHBhZ2UgKik7DQo+ Pj4gICAgIHN0cnVjdCBiYWNraW5nX2Rldl9pbmZvOw0KPj4+ICAgICBleHRlcm4gaW50IGluaXRf c3dhcF9hZGRyZXNzX3NwYWNlKHVuc2lnbmVkIGludCB0eXBlLCB1bnNpZ25lZCBsb25nIG5yX3Bh Z2VzKTsNCj4+PiAgICAgZXh0ZXJuIHZvaWQgZXhpdF9zd2FwX2FkZHJlc3Nfc3BhY2UodW5zaWdu ZWQgaW50IHR5cGUpOw0KPj4+ICtleHRlcm4gbG9uZyBnZXRfdG90YWxfc3dhcF9wYWdlcyh2b2lk KTsNCj4+PiAgICAgDQo+Pj4gICAgICNlbHNlIC8qIENPTkZJR19TV0FQICovDQo+Pj4gICAgIA0K Pj4+IEBAIC01MTYsNiArNTE3LDExIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzaG93X3N3YXBfY2Fj aGVfaW5mbyh2b2lkKQ0KPj4+ICAgICB7DQo+Pj4gICAgIH0NCj4+PiAgICAgDQo+Pj4gK2xvbmcg Z2V0X3RvdGFsX3N3YXBfcGFnZXModm9pZCkNCj4+PiArew0KPj4+ICsJcmV0dXJuIDA7DQo+Pj4g K30NCj4+PiArDQo+Pj4gICAgICNkZWZpbmUgZnJlZV9zd2FwX2FuZF9jYWNoZShlKSAoeyhpc19t aWdyYXRpb25fZW50cnkoZSkgfHwgaXNfZGV2aWNlX3ByaXZhdGVfZW50cnkoZSkpO30pDQo+Pj4g ICAgICNkZWZpbmUgc3dhcGNhY2hlX3ByZXBhcmUoZSkgKHsoaXNfbWlncmF0aW9uX2VudHJ5KGUp IHx8DQo+Pj4gaXNfZGV2aWNlX3ByaXZhdGVfZW50cnkoZSkpO30pDQo+Pj4gICAgIA0KPj4+IGRp ZmYgLS1naXQgYS9tbS9zd2FwZmlsZS5jIGIvbW0vc3dhcGZpbGUuYyBpbmRleCAzMDc0YjAyLi5h MDA2MmViDQo+Pj4gMTAwNjQ0DQo+Pj4gLS0tIGEvbW0vc3dhcGZpbGUuYw0KPj4+ICsrKyBiL21t L3N3YXBmaWxlLmMNCj4+PiBAQCAtOTgsNiArOTgsMjEgQEAgc3RhdGljIGF0b21pY190IHByb2Nf cG9sbF9ldmVudCA9IEFUT01JQ19JTklUKDApOw0KPj4+ICAgICANCj4+PiAgICAgYXRvbWljX3Qg bnJfcm90YXRlX3N3YXAgPSBBVE9NSUNfSU5JVCgwKTsNCj4+PiAgICAgDQo+Pj4gKy8qDQo+Pj4g KyAqIGV4cG9zZSB0aGlzIHZhbHVlIGZvciBvdGhlcnMgdXNlICAqLyBsb25nIA0KPj4+ICtnZXRf dG90YWxfc3dhcF9wYWdlcyh2b2lkKSB7DQo+Pj4gKwlsb25nIHJldDsNCj4+PiArDQo+Pj4gKwlz cGluX2xvY2soJnN3YXBfbG9jayk7DQo+Pj4gKwlyZXQgPSB0b3RhbF9zd2FwX3BhZ2VzOw0KPj4+ ICsJc3Bpbl91bmxvY2soJnN3YXBfbG9jayk7DQo+Pj4gKw0KPj4+ICsJcmV0dXJuIHJldDsNCj4+ PiArfQ0KPj4+ICtFWFBPUlRfU1lNQk9MX0dQTChnZXRfdG90YWxfc3dhcF9wYWdlcyk7DQo+Pj4g Kw0KPj4+ICAgICBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGNoYXIgc3dhcF9jb3VudCh1bnNpZ25l ZCBjaGFyIGVudCkNCj4+PiAgICAgew0KPj4+ICAgICAJcmV0dXJuIGVudCAmIH5TV0FQX0hBU19D QUNIRTsJLyogbWF5IGluY2x1ZGUgU1dBUF9IQVNfQ09OVCBmbGFnICovDQo+PiBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPj4gZHJpLWRldmVsIG1haWxp bmcgbGlzdA0KPj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KPj4gaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwNCj4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gZHJpLWRldmVsIG1h aWxpbmcgbGlzdA0KPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+IGh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsDQoNCg==