LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiAgKGMpIFNZU1RFQyBlbGVjdHJvbmljIEdtYkgsIEQtMDc5NzMgR3JlaXosIEF1Z3VzdC1CZWJlbC1TdHIuIDI5CiAgICAgIHd3dy5zeXN0ZWMtZWxlY3Ryb25pYy5jb20KCiAgUHJvamVjdDogICAgICBvcGVuUE9XRVJMSU5LCgogIERlc2NyaXB0aW9uOiAgZGVmaW5pdGlvbnMgZm9yIFNETyBBYm9ydCBjb2RlcwoKICBMaWNlbnNlOgoKICAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCiAgICBhcmUgbWV0OgoKICAgIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCgogICAgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCgogICAgMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBTWVNURUMgZWxlY3Ryb25pYyBHbWJIIG5vciB0aGUgbmFtZXMgb2YgaXRzCiAgICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKICAgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gRm9yIHdyaXR0ZW4KICAgICAgIHBlcm1pc3Npb24sIHBsZWFzZSBjb250YWN0IGluZm9Ac3lzdGVjLWVsZWN0cm9uaWMuY29tLgoKICAgIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICAgICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiAgICBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUwogICAgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKICAgIENPUFlSSUdIVCBIT0xERVJTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAogICAgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywKICAgIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKICAgIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKICAgIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAogICAgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4KICAgIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQogICAgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgogICAgU2V2ZXJhYmlsaXR5IENsYXVzZToKCiAgICAgICAgSWYgYSBwcm92aXNpb24gb2YgdGhpcyBMaWNlbnNlIGlzIG9yIGJlY29tZXMgaWxsZWdhbCwgaW52YWxpZCBvcgogICAgICAgIHVuZW5mb3JjZWFibGUgaW4gYW55IGp1cmlzZGljdGlvbiwgdGhhdCBzaGFsbCBub3QgYWZmZWN0OgogICAgICAgIDEuIHRoZSB2YWxpZGl0eSBvciBlbmZvcmNlYWJpbGl0eSBpbiB0aGF0IGp1cmlzZGljdGlvbiBvZiBhbnkgb3RoZXIKICAgICAgICAgICBwcm92aXNpb24gb2YgdGhpcyBMaWNlbnNlOyBvcgogICAgICAgIDIuIHRoZSB2YWxpZGl0eSBvciBlbmZvcmNlYWJpbGl0eSBpbiBvdGhlciBqdXJpc2RpY3Rpb25zIG9mIHRoYXQgb3IKICAgICAgICAgICBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGljZW5zZS4KCiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgICAgICAgICAgICRSQ1NmaWxlOiBFcGxTZG9BYy5oLHYgJAoKICAgICAgICAgICAgICAgICRBdXRob3I6IEQuS3J1ZWdlciAkCgogICAgICAgICAgICAgICAgJFJldmlzaW9uOiAxLjQgJCAgJERhdGU6IDIwMDgvMDQvMTcgMjE6MzY6MzIgJAoKICAgICAgICAgICAgICAgICRTdGF0ZTogRXhwICQKCiAgICAgICAgICAgICAgICBCdWlsZCBFbnZpcm9ubWVudDoKICAgICAgICAgICAgICAgICAgICAuLi4KCiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICBSZXZpc2lvbiBIaXN0b3J5OgoKICAyMDA2LzA2LzMwIGsudC46IGZpcnN0IGltcGxlbWVudGF0aW9uCgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKI2lmbmRlZiBfRVBMU0RPQUNfSF8KI2RlZmluZSBfRVBMU0RPQUNfSF8KCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLy8gU0RPIGFib3J0IGNvZGVzCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiNkZWZpbmUgICAgRVBMX1NET0FDX1RJTUVfT1VUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUwNDAwMDBMCiNkZWZpbmUgICAgRVBMX1NET0FDX1VOS05PV05fQ09NTUFORF9TUEVDSUZJRVIgICAgICAgICAgIDB4MDUwNDAwMDFMCiNkZWZpbmUgICAgRVBMX1NET0FDX0lOVkFMSURfQkxPQ0tfU0laRSAgICAgICAgICAgICAgICAgIDB4MDUwNDAwMDJMCiNkZWZpbmUgICAgRVBMX1NET0FDX0lOVkFMSURfU0VRVUVOQ0VfTlVNQkVSICAgICAgICAgICAgIDB4MDUwNDAwMDNMCiNkZWZpbmUgICAgRVBMX1NET0FDX09VVF9PRl9NRU1PUlkgICAgICAgICAgICAgICAgICAgICAgIDB4MDUwNDAwMDVMCiNkZWZpbmUgICAgRVBMX1NET0FDX1VOU1VQUE9SVEVEX0FDQ0VTUyAgICAgICAgICAgICAgICAgIDB4MDYwMTAwMDBMCiNkZWZpbmUgICAgRVBMX1NET0FDX1JFQURfVE9fV1JJVEVfT05MWV9PQkogICAgICAgICAgICAgIDB4MDYwMTAwMDFMCiNkZWZpbmUgICAgRVBMX1NET0FDX1dSSVRFX1RPX1JFQURfT05MWV9PQkogICAgICAgICAgICAgIDB4MDYwMTAwMDJMCiNkZWZpbmUgICAgRVBMX1NET0FDX09CSkVDVF9OT1RfRVhJU1QgICAgICAgICAgICAgICAgICAgIDB4MDYwMjAwMDBMCiNkZWZpbmUgICAgRVBMX1NET0FDX09CSkVDVF9OT1RfTUFQUEFCTEUgICAgICAgICAgICAgICAgIDB4MDYwNDAwNDFMCiNkZWZpbmUgICAgRVBMX1NET0FDX1BET19MRU5HVEhfRVhDRUVERUQgICAgICAgICAgICAgICAgIDB4MDYwNDAwNDJMCiNkZWZpbmUgICAgRVBMX1NET0FDX0dFTl9QQVJBTV9JTkNPTVBBVElCSUxJVFkgICAgICAgICAgIDB4MDYwNDAwNDNMCiNkZWZpbmUgICAgRVBMX1NET0FDX0lOVkFMSURfSEVBUlRCRUFUX0RFQyAgICAgICAgICAgICAgIDB4MDYwNDAwNDRMCiNkZWZpbmUgICAgRVBMX1NET0FDX0dFTl9JTlRFUk5BTF9JTkNPTVBBVElCSUxJVFkgICAgICAgIDB4MDYwNDAwNDdMCiNkZWZpbmUgICAgRVBMX1NET0FDX0FDQ0VTU19GQUlMRURfRFVFX0hXX0VSUk9SICAgICAgICAgIDB4MDYwNjAwMDBMCiNkZWZpbmUgICAgRVBMX1NET0FDX0RBVEFfVFlQRV9MRU5HVEhfTk9UX01BVENIICAgICAgICAgIDB4MDYwNzAwMTBMCiNkZWZpbmUgICAgRVBMX1NET0FDX0RBVEFfVFlQRV9MRU5HVEhfVE9PX0hJR0ggICAgICAgICAgIDB4MDYwNzAwMTJMCiNkZWZpbmUgICAgRVBMX1NET0FDX0RBVEFfVFlQRV9MRU5HVEhfVE9PX0xPVyAgICAgICAgICAgIDB4MDYwNzAwMTNMCiNkZWZpbmUgICAgRVBMX1NET0FDX1NVQl9JTkRFWF9OT1RfRVhJU1QgICAgICAgICAgICAgICAgIDB4MDYwOTAwMTFMCiNkZWZpbmUgICAgRVBMX1NET0FDX1ZBTFVFX1JBTkdFX0VYQ0VFREVEICAgICAgICAgICAgICAgIDB4MDYwOTAwMzBMCiNkZWZpbmUgICAgRVBMX1NET0FDX1ZBTFVFX1JBTkdFX1RPT19ISUdIICAgICAgICAgICAgICAgIDB4MDYwOTAwMzFMCiNkZWZpbmUgICAgRVBMX1NET0FDX1ZBTFVFX1JBTkdFX1RPT19MT1cgICAgICAgICAgICAgICAgIDB4MDYwOTAwMzJMCiNkZWZpbmUgICAgRVBMX1NET0FDX01BWF9WQUxVRV9MRVNTX01JTl9WQUxVRSAgICAgICAgICAgIDB4MDYwOTAwMzZMCiNkZWZpbmUgICAgRVBMX1NET0FDX0dFTkVSQUxfRVJST1IgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMDBMCiNkZWZpbmUgICAgRVBMX1NET0FDX0RBVEFfTk9UX1RSQU5TRl9PUl9TVE9SRUQgICAgICAgICAgIDB4MDgwMDAwMjBMCiNkZWZpbmUgICAgRVBMX1NET0FDX0RBVEFfTk9UX1RSQU5TRl9EVUVfTE9DQUxfQ09OVFJPTCAgIDB4MDgwMDAwMjFMCiNkZWZpbmUgICAgRVBMX1NET0FDX0RBVEFfTk9UX1RSQU5TRl9EVUVfREVWSUNFX1NUQVRFICAgIDB4MDgwMDAwMjJMCiNkZWZpbmUgICAgRVBMX1NET0FDX09CSkVDVF9ESUNUSU9OQVJZX05PVF9FWElTVCAgICAgICAgIDB4MDgwMDAwMjNMCiNkZWZpbmUgICAgRVBMX1NET0FDX0NPTkZJR19EQVRBX0VNUFRZICAgICAgICAgICAgICAgICAgIDB4MDgwMDAwMjRMCgojZW5kaWYgLy8gX0VQTFNET0FDX0hfCgovLyBEaWUgbGV0enRlIFplaWxlIG113yB1bmJlZGluZ3QgZWluZSBsZWVyZSBaZWlsZSBzZWluLCB3ZWlsIG1hbmNoZSBDb21waWxlcgovLyBkYW1pdCBlaW4gUHJvYmxlbSBoYWJlbiwgd2VubiBkYXMgbmljaHQgc28gaXN0ICh6LkIuIEdOVSBvZGVyIEJvcmxhbmQgQysrIEJ1aWxkZXIpLgo=