Re: [rvm-research] Separation of Spaces
Johannes Sinsel <[email protected]> Wed, 15 Jan 2020 18:02:06 +0100
| Newsgroups | gmane.comp.java.jikes.rvm.devel |
|---|---|
| Message-ID | <[email protected]> |
ID4gYnV0IHRoaXMgc291bmRzIGxpa2UgeW91J3JlIE9LIHdpdGggaGF2aW5nIGEgY29ycnVwdCBo ZWFwCgpUaGUgY29ycnVwdCBwYXJ0IHNob3VsZCBiZSB0b3RhbGx5IHNlcGFyYXRlZCBpZiBwb3Nz aWJsZSwgc28gdGhlIHJlc3Qgb2YgCnRoZSBoZWFwIGlzIG5vdCBhZmZlY3RlZC4gSSBrbm93IGl0 IGlzIG5vdCBiZXN0IHByYWN0aWNlLCBidXQgaWYgaXQgaXMgCmFjaGlldmFibGUsIGl0IHdvdWxk IGJlIGNvbnRyb2xsZWQgY29ycnVwdCA6RAoKID4gUGVyaGFwcyB5b3UgY291bGQgZWxhYm9yYXRl IGEgbGl0dGxlIG1vcmUgb24geW91ciB1c2UgY2FzZSA/CiA+IFdoZW4geW91IHNheSAic3BlY2lh bCBvYmplY3RzIiwgaW4gd2hhdCB3YXkgYXJlIHRoZXkgc3BlY2lhbCA/CgpBIEphdmEgQWdlbnQg Y3JlYXRlcyBvYmplY3RzIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMsIHRoZXNlIGFyZSBHQyByb290 IApyZWZlcmVuY2VkLCBidXQgZG9uJ3QgaGF2ZSBhbnkgcmVmZXJlbmNlcyB0byBvdGhlciBvYmpl Y3RzLiBJbiB0aGlzIHdheSAKdGhlcmUgc2hvdWxkIGJlIG5vIGNvbm5lY3Rpb24gYmV0d2VlbiB0 aGUgc3BhY2UgdGhleSBhcmUgYWxsb2NhdGVkIGluIAphbmQgdGhlIHJlc3Qgb2YgdGhlIGhlYXAu CgogPiBJZiB5b3UgcnVuIHdpdGggLVg6Z2M6dmVyYm9zZT0zIChvciBhYm92ZSkgeW91IHNob3Vs ZCBhdCBsZWFzdCBiZSAKYWJsZSB0byB0ZWxsIHdoZXRoZXIgaXQncyB0aGUgR0Mgb3IgdGhlIG11 dGF0b3IgdGhhdCdzIGNyYXNoaW5nLiAKLVg6Z2M6dmVyYm9zZT05IHdpbGwgaGVscCBuYXJyb3cg aXQgZG93biB0byBhIHBhcnRpY3VsYXIgR0MgcGhhc2UuCgogRnJvbSB0aGVzZSBvcHRpb25zIEkg Z290IHRoZSBpZGVhIHRoYXQgdGhlIGNyYXNoIGFsd2F5cyBoYXBwZW5zIGF0IGEgCmZ1bGwgaGVh cCBjb2xsZWN0aW9uLgpPbiAtWDpnYzp2ZXJib3NlPTksIGJlZm9yZSB0aGUgZXJyb3IgbWVzc2Fn ZSBJIGFkZGVkIGluIHRoZSBsYXN0IG1haWwsIAp0aGUgdGVybWluYWwgYWx3YXlzIHdyaXRlcyBz b21ldGhpbmcgbGlrZSB0aGlzOgoKRXhlY3V0ZSBTaW1wbGVQaGFzZShjbG9zdXJlKSBhcyBDb2xs ZWN0b3IuLi4KVGhyZWFkIDEwOsKgwqDCoMKgIFByb2Nlc3NpbmcgR0MgaW4gcGFyYWxsZWwKVGhy ZWFkIDEwOsKgwqDCoMKgIHByb2Nlc3NpbmcgZGVsYXllZCByb290IG9iamVjdHMKVGhyZWFkIDEw OsKgwqDCoMKgIHByb2Nlc3NpbmcgZ3JheSBvYmplY3RzCgpDYW4geW91IHRlbGwgbWUgd2hhdCBn cmF5IG9iamVjdHMgYXJlPwoKID4gVGhlIEhhcm5lc3MgZG9lc24ndCBydW4gcmVhbCBjb2RlOiBp dCBydW5zIGEgbWluaW1hbCBsYW5ndWFnZSAKZGVzaWduZWQgZm9yIGV4ZXJjaXNpbmcgTU1Uay7C oCBUaGVyZSdzIG5vdGhpbmcgc3RvcHBpbmcgeW91IHVzZSBpdCB0byAKd3JpdGUgYSB0ZXN0IGNh c2UgdGhhdCAoZm9yIGV4YW1wbGUpIGNyZWF0ZXMgdHdvIG9iamVjdHMsIG9uZSBpbiB0aGUgCidt YWluJyBzcGFjZSwgcG9pbnRpbmcgdG8gYSBzZWNvbmQgb2JqZWN0IGluIHlvdXIgUkJTcGFjZSwg dGhlbiBydW4gYSBHQyAKYW5kIHNhbml0eS1jaGVjayB0aGUgaGVhcC4KCk9rLCBJIHdpbGwgY2hl Y2ssIGlmIEkgY2FuIGNyZWF0ZSBzb21ldGhpbmcgdGhhdCBmaXRzIG15IGNvbmRpdGlvbnMuCgpU aGFua3MgZm9yIHlvdXIgcGF0aWVuY2UuCkJlc3QsCkpvaGFubmVzCgpPbiAxNS4wMS4yMCAwNTow MSwgUm9iaW4gR2FybmVyIHdyb3RlOgo+ID4gPsKgIEFuZCBJIGFzc3VtZSB5b3UgYXJlIGludGVy ZXN0ZWQgaW4gd2hpY2ggb2JqZWN0cyBhcmUgbGl2ZSwgc28gCj4gdGhhdCB5b3UgZG9uJ3Qgb3Zl cndyaXRlIGxpdmUgb2JqZWN0cyA/Cj4gPgo+ID4gSW4gZmFjdCBhdCB0aGlzIHBvaW50IEkgZG9u J3QgbmVlZCB0aGlzIGluZm9ybWF0aW9uLCBiZXN0IGNhc2UgZm9yIAo+IG1lIHdvdWxkIGJlIHRv IG5vdCBkZXRlcm1pbmUgdGhlaXIgbGl2ZWxpbmVzcyBhdCBhbGwuCj4KPiBPSywgcGVyaGFwcyBJ J20gbWlzc2luZyBzb21ldGhpbmcgaGVyZSwgYnV0IHRoaXMgc291bmRzIGxpa2UgeW91J3JlIE9L IAo+IHdpdGggaGF2aW5nIGEgY29ycnVwdCBoZWFwIC4uLsKgIEppa2VzIFJWTSB3aWxsIGJlIGxl c3MgaGFwcHkgOinCoCAKPiBQZXJoYXBzIHlvdSBjb3VsZCBlbGFib3JhdGUgYSBsaXR0bGUgbW9y ZSBvbiB5b3VyIHVzZSBjYXNlID8KPgo+IEJvdHRvbSBsaW5lLCBpZiB0aGVyZSBpcyBhIHJlZmVy ZW5jZSBmcm9tIGEgbGl2ZSBKYXZhIG9iamVjdCB0byBhbiAKPiBvYmplY3QgaW4geW91ciBzcGFj ZSwgeW91IG5lZWQgdG8gZW5zdXJlIGl0IGlzIGFsaXZlLCBhbmQgdGhhdCB0aGUgCj4gdHJhbnNp dGl2ZSBjbG9zdXJlIG9mIHRoZSBvYmplY3RzIGl0IHJlZmVycyB0byBhcmUgYWxzbyBrZXB0IGFs aXZlLgo+Cj4gPiA+IHdoZXJlIGRvZXMgdGhlIFZNIGNyYXNoID/CoCBEbyB5b3UgaGF2ZSBhIHN0 YWNrIHRyYWNlID8KPiA+Cj4gPiBVbmZvcnR1bmF0ZWx5IEkgY2FuJ3QgZ2V0IGEgc3RhY2sgdHJh Y2UsIEkgdGhpbmsgdGhpcyBpcyBkdWUgdG8gdGhlIAo+IGF0dGVtcHQgdG8gdHJhY2UgYW4gb2Jq ZWN0IHRoYXQgd2FzIGFscmVhZHkgb3ZlcndyaXR0ZW4uIFRoZSB0ZXJtaW5hbCAKPiBvdXRwdXQg aXMgc29tZXRoaW5nIGxpa2UgdGhpczoKPgo+IElmIHlvdSBydW4gd2l0aCAtWDpnYzp2ZXJib3Nl PTMgKG9yIGFib3ZlKSB5b3Ugc2hvdWxkIGF0IGxlYXN0IGJlIGFibGUgCj4gdG8gdGVsbCB3aGV0 aGVyIGl0J3MgdGhlIEdDIG9yIHRoZSBtdXRhdG9yIHRoYXQncyBjcmFzaGluZy4gCj4gLVg6Z2M6 dmVyYm9zZT05IHdpbGwgaGVscCBuYXJyb3cgaXQgZG93biB0byBhIHBhcnRpY3VsYXIgR0MgcGhh c2UuCj4KPiA+ID4gQ2FuIHlvdSByZXByb2R1Y2UgdGhpcyBpbiB0aGUgTU1UayBoYXJuZXNzID8K PiA+Cj4gPiBUaGUgInNwZWNpYWwgb2JqZWN0cyIgdGhhdCBhcmUgYWxsb2NhdGVkIGluIHRoZSBS QlNwYWNlIGFyZSBjcmVhdGVkIAo+IGJ5IGEgSmF2YSBBZ2VudCwgc28gaXQgaXMgZGlmZmljdWx0 IGZvciBtZSB0byB1c2UgdGhlIGhhcm5lc3MgZm9yIAo+IGRlYnVnZ2luZy4KPgo+IFRoZSBIYXJu ZXNzIGRvZXNuJ3QgcnVuIHJlYWwgY29kZTogaXQgcnVucyBhIG1pbmltYWwgbGFuZ3VhZ2UgZGVz aWduZWQgCj4gZm9yIGV4ZXJjaXNpbmcgTU1Uay7CoCBUaGVyZSdzIG5vdGhpbmcgc3RvcHBpbmcg eW91IHVzZSBpdCB0byB3cml0ZSBhIAo+IHRlc3QgY2FzZSB0aGF0IChmb3IgZXhhbXBsZSkgY3Jl YXRlcyB0d28gb2JqZWN0cywgb25lIGluIHRoZSAnbWFpbicgCj4gc3BhY2UsIHBvaW50aW5nIHRv IGEgc2Vjb25kIG9iamVjdCBpbiB5b3VyIFJCU3BhY2UsIHRoZW4gcnVuIGEgR0MgYW5kIAo+IHNh bml0eS1jaGVjayB0aGUgaGVhcC4KPgo+IFdoZW4geW91IHNheSAic3BlY2lhbCBvYmplY3RzIiwg aW4gd2hhdCB3YXkgYXJlIHRoZXkgc3BlY2lhbCA/IEZyb20gCj4gdGhlIEpWTSdzIHBvaW50IG9m IHZpZXcsIGFueSBvYmplY3QgY3JlYXRlZCB2aWEgJ25ldycgaXMgcHJldHR5IG11Y2ggCj4gdGhl IHNhbWUgYXMgYW55IG90aGVyLgo+Cj4KPiBjaGVlcnMsCj4gUm9iaW4KPgo+IE9uIDE1LzEvMjAg MjoyNSBhbSwgSm9oYW5uZXMgU2luc2VsIHdyb3RlOgo+PiA+IFRoaXMgc291bmRzIGxpa2UgeW91 ciBwcm9ibGVtLiAiR2FyYmFnZSBDb2xsZWN0aW9uIiBpc24ndCBhIHZlcnkgCj4+IHByZWNpc2Ug dGVybSB3aGVuIHdlIGdldCBkb3duIHRvIHRoaXMgbGV2ZWwgb2YgZGV0YWlsIDopCj4+Cj4+IFNv cnJ5IGZvciB0aGUgdmFndWUgdGVybSA6RAo+Pgo+PiA+wqAgQW5kIEkgYXNzdW1lIHlvdSBhcmUg aW50ZXJlc3RlZCBpbiB3aGljaCBvYmplY3RzIGFyZSBsaXZlLCBzbyB0aGF0IAo+PiB5b3UgZG9u J3Qgb3ZlcndyaXRlIGxpdmUgb2JqZWN0cyA/Cj4+Cj4+IEluIGZhY3QgYXQgdGhpcyBwb2ludCBJ IGRvbid0IG5lZWQgdGhpcyBpbmZvcm1hdGlvbiwgYmVzdCBjYXNlIGZvciBtZSAKPj4gd291bGQg YmUgdG8gbm90IGRldGVybWluZSB0aGVpciBsaXZlbGluZXNzIGF0IGFsbC4KPj4KPj4gPiB3aGVy ZSBkb2VzIHRoZSBWTSBjcmFzaCA/wqAgRG8geW91IGhhdmUgYSBzdGFjayB0cmFjZSA/Cj4+Cj4+ IFVuZm9ydHVuYXRlbHkgSSBjYW4ndCBnZXQgYSBzdGFjayB0cmFjZSwgSSB0aGluayB0aGlzIGlz IGR1ZSB0byB0aGUgCj4+IGF0dGVtcHQgdG8gdHJhY2UgYW4gb2JqZWN0IHRoYXQgd2FzIGFscmVh ZHkgb3ZlcndyaXR0ZW4uIFRoZSB0ZXJtaW5hbCAKPj4gb3V0cHV0IGlzIHNvbWV0aGluZyBsaWtl IHRoaXM6Cj4+Cj4+IEppa2VzUlZNOiBGYWlsaW5nIGluc3RydWN0aW9uIHN0YXJ0aW5nIGF0IDAg d2Fzbid0IGluIFJWTSBhZGRyZXNzIHNwYWNlCj4+IEppa2VzUlZNOiB1bmV4cGVjdGVkIGhhcmR3 YXJlIHRyYXAgb3V0c2lkZSBvZiBSVk0gYWRkcmVzcyBzcGFjZSAtIAo+PiAobmlsKSAweGUwMGZm YzM3Mjk4Cj4+IGZhdWx0IGFkZHJlc3MgKG5pbCkKPj4gZWlwwqDCoMKgwqDCoMKgwqDCoMKgwqAg KG5pbCkKPj4gZWF4IChUMCnCoMKgwqDCoMKgIDB4ZTAwZmZmNWNlMjAKPj4gZWJ4IChjdHJzKcKg wqDCoCAweGUwMGZmZjVjZTIwCj4+IGVjeCAoUzApwqDCoMKgwqDCoCAweGMKPj4gZWR4IChUMSnC oMKgwqDCoMKgIDB4ZTAwZmZjMTg5ZTgKPj4gZXNpIChUUinCoMKgwqDCoMKgIDB4ZTAwZmZjMzcy OTgKPj4gZWRpIChTMSnCoMKgwqDCoMKgIDB4ZTAwZmZmNTk1NzgKPj4gZWJwwqDCoMKgwqDCoMKg wqDCoMKgwqAgMHgzMAo+PiBlc3AgKFNQKcKgwqDCoMKgwqAgMHhhMDBmZmQzMGJiOAo+PiByOMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgMHhkYTcKPj4gcjnCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDB4 MQo+PiByMTDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobmlsKQo+PiByMTHCoMKgwqDCoMKgwqDCoMKg wqDCoCAweDIwNgo+PiByMTLCoMKgwqDCoMKgwqDCoMKgwqDCoCAweGEwMGZmZDMxMDA4Cj4+IHIx M8KgwqDCoMKgwqDCoMKgwqDCoMKgIDB4MjAwMDI5ZjJjMzgKPj4gcjE0wqDCoMKgwqDCoMKgwqDC oMKgwqAgMHhlMDBmZmMzNzI5OAo+PiByMTXCoMKgwqDCoMKgwqDCoMKgwqDCoCAweDIwMDAwMDgw NTEwCj4+IGNzLCBncywgZnPCoMKgwqAgMHgyYjAwMDAwMDAwMDAzMwo+PiB0cmFwbm/CoMKgwqDC oMKgwqDCoCAweDAwMDAwMDBlCj4+IGVycsKgwqDCoMKgwqDCoMKgwqDCoMKgIDB4MDAwMDAwMTQK Pj4gZWZsYWdzwqDCoMKgwqDCoMKgwqAgMHgwMDAxMDIwNwo+PiBmcHJlZ3PCoMKgwqDCoMKgwqDC oCAweDdmZDQ1ODAwNDZjMAo+PiBhdHRlbXB0aW5nIHRvIGR1bXAgcHJvYyBtYXAgLi4uCj4+Cj4+ ID4gQ2FuIHlvdSByZXByb2R1Y2UgdGhpcyBpbiB0aGUgTU1UayBoYXJuZXNzID8KPj4KPj4gVGhl ICJzcGVjaWFsIG9iamVjdHMiIHRoYXQgYXJlIGFsbG9jYXRlZCBpbiB0aGUgUkJTcGFjZSBhcmUg Y3JlYXRlZCAKPj4gYnkgYSBKYXZhIEFnZW50LCBzbyBpdCBpcyBkaWZmaWN1bHQgZm9yIG1lIHRv IHVzZSB0aGUgaGFybmVzcyBmb3IgCj4+IGRlYnVnZ2luZy4KPj4KPj4gPiBJJ20gZ3Vlc3Npbmcg bWF5YmUgeW91J3ZlIG1pc3NlZCBhbiBvY2N1cnJlbmNlIG9mIGltbW9ydGFsU3BhY2Ugb3IgCj4+ IGl0cyBwZXItdGhyZWFkIGNvbXBvbmVudHMgPwo+PiA+IEFub3RoZXIgZGVidWdnaW5nIGFwcHJv YWNoIHdvdWxkIGJlIHRvIGFkZCBhbiB1bm1vZGlmaWVkIHZlcnNpb24gb2YgCj4+IEltbW9ydGFs U3BhY2UgdG8gdGhlIHBsYW4gaW4gcGxhY2Ugb2YgeW91ciBtb2RpZmllZCBzcGFjZS7CoCBPbmNl IHlvdSAKPj4gY2FuIHZlcmlmeSB0aGF0IG9iamVjdHMgYXJlIGJlaW5nIGFsbG9jYXRlZCBhbmQg ImNvbGxlY3RlZCIgaW4gdGhlIAo+PiB1bm1vZGlmaWVkIHNwYWNlLCB5b3UnbGwga25vdyB3aGV0 aGVyIHRoZSBpbnRlZ3JhdGlvbiBvZiB0aGUgc3BhY2UgaXMgCj4+IGNvcnJlY3QsIGFuZCBjYW4g dGhlbiB0dXJuIHRvIGRlYnVnZ2luZyB5b3VyIG5ldyBzcGFjZS4KPj4gPiBBbHNvLCB3aGlsZSBJ J20gYXdhcmUgeW91J3ZlIG1vZGlmaWVkIHRoZSBiYXNlIHBsYW4gY2xhc3NlcywgY2hvaWNlIAo+ PiBvZiBjb2xsZWN0b3IgZm9yIGRlYnVnZ2luZyBpcyBxdWl0ZSBpbXBvcnRhbnQuIEkgd291bGQg c3RhcnQgCj4+IGRlYnVnZ2luZyB3aXRoIE1hcmtTd2VlcCwgdGhlbiBtb3ZlIHRvIFNlbWlTcGFj ZSwgSW1taXggYW5kIAo+PiBldmVudHVhbGx5IHRvIENvcHlNUyBhbmQgdGhlbiB0aGUgZ2VuZXJh dGlvbmFsIGNvbGxlY3RvcnMuCj4+Cj4+IEknbSBxdWl0ZSBzdXJlIHRoZSBzcGFjZSBpcyB3b3Jr aW5nIGluIGNvbWJpbmF0aW9uIHdpdGggYWxsIAo+PiBjb2xsZWN0b3JzLCBJIHZlcmlmaWVkIHRo aXMgd2l0aCBhIHNpbXBsZSB0ZXN0IGNsYXNzIGFuZCAKPj4gVk0uYXNzZXJ0aW9ucy5mYWlsKCkg Y29uZGl0aW9ucyBpbiB0aGUgUkJTcGFjZS4KPj4KPj4gVGhhbmtzIGFnYWluIQo+PiBCZXN0LAo+ PiBKb2hhbm5lcwo+Pgo+PiBPbiAxNC4wMS4yMCAwMDo1MywgUm9iaW4gR2FybmVyIHdyb3RlOgo+ Pj4gPiBJIGFzc3VtZWQgdGhhdCB0aGVyZSBpcyBubyBnYXJiYWdlIGNvbGxlY3Rpb24gaW4gYW4g aW1tb3J0YWwgc3BhY2UgCj4+PiBpbiB0aGUgZmlyc3QgcGxhY2UgYW5kIHRoZXJlZm9yZSBhbHNv IG5vIHRyYWNpbmcgc2luY2Ugb2JqZWN0cyBhcmUgCj4+PiBhbHdheXMgbGl2ZS4KPj4+Cj4+PiBU aGlzIHNvdW5kcyBsaWtlIHlvdXIgcHJvYmxlbS7CoCAiR2FyYmFnZSBDb2xsZWN0aW9uIiBpc24n dCBhIHZlcnkgCj4+PiBwcmVjaXNlIHRlcm0gd2hlbiB3ZSBnZXQgZG93biB0byB0aGlzIGxldmVs IG9mIGRldGFpbCA6KQo+Pj4KPj4+IEl0J3MgdHJ1ZSB0aGF0IG9iamVjdHMgaW4gYW4gaW1tb3J0 YWwgc3BhY2UgYXJlIG5ldmVyIHJlY2xhaW1lZCwgYnV0IAo+Pj4gdGhleSBkbyBwYXJ0aWNpcGF0 ZSBpbiB0aGUgdHJhbnNpdGl2ZSBjbG9zdXJlIG9wZXJhdGlvbi4gQW5kIEkgCj4+PiBhc3N1bWUg eW91IGFyZSBpbnRlcmVzdGVkIGluIHdoaWNoIG9iamVjdHMgYXJlIGxpdmUsIHNvIHRoYXQgeW91 IAo+Pj4gZG9uJ3Qgb3ZlcndyaXRlIGxpdmUgb2JqZWN0cyA/Cj4+Pgo+Pj4KPj4+ID4gSSBhZGRl ZCBhIG1vZGlmaWVkIHZlcnNpb24gb2YgYW4gSW1tb3J0YWxTcGFjZSAoY2FsbGVkIFJCU3BhY2Us IAo+Pj4gc2hvcnQgZm9yIFJpbmdCdWZmZXJTcGFjZSkgdG8gdGhlIHJlZ3VsYXIgb25lcyBpbiBQ bGFuLgo+Pj4KPj4+IEknbSBndWVzc2luZyBtYXliZSB5b3UndmUgbWlzc2VkIGFuIG9jY3VycmVu Y2Ugb2YgaW1tb3J0YWxTcGFjZSBvciAKPj4+IGl0cyBwZXItdGhyZWFkIGNvbXBvbmVudHMgPwo+ Pj4KPj4+ID4gPiBJIGFzc3VtZSB5b3UndmUgZG9uZSBzb21lIG9mIHRoaXMsIGJlY2F1c2UgYnkg ZGVmYXVsdCB0aGUgCj4+PiB0cmFjZU9iamVjdCBtZXRob2Qgd2lsbCBjcmFzaCB0aGUgVk0gaWYg aXQgdHJpZXMgdG8gdmlzaXQgYW4gb2JqZWN0IAo+Pj4gdGhhdCBoYXNuJ3QgZ290IGEgc3BlY2lh bCBjYXNlLgo+Pj4gPgo+Pj4gPiBUaGF0J3MgZXhhY3RseSB3aGVyZSBJIGhhdmUgcHJvYmxlbXMu IEEgc3BlY2lhbCBjYXNlIGlzIGFkZGVkIGZvciAKPj4+IHRoZSBSQlNwYWNlLCBidXQgdGhlIFZN IGNyYXNoZXMgbm8gbWF0dGVyIHdoYXQgSSByZXR1cm4uCj4+Pgo+Pj4gVGhlIGNvbnRyYWN0IG9m IHRyYWNlT2JqZWN0IGlzIHRoYXQgaXQgcmV0dXJucyB0aGUgYWRkcmVzcyBvZiB0aGUgCj4+PiB0 cmFjZWQgb2JqZWN0ICh0aGUgbmV3IGFkZHJlc3MgaWYgdGhlIG9iamVjdCB3YXMgbW92ZWQpLgo+ Pj4KPj4+IHdoZXJlIGRvZXMgdGhlIFZNIGNyYXNoID/CoCBEbyB5b3UgaGF2ZSBhIHN0YWNrIHRy YWNlID8KPj4+Cj4+PiBDYW4geW91IHJlcHJvZHVjZSB0aGlzIGluIHRoZSBNTVRrIGhhcm5lc3Mg P8KgIEl0J3MgYSBtdWNoIG1vcmUgCj4+PiBmcmllbmRseSBkZWJ1Z2dpbmcgZW52aXJvbm1lbnQu Cj4+Pgo+Pj4KPj4+IEFub3RoZXIgZGVidWdnaW5nIGFwcHJvYWNoIHdvdWxkIGJlIHRvIGFkZCBh biB1bm1vZGlmaWVkIHZlcnNpb24gb2YgCj4+PiBJbW1vcnRhbFNwYWNlIHRvIHRoZSBwbGFuIGlu IHBsYWNlIG9mIHlvdXIgbW9kaWZpZWQgc3BhY2UuIE9uY2UgeW91IAo+Pj4gY2FuIHZlcmlmeSB0 aGF0IG9iamVjdHMgYXJlIGJlaW5nIGFsbG9jYXRlZCBhbmQgImNvbGxlY3RlZCIgaW4gdGhlIAo+ Pj4gdW5tb2RpZmllZCBzcGFjZSwgeW91J2xsIGtub3cgd2hldGhlciB0aGUgaW50ZWdyYXRpb24g b2YgdGhlIHNwYWNlIAo+Pj4gaXMgY29ycmVjdCwgYW5kIGNhbiB0aGVuIHR1cm4gdG8gZGVidWdn aW5nIHlvdXIgbmV3IHNwYWNlLgo+Pj4KPj4+Cj4+PiBBbHNvLCB3aGlsZSBJJ20gYXdhcmUgeW91 J3ZlIG1vZGlmaWVkIHRoZSBiYXNlIHBsYW4gY2xhc3NlcywgY2hvaWNlIAo+Pj4gb2YgY29sbGVj dG9yIGZvciBkZWJ1Z2dpbmcgaXMgcXVpdGUgaW1wb3J0YW50LsKgIEkgd291bGQgc3RhcnQgCj4+ PiBkZWJ1Z2dpbmcgd2l0aCBNYXJrU3dlZXAsIHRoZW4gbW92ZSB0byBTZW1pU3BhY2UsIEltbWl4 IGFuZCAKPj4+IGV2ZW50dWFsbHkgdG8gQ29weU1TIGFuZCB0aGVuIHRoZSBnZW5lcmF0aW9uYWwg Y29sbGVjdG9ycy4KPj4+Cj4+Pgo+Pj4gTG90cyB0byB0aGluayBhYm91dCwgSSBob3BlIHNvbWUg b2YgaXQgaXMgdXNlZnVsLgo+Pj4gY2hlZXJzCj4+Pgo+Pj4gT24gMTQvMS8yMCAxOjExIGFtLCBK b2hhbm5lcyBTaW5zZWwgd3JvdGU6Cj4+Pj4gSGV5IFJvYmluLAo+Pj4+Cj4+Pj4gdGhhbmtzIGZv ciB5b3VyIHJlcGx5Lgo+Pj4+IEluIG15IGN1cnJlbnQgc2V0dXAsIEkgYWRkZWQgYSBtb2RpZmll ZCB2ZXJzaW9uIG9mIGFuIEltbW9ydGFsU3BhY2UgCj4+Pj4gKGNhbGxlZCBSQlNwYWNlLCBzaG9y dCBmb3IgUmluZ0J1ZmZlclNwYWNlKSB0byB0aGUgcmVndWxhciBvbmVzIGluIAo+Pj4+IFBsYW4u IFRocm91Z2ggTWVtb3J5TWFuYWdlci5waWNrQWxsb2NhdG9yKCkgc3BlY2lmaWMgb2JqZWN0cyBn ZXQgdG8gCj4+Pj4gYmUgYWxsb2NhdGVkIGluIGl0LiBQcm9ibGVtIG51bWJlciAyIHlvdSBtZW50 aW9uZWQsIGRvZXMgbm90IGFyaXNlIAo+Pj4+IHNpbmNlIHRoZXNlIG9iamVjdHMgd29uJ3QgcG9p bnQgaW50byB0aGUgcmVzdCBvZiB0aGUgaGVhcC4KPj4+PiBBcyB0aGUgUkJTcGFjZSBoYXMgYSBy aW5nLWJ1ZmZlciBmYXNoaW9uZWQgbWVtb3J5IG1hbmFnZW1lbnQsIAo+Pj4+IG9iamVjdHMgY2Fu IGJlIG92ZXJ3cml0dGVuIGFuZCB0aGVyZWZvcmUgdGhleSBhcmUgbm90IGxpdmUgYW55bW9yZS4g Cj4+Pj4gQnV0IGJ5IG5vdyB0aGUgbGl2ZW5lc3MgaW5mb3JtYXRpb24gZG9lcyBub3QgbWF0dGVy IHRvIG1lIChQcm9ibGVtIDEpLgo+Pj4+Cj4+Pj4gPiBJIGFzc3VtZSB5b3UndmUgZG9uZSBzb21l IG9mIHRoaXMsIGJlY2F1c2UgYnkgZGVmYXVsdCB0aGUgCj4+Pj4gdHJhY2VPYmplY3QgbWV0aG9k IHdpbGwgY3Jhc2ggdGhlIFZNIGlmIGl0IHRyaWVzIHRvIHZpc2l0IGFuIG9iamVjdCAKPj4+PiB0 aGF0IGhhc24ndCBnb3QgYSBzcGVjaWFsIGNhc2UuCj4+Pj4KPj4+PiBUaGF0J3MgZXhhY3RseSB3 aGVyZSBJIGhhdmUgcHJvYmxlbXMuIEEgc3BlY2lhbCBjYXNlIGlzIGFkZGVkIGZvciAKPj4+PiB0 aGUgUkJTcGFjZSwgYnV0IHRoZSBWTSBjcmFzaGVzIG5vIG1hdHRlciB3aGF0IEkgcmV0dXJuLgo+ Pj4+Cj4+Pj4gSSBhc3N1bWVkIHRoYXQgdGhlcmUgaXMgbm8gZ2FyYmFnZSBjb2xsZWN0aW9uIGlu IGFuIGltbW9ydGFsIHNwYWNlIAo+Pj4+IGluIHRoZSBmaXJzdCBwbGFjZSBhbmQgdGhlcmVmb3Jl IGFsc28gbm8gdHJhY2luZyBzaW5jZSBvYmplY3RzIGFyZSAKPj4+PiBhbHdheXMgbGl2ZS4KPj4+ Pgo+Pj4+IFRoYW5rcyBhZ2FpbiBmb3IgeW91ciBoZWxwLgo+Pj4+IEtpbmQgcmVnYXJkcywKPj4+ PiBKb2hhbm5lcwo+Pj4+Cj4+Pj4gT24gMTMuMDEuMjAgMDY6MDIsIFJvYmluIEdhcm5lciB3cm90 ZToKPj4+Pj4gSGkgSm9oYW5uZXMsCj4+Pj4+Cj4+Pj4+IEknbSBub3QgcXVpdGUgY2xlYXIgb24g d2hhdCB5b3UncmUgdHJ5aW5nIHRvIGRvLgo+Pj4+Pgo+Pj4+PiA+IEknbSB0cnlpbmcgdG8gc2Vw YXJhdGUgYSBmZXcgb2JqZWN0cyBpbiB0aGUgaGVhcCwgc28gdGhlIGdhcmJhZ2UgCj4+Pj4+IGNv bGxlY3Rpb24gZG9lc24ndCBjaGVjayB0aGVtCj4+Pj4+Cj4+Pj4+IEluIGEgZnVsbCBoZWFwIGNv bGxlY3Rpb24sIHRoZSBnYXJiYWdlIGNvbGxlY3RvciBkZXRlcm1pbmVzIHRoZSAKPj4+Pj4gbGl2 ZW5lc3Mgb2Ygb2JqZWN0cyBpbiB0aGUgaGVhcCBieSBkb2luZyBhIHRyYW5zaXRpdmUgY2xvc3Vy ZSBvdmVyIAo+Pj4+PiB0aGUgaGVhcCwgc3RhcnRpbmcgd2l0aCB0aGUgcm9vdHMgKHRocmVhZCBz dGFja3MgYW5kIHN0YXRpYyAKPj4+Pj4gZmllbGRzKS7CoCBJZiB5b3Ugc29tZWhvdyBhcnJhbmdl IGZvciBwYXJ0IG9mIHRoZSBoZWFwIHRvIG5vdCBiZSAKPj4+Pj4gY2hlY2tlZCBkdXJpbmcgR0Ms IHRoZW4geW91IGhhdmUgdHdvIHByb2JsZW1zOgo+Pj4+Pgo+Pj4+PiAxKSBEZXRlcm1pbmluZyB0 aGUgbGl2ZW5lc3Mgb2YgdGhlIG9iamVjdHMgaW4geW91ciAnaWdub3JlZCcgCj4+Pj4+IHNwYWNl LCBhbmQKPj4+Pj4KPj4+Pj4gMikgS2VlcGluZyBvYmplY3RzIGluIHRoZSByZXN0IG9mIHRoZSBo ZWFwIHRoYXQgeW91ciAnaWdub3JlZCcgCj4+Pj4+IHNwYWNlIG9iamVjdHMgcG9pbnQgdG8gYWxp dmUuCj4+Pj4+Cj4+Pj4+IFdoZW4gYWRkaW5nIGEgbmV3IHNwYWNlIHRvIGEgUGxhbiwgeW91ciBw cm9ibGVtIGlzIGxlc3Mgb25lIG9mIAo+Pj4+PiBwcmV2ZW50aW5nIHRoZSBHQyBmcm9tIHZpc2l0 aW5nIHlvdXIgb2JqZWN0cywgdGhhbiBnZXR0aW5nIHRoZW0gdG8gCj4+Pj4+IGRvIGl0IGF0IGFs bC7CoCBUaGVyZSBhcmUgc2V2ZXJhbCBwbGFjZXMgaW4gYSBwbGFuIHdoZXJlIHlvdSBuZWVkIAo+ Pj4+PiB0byBhZGQgY2FsbHMgdG8geW91ciBuZXcgc3BhY2UuwqAgRm9yIGV4YW1wbGUsIGlmIHlv dSBsb29rIGF0IAo+Pj4+PiBtYXJrc3dlZXAgYXMgb25lIG9mIHRoZSBzaW1wbGVyIGV4YW1wbGVz LCBqdXN0IHNlYXJjaCB0aGUgcGFja2FnZSAKPj4+Pj4gb3JnLm1tdGsucGxhbi5tYXJrc3dlZXAg Zm9ywqAgdGhlIGNvbnN0YW50IE1TLk1BUktfU1dFRVAsIGFuZCBmb3IgCj4+Pj4+IHRoZSBmaWVs ZCBNUy5tc1NwYWNlLsKgIEluIHBhcnRpY3VsYXIsIHRoZSBtZXRob2QgCj4+Pj4+IE1TVHJhY2VM b2NhbC50cmFjZU9iamVjdCBhbmQgaXRzIHN1cGVyY2xhc3MgaW5zdGFuY2VzIGFyZSBob3cgdGhl IAo+Pj4+PiBHQyB2aXNpdHMgaGVhcCBvYmplY3RzLsKgIEkgYXNzdW1lIHlvdSd2ZSBkb25lIHNv bWUgb2YgdGhpcywgCj4+Pj4+IGJlY2F1c2UgYnkgZGVmYXVsdCB0aGUgdHJhY2VPYmplY3QgbWV0 aG9kIHdpbGwgY3Jhc2ggdGhlIFZNIGlmIGl0IAo+Pj4+PiB0cmllcyB0byB2aXNpdCBhbiBvYmpl Y3QgdGhhdCBoYXNuJ3QgZ290IGEgc3BlY2lhbCBjYXNlLgo+Pj4+Pgo+Pj4+PiBTbyBpZiB5b3Ug Y2FuIHRlbGwgdXMgd2hpY2ggcGxhbiB5b3UncmUgYmFzaW5nIHlvdXIgY29sbGVjdG9yIG9uLCAK Pj4+Pj4gYW5kIGhvdyB5b3UgYWRkcmVzcyB0aGUgYWJvdmUgMiBwcm9ibGVtcywgdGhlbiBtYXli ZSBJIGNhbiBiZSBvZiAKPj4+Pj4gbW9yZSBzcGVjaWZpYyBoZWxwLgo+Pj4+Pgo+Pj4+PiBjaGVl cnMsCj4+Pj4+Cj4+Pj4+IFJvYmluCj4+Pj4+Cj4+Pj4+IE9uIDEwLzEvMjAgOTowMCBwbSwgSm9o YW5uZXMgU2luc2VsIHdyb3RlOgo+Pj4+Pj4gSGV5IHRoZXJlLAo+Pj4+Pj4gaW4gYSBjdXJyZW50 IHByb2plY3Qgb2YgbWluZSwgSSdtIHRyeWluZyB0byBzZXBhcmF0ZSBhIGZldyAKPj4+Pj4+IG9i amVjdHMgaW4gdGhlIGhlYXAsIHNvIHRoZSBnYXJiYWdlIGNvbGxlY3Rpb24gZG9lc24ndCBjaGVj ayAKPj4+Pj4+IHRoZW0uIFRoaXMgaXMgZG9uZSBieSB1c2luZyB0aGUgaW1wbGVtZW50YXRpb24g b2YgYSBJbW1vcnRhbFNwYWNlIAo+Pj4+Pj4gYW5kIGdpdmUgaXQgYSByaW5nIGJ1ZmZlciBmYXNo aW9uZWQgbWVtb3J5IG1hbmFnZW1lbnQuIEluIHRoaXMgCj4+Pj4+PiB3YXkgb2JqZWN0cyBhcmUg bm90IG5lY2Vzc2FyaWx5IGxpdmUgKGFmdGVyIGEgbmV3IHJpbmcgYnVmZmVyIAo+Pj4+Pj4gY3lj bGUgaGFzIHN0YXJ0ZWQpLgo+Pj4+Pj4KPj4+Pj4+IFVuZm9ydHVuYXRlbHkgaW4gdGhlICJmdWxs IGhlYXAiIGNvbGxlY3Rpb24gcGhhc2UsIGl0IHNlZW1zIHRvIAo+Pj4+Pj4gbWUsIHRoYXQgdGhl IEdDIGNoZWNrcyBmb3Igc3RhdGljIHJlZmVyZW5jZXMgaW5kZXBlbmRlbnQgb2YgdGhlIAo+Pj4+ Pj4gdXNlZCBoZWFwIHNwYWNlLiBUaGlzIGNhdXNlcyB0aGUgVk0gdG8gY3Jhc2gsIHNpbmNlIG9i amVjdHMgY2FuIAo+Pj4+Pj4gYmUgb3ZlcndyaXR0ZW4gYW5kIGFuIGFkZHJlc3Mgb2YgYSBwcmV2 aW91cyBvYmplY3QgY2FuJ3QgYmUgCj4+Pj4+PiByZXNvbHZlZCBhbnltb3JlLgo+Pj4+Pj4KPj4+ Pj4+IElzIHRoZXJlIGEgd2F5IHRvIHNlcGFyYXRlIHRoZSBzcGFjZSBtb3JlLCBzbyB0aGUgR0Mg aXMgbm90IGxlZCAKPj4+Pj4+IGludG8gaXQ/IEkgY291bGRuJ3QgZmluZCBhIHNvbHV0aW9uIHll dC4KPj4+Pj4+Cj4+Pj4+PiBUaGFua3MgYW5kIGtpbmQgcmVnYXJkcywKPj4+Pj4+IEpvaGFubmVz Cj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwo+Pj4+Pj4gSmlrZXNydm0tcmVzZWFyY2hlcnMgbWFpbGluZyBs aXN0Cj4+Pj4+PiBKaWtlc3J2bS1yZXNlYXJjaGVyc0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKPj4+ Pj4+IGh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL2ppa2VzcnZt LXJlc2VhcmNoZXJzCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSmlrZXNydm0tcmVzZWFyY2hlcnMgbWFpbGluZyBsaXN0Ckppa2VzcnZtLXJlc2VhcmNo ZXJzQGxpc3RzLnNvdXJjZWZvcmdlLm5ldApodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9s aXN0cy9saXN0aW5mby9qaWtlc3J2bS1yZXNlYXJjaGVycwo=