Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp410071pxf; Wed, 31 Mar 2021 06:34:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyz2hTei/hFBvNseWnqXzD2dlwlhhxBwqUx1Gqxm0VVVyZtOP1f1R8RISlUpUehM4mnM/X1 X-Received: by 2002:a17:906:2dc1:: with SMTP id h1mr3612970eji.460.1617197670277; Wed, 31 Mar 2021 06:34:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617197670; cv=none; d=google.com; s=arc-20160816; b=D37+YDjd4nW8dDuMOzJrnbkIBws8l2xDv9KtJQ/3gqSwZP1yExWBYvyqFLN9bIZuUE xHcgPVQm+IFH70U6heObct2SMkRA3V+cooeSInE76bumzFsZf+D0Z6WbPtqwvpdL08W0 7+CXWrsW8rRaLTyjPGK/q2/GN9AEzWJXQOl1tpe22fimhKdIFJ/olnZ4VxmHDH0nRwbB iqBHga84V6+0Yg0rPAZDdJCbkbe5U0Lc1sRouNkFowz0HFIAvB78RMQiQEid9le71E7J cHgKKtNfJtFtsQZPjHIXFDLm7LH6te1CY3Fw1IcikvP3eul/wk8RZAhyFJn6+aGdDguA CwDA== 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 :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:to:from:thread-topic:subject :dkim-signature; bh=Naexs4tl1FVceJP5btfutdYUcksaF3qFBTRoqpZ2CZU=; b=XOtmM7C4QkwT5GoLl4ZWt+ZD7d3Iq/FuDlOXxIJ+ycLEobXKe9cD3qfwAOSJjH84oT J9eO5B7q//gC1Peiby+DPIn+l1UVcpcHtQwExvc/dO0nAmTpX4+BSh2mfFACq3Mb8wp+ 3nS50hVInOX69odQTvWpQQP00gsYjJeIuN44Vkd189vIu9OlWUr/vT7U9tZjCgCm5fXx LvV92lqUqrfRyjOrXCtFx5ai6ftV63t2mjldXENcWfdweuY513Z3gzG2XSqPWKs9eMwc Zd9y5CRGWezjGytdPXIQ+uPZO5rNdJEL4m3JSVp2/0RUzkuDT3w/VLsYV51Twys+sIyV lzhg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amazon.com header.s=amazon201209 header.b=fH4L9nAi; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amazon.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a4si1510081ejv.296.2021.03.31.06.33.59; Wed, 31 Mar 2021 06:34:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs-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=@amazon.com header.s=amazon201209 header.b=fH4L9nAi; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amazon.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235810AbhCaNd1 (ORCPT + 99 others); Wed, 31 Mar 2021 09:33:27 -0400 Received: from smtp-fw-4101.amazon.com ([72.21.198.25]:8534 "EHLO smtp-fw-4101.amazon.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235804AbhCaNdM (ORCPT ); Wed, 31 Mar 2021 09:33:12 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1617197592; x=1648733592; h=from:to:date:message-id:references:in-reply-to: content-id:mime-version:content-transfer-encoding:subject; bh=Naexs4tl1FVceJP5btfutdYUcksaF3qFBTRoqpZ2CZU=; b=fH4L9nAidI16SLjojTWsQkhpja46a1xmC/urIWAE01OFhXpb214/1W9T 7SvcGg55gcWk6WAO5So3akhlL0rYQEiTH8HaZILTNaTGSwXZIXvbeE39H yNZklOvfn0owLC1eHLKKCi0gH7nUYRcoKZ+mxBRGCqTdnaC+/fwwTM8uE w=; X-IronPort-AV: E=Sophos;i="5.81,293,1610409600"; d="scan'208";a="98009096" Subject: Re: NFS read performance degradation after upgrading to kernel 5.4.* Thread-Topic: NFS read performance degradation after upgrading to kernel 5.4.* Received: from iad12-co-svc-p1-lb1-vlan2.amazon.com (HELO email-inbound-relay-2c-4e7c8266.us-west-2.amazon.com) ([10.43.8.2]) by smtp-border-fw-out-4101.iad4.amazon.com with ESMTP; 31 Mar 2021 13:31:03 +0000 Received: from EX13D18EUA004.ant.amazon.com (pdx1-ws-svc-p6-lb9-vlan2.pdx.amazon.com [10.236.137.194]) by email-inbound-relay-2c-4e7c8266.us-west-2.amazon.com (Postfix) with ESMTPS id 69F7AA2454; Wed, 31 Mar 2021 13:31:02 +0000 (UTC) Received: from EX13D18EUA004.ant.amazon.com (10.43.165.164) by EX13D18EUA004.ant.amazon.com (10.43.165.164) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 31 Mar 2021 13:31:01 +0000 Received: from EX13D18EUA004.ant.amazon.com ([10.43.165.164]) by EX13D18EUA004.ant.amazon.com ([10.43.165.164]) with mapi id 15.00.1497.012; Wed, 31 Mar 2021 13:31:01 +0000 From: "Mohamed Abuelfotoh, Hazem" To: Trond Myklebust , "linux-nfs@vger.kernel.org" Thread-Index: AQHXJi8v/NKQR+8kWUCKAGuVGnxUbaqeOVSA Date: Wed, 31 Mar 2021 13:31:00 +0000 Message-ID: References: <0D482540-0455-4AA7-B534-FCE24793ECB0@amazon.com> <9f3477020dd5d6f120ddc2cc80ada38e1cf258af.camel@hammerspace.com> In-Reply-To: <9f3477020dd5d6f120ddc2cc80ada38e1cf258af.camel@hammerspace.com> Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.43.165.192] Content-Type: text/plain; charset="utf-8" Content-ID: <7981AB335B52824FA73A211FBFC98302@amazon.com> MIME-Version: 1.0 Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org T2sgSSBnb3QgdGhhdCBidXQgYmFzZWQgb24gdGhlIGZhY3RzIG1lbnRpb25lZCBpbiBodHRwczov L2J1Z3ppbGxhLmtlcm5lbC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDkzOSBpdCBsb29rcyBsaWtl IHRoZSBiYWQgYmVoYXZpb3VyIHdhcyBtYWlubHkgcmVsYXRlZCB0byB1c2luZyB0aGUgbWF4aW11 bSByc2l6ZSAxTUIgd2hpbGUgcmVhZCBhaGVhZCB3YXMgMTVNQiBiYXNlZCBvbiB0aGUgZXF1YXRp b24gb2YgMTUqcnNpemUgd2hpbGUgaW4gY29uZ2VzdGVkL2xvdyB0aHJvdWdocHV0L0hpZ2ggbGF0 ZW5jeSAgbmV0d29ya3MgdGhlIGNsaWVudCBzaG91bGRu4oCZdCB1c2UgMU1CIGFzIHJzaXplIGlu IHRoZSBmaXJzdCBwbGFjZSwgbXkgcG9pbnQgaXMgdGhhdCBpdCdzIHJlYXNvbmFibGUgdG8gY2Fs Y3VsYXRlIHRoZSBtYXhpbXVtIHJlYWQgYWhlYWQgc2l6ZSBiYXNlZCBvbiB0aGUgdXRpbGl6ZWQg cnNpemUgd2hpbGUgbm93IGl0J3MgY29uc3RhbnQgYXMgMTI4S0IgcmVnYXJkbGVzcyB0aGUgY29u ZmlndXJlZCBuZXR3b3JraW5nIHJzaXplLCBXZSBoYXZlIHNlZW4gbXVsdGlwbGUgY3VzdG9tZXJz IHJlcG9ydGluZyB0aGlzIHJlZ3Jlc3Npb24gYWZ0ZXIgdXBncmFkaW5nIHRvIGtlcm5lbCA1LjQg YW5kIEkgYW0gcHJldHR5IHN1cmUgd2Ugd2lsbCBnZXQgbW9yZSBMaW51eCBjbGllbnRzIHJlcG9y dGluZyB0aGlzIHdpdGggbW9yZSBwZW9wbGUgbW92aW5nIHRvIGtlcm5lbCA1LjQgYW5kIGxhdGVy Lg0KDQpUaGFuayB5b3UuDQoNCkhhemVtDQoNCg0KDQpMaW5rcw0KDQpbMV0gaHR0cHM6Ly9idWd6 aWxsYS5rZXJuZWwub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzkNCg0K77u/T24gMzEvMDMvMjAy MSwgMTU6MTAsICJUcm9uZCBNeWtsZWJ1c3QiIDx0cm9uZG15QGhhbW1lcnNwYWNlLmNvbT4gd3Jv dGU6DQoNCiAgICBDQVVUSU9OOiBUaGlzIGVtYWlsIG9yaWdpbmF0ZWQgZnJvbSBvdXRzaWRlIG9m IHRoZSBvcmdhbml6YXRpb24uIERvIG5vdCBjbGljayBsaW5rcyBvciBvcGVuIGF0dGFjaG1lbnRz IHVubGVzcyB5b3UgY2FuIGNvbmZpcm0gdGhlIHNlbmRlciBhbmQga25vdyB0aGUgY29udGVudCBp cyBzYWZlLg0KDQoNCg0KICAgIE9uIFdlZCwgMjAyMS0wMy0zMSBhdCAxMjo1MyArMDAwMCwgTW9o YW1lZCBBYnVlbGZvdG9oLCBIYXplbSB3cm90ZToNCiAgICA+IEhpIFRyb25kLA0KICAgID4NCiAg ICA+IEkgYW0gd29uZGVyaW5nIGlmIHdlIHNob3VsZCBjb25zaWRlciByYWlzaW5nIHRoZSBkZWZh dWx0IG1heGltdW0gTkZTDQogICAgPiByZWFkIGFoZWFkIHNpemUgZ2l2ZW4gdGhlIGZhY3RzIEkg bWVudGlvbmVkIGluIG15IHByZXZpb3VzIGUtbWFpbC4NCiAgICA+DQoNCiAgICBXZSBjYW4ndCBr ZWVwIGNoYW5naW5nIHRoZSBkZWZhdWx0IGV2ZXJ5IHRpbWUgc29tZW9uZSB0cmllcyB0byBtZWFz dXJlDQogICAgYSBuZXcgd29ya2xvYWQuDQoNCiAgICBUaGUgY2hhbmdlIGluIDUuNCB3YXMgYWxz byBtZWFzdXJlbWVudCBiYXNlZCwgYW5kIHdhcyBkdWUgdG8gcG9vcg0KICAgIHBlcmZvcm1hbmNl IGluIGNhc2VzIHdoZXJlIHJzaXplL3dzaXplIGlzIHNtYWxsZXIgYW5kIHJlYWRhaGVhZCB3YXMN CiAgICBvdmVyc2hvb3RpbmcuDQoNCg0KDQogICAgPiBUaGFuayB5b3UuDQogICAgPg0KICAgID4g SGF6ZW0NCiAgICA+DQogICAgPiBPbiAyOS8wMy8yMDIxLCAxNzowNywgIk1vaGFtZWQgQWJ1ZWxm b3RvaCwgSGF6ZW0iIDwNCiAgICA+IGFidWVoYXplQGFtYXpvbi5jb20+IHdyb3RlOg0KICAgID4N CiAgICA+DQogICAgPiAgICAgSGVsbG8gVGVhbSwNCiAgICA+DQogICAgPiAgICAgLVdlIGhhdmUg Z290IG11bHRpcGxlIGN1c3RvbWVycyBjb21wbGFpbmluZyBhYm91dCBORlMgcmVhZA0KICAgID4g cGVyZm9ybWFuY2UgZGVncmFkYXRpb24gYWZ0ZXIgdGhleSB1cGdyYWRlZCB0byBrZXJuZWwgNS40 LioNCiAgICA+DQogICAgPiAgICAgLUFmdGVyIGRvaW5nIHNvbWUgZGVlcCBkaXZlIGFuZCB0ZXN0 aW5nIHdlIGZpZ3VyZWQgb3V0IHRoYXQgdGhlDQogICAgPiByZWFzb24gYmVoaW5kIHRoZSByZWdy ZXNzaW9uIHdhcyBwYXRjaCAgTkZTOiBPcHRpbWlzZSB0aGUgZGVmYXVsdA0KICAgID4gcmVhZGFo ZWFkIHNpemVbMV0gV2hpY2ggaGFzIGJlZW4gbWVyZ2VkIHRvIExpbnV4IGtlcm5lbHMgNS40Liog YW5kDQogICAgPiBhYm92ZS4NCiAgICA+ICAgICAtT3VyIGN1c3RvbWVycyBhcmUgdXNpbmcgQVdT IEVDMiBpbnN0YW5jZXMgYXMgY2xpZW50IG1vdW50aW5nIEVGUw0KICAgID4gZXhwb3J0ICh3aGlj aCBpcyBBV1MgbWFuYWdlZCBORlNWNCBzZXJ2aWNlKSwgSSBhbSBzaGFyaW5nIHRoZSByZXN1bHRz DQogICAgPiB0aGF0IHdlIGdvdCBiZWZvcmUgJiBhZnRlciB0aGUgdXBncmFkZSBnaXZlbiB0aGF0 IHRoZSBORlMgc2VydmVyKEVGUykNCiAgICA+IHNob3VsZCBiZSBhYmxlIHRvIGFjaGlldmUgYmV0 d2VlbiAyNTAtMzAwTUIvc2VjIHdoaWNoIHRoZSBjbGllbnRzIGNhbg0KICAgID4gYWNoaWV2ZSB3 aXRob3V0IHBhdGNoWzFdIHdoaWxlIGdldHRpbmcgcXVhcnRlciBvZiB0aGlzIHNwZWVkIGFyb3Vu ZA0KICAgID4gNzBNQi9zZWMgd2l0aCB0aGUgbWVudGlvbmVkIHBhdGNoIG1lcmdlZCBhcyBzZWVu IGJlbG93Lg0KICAgID4NCiAgICA+DQogICAgPiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiAgICA+ICMjIyMjIyMj IyMjIyMjIyMjIyMjIw0KICAgID4NCiAgICA+DQogICAgPiAgICAgQmVmb3JlIHRoZSB1cGdyYWRl Og0KICAgID4gICAgICMgdW5hbWUgLXINCiAgICA+ICAgICA0LjE0LjIyNS0xNjguMzU3LmFtem4y Lng4Nl82NA0KICAgID4gICAgIFtyb290QGlwLTE3Mi0zMS0yOC0xMzUgZWMyLXVzZXJdIyBzeW5j OyBlY2hvIDMgPg0KICAgID4gL3Byb2Mvc3lzL3ZtL2Ryb3BfY2FjaGVzDQogICAgPiAgICAgW3Jv b3RAaXAtMTcyLTMxLTI4LTEzNSBlYzItdXNlcl0jIG1vdW50IC10IG5mczQgLW8NCiAgICA+IG5m c3ZlcnM9NC4xLHJzaXplPTEwNDg1NzYsd3NpemU9MTA0ODU3NixoYXJkLHRpbWVvPTYwMCxyZXRy YW5zPTIsbm9yZQ0KICAgID4gc3Zwb3J0IGZzLTY3MDBmNTUzLmVmcy5ldS13ZXN0LTEuYW1hem9u YXdzLmNvbTovIGVmcw0KICAgID4gICAgIFtyb290QGlwLTE3Mi0zMS0yOC0xMzUgZWMyLXVzZXJd IyByc3luYyAtLXByb2dyZXNzIGVmcy90ZXN0IC4NCiAgICA+ICAgICB0ZXN0DQogICAgPiAgICAg ICA4LDU4OSw5MzQsNTkyIDEwMCUgIDMxMy4yME1CL3MgICAgMDowMDoyNiAoeGZyIzEsIHRvLWNo az0wLzEpDQogICAgPg0KICAgID4NCiAgICA+ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KICAgID4gIyMjIyMjIyMj IyMjIyMjIyMjIyMjDQogICAgPg0KICAgID4gICAgIEFmdGVyIHRoZSB1cGdyYWRlIHVzaW5nIHRo ZSBzYW1lIGNsaWVudCAmIHNlcnZlcjoNCiAgICA+ICAgICAjdW5hbWUgLXI7IHN5bmM7IGVjaG8g MyA+IC9wcm9jL3N5cy92bS9kcm9wX2NhY2hlczsgLi9uZnMtDQogICAgPiByZWFkYWhlYWQgc2hv dyAvaG9tZS9lYzItdXNlci9lZnMvO3JzeW5jIC0tcHJvZ3Jlc3MgZWZzL3Rlc3QgLg0KICAgID4g ICAgIDUuNC4wLTEuMTMyLjY0LmFtem4yLng4Nl82NA0KICAgID4gICAgIC9ob21lL2VjMi11c2Vy L2VmcyAwOjQwIC9zeXMvY2xhc3MvYmRpLzA6NDAvcmVhZF9haGVhZF9rYiA9IDEyOA0KICAgID4g ICAgIHRlc3QNCiAgICA+ICAgICAgIDEsMDczLDc0MSw4MjQgMTAwJSAgIDY4LjYxTUIvcyAgICAw OjAwOjE0ICh4ZnIjMSwgdG8tY2hrPTAvMSkNCiAgICA+DQogICAgPg0KICAgID4gICAgIC1XZSBh cmUgIHJlY29tbWVuZGluZ1syXSBFRlMgdXNlcnMgdG8gdXNlIHJzaXplPTEwNDg1NzYgYXMgbW91 bnQNCiAgICA+IG9wdGlvbiBmb3IgZ2V0dGluZyB0aGUgYmVzdCByZWFkIHBlcmZvcm1hbmNlIGZy b20gdGhlaXIgRUZTIGV4cG9ydHMNCiAgICA+IGdpdmVuIHRoYXQgRUMyIHRvIEVGUyB0cmFmZmlj IGlzIHJlc2lkaW5nIGluIHRoZSBzYW1lIEFXUw0KICAgID4gYXZhaWxhYmlsaXR5IHpvbmUgaGVu Y2UgaXQgaGFzIGxvdyBsYXRlbmN5IGFuZCB1cCB0byAyNTAtMzAwTUIvc2VjDQogICAgPiB0aHJv dWdocHV0IGhvd2V2ZXIgd2l0aCB0aGUgbWVudGlvbmVkIHBhdGNoIG1lcmdlZCB0aGUgY3VzdG9t ZXIgY2Fu4oCZdA0KICAgID4gYWNoaWV2ZSB0aGlzIHRocm91Z2hwdXQgYWZ0ZXIgdGhlIGtlcm5l bCB1cGdyYWRlIGJlY2F1c2UgdGhlIGRlZmF1bHQNCiAgICA+IE5GUyByZWFkIGFoZWFkIGhhcyBi ZWVuIGRlY3JlYXNlZCBmcm9tICgxNSpyc2l6ZSk9MTUgTUIgdG8gMTI4S0Igc28NCiAgICA+IHRo ZSBjbGllbnRzIGhhdmUgdG8gbWFudWFsbHkgcmFpc2UgdGhlIG1hbnVhbGx5IHJhaXNlIHRoZQ0K ICAgID4gcmVhZF9haGVhZF9rYiBwYXJhbWV0ZXIgZnJvbSAxMjggdG8gMTUzNjAgdG8gZ2V0IHRo ZSBzYW1lIGV4cGVyaWVuY2UNCiAgICA+IHRoZXkgd2VyZSBnZXR0aW5nIGJlZm9yZSB0aGUgdXBn cmFkZS4NCiAgICA+ICAgICAtV2Uga25vdyB0aGF0IHRoZSBwdXJwb3NlIG9mIHRoZSBtZW50aW9u ZWQgcGF0Y2ggd2FzIHRvIGRlY3JlYXNlDQogICAgPiBPUyBib290IHRpbWUgKGZvciBuZXRib290 IHVzZXJzKSBhbHNvIGRlY3JlYXNpbmcgQXBwbGljYXRpb24gc3RhcnQgdXANCiAgICA+IHRpbWVz IGluIGNvbmdlc3RlZCAmIExvdyB0aHJvdWdocHV0IG5ldHdvcmtzIGFzIG1lbnRpb25lZCBpbiBb M10sDQogICAgPiBob3dldmVyIHRoaXMgd291bGQgYWxzbyBjYXVzZSByZWdyZXNzaW9uIGZvciBo aWdoIHRocm91Z2hwdXQgJiBsb3cNCiAgICA+IGxhdGVuY3kgd29ya2xvYWQgZXNwZWNpYWxseSBz ZXF1ZW50aWFsIHJlYWQgd29ya2Zsb3dzLg0KICAgID4gICAgIC1BZnRlciBkb2luZyBmdXJ0aGVy IGRlYnVnZ2luZyB3ZSBhbHNvIGZvdW5kIHRoYXQgdGhlIG1heGltdW0NCiAgICA+IHJlYWQgYWhl YWQgc2l6ZSBpcyBjb25zdGFudCBzbyB0aGVyZSBpcyBubyBBdXRvdHVuaW5nIGZvciB0aGlzDQog ICAgPiBjb25maWd1cmF0aW9uIGV2ZW4gaWYgdGhlIGNsaWVudCBpcyBmaWxsaW5nIHRoZSByZWFk IGFoZWFkIHdpbmRvdw0KICAgID4gd2hpY2ggbWVhbnMgYW55IE5GUyBjbGllbnQgc3BlY2lhbGx5 IG9uZXMgdXNpbmcgbWF4aW11bSByc2l6ZSBtb3VudA0KICAgID4gb3B0aW9uIHdpbGwgaGF2ZSB0 byBtYW51YWxseSB0dW5lIHRoZWlyIG1heGltdW0gTkZTIHJlYWQgYWhlYWQgc2l6ZQ0KICAgID4g YWZ0ZXIgdGhlIHVwZ3JhZGUgd2hpY2ggaW4gbXkgb3BpbmlvbiBpcyBzb21lIHNvcnQgb2YgcmVn cmVzc2lvbiBmcm9tDQogICAgPiBvbGRlciBrZXJuZWxzIGJlaGF2aW91ci4NCiAgICA+DQogICAg Pg0KICAgID4gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjDQogICAgPiAjIyMjIyMjIyMjIyMjIyMjIyMjIw0KICAgID4N CiAgICA+ICAgICBBZnRlciBpbmNyZWFzaW5nIHRoZSBtYXhpbXVtIE5GUyByZWFkIGFoZWFkIHNp emUgdG8gMTVNQiBpdOKAmXMNCiAgICA+IGNsZWFyIHRoYXQgcmVhZCBhaGVhZCB3aW5kb3cgaXMg ZXhwYW5kZWQgYXMgZXhwZWN0ZWQgYW5kIGl0IHdpbGwgYmUNCiAgICA+IGRvdWJsZWQgdW50aWwg aXQgcmVhY2ggMTVNQi4NCiAgICA+DQogICAgPiAgICAgTWFyIDI5IDExOjI1OjE4IGlwLTE3Mi0z MS0xNy0xOTEga2VybmVsOiBpbml0X3JhX3NpemUgMjU2DQogICAgPiAgICAgTWFyIDI5IDExOjI1 OjE4IGlwLTE3Mi0zMS0xNy0xOTEga2VybmVsOiBjdXJyZW50IHJhIDI1Ng0KICAgID4gICAgIE1h ciAyOSAxMToyNToxOCBpcC0xNzItMzEtMTctMTkxIGtlcm5lbDogbWF4IHJhIDM4NDANCiAgICA+ ICAgICBNYXIgMjkgMTE6MjU6MTggaXAtMTcyLTMxLTE3LTE5MSBrZXJuZWw6IGN1cnJlbnQgcmEg NTkNCiAgICA+ICAgICBNYXIgMjkgMTE6MjU6MTggaXAtMTcyLTMxLTE3LTE5MSBrZXJuZWw6IG1h eCByYSAzMg0KICAgID4gICAgIE1hciAyOSAxMToyNToxOCBpcC0xNzItMzEtMTctMTkxIGtlcm5l bDogY3VycmVudCByYSA1MTINCiAgICA+ICAgICBNYXIgMjkgMTE6MjU6MTggaXAtMTcyLTMxLTE3 LTE5MSBrZXJuZWw6IG1heCByYSAzODQwDQogICAgPiAgICAgTWFyIDI5IDExOjI1OjE4IGlwLTE3 Mi0zMS0xNy0xOTEga2VybmVsOiBjdXJyZW50IHJhIDEwMjQNCiAgICA+ICAgICBNYXIgMjkgMTE6 MjU6MTggaXAtMTcyLTMxLTE3LTE5MSBrZXJuZWw6IG1heCByYSAzODQwDQogICAgPiAgICAgTWFy IDI5IDExOjI1OjE4IGlwLTE3Mi0zMS0xNy0xOTEga2VybmVsOiBjdXJyZW50IHJhIDIwNDgNCiAg ICA+ICAgICBNYXIgMjkgMTE6MjU6MTggaXAtMTcyLTMxLTE3LTE5MSBrZXJuZWw6IG1heCByYSAz ODQwDQogICAgPg0KICAgID4NCiAgICA+ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KICAgID4gIyMjIyMjIyMjIyMj IyMjIyMjIyMNCiAgICA+DQogICAgPiAgICAgV2l0aCAxMjhLQiBhcyBtYXhpbXVtIE5GUyByZWFk IGFoZWFkIHNpemUsICB0aGUgcmVhZCBhaGVhZCB3aW5kb3cNCiAgICA+IHNpemUgaXMgaW5jcmVh c2luZyB1bnRpbCBpdCByZWFjaCB0aGUgY29uZmlndXJlZCBtYXhpbXVtIFJlYWQgYWhlYWQNCiAg ICA+ICgxMjhLQikuDQogICAgPg0KICAgID4gICAgIE1hciAyOSAxMTozNTozNyBpcC0xNzItMzEt MTctMTkxIGtlcm5lbDogbWF4IHJhIDMyDQogICAgPiAgICAgTWFyIDI5IDExOjM1OjM3IGlwLTE3 Mi0zMS0xNy0xOTEga2VybmVsOiBtYXggcmEgMzINCiAgICA+ICAgICBNYXIgMjkgMTE6MzU6Mzcg aXAtMTcyLTMxLTE3LTE5MSBrZXJuZWw6IGluaXRfcmFfc2l6ZSAzMg0KICAgID4gICAgIE1hciAy OSAxMTozNTozNyBpcC0xNzItMzEtMTctMTkxIGtlcm5lbDogY3VycmVudCByYSA0MA0KICAgID4g ICAgIE1hciAyOSAxMTozNTozNyBpcC0xNzItMzEtMTctMTkxIGtlcm5lbDogY3VycmVudCByYSAz Mg0KICAgID4gICAgIE1hciAyOSAxMTozNTozNyBpcC0xNzItMzEtMTctMTkxIGtlcm5lbDogbWF4 IHJhIDMyDQogICAgPiAgICAgTWFyIDI5IDExOjM1OjM3IGlwLTE3Mi0zMS0xNy0xOTEga2VybmVs OiBjdXJyZW50IHJhIDQwDQogICAgPiAgICAgTWFyIDI5IDExOjM1OjM3IGlwLTE3Mi0zMS0xNy0x OTEga2VybmVsOiBtYXggcmEgMzINCiAgICA+ICAgICBNYXIgMjkgMTE6MzU6MzcgaXAtMTcyLTMx LTE3LTE5MSBrZXJuZWw6IGN1cnJlbnQgcmEgNjQNCiAgICA+ICAgICBNYXIgMjkgMTE6MzU6Mzcg aXAtMTcyLTMxLTE3LTE5MSBrZXJuZWw6IG1heCByYSAzMg0KICAgID4gICAgIE1hciAyOSAxMToz NTozNyBpcC0xNzItMzEtMTctMTkxIGtlcm5lbDogbWF4IHJhIDMyDQogICAgPiAgICAgTWFyIDI5 IDExOjM1OjM3IGlwLTE3Mi0zMS0xNy0xOTEga2VybmVsOiBpbml0X3JhX3NpemUgNA0KICAgID4g ICAgIE1hciAyOSAxMTozNTozNyBpcC0xNzItMzEtMTctMTkxIGtlcm5lbDogY3VycmVudCByYSA0 DQogICAgPiAgICAgTWFyIDI5IDExOjM1OjM3IGlwLTE3Mi0zMS0xNy0xOTEga2VybmVsOiBtYXgg cmEgMzINCiAgICA+ICAgICBNYXIgMjkgMTE6MzU6MzcgaXAtMTcyLTMxLTE3LTE5MSBrZXJuZWw6 IGN1cnJlbnQgcmEgNjQNCiAgICA+ICAgICBNYXIgMjkgMTE6MzU6MzcgaXAtMTcyLTMxLTE3LTE5 MSBrZXJuZWw6IG1heCByYSA2NA0KICAgID4gICAgIE1hciAyOSAxMTozNTozNyBpcC0xNzItMzEt MTctMTkxIGtlcm5lbDogY3VycmVudCByYSA2NA0KICAgID4gICAgIE1hciAyOSAxMTozNTozNyBp cC0xNzItMzEtMTctMTkxIGtlcm5lbDogbWF4IHJhIDMyDQogICAgPiAgICAgTWFyIDI5IDExOjM1 OjM3IGlwLTE3Mi0zMS0xNy0xOTEga2VybmVsOiBjdXJyZW50IHJhIDMyDQogICAgPiAgICAgTWFy IDI5IDExOjM1OjM3IGlwLTE3Mi0zMS0xNy0xOTEga2VybmVsOiBtYXggcmEgMzINCiAgICA+ICAg ICBNYXIgMjkgMTE6MzU6MzcgaXAtMTcyLTMxLTE3LTE5MSBrZXJuZWw6IGN1cnJlbnQgcmEgNTkN CiAgICA+ICAgICBNYXIgMjkgMTE6MzU6MzcgaXAtMTcyLTMxLTE3LTE5MSBrZXJuZWw6IG1heCBy YSAzMg0KICAgID4gICAgIE1hciAyOSAxMTozNTozNyBpcC0xNzItMzEtMTctMTkxIGtlcm5lbDog Y3VycmVudCByYSAzMg0KICAgID4gICAgIE1hciAyOSAxMTozNTozNyBpcC0xNzItMzEtMTctMTkx IGtlcm5lbDogbWF4IHJhIDMyDQogICAgPiAgICAgTWFyIDI5IDExOjM1OjM3IGlwLTE3Mi0zMS0x Ny0xOTEga2VybmVsOiBjdXJyZW50IHJhIDMyDQogICAgPiAgICAgTWFyIDI5IDExOjM1OjM3IGlw LTE3Mi0zMS0xNy0xOTEga2VybmVsOiBtYXggcmEgMzINCiAgICA+DQogICAgPiAgICAgLUluIG15 IHJlcHJvZHVjdGlvbiBJIHVzZWQgcnN5bmMgYXMgY2xhcmlmaWVkIGFib3ZlIGFuZCBpdCBpcw0K ICAgID4gYWx3YXlzIGRvaW5nIHJlYWQgc3lzY2FsbHMgcmVxdWVzdGluZyAyNTYgS0IgaW4gZWFj aCBjYWxsOg0KICAgID4gICAgIDE1OjQ3OjEwLjc4MDY1OCByZWFkKDMsDQogICAgPiAiXDBcMFww XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBc MCIuLi4NCiAgICA+ICwgMjYyMTQ0KSA9IDI2MjE0NCA8MC4wMjM3NDk+DQogICAgPiAgICAgMTU6 NDc6MTAuODA1NDY3IHJlYWQoMywNCiAgICA+ICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFww XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIi4uLg0KICAgID4gLCAyNjIxNDQp ID0gMjYyMTQ0IDwwLjAyMzczOT4NCiAgICA+ICAgICAxNTo0NzoxMC44MzAyNzIgcmVhZCgzLA0K ICAgID4gIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFww XDBcMFwwXDBcMFwwXDAiLi4uDQogICAgPiAsIDI2MjE0NCkgPSAyNjIxNDQgPDAuMDIzNjY0Pg0K ICAgID4gICAgIDE1OjQ3OjEwLjg1NDk3MiByZWFkKDMsDQogICAgPiAiXDBcMFwwXDBcMFwwXDBc MFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIuLi4NCiAg ICA+ICwgMjYyMTQ0KSA9IDI2MjE0NCA8MC4wMjM4MTQ+DQogICAgPiAgICAgMTU6NDc6MTAuODc5 ODM3IHJlYWQoMywNCiAgICA+ICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBc MFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIi4uLg0KICAgID4gLCAyNjIxNDQpID0gMjYyMTQ0 IDwwLjAyMzYyNT4NCiAgICA+ICAgICAxNTo0NzoxMC45MDQ0OTYgcmVhZCgzLA0KICAgID4gIlww XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBc MFwwXDAiLi4uDQogICAgPiAsIDI2MjE0NCkgPSAyNjIxNDQgPDAuMDIzNjQ1Pg0KICAgID4gICAg IDE1OjQ3OjEwLjkyOTE4MCByZWFkKDMsDQogICAgPiAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFww XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIuLi4NCiAgICA+ICwgMjYy MTQ0KSA9IDI2MjE0NCA8MC4wMjQwNzI+DQogICAgPiAgICAgMTU6NDc6MTAuOTU0MzA4IHJlYWQo MywNCiAgICA+ICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFww XDBcMFwwXDBcMFwwXDBcMFwwIi4uLg0KICAgID4gLCAyNjIxNDQpID0gMjYyMTQ0IDwwLjAyMzY2 OT4NCiAgICA+DQogICAgPg0KICAgID4gICAgIC1Mb29raW5nIGludG8gdGhlIHJlYWRhaGVhZCBz b3VyY2UgY29kZSBhbmQgSSBjYW4gc2VlIHRoYXQNCiAgICA+IHJlYWRhaGVhZCBpcyBkb2luZyBz b21lIGhldXJpc3RpY3MgdG8gZGV0ZXJtaW5lIGlmIHRoZSBhY2Nlc3MgcGF0dGVybg0KICAgID4g aXMgc2VxdWVudGlhbCBvciByYW5kb20gdGhlbiBpdCBtb2RpZnkgdGhlIHJlYWQgYWhlYWQgd2lu ZG93KGFtb3VudA0KICAgID4gb2YgZGF0YSBpdCB3aWxsIHByZWZldGNoKSBhY2NvcmRpbmdseSwg cmVhZCBhaGVhZCBjYW4ndCBhbHNvIHJlYWQNCiAgICA+IGJleW9uZCB0aGUgcmVxdWVzdGVkIGZp bGUgc2l6ZSwgdGhpcyB0aGVvcmV0aWNhbGx5IG1lYW5zIHRoYXQgaGF2aW5nDQogICAgPiBMYXJn ZSBORlMgTWF4IHJlYWQgYWhlYWQgc2l6ZSAoMTVNQikgc2hvdWxkbid0IGhhdmUgbXVjaCBpbXBh Y3Qgb24NCiAgICA+IHBlcmZvcm1hbmNlIGV2ZW4gd2l0aCByYW5kb20gSS9PIHBhdHRlcm4gb3Ig d2l0aCBkYXRhIHNldCBjb25zaXN0cyBvZg0KICAgID4gc21hbGwgZmlsZXMsIHRoZSBvbmx5IG1h am9yIGltcGFjdCBvZiBoYXZpbmcgbGFyZ2UgTkZTIHJlYWQgYWhlYWQNCiAgICA+IHNpemUgd291 bGQgYmUgc29tZSBuZXR3b3JraW5nIGNvbmdlc3Rpb24gb3IgYm9vdHVwIGRlbGF5IHdpdGggaG9z dHMNCiAgICA+IHVzaW5nIGNvbmdlc3RlZCBvciBsb3cgdGhyb3VnaHB1dCBuZXR3b3JrcyBhcyBp bGx1c3RyYXRlZCBpbg0KICAgID4gaHR0cHM6Ly9idWd6aWxsYS5rZXJuZWwub3JnL3Nob3dfYnVn LmNnaT9pZD0yMDQ5MzkgJg0KICAgID4gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGludXgtbmZz LzBiNzYyMTNlLTQyNmItMDY1NC01YjY5LTAyYmZlYWQ3ODAzMUBnbWFpbC5jb20vVC8NCiAgICA+ IC4NCiAgICA+ICAgICAtV2l0aCBwYXRjaA0KICAgID4gaHR0cHM6Ly93d3cuc3Bpbmljcy5uZXQv bGlzdHMvbGludXgtbmZzL21zZzc1MDE4Lmh0bWwgdGhlIHBhY2tldA0KICAgID4gY2FwdHVyZXMg YXJlIHNob3dpbmcgdGhlIGNsaWVudCBlaXRoZXIgYXNraW5nIGZvciAxMjhLQiBvciAyNTYgS0Ig aW4NCiAgICA+IHRoZSBORlMgUkVBRCBjYWxscyBhbmQgaXQgY2FuJ3QgcmVhY2ggZXZlbiB0aGUg MU1CIGNvbmZpZ3VyZWQgcnNpemUNCiAgICA+IG1vdW50IG9wdGlvbiB0aGlzIGlzIGJlY2F1c2Ug dGhlIG9uZGVtYW5kX3JlYWRhaGVhZCB3aGljaCBzaG91bGQgYmUNCiAgICA+IHJlc3BvbnNpYmxl IGZvciBtb3ZpbmcgYW5kIHNjYWxpbmcgdGhlIHJlYWQgYWhlYWQgd2luZG93IGhhcyBhbiBpZg0K ICAgID4gY29uZGl0aW9uIHdoaWNoIHdhcyBhIHBhcnQgb2YNCiAgICA+IGh0dHBzOi8vd3d3Lm1h aWwtYXJjaGl2ZS5jb20vbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZy9tc2cxMjc0NzQzLmh0 bWwNCiAgICA+ICwgdGhpcyBwYXRjaCBhY3R1YWxseSBtb2RpZmllZCByZWFkIGFoZWFkIHRvIGlz c3VlIHRoZSBtYXhpbXVtIG9mIHRoZQ0KICAgID4gdXNlciByZXF1ZXN0IHNpemUocnN5bmMgaXMg ZG9pbmcgMjU2S0IgcmVhZCByZXF1ZXN0cyksIGFuZCB0aGUgcmVhZC0NCiAgICA+IGFoZWFkIG1h eCBzaXplKDEyOEtCIGJ5IGRlZmF1bHQpLCBidXQgY2FwcGVkIHRvIHRoZSBtYXggcmVxdWVzdCBz aXplDQogICAgPiBvbiB0aGUgZGV2aWNlIHNpZGUoMU1CIGluIG91ciBjYXNlKS4gVGhlIGxhdHRl ciBpcyBkb25lIHRvIGF2b2lkDQogICAgPiByZWFkaW5nIGFoZWFkIHRvbyBtdWNoLCBpZiB0aGUg YXBwbGljYXRpb24gYXNrcyBmb3IgYSBodWdlIHJlYWQuIHRoaXMNCiAgICA+IGlzIHdoeSB3aXRo IDEyOEtCIGFzIHJlYWQgYWhlYWQgc2l6ZSBhbmQgYXBwbGljYXRpb24gYXNraW5nIGZvciAyNTZL Qg0KICAgID4gd2UgbmV2ZXIgZXhjZWVkIDI1NktCIGJlY2F1c2UgdGhpcyBwYXRjaCBhY3R1YWxs eSBpbnRlbmRlZCB0byBkbw0KICAgID4gdGhhdCwgaXQgYXZvaWRzIGxpbWl0aW5nIHRoZSByZXF1 ZXN0ZWQgZGF0YSB0byB0aGUgbWF4aW11bSByZWFkIGFoZWFkDQogICAgPiBzaXplIGJ1dCB3ZSBh cmUgc3RpbGwgbGltaXRlZCBieSB0aGUgbWluaW11bSBiZXR3ZWVuIGFtb3VudCBvZiBkYXRhDQog ICAgPiBhcHBsaWNhdGlvbiBpcyByZWFkaW5nIHdoaWNoIGlzIDI1NktCIGFzIHN5bmMgaW4gcnN5 bmMgc3RyYWNlIG91dHB1dA0KICAgID4gJiBiZGktPmlvX3BhZ2VzKDI1NiBwYWdlcz0xTUIpIGFz IGNvbmZpZ3VyZWQgaW4gdGhlIHJzaXplIG1vdW50DQogICAgPiBvcHRpb24uDQogICAgPg0KICAg ID4gICAgIC1PdXRwdXQgYWZ0ZXIgYWRkaW5nIHNvbWUgZGVidWdnaW5nIHRvIHRoZSBrZXJuZWwg c2hvd2luZyB0aGUNCiAgICA+IHNpemUgb2YgZWFjaCB2YXJpYWJsZSBpbiB0aGUgbWVudGlvbmVk ICJpZiIgY29uZGl0aW9uOg0KICAgID4NCiAgICA+ICAgICBbICAyMzguMzg3Nzg4XSByZXFfc2l6 ZT0gNjQgLS0tLS0tPjI1Nk1CIHJzeW5jIHJlYWQgcmVxdWVzdHMNCiAgICA+ICAgICBbICAyMzgu Mzg3NzkwXSBpbyBwYWdlcz0gMjU2LS0tLS0+MU1CIGFzIHN1cHBvcnRlZCBieSBFRlMgYW5kIGFz DQogICAgPiBjb25maWd1cmVkIGluIHRoZSByc2l6ZSBtb3VudCBvcHRpb24uDQogICAgPiAgICAg WyAgMjM4LjM5MDQ4N10gbWF4X3BhZ2VzIGJlZm9yZT0gMzItLS0tLT4xMjggS0IgcmVhZCBhaGVh ZCBzaXplDQogICAgPiB3aGljaCBpcyB0aGUgZGVmYXVsdC4NCiAgICA+ICAgICBbICAyMzguMzkz MTc3XSBtYXhfcGFnZXMgYWZ0ZXI9IDY0LS0tLT5yYWlzZWQgdG8gMjU2IEtCIGJlY2F1c2UNCiAg ICA+IG9mIGNoYW5nZXMgbWVudGlvbmVkIGluIFs0XSAibWF4X3BhZ2VzID0gbWluKHJlcV9zaXpl LCBiZGktDQogICAgPiA+aW9fcGFnZXMpOyINCiAgICA+DQogICAgPg0KICAgID4gaHR0cHM6Ly9l bGl4aXIuYm9vdGxpbi5jb20vbGludXgvbGF0ZXN0L3NvdXJjZS9tbS9yZWFkYWhlYWQuYyNMNDM1 DQogICAgPg0KICAgID4gICAgIC8qDQogICAgPiAgICAgICogQSBtaW5pbWFsIHJlYWRhaGVhZCBh bGdvcml0aG0gZm9yIHRyaXZpYWwgc2VxdWVudGlhbC9yYW5kb20NCiAgICA+IHJlYWRzLg0KICAg ID4gICAgICAqLw0KICAgID4gICAgIHN0YXRpYyB2b2lkIG9uZGVtYW5kX3JlYWRhaGVhZChzdHJ1 Y3QgcmVhZGFoZWFkX2NvbnRyb2wgKnJhY3RsLA0KICAgID4gICAgICAgICAgICAgc3RydWN0IGZp bGVfcmFfc3RhdGUgKnJhLCBib29sIGhpdF9yZWFkYWhlYWRfbWFya2VyLA0KICAgID4gICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyByZXFfc2l6ZSkNCiAgICA+ICAgICB7DQogICAgPiAgICAgICAg IHN0cnVjdCBiYWNraW5nX2Rldl9pbmZvICpiZGkgPSBpbm9kZV90b19iZGkocmFjdGwtPm1hcHBp bmctDQogICAgPiA+aG9zdCk7DQogICAgPiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWF4X3BhZ2Vz ID0gcmEtPnJhX3BhZ2VzOw0KICAgID4gICAgICAgICB1bnNpZ25lZCBsb25nIGFkZF9wYWdlczsN CiAgICA+ICAgICAgICAgdW5zaWduZWQgbG9uZyBpbmRleCA9IHJlYWRhaGVhZF9pbmRleChyYWN0 bCk7DQogICAgPiAgICAgICAgIHBnb2ZmX3QgcHJldl9pbmRleDsNCiAgICA+DQogICAgPiAgICAg ICAgIC8qDQogICAgPiAgICAgICAgICAqIElmIHRoZSByZXF1ZXN0IGV4Y2VlZHMgdGhlIHJlYWRh aGVhZCB3aW5kb3csIGFsbG93IHRoZQ0KICAgID4gcmVhZCB0bw0KICAgID4gICAgICAgICAgKiBi ZSB1cCB0byB0aGUgb3B0aW1hbCBoYXJkd2FyZSBJTyBzaXplDQogICAgPiAgICAgICAgICAqLw0K ICAgID4gICAgICAgICBpZiAocmVxX3NpemUgPiBtYXhfcGFnZXMgJiYgYmRpLT5pb19wYWdlcyA+ IG1heF9wYWdlcykNCiAgICA+ICAgICAgICAgICAgIG1heF9wYWdlcyA9IG1pbihyZXFfc2l6ZSwg YmRpLT5pb19wYWdlcyk7DQogICAgPg0KICAgID4NCiAgICA+DQogICAgPiAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMN CiAgICA+ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQogICAgPg0KICAgID4gICAgIC1X aXRoIDEyOEtCIGFzIGRlZmF1bHQgbWF4aW11bSByZWFkIGFoZWFkIHNpemUgdGhlIHBhY2tldCBj YXB0dXJlDQogICAgPiBmcm9tIHRoZSBjbGllbnQgc2lkZSBpcyBzaG93aW5nIHRoZSBORlN2NCBS RUFEIGNhbGxzICBzaG93aW5nIGNvdW50DQogICAgPiBpbiBieXRlcyAgbW92aW5nIGJldHdlZW4g MTI4S0IgdG8gMjU2S0IuDQogICAgPg0KICAgID4gICAgIDczNDAzICAgICAgICAgMjkgMTcyLjMx LjE3LjE5MSAtPiAxNzIuMzEuMjguMTYxIE5GUyAzOTQgVjQgQ2FsbA0KICAgID4gUkVBRCBTdGF0 ZUlEOiAweGNlYzIgT2Zmc2V0OiAxMDcyOTU1MzkyIExlbjogMTMxMDcyDQogICAgPiAgICAgNzM0 MDQgICAgICAgICAyOSAxNzIuMzEuMTcuMTkxIC0+IDE3Mi4zMS4yOC4xNjEgTkZTIDM5NCBWNCBD YWxsDQogICAgPiBSRUFEIFN0YXRlSUQ6IDB4Y2VjMiBPZmZzZXQ6IDEwNzMwODY0NjQgTGVuOiAy NjIxNDQNCiAgICA+ICAgICA3MzQwNiAgICAgICAgIDI5IDE3Mi4zMS4yOC4xNjEgLT4gMTcyLjMx LjE3LjE5MSBORlMgODY5OSBWNCBSZXBseQ0KICAgID4gKENhbGwgSW4gNzM0MDMpW1VucmVhc3Nl bWJsZWQgUGFja2V0XQ0KICAgID4gICAgIDczNDE1ICAgICAgICAgMjkgMTcyLjMxLjE3LjE5MSAt PiAxNzIuMzEuMjguMTYxIE5GUyAzOTQgVjQgQ2FsbA0KICAgID4gUkVBRCBTdGF0ZUlEOiAweGNl YzIgT2Zmc2V0OiAxMDczMzQ4NjA4IExlbjogMTMxMDcyDQogICAgPiAgICAgNzM0MTYgICAgICAg ICAyOSAxNzIuMzEuMjguMTYxIC0+IDE3Mi4zMS4xNy4xOTEgTkZTIDg2OTkgVjQgUmVwbHkNCiAg ICA+IChDYWxsIEluIDczNDA0KVtVbnJlYXNzZW1ibGVkIFBhY2tldF0NCiAgICA+ICAgICA3MzQy OCAgICAgICAgIDI5IDE3Mi4zMS4xNy4xOTEgLT4gMTcyLjMxLjI4LjE2MSBORlMgMzk0IFY0IENh bGwNCiAgICA+IFJFQUQgU3RhdGVJRDogMHhjZWMyIE9mZnNldDogMTA3MzQ3OTY4MCBMZW46IDEz MTA3Mg0KICAgID4gICAgIDczNDI5ICAgICAgICAgMjkgMTcyLjMxLjI4LjE2MSAtPiAxNzIuMzEu MTcuMTkxIE5GUyA4Njk5IFY0IFJlcGx5DQogICAgPiAoQ2FsbCBJbiA3MzQxNSlbVW5yZWFzc2Vt YmxlZCBQYWNrZXRdDQogICAgPiAgICAgNzM0MzggICAgICAgICAyOSAxNzIuMzEuMTcuMTkxIC0+ IDE3Mi4zMS4yOC4xNjEgTkZTIDM5NCBWNCBDYWxsDQogICAgPiBSRUFEIFN0YXRlSUQ6IDB4Y2Vj MiBPZmZzZXQ6IDEwNzM2MTA3NTIgTGVuOiAxMzEwNzINCiAgICA+ICAgICA3MzQzOSAgICAgICAg IDI5IDE3Mi4zMS4yOC4xNjEgLT4gMTcyLjMxLjE3LjE5MSBORlMgODY5OSBWNCBSZXBseQ0KICAg ID4gKENhbGwgSW4gNzM0MjgpW1VucmVhc3NlbWJsZWQgUGFja2V0XQ0KICAgID4NCiAgICA+ICAg ICAtbmZzc3RhdCBpcyBzaG93aW5nIDgxODMgTkZTVjQgUkVBRCBjYWxscyByZXF1aXJlZCB0byBy ZWFkIDFHQg0KICAgID4gZmlsZS4NCiAgICA+DQogICAgPiAgICAgIyBuZnNzdGF0DQogICAgPiAg ICAgQ2xpZW50IHJwYyBzdGF0czoNCiAgICA+ICAgICBjYWxscyAgICAgIHJldHJhbnMgICAgYXV0 aHJlZnJzaA0KICAgID4gICAgIDgyMDQgICAgICAgMCAgICAgICAgICA4MjA0DQogICAgPg0KICAg ID4gICAgIENsaWVudCBuZnMgdjQ6DQogICAgPiAgICAgbnVsbCAgICAgICAgIHJlYWQgICAgICAg ICB3cml0ZSAgICAgICAgY29tbWl0ICAgICAgIG9wZW4NCiAgICA+IG9wZW5fY29uZg0KICAgID4g ICAgIDEgICAgICAgICAwJSA4MTgzICAgICA5OSUgMCAgICAgICAgIDAlIDAgICAgICAgICAwJSAw ICAgICAgICAgMCUNCiAgICA+IDAgICAgICAgICAwJQ0KICAgID4gICAgIG9wZW5fbm9hdCAgICBv cGVuX2RncmQgICAgY2xvc2UgICAgICAgIHNldGF0dHIgICAgICBmc2luZm8NCiAgICA+IHJlbmV3 DQogICAgPiAgICAgMSAgICAgICAgIDAlIDAgICAgICAgICAwJSAxICAgICAgICAgMCUgMCAgICAg ICAgIDAlIDIgICAgICAgICAwJQ0KICAgID4gMCAgICAgICAgIDAlDQogICAgPiAgICAgc2V0Y2xu dGlkICAgIGNvbmZpcm0gICAgICBsb2NrICAgICAgICAgbG9ja3QgICAgICAgIGxvY2t1DQogICAg PiBhY2Nlc3MNCiAgICA+ICAgICAwICAgICAgICAgMCUgMCAgICAgICAgIDAlIDAgICAgICAgICAw JSAwICAgICAgICAgMCUgMCAgICAgICAgIDAlDQogICAgPiAxICAgICAgICAgMCUNCiAgICA+ICAg ICBnZXRhdHRyICAgICAgbG9va3VwICAgICAgIGxvb2t1cF9yb290ICByZW1vdmUgICAgICAgcmVu YW1lDQogICAgPiBsaW5rDQogICAgPiAgICAgNCAgICAgICAgIDAlIDEgICAgICAgICAwJSAxICAg ICAgICAgMCUgMCAgICAgICAgIDAlIDAgICAgICAgICAwJQ0KICAgID4gMCAgICAgICAgIDAlDQog ICAgPiAgICAgc3ltbGluayAgICAgIGNyZWF0ZSAgICAgICBwYXRoY29uZiAgICAgc3RhdGZzICAg ICAgIHJlYWRsaW5rDQogICAgPiByZWFkZGlyDQogICAgPiAgICAgMCAgICAgICAgIDAlIDAgICAg ICAgICAwJSAxICAgICAgICAgMCUgMCAgICAgICAgIDAlIDAgICAgICAgICAwJQ0KICAgID4gMCAg ICAgICAgIDAlDQogICAgPiAgICAgc2VydmVyX2NhcHMgIGRlbGVncmV0dXJuICBnZXRhY2wgICAg ICAgc2V0YWNsICAgICAgIGZzX2xvY2F0aW9ucw0KICAgID4gcmVsX2xrb3duZXINCiAgICA+ICAg ICAzICAgICAgICAgMCUgMCAgICAgICAgIDAlIDAgICAgICAgICAwJSAwICAgICAgICAgMCUgMCAg ICAgICAgIDAlDQogICAgPiAwICAgICAgICAgMCUNCiAgICA+ICAgICBzZWNpbmZvICAgICAgZXhj aGFuZ2VfaWQgIGNyZWF0ZV9zZXMgICBkZXN0cm95X3NlcyAgc2VxdWVuY2UNCiAgICA+IGdldF9s ZWFzZV90DQogICAgPiAgICAgMCAgICAgICAgIDAlIDAgICAgICAgICAwJSAyICAgICAgICAgMCUg MSAgICAgICAgIDAlIDAgICAgICAgICAwJQ0KICAgID4gMCAgICAgICAgIDAlDQogICAgPiAgICAg cmVjbGFpbV9jb21wIGxheW91dGdldCAgICBnZXRkZXZpbmZvICAgbGF5b3V0Y29tbWl0IGxheW91 dHJldHVybg0KICAgID4gZ2V0ZGV2bGlzdA0KICAgID4gICAgIDAgICAgICAgICAwJSAxICAgICAg ICAgMCUgMCAgICAgICAgIDAlIDAgICAgICAgICAwJSAwICAgICAgICAgMCUNCiAgICA+IDAgICAg ICAgICAwJQ0KICAgID4gICAgIChudWxsKQ0KICAgID4gICAgIDEgMCUNCiAgICA+DQogICAgPg0K ICAgID4gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjDQogICAgPiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KICAg ID4NCiAgICA+ICAgICAtV2hlbiB1c2luZyAxNU1CIGFzIG1heGltdW0gcmVhZCBhaGVhZCBzaXpl LCB0aGUgY2xpZW50IGlzDQogICAgPiBzZW5kaW5nIDFNQiBORlNWNCByZWFkIHJlcXVlc3RzIGhl bmNlIGl04oCZcyBhYmxlIHRvIHJlYWQgdGhlIHNhbWUgMUdCDQogICAgPiBmaWxlIGluIDEwMjQg TkZTIFJFQUQgY2FsbHMNCiAgICA+DQogICAgPiAgICAgI3VuYW1lIC1yOyBtb3VudCAtdCBuZnM0 IC1vDQogICAgPiBuZnN2ZXJzPTQuMSxyc2l6ZT0xMDUyNjcyLHdzaXplPTEwNDg1NzYsaGFyZCx0 aW1lbz02MDAscmV0cmFucz0yLG5vcmUNCiAgICA+IHN2cG9ydCBmcy02NzAwZjU1My5lZnMuZXUt d2VzdC0xLmFtYXpvbmF3cy5jb206LyBlZnM7IC4vbmZzLXJlYWRhaGVhZA0KICAgID4gc2hvdyAv aG9tZS9lYzItdXNlci9lZnMvDQogICAgPiAgICAgNS4zLjkNCiAgICA+ICAgICAvaG9tZS9lYzIt dXNlci9lZnMgMDo0MCAvc3lzL2NsYXNzL2JkaS8wOjQwL3JlYWRfYWhlYWRfa2IgPSAxNTM2MA0K ICAgID4gICAgICNzeW5jOyBlY2hvIDMgPiAvcHJvYy9zeXMvdm0vZHJvcF9jYWNoZXMNCiAgICA+ ICAgICAjcnN5bmMgLS1wcm9ncmVzcyBlZnMvdGVzdCAuDQogICAgPiAgICAgdGVzdA0KICAgID4g ICAgICAgMSwwNzMsNzQxLDgyNCAxMDAlICAyNjAuMTVNQi9zICAgIDA6MDA6MDMgKHhmciMxLCB0 by1jaGs9MC8xKQ0KICAgID4gICAgIFtyb290QGlwLTE3Mi0zMS0xNy00MiBlYzItdXNlcl0jIG5m c3N0YXQNCiAgICA+ICAgICBDbGllbnQgcnBjIHN0YXRzOg0KICAgID4gICAgIGNhbGxzICAgICAg cmV0cmFucyAgICBhdXRocmVmcnNoDQogICAgPiAgICAgMTA0MyAgICAgICAwICAgICAgICAgIDEw NDMNCiAgICA+DQogICAgPiAgICAgQ2xpZW50IG5mcyB2NDoNCiAgICA+ICAgICBudWxsICAgICAg ICAgcmVhZCAgICAgICAgIHdyaXRlICAgICAgICBjb21taXQgICAgICAgb3Blbg0KICAgID4gb3Bl bl9jb25mDQogICAgPiAgICAgMSAgICAgICAgIDAlIDEwMjQgICAgIDk4JSAwICAgICAgICAgMCUg MCAgICAgICAgIDAlIDAgICAgICAgICAwJQ0KICAgID4gMCAgICAgICAgIDAlDQogICAgPiAgICAg b3Blbl9ub2F0ICAgIG9wZW5fZGdyZCAgICBjbG9zZSAgICAgICAgc2V0YXR0ciAgICAgIGZzaW5m bw0KICAgID4gcmVuZXcNCiAgICA+ICAgICAxICAgICAgICAgMCUgMCAgICAgICAgIDAlIDEgICAg ICAgICAwJSAwICAgICAgICAgMCUgMiAgICAgICAgIDAlDQogICAgPiAwICAgICAgICAgMCUNCiAg ICA+ICAgICBzZXRjbG50aWQgICAgY29uZmlybSAgICAgIGxvY2sgICAgICAgICBsb2NrdCAgICAg ICAgbG9ja3UNCiAgICA+IGFjY2Vzcw0KICAgID4gICAgIDAgICAgICAgICAwJSAwICAgICAgICAg MCUgMCAgICAgICAgIDAlIDAgICAgICAgICAwJSAwICAgICAgICAgMCUNCiAgICA+IDEgICAgICAg ICAwJQ0KICAgID4gICAgIGdldGF0dHIgICAgICBsb29rdXAgICAgICAgbG9va3VwX3Jvb3QgIHJl bW92ZSAgICAgICByZW5hbWUNCiAgICA+IGxpbmsNCiAgICA+ICAgICAyICAgICAgICAgMCUgMSAg ICAgICAgIDAlIDEgICAgICAgICAwJSAwICAgICAgICAgMCUgMCAgICAgICAgIDAlDQogICAgPiAw ICAgICAgICAgMCUNCiAgICA+ICAgICBzeW1saW5rICAgICAgY3JlYXRlICAgICAgIHBhdGhjb25m ICAgICBzdGF0ZnMgICAgICAgcmVhZGxpbmsNCiAgICA+IHJlYWRkaXINCiAgICA+ICAgICAwICAg ICAgICAgMCUgMCAgICAgICAgIDAlIDEgICAgICAgICAwJSAwICAgICAgICAgMCUgMCAgICAgICAg IDAlDQogICAgPiAwICAgICAgICAgMCUNCiAgICA+ICAgICBzZXJ2ZXJfY2FwcyAgZGVsZWdyZXR1 cm4gIGdldGFjbCAgICAgICBzZXRhY2wgICAgICAgZnNfbG9jYXRpb25zDQogICAgPiByZWxfbGtv d25lcg0KICAgID4gICAgIDMgICAgICAgICAwJSAwICAgICAgICAgMCUgMCAgICAgICAgIDAlIDAg ICAgICAgICAwJSAwICAgICAgICAgMCUNCiAgICA+IDAgICAgICAgICAwJQ0KICAgID4gICAgIHNl Y2luZm8gICAgICBleGNoYW5nZV9pZCAgY3JlYXRlX3NlcyAgIGRlc3Ryb3lfc2VzICBzZXF1ZW5j ZQ0KICAgID4gZ2V0X2xlYXNlX3QNCiAgICA+ICAgICAwICAgICAgICAgMCUgMCAgICAgICAgIDAl IDIgICAgICAgICAwJSAxICAgICAgICAgMCUgMCAgICAgICAgIDAlDQogICAgPiAwICAgICAgICAg MCUNCiAgICA+ICAgICByZWNsYWltX2NvbXAgbGF5b3V0Z2V0ICAgIGdldGRldmluZm8gICBsYXlv dXRjb21taXQgbGF5b3V0cmV0dXJuDQogICAgPiBnZXRkZXZsaXN0DQogICAgPiAgICAgMCAgICAg ICAgIDAlIDEgICAgICAgICAwJSAwICAgICAgICAgMCUgMCAgICAgICAgIDAlIDAgICAgICAgICAw JQ0KICAgID4gMCAgICAgICAgIDAlDQogICAgPiAgICAgKG51bGwpDQogICAgPiAgICAgMSAwJQ0K ICAgID4NCiAgICA+ICAgICAtVGhlIHBhY2tldCBjYXB0dXJlIGZyb20gdGhlIGNsaWVudCBzaWRl IGlzIHNob3dpbmcgTkZTdjQgUkVBRA0KICAgID4gY2FsbHMgd2l0aCAxTUIgYXMgcmVhZCBjb3Vu dCBpbiBieXRlcyB3aGVuIGhhdmluZyAxNU1CIGFzIG1heGltdW0gTkZTDQogICAgPiByZWFkIGFo ZWFkIHNpemUuDQogICAgPg0KICAgID4gICAgIDIwMjEtMDMtMjIgMTQ6MjU6MzQuOTg0NzMxICA5 Mzk4IDE3Mi4zMS4xNy40MiDihpIgMTcyLjMxLjI4LjE2MSBORlMNCiAgICA+IDAuMDAwMzc1IFY0 IENhbGwgUkVBRCBTdGF0ZUlEOiAweDM2NDAgT2Zmc2V0OiA5NDM3MTg0MCBMZW46IDEwNDg1NzYN CiAgICA+ICAgICAyMDIxLTAzLTIyIDE0OjI1OjM0Ljk4NDgwNSAgOTQwNSAxNzIuMzEuMTcuNDIg 4oaSIDE3Mi4zMS4yOC4xNjEgTkZTDQogICAgPiAwLjAwMDA3NCBWNCBDYWxsIFJFQUQgU3RhdGVJ RDogMHgzNjQwIE9mZnNldDogOTU0MjA0MTYgTGVuOiAxMDQ4NTc2DQogICAgPiAgICAgMjAyMS0w My0yMiAxNDoyNTozNC45ODQ5MDIgIDk0MTYgMTcyLjMxLjE3LjQyIOKGkiAxNzIuMzEuMjguMTYx IE5GUw0KICAgID4gMC4wMDAwOTcgVjQgQ2FsbCBSRUFEIFN0YXRlSUQ6IDB4MzY0MCBPZmZzZXQ6 IDk2NDY4OTkyIExlbjogMTA0ODU3Ng0KICAgID4gICAgIDIwMjEtMDMtMjIgMTQ6MjU6MzQuOTg0 OTQxICA5NDIxIDE3Mi4zMS4xNy40MiDihpIgMTcyLjMxLjI4LjE2MSBORlMNCiAgICA+IDAuMDAw MDM5IFY0IENhbGwgUkVBRCBTdGF0ZUlEOiAweDM2NDAgT2Zmc2V0OiA5NzUxNzU2OCBMZW46IDEw NDg1NzYNCiAgICA+DQogICAgPg0KICAgID4gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQogICAgPiAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIw0KICAgID4NCiAgICA+DQogICAgPiAgICAgLUkgdGhpbmsgdGhlcmUg YXJlIDIgb3B0aW9ucyB0byBtaXRpZ2F0ZSB0aGlzIGJlaGF2aW91ciB3aGljaCBJDQogICAgPiBh bSBsaXN0aW5nIGJlbG93Og0KICAgID4gICAgIEEpUmFpc2luZyB0aGUgZGVmYXVsdCBtYXhpbXVt IE5GUyByZWFkIGFoZWFkICBzaXplIGJlY2F1c2UgdGhlDQogICAgPiBjdXJyZW50IGRlZmF1bHQg MTI4S0IgZG9lc27igJl0IHNlZW0gdG8gYmUgc3VmZmljaWVudCBmb3IgSGlnaA0KICAgID4gdGhy b3VnaG91dCAmIGxvdyBsYXRlbmN5IHdvcmtsb2FkLCBJIHN0cm9uZ2x5IGJlbGlldmUgdGhhdCB0 aGUgTkZTDQogICAgPiByc2l6ZSBtb3VudCBvcHRpb24gc2hvdWxkIGJlIHVzZWQgYXMgdmFyaWFi bGUgaW4gZGVjaWRpbmcgdGhlIG1heGltdW0NCiAgICA+IE5GUyByZWFkIGFoZWFkICBzaXplIHdo aWNoIHdhcyB0aGUgY2FzZSBiZWZvcmUgWzFdIHdoaWxlIG5vdyBpdOKAmXMNCiAgICA+IGFsd2F5 cyAxMjhLQiByZWdhcmRsZXNzIHRoZSB1dGlsaXplZCByc2l6ZSBtb3VudCBvcHRpb24uIEFsc28g SSB0aGluaw0KICAgID4gY2xpZW50cyBydW5uaW5nIGluIEhpZ2ggbGF0ZW5jeSAmIExvdyB0aHJv dWdob3V0IGVudmlyb25tZW50DQogICAgPiBzaG91bGRu4oCZdCB1c2UgMU1CIGFzIHJzaXplIGlu IHRoZWlyIG1vdW50IG9wdGlvbnMoaS5lIHRoZXkgc2hvdWxkIHVzZQ0KICAgID4gc21hbGxlciBy c2l6ZSkgYmVjYXVzZSBpdCBtYXkgaW5jcmVhc2UgdGhlaXIgc3VmZmVyaW5nIGV2ZW4gd2l0aCBs b3cNCiAgICA+IG1heGltdW0gTkZTIHJlYWQgYWhlYWQgc2l6ZS4NCiAgICA+ICAgICBCKUFkZGlu ZyBzb21lIGxvZ2ljIHRvIHJlYWQgYWhlYWQgdG8gaGF2ZSBzb21lIGtpbmQgb2YgQXV0b3R1bmlu Zw0KICAgID4gKFNpbWlsYXIgdG8gVENQIEF1dG90dW5pbmcpIHdoZXJlIHRoZSBtYXhpbXVtIHJl YWQgYWhlYWQgc2l6ZSBjYW4NCiAgICA+IGR5bmFtaWNhbGx5IGluY3JlYXNlIGluIGNhc2UgdGhl IGNsaWVudC9yZWFkZXIgaXMgY29uc3RhbnRseSBmaWxsaW5nDQogICAgPiB1cC91dGlsaXppbmcg dGhlIHJlYWQgYWhlYWQgd2luZG93IHNpemUuDQogICAgPg0KICAgID4NCiAgICA+ICAgICBMaW5r czoNCiAgICA+ICAgICBbMV0gaHR0cHM6Ly93d3cuc3Bpbmljcy5uZXQvbGlzdHMvbGludXgtbmZz L21zZzc1MDE4Lmh0bWwNCiAgICA+ICAgICBbMl0NCiAgICA+IGh0dHBzOi8vZG9jcy5hd3MuYW1h em9uLmNvbS9lZnMvbGF0ZXN0L3VnL21vdW50aW5nLWZzLW5mcy1tb3VudC1zZXR0aW5ncy5odG1s DQogICAgPiAgICAgWzNdIGh0dHBzOi8vYnVnemlsbGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/ aWQ9MjA0OTM5DQogICAgPiAgICAgWzRdDQogICAgPiBodHRwczovL3d3dy5tYWlsLWFyY2hpdmUu Y29tL2xpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcvbXNnMTI3NDc0My5odG1sDQogICAgPg0K ICAgID4NCiAgICA+ICAgICBUaGFuayB5b3UuDQogICAgPg0KICAgID4gICAgIEhhemVtDQogICAg Pg0KICAgID4NCiAgICA+DQogICAgPg0KICAgID4NCiAgICA+DQogICAgPg0KICAgID4gQW1hem9u IFdlYiBTZXJ2aWNlcyBFTUVBIFNBUkwsIDM4IGF2ZW51ZSBKb2huIEYuIEtlbm5lZHksIEwtMTg1 NQ0KICAgID4gTHV4ZW1ib3VyZywgUi5DLlMuIEx1eGVtYm91cmcgQjE4NjI4NA0KICAgID4NCiAg ICA+IEFtYXpvbiBXZWIgU2VydmljZXMgRU1FQSBTQVJMLCBJcmlzaCBCcmFuY2gsIE9uZSBCdXJs aW5ndG9uIFBsYXphLA0KICAgID4gQnVybGluZ3RvbiBSb2FkLCBEdWJsaW4gNCwgSXJlbGFuZCwg YnJhbmNoIHJlZ2lzdHJhdGlvbiBudW1iZXIgOTA4NzA1DQogICAgPg0KICAgID4NCg0KICAgIC0t DQogICAgVHJvbmQgTXlrbGVidXN0DQogICAgQ1RPLCBIYW1tZXJzcGFjZSBJbmMNCiAgICA0OTg0 IEVsIENhbWlubyBSZWFsLCBTdWl0ZSAyMDgNCiAgICBMb3MgQWx0b3MsIENBIDk0MDIyDQoNCiAg ICB3d3cuaGFtbWVyLnNwYWNlDQoNCg0KCgoKQW1hem9uIFdlYiBTZXJ2aWNlcyBFTUVBIFNBUkws IDM4IGF2ZW51ZSBKb2huIEYuIEtlbm5lZHksIEwtMTg1NSBMdXhlbWJvdXJnLCBSLkMuUy4gTHV4 ZW1ib3VyZyBCMTg2Mjg0CgpBbWF6b24gV2ViIFNlcnZpY2VzIEVNRUEgU0FSTCwgSXJpc2ggQnJh bmNoLCBPbmUgQnVybGluZ3RvbiBQbGF6YSwgQnVybGluZ3RvbiBSb2FkLCBEdWJsaW4gNCwgSXJl bGFuZCwgYnJhbmNoIHJlZ2lzdHJhdGlvbiBudW1iZXIgOTA4NzA1CgoK