From dev-return-35977-apmail-harmony-dev-archive=harmony.apache.org@harmony.apache.org Wed Jan 14 09:48:41 2009 Return-Path: Delivered-To: apmail-harmony-dev-archive@www.apache.org Received: (qmail 78019 invoked from network); 14 Jan 2009 09:48:40 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 14 Jan 2009 09:48:40 -0000 Received: (qmail 1929 invoked by uid 500); 14 Jan 2009 09:48:39 -0000 Delivered-To: apmail-harmony-dev-archive@harmony.apache.org Received: (qmail 1537 invoked by uid 500); 14 Jan 2009 09:48:38 -0000 Mailing-List: contact dev-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list dev@harmony.apache.org Received: (qmail 1526 invoked by uid 99); 14 Jan 2009 09:48:38 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Jan 2009 01:48:38 -0800 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of alexei.fedotov@gmail.com designates 209.85.200.175 as permitted sender) Received: from [209.85.200.175] (HELO wf-out-1314.google.com) (209.85.200.175) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Jan 2009 09:48:32 +0000 Received: by wf-out-1314.google.com with SMTP id 28so458225wfc.24 for ; Wed, 14 Jan 2009 01:48:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=kkF5sjdUBrZ8zL8iCN4Ot9Iwd3TgBXLTQVXphlGwrVo=; b=p2ZZgakZmKmYxiH9GN1FlyA9GNpDN/OPxNdoCXUUmz/qxS2PYwLkAgpAeUPz0H3p0k 1k/Atz42AMtjiR0OQ/3VWPEDTXZstu2MTZKY7M6I6IdngcsbSLn4o3x5O1MKwuuU7UAR dVQXsVF8hhFTgwiPOXh4jGx/kghuOeX/Mvg/A= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=Yp3QthoGVaeSxmqRmtGOPoaXZY8oBYD1olAcALGFDqu8YDsE4/xFA5dRfo7Fd8yn8A /0n7HSfmW2tniim4qrgL7fJsguGYJc5vRUhUM1LV0M3DM+FoILPAtrwoTUY8NAO3HuXt 3MPE9qftveZBA+ZK51lPr4vRO2gzcYhTVkIk8= Received: by 10.142.14.20 with SMTP id 20mr13326276wfn.79.1231926491812; Wed, 14 Jan 2009 01:48:11 -0800 (PST) Received: by 10.142.142.6 with HTTP; Wed, 14 Jan 2009 01:48:11 -0800 (PST) Message-ID: Date: Wed, 14 Jan 2009 12:48:11 +0300 From: "Alexei Fedotov" To: dev@harmony.apache.org Subject: Re: [VM] On-demand class library parsing is ready to commit In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 Content-Disposition: inline References: <9623c9a50812260040k3a9bc5fetc2281f3ded5ce4b4@mail.gmail.com> <9623c9a50812260116i10eefbdfi32135ddb20a20511@mail.gmail.com> X-Virus-Checked: Checked by ClamAV on apache.org V2VubG9uZywKSXQgd291bGQgYmUgdmVyeSBuaWNlIG9mIHlvdSB0byBleHBsaWNpdGVseSBvdXRs aW5lIGluIHRoZSBsYXN0IEpJUkEKY29tbWVudCBhbmQvb3IgdGhlIGNvdmVyIGxldHRlciAgd2hp Y2ggcGF0Y2hlcyBhcmUgaW50ZW5kZWQgdG8KcmV2aWV3ZWQgKGFuZCBjb21taXR0ZWQpLiBUaGUg b25seSBwYXRjaCB3aGljaCBpcyBpbnRlbmRlZCBmb3IgY29tbWl0CmlzIEg2MDM5LnBhdGNoXzIs IGlzbid0IGl0PwoKWzFdIGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9hdHRh Y2htZW50LzEyMzk3ODczL0g2MDM5LnBhdGNoXzIKCk9uIFdlZCwgSmFuIDE0LCAyMDA5IGF0IDEy OjMzIFBNLCBXZW5sb25nIExpIDx3ZW5sb25nQGdtYWlsLmNvbT4gd3JvdGU6Cj4gQWxsLAo+Cj4g SSBzdWJtaXQgYSBuZXcgcGF0Y2ggZm9yIG9uLWRlbWFuZCBjbGFzcyBsb2FkaW5nIGFuZCBwYXJz aW5nLiBBbGwKPiBjb2RlcyBhcmUgcHV0IGluIFZNIHNpZGUsIGFuZCB0aGUgbWFwcGluZyBpbmZv IGlzIGF1dG9tYXRpY2FsbHkKPiBwcm9kdWNlZC4KPgo+IFBscyBzZWUgaHR0cHM6Ly9pc3N1ZXMu YXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9IQVJNT05ZLTYwMzkKPgo+IENvbW1lbnRzIGFyZSB3ZWxj b21lLgo+Cj4gVGh4LCBXZW5sb25nCj4gTWFuYWdlZCBSdW50aW1lIFRlY2hub2xvZ3kgQ2VudGVy LCBJbnRlbAo+Cj4gT24gV2VkLCBKYW4gNywgMjAwOSBhdCAxMjowOCBQTSwgV2VubG9uZyBMaSA8 d2VubG9uZ0BnbWFpbC5jb20+IHdyb3RlOgo+PiBBbGwsCj4+IEF0IHRoaXMgbW9tZW50LCBJIG1v dmUgYWxsIHVwZGF0ZXMgaW4gY2xhc3NsaWIgdG8gVk0gc2lkZSBzdWNoIHRoYXQKPj4gdGhlcmUg aXMgbm8gbW9kdWxhcml0eSBpc3N1ZS4gTmV4dCBzdGVwIGlzIHRvIHByb2R1Y2UgdGhlIG1hcHBp bmcKPj4gYmV0d2VlbiBtb2R1bGUgYW5kIGxpYnJhcnkgZWZmaWNpZW50bHkgYW5kIGFjY3VyYXRl bHkuCj4+Cj4+IENvbW1lbnRzIGFyZSB3ZWxjb21lLgo+Pgo+PiBUaHgsIFdlbmxvbmcKPj4gTWFu YWdlZCBSdW50aW1lIFRlY2hub2xvZ3kgQ2VudGVyLCBJbnRlbAo+Pgo+PiBPbiBUdWUsIEphbiA2 LCAyMDA5IGF0IDExOjA4IFBNLCBXZW5sb25nIExpIDx3ZW5sb25nQGdtYWlsLmNvbT4gd3JvdGU6 Cj4+PiBUaHggOikKPj4+Cj4+PiBPbiBUdWUsIEphbiA2LCAyMDA5IGF0IDEwOjM1IFBNLCBBbGV4 ZWkgRmVkb3Rvdgo+Pj4gPGFsZXhlaS5mZWRvdG92QGdtYWlsLmNvbT4gd3JvdGU6Cj4+Pj4gU3Vy ZS4KPj4+Pgo+Pj4+IDEuIElmIHlvdSBkaWcgaW50byBTZXRDbGFzc3BhdGhGcm9tU3RyaW5nLCB5 b3Ugd2lsbCBzZWUgdGhhdCBpdCBzdGFydHMgZnJvbQo+Pj4+IHNwbGl0dGluZyB0aGUgZ2l2ZW4g Y2xhc3NwYXRoIGludG8gcGllY2VzLiBZb3UgYWxyZWFkeSBrbm93IHRoZSBuZXcgcGllY2UKPj4+ PiB5b3UgYWRkIGFuZCBtYXkgc2tpcCBzcGxpdHRpbmcgc3RlcC4KPj4+Pgo+Pj4+IDIuIElmIEkg dW5kZXJzdGFuZCB5b3UgY29kZSBjb3JyZWN0bHksIHRoZSBjYXNlICJwZGVzdCA+Cj4+Pj4gKCpp dCkuc2Vjb25kLT5ieXRlcyIgbWlnaHQgYmUgYSBzdWJqZWN0IG9mIGEgbmVnYXRpdmUgYXNzZXJ0 aW9uLiBBZGRpbmcgdGhpcwo+Pj4+IGFzc3J0aW9uIHdvdWxkIHNwZWVkIHVwIGJ1ZyBkaXNjb3Zl cnkuCj4+Pj4KPj4+PiBUaGFua3MuCj4+Pj4KPj4+Pgo+Pj4+IE9uIFR1ZSwgSmFuIDYsIDIwMDkg YXQgNTowOSBBTSwgV2VubG9uZyBMaSA8d2VubG9uZ0BnbWFpbC5jb20+IHdyb3RlOgo+Pj4+Cj4+ Pj4+IFllcywgWGlhby1GZW5nJ3MgdW5kZXJzdGFuZGluZyBpcyBjb3JyZWN0LiBUaGUgcGF0Y2gg bG9hZHMgYW5kIHBhcnNlcwo+Pj4+PiBtb2R1bGVzIG9uIGRlbWFuZC4gSWYgbm8gY2xhc3MgaW4g c3dpbmcuamFyIGlzIG5vdCByZXF1ZXN0ZWQsIHRoZW4KPj4+Pj4gdGhpcyBtb2R1bGUgd2lsbCBu b3QgYmUgbG9hZGVkLgo+Pj4+Pgo+Pj4+PiBidHcsIEFsZXhlaSwgeW91IHNhaWQgIlNldENsYXNz cGF0aEZyb21TdHJpbmciIGFuZCAicGRlc3QgPgo+Pj4+PiAoKml0KS5zZWNvbmQtPmJ5dGVzIiBh cmUgbm90IGVmZmljaWVudC4gQ2FuIHlvdSBzaGFyZSBtb3JlIGNvbW1lbnRzIG9uCj4+Pj4+IHRo ZW0/IEkganVzdCByZXVzZWQgc29tZSBjb2RlIGluIEhhcm1vbnksIGFuZCBkaWRuJ3Qgb3B0aW1p emUgdGhlbQo+Pj4+PiBmdXJ0aGVyLgo+Pj4+Pgo+Pj4+PiBUaHgsIFdlbmxvbmcKPj4+Pj4gTWFu YWdlZCBSdW50aW1lIFRlY2hub2xvZ3kgQ2VudGVyLCBJbnRlbAo+Pj4+Pgo+Pj4+PiBPbiBGcmks IERlYyAyNiwgMjAwOCBhdCA1OjE2IFBNLCBYaWFvLUZlbmcgTGkgPHhpYW9mZW5nLmxpQGdtYWls LmNvbT4KPj4+Pj4gd3JvdGU6Cj4+Pj4+ID4gT24gRnJpLCBEZWMgMjYsIDIwMDggYXQgNTowOCBQ TSwgQWxleGVpIEZlZG90b3YKPj4+Pj4gPiA8YWxleGVpLmZlZG90b3ZAZ21haWwuY29tPiB3cm90 ZToKPj4+Pj4gPj4gWGlhbyBGZW5nLAo+Pj4+PiA+PiBUaGFuayB5b3UgZm9yIGV4cGxhaW5pbmcu Cj4+Pj4+ID4+Cj4+Pj4+ID4+IEkgZ2V0IG1vcmUgbWlub3IgY29tbWVudHMgb24gbW9yZSBjb21t ZW50ZWQgY29kZSwgaW5lZmZlY3RpdmUKPj4+Pj4gPj4gU2V0Q2xhc3NwYXRoRnJvbVN0cmluZyB1 c2FnZSwgbm9uLWNvdmVyZWQgdW5leHBlY3RlZCBjYXNlIHdoZW4gcGRlc3QgPgo+Pj4+PiA+PiAo Kml0KS5zZWNvbmQtPmJ5dGVzLiBPbmUgbWFqb3IgY29tbWVudCBvbiBjcm9zc2luZyB2bSBtb2R1 bGUgYm91bmRhcnkKPj4+Pj4gPj4gc3RpbGwgcmVtYWlucy4gQnV0IG5vdyBJJ20gaGFwcHkgd2l0 aCB0aGUgZGVzaWduLgo+Pj4+PiA+Cj4+Pj4+ID4gQWxleGVpLCB5ZXMsIEkgYWdyZWUgd2l0aCB5 b3VyIGNvbW1lbnRzLiBUaGVzZSBwYXJ0cyBzaG91bGQgYmUKPj4+Pj4gPiBpbXByb3ZlZC4gKFN0 aWxsLCB0aGlzIGlzIG15IHBlcnNvbmFsIG9waW5pb24uIDopICBMZXQncyB3YWl0IFdlbmxvbmcK Pj4+Pj4gPiBzcGVha2luZy4pCj4+Pj4+ID4KPj4+Pj4gPiBUaGFua3MsCj4+Pj4+ID4geGlhb2Zl bmcKPj4+Pj4gPgo+Pj4+PiA+PiBTb3JyeSBmb3IgYmVpbmcgc2xvdy4KPj4+Pj4gPj4KPj4+Pj4g Pj4KPj4+Pj4gPj4KPj4+Pj4gPj4gT24gRnJpLCBEZWMgMjYsIDIwMDggYXQgMTE6NDAgQU0sIFhp YW8tRmVuZyBMaSA8eGlhb2ZlbmcubGlAZ21haWwuY29tPgo+Pj4+PiB3cm90ZToKPj4+Pj4gPj4+ IE9uIEZyaSwgRGVjIDI2LCAyMDA4IGF0IDQ6MDMgUE0sIEFsZXhlaSBGZWRvdG92Cj4+Pj4+ID4+ PiA8YWxleGVpLmZlZG90b3ZAZ21haWwuY29tPiB3cm90ZToKPj4+Pj4gPj4+PiBYaWFvLUZlbmcs Cj4+Pj4+ID4+Pj4gQ29udGludWluZyB3aXRoIHRoZSBzZXJ2ZXIgZXhhbXBsZSBjb3VsZCB5b3Ug cGxlYXNlIGdpdmUgbWUgYSBoaW50Cj4+Pj4+IHdoZXJlCj4+Pj4+ID4+Pj4gZGVjaXNpb24gdG8g bG9hZCBzd2luZy5qYXIgb3Igbm90IGlzIHRha2VuIGluIHRoZSBwYXRjaD8gTXkgaW5pdGlhbAo+ Pj4+PiA+Pj4+IHBlcmNlcHRpb24gd2FzIHRoYXQgdGhlIGxpc3Qgb2Ygd2hhdCB0byBsb2FkIHdh cyBoYXJkY29kZWQgYW5kIHdhcyBub3QKPj4+Pj4gPj4+PiBjb25zdHJ1Y3RlZCBkeW5hbWljYWxs eSBkZXBlbmRpbmcgb24gYXBwbGljYXRpb24uCj4+Pj4+ID4+Pgo+Pj4+PiA+Pj4gQWxleGVpLCBo ZXJlIGlzIHRoZSBwYXRjaCBjb2RlIEkgZm91bmQ6Cj4+Pj4+ID4+Pgo+Pj4+PiA+Pj4gbGluZSAy NDU6Cj4+Pj4+ID4+PiArICAgICAgICAgICAgLy8gRmluZCB3aGljaCBqYXIgZXhwb3J0cyB0aGlz IHBhY2thZ2UKPj4+Pj4gPj4+ICsgICAgICAgICAgICBpZiAocGtnTmFtZSAhPSBOVUxMKSB7Cj4+ Pj4+ID4+PiArICAgICAgICAgICAgICAgIGNoYXIgKmJvb3RfY2xhc3NfcGF0aCA9Cj4+Pj4+ID4+ PiBlbnYtPkphdmFQcm9wZXJ0aWVzKCktPmdldChWTV9CT09UX0NMQVNTX0RJUik7Cj4+Pj4+ID4+ PiArICAgICAgICAgICAgICAgIGNoYXIgKnBlbmRpbmdDbGFzc1BhdGggPSBOVUxMOwo+Pj4+PiA+ Pj4gKyAgICAgICAgICAgICAgICBhcHJfcG9vbF90ICp0bXBfcG9vbDsKPj4+Pj4gPj4+ICsgICAg ICAgICAgICAgICAgYXByX3Bvb2xfY3JlYXRlKCZ0bXBfcG9vbCwgTlVMTCk7Cj4+Pj4+ID4+PiAr ICAgICAgICAgICAgICAgIHdoaWxlIChpdCAhPSBlbnYtPnBlbmRpbmdfamFyX3NldC5lbmQoKSkg ewo+Pj4+PiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgcGRlc3QgPSBzdHJzdHIoICgqaXQpLnNl Y29uZC0+Ynl0ZXMsIHBrZ05hbWUgKTsKPj4+Pj4gPj4+ICsgICAgICAgICAgICAgICAgICAgIGlm IChwZGVzdCAhPSBOVUxMKSB7Cj4+Pj4+ID4+PiArICAgICAgICAgICAgICAgICAgICAgICAgcGVu ZGluZ0NsYXNzUGF0aCA9Cj4+Pj4+ID4+PiAoY2hhciopU1REX01BTExPQyhzdHJsZW4oYm9vdF9j bGFzc19wYXRoKQo+Pj4+PiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKwo+Pj4+PiBzdHJsZW4oKCppdCkuZmlyc3QtPmJ5dGVzKSArIDEpOwo+Pj4+ PiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cmNweShwZW5kaW5nQ2xhc3NQYXRoLCBi b290X2NsYXNzX3BhdGgpOwo+Pj4+PiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cmNh dChwZW5kaW5nQ2xhc3NQYXRoLCAoKml0KS5maXJzdC0+Ynl0ZXMpOwo+Pj4+PiA+Pj4gKyAgICAg ICAgICAgICAgICAgICAgICAgIC8vIE9wZW4gdGhpcyBmb3VuZCBqYXIsIGFuZCByZWFkIGFsbCBj bGFzc2VzCj4+Pj4+ID4+PiBjb250YWluZWQgaW4gdGhpcyBqYXIKPj4+Pj4gPj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICBTZXRDbGFzc3BhdGhGcm9tU3RyaW5nKHBlbmRpbmdDbGFzc1BhdGgs Cj4+Pj4+IHRtcF9wb29sKTsKPj4+Pj4gPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAvLyBF cmFzZSB0aGUgZm91bmQgamFyIGZyb20gcGVuZGluZyBqYXIgbGlzdAo+Pj4+PiA+Pj4gYXMgaXQg aGFzIGJlZW4gcGFyc2VkCj4+Pj4+ID4+PiArICAgICAgICAgICAgICAgICAgICAgICAgZW52LT5w ZW5kaW5nX2phcl9zZXQuZXJhc2UoaXQrKyk7Cj4+Pj4+ID4+PiArICAgICAgICAgICAgICAgICAg ICAgICAgU1REX0ZSRUUocGVuZGluZ0NsYXNzUGF0aCk7Cj4+Pj4+ID4+PiArICAgICAgICAgICAg ICAgICAgICB9IGVsc2Ugewo+Pj4+PiA+Pj4KPj4+Pj4gPj4+IEl0IGNoZWNrcyBpZiBhIEpBUiBo YXMgdGhlIHJlcXVlc3RlZCBwYWNrYWdlLCB0aGVuIGxvYWRzIGl0IGlmIHllcy4gSQo+Pj4+PiA+ Pj4gYW0gbm90IHN1cmUgaWYgdGhpcyBpcyB3aGF0IHlvdSB3ZXJlIGFza2luZy4gKEJ0dywgdGhp cyBpcyBvbmx5IG15Cj4+Pj4+ID4+PiB1bmRlcnN0YW5kaW5nIG9mIGhpcyBwYXRjaC4gSSBhbSBu b3Qgc3BlYWtpbmcgZm9yIFdlbmxvbmcuKQo+Pj4+PiA+Pj4KPj4+Pj4gPj4+IFRoYW5rcywKPj4+ Pj4gPj4+IHhpYW9mZW5nCj4+Pj4+ID4+Pgo+Pj4+PiA+Pj4+IFRoYW5rcy4KPj4+Pj4gPj4+Pgo+ Pj4+PiA+Pj4+Cj4+Pj4+ID4+Pj4gT24gRnJpLCBEZWMgMjYsIDIwMDggYXQgNDoxNCBBTSwgWGlh by1GZW5nIExpIDx4aWFvZmVuZy5saUBnbWFpbC5jb20+Cj4+Pj4+IHdyb3RlOgo+Pj4+PiA+Pj4+ Cj4+Pj4+ID4+Pj4+IE9uIEZyaSwgRGVjIDI2LCAyMDA4IGF0IDEyOjQ5IEFNLCBBbGV4ZWkgRmVk b3Rvdgo+Pj4+PiA+Pj4+PiA8YWxleGVpLmZlZG90b3ZAZ21haWwuY29tPiB3cm90ZToKPj4+Pj4g Pj4+Pj4gPiBBbGVrc2V5LAo+Pj4+PiA+Pj4+PiA+IEkgbGlrZSB5b3VyIGNvbmNsdXNpb24uCj4+ Pj4+ID4+Pj4+ID4KPj4+Pj4gPj4+Pj4gPiBXZW5sb25nLAo+Pj4+PiA+Pj4+PiA+IEknbSB0cnlp bmcgdG8gdW5kZXJzdGFuZCB0aGUgcmVhbCBsaWZlIHZhbHVlIG9mIHRoZSAiYWJzdHJhY3QiCj4+ Pj4+IHN0YXJ0dXAKPj4+Pj4gPj4+Pj4gPiB0aW1lIG1ldHJpYyB5b3UndmUgc3VnZ2VzdGVkLiBE b2VzIEhhcm1vbnkgd2l0aCB5b3VyIHBhdGNoIGxvYWQKPj4+Pj4gPj4+Pj4gPiBzd2luZy5qYXIg Zm9yIGEgc2VydmVyIGFwcGxpY2F0aW9uPyBEbyBJIHVuZGVyc3RhbmQgdGhhdCBsb2FkaW5nCj4+ Pj4+ID4+Pj4+ID4gaGFwcGVucywgdGhvdWdoIGl0IGhhcHBlbnMgbGF0ZXIgY29tcGFyZWQgdG8g Vk0gd2l0aG91dCB5b3VyIHBhdGNoPwo+Pj4+PiBJCj4+Pj4+ID4+Pj4+ID4gYmVsaWV2ZSB0aGF0 IHRoZSBwcm9wZXIgZGVzaWduIG9mIGRlbGF5ZWQgbG9hZGluZyBzaG91bGQgYW5zd2VyCj4+Pj4+ ICJubyIKPj4+Pj4gPj4+Pj4gPiB0byB0aGlzIHF1ZXN0aW9uLgo+Pj4+PiA+Pj4+Pgo+Pj4+PiA+ Pj4+PiBJIGNoZWNrZWQgdGhlIHBhdGNoLCBhbmQgSSBmb3VuZCB0aGUgYW5zd2VyIGlzIGluZGVl ZCAiTm8iIGFzIHlvdQo+Pj4+PiBleHBlY3RlZC4KPj4+Pj4gPj4+Pj4KPj4+Pj4gPj4+Pj4gVGhh bmtzLAo+Pj4+PiA+Pj4+PiB4aWFvZmVuZwo+Pj4+PiA+Pj4+Pgo+Pj4+PiA+Pj4+PiA+IEluIG90 aGVyIHdvcmRzLCBJIGFwcHJlY2lhdGUgaWYgeW91IGRlc2NyaWJlIHdoaWNoIHJlYWwgdXNlIGNh c2VzCj4+Pj4+IGFyZQo+Pj4+PiA+Pj4+PiA+IGltcHJvdmVkIGJ5IHRoaXMgcGF0Y2guCj4+Pj4+ ID4+Pj4+ID4gVGhhbmtzIQo+Pj4+PiA+Pj4+Pgo+Pj4+PiA+Pj4+PiA+IE9uIFRodSwgRGVjIDI1 LCAyMDA4IGF0IDc6MjkgUE0sIEFsZWtzZXkgU2hpcGlsZXYKPj4+Pj4gPj4+Pj4gPiA8YWxla3Nl eS5zaGlwaWxldkBnbWFpbC5jb20+IHdyb3RlOgo+Pj4+PiA+Pj4+PiA+PiBPaywgaGVyZSdzIHRo ZSBjYXRjaC4KPj4+Pj4gPj4+Pj4gPj4KPj4+Pj4gPj4+Pj4gPj4gYm9vdGNsYXNzcGF0aC5wcm9w ZXJ0aWVzIGlzIHRoZSBTb3J0ZWRTZXQ8SkFSZmlsZT4sIHdoaWNoCj4+Pj4+IGVudW1lcmF0ZXMK Pj4+Pj4gPj4+Pj4gPj4gdGhlIEpBUnMgYXZhaWxhYmxlIGZvciBib290Y2xhc3Nsb2FkZXIuIFRo ZSBzZXQgb2Ygc3VjaCB0aGUgSkFScwo+Pj4+PiBpcwo+Pj4+PiA+Pj4+PiA+PiByZWFsbHkgc3Rh YmxlIGJlY2F1c2UgbW9kdWxhciBkZWNvbXBvc2l0aW9uIG9mIGNsYXNzbGliIGlzIHN0YWJsZS4K Pj4+Pj4gPj4+Pj4gPj4gVGhhdCdzIHdoeSBub2JvZHkgYm90aGVycyB3aXRoIGF1dG9tYXRpYyBn ZW5lcmF0aW9uIG9mIGl0OiBpdCBvbmx5Cj4+Pj4+ID4+Pj4+ID4+IHNob3VsZCBiZSB1cGRhdGVk IHdoZW4gbmV3IEpBUiBmaWxlIGFycml2ZXMuCj4+Pj4+ID4+Pj4+ID4+IE1vZHVsZWxpYnJhcnlt YXBwaW5nLnByb3BlcnRpZXMgaXMgZGlmZmVyZW50IG9uIHRoaXMgcG9pbnQsIGl0J3MKPj4+Pj4g dGhlCj4+Pj4+ID4+Pj4+ID4+IE1hcDxQYWNrYWdlTmFtZSxKQVJmaWxlPiwgd2hpY2ggc2hvdWxk IGJlIHVwZGF0ZWQgZWFjaCB0aW1lIHRoZQo+Pj4+PiBuZXcKPj4+Pj4gPj4+Pj4gPj4gKnBhY2th Z2UqIGlzIGludHJvZHVjZWQuIEknbSBub3QgdGFsa2luZyBhYm91dCBqYXZhLiogcGFja2FnZXMK Pj4+Pj4gPj4+Pj4gPj4gKHRoZXkncmUgc3RhbmRhcmRpemVkKSwgcmF0aGVyIGFib3V0IG9yZy5h cGFjaGUuaGFybW9ueS4qLgo+Pj4+PiA+Pj4+PiA+Pgo+Pj4+PiA+Pj4+PiA+PiBBdXRvbWF0aWMg Z2VuZXJhdGlvbiBvZiB0aGlzIHByb3BlcnR5IGZpbGUgZ2l2ZXMgdHdvIGFkdmFudGFnZXM6Cj4+ Pj4+ID4+Pj4+ID4+ICAxLiBFcnJvci1wcm9uZS4gUHJldmVudCB5b3Vyc2VsZiBmcm9tIGhhbmQt bWVzc2luZyB3aXRoIG1hcHBpbmcKPj4+Pj4gYW5kCj4+Pj4+ID4+Pj4+ID4+IGdldHRpbmcgc3B1 cmlvdXMgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbi4gQlRXLCB3aGF0J3MgdGhlIGJlaGF2aW91cgo+ Pj4+PiBpbgo+Pj4+PiA+Pj4+PiA+PiBjYXNlIHRoZSBtYXBwaW5nIGlzIHdyb25nPwo+Pj4+PiA+ Pj4+PiA+PiAgMi4gIlJlc2VhcmNoZnVsIi4gVGhlcmUncmUgbG90IG9mIGd1eXMgYXJvdW5kIHdo byBlbmpveXMgdGhlCj4+Pj4+ID4+Pj4+ID4+IG1vZHVsYXJpdHkgb2YgSGFybW9ueSBjbGFzc2xp YiBhbmQgZXZlbnR1YWxseSB0aGV5IG1pZ2h0IHdhbnQgdG8KPj4+Pj4gc3BsaXQKPj4+Pj4gPj4+ Pj4gPj4gdGhlIHBhY2thZ2VzIGV2ZW4gZGVlcGVyLCBpbnRvIHNtYWxsZXIgcGllY2VzLiBUaGVu IGF1dG9tYXRpYwo+Pj4+PiA+Pj4+PiA+PiBnZW5lcmF0aW9uIHdvdWxkIGVuYWJsZSB0aGVtIHRv IHF1aWNrbHkgcm9sbC1pbiBhbmQgZXhwZXJpbWVudAo+Pj4+PiB3aXRoCj4+Pj4+ID4+Pj4+ID4+ IGRpZmZlcmVudCBwYWNrYWdlIGxheW91dHMgYW5kIHRoZWlyIGltcGFjdCBvbiBwZXJmb3JtYW5j ZS4gVGhleQo+Pj4+PiBjb3VsZAo+Pj4+PiA+Pj4+PiA+PiB1c2Ugb3JkaW5hcnkgYm9vdGNsYXNz cGF0aC5wcm9wZXJ0aWVzLCBidXQgeW91ciBmZWF0dXJlIHdvdWxkbid0Cj4+Pj4+IGJlCj4+Pj4+ ID4+Pj4+ID4+IHVzZWQgYnkgdGhlbSB0aGVuIDspCj4+Pj4+ID4+Pj4+ID4+Cj4+Pj4+ID4+Pj4+ ID4+IFRoYXQncyBtZXJlbHkgYSBob3VzZWtlZXBpbmcgcHJvY2VkdXJlLiBJIGJlbGlldmUgdGhh dCBhbnl0aGluZwo+Pj4+PiB3aGljaAo+Pj4+PiA+Pj4+PiA+PiBjb3VsZCBiZSBkb25lIG1vcmUg dGhhbiBvbmNlLCBldmVudHVhbGx5IHdvdWxkIGJlIGRvbmUgbW9yZSB0aGFuCj4+Pj4+IG9uY2Uu Cj4+Pj4+ID4+Pj4+ID4+IEhlbmNlIGl0IHNob3VsZCBiZSBhdXRvbWF0ZWQuIFlvdSBzYXkgdGhh dCB0aGUgZmlsZSB3YXMgZ2VuZXJhdGVkCj4+Pj4+IGZyb20KPj4+Pj4gPj4+Pj4gPj4gbWFuaWZl c3RzIG9mIEpBUnMsIHNvIGlzIGl0IGhhcmQgdG8ganVzdCB0aWUgdGhlIHNhbWUgdG9vbCBpbnRv Cj4+Pj4+IERSTFZNCj4+Pj4+ID4+Pj4+ID4+IGJ1aWxkIHByb2Nlc3M/Cj4+Pj4+ID4+Pj4+ID4+ Cj4+Pj4+ID4+Pj4+ID4+IEFzIGZvciBEUkxWTS1zcGVjaWZpYywgbXkgb3BpbmlvbiB0aGF0IHRo aXMgaXMgYmVjYXVzZSB0aGUgcGF0Y2g6Cj4+Pj4+ID4+Pj4+ID4+ICBhLiBicmVha3MgdGhlIGNv bXBhdGliaWxpdHkgb2YgY2xhc3NsaWIgKHlvdSBjaGFuZ2UKPj4+Pj4gPj4+Pj4gPj4gYm9vdGNs YXNzcGF0aC5wcm9wZXJ0aWVzLCByaWdodD8pIHdpdGggb3RoZXIgVk1zLgo+Pj4+PiA+Pj4+PiA+ PiAgYi4gdHJlYXRlZCBpbiBEUkxWTSBjbGFzc2xvYWRlciBvbmx5Lgo+Pj4+PiA+Pj4+PiA+Pgo+ Pj4+PiA+Pj4+PiA+PiBPZiBjb3Vyc2UgZXZlbnR1YWxseSB0aGlzIGZlYXR1cmUgbWlnaHQgYmUg dXNlZCBieSBvdGhlcnMsIGJ1dCBJTU8KPj4+Pj4gd2UKPj4+Pj4gPj4+Pj4gPj4gc2hvdWxkIGJl IGNhcmVmdWwgYWJvdXQgb3RoZXIgZ3V5cyB3aG8gdXNlIHRoZSBzYW1lIGNsYXNzbGliLiBJJ2QK Pj4+Pj4gPj4+Pj4gPj4gcmF0aGVyIHdhaXQgZm9yIHNvbWUgaW5jdWJhdGlvbiBvbiBEUkxWTSBz aWRlIGZpcnN0Lgo+Pj4+PiA+Pj4+PiA+Pgo+Pj4+PiA+Pj4+PiA+PiBUaGFua3MsCj4+Pj4+ID4+ Pj4+ID4+IEFsZWtzZXkuCj4+Pj4+ID4+Pj4+ID4+Cj4+Pj4+ID4+Pj4+ID4+IE9uIFRodSwgRGVj IDI1LCAyMDA4IGF0IDY6MTggUE0sIFdlbmxvbmcgTGkgPHdlbmxvbmdAZ21haWwuY29tPgo+Pj4+ PiB3cm90ZToKPj4+Pj4gPj4+Pj4gPj4+IEkgc2VlLiBJbiBmYWN0LCBteSBmaWxlIGRvZXNuJ3Qg bmVlZCB0cmFjayBjaGFuZ2UgYXQgdGhlIGNsYXNzCj4+Pj4+ID4+Pj4+ID4+PiBncmFudWxhcml0 eS4gSW5zdGVhZCwgaXQgb25seSBuZWVkcyBrbm93IHBhY2thZ2UgaW5mbyBwcm92aWRlZCBpbgo+ Pj4+PiB0aGUKPj4+Pj4gPj4+Pj4gPj4+IG1hbmlmZXN0IGZpbGUuICBXaGVuIGNsYXNzIGlzIGFk ZGVkIHRvIGEgbGlicmFyeSwgZG8gd2UgbmVlZAo+Pj4+PiBjaGFuZ2UKPj4+Pj4gPj4+Pj4gPj4+ IHRoZSBtYW5pZmVzdCBhcyB3ZWxsPwo+Pj4+PiA+Pj4+PiA+Pj4KPj4+Pj4gPj4+Pj4gPj4+IGJ0 dywgSSBndWVzcyB0aGVyZSBpcyBhIG1pcy11bmRlcnN0YW5kaW5nOiBteQo+Pj4+PiBtb2R1bGVs aWJyYXJ5bWFwcGluZwo+Pj4+PiA+Pj4+PiA+Pj4gZmlsZSBvbmx5IHJlY29yZHMgcGFja2FnZSBp bmZvIHByb3ZpZGVkIGJ5IG1hbmZpZXN0IGluIGVhY2gKPj4+Pj4gbW9kdWxlLiBJdAo+Pj4+PiA+ Pj4+PiA+Pj4gZG9lc24ndCByZWxhdGUgdG8gZWFjaCBjbGFzcy4KPj4+Pj4gPj4+Pj4gPj4+Cj4+ Pj4+ID4+Pj4+ID4+PiB0aHgsCj4+Pj4+ID4+Pj4+ID4+PiBXZW5sb25nCj4+Pj4+ID4+Pj4+ID4+ Pgo+Pj4+PiA+Pj4+PiA+Pj4gT24gVGh1LCBEZWMgMjUsIDIwMDggYXQgMTA6NTUgUE0sIFBhdmVs IFBlcnZvdiA8Cj4+Pj4+IHBtY2ZpcnN0QGdtYWlsLmNvbT4KPj4+Pj4gPj4+Pj4gd3JvdGU6Cj4+ Pj4+ID4+Pj4+ID4+Pj4gQ2xhc3NlcyBhcmUgYWRkZWQgdG8gY2xhc3MgbGlicmFyeSBmcm9tIHRp bWUgdG8gdGltZS4gSSdtIG5vdAo+Pj4+PiBzdXJlIGhvdwo+Pj4+PiA+Pj4+PiA+Pj4+IGl0IGNh biBiZSBwb3NzaWJsZSB0byB0cmFjayB0aGVzZSBjaGFuZ2VzIG1hbnVhbGx5Lgo+Pj4+PiA+Pj4+ PiA+Pj4+Cj4+Pj4+ID4+Pj4+ID4+Pj4gV0JSLAo+Pj4+PiA+Pj4+PiA+Pj4+ICAgIFBhdmVsLgo+ Pj4+PiA+Pj4+PiA+Pj4+Cj4+Pj4+ID4+Pj4+ID4+Pj4KPj4+Pj4gPj4+Pj4gPj4+PiBPbiBUaHUs IERlYyAyNSwgMjAwOCBhdCA1OjA5IFBNLCBXZW5sb25nIExpIDx3ZW5sb25nQGdtYWlsLmNvbT4K Pj4+Pj4gPj4+Pj4gd3JvdGU6Cj4+Pj4+ID4+Pj4+ID4+Pj4+IFNvcnJ5LCBvbmUgbW9yZSBxdWVz dGlvbjogYm9vdGNsYXNzcGF0aC5wcm9wZXJ0aWVzIGlzIGNsYXNzbGliCj4+Pj4+ID4+Pj4+ID4+ Pj4+IHNwZWNpZmljIGZpbGUsIHdoeSB3ZSBjb3VsZCBub3QgbWFrZSBhIHZtIHNwZWNpZmljIGZp bGUKPj4+Pj4gbWFudWFsbHk/Cj4+Pj4+ID4+Pj4+IEp1c3QKPj4+Pj4gPj4+Pj4gPj4+Pj4gY3Vy aW91cyB0byBrbm93IHRoZSBwb3NzaWJsZSByZWFzb24uIDopCj4+Pj4+ID4+Pj4+ID4+Pj4+Cj4+ Pj4+ID4+Pj4+ID4+Pj4+IHRoeCwKPj4+Pj4gPj4+Pj4gPj4+Pj4gV2VubG9uZwo+Pj4+PiA+Pj4+ PiA+Pj4+Pgo+Pj4+PiA+Pj4+PiA+Pj4+PiBPbiBUaHUsIERlYyAyNSwgMjAwOCBhdCAxMDowMCBQ TSwgUGF2ZWwgUGVydm92IDwKPj4+Pj4gcG1jZmlyc3RAZ21haWwuY29tPgo+Pj4+PiA+Pj4+PiB3 cm90ZToKPj4+Pj4gPj4+Pj4gPj4+Pj4+IElmIHRoaXMgd291bGQgYmUgVk0tc2lkZSBhdXRvbWF0 aWNhbGx5IHByb2R1Y2VkIGNvbmZpZ3VyYXRpb24KPj4+Pj4gPj4+Pj4gZmlsZS4uLgo+Pj4+PiA+ Pj4+PiA+Pj4+Pj4KPj4+Pj4gPj4+Pj4gPj4+Pj4+IFdCUiwKPj4+Pj4gPj4+Pj4gPj4+Pj4+ICAg IFBhdmVsLgo+Pj4+PiA+Pj4+PiA+Pj4+Pj4KPj4+Pj4gPj4+Pj4gPj4+Pj4+IE9uIFRodSwgRGVj IDI1LCAyMDA4IGF0IDQ6NTggUE0sIFdlbmxvbmcgTGkgPAo+Pj4+PiB3ZW5sb25nQGdtYWlsLmNv bT4KPj4+Pj4gPj4+Pj4gd3JvdGU6Cj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4gYnR3LCBiZWNhdXNlIGFk ZGluZyBuZXcgbW9kdWxlIGlzIHJhcmUgY2FzZSwgbWFudWFsbHkKPj4+Pj4gbW9kaWZ5aW5nIHRo ZQo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+IGJvb3RjbGFzc3BhdGgucHJvcGVydGllcyBpcyBub3QgYW4g aXNzdWU/Cj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4KPj4+Pj4gPj4+Pj4gPj4+Pj4+PiBJZiBzbywgY2Fu IEkgY29uY2x1ZGUgYWRkaW5nIGFub3RoZXIgcHJvcGVydHkgZmlsZSB3aXRoIHNhbWUKPj4+Pj4g dXBkYXRlCj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4gZnJlcXVlbmN5IGFzIGJvb3RjbGFzc3BhdGggd291 bGQgYmUgZmluZSBhcyB3ZWxsPwo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Cj4+Pj4+ID4+Pj4+ID4+Pj4+ Pj4gUGxzIGtpbmRseSBjb3JyZWN0IG1lIGlmIG15IHVuZGVyc3RhbmRpbmcgaXMgd3JvbmcuCj4+ Pj4+ID4+Pj4+ID4+Pj4+Pj4KPj4+Pj4gPj4+Pj4gPj4+Pj4+PiBPbiBUaHUsIERlYyAyNSwgMjAw OCBhdCA5OjA1IFBNLCBQYXZlbCBQZXJ2b3YgPAo+Pj4+PiBwbWNmaXJzdEBnbWFpbC5jb20+Cj4+ Pj4+ID4+Pj4+IHdyb3RlOgo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+PiBXZW5sb25nLAo+Pj4+PiA+Pj4+ PiA+Pj4+Pj4+Pgo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+PiBOb3RlLCB0aGF0IGJvb3RjbGFzc3BhdGgu cHJvcGVydGllcyBpcyBvbmx5IGNoYW5nZWQgb24KPj4+Pj4gYWRkaW5nIG5ldwo+Pj4+PiA+Pj4+ PiA+Pj4+Pj4+PiBtb2R1bGUuIFRoaXMgaXMgcHJldHR5IHJhcmUgb2NjYXNpb24sIEkgYmVsaWV2 ZS4KPj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4KPj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4gV0JSLAo+Pj4+PiA+ Pj4+PiA+Pj4+Pj4+PiAgICBQYXZlbC4KPj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4KPj4+Pj4gPj4+Pj4g Pj4+Pj4+Pj4gT24gVGh1LCBEZWMgMjUsIDIwMDggYXQgMzo0OCBQTSwgV2VubG9uZyBMaSA8Cj4+ Pj4+IHdlbmxvbmdAZ21haWwuY29tPgo+Pj4+PiA+Pj4+PiB3cm90ZToKPj4+Pj4gPj4+Pj4gPj4+ Pj4+Pj4+IFRoeCBmb3IgeW91ciBhZHZpY2UuIEFsZXhleS4KPj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+ Cj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+PiBIZXJlIEkgaGF2ZSBvbmUgcXVlc3Rpb246IGRvIHlvdSBr bm93IGhvdyB0aGUKPj4+Pj4gPj4+Pj4gYm9vdGNsYXNzcGF0aC5wcm9wZXJ0aWVzCj4+Pj4+ID4+ Pj4+ID4+Pj4+Pj4+PiBpcyBtYWludGFpbmVkLCBtYW51YWxseSBvciBhdXRvbWF0aWNhbGx5Pwo+ Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4KPj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+IEFub3RoZXIgY29tbWVu dCBpcyBJIHdvdWxkIGxpa2UgdG8gdHJlYXQgdGhlIHBhdGNoIGFzIERSTFZNCj4+Pj4+ID4+Pj4+ IHNwZWNpZmljCj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+PiBvcHRpbWl6YXRpb24sIGUuZy4sIGl0IHRh cmdldHMgZm9yIGltcHJvdmluZyBWTSBjcmVhdGlvbgo+Pj4+PiB0aW1lLiBTbwo+Pj4+PiA+Pj4+ PiB0aGF0Cj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+PiBpcyBwb3NzaWJsZSB0byBtb3ZlIGFsbCB1cGRh dGVzIHRvIERSTFZNIHBhcnQgdG8gZWxpbWluYXRlCj4+Pj4+ID4+Pj4+IHBvdGVudGlhbAo+Pj4+ PiA+Pj4+PiA+Pj4+Pj4+Pj4gbW9kdWxhcml0eSBhbmQgY29tcGF0aWJpbGl0eSBwcm9ibGVtLgo+ Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4KPj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+IHRoeCwKPj4+Pj4gPj4+ Pj4gPj4+Pj4+Pj4+IFdlbmxvbmcKPj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+Cj4+Pj4+ID4+Pj4+ID4+ Pj4+Pj4+PiBPbiBUaHUsIERlYyAyNSwgMjAwOCBhdCA1OjMyIFBNLCBBbGVrc2V5IFNoaXBpbGV2 Cj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+PiA8YWxla3NleS5zaGlwaWxldkBnbWFpbC5jb20+IHdyb3Rl Ogo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4+IEhpLCBXZW5sb25nLgo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+ Pj4+Cj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4gT24gVGh1LCBEZWMgMjUsIDIwMDggYXQgMTE6NDkg QU0sIFdlbmxvbmcgTGkgPAo+Pj4+PiB3ZW5sb25nQGdtYWlsLmNvbT4KPj4+Pj4gPj4+Pj4gd3Jv dGU6Cj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4+IGJ0dywgQWxleGV5LCBMZXQncyBnbyBiYWNrIHRv IGRpc2N1c3Mgd2hldGhlciB0aGVyZSBpcyBhCj4+Pj4+IG5lZWQKPj4+Pj4gPj4+Pj4gdG8KPj4+ Pj4gPj4+Pj4gPj4+Pj4+Pj4+Pj4gaW5jbHVkZSB0aGlzIGZlYXR1cmUgaW4gSGFybW9ueSwgZ2l2 ZW4gMTclIHBlcmZvcm1hbmNlCj4+Pj4+IGdhaW4gaW4KPj4+Pj4gPj4+Pj4gTGludXgKPj4+Pj4g Pj4+Pj4gPj4+Pj4+Pj4+Pj4gd2hlbiB1c2luZyB5b3VyIG1ldGhvZG9sb2d5LiBGb3Igd2luZG93 cyB0ZXN0LCBJIHdpbGwKPj4+Pj4gZG91YmxlCj4+Pj4+ID4+Pj4+IGNoZWNrIHRoZQo+Pj4+PiA+ Pj4+PiA+Pj4+Pj4+Pj4+PiBiYWNrZ3JvdWQgcHJvY2VzcyBhcyB5b3UgcG9pbnRlZCBvdXQuCj4+ Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4KPj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+PiBNeSBvcGluaW9uIHdh cyBhbHJlYWR5IGV4cHJlc3NlZCBhZnRlciBJIGhhZCBmaW5pc2hlZCB0aGUKPj4+Pj4gdGVzdHMK Pj4+Pj4gPj4+Pj4gZnJvbQo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4+IG15IHNpZGU6IHRoZSBib29z dCBjYW4gYmUgYWNoaWV2ZWQgaW4gc3BlY2lmaWMgY29uZGl0aW9ucywKPj4+Pj4gc28KPj4+Pj4g Pj4+Pj4gd2hldGhlcgo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4+IGl0J3Mgd29ydGggaW5jbHVkaW5n IGludG8gSGFybW9ueSByZWFsbHkgZGVwZW5kcyBvbiBob3cKPj4+Pj4gbXVjaAo+Pj4+PiA+Pj4+ PiBtZXNzIHRoZQo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4+IHBhdGNoIHdvdWxkIGludHJvZHVjZSBi ZXNpZGVzIHRoZSAicGVyZm9ybWFuY2UgYm9vc3QiLgo+Pj4+PiBGcm9tIHdoYXQKPj4+Pj4gPj4+ Pj4gSQo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4+IHNlZSwgdGhlIHBhdGNoIG9ibGlnZXMgdGhlIG1h aW50YWluZXIgdG8gbWFpbnRhaW4gdGhlCj4+Pj4+IGNvcnJlY3QKPj4+Pj4gPj4+Pj4gbWFwcGlu Zwo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4+IGJldHdlZW4gamFycyBhbmQgSmF2YSBwYWNrYWdlcy4g VGhpcyBuZXcgZmVhdHVyZSBpcyBhbHNvCj4+Pj4+IHNwcmVhZAo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+ Pj4+IGJldHdlZW4gQ2xhc3NsaWIgYW5kIFZNLCBidXQgaXQgc2VlbXMgbGlrZSBEUkxWTSBzcGVj aWZpYy4KPj4+Pj4gSW4KPj4+Pj4gPj4+Pj4gdGhpcwo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4+IGNh c2UgSSB3b3VsZCByYXRoZXIgc3RheSB3aXRob3V0IHRoZSBwYXRjaC4KPj4+Pj4gPj4+Pj4gPj4+ Pj4+Pj4+Pgo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4+IFBlcnNvbmFsbHkgKGlmIEknbGwgYmUgY29t bWl0dGVyKSBJIHdvdWxkIGFjY2VwdCB0aGUgcGF0Y2gKPj4+Pj4gd2l0aAo+Pj4+PiA+Pj4+PiB0 d28KPj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+PiBzZXJpb3VzIG1vZGlmaWNhdGlvbnM6Cj4+Pj4+ID4+ Pj4+ID4+Pj4+Pj4+Pj4gIDEuIFN0YXkgd2l0aGluIERSTFZNLCBkbyBub3QgaW50cm9kdWNlIHRo aXMgZmVhdHVyZSBpbnRvCj4+Pj4+ID4+Pj4+IENsYXNzbGliLAo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+ Pj4+IGdldCB0aGUgdGhpbmcgdGVzdGVkIGFuZCBldm9sdmVkIG9uIERSTFZNIHNpZGUuIE90aGVy d2lzZQo+Pj4+PiBpdAo+Pj4+PiA+Pj4+PiBtaWdodAo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4+IGJy ZWFrIHRoZSBjb21wYXRpYmlsaXR5IHdpdGggb3RoZXIgVk1zLgo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+ Pj4+ICAyLiBNYWtlIHRoZSBtYXBwaW5nIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IChkdXJpbmcg YnVpbGQKPj4+Pj4gPj4+Pj4gcHJvY2Vzcz8pCj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4gdG8gZnJl ZSB0aGUgYnVyZGVuIGZvciBtYWludGFpbmVycy4KPj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+Pgo+Pj4+ PiA+Pj4+PiA+Pj4+Pj4+Pj4+IFRoYW5rcywKPj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+PiBBbGVrc2V5 Lgo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4+Cj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pgo+Pj4+PiA+Pj4+ PiA+Pj4+Pj4+Pgo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Cj4+Pj4+ID4+Pj4+ID4+Pj4+Pgo+Pj4+PiA+ Pj4+PiA+Pj4+Pgo+Pj4+PiA+Pj4+PiA+Pj4+Cj4+Pj4+ID4+Pj4+ID4+Pgo+Pj4+PiA+Pj4+PiA+ Pgo+Pj4+PiA+Pj4+PiA+Cj4+Pj4+ID4+Pj4+ID4KPj4+Pj4gPj4+Pj4gPgo+Pj4+PiA+Pj4+PiA+ IC0tCj4+Pj4+ID4+Pj4+ID4g0KEg0YPQstCw0LbQtdC90LjQtdC8LAo+Pj4+PiA+Pj4+PiA+INCQ 0LvQtdC60YHQtdC5INCk0LXQtNC+0YLQvtCyLAo+Pj4+PiA+Pj4+PiA+INCX0JDQniDCq9Ci0LXQ u9C10LrQvtC8INCt0LrRgdC/0YDQtdGB0YHCuwo+Pj4+PiA+Pj4+PiA+Cj4+Pj4+ID4+Pj4+Cj4+ Pj4+ID4+Pj4+Cj4+Pj4+ID4+Pj4+Cj4+Pj4+ID4+Pj4+IC0tCj4+Pj4+ID4+Pj4+IGh0dHA6Ly94 aWFvLWZlbmcuYmxvZ3Nwb3QuY29tCj4+Pj4+ID4+Pj4+Cj4+Pj4+ID4+Pj4KPj4+Pj4gPj4+Pgo+ Pj4+PiA+Pj4+Cj4+Pj4+ID4+Pj4gLS0KPj4+Pj4gPj4+PiDQoSDRg9Cy0LDQttC10L3QuNC10Lws Cj4+Pj4+ID4+Pj4g0JDQu9C10LrRgdC10Lkg0KTQtdC00L7RgtC+0LIsCj4+Pj4+ID4+Pj4g0JfQ kNCeIMKr0KLQtdC70LXQutC+0Lwg0K3QutGB0L/RgNC10YHRgcK7Cj4+Pj4+ID4+Pj4KPj4+Pj4g Pj4+Cj4+Pj4+ID4+Pgo+Pj4+PiA+Pj4KPj4+Pj4gPj4+IC0tCj4+Pj4+ID4+PiBodHRwOi8veGlh by1mZW5nLmJsb2dzcG90LmNvbQo+Pj4+PiA+Pj4KPj4+Pj4gPj4KPj4+Pj4gPj4KPj4+Pj4gPj4K Pj4+Pj4gPj4gLS0KPj4+Pj4gPj4g0KEg0YPQstCw0LbQtdC90LjQtdC8LAo+Pj4+PiA+PiDQkNC7 0LXQutGB0LXQuSDQpNC10LTQvtGC0L7QsiwKPj4+Pj4gPj4g0JfQkNCeIMKr0KLQtdC70LXQutC+ 0Lwg0K3QutGB0L/RgNC10YHRgcK7Cj4+Pj4+ID4+Cj4+Pj4+ID4KPj4+Pj4gPgo+Pj4+PiA+Cj4+ Pj4+ID4gLS0KPj4+Pj4gPiBodHRwOi8veGlhby1mZW5nLmJsb2dzcG90LmNvbQo+Pj4+PiA+Cj4+ Pj4+Cj4+Pj4KPj4+Pgo+Pj4+Cj4+Pj4gLS0KPj4+PiDQoSDRg9Cy0LDQttC10L3QuNC10LwsCj4+ Pj4g0JDQu9C10LrRgdC10Lkg0KTQtdC00L7RgtC+0LIsCj4+Pj4g0JfQkNCeIMKr0KLQtdC70LXQ utC+0Lwg0K3QutGB0L/RgNC10YHRgcK7Cj4+Pj4KPj4+Cj4+Cj4KCgoKLS0gCtChINGD0LLQsNC2 0LXQvdC40LXQvCwK0JDQu9C10LrRgdC10Lkg0KTQtdC00L7RgtC+0LIsCtCX0JDQniDCq9Ci0LXQ u9C10LrQvtC8INCt0LrRgdC/0YDQtdGB0YHCuwo=