Re: Securityfilter + JBoss
"Sverker Abrahamsson" <[email protected]> Thu, 29 Apr 2010 22:16:16 +0200
| Newsgroups | gmane.comp.java.securityfilter.devel |
|---|---|
| Message-ID | <!&!AAAAAAAAAAAYAAAAAAAAAN5fehIZv/BBsQLx9nhfoL3ihQAAEAAAAJHeQBGfu3VHop4f068sz7sBAAAAAA==@abrahamsson.com> |
SSBzb2x2ZWQgYSBwcm9ibGVtIEkgc2F3LCBJIGNvbnRyaWJ1dGVkIHRoZSBzb2x1dGlvbiBiYWNr IHRvIHRoZSBwcm9qZWN0LiBJdCdzIHlvdXIgY2hvaWNlIGlmIHlvdSB3YW50IHRvIHVzZSBpdCBh cyBpdCBpcywgbW9kaWZ5IGl0LCBvbmx5IHBhcnRzIG9mIGl0IG9yIG5vdCBhdCBhbGwuCgpJIGtu b3cgb2YgYXQgbGVhc3QgNSBkaWZmZXJlbnQgcHJvamVjdCB3aGljaCBhbGwgdXNlIHRoZWlyIG93 biBwYXRjaGVkIHNlY3VyaXR5ZmlsdGVyIHRvIHNvbHZlIHRoaXMgc2FtZSBwcm9ibGVtIGJ1dCBu b25lIHdvcmtzIHZlcnkgd2VsbC4gSSBmb3VuZCBhIHBlcmZlY3RseSB3b3JraW5nIHNvbHV0aW9u LCBJJ3ZlIHB1Ymxpc2hlZCBpdCBzbyB0aGF0IGlmIGFueWJvZHkgd2FudCB0byB1c2UgaXQgdGhl biB0aGUgcGF0Y2ggY2FuIGJlIGRvd25sb2FkZWQgZnJvbSBodHRwOi8vd3d3LmFicmFoYW1zc29u LmNvbS9zZWN1cml0eWZpbHRlci5wYXRjaAoKSSBhbHNvIGZvdW5kIGEgd2F5IHRvIHNvbHZlIHRo ZSBvcmlnaW5hbCBwcm9ibGVtLCB3aXRob3V0IHVzaW5nIHNlY3VyaXR5IGZpbHRlciBhdCBhbGwu IEknbGwgcHVibGlzaCBpdCBhdCBhIHN1aXRhYmxlIHBsYWNlIHdoZW4gSSBoYXZlIHRpbWUgZm9y IGl0LgoKU2VlIHRoZSByZXN0IG9mIHRoZSBjb21tZW50cyBiZWxvdwovU3ZlcmtlcgoKPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IENocmlzdG9waGVyIFNjaHVsdHogW21haWx0 bzpjaHJpc0BjaHJpc3RvcGhlcnNjaHVsdHoubmV0XQo+IFNlbnQ6IGRlbiAyNyBhcHJpbCAyMDEw IDU6MDcKPiBUbzogU3ZlcmtlciBBYnJhaGFtc3Nvbgo+IENjOiBzZWN1cml0eWZpbHRlci1kZXZl bEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKPiBTdWJqZWN0OiBSZTogW3NlY3VyaXR5ZmlsdGVyLWRl dmVsXSBTZWN1cml0eWZpbHRlciArIEpCb3NzCj4gCj4gLS0tLS1CRUdJTiBQR1AgU0lHTkVEIE1F U1NBR0UtLS0tLQo+IEhhc2g6IFNIQTEKPiAKPiBTdmVya2VyLAo+IAo+IE5vIG5lZWQgdG8gcmVw bHkgdG8gYm90aCBtZSBhbmQgdGhlIGxpc3Q6IEkgYW0gc3Vic2NyaWJlZCB0byBpdC4KPiAKPiBP biA0LzI2LzIwMTAgNjo1MyBQTSwgU3ZlcmtlciBBYnJhaGFtc3NvbiB3cm90ZToKPiA+IENvcnJl Y3QsIFJlcXVlc3QgaXMgdGhlIGludGVybmFsIENhdGFsaW5hIGNsYXNzIGZvciB3aGljaCB0aGV5 Cj4gPiBwcm92aWRlIGEgd3JhcHBlci4gVGhlIHJlYXNvbiBmb3IgdGhpcyBpcyB0aGF0IHRoZSBQ cmluY2lwYWwgcmV0dXJuZWQKPiA+IGJ5IEpCb3NzIGlzIGEgSkJvc3NHZW5lcmljUHJpbmNpcGFs IHNvIHRoYXQgaXMgd2hhdCBpcyBzZXQgYXMKPiA+IHByaW5jaXBhbCBpbiB5b3VyIHdyYXBwZXIs IEkgYmVsaWV2ZSBpdCdzIHRoZSBzYW1lIGZvciBwdXJlIFRvbWNhdCBhcwo+ID4gd2VsbC4gVG8g Z2V0IHRoZSBVc2VyIFByaW5jaXBhbCBmcm9tIHRoYXQgeW91IG5lZWQgdG8gY2FsbAo+ID4gcHJp bmNpcGFsLmdldFVzZXJQcmluY2lwYWwoKS4gVGhhdCBpcyB3aHkgSSBjaGVjayBpZiB0aGUgcHJp bmNpcGFsIGlzCj4gPiBhbiBpbnN0YW5jZSBvZiBHZW5lcmljUHJpbmNpcGFsIGFuZCBpZiBzbyBy ZXR1cm4gdGhlIGFjdHVhbCBVc2VyCj4gPiBQcmluY2lwYWwuCj4gPgo+ID4gVGhlIHJlZmVyZW5j ZSB0byBUb21jYXQgUmVxdWVzdCBoZXJlIHdhcyBqdXN0IHRvIHNob3cgdGhhdCBpbnRlcm5hbGx5 Cj4gVG9tY2F0IGRvIHRoZSBzYW1lCj4gCj4gTXkgcXVlc3Rpb24gd2FzOiB3aHkgc2hvdWxkIHdl IGNoYW5nZSBhbnl0aGluZyBhdCBhbGw/IFdoYXQgaXMgdGhlCj4gcHJvYmxlbSB3aXRoIHRoZSBj dXJyZW50IGltcGxlbWVudGF0aW9uPwoKSXQgZG9lc24ndCB3b3JrIHdlbGwgd2l0aCBKQm9zcywg dGhhdCdzIHByb2JsZW0gZW5vdWdoIGZvciBtZS4KIAo+ID4+PiBJZiB0aGUgUGluY2lwYWwgaXMg YW4gaW5zdGFuY2Ugb2YKPiA+Pj4gR2VuZXJpY1ByaW5jaXBhbCB0aGVuIGl04oCZcyBuZWNlc3Nh cnkgdG8gY2FsbCBnZXRVc2VyUHJpbmNpcGFsIG9uCj4gdGhlCj4gPj4+IFByaW5jaXBhbCB0byBn ZXQgdGhlIFVzZXJQcmluY2lwYWwuIEFsc28gYWRkZWQgYSBnZXRQcmluY2lwYWwKPiBtZXRob2QK PiA+Pj4gd2hpY2ggaXMgdXNlZCBpbnRlcm5hbGx5IHdoZXJlIHRoZSBmdWxsIFByaW5jaXBhbGwg aXMgbmVlZGVkLgo+ID4+Cj4gPj4gTm9uZSBvZiB0aGlzIGlzIG5lY2Vzc2FyeSBpZiB5b3Ugc2lt cGx5IGNhbGwKPiBSZXF1ZXN0LmdldFVzZXJQcmluY2lwYWwsCj4gPj4gd2hpY2ggaXMgd2h5IHNm IGRvZXMgdGhhdC4KPiA+Cj4gPiBUaGVuIHlvdSBnZXQgYSBKYm9zc0dlbmVyaWNQcmluY2lwYWwg aW5zdGFuY2UgYXMgc2hvd24gYWJvdmUgYW5kIG5vdAo+IG15IHVzZXIgcHJpbmNpcGFsIGluc3Rh bmNlLgo+IAo+IElmIHlvdSBhcmUgY29ycmVjdGx5IHVzaW5nIFNlY3VyaXR5UmVxdWVzdFdyYXBw ZXIsIHRoZW4geW91IHNob3VsZCBiZQo+IGdldHRpbmcgdGhlIHByaW5jaXBhbCBjcmVhdGVkIGJ5 IHlvdXIgcmVhbG0uIEFyZSB5b3Ugc2F5aW5nIHRoYXQsIHdoZW4KPiB1c2luZyBhIGN1c3RvbSBy ZWFsbSwgeW91ciBQcmluY2lwYWwgaXMgYmVpbmcgb3ZlcndyaXR0ZW4gYnkgdGhlCj4gSkJvc3NH ZW5lcmljUHJpbmNpcGFsPwoKTm8sIGl0J3Mgbm90IG92ZXJ3cml0dGVuLiBNeSBQcmluY2lwYWwg aXMgY29udGFpbmVkIGluIHRoZSB1c2VyUHJpbmNpcGFsIHByb3BlcnR5IG9mIHRoZSBHZW5lcmlj UHJpbmNpcGFsIGluc3RhbmNlIHJldHVybmVkIGZyb20gYXV0aGVudGljYXRpb24uCgo+IFdoYXQg aXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBhICJmdWxsIHByaW5jaXBhbCIgYW5kIHdoYXRldmVy IHlvdQo+IHRoaW5rCj4geW91J3JlIGdldHRpbmcgaW5zdGVhZCBvZiB0aGF0Pwo+IAo+ID4+IElm IHlvdSBhcmUgdHJ5aW5nIHRvIHByb3RlY3QgYWdhaW5zdCB1c2VycyBtYXNraW5nIHRoZSBVc2Vy UHJpbmNpcGFsCj4gYnkKPiA+PiByZS13cmFwcGluZyB0aGUgcmVxdWVzdCwgdGhlcmUgYXJlIG90 aGVyIHRlY2huaXF1ZXMgdGhhdCB3aWxsIHdvcmsKPiBhbmQKPiA+PiBhcmUgbW9yZSBhcHByb3By aWF0ZSBJTU8uCj4gPgo+ID4gTm8sIHRoYXQncyBub3QgdGhlIHB1cnBvc2UgYXQgYWxsIGVzcGVj aWFsbHkgc2luY2UgZ2V0UHJpbmNpcGFsIGlzCj4gPiBhbHNvIHB1YmxpYy4gVGhhdCBzaG91bGQg bWF5YmUgYmUgcHJvdGVjdGVkIHRob3VnaC4KPiAKPiBJIHN0aWxsIGRvbid0IHNlZSB0aGUgcG9p bnQgb2YgYWRkaW5nIHRoaXMgbWV0aG9kIGF0IGFsbC4KCkZvciB0aGUgSkJvc3NSZWFsbSBpdCdz IG5vdCBuZWNlc3NhcnkgdG8gdXNlIFNlY3VyaXR5UmVxdWVzdFdyYXBwZXIgYXMgdGhlIG5lY2Vz c2FyeSBmaWVsZHMgYXJlIHNldCBieSBzZWN1cml0eSBmcmFtZXdvcmsgaW4gdGhlIG9yaWdpbmFs IHJlcXVlc3QuIEhvd2V2ZXIsIHRoYXQgd291bGRuJ3Qgd29yayB3aXRoIG90aGVyIHNlY3VyaXR5 ZmlsdGVyIHJlYWxtcyBhcyB0aGV5IGRlcGVuZHMgb24gdGhhdCBzZWN1cml0eWZpbHRlciBwYXRj aCBpbiB0aGVpciBwcmluY2lwYWwuIFRoZSBiZXN0IHdheSBtaWdodCBiZSB0aGF0IHRoZSByZWFs bSBoYXMgYSBtZXRob2QgbGlrZSB0aGlzOgoKcHVibGljIEh0dHBTZXJ2bGV0UmVxdWVzdCBjcmVh dGVSZXF1ZXN0V3JhcHBlcihIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCkKIApUaGVuIHRoZSBy ZWFsbSBpcyByZXNwb25zaWJsZSBmb3Igd3JhcHBpbmcgdGhlIHJlcXVlc3QgYW5kIGNhbiByZXR1 cm4gYW4gaW1wbGVtZW50YXRpb24gd2hpY2ggaXMgc3VpdGFibGUuIEhvd2V2ZXIsIHRoYXQgd291 bGQgYmUgYSBiaWdnZXIgY2hhbmdlIG9mIHRoZSBjb2RlLgoKPiA+Pj4gU2VjdXJpdHlGaWx0ZXIK PiA+Pj4gQ2FsbCBpc1VzZXJJblJvbGUoU3RyaW5nKSBvbiB0aGUgd3JhcHBlZCByZXF1ZXN0IGlu c3RlYWQgb2YKPiBkaXJlY3RseQo+ID4+PiBvbiB0aGUgcmVhbG0KPiA+Pgo+ID4+IEkgdGhpbmsg dGhpcyBwcm9iYWJseSBtYWtlcyBzZW5zZS4gSSdsbCBoYXZlIHRvIGxvb2sgbW9yZSBjbG9zZWx5 IGF0Cj4gPj4geW91ciBwYXRjaCBhbmQgdGhlIGNvZGUgdG8gZmlndXJlIG91dCB3aHkgd2UgZGVj aWRlZCB0byBjYWxsIHRoZQo+IHJlYWxtCj4gPj4gZGlyZWN0bHk6IGl0J3MgcHJvYmFibHkgYmVj YXVzZSB0aGUgZGVmYXVsdCBpc1VzZXJJblJvbGUgbWV0aG9kCj4gc2ltcGx5Cj4gPj4gcmV0dXJu cyBmYWxzZS4KPiA+Cj4gPiBJIGNoYW5nZWQgaXQgYmVjYXVzZSBpbiBhbiBlYXJsaWVyIGF0dGVt cHQgdG8gc29sdmUgdGhlIHByb2JsZW0gaXQKPiA+IHdhcwo+ID4gbmVlZGVkIHRvIGRvIHNvLiBJ biB0aGUgZmluYWwgaW1wbGVtZW50YXRpb24gaXQncyBub3QgbmVjZXNzYXJ5IGFzCj4gd2hhdAo+ ID4gaXQgZG9lcyBpcyB0byBjYWxsIHRoZSByZWFsbS4gQSBwcm9wZXIgaW1wbGVtZW50YXRpb24g d291bGQgYmUgdGhhdAo+IGl0Cj4gPiBjYWxsIGlzVXNlckluUm9sZSBvbiB0aGUgdW5kZXJseWlu ZyByZXF1ZXN0LCBhbmQgdGhhdCB3b3JrcyB3aXRoIHRoZQo+ID4gSkJvc3NSZWFsbSBidXQgSSB0 aG91Z2h0IGl0IG1pZ2h0IGJlIHByb2JsZW1zIHdpdGggb3RoZXIgUmVhbG0KPiA+IGltcGxlbWVu dGF0aW9ucyBzbyBJIGtlcHQgdGhhdCByZXF1ZXN0d3JhcHBlciBjYWxscyBoYXNVc2VyUm9sZSAo b3IKPiA+IHdoYXRldmVyIHRoZSBtZXRob2QgbmFtZSBpcykgb24gdGhlIFNlY3VyaXR5ZmlsdGVy UmVhbG0gaW5zdGFuY2UgYW5kCj4gaW4KPiA+IEpCb3NzUmVhbG0gSSBjYWxsIHRoZSB1bmRlcmx5 aW5nIHJlcXVlc3QgaW5zdGFuY2UgdGhlcmUuCj4gCj4gT2theS4gR2l2ZW4gdGhhdCB0aGlzIGlz IGEgc2VjdXJpdHktcmVsYXRlZCBwcm9qZWN0LCBwbGVhc2Uga2VlcCB5b3VyCj4gcGF0Y2hlcyB0 byBhIG1pbmltdW0uIFdoaWxlIEkgYXBwcmVjaWF0ZSB0aGUgcGF0Y2gsIEknbSBub3QgaW50ZXJl c3RlZAo+IGluIGdldHRpbmcgdGhlIGxhc3QgNiBtb250aHMgb2YgeW91ciB0aW5rZXJpbmctYXJv dW5kIHdpdGggc2YgYWxsIGF0Cj4gb25jZS4gSWYgeW91IGZpbmQgYSBwcm9ibGVtLCBkZW1vbnN0 cmF0ZSBpdCwgZml4IGl0LCBhbmQgc3VibWl0IHRoZQo+IHBhdGNoIChpbmNsdWRpbmcgdGVzdCBj YXNlcykuCj4KPiA+IFRoYXQgU2VjdXJpdHlGaWx0ZXIgY2FsbCBpc1VzZXJJblJvbGUgb24gcmVx dWVzdCB3cmFwcGVyIGluc3RlYWQgb2YKPiA+IGRpcmVjdGx5IG9uIHJlYWxtIG1ha2VzIGl0IGNv bnNpc3RlbnQgd2l0aCBob3cgYW4gYXBwbGljYXRpb24gY2FsbHMKPiBpdC4KPiAKPiBUaGlzIHNl ZW1zIGxpa2UgYSByZWFzb25hYmxlIGNoYW5nZTogdGhlIGZpbHRlciBzaG91bGQgY2FsbCB0aGUK PiByZXF1ZXN0J3MgaXNVc2VySW5Sb2xlIG1ldGhvZCwgd2hpY2ggYWxyZWFkeSBkZWxlZ2F0ZXMg dG8gdGhlIHJlYWxtLgo+IEknbGwgaGF2ZSB0byBhc2sgTWF4IHdoeSBoZSdzIGRvbmUgdGhhdC4K PiAKPiA+PiBXaHkgZGlkIHlvdSByZW1vdmUgdGhlIG5vLWFyZyBjb25zdHJ1Y3RvciBmb3IgU2lt cGxlUHJpbmNpcGFsPyBUaGUKPiA+PiBjbGFzcyBpcyBzZXJpYWxpemFibGUgYW5kIHRoZXJlZm9y ZSBtdXN0IGhhdmUgYSBuby1hcmcgY29uc3RydWN0b3IuCj4gPgo+ID4gVGhhdCBpcyBub3QgY29y cmVjdAo+IAo+IFlvdSdyZSByaWdodDogSSB3YXMgdGhpbmtpbmcgdGhhdCBTaW1wbGVQcmluY2lw YWwgd2FzIGJlaW5nIHN1YmNsYXNzZWQKPiBieSBvdGhlciBjbGFzc2VzIGluIHNmLiBJdCdzIG5v dDogaXQncyBwcm9iYWJseSBiZWluZyBzdWJjbGFzc2VkIGJ5Cj4gb3RoZXJzLCB0aG91Z2gsIGJ1 dCB5b3UncmUgcmlnaHQ6IHRoZSBwcml2YXRlIGNvbnN0cnVjdG9yIGlzIG5vdAo+IHBhcnRpY3Vs YXJseSB1c2VmdWwuCgpJdCdzIG5vdCBhIHByb2JsZW0gaWYgaXQncyBiZWluZyBzdWJjbGFzc2Vk LiBUaGUgb25seSB0aW1lIGEgY2xhc3MsIGluIHRoaXMgY29udGV4dCwgaGFzIHRvIGhhdmUgYW4g YWNjZXNzaWJsZSBuby1hcmcgY29uc3RydWN0b3IgaXMgaWYgaXQgaXMgTk9UIHNlcmlhbGl6YWJs ZSBhbmQgYSBTVUJDTEFTUyB3YW50cyB0byBiZSBzZXJpYWxpemFibGUuIFRoZW4gYWxsIHBhcmVu dCBOT04tc2VyaWFsaXphYmxlIGNsYXNzZXMgbXVzdCBoYXZlIGFuIGFjY2Vzc2libGUgbm8tYXJn IGNvbnN0cnVjdG9yLgogCj4gPj4+IEluIGFkZGl0aW9uIEkgcmVtb3ZlZCBhbGwgY29tcGlsZXIg d2FybmluZ3MgYW5kIHdpbGRjYXJkIGltcG9ydHMgaW4KPiA+Pj4gYWxsIGNsYXNzZXMuCj4gPj4+ Cj4gPj4+IEl04oCZcyBhbHNvIG5lZWRlZCB0byB1cGRhdGUgY2F0YWxpbmEuamFyIHRvIHZlcnNp b24gNS41LjEwIG9yIG5ld2VyCj4gPj4gYW5kCj4gPj4+IGFkZCBqYm9zcy13ZWItc2VydmljZS5q YXIgKEkgYmVsaWV2ZSBpdCB3YXMgbmFtZWQgamJvc3N3ZWItCj4gPj4gc2VydmljZS5qYXIKPiA+ Pj4gaW4gNC4yLjMgdGhlbiBqYm9zcy13ZWItc2VydmljZS5qYXIgZnJvbSA1LjApCj4gPj4+Cj4g Pj4+IFRoZSBwYXRjaCBjYW4gYmUgZm91bmQgYXQKPiA+Pj4gaHR0cDovL3d3dy5hYnJhaGFtc3Nv bi5jb20vc2VjdXJpdHlmaWx0ZXIucGF0Y2gKPiA+Pgo+ID4+IFRoaXMgcGF0Y2ggY2Fubm90IGJl IGFjY2VwdGVkIGluIGl0cyBjdXJyZW50IGZvcm0uIEluIG9yZGVyIHRvCj4gYWNjZXB0LAo+ID4+ IHlvdSdsbCBuZWVkIHRvOgo+ID4+Cj4gPj4gMS4gUmVtb3ZlIGFsbCBjbGFzc2VzIHdoZXJlIG5v IGNvZGUgd2FzIGNoYW5nZWQuIEkgYXBwcmVjaWF0ZSB0aGUKPiByZS0KPiA+PiBmb3JtYXR0aW5n IG9mIHRoZSBpbXBvcnRzIHRoYXQgeW91ciBJREUgcGVyZm9ybXMsIGJ1dCB3ZSdyZSBub3QKPiBn b2luZwo+ID4+IHRvIG1hc3MtcGF0Y2ggZmlsZXMganVzdCBmb3IgdGhlIHNha2Ugb2YgcmUtb3Jk ZXJpbmcgaW1wb3J0Cj4gc3RhdGVtZW50cy4KPiA+Cj4gPiBUaGUgcmVhc29uIHdhcyBub3QgdG8g cmUtZm9ybWF0IHRoZSBpbXBvcnRzIGJ1dCB0byByZW1vdmUgYWxsCj4gPiB3aWxkY2FyZCBpbXBv cnRzLCB3aGljaCBhcmUgbm90IGdvb2QgcHJhY3RpY2UsIGFuZCB0byByZW1vdmUgdW51c2VkLgo+ ID4gSXQgd2FzIHRoZW4gZWFzaWVzdCB0byByZW1vdmUgYWxsIGltcG9ydHMgd2hlcmUgdGhhdCB3 YXMgdGhlIGNhc2UgYW5kCj4gPiBsZXQgRWNsaXBzZSBhZGQgdGhlbSBhdXRvbWF0aWNhbGx5Lgo+ IAo+IEkgd291bGRuJ3Qgc2F5IHRoYXQgdXNpbmcgd2lsZGNhcmQgaW1wb3J0cyBpcyAibm90IGdv b2QgcHJhY3RpY2UiLiBUaGUKPiByZWFsaXR5IGlzIHRoYXQgSSdkIHJhdGhlciBub3QgY2hhbmdl IGNsYXNzZXMgdGhhdCBkb24ndCBuZWVkIGNoYW5nZXMuCgpUaGUgY2xhc3NpY2FsIGV4YW1wbGUg b2Ygd2h5IHdpbGRjYXJkIGltcG9ydHMgYXJlIGJhZCBpcyB0aGlzOgoKSW4gamRrIDEuMSBpdCB3 YXMgcGVyZmVjdGx5IG9rIHRvIGRvIGxpa2UgdGhpczoKaW1wb3J0IGphdmEuYXd0Lio7CmltcG9y dCBqYXZhLnV0aWwuKjsKCkNvbXBpbGUgdGhlIHNhbWUgY29kZSB3aXRoIGpkayAxLjIgd2lsbCBi cmVhaywgYXMgaXQgYWRkcyBqYXZhLnV0aWwuTGlzdCB0aGF0IHdpbGwgdGhlbiBjb2xsaWRlIHdp dGggamF2YS5hd3QuTGlzdC4gV2hpbGUgdGhhdCBpcyBhIHZlcnkgb2xkIGNhc2UsIHRoZXJlIGlz IG5vIGd1YXJhbnRlZSB0aGF0IGZ1dHVyZSBqZGsncyB3aWxsIG5vdCBhZGQgbmV3IGNsYXNzZXMg dGhhdCB3aWxsIGJyZWFrIHlvdXIgY29kZSBiZWNhdXNlIG9mIHlvdXIgd2lsZGNhcmQgaW1wb3J0 cy4KCj4gPj4gMy4gUHJvdmlkZSB1bml0IHRlc3RzIHRoYXQgZGVtb25zdHJhdGUgYW55IHByb2Js ZW1zIHdpdGggdGhlIGN1cnJlbnQKPiA+PiBjb2RlIGFuZCBwcm92ZSB0aGF0IHlvdXIgY2hhbmdl cyBmaXggdGhvc2UgcHJvYmxlbXMuCj4gPgo+ID4gVGhlIHByb2JsZW0gY2FuIGJlIHRyaXZpYWxs eSBzaG93biBieQo+ID4gMSkgU2VjdXJpdHlGaWx0ZXIgY2FuJ3QgYXV0aGVudGljYXRlIHByb3Bl cmx5IG9uIEpCb3NzIGNvbnRhaW5lcgo+ID4gMikgVGhlIHByaW5jaXBhbCB0aGF0IGlzIHJldHVy bmVkIGJ5IEpCb3NzIGlzIGFuIGluc3RhbmNlIG9mCj4gPiBHZW5lcmljUHJpbmNpcGFsLiBJdCdz IG5lZWRlZCB0aGF0IHRoZSByZXF1ZXN0IHdyYXBwZXIgaGFuZGxlcwo+ID4gZXh0cmFjdGluZyB0 aGUgdXNlciBwcmluY2lwYWwgZnJvbSBpdCB3aGVuIGNhbGxpbmcgZ2V0VXNlclByaW5jaXBhbCgp Cj4gCj4gc2YgdHJpZXMgdG8gc3RheSBkZWNvdXBsZWQgZnJvbSBvdGhlciBBUElzLiBZb3UnbGwg bm90aWNlIHRoYXQgdGhlIG9ubHkKPiBwbGFjZSBHZW5lcmljUHJpbmNpcGFsIGlzIHVzZWQgaXMg aW4gdGhlIFRyaXZpYWxDYXRhbGluYVJlYWxtLCB3aGljaCBpcwo+IHNlcGFyYXRlIGZyb20gdGhl IG1haW4gY29kZSAoaW4gZXhhbXBsZXMpLiBMaWtld2lzZSwgdGhlCj4gQ2F0YWxpbmFSZWFsbUFk YXB0ZXIgaXMgaW4gYSBzZXBhcmF0ZSBzZXQgb2YgcGFja2FnZXMgZnJvbSB0aGUgbWFpbgo+IGNv ZGUuIFdlJ3JlIG5vdCBnb2luZyB0byByZS13cml0ZSBTZWN1cml0eVJlYWxtV3JhcHBlciB0byBj cmVhdGUgYQo+IGRlcGVuZGVuY3kgb24gby5hLmMuci5HZW5lcmljUHJpbmNpcGFsLgo+IAo+IElm IHlvdSB3YW50IHRvIGNyZWF0ZSBhIEpCb3NzUmVhbG1BZGFwdGVyIChvciBqdXN0IHVzZSB0aGUK PiBDYXRhbGluYVJlYWxtQWRhcHRlciBkaXJlY3RvcnkpLCB5b3UncmUgbW9yZSB0aGFuIHdlbGNv bWUgdG8gZG8gc28uCgpJbiB0aGUgcGF0Y2ggcmVmZXJlbmNlZCB0byBhYm92ZSBpdCBpcyBpbiBp dHMgb3duIGRpcmVjdG9yeS4KIAo+ID4gVGhhdCBpcyB0aGUgYWN0dWFsIGNvZGUgY2hhbmdlLCB0 aGUgcmVzdCBpcyBqdXN0IHJlbW92aW5nIGNvbXBpbGVyCj4gPiB3YXJuaW5ncyBhbmQgd2lsZGNh cmQgaW1wb3J0cyB3aGljaCBpcyBnb29kIGNvZGluZyBwcmFjdGljZS4KPiAKPiBXaGF0IGlmIEkg dG9sZCB5b3UgdGhhdCBnb29kIGNvZGluZyBwcmFjdGljZSB3YXMgcHV0dGluZyB5b3VyIGN1cmx5 Cj4gYnJhY2VzIGluIGRpZmZlcmVudCBwbGFjZXM/IExldCdzIG5vdCB0cmVhdCBvcGluaW9ucyBh cyBmYWN0cy4KCldoZXJlIHlvdSBwdXQgeW91ciBjdXJseSBicmFjZXMgZG9lc24ndCBhZmZlY3Qg dGhlIGNvbXBpbGVkIGNvZGUuIEkndmUgc2VlbiBhbmQgc29sdmVkIGJ1Z3MsIHJlYWwgYnVncywg dGhhdCB3b3VsZCBoYXZlIGJlZW4gYXZvaWRlZCBpZiB0aGUgcHJvZ3JhbW1lciBoYWQgdGFrZW4g d2FybmluZ3Mgc2VyaW91c2x5LiBBcyB5b3UgcG9pbnQgb3V0IGFib3ZlLCB0aGlzIGlzIGEgc2Vj dXJpdHkgcmVsYXRlZCBwcm9qZWN0Li4uCiAKPiA+PiA0LiBSZW1vdmUgdGhlIHNlcmlhbFZlcnNp b25JZCBmcm9tIFNhdmVkUmVxdWVzdCAoaXQncyBub3QKPiBuZWNlc3NhcnkpLAo+ID4+IHdoaWNo IHJlbW92ZXMgdGhlIHdob2xlIGNsYXNzIGZyb20gdGhlIHBhdGNoIGR1ZSB0byAjMSBhYm92ZS4K PiBBY3R1YWxseSwKPiA+PiByZW1vdmUgYWxsIHNlcmlhbFZlcnNpb25JZHMgZnJvbSBhbGwgZmls ZXMgaW4gdGhlIHBhdGNoLgo+ID4KPiA+IFNlcmlhbGl6YWJsZSBjbGFzc2VzIHdpdGhvdXQgc2Vy aWFsVmVyc2lvblVJRCBnaXZlcyBhIGNvbXBpbGVyCj4gd2FybmluZy4KPiAKPiBJdCBnaXZlcyBh IHdhcm5pbmcgZnJvbSB5b3VyIElERS4KCkl0IGdpdmVzIGEgd2FybmluZyBpZiB5b3UgY29tcGls ZSB3aXRoIGpkayAxLjUgb3IgbGF0ZXIKIAo+ID4gRnJvbSBqYXZhZG9jOiAiSG93ZXZlciwgaXQg aXMgc3Ryb25nbHkgcmVjb21tZW5kZWQgdGhhdCBhbGwKPiBzZXJpYWxpemFibGUKPiA+IGNsYXNz ZXMgZXhwbGljaXRseSBkZWNsYXJlIHNlcmlhbFZlcnNpb25VSUQgdmFsdWVzIgo+ID4KPiA+IEhl bmNlIGl0J3MgZ29vZCBwcmFjdGljZSB0byBoYXZlIGl0IHRoZXJlIChhbHRob3VnaCBub3Qgc3Ry aWN0bHkKPiA+IG5lZWRlZCkKPiAKPiBXaGF0IGlmIHdlIGRvbid0IHdhbnQgZGlmZmVyZW50IHZl cnNpb25zIG9mIG91ciBvYmplY3RzIHRvIGJlCj4gY29tcGF0aWJsZQo+IHdoZW4gZGUtc2VyaWFs aXplZD8gU2V0dGluZyB0aGUgc2VyaWFsVmVyc2lvbklEIGxlYXZlIHlvdSBvbmUgbW9yZQo+IHRo aW5nCj4gdG8gcmVtZW1iZXIgaWYvd2hlbiB5b3UgbW9kaWZ5IGEgY2xhc3M6IGNoYW5nZSB0aGUg c2VyaWFsVmVyc2lvblVJRC4KPiAKPiBJZiB5b3UncmUgbG9va2luZyB0byBjb25kdWN0IGEgY2xh c3Mgb24gY29kZSBjbGVhbmxpbmVzcywgeW91J3ZlIGNvbWUKPiB0bwo+IHRoZSB3cm9uZyBwbGFj ZS4gSWYgeW91J3JlIGdvdCBzb21ldGhpbmcgdG8gb2ZmZXIgKHdoaWNoIGl0IGxvb2tzIGxpa2UK PiB5b3UgZG8pLCBwbGVhc2UgZG8gc28uIEkgdGhpbmsgdGhlIGJlc3QgdGhpbmcgZm9yIHlvdSB0 byBkbywgaGVyZSwgaXMKPiB0bwo+IHVzZSBhIGN1c3RvbSByZWFsbSBhbmQvb3IgcmVxdWVzdCB3 cmFwcGVyIHRoYXQgdW4td3JhcHMgdGhlICJ1c2VyIgo+IFByaW5jaXBhbCBmcm9tIHlvdXIgR2Vu ZXJpY1ByaW5jaXBhbCBvYmplY3QuIFRoaXMgd2F5LCB0aGUgbWFpbiBzZiBjb2RlCj4gZG9lcyBu b3QgaGF2ZSB0byBjaGFuZ2UuCj4gCj4gLSAtY2hyaXMKPiAtLS0tLUJFR0lOIFBHUCBTSUdOQVRV UkUtLS0tLQo+IFZlcnNpb246IEdudVBHIHYxLjQuMTAgKE1pbmdXMzIpCj4gQ29tbWVudDogVXNp bmcgR251UEcgd2l0aCBNb3ppbGxhIC0gaHR0cDovL2VuaWdtYWlsLm1vemRldi5vcmcvCj4gCj4g aUVZRUFSRUNBQVlGQWt2Vy9hMEFDZ2tROUNhTzUvTHYwUENnTmdDZ3cyNXdPcmhFTTJPQ293eHQ5 cFJiZGRydQo+IEhwd0FuMzhjcDBkSGVYcy83akp4eU9NS2RrSkVTNHhNCj4gPUo3bEUKPiAtLS0t LUVORCBQR1AgU0lHTkFUVVJFLS0tLS0KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kc2VjdXJpdHlmaWx0ZXItZGV2 ZWwgbWFpbGluZyBsaXN0CnNlY3VyaXR5ZmlsdGVyLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5l dApodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9zZWN1cml0eWZp bHRlci1kZXZlbAo=