ZGlmZiAtLWdpdCBhL0FOTk9VTkNFIGIvQU5OT1VOQ0UKaW5kZXggMmZmMWVlMy4uY2JkMTJmNyAxMDA2NDQKLS0tIGEvQU5OT1VOQ0UKKysrIGIvQU5OT1VOQ0UKQEAgLTEsNCArMSw0IEBACi1UaGlzIGlzIHJlbGVhc2UgMjAwMjExMjUgb2YgV2luZSwgYSBmcmVlIGltcGxlbWVudGF0aW9uIG9mIFdpbmRvd3Mgb24KK1RoaXMgaXMgcmVsZWFzZSAyMDAyMTIxOSBvZiBXaW5lLCBhIGZyZWUgaW1wbGVtZW50YXRpb24gb2YgV2luZG93cyBvbgogVW5peC4gIFRoaXMgaXMgc3RpbGwgYSBkZXZlbG9wZXJzIG9ubHkgcmVsZWFzZS4gIFRoZXJlIGFyZSBtYW55IGJ1Z3MKIGFuZCB1bmltcGxlbWVudGVkIGZlYXR1cmVzLiAgTW9zdCBhcHBsaWNhdGlvbnMgc3RpbGwgZG8gbm90IHdvcmsKIGNvcnJlY3RseS4KQEAgLTYsMTEgKzYsMTEgQEAKIFBhdGNoZXMgc2hvdWxkIGJlIHN1Ym1pdHRlZCB0byAid2luZS1wYXRjaGVzQHdpbmVocS5jb20iLiAgUGxlYXNlIGRvbid0CiBmb3JnZXQgdG8gaW5jbHVkZSBhIENoYW5nZUxvZyBlbnRyeS4KIAotV0hBVCdTIE5FVyB3aXRoIFdpbmUtMjAwMjExMjU6IChzZWUgQ2hhbmdlTG9nIGZvciBkZXRhaWxzKQotCS0gRmluaXNoZWQgY29udmVyc2lvbiB0byBTVFJJQ1QgY29tcGlsYXRpb24gbW9kZS4KLQktIFdpbkhlbHAgcmV2aXZhbC4KLQktIENsaWVudC1zaWRlIGZvbnRzIHN1cHBvcnRlZCBldmVuIHdpdGhvdXQgUkVOREVSIGV4dGVuc2lvbi4KLQktIFJlZ3Jlc3Npb24gdGVzdHMgbm8gbG9uZ2VyIHJlcXVpcmUgUGVybC4KK1dIQVQnUyBORVcgd2l0aCBXaW5lLTIwMDIxMjE5OiAoc2VlIENoYW5nZUxvZyBmb3IgZGV0YWlscykKKwktIERMTCBsaW5raW5nIG5vdyBkb25lIHRocm91Z2ggaW1wb3J0IGxpYnJhcmllcy4KKwktIEEgY291cGxlIG9mIG5ldyB0b29scyB0byBtYWtlIFdpbmVsaWIgZWFzaWVyIHRvIHVzZS4KKwktIE1hbnkgRGlyZWN0M0QgaW1wcm92ZW1lbnRzLgorCS0gSW1wcm92ZWQgV2luZG93cyBjb21wYXRpYmlsaXR5IG9mIHRoZSByZWdyZXNzaW9uIHRlc3RzLgogCS0gTG90cyBvZiBidWcgZml4ZXMuCiAKIFNlZSB0aGUgUkVBRE1FIGZpbGUgaW4gdGhlIGRpc3RyaWJ1dGlvbiBmb3IgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucy4KQEAgLTE5LDEwICsxOSwxMCBAQAogdGhlIHJlbGVhc2UgaXMgYXZhaWxhYmxlIGF0IHRoZSBmdHAgc2l0ZXMuICBUaGUgc291cmNlcyB3aWxsIGJlIGF2YWlsYWJsZQogZnJvbSB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczoKIAotICBodHRwOi8vd3d3LmliaWJsaW8ub3JnL3B1Yi9MaW51eC9BTFBIQS93aW5lL2RldmVsb3BtZW50L1dpbmUtMjAwMjExMjUudGFyLmd6Ci0gIGZ0cDovL2Z0cC5pbmZvbWFnaWMuY29tL3B1Yi9taXJyb3JzL2xpbnV4L3N1bnNpdGUvQUxQSEEvd2luZS9kZXZlbG9wbWVudC9XaW5lLTIwMDIxMTI1LnRhci5negotICBmdHA6Ly9mdHAuZnUtYmVybGluLmRlL3VuaXgvbGludXgvbWlycm9ycy9zdW5zaXRlLnVuYy5lZHUvQUxQSEEvd2luZS9kZXZlbG9wbWVudC9XaW5lLTIwMDIxMTI1LnRhci5negotICBmdHA6Ly9vcmN1cy5wcm9nc29jLnV0cy5lZHUuYXUvcHViL1dpbmUvZGV2ZWxvcG1lbnQvV2luZS0yMDAyMTEyNS50YXIuZ3oKKyAgaHR0cDovL3d3dy5pYmlibGlvLm9yZy9wdWIvTGludXgvQUxQSEEvd2luZS9kZXZlbG9wbWVudC9XaW5lLTIwMDIxMjE5LnRhci5negorICBmdHA6Ly9mdHAuaW5mb21hZ2ljLmNvbS9wdWIvbWlycm9ycy9saW51eC9zdW5zaXRlL0FMUEhBL3dpbmUvZGV2ZWxvcG1lbnQvV2luZS0yMDAyMTIxOS50YXIuZ3oKKyAgZnRwOi8vZnRwLmZ1LWJlcmxpbi5kZS91bml4L2xpbnV4L21pcnJvcnMvc3Vuc2l0ZS51bmMuZWR1L0FMUEhBL3dpbmUvZGV2ZWxvcG1lbnQvV2luZS0yMDAyMTIxOS50YXIuZ3oKKyAgZnRwOi8vb3JjdXMucHJvZ3NvYy51dHMuZWR1LmF1L3B1Yi9XaW5lL2RldmVsb3BtZW50L1dpbmUtMjAwMjEyMTkudGFyLmd6CiAKIEl0IHNob3VsZCBhbHNvIGJlIGF2YWlsYWJsZSBmcm9tIGFueSBvdGhlciBzaXRlIHRoYXQgbWlycm9ycyBpYmlibGlvLm9yZy4KIFRoZXNlIGxvY2F0aW9ucyBhbHNvIGhvbGQgcHJlLWJ1aWx0IGRvY3VtZW50YXRpb24gcGFja2FnZXMgaW4gdmFyaW91cwpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDMxNzQ0MDkuLjZkN2Q5MzAgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsNCArMSwxNzkxIEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMDAyLTEyLTE5ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiB0b29scy93aW5lYnVpbGQvaW1wb3J0LmM6CisJRG9uJ3QgaWdub3JlIHNwcmludGYvc3NjYW5mIGltcG9ydHMsIHNlbWFudGljcyBhcmUgbm90IGV4YWN0bHkgdGhlCisJc2FtZSBvbiBXaW5kb3dzLgorCisJKiBkbGxzL21zdmNydC9zY2FuZi5oLCBkbGxzL21zdmNydC90ZXN0cy9zY2FuZi5jOgorCUhhbmRsZSB1bmtub3duIGZvcm1hdCBjaGFycyBjb3JyZWN0bHkgKHNwb3R0ZWQgYnkgR3n2cmd5ICdOb2cnCisJSmVuZXkpIGFuZCBhZGRlZCB0ZXN0IGZvciBpdC4KKwlSZW1vdmVkIHVubmVlZGVkIF9MXyBtYWNyby4KKworCSogZG9jdW1lbnRhdGlvbi9wYXRjaGVzLnNnbWw6CisJVG9ueSBMYW1icmVndHMgPHRvbnlfbGFtYnJlZ3RzQHRlbHVzcGxhbmV0Lm5ldD4KKwlNb3JlIGluZm9ybWF0aW9uIG9uIHN0eWxlIGFuZCBmb3JtYXQgb2YgcGF0Y2hlcy4KKworCSogTWFrZS5ydWxlcy5pbiwgbGlicmFyeS9NYWtlZmlsZS5pbiwgdW5pY29kZS9NYWtlZmlsZS5pbjoKKwlSZW1vdmVkIHVubmVjZXNzYXJ5IC0tYWRkLXN0ZGNhbGwtYWxpYXMgZmxhZy4KKworCSogdG9vbHMvLmN2c2lnbm9yZSwgdG9vbHMvTWFrZWZpbGUuaW4sIHRvb2xzL21pbmd3cmFwLmMsIHRvb2xzL3dpbmVnY2MuYzoKKwlSZW5hbWVkIG1pbmd3cmFwIHRvIHdpbmVnY2MuCisJUmVtb3ZlZCAtRFdJTkVfREVGSU5FX1dDSEFSX1QuCisKKwkqIHRvb2xzL3dwcC93cHAuYzogVGFwaW8gS2F1dHRvIDxlbGVrbmFkZXJAcGhuZXQuZmk+CisJRml4IGZvciBtaXNzaW5nIHBwZGVidWcgdmFyaWFibGUuCisKKwkqIGRsbHMvb2xlMzIvYmluZGN0eC5jLCBkbGxzL29sZTMyL2Z0bWFyc2hhbC5jLCBkbGxzL29sZTMyL2lmcy5jLAorCSAgZGxscy9vbGUzMi9tYXJzaGFsLmMsIGRsbHMvb2xlMzIvb2xlMTYuYywgZGxscy9vbGUzMi9vbGVwcm94eS5jLAorCSAgZGxscy9vbGUzMi9ycGMuYzoKKwlGaXhlZCBhIGZldyBwcm9ibGVtcyBjYXVzZWQgYnkgdGhlIG5ldyBvYmppZGwuaWRsLgorCisJKiBpbmNsdWRlL3dpbmdkaS5oOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCUFkZGVkIG1pc3NpbmcgR2V0V2luTWV0YUZpbGVCaXRzKCkgZGVjbGFyYXRpb24uCisKKwkqIGluY2x1ZGUvTWFrZWZpbGUuaW4sIGluY2x1ZGUvb2JqaWRsLmgsIGluY2x1ZGUvb2JqaWRsLmlkbCwKKwkgIGluY2x1ZGUvd2luZS9vYmpfY2hhbm5lbC5oLCBpbmNsdWRlL3dpbmUvb2JqX2NsaWVudHNlcnZlci5oLAorCSAgaW5jbHVkZS93aW5lL29ial9kYXRhb2JqZWN0LmgsIGluY2x1ZGUvd2luZS9vYmpfbWFyc2hhbC5oLAorCSAgaW5jbHVkZS93aW5lL29ial9taXNjLmgsIGluY2x1ZGUvd2luZS9vYmpfbW9uaWtlci5oLAorCSAgaW5jbHVkZS93aW5lL29ial9wcm9wZXJ0eXN0b3JhZ2UuaCwgaW5jbHVkZS93aW5lL29ial9zdG9yYWdlLmg6CisJT3ZlIEthYXZlbiA8b3Zla0B0cmFuc2dhbWluZy5jb20+CisJV3JvdGUgYSBuZXcgb2JqaWRsLmlkbCB0byByZXBsYWNlIGEgbnVtYmVyIG9mIGluY2x1ZGUvd2luZS9vYmpfKi5oCisJZmlsZXMuCisKKwkqIGRsbHMvY2FiaW5ldC9NYWtlZmlsZS5pbiwgZGxscy9jYWJpbmV0L2NhYmV4dHJhY3QuYywKKwkgIGRsbHMvY2FiaW5ldC9jYWJpbmV0LmgsIGRsbHMvY2FiaW5ldC9jYWJpbmV0LnNwZWMsCisJICBkbGxzL2NhYmluZXQvY2FiaW5ldF9tYWluLmMsIGRsbHMvY2FiaW5ldC9mZGkuYywKKwkgIGRsbHMvdXJsbW9uL01ha2VmaWxlLmluLCBkbGxzL3VybG1vbi91bW9uLmMsCisJICBkbGxzL3VybG1vbi91cmxtb24uc3BlYywgd2luZWRlZmF1bHQucmVnOgorCUdyZWcgVHVybmVyIDxnbXR1cm5lcjAwN0BhbWVyaXRlY2gubmV0PgorCS0gcG9ydCBjYWJleHRyYWN0IHRvIHdpbmUKKwktIGltcGxlbWVudCBjYWJpbmV0LmRsbC5FeHRyYWN0LCB1cmxtb24uZGxsLkV4dHJhY3QKKwktIGFkZCBTUDZhIHJlZ2lzdHJ5IGtleSB0byB3aW5lZGVmYXVsdC5yZWcKKworCSogZGxscy9udGRsbC90ZXN0cy9ydGxzdHIuYzogQXZvaWQgc29tZSB3YXJuaW5ncy4KKworCSogZGxscy94MTFkcnYva2V5Ym9hcmQuYzogTWF1cm8gQ2FydmFsaG8gQ2hlaGFiIDxtY2hlaGFiQGJydHVyYm8uY29tPgorCUluY2x1ZGVkIGEgc3BlY2lmaWMgQUJOVC0yIHNjYW4gYW5kIHZrZXkgdGFibGVzLCBhbmQgYW4gQUJOVC0yCisJa2V5Ym9hcmQgd2l0aCA8QUxUPjxHUj4ga2V5IGNvZGVzLgorCisJKiBpbmNsdWRlL3dpbmUvb2JqX21pc2MuaCwgaW5jbHVkZS93aW5lL29ial9zdG9yYWdlLmgsCisJICBpbmNsdWRlL3d0eXBlcy5oLCBpbmNsdWRlL3d0eXBlcy5pZGw6CisJT3ZlIEthYXZlbiA8b3Zla0B0cmFuc2dhbWluZy5jb20+CisJTW92ZWQgYSBjb3VwbGUgb2YgdHlwZXMgZnJvbSBpbmNsdWRlL3dpbmUvb2JqXyouaCB0bworCWluY2x1ZGUvd3R5cGVzLmlkbC4KKworCSogaW5jbHVkZS9jb21tY3RybC5oOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCUZpeCBkZWZpbmVzIGZvciBMVl9JVEVNLCBMVl9ESVNQSU5GTywgYW5kIExWX0ZJTkRJTkZPLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9mb3JtYXRfbXNnLmM6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCU9uIFdpbjl4ICJoaVxuIiBnaXZlcyB1cyAiaGlcclxuIi4KKworCSogaW5jbHVkZS93aW5udC5oOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCUFkZCBkZWZpbml0aW9ucyBmb3IgTltXXVBTVFIuCisJQWRkIGEgYnVuY2ggb2YgU0VfKiBkZWZpbml0aW9ucy4KKworCSogZGxscy9rZXJuZWwvdGVzdHMvbG9jYWxlLmM6IENocmlzIE1vcmdhbiA8Y21vcmdhbkBhbHVtLndwaS5lZHU+CisJQWRkIGFkZGl0aW9uYWwgdGVzdHMgZm9yIEdldFRpbWVGb3JtYXQoKSBhbmQgR2V0RGF0ZUZvcm1hdCgpLgorCVVuY29tbWVudCB3aW5lX3RvZG8gdGVzdHMgdGhhdCBub3cgc3VjY2VlZCB3aXRoIGZpeGVzIHRvCisJR2V0VGltZS9EYXRlRm9ybWF0KCkuCisKKwkqIGluY2x1ZGUvd2lubmxzLmgsIG9sZS9vbGUybmxzLmM6IENocmlzIE1vcmdhbiA8Y21vcmdhbkBhbHVtLndwaS5lZHU+CisJR2V0RGF0ZUZvcm1hdCgpIGFuZCBHZXRUaW1lRm9ybWF0KCkgc2hvdWxkIGNoZWNrIHRoZSB2YWxpZGl0eSBvZiB0aGUKKwl0aW1lL2RhdGUgc3RydWN0dXJlIGl0IGlzIHByb2Nlc3NpbmcuCisJQWRkIGNvbW1lbnRzIHRvIGRlc2NyaWJlIGZsYWdzIGJlaGF2aW9yLgorCUFkZCBzdXBwb3J0IGZvciBUSU1FX0ZPUkNFMjRIT1VSRk9STUFULCBUSU1FX05PTUlOVVRFU09SU0VDT05EUywKKwlUSU1FX05PU0VDT05EUyBhbmQgVElNRV9OT1RJTUVNQVJLRVIuCisJQWRkIGNoZWNrIGluIEdldERhdGVGb3JtYXRXKCkgZm9yIGludmFsaWQgZmxhZyBjb21iaW5hdGlvbnMuCisJQWRkZWQgc29tZSBtaXNzaW5nIERBVEVfKiBkZWZpbmVzIHRvIHdpbm5scy5oLgorCUJlaGF2aW9yIHZlcmlmaWVkIGFnYWluc3QgTlQ0LjAuCisKKwkqIGRsbHMvbXN2Y3J0L2N0eXBlLmMsIGRsbHMvbXN2Y3J0L2RhdGEuYywgZGxscy9tc3ZjcnQvZGlyLmMsCisJICBkbGxzL21zdmNydC9lbnZpcm9uLmMsIGRsbHMvbXN2Y3J0L2ZpbGUuYywgZGxscy9tc3ZjcnQvbWJjcy5jLAorCSAgZGxscy9tc3ZjcnQvbXN2Y3J0LmgsIGRsbHMvbXN2Y3J0L3NjYW5mLmMsIGRsbHMvbXN2Y3J0L3NjYW5mLmgsCisJICBkbGxzL21zdmNydC93Y3MuYzoKKwlVc2UgTVNWQ1JUX3djaGFyX3QgaW5zdGVhZCBvZiBXQ0hBUiBzbyB0aGF0IHRoZSBpbXBsZW1lbnRhdGlvbiBtYXRjaGVzCisJdGhlIHByb3RvdHlwZXMuCisKKwkqIHRvb2xzL3dtYy9tY3kueTogQXZvaWQgcmVmZXJlbmNpbmcgcG90ZW50aWFsbHkgZnJlZWQgdG9rZW4uCisKKwkqIGRsbHMvc2hsd2FwaS9wYXRoLmMsIGRsbHMvc2hsd2FwaS9zaGx3YXBpLnNwZWMsIGRsbHMvc2hsd2FwaS91cmwuYzoKKwlSb2JlcnQgU2hlYXJtYW4gPFIuSi5TaGVhcm1hbkB3YXJ3aWNrLmFjLnVrPgorCUltcGxlbWVudGVkIFVybENyZWF0ZUZyb21QYXRoW0FXXSBhbmQgc2xpZ2h0bHkgcmVsYXRlZAorCVBhdGhDcmVhdGVGcm9tRmlsZUEuCisKKwkqIGRsbHMvYWR2YXBpMzIvYWR2YXBpMzIuc3BlYywgZGxscy9hZHZhcGkzMi9zZWN1cml0eS5jOgorCUNocmlzIE1vcmdhbiA8Y21vcmdhbkBhbHVtLndwaS5lZHU+CisJU3R1YiBmb3IgR2V0U2VjdXJpdHlJbmZvRXhXKCkuCisKKwkqIGluY2x1ZGUvTWFrZWZpbGUuaW4sIGluY2x1ZGUvYWNjY3RybC5oOiBBZGRlZCBhY2NjdHJsLmggaGVhZGVyLgorCisJKiB0b29scy93cmMvcGFyc2VyLnksIHRvb2xzL3dyYy93cmMuYywgdG9vbHMvd3JjL3dyYy5oOgorCURpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJUmVtb3ZlIHRoZSAtTCB3cmMgb3B0aW9uLCBhcyBubyBhdXRvbWF0aWMgZnVkZ2luZyBvZiBmaWxlbmFtZXMgY2FuCisJZXZlciBiZSBjb3JyZWN0LgorCisJKiBpbmNsdWRlL3dpbnVzZXIuaCwgd2luZG93cy9wYWludGluZy5jOgorCURpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJVXBkYXRlV2luZG93IHJldHVybnMgYSBCT09MZWFuLgorCisJKiBkbGxzL2RkcmF3L2QzZHRleHR1cmUuYywgZGxscy9kZHJhdy9kZHJhd19wcml2YXRlLmgsCisJICBkbGxzL2RkcmF3L2hlbHBlci5jOgorCUxpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJQWRkZWQgc3VyZmFjZSBkdW1waW5nIGZ1bmN0aW9uIGZvciBkZWJ1Zy4KKworCSogZGxscy9rZXJuZWwva2VybmVsMzIuc3BlYywgZGxscy9rZXJuZWwvdGltZS5jOgorCU1hcnRpbiBGdWNocyA8bWFydGluLWZ1Y2hzQGdteC5uZXQ+CisJSW1wbGVtZW50YXRpb24gb2YgU3lzdGVtVGltZVRvVHpTcGVjaWZpY0xvY2FsVGltZSgpIGFuZAorCVR6U3BlY2lmaWNMb2NhbFRpbWVUb1N5c3RlbVRpbWUoKS4KKworCSogZGxscy9zaGVsbDMyL3NoZWxsMzJfbWFpbi5oLCBkbGxzL3NoZWxsMzIvc2hmbGRyX2ZzLmMsCisJICBkbGxzL3NoZWxsMzIvc2hsZmlsZW9wLmMsIGRsbHMvc2hlbGwzMi9zaHJlcy5yYywKKwkgIGRsbHMvc2hlbGwzMi9zaHJlc2RlZi5oOgorCVJvbGYgS2FsYmVybWF0dGVyIDxyb2xmLmthbGJlcm1hdHRlckBjaXRlbmcuY29tPgorCUludHJvZHVjZWQgc29tZSBkZWNsYXJhdGlvbnMgYW5kIHJlc291cmNlcyBuZWVkZWQgZm9yIGEgbW9yZSBjb21wbGV0ZQorCWltcGxlbWVudGF0aW9uIG9mIFNIRmlsZU9wZXJhdGlvbi4KKworCSogb2xlL29sZTJubHMuYzogQWxiZXJ0byBNYXNzYXJpIDxhbGJ5QGV4bG4uY29tPgorCUNvbXBhcmVTdHJpbmdXIHNob3VsZCByZXR1cm4gMCB3aGVuIG9uZSBvZiB0aGUgcHJvdmlkZWQgc3RyaW5ncyBpcyBhCisJTlVMTCBwb2ludGVyLgorCisJKiBkbGxzL3VzZXIvZGRlL2NsaWVudC5jLCBkbGxzL3VzZXIvZGRlL21pc2MuYywgaW5jbHVkZS9kZGVtbC5oOgorCUxQQ09OVkNPTlRFWFQgc2hvdWxkIGJlIFBDT05WQ09OVEVYVCAoc3BvdHRlZCBieSBEaW1pdHJpZSBPLiBQYXVuKS4KKwlTYW1lIGZvciBMUEhTWlBBSVIgYW5kIExQQ09OVklORk8uCisKKwkqIGRsbHMvb2xlMzIvYW50aW1vbmlrZXIuYywgZGxscy9vbGUzMi9jb21wb3NpdGVtb25pa2VyLmMsCisJICBkbGxzL29sZTMyL2ZpbGVtb25pa2VyLmMsIGRsbHMvb2xlMzIvaXRlbW1vbmlrZXIuYywKKwkgIGRsbHMvb2xlMzIvbW9uaWtlci5oLCBpbmNsdWRlL3dpbmUvb2JqX21vbmlrZXIuaDoKKwlPdmUgS2FhdmVuIDxvdmVrQHRyYW5zZ2FtaW5nLmNvbT4KKwlNb3ZlZCBzb21lIGRlZmluaXRpb25zIGZyb20gaW5jbHVkZS93aW5lL29ial9tb25pa2VyLmggdG8KKwlkbGxzL29sZTMyL21vbmlrZXIuaC4KKworCSogZG9jdW1lbnRhdGlvbi93aW5lLm1hbi5pbjoKKwlVd2UgQm9ubmVzIDxib25AZWxla3Ryb24uaWtwLnBoeXNpay50dS1kYXJtc3RhZHQuZGU+CisJRml4ZWQgdHlwby4KKworCSogZGxscy9uZXRhcGkzMi90ZXN0cy9hY2Nlc3MuYywgZGxscy9uZXRhcGkzMi90ZXN0cy9hcGlidWYuYywKKwkgIGRsbHMvbmV0YXBpMzIvdGVzdHMvd2tzdGEuYzoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlPbiBXaW45eCBuZXRhcGkzMi5kbGwgZG9lcyBub3QgZXhwb3J0IGEgc2luZ2xlIEFQSSBzbyB3ZSBkbyBhCisJR2V0UHJvY0FkZHJlc3MgZm9yIGVhY2ggb2YgdGhlbSBhbmQgc2tpcCB0aGUgdGVzdHMgd2hlbiBuZWNlc3NhcnkuCisJT24gV2luOXggR2V0VXNlck5hbWVXIGFuZCBHZXRDb21wdXRlck5hbWVXIGFyZSBzdHVicy4KKwlJbXByb3ZlIGVycm9yIHJlcG9ydGluZyBpbiBhY2Nlc3MuYy4KKworCSogZGxscy9rZXJuZWwvdGVzdHMvYWxsb2MuYywgaW5jbHVkZS93aW5iYXNlLmg6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJRGVjbGFyZSBMb2NhbERpc2NhcmQgYW5kIEdsb2JhbERpc2NhcmQgKHVzZWQgYnkga2VybmVsL3Rlc3RzL2FsbG9jLmMpCisJUmVtb3ZlIHRoZSBESVNDQVJEX0RFRklORUQgI2lmZGVmcy4KKwlSZW1vdmUgYW5vdGhlciBkb3VibGUgSGVhcEZyZWUgKGNhdXNlZCBhbiBhc3NlcnQgd2hlbiBydW4gb24gTlQ0KSwKKwlhbmQgYSBIZWFwU2l6ZSBvbiBhIGZyZWVkIGhlYXAgKHRoZSB0ZXN0IGZhaWxlZCBvbiBXaW45eCkuCisJRml4IHRoZSBMb2NhbExvY2svTG9jYWxVbmxvY2sgdGVzdHMgKHRoZSBtZW1vcnkgbXVzdCBiZSBhbGxvY2F0ZWQKKwl3aXRoIExNRU1fTU9WRUFCTEUgb3RoZXJ3aXNlIHRoZSB0ZXN0cyBkb24ndCBtYWtlIHNlbnNlKS4KKwlSZW1vdmUgbWFueSB1bm5lY2Vzc2FyeSBjYXN0cy4KKwlJbXByb3ZlZCBlcnJvciByZXBvcnRpbmcgc29tZXdoYXQuCisKKzIwMDItMTItMTggIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL2Zvcm1hdF9tc2cuYzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJSW1wcm92ZSBlcnJvciByZXBvcnRpbmcuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL3BhdGguYzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJQWxsIGZpbGVuYW1lcyBjb250YWluaW5nIGEgIjoiIGFyZSBpbnZhbGlkIG9uIFdpbjl4IGFuZCAyMDAwIGJ1dCBhcmUKKwl2YWxpZCBvbiBOVDQgLT4gcmVtb3ZlIHRoZXNlIHRlc3RzLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9wcm9jZXNzLmM6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCSNpZmRlZi1vdXQgZGVjb2RlVyBzaW5jZSBpdCBpcyBub3QgdXNlZCB5ZXQuCisJRml4IHRoZSBscERlc2t0b3AgYW5kIGxwVGl0bGUgY2hlY2tzIG9uIE5UIHBsYXRmb3Jtcy4KKworCSogZGxscy91c2VyL3Rlc3RzL3dzcHJpbnRmLmM6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCXdzcHJpbnRmVyBpcyBub3Qgc3VwcG9ydGVkIG9uIFdpbjl4IHBsYXRmb3Jtcy4KKwl3c3ByaW50ZntBLFd9VGVzdCBzaG91bGQgYmUgdm9pZC4KKwlJbXByb3ZlIGVycm9yIHJlcG9ydGluZy4KKwlSZW1vdmUgdW5uZWNlc3NhcnkgI2luY2x1ZGVzLgorCisJKiBkbGxzL3NobHdhcGkvdGVzdHMvY2xpc3QuYywgZGxscy9zaGx3YXBpL3Rlc3RzL3NocmVnLmM6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJRml4IHNpZ25lZC91bnNpZ25lZCB3YXJuaW5ncy4KKworCSogaW5jbHVkZS93dHlwZXMuaCwgaW5jbHVkZS93dHlwZXMuaWRsOgorCU92ZSBLYWF2ZW4gPG92ZWtAdHJhbnNnYW1pbmcuY29tPgorCVVucXVvdGVkIHNvbWUgMTYtYml0IHR5cGVzLCBzbyB0aGUgSURMIGNvbXBpbGVyIGNhbiB1c2UgdGhlbS4KKworCSogaW5jbHVkZS9tc3ZjcnQvc3RyaW5nLmg6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJTWFwIHN0cmNhc2VjbXAgdG8gX3N0cmljbXAuCisKKwkqIGluY2x1ZGUvb2JqYmFzZS5oLCBpbmNsdWRlL3dpbmUvb2JqX2NsaWVudHNlcnZlci5oLAorCSAgaW5jbHVkZS93aW5lL29ial9kYXRhb2JqZWN0LmgsIGluY2x1ZGUvd2luZS9vYmpfbWFyc2hhbC5oLAorCSAgaW5jbHVkZS93aW5lL29ial9taXNjLmgsIGluY2x1ZGUvd2luZS9vYmpfbW9uaWtlci5oLAorCSAgaW5jbHVkZS93aW5lL29ial9zdG9yYWdlLmg6CisJT3ZlIEthYXZlbiA8b3Zla0B0cmFuc2dhbWluZy5jb20+CisJTW92ZWQgQ09NIEFQSSBwcm90b3R5cGVzIHRvIG9iamJhc2UuaCwgZnJvbSB3aW5lL29ial8qLmguCisKKwkqIGRsbHMvb2xlMzIvb2xlMi5jLCBkbGxzL3NoZWxsMzIvZGF0YW9iamVjdC5jLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsMzJfbWFpbi5oLCBvbGUvdXVpZC5jOgorCU92ZSBLYWF2ZW4gPG92ZWtAdHJhbnNnYW1pbmcuY29tPgorCVJlbW92ZWQgYSBmZXcgbW9yZSBpbmNsdXNpb25zIG9mIGRlcHJlY2F0ZWQgd2luZS9vYmpfKi5oIGhlYWRlcnMuCisKKwkqIGRsbHMvY3J0ZGxsL01ha2VmaWxlLmluLCBkbGxzL2NydGRsbC9jcnRkbGxfbWFpbi5jOgorCU1hZGUgY3J0ZGxsIGEgbm9ybWFsIHVzZXIgb2YgbXN2Y3J0IGJ5IHNldHRpbmcgdGhlIHJpZ2h0IGluY2x1ZGUKKwlwYXRoLgorCisJKiBkbGxzL21zdmNydC9maWxlLmMsIGRsbHMvbXN2Y3J0L21pc2MuYywgZGxscy9tc3ZjcnQvc2NhbmYuYywKKwkgIGluY2x1ZGUvbXN2Y3J0L2N0eXBlLmgsIGluY2x1ZGUvbXN2Y3J0L2RpcmVjdC5oLAorCSAgaW5jbHVkZS9tc3ZjcnQvZG9zLmgsIGluY2x1ZGUvbXN2Y3J0L2VoLmgsIGluY2x1ZGUvbXN2Y3J0L2Vycm5vLmgsCisJICBpbmNsdWRlL21zdmNydC9pby5oLCBpbmNsdWRlL21zdmNydC9sb2NhbGUuaCwKKwkgIGluY2x1ZGUvbXN2Y3J0L21hbGxvYy5oLCBpbmNsdWRlL21zdmNydC9tYmN0eXBlLmgsCisJICBpbmNsdWRlL21zdmNydC9tYnN0cmluZy5oLCBpbmNsdWRlL21zdmNydC9wcm9jZXNzLmgsCisJICBpbmNsdWRlL21zdmNydC9zZWFyY2guaCwgaW5jbHVkZS9tc3ZjcnQvc2V0am1wLmgsCisJICBpbmNsdWRlL21zdmNydC9zdGRkZWYuaCwgaW5jbHVkZS9tc3ZjcnQvc3RkaW8uaCwKKwkgIGluY2x1ZGUvbXN2Y3J0L3N0ZGxpYi5oLCBpbmNsdWRlL21zdmNydC9zdHJpbmcuaCwKKwkgIGluY2x1ZGUvbXN2Y3J0L3N5cy9zdGF0LmgsIGluY2x1ZGUvbXN2Y3J0L3N5cy90aW1lYi5oLAorCSAgaW5jbHVkZS9tc3ZjcnQvc3lzL3R5cGVzLmgsIGluY2x1ZGUvbXN2Y3J0L3N5cy91dGltZS5oLAorCSAgaW5jbHVkZS9tc3ZjcnQvdGltZS5oLCBpbmNsdWRlL21zdmNydC93Y2hhci5oLAorCSAgaW5jbHVkZS9tc3ZjcnQvd2N0eXBlLmgsIGluY2x1ZGUvd2lubnQuaDoKKwlBdm9pZCBpbmNsdWRpbmcgb3RoZXIgaGVhZGVycyBmcm9tIHRoZSBtc3ZjcnQgaGVhZGVycywgZHVwbGljYXRlIHNvbWUKKwlkZWZpbml0aW9ucyBpbnN0ZWFkIGxpa2UgV2luZG93cyBkb2VzLgorCUFsd2F5cyBkZWZpbmUgd2NoYXJfdCAoc3VnZ2VzdGVkIGJ5IERpbWl0cmllIE8uIFBhdW4pLCBhbmQgdXNlIHdjaGFyX3QKKwlldmVyeXdoZXJlIGluc3RlYWQgb2YgV0NIQVIgdG8gYXZvaWQgZGVwZW5kaW5nIG9uIFdpbmRvd3MgaGVhZGVycy4KKworCSogZGxscy9kM2Q4L2QzZDhfcHJpdmF0ZS5oLCBkbGxzL2QzZDgvZGV2aWNlLmMsIGRsbHMvZDNkOC9kaXJlY3R4LmMsCisJICBkbGxzL2QzZDgvc2hhZGVyLmMsIGRsbHMvZDNkOC90ZXh0dXJlLmMsIGRsbHMvZDNkOC92b2x1bWV0ZXh0dXJlLmM6CisJUmFwaGFlbCBKdW5xdWVpcmEgPGZlbml4QGNsdWItaW50ZXJuZXQuZnI+CisJIC0gc29tZSBmaXhlcyBpbiBDcmVhdGVEZXZpY2UgaW5pdAorCSAtIHZlcnRleCBzaGFkZXIgZGVjbGFyYXRpb24gcGFyc2VyICh3aXRoIG91dHB1dCBkdW1wKSBhbmQKKwkgICBpbnRlcnByZXRhdGlvbiAoZ2VuZXJhdGUgdGhlIEZWRiBkZXNjcmlwdG9yIGZvciBwcm9ncmFtIGlucHV0KQorCSAtIHZlcnRleCBzaGFkZXIgcHJvZ3JhbSBwYXJzZXIgKHdpdGggb3V0cHV0IGR1bXApCisJIC0gc29mdHdhcmUgdmVydGV4IHNoYWRlciBwcm9ncmFtIGVtdWxhdGlvbgorCisJKiBpbmNsdWRlL2QzZDh0eXBlcy5oOiBSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwlBZGRlZCBzb21lIG5lY2Vzc2FyeSBkZWZpbml0aW9ucyBmb3IgRDNEOCBWZXJ0ZXggYW5kIFBpeGVsIHNoYWRlcgorCXN1cHBvcnQuCisKKwkqIHNlcnZlci9yZWdpc3RyeS5jOiBCaWxsIE1lZGxhbmQgPG1lZGJpMDFAYWNjcGFjLmNvbT4KKwlJZiBhIC5yZWcgZnVuY3Rpb24gaXMgYWNjZXNzZWQgdGhyb3VnaCBhIHN5bWxpbmsgdGhlbiB3cml0ZSBkaXJlY3RseQorCXRvIHRoZSBmaWxlIHJhdGhlciB0aGFuIHJlcGxhY2luZyBpdCB3aXRoIGEgdGVtcCBmaWxlLiAgVGhpcyBwcmVzZXJ2ZXMKKwlvd25lcnNoaXAgYW5kIHBlcm1pc3Npb25zLgorCisJKiBkbGxzL250ZGxsL3RpbWUuYywgaW5jbHVkZS93aW50ZXJubC5oOgorCUltcGxlbWVudGVkIFJ0bFRpbWVUb0VsYXBzZWRUaW1lRmllbGRzLgorCisJKiBkbGxzL2RkcmF3L2QzZHRleHR1cmUuYzogTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwlGaXggaW4gYW5vdGhlciBwbGFjZSBpbiB0aGUgY29kZSBjb21wdXRpbmcgdGhlIG1lbW9yeSB1c2FnZS4KKworCSogZG9jdW1lbnRhdGlvbi9jb25maWd1cmluZy5zZ21sLCBkb2N1bWVudGF0aW9uL3dpbmUuY29uZi5tYW4sCisJICBkb2N1bWVudGF0aW9uL3dpbmUubWFuLmluOgorCVV3ZSBCb25uZXMgPGJvbkBlbGVrdHJvbi5pa3AucGh5c2lrLnR1LWRhcm1zdGFkdC5kZT4KKwlQdXJnZSB0cmFjZXMgb2YgdGhlIG9sZCByZWxheSBkZWJ1ZyBtZWNoYW5pc20gYW5kIGRvY3VtZW50IG5ldworCW1lY2hhbmlzbSBiZXR0ZXIuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL2F0b20uYywgZGxscy9rZXJuZWwvdGVzdHMvZGlyZWN0b3J5LmMsCisJICBkbGxzL2tlcm5lbC90ZXN0cy9lbnZpcm9uLmMsIGRsbHMva2VybmVsL3Rlc3RzL2ZpbGUuYywKKwkgIGRsbHMva2VybmVsL3Rlc3RzL3BhdGguYywgZGxscy9rZXJuZWwvdGVzdHMvcHJvY2Vzcy5jOgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCVVzZSBzdHJsZW4gb3IgbHN0cmxlbkEgYXMgYXBwcm9wcmlhdGUgdG8gYXZvaWQgc2lnbmVkL3Vuc2lnbmVkCisJd2FybmluZ3MuCisKKwkqIHRvb2xzL3dpbmFwaS9tc3ZjbWFrZXI6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCVRoZSBsaW5rIGNvbW1hbmQgc3BlY2lmaWVzIHdoaWNoIHZlcnNpb24gb2YgdGhlIEMgbGlicmFyeSB0byBsaW5rIHdpdGgKKwkoc2VlIC9NW1REXWQ/IG9wdGlvbikuIFNvIHdlIG11c3Qgbm90IGV4cGxpY2l0bHkgbGluayB3aXRoCisJJ21zdmNydC5saWInLiBGaXhlcyB0aGUgbXN2Y3J0IHRlc3QgY3Jhc2hlcy4KKworCSogaW5jbHVkZS9ycGMuaCwgaW5jbHVkZS9ycGNkY2UuaDogT3ZlIEthYXZlbiA8b3Zla0B0cmFuc2dhbWluZy5jb20+CisJTW92ZWQgVVVJRCB0eXBlIHRvIHJwY2RjZS5oLCBhcyBpbiB0aGUgTVMgUlBDIGhlYWRlcnMuCisJUmVtb3ZlZCByZWR1bmRhbnQgcHJvdG90eXBlLgorCisyMDAyLTEyLTE3ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBsb2FkZXIvbmUvc2VnbWVudC5jLCBsb2FkZXIvcGVfaW1hZ2UuYzogRGVidWcgY2hhbm5lbHMgY2xlYW51cC4KKworCSogZGxscy9rZXJuZWwva2VybmVsMzIuc3BlYywgZGxscy9udGRsbC9NYWtlZmlsZS5pbiwgaW5jbHVkZS90aHJlYWQuaCwKKwkgIGluY2x1ZGUvd2luYmFzZS5oLCBpbmNsdWRlL3dpbm50LmgsIHNjaGVkdWxlci9maWJlci5jOgorCUltcGxlbWVudGVkIHRoZSBGaWJlciogZnVuY3Rpb25zICh3aXRoIHRoZSBoZWxwIG9mIEh1dyBEYXZpZXMpLgorCisJKiBpbmNsdWRlL3Vua253bi5oLCB0b29scy93aWRsL2hlYWRlci5jOgorCUZpeCB0aGUgdHlwZSBvZiB0aGUgVGhpcyBwb2ludGVyIGluIHRoZSB2dGJsIGZ1bmN0aW9ucyBpbmhlcml0ZWQgZnJvbQorCXRoZSBiYXNlIGNsYXNzLgorCisJKiBkbGxzL3dpbmluZXQvdGVzdHMvaHR0cC5jOiBGaXhlZCB3YXJuaW5ncy4KKworCSogc2VydmVyL2hvb2suYzogQWxiZXJ0byBNYXNzYXJpIDxhbGJ5QGV4bG4uY29tPgorCVRoZSBoYW5kbGVyIGZvciB0aGUgc2VydmVyIG1lc3NhZ2UgZ2V0X25leHRfaG9vayB3YXMgcmV0dXJuaW5nIHRoZQorCW1vZHVsZSBuYW1lIG9mIHRoZSBjdXJyZW50IGhvb2ssIGluc3RlYWQgb2YgdGhlIG5leHQgb25lLgorCisJKiBkbGxzL3dpbnNwb29sL2luZm8uYywgZGxscy93aW5zcG9vbC93aW5zcG9vbC5kcnYuc3BlYzoKKwlEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCUFkZGVkIHN0dWJzIGZvciB7U3RhcnQsRW5kfXtEb2MsUGFnZX1QcmludGVyLgorCisJKiBjb250cm9scy9zY3JvbGwuYzogRHVhbmUgQ2xhcmsgPGRjbGFya0Bha2FtYWlsLmNvbT4KKwlOZWVkIHRvIGluaXRpYWxpemUgdHJhY2tpbmcgdmFsdWUgb24gbW91c2Vkb3duLgorCisJKiBkbGxzL21zdmNydC9maWxlLmMsIGRsbHMvbXN2Y3J0L3Rlc3RzLy5jdnNpZ25vcmUsCisJICBkbGxzL21zdmNydC90ZXN0cy9NYWtlZmlsZS5pbiwgZGxscy9tc3ZjcnQvdGVzdHMvZmlsZS5jOgorCUJpbGwgQ3VycmllIDxiaWxsQHRhbml3aGEub3JnPgorCWZkb3BlbjogZG9uJ3QgcmV3aW5kIHRoZSBmaWxlIGFmdGVyIGNyZWF0aW5nIHRoZSBGSUxFKiBoYW5kbGUuIEFkZGVkCisJdW5pdCB0ZXN0IGZvciB0aGF0LgorCisJKiBjb250cm9scy9tZW51LmM6IEFsYmVydG8gTWFzc2FyaSA8YWxieUBleGxuLmNvbT4KKwlTZXQgdGhlIE9EU19ESVNBQkxFRCBiaXQgd2hlbiB0aGUgaXRlbSBpcyBncmF5ZWQuCisKKwkqIHRvb2xzL3dpbmV3cmFwLmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJQmV0dGVyIGhhbmRsaW5nIG9mIGVycm9ycyB3aGlsZSBmb3JrL2V4ZWNpbmcuCisJQWRkIHZlcmJvc2UgY29tbWFuZCBsaW5lIHN3aXRjaC4KKwlBZGQgLXogZGVmcyBhdCBsaW5rIHN0YWdlLCB0byBjYXRjaCBtaXNzaW5nIHN5bWJvbHMuCisKKwkqIHRvb2xzL21pbmd3cmFwLmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJUGFzcyB0aGUgZ3VpIGZsYWcgdG8gd2luZXdyYXAgaWYgd2UncmUgbGlua2luZyBhIEdVSSBhcHAuCisKKwkqIGRvY3VtZW50YXRpb24vY29tcGlsaW5nLnNnbWwsIGRvY3VtZW50YXRpb24vZ2V0dGluZy5zZ21sOgorCUJpbGwgTWVkbGFuZCA8YmlsbG1lZGxhbmRAbWVyY3VyeXNwZWVkLmNvbT4KKwlNb3ZlIENWUyBkb2N1IGZyb20gVXNlciBHdWlkZSB0byBEZXZlbCBHdWlkZS4KKworCSogZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jOiBMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCUlmIHdlIHN1cHBvcnQgJ25vbi1uYXRpdmUnIHRleHR1cmUgZm9ybWF0LCBhZHZlcnRpc2UgaXQuCisKKwkqIGRsbHMvZDNkOC9kZXZpY2UuYzogSmFzb24gRWRtZWFkZXMgPHVzQHRoZS1lZG1lYWRlcy5kZW1vbi5jby51az4KKwlUaGUgc2ltcGxlIGJpdHMgb2YgZm9nLgorCisJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGxscy9NYWtlZmlsZS5pbiwgZGxscy93aW50YWIzMi8uY3ZzaWdub3JlLAorCSAgZGxscy93aW50YWIzMi9NYWtlZmlsZS5pbiwgZGxscy93aW50YWIzMi9jb250ZXh0LmMsCisJICBkbGxzL3dpbnRhYjMyL21hbmFnZXIuYywgZGxscy93aW50YWIzMi93aW50YWIuc3BlYywKKwkgIGRsbHMvd2ludGFiMzIvd2ludGFiMTYuYywgZGxscy93aW50YWIzMi93aW50YWIzMi5zcGVjLAorCSAgaW5jbHVkZS9NYWtlZmlsZS5pbiwgaW5jbHVkZS9wa3RkZWYuaCwgaW5jbHVkZS93aW50YWIuaCwKKwkgIGluY2x1ZGUvd2ludGFieC5oOgorCVBhdHJpayBTdHJpZHZhbGwgPHBzQGxlaXNzbmVyLnNlPgorCUFkZGVkIHN0dWJzIGZvciBXSU5UQUJ7LDMyfS5ETEwgKHVzZWQgYnkgbWFueSBpbXBvcnRhbnQgZHJhd2luZworCWFwcGxpY2F0aW9ucyBmb3Igc3VwcG9ydGluZyB0YWJsZXRzKS4KKworCSogZGxscy9vbGVhdXQzMi9kaXNwYXRjaC5jOgorCVJvYmVydCBTaGVhcm1hbiA8Ui5KLlNoZWFybWFuQHdhcndpY2suYWMudWs+CisJQWRkIHN0YW5kYXJkIGRpc3BhdGNoIGltcGxlbWVudGF0aW9uIChDcmVhdGVTdGREaXNwYXRjaCkuCisKKwkqIGluY2x1ZGUvd2luZS90ZXN0Lmg6IFRvbnkgTGFtYnJlZ3RzIDx0b255X2xhbWJyZWd0c0B0ZWx1c3BsYW5ldC5uZXQ+CisJRGlyZWN0IHRoZSBvdXRwdXQgb2YgdGhlIHRlc3RzIHRvIHN0ZG91dCBzbyB0aGF0IFdpbjk4IGNhbiByZWRpcmVjdAorCXRoZSBvdXRwdXQgdG8gYSBmaWxlLgorCisJKiBkbGxzL25ldGFwaTMyL2FjY2Vzcy5jOgorCVV3ZSBCb25uZXMgPGJvbkBlbGVrdHJvbi5pa3AucGh5c2lrLnR1LWRhcm1zdGFkdC5kZT4KKwlOZXRVc2VyR2V0SW5mbzogaW1wbGVtZW50ZWQgTGV2ZWwgMS4KKworCSogb2xlL01ha2VmaWxlLmluLCBvbGUvZHg4Z3VpZC5jLCBvbGUvZHhndWlkLmMsIG9sZS91dWlkLmM6CisJU3BsaXQgRGlyZWN0WCBHVUlEcyB0byBzZXBhcmF0ZSBmaWxlcyB0byBhdm9pZCBoZWFkZXIgY29uZmxpY3RzLgorCisJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGxscy9NYWtlZmlsZS5pbiwgZGxscy9kM2Q4L01ha2VmaWxlLmluLAorCSAgZGxscy9kM2Q4L2Jhc2V0ZXh0dXJlLmMsIGRsbHMvZDNkOC9jdWJldGV4dHVyZS5jLAorCSAgZGxscy9kM2Q4L2QzZDhfbWFpbi5jLCBkbGxzL2QzZDgvZDNkOF9wcml2YXRlLmgsIGRsbHMvZDNkOC9kZXZpY2UuYywKKwkgIGRsbHMvZDNkOC9kaXJlY3R4LmMsIGRsbHMvZDNkOC9pbmRleGJ1ZmZlci5jLCBkbGxzL2QzZDgvc2hhZGVyLmMsCisJICBkbGxzL2QzZDgvc3VyZmFjZS5jLCBkbGxzL2QzZDgvc3dhcGNoYWluLmMsIGRsbHMvZDNkOC90ZXh0dXJlLmMsCisJICBkbGxzL2QzZDgvdmVydGV4YnVmZmVyLmMsIGRsbHMvZDNkOC92b2x1bWUuYywgZGxscy9tYWtlX2RsbHMsCisJICBkbGxzL2QzZHg4Ly5jdnNpZ25vcmUsIGRsbHMvZDNkeDgvTWFrZWZpbGUuaW4sCisJICBkbGxzL2QzZHg4L2QzZHg4LnNwZWMsIGRsbHMvZDNkeDgvZDNkeDhfbWFpbi5jLAorCSAgZGxscy9kM2R4OC9kM2R4OGNvcmVfcHJpdmF0ZS5oLCBkbGxzL2QzZHg4L2QzZHhidWZmZXIuYywKKwkgIGluY2x1ZGUvTWFrZWZpbGUuaW4sIGluY2x1ZGUvZDNkOC5oLCBpbmNsdWRlL2QzZDh0eXBlcy5oLAorCSAgaW5jbHVkZS9kM2R4OGNvcmUuaDoKKwlSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwktIHNvbWUgRDNEOCBmaXhlcworCS0gYmVnaW5uaW5nIG9mIHNoYWRlcnMgc3VwcG9ydCAoVmVydGV4IGFuZCBQaXhlbCBTaGFkZXJzIDEuMSBvbgorCSAgRGlyZWN0WDgpCisJLSBiZWdpbm5pbmcgb2YgRDNEWDggc3VwcG9ydCB0aGUgRDNEOCB1dGlsaXR5IEFQSSAodmVyeSBiYXNpYywgb25seQorCSAgdGhlIGNvcmUgaGVhZGVyKQorCisyMDAyLTEyLTE2ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBpbmNsdWRlL01ha2VmaWxlLmluLCBpbmNsdWRlL3Vua253bi5oLCBpbmNsdWRlL3Vua253bi5pZGwsCisJICBpbmNsdWRlL3dpbmUvb2JqX2Jhc2UuaDoKKwlPdmUgS2FhdmVuIDxvdmVrQHRyYW5zZ2FtaW5nLmNvbT4KKwlXcm90ZSBhIFdpbmUtY29tcGF0aWJsZSB1bmtud24uaWRsLCBtb3ZpbmcgdGhlIElVbmtub3duIGRlZmluaXRpb24KKwlmcm9tIHdpbmUvb2JqX2Jhc2UuaCB0byB0aGUgZ2VuZXJhdGVkIHVua253bi5oLgorCisJKiBkbGxzL3NoZWxsMzIvcGlkbC5jLCBkbGxzL3NoZWxsMzIvc2hlbGxvbGUuYywKKwkgIGRsbHMvc2hlbGwzMi9zaGZsZHJfZGVza3RvcC5jOgorCVJvbGYgS2FsYmVybWF0dGVyIDxyb2xmLmthbGJlcm1hdHRlckBjaXRlbmcuY29tPgorCUNoYW5nZSBjYWxscyB0byBDTFNJREZyb21TdHJpbmcgdG8gU0hDTFNJREZyb21TdHJpbmdXIGV4Y2VwdCBpbgorCVNIQ0xTSURGcm9tU3RyaW5nVyBmb3IgdGhlIHRpbWUgYmVpbmcuCisKKwkqIGRsbHMvYWR2YXBpMzIvc2VjdXJpdHkuYywgaW5jbHVkZS93aW5iYXNlLmg6CisJQW5kcmVhcyBNb2hyIDxhbmRpQHJobHgwMS5maHQtZXNzbGluZ2VuLmRlPgorCS0gYWN0dWFsbHkgdXNlIFBMVUlECisJLSBpbml0aWFsaXplIHRoZSBvdXRib3VuZCBscEx1aWQgdmFyaWFibGUgd2l0aCBib2d1cyB2YWx1ZXMKKworCSogZGxscy9kZHJhdy9kM2R0ZXh0dXJlLmMsIGRsbHMvZGRyYXcvZGRyYXcvbWFpbi5jOgorCUxpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJLSBmaXggYmFkIFRSQUNFCisJLSBmaXhlZCBjb21wdXRhdGlvbiBvZiBtZW1vcnkgdXNlZCBieSBhIHRleHR1cmUKKworCSogZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jLCBkbGxzL2RkcmF3L2QzZHRleHR1cmUuYywKKwkgIGRsbHMvZGRyYXcvZGRyYXcvbWFpbi5jLCBkbGxzL2RkcmF3L21lc2EuYzoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCS0gcmV2ZXJ0IHNvbWUgb3B0aW1pc2F0aW9ucyBicmVha2luZyBzb21lIGdhbWVzCisJLSBhZGRlZCBhIG5ldyB0ZXh0dXJlIGZvcm1hdCAoNDQ0NCBBUkdCKQorCS0gZml4ZWQgdGhlIGNvbXB1dGF0aW9uIG9mIGNvbG9ycworCS0gYWRkZWQgbmV3IHJlbmRlciBzdGF0ZXMgYW5kIGZvZyBzdXBwb3J0IChOT1QgaGFuZGxlZCB5ZXQgZm9yCisJICB0cmFuc2Zvcm1lZCB2ZXJ0aWNlcykKKworCSogZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jOiBDaHJpc3RpYW4gQ29zdGEgPHRpdGFuLmNvc3RhQHdhbmFkb28uZnI+CisJSW1wbGVtZW50ZWQgRHJhd1ByaW1pdGl2ZVN0cmlkZWQgYW5kIERyYXdJbmRleFByaW1pdGl2ZVN0cmlkZWQuCisKKwkqIGRsbHMvZGRyYXcvZDNkZGV2aWNlL21lc2EuYywgZGxscy9kZHJhdy9tZXNhX3ByaXZhdGUuaDoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCUZpeCBhIG1lbW9yeSBsZWFrIGFuZCBvcHRpbWl6ZSBhIGxpdHRsZSBiaXQgdGhlIGdlbmVyaWMgcGF0aC4KKworCSogZGxscy9kZHJhdy9kM2R0ZXh0dXJlLmMsIGRsbHMvZGRyYXcvbWVzYS5jOgorCUNocmlzdGlhbiBDb3N0YSA8dGl0YW4uY29zdGFAd2FuYWRvby5mcj4KKwlJbXByb3ZlIHRyYWNlcyArIHNtYWxsIGZpeC4KKworCSogZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jLCBkbGxzL2RkcmF3L2QzZHRleHR1cmUuYywKKwkgIGRsbHMvZGRyYXcvZHN1cmZhY2UvbWFpbi5jLCBkbGxzL2RkcmF3L21lc2EuYzoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCS0gZml4IFR3aXN0IGRlbW8KKwktIHNvbWUgY2xlYW4tdXBzIC8gdHJhY2VzCisKKwkqIGRsbHMvY29tY3RsMzIvY29tYm9leC5jLCBkbGxzL2NvbWN0bDMyL2NvbWN0bDMydW5kb2MuYywKKwkgIGRsbHMvY29tY3RsMzIvcHJvZ3Jlc3MuYywgZGxscy9jb21jdGwzMi9wcm9wc2hlZXQuYywKKwkgIGRsbHMvY29tY3RsMzIvcmViYXIuYywgZGxscy9jb21jdGwzMi90cmVldmlldy5jOgorCVJvbGYgS2FsYmVybWF0dGVyIDxyb2xmLmthbGJlcm1hdHRlckBjaXRlbmcuY29tPgorCUFkZCBjb25maWcuaC9wb3J0LmggdG8gYWxsb3cgY29tcGlsYXRpb24vbGlua2luZyBpbiBNU1ZDLgorCUZpeCBzb21lIHVuc2lnbmVkL3NpZ25lZCB3YXJuaW5ncy4KKworCSogZGxscy9zaGx3YXBpL29yZGluYWwuYywgZGxscy9zaGx3YXBpL3NobHdhcGkuc3BlYzoKKwlHefZyZ3kgJ05vZycgSmVuZXkgPG5vZ0BzZGYubG9uZXN0YXIub3JnPgorCS0gSW1wbGVtZW50IG9yZGluYWxzIDE2NyBhbmQgMTcxLgorCS0gQWRkIHN0dWJzIGZvciBvcmRpbmFscyAyODIgYW5kIDQwNi4KKworCSogZGxscy9zaGVsbDMyL3NobGV4ZWMuYywgZGxscy9zaGVsbDMyL3NobGZpbGVvcC5jLAorCSAgZGxscy9zaGVsbDMyL3NobHZpZXcuYzoKKwlSb2xmIEthbGJlcm1hdHRlciA8cm9sZi5rYWxiZXJtYXR0ZXJAY2l0ZW5nLmNvbT4KKwlNYWtlIHNvbWUgc2hlbGwzMiBmaWxlcyBjb21waWxlIGluIE1TVkMuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGVsbG9yZC5jOgorCVJvbGYgS2FsYmVybWF0dGVyIDxyb2xmLmthbGJlcm1hdHRlckBjaXRlbmcuY29tPgorCURvIGF0IGxlYXN0IHNvbWV0aGluZyBmb3IgU0hEcmFnRHJvcCBmdW5jdGlvbnMgYWx0aG91Z2ggdGhhdCBpc24ndCB0aGUKKwljb21wbGV0ZSBvcGVyYXRpb24uCisKKwkqIGRsbHMvc2hlbGwzMi9kZWJ1Z2hscC5jOgorCVJvbGYgS2FsYmVybWF0dGVyIDxyb2xmLmthbGJlcm1hdHRlckBjaXRlbmcuY29tPgorCUFkZCBkZWJ1ZyBpbmZvIGZvciBJRXh0cmFjdEljb25XLgorCisJKiBkbGxzL2RkcmF3L2QzZGRldmljZS9tZXNhLmMsIGRsbHMvZGRyYXcvbWVzYS5jLAorCSAgZGxscy9kZHJhdy9tZXNhX3ByaXZhdGUuaDoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCVN1cHBvcnRzIHRoZSBBTFBIQUZVTkMgYW5kIEFMUEhBUkVGIHJlbmRlcmluZyBzdGF0ZXMuCisKKwkqIHRvb2xzL21ha2VfY3Rlc3RzOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCU9uIFdpbmRvd3Mgd2luZGVmLmggbXVzdCBiZSBpbmNsdWRlZCBiZWZvcmUgd2luYmFzZS5oLgorCisJKiBkbGxzL3dpbm1tL3Rlc3RzL3dhdmUuYzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgdGhlIGNhcGFjaXR5IG9mIHBsYXlpbmcgYSB0ZXN0IHRvbmUgdXNpbmcgdGhlICdwbGF5JyBvcHRpb24uCisJRmFjdG9yaXplIHRoZSByZWd1bGFyIGFuZCBXQVZFX0ZPUk1BVF9ESVJFQ1QgdGVzdHMuCisJVGVzdCB0aGUgbmV3IDQ4IGFuZCA5NmtIeiBmb3JtYXRzLgorCisJKiB3aW5kb3dzL25vbmNsaWVudC5jOiBSZWluIEtsYXplcyA8cmtsYXplc0B4czRhbGwubmw+CisJRml4IGFuIEEvVyBzdHJ1Y3R1cmUgc2l6ZSBidWcgaW4gRHJhd0NhcHRpb25UZW1wVygpLgorCisJKiB0b29scy9ydW50ZXN0OiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCUFkZCAnLS0nIG9wdGlvbiBmb3IgcGFzc2luZyBleHRyYSBhcmd1bWVudHMgdG8gdGhlIHRlc3QuCisKKwkqIGdyYXBoaWNzL3gxMWRydi9kaWIuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGJhaWthbC5ydT4KKwlTZXBhcmF0ZSBYU2htIHVzaW5nIGNvZGUuCisKKwkqIHByb2dyYW1zL3dpbmhlbHAvaGxwMnNnbWwuYywgcHJvZ3JhbXMvd2luaGVscC9obHBmaWxlLmMsCisJICBwcm9ncmFtcy93aW5oZWxwL2hscGZpbGUuaCwgcHJvZ3JhbXMvd2luaGVscC93aW5oZWxwLmMsCisJICBwcm9ncmFtcy93aW5oZWxwL3dpbmhlbHAuaDoKKwlFcmljIFBvdWVjaCA8ZXJpYy5wb3VlY2hAd2FuYWRvby5mcj4KKwktIGxpbmtzIGNhbiBub3cgc3ByZWFkIGFjcm9zcyBzZXZlcmFsIGVsZW1lbnRzCisJLSBsaW5rIGluZm9ybWF0aW9uIGlzIG5vdyBzaGFyZWQgYmV0d2VlbiBmaWxlICYgcHJlc2VudGF0aW9uCisJLSBmaXJzdCB0cnkgYXQgaGFuZGxpbmcgbWV0YWZpbGVzCisKKwkqIHByb2dyYW1zL3dpbmVkYmcvZ2RicHJveHkuYzogRXJpYyBQb3VlY2ggPGVyaWMucG91ZWNoQHdhbmFkb28uZnI+CisJRml4ZWQgYSBmZXcgaXNzdWVzIHdpdGggdGhlIGdkYiBwcm94eS4KKworCSogZGxscy9rZXJuZWwvY29tbS5zcGVjOiBBbmRyZWFzIE1vaHIgPGFuZGlAcmhseDAxLmZodC1lc3NsaW5nZW4uZGU+CisJQWRkZWQgc29tZSBXaW4zLjEgZXhwb3J0IHN0dWJzLgorCisJKiBkb2N1bWVudGF0aW9uL2NvbmZpZ3VyaW5nLnNnbWwsIGRvY3VtZW50YXRpb24vZ2V0dGluZy5zZ21sLAorCSAgZG9jdW1lbnRhdGlvbi9pbnRyb2R1Y3Rpb24uc2dtbCwgZG9jdW1lbnRhdGlvbi9ydW5uaW5nLnNnbWw6CisJQW5kcmVhcyBNb2hyIDxhbmRpQHJobHgwMS5maHQtZXNzbGluZ2VuLmRlPgorCS0gc3BlbGxpbmcgY29ycmVjdGlvbnMKKwktIHByb3Blcmx5IGRvY3VtZW50IGhvdyB0byBzZXQgdGhlIERPUyBQQVRICisKKwkqIGRsbHMvb2xlYXV0MzIvb2xlYXV0MzIuc3BlYywgZGxscy9vbGVhdXQzMi92YXJpYW50LmM6CisJQW5kcmVhcyBNb2hyIDxhbmRpQHJobHgwMS5maHQtZXNzbGluZ2VuLmRlPgorCUltcGxlbWVudGVkIFZhck9yKCkuCisKKwkqIGRsbHMvZGRyYXcvbWVzYS5jOiBMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCUFkZCBzdXBwb3J0IGZvciB0aGUgVGV4dHVyZUFkZHJlc3MgcmVuZGVyIHN0YXRlLgorCisyMDAyLTEyLTE1ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBpbmNsdWRlL01ha2VmaWxlLmluLCB0b29scy93aWRsL2hlYWRlci5jLCB0b29scy93aWRsL3dpZGwuYywKKwkgIHRvb2xzL3dpZGwvd2lkbC5oOgorCU92ZSBLYWF2ZW4gPG92ZWtAdHJhbnNnYW1pbmcuY29tPgorCU91dHB1dCByYXcgSUNPTS1sZXNzIEMvQysrIGludGVyZmFjZSBkZWZpbml0aW9ucyBieSBkZWZhdWx0LiBBZGRlZCBuZXcKKwktYiBhbmQgLUIgY29tbWFuZC1saW5lIG9wdGlvbnMgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBJQ09NIG1hY3Jvcy4KKworCSogdG9vbHMvd2luZW1ha2VyOiBKZWZmIFNtaXRoIDx3aHlkb3VidEBob3RtYWlsLmNvbT4KKwlVcGRhdGVkIHdpbmVtYWtlciB0byBhY2NvdW50IGZvciBjaGFuZ2UgaW4gd2luZSdzIGxpbmtpbmcgbWV0aG9kLgorCisJKiBkbGxzL3dpbm1tL21tc3lzdGVtLmMsIGRsbHMvd2lubW0vd2F2ZW1hcC93YXZlbWFwLmMsCisJICBkbGxzL3dpbm1tL3dpbm1tLmMsIGluY2x1ZGUvbW1zeXN0ZW0uaDoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCUluIHRoZSBsYXRlc3Qgc2RrIHRoZSB7d2F2ZU91dCxtaWRpT3V0fXtHZXQsU2V0fVZvbHVtZSBmdW5jdGlvbnMgdGFrZQorCWEgaGFuZGxlIGFzIHRoZSBmaXJzdCBwYXJhbWV0ZXIuCisKKwkqIGRsbHMvd2lubW0vd2luZW9zcy9hdWRpby5jOiBFcmljIFBvdWVjaCA8ZXJpYy5wb3VlY2hAd2FuYWRvby5mcj4KKwlGaXhlZCBoYW5ndXAgY29uZGl0aW9uIGF0IHRoZSBlbmQgb2Ygc29tZSBwbGF5YmFjay4KKworCSogZGxscy9rZXJuZWwva2VybmVsMzIuc3BlYywgdG9vbHMvd2luZWJ1aWxkL2J1aWxkLmgsCisJICB0b29scy93aW5lYnVpbGQvaW1wb3J0LmMsIHRvb2xzL3dpbmVidWlsZC9wYXJzZXIuYywKKwkgIHRvb2xzL3dpbmVidWlsZC9zcGVjMzIuYywgdG9vbHMvd2luZWJ1aWxkL3dpbmVidWlsZC5tYW4uaW46CisJQWRkZWQgc3VwcG9ydCBmb3IgZGVmaW5pbmcgZm9yd2FyZCBmdW5jdGlvbnMgYXMgc3RkY2FsbCBzbyB0aGF0IHdlIGNhbgorCWdldCB0aGUgcHJvcGVyIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIHN0ZGNhbGwgZGVjb3JhdGlvbi4KKworCSogZGxscy9NYWtlZmlsZS5pbiwgZGxscy9NYWtldGVzdC5ydWxlcy5pbiwgZGxscy9tYWtlX2RsbHM6CisJVXNlIGltcG9ydCBsaWJyYXJpZXMgd2hlbiBidWlsZGluZyB0ZXN0cyB0b28uIE1ha2Ugc3VyZSB0aGUgLmEKKwlsaWJyYXJpZXMgYXJlIGJ1aWx0IGZvciBjcm9zc3Rlc3QuCisKKwkqIHByb2dyYW1zL3dpbmVkYmcvTWFrZWZpbGUuaW4sIHRvb2xzL3dpZGwvTWFrZWZpbGUuaW4sCisJICB0b29scy93bWMvTWFrZWZpbGUuaW4sIHRvb2xzL3dwcC9NYWtlZmlsZS5pbiwgdG9vbHMvd3JjL01ha2VmaWxlLmluOgorCUFkZGVkIHkudGFiLltjaF0gcHNldWRvLWRlcGVuZGVuY2llcyB0byBmaXggcGFyYWxsZWwgbWFrZXMuCisKKwkqIGRsbHMvd2luZWRvcy9NYWtlZmlsZS5pbiwgZGxscy93aW5lZG9zL2Rvc2V4ZS5oLAorCSAgZGxscy93aW5lZG9zL2hpbWVtLmMsIGRsbHMvd2luZWRvcy9pbnQzMS5jLAorCSAgZGxscy93aW5lZG9zL2ludGVycnVwdHMuYywgZGxscy93aW5lZG9zL3JlbGF5LmMsCisJICBkbGxzL3dpbmVkb3Mvd2luZWRvczE2LnNwZWM6CisJSnVra2EgSGVpbm9uZW4gPGpoZWlAaWtpLmZpPgorCUFkZCBzdXBwb3J0IGZvciBEUE1JMzIuIE1ha2Ugd2luZWRvczE2LmRsbCB1bm5lY2Vzc2FyeS4KKworCSogZGxscy9kZHJhdy9kM2RfcHJpdmF0ZS5oLCBkbGxzL2RkcmF3L2QzZGRldmljZS9tZXNhLmMsCisJICBkbGxzL2RkcmF3L2QzZHRleHR1cmUuYywgZGxscy9kZHJhdy9kM2R2ZXJ0ZXhidWZmZXIuYywKKwkgIGRsbHMvZGRyYXcvZGRyYXcvbWFpbi5jLCBkbGxzL2RkcmF3L2RkcmF3X3ByaXZhdGUuaCwKKwkgIGRsbHMvZGRyYXcvbWVzYS5jLCBkbGxzL2RkcmF3L21lc2FfcHJpdmF0ZS5oLAorCSAgZGxscy9kZHJhdy9kaXJlY3QzZC9tZXNhLmMsIGRsbHMvZGRyYXcvZHN1cmZhY2UvbWFpbi5jOgorCUxpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJIC0gcmV3b3JrIGhvdyB0ZXh0dXJpbmcgaXMgZG9uZSBpbiB0aGUgRDNEIGRyaXZlcgorCSAtIGFkZGVkIHRoZSBnZW5lcmljIHBhdGggZm9yIERyYXdQcmltaXRpdmUgQVBJIGluIEQzRCAzIC8gNworCisJKiB0b29scy9taW5nd3JhcC5jOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCVRlYWNoIG1pbmd3cmFwIHRvIHVzZSB3aW5ld3JhcCB0byBkbyB0aGUgbGlua2luZywganVzdCBsaWtlIGdjYyB1c2VzCisJbGQgdG8gbGluayBvbiBVbml4LiBCYXNlZCBsb29zZWx5IG9uIGEgdUNsaWIgdXRpbGl0eSBkZXZlbG9wZWQgYnkKKwlNYW51ZWwgTm92b2EgSUlJLgorCisJKiB0b29scy9NYWtlZmlsZS5pbiwgdG9vbHMvd2luZXdyYXAuYzoKKwlEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCVNtYWxsIGNsZWFudXBzIHRvIG1hdGNoIGN1cnJlbnQgYnVpbGQgcHJvY2Vzcy4KKworCSogZGxscy9tc3ZpZGVvL2RyYXdkaWIuYzogTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwlGaXggYmFkIGxvZ2ljIGluID09IE5VTEwgdGVzdC4KKworCSogZGxscy9zaGVsbDMyL3NoZWxsMzJfbWFpbi5oLCBkbGxzL3NoZWxsMzIvc2hmbGRyX2Rlc2t0b3AuYywKKwkgIGRsbHMvc2hlbGwzMi9zaGZsZHJfZnMuYywgZGxscy9zaGVsbDMyL3NoZmxkcl9teWNvbXAuYzoKKwlSb2xmIEthbGJlcm1hdHRlciA8cm9sZi5rYWxiZXJtYXR0ZXJAY2l0ZW5nLmNvbT4KKwlBZGQgc3VwcG9ydCBmb3IgVW5pY29kZSBJRXh0cmFjdEljb24gY3JlYXRpb24gaW4KKwlJU2hlbGxGb2xkZXItPkdldFVJT2JqZWN0T2YuCisKKwkqIGRsbHMvc2hlbGwzMi9mb2xkZXJzLmM6CisJUm9sZiBLYWxiZXJtYXR0ZXIgPHJvbGYua2FsYmVybWF0dGVyQGNpdGVuZy5jb20+CisJRml4IGNyYXNoIHdoZW4gY29uc3RydWN0aW5nIEFOU0kgaW50ZXJmYWNlIHBvaW50ZXIgdG8gSUV4dHJhY3RJY29uLAorCWZvdW5kIGJ5IFV3ZSBCb25uZXMuCisJQWRkIHNvbWUgdHJhY2VzIHRvIHRoZSBjb25zdHJ1Y3RvcnMuCisKKwkqIHRvb2xzL3dpZGwvaGVhZGVyLmMsIHRvb2xzL3dpZGwvcGFyc2VyLmwsIHRvb2xzL3dpZGwvcGFyc2VyLnksCisJICB0b29scy93aWRsL3dpZGx0eXBlcy5oOgorCU92ZSBLYWF2ZW4gPG92ZWtAdHJhbnNnYW1pbmcuY29tPgorCUluY2x1ZGUgZ3VpZGRlZi5oIGluIHdpZGx0eXBlcy5oLgorCisJKiBkbGxzL3dpbm1tL3dpbmVvc3MvYXVkaW8uYzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGNvZGV3ZWF2ZXJzLmNvbT4KKwlJZiB1bmFibGUgdG8gc2V0IHRoZSBkZXNpcmVkIGZvcm1hdCwgT1NTX1Jhd09wZW5EZXZpY2Ugc2hvdWxkIGNhbGwKKwlUUkFDRSwgbm90IEVSUi4KKworCSogZGxscy93aW5tbS93YXZlbWFwL3dhdmVtYXAuYzoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCU91ciByZXNhbXBsaW5nIGFsZ29yaXRobSBpcyBxdWl0ZSBwcmltaXRpdmUgc28gdHJ5IHNpbXBsZSA4LzE2CisJbW9uby9zdGVyZW8gY29udmVyc2lvbnMgZmlyc3QuIE9ubHkgcmVzYW1wbGUgaWYgd2UgY2Fubm90IGF2b2lkIGl0LgorCisJKiBkbGxzL21zYWNtL3BjbWNvbnZlcnRlci5jOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCVVzZSBzbGlnaGx5IG1vcmUgYWNjdXJhdGUgZm9ybXVsYSBmb3IgQzgxNi4KKwlXcmFwIGEgY291cGxlIG9mIGNvbW1lbnRzIHRvIDgwIGNvbHVtbnMuCisKKwkqIGRsbHMvd2lubW0vdGVzdHMvd2F2ZS5jLCBkbGxzL3dpbm1tL3dpbm1tLmM6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGNvZGV3ZWF2ZXJzLmNvbT4KKwlJZiBnaXZlbiBhIGJhZCBkZXZpY2UgaWQgd2F2ZU91dEdldERldkNhcHNBIGlzIHN1cHBvc2VkIHRvIHJldHVybgorCU1NU1lTRVJSX0JBRERFVklDRUlELiBGaXhlcyBhIHRvZG9fd2luZSBpbiB0aGUgd2lubW0gdGVzdC4KKworMjAwMi0xMi0xMyAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9zaGVsbDMyL2NsYXNzZXMuYywgZGxscy9zaGVsbDMyL2RlYnVnaGxwLmMsCisJICBkbGxzL3NoZWxsMzIvZm9sZGVycy5jLCBkbGxzL3NoZWxsMzIvcGlkbC5jLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsMzJfbWFpbi5jLCBkbGxzL3NoZWxsMzIvc2hlbGwzMl9tYWluLmgsCisJICBkbGxzL3NoZWxsMzIvc2hmbGRyX2Rlc2t0b3AuYywgZGxscy9zaGVsbDMyL3NobGV4ZWMuYzoKKwlSb2xmIEthbGJlcm1hdHRlciA8cm9sZi5rYWxiZXJtYXR0ZXJAY2l0ZW5nLmNvbT4KKwlBZGRlZCBVbmljb2RlIHZlcnNpb25zIG9mIHRoZSBIQ1JfIGludGVybmFsIGZ1bmN0aW9ucy4KKworCSogZG9jdW1lbnRhdGlvbi90ZXN0aW5nLnNnbWw6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCURvY3VtZW50IGhvdyB0byBjcm9zcy1jb21waWxlIHRoZSB0ZXN0cyB3aXRoIE1pbkdXLgorCisJKiBwcm9ncmFtcy93aW5lY29uc29sZS9NYWtlZmlsZS5pbiwgcHJvZ3JhbXMvd2luZWNvbnNvbGUvY3Vyc2VzLmMsCisJICBwcm9ncmFtcy93aW5lY29uc29sZS9yZWdpc3RyeS5jLCBwcm9ncmFtcy93aW5lY29uc29sZS93aW5lY29uc29sZS5jOgorCUVyaWMgUG91ZWNoIDxlcmljLnBvdWVjaEB3YW5hZG9vLmZyPgorCUFkZGVkIGEgKG4pY3Vyc2VzIGJhY2tlbmQgdG8gdGhlIHdpbmVjb25zb2xlLgorCisJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgaW5jbHVkZS9jb25maWcuaC5pbiwgbGlicmFyeS9wb3J0LmM6CisJQnJhZCBDYW1wYmVsbCA8YnJhZEBzZW1lLmNvbS5hdT4KKwlBZGRlZCBhZGRpdGlvbmFsIHRlc3QgZm9yIGdjdnQgYXMgdUNsaWJjIGFwcGVhcnMgdG8gaGF2ZSB0aGlzIGFuZCBub3QKKwllY3Z0LgorCisJKiBkbGxzL250ZGxsL3NpZ25hbF9pMzg2LmM6IEp1a2thIEhlaW5vbmVuIDxqaGVpQGlraS5maT4KKwlXaGVuIGFzeW5jaHJvbm91cyBzaWduYWxzIGFyZSBibG9ja2VkLCBibG9jayBhbHNvIFNJR1VTUjIuCisJRml4IHJhY2UgdGhhdCBtYWRlIHNpZ25hbCBoYW5kbGVyIGZvcmdldCB0byByZXN0b3JlIEZTIHJlZ2lzdGVyLgorCisJKiBkbGxzL2NvbWN0bDMyL2NvbWN0bDMyLnNwZWMsIGRsbHMvY29tY3RsMzIvY29tY3RsMzJ1bmRvYy5jOgorCVJvYmVydCBTaGVhcm1hbiA8Ui5KLlNoZWFybWFuQHdhcndpY2suYWMudWs+CisJSW1wbGVtZW50ZWQgU3RyU3RySVcuCisKKwkqIGRsbHMvZHNvdW5kL3NvdW5kM2QuYzogUm9rIE1hbmRlbGpjIDxyb2ttYW5kZWxqY0Bob3RtYWlsLmNvbT4KKwlJbXBsZW1lbnRhdGlvbiBvZiBJRGlyZWN0U291bmQzRExpc3RlbmVySW1wbF9TZXQqKCkuCisKKwkqIGRsbHMva2VybmVsL3RpbWUuYywgZGxscy9udGRsbC90aW1lLmMsIGluY2x1ZGUvd2luYmFzZS5oOgorCUF2b2lkIGNhc3RzIGJldHdlZW4gTEFSR0VfSU5URUdFUiBhbmQgRklMRVRJTUUuCisJRml4ZWQgZGF5IG9mIHdlZWsgb2YgZXBvY2guCisJU21hbGwgY2xlYW51cHMuCisKKwkqIGRsbHMvTWFrZWRsbC5ydWxlcy5pbiwgZGxscy9NYWtldGVzdC5ydWxlcy5pbjoKKwlGaXhlZCBzb21lIGRlcGVuZGVuY2llcy4KKworCSogZGxscy9rZXJuZWwvdGltZS5jLCBkbGxzL250ZGxsL01ha2VmaWxlLmluLCBmaWxlcy9kb3NfZnMuYywKKwkgIGZpbGVzL2ZpbGUuYywgd2luMzIvdGltZS5jOgorCUd59nJneSAnTm9nJyBKZW5leSA8bm9nQHNkZi5sb25lc3Rhci5vcmc+CisJLSBSZWltcGxlbWVudCB0aW1lIGZ1bmN0aW9ucyB1c2luZyBudGRsbCBmdW5jdGlvbnMuCisJLSBTb21lIGNsZWFudXBzLgorCisJKiBkbGxzL25ldGFwaTMyL2FjY2Vzcy5jLCBkbGxzL25ldGFwaTMyL25ldGFwaTMyLnNwZWMsCisJICBpbmNsdWRlL2xtZXJyLmg6CisJQ2hyaXMgTW9yZ2FuIDxjbW9yZ2FuQGFsdW0ud3BpLmVkdT4KKwlTdHViIE5ldEdldERDTmFtZSgpLiAgQWRkIGluIHRoZSByZXN0IG9mIHRoZSBORVJSXyogZGVmaW5lcy4KKworCSogZGxscy9kc291bmQvdGVzdHMvTWFrZWZpbGUuaW4sIGRsbHMvZHNvdW5kL3Rlc3RzL2Rzb3VuZC5jOgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBjb2Rld2VhdmVycy5jb20+CisJRXh0ZW5kIHRoZSB0ZXN0IGJ5IGNyZWF0aW5nIGEgUHJpbWFyeUJ1ZmZlciBvYmplY3QgYW5kIHBlcmZvcm0gYSBmZXcKKwliYXNpYyB0ZXN0cyBzdWNoIGFzIHF1ZXJ5aW5nIGl0cyBjaGFyYWN0ZXJpc3RpY3MgYW5kIGNoYW5naW5nIGl0cworCWZvcm1hdC4KKwlDaGFuZ2luZyB0aGUgZm9ybWF0IHJlcXVpcmVzIHRoYXQgd2UgY2FsbCBTZXRjb29wZXJhdGl2ZUxldmVsIGZpcnN0LAorCXdoaWNoIG1lYW5zIHdlIG5lZWQgYW4gaHduZC4gU28gdGhlIHRlc3QgbXVzdCBub3cgbGluayB3aXRoCisJdXNlcjMyLmRsbC4KKworCSogZGxscy9kc291bmQvYnVmZmVyLmMsIGRsbHMvZHNvdW5kL3ByaW1hcnkuYzoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCUlEaXJlY3RTb3VuZEJ1ZmZlci5HZXRDYXBzIHNob3VsZCBmYWlsIGlmIGNhcHMuZHdTaXplIGlzIG5vdCBzZXQuCisKKwkqIGRsbHMvZDNkOC9kZXZpY2UuYzogSmFzb24gRWRtZWFkZXMgPHVzQHRoZS1lZG1lYWRlcy5kZW1vbi5jby51az4KKwlUaGFua3MgdG8gTHVjaG8sIHRleHQgc3VwcG9ydCBpbiBzYW1wbGVzIG5vdyBzdGFydHMgdG8KKwlhcHBlYXIuIFRleHR1cmVzIG5vdyBzYXZlZCBpbiBzdGF0ZSBibG9ja3MsIGFuZCBjb3JyZWN0IEZWRidzIHVzZWQgZm9yCisJZHJhd2luZy4KKworCSogREVWRUxPUEVSUy1ISU5UUywgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRsbHMvTWFrZWZpbGUuaW4sCisJICBkbGxzL3dpbm1tL3dpbmVqYWNrLy5jdnNpZ25vcmUsIGRsbHMvd2lubW0vd2luZWphY2svTWFrZWZpbGUuaW4sCisJICBkbGxzL3dpbm1tL3dpbmVqYWNrL2F1ZGlvLmMsIGRsbHMvd2lubW0vd2luZWphY2svamFjay5jLAorCSAgZGxscy93aW5tbS93aW5lamFjay9qYWNrLmgsIGRsbHMvd2lubW0vd2luZWphY2svd2luZWphY2suZHJ2LnNwZWMsCisJICBkb2N1bWVudGF0aW9uL3NhbXBsZXMvY29uZmlnLCBpbmNsdWRlL2NvbmZpZy5oLmluOgorCUNocmlzIE1vcmdhbiA8Y21vcmdhbkBhbHVtLndwaS5lZHU+CisJQWRkIHN1cHBvcnQgZm9yIEphY2sgYXVkaW8gc2VydmVyLgorCisJKiBkbGxzL21zYWNtL3BjbWNvbnZlcnRlci5jLCBkbGxzL3dpbm1tL3dhdmVtYXAvd2F2ZW1hcC5jOgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBjb2Rld2VhdmVycy5jb20+CisJQWRkIHN1cHBvcnQgZm9yIHRoZSA0OCBhbmQgOTZrSHogZm9ybWF0cy4KKworCSogZGxscy9zaGVsbDMyL2NvbnRyb2wuYywgZGxscy9zaGVsbDMyL3NoZWxsMzIuc3BlYzoKKwlSb2JlcnQgU2hlYXJtYW4gPFIuSi5TaGVhcm1hbkB3YXJ3aWNrLmFjLnVrPgorCS0gQ2hhbmdlIGxhdW5jaCBmdW5jdGlvbnMgdG8gdXNlIHVuaWNvZGUgYW5kIGltcGxlbWVudCBDb250cm9sX1J1bkRMTFcuCisJLSBFbmFibGUgc3VwcG9ydCBmb3IgdW5pY29kZSBpbiBjb250cm9sIHBhbmVsIGFwcGxpY2F0aW9ucy4KKworCSogbG9hZGVyL3Rhc2suYzoKKwlEb24ndCBjcmFzaCBpbiBEaXJlY3RlZFlpZWxkMTYgaWYgbm8gb3RoZXIgdGFzayBpcyBydW5uaW5nLgorCisJKiB0b29scy8uY3ZzaWdub3JlLCB0b29scy9NYWtlZmlsZS5pbiwgdG9vbHMvd2luZXdyYXAuYzoKKwlEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCU5ldyB3aW5lIGJ1aWxkIHV0aWxpdHkgdGhhdCBzaG91bGQgbWFrZSBpdCBlYXN5IGZvciBXaW5lbGliIGFwcHMgdG8KKwlsaW5rLCBhbmQgZ2VuZXJhdGUgYW4gZXhlY3V0YWJsZS4KKworCSogZGxscy9zaGVsbDMyL2NoYW5nZW5vdGlmeS5jLCBkbGxzL3NoZWxsMzIvY2xpcGJvYXJkLmMsCisJICBkbGxzL3NoZWxsMzIvZGF0YW9iamVjdC5jLCBkbGxzL3NoZWxsMzIvZGlhbG9ncy5jLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsb3JkLmMsIGRsbHMvc2hlbGwzMi9zaGZsZHJfZnMuYywKKwkgIGRsbHMvc2hlbGwzMi9zaGxleGVjLmMsIGRsbHMvc2hlbGwzMi9zaGx2aWV3LmMsCisJICBkbGxzL3NoZWxsMzIvc2h2X2l0ZW1fY21lbnUuYzoKKwlSb2xmIEthbGJlcm1hdHRlciA8cm9sZi5rYWxiZXJtYXR0ZXJAY2l0ZW5nLmNvbT4KKwlGaXhlZCBzb21lIHNpZ25lZC91bnNpZ25lZCBjb21wYXJpc29uIHdhcm5pbmdzLgorCisJKiBkbGxzL3dpbm1tL3dpbmVhbHNhL2F1ZGlvLmM6CisJTmlrb2xheSBTdGVmYW5vdiA8bnN0ZWZhbm92QGNzLm1hbi5hYy51az4KKwlGaXggaXNzdWVzIHdpdGggaTgxMC1iYXNlZCBhdWRpbyBjYXJkcy4KKwlTdXBwb3J0IGZvciB1c2VyLXNlbGVjdGFibGUgYXVkaW8gY2FyZHMgdGhyb3VnaCB0aGUgQUxTQV9DQVJECisJZW52aXJvbm1lbnQgdmFyaWFibGUgKE0uTWlyb3NsYXdAZWxrYS5wdy5lZHUucGwpLgorCisJKiBkbGxzL2NvbWN0bDMyL2FuaW1hdGUuYzoKKwlSb2xmIEthbGJlcm1hdHRlciA8cm9sZi5rYWxiZXJtYXR0ZXJAY2l0ZW5nLmNvbT4KKwlUeXBvIGZvdW5kIGJ5IGNvbXBpbGluZyB3aXRoIHN0YW5kYXJkIE1TVkMgd2FybmluZyBsZXZlbC4KKworCSogZG9jdW1lbnRhdGlvbi9mYXEuc2dtbDogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJQ2hhbmdlICdHZXR0aW5nLVdpbmUnIHRvICdGQVEtR2V0dGluZy1XaW5lJyBzaW5jZSB0aGUgZm9ybWVyIGlzCisJYWxyZWFkeSB1c2VkIGluIGdldHRpbmcuc2dtbC4KKworCSogZG9jdW1lbnRhdGlvbi9nZXR0aW5nLnNnbWw6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCVR3ZWFrIHRoZSBzY3JlZW4gc2VjdGlvbnMuCisJQWRkIHZhcmlvdXMgdGFncyBzdWNoIGFzOiBwcm9tcHQsIHVzZXJpbnB1dCwgcmVwbGFjZWFibGUsIGZpbGVuYW1lLgorCVVzZSAnPC8+JyB0byBjbG9zZSB0YWdzLgorCisJKiBpbmNsdWRlL3JwYy5oLCBpbmNsdWRlL3dpbmRvd3MuaDogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJVXBkYXRlZCB0aGUgI2luY2x1ZGUgZGlyZWN0aXZlcyB0byBtYXRjaCB0aGUgbGF0ZXN0IFdpbmRvd3MgU0RLIGFuZCB0bworCWluY2x1ZGUgb3VyIG5ldyBoZWFkZXJzLgorCisJKiBkbGxzL2Rzb3VuZC9zb3VuZDNkLmM6IFJvayBNYW5kZWxqYyA8cm9rbWFuZGVsamNAaG90bWFpbC5jb20+CisJSW1wbGVtZW50ZWQgSURpcmVjdFNvdW5kM0RCdWZmZXJJbXBsX1NldCooKS4KKworCSogZGxscy9zaGVsbDMyL2Jyc2ZvbGRlci5jOgorCVJvbGYgS2FsYmVybWF0dGVyIDxyb2xmLmthbGJlcm1hdHRlckBjaXRlbmcuY29tPgorCUZpeCBTSEJyb3dzZUZvckZvbGRlciBXIC0+IEEgY2FsbHMuCisKKzIwMDItMTItMTIgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMva2VybmVsL2NvbXB1dGVybmFtZS5jLCBkbGxzL2tlcm5lbC9jb25zb2xlLmMsCisJICBkbGxzL21zdmNydC9jcHBleGNlcHQuYywgZGxscy9tc3ZjcnQvZXhjZXB0LmMsCisJICBkbGxzL250ZGxsL2RlYnVndG9vbHMuYywgZGxscy9udGRsbC9leGNlcHRpb24uYywKKwkgIGRsbHMvbnRkbGwvbG9hZGVyLmMsIGRsbHMvbnRkbGwvc2VjLmMsIGRsbHMvdXNlci9sc3RyLmMsCisJICBkbGxzL3dpbmVkb3MvZG9zdm0uYywgZGxscy93aW5pbmV0L2ludGVybmV0LmMsIGZpbGVzL2Rvc19mcy5jLAorCSAgaW5jbHVkZS9NYWtlZmlsZS5pbiwgaW5jbHVkZS9leGNwdC5oLCBpbmNsdWRlL21zdmNydC9leGNwdC5oLAorCSAgaW5jbHVkZS93aW5kb3dzLmgsIGxvYWRlci9uZS9tb2R1bGUuYywgbG9hZGVyL3Jlc291cmNlLmMsCisJICBtZW1vcnkvZ2xvYmFsLmMsIG1lbW9yeS9zdHJpbmcuYywgbWVtb3J5L3ZpcnR1YWwuYywKKwkgIHByb2dyYW1zL3dpbmVkYmcvZGJnLnksIHByb2dyYW1zL3dpbmVkYmcvd2luZWRiZy5jLCByZWxheTMyL3Nub29wLmMsCisJICB3aW4zMi9leGNlcHQuYywgd2luZG93cy9jdXJzb3JpY29uLmM6CisJRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlNb3ZlIGV4Y3B0Lmggb3V0IG9mIGluY2x1ZGUvbXN2Y3J0LyBhcyBpdCBkb2VzIG5vdCBjb25mbGljdCB3aXRoIGFueQorCXN0YW5kYXJkIFVuaXggaGVhZGVyLgorCisJKiBwcm9ncmFtcy9leHBhbmQvZXhwYW5kLmM6IEZpeGVkIExaQ29weSByZXR1cm4gdmFsdWUgY2hlY2suCisKKwkqIGRsbHMvZHNvdW5kL3NvdW5kM2QuYzogUm9rIE1hbmRlbGpjIDxyb2ttYW5kZWxqY0Bob3RtYWlsLmNvbT4KKwlJbXBsZW1lbnRlZCBJRGlyZWN0U291bmQzRExpc3RlbmVySW1wbF9HZXQqKCkgZnVuY3Rpb25zLgorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGwuYzoKKwlSb2xmIEthbGJlcm1hdHRlciA8cm9sZi5rYWxiZXJtYXR0ZXJAY2l0ZW5nLmNvbT4KKwlDbGVhbnVwIEludGVybmFsRXh0cmFjdEljb25FeC4gVGhlIFByaXZhdGVFeHRyYWN0SWNvbnMgZnVuY3Rpb25zCisJc2hvdWxkIGFsc28gaGFuZGxlIHRoZSBjYXNlIGZvciAzMmJpdCBQRSBhbmQgMTZiaXQgTkUgZmlsZXMgc28gbm8gbmVlZAorCXRvIGRvIHRoaXMgaGVyZSBpbiBhIGRpZmZlcmVudCB3YXksIHRvby4KKworCSogZGxscy9zaGVsbDMyL3BpZGwuYzogUm9sZiBLYWxiZXJtYXR0ZXIgPHJvbGYua2FsYmVybWF0dGVyQGNpdGVuZy5jb20+CisJUmVzb2x2ZSBTSEdldFBhdGhGcm9tSURMaXN0VyAtPiAgU0hHZXRQYXRoRnJvbUlETGlzdEEgY2FsbC4KKwlSZW1vdmUgRml4bWUgY29tbWVudCBpbiBTSEdldFBhdGhGcm9tSURMaXN0IGFzIFN0clJldFRvU3RyTiBzaG91bGQKKwl0YWtlIGNhcmUgb2YgdGhpcy4KKwlHZXQgcmlkIG9mIHNvbWUgdW5zaWduZWQvc2lnbmVkIGNvbXBhcmlzb24gd2FybmluZ3Mgd2l0aCBkZWZhdWx0CisJd2FybmluZ3MgaW4gTVNWQy4KKworCSogZGxscy9zaGVsbDMyL2ZvbGRlcnMuYzoKKwlSb2xmIEthbGJlcm1hdHRlciA8cm9sZi5rYWxiZXJtYXR0ZXJAY2l0ZW5nLmNvbT4KKwlJbXBsZW1lbnQgSUV4dHJhY3RJY29uVyBhbmQgaW5oZXJpdCBJRXh0cmFjdEljb25BIGZyb20gaXQuCisKKwkqIGRsbHMvdXNlci9leHRpY29uLmM6IFJvbGYgS2FsYmVybWF0dGVyIDxyb2xmLmthbGJlcm1hdHRlckBjaXRlbmcuY29tPgorCUZpeCBhIHBvc3NpYmxlIG1lbW9yeSBsZWFrIHdoZW4gZXh0cmFjdGluZyBmcm9tIGFuIElDTyBmaWxlLgorCUZpeCBzb21lIHNpZ25lZC91bnNpZ25lZCB3YXJuaW5ncyBzaG93aW5nIHVwIGluIE1TVkMgd2l0aCBkZWZhdWx0CisJd2FybmluZyBsZXZlbC4KKwlGaXggcG9zc2libGUgcHJvYmxlbSB3aXRoIHNob3J0IFBJTUFHRV9OVF9IRUFERVJTLgorCisJKiBkbGxzL29sZWF1dDMyL3R5cGVsaWIuYzogQWxiZXJ0byBNYXNzYXJpIDxhbGJ5QGV4bG4uY29tPgorCUltcGxlbWVudGVkIERpc3BDYWxsRnVuYyBzbyB0aGF0IGl0IHdvcmtzIHdoZW4gY2FsbGluZyBldmVudCBoYW5kbGVycworCXRoYXQgaGF2ZSBubyByZXR1cm4gdmFsdWUuCisKKwkqIGRsbHMvb2xlYXV0MzIvc2FmZWFycmF5LmM6IEFsYmVydG8gTWFzc2FyaSA8YWxieUBleGxuLmNvbT4KKwlDYWxsaW5nIFNhZmVBcnJheURlc3Ryb3kgb24gYSBkZXN0cm95ZWQgYXJyYXkgc2hvdWxkIGJlIGEgbm8tb3AuCisKKwkqIGRsbHMvZHNvdW5kL3NvdW5kM2QuYzogUm9rIE1hbmRlbGpjIDxyb2ttYW5kZWxqY0Bob3RtYWlsLmNvbT4KKwlJbXBsZW1lbnRlZCBzb21lIHN0dWJzLgorCisJKiB0b29scy93aW5lbWFrZXI6IEplZmYgU21pdGggPHdoeWRvdWJ0QGhvdG1haWwuY29tPgorCUFkZCAnZGlzdGNsZWFuJyB0YXJnZXQgdG8gd2luZW1ha2VyLWdlbmVyYXRlZCBwcm9qZWN0cy4KKworCSogZGxscy93aW5tbS9sb2x2bGRydi5jLCBkbGxzL3dpbm1tL3dpbmVvc3MvbWlkaS5jOgorCUplZmYgU21pdGggPHdoeWRvdWJ0QGhvdG1haWwuY29tPgorCU1NRFJWX0dldERlc2NyaXB0aW9uMzIgZml4ICsgYSBmZXcgY29zbWV0aWMgaW1wcm92ZW1lbnRzLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9sb2NhbGUuYzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJTWVudGlvbiB0aGUgYXBwbGljYXRpb25zIHRoYXQgZGVwZW5kIG9uIHRoZSBiZWhhdmlvciBjaGVja2VkIGJ5IHRoZQorCUdldExvY2FsZUluZm9BIHBhcnRpYWwgYnVmZmVyIHRlc3QuCisKKwkqIGRsbHMvb2xlYXV0MzIvdG1hcnNoYWwuYzogTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJUmV2ZXJ0ZWQgbGFzdCBWVF9VU0VSREVGSU5FRCBwYXRjaCAod2FzIGJyb2tlbikuCisJTWFyc2hhbCBUS0lORF9ESVNQQVRDSCBpbnRlcmZhY2VzIGp1c3QgbGlrZSBUS0lORF9JTlRFUkZBQ0UuCisKKwkqIGRsbHMvb2xlYXV0MzIvTWFrZWZpbGUuaW4sIGRsbHMvb2xlYXV0MzIvZGlzcGF0Y2guYywKKwkgIGRsbHMvb2xlYXV0MzIvb2xlMmRpc3AuYywgZGxscy9vbGVhdXQzMi9vbGVhdXQuYzoKKwlNYXJjdXMgTWVpc3NuZXIgPG1hcmN1c0BqZXQuZnJhbmtlbi5kZT4KKwlTZXBhcmF0ZWQgb3V0IDE2Yml0IHNvdXJjZXMgZm9yIG9sZTJkaXNwLmRsbC4KKworCSogdG9vbHMvd3JjL3dyYy5jOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCURvIG5vdCBkaXNwbGF5IHRoZSBsb25nIG9wdGlvbnMgaW4gdGhlIHVzYWdlIG1lc3NhZ2UgaWYgd2UgZG9uJ3QKKwlhY3R1YWxseSBzdXBwb3J0IHRoZW0uIFNtYWxsIG90aGVyIGNsZWFudXBzLgorCisJKiBkbGxzL250ZGxsL2Nkcm9tLmM6IEFsZXggUGFzYWR5biA8YWpwQG1haWwudXRleGFzLmVkdT4KKwlGaXggcmV0dXJuIGZyb20gSU9DVExfQ0RST01fQ0hFQ0tfVkVSSUZZLgorCisJKiBkbGxzL3dpbm1tL3Rlc3RzL3dhdmUuYywgZGxscy93aW5tbS93YXZlbWFwL3dhdmVtYXAuYzoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCUZpeCBlcnJvciByZXBvcnRpbmcgaW4gd2F2ZW1hcC5jOndvZE9wZW4oKTsgdGhpcyBzb2x2ZXMgdGhlCisJd2F2ZU91dE9wZW4gcHJvYmxlbSBzbyB0aGF0IHdlIGNhbiByZW1vdmUgdGhlIHRvZG9fd2luZS4KKwlXaW45eCBkb2VzIG5vdCBzdXBwb3J0IFdBVkVfRk9STUFUX0RJUkVDVC4KKwlEb24ndCBjaGVjayB0aGUgZm9ybWF0IGlmIHRoZSB3YXZlT3V0T3BlbiBjb21tYW5kIGZhaWxlZC4KKwlVc2UgdHJhY2UsIG5vdCB3aW5ldGVzdF90cmFjZSEKKworCSogbG9hZGVyL25lL21vZHVsZS5jOiBBbHNvIHRyYWNlIGltcGxpY2l0bHkgbG9hZGVkIGRsbHMgZm9yICtsb2FkZGxsLgorCisJKiBkbGxzL2FkdmFwaTMyLy5jdnNpZ25vcmUsIGRsbHMvYXZpZmlsMzIvLmN2c2lnbm9yZSwKKwkgIGRsbHMvY2FiaW5ldC8uY3ZzaWdub3JlLCBkbGxzL2NvbW1kbGcvLmN2c2lnbm9yZSwKKwkgIGRsbHMvY3J5cHQzMi8uY3ZzaWdub3JlLCBkbGxzL2QzZDgvLmN2c2lnbm9yZSwKKwkgIGRsbHMvZGNpbWFuMzIvLmN2c2lnbm9yZSwgZGxscy9kZHJhdy8uY3ZzaWdub3JlLAorCSAgZGxscy9kZXZlbnVtLy5jdnNpZ25vcmUsIGRsbHMvZGlucHV0OC8uY3ZzaWdub3JlLAorCSAgZGxscy9kcGxheS8uY3ZzaWdub3JlLCBkbGxzL2Rzb3VuZC8uY3ZzaWdub3JlLCBkbGxzL2dkaS8uY3ZzaWdub3JlLAorCSAgZGxscy9nbHUzMi8uY3ZzaWdub3JlLCBkbGxzL2ljbXAvLmN2c2lnbm9yZSwgZGxscy9pbW0zMi8uY3ZzaWdub3JlLAorCSAgZGxscy9rZXJuZWwvLmN2c2lnbm9yZSwgZGxscy9semV4cGFuZC8uY3ZzaWdub3JlLAorCSAgZGxscy9tcHIvLmN2c2lnbm9yZSwgZGxscy9tc2FjbS8uY3ZzaWdub3JlLCBkbGxzL21zZG1vLy5jdnNpZ25vcmUsCisJICBkbGxzL21zaW1nMzIvLmN2c2lnbm9yZSwgZGxscy9tc25ldDMyLy5jdnNpZ25vcmUsCisJICBkbGxzL21zdmNydC8uY3ZzaWdub3JlLCBkbGxzL21zdmNydDIwLy5jdnNpZ25vcmUsCisJICBkbGxzL21zdmlkZW8vLmN2c2lnbm9yZSwgZGxscy9tc3ZpZGVvL21zcmxlMzIvLmN2c2lnbm9yZSwKKwkgIGRsbHMvbmV0YXBpMzIvLmN2c2lnbm9yZSwgZGxscy9udGRsbC8uY3ZzaWdub3JlLAorCSAgZGxscy9vZGJjMzIvLmN2c2lnbm9yZSwgZGxscy9vbGUzMi8uY3ZzaWdub3JlLAorCSAgZGxscy9vbGVhdXQzMi8uY3ZzaWdub3JlLCBkbGxzL29sZWNsaS8uY3ZzaWdub3JlLAorCSAgZGxscy9vbGVkbGcvLmN2c2lnbm9yZSwgZGxscy9vbGVwcm8zMi8uY3ZzaWdub3JlLAorCSAgZGxscy9vcGVuZ2wzMi8uY3ZzaWdub3JlLCBkbGxzL3BzYXBpLy5jdnNpZ25vcmUsCisJICBkbGxzL3FjYXAvLmN2c2lnbm9yZSwgZGxscy9xdWFydHovLmN2c2lnbm9yZSwKKwkgIGRsbHMvcmFzYXBpMzIvLmN2c2lnbm9yZSwgZGxscy9ycGNydDQvLmN2c2lnbm9yZSwKKwkgIGRsbHMvc2VyaWFsdWkvLmN2c2lnbm9yZSwgZGxscy9zZXR1cGFwaS8uY3ZzaWdub3JlLAorCSAgZGxscy9zaGVsbDMyLy5jdnNpZ25vcmUsIGRsbHMvc2hmb2xkZXIvLmN2c2lnbm9yZSwKKwkgIGRsbHMvc25tcGFwaS8uY3ZzaWdub3JlLCBkbGxzL3N0aS8uY3ZzaWdub3JlLAorCSAgZGxscy90dHlkcnYvLmN2c2lnbm9yZSwgZGxscy91cmwvLmN2c2lnbm9yZSwgZGxscy91cmxtb24vLmN2c2lnbm9yZSwKKwkgIGRsbHMvdXNlci8uY3ZzaWdub3JlLCBkbGxzL3ZlcnNpb24vLmN2c2lnbm9yZSwKKwkgIGRsbHMvd2luMzJzLy5jdnNpZ25vcmUsIGRsbHMvd2luYXNwaS8uY3ZzaWdub3JlLAorCSAgZGxscy93aW5lZG9zLy5jdnNpZ25vcmUsIGRsbHMvd2luZXBzLy5jdnNpZ25vcmUsCisJICBkbGxzL3dpbmluZXQvLmN2c2lnbm9yZSwgZGxscy93aW5tbS8uY3ZzaWdub3JlLAorCSAgZGxscy93aW5ubHMvLmN2c2lnbm9yZSwgZGxscy93aW5zb2NrLy5jdnNpZ25vcmUsCisJICBkbGxzL3dpbnNwb29sLy5jdnNpZ25vcmUsIGRsbHMvd2ludHJ1c3QvLmN2c2lnbm9yZSwKKwkgIGRsbHMvd293MzIvLmN2c2lnbm9yZSwgZGxscy93c29jazMyLy5jdnNpZ25vcmUsCisJICBkbGxzL3gxMWRydi8uY3ZzaWdub3JlOgorCUFkZGVkIC5zcGVjLmRlZiBmaWxlcy4KKworCSogTWFrZS5ydWxlcy5pbiwgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLAorCSAgZGxscy9NYWtlZGxsLnJ1bGVzLmluLCBkbGxzL01ha2VmaWxlLmluLCBkbGxzL2NvbW1kbGcvTWFrZWZpbGUuaW4sCisJICBkbGxzL21ha2VfZGxscywgZGxscy93aW5lcHMvTWFrZWZpbGUuaW4sIHRvb2xzL3dpbmVidWlsZC9pbXBvcnQuYywKKwkgIHRvb2xzL3dpbmVidWlsZC9zcGVjMzIuYzoKKwlJbXBsZW1lbnRlZCBpbXBvcnQgbGlicmFyaWVzOyBvbiBVbml4IHdlIGltcG9ydCB0aGUgLmRlZiBmaWxlCisJZGlyZWN0bHksIG9uIE1pbmd3IHdlIHVzZSBpdCB0byBidWlsZCB0aGUgLmEgbGlicmFyeS4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGluY2x1ZGUvY29uZmlnLmguaW4sCisJICB0b29scy93aW5lYnVpbGQvYnVpbGQuaCwgdG9vbHMvd2luZWJ1aWxkL21haW4uYywKKwkgIHRvb2xzL3dpbmVidWlsZC9zcGVjMzIuYywgdG9vbHMvd2luZWJ1aWxkL3dpbmVidWlsZC5tYW4uaW46CisJTWFkZSBzdGRjYWxsIGRlY29yYXRpb24gaW4gLmRlZiBmaWxlcyB0aGUgZGVmYXVsdCwgYW5kIGFkZGVkIC1rIG9wdGlvbgorCXRvIHN3aXRjaCBpdCBvZmYuCisKKwkqIGRsbHMvb2xlYXV0MzIvTWFrZWZpbGUuaW4sIGRsbHMvb2xlYXV0MzIvdHlwZWxpYi5jLAorCSAgZGxscy9vbGVhdXQzMi90eXBlbGliMTYuYzoKKwlNYXJjdXMgTWVpc3NuZXIgPG1hcmN1c0BqZXQuZnJhbmtlbi5kZT4KKwlTcGxpdCBvdXQgMTZiaXQgY29kZSBpbnRvIHR5cGVsaWIxNi5jLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9sb2NhbGUuYzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJRG9uJ3QgdGVzdCB3aGV0aGVyIEdldHtDdXJyZW5jeSxEYXRlLE51bWJlcixUaW1lfUZvcm1hdEEgd3JpdGVzIGFzCisJbXVjaCBhcyBwb3NzaWJsZSBpbiB0aGUgYnVmZmVyIGV2ZW4gaWYgaXQgaXMgdG9vIHNtYWxsLiBUaGlzIGlzCisJdW5kb2N1bWVudGVkIGFuZCBkb2VzIG5vdCBtYXRjaCB0aGUgV2luOXggYmVoYXZpb3IuCisJU2tpcCBVbmljb2RlIHRlc3RzIG9uIFdpbjl4LgorCUZpeCB1c2FnZSBvZiBtZW1zZXQvc2l6ZW9mL0NPVU5UT0YuCisJRml4IHNpZ25lZC91bnNpZ25lZCB3YXJuaW5ncyAoaW4gTVNWQykgYnkgdXNpbmcgbHN0cmxlbkEgaW5zdGVhZCBvZgorCXN0cmxlbi4KKworCSogb2xlL29sZTJubHMuYzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJSW4gR2V0e0N1cnJlbmN5LE51bWJlcn1Gb3JtYXRBLCBTZXRMYXN0RXJyb3IgdG8KKwlFUlJPUl9JTlNVRkZJQ0lFTlRfQlVGRkVSIGlmIHRoZSBidWZmZXIgaXMgdG9vIHNtYWxsLgorCisJKiBkbGxzL2dsdTMyL2dsdTMyLnNwZWMsIGRsbHMva2VybmVsL2tlcm5lbDMyLnNwZWM6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJQWRkIHN0dWJzIGZvciBtaXNzaW5nIEFQSXMuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL2RpcmVjdG9yeS5jOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlTa2lwIHRoZSBVbmljb2RlIHRlc3RzIG9uIFdpbjl4LgorCVRlc3QgR2V0e1N5c3RlbSxXaW5kb3dzfURpcmVjdG9yeXtBLFd9KE5VTEwsIDApLiBUaGlzIGlzIGEgbW9yZQorCXN0YW5kYXJkIHdheSB0byBnZXQgbGVuX3dpdGhfbnVsbCB0b28uCisJQWRhcHQgdGhlIGVycm9yIGNvZGUgY2hlY2tzIHRvIHRha2UgaW50byBhY2NvdW50IHZhcmlhdGlvbnMgYmV0d2VlbgorCVdpbjl4IGFuZCBOVC4KKworCSogZGxscy9rZXJuZWwvdGVzdHMvZmlsZS5jLCBmaWxlcy9maWxlLmM6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJRml4IHRoZSBlcnJvciBjb2RlcyByZXR1cm5lZCBieSBEZWxldGVGaWxle0EsV30gdG8gbWF0Y2ggTlQuCisJQWRhcHQgdGhlIERlbGV0ZUZpbGVBIGVycm9yIGNvZGUgY2hlY2tzIHRvIHRha2UgaW50byBhY2NvdW50IHZhcmlhdGlvbnMKKwliZXR3ZWVuIFdpbjl4IGFuZCBOVC4KKwlUZXN0IERlbGV0ZUZpbGUoTlVMTCkuCisJQWRkIHRlc3RzIGZvciBEZWxldGVGaWxlVy4KKwlPbiBOVCwgY2FsbGluZyBfbGNsb3NlIG9uIGFuIGFscmVhZHkgY2xvc2VkIGhhbmRsZSB3aWxsIGNhdXNlIG1lbW9yeQorCWNvcnJ1cHRpb24gYW5kIHRodXMgc29tZXRpbWVzIGNyYXNoIC0+IHJlbW92ZWQgdGhlIHJlbGV2YW50IHRlc3QuCisJU2tpcCB0aGUgVW5pY29kZSB0ZXN0cyB3aGVuIG9uIFdpbjl4LgorCisJKiBkbGxzL21zdmNydC9tc3ZjcnQuc3BlYywgZGxscy9tc3ZjcnQyMC9tc3ZjcnQyMC5zcGVjLAorCSAgZGxscy9udGRsbC9udGRsbC5zcGVjLCBkbGxzL3dpbnNvY2svd3MyXzMyLnNwZWMsCisJICBkbGxzL3dzb2NrMzIvd3NvY2szMi5zcGVjLCB0b29scy93aW5lYnVpbGQvYnVpbGQuaCwKKwkgIHRvb2xzL3dpbmVidWlsZC9pbXBvcnQuYywgdG9vbHMvd2luZWJ1aWxkL3BhcnNlci5jLAorCSAgdG9vbHMvd2luZWJ1aWxkL3NwZWMzMi5jLCB0b29scy93aW5lYnVpbGQvd2luZWJ1aWxkLm1hbi5pbjoKKwlBZGRlZCBsaXN0IG9mIHN5bWJvbHMgdG8gaWdub3JlIGJ5IGRlZmF1bHQgaW4gd2luZWJ1aWxkLgorCU1hZGUgdGhlIC1pIG9wdGlvbiBzdXBwb3J0IHJlbW92aW5nIGlnbm9yZWQgc3ltYm9scyB0b28uCisJUmVtb3ZlZCB0aGUgLW5vaW1wb3J0IGZsYWcgaW4gc3BlYyBmaWxlcy4KKworCSogdG9vbHMvbWluZ3dyYXAuYzogV2FybmluZyBmaXguCisKKwkqIGRsbHMvb2xlMzIvYmluZGN0eC5jLCBkbGxzL29sZTMyL29sZTMyLnNwZWM6CisJUm9iZXJ0IFNoZWFybWFuIDxSLkouU2hlYXJtYW5Ad2Fyd2ljay5hYy51az4KKwlJbXBsZW1lbnRlZCBCaW5kTW9uaWtlciBmdW5jdGlvbi4KKworCSogZGxscy9zaGVsbDMyL3NoZWxsMzJfbWFpbi5jOgorCVJvbGYgS2FsYmVybWF0dGVyIDxyb2xmLmthbGJlcm1hdHRlckBjaXRlbmcuY29tPgorCUZpeCBzaGVsbDMyLkV4dHJhY3RJY29uIHdpdGggQS0+VyBhbmQgMTYgLT4gMzIgY2FsbHMuCisKKwkqIGRsbHMvd2luaW5ldC93aW5pbmV0LnNwZWM6IEFsYmVydG8gTWFzc2FyaSA8YWxieUBleGxuLmNvbT4KKwlBZGRlZCBzdHVicyBmb3IgRnRwQ29tbWFuZFtBfFddLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9jb2RlcGFnZS5jOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlUaGUgV2luOXggcGxhdGZvcm1zIHN1cHBvcnQgV2lkZUNoYXJUb011bHRpQnl0ZSBhbmQKKwlNdWx0aUJ5dGVUb1dpZGVDaGFyIGJ1dCBub3QgbHN0cmNtcFchIFNvIEkgaW1wbGVtZW50ZWQgb3VyIG93biBzbworCXRoYXQgd2UgY2FuIGhhdmUgYSBtZWFuaW5nZnVsIHRlc3QuCisKKwkqIG1zZG9zL2Rvc21lbS5jOiBKdWtrYSBIZWlub25lbiA8amhlaUBpa2kuZmk+CisJR2l2ZSBET1MgYXBwbGljYXRpb25zIDYzOGsgb2YgZnJlZSBjb252ZW50aW9uYWwgbWVtb3J5LgorCisJKiBkbGxzL29sZWF1dDMyL3RtYXJzaGFsLmM6IE1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCVNlcmlhbGl6ZS9kZXNlcmlhbGl6ZSBhbGwgcmVmdHlwZXMgaW4gVlRfVVNFUkRFRklORUQuCisKKwkqIGRsbHMvdXNlci90ZXN0cy9jbGFzcy5jOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlTa2lwIHRoZSBVbmljb2RlIHRlc3RzIChlZmZlY3RpdmVseSBhbGwgdGVzdHMgY3VycmVudGx5KSBvbiBXaW45eC4KKworMjAwMi0xMi0xMSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogTWFrZS5ydWxlcy5pbiwgZGxscy9nZGkvTWFrZWZpbGUuaW4sIGRsbHMva2VybmVsL01ha2VmaWxlLmluLAorCSAgZGxscy9zaGVsbDMyL01ha2VmaWxlLmluLCBkbGxzL3VzZXIvTWFrZWZpbGUuaW4sCisJICBwcm9ncmFtcy93aW5oZWxwL01ha2VmaWxlLmluOgorCVBhc3MgdGhlIC1KIG9wdGlvbiB0byB3cmMgdG8gYXZvaWQgaW5jbHVkaW5nIGluc3RhbGxlZCBoZWFkZXJzLgorCisJKiB0b29scy9taW5nd3JhcC5jOgorCVdpbmUgaW50ZXJuYWwgaW5jbHVkZXMgc2hvdWxkIG5vdCBiZSBpbiB0aGUgaW5jbHVkZSBwYXRoLgorCisJKiB0b29scy93cmMvTWFrZWZpbGUuaW4sIHRvb2xzL3dyYy93cmMuYzoKKwlEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCXdyYyBzaG91bGQgYmUgYXdhcmUgb2YgdGhlIGxvY2F0aW9uIG9mIHRoZSBzeXN0ZW0gaGVhZGVycy4KKworCSogdG9vbHMvY29uZmlnLmd1ZXNzLCB0b29scy9jb25maWcuc3ViOiBVcGRhdGVkIHRvIHRoZSBsYXRlc3QgdmVyc2lvbi4KKworCSogdG9vbHMvbWFrZWRlcC5jOgorCVRyeSB0byBvcGVuIHNvdXJjZSBmaWxlIGluIGN1cnJlbnQgZGlyZWN0b3J5IGZpcnN0IGluIGNhc2UgaXQgaXMgYQorCWdlbmVyYXRlZCBmaWxlLgorCisJKiBkbGxzL01ha2V0ZXN0LnJ1bGVzLmluOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlHZW5lcmF0ZSBwcm9wZXIgZGVwZW5kZW5jaWVzIGZvciB0ZXN0bGlzdC5jLgorCisJKiBkbGxzL2NvbW1kbGcvY2RsZ19TaS5yYywgZGxscy93aW5tbS93aW5tbV9TaS5yYzoKKwlSb2sgTWFuZGVsamMgPHJva21hbmRlbGpjQGhvdG1haWwuY29tPgorCUZpeGVkIHNvbWUgY2hhcmFjdGVycy4KKworCSogYWNsb2NhbC5tNCwgY29uZmlndXJlLCBjb25maWd1cmUuYWM6CisJQWRkZWQgV0lORV9DSEVDS19ERUZJTkUgbWFjcm8gdG8gZmFjdG9yIG91dCBzb21lIHJlcGVhdGVkIGNvZGUuCisKKwkqIGRsbHMva2VybmVsL3RpbWUuYywgZGxscy9udGRsbC9udGRsbC5zcGVjLCBkbGxzL250ZGxsL3RpbWUuYywKKwkgIGZpbGVzL2Rvc19mcy5jLCBpbmNsdWRlL3dpbnRlcm5sLmg6CisJR3n2cmd5ICdOb2cnIEplbmV5IDxub2dAc2RmLmxvbmVzdGFyLm9yZz4KKwktIEltcGxlbWVudCBSdGxMb2NhbFRpbWVUb1N5c3RlbVRpbWUgYW5kIFJ0bFN5c3RlbVRpbWVUb0xvY2FsVGltZS4KKwktIFVzZSBuZXcgdGltZSBmdW5jdGlvbnMgdG8gcmVpbXBsZW1lbnQgRmlsZVRpbWVUb0xvY2FsVGltZSBhbmQKKwkgIExvY2FsVGltZVRvRmlsZVRpbWUuCisKKwkqIHRvb2xzL3J1bnRlc3Q6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCUZpeCBzdGRlcnIgcmVkaXJlY3Rpb24uCisJU2ltcGxpZnkgJGluZmlsZSBleGlzdGVuY2UgdGVzdC4KKworCSogaW5jbHVkZS93aW5lL3Rlc3QuaDogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJV2hlbiByZXBvcnRpbmcgYSB0ZXN0IGZhaWx1cmUsIG9ubHkgcmVwb3J0IHRoZSBmaWxlIG5hbWUsIG5vdCB0aGUgZnVsbAorCXBhdGguCisJTWVyZ2Ugd2luZXRlc3Rfc2V0X3RyYWNlX2xvY2F0aW9uIHdpdGggd2luZXRlc3Rfc2V0X29rX2xvY2F0aW9uLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9wYXRoLmM6IEZyb206IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCSciJyBpcyBhbiBpbGxlZ2FsIGNoYXJhY3RlciBvbiBXaW45eCBzbyB3ZSBjYW5ub3QgdGVzdCBpdC4KKwlHZXRTaG9ydFBhdGhOYW1lQSBiZWhhdmVzIGRpZmZlcmVudGx5IG9uIFdpbjl4IGFuZCBOVDogb24gTlQgaXQKKwlzdWNjZWVkcyBldmVuIGlmIG5vdCBhbGwgcGF0aCBjb21wb25lbnRzIGV4aXN0LCBhcyBsb25nIGFzIHRoZXkgYXJlCisJYWxyZWFkeSBpbiB0aGUgOC4zIGZvcm1hdC4KKwlXaW5lIGFwcGFyZW50bHkgaW1wbGVtZW50cyB0aGUgTlQgYmVoYXZpb3IgdGh1cyBtYW55IHRvZG9fd2luZSB3ZW50CisJYXdheS4KKwlGaXhlZCBzb21lIGVycm9yIGNvZGUgY2hlY2tzIHRvIHRha2UgaW50byBhY2NvdW50IGFsbCBwb3NzaWJsZSByZXR1cm4KKwl2YWx1ZXMuCisJR2V0VGVtcEZpbGVOYW1lQSBhcHBlYXJzIHRvIG9ubHkgdXNlIHRoZSBsb3dlciAxNmJpdHMgb2YgdGhlIGlkIG9uCisJV2luOTUgKGFuZCBuZXZlciByZXR1cm5zIG1vcmUgdGhhbiAxNiBiaXRzIG9uIG90aGVyIHBsYXRmb3JtcykuCisJR2V0TG9uZ1BhdGhOYW1lQSBpcyBtaXNzaW5nIG9uIHNvbWUgV2luZG93cyB2ZXJzaW9ucy4KKwlNb2RpZmllZCB0aGUgR2V0VGVtcFBhdGggdGVzdHMgdG8gbWFrZSBzdXJlIHRoZXkgcmV0dXJuIHRoZSBleHBlY3RlZAorCXZhbHVlLiBSZW1vdmVkIHRoZSByZWR1bmRhbnQgdGVzdHMgKGUuZy4gaWYgYnVmWzBdPT0wIHRoZW4gYnVmIT0iZm9vIiwKKwlubyBuZWVkIHRvIHRlc3QgYm90aCkuCisJVGhlICdsZW5fd2l0aF9udWxsIC0gMScgY2FzZSBpcyBub3QgdGVzdGFibGUgYXMgdGhlIFdpbmRvd3MgYmVoYXZpb3IKKwl2YXJpZXMgdG9vIG11Y2ggYmV0d2VlbiB2ZXJzaW9ucy4KKwlXZSBjYW5ub3QgY2hlY2sgd2hldGhlciBXaW5kb3dzIHRvdWNoZXMgdGhlIGJ1ZmZlciBlaXRoZXIgYXMgdGhpcworCWhlYXZpbHkgZGVwZW5kcyBvbiB0aGUgV2luZG93cyB2ZXJzaW9uIGFuZCBzcGVjaWZpYyBjaXJjdW1zdGFuY2VzIG9mCisJdGhlIGNhbGwuCisJRmluYWxseSBOVDQgc29tZXRpbWVzIGV4YWdnZXJhdGVzIHRoZSByZXF1aXJlZCBidWZmZXIgc2l6ZS4KKworCSogcHJvZ3JhbXMvd2NtZC93Y21kbWFpbi5jOiBTeWx2YWluIFBldHJlb2xsZSA8c3BldHJlb2xsZUB5YWhvby5mcj4KKwlJbXBsZW1lbnQgJFYgaW4gYnVpbHRpbiBQUk9NUFQuCisKKzIwMDItMTItMTAgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvZHBsYXl4L2RwbG9iYnkuYywgZGxscy9tc3ZjcnQvbG9jYWxlLmMsIGRsbHMvbnRkbGwvZXhjZXB0aW9uLmMsCisJICBkbGxzL250ZGxsL2xhcmdlX2ludC5jLCBkbGxzL250ZGxsL3NpZ25hbF9pMzg2LmMsCisJICBkbGxzL250ZGxsL3NpZ25hbF9wb3dlcnBjLmMsIGRsbHMvb2xlYXV0MzIvcGFyc2VkdC5oLAorCSAgZGxscy9zaGx3YXBpL29yZGluYWwuYywgZGxscy90d2Fpbi90d2Fpbi5oLCBkbGxzL3dpbmVkb3MvaW50MTcuYywKKwkgIGRsbHMvd2luZWRvcy9pbnQyOS5jLCBkbGxzL3dpbmVkb3MvaW50MzEuYywKKwkgIGRsbHMvd2luZWRvcy9pbnRlcnJ1cHRzLmMsIGRsbHMvd2luZXBzL3BwZC5jLAorCSAgZGxscy93aW5lcHMvdHJ1ZXR5cGUuYywgZGxscy93aW5lcHMvdHlwZTFhZm0uYywKKwkgIGRsbHMveDExZHJ2L3hyZW5kZXIuYywgZ3JhcGhpY3MveDExZHJ2L2luaXQuYywgaWYxNjMyL3JlbGF5LmMsCisJICBpbmNsdWRlL21pc2NlbXUuaCwgaW5jbHVkZS9tc2FjbS5oLCBpbmNsdWRlL21zdmNydC9zdGRsaWIuaCwKKwkgIGluY2x1ZGUvd2luZGVmLmgsIGluY2x1ZGUvd2luZS9leGNlcHRpb24uaCwKKwkgIGluY2x1ZGUvd2luZS9ycGNzc19zaGFyZWQuaCwgaW5jbHVkZS93aW5udC5oLCBsaWJyYXJ5L2xvYWRlci5jLAorCSAgbWVtb3J5L2luc3RyLmMsIG1pc2MvcmVnaXN0cnkuYywgcmVsYXkzMi9yZWxheTM4Ni5jLAorCSAgc2VydmVyL2NoYW5nZS5jLCBzZXJ2ZXIvZXZlbnQuYywgc2VydmVyL21hcHBpbmcuYywgc2VydmVyL211dGV4LmMsCisJICBzZXJ2ZXIvcmVnaXN0cnkuYywgc2VydmVyL3JlcXVlc3QuYywgc2VydmVyL3NlbWFwaG9yZS5jLAorCSAgc2VydmVyL3RpbWVyLmMsIHNlcnZlci90cmFjZS5jLCB0b29scy93aW5lZHVtcC9kZWJ1Zy5jLAorCSAgdG9vbHMvd2luZWR1bXAvbmUuYywgdG9vbHMvd2luZWR1bXAvcGUuYzoKKwl3aW5udC5oIHNob3VsZCBub3QgYmUgc2VsZi1jb250YWluZWQsIGl0IG11c3QgZGVwZW5kIG9uIHdpbmRlZi5oIHNvCisJdGhhdCBTVFJJQ1Qgd29ya3MgY29ycmVjdGx5OyBtb3ZlZCBzb21lIGRlZmluaXRpb25zIGJhY2sgdG8gd2luZGVmLmgKKwl3aGVyZSB0aGV5IGJlbG9uZywgYW5kIHJlbW92ZWQgYSBjb3VwbGUgb2YgZGVmaW5pdGlvbnMgdGhhdCBkb24ndAorCWV4aXN0IG9uIFdpbmRvd3MuCisKKwkqIGRsbHMvTWFrZXRlc3QucnVsZXMuaW4sIHByb2dyYW1zL01ha2Vwcm9nLnJ1bGVzLmluLAorCSAgcHJvZ3JhbXMvYXZpdG9vbHMvTWFrZWZpbGUuaW46CisJLURTVFJJQ1QgaXMgbm93IHRoZSBkZWZhdWx0IGJlaGF2aW9yLgorCisJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYzogU3RldmVuIEVkd2FyZHMgPGlzb19sYXRpb25AaG90bWFpbC5jb20+CisJQWxwaGEgcG9ydGluZyBmaXguCisKKwkqIGRsbHMvbnRkbGwvbnQuYywgZGxscy9udGRsbC9udGRsbC5zcGVjOgorCUFsYmVydG8gTWFzc2FyaSA8YWxieUBleGxuLmNvbT4KKwlBZGRlZCBwYXJhbWV0ZXJzIHRvIE50WHh4UG9ydCBmdW5jdGlvbnMgcHJvdG90eXBlcy4KKworCSogaW5jbHVkZS93aW5kZWYuaDogVmluY2VudCBC6XJvbiA8dmJlcm9uQG1lY2Fuby5nbWUudXNoZXJiLmNhPgorCUFkZCBhIGRlZmluaXRpb24gZm9yIFNUUklDVC4KKworCSogaW5jbHVkZS93aW5udC5oOiBKZWZmIFNtaXRoIDx3aHlkb3VidEBob3RtYWlsLmNvbT4KKwlBZGRlZCBkZWZpbml0aW9ucyBmb3IgUkVHX1FXT1JEIGFuZCBSRUdfUVdPUkRfTElUVExFX0VORElBTi4KKworCSogZGxscy93aW5lZG9zL2ludDIxLmMsIGluY2x1ZGUvbWlzY2VtdS5oLCBtc2Rvcy9kb3NtZW0uYywKKwkgIG1zZG9zL2ludDIxLmM6CisJSnVra2EgSGVpbm9uZW4gPGpoZWlAaWtpLmZpPgorCU1vdmUgaW50MjEgY291bnRyeSBpbmZvcm1hdGlvbiBoYW5kbGluZyB0byB3aW5lZG9zLgorCUltcHJvdmUgY291bnRyeSBpbmZvcm1hdGlvbiBoYW5kbGluZy4KKwlNb3ZlIGNvbGxhdGUgdGFibGUgdG8gdXBwZXIgbWVtb3J5LgorCisJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgaW5jbHVkZS9jb25maWcuaC5pbiwgdG9vbHMvd3JjL3dyYy5jOgorCURpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJR3JhY2VmdWxseSBkZWdyYWRlIHRvIGdldG9wdCBpZiBnZXRvcHRfbG9uZyBkb2VzIG5vdCBleGlzdC4KKworCSogZGxscy93aW5tbS90ZXN0cy93YXZlLmM6IFZpbmNlbnQgQulyb24gPHZiZXJvbkBtZWNhbm8uZ21lLnVzaGVyYi5jYT4KKwlTdXBwcmVzcyBzb21lIHNpZ25lZC91bnNpZ25lZCBjb21wYXJpc29uIHdhcm5pbmcuCisKKwkqIGRsbHMvc2hlbGwzMi9pY29uY2FjaGUuYywgaW5jbHVkZS9zaGVsbGFwaS5oOgorCVJvbGYgS2FsYmVybWF0dGVyIDxyb2xmLmthbGJlcm1hdHRlckBjaXRlbmcuY29tPgorCUNoYW5nZSB0aGUgcmV0dXJuIHZhbHVlIGZvciBFeHRyYWN0SWNvbkV4IGZyb20gSElDT04gdG8gVUlOVCBhbmQgbWFrZQorCXRoZSBmdW5jdGlvbiBjYWxsIGRpcmVjdGx5IHVzZXIzMi5Qcml2YXRlRXh0cmFjdEljb25FeC4KKworCSogZGxscy91c2VyL2V4dGljb24uYywgZGxscy91c2VyL3VzZXIzMi5zcGVjLCBpbmNsdWRlL3dpbnVzZXIuaDoKKwlSb2xmIEthbGJlcm1hdHRlciA8cm9sZi5rYWxiZXJtYXR0ZXJAY2l0ZW5nLmNvbT4KKwktIE1vZGlmeSBJQ09fRXh0cmFjdEljb25FeFcgdG86CisJICAgIHJldHVybiBtb3JlIGNvbXBsaWFudCB2YWx1ZXMgZm9yIHVzYWdlIGluIFByaXZhdGVFeHRyYWN0SWNvbnMgYW5kIFByaXZhdGVFeHRyYWN0SWNvbkV4CisJICAgIGFjY2VwdCBhbmQgZmlsbCBpbiB0aGUgaWNvbiBpZGVudGlmaWVyIGFycmF5IGNvcnJlY3RseSBpZiBwcm92aWRlZAorCSAgICBhbGxvdyB0byByZXRyaWV2ZSBib3RoIHNtYWxsIGFuZCBsYXJnZSBpY29ucyB0b2dldGhlci4KKwktIFNpbXBsaWZ5IFByaXZhdGVFeHRyYXh0SWNvbnMKKwktIE1vZGlmeSBQcml2YXRlRXh0cmFjdEljb25FeFcgdG86CisJICAgdXNlIGNvbXBhdGlibGUgc2lnbmF0dXJlIHRvIEV4dHJhY3RJY29uRXggaW4gc2hlbGwzMiB3aGljaCBpdCByZWFsbHkgaXMgZGlyZWN0bHkKKwkgICAgIGFzIHRlc3RlZCBvbiBXMksgYnkgY2FsbGluZyBib3RoIGZ1bmN0aW9ucyB3aXRoIHRoZSBzYW1lIHBhcmFtZXRlcnMKKwkgICBkaXJlY3RseSBjYWxsIGludGVybmFsIGV4dHJhY3Rpb24gZnVuY3Rpb24KKwkgICBmaXggZXJyb3Igd2hlbiByZXF1ZXN0aW5nIDEgaWNvbiBmb3IgYm90aCBzaXplcworCisJKiBkbGxzL2NvbWN0bDMyL2NvbWN0bDMyLmgsIGRsbHMvY29tY3RsMzIvdHJhY2tiYXIuYzoKKwlEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCUdldCByaWQgb2YgZ2VuZXJpYyBub3RpZmljYXRpb24gc3VwcG9ydCBpbiBjb21jdHJsMzIuIFRoZSBNUyBkb2NzIHdlcmUKKwltaXNsZWFkaW5nIGluIHRoYXQgYWxsIGNvbnRyb2xzIHNlbmQgdGhlc2Ugbm90aWZpY2F0aW9ucy4gVGhleSBkb24ndC4KKworCSogZGxscy9jb21jdGwzMi9saXN0dmlldy5jOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCS0gUGx1ZyBhIGJ1bmNoIG9mIG1lbW9yeSBsZWFrcy4KKwktIE1ha2UgcmFuZ2VzX2Rlc3Ryb3kgYmVoYXZlIG1vcmUgbGlrZSBmcmVlKCkuCisJLSBGaXggbWVzc2VkIHVwIGluZGVudGF0aW9uIGZyb20gdGFicyBzZXQgdG8gNCBjaGFycy4KKwktIFVwZGF0ZWQgdGhlIGRvY3VtZW50YXRpb24uCisKKwkqIGRsbHMvd2lubW0vd2luZW9zcy9hdWRpby5jOiBDaHJpcyBNb3JnYW4gPGNtb3JnYW5AYWx1bS53cGkuZWR1PgorCVJlc2V0IHRoZSBvc3MgZGV2aWNlIGJlZm9yZSB3ZSB0cnkgdG8gY2xvc2UgaXQuICBGaXhlcyBoYW5nIG9uIHN0YXJ0dXAKKwlvZiBTdGFyY3JhZnQgZHVlIHRvIG9zcyBkZXZpY2UgYmVpbmcgaW4gYSBiYWQgc3RhdGUuCisKKwkqIGRsbHMvb2xlYXV0MzIvb2xlYXV0MzIuc3BlYywgZGxscy9vbGVhdXQzMi92YXJpYW50LmM6CisJSmFzb24gRWRtZWFkZXMgPHVzQHRoZS1lZG1lYWRlcy5kZW1vbi5jby51az4KKwlWYXJBZGQgc3VwcG9ydCBmb3IgaW50ZWdlcnMuCisKKwkqIGRvY3VtZW50YXRpb24vZmFxLnNnbWw6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJIFVwZGF0ZSBXaW5lIEZBUSB0byBsYXRlc3QgcmV2aXNpb24uCisJICAtIEJldHRlciBCb2Nocy9QbGV4ODYgaW5mbworCSAgLSBBZGQgUSZBIGFib3V0IHVwZ3JhZGluZyBjb25maWd1cmF0aW9uCisJICAtIFJlcGxhY2UgRGVuZWJhJ3MgQ2FudmFzIDcgd2l0aCBBYmlsaXR5IE9mZmljZQorCUZyb20gZW50cmllcyBzdWJtaXR0ZWQgYnkgVG9tIFdpY2tsaW5lLgorCisJKiB3aW5kb3dzL2lucHV0LmM6IE1pa2UgSGVhcm4gPG0uaGVhcm5Ac2lnbmFsLnFpbmV0aXEuY29tPgorCU1ha2UgV01fTU9VU0VIT1ZFUiBjb29yZGluYXRlcyBjbGllbnQgcmVsYXRpdmUuCisKKwkqIGluY2x1ZGUvYmFzZXRzZC5oLCBpbmNsdWRlL3dpbm50Lmg6CisJU3RldmVuIEVkd2FyZHMgPGlzb19sYXRpb25AaG90bWFpbC5jb20+CisJQWxwaGEgcG9ydGluZyBmaXhlcy4KKworMjAwMi0xMi0wNyAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogdG9vbHMvd2luZWJ1aWxkL21haW4uYywgdG9vbHMvd2luZWJ1aWxkL3BhcnNlci5jLAorCSAgdG9vbHMvd2luZWJ1aWxkL3dpbmVidWlsZC5tYW4uaW46CisJUmVwbGFjZWQgJ2lnbm9yZScgc3BlYyBmaWxlIGRpcmVjdGl2ZSBieSB0aGUgLWkgb3B0aW9uLgorCisJKiBkbGxzL01ha2VkbGwucnVsZXMuaW46IERvbid0IGJ1aWxkIHRlc3RzIGJ5IGRlZmF1bHQganVzdCB5ZXQuCisKKwkqIGRsbHMvc2hlbGwzMi9pY29uY2FjaGUuYywgZGxscy9zaGVsbDMyL3NoZWxsMzIuc3BlYywKKwkgIGluY2x1ZGUvc2hsb2JqLmg6CisJUm9sZiBLYWxiZXJtYXR0ZXIgPHJvbGYua2FsYmVybWF0dGVyQGNpdGVuZy5jb20+CisJQWRkIFNIRGVmRXh0cmFjdEljb257QVd9IGZ1bmN0aW9uLgorCisJKiBkb2N1bWVudGF0aW9uL2RlYnVnZ2VyLnNnbWw6CisJVG9ueSBMYW1icmVndHMgPHRvbnlfbGFtYnJlZ3RzQHRlbHVzcGxhbmV0Lm5ldD4KKwlVcGRhdGUgZGVidWdnZXIgZG9jdW1lbnRhdGlvbiBmb3Igd2hlbiBwcm9ncmFtcyBoYW5ncy4KKworCSogZGxscy9zaGx3YXBpL3NobHdhcGkuc3BlYzoKKwlSb2xmIEthbGJlcm1hdHRlciA8cm9sZi5rYWxiZXJtYXR0ZXJAY2l0ZW5nLmNvbT4KKwlGaXggc2lnbmF0dXJlIG9mIFNITFdBUElfMzM0IGFzIGl0cyBzdHJpbmcgcGFyYW1ldGVyIHJlYWxseSBpcyBhbgorCW91dHB1dC4KKworCSogaW5jbHVkZS9kZHJhdy5oOiBWaW5jZW50IELpcm9uIDx2YmVyb25AbWVjYW5vLmdtZS51c2hlcmIuY2E+CisJRmlsbHMgdGhlIG5hbWUgb2YgdGhlIGFyZ3VtZW50cyBvZiB0aGUgQ09NIG1ldGhvZHMsIGVsc2UgTVNWQyBkb2Vzbid0CisJbGlrZSB0aGVtLgorCisJKiBmaWxlcy9kcml2ZS5jOiBTdGVmYW4gTGVpY2h0ZXIgPFN0ZWZhbi5MZWljaHRlckBjYW1MaW5lLmNvbT4KKwlNb3ZlZCBpbXBsZW1lbnRhdGlvbiBvZiBHZXREaXNrRnJlZVNwYWNlRXggZnJvbSBhc2NpaSB0byB1bmljb2RlLgorCisJKiBkbGxzL2tlcm5lbC9rZXJuZWwzMi5zcGVjLCBkbGxzL3dpbmVkb3MvZGV2aWNlcy5jLAorCSAgZGxscy93aW5lZG9zL2Rvc2V4ZS5oLCBkbGxzL3dpbmVkb3MvaGltZW0uYywgZGxscy93aW5lZG9zL2ludDIxLmMsCisJICBkbGxzL3dpbmVkb3MvbW9kdWxlLmMsIGluY2x1ZGUvbXNkb3MuaCwgbXNkb3MvaW50MjEuYzoKKwlKdWtrYSBIZWlub25lbiA8amhlaUBpa2kuZmk+CisJTW92ZSBpbnQwOCBzdHViIGFuZCBMT0wgdG8gdXBwZXIgbWVtb3J5LgorCU1vdmUgc2ltcGxlIGludDIxIGZ1bmN0aW9ucyB0byB3aW5lZG9zLgorCisyMDAyLTEyLTA2ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL01ha2VkbGwucnVsZXMuaW4sIGRsbHMvTWFrZXRlc3QucnVsZXMuaW4sCisJICBwcm9ncmFtcy9NYWtlcHJvZy5ydWxlcy5pbiwgdG9vbHMvd2luZWJ1aWxkL2J1aWxkLmgsCisJICB0b29scy93aW5lYnVpbGQvbWFpbi5jLCB0b29scy93aW5lYnVpbGQvcmVzMzIuYywKKwkgIHRvb2xzL3dpbmVidWlsZC93aW5lYnVpbGQubWFuLmluOgorCUNoZWNrIGZpbGUgaGVhZGVyIHRvIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBvYmplY3QgZmlsZXMgYW5kIHJlc291cmNlcworCXNvIHRoYXQgdGhlIC1yIG9wdGlvbiBpcyBub3QgbmVjZXNzYXJ5LgorCisJKiB0b29scy9NYWtlZmlsZS5pbjogRml4ZWQgbWluZ3dyYXAgaW5zdGFsbCBjb21tYW5kLgorCisJKiBkbGxzL3dpbmluZXQvdGVzdHMvaHR0cC5jOgorCUZpeGVkIHRoZSBsaXN0IG9mIGFjY2VwdGVkIHR5cGVzIHBhc3NlZCB0byBIdHRwT3BlblJlcXVlc3RBLgorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGwzMl9tYWluLmgsIGRsbHMvc2hlbGwzMi9zaGVsbG9yZC5jOgorCVJvbGYgS2FsYmVybWF0dGVyIDxyb2xmLmthbGJlcm1hdHRlckBjaXRlbmcuY29tPgorCUltcGxlbWVudCBQYXJzZUZpZWxkVyBmdW5jdGlvbiBiYXNlZCBvbiBpdHMgQU5TSSBzaWJsaW5nLgorCisJKiBkbGxzL3dpbmluZXQvaHR0cC5jOiBBbGJlcnRvIE1hc3NhcmkgPGFsYnlAZXhsbi5jb20+CisJIC0gV2hlbiBzZW5kaW5nIGEgcmVxdWVzdCB1c2luZyBIdHRwT3BlblJlcXVlc3QvSHR0cFNlbmRSZXF1ZXN0LCBzZW5kIHRoZQorCSAgIFVzZXItQWdlbnQgaGVhZGVyOyBmaXhlZCB0aGUgQWNjZXB0IGFuZCB0aGUgUmVmZXJlciBoZWFkZXIgaGFuZGxpbmcgdG8KKwkgICByZWFsbHkgd29yay4KKwkgLSBGaXhlZCBidWcgaW4gdGhlIEhUVFBfUHJvY2Vzc0hlYWRlcjogd2hlbiBhIHNlY29uZCB2YWx1ZSB3YXMgc3VwcG9zZWQgdG8gYmUKKwkgICBhZGRlZCB0byBhbiBleGlzdGluZyBvbmUsIHRoZSBidWZmZXIgd2FzIHJlZHVjZWQgdG8gYmUgMSBjaGFyIGxvbmcgaW5zdGVhZAorCSAgIG9mIGJlaW5nIGV4cGFuZGVkLCBkdWUgdG8gdGhlIHByZWNlZGVuY2UgcnVsZXMgb2YgdGhlIG9wZXJhdG9yICc/Jy4KKwkgLSBBZGRlZCBzdXBwb3J0IGZvciBvcGVuaW5nIFVSTHMgdGhhdCByZWRpcmVjdCB0byBhIGRpZmZlcmVudCBwbGFjZS4KKworCSogZGxscy9jb21jdGwzMi9wcm9wc2hlZXQuYywgaW5jbHVkZS9wcnNodC5oOgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCURlZmluZSBQU0hfV0laQVJEOTcgKHByb2JsZW0gcmVwb3J0ZWQgYnkgamF5bXpAZnJlZS5mcikuCisKKwkqIGRsbHMvd2luc29jay9zb2NrZXQuYzogQ2hyaXN0b3BoIEZyaWNrIDxmcmlja0BTQy1OZXR3b3Jrcy5kZT4KKwlGb3JjZSAoV1NfKVNPX1JFVVNFQUREUiBiZWZvcmUgYmluZGluZyB0byBhIHNvY2tldDsgaWdub3JlCisJKFdTXylTT19ET05UUk9VVEU7IE5ldHdvcmsgZ2FtZXMgaW4gR3JhbmQgUHJpeCBMZWdlbmRzIGFuZCBOYXNjYXIgMjAwMgorCWFyZSBwb3NzaWJsZSBub3cuCisKKwkqIGRsbHMvTWFrZWRsbC5ydWxlcy5pbiwgZGxscy9NYWtldGVzdC5ydWxlcy5pbjoKKwlCdWlsZCB0ZXN0IHByb2dyYW1zIGFzIHBhcnQgb2YgdGhlIG5vcm1hbCBidWlsZC4KKworCSogZGxscy9zaGx3YXBpL29yZGluYWwuYywgZGxscy9zaGx3YXBpL3NobHdhcGkuc3BlYzoKKwlSb2xmIEthbGJlcm1hdHRlciA8cm9sZi5rYWxiZXJtYXR0ZXJAY2l0ZW5nLmNvbT4KKwlGaXggc29tZSBwYXJhbWV0ZXIgdHlwZXMuCisKKwkqIGluY2x1ZGUvb2JqYmFzZS5oLCBpbmNsdWRlL3dpbmUvb2JqX2Jhc2UuaDoKKwlPdmUgS2FhdmVuIDxvdmVrQHRyYW5zZ2FtaW5nLmNvbT4KKwlNb3ZlZCBDT00gQVBJIHByb3RvdHlwZXMgaW4gaW5jbHVkZS93aW5lL29ial9iYXNlLmggdG8KKwlpbmNsdWRlL29iamJhc2UuaC4KKworCSogdG9vbHMvd3JjL3dyYy5jOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCU1ha2Ugd3JjIGNvbW1hbmQgbGluZSBjb21wYXRpYmxlIHdpdGggd2luZHJlcy4KKworCSogdG9vbHMvTWFrZWZpbGUuaW46CisJRml4ZWQgcGFzc2luZyBvZiAtRElOQ0xVREVESVIgd2hlbiBidWlsZGluZyBtaW5nd3JhcC4KKworCSogaW5jbHVkZS9NYWtlZmlsZS5pbjogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlJbnN0YWxsIERESyBoZWFkZXJzIGFzIHdlbGwuCisKKzIwMDItMTItMDUgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGluY2x1ZGUvb2JqYmFzZS5oOiBBZGRlZCBycGMuaCBpbmNsdWRlIHRvIGZpeCB0ZXN0cyBjb21waWxhdGlvbi4KKworCSogZGxscy9jb21jdGwzMi9pbWFnZWxpc3QuYywgZGxscy9kZHJhdy9kM2Rjb21tb24uYywKKwkgIGRsbHMvZGRyYXcvZDNkZGV2aWNlL21haW4uYywgZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jLAorCSAgZGxscy9kZHJhdy9kM2RleGVjdXRlYnVmZmVyLmMsIGRsbHMvZGRyYXcvZDNkbGlnaHQuYywKKwkgIGRsbHMvZGRyYXcvZDNkbWF0ZXJpYWwuYywgZGxscy9kZHJhdy9kM2R0ZXh0dXJlLmMsCisJICBkbGxzL2RkcmF3L2QzZHZlcnRleGJ1ZmZlci5jLCBkbGxzL2RkcmF3L2QzZHZpZXdwb3J0LmMsCisJICBkbGxzL2RkcmF3L21lc2EuYywgZGxscy9kcGxheXgvZHBjbGFzc2ZhY3RvcnkuYywKKwkgIGRsbHMvb2xlMzIvYW50aW1vbmlrZXIuYywgZGxscy9vbGUzMi9iaW5kY3R4LmMsCisJICBkbGxzL29sZTMyL2NvbXBvYmouYywgZGxscy9vbGUzMi9jb21wb3NpdGVtb25pa2VyLmMsCisJICBkbGxzL29sZTMyL2RhdGFjYWNoZS5jLCBkbGxzL29sZTMyL2Vycm9yaW5mby5jLAorCSAgZGxscy9vbGUzMi9maWxlbW9uaWtlci5jLCBkbGxzL29sZTMyL2Z0bWFyc2hhbC5jLCBkbGxzL29sZTMyL2lmcy5jLAorCSAgZGxscy9vbGUzMi9pdGVtbW9uaWtlci5jLCBkbGxzL29sZTMyL21vbmlrZXIuYywKKwkgIGRsbHMvb2xlMzIvb2xlMzJfbWFpbi5jLCBkbGxzL29sZTMyL29sZTMyX21haW4uaCwKKwkgIGRsbHMvb2xlMzIvb2xlb2JqLmMsIGRsbHMvb2xlMzIvc3RnX2JpZ2Jsb2NrZmlsZS5jLAorCSAgZGxscy9vbGUzMi9zdG9yYWdlLmMsIGRsbHMvb2xlMzIvc3RvcmFnZTMyLmgsCisJICBkbGxzL29sZWF1dDMyL2Nvbm5wdC5jLCBkbGxzL29sZWF1dDMyL2Rpc3BhdGNoLmMsCisJICBkbGxzL29sZWF1dDMyL29sZWZvbnQuYywgZGxscy9vbGVhdXQzMi9zYWZlYXJyYXkuYywKKwkgIGRsbHMvb2xlYXV0MzIvdG1hcnNoYWwuYywgZGxscy9vbGVhdXQzMi90eXBlbGliLmMsCisJICBkbGxzL3JwY3J0NC9jcHJveHkuYywgZGxscy9ycGNydDQvY3BzZi5jLCBkbGxzL3JwY3J0NC9jc3R1Yi5jLAorCSAgZGxscy9ycGNydDQvbmRyX21hcnNoYWxsLmMsIGRsbHMvcnBjcnQ0L25kcl9taWRsLmMsCisJICBkbGxzL3JwY3J0NC9uZHJfb2xlLmMsIGRsbHMvc2hkb2N2dy9jbGFzc2luZm8uYywKKwkgIGRsbHMvc2hkb2N2dy9zaGRvY3Z3LmgsIGRsbHMvc2hlbGwzMi9kcmFnZHJvcGhlbHBlci5jLAorCSAgZGxscy9zaGVsbDMyL2ZvbGRlcnMuYywgZGxscy9zaGVsbDMyL3NoZWxsZm9sZGVyLmgsCisJICBkbGxzL3NoZWxsMzIvc2hlbGxvcmQuYywgZGxscy9zaGVsbDMyL3NoZmxkcl9kZXNrdG9wLmMsCisJICBkbGxzL3NoZWxsMzIvc2hmbGRyX2ZzLmMsIGRsbHMvc2hlbGwzMi9zaGZsZHJfbXljb21wLmMsCisJICBkbGxzL3NoZWxsMzIvc2hsZm9sZGVyLmMsIGRsbHMvc2hlbGwzMi9zaGxtZW51LmMsCisJICBkbGxzL3NoZWxsMzIvc2h2X2JnX2NtZW51LmMsIGRsbHMvc2hlbGwzMi9zaHZfaXRlbV9jbWVudS5jLAorCSAgZGxscy9zaGx3YXBpL2NsaXN0LmMsIGRsbHMvc2hsd2FwaS9pc3RyZWFtLmMsCisJICBkbGxzL3NobHdhcGkvb3JkaW5hbC5jLCBkbGxzL3NobHdhcGkvcmVnc3RyZWFtLmMsCisJICBkbGxzL3NobHdhcGkvdGhyZWFkLmMsIGluY2x1ZGUvZHBsYXkuaCwgaW5jbHVkZS9vYWlkbC5oLAorCSAgaW5jbHVkZS9vYmpiYXNlLmgsIGluY2x1ZGUvb2JqaWRsLmgsIGluY2x1ZGUvb2NpZGwuaCwgaW5jbHVkZS9vbGUuaCwKKwkgIGluY2x1ZGUvb2xlMi5oLCBpbmNsdWRlL29sZWF1dG8uaCwgaW5jbHVkZS9vbGVjdGwuaCwKKwkgIGluY2x1ZGUvb2xlZGxnLmgsIGluY2x1ZGUvb2xlaWRsLmgsIGluY2x1ZGUvc2VydnByb3YuaCwKKwkgIGluY2x1ZGUvc2hsZ3VpZC5oLCBpbmNsdWRlL3NobG9iai5oLCBpbmNsdWRlL3Vua253bi5oLAorCSAgaW5jbHVkZS91cmxtb24uaCwgaW5jbHVkZS93aW5lL29ial9iYXNlLmgsIGluY2x1ZGUvd2luZS9vYmpfbWlzYy5oLAorCSAgaW5jbHVkZS93aW5lL29ial9zZXJ2aWNlcHJvdmlkZXIuaDoKKwlPdmUgS2FhdmVuIDxvdmVrQHRyYW5zZ2FtaW5nLmNvbT4KKwlNYWtlIHN1cmUgdGhhdCBubyBmaWxlcyBleGNlcHQgdW5rbnduLmggaW5jbHVkZSB3aW5lL29ial9iYXNlLmgKKwlkaXJlY3RseS4KKworCSogZGxscy9jb21tZGxnL2ZpbGVkbGc5NS5jLCBkbGxzL250ZGxsL2ZpbGUuYywgZGxscy9udGRsbC9oZWFwLmMsCisJICBkbGxzL250ZGxsL21pc2MuYywgZGxscy9udGRsbC9udC5jLCBkbGxzL250ZGxsL29tLmMsCisJICBkbGxzL250ZGxsL3JlZy5jLCBkbGxzL250ZGxsL3NlYy5jLCBkbGxzL250ZGxsL3N5bmMuYywKKwkgIGxvYWRlci9tb2R1bGUuYywgc2NoZWR1bGVyL3Byb2Nlc3MuYywgc2NoZWR1bGVyL3RocmVhZC5jLAorCSAgd2luMzIvZGV2aWNlLmM6CisJUGF0cmlrIFN0cmlkdmFsbCA8cHNAbGVpc3NuZXIuc2U+CisJUmVwbGFjZSAweCVwIHdpdGggJXAuCisKKwkqIGRsbHMveDExZHJ2L2tleWJvYXJkLmM6IFBldGVyIE1sYWRlayA8cG1sYWRla0BzdXNlLmN6PgorCUFkZGVkIDIgbW9yZSBDemVjaCBrZXlib2FyZCBsYXlvdXRzIGNvbXBhdGlibGUgd2l0aCBYRnJlZTg2IDQuMS4KKworCSogZGxscy93aW5pbmV0L2ludGVybmV0LmMsIGRsbHMvd2luaW5ldC91cmxjYWNoZS5jLAorCSAgZGxscy93aW5pbmV0L3dpbmluZXQuc3BlYywgaW5jbHVkZS93aW5pbmV0Lmg6CisJQWxiZXJ0byBNYXNzYXJpIDxhbGJ5QGV4bG4uY29tPgorCSAtIE1vdmVkIEdldFVybENhY2hlRW50cnlJbmZvQSBhbmQgQ29tbWl0VXJsQ2FjaGVFbnRyeUEgdG8gdXJsY2FjaGUuYy4KKwkgLSBBZGRlZCBzdHViIGltcGxlbWVudGF0aW9uIG9mIEdldFVybENhY2hlRW50cnlJbmZvRXhXLgorCSAtIEltcGxlbWVudGVkIEludGVybmV0UXVlcnlPcHRpb25XLCBJbnRlcm5ldENvbWJpbmVVcmxbQXxXXS4KKwkgLSBJbnRlcm5ldFNldE9wdGlvblcgcHJpbnRzIEZJWE1FcyB3aXRoIG1vcmUgaW5mb3JtYXRpb25zLgorCSAtIElOVEVSTkVUX1NldExhc3RFcnJvciB3YXMgY3Jhc2hpbmcgaWYgY2FsbGVkIGFmdGVyIHRoZSB0aHJlYWQKKwkgICBsb2NhbCBzdG9yYWdlIGFyZWEgaGFkIGFscmVhZHkgYmVlbiBkZWxldGVkIChpdCBoYXBwZW5zIGlmIHlvdQorCSAgIGNsb3NlIEludGVybmV0IEV4cGxvcmVyIHdoaWxlIHRoZSBkb3dubG9hZCBpcyBzdGlsbCBpbiBwcm9ncmVzcykuCisKKwkqIGRsbHMvZHNvdW5kL2Rzb3VuZF9tYWluLmM6CisJQmFjayBvdXQgdGhlIGFSdHMgdm9sdW1lIHBhdGNoLCB0aGlzIGlzIG5vdCB1c2VyLWZyaWVuZGx5IGF0IGFsbC4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRsbHMvZHNvdW5kL01ha2VmaWxlLmluLAorCSAgZGxscy9kc291bmQvdGVzdHMvLmN2c2lnbm9yZSwgZGxscy9kc291bmQvdGVzdHMvTWFrZWZpbGUuaW4sCisJICBkbGxzL2Rzb3VuZC90ZXN0cy9kc291bmQuYzoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCUEgc2ltcGxlIHRlc3QgZm9yIElEaXJlY3RTb3VuZC5HZXRDYXBzLgorCisJKiBkb2N1bWVudGF0aW9uL2ZhcS5zZ21sLCBkb2N1bWVudGF0aW9uL3dpbmUtZG9jLnNnbWwsCisJICBkb2N1bWVudGF0aW9uL3dpbmUtZmFxLnNnbWw6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGNvZGV3ZWF2ZXJzLmNvbT4KKwlXcmFwIGZhcS5zZ21sIGluIGFuIGFydGljbGUgdGFnIGluIHdpbmUtZG9jLnNnbWwuCisJU2V0IHRoZSBhcnRpY2xlIGNsYXNzIHRvICdmYXEnLgorCU1vdmUgdGhlIHRpdGxlIHRvIGZhcS5zZ21sLgorCisJKiBkb2N1bWVudGF0aW9uL3Rlc3Rpbmcuc2dtbDogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGNvZGV3ZWF2ZXJzLmNvbT4KKwlSZW1vdmVkIHJlZmVyZW5jZXMgdG8gdGhlIFBlcmwgdGVzdHMuCisJQWRkZWQgYSBzZWN0aW9uIGRlc2NyaWJpbmcgaG93IHRvIGJ1aWxkIGFuZCBydW4gdGVzdHMgb24gV2luZG93cy4KKwlUaGUgVmlzdWFsIEMrKyBzZWN0aW9uIHNob3VsZCBiZSByZWxhdGl2ZWx5IGNvbXBsZXRlIGJ1dCB0aGUgTWluR1cgYW5kCisJY3Jvc3MtY29tcGlsaW5nIHNlY3Rpb24gc3RpbGwgbmVlZCBzb21lIHdvcmsuCisKKwkqIGluY2x1ZGUvd2luZS9vYmpfZXh0cmFjdGljb24uaDoKKwlSb2xmIEthbGJlcm1hdHRlciA8cm9sZi5rYWxiZXJtYXR0ZXJAY2l0ZW5nLmNvbT4KKwlBZGQgcHJvdG90eXBlcyBmb3IgSUV4dHJhY3RJY29uVyBpbnRlcmZhY2UuCisKKwkqIGRsbHMvb2xlYXV0MzIvdG1hcnNoYWwuYzogTWFyY3VzIE1laXNzbmVyIDxtZWlzc25lckBzdXNlLmRlPgorCU1hcnNoYWwgVlRfUjQgKDQgYnl0ZSBmbG9hdCkuCisKKwkqIHRvb2xzLy5jdnNpZ25vcmUsIHRvb2xzL01ha2VmaWxlLmluLCB0b29scy9taW5nd3JhcC5jOgorCURpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJTmV3IE1pbkdXIHdyYXBwZXIgdGhhdCBtYWtlcyBnY2Mgb24gTGludXggYmVoYXZlIGxpa2UgTWluR1cgb24KKwlXaW5kb3dzLCB1c2luZyB0aGUgV2luZSBoZWFkZXJzLgorCisJKiBkbGxzL2RkcmF3L2QzZGRldmljZS9tZXNhLmMsIGRsbHMvZGRyYXcvZGlyZWN0M2QvbWFpbi5jLAorCSAgZGxscy9kZHJhdy9kaXJlY3QzZC9tYWluLmgsIGRsbHMvZGRyYXcvZGlyZWN0M2QvbWVzYS5jLAorCSAgZGxscy9kZHJhdy9tZXNhX3ByaXZhdGUuaDoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCUhhdmUgb25seSBvbmUgR1VJRCBmb3IgV2luZSdzIE9wZW5HTCBEM0QgZGV2aWNlLgorCisJKiB0b29scy93aW5laW5zdGFsbDogU3lsdmFpbiBQZXRyZW9sbGUgPHNwZXRyZW9sbGVAeWFob28uZnI+CisJSW5zdGFsbCBhcHBzIGluIHdpbmRvd3Ncc3lzdGVtIHNpbmNlIHRoYXQncyB3aGF0IHRoZSBzeXN0ZW0gZGlyZWN0b3J5CisJaXMgc2V0IHRvIGluIHRoZSBjb25maWcgZmlsZS4KKworCSogZGxscy93aW5zb2NrL3NvY2tldC5jOgorCU1hcnRpbiBXaWxjayA8TWFydGluLldpbGNrQEZ1aml0c3UtU2llbWVucy5jb20+CisJQ29ycmVjdCAyIGJ1Z3MgY29ubmVjdGVkIHRvIGFzeW5jaHJvbm91cyBzaHV0ZG93bigpOgorCS0gQ2Fubm90IGNhbGwgV1NBR2V0T3ZlcmxhcHBlZFJlc3VsdCgpIGJlY2F1c2UgY29tcGxldGlvbiBmdW5jdGlvbgorCSAgZGVzdHJveXMgdGhlIG92ZXJsYXBwZWQgc3RydWN0dXJlLgorCS0gd3MyX2FzeW5jX2NsZWFudXAoKSBjYWxsZWQgdHdpY2UgaW4gY2FzZSBvZiBmYWlsdXJlLgorCisJKiBkbGxzL3dpbnNvY2svdGVzdHMvc29jay5jOgorCU1hcnRpbiBXaWxjayA8TWFydGluLldpbGNrQEZ1aml0c3UtU2llbWVucy5jb20+CisJU2V0IHRoZSBzb2NrZXQgdG8gb3ZlcmxhcHBlZCBtb2RlLgorCisJKiBkbGxzL3JwY3J0NC90ZXN0cy9ycGMuYzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJU2tpcCBVbmljb2RlIHRlc3RzIGlmIHRoZXJlJ3Mgbm8gVW5pY29kZSBzdXBwb3J0LgorCisJKiBkbGxzL2Rzb3VuZC9kc291bmRfbWFpbi5jOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCVJldHVybiBhbiBlcnJvciBpZiBkd1NpemUgaXMgbm90IHZhbGlkLgorCU5vIG5lZWQgdG8gZHVtcCBkd0ZsYWdzIGJlZm9yZSBpdCBpcyBpbml0aWFsaXplZC4KKworCSogaW5jbHVkZS9tc3ZjcnQvZXJybm8uaDogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJQWRkZWQgRURFQURMT0NLLgorCisyMDAyLTEyLTAzICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBNYWtlLnJ1bGVzLmluLCBpbmNsdWRlL01ha2VmaWxlLmluOgorCUFkZGVkIHJ1bGVzIGZvciBjb21waWxpbmcgSURMIGZpbGVzLgorCisJKiBkb2N1bWVudGF0aW9uLy5jdnNpZ25vcmUsIGRvY3VtZW50YXRpb24vTWFrZWZpbGUuaW46CisJQWRkZWQgcnVsZXMgZm9yIGJ1aWxkaW5nIHRoZSBGQVEuCisKKwkqIGNvbnRyb2xzL2NvbWJvLmMsIGNvbnRyb2xzL2xpc3Rib3guYywgY29udHJvbHMvc2Nyb2xsLmMsCisJICBkbGxzL2NvbWN0bDMyL3JlYmFyLmMsIGRsbHMvdXNlci9ob29rLmMsIGRsbHMvdXNlci9ob29rMTYuYywKKwkgIGRsbHMvdXNlci9tZXNzYWdlLmMsIGRsbHMvdXNlci9tZXNzYWdlLmgsIGRsbHMvdXNlci9tc2cxNi5jLAorCSAgZGxscy91c2VyL3VzZXJfbWFpbi5jLCBkbGxzL3VzZXIvd2lucHJvYy5oLCBkbGxzL3gxMWRydi9ldmVudC5jLAorCSAgZGxscy94MTFkcnYvd2luZG93LmMsIGRsbHMveDExZHJ2L3dpbnBvcy5jLCBpbmNsdWRlL2lucHV0LmgsCisJICBpbmNsdWRlL21lc3NhZ2UuaCwgaW5jbHVkZS9xdWV1ZS5oLCBpbmNsdWRlL3NweS5oLAorCSAgaW5jbHVkZS9zeXNtZXRyaWNzLmgsIGluY2x1ZGUvdXNlci5oLCBpbmNsdWRlL3dpbi5oLAorCSAgaW5jbHVkZS93aW5wcm9jLmgsIHdpbmRvd3MvY2xhc3MuYywgd2luZG93cy9jdXJzb3JpY29uLmMsCisJICB3aW5kb3dzL2RlZmRsZy5jLCB3aW5kb3dzL2RlZnduZC5jLCB3aW5kb3dzL2lucHV0LmMsCisJICB3aW5kb3dzL21lc3NhZ2UuYywgd2luZG93cy9wYWludGluZy5jLCB3aW5kb3dzL3F1ZXVlLmMsCisJICB3aW5kb3dzL3NweS5jLCB3aW5kb3dzL3N5c2NvbG9yLmMsIHdpbmRvd3Mvc3lzbWV0cmljcy5jLAorCSAgd2luZG93cy9zeXNwYXJhbXMuYywgd2luZG93cy90aW1lci5jLCB3aW5kb3dzL3VzZXIuYywgd2luZG93cy93aW4uYywKKwkgIHdpbmRvd3Mvd2lucG9zLmMsIHdpbmRvd3Mvd2lucHJvYy5jOgorCVJlbW92ZWQgaW5wdXQuaCwgcXVldWUuaCwgc3B5LmggYW5kIHN5c21ldHJpY3MuaCBhbmQgbW92ZWQgdGhlaXIKKwljb250ZW50cyB0byB1c2VyLmguCisJTW92ZWQgbWVzc2FnZS5oIGFuZCB3aW5wcm9jLmggdG8gZGxscy91c2VyLgorCisJKiBkb2N1bWVudGF0aW9uL2ZhcS5zZ21sLCBkb2N1bWVudGF0aW9uL21ha2Vfd2luZWhxLAorCSAgZG9jdW1lbnRhdGlvbi93aW5lLWRvYy5zZ21sLCBkb2N1bWVudGF0aW9uL3dpbmUtZmFxLnNnbWw6CisJVG9ueSBMYW1icmVndHMgPHRvbnlfbGFtYnJlZ3RzQHRlbHVzcGxhbmV0Lm5ldD4KKwlBZGRlZCB0aGUgRkFRLCBhbmQgYnVpbGQgaXQgd2hlbiBjcmVhdGluZyB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlCisJd2Vic2l0ZS4KKworCSogc2NoZWR1bGVyL3Byb2Nlc3MuYzoKKwlVd2UgQm9ubmVzIDxib25AZWxla3Ryb24uaWtwLnBoeXNpay50dS1kYXJtc3RhZHQuZGU+CisJVXNlIENPTVNQRUMgY29tbWFuZCBpbnRlcnByZXRlciB0byBydW4gLmJhdCBmaWxlcy4KKworCSogbXNkb3MvaW50MjEuYzogQW5kcmVhcyBNb2hyIDxhbmRpQHJobHgwMS5maHQtZXNzbGluZ2VuLmRlPgorCUZpeGVkIGVycm9yIGNoZWNraW5nIGluIGZpbGUgY3JlYXRpb24gYW5kIGNsb3NpbmcuCisKKwkqIGRsbHMvZGRyYXcvbWVzYS5jOiBDaHJpc3RpYW4gQ29zdGEgPHRpdGFuLmNvc3RhQHdhbmFkb28uZnI+CisJQWRkIHN1cHBvcnQgZm9yIEQzREJMRU5EX09ORSBmb3IgRDNEUkVOREVSU1RBVEVfe0RFU1QvU1JDfUJMRU5ELgorCisJKiBkbGxzL2ljbXAvaWNtcF9tYWluLmMsIGluY2x1ZGUvTWFrZWZpbGUuaW4sIGluY2x1ZGUvaWNtcGFwaS5oLAorCSAgaW5jbHVkZS9pcGV4cG9ydC5oLCBpbmNsdWRlL3dpbmUvaWNtcGFwaS5oLCBpbmNsdWRlL3dpbmUvaXBleHBvcnQuaDoKKwlJbnN0YWxsIGlwZXhwb3J0LmggYW5kIGljbXBhcGkuaCB3aXRoIHRoZSBvdGhlciBXaW5kb3dzIGluY2x1ZGVzLgorCisJKiBkbGxzL29sZWF1dDMyL3ZhcmlhbnQuYywgaW5jbHVkZS93aW5lL29ial9vbGVhdXQuaCwKKwkgIGluY2x1ZGUvd3R5cGVzLmgsIGluY2x1ZGUvd3R5cGVzLmlkbDoKKwlPdmUgS2FhdmVuIDxvdmVrQHRyYW5zZ2FtaW5nLmNvbT4KKwlBZGRlZCBtb3JlIHR5cGVzIHRvIHd0eXBlcy5pZGwuCisKKwkqIGRsbHMvd2luc29jay90ZXN0cy9zb2NrLmM6CisJTWFydGluIFdpbGNrIDxNYXJ0aW4uV2lsY2tARnVqaXRzdS1TaWVtZW5zLmNvbT4KKwlGaXhlZCB0ZXN0IHRvIHJ1biBmaW5lICgwIGVycm9ycykgb24gV2luIE5ULgorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGwzMi5zcGVjLCBkbGxzL3NoZWxsMzIvc2hlbGxvcmQuYywKKwkgIGluY2x1ZGUvc2hsb2JqLmg6CisJQWxiZXJ0byBNYXNzYXJpIDxhbGJ5QGV4bG4uY29tPgorCVNIR2V0U2V0U2V0dGluZ3MgaGFzIG5vdyB0aGUgcmlnaHQgc2lnbmF0dXJlIGFuZCB0aGUgZXhwZWN0ZWQgYmVoYXZpb3IKKwl3aGVuIHRoZSB1c2VyIGlzIGFza2luZyB0byBnZXQgdGhlIGN1cnJlbnQgc2V0dGluZ3MuCisKKwkqIGRsbHMvc2hlbGwzMi9pY29uY2FjaGUuYzoKKwlSb2xmIEthbGJlcm1hdHRlciA8cm9sZi5rYWxiZXJtYXR0ZXJAY2l0ZW5nLmNvbT4KKwlGaXggQU5TSS0+VW5pY29kZSBjYWxsaW5nIGZvciBFeHRyYWN0SWNvbkV4QS9XLgorCisJKiBkbGxzL3VzZXIvZXh0aWNvbi5jLCBkbGxzL3VzZXIvdXNlcjMyLnNwZWMsIGluY2x1ZGUvd2ludXNlci5oOgorCVJvbGYgS2FsYmVybWF0dGVyIDxyb2xmLmthbGJlcm1hdHRlckBjaXRlbmcuY29tPgorCU1vZGlmeSBQcml2YXRlRXh0cmFjdEljb25ze0FXfSB0byBtYXRjaCBiZXR0ZXIgY3VycmVudCBNRFNOCisJZG9jdW1lbnRhdGlvbi4KKworCSogaW5jbHVkZS9NYWtlZmlsZS5pbjogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlDaGFuZ2UgaGVhZGVyIGluc3RhbGwgbG9jYXRpb24gYXMgc3VjaDoKKwkgICR7cHJlZml4fS9pbmNsdWRlL3dpbmUvd2luZG93cyAgLS0gc3RhbmRhcmQgV2luZG93cyBoZWFkZXJzCisJICAke3ByZWZpeH0vaW5jbHVkZS93aW5lL21zdmNydCAgIC0tIE1TIFZpc3VhbCBDIFJ1bnRpbWUgbGlicmFyeQorCSAgJHtwcmVmaXh9L2luY2x1ZGUvd2luZSAgICAgICAgICAtLSBXaW5lIHNwZWNpZmljIGhlYWRlcnMKKworCSogZGxscy9nZGkvZnJlZXR5cGUuYywgZGxscy9nZGkvbWZkcnYvb2JqZWN0cy5jLAorCSAgZGxscy9nZGkvd2luMTZkcnYvaW5pdC5jLCBkbGxzL250ZGxsL3NpZ25hbF9wb3dlcnBjLmMsCisJICBkbGxzL3R0eWRydi9vYmplY3RzLmMsIGRsbHMvdHR5ZHJ2L3R0eWRydi5oLAorCSAgZGxscy90dHlkcnYvdHR5ZHJ2X21haW4uYywgZGxscy90dHlkcnYvdXNlci5jLAorCSAgZGxscy94MTFkcnYveDExZm9udC5oLCBncmFwaGljcy9mb250ZW5naW5lLmMsIGdyYXBoaWNzL3BhaW50aW5nLmMsCisJICBncmFwaGljcy9wYXRoLmMsIGdyYXBoaWNzL3gxMWRydi94Zm9udC5jLCBpbmNsdWRlL2ZvbnQuaCwKKwkgIGluY2x1ZGUvZ2RpLmgsIGluY2x1ZGUvcGF0aC5oLCBpbmNsdWRlL3gxMWZvbnQuaCwgbG9hZGVyL3Rhc2suYywKKwkgIG9iamVjdHMvZGMuYywgb2JqZWN0cy9mb250LmMsIG9iamVjdHMvZ2Rpb2JqLmM6CisJTWVyZ2VkIGZvbnQuaCBhbmQgcGF0aC5oIGludG8gZ2RpLmguIE1vdmVkIHgxMWZvbnQuaCB0bworCWRsbHMveDExZHJ2LiBSZW1vdmVkIGEgbnVtYmVyIG9mIHVubmVjZXNzYXJ5ICNpbmNsdWRlcy4KKworCSogdG9vbHMvd2lkbC9oZWFkZXIuYywgdG9vbHMvd2lkbC9oZWFkZXIuaCwgdG9vbHMvd2lkbC9wYXJzZXIubCwKKwkgIHRvb2xzL3dpZGwvcGFyc2VyLnksIHRvb2xzL3dpZGwvcHJveHkuYywgdG9vbHMvd2lkbC93aWRsLmMsCisJICB0b29scy93aWRsL3dpZGwuaCwgdG9vbHMvd2lkbC93aWRsdHlwZXMuaDoKKwlPdmUgS2FhdmVuIDxvdmVrQHRyYW5zZ2FtaW5nLmNvbT4KKwlQYXJzZSB0aGUgTk9UIG9wZXJhdG9yLCB0aGUgW2lkZW1wb3RlbnRdIGF0dHJpYnV0ZSwgYW5kIHRoZSBoYW5kbGVfdAorCWFuZCBlcnJvcl9zdGF0dXNfdCB0eXBlcy4gSW1wcm92ZWQgc29tZSBwYXJzaW5nIHJ1bGVzIHRvIGdldCByaWQgb2YKKwl0aGUgTElOS19MQVNUIGFuZCBMSU5LX1NBRkUgbWFjcm9zLiBFbmNsb3NlIGdlbmVyYXRlZCAuaCBmaWxlIHdpdGhpbgorCWFuIGV4dGVybiAiQyIgKGZvciBDKyspLiBPdXRwdXQgZnVuY3Rpb24gcHJvdG90eXBlcyBmb3IgcmVndWxhciBSUEMKKwlpbnRlcmZhY2VzLiAgRml4ZWQgYSBjb3VwbGUgb2YgYnVncy4KKworCSogZGxscy93aW5lZG9zL2ludDIxLmMsIG1zZG9zL2ludDIxLmM6IEp1a2thIEhlaW5vbmVuIDxqaGVpQGlraS5maT4KKwlDbGVhbiB1cCBpbnQyMSBoYW5kbGluZy4gTW92ZSBlcnJvciBoYW5kbGluZyB0byB3aW5lZG9zLgorCUNhbGwgSU5UX0ludDIxSGFuZGxlciBvbmx5IHRvIGVtdWxhdGUgc2VsZWN0ZWQgZnVuY3Rpb25zLgorCisyMDAyLTEyLTAyICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2tlcm5lbC9rZXJuZWwzMi5zcGVjLCBkbGxzL3dpbmVkb3MvTWFrZWZpbGUuaW4sCisJICBkbGxzL3dpbmVkb3MvZG9zZXhlLmgsIGRsbHMvd2luZWRvcy9kb3N2bS5jLCBkbGxzL3dpbmVkb3MvaGltZW0uYywKKwkgIGRsbHMvd2luZWRvcy9pbnQ2Ny5jLCBpbmNsdWRlL21pc2NlbXUuaCwgbXNkb3MvZG9zbWVtLmM6CisJSnVra2EgSGVpbm9uZW4gPGpoZWlAaWtpLmZpPgorCU1vdmUgRFBNSSBzZWdtZW50cyB0byB3aW5lZG9zLgorCisJKiBkbGxzL2RkcmF3L2QzZHRleHR1cmUuYywgZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jOgorCUxpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJLSBvbmx5IGhhbmRsZSBtZW1vcnkgYWxsb2NhdGlvbiBmb3Igbm9uLWFscmVhZHkgbG9hZGVkIHRleHR1cmVzCisJLSBpbXBsZW1lbnQgR2V0Q2FwcyBmb3IgRDNERGV2aWNlNworCisJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGxscy9ycGNydDQvTWFrZWZpbGUuaW4sCisJICBkbGxzL3JwY3J0NC9ycGNfYmluZGluZy5oLCBkbGxzL3JwY3J0NC9ycGNfZXBtYXAuYywKKwkgIGRsbHMvcnBjcnQ0L3JwY3J0NC5zcGVjLCBkbGxzL3JwY3J0NC9ycGNydDRfbWFpbi5jLAorCSAgZGxscy9ycGNydDQvcnBjc3NfbnBfY2xpZW50LmMsIGRsbHMvcnBjcnQ0L3JwY3NzX25wX2NsaWVudC5oLAorCSAgaW5jbHVkZS9ycGNkY2UuaCwgaW5jbHVkZS9ycGNkY2VwLmgsIGluY2x1ZGUvcnBjbmRyLmgsCisJICBpbmNsdWRlL3dpbmJhc2UuaCwgaW5jbHVkZS93aW5lL3JwY3NzX3NoYXJlZC5oLAorCSAgcHJvZ3JhbXMvTWFrZWZpbGUuaW4sIHByb2dyYW1zL3JwY3NzLy5jdnNpZ25vcmUsCisJICBwcm9ncmFtcy9ycGNzcy9NYWtlZmlsZS5pbiwgcHJvZ3JhbXMvcnBjc3MvZXBtYXBfc2VydmVyLmMsCisJICBwcm9ncmFtcy9ycGNzcy9ucF9zZXJ2ZXIuYywgcHJvZ3JhbXMvcnBjc3MvcnBjc3MuaCwKKwkgIHByb2dyYW1zL3JwY3NzL3JwY3NzX21haW4uYzoKKwlHcmVnIFR1cm5lciA8Z210dXJuZXIwMDdAYW1lcml0ZWNoLm5ldD4sCisJT3ZlIEthYXZlbiA8b3Zla0B0cmFuc2dhbWluZy5jb20+CisJLSBwcmVsaW1pbmFyeSBpbXBsZW1lbnRhdGlvbiBvZiBlbmRwb2ludC1tYXBwaW5nIHZpYSBhIG5ldyBvbi1kZW1hbmQKKwkgIHNlcnZlci1pc2ggcHJvY2VzcworCS0gbW9yZSBoZWFkZXIgZml4dXBzCisJLSAocmUpaW1wbGVtZW50IFJwY0VwUmVnaXN0ZXJBLCBScGNFcFVucmVnaXN0ZXIsIGFuZAorCSAgUnBjRXBSZXNvbHZlQmluZGluZyB1c2luZyB0aGUgbmV3IHJwY3NzIGZ1bmN0aW9uYWxpdHkKKwktIHVwZGF0ZSB0aGUgdG9kbyBsaXN0IGluIHJwY3J0NF9tYWluLmMgYSBiaXQKKwktIG1hbnkgYmVhdXRpZmljYXRpb25zIGFuZCB0b3VjaC11cHMKKwktIGNvbW1hbmQtbGluZSBjb25maWd1cmFibGUgdGltZW91dAorCS0gbWljcm8tY2xpZW50IGltYmVkZGVkIGluIG5wX3NlcnZlci5jCisKKwkqIGRsbHMvZGRyYXcvZDNkZGV2aWNlL21lc2EuYzogQ2hyaXN0aWFuIENvc3RhIDx0aXRhbi5jb3N0YUB3YW5hZG9vLmZyPgorCUhhbmRsZSBEM0RMSUdIVFNUQVRFX0NPTE9SVkVSVEVYIHRvIHByZXZlbnQgU2V0TGlnaHRTdGF0ZSBmcm9tCisJZmFpbGluZy4KKworCSogZGxscy9jYWJpbmV0L01ha2VmaWxlLmluLCBkbGxzL2NhYmluZXQvZmNpLmMsIGRsbHMvY2FiaW5ldC9mZGkuYywKKwkgIGluY2x1ZGUvZmNpLmgsIGluY2x1ZGUvZmRpLmg6CisJUGF0cmlrIFN0cmlkdmFsbCA8cHNAbGVpc3NuZXIuc2U+CisJQWRkZWQgRklYTUU6cyBpbiB0aGUgc3R1YnMuCisKKwkqIGRsbHMvZGRyYXcvZDNkX3ByaXZhdGUuaCwgZGxscy9kZHJhdy9kM2RkZXZpY2UvbWFpbi5jLAorCSAgZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jLCBkbGxzL2RkcmF3L2QzZHRleHR1cmUuYzoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCS0gaW1wbGVtZW50IHRoZSB0ZXh0dXJpbmcgdGhlIEQzRDMgd2F5CisJLSBwcmVwYXJlIGZvciBtdWx0aS10ZXh0dXJpbmcgc3VwcG9ydAorCisJKiBpbmNsdWRlL3dpbmdkaS5oOiBPdmUgS2FhdmVuIDxvdmVrQHRyYW5zZ2FtaW5nLmNvbT4KKwlQcm90ZWN0IFBBTEVUVEVFTlRSWSBhbmQgTE9HUEFMRVRURSB3aXRoICNpZm5kZWZzLgorCisJKiBkbGxzL2tlcm5lbC9rZXJuZWwzMi5zcGVjLCBkbGxzL3dpbmVkb3MvaW50MjEuYywgbXNkb3MvZHBtaS5jLAorCSAgbXNkb3MvaW50MjEuYzoKKwlKdWtrYSBIZWlub25lbiA8amhlaUBpa2kuZmk+CisJUmVuYW1lIG9sZCBET1MzQ2FsbCBhcyBJTlRfSW50MjFIYW5kbGVyIGFuZCBtYWtlIG5ldyBET1MzQ2FsbCBjYWxsCisJZGlyZWN0bHkgd2luZWRvcyBpbnQyMSBoYW5kbGVyLgorCisJKiBkbGxzL3dpbmVkb3MvaW50MTMuYywgd2luMzIvZGV2aWNlLmM6IEp1a2thIEhlaW5vbmVuIDxqaGVpQGlraS5maT4KKwlNb3ZlIGludDEzIGhhbmRsZXIgdG8gd2luZWRvcy4KKworCSogZGxscy93aW5tbS9taWRpbWFwL21pZGltYXAuYzogSmVmZiBTbWl0aCA8d2h5ZG91YnRAaG90bWFpbC5jb20+CisJRml4IGZvciBNSURJIE1hcHBlci4KKworCSogY29udHJvbHMvYnV0dG9uLmMsIGNvbnRyb2xzL2NvbWJvLmMsIGNvbnRyb2xzL2VkaXQuYywKKwkgIGRsbHMvYXZpZmlsMzIvYWNtc3RyZWFtLmMsIGRsbHMvYXZpZmlsMzIvYXBpLmMsCisJICBkbGxzL2F2aWZpbDMyL2F2aWZpbGUuYywgZGxscy9hdmlmaWwzMi9leHRyYWNodW5rLmMsCisJICBkbGxzL2F2aWZpbDMyL2dldGZyYW1lLmMsIGRsbHMvYXZpZmlsMzIvaWNtc3RyZWFtLmMsCisJICBkbGxzL2F2aWZpbDMyL3dhdmZpbGUuYywgZGxscy9jb21jdGwzMi9hbmltYXRlLmMsCisJICBkbGxzL2NvbWN0bDMyL2NvbWJvZXguYywgZGxscy9jb21jdGwzMi9jb21tY3RybC5jLAorCSAgZGxscy9jb21jdGwzMi9kYXRldGltZS5jLCBkbGxzL2NvbWN0bDMyL2ZsYXRzYi5jLAorCSAgZGxscy9jb21jdGwzMi9oZWFkZXIuYywgZGxscy9jb21jdGwzMi9ob3RrZXkuYywKKwkgIGRsbHMvY29tY3RsMzIvaXBhZGRyZXNzLmMsIGRsbHMvY29tY3RsMzIvbGlzdHZpZXcuYywKKwkgIGRsbHMvY29tY3RsMzIvbW9udGhjYWwuYywgZGxscy9jb21jdGwzMi9uYXRpdmVmb250LmMsCisJICBkbGxzL2NvbWN0bDMyL3BhZ2VyLmMsIGRsbHMvY29tY3RsMzIvcHJvZ3Jlc3MuYywKKwkgIGRsbHMvY29tY3RsMzIvcmViYXIuYywgZGxscy9jb21jdGwzMi9zdGF0dXMuYywgZGxscy9jb21jdGwzMi90YWIuYywKKwkgIGRsbHMvY29tY3RsMzIvdG9vbGJhci5jLCBkbGxzL2NvbWN0bDMyL3Rvb2x0aXBzLmMsCisJICBkbGxzL2NvbWN0bDMyL3RyYWNrYmFyLmMsIGRsbHMvY29tY3RsMzIvdHJlZXZpZXcuYywKKwkgIGRsbHMvY29tY3RsMzIvdXBkb3duLmMsIGRsbHMvY29tbWRsZy9maWxlZGxnOTUuYywKKwkgIGRsbHMvZGRyYXcvZHN1cmZhY2UvZGliLmMsIGRsbHMvaW1tMzIvaW1tLmMsCisJICBkbGxzL2tlcm5lbC90ZXN0cy9hbGxvYy5jLCBkbGxzL21zYWNtL2ZpbHRlci5jLCBkbGxzL21zYWNtL2Zvcm1hdC5jLAorCSAgZGxscy9tc2FjbS9pbWFhZHAzMi9pbWFhZHAzMi5jLCBkbGxzL21zYWNtL21zYWNtMzJfbWFpbi5jLAorCSAgZGxscy9tc2FjbS9tc2FkcDMyL21zYWRwMzIuYywgZGxscy9tc2FjbS9tc2c3MTEvbXNnNzExLmMsCisJICBkbGxzL21zYWNtL3BjbWNvbnZlcnRlci5jLCBkbGxzL21zYWNtL3N0cmVhbS5jLAorCSAgZGxscy9tc2FjbS93aW5lbXAzL21wZWdsMy5jLCBkbGxzL21zdmlkZW8vbWNpd25kLmMsCisJICBkbGxzL21zdmlkZW8vbXN2aWRlb19tYWluLmMsIGRsbHMvb2xlMzIvb2xlMnN0dWJzLmMsCisJICBkbGxzL3JpY2hlZGl0L3JpY2hlZGl0LmMsIGRsbHMvc2V0dXBhcGkvdmlydGNvcHkuYywKKwkgIGRsbHMvc2hlbGwzMi9jb250cm9sLmMsIGRsbHMvc2hlbGwzMi9kaWFsb2dzLmMsCisJICBkbGxzL3NoZWxsMzIvc2hsZXhlYy5jLCBkbGxzL3NobHdhcGkvYXNzb2MuYywKKwkgIGRsbHMvc2hsd2FwaS9vcmRpbmFsLmMsIGRsbHMvc2hsd2FwaS9yZWcuYywKKwkgIGRsbHMvc2hsd2FwaS9yZWdzdHJlYW0uYywgZGxscy9zaGx3YXBpL3Rlc3RzL3NocmVnLmMsCisJICBkbGxzL3R0eWRydi9iaXRtYXAuYywgZGxscy90dHlkcnYvd25kLmMsIGRsbHMvdXNlci9kZGUvY2xpZW50LmMsCisJICBkbGxzL3VzZXIvZGRlL21pc2MuYywgZGxscy91c2VyL2RkZS9zZXJ2ZXIuYywgZGxscy91c2VyL3Jlc291cmNlLmMsCisJICBkbGxzL3dpbmVkb3MvdmdhLmMsIGRsbHMveDExZHJ2L3dpbnBvcy5jLCBncmFwaGljcy9wYXRoLmMsCisJICBvYmplY3RzL2VuaG1ldGFmaWxlLmMsIHByb2dyYW1zL3dpbmVjb25zb2xlL3VzZXIuYywKKwkgIHByb2dyYW1zL3dpbnZlci93aW52ZXIuYywgd2luZG93cy9kaWFsb2cuYywgd2luZG93cy9tdWx0aW1vbi5jLAorCSAgd2luZG93cy9wYWludGluZy5jOgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCVJlbW92ZWQgdW5uZWNlc3NhcnkgSEFORExFIHR5cGVjYXN0cy4KKworMjAwMi0xMS0zMCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jOiBDaHJpc3RpYW4gQ29zdGEgPHRpdGFuLmNvc3RhQHdhbmFkb28uZnI+CisJQWRkIEQzRCBjYXBhYmlsaXR5LgorCisJKiBkbGxzL2RkcmF3L2QzZF9wcml2YXRlLmgsIGRsbHMvZGRyYXcvZDNkZGV2aWNlL21lc2EuYywKKwkgIGRsbHMvZGRyYXcvZDNkdmVydGV4YnVmZmVyLmMsIGRsbHMvZGRyYXcvZGlyZWN0M2QvbWVzYS5jLAorCSAgZGxscy9kZHJhdy9oZWxwZXIuYywgZGxscy9kZHJhdy9tZXNhX3ByaXZhdGUuaCwgaW5jbHVkZS9kZHJhdy5oOgorCUxpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJLSBhY3R1YWxseSB1c2UgdGhlIFZlcnRleEJ1ZmZlciBzdHVicworCS0gaW1wbGVtZW50IExvY2sgZnVuY3Rpb24gdG8gcHJldmVudCBjcmFzaCB3aGVuIHRoZSBzdHVicyBhcmUgdXNlZAorCisJKiBkbGxzL2RkcmF3L2QzZGRldmljZS9tZXNhLmMsIGRsbHMvZGRyYXcvZGlyZWN0M2QvbWVzYS5jLAorCSAgZGxscy9kZHJhdy9tZXNhX3ByaXZhdGUuaDoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCUJlZ2lubmluZyBvZiBzdXBwb3J0IGZvciBEM0Q3IC8gRDNERGV2aWNlNy4KKworCSogZGxscy9NYWtlZGxsLnJ1bGVzLmluLCBkbGxzL01ha2V0ZXN0LnJ1bGVzLmluLCBwcm9ncmFtcy9NYWtlZmlsZS5pbiwKKwkgIHByb2dyYW1zL01ha2Vwcm9nLnJ1bGVzLmluLCBwcm9ncmFtcy9hdml0b29scy9NYWtlZmlsZS5pbjoKKwlSZW1vdmVkIHNvbWUgY2hlY2tsaW5rIHJ1bGVzIG1hZGUgdW5uZWNlc3NhcnkgYnkgdGhlIC16IGRlZnMgbGlua2VyCisJZmxhZy4KKworCSogZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jLCBkbGxzL2RkcmF3L21lc2FfcHJpdmF0ZS5oOgorCUxpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJIC0gc29tZSBtb3JlIGNvZGUgc2hhcmluZyBiZXR3ZWVuIEQzRERldmljZSB2ZXJzaW9ucworCSAtIGltcGxlbWVudGF0aW9uIG9mIEQzREZWRl9UTFZFUlRFWCBmb3JtYXQgZmFzdCBwYXRoCisKKwkqIGluY2x1ZGUvbXN2Y3J0L3N0ZGRlZi5oOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCUFkZCBhIHdheSB0byB0ZWxsIG1zdmNydCB0byBkZWZpbmUgd2NoYXJfdC4KKworCSogZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jLCBkbGxzL2RkcmF3L2QzZHZpZXdwb3J0LmMsCisJICBkbGxzL2RkcmF3L21lc2FfcHJpdmF0ZS5oOgorCUxpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJIC0gZml4ZWQgRDNERlZGX1ZFUlRFWCBjYXNlCisJIC0gc29tZSBvdGhlciBtaXNjZWxsYW5lb3VzIGZpeGVzCisKKwkqIHByb2dyYW1zL3dpbmVkYmcvUkVBRE1FOiBWaW5jZW50IELpcm9uIDx2YmVyb25AbWVjYW5vLmdtZS51c2hlcmIuY2E+CisJQ2hhbmdlIENSTEYgZW5kIG9mIGxpbmVzIGluIExGIG9ubHkuCisKKwkqIGRsbHMvZGRyYXcvZDNkdmlld3BvcnQuYywgZGxscy9kZHJhdy9kZHJhd19wcml2YXRlLmgsCisJICBkbGxzL2RkcmF3L2hlbHBlci5jLCBkbGxzL2RkcmF3L2QzZGRldmljZS9tZXNhLmM6CisJTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwkgLSBzdGFydCBvZiBzdXBwb3J0IGZvciBkZXZpY2UgbG9ja2luZyAvIHVubG9ja2luZyB2aWEgZ2xSZWFkUGl4ZWxzIC8KKwkgICBnbERyYXdQaXhlbHMgaW50ZXJmYWNlIChzbG93IGJ1dCBzaG91bGQgYmUgZW5vdWdoIGZvciBhIHN0YXJ0KQorCSAtIGltcGxlbWVudCBvbmUgdmVydGV4IGNhc2UgZm9yIHRoZSBEM0QzLzcgRHJhd1ByaW1pdGl2ZSBmdW5jdGlvbnMKKwkgLSBmaXggYSBtaXNzaW5nIFxuIGluIGEgVFJBQ0UgY2FsbAorCisJKiBkbGxzL2tlcm5lbC9ubHMvYmVsLm5sczogSGxlYiBWYWxvc2thIDxlbF9nbG9idXNAdHV0LmJ5PgorCVNvbWUgZml4ZXMgdG8gQmVsYXJ1c2lhbiBsb2NhbGUuCisKKwkqIHRvb2xzL3dpbmFwaS9tc3ZjbWFrZXI6IFBhdHJpayBTdHJpZHZhbGwgPHBzQGxlaXNzbmVyLnNlPgorCS0gRml4ZWQgYnVnIGNhdXNlZCBieSBjaGFuZ2VzIHRvIFdpbmUuCisJLSBBZGRlZCBzdXBwb3J0IGZvciBydW5uaW5nIGFsbCB0aGUgdGVzdHMgaW4gYmF0Y2guCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL3RocmVhZC5jOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwl7R2V0LFNldH1UaHJlYWRQcmlvcml0eUJvb3N0IGFuZCBTZXRUaHJlYWRJZGVhbFByb2Nlc3NvciBhcmUgbWlzc2luZworCW9uIFdpbjk1IC0+IHVzZSBHZXRQcm9jQWRkcmVzcy4KKwlDbGVhbnVwIHRoZSBoYW5kbGluZyBvZiBPcGVuVGhyZWFkLgorCUNoZWNrIFN1c3BlbmRUaHJlYWQgYWZ0ZXIgYSB0aHJlYWQgdGVybWluYXRlcyAobmVlZGVkIGJ5IElwaXgpLgorCVJlbW92ZSB1bm5lY2Vzc2FyeSB2ZXJzaW9uIGNoZWNrcyAoY2hlY2sgZm9yCisJRVJST1JfQ0FMTF9OT1RfSU1QTEVNRU5URUQgYW5kIHNpbWlsYXIgaW5zdGVhZCkuCisJQ2xlYW51cCBjYXN0cywgc2lnbmVkL3Vuc2lnbmVkIGNvbXBhcmlzb25zLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9kcml2ZS5jOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlHZXREaXNrRnJlZVNwYWNlKGFsbCBOVUxMcykgY3Jhc2hlcyBvbiBOVDQgLT4gcmVtb3ZlZC4KKwlHZXREaXNrRnJlZVNwYWNlKCIuIiB8ICIuLiIpIGZhaWxzIG9uIFdpbjk4IGFuZCBOVDQgYnV0IHN1Y2NlZWRzIG9uIFhQCisJLT4gcmVtb3ZlZC4KKwlTa2lwIHRoZSBHZXREaXNrRnJlZVNwYWNlIHRlc3RzIG9uIGZsb3BweSBkcml2ZXMgYmVjYXVzZSBOVCBwb3BzIHVwIGEKKwlNZXNzYWdlQm94IGlmIG5vIGZsb3BweSBpcyBwcmVzZW50LgorCUZpeCB0aGUgZXJyb3IgY29kZSBjaGVja3MgdG8gdGFrZSBpbnRvIGFjY291bnQgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4KKwlXaW45eCwgTlQ0IGFuZCBYUC4KKwlTa2lwIHRoZSB1bmljb2RlIHRlc3RzIGlmIHRoZSBmaXJzdCBjYWxsIHJldHVybnMKKwlFUlJPUl9DQUxMX05PVF9JTVBMRU1FTlRFRC4KKwlXaGVuZXZlciBhIHRlc3QgZmFpbHMsIHByaW50IHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gKHR5cGljYWxseSByZXR1cm4KKwljb2RlIGFuZCBHZXRMYXN0RXJyb3IoKSEpIHRvIGxldCB0aGUgZGV2ZWxvcGVyIGZpZ3VyZSBvdXQgd2hhdCBpcworCXdyb25nLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9lbnZpcm9uLmM6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCVNldEVudmlyb25tZW50VmFyaWFibGVBKE5VTEwsIE5VTEwpIGNyYXNoZXMgb24gV2luOTggLT4gcmVtb3ZlZC4KKwlTZXRFbnZpcm9ubWVudFZhcmlhYmxlQSgiIiwgdmFsdWUpIGNyYXNoZXMgb24gTlQ0IC0+IHJlbW92ZWQuCisJVGhlIGJlaGF2aW9yIG9mIFNldEVudmlyb25tZW50VmFyaWFibGVBKCIiLCAiIikgdmFyaWVzIHRvIG11Y2ggLT4KKwlyZW1vdmVkLgorCVRlc3QgdGhlIGJlaGF2aW9yIG9mIFNldEVudmlyb25tZW50VmFyaWFibGV7QSxXfShuYW1lLCAiIikgdGFraW5nIGludG8KKwlhY2NvdW50IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIFdpbjl4IGFuZCBOVC4KKwlUZXN0IHRoZSBiZWhhdmlvciBvZiBHZXRFbnZpcm9ubWVudFZhcmlhYmxle0EsV30obmFtZSwgYnVmLCAwKS4KKwlGaXggdGhlIGVycm9yIGNvZGUgY2hlY2tzIHRvIHRha2UgaW50byBhY2NvdW50IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuCisJV2luOXgsIE5UNCBhbmQgWFAuCisJU2tpcCB0aGUgdW5pY29kZSB0ZXN0cyBpZiB0aGUgZmlyc3QgY2FsbCByZXR1cm5zCisJRVJST1JfQ0FMTF9OT1RfSU1QTEVNRU5URUQuCisJV2hlbmV2ZXIgYSB0ZXN0IGZhaWxzLCBwcmludCBzdWZmaWNpZW50IGluZm9ybWF0aW9uICh0eXBpY2FsbHkgcmV0dXJuCisJY29kZSBhbmQgR2V0TGFzdEVycm9yKCkhKSB0byBsZXQgdGhlIGRldmVsb3BlciBmaWd1cmUgb3V0IHdoYXQgaXMKKwl3cm9uZy4KKworCSogZGxscy9zaGVsbDMyL2ljb25jYWNoZS5jLCBkbGxzL3NoZWxsMzIvc2hlbGwzMi5zcGVjLAorCSAgaW5jbHVkZS9zaGVsbGFwaS5oOgorCVJvbGYgS2FsYmVybWF0dGVyIDxyb2xmLmthbGJlcm1hdHRlckBjaXRlbmcuY29tPgorCUFkZGVkIHN0dWIgaW1wbGVtZW50YXRpb24gd2l0aCBjb3JyZWN0IHByb3RvdHlwZXMgZm9yCisJRXh0cmFjdEFzc29jaWF0ZWRJY29uRXhBL1cuCisKKwkqIHByb2dyYW1zL01ha2VmaWxlLmluOgorCVV3ZSBCb25uZXMgPGJvbkBlbGVrdHJvbi5pa3AucGh5c2lrLnR1LWRhcm1zdGFkdC5kZT4KKwlNYWtlIHdjbWQgYXZhaWxhYmxlIGZyb20gaW5zaWRlIHRoZSBzb3VyY2UgdHJlZS4KKworCSogZGxscy9kZHJhdy9kM2RkZXZpY2UvbWFpbi5jOiBMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCUltcGxlbWVudGVkIEdldFJlbmRlclRhcmdldC4KKworCSogZGxscy9kZHJhdy9kaXJlY3QzZC9tZXNhLmM6IExpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJQWRkZWQgZW51bWVyYXRpb24gb2YgWkJ1ZmZlciBmb3JtYXQuCisKKwkqIGRvY3VtZW50YXRpb24vZGVidWdnZXIuc2dtbDoKKwlUb255IExhbWJyZWd0cyA8dG9ueV9sYW1icmVndHNAdGVsdXNwbGFuZXQubmV0PgorCVVwZGF0ZSB0aGUgZGVidWdnZXIgZG9jdW1lbnRhdGlvbiBmb3IgY3VycmVudCB1c2FnZS4KKworCSogZGxscy9rZXJuZWwvdGVzdHMvdGhyZWFkLmMsIHNjaGVkdWxlci90aHJlYWQuYzoKKwlQYXJ0aWFsbHkgaW1wbGVtZW50ZWQga2VybmVsL3VzZXIgdGltZXMgaW4gR2V0VGhyZWFkVGltZXMgKGJhc2VkIG9uIGEKKwlwYXRjaCBieSBSeWFuIEN1bW1pbmcpLgorCisJKiBkbGxzL29wZW5nbDMyL3dnbC5jOiBMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCUltcGxlbWVudCB3Z2xDcmVhdGVMYXllckNvbnRleHQgZm9yIGxheWVyIDAuCisKKwkqIGRsbHMvZGRyYXcvZDNkZGV2aWNlL21haW4uYzogTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwlEbyBub3QgZm9yZ2V0IHRvIEFkZFJlZiB0aGUgcmV0dXJuZWQgRGlyZWN0M0QgaW50ZXJmYWNlLgorCisJKiBkbGxzL3gxMWRydi94MTFkZHJhdy5jOiBMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCUFkZCBERENBUFMyX0NBTlJFTkRFUldJTkRPV0VEIGNhcGFiaWxpdGllcyB0byBvdXIgRERyYXcgZHJpdmVyLgorCisJKiBpbmNsdWRlL3dpbmJhc2UuaDogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJQWRkZWQgZGVjbGFyYXRpb24gZm9yIFNpZ25hbE9iamVjdEFuZFdhaXQuCisKKwkqIGluY2x1ZGUvbXN2Y3J0L3N0ZGxpYi5oOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlBZGRlZCBjb25zdGFudHMgZm9yIF9zZXRfZXJyb3JfbW9kZSgpLgorCisJKiBkbGxzL3dpbm1tL3dpbm1tLmM6IEplZmYgU21pdGggPHdoeWRvdWJ0QGhvdG1haWwuY29tPgorCUZpeGVkIDMyIGJpdCBmbGFnIGluIG1pZGlPdXRTaG9ydE1zZy4KKworCSogaW5jbHVkZS9kZHJhdy5oOiBDaHJpc3RpYW4gQ29zdGEgPHRpdGFuLmNvc3RhQHdhbmFkb28uZnI+CisJUmVwbGFjZSBMUEREU1VSRkFDRURFU0MgYnkgTFBERFNVUkZBQ0VERVNDMiBpbiBJRGlyZWN0RHJhd1N1cmZhY2U0CisJbWV0aG9kcyBkZWNsYXJhdGlvbi4KKworCSogZGxscy93aW5lZG9zL2ludDEwLmM6IEFuZHJlYXMgTW9ociA8YW5kaUByaGx4MDEuZmh0LWVzc2xpbmdlbi5kZT4KKwlGaXhlZCB0ZXh0IG1vZGUgdmFsdWUuCisKKwkqIGluY2x1ZGUvbW1zeXN0ZW0uaDogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgdGhlIDQ4IGFuZCA5NmtIeiBXQVZFX0ZPUk1BVCBjb25zdGFudHMuCisKKwkqIHRvb2xzL3dpZGwvaGVhZGVyLmMsIHRvb2xzL3dpZGwvaGVhZGVyLmgsIHRvb2xzL3dpZGwvcGFyc2VyLmgsCisJICB0b29scy93aWRsL3BhcnNlci5sLCB0b29scy93aWRsL3BhcnNlci55LCB0b29scy93aWRsL3dpZGx0eXBlcy5oOgorCU92ZSBLYWF2ZW4gPG92ZWtAdHJhbnNnYW1pbmcuY29tPgorCUhhbmRsZSBlbmNhcHN1bGF0ZWQgdW5pb25zIGluIGEgY2xlYW5lciAoYW5kIGxlc3MgYnVnZ3kpIHdheS4gRW1pdCB0aGUKKwluYW1lcyAiRFVNTVlVTklPTk5BTUUiIGFuZCAiRFVNTVlTVFJVQ1ROQU1FIiBmb3IgYW5vbnltb3VzIHVuaW9ucyBhbmQKKwlzdHJ1Y3RzLiBTdXBwb3J0IGNvbnN0IGFuZCBleHRlcm4gZGVmaW5pdGlvbnMuIFJldGFpbiB0b2tlbnMgKGFuZAorCXdoZXRoZXIgbnVtYmVycyBhcmUgaGV4IG9yIG5vdCkgdXNlZCBmb3IgY29tcHV0aW5nIGNvbnN0YW50CisJZXhwcmVzc2lvbnMsIHNvIHRoYXQgdGhlIGZ1bGwgZXhwcmVzc2lvbiBjYW4gYmUgd3JpdHRlbiB0byB0aGUgaGVhZGVyCisJZmlsZSBpbnN0ZWFkIG9mIHRoZSBjb21wdXRlZCBpbnRlZ2VyIHJlc3VsdCBvZiB0aGUgZXhwcmVzc2lvbi4gUGFyc2UKKwl0aGUgc2l6ZW9mKCkgb3BlcmF0b3IuICBDb21wdXRlIGFuZCByZW1lbWJlciBjb25zdGFudCBkZWZpbml0aW9ucyBhbmQKKwllbnVtIHZhbHVlcyBzbyB0aGV5IGNhbiBiZSB1c2VkIGluIGV4cHJlc3Npb25zLiBJbXByb3ZlZCBpZGVudGlmaWVyCisJbG9va3VwIHNwZWVkLiBGaXhlZCBzb21lIGJ1Z3MuCisKKwkqIGluY2x1ZGUvd3R5cGVzLmlkbDogT3ZlIEthYXZlbiA8b3Zla0B0cmFuc2dhbWluZy5jb20+CisJQWRkZWQgbWlzc2luZyB1bmlvbiBuYW1lcyBmb3Igc29tZSBlbmNhcHN1bGF0ZWQgdW5pb25zLgorCisJKiBkbGxzL2RkcmF3L2QzZGRldmljZS9tZXNhLmM6IExpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJLSBmaXggY2FwcyBmaWxsaW5nIHRvIGJlIG1vcmUgaW4gbGluZSB3aXRoIHdoYXQgd2Ugc3VwcG9ydAorCS0gb3B0aW1pemUgYSBsaXR0bGUgYml0IHRoZSBEcmF3UHJpbWl0aXZlIGZ1bmN0aW9uCisKKwkqIGZpbGVzL2ZpbGUuYzogTWFydGluIFdpbGNrIDxNYXJ0aW4uV2lsY2tARnVqaXRzdS1TaWVtZW5zLmNvbT4KKwlGaXhlZCBzb21lIHByb2JsZW1zIHdpdGggYXN5bmNocm9ub3VzIGZpbGUgSU8uCisKKzIwMDItMTEtMjcgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvZGRyYXcvZDNkX3ByaXZhdGUuaCwgZGxscy9kZHJhdy9kM2R0ZXh0dXJlLmMsCisJICBkbGxzL2RkcmF3L2RkcmF3L21haW4uYywgZGxscy9kZHJhdy9kZHJhd19wcml2YXRlLmgsCisJICBkbGxzL2RkcmF3L2RzdXJmYWNlL21haW4uYzoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCSAtIGZpeCB0ZXh0dXJlIHNub29waW5nIChwbHVzIGFkZHMgc25vb3AgZm9yIDE1NTUgZm9ybWF0KQorCSAtIGFkZCB0ZXh0dXJlIG1lbW9yeSB1c2FnZSB0cmFja2luZworCisJKiBkbGxzL2tlcm5lbC9jb21wdXRlcm5hbWUuYywgZGxscy9rZXJuZWwva2VybmVsMzIuc3BlYywKKwkgIGluY2x1ZGUvd2luYmFzZS5oOgorCVN0ZXZlIEx1c3RiYWRlciA8c3RldmUubHVzdGJhZGVyQHBoaWxpcHMuY29tPgorCVByb3ZpZGUgc3R1YnMgZm9yIERuc0hvc3RuYW1lVG9Db21wdXRlck5hbWVBL1cuCisKKwkqIGRsbHMvbXN2aWRlby9tc3ZmdzMyLnNwZWMsIGRsbHMvbXN2aWRlby9tc3ZpZGVvX21haW4uYywKKwkgIGRsbHMvd2luaW5ldC9pbnRlcm5ldC5jLCBkbGxzL3dpbmluZXQvd2luaW5ldC5zcGVjOgorCUFkZGVkIGRlZmluaXRpb25zIGZvciBhIGNvdXBsZSBvZiBzdHViIGZ1bmN0aW9ucyB0aGF0IHdlIGltcG9ydCBzbworCXRoYXQgd2UgZG9uJ3QgaW1wb3J0IHN0dWJzIGRpcmVjdGx5LgorCisJKiBkbGxzL2tlcm5lbC9rZXJuZWwzMi5zcGVjLCBkbGxzL250ZGxsL250ZGxsLnNwZWMsCisJICBncmFwaGljcy94MTFkcnYvb3BlbmdsLmM6CisJUGF0cmlrIFN0cmlkdmFsbCA8cHNAbGVpc3NuZXIuc2U+CisJRml4ZWQgc29tZSBpc3N1ZXMgZm91bmQgYnkgd2luYXBpX2NoZWNrLgorCisJKiBkbGxzL2tlcm5lbC9rZXJuZWwzMi5zcGVjLCBkbGxzL250ZGxsL01ha2VmaWxlLmluLAorCSAgZGxscy93aW5lZG9zL01ha2VmaWxlLmluLCBkbGxzL3dpbmVkb3MvZG9zZXhlLmgsCisJICBkbGxzL3dpbmVkb3MvaW50MjUuYywgZGxscy93aW5lZG9zL2ludDI2LmMsCisJICBkbGxzL3dpbmVkb3MvaW50ZXJydXB0cy5jLCBpbmNsdWRlL21pc2NlbXUuaCwgbXNkb3MvaW50MjUuYywKKwkgIG1zZG9zL2ludDI2LmM6CisJSnVra2EgSGVpbm9uZW4gPGpoZWlAaWtpLmZpPgorCU1vdmVkIGhhbmRsZXJzIGZvciBpbnQyNSBhbmQgaW50MjYgdG8gd2luZWRvcy4KKworCSogb2JqZWN0cy9mb250LmM6IEh1dyBEIE0gRGF2aWVzIDxoLmRhdmllczFAcGh5c2ljcy5veC5hYy51az4KKwlFbnVtRm9udDE2IHNob3VsZCBlbnVtZXJhdGUgZ2RpIGZvbnRzIHRvby4KKworCSogZGxscy9jb21jdGwzMi90cmVldmlldy5jOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCS0gVHlwZXNhZmUgcGFyYW1ldGVycyBmcm9tIFRSRUVWSUVXX05vdGlmeUZvcm1hdC4KKwktIFJld3JpdGUgVFJFRVZJRVdfTm90aWZ5Rm9ybWF0LgorCS0gRml4IHNldmVyYWwgaW52b2NhdGlvbnMgb2YgVFJFRVZJRVdfU2VuZFRyZWV2aWV3Tm90aWZ5LgorCisJKiBpbmNsdWRlL3dpbmJhc2UuaDogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJQWRkZWQgU3dpdGNoVG9UaHJlYWQuCisKKwkqIGRsbHMvbnRkbGwvdGltZS5jOiBWaW5jZW50IELpcm9uIDx2YmVyb25AbWVjYW5vLmdtZS51c2hlcmIuY2E+CisJRml4IGZvciBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBhYnMuCisKKwkqIGRsbHMveDExZHJ2L3hyZW5kZXIuYzogVmluY2VudCBC6XJvbiA8dmJlcm9uQG1lY2Fuby5nbWUudXNoZXJiLmNhPgorCUZpeCBmb3IgZGVwcmVjYXRlZCB1c2Ugb2YgbGFiZWwgYXQgdGhlIGVuZCBvZiBjb21wb3VuZCBzdGF0ZW1lbnQuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL2xvY2FsZS5jLCBvbGUvb2xlMm5scy5jOgorCUJpbGwgTWVkbGFuZCA8bWVkYmkwMUBhY2NwYWMuY29tPgorCUNvcnJlY3QgR2V0TnVtYmVyRm9ybWF0QSBmb3IgemVybyBkZWNpbWFscyBhbmQgZm9yIHplcm8gZ3JvdXBpbmcuCisKKwkqIHByb2dyYW1zL3dpbmhlbHAvd2luaGVscC5jOiBNYXR0aGV3IERhdmlzb24gPG0uZGF2aXNvbkB2aXJnaW4ubmV0PgorCVByZXZlbnQgV2luaGVscCBmcm9tIGNyYXNoaW5nIHdoZW4gaXQgY2FuJ3QgZmluZCB0aGUgaGVscGZpbGUuCisKKwkqIGluY2x1ZGUvZDNkLmgsIGluY2x1ZGUvZGRyYXcuaDoKKwlDaHJpc3RpYW4gQ29zdGEgPHRpdGFuLmNvc3RhQHdhbmFkb28uZnI+CisJQWRkIHNvbWUgRERSQVcgYW5kIEQzRCBkZWZpbml0aW9ucy4KKworCSogdG9vbHMvd2luYXBpL29wdGlvbnMucG0sIHRvb2xzL3dpbmFwaS93aW4zMi5hcGksCisJICB0b29scy93aW5hcGkvd2luYXBpLnBtLCB0b29scy93aW5hcGkvd2luYXBpX2NoZWNrX29wdGlvbnMucG0sCisJICB0b29scy93aW5hcGlfY2hlY2svbW9kdWxlcy5kYXQsIHRvb2xzL3dpbmFwaV9jaGVjay9tb2R1bGVzLnBtLAorCSAgdG9vbHMvd2luYXBpX2NoZWNrL3dpbmFwaV9jaGVjaywgdG9vbHMvd2luYXBpX2NoZWNrL3dpbmFwaV9sb2NhbC5wbToKKwlQYXRyaWsgU3RyaWR2YWxsIDxwc0BsZWlzc25lci5zZT4KKwktIEFQSSBmaWxlcyB1cGRhdGUuCisJLSBNaW5vciBpbXByb3ZlbWVudCBhbmQgYnVnIGZpeGVzLgorCisyMDAyLTExLTI1ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBBTk5PVU5DRSwgQ2hhbmdlTG9nLCBWRVJTSU9OLCBjb25maWd1cmU6IFJlbGVhc2UgMjAwMjExMjUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDIwMDItMTEtMjUgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CiAKIAkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBpbmNsdWRlL2NvbmZpZy5oLmluLCBsaWJyYXJ5L3BvcnQuYywKZGlmZiAtLWdpdCBhL1ZFUlNJT04gYi9WRVJTSU9OCmluZGV4IGVmYzhlOGEuLmM4OThkYmMgMTAwNjQ0Ci0tLSBhL1ZFUlNJT04KKysrIGIvVkVSU0lPTgpAQCAtMSArMSBAQAotV2luZSB2ZXJzaW9uIDIwMDIxMTI1CitXaW5lIHZlcnNpb24gMjAwMjEyMTkKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQppbmRleCA5MzVjZTNlLi5iZTM1YjkwIDEwMDc1NQotLS0gYS9jb25maWd1cmUKKysrIGIvY29uZmlndXJlCkBAIC0xLDYgKzEsNiBAQAogIyEgL2Jpbi9zaAogIyBHdWVzcyB2YWx1ZXMgZm9yIHN5c3RlbS1kZXBlbmRlbnQgdmFyaWFibGVzIGFuZCBjcmVhdGUgTWFrZWZpbGVzLgotIyBHZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTQgZm9yIFdpbmUgMjAwMjExMjUuCisjIEdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41NCBmb3IgV2luZSAyMDAyMTIxOS4KICMKICMgQ29weXJpZ2h0IDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIKICMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCkBAIC0yNjMsOCArMjYzLDggQEAKICMgSWRlbnRpdHkgb2YgdGhpcyBwYWNrYWdlLgogUEFDS0FHRV9OQU1FPSdXaW5lJwogUEFDS0FHRV9UQVJOQU1FPSd3aW5lJwotUEFDS0FHRV9WRVJTSU9OPScyMDAyMTEyNScKLVBBQ0tBR0VfU1RSSU5HPSdXaW5lIDIwMDIxMTI1JworUEFDS0FHRV9WRVJTSU9OPScyMDAyMTIxOScKK1BBQ0tBR0VfU1RSSU5HPSdXaW5lIDIwMDIxMjE5JwogUEFDS0FHRV9CVUdSRVBPUlQ9JycKIAogYWNfdW5pcXVlX2ZpbGU9InNlcnZlci9hdG9tLmMiCkBAIC03NzQsNyArNzc0LDcgQEAKICAgIyBPbWl0IHNvbWUgaW50ZXJuYWwgb3Igb2Jzb2xldGUgb3B0aW9ucyB0byBtYWtlIHRoZSBsaXN0IGxlc3MgaW1wb3NpbmcuCiAgICMgVGhpcyBtZXNzYWdlIGlzIHRvbyBsb25nIHRvIGJlIGEgc3RyaW5nIGluIHRoZSBBL1VYIDMuMSBzaC4KICAgY2F0IDw8X0FDRU9GCi1cYGNvbmZpZ3VyZScgY29uZmlndXJlcyBXaW5lIDIwMDIxMTI1IHRvIGFkYXB0IHRvIG1hbnkga2luZHMgb2Ygc3lzdGVtcy4KK1xgY29uZmlndXJlJyBjb25maWd1cmVzIFdpbmUgMjAwMjEyMTkgdG8gYWRhcHQgdG8gbWFueSBraW5kcyBvZiBzeXN0ZW1zLgogCiBVc2FnZTogJDAgW09QVElPTl0uLi4gW1ZBUj1WQUxVRV0uLi4KIApAQCAtODM5LDcgKzgzOSw3IEBACiAKIGlmIHRlc3QgLW4gIiRhY19pbml0X2hlbHAiOyB0aGVuCiAgIGNhc2UgJGFjX2luaXRfaGVscCBpbgotICAgICBzaG9ydCB8IHJlY3Vyc2l2ZSApIGVjaG8gIkNvbmZpZ3VyYXRpb24gb2YgV2luZSAyMDAyMTEyNToiOzsKKyAgICAgc2hvcnQgfCByZWN1cnNpdmUgKSBlY2hvICJDb25maWd1cmF0aW9uIG9mIFdpbmUgMjAwMjEyMTk6Ijs7CiAgICBlc2FjCiAgIGNhdCA8PFxfQUNFT0YKIApAQCAtOTMyLDcgKzkzMiw3IEBACiB0ZXN0IC1uICIkYWNfaW5pdF9oZWxwIiAmJiBleGl0IDAKIGlmICRhY19pbml0X3ZlcnNpb247IHRoZW4KICAgY2F0IDw8XF9BQ0VPRgotV2luZSBjb25maWd1cmUgMjAwMjExMjUKK1dpbmUgY29uZmlndXJlIDIwMDIxMjE5CiBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTQKIAogQ29weXJpZ2h0IDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIKQEAgLTk0Nyw3ICs5NDcsNyBAQAogVGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hpbGUKIHJ1bm5pbmcgY29uZmlndXJlLCB0byBhaWQgZGVidWdnaW5nIGlmIGNvbmZpZ3VyZSBtYWtlcyBhIG1pc3Rha2UuCiAKLUl0IHdhcyBjcmVhdGVkIGJ5IFdpbmUgJGFzX21lIDIwMDIxMTI1LCB3aGljaCB3YXMKK0l0IHdhcyBjcmVhdGVkIGJ5IFdpbmUgJGFzX21lIDIwMDIxMjE5LCB3aGljaCB3YXMKIGdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41NC4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcwogCiAgICQgJDAgJEAKQEAgLTE0Mjc0LDcgKzE0Mjc0LDcgQEAKIH0gPiY1CiBjYXQgPiY1IDw8X0NTRU9GCiAKLVRoaXMgZmlsZSB3YXMgZXh0ZW5kZWQgYnkgV2luZSAkYXNfbWUgMjAwMjExMjUsIHdoaWNoIHdhcworVGhpcyBmaWxlIHdhcyBleHRlbmRlZCBieSBXaW5lICRhc19tZSAyMDAyMTIxOSwgd2hpY2ggd2FzCiBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTQuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKIAogICBDT05GSUdfRklMRVMgICAgPSAkQ09ORklHX0ZJTEVTCkBAIC0xNDMzNiw3ICsxNDMzNiw3IEBACiAKIGNhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GCiBhY19jc192ZXJzaW9uPSJcXAotV2luZSBjb25maWcuc3RhdHVzIDIwMDIxMTI1CitXaW5lIGNvbmZpZy5zdGF0dXMgMjAwMjEyMTkKIGNvbmZpZ3VyZWQgYnkgJDAsIGdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41NCwKICAgd2l0aCBvcHRpb25zIFxcImBlY2hvICIkYWNfY29uZmlndXJlX2FyZ3MiIHwgc2VkICdzL1tcXCIiXGBcJF0vXFxcXCYvZydgXFwiCiAK