Received: by 2002:a05:6a10:a841:0:0:0:0 with SMTP id d1csp12381pxy; Tue, 20 Apr 2021 18:51:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwzY8XuakoCdOW5pGuhkpkmlr9Ot5Bi9jZlV418d8x/xau0Rk8oKzP/OEmLZq30+wiT2y0J X-Received: by 2002:a05:6402:42d1:: with SMTP id i17mr34683831edc.131.1618969909129; Tue, 20 Apr 2021 18:51:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1618969909; cv=none; d=google.com; s=arc-20160816; b=LbG/a4AmNtJYbs45RMhLjQhtI7QUkOtGbCgIA+IqmC/J+OZonGc/Y6Agvi3dkHj6w7 2ea4L3tacl3sxt/lHLzlcwS4BgOynn/DN22Po/Ip5SuNOs3zyPVZpxoiIYkYs76/280m DkpUt0VsMPyKzZ9IDvQ4p70vcL3gIr9N07TNrhVpcQcWAR3ekeN4s8jzGYBxZ3775k8F rKYwnhcqhmjn3L7ghI35J6NZNuwqY0+si1qZuP5R+ary2XDf679Q3G/IkSuOSDBZ1zoh Wr6YzY+E+6BxAs3wwnMvlXfcMZ8Z/pbHJbhLP/kknpt15C7zediCRe3mquXUkyOvufaY qWeQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:date:cc:to:from:subject:message-id :dkim-signature; bh=cvUEqg3/MiRrhEVCL8phBYpKuYib76FloSkRiPCWPRw=; b=K02Rb7nnYsgNwfXTwK1+YHttWKR1FL4yOlyQmQUxUZB3/Uv3WcJz46D/fiaCzKZCnx Lql4DsIztgc4PuZcJnLDGyUpvHvHJTkWslzDoMXd+Ccv8IurAfA13T7ytK+y+ROyg/rr THjLaHFAJPpVg12ahIqMvtxkz93UnTLdz+Z1JTLFcJMNSfbTOaFbvJiBgRL2TCPVyYPm S8ejEqpMjay252DdqiJHwWdFz7YdrMy6rDx+2XCsOsRPW8VL2tukPye451PuGthMNuQe /8WL0HebRmsCJN5UQIK8TeR9wrn7ktl/d18ee/rqvuzTaGipHe6VzYQlx/D9hum20NLD Po9Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=uTGtwy9t; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id n24si613836eds.571.2021.04.20.18.51.25; Tue, 20 Apr 2021 18:51:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=uTGtwy9t; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234571AbhDUBoi (ORCPT + 99 others); Tue, 20 Apr 2021 21:44:38 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:39724 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S234566AbhDUBoh (ORCPT ); Tue, 20 Apr 2021 21:44:37 -0400 X-UUID: b66a9e5a5573496da716dd75248f0142-20210421 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=cvUEqg3/MiRrhEVCL8phBYpKuYib76FloSkRiPCWPRw=; b=uTGtwy9tthfBpvpnlA1u/7px+xjiRbUuXYOi7+6GWHvSjILO9uDhsYdvHyWLeqL1BwDmaocm1gslbidcWpX+nQpFOjQGka9lgSnZU00Jh2sx4iADpGBmI8ZafSG+OK+nrathxbAavlo6Ljpkrp4MAeQrQOtZOJdfaxmm1s0FvRE=; X-UUID: b66a9e5a5573496da716dd75248f0142-20210421 Received: from mtkcas11.mediatek.inc [(172.21.101.40)] by mailgw01.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1314597572; Wed, 21 Apr 2021 09:44:03 +0800 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs08n1.mediatek.inc (172.21.101.55) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 21 Apr 2021 09:44:01 +0800 Received: from [172.21.77.33] (172.21.77.33) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Wed, 21 Apr 2021 09:44:01 +0800 Message-ID: <1618969441.4829.12.camel@mtkswgap22> Subject: Re: [RFC PATCH 00/37] Speculative page faults From: Chinwen Chang To: Michel Lespinasse CC: Linux-MM , Laurent Dufour , Peter Zijlstra , Michal Hocko , Matthew Wilcox , Rik van Riel , Paul McKenney , Andrew Morton , Suren Baghdasaryan , "Joel Fernandes" , Rom Lemarchand , Linux-Kernel Date: Wed, 21 Apr 2021 09:44:01 +0800 In-Reply-To: <20210407014502.24091-1-michel@lespinasse.org> References: <20210407014502.24091-1-michel@lespinasse.org> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.2.3-0ubuntu6 MIME-Version: 1.0 X-MTK: N Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gVHVlLCAyMDIxLTA0LTA2IGF0IDE4OjQ0IC0wNzAwLCBNaWNoZWwgTGVzcGluYXNzZSB3cm90 ZToNCj4gVGhpcyBwYXRjaHNldCBpcyBteSB0YWtlIG9uIHNwZWN1bGF0aXZlIHBhZ2UgZmF1bHRz IChzcGYpLg0KPiBJdCBidWlsZHMgb24gaWRlYXMgdGhhdCBoYXZlIGJlZW4gcHJldmlvdXNseSBw cm9wb3NlZCBieSBMYXVyZW50IER1Zm91ciwNCj4gUGV0ZXIgWmlqbHN0cmEgYW5kIG90aGVycyBi ZWZvcmUuIFdoaWxlIExhdXJlbnQncyBwcmV2aW91cyBwcm9wb3NhbA0KPiB3YXMgcmVqZWN0ZWQg YXJvdW5kIHRoZSB0aW1lIG9mIExTRi9NTSAyMDE5LCBJIGFtIGhvcGluZyB3ZSBjYW4gcmV2aXNp dA0KPiB0aGlzIG5vdyBiYXNlZCBvbiB3aGF0IEkgdGhpbmsgaXMgYSBzaW1wbGVyIGFuZCBtb3Jl IGJpc2VjdGFibGUgYXBwcm9hY2gsDQo+IG11Y2ggaW1wcm92ZWQgc2NhbGluZyBudW1iZXJzIGlu IHRoZSBhbm9ueW1vdXMgdm1hIGNhc2UsIGFuZCB0aGUgQW5kcm9pZA0KPiB1c2UgY2FzZSB0aGF0 IGhhcyBzaW5jZSBlbWVyZ2VkLiBJIHdpbGwgZXhwYW5kIG9uIHRoZXNlIHBvaW50cyB0b3dhcmRz DQo+IHRoZSBlbmQgb2YgdGhpcyBtZXNzYWdlLg0KPiANCj4gDQo+IENsYXNzaWNhbCBwYWdlIGZh dWx0IHByb2Nlc3NpbmcgdGFrZXMgdGhlIG1tYXAgcmVhZCBsb2NrIGluIG9yZGVyIHRvDQo+IHBy ZXZlbnQgcmFjZXMgd2l0aCBtbWFwIHdyaXRlcnMuIEluIGNvbnRyYXN0LCBzcGVjdWxhdGl2ZSBm YXVsdA0KPiBwcm9jZXNzaW5nIGRvZXMgbm90IHRha2UgdGhlIG1tYXAgcmVhZCBsb2NrLCBhbmQg aW5zdGVhZCB2ZXJpZmllcywNCj4gd2hlbiB0aGUgcmVzdWx0cyBvZiB0aGUgcGFnZSBmYXVsdCBh cmUgYWJvdXQgdG8gZ2V0IGNvbW1pdHRlZCBhbmQNCj4gYmVjb21lIHZpc2libGUgdG8gb3RoZXIg dGhyZWFkcywgdGhhdCBubyBtbWFwIHdyaXRlcnMgaGF2ZSBiZWVuDQo+IHJ1bm5pbmcgY29uY3Vy cmVudGx5IHdpdGggdGhlIHBhZ2UgZmF1bHQuIElmIHRoZSBjaGVjayBmYWlscywNCj4gc3BlY3Vs YXRpdmUgdXBkYXRlcyBkbyBub3QgZ2V0IGNvbW1pdHRlZCBhbmQgdGhlIGZhdWx0IGlzIHJldHJp ZWQNCj4gaW4gdGhlIHVzdWFsLCBub24tc3BlY3VsYXRpdmUgd2F5ICh3aXRoIHRoZSBtbWFwIHJl YWQgbG9jayBoZWxkKS4NCj4gDQo+IFRoZSBjb25jdXJyZW5jeSBjaGVjayBpcyBpbXBsZW1lbnRl ZCB1c2luZyBhIHBlci1tbSBtbWFwIHNlcXVlbmNlIGNvdW50Lg0KPiBUaGUgY291bnRlciBpcyBp bmNyZW1lbnRlZCBhdCB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgZWFjaCBtbWFwIHdyaXRlDQo+ IG9wZXJhdGlvbi4gSWYgdGhlIGNvdW50ZXIgaXMgaW5pdGlhbGx5IG9ic2VydmVkIHRvIGhhdmUg YW4gZXZlbiB2YWx1ZSwNCj4gYW5kIGhhcyB0aGUgc2FtZSB2YWx1ZSBsYXRlciBvbiwgdGhlIG9i c2VydmVyIGNhbiBkZWR1Y2UgdGhhdCBubyBtbWFwDQo+IHdyaXRlcnMgaGF2ZSBiZWVuIHJ1bm5p bmcgY29uY3VycmVudGx5IHdpdGggaXQgYmV0d2VlbiB0aG9zZSB0d28gdGltZXMuDQo+IFRoaXMg aXMgc2ltaWxhciB0byBhIHNlcWxvY2ssIGV4Y2VwdCB0aGF0IHJlYWRlcnMgbmV2ZXIgc3BpbiBv biB0aGUNCj4gY291bnRlciB2YWx1ZSAodGhleSB3b3VsZCBpbnN0ZWFkIHJldmVydCB0byB0YWtp bmcgdGhlIG1tYXAgcmVhZCBsb2NrKSwNCj4gYW5kIHdyaXRlcnMgYXJlIGFsbG93ZWQgdG8gc2xl ZXAuIE9uZSBiZW5lZml0IG9mIHRoaXMgYXBwcm9hY2ggaXMgdGhhdA0KPiBpdCByZXF1aXJlcyBu byB3cml0ZXIgc2lkZSBjaGFuZ2VzLCBqdXN0IHNvbWUgaG9va3MgaW4gdGhlIG1tYXAgd3JpdGUN Cj4gbG9jayBBUElzIHRoYXQgd3JpdGVycyBhbHJlYWR5IHVzZS4NCj4gDQo+IFRoZSBmaXJzdCBz dGVwIG9mIGEgc3BlY3VsYXRpdmUgcGFnZSBmYXVsdCBpcyB0byBsb29rIHVwIHRoZSB2bWEgYW5k DQo+IHJlYWQgaXRzIGNvbnRlbnRzIChjdXJyZW50bHkgYnkgbWFraW5nIGEgY29weSBvZiB0aGUg dm1hLCB0aG91Z2ggaW4NCj4gcHJpbmNpcGxlIGl0IHdvdWxkIGJlIHN1ZmZpY2llbnQgdG8gb25s eSByZWFkIHRoZSB2bWEgYXR0cmlidXRlcyB0aGF0DQo+IGFyZSB1c2VkIGluIHBhZ2UgZmF1bHRz KS4gVGhlIG1tYXAgc2VxdWVuY2UgY291bnQgaXMgdXNlZCB0byB2ZXJpZnkNCj4gdGhhdCB0aGVy ZSB3ZXJlIG5vIG1tYXAgd3JpdGVycyBjb25jdXJyZW50IHRvIHRoZSBsb29rdXAgYW5kIGNvcHkg c3RlcHMuDQo+IE5vdGUgdGhhdCB3YWxraW5nIHJidHJlZXMgd2hpbGUgdGhlcmUgbWF5IHBvdGVu dGlhbGx5IGJlIGNvbmN1cnJlbnQNCj4gd3JpdGVycyBpcyBub3QgYW4gZW50aXJlbHkgbmV3IGlk ZWEgaW4gbGludXgsIGFzIGxhdGNoZWQgcmJ0cmVlcw0KPiBhcmUgYWxyZWFkeSBkb2luZyB0aGlz LiBUaGlzIGlzIHNhZmUgYXMgbG9uZyBhcyB0aGUgbG9va3VwIGlzDQo+IGZvbGxvd2VkIGJ5IGEg c2VxdWVuY2UgY2hlY2sgdG8gdmVyaWZ5IHRoYXQgY29uY3VycmVuY3kgZGlkIG5vdA0KPiBhY3R1 YWxseSBvY2N1ciAoYW5kIGFib3J0IHRoZSBzcGVjdWxhdGl2ZSBmYXVsdCBpZiBpdCBkaWQpLg0K PiANCj4gVGhlIG5leHQgc3RlcCBpcyB0byB3YWxrIGRvd24gdGhlIGV4aXN0aW5nIHBhZ2UgdGFi bGUgdHJlZSB0byBmaW5kIHRoZQ0KPiBjdXJyZW50IHB0ZSBlbnRyeS4gVGhpcyBpcyBkb25lIHdp dGggaW50ZXJydXB0cyBkaXNhYmxlZCB0byBhdm9pZA0KPiByYWNlcyB3aXRoIG11bm1hcCgpLiBB Z2Fpbiwgbm90IGFuIGVudGlyZWx5IG5ldyBpZGVhLCBhcyB0aGlzIHJlcGVhdHMNCj4gYSBwYXR0 ZXJuIGFscmVhZHkgcHJlc2VudCBpbiBmYXN0IEdVUC4gU2ltaWxhciBwcmVjYXV0aW9ucyBhcmUg YWxzbw0KPiB0YWtlbiB3aGVuIHRha2luZyB0aGUgcGFnZSB0YWJsZSBsb2NrLg0KPiANCj4gSW4g dGhlIGNhc2Ugb2YgbWFwcGVkIGZpbGVzLCBhZGRpdGlvbmFsIHByZWNhdXRpb25zIG11c3QgYmUg dGFrZW4gd2hlbg0KPiBkZXJlZmVyZW5jaW5nIHZtYS0+dm1fZmlsZS4gVGhlIHZtYSBjb3B5IHRo YXQgaXMgdGFrZW4gYXQgdGhlIHN0YXJ0IG9mDQo+IHRoZSBzcGVjdWxhdGl2ZSBwYWdlIGZhdWx0 IGluY2x1ZGVzIGEgcG9pbnRlciB0byB0aGUgZmlsZSwgYnV0IGRvZXMgbm90DQo+IHRha2UgYSBy ZWZlcmVuY2UgdG8gaXQuIFRoZSByZWZlcmVuY2UgaXMgaGVsZCBieSB0aGUgb3JpZ2luYWwgdm1h Lg0KPiBJbiBvcmRlciB0byBndWFyYW50ZWUgdGhlIHZhbGlkaXR5IG9mIHRoZSBmaWxlIHRocm91 Z2ggdGhlIHZtX29wcy0+ZmF1bHQoKQ0KPiBhbmQvb3Igdm1fb3BzLT5tYXBfcGFnZXMoKSBjYWxs cywgdGhlc2UgYXJlIHJ1biB3aXRoaW4gYW4gcmN1IHJlYWQgbG9ja2VkDQo+IGNvZGUgc2VjdGlv biwgd2l0aCB0aGUgbW1hcCBzZXF1ZW5jZSBjb3VudCBiZWluZyB2ZXJpZmllZCBhdCB0aGUgc3Rh cnQgb2YNCj4gdGhlIHNlY3Rpb24gYW5kIHRoZSB2bWEgZmlsZSBmcHV0KCkgaXMgcmN1LWRlZmVy cmVkIHdoZW4gdm1hcyBhcmUgZnJlZWQuDQo+IA0KPiANCj4gVGhlIHBhdGNoIHNlcmllcyBhcHBs aWVzIG9uIHRvcCBvZiBsaW51eCB2NS4xMi1yYzU7DQo+IGEgZ2l0IHRyZWUgaXMgYWxzbyBhdmFp bGFibGU6DQo+IGdpdCBmZXRjaCBodHRwczovL2dpdGh1Yi5jb20vbGVzcGluYXNzZS9saW51eC5n aXQgdjUuMTItcmM1LXNwZg0KPiANCj4gDQo+IENvbW1pdHMgMSB0byA0IGFyZSBwcmVwYXJhdG9y eSBjbGVhbnVwcw0KPiAod2hpY2ggSSB3b3VsZCBsaWtlIHRvIHB1c2ggcmVnYXJkbGVzcyBvZiB3 aGF0IGhhcHBlbnMgdG8gdGhlIHJlc3QpDQo+IA0KPiBDb21taXRzIDUgYW5kIDYgaW50cm9kdWNl IENPTkZJR19TUEVDVUxBVElWRV9QQUdFX0ZBVUxUIGFuZCBsZXRzIHVzDQo+IGVuYWJsZSBpdCBv biB4ODYgc28gd2UgY2FuIHRlc3QgdGhlIG5ldyBjb2RlIGFzIGl0IGdldHMgaW50cm9kdWNlZC4N Cj4gDQo+IENvbW1pdHMgNyBhbmQgOCBleHRlbmQgaGFuZGxlX21tX2ZhdWx0KCkgc28gaXQgY2Fu IGJlIHVzZWQgZm9yDQo+IHNwZWN1bGF0aXZlIGZhdWx0czsgaW5pdGlhbGx5IHRoZXNlIGFsd2F5 cyBhYm9ydCB3aXRoIFZNX0ZBVUxUX1JFVFJZLg0KPiANCj4gQ29tbWl0cyA5IHRvIDE0IGludHJv ZHVjZSBhbGwgdGhlIGJhc2ljIGJ1aWxkaW5nIGJsb2NrcyBmb3Igc3BlY3VsYXRpdmUNCj4gcGFn ZSBmYXVsdHM6DQo+IC0gQ29tbWl0IDkgYWRkcyB0aGUgbW1hcCBzZXF1ZW5jZSBjb3VudCB0aGF0 IHdpbGwgYmUgdXNlZCBmb3IgZGV0ZWN0aW5nDQo+ICAgd2hlbiB3cml0ZXJzIGhhdmUgYmVlbiBy dW5uaW5nIGNvbmN1cnJlbnRseSB3aXRoIGFuIHNwZiBhdHRlbXB0DQo+ICAgKGluIHdoaWNoIGNh c2UgdGhlIGF0dGVtcHQgd2lsbCBiZSBhYm9ydGVkKTsNCj4gLSBDb21taXQgMTAgYWRkcyBSQ1Ug c2FmZSB2bWEgZnJlZWluZzsNCj4gLSBDb21taXQgMTEgZG9lcyBhIGxvY2tsZXNzIFZNQSBsb29r dXAgYW5kIHN0YXJ0cyB0aGUgc3BmIGhhbmRsaW5nIGF0dGVtcHQ7DQo+IC0gKENvbW1pdCAxMiBp cyBhIHNtYWxsIHJlZmFjdG9yIHByZXBhcmluZyBmb3IgdGhlIG5leHQgY29tbWl0KTsNCj4gLSBD b21taXQgMTMgd2Fsa3MgZG93biB0aGUgZXhpc3RpbmcgcGFnZSB0YWJsZXMsIGNhcmVmdWxseSBh dm9pZGluZw0KPiAgIHJhY2VzIHdpdGggcG90ZW50aWFsIHdyaXRlcnMgKG11bm1hcCBpbiBwYXJ0 aWN1bGFyKQ0KPiAtIENvbW1pdCAxNCBpbnRyb2R1Y2VzIHB0ZV9tYXBfbG9jaygpIGFuZCBwdGVf c3BpbmxvY2soKSwgd2hpY2ggYXR0ZW1wdA0KPiAgIHRvIChvcHRpb25hbGx5IG1hcCBhbmQpIGxv Y2sgYW4gZXhpc3RpbmcgcGFnZSB0YWJsZSB3aGVuIGl0J3MgdGltZSB0bw0KPiAgIGNvbW1pdCBw YWdlIGZhdWx0IHJlc3VsdHMgdG8gaXQuDQo+IA0KPiBDb21taXRzIDE1IHRvIDIyIHByb2dyZXNz aXZlbHkgaW1wbGVtZW50IHNwZiBmb3IgbW9zdCBhbm9uIHZtYSBjYXNlcy4NCj4gVGhpcyBtb3N0 bHkgY29tZXMgZG93biB0byB1c2luZyB0aGUgcHRlX21hcF9sb2NrKCkgYW5kIHB0ZV9zcGlubG9j aygpDQo+IEFQSXMgd2hlcmUgbmVlZGVkLCBhbmQgbWFraW5nIHN1cmUgdG8gYWJvcnQgc3BlY3Vs YXRpb24gaW4gdW5zdXBwb3J0ZWQNCj4gY2FzZXMgKG1vc3RseSBhbm9uX3ZtYSBhbGxvY2F0aW9u IGFuZCB1c2VyZmF1bHRmZCkuIFRoZSB3b3JrIGlzIHNwbGl0DQo+IGluIHNtYWxsIHN0ZXBzIHNv IHRoYXQgY2hhbmdlcyBjYW4gYmUgdGVzdGVkIHNvb24gYWZ0ZXIgdGhleSBhcmUgYWRkZWQuDQo+ IA0KPiBDb21taXRzIDIzIHRvIDI2IGludHJvZHVjZSB0aGUgbWFpbiBpZGVhcyBmb3IgZXh0ZW5k aW5nIHNwZiB0byBmaWxlDQo+IG1hcHBlZCB2bWFzOg0KPiAtIENvbW1pdCAyMyBhZGRzIFJDVSBz YWZlIHZtYS0+dm1fZmlsZSBmcmVlaW5nOw0KPiAtIENvbW1pdCAyNCB1c2VzIFJDVSB0byBlbnN1 cmUgdm1hLT52bV9maWxlIHN0YXlzIHZhbGlkIHRocm91Z2ggdGhlDQo+ICAgdm1fb3BzLT5mYXVs dCgpIG1ldGhvZCBjYWxsOw0KPiAtIENvbW1pdCAyNSBpbXBsZW1lbnRzIHRoZSBzcGVjdWxhdGl2 ZSBjYXNlIGZvciBmaWxlbWFwX2ZhdWx0KCkuDQo+ICAgVGhpcyBvbmx5IGhhbmRsZXMgdGhlIGNv bW1vbiBjYXNlIHdoZXJlIHRoZSBkZXNpcmVkIHBhZ2UgaXMgYWxyZWFkeQ0KPiAgIGNhY2hlZCwg aXMgbm90IGxvY2tlZCBhbmQgd2hlcmUgd2UgZG9uJ3QgbmVlZCB0byB0cmlnZ2VyIHJlYWRhaGVh ZC4NCj4gLSBDb21taXQgMjYgZW5zdXJlcyB3ZSB1c2UgcHRlX21hcF9sb2NrKCkgdG8gY29tbWl0 IHRoZSBmYXVsdGVkIHBhZ2UgdG8gdGhlDQo+ICAgbW0gYWRkcmVzcyBzcGFjZSwgdmVyaWZ5aW5n IHRoYXQgbm8gbW1hcCB3cml0ZXJzIHJhbiBkdXJpbmcgdGhlIGZhdWx0Lg0KPiANCj4gQ29tbWl0 cyAyNyBhbmQgMjggdXNlIHRoZSBzYW1lIGlkZWFzIHRvIGltcGxlbWVudCBzcGVjdWxhdGl2ZSBm YXVsdC1hcm91bmQuDQo+IA0KPiBDb21taXRzIDI5IHRvIDMyIGNvbXBsZXRlIHNwZiBzdXBwb3J0 IGZvciBtb3N0IG1hcHBlZCBmaWxlIHR5cGVzLg0KPiBBIGxpc3Qgb2Ygc3VwcG9ydGVkIGZpbGUg dHlwZXMgaXMgaW50cm9kdWNlZCwgYW5kIHdlIGFsbG93IHNwZWN1bGF0aXZlDQo+IGV4ZWN1dGlv biB0aHJvdWdoIHRoZSBuZXcgc3BlY3VsYXRpdmUgZmlsZSBmYXVsdGluZyBwYXRocyBmb3IgdGhv c2UgZmlsZXMuDQo+IE5vdGUgdGhhdCB0aGUgc3BlY3VsYXRpdmUgc3VwcG9ydCBkb2VzIG5vdCBl eHRlbmQgdG8gc2hhcmVkIGZpbGUNCj4gbWFwcGluZyB3cml0ZXMgaW4gdGhpcyBwYXRjaHNldCwg YXMgdGhpcyB3b3VsZCByZXF1aXJlIHNvbWUgc3VwcG9ydA0KPiBmb3Igdm1fb3BzLT5wYWdlX21r d3JpdGUoKSB3aGljaCBpc24ndCBoYW5kbGVkIHlldC4NCj4gDQo+IENvbW1pdHMgMzMgYW5kIDM0 IGRpc2FibGUgc3BlY3VsYXRpdmUgaGFuZGxpbmcgZm9yIHNpbmdsZS10aHJlYWRlZA0KPiB1c2Vy c3BhY2UuIFRoaXMgaXMgZm9yIChtaW5vcikgcGVyZm9ybWFuY2UgdHVuaW5nIGFuZCBpcyBwdXNo ZWQNCj4gdG93YXJkcyB0aGUgZW5kIG9mIHRoZSBzZXJpZXMgdG8gbWFrZSBpdCBlYXNpZXIgdG8g ZXhlcmNpc2UgdGhlIHNwZg0KPiBwYXRocyBhcyB0aGV5IGFyZSBpbnRyb2R1Y2VkLg0KPiANCj4g Q29tbWl0IDM1IGFkZHMgc29tZSBleHRyYSBzdGF0aXN0aWNzLiBOb3QgcHVzaGluZyBmb3IgaW5j bHVzaW9uIG9uDQo+IHRoZXNlIGJ1dCBJIHRob3VnaHQgaXQgbWlnaHQgY29tZSBoYW5keSB3aGVu IGRpc2N1c3Npbmcgc3BmIHBlcmZvcm1hbmNlLg0KPiANCj4gQ29tbWl0cyAzNiBhbmQgMzcgYWRk IHNwZiBzdXBwb3J0IG9uIHRoZSBhcm02NCBhcmNoaXRlY3R1cmUuIEl0IHNob3VsZA0KPiBiZSBl YXN5IHRvIGFkZCBvdGhlciBhcmNoaXRlY3R1cmVzIHRvbywgZ2l2ZW4gYWNjZXNzIHRvIHRlc3Qg bWFjaGluZXMuDQo+IA0KPiANCj4gQXMgTGF1cmVudCdzIHByZXZpb3VzIHByb3Bvc2FsIGJlZm9y ZSBMU0YvTU0gMjAxOSB3YXMgcmVqZWN0ZWQgZm9yDQo+IGNvbXBsZXhpdHkgcmVhc29ucywgSSBh bSBob3BpbmcgdGhhdCBzb21lIG9mIHRoZSBjaGFuZ2VzIEkgbWFkZSB3aWxsDQo+IGhlbHAgYWRk cmVzcyB0aGVzZSBjb25jZXJuczoNCj4gDQo+IC0gRmlyc3QsIHRoZSBwYXRjaHNldCBpcyBzdHJ1 Y3R1cmVkIHRvIGJlIGJpc2VjdGFibGUuIEV2ZXJ5IGZldyBjb21taXRzDQo+ICAgdGhlIG5ldyBj b2RlIGdldHMgZW5hYmxlZCwgd2hpY2ggbWFrZXMgZm9yIGVhc2llciB0ZXN0aW5nIGFuZCBhbHNv LA0KPiAgIEkgdGhpbmssIHNob3VsZCBtYWtlIGl0IGVhc2llciBmb3IgcmV2aWV3ZXJzIHRvIHVu ZGVyc3RhbmQgaG93IHRoZQ0KPiAgIHZhcmlvdXMgY29tbWl0cyByZWxhdGUgdG8gZWFjaCBvdGhl ci4NCj4gDQo+IC0gVGhpcyBwYXRjaHNldCByZXF1aXJlcyBubyBjaGFuZ2VzIHRvIG1tYXAgd3Jp dGVycyBvdGhlciB0aGFuIGluc3RydW1lbnRpbmcNCj4gICB0aGUgbW1hcCB3cml0ZSBsb2NrIEFQ SXMuDQo+IA0KPiAtIFRoZSBmYXVsdCBoYW5kbGVyIG9wZXJhdGVzIG9uIGEgc3RhYmxlIGNvcHkg b2YgdGhlIHZtYSwgc28gaXQgZG9lcyBub3QNCj4gICByZXF1aXJlIGFueSBzcGVjaWFsIGNhcmUg dG8gYXZvaWQgdGhlIHBvc3NpYmlsaXR5IG9mIHZtYSBmaWVsZHMgYmVpbmcNCj4gICBtb2RpZmll ZCBjb25jdXJyZW50bHkgd2l0aCBpdC4NCj4gDQo+IA0KPiBtbXRlc3QgcmVzdWx0cyBvbiBIUCBa ODQwIHdvcmtzdGF0aW9uDQo+ICgyIHNvY2tldCBYZW9uIEU1LTI2OTAgdjMgQCAyLjYwR0h6LCAy NCBjb3JlcyAvIDQ4IHRocmVhZHMgdG90YWwpOg0KPiBTZWUgaHR0cHM6Ly93d3cubGVzcGluYXNz ZS5vcmcva2VybmVsL3Y1LjEyLXJjNS1zcGYvbW10ZXN0cy8NCj4gDQo+IEhpZ2hsaWdodHMgZnJv bSB0aGUgYWJvdmU6DQo+IA0KPiAtIHBmdCByZXN1bHRzIHNob3cgc29tZSBwcmV0dHkgZGFtbiBn b29kIHNjYWxhYmlsaXR5LiBUaHJvdWdocHV0IHVzaW5nDQo+ICAgYWxsIDQ4IHRocmVhZHMgKDI0 IGNvcmVzKSBpcyAyNHggdGhhdCBvZiBzaW5nbGUtdGhyZWFkZWQgdGVzdHMsIGFuZA0KPiAgIDMu N3ggaGlnaGVyIHRoYW4gd2hlbiB1c2luZyB0aGUgYmFzZWxpbmUga2VybmVsLiBUaGlzIGlzIHRo ZSByZXN1bHQNCj4gICBvZiBhdm9pZGluZyB3cml0aW5nIGludG8gYW55IHNoYXJlZCBjYWNoZSBs aW5lcywgYmUgaXQgZm9yIG1tYXAgbG9jaw0KPiAgIG9yIHZtYSByZWZjb3VudGluZywgZHVyaW5n IHNwZWN1bGF0aXZlIHBhZ2UgZmF1bHRzLg0KPiAgIChFeHBlcmltZW50cyBzaG93IHRoYXQgYWRk aW5nIGEgc2luZ2xlIGF0b21pYyB2YXJpYWJsZSBwZXIgdm1hLA0KPiAgIHdoaWNoIHdvdWxkIGJl IGluY3JlbWVudGVkIGFuZCBkZWNyZW1lbnRlZCBiZWZvcmUgYW5kIGFmdGVyIHNwZg0KPiAgIGNv cGllcyB0aGUgdm1hLCB3b3VsZCBkZWNyZWFzZSB0aGUgNDgtdGhyZWFkcyB0aHJvdWdocHV0IGJ5 IDYyJSkuDQo+IA0KPiAtIHdpcy1wZiBwYWdlX2ZhdWx0MSAoYW5vbiBUSFApIHNob3dzIHNvbWUg bW9kZXJhdGUgaW1wcm92ZW1lbnQuDQo+IA0KPiAtIHdpcy1wZiBwYWdlX2ZhdWx0MiAocHJpdmF0 ZSBmaWxlIG1hcHBpbmcgd3JpdGUpIHNob3dzIHNvbWUNCj4gICBpbXByb3ZlbWVudCwgdGhvdWdo IG11Y2ggbGVzcyB0aGFuIGluIHRoZSBwZnQgKGFub24pIGNhc2UuDQo+ICAgVGhlIHBlcmZvcm1h bmNlIGlzIGxpbWl0ZWQgYnkgTFJVIGNvbnRlbnRpb24gaGVyZS4NCj4gDQo+IC0gd2lzLXBmIHBh Z2VfZmF1bHQzIChzaGFyZWQgZmlsZSBtYXBwaW5nIHdyaXRlKSBnZXRzIGEgYml0IHNsb3dlci4N Cj4gICBUaGlzIHBhdGNoc2V0IGRvZXMgbm90IGltcGxlbWVudCBzcGVjdWxhdGl2ZSBoYW5kbGlu ZyBmb3IgdGhpcyBjYXNlLg0KPiANCj4gLSB3aXMtbW1hcCBsaWtlcyB0aGUgY2hhbmdlLCBldmVu IHRob3VnaCBpdCBkb2Vzbid0IGRvIG11Y2ggcGFnZSBmYXVsdHMuDQo+ICAgVGhpcyBzZWVtcyB0 byBiZSBhIHNpZGUgZWZmZWN0IG9mIHJjdSBzYWZlIHZtYSBmcmVlaW5nIHJlZHVjaW5nIHZtYQ0K PiAgIHJldXNlIGJldHdlZW4gdGhyZWFkcyBydW5uaW5nIG9uIHNlcGFyYXRlIENQVXMuDQo+IA0K PiAtIHdpcy1tYWxsb2MgYmVuZWZpdHMgZnJvbSBhIG1peCBvZiB0aGUgYW5vbiB2bWEgYW5kIHJj dSBlZmZlY3RzLg0KPiANCj4gLSBtYWNybyBiZW5jaG1hcmtzIGFyZSBtb3N0bHkgcGVyZm9ybWFu Y2UgbmV1dHJhbCwgd2l0aCBzb21lIHNtYWxsDQo+ICAgYmVuZWZpdCBpbiBsaW1pdGVkIGNhc2Vz Lg0KPiANCj4gDQo+IEFub3RoZXIgcG90ZW50aWFsIG1vdGl2YXRpb24gZm9yIHRoaXMgaXMgdGhl IEFuZHJvaWQgdXNlIGNhc2UuDQo+IFNldmVyYWwgQW5kcm9pZCB2ZW5kb3JzIGhhdmUgcGlja2Vk IHVwIHRoZSBwcmV2aW91cyBTUEYgcHJvcG9zYWwgYW5kDQo+IGluY2x1ZGVkIGl0IG9uIHRoZWly IGRldmljZXMgYmVjYXVzZSBpdCByZWR1Y2VzIGFwcGxpY2F0aW9uIHN0YXJ0LXVwDQo+IHRpbWVz LCB3aGljaCBpcyBhbiBpbXBvcnRhbnQgcGVyZm9ybWFuY2UgbWV0cmljIGZvciB0aGVtLg0KPiAN Cj4gRWFybHkgQW5kcm9pZCB0ZXN0IHJlc3VsdHMgd2l0aCB0aGlzIHBhdGNoc2V0IChhY3R1YWxs eSBhIGJhY2twb3J0IG9mDQo+IGl0IHRvIHRoZSBBbmRyb2lkIDUuMTAga2VybmVsKSBzaG93IHRo YXQgaXQgaXMgYWxzbyBlZmZlY3RpdmUgaW4NCj4gcmVkdWNpbmcgYXBwbGljYXRpb24gc3RhcnQg dGltZXMsIHNpbWlsYXIgdG8gd2hhdCB0aGUgcHJpb3IgU1BGDQo+IHByb3Bvc2FsIGRpZC4gSSBk byBub3QgaGF2ZSBhIGRpcmVjdCBjb21wYXJpc29uIGF2YWlsYWJsZSB0aG91Z2gsDQo+IGFzIG91 ciBwb3J0IG9mIExhdXJlbnQncyBwcmlvciBTUEYgc2VyaWVzIHRvIHRoZSA1LjEwIGFuZHJvaWQg a2VybmVsDQo+IGlzIHNob3dpbmcgc29tZSBpbnN0YWJpbGl0aWVzLiBTUEYgYWJvcnQgcmF0ZXMg YXJlIGluIHRoZSBsb3cgc2luZ2xlDQo+IGRpZ2l0IHBlcmNlbnRhZ2UgcmFuZ2UsIGFuZCBmZXcg b2YgdGhlc2UgYWJvcnRzIGFyZSBjYXVzZWQgYnkgdGhlIGZhY3QNCj4gdGhhdCB3ZSBvbmx5IHVz ZSBhIGdsb2JhbCBjb3VudGVyIHRvIGRldGVjdCBmYXVsdCB2cyB3cml0ZXIgY29uY3VycmVuY3ku DQo+IFdlIGFyZSBzZWVpbmcgbGF1bmNoIHRpbWUgaW1wcm92ZW1lbnRzIGZvciBhIHZhcmlldHkg b2YgQW5kcm9pZCBwYWNrYWdlcw0KPiB0aGF0IHVzZSBhIGxhcmdlIG51bWJlciBvZiB0aHJlYWRz IGR1cmluZyBzdGFydHVwOg0KPiBNZWl0dWFuOiAxNSUNCj4gSXFpeWk6IDglDQo+IFRpa3Rvazog NCUNCj4gWW91VHViZTogMyUNCj4gSSBleHBlY3QgU3VyZW4gbWF5IGhhdmUgbW9yZSBBbmRyb2lk IG51bWJlcnMgZnJvbSBwYXJ0bmVycyBpbiBhIGZldyBkYXlzLg0KPiANCg0KVGhhbmtzIGZvciB0 aGUgZWZmb3J0OikNCg0KV2UgaGF2ZSB0cmllZCB0byBtZXJnZSB0aGlzIFNQRiBzZXJpZXMgdG8g b3VyIGNvZGUgYmFzZSwgYW5kIG1lYXN1cmVkDQp0aGUgZGlmZmVyZW5jZSBvZiBhcHBsaWNhdGlv biBsYXVuY2ggdGltZS4gQXMgeW91IG1lbnRpb25lZCwgaXQgaGFzDQpncmVhdCBpbXByb3ZlbWVu dHMsIGVzcGVjaWFsbHkgZm9yIHRob3NlIGhpZ2ggVExQIG9uZXMuIA0KDQpIZXJlIGlzIGEgYnJp ZWYgcmVwb3J0IG9mIG91ciBleHBlcmltZW50LCBGWVIuDQoNCihUaGUgbGF1bmNoIHRpbWUgaXMg aW4gbXMpDQoNCmFwcCAgICAgICAgICB2ZXJzaW9uLWNvZGUgICAgICB3L28gU1BGICAgICAgdy8g U1BGICAgICAgaW1wcm92ZSglKQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpNZWl0dWFuICAgICAgOTAwMTQwNjAxICAg ICAgICAgMjQyNyAgICAgICAgIDE2NTUgICAgICAgIDMxLjgxDQpUYW9iYW8gICAgICAgMjQxICAg ICAgICAgICAgICAgMTIwMCAgICAgICAgIDExNzAgICAgICAgIDIuNQ0KV2VDaGF0ICAgICAgIDEz NjAgICAgICAgICAgICAgIDk0MSAgICAgICAgICA5MjIgICAgICAgICAyLjAyDQpMaW5lICAgICAg ICAgMTYwNzE0MDEgICAgICAgICAgNjg2ICAgICAgICAgIDY2NSAgICAgICAgIDMuMDYNCg0KPiBD aHJvbWVPUyBtZWFzdXJlbWVudHMgd2l0aCB0aGUgcHJldmlvdXMgU1BGIHBhdGNoc2V0IGFsc28g c2hvd2VkDQo+IHNpZ25pZmljYW50IHJlZHVjdGlvbiBpbiBwYWdlIGZhdWx0LCBtbWFwIGFuZCBt dW5tYXAgdGltZXMuIFdlIGRvIG5vdA0KPiBoYXZlIGRhdGEgb24gdGhpcyBuZXcgU1BGIHByb3Bv c2FsIHlldCwgdGhvdWdoLg0KPiANCj4gDQo+IEkgd291bGQgbGlrZSBhbnkgZmVlZGJhY2sgb24g dGhlIHBhdGNoc2V0LCBhbmQgbW9zdCBwYXJ0aWN1bGFybHkgYWJvdXQ6DQo+IC0gSGFzIHRoZSBj b21wbGV4aXR5IGlzc3VlIGluIHByZXZpb3VzIFNQRiBwcm9wb3NhbHMgYmVlbiBzdWZmaWNpZW50 bHkNCj4gICBhZGRyZXNzZWQgPw0KPiAtIEFyZSB0aGUgcGVyZm9ybWFuY2UgYmVuZWZpdHMgY29t cGVsbGluZyBlbm91Z2ggPyBJIHRoaW5rIHRoZSBhbnN3ZXIgaXMNCj4gICB5ZXMgZm9yIHRoZSBh bm9uIGNhc2UsIGJ1dCBtYXliZSBub3QgYXMgY2xlYXIgZm9yIHRoZSBmaWxlIGNhc2VzLg0KPiAt IElzIHRoZSBBbmRyb2lkIHVzZSBjYXNlIGNvbXBlbGxpbmcgZW5vdWdoIHRvIG1lcmdlIHRoZSBl bnRpcmUgcGF0Y2hzZXQgPw0KPiAtIENhbiB3ZSB1c2UgdGhpcyBhcyBhIGZvdW5kYXRpb24gZm9y IG90aGVyIG1tYXAgc2NhbGFiaWxpdHkgd29yayA/DQo+ICAgSSBoZWFyIHNldmVyYWwgcHJvcG9z YWxzIGludm9sdmluZyB0aGUgaWRlYSBvZiBSQ1UgYmFzZWQgZmF1bHQgaGFuZGxpbmcsDQo+ICAg YW5kIGhvcGUgdGhpcyBwcm9wb3NhbCBtaWdodCBzZXJ2ZSBhcyBhIGJ1aWxkaW5nIGJsb2NrIGZv ciB0aGVzZSA/DQo+IA0KPiANCj4gTWljaGVsIExlc3BpbmFzc2UgKDM3KToNCj4gICBtbWFwIGxv Y2tpbmcgQVBJOiBtbWFwX2xvY2tfaXNfY29udGVuZGVkIHJldHVybnMgYSBib29sDQo+ICAgbW1h cCBsb2NraW5nIEFQSTogbmFtZSB0aGUgcmV0dXJuIHZhbHVlcw0KPiAgIGRvX2Fub255bW91c19w YWdlOiB1c2UgdXBkYXRlX21tdV90bGIoKQ0KPiAgIGRvX2Fub255bW91c19wYWdlOiByZWR1Y2Ug Y29kZSBkdXBsaWNhdGlvbg0KPiAgIG1tOiBpbnRyb2R1Y2UgQ09ORklHX1NQRUNVTEFUSVZFX1BB R0VfRkFVTFQNCj4gICB4ODYvbW06IGRlZmluZSBBUkNIX1NVUFBPUlRTX1NQRUNVTEFUSVZFX1BB R0VfRkFVTFQNCj4gICBtbTogYWRkIEZBVUxUX0ZMQUdfU1BFQ1VMQVRJVkUgZmxhZw0KPiAgIG1t OiBhZGQgZG9faGFuZGxlX21tX2ZhdWx0KCkNCj4gICBtbTogYWRkIHBlci1tbSBtbWFwIHNlcXVl bmNlIGNvdW50ZXIgZm9yIHNwZWN1bGF0aXZlIHBhZ2UgZmF1bHQgaGFuZGxpbmcuDQo+ICAgbW06 IHJjdSBzYWZlIHZtYSBmcmVlaW5nDQo+ICAgeDg2L21tOiBhdHRlbXB0IHNwZWN1bGF0aXZlIG1t IGZhdWx0cyBmaXJzdA0KPiAgIG1tOiByZWZhY3RvciBfX2hhbmRsZV9tbV9mYXVsdCgpIC8gaGFu ZGxlX3B0ZV9mYXVsdCgpDQo+ICAgbW06IGltcGxlbWVudCBzcGVjdWxhdGl2ZSBoYW5kbGluZyBp biBfX2hhbmRsZV9tbV9mYXVsdCgpLg0KPiAgIG1tOiBhZGQgcHRlX21hcF9sb2NrKCkgYW5kIHB0 ZV9zcGlubG9jaygpDQo+ICAgbW06IGltcGxlbWVudCBzcGVjdWxhdGl2ZSBoYW5kbGluZyBpbiBk b19hbm9ueW1vdXNfcGFnZSgpDQo+ICAgbW06IGVuYWJsZSBzcGVjdWxhdGl2ZSBmYXVsdCBoYW5k bGluZyB0aHJvdWdoIGRvX2Fub255bW91c19wYWdlKCkNCj4gICBtbTogaW1wbGVtZW50IHNwZWN1 bGF0aXZlIGhhbmRsaW5nIGluIGRvX251bWFfcGFnZSgpDQo+ICAgbW06IGVuYWJsZSBzcGVjdWxh dGl2ZSBmYXVsdCBoYW5kbGluZyBpbiBkb19udW1hX3BhZ2UoKQ0KPiAgIG1tOiBpbXBsZW1lbnQg c3BlY3VsYXRpdmUgaGFuZGxpbmcgaW4gd3BfcGFnZV9jb3B5KCkNCj4gICBtbTogaW1wbGVtZW50 IGFuZCBlbmFibGUgc3BlY3VsYXRpdmUgZmF1bHQgaGFuZGxpbmcgaW4gaGFuZGxlX3B0ZV9mYXVs dCgpDQo+ICAgbW06IGltcGxlbWVudCBzcGVjdWxhdGl2ZSBoYW5kbGluZyBpbiBkb19zd2FwX3Bh Z2UoKQ0KPiAgIG1tOiBlbmFibGUgc3BlY3VsYXRpdmUgZmF1bHQgaGFuZGxpbmcgdGhyb3VnaCBk b19zd2FwX3BhZ2UoKQ0KPiAgIG1tOiByY3Ugc2FmZSB2bWEtPnZtX2ZpbGUgZnJlZWluZw0KPiAg IG1tOiBpbXBsZW1lbnQgc3BlY3VsYXRpdmUgaGFuZGxpbmcgaW4gX19kb19mYXVsdCgpDQo+ICAg bW06IGltcGxlbWVudCBzcGVjdWxhdGl2ZSBoYW5kbGluZyBpbiBmaWxlbWFwX2ZhdWx0KCkNCj4g ICBtbTogaW1wbGVtZW50IHNwZWN1bGF0aXZlIGZhdWx0IGhhbmRsaW5nIGluIGZpbmlzaF9mYXVs dCgpDQo+ICAgbW06IGltcGxlbWVudCBzcGVjdWxhdGl2ZSBoYW5kbGluZyBpbiBkb19mYXVsdF9h cm91bmQoKQ0KPiAgIG1tOiBpbXBsZW1lbnQgc3BlY3VsYXRpdmUgaGFuZGxpbmcgaW4gZmlsZW1h cF9tYXBfcGFnZXMoKQ0KPiAgIGZzOiBsaXN0IGZpbGUgdHlwZXMgdGhhdCBzdXBwb3J0IHNwZWN1 bGF0aXZlIGZhdWx0cy4NCj4gICBtbTogZW5hYmxlIHNwZWN1bGF0aXZlIGZhdWx0IGhhbmRsaW5n IGZvciBzdXBwb3J0ZWQgZmlsZSB0eXBlcy4NCj4gICBleHQ0OiBpbXBsZW1lbnQgc3BlY3VsYXRp dmUgZmF1bHQgaGFuZGxpbmcNCj4gICBmMmZzOiBpbXBsZW1lbnQgc3BlY3VsYXRpdmUgZmF1bHQg aGFuZGxpbmcNCj4gICBtbTogZW5hYmxlIHNwZWN1bGF0aXZlIGZhdWx0IGhhbmRsaW5nIG9ubHkg Zm9yIG11bHRpdGhyZWFkZWQgdXNlciBzcGFjZQ0KPiAgIG1tOiByY3Ugc2FmZSB2bWEgZnJlZWlu ZyBvbmx5IGZvciBtdWx0aXRocmVhZGVkIHVzZXIgc3BhY2UNCj4gICBtbTogc3BmIHN0YXRpc3Rp Y3MNCj4gICBhcm02NC9tbTogZGVmaW5lIEFSQ0hfU1VQUE9SVFNfU1BFQ1VMQVRJVkVfUEFHRV9G QVVMVA0KPiAgIGFybTY0L21tOiBhdHRlbXB0IHNwZWN1bGF0aXZlIG1tIGZhdWx0cyBmaXJzdA0K PiANCj4gIGFyY2gvYXJtNjQvS2NvbmZpZyAgICAgICAgICAgIHwgICAxICsNCj4gIGFyY2gvYXJt NjQvbW0vZmF1bHQuYyAgICAgICAgIHwgIDUyICsrKw0KPiAgYXJjaC94ODYvS2NvbmZpZyAgICAg ICAgICAgICAgfCAgIDEgKw0KPiAgYXJjaC94ODYvbW0vZmF1bHQuYyAgICAgICAgICAgfCAgNTEg KysrDQo+ICBmcy9idHJmcy9maWxlLmMgICAgICAgICAgICAgICB8ICAgMSArDQo+ICBmcy9jaWZz L2ZpbGUuYyAgICAgICAgICAgICAgICB8ICAgMSArDQo+ICBmcy9leGVjLmMgICAgICAgICAgICAg ICAgICAgICB8ICAgMSArDQo+ICBmcy9leHQ0L2ZpbGUuYyAgICAgICAgICAgICAgICB8ICAgMSAr DQo+ICBmcy9leHQ0L2lub2RlLmMgICAgICAgICAgICAgICB8ICAgNyArLQ0KPiAgZnMvZjJmcy9m aWxlLmMgICAgICAgICAgICAgICAgfCAgIDggKy0NCj4gIGZzL2Z1c2UvZmlsZS5jICAgICAgICAg ICAgICAgIHwgICAxICsNCj4gIGZzL25mcy9maWxlLmMgICAgICAgICAgICAgICAgIHwgICAxICsN Cj4gIGZzL3ViaWZzL2ZpbGUuYyAgICAgICAgICAgICAgIHwgICAxICsNCj4gIGZzL3Zib3hzZi9m aWxlLmMgICAgICAgICAgICAgIHwgICAxICsNCj4gIGZzL3hmcy94ZnNfZmlsZS5jICAgICAgICAg ICAgIHwgICAzICsNCj4gIGluY2x1ZGUvbGludXgvbW0uaCAgICAgICAgICAgIHwgIDc2ICsrKy0N Cj4gIGluY2x1ZGUvbGludXgvbW1fdHlwZXMuaCAgICAgIHwgIDIwICstDQo+ICBpbmNsdWRlL2xp bnV4L21tYXBfbG9jay5oICAgICB8IDEwOSArKysrLS0NCj4gIGluY2x1ZGUvbGludXgvdm1fZXZl bnRfaXRlbS5oIHwgIDI4ICsrDQo+ICBpbmNsdWRlL2xpbnV4L3Ztc3RhdC5oICAgICAgICB8ICAg NiArDQo+ICBrZXJuZWwvZm9yay5jICAgICAgICAgICAgICAgICB8ICAyNiArLQ0KPiAgbW0vS2Nv bmZpZyAgICAgICAgICAgICAgICAgICAgfCAgMjIgKysNCj4gIG1tL0tjb25maWcuZGVidWcgICAg ICAgICAgICAgIHwgICA3ICsNCj4gIG1tL2ZpbGVtYXAuYyAgICAgICAgICAgICAgICAgIHwgIDcz ICsrKy0NCj4gIG1tL21lbW9yeS5jICAgICAgICAgICAgICAgICAgIHwgNjM0ICsrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0NCj4gIG1tL21tYXAuYyAgICAgICAgICAgICAgICAgICAg IHwgIDExICstDQo+ICBtbS9ub21tdS5jICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQ0KPiAg bW0vdm1zdGF0LmMgICAgICAgICAgICAgICAgICAgfCAgMjggKysNCj4gIDI4IGZpbGVzIGNoYW5n ZWQsIDk0MiBpbnNlcnRpb25zKCspLCAyMzUgZGVsZXRpb25zKC0pDQoNCg==