IyBMSUNFTkNFIC8gVFJXWURERUQNCiMgKEVuZ2xpc2ggdGV4dCBiZWxvdykuDQojIA0KIyBGZmVpbCBBRkY6DQojIEhhd2xmcmFpbnQgKEMpIDIwMDgtMjAxMiwgVHJvaSAoaHR0cDovL3Ryb2kub3JnKQ0KIyBIYXdsZnJhaW50IChDKSAyMDA0LTIwMTEsIFByaWZ5c2dvbCBCYW5nb3IgKGh0dHA6Ly93d3cuYmFuZ29yLmFjLnVrKQ0KIyANCiMgRmZlaWwgRElDOg0KIyBIYXdsZnJhaW50IChDKSAyMDA0LTIwMTEsIFByaWZ5c2dvbCBCYW5nb3IgKGh0dHA6Ly93d3cuYmFuZ29yLmFjLnVrKQ0KIyANCiMgTWFlJ3IgZ2VpcmlhZHVyIGh3biBmZWRkYWx3ZWRkIHJoeWRkOyBnYWxsd2NoIGVpIGFpbGRvc2JhcnRodSBhL25ldSBlaQ0KIyBhZGRhc3UgZGFuIGRlbGVyYXUgVHJ3eWRkZWQgR3lob2VkZHVzIEd5ZmZyZWRpbm9sIExhaSBHTlUgKHlyIExHUEwpIGZlbA0KIyB5J2kgY3lob2VkZHd5ZCBnYW4geSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IG5haWxsIGFpIGZlcnNpd24gMyB5DQojIERyd3lkZGVkLCBuZXUgKHluIPRsIGVpY2ggZGV3aXMpIHVucmh5dyBmZXJzaXduIGRpd2VkZGFyYWNoLg0KIyANCiMgRG9zYmFydGhpciB5IGdlaXJpYWR1ciBod24geW4geSBnb2JhaXRoIHkgYnlkZCB5biBkZGVmbnlkZGlvbCwgb25kIGhlYg0KIyB1bnJoeXcgd2FyYW50OyBoZWIgaHlkIHluIG9lZCB5IHdhcmFudCBvYmx5Z2VkaWcgbyBmYXJzaWFuZHd5YWV0aCBuZXUNCiMgZmZpdHJ3eWRkIGF0IGJ3cnBhcyBhcmJlbm5pZy4NCiMNCiMjIEVOR0xJU0ggIyMjIyMNCiMNCiMgQUZGIEZpbGU6DQojIENvcHlyaWdodCAoQykgMjAwOC0yMDEyLCBUcm9pIChodHRwOi8vdHJvaS5vcmcpDQojIENvcHlyaWdodCAoQykgMjAwNC0yMDExLCBQcmlmeXNnb2wgQmFuZ29yIChodHRwOi8vd3d3LmJhbmdvci5hYy51aykNCiMgDQojIERJQyBGaWxlOg0KIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMSwgUHJpZnlzZ29sIEJhbmdvciAoaHR0cDovL3d3dy5iYW5nb3IuYWMudWspDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlICh0aGUgTEdQTCkNCiMgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlDQojIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojIA0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiANCg==