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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 176D3E95A91 for ; Mon, 9 Oct 2023 14:44:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=5K2l/4lMM9mzIeX4TlKlWfCulYa45SWISXeIbKGrMRM=; b=DuGc1059IatEUW lL+PBrR7YJLDMDN5juZf1ZKIjGMLgAV2qlY/mwNN8qOMtTSvik810kSWD2hRAftk88XYY/In7s/84 M3whPSotwbqWiA3xFrqMMoNPeD0DG6+b3B12vZeyUhxHt3jaxWXUqnicmLHgDz/rfNXwiyzH+4yHt sXfADV8J4L/em3f8ML94D2h/IN+3vkFed2QiRNZLDOODhY9XPCWFlHBNbOj7k0JBlgMmUxjg8rGE3 urNIrM81ZHSJozY51AtyKsdDoonGvjUyL9BRPVm0dAlbpgiCZKYcL7K5twmHNO9rU8qEC2MWr1IIY cX7SSZ9se4U34YFL9E5Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qprTu-00AxVY-2T; Mon, 09 Oct 2023 14:43:38 +0000 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qprTr-00AxUX-2T for linux-arm-kernel@lists.infradead.org; Mon, 09 Oct 2023 14:43:37 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696862614; h=from:from: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:references; bh=obL8b5QO0r5nb46hgjY2kK9LhSik8vXkxCpK9YUEIMo=; b=aj6DZli96IvUkLwYfsikMbISYqlxWn9TdtOsp7J3FYJCqxhTb7IJYMeCDPeTGs26DJZDyM ZRpA4L9A9a5X8fBtgHnXWTMs1dX8jkAqvoqYmP3aX6arb2ViQhbkhPnsZ+o4Mby9mlWFtt IuColxZVnTXQy/RYWOxo/rc6YyYjgP0= Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-10-sreNkHF0NOq9ZcqaTsLoEQ-1; Mon, 09 Oct 2023 10:43:33 -0400 X-MC-Unique: sreNkHF0NOq9ZcqaTsLoEQ-1 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-324810f3bfcso2422128f8f.1 for ; Mon, 09 Oct 2023 07:43:32 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696862612; x=1697467412; h=content-transfer-encoding:in-reply-to:organization:from:references :cc:to:content-language:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=obL8b5QO0r5nb46hgjY2kK9LhSik8vXkxCpK9YUEIMo=; b=srrwb8abCITGNOmEB7ufuFDM4slzACaC4WPX5+XGb12jNjj8Bu41YOzCbNPCinsvD/ LVJXN5tBcHw6T/aPl7gPErww17h1SE2QJdYuIk24VB/L+dxc6iQKlAAvH9WEtvX+USAw 5S9k6YAHTVGHhxwHqX8HOCHB8nO42o0NrO4Hmqnp11tsVlCxYzijRuLoSvKk4H4zAdKH f8fT/SHy/U7i2S7hKLv2MSQp0ArDUxXEzVx7lQ7Vx3y9VVIHLnsBBRvMxlKC3H4foeOu lJ9Uzlll3l4DiZ4T6zS2QW1nkh/XayRK7xqmh8KLGkvEDWgMqdmbsAWREseeAyNn+hDa uicg== X-Gm-Message-State: AOJu0Yzm2H4XPm+dpF2FqB6VYsFKjLzeO+jG/8kH9iLHNd0x4PWWabtY Ifa4u7c1jeJOt3OdlYvXNKO16L4887slk7ZIjGLWrrW4XJLE+ZHqUn06ZkWco6HJuZS65l8iqxF l4bpW3qVY62vLgvxmUv2qqEQW0lNLvz3ffwc= X-Received: by 2002:a5d:6b11:0:b0:323:1d0a:5562 with SMTP id v17-20020a5d6b11000000b003231d0a5562mr9289932wrw.6.1696862611765; Mon, 09 Oct 2023 07:43:31 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEeW4IDETa4hchcyUUnR7dHbiPpRDNVVpvGWn/vW/4fF0rfWQohZnx5d8DvvGGiwUmSto6e3A== X-Received: by 2002:a5d:6b11:0:b0:323:1d0a:5562 with SMTP id v17-20020a5d6b11000000b003231d0a5562mr9289918wrw.6.1696862611315; Mon, 09 Oct 2023 07:43:31 -0700 (PDT) Received: from ?IPV6:2003:cb:c733:6400:ae10:4bb7:9712:8548? (p200300cbc7336400ae104bb797128548.dip0.t-ipconnect.de. [2003:cb:c733:6400:ae10:4bb7:9712:8548]) by smtp.gmail.com with ESMTPSA id g8-20020a5d5408000000b0031c5b380291sm9838763wrv.110.2023.10.09.07.43.30 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 09 Oct 2023 07:43:30 -0700 (PDT) Message-ID: Date: Mon, 9 Oct 2023 16:43:29 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCH v6 6/9] mm: thp: Add "recommend" option for anon_orders To: Ryan Roberts , Yu Zhao Cc: Andrew Morton , Matthew Wilcox , Yin Fengwei , Catalin Marinas , Anshuman Khandual , Yang Shi , "Huang, Ying" , Zi Yan , Luis Chamberlain , Itaru Kitayama , "Kirill A. Shutemov" , John Hubbard , David Rientjes , Vlastimil Babka , Hugh Dickins , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org References: <20230929114421.3761121-1-ryan.roberts@arm.com> <20230929114421.3761121-7-ryan.roberts@arm.com> <2f64809e-0d0d-cc61-71ac-8d9b072efc3a@redhat.com> <25d1cdee-3da8-4728-aa0d-dc07eb28ea95@arm.com> From: David Hildenbrand Organization: Red Hat In-Reply-To: <25d1cdee-3da8-4728-aa0d-dc07eb28ea95@arm.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231009_074335_873618_599B5AEF X-CRM114-Status: GOOD ( 33.82 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMDkuMTAuMjMgMTM6NDUsIFJ5YW4gUm9iZXJ0cyB3cm90ZToKPiBPbiAwNi8xMC8yMDIzIDIz OjI4LCBZdSBaaGFvIHdyb3RlOgo+PiBPbiBGcmksIE9jdCA2LCAyMDIzIGF0IDI6MDjigK9QTSBE YXZpZCBIaWxkZW5icmFuZCA8ZGF2aWRAcmVkaGF0LmNvbT4gd3JvdGU6Cj4+Pgo+Pj4gT24gMjku MDkuMjMgMTM6NDQsIFJ5YW4gUm9iZXJ0cyB3cm90ZToKPj4+PiBJbiBhZGRpdGlvbiB0byBwYXNz aW5nIGEgYml0ZmllbGQgb2YgZm9saW8gb3JkZXJzIHRvIGVuYWJsZSBmb3IgVEhQLAo+Pj4+IGFs bG93IHRoZSBzdHJpbmcgInJlY29tbWVuZCIgdG8gYmUgd3JpdHRlbiwgd2hpY2ggaGFzIHRoZSBl ZmZlY3Qgb2YKPj4+PiBjYXVzaW5nIHRoZSBzeXN0ZW0gdG8gZW5hYmxlIHRoZSBvcmRlcnMgcHJl ZmVycmVkIGJ5IHRoZSBhcmNoaXRlY3R1cmUKPj4+PiBhbmQgYnkgdGhlIG1tLiBUaGUgdXNlciBj YW4gc2VlIHdoYXQgdGhlc2Ugb3JkZXJzIGFyZSBieSBzdWJzZXF1ZW50bHkKPj4+PiByZWFkaW5n IGJhY2sgdGhlIGZpbGUuCj4+Pj4KPj4+PiBOb3RlIHRoYXQgdGhlc2UgcmVjb21tZW5kZWQgb3Jk ZXJzIGFyZSBleHBlY3RlZCB0byBiZSBzdGF0aWMgZm9yIGEgZ2l2ZW4KPj4+PiBib290IG9mIHRo ZSBzeXN0ZW0sIGFuZCBzbyB0aGUga2V5d29yZCAiYXV0byIgd2FzIGRlbGliZXJhdGVseSBub3Qg dXNlZCwKPj4+PiBhcyBJIHdhbnQgdG8gcmVzZXJ2ZSBpdCBmb3IgYSBwb3NzaWJsZSBmdXR1cmUg dXNlIHdoZXJlIHRoZSAiYmVzdCIgb3JkZXIKPj4+PiBpcyBjaG9zZW4gbW9yZSBkeW5hbWljYWxs eSBhdCBydW50aW1lLgo+Pj4+Cj4+Pj4gUmVjb21tZW5kZWQgb3JkZXJzIGFyZSBkZXRlcm1pbmVk IGFzIGZvbGxvd3M6Cj4+Pj4gICAgIC0gUE1EX09SREVSOiBUaGUgdHJhZGl0aW9uYWwgVEhQIHNp emUKPj4+PiAgICAgLSBhcmNoX3dhbnRzX3B0ZV9vcmRlcigpIGlmIGltcGxlbWVudGVkIGJ5IHRo ZSBhcmNoCj4+Pj4gICAgIC0gUEFHRV9BTExPQ19DT1NUTFlfT1JERVI6IFRoZSBsYXJnZXN0IG9y ZGVyIGtlcHQgb24gcGVyLWNwdSBmcmVlIGxpc3QKPj4+Pgo+Pj4+IGFyY2hfd2FudHNfcHRlX29y ZGVyKCkgY2FuIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGFyY2hpdGVjdHVyZSBpZiBkZXNpcmVkLgo+ Pj4+IFNvbWUgYXJjaGl0ZWN0dXJlcyAoZS5nLiBhcm02NCkgY2FuIGNvYWxzZWNlIFRMQiBlbnRy aWVzIGlmIGEgY29udGlndW91cwo+Pj4+IHNldCBvZiBwdGVzIG1hcCBwaHlzaWNhbGx5IGNvbnRp Z2lvdXMsIG5hdHVyYWxseSBhbGlnbmVkIG1lbW9yeSwgc28gdGhpcwo+Pj4+IG1lY2hhbmlzbSBh bGxvd3MgdGhlIGFyY2hpdGVjdHVyZSB0byBvcHRpbWl6ZSBhcyByZXF1aXJlZC4KPj4+Pgo+Pj4+ IEhlcmUgd2UgYWRkIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIGFyY2hfd2FudHNfcHRl X29yZGVyKCksIHVzZWQKPj4+PiB3aGVuIHRoZSBhcmNoaXRlY3R1cmUgZG9lcyBub3QgZGVmaW5l IGl0LCB3aGljaCByZXR1cm5zIC0xLCBpbXBseWluZwo+Pj4+IHRoYXQgdGhlIEhXIGhhcyBubyBw cmVmZXJlbmNlLgo+Pj4+Cj4+Pj4gU2lnbmVkLW9mZi1ieTogUnlhbiBSb2JlcnRzIDxyeWFuLnJv YmVydHNAYXJtLmNvbT4KPj4+PiAtLS0KPj4+PiAgICBEb2N1bWVudGF0aW9uL2FkbWluLWd1aWRl L21tL3RyYW5zaHVnZS5yc3QgfCAgNCArKysrCj4+Pj4gICAgaW5jbHVkZS9saW51eC9wZ3RhYmxl LmggICAgICAgICAgICAgICAgICAgIHwgMTMgKysrKysrKysrKysrKwo+Pj4+ICAgIG1tL2h1Z2Vf bWVtb3J5LmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE0ICsrKysrKysrKysrLS0tCj4+ Pj4gICAgMyBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQo+ Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvbW0vdHJhbnNo dWdlLnJzdCBiL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvbW0vdHJhbnNodWdlLnJzdAo+Pj4+ IGluZGV4IDczMmMzYjJmNGJhOC4uZDYzNjNkNGVmYTNhIDEwMDY0NAo+Pj4+IC0tLSBhL0RvY3Vt ZW50YXRpb24vYWRtaW4tZ3VpZGUvbW0vdHJhbnNodWdlLnJzdAo+Pj4+ICsrKyBiL0RvY3VtZW50 YXRpb24vYWRtaW4tZ3VpZGUvbW0vdHJhbnNodWdlLnJzdAo+Pj4+IEBAIC0xODcsNiArMTg3LDEw IEBAIHBhZ2VzICg9MTZLIGlmIHRoZSBwYWdlIHNpemUgaXMgNEspLiBUaGUgZXhhbXBsZSBhYm92 ZSBlbmFibGVzIG9yZGVyLTkKPj4+PiAgICBCeSBlbmFibGluZyBtdWx0aXBsZSBvcmRlcnMsIGFs bG9jYXRpb24gb2YgZWFjaCBvcmRlciB3aWxsIGJlCj4+Pj4gICAgYXR0ZW1wdGVkLCBoaWdoZXN0 IHRvIGxvd2VzdCwgdW50aWwgYSBzdWNjZXNzZnVsIGFsbG9jYXRpb24gaXMgbWFkZS4KPj4+PiAg ICBJZiB0aGUgUE1ELW9yZGVyIGlzIHVuc2V0LCB0aGVuIG5vIFBNRC1zaXplZCBUSFBzIHdpbGwg YmUgYWxsb2NhdGVkLgo+Pj4+ICtJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGVuYWJsZSB0aGUgcmVj b21tZW5kZWQgc2V0IG9mIG9yZGVycywgd2hpY2gKPj4+PiArd2lsbCBiZSBvcHRpbWl6ZWQgZm9y IHRoZSBhcmNoaXRlY3R1cmUgYW5kIG1tOjoKPj4+PiArCj4+Pj4gKyAgICAgZWNobyByZWNvbW1l bmQgPi9zeXMva2VybmVsL21tL3RyYW5zcGFyZW50X2h1Z2VwYWdlL2Fub25fb3JkZXJzCj4+Pj4K Pj4+PiAgICBUaGUga2VybmVsIHdpbGwgaWdub3JlIGFueSBvcmRlcnMgdGhhdCBpdCBkb2VzIG5v dCBzdXBwb3J0IHNvIHJlYWQgdGhlCj4+Pj4gICAgZmlsZSBiYWNrIHRvIGRldGVybWluZSB3aGlj aCBvcmRlcnMgYXJlIGVuYWJsZWQ6Ogo+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3Bn dGFibGUuaCBiL2luY2x1ZGUvbGludXgvcGd0YWJsZS5oCj4+Pj4gaW5kZXggYWY3NjM5YzNiMGEz Li4wZTExMGNlNTdjYzMgMTAwNjQ0Cj4+Pj4gLS0tIGEvaW5jbHVkZS9saW51eC9wZ3RhYmxlLmgK Pj4+PiArKysgYi9pbmNsdWRlL2xpbnV4L3BndGFibGUuaAo+Pj4+IEBAIC0zOTMsNiArMzkzLDE5 IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhcmNoX2NoZWNrX3phcHBlZF9wbWQoc3RydWN0IHZtX2Fy ZWFfc3RydWN0ICp2bWEsCj4+Pj4gICAgfQo+Pj4+ICAgICNlbmRpZgo+Pj4+Cj4+Pj4gKyNpZm5k ZWYgYXJjaF93YW50c19wdGVfb3JkZXIKPj4+PiArLyoKPj4+PiArICogUmV0dXJucyBwcmVmZXJy ZWQgZm9saW8gb3JkZXIgZm9yIHB0ZS1tYXBwZWQgbWVtb3J5LiBNdXN0IGJlIGluIHJhbmdlIFsw LAo+Pj4+ICsgKiBQTURfT1JERVIpIGFuZCBtdXN0IG5vdCBiZSBvcmRlci0xIHNpbmNlIFRIUCBy ZXF1aXJlcyBsYXJnZSBmb2xpb3MgdG8gYmUgYXQKPj4+PiArICogbGVhc3Qgb3JkZXItMi4gTmVn YXRpdmUgdmFsdWUgaW1wbGllcyB0aGF0IHRoZSBIVyBoYXMgbm8gcHJlZmVyZW5jZSBhbmQgbW0K Pj4+PiArICogd2lsbCBjaG9vc2UgaXQncyBvd24gZGVmYXVsdCBvcmRlci4KPj4+PiArICovCj4+ Pj4gK3N0YXRpYyBpbmxpbmUgaW50IGFyY2hfd2FudHNfcHRlX29yZGVyKHZvaWQpCj4+Pj4gK3sK Pj4+PiArICAgICByZXR1cm4gLTE7Cj4+Pj4gK30KPj4+PiArI2VuZGlmCj4+Pj4gKwo+Pj4+ICAg ICNpZm5kZWYgX19IQVZFX0FSQ0hfUFRFUF9HRVRfQU5EX0NMRUFSCj4+Pj4gICAgc3RhdGljIGlu bGluZSBwdGVfdCBwdGVwX2dldF9hbmRfY2xlYXIoc3RydWN0IG1tX3N0cnVjdCAqbW0sCj4+Pj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGFkZHJl c3MsCj4+Pj4gZGlmZiAtLWdpdCBhL21tL2h1Z2VfbWVtb3J5LmMgYi9tbS9odWdlX21lbW9yeS5j Cj4+Pj4gaW5kZXggYmNlY2NlNzY5MDE3Li5lMmUyZDM5MDZhMjEgMTAwNjQ0Cj4+Pj4gLS0tIGEv bW0vaHVnZV9tZW1vcnkuYwo+Pj4+ICsrKyBiL21tL2h1Z2VfbWVtb3J5LmMKPj4+PiBAQCAtNDY0 LDEwICs0NjQsMTggQEAgc3RhdGljIHNzaXplX3QgYW5vbl9vcmRlcnNfc3RvcmUoc3RydWN0IGtv YmplY3QgKmtvYmosCj4+Pj4gICAgICAgIGludCBlcnI7Cj4+Pj4gICAgICAgIGludCByZXQgPSBj b3VudDsKPj4+PiAgICAgICAgdW5zaWduZWQgaW50IG9yZGVyczsKPj4+PiArICAgICBpbnQgYXJj aDsKPj4+Pgo+Pj4+IC0gICAgIGVyciA9IGtzdHJ0b3VpbnQoYnVmLCAwLCAmb3JkZXJzKTsKPj4+ PiAtICAgICBpZiAoZXJyKQo+Pj4+IC0gICAgICAgICAgICAgcmV0ID0gLUVJTlZBTDsKPj4+PiAr ICAgICBpZiAoc3lzZnNfc3RyZXEoYnVmLCAicmVjb21tZW5kIikpIHsKPj4+PiArICAgICAgICAg ICAgIGFyY2ggPSBtYXgoYXJjaF93YW50c19wdGVfb3JkZXIoKSwgUEFHRV9BTExPQ19DT1NUTFlf T1JERVIpOwo+Pj4+ICsgICAgICAgICAgICAgb3JkZXJzID0gQklUKGFyY2gpOwo+Pj4+ICsgICAg ICAgICAgICAgb3JkZXJzIHw9IEJJVChQQUdFX0FMTE9DX0NPU1RMWV9PUkRFUik7Cj4+Pj4gKyAg ICAgICAgICAgICBvcmRlcnMgfD0gQklUKFBNRF9PUkRFUik7Cj4+Pj4gKyAgICAgfSBlbHNlIHsK Pj4+PiArICAgICAgICAgICAgIGVyciA9IGtzdHJ0b3VpbnQoYnVmLCAwLCAmb3JkZXJzKTsKPj4+ PiArICAgICAgICAgICAgIGlmIChlcnIpCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgIHJldCA9 IC1FSU5WQUw7Cj4+Pj4gKyAgICAgfQo+Pj4+Cj4+Pj4gICAgICAgIGlmIChyZXQgPiAwKSB7Cj4+ Pj4gICAgICAgICAgICAgICAgb3JkZXJzICY9IFRIUF9PUkRFUlNfQUxMX0FOT047Cj4+Pgo+Pj4g Oi8gZG9uJ3QgcmVhbGx5IGxpa2UgdGhhdC4gUmVnYXJkaW5nIG15IHByb3Bvc2FsLCBvbmUgY291 bGQgaGF2ZQo+Pj4gc29tZXRoaW5nIGxpa2UgdGhhdCBpbiBhbiAiYXV0byIgc2V0dGluZyBmb3Ig dGhlICJlbmFibGVkIiB2YWx1ZSwgb3IgYQo+Pj4gInJlY29tbWVuZGVkIiBzZXR0aW5nIFtub3Qg c3VyZV0uCj4+Cj4+IE1lIGVpdGhlci4KPj4KPj4gQWdhaW4gdGhpcyBpcyBzb21ldGhpbmcgSSBj YWxsIHJhbmRvbSAtLSAgd2Ugb25seSBkaXNjdXNzZWQgImF1dG8iLAo+PiBhbmQgeWVzLCB0aGUg Y29tbWl0IG1lc3NhZ2UgYWJvdmUgZXhwbGFpbmVkIHdoeSAicmVjb21tZW5kZWQiIGhlcmUgYnV0 Cj4+IGl0IGhhcyBuZXZlciBzdXJmYWNlZCBpbiBwcmV2aW91cyBkaXNjdXNzaW9ucywgaGFzIGl0 Pwo+IAo+IFRoZSBjb250ZXh0IGluIHdoaWNoIHdlIGRpc2N1c3NlZCAiYXV0byIgd2FzIGZvciBh IGZ1dHVyZSBhc3BpcmF0aW9uIHRvCj4gYXV0b21hdGljYWxseSBkZXRlcm1pbmUgdGhlIG9yZGVy IHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIGEgZ2l2ZW4gYWxsb2NhdGlvbiB0bwo+IGJhbGFuY2Ug cGVyZiB2cyBpbnRlcm5hbCBmcmFnbWVudGF0aW9uLgo+IAo+IFRoZSBjYXNlIHdlIGFyZSB0YWxr aW5nIGFib3V0IGhlcmUgaXMgY29tcGxldGVseSBkaWZmZXJlbnQ7IEkgaGFkIGEgcHJlLWV4aXN0 aW5nCj4gZmVhdHVyZSBmcm9tIHByZXZpb3VzIHZlcnNpb25zIG9mIHRoZSBzZXJpZXMsIHdoaWNo IHdvdWxkIGFsbG93IHRoZSBhcmNoIHRvCj4gc3BlY2lmeSBpdHMgcHJlZmVycmVkIG9yZGVyIChv cmlnaW5hbGx5IHByb3Bvc2VkIGJ5IFl1LCBJSVJDKS4gSW4gbW92aW5nIHRoZQo+IGFsbG9jYXRp b24gc2l6ZSBkZWNpc2lvbiB0byB1c2VyIHNwYWNlLCBJIGZlbHQgdGhhdCB3ZSBzdGlsbCBuZWVk ZWQgYSBtZWNoYW5pc20KPiB3aGVyZWJ5IHRoZSBhcmNoIGNvdWxkIGV4cHJlc3MgaXRzIHByZWZl cmVuY2UuIEFuZCAicmVjb21tZW5kIiBpcyB3aGF0IEkgY2FtZSB1cAo+IHdpdGguCj4gCj4gQWxs IG9mIHRoZSBmcmljdGlvbiB3ZSBhcmUgY3VycmVudGx5IGhhdmluZyBpcyBhcm91bmQgdGhpcyBm ZWF0dXJlLCBJIHRoaW5rPwo+IENlcnRhaW5seSBhbGwgdGhlIGxpbmtzIHlvdSBwcm92aWRlZCBp biB0aGUgb3RoZXIgdGhyZWFkIGFsbCBwb2ludCB0bwo+IGNvbnZlcnNhdGlvbnMgc2tpcnRpbmcg YXJvdW5kIGl0LiBIb3cgYWJvdXQgSSBqdXN0IGRyb3AgaXQgZm9yIHRoaXMgaW5pdGlhbAo+IHBh dGNoIHNldD8gSnVzdCBsZXQgdXNlciBzcGFjZSBkZWNpZGUgd2hhdCBzaXplcyBpdCB3YW50cyAo cGVyIERhdmlkJ3MgaW50ZXJmYWNlCj4gcHJvcG9zYWwpPyBJIGNhbiBzZWUgSSdtIHRyeWluZyB0 byBnZXQgYSBzcXVhcmUgcGVnIGludG8gYSByb3VuZCBob2xlLgoKRHJvcHBpbmcgaXQgZm9yIHRo ZSBpbml0aWFsIHBhdGNoIHNldCBzb3VuZHMgbGlrZSBhIHZlcnkgZ29vZCBpZGVhLiAKVGVsbGlu ZyBwZW9wbGUgd2hhdCB0byBlbmFibGUgaW5pdGlhbGx5IHdoZW4gdGhleSB3YW50IHRvIHBsYXkg d2l0aCBpdCAKd2lsbCB3b3JrIG91dCBqdXN0IGZpbmUuCgpbSWRlYWxseSwgd2UgcGxhbiBhaGVh ZCB0byBoYXZlIHN1Y2ggImF1dG8iIHNldHRpbmdzIGluIHRoZSBmdXR1cmUsIGFzIEkgCmV4cHJl c3NlZC5dCgotLSAKQ2hlZXJzLAoKRGF2aWQgLyBkaGlsZGVuYgoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBs aXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5m cmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK