From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH 09/60] drm/bridge: Add connector-related bridge operations and data Date: Mon, 2 Dec 2019 17:40:12 +0200 Message-ID: <20191202154012.GL4929@pendragon.ideasonboard.com> References: <3d23b62c-2ddb-3a5d-1aa8-7e569b6def71@samsung.com> <20190810224313.GG4788@pendragon.ideasonboard.com> <20190814100403.GC5009@pendragon.ideasonboard.com> <20190814124006.GD7444@phenom.ffwll.local> <50b65a02-e9aa-c97f-6ada-31bcac4da93c@samsung.com> <20190819224502.GW5011@pendragon.ideasonboard.com> <5f7200e4-f231-cd8d-4bd0-c2f7eb8c81b7@samsung.com> <20190826162729.GI5031@pendragon.ideasonboard.com> <63475dac-c0e8-11bf-4d6e-0f2d65ad2ac7@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3F41A8989C for ; Mon, 2 Dec 2019 15:40:23 +0000 (UTC) Content-Disposition: inline In-Reply-To: <63475dac-c0e8-11bf-4d6e-0f2d65ad2ac7@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Andrzej Hajda Cc: Maxime Ripard , Sebastian Reichel , dri-devel@lists.freedesktop.org, Tomi Valkeinen , Sean Paul List-Id: dri-devel@lists.freedesktop.org SGkgQW5kcnplaiwKCk9uIFRodSwgQXVnIDI5LCAyMDE5IGF0IDA2OjQ4OjQyUE0gKzAyMDAsIEFu ZHJ6ZWogSGFqZGEgd3JvdGU6Cj4gT24gMjYuMDguMjAxOSAxODoyNywgTGF1cmVudCBQaW5jaGFy dCB3cm90ZToKPiA+IE9uIFRodSwgQXVnIDIyLCAyMDE5IGF0IDAyOjE3OjE2UE0gKzAyMDAsIEFu ZHJ6ZWogSGFqZGEgd3JvdGU6Cj4gPj4gT24gMjAuMDguMjAxOSAwMDo0NSwgTGF1cmVudCBQaW5j aGFydCB3cm90ZToKPiA+Pj4gT24gTW9uLCBBdWcgMTksIDIwMTkgYXQgMTA6Mzg6MzVBTSArMDIw MCwgQW5kcnplaiBIYWpkYSB3cm90ZToKPiA+Pj4+IE9uIDE0LjA4LjIwMTkgMTQ6NDAsIERhbmll bCBWZXR0ZXIgd3JvdGU6Cj4gPj4+Pj4gT24gV2VkLCBBdWcgMTQsIDIwMTkgYXQgMDE6MDQ6MDNQ TSArMDMwMCwgTGF1cmVudCBQaW5jaGFydCB3cm90ZToKPiA+Pj4+Pj4gT24gV2VkLCBBdWcgMTQs IDIwMTkgYXQgMDg6MjM6MTJBTSArMDIwMCwgQW5kcnplaiBIYWpkYSB3cm90ZToKPiA+Pj4+Pj4+ IE9uIDExLjA4LjIwMTkgMDA6NDMsIExhdXJlbnQgUGluY2hhcnQgd3JvdGU6Cj4gPj4+Pj4+Pj4g T24gRnJpLCBBdWcgMDksIDIwMTkgYXQgMDE6NTU6NTNQTSArMDIwMCwgQW5kcnplaiBIYWpkYSB3 cm90ZToKPiA+Pj4+Pj4+Pj4gT24gMDguMDguMjAxOSAyMTozMiwgTGF1cmVudCBQaW5jaGFydCB3 cm90ZToKPiA+Pj4+Pj4+Pj4+IE9uIFR1ZSwgSnVsIDE2LCAyMDE5IGF0IDAzOjU3OjIxUE0gKzAy MDAsIEFuZHJ6ZWogSGFqZGEgd3JvdGU6Cj4gPj4+Pj4+Pj4+Pj4gT24gMTYuMDcuMjAxOSAxMTow MCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+Pj4+Pj4+Pj4+Pj4gT24gRnJpLCBKdWwgMTIsIDIw MTkgYXQgMTE6MDE6MzhBTSArMDIwMCwgQW5kcnplaiBIYWpkYSB3cm90ZToKPiA+Pj4+Pj4+Pj4+ Pj4+IE9uIDExLjA3LjIwMTkgMTc6NTAsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPj4+Pj4+Pj4+ Pj4+Pj4gT24gVGh1LCBKdWwgMTEsIDIwMTkgYXQgMDU6MTI6MjZQTSArMDIwMCwgQW5kcnplaiBI YWpkYSB3cm90ZToKPiA+Pj4+Pj4+Pj4+Pj4+Pj4gT24gMTEuMDcuMjAxOSAxNToxOCwgRGFuaWVs IFZldHRlciB3cm90ZToKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IE9uIFRodSwgSnVsIDExLCAyMDE5IGF0 IDAyOjQxOjAxUE0gKzAyMDAsIEFuZHJ6ZWogSGFqZGEgd3JvdGU6Cj4gPj4+Pj4+Pj4+Pj4+Pj4+ Pj4gT24gMTEuMDcuMjAxOSAwOTozNSwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4gT24gV2VkLCBKdWwgMTAsIDIwMTkgYXQgMDI6MTI6MTRQTSArMDIwMCwgQW5kcnpl aiBIYWpkYSB3cm90ZToKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+IEhpIExhdXJlbnQsCj4gPj4+Pj4+ Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gSSBsaWtlIHRoZSBhcHByb2FjaCwg Y3VycmVudCBwcmFjdGljZSB3aGVuIGFsbW9zdCBldmVyeSBicmlkZ2Ugc2hvdWxkCj4gPj4+Pj4+ Pj4+Pj4+Pj4+Pj4+PiBvcHRpb25hbGx5IGltcGxlbWVudCBjb25uZWN0b3IsIG9yIGFsdGVybmF0 aXZlbHkgZG93bnN0cmVhbSBicmlkZ2Ugb3IKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+IHBhbmVsIGlz IHZlcnkgcGFpbmZ1bC4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4g WWVhaCBJIHRoaW5rIHRoaXMgbG9va3MgbW9zdGx5IHJlYXNvbmFibGUuIFNvbWUgYXBpIGRlc2ln biBjb21tZW50cyBvbiB0b3AKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gb2YgQW5kcnplaicsIHdpdGgg dGhlIGZhaXIgd2FybmluZyB0aGF0IEkgZGlkbid0IGJvdGhlciB0byByZWFkIHVwIG9uIGhvdwo+ ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBpdCdzIGFsbCB1c2VkIGluIHRoZSBlbmQuIEkgcHJvYmFibHkg c2hvdWxkIGdvIGFuZCBkbyB0aGF0LCBhdCBsZWFzdCB0bwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBn ZXQgYSBmZWVsaW5nIGZvciB3aGF0IHlvdXIgaHBkX2NiIHVzdWFsbHkgZG9lcy4KPiA+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+IE1vcmUgY29tbWVudHMgaW5saW5lZC4K PiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBPbiAwNy4wNy4yMDE5 IDIwOjE4LCBMYXVyZW50IFBpbmNoYXJ0IHdyb3RlOgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+IFRv IHN1cHBvcnQgaW1wbGVtZW50YXRpb24gb2YgRFJNIGNvbm5lY3RvcnMgb24gdG9wIG9mIERSTSBi cmlkZ2VzCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gaW5zdGVhZCBvZiBieSBicmlkZ2VzLCB0aGUg ZHJtX2JyaWRnZSBuZWVkcyB0byBleHBvc2UgbmV3IG9wZXJhdGlvbnMgYW5kCj4gPj4+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4gZGF0YToKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4+IC0gT3V0cHV0IGRldGVjdGlvbiwgaG90LXBsdWcgbm90aWZpY2F0aW9uLCBtb2RlIHJl dHJpZXZhbCBhbmQgRURJRAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICAgcmV0cmlldmFsIG9wZXJh dGlvbnMKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAtIEJpdG1hc2sgb2Ygc3VwcG9ydGVkIG9wZXJh dGlvbnMKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBXaHkgZG8g d2UgbmVlZCB0aGVzZSBiaXRtYXNrIGF0IGFsbD8gV2h5IGNhbm5vdCB3ZSByZWx5IG9uIHByZXNl bmNlIG9mCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBvcGVyYXRpb24ncyBjYWxsYmFjaz8KPiA+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4gWWVhaCBhbHNvIG5vdCBhIGh1Z2UgZmFuIG9mIHRoZXNlIGJpdG1hc2tz LiBTbWVsbHMgbGlrZQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBE UklWRVJfR0VNfERSSVZFUl9NT0RFU0VULCBhbmQgSSBwZXJzb25hbGx5IHJlYWxseSBoYXRlIHRo b3NlLiBFYXN5IHRvCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+IGFkZCwgZ2VuZXJhbGx5IGdvb2QgZXhj dXNlIHRvIG5vdCBoYXZlIHRvIHRoaW5rIHRocm91Z2ggdGhlIGRlc2lnbiBiZXR3ZWVuCj4gPj4+ Pj4+Pj4+Pj4+Pj4+Pj4+IGRpZmZlcmVudCBwYXJ0cyBvZiBkcml2ZXJzIC0gImp1c3QiIGFkZCBh bm90aGVyIGZsYWcuCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4g LSBCcmlkZ2Ugb3V0cHV0IHR5cGUKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4+IEFkZCBhbmQgZG9jdW1lbnQgdGhlc2UuCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4K PiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBUaHJlZSBuZXcgYnJpZGdlIGhlbHBlciBmdW5jdGlvbnMg YXJlIGFsc28gYWRkZWQgdG8gaGFuZGxlIGhvdCBwbHVnCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4g bm90aWZpY2F0aW9uIGluIGEgd2F5IHRoYXQgaXMgYXMgdHJhbnNwYXJlbnQgYXMgcG9zc2libGUg Zm9yIHRoZQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+IGJyaWRnZXMuCj4gPj4+Pj4+Pj4+Pj4+Pj4+ Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gRG9jdW1lbnRhdGlvbiBvZiBuZXcgb3BzZXMgZG9l cyBub3QgZXhwbGFpbiBob3cgaXQgc2hvdWxkIGNvb3BlcmF0ZSB3aXRoCj4gPj4+Pj4+Pj4+Pj4+ Pj4+Pj4+PiBicmlkZ2UgY2hhaW5pbmcsIEkgc3VwcG9zZSB0aGV5IHNob3VsZCBiZSBjaGFpbmVk IGV4cGxpY2l0bHksIGFtIEkKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+IHJpZ2h0PyBNb3JlIGNvbW1l bnRzIGFib3V0IGl0IGxhdGVyLgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0 QGlkZWFzb25ib2FyZC5jb20+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gLS0tCj4gPj4+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYnJpZGdlLmMgfCAgOTIgKysrKysrKysr KysrKysrKysrKwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICBpbmNsdWRlL2RybS9kcm1fYnJpZGdl LmggICAgIHwgMTcwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gPj4+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4gIDIgZmlsZXMgY2hhbmdlZCwgMjYxIGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2JyaWRnZS5jIGIvZHJpdmVycy9ncHUvZHJt L2RybV9icmlkZ2UuYwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+IGluZGV4IDUxOTU3N2YzNjNlMy4u M2MyYTI1NWRmN2FmIDEwMDY0NAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fYnJpZGdlLmMKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2JyaWRnZS5jCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gQEAgLTcwLDYgKzcw LDggQEAgc3RhdGljIExJU1RfSEVBRChicmlkZ2VfbGlzdCk7Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4gICAqLwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICB2b2lkIGRybV9icmlkZ2VfYWRkKHN0cnVj dCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gIHsKPiA+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4+PiArCW11dGV4X2luaXQoJmJyaWRnZS0+aHBkX211dGV4KTsKPiA+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gIAltdXRleF9sb2NrKCZicmlk Z2VfbG9jayk7Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gIAlsaXN0X2FkZF90YWlsKCZicmlkZ2Ut Pmxpc3QsICZicmlkZ2VfbGlzdCk7Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gIAltdXRleF91bmxv Y2soJmJyaWRnZV9sb2NrKTsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBAQCAtODYsNiArODgsOCBA QCB2b2lkIGRybV9icmlkZ2VfcmVtb3ZlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gPj4+ Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gIAltdXRleF9sb2NrKCZicmlkZ2VfbG9jayk7Cj4gPj4+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4gIAlsaXN0X2RlbF9pbml0KCZicmlkZ2UtPmxpc3QpOwo+ID4+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4+ICAJbXV0ZXhfdW5sb2NrKCZicmlkZ2VfbG9jayk7Cj4gPj4+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4gKwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJbXV0ZXhfZGVzdHJveSgmYnJpZGdlLT5o cGRfbXV0ZXgpOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICB9Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4gIEVYUE9SVF9TWU1CT0woZHJtX2JyaWRnZV9yZW1vdmUpOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4+ICAKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBAQCAtNDYzLDYgKzQ2Nyw5NCBAQCB2b2lkIGRy bV9hdG9taWNfYnJpZGdlX2VuYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ID4+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4+ICB9Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gIEVYUE9SVF9TWU1CT0wo ZHJtX2F0b21pY19icmlkZ2VfZW5hYmxlKTsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAgCj4gPj4+ Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKy8qKgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsgKiBkcm1fYnJp ZGdlX2hwZF9lbmFibGUgLSBlbmFibGUgaG90IHBsdWcgZGV0ZWN0aW9uIGZvciB0aGUgYnJpZGdl Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyAqIEBicmlkZ2U6IGJyaWRnZSBjb250cm9sIHN0cnVj dHVyZQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsgKiBAY2I6IGhvdC1wbHVnIGRldGVjdGlvbiBj YWxsYmFjawo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsgKiBAZGF0YTogZGF0YSB0byBiZSBwYXNz ZWQgdG8gdGhlIGhvdC1wbHVnIGRldGVjdGlvbiBjYWxsYmFjawo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4+ICsgKgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsgKiBDYWxsICZkcm1fYnJpZGdlX2Z1bmNz LmhwZF9lbmFibGUgYW5kIHJlZ2lzdGVyIHRoZSBnaXZlbiBAY2IgYW5kIEBkYXRhIGFzCj4gPj4+ Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyAqIGhvdCBwbHVnIG5vdGlmaWNhdGlvbiBjYWxsYmFjay4gRnJv bSBub3cgb24gdGhlIEBjYiB3aWxsIGJlIGNhbGxlZCB3aXRoCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4gKyAqIEBkYXRhIHdoZW4gYW4gb3V0cHV0IHN0YXR1cyBjaGFuZ2UgaXMgZGV0ZWN0ZWQgYnkg dGhlIGJyaWRnZSwgdW50aWwgaG90IHBsdWcKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArICogbm90 aWZpY2F0aW9uIGdldHMgZGlzYWJsZWQgd2l0aCBkcm1fYnJpZGdlX2hwZF9kaXNhYmxlKCkuCj4g Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyAqCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyAqIEhvdCBw bHVnIGRldGVjdGlvbiBpcyBzdXBwb3J0ZWQgb25seSBpZiB0aGUgRFJNX0JSSURHRV9PUF9IUEQg ZmxhZyBpcyBzZXQgaW4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArICogYnJpZGdlLT5vcHMuIFRo aXMgZnVuY3Rpb24gc2hhbGwgbm90IGJlIGNhbGxlZCB3aGVuIHRoZSBmbGFnIGlzIG5vdCBzZXQu Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyAqCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyAqIE9u bHkgb25lIGhvdCBwbHVnIGRldGVjdGlvbiBjYWxsYmFjayBjYW4gYmUgcmVnaXN0ZXJlZCBhdCBh IHRpbWUsIGl0IGlzIGFuCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyAqIGVycm9yIHRvIGNhbGwg dGhpcyBmdW5jdGlvbiB3aGVuIGhvdCBwbHVnIGRldGVjdGlvbiBpcyBhbHJlYWR5IGVuYWJsZWQg Zm9yCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyAqIHRoZSBicmlkZ2UuCj4gPj4+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4gKyAqLwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ IFRvIHNpbXBsaWZ5IGFyY2hpdGVjdHVyZSBtYXliZSB3b3VsZCBiZSBiZXR0ZXIgdG8gZW5hYmxl IGhwZCBqdXN0IG9uCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBicmlkZ2UgYXR0YWNoOgo+ID4+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+IGJyaWRnZS0+aHBkX2NiID0gY2I7 Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gYnJpZGdlLT5ocGRf ZGF0YSA9IGRhdGE7Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4g cmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goLi4uKTsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4gWWVhaCBJIGxpa2UgdGhpcyBtb3JlLiBUaGUgb3RoZXIgcHJvYmxlbSBo ZXJlIGlzLCB3aGF0IGlmIHlvdSBuZWVkIG1vcmUKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gdGhhbiAx IGNhbGxiYWNrIHJlZ2lzdGVycyBvbiB0aGUgc2FtZSBicmlkZ2UgaGRwIHNpZ25hbD8KPiA+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+IFRoaXMgd2F5IHdlIGNvdWxkIGF2 b2lkIGFkZGluZyBuZXcgY2FsbGJhY2tzIGhwZF8oZW5hYmxlfGRpc2FibGUpCj4gPj4+Pj4+Pj4+ Pj4+Pj4+Pj4+PiB3aXRob3V0IGJpZyBzYWNyaWZpY2VzLgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4K PiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+IE9uZSBtb3JlIHRoaW5nOiBIUEQgaW4gRGlzcGxheVBvcnQv SERNSSBiZXNpZGUgc2lnbmFsbGluZyBwbHVnL3VucGx1ZywKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ IG5vdGlmaWVzIGFib3V0IHNpbmsgc3RhdHVzIGNoYW5nZSwgaG93IGl0IHRyYW5zbGF0ZXMgdG8g dGhpcyBjYj8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gK3Zv aWQgZHJtX2JyaWRnZV9ocGRfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gPj4+ Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkJCSAgIHZvaWQgKCpjYikodm9pZCAqZGF0YSwKPiA+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4+PiArCQkJCSAgICAgIGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgc3RhdHVz KSwKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCQkJICAgdm9pZCAqZGF0YSkKPiA+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4+PiArewo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJaWYgKCFicmlkZ2UgfHwgIWJy aWRnZS0+ZnVuY3MtPmhwZF9lbmFibGUpCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkJcmV0dXJu Owo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCW11dGV4 X2xvY2soJmJyaWRnZS0+aHBkX211dGV4KTsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCj4gPj4+ Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwlpZiAoV0FSTihicmlkZ2UtPmhwZF9jYiwgIkhvdCBwbHVnIGRl dGVjdGlvbiBhbHJlYWR5IGVuYWJsZWRcbiIpKQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJCWdv dG8gdW5sb2NrOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ PiArCWJyaWRnZS0+aHBkX2NiID0gY2I7Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwlicmlkZ2Ut PmhwZF9kYXRhID0gZGF0YTsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4gKwlicmlkZ2UtPmZ1bmNzLT5ocGRfZW5hYmxlKGJyaWRnZSk7Cj4gPj4+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4gKwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICt1bmxvY2s6Cj4gPj4+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4gKwltdXRleF91bmxvY2soJmJyaWRnZS0+aHBkX211dGV4KTsKPiA+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4+PiArfQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICtFWFBPUlRfU1lNQk9MX0dQ TChkcm1fYnJpZGdlX2hwZF9lbmFibGUpOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsKPiA+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4+PiArLyoqCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyAqIGRybV9icmlk Z2VfaHBkX2Rpc2FibGUgLSBkaXNhYmxlIGhvdCBwbHVnIGRldGVjdGlvbiBmb3IgdGhlIGJyaWRn ZQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsgKiBAYnJpZGdlOiBicmlkZ2UgY29udHJvbCBzdHJ1 Y3R1cmUKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArICoKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAr ICogQ2FsbCAmZHJtX2JyaWRnZV9mdW5jcy5ocGRfZGlzYWJsZSBhbmQgdW5yZWdpc3RlciB0aGUg aG90IHBsdWcgZGV0ZWN0aW9uCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyAqIGNhbGxiYWNrIHBy ZXZpb3VzbHkgcmVnaXN0ZXJlZCB3aXRoIGRybV9icmlkZ2VfaHBkX2VuYWJsZSgpLiBPbmNlIHRo aXMKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArICogZnVuY3Rpb24gcmV0dXJucyB0aGUgY2FsbGJh Y2sgd2lsbCBub3QgYmUgY2FsbGVkIGJ5IHRoZSBicmlkZ2Ugd2hlbiBhbgo+ID4+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4+ICsgKiBvdXRwdXQgc3RhdHVzIGNoYW5nZSBvY2N1cnMuCj4gPj4+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4gKyAqCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyAqIEhvdCBwbHVnIGRldGVjdGlv biBpcyBzdXBwb3J0ZWQgb25seSBpZiB0aGUgRFJNX0JSSURHRV9PUF9IUEQgZmxhZyBpcyBzZXQg aW4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArICogYnJpZGdlLT5vcHMuIFRoaXMgZnVuY3Rpb24g c2hhbGwgbm90IGJlIGNhbGxlZCB3aGVuIHRoZSBmbGFnIGlzIG5vdCBzZXQuCj4gPj4+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4gKyAqLwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICt2b2lkIGRybV9icmlkZ2Vf aHBkX2Rpc2FibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4+PiArewo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJaWYgKCFicmlkZ2UgfHwgIWJyaWRnZS0+ ZnVuY3MtPmhwZF9kaXNhYmxlKQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJCXJldHVybjsKPiA+ Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwltdXRleF9sb2Nr KCZicmlkZ2UtPmhwZF9tdXRleCk7Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwlicmlkZ2UtPmZ1 bmNzLT5ocGRfZGlzYWJsZShicmlkZ2UpOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsKPiA+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4+PiArCWJyaWRnZS0+aHBkX2NiID0gTlVMTDsKPiA+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4+PiArCWJyaWRnZS0+aHBkX2RhdGEgPSBOVUxMOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ ICsJbXV0ZXhfdW5sb2NrKCZicmlkZ2UtPmhwZF9tdXRleCk7Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4gK30KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArRVhQT1JUX1NZTUJPTF9HUEwoZHJtX2JyaWRn ZV9ocGRfZGlzYWJsZSk7Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwo+ID4+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4+ICsvKioKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArICogZHJtX2JyaWRnZV9ocGRfbm90 aWZ5IC0gbm90aWZ5IGhvdCBwbHVnIGRldGVjdGlvbiBldmVudHMKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4+PiArICogQGJyaWRnZTogYnJpZGdlIGNvbnRyb2wgc3RydWN0dXJlCj4gPj4+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4gKyAqIEBzdGF0dXM6IG91dHB1dCBjb25uZWN0aW9uIHN0YXR1cwo+ID4+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4+ICsgKgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsgKiBCcmlkZ2UgZHJpdmVy cyBzaGFsbCBjYWxsIHRoaXMgZnVuY3Rpb24gdG8gcmVwb3J0IGhvdCBwbHVnIGV2ZW50cyB3aGVu IHRoZXkKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArICogZGV0ZWN0IGEgY2hhbmdlIGluIHRoZSBv dXRwdXQgc3RhdHVzLCB3aGVuIGhvdCBwbHVnIGRldGVjdGlvbiBoYXMgYmVlbgo+ID4+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4+ICsgKiBlbmFibGVkIGJ5IHRoZSAmZHJtX2JyaWRnZV9mdW5jcy5ocGRfZW5h YmxlIGNhbGxiYWNrLgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsgKgo+ID4+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4+ICsgKiBUaGlzIGZ1bmN0aW9uIHNoYWxsIGJlIGNhbGxlZCBpbiBhIGNvbnRleHQgdGhh dCBjYW4gc2xlZXAuCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyAqLwo+ID4+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4+ICt2b2lkIGRybV9icmlkZ2VfaHBkX25vdGlmeShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJp ZGdlLAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJCQkgICBlbnVtIGRybV9jb25uZWN0b3Jfc3Rh dHVzIHN0YXR1cykKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArewo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4+ICsJbXV0ZXhfbG9jaygmYnJpZGdlLT5ocGRfbXV0ZXgpOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4+ICsJaWYgKGJyaWRnZS0+aHBkX2NiKQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJCWJyaWRn ZS0+aHBkX2NiKGJyaWRnZS0+aHBkX2RhdGEsIHN0YXR1cyk7Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+IFNvIHRoaXMgaXNuJ3QgcXVpdGUgd2hhdCBJIGhhZCBpbiBt aW5kLiBJbnN0ZWFkIHNvbWV0aGluZyBsaWtlIHRoaXM6Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4g Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+IAkvKiBpdGVyYXRlcyBvdmVyIGFsbCBicmlkZ2VzIGluIHRoZSBj aGFpbiBjb250YWluaW5nIEBicmlkZ2UgKi8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gCWZvcl9lYWNo X2JyaWRnZSh0bXBfYnJpZGdlLCBicmlkZ2UpIHsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gCQlpZiAo dG1wX2JyaWRnZSA9PSBicmlkZ2UpCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+IAkJCWNvbnRpbnVlOwo+ ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAJCWlmIChicmlkZ2UtPmhwZF9ub3RpZnkpOwo+ID4+Pj4+Pj4+ Pj4+Pj4+Pj4+PiAJCQlicmlkZ2UtPmhwZF9ub3RpZnkodG1wX2JyaWRnZSwgYnJpZGdlLCBzdGF0 dXMpOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAJfQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+ Pj4+Pj4+Pj4+Pj4+PiAJZW5jb2RlciA9IGVuY29kZXJfZm9yX2JyaWRnZShicmlkZ2UpOwo+ID4+ Pj4+Pj4+Pj4+Pj4+Pj4+PiAJaWYgKGVuY29kZXItPmhlbHBlcl9wcml2YXRlLT5icmlkZ2VfaHBk X25vdGlmeSkKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gCQllbmNvZGVyLT5oZWxwZXJfcHJpdmF0ZS0+ YnJpZGdlX2hwZF9ub3RpZnkoZW5jb2RlciwgYnJpZGdlLCBzdGF0dXMpOwo+ID4+Pj4+Pj4+Pj4+ Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAJZGV2ID0gYnJpZGdlLT5kZXYKPiA+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4gCWlmIChkZXYtPm1vZGVfY29uZmlnLmhlbHBlcl9wcml2YXRlLT5icmlkZ2Vf aHBkX25vdGlmeSkKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gCQlkZXYtPm1vZGVfY29uZmlnLmhlbHBl cl9wcml2YXRlLT5icmlkZ2VfaHBkX25vdGlmeShkZXYsIGJyaWRnZSwgc3RhdHVzKQo+ID4+Pj4+ Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBObyByZWdpc3RlciBjYWxsYmFjayBu ZWVkZWQsIG5vIGxvY2tpbmcgbmVlZGVkLCBldmVyeW9uZSBnZXRzIGV4YWN0bHkgdGhlCj4gPj4+ Pj4+Pj4+Pj4+Pj4+Pj4+IGhwZCB0aGV5IHdhbnQvbmVlZC4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+ ID4+Pj4+Pj4+Pj4+Pj4+Pj4+IEFzIEkgdW5kZXJzdGFuZCB5b3Ugd2FudCB0byBub3RpZnkgZXZl cnkgbWVtYmVyIG9mIHRoZSBwaXBlbGluZS4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+ Pj4+Pj4+Pj4+IEkgdGhpbmsgaXQgc2hvdWxkIGJlIGVub3VnaCB0byBub3RpZnkgb25seSB0aGUg c291cmNlLCBhbmQgdGhlbiBzb3VyY2UKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+PiBzaG91bGQgZGVjaWRl IGlmL3doZW4gdGhlIGhwZCBzaG91bGQgYmUgcHJvcGFnYXRlZCB1cHN0cmVhbS4KPiA+Pj4+Pj4+ Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+IEl0IGxvb2tzIG1vcmUgZ2VuZXJpYyBmb3Ig bWUuCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gSSdtIG5vdCBwYXJzaW5n IC4uLiBkbyB5b3UgdGhpbmsgbXkgaWRlYSBpcyBtb3JlIGdlbmVyaWMgYW5kIHVzZWZ1bCwgb3IK PiA+Pj4+Pj4+Pj4+Pj4+Pj4+IHRoZSBvbmUgZnJvbSBMYXVyZW50PyBLaW5kYSBjb25mdXNlZCBo ZXJlLgo+ID4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+PiBSZWdhcmRpbmcgZ2VuZXJh bCBpZGVhOgo+ID4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+PiAxLiBMYXVyZW50J3Mg YXBwcm9hY2ggaXMgdG8gbm90aWZ5IG9ubHkgY29uc3VtZXIsIEkgZ3Vlc3MgdXN1YWxseSB2aWRl bwo+ID4+Pj4+Pj4+Pj4+Pj4+PiBzb3VyY2UuCj4gPj4+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+ Pj4+Pj4+IDIuIFlvdXIgaXMgdG8gbm90aWZ5IGFsbCBvdGhlciBicmlkZ2VzIGFuZCBlbmNvZGVy Lgo+ID4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+PiBBbmQgSSBwcmVmZXIgMXN0IGFw cHJvYWNoLCB3aHk6Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+IC0gdGhlIHNv dXJjZSBjYW4gZGVjaWRlIGlmL3doZW4gYW5kIHRvIHdobyBwcm9wYWdhdGUgdGhlIHNpZ25hbCwK PiA+Pj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4gLSBpcyBtb3JlIGdlbmVyaWMsIGZv ciBleGFtcGxlIGlmIGJyaWRnZSBzZW5kIHNpZ25hbCB0byB0d28KPiA+Pj4+Pj4+Pj4+Pj4+Pj4g bW9uaXRvcnMvcGFuZWxzLCBpdCBjYW4gZGVsYXkgaHBkIHByb3BhZ2F0aW9uIHRpbGwgYm90aCBz aW5rcyBhcmUgcHJlc2VudCwKPiA+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+IFdpdGgg TGF1cmVudCdzIGFwcHJvYWNoIHRoZSBicmlkZ2UgY2Fubm90IHNlbmQgdGhlIGhwZCB0byBtb3Jl IHRoYW4gb25lCj4gPj4+Pj4+Pj4+Pj4+Pj4gY29uc3VtZXIuIFRoZXJlJ3Mgb25seSAxIGNhbGxi YWNrLiBTbyB5b3UncmUgZXhhbXBsZSBkb2Vzbid0IHdvcmsuCj4gPj4+Pj4+Pj4+Pj4+Pgo+ID4+ Pj4+Pj4+Pj4+Pj4gSWYgdGhlcmUgd2lsbCBiZSB0d28gY29uc3VtZXJzLCB0aGVyZSB3aWxsIGJl IHR3byBicmlkZ2UgYXR0YWNobWVudHMsCj4gPj4+Pj4+Pj4+Pj4+PiB0aHVzIHRoZXJlIHdpbGwg YmUgdHdvIG5vdGlmaWNhdGlvbnMsIGl0IHNob3VsZCB3b3JrLgo+ID4+Pj4+Pj4+Pj4+Pgo+ID4+ Pj4+Pj4+Pj4+PiAyIGNvbnN1bWVycywgMSBwcm9kdWNlci4gVGhlcmUncyBvbmx5IF9vbmVfIGNh bGxiYWNrIGluIHRoZSBwcm9kdWNlci4gVGhlCj4gPj4+Pj4+Pj4+Pj4+IGNhbGxiYWNrIGlzIHJl Z2lzdGVyZWQgb24gdGhlIHByb2R1Y2UgYnJpZGdlLCBub3Qgb24gdGhlIGNvbnN1bWVyIGJyaWRn ZQo+ID4+Pj4+Pj4+Pj4+PiAob3IgSSdtIHRvdGFsbGx5IG1pc3JlYWRpbmcgd2hhdCBMYXVyZW50 IGRvZXMgaGVyZSkuCj4gPj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiBJIGhhdmUgYXNzdW1lZCB0 aGF0IGlmIGRldmljZXMgZXhwb3NlcyB0d28gaGFyZHdhcmUgc2luayBpbnRlcmZhY2VzIGl0Cj4g Pj4+Pj4+Pj4+Pj4gd2lsbCBleHBvc2UgdHdvIHNlcGFyYXRlIGJyaWRnZXMgLSBvZiBjb3Vyc2Ug aXQgd2lsbCBub3Qgd29yayB3aXRoCj4gPj4+Pj4+Pj4+Pj4gImJyaWRnZSBjaGFpbmluZyIgdGhp bmcsIGJ1dCB0aGlzIGlzIGEgZGlmZmVyZW50IHN0b3J5Lgo+ID4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+ Pj4+IERhbmllbCBpcyByaWdodCB0aGF0IHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIG9ubHkg YWxsb3dzIG9uZQo+ID4+Pj4+Pj4+Pj4gY29uc3VtZXIuIFRoaXMgaXMgaG93ZXZlciBub3QgYSBs aW1pdGF0aW9uIG9mIHRoZSBBUEksIGJ1dCBvZiBpdHMKPiA+Pj4+Pj4+Pj4+IGltcGxlbWVudGF0 aW9uLCBhcyBJIG9ubHkgbmVlZGVkIGEgc2luZ2xlIGNvbnN1bWVyLiBUaGUgaGVscGVycyBpbiB0 aGlzCj4gPj4+Pj4+Pj4+PiBzZXJpZXMgZW5zdXJlIHRoYXQgbmVpdGhlciB0aGUgY29uc3VtZXIg bm9yIHRoZSBwcm9kdWNlciBwb2tlIGluIHRoZQo+ID4+Pj4+Pj4+Pj4gZHJtX2JyaWRnZSBzdHJ1 Y3R1cmUgdG8gY2FsbCBiYWNrIHRvIHRoZSBIUEQgaGFuZGxlcjoKPiA+Pj4+Pj4+Pj4+Cj4gPj4+ Pj4+Pj4+PiAtIFRoZSBjb25zdW1lciBjYWxscyBkcm1fYnJpZGdlX2hwZF9lbmFibGUoKSBhbmQK PiA+Pj4+Pj4+Pj4+ICAgZHJtX2JyaWRnZV9ocGRfZGlzYWJsZSgpLCB3aGljaCBjb3VsZCBvZmZl ciBhIHJlZmVyZW5jZS1jb3VudGVkCj4gPj4+Pj4+Pj4+PiAgIGJlaGF2aW91ciBpZiBkZXNpcmVk IHdpdGhvdXQgY2hhbmdlcyB0byB0aGUgY29uc3VtZXIuCj4gPj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+ Pj4gLSBUaGUgcHJvZHVjZXIgZ2V0cyBjb25maWd1cmVkIGJ5IC5ocGRfZW5hYmxlKCkgYW5kIC5o cGRfZGlzYWJsZSgpLAo+ID4+Pj4+Pj4+Pj4gICB3aGljaCBjb3VsZCBhbHNvIGVhc2lseSBhY2Nv bW1vZGF0ZSByZWZlcmVuY2UtY291bnRpbmcgaW4gdGhlIGRybQo+ID4+Pj4+Pj4+Pj4gICBicmlk Z2UgY29yZSB3aXRob3V0IGNoYW5nZXMgdG8gdGhlIHByb2R1Y2VyLgo+ID4+Pj4+Pj4+Pj4KPiA+ Pj4+Pj4+Pj4+IC0gVGhlIHByb2R1Y2VyIG5vdGlmaWVzIEhQRCB3aXRoIGRybV9icmlkZ2VfaHBk X25vdGlmeSgpLCB3aGljaCBjb3VsZAo+ID4+Pj4+Pj4+Pj4gICBlYXNpbHkgYmUgZXh0ZW5kZWQg dG8gc3VwcG9ydCBtdWx0aXBsZSBjb25zdW1lcnMgd2l0aG91dCBjaGFuZ2VzIHRvCj4gPj4+Pj4+ Pj4+PiAgIHRoZSBwcm9kdWNlci4KPiA+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+PiBUaGlzIGlzIGFj dHVhbGx5IG15IHNlY29uZCB2ZXJzaW9uIG9mIHRoZSBIUEQgbWVjaGFuaXNtLiBUaGUgZmlyc3QK PiA+Pj4+Pj4+Pj4+IHZlcnNpb24gd2FzIG5ldmVyIHBvc3RlZCwgcG9rZWQgaW50byBkcm1fYnJp ZGdlLCBhbmQgcmVxdWlyZWQgdGhlCj4gPj4+Pj4+Pj4+PiBwcm9kdWNlciB0byBiZSBhd2FyZSBv ZiB0aGUgY2FsbGJhY2tzLiBBZnRlciBkaXNjdXNzaW5nIHRoaXMgcHJpdmF0ZWx5Cj4gPj4+Pj4+ Pj4+PiB3aXRoIERhbmllbCwgSSBjYW1lIHVwIHdpdGggdGhlIGltcGxlbWVudGF0aW9uIGluIHRo aXMgc2VyaWVzIHRoYXQsCj4gPj4+Pj4+Pj4+PiB3aGlsZSBub3Qgc3VwcG9ydGluZyBtdWx0aXBs ZSBjb25zdW1lcnMgbm93LCBtYWtlcyBpdCBlYXN5IHRvIGV4dGVuZAo+ID4+Pj4+Pj4+Pj4gbGF0 ZXIgd2l0aG91dCBtaW5pbWFsIGVmZm9ydC4KPiA+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+PiBEYW5p ZWwncyBwcm9wb3NlZCBpbXBsZW1lbnRhdGlvbiBhYm92ZSBsb29rcyByZWFzb25hYmxlIHRvIG1l LCBwcm92aWRlZAo+ID4+Pj4+Pj4+Pj4gd2UgY2FuIGl0ZXJhdGUgb3ZlciB0aGUgYnJpZGdlcyBp biBhbiBvcmRlciB0aGF0IGRvbid0IGRlcGVuZCBvbiB0aGUKPiA+Pj4+Pj4+Pj4+IHBvc2l0aW9u IG9mIHRoZSBwcm9kdWNlciBpbiB0aGUgY2hhaW4gKHNob3VsZCBiZSBlYXN5IHRvIHNvbHZlIGJ5 Cj4gPj4+Pj4+Pj4+PiBzdGFydGluZyBhdCB0aGUgZW5jb2RlciBmb3IgaW5zdGFuY2UpLiBJdCBo b3dldmVyIGxvb2tzIGEgYml0IGxpa2UgYQo+ID4+Pj4+Pj4+Pj4gbWlkbGF5ZXIgdG8gbWUgOi0p IFRoYXQncyB3aHkgSSBoYXZlIGEgc2ltaWxhciBpbXBsZW1lbnRhdGlvbiBpbiB0aGUKPiA+Pj4+ Pj4+Pj4+IGNvbm5lY3Rvci1icmlkZ2UgaGVscGVyLCB3aGljaCBjb3VsZCBiZSBleHRlbmRlZCB0 byBjYWxsCj4gPj4+Pj4+Pj4+PiBlbmNvZGVyLT5oZWxwZXJfcHJpdmF0ZS0+YnJpZGdlX2hwZF9u b3RpZnkoKSBhbmQKPiA+Pj4+Pj4+Pj4+IGRldi0+bW9kZV9jb25maWcuaGVscGVyX3ByaXZhdGUt PmJyaWRnZV9ocGRfbm90aWZ5KCkgaW5zdGVhZCBvZgo+ID4+Pj4+Pj4+Pj4gaGFyZGNvZGluZyBk cm1fa21zX2hlbHBlcl9ob3RwbHVnX2V2ZW50KCkuIE1vdmluZyB0aGUgY29kZSB0bwo+ID4+Pj4+ Pj4+Pj4gZHJtX2JyaWRnZV9ocGRfbm90aWZ5KCkgd291bGQgb24gdGhlIG90aGVyIGhhbmQgc2V0 IHRoZSBub3RpZmljYXRpb24KPiA+Pj4+Pj4+Pj4+IHNlcXVlbmNlIHRvd2FyZHMgdGhlIGVuY29k ZXIgYW5kIGRyaXZlciBpbiBzdG9uZS4gRGFuaWVsLCBkbyB5b3UgdGhpbmsKPiA+Pj4+Pj4+Pj4+ IHRoYXQgd291bGQgYmUgYmV0dGVyID8KPiA+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+PiBJIHdvdWxk IGxpa2UgdG8gcmVtaW5kIGV2ZXJ5Ym9keSB0aGF0IHRoaXMgc2VyaWVzIGlzbid0IHRoZSBsYXN0 IEkgd2lsbAo+ID4+Pj4+Pj4+Pj4gZXZlciBzdWJtaXQsIGFuZCBJIHBsYW4gdG8gZG8gbW9yZSB3 b3JrIG9uIGRybV9icmlkZ2UgYW5kIGRybV9wYW5lbC4gSSdtCj4gPj4+Pj4+Pj4+PiBvcGVuIHRv IHN1Z2dlc3Rpb25zLCBhbmQgY2FuIGFkZHJlc3MgcHJvYmxlbXMgb24gdG9wIG9mIHRoZXNlIHBh dGNoZXMsCj4gPj4+Pj4+Pj4+PiBwcm92aWRlZCBvYnZpb3VzbHkgdGhhdCB0aGlzIHNlcmllcyBk b2Vzbid0IGdvIGluIHRoZSB3cm9uZyBkaXJlY3Rpb24uCj4gPj4+Pj4+Pj4+PiBJJ20gb2YgY291 cnNlIGFsc28gd2lsbGluZyB0byByZXdvcmsgdGhpcyBzZXJpZXMsIGJ1dCBnaXZlbiB0aGUgYW1v dW50Cj4gPj4+Pj4+Pj4+PiBvZiB3b3JrIHdlIGhhdmUgaW4gdGhlIGRybV9icmlkZ2UgcmVhbG0s IEkgY2FuJ3QgZml4IGV2ZXJ5dGhpbmcgaW4gb25lCj4gPj4+Pj4+Pj4+PiBnbyA6LSkKPiA+Pj4+ Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+IC0gaXQgcmVzZW1ibGVzIGhhcmR3YXJlIHdpcmVzIDop Cj4gPj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+PiBUaGlzIGlzbid0IGZvciB0aGUgaHcg d2lyZXMgYWZhaXVpLiBUaGUgaHcgaHBkIHRlcm1pbmF0ZXMgaW4gdGhlIHNvdXJjZQo+ID4+Pj4+ Pj4+Pj4+Pj4+IGJyaWRnZSwgd2hpY2ggdGhlbiBjYWxscyBkcm1fYnJpZGdlX2hwZF9ub3RpZnko KSB0byBpbmZvcm0gYW55b25lIGVsc2UKPiA+Pj4+Pj4+Pj4+Pj4+PiBpbnRlcmVzdGVkIGluIHRo YXQgaHBkIHNpbmdhbC4gVGhpcyBpbmNsdWRlczoKPiA+Pj4+Pj4+Pj4+Pj4+PiAtIE90aGVyIGJy aWRnZXMsIGUuZy4gaWYgdGhleSBwcm92aWRlIENFQyBzdXBwb3J0Lgo+ID4+Pj4+Pj4+Pj4+Pj4+ IC0gT3RoZXIgYnJpZGdlcywgbWF5YmUgdGhleSBuZWVkIHRvIHJlLXJ1biB0aGUgSERDUCBzdGF0 ZSBlbmdpbmUKPiA+Pj4+Pj4+Pj4+Pj4+PiAtIE92ZXJhbGwgZHJpdmVyLCBzbyBpdCBjYW4gdXBk YXRlIHRoZSBtb2Rlcy9jb25uZWN0b3Igc3RhdHVzIGFuZCBzZW5kIHRoZQo+ID4+Pj4+Pj4+Pj4+ Pj4+ICAgdWV2ZW50IHRvIHRoZSBkcml2ZXIuCj4gPj4+Pj4+Pj4+Pj4+Pj4gLSBPdmVyYWxsIGRp c3BsYXkgcGlwZWxpbmUgZm9yIHRoaXMgc3BlY2lmaWMgYnJpZGdlLCBtYXliZSB5b3UgbmVlZCB0 bwo+ID4+Pj4+Pj4+Pj4+Pj4+ICAgc2h1dCBkb3duL3JlLWVuYWJsZSB0aGUgcGlwZSBiZWNhdXNl ICRyZWFzb25zLgo+ID4+Pj4+Pj4+Pj4+Pj4+ICAKPiA+Pj4+Pj4+Pj4+Pj4+PiBUaGF0J3MgYXQg bGVhc3QgbXkgdW5kZXJzdGFuZGluZyBmcm9tIGxvdHMgb2YgY2hhdHMgd2l0aCBMYXVyZW50IGFi b3V0Cj4gPj4+Pj4+Pj4+Pj4+Pj4gd2hhdCBoZSB3YW50cyB0byBkbyBoZXJlLgo+ID4+Pj4+Pj4+ Pj4KPiA+Pj4+Pj4+Pj4+IFRoYXQncyBjb3JyZWN0LCBhbmQgdGhhdCdzIHdoYXQgSSB3YXMgdHJ5 aW5nIHRvIGltcGxlbWVudCA6LSkgVGhlCj4gPj4+Pj4+Pj4+PiBub3RpZmljYXRpb24sIGluIHRo aXMgcGF0Y2ggc2VyaWVzLCBnb2VzIGZyb20gdGhlIHByb2R1Y2VyIGJyaWRnZSB0byBhCj4gPj4+ Pj4+Pj4+PiBjZW50cmFsIHBsYWNlIChuYW1lbHkgdGhlIGNvbm5lY3Rvciwgd2l0aCBhIGhlbHBl ciBpbXBsZW1lbnRhdGlvbgo+ID4+Pj4+Pj4+Pj4gYXZhaWxhYmxlIGFzIHBhcnQgb2YgdGhpcyBz ZXJpZXMsIGJ1dCBjdXN0b20gaW1wbGVtZW50YXRpb25zIGluIGRpc3BsYXkKPiA+Pj4+Pj4+Pj4+ IGRyaXZlcnMgYXJlIGZpbmUgaWYgbmVlZGVkKSB0aGF0IHRoZW4gZGlzcGF0Y2hlcyB0aGUgbm90 aWZpY2F0aW9uIHRvIGFsbAo+ID4+Pj4+Pj4+Pj4gYnJpZGdlcyAodGhyb3VnaCB0aGUgLmxvc3Rf aG90cGx1ZygpIG9wZXJhdGlvbiwgd2hpY2ggd2UgY291bGQgcmVwbGFjZQo+ID4+Pj4+Pj4+Pj4g YnkgYW4gLmhwZF9ub3RpZnkoKSBvcGVyYXRpb24pIGZvciB0aGUgZmlyc3QgdHdvIHB1cnBvc2Vz IGxpc3RlZCBhYm92ZSwKPiA+Pj4+Pj4+Pj4+IGFuZCB0aGVuIHRvIHRoZSBvdmVyYWxsIGRyaXZl ci4gVGhlIG9ubHkgdGhpbmcgSSBkb24ndCBzdXBwb3J0IHlldCBpcwo+ID4+Pj4+Pj4+Pj4gZGlz cGF0Y2hpbmcgdG8gdGhlIGRpc3BsYXkgcGlwZWxpbmUgKGl0ZW0gNCBpbiB0aGUgbGlzdCBhYm92 ZSkgYXMgSSBoYWQKPiA+Pj4+Pj4+Pj4+IG5vIG5lZWQgZm9yIHRoYXQsIGFuZCBkaWRuJ3Qgd2Fu dCB0byBkZXZlbG9wIGFuIEFQSSB3aXRoIG5vIHVzZXIuIFRoaXMKPiA+Pj4+Pj4+Pj4+IHdvdWxk IGhvd2V2ZXIgbm90IGJlIGRpZmZpY3VsdCB0byBkbyB3aGVuIG5lZWRlZCwgdGhlIG5lZWQgaXMg dGFrZW4gaW50bwo+ID4+Pj4+Pj4+Pj4gYWNjb3VudCBpbiB0aGUgcHJvcG9zZWQgaW1wbGVtZW50 YXRpb24uCj4gPj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4gSSBkbyBub3Qga25vdyB0aGUgZnVs bCBwaWN0dXJlLCBidXQgdGhlIHNvbHV0aW9uIHdoZXJlIHBhcnRpY3VsYXIgYnJpZGdlCj4gPj4+ Pj4+Pj4+Pj4+PiBub3RpZmllcyBldmVyeXRoaW5nIHVuY29uZGl0aW9uYWxseSBzZWVtcyB0byBt ZSBtdWNoIGxlc3MgZmxleGlibGUuCj4gPj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4gSWYg SFBEIHNpZ25hbHMgaXMgcmVjZWl2ZWQgYnkgdGhlIGNvbnN1bWVyLCBpZiB0aGVyZSBhcmUgbm8g b2JzdGFjbGVzIGl0Cj4gPj4+Pj4+Pj4+Pj4+PiBjYW4gcHJvcGFnYXRlIGl0IGZ1cnRoZXIsIHVw c3RyZWFtIGJyaWRnZS9lbmNvZGVyIG9yIHRvIGRybSBjb3JlIC0gaXQKPiA+Pj4+Pj4+Pj4+Pj4+ IHdpbGwgbWltaWMgeW91ciBzY2VuYXJpby4KPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+ PiBCdXQgdGhlcmUgYXJlIGFsc28gb3RoZXIgc2NlbmFyaW9zIHdoZXJlIGJyaWRnZSBkb2VzIG5v dCB3YW50IHRvCj4gPj4+Pj4+Pj4+Pj4+PiBwcm9wYWdhdGUgc2lnbmFsLCBiZWNhdXNlIGZvciBl eGFtcGxlOgo+ID4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+IC0gaXQgd2FudHMgdG8gd2Fp dCBmb3Igb3RoZXIgc2lua3MgdG8gd2FrZSB1cCwKPiA+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+ Pj4gVGhlIG90aGVyIHNpbmsgY2FuIGp1c3QgZG8gdGhhdCBpbiB0aGVpciBocGQgY2FsbGJhY2su Cj4gPj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiAtIGl0IHByb3BhZ2F0ZXMgSFBEIHNpZ25h bCB2aWEgaGFyZHdhcmUgd2lyZSwKPiA+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4gQWdhaW4s IHRoZSBvdGhlciBzaW5rIGNhbiBqdXN0IG5vdCBsaXN0ZW4gdG8gc3cgaHBkIGluIHRoYXQgY2Fz ZSwgYW5kIHVzZQo+ID4+Pj4+Pj4+Pj4+PiB0aGUgd2lyZS9odyBocGQgaW50ZXJydXB0Lgo+ID4+ Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gSWYgaXQgc2hvdWxkIGlnbm9yZSBIUEQsIHdoeSBpdCBz aG91bGQgcmVjZWl2ZSBpdCBhdCBhbGwgLSBpdCBpcwo+ID4+Pj4+Pj4+Pj4+IHVubmVjZXNzYXJ5 IG5vaXNlLiBBbmQgSSBhbSBhZnJhaWQgd2l0aCBtb3JlIGNvbXBsaWNhdGVkIHBpcGVsaW5lcyBp dAo+ID4+Pj4+Pj4+Pj4+IHdpbGwgYmUgaW1wb3NzaWJsZSBmb3IgcGFydGljdWxhciBjb21wb25l bnQgKGJyaWRnZS9lbmNvZGVyL3doYXRldmVyKSB0bwo+ID4+Pj4+Pj4+Pj4+IGRpc3Rpbmd1aXNo IGlmIEhQRCBub3RpZmljYXRpb24gd2hpY2ggY2FtZSBmcm9tIG5vbi1kaXJlY3RseSBjb25uZWN0 ZWQKPiA+Pj4+Pj4+Pj4+PiBjb21wb25lbnQgc2hvdWxkIGJlIGlnbm9yZWQgb3Igbm90Lgo+ID4+ Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiAtIGZpcnN0IGl0IHdhbnRzIHRvIHZlcmlmeSBpZiB0 aGUgc2luayBpcyB2YWxpZC9jb21wYXRpYmxlL2F1dGhvcml6ZWQKPiA+Pj4+Pj4+Pj4+Pj4+IGRl dmljZS4KPiA+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4gTm93IHlvdSBsb3N0IG1lLiBXaHkg d291bGQgc29tZW9uZSBnbHVlIGluY29tcGF0aWJsZSBJUCBpbnRvIGEgU29DIG9yCj4gPj4+Pj4+ Pj4+Pj4+IGJvYXJkPwo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gQnJpZGdlIGNhbiBoYXZl IGV4dGVybmFsIGNvbm5lY3RvcnMsIGFuZCB0aGUgdXNlciBjYW4gY29ubmVjdCB0aGVyZQo+ID4+ Pj4+Pj4+Pj4+IGFueXRoaW5nLgo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiBJbiBnZW5l cmFsIEhQRCBpcyBpbnB1dCBzaWduYWwgZm9yIG5vdGlmeSBvZiBzdGF0ZSBjaGFuZ2VzIG9uIHBh cnRpY3VsYXIKPiA+Pj4+Pj4+Pj4+Pj4+IGJ1cywgaW4gY2FzZSBvZiB0eXBpY2FsIHZpZGVvIGJy aWRnZSBvbiBpdHMgb3V0cHV0IHZpZGVvIGJ1cy4KPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+ Pj4+PiBJbiBjYXNlIG9mIGJyaWRnZXMgdGhleSBoYXZlIGFsc28gaW5wdXQgdmlkZW8gYnVzZXMs IGFuZCB0aGV5IGNhbiBzZW5kCj4gPj4+Pj4+Pj4+Pj4+PiBIUEQgc2lnbmFsIHZpYSB0aGlzIGJ1 cywgYnV0IHRoaXMgaXMgaW5kZWVkIGRpZmZlcmVudCBIUEQgc2lnbmFsLCBldmVuCj4gPj4+Pj4+ Pj4+Pj4+PiBpZiBmb3IgbW9zdCBjYXNlcyB0aGV5IGxvb2tzIHNpbWlsYXIuCj4gPj4+Pj4+Pj4+ Pj4+Cj4gPj4+Pj4+Pj4+Pj4+IEFoLCBJIHRoaW5rIHRoaXMgaXMgYSBwcm9ibGVtIHdlIHdpbGwg ZXZlbnR1YWxseSBoYXZlLiBCdXQgaXQncyBub3QKPiA+Pj4+Pj4+Pj4+Pj4gc29tZXRoaW5nIHdl J3JlIGN1cnJlbnRseSBzb2x2aW5nIGhlcmUgYXQgYWxsIEkgdGhpbmsuCj4gPj4+Pj4+Pj4+Pj4K PiA+Pj4+Pj4+Pj4+PiBDdXJyZW50bHkgc2lpODYyMCBkZXZpY2UgaW4gdG0yIHNlbmRzIGhwZCBz aWduYWwgdXBzdHJlYW0gdmlhIGhhcmR3YXJlCj4gPj4+Pj4+Pj4+Pj4gbGluZSwgc28gdGhpcyBp cyBub3Qgc29tZXRoaW5nIGZyb20gZmFyIGZ1dHVyZS4gQW5kIEkgZ3Vlc3Mgd2l0aCBIUEQKPiA+ Pj4+Pj4+Pj4+PiBicm9hZGNhc3RpbmcgaXQgY291bGQgYmUgcmFjeS9lcnJvciBwcm9uZSwgZm9y IGV4YW1wbGUgRURJRCByZWFkaW5nIGNhbgo+ID4+Pj4+Pj4+Pj4+IGZhaWwgZHVlIHRvIGJyaWRn ZSBiZWluZyBub3QgcmVhZHkgKGRkYyBvZiBzaWk4NjIwIGlzIGNvbm5lY3RlZCB0byBpMmMKPiA+ Pj4+Pj4+Pj4+PiBjb250cm9sbGVyIHZpYSBodyB3aXJlcyBhbHNvKS4KPiA+Pj4+Pj4+Pj4+Pgo+ ID4+Pj4+Pj4+Pj4+Pj4+PiBBbmQgcmVnYXJkaW5nIGltcGxlbWVudGF0aW9uOgo+ID4+Pj4+Pj4+ Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+PiAxLiBMYXVyZW50IHByb3Bvc2VzIHRvIHJlZ2lzdGVy IGNhbGxiYWNrIGRybV9icmlkZ2VfaHBkX2VuYWJsZS4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+ Pj4+Pj4+Pj4+Pj4gMi4gWW91IHByb3Bvc2UgdG8gYWRkIG9wcyBocGRfbm90aWZ5IGluIGJyaWRn ZXMgYW5kIGVuY29kZXJzLgo+ID4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+PiBZb3Vy IHByb3Bvc2l0aW9uIGlzIG1vcmUgc3RyYWlnaHRmb3J3YXJkLCBidXQgaWYgd2Ugd2FudCB0byBu b3RpZnkgb25seQo+ID4+Pj4+Pj4+Pj4+Pj4+PiBzb3VyY2Ugd2Ugc2hvdWxkIGxvY2F0ZSBpdCBi eSBwYXJzaW5nIG5vdGlmaWNhdGlvbiBjaGFpbiAod2hhdCBhYm91dAo+ID4+Pj4+Pj4+Pj4+Pj4+ PiB1bmNoYWluZWQgYnJpZGdlcyksIG9yIHN0b3JlIHBvaW50ZXIgc29tZXdoZXJlIGR1cmluZyBh dHRhY2htZW50Lgo+ID4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+PiBJdCBzdGlsbCBs ZWF2ZXMgdXMgd2l0aCB0aGlzIHVnbHkgZHVhbGlzbSAtIHNvdXJjZSBpcyBlbmNvZGVyIG9yIGJy aWRnZSwKPiA+Pj4+Pj4+Pj4+Pj4+Pj4gc2ltaWxhcmx5IHRvIHNpbmsgYXMgYnJpZGdlIG9yIHBh bmVsLCBidXQgZml4aW5nIGl0IGNhbiBiZSBkb25lIGxhdGVyLgo+ID4+Pj4+Pj4+Pj4+Pj4+Cj4g Pj4+Pj4+Pj4+Pj4+Pj4gVWggSSB0aGluayB3ZSdyZSBub3QgdGFsa2luZyBhYm91dCB0aGUgc2Ft ZSB0aGluZyByZWFsbHkuIE15IHVuZGVyc3RhbmRpbmcKPiA+Pj4+Pj4+Pj4+Pj4+PiBpcyB0aGF0 IHRoaXMgY2FsbGJhY2sgaXMgaWYgc29tZW9uZSAob3V0c2lkZSBvZiB0aGlzIGJyaWRnZSkgaXMg aW50ZXJlc3RlZAo+ID4+Pj4+Pj4+Pj4+Pj4+IGluIGEgaHBkIHNpZ25hbCBfZnJvbV8gdGhpcyBi cmlkZ2UuIFdoaWNoIG1lYW5zIHlvdSBjYW4gb25seSBldmVyIGhhdmUgMQo+ID4+Pj4+Pj4+Pj4+ Pj4+IGxpc3RlbmVyLgo+ID4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+IERvIHdlIGhhdmUg cmVhbCBsaWZlIGV4YW1wbGVzPwo+ID4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+IEkgd2Fu dCB0byBkaXN0aW5ndWlzaCB0d28gc2l0dWF0aW9uczoKPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+ Pj4+Pj4+PiAtIGFub3RoZXIgZGV2aWNlIHdhbnRzIHRvIGtub3cgaWYgaW5wdXQgYnVzIG9mIHRo ZSBicmlkZ2UgaGFzIGNoYW5nZWQgc3RhdGUsCj4gPj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+ Pj4gLSBhbm90aGVyIGRldmljZSB3YW50cyB0byBrbm93IGlmIG91dHB1dCBidXMgb2YgdGhlIGJy aWRnZSBoYXMgY2hhbmdlZAo+ID4+Pj4+Pj4+Pj4+Pj4gc3RhdGUuCj4gPj4+Pj4+Pj4+Pj4+Cj4g Pj4+Pj4+Pj4+Pj4+IFVoLCB0aGF0J3Mgd2hhdCBkcm1fYnJpZGdlX3N0YXRlIGlzIGZvciAoaWYg aXQgZXZlciBoYXBwZW5zKS4gVGhhdCdzIGhvdwo+ID4+Pj4+Pj4+Pj4+PiBicmlkZ2VzIGNhbiBl eGNoYW5nZSBzdGF0ZSBhbmQgaW5mb3JtYXRpb24gYWJvdXQgZWFjaCBhbm90aGVyLiBocGQgaXMK PiA+Pj4+Pj4+Pj4+Pj4gYWJvdXQgdGhlIHBoeXNpY2FsIHdvcmxkLCBpLmUuICJpcyB0aGVyZSBh IGNhYmxlIHBsdWdnZWQgaW50byB0aGUgcG9ydAo+ID4+Pj4+Pj4+Pj4+PiBJJ20gZHJpdmluZz8i LiBXZSdyZSBub3QgZ29pbmcgdG8gdXNlIGZha2UgaHBkIHRvIHVwZGF0ZSBicmlkZ2Ugc3RhdGUg YW5kCj4gPj4+Pj4+Pj4+Pj4+IGZ1biBzdHVmZiBsaWtlIHRoYXQsIHdlIGhhdmUgdGhlIGF0b21p Y19jaGVjayBtYWNoaW5lcnkgZm9yIHRoaXMuCj4gPj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiBN eSBxdWVzdGlvbiB3YXMgaWYgd2UgaGF2ZSByZWFsIGV4YW1wbGVzIHRoYXQgdXBzdHJlYW0gZGV2 aWNlIHJlcXVpcmVzCj4gPj4+Pj4+Pj4+Pj4ga25vd2xlZGdlIGFib3V0IHN0YXRlIG9mIG91dHB1 dCBsaW5lIG9mIHRoZSBicmlkZ2U/Cj4gPj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiBUbyBiZSBt b3JlIHByZWNpc2UsIHdlIGhhdmUgZm9sbG93aW5nIGRpc3BsYXkgcGlwZWxpbmU6Cj4gPj4+Pj4+ Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiBBLS0+Qi0tPkMKPiA+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+ IEFuZCBDIHNlbmRzIEhQRCB0byBCIChpZSBzaWduYWwgdGhhdCBzdGF0ZSBvZiBsaW5lIGJldHdl ZW4gQiBhbmQgQwo+ID4+Pj4+Pj4+Pj4+IGNoYW5nZWQpLiBEb2VzIEEgcmVhbGx5IHdhbnRzIHRv IGtub3cgdGhpcyBpbmZvcm1hdGlvbj8gb3IgaXQgc2hvdWxkCj4gPj4+Pj4+Pj4+Pj4ganVzdCBu ZWVkIHRvIGtub3cgaWYgc3RhdGUgb2YgbGluZSBBLS0+QiBjaGFuZ2VkPwo+ID4+Pj4+Pj4+Pj4K PiA+Pj4+Pj4+Pj4+IFRoZXJlJ3Mgb25lIHJlYWwgbGlmZSBleGFtcGxlLCB3aGVyZSBBIGlzIGFu IEhETUkgZW5jb2RlciwgQiBpcyBhbiBIRE1JCj4gPj4+Pj4+Pj4+PiBFU0QgcHJvdGVjdG9yIGFu ZCBsZXZlbCBzaGlmdGVyLCBhbmQgQyBpcyB0aGUgcGh5c2ljYWwgSERNSSBjb25uZWN0b3IuCj4g Pj4+Pj4+Pj4+PiBXaGVuIHRoZSBIRE1JIGNhYmxlIGlzIHVucGx1Z2dlZCwgdGhlIENFQyBjb250 cm9sbGVyIHBhcnQgb2YgQSBuZWVkcyB0bwo+ID4+Pj4+Pj4+Pj4gYmUgbm90aWZpZWQgaW4gb3Jk ZXIgdG8gcmVzZXQgdGhlIENFQyBzdGF0ZSBtYWNoaW5lLiBPbmUgY291bGQgaG93ZXZlcgo+ID4+ Pj4+Pj4+Pj4gYXJndWUgdGhhdCBpbiB0aGF0IGNhc2UgdGhlIEEtQiBsaW5rIHN0YXRlIGNoYW5n ZXMgdG9vLCBidXQgdGhlCj4gPj4+Pj4+Pj4+PiBpbXBvcnRhbnQgcGFydCBpcyB0aGF0IEhQRCBk ZXRlY3Rpb24gaXMgbm90IHBlcmZvcm1lZCBieSBBLCB3aGlsZSBBCj4gPj4+Pj4+Pj4+PiBuZWVk cyB0byBiZSBpbmZvcm1lZCBvZiBsb3N0IGhvdHBsdWcuCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+ IEkgaGF2ZSBubyBmdWxsIHBpY3R1cmUgYnV0IEkgZ3Vlc3MgaW4gdGhpcyBjYXNlIEMgc2VuZHMg SFBEIHRvIEIgdXNpbmcKPiA+Pj4+Pj4+Pj4gaGFyZHdhcmUgd2lyZSwgYW5kIHRoZW4gQiBzZW5k cyBIUEQgdG8gQSBhbHNvIHZpYSB3aXJlLCBzbyBJIHdvdWxkbid0Cj4gPj4+Pj4+Pj4+IHNheSB0 aGF0IEIgZG9lcyBub3QgcGFydGljaXBhdGUgaW4gSFBEIHRyYW5zbWlzc2lvbi9mb3J3YXJkaW5n LAo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4gTm8sIGluIHRoaXMgY2FzZSBBIGRvZXNuJ3QgcmVjZWl2 ZSBhbnkgaGFyZHdhcmUgSFBEIHNpZ25hbCwgaXQgcmVxdWlyZXMKPiA+Pj4+Pj4+PiBIUEQgbm90 aWZpY2F0aW9uIHRocm91Z2ggc29mdHdhcmUuCj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gc29tZSBz aGlmdGVycyB3aXRoICdhZHZhbmNlZCBwb3dlciBzYXZpbmcnIGNhbiBldmVuIHBlcmZvcm0gd2Fr ZS11cCBvZgo+ID4+Pj4+Pj4+PiB1cHN0cmVhbSBwaW4gbG9naWMgYWZ0ZXIgcmVjZWl2aW5nIEhQ RCBvbiBkb3duc3RyZWFtLCBzbyBIUEQgc2VudCBmcm9tIEIKPiA+Pj4+Pj4+Pj4gdG8gQSBpcyBp bmRlZWQgZGlmZmVyZW50IHRoYW4gSFBEIHNlbnQgZnJvbSBDIHRvIEIuCj4gPj4+Pj4+Pj4+Cj4g Pj4+Pj4+Pj4+IEJ0dywgd2l0aCB0aGUgYWJvdmUgbG9naWMgb2YgcHJvcGFnYXRpb24gb2YgSFBE IGNhbGxiYWNrIChwcm9wb3NlZCBieQo+ID4+Pj4+Pj4+PiBEYW5pZWwpIEkgZ3Vlc3MgaXQgd2ls bCB3b3JrIHRoaXMgd2F5Ogo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiAtIEEgd2lsbCByZWNlaXZl IEhQRCBzaWduYWwgdmlhIEhXLAo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiAtIHRoZW4gQiBhbmQg QyB3aWxsIHJlY2VpdmUgSFBEIGNhbGxiYWNrIHZpYSBmcmFtZXdvcmsuCj4gPj4+Pj4+Pj4+Cj4g Pj4+Pj4+Pj4+IEFtIEkgcmlnaHQ/Cj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+PiBJdCdzIHRoZSBvdGhl ciB3YXkgYXJvdW5kLgo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4gSW4gdGhpcyBjYXNlIHRoZSBIUEQg c2lnbmFsIGZyb20gdGhlIGNvbm5lY3RvciAoQykgaXMgcm91dGVkIHRvIGFuIGlucHV0Cj4gPj4+ Pj4+Pj4gb2YgdGhlIEVTRCBjaGlwIChCKS4gVGhlIEVTRCBjaGlwIG91dHB1dHMgYSBzaGlmdGVk IEhQRCBoYXJkd2FyZSBzaWduYWwKPiA+Pj4+Pj4+PiBjb25uZWN0ZWQgdG8gYSBHUElPIG9mIHRo ZSBTb0MuIFRoZSBkcml2ZXIgZm9yIChCKSB0aHVzIHJlZ2lzdGVycyBhIEdQSU8KPiA+Pj4+Pj4+ PiBJUlEgYW5kIHJlY2VpdmUgdGhlIGhhcmR3YXJlIEhQRCBub3RpZmljYXRpb24uIFRoZSBkcml2 ZXIgZm9yIHRoZSBIRE1JCj4gPj4+Pj4+Pj4gZW5jb2RlciAoQSkgbmVlZHMgdG8gcmVjZWl2ZSBI UEQgbm90aWZpY2F0aW9uIGluIHNvZnR3YXJlLCB0aHJvdWdoIHRoZQo+ID4+Pj4+Pj4+IGZyYW1l d29yay4KPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBJZiB0aGlzIGlzIEdQSU8gSSB3b25kZXIgd2h5IGRv IG5vdCBxdWVyeSB0aGlzIGdwaW8gYnkgZW5jb2RlciBkaXJlY3RseSwKPiA+Pj4+Pj4+IHJ1bGVz IG9mIG93bmVyc2hpcCBvZiBzdWNoIGdwaW9zIHNlZW1zIHRvIGJlIGdyZXkgYXJlYSwgc28gaW4g c3VjaCBjYXNlCj4gPj4+Pj4+PiBJIHdvdWxkIGFkdmlzZSB0byBwdXQgaXQgaW4gdGhlIGRyaXZl ciB3aG8gcmVhbGx5IG5lZWRzIGl0Lgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IFRoaXMgd2F5IGl0IHdp bGwgYmUgbXVjaCBzaW1wbGVyLgo+ID4+Pj4+Pgo+ID4+Pj4+PiBGaXJzdCB0byBmYWxsLCBtdWx0 aXBsZSBkcml2ZXJzIG1heSBuZWVkIHRvIGJlIGluZm9ybWVkIG9mIEhQRCBldmVudHMKPiA+Pj4+ Pj4gY29taW5nIGZyb20gYSBHUElPLCBzbyB3ZSB3b3VsZCBuZWVkIHRvIGR1cGxpY2F0ZSBpdCBp biBtdWx0aXBsZSBwbGFjZXMsCj4gPj4+Pj4+IGFuZCBJIGRvbid0IHRoaW5rIHRoZSBHUElPIGZy YW1ld29yayBhbGxvd3MgYWNxdWlyaW5nIGEgR1BJTyBtdWx0aXBsZQo+ID4+Pj4+PiB0aW1lcy4K PiA+Pj4+Pj4KPiA+Pj4+Pj4gVGhlbiwgdGhlIEdQSU8gaXMgZGVzY3JpYmVkIGluIERULCBhbmQg RFQgZG9lc24ndCBjYXJlIGFib3V0IHdoaWNoCj4gPj4+Pj4+IGRyaXZlciBuZWVkcyBIUEQgZXZl bnRzLiBEVCBzcGVjaWZpZXMgdGhlIEdQSU8gaW4gdGhlIG5vZGUgb2YgdGhlIGRldmljZQo+ID4+ Pj4+PiBpdCBiZWxvbmdzIHRvLCB0aGlzIGlzIGRlZmluZWQgaW4gRFQgYmluZGluZ3MsIGFuZCBt dXN0IGJlIHRoZSBzYW1lIG9uCj4gPj4+Pj4+IGFsbCBib2FyZHMsIHdoaWxlIGRlcGVuZGluZyBv biB0aGUgYm9hcmQgZGlmZmVyZW50IGRldmljZXMgbWF5IG5lZWQgdG8KPiA+Pj4+Pj4gYmUgaW5m b3JtZWQgb2YgSFBEIGV2ZW50cy4KPiA+Pj4+Pj4KPiA+Pj4+Pj4gRm9yIHRob3NlIHR3byByZWFz b25zIEhQRCBHUElPIGhhbmRsaW5nIGFuZCBjb25zdW1wdGlvbiBvZiBIUEQgZXZlbnRzCj4gPj4+ Pj4+IGNhbid0IGFsd2F5cyBiZSBncm91cGVkIGluIHRoZSBzYW1lIGRyaXZlci4KPiA+Pj4+Pj4K PiA+Pj4+Pj4+IEdvaW5nIGJhY2sgdG8gSFBEIG5vdGlmaWNhdGlvbnMsIGFzIEkgc2FpZCBlYXJs aWVyIGJyb2FkY2FzdGluZyBIUEQKPiA+Pj4+Pj4+IG5vdGlmaWNhdGlvbiB1bmNvbmRpdGlvbmFs bHkgdG8gZXZlcnkgbWVtYmVyIG9mIHRoZSBjaGFpbiB3aXRoIGhvcGUgdGhhdAo+ID4+Pj4+Pj4g dGhlIG1lbWJlciB3aWxsIGJlIGFibGUgdG8gZmlsdGVyLW91dCB1bmRlc2lyZWQgbm90aWZpY2F0 aW9uIHNlZW1zIHRvIG1lCj4gPj4+Pj4+PiBpbmNvcnJlY3QgLSBtYXliZSBpdCBjYW4gc29sdmUg c29tZSBwcm9ibGVtcyBidXQgaXMgbm90IGZsZXhpYmxlIGVub3VnaAo+ID4+Pj4+Pj4gdG8gYmUg dXNhYmxlIGluIG90aGVyIHNjZW5hcmlvcy4KPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBJZiBteSBhcmd1 bWVudHMgZG8gbm90IGNvbnZpbmNlIHlvdSBwbGVhc2UganVzdCBjb250aW51ZSB3aXRoIHlvdXIK PiA+Pj4+Pj4+IGlkZWFzLCB3ZSBjYW4gYWx3YXlzIGFkZCBOT19IUERfQlJPQURDQVNUIHNvbWV3 aGVyZSA6KQo+ID4+Pj4+Pgo+ID4+Pj4+PiA6LSkgSSB3b3VsZCBsaWtlIHRvIHVuZGVyc3RhbmQg dGhlIHByb2JsZW1zIHlvdSdyZSByZWZlcnJpbmcgdG8gdGhvdWdoLAo+ID4+Pj4+PiBhbmQgaG9w ZWZ1bGx5IHNvbHZlIHRoZW0uIElmIHlvdSBjb3VsZCBkZXNjcmliZSBvbmUgb2YgdGhlIHNjZW5h cmlvcwo+ID4+Pj4+PiB3aGVyZSB5b3UgdGhpbmsgdGhpcyBtZWNoYW5pc20gd291bGRuJ3QgYmUg dXNhYmxlIHRoYXQgd291bGQgaGVscC4gSW4KPiA+Pj4+Pj4gdGhlIG1lYW50aW1lIEkgd2lsbCBw b3N0IGEgbmV3IHZlcnNpb24gb2YgdGhlIHNlcmllcyB3aXRoIHRoZXNlCj4gPj4+Pj4+IG9wZXJh dGlvbnMga2VwdCBhcy1pcyB0byBnZXQgdGhlIHJlc3Qgb2YgdGhlIHBhdGNoZXMgcmV2aWV3ZWQu Cj4gPj4+Pj4KPiA+Pj4+PiBTZWUgbXkgbGl0dGxlIHRoaW5nIGFib3V0IG1pZGxheWVycywgSSB0 aGluayBtaWRsYXllcnMgd2l0aCBsb3RzIG9mIGZsYWdzCj4gPj4+Pj4gZm9yIGV2ZXJ5dGhpbmcg YXJlbid0IGEgZ29vZCBpZGVhLiBUaGV5IHNob3VsZCBiZSBtb3JlIG9waW5pb25hdGVkIGFib3V0 Cj4gPj4+Pj4gaG93IHRoaW5ncyB3b3JrLgo+ID4+Pj4+Cj4gPj4+Pj4gU28gaWYgdGhlcmUncyBh IGNhc2Ugd2hlcmUgdGhpcyBicm9hZGNhc3Rpbmcgb2YgdmFyaW91cyB0aGluZ3MgZG9lc24ndAo+ ID4+Pj4+IHdvcmssIGxldCdzIGRpZyBpbnRvIGl0Lgo+ID4+Pj4KPiA+Pj4+IE9LLCBhbG1vc3Qg cmVhbCBsaWZlIGV4YW1wbGU6Cj4gPj4+Pgo+ID4+Pj4gQSAtPiBCIC0+IEMKPiA+Pj4+Cj4gPj4+ PiBBIC0gUkdCL0hETUkgY29udmVydGVyLAo+ID4+Pj4KPiA+Pj4+IEIgLSBIRE1JL01ITCBjb252 ZXJ0ZXIsCj4gPj4+Pgo+ID4+Pj4gQyAtIHVVU0IgY29udHJvbGxlciAoTVVJQykuCj4gPj4+Pgo+ ID4+Pj4KPiA+Pj4+IEMgLSBkZXRlY3RzIHByZXNlbmNlIG9mIE1ITCBzaW5rIGFuZCByb3V0ZXMg TUhMIGxpbmVzIHRvIEIgaW4gc3VjaCBjYXNlLgo+ID4+Pj4KPiA+Pj4+IEIgLSBoYXMgbm8gaGFy ZHdhcmUgbG9naWMgdG8gZGV0ZWN0IEhQRCwgYnV0IGl0J3MgZmlybXdhcmUgY2FuIHJlYWQgRURJ RAo+ID4+Pj4gZnJvbSBkb3duc3RyZWFtIGNvbXBvbmVudCB2aWEgSFcgbGluZXMgYW5kIGl0IGhh cyBoYXJkd2FyZSBsaW5lcyB0bwo+ID4+Pj4gdXBzdHJlYW0gY29tcG9uZW50IHRvIHNlbmQgRURJ RCwKPiA+Pj4+Cj4gPj4+PiBBIC0gY2FuIHJlYWQgRURJRCBmcm9tIEIgdmlhIGhhcmR3YXJlIGxp bmVzLCBidXQgZG9lcyBub3QgaGF2ZSBoYXJkd2FyZSBIUEQuCj4gPj4+Cj4gPj4+IEl0IHByb2Jh Ymx5IGRvZXNuJ3QgbWF0dGVyIG11Y2ggZm9yIHRoZSBvdmVyYWxsIGRpc2N1c3Npb24sIGJ1dCBv dXQgb2YKPiA+Pj4gY3VyaW9zaXR5LCBkb2VzIEIgaGF2ZSBhIENCVVMgaW50ZXJmYWNlIHRvd2Fy ZHMgQyBhbmQgYSBEREMgKEkyQykKPiA+Pj4gaW50ZXJmYWNlIHRvd2FyZHMgQSA/Cj4gPj4KPiA+ PiBZZXMsIGJ1dCBDIChNVUlDKSBpcyBub3QgTUhMIGF3YXJlLCBiZXNpZGUgaW5pdGlhbCAxSyBy ZXNpc3RhbmNlCj4gPj4gZGV0ZWN0aW9uIG9uIElEIHBpbiwgQUZBSUsuCj4gPj4KPiA+Pj4gIEFu ZCBkb2VzIEEgcmVhZCB0aGUgRURJRCBvbiBEREMgYW5kIGV4cG9zZSBpdAo+ID4+PiB0b3dhcmRz IHRoZSBTb0MgdGhyb3VnaCBhIGN1c3RvbSBwcm90b2NvbCAoZm9yIGluc3RhbmNlIGFzIHRoZSBB RFY3NTExCj4gPj4+IGRvZXMpLCBvciBkb2VzIGl0IGZvcndhcmQgdGhlIEREQyBsaW5lcyB0byB0 aGUgU29DID8KPiA+Pj4KPiA+Pj4+IFNvIGhvdyBpdCBzaG91bGQgd29yayAoYWNjb3JkaW5nIHRv IHNwZWNpZmljYXRpb24pOgo+ID4+Pj4KPiA+Pj4+IDEuIEMgZGV0ZWN0cyBNSEwgc2luay4KPiA+ Pj4+Cj4gPj4+PiAyLiBDIHN3aXRjaGVzIGhpcyBtdXggdG8gcm91dGUgbGluZXMgdG8gQi4KPiA+ Pj4+Cj4gPj4+PiAzLiBDIHNlbmRzIEhQRCBub3RpZmljYXRpb24gdG8gQi4KPiA+Pj4+Cj4gPj4+ PiA0LiBCIHBvd2VycyBvbiwgaXRzIGZpcm13YXJlIHJlYWRzIEVESUQgZnJvbSBkb3duc3RyZWFt IGxpbmVzIChwb3NzaWJseQo+ID4+Pj4gYWRqdXN0aW5nIGl0KSBhbmQgbWFrZXMgaXQgYXZhaWxh YmxlIHRvIHVwc3RyZWFtIGNvbXBvbmVudCBBLgo+ID4+Pj4KPiA+Pj4+IDUuIEIgc2VuZHMgSFBE IG5vdGlmaWNhdGlvbiB0byBBLgo+ID4+Pj4KPiA+Pj4+Cj4gPj4+PiBJIGRvIG5vdCBrbm93IGhv dyBpdCBjb3VsZCB3b3JrIHdpdGggSFBEIGJyb2FkY2FzdGluZy4KPiA+Pj4+Cj4gPj4+PiBJIGd1 ZXNzIEMgc2hvdWxkIGJlIEhQRCBwcm92aWRlciwgYnV0IGluIGNhc2Ugb2YgSFBEIGJyb2FkY2Fz dGluZyBBIGFuZAo+ID4+Pj4gQiB3b3VsZCByZWNlaXZlIG5vdGlmaWNhdGlvbiBpbiB0aGUgc2Ft ZSB0aW1lLCBhcyBhIHJlc3VsdCBBIHdvdWxkIHN0YXJ0Cj4gPj4+PiByZWFkaW5nIEVESUQgdG9v IGVhcmx5IC0gZmFpbC4KPiA+Pj4KPiA+Pj4gVGhhdCdzIGFuIGludGVyZXN0aW5nIGNhc2UgaW5k ZWVkLiBOb3cgSSB1bmRlcnN0YW5kIHdoYXQgeW91IG1lYW50Cj4gPj4+IGVhcmxpZXIuCj4gPj4+ Cj4gPj4+IFRoZSBIUEQgbm90aWZpY2F0aW9uIGZyb20gQyB0byBCIGlzIHB1cmVseSBpbnRlcm5h bCwgYW5kIHNob3VsZCBub3QgYmUKPiA+Pj4gdmlzaWJsZSBmcm9tIGEgRFJNL0tNUyBwb2ludCBv ZiB2aWV3LiBJdCBqdXN0IGhhcHBlbnMgdGhhdCB0aGlzIGhhcmR3YXJlCj4gPj4+IHNldHVwIGhh cyBhIG1vcmUgY29tcGxleCBIUEQgc2VxdWVuY2UgdGhhdCByZXF1aXJlcyBzb2Z0d2FyZQo+ID4+ PiBpbnRlcnZlbnRpb24gaW4gdGhlIG1pZGRsZSBvZiB0aGUgc2VxdWVuY2UuIEFzIHN1Y2gsIGlm IHdlIGZvcmdldCBhYm91dAo+ID4+PiB0aGlzIHBhdGNoIHNlcmllcyBmb3IgYSBtaW51dGUsIEMg d291bGQgbmVlZCBhIGN1c3RvbSBBUEkgdG8gc2VuZCBNSEwKPiA+Pj4gbm90aWZpY2F0aW9uIHRv IEIsIGFuZCB0aGUgSFBEIGZvciBEUk0vS01TIHdvdWxkIGJlIG5vdGlmaWVkIGJ5IEIsIHJpZ2h0 Cj4gPj4+ID8KPiA+Pgo+ID4+IEkganVzdCB3YW50IHRvIGNvbnZpbmNlIHlvdSB0aGF0IG1heWJl IGFsbCBIUEQgc2lnbmFscwo+ID4+IChoYXJkd2FyZS9zb2Z0d2FyZSkgYXJlIHB1cmVseSBpbnRl cm5hbCAoaWUgdGhleSBzaG91bGQgYmUgaGFuZGxlZCBvbmx5Cj4gPj4gYnkgdXBzdHJlYW0gZGV2 aWNlcyksIGFuZCB0aGUgaG90cGx1ZyBldmVudCBzaG91bGQgYmUgc2VudCB0bwo+ID4+IHVzZXJz cGFjZS9kcm1fY29yZSBvbmx5IHdoZW4gV0hPTEUgcGlwZWxpbmUgaXMgcmVhZHkgdG8gcXVlcnkg bW9kZXMKPiA+PiAoaTJjL3NpZGViYW5kIGNoYW5uZWxzL3doYXRldmVyIGlzIGZ1bmN0aW9uYWwp Lgo+ID4KPiA+IEkgdGhpbmsgdGhhdCBtb3N0IEhQRCBldmVudHMgYXJlIG5vdCBpbnRlcm5hbCwg YW5kIHRoYXQgdGhlIGFib3ZlIGNhc2UKPiA+IGlzIG1vcmUgYW4gZXhjZXB0aW9uIHRoYW4gYSBy dWxlIDotKSBJdCBzaG91bGQgaG93ZXZlciBiZSBzdXBwb3J0ZWQsIGFuZAo+ID4gSSBhZ3JlZSB0 aGF0IEhQRCBzaG91bGQgYmUgbm90aWZpZWQgdG8gdGhlIERSTSBjb3JlIG9ubHkgd2hlbiBpdCBo YXMKPiA+IHRyYXZlcnNlZCB0aGUgd2hvbGUgcGlwZWxpbmUsIHllcy4KPiA+Cj4gPiBJJ2QgbGlr ZSB0byBrZWVwIGJyaWRnZSBkcml2ZXJzIHNpbXBsZSB0aG91Z2gsIGFuZCBhdm9pZCByZXF1aXJp bmcKPiA+IG1hbnVhbCBIUEQgcHJvcGFnYXRpb24gYXMgSSB0aGluayB0aGF0J3MgdGhlIGNvbW1v biBjYXNlLiBUaGF0J3Mgd2h5IEkKPiA+IHByb3Bvc2VkIGJsb2NraW5nIHRoZSBwcm9wYWdhdGlv biBiZWxvdy4gV2hhdCBkbyB5b3UgdGhpbmsgPwo+ID4KPiA+IFRoaXMgYWxzbyBtZWFucyB0aGF0 LCBpZiB3ZSBzd2l0Y2ggdG8gYSBtb2RlbCB3aGVyZSBwcm9wYWdhdGlvbiBjYW4gYmUKPiA+IGRp c2FibGVkLCBhIGJyaWRnZSB3aWxsIG9ubHkgbm90aWZ5IHVwc3RyZWFtIChjbG9zZXIgdG8gdGhl IENSVEMpCj4gPiBicmlkZ2VzLiBJZiwgaW4gYSBBLUItQyBjaGFpbiwgYnJpZGdlIEIgcmVjZWl2 ZXMgdGhlIGV4dGVybmFsIEhQRCBldmVudCwKPiA+IHRoZW4gYnJpZGdlIEMgd291bGQgbmV2ZXIg YmUgbm90aWZpZWQuIERvIHlvdSB0aGluayB0aGF0IGNvdWxkIGJlIGFuCj4gPiBpc3N1ZSA/Cj4g Cj4gQXMgSSBzYWlkIHNvbWV3aGVyZSBlYXJsaWVyIGl0IHNob3VsZCB3b3JrLgoKSSdsbCBnaXZl IGl0IGEgdHJ5IHRoZW4uCgo+IEJ0dywgc2luY2UgYnJpZGdlcyBhcmUgY3VycmVudGx5IGNvbm5l Y3RlZCB2aWEgc2luZ2xlLWxpbmtlZCBsaXN0IChqdXN0Cj4gZHJtX2JyaWRnZS0+bmV4dCksIGRv IHlvdSBwbGFuIHRvIHN3aXRjaCB0byBkb3VibGUgbGlua2VkIGxpc3QsIHRvIGZpbmQKPiB1cHN0 cmVhbSBicmlkZ2UsIG9yIGFkZCBsb2dpYyB0byBkaXNjb3ZlciB1cHN0cmVhbSBicmlkZ2Ugb24g dGhlIGZseT8KCkJvcmlzIGhhcyBzdWJtaXR0ZWQgYSBwYXRjaCBzZXJpZXMgKFsxXSkgdG8gc3dp dGNoIHRvIGEgZG91YmxlLWxpbmtlZApsaXN0LCBpdCB3aWxsIGJlIHVzZWZ1bCBoZXJlLgoKPiA+ Pj4gSSB0aGluayBpdCdzIHBvc3NpYmxlIHRvIGhhbmRsZSBib3RoIHRoZSBNSEwgbm90aWZpY2F0 aW9uIGFuZCB0aGUKPiA+Pj4gdXNlci12aXNpYmxlIEhQRCBub3RpZmljYXRpb24gdGhyb3VnaCB0 aGUgc2FtZSBicmlkZ2UgQVBJLCBwcm92aWRlZCB0aGF0Cj4gPj4+IHdlIG9mZmVyIGEgd2F5IGZv ciBhIGJyaWRnZSB0byBibG9jayBmb3J3YXJkaW5nIG9mIHRoZSBIUEQgbm90aWZpY2F0aW9uLgo+ ID4+PiBUaGlzIHdpbGwgYWxzbyByZXF1aXJlIGNhbGxpbmcgdGhlIEhQRCBub3RpZmllcnMgb24g YnJpZGdlcyBpbiB0aGUgc2luawo+ID4+PiB0byBzb3VyY2Ugb3JkZXIuIEJvdGggYXJlIGRvYWJs ZSwgdGhlIGJyaWRnZSBIUEQgbm90aWZpZXIgb3BlcmF0aW9uCj4gPj4+IGNvdWxkIHJldHVybiBh IGJvb2wgdGhhdCBibG9ja3MgcHJvcGFnYXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbi4gV291bGQK PiA+Pj4gdGhhdCB3b3JrIGZvciB5b3UgPwo+ID4+Cj4gPj4gSXQgY291bGQgd29yaywgaW4gdGhp cyBjYXNlLgo+ID4+Cj4gPj4gQnV0IGl0IHdpbGwgc3RpbGwgaGF2ZSBwcm9ibGVtcyB3aXRoIG5v bi1saW5lYXIgcGlwZWxpbmVzIC0gd2hlcmUgc3RyZWFtCj4gPj4gaXMgc3BsaXQgdG8gdHdvIG9y IG1vcmUgYnJpZGdlcy9wYW5lbHMuCj4gPgo+ID4gSSBhZ3JlZSwgYnV0IHRoYXQncyBub3Qgc3Vw cG9ydGVkIGJ5IHRoZSBicmlkZ2UgQVBJIGZvciBub3cuIEknbSBub3QKPiA+IHN1cmUgSSdtIGxv b2tpbmcgZm9yd2FyZCB0byBkZWFsaW5nIHdpdGggdGhpcywgYnV0IEkgdGhpbmsgaXQgd2lsbCBi ZQo+ID4gbmVlZGVkIDotKQo+IAo+IEN1cnJlbnRseSB0aGVyZSBhcmUgdHdvIG1vZGVzIG9mIHVz YWdlIG9mIGJyaWRnZToKPiAKPiAtIHBhcnQgb2YgYnJpZGdlIGNoYWluLAo+IAo+IC0gcHJpdmF0 ZSBicmlkZ2UgLSBpdCBjYW4gYmUgYXR0YWNoZWQgdG8gb3RoZXIgY29tcG9uZW50cyB2aWEgcHJp dmF0ZQo+IHBvaW50ZXIsIG5vdCBkcm1fZW5jb2Rlci0+YnJpZGdlLCBub3IgZHJtX2JyaWRnZS0+ bmV4dC4KPiAKPiBOb24tbGluZWFyIHBpcGVsaW5lcyBjYW4gYmUgKCBhbmQgSSBndWVzcyB0aGV5 IGFyZSApIGltcGxlbWVudGVkIHVzaW5nCj4gdGhlIGxhdHRlci4KPgo+IEFueXdheSBpZiB3ZSB3 YW50IHRvIGV4dGVuZCBicmlkZ2UgQVBJIGl0IHdvdWxkIGJlIGdvb2QgdG8gYWxsb3cgdXNhZ2UK PiBvZiB0aGlzIEFQSSBhbHNvIHdpdGggZGV0YWNoZWQgYnJpZGdlcy4KCkRvIHlvdSBoYXZlIGFu eSBwb2ludGVyIHRvIHN1Y2ggY2FzZXMgPyBCb3Jpcycgc2VyaWVzIGRlYWxzIHdpdGggRXh5bm9z CmFuZCBWQzQgdGhhdCBib3RoIHVzZSBicmlkZ2VzIHByaXZhdGVseSwgYnV0IGFzIGZhciBhcyBJ IHVuZGVyc3RhbmQgdGhleQpzdGlsbCBoYXZlIGxpbmVhciBwaXBlbGluZXMuCgpbMV0gaHR0cHM6 Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9jb3Zlci8xMTIwNzA4NS8KCj4gPj4+Pj4+Pj4+Pj4+Pj4g WW91IHNlZW0gdG8gaGF2ZSBzb21lIG90aGVyIGlkZWEgaGVyZS4KPiA+Pj4+Pj4+Pj4+Pj4+Pgo+ ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJbXV0ZXhfdW5sb2NrKCZicmlkZ2UtPmhwZF9tdXRleCk7 Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gK30KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArRVhQT1JU X1NZTUJPTF9HUEwoZHJtX2JyaWRnZV9ocGRfbm90aWZ5KTsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ PiArCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gICNpZmRlZiBDT05GSUdfT0YKPiA+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4+PiAgLyoqCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gICAqIG9mX2RybV9maW5kX2Jy aWRnZSAtIGZpbmQgdGhlIGJyaWRnZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBkZXZpY2Ugbm9kZSBp bgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fYnJp ZGdlLmggYi9pbmNsdWRlL2RybS9kcm1fYnJpZGdlLmgKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBp bmRleCAwOGRjMTVmOTNkZWQuLmI5NDQ1YWE1YjFlZiAxMDA2NDQKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4+PiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fYnJpZGdlLmgKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ PiArKysgYi9pbmNsdWRlL2RybS9kcm1fYnJpZGdlLmgKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBA QCAtMjMsOCArMjMsOSBAQAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICAjaWZuZGVmIF9fRFJNX0JS SURHRV9IX18KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAgI2RlZmluZSBfX0RSTV9CUklER0VfSF9f Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gIAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+IC0jaW5jbHVk ZSA8bGludXgvbGlzdC5oPgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICAjaW5jbHVkZSA8bGludXgv Y3R5cGUuaD4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4K PiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+Cj4gPj4+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4gICNpbmNsdWRlIDxkcm0vZHJtX21vZGVfb2JqZWN0Lmg+Cj4gPj4+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4gICNpbmNsdWRlIDxkcm0vZHJtX21vZGVzLmg+Cj4gPj4+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4gIAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+IEBAIC0zMzQsNiArMzM1LDExMCBAQCBz dHJ1Y3QgZHJtX2JyaWRnZV9mdW5jcyB7Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gIAkgKi8KPiA+ Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAgCXZvaWQgKCphdG9taWNfcG9zdF9kaXNhYmxlKShzdHJ1Y3Qg ZHJtX2JyaWRnZSAqYnJpZGdlLAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICAJCQkJICAgIHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwo+ID4+ Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJLyoqCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBAZGV0 ZWN0Ogo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICoKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAr CSAqIENoZWNrIGlmIGFueXRoaW5nIGlzIGF0dGFjaGVkIHRvIHRoZSBicmlkZ2Ugb3V0cHV0Lgo+ ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICoKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIFRo aXMgY2FsbGJhY2sgaXMgb3B0aW9uYWwsIGlmIG5vdCBpbXBsZW1lbnRlZCB0aGUgYnJpZGdlIHdp bGwgYmUKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIGNvbnNpZGVyZWQgYXMgYWx3YXlzIGhh dmluZyBhIGNvbXBvbmVudCBhdHRhY2hlZCB0byBpdHMgb3V0cHV0Lgo+ID4+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4+ICsJICogQnJpZGdlcyB0aGF0IGltcGxlbWVudCB0aGlzIGNhbGxiYWNrIHNoYWxsIHNl dCB0aGUKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIERSTV9CUklER0VfT1BfREVURUNUIGZs YWcgaW4gdGhlaXIgJmRybV9icmlkZ2UtPm9wcy4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAq Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBSRVRVUk5TOgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4+ICsJICoKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIGRybV9jb25uZWN0b3Jfc3RhdHVz IGluZGljYXRpbmcgdGhlIGJyaWRnZSBvdXRwdXQgc3RhdHVzLgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4+ICsJICovCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwllbnVtIGRybV9jb25uZWN0b3Jfc3Rh dHVzICgqZGV0ZWN0KShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKPiA+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkvKioKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4+PiArCSAqIEBnZXRfbW9kZXM6Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKgo+ID4+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogRmlsbCBhbGwgbW9kZXMgY3VycmVudGx5IHZhbGlkIGZvciB0 aGUgc2luayBpbnRvIHRoZSAmZHJtX2Nvbm5lY3Rvcgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJ ICogd2l0aCBkcm1fbW9kZV9wcm9iZWRfYWRkKCkuCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkg Kgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogVGhlIEBnZXRfbW9kZXMgY2FsbGJhY2sgaXMg bW9zdGx5IGludGVuZGVkIHRvIHN1cHBvcnQgbm9uLXByb2JhYmxlCj4gPj4+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4gKwkgKiBkaXNwbGF5cyBzdWNoIGFzIG1hbnkgZml4ZWQgcGFuZWxzLiBCcmlkZ2VzIHRo YXQgc3VwcG9ydCByZWFkaW5nCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBFRElEIHNoYWxs IGxlYXZlIEBnZXRfbW9kZXMgdW5pbXBsZW1lbnRlZCBhbmQgaW1wbGVtZW50IHRoZQo+ID4+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogJmRybV9icmlkZ2VfZnVuY3MtPmdldF9lZGlkIGNhbGxiYWNr IGluc3RlYWQuCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4+ICsJICogVGhpcyBjYWxsYmFjayBpcyBvcHRpb25hbC4gQnJpZGdlcyB0aGF0IGltcGxlbWVu dCBpdCBzaGFsbCBzZXQgdGhlCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBEUk1fQlJJREdF X09QX01PREVTIGZsYWcgaW4gdGhlaXIgJmRybV9icmlkZ2UtPm9wcy4KPiA+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4+PiArCSAqCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBSRVRVUk5TOgo+ID4+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICoKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIFRoZSBudW1i ZXIgb2YgbW9kZXMgYWRkZWQgYnkgY2FsbGluZyBkcm1fbW9kZV9wcm9iZWRfYWRkKCkuCj4gPj4+ Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKi8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCWludCAoKmdl dF9tb2Rlcykoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ PiArCQkJIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwo+ID4+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4+ICsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCS8qKgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4+ICsJICogQGdldF9lZGlkOgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICoKPiA+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4+PiArCSAqIFJlYWQgYW5kIHBhcnNlIHRoZSBFRElEIGRhdGEgb2YgdGhlIGNv bm5lY3RlZCBkaXNwbGF5Lgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICoKPiA+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4+PiArCSAqIFRoZSBAZ2V0X2VkaWQgY2FsbGJhY2sgaXMgdGhlIHByZWZlcnJlZCB3 YXkgb2YgcmVwb3J0aW5nIG1vZGUKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIGluZm9ybWF0 aW9uIGZvciBhIGRpc3BsYXkgY29ubmVjdGVkIHRvIHRoZSBicmlkZ2Ugb3V0cHV0LiBCcmlkZ2Vz Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiB0aGF0IHN1cHBvcnQgcmVhZGluZCBFRElEIHNo YWxsIGltcGxlbWVudCB0aGlzIGNhbGxiYWNrIGFuZCBsZWF2ZQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4+ICsJICogdGhlIEBnZXRfbW9kZXMgY2FsbGJhY2sgdW5pbXBsZW1lbnRlZC4KPiA+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4+PiArCSAqCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBUaGUgY2FsbGVy IG9mIHRoaXMgb3BlcmF0aW9uIHNoYWxsIGZpcnN0IHZlcmlmeSB0aGUgb3V0cHV0Cj4gPj4+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBjb25uZWN0aW9uIHN0YXR1cyBhbmQgcmVmcmFpbiBmcm9tIHJl YWRpbmcgRURJRCBmcm9tIGEgZGlzY29ubmVjdGVkCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkg KiBvdXRwdXQuCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4+ICsJICogVGhpcyBjYWxsYmFjayBpcyBvcHRpb25hbC4gQnJpZGdlcyB0aGF0IGltcGxlbWVu dCBpdCBzaGFsbCBzZXQgdGhlCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBEUk1fQlJJREdF X09QX0VESUQgZmxhZyBpbiB0aGVpciAmZHJtX2JyaWRnZS0+b3BzLgo+ID4+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4+ICsJICoKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIFJFVFVSTlM6Cj4gPj4+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogQW4gZWRpZCBz dHJ1Y3R1cmUgbmV3bHkgYWxsb2NhdGVkIHdpdGgga21hbGxvYygpIChvciBzaW1pbGFyKSBvbgo+ ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogc3VjY2Vzcywgb3IgTlVMTCBvdGhlcndpc2UuIFRo ZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGZyZWVpbmcKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ PiArCSAqIHRoZSByZXR1cm5lZCBlZGlkIHN0cnVjdHVyZSB3aXRoIGtmcmVlKCkuCj4gPj4+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKi8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCXN0cnVjdCBlZGlk ICooKmdldF9lZGlkKShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ID4+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4+ICsJCQkJIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwo+ID4+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+IEl0IG92ZXJsYXBzIHdpdGggZ2V0X21v ZGVzLCBJIGd1ZXNzIHByZXNlbmNlIG9mIG9uZSBvcHMgc2hvdWxkIGRpc2FsbG93Cj4gPj4+Pj4+ Pj4+Pj4+Pj4+Pj4+PiBwcmVzZW5jZSBvZiBhbm90aGVyIG9uZT8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBJIGFtIG5vdCByZWFsbHkgY29udmluY2VkIHdlIG5l ZWQgdGhpcyBvcCBhdCBhbGwsIGNhbm5vdCB3ZSBqdXN0IGFzc2lnbgo+ID4+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4gc29tZSBoZWxwZXIgZnVuY3Rpb24gdG8gLmdldF9tb2RlcyBjYiwgd2hpY2ggd2lsbCBk byB0aGUgc2FtZT8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gUGxh biBCKTogZGl0Y2ggLT5nZXRfZWRpZCwgcmVxdWlyZSB0aGF0IHRoZSBkcml2ZXIgaGFzIC0+Z2V0 X21vZGVzIGluIHRoYXQKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gY2FzZSwgYW5kIHJlcXVpcmUgdGhh dCBpZiBpdCBoYXMgYW4gZWRpZCBpdCBtdXN0IGZpbGwgb3V0IGNvbm5lY3Rvci0+aW5mbwo+ID4+ Pj4+Pj4+Pj4+Pj4+Pj4+PiBhbmQgY29ubmVjdG9yLT5lZGlkIGNvcnJlY3RseS4KPiA+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gQnR3IGlmIGEgaHBkIGhhcHBlbnMsIHdo bydzIHJlc3BvbmlibGUgZm9yIG1ha2luZyBzdXJlIHRoZSBlZGlkL21vZGUgbGlzdAo+ID4+Pj4+ Pj4+Pj4+Pj4+Pj4+PiBpbiB0aGUgY29ubmVjdG9yIGlzIHVwLXRvLWRhdGU/IFdpdGggeW91ciBj dXJyZW50IGNhbGxiYWNrIGRlc2lnbiB0aGF0J3MKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gdXAgdG8g dGhlIGNhbGxiYWNrLCB3aGljaCBkb2Vzbid0IGZlZWwgZ3JlYXQuIE1heWJlICBkcm1fYnJpZGdl X2hwZF9ub3RpZnkKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gc2hvdWxkIGd1YXJhbnRlZSB0aGF0IGl0 J2xsIGZpcnN0IHdhbGsgdGhlIGNvbm5lY3RvcnMgdG8gdXBkYXRlIHN0YXR1cyBhbmQKPiA+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4gZWRpZC9tb2RlIGxpc3QgZm9yIHRoZSBmaW5hbCBkcm1fY29ubmVjdG9y LiBBbmQgdGhlbiBpbnN0ZWFkIG9mIGp1c3QKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gcGFzc2luZyB0 aGUgc2ltcGxlICJzdGF0dXMiLCBpdCdsbCBwYXNzIHRoZSBjb25uZWN0b3IsIHdpdGggZXZlcnl0 aGluZwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBjb3JyZWN0bHkgdXBkYXRlZC4KPiA+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gT3RoZXJ3aXNlIGV2ZXJ5b25lIGludGVyZXN0 ZWQgaW4gdGhhdCBocGQgc2lnbmFsIHdpbGwgZ28gYW5kIHJlLWZldGNoIHRoZQo+ID4+Pj4+Pj4+ Pj4+Pj4+Pj4+PiBlZGlkLCB3aGljaCBpcyBub3Qgc28gYXdlc29tZSA6LSkKPiA+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4g KwkvKioKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIEBsb3N0X2hvdHBsdWc6Cj4gPj4+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogTm90aWZ5IHRo ZSBicmlkZ2Ugb2YgZGlzcGxheSBkaXNjb25uZWN0aW9uLgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ ICsJICoKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIFRoaXMgY2FsbGJhY2sgaXMgb3B0aW9u YWwsIGl0IG1heSBiZSBpbXBsZW1lbnRlZCBieSBicmlkZ2VzIHRoYXQKPiA+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4+PiArCSAqIG5lZWQgdG8gYmUgbm90aWZpZWQgb2YgZGlzcGxheSBkaXNjb25uZWN0aW9u IGZvciBpbnRlcm5hbCByZWFzb25zLgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogT25lIHVz ZSBjYXNlIGlzIHRvIHJlc2V0IHRoZSBpbnRlcm5hbCBzdGF0ZSBvZiBDRUMgY29udHJvbGxlcnMg Zm9yCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBIRE1JIGJyaWRnZXMuCj4gPj4+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4gKwkgKi8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCXZvaWQgKCpsb3N0X2hv dHBsdWcpKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ ICsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCS8qKgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJ ICogQGhwZF9lbmFibGU6Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKgo+ID4+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4+ICsJICogRW5hYmxlIGhvdCBwbHVnIGRldGVjdGlvbi4gRnJvbSBub3cgb24gdGhl IGJyaWRnZSBzaGFsbCBjYWxsCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBkcm1fYnJpZGdl X2hwZF9ub3RpZnkoKSBlYWNoIHRpbWUgYSBjaGFuZ2UgaXMgZGV0ZWN0ZWQgaW4gdGhlIG91dHB1 dAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogY29ubmVjdGlvbiBzdGF0dXMsIHVudGlsIGhv dCBwbHVnIGRldGVjdGlvbiBnZXRzIGRpc2FibGVkIHdpdGgKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ PiArCSAqIEBocGRfZGlzYWJsZS4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqCj4gPj4+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBUaGlzIGNhbGxiYWNrIGlzIG9wdGlvbmFsIGFuZCBzaGFsbCBv bmx5IGJlIGltcGxlbWVudGVkIGJ5IGJyaWRnZXMKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAq IHRoYXQgc3VwcG9ydCBob3QtcGx1ZyBub3RpZmljYXRpb24gd2l0aG91dCBwb2xsaW5nLiBCcmlk Z2VzIHRoYXQKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIGltcGxlbWVudCBpdCBzaGFsbCBh bHNvIGltcGxlbWVudCB0aGUgQGhwZF9kaXNhYmxlIGNhbGxiYWNrIGFuZCBzZXQKPiA+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4+PiArCSAqIHRoZSBEUk1fQlJJREdFX09QX0hQRCBmbGFnIGluIHRoZWlyICZk cm1fYnJpZGdlLT5vcHMuCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKi8KPiA+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4+PiArCXZvaWQgKCpocGRfZW5hYmxlKShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdl KTsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkvKioK PiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIEBocGRfZGlzYWJsZToKPiA+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4+PiArCSAqCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBEaXNhYmxlIGhvdCBwbHVn IGRldGVjdGlvbi4gT25jZSB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGJyaWRnZQo+ID4+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogc2hhbGwgbm90IGNhbGwgZHJtX2JyaWRnZV9ocGRfbm90aWZ5 KCkgd2hlbiBhIGNoYW5nZSBpbiB0aGUgb3V0cHV0Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkg KiBjb25uZWN0aW9uIHN0YXR1cyBvY2N1cnMuCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKgo+ ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogVGhpcyBjYWxsYmFjayBpcyBvcHRpb25hbCBhbmQg c2hhbGwgb25seSBiZSBpbXBsZW1lbnRlZCBieSBicmlkZ2VzCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4gKwkgKiB0aGF0IHN1cHBvcnQgaG90LXBsdWcgbm90aWZpY2F0aW9uIHdpdGhvdXQgcG9sbGlu Zy4gQnJpZGdlcyB0aGF0Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBpbXBsZW1lbnQgaXQg c2hhbGwgYWxzbyBpbXBsZW1lbnQgdGhlIEBocGRfZW5hYmxlIGNhbGxiYWNrIGFuZCBzZXQKPiA+ Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIHRoZSBEUk1fQlJJREdFX09QX0hQRCBmbGFnIGluIHRo ZWlyICZkcm1fYnJpZGdlLT5vcHMuCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKi8KPiA+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4+PiArCXZvaWQgKCpocGRfZGlzYWJsZSkoc3RydWN0IGRybV9icmlkZ2Ug KmJyaWRnZSk7Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gIH07Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4gIAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICAvKioKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBA QCAtMzcyLDYgKzQ3NywzOCBAQCBzdHJ1Y3QgZHJtX2JyaWRnZV90aW1pbmdzIHsKPiA+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4+PiAgCWJvb2wgZHVhbF9saW5rOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICB9 Owo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICAKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArLyoqCj4g Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyAqIGVudW0gZHJtX2JyaWRnZV9vcHMgLSBCaXRtYXNrIG9m IG9wZXJhdGlvbnMgc3VwcG9ydGVkIGJ5IHRoZSBicmlkZ2UKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ PiArICovCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gK2VudW0gZHJtX2JyaWRnZV9vcHMgewo+ID4+ Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJLyoqCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBARFJN X0JSSURHRV9PUF9ERVRFQ1Q6IFRoZSBicmlkZ2UgY2FuIGRldGVjdCBkaXNwbGF5cyBjb25uZWN0 ZWQgdG8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIGl0cyBvdXRwdXQuIEJyaWRnZXMgdGhh dCBzZXQgdGhpcyBmbGFnIHNoYWxsIGltcGxlbWVudCB0aGUKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ PiArCSAqICZkcm1fYnJpZGdlX2Z1bmNzLT5kZXRlY3QgY2FsbGJhY2suCj4gPj4+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4gKwkgKi8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCURSTV9CUklER0VfT1BfREVU RUNUID0gQklUKDApLAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJLyoqCj4gPj4+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4gKwkgKiBARFJNX0JSSURHRV9PUF9FRElEOiBUaGUgYnJpZGdlIGNhbiByZXRyaWV2 ZSB0aGUgRURJRCBvZiB0aGUgZGlzcGxheQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogY29u bmVjdGVkIHRvIGl0cyBvdXRwdXQuIEJyaWRnZXMgdGhhdCBzZXQgdGhpcyBmbGFnIHNoYWxsIGlt cGxlbWVudAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogdGhlICZkcm1fYnJpZGdlX2Z1bmNz LT5nZXRfZWRpZCBjYWxsYmFjay4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqLwo+ID4+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4+ICsJRFJNX0JSSURHRV9PUF9FRElEID0gQklUKDEpLAo+ID4+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4+ICsJLyoqCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBARFJNX0JSSURH RV9PUF9IUEQ6IFRoZSBicmlkZ2UgY2FuIGRldGVjdCBob3QtcGx1ZyBhbmQgaG90LXVucGx1Zwo+ ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogd2l0aG91dCByZXF1aXJpbmcgcG9sbGluZy4gQnJp ZGdlcyB0aGF0IHNldCB0aGlzIGZsYWcgc2hhbGwKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAq IGltcGxlbWVudCB0aGUgJmRybV9icmlkZ2VfZnVuY3MtPmhwZF9lbmFibGUgYW5kCj4gPj4+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiAmZHJtX2JyaWRnZV9mdW5jcy0+ZGlzYWJsZV9ocGRfY2IgY2Fs bGJhY2tzLgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICovCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4gKwlEUk1fQlJJREdFX09QX0hQRCA9IEJJVCgyKSwKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAr CS8qKgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogQERSTV9CUklER0VfT1BfTU9ERVM6IFRo ZSBicmlkZ2UgY2FuIHJldHJpZXZpbmcgdGhlIG1vZGVzIHN1cHBvcnRlZAo+ID4+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4+ICsJICogYnkgdGhlIGRpc3BsYXkgYXQgaXRzIG91dHB1dC4gVGhpcyBkb2VzIG5v dCBpbmNsdWRlIHJlYWRpbmQgRURJRAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogd2hpY2gg aXMgc2VwYXJhdGVseSBjb3ZlcmVkIGJ5IEBEUk1fQlJJREdFX09QX0VESUQuIEJyaWRnZXMgdGhh dCBzZXQKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIHRoaXMgZmxhZyBzaGFsbCBpbXBsZW1l bnQgdGhlICZkcm1fYnJpZGdlX2Z1bmNzLT5nZXRfbW9kZXMgY2FsbGJhY2suCj4gPj4+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4gKwkgKi8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCURSTV9CUklER0VfT1Bf TU9ERVMgPSBCSVQoMyksCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gK307Cj4gPj4+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4gKwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICAvKioKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4+PiAgICogc3RydWN0IGRybV9icmlkZ2UgLSBjZW50cmFsIERSTSBicmlkZ2UgY29udHJvbCBz dHJ1Y3R1cmUKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAgICovCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4gQEAgLTM5OCw2ICs1MzUsMjkgQEAgc3RydWN0IGRybV9icmlkZ2Ugewo+ID4+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4+ICAJY29uc3Qgc3RydWN0IGRybV9icmlkZ2VfZnVuY3MgKmZ1bmNzOwo+ID4+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4+ICAJLyoqIEBkcml2ZXJfcHJpdmF0ZTogcG9pbnRlciB0byB0aGUgYnJp ZGdlIGRyaXZlcidzIGludGVybmFsIGNvbnRleHQgKi8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAg CXZvaWQgKmRyaXZlcl9wcml2YXRlOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJLyoqIEBvcHM6 IGJpdG1hc2sgb2Ygb3BlcmF0aW9ucyBzdXBwb3J0ZWQgYnkgdGhlIGJyaWRnZSAqLwo+ID4+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4+ICsJZW51bSBkcm1fYnJpZGdlX29wcyBvcHM7Cj4gPj4+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4gKwkvKioKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIEB0eXBlOiBUeXBlIG9m IHRoZSBjb25uZWN0aW9uIGF0IHRoZSBicmlkZ2Ugb3V0cHV0Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4gKwkgKiAoRFJNX01PREVfQ09OTkVDVE9SXyopLiBGb3IgYnJpZGdlcyBhdCB0aGUgZW5kIG9m IHRoaXMgY2hhaW4gdGhpcwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogaWRlbnRpZmllcyB0 aGUgdHlwZSBvZiBjb25uZWN0ZWQgZGlzcGxheS4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAq Lwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJaW50IHR5cGU7Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4gKwkvKiogcHJpdmF0ZTogKi8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCS8qKgo+ID4+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogQGhwZF9tdXRleDogUHJvdGVjdHMgdGhlIEBocGRfY2IgYW5k IEBocGRfZGF0YSBmaWVsZHMuCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKi8KPiA+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4+PiArCXN0cnVjdCBtdXRleCBocGRfbXV0ZXg7Cj4gPj4+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4gKwkvKioKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIEBocGRfY2I6IEhvdCBwbHVn IGRldGVjdGlvbiBjYWxsYmFjaywgcmVnaXN0ZXJlZCB3aXRoCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4gKwkgKiBkcm1fYnJpZGdlX2hwZF9lbmFibGUoKS4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAr CSAqLwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJdm9pZCAoKmhwZF9jYikodm9pZCAqZGF0YSwg ZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBzdGF0dXMpOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ ICsJLyoqCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBAaHBkX2RhdGE6IFByaXZhdGUgZGF0 YSBwYXNzZWQgdG8gdGhlIEhvdCBwbHVnIGRldGVjdGlvbiBjYWxsYmFjawo+ID4+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4+ICsJICogQGhwZF9jYi4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqLwo+ID4+ Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJdm9pZCAqaHBkX2RhdGE7Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4gIH07Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gIAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICB2 b2lkIGRybV9icmlkZ2VfYWRkKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpOwo+ID4+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4+IEBAIC00MjgsNiArNTg4LDE0IEBAIHZvaWQgZHJtX2F0b21pY19icmlkZ2Vf cHJlX2VuYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4+ICB2b2lkIGRybV9hdG9taWNfYnJpZGdlX2VuYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJp ZGdlLAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICAJCQkgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUpOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICAKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4+PiArdm9pZCBkcm1fYnJpZGdlX2hwZF9lbmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRn ZSwKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCQkJICAgdm9pZCAoKmNiKSh2b2lkICpkYXRhLAo+ ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJCQkJICAgICAgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1 cyBzdGF0dXMpLAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJCQkgICB2b2lkICpkYXRhKTsKPiA+ Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArdm9pZCBkcm1fYnJpZGdlX2hwZF9kaXNhYmxlKHN0cnVjdCBk cm1fYnJpZGdlICpicmlkZ2UpOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICt2b2lkIGRybV9icmlk Z2VfaHBkX25vdGlmeShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ID4+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4+ICsJCQkgICBlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzIHN0YXR1cyk7Cj4gPj4+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4gKwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICAjaWZkZWYgQ09ORklHX0RS TV9QQU5FTF9CUklER0UKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAgc3RydWN0IGRybV9icmlkZ2Ug KmRybV9wYW5lbF9icmlkZ2VfYWRkKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAo+ID4+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4+ICAJCQkJCXUzMiBjb25uZWN0b3JfdHlwZSk7CgotLSAKUmVnYXJkcywKCkxh dXJlbnQgUGluY2hhcnQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVs