QWxpZW4gdHJhY3RvciBiZWFtLCB0aGV54oCZcmUgc3RlYWxpbmcgaXQgdG8gcGx1bmRlciB0aGUg aGVsaXVtMyByZXNlcnZlcy4KCk9uIFN1biwgMTcgSnVuIDIwMTggYXQgMDc6MjksIFNlYW4gQnJl aGVueSA8c2hiN0Bjb3JuZWxsLmVkdT4gd3JvdGU6Cgo+IERpZCBhbnlvbmUgZWxzZSBub3RpY2Ug YSBncmVlbiBiYW5kIGFyb3VuZCB0aGUgcmlnaHQtaGFuZCBsaW1iIG9mIHRoZSBtb29uPwo+IElt YWdlIGNvbXByZXNzaW9uIGFydGVmYWN0Pwo+Cj4gT24gSnVuIDE2LCAyMDE4IDI6NDMgQU0sICJG b3JyZXN0IENocmlzdGlhbiAoTGlzdCBBY2NvdW50KSIgPAo+IGxpc3RzQHBhY2tldGZsdXguY29t PiB3cm90ZToKPgo+IFNpbmNlIGl0J3MgW09UXToKPgo+IDxzYXJjYXNtPllvdSBjYW4ndCB0cnVz dCB0aGlzIGRhdGEsIGl0J3MgZnJvbSBOQVNBLiAgQW55dGhpbmcgd2hpY2ggc2hvd3MKPiB0aGUg ZWFydGggaXMgcm91bmQgaXMgb2J2aW91c2x5IGZha2VkIGFuZCBwYXJ0IG9mIHRoZSByb3VuZCBl YXJ0aAo+IGNvbnNwaXJhY3kuICBBZnRlciBhbGwsIGl0J3MgcGxhaW4gYW5kIG9idmlvdXMgdGhl IGVhcnRoIGlzIGZsYXQuICBBbnlvbmUKPiBjYW4gdGVsbCB0aGlzIGp1c3QgYnkgbG9va2luZyBh dCB0aGUgaG9yaXpvbi48L3NhcmNhc20+Cj4KPiAoQW5kIG5vLCBJIGRvbid0IGJlbGlldmUgdGhp cyBmb3IgYSBtaW51dGUpLgo+Cj4KPgo+Cj4KPiAtLQo+ICpGb3JyZXN0IENocmlzdGlhbiogKkNF TyoqLCBQYWNrZXRGbHV4IFRlY2hub2xvZ2llcywgSW5jLioKPiBUZWw6IDQwNi00NDktMzM0NSB8 IEFkZHJlc3M6IDM1NzcgQ291bnRyeXNpZGUgUm9hZCwgSGVsZW5hLCBNVCA1OTYwMgo+IDxodHRw czovL21hcHMuZ29vZ2xlLmNvbS8/cT0zNTc3K0NvdW50cnlzaWRlK1JvYWQsK0hlbGVuYSwrTVQr NTk2MDImZW50cnk9Z21haWwmc291cmNlPWc+Cj4gZm9ycmVzdGNAaW1hY2guY29tIHwgaHR0cDov L3d3dy5wYWNrZXRmbHV4LmNvbQo+IDxodHRwOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9md2Nocmlz dGlhbj4gIDxodHRwOi8vZmFjZWJvb2suY29tL3BhY2tldGZsdXg+Cj4gPGh0dHA6Ly90d2l0dGVy LmNvbS9AcGFja2V0Zmx1eD4KPiAtLQo+IGh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9w aWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKPiBWaWV3L2NoYW5nZSB5b3VyIG1lbWJl cnNoaXAgb3B0aW9ucyBhdAo+IGh0dHA6Ly9tYWlsbWFuLm1pdC5lZHUvbWFpbG1hbi9saXN0aW5m by9waWNsaXN0Cj4gLS0KPiBodHRwOi8vd3d3LnBpY2xpc3QuY29tL3RlY2hyZWYvcGljbGlzdCBQ SUMvU1ggRkFRICYgbGlzdCBhcmNoaXZlCj4gVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9w dGlvbnMgYXQKPiBodHRwOi8vbWFpbG1hbi5taXQuZWR1L21haWxtYW4vbGlzdGluZm8vcGljbGlz dAo+Ci0tIApDbGludC4gTTBVQVcgSU84MwoKKk5vIHRyZWVzIHdlcmUgaGFybWVkIGluIHRoZSBz ZW5kaW5nIG9mIHRoaXMgbWFpbC4gSG93ZXZlciwgYSBsYXJnZSBudW1iZXIKb2YgZWxlY3Ryb25z IHdlcmUgZ3JlYXRseSBpbmNvbnZlbmllbmNlZC4qCi0tIApodHRwOi8vd3d3LnBpY2xpc3QuY29t L3RlY2hyZWYvcGljbGlzdCBQSUMvU1ggRkFRICYgbGlzdCBhcmNoaXZlClZpZXcvY2hhbmdlIHlv dXIgbWVtYmVyc2hpcCBvcHRpb25zIGF0Cmh0dHA6Ly9tYWlsbWFuLm1pdC5lZHUvbWFpbG1hbi9s aXN0aW5mby9waWNsaXN0Cg== .