UHVyY2hhc2VkIGEgNCB3aGVlbGVkIGdhcmRlbiB0cm9sbGV5IHJhdGVkIGFjY29yZGluZyB0byB0 aGUgYm94IGF0IGFuCmluY3JlZGlibGUgMjAwa2cuIFRoZSBoYXJkd2FyZSBmb2xsb3dlZCB0aGlz IHVwIHdpdGggYSBiaWcgIjIwMGtnIGNhcGFjaXR5IgpzaWduLiAgSSBuZWVkZWQgdG8gbW92ZSBh IDEyMGtnIGJsb2NrLiAgSXQgZGlkIG5vdCBsb29rIHN0cm9uZyBlbm91Z2ggYnV0CmhleSwgdGhl eSBzZWVtZWQgY29uZmlkZW50LgoKR2VudGx5IGxvd2VyaW5nIGJsb2NrIGZsYXR0ZW5lZCBpdC4g IFRvb2sgaXQgYmFjay4gIFRoZXkgd2FudGVkIHRvIGRlYmF0ZQp0aGUgcmVmdW5kLgoKV2hhdCBz dXJwcmlzZWQgbWUgbW9zdCB3YXMgdGhleSBuZXZlciB0b29rIHRoZSBzaWduIGRvd24gdW50aWwg dGhleSB3ZXJlCmFsbCBnb25lLgoKCk9uIDI5IEp1bmUgMjAxNiBhdCAyMToxNiwgUnVzc2VsbE1j IDxhcHB0ZWNobnpAZ21haWwuY29tPiB3cm90ZToKCj4gT24gMjkgSnVuZSAyMDE2IGF0IDIwOjIx LCA8YWxhbi5iLnBlYXJjZUBzdGZjLmFjLnVrPiB3cm90ZToKPgo+ID4gPiDigItJIG1lbnRpb25l ZCB0aGUgR2ltbGkgR2xpZGVyIG9uIHRoZSBBcm9ja2V0IGxpc3QgbWFueSB5ZWFycyBhZ28gYW5k Cj4gbWFueQo+ID4gPiB5ZWFycyBhZnRlciB0aGUgZXZlbnQuCj4gPiA+IEEgbWFuIHdvcmtpbmcg YXQgTW9qYXZlIFNwYWNlcG9ydCByZXBsaWVkIHRoYXQgYXMgaGUgcmVhZCBteSBwb3N0IGhlCj4g d2FzCj4gPiA+IHdhdGNoaW5nIHRoZSBHaW1saSBHbGlkZXIgbWFraW5nIGl0J3MgZmluYWwgZXZl ciBsYW5kaW5nIG9uIGl0cyB3YXkgdG8KPiA+IGJlaW5nCj4gPiA+ICdtb3RoYmFsbGVkJy4KPiA+ Cj4gPiBBcyBjb2luY2lkZW5jZXMgZ28sIHRoYXQgb25lIHdvdWxkIGJlIGhhcmQgdG8gYmVhdCEK PiA+Cj4gPgo+IOKAi0kgaGF2ZSBhIGZldyB0aGF0IHdvdWxkIGdpdmUgaXQgYSBnb29kIHJ1biBm b3IgaXRzIG1vbmV5LCBidXQsIGFzIG1vc3QKPiBzZWVtIHRvIGludm9sdmUgR29kLCBJJ2xsIG5v dCB0YWxrIG9mIHRoZW0gaGVyZSA6LSkuCj4KPgo+Cj4gICAgICAgICAgICAgICAgUnVzc2VsbAo+ Cj4g4oCLCj4KPgo+ID4gLS0KPiA+IGh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNs aXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKPiA+IFZpZXcvY2hhbmdlIHlvdXIgbWVtYmVy c2hpcCBvcHRpb25zIGF0Cj4gPiBodHRwOi8vbWFpbG1hbi5taXQuZWR1L21haWxtYW4vbGlzdGlu Zm8vcGljbGlzdAo+ID4KPiAtLQo+IGh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNs aXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKPiBWaWV3L2NoYW5nZSB5b3VyIG1lbWJlcnNo aXAgb3B0aW9ucyBhdAo+IGh0dHA6Ly9tYWlsbWFuLm1pdC5lZHUvbWFpbG1hbi9saXN0aW5mby9w aWNsaXN0Cj4KLS0gCmh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9T WCBGQVEgJiBsaXN0IGFyY2hpdmUKVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMg YXQKaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QK .