From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id CD2B6C77B7F for ; Sat, 20 May 2023 09:52:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 69DEF900004; Sat, 20 May 2023 05:52:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6284C900003; Sat, 20 May 2023 05:52:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4ABF9900004; Sat, 20 May 2023 05:52:50 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 3C47F900003 for ; Sat, 20 May 2023 05:52:50 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 134E1A031C for ; Sat, 20 May 2023 09:52:50 +0000 (UTC) X-FDA: 80810169300.03.A734B25 Received: from mx6.didiglobal.com (mx6.didiglobal.com [111.202.70.123]) by imf05.hostedemail.com (Postfix) with SMTP id 496AB10000B for ; Sat, 20 May 2023 09:52:46 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf05.hostedemail.com: domain of chengkaitao@didiglobal.com designates 111.202.70.123 as permitted sender) smtp.mailfrom=chengkaitao@didiglobal.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684576368; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references; bh=MJ0KP7myZcSx6spkaAC6X0PUN2FydWHOVm5E8whV/qc=; b=PHZr0gWfsf9XMpARDcKmHfkDLg9o/O5t3MvsvUXI9+cDDtTYm5G6g66H3w/oehiNeEOACV LLzHitEXS96xgai+bAt7MPSPvBDbFbxr+uZcDW4CSWKL/iAEyl+2rohDYRt1RXIAK5pswM PLGHZ0nEbhNS99Az4CGJGuu114bgVRw= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf05.hostedemail.com: domain of chengkaitao@didiglobal.com designates 111.202.70.123 as permitted sender) smtp.mailfrom=chengkaitao@didiglobal.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684576368; a=rsa-sha256; cv=none; b=FtwpxppxO20WFUeFGFS7osqGQNVJfxbNe+51kVVLUrmzS5fnshBe/RSFr6L2pzAjOizG7I mG4EJwNav17Xh0yotNB4ZMwZtNvd/yTM9soqpnNUgw+qRzlRI0TQ6wxADe/2Fi0yl2t2/w hIOv2ZLYr2VMfb5IWj+zCSr/nMIqrDQ= Received: from mail.didiglobal.com (unknown [10.79.65.18]) by mx6.didiglobal.com (Maildata Gateway V2.8) with ESMTPS id C7BCF11008B42F; Sat, 20 May 2023 17:52:42 +0800 (CST) Received: from ZJY03-ACTMBX-05.didichuxing.com (10.79.71.35) by ZJY02-ACTMBX-06.didichuxing.com (10.79.65.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Sat, 20 May 2023 17:52:42 +0800 Received: from ZJY03-ACTMBX-05.didichuxing.com ([fe80::7d7d:d727:7a02:e909]) by ZJY03-ACTMBX-05.didichuxing.com ([fe80::7d7d:d727:7a02:e909%7]) with mapi id 15.01.2507.021; Sat, 20 May 2023 17:52:42 +0800 X-MD-Sfrom: chengkaitao@didiglobal.com X-MD-SrcIP: 10.79.65.18 From: =?utf-8?B?56iL5Z6y5rabIENoZW5na2FpdGFvIENoZW5n?= To: Yosry Ahmed CC: "tj@kernel.org" , "lizefan.x@bytedance.com" , "hannes@cmpxchg.org" , "corbet@lwn.net" , "mhocko@kernel.org" , "roman.gushchin@linux.dev" , "shakeelb@google.com" , "akpm@linux-foundation.org" , "brauner@kernel.org" , "muchun.song@linux.dev" , "viro@zeniv.linux.org.uk" , "zhengqi.arch@bytedance.com" , "ebiederm@xmission.com" , "Liam.Howlett@oracle.com" , "chengzhihao1@huawei.com" , "pilgrimtao@gmail.com" , "haolee.swjtu@gmail.com" , "yuzhao@google.com" , "willy@infradead.org" , "vasily.averin@linux.dev" , "vbabka@suse.cz" , "surenb@google.com" , "sfr@canb.auug.org.au" , "mcgrof@kernel.org" , "feng.tang@intel.com" , "cgroups@vger.kernel.org" , "linux-doc@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-fsdevel@vger.kernel.org" , "linux-mm@kvack.org" , David Rientjes Subject: Re: [PATCH v4 0/2] memcontrol: support cgroup level OOM protection Thread-Topic: [PATCH v4 0/2] memcontrol: support cgroup level OOM protection Thread-Index: AQHZiG6QYuA8nkfOmkSWHm0JCEvXOa9dgyoAgACXf4D//3xFAIAApWQAgAAs0QCAARSZgIACJwoAgAFL/4A= Date: Sat, 20 May 2023 09:52:42 +0000 Message-ID: In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.79.71.102] Content-Type: text/plain; charset="utf-8" Content-ID: <75E22E2AA0FC6644AABFE5FC321CE0D8@didichuxing.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Rspamd-Queue-Id: 496AB10000B X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: z9pn3eojncebp7wn76oywtbcj15k85z7 X-HE-Tag: 1684576366-336460 X-HE-Meta: U2FsdGVkX186gHbvcgPFQAweBpC98IIhv2ytuorD5VQSsW8Eug5mZE27t2H5z3RZwjWY0jtr0+Jh/oIcPT7rZxhEOSJ678vZ32RQOKIDk+3ALjzdBhSO6cvkT5dt/aaygAlSr4l9i6TMcbbS1jMXwfsZ1Wfbp8bDb8CuxRdhcL8nm3b5PjP3fo7yxP6cZMuWr9KPjXHX/YlLKmHkeSAtcMJhXDkW6gv8E/02DltP6Ae2MB4vuRZWhD9QMegY4KOJ1hOA4fkt1s+WvCh9dMpXjyOm63lYTbvtL9BWmFCL8dUBrjlvUyBEbshZzv2q1vw1MHksuXQJvAa2/3DCnZ0uS0ZSH72ryKkmOagoiMcR51qGHEYYV3jJy14R1qMDXRneq/vb9QJmhpNBocuyxLJz9Jz0AhGM8j4I5iuiKQrUbI5hj8z68MH488UT8mb2ksrFmpgt3iDIDS+cnhrQwjmu7Q+7ecTglwLMaz3lIAtVtKPVm43+9PWaMr6TKC3MDkVkY/uWoKlzzuqVqzQ91e6wGFmO8YrAFpI3j6Sx8n0d0QtsL0C2ndUjAKeAyMajF9hM3Hvlv/iskU90K7NRRSE1GjRV0HHkQ4lctJTDRtiuPWDR7FFJZhJ8RwD34+BNgCHDzXMWQH3bMdKfXR4HQVJ88HBFQRnuZUeGMO+KmsZLhukAdML0R4IfQgq8DIb/jm586lTEEiojl4zg4e1HtIbtt+RaDPOkYNYGeV/vJcPpQU8+M7RNnVltpBH98XkEX+z6QkIjOwUdTa2NWIoZ2LIeCqKTG5vixMQvDN9yFimNpHk8zQIx4Rx+V+k/sCfBfHeRuu/cFtqff62kKvBL2MH2pN13VnW15HOUnugXRUPY64wtghtlolwvO056k3C7T1WNQMz9kF8ycgXrIjcV3ImWnd8ehUJlTez3NMBzxGwZjLtlvZUdRDATLktU9mAL3daPHG77sz0JJtKOIcFwYLm jfBTin1e 5PGZZwdLWFidhvy43rAWVTxW6h5hsdbt9Vw4zOd/BaYLWoawv52Ae14qg2rhw/9Cby6LC8aoSC1BlV1KPSd1x+qLwSBnhtrPxXBqm0fZI9tki8WF+k+66eVaYCM7TyU5MjmnX8EAXF3u/vGLneNEFwxUkGVysD0MrFtPJogYax6uRzS/Nnp4LQWIg18n2b4CzCtWm+AaN5wbYh1B9R8kLrGjHeXjCoY74dXeqaqRmU0FE/gzKrJImshc8hfLp8JvRWLwAAf82nKSlIYcZJkk0uft+xF1POlx0uGDOO+O69jbHM6uHUuPuyv5u92xRvAt4WlyDDGdBP54fYZL3O91lfPlaFlUzOEcYxzVuKVxnv+ukgutzQx1jAZja2QLdPXxO6OwsbvDRjR8uaaU= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: QXQgMjAyMy0wNS0yMCAwNjowNDoyNiwgIllvc3J5IEFobWVkIiA8eW9zcnlhaG1lZEBnb29nbGUu Y29tPiB3cm90ZToNCj5PbiBXZWQsIE1heSAxNywgMjAyMyBhdCAxMDoxMuKAr1BNIOeoi+Wesua2 myBDaGVuZ2thaXRhbyBDaGVuZw0KPjxjaGVuZ2thaXRhb0BkaWRpZ2xvYmFsLmNvbT4gd3JvdGU6 DQo+Pg0KPj4gQXQgMjAyMy0wNS0xOCAwNDo0MjoxMiwgIllvc3J5IEFobWVkIiA8eW9zcnlhaG1l ZEBnb29nbGUuY29tPiB3cm90ZToNCj4+ID5PbiBXZWQsIE1heSAxNywgMjAyMyBhdCAzOjAx4oCv QU0g56iL5Z6y5rabIENoZW5na2FpdGFvIENoZW5nDQo+PiA+PGNoZW5na2FpdGFvQGRpZGlnbG9i YWwuY29tPiB3cm90ZToNCj4+ID4+DQo+PiA+PiBBdCAyMDIzLTA1LTE3IDE2OjA5OjUwLCAiWW9z cnkgQWhtZWQiIDx5b3NyeWFobWVkQGdvb2dsZS5jb20+IHdyb3RlOg0KPj4gPj4gPk9uIFdlZCwg TWF5IDE3LCAyMDIzIGF0IDE6MDHigK9BTSDnqIvlnrLmtpsgQ2hlbmdrYWl0YW8gQ2hlbmcNCj4+ ID4+ID48Y2hlbmdrYWl0YW9AZGlkaWdsb2JhbC5jb20+IHdyb3RlOg0KPj4gPj4gPj4NCj4+ID4+ DQo+PiA+PiBLaWxsaW5nIHByb2Nlc3NlcyBpbiBvcmRlciBvZiBtZW1vcnkgdXNhZ2UgY2Fubm90 IGVmZmVjdGl2ZWx5IHByb3RlY3QNCj4+ID4+IGltcG9ydGFudCBwcm9jZXNzZXMuIEtpbGxpbmcg cHJvY2Vzc2VzIGluIGEgdXNlci1kZWZpbmVkIHByaW9yaXR5IG9yZGVyDQo+PiA+PiB3aWxsIHJl c3VsdCBpbiBhIGxhcmdlIG51bWJlciBvZiBPT00gZXZlbnRzIGFuZCBzdGlsbCBub3QgYmVpbmcg YWJsZSB0bw0KPj4gPj4gcmVsZWFzZSBlbm91Z2ggbWVtb3J5LiBJIGhhdmUgYmVlbiBzZWFyY2hp bmcgZm9yIGEgYmFsYW5jZSBiZXR3ZWVuDQo+PiA+PiB0aGUgdHdvIG1ldGhvZHMsIHNvIHRoYXQg dGhlaXIgc2hvcnRjb21pbmdzIGFyZSBub3QgdG9vIG9idmlvdXMuDQo+PiA+PiBUaGUgYmlnZ2Vz dCBhZHZhbnRhZ2Ugb2YgbWVtY2cgaXMgaXRzIHRyZWUgdG9wb2xvZ3ksIGFuZCBJIGFsc28gaG9w ZQ0KPj4gPj4gdG8gbWFrZSBnb29kIHVzZSBvZiBpdC4NCj4+ID4NCj4+ID5Gb3IgdXMsIGtpbGxp bmcgcHJvY2Vzc2VzIGluIGEgdXNlci1kZWZpbmVkIHByaW9yaXR5IG9yZGVyIHdvcmtzIHdlbGwu DQo+PiA+DQo+PiA+SXQgc2VlbXMgbGlrZSB0byB0dW5lIG1lbW9yeS5vb20ucHJvdGVjdCB5b3Ug dXNlIG9vbV9raWxsX2luaGVyaXQgdG8NCj4+ID5vYnNlcnZlIGhvdyBtYW55IHRpbWVzIHRoaXMg bWVtY2cgaGFzIGJlZW4ga2lsbGVkIGR1ZSB0byBhIGxpbWl0IGluIGFuDQo+PiA+YW5jZXN0b3Iu IFdvdWxkbid0IGl0IGJlIG1vcmUgc3RyYWlnaHRmb3J3YXJkIHRvIHNwZWNpZnkgdGhlIHByaW9y aXR5DQo+PiA+b2YgcHJvdGVjdGlvbnMgYW1vbmcgbWVtY2dzPw0KPj4gPg0KPj4gPkZvciBleGFt cGxlLCBpZiB5b3Ugb2JzZXJ2ZSBtdWx0aXBsZSBtZW1jZ3MgYmVpbmcgT09NIGtpbGxlZCBkdWUg dG8NCj4+ID5oaXR0aW5nIGFuIGFuY2VzdG9yIGxpbWl0LCB5b3Ugd2lsbCBuZWVkIHRvIGRlY2lk ZSB3aGljaCBvZiB0aGVtIHRvDQo+PiA+aW5jcmVhc2UgbWVtb3J5Lm9vbS5wcm90ZWN0IGZvciBt b3JlLCBiYXNlZCBvbiB0aGVpciBpbXBvcnRhbmNlLg0KPj4gPk90aGVyd2lzZSwgaWYgeW91IGlu Y3JlYXNlIGFsbCBvZiB0aGVtLCB0aGVuIHRoZXJlIGlzIG5vIHBvaW50IGlmIGFsbA0KPj4gPnRo ZSBtZW1vcnkgaXMgcHJvdGVjdGVkLCByaWdodD8NCj4+DQo+PiBJZiBhbGwgbWVtb3J5IGluIG1l bWNnIGlzIHByb3RlY3RlZCwgaXRzIG1lYW5pbmcgaXMgc2ltaWxhciB0byB0aGF0IG9mIHRoZQ0K Pj4gaGlnaGVzdCBwcmlvcml0eSBtZW1jZyBpbiB5b3VyIGFwcHJvYWNoLCB3aGljaCBpcyB1bHRp bWF0ZWx5IGtpbGxlZCBvcg0KPj4gbmV2ZXIga2lsbGVkLg0KPg0KPk1ha2VzIHNlbnNlLiBJIGJl bGlldmUgaXQgZ2V0cyBhIGJpdCB0cmlja2llciB3aGVuIHlvdSB3YW50IHRvDQo+ZGVzY3JpYmUg cmVsYXRpdmUgb3JkZXJpbmcgYmV0d2VlbiBtZW1jZ3MgdXNpbmcgbWVtb3J5Lm9vbS5wcm90ZWN0 Lg0KDQpBY3R1YWxseSwgbXkgb3JpZ2luYWwgaW50ZW50aW9uIHdhcyBub3QgdG8gdXNlIG1lbW9y eS5vb20ucHJvdGVjdCB0bw0KYWNoaWV2ZSByZWxhdGl2ZSBvcmRlcmluZyBiZXR3ZWVuIG1lbWNn cywgaXQgd2FzIGp1c3QgYSBmZWF0dXJlIHRoYXQNCmhhcHBlbmVkIHRvIGJlIGFjaGlldmFibGUu IE15IGluaXRpYWwgaWRlYSB3YXMgdG8gcHJvdGVjdCBhIGNlcnRhaW4gDQpwcm9wb3J0aW9uIG9m IG1lbW9yeSBpbiBtZW1jZyBmcm9tIGJlaW5nIGtpbGxlZCwgYW5kIHRocm91Z2ggdGhlIA0KbWV0 aG9kLCBwaHlzaWNhbCBtZW1vcnkgY2FuIGJlIHJlYXNvbmFibHkgcGxhbm5lZC4gQm90aCB0aGUg cGh5c2ljYWwgDQptYWNoaW5lIG1hbmFnZXIgYW5kIGNvbnRhaW5lciBtYW5hZ2VyIGNhbiBhZGQg c29tZSB1bmltcG9ydGFudCANCmxvYWRzIGJleW9uZCB0aGUgb29tLnByb3RlY3QgbGltaXQsIGdy ZWF0bHkgaW1wcm92aW5nIHRoZSBvdmVyc29sZCANCnJhdGUgb2YgbWVtb3J5LiBJbiB0aGUgd29y c3QgY2FzZSBzY2VuYXJpbywgdGhlIHBoeXNpY2FsIG1hY2hpbmUgY2FuIA0KYWx3YXlzIHByb3Zp ZGUgYWxsIHRoZSBtZW1vcnkgbGltaXRlZCBieSBtZW1vcnkub29tLnByb3RlY3QgZm9yIG1lbWNn Lg0KDQpPbiB0aGUgb3RoZXIgaGFuZCwgSSBhbHNvIHdhbnQgdG8gYWNoaWV2ZSByZWxhdGl2ZSBv cmRlcmluZyBvZiBpbnRlcm5hbCANCnByb2Nlc3NlcyBpbiBtZW1jZywgbm90IGp1c3QgYSB1bmlm aWVkIG9yZGVyaW5nIG9mIGFsbCBtZW1jZ3Mgb24gDQpwaHlzaWNhbCBtYWNoaW5lcy4NCg0KPj4g PkluIHRoaXMgY2FzZSwgd291bGRuJ3QgaXQgYmUgZWFzaWVyIHRvIGp1c3QgdGVsbCB0aGUgT09N IGtpbGxlciB0aGUNCj4+ID5yZWxhdGl2ZSBwcmlvcml0eSBhbW9uZyB0aGUgbWVtY2dzPw0KPj4g Pg0KPj4gPj4NCj4+ID4+ID5JZiB0aGlzIGFwcHJvYWNoIHdvcmtzIGZvciB5b3UgKG9yIGFueSBv dGhlciBhdWRpZW5jZSksIHRoYXQncyBncmVhdCwNCj4+ID4+ID5JIGNhbiBzaGFyZSBtb3JlIGRl dGFpbHMgYW5kIHBlcmhhcHMgd2UgY2FuIHJlYWNoIHNvbWV0aGluZyB0aGF0IHdlDQo+PiA+PiA+ Y2FuIGJvdGggdXNlIDopDQo+PiA+Pg0KPj4gPj4gSWYgeW91IGhhdmUgYSBnb29kIGlkZWEsIHBs ZWFzZSBzaGFyZSBtb3JlIGRldGFpbHMgb3Igc2hvdyBzb21lIGNvZGUuDQo+PiA+PiBJIHdvdWxk IGdyZWF0bHkgYXBwcmVjaWF0ZSBpdA0KPj4gPg0KPj4gPlRoZSBjb2RlIHdlIGhhdmUgbmVlZHMg dG8gYmUgcmViYXNlZCBvbnRvIGEgZGlmZmVyZW50IHZlcnNpb24gYW5kDQo+PiA+Y2xlYW5lZCB1 cCBiZWZvcmUgaXQgY2FuIGJlIHNoYXJlZCwgYnV0IGVzc2VudGlhbGx5IGl0IGlzIGFzDQo+PiA+ ZGVzY3JpYmVkLg0KPj4gPg0KPj4gPihhKSBBbGwgcHJvY2Vzc2VzIGFuZCBtZW1jZ3Mgc3RhcnQg d2l0aCBhIGRlZmF1bHQgc2NvcmUuDQo+PiA+KGIpIFVzZXJzcGFjZSBjYW4gc3BlY2lmeSBzY29y ZXMgZm9yIG1lbWNncyBhbmQgcHJvY2Vzc2VzLiBBIGhpZ2hlcg0KPj4gPnNjb3JlIG1lYW5zIGhp Z2hlciBwcmlvcml0eSAoYWthIGxlc3Mgc2NvcmUgZ2V0cyBraWxsZWQgZmlyc3QpLg0KPj4gPihj KSBUaGUgT09NIGtpbGxlciBlc3NlbnRpYWxseSBsb29rcyBmb3IgdGhlIG1lbWNnIHdpdGggdGhl IGxvd2VzdA0KPj4gPnNjb3JlcyB0byBraWxsLCB0aGVuIGFtb25nIHRoaXMgbWVtY2csIGl0IGxv b2tzIGZvciB0aGUgcHJvY2VzcyB3aXRoDQo+PiA+dGhlIGxvd2VzdCBzY29yZS4gVGllcyBhcmUg YnJva2VuIGJhc2VkIG9uIHVzYWdlLCBzbyBlc3NlbnRpYWxseSBpZg0KPj4gPmFsbCBwcm9jZXNz ZXMvbWVtY2dzIGhhdmUgdGhlIGRlZmF1bHQgc2NvcmUsIHdlIGZhbGxiYWNrIHRvIHRoZQ0KPj4g PmN1cnJlbnQgT09NIGJlaGF2aW9yLg0KPj4NCj4+IElmIG1lbW9yeSBvdmVyc29sZCBpcyBzZXZl cmUsIGFsbCBwcm9jZXNzZXMgb2YgdGhlIGxvd2VzdCBwcmlvcml0eQ0KPj4gbWVtY2cgbWF5IGJl IGtpbGxlZCBiZWZvcmUgc2VsZWN0aW5nIG90aGVyIG1lbWNnIHByb2Nlc3Nlcy4NCj4+IElmIHRo ZXJlIGFyZSAxMDAwIHByb2Nlc3NlcyB3aXRoIGFsbW9zdCB6ZXJvIG1lbW9yeSB1c2FnZSBpbg0K Pj4gdGhlIGxvd2VzdCBwcmlvcml0eSBtZW1jZywgMTAwMCBpbnZhbGlkIGtpbGwgZXZlbnRzIG1h eSBvY2N1ci4NCj4+IFRvIGF2b2lkIHRoaXMgc2l0dWF0aW9uLCBldmVuIGZvciB0aGUgbG93ZXN0 IHByaW9yaXR5IG1lbWNnLA0KPj4gSSB3aWxsIGxlYXZlIGhpbSBhIHZlcnkgc21hbGwgb29tLnBy b3RlY3QgcXVvdGEuDQo+DQo+SSBjaGVja2VkIGludGVybmFsbHksIGFuZCB0aGlzIGlzIGluZGVl ZCBzb21ldGhpbmcgdGhhdCB3ZSBzZWUgZnJvbQ0KPnRpbWUgdG8gdGltZS4gV2UgdHJ5IHRvIGF2 b2lkIHRoYXQgd2l0aCB1c2Vyc3BhY2UgT09NIGtpbGxpbmcsIGJ1dA0KPml0J3Mgbm90IDEwMCUg ZWZmZWN0aXZlLg0KPg0KPj4NCj4+IElmIGZhY2VkIHdpdGggdHdvIG1lbWNncyB3aXRoIHRoZSBz YW1lIHRvdGFsIG1lbW9yeSB1c2FnZSBhbmQNCj4+IHByaW9yaXR5LCBtZW1jZyBBIGhhcyBtb3Jl IHByb2Nlc3NlcyBidXQgbGVzcyBtZW1vcnkgdXNhZ2UgcGVyDQo+PiBzaW5nbGUgcHJvY2Vzcywg YW5kIG1lbWNnIEIgaGFzIGZld2VyIHByb2Nlc3NlcyBidXQgbW9yZQ0KPj4gbWVtb3J5IHVzYWdl IHBlciBzaW5nbGUgcHJvY2VzcywgdGhlbiB3aGVuIE9PTSBvY2N1cnMsIHRoZQ0KPj4gcHJvY2Vz c2VzIGluIG1lbWNnIEIgbWF5IGNvbnRpbnVlIHRvIGJlIGtpbGxlZCB1bnRpbCBhbGwgcHJvY2Vz c2VzDQo+PiBpbiBtZW1jZyBCIGFyZSBraWxsZWQsIHdoaWNoIGlzIHVuZmFpciB0byBtZW1jZyBC IGJlY2F1c2UgbWVtY2cgQQ0KPj4gYWxzbyBvY2N1cGllcyBhIGxhcmdlIGFtb3VudCBvZiBtZW1v cnkuDQo+DQo+SSBiZWxpZXZlIGluIHRoaXMgY2FzZSB3ZSB3aWxsIGtpbGwgb25lIHByb2Nlc3Mg aW4gbWVtY2cgQiwgdGhlbiB0aGUNCj51c2FnZSBvZiBtZW1jZyBBIHdpbGwgYmVjb21lIGhpZ2hl ciwgc28gd2Ugd2lsbCBwaWNrIGEgcHJvY2VzcyBmcm9tDQo+bWVtY2cgQSBuZXh0Lg0KDQpJZiB0 aGVyZSBpcyBvbmx5IG9uZSBwcm9jZXNzIGluIG1lbWNnIEEgYW5kIGl0cyBtZW1vcnkgdXNhZ2Ug aXMgaGlnaGVyIA0KdGhhbiBhbnkgb3RoZXIgcHJvY2VzcyBpbiBtZW1jZyBCLCBidXQgdGhlIHRv dGFsIG1lbW9yeSB1c2FnZSBvZiANCm1lbWNnIEEgaXMgbG93ZXIgdGhhbiB0aGF0IG9mIG1lbWNn IEIuIEluIHRoaXMgY2FzZSwgaWYgdGhlIE9PTS1raWxsZXIgDQpzdGlsbCBjaG9vc2VzIHRoZSBw cm9jZXNzIGluIG1lbWNnIEEuIGl0IG1heSBiZSB1bmZhaXIgdG8gbWVtY2cgQS4NCg0KPj4gRG9z ZSB5b3VyIGFwcHJvYWNoIGhhdmUgdGhlc2UgaXNzdWVzPyBLaWxsaW5nIHByb2Nlc3NlcyBpbiBh DQo+PiB1c2VyLWRlZmluZWQgcHJpb3JpdHkgaXMgaW5kZWVkIGVhc2llciBhbmQgY2FuIHdvcmsg d2VsbCBpbiBtb3N0IGNhc2VzLA0KPj4gYnV0IEkgaGF2ZSBiZWVuIHRyeWluZyB0byBzb2x2ZSB0 aGUgY2FzZXMgdGhhdCBpdCBjYW5ub3QgY292ZXIuDQo+DQo+VGhlIGZpcnN0IGlzc3VlIGlzIHJl bGF0YWJsZSB3aXRoIG91ciBhcHByb2FjaC4gTGV0IG1lIGRpZyBtb3JlIGluZm8NCj5mcm9tIG91 ciBpbnRlcm5hbCB0ZWFtcyBhbmQgZ2V0IGJhY2sgdG8geW91IHdpdGggbW9yZSBkZXRhaWxzLg0K DQotLQ0KVGhhbmtzIGZvciB5b3VyIGNvbW1lbnQhDQpjaGVuZ2thaXRhbw0KDQoNCg==