ZGlmZiAtLWdpdCBhL0FOTk9VTkNFIGIvQU5OT1VOQ0UKaW5kZXggNGMyMDJiMC4uY2NhOTY2OCAxMDA2NDQKLS0tIGEvQU5OT1VOQ0UKKysrIGIvQU5OT1VOQ0UKQEAgLTEsNCArMSw0IEBACi1UaGlzIGlzIHJlbGVhc2UgOTkwODE1IG9mIFdpbmUsIGEgZnJlZSBpbXBsZW1lbnRhdGlvbiBvZiBXaW5kb3dzIG9uCitUaGlzIGlzIHJlbGVhc2UgOTkwOTIzIG9mIFdpbmUsIGEgZnJlZSBpbXBsZW1lbnRhdGlvbiBvZiBXaW5kb3dzIG9uCiBVbml4LiAgVGhpcyBpcyBzdGlsbCBhIGRldmVsb3BlcnMgb25seSByZWxlYXNlLiAgVGhlcmUgYXJlIG1hbnkgYnVncwogYW5kIHVuaW1wbGVtZW50ZWQgZmVhdHVyZXMuICBNb3N0IGFwcGxpY2F0aW9ucyBzdGlsbCBkbyBub3Qgd29yawogY29ycmVjdGx5LgpAQCAtNiw5ICs2LDExIEBACiBQYXRjaGVzIHNob3VsZCBiZSBzdWJtaXR0ZWQgdG8gImp1bGxpYXJkQGxyYy5lcGZsLmNoIi4gIFBsZWFzZSBkb24ndAogZm9yZ2V0IHRvIGluY2x1ZGUgYSBDaGFuZ2VMb2cgZW50cnkuCiAKLVdIQVQnUyBORVcgd2l0aCBXaW5lLTk5MDgxNTogKHNlZSBDaGFuZ2VMb2cgZm9yIGRldGFpbHMpCi0JLSBNYW55IERMTHMgc2VwYXJhdGVkIGZyb20gdGhlIGNvcmUuCi0JLSBJbXByb3ZlbWVudHMgdG8gMTYtYml0IHRodW5raW5nIGNvZGUuCitXSEFUJ1MgTkVXIHdpdGggV2luZS05OTA5MjM6IChzZWUgQ2hhbmdlTG9nIGZvciBkZXRhaWxzKQorCS0gRElCIG9wdGltaXphdGlvbnMuCisJLSBNdWx0aW1lZGlhIGFuZCBPTEUgRExMcyByZW9yZ2FuaXphdGlvbi4KKwktIE1hbnkgZml4ZXMgaW4gZm9udCBtYXBwaW5nLgorCS0gQ2xpcGJvYXJkIHN1cHBvcnQgaW1wcm92ZW1lbnRzLgogCS0gTG90cyBvZiBidWcgZml4ZXMuCiAKIFNlZSB0aGUgUkVBRE1FIGZpbGUgaW4gdGhlIGRpc3RyaWJ1dGlvbiBmb3IgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucy4KQEAgLTE3LDEwICsxOSwxMCBAQAogdGhlIHJlbGVhc2UgaXMgYXZhaWxhYmxlIGF0IHRoZSBmdHAgc2l0ZXMuICBUaGUgc291cmNlcyB3aWxsIGJlIGF2YWlsYWJsZQogZnJvbSB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczoKIAotICBmdHA6Ly9tZXRhbGFiLnVuYy5lZHUvcHViL0xpbnV4L0FMUEhBL3dpbmUvZGV2ZWxvcG1lbnQvV2luZS05OTA4MTUudGFyLmd6Ci0gIGZ0cDovL3RzeC0xMS5taXQuZWR1L3B1Yi9saW51eC9BTFBIQS9XaW5lL2RldmVsb3BtZW50L1dpbmUtOTkwODE1LnRhci5negotICBmdHA6Ly9mdHAuaW5mb21hZ2ljLmNvbS9wdWIvbWlycm9ycy9saW51eC9zdW5zaXRlL0FMUEhBL3dpbmUvZGV2ZWxvcG1lbnQvV2luZS05OTA4MTUudGFyLmd6Ci0gIGZ0cDovL2Z0cC5wcm9nc29jLnV0cy5lZHUuYXUvcHViL1dpbmUvZGV2ZWxvcG1lbnQvV2luZS05OTA4MTUudGFyLmd6CisgIGZ0cDovL21ldGFsYWIudW5jLmVkdS9wdWIvTGludXgvQUxQSEEvd2luZS9kZXZlbG9wbWVudC9XaW5lLTk5MDkyMy50YXIuZ3oKKyAgZnRwOi8vdHN4LTExLm1pdC5lZHUvcHViL2xpbnV4L0FMUEhBL1dpbmUvZGV2ZWxvcG1lbnQvV2luZS05OTA5MjMudGFyLmd6CisgIGZ0cDovL2Z0cC5pbmZvbWFnaWMuY29tL3B1Yi9taXJyb3JzL2xpbnV4L3N1bnNpdGUvQUxQSEEvd2luZS9kZXZlbG9wbWVudC9XaW5lLTk5MDkyMy50YXIuZ3oKKyAgZnRwOi8vZnRwLnByb2dzb2MudXRzLmVkdS5hdS9wdWIvV2luZS9kZXZlbG9wbWVudC9XaW5lLTk5MDkyMy50YXIuZ3oKIAogSXQgc2hvdWxkIGFsc28gYmUgYXZhaWxhYmxlIGZyb20gYW55IHNpdGUgdGhhdCBtaXJyb3JzIHRzeC0xMSBvciBzdW5zaXRlLgogCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMzlkYWIxZi4uMzEzYWRkNyAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSw0ICsxLDgzMCBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorVGh1IFNlcCAyMyAxNjoxNDo0NCAxOTk5ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBNYWtlZmlsZS5pbiwgd2luZG93cy94MTFkcnYvLmN2c2lnbm9yZSwgd2luZG93cy94MTFkcnYvTWFrZWZpbGUuaW4sIHdpbmRvd3MveDExZHJ2L3dpbmVjbGlwc3J2LmM6CisJTm9lbCBCb3J0aHdpY2sgPG5vZWxAbWFjYWRhbWlhbi5jb20+CisJQWRkZWQgY2xpcGJvYXJkIHNlcnZlci4KKworCSogdG9vbHMvQXR0aWMvd2luYXBpLWNoZWNrLCB0b29scy93aW5hcGlfY2hlY2svbmF0aXZlYXBpLmRhdCwgdG9vbHMvd2luYXBpX2NoZWNrL25hdGl2ZWFwaS5wbSwgdG9vbHMvd2luYXBpX2NoZWNrL3BhcnNlci5wbSwgdG9vbHMvd2luYXBpX2NoZWNrL3dpbjE2YXBpLmRhdCwgdG9vbHMvd2luYXBpX2NoZWNrL3dpbjMyYXBpLmRhdCwgdG9vbHMvd2luYXBpX2NoZWNrL3dpbmFwaS5wbSwgdG9vbHMvd2luYXBpX2NoZWNrL3dpbmFwaV9jaGVjaywgdG9vbHMvd2luYXBpX2NoZWNrL3dpbmFwaV9nbG9iYWwucG0sIHRvb2xzL3dpbmFwaV9jaGVjay93aW5hcGlfbG9jYWwucG0sIHRvb2xzL3dpbmFwaV9jaGVjay93aW5hcGlfb3B0aW9ucy5wbSwgdG9vbHMvd2luYXBpX2NoZWNrL3dpbmFwaV9wYXJzZXIucG06CisJUGF0cmlrIFN0cmlkdmFsbCA8cHNAbGVpc3NuZXIuc2U+CisJTWFkZSBhIG5ldyBpbXByb3ZlZCB2ZXJzaW9uIG9mIHdpbmFwaS1jaGVjayBpbiBwZXJsLgorCisJKiBtc2Rvcy9pbnQyMS5jOgorCUltcGxlbWVudGVkIHVwcGVyY2FzaW5nIGZ1bmN0aW9ucyAoYmFzZWQgb24gYSBwYXRjaCBieSBSb2JlcnQKKwknQWRtaXJhbCcgQ29leW1hbikuCisKKwkqIHdpbmRvd3MvdXNlci5jLCBkbGxzL29sZTMyL29sZTJzdHVicy5jLCBkbGxzL29sZTMyL3N0b3JhZ2UuYywgZGxscy9vbGVhdXQzMi90eXBlbGliLmMsIGRsbHMvc3RyZXNzL3N0cmVzc19tYWluLmMsIGlmMTYzMi9kdW1teS5jLCBpbmNsdWRlL3N0cmVzcy5oLCBpbmNsdWRlL3dpbmUvd2luZ2RpMTYuaCwgbWlzYy9wcmludGRydi5jLCB3aW5kb3dzL2lucHV0LmM6CisJUGF0cmlrIFN0cmlkdmFsbCA8cHNAbGVpc3NuZXIuc2U+CisJRml4ZWQgc29tZSBvZiB0aGUgaXNzdWVzIHJlcG9ydGVkIGJ5IHdpbmFwaS1jaGVjay4KKworCSogbWlzYy9jb21tLmM6IFBhdHJpayBTdHJpZHZhbGwgPHBzQGxlaXNzbmVyLnNlPgorCU1vZGlmaWNhdGlvbiBkdWUgdG8gcHJvYmxlbXMgd2l0aCB3aW5hcGktY2hlY2suCisKKwkqIHdpbmRvd3MveDExZHJ2L2V2ZW50LmM6IE5vb21lbiBIYW16YSA8bm9vbWVuQG1hY2FkYW1pYW4uY29tPgorCVdTX1BPUFVQIHdpbmRvd3MgKGV4Y2x1ZGluZyB0aGUgV1NfUE9QVVBXSU5ET1cgd2luZG93cykgc2hvdWxkIGJlCisJY2xvc2VkIGFmdGVyIGxvb3NpbmcgdGhlIGZvY3VzLgorCisJKiBvYmplY3RzL2RpYi5jOiBGcmFuY29pcyBCb2lzdmVydCA8ZnJhbmNvaXNAbWFjYWRhbWlhbi5jb20+CisJQ3JlYXRlRElCaXRtYXAgY3JlYXRlcyBhIG1vbm9jaHJvbWUgYml0bWFwIG9ubHkgd2hlbiB0aGUgZmlyc3QgY29sb3Igb2YgdGhlCisJY29sb3JtYXAgaXMgYmxhY2sgZm9sbG93ZWQgYnkgd2hpdGUuIE90aGVyd2lzZSBpdCBjcmVhdGVzIGEgY29sb3IgYml0bWFwLgorCisJKiB3aW5kb3dzL2RlZnduZC5jLCB3aW5kb3dzL25vbmNsaWVudC5jOgorCU5vb21lbiBIYW16YSA8bm9vbWVuQG1hY2FkYW1pYW4uY29tPgorCU5vbiBhY3RpdmUgd2luZG93IHNob3VsZCBiZSBhY3RpdmF0ZWQgd2hlbiBpdCBnZXRzIGFueQorCWNsaWVudC9ub24tY2xpZW50IGRvdWJsZS9zaW5nbGUgbGVmdC9tZWRpdW0vcmlnaHQgbW91c2UgY2xpY2socykuCisKK1dlZCBTZXAgMjIgMTY6NTM6NTQgMTk5OSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogcmVsYXkzMi9idWlsdGluMzIuYzogRXJpYyBQb3VlY2ggPEVyaWMuUG91ZWNoQHdhbmFkb28uZnI+CisJQWRkZWQgV0lORU9TUyBkZXNjcmlwdG9yLgorCisJKiBtdWx0aW1lZGlhL21tc3lzdGVtLmM6IEVyaWMgUG91ZWNoIDxFcmljLlBvdWVjaEB3YW5hZG9vLmZyPgorCU1NU1lTVEVNX0dldElEYXRhKCkgbm93IGRpZXMgd2hlbiBubyBpRGF0YSBpcyBwcmVzZW50CisJQmV0dGVyIGVycm9yIHJlY292ZXJ5IHdoZW4gdGhlIHByb2Nlc3MgYXR0YWNobWVudCBmYWlscworCVBsYXlTb3VuZCAoYW5kIGhlbHBlciBmdW5jdGlvbnMpIG5vdyB1c2UgdGhlIHJlZ3VsYXIgd2F2ZU91dFhYWCAoaW5zdGVhZCBvZiB3b2RNZXNzYWdlKQorCU1vdmVkIGhhbmRsaW5nIG9mIGhhY2sgZm9yIGRpZmZlcmVuY2lhdGluZyBiZXR3ZWVuIDE2IGFuZCAzMiBiaXQgY2FsbGJhY2sgdG8gbG9sdmxkcnYuYworCU1ha2VzIHVzZSBvZiBuZXcgbG9sdmxkcnYuYyBpbnRlcmZhY2VzCisKKwkqIG11bHRpbWVkaWEvLmN2c2lnbm9yZSwgbXVsdGltZWRpYS9NYWtlZmlsZS5pbiwgbXVsdGltZWRpYS9sb2x2bGRydi5jLCBtdWx0aW1lZGlhL29zcy5jLCBtdWx0aW1lZGlhL29zcy5oLCBtdWx0aW1lZGlhL3dpbmVtbS5oOgorCUVyaWMgUG91ZWNoIDxFcmljLlBvdWVjaEB3YW5hZG9vLmZyPgorCUFkZGVkIGxvbHZsZHJ2LmMgYW5kIG9zcy5jLgorCVRodW5rcyB0byAxNiBiaXQgYXJlIG5vdyBnZW5lcmF0ZWQgZm9yIHRoZSBNTVNZU1RFTSBtb2R1bGUuCisKKwkqIGNvbmZpZ3VyZS5pbiwgZGxscy93aW5tbS8uY3ZzaWdub3JlLCBkbGxzL3dpbm1tL01ha2VmaWxlLmluLCBkbGxzL3dpbm1tL3dpbmVvc3MvLmN2c2lnbm9yZSwgZGxscy93aW5tbS93aW5lb3NzL01ha2VmaWxlLmluLCBkbGxzL3dpbm1tL3dpbmVvc3Mvd2luZW9zcy5zcGVjLCBNYWtlZmlsZS5pbiwgY29uZmlndXJlOgorCUVyaWMgUG91ZWNoIDxFcmljLlBvdWVjaEB3YW5hZG9vLmZyPgorCUFkZGVkIGRsbHMvd2lubW0gYW5kIGRsbHMvd2lubW0vd2luZW9zcyBkaXJlY3Rvcmllcy4KKworCSogbXVsdGltZWRpYS90aW1lLmM6IEVyaWMgUG91ZWNoIDxFcmljLlBvdWVjaEB3YW5hZG9vLmZyPgorCU5vIGxvbmdlciBjaGVja2luZyBmb3IgY29ycmVjdCBpRGF0YSBpbiBjb2RlLgorCisJKiByZWxheTMyL3dpbm1tLnNwZWM6IEVyaWMgUG91ZWNoIDxFcmljLlBvdWVjaEB3YW5hZG9vLmZyPgorCUFkZGVkIG1pc3NpbmcgRHJpdmVyQ2FsbEJhY2sgZnVuY3Rpb24uCisKKwkqIGlmMTYzMi9tbXN5c3RlbS5zcGVjOiBFcmljIFBvdWVjaCA8RXJpYy5Qb3VlY2hAd2FuYWRvby5mcj4KKwlBbGwgaGVhZGVycyAod2F2ZSBhbmQgbWlkaSBmdW5jdGlvbnMpIGFyZSBub3cgc2VlbiBhcyBzZWdwdHIuCisJQWRkZWQgc3R1YiBmb3Igam95R2V0UG9zRXgxNigpLgorCisJKiBpbmNsdWRlL21tc3lzdGVtLmg6IEVyaWMgUG91ZWNoIDxFcmljLlBvdWVjaEB3YW5hZG9vLmZyPgorCUFkZGVkIHNvbWUgbWlzc2luZyBkZWZpbmVzLgorCisJKiBpbmNsdWRlL21tZGRrLmg6IEVyaWMgUG91ZWNoIDxFcmljLlBvdWVjaEB3YW5hZG9vLmZyPgorCU5vdyB1c2luZyB0aGUgc2FtZSBzdHJ1Y3RzIGZvciBsb3ctbGV2ZWwgZHJpdmVycyBhcyBXaW5kb3dzIGRvLgorCisJKiBtdWx0aW1lZGlhL2F1ZGlvLmMsIG11bHRpbWVkaWEvbWl4ZXIuYywgbXVsdGltZWRpYS9tbWF1eC5jOgorCUVyaWMgUG91ZWNoIDxFcmljLlBvdWVjaEB3YW5hZG9vLmZyPgorCU1ha2UgaXQgKGFsbW9zdCkgMzIgYml0IG9ubHkuCisJUmVmbGVjdGVkIGNyZWF0aW9uIG9mIFdJTkVPU1MgbW9kdWxlLgorCisJKiBtdWx0aW1lZGlhL21pZGkuYzogRXJpYyBQb3VlY2ggPEVyaWMuUG91ZWNoQHdhbmFkb28uZnI+CisJTWFrZSBpdCAoYWxtb3N0KSAzMiBiaXQgb25seS4KKwlSZWZsZWN0ZWQgY3JlYXRpb24gb2YgV0lORU9TUyBtb2R1bGUuCisJTm8gbG9uZ2VyIHVzaW5nIEVSUiB3aGVuIG5vIE1JREkgY2FyZCBpcyBwcmVzZW50LgorCisJKiBtdWx0aW1lZGlhL2pveXN0aWNrLmM6IEVyaWMgUG91ZWNoIDxFcmljLlBvdWVjaEB3YW5hZG9vLmZyPgorCUFkZGVkIHN0dWIgZm9yIGpveUdldFBvc0V4MTYoKS4KKworCSogbXVsdGltZWRpYS9tY2kuYzogRXJpYyBQb3VlY2ggPEVyaWMuUG91ZWNoQHdhbmFkb28uZnI+CisJTm8gbG9uZ2VyIGNoZWNraW5nIGZvciBjb3JyZWN0IGlEYXRhIGluIGNvZGUuCisJQWRkZWQgbG9vay11cCB0YWJsZXMgdG8gY29tbWFuZCB0YWJsZXMgKHNwZWVkcyB1cCBxdWVyaWVzKS4KKworCSogbXVsdGltZWRpYS9tY2l3YXZlLmM6IEVyaWMgUG91ZWNoIDxFcmljLlBvdWVjaEB3YW5hZG9vLmZyPgorCU5vdyB1c2luZyBXQVZFRk9STUFURVggaW5zdGVhZCBvZiBQQ01XQVZFRk9STUFULgorCisJKiBtdWx0aW1lZGlhL21jaW1pZGkuYzogRXJpYyBQb3VlY2ggPEVyaWMuUG91ZWNoQHdhbmFkb28uZnI+CisJTm93IHVzaW5nIG1vZFJlc2V0KCkgaW5zdGVhZCBvZiB0d2Vha2luZyBNSURJIGNvbnRyb2xzLgorCisJKiBtdWx0aW1lZGlhL21jaWNkYS5jOiBFcmljIFBvdWVjaCA8RXJpYy5Qb3VlY2hAd2FuYWRvby5mcj4KKwlGaXhlZCByZXR1cm5lZCB0eXBlIHVwb24gb3Blbi4KKwlGaXhlZCBzb21lIGJvZ3VzIGVycm9yIGNoZWNraW5nLgorCisJKiBtdWx0aW1lZGlhL21jaWFuaW0uYywgbXVsdGltZWRpYS9tY2lhdmkuYzoKKwlFcmljIFBvdWVjaCA8RXJpYy5Qb3VlY2hAd2FuYWRvby5mcj4KKwlGaXhlZCByZXR1cm5lZCB0eXBlIHVwb24gb3Blbi4KKworCSogZGxscy9udGRsbC9leGNlcHRpb24uYzogSnVlcmdlbiBTY2htaWVkIDxqdWVyZ2VuLnNjaG1pZWRAbWV0cm9uZXQuZGU+CisJRG8gbm90IHNldCBFSF9OT05DT05USU5VQUJMRS4KKworCSogcHJvZ3JhbXMvb3N2ZXJzaW9uY2hlY2svLmN2c2lnbm9yZSwgcHJvZ3JhbXMvb3N2ZXJzaW9uY2hlY2svQ2hhbmdlTG9nLCBwcm9ncmFtcy9vc3ZlcnNpb25jaGVjay9NYWtlZmlsZS5pbiwgcHJvZ3JhbXMvb3N2ZXJzaW9uY2hlY2svb3N2ZXJzaW9uY2hlY2suYywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHByb2dyYW1zL01ha2VmaWxlLmluOgorCU1vcnRlbiBFcmlrc2VuIDxtb3J0ZW5lQHNpbS5ubz4KKwlBZGRlZCBzaW1wbGUgY29uc29sZSBtb2RlIGV4YW1wbGUgcHJvZ3JhbSB3aGljaCBsaXN0cyBpbmZvcm1hdGlvbgorCWFib3V0IHRoZSB2ZXJzaW9uIG9mIFdpbmRvd3Mgd2UncmUgY3VycmVudGx5IHJ1bm5pbmcgb24uCisKKwkqIGxvYWRlci9tb2R1bGUuYzogRml4ZWQgbWVtb3J5IGFsbG9jYXRpb24gYnVnLgorCisJKiB3aW5kb3dzL3gxMWRydi9ldmVudC5jOiBHZXJhcmQgUGF0ZWwgPGcucGF0ZWxAd2FuYWRvby5mcj4KKwlGaXggaW5maW5pdGUgbG9vcCB3aXRoIGdsYXN0WEZvY3VzV2luZG93LgorCisJKiBkbGxzL2NvbWN0bDMyL2ltYWdlbGlzdC5jOiBTdGVwaGFuZSBMdXNzaWVyIDxzdGVwaGFuZUBtYWNhZGFtaWFuLmNvbT4KKwlBbGxvdyBjcmVhdGlvbiBvZiBlbXB0eSBpbWFnZWxpc3QuCisKKwkqIG9iamVjdHMvcGFsZXR0ZS5jLCByZWxheTMyL2dkaTMyLnNwZWM6CisJSWFuIFNjaG1pZHQgPGlzY2htaWR0QGNmbC5yci5jb20+CisJQWRkZWQgcGFydGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBHZXRJQ01Qcm9maWxlQSwgcmVxdWlyZWQgYnkgUGFpbnQgU2hvcAorCVBybyA1LgorCisJKiBjb250cm9scy9tZW51LmM6IEFiZXkgR2VvcmdlIDxhYmV5QG1hY2FkYW1pYW4uY29tPgorCURvbid0IHNlbmQgV01fRU5URVJNRU5VTE9PUCwgV01fSU5JVE1FTlUgJiBXTV9JTklUTUVOVVBPUFVQIG1lc3NhZ2VzCisJd2hlbiBUUE1fTk9OT1RJRlkgZmxhZyBpcyBzZXQgaW4gVHJhY2tQb3B1cE1lbnUuCisKKwkqIG1pc2Mvd2luc29jay5jOiBEYXZpZCBMdXllciA8bHV5ZXJAdWNzLnV3YS5lZHUuYXU+CisJZ2V0cGVlcm5hbWUoKSBhbmQgZ2V0c29ja25hbWUoKSByZXR1cm4gZXJyb3JzIGluIGVycm5vIG5vdCBoX2Vycm5vLgorCitNb24gU2VwIDIwIDE4OjUyOjA2IDE5OTkgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvY29tbWRsZy9maWxlZGxnYnJvd3Nlci5jLCBkbGxzL2NvbW1kbGcvcHJpbnRkbGcuYywgaW5jbHVkZS9idWlsdGluMTYuaCwgbWlzYy9yZWdpc3RyeS5jLCBvYmplY3RzL2N1cnNvcmljb24uYywgdG9vbHMvYnVpbGQuYzoKKwlQYXRyaWsgU3RyaWR2YWxsIDxwc0BsZWlzc25lci5zZT4KKwlGaXhlZCBBTlNJIEMgdmlvbGF0aW9ucy4KKworCSogd2luZG93cy9rZXlib2FyZC5jLCB3aW5kb3dzL21vdXNlLmMsIGlmMTYzMi9rZXlib2FyZC5zcGVjLCBpZjE2MzIvbW91c2Uuc3BlYywgd2luZG93cy9pbnB1dC5jOgorCVVscmljaCBXZWlnYW5kIDx3ZWlnYW5kQGluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlPgorCUtleWJvYXJkL21vdXNlIGV2ZW50IHByb2MgdGh1bmsgY3JlYXRpb24gbW92ZWQgb3V0IG9mIGlmMTYzMi90aHVuay5jLgorCisJKiBpZjE2MzIva2VybmVsLnNwZWMsIGluY2x1ZGUvdGFzay5oLCBsb2FkZXIvLmN2c2lnbm9yZSwgbG9hZGVyL01ha2VmaWxlLmluLCBsb2FkZXIvbmUvbW9kdWxlLmMsIGxvYWRlci9uZS9zZWdtZW50LmMsIGxvYWRlci90YXNrLmM6CisJVWxyaWNoIFdlaWdhbmQgPHdlaWdhbmRAaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CisJRG9uJ3QgY3JlYXRlIHRodW5rIGZvciB0YXNrIHNpZ25hbCBwcm9jLCBjYWxsIGl0IGRpcmVjdGx5LgorCisJKiBpZjE2MzIvZ2RpLnNwZWMsIGluY2x1ZGUvZ2RpLmgsIG9iamVjdHMvLmN2c2lnbm9yZSwgb2JqZWN0cy9NYWtlZmlsZS5pbiwgb2JqZWN0cy9jbGlwcGluZy5jLCBvYmplY3RzL2RjLmMsIHdpbmRvd3MvZGNlLmM6CisJVWxyaWNoIFdlaWdhbmQgPHdlaWdhbmRAaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CisJREMgaG9vayBwcm9jIHRodW5rIG1hbmFnZW1lbnQgc2ltcGxpZmllZC4KKworCSogbWlzYy9zeXN0ZW0uYzogVWxyaWNoIFdlaWdhbmQgPHdlaWdhbmRAaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CisJU3lzdGVtIHRpbWVyIHByb2MgdGh1bmsgY3JlYXRpb24gbW92ZWQgb3V0IG9mIGlmMTYzMi90aHVuay5jLgorCisJKiBzY2hlZHVsZXIvdGhyZWFkLmM6CisJVWxyaWNoIFdlaWdhbmQgPHdlaWdhbmRAaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CisJRG9uJ3QgY3JlYXRlIHRodW5rIGZvciBDcmVhdGVUaHJlYWQxNiBwcm9jLCBjYWxsIGl0IGRpcmVjdGx5LgorCisJKiB3aW5kb3dzLy5jdnNpZ25vcmUsIHdpbmRvd3MvTWFrZWZpbGUuaW4sIHdpbmRvd3MvaG9vay5jLCBkbGxzL3NoZWxsMzIvc2hlbGwuYywgaWYxNjMyL3VzZXIuc3BlYywgaW5jbHVkZS9ob29rLmg6CisJVWxyaWNoIFdlaWdhbmQgPHdlaWdhbmRAaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CisJV2luZG93cyBob29rIHByb2MgdGh1bmsgbWFuYWdlbWVudCBzaW1wbGlmaWVkLgorCisJKiBpbmNsdWRlL2NhbGxiYWNrLmgsIGlmMTYzMi90aHVuay5jOgorCVVscmljaCBXZWlnYW5kIDx3ZWlnYW5kQGluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlPgorCU1vZGlmaWVkIFRIVU5LX0FsbG9jIHNvIGFzIHRvIGF2b2lkIDMyLT4xNi0+MzIgY2FsbGluZyBzZXF1ZW5jZXMuCisJUmVtb3ZlZCBwZXJzaXN0ZW50IHRodW5rIGNyZWF0aW9uIHJvdXRpbmVzLgorCisJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9hY2NvbmZpZy5oLCBpbmNsdWRlL2NvbmZpZy5oLmluLCBpbmNsdWRlL3RzX3hmODZkZ2EyLmgsIHRvb2xzL21ha2VfWDExd3JhcHBlcnMsIHRzeDExL01ha2VmaWxlLmluLCB0c3gxMS9YMTFfY2FsbHMsIHRzeDExL3RzX3hmODZkZ2EyLmM6CisJTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwlBZGRlZCB0aGUgcG9zc2liaWxpdHkgdG8gdXNlIERHQSAyLjAuCisKKwkqIHdpbmVkZWZhdWx0LnJlZzogVWxyaWNoIFdlaWdhbmQgPHdlaWdhbmRAaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CisJQWRkZWQgSEtFWV9MT0NBTF9NQUNISU5FXC4uLlxQcm9ncmFtRmlsZXNEaXIgcmVnaXN0cnkga2V5LgorCisJKiBkbGxzL2NvbWN0bDMyL2NvbW1jdHJsLmM6IERlbm5pcyBCb3JrbHVuZCA8ZGVubmlzYkBjcy5jaGFsbWVycy5zZT4KKwlJdCdzIG5vIGVycm9yIHRvIHNlbmQgYSBXTV9DT01NQU5EIHRvIE1lbnVIZWxwLgorCisJKiBmaWxlcy9maWxlLmM6IEZyYW5jb2lzIEJvaXN2ZXJ0PGZyYW5jb2lzQG1hY2FkYW1pYW4uY29tPgorCUNyZWF0ZUZpbGVBIHJldHVybnMgSEZJTEVfRVJST1Igd2hlbiB0aGUgZmlsZW5hbWUgY29udGFpbnMgYSB3aWxkIGNhcmQuCisKKwkqIGNvbnRyb2xzL3N0YXRpYy5jOiBGcmFuY2lzIEJlYXVkZXQgPGZyYW5jaXNAbWFjYWRhbWlhbi5jb20+CisJRml4ZWQgZGlzcGxheSBidWcgaW4gdGhlIHN0YXRpYyBjb250cm9sLgorCisJKiBjb250cm9scy9tZW51LmM6IFBhc2NhbCBMZXNzYXJkIDxwYXNjYWxAbWFjYWRhbWlhbi5jb20+CisJTWVzc2FnZSByZW1vdmVkIHdoZW4gbWVudSB0cmFja2luZyBmaW5pc2ggb24gYSBXTV9MQlVUVE9ORE9XTi4KKworCSogaW5jbHVkZS9iaXRtYXAuaCwgaW5jbHVkZS90c194bGliLmgsIGluY2x1ZGUveDExZHJ2LmgsIG9iamVjdHMvZGliLmMsIHRzeDExL1gxMV9jYWxscywgdHN4MTEvdHNfeGxpYi5jLCB3aW5kb3dzL2NsaXBib2FyZC5jLCB3aW5kb3dzL3gxMWRydi9jbGlwYm9hcmQuYywgd2luZG93cy94MTFkcnYvZXZlbnQuYywgZ3JhcGhpY3MveDExZHJ2L2JpdG1hcC5jLCBncmFwaGljcy94MTFkcnYvZGliLmM6CisJTm9lbCBCb3J0aHdpY2sgPG5vZWxAbWFjYWRhbWlhbi5jb20+CisJLSBBZGQgY2xpcGJvYXJkIHN1cHBvcnQgZm9yIGNvcHlpbmcvcGFzdGluZyBiaXRtYXBzIG9yIFBpeG1hcHMgYmV0d2VlbiBXaW5lCisJICBhbmQgbmF0aXZlIExpbnV4IGFwcGxpY2F0aW9ucy4KKwktIFJlc3BvbmQgdG8gdGhlIE1VTFRJUExFIHNlbGVjdGlvbiByZXF1ZXN0IHRhcmdldCB3aGVuIFdpbmUgaXMgdGhlCisJICBzZWxlY3Rpb24gb3duZXIuCisJLSBSZWxheCB0eXBlIGNoZWNraW5nIGZvciBUQVJHRVRTIHNlbGVjdGlvbi4KKworCSogaWYxNjMyL2J1aWx0aW4uYywgbG9hZGVyL21vZHVsZS5jOgorCVVscmljaCBXZWlnYW5kIDx3ZWlnYW5kQGluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlPgorCVNldCAnZXhwZWN0ZWRfdmVyc2lvbicgb2YgYnVpbHQtaW4gYW5kIGR1bW15IG1vZHVsZXMgYWNjb3JkaW5nIHRvCisJZW11bGF0ZWQgV2luZG93cyB2ZXJzaW9uLgorCisJKiBpZjE2MzIvcmVsYXkuYywgbG9hZGVyL21haW4uYzoKKwlVbHJpY2ggV2VpZ2FuZCA8d2VpZ2FuZEBpbmZvcm1hdGlrLnVuaS1lcmxhbmdlbi5kZT4KKwlNYWtlIENhbGxUbzE2IHJldHVybiBzdHViIHNlZ21lbnQgb3duZWQgYnkgS0VSTkVMLgorCisJKiBpbmNsdWRlL3dpbmUvd2luYmFzZTE2LmgsIGxvYWRlci90YXNrLmM6CisJVWxyaWNoIFdlaWdhbmQgPHdlaWdhbmRAaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CisJQnVnZml4OiBJbXByb3ZlZCBHZXRDb2RlSGFuZGxlMTYgLyBHZXRDb2RlSW5mbzE2LgorCisJKiBvbGUvbmxzL3N2ZS5ubHM6IERlbm5pcyBCam9ya2x1bmQgPGRlbm5pc2JAY3MuY2hhbG1lcnMuc2U+CisJQWRkZWQgc29tZSB2YWx1ZXMgdGhhdCB3ZXJlIG1pc3NpbmcgaW4gdGhlIFN3ZWRpc2ggbmxzIGZpbGUuCisKK1N1biBTZXAgMTkgMTg6NTg6MTYgMTk5OSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZ3JhcGhpY3MveDExZHJ2L2RpYi5jOgorCVVscmljaCBXZWlnYW5kIDx3ZWlnYW5kQGluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlPgorCUJ1Z2ZpeDogY3JlYXRlIEREQiBpbiBYMTFEUlZfRElCX0dldERJQml0cyBpZiBuZWNlc3NhcnkuCisKKwkqIGRsbHMvb2xlMzIvb2xlMzIuc3BlYzogSnVlcmdlbiBTY2htaWVkIDxqdWVyZ2VuLnNjaG1pZWRAbWV0cm9uZXQuZGU+CisJQWRkZWQgbWlzc2luZyBleHBvcnQuCisKKwkqIG9iamVjdHMvY3Vyc29yaWNvbi5jOiBKdWVyZ2VuIFNjaG1pZWQgPGp1ZXJnZW4uc2NobWllZEBtZXRyb25ldC5kZT4KKwlGaXhlZCBjcmFzaCB3aGVuIGxvYWRpbmcgKi5hbmkgZmlsZXMuCisKKwkqIG9sZS8qLCBkbGxzL29sZTMyLyosIGRsbHMvb2xlYXV0MzIvKiwgZGxscy9vbGVjbGkvKiwgZGxscy9vbGVkbGcvKjoKKwlVbHJpY2ggV2VpZ2FuZCA8d2VpZ2FuZEBpbmZvcm1hdGlrLnVuaS1lcmxhbmdlbi5kZT4KKwlNb3ZlZCBidWxrIG9mIE9MRSBpbXBsZW1lbnRhdGlvbiB0byBkbGxzLyBzdWJkaXJlY3Rvcmllcy4KKworCSogY29udHJvbHMvbWVudS5jOiBEZW5uaXMgQmr2cmtsdW5kIDxkZW5uaXNiQGNzLmNoYWxtZXJzLnNlPgorCVNlbmQgY29ycmVjdCBXTV9NRU5VU0VMRUNUIHdoZW4gbWVudSBjbG9zZXMuCisKKwkqIGRsbHMvY29tbWRsZy9maWxlZGxnOTUuYywgZGxscy9jb21tZGxnL2ZpbGVkbGdicm93c2VyLmMsIGRsbHMvc2hlbGwzMi9zaHJlcy5yYzoKKwlGcmFuY29pcyBCb2lzdmVydCA8ZnJhbmNvaXNAbWFjYWRhbWlhbi5jb20+CisJQWRkZWQgc21hbGwgZmVhdHVyZSBpbiB0aGUgZmlsZSBkaWFsb2cuCisKKwkqIHdpbjMyL25ld2Zucy5jLCBmaWxlcy9kcml2ZS5jLCBpbmNsdWRlL3dpbm50LmgsIGluY2x1ZGUvd3R5cGVzLmgsIG1zZG9zL3Z4ZC5jLCBvbGUvYW50aW1vbmlrZXIuYywgb2xlL2NvbXBvc2l0ZW1vbmlrZXIuYywgb2xlL2RhdGFjYWNoZS5jLCBvbGUvZmlsZW1vbmlrZXIuYywgb2xlL2hnbG9iYWxzdHJlYW0uYywgb2xlL2l0ZW1tb25pa2VyLmMsIG9sZS9tZW1sb2NrYnl0ZXMuYywgb2xlL29sZWZvbnQuYywgb2xlL3N0Z19iaWdibG9ja2ZpbGUuYywgb2xlL3N0Z19zdHJlYW0uYywgb2xlL3N0b3JhZ2UuYywgb2xlL3N0b3JhZ2UzMi5jLCBvbGUvdmFyaWFudC5jLCBkbGxzL2FkdmFwaTMyL3NlcnZpY2UuYywgZGxscy9jb21jdGwzMi9jb21jdGwzMnVuZG9jLmM6CisJUGF0cmlrIFN0cmlkdmFsbCA8cHNAbGVpc3NuZXIuc2U+CisJQWRkZWQgc3VwcG9ydCBmb3IgYW5vbnltb3VzIHN0cnVjdHMvdW5pb25zIG9uIGNvbXBpbGVycyB0aGF0IGltcGxlbWVudCBpdC4KKworCSogaW5jbHVkZS93aW5nZGkuaCwgb2JqZWN0cy90ZXh0LmMsIHJlbGF5MzIvZ2RpMzIuc3BlYzoKKwlQZXRlciBHYW50ZW4gPGdhbnRlbkB1bmktYnJlbWVuLmRlPgorCVN0dWJzIGZvciBQb2x5VGV4dE91dEEvVy4KKworCSogZ3JhcGhpY3MveDExZHJ2L2RpYi5jLCBvYmplY3RzL2RpYi5jOgorCUthcmwgTGVzc2FyZCA8eWJpY3VidWtAdW1haWwuY29yZWwuY29tPgorCVNvbWUgbW9yZSBtaW5vciBHREkgZml4ZXMuCisKKwkqIGRsbHMvY29tY3RsMzIvaW1hZ2VsaXN0LmM6IFN0ZXBoYW5lIEx1c3NpZXIgPHN0ZXBoYW5lQG1hY2FkYW1pYW4uY29tPgorCUluIEltYWdlTGlzdF9EcmF3IHdoZW4gZHJhd2luZyB0aGUgYml0bWFwIHdpdGggdGhlIHRyYW5zcGFyZW50IGZsYWcKKwlzZXQsIGJhY2tncm91bmQgY29sb3IvZm9yZWdyb3VuZCBjb2xvciBzaG91bGQgYmUgc2V0IHRvIHdoaXRlL2JsYWNrLAorCXdoZW4gZG9pbmcgYml0Ymx0IG9wZXJhdGlvbiB3aXRoIHRoZSBiaXRtYXAgbWFzay4KKworCSogZ3JhcGhpY3MvZXNjYXBlLmMsIGdyYXBoaWNzL3dpbjE2ZHJ2L2luaXQuYywgaW5jbHVkZS93aW4xNmRydi5oOgorCUh1dyBEIE0gRGF2aWVzIDxoLmRhdmllczFAcGh5c2ljcy5veC5hYy51az4KKwlFeHRlbmQgRFJBV01PREUgc3RydWN0IHRvIHdpbjk1IHNwZWMuCisJQWRkIHNvbWUgbW9yZSBFc2NhcGUgLT4gRXNjYXBlMTYgY29udmVyc2lvbnMuCisKKwkqIGdyYXBoaWNzL3dpbjE2ZHJ2L3BydGRydi5jOgorCUh1dyBEIE0gRGF2aWVzIDxoLmRhdmllczFAcGh5c2ljcy5veC5hYy51az4KKwlTdG9wIHRyYXNoaW5nIGRldm1vZGUgaWYgaW4gYW5kIG91dCBkZXZtb2RlcyBhcmUgdGhlIHNhbWUuCisKKwkqIGNvbnRyb2xzL3dpZGdldHMuYzogTm9vbWVuIEhhbXphIDxub29tZW5AbWFjYWRhbWlhbi5jb20+CisJVGhlIE1ESUNsaWVudCBjbGFzcyBtdXN0IGJlIHJlZ2lzdGVyZWQgd2l0aCB0aGUgSURDX0FSUk9XIGN1cnNvci4KKworCSogY29udHJvbHMvY29tYm8uYzogRnJhbmNpcyBCZWF1ZGV0IDxmcmFuY2lzQG1hY2FkYW1pYW4uY29tPgorCUltcGxlbWVudGVkIHRoZSBkaXNhYmxlZCBzdGF0ZSBvZiB0aGUgY29tYm9ib3guCisKKwkqIGNvbnRyb2xzL21lbnUuYzogUmljaGFyZCBDb2hlbiA8cmljaGFyZEBqdWJqdWIuZGVtb24uY28udWs+CisJUHJvdGVjdCBTZXRNZW51IGZyb20gcm9ndWUgbWVudSBoYW5kbGUuCisJR2V0TWVudTE2IGNhbiBqdXN0IGNhbGwgR2V0TWVudS4KKworCSogd2luZG93cy9tZGkuYzogUmljaGFyZCBDb2hlbiA8cmljaGFyZEBqdWJqdWIuZGVtb24uY28udWs+CisJUHJvdGVjdCBNRElTZXRNZW51IGZyb20gcm9ndWUgbWVudSBoYW5kbGVzLgorCisJKiBtZW1vcnkvbG9jYWwuYzogUmljaGFyZCBDb2hlbiA8cmljaGFyZEBqdWJqdWIuZGVtb24uY28udWs+CisJVGlkeSB1cCBUUkFDRSBldGMgdG8gdXNlIGRlZmF1bHQgY2hhbm5lbC4KKworCSogZGxscy92ZXJzaW9uL2luZm8uYywgZGxscy92ZXJzaW9uL3ZlcnNpb24uc3BlYywgaW5jbHVkZS93aW5iYXNlLmgsIGluY2x1ZGUvd2ludmVyLmgsIG9sZS9vbGUybmxzLmM6CisJVWxyaWNoIFdlaWdhbmQgPHdlaWdhbmRAaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CisJTW92ZSBWZXJMYW5ndWFnZU5hbWVbQVddIGJhY2sgdG8gYmFzZSAoZXhwb3J0ZWQgZnJvbSBLRVJORUwzMiAuLi4pLgorCisJKiBkbGxzL2NvbWN0bDMyL3JzcmMucmMsIGRsbHMvY29tY3RsMzIvY29tY3RsMzIuaCwgZGxscy9jb21jdGwzMi9wcm9wc2hlZXQuYzoKKwlUaHV5IE5ndXllbiA8dGh1eUBtYWNhZGFtaWFuLmNvbT4KKwlBZGRlZCBzdXBwb3J0IGZvciB3aXphcmQgcHJvcGVydHkgc2hlZXRzLgorCisJKiBtaXNjL2xzdHIuYzogSHV3IEQgTSBEYXZpZXMgPGguZGF2aWVzMUBwaHlzaWNzLm94LmFjLnVrPgorCUZpeCBGb3JtYXRNZXNzYWdlMTYgYXQgbGVhc3QgZW5vdWdoIHRvIGdldCB3aW45NSAxNmJpdCBwcmludGRsZyB3b3JraW5nLgorCisJKiBkbGxzL2NvbWN0bDMyL3RhYi5jOiBEYXZpZCBMdXllciA8bHV5ZXJAdWNzLnV3YS5lZHUuYXU+CisJLSBpU2VsZWN0ZWQgc2hvdWxkIGJlIC0xIGlmIG5vIGl0ZW0gc2VsZWN0ZWQgKEdlcmFyZCBQYXRlbCkKKwktIHNvbWUgb2YgdGhlIGNoZWNrcyBmb3IgaW52YWxpZCBpdGVtcyB3aGVyZSA+IHdoZW4gdGhleSBzaG91bGQgaGF2ZSBiZWVuID49CisJICAoTWFyY3VzIE1laXNzbmVyKQorCS0gbWFkZSBJbnNlcnRJdGVtIGJlaGF2ZSBzaW1pbGFybHkgdG8gRGVsZXRlSXRlbSwgaWUsIGlmIHRoZSBjdXJyZW50IGl0ZW0gaXMKKwkgIGFmdGVyIHdoZXJlIHRoZSBpdGVtIGlzIGluc2VydGVkLCBpbmNyZW1lbnQgdGhlIHNlbGVjdGVkIGl0ZW0gKERhdmlkIEx1eWVyKQorCisJKiBpZjE2MzIvdGh1bmsuYzogVWxyaWNoIFdlaWdhbmQgPHdlaWdhbmRAaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CisJQnVnZml4OiBEZWNsYXJlIENBTEwzMl9DQkNsaWVudFtFeF0gd2l0aG91dCBXSU5BUEkuCisKKwkqIGRlYnVnZ2VyL2RiX2Rpc2FzbS5jOgorCVVscmljaCBXZWlnYW5kIDx3ZWlnYW5kQGluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlPgorCUJ1Z2ZpeDogKEUpSVAtcmVsYXRpdmUgb2Zmc2V0cyBkZXBlbmQgb24gb3BlcmFuZCwgbm90IGFkZHJlc3MsIHNpemUuCisKKwkqIGluY2x1ZGUvd2ludXNlci5oLCByZWxheTMyL3VzZXIzMi5zcGVjLCB3aW5kb3dzL3VzZXIuYywgaW5jbHVkZS93aW5nZGkuaDoKKwlNYXJjdXMgTWVpc3NuZXIgPG1hcmN1c0BqZXQuZnJhbmtlbi5kZT4KKwlBZGRlZCBzdHViIGltcGxlbWVudGF0aW9uIGZvciBFbnVtRGlzcGxheURldmljZXMqLgorCisJKiBkbGxzL3duYXNwaTMyL3dpbmFzcGkzMi5jOiBNYXJjdXMgTWVpc3NuZXIgPG1hcmN1c0BqZXQuZnJhbmtlbi5kZT4KKwlBZGRlZCBTQ19HRVRfREVWVFlQRS4KKworCSogb2xlL2NvbXBvYmouYzogSnVlcmdlbiBTY2htaWVkIDxqdWVyZ2VuLnNjaG1pZWRAbWV0cm9uZXQuZGU+CisJQWRkZWQgc3R1YiBmb3IgT0xFMzIuRGxsR2V0Q2xhc3NPYmplY3QuCisKKwkqIGRsbHMvc2hlbGwzMi9waWRsLmgsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX21haW4uYywgaW5jbHVkZS9zaGxndWlkLmgsIGRsbHMvc2hlbGwzMi9waWRsLmM6CisJSnVlcmdlbiBTY2htaWVkIDxqdWVyZ2VuLnNjaG1pZWRAbWV0cm9uZXQuZGU+CisJTW9yZSBzdXBwb3J0IGZvciBzcGVjaWFsIHBpZGxzIGluIFNIR2V0U3BlY2lhbEZvbGRlckxvY2F0aW9uLgorCisJKiBncmFwaGljcy9wc2Rydi9ncmFwaGljcy5jLCBncmFwaGljcy9wc2Rydi9wZW4uYywgaW5jbHVkZS9wc2Rydi5oOgorCUx1YyBUb3VyYW5nZWF1IDxsdWNAbWFjYWRhbWlhbi5jb20+CisJSW1wbGVtZW50ZWQgaW52aXNpYmxlIHBlbnMuCisKKwkqIG9iamVjdHMvZGliLmMsIGdyYXBoaWNzL3gxMWRydi9kaWIuYzoKKwlIdXcgRCBNIERhdmllcyA8aC5kYXZpZXMxQHBoeXNpY3Mub3guYWMudWs+CisJU21hbGwgRElCIGZpeGVzLgorCisJKiBjb250cm9scy9tZW51LmM6IFBhc2NhbCBMZXNzYXJkIDxwYXNjYWxAbWFjYWRhbWlhbi5jb20+CisJQWRkZWQgYSBjYXNlIGZvciBtZW51IGhhbmRsaW5nIGluIHdpbjMxLgorCitUdWUgU2VwIDE0IDExOjUxOjAyIDE5OTkgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGluY2x1ZGUveDExZHJ2LmgsIG9iamVjdHMvZGliLmMsIGdyYXBoaWNzL3gxMWRydi9kaWIuYzoKKwlLYXJsIExlc3NhcmQgPGthcmxsQGNvcmVsLmNvbT4KKwlGaXhlZCBHZXRESUJpdHMgcHJvYmxlbXMuCisKKwkqIG1pc2MvY3B1LmMsIG11bHRpbWVkaWEvbWl4ZXIuYywgaW5jbHVkZS9jb21tY3RybC5oLCBpbmNsdWRlL21tc3lzdGVtLmgsIGluY2x1ZGUvbnRkZGsuaCwgaW5jbHVkZS9wcnNodC5oLCBpbmNsdWRlL3NobG9iai5oLCBpbmNsdWRlL3dpbmJhc2UuaCwgaW5jbHVkZS93aW5kZWYuaCwgaW5jbHVkZS93aW5lL29ial9kYXRhb2JqZWN0LmgsIGluY2x1ZGUvd2luZS9vYmpfb2xlYXV0Lmg6CisJUGF0cmlrIFN0cmlkdmFsbCA8cHNAbGVpc3NuZXIuc2U+CisJQWRkIHN1cHBvcnQgZm9yIGFub255bW91cyBzdHJ1Y3QvdW5pb25zIG9uIGNvbXBpbGVycyB0aGF0IGltcGxlbWVudCBpdC4KKworTW9uIFNlcCAxMyAxNjowNjoxNyAxOTk5ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBjb250cm9scy9idXR0b24uYywgY29udHJvbHMvdWl0b29scy5jOgorCURlbm5pcyBCanxya2x1bmQgPGRlbm5pc2JAY3MuY2hhbG1lcnMuc2U+CisJRml4ZWQgd2luOXggbG9vayBvbiBjaGVja2JveGVzIGFuZCByYWRpb2J1dHRvbnMuCisKKwkqIGdyYXBoaWNzL3dpbjE2ZHJ2Ly5jdnNpZ25vcmUsIGdyYXBoaWNzL3dpbjE2ZHJ2L01ha2VmaWxlLmluLCBncmFwaGljcy93aW4xNmRydi9pbml0LmMsIGdyYXBoaWNzL3dpbjE2ZHJ2L3BydGRydi5jLCBpZjE2MzIvdGh1bmsuYywgaW5jbHVkZS9jYWxsYmFjay5oLCBpbmNsdWRlL2dkaS5oLCBtaXNjLy5jdnNpZ25vcmUsIG1pc2MvTWFrZWZpbGUuaW4sIG1pc2MvcHJpbnRkcnYuYywgb2JqZWN0cy9kYy5jLCBncmFwaGljcy9lc2NhcGUuYywgZ3JhcGhpY3MvcHNkcnYvZXNjYXBlLmM6CisJSHV3IEQgTSBEYXZpZXMgPGguZGF2aWVzMUBwaHlzaWNzLm94LmFjLnVrPgorCUNoYW5nZSBpbnRlcmZhY2VzIHRvIFRIVU5LX0FsbG9jL0ZyZWUgc2xpZ2h0bHkgYW5kIG1ha2UgdGhlbSBub24tc3RhdGljLgorCVJlbW92ZSByZWxheXMgZm9yIHdpbjE2ZHJ2IGZyb20gQ2FsbEJhY2sgdGFibGUsIGluc3RlYWQgdXNlIGJ1aWxkIHRvCisJZ2VuZXJhdGUgdGhlbSBkaXJlY3RseSBpbiBncmFwaGljcy93aW4xNmRydi9wcnRkcnYuYy4KKwlJZiBQcmludGVyIEFib3J0UHJvYyBpcyAxNmJpdCB0aGVuIGFsbG9jYXRlIHRodW5rIGFuZCBzdG9yZSB0aGF0IGFzIGEKKwkzMmJpdCBwcm9jIGluIERDLiAgU2V0dGluZyBvZiBhYm9ydHByb2NzIG5vdyBkb25lIGluIHRoZSBjb3JyZWN0IHBsYWNlCisJKGkuZS4gbm90IGluIHRoZSBkcml2ZXIpLgorCisJKiBvYmplY3RzL2RpYi5jOiBLYWkgTW9yaWNoIDxrYWkubW9yaWNoQGJpZ2Zvb3QuZGU+CisJUmVsYXhlZCBwYXJhbWV0ZXIgY2hlY2tpbmcgZm9yIEdldERJQml0cy4KKworCSogd2luMzIvZGV2aWNlLmM6IFVscmljaCBXZWlnYW5kIDx3ZWlnYW5kQGluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlPgorCUZpeGVkIGxhc3QgZXJyb3IgY29kZSB3aGVuIHRyeWluZyB0byBsb2FkIHVua25vd24gVnhEIHdpdGggQ3JlYXRlRmlsZS4KKworCSogZGxscy9zaGVsbDMyL3NoZWxsMzJfbWFpbi5jOgorCUFuZHJlYXMgTW9ociA8YW1vaHJAc3R1ZGVudC5laS51bmktc3R1dHRnYXJ0LmRlPgorCVByZXRlbmQgc3VjY2Vzc2Z1bCBleGVjdXRpb24gb2YgU0hFTExfTm90aWZ5SWNvbiooKS4KKworCSogY29udHJvbHMvbWVudS5jLCByZWxheTMyL3VzZXIzMi5zcGVjOgorCUVyaWMgUG91ZWNoIDxFcmljLlBvdWVjaEB3YW5hZG9vLmZyPgorCUFkZGVkIE1lbnVJdGVtRnJvbVBvaW50IHN0dWIuCisKKwkqIGRsbHMvY29tY3RsMzIvY29tY3RsMzJ1bmRvYy5jOiBFcmljIFBvdWVjaCA8RXJpYy5Qb3VlY2hAd2FuYWRvby5mcj4KKwlGaXhlZCBvZmYgYnkgb25lIGFsbG9jYXRpb24gZXJyb3IgKERQQSBhbmQgRFNBKS4KKworCSogbXVsdGltZWRpYS9tbXN5c3RlbS5jOiBFcmljIFBvdWVjaCA8RXJpYy5Qb3VlY2hAd2FuYWRvby5mcj4KKwlGaXhlZCBjcmFzaCBpbiBQbGF5U291bmQgdGhyZWFkLgorCitTYXQgU2VwIDExIDE2OjI5OjAwIDE5OTkgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGNvbnRyb2xzL2xpc3Rib3guYzogTmljayBIb2xsb3dheSA8Tmljay5Ib2xsb3dheUBhbGZpZS5kZW1vbi5jby51az4KKwlGb3IgV2luIDMueCBhcHBsaWNhdGlvbnMsIGlmIHRoZXkgaGF2ZSBlaXRoZXIgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbAorCXNjcm9sbGJhcnMsIGVuYWJsZSBib3RoLgorCisJKiBkbGxzL2FkdmFwaTMyL2NyeXB0LmMsIGRsbHMvbXNhY20zMi9pbnRlcm5hbC5jLCBkbGxzL3NoZWxsMzIvcGlkbC5jLCBpbmNsdWRlL3dpbmUvd2luZXN0cmluZy5oLCBtZW1vcnkvc3RyaW5nLmM6CisJUGF0cmlrIFN0cmlkdmFsbCA8cHNAbGVpc3NuZXIuc2U+CisJRWxpbWluYXRlZCB3YXJuaW5ncy4KKworCSogY29udHJvbHMvY29tYm8uYywgY29udHJvbHMvbGlzdGJveC5jOgorCVBpZXJyZSBNYWdlYXUgPHBpZXJyZUBtYWNhZGFtaWFuLmNvbT4KKwlTZXQgdGhlIG1vdXNlIGNhcHR1cmUgb24gdGhlIGNvbWJvIGxpc3Rib3guCisKKwkqIGdyYXBoaWNzL2RkcmF3LmM6IExpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJLSBmaXhlZCB0aGUgY3JlYXRpb24gb2YgYmFjay1idWZmZXJzIGluIERHQSBtb2RlCisJLSBhZGRlZCBhIGNoZWNrIG9uIHRoZSB2YWxpZGl0eSBvZiB0aGUgTG9ja2luZyByZWN0YW5nbGUKKwktIGZpeGVkIHRoZSBlbnVtZXJhdGlvbiBmb3IgRFgtNi4wCisKKwkqIGRsbHMvY29tY3RsMzIvY29tbWN0cmwuYzogU3RlcGhhbmUgTHVzc2llciA8c3RlcGhhbmVAbWFjYWRhbWlhbi5jb20+CisJRml4ZWQgUkdCUVVBRC9DT0xPUlJFRiBtaXh1cCBpbiBDcmVhdGVNYXBwZWRCaXRtYXAoKS4KKworCSogY29udHJvbHMvYnV0dG9uLmM6IEFiZXkgR2VvcmdlIDxhYmV5QG1hY2FkYW1pYW4uY29tPgorCURyYXcgdGhlIGZvY3VzIHJlY3RhbmdsZSBmb3IgYnV0dG9ucyB3aXRoIEJTXzNTVEFURSwgQlNfUkFESU9CVVRUT04sCisJQlNfQ0hFQ0tCT1gsIEJTX0FVVE8qIHN0eWxlcy4KKworRnJpIFNlcCAxMCAxNDozODoyMCAxOTk5ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBncmFwaGljcy9wc2Rydi9kcml2ZXIuYywgZ3JhcGhpY3Mvd2luMTZkcnYvaW5pdC5jLCBncmFwaGljcy93aW4xNmRydi9wcnRkcnYuYywgaWYxNjMyL3RodW5rLmMsIGluY2x1ZGUvY2FsbGJhY2suaCwgaW5jbHVkZS9nZGkuaCwgaW5jbHVkZS9wc2Rydi5oLCBpbmNsdWRlL3dpbjE2ZHJ2LmgsIGdyYXBoaWNzL2RyaXZlci5jOgorCUh1dyBEIE0gRGF2aWVzIDxoLmRhdmllczFAcGh5c2ljcy5veC5hYy51az4KKwlXaW5zcG9vbCBEb2N1bWVudFByb3BlcnRpZXMgYW5kIERldmljZUNhcGFiaWxpdGllcyBzaG91bGQgbm93IHdvcmsgb24KKwluYXRpdmUgMTYgYml0IGRyaXZlcnMuCisKKwkqIGRsbHMvd2luc3Bvb2wvaW5mby5jOiBIdXcgRCBNIERhdmllcyA8aC5kYXZpZXMxQHBoeXNpY3Mub3guYWMudWs+CisJRml4ZXMgRGV2aWNlQ2FwYWJpbGl0aWVzIGZvciBEQ19QQVBFUlNJWkUuCisJVmFyaW91cyBmaXhlcyBmb3IgT3BlblByaW50ZXIgYW5kIEVudW1QcmludGVycy4KKwlTZXBhcmF0aW9uIG9mIEdldFByaW50ZXIgaW4gcHJlcGFyYXRpb24gZm9yIHVuaWZpY2F0aW9uIHdpdGggRW51bVByaW50ZXJzLgorCisJKiBncmFwaGljcy9wc2Rydi9wcGQuYywgaW5jbHVkZS93aW5nZGkuaDoKKwlIdXcgRCBNIERhdmllcyA8aC5kYXZpZXMxQHBoeXNpY3Mub3guYWMudWs+CisJQWRkIHN1cHBvcnQgZm9yIGEgbGFyZ2UgbnVtYmVyIG9mIGRpZmZlcmVudCBwYXBlciBzaXplcyB0byBQb3N0U2NyaXB0CisJZHJpdmVyLgorCisJKiBpbmNsdWRlL2QzZC5oOiBMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCUFkZGVkIGRlZmluaXRpb25zIG9mIENPTSBvYmplY3RzIGZvciBEM0QgNi54IHN1cHBvcnQuCisKKwkqIGdyYXBoaWNzL3BzZHJ2L2ZvbnQuYzogTmljayBIb2xsb3dheSA8YWxmaWVAYWxmaWUuZGVtb24uY28udWs+CisJSWYgdGhlcmUgaXMgbm90IGFuIGV4YWN0IG1hdGNoIGZvdW5kIGZvciB0aGUgcmVxdWVzdGVkIGZvbnQgbmFtZSwKKwlpbnN0ZWFkIG9mIHVzaW5nIHRoZSBmaXJzdCBmb250IGRlZmluZWQgZm9yIHRoZSBwcmludGVyLCBtYXAgc29tZQorCWNvbW1vbiBmb250IGZhbWlsaWVzIChlLmcuIEFyaWFsIC0+IEhlbHZldGljYSksIGFuZCBzZWFyY2ggYWdhaW4uCisKKwkqIGlmMTYzMi9rZXJuZWwuc3BlYywgaWYxNjMyL3RodW5rLmM6CisJVWxyaWNoIFdlaWdhbmQgPHdlaWdhbmRAaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CisJRml4ZWQgYnVnIGluIENCQ2xpZW50IHJvdXRpbmVzIGJ5IHN0b3JpbmcgdGhlIFNFR1BUUiBpbiB0aGUgZ2xvYmFsCisJdGFibGUgYW5kIHRyYW5zbGF0aW5nIGl0IG9uIGV2ZXJ5IHVzZS4KKworCSogaW5jbHVkZS9iaXRtYXBzL29pY19zYW1wbGU6IEFiZXkgR2VvcmdlIDxhYmV5QG1hY2FkYW1pYW4uY29tPgorCUNoYW5nZWQgdGhlIHBpeG1hcCB0byBsb29rIGxpa2UgdGhlIHdpbmRvd3MgZGVmYXVsdCBhcHBsaWNhdGlvbiBpY29uLgorCisJKiBmaWxlcy9kcml2ZS5jOiBSaWNoYXJkIENvaGVuIDxyaWNoYXJkQGp1Ymp1Yi5kZW1vbi5jby51az4KKwlTdG9wIGNyYXNoIGluIEdldERpc2tGcmVlU3BhY2VFeC4KKworCSogd2luZG93cy9ub25jbGllbnQuYzogRnJhbmNpcyBCZWF1ZGV0IDxmcmFuY2lzQG1hY2FkYW1pYW4uY29tPgorCU1hZGUgc3VyZSB0aGF0IHRoZSB3aW5kb3dzIHdpdGggdGhlIFdTX0VYX1RPT0xXSU5ET1cgc3R5bGUgZGlkbid0IGdldAorCWhhbmRsZWQgYnkgdGhlIHdpbmRvdyBtYW5hZ2VyLgorCisJKiBjb250cm9scy9lZGl0LmM6IFBhc2NhbCBMZXNzYXJkIDxwYXNjYWxAbWFjYWRhbWlhbi5jb20+CisJSW1wbGVtZW50ZWQgdGhlIGJlaGF2aW9yIGFyb3VuZCB0aGUgRVNfV0FOVFJFVFVSTiBzdHlsZSBpbiB0aGUgZWRpdAorCWNvbnRyb2wuCisKKwkqIHdpbmRvd3MveDExZHJ2L2tleWJvYXJkLmM6IFN0ZXBoYW5lIEx1c3NpZXIgPHN0ZXBoYW5lQG1hY2FkYW1pYW4uY29tPgorCVByZXNzaW5nIHRoZSBkZWxldGUga2V5IHVzaW5nIGFuIGV4dGVuZGVkIGtleWJvYXJkIHdpdGggbnVtbG9jayBvbiBpcworCW5vdCBnZW5lcmF0aW5nIGFueW1vcmUgYSBXTV9DSEFSIG1lc3NhZ2UuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGVsbHBhdGguYzogTmljbGFzIEthcmxzc29uIDxua2FybHNzb0ByYS5hYm8uZmk+CisJRml4ZWQgcGF0dGVybiBtYXRjaGluZyBpbiBQYXRoTWF0Y2hTcGVjQS9XCisKKwkqIGRsbHMvc2hlbGwzMi9zaGx2aWV3LmM6IEZyYW5jb2lzIEJvaXN2ZXJ0IDxmcmFuY29pc0BtYWNhZGFtaWFuLmNvbT4KKwlUYWJiaW5nIGluIHRoZSBsaXN0dmlldyBvZiB0aGUgc2hlbGx2aWV3LgorCisJKiBkbGxzL2NvbWN0bDMyL2xpc3R2aWV3LmM6IEx1YyBUb3VyYW5nZWF1IDxsdWNAbWFjYWRhbWlhbi5jb20+CisJRml4ZWQgTElTVFZJRVdfR2V0SXRlbVJlY3Q6IHRoZSBjYWxjdWxhdGlvbnMgd2VyZSBvZmYgZm9yIExWSVJfQk9VTkRTLAorCUxWSVJfU0VMQ1RCT1VORFMsIExWSVJfTEFCRUwgd2hlbiB0aGUgaXRlbSB3aWR0aCBpcyBncmVhdGVyIHRoYW4gdGhlCisJY29sdW1uIHdpZHRoLgorCUZpeGVkIFdNX0dFVERMR0NPREUgYnkgcmVtb3ZpbmcgdGhlIERMR0NfV0FOVFJUQUIgYW5kIGFkZGluZyBETEdDX1dBTlRDSEFSUy4KKworCSogZGxscy9zaGVsbDMyL3NoZWxsMzJfbWFpbi5jOgorCUp1ZXJnZW4gU2NobWllZCA8anVlcmdlbi5zY2htaWVkQG1ldHJvbmV0LmRlPgorCUZpeGVkIGNyYXNoIGluIGRldGFjaCBzZXF1ZW5jZS4KKworCSogZGxscy9zaGVsbDMyL3NobGZvbGRlci5jOgorCUp1ZXJnZW4gU2NobWllZCA8anVlcmdlbi5zY2htaWVkQG1ldHJvbmV0LmRlPgorCUZpeGVkIHdyb25nIHJldHVybiB2YWx1ZS4KKworCSogZGxscy9jcnRkbGwvY3J0ZGxsX21haW4uYzoKKwlKdWVyZ2VuIFNjaG1pZWQgPGp1ZXJnZW4uc2NobWllZEBtZXRyb25ldC5kZT4KKwlQcmV2ZW50IGVuZGxlc3MgbG9vcCBpbiBleGNlcHQyLgorCisJKiB0b29scy9idWdfcmVwb3J0LnBsOiBBZGFtIFNhY2FybnkgPG1hZ2ljYm94QGJlc3R3ZWIubmV0PgorCU5vdyB3b3JrcyBhcm91bmQgd2luZSBuZXZlciBleGl0aW5nIHRoZSBkZWJ1Z2dlci4KKwlTaG91bGQgcHV0IGJ1ZyByZXBvcnRzIGluIHRoZSByaWdodCBwbGFjZSBub3cuCisKKwkqIG9sZS9vbGVhdXQzMi5jLCBvbGUvTWFrZWZpbGUuaW4sIHJlbGF5MzIvb2xlYXV0MzIuc3BlYzoKKwlNYXJjdXMgTWVpc3NuZXIgPE1hcmN1cy5NZWlzc25lckBjYWxkZXJhLmRlPgorCUFkZGVkIHN0dWIgZm9yIFJlZ2lzdGVyQWN0aXZlT2JqZWN0KCkuCisKKwkqIGRsbHMvd2luMzJzL3czMnN5cy5jLCBkbGxzL3dpbjMycy93MzJzeXMuc3BlYzoKKwlNYXJjdXMgTWVpc3NuZXIgPG1hcmN1c0BqZXQuZnJhbmtlbi5kZT4KKwlBZGRlZCBzdHViIGZvciBXSU4zMlMxNi5FWFAxIChtb3N0IGxpa2VseSBMb2FkUGVSZXNvdXJjZTE2KS4KKworU3VuIFNlcCAgNSAxNjo0ODoxNyAxOTk5ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBsb2FkZXIvbWFpbi5jLCBsb2FkZXIvbW9kdWxlLmMsIG1pc2NlbXUvbWFpbi5jLCBpbmNsdWRlL3dpbmRlZi5oOgorCVJlbW92ZWQgX193aW5lbGliIGZsYWcuCisKKwkqIHdpbmRvd3MvZHJpdmVyLmMsIG11bHRpbWVkaWEvYXVkaW8uYywgbXVsdGltZWRpYS9kc291bmQuYywgbXVsdGltZWRpYS9tY2kuYywgbXVsdGltZWRpYS9tY2lhbmltLmMsIG11bHRpbWVkaWEvbWNpYXZpLmMsIG11bHRpbWVkaWEvbWNpY2RhLmMsIG11bHRpbWVkaWEvbWlkaS5jLCBtdWx0aW1lZGlhL21peGVyLmMsIG11bHRpbWVkaWEvbW1hdXguYywgbXVsdGltZWRpYS9tbXN5c3RlbS5jLCBtdWx0aW1lZGlhL3RpbWUuYywgbXVsdGltZWRpYS93aW5tbS5yYzoKKwlFcmljIFBvdWVjaCA8RXJpYy5Qb3VlY2hAd2FuYWRvby5mcj4KKwlVcGRhdGVkIHRvIG5ldyBNTSBoZWFkZXIgb3JnYW5pemF0aW9uLgorCisJKiBpbmNsdWRlL211bHRpbWVkaWEuaCwgaW5jbHVkZS9tbWRkay5oLCBpbmNsdWRlL21tc3lzdGVtLmgsIG11bHRpbWVkaWEvb3NzLmgsIG11bHRpbWVkaWEvd2luZW1tLmg6CisJRXJpYyBQb3VlY2ggPEVyaWMuUG91ZWNoQHdhbmFkb28uZnI+CisJTW92ZWQgRERLIGxldmVsIG1hdGVyaWFsIHRvIG5ldyBpbmNsdWRlL21tZGRrLmggZmlsZS4KKwlDb3BpZWQgc29tZSBTREsgbGV2ZWwgbWF0ZXJpYWwgZnJvbSBpbmNsdWRlL211bHRpbWVkaWEuaCBmaWxlLgorCisJKiBtdWx0aW1lZGlhL21jaXdhdmUuYywgbXVsdGltZWRpYS9tY2ltaWRpLmM6CisJRXJpYyBQb3VlY2ggPEVyaWMuUG91ZWNoQHdhbmFkb28uZnI+CisJVXBkYXRlZCB0byBuZXcgTU0gaGVhZGVyIG9yZ2FuaXphdGlvbi4KKwlDbGVhbmVkLXVwIGludGVybmFsIHN0cnVjdHVyZXMgKG5vdyAzMiBiaXQgb25seSkuCisJTm93IHVzaW5nIHRoZSBNTVNZU1RFTSBlbnRyeSBwb2ludHMgcmF0aGVyIHRoYW4gdGhlIGxvdyBsZXZlbCBkcml2ZXIKKwlvbmVzIGRpcmVjdGx5LgorCisJKiBpbmNsdWRlL3NpZ19jb250ZXh0Lmg6IEp1ZXJnZW4gTG9jayA8bm94QGplbGFsLmtuLWJyZW1lbi5kZT4KKwlGaXggJWZzIGZvciBzaWduYWwgaGFuZGxlcnMgaW4gdGhlIEZTX3NpZyB1bmRlZmluZWQgY2FzZSAodGhpcyBwYXRjaAorCWFjdHVhbGx5IGZyb20gVWxyaWNoIFdlaWdhbmQsIEkgb25seSB0ZXN0ZWQgaXQpLgorCisJKiBzY2hlZHVsZXIvc3lzZGVwcy5jLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9hY2NvbmZpZy5oLCBpbmNsdWRlL2NvbmZpZy5oLmluOgorCVJvbiBSZWNvcmQgPHJyQHNjby5jb20+CisJQWRkZWQgc3VwcG9ydCBvZiBfX3Rocl9lcnJubyBmb3IgcmVlbnRyYW5jZSBvbiBVbml4V2FyZS4KKworCSogd2luZG93cy9kaWFsb2cuYzogUmljaGFyZCBDb2hlbiA8cmljaGFyZEBqdWJqdWIuZGVtb24uY28udWs+CisJTm8gbG9uZ2VyIG5lZWRzIHRvIGNhbGN1bGF0ZSBpdHMgb3duIGNoYXJhY3RlciBzaXplLgorCisJKiBtaXNjL21haW4uYzogUmljaGFyZCBDb2hlbiA8cmljaGFyZEBqdWJqdWIuZGVtb24uY28udWs+CisJQ29uc2VxdWVudGlhbCBjaGFuZ2VzIHRvIGRlZmF1bHQgc3lzdGVtIGZvbnQgc2l6ZXMKKworCSogZ3JhcGhpY3MveDExZHJ2L3hmb250LmMsIGluY2x1ZGUveDExZm9udC5oOgorCVJpY2hhcmQgQ29oZW4gPHJpY2hhcmRAanVianViLmRlbW9uLmNvLnVrPgorCVZhcmlvdXMgZml4ZXMgZm9yIHRoZSBYMTEgZm9udCBtYXBwZXIsIHBhcnRpY3VsYXJseToKKwktIHNpemUgZm9udHMgd2l0aCBuZWdhdGl2ZSBoZWlnaHRzIGNvcnJlY3RseQorCS0gY2FsY3VsYXRlIGF2ZXJhZ2Ugd2lkdGggY29ycmVjdGx5LgorCisJKiBvYmplY3RzL2N1cnNvcmljb24uYzogRnJhbmNpcyBCZWF1ZGV0IDxmcmFuY2lzQG1hY2FkYW1pYW4uY29tPgorCVVzZSBhIHNwZWNpYWwgdmFsdWUgaW4gdGhlIGhvdHNwb3QgY29vcmRpbmF0ZSB0byBpZGVudGlmeSB3aGljaCBISUNPTgorCWFyZSBjdXJzb3JzIGFuZCB3aGljaCBhcmUgaWNvbnMuCisKKwkqIGNvbnRyb2xzL2NvbWJvLmM6IFBpZXJyZSBNYWdlYXUgPHBpZXJyZUBtYWNhZGFtaWFuLmNvbT4KKwlNb2RpZmllZCBDQkRyb3BEb3duIHRvIGZpbmQgdGhlIGJlc3QgaGVpZ2h0IG9mIHRoZSBsaXN0Ym94LgorCitTYXQgU2VwICA0IDE0OjM2OjAzIDE5OTkgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9jb25maWcuaC5pbiwgaW5jbHVkZS93aW5lL3dpbmVzdHJpbmcuaCwgbWVtb3J5L3N0cmluZy5jLCBtaXNjL3BvcnQuYywgY29uZmlndXJlOgorCUFkZGVkIGNvbmZpZ3VyZSBjaGVjayBmb3Igc3RyW25dY2FzZWNtcC4KKworCSogd2luZG93cy90aW1lci5jOiBVd2UgQm9ubmVzIDxib25AZWxla3Ryb24uaWtwLnBoeXNpay50dS1kYXJtc3RhZHQuZGU+CisJQWxsb3cgdGltZW91dCBvZiAwLiBDYXAgdGltZXIgcmF0ZSB0byBTWVNfVElNRVJfUkFURS4KKworCSogaW5jbHVkZS93aW5kZWYuaDogSHV3IEQgTSBEYXZpZXMgPGguZGF2aWVzMUBwaHlzaWNzLm94LmFjLnVrPgorCUFkZGVkIHR5cGUgUFdPUkQuCisKKwkqIGRsbHMvd2luc3Bvb2wvaW5mby5jLCBpbmNsdWRlL3dpbnNwb29sLmg6CisJSHV3IEQgTSBEYXZpZXMgPGguZGF2aWVzMUBwaHlzaWNzLm94LmFjLnVrPgorCUFkZGVkIGxvYWRzIG9mIHR5cGVzLCBkZWZpbmVzIGFuZCBkZWNsYXJhdGlvbnMgdG8gd2luc3Bvb2wuaC4KKworCSogZGxscy9jb21tZGxnL2NkbGdfRW4ucmMsIGRsbHMvY29tbWRsZy9maWxlZGxnOTUuYzoKKwlGcmFuY29pcyBCb2lzdmVydDxmcmFuY29pc0BtYWNhZGFtaWFuLmNvbT4KKwlGaXhlZCB0aGUgaGVpZ2h0IG9mIGl0ZW1zIGluIHRoZSBsb29raW4gY29tYm9ib3ggb2YgdGhlIGZpbGVkbGc5NS4KKworCSogY29udHJvbHMvZWRpdC5jOiBTdGVwaGFuZSBMdXNzaWVyIDxzdGVwaGFuZUBtYWNhZGFtaWFuLmNvbT4KKwlJbml0aWFsaXplIHRoZSBlbmFibGluZyBzdGF0ZSB2YXJpYWJsZSBpbiB0aGUgZWRpdC4KKworCSogZ3JhcGhpY3MvYml0Ymx0LmM6IE5vb21lbiBIYW16YSA8bm9vbWVuQG1hY2FkYW1pYW4uY29tPgorCVRoZSBmYXN0IHdpbmRvdyBmcmFtZSBzaXplIHNob3VsZCBiZSB0aGUgc2FtZSBhcyB0aGUgZnJhbWUgc2l6ZSB1c2VkCisJYnkgTkNfRHJhd0ZyYW1lIGZ1bmN0aW9uLgorCisJKiBvYmplY3RzL3JlZ2lvbi5jOiBIdXcgRCBNIERhdmllcyA8aC5kYXZpZXMxQHBoeXNpY3Mub3guYWMudWs+CisJRml4ZWQgY29tcGlsZXIgd2FybmluZ3MuCisKKwkqIHByb2dyYW1zL3JlZ2FwaS9yZWdhcGkuYzogSHV3IEQgTSBEYXZpZXMgPGguZGF2aWVzMUBwaHlzaWNzLm94LmFjLnVrPgorCWxzdHJuY21waSBpc24ndCBhIHdpbmRvd3MgQVBJLCB1c2Ugc3RybmNhc2VjbXAgaW5zdGVhZC4KKworCSogbWVtb3J5L2dsb2JhbC5jOgorCUZpeGVkIEdNRU1fWkVST0lOSVQgaW4gR2xvYmFsUmVhbGxvYyAodGhhbmtzIHRvIEdlcmFyZCBQYXRlbCkuCisKKwkqIHdpbmRvd3MvbXNnYm94LmM6IEFkZGVkIG1pc3NpbmcgSEZPTlQgdHlwZS4KKworCSogZGxscy9jb21jdGwzMi9pbWFnZWxpc3QuYywgaW5jbHVkZS9jdXJzb3JpY29uLmgsIGxvYWRlci9tYWluLmMsIG9iamVjdHMvYml0bWFwLmMsIG9iamVjdHMvY3Vyc29yaWNvbi5jLCB3aW5kb3dzL2NsYXNzLmM6CisJUGllcnJlIE1hZ2VhdSA8cGllcnJlQG1hY2FkYW1pYW4uY29tPgorCUNoYW5nZWQgQ29weUltYWdlIHRvIGFjY2VwdCBkZXNpcmVkWCwgZGVzaXJlZFkgYW5kIExSX0NPUFlGUk9NUkVTT1VSQ0UuCisJQ1VSU09SSUNPTl9GaW5kQmVzdEljb24gY2hhbmdlZCB0byBmaW5kIHRoZSBjb3JyZWN0IGljb24uCisJSW1hZ2VMaXN0X1JlcGxhY2VJY29uIG5vdyBjYWxscyBDb3B5SW1hZ2UgaW50ZXJuYWxseS4KKwlBc3NpZ24gYSB2YWx1ZSBmb3IgdGhlIGhJY29uU20gQ0xBU1MgbWVtYmVyICh1c2luZyBDb3B5SW1hZ2UpLgorCisJKiB3aW4zMi9jb25zb2xlLmM6IEd1eSBBbGJlcnRlbGxpIDxnYWxiZXJ0ZUBuZW8ubHJ1bi5jb20+CisJRml4ZWQgV3JpdGVDb25zb2xlT3V0cHV0IGFuZCBHZXROdW1iZXJPZkNvbnNvbGVJbnB1dEV2ZW50cy4KKworCSogZGxscy9jb21jdGwzMi9wcm9wc2hlZXQuYzogVGh1eSBOZ3V5ZW4gPHRodXlAbWFjYWRhbWlhbi5jb20+CisJR2l2ZSBhcHBsaWNhdGlvbnMgYSBjb3B5IG9mIHRoZSBwcm9wZXJ0eSBzaGVldCBkaWFsb2cgdGVtcGxhdGUgYXMgdGhleQorCW1pZ2h0IG1vZGlmeSBpdC4KKworCSogcmVsYXkzMi9yZWxheTM4Ni5jOiBNYXJjdXMgTWVpc3NuZXIgPG1hcmN1c0BqZXQuZnJhbmtlbi5kZT4KKwlSZWxheSBleGNsdWRlIGxpc3RzIHdlcmUgbm90IHdvcmtpbmcgZHVlIHRvIHNvbWUgQ2hhclVwcGVyQSgpCisJc29tZXdoZXJlIGVsc2UuCisKKwkqIGxvYWRlci9sb2Fkb3JkZXIuYywgd2luZS5pbmk6CisJSHV3IEQgTSBEYXZpZXMgPGguZGF2aWVzMUBwaHlzaWNzLm94LmFjLnVrPgorCXdpbnNwb29sIC0+IHdpbnNwb29sLmRydgorCisJKiBkbGxzL2NvbWN0bDMyL2NvbWN0bDMyLnNwZWMsIGRsbHMvY29tY3RsMzIvY29tY3RsMzJ1bmRvYy5jOgorCVV3ZSBCb25uZXMgPGJvbkBlbGVrdHJvbi5pa3AucGh5c2lrLnR1LWRhcm1zdGFkdC5kZT4KKwlJbXBsZW1lbnRlZCBTdHJDbXBOSUEgbGlrZSB0aGUgb3RoZXIgU3RyQ21wWFggZnVuY3Rpb25zLgorCisJKiBmaWxlcy9wcm9maWxlLmM6IFRodXkgTmd1eWVuIDx0aHV5QG1hY2FkYW1pYW4uY29tPgorCVJlc29sdmUgZW52aXJvbm1lbnQgdmFyaWFibGUgd2hlbiBlbnVtZXJhdGluZyB2YWx1ZXMuCisKKwkqIGNvbnRyb2xzL2VkaXQuYzogUGFzY2FsIExlc3NhcmQgPHBhc2NhbEBtYWNhZGFtaWFuLmNvbT4KKwlUaGUgZm9ybWF0IHJlY3QgaXMgcmVjYWxjdWxhdGVkIGZvciBlYWNoIGZvbnQgY2hhbmdlLiBNb3ZlRW5kICYKKwlNb3ZlSG9tZSBpbXByb3ZlZC4KKworRnJpIFNlcCAgMyAxNjo0OToxNyAxOTk5ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBncmFwaGljcy94MTFkcnYvZGliLmMsIGluY2x1ZGUveDExZHJ2LmgsIG9iamVjdHMvZGliLmM6CisJS2FybCBMZXNzYXJkIDxrYXJsbEBjb3JlbC5jb20+CisJSWFuIFdhcmQKKwlEYW4gTGFuZ2xvaXMKKwlTcGVlZCB1cCBjb252ZXJzaW9uIGJldHdlZW4gWEltYWdlcyBhbmQgRElCU2VjdGlvbnMuCisKKwkqIGRsbHMvY29tbWRsZy9maWxlZGxnOTUuYywgZGxscy9jb21tZGxnL2ZpbGVkbGdicm93c2VyLmMsIGRsbHMvY29tbWRsZy9maWxlZGxnYnJvd3Nlci5oLCBkbGxzL3NoZWxsMzIvc2hsdmlldy5jOgorCUZyYW5jb2lzIEJvaXN2ZXJ0IDxmcmFuY29pc0BtYWNhZGFtaWFuLmNvbT4KKwlTb21lIDxvcGVuPiBmZWF0dXJlcyBpbiB0aGUgZmlsZSBkaWFsb2cgOTUuCisKKwkqIGluY2x1ZGUvd2lubnQuaCwgc2NoZWR1bGVyL3N5c2RlcHMuYzoKKwlVbHJpY2ggV2VpZ2FuZCA8d2VpZ2FuZEBpbmZvcm1hdGlrLnVuaS1lcmxhbmdlbi5kZT4KKwlSZW1vdmVkIGdsb2JhbCB2YXJpYWJsZSBwQ3VycmVudFRlYi4KKworCSogbWVtb3J5L2hlYXAuYzogVWxyaWNoIFdlaWdhbmQgPHdlaWdhbmRAaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CisJSEVBUF9Db21taXQvRGVjb21taXQgd2VyZSBhc3N1bWluZyBhIHBhZ2Ugc2l6ZSBvZiA0S0IKKwl1bmNvbmRpdGlvbmFsbHkuCisKKwkqIGluY2x1ZGUvd2luZ2RpLmg6IEh1dyBEIE0gRGF2aWVzIDxoLmRhdmllczFAcGh5c2ljcy5veC5hYy51az4KKwlBIGZldyBtb3JlIERDXyBkZWZpbmVzIGZyb20gV2luMjAwMC4KKworCSogZGxscy9jb21jdGwzMi9zdGF0dXMuYzogSHV3IEQgTSBEYXZpZXMgPGguZGF2aWVzMUBwaHlzaWNzLm94LmFjLnVrPgorCUNoZWNrIHRoYXQgbHBDcmVhdGUtPmxwc3pOYW1lIGlzIG5vbi1OVUxMLgorCisJKiB3aW5kb3dzL2RpYWxvZy5jOiBNYXJjdXMgTWVpc3NuZXIgPE1hcmN1cy5NZWlzc25lckBjYWxkZXJhLmRlPgorCU1vcmUgcmVzdHJpY3RpdmUgY2hlY2tzLCBzbyBESUFMT0dfSXNBY2NlbGVyYXRvciBkb24ndCBsb29wCisJZW5kbGVzc2x5LgorCisJKiBjb250cm9scy9tZW51LmM6IFBhc2NhbCBMZXNzYXJkIDxwYXNjYWxAbWFjYWRhbWlhbi5jb20+CisJTWVudSBoaWRlcyB3aGVuIGNsaWNrZWQgZm9yIGEgc2Vjb25kIHRpbWUuCisKKwkqIHdpbmRvd3MvbXNnYm94LmM6IFJpY2hhcmQgQ29oZW4gPHJpY2hhcmRAanVianViLmRlbW9uLmNvLnVrPgorCS0gc2VsZWN0IHRoZSBmb250IGludG8gdGhlIGRjIGJlZm9yZSBjYWxjdWxhdGluZyB0aGUgZXh0ZW50CisJLSBtYWtlIGJ1dHRvbmhlaWdodCBjb3JyZXNwb25kIHRvIHRleHQgaGVpZ2h0ICsgd2lkdGggdG8gY2FwdGlvbgorCS0gYnV0dG9uIHdhcyAiZmxhc2hpbmciIG9uIEVuZERpYWxvZyAobXVzdCBkZWxldGUgZm9udCBBRlRFUiBFbmREaWFsb2cpCisJLSAjZGVmaW5lcyBmb3IgRGxnSXRlbUlkcworCS0gaW1wbGVtZW50IE1CX1JFVFJZQ0FOQ0VMCisKKwkqIGNvbnRyb2xzL2VkaXQuYzogU3RlcGhhbmUgTHVzc2llciA8c3RlcGhhbmVAbWFjYWRhbWlhbi5jb20+CisJS2VlcCB0aGUgZW5hYmxlIHN0YXRlIGluIHRoZSBlZGl0IHN0cnVjdHVyZSBpbnN0ZWFkIG9mIGNhbGxpbmcKKwlJc1dpbmRvd0VuYWJsZWQoKS4KKworCSogaW5jbHVkZS9jbGlwYm9hcmQuaCwgaW5jbHVkZS90dHlkcnYuaCwgaW5jbHVkZS94MTFkcnYuaCwgb2xlL2NsaXBib2FyZC5jLCB3aW5kb3dzL2NsaXBib2FyZC5jLCB3aW5kb3dzL3R0eWRydi9jbGlwYm9hcmQuYywgd2luZG93cy90dHlkcnYvaW5pdC5jLCB3aW5kb3dzL3VzZXIuYywgd2luZG93cy94MTFkcnYvY2xpcGJvYXJkLmMsIHdpbmRvd3MveDExZHJ2L2V2ZW50LmMsIHdpbmRvd3MveDExZHJ2L2luaXQuYzoKKwlOb2VsIEJvcnRod2ljayA8bm9lbEBtYWNhZGFtaWFuLmNvbT4KKwktIEltcGxlbWVudCBpbnRlcnByb2Nlc3MgY2xpcGJvYXJkIGNvbW11bmljYXRpb24uCisJLSBTdXBwb3J0IGZvciB0aGUgUFJJTUFSWSBhbmQgQ0xJUEJPQVJEIHNlbGVjdGlvbiBhdG9tcy4KKwktIFN1cHBvcnQgZm9yIHRoZSBUQVJHRVRTIHNlbGVjdGlvbiBmb3JtYXQuCisJLSBFeHBvc2UgbmF0aXZlIFdpbmRvd3MgY2xpcGJvYXJkIGZvcm1hdHMgdGhyb3VnaCBYIHNlbGVjdGlvbiB0YXJnZXRzLgorCisJKiBvYmplY3RzL2dkaW9iai5jOiBSaWNoYXJkIENvaGVuIDxyaWNoYXJkQGp1Ymp1Yi5kZW1vbi5jby51az4KKwlNYWtlIHN0b2NrIGZvbnRzIGluZGVwZW5kZW50IG9mIG1hcHBpbmcgbW9kZS4KKwlTeXN0ZW0gZm9udCBzaG91bGQgb25seSBiZSBib2xkIGZvciBXaW4zMS4KKworCSogd2luZG93cy9kaWFsb2cuYzogRnJhbmNpcyBCZWF1ZGV0IDxmcmFuY2lzQG1hY2FkYW1pYW4uY29tPgorCVJlbW92ZWQgdHJ1bmNhdGluZyBlcnJvcnMgdGhhdCBoYXBwZW4gd2hlbiBjb252ZXJ0aW5nIGZvbSBkaWFsb2cgdW5pdHMKKwl0byBwaXhlbHMuCisKKwkqIHdpbmRvd3Mvd2lucG9zLmM6IEFiZXkgR2VvcmdlPGFiZXlAbWFjYWRhbWlhbi5jb20+CisJQ2hlY2sgbmV3IGNvb3JkaW5hdGVzIHJlY2VpdmVkIGluIFdNX05DQ0FMQ1NJWkUgbWVzc2FnZS4KKworCSogY29udHJvbHMvYnV0dG9uLmM6IEZyYW5jaXMgQmVhdWRldCA8ZnJhbmNpc0BtYWNhZGFtaWFuLmNvbT4KKwlTbGlnaHQgMSBwaXhlbCBhZGp1c3RtZW50IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgcmFkaW8gYnV0dG9uIGJpdG1hcC4KKworCSogZGxscy9jb21tZGxnL2ZpbGVkbGc5NS5jOiBFcmljIFBvdWVjaCA8RXJpYy5Qb3VlY2hAd2FuYWRvby5mcj4KKwlGaXhlZCBvZmYgYnkgb25lIGFsbG9jYXRpb24gZXJyb3JzLgorCisJKiBjb250cm9scy9lZGl0LmM6IFBhc2NhbCBMZXNzYXJkIDxwYXNjYWxAbWFjYWRhbWlhbi5jb20+CisJVGhlIGJhY2tzcGFjZSBpcyBub3cgaGFuZGxlZCBpbiB0aGUgV01fQ0hBUiBtZXNzYWdlLgorCisJKiB3aW5kb3dzL21kaS5jLCB3aW5kb3dzL25vbmNsaWVudC5jOgorCUZyYW5jaXMgQmVhdWRldCA8ZnJhbmNpc0BtYWNhZGFtaWFuLmNvbT4KKwlNYWtlIHN1cmUgdGhhdCBhbGwgTURJIGNoaWxkcmVuIGhhdmUgdGhlIFdTX0VYX01ESUNISUxEIHN0eWxlIHNldC4KKworCSogbWVtb3J5L3N0cmluZy5jOiBNYXJjdXMgTWVpc3NuZXIgPG1hcmN1c0BqZXQuZnJhbmtlbi5kZT4KKwlGaXhlZCBwcm90b3R5cGUgb3JkZXIuCisKKwkqIGRsbHMvbnRkbGwvZXhjZXB0aW9uLmM6IEp1ZXJnZW4gTG9jayA8bm94QGplbGFsLmtuLWJyZW1lbi5kZT4KKwlGaXggRVhDX3NlZ3YgZm9yIHRoZSBUUkFQX3NpZyB1bmRlZmluZWQgY2FzZSAoZWcgRnJlZUJTRCkuCisKKwkqIGRlYnVnZ2VyL3N0YWJzLmM6IEVyaWMgUG91ZWNoIDxFcmljLlBvdWVjaEB3YW5hZG9vLmZyPgorCUZpeGVkIGNyYXNoLgorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGwzMl9tYWluLmM6IEZyYW5jaXMgQmVhdWRldCA8ZnJhbmNpc0BtYWNhZGFtaWFuLmNvbT4KKwlGaXhlZCB0aGUgc3VwcG9ydCBmb3IgdGhlIGNsb3NlIGJ1dHRvbiBpbiB0aGUgU2hlbGxBYm91dCBkaWFsb2dzLgorCisJKiBkbGxzL2NvbW1kbGcvY2RsZ19ObC5yYzogS2xhYXMgdmFuIEdlbmQgPGtsYWFzQHZhbmdlbmQuZGVtb24ubmw+CisJQWRkZWQgRHV0Y2ggcmVzb3VyY2VzIGZvciBQcmludERsZzMyLgorCisJKiBkbGxzL2NvbW1kbGcvY2RsZy5oLCBkbGxzL2NvbW1kbGcvY2RsZ19Fbi5yYywgZGxscy9jb21tZGxnL3ByaW50ZGxnLmM6CisJS2xhYXMgdmFuIEdlbmQgPGtsYWFzQHZhbmdlbmQuZGVtb24ubmw+CisJQ29tcGxldGVkIFByaW50RGxnMzIgcmVzb3VyY2Ugc3RyaW5ndGFibGUuCisKKwkqIGRsbHMvY29tY3RsMzIvdG9vbHRpcHMuYzogRnJhbmNpcyBCZWF1ZGV0IDxmcmFuY2lzQG1hY2FkYW1pYW4uY29tPgorCUFkZGVkIHNhbml0eSBjaGVja3MgaW4gdGhlIGNsZWFudXAgY29kZS4KKworCSogd2luZG93cy94MTFkcnYva2V5Ym9hcmQuYzogR3V5IEFsYmVydGVsbGkgPGdhbGJlcnRlQG5lby5scnVuLmNvbT4KKwlDb21wbGV0ZWQgR2V0S2V5TmFtZVRleHQgZm9yIG5vbi1jaGFyYWN0ZXIga2V5cy4KKworCSogZGxscy9zaGVsbDMyL2Jyc2ZvbGRlci5jOiBGcmFuY29pcyBCb2lzdmVydCA8ZnJhbmNvaXNAbWFjYWRhbWlhbi5jb20+CisJTWFrZSBkaXJlY3RvcmllcyBuYW1lIGFwcGVhciBpbiB0aGUgQnJvd3NlRm9yRm9sZGVyIGRpYWxvZy4KKworCSogbG9hZGVyL2xvYWRvcmRlci5jOiBFcmljIFBvdWVjaCA8RXJpYy5Qb3VlY2hAd2FuYWRvby5mcj4KKwlEbyBub3QgcmVtb3ZlIC5kcnYgZnJvbSBmaWxlbmFtZXMuCisKKwkqIGNvbnRyb2xzL2J1dHRvbi5jOiBGcmFuY2lzIEJlYXVkZXQgPGZyYW5jaXNAbWFjYWRhbWlhbi5jb20+CisJRml4ZWQgYSBsaXR0bGUgcG9zaXRpb25pbmcgYnVnIHdpdGggdGhlIGNoZWNrYm94LgorCisJKiB3aW5kb3dzL25vbmNsaWVudC5jLCB3aW5kb3dzL3dpbi5jLCB3aW5kb3dzL3gxMWRydi93bmQuYzoKKwlBYmV5IEdlb3JnZSA8YWJleUBtYWNhZGFtaWFuLmNvbT4KKwlGaXhlZCByZXNpemluZyBidWdzIGZvciB3aW5kb3dzIHdpdGggV1NfVEhJQ0tGUkFNRSBhbmQgV1NfRExHRlJBTUUKKwlzdHlsZXMuCisKKwkqIG11bHRpbWVkaWEvbWNpLmM6IE1pY2hhZWwgTWNDb3JtYWNrIDxtY2Nvcm1hY0BhYWxzMjcuYWxjYXRlbC5jb20uYXU+CisJQ2hhbmdlZCBzbnByaW50ZiB0byB3c25wcmludGZBIHRvIHJlbW92ZSB1bnJlc29sdmVkIGV4dGVybmFsIHdoZW4KKwljb21waWxpbmcgb24gU29sYXJpcy9TdW4uCisKKwkqIGRsbHMvY29tY3RsMzIvbGlzdHZpZXcuYzogTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJSW1wbGVtZW50ZWQgTFZNX0lOU0VSVENPTFVNTlcgYW5kIExWTV9JTlNFUlRJVEVNVyBieSB1c2luZyB0aGUgYXNjaWkKKwllcXVpdmFsZW50cy4gKFdpbldvcmQgOTcsIEZpbGUgT3BlbiBkaWFsb2cpCisKKwkqIHdpbmRvd3MvY2xhc3MuYzogTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJVXNlIGluIEdldENsYXNzSW5mb1cgdGhlIHNhbWUgaGFjayBmb3Igc3lzdGVtY2xhc3NlcyBhcyBpbgorCUdldENsYXNzSW5mb0EgKHdpbndvcmQgOTcgd2l0aCBuYXRpdmUgY29tY3RsMzIpLgorCisJKiBkbGxzL3NoZWxsMzIvcGlkbC5jOiBNYXJjdXMgTWVpc3NuZXIgPG1hcmN1c0BqZXQuZnJhbmtlbi5kZT4KKwlIYW5kbGUgU0hHREZJTF9GSU5EREFUQSBjb3JyZWN0bHkgaW4gU0hHZXREYXRhRnJvbUlETGlzdFcuCisKKwkqIGNvbnRyb2xzL2VkaXQuYzogR2VyYXJkIFBhdGVsIDxnLnBhdGVsQHdhbmFkb28uZnI+CisJSW1wbGVtZW50ZWQgd1BhcmFtIG9mIFdNX1BBSU5UIG1zZyBmb3IgZWRpdCBjb250cm9sLgorCisJKiBkbGxzL3dpbnNwb29sL2luZm8uYzogSHV3IEQgTSBEYXZpZXMgPGguZGF2aWVzMUBwaHlzaWNzLm94LmFjLnVrPgorCUZpeCBvZmYgYnkgb25lIGVycm9yIGluIFdJTlNQT09MX0dldE9wZW5lZFByaW50ZXJBLgorCisJKiBtaXNjL3JlZ2lzdHJ5LmM6IE1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCXN1YmtleV9mb3VuZCBkaWQgbm90IHNlYXJjaCBmb3IgX2FsbF8gc3ViIGtleXMuCisKK1NhdCBBdWcgMjEgMTQ6NDc6MjkgMTk5OSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9jb21tZGxnL2ZpbGVkbGc5NS5jLCBkbGxzL2NvbW1kbGcvZmlsZWRsZ2Jyb3dzZXIuYywgZGxscy9jb21tZGxnL2NkbGcuaCwgZGxscy9jb21tZGxnL2NkbGczMi5jOgorCUZyYW5jb2lzIEJvaXN2ZXJ0IDxmcmFuY29pc0BtYWNhZGFtaWFuLmNvbT4KKwlJbXBsZW1lbnRlZCBiYXNpYyBicm93c2luZyBpbiB0aGUgZmlsZSBuYW1lIGVkaXQgb2YgdGhlIGZpbGVkbGcgOTUuCisKKwkqIGNvbnRyb2xzL21lbnUuYzogU3RlcGhhbmUgTHVzc2llciA8c3RlcGhhbmVAbWFjYWRhbWlhbi5jb20+CisJQXZvaWQgY2hhbmdpbmcgdGhlIGFjdGl2YXRpb24gc3RhdGUgaW4gRW5hYmxlTWVudUl0ZW0uCisKKwkqIGluY2x1ZGUvd2lubnQuaDogRml4ZWQgI2lmZGVmIHN5bWJvbCBmb3IgUG93ZXJQQy4KKworCSogb2xlL3BhcnNlZHQuYywgb2xlL3BhcnNlZHQuaDoKKwlFcmljIFBvdWVjaCA8RXJpYy5Qb3VlY2hAd2FuYWRvby5mcj4KKwlPbmx5IGRlY2xhcmUgRGF0ZVN0eWxlIGluIGEgc2luZ2xlIGNvbXBpbGF0aW9uIHVuaXQuCisKKwkqIHdpbmRvd3Mvbm9uY2xpZW50LmM6IFBhc2NhbCBMZXNzYXJkIDxwYXNjYWxAbWFjYWRhbWlhbi5jb20+CisJQWRkZWQgdGhlIGNhc2Ugb2YgYSB1c2VyIGRlZmluZWQgaWNvbiBmb3IgdGhlIHN5c2J1dHRvbiBoaXR0ZXN0LgorCisJKiBvbGUvdHlwZWxpYi5jOiBSZWluIEtsYXplcyA8cmtsYXplc0BjYXNlbWEubmV0PgorCUZpeGVkIHR5cGVsaWIgcmVhZGluZyB0byBjb3JyZWN0bHkgdXNlIHRoZSBvZmZzZXQgb2YgdGhlIHR5cGVsaWIgdGhhdAorCWlzIGVtYmVkZGVkIGluIGZvciBleGFtcGxlIGEgZGxsIGZpbGUuCisKKwkqIGdyYXBoaWNzL3gxMWRydi9kaWIuYzogS3Jpc3RpYW4gTmllbHNlbiA8a3Jpc3RpYW4ubmllbHNlbkByaXNvZS5kaz4KKwlGaXhlZCBDcmVhdGVESUJTZWN0aW9uKCkgY2FsbGVkIHdpdGggbmVnYXRpdmUgaGVpZ2h0IHRvIHNldCB0aGUgaGVpZ2h0CisJcG9zaXRpdmUgaW4gdGhlIGNyZWF0ZWQgRElCU0VDVElPTiwgYXMgcGVyIE1TIGtub3dsZWRnZWJhc2UgUTE4NjU4Ni4KKworCSogd2luZG93cy9wYWludGluZy5jOiBTdGVwaGFuZSBMdXNzaWVyIDxzdGVwaGFuZUBtYWNhZGFtaWFuLmNvbT4KKwlUaGUgcGFpbnQgcmVjdGFuZ2xlIHJldHVybiBpbiB0aGUgUEFJTlRTVFJVQ1QgaW4gQmVnaW5QYWludCBzaG91bGQKKwluZXZlciBiZSBiaWdnZXIgdGhhbiB0aGUgY2xpZW50IGFyZWEgb2YgdGhlIHdpbmRvdy4KKworCSogY29udHJvbHMvbGlzdGJveC5jOiBSZWluIEtsYXplcyA8cmtsYXplc0BjYXNlbWEubmV0PgorCU1ha2Ugc3VyZSB0aGF0IGFuIGVtcHR5IHN0cmluZyBuZXZlciBtYXRjaGVzIGEgbGlzdGJveCBlbnRyeSBpbgorCUxJU1RCT1hfRmluZFN0cmluZygpLgorCisJKiBkbGxzL3ZlcnNpb24vaW5mby5jOgorCVV3ZSBCb25uZXMgPGJvbkBlbGVrdHJvbi5pa3AucGh5c2lrLnR1LWRhcm1zdGFkdC5kZT4KKwlBbGlnbm1lbnQgZml4LgorCisJKiBjb250cm9scy9tZW51LmM6IEVyaWMgUG91ZWNoIDxFcmljLlBvdWVjaEB3YW5hZG9vLmZyPgorCUZpeGVkIGNyYXNoIHdoZW4gYWNjZXNzaW5nIHN5c21lbnUuCisKKwkqIGRlYnVnZ2VyL3N0YWNrLmM6IEVyaWMgUG91ZWNoIDxFcmljLlBvdWVjaEB3YW5hZG9vLmZyPgorCVJlYWxseSBkbyBhIHNpbGVudCBiYWNrdHJhY2Ugd2hlbiByZXF1ZXN0ZWQuCisKKwkqIGRlYnVnZ2VyL2hhc2guYzogRXJpYyBQb3VlY2ggPEVyaWMuUG91ZWNoQHdhbmFkb28uZnI+CisJRG8gbm90IHNldCB0aGUgYWRkcmVzcyBpZiB0aGUgc3ltYm9sIGlzIHN0aWxsIHRhZ2dlZCBJTlZBTElELgorCisJKiBkZWJ1Z2dlci9zdGFicy5jOiBFcmljIFBvdWVjaCA8RXJpYy5Qb3VlY2hAd2FuYWRvby5mcj4KKwlBZGRlZCBzdXBwb3J0IGZvciBOX0JJTkNMIGFuZCBOX0VJTkNMIGluc3RydWN0aW9ucy4KKwlGaXhlZCB0eXBlIHBhcnNpbmcgKGFzIGdlbmVyYXRlZCBieSBlZ2NzKS4KKworV2VkIEF1ZyAxOCAxODo0MDo1MiAxOTk5ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiB0b29scy9idWlsZC5jOiBVbHJpY2ggV2VpZ2FuZCA8d2VpZ2FuZEBpbmZvcm1hdGlrLnVuaS1lcmxhbmdlbi5kZT4KKwlVc2UgdHlwZWRlZiB0byB3b3JrIGFyb3VuZCBlZ2NzIHByb2JsZW0uCisKKwkqIG9sZS8qLmM6IE1pY2hhZWwgVmVrc2xlciA8bXZla3NsZXJAdGVjaHVuaXgudGVjaG5pb24uYWMuaWw+CisJUmVtb3ZlZCB1bm5lY2Vzc2FyeSBpbmNsdWRlcyBmcm9tIG9sZSByZWxhdGVkIGZpbGVzLgorCisJKiBvbGUvY29tcG9iai5jLCBtdWx0aW1lZGlhL21tc3lzdGVtLmM6CisJVWxyaWNoIFdlaWdhbmQgPHdlaWdhbmRAaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CisJQWRhcHRlZCB0byBXT1cgY2hhbmdlcy4KKworCSogaW5jbHVkZS9jYWxsYmFjay5oLCBpbmNsdWRlL3dpbmJhc2UuaCwgaW5jbHVkZS93aW5lL3dpbmJhc2UxNi5oLCBpbmNsdWRlL3dvd250MzIuaCwgbG9hZGVyL21vZHVsZS5jLCBtZW1vcnkvZ2xvYmFsLmMsIG1lbW9yeS9zZWxlY3Rvci5jLCByZWxheTMyL01ha2VmaWxlLmluLCByZWxheTMyL2tlcm5lbDMyLnNwZWMsIHJlbGF5MzIvd293MzIuc3BlYywgcmVsYXkzMi93b3d0aHVuay5jLCB3aW4zMi9rZXJuZWwzMi5jLCB3aW4zMi9vcmRpbmFscy5jLCBpZjE2MzIva2VybmVsLnNwZWMsIGlmMTYzMi9yZWxheS5jLCBpZjE2MzIvdGh1bmsuYzoKKwlVbHJpY2ggV2VpZ2FuZCA8d2VpZ2FuZEBpbmZvcm1hdGlrLnVuaS1lcmxhbmdlbi5kZT4KKwlNb3ZlZCBpbXBsZW1lbnRhdGlvbiBvZiBXT1cgcm91dGluZXMgdG8gc2luZ2xlIGZpbGUuCisJQWRkZWQgYWxsIG1pc3NpbmcgV09XIHJvdXRpbmVzLCBmaXhlZCBXT1dDYWxsYmFjazE2RXguCisKKwkqIG11bHRpbWVkaWEvbW1pby5jOiBFcmljIFBvdWVjaCA8RXJpYy5Qb3VlY2hAd2FuYWRvby5mcj4KKwlGaXhlZCBpbnRlcm5hbCBidWZmZXIgZm9yIDE2IGJpdCBtbWlvIE1FTSBmaWxlcy4KKworCSogbXVsdGltZWRpYS9tY2kuYzogRXJpYyBQb3VlY2ggPEVyaWMuUG91ZWNoQHdhbmFkb28uZnI+CisJLSBzb21lIGVycm9ycyBpbiBjbGVhbmluZyB1cCB2YWx1ZXMgcmV0dXJuZWQgYnkgTUNJIGRyaXZlcnM6IHRoaXMKKwkgIHNob3VsZCBzb2x2ZSB0aGUgaXNzdWVzIHJlcG9ydGVkIHdpdGggdGhlIENEIHBsYXllci93cml0ZXIKKwktIGNyYXNoIHdoZW4gY29tbWFuZCB3YXMgcmVxdWVzdGVkIHdpdGggYXV0b21hdGljIG9wZW4gKG5vdGUsIHRoaXMKKwkgIHdpbGwgbm93IGdyYWNlZnVsbHkgcmVwb3J0IGFuIGVycm9yLCBub3QgZG8gdGhlIGNvcnJlY3QgdGhpbmcpLgorCisJKiBkbGxzL2NvbWN0bDMyL3Byb3BzaGVldC5jOiBUaHV5IE5ndXllbiA8dGh1eUBtYWNhZGFtaWFuLmNvbT4KKwlJbXBsZW1lbnRlZCB0aGUgUFNIX1VTRUlDT05JRC9QU0hfVVNFSElDT04gYW5kIHRoZSBQU1BfVVNFVElUTEUKKwlmbGFncy4KKworCSogdG9vbHMvYnVpbGQuYzogVWxyaWNoIFdlaWdhbmQgPHdlaWdhbmRAaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CisJQnVnZml4OiBFRmxhZ3Mgd2VyZSBwYXNzZWQgaW5jb3JyZWN0bHkgYnkgQ2FsbEZyb20xNlJlZ2lzdGVyLgorCisJKiBsb2FkZXIvdGFzay5jOiBVbHJpY2ggV2VpZ2FuZCA8d2VpZ2FuZEBpbmZvcm1hdGlrLnVuaS1lcmxhbmdlbi5kZT4KKwlCdWdmaXg6IHJlc3RvcmUgU1RBQ0sxNkZSQU1FIGZpZWxkcyBpbiBTd2l0Y2hTdGFja0JhY2sxNi4KKworCSogdG9vbHMvd3JjL3dyYy5oLCBkbGxzL2NvbW1kbGcvY2RsZ19Fbi5yYywgdG9vbHMvd3JjL0NIQU5HRVMsIHRvb2xzL3dyYy9wYXJzZXIueToKKwlCZXJ0aG8gU3R1bHRpZW5zIDxiZXJ0aG9AcGFudGVyLnNvY2kuYWF1LmRrPgorCVdyYyBkaWQgbm90IGNoZWNrIGFueSBJRHMgd2hpY2ggYXJlIG9ubHkgMTYgYml0LiBDb21tb24gZGlhbG9ncyBoYWQgc29tZQorCUlEcyBsYXJnZXIgYW5kIHRoYXQgY2F1c2VkIHByb2JsZW1zLiBUaGlzIGlzIG5vdyBzb2x2ZWQgKEkgaG9wZSkuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFN1biBBdWcgMTUgMTg6NTI6MzIgMTk5OSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KIAogCSogb2JqZWN0cy9jdXJzb3JpY29uLmM6IFN0ZXZlIFRpYmJldHQgPHN0ZXZldEBjb3JlbC5jb20+CmRpZmYgLS1naXQgYS9pbmNsdWRlL3ZlcnNpb24uaCBiL2luY2x1ZGUvdmVyc2lvbi5oCmluZGV4IGVlN2FhOTEuLjk4ODcwZTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdmVyc2lvbi5oCisrKyBiL2luY2x1ZGUvdmVyc2lvbi5oCkBAIC0xICsxIEBACi0jZGVmaW5lIFdJTkVfUkVMRUFTRV9JTkZPICJXaW5lIHJlbGVhc2UgOTkwODE1IgorI2RlZmluZSBXSU5FX1JFTEVBU0VfSU5GTyAiV2luZSByZWxlYXNlIDk5MDkyMyIK