RWwgRGlqb3VzLCAxIGRlIG5vdmVtYnJlIGRlIDIwMTIsIGEgbGVzIDE5OjE3OjIxLCBtay1saXN0 c0BlbWFpbC5kZSB2YSAKZXNjcml1cmU6Cj4gSSBnb3QgYSBjb21waWxhdGlvbiBlcnJvciBpbiBr YWN0aXZpdGllcy00LjkuMi9zZXJ2aWNlL21haW4uY3BwOjc5Ogo+IC0tLQo+IHN0YXRpYyB2b2lk IGluaXRTaWduYWxDYXRjaGluZygpIHsKPiAjaWZuZGVmIFFfT1NfV0lOMzIgLy8ga3Jhenk6c2tp cAo+ICAgIHN0cnVjdCBzaWdhY3Rpb24gYWN0aW9uOwo+IAo+ICAgIDo6c2lnZW1wdHlzZXQoJmFj dGlvbi5zYV9tYXNrKTsgICAgICAvLyA8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDwKPiAg ICA6OnRoaXMgaXMgbGluZSA3OSB3aGVyZSBjb21waWxpbmcgZmFpbHMgISEhISEhISEhISEhISEh IQo+ICAgIGFjdGlvbi5zYV9mbGFncyA9IDA7Cj4gCj4gICAgLyogVXNlIHRoZSBzYV9zaWdhY3Rp b24gZmllbGQgYmVjYXVzZSB0aGUgaGFuZGxlcyBoYXMgdHdvIGFkZGl0aW9uYWwKPiBwYXJhbWV0 ZXJzICovIGFjdGlvbi5zYV9oYW5kbGVyID0gc2lnbmFsSGFuZGxlcjsKPiAKPiAgICA6OnNpZ2Fj dGlvbihTSUdJTlQsICAmYWN0aW9uLCBOVUxMKTsKPiAgICA6OnNpZ2FjdGlvbihTSUdIVVAsICAm YWN0aW9uLCBOVUxMKTsKPiAgICA6OnNpZ2FjdGlvbihTSUdURVJNLCAmYWN0aW9uLCBOVUxMKTsK PiAgICA6OnNpZ2FjdGlvbihTSUdTRUdWLCAmYWN0aW9uLCBOVUxMKTsKPiAKPiAjZW5kaWYKPiB9 Cj4gLS0tCj4gCj4gbGVhZHMgdG8gYW4gZXJyb3I6Cj4gLS0tCj4gCj4gOmluZm86YnVpbGQKPiA6 L29wdC9tYWNwb3J0cy10ZXN0L3Zhci9tYWNwb3J0cy9idWlsZC9fVXNlcnNfbWFya29fV0NfTWFj UG9ydHNfcG9ydHNfa2RlX2sKPiA6YWN0aXZpdGllcy9rYWN0aXZpdGllcy93b3JrL2thY3Rpdml0 aWVzLTQuOS4yL3NlcnZpY2UvbWFpbi5jcHA6IEluIGZ1bmN0aW9uCj4gOuKAmHZvaWQgaW5pdFNp Z25hbENhdGNoaW5nKCnigJk6OmluZm86YnVpbGQKPiA6L29wdC9tYWNwb3J0cy10ZXN0L3Zhci9t YWNwb3J0cy9idWlsZC9fVXNlcnNfbWFya29fV0NfTWFjUG9ydHNfcG9ydHNfa2RlX2sKPiA6YWN0 aXZpdGllcy9rYWN0aXZpdGllcy93b3JrL2thY3Rpdml0aWVzLTQuOS4yL3NlcnZpY2UvbWFpbi5j cHA6Nzk6IGVycm9yOgo+IDpleHBlY3RlZCBpZC1leHByZXNzaW9uIGJlZm9yZSDigJgo4oCZIHRv a2VuOmluZm86YnVpbGQgbWFrZVsyXTogKioqCj4gOltzZXJ2aWNlL0NNYWtlRmlsZXMvYWN0aXZp dHktbWFuYWdlci5kaXIvbWFpbi5vXSBFcnJvciAxIGluZm86YnVpbGQKPiA6bWFrZVsyXTogTGVh dmluZyBkaXJlY3RvcnkKPiA6YC9vcHQvbWFjcG9ydHMtdGVzdC92YXIvbWFjcG9ydHMvYnVpbGQv X1VzZXJzX21hcmtvX1dDX01hY1BvcnRzX3BvcnRzX2tkZV8KPiA6a2FjdGl2aXRpZXMva2FjdGl2 aXRpZXMvd29yay9idWlsZCcgaW5mbzpidWlsZCBtYWtlWzFdOiAqKioKPiA6W3NlcnZpY2UvQ01h a2VGaWxlcy9hY3Rpdml0eS1tYW5hZ2VyLmRpci9hbGxdIEVycm9yIDIgaW5mbzpidWlsZCBtYWtl WzFdOgo+IDoqKiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgo+IDppbmZvOmJ1aWxk IC9vcHQvbWFjcG9ydHMtdGVzdC9iaW4vY21ha2UgLUUgY21ha2VfcHJvZ3Jlc3NfcmVwb3J0Cj4g Oi9vcHQvbWFjcG9ydHMtdGVzdC92YXIvbWFjcG9ydHMvYnVpbGQvX1VzZXJzX21hcmtvX1dDCj4g LS0tCj4gCj4gCj4gT2J2aW91c2x5IGdjYyBkb2Vzbid0IGxpa2UgIjo6c2lnZW1wdHlzZXQoKSIg aW4gdGhhdCBzdGF0aWMgZnVuY3Rpb24hCj4gCj4gUmVtb3ZpbmcgdGhlICI6OiIgaW4gZnJvbnQg b2Ygc2lnZW1wdHlzZXQoKSBmaXhlcyBpdCEKPiBDb3VsZCBpdCBiZSB0aGF0IHNpZ2VtcHR5c2V0 KCkgaXMgYWN0dWFsbHkgYSBtYWNybz8KCkNvdWxkIGJlLCB3aGF0IGlmIHlvdSBnbyBhbmQgY2hl Y2sgaXQ/IFlvdXIgc3lzdGVtIGhlYWRlcnMgaGF2ZSB0byBkZWZpbmUgCnNpZ2VtcHR5c2V0IHNv bWV3aGVyZSAobW9zdCBwcm9iYWJseSBpbiBzaWduYWwuaCBvciBzb21ldGhpbmcgdGhhdCBpbmNs dWRlcyAKaXQpLgoKQ2hlZXJzLAogIEFsYmVydAoKPiAKPiA+PiBWaXNpdCBodHRwOi8vbWFpbC5r ZGUub3JnL21haWxtYW4vbGlzdGluZm8va2RlLWRldmVsI3Vuc3ViIHRvIHVuc3Vic2NyaWJlCj4g Pj4gPDwKCj4+IFZpc2l0IGh0dHA6Ly9tYWlsLmtkZS5vcmcvbWFpbG1hbi9saXN0aW5mby9rZGUt ZGV2ZWwjdW5zdWIgdG8gdW5zdWJzY3JpYmUgPDwK