SGkgTmljb2xhLAoKU29ycnkgSSB0aGluayBJIG1pc3VuZGVyc3Rvb2QgdGhpcyA6ICBUaGVyZWZv cmUsIHlvdXIgc3ViamVjdCBsaW5lIG11c3QKc3RhcnQgd2l0aCBPTkUgKGFuZCBvbmx5IG9uZSkg b2YgdGhlc2UgbGFiZWxzLgpJIHRob3VnaHQgdGhpcyBtZWFudCB0aGF0IHRoZSBzdWJqZWN0IGxp bmUgY2FuIG9ubHkgY29udGFpbiBbUElDXSBhbmQgb3RoZXIKdGFncyBhbmQgbm90aGluZyBlbHNl LgoKCmJhY2sgdG8gdGhlIHRvcGljOgpJIGhhdmUgdG8gZG8gdGhlIGNhbGN1bGF0aW9ucyBpbnNp ZGUgdGhlIFBJQy4gU29tZW9uZSBzdWdnZXN0ZWQgdG8gc2NhbGUgdXAKZXZlcnl0aGluZyBhbmQg dXNlIDMyIGJpdCBpbnRlZ2Vycy4gV2hhdCBkbyB5b3UgdGhpbmsgYWJvdXQgdGhhdD8gSSB0aGlu awpJJ2xsIHRyeSBhbmQgZ28gd2l0aCB0aGF0IGFuZCBzZWUgd2hhdCBoYXBwZW5zLiBJIHdpbGwg YWxzbyBjaGVjayB0aGUgaXRvYQpmdW5jdGlvbi4KClRoYW5rcyBldmVyeW9uZSEKCgpPbiBUaHUs IE5vdiA2LCAyMDE0IGF0IDI6MjcgUE0sIE5pY29sYSBQZXJvdHRvIDxuaWNvbGFAbmljb2xhcGVy b3R0by5pdD4Kd3JvdGU6Cgo+IEhpIFRhbcOhcywKPiB0aGlzIGlzIHlvdXIgM3JkIG1lc3NhZ2Us IHlvdSBhcmUgbm90IGEgYmVnaW5uZXIhIFNvLCBwbGVhc2UsIHN0YXJ0IHRvIHVzZQo+IGNvcnJl Y3RseSB0aGUgc3ViamVjdCBvZiBtZXNzYWdlcyEKPiBUaGFua3MKPgo+Cj4gT24gMDYvMTEvMjAx NCAxMTo0MSwgVGFtw6FzIEZla2V0ZSB3cm90ZToKPiA+IEhpIGV2ZXJ5b25lIQo+ID4gSSBhbSBu b3Qgc3VyZSBpZiB0aGlzIHByb2JsZW0gaXMgcmVsYXRlZCB0byB0aGlzIHRvcGljLiBCdXQgSSBk b24ndCBrbm93Cj4gPiB3aGVyZSBlbHNlIGl0IHdvdWxkIGZpdC4KPiA+ICBJIGFtIHVzaW5nIGEg ZHNwaWMzM2ZqMTI4bWM4MDIgd2l0aCBtcGxhYiB4YzE2IGNvbXBpbGVyLiBJIGhhdmUgdG8gcmVh ZAo+ID4gZGF0YSBmcm9tIGFuIEFEQyBhdCBhYm91dCAxbXMgaW50ZXJ2YWxzLiBUaGUgZGF0YSB0 aGF0IEkgZ2V0IGlzIGEKPiBmbG9hdGluZwo+ID4gcG9pbnQgbnVtYmVyLgo+IFRoZSBkYXRhIHRo YXQgeW91IFdBTlQgbWF5YmUgZmxvYXRpbmcgcG9pbnQsCj4gdGhlIGRhdGEgdGhhdCB5b3UgZ2V0 IGZyb20gQURDIGlzIGFuIGludGVnZXIgbnVtYmVyLgo+Cj4gPiAgSSBjb252ZXJ0IHRoaXMgbnVt YmVyIGludG8gYSBzdHJpbmcgdXNpbmcgdGhlIGZ1bmN0aW9uCj4gPiBzcHJpbnRmLiBTZW5kIG91 dCB0aGUgc3RyaW5nLiBBdCB0aGUgUEMgc2lkZSBJIHJlY2VpdmUgYW5kIHNhdmUgdGhlIGRhdGEK PiA+IHdpdGggcHV0dHkuZXhlLiBUaGVuIHNhdmUgdGhlIHNlc3Npb24gaW4gYSAuZGF0IGZpbGUu IEkgY2FuIHVzZSB0aGlzIC5kYXQKPiA+IGZpbGUgd2l0aCBtYXRsYWIgdG8gcGxvdCB0aGUgcmVz dWx0cy4KPiA+Cj4gPiBUaGUgcHJvYmxlbSBpcyB0aGF0IHNwcmludGYgcmVhbGx5IHNsb3dzIGRv d24gdGhlIHByb2Nlc3MuIEkgc2hvdWxkIGJlCj4gPiB0YWtpbmcgc2FtcGxlcyBhdCBhYm91dCAx bXMgaW50ZXJ2YWxzIGFuZCBiZWNhdXNlIG9mIHRoZSBzcHJpbnRmIGZ1bmN0aW9uCj4gPiB0aGlz IGlzIGJldHdlZW4gNS03IG1zZWNvbmRzLiBJIGNoZWNrZWQgdGhpcyB3aXRoIGFuIG9zY2lsbG9z Y29wZSBhbmQKPiA+IHdpdGhvdXQgdGhlIHNwcmludGYgZnVuY3Rpb24gSSBjYW4gZ2V0IGRvd24g dG8gZXZlbiBsZXNzIHRoYW4gMW1zCj4gaW50ZXJ2YWxzCj4gPiBlYXNpbHkuCj4gRG8gbm90IGNv bnZlcnQgdGhlIGludGVnZXIgYnV0IHRyYW5zZmVyIGl0IGFzIGlzOiBkbyB0aGUgY29tcHV0YXRp b24gd2hlcmUKPiB5b3UKPiBoYXZlIGNvbXB1dGF0aW9uYWwgcG93ZXIhCj4KPiA+Cj4gPiBJZiBh bnlib2R5IGNvdWxkIHN1Z2dlc3QgYSBmYXN0ZXIgd2F5IHRvIG1ha2UgYSBzdHJpbmcgb3V0IG9m IGEgZmxvYXRpbmcKPiA+IHBvaW50IG51bWJlciBvciBhbm90aGVyIHdheSB0byBzZW5kIGFuZCBy ZWNlaXZlIHRoZSBkYXRhIEkgd291bGQgYmUgdmVyeQo+ID4gdGhhbmtmdWwuCj4gWW91IGNhbiBj b252ZXJ0IHRoZSBBREMgZGF0YSBpbiBhIDQgY2hhcnMgc3RyaW5nIHVzaW5nIGhleGFkZWNpbWFs Cj4gbm90YXRpb24uCj4KPiA+Cj4gPiBDaGVlcnMKPiA+IFRvbWkKPiA+Cj4KPiAtLQo+IGh0dHA6 Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hp dmUKPiBWaWV3L2NoYW5nZSB5b3VyIG1lbWJlcnNoaXAgb3B0aW9ucyBhdAo+IGh0dHA6Ly9tYWls bWFuLm1pdC5lZHUvbWFpbG1hbi9saXN0aW5mby9waWNsaXN0Cj4KCgoKLS0gCiJ0aGVyZSBpcyBu byBzcG9vbiIKLS0gCmh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9T WCBGQVEgJiBsaXN0IGFyY2hpdmUKVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMg YXQKaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QK .