ZGlmZiAtLWdpdCBhL0FOTk9VTkNFIGIvQU5OT1VOQ0UKaW5kZXggYjc3MjQwOC4uNjAzYTYxZSAxMDA2NDQKLS0tIGEvQU5OT1VOQ0UKKysrIGIvQU5OT1VOQ0UKQEAgLTEsMTQgKzEsMTIgQEAKLVRoaXMgaXMgcmVsZWFzZSAyMDA1MDExMSBvZiBXaW5lLCBhIGZyZWUgaW1wbGVtZW50YXRpb24gb2YgV2luZG93cyBvbgorVGhpcyBpcyByZWxlYXNlIDIwMDUwMjExIG9mIFdpbmUsIGEgZnJlZSBpbXBsZW1lbnRhdGlvbiBvZiBXaW5kb3dzIG9uCiBVbml4LiAgVGhpcyBpcyBzdGlsbCBhIGRldmVsb3BlcnMgb25seSByZWxlYXNlLiAgVGhlcmUgYXJlIG1hbnkgYnVncwogYW5kIHVuaW1wbGVtZW50ZWQgZmVhdHVyZXMuICBNb3N0IGFwcGxpY2F0aW9ucyBzdGlsbCBkbyBub3Qgd29yawogY29ycmVjdGx5LgogCi1XSEFUJ1MgTkVXIHdpdGggV2luZS0yMDA1MDExMTogKHNlZSBDaGFuZ2VMb2cgZm9yIGRldGFpbHMpCi0gICAgICAgIC0gTWFueSBPTEUgYnVnIGZpeGVzIGFuZCBpbXByb3ZlbWVudHMuCi0gICAgICAgIC0gQSBsb3QgbW9yZSB3b3JrIG9uIHRoZSBNU0kgZGxsLgotICAgICAgICAtIFVwZGF0ZSByZWdpb25zIG5vdyBoYW5kbGVkIGluIHRoZSBXaW5lIHNlcnZlci4KLSAgICAgICAgLSBCZWdpbm5pbmdzIG9mIHR5cGVsaWIgZ2VuZXJhdGlvbiBpbiB0aGUgSURMIGNvbXBpbGVyLgotICAgICAgICAtIE1hbnkgamFuaXRvcmlhbCBjbGVhbnVwcy4KK1dIQVQnUyBORVcgd2l0aCBXaW5lLTIwMDUwMjExOiAoc2VlIENoYW5nZUxvZyBmb3IgZGV0YWlscykKKyAgICAgICAgLSBTdGlsbCBtb3JlIHdvcmsgb24gdGhlIE1TSSBkbGwuCisgICAgICAgIC0gTW9yZSBPTEUgd29yaywgaW5jbHVkaW5nIGEgYnVpbHRpbiBzdGRvbGUzMi50bGIuCisgICAgICAgIC0gRml4ZWQgaW50ZXItcHJvY2VzcyB3aW5kb3cgcmVzaXplIGFuZCByZXBhaW50LgogICAgICAgICAtIExvdHMgb2YgYnVnIGZpeGVzLgogCiBTZWUgdGhlIFJFQURNRSBmaWxlIGluIHRoZSBkaXN0cmlidXRpb24gZm9yIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMuCkBAIC0xNyw4ICsxNSw4IEBACiB0aGUgcmVsZWFzZSBpcyBhdmFpbGFibGUgYXQgdGhlIGZ0cCBzaXRlcy4gIFRoZSBzb3VyY2VzIHdpbGwgYmUgYXZhaWxhYmxlCiBmcm9tIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOgogCi0gIGh0dHA6Ly93d3cuaWJpYmxpby5vcmcvcHViL0xpbnV4L0FMUEhBL3dpbmUvZGV2ZWxvcG1lbnQvV2luZS0yMDA1MDExMS50YXIuZ3oKLSAgaHR0cDovL3ByZG93bmxvYWRzLnNvdXJjZWZvcmdlLm5ldC93aW5lL1dpbmUtMjAwNTAxMTEudGFyLmd6CisgIGh0dHA6Ly93d3cuaWJpYmxpby5vcmcvcHViL0xpbnV4L0FMUEhBL3dpbmUvZGV2ZWxvcG1lbnQvV2luZS0yMDA1MDIxMS50YXIuZ3oKKyAgaHR0cDovL3ByZG93bmxvYWRzLnNvdXJjZWZvcmdlLm5ldC93aW5lL1dpbmUtMjAwNTAyMTEudGFyLmd6CiAKIEl0IHNob3VsZCBhbHNvIGJlIGF2YWlsYWJsZSBmcm9tIGFueSBvdGhlciBzaXRlIHRoYXQgbWlycm9ycyBpYmlibGlvLm9yZy4KIFRoZXNlIGxvY2F0aW9ucyBhbHNvIGhvbGQgcHJlLWJ1aWx0IGRvY3VtZW50YXRpb24gcGFja2FnZXMgaW4gdmFyaW91cwpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDUwMGQ0YmMuLjZmODMwOGYgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsNCArMSwyMjUwIEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMDA1LTAyLTExICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkb2N1bWVudGF0aW9uL01ha2VmaWxlLmluLCBkb2N1bWVudGF0aW9uL2NvbXBpbGluZy5zZ21sLAorCSAgZG9jdW1lbnRhdGlvbi9nZXR0aW5nLnNnbWwsIGRvY3VtZW50YXRpb24vaW5zdGFsbGluZy5zZ21sLAorCSAgZG9jdW1lbnRhdGlvbi9pbnRyb2R1Y3Rpb24uc2dtbCwgZG9jdW1lbnRhdGlvbi93aW5lLXVzZXIuc2dtbDoKKwlTY290dCBSaXRjaGllIDxzY290dEBvcGVuLXZvdGUub3JnPgorCVVzZXIgR3VpZGUgQ2hhcHRlciAyIHJld3JpdGUuCisKKwkqIGRsbHMvYWR2YXBpMzIvc2VjdXJpdHkuYywgZGxscy9udGRsbC9udC5jLAorCSAgaW5jbHVkZS93aW5lL3NlcnZlcl9wcm90b2NvbC5oLCBpbmNsdWRlL3dpbm50LmgsIGluY2x1ZGUvd2ludGVybmwuaCwKKwkgIHNlcnZlci9vYmplY3QuaCwgc2VydmVyL3Byb2Nlc3MuYywgc2VydmVyL3Byb3RvY29sLmRlZiwKKwkgIHNlcnZlci9yZXF1ZXN0LmgsIHNlcnZlci90b2tlbi5jLCBzZXJ2ZXIvdHJhY2UuYzoKKwlSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJLSBJbXBsZW1lbnQgQWRqdXN0VG9rZW5Qcml2aWxlZ2VzLCBEdXBsaWNhdGVUb2tlbkV4IGFuZAorCSAgR2V0VG9rZW5JbmZvcm1hdGlvbiAoZm9yIHRoZSBUb2tlblByaXZpbGVnZXMgY2FzZSkuCisJLSBSZXR1cm4gU1RBVFVTX05PX1RPS0VOIGZvciBPcGVuVGhyZWFkVG9rZW4gd2hlbiB0aGVyZSBpcyBubyB0b2tlbgorCSAgc2V0IGZvciB0aGUgdGhyZWFkLgorCisJKiBkbGxzL2Rzb3VuZC9idWZmZXIuYywgZGxscy9kc291bmQvY2FwdHVyZS5jLCBkbGxzL2Rzb3VuZC9kc291bmQuYywKKwkgIGRsbHMvZHNvdW5kL2Rzb3VuZF9tYWluLmMsIGRsbHMvZHNvdW5kL3ByaW1hcnkuYywKKwkgIGRsbHMvZHNvdW5kL3Byb3BzZXQuYywgZGxscy9kc291bmQvc291bmQzZC5jOgorCVJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJUmVtb3ZlZCBwcmludGluZyBvZiB0aHJlYWQgaWQgZm9yIEFkZFJlZiBhbmQgUmVsZWFzZSBiZWNhdXNlCisJV0lORURFQlVHPSt0aWQgZ2l2ZXMgdGhlIHNhbWUgcmVzdWx0LgorCUdlbmVyYWwgY29uc2lzdGVuY3kgY2xlYW51cC4KKworMjAwNS0wMi0xMCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9rZXJuZWwvcHJvZmlsZS5jOgorCUZpeGVkIHByb2ZpbGUgY2FjaGUgZmx1c2hpbmcgd2hlbiBubyBmaWxlbmFtZSBpcyBzcGVjaWZpZWQgKHJlcG9ydGVkCisJYnkgTWlrZSBIZWFybikuCisKKwkqIGRsbHMvZHNvdW5kL3Rlc3RzL2RzM2Q4LmM6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCURvbid0IGxpbmsgd2l0aCBEaXJlY3RTb3VuZENyZWF0ZTggYXMgdGhpcyBwcmV2ZW50cyBydW5uaW5nIHdpdGggb2xkZXIKKwl2ZXJzaW9ucyBvZiBEaXJlY3RYLgorCisJKiBkbGxzL250ZGxsL3ZlcnNpb24uYzogTWlrZSBIZWFybiA8bWhAY29kZXdlYXZlcnMuY29tPgorCUFsdGVyIHRoZSB2ZXJzaW9uIGhldXJpc3RpY3MgYSBiaXQuCisKKwkqIHByb2dyYW1zL3dpbmVkYmcvZ2RicHJveHkuYzoKKwlPbGl2ZXIgU3RpZWJlciA8b2xpdmVyX3N0aWViZXJAeWFob28uY28udWs+CisJQWRkZWQgdkNvbnQgc3VwcG9ydC4KKworCSogZGxscy9vcGVuZ2wzMi9vcGVuZ2xfZXh0LmM6IFRvbSBXaWNrbGluZSA8dHdpY2tsaW5lQHNpdGVzdGFyLm5ldD4KKwlTeW5jIHRvIGxhdGVzdCBPcGVuR0wgc3BlY2lmaWNhdGlvbnMuCisKKwkqIHByb2dyYW1zL21zaWV4ZWMvbXNpZXhlYy5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJU2V0IGZ1bGwgVUkgbW9kZSBieSBkZWZhdWx0LgorCisJKiBkbGxzL2Rzb3VuZC90ZXN0cy9kczNkLmMsIGRsbHMvZHNvdW5kL3Rlc3RzL2RzM2Q4LmMsCisJICBkbGxzL2Rzb3VuZC90ZXN0cy9kc291bmQuYywgZGxscy9kc291bmQvdGVzdHMvZHNvdW5kOC5jOgorCVJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJUHJpbnQgaW5mbyBhYm91dCBwcmltYXJ5IGJ1ZmZlciBmb3JtYXQuCisKKwkqIGRsbHMvZDNkOS9kZXZpY2UuYzogUGF1bCBWcmllbnMgPFBhdWwuVnJpZW5zQHhzNGFsbC5ubD4KKwlDaGVjayB0aGF0IHBwWlN0ZW5jaWxTdXJmYWNlIGlzIG5vdCBudWxsLgorCisJKiBhY2xvY2FsLm00LCBkbGxzL2FkdmFwaTMyL3Rlc3RzL2NyeXB0LmMsCisJICBkbGxzL2NvbWN0bDMyL3Rlc3RzL2ltYWdlbGlzdC5jLCBkbGxzL2RwbGF5eC9uYW1lX3NlcnZlci5jLAorCSAgZGxscy9rZXJuZWwvdGVzdHMvZGlyZWN0b3J5LmMsIGRsbHMva2VybmVsL3Rlc3RzL2ZpbGUuYywKKwkgIGRsbHMva2VybmVsL3Rlc3RzL21haWxzbG90LmMsIGRsbHMva2VybmVsL3Rlc3RzL3BhdGguYywKKwkgIGRsbHMvbHpleHBhbmQvdGVzdHMvbHpleHBhbmRfbWFpbi5jLCBkbGxzL21hcGkzMi90ZXN0cy9wcm9wLmMsCisJICBkbGxzL21zaS90YWJsZS5jLCBkbGxzL21zcmxlMzIvbXNybGUzMi5jLCBkbGxzL21zdmNydC9lbnZpcm9uLmMsCisJICBkbGxzL21zdmNydC90ZXN0cy9lbnZpcm9uLmMsIGRsbHMvcXVhcnR6L2FjbXdyYXBwZXIuYywKKwkgIGRsbHMvcnNhZW5oL3JzYWVuaC5jLCBkbGxzL3NoZWxsMzIvcGlkbC5jLCBkbGxzL3NoZWxsMzIvc2hlbGxwYXRoLmMsCisJICBkbGxzL3NoZWxsMzIvdGVzdHMvc2hlbGxwYXRoLmMsIGRsbHMvc2hlbGwzMi90ZXN0cy9zaGxmaWxlb3AuYywKKwkgIGRsbHMvc2hsd2FwaS90ZXN0cy9jbGlzdC5jLCBkbGxzL3dpbmVkM2QvZGlyZWN0eC5jLAorCSAgZGxscy93aW5lZG9zL3BwZGV2LmMsIGRvY3VtZW50YXRpb24vY29uZmlndXJpbmcuc2dtbCwKKwkgIHByb2dyYW1zL3djbWQvRW4ucmMsIHByb2dyYW1zL3djbWQvUnUucmMsIHByb2dyYW1zL3djbWQvU2kucmMsCisJICB0b29scy93aW5lYnVpbGQvc3BlYzMyLmM6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJQXNzb3J0ZWQgc3BlbGxpbmcgZml4ZXMuCisKKwkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjOiBBbGV4IFdvb2RzIDx3aW5lLWRldmVsQGdpYmxldHMub3JnPgorCUhhbmRsZSBob3N0X2NwdSBvZiB4ODZfNjQgbGlrZSBvdGhlciB4ODZzLgorCisJKiBwcm9ncmFtcy9tc2lleGVjL01ha2VmaWxlLmluLCBwcm9ncmFtcy9tc2lleGVjL21zaWV4ZWMuYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJUmVhZCBhcmdzIGZyb20gdGhlIHJlZ2lzdHJ5IHdoZW4gcGFzc2VkIHRoZSAvQCBmbGFnLgorCisJKiBkbGxzL21zaS9tc2kuYywgaW5jbHVkZS9tc2kuaDogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCVVwZGF0ZSBoZWFkZXJzLCBhZGQgTXNpR2V0VXNlckluZm9BIHN0dWIgaW1wbGVtZW50YXRpb24uCisKKwkqIGRsbHMvc2VyaWFsdWkvUHQucmMsIGRsbHMvc2V0dXBhcGkvUHQucmMsIHByb2dyYW1zL2Nsb2NrL1B0LnJjLAorCSAgcHJvZ3JhbXMvY21kbGd0c3QvUHQucmMsIHByb2dyYW1zL25vdGVwYWQvUHQucmMsCisJICBwcm9ncmFtcy9wcm9nbWFuL1B0LnJjLCBwcm9ncmFtcy9yZWdlZGl0L1B0LnJjLCBwcm9ncmFtcy9zdGFydC9QdC5yYywKKwkgIHByb2dyYW1zL3ZpZXcvUHQucmMsIHByb2dyYW1zL3djbWQvUHQucmMsIHByb2dyYW1zL3dpbmVjZmcvUHQucmMsCisJICBwcm9ncmFtcy93aW5lZmlsZS9QdC5yYywgcHJvZ3JhbXMvd2luZW1pbmUvUHQucmMsCisJICBwcm9ncmFtcy93aW5oZWxwL1B0LnJjOgorCUFt6XJpY28gSm9z6SBNZWxvIDxtbW9kZW0wMEBuZXR2aXNhby5wdD4KKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCVRyYW5zbGF0ZSB0aGUgV2luZSByZXNvdXJjZXMgdG8gUG9ydHVndWVzZS4KKworCSogZGxscy9xdWFydHovTWFrZWZpbGUuaW4sIGRsbHMvcXVhcnR6L21haW4uYywKKwkgIGRsbHMvcXVhcnR6L3F1YXJ0el9wcml2YXRlLmgsIGRsbHMvcXVhcnR6L3JlZ3N2ci5jLAorCSAgZGxscy9xdWFydHovd2F2ZXBhcnNlci5jLCBpbmNsdWRlL3V1aWRzLmg6CisJQ2hyaXN0aWFuIENvc3RhIDx0aXRhbi5jb3N0YUB3YW5hZG9vLmZyPgorCUFkZGVkIFdBVkUgcGFyc2VyLgorCisJKiBwcm9ncmFtcy9tc2lleGVjL21zaWV4ZWMuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUNvbnZlcnQgdG8gVW5pY29kZS4KKworCSogZGxscy9kc291bmQvbWl4ZXIuYzogUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlTaWduZWQvdW5zaWduZWQgZml4IGFuZCBjb2RlIGNsZWFudXAuCisKKwkqIGRsbHMvc2hsd2FwaS90ZXN0cy9wYXRoLmM6IFBhdWwgVnJpZW5zIDxQYXVsLlZyaWVuc0B4czRhbGwubmw+CisJVXNlIGFsaWFzZXMgZm9yIGNhbGxzIHRvIG9yZGluYWxzLgorCisJKiBkbGxzL21zaS9tc2kuYywgZGxscy9tc2kvbXNpLnNwZWM6CisJQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGRlZCBzdHVicyBmb3IgTXNpR2V0U2hvcnRjdXRUYXJnZXRBL1cuCisKKwkqIGRsbHMvY29tbWRsZy9maWxlZGxnLmMsIGRsbHMvY29tbWRsZy9maWxlZGxnMTYuYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCURvIG5vdCBmb3JnZXQgdG8gYWxsb2NhdGUgaW50ZXJuYWwgT1BFTkZJTEVOQU1FVyBzdHJ1Y3R1cmUgZm9yIDE2LWJpdAorCUdldE9wZW5GaWxlTmFtZSwgaW5pdGlhbGl6ZSBpdCBieSB6ZXJvcyBmb3IgMTYvQSBjYXNlcy4KKworCSogZGxscy9tc2kvYWN0aW9uLmM6IEFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJQWRkIHRoZSBSZWdpc3RlclVzZXIgYWN0aW9uLgorCisJKiBkbGxzL2Rzb3VuZC9idWZmZXIuYzogUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlBbHdheXMgYWxsb2NhdGUgYW4gZW1wdHkgYnVmZmVyLgorCisyMDA1LTAyLTA5ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL3dpbm1tL01ha2VmaWxlLmluLCBkbGxzL3dpbm1tL2RyaXZlci5jLCBkbGxzL3dpbm1tL21jaS5jLAorCSAgZGxscy93aW5tbS9tY2lhbmltL21jaWFuaW0uYywgZGxscy93aW5tbS9tY2lhdmkvaW5mby5jLAorCSAgZGxscy93aW5tbS9tY2lhdmkvbWNpYXZpLmMsIGRsbHMvd2lubW0vbWNpYXZpL21jaWF2aV9yZXMucmMsCisJICBkbGxzL3dpbm1tL21jaWF2aS9wcml2YXRlX21jaWF2aS5oLCBkbGxzL3dpbm1tL21jaWF2aS93bmQuYywKKwkgIGRsbHMvd2lubW0vbWNpY2RhL01ha2VmaWxlLmluLCBkbGxzL3dpbm1tL21jaWNkYS9tY2ljZGEuYywKKwkgIGRsbHMvd2lubW0vbWNpc2VxL21jaW1pZGkuYywgZGxscy93aW5tbS9tZXNzYWdlMTYuYywKKwkgIGRsbHMvd2lubW0vbW1pby5jLCBkbGxzL3dpbm1tL21tc3lzdGVtLmMsIGRsbHMvd2lubW0vbW1zeXN0ZW0uc3BlYywKKwkgIGRsbHMvd2lubW0vd2luZW1tLmgsIGRsbHMvd2lubW0vd2lubW0uYywgZGxscy93aW5tbS93aW5tbS5zcGVjLAorCSAgZGxscy93aW5tbS93aW5tbV9yZXMucmMsIGRsbHMvd2lubW0vbWNpd2F2ZS9tY2l3YXZlLmMsCisJICBpbmNsdWRlL21tc3lzdGVtLmg6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJLSByZXdyaXRlIE1DSSBpbnRlcmZhY2VzIGFzIFVuaWNvZGUgaW50ZXJmYWNlIChhcyBpdCBzaG91bGQgYmUpCisJLSBtYWRlIHNvbWUgd2lubW0gQVBJcyByZWx5IG9uIHRoZSBVbmljb2RlIHZlcnNpb24gZm9yIHRoZSBjb3JlCisJICBpbXBsZW1lbnRhdGlvbiAoaW5zdGVhZCBvZiBBbnNpIGZsYXZvcikKKworCSogZGxscy9yc2FlbmgvcnNhZW5oLmMsIGRsbHMvcnNhZW5oL3Rlc3RzL3JzYWVuaC5jOgorCU1pY2hhZWwgSnVuZyA8bWp1bmdAaXNzLnR1LWRhcm1zdGFkdC5kZT4KKwlJbXBsZW1lbnRlZCBDUEdldFByb3ZQYXJhbSdzIFBQX0VOVU1DT05UQUlORVJTIHBhcmFtZXRlciB0eXBlLgorCUFkZGVkIGNvcnJlc3BvbmRpbmcgdGVzdC4KKwlSZW1vdmVkIHNvbWUgdGFicyB0aGF0IHNsaXBwZWQgaW4gd2l0aCB0aGUgbGFzdCBwYXRjaC4KKworCSogZGxscy9tc2kvYWN0aW9uLmMsIGRsbHMvbXNpL2Zvcm1hdC5jOgorCVVscmljaCBDemVrYWxsYSA8dWxyaWNoQGNvZGV3ZWF2ZXJzLmNvbT4KKwlIYW5kbGUgMCBsZW5ndGggYnVmZmVycyBpbiBNU0lfRm9ybWF0UmVjb3JkVy4KKwlSZW1vdmUgdW51c2VkIGJ1ZmZlciBpbiBkZWZvcm1hdF9zdHJpbmcuCisKKwkqIGRsbHMvZGJnaGVscC9tc2MuYzogTWlrZSBIZWFybiA8bWhAY29kZXdlYXZlcnMuY29tPgorCUNoYW5nZSBhbiBFUlIgdG8gYSBXQVJOLgorCisJKiB0b29scy93aW5lYnVpbGQvaW1wb3J0LmM6IE1hcmN1cyBNZWlzc25lciA8bWVpc3NuZXJAc3VzZS5kZT4KKwlQdXQgZ2VuZXJhdGVkIGltcG9ydCB0YWJsZSBjb2RlIGludG8gLnRleHQgc2VnbWVudC4KKworCSogcHJvZ3JhbXMvbXNpZXhlYy9tc2lleGVjLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwktIFF1b3RlIHRoZSBwYXJhbWV0ZXIgc3RyaW5ncyBwYXNzZWQgdG8gTXNpSW5zdGFsbFByb2R1Y3QuCisJLSBSZXR1cm4gdGhlIGVycm9yIGNvZGUgdGhhdCB0aGUgTXNpKiBmdW5jdGlvbiByZXR1cm5lZCB3aGVuIHdlIHF1aXQuCisKKwkqIGRsbHMvbXNpL2N1c3RvbS5jOiBBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCURvIG5vdCB0cmFjayB0aGUgdGVtcCBmaWxlcyBmb3IgY3VzdG9tIGFjdGlvbnMgYmFzZWQgb24gdGhlIG5hbWUgZnJvbQorCXRoZSB0YWJsZSBiZWNhdXNlIHRoZW4gd2UgZ2V0IGNvbmZsaWN0cyBhbmQgZmlsZXMgbm90IHRyYWNrZWQgb3IKKwljbGVhbmVkIHVwLgorCisJKiBkbGxzL2Rzb3VuZC9idWZmZXIuYywgZGxscy9kc291bmQvcHJpbWFyeS5jOgorCVJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJRmlsbCBuZXcgc29mdHdhcmUgYnVmZmVycyB3aXRoIHNpbGVuY2UuCisKKwkqIGRsbHMveDExZHJ2L3dpbmRvdy5jLCBkbGxzL3gxMWRydi93aW5wb3MuYzoKKwlNYWtlIHRoZSB3aW4gZGF0YSBwb2ludGVyIG9ubHkgYXZhaWxhYmxlIGluIHRoZSB0aHJlYWQgdGhhdCBvd25zIHRoZQorCXdpbmRvdy4KKworCSogdG9vbHMvY29uZmlnLmd1ZXNzLCB0b29scy9jb25maWcuc3ViOiBVcGdyYWRlIHRvIHRoZSBsYXRlc3QgdmVyc2lvbi4KKworCSogcHJvZ3JhbXMvbXNpZXhlYy9tc2lleGVjLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwktIEZpeCBtc2lleGVjJ3MgY29tbWFuZCBsaW5lIHBhcnNpbmcuCisJLSBEb24ndCBhbGxvY2F0ZSBtZW1vcnkgZm9yIGZpeGVkIHNpemUgc3RydWN0dXJlLgorCS0gUmVtb3ZlIGEgZmV3IG5vbi10YWIgaW5kZW50cywgc2luY2UgdGhlIHJlc3Qgb2YgdGhlIGZpbGUgdXNlcyB0YWJiZWQKKwkgIGluZGVudC4KKworCSogZGxscy9tc2kvYWN0aW9uLmM6IEFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50IFJlZ2lzdGVyRXh0ZW5zaW9uSW5mbyBhbmQgUmVnaXN0ZXJNSU1FSW5mby4KKworCSogZGxscy9tc2kvY3VzdG9tLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlIYW5kbGUgYSBudW1iZXIgYXMgYSBwYXJhbWV0ZXIgZm9yIGN1c3RvbSBhY3Rpb24gMTkuCisKKwkqIGRsbHMvbnRkbGwvZGlyZWN0b3J5LmM6CisJQ29uc2lkZXIgYW55IGNoYXJhY3RlciBhYm92ZSAweDdmIHRvIGJlIGludmFsaWQgaW4gYSBET1Mgc2hvcnQgbmFtZS4KKworCSogZGxscy9pdHNzL21vbmlrZXIuYzogVG9tIEZvZ2FsIDx0Zm9nYWxAY2lzdW5peC51bmguZWR1PgorCVNpbXBsZSBhZ2dyZWdhdGlvbiBmaXguCisKKwkqIGRsbHMvbXNpL2NvbmQueTogQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlEbyBub3QgbGltaXQgcHJvcGVydGllcyB0byAyNTYgY2hhcmFjdGVycyB3aGVuIGV2YWx1YXRpbmcgdGhlbS4KKworCSogZGxscy94MTFkcnYva2V5Ym9hcmQuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgc3VwcG9ydCBmb3IgVHVya2lzaCAodHIpIFgxMSBrZXlib2FyZCBsYXlvdXQuCisKKwkqIGRsbHMvc2hlbGwzMi9jcGFuZWxmb2xkZXIuYzogR2UgdmFuIEdlbGRvcnAgPGd2Z0ByZWFjdG9zLmNvbT4KKwktIEZpeCBxdW90aW5nIG9mIC5jcGwgZmlsZW5hbWUuCisJLSBVc2UgImNwbG9wZW4iIHZlcmIgdG8gZXhlY3V0ZSAuY3BsIGZpbGVzLgorCisJKiBkbGxzL21zaS9hY3Rpb24uYywgZGxscy9tc2kvY3VzdG9tLmMsIGRsbHMvbXNpL2RpYWxvZy5jOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwktIGFkZCBzdXBwb3J0IGZvciBFZGl0IGJveGVzIGluIE1TSSBkaWFsb2dzCisJLSBydW4gdGhlIG1lc3NhZ2UgbG9vcCB3aGVuIHdhaXRpbmcgZm9yIHRocmVhZHMgb3IgcHJvY2Vzc2VzCisKKwkqIGRsbHMvbXNpL21zaS5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJRml4IGEgbWVtb3J5IGxlYWsgaW4gTXNpQ29uZmlndXJlUHJvZHVjdEV4Vy4KKworMjAwNS0wMi0wOCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogaW5jbHVkZS93aW5lL3dpbmVkM2RfZ2wuaDoKKwlKYXNvbiBFZG1lYWRlcyA8dXNAdGhlLWVkbWVhZGVzLmRlbW9uLmNvLnVrPgorCUF2b2lkIGNvbXBpbGUgd2FybmluZ3MuCisKKwkqIHRvb2xzL3dpZGwvd3JpdGVfbXNmdC5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUFkZCBzdXBwb3J0IGZvciBtb2R1bGVzLgorCisJKiBkbGxzL29sZTMyL2NvbXBvYmouYywgZGxscy9vbGUzMi9jb21wb2JqX3ByaXZhdGUuaCwKKwkgIGRsbHMvb2xlMzIvb2xlMzIuc3BlYywgZGxscy9vbGUzMi9yZWdzdnIuYywgZGxscy9vbGUzMi9zdHVibWFuYWdlci5jLAorCSAgZGxscy9vbGUzMi90ZXN0cy9tYXJzaGFsLmM6CisJUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCS0gSW1wbGVtZW50IENvRGlzY29ubmVjdE9iamVjdC4KKwktIENoYW5nZSBDb0xvY2tPYmplY3RFeHRlcm5hbCBzbyB0aGF0IGl0IGRvZXMgdGhlIGNvcnJlY3QgYWN0aW9uIG5vdworCSAgYW5kIGVsaW1pbmF0ZSBhIGZhaXIgZmV3IGxpbmVzIG9mIG5vdyByZWR1bmRhbnQgY29kZS4KKwktIFJlbmFtZSBPTEUzMl9EbGx7UmVnaXN0ZXIsVW5yZWdpc3Rlcn1TZXJ2ZXIgdG8KKwkgIERsbHtSZWdpc3RlcixVbnJlZ2lzdGVyfVNlcnZlci4KKworCSogdG9vbHMvd2lkbC93cml0ZV9tc2Z0LmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJQ2hlY2sgaWYgd2UndmUgYWxyZWFkeSBhZGRlZCB0aGUgcHRyIHRvIGlmYWNlIHR5cGVkZXNjIGJlZm9yZSBhZGRpbmcgYQorCW5ldyBvbmUuCisKKwkqIGRsbHMvdXNlci90ZXN0cy9tc2cuYywgd2luZG93cy9zY3JvbGwuYzoKKwlSZWluIEtsYXplcyA8d2lqbkB3YW5hZG9vLm5sPgorCVNjcm9sbFdpbmRvd0V4IHdoZW4gY2FsbGVkIHdpdGggdGhlIFNXX0VSQVNFIGZsYWcgZG9lcyBub3Qgc2VuZCBhCisJV01fRVJBU0VCS0dORCBtZXNzYWdlLCBpdCBqdXN0IHNldHMgdGhlIGVyYXNlIGZsYWcuIFdpdGggc29tZSB0ZXN0cworCXRoYXQgc2hvdyB0aGlzIGJlaGF2aW9yLgorCisJKiBkbGxzL21zaS9jdXN0b20uYzogQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlNYWtlIGEgdGVtcCBmaWxlIGZvciBlYWNoIGRsbCBzYXZlZCBmb3IgY3VzdG9tIGFjdGlvbnMuIFRoaXMgcHJldmVudHMKKwluYW1lIGNvbGxpc2lvbnMgZnJvbSBjYXVzaW5nIGN1c3RvbSBhY3Rpb25zIHRvIGZhaWwuCisKKwkqIGRsbHMvbXNpL2FjdGlvbi5jOiBBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCUFkZCBsb2dpYyB0byBiZSBhYmxlIHRvIHJlc29sdmUgdGhlIFNvdXJjZURpciBiYXNlZCBvbgorCUN1cnJlbnRQYXRoLiBBbHNvIGFkZCBsb2dpYyB0byBnZXQgdGhlIHNvdXJjZSBsb2NhdGlvbnMgb2YgYSBmaWxlIGlmCisJaXQgaXMgbm90IGluIGEgY2FiaW5ldC4KKworCSogZGxscy9vbGUzMi9tYXJzaGFsLmM6IFJvYmVydCBTaGVhcm1hbiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KKwlNb3ZlIG9iamVjdC10by1zdHViLW1hbmFnZXIgbWFwcGluZyBydWxlIHRvIHJlZ2lzdGVyX2lmc3R1Yi4KKworCSogZGxscy9tc2kvY3JlYXRlLmMsIGRsbHMvbXNpL2Rpc3RpbmN0LmMsIGRsbHMvbXNpL2luc2VydC5jLAorCSAgZGxscy9tc2kvbXNpcHJpdi5oLCBkbGxzL21zaS9tc2lxdWVyeS5jLCBkbGxzL21zaS9vcmRlci5jLAorCSAgZGxscy9tc2kvc2VsZWN0LmMsIGRsbHMvbXNpL3RhYmxlLmMsIGRsbHMvbXNpL3VwZGF0ZS5jLAorCSAgZGxscy9tc2kvd2hlcmUuYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJRml4IE1zaU1vZGlmeVZpZXcgYW5kIE1zaVZpZXdHZXRDb2x1bW5JbmZvIHRvIHVzZSBNU0lSRUNPUkQqIG5vdAorCU1TSUhBTkRMRS4KKworCSogZGxscy9xdWFydHovTWFrZWZpbGUuaW4sIGRsbHMvcXVhcnR6L2F2aXNwbGl0LmMsCisJICBkbGxzL3F1YXJ0ei9wYXJzZXIuYywgZGxscy9xdWFydHovcGFyc2VyLmg6CisJQ2hyaXN0aWFuIENvc3RhIDx0aXRhbi5jb3N0YUB3YW5hZG9vLmZyPgorCUFkZGVkIHBhcnNlciB0ZW1wbGF0ZSBhbmQgbWFkZSBBVklTcGxpdHRlciB1c2UgaXQuCisKKwkqIGRsbHMvdmVyc2lvbi90ZXN0cy9pbmZvLmM6CisJU3RlZmFuIExlaWNodGVyIDxTdGVmYW4uTGVpY2h0ZXJAY2FtTGluZS5jb20+CisJRml4ZWQgR2V0RmlsZVZlcnNpb25JbmZvU2l6ZUEgdGVzdHMgb24gV2luOTUuCisKKwkqIHRvb2xzL3dpZGwvd3JpdGVfbXNmdC5jOiBWaW5jZW50IELpcm9uIDx2YmVyb25AbWVjYW5vLmdtZS51c2hlcmIuY2E+CisJU3VwcG9ydCBzb21lIG1vcmUgYXR0cmlidXRlcyBmb3IgaW50ZXJmYWNlIHByb3BlcnRpZXMuCisKKwkqIGRsbHMvd2luaW5ldC9pbnRlcm5ldC5jLCBkbGxzL3dpbmluZXQvdXJsY2FjaGUuYywKKwkgIGRsbHMvd2luaW5ldC93aW5pbmV0LnNwZWM6CisJSGFucyBMZWlkZWtrZXIgPGhhbnNAaXQudnUubmw+CisJU3R1YiBpbXBsZW1lbnRhdGlvbnMgZm9yIERlbGV0ZVVybENhY2hlQ29udGFpbmVye0EsV30sCisJQ3JlYXRlQ2FjaGVDb250YWluZXJ7QSxXfSwgRmluZEZpcnN0VXJsQ2FjaGVDb250YWluZXJ7QSxXfSwKKwlGaW5kTmV4dFVybENhY2hlQ29udGFpbmVye0EsV30uCisJSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZSBzdXBwbGllZCBidWZmZXIgc2l6ZSBpcyB0b28gc21hbGwgaW4KKwlJbnRlcm5ldFF1ZXJ5T3B0aW9uLgorCisJKiBkbGxzL29sZTMyL2NvbXBvYmouYywgZGxscy9vbGUzMi9jb21wb2JqX3ByaXZhdGUuaCwKKwkgIGRsbHMvb2xlMzIvb2xlMzJfbWFpbi5jLCBkbGxzL29sZTMyL3JwYy5jLAorCSAgZGxscy9vbGUzMi90ZXN0cy9tYXJzaGFsLmM6CisJUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCS0gU3BsaXQgdXAgYXBhcnRtZW50IGNyZWF0aW9uIHNvIHRoYXQgdGhlIGxvbmcgY29kZSBwYXRocyB0aGF0IGRvbid0CisJICBuZWVkIGxvY2tpbmcgbm8gbG9uZ2VyIGhhdmUgbG9ja2luZy4KKwktIEFkZCBzcGVjaWFsIGNhc2VzIGZvciB0aGUgdGhyZWFkcyB0aGF0IGpvaW4gYXBhcnRtZW50cyBidXQgY2FuJ3QKKwkgIGluY3JlYXNlIHRoZSByZWZjb3VudCBvZiB0aGUgYXBhcnRtZW50LgorCS0gRnJlZSBUTFMgc3RvcmFnZSBvbiB0aHJlYWQgZGVzdHJ1Y3Rpb24gKGluY2x1ZGluZyByZWxlYXNpbmcgdGhlCisJICBhcGFydG1lbnQgdGhlIHRocmVhZCBpcyBpbiwgaWYgYW55LCBhbmQgc28gbWFraW5nIGFub3RoZXIgdGVzdAorCSAgcGFzcykuCisKKwkqIGRsbHMvb2xlYXV0MzIvb2xlYXV0LmM6IFBhdWwgVnJpZW5zIDxQYXVsLlZyaWVuc0B4czRhbGwubmw+CisJQWRkIFdpblhQIHRvIE9hQnVpbGRWZXJzaW9uLgorCisJKiB0b29scy93aWRsL3dyaXRlX21zZnQuYzogVmluY2VudCBC6XJvbiA8dmJlcm9uQG1lY2Fuby5nbWUudXNoZXJiLmNhPgorCVN1cHBvcnQgQVRUUl9SRUFET05MWSBmb3IgaW50ZXJmYWNlIHByb3BlcnRpZXMuCisKKwkqIGluY2x1ZGUvbXNpZGVmcy5oOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJQWRkIHRoZSBtc2lkYkN1c3RvbUFjdGlvbiBhbmQgbXNpZGJGZWF0dXJlQXR0cmlidXRlcyBlbnVtZXJhdGlvbnMuCisKKwkqIGRsbHMvbXNpL2RpYWxvZy5jLCBkbGxzL21zaS9tc2lwcml2Lmg6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCS0gZml4IHRoZSBkaWFsb2cgZm9udAorCS0gYWxsb3cgd2FpdGluZyBvbiBhIGhhbmRsZSB3aGlsZSBydW5uaW5nIHRoZSBtZXNzYWdlIGxvb3AKKworCSogZGxscy9vbGUzMi9jb21wb2JqLmMsIGRsbHMvb2xlMzIvY29tcG9ial9wcml2YXRlLmgsCisJICBkbGxzL29sZTMyL21hcnNoYWwuYywgZGxscy9vbGUzMi9ycGMuYywgZGxscy9vbGUzMi9zdHVibWFuYWdlci5jOgorCU1pa2UgSGVhcm4gPG1oQGNvZGV3ZWF2ZXJzLmNvbT4KKwlSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJLSBSZXdvcmsgUlBDIGRpc3BhdGNoIGxheWVyIHRvIGJlIHNpbXBsZXIgYW5kIG5vdCBnZXQgY29uZnVzZWQgYnkKKwkgIHNlcnZlci9jbGllbnQgZHVhbGl0eS4KKwktIE1ha2UgdGhyZWFkcyBzaHV0IGRvd24gYXQgdGhlIHJpZ2h0IHRpbWUgYW5kIG5vdCBhY2Nlc3MgZnJlZWQgbWVtb3J5CisJICBhZnRlciBhcGFydG1lbnQgZGVzdHJ1Y3Rpb24uCisJLSBSZW5hbWUgc3R1Yl9kaXNwYXRjaF90aHJlYWQgdG8gY2xpZW50X2Rpc3BhdGNoX3RocmVhZC4KKwktIEFkZCBzb21lIG1vcmUgdHJhY2luZworCS0gQ2hlY2sgcmV0dXJuIHZhbHVlIG9mIFdhaXROYW1lZFBpcGUuCisJLSBDaGFuZ2UgbmFtZWQgcGlwZSB0aW1lb3V0cyB0byAwLjVzLCB3aGljaCBzaG91bGQgYmUgZW5vdWdoIGZvciBldmVuCisJICB0aGUgc2xvd2VzdCBtYWNoaW5lcy4KKworCSogc2VydmVyL25hbWVkX3BpcGUuYzogUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCVN1cHBvcnQgV2FpdE5hbWVkUGlwZSB0aW1lb3V0cy4KKworCSogZGxscy9tc2kvY29uZC55OiBKdWFuIExhbmcgPGp1YW5fbGFuZ0B5YWhvby5jb20+CisJSWRlbnRpZmllcnMgZXZhbHVhdGUgdG8gdHJ1ZSBpZiB0aGV5IGFyZSBub24tZW1wdHksIHJlZ2FyZGxlc3Mgb2YKKwl2YWx1ZS4KKworCSogZGxscy9udGRsbC90aW1lLmM6IFJvYmVydCBTaGVhcm1hbiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KKwlSZXBsYWNlIDEwMDAwMDAwIHdpdGggVElDS1NQRVJTRUMgdG8gbWFrZSBpdCBtb3JlIG9idmlvdXMgd2hhdCB0aGUKKwljb2RlIGlzIGRvaW5nLgorCisJKiBNYWtlLnJ1bGVzLmluOiBWaW5jZW50IELpcm9uIDx2YmVyb25AbWVjYW5vLmdtZS51c2hlcmIuY2E+CisJTWFrZSB0bGIgZ2VuZXJhdGlvbiBmcm9tIGlkbCBmaWxlcyBkZXBlbmRlbnQgb24gd2lkbC4KKworCSogZG9jdW1lbnRhdGlvbi9mYXEuc2dtbDogU2NvdHQgUml0Y2hpZSA8c2NvdHRAb3Blbi12b3RlLm9yZz4KKwlSZW1vdmUgdHdvIGFuY2llbnQgRkFRIGVudHJpZXMgdGhhdCBkaWQgbW9yZSBoYXJtIHRoYW4gZ29vZC4KKwlSZXBsYWNlIGEgcmVmZXJlbmNlIHRvIHdpbmUuY29uZiB3aXRoIH4vLndpbmUvY29uZmlnLgorCisJKiBkbGxzL29sZWF1dDMyL29sZWF1dC5jOiBNaWtlIEhlYXJuIDxtaEBjb2Rld2VhdmVycy5jb20+CisJUmV0dXJuIE9MRSBhdXRvbWF0aW9uIGJ1aWxkIHZhbHVlIGFzIHdpbjJrIGJ5IGRlZmF1bHQuCisKKwkqIGRsbHMvbXNpLy5jdnNpZ25vcmUsIGRsbHMvbXNpL01ha2VmaWxlLmluLCBkbGxzL21zaS9tc2kuYywKKwkgIGRsbHMvbXNpL21zaS5yYywgZGxscy9tc2kvbXNpX0VuLnJjOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlJbXBsZW1lbnQgYW5kIGRvY3VtZW50IE1zaUxvYWRTdHJpbmcuCisKKwkqIGRsbHMvbXNpL2FjdGlvbi5jOiBNaWtlIEhlYXJuIDxtaEBjb2Rld2VhdmVycy5jb20+CisJQ29ycmVjdGx5IGVuc3VyZSBwcm9wZXJ0aWVzIHNldCBmcm9tIHJlc29sdmVkIGRpcmVjdG9yeSBwYXRocyBhcmUKKwliYWNrc2xhc2ggdGVybWluYXRlZC4KKworCSogZGxscy9kaW5wdXQvZGV2aWNlLmM6IENhcmxvcyBMb3phbm8gPGNsb3phbm9AYW5kYWdvLmNvbT4KKwlGaXggcmVncmVzc2lvbiBpbiBGYWxsb3V0IGdhbWUuCisKKwkqIGRsbHMvZDNkOC9kZXZpY2UuYywgZGxscy93aW5lZDNkL2RldmljZS5jOgorCUNhcmxvcyBMb3phbm8gPGNsb3phbm9AYW5kYWdvLmNvbT4KKwlDaGVjayB0aGF0IHBzdHJlYW0gaXMgbm90IG51bGwuCisKKwkqIGRsbHMvd2luaW5ldC93aW5pbmV0LnNwZWM6IFN0ZXZlbiBFZHdhcmRzIDxzdGV2ZW5fZWQ0MTUzQHlhaG9vLmNvbT4KKwlDb3JyZWN0IHNwZWMgZW50cnkgZm9yIEZpbmRGaXJzdFVybENhY2hlRW50cnlFeC4KKworCSogdG9vbHMvd2lkbC90eXBlbGliLmMsIHRvb2xzL3dpZGwvdHlwZWxpYl9zdHJ1Y3QuaCwKKwkgIHRvb2xzL3dpZGwvd3JpdGVfbXNmdC5jOgorCUh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJQWRkIFZBUklBTlRfQk9PTC4KKwlGaXggQ1VSUkVOQ1kgYWxpZ25tZW50LgorCUEgZnVuY3Rpb24gd2l0aCBhIFtyZXR2YWxdIHBhcmFtIGhhcyBhIGJpdCBzZXQgaW4gdGhlIEZLQ0NJQyBiaXRmaWVsZC4KKwlUd28gZnVuY3Rpb25zIHdpdGggdGhlIHNhbWUgbmFtZSBzaGFyZSB0aGUgc2FtZSBpZC4KKwlUaGUgcGFyYW0gbmFtZXMgb2YgcHJvcHB1dCBhbmQgcHJvcHB1dHJlZiBmdW5jdGlvbnMgZG9uJ3QgZ28gaW50byB0aGUKKwl0eXBlbGliLgorCisJKiBkbGxzL3VzZXIvdGVzdHMvc3lzcGFyYW1zLmM6IFBhdWwgVnJpZW5zIDxQYXVsLlZyaWVuc0B4czRhbGwubmw+CisJRXh0cmEgdHJhY2luZyBmb3IgU1BJX0dFVElDT05USVRMRVdSQVAuCisKKwkqIGRsbHMvbXNpL2FwcHNlYXJjaC5jOiBKdWFuIExhbmcgPGp1YW5fbGFuZ0B5YWhvby5jb20+CisJSWYgYSBmdWxsIHBhdGggaXNuJ3Qgc3BlY2lmaWVkLCBzZWFyY2ggYWNyb3NzIGFsbCBmaXhlZCBkcml2ZXMuCisKKwkqIHByb2dyYW1zL3dpbmVjZmcvRW4ucmMsIHByb2dyYW1zL3dpbmVjZmcvZHJpdmV1aS5jOgorCUtyaXMgTWFyc2ggPG1vb2dtYW5AZ21haWwuY29tPgorCUZpeGVkIHdpbmRvdyBoZWlnaHQgdG8gc2hvdyBhbGwgZGF0YSBwcm9wZXJseS4KKwlDbGVhbmVkIHVwIGRyaXZlcy0+YWR2YW5jZWQgaW5mb3JtYXRpb24gdmlzdWFscy4KKworCSogZGxscy9rZXJuZWwvc3luYy5jOiBSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJQ29udmVydCBsYXN0IGVycm9yIGZyb20gTlRTVEFUVVMgdG8gYSBET1MgZXJyb3IgY29kZSBpbiBXYWl0TmFtZWRQaXBlCisJYW5kIENvbm5lY3ROYW1lZFBpcGUuCisKKwkqIHNlcnZlci93aW5kb3cuYzogUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCURvbid0IG92ZXJ3cml0ZSBsYXN0IGJ5dGUgb2YgdGhlIHdpbmRvdyBzdHJ1Y3R1cmUgYXMgd2UgbWlnaHQgbm90IGhhdmUKKwlhbGxvY2F0ZWQgdGhlIG1lbW9yeSBmb3IgaXQgaWYgZXh0cmFieXRlcyB3YXMgMC4KKworMjAwNS0wMi0wMyAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9jb21tZGxnL2ZpbGVkbGcuYywgZGxscy9jb21tZGxnL2ZpbGVkbGcxNi5jLAorCSAgZGxscy9jb21tZGxnL2ZpbGVkbGczMS5jLCBkbGxzL2NvbW1kbGcvZmlsZWRsZzMxLmg6CisJRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlNYWtlIEdldE9wZW5GaWxlTmFtZVcgd2l0aCBhbiBvbGQgc3R5bGUgb3BlbiBmaWxlIGRpYWxvZyB3b3JrIHdpdGggdGhlCisJb3JpZ2luYWwgT1BFTkZJTEVOQU1FVyBzdHJ1Y3R1cmUsIG1ha2luZyBzdXJlIHRoYXQgYWxsIGNoYW5nZXMgYXJlCisJcGFzc2VkIGJhY2sgdG8gdGhlIGNhbGxlci4KKworCSogZGxscy9zaGx3YXBpL3Rlc3RzL3NocmVnLmM6IFBhdWwgVnJpZW5zIDxQYXVsLlZyaWVuc0B4czRhbGwubmw+CisJTW9yZSB2ZXJib3NpdHkgb2YgZXJyb3JzLgorCisJKiBkbGxzL3VybG1vbi9zZWNfbWdyLmMsIGRsbHMvdXJsbW9uL3Vtb24uYywgZGxscy91cmxtb24vdXJsbW9uX21haW4uYywKKwkgIGRsbHMvdXJsbW9uL3VybG1vbl9tYWluLmg6CisJSmFtZXMgSGF3a2lucyA8dHJ1aWtlbkBnbWFpbC5jb20+CisJUHJvcGVybHkgaW1wbGVtZW50IERsbENhblVubG9hZE5vdyByZWYgY291bnRpbmcuCisKKwkqIGRsbHMva2VybmVsL01ha2VmaWxlLmluLCBkbGxzL2tlcm5lbC9hdG9tLmMsIGRsbHMva2VybmVsL2F0b20xNi5jOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCU1vdmVkIDE2IGJpdCBhdG9tIHN1cHBvcnQgdG8gZGxscy9rZXJuZWwvYXRvbTE2LmMuCisKKwkqIGRsbHMvdHR5ZHJ2L3duZC5jLCBkbGxzL3VzZXIvaG9vay5jLCBkbGxzL3VzZXIvbWVzc2FnZS5jLAorCSAgZGxscy91c2VyL3Rlc3RzL21zZy5jLCBkbGxzL3gxMWRydi93aW5kb3cuYywKKwkgIGluY2x1ZGUvd2luZS9zZXJ2ZXJfcHJvdG9jb2wuaCwgc2VydmVyL2hvb2suYywgc2VydmVyL3Byb3RvY29sLmRlZiwKKwkgIHNlcnZlci9xdWV1ZS5jLCBzZXJ2ZXIvdGhyZWFkLmMsIHNlcnZlci90cmFjZS5jLCBzZXJ2ZXIvdXNlci5oLAorCSAgd2luZG93cy9ub25jbGllbnQuYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUFkZCBzdXBwb3J0IGZvciB3aW5ldmVudCBob29rcy4KKworCSogZGxscy90dHlkcnYvd25kLmMsIGRsbHMveDExZHJ2L3dpbmRvdy5jLCBkbGxzL3gxMWRydi93aW5wb3MuYywKKwkgIGRsbHMveDExZHJ2L3gxMWRydi5oLCBpbmNsdWRlL3dpbmUvc2VydmVyX3Byb3RvY29sLmgsCisJICBzZXJ2ZXIvcHJvdG9jb2wuZGVmLCBzZXJ2ZXIvdHJhY2UuYywgc2VydmVyL3dpbmRvdy5jOgorCVByb3Blcmx5IGNvbXB1dGUgdGhlIGNsaWVudCBhcmVhIHZhbGlkIHJlY3RzIGFuZCBwYXNzIHRoZW0gdG8gdGhlCisJc2VydmVyIGluIHNldF93aW5kb3dfcG9zIHRvIGF2b2lkIGludmFsaWRhdGluZyBhcmVhcyB0aGF0IHJlbWFpbgorCXZhbGlkLgorCisJKiBkbGxzL3NldHVwYXBpL2Rldmluc3QuYywgZGxscy9zZXR1cGFwaS9zZXR1cGFwaV9wcml2YXRlLmgsCisJICBkbGxzL3NldHVwYXBpL3NldHVwY2FiLmM6CisJRXJpYyBLb2hsIDxlcmljLmtvaGxAdC1vbmxpbmUuZGU+CisJLSBJbXBsZW1lbnQgU2V0dXBEaUJ1aWxkQ2xhc3NJbmZvTGlzdEV4QSwKKwkgIFNldHVwRGlDbGFzc0d1aWRzRnJvbU5hbWVFeEEsIFNldHVwRGlDcmVhdGVEZXZpY2VJbmZvTGlzdEV4QSBhbmQKKwkgIFNldHVwRGlPcGVuQ2xhc3NSZWdLZXlFeEEgdXNpbmcgTXVsdGlCeXRlVG9Vbmljb2RlLgorCS0gUmV0cmlldmUgT1MgdmVyc2lvbiB1cG9uIHByb2Nlc3MgYXR0YWNoLgorCisJKiB0b29scy93aWRsL3BhcnNlci5sLCB0b29scy93aWRsL3BhcnNlci55LCB0b29scy93aWRsL3R5cGVsaWIuYywKKwkgIHRvb2xzL3dpZGwvd2lkbHR5cGVzLmgsIHRvb2xzL3dpZGwvd3JpdGVfbXNmdC5jOgorCUh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJQ29jbGFzcyBzdXBwb3J0LgorCisJKiBkbGxzL3NobHdhcGkvcGF0aC5jLCBkbGxzL3NobHdhcGkvc2hsd2FwaS5zcGVjLAorCSAgZGxscy9zaGx3YXBpL3Rlc3RzL3BhdGguYzoKKwlIYW5zIExlaWRla2tlciA8aGFuc0BpdC52dS5ubD4KKwlJbXBsZW1lbnQgYW5kIHRlc3QgUGF0aElzVmFsaWRDaGFye0EsV30uCisKKwkqIHNlcnZlci9uYW1lZF9waXBlLmM6CisJRml4ZWQgcmVmY291bnQgaGFuZGxpbmcgKHdhaXRpbmcgY2xpZW50cyBtdXN0IG5vdCBpbmNyZWFzZSB0aGUKKwlyZWZjb3VudCBvZiB0aGUgcGlwZSkuCisJQ29udmVydGVkIGxpbmtlZCBsaXN0cyB0byB1c2UgdGhlIHN0YW5kYXJkIGZ1bmN0aW9ucy4KKwlTbWFsbCBjbGVhbnVwcy4KKworCSogc2VydmVyL21haW4uYywgc2VydmVyL3JlcXVlc3QuYzoKKwlNYWtlIHN1cmUgbGVha2VkIG9iamVjdHMgYXJlIHByaW50ZWQgZXZlbiBpZiBhIGZpbGUgZGVzY3JpcHRvciBpcworCXN0aWxsIG9wZW4uCisKKwkqIHNlcnZlci9mZC5jOiBGaXhlZCBwb3RlbnRpYWwgY3Jhc2ggaW4gZmRfZHVtcCBmdW5jdGlvbi4KKworCSogZGxscy9rZXJuZWwvc3luYy5jOiBBc3luYyBjYWxsYmFjayBmdW5jdGlvbiBtdXN0IGJlIHN0ZGNhbGwuCisKKwkqIGRsbHMvbXNpL2RpYWxvZy5jLCBkbGxzL21zaS9tc2lxdWVyeS5jOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwktIGltcGxlbWVudCBjaGVja2JveGVzIGluIGRpYWxvZ3MKKwktIHVzZSBUZXh0U3R5bGUgZW51bWVyYXRpb24gaW5zdGVhZCBvZiBudW1iZXJzCisJLSBmaXggTVNJX0l0ZXJhdGVSZWNvcmRzIHRvIHJldHVybiB0aGUgY29ycmVjdCBjb3VudAorCisJKiBkbGxzL21zaS9hcHBzZWFyY2guYzogSnVhbiBMYW5nIDxqdWFuX2xhbmdAeWFob28uY29tPgorCVNpbXBsaWZ5IEFwcFNlYXJjaCBlcnJvciBjaGVja2luZy4KKworCSogcHJvZ3JhbXMvd2luZWNmZy9Fbi5yYzogUGF1bCB2YW4gU2NoYXljayA8cG9sbGVrZUBnbWFpbC5jb20+CisJQ2xlYW4gdXAgYWJvdXQgZGlhbG9nLiBSZW1vdmUgZ3JvdXBib3gsIHBvc2l0aW9uIGxvZ28gY29ycmVjdGx5LgorCisyMDA1LTAyLTAyICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL29sZTMyL21hcnNoYWwuYzogUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCS0gUGFzcyB0aGUgb3JpZ2luYWwgSUlEIHRvIElNYXJzaGFsX1VubWFyc2hhbEludGVyZmFjZSBhbmQgcXVlcnkgZm9yCisJICB0aGUgcmVxdWVzdGVkIGludGVyZmFjZS4KKwktIFVubWFyc2hhbGluZyBJSURfTlVMTCBtZWFucyB1c2UgdGhlIElJRCB0aGUgaW50ZXJmYWNlIHdhcyBvcmlnaW5hbGx5CisJICBtYXJzaGFsZWQgd2l0aC4KKworCSogZGxscy91c2VyL2xpc3Rib3guYywgZGxscy91c2VyL3Rlc3RzL2xpc3Rib3guYzoKKwlMYXVyaSBUdWxtaW4gPGxhdXJpX0B1dC5lZT4KKwlBZGQgdGVzdCBmb3IgTEJfU0VMSVRFTVJBTkdFIGFuZCBtYWtlIGl0IHBhc3MuCisKKwkqIGluY2x1ZGUvbW1zeXN0ZW0uaDogTGF1cmkgVHVsbWluIDxsYXVyaV9AdXQuZWU+CisJQWRkZWQgc29tZSBtb3JlIGRlZmluZXMuCisKKwkqIHRvb2xzL3dpZGwvcGFyc2VyLnksIHRvb2xzL3dpZGwvdHlwZWxpYi5jLCB0b29scy93aWRsL3R5cGVsaWIuaCwKKwkgIHRvb2xzL3dpZGwvd2lkbHR5cGVzLmgsIHRvb2xzL3dpZGwvd3JpdGVfbXNmdC5jOgorCUh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJQWRkIHN1cHBvcnQgZm9yIHR5cGVkZWZzLgorCisJKiBkbGxzL3NldHVwYXBpL21pc2MuYywgZGxscy9zZXR1cGFwaS9zZXR1cGFwaS5zcGVjLAorCSAgaW5jbHVkZS9zZXR1cGFwaS5oOgorCUVyaWMgS29obCA8ZXJpYy5rb2hsQHQtb25saW5lLmRlPgorCS0gSW1wbGVtZW50IERvZXNVc2VySGF2ZVByaXZpbGVnZSwgRW5hYmxlUHJpdmlsZWdlLCBJc1VzZXJBZG1pbiwKKwkgIE11bHRpQnl0ZVRvVW5pY29kZSBhbmQgVW5pY29kZVRvTXVsdGlCeXRlLgorCS0gU29ydCBwcm90b3R5cGVzIGluIHNldHVwYXBpLmggYW5kIGEgZmV3IGZ1bmN0aW9uIGluIHNwZWMuCisKKwkqIGRsbHMvd2luaW5ldC9odHRwLmM6IERhdmlkIE1jQ3VsbG91Z2ggPGRhdmlkbUBzbmFwZ2Vhci5jb20+CisJSFRUUF9IdHRwU2VuZFJlcXVlc3RXIHdhcyBnZXR0aW5nIGludm9rZWQgd2l0aCBhIG51bGwgdmVyYiwgZGVmYXVsdCB0bworCXRoZSBHRVQgbWV0aG9kLgorCisJKiBkbGxzL21zaS9kaWFsb2cuYywgZGxscy9tc2kvbXNpcHJpdi5oLCBkbGxzL21zaS9tc2lxdWVyeS5jLAorCSAgZGxscy9tc2kvcGFja2FnZS5jLCBkbGxzL21zaS9wcmV2aWV3LmM6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUFkZCBtb3JlIGRpYWxvZyBjb250cm9scywgZG8gc29tZXRoaW5nIHdoZW4gdGhleSdyZSBjbGlja2VkIG9uLgorCisJKiBpbmNsdWRlL21zaWRlZnMuaDogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUFkZCB0aGUgbXNpZGJUZXh0U3R5bGVTdHlsZUJpdHMgZW51bWVyYXRpb24uCisKKwkqIGRsbHMvdXNlci90ZXN0cy93aW4uYywgaW5jbHVkZS93aW4uaCwgd2luZG93cy9tZGkuYywgd2luZG93cy93aW4uYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCVVzZSB0aGUgaWRGaXJzdENoaWxkIHNwZWNpZmllZCBpbiB0aGUgTURJQ2xpZW50J3MgQ0xJRU5UQ1JFQVRFU1RSVUNUCisJd2hlbiBjcmVhdGluZyBNREkgY2hpbGRyZW4uIEFkZCBhIHRlc3QgY2FzZSBmb3IgdGhlIGRlc2lyZWQKKwliZWhhdmlvdXIuCisKKwkqIGRsbHMvZG1zY3JpcHQvZG1zY3JpcHRfbWFpbi5jLCBkbGxzL2Rtc2NyaXB0L2Rtc2NyaXB0X3ByaXZhdGUuaCwKKwkgIGRsbHMvZG1zY3JpcHQvc2NyaXB0LmMsIGRsbHMvZG1zY3JpcHQvc2NyaXB0dHJhY2suYzoKKwlKYW1lcyBIYXdraW5zIDx0cnVpa2VuQGdtYWlsLmNvbT4KKwlQcm9wZXJseSBpbXBsZW1lbnQgRGxsQ2FuVW5sb2FkIHJlZiBjb3VudGluZy4KKworCSogZGxscy9kbWltZS9hdWRpb3BhdGguYywgZGxscy9kbWltZS9kbWltZV9tYWluLmMsCisJICBkbGxzL2RtaW1lL2RtaW1lX3ByaXZhdGUuaCwgZGxscy9kbWltZS9ncmFwaC5jLAorCSAgZGxscy9kbWltZS9seXJpY3N0cmFjay5jLCBkbGxzL2RtaW1lL21hcmtlcnRyYWNrLmMsCisJICBkbGxzL2RtaW1lL3BhcmFtY29udHJvbHRyYWNrLmMsIGRsbHMvZG1pbWUvcGF0dGVybnRyYWNrLmMsCisJICBkbGxzL2RtaW1lL3BlcmZvcm1hbmNlLmMsIGRsbHMvZG1pbWUvc2VnbWVudC5jLAorCSAgZGxscy9kbWltZS9zZWdtZW50c3RhdGUuYywgZGxscy9kbWltZS9zZWd0cmlnZ2VydHJhY2suYywKKwkgIGRsbHMvZG1pbWUvc2VxdHJhY2suYywgZGxscy9kbWltZS9zeXNleHRyYWNrLmMsCisJICBkbGxzL2RtaW1lL3RlbXBvdHJhY2suYywgZGxscy9kbWltZS90aW1lc2lndHJhY2suYywKKwkgIGRsbHMvZG1pbWUvdG9vbC5jLCBkbGxzL2RtaW1lL3dhdmV0cmFjay5jOgorCUphbWVzIEhhd2tpbnMgPHRydWlrZW5AZ21haWwuY29tPgorCVByb3Blcmx5IGltcGxlbWVudCBEbGxDYW5VbmxvYWROb3cgcmVmIGNvdW50aW5nLgorCisJKiBkbGxzL21zaS9mb3JtYXQuYzogQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlDbGVhbnVwIHByb2Nlc3NpbmcgYSBiaXQgbW9yZS4KKwlBbGxvdyBmb3IgbmVzdGVkIGtleXMgdG8gd29yayBwcm9wZXJseS4KKworCSogZGxscy9tc2kvYXBwc2VhcmNoLmM6IEFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJRml4IGEgY29weSBhbmQgcGFzdGUgZXJyb3IsIGNoZWNrIGZvciBhIG51bGwgdmFsdWUgYW5kIGRpc2NhcmQKKwl1bm5lZWRlZCBlcnJvcnMuCisKKwkqIGRsbHMvbXNpL2NvbmQueTogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCU1zaUV2YWx1YXRlQ29uZGl0aW9uIHJldHVybnMgYW4gZXJyb3Igd2hlbiBwYXNzZWQgTlVMTCBhcyBhCisJY29uZGl0aW9uLgorCisJKiBkbGxzL21zaS9hY3Rpb24uYzogQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaW5pc2ggdXAgdGhlIGZyYW1ld29yayBieSBzdHViYmluZyBvdXQgYWxsIHRoZSByZW1haW5pbmcgU3RhbmRhcmQKKwlhY3Rpb25zLgorCUEgZml4IHRvIGRlZm9ybWF0X3N0cmluZyBzbyBpdCBvbmx5IHJldHVybnMgYSBudWxsIHJldHVybiBpZiB5b3UKKwlwcm92aWRlZCBhIG51bGwgYnVmZmVyLgorCisyMDA1LTAyLTAxICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL3VzZXIvdXNlcjMyLnNwZWMsIGluY2x1ZGUvd2luLmgsIHdpbmRvd3Mvd2luLmM6CisJUmVtb3ZlZCB0aGUgbm8gbG9uZ2VyIHVzZWQgV0lOX1NldEV4U3R5bGUgZnVuY3Rpb24uCisKKwkqIGRsbHMvY29tY3RsMzIvc3RhdHVzLmMsIGRsbHMvdXNlci9mb2N1cy5jLCBkbGxzL3VzZXIvbWVudS5jLAorCSAgZGxscy94MTFkcnYvd2luZG93LmMsIGRsbHMveDExZHJ2L3dpbnBvcy5jLCBkbGxzL3gxMWRydi94MTFkcnYuaCwKKwkgIGluY2x1ZGUvd2ludXNlci5oLCB3aW5kb3dzL3dpbnBvcy5jOgorCVN0b3JlIHRoZSAibWFuYWdlZCIgZmxhZyBhcyBhIHdpbmRvdyBwcm9wZXJ0eSBpbnN0ZWFkIG9mIHRoZQorCVdpbmUtc3BlY2lmaWMgV1NfRVhfTUFOQUdFRCBzdHlsZSBiaXQuCisKKwkqIGRsbHMvd2luaW5ldC9mdHAuYywgZGxscy93aW5pbmV0L2h0dHAuYywgZGxscy93aW5pbmV0L2ludGVybmV0LmMsCisJICBkbGxzL3dpbmluZXQvdXJsY2FjaGUuYywgZGxscy93aW5pbmV0L3dpbmluZXQuc3BlYywKKwkgIGluY2x1ZGUvd2luaW5ldC5oOgorCUhhbnMgTGVpZGVra2VyIDxoYW5zQGl0LnZ1Lm5sPgorCS0gU3R1YiBpbXBsZW1lbnRhdGlvbnMgZm9yIEZ0cEdldEZpbGVTaXplLCBGdHBDb21tYW5ke0EsV30sCisJICBIdHRwU2VuZFJlcXVlc3RFeFcsIEludGVybmV0R2V0TGFzdFJlc3BvbnNlSW5mb1csCisJICBJbnRlcm5ldENvbmZpcm1ab25lQ3Jvc3Npbmd7QSxXfSwgSW50ZXJuZXREaWFse0EsV30sCisJICBJbnRlcm5ldEdvT25saW5le0EsV30sIEludGVybmV0SGFuZ1VwLCBDcmVhdGVNRDVTU09IYXNoLAorCSAgSW50ZXJuZXRDbGVhckFsbFBlclNpdGVDb29raWVEZWNpc2lvbnMsCisJICBJbnRlcm5ldEVudW1QZXJTaXRlQ29va2llRGVjaXNpb257QSxXfSwgSW50ZXJuZXRHZXRDb29raWVFeHtBLFd9LAorCSAgSW50ZXJuZXRHZXRQZXJTaXRlQ29va2llRGVjaXNpb257QSxXfSwKKwkgIEludGVybmV0U2V0UGVyU2l0ZUNvb2tpZURlY2lzaW9ue0EsV30sIEludGVybmV0U2V0Q29va2llRXh7QSxXfSwKKwkgIFJlc3VtZVN1c3BlbmRlZERvd25sb2FkLCBSZXRyaWV2ZVVybENhY2hlRW50cnlGaWxlVywKKwkgIFVubG9ja1VybENhY2hlRW50cnlGaWxlVywge0NyZWF0ZSxEZWxldGV9VXJsQ2FjaGVFbnRyeVcsCisJICBDb21taXRVcmxDYWNoZUVudHJ5VywgUmV0cmlldmVVcmxDYWNoZUVudHJ5U3RyZWFtVywKKwkgIEZpbmRDbG9zZVVybENhY2hlLCBGaW5kRmlyc3RVcmxDYWNoZUVudHJ5RXh7QSxXfSwKKwkgIEZpbmRGaXJzdFVybENhY2hlR3JvdXAsIEZpbmROZXh0VXJsQ2FjaGVFbnRyeXssRXh9e0EsV30sCisJICBGaW5kTmV4dFVybENhY2hlR3JvdXAsIFNldFVybENhY2hlRW50cnlHcm91cHtBLFd9LAorCSAge0dldCxTZXR9VXJsQ2FjaGVHcm91cEF0dHJpYnV0ZXtBLFd9LCBTZXRVcmxDYWNoZUNvbmZpZ0luZm97QSxXfS4KKwktIFNwZWMgZmlsZSBzdHVicyBmb3IgbmV3IHVuZG9jdW1lbnRlZCBmdW5jdGlvbnMKKwkgIEZvcmNlTmV4dXNMb29rdXB7LEV4V30sIEZ0cHtHZXQsUHV0fUZpbGVFeCwgSHR0cENoZWNrRGF2Q29tcGxpYW5jZSwKKwkgIEludGVybmV0QWxnSWRUb1N0cmluZ3tBLFd9LCBJbnRlcm5ldEZvcnRlenphQ29tbWFuZCwKKwkgIEludGVybmV0R2V0Q2VydEJ5VVJMQSwgSW50ZXJuZXRRdWVyeUZvcnRlenphU3RhdHVzLAorCSAgSW50ZXJuZXRTZWN1cml0eVByb3RvY29sVG9TdHJpbmd7QSxXfSwgSW50ZXJuZXRTZXREaWFsU3RhdGV7QSxXfSwKKwkgIEludGVybmV0U2hvd1NlY3VyaXR5SW5mb0J5VVJMe0EsV30sIElzVXJsQ2FjaGVFbnRyeUV4cGlyZWR7QSxXfSwKKwkgIFByaXZhY3l7R2V0LFNldH1ab25lUHJlZmVyZW5jZVcsIFJlZ2lzdGVyVXJsQ2FjaGVOb3RpZmljYXRpb24sCisJICBVcmxab25lc0RldGFjaC4KKwktIFVzZSBtZW1jcHkgaW5zdGVhZCBvZiBzdHJuY3B5IGluIEludGVybmV0R2V0TGFzdFJlc3BvbnNlSW5mb0EuCisJLSBBZGQgYW5kIGltcHJvdmUgc29tZSB0cmFjZXMuCisJLSBGaXggbXkgb3duIGNvZGluZyBzdHlsZSBpbiBJbnRlcm5ldFRpbWVUb1N5c3RlbVRpbWVXLgorCS0gRml4IGEgY291cGxlIG9mIHNpZ25lZG5lc3Mgd2FybmluZ3MuCisKKwkqIHRvb2xzL3dpZGwvcGFyc2VyLmwsIHRvb2xzL3dpZGwvcGFyc2VyLnksCisJICB0b29scy93aWRsL3R5cGVsaWJfc3RydWN0LmgsIHRvb2xzL3dpZGwvd2lkbHR5cGVzLmgsCisJICB0b29scy93aWRsL3dyaXRlX21zZnQuYzoKKwlIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUFkZCBzdXBwb3J0IGZvciBkaXNwaW50ZXJmYWNlcyAoc2xpZ2h0bHkgaGFja2VkIGJlY2F1c2Ugd2UgZm9yY2UgdGhlCisJaW1wb3J0IG9mIHN0ZG9sZTIudGxiKS4KKwlBZGQgcHJvcHB1dHJlZiBhdHRyaWJ1dGUuCisKKwkqIGRsbHMvdXNlci9kZGUvY2xpZW50LmMsIGRsbHMvdXNlci9kZGUvZGRlX3ByaXZhdGUuaCwKKwkgIGRsbHMvdXNlci9kZGUvbWlzYy5jLCBkbGxzL3VzZXIvZGRlL3NlcnZlci5jOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJSGFuZGxlIENCUl9CTE9DSyBpbiBFWEVDVVRFIGFuZCBBRFZJU0UgRERFIHRyYW5zYWN0aW9ucy4KKworCSogZGxscy9kc291bmQvZHNvdW5kLmM6IFJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJRml4IHByaW1hcnkgYnVmZmVyIG1lbW9yeSBsZWFrLgorCisJKiBkbGxzL3VzZXIvc3lzcGFyYW1zLmM6IEp1c3RpbiBDaGV2cmllciA8amNoZXZyaWVyQG5leGljb20ubmV0PgorCS0gU1BJX0dFVFdPUktBUkVBOiBSZWFkIHdvcmsgYXJlYSBpbmZvcm1hdGlvbiBmcm9tIHN5c3RlbSBtZXRyaWNzCisJICBpbml0aWFsbHkgb25seSBhbmQgbm90IGZyb20gYSBXSU5FIHNwZWNpZmljIHJlZ2lzdHJ5IGVudHJ5LgorCS0gU1BJX1NFVFdPUktBUkVBOiBEb24ndCBzYXZlIHdvcmsgYXJlYSBpbmZvcm1hdGlvbiB0byByZWdpc3RyeS4KKworCSogZGxscy9tc2kvYWN0aW9uLmMsIGRsbHMvbXNpL2FjdGlvbi5oLCBkbGxzL21zaS9jdXN0b20uYzoKKwlBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCUNvbnRpbnVlZCB3b3JrIHRvIHNpbXBsaWZ5IHRoZSBQcm9jZXNzQWN0aW9uIGNhbGwsIGFsc28gc3BsaXQgaXQgaW50bworCWEgUHJvY2Vzc0FjdGlvbiBhbmQgUHJvY2Vzc1VJQWN0aW9uIGZvciBmdXR1cmUgZGlhbG9nIGJveCB3b3JrLgorCUFsc28gZml4IGEgYnVnIGluIGRlZm9ybWF0X3N0cmluZyB3aGVyZSBpIHdhcyBub3QgZnJlZWluZyB0aGUgY3JlYXRlZAorCXJlY29yZC4KKworCSogTWFrZS5ydWxlcy5pbjogRG9uJ3QgY2xlYW4gYWxsIHRsYiBmaWxlcywgb25seSB0aGUgb25lcyB3ZSBnZW5lcmF0ZWQuCisKKwkqIGRsbHMvZHhkaWFnbi9jb250YWluZXIuYywgZGxscy9keGRpYWduL2R4ZGlhZ19tYWluLmMsCisJICBkbGxzL2R4ZGlhZ24vZHhkaWFnX3ByaXZhdGUuaCwgZGxscy9keGRpYWduL3Byb3ZpZGVyLmM6CisJSmFtZXMgSGF3a2lucyA8dHJ1aWtlbkBnbWFpbC5jb20+CisJUHJvcGVybHkgaW1wbGVtZW50IERsbENhblVubG9hZE5vdyByZWYgY291bnRpbmcuCisKKwkqIGRsbHMvbXNpL01ha2VmaWxlLmluLCBkbGxzL21zaS9hY3Rpb24uYywgZGxscy9tc2kvYWN0aW9uLmgsCisJICBkbGxzL21zaS9hcHBzZWFyY2guYzoKKwlKdWFuIExhbmcgPGp1YW5fbGFuZ0B5YWhvby5jb20+CisJUGFydGlhbGx5IGltcGxlbWVudCBBcHBTZWFyY2ggYWN0aW9uLgorCisJKiBkbGxzL3F1YXJ0ei9NYWtlZmlsZS5pbiwgZGxscy9xdWFydHovYWNtd3JhcHBlci5jLAorCSAgZGxscy9xdWFydHovYXZpZGVjLmMsIGRsbHMvcXVhcnR6L21haW4uYywKKwkgIGRsbHMvcXVhcnR6L3F1YXJ0el9wcml2YXRlLmgsIGRsbHMvcXVhcnR6L3JlZ3N2ci5jOgorCUNocmlzdGlhbiBDb3N0YSA8dGl0YW4uY29zdGFAd2FuYWRvby5mcj4KKwlBZGRlZCBBQ00gV3JhcHBlciBmaWx0ZXIuCisJQ2xlYW5lZCB1cCBBVklEZWMuCisKKwkqIGRsbHMvZHN3YXZlL2Rzd2F2ZS5jLCBkbGxzL2Rzd2F2ZS9kc3dhdmVfbWFpbi5jLAorCSAgZGxscy9kc3dhdmUvZHN3YXZlX3ByaXZhdGUuaDoKKwlKYW1lcyBIYXdraW5zIDx0cnVpa2VuQGdtYWlsLmNvbT4KKwlQcm9wZXJseSBpbXBsZW1lbnQgRGxsQ2FuVW5sb2FkTm93IHJlZiBjb3VudGluZy4KKworCSogZG9jdW1lbnRhdGlvbi9mb250cy5zZ21sOiBUb20gV2lja2xpbmUgPHR3aWNrbGluZUBzaXRlc3Rhci5uZXQ+CisJRml4IGEgYnJva2VuIGxpbmsuCisKKwkqIGRsbHMvbXNpL21zaS5zcGVjLCBkbGxzL21zaS9zdW1pbmZvLmMsIGluY2x1ZGUvbXNpLmg6CisJQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGRlZCBzb21lIG1vcmUgc3VtaW5mbyBzdHVicy4KKworCSogZGxscy9vbGUzMi9jb21wb2JqLmMsIGRsbHMvb2xlMzIvbWFyc2hhbC5jLCBkbGxzL29sZTMyL29sZTMyX21haW4uaCwKKwkgIGRsbHMvb2xlMzIvdGVzdHMvbWFyc2hhbC5jOgorCVJvYmVydCBTaGVhcm1hbiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KKwktIEFkZCBjb2RlIGZvciBkZXN0cm95aW5nIHRoZSB0aHJlYWQtbG9jYWwgc3RvcmFnZSBkYXRhLCBidXQgZG9uJ3QgdXNlCisJICBpdCB5ZXQuCisJLSBEb24ndCByZWxlYXNlIGFwYXJ0bWVudCBvbiBjaGFuZ2luZyBtb2RlcyBiZWNhdXNlIHdlIGRpZG4ndCBhZGQgYQorCSAgcmVmZXJlbmNlIGFueXdoZXJlLgorCS0gUXVpZXRlbiB0aGUgUlBDX0VfRElTQ09OTkVDVEVEIGVycm9yIG1lc3NhZ2UgYXMgaXQgaXMgYW4gZXhwZWN0ZWQKKwkgIHJldHVybiBjb2RlLgorCS0gVHJlYXQgSUlEX05VTEwgdGhlIHNhbWUgYXMgSUlEX0lVbmtub3duLgorCS0gTWFrZSB0ZXN0cyBjb21waWxlIG9uIFdpbjk1IGFnYWluLgorCS0gRml4IGNvcHkrcGFzdGUgZXJyb3Igd2hlcmUgdGhlIHRlc3QgZmFpbHVyZSBzaG91bGQgYmUgZnJvbSB0aGUKKwkgIENvVW5tYXJzaGFsSW50ZXJmYWNlIGZ1bmN0aW9uLgorCisyMDA1LTAxLTMxICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL21zaS9mb3JtYXQuYzogQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBIHJld29ya2luZyBvZiBmb3JtYXQuYyB0byByZW1vdmUgdGhlIHJlY3Vyc2lvbiwgY2xlYW4gdGhpbmdzIHVwIGFuZAorCXN0YWJpbGl6ZSBiZWhhdmlvciB0byBtYXRjaCB3aW5kb3dzLgorCisJKiBkbGxzL2RtYmFuZC9iYW5kLmMsIGRsbHMvZG1iYW5kL2JhbmR0cmFjay5jLAorCSAgZGxscy9kbWJhbmQvZG1iYW5kX21haW4uYywgZGxscy9kbWJhbmQvZG1iYW5kX3ByaXZhdGUuaCwKKwkgIGRsbHMvZG1zeW50aC9kbXN5bnRoX21haW4uYywgZGxscy9kbXN5bnRoL2Rtc3ludGhfcHJpdmF0ZS5oLAorCSAgZGxscy9kbXN5bnRoL3N5bnRoLmMsIGRsbHMvZG1zeW50aC9zeW50aHNpbmsuYzoKKwlKYW1lcyBIYXdraW5zIDx0cnVpa2VuQGdtYWlsLmNvbT4KKwlQcm9wZXJseSBpbXBsZW1lbnQgRGxsQ2FuVW5sb2FkTm93IHJlZiBjb3VudGluZy4KKworCSogZGxscy91c2VyL3VzZXIzMi5zcGVjLCBpbmNsdWRlL3dpbi5oLCB3aW5kb3dzL3dpbi5jOgorCVdJTl9MaXN0UGFyZW50cyBubyBsb25nZXIgbmVlZHMgdG8gYmUgZXhwb3J0ZWQsIG1ha2UgaXQgc3RhdGljLgorCisJKiBkbGxzL2QzZDgvZGlyZWN0eC5jLCBkbGxzL3dpbmVkM2QvZGlyZWN0eC5jLCBkbGxzL3gxMWRydi9tb3VzZS5jLAorCSAgZGxscy94MTFkcnYvd2luZG93LmMsIGRsbHMveDExZHJ2L3dpbnBvcy5jLCBkbGxzL3gxMWRydi94MTFkcnYuaDoKKwlPbmx5IGNyZWF0ZSBhbiBYIHdpbmRvdyBmb3IgdG9wLWxldmVsIHdpbmRvd3MsIG5vdCBmb3IgY2hpbGQgd2luZG93cy4KKwlHZXQgcmlkIG9mIHRoZSBYIGNsaWVudCB3aW5kb3cgdG9vLCBpdCdzIG5vIGxvbmdlciBuZWVkZWQuCisKKwkqIGRsbHMvZGJnaGVscC9lbGZfbW9kdWxlLmM6IFNpbGVuY2UgYSBub2lzeSBGSVhNRS4KKworCSogdG9vbHMvd2lkbC93cml0ZV9tc2Z0LmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJRHluYW1pY2FsbHkgYWxsb2NhdGUgdGhlIHR5cGUgZGF0YSBzdG9yYWdlLgorCVNwbGl0IHRoZSBmdW5jdGlvbiBhbmQgdmFyaWFibGUgdHlwZSBkYXRhIGludG8gdHdvIC0gdGhpcyB3aWxsIGJlCisJbmVlZGVkIGZvciBkaXNwaW50ZXJmYWNlcy4KKworCSogZGxscy9xdWFydHovTWFrZWZpbGUuaW4sIGRsbHMvcXVhcnR6L2F2aWRlYy5jLCBkbGxzL3F1YXJ0ei9yZWdzdnIuYywKKwkgIGRsbHMvcXVhcnR6L3RyYW5zZm9ybS5jLCBkbGxzL3F1YXJ0ei90cmFuc2Zvcm0uaDoKKwlDaHJpc3RpYW4gQ29zdGEgPHRpdGFuLmNvc3RhQHdhbmFkb28uZnI+CisJQWRkZWQgdHJhbnNmb3JtIGZpbHRlciB0ZW1wbGF0ZSBhbmQgbWFkZSBBVklEZWMgdXNlIGl0LgorCUZpeGVkIG1lbW9yeSBsZWFrIGluIHJlZ2lzdGVyX2ZpbHRlcnMgZnVuY3Rpb24uCisKKwkqIGRsbHMva2VybmVsL2NoYW5nZS5jLCBkbGxzL2tlcm5lbC9rZXJuZWwzMi5zcGVjOgorCUhhbnMgTGVpZGVra2VyIDxoYW5zQGl0LnZ1Lm5sPgorCVN0dWIgaW1wbGVtZW50YXRpb24gZm9yIFJlYWREaXJlY3RvcnlDaGFuZ2VzVy4KKworCSogZGxscy9tc2kvYWN0aW9uLmM6IEFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJRWxpbWluYXRlIHRoZSBnaWFudCBpZi4uIGVsc2UgaWYgYmxvY2sgZnJvbSBBQ1RJT05fUHJvY2Vzc0FjdGlvbiBpbgorCWZhdm9yIG9mIGEgdGFibGUgb2YgaGFuZGxlcnMuCisJUmV0dXJuIGNvZGUgb2YgdGhlIGluc3RhbGwgc2hvdWxkIG5vdCBkZXBlbmQgb24gdGhlIHJldHVybiBjb2RlIG9mIHRoZQorCWZpbmFsIGFjdGlvbi4KKwlVcGRhdGUgY29tcG9uZW50IGluc3RhbGxlZCBzdGF0ZXMgYXMgdGhleSBhcmUgaW5zdGFsbGVkIHNvIHRoYXQKKwljb25kaXRpb25zIGJhc2VkIG9uIGNvbXBvbmVudCBzdGF0ZXMgYXJlIGF0IGxlYXN0IGEgbGl0dGxlIG1vcmUKKwljb3JyZWN0LgorCUFkZCBpY29uIGFuZCBhcmd1bWVudCB3aGVuIHJlZ2VzdGVyaW5nIGNsc2lkcy4KKwlBZGQgYSBzdHViIGZvciBSZXNvbHZlU291cmNlIGJlY2F1c2Ugd2UgZG8gdGhhdCB3b3JrIGp1c3Qgbm90IGluCisJUmVzb2x2ZVNvdXJjZSBsaWtlIHdlIHNob3VsZC4KKwlXaGVuIHF1ZXJpbmcgYSBDb21wb25lbnQgc3RhdGUgcmV0dXJuIHRoZSBjb3JyZWN0IHN0YXRlLgorCisJKiBwcm9ncmFtcy93aW5lZGJnL2luZm8uYzogTWlrZSBIZWFybiA8bWhAY29kZXdlYXZlcnMuY29tPgorCVNob3cgd2luZG93IG93bmVyIHRocmVhZCBpbiB3aW5lZGJnLgorCisJKiBkbGxzL2RiZ2hlbHAvc3ltYm9sLmMsIGluY2x1ZGUvZGJnaGVscC5oLCBwcm9ncmFtcy93aW5lZGJnL2JyZWFrLmMsCisJICBwcm9ncmFtcy93aW5lZGJnL2RiZy55LCBwcm9ncmFtcy93aW5lZGJnL2RlYnVnLmwsCisJICBwcm9ncmFtcy93aW5lZGJnL21lbW9yeS5jLCBwcm9ncmFtcy93aW5lZGJnL3NvdXJjZS5jLAorCSAgcHJvZ3JhbXMvd2luZWRiZy9zdGFjay5jLCBwcm9ncmFtcy93aW5lZGJnL3N5bWJvbC5jLAorCSAgcHJvZ3JhbXMvd2luZWRiZy90eXBlcy5jOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCUNsZWFudXAgb2YgZGJnaGVscC5oIChhbmQgYSBjb3VwbGUgb2YgZGVmaW5pdGlvbiBmaXhlcykuIFRoZQorCWRpc3BsYWNlbWVudHMgKGluIG1vc3Qgb2YgdGhlIGZ1bmN0aW9ucykgYXJlIG5vdCBvcHRpb25hbC4KKworCSogZGxscy9vbGVhdXQzMi9vbGVmb250LmMsIGRsbHMvb2xlYXV0MzIvdHlwZWxpYi5jOgorCVZpbmNlbnQgQulyb24gPHZiZXJvbkBtZWNhbm8uZ21lLnVzaGVyYi5jYT4KKwlSZW1vdmUgbWVzc2FnZSB0ZWxsaW5nIHVzZXJzIHRvIGNvcHkgbmF0aXZlIHN0ZG9sZTMyLnRsYiBvdmVyIGFzIHdlCisJbm93IHByb3ZpZGUgaXQuCisJQmV0dGVyIHRyYWNlIGluIExvYWRUeXBlTGliLgorCUNoYW5nZSBkZWJ1ZyBtZXNzYWdlcyB0eXBlIHRvIHJlZmxlY3Qgd2UgcHJvdmlkZSBzdGRvbGUzMi50bGIuCisKKwkqIGluY2x1ZGUvTWFrZWZpbGUuaW4sIGluY2x1ZGUvbXNpZGVmcy5oOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgdGhlIG1zaWRlZnMuaCBoZWFkZXIuCisKKwkqIGRvY3VtZW50YXRpb24vZmFxLnNnbWwsIGRvY3VtZW50YXRpb24vaW50cm9kdWN0aW9uLnNnbWw6CisJVG9tIFdpY2tsaW5lIDx0d2lja2xpbmVAc2l0ZXN0YXIubmV0PgorCVJlbW92ZSBvdXRkYXRlZCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBpbnRyb2R1Y3Rpb24gcGFnZSBhbmQgdGhlIEZBUS4KKworCSogaW5jbHVkZS9keGRpYWcuaDogVHJveSBSb2xsbyA8d2luZUB0cm95LnJvbGxvLm5hbWU+CisJQ29ycmVjdCBlcnJvcnMgaW4gdGhlIG1hY3JvcyBmb3IgdHdvIER4RGlhZyBtZXRob2QgY2FsbHMuCisKKwkqIGRsbHMvb3BlbmdsMzIvd2dsX2V4dC5jOiBUcm95IFJvbGxvIDx3aW5lQHRyb3kucm9sbG8ubmFtZT4KKwlBZGQgc3R1YnMgZm9yIHdnbFN3YXBJbnRlcnZhbEVYVCAmIHdnbEdldFN3YXBJbnRlcnZhbEVYVC4KKworCSogZGxscy9vbGVhdXQzMi9zYWZlYXJyYXkuYywgZGxscy9vbGVhdXQzMi90ZXN0cy9zYWZlYXJyYXkuYzoKKwlSZWluIEtsYXplcyA8d2lqbkB3YW5hZG9vLm5sPgorCVNhZmVBcnJheURlc3Ryb3koKSByZXR1cm5zIHN1Y2Nlc3Mgd2hlbiBjYWxsZWQgd2l0aCBhIE5VTEwKKwlwb2ludGVyLiBBZGRlZCB0byB0aGUgdGVzdCBjYXNlcy4KKworCSogZGxscy9tc2kvcmVjb3JkLmMsIGRsbHMvbXNpL3Rlc3RzL3JlY29yZC5jOgorCUFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJU2V0dGluZyBhIHJlY29yZCB0byBhbiBlbXB0eSBzdHJpbmcgaXMgdGhlIHNhbWUgYXMgbWFraW5nIGl0IG51bGwuCisKKwkqIHdpbmRvd3MvZGNlLmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJUmVwbGFjZSBhIERQUklOVEYgd2l0aCBUUkFDRS4KKworCSogdG9vbHMvd2lkbC93cml0ZV9tc2Z0LmM6IFZpbmNlbnQgQulyb24gPHZiZXJvbkBtZWNhbm8uZ21lLnVzaGVyYi5jYT4KKwlDaGVjayB0aGF0IHRoZXJlIGFyZSBzb21lIG1ldGhvZHMgdG8gaXRlcmF0ZSB0aHJvdWdoIGJlZm9yZSBpdGVyYXRpbmcKKwl0aHJvdWdoIHRoZW0uCisKKwkqIGRsbHMvc2hsd2FwaS90ZXN0cy9zaHJlZy5jOiBQYXVsIFZyaWVucyA8UGF1bC5WcmllbnNAeHM0YWxsLm5sPgorCS0gbmV3IHRlc3QKKwktIGNoYW5nZWQgdGVzdCB0byByZWZsZWN0IHdpbmRvd3MgcmVzdWx0cworCisJKiBkbGxzL29sZTMyL3Rlc3RzL21hcnNoYWwuYzogUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCVJlbW92ZSB0ZXN0IHRoYXQgZmFpbHMgb24gV2luOTggYW5kIGlzIG5vdCB1c2VmdWwuCisKKwkqIGRsbHMvZGJnaGVscC9zdGFicy5jOiBFcmljIFBvdWVjaCA8cG91ZWNoLWVyaWNAd2FuYWRvby5mcj4KKwlWYXJpb3VzIGZpeGVzIGZvciBDKysgY2xhc3MgcGFyc2luZyAobmVzdGluZywgdGVtcGxhdGVzKSAoZnJvbSB0ZXN0CisJY2FzZXMgcHJvdmlkZWQgYnkgTWljaGFlbCBMaW4pLgorCisJKiBkbGxzL3JzYWVuaC9yc2FlbmguYywgZGxscy9yc2FlbmgvdGVzdHMvcnNhZW5oLmM6CisJTWljaGFlbCBKdW5nIDxtanVuZ0Bpc3MudHUtZGFybXN0YWR0LmRlPgorCU1vdmVkIFBLQ1MxICMyIHVuLS9wYWRkaW5nIGZyb20gSW1wb3J0LS9FeHBvcnRLZXkgdG8gaGVscGVyCisJZnVuY3Rpb25zLgorCVN1cHBvcnQgUlNBIGVuLS9kZWNyeXB0aW9uIHZpYSBDUEVuY3J5cHQgYW5kIENQRGVjcnlwdC4KKwlBZGRlZCB0ZXN0IGNhc2UgZm9yIFJTQSBlbi0vZGVjcnlwdGlvbi4KKworMjAwNS0wMS0yOCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy94MTFkcnYvZGVza3RvcC5jLCBkbGxzL3gxMWRydi9ldmVudC5jLCBkbGxzL3gxMWRydi93aW5kb3cuYywKKwkgIGRsbHMveDExZHJ2L3dpbnBvcy5jLCBkbGxzL3gxMWRydi94MTFkcnYuaCwgaW5jbHVkZS93aW4uaDoKKwlVc2UgYW4gWCBjb250ZXh0IHRvIGFzc29jaWF0ZWQgdGhlIHgxMWRydiBwcml2YXRlIHdpbmRvdyBkYXRhIHRvIGEKKwl3aW5kb3cgaGFuZGxlIGluc3RlYWQgb2YgYWNjZXNzaW5nIHRoZSBXTkQgc3RydWN0dXJlIGRpcmVjdGx5LgorCisJKiBkbGxzL3VzZXIvcGFpbnRpbmcuYzoKKwlGaXhlZCBidWcgdGhhdCBjYXVzZWQgdGhlIHdob2xlIHdpbmRvdyB0byBiZSByZXBhaW50ZWQgYnkgUmVkcmF3V2luZG93CisJd2hlbiB0aGUgcGFzc2VkIHJlZ2lvbiB3YXMgZW1wdHkuCisKKwkqIGRsbHMvZHNvdW5kL2NhcHR1cmUuYywgZGxscy9kc291bmQvZHNvdW5kX21haW4uYywKKwkgIGRsbHMvZHNvdW5kL3Byb3BzZXQuYywgZGxscy93aW5tbS93aW5lYWxzYS9hdWRpby5jLAorCSAgZGxscy93aW5tbS93aW5lYXJ0cy9hdWRpby5jLCBkbGxzL3dpbm1tL3dpbmVhdWRpb2lvL2F1ZGlvLmMsCisJICBkbGxzL3dpbm1tL3dpbmVqYWNrL2F1ZGlvLmMsIGRsbHMvd2lubW0vd2luZW5hcy9hdWRpby5jLAorCSAgZGxscy93aW5tbS93aW5lb3NzL2F1ZGlvLmMsIGluY2x1ZGUvZHNkcml2ZXIuaDoKKwlSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUZpeCBzdHJ1Y3R1cmUgbWVtYmVyIG5hbWUgdG8gbWF0Y2ggd2luZG93cyBoZWFkZXJzIGFuZCBmaXggdXAgYWxsCisJdXNlcy4KKwlOYW1lbGVzcyBzdHJ1Y3QgZml4IGZvciBkc291bmQvcHJvcHNldC5jIHRvIGNvbXBpbGUgb24gYm90aCB3aW5kb3dzCisJYW5kIHdpbmUuCisKKwkqIGRsbHMvb2xlMzIvY29tcG9iai5jOiBSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJUmVsZWFzZSB0aGUgY2xpZW50IHNlY3VyaXR5IG9iamVjdHMgd2hlbiBubyBsb25nZXIgbmVlZGVkIChyZXBvcnRlZCBieQorCU1pa2UgTWNDb3JtYWNrKS4KKworCSogZGxscy9jb21jdGwzMi90b29sYmFyLmM6CisJVGhvbWFzIFdlaWRlbm11ZWxsZXIgPHdpbmUtcGF0Y2hlc0ByZWFjdHNvZnQuY29tPgorCVdoZW4gYSB0b29sYmFyIGRvZXNuJ3QgaGF2ZSB0aGUgVEJTVFlMRV9GTEFUIHN0eWxlIHJlZHJhd2luZyB0aGUKKwlidXR0b25zIHdoZW4gbW92aW5nIHRoZSBtb3VzZSBpcyBub3QgbmVjZXNzYXJ5LgorCisJKiBNYWtlLnJ1bGVzLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGxscy9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvc3Rkb2xlMzIudGxiLy5jdnNpZ25vcmUsIGRsbHMvc3Rkb2xlMzIudGxiL01ha2VmaWxlLmluLAorCSAgZGxscy9zdGRvbGUzMi50bGIvcnNyYy5yYywgZGxscy9zdGRvbGUzMi50bGIvc3RkX29sZV92MS5pZGwsCisJICBkbGxzL3N0ZG9sZTMyLnRsYi9zdGRvbGUzMi50bGIuc3BlYzoKKwlIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUFkZGVkIHN0ZG9sZTMyLnRsYi4KKworCSogZGxscy9kM2Q5L2QzZDlfcHJpdmF0ZS5oLCBkbGxzL2QzZDkvZGV2aWNlLmMsIGRsbHMvZDNkOS9kaXJlY3R4LmMsCisJICBkbGxzL2QzZDkvcXVlcnkuYywgZGxscy9kM2Q5L3RleHR1cmUuYywKKwkgIGRsbHMvZDNkOS92ZXJ0ZXhkZWNsYXJhdGlvbi5jOgorCVJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCS0gYWRkIHZlcnRleCBEZWNsYXJhdGlvbiBzdXBwb3J0ICh1c2luZyB3aW5lZDNkKQorCS0gbWluaW1hbCBpbXBsIGZvciBTZXRSZW5kZXJUYXJnZXQgYW5kIENyZWF0ZVF1ZXJ5IChuZWVkZWQgdG8gZ2V0CisJICBzb21lIHNhbXBsZXMgd29ya2luZykKKwktIHJlbW92ZSBubyBsb25nZXIgbmVlZGVkICN1bmRlZiBHTF9WRVJTSU9OXzFfNAorCisJKiBkbGxzL2NvbW1kbGcvY2RsZzMyLmMsIGRsbHMva2VybmVsL3Rlc3RzL2NvbW0uYywKKwkgIGRsbHMva2VybmVsL3Rlc3RzL2NvbnNvbGUuYywgZGxscy9semV4cGFuZC90ZXN0cy9semV4cGFuZF9tYWluLmMsCisJICBsb2FkZXIvcHJlbG9hZGVyLmM6CisJUultaSBBc3NhaWxseSA8cmVtaS5hc3NhaWxseUBmcmVlLmZyPgorCWNoYXIgLT4gY29uc3QgY2hhciBmaXhlcy4KKworCSogdG9vbHMvd3JjL3BhcnNlci55OgorCUF2b2lkIGFzc2VydGlvbiBmYWlsdXJlIHdoZW4gbG9hZGluZyBhbiBlbXB0eSBkYXRhIGZpbGUuCisKKwkqIHRvb2xzL3dpZGwvdHlwZWxpYi5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCVN0cnVjdHMgd2l0aCBwdHJzIGFyZSBhbHNvIFZUX1VTRVJERUZJTkVELgorCisJKiBkbGxzL21zaS9NYWtlZmlsZS5pbiwgZGxscy9tc2kvZGlhbG9nLmMsIGRsbHMvbXNpL21zaS5jLAorCSAgZGxscy9tc2kvbXNpcHJpdi5oLCBkbGxzL21zaS9wYWNrYWdlLmMsIGRsbHMvbXNpL3ByZXZpZXcuYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50IE1zaVByZXZpZXdEaWFsb2cuCisKKwkqIGRsbHMvb2xlMzIvY29tcG9iai5jLCBkbGxzL29sZTMyL21hcnNoYWwuYywgZGxscy9vbGUzMi9ycGMuYywKKwkgIGRsbHMvb2xlMzIvdGVzdHMvbWFyc2hhbC5jLCBkbGxzL29sZTMyL3Rlc3RzL21vbmlrZXIuYzoKKwlSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJLSBNb3JlIHRlc3RzLgorCS0gQ2hhbmdlIHJldHVybiBjb2RlIG9mIENvR2V0UFNDbHNpZCB0byBtYXRjaCB0ZXN0IHJlc3VsdC4KKwktIERvIGEgc2xpZ2h0IGhhY2sgdG8gbWFrZSBJUmVtVW5rbm93biBwcm94aWVzIGJlIGFkZGVkIGFmdGVyIHRoZQorCSAgcHJveHkgdGhhdCB1c2VzIHRoZW0gdG8gc3RvcCB0aGVtIGJlaW5nIHVzZWQgYWZ0ZXIgdGhleSBhcmUKKwkgIGRlc3Ryb3llZC4KKwktIEZpeCBtdWx0aXBsZSBsb2NhbCBzZXJ2ZXIgY29ubmVjdGlvbnMuCisKKwkqIGRsbHMvbnRkbGwvbnQuYywgaW5jbHVkZS93aW50ZXJubC5oOiBSZWluIEtsYXplcyA8d2lqbkB3YW5hZG9vLm5sPgorCUluIE50UXVlcnlTeXN0ZW1JbmZvcm1hdGlvbiwgaGFuZGxlIHJlcXVlc3QgZm9yIGluZm9ybWF0aW9uIGNsYXNzIDEsCisJbm93IG5hbWVkIFN5c3RlbUNwdUluZm9ybWF0aW9uLiBSZXR1cm4gc29tZSBkdW1teSBkYXRhIGZvciBub3cuCisKKwkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkbGxzL01ha2VmaWxlLmluLCBkbGxzL3NlbnNhcGkvLmN2c2lnbm9yZSwKKwkgIGRsbHMvc2Vuc2FwaS9NYWtlZmlsZS5pbiwgZGxscy9zZW5zYXBpL3NlbnNhcGkuYywKKwkgIGRsbHMvc2Vuc2FwaS9zZW5zYXBpLnNwZWMsIGluY2x1ZGUvTWFrZWZpbGUuaW4sIGluY2x1ZGUvc2Vuc2FwaS5oOgorCVN0ZXZlbiBFZHdhcmRzIDxzdGV2ZW5AY29kZXdlYXZlcnMuY29tPgorCUFkZCBhIHN0dWIgZGxsIGZvciB0aGUgU3lzdGVtIEV2ZW50IE5vdGlmaWNhdGlvbiBTZXJ2aWNlLgorCisJKiB0b29scy93aW5lZ2NjL01ha2VmaWxlLmluLCB0b29scy93aW5lZ2NjL3dpbmVnY2MubWFuOgorCURpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJQWRkZWQgYSBuZXcgbWFuIHBhZ2UgZm9yIHdpbmVnY2MuCisKKwkqIGRsbHMvd2luZWQzZC92ZXJ0ZXhkZWNsYXJhdGlvbi5jOgorCVJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCS0gY29udmVydCBEM0Q4IFZlcnRleERlY2wgdG8gRDNEOSBmb3JtYXQgKEQzRFZFUlRFWEVMRU1FTlQ5IHZlY3RvcikKKwkgIHdoaWxlIHBhcnNpbmcKKwktIGRpc3BsYXkgcmVzdWx0IG9uIHRyYWNlcworCisJKiBkbGxzL3dpbmVwcy90cnVldHlwZS5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUFkZCBhIGZldyBtaXNzaW5nIFJlZ0Nsb3NlS2V5IGNhbGxzLgorCisJKiBkbGxzL3VzZXIvbHN0ci5jOiBUb255IExhbWJyZWd0cyA8dG9ueV9sYW1icmVndHNAdGVsdXNwbGFuZXQubmV0PgorCUZpeCBidWcgaW4gQ2hhclByZXZFeEEoKS4KKworCSogZGxscy9yc2FlbmgvdGVzdHMvcnNhZW5oLmM6IE1pY2hhZWwgSnVuZyA8bWp1bmdAaXNzLnR1LWRhcm1zdGFkdC5kZT4KKwlBZGRlZCBhIHRlc3QgY2FzZSBmb3IgaGFzaGluZyB3aXRoIHNjaGFubmVsIG1hYyBrZXlzLgorCisJKiBkbGxzL2tlcm5lbC9jcHUuYzogT2xpdmVyIFN0aWViZXIgPG9saXZlcl9zdGllYmVyQHlhaG9vLmNvLnVrPgorCUZpbGwgaW4gdGhlIGluZm9ybWF0aW9uIGluIFZlbmRvcklkZW50aWZpZXIgYW5kIG1ha2UgYSBiZXR0ZXIgZWZmb3J0CisJYXQgZmlsbGluZyBpbiBJZGVudGlmaWVyIGluIHRoZSByZWdpc3RyeSBrZXkuCisKKwkqIGluY2x1ZGUvbXNpcXVlcnkuaDogSnVhbiBMYW5nIDxqdWFuX2xhbmdAeWFob28uY29tPgorCVJlbW92ZSBkdXBsaWNhdGUgZGVmaW5pdGlvbi4KKworCSogZGxscy9vbGUzMi9jb21wb2JqLmMsIGRsbHMvb2xlMzIvb2xlMzIuc3BlYzoKKwlSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJLSBJbXBsZW1lbnQgQ29TZXRQcm94eUJsYW5rZXQsIENvUXVlcnlQcm94eUJsYW5rZXQgYW5kIENvQ29weVByb3h5LgorCS0gVXBkYXRlIHRvZG8gbGlzdC4KKworCSogZGxscy9tc3ZjcnQvc2NhbmYuaCwgZGxscy9tc3ZjcnQvdGVzdHMvc2NhbmYuYzoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCUZpeCBoYW5kbGluZyBvZiBFT0YgZm9yIHRoZSAnJWMnIGFuZCAnJUMnIGNhc2VzIGluIHNjYW5mKCkuCisJQWRkIGNvbmZvcm1hbmNlIHRlc3RzIHRvIHZlcmlmeSB0aGUgYmVoYXZpb3Igb2YgJyVjJy4KKwlJbXByb3ZlIHNvbWUgb2YgdGhlIHRlc3QncyBlcnJvciBtZXNzYWdlcy4KKworCSogZGxscy94MTFkcnYva2V5Ym9hcmQuYzogT2xpdmVyIFN0aWViZXIgPG9saXZlcl9zdGllYmVyQHlhaG9vLmNvLnVrPgorCVNlbmQgYSBzY2FuY29kZSB0aHJvdWdoIGZvciB0aGUgNSBrZXkgd2hlbiBudW1sb2NrIGlzbid0IG9uLgorCisyMDA1LTAxLTI3ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2FkdmFwaTMyL3Rlc3RzL3JlZ2lzdHJ5LmM6CisJRG9uJ3QgbWFrZSB0aGUgdGVzdCBrZXkgdm9sYXRpbGUsIHRoYXQgY2FuIGJyZWFrIG90aGVyIHRlc3RzLgorCisJKiBkbGxzL3VzZXIvaG9vay5jLCBkbGxzL3VzZXIvdGVzdHMvbXNnLmMsIHNlcnZlci9ob29rLmMsCisJICBzZXJ2ZXIvdHJhY2UuYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUFkZCBtb3JlIHRlc3RzIGZvciBvbGQgc3R5bGUgaG9va3MgYW5kIHdpbmV2ZW50IGhvb2tzLCBtYWtlIHRoZW0gcGFzcworCXVuZGVyIFdpbmUuCisKKwkqIGRsbHMvbXNpL2FjdGlvbi5jLCBkbGxzL21zaS9hY3Rpb24uaCwgZGxscy9tc2kvbXNpcHJpdi5oOgorCUFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJRW5hYmxlIHRoZSB1cGRhdGluZyBvZiBGZWF0dXJlIGFuZCB0aHVzIHRoZSByZXN1bHRpbmcgY29tcG9uZW50CisJc3RhdGVzLgorCVJ1biB0aGUgZW5kIG9mIGluc3RhbGwgYWN0aW9ucyBmb3Igc3VzcGVuZCBhbmQgdXNlciBleGl0IHN0YXRlcyBhcworCXdlbGwuCisJU3RhcnQgcHV0dGluZyBpbiBwbGFjZSBhIGN1cnJlbnRseSBydW5uaW5nIHN0YXRlIGZvciBmdXR1cmUgdWkgdXNlLgorCisJKiBkbGxzL21zaS9wYWNrYWdlLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwktIGltcGxlbWVudCBNc2lPcGVuUGFja2FnZUV4LCBhbmQgZm9yd2FyZCBNc2lPcGVuUGFja2FnZSB0aGVyZQorCS0gbWFrZSBhIE1TSV9DcmVhdGVQYWNrYWdlIGZ1bmN0aW9uIGFuZCB1c2UgaXQgaW4gTVNJX09wZW5QYWNrYWdlCisJLSBtb3ZlIE1zaU9wZW5QYWNrYWdlQSBkb3duIHdpdGggdGhlIHJlc3Qgb2YgdGhlIEFQSSBmdW5jdGlvbnMKKworCSogZGxscy9udGRsbC90aW1lLmM6IFRyb3kgUm9sbG8gPHdpbmVAdHJveS5yb2xsby5uYW1lPgorCUFkZCBUWl9JTkZPIGVudHJ5IHRvIG1hdGNoIChpbmNvcnJlY3QpIEF1c3RyYWxpYW4gRWFzdGVybiBEYXlsaWdodAorCVRpbWUgaW5mb3JtYXRpb24gZ2l2ZW4gYnkgc29tZSBzeXN0ZW1zLgorCisJKiBkbGxzL29sZWF1dDMyL3RtYXJzaGFsLmM6IE1pa2UgSGVhcm4gPG1oQGNvZGV3ZWF2ZXJzLmNvbT4KKwktIENoYW5nZSBzb21lIEZJWE1FcyB0byBFUlJzIHRvIHJlZmxlY3QgdGhlIGZhY3QgdGhhdCBub3RoaW5nIG5lZWRzCisJICBmaXhpbmcuCisJLSBGaXggc29tZSBtZW1vcnkgbGVha3Mgb24gZXJyb3IgcGF0aHMgaW4gX21hcnNoYWxfaW50ZXJmYWNlLgorCisJKiBkbGxzL3VzZXIvdGVzdHMvc3lzcGFyYW1zLmM6IFBhdWwgVnJpZW5zIDxQYXVsLlZyaWVuc0B4czRhbGwubmw+CisJQ2hlY2sgZm9yIGF2YWlsYWJpbGl0eSBvZiBTUElfR0VUSUNPTlRJVExFV1JBUC4KKworCSogd2luZG93cy93aW4uYywgd2luZG93cy93aW5wb3MuYzoKKwlBdm9pZCBhIGZldyBtb3JlIHVzZXMgb2YgV0lOX0ZpbmRXbmRQdHIuCisKKwkqIGluY2x1ZGUvLmN2c2lnbm9yZSwgaW5jbHVkZS9NYWtlZmlsZS5pbiwgaW5jbHVkZS9zZW5zZXZ0cy5pZGw6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUFkZGVkIGlkbCBmaWxlIGZvciB0aGUgU3lzdGVtIEV2ZW50IE5vdGlmY2F0aW9uIFNlcnZpY2VzIEFQSQorCShTRU5TQVBJKS4KKworCSogZGxscy9zaGRvY3Z3L2NsYXNzaW5mby5jLCBkbGxzL3NoZG9jdncvZXZlbnRzLmMsCisJICBkbGxzL3NoZG9jdncvZmFjdG9yeS5jLCBkbGxzL3NoZG9jdncvbWlzYy5jLAorCSAgZGxscy9zaGRvY3Z3L29sZW9iamVjdC5jLCBkbGxzL3NoZG9jdncvcGVyc2lzdC5jLAorCSAgZGxscy9zaGRvY3Z3L3NoZG9jdncuaCwgZGxscy9zaGRvY3Z3L3NoZG9jdndfbWFpbi5jLAorCSAgZGxscy9zaGRvY3Z3L3dlYmJyb3dzZXIuYzoKKwlKYW1lcyBIYXdraW5zIDx0cnVpa2VuQGdtYWlsLmNvbT4KKwlQcm9wZXJseSBpbXBsZW1lbnQgRGxsQ2FuVW5sb2FkTm93IHJlZiBjb3VudGluZy4gTWFrZSBzdXJlIHRoZSBtb3ppbGxhCisJY29udHJvbCBpcyByZWFkeSB0byB1bmxvYWQgYXMgd2VsbC4KKworCSogZGxscy9tc2kvdGVzdHMvZGIuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCVRlc3QgZGlmZmVyZW50IHR5cGVzIG9mIGRvZGd5IHF1ZXJpZXMuCisKKwkqIGRsbHMvbXNpL2N1c3RvbS5jOiBBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCUltcGxlbWVudCBjdXN0b20gYWN0aW9uIHR5cGUgMTksIEhhbHQgaW5zdGFsbCBhbmQgZGlzcGxheSBlcnJvcgorCW1lc3NhZ2UuCisKKwkqIGRsbHMvbXNpL3BhY2thZ2UuYzogQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlNc2lHZXRQcm9wZXJ0eSBkb2VzIG5vdCByZXR1cm4gYW55IGVycm9yIG9uIG1pc3NpbmcgcHJvcGVydGllcy4KKworCSogZGxscy9kZHJhdy9kZHJhdy9tYWluLmM6IFJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCVNldCBkZWZhdWx0IHZpZGVvIG1lbW9yeSB0byA2NE1iICh3YXMgMTZNYikgYXMgbWFueSBkM2Q5IGRlbW9zIHVzZQorCWQzZDcgY29kZSB0byBnZXQgYXZhaWxhYmxlIHZpZGVvIG1lbW9yeSBzaXplIChleCBDb25maWdTeXN0ZW0uZXhlIG9uCisJZDNkOSBzZGspLgorCisJKiBkbGxzL2R4ZGlhZ24vTWFrZWZpbGUuaW4sIGRsbHMvZHhkaWFnbi9jb250YWluZXIuYywKKwkgIGRsbHMvZHhkaWFnbi9keGRpYWdfcHJpdmF0ZS5oLCBkbGxzL2R4ZGlhZ24vcHJvdmlkZXIuYzoKKwlSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwktIHNvbWUgZml4ZXMgb24gc3ViIGNvbnRhaW5lcnMgc3VwcG9ydAorCS0gYWRkIHN1cHBvcnQgZm9yIHByb3BlcnRpZXMgKFZBUklBTlQpCisJLSBoYXJkIGNvZGVkIHNpbXBsZSBpbml0IGZvciByb290IGNvbnRhaW5lciAoZ2V0dGluZyBzaW1wbGUgZHg5CisJICB2ZXJzaW9uIGNoZWNrcyB3b3JraW5nKQorCisJKiBkbGxzL2tlcm5lbC9sY2Zvcm1hdC5jOiBWaW5jZW50IELpcm9uIDx2YmVyb25AbWVjYW5vLmdtZS51c2hlcmIuY2E+CisJQ2hhbmdlIFVURi04IG5hbWUgYmFjayB0byBJU08tODg1OS0xLgorCisJKiBkbGxzL3dpbmVkM2QvZGV2aWNlLmMsIGRsbHMvd2luZWQzZC9kaXJlY3R4LmMsCisJICBkbGxzL3dpbmVkM2QvdmVydGV4ZGVjbGFyYXRpb24uYywgaW5jbHVkZS93aW5lL3dpbmVkM2RfaW50ZXJmYWNlLmg6CisJUmFwaGFlbCBKdW5xdWVpcmEgPGZlbml4QGNsdWItaW50ZXJuZXQuZnI+CisJLSBmaXggdHlwbyBpbiB3aW5lZDNkX2ludGVyZmFjZS5oCisJLSBhZGQgbmVlZGVkIGRlZmluZXMgaW4gd2luZWQzZF9pbnRlcmZhY2UuaAorCS0gYWRkIElXaW5lRDNEVmVydGV4RGVjbGFyYXRpb25JbXBsX1BhcnNlVG9rZW45IGZvciBkZWJ1ZyB0cmFjZXMKKwktIGZpeCBQYXJzZURlY2xhcmF0aW9uOQorCS0gbGltaXQgZmxvb2Qgb2YgdHJhY2VzIChzaW5nbGUgc2hvdCB0cmFjZXMpCisKKwkqIGRsbHMvb2xlMzIvbWFyc2hhbC5jLCBkbGxzL29sZTMyL3Rlc3RzL21hcnNoYWwuYzoKKwlSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJR2l2ZSBJVW5rbm93biBpdHMgb3duIGlmc3R1YiB0byBmaXggcmVmLWNvdW50aW5nIGFuZCBpcGlkIHN0b3JhZ2UKKwlpc3N1ZXMuCisKKzIwMDUtMDEtMjYgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvY29tY3RsMzIvbGlzdHZpZXcuYywgZGxscy9jb21jdGwzMi90b29sYmFyLmMsCisJICBkbGxzL2RwbGF5eC9kcGxheXhfZ2xvYmFsLmMsIGRsbHMvZHBsYXl4L2RwbG9iYnkuYywKKwkgIGRsbHMvbXNpL2FjdGlvbi5jLCBkbGxzL21zaS9jdXN0b20uYywgZGxscy9tc2kvZm9ybWF0LmMsCisJICBkbGxzL21zaS90YWJsZS5jLCBkbGxzL3JzYWVuaC9tcGkuYywgZGxscy9zaGVsbDMyL3NoZWxsb3JkLmMsCisJICBkbGxzL3dpbmluZXQvY29va2llLmMsIGRsbHMvd2luaW5ldC9odHRwLmMsIGRvY3VtZW50YXRpb24vb2xlLnNnbWwsCisJICBwcm9ncmFtcy93aW5lZGJnL2RiX2Rpc2FzbS5jLCB0b29scy93aW5hcGkvbWFrZV9wYXJzZXIucG06CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJQXNzb3J0ZWQgc3BlbGxpbmcgZml4ZXMuCisKKwkqIGRsbHMvb2xlMzIvY29tcG9ial9wcml2YXRlLmgsIGRsbHMvb2xlMzIvbWFyc2hhbC5jLAorCSAgZGxscy9vbGUzMi9vbGVwcm94eS5jLCBkbGxzL29sZTMyL3JwYy5jLCBkbGxzL29sZTMyL3N0dWJtYW5hZ2VyLmMsCisJICBkbGxzL29sZTMyL3Rlc3RzL21hcnNoYWwuYzoKKwlSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJLSBNYWtlIHByb3h5IG1hbmFnZXIgdXNlIElNdWx0aVFJIGluc3RlYWQgb2YgSUludGVybmFsVW5rbm93biBhcyB0ZXN0cworCSAgc2hvdyB0aGF0IElJbnRlcm5hbFVua25vd24gaXNuJ3QgZXhwb3NlZC4KKwktIEltcGxlbWVudCBJTXVsdGlRSSBvbiB0b3Agb2YgSVJlbVVua25vd24gY2FsbHMuCisJLSBTaWxlbmNlIHNvbWUgZml4bWVzIHRoYXQgb2NjdXIgZHVyaW5nIHRlc3RzIGFuZCBkb24ndCBnaXZlIHVzIGFueQorCSAgdXNlZnVsIGluZm9ybWF0aW9uLgorCS0gRml4IHR5cG8gaW4gY2xhc3MgZmFjdG9yeSBwcm94eSB0aGF0IGNhdXNlZCB1cyB0byB1c2UgdGhlIHdyb25nCisJICBvZmZzZXQgaW50byB0aGUgQ0ZQcm94eSBzdHJ1Y3R1cmUsIGNhdXNpbmcgdXMgdG8gbm90IGNhbGwgdGhlCisJICBvdXRlcl91bmtub3duIHByb3Blcmx5LgorCisJKiBkbGxzL3dpbmVkM2QvZGlyZWN0eC5jLCBkbGxzL3dpbmVkM2QvZHJhd3ByaW0uYywKKwkgIGluY2x1ZGUvd2luZS93aW5lZDNkX2dsLmg6CisJUmFwaGFlbCBKdW5xdWVpcmEgPGZlbml4QGNsdWItaW50ZXJuZXQuZnI+CisJLSBhIHZlcnkgYmFzaWMgYmxlbmRpbmcgc3VwcG9ydCBvbiBmYXN0IGRyYXdpbmcgcGF0aCAodG8gaGF2ZSBiZXR0ZXIKKwkgIHBlcmZvcm1hbmNlcyBvbiBsYXN0IGdhbWVzKQorCS0gc29tZSBkZWZpbmVzIGZvciBWQk8gc3VwcG9ydAorCisJKiBkbGxzL3dpbmVkM2QvZGV2aWNlLmMsIGRsbHMvd2luZWQzZC92ZXJ0ZXhkZWNsYXJhdGlvbi5jLAorCSAgZGxscy93aW5lZDNkL3dpbmVkM2RfcHJpdmF0ZS5oLCBpbmNsdWRlL3dpbmUvd2luZWQzZF9pbnRlcmZhY2UuaDoKKwlSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwktIFZlcnRleERlY2xhcmF0aW9uIGRldmljZSBBUElzCisJLSBEM0Q5IGRlY2xhcmF0aW9ucyBwYXJzaW5nCisJLSBhIGxpdHRsZSBiZXR0ZXIgQVBJcyAodHJ5aW5nIHRvIGF2b2lkIGNvbXBpbGUgcHJvYmxlbXMpCisKKwkqIGRsbHMvb2xlMzIvY29tcG9iai5jLCBkbGxzL29sZTMyL2NvbXBvYmpfcHJpdmF0ZS5oLAorCSAgZGxscy9vbGUzMi9tYXJzaGFsLmMsIGRsbHMvb2xlMzIvb2xlcHJveHkuYywgZGxscy9vbGUzMi9ycGMuYywKKwkgIGRsbHMvb2xlMzIvc3R1Ym1hbmFnZXIuYzoKKwlSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJLSBVc2UgSW50ZXJsb2NrZWRJbmNyZW1lbnQgZm9yIHRoZSBpcGlkIGNvdW50ZXIgaW5zdGVhZCBvZiBhIGNyaXRpY2FsCisJICBzZWN0aW9uIChzdWdnZXN0ZWQgYnkgTWlrZSBIZWFybikuCisJLSBSZW1vdmUgYSBsaW5lIGFkZGVkIGJ5IGEgYmFkIG1lcmdlLgorCS0gSW1wbGVtZW50IFJlbVVua1N0dWJfRGlzY29ubmVjdC4KKwktIFJlbW92ZSBhbGwgb2YgdGhlIFJQQyBkaXNjb25uZWN0IGNvZGUuCisKKwkqIGRsbHMvb2xlMzIvbWFyc2hhbC5jLCBkbGxzL29sZTMyL3JwYy5jLCBkbGxzL29sZTMyL3N0dWJtYW5hZ2VyLmMsCisJICBkbGxzL29sZTMyL3Rlc3RzL21hcnNoYWwuYzoKKwlSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJLSBJbXBsZW1lbnQgSVJlbVVua25vd24uCisJLSBVc2UgSVJlbVVua25vd24gZm9yIGxpZmUtY3ljbGUgbWFuYWdlbWVudCBpbnN0ZWFkIG9mIHRoZSBjdXJyZW50CisJICBoYWNrcy4KKworCSogaW5jbHVkZS93aW50ZXJubC5oLCBkbGxzL2tlcm5lbC9jcHUuYywgZGxscy9udGRsbC9udC5jLAorCSAgZGxscy9udGRsbC9udGRsbC5zcGVjOgorCVJlaW4gS2xhemVzIDx3aWpuQHdhbmFkb28ubmw+CisJR2V0IHJpZCBvZiB0aGUgcmR0c2MgY3B1IGluc3RydWN0aW9uIG1ldGhvZCBmb3IgY2FsY3VsYXRpb24gb2YgdGhlCisJcGVyZm9ybWFuY2UgY291bnRlci4gUHV0IHRoZSBjYWxjdWxhdGlvbiAoYmFzZWQgb24gZ2V0dGltZW9mZGF5KSBpbgorCU50UXVlcnlQZXJmb3JtYW5jZUNvdW50ZXIoKSBhbmQgdXNlIHRoYXQgaW4gdGhlIGtlcm5lbCBmdW5jdGlvbnMuCisKKwkqIGRsbHMvZG1zY3JpcHQvc2NyaXB0LmM6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCVJlbW92ZSB1bm5lZWRlZCBOVUxMIGNhc3QuCisKKwkqIHRvb2xzL3dpZGwvdHlwZWxpYl9zdHJ1Y3QuaCwgdG9vbHMvd2lkbC93cml0ZV9tc2Z0LmM6CisJSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlXaGVuIGFkZGluZyBhbiBpbnRlcmZhY2UsIG1pZGwgYWRkcyB0aGUgaW5oZXJpdGVkIGludGVyZmFjZSBmaXJzdAorCXVubGVzcyB0aGUgaW5oZXJpdGVkIGludGVyZmFjZSBkb2Vzbid0IGl0c2VsZiBpbmhlcml0LgorCUZpeCB0aGUgaWQsIHNpemV2ZnQgYW5kIGRhdGF0eXBlMiBmaWVsZHMgZm9yIGludGVyZmFjZXMgdGhhdCBpbmhlcml0LgorCVByZXZlbnQgYSBjcmFzaCBpZiB0aGUgdHlwZWxpYiBpcyBlbXB0eS4KKwlDbGFyaWZ5IGEgZmV3IG1vcmUgZW50cmllcyBvbiB0eXBlbGliX3N0cnVjdC5oCisKKwkqIGRsbHMvbXNpL3JlY29yZC5jLCBkbGxzL21zaS90ZXN0cy9yZWNvcmQuYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJRml4IE1zaVJlY29yZFNldFN0cmluZyBmb3IgTlVMTCBzdHJpbmdzIGFuZCB1cGRhdGUgdGVzdCBjYXNlLgorCisJKiBkbGxzL3gxMWRydi94cmVuZGVyLmM6IEdsZW5uIFd1cnN0ZXIgPGd3dXJzdGVyQHNjcy5jYXJsZXRvbi5jYT4KKwlEaXNhYmxlIGFudGlhbGlhc2luZyBvZiBmb250cyB3aGlsZSB3b3JraW5nIGluIGEgcGFsZXR0ZS4KKworCSogZGxscy9zZXR1cGFwaS9ObC5yYywgcHJvZ3JhbXMvbm90ZXBhZC9ObC5yYywgcHJvZ3JhbXMvcHJvZ21hbi9ObC5yYywKKwkgIHByb2dyYW1zL3JlZ2VkaXQvTmwucmMsIHByb2dyYW1zL3N0YXJ0L05sLnJjLAorCSAgcHJvZ3JhbXMvd2luZWZpbGUvTmwucmMsIHByb2dyYW1zL3dpbmhlbHAvTmwucmM6CisJSGFucyBMZWlkZWtrZXIgPGhhbnNAaXQudnUubmw+CisJRG9uJ3QgdXNlIHV0ZjggaW4gcmMgZmlsZXMuCisKKwkqIGRsbHMvb2xlYXV0MzIvdG1hcnNoYWwuYzogTWlrZSBIZWFybiA8bWhAY29kZXdlYXZlcnMuY29tPgorCUZpeCBhIHR5cG8sIHByb3BhZ2F0ZSBlcnJvcnMgYmV0dGVyIGZyb20gaW5zaWRlIHRoZSB0eXBlbGliCisJbWFyc2hhbGxlci4KKworCSogZGxscy9nZGkvbWV0YWZpbGUuYzogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlHZXRNZXRhRmlsZSBjaGVja3MgYm90aCB0aGUgdmVyc2lvbiBhbmQgdGhlIGhlYWRlciBzaXplIHdoZW4gaXQgdHJpZXMKKwl0byBsb2FkIGEgbWV0YWZpbGUuICBQb3dlcnBvaW50IFhQIGRlcGVuZHMgb24gdGhpcy4KKworCSogZGxscy9kbXVzaWMvYnVmZmVyLmMsIGRsbHMvZG11c2ljL2Nsb2NrLmMsIGRsbHMvZG11c2ljL2NvbGxlY3Rpb24uYywKKwkgIGRsbHMvZG11c2ljL2RtdXNpYy5jLCBkbGxzL2RtdXNpYy9kbXVzaWNfbWFpbi5jLAorCSAgZGxscy9kbXVzaWMvZG11c2ljX3ByaXZhdGUuaCwgZGxscy9kbXVzaWMvZG93bmxvYWQuYywKKwkgIGRsbHMvZG11c2ljL2Rvd25sb2FkZWRpbnN0cnVtZW50LmMsIGRsbHMvZG11c2ljL2luc3RydW1lbnQuYywKKwkgIGRsbHMvZG11c2ljL3BvcnQuYywgZGxscy9kbXVzaWMvcG9ydGRvd25sb2FkLmMsIGRsbHMvZG11c2ljL3RocnUuYzoKKwlKYW1lcyBIYXdraW5zIDx0cnVpa2VuQGdtYWlsLmNvbT4KKwlQcm9wZXJseSBpbXBsZW1lbnQgRGxsQ2FuVW5sb2FkTm93IHJlZiBjb3VudGluZy4KKworCSogZGxscy9tc2kvbXNpLmMsIGRsbHMvbXNpL21zaS5zcGVjLCBkbGxzL21zaS9tc2lwcml2LmgsCisJICBkbGxzL21zaS9yZWdpc3RyeS5jOgorCUFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJQWRkZWQgYSBmZXcgbW9yZSBzdHViIGltcGxlbWVudGF0aW9ucy4KKworCSogdG9vbHMvd2lkbC9wYXJzZXIubCwgdG9vbHMvd2lkbC9wYXJzZXIueSwgdG9vbHMvd2lkbC9wcm94eS5jLAorCSAgdG9vbHMvd2lkbC90eXBlbGliLmMsIHRvb2xzL3dpZGwvd2lkbC5jLCB0b29scy93aWRsL3dpZGwuaCwKKwkgIHRvb2xzL3dpZGwvd2lkbC5tYW46CisJSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggdHlwZWxpYiBvbmx5IG9wdGlvbi4KKwlNYWtlIC10IGFuZCAtaCBvcHRpb25zIGluY2x1c2l2ZS4KKworMjAwNS0wMS0yNSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9tc2kvTWFrZWZpbGUuaW4sIGRsbHMvbXNpL2FjdGlvbi5jLCBkbGxzL21zaS9hY3Rpb24uaCwKKwkgIGRsbHMvbXNpL2N1c3RvbS5jLCBkbGxzL21zaS9mb3JtYXQuYywgZGxscy9tc2kvbXNpcHJpdi5oLAorCSAgZGxscy9tc2kvcGFja2FnZS5jLCBkbGxzL21zaS9yZWNvcmQuYzoKKwlBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCS0gYWN0aW9uLmMgaXMgZ2V0dGluZyB0b28gYmlnLCBzbyBzcGxpdCBvdXQgYWxsIHRoZSBoYW5kbGluZyBvZgorCSAgQ3VzdG9tQWN0aW9ucyBpbnRvIGN1c3RvbS5jLiBDbGVhbmVkIHVwIGEgbG90IG9mIHRoZSBoYW5kbGluZyBvZgorCSAgY3VzdG9tIGFjdGlvbnMgaW5jbHVkaW5nIHNjcmlwdGluZyBhY3Rpb25zIGFuZCBwcm9jZXNzaW5nIHJldHVybgorCSAgY29kZXMuCisJLSBNaWtlIE1jQ29ybWFjayBwb2ludGVkIG91dCB0aGF0IE1zaUZvcm1hdFJlY29yZCBpcyBiYXNpY2FsbHkgdGhlCisJICBzYW1lIGFzIGludGVybmFsIGZ1bmN0aW9uIGRlZm9ybWF0X3N0cmluZy4gU28gYnJva2UgZGVmb3JtYXRfc3RyaW5nCisJICBvdXQgYW5kIHVwZGF0ZWQgaXQgdG8gZnVuY3Rpb24gYXMgTXNpRm9ybWF0UmVjb3JkIGFuZCBpbXBsZW1lbnRlZAorCSAgTXNpRm9ybWF0UmVjb3JkLgorCS0gQSBudW1iZXIgb2YgcmFuZG9tIGZpeGVzIHRvIGFjdGlvbi5jIGluY2x1ZGluZyBwcm9wZXJseSBjYWxjdWxhdGluZworCSAgdGhlIGxlbmd0aCBmb3IgdGhlIExvY2FsUGFja2FnZSBuYW1lLCBub3QgZm9yY2luZyBhIHJlYm9vdCB3aGVuCisJICByZWFsbHkgd2Ugc2hvdWxkIGp1c3QgcmV0dXJuIEVSUk9SX0lOU1RBTExfU1VTUEVORCBhbmQgaGFuZGxpbmcKKwkgIFJFR19NVUxUSV9TWiBub3cgdGhhdCB3ZSBjYW4gZGVmb3JtYXQgdGhlIHByb3Blcmx5LgorCisJKiBwcm9ncmFtcy93aW5oZWxwL2hscDJzZ21sLmMsIHByb2dyYW1zL3dpbmhlbHAvaGxwZmlsZS5jLAorCSAgcHJvZ3JhbXMvd2luaGVscC9tYWNyby5sZXgubCwgcHJvZ3JhbXMvd2luaGVscC93aW5oZWxwLmM6CisJS2VuIEJlbGxlYXUgPGphbWV6QGl2aWMucWMuY2E+CisJLSBVc2VkIHdpbmVfZGJnc3RyX2EgdG8gcHJldmVudCBhbiBvdmVyZmxvdy4KKwktIEltcHJvdmVkIHN1cHBvcnQgdG8gY2FsbCBtYWNyb3Mgd2l0aCBhIHZhcmlhYmxlIG51bWJlciBvZgorCSAgcGFyYW1ldGVycy4KKwktIFB1dCBhIGNoZWNrIHRvIHByZXZlbnQgYW4gb3V0IG9mIGJvdW5kcyBhY2Nlc3MuCisKKwkqIGRsbHMvZGlucHV0L2pveXN0aWNrX2xpbnV4LmMsIGRsbHMvZGlucHV0L21vdXNlLmM6CisJUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlDb3B5IGRhdGEgc3RydWN0dXJlcyBvbmUgYXQgYSB0aW1lIHVzaW5nIHN1cHBsaWVkIHNpemUuCisKKwkqIHRvb2xzL3dpZGwvcGFyc2VyLnksIHRvb2xzL3dpZGwvdHlwZWxpYi5jLCB0b29scy93aWRsL3R5cGVsaWIuaCwKKwkgIHRvb2xzL3dpZGwvd2lkbHR5cGVzLmgsIHRvb2xzL3dpZGwvd3JpdGVfbXNmdC5jOgorCUh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJQWRkIGVudW0gc3VwcG9ydC4KKwlBbm90aGVyIGF0dGVtcHQgYXQgZ2V0dGluZyB0aGUgYWxpZ25tZW50IGJpdHMgY29ycmVjdC4KKworCSogZGxscy9vZGJjMzIvb2RiYzMyLnNwZWMsIGRsbHMvb2RiYzMyL3Byb3h5b2RiYy5jLAorCSAgZGxscy9vZGJjMzIvcHJveHlvZGJjLmg6CisJQWxleCBWaWxsYWPtcyBMYXNzbyA8YV92aWxsYWNpc0BwYWxvc2FudG8uY29tPgorCUltcGxlbWVudGVkIFVuaWNvZGUgcHJveHkgZm9yIE9EQkMuCisKKwkqIGRsbHMvb2xlMzIvcmVnc3ZyLmMsIGRsbHMvb2xlYXV0MzIvcmVnc3ZyLmM6CisJUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCS0gTW92ZSBPTEUgYXV0b21hdGlvbiBpbnRlcmZhY2UgcmVnaXN0cmF0aW9uIHRvIG9sZWF1dDMyLgorCS0gQWRkIElSZW1Vbmtub3duIHRvIGxpc3Qgb2YgaW50ZXJmYWNlcyB0byByZWdpc3Rlci4KKworCSogZGxscy9vbGUzMi9vbGVwcm94eS5jOiBSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJUHJveGllcy9zdHVicyBmb3IgSVJlbVVua25vd24gbWV0aG9kcywgYmFzZWQgb24gY29kZSB3cml0dGVuIGJ5IE92ZQorCUvldmVuLgorCisJKiB0b29scy93aWRsL3dyaXRlX21zZnQuYzogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgZW5jb2RpbmcgZm9yIFZUX1I4LgorCUJ1ZyBmaXg6IEluaXRpYWxpc2UgY2hpbGRfc2l6ZS4KKworCSogZGxscy9zZXR1cGFwaS9taXNjLmMsIGRsbHMvc2V0dXBhcGkvc2V0dXBhcGkuc3BlYzoKKwlFcmljIEtvaGwgPGVyaWMua29obEB0LW9ubGluZS5kZT4KKwlJbXBsZW1lbnQgRHVwbGljYXRlU3RyaW5nIGFuZCBRdWVyeVJlZ2lzdHJ5VmFsdWUuCisKKwkqIGRsbHMvb2xlYXV0MzIvdmFyaWFudC5jOgorCUFsZXggVmlsbGFj7XMgTGFzc28gPGFfdmlsbGFjaXNAcGFsb3NhbnRvLmNvbT4KKwlJbml0aWFsaXplIHRlbXBvcmFyeSB2YXJpYW50cyBiZWZvcmUgY2FsbGluZyBWYXJpYW50Q2hhbmdlVHlwZUV4LgorCisJKiBkbGxzL3dpbmluZXQvaHR0cC5jOiBNYXhpbWUgQmVsbGVuZ+kgPG1heGltZS5iZWxsZW5nZUBsYXBvc3RlLm5ldD4KKwlSZXBsYWNlICdcJyB3aXRoICcvJyBpbiB0aGUgVVJMIGluIEhUVFBfSHR0cFNlbmRSZXF1ZXN0Vy4KKworCSogcHJvZ3JhbXMvd2luZXBhdGgvd2luZXBhdGguYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUNvbnZlcnQgcHJvZ3JhbXMvd2luZXBhdGggdG8gdW5pY29kZSwgcHJpbnQgdGhlIG91dHB1dCBzdHJpbmcgdXNpbmcKKwlVbml4IGxvY2FsZS4KKworCSogZGxscy9tc2kvbXNpLnNwZWMsIGRsbHMvbXNpL3JlZ2lzdHJ5LmMsIGRsbHMvbXNpL3Rlc3RzL2RiLmM6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUltcGxlbWVudCwgdGVzdCBhbmQgZG9jdW1lbnQgTXNpRGVjb21wb3NlRGVzY3JpcHRvci4KKworCSogdG9vbHMvd2lkbC9wYXJzZXIueTogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwl1bnNpZ25lZCBjaGFyIHN1cHBvcnQuCisKKwkqIGRsbHMvdXNlci90ZXN0cy9tc2cuYzogQWRkZWQgYSBjb3VwbGUgb2YgU2V0V2luZG93UG9zIHRlc3RzLgorCisJKiBkbGxzL3VzZXIvdGVzdHMvbXNnLmMsIGRsbHMveDExZHJ2L3dpbnBvcy5jOgorCVJlaW4gS2xhemVzIDx3aWpuQHdhbmFkb28ubmw+CisJTWFrZSBTaG93V2luZG93KC4uLixTV19TSE9XTkEpIGFsc28gd29yayBvbiBhbHJlYWR5IHZpc2libGUgd2luZG93cworCXdpdGggc29tZSBjb25mb3JtYW5jZSB0ZXN0cy4KKworCSogZGxscy9tc2kvYWN0aW9uLmM6IEFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJVXNlIHRoZSBuZXcgcmVnaXN0cnkgZnVuY3Rpb25zIGluIHJlZ2lzdHJ5LmMuCisJRG8gbm90IGZvcmNlIGEgcmVib290LCBqdXN0IHJldHVybiBFUlJPUl9JTlNUQUxMX1NVU1BFTkQgYW5kIHdyaXRlCisJc29tZSBrZXlzIHRvIHRoZSByZWdpc3RyeS4KKworCSogZGxscy9tc2kvTWFrZWZpbGUuaW4sIGRsbHMvbXNpL21zaS5jLCBkbGxzL21zaS9tc2lwcml2LmgsCisJICBkbGxzL21zaS9yZWdpc3RyeS5jOgorCUFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJTW92ZSB0aGUgZ3VpZCBzcXVpc2hpbmcgZnVuY3Rpb25zIG91dCBvZiBtc2kuYyBhbmQgbWFrZSBhIG5ldworCXJlZ2lzdHJ5LmMgZmlsZS4gQWxzbyBjbGVhbiB1cCBhbGwgdGhlIHZhcmlvdXMgcmVnaXN0cnkga2V5cyB3ZSBuZWVkCisJdG8gb3BlbiBhbmQgY3JlYXRlIHRvIHRoaXMgbW9kdWxlIGFuZCBtb2RpZnkgdGhlIGZ1bmN0aW9ucyBmb3IgbXNpLmMKKwl0byBjYWxsIHRoZXNlIGZ1bmN0aW9ucy4KKworCSogZGxscy91c2VyL3Njcm9sbC5jOiBSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJQWRkIGEgc3VtbWFyeSBsaW5lIGZvciBzZXZlcmFsIHNjcm9sbGJhciBmdW5jdGlvbnMuCisKKwkqIGRsbHMvb2xlMzIvY29tcG9iai5jLCBkbGxzL29sZTMyL2NvbXBvYmpfcHJpdmF0ZS5oLAorCSAgZGxscy9vbGUzMi9tYXJzaGFsLmMsIGRsbHMvb2xlMzIvcnBjLmMsIGRsbHMvb2xlMzIvc3R1Ym1hbmFnZXIuYzoKKwlSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJLSBHZW5lcmF0ZSBtYWNoaW5lLWxvY2FsIElQSURzLgorCS0gTWFrZSBwaXBlcyBiZSB1bmlxdWVseSBpZGVudGlmaWVkIG9ubHkgYnkgdGhlaXIgSVBJRC4KKworCSogdG9vbHMvd2lkbC93cml0ZV9tc2Z0LmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJQWRkIGludGVyZmFjZSBpbmhlcml0YW5jZS4KKworCSogZGxscy9kZXZlbnVtL2NyZWF0ZWRldmVudW0uYzoKKwlDaHJpc3RpYW4gQ29zdGEgPHRpdGFuLmNvc3RhQHdhbmFkb28uZnI+CisJRml4ZWQgcGluIGRpcmVjdGlvbiB3aGVuIHJlZ2lzdGVyaW5nIGF1ZGlvIGlucHV0IGRldmljZS4KKworCSogZGxscy9zaGx3YXBpL3Rlc3RzL3N0cmluZy5jOiBIYW5zIExlaWRla2tlciA8aGFuc0BpdC52dS5ubD4KKwlTdHJJc0ludGxFcXVhbCBhbmQgSW50bFN0ckVxV29ya2VyIG1heSBiZSBhYnNlbnQuCisKKzIwMDUtMDEtMjQgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkbGxzL01ha2VmaWxlLmluLCBkbGxzL3d0c2FwaTMyLy5jdnNpZ25vcmUsCisJICBkbGxzL3d0c2FwaTMyL01ha2VmaWxlLmluLCBkbGxzL3d0c2FwaTMyL3d0c2FwaTMyLmMsCisJICBkbGxzL3d0c2FwaTMyL3d0c2FwaTMyLnNwZWMsIGluY2x1ZGUvTWFrZWZpbGUuaW4sIGluY2x1ZGUvd3RzYXBpMzIuaDoKKwlVbHJpY2ggQ3pla2FsbGEgPHVscmljaEBjb2Rld2VhdmVycy5jb20+CisJQWRkZWQgV1RTQVBJMzIuRExMLgorCisJKiBkbGxzL2FkdmFwaTMyL3NlcnZpY2UuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUNvbnZlcnQgc2VydmljZXMgdG8gdXNlIHBpcGVzIGZvciBSUEMgaW5zdGVhZCBvZiBzaGFyZWQgbWVtb3J5LgorCisJKiBkbGxzL2Rtc3R5bGUvYXVkaXRpb250cmFjay5jLCBkbGxzL2Rtc3R5bGUvY2hvcmR0cmFjay5jLAorCSAgZGxscy9kbXN0eWxlL2NvbW1hbmR0cmFjay5jLCBkbGxzL2Rtc3R5bGUvZG1zdHlsZV9tYWluLmMsCisJICBkbGxzL2Rtc3R5bGUvZG1zdHlsZV9wcml2YXRlLmgsIGRsbHMvZG1zdHlsZS9tb3RpZnRyYWNrLmMsCisJICBkbGxzL2Rtc3R5bGUvbXV0ZXRyYWNrLmMsIGRsbHMvZG1zdHlsZS9zdHlsZS5jLAorCSAgZGxscy9kbXN0eWxlL3N0eWxldHJhY2suYzoKKwlKYW1lcyBIYXdraW5zIDx0cnVpa2VuQGdtYWlsLmNvbT4KKwlQcm9wZXJseSBpbXBsZW1lbnQgRGxsQ2FuVW5sb2FkTm93IHJlZiBjb3VudGluZy4KKworCSogZGxscy94MTFkcnYveHJlbmRlci5jOiBHbGVubiBXdXJzdGVyIDxnd3Vyc3RlckBzY3MuY2FybGV0b24uY2E+CisJRGlzYWJsZSBhbnRpYWxpYXNpbmcgaWYgdGhlIGZvbnQgZGljdGF0ZXMgaXQuCisKKwkqIGRsbHMveDExZHJ2L3hyZW5kZXIuYzogR2xlbm4gV3Vyc3RlciA8Z3d1cnN0ZXJAc2NzLmNhcmxldG9uLmNhPgorCVNwbGl0IGNhY2hpbmcgb2YgYW50aWFsaWFzZWQgYW5kIG5vbi1hbnRpYWxpYXNlZCBnbHlwaHMuCisKKwkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkbGxzL01ha2VmaWxlLmluLCBkbGxzL2NyeXB0ZGxsLy5jdnNpZ25vcmUsCisJICBkbGxzL2NyeXB0ZGxsL01ha2VmaWxlLmluLCBkbGxzL2NyeXB0ZGxsL2NyeXB0ZGxsLmMsCisJICBkbGxzL2NyeXB0ZGxsL2NyeXB0ZGxsLnNwZWM6CisJVWxyaWNoIEN6ZWthbGxhIDx1bHJpY2hAY29kZXdlYXZlcnMuY29tPgorCUFkZCBzdHViIHZlcnNpb24gb2YgY3J5cHRkbGwuZGxsLgorCisJKiBkbGxzL2dkaS9mcmVldHlwZS5jOiBUcm95IFJvbGxvIDx3aW5lQHRyb3kucm9sbG8ubmFtZT4KKwlEb24ndCByZWZ1c2UgdG8gcHJvY2VzcyBWRE1YIHJhdGlvIGVudHJpZXMgd2l0aCBiQ2hhclNldCA9PSAwLiBUaGVzZQorCWVudHJpZXMgYXJlIGF0IGxlYXN0IGFzIHVzZWZ1bCBhcyB0aG9zZSB3aXRoIGJDaGFyU2V0ID09IDEuIEFkZAorCWNvbW1lbnQgY29udGFpbmluZyBVUkwgb2YgZG9jdW1lbnRhdGlvbiBmb3IgVkRNWCByZWNvcmRzLgorCisJKiBkbGxzL2NvbWN0bDMyL3Rvb2xiYXIuYzogVGludXMgPG8xMTJ3OHIwMkBzbmVha2VtYWlsLmNvbT4KKwlQcm9wZXJseSBhbGxvdyByZW1vdmluZyB0b29sYmFyIGJpdG1hcHMgYnkgY2hhbmdpbmcgaXQgaW50byAwLgorCisJKiBkbGxzL3gxMWRydi9rZXlib2FyZC5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCVB1dCBCcmF6aWxpYW4gQUJOVDIga2V5Ym9hcmQgbGF5b3V0cyBpbiBsaW5lIHdpdGggYXBwcm9wcmlhdGUgdmlydHVhbAorCWtleWJvYXJkIG1hcHMuCisKKwkqIGRsbHMveDExZHJ2L3dpbnRhYi5jOiBSb2JlcnQgTm9ydGggPDdvd25xMGs0MDJAc25lYWtlbWFpbC5jb20+CisJQnJpbmcgd2ludGFiIGluIGxpbmUgd2l0aCBKZXJlbXkncyBYMTEgZXZlbnQgdGltaW5nIHBhdGNoZXMgYWdhaW4uCisKKwkqIGRsbHMveDExZHJ2L3dpbnRhYi5jOiBSb2JlcnQgTm9ydGggPDdvd25xMGs0MDJAc25lYWtlbWFpbC5jb20+CisJQWRkIHRoZSBydWxlIHRoYXQgaW52ZXJ0ZWQgY3Vyc29yIGhhcyAtdmUgYWx0aXR1ZGUsIG1hdGNoaW5nIGJlaGF2aW91cgorCW9uIFdpbmRvd3Mgd2Fjb20gdGFibGV0cy4KKworCSogZGxscy94MTFkcnYvd2ludGFiLmM6IFJvYmVydCBOb3J0aCA8N293bnEwazQwMkBzbmVha2VtYWlsLmNvbT4KKwlQYWNrZXRzIGZyb20gZXJhc2VyIGN1cnNvcnMgYXJlIG1hcmtlZCBhcyBpbnZlcnRlZCwgbWF0Y2hpbmcgYmVoYXZpb3IKKwlvbiBXaW5kb3dzIFdhY29tIHRhYmxldHMuCisKKwkqIGRsbHMvd2ludGFiMzIvY29udGV4dC5jOiBSb2JlcnQgTm9ydGggPDdvd25xMGs0MDJAc25lYWtlbWFpbC5jb20+CisJV1RFbmFibGUsIHdoZW4gY2FsbGVkIHRvIGRpc2FibGUgdGFibGV0IGNvbnRleHQsIGNsZWFycyBjb250ZXh0IHF1ZXVlLAorCWFzIHBlciB3aW50YWIgc3BlYy4KKworCSogZGxscy9kc291bmQvcHJpbWFyeS5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCURvbid0IGFsbG93IG90aGVyIHRocmVhZHMgdG8gYWNjZXNzIHRoZSBwcmltYXJ5IGJ1ZmZlciB3aGlsZSB0aGUKKwlmb3JtYXQgaXMgYmVpbmcgY2hhbmdlZC4KKworCSogZGxscy94MTFkcnYvd2ludGFiLmM6IFJvYmVydCBOb3J0aCA8N293bnEwazQwMkBzbmVha2VtYWlsLmNvbT4KKwktIEluIHdpbnRhYidzIGRlZmF1bHQgc3lzdGVtIGNvbnRleHQsIGNoYW5nZSBjb250ZXh0IG9wdGlvbnMgdG8gbWF0Y2gKKwkgIFdhY29tIHRhYmxldCBpbiB3aW5kb3dzLgorCS0gQ2hhbmdlIGRldmljZSBvcmllbnRhdGlvbiB1bml0IGRlZmluaXRpb24gdG8gYW5ndWxhci4KKwktIFVzZSBNYWNyb3Mgd2hlcmUgYXBwcm9wcmlhdGUgdG8gZGVmaW5lIGN1cnNvciBhbmQgZGV2aWNlIGRlZmF1bHRzLgorCisJKiBkbGxzL3dpbnRhYjMyL2NvbnRleHQuYzogUm9iZXJ0IE5vcnRoIDw3b3ducTBrNDAyQHNuZWFrZW1haWwuY29tPgorCS0gQ29ycmVjdCBvdmVyZmxvdyAxIG1lc3NhZ2UgdG9vIGVhcmx5LgorCS0gT3ZlcmZsb3cgbm93IGdvaW5nIG9udG8gbWVzc2FnZSBxdWV1ZS4KKwktIE92ZXJmbG93IHN0YXRlIGNvcnJlY3RseSBvci1lZCB3aXRoIG90aGVyIHBhY2tldCBzdGF0dXMuCisKKwkqIGRsbHMvc2V0dXBhcGkvTWFrZWZpbGUuaW4sIGRsbHMvc2V0dXBhcGkvbWlzYy5jLAorCSAgZGxscy9zZXR1cGFwaS9zZXR1cGFwaS5zcGVjOgorCUVyaWMgS29obCA8ZXJpYy5rb2hsQHQtb25saW5lLmRlPgorCUltcGxlbWVudCBNeUZyZWUsIE15TWFsbG9jIGFuZCBNeVJlYWxsb2MuCisKKwkqIHRvb2xzL3dpZGwvd3JpdGVfbXNmdC5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUFkZCByZWZlcmVuY2VkIHR5cGVzIHRoYXQgYXJlbid0IGFscmVhZHkgaW4gdGhlIHR5cGVsaWIuCisKKwkqIGRsbHMvZHNvdW5kL2J1ZmZlci5jLCBkbGxzL2Rzb3VuZC9jYXB0dXJlLmMsIGRsbHMvZHNvdW5kL2Rzb3VuZC5jLAorCSAgZGxscy9kc291bmQvZHNvdW5kX21haW4uYywgZGxscy9kc291bmQvbWl4ZXIuYywKKwkgIGRsbHMvZHNvdW5kL3ByaW1hcnkuYywgZGxscy9kc291bmQvcHJvcHNldC5jLCBkbGxzL2Rzb3VuZC9yZWdzdnIuYywKKwkgIGRsbHMvZHNvdW5kL3NvdW5kM2QuYzoKKwlSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCVJlbW92ZSB1bnVzZWQgaW5jbHVkZXMuCisKKwkqIGRsbHMvbXNpL21zaS5jLCBkbGxzL21zaS9tc2lwcml2LmgsIGRsbHMvbXNpL3BhY2thZ2UuYzoKKwlBdm9pZCB1bm5lY2Vzc2FyeSBydW4tdGltZSBpbml0aWFsaXphdGlvbnMuCisKKwkqIGRsbHMvcnNhZW5oL3JzYWVuaC5jLCBkbGxzL3JzYWVuaC90ZXN0cy9yc2FlbmguYzoKKwlNaWNoYWVsIEp1bmcgPG1qdW5nQGlzcy50dS1kYXJtc3RhZHQuZGU+CisJU3VwcG9ydCBmb3IgVExTMSBwc2V1ZG8gcmFuZG9tIGZ1bmN0aW9uLgorCVNvbWUgaGVscGVyIGZ1bmN0aW9ucyBmb3IgREFUQV9CTE9CJ3MuCisJQ29tcHV0aW5nIFRMUzEgbWFzdGVyIHNlY3JldCBmcm9tIHRoZSBwcmUtbWFzdGVyIHNlY3JldC4KKwlEZXJpdmluZyB0aGUgbWFzdGVyIGhhc2ggZnJvbSB0aGUgbWFzdGVyIHNlY3JldC4KKwlEZXJpdmluZyBUTFMxIE1BQyBhbmQgZW5jcnlwdGlvbiBrZXlzIGZyb20gdGhlIG1hc3RlciBoYXNoLgorCVRlc3RzIGZvciBtb3N0IG9mIHRoZSBhYm92ZS4KKworCSogZGxscy9udGRsbC9sb2FkZXIuYywgZGxscy9udGRsbC9udGRsbC5zcGVjLCBpbmNsdWRlL3dpbnRlcm5sLmg6CisJSXZhbiBMZW8gUHVvdGkgPGl2YW5sZW9AZ21haWwuY29tPgorCUFkZGVkIE50TG9hZERyaXZlciBhbmQgTnRVbmxvYWREcml2ZXIgc3R1YnMuCisKKwkqIGRsbHMvZDNkOS9iYXNldGV4dHVyZS5jLCBkbGxzL2QzZDkvY3ViZXRleHR1cmUuYywgZGxscy9kM2Q5L2RldmljZS5jLAorCSAgZGxscy9kM2Q5L2RpcmVjdHguYywgZGxscy9kM2Q5L2luZGV4YnVmZmVyLmMsCisJICBkbGxzL2QzZDkvcGl4ZWxzaGFkZXIuYywgZGxscy9kM2Q5L3F1ZXJ5LmMsIGRsbHMvZDNkOS9yZXNvdXJjZS5jLAorCSAgZGxscy9kM2Q5L3N0YXRlYmxvY2suYywgZGxscy9kM2Q5L3N1cmZhY2UuYywgZGxscy9kM2Q5L3N3YXBjaGFpbi5jLAorCSAgZGxscy9kM2Q5L3RleHR1cmUuYywgZGxscy9kM2Q5L3ZlcnRleGJ1ZmZlci5jLAorCSAgZGxscy9kM2Q5L3ZlcnRleGRlY2xhcmF0aW9uLmMsIGRsbHMvZDNkOS92ZXJ0ZXhzaGFkZXIuYywKKwkgIGRsbHMvZDNkOS92b2x1bWUuYywgZGxscy9kM2Q5L3ZvbHVtZXRleHR1cmUuYywKKwkgIGRsbHMvZDNkOC9iYXNldGV4dHVyZS5jLCBkbGxzL2QzZDgvY3ViZXRleHR1cmUuYywgZGxscy9kM2Q4L2RldmljZS5jLAorCSAgZGxscy9kM2Q4L2RpcmVjdHguYywgZGxscy9kM2Q4L2luZGV4YnVmZmVyLmMsIGRsbHMvZDNkOC9yZXNvdXJjZS5jLAorCSAgZGxscy9kM2Q4L3N1cmZhY2UuYywgZGxscy9kM2Q4L3N3YXBjaGFpbi5jLCBkbGxzL2QzZDgvdGV4dHVyZS5jLAorCSAgZGxscy9kM2Q4L3ZlcnRleGJ1ZmZlci5jLCBkbGxzL2QzZDgvdm9sdW1lLmMsCisJICBkbGxzL2QzZDgvdm9sdW1ldGV4dHVyZS5jOgorCVBhdWwgVnJpZW5zIDxQYXVsLlZyaWVuc0B4czRhbGwubmw+CisJLSB1c2UgSW50ZXJsb2NrZWQqIGZ1bmN0aW9ucyBpbiBBZGRSZWYgYW5kIFJlbGVhc2UuCisJLSBzdG9yZSB0aGUgcmVzdWx0IG9mIHRoZSBJbnRlcmxvY2tlZCBmdW5jdGlvbnMgYW5kIHVzZSBvbmx5IHRoaXMuCisKKwkqIGRvY3VtZW50YXRpb24vZmFxLnNnbWw6CisJVG9ueSBMYW1icmVndHMgPHRvbnlfbGFtYnJlZ3RzQHRlbHVzcGxhbmV0Lm5ldD4KKwlBZGQgbWlzc2luZyAvJ3MgdG8gdXJscyBodHRwOi8vd3d3LmN5Z3dpbi5jb20gYW5kCisJaHR0cDovL3d3dy5taW5ndy5vcmcuCisKKwkqIGRsbHMvdXNlci9zeXNwYXJhbXMuYzogQmVybmQgRnVocm1hbm4gPHNpbHZlcmJhbmFuYUBnbXguZGU+CisJQWRkZWQgZml4bWUgbWFjcm9zIGluIFN5c3RlbVBhcmFtZXRlcnNJbmZvVyBmb3Igc2V2ZXJhbCBhY3Rpb24gbnVtYmVycworCXRoYXQgYXJlIHlldCB1bmltcGxlbWVudGVkLgorCisJKiB0b29scy93aWRsL3dyaXRlX21zZnQuYzogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggaGFuZGxpbmcgb2Ygdm9pZC4KKworCSogZGxscy9kc291bmQvYnVmZmVyLmMsIGRsbHMvZHNvdW5kL2NhcHR1cmUuYywgZGxscy9kc291bmQvZHNvdW5kLmMsCisJICBkbGxzL2Rzb3VuZC9kc291bmRfbWFpbi5jLCBkbGxzL2Rzb3VuZC9taXhlci5jLAorCSAgZGxscy9kc291bmQvcHJpbWFyeS5jLCBkbGxzL2Rzb3VuZC9wcm9wc2V0LmM6CisJUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlVc2UgV2luZG93cyBtZW1vcnkgZnVuY3Rpb25zLgorCisJKiBkbGxzL3dpbnRhYjMyL2NvbnRleHQuYywgZGxscy93aW50YWIzMi93aW50YWIzMi5jLAorCSAgZGxscy94MTFkcnYvd2ludGFiLmM6CisJUm9iZXJ0IE5vcnRoIDw3b3ducTBrNDAyQHNuZWFrZW1haWwuY29tPgorCS0gRG9uJ3QgcG9zdCBtZXNzYWdlcyBvbiBXaW5lIG1lc3NhZ2UgcXVldWUsIGlmIHRhYmxldCBjb250ZXh0IGZsYWdzCisJICBwb3N0aW5nIGFyZSBkaXNhYmxlZC4KKwktIFdoZW4gcG9zdGluZyBtZXNzYWdlcyBvbiBXaW5lIG1lc3NhZ2UgcXVldWUsIHVzZSBtZXNzYWdlIGJhc2Ugc3RvcmVkCisJICBpbiB0YWJsZXQgY29udGV4dCwgbm90IHRoZSBkZWZhdWx0IG1lc3NhZ2UgYmFzZS4KKwktIEVuc3VyZSB0aGF0IFgxMSBQcm94aW1pdHkgZXZlbnRzIHB1dCBtZXNzYWdlcyBvbnRvIFdpbnRhYiBtZXNzYWdlCisJICBxdWV1ZS4KKworCSogZGxscy9kM2RybS92ZXJzaW9uLnJjLCBpbmNsdWRlL01ha2VmaWxlLmluLCBpbmNsdWRlL2QzZHJtLmg6CisJUGV0ZXIgQmVyZyBMYXJzZW4gPHBlYmxAbWF0aC5rdS5kaz4KKwlBZGRlZCBhIHNpbXBsZSBkM2RybS5oIGhlYWRlci4KKwlDb3JyZWN0ZWQgYSBjb3B5L3Bhc3RlIHR5cG8gZnJvbSBkM2RpbS4KKworCSogZGxscy9kbXN0eWxlL2F1ZGl0aW9udHJhY2suYywgZGxscy9kbXN0eWxlL2Nob3JkdHJhY2suYywKKwkgIGRsbHMvZG1zdHlsZS9jb21tYW5kdHJhY2suYywgZGxscy9kbXN0eWxlL2Rtc3R5bGVfbWFpbi5jLAorCSAgZGxscy9kbXN0eWxlL21vdGlmdHJhY2suYywgZGxscy9kbXN0eWxlL211dGV0cmFjay5jLAorCSAgZGxscy9kbXN0eWxlL3N0eWxlLmMsIGRsbHMvZG1zdHlsZS9zdHlsZXRyYWNrLmMsCisJICBkbGxzL2Rtc2NyaXB0L2Rtc2NyaXB0X21haW4uYywgZGxscy9kbXNjcmlwdC9zY3JpcHQuYywKKwkgIGRsbHMvZG1zY3JpcHQvc2NyaXB0dHJhY2suYzoKKwlQYXVsIFZyaWVucyA8UGF1bC5WcmllbnNAeHM0YWxsLm5sPgorCS0gdXNlIEludGVybG9ja2VkKiBmdW5jdGlvbnMgaW4gQWRkUmVmIGFuZCBSZWxlYXNlLgorCS0gc3RvcmUgdGhlIHJlc3VsdCBvZiB0aGUgSW50ZXJsb2NrZWQgZnVuY3Rpb25zIGFuZCB1c2Ugb25seSB0aGlzLgorCisJKiBkbGxzL2NvbW1kbGcvY2RsZ19Fcy5yYzogSm9z6SBNYW51ZWwgRmVycmVyIE9ydGl6IDxqbWZvMTk4MkB5YWhvby5lcz4KKwlVcGRhdGVkIFNwYW5pc2ggcmVzb3VyY2VzLgorCisJKiBkbGxzL3JzYWVuaC9pbXBsZ2x1ZS5jOiBNaWNoYWVsIEp1bmcgPG1qdW5nQGlzcy50dS1kYXJtc3RhZHQuZGU+CisJUmVtb3ZlZCBhbm90aGVyIGNoZWNrIGZvciB2YWxpZCduZXNzIG9mIGFsZ2lkLiBJdCdzIHJlZHVuZGFudC4KKworCSogZGxscy9kM2Q4L3NoYWRlci5jLCBkbGxzL2RpbnB1dC9kaW5wdXRfbWFpbi5jLAorCSAgZGxscy9kaW5wdXQvam95c3RpY2tfbGludXguYywgZGxscy9vbGVhdXQzMi90ZXN0cy92YXJ0ZXN0LmM6CisJUultaSBBc3NhaWxseSA8cmVtaS5hc3NhaWxseUBmcmVlLmZyPgorCWNoYXIgLT4gY29uc3QgY2hhciBmaXhlcy4KKworCSogaW5jbHVkZS93aW5jcnlwdC5oOiBNaWNoYWVsIEp1bmcgPG1qdW5nQGlzcy50dS1kYXJtc3RhZHQuZGU+CisJQWRkZWQgQ1JZUFRfU0VSVkVSIGRlZmluZS4KKworCSogdG9vbHMvd2lkbC93cml0ZV9tc2Z0LmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJQWRkIHN1cHBvcnQgZm9yIGhpZGRlbiBhbmQgcmVzdHJpY3RlZCBmdW5jdGlvbiBhdHRyaWJ1dGVzLgorCUFkZCBzdXBwb3J0IGZvciBvZGwgaW50ZXJmYWNlIGF0dHJpYnV0ZS4KKworCSogZGxscy9udGRsbC9oZWFwLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJTWFrZSBIZWFwRnJlZShOVUxMKSBjYXNlIGZhc3RlciBieSByZXRyaWV2aW5nIGhlYXAgcG9pbnRlciBhZnRlciB0aGUKKwltZW1vcnkgYmxvY2sgcG9pbnRlciB0ZXN0LgorCisJKiBkbGxzL2Rzb3VuZC9kc291bmQuYywgZGxscy9kc291bmQvZHNvdW5kX3ByaXZhdGUuaCwKKwkgIGRsbHMvZHNvdW5kL21peGVyLmM6CisJUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlGaXhlZCBtZW1vcnkgbGVhayBpbiBtaXhlciBjb2RlLgorCisJKiBkbGxzL2NvbW1kbGcvY2RsZy5oLCBkbGxzL2NvbW1kbGcvY2RsZ19Fbi5yYywKKwkgIGRsbHMvY29tbWRsZy9wcmludGRsZy5jOgorCVJvYmVydCBTaGVhcm1hbiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KKwktIERyYXcgYSByZXByZXNlbnRhdGlvbiBvZiBhIGRvY3VtZW50IGluIHRoZSBwYWdlIHNldHVwIGRpYWxvZy4KKwktIENoYW5nZSBzb21lIEZJWE1FJ3MgdG8gVFJBQ0UncyBiZWNhdXNlIGV2ZXJ5dGhpbmcgd2UgbmVlZCBpcworCSAgaW1wbGVtZW50ZWQgYW5kIHRoZXkgZmlyZSBmb3Igb25lcyB0aGF0IHdlIGRvbid0IG5lZWQgdG8gaW1wbGVtZW50LgorCisJKiBkbGxzL250ZGxsL3ZpcnR1YWwuYzogR2VyYWxkIFBmZWlmZXIgPGdlcmFsZEBwZmVpZmVyLmNvbT4KKwlGaXggZm9ybWF0IHN0cmluZyBpbiBOdFF1ZXJ5VmlydHVhbE1lbW9yeSgpLgorCisJKiBkbGxzL21zaS9wYWNrYWdlLmM6IEFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJVGhlIG5ldyBJbnNlcnQgZml4ZXMgbm93IHByb3Blcmx5IHJlcXVpcmUgPyw/IGluc3RlYWQgb2YganVzdCA/IGZvcgorCXRoZSBJbnNlcnQgY2FsbC4gVGhpcyBmaXggbW9kaWZpZXMgdGhlIE1TSV9TZXRQcm9wZXJ0eSBxdWVyeSB0byBiZQorCWNvcnJlY3QuCisKKwkqIGRsbHMvbXNpL3N1bWluZm8uYzogQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBbiBpbXBsZW1lbnRhdGlvbiBvZiBNc2lTdW1tYXJ5SW5mb0dldFByb3BlcnR5VyBiYXNlZCBvZmYgb2YKKwlNc2lTdW1tYXJ5SW5mb0dldFByb3BlcnR5QS4KKworCSogZGxscy9vbGUzMi9jb21wb2JqX3ByaXZhdGUuaCwgZGxscy9vbGUzMi9tYXJzaGFsLmM6CisJUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCS0gQWRkIGEgbmV3IGZsYWcgU09SRlBfTk9MSUZFVElNRU1HTVQgdG8gdGVsbCB0aGUgcHJveHkgbWFuYWdlciBub3QgdG8KKwkgIGNhbGwgYW55IElSZW1Vbmtub3duIGZ1bmN0aW9ucy4KKwktIE1vdmUgdGhlIGxvdy1sZXZlbCB1bm1hcnNoYWxpbmcgY29kZSBpbnRvIGEgbmV3IGZ1bmN0aW9uLAorCSAgdW5tYXJzaGFsX29iamVjdCwgc28gdGhhdCBpdCBjYW4gYmUgZWFzaWx5IHJldXNlZCBmb3IgdW5tYXJzaGFsaW5nCisJICBJUmVtVW5rbm93bi4KKworCSogZGxscy94MTFkcnYvd2ludGFiLmM6IFJvYmVydCBOb3J0aCA8N293bnEwazQwMkBzbmVha2VtYWlsLmNvbT4KKwlHZW5lcmF0ZSBXaW50YWIgcGFja2V0cyBmb3IgWElucHV0IGJ1dHRvbiB1cC9kb3duIGV2ZW50cy4KKworCSogZGxscy9tc2kvbXNpLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlJbmRlbnRhdGlvbiBhbmQgc3R5bGUgY2xlYW51cC4KKworMjAwNS0wMS0yMSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy91c2VyL3Rlc3RzL21zZy5jLCBkbGxzL3gxMWRydi93aW5wb3MuYzoKKwlUd2VhayBTZXRXaW5kb3dQb3MgZmxhZ3MgaGFuZGxpbmcgdG8gbWFrZSBhIGZldyBtb3JlIG9mIHRoZSBtZXNzYWdpbmcKKwl0ZXN0cyBwYXNzLgorCisJKiB0b29scy93aWRsL3dyaXRlX21zZnQuYzogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlCaXQgMHgwMjAwIGFsd2F5cyBhcHBlYXJzIHRvIGJlIHNldCBpbiB0aGUgdHlwZWluZm8ncworCXR5cGVraW5kL2FsaWdubWVudCBtZW1iZXIuCisKKwkqIHdpbmRvd3Mvd2lucG9zLmM6CisJTWF4IHRyYWNraW5nIHNpemUgaW4gV01fR0VUTUlOTUFYSU5GTyBzaG91bGQgdGFrZSBpbnRvIGFjY291bnQgdGhlCisJd2luZG93IGZyYW1lLgorCisJKiB0b29scy93aWRsL3dyaXRlX21zZnQuYzogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlbbG9jYWxdIGZ1bmN0aW9ucyBzaG91bGQgbm90IGJlIHdyaXR0ZW4gdG8gdGhlIHR5cGVsaWIuCisKKwkqIGRsbHMvbXNpL2FjdGlvbi5jLCBkbGxzL21zaS9tc2lwcml2LmgsIGRsbHMvbXNpL21zaXF1ZXJ5LmM6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCU1vdmUgT3BlblF1ZXJ5IGludG8gbXNpcXVlcnkuYyBhbmQgbWFrZSBpdCBub24tc3RhdGljLgorCisJKiBkbGxzL2NvbWN0bDMyL3N0YXR1cy5jOiBHdW5uYXIgRGFsc25lcyA8aGFyZG9uQG9ubGluZS5ubz4KKwlHZSB2YW4gR2VsZG9ycCA8Z3ZnQHJlYWN0b3MuY29tPgorCVNUQVRVU0JBUl9TZXRUZXh0VDoKKwktIG50ZXh0IHdhc24ndCBmcmVlZCBvbiByZXR1cm4gaWYgdGV4dCB3YXMgdW5pY29kZQorCS0gcGFydC0+dGV4dCB3YXMgYWx3YXlzIGZyZWVkLCBidXQgaWYgdGhlIHByZXZpb3VzIHN0eWxlIHdhcworCSAgU0JUX09XTkVSRFJBVywgcGFydC0+dGV4dCB3b3VsZCBjb250YWluIDMyYml0IGRhdGEKKwktIGZyZWUgb2xkIHRleHQgaWYgbmV3IHN0eWxlIGlzIFNCVF9PV05FUkRSQVcgYnV0IG9sZCBzdHlsZSB3YXNuJ3QKKworCSogZGxscy9zaGx3YXBpL3Rlc3RzL3NocmVnLmM6IFBhdWwgVnJpZW5zIDxQYXVsLlZyaWVuc0B4czRhbGwubmw+CisJLSBNb3JlIHZlcmJvc2Ugb3V0cHV0IG9mIGVycm9ycy4KKwktIEJhaWwgb3V0IGlmIGZpcnN0IHRlc3QgZmFpbHMgKHByb2R1Y2Ugb25lIGVycm9yIG9ubHkpLgorCisJKiBkbGxzL3R0eWRydi93bmQuYywgZGxscy91c2VyL3Njcm9sbC5jLCBkbGxzL3VzZXIvdXNlcjMyLnNwZWMsCisJICBkbGxzL3gxMWRydi93aW5kb3cuYywgZGxscy94MTFkcnYvd2lucG9zLmMsIGluY2x1ZGUvd2luLmgsCisJICB3aW5kb3dzL2RlZnduZC5jLCB3aW5kb3dzL3dpbi5jOgorCU1ha2UgV0lOX1NldFN0eWxlIG1vcmUgdGhyZWFkLXNhZmUgYnkgc3BlY2lmeWluZyB0aGUgYml0cyB0byBjaGFuZ2UKKwlpbnN0ZWFkIG9mIHRoZSBuZXcgdmFsdWUuCisKKwkqIHRvb2xzL3dpZGwvcHJveHkuYzogUultaSBBc3NhaWxseSA8cmVtaS5hc3NhaWxseUBmcmVlLmZyPgorCVNtYWxsIGNoYXIgLT4gY29uc3QgY2hhciBmaXguCisKKwkqIGRsbHMvZDNkeDgvZDNkeGJ1ZmZlci5jLCBkbGxzL2RtYmFuZC9iYW5kLmMsIGRsbHMvZG1iYW5kL2JhbmR0cmFjay5jLAorCSAgZGxscy9kbWJhbmQvZG1iYW5kX21haW4uYzoKKwlQYXVsIFZyaWVucyA8UGF1bC5WcmllbnNAeHM0YWxsLm5sPgorCS0gVXNlIEludGVybG9ja2VkKiBmdW5jdGlvbnMgaW4gQWRkUmVmIGFuZCBSZWxlYXNlLgorCS0gU3RvcmUgdGhlIHJlc3VsdCBvZiB0aGUgSW50ZXJsb2NrZWQgZnVuY3Rpb25zIGFuZCB1c2Ugb25seSB0aGlzLgorCisJKiBkbGxzL21zaS9NYWtlZmlsZS5pbiwgZGxscy9tc2kvbXNpLnNwZWMsIGRsbHMvbXNpL21zaXByaXYuaCwKKwkgIGRsbHMvbXNpL3ByZXZpZXcuYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJQWRkZWQgc3R1YiBpbXBsZW1lbnRhdGlvbnMgZm9yIE1zaVByZXZpZXdEaWFsb2cgYW5kCisJTXNpUHJldmlld0JpbGxib2FyZC4KKworCSogZGxscy9tc2kvbXNpcXVlcnkuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUxvY2sgcmVjb3JkIGluIE1zaVZpZXdFeGVjdXRlLCBtb3ZlIHN0dWJzIHRvIGVuZC4KKworCSogZGxscy9zaGVsbDMyL3NobHZpZXcuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUltcGxlbWVudCBHZXRBZHZpc2UgYW5kIFNldEFkdmlzZS4KKworCSogaW5jbHVkZS9udHNlY2FwaS5oOiBKdWFuIExhbmcgPGp1YW5fbGFuZ0B5YWhvby5jb20+CisJQWRkZWQgc29tZSBkZWZpbml0aW9ucy4KKworCSogZGxscy9vbGUzMi9ycGMuYzogTWlrZSBIZWFybiA8bWhAY29kZXdlYXZlcnMuY29tPgorCVZhcmlvdXMgZm9ybWF0dGluZy9zdHlsZSBjaGFuZ2VzLgorCisJKiBwcm9ncmFtcy93aW5ldGVzdC9NYWtlZmlsZS5pbjoKKwlTdGVmYW4gTGVpY2h0ZXIgPFN0ZWZhbi5MZWljaHRlckBjYW1MaW5lLmNvbT4KKwlJbmNsdWRlIG5ldyB0ZXN0cy4KKworCSogZGxscy9xdWFydHovcmVnc3ZyLmM6IE1pa2UgSGVhcm4gPG1oQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggaGVhcCBjb3JydXB0aW9uIGluIHF1YXJ0eiBzZXJ2ZXIgcmVnaXN0cmF0aW9uLCBhZGQgc29tZQorCXdoaXRlc3BhY2UsIGJyZWFrIG91dCBvZiBsb29wIGlmIG91dCBvZiBtZW1vcnkuCisKKzIwMDUtMDEtMjAgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvdXNlci9zeXNwYXJhbXMuYywgZGxscy91c2VyL3Rlc3RzL3N5c3BhcmFtcy5jOgorCUp1c3RpbiBDaGV2cmllciA8amNoZXZyaWVyQG5leGljb20ubmV0PgorCS0gSW1wbGVtZW50ZWQgU1BJX1NFVElDT05NRVRSSUNTLgorCS0gRml4ZWQgU1BJX0dFVElDT05USVRMRUxPR0ZPTlQgdG8gb25seSByZXR1cm4gdmFsdWVzIHJldHJpZXZlZCBmcm9tCisJICB3aW4uaW5pIG9uIGZpcnN0IGNhbGwgYW5kIHJldHVybiBhIGNhY2hlZCB2ZXJzaW9uIGluIHN1YnNlcXVlbnQKKwkgIGNhbGxzLgorCS0gQ3JlYXRlZCB1bml0IHRlc3QgZm9yIFNQSV97R0VULFNFVH1JQ09OTUVUUklDUy4KKworCSogZGxscy9tc2kvaW5zZXJ0LmMsIGRsbHMvbXNpL3NxbC55LCBkbGxzL21zaS90ZXN0cy9kYi5jOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggYW5kIHRlc3QgaW5zZXJ0aW5nIHJlY29yZHMuCisKKwkqIGRsbHMveDExZHJ2L2V2ZW50LmMsIGRsbHMveDExZHJ2L3dpbmRvdy5jLCBkbGxzL3gxMWRydi94MTFkcnYuaCwKKwkgIGRsbHMveDExZHJ2L3hmb250LmM6CisJUultaSBBc3NhaWxseSA8cmVtaS5hc3NhaWxseUBmcmVlLmZyPgorCUFkZGVkIG1pc3NpbmcgZGVjbGFyYXRpb25zLgorCisJKiBkbGxzL21zaS9oYW5kbGUuYywgZGxscy9tc2kvbXNpLmMsIGRsbHMvbXNpL21zaXByaXYuaCwKKwkgIGRsbHMvbXNpL21zaXF1ZXJ5LmM6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUZpeCByZWZjb3VudGluZywgdXNlIEludGVybG9ja2VkIGZ1bmN0aW9ucy4KKworCSogdG9vbHMvd2lkbC9wYXJzZXIueTogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlEb24ndCBzZXQgQVRUUl9JTiBvciBBVFRSX09VVCBieSBkZWZhdWx0IC0gdGhpcyBlc3NlbnRpYWxseSByZXZlcnRzCisJcmV2LiAxLjIxLiAgVGhlIHByb3h5IGNvZGUgbXVzdCBleHBsaWNpdGx5IGFkZCB0aGVzZSBpZiB0aGV5J3JlCisJbmVlZGVkLgorCisJKiB0b29scy93aWRsL3dyaXRlX21zZnQuYzogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlCZXR0ZXIgZ3VpZCBoYXNoLgorCisJKiBkbGxzL3VzZXIvbWVudS5jLCBkbGxzL3VzZXIvc2Nyb2xsLmMsIGRsbHMveDExZHJ2L2V2ZW50LmMsCisJICBkbGxzL3gxMWRydi93aW5kb3cuYywgZGxscy94MTFkcnYvd2lucG9zLmMsIHdpbmRvd3MvZGlhbG9nLmMsCisJICB3aW5kb3dzL21kaS5jLCB3aW5kb3dzL25vbmNsaWVudC5jLCB3aW5kb3dzL3dpbi5jLCB3aW5kb3dzL3dpbnBvcy5jOgorCVJlcGxhY2UgYSBudW1iZXIgb2YgY2FsbHMgdG8gV0lOX0ZpbmRXbmRQdHIgYnkgV0lOX0dldFB0ci4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRsbHMvYWR2cGFjay9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvYWR2cGFjay9hZHZwYWNrLmMsIGRsbHMvYWR2cGFjay9hZHZwYWNrLnNwZWMsCisJICBkbGxzL2FkdnBhY2svdGVzdHMvLmN2c2lnbm9yZSwgZGxscy9hZHZwYWNrL3Rlc3RzL01ha2VmaWxlLmluLAorCSAgZGxscy9hZHZwYWNrL3Rlc3RzL2FkdnBhY2suYywgaW5jbHVkZS9hZHZwdWIuaDoKKwlSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUFkZGVkIHN0dWJzIGZvciBOZWVkUmVib290SW5pdCBhbmQgTmVlZFJlYm9vdC4KKwlBZGRlZCBpbXBsZW1lbnRhdGlvbnMgZm9yIEdldFZlcnNpb25Gcm9tRmlsZSBhbmQKKwlHZXRWZXJzaW9uRnJvbUZpbGVFeC4KKwlBZGRlZCB0ZXN0IGZvciBHZXRWZXJzaW9uRnJvbUZpbGUuCisKKwkqIGRsbHMvbnRkbGwvdmlydHVhbC5jLCBkbGxzL3BzYXBpL3BzYXBpLnNwZWMsIGRsbHMvcHNhcGkvcHNhcGlfbWFpbi5jLAorCSAgaW5jbHVkZS9wc2FwaS5oLCBpbmNsdWRlL3dpbnRlcm5sLmg6CisJSGFucyBMZWlkZWtrZXIgPGhhbnNAaXQudnUubmw+CisJU3R1YiBpbXBsZW1lbnRhdGlvbnMgZm9yIEVudW1QYWdlRmlsZXN7QSxXfSwgR2V0UHJvY2Vzc0ltYWdlRmlsZU5hbWV7QSxXfS4KKwlJbXBsZW1lbnQgR2V0UGVyZm9ybWFuY2VJbmZvLCBHZXRQcm9jZXNzTWVtb3J5SW5mbyBvbiB0b3Agb2YKKwlOdFF1ZXJ5SW5mb3JtYXRpb25Qcm9jZXNzIGFuZCBHZXRXc0NoYW5nZXMsIFF1ZXJ5V29ya2luZ1NldHssRXh9IG9uCisJdG9wIG9mIE50UXVlcnlWaXJ0dWFsTWVtb3J5LgorCisJKiBkbGxzL3VzZXIvbWlzYy5jLCBkbGxzL3VzZXIvdXNlcjMyLnNwZWM6CisJVGFuYWJlIEhpcm9zaGkgPGhpcm9rdW5fZGF5b21vbkBpbmZvc2Vlay50bz4KKwlBZGRlZCBzdHVicyBmb3IgU2VuZElNRU1lc3NhZ2VFeFtBLFddLgorCisJKiBkbGxzL21zaS90YWJsZS5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJRml4IGEgYnVnIGNhdXNlZCBieSBmcmVlaW5nIG1lbW9yeSB0b28gc29vbiBpbiB0aGUgdGFibGUgY29kZS4KKworCSogdG9vbHMvd2lkbC93cml0ZV9tc2Z0LmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJTUlETCBhZGRzIHR3byBzZXRzIG9mIGN1c3RvbSBkYXRhIHRvIHRoZSBsaWJyYXJ5OiBvbmUgaXMgYSB0aW1lc3RhbXAKKwlhbmQgdGhlIHNlY29uZCBpcyBNSURMJ3MgdmVyc2lvbiBudW1iZXIuCisKKwkqIGRsbHMvY29tbWRsZy9jZGxnX1J1LnJjOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUNvcnJlY3QgY29vcmRpbmF0ZXMgb2YgYSBjb3VwbGUgb2YgY29udHJvbHMuCisKKwkqIGluY2x1ZGUvbXNpcXVlcnkuaDogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCURlY2xhcmUgdGhlIHByZXZpZXcgZnVuY3Rpb25zLgorCisJKiBkbGxzL2QzZHhvZi9kM2R4b2YuYywgZGxscy9kM2R4b2YvZDNkeG9mX3ByaXZhdGUuaDoKKwlQYXVsIFZyaWVucyA8UGF1bC5WcmllbnNAeHM0YWxsLm5sPgorCS0gVXNlIEludGVybG9ja2VkKiBmdW5jdGlvbnMgaW4gQWRkUmVmIGFuZCBSZWxlYXNlLgorCS0gU3RvcmUgdGhlIHJlc3VsdCBvZiB0aGUgSW50ZXJsb2NrZWQgZnVuY3Rpb25zIGFuZCB1c2Ugb25seSB0aGlzLgorCisJKiBkbGxzL250ZGxsL3RpbWUuYzogVG9ueSBMYW1icmVndHMgPHRvbnlfbGFtYnJlZ3RzQHRlbHVzcGxhbmV0Lm5ldD4KKwlBZGRlZCB0aW1lIHpvbmUgaW5mb3JtYXRpb24gZm9yIFNBTVQgKFNhbWFyYSBTdGFuZGFyZCBUaW1lKS4KKworCSogZGxscy9udGRsbC9zZWMuYzogVWxyaWNoIEN6ZWthbGxhIDx1bHJpY2hAY29kZXdlYXZlcnMuY29tPgorCUFDTCBmaXhlcyBhbmQgY2xlYW51cHMuCisKKwkqIGRsbHMvY2ZnbWdyMzIvY2ZnbWdyMzIuc3BlYywgZGxscy9jZmdtZ3IzMi9tYWluLmM6CisJPEFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJQWRkZWQgc29tZSBzdHViIGltcGxlbWVudGF0aW9ucy4KKworCSogZGxscy9tc2kvYWN0aW9uLmMsIGRsbHMvbXNpL2NvbmQueSwgZGxscy9tc2kvZGlzdGluY3QuYywKKwkgIGRsbHMvbXNpL21zaS5jLCBkbGxzL21zaS9vcmRlci5jLCBkbGxzL21zaS9wYWNrYWdlLmMsCisJICBkbGxzL21zaS9zdHJpbmcuYywgZGxscy9tc2kvc3VtaW5mby5jLCBkbGxzL21zaS90YWJsZS5jLAorCSAgZGxscy9tc2kvd2hlcmUuYzoKKwlNaWNoYWVsIFN0ZWZhbml1YyA8bXN0ZWZhbmlAcmVkaGF0LmRlPgorCURvIG5vdCBjaGVjayBmb3Igbm9uIE5VTEwgcG9pbnRlciBiZWZvcmUgSGVhcEZyZWUnaW5nIGl0LiBJdCdzCisJcmVkdW5kYW50LgorCisJKiBkbGxzL29sZTMyL2NvbXBvYmouYywgZGxscy9vbGUzMi9tYXJzaGFsLmM6CisJUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCS0gQ29uc29saWRhdGUgbW9yZSBzdHViIGNyZWF0aW9uIGRldGFpbHMgaW50byByZWdpc3Rlcl9pZnN0dWIuCisJLSBSZXBsYWNlIHRoZSBjdXJyZW50IHdpbmVfbWFyc2hhbF9pZCBzdHJ1Y3R1cmUgd2l0aCBTVERPQkpSRUYgZm9yIHRoZQorCSAgb24tdGhlLXdpcmUgZm9ybWF0LgorCisJKiBkbGxzL25ldGFwaTMyL25ldGFwaTMyLnNwZWMsIGRsbHMvbmV0YXBpMzIvd2tzdGEuYywKKwkgIGluY2x1ZGUvTWFrZWZpbGUuaW4sIGluY2x1ZGUvbG0uaCwgaW5jbHVkZS9sbWpvaW4uaDoKKwlVbHJpY2ggQ3pla2FsbGEgPHVscmljaEBjb2Rld2VhdmVycy5jb20+CisJQWRkZWQgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBOZXRHZXRKb2luSW5mb3JtYXRpb24uCisKKzIwMDUtMDEtMTkgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMva2VybmVsL2xvY2FsZS5jLCBkbGxzL2tlcm5lbC9ubHMvdWtyLm5scywgZGxscy9tbGFuZy9tbGFuZy5jLAorCSAgZGxscy94MTFkcnYva2V5Ym9hcmQuYywgZGxscy94MTFkcnYveGZvbnQuYywKKwkgIGxpYnMvdW5pY29kZS9NYWtlZmlsZS5pbiwgbGlicy91bmljb2RlL2NfMjE4NjYuYywKKwkgIGxpYnMvdW5pY29kZS9jcG1hcC5wbCwgbGlicy91bmljb2RlL2NwdGFibGUuYzoKKwlPbGVoIFIuIE55a3lmb3JjaHluIDxuaWNrQHB1LmlmLnVhPgorCVVrcmFpbmlhbiBjb2RlcGFnZSAyMTg2NiBhZGRlZCBhbmQgcmVzcGVjdGl2ZSBmaWxlcyBjb3JyZWN0ZWQuIFR3bworCWtleWJvYXJkIGxheW91dHMgKGZvciBVa3JhaW5pYW4gYW5kIFJ1c3NpYW4pIGFkZGVkLgorCisJKiBpbmNsdWRlL3dpbmUvd2luZWQzZF9pbnRlcmZhY2UuaDoKKwlNaWNoYWVsIFN0ZWZhbml1YyA8bXN0ZWZhbmlAcmVkaGF0LmRlPgorCUhhY2sgdG8gZml4IHRoZSBjb21waWxlLgorCisJKiB3aW5kb3dzL3dpbi5jOiBVbHJpY2ggQ3pla2FsbGEgPHVscmljaEBjb2Rld2VhdmVycy5jb20+CisJSGFuZGxlIGNhc2Ugd2hlbiBvbmx5IGhlaWdodCBpcyBzZXQgdG8gQ1dfVVNFREVGQVVMVC4KKworCSogZG9jdW1lbnRhdGlvbi93aW5lZGV2LWNvZGluZy5zZ21sOgorCUJpbGwgTWVkbGFuZCA8YmlsbG1lZGxhbmRAbWVyY3VyeXNwZWVkLmNvbT4KKwlUcml2aWFsIGxhbmd1YWdlIGNvcnJlY3Rpb25zIHRvIHRoZSBXaW5lIERldmVsb3BlcidzIEd1aWRlIGNvZGluZworCXNlY3Rpb24uCisKKwkqIGRsbHMvdXNlci9lZGl0LmM6IExhdXJpIFR1bG1pbiA8bGF1cmlfQHV0LmVlPgorCVJlcG9zaXRpb24gY2FyZXQgYWZ0ZXIgd2luZG93IHJlc2l6ZS4KKworCSogZGxscy93aW5lZDNkL01ha2VmaWxlLmluLCBkbGxzL3dpbmVkM2QvdmVydGV4ZGVjbGFyYXRpb24uYywKKwkgIGRsbHMvd2luZWQzZC93aW5lZDNkX3ByaXZhdGUuaCwgaW5jbHVkZS93aW5lL3dpbmVkM2RfaW50ZXJmYWNlLmg6CisJUmFwaGFlbCBKdW5xdWVpcmEgPGZlbml4QGNsdWItaW50ZXJuZXQuZnI+CisJQmVnaW4gc3VwcG9ydCBvZiBWZXJ0ZXhEZWNsYXJhdGlvbiBvbiB3aW5lZDNkIHVzaW5nIGQzZDggY29kZSBiYXNlCisJKGhhbmRsaW5nIGQzZDggYW5kIGQzZDkgc3BlY3MpLgorCisJKiB3aW5kb3dzL2N1cnNvcmljb24uYzogVml0YWx5IExpcGF0b3YgPGxhdkBldGVyc29mdC5ydT4KKwlBZGQgRklYTUUgZm9yIGZpbGUgd2l0aCBicm9rZW4gY291bnRlcnMuCisKKwkqIGRsbHMvdXNlci9lZGl0LmM6IExhdXJpIFR1bG1pbiA8bGF1cmlfQHV0LmVlPgorCURvbid0IHJlY2FsY3VsYXRlIGxpbmUgaW5kZXhlcyBpZiBudW1iZXIgb2YgbGluZXMgZG9lc24ndCBjaGFuZ2UuCisKKwkqIHRvb2xzL3dpZGwvdHlwZWxpYl9zdHJ1Y3QuaCwgdG9vbHMvd2lkbC93cml0ZV9tc2Z0LmM6CisJSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgcHJvcGdldCBhbmQgcHJvcHB1dCBmdW5jdGlvbiBhdHRyaWJ1dGVzLgorCUNsYXJpZnkgdGhlIG1lYW5pbmcgb2YgdGhlIEZLQ0NJQyBiaXQgZmllbGQuCisKKwkqIGRsbHMvbXNpL2FjdGlvbi5jLCBkbGxzL21zaS9tc2lwcml2Lmg6CisJQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlRdWl0ZSBhIGZldyBmaXhlczoKKwktIEFsbG93IGZvciB0aGUgcXVlaW5nIG9mIGN1c3RvbSBhY3Rpb25zIHRvIHRyaWdnZXIgb24gdGhlCisJICBJbnN0YWxsRXhlY3V0ZSBvciBJbnN0YWxsRXhlY3V0ZUFnYWluIGFjdGlvbnMuCisJLSBhbGxvdyBmb3IgdGhlIHF1ZWluZyBvZiBjdXN0b20gYWN0aW9ucyB0byB0cmlnZ2VyIG9uCisJICBJbnN0YWxsRmluYWxpemUuCisJLSBQcm9wZXJseSBzZXQgdGhlIEN1c3RvbUFjdGlvbkRhdGEgcHJvcGVydHkgZm9yIHNhaWQgcXVldWVkIGFjdGlvbnMuCisJLSBJbXBsZW1lbnQgUmVnaXN0ZXJQcm9kdWN0LgorCS0gQmVnaW5uaW5nIGltcGxlbWVudGF0aW9uIG9mIEZvcmNlUmVib290LgorCS0gRG9uJ3Qga2lsbCBpbnN0YWxsIGlmIGFuIGl0ZW0gdG8gYmUgZHVwbGljYXRlZCBkb2VzIG5vdCBleGlzdC4KKwktIFdyaXRlIG91dCBTb3VyY2VMaXN0IGFuZCBMYXN0VXNlZFNvdXJjZSBmb3IgcmVzdW1pbmcgaW5zdGFsbHMuCisJLSBVc2UgcmVnc3ZyMzIgdG8gcmVnaXN0ZXIgc2VsZiByZWcgZGxscy4KKworCSogZGxscy9zaGRvY3Z3L21pc2MuYywgZGxscy9zaGRvY3Z3L3NoZG9jdncuc3BlYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJU3R1YiBkZWZpbml0aW9uIGZvciBPcGVuVXJsLgorCisJKiBpbmNsdWRlL3dpbi5oLCB3aW5kb3dzL3dpbi5jOgorCVJlbW92ZWQgbm8gbG9uZ2VyIHVzZWQgV0lOX0ludGVybmFsU2hvd093bmVkUG9wdXBzIGZ1bmN0aW9uLgorCisJKiBkbGxzL3R0eWRydi93bmQuYzoKKwlTdG9yZSB0aGUgd2luZG93IGlkIGFzIGEgcHJvcGVydHkgaW5zdGVhZCBvZiBhY2Nlc3NpbmcgdGhlIFdORAorCXN0cnVjdHVyZSBkaXJlY3RseS4KKwlGZXRjaCB0aGUgdXBkYXRlIHJlZ2lvbiBmcm9tIHRoZSBzZXJ2ZXIgYW5kIHJlbW92ZSBhIGxvdCBvZiBvYnNvbGV0ZQorCWNvZGUuCisKKwkqIGRsbHMva2VybmVsL2NwdS5jOiBSZWluIEtsYXplcyA8d2lqbkB3YW5hZG9vLm5sPgorCVJldHVybiBhIGZpeGVkIGZyZXF1ZW5jeSBvZiAxMTkzMTgyIEh6IGZvciB0aGUgUGVyZm9ybWFuY2UgQ291bnRlci4KKworCSogZGxscy9rZXJuZWwvc3luYy5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50IFRyYW5zYWN0TmFtZWRQaXBlIGZvciB0aGUgbm9uLW92ZXJsYXBwZWQgY2FzZS4KKworCSogZGxscy9hdGwvYXRsLnNwZWMsIGRsbHMvYXRsL2F0bF9tYWluLmM6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCVN0dWIgaW1wbGVtZW50YXRpb24gZm9yIHNvbWUgZnVuY3Rpb25zLgorCisJKiBkbGxzL29sZTMyL21hcnNoYWwuYywgZGxscy9vbGUzMi9vbGVwcm94eS5jLAorCSAgZGxscy9vbGUzMi90ZXN0cy9tYXJzaGFsLmM6CisJUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCS0gSW5pdGlhbGl6ZSBwcHYgcG9pbnRlciBpbiBDbGllbnRJZGVudGl0eV9RdWVyeUludGVyZmFjZSB0byBOVUxMIGFzCisJICBhcHBzIGRlcGVuZCBvbiB0aGlzLgorCS0gRG9uJ3QgcmVsZWFzZSBJUnBjUHJveHlCdWZmZXIgb24gaWZwcm94eSBkZXN0cnVjdGlvbiAtIHRoZSBjYWxsZXIKKwkgIHdpbGwgZG8gdGhpcyBmb3IgdXMuCisJLSBNYWtlIGZpbmRfcHJveHlfbWFuYWdlciBhZGQgYSByZWZlcmVuY2UgdG8gdGhlIHByb3h5IG1hbmFnZXIgYW5kCisJICBtYWtlIHByb3h5X21hbmFnZXJfY29uc3RydWN0IHJldHVybiBhbiBvYmplY3Qgd2l0aCBhIHZhbGlkCisJICByZWYtY291bnQuCisJLSBSZW1vdmUgc3RyYXkgbm90IG9wZXJhdG9yIHRvIGZpeCBhIG1lbW9yeSBsZWFrIC8gY3Jhc2ggaW4KKwkgIHByb3h5X21hbmFnZXJfZGVzdHJveS4KKwktIE1vcmUgZGVidWcgbWVzc2FnZXMsIGVzcGVjaWFsbHkgb24gZXJyb3JzLgorCS0gRml4IHJlZi1jb3VudCBsZWFrIGluIHRoZSBDbGFzcyBGYWN0b3J5IHByb3h5LgorCS0gQWRkIGEgdGVzdCBjYXNlIGZvciBJQ2xhc3NGYWN0b3J5X0NyZWF0ZUluc3RhbmNlLgorCisJKiBwcm9ncmFtcy93aW5lY2ZnL2RyaXZldWkuYzogUGF1bCB2YW4gU2NoYXljayA8cG9sbGVrZUBnbWFpbC5jb20+CisJUmVzZXQgdGhlIHR5cGUgZHJvcGRvd24gd2hlbiBzZWxlY3RpbmcgYW5vdGhlciBkcml2ZS4KKworCSogZGxscy92ZXJzaW9uL3Rlc3RzL2luZm8uYzoKKwlTdGVmYW4gTGVpY2h0ZXIgPFN0ZWZhbi5MZWljaHRlckBjYW1MaW5lLmNvbT4KKwlGaXhlZCBHZXRGaWxlVmVyc2lvbkluZm9TaXplQSB0ZXN0cyBvbiBXaW5NRS4KKworCSogZGxscy9yc2FlbmgvcnNhZW5oLmM6IE1pY2hhZWwgSnVuZyA8bWp1bmdAaXNzLnR1LWRhcm1zdGFkdC5kZT4KKwlBdm9pZCBjb2RlIGR1cGxpY2F0aW9uIGJ5IG1vdmluZyBoYW5kbGUgbG9va3VwIGludG8gZ2V0X2FsZ2lkX2luZm8uCisKKwkqIGRsbHMvd2luZWQzZC9iYXNldGV4dHVyZS5jLCBkbGxzL3dpbmVkM2QvaW5kZXhidWZmZXIuYywKKwkgIGRsbHMvd2luZWQzZC9yZXNvdXJjZS5jLCBkbGxzL3dpbmVkM2Qvc3VyZmFjZS5jLAorCSAgZGxscy93aW5lZDNkL3ZlcnRleGJ1ZmZlci5jOgorCUpvcmlzIEh1aXplciA8am9yaXNodWl6ZXJAcGxhbmV0Lm5sPgorCUdldCByaWQgb2Ygc29tZSBUUkFDRSguLi4sIFRoaXMtPnJlc291cmNlLnJlZikuCisKKwkqIHRvb2xzL3dpZGwvd3JpdGVfbXNmdC5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCVBhZCBzbWFsbCBzdHJpbmdzIG91dCB0byBlaWdodCBieXRlcy4KKwlGaXggJ2hhcyBkZWZhdWx0IHZhbHVlcycgZmxhZy4KKworCSogZGxscy9tc2kvbXNpLmMsIGRsbHMvbXNpL21zaS5zcGVjOgorCUFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJRG8gYSB2ZXJ5IGJhc2ljIGZpcnN0IGltcGxlbWVudGF0aW9uIG9mIE1zaUNvbmZpZ3VyZVByb2R1Y3RFeFcgZm9yCisJbXNpZXhlYyAvQCAgd2hlbiBydW4gYXMgYSByZWJvb3QuCisJQWxzbyBhZGQgYSBudW1iZXIgb2YgbmV3IHN0dWJzIGZvciB0aGUgb2ZmaWNlIHhwIGFuZCAyazMgaW5zdGFsbCBhbmQKKwlzdGFydHVwIHByb2Nlc3MuCisKKwkqIGluY2x1ZGUvbXNpLmg6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGRlZCBkZWZpbml0aW9uIGZvciB0aGUgVVNFUklORk9TVEFURSBlbnVtZXJhdGlvbi4KKworCSogZGxscy9zZXR1cGFwaS9kZXZpbnN0LmMsIGRsbHMvc2V0dXBhcGkvc2V0dXBhcGkuc3BlYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJQWRkZWQgc29tZSBzdHViIGltcGxlbWVudGF0aW9ucy4KKworMjAwNS0wMS0xOCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy91c2VyL21zZzE2LmMsIGluY2x1ZGUvd2lucG9zLmgsIHdpbmRvd3MvZGVmd25kLmMsCisJICB3aW5kb3dzL3dpbnBvcy5jOgorCU1vdmVkIERlZldpbmRvd1Byb2MxNiB0byBtc2cxNi5jIGFuZCBjbGVhbmVkIHVwIGEgZmV3IHJlbGF0ZWQgdGhpbmdzLgorCisJKiBkbGxzL3dpbmluZXQvaW50ZXJuZXQuYywgZGxscy93aW5pbmV0L3Rlc3RzL2h0dHAuYywKKwkgIGRsbHMvd2luaW5ldC93aW5pbmV0LnNwZWMsIGluY2x1ZGUvd2luaW5ldC5oOgorCUhhbnMgTGVpZGVra2VyIDxoYW5zQGl0LnZ1Lm5sPgorCUltcGxlbWVudCBhbmQgdGVzdCBJbnRlcm5ldFRpbWV7RnJvbSxUb31TeXN0ZW1UaW1le0EsV30uCisJQ29ycmVjdCBzcGVsbGluZyBpbiBJbnRlcm5ldENoZWNrQ29ubmVjdGlvbkEuCisKKwkqIGRsbHMvZDNkOS9jdWJldGV4dHVyZS5jLCBkbGxzL2QzZDkvZGV2aWNlLmMsIGRsbHMvZDNkOS9kaXJlY3R4LmMsCisJICBkbGxzL2QzZDkvaW5kZXhidWZmZXIuYywgZGxscy9kM2Q5L3N1cmZhY2UuYywgZGxscy9kM2Q5L3RleHR1cmUuYywKKwkgIGRsbHMvZDNkOS92ZXJ0ZXhidWZmZXIuYywgZGxscy9kM2Q5L3ZvbHVtZS5jLAorCSAgZGxscy9kM2Q5L3ZvbHVtZXRleHR1cmUuYywgZGxscy93aW5lZDNkL2RldmljZS5jLAorCSAgZGxscy93aW5lZDNkL2RpcmVjdHguYywgZGxscy93aW5lZDNkL3N1cmZhY2UuYywKKwkgIGRsbHMvd2luZWQzZC93aW5lZDNkX3ByaXZhdGUuaCwgaW5jbHVkZS9kM2Q5dHlwZXMuaCwKKwkgIGluY2x1ZGUvd2luZS93aW5lZDNkX2ludGVyZmFjZS5oOgorCUphc29uIEVkbWVhZGVzIDx1c0B0aGUtZWRtZWFkZXMuZGVtb24uY28udWs+CisJLSBIYW5kbGUgZmFpbHVyZXMgdG8gYWxsb2NhdGUgc3RvcmFnZSBtb3JlIGdyYWNlZnVsbHkuCisJLSBPbmx5IHByb3RvdHlwZSB0aGUgaW50ZXJmYWNlcyB3aGljaCBhcmUgc3ViY2xhc3NlZCAoSSBvdmVyZGlkIGl0CisJICBsYXN0IHRpbWUhKS4KKwktIEltcGxlbWVudCBHZXQvU2V0IFRleHR1cmUgYW5kIEdldEJhY2tCdWZmZXIsIHBsdXMgZGV2aWNlJ3MKKwkgIEdldERpc3BsYXlNb2RlIC8gR2V0RGV2aWNlQ2Fwcy4KKwktIE1ha2Ugc29tZSBvZiB0aGUgZDNkOSBza2VsZXRvbiBjb2RlIGlzc3VlIGZpeG1lJ3MgdG8gaGlnaGxpZ2h0IGNvZGUKKwkgIHdoaWNoIGhhc24ndCBiZWVuIG1pZ3JhdGVkIHlldC4KKwktIENvcnJlY3QgdGhlIGQzZDkgaGVhZGVycyBmb3IgRDNEU1VSRkFDRV9ERVNDIHdoaWNoIGNhdXNlZCBzdGFjaworCSAgY29ycnVwdGlvbiBpbiBkZW1vcy4KKworCSogaW5jbHVkZS93aW5zdmMuaDogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUFkZCBkZWZpbml0aW9ucyBmb3Igc2Vzc2lvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4KKworCSogZGxscy9tcHIvbmV0c3BpLmgsIGRsbHMvbXByL25wcy5jLCBpbmNsdWRlL01ha2VmaWxlLmluLAorCSAgaW5jbHVkZS9uZXRzcGkuaDoKKwlKdWFuIExhbmcgPGp1YW5fbGFuZ0B5YWhvby5jb20+CisJTWFrZSBuZXRzcGkuaCBwcml2YXRlLCBhcyBzb21lIG9mIGl0cyBkZWNsYXJhdGlvbnMgY29uZmxpY3Qgd2l0aAorCW5wYXBpLmguICBTcG90dGVkIGJ5IFBhdWwgVnJpZW5zLgorCisJKiBkbGxzL3NldHVwYXBpL3F1ZXVlLmM6IEFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJQ29weSB0aGUgaW1wbGVtZW50YXRpb24gZnJvbSBTZXR1cERlZmF1bHRRdWV1ZUNhbGxiYWNrQSBhbmQgbWFrZSBpdAorCVcuCisKKwkqIHRvb2xzL3dpZGwvd3JpdGVfbXNmdC5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUFkZCBhIG1pc3NpbmcgYnJlYWsgdG8gZml4IHR5cGVpbmZvIHZlcnNpb24gcmVncmVzc2lvbi4KKworCSogZGxscy9zaGx3YXBpL3BhdGguYywgZGxscy9zaGx3YXBpL3JlZy5jLCBkbGxzL3NobHdhcGkvc2hsd2FwaS5zcGVjOgorCUhhbnMgTGVpZGVra2VyIDxoYW5zQGl0LnZ1Lm5sPgorCVN0dWIgaW1wbGVtZW50YXRpb25zIGZvciBQYXRoVW5FeHBhbmRFbnZTdHJpbmdzU0hSZWdFbnVtVVNWYWx1ZXtBLFd9LAorCVNIUmVnQ3JlYXRlVVNLZXl7QSxXfSwgU0hSZWdEZWxldGVFbXB0eVVTS2V5e0EsV30sCisJU0hSZWdEZWxldGVVU1ZhbHVle0EsV30sIFNIUmVnRW51bVVTVmFsdWV7QSxXfS4KKworMjAwNS0wMS0xNyAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy91c2VyL2NvbnRyb2xzLmgsIGRsbHMvdXNlci9tZW51LmMsIGRsbHMvdXNlci91c2VyMzIuc3BlYywKKwkgIGRsbHMveDExZHJ2L3dpbnBvcy5jLCBpbmNsdWRlL25vbmNsaWVudC5oLCB3aW5kb3dzL2RlZnduZC5jLAorCSAgd2luZG93cy9tZGkuYywgd2luZG93cy9ub25jbGllbnQuYywgd2luZG93cy93aW5wb3MuYzoKKwlHZXQgcmlkIG9mIG5vbmNsaWVudC5oIGFuZCBvZiB0aGUgY29ycmVzcG9uZGluZyBleHBvcnRlZCBmdW5jdGlvbnMgaW4KKwl1c2VyMzIuc3BlYy4KKworCSogZGxscy9vbGVhdXQzMi90ZXN0cy92YXJ0ZXN0LmMsIGRsbHMvb2xlYXV0MzIvdmFyaWFudC5jOgorCUFsZXggVmlsbGFj7XMgTGFzc28gPGFfdmlsbGFjaXNAcGFsb3NhbnRvLmNvbT4KKwlXaGVuIHBhcnNpbmcgYW4gaGV4L29jdCBpbnRlZ2VyIHZhbHVlLCBjb3B5IHZhbHVlIHZlcmJhdGltIGluIFZBUklBTlQsCisJcmF0aGVyIHRoYW4gYSBuZWdhdGVkIHZhbHVlLiBBZGQgdGVzdCBjYXNlIGZvciB0aGlzIGJlaGF2aW9yLgorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGwzMl9EZS5yYzoKKwlIZW5uaW5nIEdlcmhhcmR0IDxoZW5uaW5nLmdlcmhhcmR0QHdlYi5kZT4KKwlBIHNtYWxsIHNwZWxsaW5nIGZpeCBhbmQgYSBzbWFsbCB1cGRhdGUgKHRoYW5rIHRvIEFuZHJlYXMgTW9ocikuCisKKwkqIGRsbHMvb2xlMzIvbWFyc2hhbC5jOiBSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJSW5pdGlhbGl6ZSBjbHNpZCBtZW1iZXIgdG8gdGhlIG1hcnNoYWxlciBjbHNpZCB0byBmaXggY3VzdG9tCisJbWFyc2hhbGluZy4KKworCSogZGxscy91c2VyL2VkaXQuYzogTGF1cmkgVHVsbWluIDxsYXVyaV9AdXQuZWU+CisJTWFrZSBsb25nIGxpbmVzIGJlaGF2ZSBuaWNlbHkuCisKKwkqIGRsbHMveDExZHJ2L2NsaXBib2FyZC5jLCBkbGxzL3gxMWRydi9ldmVudC5jLCBkbGxzL3gxMWRydi9tb3VzZS5jLAorCSAgZGxscy94MTFkcnYvc2Nyb2xsLmMsIGRsbHMveDExZHJ2L3dpbmRvdy5jLCBkbGxzL3gxMWRydi93aW5wb3MuYywKKwkgIGRsbHMveDExZHJ2L3gxMWRydi5oLCBkbGxzL3gxMWRydi94MTFkcnZfbWFpbi5jLCB3aW5kb3dzL2RlZnduZC5jOgorCUF2b2lkIG1vc3QgcmVmZXJlbmNlcyB0byB0aGUgaW50ZXJuYWxzIG9mIHRoZSBXTkQgc3RydWN0dXJlIGJ5IHBhc3NpbmcKKwlhcm91bmQgYW4geDExZHJ2X3dpbl9kYXRhIHBvaW50ZXIgaW5zdGVhZC4KKworCSogZGxscy91c2VyL2VkaXQuYywgZGxscy91c2VyL3VzZXIzMi5zcGVjLCBkbGxzL3gxMWRydi93aW5wb3MuYzoKKwlSZW1vdmVkIGEgY291cGxlIG9mIHVubmVjZXNzYXJ5IGNhbGxzIHRvIFdJTl9TdXNwZW5kV25kc0xvY2suCisKKwkqIGRsbHMvc2hsd2FwaS90ZXN0cy9zaHJlZy5jOiBQYXVsIFZyaWVucyA8UGF1bC5WcmllbnNAeHM0YWxsLm5sPgorCVVzZSBhIHJlZ2lzdHJ5IGtleSBmb3IgY29weWluZywgdGhhdCdzIGtub3duIG9uIGV2ZXJ5IHN5c3RlbS4KKworCSogZGxscy9jb21tZGxnL2NkbGdfRnIucmMsIGRsbHMvbXByL21wci5yYywgZGxscy9tcHIvbXByX0ZyLnJjLAorCSAgZGxscy9vbGVkbGcvb2xlZGxnX0ZyLnJjLCBkbGxzL29sZWRsZy9yc3JjLnJjLAorCSAgZGxscy93aW5pbmV0L3dpbmluZXRfRnIucmM6CisJSm9uYXRoYW4gRXJuc3QgPEpvbmF0aGFuQEVybnN0RmFtaWx5LmNoPgorCVVwZGF0ZWQgRnJlbmNoIHJlc291cmNlcy4KKworCSogZGxscy9tc3ZpZGVvL2RyYXdkaWIuYywgZGxscy9tc3ZpZGVvL21zdmZ3MzIuc3BlYywKKwkgIGRsbHMvbXN2aWRlby9tc3ZpZGVvX21haW4uYywgaW5jbHVkZS92ZncuaDoKKwlIYW5zIExlaWRla2tlciA8aGFuc0BpdC52dS5ubD4KKwlTdHViIGltcGxlbWVudGF0aW9ucyBmb3IgRHJhd0RpYkNoYW5nZVBhbGV0dGUsIERyYXdEaWJHZXRCdWZmZXIsCisJRHJhd0RpYlRpbWUsIElDU2VxQ29tcHJlc3NGcmFtZXssRW5kLFN0YXJ0fS4KKwlGb3J3YXJkIEdldE9wZW5GaWxlTmFtZVByZXZpZXcgdG8gR2V0T3BlbkZpbGVOYW1lUHJldmlld0EuCisKKwkqIGRsbHMvc2hsd2FwaS9yZWcuYywgZGxscy9zaGx3YXBpL3Rlc3RzL3NocmVnLmM6CisJUGF1bCBWcmllbnMgPFBhdWwuVnJpZW5zQHhzNGFsbC5ubD4KKwlDaGFuZ2UgdGhlIG9yZGVyIG9mIFNyYyBhbmQgRHN0IGluIENvcHlLZXkgY2FsbHMvZnVuY3Rpb25zLgorCisJKiB3aW5kb3dzL3dpbnBvcy5jOiBTbWFsbCBvcHRpbWl6YXRpb24gaW4gV0lOUE9TX0dldFdpbk9mZnNldC4KKworCSogZGxscy91c2VyL3VzZXJfbWFpbi5jLCBkbGxzL3VzZXIvdXNlcl9wcml2YXRlLmgsCisJICBkbGxzL3gxMWRydi93aW5wb3MuYywgZGxscy94MTFkcnYveDExZHJ2LnNwZWM6CisJUmVtb3ZlZCB1bnVzZWQgRm9yY2VXaW5kb3dSYWlzZSBmdW5jdGlvbi4KKworCSogZGxscy9kM2Q5L2Jhc2V0ZXh0dXJlLmMsIGRsbHMvZDNkOS9jdWJldGV4dHVyZS5jLAorCSAgZGxscy9kM2Q5L2QzZDlfcHJpdmF0ZS5oLCBkbGxzL2QzZDkvZGV2aWNlLmMsIGRsbHMvZDNkOS9yZXNvdXJjZS5jLAorCSAgZGxscy9kM2Q5L3N1cmZhY2UuYywgZGxscy9kM2Q5L3RleHR1cmUuYywgZGxscy9kM2Q5L3ZvbHVtZS5jLAorCSAgZGxscy9kM2Q5L3ZvbHVtZXRleHR1cmUuYywgZGxscy93aW5lZDNkL01ha2VmaWxlLmluLAorCSAgZGxscy93aW5lZDNkL2Jhc2V0ZXh0dXJlLmMsIGRsbHMvd2luZWQzZC9jdWJldGV4dHVyZS5jLAorCSAgZGxscy93aW5lZDNkL2RldmljZS5jLCBkbGxzL3dpbmVkM2QvZHJhd3ByaW0uYywKKwkgIGRsbHMvd2luZWQzZC9pbmRleGJ1ZmZlci5jLCBkbGxzL3dpbmVkM2Qvc3VyZmFjZS5jLAorCSAgZGxscy93aW5lZDNkL3RleHR1cmUuYywgZGxscy93aW5lZDNkL3V0aWxzLmMsCisJICBkbGxzL3dpbmVkM2QvdmVydGV4YnVmZmVyLmMsIGRsbHMvd2luZWQzZC92b2x1bWUuYywKKwkgIGRsbHMvd2luZWQzZC92b2x1bWV0ZXh0dXJlLmMsIGRsbHMvd2luZWQzZC93aW5lZDNkX3ByaXZhdGUuaCwKKwkgIGluY2x1ZGUvd2luZS93aW5lZDNkX2ludGVyZmFjZS5oOgorCUphc29uIEVkbWVhZGVzIDx1c0B0aGUtZWRtZWFkZXMuZGVtb24uY28udWs+CisJLSBBZGQgdGV4dHVyZSBzdXBwb3J0IGZvciBhbGwgdGhlIHRleHR1cmUgdHlwZXMgZm9yIGQzZDktPndpbmVkM2QuCisJLSBBZGQgcHJvdG90eXBlcyBmb3IgdGhlIENPTSBpbnRlcmZhY2VzLgorCS0gRml4IHNvbWUgaW5jb3JyZWN0IHR5cGVzIGZyb20gdGhlIGxhc3QgcGF0Y2guCisKKwkqIGRsbHMvd2lubW0vd2lubW1fRGUucmM6IEtsZW1lbnMgRnJpZWRsIDxrbGVtZW5zX2ZyaWVkbEBnbXgubmV0PgorCUhlbm5pbmcgR2VyaGFyZHQgPGhlbm5pbmcuZ2VyaGFyZHRAd2ViLmRlPgorCVNwZWxsaW5nIGZpeGVzLgorCisJKiBkbGxzL2NvbW1kbGcvY2RsZ19EZS5yYywgZGxscy9tcHIvbXByX0RlLnJjLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsMzJfRGUucmMsIGRsbHMvd2luaW5ldC93aW5pbmV0X0RlLnJjLAorCSAgcHJvZ3JhbXMvd2luZWNvbnNvbGUvd2luZWNvbnNvbGVfRGUucmM6CisJSGVubmluZyBHZXJoYXJkdCA8aGVubmluZy5nZXJoYXJkdEB3ZWIuZGU+CisJVXBkYXRlIEdlcm1hbiByZXNvdXJjZXMuCisKKwkqIGluY2x1ZGUvd2luY3J5cHQuaDogTWljaGFlbCBKdW5nIDxtanVuZ0Bpc3MudHUtZGFybXN0YWR0LmRlPgorCUFkZGVkIGRlZmluaXRpb25zIG9mIFRMUzFQUkYgYWxnb3JpdGhtIGlkZW50aWZpZXJzLgorCisJKiBkbGxzL3NobHdhcGkvdGVzdHMvY2xpc3QuYzogUGF1bCBWcmllbnMgPFBhdWwuVnJpZW5zQHhzNGFsbC5ubD4KKwlVc2UgSW50ZXJsb2NrZWQqIGZ1bmN0aW9ucyBpbiBBZGRSZWYgYW5kIFJlbGVhc2UuCisKKwkqIHByb2dyYW1zL3dpbmVjZmcvbGlicmFyaWVzLmM6IEdlcmFsZCBQZmVpZmVyIDxnZXJhbGRAcGZlaWZlci5jb20+CisJVXNlIHN3aXRjaCBzdGF0ZW1lbnRzIGluc3RlYWQgb2YgaWYtY2FzY2FkZXMuIEF2b2lkIHdhcm5pbmdzLgorCisJKiBkbGxzL3JzYWVuaC9yc2FlbmguYzogTWljaGFlbCBKdW5nIDxtanVuZ0Bpc3MudHUtZGFybXN0YWR0LmRlPgorCU1vdmVkIEhNQUMgaW5pdGlhbGl6YXRpb24gYW5kIGZpbmFsaXphdGlvbiBjb2RlIHRvCisJaW5pdF8vZmluYWxpemVfaGFzaC4KKwlSZW1vdmVkIHRoZSByZWR1bmRhbnQgcEtleUNvbnRhaW5lciBmdW5jdGlvbiBwYXJhbWV0ZXIgZnJvbQorCWluaXRfaGFzaC4KKworCSogdG9vbHMvd2lkbC93cml0ZV9tc2Z0LmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJQWRkIFZUX1ZBUklBTlQgc3VwcG9ydC4KKwlGaXggZm9yIHRoZSBjYXNlIHdoZW4gdGhlcmUgaXMgbm8gaGVscHN0cmluZ2RsbC4KKwlGaXggZm9yIHBhcmFtZXRlciBhcnJheXMuCisKKwkqIGRsbHMvbXNpL2FjdGlvbi5jOiBBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCUltcGxlbWVudGF0aW9ucyBmb3IgU2VsZlJlZ01vZHVsZXMgYW5kIFB1Ymxpc2hGZWF0dXJlcy4KKwlTZXQgZGVmYXVsdCBBQ1RJT04gcHJvcGVydHkgZm9yIEluc3RhbGwuCisJRGVmb3JtYXQgbW9yZSB0aGFuIEpVU1QgcHJvcGVydGllcyBwcm9wZXJseS4gQWxsb3dzIGZvciBGaWxlcyBhbmQKKwlDb21wb25lbnQgcGF0aHMgaW4gZGVmb3JtYXQuCisJUHJvcGVybHkgZGVmb3JtYXQgYSBMYXVuY2hDb25kaXRpb24gZmFpbHVyZSBkaWFsb2cgYm94LgorCVJlc29sdmUgYW5kIHNhdmUgcmVnaXN0cnkgS2V5cGF0aHMuCisJV3JpdGUgdGhlIEZlYXR1cmVzIHB1Ymxpc2hlZCBrZXlzIG1vcmUgY29ycmVjdGx5LiBTdGlsbCBzb21lCisJcHJvYmxlbXMuCisKKwkqIGRsbHMvbXNpL21zaS5jOiBBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCUZpcnN0IHBhc3MgaW1wbGVtZW50IGlvbiBvZiBNc2lRdWVyeVByb2R1Y3RTdGF0ZVtBL1ddIGFzIHdlbGwgYXMgYSBmZXcKKwlmaXhlcyBmb3IgTXNpR2V0Q29tcG9uZW50UGF0aC4KKworCSogZGxscy9vbGUzMi9jb21wb2JqLmMsIGRsbHMvb2xlMzIvY29tcG9ial9wcml2YXRlLmgsCisJICBkbGxzL29sZTMyL21hcnNoYWwuYywgZGxscy9vbGUzMi9zdHVibWFuYWdlci5jLAorCSAgZGxscy9vbGUzMi90ZXN0cy9tYXJzaGFsLmM6CisJUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCUltcGxlbWVudCB0YWJsZSBtYXJzaGFsaW5nLgorCisJKiBwcm9ncmFtcy93aW5ldGVzdC9NYWtlZmlsZS5pbjoKKwlTdGVmYW4gTGVpY2h0ZXIgPFN0ZWZhbi5MZWljaHRlckBjYW1MaW5lLmNvbT4KKwlJbmNsdWRlIG5ldyB0ZXN0cy4KKworCSogZGxscy9jb21jdGwzMi90cmFja2Jhci5jOiBQYXVsIFZyaWVucyA8UGF1bC5WcmllbnNAeHM0YWxsLm5sPgorCVJlbW92ZSB0aGUgY2hlY2tpbmcvc2V0dGluZyBvZiB0aGUgZGVmYXVsdHMgaW4gVFJBQ0tCQVJfQ3JlYXRlLgorCisJKiBkbGxzL2NvbWN0bDMyL3BhZ2VyLmM6IFBhdWwgVnJpZW5zIDxQYXVsLlZyaWVuc0B4czRhbGwubmw+CisJUmVtb3ZlIG5lZWRsZXNzIGNoZWNrIGZvciBob3Jpem9udGFsIG9yIHZlcnRpY2FsIHBhZ2VyLgorCisyMDA1LTAxLTE0ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2tlcm5lbC9jb21tLmMsIGRsbHMva2VybmVsL2ZpbGUuYywgZGxscy9udGRsbC9maWxlLmMsCisJICBkbGxzL250ZGxsL3N5bmMuYywgZGxscy93aW5zb2NrL3NvY2tldC5jLCBpbmNsdWRlL2FzeW5jLmgsCisJICBpbmNsdWRlL3RocmVhZC5oLCBpbmNsdWRlL3dpbmUvc2VydmVyX3Byb3RvY29sLmgsIHNlcnZlci9NYWtlZmlsZS5pbiwKKwkgIHNlcnZlci9hc3luYy5jLCBzZXJ2ZXIvYXN5bmMuaCwgc2VydmVyL2ZkLmMsIHNlcnZlci9maWxlLmMsCisJICBzZXJ2ZXIvZmlsZS5oLCBzZXJ2ZXIvbmFtZWRfcGlwZS5jLCBzZXJ2ZXIvcHJvY2Vzcy5jLAorCSAgc2VydmVyL3Byb3RvY29sLmRlZiwgc2VydmVyL3JlcXVlc3QuYywgc2VydmVyL3JlcXVlc3QuaCwKKwkgIHNlcnZlci9zZXJpYWwuYywgc2VydmVyL3NpZ25hbC5jLCBzZXJ2ZXIvc29jay5jLCBzZXJ2ZXIvdGhyZWFkLmMsCisJICBzZXJ2ZXIvdHJhY2UuYzoKKwlFcmljIFBvdWVjaCA8cG91ZWNoLWVyaWNAd2FuYWRvby5mcj4KKwktIGdvdCByaWQgb2YgaW5jbHVkZS9hc3luYy5oCisJLSBmaXhlZCBzb21lIG92ZXJsYXBwZWQgaXNzdWVzIGluIHNvY2tldCBoYW5kbGluZworCS0gbW92ZWQga2VybmVsMzIuQ2FuY2VsSW8gaW1wbGVtZW50YXRpb24gdG8gbnRkbGwKKworCSogcHJvZ3JhbXMvd2luZWNmZy9hcHBkZWZhdWx0cy5jLCBwcm9ncmFtcy93aW5lY2ZnL2F1ZGlvLmMsCisJICBwcm9ncmFtcy93aW5lY2ZnL2xpYnJhcmllcy5jLCBwcm9ncmFtcy93aW5lY2ZnL3dpbmVjZmcuYywKKwkgIHByb2dyYW1zL3dpbmVjZmcveDExZHJ2ZGxnLmM6CisJQ3Jlc3RleiBMZW9uYXJkIDxjbGVvbmFyZEBnby5ybz4KKwlGaXggYWRkIGFwcGxpY2F0aW9uIChtZW1vcnkgZXJyb3IpLgorCUZpeCBhcHBseSBidXR0b24gbGlnaHRpbmcgdXAgaW4gYXVkaW8gdGFiLgorCUZpeCB2aWRlbyB0YWIoY3Jhc2ggd2hlbiBjaGVja2luZyBkZXNrdG9wLCBhcHBseSBidXR0b24gbm90IGxpZ2h0aW5nCisJdXAuCisJRGVhbCB3aXRoIGludmFsaWQgRGVza3RvcCByZWdpc3RyeSB2YWx1ZSBpbiB2aWRlbyB0YWIuCisJRml4IGFwcGx5IGJ1dHRvbiBpbiBsaWJyYXJpZXMgdGFiLgorCUNsZWFuZWQgdXAgYW5kIGRvY3VtZW50ZWQgYWxsIHRoZSBjb252ZXJzaW9ucyBpbiB0aGUgbGlicmFyaWVzIHRhYi4KKworCSogZGxscy9pdHNzL2l0c3MuYywgZGxscy9pdHNzL2l0c3Muc3BlYzoKKwlSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJUmVtb3ZlIE1PRFVMRU5BTUUgcHJlZml4IGZyb20KKwlEbGx7R2V0Q2xhc3NPYmplY3QsUmVnaXN0ZXJTZXJ2ZXIsQ2FuVW5sb2FkTm93fSBmdW5jdGlvbnMuCisKKwkqIHRvb2xzL3dpZGwvd3JpdGVfbXNmdC5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUFkZCBzdXBwb3J0IGZvciBCU1RSIGRlZmF1bHQgdmFsdWVzLgorCisJKiBkbGxzL29sZTMyL2NvbXBvYmpfcHJpdmF0ZS5oOiBSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJLSBSZW1vdmUgb2Jzb2xldGUgc3RydWN0cywgcmVhcnJhbmdlIHRoaW5ncyB0byBncm91cCB0aGUgc3RydWN0cworCSAgdG9nZXRoZXIgYW5kIHRvIGdyb3VwIHNpbWlsYXIgZnVuY3Rpb25zLgorCS0gRG9jdW1lbnQgdGhyZWFkLXNhZmV0eSBvZiBtZW1iZXJzIG9mIHN0cnVjdHMuCisKKwkqIGRsbHMvb2xlMzIvbWFyc2hhbC5jLCBkbGxzL29sZTMyL3Rlc3RzL21hcnNoYWwuYzoKKwlSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJTWFrZSBwcm94eSBzaHV0ZG93biB0ZXN0IHN1Y2NlZWQgYnkgcmVsZWFzaW5nIHRoZSBjaGFubmVsIG9uCisJZGlzY29ubmVjdC4KKworCSogZGxscy94MTFkcnYvZXZlbnQuYywgZGxscy94MTFkcnYva2V5Ym9hcmQuYywgZGxscy94MTFkcnYvbW91c2UuYywKKwkgIGRsbHMveDExZHJ2L3dpbmRvdy5jLCBkbGxzL3gxMWRydi93aW50YWIuYywgZGxscy94MTFkcnYveDExZHJ2LmgsCisJICBkbGxzL3gxMWRydi94MTFkcnZfbWFpbi5jOgorCUplcmVteSBXaGl0ZSA8andoaXRlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggWDExIGV2ZW50IHRpbWluZyBzbyB0aGF0IHdlIGNvcnJlY3RseSBjb3JyZWxhdGUgWDExIHRpbWluZyBhbmQKKwlXaW5lIHRpbWluZyBhbmQgZHluYW1pY2FsbHkgYWRqdXN0IGl0IGFzIHdlIGdvLgorCisJKiBkbGxzL21zaS9tc2kuYzogQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBY3R1YWxseSBzdGFydCBvbiBhbiBpbXBsZW1lbnRpb24gZm9yIE1zaUdldENvbXBvbmVudFBhdGhXIHRoYXQgc2hvdWxkCisJaGFuZGxlIGFsbCBrZXlwYXRocyB0aGF0IGFyZSBmaWxlcy4KKworCSogZGxscy9vbGUzMi9jb21wb2JqLmMsIGRsbHMvb2xlMzIvaWZzLmMsIGRsbHMvb2xlMzIvb2xlMi5jLAorCSAgZGxscy9vbGUzMi9vbGUyc3R1YnMuYzoKKwlSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJLSBBZGQgZG9jdW1lbnRhdGlvbiBmb3IgbW9zdCBDbyogZnVuY3Rpb25zLgorCS0gTW92ZSBzZXZlcmFsIGZ1bmN0aW9ucyBpbnRvIGRpZmZlcmVudCBmaWxlcyB0byBncm91cCB0aGVtIHdpdGgKKwkgIHNpbWlsYXIgZnVuY3Rpb25zLgorCisJKiBkbGxzL2Rtc3ludGgvZG1zeW50aF9tYWluLmMsIGRsbHMvZG1zeW50aC9zeW50aC5jLAorCSAgZGxscy9kbXN5bnRoL3N5bnRoc2luay5jLCBkbGxzL2RwbmV0L2FkZHJlc3MuYywgZGxscy9kcG5ldC9jbGllbnQuYzoKKwlKYW1lcyBIYXdraW5zIDx0cnVpa2VuQGdtYWlsLmNvbT4KKwktIFVzZSBJbnRlcmxvY2tlZCogaW5zdGVhZCBvZiArKy8tLSBpbiBBZGRSZWYvUmVsZWFzZS4KKwktIFVzZSBvbmx5IHN0b3JlZCByZXN1bHQgb2YgSW50ZXJsb2NrZWQqIGluIEFkZFJlZi9SZWxlYXNlLgorCS0gRXhwYW5kIFRSQUNFcyB0byBkaXNwbGF5IHRoZSByZWYgY291bnQuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGxmaWxlb3AuYzogSm9yaXMgSHVpemVyIDxqb3Jpc2h1aXplckBwbGFuZXQubmw+CisJLSBhZGQgZmlsZV9vcGVyYXRpb25fZGVsZXRlCisJLSBhZGQgZmlsZV9vcGVyYXRpb25fY2hlY2tGbGFncworCS0gdXNlIHRoZXNlIGluIFNIRmlsZU9wZXJhdGlvblcgcmVwbGFjaW5nIGlubGluZSBjb2RlCisKKwkqIGRsbHMvYWR2YXBpMzIvc2VydmljZS5jLCBpbmNsdWRlL3dpbnN2Yy5oOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXgsIGFkZCBhbmQgcmVhcnJhbmdlIHdpbnN2Yy5oIGRlY2xhcmF0aW9ucy4KKworCSogZGxscy9tc2kvYWN0aW9uLmM6IE1hcmN1cyBNZWlzc25lciA8bWVpc3NuZXJAc3VzZS5kZT4KKwlJbml0aWFsaXplIHJjIGluIGNyZWF0ZV9jb21wb25lbnRfZGlyZWN0b3J5KCkuCisKKwkqIHRvb2xzL3dpZGwvdHlwZWxpYi5jLCB0b29scy93aWRsL3dyaXRlX21zZnQuYzoKKwlIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUFkZCBzdXBwb3J0IGZvciBpbnRlcmZhY2UgcHRycyBpbmNsdWRpbmcgdGhlIHNwZWNpYWwgY2FzZXMgZm9yCisJSVVua25vd24gYW5kIElEaXNwYXRjaC4KKworCSogZGxscy9jb21tZGxnL2ZpbGVkbGcuYzogVWxyaWNoIEN6ZWthbGxhIDx1bHJpY2hAY29kZXdlYXZlcnMuY29tPgorCUdldEZpbGVOYW1lMzFXIHNob3VsZCBjYWxsIHVuaWNvZGUgdmVyc2lvbiBvZiBGRDMxX0FsbG9jUHJpdmF0ZS4KKworCSogZGxscy91c2VyL3Rlc3RzL3N5c3BhcmFtcy5jOiBKdXN0aW4gQ2hldnJpZXIgPGpjaGV2cmllckBuZXhpY29tLm5ldD4KKwlDcmVhdGVkIHVuaXQgdGVzdCBmb3IgU1BJX3tHRVQsU0VUfU1JTklNSVpFRE1FVFJJQ1MuCisKKwkqIGRsbHMvdXNlci9zeXNwYXJhbXMuYzogSnVzdGluIENoZXZyaWVyIDxqY2hldnJpZXJAbmV4aWNvbS5uZXQ+CisJLSBJbXBsZW1lbnRlZCBTUElfR0VUTUlOSU1JWkVETUVUUklDUyBjYWxjdWxhdGVkIGZyb20gdmFsdWVzIHJldHVybmVkCisJICBieSBHZXRTeXN0ZW1NZXRyaWNzLgorCS0gSW1wbGVtZW50ZWQgU1BJX1NFVE1JTklNSVpFRE1FVFJJQ1MuIERldGVybWluZWQgdGhhdCB0aGUgdmFsdWVzIHNldAorCSAgaGVyZSBhcmUgdmFsaWQgZm9yIHRoZSBjdXJyZW50IHNlc3Npb24gb25seSBhbmQgd2lsbCBub3QgcGVyc2lzdAorCSAgYWNyb3NzIHJlYm9vdHMuCisKKwkqIGRsbHMvb2xlMzIvY29tcG9ial9wcml2YXRlLmgsIGRsbHMvb2xlMzIvbWFyc2hhbC5jLCBkbGxzL29sZTMyL3JwYy5jLAorCSAgZGxscy9vbGUzMi9zdHVibWFuYWdlci5jLCBkbGxzL29sZTMyL3Rlc3RzL21hcnNoYWwuYzoKKwlSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJLSBUaGUgYXBhcnRtZW50IHJlZmVyZW5jZSBzaG91bGQgYmUgaGVsZCB3aGlsZSB0aGUgc3R1YiBtYW5hZ2VyCisJICByZWZlcmVuY2UgaXMgaGVsZC4KKwktIEZpeCBzYW1lIGFwYXJ0bWVudC11bm1hcnNoYWwgZGV0ZWN0aW9uLgorCisJKiBkbGxzL2NvbWN0bDMyL2xpc3R2aWV3LmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJVXNlIHRoZSBMVkNGTVRfe0xFRlQsUklHSFQsQ0VOVEVSfSBlbnVtZXJhdGlvbiBmbGFncyBwcm9wZXJseS4KKworCSogZGxscy93aW5lZG9zL2ludDIxLmM6IFJlaW4gS2xhemVzIDx3aWpuQHdhbmFkb28ubmw+CisJSW4gaW50MjFfaW9jdGwgLSBnZXQgZGV2aWNlIGRhdGEtLCBzZXQgdGhlICJpcyBjb25zb2xlIiBiaXRzIGlmIHRoZQorCWRldmljZSBoYW5kbGUgaXMgYSB0dHkgb3IgYSBwcm9wZXIgY29uc29sZSBpbyBoYW5kbGUuCisKKwkqIGRsbHMvYWR2YXBpMzIvc2VydmljZS5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJTW92ZSBhbGwgc2VydmljZSBzdHVicyB0b2dldGhlciwgbWFrZSB0aGVtIGNvbnNpc3RlbnQuCisKKwkqIGRsbHMvZG11c2ljL2J1ZmZlci5jLCBkbGxzL2RtdXNpYy9jbG9jay5jLCBkbGxzL2RtdXNpYy9jb2xsZWN0aW9uLmMsCisJICBkbGxzL2RtdXNpYy9kbXVzaWMuYywgZGxscy9kbXVzaWMvZG11c2ljX21haW4uYywKKwkgIGRsbHMvZG11c2ljL2Rvd25sb2FkLmMsIGRsbHMvZG11c2ljL2Rvd25sb2FkZWRpbnN0cnVtZW50LmMsCisJICBkbGxzL2RtdXNpYy9pbnN0cnVtZW50LmMsIGRsbHMvZG11c2ljL3BvcnQuYywKKwkgIGRsbHMvZG11c2ljL3BvcnRkb3dubG9hZC5jLCBkbGxzL2RtdXNpYy90aHJ1LmMsIGRsbHMvZHN3YXZlL2Rzd2F2ZS5jLAorCSAgZGxscy9kc3dhdmUvZHN3YXZlX21haW4uYywgZGxscy9keGRpYWduL2NvbnRhaW5lci5jLAorCSAgZGxscy9keGRpYWduL3Byb3ZpZGVyLmMsIGRsbHMvbXNkbW8vZG1vcmVnLmMsIGRsbHMvb2xlYXV0MzIvY29ubnB0LmMsCisJICBkbGxzL29sZWF1dDMyL2Rpc3BhdGNoLmMsIGRsbHMvb2xlYXV0MzIvb2xlcGljdHVyZS5jLAorCSAgZGxscy9vbGVhdXQzMi90bWFyc2hhbC5jLCBkbGxzL3NoZG9jdncvY2xhc3NpbmZvLmMsCisJICBkbGxzL3NoZG9jdncvZXZlbnRzLmMsIGRsbHMvc2hkb2N2dy9mYWN0b3J5LmMsIGRsbHMvc2hkb2N2dy9taXNjLmMsCisJICBkbGxzL3NoZG9jdncvb2xlb2JqZWN0LmMsIGRsbHMvc2hkb2N2dy9wZXJzaXN0LmMsCisJICBkbGxzL3NoZG9jdncvd2ViYnJvd3Nlci5jLCBkbGxzL3NoZWxsMzIvYXV0b2NvbXBsZXRlLmMsCisJICBkbGxzL3NoZWxsMzIvY3BhbmVsZm9sZGVyLmMsIGRsbHMvc2hlbGwzMi9kYXRhb2JqZWN0LmMsCisJICBkbGxzL3NoZWxsMzIvZHJhZ2Ryb3BoZWxwZXIuYywgZGxscy9zaGVsbDMyL2VudW1pZGxpc3QuYywKKwkgIGRsbHMvc2hlbGwzMi9mb2xkZXJzLmMsIGRsbHMvc2hlbGwzMi9tZW1vcnlzdHJlYW0uYywKKwkgIGRsbHMvc2hlbGwzMi9zaGVsbGxpbmsuYywgZGxscy9zaGVsbDMyL3NoZWxsb2xlLmMsCisJICBkbGxzL3NoZWxsMzIvc2hmbGRyX2Rlc2t0b3AuYywgZGxscy9zaGVsbDMyL3NoZmxkcl9mcy5jLAorCSAgZGxscy9zaGVsbDMyL3NoZmxkcl9teWNvbXAuYywgZGxscy9zaGVsbDMyL3NobGZzYmluZC5jLAorCSAgZGxscy9zaGVsbDMyL3NobHZpZXcuYywgZGxscy9zaGVsbDMyL3Nodl9iZ19jbWVudS5jLAorCSAgZGxscy9zaGVsbDMyL3Nodl9pdGVtX2NtZW51LmM6CisJSmFtZXMgSGF3a2lucyA8dHJ1aWtlbkBnbWFpbC5jb20+CisJLSBVc2UgSW50ZXJsb2NrZWQqIGluc3RlYWQgb2YgKysvLS0gaW4gQWRkUmVmL1JlbGVhc2UuCisJLSBVc2Ugb25seSBzdG9yZWQgcmVzdWx0IG9mIEludGVybG9ja2VkKiBpbiBBZGRSZWYvUmVsZWFzZS4KKwktIEV4cGFuZCBUUkFDRXMgdG8gZGlzcGxheSB0aGUgcmVmIGNvdW50LgorCisJKiBkbGxzL21zaS9hY3Rpb24uYzogQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXJzdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgV3JpdGVJbmlWYWx1ZXMgYWN0aW9uLgorCisJKiBkbGxzL29sZTMyL3JwYy5jOiBSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJLSBEb24ndCB1c2UgdGhlIHBpcGUgY2FjaGluZyBjb2RlIGJlY2F1c2UgaXQgZG9lc24ndCB3b3JrIGNvcnJlY3RseSBhdAorCSAgdGhlIG1vbWVudC4KKwktIEFsd2F5cyB3cml0ZSBkaXNjb25uZWN0IHJlcGx5IHBhY2tldCwgZXZlbiBpbiBmYWlsdXJlIGNhc2VzLgorCisJKiBpbmNsdWRlL3dpbnVzZXIuaCwgd2luZG93cy9zcHkuYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUFkZCBXTV9HRVRPQkpFQ1QgZGVmaW5pdGlvbiwgcmVtb3ZlIFdNX09USEVSV0lORE9XQ1JFQVRFRCBkZWZpbmUuCisKKwkqIGRvY3VtZW50YXRpb24vcGF0Y2hlcy5zZ21sOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCVN1Z2dlc3QgdGVzdGluZyBwYXRjaGVzIGluIGEgZ2VudGxlciB3YXkuCisJRW5jb3VyYWdlIHBlb3BsZSB0byBzdWJtaXQgdGVzdHMgd2l0aCB0aGVpciBwYXRjaGVzIGFzIHdlbGwuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGVsbDMyX0RlLnJjOiBLbGVtZW5zIEZyaWVkbCA8a2xlbWVuc19mcmllZGxAZ214Lm5ldD4KKwlVcGRhdGUgR2VybWFuIGxhbmd1YWdlIGZpbGUuCisKKwkqIGRsbHMvYWR2YXBpMzIvc2VydmljZS5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJQ2xlYW51cCBzZXJ2aWNlIGhhbmRsZXMuCisKKwkqIGRsbHMvY29tY3RsMzIvdHJlZXZpZXcuYzogSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlJbmNyZWFzZSB0aGUgcmVxdWlyZWQgcmVjdGFuZ2xlIHNpemUgYmVmb3JlIGRyYXdpbmcgYmlnICsvLS4KKworCSogZGxscy9nZGkvbWZkcnYvb2JqZWN0cy5jLCBkbGxzL2dkaS90ZXN0cy9tZXRhZmlsZS5jOgorCVdhbHQgT2didXJuIDxyZXViZW5AdWdjcy5jYWx0ZWNoLmVkdT4KKwlGaXggQlNfUEFUVEVSTiBicnVzaGVzIGluIG1mZHJ2LiAgVW4tY29tbWVudCB0aGUgY29ycmVzcG9uZGluZyB0ZXN0LgorCisJKiBkbGxzL2Rzb3VuZC9kc291bmRfbWFpbi5jOiBKYW1lcyBIYXdraW5zIDx0cnVpa2VuQGdtYWlsLmNvbT4KKwlSZXR1cm4gQ0xBU1NfRV9OT0FHR1JFR0FUSU9OIGlmIHBVbmtPdXRlciBpcyBub24tbnVsbC4KKworCSogZGxscy9tc2kvYWN0aW9uLmM6IEFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJQ3VzdG9tIGFjdGlvbnMgY2FuIGhhdmUgbnVsbCBpbiB0aGVpciB0YXJnZXQgcGFyYW1ldGVycywgaGFuZGxlIHRoYXQKKwl3aXRob3V0IGNyYXNoaW5nLiBBbHNvIGVuYWJsZSBkZWZvcm1hdGluZyBvZiBsaW5lcyBncmVhdGVyIHRoYW4gMjU2CisJY2hhcmFjdGVycy4KKworCSogZGxscy9vbGUzMi9jb21wb2JqLmM6IFJvYmVydCBTaGVhcm1hbiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KKwlEZXN0cm95IHN0dWJzIG9uIGFwYXJ0bWVudCBzaHV0ZG93bi4KKworCSogZGxscy9ycGNydDQvcnBjcnQ0X21haW4uYywgaW5jbHVkZS9ycGNkY2UuaDoKKwlHZSB2YW4gR2VsZG9ycCA8Z3ZnQHJlYWN0b3MuY29tPgorCUZpeCBwcm90b3R5cGVzIGFjY29yZGluZyB0byBQU0RLLgorCisJKiBkbGxzL29sZTMyL3JwYy5jOiBNaWtlIEhlYXJuIDxtaEBjb2Rld2VhdmVycy5jb20+CisJRm9yY2UgY29udGV4dCBzd2l0Y2ggb24gY2hhbmJ1ZiBkaXNjb25uZWN0IHRvIGF2b2lkIGEgcmFjZSBpbiB0aGUgdGVzdAorCXN1aXRlLgorCisJKiBpbmNsdWRlL3dpbmUvbGlzdC5oOiBSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJQWRkIGEgTElTVF9GT1JfRUFDSF9FTlRSWSBsaXN0IGhlbHBlci4KKworCSogZGxscy9hdmlmaWwzMi9hY21zdHJlYW0uYywgZGxscy9hdmlmaWwzMi9hdmlmaWxlLmMsCisJICBkbGxzL2F2aWZpbDMyL2VkaXRzdHJlYW0uYywgZGxscy9hdmlmaWwzMi9nZXRmcmFtZS5jLAorCSAgZGxscy9hdmlmaWwzMi9pY21zdHJlYW0uYywgZGxscy9hdmlmaWwzMi90bXBmaWxlLmMsCisJICBkbGxzL2F2aWZpbDMyL3dhdmZpbGUuYzoKKwlQYXVsIFZyaWVucyA8UGF1bC5WcmllbnNAeHM0YWxsLm5sPgorCS0gdXNlIEludGVybG9ja2VkKiBmdW5jdGlvbnMgaW4gQWRkUmVmIGFuZCBSZWxlYXNlLgorCS0gc3RvcmUgdGhlIHJlc3VsdCBvZiB0aGUgSW50ZXJsb2NrZWQgZnVuY3Rpb25zIGFuZCB1c2Ugb25seSB0aGlzLgorCisyMDA1LTAxLTEyICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL29sZTMyL2NvbXBvYmouYzogQ2hyaXN0aWFuIENvc3RhIDx0aXRhbi5jb3N0YUB3YW5hZG9vLmZyPgorCUNvSW5pdGlhbGl6ZShFeCkgc2hvdWxkIHJldHVybiBTX0ZBTFNFIHdoZW4gQ09NIGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQKKwlmb3IgdGhlIGN1cnJlbnQgdGhyZWFkLgorCisJKiBkbGxzL2dkaS9nZGkzMi5zcGVjLCB3aW5kb3dzL2RjZS5jOgorCVVzZSB0aGUgZXhwb3J0ZWQgZnVuY3Rpb25zIFNhdmVEQy9SZXN0b3JlREMgaW5zdGVhZCBvZiBTZXREQ1N0YXRlMTYuCisKKwkqIGRsbHMvd2lubW0vd2luZWFsc2EvYXVkaW8uYywgZGxscy93aW5tbS93aW5lYXVkaW9pby9hdWRpby5jLAorCSAgZGxscy93aW5tbS93aW5lb3NzL2RzY2FwdHVyZS5jLCBkbGxzL3dpbm1tL3dpbmVvc3MvZHNyZW5kZXIuYzoKKwlKYW1lcyBIYXdraW5zIDx0cnVpa2VuQGdtYWlsLmNvbT4KKwktIFVzZSBJbnRlcmxvY2tlZCogaW5zdGVhZCBvZiArKy8tLSBpbiBBZGRSZWYvUmVsZWFzZS4KKwktIFVzZSBvbmx5IHN0b3JlZCByZXN1bHQgb2YgSW50ZXJsb2NrZWQqIGluIEFkZFJlZi9SZWxlYXNlLgorCS0gRXhwYW5kIFRSQUNFcyB0byBkaXNwbGF5IHRoZSByZWYgY291bnQuCisKKwkqIGRsbHMvdXJsbW9uL3NlY19tZ3IuYywgZGxscy91cmxtb24vdW1vbi5jOgorCUphbWVzIEhhd2tpbnMgPHRydWlrZW5AZ21haWwuY29tPgorCS0gVXNlIG9ubHkgc3RvcmVkIHJlc3VsdCBvZiBJbnRlcmxvY2tlZCogaW4gQWRkUmVmL1JlbGVhc2UuCisJLSBFeHBhbmQgVFJBQ0VzIHRvIGRpc3BsYXkgdGhlIHJlZiBjb3VudC4KKworCSogZGxscy93aW5lZDNkL2RldmljZS5jLCBkbGxzL3dpbmVkM2QvZGlyZWN0eC5jLAorCSAgZGxscy93aW5lZDNkL3N0YXRlYmxvY2suYzoKKwlKYW1lcyBIYXdraW5zIDx0cnVpa2VuQGdtYWlsLmNvbT4KKwlVc2Ugb25seSBzdG9yZWQgcmVzdWx0IG9mIEludGVybG9ja2VkKiBpbiBBZGRSZWYvUmVsZWFzZS4KKworCSogZGxscy9vbGUzMi9jb21wb2JqLmMsIGRsbHMvb2xlMzIvY29tcG9ial9wcml2YXRlLmg6CisJUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCS0gRG9jdW1lbnQgQ29TZXRTdGF0ZSAmIENvR2V0U3RhdGUuCisJLSBSZXdyaXRlIHRoZW0gdG8gb25seSByZXRyaWV2ZSBUTFMgaW5mbyBvbmNlLgorCS0gUmVtb3ZlIHRyYWlsaW5nIHdoaXRlc3BhY2UgaW4gQ09NX0N1cnJlbnRJbmZvLgorCisJKiBkbGxzL29sZTMyL21hcnNoYWwuYzogUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCVJlbW92ZSB3aW5lX21hcnNoYWxfZGF0YTogaXQgaXMgdW5uZWVkZWQgYW5kIHRoZXJlIGlzIG5vIGVxdWl2YWxlbnQgaW4KKwlTVERPQkpSRUYuCisKKwkqIGRsbHMvc2hsd2FwaS9hc3NvYy5jLCBkbGxzL3NobHdhcGkvaXN0cmVhbS5jLAorCSAgZGxscy9zaGx3YXBpL3JlZ3N0cmVhbS5jOgorCUphbWVzIEhhd2tpbnMgPHRydWlrZW5AZ21haWwuY29tPgorCS0gdXNlIG9ubHkgc3RvcmVkIHJlc3VsdCBvZiBJbnRlcmxvY2tlZCogaW4gQWRkUmVmL1JlbGVhc2UKKwktIGV4cGFuZCBUUkFDRXMgdG8gZGlzcGxheSB0aGUgcmVmIGNvdW50CisKKwkqIGRsbHMvYXZpZmlsMzIvYWNtc3RyZWFtLmMsIGRsbHMvYXZpZmlsMzIvaWNtc3RyZWFtLmM6CisJUGF1bCBWcmllbnMgPFBhdWwuVnJpZW5zQHhzNGFsbC5ubD4KKwktIEZpeCBsb2dpYyBpbiBTdHJlYW1fZm5SZWxlYXNlLCByZWZjb3VudCBzaG91bGQgYmUgZGVjcmVtZW50ZWQgYmVmb3JlCisJICB0aGUgdGVzdCBmb3IgMC4KKwktIFVzZSBJbnRlcmxvY2tlZCogZnVuY3Rpb25zIGluIFN0cmVhbV9mblJlbGVhc2UgLgorCS0gU3RvcmUgdGhlIHJlc3VsdCBvZiB0aGUgSW50ZXJsb2NrZWQgZnVuY3Rpb25zIGFuZCB0aGlzIGluIHRoZQorCSAgVFJBQ0UuCisKKwkqIHRvb2xzL3dpZGwvdHlwZWxpYi5jLCB0b29scy93aWRsL3R5cGVsaWIuaCwgdG9vbHMvd2lkbC93cml0ZV9tc2Z0LmM6CisJSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlCZXR0ZXIgdHlwZSBlbmNvZGluZy4gIChJbnRlcmZhY2UgcHRycyBzdGlsbCBub3QgdGhlcmUgeWV0KS4KKworCSogZGxscy9vbGUzMi90ZXN0cy9tYXJzaGFsLmM6IFJvYmVydCBTaGVhcm1hbiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KKwktIEZvcmNlIGNyZWF0aW9uIG9mIHRocmVhZCBxdWV1ZSB0byBzdG9wIFBvc3RUaHJlYWRNZXNzYWdlIGZyb20KKwkgIGZhaWxpbmcuCisJLSBSZW1vdmUgaW5jb3JyZWN0IGNvbW1lbnQuCisKKwkqIGRsbHMvdXNlci9zeXNwYXJhbXMuYzogSnVzdGluIENoZXZyaWVyIDxqY2hldnJpZXJAbmV4aWNvbS5uZXQ+CisJLSBSZXZlcnQgcHJldmlvdXMgY2hhbmdlIG9mIGJvcmRlciBtZXRyaWMgdG8gcmVmZXJlbmNlIHRoZQorCSAgcmVnaXN0cnkuIFRlc3Rpbmcgb24gV2luOTgvV2luWFAgc2hvd2VkIHRoYXQgcmVnYXJkbGVzcyBvZiB0aGUKKwkgICJCb3JkZXJXaWR0aCIgdmFsdWUgQ01fQ3tYLFl9Qk9SREVSIGFsd2F5cyByZXR1cm5zIDEuCisJLSBQb2ludCBTUElfU0VUQk9SREVSIHRvICJCb3JkZXJXaWR0aCIgdW5kZXIgIkhLQ1VcQ29udHJvbAorCSAgUGFuZWxcRGVza3RvcFxXaW5kb3dNZXRyaWNzIiBpbnN0ZWFkIG9mICJIS0NVXENvbnRyb2wgUGFuZWxcRGVza3RvcCIKKwkgIHRvIG1ha2UgaXQgbWF0Y2ggV2luZG93cy4KKworCSogaW5jbHVkZS93aW5lL2xpc3QuaDogUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCUFkZCBMSVNUX0ZPUl9FQUNIX1NBRkUgLSBhIGxpc3QgaXRlcmF0aW9uIG1hY3JvIHRoYXQgaXMgc2FmZSBhZ2FpbnN0CisJcmVtb3ZhbC4KKworCSogZGxscy9vbGUzMi9ycGMuYzogUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCVRoZSB3YXkgYXBhcnRtZW50cyBhcmUgdXNlZCBoYXMgY2hhbmdlZCwgc28gZml4IHVwIHRoZSBoYWNrcyBpbiB0aGUKKwlSUEMgY29kZSB0aGF0IGhhdmVuJ3QgeWV0IGJlZW4gdXBkYXRlZC4KKworCSogZGxscy9vbGUzMi9jb21wb2JqLmM6IFJvYmVydCBTaGVhcm1hbiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KKwktIE1ha2UgTVRBIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBzbyB0aGF0IHByb3hpZXMgYW5kIG90aGVyIHJlc291cmNlcworCSAgYXJlIGZyZWVkIGF0IHRoZSBwcm9wZXIgdGltZS4KKwktIENoYW5nZWQvcmVtb3ZlZCBzb21lIGluY29ycmVjdCBjb21tZW50cyByZWdhcmRpbmcgYXBhcnRtZW50cy4KKworCSogZGxscy9kbWNvbXBvcy9jaG9yZG1hcC5jLCBkbGxzL2RtY29tcG9zL2Nob3JkbWFwdHJhY2suYywKKwkgIGRsbHMvZG1jb21wb3MvY29tcG9zZXIuYywgZGxscy9kbWNvbXBvcy9zaWducG9zdHRyYWNrLmM6CisJUGF1bCBWcmllbnMgPFBhdWwuVnJpZW5zQHhzNGFsbC5ubD4KKwktIHVzZSBJbnRlcmxvY2tlZCogZnVuY3Rpb25zIGluIEFkZFJlZiBhbmQgUmVsZWFzZS4KKwktIHN0b3JlIHRoZSByZXN1bHQgb2YgdGhlIEludGVybG9ja2VkIGZ1bmN0aW9ucyBhbmQgdXNlIG9ubHkgdGhpcy4KKworMjAwNS0wMS0xMSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogQU5OT1VOQ0UsIENoYW5nZUxvZywgVkVSU0lPTiwgY29uZmlndXJlOiBSZWxlYXNlIDIwMDUwMTExLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAyMDA1LTAxLTExICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgogCiAJKiBkbGxzL2RtaW1lL2F1ZGlvcGF0aC5jLCBkbGxzL2RtaW1lL2RtaW1lX21haW4uYywgZGxscy9kbWltZS9ncmFwaC5jLApkaWZmIC0tZ2l0IGEvVkVSU0lPTiBiL1ZFUlNJT04KaW5kZXggYzhmZTU1NC4uNzkwZmI2NyAxMDA2NDQKLS0tIGEvVkVSU0lPTgorKysgYi9WRVJTSU9OCkBAIC0xICsxIEBACi1XaW5lIHZlcnNpb24gMjAwNTAxMTEKK1dpbmUgdmVyc2lvbiAyMDA1MDIxMQpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCmluZGV4IGU2ZDc4ZTMuLjEwMDkxZjggMTAwNzU1Ci0tLSBhL2NvbmZpZ3VyZQorKysgYi9jb25maWd1cmUKQEAgLTEsNiArMSw2IEBACiAjISAvYmluL3NoCiAjIEd1ZXNzIHZhbHVlcyBmb3Igc3lzdGVtLWRlcGVuZGVudCB2YXJpYWJsZXMgYW5kIGNyZWF0ZSBNYWtlZmlsZXMuCi0jIEdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41OSBmb3IgV2luZSAyMDA1MDExMS4KKyMgR2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU5IGZvciBXaW5lIDIwMDUwMjExLgogIwogIyBSZXBvcnQgYnVncyB0byA8d2luZS1kZXZlbEB3aW5laHEub3JnPi4KICMKQEAgLTI2OSw4ICsyNjksOCBAQAogIyBJZGVudGl0eSBvZiB0aGlzIHBhY2thZ2UuCiBQQUNLQUdFX05BTUU9J1dpbmUnCiBQQUNLQUdFX1RBUk5BTUU9J3dpbmUnCi1QQUNLQUdFX1ZFUlNJT049JzIwMDUwMTExJwotUEFDS0FHRV9TVFJJTkc9J1dpbmUgMjAwNTAxMTEnCitQQUNLQUdFX1ZFUlNJT049JzIwMDUwMjExJworUEFDS0FHRV9TVFJJTkc9J1dpbmUgMjAwNTAyMTEnCiBQQUNLQUdFX0JVR1JFUE9SVD0nd2luZS1kZXZlbEB3aW5laHEub3JnJwogCiBhY191bmlxdWVfZmlsZT0ic2VydmVyL2F0b20uYyIKQEAgLTc4OCw3ICs3ODgsNyBAQAogICAjIE9taXQgc29tZSBpbnRlcm5hbCBvciBvYnNvbGV0ZSBvcHRpb25zIHRvIG1ha2UgdGhlIGxpc3QgbGVzcyBpbXBvc2luZy4KICAgIyBUaGlzIG1lc3NhZ2UgaXMgdG9vIGxvbmcgdG8gYmUgYSBzdHJpbmcgaW4gdGhlIEEvVVggMy4xIHNoLgogICBjYXQgPDxfQUNFT0YKLVxgY29uZmlndXJlJyBjb25maWd1cmVzIFdpbmUgMjAwNTAxMTEgdG8gYWRhcHQgdG8gbWFueSBraW5kcyBvZiBzeXN0ZW1zLgorXGBjb25maWd1cmUnIGNvbmZpZ3VyZXMgV2luZSAyMDA1MDIxMSB0byBhZGFwdCB0byBtYW55IGtpbmRzIG9mIHN5c3RlbXMuCiAKIFVzYWdlOiAkMCBbT1BUSU9OXS4uLiBbVkFSPVZBTFVFXS4uLgogCkBAIC04NTMsNyArODUzLDcgQEAKIAogaWYgdGVzdCAtbiAiJGFjX2luaXRfaGVscCI7IHRoZW4KICAgY2FzZSAkYWNfaW5pdF9oZWxwIGluCi0gICAgIHNob3J0IHwgcmVjdXJzaXZlICkgZWNobyAiQ29uZmlndXJhdGlvbiBvZiBXaW5lIDIwMDUwMTExOiI7OworICAgICBzaG9ydCB8IHJlY3Vyc2l2ZSApIGVjaG8gIkNvbmZpZ3VyYXRpb24gb2YgV2luZSAyMDA1MDIxMToiOzsKICAgIGVzYWMKICAgY2F0IDw8XF9BQ0VPRgogCkBAIC05ODQsNyArOTg0LDcgQEAKIHRlc3QgLW4gIiRhY19pbml0X2hlbHAiICYmIGV4aXQgMAogaWYgJGFjX2luaXRfdmVyc2lvbjsgdGhlbgogICBjYXQgPDxcX0FDRU9GCi1XaW5lIGNvbmZpZ3VyZSAyMDA1MDExMQorV2luZSBjb25maWd1cmUgMjAwNTAyMTEKIGdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41OQogCiBDb3B5cmlnaHQgKEMpIDIwMDMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCkBAIC05OTgsNyArOTk4LDcgQEAKIFRoaXMgZmlsZSBjb250YWlucyBhbnkgbWVzc2FnZXMgcHJvZHVjZWQgYnkgY29tcGlsZXJzIHdoaWxlCiBydW5uaW5nIGNvbmZpZ3VyZSwgdG8gYWlkIGRlYnVnZ2luZyBpZiBjb25maWd1cmUgbWFrZXMgYSBtaXN0YWtlLgogCi1JdCB3YXMgY3JlYXRlZCBieSBXaW5lICRhc19tZSAyMDA1MDExMSwgd2hpY2ggd2FzCitJdCB3YXMgY3JlYXRlZCBieSBXaW5lICRhc19tZSAyMDA1MDIxMSwgd2hpY2ggd2FzCiBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTkuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKIAogICAkICQwICRACkBAIC0yMDM1MSw3ICsyMDM1MSw3IEBACiB9ID4mNQogY2F0ID4mNSA8PF9DU0VPRgogCi1UaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IFdpbmUgJGFzX21lIDIwMDUwMTExLCB3aGljaCB3YXMKK1RoaXMgZmlsZSB3YXMgZXh0ZW5kZWQgYnkgV2luZSAkYXNfbWUgMjAwNTAyMTEsIHdoaWNoIHdhcwogZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU5LiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCiAKICAgQ09ORklHX0ZJTEVTICAgID0gJENPTkZJR19GSUxFUwpAQCAtMjA0MTQsNyArMjA0MTQsNyBAQAogCiBjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRgogYWNfY3NfdmVyc2lvbj0iXFwKLVdpbmUgY29uZmlnLnN0YXR1cyAyMDA1MDExMQorV2luZSBjb25maWcuc3RhdHVzIDIwMDUwMjExCiBjb25maWd1cmVkIGJ5ICQwLCBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTksCiAgIHdpdGggb3B0aW9ucyBcXCJgZWNobyAiJGFjX2NvbmZpZ3VyZV9hcmdzIiB8IHNlZCAncy9bXFwiIlxgXCRdL1xcXFwmL2cnYFxcIgogCg==