LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgICBnbG9iYWwgcHJvamVjdCBkZWZpbml0aW9uIGZpbGUKCiAgICAxMi4wNi4xOTk4ICAgLXJzCiAgICAxMS4wMi4yMDAyICAgci5kLiBFcndlaXRlcnVuZ2VuLCBFcmdhZW56dW5nZW4KICAgIDIwLjA4LjIwMDIgICBTWVMgVEVDIGVsZWN0cm9uaWMgLWFzCiAgICAgICAgICAgICAgICAgRGVmaW5pdGlvbiBTY2hsdWVzc2Vsd29ydCAnR0VORVJJQycKICAgICAgICAgICAgICAgICBmdWVyIGRhcyBFcnpldWdlbiB2b24gR2VuZXJpYyBQb2ludGVyCiAgICAyOC4wOC4yMDAyICAgci5kLiBlcndlaXRlcnRlciBTWVMgVEVDIERlYnVnIENvZGUKICAgIDE2LjA5LjIwMDIgICByLmQuIGtvbXBsZXR0ZSBVZWJlcnNldHp1bmcgaW4gRW5nbGlzY2gKICAgIDExLjA0LjIwMDMgICBmLmouIEVyZ2Flbnp1bmcgZnVlciBNaXRzdWJpc2hpIE5DMzAgQ29tcGlsZXIKICAgIDE3LjA2LjIwMDMgICAtcnMgIERlZmluaXRpb24gdm9uIEJhc2lzdHlwZW4gaW4gPCNpZm5kZWYgX1dJTkRFRl8+IGdlc2V0enQKICAgIDE2LjA0LjIwMDQgICByLmQuIEVyZ2Flbnp1bmcgZnVlciBCb3JsYW5kIEMrKyBCdWlsZGVyCiAgICAzMC4wOC4yMDA0ICAgLXJzICBUUkFDRTUgZWluZ2Vm/Gd0CiAgICAyMy4xMi4yMDA1ICAgZC5rLiBEZWZpbml0aW9ucyBmb3IgSUFSIGNvbXBpbGVyCgogICAgJElkOiBnbG9iYWwuaCx2IDEuNiAyMDA4LzExLzA3IDEzOjU1OjU2IEQuS3J1ZWdlciBFeHAgJAoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNpZm5kZWYgX0dMT0JBTF9IXwojZGVmaW5lIF9HTE9CQUxfSF8KCgojZGVmaW5lIFRSQUNFICBwcmludGsKCi8vIC0tLSBsb2dpYyB0eXBlcyAtLS0KI2lmbmRlZiBCT09MCiNkZWZpbmUgQk9PTCB1bnNpZ25lZCBjaGFyCiNlbmRpZgoKLy8gLS0tIGFsaWFzIHR5cGVzIC0tLQojaWZuZGVmIFRSVUUKI2RlZmluZSBUUlVFICAweEZGCiNlbmRpZgojaWZuZGVmIEZBTFNFCiNkZWZpbmUgRkFMU0UgMHgwMAojZW5kaWYKI2lmbmRlZiBfVElNRV9PRl9EQVlfREVGSU5FRF8KdHlwZWRlZiBzdHJ1Y3QgewoJdW5zaWduZWQgbG9uZyBpbnQgbV9kd01zOwoJdW5zaWduZWQgc2hvcnQgaW50IG1fd0RheXM7Cgp9IHRUaW1lT2ZEYXk7CgojZGVmaW5lIF9USU1FX09GX0RBWV9ERUZJTkVEXwoKI2VuZGlmCgovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyAgRGVmaW5pdGlvbiB2b24gVFJBQ0UKLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiNpZm5kZWYgTkRFQlVHCgojaWZuZGVmIFRSQUNFMAojZGVmaW5lIFRSQUNFMChwMCkgICAgICAgICAgICAgICAgICAgICAgVFJBQ0UocDApCiNlbmRpZgoKI2lmbmRlZiBUUkFDRTEKI2RlZmluZSBUUkFDRTEocDAsIHAxKSAgICAgICAgICAgICAgICAgIFRSQUNFKHAwLCBwMSkKI2VuZGlmCgojaWZuZGVmIFRSQUNFMgojZGVmaW5lIFRSQUNFMihwMCwgcDEsIHAyKSAgICAgICAgICAgICAgVFJBQ0UocDAsIHAxLCBwMikKI2VuZGlmCgojaWZuZGVmIFRSQUNFMwojZGVmaW5lIFRSQUNFMyhwMCwgcDEsIHAyLCBwMykgICAgICAgICAgVFJBQ0UocDAsIHAxLCBwMiwgcDMpCiNlbmRpZgoKI2lmbmRlZiBUUkFDRTQKI2RlZmluZSBUUkFDRTQocDAsIHAxLCBwMiwgcDMsIHA0KSAgICAgIFRSQUNFKHAwLCBwMSwgcDIsIHAzLCBwNCkKI2VuZGlmCgojaWZuZGVmIFRSQUNFNQojZGVmaW5lIFRSQUNFNShwMCwgcDEsIHAyLCBwMywgcDQsIHA1KSAgVFJBQ0UocDAsIHAxLCBwMiwgcDMsIHA0LCBwNSkKI2VuZGlmCgojaWZuZGVmIFRSQUNFNgojZGVmaW5lIFRSQUNFNihwMCwgcDEsIHAyLCBwMywgcDQsIHA1LCBwNikgIFRSQUNFKHAwLCBwMSwgcDIsIHAzLCBwNCwgcDUsIHA2KQojZW5kaWYKCiNlbHNlCgojaWZuZGVmIFRSQUNFMAojZGVmaW5lIFRSQUNFMChwMCkKI2VuZGlmCgojaWZuZGVmIFRSQUNFMQojZGVmaW5lIFRSQUNFMShwMCwgcDEpCiNlbmRpZgoKI2lmbmRlZiBUUkFDRTIKI2RlZmluZSBUUkFDRTIocDAsIHAxLCBwMikKI2VuZGlmCgojaWZuZGVmIFRSQUNFMwojZGVmaW5lIFRSQUNFMyhwMCwgcDEsIHAyLCBwMykKI2VuZGlmCgojaWZuZGVmIFRSQUNFNAojZGVmaW5lIFRSQUNFNChwMCwgcDEsIHAyLCBwMywgcDQpCiNlbmRpZgoKI2lmbmRlZiBUUkFDRTUKI2RlZmluZSBUUkFDRTUocDAsIHAxLCBwMiwgcDMsIHA0LCBwNSkKI2VuZGlmCgojaWZuZGVmIFRSQUNFNgojZGVmaW5lIFRSQUNFNihwMCwgcDEsIHAyLCBwMywgcDQsIHA1LCBwNikKI2VuZGlmCgojZW5kaWYKCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vICBkZWZpbml0aW9uIG9mIEFTU0VSVAovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKI2lmbmRlZiBBU1NFUlQKI2RlZmluZSBBU1NFUlQocCkKI2VuZGlmCgovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyAgU1lTIFRFQyBleHRlbnNpb25zCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgovLyBUaGlzIG1hY3JvIGRvZXNuJ3QgcHJpbnQgb3V0IEMtZmlsZSBhbmQgbGluZSBudW1iZXIgb2YgdGhlIGZhaWxlZCBhc3NlcnRpb24KLy8gYnV0IGEgc3RyaW5nLCB3aGljaCBleGFjdGx5IG5hbWVzIHRoZSBtaXN0YWtlLgojaWZuZGVmIE5ERUJVRwoKI2RlZmluZSBBU1NFUlRNU0coZXhwcixzdHJpbmcpICBpZiAoIShleHByKSkge1wKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSSU5URjAgKCJBc3NlcnRpb24gZmFpbGVkOiAiIHN0cmluZyApO1wKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlICgxKTt9CiNlbHNlCiNkZWZpbmUgQVNTRVJUTVNHKGV4cHIsc3RyaW5nKQojZW5kaWYKCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojZW5kaWYgLy8gI2lmbmRlZiBfR0xPQkFMX0hfCgovLyBQbGVhc2Uga2VlcCBhbiBlbXB0eSBsaW5lIGF0IHRoZSBlbmQgb2YgdGhpcyBmaWxlLgo=