ZGlmZiAtLWdpdCBhL0FOTk9VTkNFIGIvQU5OT1VOQ0UKaW5kZXggZDE0ZGZlNS4uODVkMmY3YiAxMDA2NDQKLS0tIGEvQU5OT1VOQ0UKKysrIGIvQU5OT1VOQ0UKQEAgLTEsNCArMSw0IEBACi1UaGlzIGlzIHJlbGVhc2UgMjAwMTAxMTIgb2YgV2luZSwgYSBmcmVlIGltcGxlbWVudGF0aW9uIG9mIFdpbmRvd3Mgb24KK1RoaXMgaXMgcmVsZWFzZSAyMDAxMDIxNiBvZiBXaW5lLCBhIGZyZWUgaW1wbGVtZW50YXRpb24gb2YgV2luZG93cyBvbgogVW5peC4gIFRoaXMgaXMgc3RpbGwgYSBkZXZlbG9wZXJzIG9ubHkgcmVsZWFzZS4gIFRoZXJlIGFyZSBtYW55IGJ1Z3MKIGFuZCB1bmltcGxlbWVudGVkIGZlYXR1cmVzLiAgTW9zdCBhcHBsaWNhdGlvbnMgc3RpbGwgZG8gbm90IHdvcmsKIGNvcnJlY3RseS4KQEAgLTYsMTEgKzYsMTAgQEAKIFBhdGNoZXMgc2hvdWxkIGJlIHN1Ym1pdHRlZCB0byAid2luZS1wYXRjaGVzQHdpbmVocS5jb20iLiAgUGxlYXNlIGRvbid0CiBmb3JnZXQgdG8gaW5jbHVkZSBhIENoYW5nZUxvZyBlbnRyeS4KIAotV0hBVCdTIE5FVyB3aXRoIFdpbmUtMjAwMTAxMTI6IChzZWUgQ2hhbmdlTG9nIGZvciBkZXRhaWxzKQotCS0gTWFueSBmaXhlcyBmb3IgV2luZWxpYiBzdXBwb3J0IG9uIFNwYXJjLgotCS0gTWFqb3IgRGlyZWN0RHJhdyByZXN0cnVjdHVyYXRpb24uCi0JLSBVbmljb2RlIGNvbWJvYm94IGFuZCBsaXN0Ym94LgotCS0gTmV3IE1TVkNSVCBkbGwuCitXSEFUJ1MgTkVXIHdpdGggV2luZS0yMDAxMDIxNjogKHNlZSBDaGFuZ2VMb2cgZm9yIGRldGFpbHMpCisJLSBTZXZlcmFsIFBvc3RTY3JpcHQgZHJpdmVyIGltcHJvdmVtZW50cy4KKwktIEltcHJvdmVkIGVuaGFuY2VkIG1ldGFmaWxlcyBzdXBwb3J0LgorCS0gQmVnaW5uaW5ncyBvZiBQb3dlclBDIHN1cHBvcnQuCiAJLSBMb3RzIG9mIGJ1ZyBmaXhlcy4KIAogU2VlIHRoZSBSRUFETUUgZmlsZSBpbiB0aGUgZGlzdHJpYnV0aW9uIGZvciBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zLgpAQCAtMTksMTAgKzE4LDEwIEBACiB0aGUgcmVsZWFzZSBpcyBhdmFpbGFibGUgYXQgdGhlIGZ0cCBzaXRlcy4gIFRoZSBzb3VyY2VzIHdpbGwgYmUgYXZhaWxhYmxlCiBmcm9tIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOgogCi0gIGh0dHA6Ly93d3cuaWJpYmxpby5vcmcvcHViL0xpbnV4L0FMUEhBL3dpbmUvZGV2ZWxvcG1lbnQvV2luZS0yMDAxMDExMi50YXIuZ3oKLSAgZnRwOi8vZnRwLmluZm9tYWdpYy5jb20vcHViL21pcnJvcnMvbGludXgvc3Vuc2l0ZS9BTFBIQS93aW5lL2RldmVsb3BtZW50L1dpbmUtMjAwMTAxMTIudGFyLmd6Ci0gIGZ0cDovL2Z0cC5mdS1iZXJsaW4uZGUvdW5peC9saW51eC9taXJyb3JzL3N1bnNpdGUudW5jLmVkdS9BTFBIQS93aW5lL2RldmVsb3BtZW50L1dpbmUtMjAwMTAxMTIudGFyLmd6Ci0gIGZ0cDovL29yY3VzLnByb2dzb2MudXRzLmVkdS5hdS9wdWIvV2luZS9kZXZlbG9wbWVudC9XaW5lLTIwMDEwMTEyLnRhci5negorICBodHRwOi8vd3d3LmliaWJsaW8ub3JnL3B1Yi9MaW51eC9BTFBIQS93aW5lL2RldmVsb3BtZW50L1dpbmUtMjAwMTAyMTYudGFyLmd6CisgIGZ0cDovL2Z0cC5pbmZvbWFnaWMuY29tL3B1Yi9taXJyb3JzL2xpbnV4L3N1bnNpdGUvQUxQSEEvd2luZS9kZXZlbG9wbWVudC9XaW5lLTIwMDEwMjE2LnRhci5negorICBmdHA6Ly9mdHAuZnUtYmVybGluLmRlL3VuaXgvbGludXgvbWlycm9ycy9zdW5zaXRlLnVuYy5lZHUvQUxQSEEvd2luZS9kZXZlbG9wbWVudC9XaW5lLTIwMDEwMjE2LnRhci5negorICBmdHA6Ly9vcmN1cy5wcm9nc29jLnV0cy5lZHUuYXUvcHViL1dpbmUvZGV2ZWxvcG1lbnQvV2luZS0yMDAxMDIxNi50YXIuZ3oKIAogSXQgc2hvdWxkIGFsc28gYmUgYXZhaWxhYmxlIGZyb20gYW55IG90aGVyIHNpdGUgdGhhdCBtaXJyb3JzIGliaWJsaW8ub3JnLgogRm9yIG1vcmUgZG93bmxvYWQgbG9jYXRpb25zLCBzZWUgaHR0cDovL2Z0cHNlYXJjaC5seWNvcy5jb20uCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggZGZiNmZlOC4uOWQ5MTE2OSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSw0ICsxLDExMDUgQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIwMDEtMDItMTYgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvbnRkbGwvZGVidWd0b29scy5jOgorCUNocmlzIE1vcmdhbiA8Y21vcmdhbkB3cGkuZWR1PgorCUFzc2VydCBvbiBvdXRwdXQgYnVmZmVyIG92ZXJmbG93LgorCisJKiBkbGxzL2NvbWN0bDMyL2xpc3R2aWV3LmM6CisJSmFtZXMgSGF0aGV3YXkgPGphbWVzQG1hY2FkYW1pYW4uY29tPgorCVVwZGF0ZSBzZWxlY3Rpb24gYWZ0ZXIgc29ydGluZyAoaW4gTElTVFZJRVdfU29ydEl0ZW1zKSBieSBtYWtpbmcgc3VyZQorCXNlbGVjdGlvbiBsaXN0IG1hdGNoZXMgc3RhdGVzIG9mIGluZGl2aWR1YWwgaXRlbXMuCisKKwkqIGdyYXBoaWNzL3gxMWRydi9ncmFwaGljcy5jOgorCUZyYW7nb2lzIEdvdWdldCA8ZmdvdWdldEBjb2Rld2VhdmVycy5jb20+CisJQWRkZWQgRElCL3BpeG1hcCBzeW5jaHJvbml6YXRpb24gZm9yIHtHZXQsU2V0fVBpeGVsLgorCisJKiBkbGxzL2NvbWN0bDMyL3Rvb2xiYXIuYzoKKwlGcmFu529pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCVRCX1NFVEJVVFRPTlNJWkUgbWVzc2FnZXMgbXVzdCBiZSB0YWtlbiBpbnRvIGFjY291bnQgZXZlbiBhZnRlcgorCWJ1dHRvbnMgaGF2ZSBiZWVuIGFkZGVkLgorCisJKiBpbmNsdWRlL3NlcnZlci5oLCBzY2hlZHVsZXIvcHJvY2Vzcy5jLCBzZXJ2ZXIvY29uc29sZS5jLCBzZXJ2ZXIvcHJvY2Vzcy5jLCBzZXJ2ZXIvdHJhY2UuYywgd2luMzIvY29uc29sZS5jOgorCVBhc3MgdGhlIHN0ZGluL3N0ZG91dCBoYW5kbGVzIG9uIHN0YXJ0dXAgdG8gdXNlIGFzIGNvbnNvbGUgKGJhc2VkIG9uIGEKKwlwYXRjaCBieSBFcmljIFBvdWVjaCkuCisKKwkqIHdpbmRvd3MveDExZHJ2L2tleWJvYXJkLmM6CisJQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlDb3JyZWN0IHRoZSBjb2RlcGFnZSBmb3IgdGhlIFR1cmtpc2gga2V5Ym9hcmQuCisKKwkqIGRsbHMvY29tY3RsMzIvdG9vbGJhci5jOgorCUFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJU2V0dGluZyB0aGUgSG90SXRlbSB0byAtMSBjYW4gYmUgZGlzYXN0cm91cyBhdCB0aW1lcyBpZiBpdCBlcXVhbHMKKwlvbGRoaXQuCisKKwkqIHRvb2xzL3NwZWNtYWtlci9kbGwuYywgdG9vbHMvc3BlY21ha2VyL21haW4uYywgdG9vbHMvc3BlY21ha2VyL21zbWFuZ2xlLmMsIHRvb2xzL3NwZWNtYWtlci9vdXRwdXQuYywgdG9vbHMvc3BlY21ha2VyL3NlYXJjaC5jLCB0b29scy9zcGVjbWFrZXIvc3BlY21ha2VyLmgsIHRvb2xzL3NwZWNtYWtlci9zeW1ib2wuYywgdG9vbHMvc3BlY21ha2VyL1JFQURNRToKKwlKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCS0gQ3JlYXRlIGVudHJpZXMgZm9yIG9yZGluYWwgb25seSBleHBvcnRzLCB1c2Ugb3JkaW5hbHMgaWYgbm9uLXN0YW5kYXJkLgorCS0gSW1wcm92ZSBDKysgZGVtYW5nbGVyLCByZWNvZ25pc2UgZGF0YSB0eXBlcywgZml4IHNvbWUgYnVncy4KKworCSogZmlsZXMvZGlyZWN0b3J5LmMsIGZpbGVzL2Rvc19mcy5jLCBmaWxlcy9maWxlLmM6CisJR2VyYXJkIFBhdGVsIDxnZXJhcmQucGF0ZWxAYXNpLmZyPgorCUdpdmVzIGJhY2sgdGhlIEVSUk9SX0ZJTEVfTk9UX0ZPVU5EIHRvIEdldEZpbGVBdHRyaWJ1dGVzLgorCisyMDAxLTAyLTE1ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiB0b29scy93aW5lYnVpbGQvcGFyc2VyLmM6CisJQWRkZWQgc3VwcG9ydCBmb3IgYmFja3NsYXNoIGVzY2FwaW5nIG9mIHNwZWNpYWwgY2hhcmFjdGVycy4KKworCSogZGxscy92ZXJzaW9uL2luZm8uYzoKKwlMYXdzb24gV2hpdG5leSA8bGF3c29uX3doaXRuZXlAanVuby5jb20+CisJSWYgVmVyUXVlcnlWYWx1ZUEgaXMgY2FsbGVkIHdpdGggYSBQRSByZXNvdXJjZSwgdHJhbnNsYXRlIHRoZSBjYWxsIHRvCisJVmVyUXVlcnlWYWx1ZVcuCisKKwkqIGRsbHMvY29tY3RsMzIvdG9vbGJhci5jOgorCUFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJQ29udGludWVkIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBTZXQgSG90IEl0ZW0uCisKKwkqIGRsbHMvY29tY3RsMzIvbGlzdHZpZXcuYzoKKwlKYW1lcyBIYXRoZXdheSA8amFtZXNAbWFjYWRhbWlhbi5jb20+CisJU2VuZCBMVk5fREVMRVRFSVRFTSBub3RpZmljYXRpb24gZmlyc3QsIHRvIGF2b2lkIGNyYXNoZXMgaWYgdGhlIGFwcAorCXJlcXVlc3RzIExWSUZfUEFSQU0gd2l0aCBMSVNUVklFV19HZXRJdGVtKCkgZHVyaW5nIGl0cyBMVk5fREVMRVRFSVRFTQorCW1lc3NhZ2UgaGFuZGxlci4KKworCSogZGxscy93aW5pbmV0L2Z0cC5jLCBkbGxzL3dpbmluZXQvaHR0cC5jLCBkbGxzL3dpbmluZXQvaW50ZXJuZXQuaDoKKwlDaHJpcyBNb3JnYW4gPGNtb3JnYW5AY29kZXdlYXZlcnMuY29tPgorCUFkZCBpbmNsdWRlcyBmb3IgPHRpbWUuaD4uCisKKwkqIGRsbHMvd2luZXBzL2FmbS5jOgorCU1vcnRlbiBXZWxpbmRlciA8dGVycmEtd2luZUBkaWt1LmRrPgorCShQU0RSVl9BRk1HZXRDaGFyTWV0cmljcyk6IFVzZSB1bnNpZ25lZCBjaGFycyAoc2luY2UgaXNzcGFjZSBpcyB1c2VkKS4KKwkoUFNEUlZfQUZNUGFyc2UpOiBEb24ndCBjcmFzaCBvbiBtaXNzaW5nIGZvbnQgbmFtZS4gIFVzZSB1bnNpZ25lZAorCWNoYXJzLiAgRml4IHBlY3VsaWFyIGluY29uc2lzdGVudCBpbmRlbnRhdGlvbi4gIERvbid0IGxlYWsgYSBGSUxFLgorCUNhdGNoIHByb2JsZW1hdGljIGZpbGVzIHdpdGggbm8gbGluZSBmZWVkIGluIHRoZW0uICBEb24ndCBtaXgKKwljaGFyYWN0ZXJzIGFuZCBpbnRlZ2Vycy4gIERvbid0IG92ZXJydW4gdGhlIGJ1ZmZlci4KKworCSogd2luZG93cy94MTFkcnYva2V5Ym9hcmQuYzoKKwlBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCUFkZGVkIGEgdHVya2lzaCBrZXlib2FyZCBsYXlvdXQuCisKKzIwMDEtMDItMTQgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMva2VybmVsL2tlcm5lbDMyLnNwZWM6CisJUmVtb3ZlZCBvcmRpbmFsIGZyb20gZnVuY3Rpb25zIHRoYXQgZG9uJ3QgbmVlZCBhIHNwZWNpZmljIHZhbHVlLgorCisJKiBzY2hlZHVsZXIvc3lzZGVwcy5jLCBzY2hlZHVsZXIvdGhyZWFkLmMsIHdpbjMyL2NvbnNvbGUuYywgd2luMzIvZGV2aWNlLmMsIHdpbjMyL2V4Y2VwdC5jLCB3aW4zMi9maWxlLmMsIHdpbjMyL2luaXQuYywgd2luMzIvbmV3Zm5zLmMsIHdpbjMyL3RpbWUuYywgZ3JhcGhpY3MveDExZHJ2L29lbWJpdG1hcC5jLCBpZjE2MzIvYnVpbHRpbi5jLCBpZjE2MzIvcmVsYXkuYywgbWlzYy9yZWdpc3RyeS5jLCBvYmplY3RzL2JpdG1hcC5jLCBvYmplY3RzL2JydXNoLmMsIG9iamVjdHMvY2xpcHBpbmcuYywgb2JqZWN0cy9kYy5jLCBvYmplY3RzL2RjdmFsdWVzLmMsIG9iamVjdHMvZGliLmMsIG9iamVjdHMvZW5obWV0YWZpbGUuYywgb2JqZWN0cy9saW5lZGRhLmMsIG9iamVjdHMvbWV0YWZpbGUuYywgb2JqZWN0cy9wYWxldHRlLmMsIG9iamVjdHMvcGVuLmMsIG9iamVjdHMvcmVnaW9uLmMsIG9iamVjdHMvdGV4dC5jLCBvbGUvb2xlMm5scy5jLCBzY2hlZHVsZXIvY2xpZW50LmMsIHNjaGVkdWxlci9oYW5kbGUuYywgc2NoZWR1bGVyL3Byb2Nlc3MuYywgZGxscy9hdmlmaWwzMi9hdmlmaWxlLmMsIGdyYXBoaWNzL2JpdGJsdC5jLCBncmFwaGljcy9lbmhtZXRhZmlsZWRydi9pbml0LmMsIGdyYXBoaWNzL2Vudi5jLCBncmFwaGljcy9lc2NhcGUuYywgZ3JhcGhpY3MvbWFwcGluZy5jLCBncmFwaGljcy9tZXRhZmlsZWRydi9pbml0LmMsIGdyYXBoaWNzL3BhaW50aW5nLmMsIGdyYXBoaWNzL3BhdGguYywgZ3JhcGhpY3Mvd2luMTZkcnYvcHJ0ZHJ2LmMsIGRsbHMvYWR2YXBpMzIvYWR2YXBpLmMsIGRsbHMvYWR2YXBpMzIvY3J5cHQuYywgZGxscy9hZHZhcGkzMi9ldmVudGxvZy5jLCBkbGxzL2FkdmFwaTMyL3JlZ2lzdHJ5LmMsIGRsbHMvYWR2YXBpMzIvc2VjdXJpdHkuYywgZGxscy9hZHZhcGkzMi9zZXJ2aWNlLmM6CisJUGF0cmlrIFN0cmlkdmFsbCA8cHNAbGVpc3NuZXIuc2U+CisJRG9jdW1lbnRhdGlvbiBvcmRpbmFsIGZpeGVzLgorCisJKiBncmFwaGljcy9lbmhtZXRhZmlsZWRydi9vYmplY3RzLmMsIGdyYXBoaWNzL21ldGFmaWxlZHJ2L29iamVjdHMuYywgZ3JhcGhpY3Mvd2luMTZkcnYvZm9udC5jLCBncmFwaGljcy94MTFkcnYveGZvbnQuYywgaW5jbHVkZS9mb250LmgsIGluY2x1ZGUvZ2RpLmgsIGluY2x1ZGUvd2luMTZkcnYuaCwgaW5jbHVkZS94MTFkcnYuaCwgb2JqZWN0cy9mb250LmMsIG9iamVjdHMvZ2Rpb2JqLmMsIGRsbHMvd2luZXBzL2ZvbnQuYywgZGxscy93aW5lcHMvcHNkcnYuaDoKKwlIdXcgRCBNIERhdmllcyA8aGRhdmllc0Bjb2Rld2VhdmVycy5jb20+CisJQ2hhbmdlIEZPTlRPQkogdG8gdXNlIExPR0ZPTlRXIHJhdGhlciB0aGFuIExPR0ZPTlQxNi4KKwlVcGRhdGVkIHBhcmFtZXRlcnMgb2YgREVWSUNFRk9OVEVOVU1QUk9DLgorCisJKiB3aW5kb3dzL2RlZnduZC5jOgorCUZpeGVkIFdNX0dFVFRFWFRMRU5HVEggaGFuZGxpbmcuCisKKwkqIGRsbHMvTWFrZWZpbGUuaW4sIGRsbHMvd2lubW0vbWNpYXZpLy5jdnNpZ25vcmUsIGRsbHMvd2lubW0vbWNpYXZpL01ha2VmaWxlLmluLCBkbGxzL3dpbm1tL21jaWF2aS9pbmZvLmMsIGRsbHMvd2lubW0vbWNpYXZpL21jaWF2aS5jLCBkbGxzL3dpbm1tL21jaWF2aS9tY2lhdmkuZHJ2LnNwZWMsIGRsbHMvd2lubW0vbWNpYXZpL21jaWF2aV9yZXMucmMsIGRsbHMvd2lubW0vbWNpYXZpL21tb3V0cHV0LmMsIGRsbHMvd2lubW0vbWNpYXZpL3ByaXZhdGVfbWNpYXZpLmgsIGRsbHMvd2lubW0vbWNpYXZpL3duZC5jLCBpbmNsdWRlL01ha2VmaWxlLmluLCBpbmNsdWRlL21jaWF2aS5oLCBpbmNsdWRlL3Zmdy5oOgorCUVyaWMgUG91ZWNoIDxFcmljLlBvdWVjaEB3YW5hZG9vLmZyPgorCVN0YXJ0ZWQgdGhlIHJlYWwgaW1wbGVtZW50YXRpb24gb2YgbWNpYXZpLgorCisJKiBkbGxzL2FkdmFwaTMyL3JlZ2lzdHJ5LmM6CisJQWx3YXlzIHJldHVybiBzdWNjZXNzIGluc3RlYWQgb2Ygb3ZlcmZsb3cgaWYgY2FsbGVyIGRpZG4ndCBzcGVjaWZ5IGEKKwlidWZmZXIuCisKKwkqIHRvb2xzL3dpbmVjb25mOgorCU1vcnRlbiBXZWxpbmRlciA8dGVycmEtd2luZUBkaWt1LmRrPgorCU91dHB1dCB0aGUgcmlnaHQgbnVtYmVyIG9mIGJhY2tzbGFzaGVzIGluIHZhbHVlcy4KKworCSogd2luZG93cy9zcHkuYzoKKwlGcmFu529pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCUJlIHNtYXJ0ZXIgYWJvdXQgdGhlIGVsbGlwc2lzIGluIFNQWV9HZXRXbmROYW1lLgorCisJKiBkbGxzL3JpY2hlZGl0L3JpY2hlZGl0LmMsIG1lbW9yeS9oZWFwLmMsIHByb2dyYW1zL3JlZ2FwaS9yZWdhcGkuYywgd2luZG93cy9jdXJzb3JpY29uLmM6CisJRnJhbudvaXMgR291Z2V0IDxmZ291Z2V0QGNvZGV3ZWF2ZXJzLmNvbT4KKwlNaXNjIHR5cG9zIGluIGNvbW1lbnRzLgorCisJKiBkbGxzL2NvbWN0bDMyL2xpc3R2aWV3LmM6CisJRnJhbudvaXMgR291Z2V0IDxmZ291Z2V0QGNvZGV3ZWF2ZXJzLmNvbT4KKwlMaXN0Vmlld19HZXRJdGVtUmVjdCBhbHJlYWR5IHNldHMgcmMubGVmdC4KKworCSogY29udHJvbHMvbWVudS5jLCBkbGxzL2NvbWN0bDMyL3Rvb2xiYXIuYywgb2xlL29sZTJubHMuYzoKKwlGcmFu529pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCWRlYnVnc3RyX3h4eCBhbHJlYWR5IGRvZXMgdGhlIHF1b3RpbmcuCisKKwkqIGRsbHMvY29tY3RsMzIvY29tY3RsMzJ1bmRvYy5jOgorCUZyYW7nb2lzIEdvdWdldCA8ZmdvdWdldEBjb2Rld2VhdmVycy5jb20+CisJQ2hhbmdlIHRoZSBjYWxsYmFjayBkZWNsYXJhdGlvbnMgdG8gYSBzYWZlciBmb3JtYXQuCisKKwkqIGRvY3VtZW50YXRpb24vd2luZS5tYW4uaW46CisJTGF3c29uIFdoaXRuZXkgPGxhd3Nvbl93aGl0bmV5QGp1bm8uY29tPgorCVR1bmUgdGhlIGRvY28gdG8gdGhlIGNvZGUgZm9yIHJlbGF5L3Nub29wIHNwZWNpZmljLgorCisJKiBkbGxzL3dpbnNvY2svc29ja2V0LmMsIGRsbHMva2VybmVsL2NvbW0uYywgZGxscy9zaGVsbDMyL3NocmVzLnJjLCBkbGxzL3dpbm1tL21tc3lzdGVtLmM6CisJQW5kcmVhcyBNb2hyIDxhbW9ockBjb2Rld2VhdmVycy5jb20+CisJQ29zbWV0aWNzLgorCisJKiB3aW4zMi9kZXZpY2UuYzoKKwlBbmRyZWFzIE1vaHIgPGFtb2hyQGNvZGV3ZWF2ZXJzLmNvbT4KKwlHaXZlIGJvdGggLS13aW52ZXIgbnQ0MCBhbmQgd2luMzEgZm9yIFZ4RCB3YXJuaW5nLCBhcyBzb21lIHByb2dyYW1zCisJd29yayB3aXRoIHdpbjMxLgorCisJKiBkbGxzL2RkcmF3L2RkcmF3L3RodW5rcy5jLCBkbGxzL2RkcmF3L2RkcmF3X3ByaXZhdGUuaCwgZGxscy9kZHJhdy9zdHJ1Y3RfY29udmVydC5jOgorCUFuZHJlYXMgTW9ociA8YW1vaHJAY29kZXdlYXZlcnMuY29tPgorCS0gY29ycmVjdCBERFJBV19Db252ZXJ0X0REREVWSUNFSURFTlRJRklFUl8yX1RvXzEgY29uZnVzaW9uCisJLSBmaXggR2V0QXZhaWxhYmxlVmlkTWVtIGRkcmF3IGlmYWNlIGNvcHkmcGFzdGUgYnVnIChkb2ggISkKKworCSogZGxscy94MTFkcnYveDExZGRyYXcuYywgZGxscy94MTFkcnYveDExZHJ2X21haW4uYywgZGxscy94MTFkcnYveHZpZG1vZGUuYywgZGxscy94MTFkcnYveHZpZG1vZGUuaCwgZGxscy94MTFkcnYvTWFrZWZpbGUuaW46CisJT3ZlIEthYXZlbiA8b3Zla0B0cmFuc2dhbWluZy5jb20+CisJR3V0cyBvZiBhIHNpbXBsZSBYVmlkTW9kZS1zdXBwb3J0aW5nIERpcmVjdERyYXcgSEFMIGluIHgxMWRydi4KKworCSogZmlsZXMvZmlsZS5jOgorCUpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJU2V0TGFzdEVycm9yKCkgZm9yIEdldEZpbGVBdHRyaWJ1dGVzQS4KKworCSogd2luZG93cy9kZWZ3bmQuYzoKKwlTdXNhbiBGYXJsZXkgPHN1c2FuQGNvZGV3ZWF2ZXJzLmNvbT4KKwlFeGNlcHRpb24gZm9yIGFsbG93aW5nIHRoZSBwYXJlbnQgdG8gc2V0IHRoZSBjdXJzb3IgZm9yIGEgY2hpbGQgd25kIGlzCisJd2hlbiB0aGUgY3Vyc29yIGlzIG9uIHRoZSBib3JkZXIgb2YgYSByZXNpemFibGUgd25kLgorCisJKiBjb250cm9scy9tZW51LmM6CisJRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlDb252ZXJ0IG1lbnUgaXRlbSB0byBzZXBlcmF0b3Igb25seSB3aGVuIHN0cmluZyBpcyBOVUxMLgorCisyMDAxLTAyLTEzICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBpbmNsdWRlL2RjaWRkaS5oLCBpbmNsdWRlL2RkcmF3aS5oOgorCU92ZSBLYWF2ZW4gPG92ZWtAdHJhbnNnYW1pbmcuY29tPgorCVNvbWUgaW1wb3J0YW50IHN0dWZmIGZyb20gdGhlIERpcmVjdERyYXcgRERLIGhlYWRlcnMuCisKKwkqIGluY2x1ZGUvd2luZS9saWJyYXJ5LmgsIGxpYnJhcnkvbG9hZGVyLmMsIHNjaGVkdWxlci9wcm9jZXNzLmM6CisJSm9zaCBEdUJvaXMgPGR1Ym9pc2pAY29kZXdlYXZlcnMuY29tPgorCU1vcmUgdmVyYm9zZSBlcnJvciBtZXNzYWdlcyB3aGVuIGFwcGxpY2F0aW9uIGxvYWQgZmFpbHMuCisKKwkqIGluY2x1ZGUvd2lubnQuaCwgbWlzYy9jcHUuYywgd2luMzIvbmV3Zm5zLmM6CisJSmFtZXMgQWJiYXRpZWxsbyA8amFiYmV5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlVc2UgdGhlIFBlbnRpdW0ncyByZHRzYyBpbnN0cnVjdGlvbiAoaWYgYXZhaWxhYmxlKSB0byBpbXBsZW1lbnQKKwlRdWVyeVBlcmZvcm1hbmNlQ291bnRlci4KKworCSogdG9vbHMvd2luYXBpX2NoZWNrL3dpbjE2L3dpbm5scy5hcGksIHRvb2xzL3dpbmFwaV9jaGVjay93aW4zMi9kY2ltYW4zMi5hcGksIHRvb2xzL3dpbmFwaV9jaGVjay9tb2R1bGVzLmRhdCwgdG9vbHMvd2luYXBpX2NoZWNrL3dpbmFwaV9kb2N1bWVudGF0aW9uLnBtOgorCVBhdHJpayBTdHJpZHZhbGwgPHBzQGxlaXNzbmVyLnNlPgorCS0gTWlub3IgQVBJIGZpbGVzIGZpeGVzCisJLSBNaW5vciBidWcgZml4ZXMKKworCSogZGxscy93aW5ubHMvd2lubmxzLmM6CisJUGF0cmlrIFN0cmlkdmFsbCA8cHNAbGVpc3NuZXIuc2U+CisJRml4ZWQgc29tZSBpc3N1ZXMgZm91bmQgYnkgd2luYXBpX2NoZWNrLgorCisJKiBkbGxzL3dpbmVwcy9hZm0uYzoKKwlQZXRlciBILiBHYW50ZW4gPHBldGVyQGdhbnRlbi5vcmc+CisJLSBvbmx5IHBhcnNlIEFGTS1maWxlcywgd2hpY2ggc3RhcnQgd2l0aCAiQmVnaW5Gb250TWV0cmljcyIKKwktIHVzZSBmZ2V0YyBpbnN0ZWFkIG9mIGZnZXRzIHRvIGNvcGUgd2l0aCBBRk0tRmlsZXMgd2l0aAorCSAgTWFjaW50b3NoLVN0eWxlIGxpbmUtYnJlYWtzICgnXHInKSBpbiB0aGUgcGFyc2VyLgorCisJKiBkbGxzL3NobHdhcGkvb3JkaW5hbC5jLCBkbGxzL3NobHdhcGkvcmVnLmMsIGRsbHMvc2hsd2FwaS9zaGx3YXBpLnNwZWMsIGRsbHMvc2hsd2FwaS9zaGx3YXBpX21haW4uYywgZGxscy9zaGx3YXBpL3VybC5jLCB0b29scy93aW5hcGlfY2hlY2svd2luMzIvc2hsd2FwaS5hcGk6CisJSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlJbXBsZW1lbnQgYSBidW5jaCBvZiBzaGx3YXBpIGZ1bmN0aW9ucywgYWRkIHNvbWUgbmV3IHN0dWJzLgorCisJKiBncmFwaGljcy94MTFkcnYvZGliLmM6CisJTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwlBZGRlZCBSR0IgNTY1ID0+IFJHQiAwODg4IGNvbnZlcnNpb24uCisKKwkqIGRsbHMvc2hlbGwzMi9zaGx2aWV3LmM6CisJQ2hyaXMgTW9yZ2FuIDxjbW9yZ2FuQGNvZGV3ZWF2ZXJzLmNvbT4KKwlJbXBsZW1lbnQga2V5Ym9hcmQgc2hvcnRjdXQgRjIgdG8gcmVuYW1lIGZpbGVzIGFuZCBkaXJlY3RvcmllcyBpbiB0aGUKKwlzaGVsbHZpZXcgKGFuZCBpbiBjb21tb24gZGlhbG9ncykuCisKKwkqIHRvb2xzL3dpbmVidWlsZC9idWlsZC5oLCB0b29scy93aW5lYnVpbGQvaW1wb3J0LmMsIHRvb2xzL3dpbmVidWlsZC9wYXJzZXIuYywgdG9vbHMvd2luZWJ1aWxkL3JlbGF5LmMsIHRvb2xzL3dpbmVidWlsZC9zcGVjMTYuYywgdG9vbHMvd2luZWJ1aWxkL3NwZWMzMi5jLCB0b29scy93aW5lYnVpbGQvdXRpbHMuYzoKKwlKb3NoIER1Qm9pcyA8ZHVib2lzakBjb2Rld2VhdmVycy5jb20+CisJTW9yZSBwb3J0YWJsZSAuYWxpZ24gZGlyZWN0aXZlLgorCUlnbm9yZSAtZGVsYXkgZGlyZWN0aXZlIG9uIHBwYyBvbmx5LgorCUFkZGVkIGNvZGUgdG8gY2FsbCB0aGUgZGxsIGNvbnN0cnVjdG9ycy4KKworCSogaW5jbHVkZS93aW5udC5oOgorCUpvc2ggRHVCb2lzIDxkdWJvaXNqQGNvZGV3ZWF2ZXJzLmNvbT4KKwlEZWZpbmVkIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBtYWNyb3MgZm9yIHBwYy4KKworCSogY29udHJvbHMvbWVudS5jOgorCU1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCURvbid0IGNyYXNoIG9uIGNsb3NlIGZyb20gd2luZG93IG1hbmFnZXIuCisKKwkqIHdpbmRvd3MvbWVzc2FnZS5jOgorCU1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCVBvc3RNZXNzYWdlQS9XIGlnbm9yZXMgbWVzc2FnZXMgY29udGFpbmluZyBwb2ludGVycyBhbmQgcmV0dXJucworCUZBTFNFL0xhc3RFcnJvciBFUlJPUl9JTlZBTElEX1BBUkVNRVRFUi4KKworCSogd2luZG93cy9jdXJzb3JpY29uLmM6CisJRnJhbudvaXMgR291Z2V0IDxmZ291Z2V0QGNvZGV3ZWF2ZXJzLmNvbT4KKwlDcmVhdGVJY29uIG11c3QgcGVyZm9ybSBjb2xvciBkZXB0aCBjb252ZXJzaW9uIGlmIHRoZSBwcm92aWRlZCBiaXRtYXAKKwlpcyBub3Qgb2YgdGhlIHNhbWUgZGVwdGggYXMgdGhlIHNjcmVlbi4KKwlBZGRlZCBzb21lIGRvY3VtZW50YXRpb24uCisKKzIwMDEtMDItMTIgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvY29tbWRsZy9wcmludGRsZy5jOgorCUR1YW5lIENsYXJrIDxkY2xhcmtAYWthbWFpbC5jb20+CisJLSBtYWtlIHRoZSBMYW5kc2NhcGUvUG9ydHJhaXQgYnV0dG9ucyBkbyBzb21ldGhpbmcuCisJLSBmaXggdGhlc2UgcHJvYmxlbXMgaW4gdGhlIFBhcGVyIFNpemUgYW5kIFNvdXJjZSBjb21ibyBib3hlczoKKwkgIDEpIEV2ZXJ5IHRpbWUgdGhlIHByaW50ZXIgc2V0dXAgZGlhbG9nIGlzIG9wZW5lZCwgdGhlIHNldHRpbmdzCisJICBhcmUgc2V0IGJhY2sgdG8gZ2FyYmFnZSBzZXR0aW5ncy4KKwkgIDIpIElmIHRoZSBwYXBlciBzaXplIG9yIHNvdXJjZSBpcyBjaGFuZ2VkLCBhbmQgdGhlbiB0aGUgcHJpbnRlciBpcworCSAgY2hhbmdlZCwgdGhlIG5ldyBwcmludGVyIGRvZXMgbm90IGdldCB0aGUgbmV3IHNpemUgYW5kIHNvdXJjZQorCSAgc2V0dGluZ3MgZXZlbiB0aG91Z2ggaXQgYXBwZWFycyB0byBmcm9tIHRoZSBkaWFsb2cuCisKKwkqIGdyYXBoaWNzL3gxMWRydi9kaWIuYywgb2JqZWN0cy9kaWIuYzoKKwlKYW1lcyBBYmJhdGllbGxvIDxqYWJiZXlAY29kZXdlYXZlcnMuY29tPgorCUluIENyZWF0ZURJQlNlY3Rpb24sIHRoZSBvZmZzZXQgaW50byB0aGUgZmlsZSBtYXBwaW5nIGRvZXMgbm90IGhhdmUgdG8KKwliZSBhIG11bHRpcGxlIG9mIHRoZSBtZW1vcnkgYWxsb2NhdGlvbiBncmFudWxhcml0eS4KKworCSogaW5jbHVkZS9jb21tY3RybC5oOgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCUFkZCBtaXNzaW5nIGRlZmluaXRpb25zIHJlcXVpcmVkIGJ5IHRoZSBDb250cm9sIFNweSBleGFtcGxlcy4KKworCSogb2JqZWN0cy9lbmhtZXRhZmlsZS5jOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50IHBsYXlpbmcgb2YgRU1SX0JJVEJMVCwgRU1SX1NUUkVUQ0hCTFQsIEVNUl9NQVNLQkxULAorCUVNUl9QTEdCTFQsIEVNUl9TRVRESUJJVFNUT0RFVklDRSwgRU1SX1BPTFlURVhUT1VUQSwgRU1SX1BPTFlURVhUT1VUVywKKwlFTVJfRklMTFJHTiwgRU1SX0ZSQU1FUkdOLCBFTVJfSU5WRVJUUkdOLCBFTVJfUEFJTlRSR04gZW5oYW5jZWQKKwltZXRhZmlsZSByZWNvcmQgdHlwZXMgYWNjb3JkaW5nIHRvIHNwZWNzLgorCisJKiBpbmNsdWRlL29sZWF1dG8uaCwgZGxscy9vbGVhdXQzMi9NYWtlZmlsZS5pbiwgZGxscy9vbGVhdXQzMi9oYXNoLmMsIGRsbHMvb2xlYXV0MzIvc3R1YnMuYzoKKwlKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCUltcGxlbWVudCBMSGFzaFZhbE9mTmFtZVN5c0EgZm9yIDQgTENJRHMsIGZpeCBwcm90b3R5cGUuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGx2aWV3LmM6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJUmVtb3ZlIFRPT0xCQVJfSUQgYW5kIFdNX1NFVFRJTkdDSEFOR0UsIHRoZXkgYXJlIG5vdCB1c2VkLgorCisJKiBpbmNsdWRlL3JpY2hlZGl0Lmg6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJRGVjbGFyZSBSSUNIRURJVF9DTEFTUzIwVyB1c2luZyBhIFdDSEFSIGFycmF5LgorCisJKiB3aW5kb3dzL2NsaXBib2FyZC5jOgorCUFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJSWYgYW4gYXBwbGljYXRpb24gZGlyZWN0bHkgY2FsbHMgU2V0Q2xpcGJvYXJkRGF0YSB3aXRoIENGX1RFWFQgYW5kCisJdGhlbiBsYXRlciBjYWxsZWQgR2V0Q2xpcGJvYXJkRGF0YSB3aXRoIENGX1RFWFQgd2UgZ2F2ZSB0aGVtIGEgTlVMTAorCWJlY2F1c2Ugd2Ugd2hlcmUgbm90IGhhbmRsaW5nIHRoaXMgY2FzZS4KKworCSogY29udHJvbHMvZWRpdC5jOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJRml4IHRoZSBiZWhhdmlvdXIgb2YgRU1fR0VUTElORSBtZXNzYWdlLgorCisJKiB3aW5kb3dzL21lc3NhZ2UuYzoKKwlBbmRyZWFzIE1vaHIgPGFtb2hyQGNvZGV3ZWF2ZXJzLmNvbT4KKwlNYWtlIHN1cmUgdGhhdCBNU0dfUGVla01lc3NhZ2UgdXNlcyBhbiBpbnRlcm5hbCB2YXJpYWJsZSB0byBhdm9pZAorCWNvcnJ1cHRpb24uCisKKwkqIGRsbHMvbnRkbGwvcmVnLmMsIGZpbGVzL2RpcmVjdG9yeS5jLCBwcm9ncmFtcy9yZWdhcGkvUkVBRE1FLCB0b29scy93aW5laW5zdGFsbDoKKwlBbmRyZWFzIE1vaHIgPGFtb2hyQGNvZGV3ZWF2ZXJzLmNvbT4KKwktIFRSQUNFIG9wZW5lZCByZWdpc3RyeSBoYW5kbGVzCisJLSBhZGQgcHJvcGVyIHF1b3RlcyB0byB3aW5laW5zdGFsbAorCS0gc3BlbGxpbmcKKworCSogZ3JhcGhpY3MveDExZHJ2L3BhbGV0dGUuYywgd2luZG93cy9ub25jbGllbnQuYywgd2luZG93cy94MTFkcnYvd25kLmM6CisJQW5kcmVhcyBNb2hyIDxhbW9ockBjb2Rld2VhdmVycy5jb20+CisJLSBtb3ZlIFRTWEdyYWJTZXJ2ZXIgYWZ0ZXIgYSBwb3NzaWJsZSByZXR1cm4gRkFMU0U7CisJLSBtb3ZlIG1pc3BsYWNlZCBjb21tZW50CisJLSBvcHRpbWl6ZSBUU1hHcmFiU2VydmVyIHVzZQorCisJKiB3aW5kb3dzL21kaS5jOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJUmVtb3ZlIHJlZHVuZGFudCBwYXJhbWV0ZXJzIGZyb20gTURJQ3JlYXRlQ2hpbGQgYW5kIE1ESURlc3Ryb3lDaGlsZC4KKwlNYWtlIHRoZSBwYXJhbWV0ZXIgbmFtZXMgc2xpZ2h0bHkgbW9yZSBkZXNjcmlwdGl2ZS4KKworCSogZGxscy9jb21tZGxnL2NkbGdfRW4ucmMsIGRsbHMvY29tbWRsZy9wcmludGRsZy5jOgorCUh1dyBEIE0gRGF2aWVzIDxoZGF2aWVzQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgYW4gdXBkb3duIGNvbnRyb2wgdG8gdGhlIGNvcHkgY291bnQgZW50cnkuCisJRGlzYWJsZSB0aGUgY29sbGF0ZSBidXR0b24gaWYgbm8uIG9mIGNvcGllcyBpcyAxLgorCUFkZCBMYW5kc2NhcGUvUG9ydHJhaXQgaWNvbnMuCisJR2V0IHJpZCBvZiB0aGUgIkR1bW15IENvbW1lbnQiIGxpbmUuCisJRml4IHRoZSBFbmdsaXNoIG9mIHNvbWUgb2YgdGhlIGVycm9yIG1lc3NhZ2VzLgorCisJKiBvYmplY3RzL2VuaG1ldGFmaWxlLmM6CisJSHV3IEQgTSBEYXZpZXMgPGhkYXZpZXNAY29kZXdlYXZlcnMuY29tPgorCVJlbW92ZSB1bnVzZWQgb3V0WGZvcm0uCisKKwkqIGRsbHMvZGRyYXcvZGRyYXcvbWFpbi5jOgorCUxpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJQWxsb3cgYW4gYXBwbGljYXRpb24gdG8gcmUtYXNrIGZvciBFWENMVVNJVkUgRGlyZWN0RHJhdyBhY2Nlc3MuCisKKwkqIGRsbHMvY29tY3RsMzIvcHJvcHNoZWV0LmM6CisJQW5kcmVhcyBNb2hyIDxhbW9ockBjb2Rld2VhdmVycy5jb20+CisJQ2hlY2sgUFJPUFNIRUVUUEFHRUEucGZuQ2FsbGJhY2sgZm9yIE5VTEwgcG9pbnRlciBpZiBQU1BfVVNFQ0FMTEJBQ0sKKwlpcyBnaXZlbi4KKworCSogZGxscy9jb21jdGwzMi90cmVldmlldy5jOgorCUZyYW7nb2lzIEdvdWdldCA8ZmdvdWdldEBjb2Rld2VhdmVycy5jb20+CisJSGFuZGxlIFdNX0NIQVJzIGFuZCBwYXNzIHRoZW0gdG8gVFJFRVZJRVdfUHJvY2Vzc0xldHRlcktleXMuIFNlZSBhbHNvCisJTElTVFZJRVdfUHJvY2Vzc0xldHRlcktleXMgaW4gbGlzdHZpZXcuYy4KKworCSogZGxscy9jb21jdGwzMi9saXN0dmlldy5jOgorCUZyYW7nb2lzIEdvdWdldCA8ZmdvdWdldEBjb2Rld2VhdmVycy5jb20+CisJRml4IChyZXdyaXRlKSwgYW5kIGFkZCBkb2N1bWVudGF0aW9uIHRvIExJU1RWSUVXX1Byb2Nlc3NMZXR0ZXJLZXlzLgorCUxvd2VyZWQgdGhlIGtleSByZXBldGl0aW9uIGRlbGF5IChBcmljKS4KKworCSogbWVtb3J5L3ZpcnR1YWwuYzoKKwlKYW1lcyBBYmJhdGllbGxvIDxqYWJiZXlAY29kZXdlYXZlcnMuY29tPgorCURvbid0IHJlcXVpcmUgd3JpdGUgYWNjZXNzIG9uIHRoZSBmaWxlIGhhbmRsZSB0byBjcmVhdGUgYQorCWNvcHktb24td3JpdGUgbWFwcGluZy4KKworCSogZGxscy93aW5tbS9tbXN5c3RlbS5jLCBkbGxzL3dpbnNwb29sL2luZm8uYywgZGxscy93aW5zcG9vbC93c3Bvb2wuYywgbGlidGVzdC9oZWxsbzUuYywgcHJvZ3JhbXMvYXZpdG9vbHMvYXZpaW5mby5jLCBwcm9ncmFtcy9hdml0b29scy9hdmlwbGF5LmMsIHdpbmRvd3MvZGVmd25kLmMsIGRsbHMvY29tY3RsMzIvc21vb3Roc2Nyb2xsLmMsIGRsbHMvY29tbWRsZy9jZGxnLmgsIGRsbHMvY29tbWRsZy9jZGxnMzIuYywgZGxscy9kcGxheXgvZHBsYXlzcC5oLCBkbGxzL2ltbTMyL2ltbV9wcml2YXRlLmgsIGRsbHMva2VybmVsL3V0dGh1bmsuYywgZGxscy9vbGUzMi9jb21wb2JqLmMsIGRsbHMvc2V0dXBhcGkvc2V0dXB4MTYuaCwgZGxscy9zaGVsbDMyL3NoZWxsMzJfbWFpbi5jLCBkbGxzL3NoZWxsMzIvc2hlbGwzMl9tYWluLmgsIGRsbHMvc2hlbGwzMi9zaGVsbG9sZS5jLCBkbGxzL3NoZWxsMzIvc2hsdmlldy5jLCBkbGxzL3dpbmVwcy9kcml2ZXIuYzoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlDaGFuZ2UgdGhlIGNhbGxiYWNrIGRlY2xhcmF0aW9ucyB0byBhIHNhZmVyIGZvcm1hdC4KKworCSogZGxscy9vbGVhdXQzMi9kaXNwYXRjaC5jLCBmaWxlcy9maWxlLmMsIGRsbHMva2VybmVsL2NvbW0uYywgZGxscy9rZXJuZWwvZGVidWdnZXIuYywgZGxscy9rZXJuZWwvdGltZS5jOgorCVBhdHJpayBTdHJpZHZhbGwgPHBzQGxlaXNzbmVyLnNlPgorCURvY3VtZW50YXRpb24gYXJndW1lbnQgZml4ZXMuCisKKwkqIHdpbmRvd3MvbWVzc2FnZS5jLCB3aW5kb3dzL3VzZXIuYywgd2luZG93cy94MTFkcnYvY2xpcGJvYXJkLmMsIHdpbmRvd3MveDExZHJ2L2tleWJvYXJkLmMsIHdpbmRvd3MveDExZHJ2L21vdXNlLmM6CisJUGF0cmlrIFN0cmlkdmFsbCA8cHNAbGVpc3NuZXIuc2U+CisJRG9jdW1lbnRhdGlvbiBuYW1lIGZpeGVzIChhbHdheXMgdXNlIGV4dGVybmFsIG5hbWUpLgorCisJKiBkbGxzL2RwbGF5eC9kcGxheS5jLCBkbGxzL29sZTMyL3N0b3JhZ2UuYywgZGxscy9zaGVsbDMyL3Nodl9iZ19jbWVudS5jLCBsaWJ0ZXN0L3ZhcnRlc3QuYzoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlGaXggdHlwb3MgaW4gY29tbWVudHMuCisKKwkqIGRsbHMva2VybmVsL25scy9tc2wubmxzLCBtaXNjL29wdGlvbnMuYywgdG9vbHMvd21jL2xhbmcuYywgdG9vbHMvd21jL2xhbmd1YWdlLmMsIHRvb2xzL3dyYy91dGlscy5jLCBkbGxzL2tlcm5lbC9sb2NhbGVfcmMucmM6CisJUmVpbiBLbGF6ZXMgPHJrbGF6ZXNAY2FzZW1hLm5ldD4KKwlBZGRlZCBzdXBwb3J0IGZvciB0aGUgTWFsYXlhbiBsYW5ndWFnZS4KKworCSogZGxscy9jb21jdGwzMi9saXN0dmlldy5jLCBpbmNsdWRlL2NvbW1jdHJsLmg6CisJQ2hyaXMgTW9yZ2FuIDxjbW9yZ2FuQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggTGlzdFZpZXdfR2V0SXRlbVJlY3QoKSBtYWNyby4KKwlGaXggdXNlIG9mIExpc3RWaWV3X0dldEl0ZW1SZWN0KCkgbWFjcm8gaW4gbGlzdHZpZXcgY29udHJvbC4KKwlBZGQgc29tZSBkb2N1bWVudGF0aW9uIHRvIExJU1RWSUVXX0dldEl0ZW1SZWN0KCkuCisKKwkqIGRsbHMvbXNhY20vbXNhY21fbWFpbi5jLCBkbGxzL21zdmNydC9kYXRhLmMsIGRsbHMvbXN2Y3J0L21hdGguYzoKKwlQYXRyaWsgU3RyaWR2YWxsIDxwc0BsZWlzc25lci5zZT4KKwlGaXhlZCBzb21lIGlzc3VlcyBmb3VuZCBieSB3aW5hcGlfY2hlY2suCisKKwkqIHRvb2xzL3dpbmFwaV9jaGVjay93aW4xNi9tc3ZpZGVvLmFwaSwgdG9vbHMvd2luYXBpX2NoZWNrL3dpbjE2L3VzZXIuYXBpLCB0b29scy93aW5hcGlfY2hlY2svd2luYXBpX2NoZWNrLCB0b29scy93aW5hcGlfY2hlY2svd2luYXBpX2RvY3VtZW50YXRpb24ucG0sIHRvb2xzL3dpbmFwaV9jaGVjay93aW5hcGlfZnVuY3Rpb24ucG0sIHRvb2xzL3dpbmFwaV9jaGVjay93aW5hcGlfbG9jYWwucG0sIHRvb2xzL3dpbmFwaV9jaGVjay93aW5hcGlfcGFyc2VyLnBtOgorCVBhdHJpayBTdHJpZHZhbGwgPHBzQGxlaXNzbmVyLnNlPgorCS0gQWRkZGVkIHN1cHBvcnQgZm9yIEFQSTpzIGltcGxlbWVudGVkIHdpdGggX19BU01fR0xPQkFMX0ZVTkMKKwktIFJlb3JnYW5pemVkIGRvY3VtZW50YXRpb24gY2hlY2tpbmcuCisJLSBNaW5vciBBUEkgZmlsZXMgZml4ZXMKKworCSogZGxscy9kZHJhdy9kZHJhdy9tYWluLmMsIGRsbHMvZGRyYXcvZGRyYXcvdGh1bmtzLmMsIGRsbHMvZGRyYXcvZGRyYXcvdXNlci5jLCBkbGxzL2RkcmF3L2RkcmF3X3ByaXZhdGUuaCwgZGxscy9kZHJhdy9kc3VyZmFjZS9tYWluLmM6CisJTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJSGFuZGxlIGRpZmZlcmVudGx5IHNpemVkIHN0cnVjdHMgYnkgdXNpbmcgdGhlaXIgZHdTaXplIHBhcmFtZXRlcnMuCisKKwkqIGRsbHMvZGlucHV0L2pveXN0aWNrL2xpbnV4aW5wdXQuYywgaW5jbHVkZS9jYWxsYmFjay5oLCB3aW5kb3dzL3dpbnByb2MuYzoKKwlKYW1lcyBBYmJhdGllbGxvIDxqYWJiZXlAY29kZXdlYXZlcnMuY29tPgorCUZpeCBhIGZldyBjb21waWxlciB3YXJuaW5ncy4KKworCSogZGxscy9jb21jdGwzMi9kYXRldGltZS5jLCBkbGxzL2NvbWN0bDMyL2ZsYXRzYi5jLCBkbGxzL2NvbWN0bDMyL25hdGl2ZWZvbnQuYywgZGxscy9jb21jdGwzMi9wYWdlci5jLCBkbGxzL2NvbWN0bDMyL3Rvb2xiYXIuYzoKKwlKYW1lcyBBYmJhdGllbGxvIDxqYWJiZXlAY29kZXdlYXZlcnMuY29tPgorCURvbid0IGFsbG93IGNvbWN0bDMyIGNvbnRyb2xzIHRvIGFjY2VzcyB0aGVpciBpbmZvUHRyIGJlZm9yZSBpdCBoYXMKKwliZWVuICBhbGxvY2F0ZWQgb3IgYWZ0ZXIgaXQgaGFzIGJlZW4gZnJlZWQuCisKKwkqIGRsbHMvd2lubW0vbW1pby5jOgorCUFuZHJlYXMgTW9ociA8YW1vaHJAY29kZXdlYXZlcnMuY29tPgorCU1ha2UgTU1JT19PcGVuIHdvcmsgd2l0aCBOVUxMIGZpbGVuYW1lIGFnYWluLgorCisJKiBkbGxzL3VzZXIvdXNlcjMyLnNwZWMsIGluY2x1ZGUvd2ludXNlci5oLCB3aW5kb3dzL21kaS5jLCB3aW5kb3dzL3dpbi5jLCBkbGxzL3VzZXIvY29udHJvbHMuaDoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUFkZGVkIHVuaWNvZGUgTURJIGNsaWVudCB3aW5kb3cgcHJvYy4KKworCSogd2luZG93cy94MTFkcnYvZXZlbnQuYzoKKwlKb3NoIER1Qm9pcyA8ZHVib2lzakBjb2Rld2VhdmVycy5jb20+CisJRml4ZWQgYSBjaGFyIHRoYXQgc2hvdWxkIGhhdmUgYmVlbiBzaWduZWQuCisKKwkqIGluY2x1ZGUvcHJvY2Vzcy5oOgorCUpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJVXNlIGV4dGVybiAiQyIgZm9yIFdpbmVsaWIgQysrIGFwcHMuCisKKwkqIGRsbHMvY29tbWRsZy9wcmludGRsZy5jOgorCUh1dyBEIE0gRGF2aWVzIDxoZGF2aWVzQGNvZGV3ZWF2ZXJzLmNvbT4KKwlDYWxsIExvYWRJbWFnZSB0byBsb2FkIHRoZSBub24tc3RhbmRhcmQgc2l6ZWQgY29sbGF0ZSBpY29ucy4KKworCSogZGxscy93aW5lcHMvZm9udC5jOgorCUh1dyBEIE0gRGF2aWVzIDxoZGF2aWVzQGNvZGV3ZWF2ZXJzLmNvbT4KKwlNYXAgJ0NvdXJpZXIgTmV3JyB0byAnQ291cmllcicuCisKKwkqIG9iamVjdHMvZW5obWV0YWZpbGUuYzoKKwlIdXcgRCBNIERhdmllcyA8aGRhdmllc0Bjb2Rld2VhdmVycy5jb20+CisJRml4IEVNRiBwb3NpdGlvbmluZyB3aGVuIHJjbEZyYW1lIGhhcyBhIG5vbi16ZXJvIG9yaWdpbi4KKworCSogaW5jbHVkZS93aW5lL3VuZG9jc2hlbGwuaCwgaW5jbHVkZS9wcm9jZXNzLmgsIGluY2x1ZGUvc2V0dXBhcGkuaCwgaW5jbHVkZS9zaGx3YXBpLmgsIGluY2x1ZGUvdmZ3LmgsIGluY2x1ZGUvd2luYmFzZS5oLCBpbmNsdWRlL3dpbnNvY2syLmgsIGluY2x1ZGUvd2luc3ZjLmg6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJQ2hhbmdlIHRoZSBjYWxsYmFjayBkZWNsYXJhdGlvbnMgdG8gYSBzYWZlciBmb3JtYXQuCisKKwkqIGRsbHMvbXNhY20vZmlsdGVyLmMsIGRsbHMvbXNhY20vZm9ybWF0LmM6CisJSmFtZXMgSGF0aGV3YXkgPGphbWVzQG1hY2FkYW1pYW4uY29tPgorCWFjbURyaXZlckVudW1XIHNob3VsZG4ndCByZXR1cm4gTU1TWVNFUlJfRVJST1IgaWYKKwlhY21Ecml2ZXJFbnVtQ2FsbGJhY2sgcmV0dXJucyBUUlVFLgorCisJKiBkbGxzL3dpbnNwb29sL2luZm8uYywgZGxscy93aW5zcG9vbC93aW5zcG9vbC5kcnYuc3BlYywgaW5jbHVkZS93aW5zcG9vbC5oOgorCUh1dyBEIE0gRGF2aWVzIDxoZGF2aWVzQGNvZGV3ZWF2ZXJzLmNvbT4KKwlJbXBsZW1lbnQgU2V0L0dldFByaW50ZXJEYXRhW0V4XS4KKwlSZW1vdmUgb3JkaW5hbHMgZnJvbSB3aW5zcG9vbC5kcnYuc3BlYyAuCisKKwkqIGRsbHMvb2xlMzIvY29tcG9iai5jLCBkbGxzL29sZTMyL29sZTJzdHVicy5jOgorCUFuZHJlYXMgTW9ociA8YW1vaHJAY29kZXdlYXZlcnMuY29tPgorCVRha2UgYSBzdGFiIGF0IGltcGxlbWVudGluZyBPbGVTZXRBdXRvQ29udmVydC4KKworCSogZGxscy93aW5lcHMvYWZtLmM6CisJTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJRml4ZWQgYSBOVUxMIHB0ciBwcm9ibGVtLgorCUFkZGVkIGxvYWRpbmcgb2YgLmFmbSBmaWxlcyBmcm9tIHNldmVyYWwgY29tbW9uIGxvY2F0aW9ucworCShnaG9zdHNjcmlwdCwgYTJwcywgZW5zY3JpcHQsICh0ZVRlWCksIFgxMSkuCisKKwkqIGRsbHMvd2lubW0vd2luZW9zcy9hdWRpby5jOgorCUFuZHJlYXMgTW9ociA8YW1vaHJAY29kZXdlYXZlcnMuY29tPgorCURvbid0IHRvdWNoIFdBVkVIRFJzIGR3TG9vcHMgdmFyaWFibGUuCisKKwkqIGRsbHMvd2luZXBzL3BwZC5jOgorCUh1dyBEIE0gRGF2aWVzIDxoZGF2aWVzQGNvZGV3ZWF2ZXJzLmNvbT4KKwlTcGFjZXMgZG8gbm90IGhhdmUgdG8gY29tZSBhZnRlciB0aGUgJzonIHRoYXQgZW5kcyBhIGtleXdvcmQuCisJTWFwIGJpbiBuYW1lIE1hbnVhbEVudiB0byBETUJJTl9FTlZNQU5VQUwuCisKKwkqIHRvb2xzL3dpbmVtYWtlcjoKKwlGcmFu529pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCU1ha2Ugc3VyZSBhbGwgZmlsZXMgYXJlIHRlcm1pbmF0ZWQgd2l0aCBhICdcbicuCisJUmVtb3ZlIG9ic29sZXRlIGNvbW1lbnQgYWJvdXQgJ2FmeHJlcy5oJyBjb21pbmcgYmFjayBhZnRlciBlZGl0aW5nIGluIFZDLgorCUFkZGVkIHN1cHBvcnQgZm9yIHRoZSBSVEYgcXVhbGlmaWVyIGluIFJDIGZpbGVzLgorCisJKiBtc2Rvcy9pbnQyMS5jOgorCUFuZHJlYXMgTW9ociA8YW1vaHJAY29kZXdlYXZlcnMuY29tPgorCUltcGxlbWVudGVkIHRoZSBpbnQyMSBMRk4gcmVuYW1lIGZpbGUgZnVuY3Rpb24uCisKKwkqIGRsbHMvb2xlMzIvb2xlMi5jOgorCUh1dyBEIE0gRGF2aWVzIDxoZGF2aWVzQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggUmVsZWFzZVN0Z01lZGl1bSBmb3IgTWV0YUZpbGVQaWN0IHR5cGVzLgorCisJKiBkbGxzL3dpbmVwcy90ZXh0LmM6CisJSHV3IEQgTSBEYXZpZXMgPGhkYXZpZXNAY29kZXdlYXZlcnMuY29tPgorCUZpeCBmb3Igcm90YXRlZCB0ZXh0IHdoZW4gbHBEeCBpcyBzcGVjaWZpZWQuCisJQmV0dGVyIGhhbmRsaW5nIG9mIGN1bXVsYXRpdmUgcm91bmRpbmcgZXJyb3JzLgorCisJKiBkbGxzL2NvbWN0bDMyL3BhZ2VyLmM6CisJU3VzYW4gRmFybGV5IDxzdXNhbkBjb2Rld2VhdmVycy5jb20+CisJSGFuZGxlIHRoZSBDQ1NfTk9SRVNJWkUgc3R5bGUuCisJQ2hhbmdlIHRoZSBzY3JvbGwgZGVsdGEgb25seSB3aGVuIHRoZSBhcHAgcmVzcG9uZHMgdG8gdGhlIFBHTl9OT1RJRlkgbXNnLgorCisJKiBncmFwaGljcy94MTFkcnYvZGliLmM6CisJT3ZlIEthYXZlbiA8b3Zla0B0cmFuc2dhbWluZy5jb20+CisJSW4gQ29weURJQlNlY3Rpb24sIHVzZSBzb3VyY2UgRElCIGNvbG9ybWFwIGluc3RlYWQgaWYgbm8gcGFsZXR0ZSBoYXMKKwliZWVuIHNlbGVjdGVkIGludG8gdGhlIHNvdXJjZSBEQywgdG8gd29yayBhcm91bmQgc29tZSBYMTEtaW1wb3NlZAorCURJQnNlY3Rpb24gaW1wbGVtZW50YXRpb24gZGVmaWNpZW5jaWVzLgorCisJKiBkbGxzL2RkcmF3L2RkcmF3L2RnYTIuYzoKKwlPdmUgS2FhdmVuIDxvdmVrQHRyYW5zZ2FtaW5nLmNvbT4KKwlGaXggREdBMiBtb2RlIHNldHRpbmcgdG8gdXNlIHRoZSBjb3JyZWN0IGNvbG9yIGRlcHRoLgorCisJKiB0b29scy93aW5lY29uZjoKKwlBbmRyZWFzIE1vaHIgPGFtb2hyQGNvZGV3ZWF2ZXJzLmNvbT4KKwktIGZpeCB3aW5lY29uZiB0byBnZW5lcmF0ZSBuZXcgY29uZmlnIGZpbGUgZm9ybWF0CisJLSBmaXggc29tZSB2YXJpYWJsZSBjaGVja3MKKworCSogb2JqZWN0cy9lbmhtZXRhZmlsZS5jOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJQWRkIHN1cHBvcnQgZm9yIEVNUl9FWFRURVhUT1VUQSBhbmQgRU1SX0NSRUFURU1PTk9CUlVTSCBlbmhhbmNlZAorCW1ldGFmaWxlIHJlY29yZHMuIEJldHRlciBpbXBsZW1lbnRhdGlvbiBvZiBFTVJfU1RSRVRDSERJQklUUyBhbmQKKwlFTVJfRVhUVEVYVE9VVFcuCisKKwkqIHJlbGF5MzIvc25vb3AuYzoKKwlMYXdzb24gV2hpdG5leSA8bGF3c29uX3doaXRuZXlAanVuby5jb20+CisJTWFrZSBzbm9vcCBzcGVjaWZpYyBjYXNlIGluc2Vuc2l0aXZlLgorCisJKiBkbGxzL2RjaW1hbjMyL2RjaW1hbjMyLnNwZWMsIGRsbHMvZGNpbWFuMzIvZGNpbWFuX21haW4uYzoKKwlBbmRyZWFzIE1vaHIgPGFtb2hyQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGRlZCBEQ0lDbG9zZVByb3ZpZGVyIHN0dWIuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGVsbGxpbmsuYzoKKwlKYW1lcyBBYmJhdGllbGxvIDxqYWJiZXlAY29kZXdlYXZlcnMuY29tPgorCUltcGxlbWVudCBJU2hlbGxMaW5rPEF8Vz5fZm5HZXRXb3JraW5nRGlyZWN0b3J5LAorCUlTaGVsbExpbms8QXxXPl9mbkdldEFyZ3VtZW50cywgSVNoZWxsTGluazxBfFc+X2ZuR2V0SWNvbkxvY2F0aW9uLgorCisJKiBjb250cm9scy9jb21iby5jOgorCUphbWVzIEFiYmF0aWVsbG8gPGphYmJleUBjb2Rld2VhdmVycy5jb20+CisJT3duZXJkcmF3biBjb21ibyBib3hlcyBzaG91bGQgdXNlIE9EU19DT01CT0JPWEVESVQgaW4gdGhlIGl0ZW1TdGF0ZS4KKworCSogaW5jbHVkZS9jb21tY3RybC5oOgorCUd1eSBMLiBBbGJlcnRlbGxpIDxnYWxiZXJ0ZUBuZW8ubHJ1bi5jb20+CisJLSBGaXggdHlwbyBpbiBwcmV2aW91cyBjaGFuZ2UuCisJLSBBZGQgc3RydWN0dXJlcyBmb3IgQ0JFTl9JTlNFUlRJVEVNIG5vdGlmeSBtZXNzYWdlLgorCisJKiB0b29scy93cmMvdXRpbHMuYzoKKwlKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCVJlbW92ZSB4bWFsbG9jL3hyZWFsbG9jIGxpbWl0cyBmb3IgbGFyZ2UgYmluYXJ5IHJlc291cmNlcy4KKworCSogZ3JhcGhpY3MveDExZHJ2L3RleHQuYzoKKwlFcmljIEtvaGwgPGVrb2hsQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXhlZCB0ZXh0IHNpemUgY2FsY3VsYXRpb24gYnVnIGluIEdldFRleHRFeHRlbnRQb2ludCgpIGZvciB3aW5kb3cgZGMncy4KKworCSogZG9jdW1lbnRhdGlvbi9kb2N1bWVudGF0aW9uLnNnbWw6CisJSm9obiBSLiBTaGVldHMgPGpzaGVldHNAY29kZXdlYXZlcnMuY29tPgorCU5ldyBzZWN0aW9uIGFib3V0IHdyaXRpbmcgZG9jcyBpbiBEb2NCb29rIGFuZCBkZWFsaW5nIHdpdGggdGhlIFdpbmUKKwlTR01MIGJ1aWxkIHN5c3RlbTsgaGFsZiBkb25lLCBidXQgYSBnb29kIHN0YXJ0LgorCisJKiBkbGxzL3dpbm5scy93aW5ubHMuYywgZGxscy93aW5ubHMvd2lubmxzLnNwZWM6CisJQW5kcmVhcyBNb2hyIDxhbW9ockBjb2Rld2VhdmVycy5jb20+CisJQSBjb3VwbGUgb2Ygc3R1YnMgZm9yIFRlcm1pbmFsIFNlcnZlciBDbGllbnQgMTYgYml0LgorCisyMDAxLTAxLTI5ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBwcm9ncmFtcy9hdml0b29scy9NYWtlZmlsZS5pbjoKKwlNYXR0aGV3IENsYXJrZSA8TWF0dGhld19DbGFya2VAbWluZGxpbmsuYmMuY2E+CisJRG9uJ3QgYXNzdW1lIC5zcGVjIGZpbGVzIGFyZSBmb3VuZCBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnksIGFzIHRoaXMKKwlpcyBub3QgdGhlIGNhc2Ugd2hlbiBidWlsZGluZyBvdXRzaWRlIHRoZSBzb3VyY2UgdHJlZS4KKworCSogaW5jbHVkZS9xdWV1ZS5oLCB3aW5kb3dzL21lc3NhZ2UuYywgd2luZG93cy9xdWV1ZS5jOgorCVVscmljaCBXZWlnYW5kIDx3ZWlnYW5kQGltbWQxLmluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlPgorCVN5bmNocm9uaXplIGFjY2VzcyB0byBNRVNTQUdFUVVFVUUgbWVtYmVycy4KKworCSogZGxscy9tc3ZpZGVvL21zdmlkZW9fbWFpbi5jOgorCU1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCUFkZGVkIHNvbWUgbW9yZSAxNi0+MzIgbWFwcGluZ3MgZm9yIElDTSogbWVzc2FnZXMuCisKKwkqIGRsbHMvZGRyYXcvZGRyYXcvbWFpbi5jOgorCU1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCWR2aWRlby5kbGwgZm9yZ2V0cyB0byBzZXQgdGhlIEREU0RfQ0FQUyBmbGFnLCBqdXN0IGFzc3VtZSBpdCBzZXQuCisJT3V0cHV0IG1vcmUgZGVidWcgaW5mbyBvbiBmYWlsdXJlLgorCisJKiBvYmplY3RzL2VuaG1ldGFmaWxlLmM6CisJRXJpYyBLb2hsIDxla29obEBjb2Rld2VhdmVycy5jb20+CisJRGlzYWJsZWQgc2V0dGluZyBvZiB3aW5kb3cgb3JpZ2luIGZyb20gYW4gRU1GLgorCisyMDAxLTAxLTI4ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL01ha2VmaWxlLmluLCBkbGxzL21zdmlkZW8vbXN2ZnczMi5zcGVjLCBkbGxzL21zdmlkZW8vbXN2aWRlb19tYWluLmM6CisJTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJSW1wbGVtZW50ZWQgVmlkZW9DYXBEcml2ZXJEZXNjQW5kVmVyLgorCisJKiBkbGxzL3VzZXIvdXNlci5zcGVjLCB3aW5kb3dzL21lc3NhZ2UuYywgd2luZG93cy91c2VyLmM6CisJRXJpYyBQb3VlY2ggPEVyaWMuUG91ZWNoQHdhbmFkb28uZnI+CisJQWRkZWQgYSBmZXcgbWlzc2luZyBleHBvcnRzLgorCisJKiBkbGxzL2RpbnB1dC9rZXlib2FyZC9tYWluLmM6CisJT3ZlIEthYXZlbiA8b3Zla0B0cmFuc2dhbWluZy5jb20+CisJRG9uJ3QgZGlzYWJsZSBrZXlib2FyZCBhdXRvcmVwZWF0LCBzaW5jZSBhdXRvcmVwZWF0IGlzIG5vdyBkZXRlY3RhYmxlLgorCisJKiBkbGxzL2RkcmF3L2RzdXJmYWNlL21haW4uYywgZGxscy9kZHJhdy9kZHJhdy9kZ2EyLmMsIGRsbHMvZGRyYXcvZGRyYXcvdXNlci5jLCBkbGxzL2RkcmF3L2RkcmF3L3h2aWRtb2RlLmMsIGRsbHMvZGRyYXcvZGRyYXdfcHJpdmF0ZS5oOgorCU1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCS0gU2llZGxlcjMgYXBwZWFycyB0byBoYXZlIHJhdGhlciBsaW1pdGVkIGJ1ZmZlcnMgZm9yIGRldmljZS9kZXNjcmlwdGlvbgorCSAgc3RyaW5ncyBhbmQgY3Jhc2hlcyB3aXRoIHRob3NlIGxvbmcgc3RyaW5ncy4gU2hvcnRlbmVkIHRob3NlIHN0cmluZ3MuCisJLSBBbHNvIGRyaXZlciBuZWVkcyB0byBiZSAiZGlzcGxheSIgZm9yIGRpc3BsYXkgZGV2aWNlcyAoc29tZSBvdGhlcgorCSAgcHJvZ3JhbXMgcmVseSBvbiB0aGF0IGluZm8gSSBzZWVtIHRvIHJlbWVtYmVyKS4KKwktIEZpeGVkIERTdXJmYWNlOjpHZXRTdXJmYWNlRGVzYyB0byBub3QganVzdCBibGluZGx5IGNvcHkgYQorCSAgRERTVVJGQUNFREVTQzIgc3RydWN0IG92ZXIgYSBzbWFsbGVyIEREU1VSRkFDRURFU0Mgb25lLgorCisJKiBkbGxzL2RpbnB1dC9kZXZpY2VfcHJpdmF0ZS5oLCBkbGxzL2RpbnB1dC9kaW5wdXRfbWFpbi5jLCBkbGxzL2RpbnB1dC9qb3lzdGljay9saW51eC5jLCBkbGxzL2RpbnB1dC9qb3lzdGljay9saW51eGlucHV0LmMsIGRsbHMvZGlucHV0L21vdXNlL21haW4uYzoKKwlPdmUgS2FhdmVuIDxvdmVrQHRyYW5zZ2FtaW5nLmNvbT4KKwlHYXZyaWVsIFN0YXRlIDxnYXZAdHJhbnNnYW1pbmcuY29tPgorCUltcGxlbWVudGVkIGNpcmN1bGFyIGJ1ZmZlcmluZyBmb3IgdGhlIGRpbnB1dCBtb3VzZSBkZXZpY2UuCisJTWFwcGVkIHRoZSBtb3VzZSB3YXJwIG9uIHRoZSBjZW50ZXIgb2YgdGhlIGNvb3BlcmF0aXZlIHdpbmRvdywgd2hpY2gKKwlzaG91bGQgbWFrZSB3aW5kb3dlZCBnYW1lcyB3b3JrIGJldHRlciBpbiBtYW5hZ2VkIG1vZGUuCisKKwkqIGRsbHMvd2luZXBzL2luaXQuYywgZGxscy93aW5lcHMvcHMuYywgZGxscy93aW5lcHMvcHNkcnYuaDoKKwlIdXcgRCBNIERhdmllcyA8aGRhdmllc0Bjb2Rld2VhdmVycy5jb20+CisJVGFrZSBpbnRvIGFjY291bnQgdW5wcmludGFibGUgbWFyZ2lucyBpbiBwc2Rydi4KKworCSogZGxscy93aW5lcHMvZHJpdmVyLmM6CisJSHV3IEQgTSBEYXZpZXMgPGhkYXZpZXNAY29kZXdlYXZlcnMuY29tPgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJcHNkcnYncyBEZXZpY2VDYXBhYmlsaXRpZXMgc2hvdWxkIGxpc3QgRE1CSU5fQVVUTyBhcyBhbiBhdmFpbGFibGUKKwliaW4uCisKKwkqIGRsbHMvd2luZXBzL3BwZC5jOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJQWRkICJPbmx5T25lIiBwYXBlciBzb3VyY2UsIHVzZWQgYnkgdGhlIEFjcm9iYXQgRGlzdGlsbGVyIFBQRC4KKworCSogZGxscy9tc3ZjcnQvbWF0aC5jOgorCUpvc2ggRHVCb2lzIDxkdWJvaXNqQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXhlZCB0eXBvLgorCisJKiBkbGxzL3dpbm1tL21jaS5jOgorCUVyaWMgUG91ZWNoIDxFcmljLlBvdWVjaEB3YW5hZG9vLmZyPgorCUZpeGVkIHNvbWUgbWNpIHN0cmluZyBwYXJzaW5nIGlzc3Vlcy4KKwlBZGRlZCBtb3JlIG1hcHBpbmdzIDMyQVRvMTYuCisKKwkqIGRsbHMvd2lubW0vbWNpc2VxL21jaW1pZGkuYywgZGxscy93aW5tbS9tY2l3YXZlL21jaXdhdmUuYzoKKwlFcmljIFBvdWVjaCA8RXJpYy5Qb3VlY2hAd2FuYWRvby5mcj4KKwlTaW1wbGlmaWVkIG1lbW9yeSBhbGxvY2F0aW9uIGZvciBhc3luY2hyb25vdXMgTUNJIG1lc3NhZ2UgaGFuZGxpbmcuCisKKwkqIGRsbHMvd2lubW0vbWNpY2RhL21jaWNkYS5kcnYuc3BlYywgZGxscy93aW5tbS9tY2lzZXEvbWNpc2VxLmRydi5zcGVjLCBkbGxzL3dpbm1tL21jaXdhdmUvbWNpd2F2ZS5kcnYuc3BlYzoKKwlFcmljIFBvdWVjaCA8RXJpYy5Qb3VlY2hAd2FuYWRvby5mcj4KKwlEZWxheSBpbXBvcnRpbmcgdXNlcjMyIChvbmx5IHVzZWQgZm9yIGNvbmZpZ3VyYXRpb24pLgorCisJKiBkbGxzL21zdmlkZW8vbXN2aWRlb19tYWluLmM6CisJRXJpYyBQb3VlY2ggPEVyaWMuUG91ZWNoQHdhbmFkb28uZnI+CisJRml4ZWQgYSBmZXcgb2RkaXRpZXMuCisKKwkqIGRsbHMvbXN2aWRlby9kcmF3ZGliLmM6CisJRXJpYyBQb3VlY2ggPEVyaWMuUG91ZWNoQHdhbmFkb28uZnI+CisJQWRkZWQgYSBiaXQgbW9yZSBvZiBmbGFncyBoYW5kbGluZyBpbiBkcmF3ZGliIGZ1bmN0aW9ucy4KKworCSogZGxscy9jb21tZGxnL2ZpbGVkbGc5NS5jOgorCUNocmlzIE1vcmdhbiA8Y21vcmdhbkBjb2Rld2VhdmVycy5jb20+CisJUHV0IGEgJ1xuJyBhdCB0aGUgZW5kIG9mIHRoZSBGSVhNRSB0byBwcmV2ZW50IHZlcnkgb2RkIGFuZCBkaWZmaWN1bHQKKwl0byBkZWJ1ZyBjcmFzaGVzIGR1ZSB0byBvdmVyZmxvd2luZyBvZiB0aGUgZGVidWcgaW5mbydzIG91dHB1dCBidWZmZXIuCisKKwkqIHRvb2xzL3NwZWNtYWtlci9SRUFETUUsIHRvb2xzL3NwZWNtYWtlci9tYWluLmMsIHRvb2xzL3NwZWNtYWtlci9tc21hbmdsZS5jLCB0b29scy9zcGVjbWFrZXIvb3V0cHV0LmMsIHRvb2xzL3NwZWNtYWtlci9zcGVjbWFrZXIuaDoKKwlKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCUltcHJvdmUgbmFtZSBkZW1hbmdsaW5nLCBhZGQgJ2RlbWFuZ2xlIHN5bWJvbCcgb3B0aW9uLgorCisyMDAxLTAxLTI2ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiB0b29scy93aW5lbGF1bmNoZXIuaW46CisJSmVyZW15IFdoaXRlIDxqd2hpdGVAY29kZXdlYXZlcnMuY29tPgorCVJlbW92ZSB0aGUga2V5d29yZCAnZnVuY3Rpb24nLCBhcyByZXF1ZXN0ZWQgYnkgUm9iZXJ0IEx1YmVyZGEuCisKKwkqIG1pc2MvcmVnaXN0cnkuYzoKKwlNYXJ0aW4gUGlsa2EgPG1waWxrYUBjb2Rld2VhdmVycy5jb20+CisJRml4ZWQgdHlwbyB3aGljaCBjYXVzZWQgdGhlIFdyaXRldG9Ib21lUmVnaXN0cnlGaWxlcyBvcHRpb24gdG8gYmUKKwlpZ25vcmVkLgorCisJKiBkbGxzL2NvbWN0bDMyL2NvbWJvZXguYzoKKwlHdXkgTC4gQWxiZXJ0ZWxsaSA8Z2FsYmVydGVAbmVvLmxydW4uY29tPgorCS0gUmV3cml0ZSBXTV9DUkVBVEUgdG8gbWF0Y2ggbmF0aXZlIChhbGxvY2F0aW5nIG93biBFZGl0IGNvbnRyb2wsIGV0YykuCisJLSBJbXBsZW1lbnQgYWRkaXRpb25hbCBXTkRQUk9DcyBmb3IgdGhlIENvbWJvIGFuZCBFZGl0IGNvbnRyb2xzIHRvCisJICBoYW5kbGUgZGlmZmVyZW50IGZ1bmN0aW9ucy4KKwktIEltcGxlbWVudCBDQkVNX1NFVENVUlNFTCBhbmQgQ0JFTV9IQVNFRElUQ0hBTkdFRC4KKworCSogY29udHJvbHMvY29tYm8uYzoKKwlHdXkgTC4gQWxiZXJ0ZWxsaSA8Z2FsYmVydGVAbmVvLmxydW4uY29tPgorCS0gV2hlbiBwYWludGluZyB0aGUgdGV4dCwgaWYgdGhlIGNvbnRyb2wgaXMgT1dORVJEUkFXTiB0aGUgaXNzdWUgdGhlCisJICBXTV9EUkFXSVRFTSBtZXNzYWdlLgorCS0gU2V0IHRoZSBmb2N1c2VkIHN0YXR1cyBhdCB0aGUgZW5kIG9mIHRoZSBlbmQgb2YgdGhlIFNldGZvY3VzIHJvdXRpbmUuCisJLSBGbGlwIHRoZSBvcmRlciBvZiB1cGRhdGluZyB0aGUgbGlzdCBib3ggYW5kIGlzc3VpbmcgdGhlIFdNX05PVElGWQorCSAgZm9yIENCTl9FRElUVVBEQVRFIHRvIG1hdGNoIG5hdGl2ZS4KKworCSogaW5jbHVkZS9zZXJ2ZXIuaCwgc2VydmVyL2RlYnVnZ2VyLmMsIHNlcnZlci9yZXF1ZXN0LmgsIHNlcnZlci90cmFjZS5jLCB3aW4zMi9leGNlcHQuYywgZGxscy9udGRsbC9leGNlcHRpb24uYzoKKwlNYWRlIGV4Y2VwdGlvbl9ldmVudF9yZXF1ZXN0IG5vbi1ibG9ja2luZywgYW5kIGFkZGVkCisJZ2V0X2V4Y2VwdGlvbl9zdGF0dXMgdG8gcmV0cmlldmUgdGhlIGV4Y2VwdGlvbiByZXN1bHQgcmV0dXJuZWQgYnkgdGhlCisJZGVidWdnZXIuCisKKwkqIHdpbmRvd3Mvc3lzcGFyYW1zLmMsIHdpbmRvd3MvdXNlci5jLCB3aW5kb3dzL211bHRpbW9uLmMsIHdpbmRvd3MvcGFpbnRpbmcuYywgZGxscy93aW5tbS9tY2lzZXEvbWNpbWlkaS5jLCBkbGxzL3dpbm1tL21pZGltYXAvbWlkaW1hcC5jLCBkbGxzL3dpbm1tL3dhdmVtYXAvd2F2ZW1hcC5jLCBkbGxzL3dzb2NrMzIvc29ja2V0LmMsIGdyYXBoaWNzL3gxMWRydi9kaWIuYywgaW5jbHVkZS9oZWFwLmgsIG1lbW9yeS9jb2RlcGFnZS5jLCBtc2Rvcy9kb3Nhc3BpLmMsIG1zZG9zL2ludDExLmMsIG1zZG9zL2ludDJmLmMsIG1zZG9zL2ludDMzLmMsIG9iamVjdHMvZGliLmMsIGRsbHMvb2xlYXV0MzIvY29ubnB0LmMsIGRsbHMvb2xlYXV0MzIvb2xlcGljdHVyZS5jLCBkbGxzL3JpY2hlZGl0L3JpY2hlZGl0LmMsIGRsbHMvc2V0dXBhcGkvaW5mcGFyc2UuYywgZGxscy9zaGRvY3Z3L2NsYXNzaW5mby5jLCBkbGxzL3NoZG9jdncvZXZlbnRzLmMsIGRsbHMvc2hkb2N2dy9mYWN0b3J5LmMsIGRsbHMvc2hkb2N2dy9vbGVvYmplY3QuYywgZGxscy9zaGRvY3Z3L3NoZG9jdndfbWFpbi5jLCBkbGxzL3NobHdhcGkvb3JkaW5hbC5jLCBkbGxzL3NobHdhcGkvdXJsLmMsIGRsbHMvdHR5ZHJ2L2JpdG1hcC5jLCBkbGxzL3VzZXIvYmlkaTE2LmMsIGRsbHMvd2lubW0vbWNpYW5pbS9tY2lhbmltLmMsIGRsbHMvd2lubW0vbWNpY2RhL21jaWNkYS5jLCBkbGxzL2RwbGF5eC9kcGNsYXNzZmFjdG9yeS5jLCBkbGxzL2RwbGF5eC9kcGxheS5jLCBkbGxzL2RwbGF5eC9kcGxheXNwLmMsIGRsbHMvZHBsYXl4L2RwbGF5eF9nbG9iYWwuYywgZGxscy9kcGxheXgvZHBsYXl4X21lc3NhZ2VzLmMsIGRsbHMvZHBsYXl4L25hbWVfc2VydmVyLmMsIGRsbHMvZ2RpL2dkaV9tYWluLmMsIGRsbHMvaW1hZ2VobHAvYWNjZXNzLmMsIGRsbHMva2VybmVsL2tlcm5lbF9tYWluLmMsIGRsbHMvbXNhY20vZmlsdGVyLmMsIGRsbHMvbXNhY20vZm9ybWF0LmMsIGRsbHMvbXNhY20vcGNtY29udmVydGVyLmMsIGRsbHMvbXNhY20vc3RyZWFtLmMsIGRsbHMvbXN2aWRlby9kcmF3ZGliLmMsIGRsbHMvbnRkbGwvcmVnLmMsIGRsbHMvb2xlMzIvYW50aW1vbmlrZXIuYywgZGxscy9vbGUzMi9jbGlwYm9hcmQuYywgZGxscy9vbGUzMi9jb21wb3NpdGVtb25pa2VyLmMsIGRsbHMvb2xlMzIvZGF0YWNhY2hlLmMsIGRsbHMvb2xlMzIvZGVmYXVsdGhhbmRsZXIuYywgZGxscy9vbGUzMi9lcnJvcmluZm8uYywgZGxscy9vbGUzMi9pdGVtbW9uaWtlci5jLCBkbGxzL29sZTMyL21vbmlrZXIuYywgZGxscy9vbGUzMi9vbGUyaW1wbC5jLCBkbGxzL2NvbWN0bDMyL3RyYWNrYmFyLmMsIGRsbHMvY29tbWRsZy9maWxlZGxnYnJvd3Nlci5jLCBkbGxzL2NvbW1kbGcvZmluZGRsZzMyLmMsIGRsbHMvZGRyYXcvY29udmVydC5jLCBkbGxzL2RkcmF3L2RjbGlwcGVyL21haW4uYywgZGxscy9kZHJhdy9kZHJhdy91c2VyLmMsIGRsbHMvZGRyYXcvZHN1cmZhY2UvZGliLmMsIGRsbHMvZGRyYXcvZHN1cmZhY2UvdXNlci5jLCBkbGxzL2RkcmF3L2RzdXJmYWNlL3duZHByb2MuYywgZGxscy9kaW5wdXQvZGV2aWNlLmMsIGRsbHMvZGlucHV0L2RpbnB1dF9tYWluLmMsIGRsbHMvY29tY3RsMzIvY29tYm9leC5jLCBkbGxzL2NvbWN0bDMyL2ZsYXRzYi5jLCBkbGxzL2NvbWN0bDMyL2hvdGtleS5jLCBkbGxzL2NvbWN0bDMyL2ltYWdlbGlzdC5jLCBkbGxzL2NvbWN0bDMyL2lwYWRkcmVzcy5jLCBkbGxzL2NvbWN0bDMyL21vbnRoY2FsLmMsIGRsbHMvY29tY3RsMzIvbmF0aXZlZm9udC5jLCBkbGxzL2NvbWN0bDMyL3BhZ2VyLmMsIGRsbHMvY29tY3RsMzIvcHJvZ3Jlc3MuYywgZGxscy9jb21jdGwzMi9zdGF0dXMuYywgZGxscy9hZHZhcGkzMi9zZXJ2aWNlLmMsIGRsbHMvY29tY3RsMzIvYW5pbWF0ZS5jOgorCUphbWVzIEp1cmFuIDxqYW1lc2p1cmFuQGFsdW1uaS5wc3UuZWR1PgorCUFkZCA8c3RyaW5nLmg+IHRvIGZpbGVzIHRoYXQgbmVlZGVkIGl0LgorCisJKiBmaWxlcy9maWxlLmMsIG1lbW9yeS9hdG9tLmMsIHByb2dyYW1zL3JlZ2FwaS9yZWdhcGkuYywgd2luZG93cy9kY2UuYywgd2luZG93cy93aW5oZWxwLmMsIHdpbmRvd3Mvd2lucHJvYy5jLCBkbGxzL2NvbW1kbGcvY29sb3JkbGcuYywgZGxscy9vbGUzMi9maWxlbW9uaWtlci5jLCBkbGxzL3NoZWxsMzIvc2hlbGxwYXRoLmMsIGRsbHMvdXNlci91c2VyLnNwZWMsIGRsbHMvd2lubW0vbW1zeXN0ZW0uYzoKKwlBbmRyZWFzIE1vaHIgPGFtb2hyQGNvZGV3ZWF2ZXJzLmNvbT4KKwlTb21lIG1vcmUgY2xlYW51cHMuCisKKwkqIGRsbHMvZGlucHV0L2pveXN0aWNrL2xpbnV4aW5wdXQuYzoKKwlPdmUgS2FhdmVuIDxvdmVrQHRyYW5zZ2FtaW5nLmNvbT4KKwlDaGVjayB0aGF0IHRoZSBsaW51eCAyLjQgZXZlbnQgaW50ZXJmYWNlIGlzIGF2YWlsYWJsZSBiZWZvcmUgY3JlYXRpbmcKKwlhIGRpbnB1dCBkZXZpY2UgYmFzZWQgb24gaXQuCisKKwkqIGRsbHMvd2luZXBzL3RleHQuYzoKKwlIdXcgRCBNIERhdmllcyA8aGRhdmllc0Bjb2Rld2VhdmVycy5jb20+CisJSGFuZGxlIHRoZSBscER4IGFycmF5IHByb3Blcmx5LgorCisJKiB3aW5kb3dzL3dpbnBvcy5jOgorCU1hcnRpbiBQaWxrYSA8bXBpbGthQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXhlZCBTV19SRVNUT1JFIGhhbmRsaW5nLgorCisJKiBjb250cm9scy9lZGl0LmM6CisJRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlEbyBub3Qgbm90aWZ5IHBhcmVudCBvZiB0aGUgRWRpdCBjb250cm9sIG9uIFdNX1NFVFRFWFQgd2hlbiBFZGl0IGlzCisJcGFydCBvZiB0aGUgQ29tYm9Cb3guCisKKwkqIGRsbHMvY29tY3RsMzIvcmViYXIuYzoKKwlHdXkgTC4gQWxiZXJ0ZWxsaSA8Z2FsYmVydGVAbmVvLmxydW4uY29tPgorCS0gbWFrZSBoaWRkZW4gYmFuZHMgaGF2ZSB2YWxpZCAoMCB3aWR0aCkgY2hpbGQgd2luZG93IGFyZWFzCisJLSB3aGVuIGhpZGluZyBhIGJhbmQsIGRvbid0IHNob3cgdGhlIHdpbmRvdywgaGlkZSBpdC4KKworCSogZGxscy9rZXJuZWwvZGVidWdnZXIuYywgaW5jbHVkZS9zZXJ2ZXIuaCwgc2NoZWR1bGVyL3Byb2Nlc3MuYywgc2VydmVyL2RlYnVnZ2VyLmMsIHNlcnZlci9wcm9jZXNzLmMsIHNlcnZlci9yZXF1ZXN0LmgsIHNlcnZlci90cmFjZS5jOgorCUNoYW5nZWQgd2FpdF9wcm9jZXNzIGFuZCB3YWl0X2RlYnVnX2V2ZW50IHJlcXVlc3RzIHRvIG5ldmVyIGJsb2NrOworCXdhaXRpbmcgaXMgYWx3YXlzIGRvbmUgdGhyb3VnaCBXYWl0Rm9yU2luZ2xlT2JqZWN0KCkuCisKKwkqIGRsbHMva2VybmVsL2NvbW0uYzoKKwlBbmRyZWFzIE1vaHIgPGFtb2hyQGNvZGV3ZWF2ZXJzLmNvbT4KKwlEb24ndCBvcGVuIHRoZSBjb21tIGhhbmRsZSB3aXRoIEdFTkVSSUNfV1JJVEUgdmlhIEZJTEVfR2V0VW5peEhhbmRsZS4KKworCSogd2luZG93cy9kZWZ3bmQuYywgaW5jbHVkZS93aW4uaDoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCVJlcGxhY2UgMTYtYml0IGNhbGxzIGluIERlZldpbmRvd1Byb2MgYnkgMzItYml0LCBwcmVmZXJyaW5nIHVuaWNvZGUKKwlBUEkgY2FsbHMuCisKKzIwMDEtMDEtMjUgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvdXNlci93c3ByaW50Zi5jOgorCUdvdCByaWQgb2YgV1BSSU5URl9FeHRyYWN0VkFQdHIuCisKKwkqIGRsbHMvc2hkb2N2dy9zaGRvY3Z3LnNwZWMsIGRsbHMvd2luMzJzL3dpbjMyczE2LnNwZWMsIGRsbHMvd2luZWRvcy9kb3N2bS5jLCBkbGxzL3dpbm1tL3dpbmVvc3Mvb3NzLmMsIGluY2x1ZGUvZG9zZXhlLmgsIHRvb2xzL3NwZWNtYWtlci9vdXRwdXQuYywgZGxscy9kZHJhdy9kZHJhdy9kZ2EyLmMsIGRsbHMvZGRyYXcvZGRyYXcvdGh1bmtzLmMsIGRsbHMvZGRyYXcvZGRyYXcvdXNlci5jLCBkbGxzL2RkcmF3L2RkcmF3L3h2aWRtb2RlLmMsIGRsbHMvZGRyYXcvZHN1cmZhY2UvZmFrZXpidWZmZXIuYywgZGxscy9kZHJhdy9zdHJ1Y3RfY29udmVydC5jLCBkbGxzL21zdmNydC9tc3ZjcnQuc3BlYzoKKwlQYXRyaWsgU3RyaWR2YWxsIDxwc0BsZWlzc25lci5zZT4KKwlGaXhlZCBzb21lIGlzc3VlcyBmb3VuZCBieSB3aW5hcGlfY2hlY2suCisKKwkqIHRvb2xzL3dpbmFwaV9jaGVjay93aW4zMi9tc3ZjcnQuYXBpLCB0b29scy93aW5hcGlfY2hlY2svd2luMzIvb2xlYXV0MzIuYXBpLCB0b29scy93aW5hcGlfY2hlY2svd2luMzIvd2luZWRvcy5hcGksIHRvb2xzL3dpbmFwaV9jaGVjay93aW5hcGkucG0sIHRvb2xzL3dpbmFwaV9jaGVjay93aW5hcGlfY2hlY2ssIHRvb2xzL3dpbmFwaV9jaGVjay93aW5hcGlfbG9jYWwucG06CisJUGF0cmlrIFN0cmlkdmFsbCA8cHNAbGVpc3NuZXIuc2U+CisJTWlub3IgYnVnZml4ZXMuCisKKwkqIHdpbmRvd3MvY2xpcGJvYXJkLmMsIHdpbmRvd3MvY3Vyc29yaWNvbi5jLCB3aW5kb3dzL2RpYWxvZy5jLCB3aW5kb3dzL2RyaXZlci5jLCB3aW5kb3dzL2hvb2suYywgd2luZG93cy9tZXNzYWdlLmMsIHdpbmRvd3MvcXVldWUuYywgd2luZG93cy9zY3JvbGwuYywgd2luZG93cy9zeXNjb2xvci5jLCB3aW5kb3dzL3VzZXIuYywgd2luZG93cy93aW4uYywgd2luZG93cy93aW5wb3MuYywgY29udHJvbHMvZGVza3RvcC5jLCBjb250cm9scy9tZW51LmMsIGNvbnRyb2xzL3Njcm9sbC5jLCBjb250cm9scy91aXRvb2xzLmMsIGRsbHMva2VybmVsL2NvbW0uYywgZGxscy9rZXJuZWwvZGVidWdnZXIuYywgZGxscy9rZXJuZWwvZm9ybWF0X21zZy5jLCBkbGxzL2tlcm5lbC9rZXJuZWxfbWFpbi5jLCBkbGxzL2tlcm5lbC9zdHJlc3MuYywgZGxscy9rZXJuZWwvc3luYy5jLCBkbGxzL2tlcm5lbC90aHVuay5jLCBkbGxzL2tlcm5lbC90aW1lLmMsIGRsbHMva2VybmVsL3Rvb2xoZWxwLmMsIGRsbHMva2VybmVsL3V0dGh1bmsuYywgZGxscy9rZXJuZWwvd2luODdlbS5jLCBkbGxzL2tlcm5lbC93b3d0aHVuay5jLCBkbGxzL3BzYXBpL3BzYXBpX21haW4uYywgZGxscy91c2VyL2JpZGkxNi5jLCBkbGxzL3VzZXIvZGRlbWwuYywgZGxscy91c2VyL2V4dGljb24uYywgZGxscy91c2VyL2xzdHIuYywgZGxscy91c2VyL21pc2MuYywgZGxscy91c2VyL3Jlc291cmNlLmMsIGRsbHMvdXNlci90ZXh0LmMsIGxvYWRlci90YXNrLmM6CisJUGF0cmlrIFN0cmlkdmFsbCA8cHNAbGVpc3NuZXIuc2U+CisJRG9jdW1lbnRhdGlvbiBvcmRpbmFsIGZpeGVzLgorCisJKiBtaXNjL3JlZ2lzdHJ5LmM6CisJRml4ZWQgdHlwbyBpbiBIS0VZX1VTRVJTLy5EZWZhdWx0IGNyZWF0aW9uLgorCisJKiBkbGxzL2NvbWN0bDMyL3RhYi5jOgorCUdlcmFyZCBQYXRlbCA8Z2VyYXJkLnBhdGVsQGFzaS5mcj4KKwlEb24ndCBzZW5kIG5vdGlmaWNhdGlvbnMgZm9yIHRoZSBpbml0aWFsIGRpc3BsYXkgb2YgdGhlIGZpcnN0IHRhYiBvZgorCXRoZSBjb250cm9sLgorCisJKiB3aW5kb3dzL3NweS5jOgorCUdlcmFyZCBQYXRlbCA8Z2VyYXJkLnBhdGVsQGFzaS5mcj4KKwlBZGRlZCBhIGZldyBtZXNzYWdlcyBhbmQgbm90aWZpY2F0aW9ucy4KKworCSogb2JqZWN0cy9lbmhtZXRhZmlsZS5jOgorCUVyaWMgS29obCA8ZWtvaGxAY29kZXdlYXZlcnMuY29tPgorCURpc2FibGVkIHNldHRpbmcgb2Ygdmlld3BvcnQgb3JpZ2luIGZyb20gYW4gRU1GLgorCisJKiB3aW5kb3dzL3dpbnBvcy5jOgorCVN1c2FuIEZhcmxleSA8c3VzYW5AY29kZXdlYXZlcnMuY29tPgorCUFsd2F5cyByZXN0b3JlIHRoZSBiaXRfZ3Jhdml0eSB0byBCR0ZvcmdldCBhZnRlciB1c2luZyBCR05vcnRod2VzdCB0bworCWNvcHkgYml0cyBkdXJpbmcgU2V0V2luZG93UG9zLgorCisJKiB3aW5lZGVmYXVsdC5yZWc6CisJSm9obiBSLiBTaGVldHMgPGpzaGVldHNAY29kZXdlYXZlcnMuY29tPgorCUFkZGVkIHRoZSBuZWNlc3NhcnkgcmVnaXN0cnkgZW50cmllcyBmb3IgdGhlIE1vemlsbGEgQWN0aXZlWCBjb250cm9sLgorCisyMDAxLTAxLTI0ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiB3aW5kb3dzL2RlZnduZC5jOgorCUFuZHJlYXMgTW9ociA8YW1vaHJAY29kZXdlYXZlcnMuY29tPgorCU9ubHkgc2V0IHdpbmRvdyB0ZXh0IGZvciBXTV9OQ0NSRUFURSBpbiBEZWZXaW5kb3dQcm9jKigpIGluIGNhc2UKKwlscHN6TmFtZSBpcyBhIHN0cmluZyAoaS5lLiBjaGVjayBISVdPUkQpLgorCisJKiBncmFwaGljcy94MTFkcnYvb2VtYml0bWFwLmMsIGluY2x1ZGUvYml0bWFwcy9vYm1fcmFkaW9jaGVjaywgaW5jbHVkZS93aW51c2VyLmg6CisJUmVtb3ZlZCBub24tc3RhbmRhcmQgT0JNX1JBRElPQ0hFQ0sgYml0bWFwLgorCisJKiBjb250cm9scy9tZW51LmMsIGNvbnRyb2xzL3VpdG9vbHMuYywgd2luZG93cy9ub25jbGllbnQuYywgd2luZG93cy9zeXNtZXRyaWNzLmM6CisJVXNlIERyYXdGcmFtZUNvbnRyb2woKSBpbnN0ZWFkIG9mIE9FTSBiaXRtYXBzIHRvIHBhaW50IGNhcHRpb24gYnV0dG9ucworCWFuZCBtZW51IGNoZWNrIG1hcmtzLgorCisJKiBkbGxzL3dpbmVwcy9mb250LmMsIGRsbHMvd2luZXBzL2dyYXBoaWNzLmMsIGRsbHMvd2luZXBzL3Blbi5jLCBkbGxzL3dpbmVwcy90ZXh0LmM6CisJRXJpYyBLb2hsIDxla29obEBjb2Rld2VhdmVycy5jb20+CisJUGFydGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB3b3JsZCB0cmFuc2Zvcm0gc3VwcG9ydC4KKworCSogb2JqZWN0cy9lbmhtZXRhZmlsZS5jOgorCUVyaWMgS29obCA8ZWtvaGxAY29kZXdlYXZlcnMuY29tPgorCVNldmVyYWwgZml4ZXMgZm9yIHBsYXlpbmcgZW5oYW5jZWQgbWV0YWZpbGVzIGluIGEgZ2l2ZW4gcmVjdGFuZ2xlLgorCisJKiBncmFwaGljcy94MTFkcnYvZ3JhcGhpY3MuYywgZ3JhcGhpY3MveDExZHJ2L3Blbi5jLCBncmFwaGljcy94MTFkcnYvdGV4dC5jLCBncmFwaGljcy94MTFkcnYveGZvbnQuYywgaW5jbHVkZS9nZGkuaDoKKwlFcmljIEtvaGwgPGVrb2hsQGNvZGV3ZWF2ZXJzLmNvbT4KKwlQYXJ0aWFsIGltcGxlbWVudGF0aW9uIG9mIHdvcmxkIHRyYW5zZm9ybSBzdXBwb3J0LgorCisJKiBkb2N1bWVudGF0aW9uL3dpbmUubWFuLmluLCBvYmplY3RzL2ZvbnQuYywgUkVBRE1FLCBkZWJ1Z2dlci9SRUFETUU6CisJQW5kcmVhcyBNb2hyIDxhbW9ockBjb2Rld2VhdmVycy5jb20+CisJRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgorCisJKiBkb2N1bWVudGF0aW9uL01ha2VmaWxlLmluLCBkb2N1bWVudGF0aW9uL3J1bm5pbmcuc2dtbCwgZG9jdW1lbnRhdGlvbi93aW5lLWRvYy5zZ21sLCBkb2N1bWVudGF0aW9uL3dpbmVsaWItYmluZGxscy5zZ21sLCBkb2N1bWVudGF0aW9uL3dpbmVsaWItaW50cm8uc2dtbCwgZG9jdW1lbnRhdGlvbi93aW5lbGliLW1mYy5zZ21sLCBkb2N1bWVudGF0aW9uL3dpbmVsaWItcGtnLnNnbWwsIGRvY3VtZW50YXRpb24vd2luZWxpYi1wb3J0aW5nLnNnbWwsIGRvY3VtZW50YXRpb24vd2luZWxpYi10b29sa2l0LnNnbWwsIGRvY3VtZW50YXRpb24vd2luZWxpYi11c2VyLnNnbWw6CisJSm9obiBSLiBTaGVldHMgPGpzaGVldHNAY29kZXdlYXZlcnMuY29tPgorCS0gU3BsaXQgV2luZWxpYiBVc2VyIEd1aWRlIGludG8gc21hbGxlciBmaWxlcyBmb3IgZWFzaWVyIG1haW50ZW5hbmNlCisJICBhbmQgYmV0dGVyIGludGVncmF0aW9uIHdpdGggbWFrZV93aW5laHEuCisJLSBBZGQgc29tZSBXaW5lbGliIGRvY3MgZnJvbSBKb24gR3JpZmZpdGhzLgorCS0gRml4IGEgPHNlY3QyPiBwcm9ibGVtIGluIHJ1bm5pbmcuc2dtbC4KKworMjAwMS0wMS0yMiAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogY29udHJvbHMvZWRpdC5jOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJUHJvdGVjdCByZWFkLW9ubHkgZWRpdCBjb250cm9sIGZyb20gbW9kaWZpY2F0aW9uLgorCisJKiBkbGxzL21zdmNydC9leGl0LmM6CisJSm9uIEdyaWZmaXRocyA8dG50anBncmlmZkB0c254dC5jby51az4KKwlJbXBsZW1lbnRlZCBfX2RsbG9uZXhpdC4KKworCSogZGxscy9jb21jdGwzMi9saXN0dmlldy5jOgorCUdlcmFyZCBQYXRlbCA8Z2VyYXJkLnBhdGVsQGFzaS5mcj4KKwlNaXNjIGZpeGVzIGluIExJU1RWSUVXX1NldEltYWdlTGlzdCwgTElTVFZJRVdfU2V0SXRlbUNvdW50LAorCUxJU1RWSUVXX1VwZGF0ZVNpemUuCisKKwkqIGZpbGVzL3Byb2ZpbGUuYzoKKwlHZXJhcmQgUGF0ZWwgPGdlcmFyZC5wYXRlbEBhc2kuZnI+CisJRGlzcGxheSB0aGUgY29uZmlnIGZpbGUgbG9jYXRpb24gaW4gdGhlIGluY29ycmVjdCBjb25maWcgZmlsZSBlcnJvcgorCW1lc3NhZ2UuCisKKwkqIGRsbHMvbXN2Y3J0L3djcy5jLCBkbGxzL250ZGxsL3djc3RyaW5nLmM6CisJSmFtZXMgSnVyYW4gPGphbWVzanVyYW5AYWx1bW5pLnBzdS5lZHU+CisJVXNlIGludCBpbnN0ZWFkIG9mIFdDSEFSIGluIHZhX2FyZygpIChmaXhlcyBnY2MtY3VycmVudCBjb21waWxhdGlvbgorCXByb2JsZW0pLgorCisJKiBpbmNsdWRlL2NvbW1jdHJsLmg6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJQWRkZWQgdmFyaW91cyBkZWZpbml0aW9ucyAobW9zdGx5IG1hY3JvcykuCisJRml4ZWQgdHlwbyBpbiB0aGUgSEROX3tCRUdJTixFTkR9RFJBRyBtYWNyb3MuCisJQWRkZWQgYSBwb2ludGVyIHR5cGUgZm9yIElNQUdFSU5GTy4KKwlGaXhlZCB0aGUgcmV0dXJuIHR5cGUgb2YgVHJlZVZpZXdfe1NldFRvb2xUaXBzLEdldFRvb2xUaXBzfS4KKwlFdmVuIG1hY3JvcyBtdXN0IGNvbWUgaW4gQS9XIGFuZCBuZXV0cmFsIGZvcm0gKHNlZSB0aGUgTGlzdFZpZXdfIHNlcmllcykuCisJRml4ZWQgdHlwbyBpbiBNb250aENhbF9TZXRDb2xvci4KKworCSogaW5jbHVkZS9yaWNoZWRpdC5oOgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCUFkZGVkIENIQVJSQU5HRS4KKworCSogaW5jbHVkZS9wcnNodC5oOgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCUFkZGVkIFBTTl9HRVRPQkpFQ1QuCisKKwkqIGRsbHMvZGRyYXcvZGRyYXcveHZpZG1vZGUuYzoKKwlKb3NoIER1Qm9pcyA8ZHVib2lzakBjb2Rld2VhdmVycy5jb20+CisJSW5jbHVkZSAnb3B0aW9ucy5oJyBmb3IgYSBuZWVkZWQgcHJvdG90eXBlLgorCisJKiBkbGxzL29sZWF1dDMyL3ZhcmlhbnQuYywgaW5jbHVkZS9vbGVhdXRvLmg6CisJSm9zaCBEdUJvaXMgPGR1Ym9pc2pAY29kZXdlYXZlcnMuY29tPgorCUNoYW5nZWQgVmFyQ3lGcm9tSTEgdG8gdGFrZSBhIHNpZ25lZCBjaGFyLgorCisJKiBjb250cm9scy9jb21iby5jLCBkbGxzL21zdmNydC9tYmNzLmMsIG9iamVjdHMvYml0bWFwLmMsIHRvb2xzL3NwZWNtYWtlci9vdXRwdXQuYzoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlUeXBvIGZpeGVzIGluIGNvbW1lbnRzLgorCisJKiBkbGxzL21zdmNydC9jcHAuYywgZGxscy9tc3ZjcnQvZGF0YS5jLCBkbGxzL21zdmNydC9kaXIuYywgZGxscy9tc3ZjcnQvZW52aXJvbi5jLCBkbGxzL21zdmNydC9lcnJuby5jLCBkbGxzL21zdmNydC9maWxlLmMsIGRsbHMvbXN2Y3J0L2hlYXAuYywgZGxscy9tc3ZjcnQvbG9jYWxlLmMsIGRsbHMvbXN2Y3J0L21hdGguYywgZGxscy9tc3ZjcnQvbWlzYy5jLCBkbGxzL21zdmNydC9tc3ZjcnQuc3BlYywgZGxscy9tc3ZjcnQvcHJvY2Vzcy5jLCBkbGxzL21zdmNydC90aHJlYWQuYywgZGxscy9tc3ZjcnQvd2NzLmM6CisJSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwktIE5ldyBtc3ZjcnQgdW5pY29kZSBmdW5jdGlvbnMsIHdpbmFwaV9jaGVjay8tV2FsbC8tVyBjbGVhbi4KKwktIEZvcndhcmQgdG8gbnRkbGwgd2hlcmUgcG9zc2libGUuCisJLSBGaXggc29tZSAuc3BlYyBlbnRyaWVzIHdpdGggaW5jb3JyZWN0IHBhcmFtZXRlcnMuCisKKwkqIGluY2x1ZGUvd2luZS9vYmpfY29udGV4dG1lbnUuaDoKKwlKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCUZpeGVkIFVuaWNvZGUgc3RyaW5ncy4KKworCSogZGxscy9udGRsbC9jcml0c2VjdGlvbi5jOgorCUpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJTWFkZSBTcGluQ291bnQgRklYTUUgaW50byBhIFRSQUNFLgorCisJKiBkZWJ1Z2dlci9zdGFicy5jOgorCUpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJSW5jcmVhc2VkIGRlYnVnZ2VyIGluY2x1ZGUgbGltaXQgdG8gNTEyLgorCisJKiBkbGxzL3dpbmFzcGkvYXNwaS5jLCBkbGxzL3dpbmluZXQvaHR0cC5jLCBkbGxzL3dzb2NrMzIvcHJvdG9jb2wuYywgaW5jbHVkZS93aW5udC5oLCBsb2FkZXIvcGVfaW1hZ2UuYywgdG9vbHMvd2luZWJ1aWxkL2ltcG9ydC5jLCB0b29scy93aW5lYnVpbGQvbWFpbi5jLCBkbGxzL2RwbGF5eC9kcGxvYmJ5LmMsIGRsbHMvbXN2Y3J0L21zdmNydC5oLCBkbGxzL250ZGxsL250ZGxsLnNwZWMsIGRsbHMvbnRkbGwvc3RyaW5nLmMsIGRsbHMvbnRkbGwvd2NzdHJpbmcuYywgZGxscy9vcGVuZ2wzMi93Z2wuYywgZGxscy9zZXR1cGFwaS9zZXR1cHhfbWFpbi5jLCBkbGxzL3VzZXIvbHN0ci5jLCBkbGxzL3VzZXIvdXNlcl9tYWluLmM6CisJSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwktIFJlbW92ZSA8c3RyaW5nLmg+IGZyb20gd2lubnQuaC4KKwktIG50ZGxsOiBjb21wbGV0ZSBjcnQgZnVuY3Rpb25zLCBwcmV2ZW50IGxpYmMgaW1wb3J0cywgZml4IHNzY2FuZi4KKworCSogZGxscy9jb21tZGxnL2NvbG9yZGxnLmMsIGRsbHMvY29tbWRsZy9maWxlZGxnLmMsIGRsbHMvY29tbWRsZy9maWxlZGxnOTUuYywgZGxscy9jb21tZGxnL2ZpbmRkbGcuYywgZGxscy9jb21tZGxnL2ZpbmRkbGczMi5jLCBkbGxzL2NvbW1kbGcvZm9udGRsZy5jLCBkbGxzL2NvbW1kbGcvcHJpbnRkbGcuYywgaW5jbHVkZS9jb21tY3RybC5oLCBpbmNsdWRlL2NvbW1kbGcuaCwgaW5jbHVkZS9tc2FjbS5oLCBpbmNsdWRlL3Byc2h0Lmg6CisJSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwktIEZpeCBhIHR5cG8gaW4gVEJTQVZFUEFSQU1TIEEvVyBkZWNsYXJhdGlvbi4KKwktIFVzZSAxNiBiaXQgVW5pY29kZSBjb25zdGFudHMgZm9yIHdjIHN0cmluZ3MuCisJLSBNYWtlIHNvbWUgc3RyaW5nIGNvbnN0YW50cyBhdmFpbGFibGUgYXMgVW5pY29kZS4KKworMjAwMS0wMS0yMSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9jb21tZGxnL2NkbGdfeHgucmMsIGRsbHMvY29tbWRsZy9maWxlZGxnLmM6CisJRml4ZWQgdGhlIHNpemUgb2YgdGhlIGZpbGUgZGlhbG9nIGljb25zLgorCisJKiB3aW5kb3dzL3NweS5jOgorCUd1eSBMLiBBbGJlcnRlbGxpIDxnYWxiZXJ0ZUBuZW8ubHJ1bi5jb20+CisJLSBBZGRlZCBOTUNCRUVOREVESVQgc3RydWN0dXJlIGZvciBOT1RJRlkgZHVtcC4KKwktIEFkZGVkIGR1bXAgb2YgcG9zaXRpb25pbmcgc3RydWN0dXJlIGZvciBXTV9XSU5ET1dQT1NDSEFOR3tFRHxJTkd9LgorCisJKiBpbmNsdWRlL2NvbW1jdHJsLmg6CisJR3V5IEwuIEFsYmVydGVsbGkgPGdhbGJlcnRlQG5lby5scnVuLmNvbT4KKwlBZGRlZCBOTUNCRUVOREVESVR7V3xBfSBzdHJ1Y3R1cmVzIGFuZCBmbGFncy4KKworCSogbG9hZGVyL25lL21vZHVsZS5jOgorCUdlcmFyZCBQYXRlbCA8Z2VyYXJkLnBhdGVsQGFzaS5mcj4KKwlGaXggdGhlIGNtZGxpbmUgYXJndW1lbnQgcGFzc2VkIHRvIE5FX0NyZWF0ZVRocmVhZCB0byBpbmNsdWRlIHN0cmluZworCWxlbmd0aC4KKworCSogaW5jbHVkZS93aW5iYXNlLmg6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJQWRkZWQgbWlzc2luZyBwb2ludGVyIHR5cGUgZGVjbGFyYXRpb25zICh1c3VhbGx5IFB4eHgpLgorCisJKiBkbGxzL3dpbmluZXQvaHR0cC5jOgorCUh1dyBEIE0gRGF2aWVzIDxoZGF2aWVzQGNvZGV3ZWF2ZXJzLmNvbT4KKwlFc2NhcGUgYW55IHNwYWNlcyBpbiBscHN6T2JqZWN0TmFtZSBwYXNzZWQgdG8gSHR0cE9wZW5SZXF1ZXN0LgorCisyMDAxLTAxLTIwICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiB3aW5kb3dzL3gxMWRydi9ldmVudC5jOiBXYXJuaW5nIGZpeC4KKworCSogbG9hZGVyL3BlX2ltYWdlLmM6CisJRGlzcGxheSB0aGUgaW1wb3J0aW5nIGRsbCBpbiB0aGUgMHhkZWFkYmVlZiBtZXNzYWdlLgorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGwzMl9tYWluLmMsIGRsbHMvdXNlci9yZXNvdXJjZXMvdXNlcjMyX2N1cnNvcnMucmMsIGRsbHMvdXNlci9yZXNvdXJjZXMvdXNlcjMyX2ljb25zLnJjLCBpbmNsdWRlL3dpbnVzZXIuaCwgcHJvZ3JhbXMvY2xvY2svbWFpbi5oLCBwcm9ncmFtcy9ub3RlcGFkL2xjYy5oLCBwcm9ncmFtcy9ub3RlcGFkL21haW4uaCwgcHJvZ3JhbXMvcHJvZ21hbi9ncm91cC5jLCBwcm9ncmFtcy9wcm9nbWFuL3Byb2dtYW4uaCwgcHJvZ3JhbXMvcHJvZ21hbi9wcm9ncmFtLmMsIHdpbmRvd3Mvbm9uY2xpZW50LmMsIHdpbmRvd3Mvd2luLmMsIGRsbHMvY29tbWRsZy9jZGxnX3h4LnJjLCBkbGxzL2NvbW1kbGcvZmlsZWRsZy5jOgorCUZpeGVkIGEgbnVtYmVyIG9mIGluY29tcGF0aWJpbGl0aWVzIGluIE9FTSBpY29ucy9jdXJzb3JzIGhhbmRsaW5nLgorCisJKiBkbGxzL3VzZXIvdGV4dC5jOgorCVVscmljaCBDemVrYWxsYSA8dWN6ZWthbGxhQGNvZGV3ZWF2ZXJzLmNvbT4KKwlQcmV2ZW50IGJ1ZmZlciBvdmVyZmxvdyBpbiBURVhUX05leHRMaW5lVy4KKworCSogdG9vbHMvd2luYXBpX2NoZWNrL21vZHVsZXMuZGF0LCB0b29scy93aW5hcGlfY2hlY2svd2luMTYvbXNhY20uYXBpLCB0b29scy93aW5hcGlfY2hlY2svd2luMzIvY3J0ZGxsLmFwaSwgdG9vbHMvd2luYXBpX2NoZWNrL3dpbjMyL21zdmNydC5hcGksIHRvb2xzL3dpbmFwaV9jaGVjay93aW4zMi9vbGVhdXQzMi5hcGksIHRvb2xzL3dpbmFwaV9jaGVjay93aW4zMi9yYXNhcGkzMi5hcGksIHRvb2xzL3dpbmFwaV9jaGVjay93aW4zMi9zZXR1cGFwaS5hcGksIHRvb2xzL3dpbmFwaV9jaGVjay93aW4zMi9zaGRvY3Z3LmFwaSwgdG9vbHMvd2luYXBpX2NoZWNrL3dpbjMyL3VzZXIzMi5hcGksIHRvb2xzL3dpbmFwaV9jaGVjay93aW4zMi93aW5lZG9zLmFwaSwgdG9vbHMvd2luYXBpX2NoZWNrL3dpbjMyL3dzb2NrMzIuYXBpLCB0b29scy93aW5hcGlfY2hlY2svd2luYXBpLnBtLCB0b29scy93aW5hcGlfY2hlY2svd2luYXBpX2NoZWNrLCB0b29scy93aW5hcGlfY2hlY2svd2luYXBpX29wdGlvbnMucG0sIHRvb2xzL3dpbmFwaV9jaGVjay93aW5hcGlfcGFyc2VyLnBtOgorCVBhdHJpayBTdHJpZHZhbGwgPHBzQGxlaXNzbmVyLnNlPgorCS0gTWlub3IgQVBJIGZpbGVzIHVwZGF0ZS4KKwktIE1pbm9yIGJ1ZyBmaXhlcy4KKwktIE1pbm9yIGRvY3VtZW50YXRpb24gY2hlY2sgaW1wcm92ZW1lbnRzLgorCisyMDAxLTAxLTE5ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2RpbnB1dC9qb3lzdGljay9saW51eGlucHV0LmMsIGluY2x1ZGUvYWNjb25maWcuaCwgaW5jbHVkZS9jb25maWcuaC5pbiwgY29uZmlndXJlLmluLCBjb25maWd1cmU6CisJTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJQWRkZWQgY29uZmlndXJlIGNoZWNrIGZvciBvbGQgbGludXgvaW5wdXQuaC4KKworCSogZG9jdW1lbnRhdGlvbi9tYWtlX3dpbmVocSwgZG9jdW1lbnRhdGlvbi93aW5lLWRldmVsLnNnbWwsIGRvY3VtZW50YXRpb24vd2luZS1wa2cuc2dtbCwgZG9jdW1lbnRhdGlvbi93aW5lLXVzZXIuc2dtbDoKKwlKb2huIFIuIFNoZWV0cyA8anNoZWV0c0Bjb2Rld2VhdmVycy5jb20+CisJQWRkZWQgY29udmVuaWVuY2Ugc2NyaXB0IGZvciBnZW5lcmF0aW5nIG9ubGluZSBkb2NzIGZvciB3aW5laHEuY29tLgorCisJKiBjb250cm9scy91aXRvb2xzLmM6CisJSm9zaCBEdUJvaXMgPGR1Ym9pc2pAY29kZXdlYXZlcnMuY29tPgorCVNwZWNpZmllZCAnc2lnbmVkJyBvbiBjaGFycyBjb21wYXJlZCB0byAtMS4KKworCSogZG9jdW1lbnRhdGlvbi9wYWNrYWdpbmcuc2dtbDoKKwlKb2huIFIuIFNoZWV0cyA8anNoZWV0c0Bjb2Rld2VhdmVycy5jb20+CisJTWFrZSBTR01MIElEIGF0dHJpYnV0ZXMgaW4gcGFja2FnaW5nLnNnbWwgbW9yZSB1bmlxdWUgdG8gYXZvaWQKKwljb25mbGljdHMgd2hlbiB3ZSBidW5kbGUgYWxsIGZvdXIgZ3VpZGVzIGludG8gYSBzaW5nbGUgc2V0LgorCisJKiBjb250cm9scy9lZGl0LmMsIGNvbnRyb2xzL3Njcm9sbC5jOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJU29sdmUgcmVtYWluaW5nIHByb2JsZW1zIHdpdGggc2Nyb2xsIGJhcnMgaW4gdGhlIGVkaXQgY29udHJvbC4KKworMjAwMS0wMS0xOCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZG9jdW1lbnRhdGlvbi9kYjJodG1sLXdpbmVocToKKwlKb2huIFIuIFNoZWV0cyA8anNoZWV0c0Bjb2Rld2VhdmVycy5jb20+CisJQ2xlYW4gdXAgZGIyaHRtbC13aW5laHEgSFRNTCBnZW5lcmF0aW9uIHNjcmlwdC4gIFdvcmtzIGluIERlYmlhbiwgYW5kCisJbWF5IGFjdHVhbGx5IHdvcmsgaW4gUmVkaGF0IG5vdywgdG9vLgorCisJKiBkbGxzL3NoZWxsMzIvcGlkbC5jLCBkbGxzL3NoZWxsMzIvcGlkbC5oLCBkbGxzL3NoZWxsMzIvc2hlbGwzMi5zcGVjLCBkbGxzL3NoZWxsMzIvc2hsZmlsZW9wLmM6CisJQW5kcmVhcyBNb2hyIDxhbW9ockBjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50ZWQgU0hFTEwzMi5Jc05ldERyaXZlIGFuZCBTSEVMTDMyLklMU2F2ZVRvU3RyZWFtIG5lZWRlZCBmb3IKKwlJRSA1LgorCisJKiBkb2N1bWVudGF0aW9uL2NvbmZpZ3VyaW5nLnNnbWwsIGRvY3VtZW50YXRpb24vZm9udHMuc2dtbCwgZG9jdW1lbnRhdGlvbi9pbnN0YWxsYXRpb24tdW5kLWtvbmZpZ3VyYXRpb24uZ2VybWFuLCBkb2N1bWVudGF0aW9uL2luc3RhbGxpbmcuc2dtbCwgZG9jdW1lbnRhdGlvbi9vcGVuZ2wuc2dtbCwgZG9jdW1lbnRhdGlvbi9wcmludGluZy5zZ21sLCBkb2N1bWVudGF0aW9uL3JlZ2lzdHJ5LnNnbWwsIGRvY3VtZW50YXRpb24vcnVubmluZy5zZ21sOgorCUNocmlzIE1vcmdhbiA8Y21vcmdhbkBjb2Rld2VhdmVycy5jb20+CisJVXBkYXRlZCBmb3IgY2hhbmdlIGluIGNvbmZpZyBmaWxlIG5hbWUuICBSZW1vdmVkIHJlZmVyZW5jZXMgdG8KKwlvYnNvbGV0ZSBnbG9iYWwgd2luZSBjb25maWd1cmF0aW9uIGZpbGUgd2hlcmUgYXBwcm9wcmlhdGUuICBVcGRhdGVkCisJY29uZmlnIG9wdGlvbiBmb3JtYXQgdG8gbWF0Y2ggdGhlIG5ldyBzeW50YXguICBNaXNjIGNsZWFudXBzLgorCisJKiBkbGxzL3VzZXIvcmVzb3VyY2VzL3VzZXIzMi5yYywgZGxscy91c2VyL3Jlc291cmNlcy91c2VyMzJfY3Vyc29ycy5yYywgZGxscy91c2VyL3Jlc291cmNlcy91c2VyMzJfaWNvbnMucmMsIGdyYXBoaWNzL3gxMWRydi9vZW1iaXRtYXAuYywgaW5jbHVkZS9iaXRtYXBzL29jcl9hcHBzdGFydGluZywgaW5jbHVkZS9iaXRtYXBzL29jcl9idW1tZXIsIGluY2x1ZGUvYml0bWFwcy9vY3JfY3Jvc3MsIGluY2x1ZGUvYml0bWFwcy9vY3JfZHJhZ29iamVjdCwgaW5jbHVkZS9iaXRtYXBzL29jcl9oYW5kLCBpbmNsdWRlL2JpdG1hcHMvb2NyX2hlbHAsIGluY2x1ZGUvYml0bWFwcy9vY3JfaWJlYW0sIGluY2x1ZGUvYml0bWFwcy9vY3JfaWNvbiwgaW5jbHVkZS9iaXRtYXBzL29jcl9ubywgaW5jbHVkZS9iaXRtYXBzL29jcl9ub3JtYWwsIGluY2x1ZGUvYml0bWFwcy9vY3Jfc2l6ZSwgaW5jbHVkZS9iaXRtYXBzL29jcl9zaXplbmVzdywgaW5jbHVkZS9iaXRtYXBzL29jcl9zaXplbnMsIGluY2x1ZGUvYml0bWFwcy9vY3Jfc2l6ZW53c2UsIGluY2x1ZGUvYml0bWFwcy9vY3Jfc2l6ZXdlLCBpbmNsdWRlL2JpdG1hcHMvb2NyX3VwLCBpbmNsdWRlL2JpdG1hcHMvb2NyX3dhaXQsIGluY2x1ZGUvYml0bWFwcy9vaWNfYmFuZywgaW5jbHVkZS9iaXRtYXBzL29pY19iYW5nXzk1LCBpbmNsdWRlL2JpdG1hcHMvb2ljX2Nkcm9tLCBpbmNsdWRlL2JpdG1hcHMvb2ljX2Zsb3BweSwgaW5jbHVkZS9iaXRtYXBzL29pY19mb2xkZXIsIGluY2x1ZGUvYml0bWFwcy9vaWNfZm9sZGVyMiwgaW5jbHVkZS9iaXRtYXBzL29pY19oYW5kLCBpbmNsdWRlL2JpdG1hcHMvb2ljX2hhbmRfOTUsIGluY2x1ZGUvYml0bWFwcy9vaWNfaGRpc2ssIGluY2x1ZGUvYml0bWFwcy9vaWNfbGFuZHNjYXBlLCBpbmNsdWRlL2JpdG1hcHMvb2ljX25ldHdvcmssIGluY2x1ZGUvYml0bWFwcy9vaWNfbm90ZSwgaW5jbHVkZS9iaXRtYXBzL29pY19ub3RlXzk1LCBpbmNsdWRlL2JpdG1hcHMvb2ljX3BvcnRyYWl0LCBpbmNsdWRlL2JpdG1hcHMvb2ljX3F1ZXMsIGluY2x1ZGUvYml0bWFwcy9vaWNfcXVlc185NSwgaW5jbHVkZS9iaXRtYXBzL29pY19zYW1wbGUsIGluY2x1ZGUvYml0bWFwcy9vaWNfd2luZWljb24sIGluY2x1ZGUvd2ludXNlci5oLCB3aW5kb3dzL2N1cnNvcmljb24uYzoKKwlTdG9yZSBVU0VSIGljb25zIGFuZCBjdXJzb3JzIGFzIHJlc291cmNlcyBpbnN0ZWFkIG9mIHhwbSBiaXRtYXBzLgorCisJKiBkbGxzL3dpbm1tL3dpbmVvc3MvYXVkaW8uYzoKKwlIdXcgRCBNIERhdmllcyA8aGRhdmllc0Bjb2Rld2VhdmVycy5jb20+CisJRml4IG9mZiBieSBvbmUgZXJyb3IgaW4gYnVmZmVyIGxlbmd0aCBjaGVjay4KKworCSogdG9vbHMvd2luZWluc3RhbGw6CisJQ2hyaXMgTW9yZ2FuIDxjbW9yZ2FuQGNvZGV3ZWF2ZXJzLmNvbT4KKwlTd2l0Y2hlZCBmcm9tIHdpbmUuY29uZmlnIGJhY2sgdG8gd2luZS5jb25mLCBubyBuZWVkIHRvIHVzZSBzb21ldGhpbmcKKwlub3QgbGludXggc3RhbmRhcmQuICBSZW1vdmVkIHVzZSBvZiBvYnNvbGV0ZSAiLS1jb25maWciIG9wdGlvbiB3aGVuCisJY2FsbGluZyByZWdhcGkuICBMb3RzIG9mIGNsZWFudXAgYW5kIHJlb3JnYW5pemF0aW9uLiAgQ2hlY2sgdG8gc2VlIGlmCisJd2luZSBpcyBpbnN0YWxsZWQgd2hlbiB3aW5laW5zdGFsbCBpcyBub3QgcnVuIGFzIHJvb3QuCisKKwkqIGluY2x1ZGUvd2luYmFzZS5oOgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCUFkZGVkIDMgbWlzc2luZyBGU194eHggbWFjcm9zLgorCisyMDAxLTAxLTE3ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGwzMl9tYWluLmgsIGRsbHMvc2hlbGwzMi9zaGxtZW51LmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX21haW4uYywgZGxscy9jb21tZGxnL2ZpbGVkbGdicm93c2VyLmMsIGRsbHMvc2hlbGwzMi9mb2xkZXJzLmMsIGRsbHMvc2hlbGwzMi9pY29uY2FjaGUuYywgZGxscy9jb21tZGxnL2NkbGcuaCwgZGxscy9jb21tZGxnL2NkbGczMi5jLCBkbGxzL2NvbW1kbGcvZmlsZWRsZzk1LmM6CisJUmVwbGFjZWQgc29tZSBHZXRQcm9jQWRkcmVzcygpIGltcG9ydHMgYnkgdGhlIHN0YW5kYXJkIGRsbCBpbXBvcnQKKwltZWNoYW5pc20uCisKKwkqIGRsbHMvd2luZXBzL2luaXQuYywgZGxscy93aW5tbS9tbXN5c3RlbS5jLCBkbGxzL2RwbGF5eC9kcGxheXhfbWFpbi5jLCBkbGxzL2ltbTMyL21haW4uYywgZGxscy9tc2FjbS9tc2FjbTMyX21haW4uYywgZGxscy9vbGUzMi9jb21wb2JqLmMsIGRsbHMvb2xlMzIvb2xlMzJfbWFpbi5jLCBkbGxzL29wZW5nbDMyL3dnbC5jLCBkbGxzL3JpY2hlZGl0L3JpY2hlZDMyLmgsIGRsbHMvcmljaGVkaXQvcmljaGVkaXQuYywgZGxscy9ycGNydDQvcnBjcnQ0X21haW4uYywgZGxscy9zZXJpYWx1aS9jb25mZGxnLmMsIGRsbHMvc2hlbGwzMi9zaGVsbC5jLCBkbGxzL3R0eWRydi90dHlkcnZfbWFpbi5jLCBkbGxzL3dpbmFzcGkvd2luYXNwaTMyLmMsIGRsbHMvY29tY3RsMzIvY29tbWN0cmwuYywgZGxscy9jb21tZGxnL2dlbmVyaWMuYzoKKwlDbGVhbmVkIHVwIGRsbCBzdGFydHVwIHJvdXRpbmVzIG5vdyB0aGF0IHdlIGhhdmUgc2VwYXJhdGUgYWRkcmVzcworCXNwYWNlcy4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRsbHMvYWR2YXBpMzIvc2VydmljZS5jLCBkbGxzL3dpbm1tL2RyaXZlci5jOgorCUFuZHJlYXMgTW9ociA8YW1vaHJAY29kZXdlYXZlcnMuY29tPgorCUNvc21ldGljcy4KKworCSogZGxscy94MTFkcnYveDExZHJ2X21haW4uYywgaW5jbHVkZS94MTFkcnYuaCwgd2luZG93cy94MTFkcnYvZXZlbnQuYzoKKwlKb3NoIER1Qm9pcyA8ZHVib2lzakBjb2Rld2VhdmVycy5jb20+CisJTWFrZSBzb21lIG5vaXNlIGluIGEgZmV3IGNhc2VzIHdoZXJlIHRoZSBYMTFkcnYgZG9lc24ndCBsb2FkLCBidXQgdXNlZAorCXRvIGZhaWwgc2lsZW50bHkuCisKKwkqIHNjaGVkdWxlci9zZXJ2aWNlcy5jOgorCUpvc2ggRHVCb2lzIDxkdWJvaXNqQGNvZGV3ZWF2ZXJzLmNvbT4KKwlTRVJWSUNFX0NyZWF0ZVNlcnZpY2VUYWJsZSBzdGlsbCByZXR1cm5lZCBUUlVFIGlmIENyZWF0ZVRocmVhZCBmYWlsZWQuCisKKwkqIGluY2x1ZGUvd2luZS9saWJyYXJ5LmgsIGxpYnJhcnkvTWFrZWZpbGUuaW4sIGxpYnJhcnkvZXJybm8uYywgc2NoZWR1bGVyL3N5c2RlcHMuYywgc2NoZWR1bGVyL3RocmVhZC5jLCBkbGxzL3gxMWRydi94MTFkcnZfbWFpbi5jLCBpbmNsdWRlL2FjY29uZmlnLmgsIGluY2x1ZGUvY29uZmlnLmguaW4sIGluY2x1ZGUveDExZHJ2LmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgorCUNsZWFuZWQgdXAgdGhlIHZhcmlvdXMgZXJybm8gbG9jYXRpb24gdGVzdHMgaW4gY29uZmlndXJlLgorCUFkZGVkIChoXyllcnJub19sb2NhdGlvbiBwb2ludGVycyBpbiB0aGUgbGlicmFyeSB0aGF0IGFsbG93IHJlbWFwcGluZworCXRoZSBjYWxscyBpbiBoaWdoZXIgbGV2ZWwgZGxscy4KKwlNb3ZlZCBYMTFEUlZfQ3JpdFNlY3Rpb24gb3V0IG9mIHN5c2RlcHMuYyBhbmQgaW50byB4MTFkcnYuZGxsLgorCisJKiBkbGxzL3dpbnNvY2svc29ja2V0LmMsIGRsbHMvd3NvY2szMi9zb2NrZXQuYzoKKwlKYW1lcyBIYXRoZXdheSA8amFtZXNAbWFjYWRhbWlhbi5jb20+CisJSW4gV3NDb250cm9sLCBkb24ndCBtaXggTGludXggYW5kIFdpbmUgc29ja2V0IGNhbGxzLiBBbHdheXMgdXNlIFdpbmUgY2FsbHMuCisJQWRkZWQgaGFjayBmb3IgbWlzc2luZyBXSU5BUEkgaW4gVW5peCBzb2NrZXQoKSBkZWZpbml0aW9uLgorCisJKiBkbGxzL3NldHVwYXBpL3NldHVwYXBpLnNwZWMsIGRsbHMvc2V0dXBhcGkvc3R1YnMuYywgaW5jbHVkZS9zZXR1cGFwaS5oOgorCUphbWVzIEp1cmFuIDxqYW1lc2p1cmFuQGFsdW1uaS5wc3UuZWR1PgorCUFkZGVkIHNvbWUgc3R1YnMgbmVlZGVkIGZvciBJRSA1LjUgc2V0dXAuCisKKwkqIHRvb2xzL3dpbmVzaGVsbGxpbms6CisJSmVyZW15IFdoaXRlIDxqd2hpdGVAY29kZXdlYXZlcnMuY29tPgorCVJldmlzZWQgd2luZXNoZWxsbGluayB0byB3YWtlIHVwIEtERSAxLnggc28gdGhhdCBhcHBsaWNhdGlvbnMgdGhhdCBnZXQKKwlpbnN0YWxsZWQgc2hvdyB1cCB3aXRob3V0IGEgbWFudWFsIEtERSBtZW51IHJlZnJlc2ggcmVxdWlyZWQuCisJQWRkZWQgYSBmZXcgdXNhZ2UgY2hlY2tzIHRvIG1ha2UgbWFudWFsIGludm9jYXRpb24gYSBsaXR0bGUgbGVzcworCXBhaW5mdWwuCisKKwkqIHRvb2xzL2JpbjJyZXMuYzogRml4ZWQgdG1wZmlsZSBidWZmZXIgc2l6ZS4KKworCSogZmlsZXMvZG9zX2ZzLmM6CisJRml4ZWQgdHlwbyBpbiB3aW5lX2dldF91bml4X2ZpbGVfbmFtZSgpLgorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGxsaW5rLmM6CisJSmVyZW15IFdoaXRlIDxqd2hpdGVAY29kZXdlYXZlcnMuY29tPgorCVJldmlzZWQgc2hlbGwgbGluayBwcm9jZXNzIHRvIHRyZWF0IGVtcHR5IChlLmcuICIiKSBzdHJpbmdzCisJaWRlbnRpY2FsbHkgdG8gTlVMTCBzdHJpbmdzLiBNYWtlcyBtYW55IG1vcmUgaW5zdGFsbGVycyB0YWtlIHVzZWZ1bAorCWFjdGlvbi4gQWRkZWQgbWFueSB0cmFjZSBtZXNzYWdlcy4KKworCSogZGxscy9jb21jdGwzMi9saXN0dmlldy5jOgorCVVscmljaCBDemVrYWxsYSA8dWN6ZWthbGxhQGNvZGV3ZWF2ZXJzLmNvbT4KKwlPbmx5IGFkanVzdCBpdGVtIHJlY3QgYnkgaG9yaXpvbnRhbCBzY3JvbGxiYXIgb2Zmc2V0IGluIHJlcG9ydCB2aWV3LgorCisJKiBkbGxzL3dpbnNvY2svc29ja2V0LmM6CisJR2VyYXJkIFBhdGVsIDxnZXJhcmQucGF0ZWxAYXNpLmZyPgorCUNoYW5nZSBXU0FDbGVhbnVwIC0gd3NpbmZvIGlzIGEgc3RhdGljIHN0cnVjdHVyZSBub3cuCisKKwkqIHRvb2xzL3dpbmVsYXVuY2hlci5pbjoKKwlKZXJlbXkgV2hpdGUgPGp3aGl0ZUBjb2Rld2VhdmVycy5jb20+CisJTWFrZSB3aW5lbGF1bmNoZXIgdGVzdCBmb3IgeG1lc3NhZ2UgYW5kIHdhcm4gdGhlIHVzZXIgaWYgdGhleSBkb24ndAorCWhhdmUgaXQuCisKKzIwMDEtMDEtMTUgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGdyYXBoaWNzL3gxMWRydi9icnVzaC5jLCBpbmNsdWRlL3dpbmVfZ2wuaCwgd2luZG93cy94MTFkcnYvY2xpcGJvYXJkLmMsIHdpbmRvd3MveDExZHJ2L2V2ZW50LmM6CisJUmVwbGFjZWQgWDExRFJWX0NyaXRTZWN0aW9uIHJlZmVyZW5jZXMgYnkgd2luZV90c3gxMV8odW4pbG9jay4KKworCSogZ3JhcGhpY3MveDExZHJ2L2JpdGJsdC5jLCBncmFwaGljcy94MTFkcnYvYml0bWFwLmMsIGdyYXBoaWNzL3gxMWRydi9kaWIuYywgZ3JhcGhpY3MveDExZHJ2L2dyYXBoaWNzLmMsIGdyYXBoaWNzL3gxMWRydi9vZW1iaXRtYXAuYywgaW5jbHVkZS9jYWxsYmFjay5oLCBpbmNsdWRlL3gxMWRydi5oLCBzY2hlZHVsZXIvc3lzZGVwcy5jLCB3aW5kb3dzL3gxMWRydi9tb3VzZS5jLCBkbGxzL3gxMWRydi94MTFkcnZfbWFpbi5jOgorCVJlbW92ZWQgQ0FMTF9MQVJHRV9TVEFDSyBzdXBwb3J0LgorCisJKiBsb2FkZXIvbmUvc2VnbWVudC5jOgorCVVscmljaCBXZWlnYW5kIDx3ZWlnYW5kQGltbWQxLmluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlPgorCURvbid0IGNhbGwgYSBORSBETEwncyBEbGxFbnRyeVBvaW50IHR3aWNlIGR1cmluZyBvbmUgc2luZ2xlCisJTG9hZE1vZHVsZSgpIGNhbGwuCisKKwkqIG1lbW9yeS92aXJ0dWFsLmM6CisJVXdlIEJvbm5lcyA8Ym9uQGVsZWt0cm9uLmlrcC5waHlzaWsudHUtZGFybXN0YWR0LmRlPgorCU1hcFZpZXdPZkZpbGVFeDogbWFrZSB0aGUgcmV0dXJuZWQgZXJyb3IgZGVwZW5kZW50IG9uIHRoZSBXaW5kb3dzCisJdmVyc2lvbiB1c2VkLgorCisJKiBkbGxzL3VzZXIvdXNlcjMyLnNwZWMsIGRsbHMvd2luZWRvcy93aW5lZG9zLnNwZWMsIGRsbHMveDExZHJ2L3gxMWRydi5zcGVjLCBkbGxzL250ZGxsL250ZGxsLnNwZWM6CisJVXBkYXRlZCBkZWJ1ZyBjaGFubmVscy4KKworCSogZGxscy93aW5tbS93aW5lb3NzL21peGVyLmMsIHdpbmRvd3Mvd2lucHJvYy5jLCB3aW5kb3dzL3gxMWRydi93bmQuYywgZGxscy93aW5tbS9tY2lhdmkvbWNpYXZpLmM6CisJUmVtb3ZlZCB1bm5lY2Vzc2FyeSBoZWFkZXJzLgorCisJKiB3aW5kb3dzL21kaS5jOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJSW5pdGlhbGl6ZSBNRU5VSVRFTUlORk8gc3RydWN0dXJlIGJlZm9yZSBjYWxsaW5nIEdldE1lbnVJdGVtSW5mby4KKworCSogZGxscy9kZHJhdy9kZHJhdy90aHVua3MuYzoKKwlNYXJjdXMgTWVpc3NuZXIgPG1hcmN1c0BqZXQuZnJhbmtlbi5kZT4KKwlGaXhlZCBhbiBpbnRlcmZhY2UgY2FzdCBpbiBERDItPkRENyB0aHVuay4KKworCSogY29udHJvbHMvZWRpdC5jOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJQWRkIG9uZSBtaXNzaW5nIGJ1ZmZlciBzaXplIHJvdW5kaW5nIGluIHRoZSBlZGl0IGNvbnRyb2wuCisJTWFrZSByb3VuZGluZyBjb2RlIHNsaWdodGx5IG1vcmUgcmVhZGFibGUuCisKKwkqIGxvYWRlci9uZS9tb2R1bGUuYywgbG9hZGVyL25lL3Jlc291cmNlLmMsIGxvYWRlci90YXNrLmMsIGlmMTYzMi9idWlsdGluLmM6CisJUmVwbGFjZWQgR0xPQkFMX0FsbG9jIGJ5IEdsb2JhbEFsbG9jMTYgd2hlcmUgcG9zc2libGUuCisKKwkqIG1pc2MvTWFrZWZpbGUuaW4sIG1pc2MvdHdlYWsuYywgb2JqZWN0cy9nZGlvYmouYywgd2luZG93cy9kZWZ3bmQuYywgd2luZG93cy9tZGkuYywgd2luZG93cy9tc2dib3guYywgd2luZG93cy9ub25jbGllbnQuYywgd2luZG93cy9wYWludGluZy5jLCB3aW5kb3dzL3N5c2NvbG9yLmMsIHdpbmRvd3Mvc3lzbWV0cmljcy5jLCB3aW5kb3dzL3N5c3BhcmFtcy5jLCBjb250cm9scy9idXR0b24uYywgY29udHJvbHMvY29tYm8uYywgY29udHJvbHMvZWRpdC5jLCBjb250cm9scy9saXN0Ym94LmMsIGNvbnRyb2xzL21lbnUuYywgY29udHJvbHMvc2Nyb2xsLmMsIGNvbnRyb2xzL3N0YXRpYy5jLCBjb250cm9scy91aXRvb2xzLmMsIGRsbHMvZ2RpL2dkaV9tYWluLmMsIGRsbHMvdXNlci9jYWNoZS5jLCBkbGxzL3VzZXIvdGV4dC5jLCBkbGxzL3VzZXIvdXNlcl9tYWluLmMsIGdyYXBoaWNzL3gxMWRydi9vZW1iaXRtYXAuYywgZ3JhcGhpY3MveDExZHJ2L3hmb250LmMsIGluY2x1ZGUvY2FjaGUuaCwgaW5jbHVkZS90d2Vhay5oLCBpbmNsdWRlL3VzZXIuaDoKKwlNb3ZlZCB0d2VhayBzdXBwb3J0IHRvIFVTRVIgZGxsLiBSZW1vdmVkIHR3ZWFrLmggYW5kIGNhY2hlLmguCisKKwkqIG1lbW9yeS9sb2NhbC5jLCBtc2Rvcy9pbnQyMC5jLCBtc2Rvcy9pbnQyZi5jLCBzY2hlZHVsZXIvcHJvY2Vzcy5jLCB3aW4zMi9pbml0LmMsIHdpbmRvd3MvY2xpcGJvYXJkLmMsIHdpbmRvd3MvY3Vyc29yaWNvbi5jLCB3aW5kb3dzL2ZvY3VzLmMsIHdpbmRvd3MvaG9vay5jLCB3aW5kb3dzL2lucHV0LmMsIHdpbmRvd3MvbWVzc2FnZS5jLCB3aW5kb3dzL3F1ZXVlLmMsIHdpbmRvd3MvdGltZXIuYywgd2luZG93cy91c2VyLmMsIHdpbmRvd3Mvd2luLmMsIHdpbmRvd3Mvd2lucG9zLmMsIGluY2x1ZGUvcXVldWUuaCwgaW5jbHVkZS90YXNrLmgsIGluY2x1ZGUvd2luZS93aW5iYXNlMTYuaCwgbG9hZGVyL25lL3NlZ21lbnQuYywgbG9hZGVyL3BlX3Jlc291cmNlLmMsIGxvYWRlci9yZXNvdXJjZS5jLCBkZWJ1Z2dlci9kYmcueSwgZGVidWdnZXIvZXhwci5jLCBkbGxzL3dpbnNvY2svYXN5bmMuYywgZGxscy93aW5zb2NrL3NvY2tldC5jLCBmaWxlcy9maWxlLmMsIGlmMTYzMi9yZWxheS5jOgorCVJlbW92ZWQgc29tZSBkaXJlY3QgYWNjZXNzZXMgdG8gdGhlIDE2LWJpdCB0YXNrIHN0cnVjdHVyZS4KKworCSogZGxscy9jcnRkbGwvY3J0ZGxsLnNwZWMsIGRsbHMvbXN2Y3J0L2N0eXBlLmMsIGRsbHMvbXN2Y3J0L21zdmNydC5zcGVjOgorCUZpeGVkIHRvdXBwZXIvX3RvdXBwZXIgbWl4dXAuCisKKzIwMDEtMDEtMTIgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIEFOTk9VTkNFLCBDaGFuZ2VMb2csIGluY2x1ZGUvdmVyc2lvbi5oOgorCVJlbGVhc2UgMjAwMTAxMTIuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDIwMDEtMDEtMTIgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CiAKIAkqIGRsbHMvZGRyYXcvZGRyYXcveHZpZG1vZGUuYzoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdmVyc2lvbi5oIGIvaW5jbHVkZS92ZXJzaW9uLmgKaW5kZXggZDVlMTdiMy4uYTU0YTBmNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS92ZXJzaW9uLmgKKysrIGIvaW5jbHVkZS92ZXJzaW9uLmgKQEAgLTEgKzEgQEAKLSNkZWZpbmUgV0lORV9SRUxFQVNFX0lORk8gIldpbmUgcmVsZWFzZSAyMDAxMDExMiIKKyNkZWZpbmUgV0lORV9SRUxFQVNFX0lORk8gIldpbmUgcmVsZWFzZSAyMDAxMDIxNiIK