MjAwMy0xMi0yOSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGdhcy9jb25maWcvdGMtYXJtLmMgKGFybV9jcHVzKTogQWRkIDkyNmVqcyBhbmQgMTAyNmVqcy4KCSogZ2FzL2RvYy9jLWFybS50ZXhpOiBEb2N1bWVudCB0aGVtLgoKMjAwMy0yMy0xMiAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYyAoYXJtX2FyY2hzKTogQWRkIGFybXY2LgoJKiBkb2MvYy1hcm0udGV4aTogRG9jdW1lbnQgLW1hcmNoPWFybXY2LgoKMjAwMy0xMi0yMCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAobWRfYXBwbHlfZml4Myk6IEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBhCgkuYnl0ZSBkaXJlY3RpdmUgZ2VuZXJhdGVzIGEgcGMtcmVsYXRpdmUgcmVsb2NhdGlvbi4KCjIwMDMtMTItMTkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgkgICAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIG1lc3NhZ2VzLmMgKGFzX3BlcnJvcik6IFNhdmUgZXJybm8gYXJvdW5kIGxpYnJhcnkgY2FsbHMuCgkqIGlucHV0LWZpbGUuYyBbQkZEX0FTU0VNQkxFUl06IFNldCB0aGUgQkZEIGVycm9yIHRvCgliZmRfZXJyb3Jfc3lzdGVtX2NhbGwgYmVmb3JlIGVhY2ggY2FsbCB0byBhc19wZXJyb3IuCgkoaW5wdXRfZmlsZV9vcGVuKTogU2ltcGxpZnkgdGhlIGVycm9yIHJlcG9ydGluZyBjb2RlIHRvIGp1c3QgdXNlCglhc19wZXJyb3IoKS4KCSogb3V0cHV0LWZpbGUuYyAob3V0cHV0X2ZpbGVfY3JlYXRlKSBbQkZEX0FTU0VNQkxFUl06IFNldCB0aGUgQkZECgllcnJvciB0byBiZmRfZXJyb3Jfc3lzdGVtX2NhbGwgYmVmb3JlIGNhbGxpbmcgYXNfcGVycm9yLgoJKG91dHB1dF9maWxlX2Nsb3NlKSBbQkZEX0FTU0VNQkxFUl06IExpa2V3aXNlLgoJKG91dHB1dF9maWxlX2FwcGVuZCkgW0JGRF9BU1NFTUJMRVJdOiBMaWtld2lzZS4KCSogbGlzdGluZy5jIChsaXN0aW5nX3ByaW50KSBbQkZEX0FTU0VNQkxFUl06IExpa2V3aXNlLgoKMjAwMy0xMi0xOSAgS2F6dWhpcm8gSW5hb2thIDxpbmFva2Eua2F6dWhpcm9AcmVuZXNhcy5jb20+CgoJQWRkIG0zMnItbGludXggYW5kIFBJQyBzdXBwb3J0LiAgQWRkIG5ldyBBQkkgdGhhdCB1c2VzIFJFTEEuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIG0zMnItbGludXggdGFyZ2V0cy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjb25maWcvdGMtbTMyci5jIChtZF9wYXJzZV9vcHRpb24pOiBBZGQgLUtQSUMgb3B0aW9uLgoJKHRjX2dlbl9yZWxvYyk6IEFkZGVkLgoJKGRlYnVnX3N5bSwgbWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgsIG1kX2NvbnZlcnRfZnJhZywKCW1kX3BjcmVsX2Zyb21fc2VjdGlvbiwgbTMycl9maXhfYWRqdXN0YWJsZSk6IENoYW5nZWQgZm9yIFBJQy4KCSogY29uZmlnL3RjLW0zMnIuaCAodGNfZ2VuX3JlbG9jLCBFWFRFUk5fRk9SQ0VfUkVMT0MpOiBVbmRlZmluZWQuCgkoVENfSEFORExFU19GWF9ET05FLCBUQ19GSVhfQURKVVNUQUJMRSwgVENfUkVMT0NfUlRTWU1fTE9DX0ZJWFVQKToKCURlZmluZWQuCgkqIGRvYy9jLW0zMnIudGV4aTogRG9jdW1lbnQgLUtQSUMgb3B0aW9uLgoJKiBORVdTOiBNZW50aW9uIHRoZSBzdXBwb3J0IG0zMnIgTGludXggYW5kIFBJQy4KCjIwMDMtMTItMTggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBpbnB1dC1maWxlLmMgKGlucHV0X2ZpbGVfb3Blbik6IFJlbW92ZSBjYWxsIHRvIHN0YXQoKS4KCUFkZCBhIGNoZWNrIGZvciBnZXRjKCkgZmFpbGluZywgYW5kIGNhdGNoIHRoZSBjYXNlIHdoZXJlIHRoZQoJZmFpbHVyZSBpcyBkdWUgdG8gYW4gYXR0ZW1wdCB0byByZWFkIGEgZGlyZWN0b3J5LgoKMjAwMy0xMi0xOCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19uZWVkX2VsZl9hZGRlbmRfZml4dXApOiBEZWxldGUuCgkobWRfYXBwbHlfZml4Myk6IFJlbW92ZSBiZmRfaW5zdGFsbF9yZWxvY2F0aW9uIHdvcmthcm91bmRzLgoJKHRjX2dlbl9yZWxvYyk6IExpa2V3aXNlLiBGYWN0b3IgaGFuZGxpbmcgb2YgcGMtcmVsYXRpdmUgcmVsb2NhdGlvbnMKCWFuZCB0cmVhdCBmeF9hZGRudW1iZXIgYXMgcmVsYXRpdmUgdG8gdGhlIHJlbG9jYXRpb24gYWRkcmVzcy4KCjIwMDMtMTItMTggIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKHNfY2hhbmdlX3NlY3Rpb24pOiBXaGVuIHBhcnNpbmcgdGhlIE1JUFMtc3BlY2lmaWMKCS5zZWN0aW9uIHN5bnRheCwgbWFwIFNIVF9NSVBTX0RXQVJGIHRvIFNIVF9QUk9HQklUUy4KCjIwMDMtMTItMTcgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvdGMtYXJtLmMgKGFybV9hcmNocyk6IENoYW5nZSAiYXJtdjYiIHRvICJhcm12NmoiLgoJKiBkb2MvYy1hcm0udGV4aSAoQVJNIE9wdGlvbnMpOiBMaWtld2lzZS4KCjIwMDMtMTItMTcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbTMyci5jIChlcnJvcl9leHBsaWNpdF9wYXJhbGxlbF9jb25mbGljdHMpOiBSZW5hbWUKCXRvICdpZ25vcmVfcGFyYWxsZWxfY29uZmxpY3RzJy4KCShtZF9sb25nb3B0cyk6IENoYW5nZSBvcHRpb24gbmFtZXMgYXMgd2VsbC4KCShtZF9wYXJzZV9vcHRpb24pOiBTZXBhcmF0ZSB0aGUgd2Fybl9leHBsaWNpdCBhbmQgaWdub3JlCglwYXJhbGxlbCBjb25mbGljdHMgb3B0aW9ucy4KCShtZF9zaG93X3VzYWdlKTogVXBkYXRlIGRlc2NyaXB0aW9ucyBvZiB0aGVzZSBvcHRpb25zLgoJKGZpcnN0X3dyaXRlc190b19zZWNvbmRzX29wZXJhbmRzKTogRG8gbm90IHJ1biB0aGlzIGNoZWNrIGlmCglpZ25vcmluZyBwYXJhbGxlbCBjb25mbGljdHMuCgkoYXNzZW1ibGVfdHdvX2luc25zKTogUmVtb3ZlIGNvZGUgdGhhdCBjaGVja2VkCgllcnJvcl9leHBsaWNpdF9wYXJhbGxlbF9jb25mbGljdHMuCgkqIGRvYy9jLW0zMnIudGV4aTogVXBkYXRlIGRlc2NyaXB0aW9ucyBvZiB0aGUgb3B0aW9ucy4KCjIwMDMtMTItMTYgIERtaXRyeSBTZW15b25vdiAgPERtaXRyeS5TZW15b25vdkBva3RldC5ydT4KCgkqIHRjLWFybS5jIChkb19hZHIpOiBEbyBub3QgYWRqdXN0IHBjIGJ5IC04IGlmIFRFX1dJTkNFIGlzCglkZWZpbmVkLgoJKGRvX2FkcmwpOiBMaWtld2lzZS4KCjIwMDMtMTItMTUgIENocmlzdGlhbiBHcm9lc3NsZXIgIDxjaHJpc0Bncm9lc3NsZXIub3JnPgoKCSogY29uZmlnL3RjLXo4ay5jIChzdHJ1Y3QgejhrX2V4cCk6IFJlbW92ZSwgbm90IHVzZWQgYW55d2hlcmUuCgkoY3RybF90YWJsZSk6IEFkZCAiZmxhZ3MiIGtleXdvcmQgYW5kIHNvbWUgY29tbWVudHMuCgkoZmxhZ190YWJsZSk6IENvbnZlcnQgdG8gdXBwZXJjYXNlLgoJKGdldF9mbGFnc19vcGVyYW5kKTogQmUgY2FzZSBpbnNlbnNpdGl2ZS4KCShnZXRfaW50ZXJydXB0X29wZXJhbmQpOiBCZSBjYXNlIGluc2Vuc2l0aXZlLiAgU3VwcG9ydCBub3RhdGlvbgoJd2hlcmUgdGhlIGlucGVycnVwdCBhcmd1bWVudHMgYXJlIHNlcGFyYXRlZCBieSBjb21tYXMuCgkoZ2V0X29wZXJhbmRzKTogQ2hlY2sgd2hldGhlciBnZXRfZmxhZ3Nfb3BlcmFuZCBjb25zdW1lZCBhbGwKCWFyZ3VtZW50cy4gIFJldHVybiBmYWlsdXJlIGlmIGdldF9jdHJsX29wZXJhbmQgZGlkbid0IHJlY29nbml6ZSBhCgl2YWxpZCBjb250cm9sIHJlZ2lzdGVyLgoJKGdldF9zcGVjaWZpYyk6IEFkZCBjYXNlIENMQVNTX0NUUkw6IFRlc3QgZm9yIHZhbGlkIGNvbnRyb2wKCXJlZ2lzdGVyIGZvciBsZGN0bGIgb3Bjb2RlLgoJKGJ1aWxkX2J5dGVzKTogQ2hlY2sgZm9yIHZhbGlkIGNvbnRyb2wgcmVnaXN0ZXJzLgoKMjAwMy0xMi0xNSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9vYmotYW91dC5jIChvYmpfY3Jhd2xfc3ltYm9sX2NoYWluKTogU2tpcCBkZWZpbmVkCglzeW1ib2xzIHdoaWNoIHJlc29sdmUgdG8gc3ltYm9saWMgdmFsdWVzLgoKMjAwMy0xMi0xMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy9vYmotZWxmLmM6IENvbnZlcnQgdG8gQzkwLCByZW1vdmUgdW5uZWVkZWQgcHJvdG90eXBlcyBhbmQKCWNhc3RzLiAgRm9ybWF0dGluZy4KCSogY29uZmlnL29iai1lbGYuaDogUmVtb3ZlIFBBUkFNUy4KCgkqIHJlYWQuYyAoc19sY29tbV9pbnRlcm5hbCk6IE1ha2UgZ2xvYmFsLgoJKiByZWFkLmggKHNfbGNvbW1faW50ZXJuYWwpOiBEZWNsYXJlLgoJKiBjb25maWcvb2JqLWVsZi5jIChlbGZfcHNldWRvX3RhYmxlKTogSGFuZGxlIGxjb21tLgoJKG9ial9lbGZfbGNvbW0pOiBOZXcgZnVuY3Rpb24uCgoyMDAzLTEyLTEzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogcmVhZC5jOiBSZW1vdmUgdW5uZWVkZWQgcHJvdG90eXBlcy4KCShzX2NvbW0pOiBTcGxpdCBvdXQgY29kZSB0by4uCgkoc19jb21tX2ludGVybmFsKTogLi5oZXJlLiAgVGlkeSBlcnJvciByZXR1cm5zLiAgUmVhcnJhbmdlIHNvIHRoYXQKCSJuYW1lIiBmcm9tIGlucHV0IGxpbmUgbWF5IGJlIHVzZWQgaW4gbW9yZSBwbGFjZXMuICBNZXJnZSBjb2RlCgl0ZXN0aW5nIGZvciB2YWxpZCBzaXplIGZyb20gZWxmX2NvbW1vbi4gIE1lcmdlIGNvZGUgZnJvbQoJc19sY29tbV9pbnRlcm5hbC4gIENhbGwgY29tbV9wYXJzZV9leHRyYS4KCShic3NfYWxsb2MpOiBOZXcgZnVuY3Rpb24sIHNwbGl0IG91dCBvZiBzX2xjb21tX2ludGVybmFsIGFuZAoJZWxmX2NvbW1vbi4KCShwYXJzZV9hbGlnbik6IExpa2V3aXNlLgoJKHNfbGNvbW1faW50ZXJuYWwpOiBSZXdyaXRlLgoJKHNfbGNvbW0sIHNfbGNvbW1fYnl0ZXMpOiBVc2Ugc19jb21tX2ludGVybmFsLgoJKiByZWFkLmggKGJzc19hbGxvYywgcGFyc2VfYWxpZ24sIHNfY29tbV9pbnRlcm5hbCk6IERlY2xhcmUuCgkqIGNvbmZpZy9vYmotZWxmLmMgKGVsZl9jb21tb24pOiBTcGxpdCBvdXQgY29kZSB0by4uCgkoZWxmX2NvbW1vbl9wYXJzZSk6IC4uaGVyZS4gIFJlbW92ZSBjb2RlIGNvbW1vbiB0byBzX2NvbW1faW50ZXJuYWwsCglwYXJzZV9hbGlnbiBhbmQgYnNzX2FsbG9jLiAgUmVhcnJhbmdlIGFuZCBUaWR5LgoJKiBjb25maWcvdGMtYWxwaGEuaCAoVENfSU1QTElDSVRfTENPTU1fQUxJR05NRU5UKTogRGVmaW5lLgoKMjAwMy0xMi0xMCAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRjLXBwYy5jIChtZF9hc3NlbWJsZSk6IFJld3JpdGUgY29tbWVudCBhYm91dCBvcHRpb25hbCBvcGVyYW5kcwoJdG8gaW5kaWNhdGUgdGhhdCAnYWxsIG9yIG5vbmUnIGlzIGFsc28gaGFuZGxlZC4gIFBsdXJhbGl6ZSBhCgl3b3JkIGluIGFub3RoZXIgY29tbWVudC4KCjIwMDMtMTItMTAgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvdGMtYXJtLmMgKEZQVV9NQVZFUklDSyk6IERlZmluZS4KCShGUFVfQVJDSF9NQVZFUklDSyk6IERlZmluZS4KCShhcm1fZmxvYXRfYWJpKTogRGVmaW5lLgoJKG1mbG9hdF9hYmlfb3B0KTogTmV3IHZhcmlhYmxlLgoJKG1kX2JlZ2luKTogVXNlIHRoZW0uCgkoYXJtX29wdHMpOiBBZGQgbXNvZnQtZmxvYXQgYW5kIG1oYXJkLWZsb2F0LgoJKGFybV9jcHVzKTogVXNlIEZQVV9BUkNIX01BVkVSSUNLLgoJKGFybV9mcHVzKTogQWRkIG1hdmVyaWNrLgoJKGFybV9mbG9hdF9hYmlzKTogQWRkLgoJKGFybV9wYXJzZV9mbG9hdF9hYmkpOiBOZXcgZnVuY3Rpb24uCgkoYXJtX2xvbmdfb3B0aW9ucyk6IEFkZCBtZmxvYXQtYWJpLgoJKiBkb2MvYXMudGV4aW5mbzogRG9jdW1lbnQgLW1mbG9hdC1hYmk9LgoJKiBkb2MvYy1hcm0udGV4dDogRGl0dG8uIE1lbnV0aW9uIC1mcHU9bWF2ZXJpY2suCgoyMDAzLTEyLTA5ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnL3RjLWFybS5jIChkb191bWFhbCk6IEZpeCB0eXBvLgoKMjAwMy0xMi0wNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGR3YXJmMmRiZy5jOiBDb252ZXJ0IHRvIElTTy1DLgoJKiB3cml0ZS5jOiBMaWtld2lzZS4KCSogd3JpdGUuaDogTGlrZXdpc2UuCgoyMDAzLTEyLTA2ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNybyk6IFN3aXRjaCBtaXNvcmRlcmVkIGNhbGwgdG8gZnJhZ19ncm93KCkKCWFuZCBzZXR0aW5nIG9mIHRjX2ZyX29mZnNldC4KCjIwMDMtMTItMDUgIFJpY2FyZG8gQW5ndWlhbm8gPGFuZ3VpYW5vQGNvZGVzb3VyY2VyeS5jb20+CgkgICAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCSAgICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCglBZGQgVjYgc3VwcG9ydC4KCSogY29uZmlnL3RjLWFybS5jIChBUk1fRVhUX1Y2KTogTmV3IG1hY3JvLgoJKEFSTV9BUkNIX1Y2KTogTGlrZXdpc2UuCgkoU0hJRlRfSU1NRURJQVRFKTogTGlrZXdpc2UuCgkoU0hJRlRfTFNMX09SX0FTUl9JTU1FRElBVEUpOiBMaWtld2lzZS4KCShTSElGVF9BU1JfSU1NRURJQVRFKTogTGlrZXdpc2UuCgkoU0hJRlRfTFNMX0lNTU1FRElBVEUpOiBMaWtld2lzZS4KCShkb19jcHMpOiBOZXcgZnVuY3Rpb24uCgkoZG9fY3BzaSk6IExpa2V3aXNlLgoJKGRvX2xkcmV4KTogTGlrZXdpc2UuCgkoZG9fcGtoYnQpOiBMaWtld2lzZS4KCShkb19wa2h0Yik6IExpa2V3aXNlLgoJKGRvX3FhZGQxNik6IExpa2V3aXNlLgoJKGRvX3Jldik6IExpa2V3aXNlLgoJKGRvX3JmZSk6IExpa2V3aXNlLgoJKGRvX3N4dGFoKTogTGlrZXdpc2UuCgkoZG9fc3h0aCk6IExpa2V3aXNlLgoJKGRvX3NldGVuZCk6IExpa2V3aXNlLgoJKGRvX3NtbGFkKTogTGlrZXdpc2UuCgkoZG9fc21sYWxkKTogTGlrZXdpc2UuCgkoZG9fc21tdWwpOiBMaWtld2lzZS4KCShkb19zc2F0KTogTGlrZXdpc2UuCgkoZG9fdXNhdCk6IExpa2V3aXNlLgoJKGRvX3Nycyk6IExpa2V3aXNlLgoJKGRvX3NzYXQxNik6IExpa2V3aXNlLgoJKGRvX3VzYXQxNik6IExpa2V3aXNlLgoJKGRvX3N0cmV4KTogTGlrZXdpc2UuCgkoZG9fdW1hYWwpOiBMaWtld2lzZS4KCShkb19jcHNfbW9kZSk6IExpa2V3aXNlLgoJKGRvX2Nwc19mbGFncyk6IExpa2V3aXNlLgoJKGRvX2VuZGlhbl9zcGVjaWZpZXIpOiBMaWtld2lzZS4KCShkb19wa2hfY29yZSk6IExpa2V3aXNlLgoJKGRvX3NhdCk6IExpa2V3aXNlLgoJKGRvX3NhdDE2KTogTGlrZXdpc2UuCgkoaW5zbnMpOiBBZGQgVjYgaW5zdHJ1Y3Rpb25zLgoJKGRvX3RfY3BzKTogTmV3IGZ1bmN0aW9uLgoJKGRvX3RfY3B5KTogTGlrZXdpc2UuCgkoZG9fdF9zZXRlbmQpOiBMaWtld2lzZS4KCShUSFVNQl9DUFkpOiBOZXcgbWFjcm8uCgkodGluc25zKTogQWRkIFY2IGluc3RydWN0aW9ucy4KCShkZWNvZGVfc2hpZnQpOiBIYW5kbGUgVjYgcmVzdHJpY3RlZC1zaGlmdCBvcHRpb25zLgoJKHRodW1iX21vdl9jb21wYXJlKTogU3VwcG9ydCBDUFkuCgkoYXJtX2NvcmVzKTogQWRkIGFybTExMzZqcyBhbmQgYXJtMTEzNmpmcy4KCShhcm1fYXJjaHMpOiBBZGQgYXJtdjYuCgkoYXJtX2ZwdXMpOiBBZGQgYXJtMTEzNmpmcy4KCSogZG9jL2MtYXJtLnRleGkgKEFSTSBPcHRpb25zKTogTWVudGlvbiBhcm0xMTM2anMsIGFybTExMzZqZnMsIGFuZAoJYXJtdjYgb3B0aW9ucy4KCjIwMDMtMTItMDYgIENocmlzdGlhbiBHcm9lc3NsZXIgIDxjaHJpc0Bncm9lc3NsZXIub3JnPgoKCSogY29uZmlnL3RjLXo4ay5jIChwYXJzZV9yZWcpOiBCZSBjYXNlIGluc2Vuc2l0aXZlIHdoZW4gY2hlY2tpbmcKCXJlZ2lzdGVyIG5hbWVzLgoJKGdldF9jdHJsX29wZXJhbmQpOiBCZSBjYXNlIGluc2Vuc2l0aXZlIHdoZW4gY2hlY2tpbmcgY3RybCBuYW1lcy4KCjIwMDMtMTItMDUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtc2guYyAobWRfc2hvd191c2FnZSk6IEZpeCBjb21waWxhdGlvbiBlcnJvcnMKCWludHJvZHVjZWQgYnkgdGhlIHByZXZpb3VzIGRlbHRhLgoKMjAwMy0xMi0wMyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtc2guYzogQWRkIHN1cHBvcnQgZm9yIHNoNGEgYW5kIG5vLWZwdSB2YXJpYW50cy4KCjIwMDMtMTItMDUgIE1pY2hhZWwgU255ZGVyICA8bXNueWRlckByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXNoLmMgKG1kX3Nob3dfdXNhZ2UpOiBNZW50aW9uIG5ldyAtaXNhIG9wdGlvbnMuCgkqIGRvYy9jLXNoLnRleGk6IERvY3VtZW50IG5ldyAtaXNhIG9wdGlvbnMuCgkqIGRvYy9jLXNoNjQudGV4aTogRGl0dG8uCgkqIE5FV1M6IE1lbnRpb24gbmV3IHN1cHBvcnQgZm9yIHNoNGEuCgoyMDAzLTEyLTAzICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtYWxwaGEuYyAoc19hbHBoYV9lbmQpOiBEb24ndCBjcmFzaCBpZiB0aGVyZSBpcyBubwoJbWF0Y2hpbmcgLmVudC4KCjIwMDMtMTItMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiB0Yy5oIChtZF9wY3JlbF9mcm9tKTogRG9uJ3QgZGVjbGFyZSBpZiBkZWZpbmVkIGFzIGEgbWFjcm8uCgoyMDAzLTEyLTAzICBLYXp1aGlybyBJbmFva2EgPGluYW9rYS5rYXp1aGlyb0ByZW5lc2FzLmNvbT4KCgkqIGNvbmZpZy90Yy1tMzJyLmggOiBBZGQgc3VwcG9ydCBmb3IgbmV3IG1hY2hpbmUgbTMycjIuCgkqIGNvbmZpZy90Yy1tMzJyLmMgOiBMaWtld2lzZS4KCUFkZCBuZXcgY29tbWFuZCBsaW5lIHN3aXRjaGVzIGFuZCBkaXJlY3RpdmVzIHRvIGFsbG93IGVuZGlhbi1uZXNzCgl0byBiZSBzZWxlY3RlZCBhbmQgc29tZSB3YXJuaW5ncyB0byBiZSB0dXJuZWQgaW50byBlcnJvcnMuCgkobGluZV9zZXBhcmF0b3JfY2hhcnMpIDogVXNlICchJy4KCSogZG9jL2MtbTMyci50ZXhpOiBEb2N1bWVudCBuZXcgc3dpdGNoZXMgYW5kIGRpcmVjdGl2ZXMuCgkqIE5FV1M6IE1lbnRpb24gbmV3IHN1cHBvcnQuCgoyMDAzLTEyLTAzICBEYXZlIEFpcmxpZSAgPGFpcmxpZWRAbGludXguaWU+CgoJKiBjb25maWd1cmUuaW46IExpa2V3aXNlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy90Yy12YXguYyAobWRfc2hvcnRvcHRzKTogQWRkICdRJy4KCShtZF9wYXJzZV9vcHRpb24pOiBJZ25vcmUgJ1EnIGZvciBub3cuCgoyMDAzLTEyLTAyICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogbWVzc2FnZXMuYzogQ29udmVydCB0byBJU08tQy4KCSogb2JqLmg6IExpa2V3aXNlLgoJKiBvdXRwdXQtZmlsZS5jOiBMaWtld2lzZS4KCSogb3V0cHV0LWZpbGUuaDogTGlrZXdpc2UuCgkqIHNiLmM6IExpa2V3aXNlLgoJKiBzYi5oOiBMaWtld2lzZS4KCSogc3RhYnMuYzogTGlrZXdpc2UuCgkqIHN1YnNlZ3MuYzogTGlrZXdpc2UuCgkqIHN1YnNlZ3MuaDogTGlrZXdpc2UuCgkqIHRjLmg6IExpa2V3aXNlLgoKMjAwMy0xMi0wMiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNvbmZpZy9vYmotZWxmLmM6IFJlbW92ZSBBUkdTVVNFRC4KCjIwMDMtMTItMDIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0xMS0zMCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHN5bWJvbHMuYzogQ29udmVydCB0byBJU08tQy4KCSogc3ltYm9scy5oOiBMaWtld2lzZS4KCjIwMDMtMTEtMjggIENocmlzdGlhbiBHcm9lc3NsZXIgIDxjaHJpc0Bncm9lc3NsZXIub3JnPgoKCSogY29uZmlnL3RjLXo4ay5jOiBDb252ZXJ0IHRvIElTTy1DLgoJKiBjb25maWcvdGMtejhrLmg6IExpa2V3aXNlLgoKMjAwMy0xMS0yNyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHJlYWQuYzogQ29udmVydCB0byBJU08tQy4KCSogcmVhZC5oOiBMaWtld2lzZS4KCjIwMDMtMTEtMjcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtc2guYyAoc2hfZWxmX2NvbnMpOiBJZiBtZF9jb25zX2FsaWduIGlzIGRlZmluZWQKCWNhbGwgaXQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGNvbnN0YW50cyB0aGF0IGFyZSBnb2luZyB0byBiZQoJZW1pdHRlZCBhcmUgY29ycmVjdGx5IGFsaWduZWQuCgoyMDAzLTExLTI3ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1mcnYuYyAobWRfcGNyZWxfZnJvbV9zZWN0aW9uKTogRG9uJ3QgYWRqdXN0IHdoZW4KCXJlZmVyZW5jaW5nIHN5bWJvbCBpbiBhIGRpZmZlcmVudCBzZWN0aW9uLgoKMjAwMy0xMS0yNiAgQ2hyaXN0aWFuIEdyb2Vzc2xlciAgPGNocmlzQGdyb2Vzc2xlci5vcmc+CgoJKiBjb25maWcvdGMtejhrLmMgKHNfc2VnbSk6IEZpeCBpbmRlbnRhdGlvbi4KCShtZF9hcHBseV9maXgzKTogTGlrZXdpc2UuCgkoY2NfbmFtZXMpOiBBZGQgYWxpYXMgbmFtZXMgZm9yIHRoZSBuYW1lcyBnZW5lcmF0ZWQgYnkgdGhlCglkaXNhc3NlbWJsZXIuCgkoZ2V0X2NjX29wZXJhbmQpOiBCZSBjYXNlIGluc2Vuc2l0aXZlLgoJKGdldF9vcGVyYW5kcyk6IEltcHJvdmUgZXJyb3IgaGFuZGxpbmcgZm9yIGNjIG9wZXJhbmRzLgoJKGNoZWNrX29wZXJhbmQpOiBOb3QgdXNlZCwgcmVtb3ZlLgoJKG1kX2Fzc2VtYmxlKTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBwcmV2X29wY29kZS4gIFNraXAKCXdoaXRlc3BhY2UgdW50aWwgZW5kLW9mLWxpbmUgb25seS4gIFJlc3RvcmUgKm9wX2VuZCBhZnRlciBjYWxsIHRvCgloYXNoX2ZpbmQuCgoyMDAzLTExLTI2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWg4MzAwLmMgKGdldF9vcGVyYW5kKTogQWxsb3cgZXI0LWVyNyBmb3IgbGRtL3N0bQoJaW5zdHJ1Y3Rpb25zIG9uIHRoZSBIOFNYLgoKMjAwMy0xMS0yNSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNvbmZpZy90Yy1oODMwMC5jIChoOF9leHApOiBSZW1vdmUuCgoyMDAzLTExLTI1ICBBc2dhcmkgSmluaWEgIDxhc2dhcmlqQGtwaXRjdW1taW5zLmNvbT4KCgkqIGNvbmZpZy90Yy1oODMwMC5jIChtZF9hc3NlbWJsZSk6IENoZWNrIG9wZXJhbmRzIHZhbGlkaXR5IGZvcgoJbGRtL3N0bS4KCShnZXRfb3BlcmFuZCk6IENoZWNrIHJlZ2lzdGVyIHBhaXIncyB2YWxpZGl0eSBhcyBwZXIgdGVjaG5pY2FsCglub3RlIFROLUg4Ki0xOTNBL0UgZnJvbSBSZW5lc2FzIGZvciBIOHMgYW5kIGZvciBIOFN4IG1hbnVhbC4KCjIwMDMtMTEtMjQgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBsaXN0aW5nLmM6IENvbnZlcnQgdG8gSVNPLUMuCgkqIGxpc3RpbmcuaDogTGlrZXdpc2UuCgkqIG1hY3JvLmM6IExpa2V3aXNlLgoJKiBtYWNyby5oOiBMaWtld2lzZS4KCjIwMDMtMTEtMjQgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogYXBwLmMgKGRvX3NjcnViX2NoYXJzKTogQWRkIFBVVCAoY2gpIGFuZCBjaCA9IEdFVCAoKQoJd2hlbiB0cmFuc2l0aW9uaW5nIGZyb20gc3RhdGVzIDE0IG9yIDE1IHRvIDAgb3IgMS4KCjIwMDMtMTEtMjMgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBoYXNoLmM6IENvbnZlcnQgdG8gSVNPLUMuCgkqIGhhc2guaDogTGlrZXdpc2UuCgkqIGlucHV0LWZpbGUuYzogTGlrZXdpc2UuCgkqIGlucHV0LWZpbGUuaDogTGlrZXdpc2UuCgkqIGlucHV0LXNjcnViLmM6IExpa2V3aXNlLgoJKiBpdGJsLW9wcy5jOiBMaWtld2lzZS4KCSogaXRibC1vcHMuaDogTGlrZXdpc2UuCgoyMDAzLTExLTIzICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY29uZmlnL3RjLWg4MzAwLmMgKEhtb2RlKTogTWFrZSBpdCBnbG9iYWwuCgkoU21vZGUpOiBMaWtld2lzZS4KCShObW9kZSk6IExpa2V3aXNlLgoJKFNYbW9kZSk6IExpa2V3aXNlLgoKMjAwMy0xMS0yMiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGVob3B0LmM6IENvbnZlcnQgdG8gSVNPLUMuCgkqIGVtdWwuaDogTGlrZXdpc2UuCgkqIGV4cHIuYzogTGlrZXdpc2UuCgkqIGV4cHIuaDogTGlrZXdpc2UuCgkqIGZsb251bS1jb3B5LmM6IExpa2V3aXNlLgoJKiBmbG9udW0tbXVsdC5jOiBMaWtld2lzZS4KCSogZmxvbnVtLmg6IExpa2V3aXNlLgoJKiBmcmFncy5jOiBMaWtld2lzZS4KCSogZnJhZ3MuaDogTGlrZXdpc2UuCgoyMDAzLTExLTIyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZG9jL2MtcHBjLnRleGkgKFBvd2VyUEMtUHNldWRvKTogQWRkIHNlY3Rpb24uCgoJKiBhcHAuYyAoZG9fc2NydWJfY2hhcnMpOiBSZXZlcnQgMjAwMy0wNC0yMyBhbmQgMjAwMy0wNC0yMi4KCjIwMDMtMTEtMjEgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBlY29mZi5jOiBDb252ZXJ0IHRvIElTTy1DLgoJKiBlY29mZi5oOiBMaWtld2lzZS4KCjIwMDMtMTEtMjIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtcHBjLmMgKHBhcnNlX2NwdSk6IE5ldyBmdW5jdGlvbiwgYnJva2VuIG91dCBmcm9tLi4KCShtZF9wYXJzZV9vcHRpb24pOiAuLmhlcmUuCgkocHBjX3NldHVwX29wY29kZXMpOiBOZXcgZnVuY3Rpb24sIGJyb2tlbiBvdXQgZnJvbS4uCgkobWRfYmVnaW4pOiAuLmhlcmUuCgkocHBjX21hY2hpbmUpOiBJbXBsZW1lbnQgLm1hY2hpbmUgcHNldWRvIG9wLgoKMjAwMy0xMS0yMCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGRlcGVuZC5jOiBDb252ZXJ0IHRvIElTTy1DLgoJKiBkd2FyZjJkYmcuYzogTGlrZXdpc2UuCgkqIGR3YXJmMmRiZy5oOiBMaWtld2lzZS4KCjIwMDMtMTEtMjAgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBhcHAuYzogQ29udmVydCB0byBJU08tQy4KCSogYXMuaDogTGlrZXdpc2UuCgkqIGF0b2YtZ2VuZXJpYy5jOiBMaWtld2lzZS4KCSogYmlnbnVtLWNvcHkuYzogTGlrZXdpc2UuCgkqIGJpZ251bS5oOiBMaWtld2lzZS4KCSogY2dlbi5jOiBMaWtld2lzZS4KCSogY2dlbi5oOiBMaWtld2lzZS4KCSogY29uZC5jOiBMaWtld2lzZS4KCjIwMDMtMTEtMjAgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXNoNjQuYyAoc2htZWRpYV9mcm9iX3NlY3Rpb24pOiBPbmx5IGZyb2IgZWxmMzIKCXNlY3Rpb25zLgoKMjAwMy0xMS0xOSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNvbmZpZy90Yy1oODMwMC5jOiBNYWtlIHNvbWUgZnVuY3Rpb25zIGFuZCBnbG9iYWwKCXZhcmlhYmxlcyBzdGF0aWMgYXBwcm9wcmlhdGVseS4KCjIwMDMtMTEtMTkgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjb25maWcvb2JqLWllZWUuYzogUmVtb3ZlIGR1cGxpY2F0ZSBwcm90b3R5cGVzLgoJKiBjb25maWcvdGMtaDgzMDAuYzogTGlrZXdpc2UuCgoyMDAzLTExLTE5ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY29uZmlnL3RjLWg4MzAwLmM6IENvbnZlcnQgdG8gSVNPLUMuCgkqIGNvbmZpZy90Yy1oODMwMC5oOiBMaWtld2lzZS4KCjIwMDMtMTEtMTkgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjb25maWcvdGMtbWNvcmUuaDogUmVtb3ZlIHByb3RvdHlwZXMgYWxyZWFkeSBpbiB0Yy5oLgoJKiBjb25maWcvdGMtdGljNHguYzogTGlrZXdpc2UuCgoyMDAzLTExLTE5ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY29uZmlnL3RjLWFyYy5jOiBSZW1vdmUgYSBsb2NhbCBwcm90b3R5cGUgb2YgYXRvZl9pZWVlLgoJKiBjb25maWcvdGMtaXAyay5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWlxMjAwMC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXRpYzMwLmM6IFJlbW92ZSBhIGNvbW1lbnQuCgoyMDAzLTExLTE5ICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogY29uZmlnL3RjLXh0ZW5zYS5jICh4Z19lbWl0X2luc24pOiBJbmNsdWRlICJkd2FyZjJkYmcuaCIgYW5kIGFkZAoJY2FsbCB0byBkd2FyZjJfZW1pdF9pbnNuLgoKMjAwMy0xMS0xOCAgTWFjaWVqIFcuIFJvenlja2kgIDxtYWNyb0BkczIucGcuZ2RhLnBsPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWFjcm8pOiBIYW5kbGUgbmV3IG1hY3JvczogImxjYSIgYW5kICJkbGNhIgoJZm9yIGxvYWRpbmcgYWRkcmVzc2VzIHVzaW5nIENBTEwgcmVsb2NhdGlvbnMuCglEb24ndCBlbWl0IENBTEwgcmVsb2NhdGlvbnMgd2hlbiBhIGJhc2UgcmVnaXN0ZXIgaXMgdXNlZC4KCjIwMDMtMTEtMTUgIE1hY2llaiBXLiBSb3p5Y2tpICA8bWFjcm9AZHMyLnBnLmdkYS5wbD4KCgkqIGNvbmZpZy90Yy1taXBzLmM6IEZvcm1hdHRpbmcgZml4ZXMuCgoyMDAzLTExLTE0ICBCZW4gRWxsaXN0b24gIDxiamVAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWcvdGMtYXJtLmMgKGFybV9lbGZfY2hhbmdlX3NlY3Rpb24pOiBOb3Qgc3RhdGljLgoKMjAwMy0xMS0xMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHRjLWFybS5jIChtYXBwaW5nX3N0YXRlKTogTmV3IGZ1bmN0aW9uLiAgRW1pdCBhIG1hcHBpbmcKCXN5bWJvbCBpZiBuZWNlc3NhcnkuCgkoYXJtX2VsZl9jaGFuZ2Vfc2VjdGlvbik6IE5ldyBmdW5jdGlvbi4gIEludGVyY2VwdCBzZWN0aW9uCgljaGFuZ2VzIGFuZCBnZW5lcmF0ZSBtYXBwaW5nIHN5bWJvbHMuCgkoc19ic3MpOiBMaWtld2lzZS4KCShzX2FybV9lbGZfY29ucyk6IExpa2V3aXNlLgoJKG9wY29kZV9zZWxlY3QpOiBDaG9vc2UgdGhlIGNvcnJlY3QgbWFwcGluZyBzdGF0ZS4KCShtZF9hc3NlbWJsZSk6IExpa2V3aXNlLgoJKiB0Yy1hcm0uaCAobWRfZWxmX3NlY3Rpb25fY2hhbmdlX2hvb2spOiBEZWZpbmUuCgkqIGRvYy9jLWFybS50ZXhpIChBUk0gTWFwcGluZyBTeW1ib2xzKTogTmV3IG5vZGUuCgkqIE5FV1M6IE1lbnRpb24gbmV3IGZlYXR1cmUuCgoyMDAzLTExLTEyICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChpbnN0YWxsLCBpbnN0YWxsLWluZm8sIFJFQ1VSU0lWRV9UQVJHRVRTKTogRGVmaW5lLgoJKiBkb2MvTWFrZWZpbGUuYW0gKGluc3RhbGwtaW5mbyk6IERlZmluZS4KCgkqIGFjbG9jYWwubTQ6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAzLTExLTExICBEbWl0cnkgU2VteW9ub3YgPERtaXRyeS5TZW15b25vdkBva3RldC5ydT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHN1cHBvcnQgZm9yIGFybS13aW5jZS1wZSB0YXJnZXQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDMtMTEtMTEgIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKHRjX2kzODZfZml4X2FkanVzdGFibGUpOgoKMjAwMy0xMS0xMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1pYTY0LmMgKGlhNjRfaGFuZGxlX2FsaWduKTogUmVtb3ZlIGJvZ3VzIGJlX25vcC4KCjIwMDMtMTEtMTAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBSRUFETUU6IFVwZGF0ZSBidWcgcmVwb3J0IGFkZHJlc3MuICBNb3ZlIGJ1ZyByZXBvcnRpbmcgaW5mbyB0bwoJYmludXRpbHMvUkVBRE1FLgoKMjAwMy0xMS0wNyAgQ2hyaXN0aWFuIEdyb2Vzc2xlciAgPGNocmlzQGdyb2Vzc2xlci5vcmc+CgoJKiBkb2MvYy16OGsudGV4aTogRG9jdW1lbnQgY29tbWFuZC1saW5lIG9wdGlvbnMuICBGaXggYnl0ZQoJcmVnaXN0ZXIgbmFtZXMuICBEb2N1bWVudCAnLno4MDAxJyBhbmQgJy56ODAwMicgZGlyZWN0aXZlcy4KCUV4dGVuZCBhZGRyZXNzaW5nIG1vZGVzIGRvY3VtZW50YXRpb24uCgoyMDAzLTExLTA3ICBKb25hdGhhbiBSLiBHcmFudCAgPGpnLWJpbnV0aWxzQGpndWsub3JnPgoKCSogaW5wdXQtZmlsZS5jIChpbnB1dF9maWxlX29wZW4pOiBVc2UgIk5vIHN1Y2ggZmlsZSIgZXJyb3IKCW1lc3NhZ2UuCgoyMDAzLTExLTA2ICBQZXRlIEdvbnphbGV6ICA8cGdvbnphbGV6QGJsdWVsLmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0udGV4aSAoc3RydWN0IHJlZ19lbnRyeSk6IEFkZCBuZXcgZmllbGQgJ2J1aWx0aW4nLgoJKHJuX3RhYmxlLCBpd21teHRfdGFibGUsIGNwX3RhYmxlLCBjbl90YWJsZSwgZm5fdGFibGUsIHNuX3RhYmxlLAoJZG5fdGFibGUsIG1hdl9tdmZfdGFibGUsIG1hY19tdmRfdGFibGUsIG1hdl9tdmZ4X3RhYmxlLAoJbWF2X212YXhfdGFibGUsIG1hdl9kc3BjX3RhYmxlKTogSW5pdGlhbGlzZSBuZXcgZmllbGQuCgkoaW5zZXJ0X3JlZ19hbGlhcyk6IEluaXRpYWxpc2UgbmV3IGZpZWxkLgoJKG1kX3BzZXVkb190YWJsZSk6IEFkZCAidW5yZXEiIGVudHJ5LgoJKHNfdW5yZXEpOiBOZXcgZnVuY3Rpb246IFVuZG8gdGhlIGVmZmVjdHMgb2YgYSBwcmV2aW91cyAucmVxLgoJKiBkb2MvYy1hcm0udGV4aTogRG9jdW1lbnQgbmV3IHBzZXVkbyBvcC4KCSogTkVXUzogTWVudGlvbiBuZXcgZmVhdHVyZS4KCjIwMDMtMTEtMDYgIEJydW5vIFJvaGVlICA8YnJ1bm9Acm9oZWUuY29tPgoKCSogY29uZmlnL29iai12bXMuYzogRml4ICJ0aGUgdGhlIiB0eXBvLgoJKiBkb2MvYy1hcm0udGV4aTogTGlrZXdpc2UuCgoyMDAzLTExLTA2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL29iai12bXMuYzogQ29udmVydCB0byBJU08tQy4KCjIwMDMtMTEtMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtcHBjLmggKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBPbmx5IGRlZmluZSBmb3IgRUxGIGFuZCBYQ09GRi4KCjIwMDMtMTAtMzEgIENocmlzdGlhbiBHcm9lc3NsZXIgIDxjaHJpc0Bncm9lc3NsZXIub3JnPgoKCSogY29uZmlnL3RjLWk4NjAuYyAobWRfcGNyZWxfZnJvbSk6IEZpeCB0eXBvIGluIGNvbW1lbnQuCgoyMDAzLTEwLTI5ICBQaGlsIEVkd2FyZHMgIDxwaGlsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWd1cmUuaW4gKGFybS0qLXZ4d29ya3MsIGkzODYtKi12eHdvcmtzLCBtaXBzLSotdnh3b3JrcywKCXBwYy0qLXZ4d29ya3MsIHBwYy0qLXdpbmRpc3MpOiAgUmVtb3ZlIHNlcGFyYXRlIG91dGRhdGVkIHN0YW56YXMuCgkoKi0qLXZ4d29ya3MsICotKi13aW5kaXNzKTogIFVzZSBjb21tb24gc3RhbnphcywgYWxsIEVMRi4KCSogY29uZmlndXJlOiAgUmVnZW5lcmF0ZWQuCgoyMDAzLTEwLTI3ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogQ2hhbmdlTG9nOiBGaXggdHlwb3MuCgkqIENoYW5nZUxvZy05Mjk1OiBMaWtld2lzZS4KCSogYXMuYzogRml4IGNvbW1lbnQgdHlwb3MuCgkqIGFzLmg6IExpa2V3aXNlLgoJKiBhdG9mLWdlbmVyaWMuYzogTGlrZXdpc2UuCgkqIGJpdF9maXguaDogTGlrZXdpc2UuCgkqIGZyYWdzLmg6IExpa2V3aXNlLgoJKiBoYXNoLmM6IExpa2V3aXNlLgoJKiBpbnB1dC1maWxlLmM6IExpa2V3aXNlLgoJKiBpbnB1dC1zY3J1Yi5jOiBMaWtld2lzZS4KCSogaXRibC1vcHMuYzogTGlrZXdpc2UuCgkqIGl0YmwtcGFyc2UueTogTGlrZXdpc2UuCgkqIGxpc3RpbmcuYzogTGlrZXdpc2UuCgkqIG1hY3JvLmg6IExpa2V3aXNlLgoJKiByZWFkLmM6IExpa2V3aXNlLgoJKiBzYi5jOiBMaWtld2lzZS4KCSogc2IuaDogTGlrZXdpc2UuCgkqIHN5bWJvbHMuYzogTGlrZXdpc2UuCgkqIHN5bWJvbHMuaDogTGlrZXdpc2UuCgoyMDAzLTEwLTI3ICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGNvbmZpZy90Yy1tNjhoYzExLmM6IENvbnZlcnQgdG8gSVNPIEM5MC4KCSogY29uZmlnL3RjLW02OGhjMTEuaDogTGlrZXdpc2UuCgoyMDAzLTEwLTI2ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogZG9jL2Mtc2g2NC50ZXhpOiBGaXggYSB0eXBvLgoKMjAwMy0xMC0yNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGRvYy9jLWFscGhhLnRleGk6IEZpeCB0eXBvcy4KCSogZG9jL2MtaWE2NC50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2MtbW1peC50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2Mtc2g2NC50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2MteHRlbnNhLnRleGk6IExpa2V3aXNlLgoJKiBkb2MvaW50ZXJuYWxzLnRleGk6IExpa2V3aXNlLgoKMjAwMy0xMC0yNCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL29iai1lbGYuYyAob2JqX2VsZl9jaGFuZ2Vfc2VjdGlvbik6IEFsbG93IFNIRl9BTExPQwoJZm9yIC5pbnRlcnAsIC5zdHJ0YWIgYW5kIC5zeW10YWIuIFVzZSBzcGVjaWZpZWQgc2VjdGlvbgoJYXR0cmlidXRlcy4KCjIwMDMtMTAtMjIgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgkgICAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoJICAgIEppbSBXaWxzb24gPHdpbHNvbkBzcGVjaWZpeGluYy5jb20+CgoJKiBjb25maWcvdGMtaWE2NC5jICh1cGRhdGVfcXBfbXV0ZXgpOiBOZXcuCgkobm90ZV9yZWdpc3Rlcl92YWx1ZXMpOiBQcm9wZXJseSBoYW5kbGUgb25lIG9mIFBScyBpbiBjb21wYXJlCglpcyBQUjAuIERvbid0IGFkZCBhIG11dGV4IHJlbGF0aW9uIGZvciAuYW5kLm9yY20vLm9yLmFuZGNtLgoJQ2xlYXIgbXV0ZXggcmVsYXRpb24gZm9yIC5ub25lLy51bmMuIERvbid0IGNsZWFyIG11dGV4IHJlbGF0aW9uCglvbiBwcmVkaWNhdGVkIGNvbXBhcmUuCgoyMDAzLTEwLTIxICBXb3V0ZXIgdmFuIEhleXN0IDx3b3V0ZXJAdmlkaWNvZGUubmw+CgoJKiBjb25maWcvdGMtYXJtLmMgKGFsbF9yZWdfbWFwcyk6IENvcnJlY3QgdGV4dCBkZXNjcmliaW5nIE1hdmVyaWNrCglyZWdpc3RlciByZXF1aXJlbWVudHMuCgkobWRfYmVnaW4pOiBSZW1vdmUgRl9TT0ZUX0ZMT0FUIGlmIGVuYWJsaW5nIE1BVkVSSUNLIEZQLgoKMjAwMy0xMC0yMSAgUGV0ZXIgQmFyYWRhICA8cGJhcmFkYUBtYWlsLndtLnNwcy5tb3QuY29tPgoJICAgIEJlcm5hcmRvIElubm9jZW50aSAgPGJlcm5pZUBkZXZlbGVyLmNvbT4KCgkqIGNvbmZpZy90Yy1tNjhrLmM6IEFkZCBNQ0Y1Mjh4IChNQ0Z2NCkgc3VwcG9ydC4KCSogY29uZmlnL202OGstcGFyc2UuaDogTGlrZXdpc2UuCgkqIE5FV1M6IE1lbnRpb24gdGhlIG5ldyBzdXBwb3J0LgoJKiBkb2MvYy1tNjhrLnRleGk6IERvY3VtZW50IG5ldyBwcm9jZXNzb3Igc2VsZWN0aW9uIHN3aXRjaC4KCjIwMDMtMTAtMTkgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChub3JtYWxpemVfY29uc3RhbnRfZXhwcik6IE5ldyBmdW5jdGlvbiB0byBmaXggc2lnbgoJZXh0ZW5zaW9ucyBicm9rZW4gYnkgZ2FzJyBleHByZXNzaW9uIGV2YWx1YXRpb24gb2YgY29uc3RhbnRzLgoJKGNoZWNrX2Fic29sdXRlX2V4cHIpOiBVc2UgaXQuCgkobWlwc19pcCk6IExpa2V3aXNlLgoKMjAwMy0xMC0xOCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCUdlbmVyYXRlIEJGRF9SRUxPQ19NTUlYX1BVU0hKX1NUVUJCQUJMRSBmb3IgUFVTSEogd2hlbiBwb3NzaWJsZS4KCSogZG9jL2MtbW1peC50ZXhpIChNTUlYLU9wdHMpOiBEb2N1bWVudCAtLW5vLXB1c2hqLXN0dWJzIGFuZAoJLS1uby1zdHVicy4KCSogY29uZmlnL3RjLW1taXguYzogSW5jbHVkZSBsaW1pdHMuaC4gIEV4cGFuZCBvbiBtbWl4X3JlbGF4X3RhYmxlCgljb21tZW50LgoJKGV4cGFuZF9vcCwgbW1peF9uZXh0X3NlbWljb2xvbl9pc19lb2xuKTogRml4IGhlYWQgY29tbWVudC4KCShwdXNoal9zdHVicyk6IE5ldyB2YXJpYWJsZS4KCShPUFRJT05fTk9QVVNISlNUVUJTLCBTVEFURV9QVVNISlNUVUIsIFBVU0hKU1RVQl9NSU4pCgkoUFVTSEpTVFVCX01BWCk6IE5ldyBtYWNyb3MuCgkobWRfbG9uZ29wdHMpOiBOZXcgb3B0aW9ucyAiLS1uby1wdXNoai1zdHVicyIgYW5kIHN5bm9ueW0KCSItLW5vLXN0dWJzIi4KCShtbWl4X3JlbGF4X3RhYmxlKTogSGFuZGxlIG5ldyBlbnRyeSBmb3IgU1RBVEVfUFVTSEpTVFVCLgoJKG1kX3BhcnNlX29wdGlvbik6IEhhbmRsZSBPUFRJT05fTk9QVVNISlNUVUJTLgoJKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogTW9kaWZ5IFNUQVRFX1BVU0hKIHN0YXRlIGZvcgoJUFVTSEogc3R1YiByZWxheGF0aW9uLgoJKG1kX2NvbnZlcnRfZnJhZyk6IEhhbmRsZSBTVEFURV9QVVNISlNUVUIuCgkobWRfYXBwbHlfZml4Myk6IEhhbmRsZSBCRkRfUkVMT0NfTU1JWF9QVVNISl9TVFVCQkFCTEUuCgkodGNfZ2VuX3JlbG9jKTogRGl0dG8uCgkobW1peF9tZF9yZWxheF9mcmFnKTogSGFuZGxlIFBVU0hKIHN0dWIgcmVsYXhhdGlvbi4KCSogY29uZmlnL3RjLW1taXguaCAoVENfU0VHTUVOVF9JTkZPX1RZUEUpOiBEZWZpbmUuCgkoc3RydWN0IG1taXhfc2VnbWVudF9pbmZvX3R5cGUpOiBOZXcuCgoyMDAzLTEwLTE3ICBQYXVsIERhbGUgIDxwYXVsaUBzbmFwZ2Vhci5jb20+CgkgICAgQmVybmFyZG8gSW5ub2NlbnRpICA8YmVybmllQGRldmVsZXIuY29tPgoKCSogY29uZmlnL3RjLW02OGsuYyAobWFrZV9wY3JlbF9hYnNvbHV0ZSk6IEVuZm9yY2UKCVBDLXJlbGF0aXZlIGp1bXBzIHdpdGggLS1wY3JlbC4KCShtZF9jb252ZXJ0X2ZyYWdfMSk6IExpa2V3aXNlLgoJKG1kX2NyZWF0ZV9sb25nX2p1bXApOiBMaWtld2lzZS4KCjIwMDMtMTAtMTcgIFNocmluaXZhcyBBdHJlICA8c2hyaW5pdmFzYUBLUElUQ3VtbWlucy5jb20+CgoJKiBjb25maWcvdGMtaDgzMDAuYyAoUFNJWkUpOiBDb3JyZWN0IGZvciBOb3JtYWwgbW9kZS4KCShnZXRfb3BlcmFuZCk6IEFjY2VwdCBib3RoIDE2IGJpdCAzMiBiaXQgcmVnaXN0ZXJzIGFzIHBvaW50ZXIKCXJlZ2lzdGVycywgd2hlbiBvcGVyYXRpbmcgaW4gTm9ybWFsIG1vZGUuCgkoZml4X29wZXJhbmRfc2l6ZSk6IE1ha2UgZGVmYXVsdCBhZGRyZXNzIHNpemUgMTYgZm9yIE5vcm1hbCBtb2RlLgoKMjAwMy0xMC0xNyAgSWFuIExhbmNlIFRheWxvciAgPGlhbkB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYyAoZG9faXdtbXh0X2J5dGVfYWRkcik6IFJlamVjdCBjb250cm9sCglyZWdpc3RlcnMuCgkoZG9faXdtbXh0X3dvcmRfYWRkcik6IFdpdGggYSBjb250cm9sIHJlZ2lzdGVyLCByZWplY3QgY29uZGl0aW9uYWwKCWV4ZWN1dGlvbiBhbmQgcmVqZWN0IGEgbm9uLXdvcmQgc2l6ZS4KCjIwMDMtMTAtMTYgIFBldGVyIEJlcmduZXIgIDxiZXJnbmVyQHZuZXQuaWJtLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogU2V0IGVtPWxpbnV4IGZvciBwcGMtKi1saW51eC1nbnUqIHRhcmdldC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMy0xMC0xNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGRvYy9hcy50ZXhpbmZvIChBbGlnbik6IENvcnJlY3QgbGlzdCBvZiBieXRlIHRhcmdldHMuCgoyMDAzLTEwLTE1ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWFjcm9fYnVpbGRfbGRzdF9jb25zdG9mZnNldCxsb2FkX3JlZ2lzdGVyLG1hY3JvKToKCUZpeCBpbmRlbnRhdGlvbi4gQmV0dGVyIGVycm9yIG1lc3NhZ2UuCgoyMDAzLTEwLTE0ICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogY29uZmlnL3RjLXh0ZW5zYS5jICh4dGVuc2FfY3JlYXRlX3Byb3BlcnR5X3NlZ21lbnRzKTogUmVtb3ZlIGJmZAoJYXJndW1lbnQgaW4gY2FsbCB0byB4dGVuc2FfZ2V0X3Byb3BlcnR5X3NlY3Rpb25fbmFtZS4gIEZvcm1hdHRpbmcuCgoyMDAzLTEwLTExICBLYXogS29qaW1hICA8a2tvamltYUByci5paWo0dS5vci5qcD4KCgkqIGNvbmZpZy90Yy1zaC5oIChzaF9jb2ZmX3JlbG9jX21hbmdsZSk6IERlbGV0ZSBhbiBleHRyYQoJcGFyZW50aGVzaXMuCgoyMDAzLTEwLTExICBLYXogS29qaW1hICA8a2tvamltYUByci5paWo0dS5vci5qcD4KCgkqIGNvbmZpZy90Yy1zaC5jOiBDb252ZXJ0IHRvIElTTyBDOTAuICBSZW1vdmUgdW5uZWNlc3NhcnkKCXByb3RvdHlwZXMgYW5kIGNhc3RzLgoJKiBjb25maWcvdGMtc2guaDogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1zaDY0LmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtc2g2NC5oOiBMaWtld2lzZS4KCjIwMDMtMTAtMDggIERhdmUgQnJvbGxleSAgPGJyb2xsZXlAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1mcnYuYyAoZnI1NTBfY2hlY2tfaW5zbl9hY2NfcmFuZ2UpOiBOZXcgZnVuY3Rpb24uCgkoZnI1NTBfY2hlY2tfYWNjX3JhbmdlKTogTmV3IGZ1bmN0aW9uLgoJKG1kX2Fzc2VtYmxlKTogQ2FsbCBmcjU1MF9jaGVja19hY2NfcmFuZ2UuCgoyMDAzLTEwLTA4ICBEYXZlIEJyb2xsZXkgIDxicm9sbGV5QHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtZnJ2LmM6IEhhbmRsZSBERUZBVUxUX0NQVV9GUjU1MC4KCShtZF9wYXJzZV9vcHRpb24pOiBIYW5kbGUgT1BUSU9OX0NQVT09ZnI1NTAuCgkobWRfc2hvd191c2FnZSk6IERvY3VtZW50IGZyNTUwLgoKMjAwMy0xMC0wOCAgUGhpbGlwcGUgRGUgTXV5dGVyICA8cGhkbUBtYWNxZWwuYmU+CgoJKiBhcy5jICh1c2VfZ251X2RlYnVnX2luZm9fZXh0ZW5zaW9ucykgOiBOZXcgdmFyaWFibGUuCgkocGFyc2VfYXJncykgOiBBY2NlcHQgbmV3IC0tZ3N0YWJzKyBvcHRpb24sIGFuZCBzZXQKCWB1c2VfZ251X2RlYnVnX2luZm9fZXh0ZW5zaW9ucycuCgkoc2hvd191c2FnZSkgOiBEb2N1bWVudCAtLWdzdGFicysgb3B0aW9uLgoJKiBhcy5oICh1c2VfZ251X2RlYnVnX2luZm9fZXh0ZW5zaW9ucykgOiBOZXcgZXh0ZXJuIGRlY2xhcmF0aW9uLgoJKiBzdGFicy5jIChzdGFic19nZW5lcmF0ZV9hc21fZmlsZSkgOiBJZgoJYHVzZV9nbnVfZGVidWdfaW5mb19leHRlbnNpb25zJyBpcyBzZXQsIGFkZCB0aGUgY29tcGlsYXRpb24KCWRpcmVjdG9yeSB0byB0aGUgc3RhYnMgZGVidWcgaW5mby4KCSogZG9jL2FzLnRleGluZm8gOiBEb2N1bWVudCAtLWdzdGFicysgb3B0aW9uLgoJKiBORVdTOiBNZW50aW9uIG5ldyBmZWF0dXJlLgoKMjAwMy0xMC0wNiAgTWF0dCBUaG9tYXMgIDxtYXR0QDNhbS1zb2Z0d2FyZS5jb20+CgoJU3dpdGNoIE5ldEJTRC9ocHBhIHRvIHVzZSBMaW51eCBQQS1SSVNDIEVMRiBBQkkgYW5kCglhc3NlbWJsZXIgc3ludGF4LgoKCSogdGMtaHBwYS5jOiBBZGQgIiVmYXJnWzAtM10iLCAiJWZyZXQiLCAiJXRbMS00XSIsICIldGZbMS00XSIKCXJlZ2lzdGVyIG5hbWVzLiAgQ2hhbmdlIGFsbCAiZGVmaW5lZCAoVEVfTElOVVgpIiB0bwoJIihkZWZpbmVkIChURV9MSU5VWCkgfHwgZGVmaW5lZCAoVEVfTkVUQlNEKSkiLgoKCSogdGMtaHBwYS5oOiBNYWtlIE5ldEJTRCB1c2UgImVsZlhYLWhwcGEtbGludXgiIGJmZCB0YXJnZXQuCglSZW1vdmUgTmV0QlNEJ3MgdXNlIG9mIExBQkVMU19XSVRIT1VUX0NPTE9OUy4KCjIwMDMtMTAtMDYgIFJvYmVydCBNaWxsYW4gIDxyb2JlcnRtaEBnbnUub3JnPgoKCSogY29uZmlndXJlLmluOiBNYXRjaCBHTlUvS05ldEJTRCB3aXRoIG5ldyBrbmV0YnNkKi1nbnUgdHJpcGxldC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMy0xMC0wNSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGFzLmMgKHBhcnNlX2FyZ3MpOiBSZXZlcnQgcGF0Y2ggdG8gY2hhbmdlIGhhbmRsaW5nIG9mIC1mCglvcHRpb24uICBJdHMgYmVoYXZpb3VyIGlzIG1hbmRhdGVkIGJ5IHRoZSBQT1NJWCAyIHNwZWMuCgoyMDAzLTEwLTA0ICBDaHJpc3RpYW4gR3JvZXNzbGVyICA8Y2hyaXNAZ3JvZXNzbGVyLm9yZz4KCgkqIHRjLXo4ay5jIChuZXdmaXgpOiBUZWxsIGZpeF9uZXdfZXhwIGFib3V0IHBjIHJlbGF0aXZlbmVzcy4KCShtZF9hcHBseV9maXgzKTogRml4IFJfSlIsIFJfRElTUDcsIGFuZCBSX0NBTExSIGNhc2VzLgoJKG1kX3BjcmVsX2Zyb20pOiBUaGlzIGZ1bmN0aW9uIG5vdyBnZXRzIGNhbGxlZC4gU3VwcGx5IHJldHVybgoJdmFsdWUuCgoyMDAzLTEwLTA0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogYXMuYzogQ29udmVydCB0byBJU08gQzkwLgoKMjAwMy0xMC0wNCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGFzLmMgKHN0ZF9zaG9ydG9wdHMpOiBSZW1vdmUgJ2YnLgoJKHN0ZF9sb25nb3B0cyk6IEFkZCAnZicuICBEb2luZyB0aGlzIHByZXZlbnRzIC1mPGZvbz4gYmVpbmcKCWFjZWNwdGVkIGFzIGFuIGFsaWFzIGZvciAtZi4KCjIwMDMtMTAtMDQgIERhbm55IFNtaXRoICA8ZGFubnlfcl9zbWl0aF8yMDAxQHlhaG9vLmNvLm56PgoKCSogY29uZmlnL29iai1jb2ZmLmMgKG9ial9jb2ZmX3NlY3Rpb24gW0JFRl9BU1NFTUJMRVJdKToKCU1ha2UgJ3InIG1lYW4gcmVhZG9ubHkgZGF0YS4KCjIwMDMtMTAtMDEgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNyb19idWlsZF9sZHN0X2NvbnN0b2Zmc2V0LGxvYWRfcmVnaXN0ZXIsbWFjcm8pOgoJVW5icmVhayBvdmVyZmxvdyBjaGVja3MuCgoyMDAzLTEwLTAxICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoc19jcHJldHVybik6IENvcnJlY3QgZXJyb3JzIGluIGNvbW1lbnQuCgoyMDAzLTEwLTAxICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWFjcm9fYnVpbGRfbGRzdF9jb25zdG9mZnNldCk6IEZpeCBzaWduIGV4dGVuc2lvbgoJdGVzdHMuCgkobG9hZF9yZWdpc3Rlcik6IExpa2V3aXNlLgoJKG1hY3JvKTogTGlrZXdpc2UuCgoyMDAzLTA5LTMwICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19pcCk6IENhcGl0YWxpemUgZmlyc3Qgd29yZCBvZgoJZXhpc3RpbmcgY29uZGl0aW9uIGNvZGUgd2FybmluZywgYW5kIGFkZCBjb25kaXRpb24gY29kZQoJd2FybmluZ3MgZm9yIC5wcyBpbnN0cnVjdGlvbnMsIGFuZCBmb3IgYmMxYW55WzI0XVt0Zl0uCgoyMDAzLTA5LTMwICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogTkVXUzogTWVudGlvbiBzdXBwb3J0IGZvciBNSVBTNjQgUmVsZWFzZSAyLgoKMjAwMy0wOS0zMCAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIE5FV1M6IEFkZCBhbiBpbmRpY2F0aW9uIG9mIHRoZSBjdXRvZmYgZm9yIDIuMTQuCgoyMDAzLTA5LTMwICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogY29uZmlndXJlLmluIChtaXBzaXNhNjRyMiwgbWlwc2lzYTY0cjJlbCwgbWlwc2lzYTY0cjIqKTogTmV3IENQVXMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogY29uZmlnL3RjLW1pcHMuYyAoaW1tMl9leHByKTogTmV3IHZhcmlhYmxlLgoJKG1kX2Fzc2VtYmxlLCBtaXBzMTZfaXApOiBJbml0aWFsaXplIGltbTJfZXhwci4KCShJU0FfSEFTXzY0QklUX1JFR1MsIElTQV9IQVNfRFJPUiwgSVNBX0hBU19ST1IpOiBBZGQgSVNBX01JUFM2NFIyLgoJKG1hY3JvX2J1aWxkKTogSGFuZGxlICtBLCArQiwgK0MsICtFLCArRiwgK0csIGFuZCArSCBmb3JtYXQgb3BlcmFuZHMuCgkobWFjcm8pOiBIYW5kbGUgTV9ERVhUIGFuZCBNX0RJTlMuCgkodmFsaWRhdGVfbWlwc19pbnNuKTogSGFuZGxlICtFLCArRiwgK0csICtILCBhbmQgK0kgZm9ybWF0IG9wZXJhbmRzLgoJKG1pcHNfaXApOiBMaWtld2lzZS4KCShPUFRJT05fTUlQUzY0UjIpOiBOZXcgZGVmaW5lLgoJKG1kX2xvbmdvcHRzKTogTmV3IGVudHJ5IGZvciAtbWlwczY0cjIgKE9QVElPTl9NSVBTNjRSMikuCglPUFRJT05fQVNFX0JBU0UpOiBJbmNyZWFzZSB0byBjb21wZW5zYXRlIGZvciBPUFRJT05fTUlQUzY0UjIuCgkobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlIE9QVElPTl9NSVBTNjRSMi4KCShzX21pcHNzZXQpOiBIYW5kbGUgc2V0dGluZyAibWlwczY0cjIiIElTQS4KCShtaXBzX2NwdV9pbmZvX3RhYmxlKTogQWRkIG1pcHM2NHIyLgoJKG1kX3Nob3dfdXNhZ2UpOiBEb2N1bWVudCAtbWlwczY0cjIgb3B0aW9uLgoJKiBkb2MvYXMudGV4aW5mbzogRG9jdWVtbnQgLW1pcHM2NHIyIG9wdGlvbi4KCSogZG9jL2MtbWlwcy50ZXhpOiBMaWtld2lzZS4KCjIwMDMtMDktMjcgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJKiBjb25maWcvdGMtaHBwYS5jIChwYV9pcCk6IENoZWNrIGZvciBpbnZhbGlkIDY0LWJpdCBjb25kaXRpb25zLgoKMjAwMy0wOS0yNiAgTWF0dCBUaG9tYXMgIDxtYXR0QDNhbS1zb2Z0d2FyZS5jb20+CgoJKiBjb25maWcvdGMtdmF4LmMgKG1kX3Nob3J0b3B0cyk6IEZpeCBhIHR5cG8uICBSZW1vdmUgJ0snLgoJKE9QVElPTl9QSUMpOiBEZWZpbmUuCgkobWRfbG9uZ29wdHMpOiBBZGQgInBpYyIgb3B0aW9uLgoJKG1kX3BhcnNlX29wdGlvbik6IENoYW5nZSAnSycgdG8gT1BUSU9OX1BJQy4KCjIwMDMtMDktMjMgIEFsYW4gTW9kcmEgIDxhbGFuQG1vZHJhLm9yZz4KCgkqIGNvbmZpZy9vYmotZWxmLmMgKG9ial9lbGZfY2hhbmdlX3NlY3Rpb24pOiBBZGp1c3QgZm9yCglfYmZkX2VsZl9nZXRfc2VjX3R5cGVfYXR0ciBjaGFuZ2VzLiAgQWxsb3cgU0hGX01FUkdFIGFuZCBTSEZfU1RSSU5HUwoJdG8gYmUgc2V0IHdoZW4gZGVmYXVsdHMgYXJlIG5vdC4gIERvbid0IHNldCBhdHRyIGZyb20gZGVmYXVsdHMgaWYKCW9sZF9zZWMuCgoyMDAzLTA5LTE4ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWFjcm9fYnVpbGRfbGRzdF9jb25zdG9mZnNldCk6IERvbid0IHNpbGVudGx5Cgl0cnVuY2F0ZSB2YWx1ZXMgd2hpY2ggd29uJ3QgZml0IGltIDMyIGJpdHMuCgkobG9hZF9yZWdpc3Rlcik6IExpa2V3aXNlLgoJKG1hY3JvKTogTGlrZXdpc2UuCgoyMDAzLTA5LTE3ICBEbWl0cnkgRGlreSA8ZGl3aWxAbWFpbC5ydT4KCgkqIGNvbmZpZy90Yy1tc3A0MzAuYyAoTUFYX09QX0xFTik6IFNldCB0byAyNTYuCgkobXNwNDMwX29wZXJhbmRzKTogUmVtb3ZlIHJlZHVuZGFudCBsMlsxNl0gd2l0aGluIHN3aXRjaC1jYXNlLgoKMjAwMy0wOS0xNiAgUmFsZiBDb3JzZXBpdXMgIDxjb3JzZXBpdUBmYXcudW5pLXVsbS5kZT4KCgkqIGNvbmZpZ3VyZS5pbjogSGFuZGxlIGFybS0qLXJ0ZW1zKiBhbmQgdGh1bWItKnJ0ZW1zKi4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMy0wOS0xNCAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKEhBVkVfNjRCSVRfQUREUkVTU19DT05TVEFOVFMpOiBSZW1vdmUuCgkobWFjcm9fYnVpbGRfbGRzdF9jb25zdG9mZnNldCk6IFNpZ24tZXh0ZW5kIDMyLWJpdCBjb25zdGFudHMuIENoYW5nZQoJdGhlIGZ1bmN0aW9uIHByb3RvdHlwZS4KCShsb2FkX3JlZ2lzdGVyKTogTGlrZXdpc2UuIFNpbXBsaWZ5IHRoZSBjaGVja3MgZm9yIHNpZ24tZXh0ZW5kZWQKCWNvbnN0YW50cy4KCShtYWNybyk6IExpa2V3aXNlLiBGaXggY29kZSBnZW5lcmF0aW9uIGZvciA2NC1iaXQgYWRkcmVzcyBjb25zdGFudHMKCW91dHNpZGUgdGhlIDMyLWJpdCBjb21wYXRpYmlsaXR5IHNwYWNlLiBBZGp1c3QKCW1hY3JvX2J1aWxkX2xkc3RfY29uc3RvZmZzZXQgY2FsbHMuCgkoc19jcHJlc3RvcmUpOiBBZGp1c3QgbWFjcm9fYnVpbGRfbGRzdF9jb25zdG9mZnNldCBjYWxsLgoKMjAwMy0wOS0xMSAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIGNvbmZpZy90Yy14dGVuc2EuYyAoaW5zbl9sYWJlbHMsIGZyZWVfaW5zbl9sYWJlbHMsIHNhdmVkX2luc25fbGFiZWxzLAoJbGl0ZXJhbF9zeW1zKTogTmV3IGdsb2JhbCB2YXJpYWJsZXMuCgkoeHRlbnNhX2RlZmluZV9sYWJlbCwgYWRkX3RhcmdldF9zeW1ib2wsIHh0ZW5zYV9maW5kX2xhYmVsLAoJbWFwX292ZXJfZGVmaW5lZF9zeW1ib2xzLCBpc19sb29wX3RhcmdldF9sYWJlbCwKCXh0ZW5zYV9tYXJrX3RhcmdldF9mcmFnbWVudHMsIHh0ZW5zYV9tb3ZlX2ZyYWdfc3ltYm9sLAoJeHRlbnNhX21vdmVfZnJhZ19zeW1ib2xzLCBkZWZpbmVkX3N5bWJvbHMsIGJyYW5jaF90YXJnZXRzKTogRGVsZXRlLgoJKHh0ZW5zYV9iZWdpbl9kaXJlY3RpdmUpOiBDYWxsIG1kX2ZsdXNoX3BlbmRpbmdfb3V0cHV0LiAgTW92ZSBzeW1ib2xzCglmcm9tIGluc25fbGFiZWxzIHRvIHNhdmVkX2luc25fbGFiZWxzIHdoZW4gZW50ZXJpbmcgYSBsaXRlcmFsIHJlZ2lvbi4KCSh4dGVuc2FfZW5kX2RpcmVjdGl2ZSk6IENhbGwgbWRfZmx1c2hfcGVuZGluZ19vdXRwdXQuICBSZXN0b3JlCglpbnNuX2xhYmVscyBsaXN0IHdoZW4gbGVhdmluZyBhIGxpdGVyYWwgcmVnaW9uLgoJKHh0ZW5zYV9saXRlcmFsX3Bvc2l0aW9uKTogQ2FsbCB4dGVuc2FfY2xlYXJfaW5zbl9sYWJlbHMuCgkoeHRlbnNhX2xpdGVyYWxfcHNldWRvKTogQWRkIGNoZWNrIHRvIGRpc2FsbG93IC5saXRlcmFsIGluc2lkZSBhCglsaXRlcmFsIHJlZ2lvbi4gIE1vdmUgaW5zbl9sYWJlbHMgdG8gc2F2ZWRfaW5zbl9sYWJlbHMgYW5kIHRoZW4gcmVzdG9yZQoJaW5zbl9sYWJlbHMgb24gZXhpdC4KCSh4Z19hZGRfYnJhbmNoX2FuZF9sb29wX3RhcmdldHMpOiBSZXBsYWNlIGFkZF90YXJnZXRfc3ltYm9sIGNhbGxzIHdpdGgKCWNvZGUgdG8gc2V0IGlzX2xvb3BfdGFyZ2V0IG9yIGlzX2JyYW5jaF90YXJnZXQgZmxhZyBvbiB0aGUgc3ltYm9sCgkoeHRlbnNhX2NyZWF0ZV9saXRlcmFsX3N5bWJvbCk6IENhbGwgeHRlbnNhX2FkZF9saXRlcmFsX3N5bS4KCSh4dGVuc2FfYWRkX2xpdGVyYWxfc3ltLCB4dGVuc2FfYWRkX2luc25fbGFiZWwsCgl4dGVuc2FfY2xlYXJfaW5zbl9sYWJlbHMpOiBOZXcgZnVuY3Rpb25zLgoJKHh0ZW5zYV9tb3ZlX2xhYmVscyk6IFJlbW92ZSBvbGRfZnJhZyBhbmQgb2xkX29mZnNldCBhcmd1bWVudHMuICBBZGQKCWxvb3BzX29rIGFyZ3VtZW50LiAgUmV3cml0ZSB0byB1c2UgaW5zbl9sYWJlbHMgbGlzdCBpbnN0ZWFkIG9mCgljYWxsaW5nIHh0ZW5zYV9maW5kX2xhYmVsIGFuZCB0byBjaGVjayB0aGUgaXNfbG9vcF90YXJnZXQgZmxhZyBvbgoJc3ltYm9scyB3aGVuIGxvb3BzX29rIGlzIGZhbHNlLgoJKHh0ZW5zYV9mcm9iX2xhYmVsKTogUmVtb3ZlIGNhbGwgdG8geHRlbnNhX2RlZmluZV9sYWJlbC4gIEFkZCBjYWxsCgl0byBlaXRoZXIgeHRlbnNhX2FkZF9saXRlcmFsX3N5bSBvciB4dGVuc2FfYWRkX2luc25fbGFiZWwuICBBZGp1c3QKCWNhbGwgdG8geHRlbnNhX21vdmVfbGFiZWxzLiAgUHJvcGFnYXRlIGlzX2JyYW5jaF90YXJnZXQgYW5kCglpc19sb29wX3RhcmdldCBmbGFncyBmcm9tIHN5bWJvbHMgdG8gZnJhZ3MuCgkoeHRlbnNhX2ZsdXNoX3BlbmRpbmdfb3V0cHV0KTogQ2FsbCB4dGVuc2FfY2xlYXJfaW5zbl9sYWJlbHMuCgkobWRfYXNzZW1ibGUpOiBVc2UgeHRlbnNhX21vdmVfbGFiZWxzIHdpdGggbG9vcHNfb2sgPSBGQUxTRSB3aGVuCglhbGlnbmluZyBhIGxvb3AgaW5zdHJ1Y3Rpb24uICBBZGp1c3QgY2FsbCB0byB4dGVuc2FfbW92ZV9sYWJlbHMgZm9yCglhbGlnbmluZyBlbnRyeSBpbnN0cnVjdGlvbnMuICBBZGQgY2FsbCB0byB4dGVuc2FfY2xlYXJfaW5zbl9sYWJlbHMuCgkoeHRlbnNhX2VuZCk6IFJlbW92ZSBjYWxsIHRvIHh0ZW5zYV9tYXJrX3RhcmdldF9mcmFnbWVudHMuCgkoeHRlbnNhX21vdmVfbGl0ZXJhbHMpOiBSZXBsYWNlIHh0ZW5zYV9tb3ZlX2ZyYWdfc3ltYm9scyBjYWxsIHdpdGgKCWNvZGUgdG8gdXNlIG5ldyBsaXRlcmFsX3N5bXMgbGlzdC4KCSogY29uZmlnL3RjLXh0ZW5zYS5oICh4dGVuc2Ffc3ltZmllbGRfdHlwZSk6IEFkZCBpc19sb29wX3RhcmdldCBhbmQKCWlzX2JyYW5jaF90YXJnZXQgZmxhZ3MuCgoyMDAzLTA5LTA5ICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogY29uZmlnL3RjLXh0ZW5zYS5jICh4dGVuc2FfbWFya19saXRlcmFsX3Bvb2xfbG9jYXRpb24pOiBSZW1vdmUKCSJtb3ZlX2xhYmVscyIgYXJndW1lbnQgYW5kIGNvcnJlc3BvbmRpbmcgY2FsbCB0byB4dGVuc2FfbW92ZV9sYWJlbHMuCgkobWRfYXNzZW1ibGUpOiBBZGQgYSBzZXBhcmF0ZSBjYWxsIHRvIHh0ZW5zYV9tb3ZlX2xhYmVscyBhbmQgcmVtb3ZlCglhcmd1bWVudCBmb3IgY2FsbCB0byB4dGVuc2FfbWFya19saXRlcmFsX3Bvb2xfbG9jYXRpb24uCgkoeHRlbnNhX2xpdGVyYWxfcG9zaXRpb24sIHh0ZW5zYV9zd2l0Y2hfdG9fbGl0ZXJhbF9mcmFnbWVudCk6IEZpeAoJY2FsbHMgdG8geHRlbnNhX21hcmtfbGl0ZXJhbF9wb29sX2xvY2F0aW9uLgoJKHh0ZW5zYV9jcmVhdGVfbG9jYWxfc3ltYm9sKTogRGVsZXRlIGFuZCBpbmxpbmUgdGhlIGNvZGUgaW50by4uLgoJKHh0ZW5zYV9jcmVhdGVfbGl0ZXJhbF9zeW1ib2wpOiAuLi5oZXJlLgoJKHh0ZW5zYV9mcm9iX2xhYmVsKTogQ29tYmluZSBjb25kaXRpb25hbHMuCgkoZXhwcmVzc2lvbl9tYXliZV9yZWdpc3RlciwgeHRlbnNhX3N5bWJvbF9uZXdfaG9vaywKCWZpeF9uZXdfZXhwX2luX3NlZyk6IFVzZSBzeW1ib2xfZ2V0X3RjLgoKMjAwMy0wOS0wOSAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIGNvbmZpZy90Yy14dGVuc2EuYyAoeHRlbnNhX2xpdGVyYWxfcHNldWRvKTogUmVtb3ZlIGNvZGUgZm9yCgljb21iaW5pbmcgaWRlbnRpY2FsIGxpdGVyYWxzLgoJKGV4cHJlc3Npb25fbWF5YmVfcmVnaXN0ZXIpOiBSZW1vdmUgY2FsbCB0byBmaW5kX2xpdF9zeW1fdHJhbnNsYXRpb24uCgkoaXNfZHVwbGljYXRlX2V4cHJlc3Npb24sIGNhY2hlX2xpdGVyYWwsIGlzX2R1cGxpY2F0ZV9saXRlcmFsLAoJYWRkX2xpdF9zeW1fdHJhbnNsYXRpb24sIGZpbmRfbGl0X3N5bV90cmFuc2xhdGlvbik6IERlbGV0ZS4KCjIwMDMtMDktMDcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBkb2MvYXMudGV4aW5mbyAoQ29tbWVudHMpOiBDb21tZW50IGNoYXJhY3RlciBmb3IgUFBDIGlzICMuCgoyMDAzLTA5LTA2ICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCglQUiBzYXZhbm5haC80MzU4OgoJKiBjb25maWcvdGMtbTY4aGMxMS5jIChzX202OGhjMTFfcmVsYXgpOiBVc2UgMiBmb3Igc2l6ZSB0byBhdm9pZAoJb3ZlcmZsb3cgY29tcGxhaW4uCgoyMDAzLTA5LTA1ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtZnJ2LmMgKG1kX3BjcmVsX2Zyb21fc2VjdGlvbik6IEhlZWQgVENfRk9SQ0VfUkVMT0NBVElPTi4KCjIwMDMtMDktMDQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtdjg1MC5jIChzZXRfbWFjaGluZSk6IEFjY2VwdCB2ODUwZTEgbWFjaGluZSBudW1iZXIuCgkobWRfcHNldWRvX3RhYmxlKTogQWRkIC52ODUwZTEgcHNldWRvIG9wLgoJKG1kX3Nob3dfdXNhZ2UpOiBEb2N1bWVudCAtbXY4NTBlMSBzd2l0Y2guCgkobWRfcGFyc2Vfb3B0aW9uKTogQWNjZXB0IC1tdjg1MGUxIHN3aXRjaC4KCShtZF9iZWdpbik6IEFsbG93IFRBUkdFVF9DUFUgdG8gYmUgdjg1MGUxLgoJKiBkb2MvYy12ODUwLnRleGk6IERvY3VtZW50IC1tdjg1MGUxIHN3aXRjaCBhbmQgLnY4NTBlMSBwc2V1ZG8gb3AuCgkqIE5FV1M6IE1lbnRpb24gc3VwcG9ydCBmb3Igdjg1MGUxLgoKMjAwMy0wOS0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAobWRfcGFyc2Vfb3B0aW9uKTogQWRkIFBQQ19PUENPREVfQU5ZIHRvIGV4aXN0aW5nCglwcGNfY3B1IHNlbGVjdGlvbiByYXRoZXIgdGhhbiByZXBsYWNpbmcuCgkocHBjX3NldF9jcHUpOiBJZ25vcmUgYW5kIHByZXNlcnZlIFBQQ19PUENPREVfQU5ZIGluIHBwY19jcHUuCgkobWRfYmVnaW4pOiBXaGVuIFBQQ19PUENPREVfQU5ZLCBpbnNlcnQgYWxsIG9wY29kZXMgaW4gcHBjX2hhc2guCgoyMDAzLTA5LTAzICBSb2JlcnQgTWlsbGFuICA8cm9iZXJ0bWhAZ251Lm9yZz4KCgkqIGNvbmZpZ3VyZS5pbjogTWF0Y2ggR05VL0tGcmVlQlNEIHdpdGggbmV3IGtmcmVlYnNkKi1nbnUKCXRyaXBsZXQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDMtMDktMDIgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogY29uZmlndXJlLmluOiBVcGRhdGUgQUNfUFJFUkVRIHRvIDIuNTcuICBVc2UgQUNfQ09ORklHX0ZJTEVTCglhbmQgQUNfQ09ORklHX0NPTU1BTkRTIGluc3RlYWQgb2YgdGhlIHRocmVlLWFyZ3VtZW50IEFDX09VVFBVVC4KCVNwZWNpZnkgQUNfQ09ORklHX0FVWF9ESVIuCgkqIGFjbG9jYWwubTQ6IFJlZ2VuZXJhdGVkIHdpdGggYWNsb2NhbC0xLjcuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZWQgd2l0aCBhdXRvY29uZiAyLjU3LgoJKiBNYWtlZmlsZS5pbiwgZG9jL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlZCB3aXRoIGF1dG9tYWtlLTEuNy4KCjIwMDMtMDgtMjkgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZHcyZ2VuY2ZpLmMgKGNmaV9wc2V1ZG9fdGFibGUpOiBBZGQgY2ZpX3dpbmRvd19zYXZlLgoJKGRvdF9jZmksIG91dHB1dF9jZmlfaW5zbik6IEhhbmRsZSBEV19DRkFfR05VX3dpbmRvd19zYXZlLgoJKG91dHB1dF9jaWUpOiBEb24ndCB1c2UgRFdfRUhfUEVfcGNyZWwgaWYgbmVpdGhlciBESUZGX0VYUFJfT0sKCW5vciB0Y19jZmlfZW1pdF9wY3JlbF9leHByIGFyZSBkZWZpbmVkLgoJKG91dHB1dF9mZGUpOiBVc2UgdGNfY2ZpX2VtaXRfcGNyZWxfZXhwciBpZiBhdmFpbGFibGUgYW5kCglESUZGX0VYUFJfT0sgaXMgbm90IGRlZmluZWQuCgkqIGNvbmZpZy90Yy1zcGFyYy5oIChUQVJHRVRfVVNFX0NGSVBPUCk6IERlZmluZS4KCSh0Y19jZmlfZnJhbWVfaW5pdGlhbF9pbnN0cnVjdGlvbnMsIHRjX3JlZ25hbWVfdG9fZHcycmVnbnVtLAoJdGNfY2ZpX2VtaXRfcGNyZWxfZXhwcik6IERlZmluZS4KCShzcGFyY19jZmlfZnJhbWVfaW5pdGlhbF9pbnN0cnVjdGlvbnMsIHNwYXJjX3JlZ25hbWVfdG9fZHcycmVnbnVtLAoJc3BhcmNfY2ZpX2VtaXRfcGNyZWxfZXhwcik6IE5ldyBwcm90b3R5cGVzLgoJKHNwYXJjX2NpZV9kYXRhX2FsaWdubWVudCk6IE5ldyBkZWNsLgoJKERXQVJGMl9ERUZBVUxUX1JFVFVSTl9DT0xVTU4sIERXQVJGMl9DSUVfREFUQV9BTElHTk1FTlQpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1zcGFyYy5jOiBJbmNsdWRlIGR3MmdlbmNmaS5oLgoJKHNwYXJjX2NpZV9kYXRhX2FsaWdubWVudCk6IE5ldyB2YXJpYWJsZS4KCShtZF9iZWdpbik6IEluaXRpYWxpemUgaXQuCgkoc3BhcmNfY2ZpX2ZyYW1lX2luaXRpYWxfaW5zdHJ1Y3Rpb25zKTogTmV3IGZ1bmN0aW9uLgoJKHNwYXJjX3JlZ25hbWVfdG9fZHcycmVnbnVtKTogTGlrZXdpc2UuCgkoc3BhcmNfY2ZpX2VtaXRfcGNyZWxfZXhwcik6IExpa2V3aXNlLgoJKiBkb2MvYXMudGV4aW5mbzogRG9jdW1lbnQgLmNmaV93aW5kb3dfc2F2ZS4KCgkqIGNvbmZpZy90Yy1zcGFyYy5jIChzX2NvbW1vbik6IENhc3QgbGFzdCBhcmd1bWVudCB0byBsb25nIGFuZAoJY2hhbmdlIGZvcm1hdCBzdHJpbmcgdG8gc2h1dCB1cCB3YXJuaW5nLgoKMjAwMy0wOC0yNSAgSmFzb24gRWNraGFyZHQgIDxqbGVAcmljZS5lZHU+CgoJKiBkb2MvYy1pODYwLnRleGk6IFVwZGF0ZSB0ZXh0IGFib3V0IHJlbG9jYXRhYmxlIGFkZHJlc3MgZXhwYW5zaW9ucy4KCjIwMDMtMDgtMjQgIEphc29uIEVja2hhcmR0ICA8amxlQHJpY2UuZWR1PgoKCSogY29uZmlnL3RjLWk4NjAuYyAobWRfYXNzZW1ibGUpOiBVc2UgaXNyYzIgZnJvbSB0aGUgb3JpZ2luYWwKCWluc3RydWN0aW9uIHdoZW4gZXhwYW5kaW5nIEVfQUREUi4KCjIwMDMtMDgtMjEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby90ci5wbzogVXBkYXRlZCBUdXJraXNoIHRyYW5zbGF0aW9uLgoKMjAwMy0wOC0yMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAobWRfcGFyc2Vfb3B0aW9uKTogQWRkIFBQQ19PUENPREVfSVNFTCBhbmQKCVBQQ19PUENPREVfUkZNQ0kgdG8gLW00NDAgc2VsZWN0ZWQgcHBjX2NwdS4KCjIwMDMtMDgtMTkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtYXJtLmMgKGNwX2FkZHJlc3NfcmVxdWlyZWRfaGVyZSk6IEFkZCBjb2RlIHRvIGhhbmRsZQoJdW5pbmRleGVkIGFkZHJlc3NpbmcgbW9kZS4KCjIwMDMtMDgtMTkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtcHBjLmMgKG1kX3BhcnNlX29wdGlvbik6IEhhbmRsZSAtbTQ0MC4KCShtZF9zaG93X3VzYWdlKTogQWRkIC1tNDQwLgoJKG1kX2FwcGx5X2ZpeDMpOiBXYXJuaW5nIGZpeC4KCSogZG9jL2MtcHBjLnRleGk6IERvY3VtZW50IC1tNDQwLgoKMjAwMy0wOC0xNiAgQmVuamFtaW4gS2FseXR0YSAgPGJrYXVzYmtAd2ViLmRlPgoKCSogcmVhZC5jIChzX3ByaW50KTogQ2hlY2sgZm9yIE5VTEwuCgoyMDAzLTA4LTE2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogd3JpdGUuYyAoZml4dXBfc2VnbWVudCk6IFdoZW4gaGFuZGxpbmcgYW4gZXhwcmVzc2lvbiBpbnZvbHZpbmcKCXRoZSBzdWJ0cmFjdGlvbiBvZiB0d28gc3ltYm9scyBpbiB0aGUgc2FtZSBzZWdtZW50LCBkb24ndCBjbGVhcgoJZnhfcGNyZWwgZXhjZXB0IGZvciBUQ19NNjhLLgoKMjAwMy0wOC0xNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1pMzg2Lmg6IFJlbW92ZSBCRkRfQVNTRU1CTEVSIHRlc3RzIGFuZCBhbGwgIUJGRF9BU1NFTUJMRVIKCWNvZGUuCgkqIGNvbmZpZy90Yy1pMzg2LmM6IExpa2V3aXNlLgoJKFJFTE9DX0VOVU0pOiBEb24ndCBkZWZpbmUuICBSZXBsYWNlIHRocm91Z2hvdXQgd2l0aCBlbnVtLgoKCSogZGVwLWluLnNlZDogUmVtb3ZlIGxpYmludGwuaC4gIElnbm9yZSBpbmNsdWRlL2ZvcGVuLSouaAoJKiBNYWtlZmlsZS5hbSAoUE9URklMRVMuaW4pOiBVbnNldCBMQ19DT0xMQVRFLgoJUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0wOC0wOCAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIGNvbmZpZy90Yy1tNjhrLmggKFRBUkdFVF9VU0VfQ0ZJUE9QKQoJKERXQVJGMl9ERUZBVUxUX1JFVFVSTl9DT0xVTU4sIERXQVJGMl9DSUVfREFUQV9BTElHTk1FTlQpCgkodGNfcmVnbmFtZV90b19kdzJyZWdudW0sIHRjX2NmaV9mcmFtZV9pbml0aWFsX2luc3RydWN0aW9ucyk6CglEZWZpbmUuCgkqIGNvbmZpZy90Yy1tNjhrLmM6IEluY2x1ZGUgImR3MmdlbmNmaS5oIi4KCSh0Y19tNjhrX3JlZ25hbWVfdG9fZHcycmVnbnVtKQoJKHRjX202OGtfZnJhbWVfaW5pdGlhbF9pbnN0cnVjdGlvbnMpOiBOZXcgZnVuY3Rpb25zLgoKMjAwMy0wOC0wOCBEbWl0cnkgRGlreSA8ZGl3aWxAbWFpbC5ydT4KCgkqIGNvbmZpZy90Yy1tc3A0MzAuYzogQWRkIHhXNDIgYW5kIHhFNDIgcGFydHMuIFNvcnQgTVBVIGxpc3QKCWFjY29yZGluZyB0byBnY2Mgb3JkZXIuCgoyMDAzLTA4LTA3ICBKYXNvbiBFY2toYXJkdCAgPGpsZUByaWNlLmVkdT4KCgkqIGNvbmZpZy90Yy1pODYwLmMgKGk4NjBfY2hlY2tfbGFiZWwpOiBOZXcgZnVuY3Rpb24uCgkqIGNvbmZpZy90Yy1pODYwLmggKGk4NjBfY2hlY2tfbGFiZWwpOiBOZXcgcHJvdG90eXBlLgoJKHRjX2NoZWNrX2xhYmVsKTogRGVmaW5lIG1hY3JvIGFzIGk4NjBfY2hlY2tfbGFiZWwuCgoyMDAzLTA4LTA2ICBKYXNvbiBFY2toYXJkdCAgPGpsZUByaWNlLmVkdT4KCgkqIGNvbmZpZy90Yy1pODYwLmMgKHNfYWxpZ25fd3JhcHBlcik6IE5ldyBmdW5jdGlvbiBhbmQgcHJvdG90eXBlLgoJKG1kX3BzZXVkb190YWJsZSk6IENoYW5nZSBzX2FsaWduX2J5dGVzIHRvIHNfYWxpZ25fd3JhcHBlciwgcmVtb3ZlCglzdXJyb3VuZGluZyBPQkpfRUxGIGlmZGVmLCBhbmQgcmUtZm9ybWF0IHNsaWdodGx5LgoJKiBkb2MvYy1pODYwLnRleGk6IERvY3VtZW50IHRoZSBzcGVjaWFsIC5hbGlnbiBzeW50YXggYXZhaWxhYmxlCglpbiBJbnRlbCBtb2RlLgoKMjAwMy0wOC0wNiAgSmFzb24gRWNraGFyZHQgIDxqbGVAcmljZS5lZHU+CgoJKiBjb25maWcvdGMtaTg2MC5jIChpODYwX2hhbmRsZV9hbGlnbik6IE5ldyBmdW5jdGlvbi4KCSogY29uZmlnL3RjLWk4NjAuaCAoSEFORExFX0FMSUdOKTogRGVmaW5lIG1hY3JvLgoJKE1BWF9NRU1fRk9SX1JTX0FMSUdOX0NPREUpOiBEZWZpbmUgbWFjcm8uCgoyMDAzLTA4LTA2ICBKYXNvbiBFY2toYXJkdCAgPGpsZUByaWNlLmVkdT4KCgkqIGNvbmZpZy90Yy1pODYwLmMgKGk4NjBfcHJvY2Vzc19pbnNuKTogQ2hlY2sgdGhhdCBpbnN0cnVjdGlvbnMKCXdpdGggdGhlaXIgZHVhbC1iaXQgc2V0IGFyZSA4LWJ5dGUgYWxpZ25lZC4KCjIwMDMtMDgtMDYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9mci5wbzogVXBkYXRlZCBGcmVuY2ggdHJhbnNsYXRpb24uCgoyMDAzLTA4LTA1ICBKYXNvbiBFY2toYXJkdCAgPGpsZUByaWNlLmVkdT4KCgkqIGNvbmZpZy90Yy1pODYwLmMgKGk4NjBfcHJvY2Vzc19pbnNuKTogRG9uJ3QgaGFuZGxlIGR1YWwtYml0CglzZXR0aW5nIGR1cmluZyBmbG9wIGFyZ3VtZW50IHBhcnNpbmcuICBJbnN0ZWFkLCBkbyBpdCBhZnRlcgoJaW5zdHJ1Y3Rpb24gaXMgZnVsbHkgcGFyc2VkLgoKMjAwMy0wOC0wNSAgSmFzb24gRWNraGFyZHQgIDxqbGVAcmljZS5lZHU+CgoJKiBkb2MvYy1pODYwLnRleGk6IE1lbnRpb24gdGhhdCAuZHVhbCwgLmVuZGR1YWwsIGFuZCAuYXRtcAoJZGlyZWN0aXZlcyBhcmUgb25seSBhdmFpbGFibGUgaW4gSW50ZWwgc3ludGF4IG1vZGUuCgoyMDAzLTA4LTA1ICBKYXNvbiBFY2toYXJkdCAgPGpsZUByaWNlLmVkdT4KCgkqIGNvbmZpZy90Yy1pODYwLmMgKHNfZHVhbCk6IEFjY2VwdCAuZHVhbCBkaXJlY3RpdmUgb25seSBpbgoJdGhlIEludGVsIHN5bnRheCBtb2RlLgoJKHNfZW5kZHVhbCk6IExpa2V3aXNlIGZvciAuZW5kZHVhbC4KCShzX2F0bXApOiBMaWtld2lzZSBmb3IgLmF0bXAuCgoyMDAzLTA4LTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWkzODYuYyAoaTM4Nl9pbnRlbF9vcGVyYW5kKTogQWx3YXlzIGNhbGwgaTM4Nl9pbmRleF9jaGVjawoJZm9yIG1lbW9yeSBvcGVyYW5kcy4gIFBhc3MgdGhlIGZ1bGwgb3BlcmFuZF9zdHJpbmcgdG8gaTM4Nl9pbmRleF9jaGVjay4KCjIwMDMtMDgtMDEgIEphc29uIEVja2hhcmR0ICA8amxlQHJpY2UuZWR1PgoKCSogY29uZmlnL3RjLWk4NjAuYzogUmVtb3ZlIFNZTlRBWF9TVlI0IG1hY3JvIGFuZCBvY2N1cnJlbmNlcy4KCSh0YXJnZXRfaW50ZWxfc3ludGF4KTogRGVjbGFyZSB2YXJpYWJsZS4KCShPUFRJT05fSU5URUxfU1lOVEFYKTogRGVjbGFyZSBtYWNyby4KCShtZF9sb25nb3B0cyk6IEFkZCBvcHRpb24gLW1pbnRlbC1zeW50YXguCgkobWRfcGFyc2Vfb3B0aW9uKTogU2V0IHRhcmdldF9pbnRlbF9zeW50YXguCgkobWRfc2hvd191c2FnZSk6IEFkZCAtbWludGVsLXN5bnRheCB1c2FnZS4KCShtZF9iZWdpbik6IFNldCByZWdfcHJlZml4IGJhc2VkIG9uIHRhcmdldF9pbnRlbF9zeW50YXguCgkoaTg2MF9wcm9jZXNzX2luc24pOiBTa2lwIHJlZ2lzdGVyIHByZWZpeCBvbmx5IGlmIHRoZXJlIGlzIG9uZS4KCVBhcnNlIHJlbG9jYXRhYmxlIGV4cHJlc3Npb25zIGluIGVpdGhlciBJbnRlbCBvciBBVCZUIHN5bnRheCBiYXNlZAoJb24gdGFyZ2V0X2ludGVsX3N5bnRheCBpbnN0ZWFkIG9mIHRoZSBTWU5UQVhfU1ZSNCBtYWNyby4KCSogZG9jL2MtaTg2MC50ZXhpOiBEb2N1bWVudCAtbWludGVsLXN5bnRheCBvcHRpb24gYW5kIGdpdmUgYmx1cmIKCWFib3V0IHRoZSBkaWZmZXJlbmNlcyBpbiBzeW50YXguCgoyMDAzLTA4LTAxICBEbWl0cnkgRGlreSAgPGRpd2lsQG1haWwucnU+CgoJKiBjb25maWcvdGMtbXNwNDMwLmMgKG1zcDQzMF9zcmNvcGVyYW5kKTogRXh0ZW5kICdwdXNoJyBidWcgd29ya2Fyb3VuZAoJdG8gYWxsIGFyY2hlcy4KCjIwMDMtMDctMzAgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tPgoKCSogY29uZmlnL3RjLXNoLmMgKG1kX2Fzc2VtYmxlKTogRm9yIGJyYW5jaGVzLCBjaGVjayAmIHVwZGF0ZQoJdmFsaWRfYXJjaCBoZXJlLgoKMjAwMy0wNy0zMCAgSmFzb24gRWNraGFyZHQgIDxqbGVAcmljZS5lZHU+CgoJKiBjb25maWcvdGMtaTg2MC5jOiBDb252ZXJ0IHRvIElTTyBDOTAuCgoyMDAzLTA3LTMwICBSYWluZXIgT3J0aCAgPHJvQFRlY2hGYWsuVW5pLUJpZWxlZmVsZC5ERT4KCgkqIHJlYWQuYyAoc19zcGFjZSk6IFJldmVydCAyMDAzLTA3LTI4IGNoYW5nZS4KCjIwMDMtMDctMzAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvb2JqLWVsZi5jIChvYmpfZWxmX2NoYW5nZV9zZWN0aW9uKTogQWxsb3cgIngiIGZvciAubm90ZSouCgoyMDAzLTA3LTI5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLXNoLmMgKHRjX2dlbl9yZWxvYyk6IFRlc3QgZm9yIFJfU0hfSU5EMTJXIG9ubHkgd2hlbiBFTEYuCgoyMDAzLTA3LTI5ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAobWRfYXBwbHlfZml4Myk6IEZpeCBjaGVjayBmb3IgbHEgaW5zbnMuCgoyMDAzLTA3LTI4ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvb2JqLWVsZi5jIChvYmpfZWxmX3NlY3Rpb25fdHlwZSk6IEFsc28gYWNjZXB0ICJub3RlIi4KCjIwMDMtMDctMjggIFJhaW5lciBPcnRoICA8cm9AVGVjaEZhay5VbmktQmllbGVmZWxkLkRFPgoKCSogcmVhZC5jIChzX3NwYWNlKTogRG9uJ3Qgd2FybiBhYm91dCAuc3BhY2UgMC4KCjIwMDMtMDctMjggIFJhaW5lciBPcnRoICA8cm9AVGVjaEZhay5VbmktQmllbGVmZWxkLkRFPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19mbGFnX3Bkcik6IERlZmluZS4KCShtZF9iZWdpbikgW09CSl9FTEZdOiBVc2UgaXQgdG8gY29udHJvbCAucGRyIGNyZWF0aW9uLgoJKHNfbWlwc19lbmQpIFtPQkpfRUxGXTogTGlrZXdpc2UuCgkobWRfbG9uZ29wdHMpIFtPQkpfRUxGXTogRGVmaW5lIE9QVElPTl9QRFIsIE9QVElPTl9OT19QRFIuCgkobWRfcGFyc2Vfb3B0aW9uKSBbT0JKX0VMRl06IEhhbmRsZSB0aGVtLgoJKG1kX3Nob3dfdXNhZ2UpIFtPQkpfRUxGXTogRG9jdW1lbnQgLW1wZHIsIC1tbm8tcGRyLgoKCSogZG9jL2MtbWlwcy50ZXhpIChNSVBTIE9wdHMpOiBEb2N1bWVudCAtbXBkciwgLW1uby1wZHIuCgkqIGRvYy9hcy50ZXhpbmZvIChPdmVydmlldykgW01JUFNdOiBMaWtld2lzZS4KCjIwMDMtMDctMjUgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy9vYmotZWxmLmMgKG9ial9lbGZfY2hhbmdlX3NlY3Rpb24pOiBVcGRhdGUKCWVsZl9zZWN0aW9uX3R5cGUgYW5kIGVsZl9zZWN0aW9uX2ZsYWdzIG9ubHkgd2hlbiB0aGV5IGFyZQoJc3BlY2lmaWVkLgoKMjAwMy0wNy0yNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL29iai1lbGYuYyAob2JqX2VsZl9jaGFuZ2Vfc2VjdGlvbik6IEFsd2F5cyBzZXQgc2VjdGlvbgoJdHlwZSBhbmQgZmxhZ3MuCgoyMDAzLTA3LTI1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvb2JqLWVsZi5jIChzcGVjaWFsX3NlY3Rpb25zKTogUmVtb3ZlZC4KCShvYmpfZWxmX2NoYW5nZV9zZWN0aW9uKTogQ2FsbCBfYmZkX2VsZl9nZXRfc2VjX3R5cGVfYXR0ci4gU2V0CgllbGZfc2VjdGlvbl90eXBlIGFuZCBlbGZfc2VjdGlvbl9mbGFncy4KCShlbGZfZnJvYl9maWxlKTogU2V0IFNIVF9HUk9VUC4KCgkqIGNvbmZpZy9vYmotZWxmLmggKG9ial9zZWNfc2V0X3ByaXZhdGVfZGF0YSk6IE5ldy4KCgkqIGNvbmZpZy90Yy1hbHBoYS5oIChFTEZfVENfU1BFQ0lBTF9TRUNUSU9OUyk6IFJlbW92ZWQuCgkqIGNvbmZpZy90Yy1pYTY0Lmg6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbTMyci5oOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW02OGhjMTEuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1tY29yZS5oOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW1pcHMuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1wcGMuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1zaDY0Lmg6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtdjg1MC5oOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXh0ZW5zYS5oOiBMaWtld2lzZS4KCgkqIGNvbmZpZy90Yy12ODUwLmggKFNIRl9WODUwX0dQUkVMKTogUmVtb3ZlZC4KCShTSEZfVjg1MF9FUFJFTCk6IExpa2V3aXNlLgoJKFNIRl9WODUwX1IwUkVMKTogTGlrZXdpc2UuCgoJKiBzdWJzZWdzLmMgKHN1YnNlZ19nZXQpOiBDYWxsIG9ial9zZWNfc2V0X3ByaXZhdGVfZGF0YSBpZiBpdAoJaXMgZGVmaW5lZC4KCjIwMDMtMDctMjQgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogY29uZmlnL3RjLW02OGhjMTEuaCAoRFdBUkYyX0FERFJfU0laRSk6IFVzZSAzMi1iaXQgYWRkcmVzcyBmb3IKCWRlYnVnZ2luZyBzeW1ib2xzIHNvIHRoYXQgd2UgaGFuZGxlIHBhZ2UgbWVtb3J5IGNvcnJlY3RseS4KCjIwMDMtMDctMjQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9mci5wbzogVXBkYXRlZCBGcmVuY2ggdHJhbnNsYXRpb24uCgoyMDAzLTA3LTIzICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYyAoYXJtX2FyY2hzKTogQWRkIGl3bW14dC4KCjIwMDMtMDctMjIgIEguSi4gTHUgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogcmVhZC5jIChkb19wYXJzZV9jb25zX2V4cHJlc3Npb24pOiBNYXJrIG5ieXRlcyB1bnVzZWQgdG8KCXNpbGVuY2UgZ2NjLgoKMjAwMy0wNy0yMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtaDgzMDAuYyAoZ2V0X3NwZWNpZmljKTogTm8gUENSRUw4IGVuY29kaW5nIGZvciBic3IvYmMKCW9yIGJzci9icy4KCgkqIGNvbmZpZy90Yy1oODMwMC5jIChtZF9hc3NlbWJsZSk6IE1ha2Ugc3VyZSBjaGFyYWN0ZXJzIGFmdGVyCglzbGFzaCBhbmQgZG90IGFyZSBsb3dlci1jYXNlLgoKMjAwMy0wNy0xNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL2VzLnBvOiBOZXcgU3BhbmlzaCB0cmFuc2xhdGlvbi4KCSogcG8vdHIucG86IE5ldyBUdXJraXNoIHRyYW5zbGF0aW9uLgoJKiBwby9vcGNvZGVzLnBvdDogUmVnZW5lcmF0ZS4KCjIwMDMtMDctMTYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkd2FyZjJkYmcuYyAoZ2V0X2ZyYWdfZml4KTogUmV2ZXJ0IDIwMDEtMTEtMTUgY2hhbmdlLgoJKGdlbmVyaWNfZHdhcmYyX2VtaXRfb2Zmc2V0KTogRG9uJ3QgZGVmaW5lIGZ1bmN0aW9uIHdoZW4KCVRDX19EV0FSRjJfRU1JVF9PRkZTRVQgaXMgZGVmaW5lZC4KCjIwMDMtMDctMTUgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKGhpbG9faW50ZXJsb2Nrcyk6IFRydWUgZm9yIENQVV9STTcwMDAuCgkobWlwc19jcHVfaW5mb190YWJsZSk6IEFkZCBybTcwMDAgYW5kIHJtOTAwMCBlbnRyaWVzLgoJKiBkb2MvYy1taXBzLnRleGk6IERvY3VtZW50IC1tYXJjaD1ybTkwMDAuCgoyMDAzLTA3LTE1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLXY4NTAuYyAobWRfYXNzZW1ibGUpOiBXaGVuIG5vIHJlbG9jLCBjcmVhdGUgcGNyZWwgZml4dXBzCglvbmx5IGZvciBWODUwX09QRVJBTkRfRElTUCBvcGVyYW5kcy4KCjIwMDMtMDctMTUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBmcmFncy5jIChmcmFnX21vcmUpOiBNb3ZlIHNlZ21lbnQgY2hlY2tzIHRvLi4KCShmcmFnX2FsbG9jX2NoZWNrKTogLi5oZXJlLiAgTmV3IGZ1bmN0aW9uLgoJKGZyYWdfYXBwZW5kXzFfY2hhcik6IENhbGwgZnJhZ19hbGxvY19jaGVjay4KCjIwMDMtMDctMTQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby90ci5wbzogVXBkYXRlIHdpdGggbGF0ZXN0IHZlcnNpb24uCgkqIHBvL1BPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoJKiBwby9nYXMucG90OiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAzLTA3LTE0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWlwMmsuYzogUmVtb3ZlIGluY2x1c2lvbiBvZiA8Y3R5cGUuaD4KCSogY29uZmlnL3RjLXRpYzR4LmM6IFJlcGxhY2UgaW5jbHVzaW9uIG9mIDxjdHlwZS5oPiB3aXRoCgkic2FmZS1jdHlwZS5oIiBhbmQgdXBkYXRlIHVzZSBvZiBtYWNyb3MuCgkqIE1ha2VmaWxlLmFtOiBVcGRhdGUgZGVwZW5kZW5jaWVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMDctMTEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBwby9nYXMucG90OiBSZWdlbmVyYXRlLgoKMjAwMy0wNy0xMCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtcHBjLmggKERXQVJGMl9MSU5FX01JTl9JTlNOX0xFTkdUSCk6IERlZmluZSBhbHdheXMuCgkoVEFSR0VUX1VTRV9DRklQT1AsIHRjX2NmaV9mcmFtZV9pbml0aWFsX2luc3RydWN0aW9ucywKCXRjX3JlZ25hbWVfdG9fZHcycmVnbnVtLCBEV0FSRjJfREVGQVVMVF9SRVRVUk5fQ09MVU1OLAoJRFdBUkYyX0NJRV9EQVRBX0FMSUdOTUVOVCk6IERlZmluZS4KCShwcGNfY2ZpX2ZyYW1lX2luaXRpYWxfaW5zdHJ1Y3Rpb25zLCB0Y19wcGNfcmVnbmFtZV90b19kdzJyZWdudW0pOiBOZXcKCXByb3RvdHlwZXMuCgkocHBjX2NpZV9kYXRhX2FsaWdubWVudCk6IERlY2xhcmUuCgkqIGNvbmZpZy90Yy1wcGMuYzogSW5jbHVkZSBkdzJnZW5jZmkuaC4KCShwcGNfY2llX2RhdGFfYWxpZ25tZW50KTogRGVmaW5lLgoJKG1kX2JlZ2luKTogSW5pdGlhbGl6ZSBwcGNfY2llX2RhdGFfYWxpZ25tZW50LgoJKHBwY19jZmlfZnJhbWVfaW5pdGlhbF9pbnN0cnVjdGlvbnMsIHRjX3BwY19yZWduYW1lX3RvX2R3MnJlZ251bSk6IE5ldwoJZnVuY3Rpb25zLgoJKiBjb25maWcvdGMtczM5MC5oIChEV0FSRjJfTElORV9NSU5fSU5TTl9MRU5HVEgpOiBEZWZpbmUgYWx3YXlzLgoJKFRBUkdFVF9VU0VfQ0ZJUE9QLCB0Y19jZmlfZnJhbWVfaW5pdGlhbF9pbnN0cnVjdGlvbnMsCgl0Y19yZWduYW1lX3RvX2R3MnJlZ251bSwgRFdBUkYyX0RFRkFVTFRfUkVUVVJOX0NPTFVNTiwKCURXQVJGMl9DSUVfREFUQV9BTElHTk1FTlQpOiBEZWZpbmUuCgkoczM5MF9jZmlfZnJhbWVfaW5pdGlhbF9pbnN0cnVjdGlvbnMsIHRjX3MzOTBfcmVnbmFtZV90b19kdzJyZWdudW0pOgoJTmV3IHByb3RvdHlwZXMuCgkoczM5MF9jaWVfZGF0YV9hbGlnbm1lbnQpOiBEZWNsYXJlLgoJKiBjb25maWcvdGMtczM5MC5jOiBJbmNsdWRlIGR3MmdlbmNmaS5oLgoJKHMzOTBfY2llX2RhdGFfYWxpZ25tZW50KTogRGVmaW5lLgoJKG1kX2JlZ2luKTogSW5pdGlhbGl6ZSBzMzkwX2NpZV9kYXRhX2FsaWdubWVudC4KCShzMzkwX2NmaV9mcmFtZV9pbml0aWFsX2luc3RydWN0aW9ucywgdGNfczM5MF9yZWduYW1lX3RvX2R3MnJlZ251bSk6CglOZXcgZnVuY3Rpb25zLgoKMjAwMy0wNy0xMCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJMjAwMi0xMi0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1tbjEwMzAwLmggKEVYVEVSTl9GT1JDRV9SRUxPQyk6IERvbid0IGRlZmluZSB0byB6ZXJvLgoJMjAwMS0wNS0wOSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGNvbmZpZ3VyZS5pbiAoYW0zM18yLjAsIG1uMTAzMDAtKi1saW51eCopOiBBZGRlZC4KCSogY29uZmlndXJlOiBSZWJ1aWx0LgoJKiBjb25maWcvdGMtbW4xMDMwMC5oIChUQVJHRVRfRk9STUFUKSBbVEVfTElOVVhdOiBEZWZpbmUgdG8KCWVsZjMyLWFtMzNsaW4uCgkqIGNvbmZpZy90Yy1tbjEwMzAwLmMgKG1kX2JlZ2luKSBbVEVfTElOVVhdOiBDaG9vc2UgQU0zMy8yLjAKCWJ5IGRlZmF1bHQuCgoyMDAzLTA3LTA5ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkyMDAzLTAyLTI1ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogY29uZmlnL3RjLW1uMTAzMDAuYyAobW4xMDMwMF9jaGVja19maXh1cCk6IFNldCBHT1RfUENSRUwgdHlwZQoJZm9yIHN1YnRyYWN0cyBmcm9tIEdMT0JBTF9PRkZTRVRfVEFCTEUgdGhhdCBjb3VsZCBub3QgYmUKCXNpbXBsaWZpZWQuCgkyMDAyLTA3LTE4ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogY29uZmlnL3RjLW1uMTAzMDAuYyAobW4xMDMwMF9jaGVja19maXh1cCk6IEFjY2VwdCBzdWJ0cmFjdHMgdGhhdAoJY291bGQgbm90IGJlIHNpbXBsaWZpZWQuCgkodGNfZ2VuX3JlbG9jKTogVHVybiBhbiBhYnNvbHV0ZSBmeF9zdWJzeSBpbnRvIHBhcnQgb2YgZnhfb2Zmc2V0LgoJMjAwMS0xMS0wNCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1tbjEwMzAwLmggKFRDX1JFTE9DX1JUU1lNX0xPQ19GSVhVUCk6IERvbid0IGFkanVzdAoJQkRGX1JFTE9DX01OMTAzMDBfR09UMzIuCgkqIGNvbmZpZy90Yy1tbjEwMzAwLmMgKG1uMTAzMDBfZml4X2FkanVzdGFibGUpOiBJZgoJVENfUkVMT0NfUlRTWU1fTE9DX0ZJWFVQIGRvZXNuJ3QgaG9sZCwgaXQncyBub3QgYWRqdXN0YWJsZS4KCTIwMDEtMDUtMDkgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBjb25maWcvdGMtbW4xMDMwMC5jIChtbjEwMzAwX3BhcnNlX25hbWUpOiBEb24ndCByZXR1cm4gYQoJc3ltYm9sIGlmIHdlIGtub3cgaXRzIHZhbHVlLgoJMjAwMS0wNS0wOSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1tbjEwMzAwLmggKEdMT0JBTF9PRkZTRVRfVEFCTEVfTkFNRSk6IFJlbW92ZQoJZHVwbGljYXRlIHVuZGVyc2NvcmUgcHJlZml4LgoJMjAwMS0wNS0wOSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1tbjEwMzAwLmMgKG1uMTAzMDBfcGFyc2VfbmFtZSk6IFN0b3JlIHJlbG9jYXRpb24KCXR5cGUgaW4gWF9tZCwgbm90IFhfYWRkX251bWJlci4gIFplcm8gWF9hZGRfbnVtYmVyLgoJKG1uMTAzMDBfY2hlY2tfZml4dXApOiBFeHRyYWN0IHJlbG9jYXRpb24gdHlwZSBmcm9tIFhfbWQuCgkqIGNvbmZpZy90Yy1tbjEwMzAwLmg6IFVwZGF0ZSBjb21tZW50LgoJMjAwMS0wNC0xNCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1tbjEwMzAwLmggKE9fR09UT0ZGLCBPX1BMVCwgT19HT1QpOiBSZXBsYWNlIHdpdGguLi4KCShPX1BJQ19yZWxvYyk6IHRoaXMuCgkqIGNvbmZpZy90Yy1tbjEwMzAwLmMgKG1uMTAzMDBfUElDX3JlbGF0ZWRfcCk6IFVzZSBpdC4KCShtbjEwMzAwX2NoZWNrX2ZpeHVwKTogTGlrZXdpc2UuCgkobW4xMDMwMF9wYXJzZV9uYW1lKTogU2V0IFhfYWRkX251bWJlciB0byByZWxvY2F0aW9uIHR5cGUuCgkqIGNvbmZpZy90Yy1tbjEwMzAwLmggKERJRkZfRVhQUl9PSywgR0xPQkFMX09GRlNFVF9UQUJMRV9OQU1FLAoJVENfUkVMT0NfUlRTWU1fTE9DX0ZJWFVQLCBtZF9wYXJzZV9uYW1lLCBUQ19DT05TX0ZJWF9ORVcsCglPX0dPVE9GRiwgT19QTFQsIE9fR09UKTogRGVmaW5lLgoJKiBjb25maWcvdGMtbW4xMDMwMC5jIChtbjEwMzAwX1BJQ19yZWxhdGVkX3ApOiBOZXcgZm4uCgkobW4xMDMwMF9jaGVja19maXh1cCk6IE5ldyBmbi4KCShtZF9hc3NlbWJsZSk6IENhbGwgaXQuICBDaGVjayBmb3IgUElDLXJlbGF0ZWQgcmVsb2NzLgoJKG1uMTAzMDBfY29uc19maXhfbmV3KTogTGlrZXdpc2UuICBOZXcgZm4uCgkobW4xMDMwMF9lbmRfb2ZfbWF0Y2gpOiBOZXcgZm4uCgkobW4xMDMwMF9tZF9wYXJzZV9uYW1lX2NvbnQpOiBOZXcgZm4uCgoyMDAzLTA3LTA5ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkyMDAwLTA1LTI1ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAY3lnbnVzLmNvbT4KCSogY29uZmlnL3RjLW1uMTAzMDAuYyAobW4xMDMwMF9pbnNlcnRfb3BlcmFuZCk6IE5lZ2F0ZSBuZWdhdGl2ZQoJYWNjdW11bGF0b3IncyBzaGlmdC4KCTIwMDAtMDUtMDggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUBjeWdudXMuY29tPgoJKiBjb25maWcvdGMtbW4xMDMwMC5jIChtZF9yZWxheF90YWJsZSwgbWRfY29udmVydF9mcmFnLAoJbWRfYXNzZW1ibGUsIG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogSGFuZGxlIGZiQ0MuCgkyMDAwLTA0LTIwICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAY3lnbnVzLmNvbT4KCSogY29uZmlnL3RjLW1uMTAzMDAuYyAoSEFWRV9BTTMzKTogUmVkZWZpbmUgaW4gdGVybXMgb2YKCUhBVkVfQU0zM18yLgoJMjAwMC0wNC0wMyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQGN5Z251cy5jb20+CgkqIGNvbmZpZy90Yy1tbjEwMzAwLmMgKG1kX3BzZXVkb190YWJsZSk6IFVzZSBBTTMzXzIgY29uc3RhbnQuCgkoSEFWRV9BTTMzKTogTWF0Y2ggQU0zM18yIHRvby4KCShIQVZFX0FNMzNfMik6IE5ldyBtYWNyby4KCShtZF9hc3NlbWJsZSk6IFVzZSBpdC4gIE1hdGNoIDIuMCByZWdpc3RlcnMgb25seSBpZiBIQVZFX0FNMzNfMi4KCTIwMDAtMDQtMDEgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUBjeWdudXMuY29tPgoJKiBjb25maWcvdGMtbW4xMDMwMC5jIChtZF9wc2V1ZG9fdGFibGUpOiBBZGRlZCBgYW0zM18yJy4KCShmbG9hdF9yZWdpc3RlcnMsIGRvdWJsZV9yZWdpc3RlcnMpOiBOZXcgdmFyaWFibGVzLgoJKGZsb2F0X3JlZ2lzdGVyX25hbWUsIGRvdWJsZV9yZWdpc3Rlcl9uYW1lKTogTmV3IGZ1bmN0aW9ucy4KCShtZF9hc3NlbWJsZSk6IFJlY29nbml6ZSBGUCByZWdpc3RlcnMuICBJbXBsZW1lbnQgRk1UX0QzLgoJKG1uMTAzMDBfaW5zZXJ0X29wZXJhbmQpOiBTdXBwb3J0IEZQIHJlZ2lzdGVycy4KCjIwMDMtMDctMDggIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzX3ZhbGlkYXRlX2ZpeCk6IERvIG5vdCB3YXJuIGFib3V0IGJyYW5jaAoJdGFyZ2V0IGJlaW5nIGEgZ2xvYmFsIHN5bWJvbCBpZiBub3QgY29tcGlsaW5nIFNWUjQgUElDIGNvZGUuCgoyMDAzLTA3LTA3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZG9jL2MtbTMyci50ZXhpIChNMzJSLURpcmVjdGl2ZXMpOiBOZXcgbm9kZS4gIERvY3VtZW50IHRoZQoJLmhpZ2gsIC5zaGlnaCBhbmQgLmxvdyBkaXJlY3RpdmVzLgoKMjAwMy0wNy0wNyAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWg4MzAwLmMgKGg4MzAwc3hubW9kZSk6IEFkZCBwcm90b3R5cGUuCgkoRFNZTU1PREUpOiBSZW1vdmUuCgkocGFyc2VfZXhwKTogUmVwbGFjZSBleHByZXNzaW9uUyBhcmd1bWVudCB3aXRoIGEgaDhfb3AuICBQYXJzZSB0aGUKCW9wZXJhbmQgc2l6ZSBhcyB3ZWxsLgoJKHNraXBfY29sb250aGluZyk6IFJlbW92ZSB1bnVzZWQgZXhwcmVzc2lvbiBhcmd1bWVudC4gIFRpZ2h0ZW4gY2hlY2tzCglmb3IgMi1kaWdpdCBzaXplcy4KCShjb2xvbm1vZDI0KTogUmVtb3ZlLgoJKGdldF9tb3ZhX29wZXJhbmRzKTogQ29tYmluZSBjYWxscyB0byBwYXJzZV9leHAgYW5kIHNraXBfY29sb250aGluZy4KCShnZXRfb3BlcmFuZCk6IExpa2V3aXNlLiAgVXNlIHRoZSBzdGFuZGFyZCBjb2RlIHRvIHJlYWQgdGhlIHNpemUgb2YKCXBjLXJlbGF0aXZlIG9wZXJhbmRzLgoJKGZpeF9vcGVyYW5kX3NpemUpOiBJbmNsdWRlIHRoZSBzaXplLWd1ZXNzaW5nIGxvZ2ljIHRoYXQgdXNlZCB0byBiZQoJaW4gY29sb25tb2QyNCBhbmQgZ2V0X29wZXJhbmQuICBEb24ndCBhcHBseSBkZDoyIG9wdGltaXphdGlvbnMgdG8KCW9mZnNldHMgd2l0aCBhIHN5bWJvbGljIGNvbXBvbmVudC4KCjIwMDMtMDctMDQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jICh0Y194ODZfcmVnbmFtZV90b19kdzJyZWdudW0pOiBVc2UgQVJSQVlfU0laRQoJbWFjcm8gdG8gY29tcHV0ZSBzaXplIG9mIHNlbGVjdGVkIHJlZ2lzdGVyIG5hbWUgYXJyYXkuCgoyMDAzLTA3LTAxICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogY29uZmlnL3RjLXMzOTAuYyAobWRfcGFyc2Vfb3B0aW9uKTogQWRkIGNwdSB0eXBlIHo5OTAuCgkobWRfYmVnaW4pOiBBZGQgbWluaW1hbCBjcHUgdHlwZSBsb2dpYyBmb3IgaW5zdHJ1Y3Rpb25zIHdpdGggZGlmZmVyZW50CgliaW5hcnkgZm9ybWF0IGRlcGVuZGluZyBvbiB0aGUgY3B1LgoJKG1kX2Fzc2VtYmxlKTogUmVtb3ZlIGNoZWNrIGZvciBtaW5pbWFsIGNwdS4KCShzMzkwX2luc2VydF9vcGVyYW5kKTogQWRkIHN1cHBvcnQgZm9yIGxvbmcgZGlzcGxhY2VtZW50cy4KCShtZF9nYXRoZXJfb3BlcmFuZHMpOiBMaWtld2lzZS4KCSh0Y19zMzkwX2ZpeF9hZGp1c3RhYmxlKTogTGlrZXdpc2UuCgkodGNfczM5MF9mb3JjZV9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgkobWRfYXBwbHlfZml4Myk6IExpa2V3aXNlLgoKMjAwMy0wNi0zMCAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKHNfbWlwc3NldCk6IEltcGxlbWVudCAtbWFyY2g9IGhhbmRsaW5nCglkaWZmZXJlbnRseS4KCjIwMDMtMDYtMzAgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jOiBDb252ZXJ0IHRvIElTTyBDOTAgcHJvdG90eXBlcy4gUmVtb3ZlIHVubmVjZXNzYXJ5Cglwcm90b3R5cGVzIGFuZCBjYXN0cy4gUmVwbGFjZSBQVFIgd2l0aCB2b2lkICouIFJlZm9ybWF0LgoJKiBjb25maWcvdGMtbWlwcy5oOiBMaWtld2lzZS4KCjIwMDMtMDYtMzAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtaWE2NC5jIChub3RlX3JlZ2lzdGVyX3ZhbHVlcyk6IFdhcm5pbmcgZml4LgoJKiBjb25maWcvdGMtbWlwcy5jIChhcHBlbmRfaW5zbik6IExpa2V3aXNlLgoKMjAwMy0wNi0yOSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfc2V0X29wdGlvbnMsbWlwc19vcHRzKTogU3VwcG9ydCBmb3IKCS5zZXQgYXJjaD1GT08uCgkoZmlsZV9taXBzX2FyY2gpOiBSZW5hbWUgbWlwc19hcmNoLgoJKG1pcHNfYXJjaF9pbmZvLG1pcHNfdHVuZV9pbmZvKTogUmVtb3ZlLgoJKGhpbG9faW50ZXJsb2NrcyxncHJfaW50ZXJsb2Nrcyxjb3BfaW50ZXJsb2Nrcyk6IFVzZSBtaXBzX29wdHMuYXJjaC4KCShtaXBzX2NwdV9pbmZvX2Zyb21fYXJjaCk6IE5ldyBmdW5jdGlvbi4KCShtZF9iZWdpbik6IFVzZSBmaWxlX21pcHNfYXJjaC4KCShtYWNyb19idWlsZCxtYWNybyxtaXBzX2lwKTogVXNlIG1pcHNfb3B0cy5hcmNoLgoJKG1pcHNfc2V0X2FyY2hpdGVjdHVyZSk6IEluaXQgZmlsZV9taXBzX2FyY2ggYW5kIG1pcHNfb3B0cy5hcmNoLgoJKG1pcHNfYWZ0ZXJfcGFyc2VfYXJncyk6IFJlbW92ZSBtaXBzX2FyY2hfaW5mbyBhbmQgbWlwc190dW5lX2luZm8uCglVc2UgZmlsZV9taXBzX2FyY2guCgkoc19taXBzc2V0KTogU3VwcG9ydCBmb3IgLnNldCBhcmNoPUZPTy4KCShtaXBzX2NwdV9pbmZvX3RhYmxlKTogRml4IHR5cG8uCgoyMDAzLTA2LTI2ICBILkouIEx1IDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKG1kX2Fzc2VtYmxlKTogRGVjbGFyZSAiZXhwIiBiZWZvcmUgImlmIi4KCjIwMDMtMDYtMjUgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1oODMwMC5jIChnZXRfc3BlY2lmaWMpOiBBbGxvdyAnOjgnIHRvIGJlIHVzZWQgZm9yCgl1bnNpZ25lZCA4LWJpdCBvcGVyYW5kcy4KCjIwMDMtMDYtMjQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiByZWFkLmMgKHNfY29tbSk6IENoYW5nZSBlcnJvciBtZXNzYWdlIHRvIGFzc3VtZSBhbiB1bnNpZ25lZCBzaXplCgloYXMgYmVlbiBwYXNzZWQgdG8gLmNvbW0uCgkqIGNvbmZpZy90Yy1zcGFyYy5jIChzX2NvbW1vbik6IExpa2V3aXNlLgoJKiB3cml0ZS5jICh3cml0ZV9jb250ZW50cyk6IFJlcGxhY2UgJ3Vuc2lnbmVkIGxvbmcnIHdpdGgKCSdhZGRyZXNzVCcgYW5kICdsb25nJyB3aXRoIG9mZnNldFQgaW4gb3JkZXIgdG8gYWxsb3cgY29tcHV0YXRpb25zCgl3aXRoIHZlcnkgbGFyZ2UgdmFsdWVzIHRvIHdvcmsgZm9yIDY0LWJpdCBhZGRyZXNzZWQgdGFyZ2V0cy4KCShyZWxheF9hbmRfc2l6ZV9hbGxfc2VnbWVudHMpOiBMaWtld2lzZS4KCShyZWxheF9mcmFnKTogTGlrZXdpc2UuCgkocmVsYXhfc2VnbWVudCk6IExpa2V3aXNlLgoKMjAwMy0wNi0yMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAocHBjX2NsZWFudXApOiBVc2UgYnl0ZXMgdG8gY291bnQgQVBVaW5mbyBzbG90cy4KCjIwMDMtMDYtMjMgIEguSi4gTHUgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZ2FzL2NvbmZpZy90Yy1pMzg2LmMgKG1kX2Fzc2VtYmxlKTogU3VwcG9ydCBJbnRlbCBQcmVjb3R0IE5ldwoJSW5zdHJ1Y3Rpb25zLgoKCSogZ2FzL2NvbmZpZy90Yy1pMzg2LmggKENwdVBOSSk6IE5ldy4KCShDcHVVbmtub3duRmxhZ3MpOiBBZGQgQ3B1UE5JLgoKMjAwMy0wNi0yMyAgICA8ZGF2aWRtQGhwbC5ocC5jb20+CgoJKiBjb25maWcvdGMtaWE2NC5jIChwc2V1ZG9fZnVuYyk6IEFkZCBBQkkgY29uc3RhbnRzIGZvciBsaW51eCwKCWZyZWVic2QsIG9wZW52bXMsIGFuZCBuc2sgKG5vbi1zdG9wIGtlcm5lbCkuCgoyMDAzLTA2LTIyICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogY29uZmlnL3RjLW5zMzJrLmMgKG1kX2JlZ2luKTogSW5pdGlhbGl6ZSBpbnN0X2hhc2hfdGFibGUgYWZ0ZXIKCWFsbCBsb2NhbHMgaGF2ZSBiZWVuIGRlY2xhcmVkLgoKMjAwMy0wNi0yMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKEFERFJFU1NfQUREX0lOU04sQUREUkVTU19BRERJX0lOU04pOiBSZW1vdmUKCXNwZWNpYWwgaGFuZGxpbmcgZm9yIG4zMiBBQkkuCgkobWFjcm8pOiBMaWtld2lzZS4KCjIwMDMtMDYtMTkgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChzX2Nwc2V0dXAsc19jcHJlc3RvcmUsc19jcHJldHVybik6IFJldmVydAoJMjAwMy0wNi0xMSBjaGFuZ2UuCgoyMDAzLTA2LTE5ICBDaHJpc3RpYW4gR3JvZXNzbGVyICA8Y2hyaXNAZ3JvZXNzbGVyLm9yZz4KCgkqIGNvbmZpZy90Yy16OGsuYyAocGFyc2VfcmVnKTogSW52YWxpZCByZWdpc3RlcnMgZ2VuZXJhdGUgYW4gZXJyb3IKCW5vdywgbm90IG9ubHkgYSB3YXJuaW5nLiAgQWRkIHNvbWUgbW9yZSBjaGVja3MgdG8gZGV0ZWN0IGludmFsaWQKCXJlZ2lzdGVycy4KCShnZXRfb3BlcmFuZCk6IEZvciBDTEFTU19JUiByZW1lbWJlciByZWdpc3RlciBzaXplIGluIG1vZGUgc3RydWN0LgoJKGdldF9zcGVjaWZpYyk6IEhhbmRsZSBuZXcgQ0xBU1NfSVJPIHR5cGUuICBBZGQgcmVnaXN0ZXIgc2l6ZQoJY2hlY2tzIGZvciBDTEFTU19JUiBhbmQgQ0xBU1NfSVJPLgoJKG1kX2FwcGx5X2ZpeDMpOiBGaXggdW5kZWZpbmVkIHVzYWdlIG9mIGJ1Zi4KCjIwMDMtMDYtMTkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtcHBjLmMgKHBwY19jc2VjdCk6IFBhc3MgYWxpZ25tZW50IHRvIHBwY19jaGFuZ2VfY3NlY3QuCgkocHBjX2NoYW5nZV9jc2VjdCk6IEFkZCBhbGlnbiBwYXJhbS4gIEFsaWduIGZyYWcgYXQgc3RhcnQgb2YgY3NlY3QuCgkocHBjX3NlY3Rpb24sIHBwY19uYW1lZF9zZWN0aW9uKTogQWRqdXN0IHBwY19jaGFuZ2VfY3NlY3QgY2FsbHMuCgkocHBjX2Zyb2Jfc2VjdGlvbik6IEFsaWduIHZtYS4KCjIwMDMtMDYtMTggIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZHcyZ2VuY2ZpLmMgKEVIX0ZSQU1FX0FMSUdOTUVOVCk6IERlZmluZSBpZiBub3QgZGVmaW5lZC4KCShvdXRwdXRfY2llKTogRG9uJ3QgcGFkLgoJKG91dHB1dF9mZGUpOiBBZGQgYWxpZ24gYXJndW1lbnQuICBQYWQgdG8gYWxpZ24gaWYgbm90IDAuCgkoY2ZpX2ZpbmlzaCk6IFNldCAuZWhfZnJhbWUgYWxpZ25tZW50IHRvIEVIX0ZSQU1FX0FMSUdOTUVOVC4KCVBhZCBqdXN0IGxhc3QgRkRFIHRvIEVIX0ZSQU1FX0FMSUdOTUVOVC4KCjIwMDMtMDYtMTggIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBjb25maWcvdGMtczM5MC5jIChpbml0X2RlZmF1bHRfYXJjaCk6IE1ha2UgY3VycmVudF9tb2RlX21hc2sKCWRlcGVuZGVudCBvbiBzMzkwX2FyY2hfc2l6ZSBhbmQgY3VycmVudF9jcHUgZGVwZW5kZW50IG9uCgljdXJyZW50X21vZGVfbWFzay4KCjIwMDMtMDYtMTggIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGM0eCBhcyBhbiBhcmNoaXRlY3R1cmUgdmFyaWFudCB0byB0aWM0eC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZG9jL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0wNi0xOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAocHBjX2VsZl9zdWZmaXgpOiBEb24ndCByZW1vdmUgc3ltYm9scyBvdGhlciB0aGFuCgkiLlRPQy4iIGZyb20gUFBDNjRfVE9DIHJlbG9jcy4KCjIwMDMtMDYtMTcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtcHBjLmMgKG1kX2FwcGx5X2ZpeDMpOiBBbGxvdyBCUlRBS0VOLCBCUk5UQUtFTiByZWxvY3MuCgoyMDAzLTA2LTE2ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoQUREUkVTU19BRERfSU5TTixBRERSRVNTX0FERElfSU5TTiwKCUFERFJFU1NfTE9BRF9JTlNOLEFERFJFU1NfU1RPUkVfSU5TTik6IE5ldyBtYWNyb3MuCgkobWFjcm9fYnVpbGRfbGRzdF9jb25zdG9mZnNldCxsb2FkX2FkZHJlc3MsbWFjcm8sc19jcHNldHVwLAoJc19jcHJlc3RvcmUsc19jcGFkZCk6IFVzZSB0aGVtLgoKMjAwMy0wNi0xNiAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBjb25maWd1cmUuaW46IEFkZCBzcGVjaWZpYyBjYXNlIGZvciBjcmlzLSotbGludXgtZ251KiB3aXRoCgllbT1saW51eC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjb25maWcvdGMtY3Jpcy5jIChERUZBVUxUX0NSSVNfQVhJU19MSU5VWF9HTlUpOiBOZXcgbWFjcm8sIFRSVUUKCWlmIFRFX0xJTlVYIGRlZmluZWQsIGVsc2UgRkFMU0UuCgkoYmZkX2Jvb2xlYW4gZGVtYW5kX3JlZ2lzdGVyX3ByZWZpeCk6IFNldCBkZWZhdWx0IGZyb20KCURFRkFVTFRfQ1JJU19BWElTX0xJTlVYX0dOVS4KCShzeW1ib2xzX2hhdmVfbGVhZGluZ191bmRlcnNjb3JlKTogU2ltaWxhci4KCSogY29uZmlnL3RjLWNyaXMuaCAoTE9DQUxfTEFCRUxTX0RPTExBUik6IERlZmluZSB0byAxLgoKMjAwMy0wNi0xMyAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJKiB0Yy1hcm0uYyAoRlBVX0RFRkFVTFQsIGNhc2UgVEVfTElOVVgpOiBEZWZhdWx0IHRvIEZQVV9BUkNIX0ZQQS4KCShGUFVfREVGQVVMVCwgY2FzZSBURV9OZXRCU0QpOiBEZWZhdWx0IHRvIEZQVV9BUkNIX1ZGUCBmb3IgRUxGLAoJRlBVX0FSQ0hfRlBBIGZvciBBT1VULgoJKG1kX2JlZ2luKTogRG9uJ3QgdHJ5IHRvIGd1ZXNzIHRoZSBmbG9hdGluZyBwb2ludCBhcmNoaXRlY3R1cmUgZnJvbQoJdGhlIENQVSBpZiB0aGUgT1MgQUJJIChMaW51eCwgTmV0QlNEKSBtYW5kYXRlcyBhIHBhcnRpY3VsYXIgZm9ybS4KCjIwMDMtMDYtMTMgIFJvYmVydCBNaWxsYW4gIDx6ZXJhdHVsMkB3YW5hZG9vLmVzPgoKCSogY29uZmlndXJlLmluOiBBZGQgaTM4Ni1uZXRic2QtZ251IHRhcmdldC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMy0wNi0xMiAgVG9tIFRyb21leSAgPHRyb21leUByZWRoYXQuY29tPgoKCSogZG9jL2FzLnRleGluZm8gKENvbW0pOiBBZGRlZCBAbm9kZS4gIE1vdmVkIGJlZm9yZSBDRkkKCWRpcmVjdGl2ZXMgbm9kZS4KCjIwMDMtMDYtMTIgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKGFwcGVuZF9pbnNuKTogSW4gYSBjb21wb3VuZCByZWxvY2F0aW9uLCB0YWtlIHRoZQoJZmllbGQgd2lkdGggZnJvbSB0aGUgZmluYWwgKG91dGVybW9zdCkgb3BlcmF0b3IuCgoyMDAzLTA2LTExICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZHcyZ2VuY2ZpLmMgKHN0cnVjdCBjZmlfZXNjYXBlX2RhdGEpOiBOZXcuCgkoY2ZpX2FkZF9DRkFfbm9wKTogUmVtb3ZlLgoJKENGSV9lc2NhcGUsIGRvdF9jZmlfZXNjYXBlKTogTmV3LgoJKGRvdF9jZmkpOiBSZW1vdmUgbm9wLgoJKGNmaV9wc2V1ZG9fdGFibGUpOiBSZW1vdmUgbm9wOyBhZGQgZXNjYXBlLgoJKG91dHB1dF9jZmlfaW5zbik6IExpa2V3aXNlLgoJKHNlbGVjdF9jaWVfZm9yX2ZkZSk6IFN0b3Agb24gZXNjYXBlLgoJKiBkdzJnZW5jZmkuaCAoY2ZpX2FkZF9DRkFfbm9wKTogUmVtb3ZlLgoJKiByZWFkLmMsIHJlYWQuaCAoZG9fcGFyc2VfY29uc19leHByZXNzaW9uKTogTmV3LgoJKiBkb2MvYXMudGV4aW5mbyAoLmNmaV9lc2NhcGUpOiBOZXcuCgoyMDAzLTA2LTExICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoc19jcHNldHVwKTogVXNlIG1pcHNfZnJhbWVfcmVnIGluc3RlYWQgb2YgU1AuCgkoc19jcHJlc3RvcmUpOiBMaWtld2lzZS4KCShzX2NwcmV0dXJuKTogTGlrZXdpc2UuCgoyMDAzLTA2LTExICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAodGNfZ2VuX3JlbG9jKTogSW5pdGlhbGl6ZSByZXR2YWwgYW1kIHJlbG9jCgl3aXRoIHplcm9zLgoKMjAwMy0wNi0xMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1kX3BjcmVsX2Zyb20pOiBSZXR1cm4gYWN0dWFsIHBjcmVsIGFkZHJlc3MuCgkobWRfYXBwbHlfZml4Myk6IElnbm9yZSBub24tc3BlY2lhbCByZWxvY2F0aW9ucy4gUmVtb3ZlIHN1cGVyZmx1b3VzCglleGNlcHRpb25zIGZyb20gc2l6ZSBhc3NlcnQuIFJlbW92ZSBtb3N0IG9mIHRoZSBhZGRlbmQgZml4dXAKCXNwZWNpYWxjYXNpbmcuIFJlbW92ZSB2YWx1ZSwgdXNlIHZhbFAgZGlyZWN0bHkuIHNpbXBsaWZ5IGZ4X2FkZG51bWJlcgoJaGFuZGxpbmcuIFJlbW92ZSB6ZXJvIGFkZGVuZCBzcGVjaWFsY2FzZXMuCgkodGNfZ2VuX3JlbG9jKTogVXNlIGFwcHJvcHJpYXRlIHZhbHVlIGZvciByZWxvYzIgYWRkZW5kLiBSZW1vdmUKCXRoZSBhZGRlbmQgZml4dXAgc3BlY2lhbGNhc2UuCgkqIGNvbmZpZy90Yy1taXBzLmggKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZSBhcyAwLgoKMjAwMy0wNi0xMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIHdyaXRlLmMgKHdyaXRlX3JlbG9jcyk6IFVzZSB4Y2FsbG9jLiBGaXggcmVsb2NzIGluaXRpYWxpemF0aW9uCglpbiB0aGUgUkVMT0NfRVhQQU5TSU9OX1BPU1NJQkxFIGNhc2UuCgoyMDAzLTA2LTExICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWk5NjAuYyAobGluZV9jb21tZW50X2NoYXJzKTogQWRkICcjJy4KCSogY29uZmlnL3RjLW1uMTAyMDAuYyAodGNfZ2VuX3JlbG9jKTogRG9uJ3QgaWdub3JlIGZ4X3N1YnN5LgoKMjAwMy0wNi0xMSAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBwby9NYWtlLWluIChERVNURElSKTogTmV3LgoJKGluc3RhbGwtZGF0YS15ZXMpOiBTdXBwb3J0ICQoREVTVERJUikuCgkodW5pbnN0YWxsKTogTGlrZXdpc2UuCgoyMDAzLTA2LTExICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogcG8vUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgoyMDAzLTA2LTEwICBEb3VnIEV2YW5zICA8ZGplQHNlYmFiZWFjaC5vcmc+CgoJKiBjZ2VuLmMgKGdhc19jZ2VuX2ZpbmlzaF9pbnNuKTogQ0dFTl9JTlNOX1JFTEFYIHJlbmFtZWQgdG8KCUNHRU5fSU5TTl9SRUxBWEVELgoJKiBjb25maWcvdGMtZnIzMC5jIChtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IERpdHRvLgoJKiBjb25maWcvdGMtbTMyci5jIChtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IERpdHRvLgoJKiBjb25maWcvdGMtb3BlbnJpc2MuYyAobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiBEaXR0by4KCjIwMDMtMDYtMTAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgkgICAgR2FyeSBIYWRlIDxnYXJ5aGFkZUB1cy5pYm0uY29tPgoKCSogY29uZmlnL3RjLXBwYy5jIChtZF9hc3NlbWJsZSk6IEhhbmRsZSBQUENfT1BFUkFORF9EUS4KCShtZF9hcHBseV9maXgzKTogU3BlY2lhbCBjYXNlIGxxIGluc24uCgoyMDAzLTA2LTEwICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtaDgzMDAuYyAoZ2V0X3J0c2xfb3BlcmFuZHMpOiBBY2NlcHQgdW5icmFja2V0ZWQgcmVnaXN0ZXIKCWxpc3RzLiAgQWxsb3cgc2luZ2xlLXJlZ2lzdGVyIHJhbmdlcy4KCjIwMDMtMDYtMTAgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1oODMwMC5jIChoODMwMHN4bm1vZGUpOiBOZXcuCgkobWRfcHNldWRvX3RhYmxlKTogQWRkIC5oODMwMHN4biBlbnRyeS4KCjIwMDMtMDYtMDkgIEguSi4gTHUgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogTkVXUzogVXBkYXRlZCBmb3IgdGhlIG5ldyAtbiBvcHRpb24gZm9yIHRoZSBpMzg2IGFzc2VtYmxlci4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKG9wdGltaXplX2FsaWduX2NvZGUpOiBOZXcuCgkobWRfc2hvcnRvcHRzKTogQWRkICduJy4KCShtZF9wYXJzZV9vcHRpb24pOiBIYW5kbGUgJ24nLgoJKG1kX3Nob3dfdXNhZ2UpOiBBZGQgJy1uJy4KCgkqIGNvbmZpZy90Yy1pMzg2LmggKG9wdGltaXplX2FsaWduX2NvZGUpOiBEZWNsYXJlZC4KCShtZF9kb19hbGlnbik6IE9wdGltaXplIGNvZGUgYWxpZ25tZW50IG9ubHkgaWYgb3B0aW1pemVfYWxpZ25fY29kZQoJaXMgbm90IDAuCgoJKiBkb2MvYXMudGV4aW5mbzogQWRkIHRoZSBuZXcgLW4gb3B0aW9uLgoKCSogZG9jL2MtaTM4Ni50ZXhpOiBEb2N1bWVudCB0aGUgbmV3IC1uIG9wdGlvbi4KCjIwMDMtMDYtMDcgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBkb2MvYXMudGV4aW5mbzogRG9jdW1lbnQgLmNmaV9yZWxfb2Zmc2V0LgoKCSogZHcyZ2VuY2ZpLmMgKHN0cnVjdCBjZmFfc2F2ZV9kYXRhLCBjZmFfc2F2ZV9zdGFjayk6IE5ldy4KCShjZmlfYWRkX0NGQV9vZmZzZXQpOiBEZXRlY3QgaW52YWxpZCBvZmZzZXRzLgoJKGNmaV9hZGRfQ0ZBX3JlbWVtYmVyX3N0YXRlKTogU2F2ZSBjdXJfY2ZhX29mZnNldC4KCShjZmlfYWRkX0NGQV9yZXN0b3JlX3N0YXRlKTogUmVzdG9yZSBpdC4KCShDRklfcmVsX29mZnNldCk6IE5ldy4KCShjZmlfcHNldWRvX3RhYmxlKTogQWRkIGl0LgoJKGRvdF9jZmkpOiBIYW5kbGUgaXQuCgoyMDAzLTA2LTA3ICBILkouIEx1IDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGFwcC5jIChkb19zY3J1Yl9jaGFycyk6IEFkZCBzdGF0ZXMgMTQgYW5kIDE1IHRvIGhhbmRsZQoJcHJlZGljYXRlIGZvciBpYTY0LgoKMjAwMy0wNi0wNSAgTWljaGFlbCBTbnlkZXIgIDxtc255ZGVyQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtaDhzeC5jIChnZXRfc3BlY2lmaWMpOiBEaXN0aW5ndWlzaCBoOGggZnJvbSBoOHMgb3BzLgoJKGJ1aWxkX2J5dGVzKTogRGl0dG8uCgoyMDAzLTA2LTA1ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtaDhzeC5jIChETU9ERSk6IFJlbW92ZS4KCShjb2xvbm1vZDI0KTogRG9uJ3QgY2hvb3NlIGEgZGVmYXVsdCBpZiB0aGUgb3BlcmFuZCBpcyBhIDE2LWJpdAoJY29uc3RhbnQgaW50ZWdlci4KCShmaXhfb3BlcmFuZF9zaXplKTogTmV3IGZ1bmN0aW9uLgoJKG1kX2Fzc2VtYmxlKTogVXNlIGl0IHRvIGNob29zZSBiZXR3ZWVuIEAoZDoyLCBFUm4pIGFuZCBAKGQ6MTYsRVJuKS4KCUFkanVzdCBAKGQ6MixFUm4pIG9wZXJhbmRzIGJlZm9yZSBjaG9vc2luZyB0aGUgc3BlY2lmaWMgb3Bjb2Rlcy4KCjIwMDMtMDYtMDUgIE1pY2hhbCBMdWR2aWcgIDxtbHVkdmlnQHN1c2UuY3o+CgoJKiBkdzJnZW5jZmkuYyAoY2ZpX2FkZF9DRkFfaW5zbiwgY2ZpX2FkZF9DRkFfaW5zbl9yZWcpCgkoY2ZpX2FkZF9DRkFfaW5zbl9yZWdfcmVnLCBjZmlfYWRkX0NGQV9pbnNuX3JlZ19vZmZzZXQpOiBOZXcuCgkoY2ZpX2FkZF9DRkFfb2Zmc2V0LCBjZmlfYWRkX0NGQV9kZWZfY2ZhKQoJKGNmaV9hZGRfQ0ZBX3JlZ2lzdGVyLCBjZmlfYWRkX0NGQV9kZWZfY2ZhX3JlZ2lzdGVyKQoJKGNmaV9hZGRfQ0ZBX2RlZl9jZmFfb2Zmc2V0KTogVXNlIGNmaV9hZGRfQ0ZBX2luc25fKigpLgoJKGNmaV9hZGRfQ0ZBX3Jlc3RvcmUsIGNmaV9hZGRfQ0ZBX3VuZGVmaW5lZCkKCShjZmlfYWRkX0NGQV9zYW1lX3ZhbHVlLCBjZmlfYWRkX0NGQV9yZW1lbWJlcl9zdGF0ZSkKCShjZmlfYWRkX0NGQV9yZXN0b3JlX3N0YXRlLCBjZmlfYWRkX0NGQV9ub3ApOiBOZXcuCgkoY2ZpX3BzZXVkb190YWJsZSk6IE5ldyBkaXJlY3RpdmVzIC5jZmlfcmV0dXJuX2NvbHVtbiwKCS5jZmlfcmVzdG9yZSwgLmNmaV91bmRlZmluZWQsIC5jZmlfc2FtZV92YWx1ZSwKCS5jZmlfcmVtZW1iZXJfc3RhdGUsIC5jZmlfcmVzdG9yZV9zdGF0ZSwgLmNmaV9ub3AuCgkoZG90X2NmaSwgb3V0cHV0X2NmaV9pbnNuKTogSGFuZGxlIG5ldyBkaXJlY3RpdmVzLgoJKiBkdzJnZW5jZmkuaCAoY2ZpX2FkZF9DRkFfcmVzdG9yZSwgY2ZpX2FkZF9DRkFfdW5kZWZpbmVkKQoJKGNmaV9hZGRfQ0ZBX3NhbWVfdmFsdWUsIGNmaV9hZGRfQ0ZBX3JlbWVtYmVyX3N0YXRlKQoJKGNmaV9hZGRfQ0ZBX3Jlc3RvcmVfc3RhdGUsIGNmaV9hZGRfQ0ZBX25vcCk6IE5ldyBwcm90b3R5cGVzLgoKMjAwMy0wNi0wNCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGR3MmdlbmNmaS5jIChvdXRwdXRfY2ZpX2luc24pOiBGaXggdHlwbyBmb3IgbmVnYXRpdmUgb2Zmc2V0cy4KCgkqIGR3MmdlbmNmaS5jIChjZmlfZmluaXNoKTogU2V0IC5laF9mcmFtZSByZWFkLW9ubHkuCgoyMDAzLTA2LTA0ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWFscGhhLmMgKHNfYWxwaGFfdXNlcHYpOiBOZXcuCgkobWRfcHNldWRvX3RhYmxlKTogQWRkIGl0LgoJKGFscGhhX2NmaV9mcmFtZV9pbml0aWFsX2luc3RydWN0aW9ucyk6IE5ldy4KCSogY29uZmlnL3RjLWFscGhhLmggKFRBUkdFVF9VU0VfQ0ZJUE9QKTogTmV3LgoJKHRjX2NmaV9mcmFtZV9pbml0aWFsX2luc3RydWN0aW9ucyk6IE5ldy4KCSogZG9jL2MtYWxwaGEudGV4aTogRG9jdW1lbnQgLnVzZXB2LgoKMjAwMy0wNi0wNCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBhcy5jIChzaG93X3VzYWdlKTogRG9jdW1lbnQgLS1leGVjc3RhY2sgYW5kIC0tbm9leGVjc3RhY2suCgkocGFyc2VfYXJncyk6IEFkZCAtLWV4ZWNzdGFjayBhbmQgLS1ub2V4ZWNzdGFjay4KCShtYWluKTogQ3JlYXRlIC5ub3RlLkdOVS1zdGFjayBzZWN0aW9uIGlmIC0tZXhlY3N0YWNrIG9yCgktLW5vZXhlY3N0YWNrIHdhcyBnaXZlbiBvbiBjb21hbmQgbGluZSwgc2V0IGl0cyBTSEZfRVhFQ0lOU1RSIGJpdC4KCSogYXMuaCAoZmxhZ19leGVjc3RhY2ssIGZsYWdfbm9leGVjc3RhY2spOiBOZXcuCgoyMDAzLTA2LTAzICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYzogKE9QVElPTl9BUkNIX0JBU0UsIE9QVElPTl9BU0VfQkFTRSkKCShPUFRJT05fQ09NUEFUX0FSQ0hfQkFTRSwgT1BUSU9OX0ZJWF9CQVNFKQoJKE9QVElPTl9NSVNDX0JBU0UpOiBOZXcgZGVmaW5lcy4KCShPUFRJT05fQlJFQUssIE9QVElPTl9DT05TVFJVQ1RfRkxPQVRTLCBPUFRJT05fRUIsIE9QVElPTl9FTCkKCShPUFRJT05fRUxGX0JBU0UsIE9QVElPTl9GSVhfVlI0MTIyLCBPUFRJT05fRlAzMiwgT1BUSU9OX0ZQNjQpCgkoT1BUSU9OX0dQMzIsIE9QVElPTl9HUDY0LCBPUFRJT05fTTM5MDAsIE9QVElPTl9NNDAxMCwgT1BUSU9OX000MTAwKQoJKE9QVElPTl9NNDY1MCwgT1BUSU9OX003MDAwX0hJTE9fRklYLCBPUFRJT05fTUFSQ0gsIE9QVElPTl9NRE1YKQoJKE9QVElPTl9NRU1CRURERURfUElDLCBPUFRJT05fTUlQUzEsIE9QVElPTl9NSVBTMTYsIE9QVElPTl9NSVBTMikKCShPUFRJT05fTUlQUzMsIE9QVElPTl9NSVBTMzIsIE9QVElPTl9NSVBTMzJSMiwgT1BUSU9OX01JUFMzRCkKCShPUFRJT05fTUlQUzQsIE9QVElPTl9NSVBTNSwgT1BUSU9OX01JUFM2NCkKCShPUFRJT05fTU5PXzcwMDBfSElMT19GSVgsIE9QVElPTl9NVFVORSwgT1BUSU9OX05PX0NPTlNUUlVDVF9GTE9BVFMpCgkoT1BUSU9OX05PX0ZJWF9WUjQxMjIsIE9QVElPTl9OT19NMzkwMCwgT1BUSU9OX05PX000MDEwKQoJKE9QVElPTl9OT19NNDEwMCwgT1BUSU9OX05PX000NjUwLCBPUFRJT05fTk9fTURNWCwgT1BUSU9OX05PX01JUFMxNikKCShPUFRJT05fTk9fTUlQUzNELCBPUFRJT05fTk9fUkVMQVhfQlJBTkNILCBPUFRJT05fUkVMQVhfQlJBTkNIKQoJKE9QVElPTl9UUkFQKTogUmVkZWZpbmUgaW4gdGVybXMgb2YgbmV3IGRlZmluZXMuCgkobWRfbG9uZ29wdHMpOiBSZW9yZGVyIGVudHJpZXMuCgoyMDAzLTA1LTE0ICBNaWNoYWVsIFNueWRlciAgPG1zbnlkZXJAcmVkaGF0LmNvbT4KCUZyb20gQmVybmQgU2NobWlkdCAgPGJlcm5kc0ByZWRoYXQuY29tPgoJYW5kIE1pY2hhZWwgU255ZGVyICA8bXNueWRlckByZWRoYXQuY29tPgoJYW5kIEFsZXhhbmRyZSBPbGl2YSA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1oODMwMC5jOiBBZGQgaW5zbnMgYW5kIGFkZHJlc3NpbmcgbW9kZXMgZm9yIGg4MzAwc3guCgkqIGNvbmZpZy90Yy1oODMwMC5oOiBEaXR0by4KCjIwMDMtMDYtMDMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiB0Yy12ODUwLmMgKHRjLWdlbl9yZWxvYyk6IFRyYW5zbGF0ZSBCRkRfUkVMT0NfMzIgaW50bwoJQkZEX1JFTE9DXzMyX1BDUkVMIGlmIHRoZSByZWxvYyBpcyBwYy1yZWxhdGl2ZS4gIERvIHRoaXMKCWJlZm9yZSBjYWxsaW5nIGJmZF9yZWxvY190eXBlX2xvb2t1cC4KCjIwMDMtMDYtMDIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiByZWFkLmMgKGVtaXRfZXhwcik6IFNldCBkb3RfdmFsdWUuCgkqIGR3MmdlbmNmaS5jIChvdXRwdXRfZmRlKTogUmVtb3ZlIHBjcmVsIHJlbG9jIGhhY2suCgoyMDAzLTA2LTAyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbWFjcm8uYyAoc3ViX2FjdHVhbCk6IERvbid0IGxvc2Ugc3RyaW5nIGlmIGl0IHR1cm5zIG91dCB0aGF0Cgkmc3RyaW5nIHdhc24ndCBhbiBhcmcuCgoyMDAzLTA1LTMxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZHcyZ2VuY2ZpLmMgKG91dHB1dF9mZGUpOiBVc2UgZml4X25ldyB0byBlbWl0IHBjLXJlbGF0aXZlIHJlbG9jLgoJKGNmaV9maW5pc2gpOiBTZXQgZmxhZ190cmFkaXRpb25hbF9mb3JtYXQgYXJvdW5kIC5laF9mcmFtZSBkYXRhLgoKMjAwMy0wNS0yOSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1hbHBoYS5jIChhbHBoYV9jdXJfZW50X3N5bSk6IFJlbW92ZS4KCShhbGxfZnJhbWVfZGF0YSwgcGxhc3RfZnJhbWVfZGF0YSwgY3VyX2ZyYW1lX2RhdGEpOiBOZXcuCgkoc19hbHBoYV9lbnQpOiBSZWNvcmQgZGF0YSBmb3IgZHdhcmYyIGNmaS4KCShzX2FscGhhX2VuZCwgc19hbHBoYV9tYXNrLCBzX2FscGhhX2ZyYW1lLCBzX2FscGhhX3Byb2xvZ3VlKTogTGlrZXdpc2UuCgkoYWxwaGFfZWxmX21kX2VuZCk6IEVtaXQgZHdhcmYyIGNmaSBmb3IgZWNvZmYgdW53aW5kIGRpcmVjdGl2ZXMuCgkqIGNvbmZpZy90Yy1hbHBoYS5oIChtZF9lbmQpOiBOZXcuCgkoRFdBUkYyX0RFRkFVTFRfUkVUVVJOX0NPTFVNTik6IE5ldy4KCShEV0FSRjJfQ0lFX0RBVEFfQUxJR05NRU5UKTogTmV3LgoKMjAwMy0wNS0yOSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGkzODYtKi1mcmVlYnNkKiBlbnRyeS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMy0wNS0yOSAgS2F6dWhpcm8gSW5hb2thICA8aW5hb2thLmthenVoaXJvQHJlbmVzYXMuY29tPgoKCSogY29uZmlnL3RjLW0zMnIuYzogQW1lbmQgY29tbWVudCB0byByZWZlciB0byBSZW5lc2FzCgoyMDAzLTA1LTI3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZXhwci5jIChtYWtlX2V4cHJfc3ltYm9sKTogRm9sZCBGQUtFX0xBQkVMX05BTUUgdXNlIGludG8gdGhlCglzeW1ib2xfY3JlYXRlIGNhbGwuCgkoY3VycmVudF9sb2NhdGlvbik6IFVzZSBzeW1ib2xfdGVtcF9uZXdfbm93LgoJKiBzdGFicy5jIChzX3N0YWJfZ2VuZXJpYyk6IFVzZSBzeW1ib2xfdGVtcF9uZXcuCgkqIHN5bWJvbHMuYyAodGVtcF9sYWJlbF9uYW1lKTogUmVtb3ZlLgoJKHN5bWJvbF90ZW1wX25ldywgc3ltYm9sX3RlbXBfbWFrZSk6IFVzZSBGQUtFX0xBQkVMX05BTUUuCgoyMDAzLTA1LTI3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZHcyZ2VuY2ZpLmMsIGR3MmdlbmNmaS5oOiBSZXdyaXRlIGZyb20gc2NyYXRjaC4KCSogYXMuYyAobWFpbik6IEFsd2F5cyBjYWxsIGNmaV9maW5pc2guCgkqIGNvbmZpZy90Yy1pMzg2LmMgKHg4Nl9kd2FyZjJfcmV0dXJuX2NvbHVtbik6IE5ldy4KCSh4ODZfY2llX2RhdGFfYWxpZ25tZW50KTogTmV3LgoJKG1kX2JlZ2luKTogU2V0IHRoZW0uCgkodGNfeDg2X2NmaV9pbml0KTogUmVtb3ZlLgoJKHRjX3g4Nl9yZWduYW1lX3RvX2R3MnJlZ251bSk6IEZpeCAzMi1iaXQgcmVnaXN0ZXIgbnVtYmVyczsKCXJldHVybiBpbnQsIG5vdCB1bnNpZ25lZCBsb25nOyBkb24ndCBhc19iYWQgaGVyZS4KCSh0Y194ODZfZnJhbWVfaW5pdGlhbF9pbnN0cnVjdGlvbnMpOiBTdHJlYW1saW5lOyB1c2UKCXVwZGF0ZWQgYXBpLgoJKiBjb25maWcvdGMtaTM4Ni5oICh0Y19jZmlfaW5pdCk6IFJlbW92ZS4KCShEV0FSRjJfREVGQVVMVF9SRVRVUk5fQ09MVU1OKTogTmV3LgoJKERXQVJGMl9DSUVfREFUQV9BTElHTk1FTlQpOiBOZXcuCgoyMDAzLTA1LTI3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogc3ltYm9scy5jICh0ZW1wX2xhYmVsX25hbWUpOiBOZXcuCgkoc3ltYm9sX3RlbXBfbmV3LCBzeW1ib2xfdGVtcF9uZXdfbm93LCBzeW1ib2xfdGVtcF9tYWtlKTogTmV3LgoJKHN5bWJvbF9zZXRfdmFsdWVfbm93KTogTmV3LgoJKiBzeW1ib2xzLmg6IFByb3RvdHlwZSB0aGVtLgoJKiBkd2FyZjJkYmcuYzogVXNlIHRoZW0uCgkoZmFrZV9sYWJlbF9uYW1lLCBzeW1ib2xfbmV3X25vdywgc2V0X3N5bWJvbF92YWx1ZV9ub3cpOiBSZW1vdmUuCgoyMDAzLTA1LTIzICBKYXNvbiBFY2toYXJkdCAgPGpsZUByaWNlLmVkdT4KCgkqIGNvbmZpZy90Yy1pODYwLmMgKHRhcmdldF94cCk6IERlY2xhcmUgdmFyaWFibGUuCgkoT1BUSU9OX1hQKTogRGVjbGFyZSBtYWNyby4KCShtZF9sb25nb3B0cyk6IEFkZCBvcHRpb24gLW14cC4KCShtZF9wYXJzZV9vcHRpb24pOiBTZXQgdGFyZ2V0X3hwLgoJKG1kX3Nob3dfdXNhZ2UpOiBBZGQgLW14cCB1c2FnZS4KCShpODYwX3Byb2Nlc3NfaW5zbik6IFJlY29nbml6ZSBYUCByZWdpc3RlcnMgYmVhciwgY2NyLCBwMC1wMy4KCShtZF9hc3NlbWJsZSk6IERvbid0IHRyeSBleHBhbnNpb25zIGlmIFhQX09OTFkgaXMgc2V0LgoJKiBkb2MvYy1pODYwLnRleGk6IERvY3VtZW50IC1teHAgb3B0aW9uIGFuZCBpODYwWFAgc3VwcG9ydC4KCjIwMDMtMDUtMjMgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWFjcm9fYnVpbGRfamFscik6IFdhcm5pbmcgcGF0cm9sLgoKMjAwMy0wNS0yMiAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKGFwcGVuZF9pbnNuKTogVXNlIGFjdHVhbCByZWxvY2F0aW9uIHNpemUgZm9yIG5ldwoJZml4cCdzLglEb24ndCByZWxheCBvdmVyZmxvdyBjaGVja2luZyBmb3IgcGFydGlhbF9pbnBsYWNlIHJlbG9jYXRpb25zLgoJVXNlIHRoZSBhY3R1YWwgcmVsb2NhdGlvbiB0eXBlIGluIGNvbWJpbmVkIHJlbG9jcywgbm90IGp1c3QgdGhlIHR5cGUKCW9mIHRoZSBmaXJzdCBvbmUuCgkobWFjcm9fYnVpbGRfamFscik6IFVzZSBhY3R1YWwgcmVsb2NhdGlvbiBzaXplIGZvciBuZXcgZml4LgoJKHNfY3BzZXR1cCwgc19ncGR3b3JkKTogTGlrZXdpc2UuCgoyMDAzLTA1LTIyICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWFjcm8pOiBEb24ndCB1c2UgdW5pbml0aWFsaXplZCB0ZW1wcmVnLgoKMjAwMy0wNS0yMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy14c3Rvcm15MTYuYyAobWRfcGNyZWxfZnJvbV9zZWN0aW9uKTogRG8gbm90IHByb2R1Y2UKCXNlY3Rpb24gcmVsYXRpdmUgb2Zmc2V0cyBmb3IgcmVsb2NzIHRoYXQgd2lsbCBub3QgYmUgYmFzZWQgb24gdGhlCglzZWN0aW9uIHN5bWJvbC4KCSh4c3Rvcm15MTZfbWRfYXBwbHlfZml4Myk6IFJlbW92ZSBwcmV2aW91cyBwYXRjaCB0byB0aGlzCglmdW5jdGlvbi4KCjIwMDMtMDUtMDcgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19hYmljYWxscyk6IE5ldyB2YXJpYWJsZS4KCShtZF9wYXJzZV9vcHRpb24pOiBVc2UuCgkoc19vcHRpb24pOiBEaXR0by4KCShzX2FiaWNhbGxzKTogRGl0dG8uCgkobWlwc19lbGZfZmluYWxfcHJvY2Vzc2luZyk6IFNldCBFRl9NSVBTX1BJQyBhbmQKCUVGX01JUFNfQ1BJQyBkZXBlbmRlbnQgb24gYWJvdmUuCgoyMDAzLTA1LTIxICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhPgoKCSogdGMtaHBwYS5jIChocHBhX3N5bWJvbF9jaGFycyk6IFJlbW92ZSBgLCcgYW5kIGAhJy4KCjIwMDMtMDUtMjEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvb2JqLWVsZi5jOiBJbmNsdWRlIGR3YXJmMmRiZy5oLgoJKGVsZl9wc2V1ZG9fdGFiKTogQWRkIC5maWxlIGFuZCAubG9jLgoJKiBjb25maWcvdGMtYXJjLmMgKG1kX3BzZXVkb190YWJsZSk6IFJlbW92ZSAuZmlsZSBhbmQgLmxvYy4KCSogY29uZmlnL3RjLWFybS5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWg4MzAwLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaHBwYS5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWlhNjQuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1tNjhoYzExLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbTY4ay5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW1taXguYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1tbjEwMzAwLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtcHBjLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtc2guYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1zcGFyYy5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXY4NTAuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1mcnYuYzogTGlrZXdpc2UsIGFuZCByZW1vdmUgcmVkdW5kYW50IGluY2x1c2lvbiBvZgoJZHdhcmYyZGJnLmguCgkqIGNvbmZpZy90Yy1pcDJrLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaXEyMDAwLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMteHN0b3JteTE2LmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMteHRlbnNhLmM6IExpa2V3aXNlLgoJKiBNYWtlZmlsZS5hbTogUmVnZW5lcmF0ZSBkZXBlbmRlbmNpZXMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBhY2xvY2FsLm00OiBSZWdlbmVyYXRlLgoJKiBjb25maWcuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogcG8vUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL2dhcy5wb3Q6IFJlZ2VuZXJhdGUuCgoyMDAzLTA1LTIxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZHcyZ2VuY2ZpLmMgKGNmaV9nZXRfbGFiZWwpOiBVc2Ugc3ltYm9sX21ha2UgZm9yIG5vbgoJQkZEX0FTU0VNQkxFUiB0YXJnZXRzLgoJKGNmaV9zdGFydHByb2MpOiBDaGFuZ2UgdHlwZSBvZiBzYXZlZF9zZWcgYW5kIGNmaV9zZWcgdG8gc2VnVC4KCShkb3RfY2ZpX2VuZHByb2MpOiBPbmx5IGNhbGwgYmZkX3NldF9zZWN0aW9uX2ZsYWdzIGZvciB0YXJnZXRzCglkZWZpbmluZyBCRkRfQVNTRU1CTEVSLgoKMjAwMy0wNS0yMCAgTWljaGFsIEx1ZHZpZyAgPG1sdWR2aWdAc3VzZS5jej4KCgkqIGFzLmMgKG1haW4pOiBSZW1vdmUgdGNfY2ZpX2luaXQoKS4KCSogZHcyZ2VuY2ZpLmMgKGNmaV9wYXJzZV9hcmcpOiBBbGxvdyByZWduYW1lcyBiZWdpbm5pbmcKCXdpdGggJyUnLgoJKGNmaV9wc2V1ZG9fdGFibGUpOiBBZGQgImNmaV9yZWdpc3RlciIgZW50cnkuCgkoY2ZpX21ha2VfaW5zbik6IEhhbmRsZSBDRkFfcmVnaXN0ZXIuCgkoY2ZpX291dHB1dF9pbnNuKTogRGl0dG8uCgkoZG90X2NmaSk6IERpdHRvLgoJKGNmaV9nZXRfbGFiZWwpOiBBZGQgJ3NpbXBsZScgbW9kaWZpZXIgdG8gLmNmaV9zdGFydHByb2MuCgkoZG90X2NmaV9lbmRwcm9jKTogUmV1c2UgYWxyZWFkeSBlbWl0dGVkIENJRXMuCgoyMDAzLTA1LTIwICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXhzdG9ybXkxNi5jOiBJbmNsdWRlIGR3YXJmMmRiZy5oLgoJKG1kX3BzZXVkb190YWJsZSk6IEFkZCBlbnRyaWVzIGZvciAubG9jIGFuZCAubGluZS4KCjIwMDMtMDUtMjAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkdzJnZW5jZmkuYyAoY2ZpX3BhcnNlX2FyZyk6IE9ubHkgdXNlIHRjX3JlZ25hbWVfdG9fZHcycmVnbnVtIGlmCglkZWZpbmVkLgoJKGRvdF9jZmlfZW5kcHJvYyk6IEF2b2lkIEM5OSBjb25zdHJ1Y3QuCgoyMDAzLTA1LTIwICBNaWNoYWwgTHVkdmlnICA8bWx1ZHZpZ0BzdXNlLmN6PgoKCSogZHcyZ2VuY2ZpLmMsIGR3MmdlbmNmaS5oOiBOZXcgZmlsZXMuCgkqIGNvbmZpZy90Yy1pMzg2LmMgKHRjX3g4Nl9jZmlfaW5pdCk6IE5ldyBmdW5jdGlvbi4KCSogY29uZmlnL3RjLWkzODYuaCAoVEFSR0VUX1VTRV9DRklQT1AsIHRjX2NmaV9pbml0KTogTmV3IGRlZmluZXMuCgkqIGFzLmMgKHBhcnNlX2FyZ3MpOiBTZXQgdmVyYm9zZSBmbGFnIG9uIC0tdmVyYm9zZS4KCShtYWluKTogQ2FsbCB0Y19jZmlfaW5pdCgpL2NmaV9maW5pc2goKS4KCSogYXMuaCAodmVyYm9zZSk6IE5ldyBleHRlcm5hbCB2YXJpYWJsZS4KCSogcmVhZC5jIChwb2JlZ2luKTogSW5zZXJ0IENGSSBwb3BzIHRvIHRoZSBsaXN0LgoJKiBzeW1ib2xzLmMgKGxvY2FsX3N5bWJvbF9tYWtlKTogTWFrZSBzeW1ib2wgZXh0ZXJuYWwuCgkqIHN5bWJvbHMuaCAobG9jYWxfc3ltYm9sX21ha2UpOiBOZXcgcHJvdG90eXBlLgoJKiBNYWtlZmlsZS5hbTogQWRkIGR3MmdlbmNmaS5bY2hdIGZpbGVzLiAgUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBkb2MvYXMudGV4aW5mbzogQWRkZWQgbm9kZSAiQ0ZJIGRpcmVjdGl2ZXMiIHdpdGggZGVzY3JpcHRpb24gb2YKCWFsbCBpbXBsZW1lbnRlZCAuY2ZpXyogZGlyZWN0aXZlcy4KCSogZG9jL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBwby9QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMDUtMTkgIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGNvbmZpZy90Yy10aWM0eC5jIChtZF9hc3NlbWJsZSk6IEFkZGVkIHN1cHBvcnQgZm9yIG9uZS1saW5lIHBhcmFsbGVsCglpbnNucy4KCSogY29uZmlnL3RjLXRpYzR4Lmg6IEFkZGVkIERPVUJMRUJBUl9QQVJBTExFTCBkZWZpbml0aW9uCgoyMDAzLTA1LTE4ICBKYXNvbiBFY2toYXJkdCAgPGpsZUByaWNlLmVkdT4KCgkqIGNvbmZpZy90Yy1pODYwLmMgKGk4NjBfcHJvY2Vzc19pbnNuKTogSW5pdGlhbGl6ZSBmYyBhZnRlcgoJZWFjaCBvcGNvZGUgbWlzbWF0Y2guCgoyMDAzLTA1LTE2ICBLZWxsZXkgQ29vayAgPGtlbGxleWNvb2tAd2lkZW9wZW53ZXN0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWNjZXB0IGlbMy03XTg2IHZhcmlhbnRzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAzLTA1LTE1ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuaDogRml4IGNvbW1lbnQgZm9ybWF0dGluZy4KCjIwMDMtMDUtMTMgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogcmVhZC5jIChvbGRfYnVmZmVyLCBvbGRfaW5wdXQsIG9sZF9saW1pdCk6IFJlbW92ZSB2YXJpYWJsZXMuCgkocmVhZF9hX3NvdXJjZV9maWxlKTogRGVsZXRlIGxhYmVsIGNvbnRpbi4KCTxoYW5kbGluZyAjQVBQLyNOT19BUFA+OiBVc2UgYW4gInNiIiB0byBwdXNoICNBUFAgZXhwYW5zaW9uIGludG8KCWlucHV0IGFzIHdpdGggbWFjcm9zLCBpbnN0ZWFkIG9mIGluIHNlcGFyYXRlIG9sZF8qIHZhcmlhYmxlcy4KCVplcm8tdGVybWluYXRlIHN0cmluZyBiZWluZyBzY3J1YmJlZC4KCjIwMDMtMDUtMTIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMteHN0b3JteTE2LmMgKHNraXBwaW5nX2ZwdHIpOiBOZXcgbG9jYWwgdmFyaWFibGUuCgkobWRfYXNzZW1ibGUpOiBSZXNldCBza2lwcGluZ19mcHRyLgoJKG1kX29wZXJhbmQpOiBJZiBAZnB0cigpIGlzIGZvbGxvd2VkIGJ5IGEgbWludXMgc2lnbiwgc2V0Cglza2lwcGluZ19mcHRyIGFuZCBpZ25vcmUgdGhlIGZwdHIuICBJZiBza2lwcGluZ19mcHRyIGlzIHNldCBhbmQgYW4KCUBmcHRyIGlzIGRldGVjdGVkLCBpZ25vcmUgaXQgYW5kIHJlc2V0IHNraXBwaW5nX2ZwdHIuCgoyMDAzLTA1LTExICBKYXNvbiBFY2toYXJkdCAgPGpsZUByaWNlLmVkdT4KCgkqIGNvbmZpZy90Yy1pODYwLmMgKE1BWF9GSVhVUFMpOiBEZWZpbmUuCgkoc3RydWN0IGk4NjBfZmkgZmlbXSk6IE5ldyBzdHJ1Y3QuCgkoc3RydWN0IGk4NjBfaXQgdGhlX2luc24pOiBBZGQgYWJvdmUgYXMgbWVtYmVyIGFuZCBtb3ZlIGZpZWxkcwoJZXhwLCByZWxvYywgcGNyZWwgYW5kIGZ1cCBpbnRvIGk4NjBfZmkuCgkobWRfYXNzZW1ibGUpOiBSZXBsYWNlIGFsbCBpbnN0YW5jZXMgb2YgZXhwLCByZWxvYywgcGNyZWwKCWFuZCBmdXAgd2l0aCBmaVtdLmV4cCwgZmlbXS5yZWxvYywgZmlbXS5wY3JlbCwgZmlbXS5mdXAuCglBZGQgYSBsb29wIHRvIHBvc3NpYmx5IGVtaXQgbXVsdGlwbGUgZml4LXVwcyBmb3IgZWFjaCBpbnNuLgoJKGk4NjBfcHJvY2Vzc19pbnNuKTogTGlrZXdpc2UuCgkoaTg2MF9nZXRfZXhwcmVzc2lvbik6IExpa2V3aXNlLgoJKG1kX2FwcGx5X2ZpeDMpOiBVc2UgYSBiaXR3aXNlIGNoZWNrIGZvciBPUF9JTU1fVTUsIG5vdCBlcXVhbGl0eS4KCjIwMDMtMDUtMDkgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBjb25maWcvdGMtczM5MC5jIChzMzkwX3RhcmdldF9mb3JtYXQpOiBBbHdheXMgY2FsbCBpbml0X2RlZmF1bHRfYXJjaC4KCjIwMDMtMDUtMDcgIEguSi4gTHUgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL3RjLWlhNjQuYyAoYWxpYXNfaGFzaCk6IE5ldy4KCShhbGlhc19uYW1lX2hhc2gpOiBOZXcuCgkoc2VjYWxpYXNfaGFzaCk6IE5ldy4KCShzZWNhbGlhc19uYW1lX2hhc2gpOiBOZXcuCgkobWRfcHNldWRvX3RhYmxlKTogQWRkICJzZWNhbGlhcyIuCgkobWRfYmVnaW4pOiBJbml0aWFsaXplIGFsaWFzX2hhc2gsIGFsaWFzX25hbWVfaGFzaCwKCXNlY2FsaWFzX2hhc2ggYW5kIHNlY2FsaWFzX25hbWVfaGFzaC4KCShzdHJ1Y3QgYWxpYXMpOiBOZXcuCgkoZG90X2FsaWFzKTogSW1wbGVtZW50IC5hbGlhcyBhbmQgLnNlY2FsaWFzIGRpcmVjdGl2ZXMuCgkoZG9fYWxpYXMpOiBOZXcuCgkoaWE2NF9hZGp1c3Rfc3ltdGFiKTogTmV3LgoJKGRvX3NlY2FsaWFzKTogTmV3LgoJKGlhNjRfZnJvYl9maWxlKTogTmV3LgoKCSogY29uZmlnL3RjLWlhNjQuaCAoaWE2NF9hZGp1c3Rfc3ltdGFiKTogTmV3LgoJKHRjX2FkanVzdF9zeW10YWIpOiBEZWZpbmVkLgoJKGlhNjRfZnJvYl9maWxlKTogTmV3LgoJKHRjX2Zyb2JfZmlsZSk6IERlZmluZWQuCgoyMDAzLTA1LTA3ICBEbWl0cnkgRGlreSAgPGRpd2lsQG1haWwucnU+CgoJKiB0Yy1tc3A0MzAuYzogQWRkIG1pc3NpbmcgbGluZXMgdG8ga25vd24gY3B1cyBsaXN0LgoKMjAwMy0wNS0wNiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW4gKE1JUFNfREVGQVVMVF9BQkkpOiBBQ19ERUZJTkUuCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfYWZ0ZXJfcGFyc2VfYXJncyk6IFNldCBtaXBzX2FiaSB0byBpdC4KCSogY29uZmlnLmluLCBjb25maWd1cmU6IFJlYnVpbHQuCgoyMDAzLTA1LTA1ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKHRjX2dlbl9yZWxvYyk6IEFkZCBhZGRlbmQganVzdCBvbmNlIGlmCglob3d0by0+cGFydGlhbF9pbnBsYWNlIGlzIGZhbHNlLgoKMjAwMy0wNS0wNSAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzX25lZWRfZWxmX2FkZGVuZF9maXh1cCk6IFJlbW92ZQoJc3ltYm9sX3VzZWRfaW5fcmVsb2NfcCBjaGVjay4KCShtZF9hcHBseV9maXgzKTogUmVtb3ZlIGNoZWNrIGZvciBob3d0by0+cGNyZWxfb2Zmc2V0LgoKMjAwMy0wNS0wMyAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBjb25maWcvb2JqLWVsZi5jIChvYmpfZWxmX3BhcnNlX3NlY3Rpb25fbGV0dGVycyk6IE1ha2UgaXQgYQoJZmF0YWwgZXJyb3IgZm9yIHVua25vd24gc2VjdGlvbiBhdHRyaWJ1dGUuCgoJKiBjb25maWcvdGMtYWxwaGEuYyAoYWxwaGFfZWxmX3NlY3Rpb25fbGV0dGVyKTogUmV0dXJuIC0xIGZvcgoJdW5rbm93biBzZWN0aW9uIGF0dHJpYnV0ZS4KCSogY29uZmlnL3RjLWlhNjQuYyAoaWE2NF9lbGZfc2VjdGlvbl9sZXR0ZXIpOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXBwYy5jIChwcGNfc2VjdGlvbl9sZXR0ZXIpOiBMaWtld2lzZS4KCgkqIGNvbmZpZy90Yy1pYTY0LmMgKGlhNjRfZWxmX3NlY3Rpb25fbGV0dGVyKTogSGFuZGxlICdvJy4KCShpYTY0X2VsZl9zZWN0aW9uX3R5cGUpOiBBY2NlcHQgInVud2luZCIuCgoyMDAzLTA1LTAyICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIHJlYWQuaCAoZGVtYW5kX2NvcHlfc3RyaW5nKTogTmV3LgoKCSogY29uZmlnL3RjLWFscGhhLmMgKGRlbWFuZF9jb3B5X3N0cmluZyk6IFJlbW92ZWQuCgoyMDAzLTA1LTAyICBNaWNoYWVsIFNueWRlciAgPG1zbnlkZXJAcmVkaGF0LmNvbT4KCgkqIHdyaXRlLmggKEZBS0VfTEFCRUxfTkFNRSk6IEFsbG93IG92ZXJyaWRlCgkoZm9yIHRhcmdldHMgdGhhdCBsaWtlIGVnLiBhIGxlYWRpbmcgZG90IGluIGEgbG9jYWwgbGFiZWwpLgoKMjAwMy0wNS0wMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy14c3Rvcm15MTYuYyAoeHN0b3JteTE2X21kX2FwcGx5X2ZpeDMpOiBEbyBub3QgYmlhcyB0aGUKCWFkZGVuZCB3aXRoIHRoZSBzeW1ib2wncyB2YWx1ZSBmb3IgcGMtcmVsYXRpdmUgcmVsb2NhdGlvbnMgYWdhaW5zdAoJYSBkZWZpbmVkIHN5bWJvbCAtIHRoaXMgd2lsbCBiZSBkb25lIGF1dG9tYXRpY2FsbHkuCgoyMDAzLTA1LTAxICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZy9vYmotZWxmLmMgKG9ial9lbGZfdHlwZSk6IEFjY2VwdCAibm90eXBlIiBhbmQKCSJTVFRfTk9UWVBFIi4KCjIwMDMtMDUtMDEgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogY29uZmlnL3RjLWlhNjQuaCAodGNfY2Fub25pY2FsaXplX3NlY3Rpb25fbmFtZSk6IE5ldy4KCgkqIGNvbmZpZy9vYmotZWxmLmMgKG9ial9lbGZfc2VjdGlvbl9uYW1lKTogQ2FsbAoJdGNfY2Fub25pY2FsaXplX3NlY3Rpb25fbmFtZSBpZiBpdCBpcyBkZWZpbmVkLgoKMjAwMy0wNS0wMSAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBjb25maWcvdGMtaWE2NC5jIChpYTY0X2NoZWNrX2xhYmVsKTogTmV3LgoJKiBjb25maWcvdGMtaWE2NC5oICh0Y19jaGVja19sYWJlbCk6IE5ldy4KCgkqIHJlYWQuYyAocmVhZF9hX3NvdXJjZV9maWxlKTogQ2FsbCB0Y19jaGVja19sYWJlbCBhZnRlcgoJY3JlYXRpbmcgYSB1c2VyLWRlZmluZWQgbGFiZWwgaWYgZGVmaW5lZC4KCjIwMDMtMDUtMDIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtcHBjLmMgKG1kX3Nob3dfdXNhZ2UpOiBNZW50aW9uIC1hMzIsIC1hNjQsIC1sLCAtbGUsIC1iLAoJLWJlIGFuZCBzcGxpdCBzdHJpbmdzIHRvIGJlbG93IDUwOSBieXRlcyBpbiBsZW5ndGguCgoyMDAzLTA1LTAxICBDaHJpc3RpYW4gR3JvZXNzbGVyIDxjaHJpc0Bncm9lc3NsZXIub3JnPgoKCSogZXhwci5oOiBGaXggY29tbWVudHMgaW4gb3BlcmF0b3JUIHR5cGVkZWYuCgkqIGNvbmZpZy90Yy16OGsuYzogQWRkIDIwMDMgdG8gY29weXJpZ2h0IG1lc3NhZ2UuCglGb2xkIHNfc2VnbSgpIGFuZCBzX3Vuc2VnKCkgaW50byBvbmUgZnVuY3Rpb24gc19zZWdtKHBhcm0pIHdoaWNoCglkZWNpZGVzIGJ5IHRoZSBwYXJhbWV0ZXIuCgkobWRfYmVnaW4pOiBEb24ndCBzZXQgbGlua3JlbGF4LiAgT25seSBzZXQgWjgwMDIgZGVmYXVsdCBpZiBubwoJY29tbWFuZCBsaW5lIGFyZ3VtZW50IHdhcyBnaXZlbiB0byBzZWxlY3QgdGhlIGludGVuZGVkCglhcmNoaXRlY3VyZS4KCShnZXRfaW50ZXJydXB0X29wZXJhbmQpOiBXYXJuIGlmIE5PUCB0eXBlIGNvZGUgaXMgZW1pdHRlZC4KCShuZXdmaXgpOiBOZXcgcGFyYW1ldGVyICdzaXplJywgZm9yd2FyZCBpdCB0byAnZml4X25ld19leHAnLgoJKGFwcGx5X2ZpeCk6IENhbGwgbmV3Zml4IHdpdGggYWRkaXRpb25hbCAnc2l6ZScgcGFyYW1ldGVyLgoJKGJ1aWxkX2J5dGVzKTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSAnbmliJy4gIERldGVjdCBvdmVyZmxvdyBpbgoJNCBiaXQgaW1tZWRpYXRlIGFyZ3VtZW50cy4KCShtZF9sb25nb3B0cyk6IEFkZCAnbGlua3JlbGF4JyBvcHRpb24uCgkobWRfcGFyc2Vfb3B0aW9uKTogQWRhcHQgdG8gbmV3IHNfc2VnbSBmdW5jdGlvbi4gIFNldCAnbGlua3JlbGF4JwoJdmFyaWFibGUgd2hlbiAnbGlua3JlbGF4JyBjb21tYW5kIGxpbmUgb3B0aW9uIGlzIHNwZWNpZmllZC4KCShtZF9zaG93X3VzYWdlKTogRGlzcGxheSAnbGlua3JlbGF4JyBvcHRpb24uCgkobWRfYXBwbHlfZml4Myk6IEZpeCBjYXNlcyBSX0lNTTRMLCBSX0pSLCBhbmQgUl9JTU04LiAgQWRkIGNhc2VzCglSX0NBTExSIGFuZCBSX1JFTDE2LgoJKiBjb25maWcvdGMtejhrLmg6IFVuZGVmIFdBUk5fU0lHTkVEX09WRVJGTE9XX1dPUkQuCgoyMDAzLTA0LTMwICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZy90Yy1pYTY0LmMgKGlhNjRfbnVtYmVyX3RvX2NoYXJzKTogTmV3IGZ1bmN0aW9uIHBvaW50ZXIuCgkoaWE2NF9mbG9hdF90b19jaGFycyk6IExpa2V3aXNlLgoJKGRvdF9ieXRlb3JkZXIpOiBTZXQgdGFyZ2V0X2JpZ19lbmRpYW4sIGlhNjRfbnVtYmVyX3RvX2NoYXJzCglhbmQgaWE2NF9mbG9hdF90b19jaGFycyBieSB0Y19zZWdtZW50X2luZm9fZGF0YS5lbmRpYW4gZnJvbQoJdGhlIGN1cnJlbnQgc2VnbWVudCBpZiBieXRlb3JkZXIgPT0gLTEuCgkobWRfYmVnaW4pOiBDYWxsIGRvdF9ieXRlb3JkZXIgdG8gc2V0IHRhcmdldF9iaWdfZW5kaWFuLgoJKG1kX2F0b2YpOiBDYWxsIGlhNjRfZmxvYXRfdG9fY2hhcnMgdG8gY29udmVydCBmbG9hdGluZyBwb2ludC4KCShpYTY0X2Zsb2F0X3RvX2NoYXJzX2JpZ2VuZGlhbik6IE5ldyBmdW5jdGlvbi4KCShpYTY0X2Zsb2F0X3RvX2NoYXJzX2xpdHRsZWVuZGlhbik6IExpa2V3aXNlLgoJKGlhNjRfZWxmX3NlY3Rpb25fY2hhbmdlX2hvb2spOiBMaWtld2lzZS4KCgkqIGNvbmZpZy90Yy1pYTY0LmggKGlhNjRfbnVtYmVyX3RvX2NoYXJzKTogTmV3LgoJKG1kX251bWJlcl90b19jaGFycyk6IENoYW5nZWQgdG8gKCppYTY0X251bWJlcl90b19jaGFycykKCShpYTY0X2VsZl9zZWN0aW9uX2NoYW5nZV9ob29rKTogTmV3LgoJKG1kX2VsZl9zZWN0aW9uX2NoYW5nZV9ob29rKTogRGVmaW5lZC4KCShpYTY0X3NlZ21lbnRfaW5mb190eXBlKTogTmV3IHN0cnVjdC4KCShUQ19TRUdNRU5UX0lORk9fVFlQRSk6IERlZmluZWQuCgoyMDAzLTA0LTMwICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZy90Yy1pYTY0LmMgKG1kX3NlY3Rpb25fYWxpZ24pOiBEZWxldGVkLgoKCSogY29uZmlnL3RjLWlhNjQuaCAoU1VCX1NFR01FTlRfQUxJR04pOiBOZXcuCgkobWRfc2VjdGlvbl9hbGlnbik6IE5ldy4KCjIwMDMtMDQtMzAgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogY29uZmlnL3RjLWlhNjQuYyAoc3RtdF9mbG9hdF9jb25zKTogRml4IGFsaWdubWVudCBmb3IgcmVhbDEwCglhbmQgYWRkIHJlYWwxNi4KCShtZF9wc2V1ZG9fdGFibGUpOiBBZGQgInhyZWFsMTYiLCAieHJlYWwxNi51YSIsICJyZWFsMTYiIGFuZAoJInJlYWwxNi51YSIuCgkobWRfYXRvZik6IEFkZCA2IGJ5dGUgcGFkZGluZyBvZiB6ZXJvIGZvciByZWFsMTYuCgoyMDAzLTA0LTI5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL29iai1lbGYuYyAob2JqX2VsZl9zeW12ZXIpOiBTa2lwIHdoaXRlc3BhY2UgYmVmb3JlIHRoZQoJc3RhcnQgb2YgYSB2ZXJzaW9uIG5hbWUuCgoyMDAzLTA0LTI4ICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogY29uZmlndXJlLmluIChtaXBzLSotKm4qYnNkKik6IFJlcGxhY2Ugd2l0aC4uLgoJKG1pcHMtKi1uZXRic2QqLCBtaXBzLSotb3BlbmJzZCopOiBUaGVzZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMy0wNC0yOCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBjb25maWcvdGMtaHBwYS5jIChocHBhX3N5bWJvbF9jaGFycyk6IE5ldy4KCSogY29uZmlnL3RjLWhwcGEuaCAodGNfc3ltYm9sX2NoYXJzKTogTGlrZXdpc2UuCgoyMDAzLTA0LTI2ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuaCAoVENfRk9SQ0VfUkVMT0NBVElPTl9TVUJfU0FNRSk6IERlZmluZSBhZ2Fpbi4KCjIwMDMtMDQtMjUgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBORVdTOiBCZWxhdGVkbHkgbWVudGlvbiBzdXBwb3J0IGZvciBNSVBTMzIgUmVsZWFzZSAyLgoKMjAwMy0wNC0yNCAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChub3BpY19uZWVkX3JlbGF4KTogUmV2ZXJ0IHByZXZpb3VzCgljaGFuZ2UuCgoyMDAzLTA0LTI0IERoYW5hbmpheSBEZXNocGFuZGUgPGRoYW5hbmpheWRAa3BpdGN1bW1pbnMuY29tPgoKCSogY29uZmlnL3RjLWg4MzAwLmggKERXQVJGMl9MSU5FX01JTl9JTlNOX0xFTkdUSCk6IE5ldwoJKiBjb25maWcvdGMtaDgzMDAuYyAoZHdhcmYyZGJnLmgpOiBJbmNsdWRlCgkobWRfcHNldWRvX3RhYmxlKTogSGFuZGxlIC5sb2MgYW5kIC5maWxlCgkobWRfYXNzZW1ibGUpOiBDYWxsIGR3YXJmMl9lbWl0X2luc24gaWYgQkZEX0FTU0VNQkxFUi4KCSogTWFrZWZpbGUuYW06IEFkZCBkZXBlbmRlbmN5IG9uIGR3YXJmMmRiZy5oIGZvciBoODMwMCB0YXJnZXRzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMDQtMjQgRGhhbmFuamF5IERlc2hwYW5kZSA8ZGhhbmFuamF5ZEBrcGl0Y3VtbWlucy5jb20+CgoJKiBjb25maWcvdGMtaDgzMDAuYyAoTm1vZGUsIGg4MzAwaG5tb2RlLCBoODMwMHNubW9kZSk6IE5ldy4KCShtZF9wc2V1ZG9fdGFibGUpOiBBZGQgaDgzMDBobiwgaDgzMDBzbi4KCSogY29uZmlnL3RjLWg4MzAwLmggKENPRkZfTUFHSUMpOiBIYW5kbGUgaDgzMDBobiwgaDgzMDBzbi4KCSogZG9jL2MtaDgzMDAudGV4aSA6IEFkZCBkb2N1bWVudGF0aW9uIGZvciBuZXcgbWFjaGluZSBkaXJlY3RpdmVzLgoKMjAwMy0wNC0yNCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAocHBjX3N5bWJvbF9jaGFycyk6IERlZmluZS4KCSogY29uZmlnL3RjLXBwYy5oICh0Y19zeW1ib2xfY2hhcnMpOiBEZWZpbmUuCgoyMDAzLTA0LTIzICBKIm9ybiBSZW5uZWNrZSA8am9lcm4ucmVubmVja2VAc3VwZXJoLmNvbT4KCgkqIGNvbmZpZy90Yy1zaC5jOiBBbWVuZCBjb21tZW50IHRvIHJlZmVyIHRvIFN1cGVySC4KCSogY29uZmlnL3RjLXNoLmg6IExpa2V3aXNlLgoJKExJU1RJTkdfSEVBREVSKTogQW1lbmQgdG8gcmVmZXIgdG8gU3VwZXJILgoJKiBjb25maWcvdGMtc2g2NC5jOiBDaGFuZ2UgY29tbWVudCB0byByZWZlciB0byBTdXBlckguCgkqIGNvbmZpZy90Yy1zaDY0LmggKExJU1RJTkdfSEVBREVSKTogQ2hhbmdlIHRvIHJlZmVyIHRvIFN1cGVySC4KCSogZG9jL2FzLnRleGluZm8gW1NILCBHRU5FUklDXTogQW1lbmQgLyBDaGFuZ2UgdG8gcmVmZXIgdG8gU3VwZXJILgoJKiBkb2MvYy1zaC50ZXhpOiBBbWVuZCB0byByZWZlciB0byBTdXBlckguCglBZGQgU3VwZXJIIGFyY2hpdGVjdHVyZSBkb2N1bWVudGF0aW9uIHJlZmVyZW5jZXMuCgkqIGRvYy9jLXNoNjQudGV4aTogQ2hhbmdlIHRvIHJlZmVyIHRvIFN1cGVySC4KCjIwMDMtMDQtMjMgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogYXBwLmMgKGRvX3NjcnViX2NoYXJzKTogTW9yZSBjaGVja3MgZm9yIHZhbGlkIGxhYmVscy4KCjIwMDMtMDQtMjIgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogYXBwLmMgKGRvX3NjcnViX2NoYXJzKTogQ2hlY2sgZm9yIHZhbGlkIGxhYmVsLgoKMjAwMy0wNC0yMiAgS2F6dWhpcm8gSW5hb2thICA8aW5hb2thLmthenVoaXJvQHJlbmVzYXMuY29tPgoKCSogZG9jL2FzLnRleGluZm86IFJlcGxhY2UgcmVmZXJlbmNlcyB0byBNaXRzdWJpc2hpIE0zMlIgd2l0aAoJcmVmZXJlbmNlcyB0byBSZW5lc2FzIE0zMlIuCgkqIGRvYy9jLW0zMnIudGV4aTogTGlrZXdpc2UuCgoyMDAzLTA0LTIxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZHdhcmYyZGJnLmMgKGdldF9maWxlbnVtKTogU2tpcCBhcy15ZXQgdW5hc3NpZ25lZCBmaWxlIG51bWJlcnMuCgkob3V0X2ZpbGVfbGlzdCk6IEFzc2lnbiBub24tbnVsbCBmaWxlbmFtZSBhZnRlciBnZW5lcmF0aW5nIGVycm9yLgoKMjAwMy0wNC0xOCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlaG9wdC5jIChjaGVja19laF9mcmFtZSk6IEZvciBhdWdfc2l6ZSA9PSAwCglpbiBzdGF0ZV9zZWVpbmdfYXVnX3NpemUgc3RhdGUgc2tpcCB0aGUgc3RhdGVfc2tpcHBpbmdfYXVnCglzdGF0ZS4KCjIwMDMtMDQtMTUgIFJvaGl0IEt1bWFyIFNyaXZhc3RhdmEgPHJvaGl0c0BrcGl0Y3VtbWlucy5jb20+CgoJKiBkb2MvYy1oODMwMC50ZXhpOiBSZXBsYWNlIG9jY3VycmFuY2VzIG9mICdIaXRhY2hpJyB3aXRoCgknUmVuZXNhcycuCgkqIGRvYy9jLWg4NTAwLnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy1zaC50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2Mtc2g2NC50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2g4LnRleGk6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaDgzMDAuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1oODMwMC5oOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWg4NTAwLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaDg1MDAuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1zaC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXNoLmg6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtc2g2NC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXNoNjQuaDogTGlrZXdpc2UuCgoyMDAzLTA0LTEwICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmggKHRjX2ZyYWdfZGF0YV90eXBlLCBUQ19GUkFHX1RZUEUpOiBOZXcuCgkqIGNvbmZpZy90Yy1taXBzLmM6IFVzZSBzaWduZWQgYWRkIGZvciBuMzIgYWRkcmVzcyBhcml0aG1ldGljLgoJKGFwcGVuZF9pbnNuKTogV2hlbiBmaWxsaW5nIGRlbGF5IHNsb3RzIHdpdGggaW5zdHJ1Y3Rpb25zCgl0aGF0IGhhdmUgZml4dXBzIHRoYXQgdGNfZ2VuX3JlbG9jIG1pZ2h0IGNvbnNpZGVyIG1vZGlmeWFibGUKCWluIHZhcmlhbnQgZnJhZ3MsIHN0YXJ0IGEgbmV3IGZyYWcuCgkobG9hZF9hZGRyZXNzKTogR2VuZXJhdGUgR09UX0RJU1Agd2l0aCBvZiB3aXRob3V0IG9mZnNldAoJZGVwZW5kaW5nIG9uIHdoZXRoZXIgc3ltYm9sIGlzIGxvY2FsLiAgRm9yIC14Z290LCB1c2UKCUdPVF9QQUdFL0dPVF9PRlNUIG9yIEdPVF9ISTE2L0dPVF9MTzE2LgoJKG1hY3JvKSA8TV9ETEFfQUIsIE1fTEFfQUI+OiBMaWtld2lzZS4KCTxNX0pBTF9BPjogSW4gTmV3QUJJLCB1c2UgQ0FMTDE2IG9yIEdPVF9ESVNQIGZvciBzbWFsbCBnb3QsCglDQUxMX0hJMTYvQ0FMTF9MTzE2IG9yIEdPVF9QQUdFL0dPVF9PRlNUIGZvciBiaWcgZ290LgoJPGxkX3N0PjogSW4gTmV3QUJJIHdpdGggc21hbGwgZ290LCBhbHdheXMgdXNlCglHT1RfUEFHRS9HT1RfT0ZTVCwgd2l0aCB0aGUgbGF0dGVyIGluIHRoZSBsb2FkL3N0b3JlCglpbnN0cnVjdGlvbi4gIFdpdGggYmlnIGdvdCwgdXNlIEdPVF9ISTE2L0dPVF9MTzE2IG9yCglHT1RfUEFHRS9HT1RfT0ZTVC4KCSh0Y19nZW5fcmVsb2MpOiBBZGp1c3QgdmFyaWFudCBmcmFncyB3aXRoIEdPVF9ESVNQIGluIE5ld0FCSS4KCUFkZCB0Y19mcmFnX2RhdGEudGNfZnJfb2Zmc2V0IHRvIGFkZGVuZHMuICBEZWNheSBDQUxMMTYsCglHT1RfT0ZTVCBhbmQgR09UX0RJU1AgdG8gR09UX0RJU1AgaW4gTmV3QUJJLgoJKG1kX2NvbnZlcnRfZnJhZyk6IFVzZSBtZW1tb3ZlIGZvciBzYWZlIGNvcHlpbmcgb2Ygb3ZlcmxhcHBpbmcKCXJlZ2lvbnMuCgoyMDAzLTA0LTA5ICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGRvYy9jLW02OGhjMTEudGV4aSAoTTY4SEMxMS1PcHRzKTogRG9jdW1lbnQgLW02OGhjczEyLCAtbXNob3J0LAoJLW1sb25nLCAtbXNob3J0LWRvdWJsZSBhbmQgLW1sb25nLWRvdWJsZSBvcHRpb25zOyB1c2UgdGFibGUgQGNvZGUuCgkoTTY4SEMxMS1TeW50YXgpOiBVcGRhdGUgdG8gZG9jdW1lbnQgNjhIQzEyIG9wZXJhbmRzLgoJKE02OEhDMTEtTW9kaWZpZXJzKTogTmV3IHNlY3Rpb24gZm9yIG9wZXJhbmQgbW9kaWZpZXJzLgoJKE02OEhDMTEtRGlyZWN0aXZlcyk6IE5ldyBzZWN0aW9uIGZvciBzcGVjaWZpYyBhc3NlbWJsZXIgZGlyZWN0aXZlcy4KCShNNjhIQzExLUJyYW5jaCk6IEZpeCBPdmVyZnVsbCBoYm94IGVycm9yLgoKMjAwMy0wNC0wOSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNybyk6IEFkZCBjb21tZW50cyBleHBsYWluaW5nIHRoZSByYXRpb25hbGUKCWZvciBDaHJpcycgY2hhbmdlLgoKMjAwMy0wNC0wOSAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1hY3JvKTogUHV0IGJhY2sgYCsgMHg4MDAwJyBpbiB0ZXN0IGZvciA2NC1iaXQKCWNvbnN0YW50IGFkZHJlc3MgdGhhdCBBbGV4YW5kcmUgdG9vayBvdXQgYnkgYWNjaWRlbnQuICBSZWplY3QKCTY0LWJpdCBhZGRyZXNzZXMgdGhhdCBhcmUgbm90IHNpZ24gZXh0ZW5zaW9ucyBvZiAzMiBiaXRzIG9ubHkgaWYKCXdlIGRvbid0IHN1cHBvcnQgNjQtYml0IGFkZHJlc3MgY29uc3RhbnRzLgoKMjAwMy0wNC0wOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAobWRfYXBwbHlfZml4Myk6IEdlbmVyYXRlIEFERFIxNiByZWxvY3MuCgoyMDAzLTA0LTA4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogYXMuYyAocGVyZm9ybV9hbl9hc3NlbWJseV9wYXNzKTogSWYgdXNpbmcgY2dlbiwgY2FsbAoJZ2FzX2NnZW5fYmVnaW4uCgkqIGNnZW4uYyAoZ2FzX2NnZW5fYmVnaW4pOiBOZXcgZnVuY3Rpb24uICBJZgoJZmxhZ19zaWduZWRfb3ZlcmZsb3dfb2sgaXMgc2V0IGNhbGwgY2dlbl9zZXRfc2lnbmVkX292ZXJmbG93X29rCglvdGhlcndpc2UgY2FsbCBjZ2VuX2NsZWFyX3NpZ25lZF9vdmVyZmxvd19vay4KCSogY2dlbi5oOiBQcm90b3R5cGUgZ2FzX2NnZW5fYmVnaW4uCgoyMDAzLTA0LTA3ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogd3JpdGUuYyAod3JpdGVfcmVsb2NzKTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KCjIwMDMtMDQtMDYgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChIQVZFXzY0QklUX0FERFJFU1NfQ09OU1RBTlRTKTogTmV3LgoJKG1hY3JvKTogVXNlIG5ldyBtYWNybyB0byBkZWNpZGUgd2hldGhlciB0byBlbWl0IGNvbnN0YW50IGFkZHJlc3MKCWFzIDMyIG9yIDY0IGJpdHMgaWYgYWRkcmVzc2VzIGFyZSAzMi1iaXQgd2lkZSBidXQgcmVnaXN0ZXJzIGFyZQoJNjQtYml0IHdpZGUuCgoyMDAzLTA0LTA1ICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGNvbmZpZy90Yy1tNjhoYzExLmMgKE02ODExX09QX0NBTExfQUREUik6IE5ldyBpbnRlcm5hbCBkZWZpbmUuCgkoTTY4MTFfT1BfUEFHRV9BRERSKTogTmV3IGludGVybmFsIGRlZmluZS4KCShnZXRfb3BlcmFuZCk6IE5ldyBtb2RpZmllciAlcGFnZSBhbmQgJWFkZHIgdG8gb2J0YWluIHBhZ2UgYW5kCglhZGRyZXNzIHBhcnQgb2YgYSBmYXItZnVuY3Rpb24uCgkoZml4dXA4KTogVXNlIEJGRF9SRUxPQ19NNjhIQzExX1BBR0UgZm9yIGEgJXBhZ2UgbW9kaWZpZXI7IGRvbid0Cgljb21wbGFpbiBvbiBvdmVyZmxvdyBmb3IgdGhlIEJGRF9SRUxPQ19NNjhIQzExX1BBR0UgYW5kIHRydW5jYXRpb24KCXJlbG9jcy4KCShmaXh1cDE2KTogVXNlIEJGRF9SRUxPQ19NNjhIQzExX0xPMTYgZm9yIGEgJWFkZHIgbW9kaWZpZXIuCgkoZmluZF9vcGNvZGUpOiBBZGQgY29tbWVudC4KCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IEZvcmNlIHJlbG9jYXRpb24gb2YKCVNUQVRFX1VOREVYRURfT0ZGU0VUIHR5cGVzIHdoZW4gdGhlIHN5bWJvbCBpcyBub3QgYWJzb2x1dGUuCgkodGNfbTY4aGMxMV9maXhfYWRqdXN0YWJsZSk6IENoZWNrIGZvciBCRkRfUkVMT0NfTTY4SEMxMV9MTzE2CglpbnN0ZWFkIG9mIEJGRF9SRUxPQ19MTzE2OyB0ZW1wb3JhcmlseSBtYWtlIHRoZSBCRkRfUkVMT0NfMzIKCW9uIHRoZSBzeW1ib2wgaXRzZWxmIHNvIHRoYXQgRFdBUkYyIHN0cmluZ3MgYXJlIG1lcmdlZCBjb3JyZWN0bHkuCgoyMDAzLTA0LTA0ICBTdmVpbiBFLiBTZWxkYWwgIDxTdmVpbi5TZWxkYWxAc29saWRhcy5jb20+CgoJKiBjb25maWcvb2JqLWNvZmYuaCAoVEFSR0VUX0ZPUk1BVCk6IE5hbWVzcGFjZSBjbGVhbnVwLCBjaGFuZ2VkCglkZWZhdWx0IHRpYzR4IHRhcmdldCBmb3JtYXQgdG8gJ2NvZmYyLXRpYzR4Jy4KCSogY29uZmlnL3RjLXRpYzR4LmM6IE5hbWVzcGFjZSBjbGVhbnVwLiBSZXBsYWNlIHMvYzR4L3RpYzR4LyBhbmQKCXMvYzN4L3RpYzN4LwoJKiBjb25maWcvdGMtdGljNHguaDogRGl0dG8KCjIwMDMtMDQtMDMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBORVdTOiBNZW50aW9uIHN1cHBvcnQgZm9yIFh0ZW5zYSBhcmNoaXRlY3R1cmUuCgoyMDAzLTA0LTAyICBQaGlsaXAgQmx1bmRlbGwgIDxwaGlsYkBnbnUub3JnPgoKCSogY29uZmlnL3RjLWFybS5jIChhcm1fZm9yY2VfcmVsb2NhdGlvbik6IFJldHVybiAwIGZvciBPRkZTRVRfSU1NLgoKMjAwMy0wNC0wMiAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1hY3JvMik6IEFkanVzdCBpbXBsZW1lbnRhdGlvbiBvZgoJTV9VTEgsIE1fVUxIVSwgTV9VTFcsIGFuZCBNX1VMRCBzbyB0aGF0IHRoZXkgd29yayBwcm9wZXJseQoJaW4gdGhlIGNhc2Ugd2hlcmUgdGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gcmVnaXN0ZXJzCglhcmUgdGhlIHNhbWUuCgoyMDAzLTA0LTAxICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogTWFrZWZpbGUuYW0gKENQVV9UWVBFUyk6IEFkZCB4dGVuc2EuCgkoVEFSR0VUX0NQVV9DRklMRVMpOiBBZGQgY29uZmlnL3RjLXh0ZW5zYS5jLgoJKFRBUkdFVF9DUFVfSEZJTEVTKTogQWRkIGNvbmZpZy90Yy14dGVuc2EuaC4KCSh4dGVuc2EtcmVsYXgubyk6IE5ldyB0YXJnZXQuCglSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS5pbjogSGFuZGxlIHh0ZW5zYS0qLSouICBBZGQgeHRlbnNhLXJlbGF4Lm8gdG8KCWV4dHJhX29iamVjdHMgZm9yIHh0ZW5zYSB0YXJnZXRzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIHdyaXRlLmMgKHdyaXRlX29iamVjdF9maWxlKTogQWRkIG5ldyBtZF9wb3N0X3JlbGF4X2hvb2suCgkqIGNvbmZpZy90Yy14dGVuc2EuYzogTmV3IGZpbGUuCgkqIGNvbmZpZy90Yy14dGVuc2EuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy94dGVuc2EtaXN0YWNrLmg6IExpa2V3aXNlLgoJKiBjb25maWcveHRlbnNhLXJlbGF4LmM6IExpa2V3aXNlLgoJKiBjb25maWcveHRlbnNhLXJlbGF4Lmg6IExpa2V3aXNlLgoJKiBkb2MvTWFrZWZpbGUuYW0gKENQVV9ET0NTKTogQWRkIGMteHRlbnNhLnRleGkuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZG9jL2FsbC50ZXhpOiBTZXQgbmV3IFhURU5TQSB2YXJpYWJsZS4KCSogZG9jL2FzLnRleGluZm86IFNldCBuZXcgWHRlbnNhIHZhcmlhYmxlLiAgRGVzY3JpYmUKCVh0ZW5zYS1zcGVjaWZpYyBvcHRpb25zLiAgRGVmaW5lIGxpbmUgY29tbWVudCBjaGFyYWN0ZXIgZm9yCglYdGVuc2EuICBBZGQgWHRlbnNhIHByb2Nlc3NvcnMgdG8gbGlzdCBvZiBFTEYgdGFyZ2V0cyB3aGVyZQoJYWxpZ25tZW50IGlzIHNwZWNpZmllZCBpbiBieXRlcy4gIEFkZCBuZXcgWHRlbnNhLURlcGVuZGVudCBub2RlLgoJQWRkIGFja25vd2xlZGdlbWVudHMgZm9yIHRob3NlIGNvbnRyaWJ1dGluZyB0byB0aGUgWHRlbnNhIHBvcnQuCgkqIGRvYy9pbnRlcm5hbHMudGV4aTogRGVzY3JpYmUgbmV3IG1kX3Bvc3RfcmVsYXhfaG9vay4KCSogZG9jL2MteHRlbnNhLnRleGk6IE5ldyBmaWxlLgoKMjAwMy0wNC0wMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCSAgICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYzogUmVtb3ZlIHByZXNlbmNlIG9mIChyKSBhbmQgKHRtKSBzeW1ib2xzLgoJKEFSTV9BUkNIX0lXTU1YVCk6IFNpbXBsaWZ5LgoJKGluc25zKTogUGxhY2UgaXdtbXggaW5zdHJ1Y3Rpb25zIGluIGNvcnJlY3QgcGxhY2UgaW4gdGFibGUuCgkoYXJtX2FkZF9ub3RlKTogTmV3IGZ1bmN0aW9uOiBBZGQgYSBub3RlIGVudHJ5IHRvIGEgLm5vdGUgc2VjdGlvbi4KCShtZF9iZWdpbik6IE1ha2UgdGhlIGRlZmF1bHQgYXJjaGl0ZWN0dXJlIGJlIHVua25vd24uCglTdXBwcmVzcyB0aGUgY3JlYXRpb24gb2YgYW4gYXJtIG5vdGUgc2VjdGlvbi4KCjIwMDMtMDMtMjYgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobm9waWNfbmVlZF9yZWxheCk6IENoZWNrIGZvciBTX0lTX0VYVEVSTi4KCjIwMDMtMDMtMjUgIFN0YW4gQ294ICAgPHNjb3hAcmVkaGF0LmNvbT4KCSAgICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCUNvbnRyaWJ1dGUgc3VwcG9ydCBmb3IgSW50ZWwncyBpV01NWHQgY2hpcCAtIGFuIEFSTSB2YXJpYW50OgoKCSogY29uZmlnL3RjLWFybS5jOiAoQVJNX0NFWFRfSVdNTVhULCBBUk1fQVJDSF9JV01NWFQsIFdSX1BSRUZJWCwKCVdDX1BSRUZJWCwgUkVHX1RZUEVfSVdNTVhUKTogTmV3IGNvbnN0YW50cy4KCShlbnVtIHdyZWdfdHlwZSwgZW51bSBpd21teHRfaW5zbl90eXBlKTogTmV3IHR5cGVzLgoJKHdyX3JlZ2lzdGVyLCB3Y19yZWdpc3Rlciwgd2NnX3JlZ2lzdGVyKTogTmV3IG1hY3Jvcy4KCShpd21teHRfdGFibGUpOiBOZXcgdmFyaWFibGUuCgkod3JlZ19yZXF1aXJlZF9oZXJlLCBkb19pd21teHRfYnl0ZV9hZGRyLCBkb19pd21teHRfdGFuZGMsCglkb19pd21teHRfdGJjc3QsIGRvX2l3bW14dF90ZXh0cmMsIGRvX2l3bW14dF90ZXh0cm0sCglkb19pd21teHRfdGluc3IsIGRvX2l3bW14dF90bWNyLCBkb19pd21teHRfdG1jcnIsIGRvX2l3bW14dF90bWlhLAoJZG9faXdtbXh0X3Rtb3Ztc2ssIGRvX2l3bW14dF90bXJjLCBkb19pd21teHRfdG1ycmMsCglkb19pd21teHRfdG9yYywgZG9faXdtbXh0X3dhbGlnbmksIGRvX2l3bW14dF93bW92LAoJZG9faXdtbXh0X3dvcmRfYWRkciwgZG9faXdtbXh0X3dyd3IsIGRvX2l3bW14dF93cndyd2NnLAoJZG9faXdtbXh0X3dyd3J3ciwgZG9faXdtbXh0X3dzaHVmaCwgZG9faXdtbXh0X3d6ZXJvLAoJY3BfYnl0ZV9hZGRyZXNzX29mZnNldCwgY3BfYnl0ZV9hZGRyZXNzX3JlcXVpcmVkX2hlcmUsCgljaGVja19pd21teHRfaW5zbik6IE5ldwlmdW5jdGlvbnMuCgkoYXNtX29wY29kZV9pbnNucyk6IEFkZCBpV01NWHQgaW5zdHJ1Y3Rpb25zLgoJKG1kX2JlZ2luKTogU2V0IHRoZSBtYWNoIHZhbHVlIGZvciBpV01NWHQgdGFyZ2V0cy4gIENyZWF0ZSBhIG5vdGUKCXNlY3Rpb24gdG8gaWRlbnRpZnkgaXdtbXh0IGJpbmFyaWVzLgoJKG1kX2FwcGx5X2ZpeDMpOiBIYW5kbGUgQkZEX1JFTE9DX0FSTV9DUF9PRkZfSU1NX1MyLgoJKiBkb2MvYy1hcm0udGV4aTogRG9jdW1lbnQgdGhlIHN1cHBvcnQgZm9yIHRoZSBpV01NWHQuCgkqIE5FV1M6IE1lbnRpb24gbmV3IHN1cHBvcnQuCgoyMDAzLTAzLTI0ICBEYW5pZWwgTulyaSAgPGRuZUBtYXlvbm5haXNlLm5ldD4KCgkqIGRvYy9hcy50ZXhpbmZvOiBSZW5hbWUgdGhlIGFsbCBvY2N1cmFuY2VzIG9mIEM1NFggdG8gVElDNTRYLgoJKiBkb2MvYWxsLnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy10aWM1NHgudGV4aTogTGlrZXdpc2UuCgoyMDAzLTAzLTIxICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogY29uZmlnL3RjLWlhNjQuYyAoZ2VuZXJhdGVfdW53aW5kX2ltYWdlKTogRml4IHR5cGUgb2YgdW53X3JlYyB0bwoJYXZvaWQgYWxpYXNpbmcgaXNzdWUuCgoyMDAzLTAzLTIxICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogY29uZmlnL3RjLXMzOTAuYyAoczM5MF9hcmNoX3NpemUpOiBJbml0aWFsaXplIHRvIHplcm8uCgkoY3VycmVudF9hcmNoX21hc2spOiBSZW5hbWUgdG8gY3VycmVudF9tb2RlX21hc2suCgkoY3VycmVudF9hcmNoX3JlcXVlc3RlZCk6IFJlbW92ZSB2YXJpYWJsZS4KCShjdXJyZW50X2NwdSk6IE5ldyB2YXJpYWJsZS4KCShpbml0X2RlZmF1bHRfYXJjaCk6IFNldCBkZWZhdWx0cyB2YWx1ZXMgZm9yIHMzOTBfYXJjaF9zaXplLAoJY3VycmVudF9tb2RlX21hc2sgYW5kIGN1cnJlbnRfY3B1LgoJKG1kX3BhcnNlX29wdGlvbik6IE5ldyBvcHRpb25zIC1tZXNhLCAtbXphcmNoIGFuZCAtbWFyY2g9e2c1LGc2LHo5MDB9LgoJKG1kX2JlZ2luKTogUmVwbGFjZSBjdXJyZW50X2FyY2hfbWFzayBieSBjdXJyZW50X2NwdS4KCShtZF9hc3NlbWJsZSk6IEFkYXB0IGNoZWNrIGFuZCBlcnJvciBtZXNzYWdlIHRvIGN1cnJlbnRfbW9kZV9tYXNrIGFuZAoJY3VycmVudF9jcHUuCgoyMDAzLTAzLTA5ICBKYW1lcyBFIFdpbHNvbiAgPHdpbHNvbkB0dWxpcHRyZWUub3JnPgoKCSogbWFjcm8uYyAoYnVmZmVyX2FuZF9uZXN0KTogU3RvcmUgbW9yZSB0byBzYiBpbnN0ZWFkIG9mICdcbicuCgkqIHJlYWQuYyAoZ2V0X2xpbmVfc2IpOiBSZXR1cm4gZW5kIG9mIGxpbmUgY2hhcmFjdGVyIG9yICdcbicgaWYKCWl0IGlzIHplcm8gb3Igbm9uLWV4aXN0ZW50LgoKMjAwMy0wMy0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzX3ZhbGlkYXRlX2ZpeCk6IE5ldyBmdW5jdGlvbi4KCSogY29uZmlnL3RjLW1pcHMuaCAoVENfVkFMSURBVEVfRklYKTogRGVmaW5lLgoJKG1pcHNfdmFsaWRhdGVfZml4KTogRGVjbGFyZS4KCjIwMDMtMDMtMTIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogUmV2ZXJ0ZWQgMjAwMy0wMy0wMidzIHBhdGNoLgoKMjAwMy0wMy0xMSAgU3RldmUgRWxsY2V5ICA8c2plQGN1cC5ocC5jb20+CgoJKiBkd2FyZjJkYmcuYyAoZ2VuZXJpY19kd2FyZjJfZW1pdF9vZmZzZXQpOiBOZXcuCgkoVENfRFdBUkYyX0VNSVRfT0ZGU0VUKTogUHJvdmlkZSBkZWZhdWx0LgoJKG91dF9kZWJ1Z19hcmFuZ2VzLCBvdXRfZGVidWdfaW5mbyk6IFVzZSBpdC4KCSogY29uZmlnL3RjLWlhNjQuYyAoaWE2NF9kd2FyZjJfZW1pdF9vZmZzZXQpOiBOZXcuCgkoaWE2NF9jb25zX2ZpeF9uZXcpOiBNb3ZlIEZVTkNfRFRQX1JFTEFUSVZFIGhhbmRsaW5nIC4uLgoJKGlhNjRfZ2VuX3JlYWxfcmVsb2NfdHlwZSk6IC4uLiBoZXJlLgoJKiBjb25maWcvdGMtaWE2NC5oIChUQ19EV0FSRjJfRU1JVF9PRkZTRVQpOiBOZXcuCgoyMDAzLTAzLTA5ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoc19taXBzX2VuZCk6IFJlbW92ZSAhQkZEX0FTU0VNQkxFUiBjYXNlLgoJKHNfbWlwc19lbnQpOiBMaWtld2lzZS4KCjIwMDMtMDMtMDQgIERtaXRyeSBEaWt5ICA8ZGl3aWxAbWFpbC5ydT4KCgkqIGNvbmZpZy90Yy1tc3A0MzAuYyAobWN1X3R5cGVzKTogQWRkIHJlY2VudGx5IGFubm91bmNlZCB4MTEyMgoJYW5kIHgxMTIzIGRldmljZXMsIGFkZCBtaXNzZWQgeDQzNy4KCShtZF9zaG93X3VzYWdlKTogU29ydCBkZXZpY2UgbGlzdC4KCjIwMDMtMDMtMDMgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tPgoKCSogY29uZmlnL3RjLXNoLmMgKHNoX2RzcCk6IFJlcGxhY2Ugd2l0aCBwcmVzZXRfdGFyZ2V0X2FyY2guCgkobWRfYmVnaW4pOiBVc2UgcHJlc2V0X3RhcmdldF9hcmNoLgoJKG1kX2xvbmdvcHRzKTogTWFrZSBpc2Egb3B0aW9uIHVuY29uZGl0aW9uYWwuCgkobWRfcGFyc2Vfb3B0aW9uKTogTWFrZSBPUFRJT05fRFNQIGFuZCBPUFRJT05fSVNBIHNoNCAvIGFueQoJc2V0IHByZXNldF90YXJnZXRfYXJjaC4KCShtZF9hcHBseV9maXgzKTogSWYgQkZEX0FTU0VNQkxFUiwgYWRqdXN0IFNXSVRDSF9UQUJMRSBmaXh1cHMKCWJ5IC1TX0dFVF9WQUxVRSAgKGZpeFAtPmZ4X3N1YnN5KS4KCSh0Y19nZW5fcmVsb2MpOiBGb3IgU1dJVENIX1RBQkxFIGZpeHVwcywgdGhlIHN5bWJvbCBpcyBmaXhwLT5meF9zdWJzeSwKCWFuZCB0aGUgYWRkZW5kIGlzIDAuCglBZGp1c3QgYWRkZW5kIG9mIFJfU0hfSU5EMTJXIHJlbG9jYXRpb25zIGJ5IGZpeHAtPmZ4X29mZnNldCAtIDQuCgkqIGNvbmZpZy90Yy1zaC5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9MT0NBTCk6IERlZmluZS4KCjIwMDMtMDMtMDIgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChhcHBlbmRfaW5zbik6IEFkZCBoYW5kbGluZyBvZgoJQkZEX1JFTE9DX01JUFNFTUJfMTZfUENSRUxfUzIuIEF2b2lkIGVtaXR0aW5nIHVubmVlZGVkCglCRkRfUkVMT0NfMTZfUENSRUxfUzIgcmVsb2NzIGFuZCBhZGQgZWFybGllciB3YXJuaW5ncyBhYm91dAoJbWlzYWxpZ25lZCBhZGRyZXNzIGFuZCByZWFuZ2Ugb3ZlcmZsb3cuCgkobWFjcm9fYnVpbGQpOiBBZGQgaGFuZGxpbmcgb2YgQkZEX1JFTE9DX01JUFNFTUJfMTZfUENSRUxfUzIuIEFkZAoJZWFybGllciB3YXJuaW5ncyBhYm91dCBtaXNhbGlnbmVkIGFkZHJlc3MgYW5kIHJlYW5nZSBvdmVyZmxvdy4KCShtaXBzX2lwKTogQWRkIGhhbmRsaW5nIG9mIEJGRF9SRUxPQ19NSVBTRU1CXzE2X1BDUkVMX1MyLgoJKG1kX2FwcGx5X2ZpeCk6IExpa2V3aXNlLiBGaXggd2FybmluZyBvdXRwdXQuCgkodGNfZ2VuX3JlbG9jKTogQWRkIGhhbmRsaW5nIG9mIEJGRF9SRUxPQ19NSVBTRU1CXzE2X1BDUkVMX1MyLgoJQWxsb3cgQkZEX1JFTE9DXzE2X1BDUkVMX1MyIGZvciBhbGwgQUJJcy4KCShtZF9jb252ZXJ0X2ZyYWcpOiBBZGQgaGFuZGxpbmcgb2YgQkZEX1JFTE9DX01JUFNFTUJfMTZfUENSRUxfUzIuCgoyMDAzLTAyLTIxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogTkVXUzogTWVudGlvbiBhdmFpbGFiaWxpdHkgb2YgdGVzdCBnZW5lcmF0b3IgcHJvZ3JhbS4KCjIwMDMtMDItMjEgIE1pbGVzIEJhZGVyICA8bWlsZXNAZ251Lm9yZz4KCgkqIGNvbmZpZy90Yy12ODUwLmMgKHN5c3RlbV9yZWdpc3RlcnMpOiBBZGQgdjg1MGUgZGVidWcgcmVnaXN0ZXJzLgoJKHN5c3RlbV9yZWdpc3Rlcl9uYW1lKTogQWNjZXB0IHVwIHRvIDI3ICh0aGUgbGFzdCB2ODUwZSBzeXMgcmVnaXN0ZXIpLgoKMjAwMy0wMi0yMSAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIGRvYy9hcy50ZXhpbmZvOiBEZWZpbmUgbmV3IENPRkYtRUxGIHZhcmlhYmxlIHRvIGNvbmRpdGlvbmFsaXplIHRleHQKCXJlbGV2YW50IHRvIGJvdGggQ09GRiBhbmQgRUxGLiAgRml4IG9idmlvdXMgdHlwb3MgYW5kIHRleGluZm8gYnVncy4KCUNhcGl0YWxpemUgc2VjdGlvbiBoZWFkaW5ncyBjb25zaXN0ZW50bHkuICBGb3JtYXQgaW5kZXggZW50cmllcyBtb3JlCgljb25zaXN0ZW50bHkuICBVbmNvbmRpdGlvbmFsaXplIHRleHQgYWJvdXQgd2hldGhlciB0ZXh0IGFuZCBkYXRhCglzZWN0aW9ucyBhcmUgYWx0ZXJhYmxlLiAgVXNlIEBpZm5vdHRleCBmb3IgYWx0ZXJuYXRpdmVzIHRvIEB0ZXggb3V0cHV0CglzbyB0aGF0IEhUTUwgd29ya3MuICBDbGVhbiB1cCBDT0ZGIHZzLiBFTEYgZGVzY3JpcHRpb25zIG9mIC5zZWN0aW9uLAoJLnNpemUgYW5kIC50eXBlIGRpcmVjdGl2ZXMuICBCZSBtb3JlIHBvbGl0ZSBhYm91dCBiYWQgYnVnIHJlcG9ydHMuCglNb3ZlIEZETCBpbnRvIGEgc2VwYXJhdGUgZmlsZS4KCSogZG9jL2ZkbC50ZXhpOiBOZXcgZmlsZS4KCjIwMDMtMDItMjEgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKHByZXZfcmVsb2Nfb3BfZnJhZyk6IE5ldyB2YXJpYWJsZS4KCShtYWNybyk6IENoZWNrIGl0IHRvIGRlY2lkZSB3aGV0aGVyIGEgbmV3IGZyYWcgaXMgbmVlZGVkLgoJKG15X2dldFNtYWxsRXhwcmVzc2lvbik6IFNldCBpdC4KCjIwMDMtMDItMjAgIGptYyAgPGptY0BwcmlvcmlzLm1pbmkucHcuZWR1LnBsPgoKCSogY2dlbi5jOiBGaXggdHlwbzogaW50aWFsIC0+IGluaXRpYWwuCgoyMDAzLTAyLTE5ICBKaWUgWmhhbmcgIDx6aGFuZ2ppZUBtYWdpbWEuY29tLmNuPgoKCSogYXBwLmMgKGRvX3NjcnViX2NoYXJzKTogSGFuZGxlICd8fCcgaW4gdHdvIHN0YXRlcy4KCjIwMDMtMDItMTMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiB3cml0ZS5jIChUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9TQU1FKTogUmV2ZXJ0IGxhc3QgY2hhbmdlLgoJKiBjb25maWcvdGMtczM5MC5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9TQU1FKTogRGVmaW5lLgoKMjAwMy0wMi0xMSAgVXdlIFN0aWViZXIgIDx1d2VAd3d3cy5kZT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHN1cHBvcnQgZm9yIGthT1MgYXMgY3Jvc3MgYnVpbGQgdGFyZ2V0IHN5c3RlbS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCjIwMDMtMDItMTAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtYXJtLmMgKG1kX2JlZ2luKTogSWYgdGhlIE1hdmVyaWNrIGNvLXByb2Nlc3NvciBpcwoJc2VsZWN0ZWQsIHNldCB0aGUgRUZfQVJNX01BVkVSSUNLX0ZMT0FUIGZsYWcgYW5kCgliZmRfbWFjaF9hcm1fZXA5MzEyIG1hY2hpbmUgbnVtYmVyLgoKMjAwMy0wMi0wOCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAocmVsb2NfbmVlZHNfbG9fcCk6IE5ldyBmdW5jdGlvbi4KCShmaXh1cF9oYXNfbWF0Y2hpbmdfbG9fcCk6IE5ldyBmdW5jdGlvbi4KCShhcHBlbmRfaW5zbik6IFVzZSByZWxvY19uZWVkc19sb19wIHRvIGNoZWNrIHdoZXRoZXIgYSByZWxvY2F0aW9uCgltaWdodCBuZWVkIGEgbWF0Y2hpbmcgJWxvKCkuICBSZXVzZSB0aGUgaGVhZCBvZiBtaXBzX2hpX2ZpeHVwX2xpc3QKCWlmIHRoYXQgZml4dXAgYWxyZWFkeSBoYXMgYSBtYXRjaGluZyAlbG8oKS4gIERvbid0IGNhbGwgZnJhZ193YW5lIGhlcmUuCgkobWFjcm8pOiBDYWxsIGZyYWdfd2FuZSBoZXJlIGlmIHRoZSBsYXN0IHVubWF0Y2hlZCBoaSB3YXMgaW4gdGhlCgljdXJyZW50IGZyYWcuCgkocGljX25lZWRfcmVsYXgpOiBOZXcgZnVuY3Rpb24sIHNwbGl0IG91dCBmcm9tLi4uCgkobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiAuLi5oZXJlLgoJKG1pcHNfZnJvYl9maWxlKTogVXNlIHJlbG9jX25lZWRzX2xvX3AuICBVc2UgcGljX25lZWRfcmVsYXggdG8gdGVzdAoJd2hldGhlciBCRkRfUkVMT0NfTUlQU19HT1QxNiBmaXh1cHMgcmVmZXIgdG8gZ2xvYmFsIHN5bWJvbHMuCgoyMDAzLTAyLTA3ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChteV9nZXRTbWFsbEV4cHJlc3Npb24pOiBSZXdvcmsgYnJhY2tldCBoYW5kbGluZy4KCjIwMDMtMDItMDYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtcHBjLmMgKHBwY19lbGZfc3VmZml4KTogVW5kbyBwYXJ0IG9mIGxhc3QgY2hhbmdlIHNvIHRoYXQKCXhAdG9jK29mZiB3b3Jrcy4KCjIwMDMtMDItMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtcHBjLmMgKG1hcHBpbmcpOiBIYW5kbGUgbmV3IFRMUyByZWxvYyBzcGVjcy4KCShwcGNfZWxmX3N1ZmZpeCk6IERvbid0IHdhcm4gZm9yIHgrb2ZmQGdvdCB3aGVuIHBwYzY0IGFuZCBkb24ndAoJYWNjZXB0IHhAZ290K29mZiBldGMuCgkobWRfYXNzZW1ibGUpOiBIYW5kbGUgVExTIHJlbG9jcy4KCShwcGNfZm9yY2VfcmVsb2NhdGlvbik6IEZvcmNlIGZvciBhbGwgVExTIHJlbG9jcy4KCShwcGNfZml4X2FkanVzdGFibGUpOiBMaWtld2lzZS4KCShtZF9hcHBseV9maXgzKTogSGFuZGxlIFRMUyByZWxvY3MuCgoyMDAzLTAyLTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL29iai1lbGYuYyAob2JqX2VsZl9jaGFuZ2Vfc2VjdGlvbik6IFNldCBTRUNfTElOS19PTkNFIGFuZAoJU0VDX0xJTktfRFVQTElDQVRFU19ESVNDQVJEIGRpcmVjdGx5IHJhdGhlciB0aGFuIHVzaW5nIGVsZl9saW5rb25jZV9wLgoKMjAwMy0wMi0wMiAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoZW51bSBzbWFsbF9leF90eXBlKTogUmVtb3ZlLgoJKGltbV91bm1hdGNoZWRfaGkpOiBSZW1vdmUuCgkobWRfYXNzZW1ibGUpOiBSZW1vdmUgdXNlIG9mIGltbV91bm1hdGNoZWRfaGkuICBSZW1vdmUgdGhlIGxhc3QKCWFyZ3VtZW50IGZyb20gY2FsbHMgdG8gYXBwZW5kX2luc24uCgkoYXBwZW5kX2luc24pOiBSZW1vdmUgdW5tYXRjaGVkX2hpIHBhcmFtZXRlcjsgY2hlY2sgcmVsb2NfdHlwZVswXQoJaW5zdGVhZC4KCShtYWNyb19idWlsZCk6IFVwZGF0ZSBhcHBlbmRfaW5zbiBjYWxscy4KCShtaXBzMTZfbWFjcm9fYnVpbGQsIG1hY3JvX2J1aWxkX2x1aSk6IExpa2V3aXNlLgoJKG1pcHNfaXApOiBSZXdvcmsgaGFuZGxpbmcgb2Ygc21hbGwgZXhwcmVzc2lvbnMuICBNb3ZlIGV4cGxpY2l0CglyZWxvY2F0aW9uIGhhbmRsaW5nIGludG8gbXlfZ2V0U21hbGxFeHByZXNzaW9uLiAgQXNzdW1lIHRoYXQgdGhlCgl2YWx1ZSBvZiAnbycgb3BlcmFuZHMgaXMgemVybyBpZiB0aGVyZSBpcyBvbmx5IG9uZSBicmFja2V0ZWQKCWV4cHJlc3Npb24gbGVmdC4KCShwZXJjZW50X29wKTogTWFrZSBjb25zdGFudC4gIFJlY29yZCB0aGUgQkZEIHJlbG9jYXRpb24gY29kZQoJYXNzb2NpYXRlZCB3aXRoIGVhY2ggb3BlcmF0b3IuCgkobXlfZ2V0U21hbGxQYXJzZXIsIG15X2dldFBlcmNlbnRPcCk6IFJlbW92ZS4KCShwYXJzZV9yZWxvY2F0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKG15X2dldFNhbWxsRXhwcmVzc2lvbik6IFJld29yay4gIEZpbGwgaW4gcmVsb2NhdGlvbnMgaGVyZQoJcmF0aGVyIHRoYW4gaW4gbWlwc19pcC4KCjIwMDMtMDEtMjkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChsaW5lX2NvbW1lbnRfY2hhcnMpOiBBZGQgJyMnLiAgVGhpcyBtYWtlcyB0aGUKCWFzc2VtYmxlcidzIGhhbmRsaW5nIG9mICMgPGxpbmVudW0+ICI8ZmlsZW5hbWU+IiBkaXJlY3RpdmVzIHdvcmsuCgoyMDAzLTAxLTI4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGR3YXJmMmRiZy5jOiBJbmNsdWRlIGZpbGVuYW1lcy5oLgoJKHN0cnVjdCBmaWxlX2VudHJ5KTogTWFrZSBmaWxlbmFtZSBjb25zdCBjaGFyICouCgkoZGlycywgZGlyc19pbl91c2UsIGRpcnNfYWxsb2NhdGVkKTogTmV3IHZhcmlhYmxlcy4KCShnZXRfZmlsZW51bSk6IEFkZCBOVU0gYXJndW1lbnQuICBCdWlsZCBkaXJlY3RvcnkgdGFibGUuCgkoZHdhcmYyX3doZXJlKTogQWRqdXN0IGNhbGxlci4KCShkd2FyZjJfZGlyZWN0aXZlX2ZpbGUpOiBVc2UgZ2V0X2ZpbGVudW0gdG8gYWxsb2NhdGUKCXNsb3QgaW4gZmlsZSBhbmQgZGlyZWN0b3J5IHRhYmxlcy4KCShkd2FyZjJfZGlyZWN0aXZlX2xvYyk6IFJlY3JlYXRlIGZ1bGwgZmlsZW5hbWUgZnJvbQoJZGlyZWN0b3J5IGFuZCBmaWxlbmFtZSBwYXJ0IGlmIG5lZWRlZCBmb3IgbGlzdGluZy4KCShvdXRfZmlsZV9saXN0KTogT3V0cHV0IGRpcmVjdG9yeSB0YWJsZS4KCU91dHB1dCBtYWluIHNvdXJjZSBmaWxlIGRpcm5hbWUgYmVmb3JlIGl0cyBmaWxlbmFtZS4KCjIwMDMtMDEtMjggICAgRG1pdHJ5IERpa3kgPGRpd2lsQG1haWwucnU+CgoJKiBjb25maWcvdGMtbXNwNDMwLmM6IFJlcGxhY2Ugb2NjdXJlbmNlcyBvZiAndG9sb3dlcicgd2l0aAoJJ1RPTE9XRVInLgoKMjAwMy0wMS0yNyAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+CgoJKiBjb25maWcvdGMtaWE2NC5jIChkb3RfdmZyYW1lc3ApOiBDb3JyZWN0IGVycm9yIG1lc3NhZ2UuCgkoZG90X3ZmcmFtZXBzcCk6IERpdHRvLgoKMjAwMy0wMS0yNyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW4gKGVtKTogU2V0IHRvIGlyaXggb24gYWxsIElyaXggc3lzdGVtcy4KCSogY29uZmlndXJlOiBSZWJ1aWx0LgoJKiBjb25maWcvdGUtaXJpeC5oOiBOZXcgZmlsZS4KCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19kd2FyZjJfZm9ybWF0KTogVXNlIFRFX0lSSVggdG8gZGVjaWRlCgl3aGV0aGVyIHRvIHVzZSBJcml4LXNwZWNpZmljIDY0LWJpdCBmb3JtYXQuCgoyMDAzLTAxLTI3ICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogY29uZmlnL3RjLXMzOTAuYyAoczM5MF9lbGZfY29ucyk6IEF2b2lkIGRlc2lnbmF0ZWQgaW5pdGlhbGl6ZXJzLgoKMjAwMy0wMS0yNSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtc3BhcmMuYyAoc3BhcmNfaXApOiBIYW5kbGUgVExTICUgb3BlcmF0b3JzLgoJKHRjX2dlbl9yZWxvYyk6IEhhbmRsZSBUTFMgcmVsb2NzLgoJKHNwYXJjX2NvbnMsIGNvbnNfZml4X25ld19zcGFyYyk6IEhhbmRsZSAlcl90bHNfZHRwb2ZmLgoJKiBjb25maWcvdGMtc3BhcmMuaCAodGNfZml4X2FkanVzdGFibGUpOiBEb24ndCBhZGp1c3QgVExTCglyZWxvY3MuCgkqIGNvbmZpZy9vYmotZWxmLmMgKG9ial9lbGZfc2VjdGlvbl93b3JkKTogSGFuZGxlIHRscy4KCShvYmpfZWxmX3R5cGUpOiBIYW5kbGUgdGxzX29iamVjdC4KCjIwMDMtMDEtMjQgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBjb25maWcvdGMtczM5MC5jIChzMzkwX3Rsc19zdWZmaXgpOiBOZXcgZnVuY3Rpb24uCgkoZWxmX3N1ZmZpeF90eXBlKTogQWRkIHN1ZmZpeCBlbnVtcyBmb3IgVExTIHJlbG9jYXRpb25zLgoJKHMzOTBfZWxmX3N1ZmZpeCk6IEFkZCBzdWZmaXggc3RyaW5ncyBmb3IgVExTIHJlbG9jYXRpb25zLgoJKHMzOTBfZWxmX2NvbnMpOiBNYXAgbmV3IGxlbmdodC9lbGYgc3VmZml4IGNvbWJpbmF0aW9ucyBmb3IgVExTIHRvCgliZmQgcmVsb2NhdGlvbnMuCgkobWRfZ2F0aGVyX29wZXJhbmRzKTogTWFwIG5ldyBpbnN0cnVjdGlvbiBvcGVyYW5kL2VsZiBzdWZmaXgKCWNvbWJpbmF0aW9ucyBmb3IgVExTIHRvIGJmZCByZWxvY2F0aW9ucy4KCSh0Y19zMzkwX2ZpeF9hZGp1c3RhYmxlKTogQWRkIG5ldyBUTFMgcmVsb2NhdGlvbnMuCgkodGNfczM5MF9mb3JjZV9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgkobWRfYXBwbHlfZml4Myk6IExpa2V3aXNlLgoKMjAwMy0wMS0yNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGFzLmg6IFVwZGF0ZSBjb3B5cmlnaHQgZGF0ZS4KCSogc3ltYm9scy5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWQxMHYuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1mcjMwLmg6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaTk2MC5oOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW1pcHMuaDogTGlrZXdpc2UuCgoJKiBjb25maWcvdGMtaHBwYS5oIChESUZGX0VYUFJfT0spOiBEZWZpbmUuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogTW92ZS4KCjIwMDMtMDEtMjMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBORVdTOiBBbm5vdW5jZSBzaDJlIHN1cHBvcnQuCgoJQWRkIHNoMmUgc3VwcG9ydDoKCTIwMDItMDQtMDIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBjb25maWcvdGMtc2guYyAobWRfc2hvd191c2FnZSk6IEFkZGVkIHNoMmUgbmV4dCB0byBzaDNlLgoJKHNoX2VsZl9maW5hbF9wcm9jZXNzaW5nKTogSGFuZGxlIGFyY2hfc2gyZS4KCjIwMDMtMDEtMjMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBzeW1ib2xzLmMgKFNfRk9SQ0VfUkVMT0MpOiBBZGQgInN0cmljdCIgcGFyYW0uCgkqIHN5bWJvbHMuaCAoU19GT1JDRV9SRUxPQyk6IExpa2V3aXNlLgoJKiBjb25maWcvb2JqLWFvdXQuaCAoU19GT1JDRV9SRUxPQyk6IExpa2V3aXNlLgoJKiBjb25maWcvb2JqLWJvdXQuaCAoU19GT1JDRV9SRUxPQyk6IExpa2V3aXNlLgoJKiBjb25maWcvb2JqLWNvZmYuaCAoU19GT1JDRV9SRUxPQyk6IExpa2V3aXNlLgoJKiBjb25maWcvb2JqLWllZWUuaCAoU19GT1JDRV9SRUxPQyk6IExpa2V3aXNlLgoJKiBjb25maWcvb2JqLXZtcy5oIChTX0ZPUkNFX1JFTE9DKTogTGlrZXdpc2UuCgkqIHdyaXRlLmMgKGdlbmVyaWNfZm9yY2VfcmVsb2MpOiBOZXcgZnVuY3Rpb24uCgkoVENfRk9SQ0VfUkVMT0NBVElPTik6IFVzZSBpdCBoZXJlIGluc3RlYWQgb2YgU19GT1JDRV9SRUxPQy4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9TQU1FKTogVGVzdCBUQ19GT1JDRV9SRUxPQ0FUSU9OIHRvby4KCShhZGp1c3RfcmVsb2Nfc3ltcyk6IEFkanVzdCBTX0ZPUkNFX1JFTE9DIGNhbGwuCgkqIGFzLmggKGdlbmVyaWNfZm9yY2VfcmVsb2MpOiBEZWNsYXJlLgoJKiBkb2MvaW50ZXJuYWxzLnRleGkgKFNfRk9SQ0VfUkVMT0MpOiBVcGRhdGUuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9TVUJfU0FNRSk6IFVwZGF0ZS4KCgkqIGNvbmZpZy90Yy1hbHBoYS5jIChhbHBoYV9mb3JjZV9yZWxvY2F0aW9uKTogQWRqdXN0IHRvIHVzZQoJZ2VuZXJpY19mb3JjZV9yZWxvYy4KCShhbHBoYV9maXhfYWRqdXN0YWJsZSk6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtYXJtLmMgKGFybV9mb3JjZV9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1jcmlzLmMgKG1kX2NyaXNfZm9yY2VfcmVsb2NhdGlvbik6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtZnJ2LmMgKGZydl9mb3JjZV9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1pMzg2LmMgKG1kX2FwcGx5X2ZpeDMpOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWlhNjQuYyAoaWE2NF9mb3JjZV9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1pcDJrLmMgKGlwMmtfZm9yY2VfcmVsb2NhdGlvbik6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbTMyci5jIChtMzJyX2ZvcmNlX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW02OGhjMTEuYyAodGNfbTY4aGMxMV9mb3JjZV9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1tY29yZS5jIChtY29yZV9mb3JjZV9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfZm9yY2VfcmVsb2NhdGlvbik6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbW1peC5jIChtbWl4X2ZvcmNlX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXBwYy5jIChwcGNfZm9yY2VfcmVsb2NhdGlvbik6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtczM5MC5jICh0Y19zMzkwX2ZvcmNlX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXNoLmMgKHNoX2ZvcmNlX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCShtZF9wY3JlbF9mcm9tX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXNwYXJjLmMgKHRjX2dlbl9yZWxvYyk6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtdjg1MC5jICh2ODUwX2ZvcmNlX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXhzdG9ybXkxNi5jICh4c3Rvcm15MTZfZm9yY2VfcmVsb2NhdGlvbik6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaTM4Ni5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1tY29yZS5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1zcGFyYy5oICh0Y19maXhfYWRqdXN0YWJsZSk6IExpa2V3aXNlLgoKCSogY29uZmlnL3RjLWQxMHYuYyAoZDEwdl9mb3JjZV9yZWxvY2F0aW9uKTogRGVsZXRlLgoJKiBjb25maWcvdGMtZDEwdi5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OKTogRG9uJ3QgZGVmaW5lLgoJKiBjb25maWcvdGMtZGx4LmMgKG1kX2RseF9mb3JjZV9yZWxvY2F0aW9uKTogRGVsZXRlLgoJKiBjb25maWcvdGMtZGx4LmggKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBEb24ndCBkZWZpbmUuCgkqIGNvbmZpZy90Yy1mcjMwLmMgKGZyMzBfZm9yY2VfcmVsb2NhdGlvbik6IERlbGV0ZS4KCSogY29uZmlnL3RjLWZyMzAuaCAoVENfRk9SQ0VfUkVMT0NBVElPTik6IERvbid0IGRlZmluZS4KCSogY29uZmlnL3RjLW1uMTAzMDAuYyAobW4xMDMwMF9mb3JjZV9yZWxvY2F0aW9uKTogRGVsZXRlLgoJKiBjb25maWcvdGMtbW4xMDMwMC5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OKTogRG9uJ3QgZGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX1NBTUUpOiBUZXN0IFRDX0ZPUkNFX1JFTE9DQVRJT04gdG9vLgoJKiBjb25maWcvdGMtaTk2MC5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9TQU1FKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1ocHBhLmMgKGhwcGFfZm9yY2VfcmVsb2NhdGlvbik6IEFkanVzdCBTX0ZPUkNFX1JFTE9DIGNhbGwuCgkqIGNvbmZpZy90Yy1taXBzLmMgKFJFTEFYX0JSQU5DSF9UT09GQVIpOiBXYXJuaW5nIGZpeC4KCSogY29uZmlnL3RjLW1pcHMuaCAoVENfRk9SQ0VfUkVMT0NBVElPTl9TVUJfU0FNRSk6IERvbid0IGRlZmluZS4KCSogY29uZmlnL3RjLW9wZW5yaXNjLmMgKG9wZW5yaXNjX2ZvcmNlX3JlbG9jYXRpb24pOiBEZWxldGUuCgkqIGNvbmZpZy90Yy1vcGVucmlzYy5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OKTogRG9uJ3QgZGVmaW5lLgoJKiBjb25maWcvdGMtc3BhcmMuYyAoZWxmMzJfc3BhcmNfZm9yY2VfcmVsb2NhdGlvbik6IERlbGV0ZS4KCSogY29uZmlnL3RjLXNwYXJjLmggKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBEb24ndCBkZWZpbmUgZm9yIEVMRi4KCSogY29uZmlnL3RjLWkzODYuYyAoaTM4Nl9mb3JjZV9yZWxvY2F0aW9uKTogRGVsZXRlLgoJKiBjb25maWcvdGMtaTM4Ni5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OKTogRG9uJ3QgZGVmaW5lIGZvcgoJQkZEX0FTU0VNQkxFUi4KCShFWFRFUk5fRk9SQ0VfUkVMT0MpOiBGaXggVEVfUEUgYW5kIFNUUklDVF9QRV9GT1JNQVQgbmVzdGluZy4KCSogY29uZmlnL3RjLW02OGsuaCAoVENfRk9SQ0VfUkVMT0NBVElPTik6IERvbid0IGRlZmluZS4KCSogY29uZmlnL3RjLXBqLmggKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBEb24ndCBkZWZpbmUuCgkqIGNvbmZpZy90Yy1zaC5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9BQlMpOiBEb24ndCBjYWxsCglTX0ZPUkNFX1JFTE9DLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX1NBTUUpOiBUZXN0IFRDX0ZPUkNFX1JFTE9DQVRJT04gdG9vLgoJKiBjb25maWcvdGMtc2g2NC5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9TQU1FKTogTGlrZXdpc2UuCgoyMDAzLTAxLTIzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLXNoNjQuYyAoc2htZWRpYV9mcm9iX3NlY3Rpb25fdHlwZSk6IEFkanVzdCBmb3IgY2hhbmdlZAoJc2g2NF9lbGZfc2VjdGlvbl9kYXRhLgoJKiBjb25maWcvdGMtc2g2NC5oOiBJbmNsdWRlIGVsZjMyLXNoNjQuaC4KCSogY29uZmlnL3RjLW02OGhjMTEuYzogRG9uJ3QgaW5jbHVkZSBzdGRpby5oLgoJKG1kX3Nob3dfdXNhZ2UpOiBGaXggbWlzc2luZyBjb250aW51YXRpb24uCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAzLTAxLTIyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogYXMuaDogSW5jbHVkZSBmb3Blbi1iaW4uaCBub3QgZm9wZW4tc2FtZS5oIGZvciBtaW5ndzMyIGhvc3RzLgoKMjAwMy0wMS0yMSAgRmFiaW8gQWxlbWFnbmEgIDxmYWxlbWFnbkBhcm9zLm9yZz4KCgkqIGNvbmZpZ3VyZS5pbjogSGFuZGxlICotKi1hcm9zKi4KCSogY29uZmlndXJlOglSZWdlbmVyYXRlZCBmcm9tIGNvbmZpZ3VyZS5pbi4KCjIwMDMtMDEtMjAgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBjb25maWcvdGMtczM5MC5jIChlbGZfc3VmZml4X3R5cGUpOiBBZGQgc3VmZml4IGVudW1zIGZvciBnb3RvZmYsCglnb3RwbHQgYW5kIHBsdG9mZiByZWxvY2F0aW9ucy4KCShzMzkwX2VsZl9zdWZmaXgpOiBBZGQgc3VmZml4IHN0cmluZ3MgZm9yIGdvdG9mZiwgZ290cGx0IGFuZCBwbHRvZmYuCgkoczM5MF9lbGZfY29ucyk6IE1hcCBuZXcgbGVuZ2h0L2VsZiBzdWZmaXggY29tYmluYXRpb25zIGZvciBnb3RvZmYsCglnb3RwbHQgYW5kIHBsdG9mZiB0byBiZmQgcmVsb2NhdGlvbnMuCgkobWRfZ2F0aGVyX29wZXJhbmRzKTogTWFwIG5ldyBpbnN0cnVjdGlvbiBvcGVyYW5kL2VsZiBzdWZmaXgKCWNvbWJpbmF0aW9ucyB0byBiZmQgcmVsb2NhdGlvbnMuCgkodGNfczM5MF9maXhfYWRqdXN0YWJsZSk6IEFkZCBuZXcgZ290b2ZmLCBnb3RwbHQgYW5kIHBsdG9mZiByZWxvY2F0aW9ucwoJdG8gdGhlIGxpc3Qgb2YgdW5hZGp1c3RhYmxlIHJlbG9jYXRpb25zLgoJKHRjX3MzOTBfZm9yY2VfcmVsb2NhdGlvbik6IEFsd2F5cyBlbWl0IHJlbG9jYXRpb25zIGZvciBnb3RvZmYsIGdvdHBsdAoJYW5kIHBsdG9mZiByZWxvY2F0aW9ucy4KCShtZF9hcHBseV9maXgzKTogQWRkIHRoZSBuZXcgcmVsb2NhdGlvbnMuCgoyMDAzLTAxLTIwICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogY29uZmlnL3RjLXMzOTAuYyAobWRfYXBwbHlfZml4Myk6IEVtaXQgZXJyb3IgbWVzc2FnZSBmb3IgcmVsb2NhdGlvbnMKCXdpdGggYSBzdWJzeSBzeW1ib2wuCgoyMDAzLTAxLTE3ICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGNvbmZpZy90Yy1tNjhoYzExLmMgKHRjX202OGhjMTFfZml4X2FkanVzdGFibGUpOiBQcmV2ZW50IGFkanVzdG1lbnQKCW9mIHJlbG9jcyBmb3IgbWVtb3J5IGJhbmsgYWRkcmVzc2luZy4KCjIwMDMtMDEtMTcgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogY29uZmlnL3RjLW02OGhjMTEuYyAobWRfc2hvd191c2FnZSk6IFVwZGF0ZSB1c2FnZS4KCShtZF9wYXJzZV9vcHRpb24pOiBSZWNvZ25pemUgLW02OGhjczEyLgoJKG02OGhjMTFfZWxmX2ZpbmFsX3Byb2Nlc3NpbmcpOiBTZXQgRUZfTTY4SENTMTJfTUFDSCBmbGFnIHRvIGlkZW50aWZ5CglIQ1MxMi4KCSogZG9jL2FzLnRleGluZm8gKE92ZXJ2aWV3KTogRG9jdW1lbnQgbmV3IG9wdGlvbiAtbTY4aGNzMTIuCgoyMDAzLTAxLTE2ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1pYTY0LmMgKGlhNjRfY29uc19maXhfbmV3KTogSGFuZGxlIEBkdHByZWwoKSBpbiBkYXRhLgoKMjAwMy0wMS0xNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL1BPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0wMS0xMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHJlYWQuYyAoZ2V0X2Fic29sdXRlX2V4cHIpOiBOZXcsIHNwbGl0IG91dCBmcm9tLi4KCShnZXRfYWJzb2x1dGVfZXhwcmVzc2lvbik6IC4uaGVyZS4KCSogcmVhZC5oIChnZXRfYWJzb2x1dGVfZXhwcik6IERlY2xhcmUuCgkqIGNvbmZpZy9vYmotZWxmLmMgKGVsZl9jb21tb24pOiBVc2Ugb2Zmc2V0VCBmb3IgInRlbXAiIGFuZCAic2l6ZSIuCglUcmltIHNpemUgdG8gYXJjaCBiaXRzX3Blcl9hZGRyZXNzLCBhbmQgdGVzdCBmb3IgbmVnYXRpdmUgaW5wdXQKCXZpYSBnZXRfYWJzb2x1dGVfZXhwci4KCjIwMDMtMDEtMDcgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXhzdG9ybXkxNi5jIChtZF9jZ2VuX2xvb2t1cF9yZWxvYyk6IEFkanVzdCB2YWx1ZSBiYXNlZAoJb24gb3BlcmFuZCB0eXBlLgoJKHhzdG9ybXkxNl9tZF9hcHBseV9maXgzKTogVXNlIGFkanVzdG1lbnQuCgoyMDAzLTAxLTAyICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGlxMjAwMC1lbGYgdGFyZ2V0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy90Yy1pcTIwMDAuYzogTmV3IGZpbGUuCgkqIGNvbmZpZy90Yy1pcTIwMDAuaDogTGlrZXdpc2UuCgkqIHBvL2dhcy5wb3Q6IFJlZ2VuZXJhdGUuCgoyMDAzLTAxLTAyICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYzogVXBkYXRlIGNvcHlyaWdodCB5ZWFycyB0byBpbmNsdWRlIDIwMDMuCgkobWlwc19pcCk6IEZpeCBpbmRlbnRhdGlvbiBvZiAiK0EiLCAiK0IiLCBhbmQgIitDIiBoYW5kbGluZy4KCUFkZGl0aW9uYWxseSwgY2xlYW4gdXAgdGhlaXIgY29kZSBzbGlnaHRseSBhbmQgY2xlYW4gdXAgdGhlaXIKCWNvbW1lbnRzIHNvbWUgbW9yZS4KCgkqIGRvYy9jLW1pcHMudGV4aTogQWRkIE1JUFMzMnIyIHRvICIuc2V0IG1pcHNOIiBkb2N1bWVudGF0aW9uLgoKMjAwMy0wMS0wMSAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBkb2MvTWFrZWZpbGUuYW0gKGFzLjEpOiBEZXBlbmQgb24gImFzY29uZmlnLnRleGkgZ2FzdmVyLnRleGkKCSQoQ1BVX0RPQ1MpIi4KCSogZG9jL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0wMS0wMSAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlLmFuZ2xpbkBucmMuY2E+CgoJKiBjb25maWcvb2JqLWVsZi5jIChzcGVjaWFsX3NlY3Rpb25zKTogV29yayBhcm91bmQgSFAncyBpbmNvcnJlY3QgdXNhZ2UKCW9mIC5pbml0IGFuZCAuZmluaSBzZWN0aW9ucyBmb3IgYXJyYXkgaW5pdGlhbGl6ZXJzIGFuZCBmaW5hbGl6ZXJzLgoKMjAwMi0xMi0zMSAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKHZhbGlkYXRlX21pcHNfaW5zbiwgbWlwc19pcCk6IFJlY29nbml6ZQoJdGhlICIrRCIgb3BlcmFuZCwgd2hpY2ggd2lsbCBiZSB1c2VkIG9ubHkgYnkgdGhlIGRpc2Fzc2VtYmxlci4KCjIwMDItMTItMzAgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWd1cmUuaW46IFJlY29nbml6ZSBtaXBzaXNhMzJyMiwgbWlwc2lzYTMycjJlbCwgYW5kCglDUFUgdmFyaWFudHMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogY29uZmlnL3RjLW1pcHMuYyAoSVNBX0hBU19EUk9SLCBJU0FfSEFTX1JPUik6IE5ldyBkZWZpbmVzLgoJKG1hY3JvX2J1aWxkKTogSGFuZGxlICJLIiBvcGVyYW5kLgoJKG1hY3JvMik6IFVzZSBJU0FfSEFTX0RST1IgYW5kIElTQV9IQVNfUk9SIGluIHRoZSBwbGFjZXMgd2hlcmUKCUNQVV9IQVNfRFJPUiBhbmQgQ1BVX0hBU19ST1IgYXJlIGN1cnJlbnRseSB1c2VkLgoJKG1pcHNfaXApOiBOZXcgdmFyaWFibGUgImxhc3Rwb3MiLCBhbmQgaW1wbGVtZW50ICIrQSIsICIrQiIsCglhbmQgIitDIiBvcGVyYW5kcyBmb3IgTUlQUzMyIFJlbGVhc2UgMiBpbnMvZXh0IGluc3RydWN0aW9ucy4KCUltcGxlbWVudCAiSyIgb3BlcmFuZCBmb3IgTUlQUzMyIFJlbGVhc2UgMiByZGh3ciBpbnN0cnVjdGlvbi4KCSh2YWxpZGF0ZV9taXBzX2luc24pOiBJbXBsZW1lbnQgIisiIGFzIGEgd2F5IHRvIGV4dGVuZCB0aGUKCWFsbG93ZWQgb3BlcmFuZHMsIGFuZCBpbXBsZW1lbnQgIksiLCAiK0EiLCAiK0IiLCBhbmQgIitDIgoJb3BlcmFuZHMuCgkoT1BUSU9OX01JUFMzMlIyKTogTmV3IGRlZmluZS4KCShtZF9sb25nb3B0cyk6IEFkZCBlbnRyeSBmb3IgT1BUSU9OX01JUFMzMlIyLgoJKE9QVElPTl9FTEZfQkFTRSk6IEFkanVzdCB0byBhY2NvbW1vZGF0ZSBPUFRJT05TX01JUFMzMlIyLgoJKG1kX3BhcnNlX29wdGlvbik6IEhhbmRsZSBPUFRJT05fTUlQUzMyUjIuCgkoc19taXBzc2V0KTogUmVpbXBsZW1lbnQgaGFuZGxpbmcgb2YgIi5zZXQgbWlwc04iIG9wdGlvbnMKCWFuZCBhZGQgc3VwcG9ydCBmb3IgIi5zZXQgbWlwczMycjIiLgoJKG1pcHNfY3B1X2luZm9fdGFibGUpOiBBZGQgZW50cnkgZm9yICJtaXBzMzJyMiIgKE1JUFMzMiBSZWxlYXNlIDIpLgoJKG1kX3Nob3dfdXNhZ2UpOiBEb2N1bWVudCAiLW1pcHMzMnIyIiBvcHRpb24uCgkqIGRvYy9hcy50ZXhpbmZvOiBEb2N1bWVudCAiLW1pcHMzMnIyIiBvcHRpb24uCgkqIGRvYy9jLW1pcHMudGV4aTogTGlrZXdpc2UuCgoyMDAyLTEyLTMwICBEbWl0cnkgRGlreSAgPGRpd2lsQG1haWwucnU+CgoJKiBjb25maWd1cmUuaW46IEFkZCBtc3A0MzAgdGFyZ2V0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmFtOiBBZGQgbXNwNDMwIHRhcmdldC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy90Yy1tc3A0MzAuYzogTmV3IGZpbGU6IG1zcDQzMCBhc3NlbWJsZXIuCgkqIGNvbmZpZy90Yy1tc3A0MzAuaDogTmV3IGZpbGU6IHRhcmdldCBtYWNyb3MgZm9yIG1zcDQzMC4KCSogZG9jL01ha2VmaWxlLmFtOiBBZGQgbXNwNDMwIHRhcmdldC4KCSogZG9jL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBkb2MvYXMudGV4aW5mbzogSW5jbHVkZSBtc3A0MzAgZG9jdW1lbmF0aW9uLgoJKiBkb2MvYWxsLnRleGk6IEVuYWJsZSBtc3A0MzAgZG9jdW1lbnRhdGlvbi4KCSogZG9jL2MtbXNwNDMwLnRleGk6IE5ldyBmaWxlOiBkb2N1bWVudCBtc3A0MzAgc3BlY2lmaWMgZmVhdHVyZXMKCW9mIHRoZSBhc3NlbWJsZXIuCgoyMDAyLTEyLTI1ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGR3YXJmMmRiZy5jIChEV0FSRjJfQUREUl9TSVpFKTogTmV3IG1hY3JvLgoJKGR3YXJmMl9maW5pc2gpOiBVc2UgaXQuCgkqIGRvYy9pbnRlcm5hbHMudGV4aSAoRFdBUkYyX0FERFJfU0laRSk6IERvY3VtZW50IGl0LgoJKiBjb25maWcvdGMtbWlwcy5oIChEV0FSRjJfQUREUl9TSVpFKTogT3ZlcnJpZGUuCgoyMDAyLTEyLTIwICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy14c3Rvcm15MTYuYyAobWRfY2dlbl9sb29rdXBfcmVsb2MpOiBTdXBwb3J0CglCRkRfUkVMT0NfWFNUT1JNWTE2XzEyLgoKMjAwMi0xMi0xOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGRvYy9hcy50ZXhpbmZvIChJbnZva2luZyk6IFR5cG8gZml4LgoJKiBjb25maWcvdGMtdGljNTR4LmMgKGVuY29kZV9vcGVyYW5kKTogQ29tbWVudCB0eXBvIGZpeC4KCjIwMDItMTItMTggIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBkb2MvYy1hbHBoYS50ZXhpOiBGaXggdHlwb3MuCgkqIGRvYy9jLWFybS50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2MtZDEwdi50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2MtaTM3MC50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2MtaTk2MC50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2MtaWE2NC50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2MtbW1peC50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2MtbnMzMmsudGV4aTogTGlrZXdpc2UuCgkqIGRvYy9jLXBkcDExLnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy1wai50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2Mtc2g2NC50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2Mtc3BhcmMudGV4aTogTGlrZXdpc2UuCgkqIGRvYy9jLXRpYzU0eC50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2Mtdjg1MC50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2MtdmF4LnRleGk6IExpa2V3aXNlLgoJKiBkb2MvaW50ZXJuYWxzLnRleGk6IExpa2V3aXNlLgoKMjAwMi0xMi0xOCAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1hY3JvKTogSW4gTV9EUk9MLCBNX0RST1IsIE1fUk9MLCBhbmQgTV9ST1IsCgl1c2UgaGFyZHdhcmUgcm90YXRlIG9wcyBhcyBhcHByb3ByaWF0ZS4gIEluIE1fRFJPTF9JLCBNX0RST1JfSSwKCU1fUk9MX0ksIGFuZCBNX1JPUl9JLCBzaW1wbGlmeSBjb2RlLCBjbGVhbiB1cCB3YXJuaW5ncywgYW5kCglhcnJhbmdlIG5vdCB0byBpc3N1ZSB3YXJuaW5ncyBhYm91dCB1c2Ugb2YgQVQgd2hlbiBBVCBpcyBub3QKCWFjdHVhbGx5IHVzZWQuCgoyMDAyLTEyLTE3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogYXMuYyAoc3RkX2xvbmdvcHRzKTogRHVwbGljYXRlIC0ta2VlcC1sb2NhbHMgZW50cnkgaW4gb3JkZXIgdG8KCXByZXZlbnQgaXQgYmVpbmcgY29uZnVzZWQgd2l0aCAtay4KCjIwMDItMTItMTYgIEFuZHJldyBNYWNMZW9kICA8YW1hY2xlb2RAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy14c3Rvcm15MTYuYyAobWRfY2dlbl9sb29rdXBfcmVsb2MpOiBJZiBhIHJlbG9jYXRpb24KCWhhcyBhbHJlYWR5IGJlZW4gc2V0IHVwLCB1c2UgaXQuCgoyMDAyLTEyLTE2ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogQ2hhbmdlTG9nLTkyOTU6IEZpeCBhIHR5cG8uCgkqIFJFQURNRTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1kMTB2LmM6IEZpeCBhIGNvbW1lbnQgdHlwby4KCSogY29uZmlnL3RjLWRseC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWg4MzAwLmg6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaDg1MDAuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1taXBzLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtczM5MC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXNoLmg6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtdGljODAuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy13NjUuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy16OGsuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy16OGsuaDogTGlrZXdpc2UuCgoyMDAyLTEyLTE2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWQzMHYuYyAoY2hlY2tfcmFuZ2UpOiBXYXJuaW5nIGZpeGVzLCBmb3JtYXR0aW5nLgoJU2ltcGxpZnkgc2lnbiBleHRlbnNpb24uICBSZW1vdmUgcmVkdW5kYW50IHVuc2lnbmVkIDwgMCB0ZXN0LgoJKiBjb25maWcvdGMtaTk2MC5jIChtZF9yaV90b19jaGFycyk6IFByb3RvdHlwZS4KCSogY29uZmlnL3RjLW1jb3JlLmMgKG1kX3BzZXVkb190YWJsZSk6IEZpeCB0eXBvLgoJKGR1bXBfbGl0ZXJhbHMpOiBJbml0IGJyYXJzeW0sIGFuZCB0ZXN0IGxhdGVyIGluc3RlYWQgb2YgaXNmb3JjZS4KCgkqIGNvbmZpZy90Yy1uczMyay5jIChlbmNvZGVfb3BlcmFuZCk6IENvbnN0aWZ5IG9wZXJhbmRzUCBhbmQgc3VmZml4UC4KCShwYXJzZSk6IENvbnN0aWZ5IGxpbmUgYW5kIGxpbmVwdHIuCgkobWRfYmVnaW4pOiBDYWxjdWxhdGUgZW5kb3AgaGVyZS4KCjIwMDItMTItMTMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvb2JqLXZtcy5jOiBGb3JtYXR0aW5nLiAgSW5jbHVkZSBmbmN0bC5oLgoJKENyZWF0ZV9WTVNfT2JqZWN0X0ZpbGUpOiBGaXggY3JlYXQgY2FsbCBmb3Igc2FuZSB1bml4IHN5c3RlbXMuCgkoT2JqZWN0X1JlY29yZF9PZmZzZXQpOiBNYWtlIGl0IGEgc2l6ZV90LgoJKEZsdXNoX1ZNU19PYmplY3RfUmVjb3JkX0J1ZmZlcik6IEZpeCBzaWduZWQvdW5zaWduZWQgd2FybmluZy4KCShWTVNfVEJUX1JvdXRpbmVfRW5kIDxTaXplPik6IE1ha2UgdmFyIHVuc2lnbmVkIGxvbmcuCgkoVk1TX0ZpeF9JbmRpcmVjdF9SZWZlcmVuY2UgPE9mZnNldD4pOiBNYWtlIGFyZyBhZGRyZXNzVC4KCShzeW50aGVzaXplX2RhdGFfc2VnbWVudCA8ZGF0YV9zaXplPik6IFJlbW92ZSBBVFRSSUJVVEVfVU5VU0VELgoJKHZtc19maXh1cF9kYXRhX3NlY3Rpb24gPGRhdGFfc2l6ZT4pOiBBZGQgaGVyZSBpbnN0ZWFkLgoJKiBjb25maWcvZS1jcmlzZWxmLmM6IEZpeCB0eXBvIGluIGxhc3QgY2hhbmdlLgoKMjAwMi0xMi0xMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHdyaXRlLmMgKHdyaXRlX29iamVjdF9maWxlKTogRml4IHNpZ25lZC91bnNpZ25lZCB3YXJuaW5nLgoJKiBjb25maWcvZS1jcmlzYW91dC5jIChjcmlzYW91dF9iZmRfbmFtZSk6IFByb3RvdHlwZS4KCSogY29uZmlnL2UtY3Jpc2VsZi5jIChjcmlzZWxmX2JmZF9uYW1lKTogUHJvdG90eXBlLgoJKiBjb25maWcvb2JqLWFvdXQuYyAoc19zZWN0KTogUmVtb3ZlIHVudXNlZCBmdW5jdGlvbi4KCSogY29uZmlnL29iai1ib3V0LmMgKG9ial9ib3V0X2xpbmUgPGlnbm9yZT4pOiBBZGQgQVRUUklCVVRFX1VOVVNFRC4KCSogY29uZmlnL29iai1jb2ZmLmMgKGNvZmZfbGFzdF9iZik6IERvbid0IGRlY2xhcmUgZm9yIE9CSl9YQ09GRi4KCShmaXh1cF9tZGVwcyA8aD4pOiBBZGQgQVRUUklCVVRFX1VOVVNFRC4KCSogY29uZmlnL29iai1lY29mZi5jIChlY29mZl9mcm9iX2ZpbGUgPGFkZHI+KTogTGlrZXdpc2UuCgkqIGNvbmZpZy9vYmotdm1zLmMgKHNldHVwX2Jhc2ljX3R5cGUgPHNwbnQ+KTogTGlrZXdpc2UuCgkoVk1TX1JTWU1fUGFyc2UgPEN1cnJlbnRfUm91dGluZT4pOiBMaWtld2lzZS4KCSh2bXNfZml4dXBfdGV4dF9zZWN0aW9uIDx0ZXh0X3Npej4pOiBMaWtld2lzZS4KCShzeW50aGVzaXplX2RhdGFfc2VnbWVudCA8ZGF0YV9zaXplPik6IExpa2V3aXNlLgoJKHZtc19maXh1cF94dG9yc19zZWN0aW9uIDxzZWN0X25vPik6IExpa2V3aXNlLgoJKHN0cnVjdHVyZV9jb3VudCk6IERvbid0IHVzZSBpbXBsaWNpdCBpbnQgdHlwZS4KCSogY29uZmlnL3RjLWEyOWsuYyAoaW5zZXJ0X3NyZWcpOiBQcm90b3R5cGUuCgkoZGVmaW5lX3NvbWVfcmVncyk6IFByb3RvdHlwZSwgbWFrZSBzdGF0aWMuCgkocGFyc2Vfb3BlcmFuZCk6IExpa2V3aXNlLgoJKG1kX3BhcnNlX29wdGlvbiA8Yyxhcmc+KTogQWRkIEFUVFJJQlVURV9VTlVTRUQuCgkobWRfc2hvd191c2FnZSA8c3RyZWFtPik6IExpa2V3aXNlLgoJKG1kX3NlY3Rpb25fYWxpZ24gPHNlZ21lbnQ+KTogTGlrZXdpc2UuCgkobWRfY29udmVydF9mcmFnIDxhbGwgYXJncz4pOiBMaWtld2lzZS4KCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCA8YWxsIGFyZ3M+KTogTGlrZXdpc2UuCgkobWRfYXBwbHlfZml4Myk6IERvbid0IGNhc3QgdmFsUCBwb2ludGVyIHR5cGUuICBGaXggYm9ndXMgPj49J3MuCgkqIGNvbmZpZy90Yy1hcm0uYyAoYXJtX3ZhbGlkYXRlX2ZpeCk6IE9ubHkgZm9yIE9CSl9DT0ZGIG9yIE9CSl9FTEYuCgkqIGNvbmZpZy90Yy1kMzB2LmMgKG1kX3BhcnNlX29wdGlvbiA8YXJnPik6IEFkZCBBVFRSSUJVVEVfVU5VU0VELgoJKG1kX3VuZGVmaW5lZF9zeW1ib2wgPG5hbWU+KTogTGlrZXdpc2UuCgkobWRfY29udmVydF9mcmFnIDxhbGwgYXJncz4pOiBMaWtld2lzZS4KCSh3cml0ZV9sb25nIDxvcGNvZGU+KTogTGlrZXdpc2UuCgkodGNfZ2VuX3JlbG9jIDxzZWc+KTogTGlrZXdpc2UuCgkobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXggPGFsbCBhcmdzPik6IExpa2V3aXNlLgoJKG1kX2FwcGx5X2ZpeDMgPHNlZz4pOiBMaWtld2lzZS4KCShzX2QzMHZfYWxpZ24gPGlnbm9yZT4pOiBMaWtld2lzZS4KCShidWlsZF9pbnNuKTogQ29ycmVjdCBmb3JtYXQgc3RyaW5nLgoJKG1kX2FwcGx5X2ZpeDMpOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWZyMzAuYyAobWRfcGFyc2Vfb3B0aW9uIDxjLGFyZz4pOiBBZGQgQVRUUklCVVRFX1VOVVNFRC4KCShtZF91bmRlZmluZWRfc3ltYm9sIDxuYW1lPik6IExpa2V3aXNlLgoJKG1kX2NvbnZlcnRfZnJhZyA8YWxsIGFyZ3M+KTogTGlrZXdpc2UuCgkobWRfY2dlbl9sb29rdXBfcmVsb2MgPGluc24+KTogTGlrZXdpc2UuCgkobWRfYmVnaW4pOiBEZWxldGUgdW51c2VkIHZhcnMuCgkobWRfYXNzZW1ibGUpOiBMaWtld2lzZS4KCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IExpa2V3aXNlLgoJKGZyMzBfcmVsYXhfZnJhZyk6ICNpZiAwIG91dCwgc2VlbXMgdW51c2VkLgoJKG1kX2F0b2YpOiBSZW1vdmUgZGVjbGFyYXRpb24gb2YgYXRvZl9pZWVlLgoJKHJlc3RvcmVfY29sb24pOiBQcm90b3R5cGUuCgkqIGNvbmZpZy90Yy1mcnYuYyAoZnJ2X2luc2VydF92bGl3X2luc24pOiBQcm90b3R5cGUuCgkoZnJ2X2ZpbmRfaW5fdmxpdyk6IExpa2V3aXNlLgoJKGZydl9kZWJ1Z190b21jYXQpOiBMaWtld2lzZS4KCShmcnZfYWRqdXN0X3ZsaXdfY291bnQpOiBMaWtld2lzZS4KCShmcnZfdG9tY2F0X3NodWZmbGUpOiBMaWtld2lzZS4KCShmcnZfdG9tY2F0X2FuYWx5emVfdmxpd19jaGFpbnMpOiBMaWtld2lzZS4gIENvcnJlY3QgYXJncyB0bwoJZnJ2X2ZpbmRfaW5fdmxpdyBjYWxsLgoJKG1kX2F0b2YpOiBSZW1vdmUgZGVjbGFyYXRpb24gb2YgYXRvZl9pZWVlLgoJKiBjb25maWcvdGMtaDg1MDAuYyAoY29ucyk6IERlbGV0ZSBkZWNsYXJhdGlvbi4KCShtZF9iZWdpbiA8b3Bjb2RlPik6IENvbnN0aWZ5LgoJKGRpc3BsYWNlbWVudF9zaXplLCBpbW1lZGlhdGVfc2l6ZSwgYWJzb2x1dGVfc2l6ZSk6IFJlbW92ZS4KCShidWlsZF9yZWxheGFibGVfaW5zdHJ1Y3Rpb24gPG9wZXJhbmQ+KTogQWRkIEFUVFJJQlVURV9VTlVTRUQuCgkodGNfY3Jhd2xfc3ltYm9sX2NoYWluIDxoZWFkZXJzPik6IExpa2V3aXNlLgoJKG1kX3VuZGVmaW5lZF9zeW1ib2wgPG5hbWU+KTogTGlrZXdpc2UuCgkodGNfaGVhZGVyc19ob29rIDxoZWFkZXJzPik6IExpa2V3aXNlLgoJKG1kX3BhcnNlX29wdGlvbiA8Yyxhcmc+KTogTGlrZXdpc2UuCgkobWRfc2hvd191c2FnZSA8c3RyZWFtPik6IExpa2V3aXNlLgoJKG1kX2NvbnZlcnRfZnJhZyA8aGVhZGVycywgc2VnPik6IExpa2V3aXNlLgoJKHRjX2NvZmZfc3ltYm9sX2VtaXRfaG9vayA8aWdub3JlPik6IExpa2V3aXNlLgoJKG1kX2F0b2YpOiBSZW1vdmUgZGVjbGFyYXRpb24gb2YgYXRvZl9pZWVlLgoJKHRjX2FvdXRfZml4X3RvX2NoYXJzKTogUmVtb3ZlIHVudXNlZCBmdW5jdGlvbi4KCShwYXJzZV9yZWcpOiBQcm90b3R5cGUuCgkocGFyc2VfZXhwKTogUHJvdG90eXBlLgoJKHNraXBfY29sb250aGluZyk6IFByb3RvdHlwZS4gIFVzZSAmJiwgbm90ICYgaW4gbG9naWNhbCBleHByZXNzaW9ucy4KCShwYXJzZV9yZWdsaXN0KTogUHJvdG90eXBlLgoJKGdldF9vcGVyYW5kKTogUHJvdG90eXBlLgoJKGdldF9vcGVyYW5kcyk6IFByb3RvdHlwZS4KCShnZXRfc3BlY2lmaWMpOiBQcm90b3R5cGUuICBNYWtlICJ0aGlzX2luZGV4IiBzaWduZWQuCgkoY2hlY2spOiBQcm90b3R5cGUsIG1ha2Ugc3RhdGljLgoJKGluc2VydCk6IFByb3RvdHlwZQoJKGJ1aWxkX3JlbGF4YWJsZV9pbnN0cnVjdGlvbik6IFByb3RvdHlwZSwgbWFrZSBzdGF0aWMuCgkoYnVpbGRfYnl0ZXMpOiBQcm90b3R5cGUuCgkod29yZGlmeV9zY2IpOiBQcm90b3R5cGUuCgkqIGNvbmZpZy90Yy1oODUwMC5oIChzdGFydF9sYWJlbCk6IERlY2xhcmUuCgkodGNfY29mZl9zaXplbWFjaGRlcCk6IERlY2xhcmUuCgkqIGNvbmZpZy90Yy1pMzcwLmMgKGkzNzBfZWJjZGljIDx1bnVzZWQ+KTogQWRkIEFUVFJJQlVURV9VTlVTRUQuCgkoaTM3MF9ybW9kZSA8dW51c2VkPik6IExpa2V3aXNlLgoJKGkzNzBfY3NlY3QgPHVudXNlZD4pOiBMaWtld2lzZS4KCShpMzcwX2RjIDx1bnVzZWQ+KTogTGlrZXdpc2UuCgkoaTM3MF9kcyA8dW51c2VkPik6IExpa2V3aXNlLgoJKGkzNzBfZWxmX2xjb21tIDx1bnVzZWQ+KTogTGlrZXdpc2UuCgkoaTM3MF9sdG9yZyA8aWdub3JlPik6IExpa2V3aXNlLgoJKGkzNzBfdXNpbmcgPGlnbm9yZT4pOiBMaWtld2lzZS4KCShpMzcwX2Ryb3AgPGlnbm9yZT4pOiBMaWtld2lzZS4KCShpMzcwX2J5dGUgPGlnbm9yZT4pOiBMaWtld2lzZS4KCShpMzcwX3RjIDxpZ25vcmU+KTogTGlrZXdpc2UuCgkobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXggPGZyYWdwLCBzZWc+KTogTGlrZXdpc2UuCgkobWRfY29udmVydF9mcmFnIDxhbGwgYXJncz4pOiBMaWtld2lzZS4KCShtZF91bmRlZmluZWRfc3ltYm9sIDxuYW1lPik6IExpa2V3aXNlLgoJKG1kX3BjcmVsX2Zyb21fc2VjdGlvbiA8c2VjPik6IExpa2V3aXNlLgoJKHRjX2dlbl9yZWxvYyA8c2VnPik6IExpa2V3aXNlLgoJKGkzNzBfc2VjdGlvbl9sZXR0ZXIpOiAjaWYgMCB1bnVzZWQgZnVuY3Rpb25zLgoJKGkzNzBfc2VjdGlvbl93b3JkLCBpMzcwX3NlY3Rpb25fdHlwZSwgaTM3MF9zZWN0aW9uX2ZsYWdzKTogTGlrZXdpc2UuCgkoc3ltYm9sX2xvY2F0ZSk6IFByb3RvdHlwZS4KCSogY29uZmlnL3RjLWk4NjAuYyAobWRfYXRvZik6IFJlbW92ZSBkZWNsYXJhdGlvbiBvZiBhdG9mX2llZWUuCgkobWRfbnVtYmVyX3RvX2Rpc3AsIG1kX251bWJlcl90b19maWVsZCk6IFJlbW92ZS4KCShtZF9hcHBseV9maXgzKTogQ29ycmVjdCBmb3JtYXQgc3RyaW5nIGFuZCBjYXN0ICJmdXAiLgoJKiBjb25maWcvdGMtaTk2MC5jIChtZF9jb252ZXJ0X2ZyYWcpOiBBZGQgQVRUUklCVVRFX1VOVVNFRCB0byBhcmdzLgoJKHNfZW5kaWFuIDxpZ25vcmU+KTogTGlrZXdpc2UuCgkobWRfdW5kZWZpbmVkX3N5bWJvbCA8bmFtZT4pOiBMaWtld2lzZS4KCSh0Y19jcmF3bF9zeW1ib2xfY2hhaW4gPGhlYWRlcnM+KTogTGlrZXdpc2UuCgkodGNfc2V0X2JhbF9vZl9jYWxsKTogTGlrZXdpc2UuCgkodGNfY29mZl9zeW1ib2xfZW1pdF9ob29rIDxzeW1ib2xQPik6IExpa2V3aXNlLgoJKGk5NjBfaGFuZGxlX2FsaWduIDxmcmFncD4pOiBMaWtld2lzZS4KCShpOTYwX3ZhbGlkYXRlX2ZpeCA8dGhpc19zZWdtZW50X3R5cGU+KTogTGlrZXdpc2UKCSh0Y19nZW5fcmVsb2MgPHNlY3Rpb24+KTogTGlrZXdpc2UuCgkodGNfY29mZl9zeW1ib2xfZW1pdF9ob29rKTogT25seSBkZWZpbmUgZm9yIE9CSl9DT0ZGLgoJKHN0cnVjdCBtZW1TLCBzdHJ1Y3QgcmVnb3ApOiBGb3J3YXJkIGRlY2xhcmUuCgkoYnJjbnRfZW1pdCwgYnJsYWJfbmV4dCwgY29icl9mbXQsIGN0cmxfZm10LCBlbWl0LCBnZXRfYXJncywKCWdldF9jZGlzcCwgZ2V0X2lzcGVjLCBnZXRfcmVnbnVtLCBpX3NjYW4sIG1lbV9mbXQsIG1lbWFfdG9fbWVtYiwKCXBhcnNlX2V4cHIsIHBhcnNlX2xkY29uc3QsIHBhcnNlX21lbW9wLCBwYXJzZV9wbywgcGFyc2VfcmVnb3AsCglyZWdfZm10LCByZWxheF9jb2JyLCBzX2xlYWZwcm9jLCBzX3N5c3Byb2MsIHNoaWZ0X29rLCBzeW50YXgsCgl0YXJnX2hhc19zZnIsIHRhcmdfaGFzX2ljbGFzcywgdGNfYmZkX2ZpeDJydHlwZSk6IFByb3RvdHlwZS4KCShtZF9jaGFyc190b19udW1iZXIsIG1kX251bWJlcl90b19pbW0pOiBNYWtlIHN0YXRpYywgcHJvdG90eXBlLgoJKG1kX251bWJlcl90b19maWVsZCk6IExpa2V3aXNlLgoJKG1kX251bWJlcl90b19kaXNwKTogUmVtb3ZlIHVudXNlZCBmdW5jdGlvbi4KCShtZF9hdG9mKTogUmVtb3ZlIGRlY2xhcmF0aW9uIG9mIGF0b2ZfaWVlZS4KCShtZF9hcHBseV9maXgzKTogQ29ycmVjdCBtZF9udW1iZXJfdG9faW1tIGNhbGwuCgkqIGNvbmZpZy90Yy1pcDJrLmMgKG1kX2Fzc2VtYmxlKTogV2FybmluZyBmaXguCgkqIGNvbmZpZy90Yy1tMzJyLmMgKG1kX3BhcnNlX29wdGlvbiA8YXJnPik6IEFkZCBBVFRSSUJVVEVfVU5VU0VELgoJKGZpbGxfaW5zbiA8aWdub3JlPik6IExpa2V3aXNlLgoJKGRlYnVnX3N5bSA8aWdub3JlPik6IExpa2V3aXNlLgoJKG1kX3VuZGVmaW5lZF9zeW1ib2wgPG5hbWU+KTogTGlrZXdpc2UuCgkobTMycl9zY29tbSA8aWdub3JlPik6IExpa2V3aXNlLgoJKG1kX2NvbnZlcnRfZnJhZyA8YWJmZD4pOiBMaWtld2lzZS4KCShtZF9jZ2VuX2xvb2t1cF9yZWxvYyA8aW5zbj4pOiBMaWtld2lzZS4KCShtMzJyX3JlY29yZF9oaTE2IDxzZWc+KTogTGlrZXdpc2UuCgkobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiAjaWYgMCBvbGRfZnJfZml4LgoJKGFsbG93X20zMnJ4KTogUHJvdG90eXBlLgoJKGZpcnN0X3dyaXRlc190b19zZWNvbmRzX29wZXJhbmRzKTogUHJvdG90eXBlLgoJKHdyaXRlc190b19wYyk6IFByb3RvdHlwZS4KCShjYW5fbWFrZV9wYXJhbGxlbCk6IFByb3RvdHlwZS4KCShtYWtlX3BhcmFsbGVsKTogUHJvdG90eXBlLgoJKHRhcmdldF9tYWtlX3BhcmFsbGVsKTogUHJvdG90eXBlLgoJKGFzc2VtYmxlX3R3b19pbnNucyk6IFByb3RvdHlwZS4KCShtMzJyX3JlY29yZF9oaTE2KTogUHJvdG90eXBlLgoJKG1kX2F0b2YpOiBSZW1vdmUgZGVjbGFyYXRpb24gb2YgYXRvZl9pZWVlLgoJKiBjb25maWcvdGMtbTMyci5oIChtMzJyX2ZpeF9hZGp1c3RhYmxlKTogRGVjbGFyZS4KCShtMzJyX2ZvcmNlX3JlbG9jYXRpb24pOiBQcm90b3R5cGUuCgkobTMycl9lbGZfc2VjdGlvbl9jaGFuZ2VfaG9vayk6IFByb3RvdHlwZS4KCSogY29uZmlnL3RjLW02OGsuYyAodGNfZ2VuX3JlbG9jIDxzZWN0aW9uPik6IEFkZCBBVFRSSUJVVEVfVU5VU0VELgoJKG1kX3Nob3dfdXNhZ2UpOiBGaXggc2lnbmVkL3Vuc2lnbmVkIHdhcm5pbmcuCgkqIGNvbmZpZy90Yy1tODhrLmMgKGdldF9yZWcpOiBNYWtlIHJlZ19wcmVmaXggcGFyYW0gdW5zaWduZWQuCgkoY2FsY29wKTogRGl0dG8gZm9yIHJlZ19wcmVmaXggdmFyLgoJKGhleHZhbCk6IEFkZCBjYXN0IHRvIGZpeCBzaWduZWQvdW5zaWduZWQgd2FybmluZy4KCShtZF9udW1iZXJfdG9fZGlzcCk6IERlbGV0ZSB1bnVzZWQgZnVuY3Rpb24uCgkobWRfbnVtYmVyX3RvX2ZpZWxkKTogTGlrZXdpc2UuCgkoZmxvYXRfY29ucywgY29ucywgc19nbG9ibCwgc19zcGFjZSwgc19zZXQsIHNfbGNvbW0pOiBSZW1vdmUgZGVjbC4KCShtYXRjaF9uYW1lKTogUHJvdG90eXBlLgoJKGdldF9iZjIpOiBQcm90b3R5cGUuCgkoZ2V0X2JmX29mZnNldF9leHByZXNzaW9uKTogUHJvdG90eXBlLgoJKiBjb25maWcvdGMtbWNvcmUuYyAobWNvcmVfc19saXRlcmFscyA8aWdub3JlPik6IEFkZCBBVFRSSUJVVEVfVU5VU0VELgoJKG1kX3VuZGVmaW5lZF9zeW1ib2wgPGlnbm9yZT4pOiBMaWtld2lzZS4KCShtZF9jcmVhdGVfc2hvcnRfanVtcCA8YWxsIGFyZ3M+KTogTGlrZXdpc2UuCgkobWRfY3JlYXRlX2xvbmdfanVtcCA8YWxsIGFyZ3M+KTogTGlrZXdpc2UuCgkobWRfY29udmVydF9mcmFnIDxhYmZkLCBzZWM+KTogTGlrZXdpc2UuCgkobWRfYXBwbHlfZml4MyA8c2VnbWVudD4pOiBMaWtld2lzZS4KCShtZF9zZWN0aW9uX2FsaWduIDxzZWdtZW50Pik6IExpa2V3aXNlLgoJKG1kX3BjcmVsX2Zyb21fc2VjdGlvbiA8c2VjPik6IExpa2V3aXNlLgoJKHRjX2dlbl9yZWxvYyA8c2VjdGlvbj4pOiBMaWtld2lzZS4KCShyZWdfbSwgcmVnX24sIGltbWVkaWF0ZSk6IERlbGV0ZSB1bnVzZWQgdmFycy4KCShkdW1wX2xpdGVyYWxzKTogRml4IHNpZ25lZC91bnNpZ25lZCB3YXJuaW5nLgoJKGVudGVyX2xpdGVyYWwpOiBMaWtld2lzZS4KCShwYXJzZV9pbW0pOiBMaWtld2lzZS4gIEFsc28gZml4IGZvcm1hdCBzdHJpbmcuCgkocGFyc2VfbWVtKTogUmVtb3ZlIHVudXNlZCB2YXIuCgkobWRfYXNzZW1ibGUgPExTPik6IEFib3J0IG9uIHVuZXhwZWN0ZWQgaW5zdC4KCShtZF9hdG9mKTogUmVtb3ZlIGRlY2xhcmF0aW9uIG9mIGF0b2ZfaWVlZS4KCShtZF9wYXJzZV9vcHRpb24pOiBSZW1vdmUgdW51c2VkIHZhcnMuCgkobWRfYXBwbHlfZml4Myk6IEZpeCBmb3JtYXQgc3RyaW5ncywgY2FzdCBhcmdzLgoJKHRjX2dlbl9yZWxvYyk6IERlbGV0ZSB1bnVzZWQgdmFyLgoJKiBjb25maWcvdGMtbWNvcmUuaCAodGNfY29mZl9zaXplbWFjaGRlcCk6IERlY2xhcmUuCgkqIGNvbmZpZy90Yy1tbjEwMjAwLmMgKG1kX3BhcnNlX29wdGlvbiA8YywgYXJnPik6IEFkZCBBVFRSSUJVVEVfVU5VU0VELgoJKG1kX3VuZGVmaW5lZF9zeW1ib2wgPG5hbWU+KTogTGlrZXdpc2UuCgkobWRfY29udmVydF9mcmFnIDxhYmZkPik6IExpa2V3aXNlLgoJKHRjX2dlbl9yZWxvYyA8c2VnPik6IExpa2V3aXNlLgoJKGNoZWNrX29wZXJhbmQgPGluc24+KTogTGlrZXdpc2UuCgkobWRfY29udmVydF9mcmFnKTogRml4IGZvcm1hdCBzdHJpbmdzLgoJKHRjX2dlbl9yZWxvYyk6IERlbGV0ZSBmeF9hZGRzeSAtIGZ4X3N1YnN5IGNvZGUuCgkqIGNvbmZpZy90Yy1vcGVucmlzYy5jIChpZ25vcmVfcHNldWRvKTogUHJvdG90eXBlLgoJKG1kX2F0b2YpOiBSZW1vdmUgZGVjbGFyYXRpb24gb2YgYXRvZl9pZWVlLgoJKiBjb25maWcvdGMtb3IzMi5jIChwYXJzZV9vcGVyYW5kKTogUHJvdG90eXBlIG5vbi1CRkQgdG9vLgoJKG1kX2FwcGx5X2ZpeDMpOiBGaXggYm9ndXMgPj49J3MuCgkobWRfdW5kZWZpbmVkX3N5bWJvbCk6IERlbGV0ZSB1bnVzZWQgdmFyLgoJKiBjb25maWcvdGMtcGouYyAobGl0dGxlLCBiaWcsIHBhcnNlX2V4cF9zYXZlX2lscCk6IFByb3RvdHlwZS4KCShjX3RvX3IsIGlwdXNoX2NvZGUsIGZha2Vfb3Bjb2RlLCBhbGlhcyk6IExpa2V3aXNlLgoJKGZha2Vfb3Bjb2RlKTogQWRqdXN0IGZvciBwal9vcGNfaW50X3QgY2hhbmdlLgoJKG1kX2JlZ2luKTogTGlrZXdpc2UuCgkobWRfYXNzZW1ibGUpOiBMaWtld2lzZS4KCShpcHVzaF9jb2RlKTogQ29ycmVjdCBwYXJzZV9leHBfc2F2ZV9pbHAgY2FsbC4gIFRlc3QgcGVuZGluZ19yZWxvYwoJaW5zdGVhZCBvZiBub24tZXhpc3RlbnQgdGhpcmQgYXJnIG9mIHBhcnNlX2V4cF9zYXZlX2lscC4KCShtZF9wYXJzZV9vcHRpb24pOiBDb3JyZWN0ICJsaXR0bGUiIGFuZCAiYmlnIiBjYWxscy4KCSogY29uZmlnL3RjLXNwYXJjLmMgKHNfcmVnaXN0ZXIpOiBPbmx5IGRlY2xhcmUgI2lmZGVmIE9CSl9FTEYuCgkobWRfYXBwbHlfZml4MyA8c2VnbWVudD4pOiBBZGQgQVRUUklCVVRFX1VOVVNFRC4KCSh0Y19nZW5fcmVsb2MgPHNlY3Rpb24+KTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy10aWMzMC5jOiAjaW5jbHVkZSBzdGRhcmcuaCBvciB2YXJhcmdzLmguCgkoZGVidWcpOiBSZXdyaXRlIHVzaW5nIFZBXyogbWFjcm9zLgoJKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogQWRkIEFUVFJJQlVURV9VTlVTRUQgdG8gYXJncy4KCShtZF9jb252ZXJ0X2ZyYWcpOiBMaWtld2lzZS4KCShtZF9wYXJzZV9vcHRpb24pOiBMaWtld2lzZS4KCShtZF9zaG93X3VzYWdlKTogTGlrZXdpc2UuCgkobWRfdW5kZWZpbmVkX3N5bWJvbCk6IExpa2V3aXNlLgoJKHRjX2dlbl9yZWxvYyk6IExpa2V3aXNlLgoJKG1kX29wZXJhbmQpOiBMaWtld2lzZS4KCSh0Y19hb3V0X3ByZV93cml0ZV9ob29rKTogRGVsZXRlLgoJKHN0cnVjdCB0aWMzMF9pbnNuKTogTWFrZSAib3BlcmFuZHMiIHVuc2lnbmVkLgoJKHN0cnVjdCB0aWMzMF9wYXJfaW5zbik6IExpa2V3aXNlLgoJKG1kX2Fzc2VtYmxlKTogTGlrZXdpc2UgZm9yICJjb3VudCIsICJpIiBhbmQgIm51bW9wcyIuCgkodGljMzBfcGFyYWxsZWxfaW5zbik6IExpa2V3aXNlIGZvciB2YXJzIGhlcmUuCgkodGljMzBfb3BlcmFuZCk6IExpa2V3aXNlLiAgUmVtb3ZlIHVzZWxlc3MgdW5zaWduZWQgPj0gMCBjb21wYXJpc29uLgoJKiBjb25maWcvdGMtdGljMzAuaCAodGNfYW91dF9wcmVfd3JpdGVfaG9vayk6IERlZmluZSBhcyBlbXB0eS4KCSogY29uZmlnL3RjLXRpYzgwLmMgKG9ial9jb2ZmX3NlY3Rpb24pOiBEZWxldGUgZGVjbGFyYXRpb24uCgkobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiBBZGQgQVRUUklCVVRFX1VOVVNFRCBvbiBhcmdzLgoJKG1kX3VuZGVmaW5lZF9zeW1ib2wpOiBMaWtld2lzZS4KCShtZF9wYXJzZV9vcHRpb24pOiBMaWtld2lzZS4KCShtZF9jb252ZXJ0X2ZyYWcpOiBMaWtld2lzZS4KCSh0Y19jb2ZmX3N5bWJvbF9lbWl0X2hvb2spOiBMaWtld2lzZS4KCShtZF9hdG9mKTogUmVtb3ZlIGRlY2xhcmF0aW9uIG9mIGF0b2ZfaWVlZS4KCShjb25zdF9vdmVyZmxvdyk6IFdhcm5pbmcgZml4ZXMsIHRpZHkuCgkoZ2V0X29wZXJhbmRzKTogRGVsZXRlIHVudXNlZCB2YXJzLgoJKGludGVybmFsX2Vycm9yX2EpOiBBZGp1c3QgZm9ybWF0IHN0cmluZyB0byBleHBlY3QgYSBsb25nIGZvciBhcmcuCgkoZmluZF9vcGNvZGUpOiBXYXJuaW5nIGZpeGVzLCBzaW1wbGlmeS4KCShidWlsZF9pbnNuKTogQ2FzdCBpbnRlcm5hbF9lcnJvcl9hIGFyZy4KCShtZF9iZWdpbik6IExpa2V3aXNlLgoJKG1kX2FwcGx5X2ZpeDMpOiBMaWtld2lzZS4KCShtZF9hc3NlbWJsZSk6IERlbGV0ZSB1bnVzZWQgdmFyLgoJKiBjb25maWcvdGMtdGljODAuaCAodGNfY29mZl9maXgycnR5cGUpOiBQcm90b3R5cGUuCgkqIGNvbmZpZy90Yy16OGsuYyAoY29ucywgb2JqX2NvZmZfc2VjdGlvbik6IERlbGV0ZSBkZWNsYXJhdGlvbnMuCgkod2hhdHJlZywgcGFyc2VfcmVnLCBwYXJzZV9leHApOiBNYWtlIHN0YXRpYywgcHJvdG90eXBlLgoJKGNoZWNrZm9yLCByZWd3b3JkLCByZWdhZGRyLCBnZXRfY3RybF9vcGVyYW5kKTogUHJvdG90eXBlLgoJKGdldF9mbGFnc19vcGVyYW5kLCBnZXRfaW50ZXJydXB0X29wZXJhbmQsIGdldF9jY19vcGVyYW5kKTogTGlrZXdpc2UuCgkoZ2V0X29wZXJhbmQsIGdldF9vcGVyYW5kcywgZ2V0X3NwZWNpZmljLCBuZXdmaXgpOiBMaWtld2lzZS4KCShhcHBseV9maXgsIGJ1aWxkX2J5dGVzKTogTGlrZXdpc2UuCgkobWRfYXRvZik6IFJlbW92ZSBkZWNsYXJhdGlvbiBvZiBhdG9mX2llZWUuCgkodGNfYW91dF9maXhfdG9fY2hhcnMpOiBEZWxldGUuCgkobWRfYmVnaW4pOiBDb25zdGlmeSAib3Bjb2RlIi4gIERvbid0IHRyeSB0byBpbml0IG9wY29kZS0+aWR4LgoJRml4IHNfdW5zZWcgY2FsbC4KCShtZF9wYXJzZV9vcHRpb24pOiBGaXggc19zZWdtIGFuZCBzX3Vuc2VnIGNhbGxzLgoKMjAwMi0xMi0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiB0Yy1taXBzLmMgKFJFTEFYX0JSQU5DSF9FTkNPREUpOiBSZW1vdmUgcmVsb2NfczIgYXJndW1lbnQuCglBZGp1c3QgY2FsbGVycy4KCShSRUxBWF9CUkFOQ0hfUkVMT0NfUzIpOiBEZWxldGUuCgkoYXBwZW5kX2luc24pOiBVc2Ugb25seSBCRkRfUkVMT0NfMTZfUENSRUxfUzIgZm9yIGJyYW5jaGVzLgoJRG8gbm90IGhhbmRsZSBCRkRfUkVMT0NfMTZfUENSRUwuCgkobWFjcm9fYnVpbGQsIG1pcHNfaXApOiBMaWtld2lzZS4KCShtZF9wY3JlbF9mcm9tKTogUmV0dXJuIDQgZm9yIHVuZGVmaW5lZCBzeW1ib2xzIHJlZ2FyZGxlc3Mgb2YKCW1pcHNfcGljLgoJKG1kX2FwcGx5X2ZpeDMpOiBVc2Ugb25seSBCRkRfUkVMT0NfMTZfUENSRUxfUzIgZm9yIGJyYW5jaGVzLgoJRG9uJ3QgZGVyZWZlcmVuY2UgaG93dG8gaWYgbm8gc3VjaCByZWxvY2F0aW9uIGlzIGF2YWlsYWJsZS4KCURvIG5vdCBhcHBseSBoYWNrIGZvciBpbi1wbGFjZSB6ZXJvIGFkZGVuZCBpbiBORVdBQkkuCgkobWRfY29udmVydF9mcmFnKTogVXNlIG9ubHkgQkZEX1JFTE9DXzE2X1BDUkVMX1MyIGZvciBicmFuY2hlcy4KCjIwMDItMTItMTIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPiwKCSAgICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLW1uMTAzMDAuaCAoVENfVkFMSURBVEVfRklYX1NVQik6IERlZmluZS4KCShUQ19MSU5LUkVMQVhfRklYVVApOiBBZGQgY29tbWVudHMuCgoyMDAyLTEyLTEyICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1tbjEwMzAwLmMgKHNldF9hcmNoX21hY2gpOiBDaGFuZ2UgYXJndW1lbnQgdHlwZSB0bwoJYXZvaWQgd2FybmluZ3MuCgkocl9yZWdpc3Rlcl9uYW1lLCB4cl9yZWdpc3Rlcl9uYW1lKTogQWRkIHByb3RvdHlwZSBkZWNsYXJhdGlvbnMuCgoyMDAyLTEyLTA4ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZy90Yy1pYTY0LmMgKG1kX2FwcGx5X2ZpeDMpOiBSZW1vdmUgdGhlIFBDUkVMIGhhY2sKCWNvcGllZCBmcm9tIHRjLWkzODYuYy4KCjIwMDItMTItMDggIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCUZpeCBCdWcgc2F2YW5uYWgvMTgyNToKCSogY29uZmlnL3RjLW02OGhjMTEuYyAoU1RBVEVfSU5ERVhFRF9QQ1JFTCk6IE5ldyByZWxheCBjb2RlLgoJKG1kX3JlbGF4X3RhYmxlKTogRGVmaW5lIHNwZWNpZmljIHJlbGF4IGZvciBQQy1yZWwgb2Zmc2V0cy4KCShidWlsZF9pbmRleGVkX2J5dGUpOiBVc2UgYSBTVEFURV9JTkRFWEVEX1BDUkVMIHJlbGF4IGNvZGUuCgkobTY4aGMxMV9yZWxheF9mcmFnKTogSGFuZGxlIHRoZSBuZXcgcmVsYXggY29kZS4KCShtZF9jb252ZXJ0X2ZyYWcpOiBMaWtld2lzZS4KCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IExpa2V3aXNlLgoKMjAwMi0xMi0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHN1YnNlZ3MuYyAoc2VjdGlvbl9zeW1ib2wpOiBVc2UgdGhlIHN5bWJvbCwgbm90IHRoZSBzZWN0aW9uLCBuYW1lLgoKMjAwMi0xMi0wNSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9pYTY0LmMgKGVudW0gcmVsb2NfZnVuYyk6IEFkZCBGVU5DX0xUX1JFTEFUSVZFX1guCgkoaWE2NF9nZW5fcmVhbF9yZWxvY190eXBlKTogSGFuZGxlIGl0LgoJKHBzZXVkb19mdW5jKTogQWRkIEBsdG9mZnguCgkobWRfYmVnaW4pOiBCdWlsZCAuPGx0b2ZmeD4uCgkoaWE2NF9mb3JjZV9yZWxvY2F0aW9uKTogVHJ1ZSBmb3IgTFRPRkYyMlggYW5kIExEWE1PVi4KCjIwMDItMTItMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtYXJtLmMgKGFybV9mb3JjZV9yZWxvY2F0aW9uKTogTW92ZSBvdXQgb2YgI2lmIE9CSl9FTEYuCglNb3ZlIE9CSl9DT0ZGIFRDX0ZPUkNFX1JFTE9DQVRJT04gY29kZSBoZXJlIHNvIHRoYXQgQ09GRiBoYW5kbGVzCglBUk1fSU1NRURJQVRFIGFuZCBBUk1fQURSTF9JTU1FRElBVEUgcmVsb2NzIGFzIGZvciBFTEYuCgkqIGNvbmZpZy90Yy1hcm0uaCAoVENfRk9SQ0VfUkVMT0NBVElPTik6IERlZmluZSBmb3IgYm90aCBFTEYgYW5kCglDT0ZGIHRvIGNhbGwgYXJtX2ZvcmNlX3JlbG9jYXRpb24uCgoyMDAyLTEyLTA0ICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KCgkqIGNvbmZpZy90Yy1pYTY0LmMgKHBzZXVkb19mdW5jKTogQWRkICJAcGF1c2UiIGNvbnN0YW50IGZvciAiaGludCIKCWluc3RydWN0aW9uLgoJKGVtaXRfb25lX2J1bmRsZSk6IEhhbmRsZSAiaGludCIgaW5zdHJ1Y3Rpb24uCgkob3BlcmFuZF9tYXRjaCk6IE1hdGNoIElBNjRfT1BORF9BUl9DU0QuCgoyMDAyLTEyLTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZHdhcmYyZGJnLmMgKHNjYWxlX2FkZHJfZGVsdGEpOiBDb3JyZWN0IHBhcmFtZXRlci4gIE1vdmUgcHJvdG90eXBlCglpbnNpZGUgI2lmLgoKMjAwMi0xMi0wMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAocHBjX2NsZWFudXApOiBEbyBub3Qgc2V0IFNFQ19NRVJHRSBmbGFnIG9uCgkuUFBDLkVNQi5hcHVpbmZvIHNlY3Rpb25zLgoKMjAwMi0xMi0wMyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1pYTY0LmMgKG9wZXJhbmRfbWF0Y2gpOiBBZGQgSUE2NF9PUE5EX0xEWE1PViBjYXNlLgoKMjAwMi0xMi0wMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy13NjUuYyAoc19sb25nYSk6IFByb3RvdHlwZS4gIE1ha2Ugc3RhdGljLCBzcGVjaWZ5IGludCBhcmcuCgkoY29ucywgc19hbGlnbl9ieXRlcyk6IERlbGV0ZSBkZWNsYXJhdGlvbi4KCShyZWxheCk6IERlbGV0ZS4KCShtZF9iZWdpbik6IENvbnN0aWZ5ICJzdHJ1Y3Qgb3BpbmZvICoiIHZhci4gIERvbid0IHRyeSB0byBtYWtlICJuYW1lIgoJc3RyaW5ncyBjb21tb24uCgkoZG90KTogRGVsZXRlIHVudXNlZCBmdW5jdGlvbi4KCSh3NjVfZXhwcmVzc2lvbik6IFJlbW92ZSB1bnVzZWQgYXJnLgoJKHBhcnNlX2V4cCk6IFByb3RvdHlwZS4gIFJlbW92ZSB1bnVzZWQgYXJnLiAgQWRqdXN0IHc2NV9leHByZXNzaW9uCgljYWxsLgoJKGdldF9vcGVyYW5kcyk6IFByb3RvdHlwZS4gIENvbnN0aWZ5ICJzdHJ1Y3Qgb3BpbmZvICoiIGFyZy4gIEZpeAoJcGFyc2VfZXhwIGNhbGwuCgkoZ2V0X3NwZWNpZmljKTogUHJvdG90eXBlLiAgQ29uc3RpZnkgInN0cnVjdCBvcGluZm8gKiIgYXJnIGFuZCByZXR1cm4KCXZhbHVlLgoJKGNoZWNrKTogUmVtb3ZlIHVudXNlZCBmdW5jdGlvbi4KCShidWlsZF9NeXRlcyk6IFByb3RvdHlwZS4gIENvbnN0aWZ5ICJzdHJ1Y3Qgb3BpbmZvICoiIGFyZy4gIEFib3J0CglvbiB1bmhhbmRsZWQgc3dpdGNoIGNhc2UuCgkobWRfYXNzZW1ibGUpOiBSZW1vdmUgdW51c2VkIG9wX3N0YXJ0LCBvcF9lbmQsIG5sZW4sIHAgdmFycy4gIENvbnN0aWZ5Cgkib3Bjb2RlIi4KCSh0Y19jcmF3bF9zeW1ib2xfY2hhaW4pOiBEZWxldGUgdW51c2VkIGZ1bmN0aW9uLgoJKHRjX2hlYWRlcnNfaG9vayk6IExpa2V3aXNlLgoJKHRjX05vdXRfZml4X3RvX2NoYXJzKTogTGlrZXdpc2UuCgkobWRfdW5kZWZpbmVkX3N5bWJvbCk6IEFkZCBBVFRSSUJVVEVfVU5VU0VELgoJKG1kX3BhcnNlX29wdGlvbik6IExpa2V3aXNlLgoJKG1kX2NvbnZlcnRfZnJhZyk6IExpa2V3aXNlLgoJKHRjX2NvZmZfc3ltYm9sX2VtaXRfaG9vayk6IExpa2V3aXNlLgoJKG1kX3Nob3dfdXNhZ2UpOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXc2NS5oICh0Y19jb2ZmX3NpemVtYWNoZGVwKTogRGVjbGFyZS4KCShUQ19QQVJTRV9DT05TX0VYUFJFU1NJT04pOiB3NjVfZXhwcmVzc2lvbiB0YWtlcyBvbmUgYXJnLgoJKHc2NV9leHByZXNzaW9uKTogRGVjbGFyZS4KCgkqIHBvL1BPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKCSogY29uZmlnL3RjLWFybS5jIChhcm1fZm9yY2VfcmVsb2NhdGlvbik6IFJldHVybiAwIGZvciBBUk1fSU1NRURJQVRFCglhbmQgQVJNX0FEUkxfSU1NRURJQVRFLgoKMjAwMi0xMi0wMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGdhc3AuYzogRGVsZXRlLiAgSXQgaGFzIGJlZW4gZGVwcmVjYXRlZC4KCSogTkVXUzogTWVudGlvbiB0aGF0IGdhc3AgaGFzIGJlZW4gcmVtb3ZlZC4KCSogTWFrZWZpbGUuYW06IFJlbW92ZSByZWZlcmVuY2VzIHRvIGdhc3AuCgkqIG1ha2VmaWxlLnZtczogTGlrZXdpc2UuCgkqIG1wdy1tYWtlLnNlZDogTGlrZXdpc2UuCgkqIE1ha2VpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9nYXNwLnRleGk6IERlbGV0ZS4KCSogZG9jL01ha2VmaWxlLmFtOiBSZW1vdmUgcmVmZXJlbmNlcyB0byBnYXNwLnRleGkuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogbWFjcm8uYzogRGVsZXRlIHJlZmVyZW5jZXMgdG8gZ2FzcC4KCVJlbW92ZSB1c2Ugb2YgY29tbWVudF9jaGFyIGZ1bmN0aW9uIHBhcmFtZXRlciBhcyBpdCBpcyBubyBsb25nZXIKCW5lZWRlZC4KCSogbWFjcm8uaDogVXBkYXRlIHByb3RvdHlwZXMgdG8gcmVtb3ZlIGNvbW1lbnRfY2hhciBwYXJhbWV0ZXIuCglGaXggZm9ybWF0dGluZy4KCSogcmVhZC5jIChyZWFkX2Ffc291cmNlX2ZpbGUsIHNfaXJwKTogUmVtb3ZlIGNvbW1lbnRfY2hhcgoJcGFyYW1ldGVyIGZyb20gaW52b2NhdGlvbiBvZiBmdW5jdGlvbnMgaW4gbWFjcm8uYwoKMjAwMi0xMi0wMiAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiByZWFkLmMgKGVtaXRfZXhwcikgWyFXT1JLSU5HX0RPVF9XT1JEXTogSW5pdGlhbGl6ZSB4LT51c2VfanVtcC4KCjIwMDItMTItMDEgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogY29uZmlnL3RjLW02OGhjMTEuYyAobWRfYmVnaW4pOiBGaXggcXNvcnQgd2FybmluZy4KCSh0Y19nZW5fcmVsb2MpOiBNYXJrIHNlY3Rpb24gcGFyYW0gYXMgbm90IHVzZWQuCgoyMDAyLTEyLTAxICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCglGaXggQnVnIHNhdmFubmFoLzE4MjU6CgkqIGNvbmZpZy90Yy1tNjhoYzExLmggKG1kX3JlbGF4X2ZyYWcpOiBEZWZpbmUgdG8gc3VwcG9ydCByZWxheGF0aW9ucwoJdGhhdCBhcmUgbm90IHBjLXJlbGF0aXZlLgoJKG02OGhjMTFfcmVsYXhfZnJhZyk6IERlY2xhcmUuCgoJKiBjb25maWcvdGMtbTY4aGMxMS5jIChidWlsZF9pbmRleGVkX2J5dGUpOiBVc2UgYSBmcmFnX3ZhciB0byBoYW5kbGUKCXRoZSBvZmZzZXRhYmxlIGluZGV4ZWQgYWRkcmVzc2luZyBtb2RlcyAobixyKS4KCShidWlsZF9pbnNuKTogQ2xlYW51cCBzb21lIGxvY2Fscy4KCShtNjhoYzExX3JlbGF4X2ZyYWcpOiBOZXcgZnVuY3Rpb24gaW1wb3J0ZWQgZnJvbSB0Yy1jcmlzLmMgdG8gaGFuZGxlCglyZWxheGF0aW9uIG9mIGRpZmZlcmVuY2UgYmV0d2VlbiB0d28gc3ltYm9scyBvZiBzYW1lIHNlY3Rpb24uCgkobWRfY29udmVydF9mcmFnKTogRm9yIElOREVYRURfT0ZGU0VUIHJlbGF4cywgdXNlIHRoZSBkaXNwbGFjZW1lbnQKCW9ubHkgd2hlbiB0aGlzIGlzIGEgUEMtcmVsYXRpdmUgb3BlcmFuZCBhbmQgdGhlIG9mZnNldCBpcyBub3QgYWJzb2x1dGUuCgkobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiBDb252ZXJ0IHRoZSBJTkRFWEVEX09GRlNFVCxVTkRFRiBmcmFnCgl0byBJTkRFWEVEX09GRlNFVCxTVEFURV9CSVRTNSB3aGVuIHRoZSBzeW1ib2wgaXMgYWJzb2x1dGU7IHRoaXMgd2lsbAoJYmUgaGFuZGxlZCBieSBtNjhoYzExX3JlbGF4X2ZyYWcuCgoyMDAyLTEyLTAxICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGNvbmZpZy90Yy1tNjhoYzExLmMgKGVsZl9mbGFncyk6IFNldCBkZWZhdWx0IEFCSSB0byBnY2MgZGVmYXVsdAoJKDMyLWJpdCBpbnQsIDY0LWJpdCBkb3VibGUpLgoJKG1kX2xvbmdvcHRzKTogTmV3IG9wdGlvbnMgLW1zaG9ydCwgLW1sb25nLCAtbXNob3J0LWRvdWJsZSBhbmQKCS1tbG9uZy1kb3VibGUgdG8gY29udHJvbCB0aGUgQUJJLgoJKG1kX3Nob3dfdXNhZ2UpOiBVcGRhdGUuCgkobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlIG5ldyBvcHRpb25zLgoJKiBkb2MvYXMudGV4aW5mbyAoT3ZlcnZpZXcpOiBEb2N1bWVudCBuZXcgb3B0aW9ucyBmb3IgSEMxMS9IQzEyLgoKMjAwMi0xMi0wMSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHN5bWJvbHMuYyAocmVwb3J0X29wX2Vycm9yKTogTmV3IGZ1bmN0aW9uLCBicm9rZW4gb3V0IG9mIC4uLgoJKHJlc29sdmVfc3ltYm9sX3ZhbHVlKTogLi4uIGhlcmUuIFVzZSBmb3IgYm90aCBtb25hZGljIGFuZCBkeWFkaWMKCW9wZXJhdG9ycy4KCjIwMDItMTEtMzAgIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCSogY29uZmlnL3RjLXNoLmMgKG1kX2FwcGx5X2ZpeDMpOiBUYWtlIGFjY291bnQgb2YgZnhfb2Zmc2V0Cglmb3IgQkZEX1JFTE9DXzMyX1BMVF9QQ1JFTC4KCjIwMDItMTEtMzAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkd2FyZjJkYmcuYywgd3JpdGUuYywgY29uZmlnL29iai1hb3V0LmMsIGNvbmZpZy9vYmotY29mZi5jLAoJY29uZmlnL29iai1lY29mZi5jLCBjb25maWcvb2JqLWVsZi5jLCBjb25maWcvb2JqLXNvbS5jLAoJY29uZmlnL3RjLWFybS5jLCBjb25maWcvdGMtYXJtLmgsIGNvbmZpZy90Yy1hdnIuYywgY29uZmlnL3RjLWNyaXMuYywKCWNvbmZpZy90Yy1kMTB2LmMsIGNvbmZpZy90Yy1kMTB2LmgsIGNvbmZpZy90Yy1kMzB2LmMsIGNvbmZpZy90Yy1kMzB2LmgsCgljb25maWcvdGMtZGx4LmMsIGNvbmZpZy90Yy1kbHguaCwgY29uZmlnL3RjLWZyMzAuYywgY29uZmlnL3RjLWZyMzAuaCwKCWNvbmZpZy90Yy1mcnYuYywgY29uZmlnL3RjLWZydi5oLCBjb25maWcvdGMtaHBwYS5jLCBjb25maWcvdGMtaTM3MC5jLAoJY29uZmlnL3RjLWkzODYuYywgY29uZmlnL3RjLWkzODYuaCwgY29uZmlnL3RjLW0zMnIuYywKCWNvbmZpZy90Yy1tNjhoYzExLmMsIGNvbmZpZy90Yy1tY29yZS5jLCBjb25maWcvdGMtbWNvcmUuaCwKCWNvbmZpZy90Yy1taXBzLmMsIGNvbmZpZy90Yy1taXBzLmgsIGNvbmZpZy90Yy1tbjEwMjAwLmMsCgljb25maWcvdGMtbW4xMDMwMC5jLCBjb25maWcvdGMtbW4xMDMwMC5oLCBjb25maWcvdGMtb3BlbnJpc2MuYywKCWNvbmZpZy90Yy1vcGVucmlzYy5oLCBjb25maWcvdGMtcHBjLmMsIGNvbmZpZy90Yy1zMzkwLmMsCgljb25maWcvdGMtc2guYywgY29uZmlnL3RjLXNoLmgsIGNvbmZpZy90Yy1zaDY0LmMsIGNvbmZpZy90Yy10aWM1NHguYywKCWNvbmZpZy90Yy12ODUwLmMsIGNvbmZpZy90Yy12ODUwLmgsIGNvbmZpZy90Yy14c3Rvcm15MTYuYywKCWNvbmZpZy90Yy14c3Rvcm15MTYuaDogUmVwbGFjZSBib29sZWFuIHdpdGggYmZkX2Jvb2xlYW4sIHRydWUgd2l0aAoJVFJVRSwgZmFsc2Ugd2l0aCBGQUxTRS4gIFNpbXBsaWZ5IGNvbXBhcmlzb25zIG9mIGJmZF9ib29sZWFuIHZhcnMgd2l0aAoJVFJVRS9GQUxTRS4gIEZvcm1hdHRpbmcuCgoyMDAyLTExLTI5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWFybS5jIChkb190X2JrcHQpOiBJZiBubyBvcGVyYW5kIGlzIHNwZWNpZmllZCwKCWFzc3VtZSBhIHZhbHVlIG9mIHplcm8uCgkoZG9fYmtwdCk6IExpa2V3aXNlLgoKMjAwMi0xMS0yOSAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBjb25maWcvdGMtc2guYyAobWRfYXBwbHlfZml4Myk6IENhbGwgU19TRVRfVEhSRUFEX0xPQ0FMCglmb3IgVExTIHJlbG9jYXRpb25zLgoKMjAwMi0xMS0yOSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtaWE2NC5jIChtZF9hcHBseV9maXgzKTogQWRkIGRlZmF1bHQgY2FzZS4KCjIwMDItMTEtMjggIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogc3ltYm9scy5jIChTX1NFVF9USFJFQURfTE9DQUwpOiBOZXcgZnVuY3Rpb24uCgkqIHN5bWJvbHMuaCAoU19TRVRfVEhSRUFEX0xPQ0FMKTogTmV3IHByb3RvdHlwZS4KCSogY29uZmlnL3RjLWkzODYuYyAobWRfYXBwbHlfZml4Myk6IENhbGwgU19TRVRfVEhSRUFEX0xPQ0FMCglmb3IgVExTIHJlbG9jYXRpb25zLgoJKiBjb25maWcvdGMtaWE2NC5jIChtZF9hcHBseV9maXgzKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1hbHBoYS5jIChtZF9hcHBseV9maXgzKTogTGlrZXdpc2UuCgoyMDAyLTExLTI4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHdyaXRlLmMgKHN1YnNlZ3NfZmluaXNoKTogRm9yIFNFQ19NRVJHRSBzZWN0aW9ucyBwYWQgbGFzdCBmcmFnbWVudAoJdG8gZW50c2l6ZS4KCjIwMDItMTEtMjYgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tLgoKCSogZHdhcmYyZGJnLmMgKHNjYWxlX2FkZHJfZGVsdGEpOiBOZXcuCgkoc2l6ZV9pbmNfbGluZV9hZGRyKTogVXNlIGl0LgoJKGVtaXRfaW5jX2xpbmVfYWRkcik6IFVzZSBpdC4KCjIwMDItMTEtMjYgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogY29uZmlnL3RjLWNyaXMuYyAoY3Jpc19yZWxheF9mcmFnKTogRml4IHR5cG8gaW4gY29tbWVudC4KCShtZF9hc3NlbWJsZSk6IERvbid0IHBhc3Mgb24gYnJhbmNoZXMgdG8gY29uc3RhbnRzIGFzIHJlbGF4YWJsZS4KCVR3ZWFrIGNvbW1lbnQuCgoyMDAyLTExLTI1ICBTdmVpbiBFLiBTZWxkYWwgIDxTdmVpbi5TZWxkYWxAc29saWRhcy5jb20+CgoJKiBjb25maWcvdGMtdGljNHguYyAoYzR4X29wZXJhbmRzX21hdGNoKTogQnVnZml4IGluIGRpcmVjdCBtb2RlCgoyMDAyLTExLTIxICBSYW5kb2xwaCBDaHVuZyAgPHJhbmRvbHBoQHRhdXNxLm9yZz4KCgkqIGNvbmZpZy90Yy1ocHBhLmggKHRjX2Zyb2Jfc3ltYm9sKTogRnJvYiB1bmRlZmluZWQgdW51c2VkIHN5bWJvbHMKCW9ubHkgaWYgdGhleSBoYXZlIGRlZmF1bHQgdmlzaWJpbGl0eS4KCjIwMDItMTEtMjEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtYWxwaGEuYyAoYWxwaGFfZml4X2FkanVzdGFibGUpOiBSZW1vdmUgcmVkdW5kYW50CglTX0lTX0RFRklORUQgdGVzdC4KCjIwMDItMTEtMjEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtbWNvcmUuYyAobWNvcmVfcG9vbF9jb3VudCk6IE5ldyBmdW5jdGlvbi4KCShtY29yZV9jb25zLCBtY29yZV9mbG9hdF9jb25zLCBtY29yZV9zdHJpbmdlciwgbWNvcmVfZmlsbCk6IFVzZSBpdC4KCjIwMDItMTEtMjAgIEtsZWUgRGllbmVzICA8a2RpZW5lc0BhcHBsZS5jb20+CgoJKiBjb25maWcvdGMtbWNvcmUuYyAobWRfYmVnaW4pOiBVc2UgYSBjb25zdCBpdGVyYXRvci4gIERvbid0Cgljb2FsZXNjZSB0aGUgbmFtZSBmaWVsZHMgdG8gdXNlIHRoZSBzYW1lIHBvaW50ZXIuCgoJKiBjb25maWcvdGMtc2guYyAobWRfYmVnaW4pOiBVc2UgYSBjb25zdCBpdGVyYXRvci4gIERvbid0IGNvYWxlc2NlCgl0aGUgbmFtZSBmaWVsZHMgdG8gdXNlIHRoZSBzYW1lIHBvaW50ZXIuCgkoZ2V0X3NwZWNpZmljKTogQ2hlY2sgZm9yIG9wY29kZXMgd2l0aCB0aGUgc2FtZSBuYW1lIHVzaW5nIHN0cmNtcAoJYXMgd2VsbCBhcyBjb21wYXJpbmcgdGhlIHBvaW50ZXIuCgoyMDAyLTExLTIwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogd3JpdGUuYyAoYWRqdXN0X3JlbG9jX3N5bXMpOiBEb24ndCByZWR1Y2UgU0VDX01FUkdFIGZpeHVwcyB3aXRoCglmeF9zdWJzeSBub24tTlVMTC4KCjIwMDItMTEtMTkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvb2JqLWVsZi5jIChvYmpfZWxmX3Zpc2liaWxpdHkpOiBPdmVyd3JpdGUgb25seSB0aGUKCXZpc2liaWxpdHkgcG9ydGlvbiBvZiBzdF9vdGhlci4KCjIwMDItMTEtMTkgIEtsZWUgRGllbmVzICA8a2RpZW5lc0BhcHBsZS5jb20+CgoJKiBjb25maWcvdGMtaDgzMDAuYyAoc3RydWN0IGg4X2luc3RydWN0aW9uKTogTmV3IHR5cGUsIHVzZWQgdG8KCXdyYXAgaDhfb3Bjb2RlcyB3aXRoIGxlbmd0aCwgbm9wZXJhbmRzLCBpZHgsIGFuZCBzaXplIGZpZWxkcwoJKGNvbXB1dGVkIGF0IHJ1bi10aW1lKS4KCShoOF9pbnN0cnVjdGlvbnMpOiBOZXcgdmFyaWFibGUuCgkobWRfYmVnaW4pOiBBbGxvY2F0ZSB0aGUgc3RvcmFnZSBmb3IgaDhfaW5zdHJ1Y3Rpb25zLiAgRmlsbAoJaDhfaW5zdHJ1Y3Rpb25zIHdpdGggcG9pbnRlcnMgdG8gdGhlIGFwcHJvcHJpYXRlIG9wY29kZSBhbmQgdGhlCgljb3JyZWN0IHZhbHVlIGZvciB0aGUgYWRkaXRpb25hbCBmaWVsZHMuCgkoY2xldmVyX21lc3NhZ2UpOiBVcGRhdGUgdG8gdXNlIGg4X2luc3RydWN0aW9ucyBpbnN0ZWFkIG9mCgloOF9vcGNvZGVzLgoJKGJ1aWxkX2J5dGVzKTogRGl0dG8uCgkoZ2V0X3NwZWNpZmljKTogRGl0dG8uCgkobWRfYXNzZW1ibGUpOiBEaXR0by4KCjIwMDItMTEtMTkgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBjb25maWcvdGMtczM5MC5jICh0Y19zMzkwX2ZpeF9hZGp1c3RhYmxlKTogUmUtYWRkIHBhdGNoIHRvIHByZXZlbnQKCWFkanVzdG1lbnRzIHRvIHN5bWJvbHMgaW4gbWVyZ2Ugc2VjdGlvbnMuCgoyMDAyLTExLTE5ICBMdWtlIERlbGxlciA8bHVrZWRAY3NlLnVuc3cuZWR1LmF1PgoKCSogY29uZmlnL3RjLWFscGhhLmMgKHNfYWxwaGFfcHJvbG9ndWUpOiBhc19iYWQgd2hlbiBzeW0gaXMgTlVMTC4KCjIwMDItMTEtMTggIEtldmluIEJ1ZXR0bmVyICA8a2V2aW5iQHJlZGhhdC5jb20+CgoJKiBkd2FyZjJkYmcuaCAoZHdhcmYyX2Zvcm1hdCk6IE5ldyBlbnVtLgoJKiBkd2FyZjJkYmcuYyAoRFdBUkYyX0ZPUk1BVCk6IFByb3ZpZGUgZGVmYXVsdCBkZWZpbml0aW9uLgoJKG91dF9kZWJ1Z19saW5lLCBvdXRfZGVidWdfaW5mbyk6IEFkZCBjb2RlIGZvciBoYW5kbGluZyA2NC1iaXQKCURXQVJGIDIgZm9ybWF0cy4KCSogY29uZmlnL3RjLW1pcHMuaCAobWlwc19kd2FyZjJfZm9ybWF0KTogRGVjbGFyZS4KCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19kd2FyZjJfZm9ybWF0KTogTmV3IGZ1bmN0aW9uLgoJKiBkb2MvaW50ZXJuYWxzLnRleGkgKERXQVJGMl9GT1JNQVQpOiBEb2N1bWVudC4KCjIwMDItMTEtMTggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoc19jaGFuZ2Vfc2VjdGlvbik6IE1ha2Ugc3VyZSBpbnB1dCBidWZmZXIKCWlzIG5vdCBhY2Nlc3NlZCBwYXN0IHRoZSBlbmQuICBEb24ndCBoYW5kCglvYmpfZWxmX2NoYW5nZV9zZWN0aW9uIGEgcG9pbnRlciBpbnRvIHRoZSBpbnB1dCBidWZmZXIuCgoyMDAyLTExLTE4ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4sIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jICh0Y19nZW5fcmVsb2MpOiBGaXggdHlwbyBpbiBoYW5kbGluZyBvZgoJR09UX0xPMTYgb24gTkVXQUJJLgoKMjAwMi0xMS0xOCAgU3ZlaW4gRS4gU2VsZGFsICA8U3ZlaW4uU2VsZGFsQHNvbGlkYXMuY29tPgoKCSogY29uZmlnL3RjLXRpYzR4LmM6IEZpeGVkIHByb3BlciBjb21tYW5kbGluZQoJcGFyYW1ldGVycy4gQWRkZWQgc3VwcG9ydCBmb3IgbmV3IG9wY29kZS1saXN0IGZvcm1hdC4gR2VuZXJhbAoJZXJyb3IgbWVzc2FnZSBmaXh1cHMuCgkoYzR4X2luc3RfYWRkKTogUmVqZWN0IGluc24gbm90IGZvciBvdXIgQ1BVCgkobWRfYmVnaW4pOiBBZGRlZCBtYXRyaXggZm9yIHNldHRpbmcgdGhlIHByb3BlciBvcGNvZGUtbGV2ZWwgJgoJZGV2aWNlLWZsYWdzIGFjY29yZGluZyB0byBjcHUgdHlwZSBhbmQgcmV2aXNpb24uIFJld3JpdGUgdGhlCglvcGNvZGUgaGFzaGVyLgoJKGM0eF9vcGVyYW5kX3BhcnNlKTogRml4IG9wY29kZSBidWcKCShjNHhfb3BlcmFuZHNfbWF0Y2gpOiBOZXcgZnVuY3Rpb24gYXJndW1lbnQuIEFkZGVkIGRyeS1ydW4KCW1lY2hhbmlzbSwgdGhhdCBpcyBvcHRpb25hbCBlcnJvciBnZW5lcmF0aW9uLiBBZGRlZCBjb25zdHJhaW50ICdpJwoJYW5kICdqJy4KCShjNHhfaW5zbl9jaGVjayk6IEFkZGVkIG5ldyBmdW5jdGlvbiBmb3IgcG9zdC12ZXJpZmljYXRpb24gb2YgdGhlCglnZW5lcmF0ZWQgaW5zbi4KCShtZF9hc3NlbWJsZSk6IENoZWNrIGFsbCBvcGNvZGVzIGJlZm9yZSBjcm9ha2luZyBiZWNhdXNlIG9mIGFuCglhcmd1bWVudCBtaXNtYXRjaC4gTmVlZCB0aGlzIHRvIGJlIGFibGUgdG8gZnVsbHkgc3VwcG9ydAoJb3J0b2dvbmFsbHkgYXJndW1lbnRzLgoJKG1kX3BhcnNlX29wdGlvbnMpOiBSZXZpc2VkIGNvbW1hbmRwcm9tcHQgc3dpY3RoZXMgYW5kIGFkZGVkIG5ldwoJb25lcy4KCShtZF9zaG93X3VzYWdlKTogQ29tcGxldGUgcmV3cml0ZSBvZiBwcmludG91dC4KCjIwMDItMTEtMTYgIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGNvbmZpZy90Yy10aWM0eC5jOiBSZW1vdmUgYzR4X3BzZXVkb19pZ25vcmUgZnVuY3Rpb24uCgkgIChjNHhfb3BlcmFuZHNfbWF0Y2gpOiBBZGRlZCBjaGVjayBmb3IgOC1iaXRzIExERiBpbnNuLiBHaXZlCgkgIHdhcm5pbmcgd2hlbiB1c2luZyBjb25zdGFudCBkaXJlY3QgYmlnZ2VyIHRoYW4gMl4xNi4gQWRkIHRoZSBuZXcKCSAgYXJndW1lbnRzLgoKMjAwMi0xMS0xMSAgQ2hyaXN0b3BoZXIgRmF5bG9yICA8Y2dmQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW46IFVzZSAuZ2RiaW5pdCB1bmRlciBDeWd3aW4uCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMTEtMTEgIENocmlzdG9waGVyIEZheWxvciAgPGNnZkByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWkzODYuaCAoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lIG9ubHkgaWYKCVNUUklDVF9QRV9GT1JNQVQuCgoyMDAyLTExLTExICBTdmVpbiBFLiBTZWxkYWwgIDxTdmVpbi5TZWxkYWxAc29saWRhcy5jb20+CgoJKiBjb25maWcvdGMtdGljNHguYzogRGVjbGFyZSBhcyBtYW55IGZ1bmN0aW9ucyBhcyBwb3NzaWJsZSBhcwoJc3RhdGljLiBNYWludGVuYW5jZSBvbiB0aGUgZ2VuZXJhbCBpbmRlbnRpbmcuIFJlbW92ZWQgdW5uZWNlc3NhcnkKCXBzZXVkby1vcHMgYW5kIGFkZGVkIG5ldyBvbmVzLiBSZW1vdmVkIG9ic29sZXRlZCBjNHhfcHNldWRvX2lnbm9yZQoJZnVuY3Rpb24uIEFkZCBzdXBwb3J0IGZvciBuZXcgRFNQLCBUTVMzMjBWQzMzLiBGaXggYnVnIGZvcgoJY29udmVydGluZyBmbG9udW0gY29uc3RhbnRzLgoJKGM0eF9kb19hbGlnbik6IEFkZCBwcm9wZXIgYWxpZ24gaGFuZGxpbmcuIFNldHVwIGFsaWduIHRvIGluc2VydAoJTk9QJ3MuCgkoYzR4X2dlbl90b193b3Jkcyk6IFN1cHBvcnQgZm9yIGV4dGVuZGVkIFRJIHR5cGUgZmxvYXRzLgoJKG1kX2F0b2YpOiBQcm9wZXIgZHVtcGluZyBvZiBtdWx0aXBsZS13b3JkIGxpdHRsZW51bXMuCgkoYzR4X2F0b2YpOiBBZGRlZCBzdXBwb3J0IGZvciBleHRlbmRlZCBUSSB0eXBlIGZsb2F0cy4KCShjNHhfc3RyaW5nZXIpOiBBZGRlZCBuZXcgZnVuY3Rpb24gdG8gaGFuZGxlIGNvbXBhY3Qgc3RyaW5ncy4KCShjNHhfZW1pdF9jaGFyKTogQWRkZWQgbmV3IGZ1bmN0aW9uIGFyZ3VtZW50IHRvIGhhbmRsZSBjdXN0b20KCWxlbmd0aCBpbnNlcnRzLCBsaWtlIHNpbmdsZS1ieXRlIHN0cmluZ3MuCgkqIGNvbmZpZy90Yy10aWM0eC5oOiBBZGQgcHJvcGVyIGFsaWduIGhhbmRsaW5nIHdpdGggTk9QJ3MuCgkqIE1ha2VmaWxlLmFtOiBBZGRlZCB0aWM0eCBkZXBlbmRlY3kKCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUKCjIwMDItMTEtMTEgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIG1hY3JvLmMgKGdldF9hbnlfc3RyaW5nKTogQ29ycmVjdCBsb2dpYyBmb3Igbm90IGdvaW5nIGJleW9uZCBlbmQKCW9mIGluLT5wdHJbXS4KCjIwMDItMTEtMTAgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGNvbmZpZy90Yy1tbWl4LmMgKGdldF9wdXRnZXRfb3BlcmFuZHMpOiBNYXJrIGJvdGggcG9zc2libGUKCW9wZXJhbmRzIGFzIGludmFsaWQgYXQgYmVnaW5uaW5nLgoKCSogY29uZmlnL3RjLW1taXguYyAobWRfY29udmVydF9mcmFnKSA8Y2FzZSBTVEFURV9HUkVHX0RFRj46CglJbml0aWFsaXplIHRhcmdldCBvZiBmaXh1cCB0byB6ZXJvLgoKMjAwMi0xMS0wNyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNyb19idWlsZF9sdWkpOiBfZ3BfZGlzcCBpcyBub3Qgc3BlY2lhbCBvbgoJTkVXQUJJLCBidXQgd2Ugc2hvdWxkIHN0aWxsIGVtaXQgSEkxNl9TIGZvciBub24tUElDIG4zMi4KCjIwMDItMTEtMDYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtYWxwaGEuYyAoYWxwaGFfdmFsaWRhdGVfZml4KTogTW92ZSBjb2RlIC4uLgoJKGFscGhhX2ZpeF9hZGp1c3RhYmxlKTogLi4uIGhlcmUuCgkqIGNvbmZpZy90Yy1hbHBoYS5oIChUQ19WQUxJREFURV9GSVgpOiBSZW1vdmUuCgoyMDAyLTExLTA3ICBFcmljIEtvaGwgIDxla29obEByei1vbmxpbmUuZGU+CgoJKiBjb25maWcvdGUtcGUuaCAoTEVYX0FUKTogQWNjZXB0IGF0LXNpZ24gKEApIGFzIGZpcnN0IGNoYXJhY3RlcgoJb2YgYSBsYWJlbC4KCjIwMDItMTEtMDUgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoc3VwcG9ydF82NGJpdF9vYmplY3RzKTogQ2hlY2sgKmwgYmVmb3JlIGl0CglpcyBmcmVlZC4KCjIwMDItMTEtMDQgIERhbm55IFNtaXRoICA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBjb25maWcvb2JqLWNvZmYuYyAob2JqLWNvZmYtc2VjdGlvbik6IFNldCBTRUNfREFUQSBhbmQKCVNFQ19MT0FEIGZsYWdzIGZvciBzZWN0aW9ucyBtYXJrZWQgYXMgJ3MnLgoKMjAwMi0xMS0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHdyaXRlLmMgKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX0FCUyk6IERlZmF1bHQgdG8gemVyby4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9MT0NBTCk6IExpa2V3aXNlIHdoZW4gRElGRl9FWFBSX09LLgoJKiBkb2MvaW50ZXJuYWxzLnRleGkgKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX0FCUyk6IERvY3VtZW50IGNoYW5nZWQKCWRlZmF1bHQuCgoJKiBkZXAtaW4uc2VkOiBGaXggdHlwby4KCjIwMDItMTAtMzAgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogY29uZmlndXJlLmluOiBVcGRhdGUgQVJNIENQVSBwYXR0ZXJucy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCjIwMDItMTAtMjkgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogaXRibC1sZXgubDogVXNlICNpbmNsdWRlIDw+IGZvciBnZW5lcmF0ZWQgaGVhZGVycy4KCSogaXRibC1vcHMuYzogTGlrZXdpc2UuCgoyMDAyLTEwLTI4ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGRvYy9nYXNwLnRleGk6IEZpeCB0eXBvIGluIGRlcHJlY2F0aW9uIG5vdGUuCgoyMDAyLTEwLTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWFybS5jICh0Y19nZW5fcmVsb2MpOiBBbGxvdyBhbiBhYnNvbHV0ZSByZWZlcmVuY2UgdG8KCV9HTE9CQUxfVEFCTEVfT0ZGU0VUXyB0byBiZSBjb252ZXJ0ZWQgaW50byBhIEdPVCByZWxvYy4KCjIwMDItMTAtMjMgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGNvbmZpZy90Yy1tbWl4LmggKG1taXhfZnJvYl9maWxlX2JlZm9yZV9hZGp1c3QpOiBEb24ndCBkZWNsYXJlLgoJKHRjX2Zyb2JfZmlsZV9iZWZvcmVfYWRqdXN0KTogRG9uJ3QgZGVmaW5lLgoJKiBjb25maWcvdGMtbW1peC5jIChtbWl4X2Zyb2JfbG9jYWxfcmVsb2MpOiBSZW1vdmUgdW51c2VkCglmdW5jdGlvbi4KCShtbWl4X2Zyb2JfZmlsZV9iZWZvcmVfYWRqdXN0KTogUmVtb3ZlIGluZWZmZWN0aXZlIGZ1bmN0aW9uLgoKMjAwMi0xMC0yMyAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBjb25maWcvdGMtY3Jpcy5jIChTSU1QTEVfRVhQUik6IE5ldyBtYWNyby4KCShjcmlzX3JlbGF4X2ZyYWcpOiBOZXcgZnVuY3Rpb24uCgkobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpIDxjYXNlIEVOQ09ERV9SRUxBWAoJKFNUQVRFX0JBU0VfUExVU19ESVNQX1BSRUZJWCwgU1RBVEVfVU5ERik+OiBQYXNzIG9uIHVucmVzb2x2ZWQKCWV4cHJlc3Npb25zIHRoYXQgd2lsbCBiZWNvbWUgYWJzb2x1dGUgZXhwcmVzc2lvbnMgdG8gcmVsYXhhdGlvbi4KCShtZF9jb252ZXJ0X2ZyYWcpIDxjYXNlIEVOQ09ERV9SRUxBWCAoU1RBVEVfQkFTRV9QTFVTX0RJU1BfUFJFRklYLAoJU1RBVEVfV09SRCk+OiBFeHBlY3Qgb25seSBhYnNvbHV0ZSBleHByZXNzaW9ucy4gIFVzZSB0aGUgc3ltYm9sCgl2YWx1ZSwgbm90IGRpc3RhbmNlIHRvIHN5bWJvbC4KCTxjYXNlIEVOQ09ERV9SRUxBWCAoU1RBVEVfQkFTRV9QTFVTX0RJU1BfUFJFRklYLCBTVEFURV9CWVRFKT46CglEaXR0by4gIENvcnJlY3QgcGxhY2VtZW50IG9mIGZpeHVwLgoJKG1kX2Fzc2VtYmxlKTogVXNlIFNJTVBMRV9FWFBSIHdoZW4gZGlzc2VjdGluZyBleHByZXNzaW9ucy4KCShnZW5fYmRhcCk6IERpdHRvLgoJKiBjb25maWcvdGMtY3Jpcy5oIChjcmlzX3JlbGF4X2ZyYWcpOiBEZWNsYXJlLgoJKG1kX3JlbGF4X2ZyYWcpOiBEZWZpbmUuCgoyMDAyLTEwLTIyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL29iai1lbGYuYyAoc3BlY2lhbF9zZWN0aW9ucyk6IFVzZSBjb3JyZWN0IHR5cGVzIGZvciBpbml0CglhcnJheSBzZWN0aW9ucy4KCShvYmpfZWxmX2NoYW5nZV9zZWN0aW9uKTogRG9uJ3QgbWVzcyB3aXRoIGluaXQgYXJyYXkgc2VjdGlvbiB0eXBlLgoKMjAwMi0xMC0yMSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19uZWVkX2VsZl9hZGRlbmRfZml4dXApOiBSZXR1cm4gdHJ1ZQoJZm9yIHJlbG9jcyBhZ2FpbnN0IHN5bWJvbHMgaW4gYSBtZXJnZWQgc2VjdGlvbi4KCjIwMDItMTAtMTggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWRfYmVnaW4pOiBBZGQgJGZjYyByZWdpc3RlcnMgdG8gdGhlIHN5bWJvbAoJdGFibGUgYXMgcmVnaXN0ZXIgbmFtZXMuCgoyMDAyLTEwLTE4ICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiBjb25maWcvdGMtczM5MC5jIChtZF9wYXJzZV9vcHRpb24pOiBTZXQgczM5MF9hcmNoX3NpemUgdG8gMzIKCWZvciBvcHRpb24gLW0zMS4KCjIwMDItMTAtMTggIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGV4cHIuYyAob3BlcmFuZCk6IEFkZCBzdXBwb3J0IGZvciBuLm5uIGZsb251bXMuCgoyMDAyLTEwLTE3ICBKb2hhbm5lcyBTdGV6ZW5iYWNoICA8anNAY29udmVyZ2VuY2UuZGU+CgoJKiBpdGJsLXBhcnNlLnkgKGVudHJ5KTogUHJvdmlkZSBlbXB0eSBhY3Rpb24uCgoyMDAyLTEwLTE2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlndXJlLmluIChCRkRWRVJfSCk6IFNldCBhbmQgc3Vic3QuCgkqIGRlcC1pbi5zZWQ6IFJlcGxhY2UgYmZkdmVyLmggd2l0aCAkKEJGRFZFUl9IKS4KCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKEJGRFZFUl9IKTogRGVmaW5lLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTEwLTE1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWkzODYuaCAoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZSBmb3IgUEUgdG9vLgoKMjAwMi0xMC0xNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCShDUFVfT0JKX1ZBTElEKTogc2g2NCBjb2ZmIGlzIGludmFsaWQuCgkqIGFzLmM6ICNpbmNsdWRlICJiZmR2ZXIuaCIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWcuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTEwLTE0ICBNb21jaGlsIFZlbGlrb3YgIDx2ZWxjb0BmYWRhdGEuYmc+CgoJKiBjb25maWcvdGMtdjg1MC5jIChDSEVDS18pOiBSZW1vdmUgdG9rZW4gcGFzdGluZyBvcGVyYXRvci4KCjIwMDItMTAtMTQgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAobWlwczY0dnItZWxmLCBtaXBzNjR2cmVsLWVsZik6IE5ldyBjb25maWcuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMTAtMTMgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoJICAgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoc19ncGR3b3JkKTogTmV3IGZ1bmN0aW9uLgoJKG1pcHNfcHNldWRvX3RhYmxlKTogQWRkIC5ncGR3b3JkLgoJKG1pcHNfbmVlZF9lbGZfYWRkZW5kX2ZpeHVwKTogbmV2ZXIgZm9yIE5FV0FCSS4KCShtZF9hcHBseV9maXgzKTogRG9uJ3QgbWFyayBCRkRfUkVMT0M2NCBhZnRlciBHUFJFTDE2IG9yCglHUFJFTDMyIGFzIGRvbmUuCgkoc19jcGFkZCk6IEdlbmVyYXRlIC5jcGFkZCBvbiBORVdBQkkuCgoyMDAyLTEwLTEyICBFbGlhcyBBdGhhbmFzb3BvdWxvcyAgPGVhdGhhbkBvdGVuZXQuZ3I+CgoJKiBjb25maWcvdGMtcHBjLmMgKHBwY19jbGVhbnVwKTogTWFrZSAnaScgdW5zaWduZWQgaW50LgoKMjAwMi0xMC0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5oIChtaXBzX3JlbGF4X2ZyYWcpOiBUYWtlIHNlZ21lbnQgYXMgYXJndW1lbnQuCgkobWRfcmVsYXhfZnJhZyk6IEFkanVzdCBtYWNyby4KCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19yZWxheF9icmFuY2gpOiBOZXcgdmFyaWFibGUuCgkoUkVMQVhfQlJBTkNIX0VOQ09ERSwgUkVMQVhfQlJBTkNIX1AsIFJFTEFYX0JSQU5DSF9MSUtFTFksCglSRUxBWF9CUkFOQ0hfTElOSywgUkVMQVhfQlJBTkNIX1RPT0JBUik6IE5ldy4KCShSRUxBWF9NSVBTMTZfUCk6IEFkanVzdC4KCShhcHBlbmRfaW5zbik6IEVtaXQgYnJhbmNoIHRvIG5vbi1jb25zdGFudCBpbiBhIGZyYWdfdmFyIGlmCglicmFuY2gtcmVsYXhhdGlvbiBpcyBkZXNpcmFibGUgYW5kIHBvc3NpYmxlLgoJKE9QVElPTl9SRUxBWF9CUkFOQ0gsIE9QVElPTl9OT19SRUxBWF9CUkFOQ0gpOiBOZXcgb3B0aW9ucy4KCShPUFRJT05fRUxGX0JBU0UpOiBBZGp1c3QuCgkobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlIG5ldyBvcHRpb25zLgoJKG1kX2FwcGx5X2ZpeDMpOiBVcGRhdGUgY29tbWVudCBvbiBFTUJFRERFRF9QSUMgY29uZGl0aW9uYWwKCWJyYW5jaCByZWxheGF0aW9uLgoJKHJlbGF4ZWRfYnJhbmNoX2xlbmd0aCk6IE5ldyBmdW5jdGlvbi4KCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IEhhbmRsZSBicmFuY2ggZnJhZ3MuCgkobWlwc19yZWxheF9mcmFnKTogTGlrZXdpc2UuCgkobWRfY29udmVydF9mcmFnKTogSGFuZGxlIGJyYW5jaCBmcmFncy4gIFdhcm4gaWYgYnJhbmNoIGlzCglyZWxheGVkLgoKMjAwMi0xMC0xMSAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBjb25maWcvdGMtc2guYyAoc2hfZm9yY2VfcmVsb2NhdGlvbik6IE1ha2Ugc3VyZSBUTFMgcmVsb2NzIGdldAoJZW1pdHRlZC4KCShtZF9hcHBseV9maXgzKTogQWRkIFRMUyByZWxvY3MuCgkoc2hfcGFyc2VfbmFtZSk6IFN1cHBvcnQgQFRMU0dELCBAVExTTERNLCBAR09UVFBPRkYsIEBUUE9GRiBhbmQKCUBEVFBPRkYuCgoyMDAyLTEwLTExICBNaWNoZWwgU2l4ICA8bXNpeEBjY3IuanVzc2lldS5mcj4KCSAgICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWkzODYuYyAob3V0cHV0X2p1bXApOiBTZXQgZnhfc2lnbmVkIGZvciBsb29wL2pjeHouCgkobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiBMaWtld2lzZSBmb3IgOCBiaXQgYnJhbmNoZXMuCgpUaHUgT2N0IDEwIDE0OjMxOjMwIDIwMDIgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tPgoKCSogY29uZmlnL3RjLXNoLmMgKGFzc2VtYmxlX3BwaSk6IEluaXRpYWxpemUgcmVnX3ggLyByZWdfeSAvIHJlZ19uCglpbnNpZGUgbG9vcC4KCjIwMDItMTAtMDkgIFJpY2hhcmQgU2hhbm4gPHJpY2hhcmQuc2hhbm5Ac3VwZXJoLmNvbT4KCSAgICBTdGVwaGVuIENsYXJrZSA8c3RlcGhlbi5jbGFya2VAc3VwZXJoLmNvbT4KCgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNoNjRfdGFyZ2V0X2Zvcm1hdCk6IEFkZCBzdXBwb3J0IGZvciBzaDY0CglMaW51eCBlbnZpcm9ubWVudC4KCjIwMDItMTAtMDMgIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCSogY29udGlnL3RjLXNoLmMgKHNoX2xvY2FsX3BjcmVsKTogTmV3LgoJKHNoX2ZvcmNlX3JlbG9jYXRpb24pOiBVc2Ugc2hfbG9jYWxfcGNyZWwuCgkobWRfcGNyZWxfZnJvbV9zZWN0aW9uKTogQ2hlY2sgdGhlIHJlbG9jYXRpb24gdHlwZSB3aGV0aGVyIGl0CglzaG91bGQgYmUgcmVzb2x2ZWQgbG9jYWxseS4gVXNlIFNfRk9SQ0VfUkVMT0MuCgoyMDAyLTEwLTAxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLW1pcHMuaCAoVENfRk9SQ0VfUkVMT0NBVElPTl9TVUJfU0FNRSk6IERlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OKTogVGlkeSBhcmcuCgoyMDAyLTA5LTMwICBHYXZpbiBSb21pZy1Lb2NoICA8Z2F2aW5AcmVkaGF0LmNvbT4KCSAgICBLZW4gUmFlYnVybiAgPHJhZWJ1cm5AY3lnbnVzLmNvbT4KCSAgICBBbGR5IEhlcm5hbmRleiAgPGFsZHloQHJlZGhhdC5jb20+CgkgICAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgkgICAgTWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQHJlZGhhdC5jb20+CgkgICAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgkgICAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogZG9jL2MtbWlwcy50ZXhpOiBBZGQgZW50cmllcyBmb3IgLW1hcmNoPXZyNDEyMCx2cjQxMzAsdnI0MTgxLAoJdnI1NDAwIGFuZCB2cjU1MDAuICBBZGQgZW50cnkgZm9yIC1tZml4LXZyNDEyMi1idWdzLgoJKiBjb25maWcvdGMtbWlwcy5jIChDUFVfSEFTX0RST1IsIENQVV9IQVNfUk9SKTogTmV3IG1hY3Jvcy4KCShoaWxvX2ludGVybG9ja3MpOiBUcnVlIGZvciBDUFVfVlI1NTAwLgoJKGdwcl9pbnRlcmxvY2tzLCBjb3BfaW50ZXJsb2Nrcyk6IFRydWUgZm9yIENQVV9WUjU0MDAgYW5kIENQVV9WUjU1MDAuCgkobWlwc19maXhfdnI0MTIyX2J1Z3MpOiBOZXcuCgkoYXBwZW5kX2luc24pOiBXb3JrIGFyb3VuZCA0MTIyIGVycm9ycyBpZiBtaXBzX2ZpeF92cjQxMjJfYnVncy4KCShtaXBzX2VtaXRfZGVsYXlzKTogTGlrZXdpc2UuCgkobWFjcm8yKSBbTV9EUk9MSV06IFVzZSBkcm9yIG9yIGRyb3IzMiBpZiBDUFVfSEFTX0RST1IuCglbTV9ST0xJXTogTGlrZXdpc2Ugcm9yIGlmIENQVV9IQVNfUk9SLgoJKHZhbGlkYXRlX21pcHNfaW5zbiwgbWlwc19pcCk6IEhhbmRsZSAnWycsICddJywgJ2UnIGFuZCAnJScuCgkoT1BUSU9OX0ZJWF9WUjQxMjIsIE9QVElPTl9OT19GSVhfVlI0MTIyKTogTmV3IG9wdGlvbnMuCgkobWRfbG9uZ29wdHMpOiBBZGQgLW1maXgtdnI0MTIyLWJ1Z3MgYW5kIC1uby1tZml4LXZyNDEyMi1idWdzLgoJKE9QVElPTl9FTEZfQkFTRSk6IEJ1bXAuCgkobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlIHRoZSBuZXcgb3B0aW9ucy4KCShtaXBzX2NwdV9pbmZvX3RhYmxlKTogQWRkIGVudHJpZXMgZm9yIHZyNDEyMCwgdnI0MTMwLCB2cjQxODEsCgl2cjU0MDAgYW5kIHZyNTUwMC4KCjIwMDItMDktMjkgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWRfYXBwbHlfZml4Myk6IFN1YnRyYWN0IHRoZSBzeW1ib2wgdmFsdWUKCXR3aWNlIGlmIGhvd3RvLT5wY3JlbF9vZmZzZXQgaXMgdHJ1ZS4KCjIwMDItMDktMjggIE1hdHQgVGhvbWFzICA8bWF0dEAzYW0tc29mdHdhcmUuY29tPgoJICAgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWcvdGMtdmF4LmMgKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogT25seSB0cnkgdG8KCWNvbnZlcnQgdW5kZWZpbmVkIHJlZmVyZW5jZXMgdG8gR09UMzIvUExUMzIgaWYgUElDIGNvZGUgaXMKCXJlcXVlc3RlZC4gIEZpeCBjb21tZW50LgoKMjAwMi0wOS0yNyAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBjb25maWcvdGMtc2guYyAoc2hfZm9yY2VfcmVsb2NhdGlvbik6IFJldHVybiAwIGZvcgoJc29tZSBQQyByZWxhdGl2ZSByZWxvY2F0aW9ucyB3aGVuIG5vdCByZWxheGluZy4KCjIwMDItMDktMjYgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAodGNfaTM4Nl9maXhfYWRqdXN0YWJsZSk6IEFkZCB4ODYtNjQgVExTIHJlbG9jcy4KCURlZmluZSB0aGVtIGlmIG5vdCBCRkRfQVNTRU1CTEVSLgoJKGxleF9nb3QpOiBIYW5kbGUgQHRsc2dkLCBAZHRwb2ZmIGFuZCBAdHBvZmYgaW4gNjQtYml0IG1vZGUsIGFkZAoJQHRsc2xkLgoJKG1kX2FwcGx5X2ZpeDMpOiBObyBhZGRlbmQgZm9yIEJGRF9SRUxPQ19YODZfNjRfVExTR0QsCglCRkRfUkVMT0NfWDg2XzY0X1RMU0xEIGFuZCBCRkRfUkVMT0NfWDg2XzY0X0dPVFRQT0ZGLgoJKHRjX2dlbl9yZWxvYyk6IEhhbmRsZSB4ODYtNjQgVExTIHJlbG9jcy4KCjIwMDItMDktMjcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtYXZyLmMgKG1kX2FwcGx5X2ZpeDMpOiBSZWluc3RhdGUgY29kZSBoYW5kbGluZyBwY3JlbAoJZml4dXBzIHRvIGN1cnJlbnQgb3IgYWJzb2x1dGUgc2VjdGlvbi4KCjIwMDItMDktMjYgIEppbSBXaWxzb24gIDx3aWxzb25AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy12ODUwLmMgKHY4NTBfb2Zmc2V0KTogVXNlIGZyYWdfdmFyIGluc3RlYWQgb2YgZnJhZ19ub3dfZml4CglhbmQgZnJhZ19tb3JlLgoKMjAwMi0wOS0yNiAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKENQVV9IQVNfTUlQUzE2KTogQWRkIG1pcHMtbHNpLWVsZiBhcyBNSVBTMTYKCWNhcGFibGUgY29uZmlndXJhdGlvbi4KCShtYWNyb19idWlsZCk6IENoZWNrIGZvciBNSVBTMTYgY2FwYWJpbGl0eSwgbm90IGZvciBhY3R1YWwgTUlQUzE2IGNvZGUKCWdlbmVyYXRpb24uCgkobWlwc19pcCk6IExpa2V3aXNlLgoKMjAwMi0wOS0yNiAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKGFwcGVuZF9pbnNuKTogRml4IGp1bXAgb3ZlcmZsb3cgY2hlY2suCgoyMDAyLTA5LTI0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWkzODYuYyAocHJvY2Vzc19vcGVyYW5kcyk6IFdhcm4gYWJvdXQgImxlYSIgc2VnbWVudAoJb3ZlcnJpZGVzLgoKMjAwMi0wOS0yMiAgTWFyayBFbGJyZWNodCAgPHNub3diYWxsM0Bzb2Z0aG9tZS5uZXQ+CgoJKiB3cml0ZS5jOiBEZWxldGUgc2V0X3NlZ21lbnRfdm1hIGFuZCBwcm90b3R5cGUuIFVwZGF0ZSBhbGwgY2FsbGVycy4KCjIwMDItMDktMjEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChtZF9hcHBseV9maXgzKTogUmVwbGFjZSBTX0lTX0VYVEVSTkFMLAoJU19JU19XRUFLIGV0Yy4gd2l0aCBTX0ZPUkNFX1JFTE9DIGNhbGwuICBDb3JyZWN0IGNvbW1lbnQuCglSZW5hbWUgImZzZWciIHRvICJzeW1fc2VnIi4KCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZG9jL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wOS0yMCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHN5bWJvbHMuYyAoY29sb24pOiBEbyBub3QgYWxsb3cgc3ltYm9scyB0byBiZSBjcmVhdGVkIGluIHRoZQoJYWJzb2x1dGUgc2VjdGlvbiBpZiBXT1JLSU5HX0RPVF9XT1JEIGlzIG5vdCBkZWZpbmVkIGFuZAoJbmV3X2Jyb2tlbl93b3JkcyB3b3VsZCByZXF1aXJlIGEgbmV3IGZyYWcgdG8gYmUgY3JlYXRlZC4KCjIwMDItMDktMjAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBleHByLmMgKGV4cHIpOiBTaW1wbGlmeSBmb28tZm9vIGhlcmUuCgkoY2xlYW5fdXBfZXhwcmVzc2lvbik6IFJlbW92ZSBPX3N1YnRyYWN0IGNvZGUuCgoJKiB3cml0ZS5oIChzdHJ1Y3QgZml4KTogQWRkIGZ4X2RvdF92YWx1ZS4KCShkb3RfdmFsdWUpOiBEZWNsYXJlLgoJKiB3cml0ZS5jIChkb3RfdmFsdWUpOiBOZXcgdmFyLgoJKGZpeF9uZXdfaW50ZXJuYWwpOiBTYXZlIGRvdF92YWx1ZSBhcyBmeF9kb3RfdmFsdWUuCgkoZml4dXBfc2VnbWVudCk6IEFkanVzdCBmeF9vZmZzZXQgdXNpbmcgZnhfZG90X3ZhbHVlLgoJKiBleHByLmMgKGV4cHIpOiBVcGRhdGUgZG90X3ZhbHVlLgoKMjAwMi0wOS0xOSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jICh0Y19pMzg2X2ZpeF9hZGp1c3RhYmxlKTogSGFuZGxlCglCRkRfUkVMT0NfMzg2X1RMU19JRSBhbmQgQkZEX1JFTE9DXzM4Nl9UTFNfR09USUUuCgkoQkZEX1JFTE9DXzM4Nl9UTFNfSUUsIEJGRF9SRUxPQ18zODZfVExTX0dPVElFKTogRGVmaW5lIHRvIDAKCWlmIG5vdCBkZWZpbmVkLgoJKGxleF9nb3QpOiBIYW5kbGUgQEdPVE5UUE9GRiBhbmQgQElORE5UUE9GRi4KCShtZF9hcHBseV9maXgzLCB0Y19nZW5fcmVsb2MpOiBIYW5kbGUgQkZEX1JFTE9DXzM4Nl9UTFNfSUUgYW5kCglCRkRfUkVMT0NfMzg2X1RMU19HT1RJRS4KCjIwMDItMDktMTkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtYWxwaGEuYyAobWRfcGNyZWxfZnJvbSk6IE9ubHkgYWRqdXN0IHNwZWNpYWwgZm9yCglicmFuY2ggdHlwZSByZWxvY3MuCgkoYWxwaGFfZm9yY2VfcmVsb2NhdGlvbik6IERvbid0IHNwZWNpYWwtY2FzZSBicmFuY2ggdHlwZSByZWxvY3MuCgoyMDAyLTA5LTE5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW02OGsuYyAoc2VsZWN0X2NvbnRyb2xfcmVncyk6IEhhbmRsZSBzaXR1YXRpb24gd2hlcmUKCWFyY2hpdGVjdHVyZSBoYXMgbm90IHlldCBiZWVuIHNlbGVjdGVkLgoKMjAwMi0wOS0xOCAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKElTX1NFWFRfMzJCSVRfTlVNKTogTW92ZSBjbG9zZXIgdG8gdG9wIG9mIGZpbGUuCgkoSVNfU0VYVF8xNkJJVF9OVU0pOiBOZXcgbWFjcm8uCgkobWFjcm9fYnVpbGRfbGRzdF9jb25zdG9mZnNldCk6IE5ldyBmdW5jdGlvbiwgdG8gYnVpbGQgYSBzZXQgb2YKCWluc3RydWN0aW9ucyB0byBkbyBhIGxvYWQgb3Igc3RvcmUgZnJvbSBhIGNvbnN0YW50IG9mZnNldCByZWxhdGl2ZQoJdG8gYSBnaXZlbiByZWdpc3Rlci4KCShtYWNybywgc19jcHJlc3RvcmUpOiBVc2UgbWFjcm9fYnVpbGRfbGRzdF9jb25zdG9mZnNldCB0byBpbXBsZW1lbnQKCS5jcHJlc3RvcmUgcHNldWRvLW9wLgoKMjAwMi0wOS0xOCAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1kX2FwcGx5X2ZpeDMpOiBKdXN0IHJldHVybiBmb3IgQkZEX1JFTE9DXzguCgoyMDAyLTA5LTE4ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoc19jaGFuZ2Vfc2VjdGlvbik6IEZpeCBwYXJzaW5nLiBDb2RlIGNsZWFudXAuCgoyMDAyLTA5LTE3ICBTdGFuIENveCAgPHNjb3hAcmVkaGF0LmNvbT4KCgkqIHRjLW1pcHMuYyAobG9hZF9hZGRyZXNzKTogVXNlIEJGRF9SRUxPQ19NSVBTX0dPVF9ESVNQIGZvciBuZXdhYmkuCgkobWFjcm8pOiBMaWtld2lzZSBmb3IgbGEuICBMaWtld2lzZSBmb3IgbGQuCgkobWlwc19hZnRlcl9wYXJzZV9hcmdzKTogTWFrZSAteGdvdCBvcHRpb25hbCwgbm90IHRoZSBkZWZhdWx0LgoJKG1kX2FwcGx5X2ZpeDMpOiBBbGxvdyBjb21wb3NpdGUgcmVsb2NhdGlvbiB0byBzZXQgdXAgZ3AuCgkodGNfZ2VuX3JlbG9jKTogQWxsb3cgcmVsYXhpbmcgZm9yIG5ld2FiaS4KCVJlbGF4IFJfTUlQU19DQUxMMTYgdG8gUl9NSVBTX0dPVF9QQUdFL1JfTUlQU19HT1RfT0ZTVCBpZiBsb2NhbC4KCVJlbGF4IFJfTUlQU19HT1QxNi9SX01JUFNfTE8xNiB0byBSX01JUFNfR09UX0RJU1AgaWYgbG9jYWwuCgoyMDAyLTA5LTE3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWFybS5jIChtZF9hcHBseV9maXgzKTogTm90ZSB0aGF0IGFuIGltcGxlbWVudGVkCglCRkRfUkVMT0NfQVJNX0lNTUVESUFURSBoYXMgYmVlbiBkb25lLgoJKHRjX2dlbl9yZWxvYyk6IERvIG5vdCBpc3N1ZSByZWxvYyBudW1iZXIgb2YgdW5pbXBsZW1lbnRlZAoJQkZEX1JFTE9DX0FSTV9JTU1FRElBVEUgYW5kIEJGRF9SRUxPQ19BUk1fT0ZGU0VUX0lNTSByZWxvY3MgLQoJdGhlaXIgbmFtZSBpcyBhbHJlYWR5IGluIHRoZSBlcnJvciBtZXNzYWdlIC0gcGx1cyByZW1vdmUgdGhlbQoJZnJvbSB0aGUgZGVmYXVsdCBjYXNlLgoKCSogY29uZmlnL3RjLWFybS5jIChkb19sZG1zdG0pOiBXYXJuIGFib3V0IHVucHJlZGljdGFibGUKCWJlaGF2aW9yIG9mIGluc3RydWN0aW9ucy4KCjIwMDItMDktMTcgIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGNvbmZpZy90Yy10aWM0eC5jOiBBZGQgZnVuY3Rpb24gZGVjbGFyYXRpb25zIGFuZCBBVFRSSUJVVEVfVU5VU0VELgoJQ29udmVydCBmdW5jdGlvbnMgdG8gSyZSIGZvcm1hdC4KCjIwMDItMDktMTcgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChwZHJfc2VnKTogRGVmaW5lIG9ubHkgZm9yIEVMRi4KCShzX2NoYW5nZV9zZWN0aW9uKTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4gRG9uJ3QgdXNlIGZvciBub25FTEYuCgoyMDAyLTA5LTE3ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL29iai1lbGYuYyAob2JqX2VsZl9jaGFuZ2Vfc2VjdGlvbik6IE1vdmUgcHJvdG90eXBlIHRvCglvYmotZWxmLmgKCSogY29uZmlnL29iai1lbGYuaCAob2JqX2VsZl9jaGFuZ2Vfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMi0wOS0xNiAgRWxpYXMgQXRoYW5hc29wb3Vsb3MgIDxlYXRoYW5Ab3RlbmV0LmdyPgoKCSogZHdhcmYyZGJnLmMgKG91dF9kZWJ1Z19hYmJyZXYpOiBBZGQgc3VwcG9ydCBmb3IgdGhlIERXX0FUX25hbWUgZmllbGQuCgkob3V0X2RlYnVnX2luZm8pOiBMaWtld2lzZS4KCjIwMDItMDktMTYgIEJydW5vIEhhaWJsZSAgPGJydW5vQGNsaXNwLm9yZz4KCgkqIGNvbmZpZy90Yy1pMzg2LmggKEVMRl9UQVJHRVRfRk9STUFUKTogTmV3IG1hY3JvLgoJKFRBUkdFVF9GT1JNQVQpOiBVc2UgRUxGX1RBUkdFVF9GT1JNQVQgaW5zdGVhZCBvZiAiZWxmMzItaTM4NiIuCgkqIGNvbmZpZy90Yy1pMzg2LmMgKGkzODZfdGFyZ2V0X2Zvcm1hdCk6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtYWxwaGEuaCAoRUxGX1RBUkdFVF9GT1JNQVQpOiBOZXcgbWFjcm8uCgkoVEFSR0VUX0ZPUk1BVCk6IFVzZSBFTEZfVEFSR0VUX0ZPUk1BVCBpbnN0ZWFkIG9mICJlbGY2NC1hbHBoYSIuCgoyMDAyLTA5LTEzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXBwYy5jIChtZF9hc3NlbWJsZSk6IERvIG5vdCBjb3VudCBGQUtFIG9wZXJhbmRzCgl3aGVuIGRlY2lkaW5nIGlmIGFueSBvcGVyYW5kcyBoYXZlIGJlZW4gc2tpcHBlZC4KCjIwMDItMDktMTEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBORVdTOiBOZXcgVEkgcG9ydCBzdXBwb3J0cyBib3RoIEM0eCBhbmQgQzN4IHNlcmllcyBvZiBEU1BzLgoKCSogcG8vdHIucG86IFVwZGF0ZWQgVHVya2lzaCB0cmFuc2xhdGlvbi4KCjIwMDItMDktMTEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAobWRfYXBwbHlfZml4Myk6IEFsbG93IGFkZGVuZCBmb3IKCUJGRF9SRUxPQ18zODZfVExTX0xET18zMiwgQkZEX1JFTE9DXzM4Nl9UTFNfTEUgYW5kCglCRkRfUkVMT0NfMzg2X1RMU19MRV8zMi4KCjIwMDItMDktMDUgIEplZmYgTGF3ICA8bGF3QHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtaHBwYS5jIChtZF9hcHBseV9maXgzKTogRG9uJ3Qgc2V0IGZ4X2RvbmUgZm9yCgltYXJrZXIgcmVsb2NhdGlvbnMgc3VjaCBhcyBFTlRSWS9FWElULgoJKiBjb25maWcvdGMtaHBwYS5oIChNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbml0aW9uIGFwcGxpZXMKCXRvIGJvdGggT0JKX0VMRiBhbmQgT0JKX1NPTS4KCjIwMDItMDktMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkb2MvaW50ZXJuYWxzLnRleGkgKG1kX2FwcGx5X2ZpeDMpOiBFeHBhbmQuCgkoVENfVkFMSURBVEVfRklYLCBUQ19GT1JDRV9SRUxPQ0FUSU9OLCBUQ19GT1JDRV9SRUxPQ0FUSU9OX0FCUywKCVRDX0ZPUkNFX1JFTE9DQVRJT05fTE9DQUwsIFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX1NBTUUsCglUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9BQlMsIFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX0xPQ0FMLAoJVENfVkFMSURBVEVfRklYX1NVQiwgTURfQVBQTFlfU1lNX1ZBTFVFLCBTX0ZPUkNFX1JFTE9DLAoJRVhURVJOX0ZPUkNFX1JFTE9DKTogRG9jdW1lbnQuCgkoVENfSEFORExFU19GWF9ET05FLCBvYmpfZml4X2FkanVzdGFibGUpOiBSZW1vdmUuCgkqIGFzLmg6IERvbid0IGluY2x1ZGUgc3RydWMtc3ltYm9sLmggZm9yIGFyYy4KCShJU19FTEYpOiBEZWZpbmUuCgkqIGNnZW4uYyAoZ2FzX2NnZW5fbWRfYXBwbHlfZml4Myk6IFJlbW92ZSAqdmFsUCBmdWRnZXMgYW5kIGNvZGUgdG8KCXN1YnRyYWN0IGFic29sdXRlIHN5bWJvbC4KCSogb2JqLmggKHN0cnVjdCBmb3JtYXRfb3BzKTogQWRkIGZyb2JfZmlsZV9iZWZvcmVfZml4LgoJKiBzdWJzZWdzLmMgKHNlY3Rpb25fc3ltYm9sKTogU2V0IEJTRl9TRUNUSU9OX1NZTSBmbGFnLgoJKiBzeW1ib2xzLmMgKFNfRk9SQ0VfUkVMT0MpOiBOZXcgZnVuY3Rpb24uCgkqIHN5bWJvbHMuaCAoU19GT1JDRV9SRUxPQyk6IERlY2xhcmUuCgkqIHdyaXRlLmMgKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBDaGFuZ2UgZGVmYXVsdC4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX0FCUyk6IERlZmluZS4KCShUQ19SRUxPQ19SVFNZTV9MT0NfRklYVVApOiBEb24ndCBkZWZpbmUuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9MT0NBTCk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9TRUNUSU9OKTogRG9uJ3QgZGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX1NBTUUpOiBEZWZpbmUgdGhpcyBpbnN0ZWFkLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX0FCUyk6IERlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9MT0NBTCk6IERlZmluZS4KCShUQ19WQUxJREFURV9GSVhfU1VCKTogRGVmaW5lLgoJKFRDX0ZJWF9BREpVU1RBQkxFKTogRG9uJ3QgZGVmaW5lLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoYWJzX3NlY3Rpb25fc3ltKTogTmV3IHZhcmlhYmxlLgoJKGFkanVzdF9yZWxvY19zeW1zKTogVXNlIFNfRk9SQ0VfUkVMT0MuICBSZW1vdmUgb2JqX2ZpeF9hZGp1c3RhYmxlCgljYWxsLiAgRG9uJ3Qgc3ltYm9sX21hcmtfdXNlZF9pbl9yZWxvYyBoZXJlLiAgU2ltcGxpZnkgbGlua19vbmNlIHRlc3RzLgoJRG9uJ3QgcHV0IHRoZSBhYnNvbHV0ZSBzZWN0aW9uIHN5bSBvbiBmaXh1cHMgaGVyZS4KCShmaXhfc2VnbWVudCk6IE5ldyBmdW5jdGlvbi4KCSh3cml0ZV9yZWxvY3MpOiBEb24ndCBjYWxsIGZpeHVwX3NlZ21lbnQgZnJvbSBoZXJlLgoJKHdyaXRlX29iamVjdF9maWxlKTogSW5zdGVhZCBjYWxsIHRjX2Zyb2JfZmlsZV9iZWZvcmVfZml4LAoJb2JqX2Zyb2JfZmlsZV9iZWZvcmVfZml4LCBhbmQgZml4X3NlZ21lbnQgcHJpb3IgdG8gc3ltYm9sIHRhYmxlIGNvZGUuCglEb24ndCBvdXRwdXQgdGhlIGFic29sdXRlIHNlY3Rpb24gc3ltYm9sLgoJKGZpeHVwX3NlZ21lbnQpOiBSZXdyaXRlLgoJKiB3cml0ZS5oIChhYnNfc2VjdGlvbl9zeW0pOiBEZWNsYXJlLgoJKiBjb25maWcvb2JqLWFvdXQuYyAob2JqX2FvdXRfZnJvYl9maWxlX2JlZm9yZV9maXgpOiBSZW5hbWUgZnJvbQoJb2JqX2FvdXRfZnJvYl9maWxlLgoJKGFvdXRfZm9ybWF0X29wcyk6IEFkanVzdCB0byBzdWl0LgoJKiBjb25maWcvb2JqLWFvdXQuaCAob2JqX2Zyb2JfZmlsZSk6IERvbid0IGRlZmluZS4KCShvYmpfZnJvYl9maWxlX2JlZm9yZV9maXgpOiBEZWZpbmUuCgkob2JqX2FvdXRfZnJvYl9maWxlX2JlZm9yZV9maXgpOiBSZW5hbWUgZnJvbSBvYmpfYW91dF9mcm9iX2ZpbGUuCgkoU19GT1JDRV9SRUxPQyk6IERlZmluZS4KCSogY29uZmlnL29iai1ib3V0LmggKFNfRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkqIGNvbmZpZy9vYmotY29mZi5jIChjb2ZmX2Zvcm1hdF9vcHMpOiBJbml0IG5ldyBmaWVsZC4KCSogY29uZmlnL29iai1jb2ZmLmg6IEZvcm1hdHRpbmcgZml4ZXMuCgkob2JqX3NlY19zeW1fb2tfZm9yX3JlbG9jKTogRGVmaW5lLgoJKFNfRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkqIGNvbmZpZy9vYmotZWNvZmYuYyAoZWNvZmZfZnJvYl9maWxlX2JlZm9yZV9maXgpOiBTcGxpdCBvdXQgLi4KCShlY29mZl9mcm9iX2ZpbGUpOiAuLiBmcm9tIGhlcmUuCgkoZWNvZmZfZm9ybWF0X29wcyk6IEFkZCBuZXcgZnVuY3Rpb24uCgkqIGNvbmZpZy9vYmotZWNvZmYuaCAoZWNvZmZfZnJvYl9maWxlX2JlZm9yZV9maXgpOiBEZWNsYXJlLgoJKG9ial9mcm9iX2ZpbGVfYmVmb3JlX2ZpeCk6IERlZmluZS4KCSogY29uZmlnL29iai1lbGYuYyAoZWxmX2Zvcm1hdF9vcHMpOiBJbml0IG5ldyBmaWVsZC4KCSogY29uZmlnL29iai1lbGYuaCAob2JqX3NlY19zeW1fb2tfZm9yX3JlbG9jKTogRXhwYW5kIGNvbW1lbnQuCgkqIGNvbmZpZy9vYmotaWVlZS5oOiBGb3JtYXR0aW5nIGZpeGVzLgoJKFNfRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkqIGNvbmZpZy9vYmotbXVsdGkuaCAob2JqX2Zyb2JfZmlsZV9iZWZvcmVfZml4KTogRGVmaW5lLgoJKiBjb25maWcvb2JqLXZtcy5oIChTX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKiBjb25maWcvdGMtYWxwaGEuYyAobWRfYXBwbHlfZml4Myk6IENvcnJlY3QgR1BESVNQIGNvbW1lbnQuCgkoYWxwaGFfZm9yY2VfcmVsb2NhdGlvbik6IFVzZSBTX0ZPUkNFX1JFTE9DLCBhbmQgZG9uJ3QgcmV0dXJuIDAKCWZvciBCRkRfUkVMT0NfMzIgYW5kIEJGRF9SRUxPQ182NC4KCShhbHBoYV9maXhfYWRqdXN0YWJsZSk6IFJlbW92ZSBleHRlcm4gYW5kIHdlYWsgdGVzdHMuCgkoYWxwaGFfYmVmb3JlX2ZpeCk6IFJlbmFtZSBmcm9tIGFscGhhX2FkanVzdF9zeW10YWIuCgkoYWxwaGFfYWRqdXN0X3JlbG9jcyk6IFJlbmFtZSBmcm9tIGFscGhhX2FkanVzdF9zeW10YWJfcmVsb2NzLgoJKiBjb25maWcvdGMtYWxwaGEuaCAoc3RydWN0IGZpeCwgc3RydWN0IGFscGhhX3JlbG9jX3RhZyk6IERlY2xhcmUuCgkoVENfVkFMSURBVEVfRklYKTogVHdlYWsgcGFyYW0gbmFtZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OLCB0Y19maXhfYWRqdXN0YWJsZSk6IExpa2V3aXNlLgoJKFRDX1JFTE9DX1JUU1lNX0xPQ19GSVhVUCk6IERvbid0IGRlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX0xPQ0FMKTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCShNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkodGNfYWRqdXN0X3N5bXRhYik6IERvbid0IGRlZmluZS4KCShhbHBoYV9hZGp1c3Rfc3ltdGFiKTogRG9uJ3QgZGVjbGFyZS4KCSh0Y19mcm9iX2ZpbGVfYmVmb3JlX2ZpeCk6IERlZmluZS4KCShhbHBoYV9iZWZvcmVfZml4KTogRGVjbGFyZS4KCShUQ19JTklUX0ZJWF9EQVRBKTogVHdlYWsgcGFyYW0gbmFtZXMuCgkqIGNvbmZpZy90Yy1hcmMuYzogSW5jbHVkZSAic3RydWMtc3ltYm9sLmgiLgoJKG1kX3BjcmVsX2Zyb20pOiBSZW1vdmUgdW5kZWZpbmVkIHN5bSBmdWRnZS4KCShtZF9hcHBseV9maXgzKTogUmVtb3ZlICp2YWxQIGZ1ZGdlcyBhbmQgY29kZSB0byBzdWJ0cmFjdCBhYnMgc3ltLgoJRG9uJ3Qgc2V0IGZ4X2FkZG51bWJlci4KCSh0Y19nZW5fcmVsb2MpOiBSZW1vdmUgc3B1cmlvdXMgZnhfYWRkbnVtYmVyIGNvbW1lbnQuCgkqIGNvbmZpZy90Yy1hcmMuaCAoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKEVYVEVSTl9GT1JDRV9SRUxPQyk6IERlZmluZS4KCSogY29uZmlnL3RjLWFybS5jIChtZF9hcHBseV9maXgzIDxjYXNlIEJGRF9SRUxPQ19BUk1fR09UUEM+KTogUmVtb3ZlLgoJKHRjX2dlbl9yZWxvYyk6IEZ1ZGdlIEFSTV9HT1RQQyBhZGRlbmQuCgkoYXJtX3ZhbGlkYXRlX2ZpeCk6IFJldHVybiB2b2lkLgoJKGFybV9maXhfYWRqdXN0YWJsZSA8ZWxmIHZlcnNpb24+KTogUmVtb3ZlIGV4dGVybiBhbmQgd2VhayB0ZXN0cy4KCUFkZCBwbHQgYW5kIGdvdCByZWxvYyB0ZXN0cy4KCShhcm1fZm9yY2VfcmVsb2NhdGlvbik6IENhbGwgU19GT1JDRV9SRUxPQy4KCSogY29uZmlnL3RjLWFybS5oIChzdHJ1Y3QgZml4KTogRm9yd2FyZCBkZWNsYXJlLgoJKFRDX1ZBTElEQVRFX0ZJWCk6IE5vIGxvbmdlciBzZXQgYWRkX3N5bWJvbFAuCgkoYXJtX3ZhbGlkYXRlX2ZpeCk6IEFkanVzdCBkZWNsYXJhdGlvbi4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OIDxwZSB2ZXJzaW9uKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBUd2VhayBwYXJhbSBuYW1lLgoJKFRDX0lOSVRfRklYX0RBVEEpOiBMaWtld2lzZS4KCShvYmpfZml4X2FkanVzdGFibGUpOiBEb24ndCBkZWZpbmUuCgkodGNfZml4X2FkanVzdGFibGUpOiBDYWxsIGFybV9maXhfYWRqdXN0YWJsZS4KCShUQ19GSVhfQURKVVNUQUJMRSk6IERvbid0IGRlZmluZS4KCShNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKFRDX1JFTE9DX1JUU1lNX0xPQ19GSVhVUCk6IERvbid0IGRlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX0xPQ0FMKTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCSogY29uZmlnL3RjLWF2ci5jIChtZF9hcHBseV9maXgzKTogRG9uJ3QgY2FzdCB2YWxQIHBvaW50ZXIgdHlwZS4KCVJlbW92ZSAqdmFsUCBmdWRnZXMgYW5kIGNvZGUgdG8gc3VidHJhY3QgYWJzIHN5bS4gIERvbid0IHNldAoJZnhfYWRkbnVtYmVyLgoJKiBjb25maWcvdGMtYXZyLmg6IEZvcm1hdHRpbmcuCgkoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZS4KCSogY29uZmlnL3RjLWNyaXMuYyAodGNfZ2VuX3JlbG9jKTogRG9uJ3QgdXNlIGZ4X2FkZG51bWJlci4KCShtZF9hcHBseV9maXgzKTogUmVtb3ZlIGNvZGUgdG8gc3VidHJhY3QgYWJzIHN5bS4KCShtZF9jcmlzX2ZvcmNlX3JlbG9jYXRpb24pOiBVcGRhdGUgY29tbWVudC4gIENhbGwgU19GT1JDRV9SRUxPQy4KCSogY29uZmlnL3RjLWNyaXMuaCAoVENfRk9SQ0VfUkVMT0NBVElPTik6IFR3ZWFrIHBhcmFtIG5hbWUuCgkoSVNfQ1JJU19QSUNfUkVMT0MsIHRjX2ZpeF9hZGp1c3RhYmxlKTogTGlrZXdpc2UuCgkoVENfUkVMT0NfUlRTWU1fTE9DX0ZJWFVQKTogRG9uJ3QgZGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fTE9DQUwpOiBEZWZpbmUgdGhpcyBpbnN0ZWFkLgoJKHRjX2ZpeF9hZGp1c3RhYmxlKTogUmVtb3ZlIGV4dGVybiwgd2VhayB0ZXN0cy4KCSogY29uZmlnL3RjLWQxMHYuYyAodGNfZ2VuX3JlbG9jKTogRG9uJ3QgZmlkZGxlIGFkZHJlc3Mgb2YKCUJGRF9SRUxPQ19WVEFCTEVfSU5IRVJJVCByZWxvY3MuICBEb24ndCB1c2UgZnhfYWRkbnVtYmVyLgoJKG1kX2FwcGx5X2ZpeDMpOiBEb24ndCBjYXN0IHZhbFAgcG9pbnRlciB0eXBlLiAgUmVtb3ZlICp2YWxQIGZ1ZGdlcwoJYW5kIGNvZGUgdG8gc3VidHJhY3QgYWJzIHN5bS4KCShkMTB2X2ZpeF9hZGp1c3RhYmxlKTogUmVtb3ZlIGV4dGVybiwgd2VhaywgU0VDX01FUkdFIHRlc3RzLgoJKGQxMHZfZm9yY2VfcmVsb2NhdGlvbik6IENhbGwgU19GT1JDRV9SRUxPQy4KCSogY29uZmlnL3RjLWQxMHYuaDogRG9uJ3QgaW5jbHVkZSB3cml0ZS5oLgoJKHN0cnVjdCBmaXgpOiBJbnN0ZWFkLCBmb3J3YXJkIGRlY2xhcmUuCgkoTURfUENSRUxfRlJPTV9TRUNUSU9OKTogVHdlYWsgcGFyYW0gbmFtZXMuCgkobWRfcGNyZWxfZnJvbV9zZWN0aW9uKTogVXNlICJzdHJ1Y3QgZml4IiBpbnN0ZWFkIG9mICJmaXhTIi4KCShkMTB2X2ZpeF9hZGp1c3RhYmxlKTogTGlrZXdpc2UuCgkob2JqX2ZpeF9hZGp1c3RhYmxlKTogRG9uJ3QgZGVmaW5lLgoJKHRjX2ZpeF9hZGp1c3RhYmxlKTogRGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBUd2VhayBwYXJhbSBuYW1lLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZS4KCShFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1kMzB2LmMgKHRjX2dlbl9yZWxvYyk6IERvbid0IHVzZSBmeF9hZGRudW1iZXIuCgkobWRfYXBwbHlfZml4Myk6IERvbid0IGNhc3QgdmFsUCBwb2ludGVyIHR5cGUuICBSZW1vdmUgKnZhbFAgZnVkZ2VzCglhbmQgY29kZSB0byBzdWJ0cmFjdCBhYnMgc3ltLgoJKiBjb25maWcvdGMtZDMwdi5oOiBEb24ndCBpbmNsdWRlIHdyaXRlLmguCgkoc3RydWN0IGZpeCk6IEluc3RlYWQsIGZvcndhcmQgZGVjbGFyZS4KCShNRF9QQ1JFTF9GUk9NX1NFQ1RJT04pOiBUd2VhayBwYXJhbSBuYW1lcy4KCShtZF9wY3JlbF9mcm9tX3NlY3Rpb24pOiBVc2UgInN0cnVjdCBmaXgiIGluc3RlYWQgb2YgImZpeFMiLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZS4KCShFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1kbHguYyAobWRfZGx4X2ZvcmNlX3JlbG9jYXRpb24pOiBDYWxsIFNfRk9SQ0VfUkVMT0MuCgkobWRfZGx4X2ZpeF9hZGp1c3RhYmxlKTogRG9uJ3QgdGVzdCBmb3IgTlVMTCBmeF9hZGRzeS4KCShtZF9hcHBseV9maXgzKTogTm8gbmVlZCB0byB0ZXN0IGZ4X3BjcmVsIGJlZm9yZSBzZXR0aW5nIGZ4X2RvbmUuCgkodGNfZ2VuX3JlbG9jKTogRG9uJ3QgZmlkZGxlIHdpdGggQkZEX1JFTE9DX1ZUQUJMRV9JTkhFUklUIHJlbG9jcy4KCUFkanVzdCB0aGUgYWRkcmVzcyBmb3IgQkZEX1JFTE9DX1ZUQUJMRV9FTlRSWSwgbm90IHRoZSBhZGRlbmQuCglEb24ndCB1c2UgZnhfYWRkbnVtYmVyLgoJKiBjb25maWcvdGMtZGx4Lmg6IERvbid0IGluY2x1ZGUgd3JpdGUuaC4KCShtZF9jb252ZXJ0X2ZyYWcpOiBXZSdyZSBub3QgYWxwaGEgdHdpY2Ugb3Zlci4KCShFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkob2JqX2ZpeF9hZGp1c3RhYmxlKTogRG9uJ3QgZGVmaW5lLgoJKHRjX2ZpeF9hZGp1c3RhYmxlKTogRGVmaW5lLgoJKFRDX0ZJWF9BREpVU1RBQkxFKTogRG9uJ3QgZGVmaW5lLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZS4KCShMT0NBTF9MQUJFTFNfRE9MTEFSKTogVW5kZWYgYWx3YXlzLgoJKiBjb25maWcvdGMtZnIzMC5jIChmcjMwX2ZvcmNlX3JlbG9jYXRpb24pOiBDYWxsIFNfRk9SQ0VfUkVMT0MuCgkoZnIzMF9maXhfYWRqdXN0YWJsZSk6IFJlbW92ZSBleHRlcm4sIHdlYWsgdGVzdHMuCgkqIGNvbmZpZy90Yy1mcjMwLmggKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZS4KCShvYmpfZml4X2FkanVzdGFibGUpOiBEb24ndCBkZWZpbmUuCgkodGNfZml4X2FkanVzdGFibGUpOiBEZWZpbmUuCgkoc3RydWN0IGZpeCk6IEZvcndhcmQgZGVjbGFyZS4KCShNRF9QQ1JFTF9GUk9NX1NFQ1RJT04pOiBUd2VhayBwYXJhbSBuYW1lLiAgUmVtb3ZlIGR1cGxpY2F0ZS4KCSogY29uZmlnL3RjLWZydi5jIChmcnZfZm9yY2VfcmVsb2NhdGlvbik6IENhbGwgU19GT1JDRV9SRUxPQy4KCShmcnZfZml4X2FkanVzdGFibGUpOiBEb24ndCBkbyBleHRlcm4sIHdlYWsgdGVzdHMuCgkqIGNvbmZpZy90Yy1mcnYuaCAoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKFRDX0ZJWF9BREpVU1RBQkxFKTogRG9uJ3QgZGVmaW5lLgoJKG9ial9maXhfYWRqdXN0YWJsZSk6IERvbid0IGRlZmluZS4KCSh0Y19maXhfYWRqdXN0YWJsZSk6IERlZmluZS4KCShzdHJ1Y3QgZml4KTogRm9yd2FyZCBkZWNsYXJlLgoJKE1EX1BDUkVMX0ZST01fU0VDVElPTik6IFR3ZWFrIHBhcmFtIG5hbWUuICBSZW1vdmUgZHVwbGljYXRlLlwKCSogY29uZmlnL3RjLWg4MzAwLmMgKG1kX2FwcGx5X2ZpeDMpOiBEb24ndCBjYXN0IHZhbFAgcG9pbnRlciB0eXBlLgoJKiBjb25maWcvdGMtaDgzMDAuaCAoc3RydWN0IGZpeCk6IEZvcndhcmQgZGVjbGFyZS4KCShFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1ocHBhLmMgKG1kX2FwcGx5X2ZpeDMpOiBSZW1vdmUgc3VidHJhY3Rpb24gb2Ygc3ltIHZhbHVlLgoJKGhwcGFfZml4X2FkanVzdGFibGUpOiBEb24ndCB0ZXN0IGV4dGVybiBvciB3ZWFrLiAgRG9uJ3QKCXN5bWJvbF9tYXJrX3VzZWRfaW5fcmVsb2MuCgkoaHBwYV9mb3JjZV9yZWxvY2F0aW9uKTogVXNlIFNfRk9SQ0VfUkVMT0MgaW5zdGVhZCBvZiBTX0lTX0VYVEVSTkFMCglhbmQgU19JU19XRUFLLgoJKiBjb25maWcvdGMtaHBwYS5oIChFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEZWZpbmUKCShUQ19GT1JDRV9SRUxPQ0FUSU9OLCBUQ19JTklUX0ZJWF9EQVRBKTogVHdlYWsgcGFyYW0gbmFtZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX1NFQ1RJT04pOiBEb24ndCBkZWZpbmUuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKiBjb25maWcvdGMtaTM3MC5jIChtZF9hcHBseV9maXgzKTogUmVtb3ZlICp2YWxQIGZ1ZGdlcyBhbmQgY29kZQoJdG8gc3VidHJhY3QgYWJzIHN5bS4KCSogY29uZmlnL3RjLWkzNzAuaDogUmVtb3ZlIGlmZGVmIE9CSl9FTEYgdGVzdHMuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKE1EX1BDUkVMX0ZST01fU0VDVElPTik6IFR3ZWFrIHBhcmFtIG5hbWUuCgkqIGNvbmZpZy90Yy1pMzg2LmMgKHRjX2kzODZfZml4X2FkanVzdGFibGUpOiBSZW1vdmUgd2VhaywgZXh0ZXJuIHRlc3RzLgoJKG1kX2FwcGx5X2ZpeDMpOiBUZXN0IGZ4X2FkZHN5LCBub3QgZnhfcGNyZWwuCgkoaTM4Nl9mb3JjZV9yZWxvY2F0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKiBjb25maWcvdGMtaTM4Ni5oIChUQ19DT0ZGX0ZJWDJSVFlQRSk6IFR3ZWFrIHBhcmFtIG5hbWUuCgkoVENfVkFMSURBVEVfRklYKTogTGlrZXdpc2UuCgkoVENfRklYX0FESlVTVEFCTEUpOiBEb24ndCBkZWZpbmUuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT04gPGVsZiB2ZXJzaW9uPik6IENhbGwgaTM4Nl9mb3JjZV9yZWxvY2F0aW9uLgoJKGkzODZfZm9yY2VfcmVsb2NhdGlvbik6IERlY2xhcmUuCgkoVENfUkVMT0NfUlRTWU1fTE9DX0ZJWFVQKTogRG9uJ3QgZGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fTE9DQUwpOiBEZWZpbmUgdGhpcyBpbnN0ZWFkLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT04gPGNvZmYgdmVyc2lvbj4pOiBDYWxsIFNfRk9SQ0VfUkVMT0MuCgkqIGNvbmZpZy90Yy1pODYwLmMgKG1kX2FwcGx5X2ZpeDMpOiBEb24ndCBjYXN0IHZhbFAgcG9pbnRlciB0eXBlLgoJKiBjb25maWcvdGMtaTg2MC5oIChNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKiBjb25maWcvdGMtaTk2MC5jIChyZWxvY19jYWxsaik6IFJlbW92ZSBkZWNsYXJhdGlvbi4gIFJldHVybiBmYWxzZS4KCShtZF9hcHBseV9maXgzKTogRG9uJ3QgY2FzdCB2YWxQIHBvaW50ZXIgdHlwZS4gIE1vdmUgY29kZSBoZXJlIGZyb20KCW9sZCBmaXh1cF9zZWdtZW50LiAgTm8gbmVlZCB0byB0ZXN0IGZ4X3BjcmVsIGJlZm9yZSBzZXR0aW5nIGZ4X2RvbmUuCgkoaTk2MF92YWxpZGF0ZV9maXgpOiBSZW1vdmUgYWRkX3N5bWJvbFBQIGFyZyBhbmQgYWRkX3N5bWJvbFAgbWFjcm8uCglVc2UgZnhfYWRkc3kgaW5zdGVhZCBvZiBhZGRfc3ltYm9sUCwgYXNfYmFkX3doZXJlIGluc3RlYWQgb2YgYXNfYmFkLgoJUmVtb3ZlICNpZiAwIGNvZGUuICBJbnZlcnQgcmV0dXJuIGJvb2xlYW4uCgkqIGNvbmZpZy90Yy1pOTYwLmggKFRDX0NPVU5UX1JFTE9DKTogVHdlYWsgcGFyYW0gbmFtZS4KCShUQ19DT0ZGX0ZJWDJSVFlQRSwgVENfQURKVVNUX1JFTE9DX0NPVU5ULCBUQ19WQUxJREFURV9GSVgpOiBMaWtld2lzZS4KCSh0Y19oZWFkZXJzX2hvb2ssIHRjX2NvZmZfZml4MnJ0eXBlKTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKHRjX2NvZmZfc2l6ZW1hY2hkZXApOiBQcm90b3R5cGUuCgkoaTk2MF9oYW5kbGVfYWxpZ24pOiBMaWtld2lzZS4KCShpOTYwX3ZhbGlkYXRlX2ZpeCk6IEFkanVzdCBkZWNsYXJhdGlvbi4KCShyZWxvY19jYWxsaik6IExpa2V3aXNlLgoJKEVYVEVSTl9GT1JDRV9SRUxPQyk6IERlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9TQU1FKTogRGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fQUJTKTogRGVmaW5lLgoJKFRDX1JFTE9DX1JUU1lNX0xPQ19GSVhVUCk6IERvbid0IGRlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX0xPQ0FMKTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCShUQ19GSVhfQURKVVNUQUJMRSk6IERvbid0IGRlZmluZS4KCShNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1pYTY0LmMgKGlhNjRfZm9yY2VfcmVsb2NhdGlvbik6IENhbGwgU19GT1JDRV9SRUxPQy4KCSogY29uZmlnL3RjLWlhNjQuaCAoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKFRDX1JFTE9DX1JUU1lNX0xPQ19GSVhVUCk6IERvbid0IGRlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX0xPQ0FMKTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCSogY29uZmlnL3RjLWlwMmsuYyAoaXAya19mb3JjZV9yZWxvY2F0aW9uKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKiBjb25maWcvdGMtaXAyay5oIChNRF9BUFBMWV9GSVgzKTogRG9uJ3QgZGVmaW5lLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZS4KCShFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkoVENfRk9SQ0VfUkVMT0NBVElPTik6IFR3ZWFrIHBhcmFtIG5hbWUuCgkqIGNvbmZpZy90Yy1tMzJyLmMgKG0zMnJfZm9yY2VfcmVsb2NhdGlvbik6IENhbGwgU19GT1JDRV9SRUxPQy4KCShtMzJyX2ZpeF9hZGp1c3RhYmxlKTogRG9uJ3QgdGVzdCBleHRlcm4sIHdlYWsuCgkqIGNvbmZpZy90Yy1tMzJyLmggKE1EX1BDUkVMX0ZST01fU0VDVElPTik6IFR3ZWFrIHBhcmFtIG5hbWUuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKG9ial9maXhfYWRqdXN0YWJsZSk6IERvbid0IGRlZmluZS4KCSh0Y19maXhfYWRqdXN0YWJsZSk6IERlZmluZS4KCSh0Y19mcm9iX2ZpbGUpOiBEb24ndCBkZWZpbmUuCgkodGNfZnJvYl9maWxlX2JlZm9yZV9maXgpOiBEZWZpbmUuCgkoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKiBjb25maWcvdGMtbTY4aGMxMS5jICh0Y19nZW5fcmVsb2MpOiBTZXQgYWRkZW5kIHRvIHplcm8uICBBZGp1c3QKCUJGRF9SRUxPQ19WVEFCTEVfRU5UUlkgYWRkcmVzcy4KCSh0Y19tNjhoYzExX2ZvcmNlX3JlbG9jYXRpb24pOiBDYWxsIFNfRk9SQ0VfUkVMT0MuCgkodGNfbTY4aGMxMV9maXhfYWRqdXN0YWJsZSk6IERvbid0IHRlc3QgcmVsYXhhYmxlX3N5bWJvbC4KCShtZF9hcHBseV9maXgzKTogUmVtb3ZlICp2YWxQIGZ1ZGdlcyBhbmQgY29kZSB0byBzdWJ0cmFjdCBhYnMgc3ltLgoJUmVtb3ZlIGR1cGxpY2F0ZWQgZnhfZG9uZSBjb2RlLgoJKiBjb25maWcvdGMtbTY4aGMxMS5oIChNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKiBjb25maWcvdGMtbTY4ay5jICh0Y19tNjhrX2ZpeF9hZGp1c3RhYmxlKTogRG9uJ3QgdGVzdAoJcmVsYXhhYmxlX3N5bWJvbC4KCSogY29uZmlnL3RjLW02OGsuaCAoVENfQ09GRl9GSVgyUlRZUEUpOiBUd2VhayBwYXJhbSBuYW1lLgoJKFRDX1JFTE9DX1JUU1lNX0xPQ19GSVhVUCk6IERvbid0IGRlZmluZS4KCShUQ19GSVhfQURKVVNUQUJMRSk6IERvbid0IGRlZmluZS4KCShFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBDYWxsIFNfRk9SQ0VfUkVMT0MuCgkqIGNvbmZpZy90Yy1tY29yZS5jIChtZF9hcHBseV9maXgzKTogRG9uJ3QgY2FzdCB2YWxQIHBvaW50ZXIgdHlwZS4KCVJlbW92ZSBmeF9hZGRzeSB0ZXN0cy4KCShtY29yZV9mb3JjZV9yZWxvY2F0aW9uKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKG1jb3JlX2ZpeF9hZGp1c3RhYmxlKTogRG9uJ3QgdGVzdCBmeF9hZGRzeS4KCSogY29uZmlnL3RjLW1jb3JlLmggKE1EX1BDUkVMX0ZST01fU0VDVElPTik6IFR3ZWFrIHBhcmFtIG5hbWUuCgkoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKG9ial9maXhfYWRqdXN0YWJsZSk6IERvbid0IGRlZmluZS4KCSh0Y19maXhfYWRqdXN0YWJsZSk6IERlZmluZS4KCShNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1taXBzLmMgKGVudW0gbWlwc19waWNfbGV2ZWwpOiBNb3ZlIHRvIHRjLW1pcHMuaC4KCShtaXBzX3BpYyk6IE5vIGxvbmdlciBzdGF0aWMuCgkobWlwc19mb3JjZV9yZWxvY2F0aW9uKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKG1pcHNfZml4X2FkanVzdGFibGUpOiBSZW1vdmUgZXh0ZXJuLCB3ZWFrIHRlc3RzLgoJKiBjb25maWcvdGMtbWlwcy5oIChlbnVtIG1pcHNfcGljX2xldmVsKTogRGVjbGFyZS4KCShtaXBzX3BpYyk6IERlY2xhcmUuCgkodGNfZnJvYl9maWxlKTogRG9uJ3QgZGVmaW5lLgoJKHRjX2Zyb2JfZmlsZV9iZWZvcmVfZml4KTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCShFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1tbWl4LmMgKG1kX2FwcGx5X2ZpeDMpOiBSZXBsYWNlIHJlYWxfcmVnX3NlY3Rpb24gdGVzdHMKCXdpdGggcmVnX3NlY3Rpb24gdGVzdHMuICBTZXQgZnhfZG9uZSBpbnN0ZWFkIG9mIGNhbGxpbmcKCXN5bWJvbF9jbGVhcl91c2VkX2luX3JlbG9jIG9uIGJhZCByZWxvY3MuCgkodGNfZ2VuX3JlbG9jKTogWmVybyBmeF9hZGRzeSBvbiBiYWQgcmVsb2NzLgoJKG1taXhfZm9yY2VfcmVsb2NhdGlvbik6IFJlbW92ZSB3ZWFrIHN5bSB0ZXN0LiAgQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKG1taXhfYWRqdXN0X3N5bXRhYik6IFNpbXBsaWZ5IGxpc3QgaGFuZGxpbmcuICBBYm9ydCBvbiBhbnkKCW5vbnNlbnNlLgoJKiBjb25maWcvdGMtbW1peC5oICh0Y19maXhfYWRqdXN0YWJsZSk6IFJlbW92ZSB3ZWFrIHRlc3RzLiAgQ2hlY2sKCUJGRF9SRUxPQ19NTUlYX0xPQ0FMLgoJKHRjX2Zyb2Jfc3ltYm9sKTogS2VlcCB1c2VyIGRlZmluZWQgc3ltcyBpbiByZWdfc2VjdGlvbi4gIERvbid0IHB1bnQuCgkoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKE1EX1BDUkVMX0ZST01fU0VDVElPTik6IFR3ZWFrIHBhcmFtIG5hbWUuCgkodGNfZnJvYl9maWxlKTogRG9uJ3QgZGVmaW5lLgoJKHRjX2Zyb2JfZmlsZV9iZWZvcmVfZml4KTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCSogY29uZmlnL3RjLW1uMTAzMDAuYyAobW4xMDMwMF9mb3JjZV9yZWxvY2F0aW9uKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJUmVtb3ZlIFNFQ19DT0RFIGNoZWNrcy4KCShtbjEwMzAwX2ZpeF9hZGp1c3RhYmxlKTogUmVtb3ZlIGV4dGVybiBhbmQgd2VhayB0ZXN0cy4KCSogY29uZmlnL3RjLW1uMTAzMDAuaCAoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBUd2VhayBwYXJhbSBuYW1lLgoJKG9ial9maXhfYWRqdXN0YWJsZSk6IERvbid0IGRlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9TQU1FKTogRGVmaW5lIHRvIGhhbmRsZSBTRUNfQ09ERS4KCSogY29uZmlnL3RjLW5zMzJrLmggKFRDX0ZJWF9EQVRBX1BSSU5UKTogVHdlYWsgcGFyYW0gbmFtZS4KCSogY29uZmlnL3RjLW9wZW5yaXNjLmMgKG9wZW5yaXNjX2ZvcmNlX3JlbG9jYXRpb24pOiBDYWxsIFNfRk9SQ0VfUkVMT0MuCgkob3BlbnJpc2NfZml4X2FkanVzdGFibGUpOiBEb24ndCB0ZXN0IGZ4X2FkZHN5LgoJKiBjb25maWcvdGMtb3BlbnJpc2MuaCAoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKG9ial9maXhfYWRqdXN0YWJsZSk6IERvbid0IGRlZmluZS4KCSh0Y19maXhfYWRqdXN0YWJsZSk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoTURfUENSRUxfRlJPTV9TRUNUSU9OKTogUmVtb3ZlIGR1cGxpY2F0ZS4gVHdlYWsgcGFyYW0gbmFtZS4KCSogY29uZmlnL3RjLW9yMzIuYyAobWRfYXBwbHlfZml4Myk6IERvbid0IGNhc3QgdmFsUCBwb2ludGVyIHR5cGUuCgkodGNfZ2VuX3JlbG9jKTogRG9uJ3QgZmlkZGxlIHdpdGggQkZEX1JFTE9DX1ZUQUJMRV9JTkhFUklUIHJlbG9jcy4KCUFkanVzdCB0aGUgYWRkcmVzcyBmb3IgQkZEX1JFTE9DX1ZUQUJMRV9FTlRSWSwgbm90IHRoZSBhZGRlbmQuCgkqIGNvbmZpZy90Yy1vcjMyLmggKEVYVEVSTl9GT1JDRV9SRUxPQyk6IERlZmluZS4KCShNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1wai5jIChtZF9hcHBseV9maXgzKTogRG9uJ3QgY2FzdCB2YWxQIHBvaW50ZXIgdHlwZS4KCURvbid0IHN1YnRyYWN0IHN5bWJvbCB2YWx1ZS4KCSogY29uZmlnL3RjLXBqLmggKG1kX3BjcmVsX2Zyb20pOiBUd2VhayBwYXJhbSBuYW1lLgoJKEVYVEVSTl9GT1JDRV9SRUxPQyk6IERlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZS4KCShvYmpfZml4X2FkanVzdGFibGUpOiBEb24ndCBkZWZpbmUuCgkodGNfZml4X2FkanVzdGFibGUpOiBEZWZpbmUgdGhpcyBpbnN0ZWFkLgoJKiBjb25maWcvdGMtcHBjLmMgKHBwY19mcm9iX3N5bWJvbCA8Y29mZiB2ZXJzaW9uPik6IElnbm9yZSBhYnNvbHV0ZQoJc2VjdGlvbiBzeW0uCgkocHBjX2ZvcmNlX3JlbG9jYXRpb24gPGNvZmYgdmVyc2lvbj4pOiBDYWxsIFNfRk9SQ0VfUkVMT0MuCgkocHBjX2ZvcmNlX3JlbG9jYXRpb24gPGVsZiB2ZXJzaW9uPik6IE5ldy4KCShwcGNfZml4X2FkanVzdGFibGUgPGVsZiB2ZXJzaW9uPik6IFJlbW92ZSBleHRlcm4gYW5kIHdlYWsgdGVzdHMuCgkobWRfYXBwbHlfZml4Myk6IERvbid0IHN1YnRyYWN0IHN5bWJvbCB2YWx1ZXMgZm9yIEVMRi4gIFVwZGF0ZQoJY29tbWVudHMuICBEb24ndCBzdWJ0cmFjdCBmeF9zdWJzeSBhcyB0aGF0IGlzIGFscmVhZHkgZG9uZS4KCSogY29uZmlnL3RjLXBwYy5oICh0Y19maXhfYWRqdXN0YWJsZSk6IFR3ZWFrIHBhcmFtIG5hbWUuCgkoTURfUENSRUxfRlJPTV9TRUNUSU9OKTogTGlrZXdpc2UuCgkoVENfRk9SQ0VfUkVMT0NBVElPTik6IERlZmluZSBmb3IgYm90aCBFTEYgYW5kIFhDT0ZGIGFzIGNhbGxpbmcKCXBwY19mb3JjZV9yZWxvY2F0aW9uLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fU0VDVElPTik6IERlbGV0ZS4KCShUQ19SRUxPQ19SVFNZTV9MT0NfRklYVVApOiBEb24ndCBkZWZpbmUuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9MT0NBTCk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKiBjb25maWcvdGMtczM5MC5jOiAjaW5jbHVkZSAiZHdhcmYyZGJnLmgiLgoJKHMzOTBfaW5zbik6IFJlbW92ZSBleGNlc3MgcGFyZW5zLgoJKHRjX3MzOTBfZml4X2FkanVzdGFibGUpOiBSZW1vdmUgZXh0ZXJuLCB3ZWFrLCBTRUNfTUVSR0UgdGVzdHMuCgkodGNfczM5MF9mb3JjZV9yZWxvY2F0aW9uKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKG1kX2FwcGx5X2ZpeDMpOiBBZGQgQVRUUklCVVRFX1VOVVNFRCBvbiAic2VnIi4gIEFib3J0IHdoZW4gZnhfc3Vic3kKCW5vbi1OVUxMLiAgRG9uJ3Qgc3VidHJhY3Qgb2ZmIGZ4X2FkZHN5IHZhbHVlLgoJKiBjb25maWcvdGMtczM5MC5oIChUQ19SRUxPQ19SVFNZTV9MT0NfRklYVVApOiBEb24ndCBkZWZpbmUuCgkoVENfRk9SQ0VfUkVMT0NBVElPTiwgTURfUENSRUxfRlJPTV9TRUNUSU9OKTogVHdlYWsgcGFyYW0gbmFtZS4KCShUQ19GSVhfQURKVVNUQUJMRSk6IERvbid0IGRlZmluZS4KCShNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1zaC5jIChTV0lUQ0hfVEFCTEVfQ09OUyk6IE1vdmUgdG8gdGMtc2guaC4KCShTV0lUQ0hfVEFCTEUpOiBMaWtld2lzZS4KCShzaF9mb3JjZV9yZWxvY2F0aW9uKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKHNoX2ZpeF9hZGp1c3RhYmxlKTogUmVtb3ZlICJyZXR1cm4gMSIgY2FzZXMgaGFuZGxlZCBieSB0aGUgZGVmYXVsdC4KCVJlcGxhY2UgVENfUkVMT0NfUlRTWU1fTE9DX0ZJWFVQIHdpdGggcmVsb2MgdHlwZSB0ZXN0cy4KCShtZF9hcHBseV9maXgzIDxjYXNlIEJGRF9SRUxPQ18zMl9QTFRfUENSRUw+KTogU2ltcGxpZnksCglmeF9hZGRudW1iZXIgaXMgemVybyBvbiBlbnRyeS4gIFNhdmUgdmFsIGluIGZ4X2FkZG51bWJlci4KCSh0Y19nZW5fcmVsb2MpOiBEb24ndCBzdWJ0cmFjdCBmeF9zdWJzeS4KCSogY29uZmlnL3RjLXNoLmggKHN0cnVjdCBmaXgpOiBNb3ZlLgoJKG9ial9maXhfYWRqdXN0YWJsZSk6IERvbid0IGRlZmluZS4KCSh0Y19maXhfYWRqdXN0YWJsZSk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoVENfRklYX0FESlVTVEFCTEUpOiBEb24ndCBkZWZpbmUuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKFNXSVRDSF9UQUJMRV9DT05TKTogRGVmaW5lLgoJKFNXSVRDSF9UQUJMRSk6IERlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9TQU1FKTogRGVmaW5lLgoJKFRDX1ZBTElEQVRFX0ZJWF9TVUIpOiBEZWZpbmUuCgkoTURfUENSRUxfRlJPTV9TRUNUSU9OKTogVHdlYWsgcGFyYW0gbmFtZS4KCShUQ19SRUxPQ19SVFNZTV9MT0NfRklYVVApOiBEb24ndCBkZWZpbmUuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9MT0NBTCk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9TVUJfQUJTKTogRGVmaW5lLgoJKiBjb25maWcvdGMtc2g2NC5oIChUQ19SRUxPQ19SVFNZTV9MT0NfRklYVVApOiBEb24ndCBkZWZpbmUuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9MT0NBTCk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9TVUJfU0FNRSk6IERlZmluZS4KCShUQ19WQUxJREFURV9GSVhfU1VCKTogRGVmaW5lLgoJKE1EX1BDUkVMX0ZST01fU0VDVElPTik6IFR3ZWFrIHBhcmFtIG5hbWUuCgkqIGNvbmZpZy90Yy1zcGFyYy5jIChtZF9hcHBseV9maXgzKTogRG9uJ3Qgc3VidHJhY3Qgb2ZmIHN5bWJvbCB2YWx1ZS4KCSh0Y19nZW5fcmVsb2MpOiBVc2UgU19GT1JDRV9SRUxPQy4KCShlbGYzMl9zcGFyY19mb3JjZV9yZWxvY2F0aW9uKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKiBjb25maWcvdGMtc3BhcmMuaCAoVENfRk9SQ0VfUkVMT0NBVElPTiA8Y29mZiB2ZXJzaW9uPik6IFJlbW92ZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX0FCUyk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoVENfUkVMT0NfUlRTWU1fTE9DX0ZJWFVQKTogRG9uJ3QgZGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fTE9DQUwpOiBEZWZpbmUgdGhpcyBpbnN0ZWFkLgoJKHRjX2ZpeF9hZGp1c3RhYmxlKTogUmVtb3ZlIGV4dGVybiBhbmQgd2VhayB0ZXN0cy4gIFVzZSBTX0ZPUkNFX1JFTE9DLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZS4KCShUQ19GSVhfREFUQV9QUklOVCk6IFR3ZWFrIHBhcmFtIG5hbWUuCgkqIGNvbmZpZy90Yy10aWMzMC5jIChVU0VfU1RET1VUKTogRG9uJ3QgZGVmaW5lLgoJKG1kX3BhcnNlX29wdGlvbik6IFJlbW92ZSBzdHVwaWQgZGVidWcgY29kZS4KCSh0Y19nZW5fcmVsb2MpOiBEb24ndCB1c2UgZnhfYWRkbnVtYmVyLgoJKiBjb25maWcvdGMtdjg1MC5jICh2ODUwX2ZpeF9hZGp1c3RhYmxlKTogUmVtb3ZlIGV4dGVybiBhbmQgd2VhayB0ZXN0cy4KCSh2ODUwX2ZvcmNlX3JlbG9jYXRpb24pOiBSZW1vdmUgd2VhayB0ZXN0LiAgQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKiBjb25maWcvdGMtdjg1MC5oIChvYmpfZml4X2FkanVzdGFibGUpOiBEb24ndCBkZWZpbmUuCgkodGNfZml4X2FkanVzdGFibGUpOiBEZWZpbmUgdGhpcyBpbnN0ZWFkLgoJKFRDX0ZJWF9BREpVU1RBQkxFKTogRG9uJ3QgZGVmaW5lLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoVENfRk9SQ0VfUkVMT0NBVElPTiwgTURfUENSRUxfRlJPTV9TRUNUSU9OKTogVHdlYWsgcGFyYW0gbmFtZS4KCSogY29uZmlnL3RjLXZheC5oIChUQ19SRUxPQ19SVFNZTV9MT0NfRklYVVApOiBEb24ndCBkZWZpbmUuCgkoVENfRklYX0FESlVTVEFCTEUpOiBEb24ndCBkZWZpbmUuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCSh0Y19maXhfYWRqdXN0YWJsZSk6IFJlbW92ZSBleHRlcm4gYW5kIHdlYWsgdGVzdHMuCgkqIGNvbmZpZy90Yy13NjUuaCAoc3RydWN0IGZpeCk6IEZvcndhcmQgZGVjbGFyZS4KCSogY29uZmlnL3RjLXhzdG9ybXkxNi5jICh4c3Rvcm15MTZfZm9yY2VfcmVsb2NhdGlvbik6IENhbGwKCVNfRk9SQ0VfUkVMT0MuCgkoeHN0b3JteTE2X2ZpeF9hZGp1c3RhYmxlKTogUmVtb3ZlIGV4dGVybiBhbmQgd2VhayB0ZXN0cy4gIERvbid0CgljYWxsIHhzdG9ybXkxNl9mb3JjZV9yZWxvY2F0aW9uOyAgSW5zdGVhZCB0ZXN0IGZvciBGUFRSMTYgcmVsb2MuCgkoeHN0b3JteTE2X21kX2FwcGx5X2ZpeDMpOiBSZW1vdmUgKnZhbFAgZnVkZ2VzIGFuZCBjb2RlIHRvIHN1YnRyYWN0CglhYnNvbHV0ZSBzeW1ib2wuCgkqIGNvbmZpZy90Yy14c3Rvcm15MTYuaCAoTURfQVBQTFlfRklYMyk6IERvbid0IGRlZmluZS4KCShNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkob2JqX2ZpeF9hZGp1c3RhYmxlKTogRG9uJ3QgZGVmaW5lLgoJKHRjX2ZpeF9hZGp1c3RhYmxlKTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCShNRF9QQ1JFTF9GUk9NX1NFQ1RJT04pOiBSZW1vdmUgZHVwbGljYXRlLiAgVHdlYWsgcGFyYW0gbmFtZS4KCjIwMDItMDktMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtcHBjLmMgKHBwY19mcm9iX3N5bWJvbCk6IEZvcm1hdHRpbmcsIHdhcm5pbmcgZml4LgoJKHBwY19maXhfYWRqdXN0YWJsZSA8Y29mZiB2ZXJzaW9uPik6IENsZWFudXAuCgoJKiBjb25maWcvdGMtcHBjLmMgKFBQQ19ISUdIRVIsIFBQQ19ISUdIRVNUKTogRml4IHdhcm5pbmcuCgkobWRfcGFyc2Vfb3B0aW9uKTogTm8gLWE2NCB3aXRob3V0IEJGRDY0LgoJKHBwY19zZXRfY3B1KTogU2VsZWN0IGFwcHJvcHJpYXRlIGNwdSB3aGVuIHBwY19vYmo2NC4KCShwcGNfYXJjaCk6IFVzZSBiZmRfbWFjaF9yczZrIGZvciBiZmRfYXJjaF9yczYwMDAuCgoyMDAyLTA5LTA0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXBwYy5jIChtZF9iZWdpbik6IERvIG5vdCBpbnNlcnQgbm9uLUJvb2tFMzIKCWluc3RydWN0aW9ucyBpbnRvIHRoZSBoYXNoIHRhYmxlIGlmIHRoZSB0YXJnZXQgY3B1IGlzIHRoZSBCb29rRTMyLgoKMjAwMi0wOC0zMSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogcmVhZC5jIChkb19hbGlnbik6IFVzZSBBVFRSSUJVVEVfVU5VU0VEX0xBQkVMIGZvciBsYWJlbCwgbm90CglBVFRSSUJVVEVfVU5VU0VELgoKMjAwMi0wOC0yOCAgQ2F0aGVyaW5lIE1vb3JlICA8Y2xtQHJlZGhhdC5jb20+CgoJKiB0Yy12ODUwLmMgKHY4NTBfcmVsYXgpOiBEZWNsYXJlLgoJKHY4NTBfbG9uZ2NvZGUpOiBOZXcgcm91dGluZS4KCSh2ODUwX2hhbmRsZV9hbGlnbik6IE5ldyByb3V0aW5lLgoJKG1kX3BzZXVkb190YWJsZSk6IEFkZCBsb25nY2FsbCBhbmQgbG9uZ2p1bXAuCgkobWRfcGFyc2Vfb3B0aW9uKTogQ2hlY2sgZm9yIHJlbGF4IG9wdGlvbi4KCSh0Y19nZW5fcmVsb2MpOiBIYW5kbGUgQkZEX1JFTE9DX1Y4NTBfTE9OR0NBTEwsCglCRkRfUkVMT0NfVjg1MF9MT05HSlVNUCwgYW5kIEJGRF9SRUxPQ19WODUwX0FMSUdOLgoJKG1kX2FwcGx5X2ZpeDMpOiBMaWtld2lzZS4KCSh2ODUwX2ZvcmNlX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCSh2ODUwX2NvbW0pOiBDaGFuZ2UgdGhlIGN1cnJlbnQgc2VjdGlvbi4KCShtZF9hc3NlbWJsZSk6IEVuc3VyZSB0aGF0IHRoZSBjb3JyZWN0IHZhbHVlIGlzIHB1dCBpbiB0aGUKCWZpeHVwLgoJKHY4NTBfc2RhdGEsIHY4NTBfdGRhdGEsIHY4NTBfemRhdGEsIHY4NTBfc2Jzcywgdjg1MF90YnNzLAoJdjg1MF96YnNzLCB2ODUwX3Jvc2RhdGEsIHY4NTBfcm96ZGF0YSk6IEZpeCBzZWN0aW9uIGJvb2sga2VlcGluZy4KCVJlbW92ZSByZWR1bmRhbnQgdjg1MGVhIHN1cHBvcnQuCgkqIHRjLXY4NTAuaCAoSEFORExFX0FMSUdOKTogRGVmaW5lLgoJKHY4NTBfaGFuZGxlX2FsaWduKTogRGVjbGFyZS4KCSogZG9jL2Mtdjg1MC5jOiBEb2N1bWVudCAtbXJlbGF4LCAubG9uZ2NhbGwgYW5kIC5sb25nanVtcC4KCjIwMDItMDgtMjggIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHRpYzR4LWNvZmYqIGFuZCBjNHgtY29mZiotY29mZi1jb2ZmIHRhcmdldHMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogTkVXUzogTWVudGlvbiBuZXcgcG9ydC4KCjIwMDItMDgtMjggIE1pY2hhZWwgSGF5ZXMgPG0uaGF5ZXNAZWxlYy5jYW50ZXJidXJ5LmFjLm56PgoKCSogY29uZmlnL29iai1jb2ZmLmM6IEFkZCBzZGVmIGRlZmluaXRpb24uCgkqIGNvbmZpZy9vYmotY29mZi5oOiBBZGQgdGljNHggaW5jbHVkZSBmaWxlIGFuZCBzZXQKCXRhcmdldCBmb3JtYXQuCgkqIGNvbmZpZy90Yy10aWM0eC5jOiBOZXcgZmlsZS4KCSogY29uZmlnL3RjLXRpYzR4Lmg6IE5ldyBmaWxlLgoKMjAwMi0wOC0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHdyaXRlLmMgKEJGRF9GQVNUX1NFQ1RJT05fRklMTCk6IFJlbW92ZSB1bnVzZWQgbWFjcm8uCgkoVENfQURKVVNUX1JFTE9DX0NPVU5UKTogVHdlYWsgcGFyYW0gbmFtZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OLCBUQ19GT1JDRV9SRUxPQ0FUSU9OX1NFQ1RJT04pOiBMaWtld2lzZS4KCShUQ19GSVhfQURKVVNUQUJMRSwgTURfUENSRUxfRlJPTV9TRUNUSU9OKTogTGlrZXdpc2UuCgkoUkVMT0NfRU5VTSk6IERlZmluZS4KCShmaXhfbmV3X2ludGVybmFsKTogVXNlIFJFTE9DX0VOVU0uCgkoZml4X25ldywgZml4X25ld19leHApOiBMaWtld2lzZS4KCShhZGp1c3RfcmVsb2Nfc3ltcyk6IENvbW1lbnQuICBSZW1vdmUgdW5uZWNlc3NhcnkgdGVzdHMgb24gc3ltICE9IE5VTEwuCglSZXBsYWNlIGdvdG9zIHdpdGggY29udGludWUuCgkod3JpdGVfcmVsb2NzKTogRm9ybWF0dGluZy4gIEF2b2lkIHN5bWJvbCBsb29wcyBpbgoJUkVMT0NfRVhQQU5TSU9OX1BPU1NJQkxFIGNhc2UgdG9vLiAgUmVwb3J0IGJmZF9yZWxvY19vdXRvZnJhbmdlCgllcnJvcnMsIGFuZCBlcnJvciBudW1iZXIgaW4gb3RoZXIgY2FzZXMuCgkoZml4dXBfc2VnbWVudCk6IFJlbW92ZSBwYXJhbSBuYW1lcyBmcm9tIHByb3RvdHlwZS4gIFJlbmFtZQoJInRoaXNfc2VnbWVudF90eXBlIiB0byAidGhpc19zZWdtZW50Ii4gIFVwZGF0ZSBsaW5rcmVsYXggY29tbWVudC4KCVJlbW92ZSAic2l6ZSwgInBsYWNlIiBhbmQgIndoZXJlIiBsb2NhbCB2YXJzLiAgRm9ybWF0dGluZy4gIFVwZGF0ZQoJIm5vIHN5bWJvbCIgY29tbWVudC4gIFJlbW92ZSAjaWYgMCBhbmQgI2lmIDEuCgoJKiBhcHAuYyAoZG9fc2NydWJfY2hhcnMpOiBEb24ndCB0ZXN0IElHTk9SRV9OT05TVEFOREFSRF9FU0NBUEVTLiAgVGlkeS4KCjIwMDItMDgtMjcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkd2FyZjJkYmcuYzogQWx3YXlzIGluY2x1ZGUgZHdhcmYyZGJnLmguCgkoZHdhcmYyX2RpcmVjdGl2ZV9maWxlKTogQWRqdXN0IGR1bW15IHZlcnNpb24gYXJncy4KCSogZWNvZmYuYyAoZWNvZmZfZGlyZWN0aXZlX3dlYWtleHQpOiBBZGQgQVRUUklCVVRFX1VOVVNFRC4KCSogZXhwci5jIChjbGVhbl91cF9leHByZXNzaW9uIDxPX3N1YnRyYWN0Pik6IEFsbG93IHN1YnRyYWN0aW9uCgl3aGVuIHN5bWJvbCB2YWx1ZXMgZGlmZmVyLgoJKiByZWFkLmMgKGRvX2FsaWduKTogQWRkIEFUVFJJQlVURV9VTlVTRUQgdG8gbGFiZWwuCgkocHNldWRvX3NldCA8T19zdWJ0cmFjdD4pOiBSZW1vdmUgdW5uZWNlc3Nhcnkgc2VnbWVudCB0ZXN0LgoJKiBjb25maWcvb2JqLWJvdXQuYyAob2JqX3BzZXVkb190YWJsZSk6IFdhcm5pbmcgZml4LgoKMjAwMi0wOC0yNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy13NjUuYyAobWRfc2VjdGlvbl9hbGlnbik6IEZpeCB0eXBvLgoJKG1kX3BhcnNlX29wdGlvbik6IFJldHVybiAwLCBub3QgMS4KCjIwMDItMDgtMjIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBkb2MvYXMudGV4aW5mbyAoU2VjdGlvbik6IE5vdGUgdGhhdCBpZiAnQCcgaXMgYSBjb21tZW50CgljaGFyYWN0ZXIgdGhlbiBhbm90aGVyIHN5bWJvbCBpcyB1c2VkIHRvIHByZWZpeCB0aGUgc2VjdGlvbidzCgl0eXBlLgoKMjAwMi0wOC0yMiAgQ2hyaXN0aWFuIEdyb2Vzc2xlciA8Y2hyaXNAZ3JvZXNzbGVyLm9yZz4KCgkqIGNvbmZpZy90Yy16OGsuYyAoZ2V0X29wZXJhbmRzKTogQWRqdXN0IHB0ciB2YXJpYWJsZSBhbHNvIGluCgkiY2FzZSAwIiBjYXNlLgoKMjAwMi0wOC0xMiAgR3JhZW1lIFBldGVyc29uICA8Z3BAcW54LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHN1cHBvcnQgZm9yIHNoLSoqLW50byogdGFyZ2V0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTA4LTIxICBOaXRpbiAgR3VwdGEgIDxuaXRpbmdAbm9pZGEuaGNsdGVjaC5jb20+CgoJKiBjb25maWcvdGMtaDgzMDAuaCAoVENfTElOS1JFTEFYX0ZJWFVQKTogRGVmaW5lLgoKMjAwMi0wOC0yMSAgRWxlbmEgWmFubm9uaSAgPGV6YW5ub25pQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtcHBjLmMgKHBwY19jbGVhbnVwKTogRG8gc29tZXRoaW5nIG9ubHkgaWYgZm9ybWF0CglpcyBFTEYuCgkocHBjX2FwdWluZm9fc2VjdGlvbl9hZGQpOiBEZWZpbmUgb25seSBpZiBmb3JtYXQgaXMgRUxGLgoJKG1kX2Fzc2VtYmxlKTogRW1pdCBBUFVpbmZvIHNlY3Rpb24gb25seSBpZiBmb3JtYXQgaXMgRUxGLgoJRml4IGZvcm1hdHRpbmcuCgoyMDAyLTA4LTIxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWFyYy5jIChtZF9wc2V1ZG9fdGFibGUgPGR3YXJmMl9kaXJlY3RpdmVfZmlsZT4pOiBDYXN0LgoJKiBjb25maWcvdGMtZnJ2LmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaHBwYS5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWlhNjQuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1pcDJrLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbTY4aGMxMS5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW02OGsuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1tbWl4LmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbW4xMDMwMC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXNoLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtc3BhcmMuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy12ODUwLmM6IExpa2V3aXNlLgoKMjAwMi0wOC0yMCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWFjcm8yKTogSW1wbGVtZW50IHJvdGF0ZXMgYnkgemVybyB1c2luZyBzaGlmdHMKCWJ5IHplcm8uCgoyMDAyLTA4LTE5ICBFbGVuYSBaYW5ub25pICA8ZXphbm5vbmlAcmVkaGF0LmNvbT4KCglGcm9tIG1hdHRoZXcgZ3JlZW4gIDxtcmdAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAoUFBDX09QQ09ERV9DTEFTU0lDKTogRW5hYmxlIHRoaXMgZXZlcnl3aGVyZQoJUFBDX09QQ09ERV9QUEMgaXMsIGV4Y2VwdCBmb3IgQm9va0UgYXJjaGl0ZWN0dXJlcy4KCShtZF9wYXJzZV9vcHRpb24pOiBBZGQgc3VwcG9ydCBmb3IgLW1zcGUuCgkobWRfc2hvd191c2FnZSk6IEFkZCAtbXNwZS4KCShtZF9wYXJzZV9vcHRpb24pOiBBZGQgc3VwcG9ydCBmb3IgLW1lNTAwIGFuZAoJLW1lNTAweDIgdG8gZ2VuZXJhdGUgY29kZSBmb3IgTW90b3JvbGEgZTUwMCBjb3JlIGNvbXBsZXguCgkobWRfc2hvd191c2FnZSk6IEFkZCAtbWU1MDAgYW5kIC1tZTUwMHgyLgoKCShQUENfQVBVSU5GT19JU0VMLCBQUENfQVBVSU5GT19QTVIsIFBQQ19BUFVJTkZPX1JGTUNJLAoJUFBDX0FQVUlORk9fQ0FDSEVMQ0ssIFBQQ19BUFVJTkZPX1NQRSwgUFBDX0FQVUlORk9fRUZTLAoJUFBDX0FQVUlORk9fQlJMT0NLKTogTmV3IG1hY3Jvcy4KCgkocHBjX2NsZWFudXApOiBOZXcgZnVuY3Rpb24uCgkocHBjX2FwdWluZm9fc2VjdGlvbl9hZGQpOiBOZXcgZnVuY3Rpb24uCgkoQVBVSUQpOiBOZXcgbWFjcm8uCgkobWRfYXNzZW1ibGUpOiBDb2xsZWN0IGluZm8gYW5kIHdyaXRlIHRoZSBBUFVpbmZvIHNlY3Rpb24uCgoJKiBjb25maWcvdGMtcHBjLmggKG1kX2NsZWFudXApOiBEZWZpbmUuCgkocHBjX2NsZWFudXApOiBFeHBvcnQuCgkoRUxGX1RDX1NQRUNJQUxfU0VDVElPTlMpOiBBZGQgLlBQQy5FTUIuYXB1aW5mbyBzZWN0aW9uLgoKMjAwMi0wOC0xNyAgU3RhbiBDb3ggIDxzY294QHJlZGhhdC5jb20+CgoJKiBjb25maWcvb2JqLWVsZi5jIChvYmpfZWxmX2NoYW5nZV9zZWN0aW9uKTogTWFrZSBub24tc3RhdGljLgoJY29uZmlnL3RjLW1pcHMuYyAoc19jaGFuZ2Vfc2VjdGlvbik6IE5ldyBmdW5jdGlvbiB0byBzdXBwb3J0CglJUklYIC5zZWN0aW9uIHBzZXVkby1vcC4KCjIwMDItMDgtMTYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtdjg1MC5jIChtZF9hc3NlbWJsZSk6IEZpeCBhc3NlbWJsaW5nIG9mICJjYWxsdCAweDNmIi4KCjIwMDItMDgtMTUgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWFjcm9fYnVpbGRfamFscik6IE1ha2Ugc3VyZSB3ZSBnZW5lcmF0ZQoJdGhlIGZpeC11cCBhZ2FpbnN0IG9uIHRoZSByaWdodCBmcmFnLgoJKHNfY3BzZXR1cCk6IExpa2V3aXNlLiAgUGFyc2UgdGhpcmQgYXJndW1lbnQgYXMgZXhwcmVzc2lvbiwgdG8KCWhhbmRsZSBnbG9iYWwgc3ltYm9scyBhbmQgZm9yd2FyZC9iYWNrd2FyZCBsYWJlbHMgY29ycmVjdGx5LgoKMjAwMi0wOC0xNCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHJlYWQuYyAoc3RyaW5nZXIpOiBDYXRjaCBhdHRlbXB0cyB0byBjcmVhdGUgc3RyaW5ncyBpbiB0aGUgYWJzCglzZWN0aW9uLgoKCSogY29uZmlnL3RjLWFscGhhLmM6IEZpeCBjb21waWxpbmcgZm9yIENPRkYgdGFyZ2V0cy4KCVNvbWUgbWlub3IgZm9ybWF0dGluZyB0aWR5dXBzLgoKMjAwMi0wOC0xMyAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBjb25maWcvdGMtbTY4aGMxMS5oIChNRF9QQ1JFTF9GUk9NX1NFQ1RJT04pOiBSZW1vdmUuCgkoVENfSEFORExFU19GWF9ET05FKTogRGVmaW5lIHRvIGxldCBtZF9hcHBseV9maXgzIHNldCBmeF9kb25lIGZsYWcKCWFjY29yZGluZyB0byB0aGUgcmVsb2MuCgkodGNfZml4X2FkanVzdGFibGUsIHRjX202OGhjMTFfZml4X2FkanVzdGFibGUpOiBEZWZpbmUuCgkoVENfRk9SQ0VfUkVMT0NBVElPTik6IERlZmluZS4KCSh0Y19tNjhoYzExX2ZvcmNlX3JlbG9jYXRpb24pOiBEZWNsYXJlLgoKCSogY29uZmlnL3RjLW02OGhjMTEuYyAobWRfcHNldWRvX3RhYmxlKTogQWRkIHJlbGF4IGNvbW1hbmQuCgkoc19tNjhoYzExX3JlbGF4KTogTmV3IGZ1bmN0aW9uIGZvciByZWxheCBncm91cC4KCShidWlsZF9pbnNuLCBidWlsZF9qdW1wX2luc24pOiBFbWl0IGEgTTY4SEMxMV9STF9KVU1QIHJlbG9jIGF0CgliZWdpbm5pbmcgb2YganVtcCBpbnN0cnVjdGlvbi4KCShtZF9wY3JlbF9mcm9tKTogUmVuYW1lIGZyb20gbWRfcGNyZWxfZnJvbV9zZWN0aW9uIGFuZCBmaXgKCWFkZHJlc3MgY29tcHV0YXRpb24uCgkodGMtZ2VuX3JlbG9jKTogVXBkYXRlLgoJKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogQ3JlYXRlIHRoZSBCRkRfUkVMT0NfMTZfUENSRUwgYXMKCVBDLXJlbGF0aXZlIGZpeHVwLgoJKHRjX202OGhjMTFfZm9yY2VfcmVsb2NhdGlvbik6IE5ldyBmdW5jdGlvbiwgaGFuZGxlIG5ldyByZWxvY3MuCgkodGNfbTY4aGMxMV9maXhfYWRqdXN0YWJsZSk6IE5ldyB0byBtYWtlIHN1cmUgdGhlcmUgYXJlIGVub3VnaAoJcmVsb2MgZm9yIHRoZSBsaW5rZXIgcmVsYXggcGFzcy4KCShtZF9hcHBseV9maXgzKTogSGFuZGxlIE02OEhDMTFfUkxfSlVNUCwgTTY4SEMxMV9STF9HUk9VUAoJYW5kIFZUQUJMRSByZWxvY3MuCgoyMDAyLTA4LTEzICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGNvbmZpZy90Yy1tNjhoYzExLmMgKG02OGhjMTFfZWxmX2ZpbmFsX3Byb2Nlc3NpbmcpOiBOZXcgZnVuY3Rpb24uCgkobWRfcHNldWRvX3RhYmxlKTogQWRkIC5tb2RlLCAuZmFyIGFuZCAuaW50ZXJydXB0IHBzZXVkbyBvcC4KCShzX202OGhjMTFfbW9kZSk6IE5ldyBmdW5jdGlvbiBmb3IgLm1vZGUgcHNldWRvIG9wLgoJKHNfbTY4aGMxMV9tYXJrX3N5bWJvbCk6IE5ldyBmdW5jdGlvbiBmb3IgLmZhciBhbmQgLmludGVycnVwdAoJcHNldWRvIG9wLgoJKiBjb25maWcvdGMtbTY4aGMxMS5oIChlbGZfdGNfZmluYWxfcHJvY2Vzc2luZyk6IERlZmluZS4KCShtNjhoYzExX2VsZl9maW5hbF9wcm9jZXNzaW5nKTogRGVjbGFyZS4KCjIwMDItMDgtMTMgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogY29uZmlnL3RjLW02OGhjMTEuYyAobWRfYmVnaW4pOiBUYWtlIGludG8gYWNjb3VudCBhZGRpdGlvbmFsCglwYWdlIG9wZXJhbmQgZm9yIGNhbGwgaW5zdHJ1Y3Rpb24uCgkocHJpbnRfb3Bjb2RlX2Zvcm1hdCk6IExpa2V3aXNlLgoJKGNoZWNrX3JhbmdlKTogTGlrZXdpc2UgZm9yIHBhZ2UgcmFuZ2UgY2hlY2tpbmcuCgkoZ2V0X29wZXJhbmQpOiBEb24ndCBza2lwIGEgcG9zc2libGUgY29tbWEgaW4gb3BlcmFuZHMuCgkoZml4dXA4KTogR2VuZXJhdGUgQkZEX1JFTE9DX002OEhDMTFfUEFHRSByZWxvYy4KCShmaXh1cDE2KTogTGlrd2lzZSB3aXRoIEJGRF9SRUxPQ19NNjhIQzExX0xPMTYuCgkoZml4dXAyNCk6IE5ldyB0byBoYW5kbGUgY2FsbCByZWxvYy4KCShidWlsZF9pbnNuKTogSGFuZGxlIG1pc3NpbmcgcGFnZSBvcGVyYW5kIGZvciBjYWxsIGluc3RydWN0aW9uLgoJKGZpbmQpOiBMaWtld2lzZS4KCShtZF9hcHBseV9maXgzKTogVGFrZSBpbnRvIGFjY291bnQgbmV3IHJlbG9jcy4KCShnZXRfb3BlcmFuZCk6IEZpeCB0aGUgbW9kZSBmb3IgaW5kZXhlZCBpbmRpcmVjdCBhZGRyZXNzaW5nLgoJKGJ1aWxkX2luZGV4ZWRfYnl0ZSk6IEZpeCBwb3N0IGluZGV4IGJ5dGUgZm9yIGluZGV4ZWQgaW5kaXJlY3QgbW9kZS4KCjIwMDItMDgtMTIgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfaXApOiBEb24ndCB3b3JrIG91dCB0aGUgdmFsdWUgb2YKCWNvbnN0YW50ICVoaSgpcyBoZXJlLgoKMjAwMi0wOC0xMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKHRjX2kzODZfZml4X2FkanVzdGFibGUpOiBUZXN0IE9VVFBVVF9GTEFWT1IKCWZvciBFTEYsIGFuZCBkb24ndCBib3RoZXIgY2hlY2tpbmcgRUxGIHJlbG9jcyB3aGVuIG5vbi1FTEYuCgkoaTM4Nl9pbW1lZGlhdGUpOiBBbGxvdyBhYnNvbHV0ZV9zZWN0aW9uIGV4cHJlc3Npb25zIGZvciBhb3V0LgoJKGkzODZfZGlzcGxhY2VtZW50KTogTGlrZXdpc2UuICBBbHNvIHRlc3QgYmZkX2lzX2NvbV9zZWN0aW9uLgoJKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogVGVzdCBPVVRQVVRfRkxBVk9SIGZvciBFTEYuCgkobWRfYXBwbHlfZml4Myk6IEhhY2sgZm9yIGJmZF9pbnN0YWxsX3JlbG9jYXRpb24gd2hlbiBmeF9wY3JlbCwKCW5vdCB3aGVuIGZ4X2FkZHN5LiAgUmVtb3ZlIGRlYWQgY29kZS4KCjIwMDItMDgtMDkgIEdyYWVtZSBQZXRlcnNvbiAgPGdwQHFueC5jb20+CgoJKiBjb25maWd1cmUuaW46IEFkZCBzdXBwb3J0IGZvciBwcGMtKi1udG8qIHRhcmdldC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wOC0wOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1pMzg2Lmg6IFJlb3JnYW5pemUuCgoyMDAyLTA4LTA5ICBNYWNpZWogVy4gUm96eWNraSAgPG1hY3JvQGRzMi5wZy5nZGEucGw+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNybyk6IEhhbmRsZSBhIHJlZ2lzdGVyIHBsdXMgYSAxNi1iaXQKCWltbWVkaWF0ZSBvZmZzZXQgaW4gImRsYSIgYW5kICJsYSIgZXhwYW5zaW9ucy4KCjIwMDItMDgtMDkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWd1cmUuaW46IGJmZF9nYXM9eWVzIGZvciBhbGwgaTM4NiB0YXJnZXRzLiAgRm9ybWF0dGluZy4KCVJlbW92ZSAiYmZkX2dhcz15ZXMiIGZyb20gdGFyZ2V0IHRhYmxlIHdoZW4gY292ZXJlZCBsYXRlci4KCUNvbnNvbGlkYXRlIHNvbWUgZW50cmllcy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlCgoyMDAyLTA4LTA5ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKG91dHB1dF9pbnNuKTogU2F2ZSBmcmFnX25vdyBhbmQgZnJhZ19ub3dfZml4ICgpCglhdCBzdGFydCBvZiBpbnNuLCBwYXNzIGl0IHRvIG91dHB1dF9kaXNwIGFuZCBvdXRwdXRfaW1tLgoJKG91dHB1dF9kaXNwKTogQWRkZWQgYXJndW1lbnRzLiAgSWYgX0dMT0JBTF9PRkZTRVRfVEFCTEVfIGlzIHNlZW4KCWluIGRpc3BsYWNlbWVudCBmb3IgUl8zODZfMzIgcmVsb2MsIHVzZSBSXzM4Nl9HT1RQQyBhbmQgY29tcHV0ZQoJcHJvcGVybHkgYWRkZW5kLgoJKG91dHB1dF9pbW0pOiBBZGRlZCBhcmd1bWVudHMuICBDb21wdXRlIHByb3Blcmx5IGFkZGVuZCBmb3IKCVJfMzg2X0dPVFBDLgoJKG1kX2FwcGx5X2ZpeDMpOiBSZW1vdmUgUl8zODZfR09UUEMgaGFuZGxpbmcuCgoyMDAyLTA4LTA2ICBHZW9yZ2UgRnJhbmNlIDxmcmFuY2VAaGFuZGhlbGRzLm9yZz4KCgkqIGNvbmZpZy90Yy1hbHBoYS5jIChjcHVfdHlwZXMpOiBFbmFibGVkIGV2NjcsIGV2NjgsICAtbTIxMjY0YQoJYW5kIG0yMTI2NGIgcHJvY2Vzc29yIG5hbWVzIGFuZCBjcHUgdHlwZXMuCgkqIGRvYy9jLWFscGhhLnRleGk6IERvY3VtZW50ZWQgbmV3IHR5cGVzLgoKMjAwMi0wOC0wNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAobWRfYXBwbHlfZml4Myk6IEFkanVzdCAxNiBiaXQgWENPRkYgcmVsb2Mgb2Zmc2V0LgoKMjAwMi0wOC0wMSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAodGNfZ2VuX3JlbG9jKTogRXh0ZW5kIEdQLXJlbGF0aXZlIGFkZGVuZAoJaGFuZGxpbmcgdG8gQkZEX1JFTE9DX01JUFMxNl9HUFJFTC4KCjIwMDItMDgtMDEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtYXJtLmMgKGFkZF90b19saXRfcG9vbCk6IEVuc3VyZSB0aGF0IG9mZnNldCB0byBsaXRlcmFsCglwb29sIGlzIGNvbXB1dGVkIHVzaW5nIHNpZ25lZCBhcml0aG1ldGljIHNvIHRoYXQgcHJvcGVyIHNpZ24KCWV4dGVuc2lvbiBpcyBwZXJmb3JtZWQgaWYgWF9hZGRfbnVtYmVyIGlzIGEgNjQtYml0IGludGVnZXIuCgoyMDAyLTA4LTAxICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgkgICAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBkd2FyZjJkYmcuYyAoZHdhcmYyX2ZpbmlzaCk6IERvbid0IGVtaXQgdW5yZWZlcmVuY2VkCgkuZGVidWdfbGluZSBzZWN0aW9uIHVubGVzcyBpdCBoYXMgbGluZSBpbmZvcm1hdGlvbi4KCjIwMDItMDctMzEgIElhbiBEYWxsICA8aWFuQHNpYnlsLmJld2FyZS5kcm9wYmVhci5pZC5hdT4KCgkqIGNvbmZpZy90Yy1uczMyay5oIChtZF9wY3JlbF9hZGp1c3QpOiBTdXBwbHkgcHJvdG90eXBlLgoJKiBjb25maWcvdGMtbnMzMmsuYyAoY29udmVydF9paWYsIG1kX3BhcnNlX29wdGlvbiwgbWRfc2hvd191c2FnZSk6CglBbGxvdyBkZWZhdWx0IGRpc3BsYWNlbWVudCBzaXplIHRvIGJlIGFuIG9wdGlvbgkiLS1kaXNwLXNpemUtZGVmYXVsdCIuCgkobWRfbnVtYmVyX3RvX2Rpc3ApOiBNYWtlIGVycm9yIG1lc3NhZ2VzIGluY2x1ZGUgdmFsdWUuIFVzZSAlZCB0bwoJcHJpbnQgaW50ZWdlcnMsIG5vdCAlcy4KCShmaXhfbmV3X25zMzJrKTogQ29uZGl0aW9uYWxseSBzZXQgZnhfbm9fb3ZlcmZsb3cgc28gd2UgZG9uJ3QKCWdldCBkdXBsaWNhdGUgbWVzc2FnZXMgc29tZXRpbWVzLgoJKGNvbnZlcnRfaWlmKTogR3JvdyBmcmFnIHRvIG1heCBwb3NzaWJsZSBpbnN0cnVjdGlvbiBzaXplLiBBdm9pZAoJY3JlYXRpbmcgdW5uZWNlc3NhcnkgZml4ZXMuCgkobWRfbnVtYmVyX3RvX2ZpZWxkKSBBZGQgcHJvdG90eXBlLgoJKGVuY29kZV9vcGVyYW5kLCBwYXJzZSwgY29udmVydF9paWYsIG1kX2ZpeF9wY3JlbF9hZGp1c3QpOiBBZGQKCXByb3RvdHlwZXMgYW5kIG1ha2Ugc3RhdGljLgoJKHN0cnVjdCBhZGRyX21vZGUpOiBNYWtlIG1vZGUgYW5kIHNjYWxlZF9tb2RlIGV4cGxpY2l0bHkgc2lnbmVkLgoJKGV2YWx1YXRlX2V4cHIpOiBVc2UgcmVzdWx0UCBhcmd1bWVudCBpbnN0ZWFkIG9mIGV4cHJQIGdsb2JhbC4KCShnZXRfYWRkcl9tb2RlKTogUXVpdGVuIGNvbXBpbGVyIHdhcm5pbmdzLgoJKGVuY29kZV9vcGVyYW5kKTogZWxpbWluYXRlIHVudXNlZCB2YXJpYWJsZXMuIFF1aXRlbiBjb21waWxlcgoJd2FybmluZ3MuIEVsaW1pbmF0ZSBudWwgY2hhcmFjdGVyIGluIGZvcm1hdCBzdHJpbmdzLgoJKHBhcnNlKTogYXJnYyBpcyB1bnNpZ25lZC4KCShyZWxvYyk6IFR5cGUgY2FzdCBpbmRleCB0byBxdWlldGVuIGNvbXBpbGVyLgoJKG1kX3BjcmVsX2FkanVzdCwgbWRfYXBwbHlfZml4Myk6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgkobWRfY29udmVydF9mcmFnKTogTm90ZSB1bnVzZWQgcGFyYW1ldGVycy4gUmVtb3ZlIHVudXNlZAoJdmFyaWFibGVzLgoJKG1kX2NyZWF0ZV9sb25nX2p1bXAsIG1kX2NyZWF0ZV9zaG9ydF9qdW1wLAoJbWRfdW5kZWZpbmVkX3N5bWJvbF9uYW1lLCBtZF9zZWN0aW9uX2FsaWduLCB0Y19nZW5fcmVsb2MpOiBOb3RlCgl1bnVzZWQgcGFyYW1ldGVycy4KCjIwMDItMDctMzEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBORVdTOiBSZXRyb2FjdGl2ZWx5IGFkZCBlbnRyeSBmb3IgTGFycyBCcmlua2hvZmYncyBjb250cmlidXRpb24KCW9mIHRoZSBQRFAtMTEgYW5kIDIuMTFCU0QgYS5vdXQgc3VwcG9ydC4KCjIwMDItMDctMzEgIE1vbWNoaWwgVmVsaWtvdiAgPHZlbGNvQGZhZGF0YS5iZz4KCgkqIGNvbmZpZy90Yy12ODUwLmMgKG1kX2Fzc2VtYmxlKTogRml4IHJhbmdlIGNoZWNrIGZvciBpbW1lZGlhdGUKCW9wZXJhbmQuCgoyMDAyLTA3LTMwICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19jcHVfaW5mb190YWJsZSk6IENsZWFuIHVwIGVudHJpZXMgcmVsYXRlZAoJdG8gQnJvYWRjb20gU0ItMSBjb3JlIHN1cHBvcnQuCgoyMDAyLTA3LTMxICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc190YXJnZXRfZm9ybWF0KTogRml4IGZvcm1hdHRpbmcuCglBZGQgcmVjb2duaXRpb24gb2YgbjMyIEFCSSBmb3JtYXRzLgoKMjAwMi0wNy0zMCAgTWFjaWVqIFcuIFJvenlja2kgIDxtYWNyb0BkczIucGcuZ2RhLnBsPgoKCSogdGMtbWlwcy5jIChsb2FkX2FkZHJlc3MpOiBEb24ndCBjbG9iYmVyICRhdCB3aGVuIGxvYWRpbmcgYQoJNjQtYml0IGFkZHJlc3MgaW4gbm9uLVBJQyBjb2RlIGlmIG5vYXQgaXMgaW4gZWZmZWN0LgoJKG1hY3JvKTogTGlrZXdpc2UuCgoyMDAyLTA3LTMwICBNYWNpZWogVy4gUm96eWNraSAgPG1hY3JvQGRzMi5wZy5nZGEucGw+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNybyk6IFVzZSBjb2RlcyA2IGFuZCA3IGluIHRyYXAgaW5zdHJ1Y3Rpb25zCgl1c2VkIGluIGRpdmlzaW9uL211bHRpcGx5IG1hY3JvIGV4cGFuc2lvbnMgc2ltaWxhcmx5IHRvIGhvdyB0aGV5CglhcmUgdXNlZCBpbiB0aGUgdmFyaWFudHMgd2l0aCBicmVhayBpbnN0cnVjdGlvbnMuCgkobWFjcm8yKTogTGlrZXdpc2UuCgoyMDAyLTA3LTMwICBHcmFlbWUgUGV0ZXJzb24gIDxncEBxbnguY29tPgoKCSogY29uZmlndXJlLmluOiBBZGQgc3VwcG9ydCBmb3IgYXJtLSotbnRvIHRhcmdldC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wNy0zMCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYyAoc3RydWN0IGxpdGVyYWxfcG9vbCk6IEFkZCBmaWVsZHMgdG8gYWxsb3cKCW11bHRpcGxlIGxpdGVyYWwgcG9vbHMgdG8gYmUgbWFpbnRhaW5lZC4KCShmaW5kX2xpdGVyYWxfcG9vbCk6IE5ldyBmdW5jdGlvbi4KCShmaW5kX29yX21ha2VfbGl0ZXJhbF9wb29sKTogTmV3IGZ1bmN0aW9uLgoJKGFkZF90b19saXRlcmFsX3Bvb2wpOiBVc2UgZmluZF9vcl9tYWtlX2xpdGVyYWxfcG9vbC4KCShhcm1fc190ZXh0LCBhcm1fc19kYXRhLCBhcm1fc19zZWN0aW9uKTogUmVtb3ZlIC0gbm8gbG9uZ2VyCgluZWVkZWQuCgkoc19sdG9yZyk6IFVzZSBmaW5kX2xpdGVyYWxfcG9vbC4KCShhcm1fY2xlYW51cCk6IER1bXAgYWxsIGxpdGVyYWwgcG9vbHMuCgkqIGRvYy9jLWFybS50ZXhpOiBEb2N1bWVudCBuZXcgYmVoYXZpb3VyIG9mIG9ubHkgZHVtcGluZyBsaXRlcmFsCglwb29scyB1cG9uIHJlcXVlc3QuCgoyMDAyLTA3LTI2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLXBwYy5jIChwcGNfc2V0X2NwdSk6IFVzZSBQUENfT1BDT0RFXzY0IGFzIHRoZSBkZWZhdWx0CglyYXRoZXIgdGhhbiBQUENfT1BDT0RFXzMyIGZvciBwb3dlcnBjNjQqLgoKMjAwMi0wNy0yNSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL2VzLnBvOiBVcGRhdGVkIFNwYW5pc2ggdHJhbnNsYXRpb24uCgkqIHBvL2ZyLnBvOiBVcGRhdGVkIEZyZW5jaCB0cmFuc2xhdGlvbi4KCjIwMDItMDctMjUgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGRvYy9jLW1pcHMudGV4aTogUmVtb3ZlIC1tY3B1LiAgRG9jdW1lbnQgLW1hYmkuCgkqIGNvbmZpZ3VyZS5pbiAoTUlQU19DUFVfU1RSSU5HX0RFRkFVTFQpOiBOZXcgY29uZmlndXJhdGlvbiBtYWNyby4KCShVU0VfRV9NSVBTX0FCSV9PMzIsIE1JUFNfREVGQVVMVF82NEJJVCk6IE5ldyBjb25maWd1cmF0aW9uIG1hY3Jvcy4KCSogY29uZmlndXJlLCBjb25maWcuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy90Yy1taXBzLmMgKGZpbGVfbWlwc19hYmkpOiBSZW5hbWUgdG8gbWlwc19hYmkuCgkobWlwc19zZXRfb3B0aW9ucyk6IFJlbW92ZSAiYWJpIiBmaWVsZC4KCShtaXBzX29wdHMpOiBVcGRhdGUgYWNjb3JkaW5nbHkuICBSZXBsYWNlIGFsbCB1c2VzIG9mIG1pcHNfb3B0cy5hYmkKCXdpdGggbWlwc19hYmkuCgkobWlwc19jcHUpOiBSZW1vdmUuCgkobWlwc19hcmNoX3N0cmluZywgbWlwc19hcmNoX2luZm8pOiBOZXcgdmFycy4KCShtaXBzX3R1bmVfc3RyaW5nLCBtaXBzX3R1bmVfaW5mbyk6IE5ldyB2YXJzLgoJKEFCSV9ORUVEU18zMkJJVF9SRUdTLCBBQklfTkVFRFNfNjRCSVRfUkVHUyk6IE5ldyBtYWNyb3MuCgkoSEFWRV8zMkJJVF9HUFJTLCBIQVZFXzMyQklUX0ZQUlMpOiBEb24ndCBjaGVjayB0aGUgQUJJLgoJKG1pcHNfaXNhX3RvX3N0ciwgbWlwc19jcHVfdG9fc3RyKTogUmVtb3ZlLgoJKG1pcHNfaXApOiBJZiB0aGUgc2VsZWN0ZWQgYXJjaGl0ZWN0dXJlIGlzIGEgZ2VuZXJpYyBJU0EgcmF0aGVyCgl0aGFuIGEgcHJvY2Vzc29yLCBvbmx5IG1lbnRpb24gdGhlIElTQSBsZXZlbCBpbiBlcnJvciBtZXNzYWdlcy4KCShPUFRJT05fTUNQVSk6IFJlbW92ZS4KCShPUFRJT05fRlA2NCk6IE5ldy4KCShtZF9sb25nb3B0cyk6IEFkZCAtbWZwNjQsIHJlbW92ZSAtbWNwdS4KCShtaXBzX3NldF9vcHRpb25fc3RyaW5nKTogTmV3IGZuLgoJKG1kX3BhcnNlX29wdGlvbik6IE1ha2UgLW1pcHNOIHVwZGF0ZSBmaWxlX21pcHNfaXNhIHJhdGhlciB0aGFuCgltaXBzX29wdHMuaXNhLiAgVXNlIG1pcHNfc2V0X29wdGlvbl9zdHJpbmcgdG8gc2V0IC1tYXJjaCBvciAtbXR1bmUuCglEb24ndCBsZXQgLW1ncDMyIGFuZCAtbWZwMzIgY2hhbmdlIHRoZSBBQkkuCgkoc2hvdyk6IE1vdmUgdG8gZW5kIG9mIGZpbGUuICBDb25zdGlmeSBzdHJpbmcgYXJndW1lbnQuCgkobWRfc2hvd191c2FnZSk6IE1vdmUgdG8gdGhlIGVuZCBvZiB0aGUgZmlsZS4gIFJlYWQgYXZhaWxhYmxlCglhcmNoaXRlY3R1cmVzIGZyb20gbWlwc19jcHVfaW5mb190YWJsZS4KCShtaXBzX3NldF9hcmNoaXRlY3R1cmUpOiBOZXcgZm4uCgkobWlwc19hZnRlcl9wYXJzZV9hcmdzKTogUmV3b3JrLiAgUmVtb3ZlIC1tY3B1IGhhbmRsaW5nLiAgLW1pcHNOCglpcyBhbiBhbGlhcyBmb3IgLW1hcmNoPW1pcHNOLiAgRG9uJ3QgY2hhbmdlIHRoZSBBQkkgYmFzZWQgb24gb3RoZXIKCWZsYWdzLiAgSW5mZXIgdGhlIHJlZ2lzdGVyIHNpemUgZnJvbSB0aGUgQUJJIGFzCXdlbGwgYXMgdGhlCglhcmNoaXRlY3R1cmUuICBDb21wbGFpbiBhYm91dCBtb3JlIGNvbmZsaWN0aW5nIGFyZ3VtZW50cy4KCVVuaWZ5IGxvZ2ljIHdpdGggR0NDLgoJKHNfbWlwc3NldCk6IERvbid0IGNoYW5nZSB0aGUgQUJJLgoJKG1pcHNfZWxmX2ZpbmFsX3Byb2Nlc3NpbmcpOiBDaGVjayBVU0VfRV9NSVBTX0FCSV9PMzIuCgkobWlwc19jcHVfaW5mb190YWJsZSk6IFJlbW92ZSBHZW5lcmljLU1JUFMqIGVudHJpZXMsIGtlZXBpbmcganVzdAoJIm1pcHNOIi10eXBlIGVudHJpZXMuICBSZW1vdmUgZW50cmllcyB0aGF0IHZhcnkgb25seSBpbiB0aGUKCW1hbnVmYWN0dXJlcidzIHByZWZpeCwgb3IgdGhhdCBoYXZlICIwMDAiIHJlcGxhY2VkIGJ5ICJrIi4KCVJlbW92ZSBUQVJHRVRfQ1BVIGVudHJpZXMuICBNYWtlIHIyMDAwIGVudHJ5IHVzZSBDUFVfUjMwMDAuCgkobWlwc19zdHJpY3RfbWF0Y2hpbmdfY3B1X25hbWVfcCwgbWlwc19tYXRjaGluZ19jcHVfbmFtZV9wKTogTmV3IGZucy4KCShtaXBzX3BhcnNlX2NwdSk6IE5ldyBmbi4KCShtaXBzX2NwdV9pbmZvX2Zyb21fbmFtZSwgbWlwc19jcHVfaW5mb19mcm9tX2NwdSk6IFJlbW92ZS4KCShtaXBzX2NwdV9pbmZvX2Zyb21faXNhKTogTWlub3IgZm9ybWF0dGluZyB0d2Vhay4KCjIwMDItMDctMjQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9zdi5wbzogVXBkYXRlZCBTd2VkaXNoIHRyYW5zbGF0aW9uLgoJKiBwby9lcy5wbzogVXBkYXRlZCBTcGFuaXNoIHRyYW5zbGF0aW9uLgoKMjAwMi0wNy0yMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgoJKiBwby9QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDctMjMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9mci5wbzogVXBkYXRlZCBGcmVuY2ggdHJhbnNsYXRpb24uCgoyMDAyLTA3LTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogQ09OVFJJQlVUT1JTOiBLZW4gUmFlYnVybiBpcyBubyBsb25nZXIgdGhlIG1haW50YWluZXIgZm9yCglHQVMuCgoyMDAyLTA3LTE5ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19uZWVkX2VsZl9hZGRlbmRfZml4dXApOiBVc2UgU19JU19FWFRFUk5BTAoJaW5zdGVhZCBvZiBTX0lTX0VYVEVSTi4KCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IExpa2V3aXNlLgoJKG1pcHNfZml4X2FkanVzdGFibGUpOiBMaWtld2lzZS4KCjIwMDItMDctMTkgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzX3BpY19sZXZlbCk6IFJlbW92ZSBJUklYNF9QSUMuCgoyMDAyLTA3LTE5ICBNaXJvc2xhdiBUaWNoeSA8dGljaG05YW1Ac3MxMDAwLm1zLm1mZi5jdW5pLmN6PgoJICAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25kLmMgKHNfaWZkZWYpOiBUcmVhdCBhIHJlZmVyZW5jZWQgYnV0IG5vdCB5ZXQgZGVmaW5lZAoJc3ltYm9sIGFzIGlmIGl0IHdlcmUgdW5kZWZpbmVkLCBpbiBleGFjdGx5IHRoZSBzYW1lIHdheSBhcwoJLmVxdWl2LgoKCSogZG9jL2FzLnRleGluZm86IERvY3VtZW50IHRoYXQgLmlmZGVmLCAuaWZuZGVmIGFuZCAuZXF1aXYKCWNvbnNpZGVyIHJlZmVyZW5jZWQgYnVnIG5vdCB5ZXQgZGVmaW5lZCBzeW1ib2xzIHRvIGJlCgl1bmRlZmluZWQuCgoyMDAyLTA3LTE4ICBEZW5pcyBDaGVydHlrb3YgIDxkZW5pc2NAb3ZlcnRhLnJ1PgoJICAgIEZyYW5rIENoLiBFaWdsZXIgIDxmY2hlQHJlZGhhdC5jb20+CgkgICAgQWxhbiBMZWhvdHNreSAgPGFsZWhvdHNreUBjeWdudXMuY29tPgoJICAgIEpvaG4gSGVhbHkgIDxqaGVhbHlAcmVkaGF0LmNvbT4KCSAgICBKZWZmIEpvaG5zdG9uICA8ampvaG5zdG5AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGlwMmsgY29uZmlndXJhdG9uLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmFtOiBBZGQgaXAyayBjb25maWd1cmF0b24uCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWcvdGMtaXAyay5jOiBOZXcgZmlsZS4KCSogY29uZmlnL3RjLWlwMmsuaDogTmV3IGZpbGVzLgoJKiBORVdTOiBNZW50aW9uIG5ldyBzdXBwb3J0LgoJKiBkb2MvTWFrZWZpbGUuYW0gKENQVV9ET0NTKTogQWRkIGMtaXAyay50ZXhpLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9hbGwudGV4aTogU2V0IElQMksKCSogZG9jL2FzLnRleGluZm86IEFkZCBJUDJLIGRlc2NyaXB0aW9uLgoJKiBkb2MvYy1pcDJrLnRleGk6IE5ldyBmaWxlLgoKMjAwMi0wNy0xOSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBORVdTOiBSZWZvcm1hdCB0byBtYXRjaCBzdHlsZSBvZiBvdGhlciBORVdTIGZpbGVzLgoKMjAwMi0wNy0xNyAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogdGMtaTM4Ni5jIChpMzg2X2FsaWduX2NvZGUpOiBJbXBsZW1lbnQgeDg2XzY0IG5ldXRyYWwgY29kZSBmaWxsZXJzLgoKMjAwMi0wNy0xNiAgTW9yaXR6IEpvZGVpdCAgPG1vcml0ekBqb2RlaXQub3JnPgoKCSogY29uZmlnL3RjLXo4ay5jIChidWlsZF9ieXRlcyk6IENvcnJlY3Qgb3JkZXIgb2YgbWVtc2V0IGFyZ3MuCgoyMDAyLTA3LTE2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIE5FV1M6IEFkZCAnQ2hhbmdlcyBpbiAyLjEzJy4KCjIwMDItMDctMTUgIE1hdHQgRnJlZGV0dGUgIDxmcmVkZXR0ZUBuZXRic2Qub3JnPgoKCSogY29uZmlnL3RjLWhwcGEuaCAoTEFCRUxTX1dJVEhPVVRfQ09MT05TKTogRGVmaW5lIGlmIFRFX05ldEJTRC4KCjIwMDItMDctMTIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChwcm9jZXNzX3N1ZmZpeCk6IE1lcmdlIENPREVfNjRCSVQgSnVtcEJ5dGUKCWNhc2Ugd2l0aCBub24gQ09ERV82NEJJVCBjYXNlLiAgRG9uJ3Qgd2FybiBvbiAicXdvcmQgcHRyIiBpZgoJbm90IENPREVfNjRCSVQuCgoyMDAyLTA3LTExICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLXBwYy5jIChwcGNfZWxmX2Zyb2Jfc3ltYm9sKTogRGVsZXRlLgoJKHBwY19mcm9iX2ZpbGVfYmVmb3JlX2FkanVzdCk6IE5ldyBmdW5jdGlvbi4KCSogY29uZmlnL3RjLXBwYy5oICh0Y19mcm9iX3N5bWJvbCk6IERvbid0IGRlZmluZS4KCShwcGNfZWxmX2Zyb2Jfc3ltYm9sKTogRG9uJ3QgZGVjbGFyZS4KCSh0Y19mcm9iX2ZpbGVfYmVmb3JlX2FkanVzdCk6IERlZmluZS4KCShwcGNfZnJvYl9maWxlX2JlZm9yZV9hZGp1c3QpOiBEZWNsYXJlLgoKCSogY29uZmlnL3RjLXBwYy5jIChtZF9wc2V1ZG9fdGFibGUpOiBXYXJuaW5nIGZpeC4KCShwcGNfY3B1KTogTWFrZSBpdCB1bnNpZ25lZCBsb25nIHRvIGFncmVlIHdpdGggc3RydWN0IHBvd2VycGNfb3Bjb2RlCglmbGFncy4KCShwcGNfc2l6ZSk6IERlbGV0ZS4KCShwcGNfeGNvZmY2NCk6IFJlbmFtZSB0byBwcGNfb2JqNjQuCgkobWRfcGFyc2Vfb3B0aW9uIDxtPik6IEVuY29kZSBvbGQgcHBjX3NpemUgdmFsdWUgaW4gcHBjX2NwdS4KCShwcGNfc2V0X2NwdSk6IFNldCBQUENfT1BDT0RFXzMyIHRvby4KCShwcGNfYXJjaCk6IFVzZSBwcGNfb2JqNjQgaW5zdGVhZCBvZiBwcGNfc2l6ZSB0byBzZWxlY3QgYmZkX21hY2hfcHBjNjQKCW9yIGJmZF9tYWNoX3BwYy4KCShwcGNfdGFyZ2V0X2Zvcm1hdCk6IFVzZSBwcGNfb2JqNjQgdG8gc2VsZWN0IGZvcm1hdC4KCShtZF9iZWdpbik6IEFkanVzdCBmb3IgUFBDX09QQ09ERV8zMi82NCBpbiBwcGNfY3B1LgoJKHBwY19pbnNlcnRfb3BlcmFuZCk6IFVzZSBwcGNfb2JqNjQgaW5zdGVhZCBvZiBwcGNfc2l6ZS4KCShwcGNfZWxmX3N1ZmZpeCk6IExpa2V3aXNlLiAgRG9uJ3QgZGVwZW5kIG9uIEJGRF9ERUZBVUxUX1RBUkdFVF9TSVpFLgoJKHRjX2Zyb2Jfc3ltYm9sKTogTGlrZXdpc2UuCgkobWRfYXNzZW1ibGUpOiBVc2UgcHBjX29iajY0IGluc3RlYWQgb2YgcHBjX3NpemUuICBEb24ndCBkZXBlbmQgb24KCUJGRF9ERUZBVUxUX1RBUkdFVF9TSVpFLgoJKHBwY190Yyk6IExpa2V3aXNlLgoJKHBwY19pc190b2Nfc3ltKTogTGlrZXdpc2UuCgkobWRfYXBwbHlfZml4Myk6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtcHBjLmggKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBEb24ndCBkZXBlbmQgb24KCUJGRF9ERUZBVUxUX1RBUkdFVF9TSVpFLgoJKEVMRl9UQ19TUEVDSUFMX1NFQ1RJT05TKTogTGlrZXdpc2UuCgkodGNfZnJvYl9zeW1ib2wpOiBMaWtld2lzZS4KCjIwMDItMDctMDkgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNyb19idWlsZCk6IEhhbmRsZSBNSVBTMTYgaW5zbnMuCgkobWlwc19pcCk6IExpa2V3aXNlLgoKMjAwMi0wNy0wOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKG1kX3BzZXVkb190YWJsZSA8ZmlsZT4pOiBXYXJuaW5nIGZpeC4KCShCRkRfUkVMT0NfOCwgQkZEX1JFTE9DXzhfUENSRUwpOiBEZWZpbmUgZm9yIG5vbi1CRkQuCgkobWRfYXBwbHlfZml4Myk6IEZvcm1hdHRpbmcuICBSZW1vdmUgcmVkdW5kYW50IHRlc3QuCgkodGNfZ2VuX3JlbG9jKTogUmVtb3ZlIHJlZHVuZGFudCBjb2RlLgoJKHRjX2kzODZfZm9yY2VfcmVsb2NhdGlvbik6IERlbGV0ZS4gIE1vdnkgYm9keSBvZiBmdW5jdGlvbiB0by4uCgkqIGNvbmZpZy90Yy1pMzg2LmggKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiAuLiBoZXJlLgoKMjAwMi0wNy0wOSAgRmVkZXJpY28gRy4gU2Nod2luZHQgPGZnc2NoQG9saW1wby5jb20uYnI+CgoJKiBjb25maWd1cmUuaW46IEFkZCBocHBhLSotb3BlbmJzZCogdGFyZ2V0LCBjaGFuZ2UKCWFscGhhKi0qLW9wZW5ic2QqIGZvcm1hdCB0byBlbGYsIGFuZCB1c2UgZWxmIGZvciBzcGFyYy0qLW9wZW5ic2QqCgl3aXRoIHNwYXJjNjQgY3B1LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTA3LTA4ICBNYWNpZWogVy4gUm96eWNraSAgPG1hY3JvQGRzMi5wZy5nZGEucGw+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNybyk6IFNoaWZ0IHRoZSAzMi1iaXQgYWRkcmVzcyByYW5nZQoJYWNjZXNzaWJsZSB3aXRoIGEgbG9uZSAibHVpIiBkb3duIGJ5IDMyNzY4LgoKMjAwMi0wNy0wOCAgTWFjaWVqIFcuIFJvenlja2kgIDxtYWNyb0BkczIucGcuZ2RhLnBsPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobG9hZF9hZGRyZXNzKTogVXNlIG5vbi10cmFwcGluZyAiZGFkZHUiCglpbnN0ZWFkIG9mICJkYWRkIiBpbiBhZGRyZXNzIGNhbGN1bGF0aW9ucy4KCShtYWNybyk6IExpa2V3aXNlLgoKMjAwMi0wNy0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKHByb2Nlc3Nfc3VmZml4KTogUmVtb3ZlIGludGVsIG1vZGUgbW92c3ggYW5kCgltb3Z6eCBmdWRnZXMuCgkobWRfYXNzZW1ibGUpOiBJbnN0ZWFkLCB6YXAgdGhlIHN1ZmZpeCBoZXJlLgoKMjAwMi0wNy0wMyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBORVdTOiBSZW1vdmUgbmV4dCByZWxlYXNlIG51bWJlciB1bnRpbCB0aGUgcmVsZWFzZSBpcyBhY3R1YWxseQoJdXBvbiB1cy4KCjIwMDItMDctMDMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbSAoY2hlY2stREVKQUdOVSk6IFJldmVydCAyMDAyLTA2LTI1IGNoYW5nZS4KCVJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDctMDIgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBjb25maWcvdGMtczM5MC5jICh0Y19zMzkwX2ZpeF9hZGp1c3RhYmxlKTogUHJldmVudCBhbnkgYWRqdXN0bWVudAoJdG8gc3ltYm9scyBpbiBtZXJnZSBzZWN0aW9ucywgZXZlbiBub24gcGMtcmVsYXRpdmUgb25lcy4KCjIwMDItMDYtMjkgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogY29uZmlnL3RjLW02OGhjMTEuaCAobTY4aGMxMV9saXN0aW5nX2hlYWRlcik6IEZpeCB3YXJuaW5nLgoKMjAwMi0wNi0yOSAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBjb25maWcvdGMtbTY4aGMxMS5oIChFTEZfVENfU1BFQ0lBTF9TRUNUSU9OUyk6IE5ldyBzZWN0aW9ucwoJLnNvZnRyZWdzIGFuZCAuZWVwcm9tLgoKMjAwMi0wNi0yOCAgRGF2aWQgTydCcmllbiAgPG9icmllbkBGcmVlQlNELm9yZz4KCgkqIE5FV1M6IE5vdGUgdGhlIG5leHQgcmVsZWFzZSBpcyAyLjEzLgoKMjAwMi0wNi0yNiAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBwby90ci5wbzogTmV3IHRyYW5zbGF0aW9uIGltcG9ydGVkLgoKMjAwMi0wNi0yNiAgRWxpYXMgQXRoYW5hc29wb3Vsb3MgIDxlYXRoYW5Ab3RlbmV0LmdyPgoKCSogZWNvZmYuYzogKGdldF90YWcpOiBSZXBsYWNlIHN0cmNweSB3aXRoIHhzdHJkdXAuCgkoZWNvZmZfZGlyZWN0aXZlX2RlZik6IExpa2V3aXNlLgoJKGVjb2ZmX2RpcmVjdGl2ZV90YWcpOiBMaWtld2lzZS4KCSogbGlzdGluZy5jIChmaWxlX2luZm8pOiBMaWtld2lzZS4KCSogaGFzaC5jICh3aGF0KTogTGlrZXdpc2UuCgoyMDAyLTA2LTI1ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIE1ha2VmaWxlLmFtIChjaGVjay1ERUpBR05VKTogU2V0IExDX0FMTD1DIGFuZCBleHBvcnQgaXQuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KCjIwMDItMDYtMTkgIERoYW5hbmpheSBSLiBEZXNocGFuZGUgPGRoYW5hbmpheWRAa3BpdC5jb20+CgoJKiBjb25maWcvdGMtc2guYyAoZ2V0X3NwZWNpZmljKTogUmV2ZXJ0IDIwMDItMDUtMDEgY2hhbmdlLgoJKGFzc2VtYmxlX3BwaSk6IEdlbmVyYXRlIHdhcm5pbmcgaWYgdGhlIHNhbWUgcmVnaXN0ZXIgaXMgdXNlZAoJdHdpY2UgYXMgZGVzdGluYXRpb24gaW4gdGhlIHNhbWUgcGFkZCAvIHBtdWxzIGluc3RydWN0aW9uLgoKMjAwMi0wNi0xOCAgRGF2ZSBCcm9sbGV5ICA8YnJvbGxleUByZWRoYXQuY29tPgoKCUZyb20gQ2F0aGVyaW5lIE1vb3JlLCBNaWNoYWVsIE1laXNzbmVyLCBSaWNoYXJkIFNhbmRpZm9yZCwgRGF2ZSBCcm9sbGV5CgkqIHBvL1BPVEZJTEVTLmluOiBBZGQgdGMtZnJ2LmMsIHRjLWZydi5oLgoJKiBjb25maWd1cmUuaW46IFN1cHBvcnQgZnJ2LSotKi4KCSogTWFrZWZpbGUuYW0gKENQVV9UWVBFUyk6IEFkZCBmcnYuCgkoVEFSR0VUX0NQVV9DRklMRVMpOiBBZGQgdGMtZnJ2LmMuCgkoVEFSR0VUX0NQVV9IRklMRVMpOiBBZGQgdGMtZnJ2LmguCgkoREVQVENfZnJ2X2NvZmYpOiBOZXcgdmFyaWFibGUuCgkoREVQVENfZnJ2X2VsZik6IE5ldyB2YXJpYWJsZS4KCShERVBPQkpfZnJ2X2NvZmYpOiBOZXcgdmFyaWFibGUuCgkoREVQT0JKX2Zydl9lbGYpOiBOZXcgdmFyaWFibGUuCgkoREVQX2Zydl9jb2ZmKTogTmV3IHZhcmlhYmxlLgoJKERFUF9mcnZfZWxmKTogTmV3IHZhcmlhYmxlLgoJKiB0Yy1mcnYuYzogTmV3IGZpbGUuCgkqIHRjLWZydi5oOiBOZXcgZmlsZS4KCjIwMDItMDYtMTcgIENhdGhlcmluZSBNb29yZSA8Y2xtQHJlZGhhdC5jb20+CgoJKiBjb25maWcvb2JqLWVsZi5oIChUQVJHRVRfU1lNQk9MX0ZJRUxEUyk6IENvbmRpdGlvbmFsbHkgZGVmaW5lLgoKMjAwMi0wNi0xNyAgSiJvcm4gUmVubmVja2UgPGpvZXJuLnJlbm5lY2tlQHN1cGVyaC5jb20+CgoJKiBjb25maWcvdGMtc2guYyAoYXNzZW1ibGVfcHBpKTogSW5pdGlhbGl6ZSByZWdfbi4KCjIwMDItMDYtMTcgIFRvbSBSaXggPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1pMzcwLmggKHRjX2NvbW1lbnRfY2hhcnMpOiBEZWZpbmUgZm9yIGkzNzAtZWxmLgoKMjAwMi0wNi0xNCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoJICAgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogZHdhcmYyZGJnLmggKGR3YXJmMl9kaXJlY3RpdmVfZmlsZSk6IFJldHVybiBjaGFyICouCgkqIGR3YXJmMmRiZy5jIChkd2FyZjJfZGlyZWN0aXZlX2ZpbGUpOiBSZXR1cm4gZmlsZW5hbWUuCgkqIGNvbmZpZy90Yy1taXBzLmMgKHNfbWlwc19maWxlKTogQ2FsbCBzX2FwcF9maWxlX3N0cmluZwoJYW5kIG5ld19sb2dpY2FsX2xpbmUgZm9yIHRoZSBmaXJzdCAuZmlsZSBkaXJlY3RpdmUuCgkqIHJlYWQuYyAoc19hcHBfZmlsZV9zdHJpbmcpOiBOZXcgZnVuY3Rpb24uCgkoc19hcHBfZmlsZSk6IENhbGwgaXQuCgkqIHJlYWQuaCAoc19hcHBfZmlsZV9zdHJpbmcpOiBBZGQgZGVjbGFyYXRpb24uCgoyMDAyLTA2LTE0ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogUmVtb3ZlIE1JUFNfU1RBQlNfRUxGLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoJKiBjb25maWcuaW46IFJlZ2VuZXJhdGVkLgoJKiBjb25maWcvb2JqLWVsZi5oIChFQ09GRl9ERUJVR0dJTkcpOiBEZWZpbmUgdG8gbWlwc19mbGFnX21kZWJ1ZwoJZm9yIE1JUFMgdGFyZ2V0cy4KCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19wc2V1ZG9fdGFibGUpOiBSZW1vdmUgI2lmZGVmIGFyb3VuZAoJIi5leHRlcm4iLgoJKHBkcl9zZWcpOiBEZWNsYXJlIHVuY29uZGl0aW9uYWxseS4KCShtZF9iZWdpbik6IEFsd2F5cyBnZW5lcmF0ZSAucGRyIHVubGVzcyBFQ09GRl9ERUJVR0dJTkcgb3Igbm90IEVMRi4KCShzX21pcHNfZW5kKTogTGlrZXdpc2UuICBHZW5lcmF0ZSBzdGFicyBmdW5jdGlvbiBtYXJrZXJzLgoJKHNfbWlwc19lbnQpOiBHZW5lcmF0ZSBzdGFicyBmdW5jdGlvbiBtYXJrZXJzLgoJKHNfbWlwc19mcmFtZSk6IEFsd2F5cyBnZW5lcmF0ZSAucGRyIHVubGVzcyBFQ09GRl9ERUJVR0dJTkcgb3Igbm90CglFTEYuCgkoc19taXBzX21hc2spOiBMaWtld2lzZS4KCShtaXBzX2ZsYWdfbWRlYnVnKTogTmV3LgoJKG1kX2xvbmdvcHRzKTogQWRkICJtZGVidWciIGFuZCAibm8tbWRlYnVnIi4KCShtZF9wYXJzZV9vcHRpb25zKTogQWRkIE9QVElPTl9NREVCVUcgYW5kIE9QVElPTl9OT19NREVCVUcuCgkobWlwc19hZnRlcl9wYXJzZV9hcmdzKTogU2V0IG1pcHNfZmxhZ19tZGVidWcuCgkqIGRvYy9hcy50ZXhpbmZvOiBBZGQgIi1tZGVidWciIGFuZCAiLW5vLW1kZWJ1ZyIgZm9yIE1JUFMuCgoyMDAyLTA2LTEzICBNYWNpZWogVy4gUm96eWNraSAgPG1hY3JvQGRzMi5wZy5nZGEucGw+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtZF9hcHBseV9maXgzKTogRG9uJ3Qgc3VidHJhY3QgdGhlIHN5bWJvbCdzCgl2YWx1ZSB0d2ljZSBmb3IgUkVMQSByZWxvY2F0aW9ucy4KCjIwMDItMDYtMTIgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogc3ltYm9scy5jIChyZXNvbHZlX3N5bWJvbF92YWx1ZSk6IEluaXRpYWxpc2UgZmluYWxfdmFsLgoKCSogc3Vic2Vncy5jIChzdWJzZWdzX3ByaW50X3N0YXRpc3RpY3MpOiBDYXN0IGZyY2hwIHRvIHZvaWQgKi4KCjIwMDItMDYtMTEgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtcHBjLmMgKHBwY19zdWJzZWdfYWxpZ24pOiBEZWxldGUuCgkocHBjX2NoYW5nZV9jc2VjdCk6IERlZmF1bHQgY3NlY3QgYWxpZ24gaXMgMi4KCSogY29uZmlnL3RjLXBwYy5oIChTVUJfU0VHTUVOVF9BTElHTik6IERlbGV0ZQoKMjAwMi0wNi0wOSAgTWFyZWsgTWljaGFsa2lld2ljeiAgPG1hcmVrbUBhbWVsZWsuZ2RhLnBsPgoKCSogY29uZmlnL3RjLWF2ci5jIChtY3VfdHlwZXMpOiBVcGRhdGUuCgoyMDAyLTA2LTA4ICBNYXR0IFRob21hcyAgPG1hdHRAM2FtLXNvZnR3YXJlLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAodmF4LSotbmV0YnNkZWxmKiwgdmF4LSotbmV0YnNkYW91dCopCgkodmF4LSotbmV0YnNkKik6IE5ldyB0YXJnZXRzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy9hb3V0X2dudS5oIChlbnVtIG1hY2hpbmVfdHlwZSk6IEFkZCBNX1ZBWDRLX05FVEJTRC4KCSogY29uZmlnL3RjLXZheC5jOiBBZGQgc3VwcG9ydCBmb3IgRUxGIGFuZCBQSUMuCgkoZmxhZ193YW50X3BpYyk6IE5ldyBmbGFnLgoJKGZsb2F0X2NvbnMpOiBGaXggcHJvdG90eXBlLgoJKG1kX2FwcGx5X2ZpeDMpOiBBZGp1c3QgZm9yIEJGRF9BU1NFTUJMRVIuCgkobWRfYXNzZW1ibGUpOiBJbnRyb2R1Y2UgYSBuZXcgaXNfYWJzb2x1dGUgbG9jYWwsIGFuZCB1c2UgaXQKCXJhdGhlciB0aGFuIHJlcGVhdGluZyB0aGUgdGVzdC4gIE1ha2UgZmF0YWwgZXJyb3JzIGFjdHVhbGx5CglmYXRhbCBieSB1c2luZyBhc19mYXRhbCBhcyBhcHByb3ByaWF0ZS4gIEFkanVzdCBmb3IgQkZEX0FTU0VNQkxFUi4KCUFkZCBzdXBwb3J0IGZvciBFTEYuICBBZGQgc3VwcG9ydCBmb3IgUElDLgoJKG1kX2NvbnZlcnRfZnJhZyk6IEFkanVzdCBmb3IgQkZEX0FTU0VNQkxFUi4KCSh0Y19hb3V0X2ZpeF90b19jaGFycyk6IE9ubHkgaW5jbHVkZSBpZiBPQkpfQU9VVCBhbmQgbm90CglCRkRfQVNTRU1CTEVSLgoJKHZheF9yZWdfcGFyc2UpOiBNYWtlIHRoZSAlIHJlZ2lzdGVyIHByZWZpeCBtYW5kYXRvcnkgZm9yIEVMRiwKCW9wdGlvbmFsIGZvciBhLm91dCwgYW5kIG5vdCBhbGxvd2VkIGZvciBWTVMuICBBZGp1c3QgYWxsIGNhbGxlcnMuCgkobWRfY3JlYXRlX3Nob3J0X2p1bXApOiBBZGQgQVRUUklCVVRFX1VOVVNFRCB0byB1bnVzZWQgYXJndW1lbnRzLgoJKG1kX2NyZWF0ZV9sb25nX2p1bXApOiBMaWtld2lzZS4KCShtZF91bmRlZmluZWRfc3ltYm9sKTogTGlrZXdpc2UuCgkobWRfc2VjdGlvbl9hbGlnbik6IExpa2V3aXNlLgoJKG1kX3Nob3J0b3B0cyk6IEFsbG93IC1rIGFuZCAtSyBmb3IgRUxGLgoJKG1kX3BhcnNlX29wdGlvbik6IFNldCBmbGFnX3dhbnRfcGljIGlmIC1rIG9yIC1LLgoJKHRjX2hlYWRlcnNfaG9vayk6IE5ldyBmdW5jdGlvbiBpZiBPQkpfQU9VVCBhbmQgbm90IEJGRF9BU1NFTUJMRVIuCgkodGNfZ2VuX3JlbG9jKTogTmV3IGZ1bmN0aW9uIGlmIEJGRF9BU1NFTUJMRVIuCgkqIGNvbmZpZy90Yy12YXguaCAodGNfaGVhZGVyc19ob29rKTogUmVtb3ZlLgoJKFRBUkdFVF9GT1JNQVQpOiBTZXQgYWNjb3JkaW5nIHRvIG9iamVjdCBmb3JtYXQgYW5kIHRhcmdldAoJZW52aXJvbm1lbnQuCgkoQkZEX0FSQ0gsIFRBUkdFVF9BUkNIKTogRGVmaW5lLgoJKE5PX1JFTE9DKTogQWRqdXN0IGZvciBCRkRfQVNTRU1CTEVSLgoJKFRDX1JFTE9DX1JUU1lNX0xPQ19GSVhVUCwgVENfRklYX0FESlVTVEFCTEUpCgkodGNfZml4X2FkanVzdGFibGUpOiBEZWZpbmUgaWYgQkZEX0FTU0VNQkxFUi4KCSogY29uZmlnL3ZheC1pbnN0LmggKFZBWF9KU0IsIFZBWF9DQUxMUywgVkFYX0NBTExHKTogRGVmaW5lLgoKMjAwMi0wNi0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoJKiBhcy5jOiBSZXBsYWNlIENPTlNUIHdpdGggY29uc3QuCgkqIHdyaXRlLmM6IExpa2V3aXNlLgoJKiBjb25maWcvb2JqLWNvZmYuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1hMjlrLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtYXJtLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtZGx4LmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaDgzMDAuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1oODUwMC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWkzNzAuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1pODYwLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaTk2MC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW02OGhjMTEuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1tNjhrLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbTg4ay5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW1jb3JlLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbWlwcy5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW5zMzJrLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtcGRwMTEuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1wai5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXMzOTAuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1zaC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXNwYXJjLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtdGFob2UuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy10aWM4MC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXY4NTAuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy12YXguYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy13NjUuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy16OGsuYzogTGlrZXdpc2UuCgoyMDAyLTA2LTA4ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCglCYXNlZCBvbiBwYXRjaCBmcm9tIE1hdHQgR3JlZW46CgkqIGNvbmZpZy9vYmotZWxmLmggKEVDT0ZGX0RFQlVHR0lORyk6IE1ha2UgY29uZmlndXJhYmxlLgoJKiBjb25maWcvdGMtbWlwcy5jIChzX21pcHNfZmlsZSk6IFJlbmFtZWQgZnJvbSBzX2ZpbGUuCgkoc19taXBzX2xvYyk6IE5ldyBmdW5jdGlvbi4KCShtaXBzX25vbmVjb2ZmX3BzZXVkb190YWJsZSk6IENhbGwgdGhlbS4KCShhcHBlbmRfaW5zbik6IENhbGwgZHdhcmYyX2VtaXRfaW5zbi4KCjIwMDItMDYtMDggIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzX29wdHMpOiBGaXggY29tbWVudCwgYWxsIEFTRSBmaWVsZHMgYXJlIHNldAoJdG8gLTEuCgkoZmlsZV9hc2VfbWlwczE2KTogTmV3IHZlcmlhYmxlLgoJKG1pcHNfZWFiaTY0KTogUmVtb3ZlLgoJKENQVV9IQVNfTUlQUzE2KTogTmV3IGRlZmluZS4KCShDUFVfSEFTX01ETVgpOiBGaXggZGF0YSB0eXBlLgoJKG1kX2JlZ2luKTogQ29kZSBjbGVhbnVwLiBVc2UgZmlsZV9hc2VfbWlwczE2LgoJKG1pcHNfZWxmX2ZpbmFsX3Byb2Nlc3NpbmcpOiBIYW5kbGUgbWlwczE2IGhlYWRlciBmbGFnLgoJSGFuZGxlIEVBQkkgZmxhZyB3aXRob3V0IGludGVybWVkaWF0ZSB2YXJpYWJsZS4KCjIwMDItMDYtMDggIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBkb2MvYXMudGV4aW5mbzogVXBkYXRlIE1JUFMgZG9jdW1lbnRhdGlvbi4KCjIwMDItMDYtMDggIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jOiBBZGQgZGVmaW5lIGZvciAkemVybyByZWdpc3Rlci4KCShtZF9iZWdpbik6IEFkZCAkemVybyBhcyBhbGlhcyBuYW1lIGZvciAkMC4KCShpbnNuX3VzZXNfcmVnKTogVXNlIFpFUk8gZGVmaW5lLgoJKG1pcHNfaXApOiBBZGQgJHplcm8gYXMgYWxpYXMgbmFtZSBmb3IgJDAuCgkobWlwczE2X2lwKTogTGlrZXdpc2UuCgkoc19jcGxvY2FsKTogRGVtYW5kIGVtcHR5IHJlc3Qgb2YgaW5wdXQgbGluZS4KCSh0Y19nZXRfcmVnaXN0ZXIpOiBMaWtld2lzZS4gQWRkIHN1cHBvcnQgZm9yICRrdDAsIGt0MSByZWdpc3RlcgoJbmFtZXMuIFVzZSBaRVJPIGRlZmluZS4gRml4IGlucHV0X2xpbmVfcG9pbnRlciBwcm9ncmVzcy4KCjIwMDItMDYtMDcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBzeW1ib2xzLmM6IFJlcGxhY2UgQ09OU1QgYnkgY29uc3QgdGhyb3VnaG91dC4KCShzeW1ib2xfZmluZF9leGFjdCk6IFNwbGl0IG91dCBmcm9tLi4KCShzeW1ib2xfZmluZF9iYXNlKTogLi5oZXJlLgoJKiBzeW1ib2xzLmg6IFJlcGxhY2UgQ09OU1QgYnkgY29uc3QgdGhyb3VnaG91dC4KCShzeW1ib2xfZmluZF9leGFjdCk6IERlY2xhcmUuCgkqIGNvbmZpZy9vYmotZWxmLmM6ICNpbmNsdWRlICJzdHJ1Yy1zeW1ib2wuaCIuCgkoZWxmX2Zyb2JfZmlsZSk6IElmIGdyb3VwIG5hbWUgbWF0Y2hlcyBhbiBleHBvcnRlZCBzeW1ib2wsIHVzZSB0aGF0CglzeW1ib2wgZm9yIHRoZSBzaWduYXR1cmUgYW5kICIuZ3JvdXAiIGFzIHRoZSBzZWN0aW9uIG5hbWUuCgoyMDAyLTA2LTA2ICBKIm9ybiBSZW5uZWNrZSA8am9lcm4ucmVubmVja2VAc3VwZXJoLmNvbT4KCgkqIGNvbmZpZy90Yy1zaC5jIChwYXJzZV9hdCk6IEAoc3ltYm9sLHBjKSBpcyBBX0RJU1BfUEMgYWdhaW4sCglidXQgd2FybiBhYm91dCBpdC4KCjIwMDItMDYtMDYgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogdGMtbWlwcy5jIChtaXBzX2FmdGVyX3BhcnNlX2FyZ3MpOiBBbHdheXMgc2V0IG1pcHNfb3B0cy5hc2VfbWlwczNkCglhbmQgbWlwc19vcHRzLmFzZV9tZG14IGlmIHRoZXkgYXJlIHVuaW5pdGlhbGl6ZWQuCgoyMDAyLTA2LTA2ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogZ2FzL2NvbmZpZy90Yy1ocHBhLmMgKHBhX2lwKTogUmVwbGFjZSAiTCQwXDAwMSIgd2l0aCBGQUtFX0xBQkVMX05BTUUuCgkoaHBwYV9mb3JjZV9yZWxvY2F0aW9uKTogQ2hlY2sgaWYgYSBzdHViIGp1c3QgYmVmb3JlIHRoZSBzdGFydCBzeW1ib2wKCW9mIHRoZSBsYXN0IGNhbGxfaW5mbyBpcyByZWFjaGFibGUgYmVmb3JlIGZvcmNpbmcgcmVsb2NhdGlvbi4gIEZpeAoJdHlwby4KCjIwMDItMDYtMDQgIE1hY2llaiBXLiBSb3p5Y2tpICA8bWFjcm9AZHMyLnBnLmdkYS5wbD4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfYWZ0ZXJfcGFyc2VfYXJncyk6IE5ldyBmdW5jdGlvbi4KCShtZF9iZWdpbik6IE1vdmUgcHJvY2Vzc2luZyBvZiBkZWZhdWx0cyB0byBtaXBzX2FmdGVyX3BhcnNlX2FyZ3MuCgljb25maWcvdGMtbWlwcy5oIChtZF9hZnRlcl9wYXJzZV9hcmdzKTogRGVmaW5lLgoKMjAwMi0wNi0wNCAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoc2g1Kik6IFNldCBjcHVfdHlwZSB0byBzaDY0IGFuZCBlbmRpYW4gdG8gYmlnLgoJKHNoNWxlKiwgc2g2NGxlKik6IFNldCBjcHVfdHlwZSB0byBzaDY0IGFuZCBlbmRpYW4gdG8gbGl0dGxlLgoJKHNoNSotKi1uZXRic2QqLCBzaDY0Ki0qLW5ldGJzZCopOiBOZXcgdGFyZ2V0cy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjb25maWcvdGMtc2g2NC5jIChzaDY0X3RhcmdldF9mb3JtYXQpOiBBZGQgc3VwcG9ydCBmb3IgTmV0QlNECgllbnZpcm9ubWVudC4KCjIwMDItMDYtMDQgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWcvdGMtc2g2NC5oIChNRF9QQ1JFTF9GUk9NX1NFQ1RJT04pOiBVbmRlZiBiZWZvcmUgcmVkZWZpbmluZy4KCjIwMDItMDYtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvb2JqLWVsZi5jIChvYmpfZWxmX2NoYW5nZV9zZWN0aW9uKTogU2V0IGFuZCBjaGVjayBlbGYKCWxpbmtvbmNlIGZsYWcuICBQcmludCBhbGwgd2FybmluZ3MuCgkob2JqX2VsZl9zZWN0aW9uKTogUGFyc2UgIixjb21kYXQiIGZvciBncm91cHMuCgkoZWxmX2Zyb2JfZmlsZSk6IFNldCBTRUNfTElOS19PTkNFIG9uIENPTURBVCBncm91cHMuICBDaGVjawoJY29uc2lzdGVuY3kgb2YgY29tZGF0IGZsYWcuCgoyMDAyLTA2LTAyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWFscGhhLmMgKGFscGhhX2FkanVzdF9zeW10YWJfcmVsb2NzKTogRml4IHRoaW5rbwoJd2l0aCBMSVRFUkFMcyB3aXRob3V0IHNlcXVlbmNlIG51bWJlcnMuCgoyMDAyLTA2LTAxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWFscGhhLmM6IE1vdmUgTElUVVNFIGNvbnN0YW50cyB0byAiZWxmL2FscGhhLmgiLgoJUmVuYW1lIHRoZW0gTElUVVNFX0FMUEhBXyouCgoyMDAyLTA1LTMxICBTaHJpbml2YXMgQXRyZSA8U2hyaW5pdmFzQUBrcGl0LmNvbT4KCgkqIGNvbmZpZy90Yy1oODMwMC5jIChnZXRfb3BlcmFuZCk6IEFsbG93IHN0bS5sIGFuZCBsZG0ubCBpbnNucyB0bwoJYWNjZXB0IHBhcmVudGhlc2VzIGVuY2xvc2VkIHJlZ2lzdGVyIGxpc3RzLgoKMjAwMi0wNS0zMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL1BPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wNS0zMSAgR3JhZW1lIFBldGVyc29uICA8Z3BAcW54LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGkzODYtKi1udG8tcW54Ki4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wNS0zMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfaXApOiBVc2UgdW5zaWduZWQgbG9uZyB2YWx1ZXMgZm9yCgl3YXJuaW5nIG91dHB1dC4KCjIwMDItMDUtMzEgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChzX2Nwc2V0dXApOiBGaXggaW5pdGlhbGl6YXRpb24gb2YKCW1pcHNfY3ByZXR1cm5fcmVnaXN0ZXIgYW5kIG1pcHNfY3ByZXR1cm5fb2Zmc2V0LgoKMjAwMi0wNS0zMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKHNfY3BzZXR1cCk6IEZpeCBjb21tZW50LgoKMjAwMi0wNS0zMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1kX2JlZ2luKTogQWRkICRyYSBhcyBhbGlhcyBuYW1lIGZvciAkMzEuCgkobWlwc19pcCk6IExpa2V3aXNlLgoJKG1pcHMxNl9pcCk6IExpa2V3aXNlLgoJKHRjX2dldF9yZWdpc3Rlcik6IExpa2V3aXNlLgoKMjAwMi0wNS0zMCAgQ2hyaXMgRy4gRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCSAgICBFZCBTYXR0ZXJ0aHdhaXRlICA8ZWhzQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfc2V0X29wdGlvbnMpOiBOZXcgImFzZV9tZG14IiBtZW1iZXIuCgkobWlwc19vcHRzKTogSW5pdGlhbGl6ZSAiYXNlX21kbXgiIG1lbWJlci4KCShmaWxlX2FzZV9tZG14KTogTmV3IHZhcmlhYmxlLgoJKENQVV9IQVNfTURNWCk6IE5ldyBtYWNyby4KCShtZF9iZWdpbik6IEluaXRpYWxpemUgbWlwc19vcHRzLmFzZV9tZG14IGFuZCBmaWxlX2FzZV9tZG14CgliYXNlZCBvbiBjb21tYW5kIGxpbmUgb3B0aW9ucyBhbmQgY29uZmlndXJhdGlvbiBkZWZhdWx0cy4KCShtYWNyb19idWlsZCk6IE5vdGUgaW4gY29tbWVudCB0aGF0IHVzZSBvZiBNRE1YIGluIG1hY3JvcyBpcwoJbm90IGN1cnJlbnRseSBhbGxvd2VkLgoJKHZhbGlkYXRlX21pcHNfaW5zbik6IEFkZCBzdXBwb3J0IGZvciB0aGUgIk8iLCAiUSIsICJYIiwgIlkiLCBhbmQKCSJaIiBNRE1YIG9wZXJhbmQgdHlwZXMuCgkobWlwc19pcCk6IEFjY2VwdCBNRE1YIGluc3RydWN0aW9ucyBpZiBtaXBzX29wdHMuYXNlX21kbXggaXMgc2V0LAoJYW5kIGFkZCBzdXBwb3J0IGZvciB0aGUgIk8iLCAiUSIsICJYIiwgIlkiLCBhbmQgIloiIE1ETVggb3BlcmFuZAoJdHlwZXMuCgkoT1BUSU9OX01ETVgsIE9QVElPTl9OT19NRE1YLCBtZF9sb25nb3B0cywgbWRfcGFyc2Vfb3B0aW9uKToKCUFkZCBzdXBwb3J0IGZvciAiLW1kbXgiIGFuZCAiLW5vLW1kbXgiIG9wdGlvbnMuCgkoT1BUSU9OX0VMRl9CQVNFKTogTW92ZSB0byBhY2NvbW1vZGF0ZSBuZXcgb3B0aW9ucy4KCShzX21pcHNzZXQpOiBTdXBwb3J0ICIuc2V0IG1kbXgiIGFuZCAiLnNldCBub21kbXgiLgoJKG1pcHNfZWxmX2ZpbmFsX3Byb2Nlc3NpbmcpOiBTZXQgTURNWCBBU0UgRUxGIGhlYWRlciBmbGFnIGlmCglmaWxlX2FzZV9tZG14IHdhcyBzZXQuCgkqIGRvYy9hcy50ZXhpbmZvOiBEb2N1bWVudCAtbWRteCBhbmQgLW5vLW1kbXggb3B0aW9ucy4KCSogZG9jL2MtbWlwcy50ZXhpOiBMaWtld2lzZSwgYW5kIGRvY3VtZW50ICIuc2V0IG1kbXgiIGFuZCAiLnNldAoJbm9tZG14IiBkaXJlY3RpdmVzLgoKMjAwMi0wNS0zMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKE9QVElPTl9OT19NNzAwMF9ISUxPX0ZJWCk6IFJlbmFtZSB0bwoJT1BUSU9OX01OT183MDAwX0hJTE9fRklYLiBBZGQgYWx0ZXJuYXRlICJtbm8tZml4NzAwMCIKCWNvbW1hbmQgbGluZSBzd2l0Y2ggY29uZm9ybWluZyB0byBnY2MgY29udmVudGlvbnMuCgkqIGRvYy9jLW1pcHMudGV4aTogRG9jdW1lbnQgLW1uby1maXg3MDAwIGluc3RlYWQgb2Ygbm8tbWZpeC03MDAwLgoKMjAwMi0wNS0zMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1hY3JvX2J1aWxkX2phbHIpOiBOZXcgRnVuY3Rpb24uCgkobWRfYmVnaW4pOiBOZXdBQkkgdXNlcyBiaWcgR09Ucy4KCShtYWNyb19idWlsZCk6IFJlY29nbml6ZSBCRkRfUkVMT0NfTUlQU19HT1RfRElTUCwKCUJGRF9SRUxPQ19NSVBTX0dPVF9QQUdFLCBCRkRfUkVMT0NfTUlQU19HT1RfT0ZTVCBhcyB2YWxpZC4KCShsb2FkX2FkZHJlc3MpOiBBZGQgc29tZSBOZXdBQkkgUElDIHN1cHBvcnQuCgkobWFjcm8pOiBMaWtld2lzZS4KCShtZF9hcHBseV9maXgpOiBTcGVjaWFsIGhhbmRsaW5nIGZvciBCRkRfUkVMT0NfTUlQU19KQUxSLgoJKHRjX2dlbl9yZWxvYyk6IERvbid0IGVuY29kZSBOZXdBQkkgdnRhYmxlcyBpbiBSRUwgcmVsb2NhdGlvbnMuCgoyMDAyLTA1LTMxICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobG9hZF9hZGRyZXNzKTogVXNlIG1pcHNfZ3BfcmVnaXN0ZXIgaW5zdGVhZAoJb2YgaGFyZGNvZGVkIHZhbHVlLiBSZW1vdmUgZGJsIHBhcmFtZXRlciwgdXNlIEhBVkVfMzJCSVRfQUREUkVTU0VTCglpbnN0ZWFkLgoJKG1hY3JvKTogVXNlIG1pcHNfZ3BfcmVnaXN0ZXIgaW5zdGVhZCBvZiBoYXJkY29kZWQgdmFsdWUuCgoyMDAyLTA1LTMwICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZXhwci5oIChvcGVyYXRvclQpOiBBZGQgT19tZDE3Li5PX21kMzIuCgkqIGNvbmZpZy90Yy1hbHBoYS5jIChPX2xpdHVzZV90bHNnZCwgT19saXR1c2VfdGxzbGRtLCBPX3Rsc2dkLAoJT190bHNsZG0sIE9fZ290ZHRwcmVsLCBPX2R0cHJlbGhpLCBPX2R0cHJlbGxvLCBPX2R0cHJlbCwgT19nb3R0cHJlbCwKCU9fdHByZWxoaSwgT190cHJlbGxvLCBPX3RwcmVsKTogTmV3LgoJKFVTRVJfUkVMT0NfUCwgYWxwaGFfcmVsb2Nfb3BfdGFnLCBkZWJ1Z19leHApOiBJbmNsdWRlIHRoZW0uCgkoRFVNTVlfUkVMT0NfTElUVVNFX1RMU0dELCBEVU1NWV9SRUxPQ19MSVRVU0VfVExTTERNKTogTmV3LgoJKExJVFVTRV9UTFNHRCwgTElUVVNFX1RMU0xETSk6IE5ldy4KCShzdHJ1Y3QgYWxwaGFfcmVsb2NfdGFnKTogQWRkIG1hc3Rlciwgc2F3X3Rsc2dkLCBzYXdfdGxzbGQsCglzYXdfbHVfdGxzZ2QsIHNhd19sdV90bHNsZG0uICBNYWtlIG11bHRpX3NlY3Rpb25fcCBhIGJpdCBmaWVsZC4KCShtZF9hcHBseV9maXgzKTogSGFuZGxlIFRMUyByZWxvY2F0aW9ucy4KCShhbHBoYV9mb3JjZV9yZWxvY2F0aW9uLCBhbHBoYV9maXhfYWRqdXN0YWJsZSk6IExpa2V3aXNlLgoJKGFscGhhX2FkanVzdF9zeW10YWJfcmVsb2NzKTogU29ydCBMSVRFUkFMIHJlbG9jcyBhZnRlciB0aGUKCWFzc29jaWF0ZWQgVExTIHJlbG9jLiAgQ2hlY2sgbGl0dXNlX3RscyByZWxvY3MgbWF0Y2ggdXAuCgkoZW1pdF9pbnNuKTogSGFuZGxlIFRMUyByZWxvY2F0aW9ucy4KCShsZFhfb3ApOiBSZW1vdmUuCgoJKiBkb2MvYy1hbHBoYS50ZXhpOiBBZGQgZG9jcyBmb3IgdGxzIHJlbG9jYXRpb25zLgoKMjAwMi0wNS0zMCAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfZ3ByZWxfb2Zmc2V0KTogTmV3IHZhcmlhYmxlLgoJKHNfZ3B2YWx1ZSk6IFVzZSBpdC4KCjIwMDItMDUtMzAgIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogZ2FzL2NvbmZpZy90Yy1kMTB2LmMgKGNoZWNrX3Jlc291cmNlX2NvbmZsaWN0KTogT25seSBjaGVjawoJd3JpdGUtd3JpdGUgY29uZmxpY3RzLgoJKG1kX2Fzc2VtYmxlKTogUmVmb3JtYXQgaW50cm9kdWN0b3J5IGNvbW1lbnQuCgkocGFyYWxsZWxfb2spOiBQcmV2ZW50IHBhY2tpbmcgb25seSBpZiB0aGUgZmlyc3QKCWluc3RydWN0aW9uIGNhbm5vdCBiZSBwYWNrZWQuCgoyMDAyLTA1LTMwICBKYXNvbiBFY2toYXJkdCA8amxlQHJlZGhhdC5jb20+CgkgICAgVG9tIFJpeCA8dHJpeEByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWQxMHYuYyAoYnVpbGRfaW5zbik6IENoZWNrIGZvciBpbW1lZGlhdGVzLgoKMjAwMi0wNS0yOCAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmM6IFJlcGxhY2UgR1AgaW4gY29tbWVudHMgYnkgJGdwLgoJKG1pcHNfYmlnX2dvdCk6IEluaXRpYWxpemUuCgkobWlwc190cmFwKTogSW5pdGlhbGl6ZS4KCShsb2FkX2FkZHJlc3MpOiBVc2UgbWlwc19ncF9yZWdpc3RlciBpbnN0ZWFkIG9mIGhhcmRjb2RlZCB2YWx1ZS4KCVJlbW92ZSBkYmwgcGFyYW1ldGVyLCB1c2UgSEFWRV8zMkJJVF9BRERSRVNTRVMgaW5zdGVhZC4KCShtYWNybyk6IFVzZSBtaXBzX2dwX3JlZ2lzdGVyIGluc3RlYWQgb2YgaGFyZGNvZGVkIHZhbHVlLgoJKG1hY3JvMik6IENoYW5nZSBsb2FkX2FkZHJlc3MgY2FsbHMuCgkobWRfcGNyZWxfZnJvbSk6IENvbW1lbnQgZm9ybWF0dGluZy4KCShzX2NwbG9hZCk6IFVzZSBtaXBzX2dwX3JlZ2lzdGVyIGluc3RlYWQgb2YgaGFyZGNvZGVkIHZhbHVlLgoJKHNfY3ByZXN0b3JlKTogTGlrZXdpc2UuIENvbW1lbnQgZm9ybWF0dGluZy4KCShzX2dwd29yZCk6IEZpeCBkYXRhIHR5cGUuCgkoc19jcGFkZCk6IFVzZSBtaXBzX2dwX3JlZ2lzdGVyIGluc3RlYWQgb2YgaGFyZGNvZGVkIHZhbHVlLgoJKG5vcGljX25lZWRfcmVsYXgpOiBSZXBsYWNlIEdQIGluIGNvbW1lbnRzIGJ5ICRncC4KCShtaXBzX2VsZl9maW5hbF9wcm9jZXNzaW5nKTogQmV0dGVyIGNvbW1lbnQuCgoyMDAyLTA1LTI4ICBLdWFuZyBId2EgTGluIDxrdWFuZ0BzYmNnbG9iYWwubmV0PgoKCSogY29uZmlndXJlLmluOiBBZGQgRExYIGNvbmZpZ3VyYXRvbgoJKiBNYWtlZmlsZS5hbTogQWRkIERMWCBjb25maWd1cmF0b24KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlnL3RjLWRseC5jOiBOZXcgZmlsZS4KCSogY29uZmlnL3RjLWRseC5oOiBOZXcgZmlsZXMuCgkqIE5FV1M6IE1lbnRpb24gbmV3IHN1cHBvcnQuCgoyMDAyLTA1LTI3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9vYmotY29mZi5jICh3cml0ZV9vYmplY3RfZmlsZSk6IEFkZCBtaXNzaW5nIHNlbWljb2xvbi4KCjIwMDItMDUtMjYgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzX2VtaXRfZGVsYXlzKTogUmVwbGFjZSBtYWdpYyBjb25zdGFudCBmb3IgUkEKCWJ5IHRoZSBkZWZpbmUuIFJlbW92ZSBzdXBlcmZsdW91cyBjaGVjayBvZiBtaXBzX29wdHMubWlwczE2LgoJKGFwcGVuZF9pbnNuKTogTGlrZXdpc2UuIENhbm9uaWNhbGl6ZSB2YXJpYWJsZSBpbmNyZW1lbnRzLgoJKG1hY3JvX2J1aWxkKTogQ2Fub25pY2FsaXplIHZhcmlhYmxlIGluY3JlbWVudHMuCgkobWFjcm9fYnVpbGRfbHVpKTogTGlrZXdpc2UuCgkobG9hZF9yZWdpc3Rlcik6IExpa2V3aXNlLgoJKGxvYWRfYWRkcmVzcyk6IE1vdmUgcG9pbnRlciBpbml0aWFsaXphdGlvbi4KCShtYWNybyk6IE1vdmUgcG9pbnRlciB0byBhIG1vcmUgbG9jYWwgc2NvcGUuIENhbm9uaWNhbGl6ZSB2YXJpYWJsZQoJaW5jcmVtZW50cy4gQmV0dGVyIGNvbW1lbnRzLiBSZXBsYWNlIG1hZ2ljIGNvbnN0YW50IGZvciBSQSBieSB0aGUKCWRlZmluZS4KCShtYWNybzIpOiBSZXBsYWNlIG1hZ2ljIGNvbnN0YW50IGZvciBSQSBieSB0aGUgZGVmaW5lLiBDYW5vbmljYWxpemUKCXZhcmlhYmxlIGluY3JlbWVudHMuCgkobWlwc19pcCk6IENhbm9uaWNhbGl6ZSB2YXJpYWJsZSBpbmNyZW1lbnRzLgoJKG1pcHMxNl9pcCk6IFJlcGxhY2UgbWFnaWMgY29uc3RhbnQgZm9yIFJBIGJ5IHRoZSBkZWZpbmUuCgkobXlfZ2V0U21hbGxQYXJzZXIpOiBDYW5vbmljYWxpemUgdmFyaWFibGUgaW5jcmVtZW50cy9kZWNyZW1lbnRzLgoJKG15X2dldFBlcmNlbnRPcCk6IExpa2V3aXNlLgoJKG15X2dldFNtYWxsRXhwcmVzc2lvbik6IExpa2V3aXNlLgoJKHNfYWxpZ24pOiBMaWtld2lzZS4KCShzX21pcHNzZXQpOiBMaWtld2lzZS4KCShzX2Nwc2V0dXApOiBMaWtld2lzZS4KCShzX2luc24pOiBSZW1vdmUgc3VwZXJmbHVvdXMgY2hlY2sgb2YgbWlwc19vcHRzLm1pcHMxNi4KCShzX21pcHNfc3RhYik6IExpa2V3aXNlLgoJKG1pcHNfaGFuZGxlX2FsaWduKTogQ2Fub25pY2FsaXplIHZhcmlhYmxlIGluY3JlbWVudHMuCgkoc19taXBzX2VudCk6IExpa2V3aXNlLgoJKHNfbWlwc19lbmQpOiBBZGQgY29tbWVudC4KCjIwMDItMDUtMjYgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWd1cmUuaW46IFVzZSBuczMyay0qLW5ldGJzZCogaW5zdGVhZCBvZiBuczMyay1wYzUzMi1uZXRic2QqLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTA1LTI1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW0gKE9CSlMpOiBEZXBlbmQgb24gYW5zaWRlY2wuaCBhbmQgZm9wZW4tc2FtZS5oLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZGVwLWluLnNlZDogUmVvcmRlciB0byBtYXRjaCBPQkpTIGluIE1ha2VmaWxlLmFtLgoJKiBjb25maWd1cmUuaW4gKEFMTF9PQkpfREVQUyk6IEFkZCBzeW1jYXQuaCB3aGVuIG5lZWRfYmZkLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGFzLmg6IFVzZSAjaW5jbHVkZSAiIiBpbnN0ZWFkIG9mIDw+IGZvciBsb2NhbCBoZWFkZXIgZmlsZXMuCgkqIGZsb251bS1rb25zdC5jOiBMaWtld2lzZS4KCSogZmxvbnVtLW11bHQuYzogTGlrZXdpc2UuCgkqIGdhc3AuYzogTGlrZXdpc2UuCgkqIGxpc3RpbmcuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1pYTY0Lmg6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtdjg1MC5oOiBMaWtld2lzZS4KCjIwMDItMDUtMjQgIFRBTVVSQSBLZW50IDxrZW50QG5ldGJzZC5vcmc+CgoJKiBjb25maWd1cmUuaW46IEFkZCBhIHRhcmdldCBmb3IgaTM4Ni1uZXRic2RwZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wNS0yMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjb25maWcvb2JqLWVsZi5jIChlbGZfY29tbW9uKTogUmVuYW1lZCBmcm9tIG9ial9lbGZfY29tbW9uLgoJKG9ial9lbGZfY29tbW9uKTogQ2FsbCBlbGZfY29tbW9uLgoJKG9ial9lbGZfdGxzX2NvbW1vbik6IE5ldyBmdW5jdGlvbi4KCShlbGZfcHNldWRvX3RhYik6IFN1cHBvcnQgLnRsc19jb21tb24uCgkoc3BlY2lhbF9zZWN0aW9ucyk6IEFkZCAudGRhdGEgYW5kIC50YnNzLgoJKG9ial9lbGZfY2hhbmdlX3NlY3Rpb24pOiBTZXQgU0VDX1RIUkVBRF9MT0NBTCBmb3IgU0hGX1RMUwoJc2VjdGlvbnMuCgkob2JqX2VsZl9wYXJzZV9zZWN0aW9uX2xldHRlcnMpOiBTdXBwb3J0IFQgaW4gc2VjdGlvbiBmbGFncyAoU0hGX1RMUykuCgkob2JqX2VsZl9wYXJzZV9zZWN0aW9uX2xldHRlcnMpOiBJbmNsdWRlIFQgaW4gZXJyb3IgbWVzc2FnZS4KCSogY29uZmlnL3RjLXBwYy5jIChwcGNfc2VjdGlvbl9sZXR0ZXIpOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWFscGhhLmMgKGFscGhhX2VsZl9zZWN0aW9uX2xldHRlcik6IExpa2V3aXNlLgoJKHRjX2dlbl9yZWxvYyk6IEhhbmRsZSBTRUNfVEhSRUFEX0xPQ0FMIHRoZSBzYW1lIHdheSBhcwoJU0VDX01FUkdFLgoJKiBjb25maWcvdGMtc3BhcmMuYyAobWRfYXBwbHlfZml4Myk6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaTM4Ni5jICh0Y19pMzg2X2ZpeF9hZGp1c3RhYmxlKTogQWRkIFRMUyByZWxvY3MuCglEZWZpbmUgdGhlbSBpZiBub3QgQkZEX0FTU0VNQkxFUi4KCShsZXhfZ290KTogU3VwcG9ydCBAVExTR0QsIEBUTFNMRE0sIEBHT1RUUE9GRiwgQFRQT0ZGLCBARFRQT0ZGCglhbmQgQE5UUE9GRi4KCShtZF9hcHBseV9maXgzKTogQWRkIFRMUyByZWxvY3MuCgkqIGNvbmZpZy90Yy1pYTY0LmMgKGVudW0gcmVsb2NfZnVuYyk6IEFkZCBGVU5DX0RUUF9NT0RVTEUsCglGVU5DX0RUUF9SRUxBVElWRSwgRlVOQ19UUF9SRUxBVElWRSwgRlVOQ19MVF9EVFBfTU9EVUxFLAoJRlVOQ19MVF9EVFBfUkVMQVRJVkUsIEZVTkNfTFRfVFBfUkVMQVRJVkUuCgkocHNldWRvX2Z1bmMpOiBTdXBwb3J0IEBkdHBtb2QoKSwgQGR0cHJlbCgpIGFuZCBAdHByZWwoKS4KCShpYTY0X2VsZl9zZWN0aW9uX2xldHRlcik6IEluY2x1ZGUgVCBpbiBlcnJvciBtZXNzYWdlLgoJKG1kX2JlZ2luKTogU3VwcG9ydCBUTFMgb3BlcmF0b3JzLgoJKG1kX29wZXJhbmQpOiBMaWtld2lzZS4KCShpYTY0X2dlbl9yZWFsX3JlbG9jX3R5cGUpOiBTdXBwb3J0IFRMUyByZWxvY3MuCgkqIHdyaXRlLmMgKGFkanVzdF9yZWxvY19zeW1zKTogRG9uJ3QgY2hhbmdlIHN5bWJvbHMgaW4KCVNFQ19USFJFQURfTE9DQUwgc2VjdGlvbnMgdG8gU1RUX1NFQ1RJT04gKyBhZGRlbmQuCgoyMDAyLTA1LTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYyAobWRfYXBwbHlfZml4Myk6IEZvciB0aGUgVGh1bWIgQkxYIHJlbG9jCglyb3VuZCB0aGUgcmVsb2NhdGlvbiB1cCByYXRoZXIgdGhhbiBkb3duLgoKMjAwMi0wNS0yMyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb25maWcvb2JqLWNvZmYuYyAob2JqX2NvZmZfc2VjdGlvbik6IFNpbGVudGx5IGlnbm9yZSBhbiAnYScKCWZsYWcuCgkqIGRvYy9hcy50ZXhpbmZvOiBEb2N1bWVudCB0aGF0IHRoZSBDT0ZGIHZlcnNpb24gb2YgLnNlY3Rpb24KCWlnbm9yZXMgdGhlICdhJyBmbGFnLgoKMjAwMi0wNS0yMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1hbHBoYS5jIChhc3NlbWJsZV90b2tlbnMpOiBQcm90ZWN0IHVzZSBvZgoJQUxQSEFfUkVMT0NfVEFCTEUgd2l0aCAjaWZkZWYgUkVMT0NfT1BfUC4KCgkqIHdyaXRlLmMgKHNpemVfc2VnKTogQ2hlY2sgYWRqdXN0bWVudCB0byBsYXN0IGZyYWcuCgkoU1VCX1NFR01FTlRfQUxJR04pOiBJZiBIQU5ETEVfQUxJR04gZGVmaW5lZCwgcGFkIG91dCBsYXN0IGZyYWcgdG8KCXNlY3Rpb24gYWxpZ25tZW50LgoJKiBjb25maWcvb2JqLWNvZmYuYyAoU1VCX1NFR01FTlRfQUxJR04pOiBMaWtld2lzZS4KCSogY29uZmlnL29iai1pZWVlLmMgKFNVQl9TRUdNRU5UX0FMSUdOKTogTGlrZXdpc2UuCgkod3JpdGVfb2JqZWN0X2ZpbGUpOiBJbnZva2UgbWRfZG9fYWxpZ24gaWYgYXZhaWxhYmxlLCBhbmQgdXNlCglmcmFnX2FsaWduX2NvZGUgb24gdGV4dCBzZWN0aW9ucy4KCSogY29uZmlnL29iai12bXMuaCAoU1VCX1NFR01FTlRfQUxJR04pOiBOb3cgdHdvIGFyZ3MuCgkqIGNvbmZpZy90Yy1tODhrLmggKFNVQl9TRUdNRU5UX0FMSUdOKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1wcGMuaCAoU1VCX1NFR01FTlRfQUxJR04pOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXNoLmggKFNVQl9TRUdNRU5UX0FMSUdOKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1pMzg2LmggKFNVQl9TRUdNRU5UX0FMSUdOKTogTGlrZXdpc2UuICBEZWZpbmUgZm9yCglCRkRfQVNTRU1CTEVSIHRvby4KCjIwMDItMDUtMjIgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZHdhcmYyZGJnLmMgKGR3YXJmMl9kaXJlY3RpdmVfbG9jKTogQ2FsbCBsaXN0aW5nX3NvdXJjZV9maWxlCglmb3Igc291cmNlIGZpbGUuCgoyMDAyLTA1LTIyICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYyAoYXJtX3Nfc2VjdGlvbik6IEVuYWJsZSBmb3IgQ09GRiBidWlsZHMgYXMgd2VsbAoJYXMgRUxGIGJ1aWxkcy4KCjIwMDItMDUtMjIgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZHdhcmYyZGJnLmMgKGR3YXJmMl9lbWl0X2luc24pOiBFbWl0IG9ubHkgb25lIGxpbmUgc3ltYm9sCglmb3Igb25lIC5sb2MgZm9yIGNvbXBpbGVyLgoKMjAwMi0wNS0yMiAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1hY3JvKTogUmVsYXggd2FybmluZywgaXQncyB0b290IHN0cmljdCBmb3IKCWVtYmVkZGVkLVBJQy4KCjIwMDItMDUtMjIgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNybzIpOiBBZGQgNjQgYml0IGRyb2wsIGRyb3IgbWFjcm9zLgoJT3B0aW1pemUgdGhlIHJvdGF0ZSBieSB6ZXJvIGNhc2UuCgoyMDAyLTA1LTIxICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogUmVtb3ZlIGFjY2lkZW50YWwgZW5hYmxpbmcgb2YgYmZkX2dhcz15ZXMgZm9yCglzaC1jb2ZmIHRhcmdldHMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMDUtMTggIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBhcHAuYzogRml4IGZvcm1hdHRpbmcuCgkqIGFzLmM6IExpa2V3aXNlLgoJKiBlaG9wdC5jOiBMaWtld2lzZS4KCSogZXhwci5jOiBMaWtld2lzZS4KCSogaW5wdXQtZmlsZS5jOiBMaWtld2lzZS4KCSogbGlzdGluZy5jOiBMaWtld2lzZS4KCSogbWFjcm8uaDogTGlrZXdpc2UuCgkqIHN0YWJzLmM6IExpa2V3aXNlLgoJKiBzeW1ib2xzLmM6IExpa2V3aXNlLgoKMjAwMi0wNS0xNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy9vYmotZ2VuZXJpYy5jOiBEZWxldGUgZmlsZS4KCSogY29uZmlnL29iai1nZW5lcmljLmg6IExpa2V3aXNlLgoKMjAwMi0wNS0xNiAgTWFyZWsgTWljaGFsa2lld2ljeiAgPG1hcmVrbUBhbWVsZWsuZ2RhLnBsPgoKCSogY29uZmlnL3RjLWF2ci5jIChtY3VfdHlwZXMpOiBVcGRhdGUgZm9yIG5ldyBkZXZpY2VzLgoKMjAwMi0wNS0xNSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1hY3JvKTogV2FybiBhYm91dCB3cm9uZyBsYS9kbGEgdXNlLgoKMjAwMi0wNS0xNSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Y19taXBzLmMgKHNfY3BzZXR1cCk6IEZpeCBjb21wbGV0ZWx5IGJvZ3VzIGNvZGUgd2hpY2ggaGFkCgl3b3JrZWQgc29tZXRpbWVzIGJ5IGFjY2lkZW50LiBGaXggY29weSZwYXN0ZSBjb21tZW50LgoKMjAwMi0wNS0xNSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1kX2JlZ2luKTogRml4IC5yZWdpbmZvIGFuZCAuTUlQUy5vcHRpb24gc2VjdGlvbgoJYWxpZ25tZW50IGZvciBOZXdBQkkuIExldCBuMzIgdXNlIC5yZWdpbmZvLiBSZW1vdmUgdXNlbGVzcyBjYXN0cy4KCShtaXBzX2VsZl9maW5hbF9wcm9jZXNzaW5nKTogTGV0IG4zMiB1c2UgLnJlZ2luZm8uCgoyMDAyLTA1LTE1ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoYXBwZW5kX2luc24pOiBGaXggdG9vIHNtYWxsIHJhbmdlIG9mIHZhcmlhYmxlLgoKMjAwMi0wNS0xNCAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtYXJtLmMgKGFybV9jbGVhbnVwKTogUmVtb3ZlIHJlZHVuZGFudCBjYWxsIHRvCglsaXN0aW5nX3ByZXZfbGluZSgpLgoKMjAwMi0wNS0xMyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtYXJtLmMgKG1kX2Fzc2VtYmxlKTogUmVtb3ZlIHJlZHVuZGFudCBjYWxsIHRvCglsaXN0aW5nX3ByZXYoKS4KCgkqIGR3YXJmMmRiZy5jIChkd2FyZjJfZW1pdF9pbnNuKTogRG8gbm90IHJlc2V0Cglsb2NfZGlyZWN0aXZlX3NlZW4uCgoJKiBzdGFicy5jIChzX3N0YWJfZ2VuZXJpYyk6IEZpeCBncmFtbWF0aWNhbCBlcnJvciBpbiB3YXJuaW5nCgltZXNzYWdlLgoKMjAwMi0wNS0xMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHdyaXRlLmMgKHN1YnNlZ3NfZmluaXNoKTogRG9uJ3Qgc3BlY2lhbGx5IGFsaWduIGxhc3Qgc3Vic2VnLgoKMjAwMi0wNS0xMSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBzdGFicy5jIChzX3N0YWJfZ2VuZXJpYyk6IFdhcm4gYWJvdXQgYSBkZXNjcmlwdGlvbiBmaWVsZCB0aGF0IGlzCgl0b28gYmlnLgoKCSogY29uZmlnL29iai1jb2ZmLmM6IEZpeCBjb21waWxlIHRpbWUgd2FybmluZ3Mgd2hlbiBjb21waWxpbmcKCXdpdGhvdXQgQkZEX0FTU0VNQkxFUiBkZWZpbmVkLgoJRml4IGZvcm1hdHRpbmcuCgoJKiBjb25maWcvdGMtc2guYyAobWRfcGNyZWxfZnJvbSk6IERlZmluZSBmb3IgdXNlIHdpdGggc2gtaG1zCgl0YXJnZXQuCgkobWRfcGNyZWxfZnJvbV9zZWN0aW9uKTogVXNlIG1kX3BjcmVsX2Zyb20oKS4KCjIwMDItMDUtMTEgIEJydW5vIEhhaWJsZSAgPGJydW5vQGNsaXNwLm9yZz4KCgkqIGR3YXJmMmRiZy5jIChkd2FyZjJfZW1pdF9pbnNuKTogVXNlIHRoZSAnY3VycmVudCcgc3RydWN0IGZpbGxlZAoJYnkgZHdhcmYyX2RpcmVjdGl2ZV9sb2MsIGluc3RlYWQgb2YgY2FsbGluZyBkd2FyZjJfd2hlcmUuCgoyMDAyLTA1LTExICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY29uZmlnL29iai1jb2ZmLmg6IEZpeCBmb3JtYXR0aW5nLgoJKiBjb25maWcvdGMtbWNvcmUuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1tbjEwMzAwLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtb3BlbnJpc2MuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1vcjMyLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtcGRwMTEuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1wcGMuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1wcGMuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1zaDY0LmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtc2guYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy10aWM1NHguYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy14c3Rvcm15MTYuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy14c3Rvcm15MTYuaDogTGlrZXdpc2UuCgoyMDAyLTA1LTA5ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY29uZmlnL29iai1jb2ZmLmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBjb25maWcvb2JqLWVsZi5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWFscGhhLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtYXJtLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtZDEwdi5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWQzMHYuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1oODMwMC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWhwcGEuYzogTGlrZXdpc2UuCgoyMDAyLTA1LTA5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWkzODYuYyAobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpIERvbid0IGxvc2UKCXJlbG9jIHdoZW4gbm9fY29uZF9qdW1wX3Byb21vdGlvbi4KCjIwMDItMDUtMDggIEppbSBXaWxzb24gIDx3aWxzb25AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1pOTYwLmMgKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogUmV0dXJuIHNpemUgb2YKCWN1cnJlbnQgdmFyaWFibGUgcGFydCBvZiBmcmFnLgoKMjAwMi0wNS0wOCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNvbmZpZy90Yy1tbWl4LmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBjb25maWcvdGMtbW1peC5oOiBMaWtld2lzZS4KCjIwMDItMDUtMDggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTA1LTA3ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY29uZmlnL3RjLW02OGsuYzogRml4IGZvcm1hdHRpbmcuCgoyMDAyLTA1LTA3ICBGZWRlcmljbyBHLiBTY2h3aW5kdCA8ZmdzY2hAb2xpbXBvLmNvbS5icj4KCgkqIE1ha2VmaWxlLmFtOiBIb25vdXIgREVTVERJUi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTA1LTA2ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY29uZmlnL3RjLWlhNjQuYzogRml4IGZvcm1hdHRpbmcuCgkqIGNvbmZpZy90Yy1pYTY0Lmg6IExpa2V3aXNlLgoKMjAwMi0wNS0wNCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNvbmZpZy90Yy1taXBzLmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBjb25maWcvdGMtczM5MC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXMzOTAuaDogTGlrZXdpc2UuCgoyMDAyLTA1LTAzICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1zMzkwLmMgKG1kX2dhdGhlcl9vcGVyYW5kcyk6IEVtaXQgZHdhcmYyIGxpbmUtbnVtYmVyCglpbmZvcm1hdGlvbiBmb3IgaW5zdHJ1Y3Rpb25zLgoKMjAwMi0wNS0wMiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGFzLmg6IEZpeCBmb3JtYXR0aW5nLgoJKiBjZ2VuLmM6IExpa2V3aXNlLgoJKiBjZ2VuLmg6IExpa2V3aXNlLgoJKiBkd2FyZjJkYmcuYzogTGlrZXdpc2UuCgkqIGZyYWdzLmg6IExpa2V3aXNlLgoJKiBnYXNwLmM6IExpa2V3aXNlLgoJKiBtYWNyby5jOiBMaWtld2lzZS4KCSogcmVhZC5jOiBMaWtld2lzZS4KCSogc3RhYnMuYzogTGlrZXdpc2UuCgkqIHN5bWJvbHMuYzogTGlrZXdpc2UuCgoyMDAyLTA1LTAyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYXBwLmMgKG1yaV9wc2V1ZG8pOiBPbmx5IGRlY2xhcmUgZm9yIFRDX002OEsuCgoJKiBjb25maWcvdGMtcHBjLmMgKG1hcHBpbmcpOiBNYXAgc2VjdG9mZiB0byBCRkRfUkVMT0NfMTZfQkFTRVJFTC4KCShwcGNfZWxmX3ZhbGlkYXRlX2ZpeCk6IFJlcGxhY2UgQkZEX1JFTE9DXzMyX0JBU0VSRUwgd2l0aAoJQkZEX1JFTE9DXzE2X0JBU0VSRUwuCgkobWRfYXNzZW1ibGUpOiBMaWtld2lzZS4KCShtZF9hcHBseV9maXgzKTogTGlrZXdpc2UuCgoyMDAyLTA1LTAyICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYyAodGh1bWJfYWRkX3N1Yik6IERvIG5vdCBjb252ZXJ0IGEgc3VidHJhY3Qgb2YKCXplcm8gaW50byBhbiBhZGQgb2YgemVybyAtIGl0IGlzIG5vdCB0aGUgc2FtZS4KCjIwMDItMDUtMDEgIEFyYXRpIERpa2V5IDxhcmF0aWRAa3BpdC5jb20+CgoJKiB0Yy1zaC5jIChnZXRfc3BlY2lmaWMpOiBHZW5lcmF0ZSB3YXJuaW5nIGlmIHRoZSBzYW1lCglkZXN0aW5hdGlvbiByZWdpc3RlciBpcyB1c2VkIGluIHBhcmFsbGVsIGluc3RydWN0aW9ucy4KCjIwMDItMDUtMDEgIEFuZHJldyBNYWNsZW9kICA8YW1hY2xlb2RAY3lnbnVzLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKGV4dHJhX3N5bWJvbF9jaGFycyk6IEFkZCAnWycgdG8gdGhlIGxpc3QuCgoyMDAyLTA1LTAxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogd3JpdGUuYyAoY3Z0X2ZyYWdfdG9fZmlsbCk6IFNldCBmcl9vZmZzZXQgdG8gemVybyBvbiAub3JnCgliYWNrd2FyZHMgdG8gcHJldmVudCBjYXNjYWRpbmcgZXJyb3JzLgoKMjAwMi0wNC0zMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHN1cHBvcnQgZm9yIHBvd2VycGMtKi13aW5kaXNzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKMjAwMi0wNC0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1zMzkwLmMgKG1kX3BhcnNlX29wdGlvbik6IEZvcm1hdHRpbmcuCgoJKiBjb25maWcvdGMtaTM4Ni5jOiBGb3JtYXR0aW5nIGZpeGVzLCBhZGQgbWlzc2luZyBzcGFjZSBpbiBlcnJvcgoJbWVzc2FnZS4KCjIwMDItMDQtMjQgIENocmlzdGlhbiBHcm9lc3NsZXIgPGNocmlzQGdyb2Vzc2xlci5vcmc+CgoJKiBjb25maWcvdGMtejhrLmMgKGJ1aWxkX2J5dGVzKTogQWRkIHN1cHBvcnQgZm9yIG5ldyBjYXNlczoKCUNMQVNTX0lHTk9SRSBhbmQgQVJHX05JTTQuCgkobWRfYXNzZW1ibGUpOiBQcmV2ZW50IGRlc3RydWN0aW9uIG9mIGlucHV0X2xpbmVfcG9pbnRlciBpZgoJZ2V0X29wZXJhbmRzIHJldHVybnMgZmFpbHVyZS4KCjIwMDItMDQtMjQgIENocmlzIEcuIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNyb19idWlsZCk6IERvIF9ub3RfIGFsbG93IE1JUFMtM0QKCWluc3RydWN0aW9ucyB0byBiZSBnZW5lcmF0ZWQgYnkgbWFjcm9zLgoKMjAwMi0wNC0yNCAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKG91dHB1dF9qdW1wLCBvdXRwdXRfZGlzcCkKCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IERvbid0IHNldCBmeF9wY3JlbF9hZGp1c3QgYW55Cgltb3JlLgoJKG1kX2FwcGx5X2ZpeDMpOiBSZW1lbWJlciBhZGRlbmQgdmFsdWUgZm9yIHJlbGEgcmVsb2NhdGlvbnMuCgkodGNfZ2VuX3JlbG9jKTogQ29ycmVjdGx5IGNvbXB1dGUgcGMtcmVsYXRpdmUgcmVsb2NhdGlvbiBhZGRlbmQuCgoyMDAyLTA0LTIyICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWFjcm9fYnVpbGQpOiBBZGQgY2xvc2UtcGFyZW50aGVzaXMgbWlzc2luZwoJZnJvbSBwcmV2aW91cyBjaGFuZ2UuCgoyMDAyLTA0LTIyICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1hY3JvX2J1aWxkKTogQWRkIHdhcm5pbmcgaWYgbWFjcm8gaW5zdHJ1Y3Rpb25zCglhcmUgZXhwYW5kZWQgaW50byBhIGJyYW5jaCBkZWxheSBzbG90LgoKMjAwMi0wNC0xNyAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0ByZWRoYXQuY29tPgoKCSogZHdhcmYyZGJnLmMgKGR3YXJmMl9nZW5fbGluZV9pbmZvKTogRG8gZW1pdCBkdXBsaWNhdGUgbGluZQoJbnVtYmVycywgZ2RiIHJlbGllcyBvbiB0aGVtIHRvIGRldGVjdCB0aGUgc3RhcnQgb2YgdGhlIHByb2xvZ3VlLgoKMjAwMi0wNC0xNyAgTWFydGluIFNjaHdpZGVmc2t5ICA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy90Yy1zMzkwLmMgKHRjX3MzOTBfZml4X2FkanVzdGFibGUpOiBQcmV2ZW50IGFkanVzdG1lbnRzIHRvCglzeW1ib2xzIGluIG1lcmdlIHNlY3Rpb25zLgoKMjAwMi0wNC0xNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGFzLmMgKG1haW4pOiBEb24ndCByZWZlcmVuY2UgX2JmZF9jaHVua3NpemUuCgoyMDAyLTA0LTE1ICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWQxMHYuYyAoZDEwdl9maXhfYWRqdXN0YWJsZSk6IFByZXZlbnQgYWRqdXN0bWVudHMgdG8KCXN5bWJvbHMgaW4gbWVyZ2Ugc2VjdGlvbnMuCgoyMDAyLTA0LTExICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBkb2MvaW52b2tlLnRleGkgKFRDX0xBUkdFU1RfRVhQT05FTlRfSVNfTk9STUFMKTogRG9jdW1lbnQuCgkqIGNvbmZpZy9hdG9mLWllZWUuYyAoVENfTEFSR0VTVF9FWFBPTkVOVF9JU19OT1JNQUwpOiBBZGQgYW4KCWFyZ3VtZW50IGZvciB0aGUgcHJlY2lzaW9uLgoJKGdlbl90b193b3Jkcyk6IFVwZGF0ZSBhY2NvcmRpbmdseS4KCjIwMDItMDQtMTAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBhcy5jIChwYXJzZV9hcmdzIDxPUFRJT05fVkVSU0lPTj4pOiBVc2UgVkVSU0lPTiBpcwoJQkZEX1ZFUlNJT05fU1RSSU5HIHVuYXZhaWxhYmxlLgoJKiBjb25maWcvdGMtaTM4Ni5jIChJTkxJTkUpOiBEZWZpbmUgKGZvciBub24tQkZEIGFzc2VtYmxlcikuCgoyMDAyLTA0LTA5ICBKIm9ybiBSZW5uZWNrZSA8am9lcm4ucmVubmVja2VAc3VwZXJoLmNvbT4KCgkqIGNvbmZpZy90Yy1zaC5oIChUQ19GSVhfQURKVVNUQUJMRSk6IERpc2FibGUgYWRqdXN0aW5nIGlmCglzeW1ib2xfdXNlZF9pbl9yZWxvY19wIGlzIHRydWUuCgoJKiBjb25maWcvdGMtc2guYyAobWRfYXBwbHlfZml4Myk6IERvbid0IHplcm8gcmVsb2NhdGlvbnMgb24gYmlnCgllbmRpYW4gaG9zdHMuCgoyMDAyLTA0LTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZGVwLWluLnNlZDogQ29wZSB3aXRoIGFic29sdXRlIHBhdGhzLgoJKiBNYWtlZmlsZS5hbSAoZGVwLnNlZCk6IFN1YnN0IFRPUERJUi4KCVJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDQtMDQgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzMTZfbWFjcm9fYnVpbGQpOiBDYXN0IHR5cGUgbWlzbWF0Y2guCgkobWlwc19pcCk6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgkobWRfYXBwbHlfZml4Myk6IENhc3Qgc2lnbmVkL3Vuc2lnbmVzIG1pc21hdGNoZXMuIFJlcGxhY2UKCXVuc2lnbmVkIGNoYXIgd2l0aCBiZmRfYnl0ZS4KCShzX2ZpbGUpOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgoJKHNfbWlwc19lbnQpOiBMaWtld2lzZS4KCjIwMDItMDQtMDMgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtZDEwdi5jIChkMTB2X2luc2VydF9vcGVyYW5kKTogRml4IHdhcm5pbmcgaW4gYXNfYmFkX3doZXJlLgoJKGJ1aWxkX2luc24pOiBTYW1lLgoJKGZpbmRfb3Bjb2RlKTogRml4IHdhcm5pbmcgaW4gYXNfd2Fybi4KCSogY29uZmlnL3RjLWQxMHYuaDogVXBkYXRlIENvcHlyaWdodC4KCjIwMDItMDQtMDMgIEFsYW4gTWF0c3Vva2EgPGFsYW5tQHJlZGhhdC5jb20+CgkgICAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCglGcm9tIEplZmYgS25hZ2dzIDxqa25hZ2dzQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1kMTB2LmMgKGNoZWNrX3Jlc291cmNlX2NvbmZsaWN0KTogTmV3IGZ1bmN0aW9uIHRvCgljaGVjayBmb3IgcmVzb3VyY2UgY29uZmxpY3RzLgoKCUZyb20gSmFzb24gRWNraGFyZHQgIDxqbGVAcmVkaGF0LmNvbT4KCSogY29uZmlnL3RjLWQxMHYuYyAoYnVpbGRfaW5zbik6IENoZWNrIGZvciB1bnJlc29sdmVkIGltbTQgb3IKCWltbTMgZmllbGRzLgoJKiBjb25maWcvdGMtZDEwdi5jIChmaW5kX29wY29kZSk6IEVtaXQgYSB3YXJuaW5nIGlmIG9uZSBvZiB0aGUKCXJlc2VydmVkIGNvbnRyb2wgcmVnaXN0ZXJzIGlzIHVzZWQuCgkqIGNvbmZpZy90Yy1kMTB2LmMgKGJ1aWxkX2luc24pOiBDaGVjayBmb3IgdW5yZXNvbHZlZCBpbW00IG9yCglpbW0zIGZpZWxkcy4KCglGcm9tIDIwMDEtMDMtMjggIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoJKiB0Yy1kMTB2LmMgKHBhcmFsbGVsX29rKTogUHJldmVudCBwYWNraW5nIG9ubHkgaWYgdGhlIGZpcnN0CglpbnN0cnVjdGlvbiBjYW5ub3QgYmUgcGFja2VkLgoKCUZyb20gMjAwMS0wMy0zMCAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgkqIGdhcy9jb25maWcvdGMtZDEwdi5jIChjaGVja19yZXNvdXJjZV9jb25mbGljdCk6IE9ubHkgY2hlY2sKCXdyaXRlLXdyaXRlIGNvbmZsaWN0cy4KCShtZF9hc3NlbWJsZSk6IFJlZm9ybWF0IGludHJvZHVjdG9yeSBjb21tZW50LgoJKiBvcGNvZGVzL2QxMHYtb3BjLmMgKGQxMHZfb3Bjb2Rlcyk6IGBidHN0aScgZG9lcyBub3QgbW9kaWZ5IGl0cwoJYXJndW1lbnRzLgoKMjAwMi0wNC0wMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHN5bWJvbHMuYyAocmVzb2x2ZV9zeW1ib2xfdmFsdWUgPE9fdW1pbnVzLCBPX2JpdF9ub3QsCglPX2xvZ2ljYWxfbm90Pik6IERlcml2ZSBmaW5hbF9zZWcgZnJvbSBhZGRfc3ltYm9sLgoJPE9fbXVsdGlwbHkuLk9fbG9naWNhbF9vcj46IE1vcmUgZmluYWxfc2VnIHR3aWRkbGVzLgoKMjAwMi0wNC0wMSAgSmVzc2ljYSBIYW4gIDxqZXNzaWNhQGN1cC5ocC5jb20+CgoJKiBjb25maWcvdGMtaWE2NC5jIChpYTY0X2NvbnNfZml4X25ldyk6IEhhbmRsZSA4IGJ5dGUgaXBsdCByZWxvYwoJaW4gMzItYml0IG1vZGUuCgoyMDAyLTAzLTI3ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogY29uZmlnL3RjLWkzODYuYyAob3V0cHV0X2p1bXApOiBTZXQgZnhfcGNyZWxfYWRqdXN0IHRvIHNpemUgb2YKCWZpZWxkIGZvciBwYy1yZWxhdGl2ZSBmaXh1cHMuCgkob3V0cHV0X2Rpc3ApOiBMaWtld2lzZS4KCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IExpa2V3aXNlLgoJKHRjX2dlbl9yZWxvYyk6IFN1YnRyYWN0IGZ4X3BjcmVsX2FkanVzdCBpbnN0ZWFkIG9mIGZ4X3NpemUgZm9yCglwYy1yZWxhdGl2ZSBmaXh1cHMgaW4gNjRiaXQgbW9kZS4KCjIwMDItMDMtMjIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGUtYWl4NS5oOiBUeXBvIGZpeC4KCjIwMDItMDMtMjEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTAzLTIwICBBbGJlcnQgQ2hpbi1BLVlvdW5nICA8Y2hpbmFAdGhld3JpdHRlbndvcmQuY29tPgoKCSogY29uZmlnL3RjLWFybS5jICh2ZnBfZHBfcmVnX3JlcXVpcmVkX2hlcmUpOiBGaXggdHlwbwoJKHZmcF9zcF9yZWdfcG9zIC0+IHZmcF9kcF9yZWdfcG9zKS4KCjIwMDItMDMtMTggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiBEbyBub3QgbW9kaWZ5Cgl0aGUgRVhURU5ERUQgYml0IGhlcmU7IHJlcG9ydCB0aGUgZXN0aW1hdGUgYWNjb3JkaW5nIHRvIHRoZQoJY3VycmVudCBzaXplLgoKMjAwMi0wMy0xOCAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIEFJWCA1IHN1cHBvcnQuCgkqIGNvbmZpZy90Yy1wcGMuYyAocHBjX3RhcmdldF9mb3JtYXQpOiBBZGQgQUlYIDUgNjQgYml0IHRhcmdldC4KCSogY29uZmlnL3RlLWFpeDUuaDogTmV3IGZpbGUuIEFJWCA1IHN1cHBvcnQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMDMtMTggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcG8vZnIucG86IFVwZGF0ZWQgdmVyc2lvbi4KCjIwMDItMDMtMTYgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGRvYy9jLW1pcHMudGV4aSAoTWFjaGluZSBEZXBlbmRlbmNpZXMpOiBBZGQgbmV3IG5vZGUuCgoyMDAyLTAzLTE1ICBDaHJpcyBHLiBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19zZXRfb3B0aW9ucyk6IE5ldyAiYXNlX21pcHMzZCIgbWVtYmVyLgoJKG1pcHNfb3B0cyk6IEluaXRpYWxpemUgImFzZV9taXBzM2QiIG1lbWJlci4KCShmaWxlX2FzZV9taXBzM2QpOiBOZXcgdmFyaWFibGUuCgkoQ1BVX0hBU19NSVBTM0QpOiBOZXcgbWFjcm8uCgkobWRfYmVnaW4pOiBJbml0aWFsaXplIG1pcHNfb3B0cy5hc2VfbWlwczNkIGFuZCBmaWxlX2FzZV9taXBzM2QKCWJhc2VkIG9uIGNvbW1hbmQgbGluZSBvcHRpb25zIGFuZCBjb25maWd1cmF0aW9uIGRlZmF1bHRzLgoJKG1hY3JvX2J1aWxkLCBtaXBzX2lwKTogQWNjZXB0IE1JUFMtM0QgaW5zdHJ1Y3Rpb25zIGlmCgltaXBzX29wdHMuYXNlX21pcHMzZCBpcyBzZXQuCgkoT1BUSU9OX01JUFMzRCwgT1BUSU9OX05PX01JUFMzRCwgbWRfbG9uZ29wdHMsIG1kX3BhcnNlX29wdGlvbik6CglBZGQgc3VwcG9ydCBmb3IgIi1taXBzM2QiIGFuZCAiLW5vLW1pcHMzZCIgb3B0aW9ucy4KCShPUFRJT05fRUxGX0JBU0UpOiBNb3ZlIHRvIGFjY29tbW9kYXRlIG5ldyBvcHRpb25zLgoJKHNfbWlwc3NldCk6IFN1cHBvcnQgIi5zZXQgbWlwczNkIiBhbmQgIi5zZXQgbm9taXBzM2QiLgoJKG1pcHNfZWxmX2ZpbmFsX3Byb2Nlc3NpbmcpOiBBZGQgYSBjb21tZW50IGluZGljYXRpbmcgdGhhdCBhCglNSVBTLTNEIEFTRSBFTEYgaGVhZGVyIGZsYWcgc2hvdWxkIGJlIHNldCwgd2hlbiBvbmUgZXhpc3RzLgoJKiBkb2MvYXMudGV4aW5mbzogRG9jdW1lbnQgLW1pcHMzZCBhbmQgLW5vLW1pcHMzZCBvcHRpb25zLgoJKiBkb2MvYy1taXBzLnRleGk6IExpa2V3aXNlLCBhbmQgZG9jdW1lbnQgIi5zZXQgbWlwczNkIiBhbmQgIi5zZXQKCW5vbWlwczNkIiBkaXJlY3RpdmVzLgoKMjAwMi0wMy0xNCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogY29uZmlnL3RjLW1taXguYyAobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiBEb24ndCBjb25zaWRlcgoJYSB3ZWFrIHN5bWJvbCBpbiBzYW1lIHNlY3Rpb24gdG8gYmUgd2l0aGluIHJlYWNoLgoKMjAwMi0wMy0xMyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBwby9mci5wbzogVXBkYXRlZCB2ZXJzaW9uLgoKMjAwMi0wMy0xMiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIGNvbmZpZy90Yy1pYTY0LmMgKGZpeHVwX3Vud19yZWNvcmRzKTogQ2xlYXIgcmVnaW9uIHdoZW4gc2VlaW5nIGEKCWJvZHkgcmVjb3JkIHNvIHRoYXQgYW4gZXJyb3IgaXMgZ2l2ZW4gZm9yIG1pc3BsYWNlZCAuc2F2ZQoJcHNldWRvLW9wcy4KCjIwMDItMDMtMDkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtaTM4Ni5oIChSRVhfT1BDT0RFKTogRGVmaW5lLgoJKFJFWF9NT0RFNjQsIFJFWF9FWFRYLCBSRVhfRVhUWSwgUkVYX0VYVFopOiBEZWZpbmUuCgkocmV4X2J5dGUpOiB0eXBlZGVmIHRvIGludC4KCSogY29uZmlnL3RjLWkzODYuYzogR3JvdXAgcHJvdG90eXBlcyBhbmQgdmFycyB0b2dldGhlci4KCUZvcm1hdHRpbmcgZml4ZXMuICBSZW1vdmUgb2NjdXJyZW5jZXMgb2YgInJlZ2lzdGVyIiBrZXl3b3JkLgoJKHRydWUpOiBEZWxldGUuCgkoZmFsc2UpOiBEZWxldGUuCgkobW9kZV9mcm9tX2Rpc3Bfc2l6ZSk6IEFkZCBJTkxJTkUga2V5d29yZCB0byBwcm90b3R5cGUuCgkoZml0c19pbl9zaWduZWRfYnl0ZSk6IExpa2V3aXNlLgoJKGZpdHNfaW5fdW5zaWduZWRfYnl0ZSk6IExpa2V3aXNlLgoJKGZpdHNfaW5fdW5zaWduZWRfd29yZCk6IExpa2V3aXNlLgoJKGZpdHNfaW5fc2lnbmVkX3dvcmQpOiBMaWtld2lzZS4KCShmaXRzX2luX3Vuc2lnbmVkX2xvbmcpOiBMaWtld2lzZS4KCShmaXRzX2luX3NpZ25lZF9sb25nKTogTGlrZXdpc2UuCgkodHlwZV9uYW1lcyk6IENvbnN0aWZ5LgoJKGludGVsX2Zsb2F0X29wZXJhbmQpOiBDb25zdGlmeSBwYXJhbS4KCShhZGRfcHJlZml4KTogVXNlIFJFWF9PUENPREUuCgkobWRfYXNzZW1ibGUpOiBMaWtld2lzZS4gIE1vZGlmeSBmb3IgY2hhbmdlZCByZXhfYnl0ZS4KCShwYXJzZV9pbnNuKTogU3BsaXQgb3V0IG9mIG1kX2Fzc2VtYmxlLgoJKHBhcnNlX29wZXJhbmRzKTogTGlrZXdpc2UuCgkoc3dhcF9vcGVyYW5kcyk6IExpa2V3aXNlLgoJKG9wdGltaXplX2ltbSk6IExpa2V3aXNlLgoJKG9wdGltaXplX2Rpc3ApOiBMaWtld2lzZS4KCShtYXRjaF90ZW1wbGF0ZSk6IExpa2V3aXNlLgoJKGNoZWNrX3N0cmluZyk6IExpa2V3aXNlLgoJKHByb2Nlc3Nfc3VmZml4KTogTGlrZXdpc2UuCgkoY2hlY2tfYnl0ZV9yZWcpOiBMaWtld2lzZS4KCShjaGVja19sb25nX3JlZyk6IExpa2V3aXNlLgoJKGNoZWNrX3F3b3JkX3JlZyk6IExpa2V3aXNlLgoJKGNoZWNrX3dvcmRfcmVnKTogTGlrZXdpc2UuCgkoZmluYWxpemVfaW1tKTogTGlrZXdpc2UuCgkocHJvY2Vzc19vcGVyYW5kcyk6IExpa2V3aXNlLgoJKGJ1aWxkX21vZHJtX2J5dGUpOiBMaWtld2lzZS4KCShvdXRwdXRfaW5zbik6IExpa2V3aXNlLgoJKG91dHB1dF9icmFuY2gpOiBMaWtld2lzZS4KCShvdXRwdXRfanVtcCk6IExpa2V3aXNlLgoJKG91dHB1dF9pbnRlcnNlZ19qdW1wKTogTGlrZXdpc2UuCgkob3V0cHV0X2Rpc3ApOiBMaWtld2lzZS4KCShvdXRwdXRfaW1tKTogTGlrZXdpc2UuCgoyMDAyLTAzLTA3ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGRvYy9hcy50ZXhpbmZvOiBXcmFwIEBtZW51IGluIEBpZm5vdHRleCwgbm90IEBpZmluZm8uCgoyMDAyLTAzLTA2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWkzODYuYyAodGNfZ2VuX3JlbG9jKTogRG9uJ3QgYXR0ZW1wdCB0byBoYW5kbGUgOCBieXRlCglyZWxvY3MgZXhjZXB0IHdoZW4gQkZENjQuCgoJKiB3cml0ZS5jIChudW1iZXJfdG9fY2hhcnNfYmlnZW5kaWFuKTogRG9uJ3QgYWJvcnQgd2hlbiBOIGlzCglsYXJnZXIgdGhhbiBzaXplb2YgKFZBTCkuCgkobnVtYmVyX3RvX2NoYXJzX2xpdHRsZWVuZGlhbik6IExpa2V3aXNlLgoKMjAwMi0wMy0wNSAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlQGhpYXVseTEuaGlhLm5yYy5jYT4KCgkqIGNvbmZpZy90Yy1ocHBhLmMgKG1kX2FwcGx5X2ZpeDMpOiBBZGQgY2FzdC4KCShocHBhX2ZpeF9hZGp1c3RhYmxlKTogQWRqdXN0IGxpc3Qgb2Ygc2VsZWN0b3JzIHVzaW5nIGVfbHJzZWwgYW5kCgllX3Jyc2VsLgoKMjAwMi0wMy0wNSAgUGF1bCBLb25pbmcgIDxwa29uaW5nQGVxdWFsbG9naWMuY29tPgoKCSogdGMtcGRwMTEuYzogVXNlIFZBWCBmbG9hdCBmb3JtYXQgc3VwcG9ydCBmb3IgUERQLTExIHRhcmdldC4KCShwYXJzZV9hYzUpOiBOZXcgZnVuY3Rpb24gZm9yIHBhcnNpbmcgZmxvYXQgcmVncyBpbiBmbG9hdCBvcGVyYW5kLgoJKHBhcnNlX2V4cHJlc3Npb24pOiBSZW1vdmUgYXR0ZW1wdCB0byBtYWtlIGxpdGVyYWxzIGJlIG9jdGFsLgoJKHBhcnNlX29wX25vX2RlZmVycmVkKTogU3VwcG9ydCBmbG9hdCBsaXRlcmFscy4KCShwYXJzZV9vcCk6IFJlamVjdCBhdHRlbXB0cyB0byByZWZlciB0byBmbG9hdCByZWdzLgoJKHBhcnNlX2ZvcCk6IE5ldyBmdW5jdGlvbiwgbGlrZSBwYXJzZV9vcCBidXQgZm9yIGZsb2F0IG9wZXJhbmQuCgkobWRfYXNzZW1ibGUpOiBBZGQgY2FzZXMgdG8gcGFyc2UgZmxvYXQgb3BlcmFuZHMuICBBbHNvIGZpeAoJSU1NMywgSU1NNiwgSU1NOCBjYXNlcyB0byBwaWNrIHVwIHRoZSBvcGVyYW5kIGZyb20gdGhlIHJpZ2h0IHNwb3QuCgoyMDAyLTAzLTA0ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZy9vYmotZWxmLmMgKHNwZWNpYWxfc2VjdGlvbik6IEFkZCAuaW5pdF9hcnJheSwKCS5maW5pX2FycmF5IGFuZCAucHJlaW5pdF9hcnJheS4KCgkqIGNvbmZpZy90Yy1pYTY0LmggKEVMRl9UQ19TUEVDSUFMX1NFQ1RJT05TKTogUmVtb3ZlCgkuaW5pdF9hcnJheSBhbmQgLmZpbmlfYXJyYXkuCgoyMDAyLTAzLTAxICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9vYmotZWxmLmMgKGVsZl9jb3B5X3N5bWJvbF9hdHRyaWJ1dGVzKTogRG9uJ3QgY29weQoJdmlzaWJpbGl0eS4KCShvYmpfZnJvYl9zeW1ib2wpOiBDb3B5IHZpc2liaWxpdHkuCgoyMDAyLTAyLTI4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1hbHBoYS5jIChzX2FscGhhX3RleHQpOiBVc2Ugb2JqX2VsZl90ZXh0IGZvciBPQkpfRUxGLCBub3QKCXNfdGV4dC4KCShzX2FscGhhX2RhdGEpOiBVc2Ugb2JqX2VsZl9kYXRhIGZvciBPQkpfRUxGLCBub3Qgc19kYXRhLgoKMjAwMi0wMi0yNyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBwby9lcy5wbzogVXBkYXRlZC4KCjIwMDItMDItMjYgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzX25lZWRfZWxmX2FkZGVuZF9maXh1cCk6IEZvciBlbWJlZGRlZC1QSUMKCW9ubHksIHVuZG8gdGhlIGNoYW5nZXMgbWFkZSBvbiAyMDAxLTA2LTA4LCB3aXRoIHRoZQoJZWZmZWN0IGJlaW5nIHRoYXQgY29tbW9uIG9yIGV4dGVybiBzeW1ib2xzIGFyZQoJYWRqdXN0ZWQgZm9yIGVtYmVkZGVkLVBJQywgYnV0IHdlYWsgc3ltYm9scyBhcmUgbm90LgoJKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4OiBMaWtld2lzZSwgd2l0aCB0aGUgZWZmZWN0Cgl0aGF0IGV4dGVybiBzeW1ib2xzIGFyZSB0cmVhdGVkIHRoZSBzYW1lIGFzIHdlYWsgc3ltYm9scwoJb25seSBpZiBub3QgZW1iZWRkZWQtUElDLgoJKG1pcHNfZml4X2FkanVzdGFibGUpIExpa2V3aXNlLCB3aXRoIHRoZSBlZmZlY3QgdGhhdAoJd2VhayBvciBleHRlcm4gc3ltYm9scyBhcmUgbm90IGFkanVzdGVkIGZvciBlbWJlZGRlZC1QSUMuCgkobWRfYXBwbHlfZml4Myk6IFR3ZWFrIHNvIHRoYXQgdGhlIGNhc2Ugd2hlcmUgdmFsdWUgaXMgemVybwoJaXMgaGFuZGxlZCBtb3JlIGNvcnJlY3RseSBmb3IgZW1iZWRkZWQtUElDIGNvZGUuCgoyMDAyLTAyLTI2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGRvYy9hcy50ZXhpbmZvIChPdmVydmlldyk6IEFkZCBtaXNzaW5nIEBpZnNldCBJQTY0CgoJKiBjb25maWd1cmUuaW4gKExJTkdVQVMpOiBBZGQgZXMucG8uCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogcG8vZXMucG86IE5ldyBmaWxlLgoKMjAwMi0wMi0yNSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKHNldF9hdCk6IEZpeCBoYW5kbGluZyBvZiA2NGJpdCByZWdpc3RlciBsb2Fkcy4KCShtYWNybyk6IExpa2V3aXNlLiBGaXggbGEvZGxhIGFkZHJlc3MgZXhwYW5zaW9ucyBmb3IgRU1CRURERURfUElDCglhbmQgTk9fUElDIGNhc2VzLiBDb2RlIGNsZWFudXAuCgkobWFjcm8yKTogRml4IGhhbmRsaW5nIG9mIDY0Yml0IHJlZ2lzdGVyIGxvYWRzLgoKMjAwMi0wMi0yNSAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+CgoJKiBkb2MvYXMudGV4aW5mbzogQWRkIGVudHJ5IGZvciBJQTY0LgoJKiBkb2MvYy1pYTY0LnRleGk6IE5ldyBmaWxlLgoKMjAwMi0wMi0yNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1ocHBhLmM6IFVwZGF0ZSBjb3B5cmlnaHQgZGF0ZS4KCgkqIGRvYy9jLXBwYy50ZXhpIChQb3dlclBDLU9wdHMpOiBBZGQgLW1wb3dlcjQsIC1tYWx0aXZlYyBhbmQgLW03NDAwCglSZW1vdmUgcmVmZXJlbmNlcyB0byBjaGlwIG1hbnVmYWN0dXJlcnMuCgkqIGNvbmZpZy90Yy1wcGMuYyAobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlIC1tcG93ZXI0IG9wdGlvbi4KCUNvcnJlY3QgY29tbWVudHMuCgkobWRfc2hvd191c2FnZSk6IFJlbW92ZSByZWZlcmVuY2VzIHRvIGNoaXAgbWFudWZhY3R1cmVycy4gIE1lbnRpb24KCS1tcG93ZXI0LgoJKG1kX2JlZ2luKTogVGVzdCBwb3dlcjQgb3Bjb2RlIGZsYWcgYml0cy4KCjIwMDItMDItMjIgIERhdmlkIE1vc2JlcmdlciAgPGRhdmlkbUBocGwuaHAuY29tPgoKCSogY29uZmlnL3RjLWlhNjQuYyAoZG90X3Jlc3RvcmUpOiBJc3N1ZSBlcnJvciBtZXNzYWdlIG9mIGVwaWxvZ3VlCgljb3VudCBleGNlZWRzIHByb2xvZ3VlIGNvdW50LgoJKG1kX3Nob3dfdXNhZ2UpOiBEZXNjcmliZSAtbWNvbnN0YW50LWdwIGFuZCAtbWF1dG8tcGljLgoJKHVud2luZC5sYWJlbF9wcm9sb2d1ZV9jb3VudCk6IE5ldyBtZW1iZXIuCgoJQmFzZWQgb24gYSBwYXRjaCBieSBIYW5zIEJvZWhtIDxoYm9laG1AaHBsLmhwLmNvbT46CgoJKGdldF9zYXZlZF9wcm9sb2d1ZV9jb3VudCk6IE5ldyBmdW5jdGlvbi4KCShzYXZlX3Byb2xvZ3VlX2NvdW50KTogTmV3IGZ1bmN0aW9uLgoJKGZyZWVfc2F2ZWRfcHJvbG9ndWVfY291bnQpOiBOZXcgZnVuY3Rpb24uCgkoZG90X2xhYmVsX3N0YXRlKTogUmVjb3JkIHN0YXRlIGxhYmVsIGJ5IGNhbGxpbmcgc2F2ZV9wcm9sb2d1ZV9jb3VudCgpLgoJKGRvdF9jb3B5X3N0YXRlKTogUmVzdG9yZSBwcm9sb2d1ZSBjb3VudCBieSBjYWxsaW5nCglnZXRfc2F2ZWRfcHJvbG9ndWVfY291bnQoKS4KCShnZW5lcmF0ZV91bndpbmRfaW1hZ2UpOiBGcmVlIHVwIGxpc3Qgb2Ygc2F2ZWQgcHJvbG9ndWUKCWNvdW50cyBieSBjYWxsaW5nIGZyZWVfc2F2ZWRfcHJvbG9ndWVfY291bnRzKCkuCgoyMDAyLTAyLTIyICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy10aWM1NHguYzogQWRkIG1pc3NpbmcgcHJvdG90eXBlcyBhbmQgcmVtb3ZlIEFOU0kgc3R5bGUKCWZ1bmN0aW9uIGRlY2xhcmF0aW9ucy4KCjIwMDItMDItMjEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogTkVXUzogTm90ZSB0aGF0IEdBU1AgaXMgbm93IGRlcHJlY2F0ZWQuCgkqIE1ha2VmaWxlLmFtOiBEbyBub3QgYnVpbGQgZ2FzcC1uZXcgYnkgZGVmYXVsdC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9NYWtlZmlsZS5hbTogRG8gbm90IGluc3RhbGwgZ2FzcC5pbmZvLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGdhcy9nYXNwLnRleGk6IE5vdGUgdGhhdCBnYXNwIGlzIG5vdyBkZXByZWNhdGVkLgoKMjAwMi0wMi0yMCAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBORVdTOiBNYXJrIDIuMTIgYnJhbmNoLgoKMjAwMi0wMi0xOSAgVG9tIFRyb21leSAgPHRyb21leUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXhzdG9ybXkxNi5oIChEV0FSRjJfTElORV9NSU5fSU5TTl9MRU5HVEgpOiBEZWZpbmUuCgoyMDAyLTAyLTE5ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWRfcGFyc2Vfb3B0aW9uKTogQ29tcGxhaW4gYWJvdXQgaW52YWxpZCAtbWFiaQoJb3B0aW9uIGlucHV0LgoKMjAwMi0wMi0xOSAgTWFydGluIFNjaHdpZGVmc2t5ICA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy90Yy1zMzkwLmMgKG1kX3BhcnNlX29wdGlvbik6IEFkZCBzd2l0Y2hlcyAtbTMxIGFuZCAtbTY0LgoJTWFrZSBiaXQgc2l6ZSBpbmRlcGVuZGVudCBvZiBhcmNoaXRlY3R1cmUgc3dpdGNoLgoJKG1kX2JlZ2luKTogQWRkIHdhcm5pbmcgZm9yIC1tNjQgd2l0aCAtQWVzYS4KCShzMzkwX21kX2VuZCk6IFVzZSByZW5hbWVkIGFyY2hpdGVjdHVyZSBkZWZpbmVzLgoKMjAwMi0wMi0xOCAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBjb25maWcvb2JqLWNvZmYuaDogQ2hlY2sgIXRhcmdldF9iaWdfZW5kaWFuLCBub3Qgc2hsLCBmb3IgY29mZi1zaC4KCjIwMDItMDItMTYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogZG9jL2FzLnRleGluZm8gKE1hY2hpbmUgRGVwZW5kZW5jaWVzKTogRml4IHR5cG86IE1NSVggdXNlZAoJaW5zdGVhZCBvZiBDUklTLgoKMjAwMi0wMi0xNSAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogUmVhbGx5CgltYWtlIHN1cmUgd2UgdHJlYXQgd2VhayBsaWtlIGV4dGVybiBvbmx5IGZvciBFTEYuICAoRml4ZXMKCXBhdGNoIGZyb20gMjAwMS0wNy0yNS4pCgoyMDAyLTAyLTE1ICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGRvYy9hcy50ZXhpbmZvOiBBZGQgZHVwbGljYXRlIGRpcmVjdG9yeSBlbnRyeSBzbyB0aGF0ICJpbmZvIGdhcyIKCXdvcmtzIGFzIGV4cGVjdGVkLgoKMjAwMi0wMi0xNSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogTkVXUzogTWVudGlvbiBzdXBwb3J0IGZvciBNTUlYLgoKMjAwMi0wMi0xMyAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfbmVlZF9lbGZfYWRkZW5kX2ZpeHVwKTogUmVzdHJ1Y3R1cmUgaW50bwoJYSBzZXF1ZW5jZSBvZiBpbmRwZW5kZW50ICdpZicgc3RhdGVtZW50cyBmb3IgZWFzaWVyIGRlYnVnZ2luZwoJYW5kIGZ1dHVyZSBtb2RpZmljYXRpb24uCgoyMDAyLTAyLTEzICBNYXR0IEZyZWRldHRlICA8ZnJlZGV0dGVAbmV0YnNkLm9yZz4KCgkqIGNvbmZpZy90Yy1tNjhrLmMgKG1kX3Nob3dfdXNhZ2UpOiBObyBsb25nZXIgZGlzcGxheSBhCgloYXJkLWNvZGVkICI2ODAyMCIgZm9yIHRoZSBkZWZhdWx0IENQVSwgaW5zdGVhZCBkaXNwbGF5IHRoZQoJY2Fub25pY2FsIG5hbWUgb2YgdGhlIHRydWUsIGNvbmZpZ3VyZWQgZGVmYXVsdCBDUFUuCgkobTY4a19lbGZfZmluYWxfcHJvY2Vzc2luZyk6IE1hcmsgb2JqZWN0cyBmb3Igc3ViLTY4MDIwCglDUFVzIHdpdGggdGhlIG5ldyBFRl9NNjgwMDAgZmxhZy4KCjIwMDItMDItMTMgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJKiBjb25maWcvdGMtaTM4Ni5jICh0Y19pMzg2X2ZpeF9hZGp1c3RhYmxlKTogRG9uJ3QgYWRqdXN0CglwYy1yZWxhdGl2ZSByZWxvY2F0aW9ucyB0byBtZXJnZSBzZWN0aW9ucyBpbiA2NC1iaXQgbW9kZS4KCjIwMDItMDItMTMgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogTkVXUzogRG9jdW1lbnQgZmxvYXRpbmcgcG9pbnQgbnVtYmVyIGhhbmRsaW5nIGluIGdhc3AuCgkqIGdhc3AuYzogSW5jbHVkZSA8YXNzZXJ0Lmg+IGFuZCAieHJlZ2V4LmgiLgoJKGlzX2Zsb251bSk6IE5ldyBmdW5jdGlvbi4KCShjaGV3X2Zsb3dudW0pOiBMaWtld2lzZS4KCShjaGFuZ2VfYmFzZSk6IENvbnN1bWUgZmxvbnVtcyBmcm9tIHRoZSBpbnB1dCwgd2hlcmUgcG9zc2libGUuCgkqIGRvYy9nYXNwLnRleGkgKENvbnN0YW50cyk6IERvY3VtZW50IGZsb2F0aW5nIHBvaW50IG51bWJlcnMuCgoyMDAyLTAyLTEyICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogY29uZmlnL3RjLWhwcGEuYyAoaHBwYV9maXhfYWRqdXN0YWJsZSk6IERvbid0IGFkanVzdCBmaW5hbCB0eXBlcwoJdGhhdCBpbXBsaWNpdGx5IHVzZSBMUiBhbmQgUlIgc2VsZWN0b3JzLgoKMjAwMi0wMi0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbW4xMDMwMC5jIChvdGhlcl9yZWdpc3RlcnMpOiBBZGRlZCBgZXBzdycuICBNYXJrIGBwYycKCWFuZCBgZXBzdycgYXMgYXZhaWxhYmxlIG9uIEFNMzMgYW5kIGFib3ZlIG9ubHkuCgkob3RoZXJfcmVnaXN0ZXJfbmFtZSk6IEFkZCBsb2dpYyB0byBoYW5kbGUgbWFjaGluZSB0eXBlIGVuY29kZWQgaW4KCXJlZ19udW1iZXIuCgoyMDAyLTAyLTExICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXBwYy5jIChtZF9hcHBseV9maXgzKTogQ2hlY2sgZm9yIGluc2VydCBmb3AgaW52YWxpZCBmb3IKCXhjb2ZmNjQuCgoyMDAyLTA2LTExICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1zcGFyYy5jIChVMHg4MDAwMDAwMCwgVTB4ZmZmZmZmZmYpOiBOZXcgY29uc3RhbnRzLgoJVXNlIGFsbCBvdmVyLgoKMjAwMi0wMi0xMSAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogaTM4Ni5jIChtZF9hc3NlbWJsZSk6IFN1cHBvcnQgMzJiaXQgYWRkcmVzcyBwcmVmaXguCgkoaTM4Nl9kaXNwbGFjZW1lbnQpOiBMaWtld2lzZS4KCShpMzg2X2luZGV4X2NoZWNrKTogQWNjZXB0IDMyYml0IGFkZHJlc3NpbmcgaW4gNjRiaXQgbW9kZS4KCjIwMDItMDItMTEgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXNoLmMgKGRvdCk6IFJlbW92ZWQgdW51c2VkIGZ1bmN0aW9uLgoKMjAwMi0wMi0xMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogYWNsb2NhbC5tNDogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDItMTAgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBkb2MvYy1hbHBoYS50ZXhpOiBOZXcgZmlsZS4KCSogZG9jL01ha2VmaWxlLmFtIChDUFVfRE9DUyk6IEFkZCBpdC4KCSogZG9jL2FsbC50ZXhpLCBkb2MvYXMudGV4aW5mbzogQWRkIGhvb2tzIGZvciBBbHBoYS4KCjIwMDItMDItMDkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtYWxwaGEuYyAoT19zYW1lZ3ApOiBOZXcuCgkoVVNFUl9SRUxPQ19QKTogSW5jbHVkZSBpdC4KCShhbHBoYV9yZWxvY19vcF90YWcsIGRlYnVnX2V4cCwgZmluZF9tYWNyb19tYXRjaCk6IEFkZCBpdC4KCShtZF9hcHBseV9maXgzKTogSGFuZGxlIEJGRF9SRUxPQ19BTFBIQV9CUlNHUC4KCShhbHBoYV9mb3JjZV9yZWxvY2F0aW9uLCBhbHBoYV9maXhfYWRqdXN0YWJsZSk6IExpa2V3aXNlLgoJKGFscGhhX3ZhbGlkYXRlX2ZpeCk6IE5ldy4KCSogY29uZmlnL3RjLWFscGhhLmggKFRDX1ZBTElEQVRFX0ZJWCk6IE5ldy4KCjIwMDItMDItMDkgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogZG9jL2MtY3Jpcy50ZXhpOiBOZXcuCgkqIGRvYy9hbGwudGV4aTogQHNldCBDUklTLgoJKiBkb2MvYXMudGV4aW5mbzogRGl0dG8uICBBZGQgQ1JJUyBnYXMgbWFucGFnZSBvcHRpb24gb3ZlcnZpZXcuCglJbmNsdWRlIGMtY3Jpcy50ZXhpLgoJKiBkb2MvTWFrZWZpbGUuYW0gKENQVV9ET0NTKTogQWRkIGMtY3Jpcy50ZXhpCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDItMDggIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChJU19TRVhUXzMyQklUX05VTSk6IE5ldyBtYWNybyB0bwoJZGV0ZXJtaW5lIGlmIGEgbnVtYmVyIGlzIGEgc2lnbi1leHRlbmRlZCAzMi1iaXQgbnVtYmVyLgoJKGxvYWRfcmVnaXN0ZXIpOiBVc2UgSVNfU0VYVF8zMkJJVF9OVU0uCgkobWFjcm8pOiBDaGVjayBpZiBsb2FkL3N0b3JlIG1hY3JvIGhhbmRsaW5nIGlzIHVzaW5nIGEKCWNvbnN0YW50IDMyLWJpdCBhZGRyZXNzIG9uIDY0LWJpdCBhZGRyZXNzIHN5c3RlbXMsIGFuZCBpZgoJc28gb3B0aW1pemUgdGhlIGdlbmVyYXRpb24gb2YgdGhhdCBhZGRyZXNzLgoKMjAwMi0wMi0wOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1hbHBoYS5jIChhbHBoYV9mb3JjZV9yZWxvY2F0aW9uKTogRG9uJ3QgYXNzZXJ0IHRoYXQKCXdlJ3ZlIGVsaW1pbmF0ZWQgYWxsIGZvcmVpZ24gcmVsb2NhdGlvbiB0eXBlcyB5ZXQuCgkoYWxwaGFfZml4X2FkanVzdGFibGUpOiBMaWtld2lzZS4KCjIwMDItMDItMDggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCUNvbnRyaWJ1dGUgc2g2NC1lbGYuCgkyMDAyLTAyLTA4ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCQkgICAgU3RlcGhlbiBDbGFya2UgPFN0ZXBoZW4uQ2xhcmtlQHN0LmNvbT4KCSogZG9jL2Mtc2g2NC50ZXhpOiBGaXggY2l0YXRpb24gb2YgU0g2NCBhcmNoaXRlY3R1cmUgbWFudWFsLgoJMjAwMi0wMS0zMSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1zaC5jIChtZF9yZWxheF90YWJsZSk6IEFkZGVkIGRlZmF1bHQgc2l6ZXMgZm9yCglub24tUEMtcmVsYXRpdmUgVU5ERUZfTU9WSSwgYW5kIHJlbGF4YXRpb24gc2VxdWVuY2VzIGZvcgoJTU9WSV8xNiwgTU9WSV8zMiBhbmQgTU9WSV80OC4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2htZWRpYV9tZF9hcHBseV9maXgzKTogRml4IHdhcm5pbmcuCgkoc2htZWRpYV9tZF9jb252ZXJ0X2ZyYWcpOiBIYW5kbGUgbm9uLVBDLXJlbGF0aXZlIFVOREVGX01PVkkKCWFuZCBNT1ZJXzE2LgoJKHNobWVkaWFfbWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiBSZW1vdmUgcmVkdW5kYW50CglibG9ja3MuICBTZXQgZnJhZ1AtPmZyX3ZhciBldmVuIGlmIHJlbGF4YXRpb24gdHlwZSB1bmNoYW5nZWQuCglSZXRhaW4gVU5ERUZfTU9WSSB1bnRpbCBleHByZXNzaW9uIGRlY2F5cyB0byBudW1iZXIuCgkyMDAyLTAxLTI0ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2htZWRpYV9pbml0X3JlbG9jKTogSGFuZGxlIG5ldyBTSG1lZGlhIFBJQwoJcmVsb2NhdGlvbiB0eXBlcy4gIFRha2UgZml4UC0+ZnhfYWRkbnVtYmVyIGludG8gYWNjb3VudCB0b28uCgkoc2htZWRpYV9tZF9hcHBseV9maXgpOiBMaWtld2lzZS4KCShzaG1lZGlhX21kX2NvbnZlcnRfZnJhZyk6IExpa2V3aXNlLgoJKHNobWVkaWFfYnVpbGRfTXl0ZXMpOiBMaWtld2lzZS4KCShzaDY0X2NvbnN1bWVfZGF0YWxhYmVsKTogQ29tcGxhaW4gYWJvdXQgbmVzdGVkIGRhdGFsYWJlbC4KCVN1cHBvcnQgUElDIHJlbG9jcy4gIENhbGwgc2hfcGFyc2VfbmFtZS4KCSogY29uZmlnL3RjLXNoNjQuaCAoVENfUkVMT0NfUlRTWU1fTE9DX0ZJWFVQKTogRXh0ZW5kIGRlZmluaXRpb24KCWluIHRjLXNoLmggdG8gU0htZWRpYSByZWxvYyB0eXBlcy4KCSogY29uZmlnL3RjLXNoLmMgKFNINjRQQ1JFTFBMVCwgTU9WSV9QTFQsIE1PVklfR09UT0ZGLAoJTU9WSV9HT1RQQyk6IE5ldyByZWxheGF0aW9uIGNvbnN0YW50cy4KCShtZF9yZWxheF90YWJsZSk6IEludHJvZHVjZSByZWxheGF0aW9uIGRpcmVjdGl2ZXMgZm9yIFBJQy1yZWxhdGVkCgljb25zdGFudHMuCgkoc2hfUElDX3JlbGF0ZWRfcCk6IEhhbmRsZSBkYXRhbGFiZWwuCgkoc2hfY2hlY2tfZml4dXApOiBDaG9vc2UgU0g1IFBJQyByZWxvY2F0aW9ucy4KCShzaF9jb25zX2ZpeF9uZXcpOiBBZGRlZCBCREZfUkVMT0NfNjQuCgkobWRfYXBwbHlfZml4Mywgc2hfcGFyc2VfbmFtZSk6IEhhbmRsZSBHT1RQTFQuCgkyMDAyLTAxLTE4ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2g2NF9tYXhfbWVtX2Zvcl9yc19hbGlnbl9jb2RlKTogSWYgdGhlCgljdXJyZW50IElTQSBpcyBTSG1lZGlhLCBnZXQgNyBieXRlcy4KCTIwMDEtMTEtMjggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoJKiBjb25maWcvdGMtc2guYyAobWRfYXBwbHlfZml4Myk6IFRyZWF0IHNobWVkaWFfbWRfYXBwbHlfZml4MyBhcyBhCgl2b2lkIGZ1bmN0aW9uLgoJKiBjb25maWcvdGMtc2g2NC5jIChzaG1lZGlhX2FwcGx5X2ZpeCk6IFJlbmFtZSB0bwoJc2htZWRpYV9hcHBseV9maXgzIGFuZCBtYWtlIHZvaWQuCgkyMDAxLTA1LTE3ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYyAoc19zaDY0X2FiaSk6IFJlbW92ZSB1bnVzZWQgYXJndW1lbnRzIHBhc3NlZCB0bwoJYXNfYmFkLgoJMjAwMS0wNC0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmggKG1kX3BhcnNlX25hbWUpOiBUYWtlICZjIGFzIGFyZ3VtZW50LgoJMjAwMS0wMy0xNCAgREogRGVsb3JpZQk8ZGpAcmVkaGF0LmNvbT4KCSogZG9jL01ha2VmaWxlLmFtIChDUFVfRE9DUyk6IEFkZGVkIGMtc2g2NC50ZXhpCgkqIGRvYy9NYWtlZmlsZS5pbihDUFVfRE9DUyk6IERpdHRvLgoJKiBkb2MvYy1zaDY0LnRleGk6IE5ldyBmaWxlLgoJKiBkb2MvYXMudGV4aW5mbzogQWRkIFNINjQgc3VwcG9ydC4KCTIwMDEtMDMtMTMgIERKIERlbG9yaWUJPGRqQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNobWVkaWFfZ2V0X29wZXJhbmRzKTogUmVuYW1lIEFfUkVTVl9GeCB0bwoJQV9SRVVTRV9QUkVWIHNvIHRoYXQgaXRzIHB1cnBvc2UgaXMgbW9yZSBvYnZpb3VzLgoJKHNobWVkaWFfYnVpbGRfTXl0ZXMpOiBEaXR0by4KCTIwMDEtMDMtMDcgIERKIERlbG9yaWUJPGRqQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNoNjRfdnRhYmxlX2VudHJ5KTogTmV3LCBzdHJpcCBkYXRhbGFiZWxzCgliZWZvcmUgcHJvY2Vzc2luZy4KCShzaDY0X3Z0YWJsZV9pbmhlcml0KTogRGl0dG8uCgkoc3RyaXBfZGF0YWxhYmVscyk6IE5ldywgc3RyaXAgImRhdGFsYWJlbCIgZnJvbSBnaXZlbiBsaW5lLgoJKiBjb25maWcvdGMtc2guYyAobWRfcHNldWRvX3RhYmxlKTogQWRkIHNoNjQtc3BlY2lmaWMgdnRhYmxlCglwc2V1ZG9zLgoJMjAwMS0wMy0wNiAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2htZWRpYV9tZF9hc3NlbWJsZSk6IE1vdmUgZHdhcmYyX2VtaXRfaW5zbgoJY2FsbCAuLi4KCShzaG1lZGlhX2J1aWxkX015dGVzKTogLi4uIHRvIGhlcmUuCgkyMDAxLTAzLTA2ICBESiBEZWxvcmllCTxkakByZWRoYXQuY29tPgoJKiBjb25maWcvdGMtc2guYzogUmVtb3ZlIHNoNjQtc3BlY2lmaWMgdWFxdWFkIG5vdyB0aGF0IHRoZXJlCglpcyBhIGdlbmVyaWMgb25lLgoJMjAwMS0wMS0yMSAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCSogY29uZmlnL3RjLXNoNjQuaCAoRFdBUkYyX0xJTkVfTUlOX0lOU05fTEVOR1RIKTogT3ZlcnJpZGUuCgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNobWVkaWFfbWRfYXNzZW1ibGUpOiBPZmZzZXQgcmVjb3JkZWQgaW5zbgoJYWRkcmVzcyBieSBvbmUgaW4gY2FsbCB0byBkd2FyZjJfZW1pdF9pbnNuLgoJMjAwMS0wMS0xMyAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCUltcGxlbWVudCAiLmFiaSIgcHNldWRvIGFuZCBjb3JyZWN0IC5jcmFuZ2VzIGRlc2NyaXB0b3JzLiAgQ29ycmVjdAoJYWxpZ25tZW50IGhhbmRsaW5nIGJyb2tlbiBieSBpbXBvcnRlZCBjaGFuZ2VzLgoJKiBjb25maWcvdGMtc2g2NC5oIChIQU5ETEVfQUxJR04pOiBPdmVycmlkZSBkZWZpbml0aW9uIGluIHRjLXNoLmguCgkoc2g2NF9oYW5kbGVfYWxpZ24pOiBEZWNsYXJlLgoJKE1BWF9NRU1fRk9SX1JTX0FMSUdOX0NPREUpOiBPdmVycmlkZSBkZWZpbml0aW9uIGluIHRjLXNoLmguCgkoc2g2NF9tYXhfbWVtX2Zvcl9yc19hbGlnbl9jb2RlKTogRGVjbGFyZS4KCShlbnVtIHNoNjRfaXNhX3ZhbHVlcyk6IE1vdmVkIGhlcmUgZnJvbSB0Yy1zaDY0LmMuCgkobWRfZG9fYWxpZ24pOiBEZWZpbmUuCgkoc2g2NF9kb19hbGlnbik6IERlY2xhcmUuCgkoc3RydWN0IHNoNjRfdGNfZnJhZ19kYXRhKTogTmV3LgoJKFRDX0ZSQUdfVFlQRSk6IENoYW5nZSB0byBzdHJ1Y3Qgc2g2NF90Y19mcmFnX2RhdGEuICBVc2VycwoJY2hhbmdlZC4KCShUQ19GUkFHX0lOSVQpOiBDaGFuZ2UgdG8gc2V0IG5ldyBkYXRhdHlwZS4KCShzdHJ1Y3Qgc2g2NF9zZWdtZW50X2luZm9fdHlwZSk6IFJlbmFtZSBtZW1iZXIKCWxhc3RfZmx1c2hlZF9sb2NhdGlvbiB0byBsYXN0X2NvbnRlbnRzX21hcmsuICBBbGwgdXNlcnMgY2hhbmdlZC4KCShtZF9lbGZfc2VjdGlvbl9jaGFuZ2VfaG9vaywgVENfQ09OU19GSVhfTkVXKTogRG8gbm90IGRlZmluZS4KCShzaG1lZGlhX2VsZl9uZXdfc2VjdGlvbiwgc2g2NF90Y19jb25zX2ZpeF9uZXcpOiBEbyBub3QgcHJvdG90eXBlLgoJKiBjb25maWcvdGMtc2guYyAobWRfcHNldWRvX3RhYmxlKTogQWRkICIuYWJpIi4KCShzaF9lbGZfY29ucykgW0hBVkVfU0g2NF06IENhbGwgc2g2NF91cGRhdGVfY29udGVudHNfbWFyayBpbnN0ZWFkCglvZiB1bnNldHRpbmcgc2Vlbl9pbnNuLgoJKG1kX2Fzc2VtYmxlKSBbSEFWRV9TSDY0XSA8YmVmb3JlIG5ldyBTSGNvbXBhY3Qgc2VxdWVuY2U+OiBBbHNvCgljYWxsIHNoNjRfdXBkYXRlX2NvbnRlbnRzX21hcmsuCgkoc2hfaGFuZGxlX2FsaWduKTogUmVtb3ZlIEhBVkVfU0g2NC1jb25kaXRpb25lZCBjb2RlLgoJKiBjb25maWcvdGMtc2g2NC5jIChzaDY0X2lzYV9tb2RlKTogQ29ycmVjdCB0eXBlIGZyb20gYm9vbGVhbiB0bwoJZW51bSBzaDY0X2lzYV92YWx1ZXMuCgkoc2g2NF9zZXRfY29udGVudHNfdHlwZSk6IERyb3Agc2VnVCBwYXJhbWV0ZXIuCUFsbCBjYWxsZXJzIGNoYW5nZWQuCgkoZW1pdHRpbmdfY3JhbmdlKTogQm9vbGVhbiBndWFyZCBtb3ZlZCB0byBmaWxlIHNjb3BlIGZyb20gZnVuY3Rpb24KCXNjb3BlIGluIHNoNjRfc2V0X2NvbnRlbnRzX3R5cGUuCgkoc19zaDY0X2FiaSk6IE5ldy4KCShzaDY0X3VwZGF0ZV9jb250ZW50c19tYXJrKTogTmV3OyBtb3N0IHNwbGl0IG91dCBmcm9tCglzaDY0X2ZsdXNoX3BlbmRpbmdfb3V0cHV0LgoJKHNobWVkaWFfbWRfZW5kKTogQ2FsbCBzaDY0X3VwZGF0ZV9jb250ZW50c19tYXJrLiAgU2V0CglzaDY0X2lzYV9tb2RlIHRvIHNoNjRfaXNhX3NoNV9ndWFyZCB1bmxlc3Mgc2g2NF9pc2FfdW5zcGVjaWZpZWQuCgkoc2g2NF9kb19hbGlnbik6IE5ldyBmdW5jdGlvbi4KCShzaDY0X21heF9tZW1fZm9yX3JzX2FsaWduX2NvZGUpOiBOZXcgZnVuY3Rpb24uCgkoc2g2NF9oYW5kbGVfYWxpZ24pOiBSZW5hbWUgZnJvbSBzaG1lZGlhX2RvX2FsaWduLiAgTWFrZQoJbm9uLXN0YXRpYy4gIEFkZCBoZWFkIGNvbW1lbnQuCUVtaXQgemVybyBieXRlcyBmb3IgbiBieXRlcyBtb2R1bG8KCWZvdXIuICBDaGFuZ2UgcmV0dXJuLXR5cGUgdG8gdm9pZC4KCShzaG1lZGlhX2VsZl9uZXdfc2VjdGlvbik6IFJlbW92ZS4KCShzaG1lZGlhX21kX2Fzc2VtYmxlKTogQ2FsbCBzaDY0X3VwZGF0ZV9jb250ZW50c19tYXJrLgoJKHNfc2g2NF9tb2RlKTogRGl0dG8uICBEbyBub3QgY2FsbCBtZF9mbHVzaF9wZW5kaW5nX291dHB1dC4gIE1ha2UKCW5ldyBmcmFnLiAgQ2FsbCBzaDY0X3VwZGF0ZV9jb250ZW50c19tYXJrIGFmdGVyIG1ha2luZyB0aGUgbmV3CglmcmFnLgoJKHNoNjRfZmx1c2hfcGVuZGluZ19vdXRwdXQpOiBKdXN0IGNhbGwgc2g2NF91cGRhdGVfY29udGVudHNfbWFyawoJYW5kIHNoX2ZsdXNoX3BlbmRpbmdfb3V0cHV0LgoJKHNoNjRfZmxhZ19vdXRwdXQpOiBBbHNvIGNhbGwgbWRfZmx1c2hfcGVuZGluZ19vdXRwdXQsIGJ1dCBhZGQKCWNvbmRpdGlvbiBvbiBub3QgZW1pdHRpbmdfY3JhbmdlLgoJKHNoNjRfdGNfY29uc19maXhfbmV3KTogUmVtb3ZlLgoJMjAwMS0wMS0xMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2htZWRpYV9kb19hbGlnbik6IEZpeCB0byB3b3JrIHdpdGggbmV3CglhbGlnbm1lbnQgaGFuZGxpbmcgc2NoZW1lIGltcG9ydGVkIGZyb20gc291cmNld2FyZS4KCTIwMDEtMDEtMTIgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmggKFRBUkdFVF9GT1JNQVQpOiBEZWZpbmUuCgkoc2g2NF90YXJnZXRfZm9ybWF0KTogUHJvdG90eXBlLgoJKiBjb25maWcvdGMtc2g2NC5jIChzaDY0X3RhcmdldF9tYWNoKTogTmV3IGZ1bmN0aW9uLgoJMjAwMS0wMS0wNyAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2htZWRpYV9tZF9lbmQpOiBXaGVuIGVxdWF0aW5nIGEgc3ltYm9sLCB1c2UKCXplcm9fYWRkcmVzc19mcmFnIGluc3RlYWQgb2YgY29weWluZyB0aGUgZnJhZyBvZiB0aGUgc3ltYm9sLgoJKHNobWVkaWFfZnJvYl9maWxlX2JlZm9yZV9hZGp1c3QpOiBEaXR0by4KCShzaG1lZGlhX21kX2FwcGx5X2ZpeCkgPGNhc2UgQkZEX1JFTE9DX1NIX0lNTV9NRURMT1cxNj46IENhc3QgbWFzawoJdG8gdmFsdWVUIHRvIHJlbW92ZSBzaWduZWRuZXNzLgoJKHNobWVkaWFfbWRfY29udmVydF9mcmFnKTogQWRkIHBhcmFtZXRlciBmaW5hbC4gIFJlbmFtZSBwYXJhbWV0ZXIKCWhlYWRlcnMgdG8gb3V0cHV0X2JmZC4JRG8gbm90IGV2YWx1YXRlIHN5bWJvbHMgaWYgZmluYWwgaXMgZmFsc2U7CglkbyBlbWl0IGZpeHVwcy4KCShzaG1lZGlhX21kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KSA8Y2FzZSBDIChNT1ZJX0lNTV8zMiwKCVVOREVGX01PVkkpIGV0IGFsPjogSWYgc3ltYm9sIGNhbm5vdCBiZSBtb2RpZmllZCB0byBiZSBQQy1yZWxhdGl2ZQoJdG8gdGhlIGN1cnJlbnQgZnJhZywgY2FsbCBzaG1lZGlhX21kX2NvbnZlcnRfZnJhZyB0byBlbWl0IGZpeHVwcwoJYW5kIG1ha2UgZnJhZ193YW5lIG5ldXRyYWxpemUgdGhlIGZyYWcuICBVcGRhdGUgY29tbWVudHMuCgkqIGNvbmZpZy90Yy1zaC5jIChtZF9jb252ZXJ0X2ZyYWcpOiBDaGFuZ2UgY2FsbGVyIG9mCglzaG1lZGlhX21kX2NvbnZlcnRfZnJhZy4KCTIwMDEtMDEtMDYgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CgkqIGNvbmZpZy90Yy1zaDY0Lmg6IFR3ZWFrIGNvbW1lbnRzIGFuZCBjb3JyZWN0IGZvcm1hdHRpbmcuCgkqIGNvbmZpZy90Yy1zaDY0LmM6IERpdHRvLgoJKHNobWVkaWFfbWRfY29udmVydF9mcmFnKSA8UFQvUFRBL1BUQiAzMiwgNDggYW5kIDY0IGJpdAoJZXhwYW5zaW9uLCBNT1ZJIHBjcmVsIGV4cGFuc2lvbj46IEZpeCB0aGlua28gY2FsY3VsYXRpbmcgb2Zmc2V0Cglmb3IgdGhlIG5vLXJlbG9jYXRpb24gY2FzZS4KCShzaG1lZGlhX2NoZWNrX2xpbWl0cyk6IEZpeCByYW5nZSBjaGVjayBiZWluZyBvZmYtYnktb25lIGZvciBQVEEuCgkqIGNvbmZpZy90Yy1zaC5jOiBEaXR0by4gIEFkZCBwcm9wZXIgY29tbWVudHMgdG8gI2lmZGVmLyNpZm5kZWYKCXdyYXBwZXJzLgoJKFNINjRQQ1JFTDE2X0YpOiBJbmNyZW1lbnQgZm9yIHByb3BlciBtYXgtUFRBIGhhbmRsaW5nLiAgVXBkYXRlCgljb21tZW50LgoJKFNINjRQQ1JFTDE2X00sIE1PVklfMTZfTSk6IENvcnJlY3QgcmFuZ2UgdGhpbmtvLgoJKFNINjRQQ1JFTDQ4X00sIE1PVklfNDhfTSk6IFNpbWlsYXI7IGRvbid0IGNvdW50IGluIGxlbmd0aCBvZgoJZXhwYW5zaW9uLgoJKFNINjRQQ1JFTDMyX00sIE1PVklfMzJfTSk6IERpdHRvOyBoYW5kbGUgb3ZlcmZsb3dpbmcgZXhwcmVzc2lvbi4KCUNvcnJlY3QgY29tbWVudC4KCTIwMDEtMDEtMDUgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNobWVkaWFfbWRfYXBwbHlfZml4KSA8c2Vjb25kIHN3aXRjaCwgY2FzZQoJQkZEX1JFTE9DX1NIX1BUXzE2PjogU2V0IGxvd2VzdCBiaXQgaW4gZmllbGQgdG8gYmUgcmVsb2NhdGVkIHRvIDEuCgkoc2htZWRpYV9tZF9jb252ZXJ0X2ZyYWcpIDxjYXNlIEMgKFNINjRQQ1JFTDE2XzMyLCBTSDY0UENSRUwxNikgZXQKCWFsPjogU2V0IGxvd2VzdCBiaXQgb2YgZmllbGQgdG8gcmVsb2NhdGUgdG8gMSBhbmQgcmVzdCB0byBlbXB0eSwKCWlmIHJlbG9jIGlzIGVtaXR0ZWQuCgkyMDAwLTEyLTMxICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJTmV3IG9wdGlvbnMgcGx1cyBidWdmaXhlcy4KCSogY29uZmlnL3RjLXNoLmMgKG1kX2xvbmdvcHRzKTogTmV3IG9wdGlvbnMgIi1uby1leHBhbmQiIGFuZAoJIi1leHBhbmQtcHQzMiIuCgkobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlIG5ldyBvcHRpb25zLgoJKG1kX3Nob3dfdXNhZ2UpOiBBZGQgYmx1cmIgZm9yIG5ldyBvcHRpb25zLgoJKiBjb25maWcvdGMtc2g2NC5jIChTSE1FRElBX0JGRF9SRUxPQ19QVCk6IE5ldyBtYWNyby4KCShzaDY0X2V4cGFuZCwgc2g2NF9wdDMyKTogTmV3IHZhcmlhYmxlcy4KCShzaG1lZGlhX2luaXRfcmVsb2MpOiBIYW5kbGUgQkZEX1JFTE9DX1NIX1BUXzE2LgoJKHNobWVkaWFfbWRfYXBwbHlfZml4KTogSG9sZCBvcmlnaW5hbCBmaXhQLT5meF9yX3R5cGUgaW4KCW9yaWdfZnhfcl90eXBlLiAgQ2hhbmdlIFNITUVESUFfQkZEX1JFTE9DX1BUIGludG8KCUJGRF9SRUxPQ19TSF9QVF8xNi4gIEhhbmRsZSBCRkRfUkVMT0NfU0hfUFRfMTYgYXMgcGMtcmVsYXRpdmUuCgk8cmVzb2x2ZWQgcHJldmlvdXNseS1wYy1yZWxhdGl2ZSByZWxvY3M+OiBIYW5kbGUKCVNITUVESUFfQkZEX1JFTE9DX1BUIGFuZCBCRkRfUkVMT0NfU0hfUFRfMTYuCgkoc2htZWRpYV9tZF9jb252ZXJ0X2ZyYWcpIDxjYXNlIEMgKFNINjRQQ1JFTDE2UFRfNjQsIFNINjRQQ1JFTDE2KSwKCWNhc2UgQyAoU0g2NFBDUkVMMTZQVF8zMiwgU0g2NFBDUkVMMTYpPjogTW9kaWZ5IHRvIFBUQiBpZiBvcGVyYW5kCglwb2ludHMgdG8gU0hjb21wYWN0IGNvZGUuCgk8Y2FzZSBDIChTSDY0UENSRUwxNl8zMiwgU0g2NFBDUkVMMTYpLCBjYXNlIEMgKFNINjRQQ1JFTDE2XzY0LAoJU0g2NFBDUkVMMTYpPjogQ2hlY2sgdGhhdCBJU0Egb2Ygd2hhdCBvcGVyYW5kIHBvaW50cyBhdCBhbmQKCVBUQS9QVEIgbWF0Y2hlcywgb3IgZW1pdCBlcnJvci4KCShzaG1lZGlhX2NoZWNrX2xpbWl0cyk6IEhhbmRsZSBCRkRfUkVMT0NfU0hfUFRfMTYgYW5kCglTSE1FRElBX0JGRF9SRUxPQ19QVC4KCShzaG1lZGlhX2ltbWVkaWF0ZV9vcCk6IElmIHBjcmVsLCBlbWl0IGZpeHVwIGFsc28gZm9yIGNvbnN0YW50CglvcGVyYW5kLgoJKHNobWVkaWFfYnVpbGRfTXl0ZXMpIDxjYXNlIEFfSU1NUzE2PjogQWxzbyBjaGVjayBzaDY0X2V4cGFuZCBpbgoJY29uZGl0aW9uIGZvciBNT1ZJIGV4cGFuc2lvbi4KCTxjYXNlIEFfUENJTU1TMTZCWTQ+OiBIYW5kbGUgZXhwYW5zaW9uIHRvIDMyIGJpdHMgb25seSwgaWYKCXNoNjRfcHQzMi4gIEVtaXQgb25seSBhIEJGRF9SRUxPQ19TSF9QVF8xNiBmaXh1cCBpZiBub3QKCXNoNjRfZXhwYW5kLgoJPGNhc2UgQV9QQ0lNTVMxNkJZNF9QVD46IExpa2V3aXNlLCBidXQgZW1pdCBhIFNITUVESUFfQkZEX1JFTE9DX1BUCglmaXh1cC4KCShzaDY0X3RhcmdldF9mb3JtYXQpOiBFcnJvci1jaGVjayBzZXR0aW5nIG9mIHNoNjRfcHQzMiBhbmQKCXNoNjRfZXhwYW5kLiAgRml4IHR5cG8gaW4gY2hlY2sgZm9yIHNoNjRfc2hjb21wYWN0X2NvbnN0X2NyYW5nZS4KCShzaG1lZGlhX21kX3BjcmVsX2Zyb21fc2VjdGlvbik6IEhhbmRsZSBCRkRfUkVMT0NfU0hfUFRfMTYgYW5kCglTSE1FRElBX0JGRF9SRUxPQ19QVCBhcyBjb21pbmcgZnJvbSBTSG1lZGlhIGNvZGUuCgkyMDAwLTEyLTMxICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJKiBjb25maWcvdGMtc2g2NC5jOiBJbXByb3ZlIGNvbW1lbnRzLgoJKHNobWVkaWFfbWRfY29udmVydF9mcmFnKTogUmVtb3ZlIGluYWN0aXZlIGlzX3B0X3ZhcmlhbnQgY29kZS4JRG8KCW5vdCBzYXkgdGhlIGxpbmtlciB3aWxsIGNoZWNrIGNvcnJlY3RuZXNzIG9mIFBUQS9QVEIgZXhwYW5zaW9uLgoJKHNobWVkaWFfbWRfZW5kKTogTWFrZSBub24tc3RhdGljLgoJKiBjb25maWcvdGMtc2g2NC5oIChtZF9lbmQpOiBEZWZpbmUgdG8gc2htZWRpYV9tZF9lbmQuCUFkZAoJcHJvdG90eXBlLgoJKiBjb25maWcvdGMtc2guYyAoc2hfZmluYWxpemUpOiBSZW1vdmUuCgkqIGNvbmZpZy90Yy1zaC5oIChtZF9lbmQpOiBEbyBub3QgZGVmaW5lLgoJUmVtb3ZlIHByb3RvdHlwZSBmb3Igc2hfZmluYWxpemUuCgkyMDAwLTEyLTMwICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJKiBjb25maWcvdGMtc2g2NC5jIChzaG1lZGlhX2Zyb2Jfc2VjdGlvbl90eXBlKTogVXNlIGEgc3RydWN0CglzaDY0X3NlY3Rpb25fZGF0YSBjb250YWluZXIgd2hlbiBzdG9yaW5nIHNlY3Rpb24gdHlwZSBpbiB0ZGF0YQoJZmllbGQgaW4gZWxmX3NlY3Rpb25fZGF0YS4KCSogY29uZmlnL3RjLXNoLmMgKHNoX2VsZl9maW5hbF9wcm9jZXNzaW5nKTogQ2hhbmdlIGZyb20gRUZfU0g2NCB0bwoJRUZfU0g1LgoJKiBNYWtlZmlsZS5hbTogVXBkYXRlIGRlcGVuZGVuY2llcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkyMDAwLTEyLTIyICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJKiBjb25maWcvdGMtc2g2NC5jIChzaG1lZGlhX21kX2Fzc2VtYmxlKTogRG9uJ3QgcHJvdGVjdAoJZHdhcmYyX2VtaXRfaW5zbiBjYWxsIHdpdGggdGVzdCBvbiBkZWJ1Z190eXBlLgoJMjAwMC0xMi0xOSAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2g2NF9zZXRfY29udGVudHNfdHlwZSk6IE1ha2UgY29udGVudHMtdHlwZQoJQ1JUX1NINV9JU0EzMiBzdGlja3kgZm9yIDY0LWJpdC4KCTIwMDAtMTItMTggIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CglHZW5lcmF0ZSAuY3JhbmdlIHNlY3Rpb25zIHdoZW4gc3dpdGNoaW5nIElTQSBtb2RlIG9yIGVtaXR0aW5nCgljb25zdGFudHMgaW4gc2FtZSBzZWN0aW9uIGFzIGNvZGUuCgkqIGNvbmZpZy90Yy1zaDY0LmM6IFJlZm9ybWF0IHN0cnVjdHVyZSBkZWZpbml0aW9ucy4KCShzaDY0X2VuZF9vZl9hc3NlbWJseSwgc2g2NF9taXgsIHNoNjRfc2hjb21wYWN0X2NvbnN0X2NyYW5nZSk6IE5ldwoJdmFyaWFibGVzLgoJKHNoNjRfc2V0X2NvbnRlbnRzX3R5cGUpOiBSZW5hbWUgZnJvbSBzaDY0X2luaXRfc2VjdGlvbi4gIFJld3JpdGUKCXRvIGVtaXQgYSAuY3JhbmdlcyBkZXNjcmlwdG9yIHdoZW4gY29udGVudHMgdHlwZSBjaGFuZ2VzLiAgT25seQoJZW1pdCBlcnJvciBpZiBjaGFuZ2luZyBjb250ZW50cyB0eXBlIGFuZCAtbm8tbWl4IGlzIGluIGVmZmVjdC4KCShzaDY0X2VtaXRfY3JhbmdlLCBzaDY0X2ZsdXNoX2xhc3RfY3JhbmdlLCBzaDY0X2ZsYWdfb3V0cHV0LAoJc2g2NF9mbHVzaF9wZW5kaW5nX291dHB1dCwgc2g2NF90Y19jb25zX2ZpeF9uZXcpOiBOZXcgZnVuY3Rpb25zLgoJKHNobWVkaWFfbWRfZW5kKTogU2V0IHNoNjRfZW5kX29mX2Fzc2VtYmx5LiAgUGFzcwoJc2g2NF9mbHVzaF9sYXN0X2NyYW5nZSBvdmVyIHNlY3Rpb25zLgoJV2hlbiBjaGVja2luZyBtYWluIHN5bWJvbCBvZiBkYXRhbGFiZWwgc3ltYm9sLCBjaGVjayBmb3IKCVNUT19TSDVfSVNBMzIsIG5vdCBJU0EgdHlwZSBvZiBzZWN0aW9uIGluIGRlZmluaXRpb24uCgkoc2htZWRpYV9mcm9iX2ZpbGVfYmVmb3JlX2FkanVzdCk6IENoZWNrIG1haW4gc3ltYm9sIGZvcgoJU1RPX1NINV9JU0EzMjsgZG9uJ3QgY2hlY2sgSVNBIHR5cGUgb2Ygc2VjdGlvbiBpbiBkZWZpbml0aW9uLgoJKHNobWVkaWFfZnJvYl9zZWN0aW9uX3R5cGUpOiBBZGp1c3QgZm9yIC5jcmFuZ2VzOyBzZXQgc2VjdGlvbiBmbGFnCgl0byBTSEZfU0g1X0lTQTMyX01JWEVEIG9yIFNIRl9TSDVfSVNBMzIgYWNjb3JkaW5nIHRvIHdoZXRoZXIKCS5jcmFuZ2VzIGVudHJpZXMgaGF2ZSBiZWVuIG91dHB1dC4KCShzaG1lZGlhX2VsZl9uZXdfc2VjdGlvbik6IEp1c3QgY2FsbCBtZF9mbHVzaF9wZW5kaW5nX291dHB1dC4KCShzaG1lZGlhX21kX2Fzc2VtYmxlKTogRG8gbm90IGVtaXQgYSBCRkRfUkVMT0NfU0hfU0hNRURJQV9DT0RFCglmaXguICBEbyBub3Qgc2V0IHRjX3NlZ21lbnRfaW5mb19kYXRhLmluX2NvZGUgZm9yIHNlY3Rpb24uICBDYWxsCglzaDY0X3NldF9jb250ZW50c190eXBlIGZvciBTSG1lZGlhIGNvZGUuCgkoc19zaDY0X21vZGUpOiBEbyBub3QgY2FsbCBzaDY0X2luaXRfc2VjdGlvbiBvciBzZXQgc2Vlbl9pbnNuIHRvCglmYWxzZS4JQ2FsbCBtZF9mbHVzaF9wZW5kaW5nX291dHB1dC4KCShzaDY0X3RhcmdldF9mb3JtYXQpOiBDaGVjayB0aGF0IC1uby1taXggYW5kCgktc2hjb21wYWN0LWNvbnN0LWNyYW5nZSBhcmUgdXNlZCBpbiBzYW5lIGNvbWJpbmF0aW9uIHdpdGggb3RoZXIKCW9wdGlvbnMuCgkoc2htZWRpYV9tZF9wY3JlbF9mcm9tX3NlY3Rpb24pOiBDaGVjayB0eXBlIG9mIGZpeCBmb3IgaG93IHRvCglhZGp1c3QgcGMtcmVsYXRpdmUuCgkoc2g2NF9jb25zdW1lX2RhdGFsYWJlbCk6IENoZWNrIHN5bWJvbCBmb3IgaGF2aW5nIFNUT19TSDVfSVNBMzIsCglub3QgSVNBIHR5cGUgb2Ygc2VjdGlvbiBpbiBkZWZpbml0aW9uLgoJKiBjb25maWcvdGMtc2g2NC5oIChzdHJ1Y3Qgc2g2NF9zZWdtZW50X2luZm9fdHlwZSk6IFJld3JpdGUgdG8KCWhvbGQgY29udGVudHMtdHlwZSBzdGF0ZS4KCShtZF9mbHVzaF9wZW5kaW5nX291dHB1dCk6IFJlZGVmaW5lIHRvIHNoNjRfZmx1c2hfcGVuZGluZ19vdXRwdXQuCgkoc2g2NF9mbHVzaF9wZW5kaW5nX291dHB1dCk6IERlY2xhcmUuCgkoVENfQ09OU19GSVhfTkVXKTogRGVmaW5lIHRvIHNoNjRfdGNfY29uc19maXhfbmV3LgoJKHNoNjRfdGNfY29uc19maXhfbmV3KTogRGVjbGFyZS4KCSogY29uZmlnL3RjLXNoLmMgKHNoX2VsZl9jb25zKSBbSEFWRV9TSDY0XTogVW5zZXQgc2Vlbl9pbnNuIGFuZAoJY2FsbCBzaDY0X2ZsYWdfb3V0cHV0LgoJKG1kX2Fzc2VtYmxlKSBbSEFWRV9TSDY0XTogRG8gbm90IGVtaXQgQkZEX1JFTE9DX1NIX0NPREUuICBKdXN0CgljYWxsIHNoNjRfc2V0X2NvbnRlbnRzX3R5cGUgdG8gbWFyayBTSGNvbXBhY3QgY29kZSBhbmQgc2V0CglzZWVuX2luc24uCgkobWRfbG9uZ29wdHMpOiBOZXcgb3B0aW9ucyAiLW5vLW1peCIgYW5kCgkiLXNoY29tcGFjdC1jb25zdC1jcmFuZ2UiLgoJKG1kX3BhcnNlX29wdGlvbik6IEhhbmRsZSBuZXcgb3B0aW9ucy4KCShtZF9zaG93X3VzYWdlKTogQWRkIGJsdXJiIGZvciBuZXcgb3B0aW9ucy4KCShtZF9udW1iZXJfdG9fY2hhcnMpIFtIQVZFX1NINjRdOiBDYWxsIHNoNjRfZmxhZ19vdXRwdXQuCgkyMDAwLTEyLTE1ICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJKiBjb25maWcvdGMtc2g2NC5jOiBEZWxldGUgaW52ZXN0aWdhdGVkIGFuZCBvYnNvbGV0ZSBmaXhtZTpzLgoJKHNoNjRfbGFzdF9pbnNuX2ZyYWcpOiBOZXcuCgkoc2htZWRpYV9tZF9jb252ZXJ0X2ZyYWcpOiBVc2UgdGNfZnJhZ19kYXRhIGZpZWxkIG9mIGluY29taW5nIGZyYWcKCXRvIGdldCBmcmFnIGZvciBpbnNuIG9wY29kZSBmb3IgZ2VuZXJhdGluZyBmaXh1cHM7IGRvIG5vdCBhc3N1bWUgaXQKCWlzIHRoZSBzYW1lIGZyYWcuCgkoc2htZWRpYV9idWlsZF9NeXRlcyk6IFNldCBzaDY0X2xhc3RfaW5zbl9mcmFnIGFmdGVyIGdyb3dpbmcgZnJhZwoJZm9yIG5ldyBpbnNuLgoJKiBjb25maWcvdGMtc2g2NC5oIChFTEZfVENfU1BFQ0lBTF9TRUNUSU9OUyk6IERlZmluZSBmb3IgLmNyYW5nZXMKCXNlY3Rpb24uCgkoVENfRlJBR19UWVBFKTogRGVmaW5lIGFzIGZyYWdTICouCgkoVENfRlJBR19JTklUKTogRGVmaW5lIHRvIHNldCB0Y19mcmFnX2RhdGEgdG8gc2g2NF9sYXN0X2luc25fZnJhZy4KCShzaDY0X2xhc3RfaW5zbl9mcmFnKTogRGVjbGFyZS4KCShzaDY0X2NvbnN1bWVfZGF0YWxhYmVsKTogRml4IHR5cG87IGNoZWNrIGZvciBzZWdpbmZvICE9IE5VTEwsCglub3QgPT0gTlVMTCBiZWZvcmUgZGVyZWZlcmVuY2luZy4KCTIwMDAtMTItMTIgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CglHZXQgcmlkIG9mIEJGRCBzZWN0aW9uIGZsYWcgYW5kIEVGX1NINjRfQUJJNjQuCgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNobWVkaWFfZnJvYl9zZWN0aW9uX3R5cGUpOiBVc2UKCWVsZl9zZWN0aW9uX2RhdGEgKHNlYyktPnRkYXRhLCBub3QgYSBzcGVjaWZpYyBCRkQgc2VjdGlvbiBmbGFnLCB0bwoJY29tbXVuaWNhdGUgdGhlIHNlY3Rpb24gYXMgY29udGFpbmluZyBTSG1lZGlhIGNvZGUuICBEZXNjcmliZSB3aHkuCgkqIGNvbmZpZy90Yy1zaC5jIChzaF9lbGZfZmluYWxfcHJvY2Vzc2luZyk6IFR3ZWFrIGNvbW1lbnQuICBTZXQKCUVGX1NINjQgcmVnYXJkbGVzcyBvZiBBQkkuCgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNobWVkaWFfbWRfYXBwbHlfZml4KTogRGVjYXBpdGFsaXplICJpbnZhbGlkIgoJaW4gZXJyb3IgbWVzc2FnZS4gIEhhbmRsZSByZXNvbHZlZCBleHByZXNzaW9ucyBmb3IKCUJGRF9SRUxPQ19TSF9JTU1TMTAsIEJGRF9SRUxPQ19TSF9JTU1TMTBCWTIsCglCRkRfUkVMT0NfU0hfSU1NUzEwQlk0IGFuZCBCRkRfUkVMT0NfNjQuCgkoc2htZWRpYV9jaGVja19saW1pdHMpOiBIYW5kbGUgQkZEX1JFTE9DXzY0LgoJKHNoNjRfYWRqdXN0X3N5bXRhYik6IERvIG5vdCBkZWNyZW1lbnQgdGhlIEdBUyBzeW1ib2wgdmFsdWUgZm9yCglhIFNUT19TSDVfSVNBMzIgc3ltYm9sLCBvbmx5IHRoZSBCRkQgdmFsdWUuCgkyMDAwLTEyLTExICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYzogQ2FsbCBkd2FyZjJfZW1pdF9pbnNuLCBub3QgdGhlIGRlZnVuY3QKCWR3YXJmMl9nZW5lcmF0ZV9hc21fbGluZW5vLgoJMjAwMC0xMi0xMSAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCUhhbmRsZSBQQy1yZWxhdGl2ZSBNT1ZJIGV4cGFuc2lvbnMgd2l0aCBhc3NlbWJsZXIgcmVsYXhhdGlvbi4KCUdlbmVyYXRlIFBDLXJlbGF0aXZlIHJlbG9jcyBmcm9tIDE2LWJpdCBQQy1yZWxhdGl2ZSBleHByZXNzaW9ucy4KCSogY29uZmlnL3RjLXNoNjQuYyAoU0hNRURJQV9NRF9QQ1JFTF9GUk9NX0ZJWCk6IEJyZWFrIG91dCBmcm9tLi4uCgkoc2htZWRpYV9tZF9wY3JlbF9mcm9tX3NlY3Rpb24pOiAuLi5oZXJlLgoJKHNobWVkaWFfbWRfYXBwbHlfZml4KTogSGFuZGxlIGZpeHVwcyBmb3IgMTYtYml0IG9wZXJhbmRzIHRoYXQgaGFzCgl0dXJuZWQgY29tcGxldGVseSByZXNvbHZlZC4gIEFkanVzdCByZWxvY2F0aW9uIHR5cGUgZm9yIDE2LWJpdAoJaW1tZWRpYXRlIG9wZXJhbmRzIHRoYXQgaGFzIHR1cm5lZCBQQy1yZWxhdGl2ZS4gIEFkanVzdCBiYWNrIGZvcgoJTURfUENSRUxfRlJPTV9TRUNUSU9OIGJlaW5nIGFwcGxpZWQgdHdpY2UuCgkoc2htZWRpYV9tZF9jb252ZXJ0X2ZyYWcpOiBBbHdheXMgZW1pdCByZWxvYyBmb3IgZXhwcmVzc2lvbiB3aXRoCglnbG9iYWwgb3Igd2VhayBzeW1ib2wuCUhhbmRsZSByZWxheGF0aW9uIHJlc3VsdCBmb3IgUEMtcmVsYXRpdmUKCWV4cHJlc3Npb25zLgoJKHNobWVkaWFfbWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiBBbiBleHByZXNzaW9uIHdpdGggYSB3ZWFrCglvciBnbG9iYWwgc3ltYm9sIGNhbiBub3QgYmUgcmVsYXhlZC4gIEJyZWFrIG91dCB0ZXN0cyBmb3IKCXJlbGF4YWJsZSBzeW1ib2wgaW50byB2YXJpYWJsZSBzeW1fcmVsYXhhYmxlLgoJPGNhc2VzIEMgKE1PVklfSU1NXzY0LCBVTkRFRl9NT1ZJKSBhbmQgQyAoTU9WSV9JTU1fMzIsCglVTkRFRl9NT1ZJKT46IEJyZWFrIG91dCBhbnkgUEMtcmVsYXRpdmUgZXhwcmVzc2lvbiBhbmQgY2hhbmdlCglyZWxheGF0aW9uIHR5cGUuCgkoc2htZWRpYV9idWlsZF9NeXRlcyk6IENTRSAmb3BlcmFuZHMtPm9wZXJhbmRzW2pdIGludG8gdmFyaWFibGUKCW9wanAuCgk8Y2FzZSBBX0lNTVMxNj46IEZpeCB0eXBvIGZvciBpbml0aWFsIG1pbm9yIHJlbGF4YXRpb24gdHlwZSBvZgoJTU9WSSBleHBhbnNpb24uICBJZiBYX29wX3N5bWJvbCBvZiB0aGUgaW1tZWRpYXRlIGV4cHJlc3Npb24gaXMKCXNldCwgbWFrZSBhbiBleHByZXNzaW9uIHN5bWJvbCBmb3IgdGhlIGFyZ3VtZW50IHRvIGZyYWdfdmFyLgoJKiBjb25maWcvdGMtc2guYyAoTU9WSV9JTU1fMzJfUENSRUwsIE1PVklfSU1NXzY0X1BDUkVMKTogTmV3CglyZWxheGF0aW9ucy4KCShFTkQpOiBBZGp1c3QgZm9yIG5ldyByZWxheGF0aW9ucy4KCShtZF9yZWxheF90YWJsZSk6IEFkZCBlbnRyaWVzIGZvciBuZXcgcmVsYXhhdGlvbnMuCgkyMDAwLTEyLTA3ICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2htZWRpYV9wYXJzZV9yZWcpOiBJbml0aWFsaXplIHZhcmlhYmxlIGxlbi4KCTIwMDAtMTItMDcgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNobWVkaWFfbWRfY29udmVydF9mcmFnKTogQ29ycmVjdCBhbGwgTU9WSSBhbmQKCVNIT1JJIG9wZXJhbmQgb2Zmc2V0cyBpbiBQVC9QVEEvUFRCIGV4cGFuc2lvbnMuCgkyMDAwLTEyLTA1ICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJSW1wbGVtZW50IERhdGFMYWJlbCBzZW1hbnRpY3MuCgkqIGNvbmZpZy90Yy1zaC5jIChzaF9mcm9iX2ZpbGUpIFtIQVZFX1NINjRdOiBDYWxsCglzaG1lZGlhX2Zyb2JfZmlsZV9iZWZvcmVfYWRqdXN0LgoJKiBjb25maWcvdGMtc2g2NC5jIFshIE9CSl9FTEZdOiBFbWl0ICNlcnJvci4KCShEQVRBTEFCRUxfU1VGRklYKTogRGVmaW5lLgoJKHNobWVkaWFfbWRfZW5kKSA8YmVmb3JlIGFkanVzdGluZyBTVE9fU0g1X0lTQTMyIHN5bWJvbHM+OiBXYWxrCglzeW1ib2wgbGlzdCB0byB1cGRhdGUgImRhdGFsYWJlbCIgc3ltYm9scyB0byB0aGVpciBtYWluIHN5bWJvbAoJY291bnRlcnBhcnRzLgoJKHNobWVkaWFfZnJvYl9maWxlX2JlZm9yZV9hZGp1c3QpOiBOZXcuCgkoc2g2NF9hZGp1c3Rfc3ltdGFiKTogRm9yIHJlbWFpbmluZyBkYXRhbGFiZWwgc3ltYm9scywgc2V0IHRvCgl1bmRlZmluZWQgYW5kIHNldCBTVFRfREFUQUxBQkVMLgoJKHNoNjRfZnJvYl9sYWJlbCk6IEluaXRpYWxpemUgVEMgc3ltYm9sIGZpZWxkLgoJKHNoNjRfY29uc3VtZV9kYXRhbGFiZWwpOiBBY3R1YWxseSBpbXBsZW1lbnQgc2VtYW50aWNzLiAgTmV3CglwYXJhbWV0ZXIgb3BlcmFuZGYsIGNhbGwgaXQgaW5zdGVhZCBvZiBleHByZXNzaW9uLgoJKHNoNjRfZXhjbHVkZV9zeW1ib2wpOiBOZXcuCgkqIGNvbmZpZy90Yy1zaDY0LmggKG1kX3BhcnNlX25hbWUpOiBQYXNzIG9uIHRoZSBmdW5jdGlvbiBvcGVyYW5kCgl0byBzaDY0X2NvbnN1bWVfZGF0YWxhYmVsLgoJKHRjX3N5bWJvbF9uZXdfaG9vayk6IERlZmluZSB0byB0Y19mcm9iX3N5bWJvbC4KCShUQ19TWU1GSUVMRF9UWVBFKTogRGVmaW5lIHRvIHN5bWJvbFMgKi4KCSh0Y19mcm9iX3N5bWJvbCk6IERlZmluZSB0byBjYWxsIHNoNjRfZXhjbHVkZV9zeW1ib2wuCgkyMDAwLTEyLTAxICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJKiBjb25maWcvdGMtc2g2NC5jIChzaG1lZGlhX2luaXRfcmVsb2MpOiBUd2VhayBjb21tZW50IGZvciBkZWZhdWx0CgljYXNlLgoJKHNobWVkaWFfbWRfYXNzZW1ibGUpOiBDYWxsIGR3YXJmMl9nZW5lcmF0ZV9hc21fbGluZW5vIGlmCglnZW5lcmF0aW5nIGR3YXJmMiBkZWJ1ZyBpbmZvcm1hdGlvbi4KCTIwMDAtMTEtMzAgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNoNjRfdGFyZ2V0X2Zvcm1hdCk6IFVzZSBlbGY2NC1zaDY0bCBhbmQKCWVsZjY0LXNoNjQgZm9yIHRoZSA2NC1iaXQgQUJJLgoJKiBjb25maWcvdGMtc2guYyAobWRfc2hvd191c2FnZSk6IFR3ZWFrIHVzYWdlIG91dHB1dCBmb3IgLWFiaT0qCglvcHRpb24uCgkyMDAwLTExLTI5ICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJKiBjb25maWcvdGMtc2guYzogUmVtb3ZlIGNvbmRpdGlvbmFsaXppbmcgb24gSEFWRV9TSDY0IGZvcgoJY2FzZS1pbnNlbnNpdGl2aXR5LgoJMjAwMC0xMS0yNyAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYzogVHdlYWsgY29tbWVudHMsIGZvcm1hdHRpbmcgYW5kIGVycm9yIG1lc3NhZ2VzLgoJKGVudW0gc2g2NF9hYmlfdmFsdWVzKTogTmV3IHR5cGUuCgkoZW51bSBzaDY0X2lzYV92YWx1ZXMpOiBOZXcgdHlwZS4KCShzaDY0X2lzYV9tb2RlKTogUmVwbGFjZSBzaG1lZGlhX21vZGUuCUFsbCByZWZlcmVycyBjaGFuZ2VkLgoJKHNlZW5fc2hjb21wYWN0X21vZGUsIHNlZW5fc2htZWRpYV9tb2RlKTogRGVsZXRlLgoJKHNoNjRfYWJpKTogUmVwbGFjZSBzaG1lZGlhXzY0LgoJKHNobWVkaWFfbWRfY29udmVydF9mcmFnKSA8QyAoTU9WSV9JTU1fNjQsIE1PVklfNjQpLAoJQyAoTU9WSV9JTU1fMzIsIE1PVklfMzIpPjogQ29ycmVjdCByZWdpc3RlciBudW1iZXIgaGFuZGxpbmcuCgkoc19zaDY0X21vZGUpOiBDaGVjayB2YWxpZGl0eSBmb3IgdGhpcyB0YXJnZXQuCgkoc2g2NF90YXJnZXRfZm9ybWF0KTogSW5pdGlhbGl6ZSBkZWZhdWx0cyBmb3IgSVNBIGFuZCBBQkkuCglGYWxsYmFjayB0byBvbGQgb2JqZWN0IGZvcm1hdCBpZiBubyBTSDY0IElTQSBvciBBQkkgaGFzIGJlZW4KCXNwZWNpZmllZC4KCSogY29uZmlnL3RjLXNoLmMgKG1kX3BhcnNlX29wdGlvbik6IENoZWNrIGNvbWJpbmF0aW9ucyBmb3IgZXJyb3JzLgoJKHNoX2VsZl9maW5hbF9wcm9jZXNzaW5nKTogQ2hhbmdlIHRvIGhhdmUgRUZfU0g2NF9BQkk2NCBmb3IgNjQtYml0CglBQkkgYW5kIEVGX1NINjQgZm9yIDMyLWJpdCBBQkksIGlmIFNINjQgb3B0aW9ucyBhcmUgc3BlY2lmaWVkLgoJKiBjb25maWcvdGMtc2g2NC5oOiBGaXggdHlwbyBpbiBjb21tZW50LgoJMjAwMC0xMS0yNSAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2htZWRpYV9tZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCkKCTxQVCBmaXh1cHMgZm9yIGFic29sdXRlIHZhbHVlcz46IFNpemUgd2lsbCBiZSBsb25nZXN0LCBub3QKCXNob3J0ZXN0LgoJKHNobWVkaWFfbWRfY29udmVydF9mcmFnKTogRGlzYWJsZSBQVEItd2FybmluZyBtYWNoaW5lcnkuICBDb3JyZWN0CglhbGwgTU9WSSBhbmQgU0hPUkkgb3BlcmFuZCBvZmZzZXRzIGluIFBUL1BUQS9QVEIgZXhwYW5zaW9ucy4KCSogY29uZmlnL3RjLXNoLmMgKHBhcnNlX3JlZykgW0hBVkVfU0g2NF06IEFkZCBsb2NhbCB2YXJpYWJsZXMgbDAKCWFuZCBsMSB0byBob2xkIGxvd2VyY2FzZSBvZiB0d28gZmlyc3QgY2hhcmFjdGVycy4gIENoYW5nZSBhbGwKCXJlbWFpbmluZyBUT19MT1dFUiB0byB0b2xvd2VyLgoJKiBjb25maWcvdGMtc2g2NC5jIChUT19MT1dFUik6IERlbGV0ZS4KCShzaG1lZGlhX2ZpbmRfY29va2VkX29wY29kZSk6IFVzZSB0b2xvd2VyLCBub3QgVE9fTE9XRVIuCgkobWRfcGFyc2VfbmFtZSk6IERlZmluZS4KCShzaDY0X2NvbnN1bWVfZGF0YWxhYmVsKTogRGVjbGFyZS4KCShET0xMQVJfRE9UKTogRGVmaW5lLgoJKiBjb25maWcvdGMtc2g2NC5jIChzaG1lZGlhX3BhcnNlX2V4cCk6IE5ldy4KCShzaDY0X2NvbnN1bWVfZGF0YWxhYmVsKTogTmV3OyBqdXN0IGlnbm9yaW5nIGRhdGFsYWJlbCBzZW1hbnRpY3MuCgkoc2htZWRpYV9wYXJzZV9yZWcpOiBSZW1vdmUgY29uc3QgZnJvbSBzcmMKCXBhcmFtZXRlci4KCShzaG1lZGlhX2dldF9vcGVyYW5kcyk6IERpdHRvIGZvciBhcmdzIHBhcmFtZXRlciBhbmQgcHRyIHZhcmlhYmxlLgoJKHNobWVkaWFfbWRfYXNzZW1ibGUpOiBEaXR0byBmb3Igb3BfZW5kIHZhcmlhYmxlLgoJKHNobWVkaWFfZ2V0X29wZXJhbmQpOiBEaXR0byBmb3IgcHRyIHBhcmFtZXRlciBhbmQgc3JjIHZhcmlhYmxlLgoJVXNlIHNobWVkaWFfcGFyc2VfZXhwLCBub3QgcGFyc2VfZXhwLgoJKiBjb25maWcvdGMtc2g2NC5jIChzaG1lZGlhX3BhcnNlX3JlZyk6IEFkZCBzaG1lZGlhX2FyZ190eXBlCglwYXJhbWV0ZXIuICBBbGwgY2FsbGVycyBjaGFuZ2VkLgoJKHNobWVkaWFfZ2V0X29wZXJhbmQpOiBBZGQgc2htZWRpYV9hcmdfdHlwZSBwYXJhbWV0ZXIuCUFsbAoJY2FsbGVycyBjaGFuZ2VkLgoJKHNobWVkaWFfcGFyc2VfcmVnKTogUHV0IGZpcnN0IHR3byBjaGFyYWN0ZXIgaW4gbG9jYWwgdmFyaWFibGVzLgoJVXNlIHRvbG93ZXIsIG5vdCBUT19MT1dFUi4gIElmIG5vIHJlZ2lzdGVyIGlzIGZvdW5kIGFuZCBhcmd0eXBlCglpbmRpY2F0ZXMgYSBjb250cm9sIHJlZ2lzdGVyLCBzY2FuIHNobWVkaWFfY3JlZ190YWJsZQoJY2FzZS1pbnNlbnNpdGl2ZS4KCTIwMDAtMTEtMjQgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CgkqIE1ha2VmaWxlLmFtIChDUFVfVFlQRVMpOiBBZGQgc2g2NC4KCShUQVJHRVRfQ1BVX0NGSUxFUyk6IEFkZCBjb25maWcvdGMtc2g2NC5jLgoJKFRBUkdFVF9DUFVfSEZJTEVTKTogQWRkIGNvbmZpZy90Yy1zaDY0LmguCglSZWdlbmVyYXRlIGRlcGVuZGVuY2llcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHN1cHBvcnQgZm9yIHNoNjQtKi1lbGYqLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy90Yy1zaDY0Lmg6IE5ldy4KCSogY29uZmlnL3RjLXNoNjQuYzogTmV3LgoJKiBjb25maWcvdGMtc2guYyAobWRfcHNldWRvX3RhYmxlKSBbSEFWRV9TSDY0XTogTmV3IHBzZXVkb3MKCS5tb2RlLCAuaXNhIGFuZCAudWFxdWFkLgoJW0hBVkVfU0g2NF0gKFNINjRQQ1JFTDE2XzMyLCBTSDY0UENSRUwxNl82NCwgU0g2NFBDUkVMMTZQVF8zMiwKCVNINjRQQ1JFTDE2UFRfNjQsIE1PVklfSU1NXzMyLCBNT1ZJX0lNTV82NCk6IERlZmluZS4KCVtIQVZFX1NINjRdIChFTkQpOiBEZWZpbmUgYXMgMTAuCglbSEFWRV9TSDY0XSAoVU5ERUZfU0g2NFBDUkVMLCBTSDY0UENSRUwxNiwgU0g2NFBDUkVMMzIsCglTSDY0UENSRUw0OCwgU0g2NFBDUkVMNjQsIFVOREVGX01PVkksIE1PVklfMTYsIE1PVklfMzIsIE1PVklfNDgsCglNT1ZJXzY0KTogRGVmaW5lLgoJW0hBVkVfU0g2NF0gKFNINjRQQ1JFTDE2X0YsIFNINjRQQ1JFTDE2X00sIFNINjRQQ1JFTDE2X0xFTkdUSCwKCVNINjRQQ1JFTDMyX0YsIFNINjRQQ1JFTDMyX00sIFNINjRQQ1JFTDMyX0xFTkdUSCwgU0g2NFBDUkVMNDhfRiwKCVNINjRQQ1JFTDQ4X00sIFNINjRQQ1JFTDQ4X0xFTkdUSCwgU0g2NFBDUkVMNjRfTEVOR1RILAoJTU9WSV8xNl9MRU5HVEgsIE1PVklfMzJfTEVOR1RILCBNT1ZJXzQ4X0xFTkdUSCwgTU9WSV82NF9MRU5HVEgpOgoJRGVmaW5lLgoJKG1kX3JlbGF4X3RhYmxlKSBbSEFWRV9TSDY0XTogUHJvdmlkZSByZWxheGF0aW9ucyBmb3IgU0htZWRpYS4KCShtZF9iZWdpbikgW0hBVkVfU0g2NF06IENhbGwgc2htZWRpYV9tZF9iZWdpbi4KCShwYXJzZV9yZWcpIFtIQVZFX1NINjRdOiBQYXJzZSByZWdpc3RlciBuYW1lcyBjYXNlLWluc2Vuc2l0aXZlLgoJKG1kX2Fzc2VtYmxlKSBbSEFWRV9TSDY0XTogQ2FsbCBzaG1lZGlhX21kX2Fzc2VtYmxlIGlmIGFzc2VtYmxpbmcKCVNIbWVkaWEgaW5zdHJ1Y3Rpb25zLiAgSGFuZGxlIHN0YXRlLWNoYW5nZSBhZnRlciBzd2l0Y2hpbmcgdG8KCVNIY29tcGFjdC4KCShtZF9sb25nb3B0cykgW0hBVkVfU0g2NF06IE5ldyBvcHRpb25zIC0taXNhPSogYW5kIC0tYWJpPSouCgkobWRfcGFyc2Vfb3B0aW9uKSBbSEFWRV9TSDY0XTogUGFyc2UgbmV3IG9wdGlvbnMuCgkobWRfc2hvd191c2FnZSkgW0hBVkVfU0g2NF06IFNob3cgdXNhZ2Ugb2YgbmV3IG9wdGlvbnMuCgkobWRfY29udmVydF9mcmFnKSBbSEFWRV9TSDY0XSA8ZGVmYXVsdD46IENhbGwKCXNobWVkaWFfbWRfY29udmVydF9mcmFnIGluc3RlYWQgb2YgYWJvcnQuCgkoc2hfZm9yY2VfcmVsb2NhdGlvbikgW0hBVkVfU0g2NF06IEFsc28gZm9yY2UgcmVsb2NhdGlvbiBmb3IKCUJGRF9SRUxPQ19TSF9TSE1FRElBX0NPREUuCgkoc2hfZWxmX2ZpbmFsX3Byb2Nlc3NpbmcpIFtIQVZFX1NINjRdOiBTZXQgZmxhZ3MgaWRlbnRpZnlpbmcKCVNIY29tcGFjdCBvciBTSG1lZGlhIGNvZGUuCgkobWRfYXBwbHlfZml4KSBbSEFWRV9TSDY0XSA8ZGVmYXVsdD46IFJldHVybiByZXN1bHQgZnJvbSBjYWxsaW5nCglzaG1lZGlhX21kX2FwcGx5X2ZpeCBpbnN0ZWFkIG9mIGFib3J0LgoJKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KSBbSEFWRV9TSDY0XSA8ZGVmYXVsdD46IFJldHVybgoJcmVzdWx0IGZyb20gY2FsbGluZyBzaG1lZGlhX21kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4IGluc3RlYWQKCW9mIGNhbGxpbmcgYWJvcnQuCgkoc2hfZG9fYWxpZ24pIFtIQVZFX1NINjRdOiBJZiBzaG1lZGlhX21vZGUsIGxldCBzaG1lZGlhX2RvX2FsaWduCglkbyB0aGUgd29yay4KCSh0Y19nZW5fcmVsb2MpIFtIQVZFX1NINjRdOiBGb3IgdW5yZWNvZ25pemVkIHJlbG9jcywgY2FsbAoJc2htZWRpYV9pbml0X3JlbG9jIGFuZCBkbyBub3RoaW5nIG1vcmUgaWYgaXQgcmV0dXJucyBub24temVyby4KCShzaF9maW5hbGl6ZSkgW0hBVkVfU0g2NF06IENhbGwgc2htZWRpYV9tZF9lbmQuCgkqIHBvL1BPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoJKiBwby9nYXMucG90OiBSZWdlbmVyYXRlLgoKMjAwMi0wMi0wNiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtc2guYyAocGFyc2VfYXQpOiBJbnN0YWxsIHRoZSBjb3JyZWN0IHZlcnNpb24gb2YKCTIwMDItMDItMDQncyBwYXRjaC4KCgkqIGNvbmZpZy90Yy1zaC5jIChtZF9hcHBseV9maXgzKSA8QkZEX1JFTE9DXzMyX1BMVF9QQ1JFTD46IERvbid0Cglhc3N1bWUgZml4UC0+Znhfc3Vic3kgaXMgbm9uLU5VTEwuCgoyMDAyLTAyLTA0ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1zaC5jIChwYXJzZV9hdCk6IFNldCBhcmcgdHlwZSBvZiBAKGV4cHIscGMpIHRvCglBX0RJU1BfUENfQUJTLCBhbmQgYWRqdXN0IGl0IGJ5IC00LgoJKGdldF9zcGVjaWZpYyk6IEFjY2VwdCBBX0RJU1BfUENfQUJTIHdoZXJlIEFfRElTUF9QQyBpcwoJZXhwZWN0ZWQuCgkoYnVpbGRfTXl0ZXMpOiBNYXJrIFBDUkVMSU1NIGZpeC11cHMgYXMgcGMtcmVsYXRpdmUgb25seSBpZgoJdGhlIG9wZXJhbmQgdHlwZSBpcyBub3QgQV9ESVNQX1BDX0FCUy4KCjIwMDItMDItMDQgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGNvbmZpZy90Yy1tbWl4LmMgKHRjX2dlbl9yZWxvYyk6IERvbid0IHRyeSBhbmQgdGFrZSB0aGUgdmFsdWUgb2YKCWNvbW1vbiBhbmQgd2VhayBzeW1ib2xzLiAgSGFuZGxlIGNvbW1vbiBhbmQgd2VhayBzeW1ib2xzIGFzCgl1bmRlZmluZWQgc3ltYm9scyB3aXRoIHJlZ2FyZHMgdG8gR1JFRyBoYW5kbGluZyBhbmQgbWVyZ2luZy4KCShtbWl4X2Zyb2JfZmlsZSk6IERpdHRvLgoKMjAwMi0wMi0wMiAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoaHBwYS0qLW5ldGJzZCopOiBOZXcgdGFyZ2V0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy90Yy1ocHBhLmg6IEFsc28gZGVmaW5lIFdBUk5fQ09NTUVOVFMgaWYgVEVfTmV0QlNELgoKMjAwMi0wMi0wMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy12ODUwLmM6IEFkZCBtaXNzaW5nIHByb3RvdHlwZXMgYW1kIHVzZSBvbGQtc3R5bGUKCWZ1bmN0aW9uIGRlZmluaXRpb25zLgoJKEFSRUFfWkRBLCBBUkVBX1NEQSwgQVJFQV9UREEpOiBEZWxldGUuCgkoc2RhdGFfc2VjdGlvbiB0ZGF0YV9zZWN0aW9uLCB6ZGF0YV9zZWN0aW9uLCBzYnNzX3NlY3Rpb24sCgl0YnNzX3NlY3Rpb24sIHpic3Nfc2VjdGlvbiwgcm9zZGF0YV9zZWN0aW9uLCByb3pkYXRhX3NlY3Rpb24sCglzY29tbW9uX3NlY3Rpb24sIHRjb21tb25fc2VjdGlvbiwgemNvbW1vbl9zZWN0aW9uLAoJY2FsbF90YWJsZV9kYXRhX3NlY3Rpb24sIGNhbGxfdGFibGVfdGV4dF9zZWN0aW9uKTogRGVsZXRlLgoJKHY4NTBfc2RhdGEsIHY4NTBfdGRhdGEsIHY4NTBfemRhdGEsIHY4NTBfc2Jzcywgdjg1MF90YnNzLAoJdjg1MF96YnNzLCB2ODUwX2Jzcywgdjg1MF9yb3NkYXRhLCB2ODUwX3JvemRhdGEsCgl2ODUwX2NhbGxfdGFibGVfZGF0YSwgdjg1MF9jYWxsX3RhYmxlX3RleHQpOiBEZWxldGUuCgkoc3RydWN0IHY4NTBfc2VnX2VudHJ5KTogTmV3LgoJKHY4NTBfc2VnX3RhYmxlKTogTmV3LgoJKFNEQVRBX1NFQ1RJT04gVERBVEFfU0VDVElPTiwgWkRBVEFfU0VDVElPTiwgU0JTU19TRUNUSU9OLAoJVEJTU19TRUNUSU9OLCBaQlNTX1NFQ1RJT04sIEJTU19TRUNUSU9OLCBST1NEQVRBX1NFQ1RJT04sCglST1pEQVRBX1NFQ1RJT04sIFNDT01NT05fU0VDVElPTiwgVENPTU1PTl9TRUNUSU9OLCBaQ09NTU9OX1NFQ1RJT04sCglDQUxMX1RBQkxFX0RBVEFfU0VDVElPTiwgQ0FMTF9UQUJMRV9URVhUX1NFQ1RJT04pOiBEZWZpbmUuCgkoZG9fdjg1MF9zZWcpOiBOZXcuCgkodjg1MF9zZWcpOiBOZXcuCgkodjg1MF9jb21tKTogVXNlIGRvX3Y4NTBfc2VnIGFuZCB2ODUwX3NlZ190YWJsZS4gIFNpbXBsaWZ5CglyZWNvcmRpbmcgb2YgYWxpZ25tZW50LgoJKG1kX3BzZXVkb190YWJsZSk6IFVzZSB2ODUwX3NlZy4KCShtZF9iZWdpbik6IERvbid0IGluaXQgLmNhbGxfdGFibGVfZGF0YSBhbmQgLmNhbGxfdGFibGVfdGV4dCBoZXJlLgoJU2V0IHY4NTBfc2VnX3RhYmxlIGJzcyBlbnRyeS4KCjIwMDItMDItMDEgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCglTdXBwb3J0IG9uLWRlbWFuZCBnbG9iYWwgcmVnaXN0ZXIgYWxsb2NhdGlvbiBieSBwYXNzaW5nIG9uCgliYXNlLXBsdXMtb2Zmc2V0IHJlbG9jcyB0byB0aGUgbGlua2VyLgoJKiBjb25maWcvdGMtbW1peC5jOiBUd2VhayBhbmQgZml4IHR5cG9zIGluIGNvbW1lbnRzLgoJKGFsbG9jYXRlX3VuZGVmaW5lZF9ncmVnc19pbl9saW5rZXIpOiBOZXcgdmFyaWFibGUuCgkoT1BUSU9OX0xJTktFUl9BTExPQ0FURURfR1JFR1MpOiBOZXcgb3B0aW9uIG1hY3JvLgoJKG1kX2xvbmdvcHRzKTogQWRkIC0tbGlua2VyLWFsbG9jYXRlZC1ncmVncy4KCShtZF9wYXJzZV9vcHRpb24pIDxjYXNlICd4Jz46IEltcGx5IC0tbGlua2VyLWFsbG9jYXRlZC1ncmVncy4KCTxjYXNlIE9QVElPTl9MSU5LRVJfQUxMT0NBVEVEX0dSRUdTPjogTmV3LgoJKG1kX3Nob3dfdXNhZ2UpOiBVcGRhdGUgdGV4dCBmb3IgLXguICBBZGQgdGV4dCBmb3IKCS0tbGlua2VyLWFsbG9jYXRlZC1ncmVncy4KCSh0Y19nZW5fcmVsb2MpOiBEZXJpdmUgZGVmYXVsdCB2YWx1ZSBmb3IgYWRkZW5kIGZyb20gdmFsIGFuZAoJYmFkZHN5LiAgVXNlIGFkZHNlYyBhbmQgYmZkX2lzX2Fic19zZWN0aW9uIGluIG1vcmUgcGxhY2VzLiAgRG9uJ3QKCWVtaXQgZXJyb3IgZm9yIEJGRF9SRUxPQ19NTUlYX0JBU0VfUExVU19PRkZTRVQgd2l0aG91dCBzdWl0YWJsZQoJR1JFRyBpZiBhbGxvY2F0ZV91bmRlZmluZWRfZ3JlZ3NfaW5fbGlua2VyLgoJKiBkb2MvYXMudGV4aW5mbyAoT3ZlcnZpZXcpIDxUYXJnZXQgTU1JWCBvcHRpb25zPjogQWRkCgktLWxpbmtlci1hbGxvY2F0ZWQtZ3JlZ3MuCgkqIGRvYy9jLW1taXgudGV4aSAoTU1JWC1PcHRzKTogQWRkIGJsdXJiIGFib3V0CgktLWxpbmtlci1hbGxvY2F0ZWQtZ3JlZ3MuICBNZW50aW9uIHRoYXQgaXQncyBpbXBsaWVkIGJ5IC14LgoJKE1NSVgtUHNldWRvcykgPEdSRUc+OiBNZW50aW9uIHdoZW4gYW5kIGhvdyBhIEdSRUcgY2FuIGJlIG9taXR0ZWQuCgkoTU1JWC1tbWl4YWwpOiBDbGFyaWZ5IGRhdGVkIGNvbXBhcmlzb24gYW5kIGxvY2F0aW9uIG9mIE1NSVh3YXJlLgoKCSogY29uZmlnL3RjLW1taXguaCAobWRfcGFyc2VfbmFtZSk6IFVzZSBJU1VQUEVSLCBub3QgaXN1cHBlci4KCjIwMDItMDItMDEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIKCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTAxLTMxICBJdmFuIEd1enZpbmVjICA8aXZhbmdAb3BlbmNvcmVzLm9yZz4KCgkqIGNvbmZpZy90Yy1vcjMyLmM6IE5ldyBmaWxlLgoJKiBjb25maWcvdGMtb3IzMi5oOiBOZXcgZmlsZS4KCSogY29uZmlndXJlLmluOiBBZGQgc3VwcG9ydCBmb3Igb3IzMiB0YXJnZXRzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy9vYmotY29mZi5jOiBBZGQgc3VwcG9ydCBmb3Igb3IzMiB0YXJnZXRzLgoJKiBjb25maWcvb2JqLWNvZmYuaDogQWRkIHN1cHBvcnQgZm9yIG9yMzIgdGFyZ2V0cy4KCSogTWFrZWZpbGUuYW06IEFkZCBzdXBwb3J0IGZvciBvcjMyIHRhcmdldHMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBORVdTOiBNZW50aW9uIHN1cHBvcnQgZm9yIE9wZW5SSVNDLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL1BPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoJKiBwby9nYXMucG90OiBSZWdlbmVyYXRlLgoKMjAwMi0wMS0zMCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXNoLmMgKHBhcnNlX3JlZyk6IEZpeCBlbmQtb2Ytd29yZCBjaGVjayBmb3IgaXMsIGl4LCBpeQoJYW5kIG1vZC4KCjIwMDItMDEtMjkgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jICh0Y19nZW5fcmVsb2MpOiBBcnJhbmdlIGZvcgoJQkZEX1JFTE9DX1BDUkVMX0hJMTZfUyByZWxvY2F0aW9ucyB0byBiZSBvdXRwdXQgcmVsYXRpdmUgdG8KCXRoZWlyIExPMTYgcGFydHMsIGV2ZW4gZm9yIEVMRi4KCjIwMDItMDEtMjkgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYzogUHJvdGVjdCBkZWZpbml0aW9ucyBvZiB0cnVlIGFuZCBmYWxzZQoJZnJvbSByZWRlZmluaXRpb24uCgoyMDAyLTAxLTI4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9vYmotZWxmLmMgKGVsZl9mcm9iX2ZpbGVfYmVmb3JlX2FkanVzdCk6IFJlbW92ZSBzeW1ib2xzCgltYWRlIGJlY2F1c2Ugb2YgLndlYWssIGlmIHRoZXkgYXJlIG5laXRoZXIgZGVmaW5lZCBub3IgdXNlZCBpbiBhbnkKCXdheS4KCjIwMDItMDEtMjcgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCjIwMDItMDEtMjYgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGRvYy9NYWtlZmlsZS5hbSAoaW5zdGFsbCk6IERlcGVuZCBvbiBpbnN0YWxsLWluZm8uCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDEtMjYgIE5pY2sgQ2xpZnRvbiA8bmlja0ByZWRoYXQuY29tPgoKCSogcG8vZnIucG86IFVwZGF0ZWQgdmVyc2lvbgoKMjAwMi0wMS0yNCAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBjb25maWcvdGMtaDgzMDAuYyAoY2hlY2tfb3BlcmFuZCk6IERvbid0IHByaW50IGEgd2FybmluZwoJd2hlbiBhIHZhbGlkIDI0LWJpdCBhZGRyZXNzIGlzIGdpdmVuIHRvIGEgMTYtYml0IGFkZHJlc3MKCW9wZXJhbmQuCgoyMDAyLTAxLTI0ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1zaC5jIChzaF9lbGZfc3VmZml4KTogUmVtb3ZlZC4KCShzaF9QSUNfcmVsYXRlZF9wLCBzaF9jaGVja19maXh1cCwgc2hfY29uc19maXhfbmV3LAoJc2hfZW5kX29mX21hdGNoLCBzaF9wYXJzZV9uYW1lKTogTmV3IGZ1bmN0aW9ucy4KCShzaF9lbGZfY29ucyk6IFNpbXBsaWZ5LgoJKHBhcnNlX2V4cCk6IFJlamVjdCBtaXNwbGFjZWQgUElDIG9wZXJhbmRzLgoJKG1kX3VuZGVmaW5lZF9zeW1ib2wpOiBTaW1wbGlmeS4KCShzaF9maXhfYWRqdXN0YWJsZSk6IExldCBAR09UT0ZGIGJlIGFkanVzdGVkLgoJKG1kX2FwcGx5X2ZpeDMpOiBXcml0ZSBAUExUIGFuZCBAR09UT0ZGIGFkZGVuZHMgaW4gcGxhY2UuCgkodGNfZ2VuX3JlbG9jKTogTW92ZSBmaXhwIHN1YnN5IGFic29sdXRlIHZhbHVlIGludG8gYWRkbnVtYmVyLgoJQ29tcGxhaW4gaWYgc3Vic3kgcmVtYWlucyBhdCB0aGUgZW5kLgoJKiBjb25maWcvdGMtc2guaCAoc2hfcGFyc2VfbmFtZSwgc2hfY29uc19maXhfbmV3KTogRGVjbGFyZS4KCShtZF9wYXJzZV9uYW1lLCBUQ19DT05TX0ZJWF9ORVcsIE9fUElDX3JlbG9jKTogRGVmaW5lLgoKMjAwMi0wMS0yMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbW4xMDMwMC5jICh4cl9yZWdpc3RlcnMpOiBNb3ZlIGBwYycuLi4KCShvdGhlcl9yZWdpc3RlcnMpOiAuLi4gaGVyZS4KCjIwMDItMDEtMjIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBnYXMvcG8vUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTAxLTIxICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9vYmotY29mZi5jIChvYmpfY29mZl9pbml0X3N0YWJfc2VjdGlvbik6IE1ha2UgdGhlCglzdGFic3RyX25hbWUgYWxsb2NhdGlvbiBwZXJtYW5lbnQsIGFzIGl0IHdpbGwgYmUgcmVmZXJlbmNlZCBmcm9tCgl0aGUgc2VjdGlvbiBoYXNoLgoKMjAwMi0wMS0yMSAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoaWE2NC0qLW5ldGJzZCopOiBOZXcgdGFyZ2V0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTAxLTIxICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBkb2MvYXMudGV4aW5mbyAoT3ZlcnZpZXcpIDxUYXJnZXQgQVJNIG9wdGlvbnM+OiBBZGQgbWlzc2luZyB7fQoJdG8gQGRvdHMgY2FsbC4KCTxEZXRhaWxlZCBkZXNjcmlwdGlvbiwgQVJNIG9wdGlvbnM+OiBEaXR0by4KCSogZG9jL2MtYXJtLnRleGkgKEFSTSBPcHRpb25zKTogRGl0dG8uCgoyMDAyLTAxLTE4ICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCgkqIHRjLWFybS5jIChkb194c2NfbWlhLCBkb194c2NfbWFyLCBkb194c2NfbXJhKTogUmVuYW1lZCBmcm9tCglkb19taWEsIGRvX21hciBhbmQgZG9fbXJhIHJlc3BlY3RpdmVseS4KCShkb19tYXZfKik6IFJlbmFtZWQgZnJvbSBkb19jXyouCgkobWF2X3JlZ19yZXF1aXJlZF9oZXJlLCBtYXZfcGFyc2Vfb2Zmc2V0KTogUmVuYW1lZCBmcm9tCgljaXJydXNfcmVnX3JlcXVpcmVkX2hlcmUgYW5kIGNpcnJ1c19wYXJzZV9vZmZzZXQgcmVzcGVjdGl2ZWx5LgoJKE1BVl9NT0RFPyk6IFJlbmFtZWQgZnJvbSBDSVJSVVNfTU9ERT8uCgoyMDAyLTAxLTE4ICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCSAgICBLZWl0aCBXYWxrZXIgIDxrZWl0aC53YWxrZXJAYXJtLmNvbT4KCgkqIHRjLWFybS5jIChBUk1fRVhUX1Y1SiwgQVJNX0FSQ0hfVjVURUopOiBEZWZpbmUuCgkoaW5zbnMpOiBBZGQgcGF0dGVybiBmb3IgYnhqIGluc3RydWN0aW9uLgoJKGRvX2J4aik6IE5ldyBmdW5jdGlvbi4KCShhcm1fY3B1cyk6IEFkZCBhcm05MjZlai4KCShhcm1fYXJjaHMpOiBBZGQgYXJtdjV0ZWouCgoyMDAyLTAxLTE4ICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCgkqIGRvYy9jLWFybS50ZXhpOiBBZGQgbmV3IGZwZSBvcHRpb25zIHRvIGxpc3Qgb2Ygc3VwcG9ydGVkIGZsYWdzLgoKMjAwMi0wMS0xOSAgS2VpdGggV2Fsa2VyICA8a2VpdGgud2Fsa2VyQGFybS5jb20+CgoJKiB0Yy1hcm0uYyAoYXJtX2ZwdXMpOiBBZGQgZnBlMiBhbmQgZnBlMy4KCjIwMDItMDEtMTggIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogTkVXUzogTWVudGlvbiBuZXcgQVJNIGNvbW1hbmQtbGluZSBvcHRpb25zIGFuZCBWRlAgc3VwcG9ydC4KCgkqIGNvbmZpZy90Yy1hcm0uYyAoQVJNX0NFWFRfWFNDQUxFKTogUmVwbGFjZXMgQVJNX0VYVF9YU0NBTEUuICBBbGwKCXVzZXMgY2hhbmdlZC4KCShBUk1fQ0VYVF9NQVZFUklDSyk6IFNpbWlsYXJseS4KCShBUk1fQU5ZKTogTm93IG1lYW5zIGFueSBjb3JlIGluc3RydWN0aW9uLgoJKENQVV9ERUZBVUxUKTogRGVmYXVsdCB0byBBUk1fQU5ZLgoJKHVzZXNfYXBjc18yNiwgYXRjcHMsIHN1cHBvcnRfaW50ZXJ3b3JrLCB1c2VzX2FwY3NfZmxvYXQpCgkocGljX2NvZGUpOiBEZWNsYXJlIGZvciBhbGwgb2JqZWN0IHR5cGVzLiAgTWFrZSB0eXBlIGludC4KCShsZWdhY3lfY3B1LCBsZWdhY3lfZnB1LCBtY3B1X2NwdV9vcHQsIG1jcHVfZnB1X29wdCwgbWFyY2hfY3B1X29wdCkKCShtYXJjaF9mcHVfb3B0LCBtZnB1X29wdCk6IERlY2xhcmUuCgkobWRfbG9uZ29wdHMpOiBUaWR5IHVwIGNvbmRpdGlvbmFsIGRlZmluaXRpb25zLgoJKGFybV9vcHRzLCBhcm1fY3B1cywgYXJtX2FyY2hzLCBhcm1fZnB1cywgYXJtX2V4dGVuc2lvbnMpCgkoYXJtX2xvbmdfb3B0cyk6IE5ldyB0YWJsZXMuCgkoYXJtX3BhcnNlX2NwdSwgYXJtX3BhcnNlX2FyY2gsIGFybV9wYXJzZV9mcHUpOiBOZXcgZnVuY3Rpb25zLgoJKGFybV9wYXJzZV9leHRlbnNpb24pOiBOZXcgZnVuY3Rpb24uCgkobWRfcGFyc2Vfb3B0aW9uKTogUmV3cml0ZSB1c2luZyBuZXcgdGFibGUtZHJpdmVuIHN5c3RlbS4KCShtZF9zaG93X3VzYWdlKTogVXNlIG5ldyB0YWJsZS1kcml2ZW4gc3lzdGVtLgoJKG1kX2JlZ2luKTogQ2FsY3VsYXRlIGNwdV92YXJpYW50IGZyb20gY29tbWFuZCBsaW5lIG9wdGlvbiBkYXRhLgoJKiBkb2MvYXMudGV4aW5mbyAoQVJNIElTQSBvcHRpb25zKTogRG9jdWVtZW50IG5ldyBBUk0tc3BlY2lmaWMKCWNvbW1hbmQtbGluZSBvcHRpb25zLgoJKiBkb2MvYy1hcm0udGV4aTogTGlrZXdpc2UuCgoyMDAyLTAxLTE4ICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBhcy5jIChwYXJzZV9hcmdzKTogVXBkYXRlIHllYXIuCgoyMDAyLTAxLTE3ICBUaW1vdGh5IFdhbGwgIDx0d2FsbEBhbHVtLm1pdC5lZHU+CgoJKiBjb25maWcvdGMtdGljNTR4LmMgKGVuY29kZV9hZGRyZXNzKTogQWRkIGEgbW9yZSBpbmZvcm1hdGl2ZQoJd2FybmluZyBhYm91dCBpbmNvcnJlY3Qgc3ludGF4LgoKMjAwMi0wMS0xNyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBwby9nYXMucG90OiBSZWdlbmVyYXRlLgoKMjAwMi0wMS0xNyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBtYWNyby5jIChnZXRfYW55X3N0cmluZyk6IEFkZCBuby1jLWZvcm1hdCBjb21tZW50IHRvIHByZXZlbnQKCWNvbmZ1c2lvbiB3aGVuIHRyYW5zbGF0aW5nIHN0cmluZy4KCSogZ2FzcC5jIChnZXRfYW55X3N0cmluZyk6IEFkZCBuby1jLWZvcm1hdCBjb21tZW50IHRvIHByZXZlbnQKCWNvbmZ1c2lvbiB3aGVuIHRyYW5zbGF0aW5nIHN0cmluZy4KCjIwMDItMDEtMTYgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgkgICAgSm9oYW5uZXMgU3RlemVuYmFjaCA8anNAY29udmVyZ2VuY2UuZGU+CgkqIGNvbmZpZy90Yy1taXBzLmMgKHBlcmNlbnRfb3ApOiBFbnN1cmUgbG9uZ2VyIHBlcmNlbnRfb3AncyBhcmUKCW1hdGNoZWQgYmVmb3JlIHRoZSBzaG9ydGVyIG9uZXMuCgkobXlfZ2V0U21hbGxQYXJzZXIpOiBGaXggaGFuZGxpbmcgb2YgbmVzdGVkIHBhcmVudGhlc2VzIGluCglwZXJjZW50X29wJ3MuIENvZGUgY2xlYW51cC4KCShteV9nZXRQZXJjZW50T3ApOiBOZXcgZnVuY3Rpb24sIGNvZGUgZnJvbSBteV9nZXRTbWFsbFBhcnNlci4KCShteV9nZXRTbWFsbEV4cHJlc3Npb24pOiBGaXggaGFuZGxpbmcgb2YgY2xvc2luZyBwYXJlbnRoZXNlcy4KCUNvZGUgY2xlYW51cC4gQmV0dGVyIGNvbW1lbnRzLgoKMjAwMi0wMS0xNiAgTmljayBDbGlmdG9uIDxuaWNrY0ByZWRoYXQuY29tPgoKCXBvL3RyLnBvOiBOZXcgZmlsZTogVHVya2lzaCB0cmFuc2xhdGlvbi4KCWNvbmZpZ3VyZS5pbiAoTElOR1VBUyk6IEFkZCAidHIiLgoJY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wMS0xNSAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJU3VwcG9ydCBmb3IgVkZQIGluc3RydWN0aW9ucwoJKiB0Yy1hcm0uYyAoQ1BfV0JfT0ssIENQX05PX1dCKTogTmV3IGRlZmluZXMuCgkoY3BfYWRkcmVzc19yZXF1aXJlZF9oZXJlKTogTmV3IGFyZ3VtZW50IHdiX29rLiAgV2hlbiBmYWxzZSwgZG8gbm90CglhY2NlcHQgd3JpdGUtYmFjayBmb3JtcyBvZiBhZGRyZXNzaW5nLiAgQ2hhbmdlIGFsbCBjYWxsZXJzLgoJKEZQVV9WRlBfRVhUX05PTkUsIEZQVV9WRlBfRVhUX1YxeEQsIEZQVV9WRlBfVkZQX1YxKQoJKEZQVV9WRlBfRVhUX1YyKTogRGVmaW5lLgoJKEZQVV9BUkNIX1ZGUCwgRlBVX0FSQ0hfVkZQX1YxeEQsIEZQVV9BUkNIX1ZGUF9WMSwgRlBVX0FSQ0hfVkZQX1YyKToKCURlZmluZSBpbiB0ZXJtcyBvZiBhYm92ZS4KCSh2ZnBfZHBfcmVnX3BvcywgdmZwX3NwX3JlZ19wb3MsIHZmcF9sZHN0bV90eXBlKTogTmV3IGVudW1zLgoJKHZmcF9yZWcpOiBOZXcgc3RydWN0LgoJKHZmcF9yZWdzKTogTmV3IGFycmF5IG9mIHJlZ2lzdGVycy4KCShpbnNucyk6IEFkZCBWRlAgaW5zdHJ1Y3Rpb25zLgoJKHNuX3RhYmxlKTogTmV3IGFycmF5IG9mIFZGUCBzaW5nbGUtcHJlY2lzaW9uIHJlZ2lzdGVyIG5hbWVzLgoJKGRuX3RhYmxlKTogTmV3IGFycmF5IG9mIFZGUCBkb3VibGUtcHJlY2lzaW9uIHJlZ2lzdGVyIG5hbWVzLgoJKGFsbF9yZWdfbWFwcyk6IEFkZCB0aGUgbmV3IHJlZ2lzdGVyIHRhYmxlcy4KCShhcm1fcmVnX3R5cGUpOiBBZGQgbmV3IHZhbHVlcyBmb3IgYWJvdmUuICBJbmNyZWFzZSBSRVRfVFlQRV9NQVguCgkodmZwX3NwX3JlZ19yZXF1aXJlZF9oZXJlLCB2ZnBfZHBfcmVnX3JlcXVpcmVkX2hlcmUsIGRvX3ZmcF9zcF9tb25hZGljKQoJKGRvX3ZmcF9kcF9tb25hZGljLCBkb192ZnBfc3BfZHlhZGljLCBkb192ZnBfZHBfZHlhZGljKQoJKGRvX3ZmcF9yZWdfZnJvbV9zcCwgZG9fdmZwX3NwX3JlZzIsIGRvX3ZmcF9zcF9mcm9tX3JlZykKCShkb192ZnBfcmVnX2Zyb21fZHAsIGRvX3ZmcF9yZWcyX2Zyb21fZHAsIGRvX3ZmcF9kcF9mcm9tX3JlZykKCShkb192ZnBfZHBfZnJvbV9yZWcyLCB2ZnBfcHNyX3BhcnNlLCB2ZnBfcHNyX3JlcXVpcmVkX2hlcmUpCgkoZG9fdmZwX3JlZ19mcm9tX2N0cmwsIGRvX3ZmcF9jdHJsX2Zyb21fcmVnLCBkb192ZnBfc3BfbGRzdCkKCShkb192ZnBfZHBfbGRzdCwgdmZwX3NwX3JlZ19saXN0LCB2ZnBfZHBfcmVnX2xpc3QsIHZmcF9zcF9sZHN0bSkKCSh2ZnBfZHBfbGRzdG0sIGRvX3ZmcF9zcF9sZHN0bWlhLCBkb192ZnBfc3BfbGRzdG1kYiwgZG9fdmZwX2xkc3RtaWEpCgkoZG9fdmZwX2RwX2xkc3RtZGIsIGRvX3ZmcF94cF9sZHN0bWlhLCBkb192ZnBfeHBfbGRzdG1kYikKCShkb192ZnBfc3BfY29tcGFyZV96LCBkb192ZnBfZHBfY29tcGFyZV96LCBkb192ZnBfZHBfc3BfY3Z0KQoJKGRvX3ZmcF9zcF9kcF9jdnQpOiBOZXcgZnVuY3Rpb25zLgoJKG1kX2JlZ2luKTogU2V0IHNvZnQtZmxvYXQgZmxhZyBmb3IgYXBwcm9wcmlhdGUgVkZQIHdvcmsuCgkobWRfYXRvZik6IEhhbmRsZSBWRlAtZm9ybWF0IGRvdWJsZXMuCgkobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlIFZGUCBjb21tYW5kLWxpbmUgb3B0aW9ucy4KCShtZF9zaG93X3VzYWdlKTogRGlzcGxheSBWRlAgY29tbWFuZC1saW5lIG9wdGlvbnMuCgoyMDAyLTAxLTE1ICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCgkqIHRjLWFybS5jIChtZF9wYXJzZV9vcHRpb24pOiBUaWR5IHVwIHNldHRpbmcgb2YgY3B1X3ZhcmlhbnQgZm9yCgl2YXJpb3VzIGNvbW1hbmQgbGluZSBvcHRpb25zLgoKMjAwMi0wMS0xNSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMteHN0b3JteTE2LmM6ICh4c3Rvcm15MTZfZml4X2FkanVzdGFibGUpOiBEbyBub3QgZml4Cgl2dGluaGVyaXQgcmVsb2NzLgoJKHhzdG9ybXkxNl9tZF9hcHBseV9maXgzKTogRG8gbm90IHJldHVybiBhIHZhbHVlLgoKMjAwMi0wMS0xNCAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJKiB0Yy1hcm0uYyAobWRfbG9uZ29wdHMpOiBPbiB0YXJnZXRzIHRoYXQgYXJlbid0IGJpLWVuZGlhbiwgc3VwcG9ydAoJdGhlIC1FTC8tRUIgb3B0aW9uIHRoYXQgbWF0Y2hlcyB0aGUgdGFyZ2V0J3MgZW5kaWFubmVzcy4KCShtZF9wYXJzZV9vcHRpb24pOiBMaWtld2lzZS4KCjIwMDItMDEtMTQgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogdGMtYXJtLmMgKG1kX2xvbmdvcHRzKTogRml4IG1pc3BsYWNlZCAjZW5kaWYgLS0gdGhlIC1vYWJpIG9wdGlvbgoJaXMgbm90IGRlcGVuZGVudCBvbiBBUk1fQklfRU5ESUFOLgoKMjAwMi0wMS0xNCAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJKiB0Yy1hcm0uYyAoYWxsIGVycm9yIG1lc3NhZ2VzKTogTm9ybWFsaXplIGNhcGl0YWxpemF0aW9uIG9mIG1lc3NhZ2VzLgoKCSogdGMtYXJtLmggKG1kX29wZXJhbmQpOiBEZWxldGUgZGVmaW5lLgoJKiB0Yy1hcm0uYyAoaW5fbXlfZ2V0X2V4cHJlc3Npb24pOiBOZXcgc3RhdGljIHZhcmlhYmxlLgoJKG15X2dldF9leHByZXNzaW9uKTogU2V0IGFuZCBjbGVhciBpdC4KCShtZF9vcGVyYW5kKTogTmV3IGZ1bmN0aW9uLiAgSWYgY2FsbGVkIGZyb20gbXlfZ2V0X2V4cHJlc3Npb24KCXB1dCB0aGUgZXJyb3IgaW4gaW5zdC5lcnJvci4KCShvdXRwdXRfaW5zdCk6IE5vdyB0YWtlcyBhcmd1bWVudCBvZiBpbnN0cnVjdGlvbiBiZWluZyBhc3NlbWJsZWQuCglQcmludCBpdCBvdXQgd2l0aCBhbnkgZXJyb3IgbWVzc2FnZS4KCShkb19sZHN0LCBkb19sZHN0djQsIHRodW1iX2xvYWRfc3RvcmUpOiBGYXVsdCBhdHRlbXB0IHRvIHVzZSBhIHN0b3JlCgl3aXRoICc9JyBzeW50YXguCgkoZW5kX29mX2xpbmUpOiBEb24ndCB1cGRhdGUgaW5zdC5lcnJvciBpZiBpdCBpcyBhbHJlYWR5IHNldC4KCjIwMDItMDEtMTEgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogdGMtYXJtLmMgKGRvX2xkc3QpOiBGaXggaGFuZGxpbmcgYW4gaW1tZWRpYXRlIGV4cHJlc3Npb24gcHNldWRvCglvcCB0aGF0IGNhbiBiZSB0cmFuc2xhdGVkIGludG8gYSBtdm4gaW5zdHJ1Y3Rpb24uCgoyMDAyLTAxLTExICBTdGV2ZSBFbGxjZXkgIDxzamVAY3VwLmhwLmNvbT4KCgkqIGdhcy9jb25maWcvdGMtaWE2NC5oIChNRF9GTEFHU19ERUZBVUxUKTogTmV3IE1hY3JvIGZvcgoJc2V0dGluZyBkZWZhdWx0IG1kLmZsYWdzLgoJKFNIVF9JTklUX0FSUkFZKTogTmV3IGVsZiBzcGVjaWFsIHNlY3Rpb24gdXNlZCBieSBIUC1VWC4KCShTSFRfRklOSV9BUlJBWSk6IE5ldyBlbGYgc3BlY2lhbCBzZWN0aW9uIHVzZWQgYnkgSFAtVVguCgkqIGdhcy9jb25maWcvdGMtaWE2NC5jIChzZXR1cF91bndpbmRfaGVhZGVyKTogQWRkIHN1cHBvcnQKCWZvciAzMiBiaXQgdW53aW5kIGluZm8gYmxvY2tzLgoJKGdlbmVyYXRlX3Vud2luZF9pbWFnZSk6IEFkZCBzdXBwb3J0IGZvciBkaWZmZXJlbnQgdHlwZXMKCW9mIHVud2luZCBpbWFnZXMgKDMyIGJpdHMgYW5kL29yIGJpZy1lbmRpYW4pLgoJKGlhNjRfaW5pdCk6IFVzZSBNRF9GTEFHU19ERUZBVUxUIHRvIHNldCBtZC5mbGFncy4KCShpYTY0X3RhcmdldF9mb3JtYXQpOiBBZGQgc3VwcG9ydCBmb3IgaHB1eCB0YXJnZXQgZm9ybWF0cy4KCShpYTY0X2dlbl9yZWFsX3JlbG9jX3R5cGUpOiBBZGQgc3VwcG9ydCBmb3IgRlVOQ19JUExUX1JFTE9DLgoJKGlhNjRfZWxmX3NlY3Rpb25fdHlwZSk6IEFkZCBzdXBwb3J0IGZvciBTSFRfSU5JVF9BUlJBWSBhbmQKCVNIVF9GSU5JX0FSUkFZIGVsZiBzZWN0aW9uIHR5cGVzLgoKMjAwMi0wMS0xMCAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJKiB0Yy1hcm0uYyAoc3RydWN0IHJlZ19lbnRyeSk6IE1vdmUgYmVmb3JlIHByb3RvdHlwZXMuCgkoaW50X3JlZ2lzdGVyLCBjcF9yZWdpc3RlciwgZnBfcmVnaXN0ZXIpOiBEZWxldGUuCgkocmVnX3RhYmxlKTogRGVsZXRlLiAgUmVwbGFjZWQgd2l0aCAuLi4KCShybl90YWJsZSwgY3BfdGFibGUsIGNuX3RhYmxlLCBmbl90YWJsZSwgbWF2X212Zl90YWJsZSkKCShtYXZfbXZkX3RhYmxlLCBtYXZfbXZmeF90YWJsZSwgbWF2X212ZHhfdGFibGUsIG1hdl9tdmF4X3RhYmxlKQoJKG1hdl9kc3BzY190YWJsZSk6IC4uLiBvbmUgdGFibGUgcGVyIHJlZ2lzdGVyIHNldC4KCShhcm1fcmVnX2hzaCk6IERlbGV0ZS4KCShzdHJ1Y3QgcmVnX21hcCk6IE5ldyBzdHJ1Y3R1cmUuCgkoYWxsX3JlZ19tYXBzKTogTmV3IGFycmF5LgoJKGVudW0gYXJtX3JlZ190eXBlKTogTmV3IGVudW1zLgoJKGJ1aWxkX3JlZ19oc2gpOiBOZXcgZnVuY3Rpb24uCgkoaW5zZXJ0X3JlZ19hbGlhcyk6IFVzZSBoYXNoIHRhYmxlIHBhc3NlZCBieSBjYWxsZXIuICBBZGp1c3QgYWxsCgljYWxsZXJzLgoJKGNyZWF0ZV9yZWdpc3Rlcl9hbGlhcyk6IE5ldyBmdW5jdGlvbiwgc3BsaXQgb3V0IGZyb20gLi4uCgkobWRfYXNzZW1ibGUpOiAuLi4gaGVyZS4KCShtZF9iZWdpbik6IEJ1aWxkIG5ldyByZWdpc3RlciBoYXNoIHRhYmxlcy4KCShhcm1fcmVnX3BhcnNlKTogTmV3IGFyZ3VtZW50IGZvciB0aGUgaGFzaCB0YWJsZSB0byBzZWFyY2guICBBZGp1c3QgYWxsCgljYWxsZXJzLgoJKGFybV9yZWdfcGFyc2VfYW55KTogTmV3IGZ1bmN0aW9uLgoJKGNvX3Byb2NfbnVtYmVyKTogTG9vayB1cCB0aGUgcHJvY2Vzc29yIG51bWJlciBpbiB0aGUgcHJvY2Vzc29yIGhhc2gKCXRhYmxlLgoJKGNpcnJ1c19yZWd0eXBlKTogRGVsZXRlLgoJKGNpcnJ1c19yZWdpc3RlciwgY2lycnVzX212Zl9yZWdpc3RlciwgY2lycnVzX212ZF9yZWdpc3RlcikKCShjaXJydXNfbXZmeF9yZWdpc3RlciwgY2lycnVzX212ZHhfcmVnaXN0ZXIsIGNpcnJ1c19tdmF4X3JlZ2lzdGVyKQoJKEFSTV9FWFRfTUFWRVJJQ0tzY19yZWdpc3Rlcik6IERlbGV0ZS4KCShkb19jX2Jpbm9wc18xLCBkb19jX2Jpbm9wc18yLCBkb19jX2Jpbm9wc18zKTogRGVsZXRlLgoJKGRvX2NfYmlub3BzXzFbYS1vXSwgZG9fY19iaW5vcHNfMlthLWNdLCBkb19jX2Jpbm9wc18zW2EtZF0pOiBOZXcKCWZ1bmN0aW9ucy4KCShkb19jX3RyaXBsZV80LCBkb19jX3RyaXBsZV81KTogRGVsZXRlLgoJKGRvX2NfdHJpcGxlXzRbYWJdLCBkb19jX3RyaXBsZV81W2EtaF0pOiBOZXcgZnVuY3Rpb25zLgoJKGRvX2NfcXVhZF82KTogRGVsZXRlLgoJKGRvX2NfcXVhZF82W2FiXSk6IE5ldyBmdW5jdGlvbnMuCgkoZG9fY19iaW5vcHMsIGRvX2NfdHJpcGxlLCBkb19jX3F1YWQsIGRvX2Nfc2hpZnQsIGRvX2NfbGRzdCk6IFJld29yawoJYXJndW1lbnRzIHRvIHVzZSBuZXcgcmVnaXN0ZXIgcGFyc2luZyBtZXRob2RzLgoJKGNpcnJ1c19yZWdfcmVxdWlyZWRfaGVyZSk6IExpa2V3aXNlLgoJKGluc25zKTogUmVjbGFzc2lmeSBjaXJydXMgbWF2ZXJpY2sgd29ya2VyIGZ1bmN0aW9ucy4KCShjaXJydXNfdmFsaWRfcmVnKTogRGVsZXRlLgoKMjAwMi0wMS0wNyAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoc2gqbGUpOiBTZXQgY3B1X3R5cGU9c2ggYW5kIGVuZGlhbj1saXR0bGUuCgkoc2gqLSotbmV0YnNkZWxmKik6IE5ldyB0YXJnZXQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogdGMtc2guaDogVXBkYXRlIGNvcHlyaWdodCB5ZWFycy4KCShUQVJHRVRfRk9STUFUKTogQWRkIHZlcnNpb24gZm9yIFRFX05ldEJTRC4KCjIwMDItMDEtMDcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcmVhZC5jIChlbWl0X2V4cHIpOiBEbyBub3QgYWxsb3cgJ3NpemUnIG9yICduYnl0ZXMnIHRvIGdvCgluZWdhdGl2ZS4KCjIwMDItMDEtMDYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtbTY4ay5oIChtZF9wcmVwYXJlX3JlbGF4X3NjYW4pOiBSZXdyaXRlLgoJKiBjb25maWcvdGMtbTY4ay5jIChtZF9yZWxheF90YWJsZSk6IEFkZCBtZF9wcmVwYXJlX3JlbGF4X3NjYW4gY29tbWVudC4KCjIwMDItMDEtMDUgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogdGMtbWlwcy5jIChtaXBzX2NwcmVzdG9yZV92YWxpZCk6IE5ldyBmbGFnLgoJKG1pcHNfZnJhbWVfcmVnX3ZhbGlkKTogTmV3IGZsYWcuCgkobWFjcm8pIFtNX0pBTF8yXTogQ2hlY2sgYm90aCBmbGFncy4KCVtNX0pBTF9BXTogTGlrZXdpc2UuCgkoc19jcHJlc3RvcmUpOiBTZXQgbWlwc19jcHJlc3RvcmVfdmFsaWQuCgkodGNfZ2V0X3JlZ2lzdGVyKTogSWYgc2V0dGluZyBtaXBzX2ZyYW1lX3JlZywgc2V0CgltaXBzX2ZyYW1lX3JlZ192YWxpZCBhbmQgY2xlYXIgbWlwc19jcHJlc3RvcmVfdmFsaWQuCgkoc19taXBzX2VudCk6IENsZWFyIGJvdGggZmxhZ3MuCgkoc19taXBzX2VuZCk6IENsZWFyIGJvdGggZmxhZ3MuCgoyMDAyLTAxLTA1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogd3JpdGUuYyAod3JpdGVfb2JqZWN0X2ZpbGUpOiBNYWtlIHVzZSBvZiBiZmRfc2VjdGlvbl9saXN0X3JlbW92ZS4KCSogY29uZmlnL29iai1lY29mZi5jIChlY29mZl9mcm9iX2ZpbGUpOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW1taXguYyAobW1peF9mcm9iX2ZpbGUpOiBMaWtld2lzZS4KCjIwMDItMDEtMDQgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWd1cmUuaW4gKGkzODYtKi1uZXRic2RlbGYqKTogQ29sbGFwc2UgdGFyZ2V0IGludG8uLi4KCShpMzg2LSotbmV0YnNkKik6IC4uLnRoaXMuICBBZGQgc3VwcG9ydCBmb3IgeDg2LTY0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKMjAwMi0wMS0wMyAgbWF0dGhldyBncmVlbiAgPG1yZ0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXBwYy5jIChtZF9wYXJzZV9vcHRpb24pOiBCb29rRSBpcyBub3QgTW90b3JvbGEgc3BlY2lmaWMuCgoyMDAyLTAxLTAyICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1tNjhrLmMgKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogVGVzdCBmb3IgYQoJTlVMTCBmcmFnIGxpbmsuCgpGb3Igb2xkZXIgY2hhbmdlcyBzZWUgQ2hhbmdlTG9nLTAwMDEKDApDb3B5cmlnaHQgKEMpIDIwMDItMjAwMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KCkNvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpbGUsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCmFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodApub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuCgpMb2NhbCBWYXJpYWJsZXM6Cm1vZGU6IGNoYW5nZS1sb2cKbGVmdC1tYXJnaW46IDgKZmlsbC1jb2x1bW46IDc0CnZlcnNpb24tY29udHJvbDogbmV2ZXIKRW5kOgo=