U2F0IEZlYiAgNiAyMDoyNToyNSAxOTk5ICBNYXJjZWwgQmF1ciA8bWJhdXJAZzI2LmV0aHouY2g+CiAgICAgICAgLSBBZGRlZCBuZXcgSURTX05PVFNBVkVEIHJlc3NvdXJjZSAobmVlZHMgdHJhbnNsYXRpb24gaW4gKi5yYykNCiAgICAgICAgLSBJbXByb3ZlZCBwcmludGluZyBzdXBwb3J0IChub3QgeWV0IGNvbXBsZXRlKQogICAgICAgIC0gSW1wcm92ZWQgZmlsZSBkcmFnIGFuZCBkcm9wIChzaG91bGQgbm93IHdvcmspCiAgICAgICAgLSBHZW5lcmFsIGNvZGUgY2xlYW51cA0KClRodSBKYW4gMjggMTg6MTc6MDggMTk5OSAgSnVra2EgSWl2b25lbiAgPGlpdm9uZW5AaWtpLmZpPgoKCSogW0ZpLnJjXSBbbWFpbi5jXSBbTWFrZWZpbGUuaW5dCglBZGRlZCBGaW5uaXNoIGxhbmd1YWdlIHN1cHBvcnQuCgkNClN1biBPY3QgMTggMTQ6MTE6NDIgMTk5OCAgTWFyY2VsIEJhdXIgPG1iYXVyQGcyNi5ldGh6LmNoPg0KDQogICAgICAgICogWz8/LnJjXSwgW1RPRE9dLCBbZGlhbG9nLmNdLCBbZGlhbG9nLmhdLCBbbGFuZ3VhZ2UuY10sDQogICAgICAgIFtsYW5ndWFnZS5oXSwgW2xpY2Vuc2UuY10sIFtsaWNlbnNlLmhdLCBbbWFpbi5jXSwgW21haW4uaF0sDQogICAgICAgIFtub3RlcGFkLnJjXToNCg0KCS0gRml4ZWQgR2V0T3BlbkZpbGVOYW1lIGFuZCBHZXRTYXZlRmlsZU5hbWUgZGlhbG9ncy4NCgktIEZpeGVkIFByaW50IGRpYWxvZyBhbmQgaW50cm9kdWNlZCBQcmludGVyU2V0dXAgZGlhbG9nLg0KCS0gRml4ZWQgUGFnZVNldHVwIGRpYWxvZzogdmFsdWVzIGFyZSBub3cgY29ycmVjdGx5IGluaXRpYWxpemVkDQogICAgICAgICAgKGhhZCB0byBjaGFuZ2UgYWxsICoucmMgZmlsZXMpDQoJLSBQcmVsaW1pbmFyeSBmaWxlIGRyYWcgYW5kIGRyb3Agc3VwcG9ydC4NCg0KRnJpIEp1biAxMiAyMzoyOTo0NCAxOTk4ICBNYXJjZWwgQmF1ciAgPG1iYXVyQGcyNi5ldGh6LmNoPg0KICAgICAgICAtIEZpeGVkIEdldERhdGVGb3JtYXQoKS0+R2V0VGltZUZvcm1hdCgpIGZvciBsb2NhbGUgdGltZS4NCg0KTW9uIE1heSAyNSAxNDozMDowMCAxOTk4ICBIZW5yaWsgT2xzZW4gPGhlbnJpa0BpYWVzdGUuZGs+DQogICAgICAgICogW0RhLnJjXQ0KICAgICAgICAtIEFkZGVkIERhbmlzaCBsYW5ndWFnZSBzdXBwb3J0Lg0KDQpGcmkgTWF5IDE1IDIzOjU5OjIyIDE5OTggIE1hcmNlbCBCYXVyIDxtYmF1ckBnMjYuZXRoei5jaD4NCiAgICAgICAgLSBEYXRlL1RpbWUgbm93IHVzZXMgbG9jYWxlLXNwZWNpZmljIGZvcm1hdHMNCiAgICAgICAgLSBMYW5ndWFnZS1zcGVjaWZpYyB3aW5kb3cgY2FwdGlvbiwgZGlzcGxheXMgZmlsZSBiZWluZyBlZGl0ZWQuDQogICAgICAgIC0gU3RhcnRlZCB3aXRoIHBhcnNpbmcgb2YgY29tbWFuZCBsaW5lIHNldHRpbmdzDQogICAgICAgIC0gU3RhcnRlZCB3aXRoIERvT3BlbkZpbGUsIERvQ2xvc2VGaWxlLCBEb1NhdmVGaWxlIGxvZ2ljcw0KICAgICAgICAtIFByb21wdCB1c2VyIHRvIHNhdmUgc2V0dGluZ3Mgd2hlbiBjbG9zaW5nIGEgZmlsZQ0KICAgICAgICAgIC0+IEludHJvZHVjZWQgYSBuZXcgbWVzc2FnZSBib3ggKG5vdCB5ZXQgZmluaXNoZWQpDQogICAgICAgIC0gRml4ZWQgbWlub3IgZmVhdHVyZXMgKG1pc3NpbmcgSURTIGluIG1haW4uaCwgLi4uKQ0KDQpTdW4gTWFyIDI5IDIwOjI5OjQxIDE5OTggIExhdXJlbnQgQnVmZmxlciA8bGF1cmVudEBibHVld2luLmNoPg0KICAgICAgICAqIFtGci5yY10NCiAgICAgICAgLSBBZGRlZCBGcmVuY2ggbGFuZ3VhZ2Ugc3VwcG9ydC4NCg0KRnJpIEZlYiAyNyAyMTowMzozNyAxOTk4ICBLYXJsIEJhY2tzdHL2bSA8a2FybF9iQGdlb2NpdGllcy5jb20+DQogICAgICAgIC0gRml4ZWQgc29tZSBtaW5vciBmZWF0dXJlcy4NCg0KU2F0IEZlYiAxNCAxNzo0MjoyOSAxOTk4ICBLYXJsIEJhY2tzdHL2bSA8a2FybF9iQGdlb2NpdGllcy5jb20+DQogICAgICAgICogTkVXIFtsYW5ndWFnZS5jXSBbbGFuZ3VhZ2UuaF0NCiAgICAgICAgLSBUYWtlcyBjYXJlIG9mIGFsbCBsYW5ndWFnZSByZWxhdGVkIHN0dWZmLg0KICAgICAgICAtIEEgbmV3IFtwcm9ncmFtc10gaW4gLndpbmVyYyBpcyBpbiB1c2UuDQoNClR1ZSBGZWIgMTAgMjM6MzQ6MDggMTk5OCAgTWFyY2VsIEJhdXIgPG1iYXVyQGcyNi5ldGh6LmNoPg0KICAgICAgICAtIEZpeGVkIGJyb2tlbiBsYW5ndWFnZSBtZW51cw0KDQpGcmkgRmViIDA2IDIzLjU0LjM1IDE5OTggIEthcmwgQmFja3N0cvZtIDxrYXJsX2JAZ2VvY2l0aWVzLmNvbT4NCiAgICAgICAgKiBbbWFpbi5jXSBbbWFpbi5oXSBbbm90ZXBhZC5yY10NCiAgICAgICAgLSBGaXhlZCBsYW5ndWFnZSBzdXBwb3J0IGZvciBtZW51cy4gICAgIA0KICAgICAgICAqIE5FVyBbZGlhbG9nLmNdIFtkaWFsb2cuaF0NCiAgICAgICAgLSBNb3ZlZCBhbGwgbWVudSBhbmQgZGlhbG9nIHJlbGF0ZWQgc3R1ZmYgaGVyZS4NCg0KU3VuIEphbiAxOCAyMzowNTowNCAxOTk4ICBLYXJsIEJhY2tzdHL2bSA8a2FybF9iQGdlb2NpdGllcy5jb20+DQogICAgICAgICogW1N3LnJjXQ0KICAgICAgICAtIEFkZGVkL3VwZGF0ZWQgU3dlZGlzaCBsYW5ndWFnZSBzdXBwb3J0Lg0KDQpUdWUgRGVjIDIzIDIzOjM1OjA0IDE5OTcgIE1hcmNlbCBCYXVyIDxtYmF1ckBnMjYuZXRoei5jaD4NCiAgICAgICAgLSBGaXhlZCBsb3RzIG9mIGJ1Z3Mgdy8gcmVzb3VyY2VzIGluICoucmMNCiAgICAgICAgLSBtb3ZlZCBbbm90ZXBhZC5jXSBpbnRvIFttYWluLmNdDQogICAgICAgIC0gbW92ZWQgW25vdGVwYWQuaF0gaW50byBbbWFpbi5oXQ0KICAgICAgIA0KRnJpIERlYyAwNSAyMDo1MTo1NSAxOTk3ICBNYXJjZWwgQmF1ciA8bWJhdXJAZzI2LmV0aHouY2g+DQogICAgICAgICogW25vdGVwYWQuY10gW25vdGVwYWQuaF0gW25vdGVwYWQucmNdIFtFbi5yY10gW0RlLnJjXQ0KICAgICAgICAgIFtsaWNlbnNlLmNdIFtsaWNlbnNlLmhdIFtMaWNlbnNlX0VuLmNdDQogICAgICAgICAgW1JFQURNRV0gW1RPRE9dIFtDaGFuZ2VMb2ddDQogICAgICAgIC0gT3JpZ2luYWxzIGJ5IE1hcmNlbCBCYXVyDQoK