VGhpcyBpcyBhIGdvb2QgZXhhbXBsZSBvZiB3aHkgaXQncyB3b3J0aCBwb3N0aW5nIHF1ZXN0aW9u cyBsaWtlIHRoaXMgdG8gdGhlClBJQ0xtaW5kIGRlc3BpdGUgdGhlIG5ldCBiZWluZyAic3VnZ2Vz dGlvbnMgcmljaCIuCgo+Pj7igIsKPiBEYXZpZCBDIEJyb3duOgo+Pj4+IFN1cmVseSB5b3UgbmVl ZCBhbWJpZW50IHRvIGJlIGJlbG93IGZyZWV6aW5nIG9yIHlvdXIgc25vdyB3aWxsIG1lbHQgYXMK Pj4+PiBmYXN0IGFzIGl0IGZvcm1zPwoKPj4+ICJNQ0giCuKAiz4+4oCLCj4gVGhlIHNraSBjb3Vy c2VzIHNlZW0gdG8gbm90IGhhdmUgdGhhdCBpc3N1ZS4KPj4+IE1heWJlIGl0J3MgZHVlIHRvIHRo ZSB2b2x1bWUgb2Ygc25vdyB0aGV5IHByb2R1Y2Uu4oCLCgoK4oCLPj4KRGF2aWQgQyBCcm93biA8 ZGNiLmhvbWVAZ21haWwuY29tPiB3cm90ZToKCj4gTm8uICBUaGUgc2tpIHJlc29ydHMgZG8gaGF2 ZSB0aGF0IHByb2JsZW0uICBUaGUgdXN1YWwgc2l0dWF0aW9uIGlzIGFuCj4gYW50aWN5Y2xvbmUg d2hlbiBpdCBpcyB2ZXJ5IGNvbGQgYnV0IHRoZXJlIGlzIG5vIHByZWNpcGl0YXRpb24uICBTbyB0 aGUKPiBzbm93IG1hY2hpbmUgcHJvdmlkZXMgdGhlIG1pc3NpbmcgcHJlY2lwaXRhdGlvbgo+Cj4g SGVyZSB3ZXN0ZXJuIFVLIHdlIG9mdGVuIGhhdmUgdGhlIG9wcG9zaXRlIHNpdHVhdGlvbi4gIFNu b3cgZmFsbGluZyBpbnRvIGEKPiB3YXJtIGVudmlyb25tZW50IGFuZCBtZWx0aW5nIGFzIGl0IGhp dHMgdGhlIGdyb3VuZAo+IOKAiwo+CgrigItXaGlsZSBJIGRvIG5vdCBrbm93IHdoYXQgd29ya3Ms IGFuZCBoYWQgc3VnZ2VzdGVkIEkgbWF5IG5lZWQgYW5kIG1heWJlCmNvdWxkIGNyZWF0ZSBjb2xk IGFpciBhdCB0aGUgb3V0cHV0LCBhIGZldyBsaW5lcyBvZiB0byAmIGZybyBoZWxwIHRvCnByb3Zp ZGUgc29tZSBvYnZpb3VzIG9ubHkgaW4gcmV0cm9zcGVjdCBiYWNrZ3JvdW5kLiDigIsKCuKAi1Ro ZSBkaWUgZ3JpbmRlciBNQVkgYmUgYSBnb29kIHNvdXJjZSBvZiBhbWJpZW50IGNvb2xpbmcgd2l0 aCB0aGUgZXhwYW5zaW9uCm5venpsZSB1c2VkIGZvciBzbm93IG1ha2luZy4g4oCLCgrigItNZWx0 aW5nIGluIHdhcm0gYWlyIGlzIGFuIGlzc3VlIGlmIGVuZXJneSBpbnB1dCByYXRlIGlzIG5vdCBz aWduaWZpY2FudGx5Cmxvd2VyIHRoYW4gZm9ybWF0aW9uIHJhdGUuCkkgZG9uJ3Qga25vdyBpZiBJ IGNhbiBnZXQgcGFydGljbGUgc2l6ZSBpbmNyZWFzZSB3aXRoIGFnZ2xvbWVyYXRpb24gb3IKbWF5 YmUgZXZlbiBzZWVkaW5nICh3aXRoIGVnIHNtb2tlIG9yIGdsY29sIHZhcG91ciBvciAuLi4/KQpX b3VsZCBiZSByYXBpZGx54oCLIGdldHRpbmcgYWJvdmUgdGhlIHNpbXBsZS1mdW4gbGV2ZWwgSSBo YWQgaG9wZWQgZm9yLgpJIGNhbiBib3Jyb3cgYSAiZm9nIG1hY2hpbmUiIC0gbm9uIHNub3cgdHlw ZS4KCiJTbm93aW5nIiBpbnRvIGEgZnJpZGdlIG9yIGZyZWV6ZXIgZHVyaW5nIGluaXRpYWwgaW52 ZXN0aWdhdGlvbiB3b3VsZCBoZWxwCnJlbW92ZSBvbmUgdmFyaWFibGUuIE1heWJlLgoKCgrigIsg ICAgICAgICAgICBSdXNzZWxsCuKAiwotLSAKaHR0cDovL3d3dy5waWNsaXN0LmNvbS90ZWNocmVm L3BpY2xpc3QgUElDL1NYIEZBUSAmIGxpc3QgYXJjaGl2ZQpWaWV3L2NoYW5nZSB5b3VyIG1lbWJl cnNoaXAgb3B0aW9ucyBhdApodHRwOi8vbWFpbG1hbi5taXQuZWR1L21haWxtYW4vbGlzdGluZm8v cGljbGlzdAo= .