ZGlmZiAtLWdpdCBhL0FOTk9VTkNFIGIvQU5OT1VOQ0UKaW5kZXggYWUyNTU3OC4uOGVmZDg1ZTEgMTAwNjQ0Ci0tLSBhL0FOTk9VTkNFCisrKyBiL0FOTk9VTkNFCkBAIC0xLDEyICsxLDEzIEBACi1UaGlzIGlzIHJlbGVhc2UgMjAwMzEwMTYgb2YgV2luZSwgYSBmcmVlIGltcGxlbWVudGF0aW9uIG9mIFdpbmRvd3Mgb24KK1RoaXMgaXMgcmVsZWFzZSAyMDAzMTExOCBvZiBXaW5lLCBhIGZyZWUgaW1wbGVtZW50YXRpb24gb2YgV2luZG93cyBvbgogVW5peC4gIFRoaXMgaXMgc3RpbGwgYSBkZXZlbG9wZXJzIG9ubHkgcmVsZWFzZS4gIFRoZXJlIGFyZSBtYW55IGJ1Z3MKIGFuZCB1bmltcGxlbWVudGVkIGZlYXR1cmVzLiAgTW9zdCBhcHBsaWNhdGlvbnMgc3RpbGwgZG8gbm90IHdvcmsKIGNvcnJlY3RseS4KIAotV0hBVCdTIE5FVyB3aXRoIFdpbmUtMjAwMzEwMTY6IChzZWUgQ2hhbmdlTG9nIGZvciBkZXRhaWxzKQotICAgICAgICAtIFN1cHBvcnQgZm9yIHRoZSBYcmFuZHIgZXh0ZW5zaW9uLgotICAgICAgICAtIERsbCBzZXBhcmF0aW9uIG9mIGtlcm5lbCBhbmQgbnRkbGwgaXMgZmluaXNoZWQuCi0gICAgICAgIC0gTWFueSBlbmhhbmNlZCBtZXRhZmlsZSBpbXByb3ZlbWVudHMuCitXSEFUJ1MgTkVXIHdpdGggV2luZS0yMDAzMTExODogKHNlZSBDaGFuZ2VMb2cgZm9yIGRldGFpbHMpCisgICAgICAgIC0gTWFueSBwcmludGluZyBpbXByb3ZlbWVudHMuCisgICAgICAgIC0gUnVuLXRpbWUgZGV0ZWN0aW9uIG9mIE5QVEwgdGhyZWFkaW5nLgorICAgICAgICAtIExvdHMgb2YgY29kZSBtZXJnZXMgZnJvbSBDcm9zc292ZXIgT2ZmaWNlIDIuMS4KKyAgICAgICAgLSBTb21lIHJlb3JnYW5pemF0aW9uIG9mIHRoZSBzb3VyY2UgdHJlZS4KICAgICAgICAgLSBMb3RzIG9mIGJ1ZyBmaXhlcy4KIAogU2VlIHRoZSBSRUFETUUgZmlsZSBpbiB0aGUgZGlzdHJpYnV0aW9uIGZvciBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zLgpAQCAtMTUsOCArMTYsOCBAQAogdGhlIHJlbGVhc2UgaXMgYXZhaWxhYmxlIGF0IHRoZSBmdHAgc2l0ZXMuICBUaGUgc291cmNlcyB3aWxsIGJlIGF2YWlsYWJsZQogZnJvbSB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczoKIAotICBodHRwOi8vd3d3LmliaWJsaW8ub3JnL3B1Yi9MaW51eC9BTFBIQS93aW5lL2RldmVsb3BtZW50L1dpbmUtMjAwMzEwMTYudGFyLmd6Ci0gIGh0dHA6Ly9wcmRvd25sb2Fkcy5zb3VyY2Vmb3JnZS5uZXQvd2luZS9XaW5lLTIwMDMxMDE2LnRhci5negorICBodHRwOi8vd3d3LmliaWJsaW8ub3JnL3B1Yi9MaW51eC9BTFBIQS93aW5lL2RldmVsb3BtZW50L1dpbmUtMjAwMzExMTgudGFyLmd6CisgIGh0dHA6Ly9wcmRvd25sb2Fkcy5zb3VyY2Vmb3JnZS5uZXQvd2luZS9XaW5lLTIwMDMxMTE4LnRhci5negogCiBJdCBzaG91bGQgYWxzbyBiZSBhdmFpbGFibGUgZnJvbSBhbnkgb3RoZXIgc2l0ZSB0aGF0IG1pcnJvcnMgaWJpYmxpby5vcmcuCiBUaGVzZSBsb2NhdGlvbnMgYWxzbyBob2xkIHByZS1idWlsdCBkb2N1bWVudGF0aW9uIHBhY2thZ2VzIGluIHZhcmlvdXMKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBkODY2M2Q2Li5iNmFjM2I4IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDQgKzEsMTQxOCBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjAwMy0xMS0xOCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9zaGVsbDMyL01ha2VmaWxlLmluOgorCVVzZSBhIG1vcmUgcG9ydGFibGUgd2F5IHRvIGdlbmVyYXRlIGF1dGhvcnMuYy4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRsbHMvZ2RpL2ZyZWV0eXBlLmMsIGRsbHMvd2luZXBzL3RydWV0eXBlLmMsIGluY2x1ZGUvY29uZmlnLmguaW46CisJUmVpbiBLbGF6ZXMgPHJrbGF6ZXNAeHM0YWxsLm5sPgorCUluY2x1ZGUgZnQyYnVpbGQuaCBiZWZvcmUgZnJlZXR5cGUvZnJlZXR5cGUuaC4gTGliZnJlZXR5cGUgMi4xLjcKKwlyZXF1aXJlcyB0aGlzLgorCisJKiBkbGxzL2NvbWN0bDMyL2NvbWN0bF9JdC5yYywgZGxscy9jb21jdGwzMi9yc3JjLnJjLCBkbGxzL21zYWNtL21zYWNtLnJjLCBkbGxzL21zYWNtL21zYWNtX0l0LnJjLCBkbGxzL29sZWF1dDMyL29sZWF1dDMyX0l0LnJjOgorCUl2YW4gTGVvIE11cnJheS1TbWl0aCA8cHVvdGlAaW53aW5kLml0PgorCUFkZGVkL3VwZGF0ZWQgSXRhbGlhbiByZXNvdXJjZXMuCisKKwkqIGRsbHMvZGRyYXcvZDNkZGV2aWNlL21lc2EuYywgZGxscy9kZHJhdy9kaXJlY3QzZC9tZXNhLmM6CisJTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwlGaXggc29tZSBvdGhlciBtdWx0aS10ZXh0dXJpbmcgcHJvYmxlbXMuCisKKwkqIHRvb2xzL3dpbmVjb25mLmxpYnMvYXV0b2NvbmYuZW5nLCB0b29scy93aW5lY29uZi5saWJzL2F1dG9jb25mLnRjbCwKKwkgIHRvb2xzL3dpbmVjb25mLmxpYnMvYnJvd3NlcnMuZW5nLCB0b29scy93aW5lY29uZi5saWJzL2RpcmJyb3dzZXIudGNsLAorCSAgdG9vbHMvd2luZWNvbmYubGlicy9nZW5lcmFsLmVuZywgdG9vbHMvd2luZWNvbmYubGlicy9nZXRmaWxlbmFtZS50Y2wsCisJICB0b29scy93aW5lY29uZi5saWJzL21lc3NhZ2UudGNsLCB0b29scy93aW5lY29uZi5saWJzL21lc3NhZ2UyLnRjbCwKKwkgIHRvb2xzL3dpbmVjb25mLmxpYnMvc2F2ZVJDLnRjbCwgdG9vbHMvd2luZWNvbmYudGNsLAorCSAgdG9vbHMvd2luZWNvbmYubGlicy93aW5lLWhhbGYuZ2lmLCB0b29scy93aW5lY29uZi5saWJzL3dpbmVjb25mLmVuZywKKwkgIHRvb2xzL3dpbmVjb25mLmxpYnMvd2luZWNvbmYudGNsLCB0b29scy93aW5lY29uZi5saWJzL3dpbmVjb25mMS50Y2w6CisJUmVtb3ZlZCBvYnNvbGV0ZSB3aW5lY29uZiB0Y2wgaW1wbGVtZW50YXRpb24uCisKKwkqIGRsbHMvcXVhcnR6L01ha2VmaWxlLmluLCBkbGxzL3F1YXJ0ei9hdmlzcGxpdC5jLAorCSAgZGxscy9xdWFydHovY29udHJvbC5jLCBkbGxzL3F1YXJ0ei9jb250cm9sX3ByaXZhdGUuaCwKKwkgIGRsbHMvcXVhcnR6L2ZvdXJjYy5oLCBkbGxzL3F1YXJ0ei9tYWluLmMsIGRsbHMvcXVhcnR6L3Bpbi5jLAorCSAgZGxscy9xdWFydHovcXVhcnR6X3ByaXZhdGUuaCwgaW5jbHVkZS93aW5lL2RlYnVnLmg6CisJUm9iZXJ0IFNoZWFybWFuIDxSLkouU2hlYXJtYW5Ad2Fyd2ljay5hYy51az4KKwktIEFWSSBTcGxpdHRlciBpbXBsZW1lbnRhdGlvbi4KKwktIEFkZCBuZXcgZGVidWdnaW5nIGZ1bmN0aW9uIHdpbmVfZGJzdHJfbG9uZ2xvbmcuCisKKwkqIGRsbHMvd2luaW5ldC9pbnRlcm5ldC5jLCBpbmNsdWRlL29sZWF1dG8uaCwgaW5jbHVkZS9zZGRsLmg6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJQXNzb3J0ZWQgc3BlbGxpbmcgZml4ZXMuCisKKwkqIHdpbmVkZWZhdWx0LnJlZzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGNvZGV3ZWF2ZXJzLmNvbT4KKwlUd2VhayB0aGUgdG9wLWxldmVsIGNvbW1lbnQgaG9wZWZ1bGx5IGZvciB0aGUgYmV0dGVyLgorCUZpeCB0aGUgIkRlZmF1bHQgRGV2bW9kZSIgZW50cnkuCisJcy9TdGRDb21wb25lbnRDYXRlZ29yaWVzTWdyL0NvbXBvbmVudCBDYXRlZ29yaWVzIE1hbmFnZXIvLgorCisJKiBkbGxzL2FkdmFwaTMyL2NyeXB0LmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlJbXByb3ZlIGVycm9yIGhhbmRsaW5nIGluIENyeXB0QWNxdWlyZUNvbnRleHQuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL3BhdGguYzogSGFucyBMZWlkZWtrZXIgPGhhbnNAaXQudnUubmw+CisJQWNjb3VudCBmb3IgdGhlIGZhY3QgdGhhdCB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSBtYXkgZXhwYW5kIHRvIGEgbG9uZworCW5hbWUuCisKKwkqIEFVVEhPUlM6IFVwZGF0ZWQgYXV0aG9ycyBsaXN0LgorCisJKiBBVVRIT1JTLCBkbGxzL3NoZWxsMzIvLmN2c2lnbm9yZSwgZGxscy9zaGVsbDMyL01ha2VmaWxlLmluLAorCSAgZGxscy9zaGVsbDMyL2F1dGhvcnMuaCwgZGxscy9zaGVsbDMyL3NoZWxsMzJfbWFpbi5jLAorCSAgdG9vbHMvbWFrZV9hdXRob3JzOgorCUdlbmVyYXRlIHRoZSBhdXRob3JzIGxpc3QgZm9yIHRoZSBzaGVsbCBhYm91dCBkaWFsb2cgZnJvbSBBVVRIT1JTIGF0CisJY29tcGlsZSB0aW1lLiBDb252ZXJ0ZWQgdGhlIGFib3V0IGRpYWxvZyB0byBVbmljb2RlLgorCisJKiBjb250cm9scy9tZW51LmMsIGRsbHMvdXNlci9jb250cm9scy5oOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJTWFrZSBuYXRpb25hbCAoaG90KWtleXMgd29yayBpbiBtZW51cy4gTWFrZSBtZW51IGNvZGUgdXNlIHVuaWNvZGUgQVBJcy4KKworCSogZGxscy9jb21jdGwzMi90cmFja2Jhci5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCVVuc3dhcCBQYWdlIFVwICYgRG93biBhbmQgZml4IFRCU19ET1dOSVNMRUZULgorCU5NXyogbm90aWZpY2F0aW9ucyBnbyB2aWEgV01fTk9USUZZIG5vdCBXTl8/U0NST0xMLgorCVB1bGwgdGhlIG5vdGlmaWNhdGlvbiB3aW5kb3cgZnJvbSB0aGUgQ3JlYXRlU3RydWN0LgorCVNlbmQgYSBUQl9USFVNQlBPU0lUSU9OIGF0IHRoZSBlbmQgb2YgYSBkcmFnLgorCisJKiB0b29scy93aW5lbWFrZXI6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCUZpeCB0aGUgZ2VuZXJhdGlvbiBvZiB3aW5lYXBwbG9hZGVyIGluIHN1YiBkaXJlY3Rvcmllcy4KKworCSogZGxscy9rZXJuZWwvdGVzdHMvcHJvY2Vzcy5jOgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBjb2Rld2VhdmVycy5jb20+CisJU2NhbGUgdGhlIGJ1ZmZlciBzaXplcyB3aXRoIE1BWF9MSVNURURfRU5WX1ZBUi4KKwlBZGQgYSBub3RlIGFib3V0IHRoZSBsaW1pdGVkIGJ1ZmZlciBzaXplIHVzZWQgYnkgdGhlICpQcm9maWxlIGZ1bmN0aW9ucy4KKwlGaXggYSBjb3VwbGUgb2Ygc3BlbGxpbmcgZXJyb3JzLgorCisJKiBkbGxzL2NvbWN0bDMyL2xpc3R2aWV3LmM6IFJlaW4gS2xhemVzIDxya2xhemVzQHhzNGFsbC5ubD4KKwlUaGUgTFZOX0dFVERJU1BJTkZPIG5vdGlmeSBtZXNzYWdlIHNob3VsZCBwb2ludCB0byB0aGUgc2FtZSBpU3ViSXRlbQorCWFzIGluIHRoZSBjYWxsIHRvIExJU1RWSUVXX0dldEl0ZW1ULCB2YWxpZCBvciBub3QuIEZpeCBhIGJhZGx5IHBsYWNlZAorCWJyYWNlLgorCisJKiBkbGxzL2tlcm5lbC9nbG9iYWwxNi5jLCBkbGxzL2tlcm5lbC9pbnN0ci5jLAorCSAgZGxscy9rZXJuZWwva2VybmVsX3ByaXZhdGUuaCwgZGxscy9rZXJuZWwvbG9jYWwxNi5jLAorCSAgZGxscy9rZXJuZWwvc2VsZWN0b3IuYywgZGxscy9rZXJuZWwvdGh1bmsuYywgZGxscy9rZXJuZWwvd293dGh1bmsuYywKKwkgIGluY2x1ZGUvc2VsZWN0b3JzLmg6CisJUmVtb3ZlZCBpbmNsdWRlL3NlbGVjdG9ycy5oLgorCisJKiBkbGxzL2tlcm5lbC90aHJlYWQuYywgZGxscy9udGRsbC90aHJlYWQuYzoKKwlGb3JjZSBtaW5pbXVtIHN0YWNrIHNpemUgdG8gMU1iIGZvciBYbGliLgorCisJKiBkbGxzL3VzZXIvZm9jdXMuYywgZGxscy91c2VyL3Rlc3RzL3dpbi5jLCBzZXJ2ZXIvd2luZG93LmM6CisJTWFydGluIEZ1Y2hzIDxtYXJ0aW4tZnVjaHNAZ214Lm5ldD4KKwktIE1vdmUgc2hlbGwgd2luZG93IGludG8gdGhlIGJhY2tncm91bmQuCisJLSBBZGQgdGVzdHMgZm9yIEdldC9TZXRTaGVsbFdpbmRvdygpLgorCisJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGxscy9kZHJhdy9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvZGRyYXcvdGVzdHMvLmN2c2lnbm9yZSwgZGxscy9kZHJhdy90ZXN0cy9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvZGRyYXcvdGVzdHMvZGRyYXdtb2Rlcy5jOgorCVNhbWkgQWFyaW8gPHNhbWkuYWFyaW9Ac3VyZmV1LmZpPgorCUFkZGVkIHNvbWUgY29uZm9ybWFuY2UgdGVzdHMgZm9yIGRkcmF3LiBUaGVzZSBlbnVtZXJhdGUgc29tZSBkaXNwbGF5CisJbW9kZXMgYW5kIHRoZW4gYXR0ZW1wdCB0byBvcGVuIHRoZW0uCisKKwkqIGRsbHMva2VybmVsL2tlcm5lbDMyLnNwZWMsIGRsbHMvd2luZWRvcy9oaW1lbS5jLAorCSAgZGxscy93aW5lZG9zL2ludDMxLmM6CisJVXNlIHRoZSB3aW5lX2xkdF8qIGZ1bmN0aW9ucyBkaXJlY3RseSBpbiB3aW5lZG9zIGluc3RlYWQgb2YgY2FsbGluZworCVNFTEVDVE9SX0FsbG9jQmxvY2suCisKKwkqIGRsbHMvY29tY3RsMzIvbGlzdHZpZXcuYzogQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGN1c3RvbWRyYXdfZmlsbCBpcyBjYWxsZWQgZXZlbiBpZgorCUNEUkZfTk9USUZZSVRFTURSQVcgaXMgbm90IGJlaW5nIHVzZWQgYmVjYXVzZSB3ZSB1c2VkIHRoZSB0ZXh0IGFuZAorCWJhY2tncm91bmQgY29sb3JzIGZyb20gdGhhdCBzdHJ1Y3QgbGF0ZXIuCisKKwkqIG9iamVjdHMvYml0bWFwLmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJQSBiaXRtYXAgY3JlYXRlZCBieSBDcmVhdGVDb21wYXRpYmxlQml0bWFwIHNob3VsZCBub3QgYmUgb3duZWQgYnkgYQorCWRyaXZlciB1bnRpbCBpdCBpcyBzZWxlY3RlZCBpbnRvIGl0LiAgVGhlIGRyaXZlciBjaGVja3MgdGhhdCB0aGUKKwliaXRtYXAgaXMgb2YgdGhlIGNvcnJlY3QgZGVwdGggaW4gU2VsZWN0Qml0bWFwLgorCisJKiBvYmplY3RzL2ZvbnQuYzogUGhpbCBLcnlsb3YgPHBoaWxAbmV3c3Rhci5yaW5ldC5ydT4KKwlBZGRlZCBzdXBwb3J0IGZvciByZXR1cm5pbmcgY2FyZXQgcG9zaXRpb25zIGluCisJR2V0Q2hhcmFjdGVyUGxhY2VtZW50VygpLgorCisJKiBkbGxzL29sZWF1dDMyL3R5cGVsaWIuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBcHBseSBzYW1lIG1hZ2ljIHRvIExpYkF0dHIubGNpZCBmcm9tIE1TRlQgdG8gU0xURy4KKworMjAwMy0xMS0xNyAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9rZXJuZWwva2VybmVsMzIuc3BlYywgZGxscy9rZXJuZWwvdG9vbGhlbHAuaCwKKwkgIGRsbHMvd2luZWRvcy9pbnQzMS5jLCBpbmNsdWRlL3Rvb2xoZWxwLmg6CisJTW92ZWQgdG9vbGhlbHAuaCB0byBkbGxzL2tlcm5lbC4KKworCSogZGxscy9hZHZhcGkzMi9yZWdpc3RyeS5jLCBkbGxzL2NvbW1kbGcvZm9udGRsZzE2LmMsCisJICBkbGxzL2dkaS9wcmludGRydi5jLCBkbGxzL2tlcm5lbC9kb3NtZW0uYywgZGxscy9rZXJuZWwvcHJvZmlsZS5jLAorCSAgZGxscy9rZXJuZWwvcmVsYXkxNi5jLCBkbGxzL2tlcm5lbC90YXNrLmMsIGRsbHMvbnRkbGwvbG9hZGVyLmMsCisJICBkbGxzL250ZGxsL2xvYWRvcmRlci5jLCBkbGxzL250ZGxsL250ZGxsX21pc2MuaCwgZGxscy9udGRsbC9zZWMuYywKKwkgIGRsbHMvbnRkbGwvc2lnbmFsX3Bvd2VycGMuYywgZGxscy9udGRsbC92ZXJzaW9uLmMsCisJICBkbGxzL3NoZWxsMzIvc2hlbGxsaW5rLmMsIGRsbHMvd2luZWRvcy9kb3Njb25mLmMsCisJICBkbGxzL3dpbmVkb3MvaGltZW0uYywgZGxscy93aW5lZG9zL21vZHVsZS5jLCBkbGxzL3dpbmVkb3MvdnhkLmMsCisJICBpbmNsdWRlL21pc2NlbXUuaCwgbWlzYy9vcHRpb25zLmMsIG9iamVjdHMvYml0bWFwLmMsIG9iamVjdHMvZGMuYywKKwkgIG9iamVjdHMvZGliLmMsIHdpbmRvd3MvdXNlci5jOgorCVJlbW92ZWQgc29tZSB1bm5lY2Vzc2FyeSBpbmNsdWRlcy4KKworCSogZGxscy9rZXJuZWwvcHJvY2Vzcy5jOgorCUZpeGVkIHJlZ3Jlc3Npb24gaW4gbG9hZGluZyBvZiBidWlsdGluIGFwcHMgZnJvbSB0aGUgc3lzdGVtIGRpciB3aGVuCisJdGhlIG5hdGl2ZSBkb2Vzbid0IGV4aXN0LgorCisJKiBkbGxzL2tlcm5lbC9uZV9tb2R1bGUuYywgZGxscy9rZXJuZWwvbmVfc2VnbWVudC5jLAorCSAgZGxscy9rZXJuZWwvcHJvY2Vzcy5jLCBpbmNsdWRlL21vZHVsZS5oOgorCU1vdmVkIGEgZmV3IGRlZmluaXRpb25zIHVzZWQgaW4gb25seSBvbmUgc291cmNlIGZpbGUgb3V0IG9mIG1vZHVsZS5oLgorCisJKiBkbGxzL2tlcm5lbC9pbnN0ci5jLCBkbGxzL2tlcm5lbC93b3d0aHVuay5jLAorCSAgZGxscy9udGRsbC9zaWduYWxfaTM4Ni5jLCBkbGxzL3dpbmVkb3MvaW50MzEuYywgaW5jbHVkZS9zZWxlY3RvcnMuaCwKKwkgIGluY2x1ZGUvd2luZS9saWJyYXJ5LmgsIGxpYnMvd2luZS9sZHQuYywgbGlicy93aW5lL3dpbmUuZGVmOgorCUFkZGVkIHdpbmVfbGR0X2lzX3N5c3RlbSgpIHRvIHJlcGxhY2UgdGhlIElTX1NFTEVDVE9SX1NZU1RFTSBtYWNybywKKwlhbmQgc3RvcCBleHBvcnRpbmcgdGhlIFdJTkVfTERUX0ZJUlNUX0VOVFJZIGNvbnN0YW50LgorCisJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYzoKKwlMaW5rIHRoZSBtYWluIGJpbmFyaWVzIHdpdGggLS1leHBvcnQtZHluYW1pYyBzbyB0aGF0IHRoZSBwdGhyZWFkCisJZW11bGF0aW9uIHdvcmtzIGNvcnJlY3RseSAocmVwb3J0ZWQgYnkgSmVyZW15IFNoYXcpLgorCisJKiBkbGxzL2QzZDgvZHJhd3ByaW0uYzogSmFzb24gRWRtZWFkZXMgPHVzQHRoZS1lZG1lYWRlcy5kZW1vbi5jby51az4KKwlEaXNhYmxlIHRoZSB1c2Ugb2YgdGhlICd3JyBwYXJtIGluIHJodyBtb2RlLgorCisJKiBkbGxzL2QzZDgvZGV2aWNlLmM6IEphc29uIEVkbWVhZGVzIDx1c0B0aGUtZWRtZWFkZXMuZGVtb24uY28udWs+CisJSWYgc3dhcCBtb2RlIGlzIGRpc2NhcmQsIGNsZWFyIHRoZSBiYWNrYnVmZmVyIGJlZm9yZSBtb3Zpbmcgb250byB0aGUKKwluZXh0IGZyYW1lLgorCisJKiBkbGxzL2QzZDgvZGlyZWN0eC5jOiBKYXNvbiBFZG1lYWRlcyA8dXNAdGhlLWVkbWVhZGVzLmRlbW9uLmNvLnVrPgorCVVzZSB0aGUgY3VycmVudCB3aW5kb3cgdmlzdWFsIG9ubHkuCisKKwkqIGRsbHMvZHNvdW5kL2J1ZmZlci5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUluaXRpYWxpemUgYnVmZmVyIHJlZmVyZW5jZSBjb3VudC4KKworCSogcHJvZ3JhbXMvd2luZWNmZy9Fbi5yYywgcHJvZ3JhbXMvd2luZWNmZy9QdC5yYzoKKwlNYXJjZWxvIER1YXJ0ZSA8d2luZS1kZXZlbEBib2wuY29tLmJyPgorCUxvY2FsaXphdGlvbiB0byBQb3J0dWd1ZXNlLgorCisJKiBkbGxzL2RkcmF3L2QzZGRldmljZS9tZXNhLmMsIGRsbHMvZGRyYXcvbWVzYS5jOgorCUxpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJRml4IGdyYXBoaWNhbCBjb3JydXB0aW9uIG9uIHN1cmZhY2UgbG9jayB3aGVuIG11bHRpLXRleHR1cmluZyBpcworCWFjdGl2ZS4KKworCSogZGxscy9jb21jdGwzMi9saXN0dmlldy5jOiBSZWluIEtsYXplcyA8cmtsYXplc0B4czRhbGwubmw+CisJSWdub3JlIGludmFsaWQgaVN1Ykl0ZW0gaW4gTElTVFZJRVdfR2V0SXRlbVQoKS4KKworCSogdG9vbHMvd2luYXBpX2NoZWNrL21vZHVsZXMuZGF0OgorCVZpbmNlbnQgQulyb24gPHZiZXJvbkBtZWNhbm8uZ21lLnVzaGVyYi5jYT4KKwlBZGQgYSBjb3VwbGUgb2YgbWlzc2luZyBzcGVjIGZpbGVzLgorCisJKiBkbGxzL2F2aWZpbDMyL2F2aWZpbGVfSXQucmMsIHByb2dyYW1zL2Nsb2NrL0l0LnJjLAorCSAgcHJvZ3JhbXMvbm90ZXBhZC9JdC5yYywgcHJvZ3JhbXMvcHJvZ21hbi9JdC5yYywgcHJvZ3JhbXMvc3RhcnQvSXQucmM6CisJSXZhbiBMZW8gTXVycmF5LVNtaXRoIDxwdW90aUBpbndpbmQuaXQ+CisJSW1wcm92ZWQgSXRhbGlhbiB0cmFuc2xhdGlvbnMuCisKKwkqIGRsbHMvc2VyaWFsdWkvSXQucmMsIGRsbHMvc2VyaWFsdWkvc2VyaWFsdWlfcmMucmMsCisJICBkbGxzL3NldHVwYXBpL0l0LnJjLCBkbGxzL3NldHVwYXBpL3NldHVwYXBpLnJjLCBkbGxzL3dpbmluZXQvcnNyYy5yYywKKwkgIGRsbHMvd2luaW5ldC93aW5pbmV0X0l0LnJjLCBkbGxzL3dpbm1tL3dpbm1tX0VuLnJjLAorCSAgZGxscy93aW5tbS93aW5tbV9JdC5yYywgZGxscy93aW5tbS93aW5tbV9yZXMucmM6CisJSXZhbiBMZW8gTXVycmF5LVNtaXRoIDxwdW90aUBpbndpbmQuaXQ+CisJQWRkZWQgSXRhbGlhbiB0cmFuc2xhdGlvbi4KKworMjAwMy0xMS0xNSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9rZXJuZWwvZGV2aWNlLmMsIGRsbHMva2VybmVsL2ZpbGUxNi5jLCBkbGxzL2tlcm5lbC9pbnN0ci5jLAorCSAgZGxscy9rZXJuZWwvdGh1bmsuYywgZGxscy9rZXJuZWwvdnhkLmMsIGRsbHMva2VybmVsL3dpbjg3ZW0uYywKKwkgIGRsbHMva2VybmVsL3dpbmRlYnVnLmMsIGRsbHMva2VybmVsL3dvd3RodW5rLmMsCisJICBkbGxzL3dpbmFzcGkvd2luYXNwaTE2LmMsIGRsbHMvd2luZWRvcy9kZXZpY2VzLmMsCisJICBkbGxzL3dpbmVkb3MvZG9zZXhlLmgsIGRsbHMvd2luZWRvcy9kb3N2bS5jLCBkbGxzL3dpbmVkb3MvZnB1LmMsCisJICBkbGxzL3dpbmVkb3MvaW50MTEuYywgZGxscy93aW5lZG9zL2ludDEyLmMsIGRsbHMvd2luZWRvcy9pbnQxMy5jLAorCSAgZGxscy93aW5lZG9zL2ludDE1LmMsIGRsbHMvd2luZWRvcy9pbnQxNy5jLCBkbGxzL3dpbmVkb3MvaW50MjEuYywKKwkgIGRsbHMvd2luZWRvcy9pbnQyNS5jLCBkbGxzL3dpbmVkb3MvaW50MjYuYywgZGxscy93aW5lZG9zL2ludDJhLmMsCisJICBkbGxzL3dpbmVkb3MvaW50MzEuYywgZGxscy93aW5lZG9zL2ludDQxLmMsIGRsbHMvd2luZWRvcy9pbnQ0Yi5jLAorCSAgZGxscy93aW5lZG9zL2ludDVjLmMsIGRsbHMvd2luZWRvcy92eGQuYywgZGxscy93aW5lZG9zL3htcy5jLAorCSAgZmlsZXMvZGlyZWN0b3J5LmMsIGZpbGVzL2Rvc19mcy5jLCBmaWxlcy9kcml2ZS5jLCBmaWxlcy9maWxlLmMsCisJICBpbmNsdWRlL21pc2NlbXUuaCwgaW5jbHVkZS9tc2Rvcy5oOgorCU1vdmVkIGEgbnVtYmVyIG9mIERPUyBkZWZpbml0aW9ucyBvdXQgb2YgdGhlIGdsb2JhbCBoZWFkZXJzIGFuZCBpbnRvCisJd2luZWRvcyBwcml2YXRlIGZpbGVzLiBSZW1vdmVkIHRoZSBtc2Rvcy5oIGhlYWRlci4KKworMjAwMy0xMS0xNCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogREVWRUxPUEVSUy1ISU5UUywgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIHRvb2xzL3dpbmFwaS9tc3ZjbWFrZXIsCisJICB0b29scy93aW5hcGlfY2hlY2svbW9kdWxlcy5kYXQ6CisJR2V0IHJpZCBvZiB0aGUgbXNkb3MvIGRpcmVjdG9yeS4KKworCSogZGxscy9rZXJuZWwvTWFrZWZpbGUuaW4sIGRsbHMva2VybmVsL2RldmljZS5jLCBkbGxzL2tlcm5lbC9pbnN0ci5jLAorCSAgZGxscy9rZXJuZWwva2VybmVsX3ByaXZhdGUuaCwgZGxscy9rZXJuZWwvdnhkLmMsIGluY2x1ZGUvbWlzY2VtdS5oOgorCU1vdmVkIHdpbmVkb3MgbG9hZGluZyBmdW5jdGlvbmFsaXR5IHRvIGRsbHMva2VybmVsL2luc3RyLmMgYW5kIGdldCByaWQKKwlvZiBtc2Rvcy9kcG1pLmMuCisKKwkqIGRsbHMvZHNvdW5kL2NhcHR1cmUuYywgZGxscy93aW5tbS93aW5lb3NzL2F1ZGlvLmM6CisJUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlGaXhlcyBtb3JlIHVzZSBiZWZvcmUgc2V0IHJhY2VzLgorCVdvcmsgYXJvdW5kIGZvciBxdWV1ZSByZW9yZGVyaW5nIGZlYXR1cmUuCisJU3RvcCByZWNvcmRpbmcgb24gcmVzZXQuCisJQmV0dGVyIGRlYnVnIGluZm8uCisJRHNvdW5kIGNhbGxiYWNrIGNhcHR1cmUgc3RhdGUgZml4LgorCisJKiBkbGxzL29sZWF1dDMyL3ZhcmlhbnQuYzogSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlJbXBsZW1lbnQgdGhlIG5vbi12YXJpYW50IGRhdGUgY29udmVyc2lvbnMgY29ycmVjdGx5LCB3aXRob3V0IGdvaW5nCisJdGhyb3VnaCAnc3RydWN0IHRtJyBmaXJzdC4gSGFuZGxlIG5lZ2F0aXZlICYgJ3JvbGxpbmcnIGRhdGVzIHRvby4KKworCSogZGxscy9vbGVhdXQzMi9vbGVhdXQuYywgaW5jbHVkZS9vbGVhdXRvLmg6CisJSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlBZGQgc29tZSBtaXNzaW5nIHByb3RvdHlwZXMvZGVmaW5lcy4KKwlPYUJ1aWxkVmVyc2lvbigpIHJldHVybnMgYSBVTE9ORywgbm90IFVJTlQuCisKKwkqIGxpYnMvdW5pY29kZS9zdHJpbmcuYzogSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlSZW1vdmUgYSByZWR1bmRhbnQgdGVzdC4KKwlIYW5kbGUgJ2EnLCdBJywnZScsJ0UnLCdGJywnZycsJ0cnIGZsYXZvdXJzIG9mIGRvdWJsZSBhcmd1bWVudHMuCisKKwkqIGRsbHMvb2xlYXV0MzIvdHlwZWxpYi5jOiBKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCUR1bXAgYSBmZXcgbW9yZSBrbm93biB2YXJpYW50IHR5cGVzLgorCURvbid0IGNhbGwgRGF0ZVRvVE0oKSAtIGl0J3MgZ29pbmcgYXdheSBzb29uLgorCisJKiBkbGxzL2tlcm5lbC9sb2NhbGUuYzogSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlGaXggYSBjcmFzaCBpbiBHZXRMb2NhbGVJbmZvKCkgd2hlbiBleHRyYSBoaWdoIGJpdHMgYXJlIHNldC4KKworCSogY29udHJvbHMvY29tYm8uYzogQ2FybG9zIExvemFubyA8Y2xvemFub0BhbmRhZ28uY29tPgorCUZpeGVkIENCX0RJUjE2IGhhbmRsaW5nLgorCisJKiBkbGxzL3dpbmVkb3MvaW50MjEuYzogUmVwYWlyZWQgSU5UMjFfRmluZEZpcnN0L0ZpbmROZXh0LgorCisJKiBkbGxzL2tlcm5lbC9NYWtlZmlsZS5pbiwgZGxscy9rZXJuZWwva2VybmVsMzIuc3BlYywKKwkgIGRsbHMvd2luZWRvcy9pbnQyMS5jLCBmaWxlcy9kb3NfZnMuYywgZmlsZXMvZHJpdmUuYywgaW5jbHVkZS9kcml2ZS5oLAorCSAgaW5jbHVkZS9maWxlLmgsIGluY2x1ZGUvbXNkb3MuaCwgaW5jbHVkZS93aW5iYXNlLmg6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJLSBtb3ZlZCB0aGUgcmVtYWluaW5nIG9mIGludDIxIGNhbGxzIHRvIGRsbHMvd2luZWRvcworCS0gZGlzYWJsZWQgZHJpdmUgZW5hYmxpbmcvZGlzYWJsaW5nIGFzIHdlbGwgYXMgZGlzayBzZXJpYWwgbnVtYmVyCisJICB3cml0aW5nIChmb3IgRExMIHNlcGFyYXRpb24gaXNzdWVzKQorCS0gYWRkZWQgdm9sdW1lIG1hbmFnZW1lbnQgcHJvdG90eXBlcyB0byBpbmNsdWRlL3dpbmJhc2UuaAorCS0gc3RhcnRlZCBEZWZpbmVEb3NEZXZpY2UgKG5lZWRlZCBieSBmaXJzdCBpdGVtIGluIHRoaXMgbGlzdCkKKwktIHJlbW92ZWQgaW50MjEgc3BlY2lmaWMgY29kZSBmcm9tIGRsbHMva2VybmVsCisKKwkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkbGxzL01ha2VmaWxlLmluLCBkbGxzL21ha2VfZGxscywKKwkgIGRsbHMvd2luZWQzZC8uY3ZzaWdub3JlLCBkbGxzL3dpbmVkM2QvTWFrZWZpbGUuaW4sCisJICBkbGxzL3dpbmVkM2QvdmVydGV4c2hhZGVyLmMsIGRsbHMvd2luZWQzZC93aW5lZDNkLnNwZWMsCisJICBkbGxzL3dpbmVkM2Qvd2luZWQzZF9tYWluLmMsIGRsbHMvd2luZWQzZC93aW5lZDNkX3ByaXZhdGUuaCwKKwkgIGluY2x1ZGUvd2luZS93aW5lZDNkX2dsLmgsIGluY2x1ZGUvd2luZS93aW5lZDNkX2ludGVyZmFjZS5oLAorCSAgaW5jbHVkZS93aW5lL3dpbmVkM2RfdHlwZXMuaDoKKwlSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwlBZGQgdGhlIHdpbmVkM2QgZGxsIGZvciBiZWdpbm5pbmcgYSBjbGVhbmVyIGQzZCBhcmNoaXRlY3R1cmUgdGhhdCB3aWxsCisJY29udGFpbiB0aGUgc2hhcmVkIG9wZW5HTCBjb2RlIG5lZWRlZCBmb3IgYWxsIHdpbmUgZGlyZWN0M2QKKwlpbXBsZW1lbnRhdGlvbnMuCisKKwkqIGRsbHMvdHR5ZHJ2L3R0eWRydi5zcGVjLCBkbGxzL3R0eWRydi91c2VyLmMsIGRsbHMvdXNlci91c2VyMzIuc3BlYywKKwkgIGRsbHMvdXNlci91c2VyX21haW4uYywgZGxscy94MTFkcnYvTWFrZWZpbGUuaW4sCisJICBkbGxzL3gxMWRydi9rZXlib2FyZC5jLCBkbGxzL3gxMWRydi94MTFkcnYuc3BlYywgaW5jbHVkZS91c2VyLmgsCisJICBpbmNsdWRlL3dpbnVzZXIuaCwgd2luZG93cy9kZWZ3bmQuYywgd2luZG93cy9pbnB1dC5jOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJQWRkIHByZWxpbWluYXJ5IHN1cHBvcnQgZm9yIGtleWJvYXJkIGxheW91dCBBUElzLgorCisJKiBvYmplY3RzL2RpYi5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUNoZWNrIGZvciB0aGUgZXhpc3RlbmNlIG9mIHRoZSBkcml2ZXIgQ3JlYXRlRElCU2VjdGlvbiBiZWZvcmUgY2FsbGluZworCWl0LgorCisJKiBkbGxzL21zdmNydC9tc3ZjcnQuc3BlYywgZGxscy9tc3ZjcnQvcHJvY2Vzcy5jOgorCUtpcmlsbCBTbWVsa292IDxraXJyQGxhbmRhdS5waHlzLnNwYnUucnU+CisJQWRkZWQgX2V4ZWNsZS9fZXhlY2xwZSAmIF9zcGF3bmxlL19zcGF3bmxwZSBzdHVicy4KKworMjAwMy0xMS0xMyAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9rZXJuZWwvYXRvbS5jLCBkbGxzL2tlcm5lbC9kZXZpY2UuYywgZGxscy9rZXJuZWwvaW5zdHIuYywKKwkgIGRsbHMva2VybmVsL2tlcm5lbF9wcml2YXRlLmgsIGRsbHMva2VybmVsL2xvY2FsMTYuYywKKwkgIGRsbHMva2VybmVsL3Rhc2suYywgZGxscy9rZXJuZWwvdnhkLmMsIGluY2x1ZGUvY2FsbGJhY2suaCwKKwkgIGluY2x1ZGUvaW5zdGFuY2UuaDoKKwlSZW1vdmVkIGluc3RhbmNlLmggYW5kIGNhbGxiYWNrLmgsIG1vdmluZyB0aGVpciBjb250ZW50cyB0bworCWtlcm5lbF9wcml2YXRlLmguCisKKwkqIERFVkVMT1BFUlMtSElOVFMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkbGxzL2tlcm5lbC9NYWtlZmlsZS5pbiwKKwkgIGRsbHMva2VybmVsL2NwdS5jLCBkbGxzL2tlcm5lbC9lbnZpcm9uLmMsIGRsbHMva2VybmVsL3ZpcnR1YWwuYywKKwkgIG1pc2MvY3B1LmMsIHRvb2xzL3dpbmFwaS9tc3ZjbWFrZXIsIHRvb2xzL3dpbmFwaV9jaGVjay9tb2R1bGVzLmRhdDoKKwlNb3ZlZCBtZW1vcnkvZW52aXJvbi5jLCBtZW1vcnkvdmlydHVhbC5jIGFuZCBtaXNjL2NwdS5jIHRvCisJZGxscy9rZXJuZWwuCisJR2V0IHJpZCBvZiB0aGUgbWVtb3J5LyBkaXJlY3RvcnkuCisKKwkqIGRsbHMvY2FwaTIwMzIvY2FwMjB3eHguYywgZGxscy9jYXBpMjAzMi9jYXAyMHd4eC5oOgorCUFWTSBHbWJIIGh0dHA6Ly93d3cuYXZtLmRlLworCVJlbW92ZWQgc29tZSBvbGQgUkNTIGNvbW1lbnRzLgorCUZpeGVkIGEgbWVzc2FnZSBsb2NhdGlvbiBhbmQgQ0FQSV9XQUlUX0ZPUl9TSUdOQUwuCisKKwkqIG9iamVjdHMvZm9udC5jOiBBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCUNvbnZlcnQgbHBuRml0IGJhY2sgdG8gbXVsdGlieXRlIGluIEdldFRleHRFeHRlbnRFeFBvaW50QS4KKworCSogZGxscy9jb21jdGwzMi9saXN0dmlldy5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUltcGxlbWVudGVkIExWU19FWF9DSEVDS0JPWEVTLgorCisJKiBvYmplY3RzL2JydXNoLmM6IEFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJQW4gYXBwIGRlcGVuZHMgb24gYSBOVUxMIHJldHVybiBmcm9tIENyZWF0ZURJQlBhdHRlcm5CcnVzaFB0IGlmIGRhdGEKKwlpcyBOVUxMLgorCisJKiBkbGxzL2NvbWN0bDMyL3RyZWV2aWV3LmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJQXZvaWQgc2V0dGluZyBpbmZvUHRyLT5maXJzdFZpc2libGUgdG8gTlVMTCBpbiBUUkVFVklFV19Tb3J0LgorCisyMDAzLTExLTEyICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgaW5jbHVkZS9jb25maWcuaC5pbiwgbG9hZGVyL3B0aHJlYWQuYzoKKwlBZGRlZCBjb25maWd1cmUgY2hlY2sgZm9yIHB0aHJlYWRfZ2V0YXR0cl9ucC4KKworCSogZGxscy9nZGkvZnJlZXR5cGUuYywgZGxscy93aW5lcHMvZG93bmxvYWQuYywgZGxscy93aW5lcHMvcHNkcnYuaCwKKwkgIGRsbHMvd2luZXBzL3R5cGUxLmMsIGRsbHMvd2luZXBzL3R5cGU0Mi5jOgorCUh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJU2NhbGUgdGhlIE9VVExJTkVURVhUTUVUUklDJ3MgYm91bmRpbmcgYm94IHdpdGggdGhlIGZvbnQgc2l6ZS4KKwlGaXggd2luZXBzJ3MgZm9udCBkb3dubG9hZGVycyB0byBjb3BlIHdpdGggdGhpcyBiZWhhdmlvdXIuCisKKwkqIG9iamVjdHMvZGliLmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJTWFrZSBzdXJlIHdlIGNyZWF0ZSBhIHBvbHljaHJvbWUgYml0bWFwIGZyb20gdGhlIGRpYi4gIENyZWF0ZURJQml0bWFwCisJZG9lc24ndCBkbyB0aGlzIHdoZW4gdGhlIGRpYiBpcyAxYnBwIGFuZCBoYXMgYSBibGFjay93aGl0ZSBjb2xvdXIKKwl0YWJsZS4gIEluIHN1Y2ggY2FzZXMgdGhpcyByZXN1bHRlZCBpbiBhIG1vbm9jaHJvbWUgYml0bWFwIGJlaW5nCisJU3RyZXRjaEJsdCdlZCB3aGljaCBpcyBjbGVhcmx5IGluY29ycmVjdCBzaW5jZSB3ZSB0aGVuIHN0YXJ0IHVzaW5nCisJdGV4dCBhbmQgYmtnbmQgY29sb3Vycy4KKworCSogZGxscy9jb21jdGwzMi9pbWFnZWxpc3QuYzogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggc29tZSB3ZWlyZCBsb2dpYyBpbiBJbWFnZUxpc3RfV3JpdGUuCisKKwkqIGRsbHMvY29tY3RsMzIvbGlzdHZpZXcuYzogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBIG11bHRpY29sdW1uIGxpc3R2aWV3IHNob3VsZCBnZXQgYSBjdXN0b21kcmF3IG5vdGlmaWNhdGlvbiBmb3IgdGhlCisJaXRlbSBhcyB3ZWxsIGFzIG9uZSBmb3Igc3ViaXRlbSAwLgorCisJKiBkbGxzL3dpbm1tL3dpbmVhbHNhL21pZGkuYzogQ2hyaXN0aWFuIENvc3RhIDx0aXRhbi5jb3N0YUB3YW5hZG9vLmZyPgorCUFsc2EgbWlkaSBmaXhlcy4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGxvYWRlci8uY3ZzaWdub3JlLCBsb2FkZXIvTWFrZWZpbGUuaW4sCisJICBsb2FkZXIvZ2xpYmMuYywgdG9vbHMvd2luZWluc3RhbGw6CisJQWRkZWQgYSB3aW5lLWdsaWJjIGJpbmFyeSB0aGF0IGRldGVjdHMgdGhlIGdsaWJjIHRocmVhZGluZyBpbiB1c2UgYW5kCisJZXhlY3MgdGhlIGNvcnJlc3BvbmRpbmcgd2luZSBiaW5hcnkuCisJUmVtb3ZlZCB0aGUgLS13aXRoLW5wdGwgY29uZmlndXJlIG9wdGlvbi4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGluY2x1ZGUvY29uZmlnLmguaW4sIGluY2x1ZGUvd2luZS9wb3J0LmgsCisJICBsaWJzL3BvcnQvTWFrZWZpbGUuaW4sIGxpYnMvcG9ydC9nZXR0aWQuYywgbGlicy9wb3J0L3NpZ3NldGptcC5jLAorCSAgbG9hZGVyL3B0aHJlYWQuYzoKKwlBZGRlZCBzaWdzZXRqbXAvc2lnbG9uZ2ptcCBhbmQgZ2V0dGlkIHRvIHRoZSBwb3J0YWJpbGl0eSBsaWJyYXJ5LgorCisyMDAzLTExLTExICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2tlcm5lbC9NYWtlZmlsZS5pbiwgZGxscy9rZXJuZWwvcHJvY2Vzcy5jLAorCSAgZGxscy9udGRsbC9NYWtlZmlsZS5pbiwgZGxscy9udGRsbC9zZXJ2ZXIuYywgaW5jbHVkZS93aW5lL2xpYnJhcnkuaCwKKwkgIGxpYnMvd2luZS9NYWtlZmlsZS5pbiwgbGlicy93aW5lL2NvbmZpZy5jLCBsaWJzL3dpbmUvbG9hZGVyLmMsCisJICBsaWJzL3dpbmUvd2luZS5kZWY6CisJTW92ZWQgdGhlIGV4ZWNfd2luZV9iaW5hcnkgZnVuY3Rpb24gdG8gdGhlIHdpbmUgbGlicmFyeSwgYW5kIHVzZSBpdCB0bworCWV4ZWMgdGhlIHdpbmVzZXJ2ZXIgdG9vLgorCisJKiBkbGxzL250ZGxsL3ZpcnR1YWwuYzoKKwlNYWtlIHN1cmUgdGhlIHByb3RlY3Rpb24gZmxhZ3Mgb24gdGhlIG1lbW9yeSB2aWV3IG9mIHRoZSBQRSBoZWFkZXIKKwltYXRjaCB0aGUgYWN0dWFsIG1tYXAgcHJvdGVjdGlvbi4KKworCSogdG9vbHMvd2luZWR1bXAvcGUuYzogQ29zbWV0aWNzLgorCisJKiBkbGxzL2FkdmFwaTMyL2FkdmFwaTMyLnNwZWMsIGRsbHMvYWR2YXBpMzIvc2VjdXJpdHkuYywKKwkgIGRsbHMvbnRkbGwvbnRkbGwuc3BlYywgZGxscy9udGRsbC9zZWMuYywgaW5jbHVkZS9NYWtlZmlsZS5pbiwKKwkgIGluY2x1ZGUvc2RkbC5oLCBpbmNsdWRlL3dpbmJhc2UuaCwgaW5jbHVkZS93aW5udC5oLAorCSAgaW5jbHVkZS93aW50ZXJubC5oOgorCVVscmljaCBDemVrYWxsYSA8dWxyaWNoLmN6ZWthbGxhQHV0b3JvbnRvLmNhPgorCUFkZGVkIHN0dWJzIGZvciBBY2Nlc3NDaGVja0J5VHlwZSwgQWRkQXVkaXRBY2Nlc3NBY2UsCisJR2V0TmFtZWRTZWN1cml0eUluZm9BLCBHZXROYW1lZFNlY3VyaXR5SW5mb1cuCisJSW1wbGVtZW50ZWQgQ29udmVydFN0cmluZ1NlY3VyaXR5RGVzY3JpcHRvclRvU2VjdXJpdHlEZXNjcmlwdG9yVywKKwlEZWxldGVBY2UsIE1ha2VBYnNvbHV0ZVNELCBHZXRBY2xJbmZvcm1hdGlvbiwgQ29udmVydFN0cmluZ1NpZFRvU2lkVywKKwlSdGxEZWxldGVBY2UsIFJ0bFF1ZXJ5SW5mb3JtYXRpb25BY2wuCisKKwkqIGRsbHMva2VybmVsL3ZlcnNpb24uYzogQW5kcmVhcyBNb2hyIDxhbmRpQHJobHgwMS5maHQtZXNzbGluZ2VuLmRlPgorCURvbid0IGluY2x1ZGUgYnVpbGQgbnVtYmVyIGluIEdldFZlcnNpb24oKSBmb3IgV2luOXggdmVyc2lvbnMuCisKKwkqIGRsbHMvYWR2YXBpMzIvZXZlbnRsb2cuYzogTWlrZSBIZWFybiA8bWlrZUB0aGVvcmV0aWMuY29tPgorCUltcGxlbWVudGVkIFJlcG9ydEV2ZW50QS9XLgorCisJKiBkbGxzL3gxMWRydi9rZXlib2FyZC5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUZpeCBhIGJ1ZyBpbiBWa0tleVNjYW4uCisKKwkqIGRsbHMvbnRkbGwvZmlsZS5jOiBDYXJsb3MgTG96YW5vIDxjbG96YW5vQGFuZGFnby5jb20+CisJTnRSZWFkRmlsZSBjaGVja3MgdGhhdCBvZmZzZXQgaXMgbm90IG51bGwuCisKKwkqIGRsbHMvd2lubW0vdGVzdHMvd2F2ZS5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCURvbid0IGZsYWcgZmFpbGVkIG9wZW5zIG9mIHVuc3VwcG9ydGVkIGZvcm1hdHMgYXMgYW4gZXJyb3IuCisKKwkqIGNvbnRyb2xzL2NvbWJvLmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJQWRkIHN1cHBvcnQgZm9yIENCU197TE9XRVJ8VVBQRVJ9Q0FTRS4KKworCSogZGxscy93aW5lcHMvZHJpdmVyLmMsIGRsbHMvd2luZXBzL2VzY2FwZS5jLCBkbGxzL3dpbmVwcy9wcy5jLAorCSAgZGxscy93aW5lcHMvcHNkcnYuaDoKKwlIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUhhbmRsZSBtdWx0aWNvcHkgcHJpbnRpbmcgY29ycmVjdGx5LgorCisJKiBkbGxzL3dpbmVwcy90eXBlNDIuYzogR2VyYWxkIFBmZWlmZXIgPGdlcmFsZEBwZmVpZmVyLmNvbT4KKwlGaXggZm9ybWF0IHN0cmluZ3MgaW4gVDQyX2Rvd25sb2FkX2hlYWRlcigpIGFuZCBUNDJfZG93bmxvYWRfZ2x5cGgoKS4KKworCSogb2JqZWN0cy9mb250LmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJSWYgdGhlIGJ1ZmZlciBwYXNzZWQgdG8gR2V0T3V0bGluZVRleHRNZXRyaWNzIGlzbid0IGJpZyBlbm91Z2ggdGhlbgorCVdpbmRvd3MgZmlsbHMgaXQgdXB0byB0aGUgc3VwcGxpZWQgc2l6ZSByYXRoZXIgdGhhbiByZXR1cm5pbmcgYW4KKwllcnJvci4KKworCSogZGxscy9nZGkvZnJlZXR5cGUuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlDb25zdGlmeSBzdHJpbmdzLgorCisJKiBkbGxzL3dpbnNwb29sL2luZm8uYywgaW5jbHVkZS93aW5zcG9vbC5oOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlDb25zdGlmeSBzdHJpbmdzLgorCUZpeCBhcmdzIG9mIFtHU11ldFByaW50ZXJEYXRhRXgKKworCSogZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jOiBMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCUZpeCBwYXJzaW5nIG9mIEdMIHZlcnNpb24gc3RyaW5nIGluIFguWSBjYXNlcy4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGxvYWRlci9NYWtlZmlsZS5pbjoKKwlPbmx5IGJ1aWxkIGJvdGggV2luZSBiaW5hcmllcyBvbiBMaW51eCwgcHRocmVhZCBzdXBwb3J0IGRvZXNuJ3Qgd29yaworCW9uIG90aGVyIHBsYXRmb3Jtcy4KKworCSogZGxscy9udGRsbC9zaWduYWxfaTM4Ni5jLCBkbGxzL3dpbmVkb3MvZG9zdm0uYzoKKwlKdWtrYSBIZWlub25lbiA8amhlaUBpa2kuZmk+CisJRml4IHJhY2UgaW4gcmVhbCBtb2RlIGV2ZW50IGhhbmRsaW5nLgorCU1lcmdlIHJlYWwgbW9kZSBwZW5kaW5nIGV2ZW50IGNoZWNraW5nIHJvdXRpbmVzLgorCVJlbW92ZSBzb21lIG9ic29sZXRlIGNvZGUuCisKKwkqIGRsbHMvZDNkOC9kZXZpY2UuYywgZGxscy9kM2Q4L3NoYWRlci5jOgorCVJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCS0gc3R1cGlkIHR5cG9zIGZpeGVzIG9uIHNvZnR3YXJlIHZlcnRleCBzaGFkZXIgb3BlcmFuZHMKKwktIENvcHlSZWN0cyBmaXggKHByb2JsZW0gaW4gZXJyb3IgcGF0aHMpIGJhc2VkIG9uIENhcmxvcyBMb3phbm8gcGF0Y2gKKworCSogZGxscy94MTFkcnYvc2Nyb2xsLmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJUmV3cml0ZSBTY3JvbGxEQy4KKworCSogb2JqZWN0cy9lbmhtZXRhZmlsZS5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCVBhdEJsdCgpcyBnZXQgcmVjb3JkZWQgYXMgRU1SX0JJVEJMVCByZWNvcmRzIHdpdGggb2ZmQm1pU3JjID09IDAsIHNvCisJZW5zdXJlIHRoYXQgd2UgcGljayB0aGVzZSBvdXQgaW4gcGxheWJhY2suCisJRU1SX1NUUkVUQ0hCTFQgc2hvdWxkIGJlaGF2ZSBsaWtlIEVNUl9CSVRCTFQgaWYgdGhlcmUgYXJlIG5vIGJpdHMKKwkoaWUuIGl0J3MgYSBQYWxCbHQpLgorCVNldCB0aGUgdGV4dCBhbmQgYmtnbmQgY29sb3VyIHRvIGJsYWNrIGFuZCB3aGl0ZSByZXNwZWN0aXZlbHkgYmVmb3JlCisJZW51bWVyYXRpbmcgYW4gZW1mLgorCVByaW50IG91dCB0aGUgcmVjb3JkIG5hbWVzIHRvIG1ha2UgZGVidWdnaW5nIGVhc2llci4KKwlBZGQgYSBmZXcgVFJBQ0UoKXMuCisKKwkqIGRsbHMvd2luc3Bvb2wvaW5mby5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCU11Y2ggYmV0dGVyIHBhcnNpbmcgb2YgL2V0Yy9wcmludGNhcC4KKwlEb24ndCBldmVuIHRyeSB0byB1c2UgaGV1cmlzdGljcyB0byBndWVzcyB3aGV0aGVyIHRoZSBwcmludGVyIGlzCisJUG9zdFNjcmlwdCBvciBub3QgLSB3ZSdyZSBnb2luZyB0byBnZXQgaXQgd3JvbmcgYW55d2F5LgorCURvbid0IGxpc3QgcHJpbnRlciBlbnRyaWVzIHRoYXQgYmVnaW4gd2l0aCBpc3B1bmN0KCkgLSB0aGVzZSBhcmUgdXNlZAorCWZvciAndGMnIGFsaWFzZXMuCisKKwkqIGRsbHMvZGRyYXcvZDNkZGV2aWNlL21lc2EuYywgZGxscy9kZHJhdy9kaXJlY3QzZC9tZXNhLmMsCisJICBkbGxzL2RkcmF3L21lc2EuYywgZGxscy9kZHJhdy9tZXNhX3ByaXZhdGUuaCwKKwkgIGRsbHMvZGRyYXcvZHN1cmZhY2UvbWFpbi5jOgorCUxpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJQmV0dGVyIGNvbG9yLWtleWluZyBzdXBwb3J0LgorCisJKiBkbGxzL3dpbmVwcy9wcGQuYywgZGxscy93aW5lcHMvcHMuYywgZGxscy93aW5lcHMvcHNkcnYuaCwKKwkgIGRsbHMvd2luZXBzL3R5cGU0Mi5jOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJQ29uc3RpZnkgc3RyaW5ncy4KKworCSogZGxscy9nbHUzMi9NYWtlZmlsZS5pbiwgZGxscy9nbHUzMi9nbHUuYywgZGxscy9nbHUzMi9nbHUzMi5zcGVjOgorCUh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50IHRoZSBtaXNzaW5nIHRlc3NlbGF0b3IgZnVuY3Rpb25zIGFuZCBmaXggdGhlIHRlc3NlbGF0b3IKKwljYWxsYmFja3Mgc28gdGhhdCB0aGUgY29ycmVjdCBjYWxsaW5nIGNvbnZlbnRpb24gaXMgdXNlZC4KKworCSogaW5jbHVkZS9jb21tY3RybC5oOiBSb2xmIEthbGJlcm1hdHRlciA8cm9sZi5rYWxiZXJtYXR0ZXJAY2l0ZW5nLmNvbT4KKwlBZGQgY29uc3RhbnRzIGZvciBEU0FfSW5zZXJ0SXRlbSBhbmQgRFBBX0luc2VydFB0ciBhY2NvcmRpbmcgdG8gbmV3ZXN0CisJTVNETiBoZWFkZXJzLgorCisJKiBkbGxzL3dpbmVwcy90ZXh0LmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJR2V0VGV4dEV4dGVudFBvaW50IGFscmVhZHkgYWRkcyBjaGFyX2V4dHJhIHNvIGRvbid0IGFkZCBpdCBvbiBhZ2Fpbi4KKworCSogZGxscy94MTFkcnYveHJlbmRlci5jLCBvYmplY3RzL2ZvbnQuYzoKKwlIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUdldFRleHRFeHRlbnRQb2ludCBzaG91bGQgaW5jbHVkZSBhbiBpbnRlciBjaGFyYWN0ZXIgc3BhY2luZyBzZXQgYnkKKwlTZXRUZXh0Q2hhcmFjdGVyRXh0cmEuCisKKwkqIG9iamVjdHMvZGMuYzogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlPbmx5IHJlc2VsZWN0IHRoZSBmb250IGlmIHRoZSB0cmFuc2Zvcm1hdGlvbiBoYXMgYWN0dWFsbHkgY2hhbmdlZC4KKworCSogZ3JhcGhpY3MvcGF0aC5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCVdlIG5lZWQgdG8gc2V0IHRoZSBXb3JsZFRyYW5zZm9ybSB0byB0aGUgaWRlbnRpdHkgYmVmb3JlIHN0cm9raW5nIG9yCisJZmlsbGluZyB0aGUgcGF0aC4KKwlGaXhlZCBhIG1lbW9yeSBsZWFrLgorCisJKiBvYmplY3RzL2RpYi5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUNyZWF0ZURJQlNlY3Rpb24gaWdub3JlcyB0aGUgc3VwcGxpZWQgdmFsdWVzIG9mIGJpQ2xyVXNlZCBhbmQKKwliaUNsckltcG9ydGFudCBhbmQgY2FsY3VsYXRlcyB0aGVtIGZyb20gYmlCaXRDb3VudC4KKworCSogY29udHJvbHMvZWRpdC5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCVdlIG5lZWQgdG8gaW52YWxpZGF0ZSB0aGUgcmVwbGFjZWQgdGV4dCByZWdpb24gYmVmb3JlIGNhbGxpbmcKKwlFTV9TY3JvbGxDYXJldCBhcyB0aGlzIG1heSBjYWxsIFNjcm9sbFdpbmRvdy4gIFByZXZpb3VzbHkgbmV3bHkgYWRkZWQKKwlsaW5lcyB3ZXJlIG5vdCBkaXNwbGF5ZWQgaWYgdGhlIGVkaXQgbmVlZGVkIHRvIHNjcm9sbC4KKworCSogY29udHJvbHMvYnV0dG9uLmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJT3duZXJkcmF3IGJ1dHRvbnMgc2hvdWxkIGVyYXNlIHRoZW1zZWx2ZXMgaW4gV01fRVJBU0VCS0dORC4KKworCSogZGxscy9jb21jdGwzMi9saXN0dmlldy5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUFkZCBzdXBwb3J0IGZvciBMVlNfRVhfU1VCSVRFTUlNQUdFUy4KKworCSogZGxscy93aW5tbS90ZXN0cy93YXZlLmMsIGRsbHMvd2lubW0vd2luZW9zcy9hdWRpby5jOgorCVJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJRml4IGEgcmFjZSBjb25kaXRpb24gd2hlcmUgcmVzdWx0IGNvdWxkIGJlIHJlYWQgYmVmb3JlIHNldC4KKwlGaXggdGVzdCB0byB1c2UgY29ycmVjdCBldmVudCBpbiBpbnRlcmFjdGl2ZSBtb2RlLgorCisJKiBkbGxzL3R0eWRydi9ncmFwaGljcy5jOiBHZXJhbGQgUGZlaWZlciA8Z2VyYWxkQHBmZWlmZXIuY29tPgorCUZpeCBmb3JtYXQgc3BlY2lmaWVycyBmb3IgSERDcy4KKworMjAwMy0xMS0wOSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9rZXJuZWwvcHRocmVhZC5jLCBkbGxzL250ZGxsL01ha2VmaWxlLmluLAorCSAgZGxscy9udGRsbC9udGRsbF9taXNjLmgsIGRsbHMvbnRkbGwvc2VydmVyLmMsIGRsbHMvbnRkbGwvc3lzZGVwcy5jLAorCSAgZGxscy9udGRsbC90aHJlYWQuYywgaW5jbHVkZS90aHJlYWQuaCwgaW5jbHVkZS93aW5lL3B0aHJlYWQuaCwKKwkgIGxpYnMvd2luZS9wb3J0LmMsIGxvYWRlci9rdGhyZWFkLmMsIGxvYWRlci9wdGhyZWFkLmM6CisJTW92ZWQgdGhlIHJlbWFpbmluZyBTWVNERVBTXyogZnVuY3Rpb25zIHRvIHRoZSB3aW5lX3B0aHJlYWQgaW50ZXJmYWNlLgorCUxldCB0aGUgcHRocmVhZCBsaWJyYXJ5IGFsbG9jYXRlIHRoZSBzdGFjayBpdHNlbGYuCisKKwkqIGRsbHMvd2luaW5ldC9NYWtlZmlsZS5pbiwgZGxscy93aW5pbmV0L2dvcGhlci5jLAorCSAgZGxscy93aW5pbmV0L2ludGVybmV0LmMsIGRsbHMvd2luaW5ldC93aW5pbmV0LnNwZWM6CisJS2lyaWxsIFNtZWxrb3YgPGtpcnJAbGFuZGF1LnBoeXMuc3BidS5ydT4KKwlBZGRlZCBnb3BoZXIgc3R1YnMuCisKKwkqIGRsbHMvZGRyYXcvZDNkZGV2aWNlL21lc2EuYywgZGxscy9kZHJhdy9kM2RtYXRlcmlhbC5jOgorCUxpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJRml4IHNvbWUgc3R1cGlkIGJ1ZyB3aXRoIG1pc3NpbmcgYnJhY2VzLgorCisJKiBkbGxzL29sZWF1dDMyL3ZhcmlhbnQuYzogR2VyYWxkIFBmZWlmZXIgPGdlcmFsZEBwZmVpZmVyLmNvbT4KKwlSZW1vdmVkIGRlYWQgY29kZSBpbiBWYXJEYXRlRnJvbVVJMigpLgorCisJKiBNYWtlZmlsZS5pbjogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJSWYgdGhlIGNvbW1hbmQgbGluZSBpcyB0b28gbG9uZyB3aGVuIGNhbGxpbmcgZXRhZ3MsIGl0J3MgcHJvYmFibHkgdG9vCisJbG9uZyB3aGVuIGludm9raW5nIGN0YWdzLgorCisJKiBkbGxzL3dpbm1tL2RyaXZlci5jLCBkbGxzL3dpbm1tL2xvbHZsZHJ2LmMsIGRsbHMvd2lubW0vbWVzc2FnZTE2LmMsCisJICBkbGxzL3dpbm1tL21taW8uYywgZGxscy93aW5tbS9tbXN5c3RlbS5jLCBkbGxzL3dpbm1tL3RpbWUuYywKKwkgIGRsbHMvd2lubW0vd2luZW1tLmgsIGRsbHMvd2lubW0vd2luZW1tMTYuaCwgZGxscy93aW5tbS93aW5tbS5jOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCVJlbW92ZWQgc29tZSBtb3JlIGRlcGVuZGVuY2llcyBvbiB3aW5lIDE2LWJpdCBzcGVjaWZpYyBlbnRpdGllcy4KKworCSogZ3JhcGhpY3MveDExZHJ2L3BhbGV0dGUuYzoKKwlEb24ndCBib3RoZXIgdG8gZmlsbCB0aGUgY29sb3IgbWFwIG9uIFRydWVDb2xvciBkaXNwbGF5cy4KKwlNb3ZlZCBYMTEgbG9ja2luZyBjYWxscyBvdXQgb2YgdGhlIGxvb3BzLgorCisJKiBkbGxzL3gxMWRydi9ldmVudC5jLCBkbGxzL3gxMWRydi94MTFkcnZfbWFpbi5jLCBncmFwaGljcy94MTFkcnYvZGliLmM6CisJQXZvaWQgdGhlIFhTeW5jIGNhbGwgaW4gWDExRFJWX2V4cGVjdF9lcnJvciBieSBzdG9yaW5nIHRoZSBjdXJyZW50CisJcmVxdWVzdCBudW1iZXIgYW5kIGNoZWNraW5nIHRoYXQgb24gZXJyb3JzLgorCU1vdmVkIHRoZSBYU3luYyBjYWxsIGZyb20gWDExRFJWX2NoZWNrX2Vycm9yIGludG8gdGhlIGNhbGxlcnMgc28gdGhhdAorCWl0IGNhbiBiZSBhdm9pZGVkIGZvciByZXF1ZXN0cyB0aGF0IGFscmVhZHkgd2FpdCBmb3IgYSByZXBseS4KKworCSogZG9jdW1lbnRhdGlvbi9zYW1wbGVzL3N5c3RlbS5pbmk6CisJVG9tIFdpY2tsaW5lIDx0d2lja2xpbmVAc2t5YmVzdC5jb20+CisJdXBkYXRlZCBbbWNpXSAmIFtkcml2ZXJzMzJdIHNlY3Rpb25zLgorCisJKiBkbGxzL3dpbmFzcGkvYXNwaS5jLCBkbGxzL3dpbmFzcGkvd2luZXNjc2kuaDoKKwlHZXJhbGQgUGZlaWZlciA8Z2VyYWxkQHBmZWlmZXIuY29tPgorCU1vdmUgc2NzaV9jb21tYW5kX3NpemUgZnJvbSB3aW5lc2NzaS5oIHRvIFNDU0lfRml4X0NNRF9MRU4oKSwgaXRzIG9ubHkKKwl1c2VyLgorCisJKiBkbGxzL3R0eWRydi93bmQuYzogR2VyYWxkIFBmZWlmZXIgPGdlcmFsZEBwZmVpZmVyLmNvbT4KKwlGaXggZm9ybWF0IHNwZWNpZmllcnMgZm9yIEhXTkRzLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9wcm9jZXNzLmM6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCUZpeGVkIGJ1ZmZlciBvdmVyZmxvdy4KKwlGaXhlZCB0d28gLVd3cml0ZS1zdHJpbmdzIHdhcm5pbmdzIChidXQgdGhlcmUgYXJlIG1vcmUpLgorCisJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGxscy9nZGkvZnJlZXR5cGUuYywgaW5jbHVkZS9jb25maWcuaC5pbjoKKwlIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUxvYWQgYW55IFRydWVUeXBlIGZvbnRzIHRoYXQgZm9udGNvbmZpZyBrbm93cyBhYm91dC4KKworCSogZGxscy9jb21jdGwzMi9yZWJhci5jLCBpbmNsdWRlL2NvbW1jdHJsLmg6CisJUm9iZXJ0IFNoZWFybWFuIDxSLkouU2hlYXJtYW5Ad2Fyd2ljay5hYy51az4KKwlBZGRlZCBjaGV2cm9uIHN1cHBvcnQuCisKKwkqIGRsbHMvY29tY3RsMzIvbGlzdHZpZXcuYzogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlSZWxlYXNlQ2FwdHVyZSBvbiBsYnV0dG9uZG93biBpZiB0aGUgY3Vyc29yIGlzIG91dHNpZGUgYW4gaXRlbSwganVzdAorCWxpa2UgdGhlIG5hdGl2ZSBvbmUgZG9lcy4KKworCSogZGxscy93aW5lcHMvaW5pdC5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCVVwZGF0ZSB0aGUgdmlzcmduIGluIFJlc2V0REMgc28gdGhhdCBHZXRDbGlwQm94IHdvcmtzIGNvcnJlY3RseSBhZnRlcgorCWEgY2hhbmdlIGluIHBhcGVyIHNpemUvb3JpZW50YXRpb24uCisKKwkqIHdpbmRvd3MvZGlhbG9nLmM6IFJlaW4gS2xhemVzIDxya2xhemVzQHhzNGFsbC5ubD4KKwlJZiBHZXROZXh0RGxnVGFiSXRlbSgpIGNhbm5vdCBmaW5kIGFueSBuZXh0IGNvbnRyb2wsIHJldHVybiB0aGUgaGFuZGxlCisJb2YgdGhlIG9yaWdpbmFsIGNvbnRyb2wuCisKKzIwMDMtMTEtMDYgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIERFVkVMT1BFUlMtSElOVFMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBpbmNsdWRlL2NvbmZpZy5oLmluLAorCSAgbG9hZGVyLy5jdnNpZ25vcmUsIGxvYWRlci9NYWtlZmlsZS5pbiwgbG9hZGVyL2t0aHJlYWQuYywKKwkgIGxvYWRlci9wdGhyZWFkLmM6CisJQ3JlYXRlIHR3byBzZXBhcmF0ZSB3aW5lIGJpbmFyaWVzLCBvbmUgdXNpbmcgbGlicHRocmVhZCBhbmQgb25lIHVzaW5nCisJa2VybmVsIHRocmVhZGluZyBkaXJlY3RseS4KKwlHZXQgcmlkIG9mIHRoZSByZW1haW5pbmcgSEFWRV9OUFRMIGlmZGVmcy4KKwlSZW1vdmUgdGhlIHNjaGVkdWxlciBkaXJlY3RvcnkuCisKKwkqIERFVkVMT1BFUlMtSElOVFMsIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywKKwkgIGxvYWRlci8uY3ZzaWdub3JlLCBsb2FkZXIvTWFrZWZpbGUuaW4sIGxvYWRlci9tYWluLmMsCisJICB0b29scy93aW5hcGkvbXN2Y21ha2VyLCB0b29scy93aW5hcGlfY2hlY2svbW9kdWxlcy5kYXQsCisJICB0b29scy93aW5ld3JhcHBlcjoKKwlSZS11c2UgdGhlIGxvYWRlciBkaXJlY3RvcnkgZm9yIHRoZSBtYWluIHdpbmUgbG9hZGVyLCBhbmQgZ2V0IHJpZCBvZgorCXRoZSBtaXNjZW11IGRpcmVjdG9yeS4KKworCSogZGxscy9rZXJuZWwvTWFrZWZpbGUuaW4sIGRsbHMva2VybmVsL21vZHVsZS5jLCBsb2FkZXIvbW9kdWxlLmM6CisJTW92ZWQgbG9hZGVyL21vZHVsZS5jIHRvIGRsbHMva2VybmVsLgorCisJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGxscy9NYWtlZmlsZS5pbiwgZGxscy9jYXBpMjAzMi8uY3ZzaWdub3JlLAorCSAgZGxscy9jYXBpMjAzMi9NYWtlZmlsZS5pbiwgZGxscy9jYXBpMjAzMi9jYXAyMHd4eC5jLAorCSAgZGxscy9jYXBpMjAzMi9jYXAyMHd4eC5oLCBkbGxzL2NhcGkyMDMyL2NhcGkyMDMyLnNwZWMsCisJICBpbmNsdWRlL2NvbmZpZy5oLmluOgorCUFWTSBDb21wdXRlcnN5c3RlbWUgVmVydHJpZWJzIEdtYkgKKwlJbXBsZW1lbnRlZCBhIENBUEkyMCB3cmFwcGVyIGxpYnJhcnkgZm9yIENBUEk0TGludXggYWNjZXNzLgorCisJTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJQ2xlYW5lZCB1cCwgYXV0b2NvbmZlZC4KKworCSogZGxscy9udGRsbC9udGRsbF9taXNjLmgsIGRsbHMvbnRkbGwvc2VydmVyLmMsCisJICBkbGxzL250ZGxsL3NpZ25hbF9pMzg2LmMsIGRsbHMvbnRkbGwvc2lnbmFsX3Bvd2VycGMuYywKKwkgIGRsbHMvbnRkbGwvc2lnbmFsX3NwYXJjLmMsIGRsbHMvbnRkbGwvc3luYy5jLCBkbGxzL250ZGxsL3N5c2RlcHMuYywKKwkgIGRsbHMvbnRkbGwvdGhyZWFkLmMsIGluY2x1ZGUvdGhyZWFkLmgsIGluY2x1ZGUvd2luZS9zZXJ2ZXIuaDoKKwlBZGRlZCBzZXJ2ZXJfYWJvcnRfdGhyZWFkIHRvIHJlcGxhY2UgU1lTREVQU19BYm9ydFRocmVhZC4KKwlSZW1vdmVkIG5vIGxvbmdlciB1c2VkIFNJR05BTF9CbG9jayBhbmQgU0lHTkFMX1Jlc2V0LgorCU1vdmVkIHNvbWUgaW50ZXJuYWwgbnRkbGwgZGVmaW5pdGlvbnMgdG8gbnRkbGxfbWlzYy5oLgorCisyMDAzLTExLTA1ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2tlcm5lbC90aHJlYWQuYywgZGxscy9udGRsbC9NYWtlZmlsZS5pbiwgZGxscy9udGRsbC9udGRsbC5zcGVjLAorCSAgZGxscy9udGRsbC9zeXNkZXBzLmMsIGRsbHMvbnRkbGwvdGhyZWFkLmMsIGluY2x1ZGUvd2luZS9wdGhyZWFkLmgsCisJICBsaWJzL3dpbmUvcG9ydC5jOgorCUFkZGVkIHdpbmVfcHRocmVhZF9jcmVhdGVfdGhyZWFkIGFuZCB3aW5lX3B0aHJlYWRfZXhpdF90aHJlYWQgdG8gdGhlCisJcHRocmVhZCBzdXBwb3J0LCBhbmQgcmVtb3ZlZCB0aGUgY29ycmVzcG9uZGluZyBTWVNERVBTIGZ1bmN0aW9ucy4KKwlNb3ZlZCBzdGFjayBhbGxvY2F0aW9uIGZvciBuZXcgdGhyZWFkcyB0byB3aW5lX3B0aHJlYWRfY3JlYXRlX3RocmVhZAorCXRvIGFsbG93IG1vcmUgZmxleGliaWxpdHkuCisKKwkqIGRsbHMvbXNhY20vbXNhY20ucmMsIGRsbHMvbXNhY20vbXNhY21fUHQucmMsCisJICBkbGxzL29sZWF1dDMyL29sZWF1dDMyLnJjLCBkbGxzL29sZWF1dDMyL29sZWF1dDMyX1B0LnJjLAorCSAgZGxscy9zZXJpYWx1aS9QdC5yYywgZGxscy9zZXJpYWx1aS9zZXJpYWx1aV9yYy5yYywKKwkgIGRsbHMvc2V0dXBhcGkvUHQucmMsIGRsbHMvc2V0dXBhcGkvc2V0dXBhcGkucmMsCisJICBkbGxzL3NoZWxsMzIvc2hlbGwzMl9QdC5yYywgcHJvZ3JhbXMvbm90ZXBhZC9Fbi5yYywKKwkgIHByb2dyYW1zL25vdGVwYWQvUHQucmMsIHByb2dyYW1zL3VuaW5zdGFsbGVyL3JzcmMucmM6CisJTWFyY2VsbyBEdWFydGUgPHdpbmUtZGV2ZWxAYm9sLmNvbS5icj4KKwlMb2NhbGl6YXRpb24gdG8gdGhlIFBvcnR1Z3Vlc2Ugb2YgQnJhemlsLgorCisJKiBkbGxzL2dkaS9nZGkzMi5zcGVjLCBvYmplY3RzL2RjLmM6CisJVmluY2VudCBC6XJvbiA8dmJlcm9uQG1lY2Fuby5nbWUudXNoZXJiLmNhPgorCUltcGxlbWVudGVkIEdldERDUGVuQ29sb3IgYW5kIEdldERDQnJ1c2hDb2xvci4KKworCSogZGxscy93aW5tbS93aW5lb3NzL2F1ZGlvLmM6IFJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJRml4IHdhdmUgaW4gc3RvcC4KKworCSogaW5jbHVkZS9tc2kuaCwgaW5jbHVkZS9tc2lxdWVyeS5oOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlNb3ZlIGFuZCBjb3JyZWN0IHRoZSBNU0lEQk9QRU4gZGVmaW5lcy4KKworCSogZGxscy9tc2kvbXNpLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlNc2lPcGVuRGF0YWJhc2UncyBzelBlcnNpc3QgcGFyYW1ldGVyIG1heSBiZSBhIHN0cmluZyBvciBhIGJpdG1hc2suCisKKwkqIGRsbHMvZ2RpL2RyaXZlci5jLCBkbGxzL2dkaS9lbmhtZmRydi9pbml0LmMsIGRsbHMvZ2RpL2dkaTMyLnNwZWMsCisJICBkbGxzL2dkaS9tZmRydi9pbml0LmMsIGRsbHMveDExZHJ2L3gxMWRydi5zcGVjLAorCSAgZ3JhcGhpY3MveDExZHJ2L2JydXNoLmMsIGdyYXBoaWNzL3gxMWRydi9wZW4uYywgaW5jbHVkZS9nZGkuaCwKKwkgIGluY2x1ZGUvd2luZ2RpLmgsIG9iamVjdHMvZGMuYywgb2JqZWN0cy9nZGlvYmouYzoKKwlVbHJpY2ggQ3pla2FsbGEgPHVscmljaEBjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50ZWQgU2V0RENQZW5Db2xvciBhbmQgU2V0RENCcnVzaENvbG9yLgorCisJKiBkbGxzL21zaS9tc2kuYywgZGxscy9tc2kvbXNpLnNwZWMsIGluY2x1ZGUvbXNpLmg6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCVN0dWIgaW1wbGVtZW50YXRpb24gZm9yIE1zaVZlcmlmeVBhY2thZ2UuCisKKwkqIGRsbHMvbnRkbGwvbnRkbGwuc3BlYywgZGxscy9udGRsbC9zZWMuYzoKKwlVbHJpY2ggQ3pla2FsbGEgPHVscmljaEBjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50ZWQgUnRsU2VsZlJlbGF0aXZlVG9BYnNvbHV0ZVNEIGFuZCBSdGxNYWtlU2VsZlJlbGF0aXZlU0QuCisJRml4ZWQgc29tZSByZWxhdGVkIFNFX1NFTEZfUkVMQVRJVkUgYnVncy4KKworCSogZGxscy9vbGVkbGcvLmN2c2lnbm9yZSwgZGxscy9vbGVkbGcvTWFrZWZpbGUuaW4sCisJICBkbGxzL29sZWRsZy9pbnNvYmpkbGcuYywgZGxscy9vbGVkbGcvb2xlZGxnX0VuLnJjLAorCSAgZGxscy9vbGVkbGcvb2xlZGxnX21haW4uYywgZGxscy9vbGVkbGcvcmVzb3VyY2UuaCwKKwkgIGRsbHMvb2xlZGxnL3JzcmMucmMsIGluY2x1ZGUvb2xlZGxnLmg6CisJVWxyaWNoIEN6ZWthbGxhIDx1bHJpY2hAY29kZXdlYXZlcnMuY29tPgorCUluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgT2xlVUlJbnNlcnRPYmplY3QuCisKKwkqIGRsbHMva2VybmVsL3N5c2xldmVsLmMsIGRsbHMvbnRkbGwvbnRkbGwuc3BlYywKKwkgIGRsbHMvbnRkbGwvc2lnbmFsX2kzODYuYzoKKwlVc2UgdGhlIHNpZ25hbCBzdGFjayBwb2ludGVyIHRvIGRldGVybWluZSB0aGUgY3VycmVudCB0aHJlYWQuCisJQ29udmVydGVkIHRoZSBTSUdVU1IyIGhhbmRsZXIgdG8gdXNlIHNldHVwX2V4Y2VwdGlvbiAocHJvYmFibHkgc3RpbGwKKwlub3Qgd29ya2luZyBwcm9wZXJseSkuCisKKwkqIGRsbHMva2VybmVsL25lX21vZHVsZS5jLCBkbGxzL2tlcm5lbC9uZV9zZWdtZW50LmMsCisJICBkbGxzL2tlcm5lbC9zeXN0ZW0uYywgZGxscy9rZXJuZWwvdGh1bmsuYywgZGxscy93aW5lZG9zL2ludDMxLmMsCisJICB3aW5kb3dzL3dpbnByb2MuYzoKKwlTZXQgJWZzIGFuZCAlZ3MgaW4gdGhlIHJlZ2lzdGVyIGNvbnRleHQgdG8gdGhlaXIgY3VycmVudCB2YWx1ZSB3aGVuCisJY2FsbGluZyAxNi1iaXQgY29kZS4KKworCSogZGxscy93aW5lcHMvZHJpdmVyLmMsIGRsbHMvd2luZXBzL2luaXQuYywgZGxscy93aW5lcHMvcHBkLmMsCisJICBkbGxzL3dpbmVwcy9wcy5jLCBkbGxzL3dpbmVwcy9wc2RsZy5oLCBkbGxzL3dpbmVwcy9wc2Rydi5oLAorCSAgZGxscy93aW5lcHMvd3BzX0RlLnJjLCBkbGxzL3dpbmVwcy93cHNfRW4ucmMsIGRsbHMvd2luZXBzL3dwc19Gci5yYywKKwkgIGRsbHMvd2luZXBzL3dwc19Lby5yYywgZGxscy93aW5lcHMvd3BzX1B0LnJjLCBkbGxzL3dpbmVwcy93cHNfUnUucmMsCisJICBkbGxzL3dpbmVwcy93cHNfU2kucmMsIGRsbHMvd2luZXBzL3dwc19Tay5yYzoKKwlIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCVN1cHBvcnQgZm9yIGR1cGxleCBwcmludGluZy4KKworCSogZGxscy93aW5zcG9vbC9pbmZvLmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJTWFrZSBzdXJlIHRoYXQgYWxsIHByaW50ZXIgZW50cmllcyBoYXZlIGEgdmFsaWQgTmFtZSBhbmQgUG9ydCBrZXkuCisJQ29wZSB3aXRoIGN1cHMgcHJpbnRlciBkZWxldGlvbi4KKworCSogcHJvZ3JhbXMvd2luZWRiZy9pbmZvLmM6IFJlaW4gS2xhemVzIDxya2xhemVzQHhzNGFsbC5ubD4KKwlMZXQgImluZm8gd25kIiBwcmludCB0aGUgY2xpZW50IHJlY3RhbmdsZSBpbiBzY3JlZW4gY29vcmRpbmF0ZXMuCisKKwkqIGRsbHMvY29tY3RsMzIvbGlzdHZpZXcuYzogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlMSVNUVklFV19HZXRTdWJJdGVtUmVjdCBzaG91bGQgc3VjY2VlZCBpZiBzdWJpdGVtID09IDAgd2hhdGV2ZXIgbW9kZQorCXRoZSBsaXN0dmlldyBpcyBpbi4KKworCSogZGxscy9jb21jdGwzMi90b29sYmFyLmM6IFJlaW4gS2xhemVzIDxya2xhemVzQHhzNGFsbC5ubD4KKwlDb3JyZWN0bHkgcGxhY2UgYSB0b29sYmFyIHdpdGggQ0NTX0JPVFRPTSBzdHlsZSBhdCB0aGUgYm90dG9tLCBub3QgdGhlCisJdG9wLgorCisJKiBkbGxzL21zaS9tc2kuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUltcGxlbWVudCBNc2lPcGVuUHJvZHVjdFcuCisKKzIwMDMtMTEtMDQgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGluY2x1ZGUvd2luYmFzZS5oOgorCURpc2FibGUgdGhlIGFzbSBpbmxpbmUgZnVuY3Rpb25zIHdoZW4gYnVpbGRpbmcgbnRkbGwgdG8gYXZvaWQgdHJvdWJsZQorCXdoZW4gY29tcGlsaW5nIHdpdGhvdXQgb3B0aW1pemF0aW9uLgorCVRoZSBQUEMgaW5saW5lIGZ1bmN0aW9ucyBhcmUgbm8gbG9uZ2VyIG5lZWRlZCBub3cgdGhhdCBrZXJuZWwgaXMKKwlwcm9wZXJseSBzZXBhcmF0ZWQuCisKKwkqIGRsbHMva2VybmVsL3RocmVhZC5jLCBkbGxzL250ZGxsL2xvYWRlci5jLCBkbGxzL250ZGxsL250ZGxsX21pc2MuaCwKKwkgIGRsbHMvbnRkbGwvc2lnbmFsX2kzODYuYywgZGxscy9udGRsbC9zeXNkZXBzLmMsIGRsbHMvbnRkbGwvdGhyZWFkLmMsCisJICBkbGxzL250ZGxsL3ZpcnR1YWwuYywgaW5jbHVkZS90aHJlYWQuaCwgaW5jbHVkZS93aW5lL3NlcnZlci5oOgorCUFsbG9jYXRlIHRoZSBURUIgYW5kIHNpZ25hbCBzdGFjayBzZXBhcmF0ZWx5IGZyb20gdGhlIG1haW4gc3RhY2suCisJRHluYW1pY2FsbHkgYWxsb2NhdGUgdGhlIGluaXRpYWwgVEVCIHRvbyBzbyB0aGF0IGl0IGlzIHByb3Blcmx5CisJcGFnZS1hbGlnbmVkLgorCisJKiBkbGxzL250ZGxsL2Nkcm9tLmM6IEdlcmFsZCBQZmVpZmVyIDxnZXJhbGRAcGZlaWZlci5jb20+CisJVGhlIENEREEgY2FzZSBvZiBDRFJPTV9SYXdSZWFkKCkgbm8gbG9uZ2VyIHdvcmtzIG9uIEZyZWVCU0QgLUNVUlJFTlQsCisJcmVtb3ZlIGl0LiAgQWxzbywgY29tYmluZSB0aGUgRnJlZUJTRCBhbmQgTmV0QlNEIE5ZSSBub3Rlcy4KKworCSogZGxscy9jb21jdGwzMi9wcm9wc2hlZXQuYzogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlQcm9wU2hlZXRQYWdlUHJvYyBjYWxsYmFjayBzaG91bGQgYWx3YXlzIGhhdmUgaHduZCA9IDAuCisKKwkqIGRsbHMvY29tY3RsMzIvbGlzdHZpZXcuYzogVWxyaWNoIEN6ZWthbGxhIDx1bHJpY2hAY29kZXdlYXZlcnMuY29tPgorCUh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJQWRkZWQgZHJhZyBhbmQgZHJvcCBzdXBwb3J0IHRvIGxpc3R2aWV3LgorCisJKiBkbGxzL2NvbWN0bDMyL2ltYWdlbGlzdC5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUZpeCBhIGZpeG1lLgorCisJKiBkbGxzL3gxMWRydi93aW5wb3MuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlXTV9XSU5ET1dQT1NDSEFOR0lORyBzaG91bGQgcmVjZWl2ZSBvcmlnaW5hbCwgbm90IGZpeGVkIHZhbHVlcy4KKworCSogY29udHJvbHMvc2Nyb2xsLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJQWx3YXlzIHJlcGFpbnQgc2Nyb2xsIGJhciBpZiByZXF1ZXN0ZWQuCisKKwkqIGRsbHMvc2hlbGwzMi9waWRsLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJUHJvdGVjdCBJTElzUGFyZW50IGZyb20gTlVMTCBwaWRscy4KKworCSogZGxscy93aW5tbS93aW5lb3NzL2F1ZGlvLmM6IFJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJRml4ZWQgYnVnIGluIGNhcHR1cmUgc3RvcC4gIE9ubHkgY3VycmVudCBoZWFkZXIgc2hvdWxkIGJlIHJldHVybmVkIHRvCisJYXBwLgorCU1ha2Ugd2F2ZSBmcmFnbWVudCBzaXplIGFkanVzdGFibGUgdG8gZ3VhcmFudGVlIGJldHRlciB0aGFuIDEwIG1zCisJbGF0ZW5jeS4gIE1ha2VzIGEgZGlmZmVyZW5jZSBmb3IgOCBrSHogdm9pY2UgYXBwcy4KKworCSogTWFrZWZpbGUuaW46IE1pa2UgSGVhcm4gPG1pa2VAdGhlb3JldGljLmNvbT4KKwlBdm9pZCBhcmd1bWVudCBsaXN0IGxpbWl0IGluIGV0YWdzIGdlbmVyYXRpb24uCisKKwkqIGRsbHMvZDNkOC9zdGF0ZWJsb2NrLmMsIGRsbHMvZDNkOC9zdXJmYWNlLmM6CisJSmFzb24gRWRtZWFkZXMgPHVzQHRoZS1lZG1lYWRlcy5kZW1vbi5jby51az4KKwlQYXNzIHRocm91Z2ggZmxvYXRzIGNvcnJlY3RseSB0byB0aGUgcmVuZGVyIHN0YXRlcyBhdAorCWluaXRpYWxpemF0aW9uLiBGaXhlcyBwb2ludCBwcm9ibGVtcy4KKworCSogZGxscy9kM2Q4L2RldmljZS5jOiBDYXJsb3MgTG96YW5vIDxjbG96YW5vQGFuZGFnby5jb20+CisJQ2hlY2sgdGhhdCB3ZSBkb24ndCB3cml0ZSBvdXQgb2YgdGhlIGRlZmluZWQgcmFuZ2Ugb2YgcGFsZXR0ZXMuCisKKzIwMDMtMTEtMDMgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvbnRkbGwvbG9hZGVyLmM6CisJQWxsb2NhdGUgYSBtZW1vcnkgdmlldyBmb3IgYnVpbHRpbiBkbGxzIHNvIHRoYXQgVmlydHVhbFF1ZXJ5IHJldHVybnMKKwlzb21ldGhpbmcgc2Vuc2libGUuCisKKwkqIGRsbHMvbnRkbGwvdmlydHVhbC5jLCBkbGxzL3gxMWRydi9kZ2EyLmM6CisJRml4ZWQgdHlwZSBhbmQgcHJvdGVjdGlvbiB2YWx1ZXMgcmV0dXJuZWQgYnkgTnRRdWVyeVZpcnR1YWxNZW1vcnkgdG8KKwliZSBjbG9zZXIgdG8gd2hhdCBXaW5kb3dzIGRvZXMuCisJQWxsb3cgdXNpbmcgTUVNX1NZU1RFTSB3aXRob3V0IE1FTV9SRVNFUlZFIHRvIGF2b2lkIDY0ayBhbGlnbm1lbnQuCisJVXNlIHByZWFkIGluc3RlYWQgb2YgbHNlZWsrcmVhZCB3aGVuIGZha2luZyBtbWFwLgorCisJKiBsaWJzL3dpbmUvbG9hZGVyLmMsIHRvb2xzL3dpbmVidWlsZC9zcGVjMzIuYzoKKwlQdXQgYmV0dGVyIHZhbHVlcyBmb3IgY29kZSBhbmQgZGF0YSBzaXplcyBpbiB0aGUgTlQgaGVhZGVyIG9mIGJ1aWx0aW4KKwlkbGxzLgorCisJKiBjb250cm9scy9lZGl0LmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJV01fTEJVVFRPTkRPV04gY2FsbHMgU2V0Rm9jdXMgdW5kZXIgV2luZG93cy4gIFJlbW92ZSB0aGUgU2V0Rm9jdXMgaW4KKwlXTV9NT1VTRUFDVElWQVRFLgorCisJKiBkbGxzL2NvbWN0bDMyL3Byb3BzaGVldC5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCURvbid0IGdldCBjb25mdXNlZCBpZiBQU05fU0VUQUNUSVZFIHJldHVybnMgYSBwb3NpdGl2ZSBudW1iZXIgdGhhdAorCWlzbid0IGEgcmVzb3VyY2UgaWQuCisKKwkqIGRsbHMvY29tY3RsMzIvbGlzdHZpZXcuYzogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlNYWtlIHRoZSBsaXN0dmlldyBzZW5kIGl0cyBub3RpZmljYXRpb25zIHRvIHRoZSBwYXJlbnQgd2luZG93IHBhc3NlZAorCXRvIGl0IGluIENSRUFURVNUUlVDVC4gIEJhc2VkIG9uIGEgdHJlZXZpZXcgcGF0Y2ggYnkgSWdvciBHcmFoZWsuCisKKwkqIGRsbHMvd2luZXBzL2JpdG1hcC5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUZpeCB0aGUgcmV0dXJuIHZhbHVlIG9mIFN0cmV0Y2hESUJpdHMuCisKKwkqIGRsbHMvd2luZXBzL2dyYXBoaWNzLmMsIGRsbHMvd2luZXBzL3dpbmVwcy5zcGVjOgorCUh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50IFBTRFJWX1BhaW50UmduIChhbHNvIGdldHMgdXMgRmlsbFJnbiwgRnJhbWVSZ24gYW5kIEZpbGxQYXRoCisJZm9yIGZyZWUpLgorCisJKiB3aW5kb3dzL3NweS5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUFkZCBjb21tb24gZGlhbG9nIG5vdGlmaWNhdGlvbiBtZXNzYWdlcyBhbmQgV01fU0laRS4KKworCSogZGxscy94MTFkcnYva2V5Ym9hcmQuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgc3VwcG9ydCBmb3IgUVdFUlRaIHZpcnR1YWwga2V5cyBtYXBwaW5nLCBmaXggbWFueSBrZXlib2FyZCBsYXlvdXRzCisJdG8gY29uZm9ybSB0byB0aGUgWEZyZWU4NiBvbmVzLCBhZGQgc3VwcG9ydCBmb3IgUnVzc2lhbiBjcDEyNTEgYW5kCisJcGhvbmV0aWMga2V5Ym9hcmQgbGF5b3V0cywgSXNyYWVsaWFuIHBob25ldGljIGFuZCBTYWhhcm9uIGtleWJvYXJkCisJbGF5b3V0cy4KKworCSogZGxscy93aW5lZG9zL2ludDIxLmM6IEp1a2thIEhlaW5vbmVuIDxqaGVpQGlraS5maT4KKwlJbXBsZW1lbnQgZmF0MzIgZXh0ZW5kZWQgZnJlZSBzcGFjZSBmdW5jdGlvbi4KKwlNYWtlIGZhdDMyIGNhbGxzIHJlc2V0IGNhcnJ5IGZsYWcgZXhwbGljaXRseS4KKworCSogZGxscy9vbGVhdXQzMi90eXBlbGliLmM6IE1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCURvIG5vdCBjb2VyY2UgYXJndW1lbnRzIG9mIElUeXBlTGliOjpJbnZva2UgaW4tcGxhY2UsIG9yIHdlIGdldAorCWNvcnJ1cHRlZCB2YXJpYW50cy4KKwlIYW5kbGUgVl9BUlJBWSB8IHNvbWV0aGluZyAtPiBWVF9TQUZFQVJSQVksIGFzIHRoaXMgaXMgYSBOT1AuCisKKwkqIGRsbHMva2VybmVsL2tlcm5lbDMyLnNwZWMsIGRsbHMva2VybmVsL3N5bmMuYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJU3R1YnMgZm9yIGpvYiBjb250cm9sLgorCisyMDAzLTEwLTMxICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL3VzZXIvZGRlL2NsaWVudC5jLCBkbGxzL3VzZXIvZm9jdXMuYywgd2luZG93cy9wYWludGluZy5jLAorCSAgd2luZG93cy9zeXNjb2xvci5jLCB3aW5kb3dzL3N5c3BhcmFtcy5jOgorCVVzZSBhIHRpbWVvdXQgd2hlbiBzZW5kaW5nIGJyb2FkY2FzdCBtZXNzYWdlcy4KKworCSogZGxscy9tc3ZjcnQvY29uc29sZS5jLCBkbGxzL21zdmNydC9maWxlLmM6CisJVWxyaWNoIEN6ZWthbGxhIDx1bHJpY2hAY29kZXdlYXZlcnMuY29tPgorCUR1cGxpY2F0ZSBzdGRpbi9zdGRvdXQgaGFuZGxlcyB0byBhdm9pZCBjbG9zaW5nIHRoZW0gd2hlbiBsaWJyYXJ5IGlzCisJdW5sb2FkZWQuCisKKwkqIGRsbHMvaXBobHBhcGkvaXBobHBhcGlfbWFpbi5jOiBBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCVN3aXRjaGVkIGEgKyB0byBhIC0gc28gdGhhdCBpdCBtYWtlcyBzZW5zZSB3aGVuIG1hcmtpbmcgdGhlIGxhc3Qgbm9kZQorCWluIHRoZSBBZGFwdGVycyBJbmZvIGxpbmtlZCBsaXN0LgorCisJKiBkbGxzL2QzZDgvZGV2aWNlLmMsIGRsbHMvZDNkOC9zdXJmYWNlLmM6CisJSmFzb24gRWRtZWFkZXMgPHVzQHRoZS1lZG1lYWRlcy5kZW1vbi5jby51az4KKwlNYWtlIHN1cHBvcnQgZm9yIENvcHlSZWN0cyB0byBhIHNtYWxsIGFyZWEgb2YgdGhlIGJhY2sgYnVmZmVyLCBhbmQKKwljb3JyZWN0IHRoZSBnZW5lcmFsIG1ldGhvZCBvZiB1cGRhdGluZyB0aGUgYmFjayBidWZmZXIuCisKKwkqIGRsbHMva2VybmVsL25scy9icmYubmxzLCBkbGxzL2tlcm5lbC9ubHMvY2F0Lm5scywKKwkgIGRsbHMva2VybmVsL25scy9jb3IubmxzLCBkbGxzL2tlcm5lbC9ubHMvZGFuLm5scywKKwkgIGRsbHMva2VybmVsL25scy9kZWEubmxzLCBkbGxzL2tlcm5lbC9ubHMvZGVjLm5scywKKwkgIGRsbHMva2VybmVsL25scy9kZWwubmxzLCBkbGxzL2tlcm5lbC9ubHMvZGVzLm5scywKKwkgIGRsbHMva2VybmVsL25scy9kZXUubmxzLCBkbGxzL2tlcm5lbC9ubHMvZW5nLm5scywKKwkgIGRsbHMva2VybmVsL25scy9lbmkubmxzLCBkbGxzL2tlcm5lbC9ubHMvZXNuLm5scywKKwkgIGRsbHMva2VybmVsL25scy9lc3AubmxzLCBkbGxzL2tlcm5lbC9ubHMvZXRpLm5scywKKwkgIGRsbHMva2VybmVsL25scy9ldXEubmxzLCBkbGxzL2tlcm5lbC9ubHMvZmluLm5scywKKwkgIGRsbHMva2VybmVsL25scy9mb3MubmxzLCBkbGxzL2tlcm5lbC9ubHMvZnJhLm5scywKKwkgIGRsbHMva2VybmVsL25scy9mcmIubmxzLCBkbGxzL2tlcm5lbC9ubHMvZnJsLm5scywKKwkgIGRsbHMva2VybmVsL25scy9mcm0ubmxzLCBkbGxzL2tlcm5lbC9ubHMvZnJzLm5scywKKwkgIGRsbHMva2VybmVsL25scy9nYWUubmxzLCBkbGxzL2tlcm5lbC9ubHMvZ2RoLm5scywKKwkgIGRsbHMva2VybmVsL25scy9nZHYubmxzLCBkbGxzL2tlcm5lbC9ubHMvZ2xjLm5scywKKwkgIGRsbHMva2VybmVsL25scy9pc2wubmxzLCBkbGxzL2tlcm5lbC9ubHMvaXRhLm5scywKKwkgIGRsbHMva2VybmVsL25scy9pdHMubmxzLCBkbGxzL2tlcm5lbC9ubHMvbmxiLm5scywKKwkgIGRsbHMva2VybmVsL25scy9ubGQubmxzLCBkbGxzL2tlcm5lbC9ubHMvbmxzLm5scywKKwkgIGRsbHMva2VybmVsL25scy9ub24ubmxzLCBkbGxzL2tlcm5lbC9ubHMvbm9yLm5scywKKwkgIGRsbHMva2VybmVsL25scy9wdGcubmxzLCBkbGxzL2tlcm5lbC9ubHMvc3ZlLm5scywKKwkgIGRsbHMva2VybmVsL25scy9zdmYubmxzLCBkbGxzL2tlcm5lbC9ubHMvdXpsLm5scywKKwkgIGRsbHMva2VybmVsL25scy93YWwubmxzOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJUmVwbGFjZSAyODU5MSBieSAyODYwNSAoZXVybykgZm9yIGFwcHJvcHJpYXRlIGxvY2FsZXMuCisKKwkqIGZpbGVzL2ZpbGUuYzogTWFrZSBzdXJlIEdldFRlbXBGaWxlTmFtZSBuZXZlciByZXR1cm5zIDAgb24gc3VjY2Vzcy4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRsbHMvTWFrZWZpbGUuaW4sIGRsbHMvY2ZnbWdyMzIvLmN2c2lnbm9yZSwKKwkgIGRsbHMvY2ZnbWdyMzIvTWFrZWZpbGUuaW4sIGRsbHMvY2ZnbWdyMzIvY2ZnbWdyMzIuc3BlYywKKwkgIGRsbHMvY2ZnbWdyMzIvbWFpbi5jOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlNb3N0bHkgc3R1YiBpbXBsZW1lbmF0aW9uIGZvciBjZmdtZ3IzMi4KKworCSogZGxscy9kM2Q4L2RldmljZS5jOiBKYXNvbiBFZG1lYWRlcyA8dXNAdGhlLWVkbWVhZGVzLmRlbW9uLmNvLnVrPgorCUNsZWFyIHNob3VsZCBub3QgYmUgYWZmZWN0ZWQgYnkgd3JpdGUgbWFza3MuCisKKwkqIGRsbHMva2VybmVsL3RocmVhZC5jLCBkbGxzL250ZGxsL250ZGxsLnNwZWMsIGRsbHMvbnRkbGwvdGhyZWFkLmMsCisJICBpbmNsdWRlL3dpbmJhc2UuaCwgaW5jbHVkZS93aW50ZXJubC5oOgorCUltcGxlbWVudGVkIFJ0bENyZWF0ZVVzZXJUaHJlYWQsIGFuZCB1c2UgaXQgdG8gbW92ZSB0aHJlYWQgY3JlYXRpb24gdG8KKwludGRsbC4KKworCSogZGxscy9kM2Q4L2RldmljZS5jOiBKYXNvbiBFZG1lYWRlcyA8dXNAdGhlLWVkbWVhZGVzLmRlbW9uLmNvLnVrPgorCUNvbG9yV3JpdGVFbmFibGUgc2hvdWxkIG5vdCBpbXBhY3QgY2xlYXJpbmcgdGhlIHNjcmVlbi4KKworCSogZGxscy9jb21jdGwzMi90b29sYmFyLmM6IFJvYmVydCBTaGVhcm1hbiA8Ui5KLlNoZWFybWFuQHdhcndpY2suYWMudWs+CisJLSBVc2UgdGhlIHN0eWxlIHJldHVybmVkIGluIGN1c3RvbSBkcmF3IHN0cnVjdHVyZSB0byBkcmF3IHRoZSBidXR0b24sCisJICBhcyBhcHBzIG1heSBtb2RpZnkgdGhlIHN0eWxlIHRoaXMgd2F5LgorCS0gRGlzYWJsZWQgYnV0dG9ucyBjYW4gYmVjb21lIGhvdC4KKwktIFJldHJpZXZlIGltYWdlIGxpc3QgZm9yIGRyYXdpbmcgYWZ0ZXIgZ2V0dGluZyBpbWFnZSBsaXN0IElEIChpbgorCSAgSV9JTUFHRUNBTExCQUNLIGNhc2UpLgorCisJKiBkbGxzL2RtbG9hZGVyL2RtbG9hZGVyX3ByaXZhdGUuaCwgZGxscy9kbWxvYWRlci9sb2FkZXIuYywKKwkgIGRsbHMvZG1zY3JpcHQvc2NyaXB0LmMsIGRsbHMvZG1zY3JpcHQvc2NyaXB0dHJhY2suYzoKKwlSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwktIGJldHRlciB0cmFjZXMKKwktIHNvbWUgSVBlcnNpc3RTdHJlYW06OkdldENsYXNzSUQgaW1wbGVtZW50YXRpb24KKwktIGFkZCB0aGUgInNlYXJjaCBieSBuYW1lIiBzdXBwb3J0IGZvciBJRGlyZWN0TXVzaWNMb2FkZXI4OjpHZXRPYmplY3QKKwkgIChhbmQgYSBoYWNrIGZvciB1bmRlcnN0YW5kaW5nIGNvbnRhaW5lcnMgdXNlKQorCisJKiBkbGxzL2NvbWN0bDMyL3RhYi5jLCBkbGxzL2NvbWN0bDMyL3Rlc3RzLy5jdnNpZ25vcmUsCisJICBkbGxzL2NvbWN0bDMyL3Rlc3RzL01ha2VmaWxlLmluLCBkbGxzL2NvbWN0bDMyL3Rlc3RzL3RhYi5jOgorCVZpdGFsaXkgTWFyZ29sZW4gPHdpbmUtcGF0Y2hAa2lldmluZm8uY29tPgorCS0gRml4IHRhYiBzaXplIGZvciBUQ1NfT1dORVJEUkFXRklYRUQgc3R5bGUuCisJLSBDb3JyZWN0IHNpemUgcmVjYWxjdWxhdGlvbiBhZnRlciBzZXR0aW5nIHRhYiB3aWR0aC4KKwktIEZpeCBidXR0b24gc2l6ZXMgdG8gbWF0Y2ggbmF0aXZlLgorCS0gQ2VudGVyIGJvdGggdmVydGljYWxseSBhbmQgaG9yaXpvbnRhbGx5IHRhYiB0ZXh0ICYgaWNvbi4KKwktIFVzZSBjb3JyZWN0IGxlZnQvY2VudGVyIGFsaWdubWVudCBmbGFncy4KKworMjAwMy0xMC0zMCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9kM2Q4L2RldmljZS5jOiBKYXNvbiBFZG1lYWRlcyA8dXNAdGhlLWVkbWVhZGVzLmRlbW9uLmNvLnVrPgorCUNvcHlSZWN0cyAocGVyIHJlY3QpIGNvcGllZCBvbmUgdG9vIG1hbnkgbGluZXMsIHRyYXNoaW5nIHRoZSBoZWFwLgorCUFsc28gdGlkaWVzIHVwIHNjaXNzb3IgdGVzdCBmcm9tIHByZXZpb3VzIHBhdGNoLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy8uY3ZzaWdub3JlLCBkbGxzL2tlcm5lbC90ZXN0cy9NYWtlZmlsZS5pbiwKKwkgIGRsbHMva2VybmVsL3Rlc3RzL21haWxzbG90LmM6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUFkZGVkIGEgdGVzdCBmb3IgbWFpbHNsb3RzLgorCisJKiBkbGxzL250ZGxsL3NpZ25hbF9pMzg2LmM6CisJRml4ZWQgcmFjZSBpbiAlZ3Mgc2VsZWN0b3IgcmVzdG9yaW5nIGR1cmluZyB2bTg2IG1vZGUgcmV0dXJuLgorCU1pbm9yIGNsZWFudXBzLgorCisJKiB0b29scy93aW5lZHVtcC9wZS5jOiBHZXJhbGQgUGZlaWZlciA8Z2VyYWxkQHBmZWlmZXIuY29tPgorCUNoYW5nZSBzb21lIHZhcmlhYmxlcyBmcm9tIGludCB0byB1bnNpZ25lZCB0byBhdm9pZCBzaWduZWRuZXNzCisJbWlzbWF0Y2hlcy4KKworCSogdG9vbHMvd2luZWdjYy91dGlscy5jOiBHZXJhbGQgUGZlaWZlciA8Z2VyYWxkQHBmZWlmZXIuY29tPgorCUFkZCBwcm9wZXIgY2FzdHMgdG8gYXZvaWQgc2lnbmVkIHZzLiB1bnNpZ25lZCBtaXNtYXRjaGVzIGluCisJc3RybWFrZSgpLgorCisJKiBkbGxzL3dpbm1tL3dpbmVvc3MvYXVkaW8uYzogUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlDYWNoZSB0aGUgd2F2ZSB2b2x1bWUgc28gaXQgY2FuIGJlIHJldHVybmVkIHJhdGhlciB0aGFuIHRoZSBPU1MKKwlkZXJpdmVkIHZhbHVlIHdoZW4gcG9zc2libGUuCisKKwkqIGRsbHMva2VybmVsL3N5bmMuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCVJldHVybiBtb3JlIHNhbmUgbWFpbHNsb3QgZXJyb3IgdmFsdWVzLgorCisJKiBkbGxzL3dpbm1tL2xvbHZsZHJ2LmMsIGRsbHMvd2lubW0vbW1zeXN0ZW0uYywgZGxscy93aW5tbS93aW5tbS5jOgorCVJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJQ2xlYW4gdXAgKkdldERldkNhcHMgdG8gY2hlY2sgZm9yIHZhbGlkIHBvaW50ZXIgYW5kIG9ubHkgY29weSBwcm9wZXIKKwlhbW91bnQgb2YgZGF0YS4KKworCSogZGxscy9udGRsbC9leGNlcHRpb24uYzogUGF2ZWwgUm9za2luIDxwcm9za2lAZ251Lm9yZz4KKwlJbmNsdWRlIG50ZGxsX21pc2MuaCB0byBhdm9pZCB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIEdldFByb2Nlc3NIZWFwCisJd2hlbiBjb21waWxlZCB3aXRob3V0IG9wdGltaXphdGlvbi4KKworCSogZGxscy9rZXJuZWwvcHJvY2Vzcy5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJRml4IGluY29ycmVjdGx5IHNpemVkIGJ1ZmZlci4KKworCSogZGxscy9kM2Q4L2RldmljZS5jOiBKYXNvbiBFZG1lYWRlcyA8dXNAdGhlLWVkbWVhZGVzLmRlbW9uLmNvLnVrPgorCUN1bGxpbmcgdG8gZGlmZmVyZW50IHZpZXdwb3J0cyBmYWlsZWQgYXMgY2xlYXJpbmcgdGhlIHdob2xlIHZpZXdwb3J0CisJY2xlYXJlZCB0aGUgc2NyZWVuLgorCisJKiB0b29scy93aW5lYnVpbGQvc3BlYzMyLmM6IEJldHRlciBkZWZhdWx0cyBmb3IgaGVhcCBhbmQgc3RhY2sgc2l6ZXMuCisKKwkqIGRsbHMvZGlucHV0L2pveXN0aWNrL2xpbnV4LmMsIGRsbHMvZGlucHV0L2pveXN0aWNrL2xpbnV4aW5wdXQuYzoKKwlIYW5udSBWYWx0b25lbiA8SGFubnUuVmFsdG9uZW5AaHV0LmZpPgorCUpveXN0aWNrQUltcGxfVW5hY3F1aXJlIHNob3VsZCByZXR1cm4gRElfTk9FRkZFQ1QgaWYgdGhlIGRldmljZSBpcyBub3QKKwlpbiBhbiBhY3F1aXJlZCBzdGF0ZS4KKworCSogZGxscy9tc2kvbXNpLmMsIGRsbHMvbXNpL21zaS5zcGVjLCBkbGxzL21zaS9tc2lxdWVyeS5jLCBpbmNsdWRlL21zaS5oOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlTb21lIHN0dWIgaW1wbGVtZW50YXRpb25zLgorCisJKiBkbGxzL21zaS90b2tlbml6ZS5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJU3FsIHRva2VucyBhcmUgY2FzZSBpbnNlbnNpdGl2ZSBpbiBtc2kuZGxsLgorCisJKiBkbGxzL2QzZDgvZGV2aWNlLmMsIGRsbHMvZDNkOC9zdGF0ZWJsb2NrLmMsIGRsbHMvZDNkOC9zdXJmYWNlLmM6CisJSmFzb24gRWRtZWFkZXMgPHVzQHRoZS1lZG1lYWRlcy5kZW1vbi5jby51az4KKwlDb3JyZWN0IHdyaXRpbmcgdG8gYmFjayBidWZmZXIgaW4gbm9uLW9ydGhvIG1vZGUsIGFuZCBlbnN1cmUgdGhlIGxpbmUKKwlzdGlwcGxlIGlzIHBhc3NlZCBjb3JyZWN0bHkgdG8gZW5hYmxlIHByb3BlciB3aXJlZnJhbWUgc3VwcG9ydC4KKworMjAwMy0xMC0yOCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9rZXJuZWwvaW5zdHIuYywgZGxscy9rZXJuZWwvd293dGh1bmsuYzoKKwlSZXN0b3JlZCBlbXVsYXRpb24gb2YgcHJvdGVjdGVkIGluc3RydWN0aW9ucyBpbiAzMi1iaXQgY29kZSB3aGVuCisJcnVubmluZyB3aXRoIGEgV2luOXggdmVyc2lvbi4KKworCSogZGxscy9tc2kvdGFibGUuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCVRyZWF0IG1pc3NpbmcgTVNJIHRhYmxlcyBhcyBlbXB0eS4KKworCSogaW5jbHVkZS93aW5lL2xpYnJhcnkuaDoKKwlJbmNyZWFzZSBXSU5FX0xEVF9GSVJTVF9FTlRSWSB0byBsZWF2ZSByb29tIGZvciBnbGliYyB0aHJlYWQKKwlzZWxlY3RvcnMuCisKKwkqIGRsbHMvbnRkbGwvZXhjZXB0aW9uLmMsIGRsbHMvbnRkbGwvc2lnbmFsX2kzODYuYywKKwkgIGRsbHMvbnRkbGwvc2lnbmFsX3Bvd2VycGMuYywgZGxscy9udGRsbC9zaWduYWxfc3BhcmMuYywKKwkgIGluY2x1ZGUvdGhyZWFkLmg6CisJUmVtb3ZlZCBubyBsb25nZXIgbmVlZGVkIFNJR05BTF9VbmJsb2NrKCkgZnVuY3Rpb24uCisKKwkqIGRsbHMvY29tY3RsMzIvdG9vbGJhci5jLCBkbGxzL2tlcm5lbC90ZXN0cy9sb2NhbGUuYywKKwkgIGRsbHMvb2xlYXV0MzIvdmFyaWFudC5jLCBkbGxzL3VzZXIvdGVzdHMvaW5wdXQuYywgaW5jbHVkZS90bXNjaGVtYS5oLAorCSAgbGlicy91bmljb2RlL2NwbWFwLnBsLCBwcm9ncmFtcy9yZWdhcGkvcmVnYXBpLmMsCisJICBwcm9ncmFtcy9yZWdlZGl0L3JlZ3Byb2MuYywgdG9vbHMvd2luYXBpL3dpbmFwaV9jaGVja19vcHRpb25zLnBtLAorCSAgdG9vbHMvd2luYXBpX2NoZWNrL3dpbmFwaV9jaGVjazoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlXZWVrbHkgc3BlbGxpbmcgZml4ZXMuCisKKwkqIGRsbHMvbXNpL3RhYmxlLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXhlZCBNU0kgYnVmZmVyIG92ZXJmbG93LgorCisJKiBkbGxzL2tlcm5lbC9rZXJuZWwzMi5zcGVjLCBkbGxzL250ZGxsL2V4Y2VwdGlvbi5jLAorCSAgZGxscy9udGRsbC9udGRsbC5zcGVjLCBpbmNsdWRlL3dpbmJhc2UuaCwgaW5jbHVkZS93aW5udC5oLAorCSAgaW5jbHVkZS93aW50ZXJubC5oOgorCUltcGxlbWVudGVkIEFkZC9SZW1vdmVWZWN0b3JlZEV4Y2VwdGlvbkhhbmRsZXIuCisKKwkqIHRvb2xzL3dpbmVtYWtlcjogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgc3VwcG9ydCBmb3IgLmRiZy5jIGZpbGVzLiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIHVzZSB0aGUgV2luZQorCXRyYWNpbmcgbWFjcm9zIGluIFdpbmVsaWIgYXBwbGljYXRpb25zLgorCVRoZSB3aW5lL2xpYiwgd2luZS9vbGUsIHdpbmUvdW5pY29kZSBkaXJlY3RvcmllcyBhcmUgZ29uZS4gU2ltcGxpZnkKKwl0aGUgd2luZV91bmljb2RlIGFuZCB3aW5lX3V1aWQgZGV0ZWN0aW9uLgorCUZpeCBnZW5lcmF0aW9uIG9mIHRoZSBjbGVhbiB0YXJnZXQgKGluIHNvbWUgY29ybmVyIGNhc2VzIGl0IGNvdWxkCisJZ2VuZXJhdGUgYSAkKFJNKSBjb21tYW5kIHdpdGggbm8gcGFyYW1ldGVyKS4KKwlNb3ZlIHRoZSBkaXN0Y2xlYW4gdGFyZ2V0IHRvIHRoZSB0b3AtbGV2ZWwgTWFrZWZpbGUgYW5kIG1ha2UgaXQgbW9yZQorCXRob3JvdWdoLgorCVVwZGF0ZSBhIGZldyBhdXRvY29uZiBjb25zdHJ1Y3RzLgorCVJlbW90ZSBjb21tZW50ZWQgb3V0IGNvZGUgaW4gd3JhcHBlci5jLiBJZiB3ZSBuZWVkIHRoYXQgY29kZSB3ZSBjYW4KKwlhbHdheXMgZ2V0IGl0IGZyb20gQ1ZTLgorCisJKiBkbGxzL21zdmNydC9kaXIuYywgaW5jbHVkZS9tc3ZjcnQvc3RkbGliLmg6CisJUGllcnJlIGQnSGVyYmVtb250IDxzdGVnZWZpbkBmcmVlLmZyPgorCUZpeGVkIF93ZnVsbHBhdGggcHJvdG90eXBlLgorCisJKiBkbGxzL3gxMWRydi93aW5lY2xpcHNydi5jOiBHZXJhbGQgUGZlaWZlciA8Z2VyYWxkQHBmZWlmZXIuY29tPgorCU1vdmUgZXZlbnRfbmFtZXNbXSBpbnRvIEVWRU5UX1Byb2Nlc3NFdmVudCgpLgorCisJKiBkbGxzL2tlcm5lbC9mb3JtYXRfbXNnLmM6CisJVXdlIEJvbm5lcyA8Ym9uQGVsZWt0cm9uLmlrcC5waHlzaWsudHUtZGFybXN0YWR0LmRlPgorCUZvcm1hdE1lc3NhZ2VXOiBBbGxvY2F0ZSBhbm91Z2ggc3BhY2UuCisKKwkqIGRsbHMvbXNpL3RhYmxlLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggc3RyaW5nIHZhbHVlIGxvb2t1cHMgaW4gTVNJLgorCisJKiBkbGxzL2RtYmFuZC9iYW5kLmMsIGRsbHMvZG1iYW5kL2JhbmR0cmFjay5jLAorCSAgZGxscy9kbWJhbmQvZG1iYW5kX3ByaXZhdGUuaDoKKwlSb2sgTWFuZGVsamMgPHJvay5tYW5kZWxqY0BnaW1iLm9yZz4KKwlTb21lIGZpeGVzIGluIGRtYmFuZCBsb2FkaW5nLgorCisJKiBkbGxzL2RpbnB1dC9tb3VzZS9tYWluLmM6IEhhbm51IFZhbHRvbmVuIDxIYW5udS5WYWx0b25lbkBodXQuZmk+CisJU3lzTW91c2VBSW1wbF9VbmFjcXVpcmUgc2hvdWxkIHJldHVybiBESV9OT0VGRkVDVCBpZiB0aGUgZGV2aWNlIGlzIG5vdAorCWluIGFuIGFjcXVpcmVkIHN0YXRlLgorCisJKiBkbGxzL2tlcm5lbC9wcm9jZXNzLmM6CisJRml4ZWQgdHlwbyB0aGF0IGJyb2tlIGhhbmRsaW5nIG9mIC5jb20gYW5kIC5iYXQgZmlsZXMuCisKKwkqIGRsbHMvbnRkbGwvc2lnbmFsX2kzODYuYywgdG9vbHMvd2luZWJ1aWxkL3JlbGF5LmM6CisJU3dpdGNoIGJhY2sgdG8gdGhlIG1haW4gcHJvY2VzcyBzdGFjayBiZWZvcmUgY2FsbGluZyBleGNlcHRpb24KKwloYW5kbGVycy4KKworCSogZGxscy9udGRsbC9sb2FkZXIuYzoKKwlSZXBhaXJlZCByZWxheSBkZWJ1Z2dpbmcgZm9yIGtlcm5lbCBhbmQgbnRkbGwgKHNwb3R0ZWQgYnkgVXdlCisJQm9ubmVzKS4KKworCSogZGxscy91c2VyL3Rlc3RzLy5jdnNpZ25vcmUsIGRsbHMvdXNlci90ZXN0cy9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvdXNlci90ZXN0cy9pbnB1dC5jOgorCVJlaW4gS2xhemVzIDxya2xhemVzQHhzNGFsbC5ubD4KKwlUZXN0IFdNX0tFWSogYW5kIFdNX1NZU0tFWSogbWVzc2FnZXMgZ2VuZXJhdGVkIGJ5IHZhcmlvdXMga2V5Ym9hcmQKKwlldmVudHMuCisKKwkqIGRsbHMvd2lubW0vbG9sdmxkcnYuYywgZGxscy93aW5tbS90ZXN0cy93YXZlLmMsCisJICBkbGxzL3dpbm1tL3dpbmVhbHNhL2F1ZGlvLmMsIGRsbHMvd2lubW0vd2luZW9zcy9hdWRpby5jOgorCVJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJQWRkZWQgc3VwcG9ydCBmb3IgZ2V0dGluZyB0aGUgd2F2ZSBkZXZpY2UgbmFtZS4KKworCSogZGxscy9kbWxvYWRlci9sb2FkZXIuYzogUm9rIE1hbmRlbGpjIDxyb2subWFuZGVsamNAZ2ltYi5vcmc+CisJRml4IGRtbG9hZGVyJ3MgYmVoYXZpb3IgdG8gYmUgbW9yZSBNUyBjb21wbGlhbnQuCisKKwkqIGRsbHMvZ2RpL2ZyZWV0eXBlLmM6IE1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCVVzZSBmcmVldHlwZSAyLjAgZGVmaW5lcyBmb3IgZm9udCBlbmNvZGluZ3MgaW5zdGVhZCBvZiBtaXN1c2Ugb2YKKwlNU19NQUtFX1RBRy4KKworCSogZGxscy9udGRsbC9wYXRoLmM6CisJVXdlIEJvbm5lcyA8Ym9uQGVsZWt0cm9uLmlrcC5waHlzaWsudHUtZGFybXN0YWR0LmRlPgorCWdldF9mdWxsX3BhdGhfaGVscGVyOiBIYW5kbGUgdGhlIGNhc2UgXFwuXFwgYXMgaW50ZW5kZWQ7IGZpeCBsZW5ndGgKKwlhcmd1bWVudHMgZm9yIG1lbW1vdmUuCisKKwkqIGRsbHMvbXN2Y3J0L3Rlc3RzL3NjYW5mLmM6CisJVXdlIEJvbm5lcyA8Ym9uQGVsZWt0cm9uLmlrcC5waHlzaWsudHUtZGFybXN0YWR0LmRlPgorCUFub3RoZXIgZGlmZmVyZW5jZSBpbiB0aGUgcHJpbnRmIGZhbWlseS4KKworCSogd2luZG93cy9pbnB1dC5jOiBSZWluIEtsYXplcyA8cmtsYXplc0B4czRhbGwubmw+CisJQ29ycmVjdCB0aGUgbG9naWMgdGhhdCBkZWNpZGVzIHdoZXRoZXIgYSBXTV9TWVNLRVlVUC9ET1dOIG9yIGEKKwlXTV9LRVlVUC9ET1dOIG1lc3NhZ2UgaXMgdG8gYmUgc2VudC4KKworMjAwMy0xMC0yNyAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogdG9vbHMvd2luZW1ha2VyOgorCWxpYm50ZGxsLmRsbC5zbyBubyBsb25nZXIgZXhpc3RzLCBjaGVjayBmb3IgbGlibnRkbGwuZGVmIGluc3RlYWQuCisKKwkqIHRvb2xzL3dpbmVkdW1wL3BlLmM6CisJQWRkZWQgcHJpbnRpbmcgb2YgdGhlIHRhcmdldCBvZiBmb3J3YXJkZWQgZXhwb3J0cy4KKworCSogc2VydmVyL3RocmVhZC5jOgorCU1ha2UgaW5pdF90aHJlYWQgcmVxdWVzdCBkZWFsIGJldHRlciB3aXRoIGZkIGFsbG9jYXRpb24gZXJyb3JzLgorCisJKiBkbGxzL2RtaW1lL3BlcmZvcm1hbmNlLmMsIGRsbHMvZG1sb2FkZXIvY29udGFpbmVyLmMsCisJICBkbGxzL2RtbG9hZGVyL2xvYWRlci5jLCBkbGxzL2RtbG9hZGVyL2xvYWRlcnN0cmVhbS5jLAorCSAgaW5jbHVkZS9kc291bmQuaDoKKwlSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwktIFNvbWUgZml4ZXMgb24gRGlyZWN0U291bmQgaW5pdCAobmVlZCBTZXRDb29wZXJhdGl2ZUxldmVsIGFzIHNlZW4gaW4KKwkgIG1zZG4pIG9uIElEaXJlY3RNdXNpY1BlcmZvcm1hbmNlODo6SW5pdEF1ZGlvLgorCS0gU29tZSBmaXhlcyBpbiBJRGlyZWN0TXVzaWNQZXJmb3JtYW5jZThJbXBsQ3JlYXRlU3RhbmRhcmRBdWRpb1BhdGgKKwkgIChub3QgcGVyZmVjdCB5ZXQsIG5lZWQgdG8gdW5kZXJzdGFuZC9maXggdGhlIGNoYW5uZWwgaW5pdC91c2UpLgorCS0gRml4IHR5cG8gb24gQ3JlYXRlRGlyZWN0TXVzaWNDb250YWluZXIuCisJLSBBZGQgbWlzc2luZyBkZWZpbmUgaW4gZHNvdW5kLmguCisJLSBCZXR0ZXIgdHJhY2VzIG9uIElEaXJlY3RNdXNpY0xvYWRlcjg6OlNldFNlYXJjaERpcmVjdG9yeS4KKworCSogZGxscy9zaGVsbDMyL2NvbnRyb2wuYzoKKwlVd2UgQm9ubmVzIDxib25AZWxla3Ryb24uaWtwLnBoeXNpay50dS1kYXJtc3RhZHQuZGU+CisJQ29udHJvbF9Eb0xhdW5jaDogbWVtbW92ZSBuZWVkcyBieXRlcyBhcyBsZW5ndGggYXJndW1lbnQuCisKKwkqIGRsbHMvd2luZWRvcy9pbnQzMy5jOiBKdWtrYSBIZWlub25lbiA8amhlaUBpa2kuZmk+CisJQ2xlYW4gdXAgbW91c2UgZHJpdmVyIGltcGxlbWVudGF0aW9uLgorCisJKiBkbGxzL3dpbmVkb3MvaW50MjEuYzogSnVra2EgSGVpbm9uZW4gPGpoZWlAaWtpLmZpPgorCU1vdmVkIGRyaXZlIHBhcmFtZXRlciBibG9jayAoRFBCKSByb3V0aW5lcyB0byB3aW5lZG9zLgorCisJKiBkbGxzL3NldHVwYXBpL3NldHVwYXBpLnNwZWMsIGRsbHMvc2V0dXBhcGkvc3R1YnMuYzoKKwlVd2UgQm9ubmVzIDxib25AZWxla3Ryb24uaWtwLnBoeXNpay50dS1kYXJtc3RhZHQuZGU+CisJQWRkZWQgYSBmZXcgc3R1YnMuCisKKwkqIHRvb2xzL3dpbmVidWlsZC9pbXBvcnQuYzogUGllcnJlIGQnSGVyYmVtb250IDxzdGVnZWZpbkBmcmVlLmZyPgorCUZpeCBQb3dlclBDIGFzc2VtYmxlciBzeW50YXggbWlzdGFrZXMuCisKKwkqIGRsbHMvYXZpZmlsMzIvYXZpZmlsZV9ObC5yYywgZGxscy9hdmlmaWwzMi9yc3JjLnJjLAorCSAgZGxscy9jb21jdGwzMi9jb21jdGxfTmwucmMsIGRsbHMvY29tY3RsMzIvcnNyYy5yYywKKwkgIGRsbHMvbXNhY20vbXNhY20ucmMsIGRsbHMvbXNhY20vbXNhY21fTmwucmMsIGRsbHMvc2VyaWFsdWkvTmwucmMsCisJICBkbGxzL3NlcmlhbHVpL3NlcmlhbHVpX3JjLnJjLCBkbGxzL3NldHVwYXBpL05sLnJjLAorCSAgZGxscy9zZXR1cGFwaS9zZXR1cGFwaS5yYywgZGxscy93aW5lcHMvcnNyYy5yYywKKwkgIGRsbHMvd2luZXBzL3dwc19ObC5yYywgZGxscy93aW5pbmV0L3JzcmMucmMsCisJICBkbGxzL3dpbmluZXQvd2luaW5ldF9ObC5yYzoKKwlIYW5zIExlaWRla2tlciA8aGFuc0BpdC52dS5ubD4KKwlBZGRlZCBEdXRjaCB0cmFuc2xhdGlvbnMuCisKKwkqIHByb2dyYW1zL3N0YXJ0L05sLnJjLCBwcm9ncmFtcy9zdGFydC9yc3JjLnJjLCBwcm9ncmFtcy92aWV3L05sLnJjLAorCSAgcHJvZ3JhbXMvdmlldy92aWV3cmMucmMsIHByb2dyYW1zL3dpbmVjb25zb2xlL3dpbmVjb25zb2xlX05sLnJjLAorCSAgcHJvZ3JhbXMvd2luZWNvbnNvbGUvd2luZWNvbnNvbGVfcmVzLnJjLCBwcm9ncmFtcy93aW5lZmlsZS9Fbi5yYywKKwkgIHByb2dyYW1zL3dpbmVmaWxlL05sLnJjLCBwcm9ncmFtcy93aW5lZmlsZS9yc3JjLnJjLAorCSAgcHJvZ3JhbXMvd2luZW1pbmUvTmwucmMsIHByb2dyYW1zL3dpbmVtaW5lL3JzcmMucmMsCisJICBwcm9ncmFtcy93aW5oZWxwL05sLnJjLCBwcm9ncmFtcy93aW5oZWxwL3JzcmMucmM6CisJSGFucyBMZWlkZWtrZXIgPGhhbnNAaXQudnUubmw+CisJLSBEdXRjaCB0cmFuc2xhdGlvbnMgb2YgV2luZSBwcm9ncmFtcy4KKwktIENvcnJlY3QgZ3JhbW1hciBlcnJvciBpbiB3aW5lZmlsZS4KKworCSogcHJvZ3JhbXMvd2NtZC9Fbi5yYywgcHJvZ3JhbXMvd2NtZC9ObC5yYywgcHJvZ3JhbXMvd2NtZC93Y21kcmMucmM6CisJSGFucyBMZWlkZWtrZXIgPGhhbnNAaXQudnUubmw+CisJLSBBZGRlZCBEdXRjaCB0cmFuc2xhdGlvbi4KKwktIE1ha2UgYW4gZXhhbXBsZSdzIGRlc2NyaXB0aW9uIGNvbnNpc3RlbnQgd2l0aCB0aGUgZXhhbXBsZS4KKworCSogZGxscy9rZXJuZWwvbmxzL2hlYi5ubHM6IFNoYWNoYXIgU2hlbWVzaCA8d2luZS1wYXRjaEBzaGVtZXNoLmJpej4KKwlVcGRhdGVkIEhlYnJldyByZXNvdXJjZXMuCisKKwkqIGRsbHMvd2lubW0vd2luZWFsc2EvYXVkaW8uYzogUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlGaXggU01QVEUgdGltZS4KKwlGaXggcHJpbWFyeSBidWZmZXIgdm9sdW1lIHNldHRpbmcuCisKKwkqIGRsbHMvd2lubW0vbW1zeXN0ZW0uYzogUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlPbmx5IGNvcHkgYW1vdW50IHJlcXVlc3RlZCB1cCB0byBzaXplIG9mIHN0cnVjdHVyZS4KKworCSogZGxscy93aW5tbS93aW5lb3NzL2F1ZGlvLmM6IFJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJQ2xlYXIgYSBuZXcgaGFyZHdhcmUgYnVmZmVyIHRvIHByb3BlciBzaWxlbmNlIHZhbHVlcyBiYXNlZCBvbiBmb3JtYXQuCisJQWxsb3dzIGR4ZGlhZyB0byBwbGF5IDggYml0IHNvdW5kcyBpbiBoYXJkd2FyZSBwcmltYXJ5IGJ1ZmZlciBub3cuCisKKwkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjOiBQaWVycmUgZCdIZXJiZW1vbnQgPHN0ZWdlZmluQGZyZWUuZnI+CisJSW5jbHVkZSA8YXJwYS9uYW1lc2VyLmg+IGJlZm9yZSA8cmVzb2x2Lmg+LgorCisyMDAzLTEwLTI0ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2dkaS90ZXN0cy9nZW5lcmF0ZWQuYywgZGxscy9zaGx3YXBpL3Rlc3RzL2dlbmVyYXRlZC5jLAorCSAgZGxscy91cmxtb24vdGVzdHMvZ2VuZXJhdGVkLmMsIGRsbHMvdXNlci90ZXN0cy9nZW5lcmF0ZWQuYywKKwkgIGRsbHMvd2luaW5ldC90ZXN0cy9nZW5lcmF0ZWQuYzoKKwlVcGRhdGVkIHNvbWUgb2YgdGhlIGdlbmVyYXRlZCB0ZXN0cy4KKworCSogdG9vbHMvd2luYXBpL3Rlc3RzLmRhdCwgdG9vbHMvd2luYXBpL3dpbmFwaV90ZXN0OgorCVNwZWNpZnkgaW5jbHVkZSBxdW90ZXMgaW4gdGhlIHRlc3RzLmRhdCBmaWxlLgorCisJKiBkbGxzL2tlcm5lbC9maWJlci5jLCBkbGxzL250ZGxsL2V4Y2VwdGlvbi5jLAorCSAgaW5jbHVkZS93aW5lL2V4Y2VwdGlvbi5oOgorCVVzZSBzaWdzZXRqbXAgaW5zdGVhZCBvZiBzZXRqbXAgaW4gV2luZSBpbnRlcm5hbCBleGNlcHRpb24gaGFuZGxlcnMgdG8KKwltYWtlIHN1cmUgdGhlIHNpZ25hbCBtYXNrIGlzIHJlc3RvcmVkIHByb3Blcmx5LgorCisJKiBzZXJ2ZXIvc2lnbmFsLmM6CisJQWRkZWQgc3VwcG9ydCBmb3IgdGhlIGxpbnV4dGhyZWFkcyBjYW5jZWwgc2lnbmFsIGFzIGFuIGFsdGVybmF0aXZlIHRvCisJU0lHQ0hMRC4KKworCSogZGxscy9tc3ZjcnQvdGVzdHMvc2NhbmYuYzoKKwlVd2UgQm9ubmVzIDxib25AZWxla3Ryb24uaWtwLnBoeXNpay50dS1kYXJtc3RhZHQuZGU+CisJQWRkZWQgYSB0ZXN0IGNhc2UgZm9yIHNwcmludGYuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGVsbDMyX21haW4uYywgZGxscy9zaGVsbDMyL3NobHZpZXcuYywKKwkgIGRsbHMvc2hlbGwzMi9zaHBvbGljeS5jLCBkbGxzL3NoZWxsMzIvc3lzdHJheS5jOgorCUZpbGlwIE5hdmFyYSA8eG5hdmFyYUB2b2xueS5jej4KKwktIFJlbW92ZWQgaW5pdGlhbGl6YXRpb24gb2Ygc2gzMl9wb2xpY3lfdGFibGUgaW4gU0hJbml0UmVzdHJpY3RlZCwKKwkgIGJlY2F1c2UgaXQncyBhbHJlYWR5IHN0YXRpY2FsbHkgaW5pdGlhbGl6ZWQuCisJLSBSZW1vdmVkIGNhbGxpbmcgb2YgU0hJbml0UmVzdHJpY3RlZChOVUxMLCBOVUxMKSBmcm9tIERsbE1haW4gYmVjYXVzZQorCSAgaXQgZG9lcyBub3RoaW5nIGluIHRoaXMgY2FzZSBub3cuCisJLSBBZGRlZCBzdXBwb3J0IGZvciBmbGFncyBGV0ZfREVTS1RPUCwgRldGX05PQ0xJRU5URURHRSwKKwkgIEZXRl9UUkFOU1BBUkVOVCBpbiBTaGVsbFZpZXcuCisJLSBGaXhlZCBzbWFsbCBidWcgaW4gc2V0dGluZyBTeXNUcmF5IHdpbmRvdyBjbGFzcyBoYnJCYWNrZ3JvdW5kLgorCisJKiBkbGxzL3VzZXIvdGVzdHMvd2luLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJTW9yZSB0ZXN0cyBmb3Igd2luZG93IGNyZWF0aW9uIHBhcmFtZXRlcnMuCisKKwkqIHdpbmRvd3Mvd2lucG9zLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJSW5pdGlhbGl6ZSBNaW5NYXgucHRSZXNlcnZlZCwgdXNlIGJldHRlciBkZWZhdWx0cyBmb3IgY2hpbGQgd2luZG93cy4KKworCSogZGxscy94MTFkcnYvd2luZG93LmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJV2luZG93cyBhbHdheXMgc2V0cyBjYnRjLmh3bmRJbnNlcnRBZnRlciB0byBIV05EX1RPUC4KKworCSogZGxscy9tc3ZjcnQvZmlsZS5jOiBQYXZlbCBSb3NraW4gPHByb3NraUBnbnUub3JnPgorCU1ha2UgTVNWQ1JUX19zb3BlbigpIGNvbXBsYWluIGxvdWRlciBhYm91dCB1bmtub3duIG9mbGFncywgYnV0IG5vdAorCWFib3V0IF9PX1dST05MWS4KKwlNU1ZDUlRfZm9wZW4oKSBzaG91bGQgcGFzcyB0aGlyZCBhcmd1bWVudCB0byBfb3BlbigpIGJlY2F1c2UgaXQgbWF5CisJc2V0IF9PX0NSRUFULgorCisJKiBpbmNsdWRlL01ha2VmaWxlLmluLCBpbmNsdWRlL2FtdmlkZW8uaCwgaW5jbHVkZS9hbXZpZGVvLmlkbCwKKwkgIGluY2x1ZGUvYXZpcmlmZi5oOgorCVJvYmVydCBTaGVhcm1hbiA8Ui5KLlNoZWFybWFuQHdhcndpY2suYWMudWs+CisJQWRkZWQgYW12aWRlby57aWRsLGh9IGFuZCBhdmlyaWZmLmguCisKKwkqIGRsbHMvd2luZXBzL3JzcmMucmMsIGRsbHMvd2luZXBzL3dwc19JdC5yYzoKKwlJdmFuIExlbyBNdXJyYXktU21pdGggPHB1b3RpQGlud2luZC5pdD4KKwlBZGRlZCBJdGFsaWFuIHJlc291cmNlcy4KKworCSogZGxscy9jb21jdGwzMi9yZWJhci5jOiBSb2JlcnQgU2hlYXJtYW4gPFIuSi5TaGVhcm1hbkB3YXJ3aWNrLmFjLnVrPgorCURvbid0IHN0b3JlIGJhbmQgdGV4dCBpZiAiIiBpcyBwYXNzZWQgaW50byBTZXRCYW5kSW5mby4KKworCSogcHJvZ3JhbXMvd2luZWNmZy9Fbi5yYywgcHJvZ3JhbXMvd2luZWNmZy93aW5lY2ZnLmM6CisJTWlrZSBIZWFybiA8bWlrZUB0aGVvcmV0aWMuY29tPgorCU1pbm9yIEdVSSByZWxheW91dC4KKworCSogZGxscy9rZXJuZWwvcHJvY2Vzcy5jLCBkbGxzL250ZGxsL2xvYWRlci5jOgorCUNhbGwgdGhlIGFwcGxpY2F0aW9uIGVudHJ5IHBvaW50IGZyb20ga2VybmVsMzIsIHNvbWUgYXBwcyBkZXBlbmQgb24KKwl0aGF0LgorCisJKiBkbGxzL3NldHVwYXBpL3BhcnNlci5jLCBkbGxzL3NldHVwYXBpL3ZpcnRjb3B5LmMsCisJICBkbGxzL3gxMWRydi94cmVuZGVyLmM6CisJT2xlZyBQcm9raG9yb3YgPHhvbGVncHJvQHJiY21haWwucnU+CisJQW5vdGhlciBwb3J0aW9uIG9mIEhlYXBSZUFsbG9jIGZpeGVzLgorCisJKiB0b29scy93aW5lYnVpbGQvaW1wb3J0LmMsIHRvb2xzL3dpbmVidWlsZC9zcGVjMzIuYzoKKwlQaWVycmUgZCdIZXJiZW1vbnQgPHN0ZWdlZmluQGZyZWUuZnI+CisJQ2hhbmdlIG1jdHIgUG93ZXJQQyBhc20gaW5zdHJ1Y3Rpb24gdG8gbXRjdHIuIEFkZCBTdXBwb3J0IGZvciB0aGUKKwkudGV4dCBzZWN0aW9uIGFuZCB0aGUgLnNwYWNlIHNlY3Rpb24gb2YgZGFyd2luJ3MgbGQuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL2xvY2FsZS5jOiBKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCUFkZGVkIHRlc3RzIGZvciBGb2xkU3RyaW5nQS9XLgorCisJKiBkbGxzL2tlcm5lbC9sb2NhbGUuYzogSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlJbXBsZW1lbnRlZCBGb2xkU3RyaW5nQSAodXNpbmcgVyB2ZXJzaW9uKS4KKwlEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCisKKwkqIGRsbHMvbXN2Y3J0L3Rlc3RzL2ZpbGUuYzogUGF2ZWwgUm9za2luIDxwcm9za2lAZ251Lm9yZz4KKwlBZGRlZCB0ZXN0IGZvciB0bXBuYW0oKS4KKworCSogZGxscy9tc3ZjcnQvZmlsZS5jLCBpbmNsdWRlL21zdmNydC9zdGRpby5oOgorCVBhdmVsIFJvc2tpbiA8cHJvc2tpQGdudS5vcmc+CisJTVNWQ1JUX3RtcG5hbSgpOiBjb21wbGV0ZSByZXdyaXRlLiAgVXNlIHRoZSBzYW1lIG5hbWVzIGFzIHRoZSBuYXRpdmUKKwl2ZXJzaW9uLiAgVXNlIHRoZSBjYWxsZXItc3VwcGxpZWQgYnVmZmVyIGlmIHBvc3NpYmxlLgorCisyMDAzLTEwLTIyICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2tlcm5lbC90aHJlYWQuYywgZGxscy9udGRsbC9zaWduYWxfaTM4Ni5jLCBkbGxzL250ZGxsL3ZpcnR1YWwuYywKKwkgIGluY2x1ZGUvdGhyZWFkLmg6CisJU2ltcGxpZmllZCBzaWduYWwgc3RhY2sgYWxsb2NhdGlvbiBhIGJpdCwgYW5kIGF2b2lkIGFsbG9jYXRpbmcgaXQgb24KKwlub24taTM4NiBwbGF0Zm9ybXMuCisKKwkqIGRsbHMvbnRkbGwvc2lnbmFsX3Bvd2VycGMuYzogQSBzaWduYWwgc3RhY2sgaXMgbm90IG5lZWRlZCBvbiBQb3dlclBDLgorCisJKiB0b29scy93bWMvbGFuZy5jOiBWaW5jZW50IELpcm9uIDx2YmVyb25AbWVjYW5vLmdtZS51c2hlcmIuY2E+CisJQWRkZWQgc3VwcG9ydCBmb3IgbmV1dHJhbCBsYW5ndWFnZS4KKworCSogaW5jbHVkZS9zZXR1cGFwaS5oOiBGaXhlZCBuYW1pbmcgb2YgdGhlIEEvVyB0eXBlcy4KKworCSogZGxscy9hZHZhcGkzMi9jcnlwdC5jOiBSb2JlcnQgU2hlYXJtYW4gPFIuSi5TaGVhcm1hbkB3YXJ3aWNrLmFjLnVrPgorCS0gRml4IGVycm9yIHBhdGhzIGluIGFkdmFwaTMyLkNyeXB0QWNxdWlyZUNvbnRleHRBLgorCS0gQ2FsbCBDUllQVF9WZXJpZnlJbWFnZSB0byB2ZXJpZnkgdGhlIHNpZ25hdHVyZSwgZXZlbiB0aG91Z2ggaXQKKwkgIGN1cnJlbnRseSBkb2VzIG5vdGhpbmcuCisKKwkqIGRsbHMvd2lubW0vbG9sdmxkcnYuYywgZGxscy93aW5tbS9tbXN5c3RlbS5jLCBkbGxzL3dpbm1tL3dpbmVtbS5oLAorCSAgZGxscy93aW5tbS93aW5tbS5jOgorCVJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJRml4IE1NRFJWX1BoeXNpY2FsRmVhdHVyZXMgdG8gaGFuZGxlIGJvdGggMTYgYW5kIDMyIGJpdCBwb2ludGVycworCXByb3Blcmx5LgorCisJKiBwcm9ncmFtcy93aW5lY2ZnL21haW4uYzogTWlrZSBIZWFybiA8bWlrZUB0aGVvcmV0aWMuY29tPgorCUNvbXBsZXRlIHN1cHBvcnQgRE9TIHZlcnNpb24gYW5kIHdpbmVsb29rIHNldHRpbmdzLgorCisJKiBkbGxzL2dkaS9lbmhtZmRydi9pbml0LmM6IERhdmUgQmVsYW5nZXIgPGRhdmUuYmVsYW5nZXJAY2ltbWV0cnkuY29tPgorCUZpeCBFTUYgZHJpdmVyIFVwZGF0ZUJCb3ggcm91dGluZS4gVGhlIEVNRiBib3VuZGluZyBib3ggbXVzdCBiZSBzdG9yZWQKKwlpbiBkZXZpY2UgY29vcmRpbmF0ZXMgaW4gdGhlIG1ldGFmaWxlLgorCisJKiBwcm9ncmFtcy93aW5lY2ZnL2FwcGRlZmF1bHRzLmMsIHByb2dyYW1zL3dpbmVjZmcvZHJpdmUuYywKKwkgIHByb2dyYW1zL3dpbmVjZmcveDExZHJ2ZGxnLmM6CisJTWlrZSBIZWFybiA8bWlrZUB0aGVvcmV0aWMuY29tPgorCS0gQ2xlYXIgc2NyZWVuIGRlcHRoIGNvbWJvIGJveCBvbiBwYWdlIGluaXQuCisJLSBTb21lIGFwcGRlZmF1bHRzIHN1cHBvcnQuCisJLSBSZW5hbWUgaERsZyB0byBkaWFsb2cgaW4gc29tZSBwbGFjZXMgc28gZW5hYmxlL2Rpc2FibGUgbWFjcm9zIHdvcmsuCisJLSBEb24ndCB1cGRhdGUgcmVnaXN0cnkgd2hlbiB0aGUgR1VJIGlzIGJlaW5nIGluaXRpYWxseSBjb25maWd1cmVkLgorCisyMDAzLTEwLTIxICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBmaWxlcy9zbWIuYywgZ3JhcGhpY3MveDExZHJ2L3hmb250LmMsIGluY2x1ZGUvYml0bWFwcy93aW5lLnhwbSwKKwkgIGxpYnMvd3BwL3BwbC5sLCBsaWJzL3dwcC9wcmVwcm9jLmMsIG1pc2MvcmVnaXN0cnkuYywKKwkgIHNlcnZlci91bmljb2RlLmMsIHNlcnZlci91bmljb2RlLmg6CisJRGFuaWVsIE1hcm1pZXIgPGQubWFybWllckBibHVld2luLmNoPgorCUZpeGVkIHdhcm5pbmdzIHdpdGggZ2NjIG9wdGlvbiAiLVd3cml0ZS1zdHJpbmdzIi4KKworCSogZGxscy9tc3ZjcnQvZGlyLmMsIGRsbHMvbnRkbGwvc3RyaW5nLmM6CisJRGF2ZSBCZWxhbmdlciA8ZGF2ZS5iZWxhbmdlckBjaW1tZXRyeS5jb20+CisJRml4IHNwbGl0cGF0aCBhbmQgd3NwbGl0cGF0aCBmb3IgdGhlIGZpbGUgZXh0ZW5zaW9uLgorCisJKiBkbGxzL3JwY3J0NC9uZHJfbWlkbC5jOiBHcmVnb3J5IE0uIFR1cm5lciA8Z210dXJuZXIwMDdAYW1lcml0ZWNoLm5ldD4KKwktIFJlbW92ZSBhbiBlcnJvbmVvdXMgY2hlY2sgaW4gTmRyU2VuZFJlY2VpdmUuCisJLSBDaGFuZ2UgZml4bWVzLgorCisJKiBkbGxzL21zdmNydC9wcm9jZXNzLmM6IEdlcmFsZCBQZmVpZmVyIDxnZXJhbGRAcGZlaWZlci5jb20+CisJUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMgRVhFLCBCQVQsIENNRCwgYW5kIENPTS4KKworCSogZGxscy94MTFkcnYveHJhbmRyLmM6IEdlcmFsZCBQZmVpZmVyIDxnZXJhbGRAcGZlaWZlci5jb20+CisJUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBkZXB0aHNbXS4KKworCSogY29udHJvbHMvZWRpdC5jOiBSZWluIEtsYXplcyA8cmtsYXplc0B4czRhbGwubmw+CisJQSBXTV9DUkVBVEUgbWVzc2FnZSBzZW50IHRvIGFuIEVkaXQgd2luZG93IHByb2NlZHVyZSBzaG91bGQKKwlyZXR1cm4gMS4gUG93ZXIgQnVpbGRlciBtYXNrZWQgZWRpdCBjb250cm9scyBkZXBlbmQgb24gaXQuCisKKwkqIHRvb2xzL3dpbmFwaS90ZXN0cy5kYXQsIHRvb2xzL3dpbmFwaS93aW5hcGlfdGVzdDoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlVcGRhdGUgdGVzdHMuZGF0IHRvIGluY2x1ZGUgdGhlIHZhcmlvdXMgI2luY2x1ZGUgZml4ZXMuCisJZ2NjIHNheXMgdGhhdCBzaXplb2YobG9uZyBkb3VibGUpPT0xMi4KKwlGaXggdGhlIGRldGVjdGlvbiBvZiBwcmFnbWEgcGFja3MgdG8gZGV0ZWN0ICNpbmNsdWRlIDwuLi4+LgorCUdlbmVyYXRlIG9rKCIuLi5cbiIpIGNhbGxzLgorCisJKiBkb2N1bWVudGF0aW9uL2J1Z3Muc2dtbCwgdG9vbHMvdGVzdHJ1bjoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCUNoYW5nZSBhbGwgaGVhZC90YWlsIC1YIHRvIGhlYWQvdGFpbCAtbiBYIHRvIGJlIG1vcmUgUE9TSVhseQorCWNvbXBsaWFudC4KKworCSogZGxscy9zZXR1cGFwaS9NYWtlZmlsZS5pbiwgZGxscy9zZXR1cGFwaS9pbmZwYXJzZS5jLAorCSAgZGxscy9zZXR1cGFwaS9zZXR1cGFwaV9wcml2YXRlLmgsIGRsbHMvc2V0dXBhcGkvc2V0dXBjYWIuYywKKwkgIGRsbHMvc2V0dXBhcGkvc2V0dXB4MTYuaCwgaW5jbHVkZS9zZXR1cGFwaS5oOgorCVN0ZXZlbiBFZHdhcmRzIDxzdGV2ZW5fZWQ0MTUzQHlhaG9vLmNvbT4KKwktIFdpbjE2LzMyIGNsZWFudXAuCisJLSBGaXhlcyBmb3IgYnVpbGRpbmcgd2l0aCB0aGUgUFNESy4KKworCSogZGxscy9hZHZhcGkzMi9yZWdpc3RyeS5jLCBpbmNsdWRlL3dpbnJlZy5oOgorCURhbmllbCBNYXJtaWVyIDxkLm1hcm1pZXJAYmx1ZXdpbi5jaD4KKwlSZWdDcmVhdGVLZXlFeHtBLFd9OiBzdGF0ZSB0aGF0IGNsYXNzIHN0cmluZyBpcyBjb25zdGFudC4KKworCSogZGxscy9jb21jdGwzMi90YWIuYzogTWF4aW1lIEJlbGxlbmfpIDxtYXhpbWUuYmVsbGVuZ2VAbGFwb3N0ZS5uZXQ+CisJRml4IFRBQl9EZWxldGVJdGVtIGFuZCBUQUJfRGVsZXRlQWxsSXRlbXMgcmVncmVzc2lvbnMgaW50cm9kdWNlZCBieQorCXRoZSBsYXN0IFRBQl9JbnZhbGlkYXRlVGFiQXJlYSBjaGFuZ2VzLgorCUNvcnJlY3QgdGhlIGluZGVudGF0aW9uIGZvciB0aGVzZSBmdW5jdGlvbnMuCisKKwkqIGRsbHMvY29tY3RsMzIvc3RhdHVzLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlEb24ndCB1c2UgZnJlZSdkIHBvaW50ZXIgaW4gc3RhdHVzIGNvbnRyb2wgLSBmb3VuZCBieSBWYWxncmluZC4KKworCSogZGxscy9rZXJuZWwvdGVzdHMvZmlsZS5jOiBGZXJlbmMgV2FnbmVyIDx3ZmVyaUBhZmF2YW50LmVsdGUuaHU+CisJQWNjb3VudCBmb3IgdW5pcXVlIE5UNCBiZWhhdmlvdXIuCisJQmV0dGVyIGVycm9yIG1lc3NhZ2UuCisKKwkqIGZpbGVzL2RpcmVjdG9yeS5jOiBHZXJhbGQgUGZlaWZlciA8Z2VyYWxkQHBmZWlmZXIuY29tPgorCVJlbW92ZSB1bnVzZWQgdmFyaWFibGUgd2luZVcuCisKKwkqIHdpbmRvd3Mvd2luLmM6IFJlaW4gS2xhemVzIDxya2xhemVzQHhzNGFsbC5ubD4KKwlVc2UgdGhlIGV4dGVuZGVkIHdpbmRvdyBzdHlsZSBmb3IgdGhlIHByZXZpb3VzIHN0eWxlIGluIHRoZSBzdHlsZQorCWNoYW5naW5nL2NoYW5nZWQgbWVzc2FnZXMgaWYgV0lOX1NldFdpbmRvd0xvbmcgaXMgY2FsbGVkIHdpdGgKKwlHV0xfRVhTVFlMRS4KKworCSogZGxscy93aW5tbS9tbXN5c3RlbS5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCU9ubHkgcmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVxdWVzdGVkLgorCisyMDAzLTEwLTE2ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBBTk5PVU5DRSwgQ2hhbmdlTG9nLCBWRVJTSU9OLCBjb25maWd1cmU6IFJlbGVhc2UgMjAwMzEwMTYuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDIwMDMtMTAtMTYgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CiAKIAkqIGxpYnMvd2luZS93aW5lLmRlZjogRG9uJ3QgZXhwb3J0IHRoZSB3aW5lX3B0aHJlYWRfKiBmdW5jdGlvbnMuCmRpZmYgLS1naXQgYS9WRVJTSU9OIGIvVkVSU0lPTgppbmRleCAxZjRlMjM4Li45MGM5ZGZjIDEwMDY0NAotLS0gYS9WRVJTSU9OCisrKyBiL1ZFUlNJT04KQEAgLTEgKzEgQEAKLVdpbmUgdmVyc2lvbiAyMDAzMTAxNgorV2luZSB2ZXJzaW9uIDIwMDMxMTE4CmRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25maWd1cmUKaW5kZXggOWMyNjNlZC4uNWVjNmU4NiAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisrKyBiL2NvbmZpZ3VyZQpAQCAtMSw2ICsxLDYgQEAKICMhIC9iaW4vc2gKICMgR3Vlc3MgdmFsdWVzIGZvciBzeXN0ZW0tZGVwZW5kZW50IHZhcmlhYmxlcyBhbmQgY3JlYXRlIE1ha2VmaWxlcy4KLSMgR2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU3IGZvciBXaW5lIDIwMDMxMDE2LgorIyBHZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTcgZm9yIFdpbmUgMjAwMzExMTguCiAjCiAjIENvcHlyaWdodCAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyCiAjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpAQCAtMjY2LDggKzI2Niw4IEBACiAjIElkZW50aXR5IG9mIHRoaXMgcGFja2FnZS4KIFBBQ0tBR0VfTkFNRT0nV2luZScKIFBBQ0tBR0VfVEFSTkFNRT0nd2luZScKLVBBQ0tBR0VfVkVSU0lPTj0nMjAwMzEwMTYnCi1QQUNLQUdFX1NUUklORz0nV2luZSAyMDAzMTAxNicKK1BBQ0tBR0VfVkVSU0lPTj0nMjAwMzExMTgnCitQQUNLQUdFX1NUUklORz0nV2luZSAyMDAzMTExOCcKIFBBQ0tBR0VfQlVHUkVQT1JUPScnCiAKIGFjX3VuaXF1ZV9maWxlPSJzZXJ2ZXIvYXRvbS5jIgpAQCAtNzc3LDcgKzc3Nyw3IEBACiAgICMgT21pdCBzb21lIGludGVybmFsIG9yIG9ic29sZXRlIG9wdGlvbnMgdG8gbWFrZSB0aGUgbGlzdCBsZXNzIGltcG9zaW5nLgogICAjIFRoaXMgbWVzc2FnZSBpcyB0b28gbG9uZyB0byBiZSBhIHN0cmluZyBpbiB0aGUgQS9VWCAzLjEgc2guCiAgIGNhdCA8PF9BQ0VPRgotXGBjb25maWd1cmUnIGNvbmZpZ3VyZXMgV2luZSAyMDAzMTAxNiB0byBhZGFwdCB0byBtYW55IGtpbmRzIG9mIHN5c3RlbXMuCitcYGNvbmZpZ3VyZScgY29uZmlndXJlcyBXaW5lIDIwMDMxMTE4IHRvIGFkYXB0IHRvIG1hbnkga2luZHMgb2Ygc3lzdGVtcy4KIAogVXNhZ2U6ICQwIFtPUFRJT05dLi4uIFtWQVI9VkFMVUVdLi4uCiAKQEAgLTg0Miw3ICs4NDIsNyBAQAogCiBpZiB0ZXN0IC1uICIkYWNfaW5pdF9oZWxwIjsgdGhlbgogICBjYXNlICRhY19pbml0X2hlbHAgaW4KLSAgICAgc2hvcnQgfCByZWN1cnNpdmUgKSBlY2hvICJDb25maWd1cmF0aW9uIG9mIFdpbmUgMjAwMzEwMTY6Ijs7CisgICAgIHNob3J0IHwgcmVjdXJzaXZlICkgZWNobyAiQ29uZmlndXJhdGlvbiBvZiBXaW5lIDIwMDMxMTE4OiI7OwogICAgZXNhYwogICBjYXQgPDxcX0FDRU9GCiAKQEAgLTkzNSw3ICs5MzUsNyBAQAogdGVzdCAtbiAiJGFjX2luaXRfaGVscCIgJiYgZXhpdCAwCiBpZiAkYWNfaW5pdF92ZXJzaW9uOyB0aGVuCiAgIGNhdCA8PFxfQUNFT0YKLVdpbmUgY29uZmlndXJlIDIwMDMxMDE2CitXaW5lIGNvbmZpZ3VyZSAyMDAzMTExOAogZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU3CiAKIENvcHlyaWdodCAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyCkBAIC05NTAsNyArOTUwLDcgQEAKIFRoaXMgZmlsZSBjb250YWlucyBhbnkgbWVzc2FnZXMgcHJvZHVjZWQgYnkgY29tcGlsZXJzIHdoaWxlCiBydW5uaW5nIGNvbmZpZ3VyZSwgdG8gYWlkIGRlYnVnZ2luZyBpZiBjb25maWd1cmUgbWFrZXMgYSBtaXN0YWtlLgogCi1JdCB3YXMgY3JlYXRlZCBieSBXaW5lICRhc19tZSAyMDAzMTAxNiwgd2hpY2ggd2FzCitJdCB3YXMgY3JlYXRlZCBieSBXaW5lICRhc19tZSAyMDAzMTExOCwgd2hpY2ggd2FzCiBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTcuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKIAogICAkICQwICRACkBAIC0xNzUzOCw3ICsxNzUzOCw3IEBACiB9ID4mNQogY2F0ID4mNSA8PF9DU0VPRgogCi1UaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IFdpbmUgJGFzX21lIDIwMDMxMDE2LCB3aGljaCB3YXMKK1RoaXMgZmlsZSB3YXMgZXh0ZW5kZWQgYnkgV2luZSAkYXNfbWUgMjAwMzExMTgsIHdoaWNoIHdhcwogZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU3LiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCiAKICAgQ09ORklHX0ZJTEVTICAgID0gJENPTkZJR19GSUxFUwpAQCAtMTc2MDEsNyArMTc2MDEsNyBAQAogCiBjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRgogYWNfY3NfdmVyc2lvbj0iXFwKLVdpbmUgY29uZmlnLnN0YXR1cyAyMDAzMTAxNgorV2luZSBjb25maWcuc3RhdHVzIDIwMDMxMTE4CiBjb25maWd1cmVkIGJ5ICQwLCBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTcsCiAgIHdpdGggb3B0aW9ucyBcXCJgZWNobyAiJGFjX2NvbmZpZ3VyZV9hcmdzIiB8IHNlZCAncy9bXFwiIlxgXCRdL1xcXFwmL2cnYFxcIgogCg==