From dev-return-35978-apmail-harmony-dev-archive=harmony.apache.org@harmony.apache.org Wed Jan 14 11:23:58 2009 Return-Path: Delivered-To: apmail-harmony-dev-archive@www.apache.org Received: (qmail 15582 invoked from network); 14 Jan 2009 11:23:57 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 14 Jan 2009 11:23:57 -0000 Received: (qmail 66735 invoked by uid 500); 14 Jan 2009 11:23:56 -0000 Delivered-To: apmail-harmony-dev-archive@harmony.apache.org Received: (qmail 66685 invoked by uid 500); 14 Jan 2009 11:23:55 -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 66674 invoked by uid 99); 14 Jan 2009 11:23:55 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Jan 2009 03:23:55 -0800 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of aleksey.shipilev@gmail.com designates 209.85.198.250 as permitted sender) Received: from [209.85.198.250] (HELO rv-out-0708.google.com) (209.85.198.250) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Jan 2009 11:23:46 +0000 Received: by rv-out-0708.google.com with SMTP id k29so584882rvb.0 for ; Wed, 14 Jan 2009 03:23:24 -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=NmvZq+xCUHRIOT7DsGAzSKkretfZAphMk3BQBeEr/qg=; b=SpxMBkuU1MI1Gja9HFbfykC6W9OhF0/6mq9zTZkGJwcQAW9QpfsD3omDe3hGktdBz9 iWRzm7nsfRorPc8NDa3sJRG0xvxNSyQEYnupxh1m4eeaX6uoN74gJL/WLsV8PUhICYJ+ nSguJMcP/GZAJp6j08G1O4NOQ3lZm0PNNKh+k= 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=YWm85wqaLxfQ6vIyxa9XYHPwLzQT/FnCfYaz9/KlxM4KL/t+8lA6K2qJHSx1O3uJ7u JdaiXq9wZKb01qeJbaQW9WPpA4+xMzg1ifSgK8PwCq4qkX/6kUB3pOpIXjBINs38wdni FABa3/gnfi7wrAbBurmxTw44/L9W4zXdQT39M= Received: by 10.141.197.21 with SMTP id z21mr15827455rvp.107.1231932204331; Wed, 14 Jan 2009 03:23:24 -0800 (PST) Received: by 10.140.142.18 with HTTP; Wed, 14 Jan 2009 03:23:24 -0800 (PST) Message-ID: <4bebff790901140323g1c009657j894904f9e36e6ee6@mail.gmail.com> Date: Wed, 14 Jan 2009 14:23:24 +0300 From: "Aleksey Shipilev" 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 SGkgV2VubG9uZyEKCkkgYXNzdW1lZCB0aGF0IHlvdSdyZSB0YWxraW5nIGFib3V0IEg2MDM4XzIu cGF0Y2guCgoxLiBPbiB0aGUgcGVyZm9ybWFuY2Ugc2lkZTogdGhlIHJlc3VsdCBvZiBwZXJmb3Jt YW5jZSBhc3Nlc3NtZW50IG9uCkhlbGxvV29ybGQgaXMgYmVsb3cuIFRoZSB0ZXN0IHN5c3RlbSBp czoKIC0gUGVudGl1bSBEIDgyMCAyLjggR2h6IC8gMiBHYiBERFIyLTY2NwogLSBXRCAzMjAwS1Ms IDMyMCBHYiwgMTYgTWIgY2FjaGUKIC0gR2VudG9vIExpbnV4IHg4NiwgMi42LjIzCiAtIEhhcm1v bnkgcjczNDM2MCwgcmVsZWFzZSBidWlsZAoKImNvbGQtc3RhcnQiIChpbnZhbGlkYXRlIGNhY2hl cyk6CmNsZWFuOiAoMi40OSArLSAwLjEzKSBzZWNzCm9uZGVtYW5kOiAoMi4zMSArLSAwLjEwKSBz ZWNzCgoid2FybS1zdGFydCIgKGRvbid0IGludmFsaWRhdGUgY2FjaGVzKTsKY2xlYW46ICgwLjQy ICstIDAuMDEpIHNlY3MKb25kZW1hbmQ6ICgwLjQwICstIDAuMDEpIHNlY3MKCk9rLCB3ZSBtaWdo dCBwcmVzdW1lIHRoZSBwYXRjaCBmaW5hbGx5IGdpdmVzIGEgc21hbGwtc21hbGwgYm9vc3QgOikK CjIuIE9uIHRoZSBjb25mb3JtYW5jZSBzaWRlOiB3ZSBuZWVkIHRvIHdvcmsgb3V0IHRoZSBwYXRj aCBhIGJpdDoKIGEuIGV4dGVybmFsaXplIG1hZ2ljIG51bWJlcnMKIGIuIGV4dGVybmFsaXplIGlu bGluZWQgc3RyaW5nIGxpdGVyYWxzCigibW9kdWxlbGlicmFyeW1hcHBpbmcucHJvcGVydGllcyIs IGV0Yy4pCgpBbGwgb3RoZXIgdGhpbmdzIGxvb2sgb2sgZm9yIG1lLgoKVGhhbmtzLApBbGVrc2V5 LgoKT24gV2VkLCBKYW4gMTQsIDIwMDkgYXQgMTI6MzMgUE0sIFdlbmxvbmcgTGkgPHdlbmxvbmdA Z21haWwuY29tPiB3cm90ZToKPiBBbGwsCj4KPiBJIHN1Ym1pdCBhIG5ldyBwYXRjaCBmb3Igb24t ZGVtYW5kIGNsYXNzIGxvYWRpbmcgYW5kIHBhcnNpbmcuIEFsbAo+IGNvZGVzIGFyZSBwdXQgaW4g Vk0gc2lkZSwgYW5kIHRoZSBtYXBwaW5nIGluZm8gaXMgYXV0b21hdGljYWxseQo+IHByb2R1Y2Vk Lgo+Cj4gUGxzIHNlZSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0hBUk1P TlktNjAzOQo+Cj4gQ29tbWVudHMgYXJlIHdlbGNvbWUuCj4KPiBUaHgsIFdlbmxvbmcKPiBNYW5h Z2VkIFJ1bnRpbWUgVGVjaG5vbG9neSBDZW50ZXIsIEludGVsCj4KPiBPbiBXZWQsIEphbiA3LCAy MDA5IGF0IDEyOjA4IFBNLCBXZW5sb25nIExpIDx3ZW5sb25nQGdtYWlsLmNvbT4gd3JvdGU6Cj4+ IEFsbCwKPj4gQXQgdGhpcyBtb21lbnQsIEkgbW92ZSBhbGwgdXBkYXRlcyBpbiBjbGFzc2xpYiB0 byBWTSBzaWRlIHN1Y2ggdGhhdAo+PiB0aGVyZSBpcyBubyBtb2R1bGFyaXR5IGlzc3VlLiBOZXh0 IHN0ZXAgaXMgdG8gcHJvZHVjZSB0aGUgbWFwcGluZwo+PiBiZXR3ZWVuIG1vZHVsZSBhbmQgbGli cmFyeSBlZmZpY2llbnRseSBhbmQgYWNjdXJhdGVseS4KPj4KPj4gQ29tbWVudHMgYXJlIHdlbGNv bWUuCj4+Cj4+IFRoeCwgV2VubG9uZwo+PiBNYW5hZ2VkIFJ1bnRpbWUgVGVjaG5vbG9neSBDZW50 ZXIsIEludGVsCj4+Cj4+IE9uIFR1ZSwgSmFuIDYsIDIwMDkgYXQgMTE6MDggUE0sIFdlbmxvbmcg TGkgPHdlbmxvbmdAZ21haWwuY29tPiB3cm90ZToKPj4+IFRoeCA6KQo+Pj4KPj4+IE9uIFR1ZSwg SmFuIDYsIDIwMDkgYXQgMTA6MzUgUE0sIEFsZXhlaSBGZWRvdG92Cj4+PiA8YWxleGVpLmZlZG90 b3ZAZ21haWwuY29tPiB3cm90ZToKPj4+PiBTdXJlLgo+Pj4+Cj4+Pj4gMS4gSWYgeW91IGRpZyBp bnRvIFNldENsYXNzcGF0aEZyb21TdHJpbmcsIHlvdSB3aWxsIHNlZSB0aGF0IGl0IHN0YXJ0cyBm cm9tCj4+Pj4gc3BsaXR0aW5nIHRoZSBnaXZlbiBjbGFzc3BhdGggaW50byBwaWVjZXMuIFlvdSBh bHJlYWR5IGtub3cgdGhlIG5ldyBwaWVjZQo+Pj4+IHlvdSBhZGQgYW5kIG1heSBza2lwIHNwbGl0 dGluZyBzdGVwLgo+Pj4+Cj4+Pj4gMi4gSWYgSSB1bmRlcnN0YW5kIHlvdSBjb2RlIGNvcnJlY3Rs eSwgdGhlIGNhc2UgInBkZXN0ID4KPj4+PiAoKml0KS5zZWNvbmQtPmJ5dGVzIiBtaWdodCBiZSBh IHN1YmplY3Qgb2YgYSBuZWdhdGl2ZSBhc3NlcnRpb24uIEFkZGluZyB0aGlzCj4+Pj4gYXNzcnRp b24gd291bGQgc3BlZWQgdXAgYnVnIGRpc2NvdmVyeS4KPj4+Pgo+Pj4+IFRoYW5rcy4KPj4+Pgo+ Pj4+Cj4+Pj4gT24gVHVlLCBKYW4gNiwgMjAwOSBhdCA1OjA5IEFNLCBXZW5sb25nIExpIDx3ZW5s b25nQGdtYWlsLmNvbT4gd3JvdGU6Cj4+Pj4KPj4+Pj4gWWVzLCBYaWFvLUZlbmcncyB1bmRlcnN0 YW5kaW5nIGlzIGNvcnJlY3QuIFRoZSBwYXRjaCBsb2FkcyBhbmQgcGFyc2VzCj4+Pj4+IG1vZHVs ZXMgb24gZGVtYW5kLiBJZiBubyBjbGFzcyBpbiBzd2luZy5qYXIgaXMgbm90IHJlcXVlc3RlZCwg dGhlbgo+Pj4+PiB0aGlzIG1vZHVsZSB3aWxsIG5vdCBiZSBsb2FkZWQuCj4+Pj4+Cj4+Pj4+IGJ0 dywgQWxleGVpLCB5b3Ugc2FpZCAiU2V0Q2xhc3NwYXRoRnJvbVN0cmluZyIgYW5kICJwZGVzdCA+ Cj4+Pj4+ICgqaXQpLnNlY29uZC0+Ynl0ZXMiIGFyZSBub3QgZWZmaWNpZW50LiBDYW4geW91IHNo YXJlIG1vcmUgY29tbWVudHMgb24KPj4+Pj4gdGhlbT8gSSBqdXN0IHJldXNlZCBzb21lIGNvZGUg aW4gSGFybW9ueSwgYW5kIGRpZG4ndCBvcHRpbWl6ZSB0aGVtCj4+Pj4+IGZ1cnRoZXIuCj4+Pj4+ Cj4+Pj4+IFRoeCwgV2VubG9uZwo+Pj4+PiBNYW5hZ2VkIFJ1bnRpbWUgVGVjaG5vbG9neSBDZW50 ZXIsIEludGVsCj4+Pj4+Cj4+Pj4+IE9uIEZyaSwgRGVjIDI2LCAyMDA4IGF0IDU6MTYgUE0sIFhp YW8tRmVuZyBMaSA8eGlhb2ZlbmcubGlAZ21haWwuY29tPgo+Pj4+PiB3cm90ZToKPj4+Pj4gPiBP biBGcmksIERlYyAyNiwgMjAwOCBhdCA1OjA4IFBNLCBBbGV4ZWkgRmVkb3Rvdgo+Pj4+PiA+IDxh bGV4ZWkuZmVkb3RvdkBnbWFpbC5jb20+IHdyb3RlOgo+Pj4+PiA+PiBYaWFvIEZlbmcsCj4+Pj4+ ID4+IFRoYW5rIHlvdSBmb3IgZXhwbGFpbmluZy4KPj4+Pj4gPj4KPj4+Pj4gPj4gSSBnZXQgbW9y ZSBtaW5vciBjb21tZW50cyBvbiBtb3JlIGNvbW1lbnRlZCBjb2RlLCBpbmVmZmVjdGl2ZQo+Pj4+ PiA+PiBTZXRDbGFzc3BhdGhGcm9tU3RyaW5nIHVzYWdlLCBub24tY292ZXJlZCB1bmV4cGVjdGVk IGNhc2Ugd2hlbiBwZGVzdCA+Cj4+Pj4+ID4+ICgqaXQpLnNlY29uZC0+Ynl0ZXMuIE9uZSBtYWpv ciBjb21tZW50IG9uIGNyb3NzaW5nIHZtIG1vZHVsZSBib3VuZGFyeQo+Pj4+PiA+PiBzdGlsbCBy ZW1haW5zLiBCdXQgbm93IEknbSBoYXBweSB3aXRoIHRoZSBkZXNpZ24uCj4+Pj4+ID4KPj4+Pj4g PiBBbGV4ZWksIHllcywgSSBhZ3JlZSB3aXRoIHlvdXIgY29tbWVudHMuIFRoZXNlIHBhcnRzIHNo b3VsZCBiZQo+Pj4+PiA+IGltcHJvdmVkLiAoU3RpbGwsIHRoaXMgaXMgbXkgcGVyc29uYWwgb3Bp bmlvbi4gOikgIExldCdzIHdhaXQgV2VubG9uZwo+Pj4+PiA+IHNwZWFraW5nLikKPj4+Pj4gPgo+ Pj4+PiA+IFRoYW5rcywKPj4+Pj4gPiB4aWFvZmVuZwo+Pj4+PiA+Cj4+Pj4+ID4+IFNvcnJ5IGZv ciBiZWluZyBzbG93Lgo+Pj4+PiA+Pgo+Pj4+PiA+Pgo+Pj4+PiA+Pgo+Pj4+PiA+PiBPbiBGcmks IERlYyAyNiwgMjAwOCBhdCAxMTo0MCBBTSwgWGlhby1GZW5nIExpIDx4aWFvZmVuZy5saUBnbWFp bC5jb20+Cj4+Pj4+IHdyb3RlOgo+Pj4+PiA+Pj4gT24gRnJpLCBEZWMgMjYsIDIwMDggYXQgNDow MyBQTSwgQWxleGVpIEZlZG90b3YKPj4+Pj4gPj4+IDxhbGV4ZWkuZmVkb3RvdkBnbWFpbC5jb20+ IHdyb3RlOgo+Pj4+PiA+Pj4+IFhpYW8tRmVuZywKPj4+Pj4gPj4+PiBDb250aW51aW5nIHdpdGgg dGhlIHNlcnZlciBleGFtcGxlIGNvdWxkIHlvdSBwbGVhc2UgZ2l2ZSBtZSBhIGhpbnQKPj4+Pj4g d2hlcmUKPj4+Pj4gPj4+PiBkZWNpc2lvbiB0byBsb2FkIHN3aW5nLmphciBvciBub3QgaXMgdGFr ZW4gaW4gdGhlIHBhdGNoPyBNeSBpbml0aWFsCj4+Pj4+ID4+Pj4gcGVyY2VwdGlvbiB3YXMgdGhh dCB0aGUgbGlzdCBvZiB3aGF0IHRvIGxvYWQgd2FzIGhhcmRjb2RlZCBhbmQgd2FzIG5vdAo+Pj4+ PiA+Pj4+IGNvbnN0cnVjdGVkIGR5bmFtaWNhbGx5IGRlcGVuZGluZyBvbiBhcHBsaWNhdGlvbi4K Pj4+Pj4gPj4+Cj4+Pj4+ID4+PiBBbGV4ZWksIGhlcmUgaXMgdGhlIHBhdGNoIGNvZGUgSSBmb3Vu ZDoKPj4+Pj4gPj4+Cj4+Pj4+ID4+PiBsaW5lIDI0NToKPj4+Pj4gPj4+ICsgICAgICAgICAgICAv LyBGaW5kIHdoaWNoIGphciBleHBvcnRzIHRoaXMgcGFja2FnZQo+Pj4+PiA+Pj4gKyAgICAgICAg ICAgIGlmIChwa2dOYW1lICE9IE5VTEwpIHsKPj4+Pj4gPj4+ICsgICAgICAgICAgICAgICAgY2hh ciAqYm9vdF9jbGFzc19wYXRoID0KPj4+Pj4gPj4+IGVudi0+SmF2YVByb3BlcnRpZXMoKS0+Z2V0 KFZNX0JPT1RfQ0xBU1NfRElSKTsKPj4+Pj4gPj4+ICsgICAgICAgICAgICAgICAgY2hhciAqcGVu ZGluZ0NsYXNzUGF0aCA9IE5VTEw7Cj4+Pj4+ID4+PiArICAgICAgICAgICAgICAgIGFwcl9wb29s X3QgKnRtcF9wb29sOwo+Pj4+PiA+Pj4gKyAgICAgICAgICAgICAgICBhcHJfcG9vbF9jcmVhdGUo JnRtcF9wb29sLCBOVUxMKTsKPj4+Pj4gPj4+ICsgICAgICAgICAgICAgICAgd2hpbGUgKGl0ICE9 IGVudi0+cGVuZGluZ19qYXJfc2V0LmVuZCgpKSB7Cj4+Pj4+ID4+PiArICAgICAgICAgICAgICAg ICAgICBwZGVzdCA9IHN0cnN0ciggKCppdCkuc2Vjb25kLT5ieXRlcywgcGtnTmFtZSApOwo+Pj4+ PiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgaWYgKHBkZXN0ICE9IE5VTEwpIHsKPj4+Pj4gPj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nQ2xhc3NQYXRoID0KPj4+Pj4gPj4+IChj aGFyKilTVERfTUFMTE9DKHN0cmxlbihib290X2NsYXNzX3BhdGgpCj4+Pj4+ID4+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCj4+Pj4+IHN0cmxlbigo Kml0KS5maXJzdC0+Ynl0ZXMpICsgMSk7Cj4+Pj4+ID4+PiArICAgICAgICAgICAgICAgICAgICAg ICAgc3RyY3B5KHBlbmRpbmdDbGFzc1BhdGgsIGJvb3RfY2xhc3NfcGF0aCk7Cj4+Pj4+ID4+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgc3RyY2F0KHBlbmRpbmdDbGFzc1BhdGgsICgqaXQpLmZp cnN0LT5ieXRlcyk7Cj4+Pj4+ID4+PiArICAgICAgICAgICAgICAgICAgICAgICAgLy8gT3BlbiB0 aGlzIGZvdW5kIGphciwgYW5kIHJlYWQgYWxsIGNsYXNzZXMKPj4+Pj4gPj4+IGNvbnRhaW5lZCBp biB0aGlzIGphcgo+Pj4+PiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgIFNldENsYXNzcGF0 aEZyb21TdHJpbmcocGVuZGluZ0NsYXNzUGF0aCwKPj4+Pj4gdG1wX3Bvb2wpOwo+Pj4+PiA+Pj4g KyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVyYXNlIHRoZSBmb3VuZCBqYXIgZnJvbSBwZW5k aW5nIGphciBsaXN0Cj4+Pj4+ID4+PiBhcyBpdCBoYXMgYmVlbiBwYXJzZWQKPj4+Pj4gPj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICBlbnYtPnBlbmRpbmdfamFyX3NldC5lcmFzZShpdCsrKTsK Pj4+Pj4gPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICBTVERfRlJFRShwZW5kaW5nQ2xhc3NQ YXRoKTsKPj4+Pj4gPj4+ICsgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Cj4+Pj4+ID4+Pgo+ Pj4+PiA+Pj4gSXQgY2hlY2tzIGlmIGEgSkFSIGhhcyB0aGUgcmVxdWVzdGVkIHBhY2thZ2UsIHRo ZW4gbG9hZHMgaXQgaWYgeWVzLiBJCj4+Pj4+ID4+PiBhbSBub3Qgc3VyZSBpZiB0aGlzIGlzIHdo YXQgeW91IHdlcmUgYXNraW5nLiAoQnR3LCB0aGlzIGlzIG9ubHkgbXkKPj4+Pj4gPj4+IHVuZGVy c3RhbmRpbmcgb2YgaGlzIHBhdGNoLiBJIGFtIG5vdCBzcGVha2luZyBmb3IgV2VubG9uZy4pCj4+ Pj4+ID4+Pgo+Pj4+PiA+Pj4gVGhhbmtzLAo+Pj4+PiA+Pj4geGlhb2ZlbmcKPj4+Pj4gPj4+Cj4+ Pj4+ID4+Pj4gVGhhbmtzLgo+Pj4+PiA+Pj4+Cj4+Pj4+ID4+Pj4KPj4+Pj4gPj4+PiBPbiBGcmks IERlYyAyNiwgMjAwOCBhdCA0OjE0IEFNLCBYaWFvLUZlbmcgTGkgPHhpYW9mZW5nLmxpQGdtYWls LmNvbT4KPj4+Pj4gd3JvdGU6Cj4+Pj4+ID4+Pj4KPj4+Pj4gPj4+Pj4gT24gRnJpLCBEZWMgMjYs IDIwMDggYXQgMTI6NDkgQU0sIEFsZXhlaSBGZWRvdG92Cj4+Pj4+ID4+Pj4+IDxhbGV4ZWkuZmVk b3RvdkBnbWFpbC5jb20+IHdyb3RlOgo+Pj4+PiA+Pj4+PiA+IEFsZWtzZXksCj4+Pj4+ID4+Pj4+ ID4gSSBsaWtlIHlvdXIgY29uY2x1c2lvbi4KPj4+Pj4gPj4+Pj4gPgo+Pj4+PiA+Pj4+PiA+IFdl bmxvbmcsCj4+Pj4+ID4+Pj4+ID4gSSdtIHRyeWluZyB0byB1bmRlcnN0YW5kIHRoZSByZWFsIGxp ZmUgdmFsdWUgb2YgdGhlICJhYnN0cmFjdCIKPj4+Pj4gc3RhcnR1cAo+Pj4+PiA+Pj4+PiA+IHRp bWUgbWV0cmljIHlvdSd2ZSBzdWdnZXN0ZWQuIERvZXMgSGFybW9ueSB3aXRoIHlvdXIgcGF0Y2gg bG9hZAo+Pj4+PiA+Pj4+PiA+IHN3aW5nLmphciBmb3IgYSBzZXJ2ZXIgYXBwbGljYXRpb24/IERv IEkgdW5kZXJzdGFuZCB0aGF0IGxvYWRpbmcKPj4+Pj4gPj4+Pj4gPiBoYXBwZW5zLCB0aG91Z2gg aXQgaGFwcGVucyBsYXRlciBjb21wYXJlZCB0byBWTSB3aXRob3V0IHlvdXIgcGF0Y2g/Cj4+Pj4+ IEkKPj4+Pj4gPj4+Pj4gPiBiZWxpZXZlIHRoYXQgdGhlIHByb3BlciBkZXNpZ24gb2YgZGVsYXll ZCBsb2FkaW5nIHNob3VsZCBhbnN3ZXIKPj4+Pj4gIm5vIgo+Pj4+PiA+Pj4+PiA+IHRvIHRoaXMg cXVlc3Rpb24uCj4+Pj4+ID4+Pj4+Cj4+Pj4+ID4+Pj4+IEkgY2hlY2tlZCB0aGUgcGF0Y2gsIGFu ZCBJIGZvdW5kIHRoZSBhbnN3ZXIgaXMgaW5kZWVkICJObyIgYXMgeW91Cj4+Pj4+IGV4cGVjdGVk Lgo+Pj4+PiA+Pj4+Pgo+Pj4+PiA+Pj4+PiBUaGFua3MsCj4+Pj4+ID4+Pj4+IHhpYW9mZW5nCj4+ Pj4+ID4+Pj4+Cj4+Pj4+ID4+Pj4+ID4gSW4gb3RoZXIgd29yZHMsIEkgYXBwcmVjaWF0ZSBpZiB5 b3UgZGVzY3JpYmUgd2hpY2ggcmVhbCB1c2UgY2FzZXMKPj4+Pj4gYXJlCj4+Pj4+ID4+Pj4+ID4g aW1wcm92ZWQgYnkgdGhpcyBwYXRjaC4KPj4+Pj4gPj4+Pj4gPiBUaGFua3MhCj4+Pj4+ID4+Pj4+ Cj4+Pj4+ID4+Pj4+ID4gT24gVGh1LCBEZWMgMjUsIDIwMDggYXQgNzoyOSBQTSwgQWxla3NleSBT aGlwaWxldgo+Pj4+PiA+Pj4+PiA+IDxhbGVrc2V5LnNoaXBpbGV2QGdtYWlsLmNvbT4gd3JvdGU6 Cj4+Pj4+ID4+Pj4+ID4+IE9rLCBoZXJlJ3MgdGhlIGNhdGNoLgo+Pj4+PiA+Pj4+PiA+Pgo+Pj4+ PiA+Pj4+PiA+PiBib290Y2xhc3NwYXRoLnByb3BlcnRpZXMgaXMgdGhlIFNvcnRlZFNldDxKQVJm aWxlPiwgd2hpY2gKPj4+Pj4gZW51bWVyYXRlcwo+Pj4+PiA+Pj4+PiA+PiB0aGUgSkFScyBhdmFp bGFibGUgZm9yIGJvb3RjbGFzc2xvYWRlci4gVGhlIHNldCBvZiBzdWNoIHRoZSBKQVJzCj4+Pj4+ IGlzCj4+Pj4+ID4+Pj4+ID4+IHJlYWxseSBzdGFibGUgYmVjYXVzZSBtb2R1bGFyIGRlY29tcG9z aXRpb24gb2YgY2xhc3NsaWIgaXMgc3RhYmxlLgo+Pj4+PiA+Pj4+PiA+PiBUaGF0J3Mgd2h5IG5v Ym9keSBib3RoZXJzIHdpdGggYXV0b21hdGljIGdlbmVyYXRpb24gb2YgaXQ6IGl0IG9ubHkKPj4+ Pj4gPj4+Pj4gPj4gc2hvdWxkIGJlIHVwZGF0ZWQgd2hlbiBuZXcgSkFSIGZpbGUgYXJyaXZlcy4K Pj4+Pj4gPj4+Pj4gPj4gTW9kdWxlbGlicmFyeW1hcHBpbmcucHJvcGVydGllcyBpcyBkaWZmZXJl bnQgb24gdGhpcyBwb2ludCwgaXQncwo+Pj4+PiB0aGUKPj4+Pj4gPj4+Pj4gPj4gTWFwPFBhY2th Z2VOYW1lLEpBUmZpbGU+LCB3aGljaCBzaG91bGQgYmUgdXBkYXRlZCBlYWNoIHRpbWUgdGhlCj4+ Pj4+IG5ldwo+Pj4+PiA+Pj4+PiA+PiAqcGFja2FnZSogaXMgaW50cm9kdWNlZC4gSSdtIG5vdCB0 YWxraW5nIGFib3V0IGphdmEuKiBwYWNrYWdlcwo+Pj4+PiA+Pj4+PiA+PiAodGhleSdyZSBzdGFu ZGFyZGl6ZWQpLCByYXRoZXIgYWJvdXQgb3JnLmFwYWNoZS5oYXJtb255LiouCj4+Pj4+ID4+Pj4+ ID4+Cj4+Pj4+ID4+Pj4+ID4+IEF1dG9tYXRpYyBnZW5lcmF0aW9uIG9mIHRoaXMgcHJvcGVydHkg ZmlsZSBnaXZlcyB0d28gYWR2YW50YWdlczoKPj4+Pj4gPj4+Pj4gPj4gIDEuIEVycm9yLXByb25l LiBQcmV2ZW50IHlvdXJzZWxmIGZyb20gaGFuZC1tZXNzaW5nIHdpdGggbWFwcGluZwo+Pj4+PiBh bmQKPj4+Pj4gPj4+Pj4gPj4gZ2V0dGluZyBzcHVyaW91cyBDbGFzc05vdEZvdW5kRXhjZXB0aW9u LiBCVFcsIHdoYXQncyB0aGUgYmVoYXZpb3VyCj4+Pj4+IGluCj4+Pj4+ID4+Pj4+ID4+IGNhc2Ug dGhlIG1hcHBpbmcgaXMgd3Jvbmc/Cj4+Pj4+ID4+Pj4+ID4+ICAyLiAiUmVzZWFyY2hmdWwiLiBU aGVyZSdyZSBsb3Qgb2YgZ3V5cyBhcm91bmQgd2hvIGVuam95cyB0aGUKPj4+Pj4gPj4+Pj4gPj4g bW9kdWxhcml0eSBvZiBIYXJtb255IGNsYXNzbGliIGFuZCBldmVudHVhbGx5IHRoZXkgbWlnaHQg d2FudCB0bwo+Pj4+PiBzcGxpdAo+Pj4+PiA+Pj4+PiA+PiB0aGUgcGFja2FnZXMgZXZlbiBkZWVw ZXIsIGludG8gc21hbGxlciBwaWVjZXMuIFRoZW4gYXV0b21hdGljCj4+Pj4+ID4+Pj4+ID4+IGdl bmVyYXRpb24gd291bGQgZW5hYmxlIHRoZW0gdG8gcXVpY2tseSByb2xsLWluIGFuZCBleHBlcmlt ZW50Cj4+Pj4+IHdpdGgKPj4+Pj4gPj4+Pj4gPj4gZGlmZmVyZW50IHBhY2thZ2UgbGF5b3V0cyBh bmQgdGhlaXIgaW1wYWN0IG9uIHBlcmZvcm1hbmNlLiBUaGV5Cj4+Pj4+IGNvdWxkCj4+Pj4+ID4+ Pj4+ID4+IHVzZSBvcmRpbmFyeSBib290Y2xhc3NwYXRoLnByb3BlcnRpZXMsIGJ1dCB5b3VyIGZl YXR1cmUgd291bGRuJ3QKPj4+Pj4gYmUKPj4+Pj4gPj4+Pj4gPj4gdXNlZCBieSB0aGVtIHRoZW4g OykKPj4+Pj4gPj4+Pj4gPj4KPj4+Pj4gPj4+Pj4gPj4gVGhhdCdzIG1lcmVseSBhIGhvdXNla2Vl cGluZyBwcm9jZWR1cmUuIEkgYmVsaWV2ZSB0aGF0IGFueXRoaW5nCj4+Pj4+IHdoaWNoCj4+Pj4+ ID4+Pj4+ID4+IGNvdWxkIGJlIGRvbmUgbW9yZSB0aGFuIG9uY2UsIGV2ZW50dWFsbHkgd291bGQg YmUgZG9uZSBtb3JlIHRoYW4KPj4+Pj4gb25jZS4KPj4+Pj4gPj4+Pj4gPj4gSGVuY2UgaXQgc2hv dWxkIGJlIGF1dG9tYXRlZC4gWW91IHNheSB0aGF0IHRoZSBmaWxlIHdhcyBnZW5lcmF0ZWQKPj4+ Pj4gZnJvbQo+Pj4+PiA+Pj4+PiA+PiBtYW5pZmVzdHMgb2YgSkFScywgc28gaXMgaXQgaGFyZCB0 byBqdXN0IHRpZSB0aGUgc2FtZSB0b29sIGludG8KPj4+Pj4gRFJMVk0KPj4+Pj4gPj4+Pj4gPj4g YnVpbGQgcHJvY2Vzcz8KPj4+Pj4gPj4+Pj4gPj4KPj4+Pj4gPj4+Pj4gPj4gQXMgZm9yIERSTFZN LXNwZWNpZmljLCBteSBvcGluaW9uIHRoYXQgdGhpcyBpcyBiZWNhdXNlIHRoZSBwYXRjaDoKPj4+ Pj4gPj4+Pj4gPj4gIGEuIGJyZWFrcyB0aGUgY29tcGF0aWJpbGl0eSBvZiBjbGFzc2xpYiAoeW91 IGNoYW5nZQo+Pj4+PiA+Pj4+PiA+PiBib290Y2xhc3NwYXRoLnByb3BlcnRpZXMsIHJpZ2h0Pykg d2l0aCBvdGhlciBWTXMuCj4+Pj4+ID4+Pj4+ID4+ICBiLiB0cmVhdGVkIGluIERSTFZNIGNsYXNz bG9hZGVyIG9ubHkuCj4+Pj4+ID4+Pj4+ID4+Cj4+Pj4+ID4+Pj4+ID4+IE9mIGNvdXJzZSBldmVu dHVhbGx5IHRoaXMgZmVhdHVyZSBtaWdodCBiZSB1c2VkIGJ5IG90aGVycywgYnV0IElNTwo+Pj4+ PiB3ZQo+Pj4+PiA+Pj4+PiA+PiBzaG91bGQgYmUgY2FyZWZ1bCBhYm91dCBvdGhlciBndXlzIHdo byB1c2UgdGhlIHNhbWUgY2xhc3NsaWIuIEknZAo+Pj4+PiA+Pj4+PiA+PiByYXRoZXIgd2FpdCBm b3Igc29tZSBpbmN1YmF0aW9uIG9uIERSTFZNIHNpZGUgZmlyc3QuCj4+Pj4+ID4+Pj4+ID4+Cj4+ Pj4+ID4+Pj4+ID4+IFRoYW5rcywKPj4+Pj4gPj4+Pj4gPj4gQWxla3NleS4KPj4+Pj4gPj4+Pj4g Pj4KPj4+Pj4gPj4+Pj4gPj4gT24gVGh1LCBEZWMgMjUsIDIwMDggYXQgNjoxOCBQTSwgV2VubG9u ZyBMaSA8d2VubG9uZ0BnbWFpbC5jb20+Cj4+Pj4+IHdyb3RlOgo+Pj4+PiA+Pj4+PiA+Pj4gSSBz ZWUuIEluIGZhY3QsIG15IGZpbGUgZG9lc24ndCBuZWVkIHRyYWNrIGNoYW5nZSBhdCB0aGUgY2xh c3MKPj4+Pj4gPj4+Pj4gPj4+IGdyYW51bGFyaXR5LiBJbnN0ZWFkLCBpdCBvbmx5IG5lZWRzIGtu b3cgcGFja2FnZSBpbmZvIHByb3ZpZGVkIGluCj4+Pj4+IHRoZQo+Pj4+PiA+Pj4+PiA+Pj4gbWFu aWZlc3QgZmlsZS4gIFdoZW4gY2xhc3MgaXMgYWRkZWQgdG8gYSBsaWJyYXJ5LCBkbyB3ZSBuZWVk Cj4+Pj4+IGNoYW5nZQo+Pj4+PiA+Pj4+PiA+Pj4gdGhlIG1hbmlmZXN0IGFzIHdlbGw/Cj4+Pj4+ ID4+Pj4+ID4+Pgo+Pj4+PiA+Pj4+PiA+Pj4gYnR3LCBJIGd1ZXNzIHRoZXJlIGlzIGEgbWlzLXVu ZGVyc3RhbmRpbmc6IG15Cj4+Pj4+IG1vZHVsZWxpYnJhcnltYXBwaW5nCj4+Pj4+ID4+Pj4+ID4+ PiBmaWxlIG9ubHkgcmVjb3JkcyBwYWNrYWdlIGluZm8gcHJvdmlkZWQgYnkgbWFuZmllc3QgaW4g ZWFjaAo+Pj4+PiBtb2R1bGUuIEl0Cj4+Pj4+ID4+Pj4+ID4+PiBkb2Vzbid0IHJlbGF0ZSB0byBl YWNoIGNsYXNzLgo+Pj4+PiA+Pj4+PiA+Pj4KPj4+Pj4gPj4+Pj4gPj4+IHRoeCwKPj4+Pj4gPj4+ Pj4gPj4+IFdlbmxvbmcKPj4+Pj4gPj4+Pj4gPj4+Cj4+Pj4+ID4+Pj4+ID4+PiBPbiBUaHUsIERl YyAyNSwgMjAwOCBhdCAxMDo1NSBQTSwgUGF2ZWwgUGVydm92IDwKPj4+Pj4gcG1jZmlyc3RAZ21h aWwuY29tPgo+Pj4+PiA+Pj4+PiB3cm90ZToKPj4+Pj4gPj4+Pj4gPj4+PiBDbGFzc2VzIGFyZSBh ZGRlZCB0byBjbGFzcyBsaWJyYXJ5IGZyb20gdGltZSB0byB0aW1lLiBJJ20gbm90Cj4+Pj4+IHN1 cmUgaG93Cj4+Pj4+ID4+Pj4+ID4+Pj4gaXQgY2FuIGJlIHBvc3NpYmxlIHRvIHRyYWNrIHRoZXNl IGNoYW5nZXMgbWFudWFsbHkuCj4+Pj4+ID4+Pj4+ID4+Pj4KPj4+Pj4gPj4+Pj4gPj4+PiBXQlIs Cj4+Pj4+ID4+Pj4+ID4+Pj4gICAgUGF2ZWwuCj4+Pj4+ID4+Pj4+ID4+Pj4KPj4+Pj4gPj4+Pj4g Pj4+Pgo+Pj4+PiA+Pj4+PiA+Pj4+IE9uIFRodSwgRGVjIDI1LCAyMDA4IGF0IDU6MDkgUE0sIFdl bmxvbmcgTGkgPHdlbmxvbmdAZ21haWwuY29tPgo+Pj4+PiA+Pj4+PiB3cm90ZToKPj4+Pj4gPj4+ Pj4gPj4+Pj4gU29ycnksIG9uZSBtb3JlIHF1ZXN0aW9uOiBib290Y2xhc3NwYXRoLnByb3BlcnRp ZXMgaXMgY2xhc3NsaWIKPj4+Pj4gPj4+Pj4gPj4+Pj4gc3BlY2lmaWMgZmlsZSwgd2h5IHdlIGNv dWxkIG5vdCBtYWtlIGEgdm0gc3BlY2lmaWMgZmlsZQo+Pj4+PiBtYW51YWxseT8KPj4+Pj4gPj4+ Pj4gSnVzdAo+Pj4+PiA+Pj4+PiA+Pj4+PiBjdXJpb3VzIHRvIGtub3cgdGhlIHBvc3NpYmxlIHJl YXNvbi4gOikKPj4+Pj4gPj4+Pj4gPj4+Pj4KPj4+Pj4gPj4+Pj4gPj4+Pj4gdGh4LAo+Pj4+PiA+ Pj4+PiA+Pj4+PiBXZW5sb25nCj4+Pj4+ID4+Pj4+ID4+Pj4+Cj4+Pj4+ID4+Pj4+ID4+Pj4+IE9u IFRodSwgRGVjIDI1LCAyMDA4IGF0IDEwOjAwIFBNLCBQYXZlbCBQZXJ2b3YgPAo+Pj4+PiBwbWNm aXJzdEBnbWFpbC5jb20+Cj4+Pj4+ID4+Pj4+IHdyb3RlOgo+Pj4+PiA+Pj4+PiA+Pj4+Pj4gSWYg dGhpcyB3b3VsZCBiZSBWTS1zaWRlIGF1dG9tYXRpY2FsbHkgcHJvZHVjZWQgY29uZmlndXJhdGlv bgo+Pj4+PiA+Pj4+PiBmaWxlLi4uCj4+Pj4+ID4+Pj4+ID4+Pj4+Pgo+Pj4+PiA+Pj4+PiA+Pj4+ Pj4gV0JSLAo+Pj4+PiA+Pj4+PiA+Pj4+Pj4gICAgUGF2ZWwuCj4+Pj4+ID4+Pj4+ID4+Pj4+Pgo+ Pj4+PiA+Pj4+PiA+Pj4+Pj4gT24gVGh1LCBEZWMgMjUsIDIwMDggYXQgNDo1OCBQTSwgV2VubG9u ZyBMaSA8Cj4+Pj4+IHdlbmxvbmdAZ21haWwuY29tPgo+Pj4+PiA+Pj4+PiB3cm90ZToKPj4+Pj4g Pj4+Pj4gPj4+Pj4+PiBidHcsIGJlY2F1c2UgYWRkaW5nIG5ldyBtb2R1bGUgaXMgcmFyZSBjYXNl LCBtYW51YWxseQo+Pj4+PiBtb2RpZnlpbmcgdGhlCj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4gYm9vdGNs YXNzcGF0aC5wcm9wZXJ0aWVzIGlzIG5vdCBhbiBpc3N1ZT8KPj4+Pj4gPj4+Pj4gPj4+Pj4+Pgo+ Pj4+PiA+Pj4+PiA+Pj4+Pj4+IElmIHNvLCBjYW4gSSBjb25jbHVkZSBhZGRpbmcgYW5vdGhlciBw cm9wZXJ0eSBmaWxlIHdpdGggc2FtZQo+Pj4+PiB1cGRhdGUKPj4+Pj4gPj4+Pj4gPj4+Pj4+PiBm cmVxdWVuY3kgYXMgYm9vdGNsYXNzcGF0aCB3b3VsZCBiZSBmaW5lIGFzIHdlbGw/Cj4+Pj4+ID4+ Pj4+ID4+Pj4+Pj4KPj4+Pj4gPj4+Pj4gPj4+Pj4+PiBQbHMga2luZGx5IGNvcnJlY3QgbWUgaWYg bXkgdW5kZXJzdGFuZGluZyBpcyB3cm9uZy4KPj4+Pj4gPj4+Pj4gPj4+Pj4+Pgo+Pj4+PiA+Pj4+ PiA+Pj4+Pj4+IE9uIFRodSwgRGVjIDI1LCAyMDA4IGF0IDk6MDUgUE0sIFBhdmVsIFBlcnZvdiA8 Cj4+Pj4+IHBtY2ZpcnN0QGdtYWlsLmNvbT4KPj4+Pj4gPj4+Pj4gd3JvdGU6Cj4+Pj4+ID4+Pj4+ ID4+Pj4+Pj4+IFdlbmxvbmcsCj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Cj4+Pj4+ID4+Pj4+ID4+Pj4+ Pj4+IE5vdGUsIHRoYXQgYm9vdGNsYXNzcGF0aC5wcm9wZXJ0aWVzIGlzIG9ubHkgY2hhbmdlZCBv bgo+Pj4+PiBhZGRpbmcgbmV3Cj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+IG1vZHVsZS4gVGhpcyBpcyBw cmV0dHkgcmFyZSBvY2Nhc2lvbiwgSSBiZWxpZXZlLgo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pgo+Pj4+ PiA+Pj4+PiA+Pj4+Pj4+PiBXQlIsCj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+ICAgIFBhdmVsLgo+Pj4+ PiA+Pj4+PiA+Pj4+Pj4+Pgo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+PiBPbiBUaHUsIERlYyAyNSwgMjAw OCBhdCAzOjQ4IFBNLCBXZW5sb25nIExpIDwKPj4+Pj4gd2VubG9uZ0BnbWFpbC5jb20+Cj4+Pj4+ ID4+Pj4+IHdyb3RlOgo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4gVGh4IGZvciB5b3VyIGFkdmljZS4g QWxleGV5Lgo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4KPj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+IEhlcmUg SSBoYXZlIG9uZSBxdWVzdGlvbjogZG8geW91IGtub3cgaG93IHRoZQo+Pj4+PiA+Pj4+PiBib290 Y2xhc3NwYXRoLnByb3BlcnRpZXMKPj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+IGlzIG1haW50YWluZWQs IG1hbnVhbGx5IG9yIGF1dG9tYXRpY2FsbHk/Cj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pgo+Pj4+PiA+ Pj4+PiA+Pj4+Pj4+Pj4gQW5vdGhlciBjb21tZW50IGlzIEkgd291bGQgbGlrZSB0byB0cmVhdCB0 aGUgcGF0Y2ggYXMgRFJMVk0KPj4+Pj4gPj4+Pj4gc3BlY2lmaWMKPj4+Pj4gPj4+Pj4gPj4+Pj4+ Pj4+IG9wdGltaXphdGlvbiwgZS5nLiwgaXQgdGFyZ2V0cyBmb3IgaW1wcm92aW5nIFZNIGNyZWF0 aW9uCj4+Pj4+IHRpbWUuIFNvCj4+Pj4+ID4+Pj4+IHRoYXQKPj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+ IGlzIHBvc3NpYmxlIHRvIG1vdmUgYWxsIHVwZGF0ZXMgdG8gRFJMVk0gcGFydCB0byBlbGltaW5h dGUKPj4+Pj4gPj4+Pj4gcG90ZW50aWFsCj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+PiBtb2R1bGFyaXR5 IGFuZCBjb21wYXRpYmlsaXR5IHByb2JsZW0uCj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pgo+Pj4+PiA+ Pj4+PiA+Pj4+Pj4+Pj4gdGh4LAo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4gV2VubG9uZwo+Pj4+PiA+ Pj4+PiA+Pj4+Pj4+Pj4KPj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+IE9uIFRodSwgRGVjIDI1LCAyMDA4 IGF0IDU6MzIgUE0sIEFsZWtzZXkgU2hpcGlsZXYKPj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+IDxhbGVr c2V5LnNoaXBpbGV2QGdtYWlsLmNvbT4gd3JvdGU6Cj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4gSGks IFdlbmxvbmcuCj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4KPj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+PiBP biBUaHUsIERlYyAyNSwgMjAwOCBhdCAxMTo0OSBBTSwgV2VubG9uZyBMaSA8Cj4+Pj4+IHdlbmxv bmdAZ21haWwuY29tPgo+Pj4+PiA+Pj4+PiB3cm90ZToKPj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+Pj4g YnR3LCBBbGV4ZXksIExldCdzIGdvIGJhY2sgdG8gZGlzY3VzcyB3aGV0aGVyIHRoZXJlIGlzIGEK Pj4+Pj4gbmVlZAo+Pj4+PiA+Pj4+PiB0bwo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4+PiBpbmNsdWRl IHRoaXMgZmVhdHVyZSBpbiBIYXJtb255LCBnaXZlbiAxNyUgcGVyZm9ybWFuY2UKPj4+Pj4gZ2Fp biBpbgo+Pj4+PiA+Pj4+PiBMaW51eAo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4+PiB3aGVuIHVzaW5n IHlvdXIgbWV0aG9kb2xvZ3kuIEZvciB3aW5kb3dzIHRlc3QsIEkgd2lsbAo+Pj4+PiBkb3VibGUK Pj4+Pj4gPj4+Pj4gY2hlY2sgdGhlCj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4+IGJhY2tncm91ZCBw cm9jZXNzIGFzIHlvdSBwb2ludGVkIG91dC4KPj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+Pgo+Pj4+PiA+ Pj4+PiA+Pj4+Pj4+Pj4+IE15IG9waW5pb24gd2FzIGFscmVhZHkgZXhwcmVzc2VkIGFmdGVyIEkg aGFkIGZpbmlzaGVkIHRoZQo+Pj4+PiB0ZXN0cwo+Pj4+PiA+Pj4+PiBmcm9tCj4+Pj4+ID4+Pj4+ ID4+Pj4+Pj4+Pj4gbXkgc2lkZTogdGhlIGJvb3N0IGNhbiBiZSBhY2hpZXZlZCBpbiBzcGVjaWZp YyBjb25kaXRpb25zLAo+Pj4+PiBzbwo+Pj4+PiA+Pj4+PiB3aGV0aGVyCj4+Pj4+ID4+Pj4+ID4+ Pj4+Pj4+Pj4gaXQncyB3b3J0aCBpbmNsdWRpbmcgaW50byBIYXJtb255IHJlYWxseSBkZXBlbmRz IG9uIGhvdwo+Pj4+PiBtdWNoCj4+Pj4+ID4+Pj4+IG1lc3MgdGhlCj4+Pj4+ID4+Pj4+ID4+Pj4+ Pj4+Pj4gcGF0Y2ggd291bGQgaW50cm9kdWNlIGJlc2lkZXMgdGhlICJwZXJmb3JtYW5jZSBib29z dCIuCj4+Pj4+IEZyb20gd2hhdAo+Pj4+PiA+Pj4+PiBJCj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4g c2VlLCB0aGUgcGF0Y2ggb2JsaWdlcyB0aGUgbWFpbnRhaW5lciB0byBtYWludGFpbiB0aGUKPj4+ Pj4gY29ycmVjdAo+Pj4+PiA+Pj4+PiBtYXBwaW5nCj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4gYmV0 d2VlbiBqYXJzIGFuZCBKYXZhIHBhY2thZ2VzLiBUaGlzIG5ldyBmZWF0dXJlIGlzIGFsc28KPj4+ Pj4gc3ByZWFkCj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4gYmV0d2VlbiBDbGFzc2xpYiBhbmQgVk0s IGJ1dCBpdCBzZWVtcyBsaWtlIERSTFZNIHNwZWNpZmljLgo+Pj4+PiBJbgo+Pj4+PiA+Pj4+PiB0 aGlzCj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4gY2FzZSBJIHdvdWxkIHJhdGhlciBzdGF5IHdpdGhv dXQgdGhlIHBhdGNoLgo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4+Cj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+ Pj4gUGVyc29uYWxseSAoaWYgSSdsbCBiZSBjb21taXR0ZXIpIEkgd291bGQgYWNjZXB0IHRoZSBw YXRjaAo+Pj4+PiB3aXRoCj4+Pj4+ID4+Pj4+IHR3bwo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4+IHNl cmlvdXMgbW9kaWZpY2F0aW9uczoKPj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+PiAgMS4gU3RheSB3aXRo aW4gRFJMVk0sIGRvIG5vdCBpbnRyb2R1Y2UgdGhpcyBmZWF0dXJlIGludG8KPj4+Pj4gPj4+Pj4g Q2xhc3NsaWIsCj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4gZ2V0IHRoZSB0aGluZyB0ZXN0ZWQgYW5k IGV2b2x2ZWQgb24gRFJMVk0gc2lkZS4gT3RoZXJ3aXNlCj4+Pj4+IGl0Cj4+Pj4+ID4+Pj4+IG1p Z2h0Cj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4gYnJlYWsgdGhlIGNvbXBhdGliaWxpdHkgd2l0aCBv dGhlciBWTXMuCj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4gIDIuIE1ha2UgdGhlIG1hcHBpbmcgZ2Vu ZXJhdGVkIGF1dG9tYXRpY2FsbHkgKGR1cmluZyBidWlsZAo+Pj4+PiA+Pj4+PiBwcm9jZXNzPykK Pj4+Pj4gPj4+Pj4gPj4+Pj4+Pj4+PiB0byBmcmVlIHRoZSBidXJkZW4gZm9yIG1haW50YWluZXJz Lgo+Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4+Cj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4gVGhhbmtzLAo+ Pj4+PiA+Pj4+PiA+Pj4+Pj4+Pj4+IEFsZWtzZXkuCj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Pj4KPj4+ Pj4gPj4+Pj4gPj4+Pj4+Pj4+Cj4+Pj4+ID4+Pj4+ID4+Pj4+Pj4+Cj4+Pj4+ID4+Pj4+ID4+Pj4+ Pj4KPj4+Pj4gPj4+Pj4gPj4+Pj4+Cj4+Pj4+ID4+Pj4+ID4+Pj4+Cj4+Pj4+ID4+Pj4+ID4+Pj4K Pj4+Pj4gPj4+Pj4gPj4+Cj4+Pj4+ID4+Pj4+ID4+Cj4+Pj4+ID4+Pj4+ID4KPj4+Pj4gPj4+Pj4g Pgo+Pj4+PiA+Pj4+PiA+Cj4+Pj4+ID4+Pj4+ID4gLS0KPj4+Pj4gPj4+Pj4gPiDQoSDRg9Cy0LDQ ttC10L3QuNC10LwsCj4+Pj4+ID4+Pj4+ID4g0JDQu9C10LrRgdC10Lkg0KTQtdC00L7RgtC+0LIs Cj4+Pj4+ID4+Pj4+ID4g0JfQkNCeIMKr0KLQtdC70LXQutC+0Lwg0K3QutGB0L/RgNC10YHRgcK7 Cj4+Pj4+ID4+Pj4+ID4KPj4+Pj4gPj4+Pj4KPj4+Pj4gPj4+Pj4KPj4+Pj4gPj4+Pj4KPj4+Pj4g Pj4+Pj4gLS0KPj4+Pj4gPj4+Pj4gaHR0cDovL3hpYW8tZmVuZy5ibG9nc3BvdC5jb20KPj4+Pj4g Pj4+Pj4KPj4+Pj4gPj4+Pgo+Pj4+PiA+Pj4+Cj4+Pj4+ID4+Pj4KPj4+Pj4gPj4+PiAtLQo+Pj4+ PiA+Pj4+INChINGD0LLQsNC20LXQvdC40LXQvCwKPj4+Pj4gPj4+PiDQkNC70LXQutGB0LXQuSDQ pNC10LTQvtGC0L7QsiwKPj4+Pj4gPj4+PiDQl9CQ0J4gwqvQotC10LvQtdC60L7QvCDQrdC60YHQ v9GA0LXRgdGBwrsKPj4+Pj4gPj4+Pgo+Pj4+PiA+Pj4KPj4+Pj4gPj4+Cj4+Pj4+ID4+Pgo+Pj4+ PiA+Pj4gLS0KPj4+Pj4gPj4+IGh0dHA6Ly94aWFvLWZlbmcuYmxvZ3Nwb3QuY29tCj4+Pj4+ID4+ Pgo+Pj4+PiA+Pgo+Pj4+PiA+Pgo+Pj4+PiA+Pgo+Pj4+PiA+PiAtLQo+Pj4+PiA+PiDQoSDRg9Cy 0LDQttC10L3QuNC10LwsCj4+Pj4+ID4+INCQ0LvQtdC60YHQtdC5INCk0LXQtNC+0YLQvtCyLAo+ Pj4+PiA+PiDQl9CQ0J4gwqvQotC10LvQtdC60L7QvCDQrdC60YHQv9GA0LXRgdGBwrsKPj4+Pj4g Pj4KPj4+Pj4gPgo+Pj4+PiA+Cj4+Pj4+ID4KPj4+Pj4gPiAtLQo+Pj4+PiA+IGh0dHA6Ly94aWFv LWZlbmcuYmxvZ3Nwb3QuY29tCj4+Pj4+ID4KPj4+Pj4KPj4+Pgo+Pj4+Cj4+Pj4KPj4+PiAtLQo+ Pj4+INChINGD0LLQsNC20LXQvdC40LXQvCwKPj4+PiDQkNC70LXQutGB0LXQuSDQpNC10LTQvtGC 0L7QsiwKPj4+PiDQl9CQ0J4gwqvQotC10LvQtdC60L7QvCDQrdC60YHQv9GA0LXRgdGBwrsKPj4+ Pgo+Pj4KPj4KPgo=