MjAwMy0xMi0xOSAgS2F6dWhpcm8gSW5hb2thICA8aW5hb2thLmthenVoaXJvQHJlbmVzYXMuY29tPgoKCUFkZmQgbTMyci1saW51eCBhbmQgUElDIHN1cHBvcnQuICBBZGQgbmV3IEFCSSB0aGF0IHVzZXMgUkVMQS4KCSogY29uZmlnLmJmZCAobTMyciotKi1saW51eCosIG0zMnIqbGUtKi1saW51eCosIG0zMnIqbGUtKi0qKTogQWRkZWQuCgkqIGNvbmZpZ3VyZS5pbiAoYmZkX2VsZjMyX20zMnJsaW5fdmVjLCBiZmRfZWxmMzJfbTMycmxlbGluX3ZlYywKCWJmZF9lbGYzMl9tMzJybGVfdmVjKTogQWRkZWQKCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCSogZWxmMzItbTMyci5jIChtMzJyX2luZm9fdG9faG93dG8sIG0zMnJfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCwKCW0zMnJfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucywgbTMycl9lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMsCgltMzJyX2VsZl9maW5pc2hfZHluYW1pY19zZWN0aW9ucywgbTMycl9lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sLAoJYWxsb2NhdGVfZHlucmVsb2NzLCByZWFkb25seV9keW5yZWxvY3MsIG0zMnJfZWxmX3JlbG9jX3R5cGVfY2xhc3MsCgltMzJyX2VsZl9mYWtlX3NlY3Rpb25zKTogQWRkZWQuCgkobTMycl9lbGZfaG93dG9fdGFibGUpOiBBZGRlZAoJUl9NMzJSXzE2X1JFTEEsIFJfTTMyUl8zMl9SRUxBLCBSX00zMlJfMjRfUkVMQSwKCVJfTTMyUl8xMF9QQ1JFTF9SRUxBLCBSX00zMlJfMThfUENSRUxfUkVMQSwKCVJfTTMyUl8yNl9QQ1JFTF9SRUxBLCBSX00zMlJfSEkxNl9VTE9fUkVMQSwKCVJfTTMyUl9ISTE2X1NMT19SRUxBLCBSX00zMlJfTE8xNl9SRUxBLAoJUl9NMzJSX1NEQTE2X1JFTEEsIFJfTTMyUl9SRUxBX0dOVV9WVElOSEVSSVQsCglSX00zMlJfUkVMQV9HTlVfVlRFTlRSWSwgUl9NMzJSX0dPVDI0LAoJUl9NMzJSXzI2X1BMVFJFTCwgUl9NMzJSX0NPUFksIFJfTTMyUl9HTE9CX0RBVCwKCVJfTTMyUl9KTVBfU0xPVCwgUl9NMzJSX1JFTEFUSVZFLCBSX00zMlJfR09UT0ZGLAoJUl9NMzJSX0dPVFBDMjQsIFJfTTMyUl9HT1QxNl9ISV9VTE8sCglSX00zMlJfR09UMTZfSElfU0xPLCBSX00zMlJfR09UMTZfTE8sCglSX00zMlJfR09UUENfSElfVUxPLCBSX00zMlJfR09UUENfSElfU0xPLAoJUl9NMzJSX0dPVFBDX0xPLgoJKG0zMnJfZWxmX3JlbG9jYXRlX3NlY3Rpb24sIG0zMnJfZWxmX2NoZWNrX3JlbG9jcyk6IENoYW5nZWQgZm9yCglOZXcgQUJJLgoJKiByZWxvYy5jOiBBZGQgQkZEX1JFTE9DX00zMlJfR09UMjQsIEJGRF9SRUxPQ19NMzJSXzI2X1BMVFJFTCwKCUJGRF9SRUxPQ19NMzJSX0NPUFksIEJGRF9SRUxPQ19NMzJSX0dMT0JfREFULAoJQkZEX1JFTE9DX00zMlJfSk1QX1NMT1QsIEJGRF9SRUxPQ19NMzJSX1JFTEFUSVZFLAoJQkZEX1JFTE9DX00zMlJfR09UT0ZGLCBCRkRfUkVMT0NfTTMyUl9HT1RQQzI0LAoJQkZEX1JFTE9DX00zMlJfR09UMTZfSElfVUxPLCBCRkRfUkVMT0NfTTMyUl9HT1QxNl9ISV9TTE8sCglCRkRfUkVMT0NfTTMyUl9HT1QxNl9MTywgQkZEX1JFTE9DX00zMlJfR09UUENfSElfVUxPLAoJQkZEX1JFTE9DX00zMlJfR09UUENfSElfU0xPLCBCRkRfUkVMT0NfTTMyUl9HT1RQQ19MTy4KCSogdGFyZ2V0cy5jIChiZmRfZWxmMzJfbTMycmxpbl92ZWMsIGJmZF9lbGYzMl9tMzJybGVsaW5fdmVjLAoJYmZkX2VsZjMyX20zMnJsZV92ZWMpOiBBZGRlZC4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlZC4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGVkLgoKMjAwMy0xMi0xOSAgRGFubnkgU21pdGggIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGNvZmZjb2RlLmggKHN0eXBfdG9fc2VjX2ZsYWdzKTogRG9uJ3QgdHJlYXQgLnJlbG9jIHNlY3Rpb24KCWFzIFNFQ19ERUJVR0dJTkcuCgoyMDAzLTEyLTE4ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1taXBzLmMgKGVsZl9taXBzX2hvd3RvX3RhYmxlX3JlbCk6IFJlcGxhY2UgYWxsIHVzZXMgb2YKCW1pcHNfZWxmX2dlbmVyaWNfcmVsb2Mgd2l0aCBfYmZkX21pcHNfZWxmX2dlbmVyaWNfcmVsb2MuICBVc2UKCV9iZmRfbWlwc19lbGZfaGkxNl9yZWxvYyBmb3IgUl9NSVBTX0hJMTYgYW5kIFJfTUlQU19HTlVfUkVMX0hJMTYsCglfYmZkX21pcHNfZWxmX2xvMTZfcmVsb2MgZm9yIFJfTUlQU19MTzE2IGFuZCBSX01JUFNfR05VX1JFTF9MTzE2LAoJYW5kIF9iZmRfbWlwc19lbGZfZ290MTZfcmVsb2MgZm9yIFJfTUlQU19HT1QxNi4gIENoYW5nZSByaWdodHNoaWZ0Cgl0byAxNiBmb3IgUl9NSVBTX0hJMTYgYW5kIFJfTUlQU19HTlVfUkVMX0hJMTYuCgkobWlwc19lbGZfZ2VuZXJpY19yZWxvYywgc3RydWN0IG1pcHNfaGkxNiwgbWlwc19lbGZfaGkxNl9yZWxvYykKCShtaXBzX2VsZl9sbzE2X3JlbG9jLCBtaXBzX2VsZl9nb3QxNl9yZWxvYyk6IERlbGV0ZS4KCShfYmZkX21pcHNfZWxmMzJfZ3ByZWwxNl9yZWxvYyk6IFJlbW92ZSBzcGVjaWFsIGNhc2UuCgkobWlwc19lbGZfZ3ByZWwzMl9yZWxvYywgbWlwczMyXzY0Yml0X3JlbG9jKTogTGlrZXdpc2UuCgoJKiBlbGY2NC1taXBzLmMgKG1pcHNfZWxmNjRfaG93dG9fdGFibGVfcmVsKTogUmVwbGFjZSBhbGwgdXNlcyBvZgoJbWlwc19lbGZfZ2VuZXJpY19yZWxvYyB3aXRoIF9iZmRfbWlwc19lbGZfZ2VuZXJpY19yZWxvYy4gIFVzZQoJX2JmZF9taXBzX2VsZl9oaTE2X3JlbG9jIGZvciBSX01JUFNfSEkxNiwgX2JmZF9taXBzX2VsZl9sbzE2X3JlbG9jCglmb3IgUl9NSVBTX0xPMTYgYW5kIF9iZmRfbWlwc19lbGZfZ290MTZfcmVsb2MgZm9yIFJfTUlQU19HT1QxNi4KCUNoYW5nZSBSX01JUFNfSEkxNidzIHJpZ2h0c2hpZnQgdG8gMTYuCgkobWlwc19lbGY2NF9ob3d0b190YWJsZV9yZWxhKTogUmVwbGFjZSBhbGwgdXNlcyBvZgoJbWlwc19lbGZfZ2VuZXJpY19yZWxvYyB3aXRoIF9iZmRfbWlwc19lbGZfZ2VuZXJpY19yZWxvYy4KCVVzZSBfYmZkX21pcHNfZWxmX2dlbmVyaWNfcmVsb2MgZm9yIFJfTUlQU19HT1QxNiBhcyB3ZWxsLgoJKG1pcHNfZWxmNjRfaGkxNl9yZWxvYywgbWlwc19lbGY2NF9nb3QxNl9yZWxvYyk6IERlbGV0ZS4KCShtaXBzX2VsZjY0X3NoaWZ0Nl9yZWxvYyk6IFJlbW92ZSBzcGVjaWFsIGNhc2UuICBVc2UKCV9iZmRfbWlwc19lbGZfZ2VuZXJpY19yZWxvYyBpbnN0ZWFkIG9mIHJldHVybmluZyBiZmRfcmVsb2NfY29udGludWUuCgoJKiBlbGZuMzItbWlwcy5jIChwcmV2X3JlbG9jX3NlY3Rpb24pOiBEZWxldGUuCgkocHJldl9yZWxvY19hZGRyZXNzLCBwcmV2X3JlbG9jX2FkZGVuZCk6IERlbGV0ZS4KCShlbGZfbWlwc19ob3d0b190YWJsZV9yZWwsIGVsZl9taXBzX2hvd3RvX3RhYmxlX3JlbGEpOiBBcyBmb3IKCWVsZjY0LW1pcHMuYwoJKEdFVF9SRUxPQ19BRERFTkQsIFNFVF9SRUxPQ19BRERFTkQpOiBEZWxldGUuCgkobWlwc19lbGZfZ2VuZXJpY19yZWxvYywgc3RydWN0IG1pcHNfaGkxNiwgbWlwc19lbGZfaGkxNl9yZWxvYykKCShtaXBzX2VsZl9sbzE2X3JlbG9jLCBtaXBzX2VsZl9nb3QxNl9yZWxvYyk6IERlbGV0ZS4KCShtaXBzX2VsZl9ncHJlbDE2X3JlbG9jKTogRGVsZXRlIHVzZSBvZiBHRVRfUkVMT0NfQURERU5ELgoJKG1pcHNfZWxmX2xpdGVyYWxfcmVsb2MsIG1pcHNfZWxmX2dwcmVsMzJfcmVsb2MpOiBMaWtld2lzZS4KCShtaXBzMTZfanVtcF9yZWxvYywgbWlwczE2X2dwcmVsX3JlbG9jKTogTGlrZXdpc2UuCgkobWlwc19lbGZfc2hpZnQ2X3JlbG9jKTogTGlrZXdpc2UuICBEZWxldGUgdXNlIG9mIFNFVF9SRUxPQ19BRERFTkQuCgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfZ3ByZWwxNl93aXRoX2dwKTogVXNlCglfYmZkX3JlbG9jYXRlX2NvbnRlbnRzIHRvIGluc3RhbGwgYW4gaW4tcGxhY2UgYWRkZW5kLgoJKG1pcHNfaGkxNik6IE5ldyBzdHJ1Y3R1cmUuCgkobWlwc19oaTE2X2xpc3QpOiBNb3ZlZCBmcm9tIGVsZjMyLW1pcHMuYy4KCShfYmZkX21pcHNfZWxmX2hpMTZfcmVsb2MsIF9iZmRfbWlwc19lbGZfZ290MTZfcmVsb2MpOiBOZXcgZnVuY3Rpb25zLgoJKF9iZmRfbWlwc19lbGZfbG8xNl9yZWxvYywgX2JmZF9taXBzX2VsZl9nZW5lcmljX3JlbG9jKTogTmV3IGZ1bmN0aW9ucy4KCShtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IEFzc3VtZSBhZGRlbmQgaXMgdW5zaGlmdGVkLgoJKF9iZmRfbWlwc19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IERvbid0IGFwcGx5IHRoZSBob3d0byByaWdodHNoaWZ0CglvbiB0b3Agb2YgdGhlIHVzdWFsIGhpZ2gtcGFydCBzaGlmdC4gIERvbid0IHNoaWZ0IHRoZSBhZGRlbmQgcmlnaHQKCWJlZm9yZSBjYWxsaW5nIG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uLgoKCSogZWxmeHgtbWlwcy5oIChfYmZkX21pcHNfZWxmX2hpMTZfcmVsb2MpOiBEZWNsYXJlLgoJKF9iZmRfbWlwc19lbGZfZ290MTZfcmVsb2MsIF9iZmRfbWlwc19lbGZfbG8xNl9yZWxvYyk6IERlY2xhcmUuCgkoX2JmZF9taXBzX2VsZl9nZW5lcmljX3JlbG9jKTogRGVjbGFyZS4KCjIwMDMtMTItMTYgIEVyaWMgWW91bmdkYWxlICA8ZXJpY0Bta3Nzb2Z0d2FyZS5jb20+CgkgICAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBlaWNvZGUuaCAocGVfSUxGX2J1aWxkX2FfYmZkKTogT25seSBza2lwIG9uZSBpbnN0YW5jZSBvZiBlYWNoCglwcmVmaXggY2hhcmFjdGVyLCBpZiB0aGV5IGFyZSBwcmVzZW50LgoKMjAwMy0xMi0xNSAgRG1pdHJ5IFNlbXlvbm92ICA8RG1pdHJ5LlNlbXlvbm92QG9rdGV0LnJ1PgoJICAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwZVhYaWdlbi5jIChfYmZkX1hYaV9zd2FwX3Njbmhkcl9vdXQpOiBFbnN1cmUgdGhhdCBjb3JyZWN0IGZsYWdzCglhcmUgc2V0IG9uIGtub3duIHNlY3Rpb24gdHlwZXMuCgoyMDAzLTEyLTEyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vcm8ucG86IFVwZGF0ZWQgdHJhbnNsYXRpb24uCgoyMDAzLTEyLTEyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX2xpbmtfb3V0cHV0X3N5bWJvbF9ob29rKTogQ2hlY2sgZm9yCglOVUxMIGR5bl9oLgoKMjAwMy0xMi0xMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZi5jIChJTkNMVURFX1NFQ1RJT05fSU5fU0VHTUVOVCk6IFNraXAgUFRfR05VX1NUQUNLIHNlZ21lbnRzLgoKMjAwMy0xMi0wOCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5oLCBlbGZ4eC1taXBzLmMsIGNwdS1taXBzLmM6IENvbnZlcnQgcHJvdG90eXBlcy4KCVJlbW92ZSBjYXN0cyB0aGF0IHdlcmUgb25seSBuZWVkZWQgZm9yIEsmUiBjb21wYXRpYmlsaXR5LgoKMjAwMy0xMi0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1iZmQuaCAoc3RydWN0IGVsZl9iYWNrZW5kX2RhdGEpOiBSZW1vdmUgImJmZCAqIiBhbmQgYWRkCgkiZWxmbGlua19oYXNoX2VudHJ5ICoiIHBhcmFtIHRvIGVsZl9iYWNrZW5kX2xpbmtfb3V0cHV0X3N5bWJvbF9ob29rLgoJQWRkICJlbGZsaW5rX2hhc2hfZW50cnkgKiIgcGFyYW0gdG8gZWxmX2JhY2tlbmRfb3V0cHV0X2FyY2hfc3ltcy4KCSogZWxmbGluay5oIChlbGZfbGlua19vdXRwdXRfc3ltKTogQWRkICJlbGZsaW5rX2hhc2hfZW50cnkgKiIgcGFyYW0sCglhbmQgcGFzcyB0byBvdXRwdXRfc3ltYm9sX2hvb2suCgkoZWxmX2JmZF9maW5hbF9saW5rKTogQWRqdXN0IGVsZl9saW5rX291dHB1dF9zeW0gY2FsbHMuCgkoZWxmX2xpbmtfb3V0cHV0X2V4dHN5bSk6IExpa2V3aXNlLgoJKGVsZl9saW5rX2lucHV0X2JmZCk6IExpa2V3aXNlLgoJKiBlbGYzMi1zaDY0LmMgKHNoNjRfZWxmX2xpbmtfb3V0cHV0X3N5bWJvbF9ob29rKTogQWRqdXN0LgoJKiBlbGYzMi12ODUwLmMgKHY4NTBfZWxmX2xpbmtfb3V0cHV0X3N5bWJvbF9ob29rKTogTGlrZXdpc2UuCgkqIGVsZjY0LW1taXguYyAobW1peF9lbGZfbGlua19vdXRwdXRfc3ltYm9sX2hvb2spOiBMaWtld2lzZS4KCSogZWxmNjQtc2g2NC5jIChzaDY0X2VsZjY0X2xpbmtfb3V0cHV0X3N5bWJvbF9ob29rKTogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9saW5rX291dHB1dF9zeW1ib2xfaG9vayk6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmggKF9iZmRfbWlwc19lbGZfbGlua19vdXRwdXRfc3ltYm9sX2hvb2spOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfb3V0cHV0X2FyY2hfc3ltcyk6IExpa2V3aXNlLgoJKiBlbGY2NC1ocHBhLmMgKGVsZjY0X2hwcGFfbGlua19vdXRwdXRfc3ltYm9sX2hvb2spOiBMaWtld2lzZS4KCVZhbGlkYXRlIGR5bmgtPmggYWdhaW5zdCBoLgoJKiBlbGY2NC1wcGMuYyAoc3RydWN0IHBwY19saW5rX2hhc2hfZW50cnkpOiBBZGQgYWRqdXN0X2RvbmUgYml0ZmllbGQuCgkobGlua19oYXNoX25ld2Z1bmMpOiBJbml0IGl0LgoJKGFkanVzdF9vcGRfc3ltcyk6IE5ldyBmdW5jdGlvbi4KCShwcGM2NF9lbGZfZWRpdF9vcGQpOiBTZXQgYWRqdXN0X2RvbmUgd2hlbiBnbG9iYWwgLm9wZCBzeW0gYWRqdXN0ZWQuCglTZXQgb3BkLmFkanVzdCBmb3IgYWxsIC5vcGQgcmVsb2NzLiAgQ2FsbCBhZGp1c3Rfb3BkX3N5bXMuCgkocHBjNjRfZWxmX3Rsc19vcHRpbWl6ZSk6IEFkanVzdCBwb3NzaWJsZSAub3BkIHN5bSB2YWx1ZXMgaGVyZS4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEFsc28gYWRqdXN0IHN5bXMgbm90IGEgbXVsdGlwbGUgb2YgMjQuCgkocHBjNjRfZWxmX291dHB1dF9zeW1ib2xfaG9vayk6IE5ldyBmdW5jdGlvbi4KCShlbGZfYmFja2VuZF9saW5rX291dHB1dF9zeW1ib2xfaG9vayk6IERlZmluZS4KCjIwMDMtMTItMDcgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGVsZjMyLW1pcHMuYywgZWxmbjMyLW1pcHMuYywgZWxmNjQtbWlwcy5jOiBDb252ZXJ0IHByb3RvdHlwZXMuCglSZW1vdmUgY2FzdHMgdGhhdCB3ZXJlIG9ubHkgbmVlZGVkIGZvciBLJlIgY29tcGF0aWJpbGl0eS4KCjIwMDMtMTItMDUgIERtaXRyeSBTZW15b25vdiAgPERtaXRyeS5TZW15b25vdkBva3RldC5ydT4KCgkqIGNvZmYtYXJtLmMgKGFvdXRhcm1fc3RkX3JlbG9jX2hvd3RvIFtBUk1fV0lOQ0VdKTogU2V0CglwYXJ0aWFsX2lucGxhY2UgZm9yIHRoZXNlIHJlbG9jcyB0byBGQUxTRSBmb3IgY29tcHRhYmlsaXR5IHdpdGgKCXRoZSBNUyBsaW5rZXIuCglSZW1hcCBBUk1fMjZEIHJlbG9jYXRpb24gZnJvbSA1IHRvIDAuIFRoaXMgZml4ZXMgImJhZCBmaXh1cCIgZXJyb3IKCWdlbmVyYXRlZCBieSBNUyBsaW5rZXIsIGFuZCBicmluZ3MgdGhlIHJlbG9jYXRpb24gaW4gbGluZSB0aGUgTVMKCVBFIGRvY3VtZW50YXRpb24uCgoyMDAzLTEyLTA0ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxheF9zZWN0aW9uKTogRG9uJ3QgY2hlY2sgcmVsYXhfZmluYWxpemluZy4KCjIwMDMtMTItMDQgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxheF9zZWN0aW9uKTogVXNlIHRoZQoJbmVlZF9yZWxheF9maW5hbGl6ZSBmaWVsZCBpbiBsaW5rX2luZm8gaW5zdGVhZCBvZgoJcmVsYXhfZmluYWxpemluZyB0byBjaGVjayBpZiB0aGUgcmVsYXggZmluYWxpemUgcGFzcyBpcyBiZWluZwoJZG9uZS4KCjIwMDMtMTItMDQgIERtaXRyeSBTZW15b25vdiAgPERtaXRyeS5TZW15b25vdkBva3RldC5ydT4KCgkqIGNvZmYtYXJtLmMgKGNvZmZfYXJtX3JlbG9jYXRlX3NlY3Rpb24sIGJmZF9hcm1fcHJvY2Vzc19iZWZvcmVfYWxsb2NhdGlvbik6CglDaGFuZ2UgQVJNMjYqIHRvIEFSTV8yNiogaW4gY29tbWVudHMgdG8gbWF0Y2ggZGVmaW5pdGlvbnMuCgkoY29mZl9hcm1fYWRqdXN0X3N5bW5keCk6IFJlcGxhY2UgaGFyZC1jb2RlZCBjb25zdGFudHMgd2l0aAoJYXBwcm9wcmlhdGUgZGVmaW5pdGlvbnMgKEFSTV8yNiopLgoKMjAwMy0xMi0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvZmYtaTg2MC5jIChjb2ZmX2k4NjBfcmVsb2NfbnlpKTogUmV0dXJuIGJmZF9yZWxvY19ub3Rfc3VwcG9ydGVkLgoJKiBlbGYtbTEwMzAwLmMgKGVsZjMyX21uMTAzMDBfZmluaXNoX2hhc2hfdGFibGVfZW50cnkpOiBXYXJuaW5nIGZpeGVzLgoJKG1uMTAzMDBfZWxmX3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCSogbmxtMzItYWxwaGEuYyAoT05FUyk6IERlZmluZS4KCShubG0zMl9hbHBoYV9ob3d0b190YWJsZSk6IFVzZSBpdCB0byBhdm9pZCB3YXJuaW5ncy4KCjIwMDMtMTItMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X29iamVjdF9wKTogRGVsZXRlLgoJKGVsZl9iYWNrZW5kX29iamVjdF9wKTogRG9uJ3QgZGVmaW5lLgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9zMzkwX29iamVjdF9wKTogTm8gbmVlZCB0byBhbGxvYyB0ZGF0YSBoZXJlLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfb2JqZWN0X3ApOiBMaWtld2lzZS4KCSogZWxmMzItc3BhcmMuYyAoZWxmMzJfc3BhcmNfb2JqZWN0X3ApOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfb2JqZWN0X3ApOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jIChlbGZfczM5MF9vYmplY3RfcCk6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X2VsZl9vYmplY3RfcCk6IExpa2V3aXNlLgoKMjAwMy0xMi0wMyAgS2F6dWhpcm8gSW5hb2thICA8aW5hb2thLmthenVoaXJvQHJlbmVzYXMuY29tPgoKCSogYXJjaHVyZXMuYyAoYmZkX21hY2hfbTMycjIpOiBBZGQgbmV3IG1hY2hpbmUgdHlwZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBjcHUtbTMyci5jIDogQWRkIG5ldyBtYWNoaW5lIHR5cGUuCgkqIGVsZjMyLW0zMnIuYyAobTMycl9lbGZfb2JqZWN0X3AsIG0zMnJfZWxmX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcsCgltMzJyX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogQWRkIHN1cHBvcnQgZm9yIG5ldyBtYWNoaW5lCgl0eXBlLgoKMjAwMy0xMi0wMyAgRGF2ZSBBaXJsaWUgIDxhaXJsaWVkQGxpbnV4LmllPgoKCSogY29uZmlnLmJmZDogQWRkIHZheC1saW51eC1nbnUgdGFyZ2V0LgoJKiBjb25maWd1cmUuaW46IExpa2V3aXNlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAzLTEyLTAzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWNvZmYuYyAoZWNvZmZfbGlua19hZGRfYXJjaGl2ZV9zeW1ib2xzKTogVXBkYXRlIGZvciByZW5hbWVkCgliZmRfbGlua19oYXNoX2VudHJ5IGZpZWxkICJuZXh0IiAtPiAidW5kX25leHQiLgoJKiBsaW5rZXIuYyAoX2JmZF9saW5rX2hhc2hfbmV3ZnVuYyk6IExpa2V3aXNlLgoJKGJmZF9saW5rX2FkZF91bmRlZik6IExpa2V3aXNlLgoJKF9iZmRfZ2VuZXJpY19saW5rX2FkZF9hcmNoaXZlX3N5bWJvbHMpOiBMaWtld2lzZS4KCShfYmZkX2dlbmVyaWNfbGlua19hZGRfb25lX3N5bWJvbCk6IExpa2V3aXNlLgoJKiB4Y29mZmxpbmsuYyAoeGNvZmZfbGlua19hZGRfc3ltYm9scyk6IExpa2V3aXNlLgoKMjAwMy0xMi0wMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoQUxMX0xJTkdVQVMpOiBBZGQgcm8uCgkqIHBvL3JvLnBvOiBOZXcgUm9tYW5pYW4gdHJhbnNsYXRpb24uCgoyMDAzLTEyLTAyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMTItMDEgIERtaXRyeSBTZW15b25vdiAgPERtaXRyeS5TZW15b25vdkBva3RldC5ydT4KCgkqIGNvZmZjb2RlLmggKGNvZmZfY29tcHV0ZV9zZWN0aW9uX2ZpbGVfcG9zaXRpb25zKTogU2V0IHBhZ2Vfc2l6ZQoJdG8gMSBpbnN0ZWFkIG9mIDAgaW4gdGhlIGNhc2UgZmlsZSBhbGlnbm1lbnQgdmFsdWUgaXMgemVyby4KCjIwMDMtMTItMDEgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjb2ZmLXJzNjAwMC5jOiBSZW1vdmUgQVJHU1VTRUQgYW5kIFZBUkFSR1MuCgkqIGNvZmY2NC1yczYwMDAuYzogTGlrZXdpc2UuCgkqIGNvZmZjb2RlLmg6IExpa2V3aXNlLgoJKiBlbGYzMi12YXguYzogTGlrZXdpc2UuCgkqIGhhc2guYzogTGlrZXdpc2UuCgkqIGhwcGFic2QtY29yZS5jOiBMaWtld2lzZS4KCSogaHB1eC1jb3JlLmM6IExpa2V3aXNlLgoJKiBpaGV4LmM6IExpa2V3aXNlLgoJKiBuZXRic2QtY29yZS5jOiBMaWtld2lzZS4KCSogb3NmLWNvcmUuYzogTGlrZXdpc2UuCgkqIHBkcDExLmM6IExpa2V3aXNlLgoJKiBwdHJhY2UtY29yZS5jOiBMaWtld2lzZS4KCSogc2NvNS1jb3JlLmM6IExpa2V3aXNlLgoJKiBzZWN0aW9uLmM6IExpa2V3aXNlLgoJKiBzdW5vcy5jOiBMaWtld2lzZS4KCSogdHJhZC1jb3JlLmM6IExpa2V3aXNlLgoKMjAwMy0xMi0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1iZmQuaCAoaXNfZWxmX2hhc2hfdGFibGUpOiBUYWtlIGhhc2ggdGFiIHJhdGhlciB0aGFuIGluZm8gYXJnLgoJKiBlbGYuYyAoX2JmZF9lbGZfbWVyZ2Vfc2VjdGlvbnMpOiBBZGp1c3QgdG8gc3VpdC4KCShfYmZkX2VsZl9saW5rX2p1c3Rfc3ltcyk6IExpa2V3aXNlLgoJKGJmZF9lbGZfZ2V0X25lZWRlZF9saXN0KTogTGlrZXdpc2UuCgkoYmZkX2VsZl9nZXRfcnVucGF0aF9saXN0KTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfbGlua19oYXNoX2NvcHlfaW5kaXJlY3QpOiBSZW1vdmUgdW5uZWVkZWQgcGFyZW5zLgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfc2V0dXBfc2VjdGlvbl9saXN0cyk6IERvbid0IGNoZWNrIGhhc2ggdGFiCgljcmVhdG9yIGZsYXZvdXIuCgkoZWxmMzJfaHBwYV9zZXRfZ3ApOiBMb29rIHVwIG91dHB1dCBzZWN0aW9ucyByYXRoZXIgdGhhbiB1c2luZyBodGFiLgoJKiBlbGYzMi1pOTYwLmM6IENvbW1lbnQgZml4LiAgRm9ybWF0dGluZy4KCSogZWxmMzItbTMyci5jIChtMzJyX2VsZl9hZGRfc3ltYm9sX2hvb2spOiBVc2UgaXNfZWxmX2hhc2hfdGFibGUKCXJhdGhlciB0aGFuIHRlc3RpbmcgY3JlYXRvciBmbGF2b3VyLgoJKiBlbGYzMi1zaDY0LmMgKHNoNjRfZWxmX2FkZF9zeW1ib2xfaG9vayk6IExpa2V3aXNlLgoJKiBlbGY2NC1zaDY0LmMgKHNoNjRfZWxmNjRfYWRkX3N5bWJvbF9ob29rKTogTGlrZXdpc2UuCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfbGlua19jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IEFkanVzdCBmb3IKCWlzX2VsZl9oYXNoX3RhYmxlIGNoYW5nZS4gIFJlbW92ZSByZWR1bmRhbnQgdGVzdC4KCShiZmRfZWxmX3JlY29yZF9saW5rX2Fzc2lnbm1lbnQpOiBVc2UgaXNfZWxmX2hhc2hfdGFibGUgcmF0aGVyIHRoYW4KCXRlc3RpbmcgY3JlYXRvciBmbGF2b3VyLgoJKGVsZl9saW5rX3JlY29yZF9sb2NhbF9keW5hbWljX3N5bWJvbCk6IEFkanVzdCBmb3IgaXNfZWxmX2hhc2hfdGFibGUuCgkoX2JmZF9lbGZfZml4X3N5bWJvbF9mbGFncyk6IExpa2V3aXNlLgoJKF9iZmRfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IExpa2V3aXNlLiAgUmVtb3ZlIHJlZHVuZGFudAoJY2hlY2tzLiAgVXNlIGlzX2VsZl9oYXNoX3RhYmxlIHJhdGhlciB0aGFuIHRlc3RpbmcgY3JlYXRvciBmbGF2b3VyLgoJVXNlIGhhc2hfdGFibGUgdGhyb3VnaG91dCBpbiBwbGFjZSBvZiBpbmZvLT5oYXNoLgoJKGVsZl9hZGRfZHluYW1pY19lbnRyeSk6IEFkanVzdCBmb3IgaXNfZWxmX2hhc2hfdGFibGUgY2hhbmdlLgoJKE5BTUUoYmZkX2VsZixzaXplX2R5bmFtaWNfc2VjdGlvbnMpKTogTGlrZXdpc2UuICBSZW1vdmUgcmVkdW5kYW50CgljaGVjay4KCShlbGZfYmZkX2ZpbmFsX2xpbmspOiBBZGp1c3QgZm9yIGlzX2VsZl9oYXNoX3RhYmxlIGNoYW5nZS4KCShlbGZfbGlua19jaGVja192ZXJzaW9uZWRfc3ltYm9sKTogVXNlIGlzX2VsZl9oYXNoX3RhYmxlIHJhdGhlciB0aGFuCgl0ZXN0aW5nIGNyZWF0b3IgZmxhdm91ci4KCShlbGZfZ2Nfc2VjdGlvbnMpOiBBZGQgaXNfZWxmX2hhc2hfdGFibGUgY2hlY2suCgkoZWxmX2djX2NvbW1vbl9maW5hbGl6ZV9nb3Rfb2Zmc2V0cyk6IExpa2V3aXNlLgoJKGVsZl9iZmRfZGlzY2FyZF9pbmZvKTogQWRqdXN0IGZvciBpc19lbGZfaGFzaF90YWJsZSBjaGFuZ2UuICBSZW1vdmUKCXJlZHVuZGFudCBjaGVjay4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbGF4X3NlY3Rpb24pOiBVc2UgaXNfZWxmX2hhc2hfdGFibGUKCXJhdGhlciB0aGFuIHRlc3RpbmcgY3JlYXRvciBmbGF2b3VyLgoKMjAwMy0xMS0yOCAgQ2hyaXN0aWFuIEdyb2Vzc2xlciAgPGNocmlzQGdyb2Vzc2xlci5vcmc+CgoJKiBjcHUtejhrLmM6IENvbnZlcnQgdG8gSVNPIEM5MC4KCSogY29mZi16OGsuYzogTGlrZXdpc2UuCgoyMDAzLTExLTI3ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZi1iZmQuaCAoZWxmX2JhY2tlbmRfZGF0YTo6ZWxmX2JhY2tlbmRfbW9kaWZ5X3NlZ21lbnRfbWFwKToKCUFkZCBsaW5rIGluZm8gYXJndW1lbnQuCgkqIGVsZjMyLWkzNzAuYyAoZWxmX2JhY2tlbmRfbW9kaWZ5X3NlZ21lbnRfbWFwKTogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX21vZGlmeV9zZWdtZW50X21hcCk6IExpa2V3aXNlLgoJKiBlbGYzMi14dGVuc2EuYyAoZWxmX3h0ZW5zYV9tb2RpZnlfc2VnbWVudF9tYXApOiBMaWtld2lzZS4KCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX21vZGlmeV9zZWdtZW50X21hcCk6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfbW9kaWZ5X3NlZ21lbnRfbWFwKTogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9tb2RpZnlfc2VnbWVudF9tYXApOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5oIChfYmZkX21pcHNfZWxmX21vZGlmeV9zZWdtZW50X21hcCk6IExpa2V3aXNlLgoJKiBlbGYuYyAoYXNzaWduX2ZpbGVfcG9zaXRpb25zX2V4Y2VwdF9yZWxvY3MsCglhc3NpZ25fZmlsZV9wb3NpdGlvbnNfZm9yX3NlZ21lbnRzKTogTGlrZXdpc2UuICBBZGp1c3QgY2FsbHMuCgoyMDAzLTExLTI3ICBNYXJrIEtldHRlbmlzICA8a2V0dGVuaXNAZ251Lm9yZz4KCgkqIGVsZi5jIChlbGZjb3JlX2dyb2tfbmV0YnNkX3Byb2NpbmZvKTogTWFrZSBhIHBzZXVkb3NlY3Rpb24gb3V0CglvZiB0aGUgbm90ZS4KCjIwMDMtMTEtMjYgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoJICAgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfc2V0X2dsb2JhbF9nb3Rfb2Zmc2V0KTogRG9uJ3Qgc2V0IG5vX2ZuX3N0dWIuCgkobWlwc19lbGZfc2V0X25vX3N0dWIpOiBOZXcgZnVuY3Rpb24uCgkobWlwc19lbGZfbXVsdGlfZ290KTogQ2FsbCBpdC4KCShfYmZkX21pcHNfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IElmIGEgcmVsb2NhdGlvbiBpcyBuZWVkZWQgZm9yCglhIHNlY29uZGFyeSBHT1QgZW50cnksIGNyZWF0ZSBhbiBSX01JUFNfMzIgb3IgUl9NSVBTXzY0IHJlbG9jYXRpb24gYW5kCgl1c2UgbWlwc19lbGZfY3JlYXRlX2R5bmFtaWNfcmVsb2NhdGlvbiB0byBkZWFsIHdpdGggYW55IGNvbXBhdGliaWxpdHkKCWlzc3Vlcy4gIFN0b3JlIHRoZSBhZGp1c3RlZCBhZGRlbmQgaW4gdGhlIEdPVCBzbG90LgoKMjAwMy0xMS0yNSAgTWF0dGlhcyBFbmdkZWflcmQgIDxtYXR0aWFzQHZpcnR1dGVjaC5zZT4KCgkqIHN0YWJzLmMgKF9iZmRfbGlua19zZWN0aW9uX3N0YWJzKTogU2tpcCBOX0VYQ0wgc3RhYnMgd2hlbgoJcHJvY2VzaW5nIE5fQklOQ0wgc3RhYnMuCgoyMDAzLTExLTI1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwY190eXBlX29mX3N0dWIpOiBEaXNhbGxvdyBzdHVicyBvdGhlciB0aGFuCglwcGNfc3R1Yl9wbHRfY2FsbCB0byBzeW1ib2xzIGRlZmluZWQgaW4gc2hhcmVkIGxpYnMuCgoyMDAzLTExLTIyICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZi1iZmQuaCAoRUxGX0xJTktfUE9JTlRFUl9FUVVBTElUWV9ORUVERUQpOiBEZWZpbmUgbmV3IGZsYWcuCgkqIGVsZi5jIChfYmZkX2VsZl9saW5rX2hhc2hfY29weV9pbmRpcmVjdCk6IENvcHkgaXQuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBMaWtld2lzZS4KCShlbGZfaTM4Nl9jaGVja19yZWxvY3MpOiBTZXQgaXQuCgkoZWxmX2kzODZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogSWYgaXQgaXMgbm90IHNldCwKCWNsZWFyIHN0X3ZhbHVlIG9mIFNITl9VTkRFRiBzeW1ib2wuCgoyMDAzLTExLTIwICBKaW0gQmxhbmR5ICA8amltYkByZWRoYXQuY29tPgoKCSogY3B1LXBvd2VycGMuYyAocG93ZXJwY19jb21wYXRpYmxlKTogQW55IElTQSBpbiB0aGUgUG93ZXJQQwoJZmFtaWx5IGlzIGEgc3VwZXJzZXQgb2YgPGJmZF9hcmNoX3JzNjAwMCxiZmRfbWFjaF9yczZrPi4KCjIwMDMtMTEtMjAgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCByZWNhbGN1bGF0ZSBzeW1ib2wKCXNlY3Rpb24gZm9yIHJlbG9jIG91dHB1dCBhbmQgc3VidHJhY3QgdGhlIG91dHB1dCBzZWN0aW9uJ3MgYWRkcmVzcwoJZnJvbSB0aGUgYWRkZW5kIHdoZW4gY29udmVydGluZyBhIHJlbG9jYXRpb24gaW50byBvbmUgYWdhaW5zdCBhCglzZWN0aW9uIHN5bWJvbC4KCSogZWxmNjQtczM5MC5jIChlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAzLTExLTE4ICBKYW1lcyBFIFdpbHNvbiAgPHdpbHNvbkBzcGVjaWZpeGluYy5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKGdldF9mcHRyKTogRm9yIGZwdHJfcmVsLCB1c2UgZHlub2JqIG5vdCBhYmZkLgoJKGVsZk5OX2lhNjRfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogV2hlbiBzdHJpcHBpbmcgc2VjdGlvbnMsIGNoZWNrCglmb3IgaWE2NF9pbmZvLT5yZWxfZnB0cl9zZWMuCgoyMDAzLTExLTE4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHRvY19hZGp1c3Rpbmdfc3R1Yl9uZWVkZWQpOiBFeGl0IGVhcmx5IGlmIHNlY3Rpb24KCXNpemUgaXMgemVyby4KCjIwMDMtMTEtMTcgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogZWxmLmMgKF9iZmRfZWxmX2xpbmtfaGFzaF9jb3B5X2luZGlyZWN0KTogQ29weQoJRUxGX0xJTktfSEFTSF9ORUVEU19QTFQuICBGaXggZm9ybWF0dGluZy4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmMgKHBwY19lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmMzItczM5MC5jIChlbGZfczM5MF9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9zMzkwX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X2hhc2hfY29weV9pbmRpcmVjdCk6IExpa2V3aXNlLgoJKiBlbGYzMi14dGVuc2EuYyAoZWxmX3h0ZW5zYV9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IFJlbW92ZS4KCShlbGZfYmFja2VuZF9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IERvbid0IGRlZmluZS4KCjIwMDMtMTEtMTQgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9tZXJnZV9nb3RzKTogV2Vha2VuIGFzc2VydCBmb3IgbG9jYWwKCUdPVCBlbnRyaWVzLgoKMjAwMy0xMS0xMyAgTWFydGluIFNjaHdpZGVmc2t5ICA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KCgkqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IE9ubHkgY29udmVydCBSXzM5MF8zMgoJdG8gUl8zOTBfUkVMQVRJVkUuIENvbnZlcnQgdGhlIG90aGVyIHJlbG9jYXRpb25zIGFnYWluc3QgbG9jYWwKCXN5bWJvbHMgdG8gcmVsb2NhdGlvbnMgYWdhaW5zdCB0aGUgc3RhcnQgb2YgdGhlIHNlY3Rpb24uCgkqIGVsZjY0LXMzOTAuYyAoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IE9ubHkgY29udmVydCBSXzM5MF82NAoJdG8gUl8zOTBfUkVMQVRJVkUuIENvbnZlcnQgdGhlIG90aGVyIHJlbG9jYXRpb25zIGFnYWluc3QgbG9jYWwKCXN5bWJvbHMgdG8gcmVsb2NhdGlvbnMgYWdhaW5zdCB0aGUgc3RhcnQgb2YgdGhlIHNlY3Rpb24uCgoyMDAzLTExLTExICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmLW0xMDMwMC5jIChiZmRfbW4xMDMwMF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogVXNlCglpbmZvLT5leGVjdXRhYmxlIG5vdCBpbmZvLT5zaGFyZWQgdG8gZGVjaWRlIGlmIGEgLmludGVycCBzZWN0aW9uCglzaG91bGQgYmUgcHJlc2VudC4KCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmMzItY3Jpcy5jIChlbGZfY3Jpc19zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzcwLmMgKGkzNzBfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhrLmMgKGVsZl9tNjhrX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGYzMi12YXguYyAoZWxmX3ZheF9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmMzIteHRlbnNhLmMgKGVsZl94dGVuc2Ffc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjY0LWhwcGEuYyAoZWxmNjRfaHBwYV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZmxpbmsuaCAoc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgoyMDAzLTExLTEwICBKb25hdGhhbiBXaWxzb24gPGpvbndpbEB0cGdpLmNvbS5hdT4KCgkqIHBlWFhpZ2VuLmMgKF9iZmRfWFhpX3N3YXBfYW91dGhkcl9vdXQpOiBTd2FwIG91dCB0bHMgcG9pbnRlci4KCShfYmZkX1hYaV9maW5hbF9saW5rX3Bvc3RzY3JpcHQpOiBMb29rIGZvciBfX3Rrc191c2VkIHN5bWJvbC4gIElmCglmb3VuZCBpbml0aWFsaXNlIHRoZSB0bHMgZGF0YSBkaXJlY3RvcnkgZW50cnkuCgoyMDAzLTExLTA3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItcHBjLmMgKHBwY19lbGZfaW5zdGFsbF92YWx1ZSk6IERlbGV0ZS4KCShzaGFyZWRfc3R1Yl9lbnRyeSwgc3R1Yl9lbnRyeSk6IE1ha2UgdGhlbSBhcnJheXMgb2YgaW50cy4KCVJlbW92ZSBpbml0aWFsIGJyYW5jaC4KCShwcGNfZWxmX3JlbGF4X3NlY3Rpb24pOiBXcml0ZSBvbmUgYnJhbmNoIGFyb3VuZCBhbGwgdHJhbXBvbGluZXMKCWluc3RlYWQuICBDb3JyZWN0IGJvZ3VzIFJfUFBDX1BMVFJFTDI0IGhhbmRsaW5nLiAgQ29ycmVjdAoJYnJhbmNoIHJhbmdlIGNoZWNrLiAgT25seSB1c2Ugc2hhcmVkX3N0dWJfZW50cnkgd2hlbiBzaGFyZWQuCglUZXN0IHRoYXQgYnJhbmNoZXMgY2FuIHJlYWNoIHN0dWJzLiAgV3JpdGUgdHJhbXBvbGluZXMgb3V0IGF0CgllbmQgc28gdGhhdCBqdXN0IG9uZSByZWFsbG9jIGlzIHVzZWQuICBIYW5kbGUgbGl0dGxlLWVuZGlhbgoJbW9kZS4gIE1vdmUgcmVsZXZhbnQgY29kZSBmcm9tIHBwY19lbGZfaW5zdGFsbF92YWx1ZSB0byBoZXJlLgoJKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IE1vdmUgY29kZSBoYW5kbGluZyBSRUxBWDMyIGZyb20KCXBwY19lbGZfaW5zdGFsbF92YWx1ZSB0byBoZXJlLgoKMjAwMy0xMS0wNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX2hvd3RvX3Jhdyk7IEFkZCBlbnRyeSBmb3IgUl9QUENfUkVMQVgzMlBDLgoJKHBwY19lbGZfaW5zdGFsbF92YWx1ZSk6IEhhbmRsZSBSX1BQQ19SRUxBWDMyUEMuICBNZXJnZSBkdXBsaWNhdGUKCWNhc2VzLgoJKHNoYXJlZF9zdHViX2VudHJ5KTogQ29ycmVjdCBvcGNvZGUuCgkocHBjX2VsZl9yZWxheF9zZWN0aW9uKTogR2VuZXJhdGUgUl9QUENfUkVMQVgzMlBDIHJlbG9jcy4KCShwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBIYW5kbGUgdGhlbS4KCjIwMDMtMTEtMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYuYyAoX2JmZF9lbGZfcmVsYV9sb2NhbF9zeW0pOiBBY2NlcHQgYXNlY3Rpb24gKiosIGFuZCByZXR1cm4KCXVwZGF0ZWQgc2VjdGlvbiBpbiBjYXNlIG9mIG1lcmdlZCBzZWN0aW9uLgoJKiBlbGYtYmZkLmggKF9iZmRfZWxmX3JlbGFfbG9jYWxfc3ltKTogVXBkYXRlIGRlY2xhcmF0aW9uLgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogQWRqdXN0IGNhbGwuCgkqIGVsZi1tMTAyMDAuYyAobW4xMDIwMF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYtbTEwMzAwLmMgKG1uMTAzMDBfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWF2ci5jIChlbGYzMl9hdnJfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1jcmlzLmMgKGNyaXNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItZnIzMC5jIChmcjMwX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWZydi5jIChlbGYzMl9mcnZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1oODMwMC5jIChlbGYzMl9oOF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWkzNzAuYyAoaTM3MF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1pODYwLmMgKGVsZjMyX2k4NjBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1tMzJyLmMgKG0zMnJfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jIChlbGZfbTY4a19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLW1jb3JlLmMgKG1jb3JlX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLW1zcDQzMC5jIChlbGYzMl9tc3A0MzBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1vcGVucmlzYy5jIChvcGVucmlzY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1zcGFyYy5jIChlbGYzMl9zcGFyY19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXY4NTAuYyAodjg1MF9lbGZfcmVsb2NhdGVfc2VjdGlvbikgTGlrZXdpc2UuCgkqIGVsZjMyLXZheC5jIChlbGZfdmF4X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzIteHN0b3JteTE2LmMgKHhzdG9ybXkxNl9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi14dGVuc2EuYyAoZWxmX3h0ZW5zYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtbW1peC5jIChtbWl4X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtc2g2NC5jIChzaF9lbGY2NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoJKiBlbGYzMi1jcmlzLmMgKGNyaXNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCByZWNhbGN1bGF0ZSBzeW1ib2wKCXNlY3Rpb24gZm9yIHJlbG9jIG91dHB1dC4KCSogZWxmMzItaTM3MC5jIChpMzcwX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGsuYyAoZWxmX202OGtfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1zcGFyYy5jIChlbGYzMl9zcGFyY19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXZheC5jIChlbGZfdmF4X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCByZWNhbGN1bGF0ZSBldmVyeXRoaW5nCglmb3IgUl9QUENfUkVMQVgzMiByZWxvYy4gIERvbid0IGJvdGhlciBjaGVja2luZyBwcGNfZWxmX2luc3RhbGxfdmFsdWUKCXJldHVybiB2YWx1ZS4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uIDxSX1BQQzY0X1RPQz4pOiBTYW5pdHkgY2hlY2sKCXNlYy0+aWQuCgoyMDAzLTExLTA1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItZDEwdi5jIChleHRyYWN0X3JlbF9hZGRlbmQsIGluc2VydF9yZWxfYWRkZW5kKTogTmV3IGZ1bmN0aW9ucy4KCShlbGYzMl9kMTB2X3JlbG9jYXRlX3NlY3Rpb24pOiBVc2UgdGhlbSB0byBoYW5kbGUgLXIgcmVsb2MKCWFkanVzdG1lbnRzLCBhbmQgaW4gcGxhY2Ugb2YgX2JmZF9lbGZfcmVsYV9sb2NhbF9zeW0uCgoJKiBjcHUtaXEyMDAwLmMgKGFyY2hfaW5mb19zdHJ1Y3QpOiBXYXJuaW5nIGZpeC4KCjIwMDMtMTEtMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1ocHBhLmMgKEVMSU1JTkFURV9DT1BZX1JFTE9DUyk6IERlZmluZS4KCShlbGYzMl9ocHBhX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogRG9uJ3QgY29weSBOT05fR09UX1JFRiBvbgoJd2Vha2RlZnMuCgkoZWxmMzJfaHBwYV9jaGVja19yZWxvY3MpOiBVc2UgRUxJTUlOQVRFX0NPUFlfUkVMT0NTLgoJKGVsZjMyX2hwcGFfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuICBDb3B5IHdlYWtkZWYKCU5PTl9HT1RfUkVGLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IFVzZSBFTElNSU5BVEVfQ09QWV9SRUxPQ1MgYW5kCglTWU1CT0xfQ0FMTFNfTE9DQUwuICBEaXNjYXJkIHJlbG9jcyBmb3IgdW5kZWYgd2VhayBzeW1zIHdpdGgKCW5vbi1kZWZhdWx0IHZpc2liaWxpdHkuCgkoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogVXNlIEVMSU1JTkFURV9DT1BZX1JFTE9DUyBhbmQKCVNZTUJPTF9DQUxMU19MT0NBTC4KCjIwMDMtMTEtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBhb3V0LXRhcmdldC5oLCBhb3V0ZjEuaCwgYmZkaW8uYywgYmZkd2luLmM6IFVwZGF0ZSBjb3B5cmlnaHQgZGF0ZS4KCSogY29mZi1hcG9sbG8uYywgY29mZi1zcGFyYy5jLCBjb2ZmLXc2NS5jLCBjb2ZmLXdlMzJrLmM6IERpdHRvLgoJKiBjb2ZmLXo4ay5jLCBjb2ZmZ2VuLmMsIGNwdS1mcnYuYywgY3B1LWg4NTAwLmMsIGNwdS1ocHBhLmM6IERpdHRvLgoJKiBjcHUtaWE2NC1vcGMuYywgY3B1LW0xMDMwMC5jLCBjcHUtbWlwcy5jLCBjcHUtbXNwNDMwLmM6IERpdHRvLgoJKiBjcHUtcnM2MDAwLmMsIGNwdS16OGsuYywgZWZpLWFwcC1pYTMyLmMsIGVsZjMyLWFtMzNsaW4uYzogRGl0dG8uCgkqIGdlbi1hb3V0LmMsIGhhc2guYywgaHAzMDBocHV4LmMsIGluaXQuYywgbWFjaC1vLmM6IERpdHRvLgoJKiBubG0tdGFyZ2V0LmgsIG5sbS5jLCBzb20uaCwgc3RhYnMuYywgc3lzZGVwLmgsIHhzeW0uaDogRGl0dG8uCgoJKiBlbGYtbTEwMzAwLmMgKF9iZmRfbW4xMDMwMF9lbGZfY3JlYXRlX2dvdF9zZWN0aW9uKTogRml4CgkiZGVyZWZlcmVuY2luZyB0eXBlLXB1bm5lZCBwb2ludGVyIiB3YXJuaW5ncy4KCgkqIGFvdXQtYWRvYmUuYyAoYW91dF9hZG9iZV9zZXRfc2VjdGlvbl9jb250ZW50cyk6IENvbnN0aWZ5IGxvY2F0aW9uLgoJKiBhb3V0eC5oIChOQU1FKGFvdXQsc2V0X3NlY3Rpb25fY29udGVudHMpKTogRGl0dG8uCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogYmluYXJ5LmMgKGJpbmFyeV9zZXRfc2VjdGlvbl9jb250ZW50cyk6IERpdHRvLgoJKiBib3V0LmMgKGJfb3V0X3NldF9zZWN0aW9uX2NvbnRlbnRzKTogRGl0dG8uCgkqIGNvZmYtdGljNTR4LmMgKHRpYzU0eF9zZXRfc2VjdGlvbl9jb250ZW50cyk6IERpdHRvLgoJKiBjb2ZmY29kZS5oIChjb2ZmX3NldF9zZWN0aW9uX2NvbnRlbnRzKTogRGl0dG8uCgkqIGVjb2ZmLmMgKF9iZmRfZWNvZmZfc2V0X3NlY3Rpb25fY29udGVudHMpOiBEaXR0by4KCSogZWxmLWJmZC5oIChfYmZkX2VsZl9zZXRfc2VjdGlvbl9jb250ZW50cyk6IERpdHRvLgoJKiBlbGYuYyAoX2JmZF9lbGZfc2V0X3NlY3Rpb25fY29udGVudHMpOiBEaXR0by4KCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX3NldF9zZWN0aW9uX2NvbnRlbnRzKTogRGl0dG8uCgkqIGVsZnh4LW1pcHMuaCAoX2JmZF9taXBzX2VsZl9zZXRfc2VjdGlvbl9jb250ZW50cyk6IERpdHRvLgoJKiBpMzg2bXNkb3MuYyAobXNkb3Nfc2V0X3NlY3Rpb25fY29udGVudHMpOiBEaXR0by4KCSogaWVlZS5jIChpZWVlX3NldF9zZWN0aW9uX2NvbnRlbnRzKTogRGl0dG8uCgkqIGloZXguYyAoaWhleF9zZXRfc2VjdGlvbl9jb250ZW50cyk6IERpdHRvLgoJKiBsaWJhb3V0LmggKE5BTUUoYW91dCxzZXRfc2VjdGlvbl9jb250ZW50cykpOiBEaXR0by4KCSogbGliYmZkLWluLmggKF9iZmRfbm93cml0ZV9zZXRfc2VjdGlvbl9jb250ZW50cyk6IERpdHRvLgoJKF9iZmRfZ2VuZXJpY19zZXRfc2VjdGlvbl9jb250ZW50cyk6IERpdHRvLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogbGliYmZkLmMgKF9iZmRfZ2VuZXJpY19zZXRfc2VjdGlvbl9jb250ZW50cyk6IERpdHRvLgoJKiBsaWJlY29mZi5oIChfYmZkX2Vjb2ZmX3NldF9zZWN0aW9uX2NvbnRlbnRzKTogRGl0dG8uCgkqIGxpYm5sbS5oIChubG1OQU1FKHNldF9zZWN0aW9uX2NvbnRlbnRzKSk6IERpdHRvLgoJKHN0cnVjdCBubG1fYmFja2VuZF9kYXRhIDxubG1fbWFuZ2xlX3JlbG9jcz4pOiBEaXR0by4KCSogbW1vLmMgKG1tb19zZXRfc2VjdGlvbl9jb250ZW50cyk6IERpdHRvLgoJKiBubG0zMi1hbHBoYS5jIChubG1fYWxwaGFfbWFuZ2xlX3JlbG9jcyk6IERpdHRvLgoJKiBubG0zMi1pMzg2LmMgKG5sbV9pMzg2X21hbmdsZV9yZWxvY3MpOiBEaXR0by4KCSogbmxtMzItcHBjLmMgKG5sbV9wb3dlcnBjX21hbmdsZV9yZWxvY3MpOiBEaXR0by4KCSogbmxtMzItc3BhcmMuYyAobmxtX3NwYXJjX21hbmdsZV9yZWxvY3MpOiBEaXR0by4KCSogbmxtY29kZS5oIChubG1fc2V0X3NlY3Rpb25fY29udGVudHMpOiBEaXR0by4KCSogb2FzeXMuYyAob2FzeXNfc2V0X3NlY3Rpb25fY29udGVudHMpOiBEaXR0by4KCSogcGRwMTEuYyAoTkFNRShhb3V0LHNldF9zZWN0aW9uX2NvbnRlbnRzKSk6IERpdHRvLgoJKiBwcGNib290LmMgKHBwY2Jvb3Rfc2V0X3NlY3Rpb25fY29udGVudHMpOiBEaXR0by4KCSogc3JlYy5jIChzcmVjX3NldF9zZWN0aW9uX2NvbnRlbnRzKTogRGl0dG8uCgkqIHRhcmdldHMuYyAoQkZEX0pVTVBfVEFCTEVfV1JJVEUgPF9iZmRfc2V0X3NlY3Rpb25fY29udGVudHM+KTogRGl0dG8uCgkqIHRla2hleC5jICh0ZWtoZXhfc2V0X3NlY3Rpb25fY29udGVudHMpOiBEaXR0by4KCShtb3ZlX3NlY3Rpb25fY29udGVudHMpOiBEaXR0by4KCSogdmVyc2Fkb3MuYyAodmVyc2Fkb3Nfc2V0X3NlY3Rpb25fY29udGVudHMpOiBEaXR0by4KCSogdm1zLW1pc2MuYyAoX2JmZF9zYXZlX3Ztc19zZWN0aW9uKTogRGl0dG8uCgkqIHZtcy5jICh2bXNfc2V0X3NlY3Rpb25fY29udGVudHMpOiBEaXR0by4KCSogdm1zLmggKF9iZmRfc2F2ZV92bXNfc2VjdGlvbik6IERpdHRvLgoKMjAwMy0xMS0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGNfc2l6ZV9vbmVfc3R1Yik6IFNpemUgcmVsYnJsdC4gIEFjY2VwdCBpbmZvIGFyZwoJcmF0aGVyIHRoYW4gaHRhYi4KCShwcGM2NF9lbGZfc2l6ZV9zdHVicyk6IEFkanVzdCBwcGNfc2l6ZV9vbmVfc3R1YiB0cmF2ZXJzYWwuICBaZXJvCglyZWxicmx0IHNpemUuCgkocHBjNjRfZWxmX2J1aWxkX3N0dWJzKTogQWxsb2NhdGUgc3BhY2UgZm9yIHJlbGJybHQuCgoyMDAzLTExLTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYmZkLWluLmggKF9iZmRfZWxmX3Rsc19zZXR1cCk6IERlY2xhcmUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogZWxmLWJmZC5oIChzdHJ1Y3QgZWxmX2xpbmtfdGxzX3NlZ21lbnQpOiBEZWxldGUuCgkoc3RydWN0IGVsZl9saW5rX2hhc2hfdGFibGUpOiBBZGQgdGxzX3NlYyBhbmQgdGxzX3NpemUuCgkqIGVsZi5jIChfYmZkX2VsZl9saW5rX2hhc2hfdGFibGVfaW5pdCk6IEluaXQgdGxzX3NlYyBhbmQgdGxzX3NpemUuCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfdGxzX3NldHVwKTogTmV3IGZ1bmN0aW9uLgoJKiBlbGZsaW5rLmggKHN0cnVjdCBlbGZfZmluYWxfbGlua19pbmZvKTogUmVtb3ZlIGZpcnN0X3Rsc19zZWMuCgkoZWxmX2JmZF9maW5hbF9saW5rKTogRG9uJ3Qgc2V0IGZpcnN0X3Rsc19zZWMgaGVyZS4gIFVwZGF0ZSBjb2RlCglzYXZpbmcgdGxzIHNlZ21lbnQgaW5mbywgcm91bmQgc2VnbWVudCBzaXplIHVwLgoJKGVsZl9saW5rX291dHB1dF9leHRzeW0pOiBBZGp1c3QgY29kZSB1c2luZyB0bHMgc2VnbWVudCBpbmZvLgoJKGVsZl9saW5rX2lucHV0X2JmZCk6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzg2LmMgKGR0cG9mZl9iYXNlLCB0cG9mZik6IExpa2V3aXNlLgoJKiBlbGYzMi1zMzkwLmMgKGR0cG9mZl9iYXNlLCB0cG9mZik6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jIChkdHBvZmZfYmFzZSwgdHBvZmYpOiBMaWtld2lzZS4KCSogZWxmMzItc3BhcmMuYyAoZHRwb2ZmX2Jhc2UsIHRwb2ZmKTogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYyAoZHRwb2ZmX2Jhc2UsIHRwb2ZmKTogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jIChkdHBvZmZfYmFzZSwgdHBvZmYpOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3RwcmVsX2Jhc2UpOiBMaWtld2lzZS4KCShlbGZOTl9pYTY0X2R0cHJlbF9iYXNlKTogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmMgKGFscGhhX2dldF9kdHByZWxfYmFzZSk6IExpa2V3aXNlLgoJKGFscGhhX2dldF90cHJlbF9iYXNlKTogTGlrZXdpc2UuCgkoc3RydWN0IGFscGhhX3JlbGF4X2luZm8pOiBSZW1vdmUgdGxzX3NlZ21lbnQuCgkoZWxmNjRfYWxwaGFfcmVsYXhfZ290X2xvYWQpOiBBZGp1c3QgaW52b2NhdGlvbiBvZgoJYWxwaGFfZ2V0X2R0cHJlbF9iYXNlIGFuZCBhbHBoYV9nZXRfdHByZWxfYmFzZS4KCShlbGY2NF9hbHBoYV9yZWxheF90bHNfZ2V0X2FkZHIpOiBMaWtld2lzZS4KCShlbGY2NF9hbHBoYV9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgkoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKGVsZjY0X2FscGhhX3JlbGF4X2ZpbmRfdGxzX3NlZ21lbnQpOiBEZWxldGUuCgkqIGVsZjMyLXBwYy5jIChzdHJ1Y3QgcHBjX2VsZl9saW5rX2hhc2hfdGFibGUpOiBSZW1vdmUgdGxzX3NlYy4KCShwcGNfZWxmX3Rsc19zZXR1cCk6IENhbGwgX2JmZF9lbGZfdGxzX3NldHVwLiAgUmV0dXJuIHNlY3Rpb24uCgkocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogQWRqdXN0IHRvIHVzZSBlbGYudGxzX3NlYy4KCSogZWxmMzItcHBjLmggKHBwY19lbGZfdGxzX3NldHVwKTogVXBkYXRlLgoJKiBlbGY2NC1wcGMuYyAoc3RydWN0IHBwY19saW5rX2hhc2hfdGFibGUpOiBSZW1vdmUgdGxzX3NlYy4KCShwcGM2NF9lbGZfdGxzX3NldHVwKTogQ2FsbCBfYmZkX2VsZl90bHNfc2V0dXAuICBSZXR1cm4gc2VjdGlvbi4KCShwcGM2NF9lbGZfdGxzX29wdGltaXplKTogQWRqdXN0IHRvIHVzZSBlbGYudGxzX3NlYy4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuaCAocHBjNjRfZWxmX3Rsc19zZXR1cCk6IFVwZGF0ZS4KCjIwMDMtMTEtMDMgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogZWxmLWJmZC5oIChzdHJ1Y3QgZWxmX2JhY2tlbmRfZGF0YSk6IFJlbW92ZSBwbHRfaGVhZGVyX3NpemUuCgkqIGVsZi1tMTAzMDAuYyAoZWxmX2JhY2tlbmRfcGx0X2hlYWRlcl9zaXplKTogRG9uJ3QgZGVmaW5lLgoJKiBlbGYzMi1hcm0uaCAoZWxmX2JhY2tlbmRfcGx0X2hlYWRlcl9zaXplKTogRG9uJ3QgZGVmaW5lLgoJKiBlbGYzMi1jcmlzLmMgKGVsZl9iYWNrZW5kX3BsdF9oZWFkZXJfc2l6ZSk6IERvbid0IGRlZmluZS4KCSogZWxmMzItaTM4Ni5jIChlbGZfYmFja2VuZF9wbHRfaGVhZGVyX3NpemUpOiBEb24ndCBkZWZpbmUuCgkqIGVsZjMyLW1pcHMuYyAoZWxmX2JhY2tlbmRfcGx0X2hlYWRlcl9zaXplKTogRG9uJ3QgZGVmaW5lLgoJKiBlbGYzMi1wcGMuYyAoZWxmX2JhY2tlbmRfcGx0X2hlYWRlcl9zaXplKTogRG9uJ3QgZGVmaW5lLgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9iYWNrZW5kX3BsdF9oZWFkZXJfc2l6ZSk6IERvbid0IGRlZmluZS4KCSogZWxmMzItc2guYyAoZWxmX2JhY2tlbmRfcGx0X2hlYWRlcl9zaXplKTogRG9uJ3QgZGVmaW5lLgoJKiBlbGYzMi1zcGFyYy5jIChlbGZfYmFja2VuZF9wbHRfaGVhZGVyX3NpemUpOiBEb24ndCBkZWZpbmUuCgkqIGVsZjY0LWFscGhhLmMgKGVsZl9iYWNrZW5kX3BsdF9oZWFkZXJfc2l6ZSk6IERvbid0IGRlZmluZS4KCSogZWxmNjQtaHBwYS5jIChlbGZfYmFja2VuZF9wbHRfaGVhZGVyX3NpemUpOiBEb24ndCBkZWZpbmUuCgkqIGVsZjY0LW1pcHMuYyAoZWxmX2JhY2tlbmRfcGx0X2hlYWRlcl9zaXplKTogRG9uJ3QgZGVmaW5lLgoJKiBlbGY2NC1wcGMuYyAoZWxmX2JhY2tlbmRfcGx0X2hlYWRlcl9zaXplKTogRG9uJ3QgZGVmaW5lLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9iYWNrZW5kX3BsdF9oZWFkZXJfc2l6ZSk6IERvbid0IGRlZmluZS4KCSogZWxmNjQtc2g2NC5jIChlbGZfYmFja2VuZF9wbHRfaGVhZGVyX3NpemUpOiBEb24ndCBkZWZpbmUuCgkqIGVsZjY0LXNwYXJjLmMgKGVsZl9iYWNrZW5kX3BsdF9oZWFkZXJfc2l6ZSk6IERvbid0IGRlZmluZS4KCSogZWxmNjQteDg2LTY0LmMgKGVsZl9iYWNrZW5kX3BsdF9oZWFkZXJfc2l6ZSk6IERvbid0IGRlZmluZS4KCSogZWxmbjMyLW1pcHMuYyAoZWxmX2JhY2tlbmRfcGx0X2hlYWRlcl9zaXplKTogRG9uJ3QgZGVmaW5lLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZl9iYWNrZW5kX3BsdF9oZWFkZXJfc2l6ZSk6IERvbid0IGRlZmluZS4KCSogZWxmeHgtdGFyZ2V0LmggKGVsZl9iYWNrZW5kX3BsdF9oZWFkZXJfc2l6ZSk6IERvbid0IGRlZmluZQoJb3IgaW5jbHVkZSBpbiB0YXJnZXQgaW5pdGlhbGl6ZXIuCgoyMDAzLTExLTAzICBBbmRyZXcgQ2FnbmV5ICA8Y2FnbmV5QHJlZGhhdC5jb20+CgoJKiBzZWN0aW9uLmMgKGJmZF9zZXRfc2VjdGlvbl9jb250ZW50cyk6IE1ha2UgdGhlICJsb2NhdGlvbiIgYnVmZmVyCgljb25zdGFudC4KCSogYmZkLWluMi5oOiBSZS1nZW5lcmF0ZS4KCjIwMDMtMTAtMzAgIEFuZHJldyBDYWduZXkgIDxjYWduZXlAcmVkaGF0LmNvbT4KCgkqIHN5bXMuYzogUmVwbGFjZSAic3RydWN0IHN5bWJvbF9jYWNoZV9lbnRyeSIgd2l0aCAic3RydWN0CgliZmRfc3ltYm9sIi4KCSogdm1zLmgsIHRhcmdldHMuYywgc2VjdGlvbi5jLCByZWxvYy5jLCBwZWljb2RlLmg6IERpdHRvLgoJKiBtaXBzYnNkLmMsIGVsZi5jLCBsaW5rZXIuYywgZWxmLWJmZC5oLCBlY29mZi5jOiBEaXR0by4KCSogY3B1LXo4ay5jLCBjcHUtbnMzMmsuYywgY3B1LWg4NTAwLmMsIGJmZC5jLCBiZmQtaW4uaDogRGl0dG8uCgkqIGJmZC1pbjIuaDogUmUtZ2VuZXJhdGUuCgoyMDAzLTEwLTMwICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LWlhNjQuYzogSW5jbHVkZSBvYmphbGxvYy5oLCBoYXNodGFiLmguCgkoc3RydWN0IGVsZk5OX2lhNjRfbG9jYWxfaGFzaF9lbnRyeSk6IFJlbW92ZSByb290LiBBZGQgaWQgYW5kIHJfc3ltCglmaWVsZHMuCgkoc3RydWN0IGVsZk5OX2lhNjRfbG9jYWxfaGFzaF90YWJsZSk6IFJlbW92ZS4KCShzdHJ1Y3QgZWxmTk5faWE2NF9saW5rX2hhc2hfdGFibGUpOiBDaGFuZ2UgbG9jX2hhc2hfdGFibGUncyB0eXBlCgl0byBodGFiX3QuICBBZGQgbG9jX2hhc2hfbWVtb3J5IGZpZWxkLgoJKGVsZk5OX2lhNjRfbG9jYWxfaGFzaF90YWJsZV9pbml0LCBlbGZOTl9pYTY0X25ld19sb2NfaGFzaF9lbnRyeSk6CglSZW1vdmVkLgoJKGVsZk5OX2lhNjRfbG9jYWxfaHRhYl9oYXNoLCBlbGZOTl9pYTY0X2xvY2FsX2h0YWJfZXEpOiBOZXcKCWZ1bmN0aW9ucy4KCShlbGZOTl9pYTY0X2hhc2hfdGFibGVfY3JlYXRlKTogVXNlIGhhc2h0YWIuaCBoYXNodGFibGUgZm9yCglsb2NfaGFzaF90YWJsZS4gIEluaXRpYWxpemUgbG9jX2hhc2hfbWVtb3J5LgoJKGVsZk5OX2lhNjRfaGFzaF90YWJsZV9mcmVlKTogTmV3IGZ1bmN0aW9uLgoJKGVsZk5OX2lhNjRfbG9jYWxfaGFzaF9sb29rdXApOiBSZW1vdmUuCgkoZWxmTk5faWE2NF9sb2NhbF9keW5fc3ltX3RodW5rKTogQ2hhbmdlIGludG8gaHRhYl90cmF2ZXJzZQoJY2FsbGJhY2suCgkoZWxmTk5faWE2NF9keW5fc3ltX3RyYXZlcnNlKTogVXNlIGh0YWJfdHJhdmVyc2UuCgkoZ2V0X2xvY2FsX3N5bV9oYXNoKTogVXNlIGhhc2h0YWIuaCBoYXNodGFibGUgZm9yIGxvY19oYXNoX3RhYmxlLgoJKGJmZF9lbGZOTl9iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBEZWZpbmUuCgoyMDAzLTEwLTMwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmbGluay5jIChfYmZkX2VsZl9saW5rX3JlY29yZF9keW5hbWljX3N5bWJvbCk6IE1vZGlmeSB2ZXJzaW9uZWQKCXN5bWJvbCBzdHJpbmcgaW4gcGxhY2UuCgoyMDAzLTEwLTMwICBKaW0gQmxhbmR5ICA8amltYkByZWRoYXQuY29tPgoKCSogY3B1LXJzNjAwMC5jIChyczYwMDBfY29tcGF0aWJsZSk6IENoZWNrIHRoZSBjb3JyZWN0IGFyY2hfaW5mbwoJb2JqZWN0J3MgbWFjaCBmaWVsZDogYWxsIFBvd2VyUEMgbWFjaGluZXMgYXJlIHN1cGVyc2V0cyBvZiB0aGUKCW9yaWdpbmFsIHJzNjAwMCwgYnV0IG5vdCBsYXRlciByczYwMDAgbWFjaGluZXMuCgoyMDAzLTEwLTMwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZHdhcmYyLmMgKHN0cnVjdCBhdHRyaWJ1dGUpOiBEZWxldGUgInVuc25kIiwgInNuZCIgYW5kICJhZGRyIi4KCUFkZCAidmFsIiBhbmQgInN2YWwiIGZpZWxkcy4KCShEV19TVFJJTkcsIERXX1VOU05ELCBEV19CTE9DSywgRFdfU05ELCBEV19BRERSKTogRGVsZXRlLgoJKHJlYWRfYXR0cmlidXRlX3ZhbHVlKTogRXhwYW5kIGFuZCBhZGp1c3QgRFdfKiBvY2N1cnJlbmNlcy4KCShzY2FuX3VuaXRfZm9yX2Z1bmN0aW9ucywgcGFyc2VfY29tcF91bml0KTogTGlrZXdpc2UuCgoyMDAzLTEwLTMwICBQaGlsIEVkd2FyZHMgIDxwaGlsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcuYmZkIChhcm0tKi12eHdvcmtzKTogIFJlbW92ZSBzZXBhcmF0ZSBzdGFuemE7IG1lcmdlIHdpdGgKCW90aGVyIGNvbW1vbiBFTEYgdHJpcGxlcy4KCShpWzMtN104Ni0qLXZ4d29ya3MpOiAgQ2hhbmdlIHRvIEVMRiBmb3JtYXQuCgkobWlwcyotKi13aW5kaXNzKTogIE5ldyB0cmlwbGUsIGFkZCB0byBjb21tb24gTUlQUy9FTEYgc3RhbnphLgoJKHNoLSotdnh3b3Jrcyk6ICBOZXcgc3RhbnphLgoKMjAwMy0xMC0zMCAgTGFycyBLbm9sbCAgPGxhcnNAdHJvbGx0ZWNoLmNvbT4KCSAgICBNaWNoYWVsIE1hdHogIDxtYXR6QHN1c2UuZGU+CgkgICAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgkgICAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIG1lcmdlLmMgKHN0cnVjdCBzZWNfbWVyZ2Vfc2VjX2luZm8pOiBVcGRhdGUgY29tbWVudC4KCShzdHJ1Y3Qgc2VjX21lcmdlX2hhc2hfZW50cnkpOiBSZW1vdmUgZW50c2l6ZS4KCShzZWNfbWVyZ2VfaGFzaF9sb29rdXApOiBPbmx5IGFkanVzdCBhbGlnbm1lbnQgd2hlbiBjcmVhdGluZy4KCShzZWNfbWVyZ2VfZW1pdCk6IFJlbW92ZSByZWdpc3RlciBrZXl3b3JkLgoJKGNtcGxlbmd0aGVudHJ5LCBsYXN0NF9lcSwgbGFzdF9lcSk6IERlbGV0ZS4KCShzdHJyZXZjbXAsIHN0cnJldmNtcF9hbGlnbiwgaXNfc3VmZml4KTogTmV3LgoJKG1lcmdlX3N0cmluZ3MpOiBVc2UgdGhlbSB0byBpbXBsZW1lbnQgZmFzdCBzdWZmaXggbWVyZ2luZy4KCSogZWxmLXN0cnRhYi5jIChzdHJ1Y3QgZWxmX3N0cnRhYl9oYXNoX2VudHJ5KTogVXBkYXRlIGNvbW1lbnRzLgoJTWFrZSAibGVuIiBzaWduZWQuCgkoX2JmZF9lbGZfc3RydGFiX2FkZCk6IExvc2Ugb24gPjJHIHN0cmluZ3MuCgkoX2JmZF9lbGZfc3RydGFiX2VtaXQpOiBEb24ndCBlbWl0IHN0cmluZ3Mgd2l0aCBsZW4gPCAwLgoJKGNtcGxlbmd0aGVudHJ5LCBsYXN0NF9lcSk6IERlbGV0ZS4KCShzdHJyZXZjbXAsIGlzX3N1ZmZpeCk6IE5ldy4KCShfYmZkX2VsZl9zdHJ0YWJfZmluYWxpemUpOiBSZXdvcmsgdG8gaW1wbGVtZW50IGZhc3Qgc3VmZml4IG1lcmdpbmcuCgoyMDAzLTEwLTI5ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fZmluYWxfbGlua19yZWxvY2F0ZSk6IE1vdmUgY2hlY2sgZm9yCglTRUNfQUxMT0MuCgoyMDAzLTEwLTI5ICBQaGlsaXAgQmx1bmRlbGwgIDxwaGlsYkBnbnUub3JnPgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9wbHQwX2VudHJ5LCBlbGYzMl9hcm1fcGx0X2VudHJ5KTogTmV3Cgljb2RlIHNlcXVlbmNlLgoJKFBMVF9IRUFERVJfU0laRSk6IE5ldy4KCShzdHJ1Y3QgZWxmMzJfYXJtX3BjcmVsX3JlbG9jc19jb3BpZWQpOiBSZW5hbWUgdG8gLi4uCgkoc3RydWN0IGVsZjMyX2FybV9yZWxvY3NfY29waWVkKTogLi4uIHRoaXMuICBDb3VudCBib3RoCglwY3JlbCBhbmQgbm9uLXBjcmVsIHJlbG9jcy4gIEFsbCB1c2VzIHVwZGF0ZWQuCgkoc3RydWN0IGVsZjMyX2FybV9saW5rX2hhc2hfdGFibGUpOiBBZGQgcG9pbnRlcnMgdG8gZHluYW1pYyBsaW5rZXIKCXNlY3Rpb25zIGFuZCBzeW1ib2wvc2VjdGlvbiBtYXBwaW5nIGNhY2hlLgoJKGNyZWF0ZV9nb3Rfc2VjdGlvbik6IE5ldy4KCShlbGYzMl9hcm1fY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBOZXcuCgkoZWxmX2JhY2tlbmRfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBVc2UgaXQuCgkoZWxmMzJfYXJtX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBTdXBwb3J0IGdhcmJhZ2UgY29sbGVjdGlvbiBvZiByZWxvY3MuCgkoZWxmMzJfYXJtX2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLgoJKGVsZjMyX2FybV9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCShlbGYzMl9hcm1fY29weV9pbmRpcmVjdF9zeW1ib2wpOiBOZXcuCgkoZWxmMzJfYXJtX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBJbml0aWFsaXNlIG5ldyBmaWVsZHMuCgkoZWxmMzJfYXJtX2djX3N3ZWVwX2hvb2spOiBJbXBsZW1lbnQuCgkoZWxmMzJfYXJtX2Rpc2NhcmRfY29waWVzKTogRGVsZXRlLgoJKGVsZjMyX2FybV9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBVc2UgbmV3IFBMVCBjb2RlLgoJKGVsZjMyX2FybV9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKGVsZl9iYWNrZW5kX2Nhbl9yZWZjb3VudCk6IERlZmluZS4KCShlbGZfYmFja2VuZF9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IExpa2V3aXNlLgoJKGVsZl9iYWNrZW5kX3BsdF9oZWFkZXJfc2l6ZSk6IFNldCB0byBQTFRfSEVBREVSX1NJWkUuCgoyMDAzLTEwLTI5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKGVsZl9iYWNrZW5kX2dyb2tfcHJzdGF0dXMpOiBEZWZpbmUuCgkoZWxmX2JhY2tlbmRfZ3Jva19wc2luZm8pOiBEZWZpbmUuCgkocHBjNjRfZWxmX2dyb2tfcHJzdGF0dXMsIHBwYzY0X2VsZl9ncm9rX3BzaW5mbyk6IE5ldyBmdW5jdGlvbnMuCgoJKiBlbGYuYyAoX2JmZF9lbGZjb3JlX21ha2VfcHNldWRvc2VjdGlvbik6IEFsbG93IG11bHRpcGxlCglzZWN0aW9ucyB3aXRoIHRoZSBzYW1lIG5hbWUuCgkoZWxmY29yZV9ncm9rX2x3cHN0YXR1cyk6IExpa2V3aXNlLgoJKGVsZmNvcmVfZ3Jva193aW4zMnBzdGF0dXMpOiBMaWtld2lzZS4KCShlbGZjb3JlX2dyb2tfbm90ZSk6IExpa2V3aXNlLgoJKGVsZmNvcmVfZ3Jva19udG9fc3RhdHVzKTogTGlrZXdpc2UuCgkoZWxmY29yZV9ncm9rX250b19ncmVncyk6IExpa2V3aXNlLgoKMjAwMy0xMC0yNyAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBOZXZlciBza2lwIGR5bmFtaWMKCW9iamVjdHMuCgoyMDAzLTEwLTE0ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2NyZWF0ZV9nb3Rfc2VjdGlvbik6IEluaXRpYWxpemUgZ2xvYmFsX2dvdG5vLgoKMjAwMy0xMC0yNCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmbGluay5oIChOQU1FKGJmZF9lbGYsc2l6ZV9keW5hbWljX3NlY3Rpb25zKSk6IExvb2sgdXAKCWhhc2ggdGFibGUgZm9yIHJlYWwgc3ltYm9scy4KCjIwMDMtMTAtMjMgIE1pY2hhZWwgU255ZGVyICA8bXNueWRlckByZWRoYXQuY29tPgoKCSogc2VjdGlvbi5jIChhc2VjdGlvbik6IEZpeCB0eXBvIGluIGNvbW1lbnQuCgoyMDAzLTEwLTIzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKGdldF90bHNfbWFzayk6IEFkZCB0b2Nfc3ltbmR4IHBhcmFtLCBzYXZlIHRvYwoJcmVsb2Mgc3ltYm9sIGluZGV4IHRvIGl0LiAgRG9uJ3QgYWxsb3cgZ2Qgc3ltcyBpbiBzaGFyZWQgbGlicwoJdG8gYmUgb3B0aW1pemVkLgoJKHBwYzY0X2VsZl90bHNfb3B0aW1pemUpOiBBZGp1c3QgZ2V0X3Rsc19tYXNrIGNhbGwuCgkocHBjNjRfZWxmX3NpemVfc3R1YnMpOiBMaWtld2lzZS4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IENoZWNrIHRoYXQgdGxzIHJlbG9jcyBhcmUgb25seSB1c2VkCgl3aXRoIHRscyBzeW1zLCBhbmQgc2ltaWxhcmx5IGZvciBub24tdGxzLiAgQ29ycmVjdCBzeW1ib2wgdXNlZAoJd2hlbiBvcHRpbWl6aW5nIHRvYyB0bHMgY29kZS4KCjIwMDMtMTAtMjIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwZWljb2RlLmggKGNvZmZfc3dhcF9zY25oZHJfaW4pOiBPbmx5IHJlbW92ZSBwYWRkaW5nIHdoZW4KCXByb2Nlc3NpbmcgYW4gZXhlY3V0YWJsZS4KCjIwMDMtMTAtMjIgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmbGluay5jIChfYmZkX2VsZl9leHBvcnRfc3ltYm9sKTogQWRqdXN0IGZvciBnbG9iYWxzIGFuZCBsb2NhbHMKCWZpZWxkIGNoYW5nZXMuCgkoX2JmZF9lbGZfbGlua19hc3NpZ25fc3ltX3ZlcnNpb24pOiBMaWtld2lzZS4KCSogZWxmbGluay5oIChzaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCjIwMDMtMTAtMjEgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPiwKCSAgICBNaWNoYWVsIFNueWRlciAgPG1zbnlkZXJAcmVkaGF0LmNvbT4KCgkqIGFyY2h1cmVzLmMgKGJmZF9tYWNoX3NoNGEsIGJmZF9tYWNoX3NoNGFsX2RzcCwgYmZkX21hY2hfc2g0X25vZnB1LAoJYmZkX21hY2hfc2g0YV9ub2ZwdSk6IE5ldyBtYWNoaW5lIHR5cGVzLgoJKiBiZmQtaW4yLmg6IFJlYnVpbHQuCgkqIGNwdS1zaC5jIChjb21wYXRpYmxlKTogUmVtb3ZlIHVudXNlZCBmdW5jdGlvbi4KCShTSDRBX05FWFQsIFNINEFMX0RTUF9ORVhULCBTSDRfTk9GUFVfTkVYVCwgU0g0QV9OT0ZQVV9ORVhUKTogTmV3LgoJKGFyY2hfaW5mb19zdHJ1Y3QpOiBBZGQgc2g0YSwgc2g0YWxfZHNwLCBzaDQtbm9mcHUgYW5kIHNoNGEtbm9mcHUuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9zZXRfbWFjaF9mcm9tX2ZsYWdzKTogSGFuZGxlIHRoZW0uCgoyMDAzLTEwLTIxICBXb3V0ZXIgdmFuIEhleXN0IDx3b3V0ZXJAdmlkaWNvZGUubmw+CgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBDb3JyZWN0IHRleHQKCWRlc2NyaWJpbmcgbWlzbWF0Y2hlZCBmb3JtYXRzIGludm9sdmluZyB0aGUgTWF2ZXJpY2sgRlAgdHlwZS4KCjIwMDMtMTAtMjEgIEFuaWwgUGFyYW5qcGUgIDxhbmlscDFAS1BJVEN1bW1pbnMuY29tPgoKCSogYmluYXJ5LmMgKGJpbmFyeV9vYmplY3RfcCk6IFBhc3MgbWFjaGluZSBmbGFnIGFsb25nIHdpdGgKCWFyY2hpdGVjdHVyZS4KCjIwMDMtMTAtMjEgIFRob3JzdGVuIEJyZWhtICA8YnJlaG1AZ214Lm5ldD4KCgkqIGFyY2h1cmVzLmMgKGJmZF9kZWZhdWx0X3NjYW4pOiBBZGQgc3VwcG9ydCBmb3IgbWNmNTI4eC4KCSogaWVlZS5jIChpZWVlX3dyaXRlX3Byb2Nlc3Nvcik6IExpa2V3aXNlLgoKMjAwMy0xMC0yMSAgUGV0ZXIgQmFyYWRhICA8cGJhcmFkYUBtYWlsLndtLnNwcy5tb3QuY29tPgoJICAgIEJlcm5hcmRvIElubm9jZW50aSAgPGJlcm5pZUBkZXZlbGVyLmNvbT4KCgkqIGFyY2h1cmVzLmM6IEFkZCBNQ0Y1Mjh4IChNQ0Z2NCkgc3VwcG9ydC4KCSogY3B1LW02OGsuYyAoYXJjaF9pbmZvX3N0cnVjdCk6IExpa2V3aXNlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAzLTEwLTIwICBBbmRyZXcgQ2FnbmV5ICA8Y2FnbmV5QHJlZGhhdC5jb20+CgoJKiB0YXJnZXRzLmM6IFJlcGxhY2UgInN0cnVjdCBzZWMiIHdpdGggInN0cnVjdCBiZmRfc2VjdGlvbiIKCSogc3ltcy5jLCBzcGFyY2x5bnguYywgc2VjdGlvbi5jLCBvcG5jbHMuYzogRGl0dG8uCgkqIGxpYmNvZmYtaW4uaCwgbGliYmZkLWluLmgsIGVsZnh4LXRhcmdldC5oOiBEaXR0by4KCSogZWxmLmMsIGNvZmZnZW4uYywgYmZkLmMsIGJmZC1pbi5oLCBhb3V0ZjEuaDogRGl0dG8uCgkqIGFvdXQtdGljMzAuYywgYW91dC10YXJnZXQuaDoKCSogYmZkLWluMi5oLCBsaWJjb2ZmLmgsIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoKMjAwMy0xMC0xOCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCVN1cHBvcnQgbGlua2VyIHJlbGF4YXRpb24gb2YgbmV3IFJfTU1JWF9QVVNISl9TVFVCQkFCTEUgcmVsb2NzLgoJKiBlbGY2NC1tbWl4LmMgKE1BWF9QVVNISl9TVFVCX1NJWkUpOiBOZXcgbWFjcm8uCgkoc3RydWN0IF9tbWl4X2VsZl9zZWN0aW9uX2RhdGEpOiBOZXcgbWVtYmVyIHBqcy4KCShtbWl4X3NldF9yZWxheGFibGVfc2l6ZSwgbW1peF9lbGZfZ2V0X3NlY3Rpb25fY29udGVudHMpOiBOZXcKCWZ1bmN0aW9ucy4KCShlbGZfbW1peF9ob3d0b190YWJsZSk6IE5ldyBlbnRyeSBmb3IgUl9NTUlYX1BVU0hKX1NUVUJCQUJMRS4KCShtbWl4X3JlbG9jX21hcCk6IERpdHRvLgoJKG1taXhfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBIYW5kbGUgUl9NTUlYX1BVU0hKX1NUVUJCQUJMRS4KCShtbWl4X2ZpbmFsX2xpbmtfcmVsb2NhdGUsIG1taXhfZWxmX2NoZWNrX2NvbW1vbl9yZWxvY3MpOiBEaXR0by4KCShtbWl4X2VsZl9wZXJmb3JtX3JlbG9jYXRpb24pOiBEaXR0by4gIERvbid0IG1hcmsgcGFyYW1ldGVyIGFkZHIKCXVudXNlZC4KCShtbWl4X2VsZl9jaGVja19yZWxvY3MpOiBNb3ZlIGVhcmx5IHJldHVybiB0byBhZnRlcgoJbW1peF9lbGZfY2hlY2tfY29tbW9uX3JlbG9jcyBjYWxsLgoJKG1taXhfZWxmX3N5bWJvbF9wcm9jZXNzaW5nKTogRml4IGN1dC1hbmQtcGFzdG8gaW4gaGVhZCBjb21tZW50LgoJKF9iZmRfbW1peF9iZWZvcmVfbGlua2VyX2FsbG9jYXRpb24pOiBSZW5hbWUgZnJvbQoJX2JmZF9tbWl4X3ByZXBhcmVfbGlua2VyX2FsbG9jYXRlZF9ncmVncy4gIEFsbCByZWZlcmVycyBjaGFuZ2VkLgoJQXJyYW5nZSB0byBzZXQgdGhlIGluaXRpYWwgcmVsYXhhYmxlIHNpemUgb2Ygc2VjdGlvbnMuCgkoX2JmZF9tbWl4X2FmdGVyX2xpbmtlcl9hbGxvY2F0aW9uKTogUmVuYW1lIGZyb20KCV9iZmRfbW1peF9maW5hbGl6ZV9saW5rZXJfYWxsb2NhdGVkX2dyZWdzLgoJKG1taXhfZWxmX3JlbGF4X3NlY3Rpb24pOiBSZWxheCBhIFJfTU1JWF9QVVNISl9TVFVCQkFCTEUgcmVsb2MuCgkoYmZkX2VsZjY0X2dldF9zZWN0aW9uX2NvbnRlbnRzKTogRGVmaW5lLgoJKiByZWxvYy5jOiBBZGQgRU5VTVggZm9yIEJGRF9SRUxPQ19NTUlYX1BVU0hKX1NUVUJCQUJMRS4KCSogbGliYmZkLmgsIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCgkqIHJlbG9jLmMgKGJmZF9nZW5lcmljX3JlbGF4X3NlY3Rpb24pOiBEZWZhdWx0LXNldAoJc2VjdGlvbi0+X2Nvb2tlZF9zaXplIGhlcmUuCgkoYmZkX2dlbmVyaWNfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogRG9uJ3Qgc2V0IGl0IGhlcmUuCglFeHBsYWluIHdoeS4KCjIwMDMtMTAtMTcgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IFNraXAgcmVsb2NhdGlvbiBpZgoJb3V0cHV0IHNlY3Rpb24gaGFzIGJlZW4gZGlzY2FyZGVkLgoKMjAwMy0xMC0xNyAgU2hyaW5pdmFzIEF0cmUgIDxzaHJpbml2YXNhQEtQSVRDdW1taW5zLmNvbT4KCgkqIGNvZmYtaDgzMDAuYyAoZnVuY3ZlY19oYXNoX25ld2Z1bmMpOiBIYW5kbGUgbm9ybWFsIG1vZGUuCgkoaDgzMDBfcmVsb2MxNl9leHRyYV9jYXNlcyk6IExpa2V3aXNlLgoJKGg4MzAwX2JmZF9saW5rX2FkZF9zeW1ib2xzKTogTGlrZXdpc2UuCgoyMDAzLTEwLTE3IERoYW5hbmpheSBEZXNocGFuZGUgPGRoYW5hbmpheWRAa3BpdGN1bW1pbnMuY29tPgoKCSogY3B1LWg4MzAwLmMgKGg4MzAwc3huX2luZm9fc3RydWN0KTogQ29ycmVjdCBhZGRyZXNzIHNpemUuCgkoaDgzMDBzbl9pbmZvX3N0cnVjdCk6IExpa2V3aXNlLgoJKGg4MzAwaG5faW5mb19zdHJ1Y3QpOiBMaWtld2lzZS4KCjIwMDMtMTAtMTYgIFBhdmVsIFJvc2tpbiAgPHByb3NraUBnbnUub3JnPgoKCSogcGVYWGlnZW4uYyAoX2JmZF9YWGlfc3dhcF9hb3V0aGRyX291dCk6IERvbid0IGNhbGN1bGF0ZSBpbWFnZSBzaXplCglmb3Igc2VjdGlvbnMgd2hpY2ggbGFjayBzaXplIGluZm8uCgoyMDAzLTEwLTE3ICBEYW5ueSBTbWl0aCAgPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogY29uZmlndXJlLmhvc3Q6IEFkZCBfX1VTRV9NSU5HV19GU0VFSyB0byBIREVGSU5FUyBmb3IKCSBtaW5ndzMyLgoKMjAwMy0xMC0xNiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmbGluay5oIChOQU1FKGJmZF9lbGYsc2l6ZV9keW5hbWljX3NlY3Rpb25zKSk6IEFsc28gd2FybgoJdW5kZWZpbmVkIHBhdHRlcm5zIHdpdGggJyonLgoKMjAwMy0xMC0xNiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmLWVoLWZyYW1lLmMgKF9iZmRfZWxmX2Rpc2NhcmRfc2VjdGlvbl9laF9mcmFtZSk6IERvbid0Cgl1c2UgdGhlIGxhc3QgQ0lFIGZyb20gYSBkaWZmZXJlbnQgc2VjdGlvbi4KCShfYmZkX2VsZl93cml0ZV9zZWN0aW9uX2VoX2ZyYW1lKTogRG9uJ3QgcGFkIGJleW9uZCB0aGUgcmF3CglzaXplIG9mIHRoZSBvdXRwdXQgc2VjdGlvbi4KCjIwMDMtMTAtMDcgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CgoJKiBlbGYuYyAoX2JmZF9lbGZfbWFrZV9zZWN0aW9uX2Zyb21fcGhkcik6IFNldCBhbGlnbm1lbnRfcG93ZXIgb2YKCW5ldyBzZWN0aW9uIGZyb20gcF9hbGlnbiBoZWFkZXIgZmllbGQuCgoyMDAzLTEwLTE2ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGYzMi14dGVuc2EuYyAoeHRlbnNhX3JlYWRfdGFibGVfZW50cmllcyk6IFRoZSBleHRlcm5hbCBzaXplCglvZiBlbnRyeSBpcyA4IGJ5dGVzLgoKMjAwMy0xMC0xNSAgQW5kcmV3IENhZ25leSAgPGNhZ25leUByZWRoYXQuY29tPgoKCSogdGFyZ2V0cy5jIChCRkRfSlVNUF9UQUJMRV9TWU1CT0xTKTogUmVwbGFjZSBOQU1FIyNfZ2V0X3N5bXRhYgoJd2l0aCBOQU1FIyNfY2Fub25pY2FsaXplX3N5bXRhYi4KCSogbGliY29mZi1pbi5oIChjb2ZmX2Nhbm9uaWNhbGl6ZV9zeW10YWIpOiBVcGRhdGUuCgkqIHhzeW0uaCAoYmZkX3N5bV9jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiBlbGYtYmZkLmggKF9iZmRfZWxmX2Nhbm9uaWNhbGl6ZV9zeW10YWIpOiBVcGRhdGUuCgkqIGNvZmZnZW4uYyAoY29mZl9jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiBsaWJiZmQtaW4uaCAoX2JmZF9ub3N5bWJvbHNfY2Fub25pY2FsaXplX3N5bXRhYik6IFVwZGF0ZS4KCSogbGlibmxtLmggKG5sbU5BTUUoY2Fub25pY2FsaXplX3N5bXRhYikpOiBVcGRhdGUuCgkqIGllZWUuYyAoaWVlZV92ZWMpOiBVcGRhdGUgY29tbWVudC4KCSogbGliZWNvZmYuaCAoX2JmZF9lY29mZl9jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiBtbW8uYyAobW1vX2Nhbm9uaWNhbGl6ZV9zeW10YWIpOiBVcGRhdGUuCgkqIG5sbS10YXJnZXQuaCAobmxtX2Nhbm9uaWNhbGl6ZV9zeW10YWIpOiBVcGRhdGUuCgkqIG5sbWNvZGUuaCAobmxtX2Nhbm9uaWNhbGl6ZV9zeW10YWIpOiBVcGRhdGUuCgkqIGkzODZtc2Rvcy5jIChtc2Rvc19jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiBocDMwMGhwdXguYyAoTVkgKGNhbm9uaWNhbGl6ZV9zeW10YWIpKTogVXBkYXRlLgoJKiBvYXN5cy5jIChvYXN5c19jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiBzb20uYyAoc29tX2Nhbm9uaWNhbGl6ZV9zeW10YWIpOiBVcGRhdGUuCgkqIHBlZi5jIChiZmRfcGVmX2Nhbm9uaWNhbGl6ZV9zeW10YWIpOiBVcGRhdGUuCgkqIG5sbWNvZGUuaCAobmxtX2Nhbm9uaWNhbGl6ZV9zeW10YWIpOiBVcGRhdGUuCgkqIHhzeW0uYyAoYmZkX3N5bV9jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiB2bXMuYyAodm1zX2Nhbm9uaWNhbGl6ZV9zeW10YWIpOiBVcGRhdGUuCgkqIHZlcnNhZG9zLmMgKHZlcnNhZG9zX2Nhbm9uaWNhbGl6ZV9zeW10YWIpOiBVcGRhdGUuCgkqIG1hY2gtby5jIChiZmRfbWFjaF9vX2Nhbm9uaWNhbGl6ZV9zeW10YWIpOiBVcGRhdGUuCgkqIGllZWUuYyAoaWVlZV9jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiBwZHAxMS5jIChOQU1FKGFvdXQsY2Fub25pY2FsaXplX3N5bXRhYikpOiBVcGRhdGUuCgkqIHJlbG9jLmM6IFVwZGF0ZSBjb21tZW50LgoJKiBsaWJhb3V0LmggKE5BTUUoYW91dCxjYW5vbmljYWxpemVfc3ltdGFiKSk6IFVwZGF0ZS4KCSogY29mZjY0LXJzNjAwMC5jIChhaXg1Y29mZjY0X3ZlYyk6IFVwZGF0ZS4KCSogY29mZjY0LXJzNjAwMC5jIChiZmRfeGNvZmZfYWl4NV9iYWNrZW5kX2RhdGEpOiBVcGRhdGUuCgkqIGNvZmYtcnM2MDAwLmMgKHJzNjAwMGNvZmZfdmVjLCBwbWFjX3hjb2ZmX3ZlYyk6IFVwZGF0ZS4KCSogYW91dHguaCAoTkFNRShhb3V0LGNhbm9uaWNhbGl6ZV9zeW10YWIpKTogVXBkYXRlLgoJKiBlbGZ4eC10YXJnZXQuaCAoYmZkX2VsZk5OX2Nhbm9uaWNhbGl6ZV9zeW10YWIpOiBVcGRhdGUuCgkqIGhwMzAwaHB1eC5jIChNWV9jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiBlY29mZi5jIChfYmZkX2Vjb2ZmX2Nhbm9uaWNhbGl6ZV9zeW10YWIpOiBVcGRhdGUuCgkqIGFvdXQtdGljMzAuYyAoTVlfY2Fub25pY2FsaXplX3N5bXRhYik6IFVwZGF0ZS4KCSogYW91dC10YXJnZXQuaCAoTVlfY2Fub25pY2FsaXplX3N5bXRhYik6IFVwZGF0ZS4KCSogcHBjYm9vdC5jIChwcGNib290X2Nhbm9uaWNhbGl6ZV9zeW10YWIpOiBVcGRhdGUuCgkqIGVsZi5jIChfYmZkX2VsZl9jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiBlbGZjb2RlLmggKGVsZl9jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiBpaGV4LmMgKGloZXhfY2Fub25pY2FsaXplX3N5bXRhYik6IFVwZGF0ZS4KCSogdGVraGV4LmMgKHRla2hleF9jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiBiaW5hcnkuYyAoYmluYXJ5X2Nhbm9uaWNhbGl6ZV9zeW10YWIpOiBVcGRhdGUuCgkqIHNyZWMuYyAoc3JlY19jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoKMjAwMy0xMC0xNSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGVsZjMyLWg4MzAwLmMgKGVsZl9yZWxvY19tYXApOiBGaXggYSBjb21tZW50IHR5cG8uCgoyMDAzLTEwLTE1ICBLYXogS29qaW1hICA8a2tvamltYUByci5paWo0dS5vci5qcD4KCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogSGFuZGxlIFJfU0hfSU1NXypfUENSRUwKCXJlbG9jYXRpb25zLgoJKHNoX2VsZl9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4KCgkqIGVsZjMyLXNoNjQuYyAoZWxmX2JhY2tlbmRfbWVyZ2Vfc3ltYm9sX2F0dHJpYnV0ZSk6IERlZmluZS4KCShzaDY0X2VsZl9tZXJnZV9zeW1ib2xfYXR0cmlidXRlKTogTmV3LgoJKiBlbGY2NC1zaDY0LmMgKGVsZl9iYWNrZW5kX21lcmdlX3N5bWJvbF9hdHRyaWJ1dGUpOiBEZWZpbmUuCgkoc2g2NF9lbGY2NF9tZXJnZV9zeW1ib2xfYXR0cmlidXRlKTogTmV3LgoKMjAwMy0xMC0xNCAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBlbGYtYmZkLmggKHN0cnVjdCBlbGZfYmFja2VuZF9kYXRhKTogTmV3IGZ1bmN0aW9uIHBvaW50ZXIgbWVtYmVyCgllbGZfYmFja2VuZF9tZXJnZV9zeW1ib2xfYXR0cmlidXRlLgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IEFkanVzdCBjYWxsIHRvCgllbGZfYmFja2VuZF9tZXJnZV9zeW1ib2xfYXR0cmlidXRlIGlmIHRoZSBiYWNrZW5kIGRlZmluZWQgaXQuCgkqIGVsZnh4LXRhcmdldC5oIChlbGZfYmFja2VuZF9tZXJnZV9zeW1ib2xfYXR0cmlidXRlKTogTmV3IG1hY3JvLgoJKGVsZk5OX2JlZCk6IEFkZCB0aGF0IHRvIHRoZSBpbml0aWFsaXplci4KCjIwMDMtMTAtMTQgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBlbGYzMi14dGVuc2EuYyAoZ2V0X2lzX2xpbmtvbmNlX3NlY3Rpb24pOiBEZWxldGUuCgkoeHRlbnNhX2lzX3Byb3BlcnR5X3NlY3Rpb24sIHh0ZW5zYV9pc19saXR0YWJsZV9zZWN0aW9uKTogVXNlCglYVEVOU0FfSU5TTl9TRUNfTkFNRSBhbmQgWFRFTlNBX0xJVF9TRUNfTkFNRSBtYWNyb3MuICBEbyBub3QgcmVjb2duaXplCglsaW5rb25jZSBzZWN0aW9ucyBjb250YWluaW5nICIueHQuaW5zbiIgYW5kICIueHQubGl0IiBzdWJzdHJpbmdzLgoJKHh0ZW5zYV9nZXRfcHJvcGVydHlfc2VjdGlvbl9uYW1lKTogQ2hlY2sgc2VjdGlvbiBuYW1lIGluc3RlYWQgb2YKCWNhbGxpbmcgZ2V0X2lzX2xpbmtvbmNlX3NlY3Rpb24uICBSZW1vdmUgdW51c2VkIGJmZCBwYXJhbWV0ZXIuICBVc2UKCVhURU5TQV9JTlNOX1NFQ19OQU1FIGFuZCBYVEVOU0FfTElUX1NFQ19OQU1FIG1hY3Jvcy4gIE5ldmVyIGdlbmVyYXRlCglsaW5rb25jZSBzZWN0aW9uIG5hbWVzIGJ5IGFwcGVuZGluZyAiLnh0Lmluc24iIG9yICIueHQubGl0Ii4KCSh4dGVuc2FfcmVhZF90YWJsZV9lbnRyaWVzKTogUmVtb3ZlIGJmZCBhcmd1bWVudCBpbiBjYWxsIHRvCgl4dGVuc2FfZ2V0X3Byb3BlcnR5X3NlY3Rpb25fbmFtZS4gIEZyZWUgc2VjdGlvbiBuYW1lIHdoZW4gZG9uZS4KCShlbGZfeHRlbnNhX2NvbWJpbmVfcHJvcF9lbnRyaWVzKTogRnJlZSBsZWFraW5nIHRhYmxlLgoKMjAwMy0xMC0xMyAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRodC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogRG9uJ3QgYWRkCglEVF9NSVBTX0xJQkxJU1Qgb3IgRFRfTUlQU19DT05GTElDVCBlbnRyaWVzLgoJKF9iZmRfbWlwc19lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogRG9uJ3QgaGFuZGxlIHRoZW0uICBEb24ndAoJaGFuZGxlIERUX01JUFNfTVNZTS4gIFNldCBEVF9SRUxTWiBiYXNlZCBvbiB0aGUgbnVtYmVyIG9mIHJlbG9jYXRpb25zCgl0aGF0IHdlcmUgbmVlZGVkLgoJKF9iZmRfbWlwc19lbGZfbW9kaWZ5X3NlZ21lbnRfbWFwKTogRml4IHBsYWNlbWVudCBvZiBQVF9NSVBTX09QVElPTlMuCgkoX2JmZF9taXBzX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogSWdub3JlIEVGX01JUFNfVUNPREUuCgoyMDAzLTEwLTEzICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBiZmQtaW4uaCAoYmZkX2VsZjMyX2lhNjRfYWZ0ZXJfcGFyc2UpOiBOZXcgcHJvdG90eXBlLgoJKGJmZF9lbGY2NF9pYTY0X2FmdGVyX3BhcnNlKTogTGlrZXdpc2UuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZWQuCgoJKiBlbGZ4eC1pYTY0LmMgKG9vcl9pcCk6IE5ldy4KCShvb3JfYnJhbmNoX3NpemUpOiBMaWtld2lzZS4KCShiZmRfZWxmTk5faWE2NF9hZnRlcl9wYXJzZSk6IExpa2V3aXNlLgoJKGVsZk5OX2lhNjRfcmVsYXhfc2VjdGlvbik6IFVzZSBvb3JfaXAgaWYgb29yX2JyYW5jaF9zaXplCgllcXVhbHMgc2l6ZW9mIChvb3JfaXApLgoKMjAwMy0xMC0xMiAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBlbGY2NC1zaDY0LmMgKHNoX2VsZjY0X3JlbG9jYXRlX3NlY3Rpb24pOiBUaWR5IHVwIGZvciB0aGUKCXJlbnVtYmVyaW5nIG9mIHNvbWUgcmVsb2NhdGlvbiBudW1iZXJzLgoKMjAwMy0xMC0xMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvZmYtc2guYzogTW92ZSBkZWZpbml0aW9uIG9mIE1BUCBhbmQgZ3VhcmQgbW9yZSBjb2RlIHdpdGgKCUNPRkZfSU1BR0VfV0lUSF9QRS4KCgkqIHNlY3Rpb24uYyAoYmZkX2dldF9zZWN0aW9uX3NpemVfYmVmb3JlX3JlbG9jKTogSWdub3JlIHJlbG9jX2RvbmUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDMtMTAtMTAgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9NYWtlZmlsZS5pbjogTGlrZXdpc2UuCgoyMDAzLTEwLTA5ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb2ZmbGluay5jOiBJbmNsdWRlICJzYWZlLWN0eXBlLmgiLgoJKGNvZmZfbGlua19hZGRfc3ltYm9scyk6IFVzZSBJU0RJR0lUIGluc3RlYWQgb2YgaXNkaWdpdC4KCjIwMDMtMTAtMDggIERhdmUgQnJvbGxleSAgPGJyb2xsZXlAcmVkaGF0LmNvbT4KCU9uIGJlaGFsZiBvZiBNaWNoYWVsIFNueWRlciAgPG1zbnlkZXJAcmVkaGF0LmNvbT4KCgkqIGFyY2h1cmVzLmM6IEFkZCBGUlYgZnI1NTAgbWFjaGluZS4KCSogY3B1LWZydi5jOiBEaXR0by4KCSogZWxmMzItZnJ2LmM6IERpdHRvLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAzLTEwLTA4ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmeHgtbWlwcy5jIChTVFVCX01PVkUsU1RVQl9MSTE2KTogRml4IHN0dWIgY29kZQoJZm9yIG5vbi1TR0kgTjY0IEFCSS4gSW1wcm92ZSBjb2RlIGNvbnNpdGVuY3kuCgoyMDAzLTEwLTA3ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLWZydi5jIChlbGYzMl9mcnZfaG93dG9fdGFibGUpOiBTZXQgUl9GUlZfTEFCRUwxNidzCglyaWdodHNoaWZ0IHRvIDIuCgoyMDAzLTEwLTA3ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogbGliYmZkLWluLmggKF9iZmRfbGlua19zZWN0aW9uX3N0YWJzKTogQWRkIHN0cmluZyBvZmZzZXQKCXBhcmFtZXRlci4KCSogY29mZmxpbmsuYyAoY29mZl9saW5rX2FkZF9zeW1ib2xzKTogRGVhbCB3aXRoIHNwbGl0IHN0YWIKCXNlY3Rpb25zLgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IERlYWwgd2l0aCBzcGxpdCBzdGFiCglzZWN0aW9ucy4KCSogc3RhYnMuYyAoX2JmZF9saW5rX3NlY3Rpb25fc3RhYnMpOiBBZGQgc3RyaW5nIG9mZnNldCBwYXJhbWV0ZXIuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlZC4KCgkqIGNvZmZjb2RlLmggKGNvZmZfc2V0X2FsaWdubWVudF9ob29rKTogV2l0aCBQRV9DT0ZGIHJlbG9jCglvdmVyZmxvdywgc2V0IHJlbG9jIHN0YXJ0IHBvc2l0aW9uIHRvIGFmdGVyIHRoZSBjb3VudAoJcmVsb2MuIFN1YnRyYWN0IG9uZSBmcm9tIG51bSByZWxvY3MuIEdpdmUgZXJyb3Igb24gMHhmZmZmIHJlbG9jcwoJYW5kIG5vIG92ZXJmbG93LgoJKiBjb2ZmbGluay5jIChfYmZkX2NvZmZfZmluYWxfbGluayk6IERlYWwgd2l0aCBQRV9DT0ZGIHJlbG9jCglvdmVyZmxvdy4KCSogcGVYWGlnZW4uYyAoX2JmZF9YWGlfc3dhcF9zY25oZHJfb3V0KTogRG8gb3ZlcmZsb3cgaWYgPj0KCTB4ZmZmZi4KCjIwMDMtMTAtMDYgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZi1laC1mcmFtZS5jIChfYmZkX2VsZl93cml0ZV9zZWN0aW9uX2VoX2ZyYW1lKTogUGFkIHRoZQoJbGFzdCBDSUUvRkRFIGlmIG5lZWRlZC4KCjIwMDMtMTAtMDYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiB0YXJnZXRzLmMgKF9iZmRfdGFyZ2V0X3ZlY3Rvcik6IEluY2x1ZGUgYmZkX2VsZjY0X3NwYXJjX3ZlYyBpZgoJQkZENjQgaXMgZW5hYmxlZC4KCjIwMDMtMTAtMDYgIE1hdHQgVGhvbWFzIDxtYXR0QDNhbS1zb2Z0d2FyZS5jb20+CgoJKiBjb25maWcuYmZkOiBNb3ZlIHRoZSBocHBhKi0qLW5ldGJzZCogY2FzZSB0byB0aGUgaHBwYSotKi1saW51eCogY2FzZS4KCjIwMDMtMTAtMDYgIFJvYmVydCBNaWxsYW4gIDxyb2JlcnRtaEBnbnUub3JnPgoKCSogY29uZmlndXJlLmluOiBNYXRjaCBHTlUvS05ldEJTRCB3aXRoIG5ldyBrbmV0YnNkKi1nbnUgdHJpcGxldC4KCSogY29uZmlnLmJmZDogTGlrZXdpc2UuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDMtMTAtMDQgIENocmlzdGlhbiBHcm9lc3NsZXIgIDxjaHJpc0Bncm9lc3NsZXIub3JnPgoKCSogY29mZi16OGsuYyAoZXh0cmFfY2FzZSk6IEZpeCBkaXNwbGFjZW1lbnQgbGVuZ3RoIGNoZWNrIGZvciBSX0pSCglhbmQgUl9DQUxMUi4KCjIwMDMtMTAtMDQgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogZWxmMzItbTY4aGMxeC5jOiBVcGRhdGUgdG8gSVNPIEM5MDsgcmVwbGFjZSBQVFIgd2l0aCB2b2lkKi4KCSogZWxmMzItbTY4aGMxMS5jOiBMaWtld2lzZS4KCSogZWxmMzItbTY4aGMxMi5jOiBMaWtld2lzZS4KCSogZWxmMzItbTY4aGMxeC5oOiBMaWtld2lzZS4KCjIwMDMtMTAtMDQgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogZWxmMzItbTY4aGMxeC5jIChfYmZkX202OGhjMTFfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBGaXggbWVyZ2UKCW9mIGZsYWdzIGJldHdlZW4gSEMxMiBhbmQgSENTMTIuCgoyMDAzLTEwLTA0ICBCcnljZSBNY0tpbmxheSAgPGJyeWNlQG1ja2lubGF5Lm5ldC5uej4KCgkqIG1lcmdlLmMgKF9iZmRfbWVyZ2Vfc2VjdGlvbnMpOiBTZXQgU0VDX0VYQ0xVREUgZmxhZyBvbiBzZWN0aW9ucwoJd2hpY2ggYmVjb21lIGVtcHR5IGFmdGVyIG1lcmdpbmcuCgoyMDAzLTA5LTMwICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoaWE2NF9ob3d0b190YWJsZSk6IEZpeCBzaXplIG9mIFJfSUE2NF9UUFJFTDY0W0xNXVNCLAoJUl9JQTY0X0RUUFJFTHszMiw2NH1bTE1dU0IgYW5kIFJfSUE2NF9EVFBNT0Q2NFtMTV1TQi4KCjIwMDMtMDktMzAgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBhcmNodXJlcy5jIChiZmRfbWFjaF9taXBzaXNhNjRyMik6IE5ldyBkZWZpbmUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogYW91dHguaCAoTkFNRShhb3V0LG1hY2hpbmVfdHlwZSkpOiBIYW5kbGUgYmZkX21hY2hfbWlwc2lzYTY0cjIuCgkqIGNwdS1taXBzLmMgKElfbWlwc2lzYTY0cjIpOiBOZXcgZW51bSB2YWx1ZS4KCShhcmNoX2luZm9fc3RydWN0KTogQWRkIGVudHJ5IGZvciBJX21pcHNpc2E2NHIyLgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfZWxmX21pcHNfbWFjaCkKCShfYmZkX21pcHNfZWxmX3ByaW50X3ByaXZhdGVfYmZkX2RhdGEpOiBIYW5kbGUgRV9NSVBTX0FSQ0hfNjRSMi4KCShtaXBzX3NldF9pc2FfZmxhZ3MpOiBBZGQgYmZkX21hY2hfbWlwc2lzYTY0cjIgY2FzZS4KCShtaXBzX21hY2hfZXh0ZW5zaW9ucyk6IEFkZCBlbnRyeSBmb3IgYmZkX21hY2hfbWlwc2lzYTY0cjIuCgoyMDAzLTA5LTI5ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2hwdXhfYmFja2VuZF9zeW1ib2xfcHJvY2Vzc2luZyk6IE5ldy4KCUhhbmRsZSBTSE5fSUFfNjRfQU5TSV9DT01NT04uCgkoZWxmX2JhY2tlbmRfc2VjdGlvbl9mcm9tX2JmZF9zZWN0aW9uKTogRGVmaW5lZC4KCjIwMDMtMDktMjYgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZmxpbmsuYyAoZWxmX2xpbmtfcmVhZF9yZWxvY3NfZnJvbV9zZWN0aW9uKTogQWRkIGFuIGFyZ3VtZW50CglvZiBhIHBvaW50ZXIgdG8gc2VjdGlvbi4gQ2hlY2sgYmFkIHN5bWJvbCBpbmRleC4KCShfYmZkX2VsZl9saW5rX3JlYWRfcmVsb2NzKTogTW9kaWZ5IGNhbGxzIHRvCgllbGZfbGlua19yZWFkX3JlbG9jc19mcm9tX3NlY3Rpb24uCgoyMDAzLTA5LTIzICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9ob3d0b190YWJsZSk6IFJfU0hfU1dJVENIOCwKCVJfU0hfR05VX1ZUSU5IRVJJVCwgUl9TSF9HTlVfVlRFTlRSWSwKCVJfU0hfTE9PUF9TVEFSVCxSX1NIX0xPT1BfRU5EIG1vdmVkIHRvICJyZXNlcnZlZCIgc3BhY2VzLAoJUl9TSF9ESVIxNiwgUl9TSF9ESVI4LCBSX1NIX0RJUjhVTCwgUl9TSF9ESVI4VVcsIFJfU0hfRElSOFUsCglSX1NIX0RJUjhTVywgUl9TSF9ESVI4UywgUl9TSF9ESVI0VUwsIFJfU0hfRElSNFVXLCBSX1NIX0RJUjRVLAoJUl9TSF9QU0hBLCBSX1NIX1BTSEwgYWRkZWQuCgkoc2hfcmVsb2NfbWFwKTogQWRkIFJfU0hfRElSMTYgYW5kIFJfU0hfRElSOC4KCShzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFN1cHBvcnQgbmV3IHJlbG9jcy4KCjIwMDMtMDktMjMgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBlbGYzMi14dGVuc2EuYyAoZWxmX3h0ZW5zYV9yZWxvY2F0ZV9zZWN0aW9uKTogRml4IHR5cG8gdGhhdCBjbG9iYmVyZWQKCWR5bmFtaWMgcmVsb2NhdGlvbiBvZmZzZXRzLgoKMjAwMy0wOS0yMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHNpbXBsZS5jIChiZmRfc2ltcGxlX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IEZyZWUgdGhlCgloYXNoIHRhYmxlIHVzaW5nIF9iZmRfZ2VuZXJpY19saW5rX2hhc2hfdGFibGVfZnJlZS4KCjIwMDMtMDktMjMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYtYmZkLmggKHN0cnVjdCBiZmRfZWxmX3NwZWNpYWxfc2VjdGlvbik6IFJlbW92ZSAic3VmZml4Ii4gIENoYW5nZQoJdHlwZSBvZiBwcmVmaXhfbGVuZ3RoIGFuZCBzdWZmaXhfbGVuZ3RoIHRvIGludC4gIFJlbmFtZSAiYXR0cmlidXRlcyIKCXRvICJhdHRyIi4gIENvbW1lbnQuCgkoX2JmZF9lbGZfZ2V0X3NlY190eXBlX2F0dHIpOiBVcGRhdGUgcHJvdG90eXBlLgoJKiBlbGYuYyAoZ2V0X3NwZWNpYWxfc2VjdGlvbik6IFJld3JpdGUuCgkoX2JmZF9lbGZfZ2V0X3NlY190eXBlX2F0dHIpOiBSZXR1cm4gc3RydWN0IHJhdGhlciB0aGFuIHBhc3NpbmcgaW4KCWF0dHIgYW5kIHR5cGUgcG9pbnRlcnMuCgkoX2JmZF9lbGZfbmV3X3NlY3Rpb25faG9vayk6IEFkanVzdCBmb3IgYWJvdmUuCgkoc3BlY2lhbF9zZWN0aW9ucyk6IE1lcmdlIHN1ZmZpeCB3aXRoIHByZWZpeC4gIFNldAoJcHJlZml4X2xlbmd0aCBmb3IgYWxsIGVudHJpZXMuICBTZXQgc3VmZml4X2xlbmd0aCBhcHByb3ByaWF0ZWx5LgoJKiBlbGYzMi1tMzJyLmMgKG0zMnJfZWxmX3NwZWNpYWxfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmMzItbTY4aGMxMS5jIChlbGYzMl9tNjhoYzExX3NwZWNpYWxfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmMzItbTY4aGMxMi5jIChlbGYzMl9tNjhoYzEyX3NwZWNpYWxfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmMzItbWNvcmUuYyAobWNvcmVfZWxmX3NwZWNpYWxfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmMzItc2g2NC5jIChzaDY0X2VsZl9zcGVjaWFsX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjMyLXY4NTAuYyAodjg1MF9lbGZfc3BlY2lhbF9zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGYzMi14dGVuc2EuYyAoZWxmX3h0ZW5zYV9zcGVjaWFsX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3NwZWNpYWxfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX3NwZWNpYWxfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9zcGVjaWFsX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNoNjQuYyAoc2g2NF9lbGY2NF9zcGVjaWFsX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9zcGVjaWFsX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9zcGVjaWFsX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX3NwZWNpYWxfc2VjdGlvbnMpOiBMaWtld2lzZS4gIEZpeCAucGx0IGZsYWdzLgoKMjAwMy0wOS0yMSAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9jcmVhdGVfZ290X3NlY3Rpb24pOiBJbml0aWFsaXplCgktPmdvdCBpZiB0aGUgc2VjdGlvbiBhbHJlYWR5IGV4aXN0cy4KCjIwMDMtMDktMTkgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkd2FyZjIuYyAoZGVjb2RlX2xpbmVfaW5mbyk6IENvcGUgd2l0aCBhbiBpbml0aWFsbHkgZW1wdHkKCWZpbGVuYW1lIHRhYmxlLgoKMjAwMy0wOS0xOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogYWNpbmNsdWRlLm00OiBJbmNsdWRlIC4uL2NvbmZpZy9hY2Nyb3NzLm00LgoJKiBhY2xvY2FsLm00OiBSZWdlbmVyYXRlZC4KCgkqIGNvbmZpZ3VyZS5ob3N0IChIT1NUXzY0QklUX1RZUEUpOiBSZW1vdmUgaWYgaXQgaXMgc2V0IHRvIGxvbmcKCW9yIGxvbmcgbG9uZy4KCShIT1NUX1VfNjRCSVRfVFlQRSk6IFJlbW92ZSBpZiBpdCBpcyBzZXQgdG8gdW5zaWduZWQgbG9uZyBsb25nLgoJKGhvc3Q2NCk6IFJlbW92ZSBpZiBIT1NUXzY0QklUX1RZUEUgaXMgc2V0IHRvIGxvbmcuCgoJKiBjb25maWd1cmUuaW4gKEhPU1RfNjRCSVRfVFlQRSk6IFNldCBhY2NvcmRpbmcgdG8gdGhlIHNpemUgb2YKCWxvbmcgYW5kIGxvbmcgbG9uZy4KCShIT1NUX1VfNjRCSVRfVFlQRSk6IExpa2V3aXNlLgoJKGhvc3Q2NCk6IExpa2V3aXNlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKMjAwMy0wOS0xOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi5jIChlbGZjb3JlX3dyaXRlX25vdGUpOiBEb24ndCB1c2Ugc2l6ZW9mKEVsZl9FeHRlcm5hbF9ub3RlKQoJc2luY2Ugc29tZSBBQklzIHJvdW5kIHVwIHRoZSBzaXplIG9mIHRoZSBzdHJ1Y3QuCgoyMDAzLTA5LTE4ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX21lcmdlX3N5bWJvbCk6IEFsbG93IHR5cGUgY2hhbmdlIGlmCgl0aGUgb2xkIHN5bWJvbCBpcyB1bmRlZmluZWQgYW5kIHRoZSBuZXcgc3ltYm9sIGlzIGRlZmluZWQuCgoyMDAzLTA5LTE4ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogc2ltcGxlLmMgKGJmZF9zaW1wbGVfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogVXNlCglfYmZkX2dlbmVyaWNfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSBpbnN0ZWFkIG9mCgliZmRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZS4KCjIwMDMtMDktMTAgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9zcGVjaWFsX3NlY3Rpb25zKTogTWFyayBhbGwgc2VjdGlvbnMKCXN0YXJ0ZWQgd2l0aCAiLnNic3MiIG9yICIiLnNkYXRhIiBhcyBTSEZfSUFfNjRfU0hPUlQuCgoyMDAzLTA5LTEwICBKb2huIERhdmlkIEFuZ2xpbgk8ZGF2ZS5hbmdsaW5AbnJjLWNucmMubnJjLmNhPgoJICAgIFJhbmRvbHBoIENodW5nCTxyYW5kb2xwaEB0YXVzcS5vcmc+CgoJKiBlbGYzMi1ocHBhLmMgKHN0cnVjdCBlbGYzMl9ocHBhX2xpbmtfaGFzaF9lbnRyeSwKCWhwcGFfbGlua19oYXNoX25ld2Z1bmMsIGhwcGFfYnVpbGRfb25lX3N0dWIsCgllbGYzMl9ocHBhX2FkanVzdF9keW5hbWljX3N5bWJvbCwgbWFya19QSUNfY2FsbHMsIGFsbG9jYXRlX3BsdF9zdGF0aWMsCglhbGxvY2F0ZV9keW5yZWxvY3MsIGVsZjMyX2hwcGFfc2l6ZV9keW5hbWljX3NlY3Rpb25zLAoJZWxmMzJfaHBwYV9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBSZW1vdmUgcGljX2NhbGwgZmllbGQgYW5kIGFsbCBjb2RlCglmb3IgZ2VuZXJhdGluZyBpbXBvcnQgc3R1YnMgZm9yIGNhbGxzIHRvIHN0YXRpY2FsbHkgbGlua2VkIFBJQwoJZnVuY3Rpb25zLgoJKGhwcGFfdHlwZV9vZl9zdHViKTogRG9uJ3QgZ2VuZXJhdGUgYW4gaW1wb3J0IHN0dWIgZm9yIGNhbGxzIHRvCglzdGF0aWNhbGx5IGxpbmtlZCBwaWMgZnVuY3Rpb25zLiAgR2VuZXJhdGUgaW1wb3J0IHN0dWJzIGZvciBjYWxscwoJaW4gYSBzaGFyZWQgb2JqZWN0LCB0byBmdW5jdGlvbnMgbm90IGluIGEgcmVndWxhciBmaWxlLCBhbmQgdG8KCWRlZmluZWQgd2VhayBmdW5jdGlvbnMuICBBZGQgbmV3IGFyZ3VtZW50IElORk8uCgkoaHBwYV9idWlsZF9vbmVfc3R1Yik6IERvbid0IHVuZGVmIEFERElMX0RQLgoJKGVsZjMyX2hwcGFfY2hlY2tfcmVsb2NzKTogRG9uJ3Qgc2V0IFNFQ19IQVNfR09UX1JFRiBmbGFnLgoJKGVsZjMyX2hwcGFfc2l6ZV9zdHVicyk6IFBhc3MgaW5mbyB0byBocHBhX3R5cGVfb2Zfc3R1Yi4KCShmaW5hbF9saW5rX3JlbG9jYXRlKTogQ2hhbmdlIGFsbCBETFRJTkQgcmVsb2NzIHRvIERQUkVMIHJlbG9jcyBpbiBhCglub24tc2hhcmVkIGxpbmsuICBDb252ZXJ0IGluc3RydWN0aW9ucyB0aGF0IHVzZSB0aGUgdGhlIGxpbmthZ2UgdGFibGUKCXBvaW50ZXIsIG9yIGEgZmFjc2ltaWxlIHRoZXJlb2YsIHRvIHVzZSB0aGUgZ2xvYmFsIGRhdGEgcG9pbnRlciB3aGVuCgl0aGUgcmVsb2MgaGFzIGJlZW4gY2hhbmdlZC4KCjIwMDMtMDktMDggIEpvZWwgQnJvYmVja2VyICA8YnJvYmVja2VyQGduYXQuY29tPgoKCSogYXJjaHVyZXMuYzogQWRkIG5ldyBtYWNoaW5lIG5hbWVzIGZvciBocHBhLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGNwdS1ocHBhLmM6IFVzZSB0aGUgbmV3IG1hY2hpbmUgbmFtZXMuCgoyMDAzLTA5LTA2ICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGVsZjMyLW02OGhjMXguaCAoc3RydWN0IG02OGhjMTFfZWxmX2xpbmtfaGFzaF90YWJsZSk6IFJlbW92ZQoJYWxsX2xvY2FsX3N5bXMgbWVtYmVyLgoJKiBlbGYzMi1tNjhoYzF4LmMgKGVsZjMyX202OGhjMTFfc2l6ZV9zdHVicyk6IFVzZSBiZmRfZWxmX2dldF9lbGZfc3ltcwoJdG8gZ2V0IHRoZSBsb2NhbCBzeW1ib2xzLgoKMjAwMy0wOS0wNiAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBlbGYzMi1tNjhoYzEyLmMgKGVsZjMyX202OGhjMTJfc3BlY2lhbF9zZWN0aW9ucyk6IE5ldyBmb3IgaGMxMS4KCShlbGZfYmFja2VuZF9zcGVjaWFsX3NlY3Rpb25zKTogRGVmaW5lLmEKCglQUiBzYXZhbm5haC80OTUwOgoJKiBlbGYzMi1tNjhoYzExLmMgKGVsZjMyX202OGhjMTFfc3BlY2lhbF9zZWN0aW9ucyk6IFRoZSAudmVjdG9ycwoJc2VjdGlvbiBpcyByZWFkLW9ubHkuCgoyMDAzLTA5LTA0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogYXJjaHVyZXMuYyAoYmZkX21hY2hfdjg1MGUxKTogRGVmaW5lLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGNwdS12ODUwLmggKHNjYW4pOiBBY2NlcHQgYmZkX21hY2hfdjg1MGUxLgoJKGFyY2hfaW5mb19zdHJ1Y3QpOiBJbmNsdWRlIGFuIGVudHJ5IGZvciBiZmRfbWFjaF92ODUwZTEuCgkqIGVsZjMyLXY4NTAuYyAodjg1MF9lbGZfb2JqZWN0X3ApOiBBY2NlcHQgRV9WODUwRTFfQVJDSCBmbGFnLgoJKHY4NTBfZWxmX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBBY2NlcHQgYmZkX21hY2hfdjg1MGUxLgoJKHY4NTBfZWxmX3ByaW50X3ByaXZhdGVfYmZkX2RhdGEpOiBJbnRlcnByZXQgRV9WODUwRTFfQVJDSCBmbGFnLgoJKHY4NTBfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBBbGxvdyB2ODUwZTEgYmluYXJpZXMgdG8gYmUKCWxpbmtlZCB3aXRoIHY4NTBlIGJpbmFyaWVzLiAgTWFyayB0aGUgb3V0cHV0IGFzIHY4NTBlLgoKMjAwMy0wOS0wMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvZmZsaW5rLmMgKF9iZmRfY29mZl9saW5rX2lucHV0X2JmZCk6IERvIG5vdCBza2lwIHNlY3Rpb24KCXN5bWJvbHMgdGhhdCBhcmUgdXNlZCBpbiByZWxvY3MuCgoyMDAzLTA4LTMwICBSb2JlcnQgTWlsbGFuICA8cm9iZXJ0bWhAZ251Lm9yZz4KCgkqIGNvbmZpZ3VyZS5pbjogTWF0Y2ggR05VL0tGcmVlQlNEIHdpdGggbmV3IGtmcmVlYnNkKi1nbnUgdHJpcGxldC4KCSogY29uZmlnLmJmZDogTGlrZXdpc2UuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDMtMDgtMzEgIENocmlzdGlhbiBHcm9lc3NsZXIgIDxjaHJpc0Bncm9lc3NsZXIub3JnPgoKCSogZWxmMzItaTg2MC5jIChpODYwX2hvd3RvX3BjMjZfcmVsb2MpOiBGaW5pc2ggcmVsb2NhdGlvbiBoZXJlCglpbnN0ZWFkIG9mIHJldHVybmluZyBiZmRfcmVsb2NfY29udGludWUuCgoyMDAzLTA4LTMxICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBtZXJnZS5jOiBVcGRhdGUgdG8gSVNPIEM5MC4KCjIwMDMtMDgtMjcgIElhbiBMYW5jZSBUYXlsb3IgIDxpYW5AYWlycy5jb20+CgoJKiBjb25maWd1cmUuaW46IENoZWNrIGZvciBzdHJ0b3VsbC4KCSogYmZkLmMgKGJmZF9zY2FuX3ZtYSk6IFVzZSBzdHJ0b3VsbCB3aGVuIGF2YWlsYWJsZS4KCSogY29uZmlndXJlLCBjb25maWcuaW46IFJlZ2VuZXJhdGUuCgoJKiBjb25maWd1cmUuaW46IERlZmluZSBhbmQgc3Vic3RpdHV0ZSBCRkRfSE9TVF9MT05HX0xPTkcuCgkqIGJmZC1pbi5oOiBEZWZpbmUgQkZEX0hPU1RfTE9OR19MT05HLiAgVGVzdCBpdCByYXRoZXIgdGhhbgoJX19HTlVDX18gd2hlbiBkZWNpZGluZyB3aGV0aGVyIHRvIHVzZSBsb25nIGxvbmcgZm9yCglCRkRfSE9TVF82NF9CSVQuCgkqIGNvbmZpZ3VyZSwgTWFrZWZpbGUuaW4sIGRvYy9NYWtlZmlsZS5pbiwgYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMy0wOC0yNyAgQ2hyaXN0aWFuIEdyb2Vzc2xlciAgPGNocmlzQGdyb2Vzc2xlci5vcmc+CgoJKiBlbGYzMi1pODYwLmMgKGk4NjBfaG93dG9fcGMyNl9yZWxvYywgaTg2MF9ob3d0b19wYzE2X3JlbG9jLAoJaTg2MF9ob3d0b19zcGxpdG5fcmVsb2MsIGk4NjBfaG93dG9faGlnaGFkal9yZWxvYyk6IE5ldwoJZnVuY3Rpb25zLgoJKGVsZjMyX2k4NjBfaG93dG9fdGFibGUpOiBJbnNlcnQgdGhlIG5ldyBmdW5jdGlvbnMgYXMKCSdzcGVjaWFsX2Z1bmN0aW9uJ3MgaW4gdGhlIHByb3BlciByZWxvYyB0eXBlIGVudHJpZXMuCgoyMDAzLTA4LTI3ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1mcnYuYyAoZWxmMzJfZnJ2X3JlbG9jYXRlX3NlY3Rpb24pOiBVc2UKCV9iZmRfZWxmX3JlbGFfbG9jYWxfc3ltLgoKMjAwMy0wOC0yNiAgTWljaGFlbCBTbnlkZXIgIDxtc255ZGVyQHJlZGhhdC5jb20+CgoJKiBjcHUtZnJ2LmM6IFJlbW92ZSB1bnVzZWQgZW51bS4KCjIwMDMtMDgtMjUgIE1hY2llaiBXLiBSb3p5Y2tpICA8bWFjcm9AZHMyLnBnLmdkYS5wbD4KCgkqIHJlbG9jLmM6IEZpeCBkb2N1bWVudGF0aW9uIGZvciBNSVBTIEVMRiByZWxvY2F0aW9ucy4KCWxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMy0wOC0yNCAgSmFzb24gRWNraGFyZHQgIDxqbGVAcmljZS5lZHU+CgoJKiBjb2ZmLWk4NjAuYyAoQ0FMQ19BRERFTkQpOiBEZWZpbmUgdG8gYmUgYSBuby1vcC4KCjIwMDMtMDgtMjQgIEphc29uIEVja2hhcmR0ICA8amxlQHJpY2UuZWR1PgoKCSogZWxmMzItaTg2MC5jIChlbGYzMl9pODYwX3JlbG9jYXRlX3BjMTYpOiBTdWJ0cmFjdCA0IGFuZAoJc2hpZnQgYnkgMiBiZWZvcmUgc3RvcmluZyB0aGUgcmVsb2NhdGVkIHZhbHVlLgoKMjAwMy0wOC0yMyAgSmFzb24gRWNraGFyZHQgIDxqbGVAcmljZS5lZHU+CgoJKiBjb2ZmLWk4NjAuYyAoY29mZl9pODYwX3JlbG9jX255aSk6IE5ldyBmdW5jdGlvbi4KCShob3d0b190YWJsZSk6IEFkZCBlbnRyaWVzIGZvciByZWxvY2F0aW9ucyBQQUlSLCBISUdIQURKLCBISUdILAoJTE9XbiwgU1BMSVRuLCBhbmQgQlJBRERSLgoJKFJUWVBFMkhPV1RPKTogQ2hlY2sgdGhhdCB0aGUgcl90eXBlIGlzIHdpdGhpbiB0aGUgaG93dG9fdGFibGUKCWJlZm9yZSB0cnlpbmcgdG8gYWNjZXNzIHRoZSBlbnRyeS4KCShjb2ZmX2k4NjBfcnR5cGVfdG9faG93dG8pOiBMaWtld2lzZS4KCShjb2ZmX2k4NjBfcmVsb2NfdHlwZV9sb29rdXApOiBOZXcgZnVuY3Rpb24uCgkoaTg2MF9yZWxvY19wcm9jZXNzaW5nKTogTmV3IGZ1bmN0aW9uLgoJKGNvZmZfYmZkX3JlbG9jX3R5cGVfbG9va3VwKTogRGVmaW5lIG1hY3JvLgoJKFJFTE9DX1BST0NFU1NJTkcpOiBEZWZpbmUgbWFjcm8uCglNaW5vciBmb3JtYXR0aW5nIGFkanVzdG1lbnRzLgoKMjAwMy0wOC0yMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogRG9uJ3QgY3Jhc2ggb24gTlVMTCBvd25lci4KCjIwMDMtMDgtMjIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IEFsaWduIHRoZQoJLmdvdCBzZWN0aW9uIGF0IDggYnl0ZXMuCgoyMDAzLTA4LTIxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29mZmxpbmsuYzogVXBkYXRlIHRvIElTTyBDOTAgYW5kIHRpZHkgdXAgZm9ybWF0dGluZy4KCjIwMDMtMDgtMjEgIFJhbmRvbHBoIENodW5nICA8dGF1c3FAZGViaWFuLm9yZz4KCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9vYmplY3RfcCk6IEZvciBlbGYzMi1ocHBhLWxpbnV4LCBvYmplY3RzCgljYW4gaGF2ZSBPU0FCST1MaW51eCBvciBPU0FCST1TeXNWLiAgQ2hlY2sgZm9yIGJvdGguCgkqIGVsZjY0LWhwcGEuYyAoZWxmNjRfaHBwYV9vYmplY3RfcCk6IExpa2V3aXNlLgoKMjAwMy0wOC0yMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL3N2LnBvOiBVcGRhdGVkIFN3ZWRpc2ggdHJhbnNsYXRpb24uCgoyMDAzLTA4LTIwICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1taXBzLmMgKGVsZl9iYWNrZW5kX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogRGVmaW5lLgoKMjAwMy0wOC0yMCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZi1iZmQuaCAoUkVMT0NfRk9SX0dMT0JBTF9TWU1CT0wpOiBOZXcgbWFjcm8gdXNlZCB0bwoJcmVwbGFjZSBzb21lIGR1cGxpY2F0ZWQgY29kZSBpbiBtb3N0IGVsZnh4LXh4eHguYyBmaWxlcy4gIFRoaXMKCXZlcnNpb24gdXNlcyB0aGUgbmV3IGZpZWxkcyBpbiBiZmRfbGlua19pbmZvLgoKCSogZWxmLW0xMDMwMC5jIChtbjEwMzAwX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogVXNlIG5ldyBtYWNyby4KCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWNyaXMuYyAoY3Jpc19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItaXAyay5jIChpcDJrX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWlxMjAwMC5jIChpcTIwMDBfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jIChlbGZfbTY4a19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItczM5MC5jIChlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItdmF4LmMgKGVsZl92YXhfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi14dGVuc2EuYyAoZWxmX3h0ZW5zYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYyAoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoKCSogZWxmLWhwcGEuaCAoZWxmX2hwcGFfdW5tYXJrX3VzZWxlc3NfZHluYW1pY19zeW1ib2xzLAoJZWxmX2hwcGFfcmVtYXJrX3VzZWxlc3NfZHluYW1pY19zeW1ib2xzLAoJZWxmX2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IFVzZSB0aGUgbmV3IGZpZWxkcyBpbgoJYmZkX2xpbmtfaW5mbyBzdHJ1Y3R1cmUuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLgoJKiBlbGY2NC1ocHBhLmMgKGVsZjY0X2hwcGFfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNoNjQuYyAoc2hfZWxmNjRfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfY2FsY3VsYXRlX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfb3V0cHV0X2V4dHN5bSk6IEZpeCB0ZXN0IGZvciByZXBvcnRpbmcKCXVuZGVmaW5lZCBzeW1ib2xzIGluIHNoYXJlZCBsaWJyYXJpZXMuICBSZW1vdmUgcmVkdW5kYW50IHRlc3QKCW9mIHNobGliX3VuZGVmaW5lZCB3aGVuIHJlcG9ydGluZyByZWZlcmVuY2VzIHRvIGZvcmNlZCBsb2NhbAoJc3ltYm9scy4KCjIwMDMtMDgtMTggIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJKiBsaWJwZWkuaCAoYmZkX3BlX2V4ZWN1dGFibGVfcCk6IEFsc28gcmVjb2duaXplIGVmaS1hcHAKCWV4ZWN1dGFibGVzLgoKMjAwMy0wOC0xNyAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogc2ltcGxlLmMgKGJmZF9zaW1wbGVfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogTW92ZQoJcmVsb2NfZG9uZSBoYWNrIHRvIGJlZm9yZSBmaXJzdCBiZmRfc2VjdGlvbl9zaXplIGNhbGwuICBDaGFuZ2UgYWxsCglyZXR1cm5zIHRvIHVzZSBuZXcgd3JhcHBlciBtYWNybyBSRVRVUk4sIHJlc3RvcmluZyBzZWMtPnJlbG9jX2RvbmUuCgoyMDAzLTA4LTE2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmM6IERvbid0IGluY2x1ZGUgZWxmL3BwYy5oLgoKMjAwMy0wOC0xNCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX21vZGlmeV9zZWdtZW50X21hcCk6IEZpeCBQVF9EWU5BTUlDCgljb2RlIHRvIHdvcmsgd2l0aCA2NC1iaXQgYmZkcy4KCjIwMDMtMDgtMTQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkZXAtaW4uc2VkOiBSZW1vdmUgbGliaW50bC5oLgoJKiBNYWtlZmlsZS5hbSAoU1JDLVBPVEZJTEVTLmluLCBCTEQtUE9URklMRVMuaW4pOiBVbnNldCBMQ19DT0xMQVRFLgoJKFBPVEZJTEVTLmluKTogUmVtb3ZlIHRhcmdldC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAzLTA4LTEyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9uZXh0X2lucHV0X3NlY3Rpb24pOiBVcGRhdGUgY29tbWVudC4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEZvciB6ZXJvIHN5bSBSX1BQQzY0X1RPQyByZWxvY3MsCgl1c2UgdGhlIGZ1bmN0aW9uIHN5bSBmcm9tIHRoZSBwcmV2aW91cyByZWxvYy4KCjIwMDMtMDgtMTEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogTWFrZSB1bmRlZmluZWQgc3ltYm9scwoJZmF0YWwgaWYgLXBpZS4KCSogZWxmMzItczM5MC5jIChlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jIChlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCShwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pIDxjYXNlIFJfUFBDX1JFTEFYMzI+OiBJc3N1ZSBmYXRhbCBlcnJvcgoJb24gdW5kZWZpbmVkIHN5bWJvbHMgaWYgLXBpZS4KCSogZWxmMzItc2guYyAoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDMtMDgtMTEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBBZGQgc3BlY2lhbCBjYXNlIGZvciBjcnQxLm8KCWJyYW5jaCB0byBfX2xpYmNfc3RhcnRfbWFpbi4KCjIwMDMtMDgtMDggRG1pdHJ5IERpa3kgPGRpd2lsQG1haWwucnU+CgoJKiBhcmNodXJlcy5jOiBBZGQgeFc0MiBhbmQgeEU0MiBwYXJ0cy4gU29ydCBNUFUgbGlzdCBhY2NvcmRpbmcgdG8KCWdjYyBvcmRlci4KCSogY3B1LW1zcDQzMC5jOiBMaWtld2lzZS4KCSogZWxmMzItbXNwNDMwLmM6IExpa2V3aXNlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAzLTA4LTA3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmeHgtdGFyZ2V0Lmg6IFJlbW92ZSBQVFIgY2FzdC4KCSogdGFyZ2V0cy5jIChiZmRfdGFyZ2V0KTogTWFrZSBiYWNrZW5kX2RhdGEgY29uc3Qgdm9pZCAqLgoJKiBlbGYtYmZkLmg6IENvbnN0aWZ5IGFsbCBvY2N1cnJlbmNlcyBvZiBzdHJ1Y3QgZWxmX2JhY2tlbmRfZGF0YS4KCSogZWxmLW0xMDMwMC5jOiBMaWtld2lzZS4KCSogZWxmLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1ocHBhLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzg2LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhoYzF4LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXMzOTAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXNoLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zaDY0LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zcGFyYy5jOiBMaWtld2lzZS4KCSogZWxmMzIteHRlbnNhLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1taXBzLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXNoNjQuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmM6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYzogTGlrZXdpc2UuCgkqIGVsZmNvZGUuaDogTGlrZXdpc2UuCgkqIGVsZmNvcmUuaDogTGlrZXdpc2UuCgkqIGVsZmxpbmsuYzogTGlrZXdpc2UuCgkqIGVsZmxpbmsuaDogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYzogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuYzogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuaDogTGlrZXdpc2UuCgkqIGVsZi5jIChwcmVwX2hlYWRlcnMpOiBSZW1vdmUgdXNlbGVzcyBjaGVjayBmb3IgbnVsbCBiYWNrZW5kX2RhdGEuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCgkqIGVsZi1iZmQuaDogUmVtb3ZlIFBBUkFNUyBtYWNyby4gIFJlcGxhY2UgUFRSIHdpdGggdm9pZCAqLgoJKE5BTUUpOiBVc2UgIyMgcmF0aGVyIHRoYW4gQ09OQ0FUNCBtYWNyby4KCSogZWxmY29kZS5oOiBSZW1vdmUgb25lIHJlbWFpbmluZyBQQVJBTVMgbWFjcm8uCgkqIGVsZi1laC1mcmFtZS5jOiBDb252ZXJ0IHRvIEM5MCwgcmVtb3ZlIHVubmVlZGVkIGNhc3RzIGFuZCBwcm90b3R5cGVzLgoJKiBlbGYtc3RydGFiLmM6IExpa2V3aXNlLgoJKiBlbGYtaHBwYS5oOiBMaWtld2lzZS4KCSogZWxmMzItaHBwYS5oOiBMaWtld2lzZS4KCSogZWxmMzItaHBwYS5jOiBMaWtld2lzZS4KCShlbGYzMl9ocHBhX2FkZF9zeW1ib2xfaG9vayk6IERlbGV0ZS4KCShlbGZfYmFja2VuZF9hZGRfc3ltYm9sX2hvb2spOiBEb24ndCBkZWZpbmUuCgkqIGxpYmhwcGEuaDogQ29udmVydCB0byBDOTAuICBSZXBsYWNlIElOTElORSB3aXRoIGlubGluZS4KCjIwMDMtMDgtMDYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjX3N0dWJfbmFtZSk6IFR3ZWFrIG5hbWVzIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkuCgkocHBjNjRfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IEFsbG93IGNvcHkgcmVsb2NzIGFnYWluc3QKCWZ1bmN0aW9uIGRlc2NyaXB0b3JzLCBidXQgd2Fybi4KCShwcGNfYnVpbGRfb25lX3N0dWIpOiBSZW1vdmUgYSBjb3VwbGUgb2YgdmFycy4gIE1vdmUgY29kZSBjcmVhdGluZwoJc3R1YiBzeW1zIHNvIHRoYXQgd2UgY2FuIGF2b2lkIGEgc3R1YiBzeW0gaWYgd2UgYWxyZWFkeSBoYXZlIGEKCXBsdCBzeW0uICBEbyBub3QgcmVkZWZpbmUgYW4gZXhpc3Rpbmcgc3ltYm9sLgoJKHBwYzY0X2VsZl9idWlsZF9zdHVicyk6IFdoZW4gLS1lbWl0LXN0dWItc3ltcywgcHJpbnQgYSBzeW1ib2wgZm9yCglnbGluay4KCjIwMDMtMDgtMDYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9mci5wbzogVXBkYXRlZCBGcmVuY2ggdHJhbnNsYXRpb24uCgoyMDAzLTA4LTA2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmbGluay5jIChfYmZkX2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IE1hcmsgLmR5bmJzcyB3aXRoCglTRUNfTElOS0VSX0NSRUFURUQuCgoyMDAzLTA4LTA1ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGVsZjMyLWFybS5oIChXSUxMX0NBTExfRklOSVNIX0RZTkFNSUNfU1lNQk9MKTogRGVmaW5lLgoJKGVsZjMyX2FybV9maW5hbF9saW5rX3JlbG9jYXRlLCBlbGYzMl9hcm1fcmVsb2NhdGVfc2VjdGlvbik6IFVzZSBpdC4KCjIwMDMtMDgtMDMgIEplZmYgTXVpemVsYWFyICA8bXVpemVsYWFyQHJvZ2Vycy5jb20+CgoJKiBjb2ZmY29kZS5oIChjb2ZmX3NsdXJwX2xpbmVfdGFibGUpOiBSZXR1cm4gd2l0aCBhIHdhcm5pbmcKCW1lc3NhZ2UgaWYgdGhlIGxpbmUgbnVtYmVyIHRhYmxlIGNvdWxkIG5vdCBiZSByZWFkLgoKMjAwMy0wOC0wNCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogUHJlcGVuZCAid2FybmluZzogIgoJdG8gbWVzc2FnZXMgcHJvZHVjZWQgZm9yIC5nbnUud2FybmluZy5TWU1CT0wgc2VjdGlvbnMuCgoyMDAzLTA4LTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmY29kZS5oOiBDb252ZXJ0IHRvIEM5MCwgcmVtb3ZlIHVubmVlZGVkIGNhc3RzIGFuZCBwcm90b3R5cGVzLgoJKiBlbGZjb3JlLmg6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmM6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmg6IExpa2V3aXNlLgoJKiBlbGYuYyAoc3ltX2lzX2dsb2JhbCk6IFJlbW92ZSBJTkxJTkUuCgkoYWxpZ25fZmlsZV9wb3NpdGlvbik6IFJlcGxhY2UgSU5MSU5FIHdpdGggaW5saW5lLgoJKiBlbGZjb2RlLmggKGVsZl9zd2FwX2R5bl9pbiwgZWxmX3N3YXBfZHluX291dCk6IFJlbW92ZSBJTkxJTkUuCgkoZWxmX2ZpbGVfcCk6IFJlcGxhY2UgSU5MSU5FIHdpdGggaW5saW5lLgoKMjAwMy0wOC0wMiAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfY2hlY2tfcmVsb2NzKTogRG9uJ3Qgc2V0IERGX1RFWFRSRUwgaGVyZS4KCjIwMDMtMDgtMDEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoZ2V0X2dvdCk6IEFsaWduIHRoZSAuZ290IHNlY3Rpb24gYXQgOCBieXRlcy4KCjIwMDMtMDgtMDEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBVc2UKCUVsZk5OX0V4dGVybmFsX1JlbGEgaW5zdGVhZCBvZiBFbGY2NF9FeHRlcm5hbF9SZWxhLgoKMjAwMy0wOC0wMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5iZmQ6IEFkZCBjb2RlIHRvIGNhdGNoIG9ic29sZXRlIGNvbmZpZ3VyYXRpb25zIGFuZCB3YXJuCglhYm91dCB0aGVtIHVubGVzcyAtLWVuYWJsZS1vYnNvbGV0ZSBpcyB1c2VkLiAgVXNlIHRoaXMgdG8gbWFyawoJdmF4LXZtcyBwb3J0IGFzIG9ic29sZXRlLgoKMjAwMy0wNy0zMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX2luc3RhbGxfdmFsdWUpOiBUaWR5LgoJKHBwY19lbGZfcmVsYXhfc2VjdGlvbik6IFJlbW92ZSBkZWFkIGNvZGUuICBSZW1vdmUgdW5uZWNlc3NhcnkgY2FzdHMuCglGb3JtYXR0aW5nLgoJKiBlbGZ4eC10YXJnZXQuaDogUmVtb3ZlIFBBUkFNUyBtYWNyby4gIEZvcm1hdHRpbmcuCgoyMDAzLTA3LTMwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLmMgKGJmZF9zZWN0aW9uX2Zyb21fcl9zeW1uZHgpOiBUZXN0IGZvciBTSE5fVU5ERUYuCgkqIGVsZjY0LXBwYy5jIChnZXRfZmRoKTogTmV3IGZ1bmN0aW9uLCBzcGxpdCBvdXQgZnJvbQoJcHBjNjRfZWxmX2VkaXRfb3BkLgoJKHBwYzY0X2VsZl9jaGVja19yZWxvY3MpOiBVc2UgZ2V0X2ZkaC4KCShmdW5jX2Rlc2NfYWRqdXN0KTogTGlrZXdpc2UuICBUaWR5LgoJKHBwYzY0X2VsZl9lZGl0X29wZCk6IFRpZ2h0ZW4gcmVsb2MgY2hlY2tzLiAgRnJlZSBsb2NhbF9zeW1zIG9uIGVycm9yCglleGl0LiAgVXNlIGdldF9mZGguICBBY2NvdW50IGZvciBzdXBlcmZsdW91cyBkeW5hbWljIHJlbG9jcy4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFdhcm5pbmcgZml4LgoKMjAwMy0wNy0zMCAgSmFzb24gRWNraGFyZHQgIDxqbGVAcmljZS5lZHU+CgoJKiBjb2ZmLWk4NjAuYzogQ29udmVydCB0byBJU08gQzkwLiAgUmVtb3ZlIHN1cGVyZmxvdXMgcHJvdG90eXBlcy4KCjIwMDMtMDctMzAgIEphc29uIEVja2hhcmR0ICA8amxlQHJpY2UuZWR1PgoKCSogZWxmMzItaTg2MC5jOiBDb252ZXJ0IHRvIElTTyBDOTAuICBSZW1vdmUgc3VwZXJmbG91cyBwcm90b3R5cGVzLgoKMjAwMy0wNy0zMCAgUmFuZG9scGggQ2h1bmcgIDx0YXVzcUBkZWJpYW4ub3JnPgoKCSogZWxmLWhwcGEuaCAoZWxmX2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IExvb2sgdXAgZHluX2ggZm9yIHVuZGVmd2Vhay4KCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX2ZpbmFsaXplX2RsdCk6IENoZWNrIGgtPnJvb3QudHlwZS4KCjIwMDMtMDctMzAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYuYzogQ29udmVydCB0byBDOTAsIHJlbW92ZSB1bm5lY2Vzc2FyeSBwcm90b3R5cGVzIGFuZCBjYXN0cy4KCVJlcGxhY2UgUFRSIHdpdGggdm9pZCAqLiAgRm9ybWF0dGluZy4KCShfYmZkX2VsZl9hc3NpZ25fZmlsZV9wb3NpdGlvbl9mb3Jfc2VjdGlvbik6IFJlbW92ZSBJTkxJTkUuCgkobWFrZV9tYXBwaW5nKTogTGlrZXdpc2UuCgoyMDAzLTA3LTI5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKGZ1bmNfZGVzY19hZGp1c3QpOiBHaXZlIGxpbmtlciBjcmVhdGVkIGZ1bmN0aW9uCglkZXNjcmlwdG9yIHN5bWJvbHMgYSBzaXplIGFuZCB0eXBlLgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogQ29ycmVjdCBscSBpbnNuIHRlc3QuCgoyMDAzLTA3LTI4ICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXBwYy5jIChSX1BQQ19SRUxBWDMyKTogTmV3IHJlbG9jYXRpb24uCgkocHBjX2VsZl9pbnN0YWxsX3ZhbHVlKTogTmV3IGZ1bmN0aW9uLgoJKHBwY19lbGZfc29ydF9yZWxhKTogUmVtb3ZlLgoJKHBwY19lbGZfcmVsYXhfc2VjdGlvbik6IFJld3JpdGUuIFJlbW92ZSBvbGQgcmVsYXhhdGlvbgoJYW5kIHJlcGxhY2Ugd2l0aCBvdXQgb2YgcmFuZ2UgYnJhbmNoIHN0dWJzLgoJKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEhhbmRsZSBSX1BQQ19SRUxBWDMyLgoKMjAwMy0wNy0yOSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGYtbTEwMzAwLmMgKG1uMTAzMDBfZWxmX3JlbGF4X3NlY3Rpb24pOiBUYWtlIHN5bWJvbCBoYXNoIHRhYmxlCglmcm9tIGlucHV0X2JmZC4KCjIwMDMtMDctMjggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYuYyAoc3BlY2lhbF9zZWN0aW9ucyk6IFNldCBhdHRyaWJ1dGVzIGZvciAuZ290IGFuZCAucGx0LgoKMjAwMy0wNy0yNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogRW5zdXJlIG5vIGNvcHkgcmVsb2NzCglvbiBmdW5jdGlvbiBkZXNjcmlwdG9ycy4KCShFTElNSU5BVEVfQ09QWV9SRUxPQ1MpOiBFeHBhbmQgY29tbWVudC4KCShwcGM2NF9lbGZfc3BlY2lhbF9zZWN0aW9ucyk6IE1vdmUuICBEb24ndCBpbmNsdWRlIG5vbi1wcGM2NCBzZWN0aW9ucy4KCURvIGluY2x1ZGUgIi50b2MxIi4KCjIwMDMtMDctMjUgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZi5jIChfYmZkX2VsZl9uZXdfc2VjdGlvbl9ob29rKTogU2V0IHRoZSBkZWZhdWx0IHNlY3Rpb24KCXR5cGUgdG8gU0hUX05VTEwuCgkoZWxmX2Zha2Vfc2VjdGlvbnMpOiBTZXQgdGhlIHNlY3Rpb24gdHlwZSBiYXNlZCBvbiBhc2VjdC0+ZmxhZ3MKCWlmIGl0IGlzIFNIVF9OVUxMLiBEb24ndCBhYm9ydCBvbiBwcm9jZXNzb3Igc3BlY2lmaWMgc2VjdGlvbgoJdHlwZXMuCgoyMDAzLTA3LTI1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGVkLgoKMjAwMy0wNy0yNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmLWJmZC5oIChiZmRfZWxmX3NwZWNpYWxfc2VjdGlvbik6IE5ldy4KCShlbGZfYmFja2VuZF9kYXRhKTogQWRkIHNwZWNpYWxfc2VjdGlvbnMsIGEgcG9pbnRlciB0bwoJYmZkX2VsZl9zcGVjaWFsX3NlY3Rpb24uCgkoZWxmX3NlY3Rpb25fdHlwZSkuIE5ldy4KCShlbGZfc2VjdGlvbl9mbGFncyk6IE5ldy4KCShfYmZkX2VsZl9nZXRfc2VjX3R5cGVfYXR0cik6IE5ldy4KCgkqIGVsZi5jIChfYmZkX2VsZl9tYWtlX3NlY3Rpb25fZnJvbV9zaGRyKTogQWx3YXlzIHVzZSB0aGUKCXJlYWwgc2VjdGlvbiB0eXBlL2ZsYWdzLgoJKHNwZWNpYWxfc2VjdGlvbnMpOiBOZXcuCgkoZ2V0X3NwZWNpYWxfc2VjdGlvbik6IE5ldy4KCShfYmZkX2VsZl9nZXRfc2VjX3R5cGVfYXR0cik6IE5ldy4KCShfYmZkX2VsZl9uZXdfc2VjdGlvbl9ob29rKTogQ2hlY2sgc3BlY2lhbF9zZWN0aW9uIHRvIHNldAoJZWxmX3NlY3Rpb25fdHlwZSBhbmQgZWxmX3NlY3Rpb25fZmxhZ3MuCgkoZWxmX2Zha2Vfc2VjdGlvbnMpOiBEb24ndCB1c2Ugc2VjdGlvbiBuYW1lIHRvIHNldCBFTEYgc2VjdGlvbgoJZGF0YS4KCgkqIGVsZjMyLW0zMnIuYyAobTMycl9lbGZfc3BlY2lhbF9zZWN0aW9ucyk6IE5ldy4KCShlbGZfYmFja2VuZF9zcGVjaWFsX3NlY3Rpb25zKTogRGVmaW5lZC4KCgkqIGVsZjMyLW02OGhjMTEuYyAoZWxmMzJfbTY4aGMxMV9zcGVjaWFsX3NlY3Rpb25zKTogTmV3LgoJKGVsZl9iYWNrZW5kX3NwZWNpYWxfc2VjdGlvbnMpOiBEZWZpbmVkLgoKCSogZWxmMzItbWNvcmUuYyAobWNvcmVfZWxmX3NwZWNpYWxfc2VjdGlvbnMpOiBOZXcuCgkoZWxmX2JhY2tlbmRfc3BlY2lhbF9zZWN0aW9ucyk6IERlZmluZWQuCgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9zcGVjaWFsX3NlY3Rpb25zKTogTmV3LgoJKGVsZl9iYWNrZW5kX3NwZWNpYWxfc2VjdGlvbnMpOiBEZWZpbmVkLgoKCSogZWxmMzItc2g2NC5jIChzaDY0X2VsZl9zcGVjaWFsX3NlY3Rpb25zKTogTmV3LgoJKGVsZl9iYWNrZW5kX3NwZWNpYWxfc2VjdGlvbnMpOiBEZWZpbmVkLgoKCSogZWxmMzItdjg1MC5jICh2ODUwX2VsZl9zcGVjaWFsX3NlY3Rpb25zKTogTmV3LgoJKGVsZl9iYWNrZW5kX3NwZWNpYWxfc2VjdGlvbnMpOiBEZWZpbmVkLgoKCSogZWxmMzIteHRlbnNhLmMgKGVsZl94dGVuc2Ffc3BlY2lhbF9zZWN0aW9ucyk6IE5ldy4KCShlbGZfYmFja2VuZF9zcGVjaWFsX3NlY3Rpb25zKTogRGVmaW5lZC4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3NwZWNpYWxfc2VjdGlvbnMpOiBOZXcuCgkoZWxmX2JhY2tlbmRfc3BlY2lhbF9zZWN0aW9ucyk6IERlZmluZWQuCgoJKiBlbGY2NC1ocHBhLmMgKGVsZjY0X2hwcGFfc3BlY2lhbF9zZWN0aW9ucyk6IE5ldy4KCShlbGZfYmFja2VuZF9zcGVjaWFsX3NlY3Rpb25zKTogRGVmaW5lZC4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfc3BlY2lhbF9zZWN0aW9ucyk6IE5ldy4KCShlbGZfYmFja2VuZF9zcGVjaWFsX3NlY3Rpb25zKTogRGVmaW5lZC4KCgkqIGVsZjY0LXNoNjQuYyAoc2g2NF9lbGY2NF9zcGVjaWFsX3NlY3Rpb25zKTogTmV3LgoJKGVsZl9iYWNrZW5kX3NwZWNpYWxfc2VjdGlvbnMpOiBEZWZpbmVkLgoKCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3NwZWNpYWxfc2VjdGlvbnMpOiBOZXcuCgkoZWxmX2JhY2tlbmRfc3BlY2lhbF9zZWN0aW9ucyk6IERlZmluZWQuCgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfc3BlY2lhbF9zZWN0aW9ucyk6IE5ldy4KCgkqIGVsZnh4LW1pcHMuaCAoX2JmZF9taXBzX2VsZl9zcGVjaWFsX3NlY3Rpb25zKTogTmV3LgoJKGVsZl9iYWNrZW5kX3NwZWNpYWxfc2VjdGlvbnMpOiBEZWZpbmVkLgoKCSogZWxmeHgtdGFyZ2V0LmggKGVsZl9iYWNrZW5kX3NwZWNpYWxfc2VjdGlvbnMpOiBOZXcuIERlZmF1bHQKCXRvIE5VTEwuCgkoZWxmTk5fYmVkKTogSW5pdGlhbGl6ZSBzcGVjaWFsX3NlY3Rpb25zLgoKCSogc2VjdGlvbi5jIChiZmRfYWJzX3NlY3Rpb24pOiBSZW1vdmUgY29uc3QuCgkoYmZkX3VuZF9zZWN0aW9uKTogTGlrZXdpc2UuCgkoYmZkX2NvbV9zZWN0aW9uKTogTGlrZXdpc2UuCgkoYmZkX2luZF9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAzLTA3LTI0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29mZi1hcm0uYyAoRVhUUkFfU19GTEFHUyk6IEluY2x1ZGUgU0VDX0NPREUgc28gdGhhdCBjb2RlCglzZWN0aW9ucyBhcmUgYXNzaWduZWQgdGhlIExPQUQgYXR0cmlidXRlLgoKMjAwMy0wNy0yNSAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBlbGYzMi1zaC5jOiBDb252ZXJ0IHRvIEM5MC4gIFJlcGxhY2UgUFRSIHdpdGggdm9pZCAqLgoJKiBlbGYzMi1zaDY0LWNvbS5jOiBMaWtld2lzZS4KCSogZWxmMzItc2g2NC5jOiBMaWtld2lzZS4KCSogZWxmMzItc2g2NC5oOiBMaWtld2lzZS4KCSogZWxmNjQtc2g2NC5jOiBMaWtld2lzZS4KCjIwMDMtMDctMjQgIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCSogZWxmMzItc2guYyAoc2hfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IFVzZSBTWU1CT0xfQ0FMTFNfTE9DQUwuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogTGlrZXdpc2UuCgkoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4gVXNlIFNZTUJPTF9SRUZFUkVOQ0VTX0xPQ0FMLgoJKHNoX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBVc2UgU1lNQk9MX1JFRkVSRU5DRVNfTE9DQUwuCgoyMDAzLTA3LTI0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vZnIucG86IFVwZGF0ZWQgRnJlbmNoIHRyYW5zbGF0aW9uLgoKMjAwMy0wNy0yMyAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIGVsZjMyLXh0ZW5zYS5jICh4dGVuc2FfZWxmX2R5bmFtaWNfc3ltYm9sX3ApOiBNYWtlIGlubGluZSBhbmQgbW92ZQoJbmVhciB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaWxlLiAgU3dhcCBvcmRlciBvZiBhcmd1bWVudHMuICBDYWxsCglfYmZkX2VsZl9keW5hbWljX3N5bWJvbF9wIHdpdGggImlnbm9yZV9wcm90ZWN0ZWQiIHNldCB0byAwLgoJKGVsZl94dGVuc2FfZml4X3JlZmNvdW50cyk6IEFkanVzdCB4dGVuc2FfZWxmX2R5bmFtaWNfc3ltYm9sX3AgY2FsbC4KCShlbGZfeHRlbnNhX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCShzaHJpbmtfZHluYW1pY19yZWxvY19zZWN0aW9ucyk6IExpa2V3aXNlLgoKMjAwMy0wNy0yMyAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIGVsZjMyLXh0ZW5zYS5jIChwbHRfcmVsb2NfY291bnQpOiBGaXggdHlwbyBpbiBjb21tZW50LgoJKGVsZl94dGVuc2Ffc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogVXNlIGVsZl9kaXNjYXJkZWRfc2VjdGlvbi4KCShlbGZfeHRlbnNhX2NvbWJpbmVfcHJvcF9lbnRyaWVzKTogQXZvaWQgcmV0dXJuaW5nIG5vbi16ZXJvIHdpdGhvdXQKCWZpcnN0IHByaW50aW5nIGFuIGVycm9yIG1lc3NhZ2UuCgkoZWxmX3h0ZW5zYV9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKGVsZl94dGVuc2FfZGlzY2FyZF9pbmZvX2Zvcl9zZWN0aW9uKTogQWRqdXN0IHNpemUgb2YgLmdvdC5sb2Mgd2hlbgoJZGlzY2FyZGluZyBsaXRlcmFsIHRhYmxlIGVudHJpZXMuCgkoZWxmX3h0ZW5zYV9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogUmVtb3ZlIG5ld2xpbmUgZnJvbSBlcnJvciBtZXNzYWdlLgoJKGVsZl94dGVuc2FfZG9fYXNtX3NpbXBsaWZ5KTogTGlrZXdpc2UuCgoyMDAzLTA3LTIzICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGVsZjMyLW02OGhjMXguYyAoZWxmMzJfbTY4aGMxMV9zaXplX3N0dWJzKTogQXZvaWQgY3Jhc2ggd2hlbgoJd2UgaGF2ZSBhIGxvY2FsIHN5bWJvbCBpbiBjb21tb24gc2VjdGlvbi4KCjIwMDMtMDctMjIgIEguSi4gTHUgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmbGluay5jIChfYmZkX2VsZl9keW5hbWljX3N5bWJvbF9wKTogRG9uJ3QgcmV0dXJuIFRSVUUgZm9yCgl3ZWFrIHN5bWJvbHMuCgoyMDAzLTA3LTIyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29mZmNvZGUuaCAoY29mZl9zbHVycF9zeW1ib2xfdGFibGUpOiBBZGQgQ19UQ1NZTSBhbmQgQ19FQ09NTCB0bwoJZXhwZWN0ZWQgUlM2MDAwIHN0b3JhZ2UgY2xhc3Nlcy4KCjIwMDMtMDctMjEgIEguSi4gTHUgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3NpemVfZHluYW1pY19zZWN0aW9ucyk6IE1hcmsKCW91dHB1dF9iZmQgdW51c2VkIHRvIHNpbGVuY2UgZ2NjLgoKMjAwMy0wNy0yMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL3N2LnBvOiBVcGRhdGVkIFN3ZWRpc2ggdHJhbnNsYXRpb24uCgoyMDAzLTA3LTIxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLWJmZC5oIChTWU1CT0xfUkVGRVJFTkNFU19MT0NBTCwgU1lNQk9MX0NBTExTX0xPQ0FMKTogVXNlLi4KCShfYmZkX2VsZl9zeW1ib2xfcmVmc19sb2NhbF9wKTogLi50aGlzLiAgRGVjbGFyZS4KCSogZWxmbGluay5jIChfYmZkX2VsZl9zeW1ib2xfcmVmc19sb2NhbF9wKTogTmV3IGZ1bmN0aW9uLgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBSZW1vdmUgaCBOVUxMIHRlc3QKCW5vdyBkb25lIGluIF9iZmRfZWxmX3N5bWJvbF9yZWZzX2xvY2FsX3AuCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMy0wNy0xOCAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX2R5bmFtaWNfc3ltYm9sX3ApOiBVbmRvIHRoZSBsYXN0IGNoYW5nZS4KCjIwMDMtMDctMTggIEguSi4gTHUgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmLWJmZC5oIChTWU1CT0xfUkVGRVJFTkNFU19MT0NBTCk6IEZpeCBhIHR5cG8uCgkoU1lNQk9MX0NBTExTX0xPQ0FMKTogTGlrZXdpc2UuCgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX2R5bmFtaWNfc3ltYm9sX3ApOiBSZXR1cm4gVFJVRQoJaW1tZWRpYXRlbHkgaWYgc3ltYm9sIGlzbid0IGRlZmluZWQgbG9jYWxseS4KCjIwMDMtMDctMTggIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX2R5bmFtaWNfc3ltYm9sX3ApOiBOZXcuCgkqIGVsZi1iZmQuaCAoX2JmZF9lbGZfZHluYW1pY19zeW1ib2xfcCk6IERlY2xhcmUgaXQuCgkoU1lNQk9MX1JFRkVSRU5DRVNfTE9DQUwsIFNZTUJPTF9DQUxMU19MT0NBTCk6IFVzZSBpdC4KCSogZWxmMzIteHRlbnNhLmMgKHh0ZW5zYV9lbGZfZHluYW1pY19zeW1ib2xfcCk6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jIChhbHBoYV9lbGZfZHluYW1pY19zeW1ib2xfcCk6IExpa2V3aXNlLgoJKiBlbGY2NC1ocHBhLmMgKGVsZjY0X2hwcGFfZHluYW1pY19zeW1ib2xfcCk6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfZHluYW1pY19zeW1ib2xfcCk6IExpa2V3aXNlLgoJVXBkYXRlIGFsbCBjYWxsZXJzIHRvIHByb3ZpZGUgdGhlIHJlbG9jYXRpb24gYmVpbmcgcmVzb2x2ZWQuCgoyMDAzLTA3LTE3ICBTaGF1biBKYWNrbWFuIDxzamFja21hbkBwYXRod2F5Y29ubmVjdC5jb20+CgoJKiBjb25maWcuYmZkIChhcm0td2luY2UtcGUpOiBBZGQgLURBUk1fQ09GRl9CVUdGSVggdG8KCXRhcmdfY2ZsYWdzLgoKMjAwMy0wNy0xNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL2VzLnBvOiBOZXcgU3BhbmlzaCB0cmFuc2xhdGlvbi4KCSogcG8vc3YucG86IE5ldyBTd2VkaXNoIHRyYW5zbGF0aW9uLgoJKiBwby9vcGNvZGVzLnBvdDogUmVnZW5lcmF0ZS4KCjIwMDMtMDctMTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcuYmZkLCBjb25maWd1cmUuaG9zdCwgY29uZmlndXJlLmluOiBSZW1vdmUgaWE2NC1haXggc3VwcG9ydC4KCSogZWxmeHgtaWE2NC5jLCB0YXJnZXRzLmM6IExpa2V3aXNlLgoKMjAwMy0wNy0xNiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9keW5hbWljX3N5bWJvbF9wKTogUHJvcGVybHkgcmV0dXJuIGZhbHNlCglmb3Igc3ltYm9scyBkZWZpbmVkIGxvY2FsbHkgcGx1cyAtQnN5bWJvbGljLiAgVGlkeSBsb2dpYy4KCjIwMDMtMDctMTUgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGFyY2h1cmVzLmMgKGJmZF9tYWNoX21pcHM3MDAwKTogTmV3LgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGVkLgoJKiBjcHUtbWlwcy5jIChhcmNoX2luZm9fc3RydWN0KTogQWRkIGFuIGVudHJ5IGZvciBtaXBzOjcwMDAuCgkqIGVsZnh4LW1pcHMuYyAobWlwc19zZXRfaXNhX2ZsYWdzKTogSGFuZGxlIGJmZF9tYWNoX21pcHM3MDAwLgoJKG1pcHNfbWFjaF9leHRlbnNpb25zKTogQWRkIGFuIGVudHJ5IGZvciBpdC4KCjIwMDMtMDctMTQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby90ci5wbzogVXBkYXRlIHdpdGggbGF0ZXN0IHZlcnNpb24uCgkqIHBvL1NSQy1QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCSogcG8vYmZkLnBvdDogUmVnZW5lcmF0ZS4KCSogTWFrZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMy0wNy0xMiAgSmVmZiBCYWtlciAgPGpiYWtlckBxbnguY29tPgoKCSogY29uZmlnLmJmZCAoX19RTlhUQVJHRVRfXyk6IERlZmluZSBmb3IgTmV1dHJpbm8gYXJjaGl0ZWN0dXJlcy4KCSogZWxmMzItYXJtLmggKEVMRl9NQVhQQUdFU0laRSk6IFNldCB0byA0ayBmb3IgTmV1dHJpbm8uCgkqIGVsZjMyLXNoLmMgKEVMRl9NQVhQQUdFU0laRSk6IFNldCB0byA0ayBmb3IgTmV1dHJpbm8uCgkqIGVsZjMyLXBwYy5jIChFTEZfTUFYUEFHRVNJWkUpOiBTZXQgdG8gNGsgZm9yIE5ldXRyaW5vLgoKMjAwMy0wNy0xMiAgSmVmZiBNdWl6ZWxhYXIgIDxtdWl6ZWxhYXJAcm9nZXJzLmNvbT4KCgkqIGNvZmZjb2RlLmggKGNvZmZfc2V0X3NlY3Rpb25fY29udGVudHMpOiBTZXQgdGhlCglJTUFHRV9GSUxFXzMyQklUX01BQ0hJTkUgZmxhZyBmb3IgUEUgdGFyZ2V0cy4KCjIwMDMtMDctMTEgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGJmZC1pbi5oIChiZmRfaDgzMDBfcGFkX2FkZHJlc3MpOiBEZWNsYXJlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGNwdS1oODMwMC5jIChiZmRfaDgzMDBfcGFkX2FkZHJlc3MpOiBOZXcgZnVuY3Rpb24uCgkqIGNvZmYtaDgzMDAuYyAoaDgzMDBfcmVsb2MxNl9lc3RpbWF0ZSk6IFVzZSBpdCB0byBjYW5vbmljYWxpemUKCWFkZHJlc3NlcyBiZWZvcmUgY2hlY2tpbmcgd2hldGhlciB0aGV5IGNhbiBiZSByZWxheGVkLgoJKGg4MzAwX3JlbG9jMTZfZXh0cmFfY2FzZXMpOiBMaWtld2lzZSBmb3IgdGhlIFJfTU9WTDIgc2FuaXR5IGNoZWNrLgoJRG9uJ3QgY29tcGxhaW4gYWJvdXQgb3ZlcmZsb3dzIGluIGdlbmVyYWwgOC1iaXQgcmVsb2NhdGlvbnMuCgkqIGVsZjMyLWg4MzAwLmMgKGVsZjMyX2g4X3JlbGF4X3NlY3Rpb24pOiBVc2UgYmZkX2g4MzAwX3BhZF9hZGRyZXNzLgoJRml4IGhhbmRsaW5nIG9mIFJfSDhfRElSMjRBOC4KCjIwMDMtMDctMTEgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGVsZjMyLWg4MzAwLmM6IENvbnZlcnQgZnVuY3Rpb24gcHJvdG90eXBlcyBhbmQgZGVmaW5pdGlvbnMKCXRvIEM5MCBzeW50YXguCgkqIGNvZmYtaDgzMDAuYzogTGlrZXdpc2UuCgkqIGNwdS1oODMwMC5jOiBMaWtld2lzZS4KCjIwMDMtMDctMTEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBwby9TUkMtUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL2JmZC5wb3Q6IExpa2V3aXNlLgoKMjAwMy0wNy0xMCAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIGVsZjMyLXh0ZW5zYS5jIChlbGZfeHRlbnNhX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogQ3JlYXRlIG5ldwoJLmdvdC5sb2Mgc2VjdGlvbi4gIERvIG5vdCBzZXQgU0VDX0FMTE9DIG9yIFNFQ19MT0FEIGZsYWdzIGZvciB0aGUKCS54dC5saXQucGx0IHNlY3Rpb24uCgkoZWxmX3h0ZW5zYV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBTZXQgc2l6ZSBvZiB0aGUgLmdvdC5sb2Mgc2VjdGlvbgoJYW5kIGFsbG9jYXRlIG1lbW9yeSBmb3IgaXQuCgkoZWxmX3h0ZW5zYV9jb21iaW5lX3Byb3BfZW50cmllcyk6IENvcHkgY29udGVudHMgb2YgLnh0LmxpdCBvdXRwdXQKCXNlY3Rpb24gdG8gdGhlIC5nb3QubG9jIHNlY3Rpb24uCgkoZWxmX3h0ZW5zYV9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IEZpeCB1cCBjYWxsIHRvCgllbGZfeHRlbnNhX2NvbWJpbmVfcHJvcF9lbnRyaWVzIGFuZCBzZXQgRFRfWFRFTlNBX0dPVF9MT0NfT0ZGIHRvCgl0aGUgYWRkcmVzcyBvZiAuZ290LmxvYy4KCShyZWxheF9wcm9wZXJ0eV9zZWN0aW9uKTogU2hyaW5rIC5nb3QubG9jIHRvIG1hdGNoIGNoYW5nZXMgaW4gYW55CglsaXRlcmFsIHRhYmxlIHNlY3Rpb24uCgkoeHRlbnNhX2lzX3Byb3BlcnR5X3NlY3Rpb24pOiBDaGFuZ2UgdG8gbWF0Y2gKCXh0ZW5zYV9nZXRfcHJvcGVydHlfc2VjdGlvbl9uYW1lLgoJKHh0ZW5zYV9pc19saXR0YWJsZV9zZWN0aW9uKTogTmV3LgoKMjAwMy0wNy0xMCAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKElBNjRfSE9XVE8pOiBTZXQgZHN0X21hc2sgdG8gLTEgaW5zdGVhZCBvZgoJLTFMTC4KCjIwMDMtMDctMTAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbSAoQkZEMzJfQkFDS0VORFMpOiBBZGQgZWxmMzItYW0zM2xpbi5sby4KCShCRkQzMl9CQUNLRU5EU19DRklMRVMpOiBlbGYzMi1hbTMzbGluLmMgbm90IGVsZjMyLWFtMzNsaW4ubG8uCglSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAzLTA3LTEwICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkyMDAxLTA5LTEyICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogZWxmMzItYW0zM2xpbi5jIChFTEZfTUFDSElORV9DT0RFKTogUmVkZWZpbmUgdG8gRU1fTU4xMDMwMC4KCShFTEZfTUFDSElORV9BTFQxKTogRGVmaW5lIHRvIEVNX0NZR05VU19NTjEwMzAwLgoJMjAwMS0wNi0wMiAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgkqIGVsZjMyLWFtMzNsaW4uYzogUmVuYW1lIGdsb2JhbCBmdW5jdGlvbnMuCgkyMDAxLTA1LTA5ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogY29uZmlnLmJmZCAoYW0zM18yLjAsIGFtMzNfMi4wLSotbGludXgqKTogQWRkZWQuCgkqIGNvbmZpZ3VyZS5pbiAoYmZkX2VsZjMyX2FtMzNsaW5fdmVjKTogQWRkZWQuCgkqIE1ha2VmaWxlLmFtIChCRkQzMl9CQUNLRU5EUyk6IEFkZGVkIGVsZjMyLWFtMzNsaW4ubG8uCgkoZWxmMzItYW0zM2xpbi5sbyk6IExpc3QgZGVwZW5kZW5jaWVzLgoJKiBhY2xvY2FsLm00LCBjb25maWd1cmUsIE1ha2VmaWxlLmluOiBSZWJ1aWx0LgoJKiBlbGYtbTEwMzAwLmMgKFRBUkdFVF9MSVRUTEVfU1lNLCBUQVJHRVRfTElUVExFX05BTUUsCglFTEZfQVJDSCwgRUxGX01BQ0hJTkVfQ09ERSwgRUxGX01BWFBBR0VTSVpFKTogRGVmaW5lIG9ubHkgaWYKCUVMRl9BUkNIIHdhcyBub3QgZGVmaW5lZCBiZWZvcmUuCgkoZWxmX3N5bWJvbF9sZWFkaW5nX2NoYXIpOiBEZWZpbmUgaWYgbm90IGRlZmluZWQuCgkqIGVsZjMyLWFtMzNsaW4uYzogT3ZlcnJpZGUgdGhlIGRlZmluaXRpb25zIGFib3ZlLgoJKiB0YXJnZXRzLmMgKGJmZF9lbGYzMl9hbTMzbGluX3ZlYyk6IE5ldy4KCjIwMDMtMDctMDkgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCTIwMDItMTItMTIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBlbGYtbTEwMzAwLmMgKGVsZjMyX21uMTAzMDBfbGlua19oYXNoX25ld2Z1bmMpOiBJbml0aWFsaXplCglwY3JlbF9yZWxvY3NfY29waWVkLgoJMjAwMS0xMi0xMyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGVsZi1tMTAzMDAuYyAoRUxGX0RZTkFNSUNfSU5URVJQUkVURVIpOiBSZW5hbWVkIGZyb20KCWxkLWxpbnV4LnNvLjIgdG8gbGQuc28uMS4KCTIwMDEtMTAtMTAgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBlbGYtbTEwMzAwLmMgKGVsZl9tbjEwMzAwX3NpemVvZl9wbHQwKTogTmV3IG1hY3JvLgoJKF9iZmRfbW4xMDMwMF9lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogVXNlIGl0LgoJKF9iZmRfbW4xMDMwMF9lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVsZi1tMTAzMDAuYyAoX2JmZF9tbjEwMzAwX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBBbGxvY2F0ZQoJLnJlbGEuKiBzZWN0aW9uIGNvbnRlbnRzIHdpdGggYmZkX3phbGxvYy4KCTIwMDEtMDktMjUgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBlbGYtbTEwMzAwLmM6IEFkZGVkIGRlY2xhcmF0aW9ucyBmb3IgZnVuY3Rpb25zIG1pc3NpbmcgdGhlbS4KCU1lcmdlIHNvbWUgc2hhcmVkLWxpYnJhcnkgY2hhbmdlcyBmcm9tIHRoZSBpMzg2IGJhY2stZW5kLiAgVXNlCglSX01OMTAzMDBfUkVMQVRJVkUgaW5zdGVhZCBvZiBSX01OMTAzMDBfUENSRUwzMiBhbmQKCVJfTU4xMDMwMF9HTE9CX0RBVCBpbnN0ZWFkIG9mIFJfTU4xMDMwMF8zMiB3aGVyZSBhcHByb3ByaWF0ZS4KCShzdHJ1Y3QgZWxmMzJfbW4xMDMwMF9saW5rX2hhc2hfZW50cnkpOiBSZW1vdmUgZHVwbGljYXRlcyBvZgoJbWVtYmVycyBvZiBlbGZfbGlua19oYXNoX2VudHJ5LiAgQWRqdXN0ZWQgcmVmZXJlbmNlcy4KCShtbjEwMzAwX2VsZl9maW5hbF9saW5rX3JlbG9jYXRlKTogZHlub2JqIHdhcyBhbHJlYWR5IGxvYWRlZAoJaW50byBhIGxvY2FsIHZhcmlhYmxlLCB1c2UgaXQuCgkyMDAxLTA5LTIxICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCSogZWxmLW0xMDMwMC5jOiBBZGQgbWlzc2luZyBmdW5jdGlvbiBwcm90b3R5cGVzLgoJMjAwMS0wOC0yNCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGVsZi1tMTAzMDAuYyAobW4xMDMwMF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IERvbid0IGNvbXB1dGUKCXJlbG9jYXRpb24gZm9yIGR5bmFtaWMgcmVsb2NhdGlvbnMuCgkyMDAxLTA1LTE2ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogcmVsb2MuYyAoQkZEX1JFTE9DX01OMTAzMDBfR09UT0ZGMjQpOiBOZXcuCgkqIGVsZi1tMTAzMDAuYzogSW50cm9kdWNlIEdPVFBDMTYsIEdPVE9GRjI0LCBHT1RPRkYxNiBhbmQKCVBMVDE2LCBhbmQgcmVuYW1lIEdPVFBDIHRvIEdPVFBDMzIgYW5kIEdPVE9GRiB0byBHT1RPRkYzMi4KCShfYmZkX21uMTAzMDBfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogTW92ZSBjcmVhdGlvbiBvdCBQTFQuLi4KCShfYmZkX21uMTAzMDBfZWxmX2NyZWF0ZV9nb3Rfc2VjdGlvbik6IC4uLiBoZXJlLCBzbyB0aGF0IGl0cwoJYWRyZXNzIGlzIGFscmVhZHkga25vd24gYXQgdGhlIHRpbWUgd2UgY29tcHV0ZSByZWxheGF0aW9ucy4KCShtbjEwMzAwX2VsZl9yZWxheF9zZWN0aW9uKTogUmVsYXggR09UUEMzMiwgR09UT0ZGMzIsIEdPVDMyCglhbmQgUExUMzIgdG8gbmFycm93ZXIgcmVsb2NhdGlvbnMuCgkqIGxpYmJmZC5oLCBiZmQtaW4yLmg6IFJlYnVpbHQuCgkyMDAxLTA0LTEyICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogcmVsb2MuYyAoQkZEX1JFTE9DX01OMTAzMDBfR09UMzIsIEJGRF9SRUxPQ19NTjEwMzAwX0dPVDI0LAoJQkZEX1JFTE9DX01OMTAzMDBfR09UMTYsIEJGRF9SRUxPQ19NTjEwMzAwX0NPUFksCglCRkRfUkVMT0NfTU4xMDMwMF9HTE9CX0RBVCwgQkZEX1JFTE9DX01OMTAzMDBfSk1QX1NMT1QsCglCRkRfUkVMT0NfTU4xMDMwMF9SRUxBVElWRSk6IE5ldyByZWxvY3MuCgkqIGxpYmJmZC5oLCBiZmQtaW4yLmg6IFJlYnVpbHQuCgkqIGVsZi1tMTAzMDAuYyAoc3RydWN0IGVsZl9tbjEwMzAwX3BjcmVsX3JlbG9jc19jb3BpZWQpOiBOZXcuCgkoc3RydWN0IGVsZjMyX21uMTAzMDBfbGlua19oYXNoX2VudHJ5KTogQWRkZWQgRFNPLXJlbGF0ZWQKCWZpZWxkcy4KCShlbGZfbW4xMDMwMF9ob3d0byk6IERlZmluZWQgbmV3IHJlbG9jYXRpb24gdHlwZXMuCgkobW4xMDMwMF9yZWxvY19tYXApOiBNYXAgdGhlbS4KCShfYmZkX21uMTAzMDBfZWxmX2NyZWF0ZV9nb3Rfc2VjdGlvbik6IE5ldyBmbi4KCShtbjEwMzAwX2VsZl9jaGVja19yZWxvY3MpOiBIYW5kbGUgUElDIHJlbG9jcy4KCShtbjEwMzAwX2VsZl9maW5hbF9saW5rX3JlbG9jYXRlKTogTGlrZXdpc2UuCgkobW4xMDMwMF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEhhbmRsZSBEU09zLgoJKFBMVDBfRU5UUllfU0laRSwgUExUX0VOVFJZX1NJWkUsIFBJQ19QTFRfRU5UUllfU0laRSk6IE5ldyBtYWNyb3MuCgkoZWxmX21uMTAzMDBfcGx0MF9lbnRyeSwgZWxmX21uMTAzMDBfcGx0X2VudHJ5LAoJZWxmX21uMTAzMDBfcGljX3BsdF9lbnRyeSk6IE5ldy4KCShlbGZfbW4xMDMwMF9zaXplb2ZfcGx0LCBlbGZfbW4xMDMwMF9wbHRfcGx0MF9vZmZzZXQsCgllbGZfbW4xMDMwMF9wbHQwX2xpbmtlcl9vZmZzZXQsIGVsZl9tbjEwMzAwX3BsdDBfZ290aWRfb2Zmc2V0LAoJZWxmX21uMTAzMDBfcGx0X3RlbXBfb2Zmc2V0LCBlbGZfbW4xMDMwMF9wbHRfc3ltYm9sX29mZnNldCwKCWVsZl9tbjEwMzAwX3BsdF9yZWxvY19vZmZzZXQ6IE5ldyBtYWNyb3MuCgkoRUxGX0RZTkFNSUNfSU5URVJQUkVURVIpOiBMaWtld2lzZS4KCShfYmZkX21uMTAzMDBfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogTmV3IGZ1bmN0aW9uLgoJKF9iZmRfbW4xMDMwMF9lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgkoX2JmZF9tbjEwMzAwX2VsZl9kaXNjYXJkX2NvcGllcyk6IExpa2V3aXNlLgoJKF9iZmRfbW4xMDMwMF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoX2JmZF9tbjEwMzAwX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCShfYmZkX21uMTAzMDBfZWxmX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoZWxmX2JhY2tlbmRfY2FuX2djX3NlY3Rpb25zLAoJZWxmX2JhY2tlbmRfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMsCgllbGZfYmFja2VuZF9hZGp1c3RfZHluYW1pY19zZWN0aW9ucywKCWVsZl9iYWNrZW5kX3NpemVfZHluYW1pY19zZWN0aW9ucywKCWVsZl9iYWNrZW5kX2ZpbmlzaF9keW5hbWljX3N5bWJvbCwKCWVsZl9iYWNrZW5kX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zLCBlbGZfYmFja2VuZF93YW50X2dvdF9wbHQsCgllbGZfYmFja2VuZF9wbHRfcmVhZG9ubHksIGVsZl9iYWNrZW5kX3dhbnRfcGx0X3N5bSwKCWVsZl9iYWNrZW5kX2dvdF9oZWFkZXJfc2l6ZSwgZWxmX2JhY2tlbmRfcGx0X2hlYWRlcl9zaXplKTogTmV3CgltYWNyb3MuCgoyMDAzLTA3LTA5ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkyMDAxLTA1LTA2ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogZWxmLW0xMDMwMC5jIChjb21wdXRlX2Z1bmN0aW9uX2luZm8pOiBBY2NvdW50IGZvciBBTTMzCglyZWdpc3RlcnMgaW4gYG1vdm0nIHdoZW4gY29tcHV0aW5nIHN0YWNrIHNwYWNlIGZvciBgY2FsbCcgd2hlbgoJbGlua2luZyBmb3IgQU0zMy8yLjAgbGluay4KCTIwMDAtMDQtMDEgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUBjeWdudXMuY29tPgoJKiBhcmNodXJlcy5jIChiZmRfbWFjaF9hbTMzXzIpOiBSZW5hbWVkIGZyb20gYmZkX21hY2hfYW0zMzIuCgkqIGJmZC1pbjIuaDogUmVidWlsdC4KCSogY3B1LW0xMDMwMC5jIChiZmRfYW0zM18yX2FyY2gpOiBSZW5hbWVkIGZyb20gYmZkX2FtMzMyX2FyY2guCgkqIGVsZi1tMTAzMDAuYzogVXBkYXRlZC4KCTIwMDAtMDMtMzEgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUBjeWdudXMuY29tPgoJKiBhcmNodXJlcy5jIChiZmRfbWFjaF9hbTMzMik6IERlZmluZWQuCgkqIGJmZC1pbjIuaDogUmVidWlsdC4KCSogY3B1LW0xMDMwMC5jIChiZmRfYW0zMzJfYXJjaCk6IERlZmluZWQuCgkoYmZkX2FtMzNfYXJjaCk6IENoYWluZWQgd2l0aCBhbTMzLTIuCgkqIGVsZi1tMTAzMDAuYyAoZWxmX21uMTAzMDBfbWFjaCk6IEhhbmRsZSBhbTMzMi4KCShfYmZkX21uMTAzMDBfZWxmX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBMaWtld2lzZS4KCjIwMDMtMDctMDkgIEguSi4gTHUgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmeHgtaWE2NC5jIChJQTY0X0hPV1RPKTogU2V0IGRzdF9tYXNrIHRvIC0xTEwuCgoyMDAzLTA3LTEwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKGJmZF9lbGY2NF9ta29iamVjdCk6IERlZmluZS4KCShzdHJ1Y3QgcHBjNjRfZWxmX29ial90ZGF0YSk6IE5ldy4KCShwcGM2NF9lbGZfdGRhdGEsIHBwYzY0X3Rsc2xkX2dvdCk6IERlZmluZS4KCShwcGM2NF9lbGZfbWtvYmplY3QpOiBOZXcgZnVuY3Rpb24uCgkoc3RydWN0IGdvdF9lbnRyeSk6IEFkZCAib3duZXIiLiAgTW92ZSAidGxzX3R5cGUiLgoJKHN0cnVjdCBwcGNfbGlua19oYXNoX3RhYmxlKTogRGVsZXRlICJyZWxnb3QiLCAidGxzbGRfZ290Ii4KCShwcGM2NF9lbGZfaW5pdF9zdHViX2JmZCk6IE5ldyBmdW5jdGlvbi4KCShjcmVhdGVfZ290X3NlY3Rpb24pOiBDcmVhdGUgaGVhZGVyIC5nb3QgaW4gZHlub2JqLiAgQ3JlYXRlIC5nb3QKCWFuZCAucmVsYS5nb3QgaW4gZWFjaCBiZmQuICBTdGFzaCBwb2ludGVycyBpbiBwcGM2NF9lbGZfb2JqX3RkYXRhLgoJKHBwYzY0X2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IERvbid0IGNhbGwgY3JlYXRlX2dvdF9zZWN0aW9uLgoJTG9vayBmb3IgZHlub2JqIC5nb3QsIGFuZCB0ZXN0IGl0LgoJKHBwYzY0X2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IEFkanVzdCBmb3IgY2hhbmdlZCBnb3QuCgkodXBkYXRlX2xvY2FsX3N5bV9pbmZvKTogTGlrZXdpc2UuCgkocHBjNjRfZWxmX2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLgoJKHBwYzY0X2VsZl9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkocHBjNjRfZWxmX3Rsc19vcHRpbWl6ZSk6IExpa2V3aXNlLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IExpa2V3aXNlLgoJKHBwYzY0X2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKHBwYzY0X2VsZl9uZXh0X3RvY19zZWN0aW9uKTogVXBkYXRlIGNvbW1lbnQuCgkodG9jX2FkanVzdGluZ19zdHViX25lZWRlZCk6IFJlbW92ZSB1bm5lZWRlZCBjYXN0LgoJKHBwYzY0X2VsZl9idWlsZF9zdHVicyk6IENoZWNrIGZvciBzdHViIHNlY3Rpb25zIGluIHN0dWIgYmZkIGJ5Cgl0ZXN0aW5nIHNlY3Rpb24gZmxhZ3MuCgkocHBjNjRfZWxmX2J1aWxkX3N0dWJzKTogTGlrZXdpc2UuCgkocHBjNjRfZWxmX3NpemVfc3R1YnMpOiBMaWtld2lzZS4gIFJlbW92ZSBzdHViX2JmZCBwYXJhbS4KCShwcGM2NF9lbGZfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBXcml0ZSBvdXQgZ290IHNlY3Rpb25zLgoJKGZ1bmNfZGVzY19hZGp1c3QpOiBDb3B5IG92ZXIgZHluYW1pYyBpbmZvIGZvciB1bmRlZiB3ZWFrcy4KCSogZWxmNjQtcHBjLmggKHBwYzY0X2VsZl9pbml0X3N0dWJfYmZkKTogRGVjbGFyZS4KCShwcGM2NF9lbGZfc2l6ZV9zdHVicyk6IFVwZGF0ZSBwcm90b3R5cGUuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfc29ydF9yZWxvY3MpOiBVc2UgbGlua19vcmRlcnMgdG8gZmluZCByZWxkeW4KCWlucHV0IHNlY3Rpb25zIHJhdGhlciB0aGFuIHNjYW5uaW5nIGR5bm9iai4KCjIwMDMtMDctMDkgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfbGlua19oYXNoX2VudHJ5KTogUmVtb3ZlIG1pbl9keW5fcmVsb2NfaW5kZXguCgkoYmZkX21pcHNfZWxmX3N3YXBfbXN5bV9pbiwgYmZkX21pcHNfZWxmX3N3YXBfbXN5bV9vdXQpOiBEZWxldGUuCgkobWlwc19lbGZfY3JlYXRlX21zeW1fc2VjdGlvbik6IERlbGV0ZS4KCShtaXBzX2VsZl9jcmVhdGVfZHluYW1pY19yZWxvY2F0aW9uKTogRG9uJ3Qgc2V0IG1pbl9keW5fcmVsb2NfaW5kZXguCgkoX2JmZF9taXBzX2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IExpa2V3aXNlLgoJKF9iZmRfbWlwc19lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBEb24ndCBjcmVhdGUgLm1zeW0uCgkoX2JmZF9taXBzX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBEb24ndCBjYWxjdWxhdGUgaXRzIHNpemUuCgkoX2JmZF9taXBzX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBEb24ndCBhZGQgRFRfTUlQU19NU1lNLgoJKF9iZmRfbWlwc19lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogRG9uJ3QgYWRkIHN5bWJvbHMgdG8gLm1zeW0uCgkoX2JmZF9taXBzX2VsZl9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoKMjAwMy0wNy0wOSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9pcml4Nl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBNYWtlIHRoZQoJc3ltYm9scyBwcm90ZWN0ZWQuCgoyMDAzLTA3LTA5ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2NyZWF0ZV9keW5hbWljX3JlbG9jYXRpb24pOiBGaXggaGFuZGxpbmcKCW9mIHJlbG9jYXRpb25zIHdob3NlIG9mZnNldCBpcyAtMi4KCjIwMDMtMDctMDkgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfY3JlYXRlX2R5bmFtaWNfcmVsb2NhdGlvbik6IFRyZWF0Cglmb3JjZWQtbG9jYWwgc3ltYm9scyBsaWtlIG90aGVyIGxvY2Fscy4gIERvbid0IGNyZWF0ZSByZWxvY2F0aW9ucwoJYWdhaW5zdCBTVE5fVU5ERUYgaW4gaXJpeCBvYmplY3RzLgoKMjAwMy0wNy0wOSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9jcmVhdGVfZHluYW1pY19yZWxvY2F0aW9uKTogSW4gU0dJLQoJY29tcGF0aWJsZSBvYmplY3RzLCBhZGQgdGhlIHZhbHVlcyBvZiBkZWZpbmVkIGV4dGVybmFsIHN5bWJvbHMKCXRvIHRoZSBhZGRlbmQuCgoyMDAzLTA3LTA5ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogQWx3YXlzCglpbml0aWFsaXplIGEgR09UIGVudHJ5IHRvIHRoZSBzeW1ib2wncyBzdF92YWx1ZS4KCjIwMDMtMDctMDggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYtYmZkLmggKHN0cnVjdCBlbGZfb2JqX3RkYXRhKTogTW92ZSBsaW5rZXJfc2VjdGlvbl9wb2ludGVycy4uCgkqIGVsZjMyLXBwYy5jIChzdHJ1Y3QgcHBjX2VsZl9vYmpfdGRhdGEpOiAuLnRvIGhlcmUuICBOZXcuCgkocHBjX2VsZl90ZGF0YSk6IERlZmluZS4KCShlbGZfbG9jYWxfcHRyX29mZnNldHMpOiBBZGp1c3QuCgkocHBjX2VsZl9ta29iamVjdCk6IE5ldyBmdW5jdGlvbi4KCShiZmRfZWxmMzJfbWtvYmplY3QpOiBEZWZpbmUuCgoJKiBlbGZjb2RlLmggKGVsZl9vYmplY3RfcCk6IEFsbG9jYXRlIHRkYXRhIHZpYSBfYmZkX3NldF9mb3JtYXQuCgkqIGVsZmNvcmUuaCAoZWxmX2NvcmVfZmlsZV9wKTogTGlrZXdpc2UuCgkqIHNlY3Rpb24uYyAoYmZkX3NlY3Rpb25faW5pdCk6IFJlbW92ZSBwcm90b3R5cGUuCgoyMDAzLTA3LTA4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLWJmZC5oIChzdHJ1Y3QgZWxmX2xpbmtfaGFzaF9lbnRyeSk6IFJlbW92ZSBsaW5rZXJfc2VjdGlvbl9wb2ludGVyCglmaWVsZC4KCShlbnVtIGVsZl9saW5rZXJfc2VjdGlvbl9lbnVtKTogRGVsZXRlLgoJKHN0cnVjdCBlbGZfbGlua2VyX3NlY3Rpb24pOiBEZWxldGUuCgkoc3RydWN0IGVsZl9saW5rZXJfc2VjdGlvbl9wb2ludGVycyk6IERlbGV0ZS4KCShzdHJ1Y3QgZWxmX29ial90ZGF0YSk6IFJlbW92ZSAjaWYgMCBjaHVuay4gIFJlbW92ZSBsaW5rZXJfc2VjdGlvbi4KCU1ha2UgbGlua2VyX3NlY3Rpb25fcG9pbnRlcnMgYSB2b2lkKiouCgkoZWxmX2xvY2FsX3B0cl9vZmZzZXRzLCBlbGZfbGlua2VyX3NlY3Rpb24pOiBEb24ndCBkZWZpbmUuCgkqIGVsZjMyLXBwYy5jIChlbnVtIGVsZl9saW5rZXJfc2VjdGlvbl9lbnVtKTogTmV3LCBjdXQtZG93biB2ZXJzaW9uCglvZiBvbGQgaXRlbSBpbiBlbGYtYmZkLmguCgkoc3RydWN0IGVsZl9saW5rZXJfc2VjdGlvbik6IExpa2V3aXNlLgoJKHN0cnVjdCBlbGZfbGlua2VyX3NlY3Rpb25fcG9pbnRlcnMpOiBMaWtld2lzZS4KCShlbGZfbG9jYWxfcHRyX29mZnNldHMpOiBEZWZpbmUuCgkoc3RydWN0IHBwY19lbGZfbGlua19oYXNoX2VudHJ5KTogQWRkIGxpbmtlcl9zZWN0aW9uX3BvaW50ZXIuCgkocHBjX2VsZl9saW5rX2hhc2hfbmV3ZnVuYyk6IEluaXQgaXQuCgkoc3RydWN0IHBwY19lbGZfbGlua19oYXNoX3RhYmxlKTogQWRkIHNic3MuCgkocHBjX2VsZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogem1hbGxvYyByYXRoZXIgdGhhbiBjbGVhcmluZwoJaW5kaXZpZHVhbCBmaWVsZHMuCgkoZWxmX2NyZWF0ZV9saW5rZXJfc2VjdGlvbik6IEZvbGQgaW50by4uCgkocHBjX2VsZl9jcmVhdGVfbGlua2VyX3NlY3Rpb24pOiAuLmhlcmUuICBSZW1vdmUgaG9sZV9zaXplIGNvZGUuCglNYWtlIHJlbGEgc2VjdGlvbiBoZXJlIGlmIHNoYXJlZC4KCShlbGZfZmluZF9wb2ludGVyX2xpbmtlcl9zZWN0aW9uKTogUGFzcyBsc2VjdCByYXRoZXIgdGhhbiBlbnVtLgoJKGVsZl9jcmVhdGVfcG9pbnRlcl9saW5rZXJfc2VjdGlvbik6IEFkanVzdC4gIHphbGxvYyByYXRoZXIgdGhhbgoJY2xlYXJpbmcgaW4gYSBsb29wLgoJKGVsZl9maW5pc2hfcG9pbnRlcl9saW5rZXJfc2VjdGlvbik6IEFkanVzdC4gIERvbid0IG1ha2UgcmVsYQoJc2VjdGlvbiBoZXJlLgoJKHBwY19lbGZfY2hlY2tfcmVsb2NzKTogQWRqdXN0LgoJKHBwY19lbGZfYWRkX3N5bWJvbF9ob29rKTogVGlnaHRlbiBoYXNoIGNyZWF0b3IgdGVzdC4gIFJlbW92ZSBjb2RlCgljcmVhdGluZyAuc2JzcyBieSBoYW5kLgoJKiBlbGYuYyAoX2JmZF9lbGZfbGlua19oYXNoX25ld2Z1bmMpOiBBZGp1c3QuCgoyMDAzLTA3LTA0ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXMzOTAuYyAoZWxmX2hvd3RvX3RhYmxlKTogQ2hhbmdlIFJfMzkwX0dPVDEyIHRvCgljb21wbGFpbl9vdmVyZmxvd19iaXRmaWVsZC4KCSogZWxmNjQtczM5MC5jIChlbGZfaG93dG9fdGFibGUpOiBDaGFuZ2UgUl8zOTBfR09UMTIgdG8KCWNvbXBsYWluX292ZXJmbG93X2JpdGZpZWxkLgoKMjAwMy0wNy0wNCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYtYmZkLmggKFNZTUJPTF9SRUZFUkVOQ0VTX0xPQ0FMLCBTWU1CT0xfQ0FMTFNfTE9DQUwpOiBSZXR1cm4KCXRydWUgZXZlbiBpZiAtcGllLgoKMjAwMy0wNy0wNCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKHN0cnVjdCBlbGZOTl9pYTY0X2xpbmtfaGFzaF90YWJsZSk6IEFkZCByZWxfZnB0cl9zZWMuCgkoZWxmTk5faWE2NF9keW5hbWljX3N5bWJvbF9wKTogQ2hhbmdlIGluZm8tPnNoYXJlZCBpbnRvCgkhaW5mby0+ZXhlY3V0YWJsZS4KCShnZXRfZnB0cik6IEZvciAtcGllIGNyZWF0ZSAub3BkIGFzIHdyaXRhYmxlIHNlY3Rpb24gYW5kIGNyZWF0ZQoJLnJlbGEub3BkIGFzIHdlbGwuCgkoZWxmTk5faWE2NF9jaGVja19yZWxvY3MpOiBDaGFuZ2UgaW5mby0+c2hhcmVkIGludG8KCSFpbmZvLT5leGVjdXRhYmxlLgoJKGFsbG9jYXRlX2ZwdHIpOiBMaWtld2lzZS4KCShhbGxvY2F0ZV9keW5yZWxfZW50cmllcyk6IEFjY291bnQgZm9yIGEgcmVsYXRpdmUgcmVsb2MgZm9yIC1waWUKCUBmcHRyKCkuICBEb24ndCBhY2NvdW50IGZvciBhIHJlbGF0aXZlIHJlbG9jIGlmIC1waWUgd2FudF9sdG9mZl9mcHRyCglmb3IgdW5kZWZ3ZWFrIHN5bWJvbC4gIEFjY291bnQgZm9yIGFuIElQTFQgcmVsb2MgaW4gLnJlbGEub3BkCglzZWN0aW9uIGlmIC1waWUuCgkoc2V0X2dvdF9lbnRyeSk6IERvbid0IGNyZWF0ZSBhIHJlbGF0aXZlIHJlbG9jIGlmIC1waWUKCXdhbnRfbHRvZmZfZnB0ciBmb3IgdW5kZWZ3ZWFrIHN5bWJvbC4KCShzZXRfZnB0cl9lbnRyeSk6IEVtaXQgYW4gSVBMVCByZWxvYyBpbiAucmVsYS5vcGQgZm9yIC1waWUuCgkoZWxmTk5faWE2NF9yZWxvY2F0ZV9zZWN0aW9uKTogRW1pdCBhIHJlbGF0aXZlIHJlbG9jIGZvciAtcGllCglAZnB0cigpLgoKCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbG9jYXRlX3NlY3Rpb24pOiBJc3N1ZSB1bmRlZmluZWRfc3ltYm9sCglldmVuIGlmIC1waWUuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItc3BhcmMuYyAoZWxmMzJfc3BhcmNfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmMgKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMy0wNy0wNCAgUGF1bCBDbGFya2UgPHBhdWxjQHNlbmV0LmNvbS5hdT4KCgkqIGVsZjMyLWg4MzAwLmMgKFJfSDhfRElSMzJBMTYpOiBGaXggbmFtZSBmaWVsZC4KCShlbGYzMl9oOF9yZWxheF9zZWN0aW9uKSA8Ul9IOF9ESVIxNkE4PjogQWRqdXN0IHBvc2l0aW9uIG9mIHJlbG9jYXRpb24uCgk8Ul9IOF9ESVIzMkExNj46IEZpeCB0eXBlIG9mIHJlbG9jYXRpb24uCgoyMDAzLTA3LTA0ICBLYXogS29qaW1hICA8a2tvamltYUByci5paWo0dS5vci5qcD4KCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IFJldHVybiBpZiBkeW5hbWljCglzZWN0aW9ucyB3ZXJlIGNyZWF0ZWQgYWxyZWFkeS4gIFJlbW92ZSB1bm5lY2Vzc2FyeSB0ZXN0cyBvZgoJdGhlIHByZXZpb3VzIGNoYW5nZS4KCjIwMDMtMDctMDQgIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCSogZWxmMzItc2guYyAoc2hfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogRG9uJ3QgY2FsbAoJYmZkX21ha2Vfc2VjdGlvbiBmb3IgZXhpc3Rpbmcgc2VjdGlvbnMuCgoyMDAzLTA3LTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItc3BhcmMuYyAoZWxmMzJfc3BhcmNfY2hlY2tfcmVsb2NzKTogRG9uJ3QgY2FsbAoJY3JlYXRlX2dvdF9zZWN0aW9uIGlmIHdlIGFscmVhZHkgaGF2ZSBkb25lIHNvLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShzaF9lbGZfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCgkoc2hfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IERlbGV0ZSAiZHlub2JqIiB2YXIuICBVc2UKCWh0YWItPnJvb3QuZHlub2JqIGluc3RlYWQuCgkoc2hfZWxmX2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLgoJKHNoX2VsZl9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoKCSogc2VjdGlvbi5jIChiZmRfbWFrZV9zZWN0aW9uKTogUmV0dXJuIE5VTEwgZm9yIGV4aXN0aW5nIHNlY3Rpb24uCgoyMDAzLTA3LTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItcHBjLmMgKHBwY19lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBEb24ndCBjYWxsCglwcGNfZWxmX2NyZWF0ZV9nb3QgaWYgd2UndmUgYWxyZWFkeSBkb25lIHNvLgoKCSogZWxmLWJmZC5oIChfYmZkX2VsZl9jcmVhdGVfbGlua2VyX3NlY3Rpb24pIERvbid0IGRlY2xhcmUuCgkoX2JmZF9lbGZfZmluZF9wb2ludGVyX2xpbmtlcl9zZWN0aW9uKTogTGlrZXdpc2UuCgkoYmZkX2VsZjMyX2NyZWF0ZV9wb2ludGVyX2xpbmtlcl9zZWN0aW9uKTogTGlrZXdpc2UuCgkoYmZkX2VsZjMyX2ZpbmlzaF9wb2ludGVyX2xpbmtlcl9zZWN0aW9uKTogTGlrZXdpc2UuCgkoYmZkX2VsZjY0X2NyZWF0ZV9wb2ludGVyX2xpbmtlcl9zZWN0aW9uKTogTGlrZXdpc2UuCgkoYmZkX2VsZjY0X2ZpbmlzaF9wb2ludGVyX2xpbmtlcl9zZWN0aW9uKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfbWFrZV9saW5rZXJfc2VjdGlvbl9yZWxhKTogTGlrZXdpc2UuCgkqIGVsZmNvZGUuaCAoZWxmX2NyZWF0ZV9wb2ludGVyX2xpbmtlcl9zZWN0aW9uKTogRG9uJ3QgZGVmaW5lLgoJKGVsZl9maW5pc2hfcG9pbnRlcl9saW5rZXJfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX21ha2VfbGlua2VyX3NlY3Rpb25fcmVsYSk6IERlbGV0ZS4KCShfYmZkX2VsZl9jcmVhdGVfbGlua2VyX3NlY3Rpb24pOiBNb3ZlIHRoaXMgZnVuY3Rpb24uLgoJKF9iZmRfZWxmX2ZpbmRfcG9pbnRlcl9saW5rZXJfc2VjdGlvbik6IC4uYW5kIHRoaXMuLgoJKiBlbGZsaW5rLmggKGVsZl9jcmVhdGVfcG9pbnRlcl9saW5rZXJfc2VjdGlvbik6IC4uYW5kIHRoaXMuLgoJKGVsZl9maW5pc2hfcG9pbnRlcl9saW5rZXJfc2VjdGlvbik6IC4uYW5kIHRoaXMuLgoJKiBlbGYzMi1wcGMuYzogLi50byBoZXJlLCByZW5hbWluZyB0byB0aGUgZm9sbG93aW5nLCBhbmQgYWRqdXN0aW5nCgljYWxscy4KCShlbGZfY3JlYXRlX2xpbmtlcl9zZWN0aW9uKTogQ29udmVydCB0byBDOTAsIHRpZHkuCgkoZWxmX2ZpbmRfcG9pbnRlcl9saW5rZXJfc2VjdGlvbik6IExpa2V3aXNlLgoJKGVsZl9jcmVhdGVfcG9pbnRlcl9saW5rZXJfc2VjdGlvbik6IExpa2V3aXNlLgoJKGVsZl9maW5pc2hfcG9pbnRlcl9saW5rZXJfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzcwLmM6IERlbGV0ZSAjaWYgMCBjb2RlLgoKMjAwMy0wNy0wMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfZnVuY19kZXNjX2FkanVzdCk6IERvbid0IGFsbG93IF9zYXZlZiogYW5kCglfcmVzdGYqIHRvIGJlIHNhdGlzZmllZCBieSBzaGFyZWQgbGlicywgYW5kIGFsd2F5cyBmb3JjZSB0aGVtIGxvY2FsLgoJKHRvY19hZGp1c3Rpbmdfc3R1Yl9uZWVkZWQpOiBBdm9pZCBzY2FubmluZyBsaW5rZXIgY3JlYXRlZCBzZWN0aW9ucy4KCUNvcnJlY3QgdGVzdCBmb3IgImJsIi4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbiA8Ul9QUEM2NF9UTFM+KTogQ29ycmVjdCB0ZXN0IGZvcgoJcHJpbWFyeSBvcGNvZGUgMzEuCgoyMDAzLTA3LTAxICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogZWxmMzItczM5MC5jIChzMzkwX2VsZl9sZGlzcF9yZWxvYyk6IE5ldyBwcm90b3R5cGUuCgkoczM5MF90bHNfcmVsb2MpOiBOZXcgZnVuY3Rpb24uCgkoZWxmX2hvd3RvX3RhYmxlKTogQWRkIGxvbmcgZGlzcGxhY2VtZW50IHJlbG9jYXRpb25zIFJfMzkwXzIwLAoJUl8zOTBfR09UMjAsIFJfMzkwX0dPVFBMVDIwIGFuZCBSXzM5MF9UTFNfR09USUUyMC4KCShlbGZfczM5MF9yZWxvY190eXBlX2xvb2t1cCk6IExpa2V3aXNlLgoJKGVsZl9zMzkwX2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLgoJKGVsZl9zMzkwX2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCShlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYzogU2FtZSBjaGFuZ2VzIGFzIGZvciBlbGYzMi1zMzkwLmMuCgkqIHJlbG9jLmM6IEFkZCBsb25nIGRpc3BsYWNlbWVudCByZWxvY2F0aW9ucyBCRkRfUkVMT0NfMzkwXzIwLAoJQkZEX1JFTE9DXzM5MF9HT1QyMCwgQkZEX1JFTE9DXzM5MF9HT1RQTFQyMCBhbmQKCUJGRF9SRUxPQ18zOTBfVExTX0dPVElFMjAuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogbGliYmZkLmg6IExpa2V3aXNlLgoKMjAwMy0wNi0zMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNwdS1pYTY0LW9wYy5jIChleHRfaW1tc19zY2FsZWQpOiBEb24ndCBzaWduIGV4dGVuZCB1c2luZyBzaGlmdHMuCgkoaW5zX2ltbXMsIGluc19pbW1zbTF1NCk6IExpa2V3aXNlLiAgV2FybmluZyBmaXguCgoyMDAzLTA2LTI5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYXJjaGl2ZS5jOiBDb252ZXJ0IHRvIEM5MCwgcmVtb3ZlIHVubmVjZXNzYXJ5IHByb3RvdHlwZXMgYW5kIGNhc3RzLgoJUmVwbGFjZSBQVFIgd2l0aCB2b2lkICouICBGb3JtYXR0aW5nLgoJKiBhcmNoaXZlNjQuYzogTGlrZXdpc2UuCgkqIGFyY2h1cmVzLmM6IExpa2V3aXNlLgoJKiBiZmQtaW4uaDogTGlrZXdpc2UuCgkqIGJmZC5jOiBMaWtld2lzZS4KCSogYmZkaW8uYzogTGlrZXdpc2UuCgkqIGJmZHdpbi5jOiBMaWtld2lzZS4KCSogY2FjaGUuYzogTGlrZXdpc2UuCgkqIGNvcmVmaWxlLmM6IExpa2V3aXNlLgoJKiBmb3JtYXQuYzogTGlrZXdpc2UuCgkqIGluaXQuYzogTGlrZXdpc2UuCgkqIGxpYmJmZC1pbi5oOiBMaWtld2lzZS4KCSogbGliYmZkLmM6IExpa2V3aXNlLgoJKiBsaW5rZXIuYzogTGlrZXdpc2UuCgkqIG9wbmNscy5jOiBMaWtld2lzZS4KCSogcmVsb2MuYzogTGlrZXdpc2UuCgkqIHNlY3Rpb24uYzogTGlrZXdpc2UuCgkqIHNpbXBsZS5jOiBMaWtld2lzZS4KCSogc3ltcy5jOiBMaWtld2lzZS4KCSogdGFyZ2V0cy5jOiBMaWtld2lzZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCgkqIGVjb2ZmLmMgKGJmZF9kZWJ1Z19zZWN0aW9uKTogQWRkIG1pc3Npbmcga2VwdF9zZWN0aW9uIGluaXRpYWxpemF0aW9uLgoJKiBsaWJiZmQtaW4uaCAoX2JmZF9zaF9hbGlnbl9sb2FkX3NwYW4pOiBEb24ndCBkZWNsYXJlIGlmIGRlZmluZWQuCgkqIGxpYmJmZC5jIChDT0VSQ0UzMiwgRUlHSFRfR0FaSUxMSU9OKTogU2ltcGxpZnkuCgkoYmZkX2dldGI2NCk6IFJld3JpdGUgd2l0aG91dCBwYXJlbnMuCgkoYmZkX2dldGw2NCwgYmZkX2dldGJfc2lnbmVkXzY0LCBiZmRfZ2V0bF9zaWduZWRfNjQpOiBMaWtld2lzZS4KCSogY2FjaGUuYyAoaW5zZXJ0LCBzbmlwKTogUmVtb3ZlIElOTElORS4KCSogbGlua2VyLmMgKGJmZF9saW5rX2FkZF91bmRlZik6IExpa2V3aXNlLgoKMjAwMy0wNi0yOSAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogZWxmNjQteDg2LTY0LmM6IENvbnZlcnQgdG8gSVNPIEM5MCBwcm90b3R5cGVzLCByZW1vdmUKCXVubmVjZXNzYXJ5IHByb3RvdHlwZXMuICBSZXBsYWNlIFBUUiB3aXRoIHZvaWQgKi4KCShlbGY2NF94ODZfNjRfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogVXNlIFNZTUJPTF9DQUxMU19MT0NBTCB0bwoJdHJpbSBwbHQgZW50cmllcy4gIE1vdmUgdW5kZWZ3ZWFrIG5vbi1kZWZhdWx0IHZpc2liaWxpdHkgdGVzdCAuLi4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiAuLi4gZnJvbSBoZXJlLgoJKFdJTExfQ0FMTF9GSU5JU0hfRFlOQU1JQ19TWU1CT0wpOiBQYXNzIFNIQVJFRCBpbnN0ZWFkIG9mIElORk8uCglDaGFuZ2UgYWxsIGNhbGxlcnMuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogVXNlIFNZTUJPTF9DQUxMU19MT0NBTC4gIFVzZQoJU1lNQk9MX1JFRkVSRU5DRVNfTE9DQUwgZm9yIGR5bnJlbG9jIGNoZWNrLgoJKGVsZjY0X3g4Nl82NF9yZWxvY2F0ZV9zZWN0aW9uKTogVXNlIFNZTUJPTF9DQUxMU19MT0NBTCBmb3IKCWR5bnJlbG9jIGFuZCAuZ290IHJlbG9jcy4KCShlbGY2NF94ODZfNjRfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogVXNlIFNZTUJPTF9SRUZFUkVOQ0VTX0xPQ0FMCglmb3IgLmdvdCByZWxvY3MuCgoyMDAzLTA2LTI5ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmeHgtbWlwcy5jOiBBbGxvdyBsYXp5IGJpbmRpbmcgZm9yIFJfTUlQU19KQUxSLgoKMjAwMy0wNi0yNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIG9wbmNscy5jIChiZmRfYWRkX2dudV9kZWJ1Z2xpbmtfc2VjdGlvbik6IFJlbmFtZSB0bwoJYmZkX2FkZF9nbnVfZGVidWdsaW5rX3NlY3Rpb24gYW5kIG9ubHkgY3JlYXRlIHRoZSBzZWN0aW9uLCBkbyBub3QKCWZpbGwgaW4gaXRzIGNvbnRlbnRzLgoJKGJmZF9maWxsX2luX2dudV9kZWJ1Z2xpbmtfc2VjdGlvbik6IE5ldyBmdW5jdGlvbi4gIEZpbGwgaW4gdGhlCgljb250ZW50cyBvZiBhIC5nbnUtZGVidWdsaW5rIHNlY3Rpb24uCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDMtMDYtMjcgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGZ4eC1taXBzLmM6IFJldmVydCAuZ290IGFsaWdubWVudCB0byAyKio0LgoKMjAwMy0wNi0yNyAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZjMyLW1pcHMuYzogRml4IGFkZGVuZCBmb3IgX2dwX2Rpc3Agc3BlY2lhbCBzeW1ib2wuCgoyMDAzLTA2LTI3ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX2Zha2Vfc2VjdGlvbnMpOiBSZW1vdmUgbm9uLWRlZmF1bHQKCXJlbG9jYXRpb24gaGVhZGVyIHNldHVwLgoKMjAwMy0wNi0yNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX2hvd3RvX3RhYmxlKTogUmVtb3ZlIHVubmVjZXNzYXJ5IGNhc3QuCgkocHBjX2VsZl9yZWxvY190eXBlX2xvb2t1cCk6IE1vZGlmeSBjb21tZW50LgoJKHBwY19lbGZfaW5mb190b19ob3d0byk6IERpdHRvLgoJKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IERpdHRvLgoJKHBwY19lbGZfY2hlY2tfcmVsb2NzKTogQ2FsbCBwcGNfZWxmX2hvd3RvX2luaXQuCgoyMDAzLTA2LTI1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYW91dC1uczMyay5jOiBDb3JyZWN0IHNwZWxsaW5nIG9mICJyZWxvY2F0YWJsZSIuCgkqIGFvdXR4Lmg6IExpa2V3aXNlLgoJKiBiZmQtaW4uaDogTGlrZXdpc2UuCgkqIGJmZC5jOiBMaWtld2lzZS4KCSogYm91dC5jOiBMaWtld2lzZS4KCSogY29mZi1hMjlrLmM6IExpa2V3aXNlLgoJKiBjb2ZmLWFscGhhLmM6IExpa2V3aXNlLgoJKiBjb2ZmLWFybS5jOiBMaWtld2lzZS4KCSogY29mZi1pMzg2LmM6IExpa2V3aXNlLgoJKiBjb2ZmLWk4NjAuYzogTGlrZXdpc2UuCgkqIGNvZmYtaTk2MC5jOiBMaWtld2lzZS4KCSogY29mZi1tNjhrLmM6IExpa2V3aXNlLgoJKiBjb2ZmLW04OGsuYzogTGlrZXdpc2UuCgkqIGNvZmYtbWNvcmUuYzogTGlrZXdpc2UuCgkqIGNvZmYtbWlwcy5jOiBMaWtld2lzZS4KCSogY29mZi1vcjMyLmM6IExpa2V3aXNlLgoJKiBjb2ZmLXBwYy5jOiBMaWtld2lzZS4KCSogY29mZi1yczYwMDAuYzogTGlrZXdpc2UuCgkqIGNvZmYtc2guYzogTGlrZXdpc2UuCgkqIGNvZmYtdGljODAuYzogTGlrZXdpc2UuCgkqIGNvZmY2NC1yczYwMDAuYzogTGlrZXdpc2UuCgkqIGNvZmZsaW5rLmM6IExpa2V3aXNlLgoJKiBjcHUtbnMzMmsuYzogTGlrZXdpc2UuCgkqIGVjb2ZmLmM6IExpa2V3aXNlLgoJKiBlY29mZmxpbmsuYzogTGlrZXdpc2UuCgkqIGVsZi1iZmQuaDogTGlrZXdpc2UuCgkqIGVsZi1laC1mcmFtZS5jOiBMaWtld2lzZS4KCSogZWxmLWhwcGEuaDogTGlrZXdpc2UuCgkqIGVsZi1tMTAyMDAuYzogTGlrZXdpc2UuCgkqIGVsZi1tMTAzMDAuYzogTGlrZXdpc2UuCgkqIGVsZi5jOiBMaWtld2lzZS4KCSogZWxmMzItYXJtLmg6IExpa2V3aXNlLgoJKiBlbGYzMi1hdnIuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWNyaXMuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWQxMHYuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWRseC5jOiBMaWtld2lzZS4KCSogZWxmMzItZnIzMC5jOiBMaWtld2lzZS4KCSogZWxmMzItZnJ2LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1oODMwMC5jOiBMaWtld2lzZS4KCSogZWxmMzItaHBwYS5jOiBMaWtld2lzZS4KCSogZWxmMzItaTM3MC5jOiBMaWtld2lzZS4KCSogZWxmMzItaTM4Ni5jOiBMaWtld2lzZS4KCSogZWxmMzItaTg2MC5jOiBMaWtld2lzZS4KCSogZWxmMzItaTk2MC5jOiBMaWtld2lzZS4KCSogZWxmMzItaXAyay5jOiBMaWtld2lzZS4KCSogZWxmMzItaXEyMDAwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1tMzJyLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhoYzExLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhoYzF4LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhrLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1tY29yZS5jOiBMaWtld2lzZS4KCSogZWxmMzItbWlwcy5jOiBMaWtld2lzZS4KCSogZWxmMzItbXNwNDMwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1vcGVucmlzYy5jOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zMzkwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jOiBMaWtld2lzZS4KCSogZWxmMzItc2g2NC5jOiBMaWtld2lzZS4KCSogZWxmMzItc3BhcmMuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXY4NTAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXZheC5jOiBMaWtld2lzZS4KCSogZWxmMzIteHN0b3JteTE2LmM6IExpa2V3aXNlLgoJKiBlbGYzMi14dGVuc2EuYzogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1ocHBhLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1taXBzLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1tbWl4LmM6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXNoNjQuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmM6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYzogTGlrZXdpc2UuCgkqIGVsZmNvZGUuaDogTGlrZXdpc2UuCgkqIGVsZmxpbmsuaDogTGlrZXdpc2UuCgkqIGVsZm4zMi1taXBzLmM6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmM6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmM6IExpa2V3aXNlLgoJKiBpMzg2bGludXguYzogTGlrZXdpc2UuCgkqIGllZWUuYzogTGlrZXdpc2UuCgkqIGxpYmNvZmYtaW4uaDogTGlrZXdpc2UuCgkqIGxpbmtlci5jOiBMaWtld2lzZS4KCSogbTY4a2xpbnV4LmM6IExpa2V3aXNlLgoJKiBwZHAxMS5jOiBMaWtld2lzZS4KCSogcGUtbWlwcy5jOiBMaWtld2lzZS4KCSogcGVYWGlnZW4uYzogTGlrZXdpc2UuCgkqIHJlbG9jLmM6IExpa2V3aXNlLgoJKiByZWxvYzE2LmM6IExpa2V3aXNlLgoJKiBzcGFyY2xpbnV4LmM6IExpa2V3aXNlLgoJKiBzdW5vcy5jOiBMaWtld2lzZS4KCSogc3ltcy5jOiBMaWtld2lzZS4KCSogdmVyc2Fkb3MuYzogTGlrZXdpc2UuCgkqIHZtcy5jOiBMaWtld2lzZS4KCSogeGNvZmZsaW5rLmM6IExpa2V3aXNlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGxpYmNvZmYuaDogUmVnZW5lcmF0ZS4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgoyMDAzLTA2LTI0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItcHBjLmMgKHBwY19lbGZfY2hlY2tfcmVsb2NzKTogUmVwb3J0IHBsdCByZWxvYyBhZ2FpbnN0Cglsb2NhbCBzeW0gZXJyb3JzLgoKCSogZWxmMzItaTM4Ni5jOiBDb252ZXJ0IHRvIEM5MCBmdW5jdGlvbiBkZWZpbml0aW9ucywgcmVtb3ZlIHVubmVjZXNzYXJ5Cglwcm90b3R5cGVzIGFuZCBjYXN0cy4gIFJlcGxhY2UgUFRSIHdpdGggdm9pZCAqLiAgRm9ybWF0dGluZy4KCSogZWxmMzItcHBjLmM6IExpa2V3aXNlLiAgQnJlYWsgbG9uZyBzdHJpbmdzIHRvby4KCShwcGNfZWxmX3JlbGF4X3NlY3Rpb24pOiBVc2UgZW51bSBlbGZfcHBjX3JlbG9jX3R5cGUgZm9yIHJfdHlwZS4KCShwcGNfZWxmX3VuaGFuZGxlZF9yZWxvYyk6IEludGVybmF0aW9uYWxpemUgZXJyb3IgbWVzc2FnZS4KCSogZWxmMzItcHBjLmg6IFJlbW92ZSBQQVJBTVMuCgoyMDAzLTA2LTIzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZWxmMzItcHBjLmMgKHBwY19lbGZfYmVnaW5fd3JpdGVfcHJvY2Vzc2luZyk6IFVzZSBieXRlcyB0byBjb3VudAoJQVBVaW5mbyBzbG90cy4KCShwcGNfZWxmX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBMaWtld2lzZS4KCjIwMDMtMDYtMjMgIEguSi4gTHUgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmbGluay5oIChlbGZfbGlua19pbnB1dF9iZmQpOiBDaGVjayByYXcgc2l6ZSB3aGVuIHVzaW5nCglrZXB0X3NlY3Rpb24gdG8gcHJlc2VydmUgZGVidWcgaW5mb3JtYXRpb24gZGlzY2FyZGVkIGJ5CglsaW5rb25jZS4KCjIwMDMtMDYtMjAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAoc3RydWN0IHBwY19saW5rX2hhc2hfdGFibGUpOiBBZGQgdG9wX2lkLgoJKHBwYzY0X2VsZl9zZXR1cF9zZWN0aW9uX2xpc3RzKTogU2V0IGl0LgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogQ2hlY2sgc3ltIHNlY3Rpb24gaWQgYWdhaW5zdCB0b3BfaWQuCgkocHBjX2J1aWxkX29uZV9zdHViKTogQ29tbWVudCBvbiB0b3BfaWQuCgoyMDAzLTA2LTIwICBSYWxmIENvcnNlcGl1cyAgPGNvcnNlcGl1QGZhdy51bmktdWxtLmRlPgoKCSogY29uZmlnLmJmZDogQWRkIHRpYzR4LSotcnRlbXMqLgoKMjAwMy0wNi0yMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jOiBDb252ZXJ0IHRvIEM5MCBmdW5jdGlvbiBkZWZpbml0aW9ucywgcmVtb3ZlIHVubmVjZXNzYXJ5Cglwcm90b3R5cGVzIGFuZCBjYXN0cy4gIFJlcGxhY2UgUFRSIHdpdGggdm9pZCAqLiAgRm9ybWF0IGNvcHlyaWdodC4KCU1lbnRpb24gQUJJIGxpbmtzLgoJKHN0cnVjdCBwcGNfbGlua19oYXNoX3RhYmxlKTogUmVuYW1lIHNnb3QsIHNyZWxnb3QsIHNwbHQsIHNyZWxwbHQsCglzZHluYnNzLCBzcmVsYnNzLCBzZ2xpbmssIHNicmx0IGFuZCBzcmVsYnJsdCB0byBnb3QsIHJlbGdvdCAuLiByZWxicmx0LgoJKHBwY190eXBlX29mX3N0dWIpOiBNYWtlIHJfdHlwZSBhbiBlbnVtLgoJKHBwYzY0X2VsZl9zaXplX3N0dWJzKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5oOiBSZW1vdmUgUEFSQU1TIG1hY3JvLgoKMjAwMy0wNi0xOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IFJlaW5zdGF0ZSBpbml0IG9mCgllbGYgaGFzaCB0YWIgZmllbGRzLgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY190eXBlX2xvb2t1cCk6IFRpZHkgcHJvdG90eXBlLgoJKHBwYzY0X2VsZl9pbmZvX3RvX2hvd3RvKTogTGlrZXdpc2UuCgkocHBjNjRfZWxmX2J1aWxkX3N0dWJzKTogQWRkICJzdGF0cyIgcGFyYW0sIGFuZCBwcmludCBzdGF0aXN0aWNzLgoJKiBlbGY2NC1wcGMuaCAocHBjNjRfZWxmX2J1aWxkX3N0dWJzKTogQWRqdXN0IHByb3RvdHlwZS4KCjIwMDMtMDYtMTkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogSWdub3JlIFJfU1BBUkNfRElTUDMyCglyZWxvYyBvdmVyZmxvdyBvbiBkaXNjYXJkZWQgZWhfZnJhbWUgZW50cmllcy4KCjIwMDMtMDYtMTkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAodG9jX2FkanVzdGluZ19zdHViX25lZWRlZCk6IE5ldyBmdW5jdGlvbi4KCShwcGM2NF9lbGZfbmV4dF9pbnB1dF9zZWN0aW9uKTogVXNlIGl0IGhlcmUgdG8gc2V0IGhhc19ncF9yZWxvYy4KCVJldHVybiBlcnJvciBjb25kaXRpb24uCgkocHBjNjRfZWxmX3NpemVfc3R1YnMpOiBSZXN0cmljdCB0b2MgYWRqdXN0aW5nIHN0dWJzIHRvIHNlY3Rpb25zCgl0aGF0IGhhdmUgaGFzX2dwX3JlbG9jIHNldC4KCShzdHJ1Y3QgcHBjX2xpbmtfaGFzaF90YWJsZSk6IEFkZCBzdHViX2NvdW50LgoJKHBwY19idWlsZF9vbmVfc3R1Yik6IEluY3JlbWVudCBpdC4KCShwcGM2NF9lbGZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IHptYWxsb2MgcmF0aGVyIHRoYW4gY2xlYXJpbmcKCWluZGl2aWR1YWwgZmllbGRzLgoJKiBlbGY2NC1wcGMuaCAocHBjNjRfZWxmX25leHRfaW5wdXRfc2VjdGlvbik6IFVwZGF0ZSBwcm90b3R5cGUuCgoyMDAzLTA2LTE4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmbGluay5oIChlbGZfZ2NfcmVjb3JkX3Z0ZW50cnkpOiBSZXZlcnQgbGFzdCBjaGFuZ2UuICBDb3JyZWN0CglzaXplIGNhbGN1bGF0aW9uIGZyb20gYWRkZW5kLiAgUm91bmQgc2l6ZSB1cC4KCjIwMDMtMDYtMTggIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogZWxmMzItY3Jpcy5jIChjcmlzX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKSA8Y2FzZQoJUl9DUklTXzMyX0dPVFJFTD46IFdoZW4gbGlua2luZyBhIHByb2dyYW0sIGRvbid0IGNvbXBsYWluIGFib3V0IGEKCXN5bWJvbCBmcm9tIGEgbm9ybWFsIG9iamVjdCBvciBhbiB1bmRlZmluZWQgd2VhayBzeW1ib2wuCgoyMDAzLTA2LTE4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogQWNjZXB0IGEgc3ltYm9sIG9uCglSX1BQQzY0X1RPQyByZWxvY3MuCgoyMDAzLTA2LTE3ICBILkouIEx1IDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIHNlY3Rpb24uYyAoc3RydWN0IHNlYyk6IFB1dCBiYWNrIGtlcHRfc2VjdGlvbi4KCShTVERfU0VDVElPTik6IFB1dCBiYWNrIGtlcHRfc2VjdGlvbiBpbml0aWFsaXphdGlvbi4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKCSogZWxmbGluay5oIChlbGZfbGlua19pbnB1dF9iZmQpOiBBbHNvIGNoZWNrIGRpc2NhcmRlZCBsaW5rb25jZQoJc2VjdGlvbnMgZm9yIHJlbG9jYXRlYWJsZSBvdXRwdXQuIFVzZSBrZXB0X3NlY3Rpb24gdG8gcHJlc2VydmUKCWRlYnVnIGluZm9ybWF0aW9uIGRpc2NhcmRlZCBieSBsaW5rb25jZS4KCjIwMDMtMDYtMTcgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfcmVsb2NhdGVfc2VjdGlvbik6IFN1cHBvcnQKCXNlZ21lbnQtcmVsYXRpdmUgcmVsb2NhdGlvbiBiZXR3ZWVuIGRpZmZlcmVudCBzZWdtZW50cy4KCjIwMDMtMDYtMTcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBEbyB1bmFsaWduZWQgcmVsb2MKCW9wdGltaXphdGlvbnMgZWFybGllci4KCgkqIGVsZjY0LXBwYy5jIChzdHJ1Y3QgcHBjX2xpbmtfaGFzaF90YWJsZSk6IFJlaW5zdGF0ZSB0b3BfaW5kZXguCglSZXN0b3JlIHByZXZpb3VzIGlucHV0X2xpc3QgdHlwZS4KCShwcGM2NF9lbGZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IFVuZG8gbGFzdCBjaGFuZ2UuCgkocHBjNjRfZWxmX3NldHVwX3NlY3Rpb25fbGlzdHMpOiBSZWluc3RhdGUgY29kZSBzZXR0aW5nIHVwIGlucHV0IGxpc3RzCglwZXIgb3V0cHV0IHNlY3Rpb24sIGJ1dCBkb24ndCBib3RoZXIgd2l0aCBiZmRfYWJzX3NlY3Rpb24gbWFya2VyLgoJKHBwYzY0X2VsZl9uZXh0X2lucHV0X3NlY3Rpb24pOiBBZGp1c3QgZm9yIG11bHRpcGxlIGlucHV0IHNlY3Rpb24KCWxpc3RzLgoJKGdyb3VwX3NlY3Rpb25zKTogTGlrZXdpc2UuCgoyMDAzLTA2LTE3ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGlvbl9zZWN0aW9uKTogRW5zdXJlCgkqcl9vZmZzZXQgPT0gcl9hZGRlbmQgZm9yIFJFTEFUSVZFIHJlbG9jcyBhZ2FpbnN0IC5nb3QuCgoyMDAzLTA2LTE3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogT3B0aW1pemUgdW5hbGlnbmVkIHJlbG9jcy4KCjIwMDMtMDYtMTcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbGZsaW5rLmggKGVsZl9nY19yZWNvcmRfdnRlbnRyeSk6IEFsbG9jYXRlIGFuIGV4dHJhIGVsZW1lbnQKCWluIHRoZSB2dGFibGVfZW50cmllc191c2VkIGFycmF5IHRvIGFsbG93IGZvciB0aGUgYWNjZXNzaW5nCgl0aGUgbGFyZ2VzdCBlbGVtZW50LgoKMjAwMy0wNi0xNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChzdHJ1Y3QgcHBjX2xpbmtfaGFzaF90YWJsZSk6IFJlbW92ZSB0b3BfaW5kZXguICBNb2RpZnkKCWlucHV0X2xpc3QuCgkocHBjNjRfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBJbml0IGlucHV0X2xpc3QgaGVyZS4KCShwcGM2NF9lbGZfc2V0dXBfc2VjdGlvbl9saXN0cyk6IFJlbW92ZSBjb2RlIHNldHRpbmcgdXAgaW5wdXQgbGlzdHMKCXBlciBvdXRwdXQgc2VjdGlvbi4gIFNldCB0b2Nfb2ZmIGZvciBhYnMgYW5kIG90aGVyIHN0YW5kYXJkIHNlY3Rpb25zLgoJKHBwYzY0X2VsZl9yZWluaXRfdG9jKTogRG9uJ3Qgc2V0IGVsZl9ncCBvbiBpbnB1dCBiZmRzIGxhY2tpbmcgYSB0b2MuCgkocHBjNjRfZWxmX25leHRfaW5wdXRfc2VjdGlvbik6IEFkanVzdCBmb3Igc2luZ2xlIGlucHV0IHNlY3Rpb24gbGlzdC4KCURvbid0IHNldCB0b2NfY3VyciBmcm9tIGlucHV0IGJmZHMgdGhhdCBoYXZlbid0IHNldCBlbGZfZ3AuCgkoZ3JvdXBfc2VjdGlvbnMpOiBBZGp1c3QgZm9yIHNpbmdsZSBpbnB1dCBzZWN0aW9uIGxpc3QuCgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBDb3JyZWN0IHBjcmVsIHNlY3Rpb24gemVyby4KCjIwMDMtMDYtMTYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBXaGVuIG9wdGltaXppbmcgdG9jdHByZWwKCXRscywgY2hlY2sgdGhhdCBhIFRPQzE2X0RTIG9yIFRPQzE2X0xPX0RTIHJlbG9jIGlzbid0IHBvaW50aW5nIHRvIGEKCWR0cHJlbCBlbnRyeS4gIEVuc3VyZSBUTFNfTEQgRFRQTU9EIHJlbG9jIGhhcyBhIHplcm8gYWRkZW5kLiAgV3JpdGUKCWdvdCBzZWN0aW9uIGZvciBSRUxBVElWRSByZWxvY3MuICBGaXggd3JvbmcgY29tbWVudC4gIENoYW5nZSBjb25kaXRpb24KCXVuZGVyIHdoaWNoIGR5bmFtaWMgcmVsb2NzIHVwZGF0ZSB0aGUgc2VjdGlvbiBjb250ZW50cy4KCjIwMDMtMDYtMTMgIFJvYmVydCBNaWxsYW4gIDx6ZXJhdHVsMkB3YW5hZG9vLmVzPgoKCSogY29uZmlnLmJmZDogQWRkIGkzODYtbmV0YnNkLWdudSB0YXJnZXQuCgoyMDAzLTA2LTEyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogb3BuY2xzLmMgKGNhbGNfY3JjMzIpOiBSZW5hbWUgdG8KCWJmZF9jYWxjX2dudV9kZWJ1Z2xpbmtfY3JjMzIgYW5kIGV4cG9ydC4KCShHTlVfREVCVUdMSU5LKTogRGVmaW5lIGFuZCB1c2UgdG8gcmVwbGFjZSBvY2N1cnJlbmNlcyBvZgoJaGFyZC1jb2RlZCAiLmdudV9kZWJ1Z2xpbmsiIGluIHRoZSBjb2RlLgoJKGdldF9kZWJ1Z19saW5rX2luZm8pOiBQcmV2ZW50IGFib3J0cyBieSByZXBsYWNpbmcgY2FsbCB0bwoJeG1hbGxvYyB3aXRoIGEgY2FsbCB0byBtYWxsb2MuCgkoZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlKTogUHJldmVudCBhYm9ydHMgYnkgcmVwbGFjaW5nIGNhbGxzCgl0byB4bWFsbG9jIGFuZCB4c3RyZHVwIHdpdGggY2FsbHMgdG8gbWFsbG9jIGFuZCBzdHJkdXAuCgkoYmZkX2FkZF9nbnVfZGVidWdsaW5rKTogTmV3IGZ1bmN0aW9uLiAgQWRkIGEgLmdudV9kZWJ1Z2xpbmsKCXNlY3Rpb24gdG8gYSBiZmQuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDMtMDYtMTIgRmVkZXJpY28gRy4gU2Nod2luZHQgPGZnc2NoQGxvZG9zcy5uZXQ+CgoJKiBjb25maWcuYmZkIChpWzMtN104Ni0qLW9wZW5ic2RbMC0yXS4qIHwgaVszLTddODYtKi1vcGVuYnNkMy5bMC0zXSk6CglOZXcgdGFyZ2V0ICh3YXMgaVszLTddODYtKi1vcGVuYnNkKiBiZWZvcmUpLgoJKGlbMy03XTg2LSotb3BlbmJzZCopOiBDaGFuZ2UgdG8gdXNlIGJmZF9lbGYzMl9pMzg2X3ZlYy4KCSh2YXgtKi1vcGVuYnNkKik6IE5ldyB0YXJnZXQuCgoyMDAzLTA2LTExICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmeHgtbWlwcy5jIChNSVBTX0VMRl9PUFRJT05TX1NFQ1RJT05fTkFNRSk6IFVzZSAuTUlQUy5vcHRpb25zCglmb3IgbjMyLCB0b28uCgkoTUlQU19FTEZfU1RVQl9TRUNUSU9OX05BTUUpOiBVc2UgLk1JUFMuc3R1YnMgZm9yIG4zMiwgdG9vLgoJKG1pcHNfZWxmX3JlbF9keW5fc2VjdGlvbik6IFVzZSBhcHByb3ByaWF0ZSBzZWN0aW9uIGFsaWdubWVudC4KCShtaXBzX2VsZl9jcmVhdGVfZ290X3NlY3Rpb24pOiBMaWtld2lzZS4KCShfYmZkX21pcHNfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgoyMDAzLTA2LTExICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmMzItbWlwcy5jIChtaXBzX2VsZl9nZW5lcmljX3JlbG9jKTogTmV3IEZ1bmN0aW9uLgoJKGVsZl9taXBzX2hvd3RvX3RhYmxlX3JlbCk6IFVzZSBpdC4KCShncHJlbDMyX3dpdGhfZ3ApOiBNb3ZlIHByb3RvdHlwZS4KCShtaXBzX2VsZl9oaTE2X3JlbG9jKTogQ2hlY2sgZm9yICEgQlNGX0xPQ0FMIGluc3RlYWQgb2YgemVybyBhZGRlbmQuCglVc2UgbWlwc19lbGZfZ2VuZXJpY19yZWxvYy4KCShtaXBzX2VsZl9nb3QxNl9yZWxvYyk6IENoZWNrIGZvciAhIEJTRl9MT0NBTCBpbnN0ZWFkIG9mIHplcm8gYWRkZW5kLgoJQ29kZSBjbGVhbnVwLgoJKF9iZmRfbWlwc19lbGYzMl9ncHJlbDE2X3JlbG9jKTogQ2hlY2sgZm9yICEgQlNGX0xPQ0FMIGluc3RlYWQgb2YKCXplcm8gYWRkZW5kLgoJKG1pcHNfZWxmX2dwcmVsMzJfcmVsb2MpOiBMaWtld2lzZS4gVXNlIHRoZSBzYW1lIEdQIGFzc2lnbm1lbnQgbG9naWMKCWFzIGluIHRoZSBvdGhlciAqX2dwcmVsKl9yZWxvYyBmdW5jdGlvbnMuCgkoZ3ByZWwzMl93aXRoX2dwKTogSGFuZGxlIHBhcnRpYWxfaW5wbGFjZSBwcm9wZXJseS4KCShtaXBzMzJfNjRiaXRfcmVsb2MpOiBVc2UgbWlwc19lbGZfZ2VuZXJpY19yZWxvYy4KCShtaXBzMTZfZ3ByZWxfcmVsb2MpOiBDaGVjayBmb3IgISBCU0ZfTE9DQUwgaW5zdGVhZCBvZiB6ZXJvIGFkZGVuZC4KCURvIGFkZGVuZCBoYW5kbGluZyBkaXJlY3RseSBpbnN0ZWFkIG9mIGNhbGxpbmcKCV9iZmRfbWlwc19lbGZfZ3ByZWwxNl93aXRoX2dwLiBIYW5kbGUgcGFydGlhbF9pbnBsYWNlIHByb3Blcmx5LgoJKiBlbGY2NC1taXBzLmMgKG1pcHNfZWxmNjRfaGkxNl9yZWxvYyk6IENoZWNrIGZvciAhIEJTRl9MT0NBTCBpbnN0ZWFkCglvZiB6ZXJvIGFkZGVuZC4gSGFuZGxlIHBhcnRpYWxfaW5wbGFjZSBwcm9wZXJseS4KCShtaXBzX2VsZjY0X2dvdDE2X3JlbG9jKTogQ2hlY2sgZm9yICEgQlNGX0xPQ0FMIGluc3RlYWQgb2YgemVybwoJYWRkZW5kLgoJKG1pcHNfZWxmNjRfZ3ByZWwxNl9yZWxvYyk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfbGl0ZXJhbF9yZWxvYyk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfZ3ByZWwzMl9yZWxvYyk6IExpa2V3aXNlLiBVc2UgdGhlIHNhbWUgR1AgYXNzaWdubWVudAoJbG9naWMgYXMgaW4gdGhlIG90aGVyICpfZ3ByZWwqX3JlbG9jIGZ1bmN0aW9ucy4gSGFuZGxlCglwYXJ0aWFsX2lucGxhY2UgcHJvcGVybHkuCgkobWlwc19lbGY2NF9zaGlmdDZfcmVsb2MpOiBDaGVjayBmb3IgISBCU0ZfTE9DQUwgaW5zdGVhZCBvZiB6ZXJvCglhZGRlbmQuIEhhbmRsZSBwYXJ0aWFsX2lucGxhY2UgcHJvcGVybHkuCgkobWlwczE2X2dwcmVsX3JlbG9jKTogTGlrZXdpc2UuIERvIGFkZGVuZCBoYW5kbGluZyBkaXJlY3RseSBpbnN0ZWFkCglvZiBjYWxsaW5nIF9iZmRfbWlwc19lbGZfZ3ByZWwxNl93aXRoX2dwLgoJKiBlbGZuMzItbWlwcy5jIChtaXBzX2VsZl9nb3QxNl9yZWxvYyk6IENoZWNrIGZvciBCU0ZfTE9DQUwuCgkobWlwc19lbGZfZ3ByZWwzMl9yZWxvYyk6IENoZWNrIGZvciAhIEJTRl9MT0NBTCBpbnN0ZWFkCglvZiB6ZXJvIGFkZGVuZC4KCShtaXBzX2VsZl9zaGlmdDZfcmVsb2MpOiBIYW5kbGUgcGFydGlhbF9pbnBsYWNlIHByb3Blcmx5LgoJKG1pcHMxNl9ncHJlbF9yZWxvYyk6IExpa2V3aXNlLiBEbyBhZGRlbmQgaGFuZGxpbmcgZGlyZWN0bHkgaW5zdGVhZAoJb2YgY2FsbGluZyBfYmZkX21pcHNfZWxmX2dwcmVsMTZfd2l0aF9ncC4KCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX2dwcmVsMTZfd2l0aF9ncCk6IEhhbmRsZQoJcGFydGlhbF9pbnBsYWNlIHByb3Blcmx5LiBGaXggd3JvbmcgYWRkZW5kIGhhbmRsaW5nLiBGaXggb3ZlcmZsb3cKCWNoZWNrLgoJKF9iZmRfbWlwc19lbGZfc2lnbl9leHRlbmQpOiBSZW5hbWVkIGZyb20gbWlwc19lbGZfc2lnbl9leHRlbmQgYW5kCglleHBvcnRlZC4KCShtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IFVzZSBfYmZkX21pcHNfZWxmX3NpZ25fZXh0ZW5kLgoJKF9iZmRfbWlwc19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKG1pcHNfZWxmX2NyZWF0ZV9keW5hbWljX3JlbG9jYXRpb24pOiBVcGRhdGUgc2VjX2luZm9fdHlwZSBhY2Nlc3MuCgkqIGVsZnh4LW1pcHMuaCAoX2JmZF9taXBzX3JlbGF4X3NlY3Rpb24pOiBGaXggcHJvdG90eXBlIGRlY2xhcmF0aW9uLgoJKF9iZmRfbWlwc19lbGZfc2lnbl9leHRlbmQpOiBOZXcgcHJvdG90eXBlLgoKMjAwMy0wNi0xMSBGZWRlcmljbyBHLiBTY2h3aW5kdCA8ZmdzY2hAbG9kb3NzLm5ldD4KCgkqIGNvbmZpZy5iZmQgKHNwYXJjLSotb3BlbmJzZFswLTJdLiogfCBzcGFyYy0qLW9wZW5ic2QzLlswLTFdKToKCU5ldyB0YXJnZXQgKHdhcyBzcGFyYy0qLW9wZW5ic2QqIGJlZm9yZSkuCgkoc3BhcmMtKi1vcGVuYnNkKik6IENoYW5nZSB0byB1c2UgYmZkX2VsZjMyX3NwYXJjX3ZlYy4KCgkqIGNvbmZpZ3VyZS5pbiAodmF4LSotb3BlbmJzZCopOiBTZXQgQ09SRUZJTEUgdG8gbmV0YnNkLWNvcmUubG8uCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDMtMDYtMTEgIEguSi4gTHUgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogcG8vTWFrZS1pbiAoREVTVERJUik6IE5ldy4KCShpbnN0YWxsLWRhdGEteWVzKTogU3VwcG9ydCAkKERFU1RESVIpLgoJKHVuaW5zdGFsbCk6IExpa2V3aXNlLgoKMjAwMy0wNi0xMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtIChjb25maWcuc3RhdHVzKTogRGVwZW5kIG9uIHZlcnNpb24uaC4KCVJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogcG8vU1JDLVBPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0wNi0xMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCSAgICBHYXJ5IEhhZGUgPGdhcnloYWRlQHVzLmlibS5jb20+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24gPCpfRFM+KTogU3BlY2lhbCBjYXNlIGxxLgoKMjAwMy0wNi0xMCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogYXJjaHVyZXMuYyAoYmZkX21hY2hfaDgzMDBzeG4pOiBOZXcgYXJjaGl0ZWN0dXJlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGNwdS1oODMwMC5jIChoODMwMF9zY2FuKTogQ2hlY2sgZm9yICdzeG4nLgoJKGg4MzAwc3huX2luZm9fc3RydWN0KTogTmV3LgoJKGg4MzAwc3hfaW5mb19zdHJ1Y3QpOiBMaW5rIHRvIGl0LgoJKiBlbGYzMi1oODMwMC5jIChlbGYzMl9oOF9tYWNoKTogQWRkIGg4MzAwc3huIGNhc2UuCgkoZWxmMzJfaDhfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IExpa2V3aXNlLgoKMjAwMy0wNi0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jOiBNb3ZlIFRBUkdFVF9MSVRUTEVfU1lNIGFuZCBvdGhlciBtYWNyb3MgdXNlZCBieQoJZWxmeHgtdGFyZ2V0Lmggc28gdGhhdCB3ZSBjYW4gdXNlIGVsZl9iYWNrZW5kX2dvdF9oZWFkZXJfc2l6ZS4KCShFTEZfTUFDSElORV9BTFQxLCBFTEZfTUFDSElORV9BTFQyKTogRGVsZXRlLgoJKEdMSU5LX0NBTExfU1RVQl9TSVpFKTogTW9kaWZ5LiAgRGVmaW5lIG5ldyBnbGluayBjYWxsIHN0dWIgYW5kCglhc3NvY2lhdGVkIG1hY3Jvcy4KCShwcGM2NF9lbGZfaG93dG9fcmF3IDxHT1RfVFBSRUwxNl9EUywgR09UX1RQUkVMMTZfTE9fRFM+KTogQ29ycmVjdAoJZHN0X21hc2suCgkoZW51bSBwcGNfc3R1Yl90eXBlKTogQWRkIHBwY19zdHViX2xvbmdfYnJhbmNoX3Iyb2ZmIGFuZAoJcHBjX3N0dWJfcGx0X2JyYW5jaF9yMm9mZi4KCShzdHJ1Y3QgcHBjX3N0dWJfaGFzaF9lbnRyeSk6IFJlb3JnYW5pemUuCgkoc3RydWN0IHBwY19saW5rX2hhc2hfdGFibGUpOiBBZGQgbm9fbXVsdGlfdG9jLCBtdWx0aV90b2NfbmVlZGVkLAoJdG9jX2N1cnIsIHRvY19vZmYgYW5kIGVtaXRfc3R1Yl9zeW1zLgoJKHBwYzY0X2VsZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogSW5pdCB0aGVtLgoJKHBwY19zdHViX25hbWUpOiBDb3JyZWN0IHN0cmluZyBzaXplLgoJKHBwYzY0X2VsZl9jaGVja19yZWxvY3MpOiBTZXQgaGFzX2dwX3JlbG9jIG9uIEdPVCBhbmQgVE9DIHJlbG9jcy4KCShwcGM2NF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogU2V0IG5vX211bHRpX3RvYyBpZiBHT1QgZW50cmllcwoJdXNlZC4KCShwcGNfdHlwZV9vZl9zdHViKTogVHdlYWsgcm9vdC50eXBlIHRlc3QuCgkoYnVpbGRfcGx0X3N0dWIpOiBSZW1vdmUgZ2xpbmsgY29kZS4gIEFkanVzdCBmb3IgaW5zbiBtYWNybyBjaGFuZ2VzLgoJKHBwY19zaXplX29uZV9zdHViKTogSGFuZGxlIHBwY19zdHViX2xvbmdfYnJhbmNoX3Iyb2ZmIGFuZAoJcHBjX3N0dWJfcGx0X2JyYW5jaF9yMm9mZi4KCShwcGNfYnVpbGRfb25lX3N0dWIpOiBMaWtld2lzZS4gIEZpeCB2YXIgc2hhZG93aW5nLiAgQ29ycmVjdCBhZGRpcyxhZGRpCglyYW5nZSB0ZXN0LiAgVXNlIHRvY19vZmYgdG8gY2FsY3VsdGUgcjIgdmFsdWVzLiAgSGFuZGxlIGVtaXRfc3R1Yl9zeW1zLgoJKHBwYzY0X2VsZl9zZXR1cF9zZWN0aW9uX2xpc3RzKTogUmVtb3ZlIGh0YWIgY3JlYXRvciBmbGF2b3VyIHRlc3QuCglJbml0aWFsaXplIGVsZl9ncCBhbmQgdG9jX2N1cnIuCgkocHBjNjRfZWxmX25leHRfdG9jX3NlY3Rpb24sIHBwYzY0X2VsZl9yZWluaXRfdG9jKTogTmV3IGZ1bmN0aW9ucy4KCShwcGM2NF9lbGZfbmV4dF9pbnB1dF9zZWN0aW9uKTogU2V0IHRvY19vZmYuCgkoZ3JvdXBfc2VjdGlvbnMpOiBFbnN1cmUgZ3JvdXBzIGhhdmUgdGhlIHNhbWUgVE9DLgoJKHBwYzY0X2VsZl9zaXplX3N0dWJzKTogQ2hlY2sgd2hldGhlciB3ZSBuZWVkIGEgVE9DIGFkanVzdGluZyBzdHViLgoJKHBwYzY0X2VsZl9idWlsZF9zdHVicyk6IEFkZCBlbWl0X3N0dWJfc3ltcyBwYXJhbSwgYW5kIHN0YXNoIGluIGh0YWIuCglCdWlsZCBuZXcgZ2xpbmsgc3R1Yi4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEhhbmRsZSBtdWx0aXBsZSBUT0NzLiAgRml4IGNvbW1lbnRzLgoJKHBwYzY0X2VsZl9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IEFkanVzdCBEVF9QUEM2NF9HTElOSy4KCSogZWxmNjQtcHBjLmggKHBwYzY0X2VsZl9idWlsZF9zdHVicyk6IFVwZGF0ZSBwcm90b3R5cGUuCgkocHBjNjRfZWxmX25leHRfdG9jX3NlY3Rpb24sIHBwYzY0X2VsZl9yZWluaXRfdG9jKTogRGVjbGFyZS4KCSogc2VjdGlvbi5jIChzdHJ1Y3Qgc2VjKTogUmVuYW1lIGZsYWcxMiB0byBoYXNfZ3BfcmVsb2MuCgkoU1REX1NFQ1RJT04pOiBVcGRhdGUuCgkqIGVjb2ZmLmMgKGJmZF9kZWJ1Z19zZWN0aW9uKTogVXBkYXRlIGNvbW1lbnQuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDMtMDYtMDUgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogZWxmY29kZS5oIChlbGZfc2x1cnBfcmVsb2NfdGFibGVfZnJvbV9zZWN0aW9uKTogRG9uJ3QgZGVyZWZlcmVuY2UKCU5VTEwgZnVuY3Rpb24gcG9pbnRlcnMuCgoyMDAzLTA2LTA1ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIHNpbXBsZS5jIChiZmRfc2ltcGxlX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IENhbGwKCV9iZmRfZ2VuZXJpY19saW5rX2FkZF9zeW1ib2xzIGluc3RlYWQgb2YgYmZkX2xpbmtfYWRkX3N5bWJvbHMuCgoyMDAzLTA2LTA0ICBTdmVpbiBFLiBTZWxkYWwgIDxTdmVpbi5TZWxkYWxAc29saWRhcy5jb20+CgoJKiBjb2ZmLXRpYzU0eC5jOiBSZW1vdmVkIHRoZSB0aWNvZmYwX2JhZF9mb3JtYXRfaG9vaygpIGFuZAoJdGljb2ZmMV9iYWRfZm9ybWF0X2hvb2soKSBmdW5jdGlvbnMuIFJlbW92ZWQgdGhlIGNvZmYwIGFuZCBjb2ZmMQoJc3dhcHRhYmxlcy4KCSogY29mZi10aWM0eC5jOiBEaXR0bwoJKiBjb2ZmY29kZS5oOiBBZGRlZCBleHRyYSBhcmd1bWVudHMgdG8gQ1JFQVRFX0JJR19DT0ZGX1RBUkdFVF9WRUMKCWFuZCBDUkVBVEVfTElUVExFX0NPRkZfVEFSR0VUX1ZFQy4gQ3JlYXRlZCB0aGUgbWFjcm8KCUNSRUFURV9CSUdIRFJfQ09GRl9UQVJHRVRfVkVDLiBDcmVhdGVkIHRoZSB0aWNvZmYwX2JhZF9mb3JtYXRfaG9vaygpLAoJdGljb2ZmMV9iYWRfZm9ybWF0X2hvb2soKSBmdW5jdGlvbnMuIENyZWF0ZWQgdGhlIGNvZmYwIGFuZCBjb2ZmMQoJc3dhcCB0YWJsZXMuCgkqIGNvZmYtdGljNHguYzogQWRvcHRlZCBuZXcgQ1JFQVRFX3h4eF9DT0ZGX1RBUkdFVF9WRUMgbWFjcm9zLgoJKiBjb2ZmLWEyOWsuYzogQXBwZW5kIENPRkZfU1dBUF9UQUJMRSBhcmd1bWVudAoJKiBjb2ZmLWFwb2xsby5jOiBEaXR0bwoJKiBjb2ZmLWFybS5jOiBEaXR0bwoJKiBjb2ZmLWg4MzAwLmM6IERpdHRvCgkqIGNvZmYtaDg1MDAuYzogRGl0dG8KCSogY29mZi1pOTYwLmM6IERpdHRvCgkqIGNvZmYtbTY4ay5jOiBEaXR0bwoJKiBjb2ZmLW04OGsuYzogRGl0dG8KCSogY29mZi1tY29yZS5jOiBEaXR0bwoJKiBjb2ZmLXNoLmM6IERpdHRvCgkqIGNvZmYtc3BhcmMuYzogRGl0dG8KCSogY29mZi10aWM4MC5jOiBEaXR0bwoJKiBjb2ZmLXdlMzJrLmM6IERpdHRvCgkqIGNvZmYtejhrLmM6IERpdHRvCgkqIGNvZmYtdzY1LmM6IERpdHRvCgoyMDAzLTA2LTA0ICBTdmVpbiBFLiBTZWxkYWwgIDxTdmVpbi5TZWxkYWxAc29saWRhcy5jb20+CgoJKiBjb2ZmLXRpYzR4LmMgKHRpY29mZjBfc3dhcF90YWJsZSwgdGljb2ZmMV9zd2FwX3RhYmxlKTogRml4ZWQKCWluaXRpYWxpemF0aW9uIGJ1ZwoKMjAwMy0wNi0wMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYuYyAoX2JmZF9lbGZfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IEhhbmRsZSBQVF9HTlVfU1RBQ0suCgkoYmZkX3NlY3Rpb25fZnJvbV9waGRyKTogTGlrZXdpc2UuCgkobWFwX3NlY3Rpb25zX3RvX3NlZ21lbnRzKTogQ3JlYXRlIFBUX0dOVV9TVEFDSyBzZWdtZW50IGhlYWRlci4KCShnZXRfcHJvZ3JhbV9oZWFkZXJfc2l6ZSk6IENvdW50IHdpdGggUFRfR05VX1NUQUNLLgoJKiBlbGYtYmZkLmggKHN0cnVjdCBlbGZfb2JqX3RkYXRhKTogQWRkIHN0YWNrX2ZsYWdzLgoJKiBlbGZsaW5rLmggKGJmZF9lbGZOTl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBTZXQgc3RhY2tfZmxhZ3MuCgoyMDAzLTA2LTAzICBILkouIEx1IDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfaW5wdXRfYmZkKTogQ2FsbCBsaW5rZXIgZXJyb3JfaGFuZGxlcgoJZm9yIGRpc2NhcmRlZCBkZWZpbml0aW9ucy4KCjIwMDMtMDYtMDMgIEVsaWFzIEF0aGFuYXNvcG91bG9zICA8ZWxhdGhhbkBwaHlzLnVvYS5ncj4KCgkqIHN5bXMuYyAoZGVjb2RlX3NlY3Rpb25fdHlwZSk6IFJldHVybiAnbicgaWYgc2VjdGlvbiBmbGFncyBhcmUKCVNFQ19IQVNfQ09OVEVOVFMgJiYgU0VDX1JFQURPTkxZLgoKMjAwMy0wNi0wMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXY4NTAuYyAodjg1MF9lbGZfaG93dG9fdCk6IFJlbmFtZSBSX1Y4NTBfMzJ0bwoJUl9WODUwX0FCUzMyLiAgQWRkIGVudHJ5IGZvciBSX1Y4NTBfUkVMMzIuCgkodjg1MF9lbGZfcmVsb2NfbWFwKTogTGlrZXdpc2UuCgkodjg1MF9lbGZfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCgkodjg1MF9lbGZfcGVyZm9ybV9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgkodjg1MF9lbGZfZmluYWxfbGlua19yZWxvY2F0ZSk6IExpa2V3aXNlLiAgSW5jbHVkZSBjb21wdXRhdGlvbgoJdG8gbWFrZSBSX1Y4NTBfUkVsMzIgcGMtcmVsYXRpdmUuCgoyMDAzLTA2LTAzICBLYXogS29qaW1hICA8a2tvamltYUByci5paWo0dS5vci5qcD4KCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBDcmVhdGUgLmludGVycCBzZWN0aW9uCglhbmQgRFRfREVCVUcgZHluYW1pYyB0YWcgZXZlbiBmb3IgcG9zaXRpb24gaW5kZXBlbmRlbnQgZXhlY3V0YWJsZXMuCgkqIGVsZjY0LXNoNjQuYyAoc2g2NF9lbGY2NF9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2l6ZS4KCjIwMDMtMDYtMDIgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogY29uZmlnLmJmZDogTW92ZSBvYnNvbGV0ZSBlbnRyaWVzIG91dCBvZiB0aGUgcmFuZ2Ugb2YgdGhlCgl0YXJnbWF0Y2ggc2VkIHNjcmlwdC4KCjIwMDMtMDYtMDIgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogY29uZmlnLmJmZCAobWlwcyotZGVjLWJzZCosIG1pcHMqLSotcGUqKTogTWFyayBhcyBvYnNvbGV0ZS4KCjIwMDMtMDUtMzEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmMzItcHBjLmMgKGFsbG9jYXRlX2R5bnJlbG9jcyk6IFVzZSBzaW5nbGUgc2xvdCBmb3IgZmlyc3QgODE5MgoJcGx0IGVudHJpZXMsIG5vdCBqdXN0IDgxOTEuCgoyMDAzLTA1LTMwICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9kaXNjYXJkX2luZm8pOiBDb3JyZWN0IGxvb3AgaW5kZXguCglSZXBvcnRlZCBieSBLZW4gRmFpY3phayA8a2ZhaWN6YWtAU0FORFZJTkUuY29tPi4KCjIwMDMtMDUtMzAgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckByZWRoYXQuY29tPgoJICAgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBVc2UgIWluZm8tPmV4ZWN1dGFibGUKCWluc3RlYWQgb2YgaW5mby0+c2hhcmVkIHdoZXJlIGFwcHJvcHJpYXRlLgoJKGJmZF9lbGZOTl9zaXplX2R5bmFtaWNfc2VjdGlvbnMsIGVsZl9saW5rX291dHB1dF9leHRzeW0pOiBMaWtld2lzZS4KCSogZWxmbGluay5jIChfYmZkX2VsZl9jcmVhdGVfZ290X3NlY3Rpb24pOiBMaWtld2lzZS4KCShfYmZkX2VsZl9saW5rX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfbGlua19hc3NpZ25fc3ltX3ZlcnNpb24pOiBMaWtld2lzZS4KCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBDcmVhdGUgLmludGVycCBzZWN0aW9uCglhbmQgRFRfREVCVUcgZHluYW1pYyB0YWcgZXZlbiBmb3IgcG9zaXRpb24gaW5kZXBlbmRlbnQgZXhlY3V0YWJsZXMuCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9zMzkwX3NpemVfZHluYW1pY19zZWN0aW9uczogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jIChlbGZfczM5MF9zaXplX2R5bmFtaWNfc2VjdGlvbnM6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X3NpemVfZHluYW1pY19zZWN0aW9uczogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9zaXplX2R5bmFtaWNfc2VjdGlvbnM6IExpa2V3aXNlLgoJKiBlbGYzMi1zcGFyYy5jIChlbGYzMl9zcGFyY19zaXplX2R5bmFtaWNfc2VjdGlvbnM6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9zaXplX2R5bmFtaWNfc2VjdGlvbnM6IExpa2V3aXNlLgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnM6IExpa2V3aXNlLgoKMjAwMy0wNS0zMCAgS3JpcyBXYXJrZW50aW4gPGtld2Fya2VuQHFueC5jb20+CgoJKiBlbGYuYyAoZWxmY29yZV9ncm9rX250b19zdGF0dXMpOiBPbmx5IHNldCBsd3BpZCBmb3IgdGhlIGFjdGl2ZSBvcgoJc2lnbmFsbGVkIHRocmVhZC4KCShlbGZjb3JlX2dyb2tfbnRvX2dyZWdzKTogT25seSBtYWtlIC5yZWcgc2VjdGlvbiBmb3IgdGhlIGFjdGl2ZSB0aHJlYWQuCgoyMDAzLTA1LTI5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcGVmLmM6IEluY2x1ZGUgInNhZmUtY3R5cGUuaCIgaW5zdGVhZCBvZiA8Y3R5cGUuaD4uCglUaWR5IHVwIGZvcm1hdHRpbmcuCgkqIE1ha2VmaWxlLmFtOiBBZGQgZGVwZW5kZW5jeSBvbiBzYWZlLWN0eXBlLmguCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0wNS0yOSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZnh4LW1pcHMuYzogRG9uJ3QgZm9yY2Ugc3ltYm9scyBsb2NhbCB1bmNvbmRpdGlvbmFsbHkuCgoyMDAzLTA1LTI4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX3JlbG9jYXRlX3NlY3Rpb24pOiBEZWxldGUgYm9ndXMKCXVuZGVmaW5lZF9zeW1ib2wgY2FsbC4KCjIwMDMtMDUtMjcgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfaGFzaF9zb3J0X2RhdGEpOiBGaXggZm9ybWF0dHRpbmcuCgkobWlwc19lbGZfbGlua19oYXNoX3RhYmxlKTogTGlrZXdpc2UuCgoyMDAzLTA1LTIyICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmNjQtbWlwcy5jIChlbGZfbWlwc19nbnVfcmVsMTZfczIpOiBBZGQgaW50ZXJuYWxseSB1c2VkCglSX01JUFNfR05VX1JFTDE2X1MyIHN1cHBvcnQuCgkoYmZkX2VsZjY0X2JmZF9yZWxvY190eXBlX2xvb2t1cCk6IFVzZSBpdC4KCShtaXBzX2VsZjY0X3J0eXBlX3RvX2hvd3RvKTogVXNlIGl0LgoJKiBlbGZuMzItbWlwcy5jIChlbGZfbWlwc19nbnVfcmVsMTZfczIpOiBBZGQgaW50ZXJuYWxseSB1c2VkCglSX01JUFNfR05VX1JFTDE2X1MyIHN1cHBvcnQuCgkoYmZkX2VsZjMyX2JmZF9yZWxvY190eXBlX2xvb2t1cCk6IFVzZSBpdC4KCShtaXBzX2VsZl9uMzJfcnR5cGVfdG9faG93dG8pOiBVc2UgaXQuCgoyMDAzLTA1LTIxICBTdHVhcnQgRi4gRG93bmluZyAgPHNkb3duaW5nQGZhbWUuY29tPgoKCSogc29tLmg6IERlZmluZSBQQV8yXzAgYmVmb3JlIGluY2x1ZGluZyBhLm91dC5oCgoyMDAzLTA1LTA3ICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCSAgICBBbGV4YW5kcmUgT2xpdmEgICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IEFkanVzdAoJcGljIHRlc3RzLCBjaGFuZ2UgdG8gd2FybmluZy4KCShfYmZkX21pcHNfZWxmX2ZpbmFsX2xpbmspOiBSZW1vdmUgRUZfTUlQU19DUElDIGZsYWcgc2V0dGluZy4KCjIwMDMtMDUtMjEgIE1hcmN1cyBDb21zdGVkdCAgPG1hcmN1c0BtYy5wcC5zZT4KCgkqIGNvbmZpZy5iZmQ6IENoZWNrIGZvciBhIHRhcmdldCB0cmlwbGV0IG9mIHNobC0uLi4tbmV0YnNkZWxmIGFzCgl3ZWxsIGFzIHNobGUtLi4uLW5ldGJzZGVsZi4gIFJlbW92ZSBkdXBsaWNhdGUgZW50cnkuCgoyMDAzLTA1LTIxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmMzIteHN0b3JteTE2LmMgKHhzdG9ybXkxNl9lbGZfaG93dG9fdGFibGUpOiBGaXggZHN0X21hc2sKCWZvciBYX1NUT1JNWTE2X1JFTF8xMiByZWxvYy4KCgkqIGVsZi5jIChiZmRfZWxmX2dldF9uZWVkZWRfbGlzdCk6IFVzZSBpc19lbGZfaGFzaF90YWJsZSB0byBjaGVjawoJdGhlIHR5cGUgb2YgdGhlIGhhc2ggdGFibGUgaW4gdGhlIGJmZF9saW5rX2luZm8gc3RydWN0dXJlLgoJKGJmZF9lbGZfZ2V0X3J1bnBhdGhfbGlzdCk6IExpa2V3aXNlLgoKMjAwMy0wNS0xOSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KCgkqIGVsZi5jIChiZmRfZWxmX2JmZF9mcm9tX3JlbW90ZV9tZW1vcnkpOiBOZXcgZnVuY3Rpb24uCgkqIGJmZC1pbi5oOiBEZWNsYXJlIGl0LgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGVkLgoJKiBlbGZjb2RlLmggKE5BTUUoX2JmZF9lbGYsYmZkX2Zyb21fcmVtb3RlX21lbW9yeSkpOiBOZXcgZnVuY3Rpb24uCgkqIGVsZi1iZmQuaCAoc3RydWN0IGVsZl9iYWNrZW5kX2RhdGEpOiBOZXcgZnVuY3Rpb24gcG9pbnRlciBtZW1iZXIKCWVsZl9iYWNrZW5kX2JmZF9mcm9tX3JlbW90ZV9tZW1vcnkuCgkoX2JmZF9lbGYzMl9iZmRfZnJvbV9yZW1vdGVfbWVtb3J5LCBfYmZkX2VsZjY0X2JmZF9mcm9tX3JlbW90ZV9tZW1vcnkpOgoJRGVjbGFyZSB0aGVtLgoJKiBlbGZ4eC10YXJnZXQuaCAoZWxmX2JhY2tlbmRfYmZkX2Zyb21fcmVtb3RlX21lbW9yeSk6IE5ldyBtYWNyby4KCShlbGZOTl9iZWQpOiBBZGQgdGhhdCB0byB0aGUgaW5pdGlhbGl6ZXIuCgoyMDAzLTA1LTE1ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgoKCSogZWxmLmMgKGVsZmNvcmVfZ3Jva19ub3RlKTogR3JvayBOVF9BVVhWIG5vdGUsIG1ha2UgIi5hdXh2IiBzZWN0aW9uLgoKMjAwMy0wNS0yMCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX291dHB1dF9leHRzeW0pOiBPbmx5IGlzc3VlIGVycm9yIGFib3V0ICE9CglTVFZfREVGQVVMVCBzeW1ib2xzIGlmIHRoZXkgYXJlIGJmZF9saW5rX2hhc2hfdW5kZWZpbmVkLgoKMjAwMy0wNS0yMCAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX21lcmdlX3N5bWJvbCk6IENoZWNrIEVMRl9MSU5LX0RZTkFNSUNfREVGCgl3aGVuIHJlbW92aW5nIHRoZSBvbGQgZGVmaW5pdGlvbiBmb3Igc3ltYm9scyB3aXRoIG5vbi1kZWZhdWx0Cgl2aXNpYmlsaXR5LgoKMjAwMy0wNS0xOCAgSmFzb24gRWNraGFyZHQgIDxqbGVAcmljZS5lZHU+CgoJKiBlbGYzMi1pODYwLmMgKGVsZjMyX2k4NjBfcmVsb2NhdGVfaGlnaGFkaik6IFNpbXBsaWZ5IGNhbGN1bGF0aW9uLgoKMjAwMy0wNS0xNyAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIGVsZjMyLW02OGsuYyAoZWxmX202OGtfY2hlY2tfcmVsb2NzKTogQ2FjaGUgcmVsb2Mgc2VjdGlvbiBpbgoJZWxmX3NlY3Rpb25fZGF0YSBkdXJpbmcgcHJvY2Vzc2luZyBvZiBwYy1yZWxhdGl2ZSBhbmQgYWJzb2x1dGUKCXJlbG9jYXRpb25zLgoJKGVsZl9tNjhrX3JlbG9jYXRlX3NlY3Rpb24pOiBVc2UgdGhlIGNhY2hlZCByZWxvYyBzZWN0aW9uIGluc3RlYWQKCW9mIGNvbXB1dGluZyBpdCBhZ2Fpbi4gIEZpeCBoYW5kbGluZyBvZiB2aXNpYmlsaXR5LiAgRG9uJ3QgbW9kaWZ5CglhZGRlbmQgd2hlbiBjb3B5aW5nIG92ZXIgYSByZWxvY2F0aW9uIGludG8gdGhlIG91dHB1dC4KCjIwMDMtMDUtMTcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X2FkanVzdF9keW5hbWljX3N5bWJvbCk6IFVzZSBTWU1CT0xfQ0FMTFNfTE9DQUwKCXRvIHRyaW0gcGx0IGVudHJpZXMuICBNb3ZlIHVuZGVmd2VhayBub24tZGVmYXVsdCB2aXNpYmlsaXR5IHRlc3QuLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IC4uZnJvbSBoZXJlLgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBEb24ndCB0ZXN0CglkeW5hbWljX3NlY3Rpb25zX2NyZWF0ZWQgaGVyZS4gIFVwZGF0ZSBjb21tZW50LiAgTW92ZSB1bmRlZndlYWsKCW5vbi1kZWZhdWx0IHZpc2liaWxpdHkgdGVzdC4uCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogLi5mcm9tIGhlcmUuICBGaXggY29tbWVudC4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBVc2UgU1lNQk9MX0NBTExTX0xPQ0FMCgl0byB0cmltIHBsdCBlbnRyaWVzLiAgTW92ZSB1bmRlZndlYWsgbm9uLWRlZmF1bHQgdmlzaWJpbGl0eSB0ZXN0Li4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiAuLmZyb20gaGVyZS4gIEZpeCBjb21tZW50LgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX291dHB1dF9leHRzeW0pOiBDb21wYXJlIEVMRl9TVF9WSVNJQklMSVRZIHdpdGgKCVNUVl9ERUZBVUxUIHJhdGhlciB0aGFuIGNvbXBhcmluZyB3aXRoIHplcm8uCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfbWVyZ2Vfc3ltYm9sKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfZml4X3N5bWJvbF9mbGFncyk6IExpa2V3aXNlLiAgRm9ybWF0IGNvbW1lbnQuCgoyMDAzLTA1LTE3ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogYmZkLmMgKF9iZmRfZ2V0X2dwX3ZhbHVlKTogUHJldmVudCBpbGxlZ2FsIGFjY2VzcyBmb3IgYWJmZCBudWxsCglwb2ludGVycy4KCShfYmZkX3NldF9ncF92YWx1ZSk6IExpa2V3aXNlLgoKMjAwMy0wNS0xNiAgTWljaGFlbCBTbnlkZXIgIDxtc255ZGVyQHJlZGhhdC5jb20+CglGcm9tIEJlcm5kIFNjaG1pZHQgIDxiZXJuZHNAcmVkaGF0LmNvbT4KCSogYXJjaHVyZXMuYyAoYmZkX21hY2hfaDgzMDBzeCk6IE5ldy4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBjcHUtaDgzMDAuYyAoaDgzMDBfc2NhbikpOiBBZGQgc3VwcG9ydCBmb3IgaDgzMDBzeC4KCShoODMwMHN4X2luZm9fc3RydWN0KTogTmV3LgoJKGg4MzAwc19pbmZvX3N0cnVjdCk6IExpbmsgdG8gaXQuCgkqIGVsZjMyLWg4MzAwLmMgKGVsZjMyX2g4X21hY2gpOiBBZGQgc3VwcG9ydCBmb3IgaDgzMDBzeC4KCShlbGYzMl9oOF9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogTGlrZXdpc2UuCgkoZWxmMzJfaDhfcmVsYXhfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMy0wNS0xNiAgS2VsbGV5IENvb2sgIDxrZWxsZXljb29rQHdpZGVvcGVud2VzdC5jb20+CgoJKiBjb25maWcuYmZkOiBBY2NlcHQgaVszLTddODYgdmFyaWFudHMuCgkqIGNvbmZpZ3VyZS5ob3N0OiBMaWtld2lzZS4KCSogY29uZmlndXJlLmluOiBMaWtld2lzZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMy0wNS0xNSAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX2ZpeF9zeW1ib2xfZmxhZ3MpOiBBbHNvIGhpZGUgcHJvdGVjdGVkCglzeW1ib2wuCgoyMDAzLTA1LTE1ICBILkouIEx1IDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfY2hlY2tfdmVyc2lvbmVkX3N5bWJvbCk6IEFsc28gYWxsb3cKCXRoZSBiYXNlIHZlcnNpb24uCgoyMDAzLTA1LTE1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoJICAgIEguSi4gTHUgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmMzItaTM4Ni5jIChhbGxvY2F0ZV9keW5yZWxvY3MpOiBVc2UgU1lNQk9MX0NBTExTX0xPQ0FMLgoJKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmMgKGFsbG9jYXRlX2R5bnJlbG9jcyk6IExpa2V3aXNlLgoJKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYyAoYWxsb2NhdGVfZHlucmVsb2NzKTogTGlrZXdpc2UuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDMtMDUtMTUgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGYzMi1taXBzLmMgKGdwcmVsMzJfd2l0aF9ncCk6IFJlbW92ZSB1c2VsZXNzIE42NCBBQkkgY2FzZS4KCjIwMDMtMDUtMTMgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogZWxmMzItbTY4aGMxeC5jIChfYmZkX202OGhjMTFfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBDaGVjayBmb3IKCXByb2Nlc3NvciBjYXBhYmlsaXR5LCBhbGxvdyBtZXJnZSBvZiBIQzEyIGFuZCBIQ1MxMiBpbiBzb21lIGNhc2VzLgoJKG02OGhjMTFfZWxmX2hhc2hfdGFibGVfY3JlYXRlKTogVXNlIGJmZF9tYWxsb2MgaW5zdGVhZCBvZiBiZmRfemFsbG9jLgoJKiBjcHUtbTY4aGMxMi5jIChiZmRfbTY4aGMxMnNfYXJjaCk6IE5ldyBzdHJ1Y3QuCgkoYmZkX202OGhjMTJfYXJjaCk6IExpbmsgaXQuCgkoc2Nhbl9tYWNoKTogTmV3IGZ1bmN0aW9uLgoKMjAwMy0wNS0xMyAgQW5kcmV3IEhhbGV5ICA8YXBoQHJlZGhhdC5jb20+CgoJKiBlbGYuYyAoYmZkX2VsZl9oYXNoKTogTWFzayBsb3dlciAzMiBiaXRzIG9mIGhhc2guCgoyMDAzLTA1LTEzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoJICAgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZi1iZmQuaCAoU1lNQk9MX1JFRkVSRU5DRVNfTE9DQUwsIFNZTUJPTF9DQUxMU19MT0NBTCk6IE1vdmUgZnJvbQoJZWxmMzItcHBjLmMuICBBZGQgRUxGX0xJTktfRk9SQ0VEX0xPQ0FMIGNoZWNrLgoJKiBlbGYzMi1wcGMuYzogKFNZTUJPTF9SRUZFUkVOQ0VTX0xPQ0FMLCBTWU1CT0xfQ0FMTFNfTE9DQUwpOiBEZWxldGUuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogVXNlIFNZTUJPTF9SRUZFUkVOQ0VTX0xPQ0FMIGZvciBkeW5yZWxvYyBjaGVjay4KCShwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmMgKGFsbG9jYXRlX2R5bnJlbG9jcyk6IExpa2V3aXNlLgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuICBVc2UgZm9yIC5nb3QgcmVsb2NzIHRvby4KCShwcGM2NF9lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogRG9uJ3QgYXNzdW1lIHN5bWJvbHMgd2l0aCAucGx0CglyZWxvY3MgbmVlZCBubyBvdGhlciB0eXBlcy4KCSogZWxmMzItaTM4Ni5jIChhbGxvY2F0ZV9keW5yZWxvY3MpOiBVc2UgU1lNQk9MX1JFRkVSRU5DRVNfTE9DQUwgZm9yCglkeW5yZWxvYyBjaGVjay4KCShlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuICBVc2UgZm9yIC5nb3QgcmVsb2NzIHRvby4KCShlbGZfaTM4Nl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBVc2UgU1lNQk9MX1JFRkVSRU5DRVNfTE9DQUwgZm9yCgkuZ290IHJlbG9jcy4KCjIwMDMtMDUtMTMgIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCSogZWxmMzItc2guYyAoc2hfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IEZvciB3ZWFrIHN5bWJvbHMsCgljb3B5IEVMRl9MSU5LX05PTl9HT1RfUkVGIGZyb20gd2Vha2RlZi4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBGb3IgdW5kZWYgd2VhayBzeW1zIHdpdGggbm9uLWRlZmF1bHQKCXZpc2liaWxpdHksIGEpIGRvbid0IGFsbG9jYXRlIHBsdCBlbnRyaWVzLCBiKSBkb24ndCBhbGxvY2F0ZQoJLmdvdCByZWxvY3MsIGMpIGRpc2NhcmQgZHluIHJlbCBzcGFjZQoJKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogZCkgZG9uJ3QgZ2VuZXJhdGUgLmdvdCByZWxvY3MsIGUpCglkb24ndCBnZW5lcmF0ZSBkeW5hbWljIHJlbG9jcy4KCShzaF9lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBEb24ndCBjb3B5IEVMRl9MSU5LX05PTl9HT1RfUkVGCglmb3Igd2Vha2RlZnMgd2hlbiBzeW1ib2wgYWxyZWFkeSBhZGp1c3RlZC4KCjIwMDMtMDUtMTIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbGYzMi14c3Rvcm15MTYuYyAoeHN0b3JteTE2X2VsZl9ob3d0b190YWJsZSk6IHVzZSAnYml0ZmllbGQnCglvdmVyZmxvdyBkZXRlY3Rpb24gZm9yIFJfWFNUT1JNWTE2XzE2IHJlbG9jLgoKMjAwMy0wNS0xMiAgUGF1bCBDbGFya2UgIDxwYXVsY0BzZW5ldC5jb20uYXU+CgoJKiBlbGYzMi1oODMwMC5jOiBGaXggdHlwbyBpbiBuYW1lIG9mIFJfSDhfRElSOCByZWxvYy4KCjIwMDMtMDUtMTEgIEphc29uIEVja2hhcmR0ICA8amxlQHJpY2UuZWR1PgoKCSogZWxmMzItaTg2MC5jIChlbGYzMl9pODYwX3JlbG9jYXRlX2hpZ2hhZGopOiBQcm9wZXJseQoJYWRqdXN0IHVwcGVyIGJpdHMuCgkoZWxmMzJfaTg2MF9yZWxvY2F0ZV9zcGxpdG4pOiBPYnRhaW4gdXBwZXIgNSBiaXRzIGZyb20gdGhlCglwcm9wZXIgcGxhY2UuCgkoZWxmMzJfaTg2MF9yZWxvY2F0ZV9wYzE2KTogT2J0YWluIHVwcGVyIDUgYml0cyBmcm9tIHRoZQoJcHJvcGVyIHBsYWNlLgoKMjAwMy0wNS0xMSAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIGVsZjMyLW02OGsuYyAoZWxmX202OGtfcmVsb2NhdGVfc2VjdGlvbik6IFJlcGxhY2UgdWdseQoJY29tcGxpY2F0ZWQgdGVzdHMgZm9yIHVucmVzb2x2YWJsZSByZWxvY3Mgd2l0aCBhIHNpbXBsZSBkaXJlY3QKCXNjaGVtZSB1c2luZyAidW5yZXNvbHZlZF9yZWxvYyIgdmFyLiAgUmVwb3J0IHNvbWUgZGV0YWlsIG9uCgliZmRfcmVsb2Nfb3V0b2ZyYW5nZSBhbmQgc2ltaWxhciBlcnJvcnMuCgoyMDAzLTA1LTA5ICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogZWxmMzItczM5MC5jIChhbGxvY2F0ZV9keW5yZWxvY3MsIGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOgoJRml4IFdJTExfQ0FMTF9GSU5JU0hfRFlOQU1JQ19TWU1CT0wgY2FsbC4KCShXSUxMX0NBTExfRklOSVNIX0RZTkFNSUNfU1lNQk9MKTogUGFzcyBTSEFSRUQgaW5zdGVhZCBvZiBJTkZPLgoJKiBlbGY2NC1zMzkwLmM6IExpa2V3aXNlLgoKMjAwMy0wNS0wOSAgTWFydGluIFNjaHdpZGVmc2t5ICA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KCgkqIGVsZjMyLXMzOTAuYyAoRUxJTUlOQVRFX0NPUFlfUkVMT0NTKTogRGVmaW5lIGFzIG9uZS4KCShlbGZfczM5MF9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBGb3Igd2VhayBzeW1ib2xzLCBjb3B5CglFTEZfTElOS19OT05fR09UX1JFRiBmcm9tIHdlYWtkZWYuCgkoZWxmX3MzOTBfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBUZXN0IHdoZXRoZXIgdGhlIHdlYWtkZWYgc3ltIGhhcwoJYWxyZWFkeSBiZWVuIGFkanVzdGVkIGJlZm9yZSB0cmVhdGluZyBpdCBzcGVjaWFsbHkuCgkqIGVsNjQtczM5MC5jOiBMaWt3aXNlLgoKMjAwMy0wNS0wOSAgTWFydGluIFNjaHdpZGVmc2t5ICA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KCgkqIGVsZjMyLXMzOTAuYyAoYWxsb2NhdGVfZHlucmVsb2NzKTogRm9yIHVuZGVmIHdlYWsgc3ltcyB3aXRoCglub24tZGVmYXVsdCB2aXNpYmlsaXR5LCBhKSBkb24ndCBtYWtlIHRoZW0gZHluYW1pYywgYikgZGlzY2FyZAoJc3BhY2UgZm9yIGR5bmFtaWMgcmVsb2NzLgoJKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBJbml0aWFsaXplIHRoZSBHT1QgZW50cmllcyBhbmQgc2tpcAoJUl8zOTBfezgsMTYsMzJ9L1JfMzkwX1BDezE2LDE2REJMLDMyREJMLDMyfSBmb3Igd2VhayB1bmRlZmluZWQKCXN5bWJvbHMgd2l0aCBub24tZGVmYXVsdCB2aXNpYmlsaXR5LgoJKiBlbGY2NC1zMzkwLmM6IExpa2V3aXNlLgoKMjAwMy0wNS0wOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNwdS1hcm0uYyAoYXJtX2NoZWNrX25vdGUpOiBXYXJuaW5nIGZpeC4KCSogZWxmMzItaXEyMDAwLmMgKGlxMjAwMF9lbGZfY2hlY2tfcmVsb2NzKTogV2FybmluZyBmaXhlcy4gIEFycmFuZ2UKCXRvIGtlZXAgcmVsb2NzIGlmIGVkaXRlZC4KCShpcTIwMDBfZWxmX3ByaW50X3ByaXZhdGVfYmZkX2RhdGEpOiBSZXR1cm4gVFJVRS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbGF4X3NlY3Rpb24pOiBVc2UgRUxGTk5fUl9TWU0sIG5vdAoJRUxGNjRfUl9TWU0uCgkoZWxmTk5faWE2NF9yZWxheF9sZHhtb3YpOiBXYXJuaW5nIGZpeC4KCSogeHRlbnNhLWlzYS5jICh4dGVuc2FfYWRkX2lzYSk6IFdhcm5pbmcgZml4LgoJKiB4dGVuc2EtbW9kdWxlcy5jIChnZXRfbnVtX29wY29kZXMpOiBXYXJuaW5nIGZpeC4KCjIwMDMtMDUtMDkgIEFuZHJleSBQZXRyb3YgPHBldHJvdkBuZXRic2Qub3JnPgoKCSogZWxmLmMgKGVsZl9mYWtlX3NlY3Rpb25zKTogVXNlIGNvcnJlY3QgY2FzdCBmb3Igc2hfbmFtZS4KCjIwMDMtMDUtMDkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX2xpbmtfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBNb3ZlIGZyb20KCWVsZmxpbmsuaC4gIFJlcGxhY2UgTE9HX0ZJTEVfQUxJR04gd2l0aCBiZWQtPnMtPmxvZ19maWxlX2FsaWduLgoJKF9iZmRfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogVXNlIGJlZC0+cy0+bG9nX2ZpbGVfYWxpZ24uCgkoYmZkX2VsZl9yZWNvcmRfbGlua19hc3NpZ25tZW50KTogTW92ZSBmcm9tIGVsZmxpbmsuaC4KCShfYmZkX2VsZl9tZXJnZV9zeW1ib2wpOiBMaWtld2lzZS4KCShfYmZkX2VsZl9hZGRfZGVmYXVsdF9zeW1ib2wpOiBMaWtld2lzZS4KCShfYmZkX2VsZl9leHBvcnRfc3ltYm9sKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfbGlua19maW5kX3ZlcnNpb25fZGVwZW5kZW5jaWVzKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfbGlua19hc3NpZ25fc3ltX3ZlcnNpb24pOiBMaWtld2lzZS4KCShfYmZkX2VsZl9saW5rX3JlYWRfcmVsb2NzKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfbGlua19zaXplX3JlbG9jX3NlY3Rpb24pOiBMaWtld2lzZS4KCShfYmZkX2VsZl9maXhfc3ltYm9sX2ZsYWdzKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfbGlua19zZWNfbWVyZ2Vfc3ltcyk6IExpa2V3aXNlLgoJKGVsZl9saW5rX3JlYWRfcmVsb2NzX2Zyb21fc2VjdGlvbik6IExpa2V3aXNlLiAgVXNlIGJlZC0+cy0+c2l6ZW9mX3JlbAoJYW5kIGJlZC0+cy0+c2l6ZW9mX3JlbGEuCgkoX2JmZF9lbGZfbGlua19vdXRwdXRfcmVsb2NzKTogTGlrZXdpc2UuCgkqIGVsZi1iZmQuaCAoc3RydWN0IGVsZl9zaXplX2luZm8pOiBSZW5hbWUgZmlsZV9hbGlnbiB0bwoJbG9nX2ZpbGVfYWxpZ24uCgkoc3RydWN0IGVsZl9pbmZvX2ZhaWxlZCk6IE1vdmUgZnJvbSBlbGZsaW5rLmguCgkoc3RydWN0IGVsZl9hc3NpZ25fc3ltX3ZlcnNpb25faW5mbyk6IExpa2V3aXNlLgoJKHN0cnVjdCBlbGZfZmluZF92ZXJkZXBfaW5mbyk6IExpa2V3aXNlLgoJKF9iZmRfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogRGVsZXRlIGR1cGxpY2F0ZSBkZWNsYXJhdGlvbi4KCShfYmZkX2VsZl9tZXJnZV9zeW1ib2wsIF9iZmRfZWxmX2FkZF9kZWZhdWx0X3N5bWJvbCwKCV9iZmRfZWxmX2V4cG9ydF9zeW1ib2wsIF9iZmRfZWxmX2xpbmtfZmluZF92ZXJzaW9uX2RlcGVuZGVuY2llcywKCV9iZmRfZWxmX2xpbmtfYXNzaWduX3N5bV92ZXJzaW9uLAoJX2JmZF9lbGZfbGlua19jcmVhdGVfZHluYW1pY19zZWN0aW9ucywgX2JmZF9lbGZfbGlua19yZWFkX3JlbG9jcywKCV9iZmRfZWxmX2xpbmtfc2l6ZV9yZWxvY19zZWN0aW9uLCBfYmZkX2VsZl9saW5rX291dHB1dF9yZWxvY3MsCglfYmZkX2VsZl9maXhfc3ltYm9sX2ZsYWdzLCBfYmZkX2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wsCglfYmZkX2VsZl9saW5rX3NlY19tZXJnZV9zeW1zKTogRGVjbGFyZS4KCShiZmRfZWxmMzJfbGlua19jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IERvbid0IGRlY2xhcmUuCgkoX2JmZF9lbGYzMl9saW5rX3JlYWRfcmVsb2NzKTogTGlrZXdpc2UuCgkoYmZkX2VsZjY0X2xpbmtfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShfYmZkX2VsZjY0X2xpbmtfcmVhZF9yZWxvY3MpOiBMaWtld2lzZS4KCSogZWxmbGluay5oOiBNb3ZlIGxvdHMgbycgc3R1ZmYgZWxzZXdoZXJlLgoJKiBiZmQtaW4uaCAoYmZkX2VsZjMyX3JlY29yZF9saW5rX2Fzc2lnbm1lbnQpOiBEb24ndCBkZWNsYXJlLgoJKGJmZF9lbGY2NF9yZWNvcmRfbGlua19hc3NpZ25tZW50KTogTGlrZXdpc2UuCgkoYmZkX2VsZl9yZWNvcmRfbGlua19hc3NpZ25tZW50KTogRGVjbGFyZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBlbGZjb2RlLmggKGVsZl9saW5rX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogRG9uJ3QgZGVjbGFyZS4KCShOQU1FKF9iZmRfZWxmLHNpemVfaW5mbykpOiBBZGp1c3QgZm9yIGxvZ19maWxlX2FsaWduLgoJKiBlbGYuYyAoX2JmZF9lbGZfaW5pdF9yZWxvY19zaGRyKTogQWRqdXN0IGZvciBiZWQtPnMtPmxvZ19maWxlX2FsaWduLgoJKGFzc2lnbl9maWxlX3Bvc2l0aW9uc19mb3Jfc2VnbWVudHMpOiBMaWtld2lzZS4KCShhc3NpZ25fZmlsZV9wb3NpdGlvbnNfZXhjZXB0X3JlbG9jcyk6IExpa2V3aXNlLgoJKHN3YXBfb3V0X3N5bXMsIGVsZmNvcmVfd3JpdGVfbm90ZSk6IExpa2V3aXNlLgoJKiBlbGYtbTEwMjAwLmM6IEFkanVzdCBmb3IgY2hhbmdlZCBmdW5jdGlvbiBuYW1lcy4KCSogZWxmLW0xMDMwMC5jOiBMaWtld2lzZS4KCSogZWxmMzItYXJtLmg6IExpa2V3aXNlLgoJKiBlbGYzMi1oODMwMC5jOiBMaWtld2lzZS4KCSogZWxmMzItaHBwYS5jOiBMaWtld2lzZS4KCSogZWxmMzItaXAyay5jOiBMaWtld2lzZS4KCSogZWxmMzItbTMyci5jOiBMaWtld2lzZS4KCSogZWxmMzItbTY4aGMxMS5jOiBMaWtld2lzZS4KCSogZWxmMzItbTY4aGMxeC5jOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jOiBMaWtld2lzZS4KCSogZWxmMzItbWlwcy5jOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jOiBMaWtld2lzZS4KCSogZWxmMzItdjg1MC5jOiBMaWtld2lzZS4KCSogZWxmMzIteHRlbnNhLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jOiBMaWtld2lzZS4KCSogZWxmNjQtaHBwYS5jOiBMaWtld2lzZS4KCSogZWxmNjQtbW1peC5jOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1zaDY0LmM6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmM6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmM6IExpa2V3aXNlLgoJKE1JUFNfRUxGX0xPR19GSUxFX0FMSUdOKTogVXNlIGxvZ19maWxlX2FsaWduLgoJKiBlbGY2NC1hbHBoYS5jIChhbHBoYV9lbGZfc2l6ZV9pbmZvKTogQWRqdXN0IGZvciBsb2dfZmlsZV9hbGlnbi4KCSogZWxmNjQtaHBwYS5jIChocHBhNjRfZWxmX3NpemVfaW5mbyk6IExpa2V3aXNlLgoJKiBlbGY2NC1taXBzLmMgKG1pcHNfZWxmNjRfc2l6ZV9pbmZvKTogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYyAoczM5MF9lbGY2NF9zaXplX2luZm8pOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfc2l6ZV9pbmZvKTogTGlrZXdpc2UuCgoyMDAzLTA1LTA4ICBILkouIEx1IDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZmxpbmsuaCAoZWxmX2FkZF9kZWZhdWx0X3N5bWJvbCk6IEFmdGVyIHNraXBwaW5nIHRoZQoJdW52ZXJzaW9uZWQgc3ltYm9sLCBnbyB0byBub24tZGVmYXVsdCBvbmUuCgoyMDAzLTA1LTA3ICBILkouIEx1IDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoX2JmZF9lbGZfbGlua19oYXNoX2hpZGVfc3ltYm9sKTogQWxzbyBjbGVhciB0aGUKCXdhbnRfcGx0IGZpZWxkLgoJKGVsZk5OX2lhNjRfcmVsb2NhdGVfc2VjdGlvbik6IERvbid0IGRvIGR5bmFtaWMgc3ltYm9sIGxvb2t1cAoJZm9yIHN5bWJvbHMgd2l0aCBub24tZGVmYXVsdCB2aXNpYmlsaXR5LgoKMjAwMy0wNS0wNyAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2NoZWNrX3ZlcnNpb25lZF9zeW1ib2wpOiBBbHNvIGhhbmRsZSB0aGUKCWNhc2UgdGhhdCBhIERTTyByZWZlcmVuY2VzIGEgaGlkZGVuIHN5bWJvbCB3aGljaCBtYXkgYmUKCXNhdGlzZmllZCBieSBhIHZlcnNpb25lZCBzeW1ib2wgaW4gYW5vdGhlciBEU08uCgkoZWxmX2xpbmtfb3V0cHV0X2V4dHN5bSk6IENoZWNrIHZlcnNpb25lZCBkZWZpbml0aW9uIGZvciBoaWRkZW4KCXN5bWJvbCByZWZlcmVuY2VkIGJ5IGEgRFNPLgoKMjAwMy0wNS0wNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXhzdG9ybXkxNi5jICh4c3Rvcm15MTZfZWxmX2hvd3RvX3RhYmxlKTogUmVzZXQKCVJfWFNUT1JNWTE2XzE2IHJlbG9jIHRvIGlnbm9yZSBvdmVyZmxvd3MuCgoyMDAzLTA1LTA2ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogSW1wcm92ZQoJZXJyb3IgbWVzc2FnZSBmb3IgbWl4aW5nIGRpZmZlcmVudC1lbmRpYW4gZmlsZXMuICBDaGVjayBmb3IgQUJJCgljb21wYXRpYmlsaXR5IG9mIGlucHV0IGZpbGVzIHdpdGggdGhlIHNlbGVjdGVkIGVtdWxhdGlvbi4KCjIwMDMtMDUtMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1pMzg2LmMgKGFsbG9jYXRlX2R5bnJlbG9jcyk6IEZvciB1bmRlZiB3ZWFrIHN5bXMgd2l0aAoJbm9uLWRlZmF1bHQgdmlzaWJpbGl0eSwgYSkgZG9uJ3QgbWFrZSB0aGVtIGR5bmFtaWMsIGIpIGRpc2NhcmQKCXNwYWNlIGZvciBkeW5hbWljIHJlbG9jcy4KCSogZWxmNjQteDg2LTY0LmMgKGFsbG9jYXRlX2R5bnJlbG9jcyk6IExpa2V3aXNlLgoKCSogZWxmMzItcHBjLmMgKGFsbG9jYXRlX2R5bnJlbG9jcyk6IEZvciB1bmRlZiB3ZWFrIHN5bXMgd2l0aAoJbm9uLWRlZmF1bHQgdmlzaWJpbGl0eSwgYSkgZG9uJ3QgYWxsb2NhdGUgcGx0IGVudHJpZXMsIGIpIGRvbid0CglhbGxvY2F0ZSAuZ290IHJlbG9jcywgYykgZGlzY2FyZCBkeW4gcmVsIHNwYWNlLAoJKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IGQpIGRvbid0IGdlbmVyYXRlIC5nb3QgcmVsb2NzLCBlKQoJZG9uJ3QgZ2VuZXJhdGUgZHluYW1pYyByZWxvY3MuCgkqIGVsZjY0LXBwYy5jIChhbGxvY2F0ZV9keW5yZWxvY3MpOiBBcyBhYm92ZS4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEFzIGFib3ZlLgoKMjAwMy0wNS0wNSAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogZWxmNjQteDg2LTY0LmMgKGFsbG9jYXRlX2R5bnJlbG9jcyk6IERvbid0IGFsbG9jYXRlIGR5bmFtaWMKCXJlbG9jYXRpb24gZW50cmllcyBmb3Igd2VhayB1bmRlZmluZWQgc3ltYm9scyB3aXRoIG5vbi1kZWZhdWx0Cgl2aXNpYmlsaXR5LgoJKGVsZjY0X3g4Nl82NF9yZWxvY2F0ZV9zZWN0aW9uKTogSW5pdGlhbGl6ZSB0aGUgR09UIGVudHJpZXMgYW5kCglza2lwIFJfMzg2XzMyL1JfMzg2X1BDMzIgZm9yIHdlYWsgdW5kZWZpbmVkIHN5bWJvbHMgd2l0aAoJbm9uLWRlZmF1bHQgdmlzaWJpbGl0eS4KCjIwMDMtMDUtMDQgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmMzItaTM4Ni5jIChhbGxvY2F0ZV9keW5yZWxvY3MpOiBEb24ndCBhbGxvY2F0ZSBkeW5hbWljCglyZWxvY2F0aW9uIGVudHJpZXMgZm9yIHdlYWsgdW5kZWZpbmVkIHN5bWJvbHMgd2l0aCBub24tZGVmYXVsdAoJdmlzaWJpbGl0eS4KCShlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogSW5pdGlhbGl6ZSB0aGUgR09UIGVudHJpZXMgYW5kCglza2lwIFJfMzg2XzMyL1JfMzg2X1BDMzIgZm9yIHdlYWsgdW5kZWZpbmVkIHN5bWJvbHMgd2l0aAoJbm9uLWRlZmF1bHQgdmlzaWJpbGl0eS4KCgkqIGVsZnh4LWlhNjQuYyAoYWxsb2NhdGVfZnB0cik6IERvbid0IGFsbG9jYXRlIGZ1bmN0aW9uCglkZXNjcmlwdG9ycyBmb3Igd2VhayB1bmRlZmluZWQgc3ltYm9scyB3aXRoIG5vbi1kZWZhdWx0Cgl2aXNpYmlsaXR5LgoJKGFsbG9jYXRlX2R5bnJlbF9lbnRyaWVzKTogRG9uJ3QgYWxsb2NhdGUgcmVsb2NhdGlvbiBlbnRyaWVzCglmb3Igc3ltYm9scyByZXNvbHZlZCB0byAwLgoJKHNldF9nb3RfZW50cnkpOiBEb24ndCBpbnN0YWxsIGR5bmFtaWMgcmVsb2NhdGlvbiBmb3Igd2VhawoJdW5kZWZpbmVkIHN5bWJvbHMgd2l0aCBub24tZGVmYXVsdCB2aXNpYmlsaXR5LgoJKHNldF9wbHRvZmZfZW50cnkpOiBMaWtld2lzZS4KCgkqIGVsZmxpbmsuaCAoZWxmX2ZpeF9zeW1ib2xfZmxhZ3MpOiBIaWRlIHdlYWsgdW5kZWZpbmVkIHN5bWJvbHMKCXdpdGggbm9uLWRlZmF1bHQgdmlzaWJpbGl0eS4KCShlbGZfbGlua19vdXRwdXRfZXh0c3ltKTogRG9uJ3QgbWFrZSB3ZWFrIHVuZGVmaW5lZCBzeW1ib2xzCgl3aXRoIG5vbi1kZWZhdWx0IHZpc2liaWxpdHkgZHluYW1pYy4KCjIwMDMtMDUtMDQgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChlbGZfbWVyZ2Vfc3ltYm9sKTogQ29ycmVjdGx5IGhhbmRsZSB3ZWFrIGRlZmluaXRpb24uCgoyMDAzLTA1LTA0ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZmxpbmsuaCAoZWxmX21lcmdlX3N5bWJvbCk6IERvbid0IHJlY29yZCBhIGhpZGRlbi9pbnRlcm5hbAoJc3ltYm9sIGR5bmFtaWMuIENoZWNrIGluZGlyZWN0aW9uIHdoZW4gcmVtb3ZpbmcgdGhlIG9sZAoJZGVmaW5pdGlvbiBmb3Igc3ltYm9scyB3aXRoIG5vbi1kZWZhdWx0IHZpc2liaWxpdHkuCgkoZWxmX2FkZF9kZWZhdWx0X3N5bWJvbCk6IFNraXAgd2hlbiB0b2xkIGJ5IGVsZl9tZXJnZV9zeW1ib2wuCgoyMDAzLTA1LTAyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmMzIteHN0b3JteTE2LmMgKHhzdG9ybXkxNl9lbGZfaG93dG9fdGFibGUpOiBNYWtlIHRoZQoJUl9YU1RPUk1ZMTZfOCBhbmQgUl9YU1RPUk1ZMTZfMTYgcmVsb2NzIGRldGVjdCBhbmQgY29tcGxhaW4gYWJvdXQKCXVuc2lnbmVkIG92ZXJmbG93LgoKMjAwMy0wNS0wMiAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogZWxmNjQteDg2LTY0LmMgKGVsZl94ODZfNjRfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBEb24ndCBjb3B5CglFTEZfTElOS19OT05fR09UX1JFRiBmb3Igd2Vha2RlZnMgd2hlbiBzeW1ib2wgYWxyZWFkeSBhZGp1c3RlZC4KCShFTElNSU5BVEVfQ09QWV9SRUxPQ1MpOiBEZWZpbmUgYXMgb25lLiAgVXNlIHRocm91Z2hvdXQuCgkoZWxmX3g4Nl82NF9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBGb3Igd2VhayBzeW1ib2xzLCBjb3B5CglFTEZfTElOS19OT05fR09UX1JFRiBmcm9tIHdlYWtkZWYuCgoyMDAzLTA1LTAyICBDaGFybGVzIExlcHBsZSA8Y2xlcHBsZUBnaHouY2M+CgkgICAgTmljayBDbGlmdG9uIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogYWNpbmNsdWRlLm00OiBGaXggbmFtZSBvZiAtLWVuYWJsZS1pbnN0YWxsLWxpYmJmZCBzd2l0Y2guCgkqIGFjbG9jYWwubTQ6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAzLTA1LTAxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItcHBjLmMgKHBwY19lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBUZXN0IHdoZXRoZXIgdGhlCgl3ZWFrZGVmIHN5bSBoYXMgYWxyZWFkeSBiZWVuIGFkanVzdGVkIGJlZm9yZSB0cmVhdGluZyBpdCBzcGVjaWFsbHkuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBEb24ndCBjb3B5CglFTEZfTElOS19OT05fR09UX1JFRiBmb3Igd2Vha2RlZnMgd2hlbiBzeW1ib2wgYWxyZWFkeSBhZGp1c3RlZC4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IExpa2V3aXNlLgoJKHBwYzY0X2VsZl9jaGVja19yZWxvY3MpOiBTZXQgRUxGX0xJTktfTk9OX0dPVF9SRUYuCgoyMDAzLTA0LTI4ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxheF9zZWN0aW9uKTogUmVsYXggbGR4bW92IGR1cmluZwoJdGhlIHJlbGF4IGZpbmFsaXplIHBhc3MuCgoJKiBzZWN0aW9uLmMgKHN0cnVjdCBzZWMpOiBBZGQgbmVlZF9maW5hbGl6ZV9yZWxheCBhbmQgcmVtb3ZlCglmbGFnMTEuCgkoU1REX1NFQ1RJT04pOiBVcGRhdGUgc3RydWN0IHNlYyBpbml0aWFsaXplci4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlZC4KCjIwMDMtMDQtMjggIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChlbGZfbWVyZ2Vfc3ltYm9sKTogQ2FsbCBlbGZfYmFja2VuZF9jb3B5X2luZGlyZWN0X3N5bWJvbAoJdG8gY29weSBhbnkgaW5mb3JtYXRpb24gcmVsYXRlZCB0byBkeW5hbWljIGxpbmtpbmcgd2hlbiB3ZSBmbGlwCgl0aGUgaW5kaXJlY3Rpb24uCgoyMDAzLTA0LTI3ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZi1iZmQuaCAoRUxGX0xJTktfRFlOQU1JQ19ERUYpOiBOZXcuCgkoRUxGX0xJTktfRFlOQU1JQ19XRUFLKTogTmV3LgoKCSogZWxmbGluay5oIChlbGZfbWVyZ2Vfc3ltYm9sKTogQWRkIG9uZSBhcmd1bWVudCB0byBpbmRpY2F0ZSBpZgoJYSBzeW1ib2wgc2hvdWxkIGJlIHNraXBwZWQuIElnbm9yZSBkZWZpbml0aW9ucyBpbiBkeW5hbWljCglvYmplY3RzIGZvciBzeW1ib2xzIHdpdGggbm9uLWRlZmF1bHQgdmlzaWJpbGl0eS4KCShlbGZfYWRkX2RlZmF1bHRfc3ltYm9sKTogQWRqdXN0ZWQuCgkoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogQ2hlY2sgaWYgYSBzeW1ib2wgc2hvdWxkIGJlCglza2lwcGVkLiBEb24ndCBtZXJnZSB0aGUgdmlzaWJpbGl0eSBmaWVsZCB3aXRoIHRoZSBvbmUgZnJvbQoJYSBkeW5hbWljIG9iamVjdC4KCShlbGZfbGlua19jaGVja192ZXJzaW9uZWRfc3ltYm9sKTogVXNlIHVuZGVmX2JmZC4KCShlbGZfbGlua19vdXRwdXRfZXh0c3ltKTogV2FybiBpZiBhIGZvcmNlZCBsb2NhbCBzeW1ib2wgaXMKCXJlZmVyZW5jZWQgZnJvbSBkeW5hbWljIG9iamVjdHMuIE1ha2Ugbm9uLXdlYWsgdW5kZWZpbmVkIHN5bWJvbAoJd2l0aCBub24tZGVmYXVsdCB2aXNpYmlsaXR5IGEgZmF0YWwgZXJyb3IuCgoyMDAzLTA0LTI3ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQnVtcCB2ZXJzaW9uIG9uIEhFQUQgdG8gMi4xNC45MC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCjIwMDMtMDQtMjYgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCVBSIHNhdmFubmFoLzMzMzE6CgkqIGVsZjMyLW02OGhjMTEuYyAobTY4aGMxMV9lbGZfcmVsYXhfc2VjdGlvbik6IENsZWFyIHByZXZfaW5zbl9ncm91cAoJd2hlbiB3ZSBjb3VsZG4ndCByZWxheCBzb21ldGhpbmcuCgoyMDAzLTA0LTI1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmbGluay5oIChlbGZfbWVyZ2Vfc3ltYm9sKTogV2hlbiB3ZSBmaW5kIGEgcmVndWxhciBkZWZpbml0aW9uCglmb3IgYW4gaW5kaXJlY3Qgc3ltYm9sLCBmbGlwIHRoZSBpbmRpcmVjdGlvbiBzbyB0aGF0IHRoZSBvbGQKCWRpcmVjdCBzeW1ib2wgbm93IHBvaW50cyB0byB0aGUgbmV3IGRlZmluaXRpb24uCgoyMDAzLTA0LTI0ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgoKCSogZWxmLmMgKGJmZF9zZWN0aW9uX2Zyb21fcGhkcik6IE1hcCBQVF9HTlVfRUhfRlJBTUUgdG8gImVoX2ZyYW1lX2hkciIuCgoyMDAzLTA0LTI0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItcHBjLmM6IEZvcm1hdHRpbmcgYW5kIGNvbW1lbnQgZml4ZXMuCgkoRUxJTUlOQVRFX0NPUFlfUkVMT0NTKTogTW92ZSBiZWZvcmUgcHBjX2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbC4KCShwcGNfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogQ29weSBmbGFncyBoZXJlIGZvciB3ZWFrZGVmcy4KCjIwMDMtMDQtMjQgRGhhbmFuamF5IERlc2hwYW5kZSA8ZGhhbmFuamF5ZEBrcGl0Y3VtbWlucy5jb20+CgoJKiBhcmNodXJlcy5jIChiZmRfbWFjaF9oODMwMGhuLCBiZmRfbWFjaF9oODMwMHNuKTogQWRkZWQuCgkqIGJmZC1pbjIuaDogUmVidWlsdC4KCSogY29mZi1oODMwMC5jIChCQURNQUcpOiBBZGQgY2hlY2sgZm9yIEg4MzAwSE5CQURNQUcgJiBIODMwMFNOQkFETUFHLgoJKiBjb2ZmY29kZS5oIChjb2ZmX3NldF9hcmNoX21hY2hfaG9vayk6IEFkZCBjYXNlIGZvciBIODMwMEhOTUFHSUMKCSYgSDgzMDBTTk1BR0lDLgoJKGNvZmZfc2V0X2ZsYWdzKTogQWRkIGNhc2UgZm9yIGJmZF9tYWNoX2g4MzAwaG4gJiBiZmRfbWFjaF9oODMwMHNuLgoJKiBjcHUtaDgzMDAuYyAoaDgzMDBfc2Nhbik6IEhhbmRsZSBoODMwMGhuLCBoODMwMHNuLgoJKGg4MzAwc25faW5mb19zdHJ1Y3QsIGg4MzAwaG5faW5mb19zdHJ1Y3QpOiBOZXcuCgkqIGVsZjMyLWg4MzAwLmMgKGVsZjMyX2g4X21hY2gpOiBIYW5kbGUgY2FzZSBmb3IgaDgzMDBobiAmIGg4MzAwc24KCShlbGYzMl9oOF9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogTGlrZXdpc2UuCgoyMDAzLTA0LTIzICBLYXogS29qaW1hICA8a2tvamltYUByci5paWo0dS5vci5qcD4KCgkqIGVsZjMyLXNoLmMgKHRwb2ZmKTogTmV3LgoJKHN0cnVjdCBlbGZfc2hfZHluX3JlbG9jcyk6IFJlbW92ZSB0bHNfdHBvZmYzMi4KCShXSUxMX0NBTExfRklOSVNIX0RZTkFNSUNfU1lNQk9MKTogUGFzcyBTSEFSRUQgaW5zdGVhZCBvZiBJTkZPLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IERvbid0IG1ha2UgdW5uZWNlc3NhcnkgZHluYW1pYyBUTFMKCXJlbG9jYXRpb25zLiAgQWRqdXN0IFdJTExfQ0FMTF9GSU5JU0hfRFlOQU1JQ19TWU1CT0wgdXNlcy4KCShzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLiBSZW1vdmUgdW5uZWNlc3NhcnkgdGVzdHMuCgkoZHRwb2ZmX2Jhc2UpOiBGaXggd3JvbmcgaW5kZW50YXRpb24uCgkoc2hfZWxmX2NoZWNrX3JlbG9jcyk6IERvbid0IHNldCBERl9TVEFUSUNfVExTIGZsYWcgd2l0aCBub24tVExTCglyZWxvY2F0aW9ucy4gIERvbid0IHNldCB0bHNfdHBvZmYzMiBmbGFnLiAgRG9uJ3QgbWFrZSB1bm5lY2Vzc2FyeQoJUl9TSF9UTFNfVFBPRkYzMiByZWxvY2F0aW9ucy4KCjIwMDMtMDQtMjMgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tPgoKCSogYXJjaHVyZXMuYyAoZW51bSBiZmRfYXJjaGl0ZWN0dXJlKTogQW1lbmQgY29tbWVudCB0byByZWZlciB0byBTdXBlckguCgkqIGNwdS1zaC5jOiBMaWtld2lzZS4KCSogZWxmMzItc2guYzogTGlrZXdpc2UuCgkqIHJlbG9jLmMgKGJmZF9yZWxvY19jb2RlX3JlYWwpOiBMaWtld2lzZS4KCSogZWxmMzItc2g2NC1jb20uYzogQ2hhbmdlIGNvbW1lbnQgdG8gcmVmZXIgdG8gU3VwZXJILgoJKiBlbGYzMi1zaDY0LmM6IExpa2V3aXNlLgoJKiBlbGY2NC1zaDY0LmM6IExpa2V3aXNlLgoJKiBiZmQtaW4yLmggKGVudW0gYmZkX2FyY2hpdGVjdHVyZSk6IFJlZ2VuZXJhdGUuCgoyMDAzLTA0LTIzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCUZyb20gSnVsaWVuIExFTU9JTkUgPHNwZWVkYmx1ZUBkZWJpYW4ub3JnPgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X2luZm9fdG9faG93dG8pOiBEZWxldGUuCgkoZWxmX2luZm9fdG9faG93dG8pOiBEZWZpbmUgYXMgZWxmX2kzODZfaW5mb190b19ob3d0b19yZWwuCgoyMDAzLTA0LTIyICBLYXp1aGlybyBJbmFva2EgIDxpbmFva2Eua2F6dWhpcm9AcmVuZXNhcy5jb20+CgoJKiBhcmNodXJlcy5jOiBSZXBsYWNlIHJlZmVyZW5jZXMgdG8gTWl0c3ViaXNoaSBNMzJSIHdpdGggcmVmZXJlbmNlcwoJdG8gUmVuZXNhcyBNMzJSLgoJKiByZWxvY3MuYzogTGlrZXdpc2UuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDMtMDQtMjEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChhbHBoYV9lbGZfZHluYW1pY19zeW1ib2xfcCk6IFJldHVybiBmYWxzZSBmb3IgYW4KCWV4ZWN1dGFibGUgd2hlbiBhIHN5bWJvbCBpcyBkZWZpbmVkIGJvdGggcmVndWxhciBhbmQgZHluYW1pYy4KCjIwMDMtMDQtMjEgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogTWFrZWZpbGUuYW0gKEJGRDMyX0JBQ0tFTkRTKTogQWRkIGVsZjMyLW02OGhjMXgubG8uCgkoZWxmMzItbTY4aGMxeC5sbyk6IFVwZGF0ZSBkZXBlbmRlbmNpZXMKCSogY29uZmlndXJlLmluOiBBZGQgZWxmMzItbTY4aGMxeC5sby4KCSogY29uZmlndXJlOiBSZWJ1aWxkLgoJKiBNYWtlZmlsZS5pbjogUmVidWlsZC4KCjIwMDMtMDQtMjEgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogZWxmMzItbTY4aGMxeC5jOiBOZXcgZmlsZSAoZnJvbSBlbGYzMi1tNjhoYzExLmMgYW5kIGVsZjMyLW02OGhjMTIuYykKCShtNjhoYzExX2VsZl9oYXNoX3RhYmxlX2NyZWF0ZSk6IE5ldyBmdW5jdGlvbi4KCShlbGYzMl9tNjhoYzExX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogTmV3IGZ1bmN0aW9uLgoJKHN0dWJfaGFzaF9uZXdmdW5jKTogTmV3IGZ1bmN0aW9uLgoJKG02OGhjMTFfYWRkX3N0dWIpOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfbTY4aGMxMV9hZGRfc3ltYm9sX2hvb2spOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfbTY4aGMxMV9zZXR1cF9zZWN0aW9uX2xpc3RzKTogTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX202OGhjMTFfbmV4dF9pbnB1dF9zZWN0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX202OGhjMTFfc2l6ZV9zdHVicyk6IE5ldyBmdW5jdGlvbi4KCShlbGYzMl9tNjhoYzExX2J1aWxkX3N0dWJzKTogTmV3IGZ1bmN0aW9uLgoJKG02OGhjMTFfZ2V0X3JlbG9jYXRpb25fdmFsdWUpOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfbTY4aGMxMV9yZWxvY2F0ZV9zZWN0aW9uKTogQ2FsbCB0aGUgYWJvdmUgdG8gcmVkaXJlY3QKCXNvbWUgcmVsb2NhdGlvbnMgdG8gdGhlIHRyYW1wb2xpbmUgY29kZS4KCShtNjhoYzExX2VsZl9leHBvcnRfb25lX3N0dWIpOiBOZXcgZnVuY3Rpb24uCgkobTY4aGMxMV9lbGZfc2V0X3N5bWJvbCk6IE5ldyBmdW5jdGlvbi4KCShlbGYzMl9tNjhoYzExX2J1aWxkX3N0dWJzKTogQ2FsbCBpdCB2aWEgYmZkX2hhc2hfdHJhdmVyc2UuCgkobTY4aGMxMV9lbGZfZ2V0X2JhbmtfcGFyYW1ldGVycyk6IEdldCBwYXJhbWV0ZXJzIG9ubHkgd2hlbiB0aGUgaW5mbwoJaXMgbm90IHlldCBpbml0aWFsaXplZC4KCgkqIGVsZjMyLW02OGhjMXguaDogTmV3IGZpbGUgKGZyb20gZWxmMzItbTY4aGMxMS5jIGFuZCBlbGYzMi1tNjhoYzEyLmMpCgkoZWxmMzJfbTY4aGMxMV9zdHViX2hhc2hfZW50cnkpOiBOZXcgc3RydWN0LgoJKG02OGhjMTFfcGFnZV9pbmZvKTogQWRkIHRyYW1wb2xpbmUgaGFuZGxlciBhZGRyZXNzLgoJKG02OGhjMTFfZWxmX2xpbmtfaGFzaF90YWJsZSk6IEFkZCBzdHVicyBnZW5lcmF0aW9uIG1lbWJlcnMuCgkoZWxmMzJfbTY4aGMxMV9hZGRfc3ltYm9sX2hvb2spOiBEZWNsYXJlLgoJKGVsZjMyX202OGhjMTFfc2V0dXBfc2VjdGlvbl9saXN0cyk6IERlY2xhcmUuCgkoZWxmMzJfbTY4aGMxMV9zaXplX3N0dWJzKTogRGVjbGFyZS4KCShlbGYzMl9tNjhoYzExX2J1aWxkX3N0dWJzKTogRGVjbGFyZS4KCgkqIGVsZjMyLW02OGhjMTEuYyAobTY4aGMxMV9lbGZfaWdub3JlX3JlbG9jKTogTW92ZSB0byBlbGYzMi1tNjhoYzF4LmMuCgkoZWxmMzJfbTY4aGMxMV9nY19tYXJrX2hvb2ssIGVsZjMyX202OGhjMTFfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKGVsZjMyX202OGhjMTFfY2hlY2tfcmVsb2NzLCBlbGYzMl9tNjhoYzExX3JlbG9jYXRlX3NlY3Rpb24pOiBEaXR0by4KCShfYmZkX202OGhjMTFfZWxmX3NldF9wcml2YXRlX2ZsYWdzKTogRGl0dG8uCgkoX2JmZF9tNjhoYzExX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogRGl0dG8uCgkoX2JmZF9tNjhoYzExX2VsZl9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogRGl0dG8uCgkoYmZkX2VsZjMyX2JmZF9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogRGVmaW5lLgoJKGVsZl9iYWNrZW5kX2FkZF9zeW1ib2xfaG9vayk6IERlZmluZS4KCShtNjhoYzExX2VsZl9iZmRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IE5ldyBmdW5jdGlvbi4KCShtNjhoYzExX2VsZl9idWlsZF9vbmVfc3R1Yik6IE5ldyBmdW5jdGlvbi4KCShtNjhoYzExX2VsZl9zaXplX29uZV9zdHViKTogTmV3IGZ1bmN0aW9uLgoJKG02OGhjMTFfZWxmX2JmZF9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogSW5zdGFsbCB0aGUgYWJvdmUuCgkoYmZkX2VsZjMyX2JmZF9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogRGVmaW5lLgoKCSogZWxmMzItbTY4aGMxMi5jIChtNjhoYzExX2VsZl9pZ25vcmVfcmVsb2MpOiBSZW1vdmUuCgkobTY4aGMxMl9hZGRyX2lzX2JhbmtlZCk6IFJlbW92ZSwgdXNlIG02OGhjMTFfYWRkcl9pc19iYW5rZWQuCgkobTY4aGMxMl9waHlzX2FkZHIpOiBEaXR0by4KCShtNjhoYzEyX3BoeXNfcGFnZSk6IERpdHRvLgoJKG02OGhjMTJfZWxmX3NwZWNpYWxfcmVsb2MpOiBNb3ZlIHRvIGVsZjMyLW02OGhjMXguYy4KCShlbGYzMl9tNjhoYzExX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKGVsZjMyX202OGhjMTFfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKGVsZjMyX202OGhjMTFfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCgkoZWxmMzJfbTY4aGMxMV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkoX2JmZF9tNjhoYzEyX2VsZl9zZXRfcHJpdmF0ZV9mbGFncyk6IExpa2V3aXNlLgoJKF9iZmRfbTY4aGMxMl9lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IExpa2V3aXNlLgoJKF9iZmRfbTY4aGMxMl9lbGZfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IExpa2V3aXNlLgoJKG02OGhjMTJfZWxmX2J1aWxkX29uZV9zdHViKTogTmV3IGZ1bmN0aW9uLgoJKG02OGhjMTJfZWxmX3NpemVfb25lX3N0dWIpOiBOZXcgZnVuY3Rpb24uCgkobTY4aGMxMl9lbGZfYmZkX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBOZXcgZnVuY3Rpb24sIHVzZSB0aGUgYWJvdmUuCgkoZWxmX2JhY2tlbmRfYWRkX3N5bWJvbF9ob29rKTogRGVmaW5lLgoJKGVsZl9tNjhoYzExX2hvd3RvX3RhYmxlKTogVXNlIFRSVUUgZm9yIHBjcmVsIHJlbG9jczsgZml4IG1hc2tzLgoKMjAwMy0wNC0xOCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGZvcm1hdC5jIChiZmRfY2hlY2tfZm9ybWF0X21hdGNoZXMpOiBPbmx5IGNoZWNrIGFzc29jaWF0ZWQKCXZlY3RvciBpZiB0aGUgbWF0Y2hpbmdfdmVjdG9yIGhhcyBiZWVuIGNyZWF0ZWQuCgoyMDAzLTA0LTE1ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGR3YXJmMi5jIChfYmZkX2R3YXJmMl9maW5kX25lYXJlc3RfbGluZSk6IEZpeCB0eXBvIGluCgkyMDAzLTA0LTA5J3MgY2hhbmdlLgoKMjAwMy0wNC0xNSAgQnJpYW4gRm9yZCAgPGZvcmRAdnNzLmZzaS5jb20+CgoJKiBwZWljb2RlLmggKGNvZmZfc3dhcF9zY25oZHJfaW4pOiBJZiBhIHNlY3Rpb24gaG9sZHMKCXVuaW5pdGlhbGl6ZWQgZGF0YSBhbmQgaXMgZnJvbSBhbiBvYmplY3QgZmlsZSBvciBmcm9tIGFuCglleGVjdXRhYmxlIGltYWdlIHRoYXQgaGFzIG5vdCBpbml0aWFsaXplZCB0aGUgc19zaXplIGZpZWxkLCBvciBpZgoJdGhlIHBoeXNpY2FsIHNpemUgaXMgcGFkZGVkLCB1c2UgdGhlIHZpcnR1YWwgc2l6ZSAoc3RvcmVkIGluCglzX3BhZGRyKSBpbnN0ZWFkLgoKMjAwMy0wNC0xNSAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IFByb3Blcmx5IHJlcG9ydAoJZmlsZW5hbWUgZm9yIGFsaWdubWVudCByZWR1Y3Rpb24uCgoyMDAzLTA0LTE1ICBSb2hpdCBLdW1hciBTcml2YXN0YXZhIDxyb2hpdHNAa3BpdGN1bW1pbnMuY29tPgoKCSogYXJjaHVyZXMuYzogUmVwbGFjZSBvY2N1cnJhbmNlcyBvZiAnSGl0YWNoaScgd2l0aCAnUmVuZXNhcycuCgkqIHJlbG9jLmM6IExpa2V3aXNlLgoJKiBjb2ZmLWg4MzAwLmM6IExpa2V3aXNlLgoJKiBjb2ZmLWg4NTAwLmM6IExpa2V3aXNlLgoJKiBjb2ZmLXNoLmM6IExpa2V3aXNlLgoJKiBjcHUtaDgzMDAuYzogTGlrZXdpc2UuCgkqIGNwdS1zaC5jOiBMaWtld2lzZS4KCSogZWxmMzItaDgzMDAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXNoLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zaDY0LWNvbS5jOiBMaWtld2lzZS4KCSogZWxmMzItc2g2NC5jOiBMaWtld2lzZS4KCSogZWxmNjQtc2g2NC5jOiBMaWtld2lzZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMy0wNC0xNCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IE1haW50YWluIG1heGltdW0KCWFsaWdubWVudCBmb3IgY29tbW9uIHN5bWJvbHMuIFdhcm4gcmVkdWNpbmcgYWxpZ25tZW50IGZvcgoJY29tbW9uIHN5bWJvbHMuIFJlcG9ydCBvbGQgZmlsZW5hbWUgd2hlbiBzeW1ib2wgc2l6ZSBjaGFuZ2VzLgoKMjAwMy0wNC0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogQWRqdXN0IHR3byBvdGhlcgoJb2NjdXJyZW5jZXMgb2YgdGhlIHNhbWUgdGVzdCBjaGFuZ2VkIGluIHRoZSBwcmV2aW91cyBwYXRjaC4KCU9wdGltaXplLgoKMjAwMy0wNC0xMSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2dldF9nbG9iYWxfZ290c3ltX2luZGV4KTogTmV3LgoJKG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogRGVjYXkgR09UX1BBR0UvR09UX09GU1QgdG8KCUdPVF9ESVNQL2FkZGVuZCBvbmx5IGlmIHRoZSBzeW1ib2wgZ290IGEgZ2xvYmFsIEdPVCBlbnRyeS4KCjIwMDMtMDQtMTAgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IERlY2F5CglHT1RfUEFHRS9HT1RfT0ZTVCByZWZlcmVuY2luZyBvdmVycmlkYWJsZSBzeW1ib2wgdG8KCUdPVF9ESVNQL2FkZGVuZC4KCShfYmZkX21pcHNfZWxmX2NoZWNrX3JlbG9jcyk6IEhhbmRsZSBHT1RfUEFHRSByZWZlcmVuY2luZwoJZ2xvYmFsIHN5bWJvbCBhcyBHT1RfRElTUC4KCjIwMDMtMDQtMTAgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBlbGYzMi14dGVuc2EuYyAoZWxmX3h0ZW5zYV9yZWxvY2F0ZV9zZWN0aW9uKTogRG9uJ3QgY29udGludWUgdG8gdGhlCgluZXh0IHJlbG9jYXRpb24gb24gYW4gdW5kZWZpbmVkIHN5bWJvbC4KCjIwMDMtMDQtMDkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKSA8Ul9BTFBIQV9HUFJFTDMyPjoKCUlnbm9yZSByZWxvY2F0aW9ucyBhZ2FpbnN0IHJfc3ltbmR4ID09IDAuCgoyMDAzLTA0LTA5ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCByZXR1cm4KCUZBTFNFIGZvciB1bmRlZmluZWQgc3ltYm9scy4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDMtMDQtMDkgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZHdhcmYyLmMgKF9iZmRfZHdhcmYyX2ZpbmRfbmVhcmVzdF9saW5lKTogVHJ5IERXQVJGMy1zdGFuZGFyZAoJYW5kIElSSVgtc3BlY2lmaWMgc2hpZnQtdG8tNjQtYml0IDQtYnl0ZSBsZW5ndGhzIGJlZm9yZSBmb2xsb3dpbmcKCWFkZHJfc2l6ZS4KCjIwMDMtMDQtMDggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmMzItbWlwcy5jIChiZmRfZWxmMzJfYmZkX3JlbG9jX3R5cGVfbG9va3VwKTogRGV0ZWN0IChjdG9yKQoJcG9pbnRlciBzaXplIGZyb20gQUJJLCBub3QgYXJjaF9iaXRzX3Blcl9hZGRyZXNzLgoKMjAwMy0wNC0wNyAgS2V2aW4gQnVldHRuZXIgIDxrZXZpbmJAcmVkaGF0LmNvbT4KCgkqIGVsZm4zMi1taXBzLmMgKGVsZjMyX21pcHNfZ3Jva19wcnN0YXR1cyk6IEFkanVzdCBjb3JlIGZpbGUgcmVsYXRlZAoJY29uc3RhbnRzIGZvciBuMzIgQUJJLgoKMjAwMy0wNC0wNiAgQW5kcmV3IENhZ25leSAgPGNhZ25leUByZWRoYXQuY29tPgoKCSogc2ltcGxlLmMgKGJmZF9zaW1wbGVfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogRGlzYWJsZQoJZnJlZSB0aGF0IGxlYWRzIHRvIEdEQiB2cyBCRkQgbWVtb3J5IGNvcnJ1cHRpb24uCgoyMDAzLTA0LTA0ICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGVsZjMyLW02OGhjMTEuYyAobTY4aGMxMV9lbGZfcmVsYXhfZGVsZXRlX2J5dGVzKTogQWxzbyBhZGp1c3QKCXN5bWJvbHMgdGhhdCBtYXJrIHRoZSBlbmQgb2YgdGhlIHNlY3Rpb24uCgkobTY4aGMxMV9lbGZfcmVsYXhfc2VjdGlvbik6IFVzZSBSX002OEhDMTFfUENSRUxfOCByZWxvY3Mgd2hlbgoJY29udmVydGluZyB0byBhIHJlbGF0aXZlIGJyYW5jaCBzbyB0aGF0IHRoZSBvZmZzZXQgaXMgY29tcHV0ZWQgYWZ0ZXIKCXRoZSByZWxheGF0aW9uOyBhbHNvIHJlbG9jYXRlIGEganNyIGludG8gYSBic3IgaWYgcG9zc2libGUgYnV0IGRvbid0CglyZWxheCB0aGVtIGlmIHRoZXkgYXJlIHRvIGEgZmFyIHN5bWJvbCBhcyB3ZSBuZWVkIHRvIGNhbGwgdGhlCgl0cmFtcG9saW5lIGNvZGUuCgkoZWxmX202OGhjMTFfaG93dG9fdGFibGUpOiBTZXQgcGNyZWxfb2Zmc2V0IHRvIHRydWUuCgoyMDAzLTA0LTA0ICBTdmVpbiBFLiBTZWxkYWwgIDxTdmVpbi5TZWxkYWxAc29saWRhcy5jb20+CgoJKiBhcmNodXJlcy5jOiBOYW1lc3BhY2UgY2xlYW51cC4gUmVuYW1lIGJmZF9tYWNoX2MzeCB0bwoJYmZkX21hY2hfdGljM3ggYW5kIGJmZF9tYWNoX2M0eCB0byBiZmRfbWFjaF90aWM0eAoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUKCSogY29mZi10aWM0eC5jOiBOYW1lc3BhY2UgY2xlYW51cC4gUmVwbGFjZSBzL2M0eC90aWM0eC8KCSogY3B1LXRpYzR4LmM6IERpdHRvCgoyMDAzLTA0LTAzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcGVYWGlnZW4uYyAoX2JmZF9YWGlfc3dhcF9zY25oZHJfb3V0KTogQ29tcHV0ZSBwcyBhbmQgc3MKCWRpZmZlcmVudGx5IGZvciBvYmplY3QgZmlsZXMgYW5kIGV4ZWN1dGFibGVzLgoJKiBwZWljb2RlLmggKGNvZmZfc3dhcF9zY25oZHJfaW4pOiBPbmx5IHNldCB0aGUgc19zaXplIGZpZWxkCglmb3Igb2JqZWN0IGZpbGVzIG9yIGZvciBleGVjdXRhYmxlcyB3aG8gaGF2ZSBub3QgYWxyZWFkeQoJaW5pdGlhbGlzZWQgdGhlIGZpZWxkLgoJKiBsaWJwZWkuaCAoYmZkX3BlX2V4ZWN1dGFibGVfcCk6IE5ldyBtYWNyby4gIFJldHVybiB0cnVlIGlmCgl0aGUgUEUgZm9ybWF0IGJmZCBpcyBhbiBleGVjdXRhYmxlLgoKMjAwMy0wNC0wMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX2NoZWNrX3JlbG9jcyk6IERvbid0IHVzZSBTWU1CT0xfUkVGRVJFTkNFU19MT0NBTAoJaGVyZSBhcyBpdCdzIHRvbyBlYXJseSB0byByZWxpYWJseSBkZXRlcm1pbmUgbG9jYWxpdHkuCgkocHBjX2VsZl9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkoU1lNQk9MX1JFRkVSRU5DRVNfTE9DQUwpOiBFeHBhbmQgY29tbWVudC4KCjIwMDMtMDQtMDIgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiB4dGVuc2EtbW9kdWxlcy5jOiBSZW1vdmUgY29tbWVudCBpbmRpY2F0aW5nIHRoYXQgdGhpcyBpcyBhCglnZW5lcmF0ZWQgZmlsZS4KCjIwMDMtMDQtMDIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfaGlkZV9zeW1ib2wpOiBUZXN0IGZvciBOVUxMIGR5bm9iai4KCjIwMDMtMDQtMDEgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBNYWtlZmlsZS5hbSAoQUxMX01BQ0hJTkVTKTogQWRkIGNwdS14dGVuc2EubG8uCgkoQUxMX01BQ0hJTkVTX0NGSUxFUyk6IEFkZCBjcHUteHRlbnNhLmMuCgkoQkZEMzJfQkFDS0VORFMpOiBBZGQgZWxmMzIteHRlbnNhLmxvLCB4dGVuc2EtaXNhLmxvLCBhbmQKCXh0ZW5zYS1tb2R1bGVzLmxvLgoJKEJGRDMyX0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCBlbGYzMi14dGVuc2EuYywgeHRlbnNhLWlzYS5jLCBhbmQKCXh0ZW5zYS1tb2R1bGVzLmMuCgkoY3B1LXh0ZW5zYS5sbyk6IE5ldyB0YXJnZXQuCgkoZWxmMzIteHRlbnNhLmxvKTogTGlrZXdpc2UuCgkoeHRlbnNhLWlzYS5sbyk6IExpa2V3aXNlLgoJKHh0ZW5zYS1tb2R1bGVzLmxvKTogTGlrZXdpc2UuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBhcmNodXJlcy5jIChiZmRfYXJjaGl0ZWN0dXJlKTogQWRkIGJmZF97YXJjaCxtYWNofV94dGVuc2EuCgkoYmZkX2FyY2h1cmVzX2xpc3QpOiBBZGQgYmZkX3h0ZW5zYV9hcmNoLgoJKiBjb25maWcuYmZkOiBIYW5kbGUgeHRlbnNhLSotKi4KCSogY29uZmlndXJlLmluOiBIYW5kbGUgYmZkX2VsZjMyX3h0ZW5zYV97bGUsYmV9X3ZlYy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiByZWxvYy5jOiBBZGQgQkZEX1JFTE9DX1hURU5TQV97UlRMRCxHTE9CX0RBVCxKTVBfU0xPVCxSRUxBVElWRSwKCVBMVCxPUDAsT1AxLE9QMixBU01fRVhQQU5ELEFTTV9TSU1QTElGWX0uCgkqIHRhcmdldHMuYyAoYmZkX2VsZjMyX3h0ZW5zYV9iZV92ZWMpOiBEZWNsYXJlLgoJKGJmZF9lbGYzMl94dGVuc2FfbGVfdmVjKTogTGlrZXdpc2UuCgkoYmZkX3RhcmdldF92ZWN0b3IpOiBBZGQgYmZkX2VsZjMyX3h0ZW5zYV97YmUsbGV9X3ZlYy4KCSogY3B1LXh0ZW5zYS5jOiBOZXcgZmlsZS4KCSogZWxmMzIteHRlbnNhLmM6IExpa2V3aXNlLgoJKiB4dGVuc2EtaXNhLmM6IExpa2V3aXNlLgoJKiB4dGVuc2EtbW9kdWxlcy5jOiBMaWtld2lzZS4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgkqIGJmZC1pbjIuaDogTGlrZXdpc2UuCgoyMDAzLTA0LTAxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogYXJjaHVyZXMuYyAoYmZkX21hY2hfYXJtX3Vua25vd24pOiBEZWZpbmUuCgkqIGJmZC1pbi5oIChiZmRfYXJtX21lcmdlX21hY2hpbmVzLCBiZmRfYXJtK3VwZGF0ZV9ub3RlcywKCWJmZF9hcm1fZ2V0X21hY2hfZnJvbV9ub3Rlcyk6IFByb3RvdHlwZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBjb2ZmLWFybS5jIChjb2ZmX2FybV9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogQ2FsbAoJYmZkX2FybV9tZXJnZV9tYWNoaW5lcy4KCShjb2ZmX2FybV9maW5hbF9saW5rX3Bvc3RzY3JpcHQpOiBDYWxsIGJmZF9hcm1fdXBkYXRlX25vdGVzLgoJKiBjb2ZmY29kZS5oIChjb2ZmX3NldF9hcmNoX21hY2hfaG9vayk6IENhbGwKCWJmZF9hcm1fZ2V0X21hY2hfZnJvbV9ub3Rlcy4KCSogY29mZmdlbi5jIChjb2ZmX3JlYWxfb2JqZWN0X3ApOiBSZXZlcnQgcHJldmlvdXMgZGVsdGEuCgkqIGNwdV9hcm0uYyAoYXJtX2NoZWNrX25vdGUpOiBOZXcgZnVuY3Rpb24uICBFeGFtaW5lIGEgbm90ZSBpbiBhCgkubm90ZSBzZWN0aW9uLgoJKGJmZF9hcm1fbWVyZ2VfbWFjaGluZXMpOiBOZXcgZnVuY3Rpb246IEhhbmRsZSB0aGUgbWVyZ2luZyBvZiBBUk0KCWJpbmFyaWVzIGNvbXBpbGVkIGZvciBkaWZmZXJlbnQgYXJjaGl0ZWN0dXJlcy4uCgkoYmZkX2FybV91cGRhdGVfbm90ZXMpOiBOZXcgZnVuY3Rpb246IFVwZGF0ZSBhbiBBUk0gbm90ZSBzZWN0aW9uLgoJKGJmZF9hcm1fZ2V0X21hY2hfZnJvbV9ub3Rlcyk6IE5ldyBmdW5jdGlvbjogRXh0cmFjdCBhIGJmZCBtYWNoaW5lCgludW1iZXIgZnJvbSBhbiBBUk0gbm90ZSBzZWN0aW9uLgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX29iamVjdF9wKTogVXNlCgliZmRfYXJtX2dldF9tYWNoX2Zyb21fbm90ZXMuCgkoZWxmMzJfYXJtX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBVc2UgYmZkX2FybV9tZXJnZV9tYWNoaW5lcy4KCShlbGYzMl9hcm1fZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IFVzZSBiZmRfYXJtX3VwZGF0ZV9ub3Rlcy4KCjIwMDMtMDQtMDEgIEJlbiBFbGxpc3RvbiAgPGJqZUB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGR3YXJmMi5jIChyZWFkX2F0dHJpYnV0ZV92YWx1ZSk6IENvcnJlY3QgdHlwbyBpbiBjb21tZW50LgoKMjAwMy0wNC0wMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGR3YXJmMi5jIChjb25jYXRfZmlsZW5hbWUpOiBVc2UgYmZkX21hbGxvYygpIGFuZCBzdHJkdXAoKQoJaW5zdGVhZCBvZiBjb25jYXQoKS4KCShkZWNvZGVfbGluZV9pbmZvKTogT25seSBmcmVlIGZpbGVuYW1lIGlmIGl0IGlzIG5vdCBOVUxMLgoJKGFkZF9saW5lX2luZm8pOiBNYWtlIGEgY29weSBvZiB0aGUgZmlsZW5hbWUgd2hlbiBzdG9yaW5nIGl0IGludG8KCXRoZSBpbmZvIHN0cnVjdHVyZS4KCjIwMDMtMDMtMzEgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgkgICAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBzaW1wbGUuYyAoYmZkX3NpbXBsZV9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBBZGQKCXBhcmFtZXRlciBzeW1ib2xfdGFibGUuICBPcHRpb25hbGx5IHVzZSBpdCBpbnN0ZWFkIG9mIHRoZSBzeW1ib2wKCXRhYmxlIGZyb20gdGhlIGJmZC4gIFNhdmUgYW5kIHJlc3RvcmUgb3V0cHV0IG9mZnNldHMgYW5kIG91dHB1dAoJc2VjdGlvbnMgIGFyb3VuZCBiZmRfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzLiAgRml4IGEgbWVtb3J5CglsZWFrLgoJKHNpbXBsZV9zYXZlX291dHB1dF9pbmZvLCBzaW1wbGVfcmVzdG9yZV9vdXRwdXRfaW5mbyk6IE5ldwoJZnVuY3Rpb25zLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGR3YXJmMi5jIChyZWFkX2FiYnJldnMpOiBVc2UKCWJmZF9zaW1wbGVfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzIGluc3RlYWQgb2YKCWJmZF9nZXRfc2VjdGlvbl9jb250ZW50cy4KCShkZWNvZGVfbGluZV9pbmZvKTogTGlrZXdpc2UuCgkoX2JmZF9kd2FyZjJfZmluZF9uZWFyZXN0X2xpbmUpOiBMaWtld2lzZS4gIERvbid0IGNhbGwKCWZpbmRfcmVsYV9hZGRlbmQuCgkoZmluZF9yZWxhX2FkZGVuZCk6IFJlbW92ZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbG9jKTogV2Vha2VuIHNhbml0eSBjaGVjayBmb3IKCWRlYnVnZ2luZyBzZWN0aW9ucy4KCShlbGZOTl9pYTY0X2hhc2hfdGFibGVfY3JlYXRlKTogQ3JlYXRlIHRoZSBoYXNoIHRhYmxlIHdpdGggbWFsbG9jLAoJbm90IGJmZF96YWxsb2MuCgoyMDAzLTAzLTMxICBEYXZpZCBIZWluZSAgPGRsaGVpbmVAc3VpZi5zdGFuZm9yZC5lZHU+CgoJKiBhb3V0eC5oIChhb3V0X2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBVc2UgYmZkX21hbGxvYyBpbnN0ZWFkIG9mCgliZmRfYWxsb2MuCgkqIGR3YXJmMi5jIChjb25jYXRfZmlsZW5hbWUpOiBBbHdheXMgYWxsb2NhdGUgc3BhY2UgZm9yIHRoZQoJcmV0dXJuZWQgZmlsZW5hbWUuCgkoZGVjb2RlX2xpbmVfaW5mbyk6IEZyZWUgdGhlIGFsbG9jYXRlZCBmaWxlbmFtZSByZXR1cm5lZCBieQoJY29uY2F0X2ZpbGVuYW1lLgoJKiBlbGYtZWgtZnJhbWUuYyAoYmZkX2VsZl93cml0ZV9zZWN0aW9uX2VoX2ZyYW1lKTogRml4IG1lbW9yeSBsZWFrcy4KCSogZWxmLmMgKGNvcHlfcHJpdmF0ZV9iZmRfZGF0YSk6IExpa2V3aXNlLgoJKF9iZmRfZWxmX3NsdXJwX3ZlcnNpb25fdGFibGVzKTogRml4IGJ1ZyBmcmVlaW5nIGNvbnRlbnRzIHBvaW50ZXIuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfc29ydF9yZWxvY3MpOiBGaXggbWVtb3J5IGxlYWsuCgkqIGZvcm1hdC5jIChiZmRfY2hlY2tfZm9ybWF0X21hdGNoZXMpOiBMaWtld2lzZS4KCSogbGlua2VyLmMgKGJmZF9nZW5lcmljX2ZpbmFsX2xpbmspOiBMaWtld2lzZS4KCSogb3BuY2xzLmMgKGZpbmRfc2VwYXJhdGVfZGVidWdfaW5mbyk6IExpa2V3aXNlLgoJKiBzaW1wbGUuYyAoYmZkX3NpbXBsZV9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBMaWtld2lzZS4KCjIwMDMtMDMtMjggIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBDb3JyZWN0bHkgY29tYmluZQoJdmlzaWJpbGl0aWVzLgoKMjAwMy0wMy0yNyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfcmVsYXhfc2VjdGlvbik6IFJlc2V0IHNlbGZfZHRwbW9kX29mZnNldAoJdG8gLTEgYmVmb3JlIHJlY29tcHV0aW5nIGdvdCBvZmZzZXRzLgoKMjAwMy0wMy0yNiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIGVsZjMyLW02OGsuYyAoV0lMTF9DQUxMX0ZJTklTSF9EWU5BTUlDX1NZTUJPTCk6IERlZmluZS4KCShlbGZfbTY4a19yZWxvY2F0ZV9zZWN0aW9uKTogVXNlIGl0IHRvIGNvcnJlY3RseSBoYW5kbGUgc3ltYm9scwoJZm9yY2VkIHRvIGJlIGxvY2FsLgoJKGVsZl9tNjhrX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IEVtaXQgUkVMQVRJVkUgcmVsb2MgZm9yIGdvdAoJZW50cmllcyBmb3Igc3ltYm9scyB0aGF0IGFyZSBmb3JjZWQgdG8gYmUgbG9jYWwuCgoyMDAzLTAzLTI1ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX3JlbGF4X3NlY3Rpb24pOiBOZXcgZnVuY3Rpb24uCgkqIGVsZnh4LW1pcHMuaCAoX2JmZF9taXBzX3JlbGF4X3NlY3Rpb24pOiBEZWNsYXJlLgoJKiBlbGZuMzItbWlwcy5jLCBlbGY2NC1taXBzLmM6IFVzZSBpdC4KCjIwMDMtMDMtMjUgIFN0YW4gQ294ICAgPHNjb3hAcmVkaGF0LmNvbT4KCSAgICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCUNvbnRyaWJ1dGUgc3VwcG9ydCBmb3IgSW50ZWwncyBpV01NWHQgY2hpcCAtIGFuIEFSTSB2YXJpYW50OgoKCSogYXJjaHVyZXMuYzogQWRkIGJmZF9tYWNoX2FybV9pV01NWHQuCgkqIHJlbG9jLmM6IEFkZCBCRkRfUkVMT0NfQVJNX0NQX09GRl9JTU1fUzIuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgkqIGNvZmYtYXJtLmMgKGNvZmZfYXJtX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBBbGxvdyBpV01NWHQKCW9iamVjdCBmaWxlcyB0byBiZSBsaW5rZWQgd2l0aCBYU2NhbGUgb25lcy4KCShjb2ZmX2FybV9maW5hbF9saW5rX3Bvc3RzY3JpcHQpOiBVcGRhdGUgbm90ZSBzZWN0aW9uLgoJKiBjb2ZmY29kZS5oIChjb2ZmX3NldF9hcmNoX21hY2hfaG9vayk6IEhhbmRsZSBub3RlIHNlY3Rpb24uCgkqIGNvZmZnZW4uYyAoY29mZl9yZWFsX29iamVjdF9wKTogQ2FsbCBiZmRfY29mZl9zZXRfYXJjaF9tYWNoX2hvb2sKCWFmdGVyIGlkZW50aWZ5aW5nIGEgY29mZiBiaW5hcnkuCgkqIGNwdS1hcm0uYyAocHJvY2Vzc29ycyk6IEFkZCBpV01NWHQuCgkoYXJjaF9pbmYpOiBMaWtld2lzZS4KCSogZWxmMzItYXJtLmggKGFybV9vYmplY3RfcCk6IEhhbmRsZSBub3RlIHNlY3Rpb24uCgkoZWxmMzJfYXJtX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBBbGxvdyBpV01NWHQgb2JqZWN0IGZpbGVzIHRvCgliZSBsaW5rZWQgd2l0aCBYU2NhbGUgb25lcy4KCShlbGYzMl9hcm1fc2VjdGlvbl9mbGFncyk6IE5ldyBmdW5jdGlvbjogU2V0IGZsYWdzIG9uIG5vdGUgc2VjdGlvbi4KCShlbGYzMl9hcm1fZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IEhhbmRsZSBub3RlIHNlY3Rpb24uCgoyMDAzLTAzLTIxICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXhzdG9ybXkxNi5jIChlbGYzMl94c3Rvcm15MTZfcmVsb2NhdGVfc2VjdGlvbik6IENhbGwKCV9iZmRfZWxmX3JlbGFfbG9jYWxfc3ltLgoKMjAwMy0wMy0yMCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfcmVsYXhfc2VjdGlvbik6IERvbid0IHRyeSByZWxheCBmb3IKCW5vbi1FTEYgb3V0cHV0cy4KCjIwMDMtMDMtMjAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwZVhYaWdlbi5jIChfYmZkX1hYaV9zd2FwX2FvdXRoZHJfb3V0KTogSW5pdGlhbGlzZSAkaWRhdGEyIGFuZAoJJGlkYXRhNSBpbiBjYXNlIGJmZF9jb2ZmX2ZpbmFsX2xpbmsgaXMgbm90IGNhbGxlZC4KCjIwMDMtMDMtMTkgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmNjQtc3BhcmMuYyAoc3RydWN0IHNwYXJjNjRfZWxmX3NlY3Rpb25fZGF0YSk6IEFkZCByZWxvY19jb3VudAoJZmllbGQuCgkoY2Fub25fcmVsb2NfY291bnQpOiBEZWZpbmUuCgkoc3BhcmM2NF9lbGZfc2x1cnBfb25lX3JlbG9jX3RhYmxlLCBzcGFyYzY0X2VsZl9zbHVycF9yZWxvY190YWJsZSwKCXNwYXJjNjRfZWxmX2Nhbm9uaWNhbGl6ZV9keW5hbWljX3JlbG9jKTogVXNlIGl0IGluc3RlYWQgb2YKCXJlbG9jX2NvdW50LgoJKHNwYXJjNjRfZWxmX2Nhbm9uaWNhbGl6ZV9yZWxvYyk6IE5ldyByb3V0aW5lLgoJKGJmZF9lbGY2NF9jYW5vbmljYWxpemVfcmVsb2MpOiBEZWZpbmUuCgoyMDAzLTAzLTE4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxheF9zZWN0aW9uKTogSGFuZGxlIHJlbGF4YXRpb24KCWFnYWludCBtZXJnZWFibGUgc2VjdGlvbnMuICBUYWtlIHJfYWRkZW5kIGludG8gYWNjb3VudCB3aGVuIGNhY2hpbmcKCXRyYW1wb2xpbmVzLgoKMjAwMy0wMy0xOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoZ2V0X2R5bl9zeW1faW5mbyk6IFJldHVybiBOVUxMIGdyYWNlZnVsbHkgZm9yCglsb2NhbCBzeW1ib2xzIHRoYXQgaGF2ZSBubyBkeW5pbmZvLgoKMjAwMy0wMy0xNCAgR2VuZSBTbWl0aCAgPGdlbmUuc21pdGhAc2llbWVucy5jb20+CgoJKiBpZWVlLmMgKGllZWVfd3JpdGVfZXhwcmVzc2lvbik6IEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBzeW1ib2wgaXMKCU5VTEwuCglHZW5lcmFsIGZvcm1hdHRpbmcgaW1wcm92ZW1lbnRzLgoKMjAwMy0wMy0xMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoTElOR1VBUyk6IEFkZCB6aF9DTi4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBwby96aF9DTi5wbzogTmV3IGZpbGUuCgoyMDAzLTAzLTEzICBFbGlhcyBBdGhhbmFzb3BvdWxvcyAgPGVsYXRoYW5AcGh5cy51b2EuZ3I+CgoJKiBhb3V0LWNyaXMuYyAoQllURVNfSU5fV09SRCk6IERvbid0IGRlZmluZS4KCWFvdXQtZW5jYXAuYzogTGlrZXdpc2UuCglhb3V0LW5zMzJrLmM6IExpa2V3aXNlLgoJYW91dC10aWMzMC5jOiBMaWtld2lzZS4KCWhwMzAwYnNkLmM6IExpa2V3aXNlLgoJaTM4NmFvdXQuYzogTGlrZXdpc2UuCglpMzg2ZHluaXguYzogTGlrZXdpc2UuCglpMzg2bGludXguYzogTGlrZXdpc2UuCglpMzg2bHlueC5jOiBMaWtld2lzZS4KCWkzODZtYWNoMy5jOiBMaWtld2lzZS4KCW02OGs0a25ldGJzZC5jOiBMaWtld2lzZS4KCW02OGtsaW51eC5jOiBMaWtld2lzZS4KCW02OGtseW54LmM6IExpa2V3aXNlLgoJbTY4a25ldGJzZC5jOiBMaWtld2lzZS4KCW04OGttYWNoMy5jOiBMaWtld2lzZS4KCW1pcHNic2QuYzogTGlrZXdpc2UuCgluZXdzb3MzLmM6IExpa2V3aXNlLgoJc3BhcmNsaW51eC5jOiBMaWtld2lzZS4KCXNwYXJjbHlueC5jOiBMaWtld2lzZS4KCXNwYXJjbmV0YnNkLmM6IExpa2V3aXNlLgoJdmF4YnNkLmM6IExpa2V3aXNlLiBGaXggY29tbWVudCBmb3JtYXR0aW5nLgoKMjAwMy0wMy0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBSZXZlcnRlZCAyMDAzLTAzLTAyJ3MgcGF0Y2guCgoJKiBlbGZ4eC10YXJnZXQuaCAoYmZkX2VsZk5OX2Nhbm9uaWNhbGl6ZV9yZWxvYyk6IE1ha2UgaXQKCW92ZXJyaWRhYmxlLgoJKiBlbGY2NC1taXBzLmMgKG1pcHNfZWxmNjRfY2Fub25pY2FsaXplX3JlbG9jLAoJbWlwc19lbGY2NF9nZXRfZHluYW1pY19yZWxvY191cHBlcl9ib3VuZCwKCW1pcHNfZWxmNjRfY2Fub25pY2FsaXplX2R5bmFtaWNfcmVsb2MpOiBOZXcsIGFkYXB0ZWQgZnJvbSBlbGYuYy4KCShiZmRfZWxmNjRfZ2V0X2Nhbm9uaWNhbGl6ZV9yZWxvYywKCWJmZF9lbGY2NF9nZXRfZHluYW1pY19yZWxvY191cHBlcl9ib3VuZCwKCWJmZF9lbGY2NF9jYW5vbmljYWxpemVfZHluYW1pY19yZWxvYyk6IERlZmluZS4KCShtaXBzX2VsZjY0X3NsdXJwX3JlbG9jX3RhYmxlKTogU3VwcG9ydCBkeW5hbWljLgoJKG1pcHNfZWxmNjRfc2x1cnBfb25lX3JlbG9jX3RhYmxlKTogQWRqdXN0LgoKMjAwMy0wMy0xMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHhzeW0uYyAoYmZkX3N5bV9mZXRjaF90eXBlX2luZm9ybWF0aW9uX3RhYmxlX2VudHJ5KTogQ2hhbmdlCgknaW5kZXgnIHRvICdvZmZzZXQnIGluIHRlc3QgZm9yIHplcm8gdmFsdWUuCgoyMDAzLTAzLTExICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfY3JlYXRlX2R5bmFtaWNfcmVsb2NhdGlvbik6IERvIG5vdCBjcmVhdGUKCWR5bmFtaWMgcmVsb2NhdGlvbnMgcG9pbnRpbmcgdG8gbG9jYWwgb3Igc2VjdGlvbiBzeW1ib2xzLCB1c2UgdGhlCglOVUxMIHN5bWJvbCBpbnN0ZWFkLiAgRG9jdW1lbnQgdGhlIGNob2ljZSB0byBub3QgZW1pdCBhbgoJYWRkaXRpb25hbCBSX01JUFNfNjQgcmVsb2NhdGlvbi4KCjIwMDMtMDMtMTEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogU3VidHJhY3QgdGxzIHNlZyB2bWEgZnJvbQoJemVybyBpbmRleCBkeW5hbWljIHRscyByZWxvY3MgZ2VuZXJhdGVkIGZvciB0aGUgR09ULiAgVGlkeSBjb2RlLgoJU2V0ICJyZWxvY2F0aW9uIiB0byAxIG9uIERUUE1PRDMyIHJlbG9jcy4gIE9wdGltaXplIEhBIGFkanVzdG1lbnQuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMy0wMy0wNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCBsb29rIGZvciBhIG5vcCBhZnRlcgoJYSB0bHNfZ2V0X2FkZHIgY2FsbC4KCgkqIGVsZjMyLXBwYy5jIChFTElNSU5BVEVfQ09QWV9SRUxPQ1MpOiBEZWZpbmUgYXMgb25lLgoJKHBwY19lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogRm9yIHdlYWsgc3ltYm9scywgY29weQoJRUxGX0xJTktfTk9OX0dPVF9SRUYgZnJvbSB3ZWFrZGVmLgoJKiBlbGY2NC1wcGMuYyAoRUxJTUlOQVRFX0NPUFlfUkVMT0NTKTogRGVmaW5lIGFzIG9uZS4KCShwcGM2NF9lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogRm9yIHdlYWsgc3ltYm9scywgY29weQoJRUxGX0xJTktfTk9OX0dPVF9SRUYgZnJvbSB3ZWFrZGVmLgoJKiBlbGYzMi1pMzg2LmMgKEVMSU1JTkFURV9DT1BZX1JFTE9DUyk6IERlZmluZSBhcyBvbmUuICBVc2UgdGhyb3VnaG91dC4KCShlbGZfaTM4Nl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBGb3Igd2VhayBzeW1ib2xzLCBjb3B5CglFTEZfTElOS19OT05fR09UX1JFRiBmcm9tIHdlYWtkZWYuCgoyMDAzLTAzLTA2ICBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPgoJQW5kcmV3IEhhbGV5ICA8YXBoQHJlZGhhdC5jb20+CgoJKiBlbGZsaW5rLmggKGVsZl9iZmRfZGlzY2FyZF9pbmZvKTogRG9uJ3QgcHJvY2VzcyBlaCBmcmFtZXMgaWYKCW91dHB1dCBpcyByZWxvY2F0ZWFibGUuCgoyMDAzLTAzLTA2ICBTdGV2ZW4gS29ub3BhIDxza29ub3BhQGtnby5jc2MuY29tPgoKCSogc29tLmMgKHNvbV9maXh1cF9mb3JtYXRzKTogQ29ycmVjdCBmb3JtYXRzIGZvciBSX0FVWF9VTldJTkQgYW5kCglSX0NPTU1FTlQuCgoyMDAzLTAzLTA2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItcHBjLmMgKHBwY19lbGZfY3JlYXRlX2xpbmtlcl9zZWN0aW9uKTogRG9uJ3QgY2FwaXRhbGl6ZQoJZXJyb3IgbWVzc2FnZXMuCgkoRUxJTUlOQVRFX0NPUFlfUkVMT0NTKTogRGVmaW5lIHRvIHplcm8uCgkocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogRG9uJ3QgZGVyZWYgaHRhYi0+dGxzX3NlYyB3aGVuIGNhbGN1bGF0aW5nCglUTFNMRCByZWxvY3MuICBSZXBvcnQgcmVsb2MgdHlwZXMgb24gYSBudW1iZXIgb2YgZXJyb3JzLiAgT3B0aW1pemUKCUxPQ0FMMjRQQyBjaGVjayBmb3Igbm9uLWxvY2FsIHN5bXMuICBEb24ndCBjYXBpdGFsaXplIGVycm9yIG1lc3NhZ2VzLgoJKiBlbGY2NC1wcGMuYyAoRUxJTUlOQVRFX0NPUFlfUkVMT0NTKTogRGVmaW5lIHRvIHplcm8uCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCBkZXJlZiBodGFiLT50bHNfc2VjIHdoZW4KCWNhbGN1bGF0aW5nIFRMU0xEIHJlbG9jcy4gIFJlcG9ydCByZWxvYyB0eXBlcyBvbiBhIG51bWJlciBvZiBlcnJvcnMuCglEb24ndCBjYXBpdGFsaXplIGVycm9yIG1lc3NhZ2VzLgoKMjAwMy0wMy0wMyAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGZ4eC1pYTY0LmMgKFVTRV9CUkwpOiBSZW1vdmVkLgoJKG9vcl9pcCk6IFJlbW92ZWQuCgoyMDAzLTAzLTAzICBKIm9ybiBSZW5uZWNrZSA8am9lcm4ucmVubmVja2VAc3VwZXJoLmNvbT4KCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9ob3d0b190YWIpOiBNYWtlIFJfU0hfSU5EMTJXIGludG8gYW4gb3JkaW5hcnkKCXJlbG9jYXRpb24gKG5vIHNwZWNpYWwgZnVuY3Rpb24pLCBhbmQgbWFrZSBpdCBub24tcGFydGlhbF9pbnBsYWNlLgoJKHNoX2VsZl9yZWxheF9zZWN0aW9uKTogV2hlbiBjcmVhdGluZyBhIGJzciwgdXNlIGEgY29uc2lzdGVudCB2YWx1ZQoJbm8gbWF0dGVyIGlmIHRoZSBzeW1ib2wgaXMgZXh0ZXJuIG9yIG5vdDsgIHNldCBhZGRlbmQgdG8gLTQuCglEb24ndCBzd2FwIGxvYWQgLyBub24tbG9hZCBpbnN0cnVjdGlvbnMgZm9yIFNINC4KCShzaF9lbGZfcmVsYXhfZGVsZXRlX2J5dGVzKTogSW4gUl9TSF9JTkQxMlcgY2FzZSwgY2hlY2sgdGhlIG9mZnNldAoJcmF0aGVyIHRoYW4gaWYgdGhlIHN5bWJvbCBpcyBleHRlcm5hbCB0byBkZXRlcm1pbmUgaWYgYWRqdXN0aW5nIHRoZQoJb2Zmc2V0IG1ha2VzIHNlbnNlLiAgQWRqdXN0IHRoZSBhZGRlbmQgdG9vIGlmIGFwcHJvcHJpYXRlLgoJKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogSW4gUl9TSF9JTkQxMlcsIGRvbid0IGZpZGRsZSB3aXRoIHRoZQoJcmVsb2NhdGlvbi4KCjIwMDMtMDMtMDMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9kYS5wbzogSW5zdGFsbGVkIGxhdGVzdCB0cmFuc2xhdGlvbi4KCjIwMDMtMDMtMDIgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGYzMi1taXBzLmMgKGVsZl9taXBzX2hvd3RvX3RhYmxlX3JlbCk6IENoYW5nZSBkZWZpbml0aW9uIG9mCglSX01JUFNfUEMxNiB0byByaWdodHNoaWZ0IDIuCgkoZWxmX3JlbG9jX21hcCBtaXBzX3JlbG9jX21hcCk6IE1hcCB0byByaWdodHNoaWZ0ZWQgQkZEIHJlbG9jLgoJKGJmZF9lbGYzMl9iZmRfcmVsb2NfdHlwZV9sb29rdXApOiBTdXBwb3J0CglCRkRfUkVMT0NfTUlQU0VNQl8xNl9QQ1JFTF9TMi4KCSogZWxmNjQtbWlwcy5jIChtaXBzX2VsZjY0X2hvd3RvX3RhYmxlX3JlbCk6IENoYW5nZSBkZWZpbml0aW9uIG9mCglSX01JUFNfUEMxNiB0byByaWdodHNoaWZ0IDIuCgkobWlwc19lbGY2NF9ob3d0b190YWJsZV9yZWxhKTogTGlrZXdpc2UuCgkobWlwc19yZWxvY19tYXApOiBNYXAgdG8gcmlnaHRzaGlmdGVkIEJGRCByZWxvYy4KCSogZWxmbjMyLW1pcHMuYzogVGhlIHNhbWUgYXMgaW4gZWxmNjQtbWlwcy5jLgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2dvdF9mb3JfaWJmZCk6IFR5cG8gaW4gY29tbWVudC4KCShtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IEhhbmRsZSByaWdodHNoaWZ0ZWQgYWRkZW5kcyBmb3IKCVJfTUlQU19QQzE2LgoJKiByZWxvYy5jIChCRkRfUkVMT0NfTUlQU0VNQl8xNl9QQ1JFTF9TMik6IE5ldyBCRkQgcmVsb2NhdGlvbiBmb3IKCU1JUFMgRW1iZWRkZWQgUElDLiBSZW1vdmUgc3VwZXJmbHVvdXMgZW1wdHkgQ09NTUVOVC4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDMtMDItMjggIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfcmVsYXhfc2VjdGlvbik6IENvcnJlY3QgYm91bmRzCglmb3IgbHRvZmYyMnggcmVsYXhhdGlvbi4KCjIwMDMtMDMtMDEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBiZmQtaW4uaCAoX2JmZCk6IERvbid0IGRlZmluZS4KCSogYmZkLmM6IFJlbmFtZSBvY2N1cnJlbmNlcyBvZiAic3RydWN0IF9iZmQiIHRvICJzdHJ1Y3QgYmZkIi4KCSogc3ltcy5jOiBMaWtld2lzZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMy0wMi0yNyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoc3RydWN0IGVsZk5OX2lhNjRfZHluX3N5bV9pbmZvKTogQWRkIHdhbnRfZ290eDsKCShlbGZOTl9pYTY0X2NoZWNrX3JlbG9jcyk6IFNldCBpdC4KCShhbGxvY2F0ZV9nbG9iYWxfZGF0YV9nb3QpOiBDaGVjayBpdC4KCShhbGxvY2F0ZV9sb2NhbF9nb3QpOiBMaWtld2lzZS4KCShhbGxvY2F0ZV9keW5yZWxfZW50cmllcyk6IExpa2V3aXNlLgoJKGVsZk5OX2lhNjRfcmVsYXhfbGR4bW92KTogTmV3LgoJKGVsZk5OX2lhNjRfcmVsYXhfc2VjdGlvbik6IEhhbmRsZSBMVE9GRjIyWCwgTERYTU9WLgoJKGVsZk5OX2lhNjRfY2hvb3NlX2dwKTogU3BsaXQgb3V0IGZyb20gLi4uCgkoZWxmTk5faWE2NF9maW5hbF9saW5rKTogLi4uIGhlcmUuCgoyMDAzLTAyLTI3ICBBbmRyZXcgQ2FnbmV5ICA8Y2FnbmV5QHJlZGhhdC5jb20+CgoJKiBiZmQuYyAoc3RydWN0IGJmZCk6IFJlbmFtZSAic3RydWN0IF9iZmQiLgoJKiBiZmQtaW4uaDogVXBkYXRlIGNvcHlyaWdodC4KCShzdHJ1Y3QgYmZkKTogUmVuYW1lICJzdHJ1Y3QgX2JmZCIuCgkoX2JmZCk6IERlZmluZSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMy0wMi0yNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmxpbmsuaCAoZWxmX2JmZF9maW5hbF9saW5rKTogQXBwb3J0aW9uIHJlbG9jIGNvdW50cyB0byByZWxfaGRyCglhbmQgcmVsX2hkcjIgd2hlbiBpbml0aWFsbHkgY291bnRpbmcgaW5wdXQgcmVsb2NzIHJhdGhlciB0aGFuIGFmdGVyCgljcmVhdGluZyBvdXRwdXQgcmVsb2Mgc2VjdGlvbnMuCgkoZWxmX2xpbmtfcmVhZF9yZWxvY3NfZnJvbV9zZWN0aW9uKTogRG9uJ3QgYWJvcnQgd2l0aCB3cm9uZyByZWxvYwoJc2l6ZXMuCgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0wMi0yNCAgS3JpcyBXYXJrZW50aW4gIDxrZXdhcmtlbkBxbnguY29tPgoKCSogZWxmLmMgKGVsZmNvcmVfcmVhZF9ub3Rlcyk6IEFkZCBjaGVjayBmb3IgUU5YIHN0eWxlIGNvcmUgZmlsZS4KCShlbGZjb3JlX2dyb2dfbnRvX25vdGUpOiBOZXcgZnVuY3Rpb24uCgkoZWxmY29yZV9ncm9nX250b19ncmVncyk6IE5ldyBmdW5jdGlvbi4KCShlbGZjb3JlX2dyb2dfbnRvX3N0YXR1cyk6IE5ldyBmdW5jdGlvbi4KCjIwMDMtMDItMjQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX2NyZWF0ZV9nb3Rfc2VjdGlvbik6IENoZWNrIGV4aXN0aW5nIC5nb3QKCXNlY3Rpb24gZmxhZ3MgYmVmb3JlIGNvbmNsdWRpbmcgdGhhdCB3ZSd2ZSBhbHJlYWR5IGJlZW4gY2FsbGVkLgoJRG9uJ3QgdXNlIHJlZ2lzdGVyIGtleXdvcmQuCgkoX2JmZF9lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBEb24ndCB1c2UgcmVnaXN0ZXIga2V5d29yZC4KCShfYmZkX2VsZl9jcmVhdGVfbGlua2VyX3NlY3Rpb24pOiBGb3JtYXR0aW5nLgoKMjAwMy0wMi0yMCAgam1jICA8am1jQHByaW9yaXMubWluaS5wdy5lZHUucGw+CgoJKiBjb2ZmLWg4MzAwLmM6IEZpeCB0eXBvOiBpbnRpYWwgLT4gaW5pdGlhbC4KCSogY29mZi1wcGMuYzogTGlrZXdpc2UuCgoyMDAzLTAyLTIwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItcHBjLmM6IEZvcm1hdHRpbmcuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogTEQgYW5kIEdEIHJlbG9jcyBhZ2FpbnN0IHRoZSBzYW1lIHN5bSBuZWVkCglzZXBhcmF0ZSBHT1QgZW50cmllcy4KCShwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBDb3JyZWN0IEdPVCBoYW5kbGluZyBmb3IgbXVsdGlwbGUgR09UCgllbnRyaWVzIHBlciBzeW1ib2wuCgoyMDAzLTAyLTE5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2djX3N3ZWVwX2hvb2spOiBTaW1wbGlmeSBkeW5hbWljIHJlbG9jCglyZW1vdmFsLiAgTG9jYWxpemUgdmFycy4gIFJlbW92ZSB1bm5lY2Vzc2FyeSBkeW5vYmogdGVzdC4KCSogZWxmMzItaTM4NiAoV0lMTF9DQUxMX0ZJTklTSF9EWU5BTUlDX1NZTUJPTCk6IFBhc3MgU0hBUkVEIGluc3RlYWQKCW9mIElORk8uCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogQWRqdXN0IFdJTExfQ0FMTF9GSU5JU0hfRFlOQU1JQ19TWU1CT0wgdXNlcywKCWFuZCBvcHRpbWl6ZS4KCShlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkoZWxmX2kzODZfZ2Nfc3dlZXBfaG9vayk6IFNpbXBsaWZ5IGR5biByZWxvYyByZW1vdmFsLiAgTG9jYWxpemUgdmFycy4KCSogZWxmMzItczM5MC5jIChlbGZfczM5MF9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYyAoZWxmX3MzOTBfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItc3BhcmMuYyAoZWxmMzJfc3BhcmNfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLiAgUmVtb3ZlCglsb2NhbF9keW5yZWwgZm9yIHNlY3Rpb24gdG9vLiAgRG9uJ3QgdG91Y2ggSElQTFQyMiwgTE9QTFQxMCwgUENQTFQzMgoJb3IgUENQTFQxMCByZWxvY3MuICBEb24ndCBzdWJ0cmFjdCB0d2ljZSBvbiBQTFQzMiByZWxvY3MuCglGb3JtYXR0aW5nLgoKCSogZWxmNjQtcHBjLmMgKEVMSU1JTkFURV9DT1BZX1JFTE9DUyk6IERlZmluZS4KCShwcGM2NF9lbGZfY2hlY2tfcmVsb2NzKTogVXNlIGl0LiAgQ29ycmVjdCBjb21tZW50LiAgTW92ZSBTRUNfQUxMT0MKCXRlc3QuCgkocHBjNjRfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IFVzZSBFTElNSU5BVEVfQ09QWV9SRUxPQ1MuCgkoV0lMTF9DQUxMX0ZJTklTSF9EWU5BTUlDX1NZTUJPTCk6IFBhc3MgU0hBUkVEIGluc3RlYWQgb2YgSU5GTy4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBBZGp1c3QgV0lMTF9DQUxMX0ZJTklTSF9EWU5BTUlDX1NZTUJPTCB1c2VzLAoJYW5kIG9wdGltaXplLiAgVXNlIEVMSU1JTkFURV9DT1BZX1JFTE9DUy4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoKCSogZWxmMzItcHBjLmMgKHN0cnVjdCBwcGNfZWxmX2R5bl9yZWxvY3MpOiBBZGQgcGNfY291bnQgZmllbGQuCgkocHBjX2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IENvcHkgcGNfY291bnQgZmllbGQuCgkoRUxJTUlOQVRFX0NPUFlfUkVMT0NTKTogRGVmaW5lLgoJKHBwY19lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogQ29udmVydCBjb3B5IHJlbG9jcyB0byBkeW5hbWljLgoJKFdJTExfQ0FMTF9GSU5JU0hfRFlOQU1JQ19TWU1CT0wpOiBQYXNzIFNIQVJFRCBpbnN0ZWFkIG9mIElORk8uCgkoTVVTVF9CRV9EWU5fUkVMT0MpOiBEZWZpbmUuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogQWRqdXN0IFdJTExfQ0FMTF9GSU5JU0hfRFlOQU1JQ19TWU1CT0wgdXNlcywKCWFuZCBvcHRpbWl6ZS4gIFRyaW0gZHluX3JlbG9jcy4KCShwcGNfZWxmX2NoZWNrX3JlbG9jcyk6IERvbid0IGdlbmVyYXRlIGR5bl9yZWxvY3Mgd2hlbiB3ZSBrbm93IHRoZXknbGwKCW5vdCBiZSB1c2VkLiAgRG8gZ2VuZXJhdGUgZHluX3JlbG9jcyBmb3IgY29weSByZWxvYyBhdm9pZGFuY2UuICBLZWVwCgl0cmFjayBvZiBwY19yZWwgZHluIHJlbG9jcy4KCShwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBSZW1vdmUgIndpbGxfYmVjb21lX2xvY2FsIi4gIEFkanVzdAoJV0lMTF9DQUxMX0ZJTklTSF9EWU5BTUlDX1NZTUJPTCB1c2UuICBUcmltIGR5biByZWxvY3MgYXMgcGVyCglhbGxvY2F0ZV9keW5yZWxvY3MuICBEb24ndCByZWNhbGN1bGF0ZSAic2VjIi4KCjIwMDMtMDItMTggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogUmVtb3ZlIHVubmVjZXNzYXJ5IHRlc3QuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfdGxzX29wdGltaXplKTogRGVjcmVtZW50IHRsc2xkX2dvdC5yZWZjb3VudAoJb24gaW52YWxpZCBMRCByZWxvY3MuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogSW52YWxpZCBMRCByZWxvY3MgZG9uJ3QgdXNlIHRsc2xkX2dvdCBlbnRyeS4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFVuaWZ5IG5ldyBoYW5kbGluZyBvZiBMRCByZWxvY3MgYW5kCgl0bHNsZF9nb3QgZW50cnkuICBVc2UgSVNfUFBDNjRfVExTX1JFTE9DLgoKCSogZWxmMzItcHBjLmg6IE5ldyBmaWxlLgoJKiBlbGYzMi1wcGMuYzogSW5jbHVkZSBlbGYzMi1wcGMuaC4KCShOT1AsIENST1JfMTUxNTE1LCBDUk9SXzMxMzEzMSwgVFBfT0ZGU0VULCBEVFBfT0ZGU0VUKTogRGVmaW5lLgoJKHN0cnVjdCBwcGNfZWxmX2xpbmtfaGFzaF9lbnRyeSk6IFJlbmFtZSAicm9vdCIgdG8gImVsZiIuICBBZGp1c3QgdXNlcy4KCUFkZCAidGxzX21hc2siIGZpZWxkLgoJKFRMU19HRCwgVExTX0xELCBUTFNfVFBSRUwsIFRMU19EVFBSRUwsIFRMU19UTFMsIFRMU19UUFJFTEdEKTogRGVmaW5lLgoJKHN0cnVjdCBwcGNfZWxmX2xpbmtfaGFzaF90YWJsZSk6IFJlbmFtZSAicm9vdCIgdG8gImVsZiIuICBBZGp1c3QgdXNlcy4KCUFkZCBnb3QsIHJlbGdvdCwgcGx0LCByZWxwbHQsIGR5bmJzcywgcmVsYnNzLCBkeW5zYnNzLCByZWxzYnNzLAoJc2RhdGEsIHNkYXRhMiwgdGxzX3NlYywgdGxzX2dldF9hZGRyLCB0bHNsZF9nb3QgZmllbGRzLgoJTWFrZSB1c2Ugb2YgaHRhYiBzaG9ydGN1dHMgdGhyb3VnaG91dCBmaWxlLgoJKHBwY19lbGZfbGlua19oYXNoX25ld2Z1bmMpOiBJbml0IHRsc19tYXNrIGZpZWxkLgoJKHBwY19lbGZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IEluaXQgbmV3IGZpZWxkcy4KCShwcGNfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogQ29weSB0bHNfbWFzay4KCShwcGNfZWxmX2hvd3RvX3Jhdyk6IEFkZCB0bHMgcmVsb2NzLgoJKHBwY19lbGZfcmVsb2NfdHlwZV9sb29rdXApOiBIYW5kbGUgdGhlbS4KCShwcGNfZWxmX3VuaGFuZGxlZF9yZWxvYyk6IE5ldyBmdW5jdGlvbi4KCShwcGNfZWxmX2NyZWF0ZV9nb3QpOiBTdGFzaCBnb3Qgc2VjdGlvbiBwb2ludGVyIGluIGhhc2ggdGFibGUsCglyZXR1cm4gc3RhdHVzLiAgTWFrZSAucmVsYS5nb3QgdG9vLgoJKHBwY19lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBTdGFzaCBzZWN0aW9uIHBvaW50ZXJzIGluIGh0YWIuCgkocHBjX2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBPbmx5IHNldCB1cCBjb3B5IHJlbG9jcyB3aGVuCglOT05fR09UX1JFRiBzZXQuICBEb24ndCBhbGxvY2F0ZSBzcGFjZSBpbiAucGx0IGhlcmUuLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IC4uZG8gc28gaGVyZSBpbnN0ZWFkLCBwcm9wZXJseSByZWYtY291bnRpbmcgYW5kCglub3QgYWxsb2NhdGluZyBwbHQgZW50cmllcyB1bm5lY2Vzc2FyaWx5LiAgQWxsb2NhdGUgZ290IGVudHJpZXMgaGVyZS4KCShXSUxMX0NBTExfRklOSVNIX0RZTkFNSUNfU1lNQk9MKTogRGVmaW5lLgoJKHBwY19lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogQWxsb2NhdGUgbG9jYWwgZ290IGVudHJpZXMuICBQYXNzCgkiaW5mbyIgZHVyaW5nIGFsbG9jYXRlX2R5bnJlbG9jcyBoYXNoIHRyYXZlcnNhbC4gIFVzZSBodGFiIHNlY3Rpb24KCXNob3J0Y3V0cyByYXRoZXIgdGhhbiBzZWFyY2hpbmcgZm9yIG5hbWVkIHNlY3Rpb25zLiAgR2V0IHJpZCBvZgoJInBsdCIgYW5kICJzdHJpcCIgYm9vbGVhbnMuCgkodXBkYXRlX2xvY2FsX3N5bV9pbmZvLCBiYWRfc2hhcmVkX3JlbG9jKTogTmV3IGZ1bmN0aW9ucy4KCShwcGNfZWxmX2NoZWNrX3JlbG9jcyk6IEhhbmRsZSBUTFMgcmVsb2NzLiAgTW92ZSAucmVsYS5nb3QgY3JlYXRpb24gdG8KCXBwY19lbGZfY3JlYXRlX2dvdC4gIERvbid0IG1hcmsgZ290IG9yIHBsdCByZWxvYyBzeW1zIGR5bmFtaWMsIGRvIHNvCglpbiBhbGxvY2F0ZV9keW5yZWxvYy4gIFVzZSB1cGRhdGVfbG9jYWxfc3ltX2luZm8gYW5kIGJhZF9zaGFyZWRfcmVsb2MuCglEaXNhbGxvdyBSX1BQQ19FTUJfUkVMU0RBLCBSX1BQQ19FTUJfTkFERFIzMiwgUl9QUENfRU1CX05BRERSMTYsCglSX1BQQ19FTUJfTkFERFIxNl9MTywgUl9QUENfRU1CX05BRERSMTZfSEkgYW5kIFJfUFBDX0VNQl9OQUREUjE2X0hBCglpbiBzaGFyZWQgbGlicy4gIFJfUFBDX1BMVFJFTDMyIGlzIGEgcGx0IHJlbG9jIHRvby4gIFJlZmNvdW50IGFsbAoJcmVsb2NzIHRoYXQgbWlnaHQgdXNlIGEgcGx0IGVudHJ5LiAgU2V0IE5PTl9HT1RfUkVGIHRvby4KCUVudW1lcmF0ZSBhbGwgZG8tbm90aGluZyByZWxvY3MuCgkocHBjX2VsZl9nY19zd2VlcF9ob29rKTogU2ltcGxpZnkgcmVtb3ZhbCBvZiBkeW5yZWxvY3MuICBIYW5kbGUKCXRscyByZWxvY3MgYW5kIGFsbCBwbHQgcmVsb2NzLgoJKHBwY19lbGZfdGxzX3NldHVwLCBwcGNfZWxmX3Rsc19vcHRpbWl6ZSk6IE5ldyBmdW5jdGlvbnMuCgkocHBjX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBEb24ndCBidWlsZCBnb3QgZW50cmllcyBoZXJlLgoJKHBwY19lbGZfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBSZXdyaXRlIHRhZyBjb2RlIHVzaW5nIGh0YWIKCXNob3J0Y3V0cy4KCShwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBUaWR5LiAgSGFuZGxlIFRMUyByZWxvY3MuICBVc2UKCWJmZF9lbGZfbG9jYWxfc3ltX25hbWUuICBTaW1wbGlmeSB1bnJlc29sdmVkIHJlbG9jIGNvZGUuICBCdWlsZCBnb3QKCWVudHJpZXMgYW5kIGdvdCByZWxvY3MgaGVyZS4gIFdhcm4gb24gbm9uLXplcm8gZ290IHJlbG9jIGFkZGVuZC4KCVNwbGl0IG91dCBicmFuY2ggdGFrZW4vbm90IHRha2VuIHJlbG9jIGNvZGUgaW50byBhIHNlcGFyYXRlIHN3aXRjaAoJYW5kIGNvcnJlY3Qgb2Zmc2V0IGNhbGN1bGF0aW9uLiBBbGxvdyBCUlRBS0VOL0JSTlRBS0VOIGR5bmFtaWMgcmVsb2NzLgoJU3BsaXQgb3V0IEhBIHJlbG9jIGFkanVzdG1lbnRzIHRvIHNlcGFyYXRlIHN3aXRjaCBzdGF0ZW1lbnQuICBEb24ndAoJd2FybiBvbiByZWxvYyBvdmVyZmxvdyBpZiB3ZSd2ZSBhbHJlYWR5IHdhcm5lZCBhYm91dCB1bmRlZmluZWQuCglEb24ndCByZWJ1aWxkIHN5bSBuYW1lIHdoZW4gcmVwb3J0aW5nIGVycm9ycy4gIFJlcG9ydCBhbGwgcG9zc2libGUKCWVycm9ycyBmcm9tIF9iZmRfZmluYWxfbGlua19yZWxvY2F0ZS4KCShiZmRfZWxmMzJfYmZkX2ZpbmFsX2xpbmspOiBEb24ndCBkZWZpbmUuCgoyMDAzLTAyLTE4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogRG9uJ3QgaW5pdCAiciIuICBEb24ndAoJcmVidWlsZCBzeW0gbmFtZSB3aGVuIHJlcG9ydGluZyBlcnJvcnMuCgoyMDAzLTAyLTE3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmbGluay5oIChlbGZfbGlua19vdXRwdXRfZXh0c3ltKTogT25seSBjaGVjawoJYWxsb3dfc2hsaWJfdW5kZWZpbmVkIGZvciBzaGFyZWQgbGlicmFyaWVzLgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBSZW1vdmUgYm9ndXMgY2hlY2sKCW9mIGFsbG93X3NobGliX3VuZGVmaW5lZC4KCSogZWxmMzItY3Jpcy5jIChjcmlzX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGsuYyAoZWxmX202OGtfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1zcGFyYy5jIChlbGYzMl9zcGFyY19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXZheC5jIChlbGZfdmF4X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1ocHBhLmMgKGVsZjY0X2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jIChlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAzLTAyLTE3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmLmMgKFNFR01FTlRfQUZURVJfU0VHTUVOVCk6IEFkZCB0aGlyZCBwYXJhbWV0ZXIgLSB0aGUKCWFkZHJlc3MgZmllbGQgdG8gdXNlIGluIHRoZSBjb21wYXJpc29uLgoJKFNFR01FTlRfT1ZFUkxBUFMpOiBDaGVjayB0aGF0IExNQXMgb3ZlcmxhcCBhcyB3ZWxsLgoKMjAwMy0wMi0xNCAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIGVsZmNvcmUuaCAoZWxmX2NvcmVfZmlsZV9wKTogQ29tcGFyZSBhbHRlcm5hdGUgbWFjaGluZSBjb2RlcyBmb3IgRUxGCgliYWNrZW5kcyB3aGVuIGNoZWNraW5nIGlmIHRoZSBnZW5lcmljIEVMRiB0YXJnZXQgc2hvdWxkIGJlIHVzZWQuCgoJKiBzeW1zLmMgKF9iZmRfc3RhYl9zZWN0aW9uX2ZpbmRfbmVhcmVzdF9saW5lKTogRm9yIGxpbmUgbnVtYmVyIHN0YWJzCglvdXRzaWRlIG9mIGZ1bmN0aW9ucywgdHJlYXQgdmFsdWVzIGFzIGFic29sdXRlIGFkZHJlc3Nlcy4KCgkqIGJmZC5jOiBDaGFuZ2UgZW1iZWRkZWQgZG9jdW1lbnRhdGlvbiB0byB1c2UgY29uc2lzdGVudCBpbmRlbnRhdGlvbgoJYW5kIHRvIHNwbGl0IHVwIGxvbmcgbGluZXMuICBDaGFuZ2UgaW5mb3JtYWwgc3R5bGUgb2YgZGVzY3JpcHRpb24KCWZvciBmdW5jdGlvbnMgbGFja2luZyByZWFsIGRvY3VtZW50YXRpb24uCgkqIGNvZmZjb2RlLmg6IEJyZWFrIHVwIGxvbmcgbGluZXMgaW4gZW1iZWRkZWQgZG9jdW1lbnRhdGlvbi4KCSogZm9ybWF0LmM6IExpa2V3aXNlLgoJKiB0YXJnZXRzLmM6IExpa2V3aXNlLgoJKiBsaWJjb2ZmLmg6IFJlZ2VuZXJhdGUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDMtMDItMTQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBJbml0IHRsc19nZXRfYWRkci4KCShwcGM2NF9lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBNZXJnZSB0bHNfbWFzayB0b28uCgkocHBjNjRfZWxmX2djX3N3ZWVwX2hvb2spOiBTaW1wbGlmeSByZW1vdmFsIG9mIGR5bl9yZWxvY3MuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogRG9uJ3QgdHJlYXQgdW5kZWZpbmVkIGFuZCB1bmRlZndlYWsgc3BlY2lhbGx5LgoJKHBwY19zaXplX29uZV9zdHViKTogRml4IHdhcm5pbmcsIGFuZCB0aWdodGVuIHBsdCBlbnRyeSBjaGVjay4KCShncm91cF9zZWN0aW9ucyk6IERvbid0IHNoYXJlIGEgc3R1YiBzZWN0aW9uIGlmIHN0dWJzIGFyZSBmb3IgYSBsYXJnZQoJc2VjdGlvbi4gIEFkanVzdCBjb21tZW50LgoJKHBwYzY0X2VsZl9zaXplX3N0dWJzKTogUm91Z2hseSBkb3VibGUgdGhlIHNpemUgbGVmdCBmb3Igc3R1YnMgaWYKCSFzdHVic19hbHdheXNfYmVmb3JlX2JyYW5jaC4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEluaXRpYWxpemUgdGxzbGQgR09UIGVudHJ5IG9uY2UuICBEb24ndAoJdHJlYXQgdW5kZWZpbmVkIGFuZCB1bmRlZndlYWsgc3BlY2lhbGx5IHdoZW4gcHJvY2Vzc2luZyBkeW4gcmVsb2NzLgoKMjAwMy0wMi0xMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IEhhbmRsZSAuc3ltdmVyIHgsIHhARk9PLgoKMjAwMy0wMi0xMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl90aHVtYl90b19hcm1fc3R1Yik6IEluY2x1ZGUgc2VjdGlvbiBWTUFzCglpbiBjb21wdXRhdGlvbiBvZiBvZmZzZXQgdG8gaW5zZXJ0IGludG8gQkwgaW5zdHJ1Y3Rpb24uCgoyMDAzLTAyLTExICBVd2UgU3RpZWJlciAgPHV3ZUB3d3dzLmRlPgoKCSogY29uZmlnLmJmZDogQWRkIHN1cHBvcnQgZm9yIGthT1MgYXMgY3Jvc3MgYnVpbGQgdGFyZ2V0IHN5c3RlbS4KCjIwMDMtMDItMTEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2NoZWNrX3JlbG9jcyk6IE1hdGNoIHZlcnNpb25lZAoJLl9fdGxzX2dldF9hZGRyIHRvby4KCShwcGM2NF9lbGZfdGxzX3NldHVwKTogRW5zdXJlIGNhY2hlZCB0bHNfZ2V0X2FkZHIgaXMgbm90IGluZGlyZWN0LgoKMjAwMy0wMi0xMCAgS2F6IGtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBlbGYzMi1zaC5jIChlbGZfc2hfZHluX3JlbG9jcyk6IEFkZCB0bHNfdHBvZmYzMiBmaWVsZC4KCShlbGZfc2hfbGlua19oYXNoX2VudHJ5KTogUmVtb3ZlIHRsc190cG9mZjMyIGZpZWxkLgoJKHNoX2VsZl9saW5rX2hhc2hfbmV3ZnVuYyk6IFJlbW92ZSB0aGUgaW5pdGlhbGl6YXRpb24gb2YKCXRsc190cG9mZjMyIGZpZWxkLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IEtlZXAgZHluX3JlbG9jcyBpZiBpdCBpbmNsdWRlcyB0aGUgZW50cnkKCWZvciB3aGljaCB0bHNfdHBvZmYzMiBmbGFnIGlzIHNldC4KCShzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IENvdmVydCB0byBMRSBvbmx5IGlmIHRoZSBkeW5fcmVsb2NzCglvZiB0aGUgc3ltYm9sIGluY2x1ZGVzIHRoZSBlbnRyeSBtYXRjaGVkIHdpdGggdGhlIGlucHV0X3NlY3Rpb24KCWFuZCBoYXZpbmcgdGxzX3Rwb2ZmMzIgZmxhZyBvbi4gIFdoZW4gbGlua2luZyBzdGF0aWNhbGx5LCBzZXQKCXN5bWJvbCBpbmRleCBvZiBSX1NIX1RMU19UUE9GRjMyIHJlbG9jYXRpb24gdG8gemVybyBpZiB0aGUgc3ltYm9sCglpcyBkZWZpbmVkIGluIHRoaXMgZXhlY3V0YWJsZS4KCShzaF9lbGZfY2hlY2tfcmVsb2NzKTogU2V0IHRsc190cG9mZjMyIGZsYWcgYXBwcm9wcmlhdGVseS4KCjIwMDMtMDItMTAgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmMzItczM5MC5jIChlbGZfczM5MF9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBTZXQgcmVsb2NzIHRvIFRSVUUKCWV2ZW4gaWYgdGhlcmUgaXMganVzdCBub24tZW1wdHkgLnJlbGEucGx0LgoKMjAwMy0wMi0xMCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGFyY2h1cmVzLmMgKGJmZF9tYWNoX2FybV9lcDkzMTIpOiBEZWZpbmUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogY3B1LWFybS5jIChwcm9jZXNzb3JzW10pOiBBZGQgZXA5MzEyLgoJKGJmZF9hcm1fYXJjaCk6IEFkZCBlcDkzMTIuCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fbWVyZ2VfcHJpdmF0ZV9kYXRhKTogVXBkYXRlIGVycm9yCgltZXNzYWdlcyBhbmQgYWRkIHRlc3QgZm9yIE1hdmVyaWNrIGZsb2F0aW5nIHBvaW50IHN1cHBvcnQuCgkoZWxmMzJfYXJtX3ByaW50X3ByaXZhdGVfYmZkX2RhdGEpOiBIYW5kbGUKCUVGX0FSTV9NQVZFUklDS19GTE9BVCBmbGFnLgoJKGVsZjMyX2FybV9vYmplY3RfcCk6IE5ldyBmdW5jdGlvbi4KCShlbGZfYmFja2VuZF9vYmplY3RfcCk6IERlZmluZS4KCjIwMDMtMDItMTAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYzogUmVuYW1lIGFzc29ydGVkIG9jY3VycmVuY2VzIG9mIHRsc190eXBlIGFuZCBzaW1pbGFyCgl2YXJpYWJsZXMsIHN0cnVjdHVyZSBmaWVsZHMgb3IgZnVuY3Rpb24gcGFyYW1zIHRvIHRsc19tYXNrIG9yCglzaW1pbGFyIHRvIGJldHRlciByZWZsZWN0IHVzYWdlLgoJKHN0cnVjdCBnb3RfZW50cnkpOiBDb21tZW50LgoJKHN0cnVjdCBwcGNfbGlua19oYXNoX2VudHJ5KTogRXhwYW5kIGNvbW1lbnQsIGFuZCByZW51bWJlciBUTFNfKi4KCShnZXRfdGxzX21hc2spOiBSZW5hbWUgZnJvbSBnZXRfdGxzX3R5cGUuCgoyMDAzLTAyLTA5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKFRMU19HRF9MRCk6IERvbid0IGRlZmluZS4uCgkoVExTX0dEKTogLi5kZWZpbmUgdGhpcyBpbnN0ZWFkIGFuZCB1cGRhdGUgYWxsIHVzZXMuCgkoVExTX1RQUkVMR0QpOiBEZWZpbmUuCgkocHBjNjRfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBUd2VhayBpbml0aWFsaXphdGlvbiBvZgoJaW5pdF9yZWZjb3VudCBhbmQgaW5pdF9vZmZzZXQuCgkocHBjNjRfZWxmX2NoZWNrX3JlbG9jcyk6IEFkZCBvbmUgZXh0cmEgZWxlbWVudCB0byB0X3N5bW5keCBhcnJheS4KCU1hcmsgc2Vjb25kIHNsb3Qgb2YgR0Qgb3IgTEQgdG9jIGVudHJpZXMuCgkoZ2V0X3Rsc190eXBlKTogUmV0dXJuIGFuIGludC4gIERpc3Rpbmd1aXNoIHRvYyBHRCBhbmQgTEQgZW50cmllcwoJZnJvbSBvdGhlciB0bHMgdHlwZXMuCgkocHBjNjRfZWxmX3Rsc19zZXR1cCk6IE5ldyBmdW5jdGlvbiwgc3BsaXQgb3V0IGZyb20uLgoJKHBwYzY0X2VsZl90bHNfb3B0aW1pemUpOiAuLmhlcmUuICBEb24ndCBvcHRpbWl6ZSB3aGVuIHN5bWJvbHMgYXJlCglkZWZpbmVkIGluIGEgZHluYW1pYyBvYmplY3QuICBGaXggTEQgb3B0aW1pemF0aW9uLiAgRG9uJ3Qgc2V0IFRMU19UUFJFTAoJb24gR0QtPklFIG9wdGltaXphdGlvbiwgdXNlIFRMU19UUFJFTEdEIGluc3RlYWQuICBVc2UgZ2V0X3Rsc190eXBlCglyZXR1cm4gdmFsdWUgdG8gcHJvcGVybHkgZGVjaWRlIHdoZXRoZXIgdG9jIEdEIGFuZCBMRCBlbnRyaWVzIGNhbgoJb3B0aW1pemUgYXdheSBfX3Rsc19nZXRfYWRkciBjYWxsLiAgQ2hlY2sgbmV4dCByZWxvYyBhZnRlciBEVFBNT0Q2NAoJdG8gZGV0ZXJtaW5lIEdEIG9yIExEIHJhdGhlciB0aGFuIGxvb2tpbmcgYXQgVExTX0xEIGZsYWcuICBEb24ndAoJYXR0ZW1wdCB0byBhZGp1c3QgZ290IGVudHJ5IHRsc190eXBlIGhlcmUuLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IC4uaW5zdGVhZCwgYWRqdXN0IGdvdCBlbnRyeSB0bHNfdHlwZSBoZXJlLCBhbmQKCWxvb2sgZm9yIHBvc3NpYmxlIG1lcmdlcy4KCShwcGM2NF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogQWRqdXN0IGxvY2FsIGdvdCBlbnRyaWVzIGZvcgoJb3B0aW1pemF0aW9uLgoJKHBwYzY0X2VsZl9zaXplX3N0dWJzKTogVHdlYWsgX190bHNfZ2V0X2FkZHIgZnVkZ2UuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBSZW5hbWUgc29tZSB2YXJzIHRvIGJldHRlciByZWZsZWN0IHVzYWdlLgoJTWFrZSB1c2Ugb2YgcmV0dXJuIHZhbHVlIGZyb20gZ2V0X3Rsc190eXBlIHRvIHByb3Blcmx5IGRldGVjdCBHRCBhbmQKCUxEIG9wdGltaXphdGlvbnMuICBTcGxpdCB0bHNsZC9nZCBoaS9oYSBmcm9tIGxvL2RzIGNhc2UuICBEb24ndAoJaGFuZGxlIHRsc19nZXRfYWRkciByZW1vdmFsIHdoZW4gbG9va2luZyBhdCBSRUwyNCByZWxvY3MsIGRvIGl0IHdoZW4KCWxvb2tpbmcgYXQgdGhlIHByZXZpb3VzIHJlbG9jLiAgQ2hlY2sgcmVsb2MgYWZ0ZXIgRFRQTU9ENjQgdG8gZGV0ZXJtaW5lCglHRCBvciBMRC4KCSogZWxmNjQtcHBjLmggKHBwYzY0X2VsZl90bHNfc2V0dXApOiBEZWNsYXJlLgoKMjAwMy0wMi0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLWhwcGEuYyAoZ3JvdXBfc2VjdGlvbnMpOiBEb24ndCBzaGFyZSBhIHN0dWIgc2VjdGlvbiBpZgoJc3R1YnMgYXJlIGZvciBhIGxhcmdlIHNlY3Rpb24uCgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfc2l6ZV9zdHVicyk6IERvdWJsZSB0aGUgc2l6ZSBsZWZ0IGZvcgoJc3R1YnMgaWYgIXN0dWJzX2Fsd2F5c19iZWZvcmVfYnJhbmNoLgoKMjAwMy0wMi0wNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZi5jIChzd2FwX291dF9zeW1zKTogR2VuZXJhdGUgYW4gZXJyb3IgbWVzc2FnZSBpZiBhbgoJZXF1aXZhbGVudCBvdXRwdXQgc2VjdGlvbiBjYW5ub3QgYmUgZm91bmQgZm9yIGEgc3ltYm9sLgoKMjAwMy0wMi0wNyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxheF9zZWN0aW9uKTogRG9uJ3QgY3Jhc2ggaWYKCWxvY2FsX2dvdF9lbnRyaWVzIGlzIE5VTEwuCgoyMDAzLTAyLTA2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogZWxmLWVoLWZyYW1lLmMgKGdldF9EV19FSF9QRV9zaWduZWQpOiBEZWZpbmUuCgkocmVhZF92YWx1ZSk6IEFkZCBwYXJhbWV0ZXIgaXNfc2lnbmVkLCB1c2Ugc2lnbmVkIGV4dHJhY3Rpb24gaWYKCXRoZSB2YWx1ZSBpcyBzaWduZWQuCgkoX2JmZF9lbGZfd3JpdGVfc2VjdGlvbl9laF9mcmFtZSk6IFBhc3Mgc2lnbmVkIGZsYWcgb2YgdGhlCgllbmNvZGluZyB0byByZWFkX3ZhbHVlLgoKMjAwMy0wMi0wNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBEb24ndCBjb3B5IGdvdCBhbmQKCXBsdCBpbmZvIHdoZW4gY2FsbGVkIHRvIHRyYW5zZmVyIHdlYWsgc3ltIGluZm8uCgoyMDAzLTAyLTA1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogcmVsb2MuYzogQWRkIFBQQyBhbmQgUFBDNjQgVExTIHJlbG9jcy4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogZWxmNjQtcHBjLmMgKFRQX09GRlNFVCwgRFRQX09GRlNFVCk6IERlY2xhcmUuCgkocHBjNjRfZWxmX2hvd3RvX3Jhdyk6IEFkZCBUTFMgaG93dG8ncy4gIEFkanVzdCBSX1BQQzY0X05PTkUgdG8gYmUKCWFnYWluc3QgYSAzMiBiaXQgZmllbGQuCgkocHBjNjRfZWxmX3JlbG9jX3R5cGVfbG9va3VwKTogSGFuZGxlIFRMUyByZWxvY3MuCgkoX3BwYzY0X2VsZl9zZWN0aW9uX2RhdGEpOiBBZGQgdF9zeW1uZHggYW5kIGNvbW1lbnRzLgoJKHBwYzY0X2VsZl9zZWN0aW9uX2RhdGEpOiBVc2UgZWxmX3NlY3Rpb25fZGF0YSBtYWNyby4KCShwcGM2NF9lbGZfbmV3X3NlY3Rpb25faG9vayk6IEFtZXJpY2FuIHNwZWxsaW5nLgoJKHN0cnVjdCBnb3RfZW50cnksIHN0cnVjdCBwbHRfZW50cnkpOiBOZXcuCgkoTVVTVF9CRV9EWU5fUkVMT0MpOiBSZW5hbWUgZnJvbSBJU19BQlNPTFVURV9SRUxPQy4KCShzdHJ1Y3QgcHBjX3N0dWJfaGFzaF9lbnRyeSk6IEFkZCAiYWRkZW5kIiBmaWVsZC4KCShzdHJ1Y3QgcHBjX2xpbmtfaGFzaF9lbnRyeSk6IEFkZCAidGxzX3R5cGUiLgoJKFRMU19UTFMsIFRMU19HRF9MRCwgVExTX0xELCBUTFNfVFBSRUwsIFRMU19EVFBSRUwsCglUTFNfRVhQTElDSVQpOiBEZWZpbmUuCgkoc3RydWN0IHBwY19saW5rX2hhc2hfdGFibGUpOiBBZGQgdGxzX3NlYywgdGxzX2dldF9hZGRyLCB0bHNsZF9nb3QuCgkobGlua19oYXNoX25ld2Z1bmMpOiBJbml0IG5ldyBmaWVsZHMuCgkocHBjNjRfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4gIFNldCBpbml0X3JlZmNvdW50IGFuZAoJaW5pdF9vZmZzZXQgdG8gTlVMTC4KCShwcGM2NF9lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBDb3B5IGdvdCBhbmQgcGx0IGluZm8uICBEb24ndCBjYWxsCglfYmZkX2VsZl9saW5rX2hhc2hfY29weV9pbmRpcmVjdCwgcmF0aGVyIGluc2VydCByZWxldmFudCBjb2RlIGZyb20KCXRoZXJlLgoJKHVwZGF0ZV9sb2NhbF9zeW1faW5mbywgdXBkYXRlX3BsdF9pbmZvKTogTmV3IGZ1bmN0aW9ucy4KCShwcGM2NF9lbGZfY2hlY2tfcmVsb2NzKTogVXNlIHRoZW0uICBIYW5kbGUgVExTIHJlbG9jcy4gIEFkanVzdCBHT1QKCWhhbmRsaW5nIHRvIHVzZSBnb3QuZ2xpc3QgcmF0aGVyIHRoYW4gZ290LnJlZmNvdW50LiAgTGlrZXdpc2UgZm9yIFBMVC4KCShwcGM2NF9lbGZfZ2Nfc3dlZXBfaG9vayk6IEhhbmRsZSBUTFMgcmVsb2NzLCBuZXcgR09UIGFuZCBQTFQgbGlzdHMuCgkoZnVuY19kZXNjX2FkanVzdCk6IEFkanVzdCBmb3IgbmV3IFBMVCBsaXN0LgoJKHBwYzY0X2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCShnZXRfc3ltX2gsIGdldF90bHNfdHlwZSk6IE5ldyBmdW5jdGlvbnMuCgkocHBjNjRfZWxmX2VkaXRfb3BkKTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4gIFVzZSBnZXRfc3ltX2guCgkocHBjNjRfZWxmX3Rsc19vcHRpbWl6ZSk6IE5ldyBmdW5jdGlvbi4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBBZGp1c3QgZm9yIG5ldyBQTFQgYW5kIEdPVCBsaXN0cy4gIEFsbG9jYXRlCglUTFMgcmVsb2NzLgoJKHBwYzY0X2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShwcGNfdHlwZV9vZl9zdHViKTogQWRqdXN0IGZvciBuZXcgUExUIGxpc3QuCgkocHBjX2J1aWxkX29uZV9zdHViKTogTGlrZXdpc2UuCgkocHBjNjRfZWxmX3NpemVfc3R1YnMpOiBMaWtld2lzZS4gIFVzZSBnZXRfc3ltX2guICBUcmVhdCBfX3Rsc19nZXRfYWRkcgoJY2FsbHMgc3BlY2lhbGx5LgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogQWRqdXN0IGZvciBuZXcgR09UIGFuZCBQTFQgbGlzdHMuICBIYW5kbGUKCVRMUyByZWxvY3MuICBSZXBvcnQgbG9jYWwgc3ltcyB1c2luZyBiZmRfZWxmX2xvY2FsX3N5bV9uYW1lLiAgRG9uJ3QKCWluaXQgR09UIGVudHJpZXMgdGhhdCBoYXZlIGEgcmVsb2MuICBHZW5lcmF0ZSBHT1QgcmVsb2NzIGhlcmUuLgoJKHBwYzY0X2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiAuLm5vdCBoZXJlLiAgQWRqdXN0IGZvciBQTFQgbGlzdC4KCSogZWxmNjQtcHBjLmggKHBwYzY0X2VsZl90bHNfb3B0aW1pemUpOiBEZWNsYXJlLgoKMjAwMy0wMi0wNCAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIGVsZjMyLW02OGsuYyAoZWxmX202OGtfaGFzaF9lbnRyeSk6IERlZmluZS4KCShlbGZfbTY4a19saW5rX2hhc2hfdHJhdmVyc2UpOiBSZW1vdmUuCgkoZWxmX202OGtfbGlua19oYXNoX25ld2Z1bmMpOiBVc2Ugc3RydWN0IGJmZF9oYXNoX2VudHJ5IGFuZAoJZWxmX202OGtfaGFzaF9lbnRyeSBpbnN0ZWFkIG9mIHN0cnVjdCBlbGZfbTY4a19saW5rX2hhc2hfZW50cnkgdG8KCXJlZHVjZSBjYXN0aW5nLgoJKGVsZl9tNjhrX2NoZWNrX3JlbG9jcyk6IFVzZSBlbGZfbTY4a19oYXNoX2VudHJ5IGluc3RlYWQgb2YKCWNhc3RpbmcuCgkoZWxmX202OGtfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogVXNlIGVsZl9saW5rX2hhc2hfdHJhdmVyc2UKCWluc3RlYWQgb2YgZWxmX202OGtfbGlua19oYXNoX3RyYXZlcnNlLgoJKGVsZl9tNjhrX2Rpc2NhcmRfY29waWVzKTogQ2hhbmdlIGZpcnN0IHBhcmFtZXRlciB0byBwb2ludGVyIHRvCglzdHJ1Y3QgZWxmX2xpbmtfaGFzaF9lbnRyeSBhbmQgdXNlIGVsZl9tNjhrX2hhc2hfZW50cnkgd2hlbiBzdHJ1Y3QKCWVsZl9tNjhrX2xpbmtfaGFzaF9lbnRyeSBpcyBuZWVkZWQuCgoyMDAzLTAyLTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLWJmZC5oIChzdHJ1Y3QgZ290X2VudHJ5LCBzdHJ1Y3QgcGx0X2VudHJ5KTogRm9yd2FyZCBkZWNsYXJlLgoJKHN0cnVjdCBlbGZfbGlua19oYXNoX2VudHJ5KTogQWRkICJnbGlzdCIgYW5kICJwbGlzdCIgZmllbGRzIHRvCgkiZ290IiB1bmlvbiwgYW5kIGRlY2xhcmUgYXMgZ290cGx0X3VuaW9uLiAgVXNlIGdvdHBsdF91aW5pb24gZm9yCgkicGx0IiBmaWVsZC4KCShzdHJ1Y3QgZWxmX2xpbmtfaGFzaF90YWJsZSk6IE1ha2UgImluaXRfcmVmY291bnQiIGEgZ290cGx0X3VuaW9uLgoJQWRkICJpbml0X29mZnNldCIgZmllbGQuCgkoc3RydWN0IGVsZl9vYmpfdGRhdGEgPGxvY2FsX2dvdD4pOiBBZGQgInN0cnVjdCBnb3RfZW50cnkgKioiIHRvIHVuaW9uLgoJKGVsZl9sb2NhbF9nb3RfZW50cyk6IERlY2xhcmUuCgkqIGVsZi5jIChfYmZkX2VsZl9saW5rX2hhc2hfbmV3ZnVuYyk6IEFkanVzdCBpbml0aWFsaXphdGlvbiBvZiAiZ290IgoJYW5kICJwbHQiLgoJKF9iZmRfZWxmX2xpbmtfaGFzaF9oaWRlX3N5bWJvbCk6IFVzZSAiaW5pdF9vZmZzZXQiLgoJKF9iZmRfZWxmX2xpbmtfaGFzaF90YWJsZV9pbml0KTogU2V0ICJpbml0X29mZnNldCIuCgkqIGVsZmxpbmsuaCAoTkFNRShiZmRfZWxmLHNpemVfZHluYW1pY19zZWN0aW9ucykpOiBTZXQgaW5pdF9yZWZjb3VudAoJZnJvbSBpbml0X29mZnNldC4KCShlbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogU2V0IHBsdCBhbmQgZ290IG9mZnNldHMgdXNpbmcgaW5pdF9vZmZzZXQuCgoJKiBlbGYuYyAoYmZkX2VsZl9sb2NhbF9zeW1fbmFtZSk6IFNwbGl0IG91dCBmcm9tLi4KCShncm91cF9zaWduYXR1cmUpOiAuLmhlcmUuCgkqIGVsZi1iZmQuaCAoYmZkX2VsZl9sb2NhbF9zeW1fbmFtZSk6IERlY2xhcmUuCgoyMDAzLTAyLTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLWJmZC5oIChlbnVtIGVsZl9saW5rX2luZm9fdHlwZSk6IFJlbW92ZS4KCShzdHJ1Y3QgYmZkX2VsZl9zZWN0aW9uX2RhdGEpOiBNb3ZlIHNlY19pbmZvX3R5cGUsIHVzZV9yZWxhX3AgZmllbGRzCgl0byBzdHJ1Y3Qgc2VjLiAgUmVtb3ZlIGxpbmtvbmNlX3AgZmllbGQuCgkoZWxmX2xpbmtvbmNlX3ApOiBEZWxldGUuCgkoZWxmX2Rpc2NhcmRlZF9zZWN0aW9uKTogVXBkYXRlIGZvciBzZWNfaW5mb190eXBlIGNoYW5nZS4KCSogc2VjdGlvbi5jIChzdHJ1Y3Qgc2VjKTogQWRkIHNlY19pbmZvX3R5cGUsIHVzZV9yZWxhX3AsIGhhc190bHNfcmVsb2MsCglmbGFnMTEsIGZsYWcxMiwgZmxhZzEzLCBmbGFnMTQsIGZsYWcxNSwgZmxhZzE2LCBmbGFnMjAsIGZsYWcyNC4KCShFTEZfSU5GT19UWVBFX05PTkUpOiBEZWZpbmUuCgkoRUxGX0lORk9fVFlQRV9TVEFCUyk6IERlZmluZS4KCShFTEZfSU5GT19UWVBFX01FUkdFKTogRGVmaW5lLgoJKEVMRl9JTkZPX1RZUEVfRUhfRlJBTUUpOiBEZWZpbmUuCgkoRUxGX0lORk9fVFlQRV9KVVNUX1NZTVMpOiBEZWZpbmUuCgkoU1REX1NFQ1RJT04pOiBVcGRhdGUgc3RydWN0IHNlYyBpbml0aWFsaXplci4KCSogZWNvZmYuYyAoYmZkX2RlYnVnX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmLmM6IExpa2V3aXNlLiAgVXBkYXRlIG9jY3VycmVuY2VzIG9mIHNlY19pbmZvX3R5cGUgYW5kIHVzZV9yZWxhX3AuCgkqIGVsZmxpbmsuaDogTGlrZXdpc2UuCgkqIGVsZi1laC1mcmFtZS5jOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYzogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYzogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuYzogTGlrZXdpc2UuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCgkqIGVsZjMyLXNwYXJjLmMgKHNlY19kb19yZWxheCk6IFVzZSBlbGZfc2VjdGlvbl9kYXRhIG1hY3JvIHJhdGhlciB0aGFuCglyZWZlcnJpbmcgdG8gdXNlZF9ieV9iZmQuCgkqIGVsZjY0LXNwYXJjLmMgKHNlY19kb19yZWxheCk6IExpa2V3aXNlLgoJKiBlbGY2NC1tbWl4LmMgKG1taXhfZWxmX3NlY3Rpb25fZGF0YSk6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX3NlY3Rpb25fZGF0YSk6IExpa2V3aXNlLgoJKiBpZWVlLmMgKGllZWVfc2x1cnBfc2VjdGlvbl9kYXRhKTogVXNlIGllZWVfcGVyX3NlY3Rpb24gbWFjcm8uCgkoaWVlZV9nZXRfc2VjdGlvbl9jb250ZW50cyk6IExpa2V3aXNlLgoJKGllZWVfbmV3X3NlY3Rpb25faG9vayk6IEZvcm1hdHRpbmcuCgkoaWVlZV9jYW5vbmljYWxpemVfcmVsb2MpOiBSZW1vdmUgY29tbWVudGVkIG91dCBjb2RlLgoJKiBtbW8uYyAobW1vX3NlY3Rpb25fZGF0YSk6IERlZmluZS4gIFVzZSB0aHJvdWdob3V0IGZpbGUuCgkqIG9hc3lzLmMgKG9hc3lzX2dldF9zZWN0aW9uX2NvbnRlbnRzKTogVXNlIG9hc3lzX3Blcl9zZWN0aW9uIG1hY3JvLgoKMjAwMy0wMS0zMSAgR3JheWRvbiBIb2FyZSA8Z3JheWRvbkByZWRoYXQuY29tPgoKCSogTWFrZWZpbGUuYW0gKG9wbmNscy5sbyk6IEFkZCBkZXBlbmRlbmN5IHVwb24gbGliaWJlcnR5LmguCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBvcG5jbHMuYyAoY2FsY19jcmMzMiwgZ2V0X2RlYnVnX2xpbmtfaW5mbywKCXNlcGVyYXRlX2RlYnVnX2ZpbGVfZXhpc3RzLCBmaW5kX3NlcGVyYXRlX2RlYnVnX2ZpbGUpOiBOZXcKCWludGVybmFsIGZ1bmN0aW9ucy4KCShiZmRfZm9sbG93X2dudV9kZWJ1Z2xpbmspOiBOZXcgZnVuY3Rpb24uICBGb2xsb3cgdGhlIHBvaW50ZXIKCWNvbnRhaW5lZCBpbnNpZGUgYSAuZ251X2RlYnVnbGluayBzZWN0aW9uLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAzLTAxLTI5ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfZ290X2VudHJ5X2hhc2gpOiBEb24ndCBkZXJlZmVyZW5jZQoJZW50cnktPmFiZmQgd2hlbiBpdCdzIE5VTEwuCgoyMDAzLTAxLTI3ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfY3JlYXRlX2R5bmFtaWNfcmVsb2NhdGlvbik6IEhhbmRsZQoJX2JmZF9lbGZfc2VjdGlvbl9vZmZzZXQgcmV0dXJuaW5nIC0yIHRoZSBzYW1lIHdheSBhcyAtMS4KCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfbXVsdGlfZ290KTogTmV3IGZ1bmN0aW9uLgoJKHN0cnVjdCBtaXBzX2dvdF9lbnRyeSk6IE1ha2Ugc3ltbmR4IGFuZCBnb3RpZHggc2lnbmVkLiAgTW92ZWQKCWFkZGVuZCBpbnRvIHVuaW9uIGFsb25nIHdpdGggYWRkcmVzcyBhbmQgbGluayBoYXNoIGVudHJ5LgoJKHN0cnVjdCBtaXBzX2dvdF9pbmZvKTogQWRkZWQgYmZkMmdvdCBhbmQgbmV4dC4KCShzdHJ1Y3QgbWlwc19lbGZfaGFzaF9zb3J0X2RhdGEpOiBBZGRlZCBtYXhfdW5yZWZfZ290X2R5bmluZHguCgkobWlwc19lbGZfZ290X3NlY3Rpb24sIG1pcHNfZWxmX2NyZWF0ZV9nb3Rfc2VjdGlvbik6IFVzZQoJU0VDX0VYQ0xVREUgYml0IHRvIHRlbGwgd2hldGhlciB3ZSByZWFsbHkgbmVlZCB0aGUgZ290CglzZWN0aW9uLiAgVGFrZSBib29sZWFuIGFyZ3VtZW50cyB0byBkaXNyZWdhcmQgYW4gZXhjbHVkZWQKCXNlY3Rpb24sIG9yIHRvIGNyZWF0ZSBpdCBhcyBleGNsdWRlZC4gIEFkanVzdCBhbGwgY2FsbGVycy4KCVVzZSBtaXBzX2VsZl9nb3Rfc2VjdGlvbiBhbGwgb3Zlci4KCShtaXBzX2VsZl9sb2NhbF9nb3RfaW5kZXgsIG1pcHNfZWxmX2dvdF9wYWdlLAoJbWlwc19lbGZfZ290MTZfZW50cnkpOiBUYWtlIGlucHV0IGJmZCBhcyBhcmd1bWVudCwgYW5kIHBhc3MgaXQKCW9uIHRvIG1pcHNfZWxmX2NyZWF0ZV9sb2NhbF9nb3RfZW50cnkuCgkobWlwc19lbGZfZ2xvYmFsX2dvdF9pbmRleCwgbWlwc19lbGZfY3JlYXRlX2xvY2FsX2dvdF9lbnRyeSk6CglUYWtlIGlucHV0IGJmZCBhcyBhcmd1bWVudCwgYW5kIG1hbmFnZSBlbnRyaWVzIGluIHRoZQoJYXBwcm9wcmlhdGUgR09ULgoJKG1pcHNfZWxmX2dvdF9vZmZzZXRfZnJvbV9pbmRleCk6IFRha2UgaW5wdXQgYmZkIGFzIGFyZ3VtZW50LAoJYW5kIHVzZSBpdCB0byBhZGp1c3QgdGhlIEdQIG9mZnNldCBvZiB0aGUgYmZkLgoJKG1pcHNfZWxmX3NvcnRfaGFzaF90YWJsZSwgbWlwc19lbGZfc29ydF9oYXNoX3RhYmxlX2YpOiBNb3ZlCgl1bnJlZmVyZW5jZWQgR09UIGVudHJpZXMgb2YgZ2xvYmFsIHN5bWJvbHMgdG8gdGhlIGVuZC4KCShtaXBzX2VsZl9yZWNvcmRfZ2xvYmFsX2dvdF9zeW1ib2wpOiBUYWtlIGlucHV0IGJmZCBhcwoJYXJndW1lbnQuICBBZGQgZW50cmllcyB0byB0aGUgbWFzdGVyIEdPVCBoYXNoIHRhYmxlLgoJKHN0cnVjdCBtaXBzX2VsZl9iZmQyZ290X2hhc2gpOiBOZXcuCgkoc3RydWN0IG1pcHNfZWxmX2dvdF9wZXJfYmZkX2FyZyk6IE5ldy4KCShzdHJ1Y3QgbWlwc19lbGZfc2V0X2dsb2JhbF9nb3Rfb2Zmc2V0X2FyZyk6IE5ldy4KCShtaXBzX2VsZl9oYXNoX2JmZF92bWEsIG1pcHNfZWxmX211bHRpX2dvdF9lbnRyeV9oYXNoLAoJbWlwc19lbGZfbXVsdGlfZ290X2VudHJ5X2VxLCBtaXBzX2VsZl9iZmQyZ290X2VudHJ5X2hhc2gsCgltaXBzX2VsZl9iZmQyZ290X2VudHJ5X2VxLCBtaXBzX2VsZl9tYWtlX2dvdF9wZXJfYmZkLAoJbWlwc19lbGZfbWVyZ2VfZ290cywgbWlwc19lbGZfc2V0X2dsb2JhbF9nb3Rfb2Zmc2V0LAoJbWlwc19lbGZfcmVzb2x2ZV9maW5hbF9nb3RfZW50cnksCgltaXBzX2VsZl9yZXNvbHZlX2ZpbmFsX2dvdF9lbnRyaWVzLCBtaXBzX2VsZl9hZGp1c3RfZ3AsCgltaXBzX2VsZl9nb3RfZm9yX2liZmQpOiBOZXcgZnVuY3Rpb25zLgoJKEVMRl9NSVBTX0dQX09GRlNFVCk6IERvbid0IGRlcGVuZCBvbiBTR0lfQ09NUEFULgoJKE1JUFNfRUxGX0dPVF9NQVhfU0laRSk6IE5ldyBtYWNyby4KCShTVFVCX0xXKTogR2VuZXJhdGUgNjQtYml0IHN0dWIgcmVnYXJkbGVzcyBvZiBTR0lfQ09NUEFULgoJKG1pcHNfZWxmX2dvdF9lbnRyeV9oYXNoKTogVGFrZSBuZXcgZmllbGRzIGludG8gYWNjb3VudC4gIFVzZQoJbWlwc19lbGZfaGFzaF9iZmRfdm1hLgoJKG1pcHNfZWxmX2dvdF9lbnRyeV9lcSk6IFRha2UgbmV3IGZpZWxkcyBpbnRvIGFjY291bnQuCgkobWlwc19lbGZfY3JlYXRlX2dvdF9zZWN0aW9uKTogSW5pdGlhbGl6ZSBuZXcgZmllbGRzLgoJKG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogUGFzcyBpbnB1dF9iZmQgdG8gZnVuY3Rpb25zCgl0aGF0IG5vdyB0YWtlIGl0LiAgQWRqdXN0IGdwIGZvciB0aGUgaW5wdXRfYmZkLgoJKG1pcHNfZWxmX2FsbG9jYXRlX2R5bmFtaWNfcmVsb2NhdGlvbiwKCW1pcHNfZWxmX2NyZWF0ZV9keW5hbWljX3JlbG9jYXRpb24sCglfYmZkX21pcHNfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogVXNlLi4uCgkobWlwc19lbGZfcmVsX2R5bl9zZWN0aW9uKTogTmV3IGZ1bmN0aW9uLiAgQm9ycm93IGNvZGUgZnJvbS4uLgoJKF9iZmRfbWlwc19lbGZfY2hlY2tfcmVsb2NzKTogUGFzcyBpbnB1dF9iZmQgdG8gZnVuY3Rpb25zIHRoYXQKCW5vdyB0YWtlIGl0LiAgQ3JlYXRlIHRoZSBnb3Qgc2VjdGlvbiBpZiBuZWVkZWQsIGV2ZW4gaWYKCWV4Y2x1ZGVkLCBiZWZvcmUgcmVjb3JkaW5nIGEgZ2xvYmFsIGdvdCBzeW1ib2wuICBNb3ZlIHNvbWUKCWNvZGUgdG8uLi4KCShtaXBzX2VsZl9yZWNvcmRfbG9jYWxfZ290X3N5bWJvbCk6IE5ldyBmbi4KCShfYmZkX21pcHNfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IERpc2FibGUgY29tYnJlbG9jLgoJQ29tcHV0ZSBtdWx0aS1nb3QgZ2xvYmFsIGVudHJpZXMgb2Zmc2V0cy4gIE1vdmUgR09UIGNvZGUgdG8uLi4KCShfYmZkX21pcHNfZWxmX2Fsd2F5c19zaXplX3NlY3Rpb25zKTogQ2FsbCBtaXBzX2VsZl9tdWx0aV9nb3QKCWlmIHRoZSBHT1QgaXMgdG9vIGJpZy4KCShfYmZkX21pcHNfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IFNldCBnb3QgZW50cnkgb2YKCXVuZGVmd2VhayBzeW1ib2wgdG8gemVyby4gIEdlbmVyYXRlIGR5bmFtaWMgcmVsb2NhdGlvbnMgZm9yCglub24tcHJpbWFyeSBHT1QgZW50cmllcyBmb3IgZ2xvYmFsIHN5bWJvbHMuCgkoX2JmZF9taXBzX2VsZl9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IEhhbmRsZSBtdWx0aS1nb3QKCWNhc2UuICBHZW5lcmF0ZSBkeW5hbWljIHJlbG9jYXRpb25zIGZvciBsb2NhbCBnb3QgZW50cmllcy4KCVNvcnQgZHluYW1pYyByZWxvY2F0aW9ucyBvbiBONjQgdG9vLCB1c2luZy4uLgoJKHNvcnRfZHluYW1pY19yZWxvY3NfNjQpOiBOZXcgZm5zLgoJKF9iZmRfbWlwc19lbGZfaGlkZV9zeW1ib2wpOiBBZGp1c3QgbXVsdGktZ290IGNvdW50ZXJzLgoJKF9iZmRfbWlwc19lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IElnbm9yZSBFRl9NSVBTX1hHT1QuCgoyMDAzLTAxLTI3ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGJmZC5jIChzdHJ1Y3QgX2JmZCk6IEFkZGVkIGlkIGZpZWxkLgoJKiBvcG5jbHMuYyAoX2JmZF9pZF9jb3VudGVyKTogTmV3IHN0YXRpYyB2YXJpYWJsZS4KCShfYmZkX25ld19iZmQpOiBVc2UgaXQuCgkqIGJmZC1pbjIuaDogUmVidWlsdC4KCjIwMDMtMDEtMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1zcGFyYy5jIChiZmRfZWxmMzJfbmV3X3NlY3Rpb25faG9vayk6IERlZmluZS4KCjIwMDMtMDEtMjUgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmMzItc3BhcmMuYyAoX2JmZF9zcGFyY19lbGZfaG93dG9fdGFibGUpOiBBZGQgVExTIHJlbG9jcy4KCShlbGYzMl9zcGFyY19yZXYzMl9ob3d0byk6IE5ldyB2YXJpYWJsZS4KCShzcGFyY19yZWxvY19tYXApOiBBZGQgVExTIHJlbG9jcy4KCShlbGYzMl9zcGFyY19yZWxvY190eXBlX2xvb2t1cCwgZWxmMzJfc3BhcmNfaW5mb190b19ob3d0byk6CglIYW5kbGUgUkVWMzIuCgkoc3BhcmNfZWxmX2hpeDIyX3JlbG9jLCBzcGFyY19lbGZfbG94MTBfcmVsb2MsIGVsZjMyX3NwYXJjX21rb2JqZWN0KToKCU5ldyBmdW5jdGlvbnMuCgkoc3RydWN0IGVsZjMyX3NwYXJjX2R5bl9yZWxvY3MsIHN0cnVjdCBlbGYzMl9zcGFyY19saW5rX2hhc2hfZW50cnksCglzdHJ1Y3QgZWxmMzJfc3BhcmNfbGlua19oYXNoX3RhYmxlKToKCU5ldyBzdHJ1Y3R1cmVzLgoJKGVsZjMyX3NwYXJjX3RkYXRhLCBlbGYzMl9zcGFyY19sb2NhbF9nb3RfdGxzX3R5cGUsCgllbGYzMl9zcGFyY19oYXNoX3RhYmxlKTogRGVmaW5lLgoJKGxpbmtfaGFzaF9uZXdmdW5jLCBlbGYzMl9zcGFyY19saW5rX2hhc2hfdGFibGVfY3JlYXRlLAoJY3JlYXRlX2dvdF9zZWN0aW9uLCBlbGYzMl9zcGFyY19jcmVhdGVfZHluYW1pY19zZWN0aW9ucywKCWVsZjMyX3NwYXJjX2NvcHlfaW5kaXJlY3Rfc3ltYm9sLCBlbGYzMl9zcGFyY190bHNfdHJhbnNpdGlvbik6IE5ldwoJZnVuY3Rpb25zLgoJKGVsZjMyX3NwYXJjX2NoZWNrX3JlbG9jcyk6IEhhbmRsZSBUTFMgcmVsb2NzLiAgQWRkIGR5bmFtaWMgcmVsb2MKCXJlZmVyZW5jZSBjb3VudGluZy4KCShlbGYzMl9zcGFyY19nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkoZWxmMzJfc3BhcmNfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgkoZWxmMzJfc3BhcmNfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoZWxmMzJfc3BhcmNfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKGFsbG9jYXRlX2R5bnJlbG9jcywgcmVhZG9ubHlfZHlucmVsb2NzLCBkdHBvZmZfYmFzZSwgdHBvZmYpOgoJTmV3IGZ1bmN0aW9ucy4KCShlbGYzMl9zcGFyY19vYmplY3RfcCk6IEFsbG9jYXRlIGJhY2tlbmQgcHJpdmF0ZSBvYmplY3QgZGF0YS4KCShiZmRfZWxmMzJfYmZkX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUsCgllbGZfYmFja2VuZF9jb3B5X2luZGlyZWN0X3N5bWJvbCwgYmZkX2VsZjMyX21rb2JqZWN0LAoJZWxmX2JhY2tlbmRfY2FuX3JlZmNvdW50KTogRGVmaW5lLgoJKGVsZl9iYWNrZW5kX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogRGVmaW5lIHRvCgllbGYzMl9zcGFyY19jcmVhdGVfZHluYW1pY19zZWN0aW9ucy4KCSogcmVsb2MuYzogQWRkIFNQQVJDIFRMUyByZWxvY3MuCgkqIGJmZC1pbjIuaCwgbGliYmZkLmg6IFJlYnVpbHQuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX2hvd3RvX3RhYmxlKTogQWRkIFRMUyByZWxvY3MuCgkoc3BhcmNfcmVsb2NfbWFwKTogTGlrZXdpc2UuCgoyMDAzLTAxLTI0ICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9zMzkwX21rb2JqZWN0LCBlbGZfczM5MF90bHNfdHJhbnNpdGlvbiwKCXMzOTBfdGxzX3JlbG9jLCBkdHBvZmZfYmFzZSwgdHBvZmYsIGludmFsaWRfdGxzX2luc24pOiBOZXcgZnVuY3Rpb25zLgoJKGVsZl9ob3d0b190YWJsZSk6IEFkZCBUTFMgcmVsb2NzLgoJKGVsZl9zMzkwX3JlbG9jX3R5cGVfbG9va3VwKTogTGlrZXdpc2UuCgkoZWxmX3MzOTBfbGlua19oYXNoX2VudHJ5KTogQWRkIHRsc190eXBlLgoJKGVsZl9zMzkwX2hhc2hfZW50cnksIGVsZl9zMzkwX29ial90ZGF0YSwgZWxmX3MzOTBfbG9jYWxfZ290X3Rsc190eXBlKToKCU5ldyBtYWNyb3MuCgkoZWxmX3MzOTBfbGlua19oYXNoX3RhYmxlKTogQWRkIHRsc19sZG1fZ290LgoJKGxpbmtfaGFzaF9uZXdmdW5jKTogSW5pdGlhbGl6ZSB0bHNfdHlwZS4KCShlbGZfczM5MF9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogSW5pdGlhbGl6ZSByZWZjb3VudCBvZiB0bHNfbGRtX2dvdC4KCShlbGZfczM5MF9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IENvcHkgdGxzX3R5cGUgaW5mb3JtYXRpb24uCgkoZWxmX3MzOTBfY2hlY2tfcmVsb2NzKTogU3VwcG9ydCBUTFMgcmVsb2NzLgoJKGVsZl9zMzkwX2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBMaWtld2lzZS4KCShlbGZfczM5MF9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkoZWxmX3MzOTBfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgkoYmZkX2VsZjMyX21rb2JqZWN0KTogRGVmaW5lIGZvciBUTFMuCgkqIGVsZjY0LXMzOTAuYzogU2FtZSBjaGFuZ2VzIGFzIGZvciBlbGYzMi1zMzkwLmMuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiByZWxvYy5jOiBBZGQgczM5MCBUTFMgcmVsb2NhdGlvbnMuCgoyMDAzLTAxLTI0ICBDaGFybGVzIExlcHBsZSAgPGNsZXBwbGVAZ2h6LmNjPgoKCSogYWNsb2NhbC5tNDogRml4IG5hbWUgb2YgLS1lbmFibGUtaW5zdGFsbC1saWJiZmQgc3dpdGNoLgoKMjAwMy0wMS0yMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIEFkZCBzaDJlIHN1cHBvcnQ6CgkyMDAyLTA0LTAyICBFbGVuYSBaYW5ub25pICA8ZXphbm5vbmlAcmVkaGF0LmNvbT4KCSogYXJjaHVyZXMuYyAoYmZkX21hY2hfc2gyZSk6IEFkZGVkLgoJKiBiZmQtaW4yLmg6IFJlYnVpbHQuCgkqIGNwdS1zaC5jIChhcmNoX2luZm9fc3RydWN0KTogQWRkZWQgU0gyZS4KCSogZWxmMzItc2guYyAoc2hfZWxmX3NldF9tYWNoX2Zyb21fZmxhZ3MpOiBIYW5kbGUgRUZfU0gyRS4KCjIwMDMtMDEtMjMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYtYmZkLmggKHN0cnVjdCBiZmRfZWxmX3NlY3Rpb25fZGF0YSk6IFJlbW92ZSB0ZGF0YS4gIENoYW5nZQoJZHluaW5keCB0byBhbiBpbnQuICBSZWFycmFuZ2UgZm9yIGJldHRlciBwYWNraW5nLgoJKiBlbGYuYyAoX2JmZF9lbGZfbmV3X3NlY3Rpb25faG9vayk6IERvbid0IGFsbG9jIGlmIGFscmVhZHkgZG9uZS4KCSogZWxmMzItbWlwcy5jIChiZmRfZWxmMzJfbmV3X3NlY3Rpb25faG9vayk6IERlZmluZS4KCSogZWxmMzItc2g2NC5oOiBOZXcuICBTcGxpdCBvdXQgZnJvbSBpbmNsdWRlL2VsZi9zaC5oLgoJKHN0cnVjdCBfc2g2NF9lbGZfc2VjdGlvbl9kYXRhKTogTmV3IHN0cnVjdC4KCShzaDY0X2VsZl9zZWN0aW9uX2RhdGEpOiBEb24ndCBkZXJlZmVyZW5jZSBzaDY0X2luZm8gKHdhcyB0ZGF0YSkuCgkqIGVsZjMyLXNoNjQtY29tLmM6IEluY2x1ZGUgZWxmMzItc2g2NC5oLgoJKiBlbGYzMi1zaDY0LmM6IExpa2V3aXNlLgoJKHNoNjRfZWxmX25ld19zZWN0aW9uX2hvb2spOiBOZXcgZnVuY3Rpb24uCgkoYmZkX2VsZjMyX25ld19zZWN0aW9uX2hvb2spOiBEZWZpbmUuCgkoc2g2NF9lbGZfZmFrZV9zZWN0aW9ucyk6IEFkanVzdCBmb3Igc2g2NF9lbGZfc2VjdGlvbl9kYXRhIGNoYW5nZS4KCShzaDY0X2JmZF9lbGZfY29weV9wcml2YXRlX3NlY3Rpb25fZGF0YSk6IExpa2V3aXNlLgoJKHNoNjRfZWxmX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBMaWtld2lzZS4KCSogZWxmMzItc3BhcmMuYyAoc3RydWN0IGVsZjMyX3NwYXJjX3NlY3Rpb25fZGF0YSk6IE5ldy4KCShlbGYzMl9zcGFyY19uZXdfc2VjdGlvbl9ob29rKTogTmV3IGZ1bmN0aW9uLgoJKFNFVF9TRUNfRE9fUkVMQVgsIFNFQ19ET19SRUxBWCk6IERlbGV0ZS4KCShzZWNfZG9fcmVsYXgpOiBEZWZpbmUuCgkoZWxmMzJfc3BhcmNfcmVsYXhfc2VjdGlvbik6IEFkanVzdCB0byB1c2Ugc2VjX2RvX3JlbGF4LgoJKGVsZjMyX3NwYXJjX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtbWlwcy5jIChiZmRfZWxmNjRfbmV3X3NlY3Rpb25faG9vayk6IERlZmluZS4KCSogZWxmNjQtbW1peC5jIChzdHJ1Y3QgX21taXhfZWxmX3NlY3Rpb25fZGF0YSk6IE5ldy4KCShtbWl4X2VsZl9zZWN0aW9uX2RhdGEpOiBEZWZpbmUuICBVc2UgdGhyb3VnaG91dCBmaWxlLgoJKG1taXhfZWxmX25ld19zZWN0aW9uX2hvb2spOiBOZXcgZnVuY3Rpb24uCgkoYmZkX2VsZjY0X25ld19zZWN0aW9uX2hvb2spOiBEZWZpbmUuCgkqIGVsZjY0LXBwYy5jIChzdHJ1Y3QgX3BwYzY0X2VsZl9zZWN0aW9uX2RhdGEpOiBOZXcuCgkocHBjNjRfZWxmX3NlY3Rpb25fZGF0YSk6IERlZmluZS4gIFVzZSB0aHJvdWdob3V0LgoJKHBwYzY0X2VsZl9uZXdfc2VjdGlvbl9ob29rKTogTmV3IGZ1bmN0aW9uLgoJKGJmZF9lbGY2NF9uZXdfc2VjdGlvbl9ob29rKTogRGVmaW5lLgoJKiBlbGY2NC1zcGFyYy5jIChzdHJ1Y3Qgc3BhcmM2NF9lbGZfc2VjdGlvbl9kYXRhKTogTmV3LgoJKHNwYXJjNjRfZWxmX25ld19zZWN0aW9uX2hvb2spOiBOZXcgZnVuY3Rpb24uCgkoU0VUX1NFQ19ET19SRUxBWCwgU0VDX0RPX1JFTEFYKTogRGVsZXRlLgoJKHNlY19kb19yZWxheCk6IERlZmluZS4KCShzcGFyYzY0X2VsZl9yZWxheF9zZWN0aW9uKTogQWRqdXN0IHRvIHVzZSBzZWNfZG9fcmVsYXguCgkoc3BhcmM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKGJmZF9lbGY2NF9uZXdfc2VjdGlvbl9ob29rKTogRGVmaW5lLgoJKiBlbGZuMzItbWlwcy5jIChiZmRfZWxmMzJfbmV3X3NlY3Rpb25faG9vayk6IERlZmluZS4KCSogZWxmeHgtbWlwcy5jIChzdHJ1Y3QgX21pcHNfZWxmX3NlY3Rpb25fZGF0YSk6IE5ldy4KCShtaXBzX2VsZl9zZWN0aW9uX2RhdGEpOiBEZWZpbmUuICBVc2UgdGhyb3VnaG91dC4KCShfYmZkX21pcHNfZWxmX25ld19zZWN0aW9uX2hvb2spOiBOZXcgZnVuY3Rpb24uCgkobWlwc19lbGZfY3JlYXRlX2dvdF9zZWN0aW9uKTogRG9uJ3QgYWxsb2MgdXNlZF9ieV9iZmQuCgkqIGVsZnh4LW1pcHMuaCAoX2JmZF9taXBzX2VsZl9uZXdfc2VjdGlvbl9ob29rKTogRGVjbGFyZS4KCSogZWxmeHgtdGFyZ2V0LmggKGJmZF9lbGZOTl9uZXdfc2VjdGlvbl9ob29rKTogQWRkICNpZm5kZWYuCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAzLTAxLTIxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoQUxQSEFfRUxGX0xJTktfSEFTSF9QTFRfTE9DKTogTmV3LgoJKHN0cnVjdCBhbHBoYV9lbGZfbGlua19oYXNoX2VudHJ5KTogQWRkIHBsdF9vbGRfc2VjdGlvbiwgcGx0X29sZF92YWx1ZS4KCShlbGY2NF9hbHBoYV9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBTZXQgdGhlbS4KCShlbGY2NF9hbHBoYV9zaXplX3BsdF9zZWN0aW9uXzEpOiBSZXNldCB0aGVtIHdoZW4gcGx0IGVudHJ5IHJlbW92ZWQuCgkoZWxmNjRfYWxwaGFfcmVsYXhfdGxzX2dldF9hZGRyKTogSGFuZGxlIExETSByZWxvY3MuICBGcm9iIHRoZQoJc3ltYm9sIGluZGV4IHdoZW4gcmVsYXhpbmcgTERNIHRvIFRQUkVMLgoJKGVsZjY0X2FscGhhX3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4gIEFsbG93IHJlbGF4YXRpb24gb2YgR0QKCXJlbG9jcywgZXZlbiBpZiB0aGUgdGFyZ2V0IGlzbid0IGxvY2FsbHkgZGVmaW5lZC4KCShlbGY2NF9hbHBoYV9jaGVja19yZWxvY3MpOiBGcm9iIExETSByZWxvYyBzeW1uZHggdG8gemVyby4KCShlbGY2NF9hbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuICBGb3JjZSBUUC1yZWxhdGl2ZQoJcmVsb2NzIHZzIHN5bW5keCAwIHRvIHRoZSB0cCBiYXNlLgoKMjAwMy0wMS0yMSAgRmFiaW8gQWxlbWFnbmEgIDxmYWxlbWFnbkBhcm9zLm9yZz4KCgkqIGNvbmZpZy5iZmQ6IEhhbmRsZSBpWzM0NTZdODYtKi1hcm9zKi4KCjIwMDMtMDEtMjEgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJKiBlbGYzMi1wcGMuYyAoc3RydWN0IHBwY19lbGZfZHluX3JlbG9jcyk6IERlZmluZS4KCShzdHJ1Y3QgcHBjX2VsZl9saW5rX2hhc2hfZW50cnkpOiBEZWZpbmUuCgkocHBjX2VsZl9oYXNoX2VudHJ5KTogTmV3IGZ1bmN0aW9uLgoJKHN0cnVjdCBwcGNfZWxmX2xpbmtfaGFzaF90YWJsZSk6IERlZmluZS4KCShwcGNfZWxmX2hhc2hfdGFibGUpOiBOZXcgZnVuY3Rpb24uCgkocHBjX2VsZl9saW5rX2hhc2hfbmV3ZnVuYyk6IE5ldyBmdW5jdGlvbi4KCShwcGNfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBOZXcgZnVuY3Rpb24uCgkocHBjX2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IE5ldyBmdW5jdGlvbi4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBOZXcgZnVuY3Rpb24uCgkocmVhZG9ubHlfZHlucmVsb2NzKTogTmV3IGZ1bmN0aW9uLgoJKHBwY19lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogQWxsb2NhdGUgc3BhY2UgZm9yIGR5bmFtaWMKCXJlbG9jcyBhbmQgZGV0ZXJtaW5lIERUX1RFWFRSRUwuCgkocHBjX2VsZl9jaGVja19yZWxvY3MpOiBEb24ndCBkbyB0aGF0IGhlcmUsIGp1c3QgY291bnQgdGhlCglkeW5hbWljIHJlbG9jcy4KCShwcGNfZWxmX2djX3N3ZWVwX2hvb2spOiBEaXNjYXJkIGFueSBkeW5hbWljIHJlbG9jcyBhZ2FpbnN0IHRoZQoJcmVtb3ZlZCBzZWN0aW9uLgoJKGJmZF9lbGYzMl9iZmRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IERlZmluZS4KCShlbGZfYmFja2VuZF9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IERlZmluZS4KCjIwMDMtMDEtMjEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChhbHBoYV9keW5hbWljX2VudHJpZXNfZm9yX3JlbG9jKTogR09UVFBSRUwgYW5kCglUUFJFTCBhbHNvIGdldCBhIHJlbG9jIGlmIHNoYXJlZC4gIFJlbW92ZSBTUkVMIHN1cHBvcnQuCgkoZWxmNjRfYWxwaGFfZW1pdF9keW5yZWwpOiBOZXcuCgkoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IFVzZSBpdC4gIFJlc29sdmUgZHluYW1pYyBUUFJFTAoJYW5kIEdPVFRQUkVMIHJlbG9jcyB0byBsb2NhbCBzeW1ib2xzIGFnYWluc3QgdGhlIHRwIGJhc2UuCgkoZWxmNjRfYWxwaGFfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogVXNlIGVsZjY0X2FscGhhX2VtaXRfZHlucmVsLgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsYXhfZ290X2xvYWQpOiBEZWNyZW1lbnQgZ290Cgl1c2UgY291bnQgYmVmb3JlIGNsb2JiZXJpbmcgcl90eXBlLgoJKGVsZjY0X2FscGhhX3JlbGF4X3Rsc19nZXRfYWRkcik6IERvbid0IHVzZSBwb3NbMV0gaWYgaW5zbgoJb3JkZXJpbmcgd291bGQgbWVhbiBkYXRhZmxvdyBpbnNwZWN0aW9uIGlzIG5lY2Vzc2FyeS4KCjIwMDMtMDEtMjAgIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGNvZmZjb2RlLmggKGNvZmZfc2V0X2ZsYWdzKTogQWRkZWQgZ2V0L3NldCBhcmNoIGhvb2tzLgoKMjAwMy0wMS0yMCAgRmFiaW8gQWxlbWFnbmEgIDxmYWxlbWFnbkBhcm9zLm9yZz4KCgkqIGVsZjMyLXNoLmM6IFRyZWF0IGVsZk5OX2JlZCBsaWtlIG90aGVyIG1hY3JvcyBkZWZpbmVkIGluCgkgIGVsZnh4LXRhcmdldC5oIGFuZCAjdW5kZWYgaXQgYmVmb3JlICNkZWZpbmUnaW5nIGl0LgoJKiBlbGYzMi1pMzg2LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zaDY0LmM6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jOiBMaWtld2lzZS4KCSogZWxmNjQtc2g2NC5jOiBMaWtld2lzZS4KCjIwMDMtMDEtMjAgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfYWRqdXN0X2dvdHBsdCk6IE5ldyBwcm90b3R5cGUuCgkoZWxmX2hvd3RvX3RhYmxlKTogUmVuYW1lIFJfMzkwX0dPVE9GRiB0byBSXzM5MF9HT1RPRkYzMi4gQWRkCglSXzM5MF9HT1RPRkYxNiwgUl8zOTBfR09UT0ZGNjQsIFJfMzkwX0dPVFBMVDEyLCBSXzM5MF9HT1RQTFQxNiwKCVJfMzkwX0dPVFBMVDMyLCBSXzM5MF9HT1RQTFQ2NCwgUl8zOTBfR09UUExURU5ULCBSXzM5MF9QTFRPRkYxNiwKCVJfMzkwX1BMVE9GRjMyIGFuZCBSXzM5MF9QTFRPRkY2NC4KCShlbGZfczM5MF9yZWxvY190eXBlX2xvb2t1cCk6IExpa2V3aXNlLgoJKHN0cnVjdCBlbGZfczM5MF9saW5rX2hhc2hfZW50cnkpOiBBZGQgZ290cGx0X3JlZmNvdW50IHRvIGtlZXAgdHJhY2sKCW9mIEdPVFBMVCByZWZlcmVuY2VzIHRvIGEgZnVuY3Rpb24uCgkobGlua19oYXNoX25ld2Z1bmMpOiBJbml0aWFsaXplIGdvdHBsdF9yZWZjb3VudC4KCShlbGZfczM5MF9jaGVja19yZWxvY3MpOiBNb3ZlIGFsbG9jYXRpb24gb2YgbG9jYWxfZ290X3JlZmNvdW50cyBhcnJheQoJYW5kIGNyZWF0aW9uIG9mIHRoZSBnb3Qgc2VjdGlvbiBvdXQgb2YgdGhlIG1haW4gc3dpdGNoLiBBZGQgc3VwcG9ydAoJZm9yIHRoZSBnb3RvZmYsIGdvdHBsdCBhbmQgcGx0b2ZmIHJlbG9jYXRpb25zLgoJKGVsZl9zMzkwX2djX3N3ZWVwX2hvb2spOiBBZGQgcmVmZXJlbmNlIGNvdW50aW5nIGZvciBnb3RvZmYsIGdvdHBsdAoJYW5kIHBsdG9mZi4KCShlbGZfczM5MF9hZGp1c3RfZ290cGx0KTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9zMzkwX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IEFkanVzdCBnb3RwbHQgcmVmY291bnQgZm9yIHJlbW92ZWQKCXBsdCBlbnRyaWVzLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IEFkZCBjb21tZW50LgoJKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBDaGFuZ2Ugcl90eXBlIHRvIHVuc2lnbmVkLiBBZGQgc3VwcG9ydAoJZm9yIGdvdG9mZiwgZ290cGx0IGFuZCBwbHRvZmYgcmVsb2NhdGlvbnMuCgkqIGVsZjY0LXMzOTAuYzogU2FtZSBjaGFuZ2VzIGFzIGZvciBlbGYzMi1zMzkwLmMuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiByZWxvYy5jOiBBZGQgQkZEX1JFTE9DXzM5MF9HT1RPRkY2NCwgQkZEX1JFTE9DXzM5MF9HT1RQTFQxMiwKCUJGRF9SRUxPQ18zOTBfR09UUExUMTYsIEJGRF9SRUxPQ18zOTBfR09UUExUMzIsIEJGRF9SRUxPQ18zOTBfR09UUExUNjQsCglCRkRfUkVMT0NfMzkwX0dPVFBMVEVOVCwgQkZEX1JFTE9DXzM5MF9QTFRPRkYxNiwgQkZEX1JFTE9DXzM5MF9QTFRPRkYzMgoJYW5kIEJGRF9SRUxPQ18zOTBfUExUT0ZGNjQuCgoyMDAzLTAxLTE4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxvY2F0ZV9zZWN0aW9uKTogSGFuZGxlCglSX0lBNjRfVFBSRUw2NFtMTV1TQiBhZ2FpbnN0IG5vbi1nbG9iYWwgc3ltYm9sIHByb3Blcmx5LgoKMjAwMy0wMS0xNiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKHN0cnVjdCBlbGZOTl9pYTY0X2xpbmtfaGFzaF90YWJsZSk6IEFkZAoJc2VsZl9kdHBtb2RfZG9uZSBhbmQgc2VsZl9kdHBtb2Rfb2Zmc2V0LgoJKGFsbG9jYXRlX2dsb2JhbF9kYXRhX2dvdCk6IE9ubHkgdXNlIG9uZSBnb3QgZW50cnkgZm9yIGFsbAoJZHRwbW9kIHJlbG9jcyBhZ2FpbnN0IGxvY2FsIHN5bWJvbHMuCgkoYWxsb2NhdGVfZHlucmVsX2VudHJpZXMpOiBPbmx5IG5lZWQgLnJlbGEuZ290IGVudHJ5IGZvcgoJZHRwbW9kIGFnYWluc3QgZ2xvYmFsIHN5bWJvbC4KCShlbGZOTl9pYTY0X3NpemVfZHluYW1pY19zZWN0aW9ucyk6IEluaXRpYWxpemUgc2VsZl9kdHBtb2Rfb2Zmc2V0LgoJUmVzZXJ2ZSBzcGFjZSBpbiAucmVsYS5nb3QgZm9yIHRoZSBsb2NhbCBkdHBtb2QgZW50cnkuCgkoc2V0X2dvdF9lbnRyeSk6IEluaXRpYWxpemUgdGhlIGNvbW1vbiBsb2NhbCBkdHBtb2QgLmdvdCBlbnRyeS4KCShlbGZOTl9pYTY0X3JlbG9jYXRlX3NlY3Rpb24pOiBIYW5kbGUgUl9JQV82NF9EVFBSRUw2NExTQgoJYW5kIFJfSUFfNjRfRFRQUkVMNjRNU0IuCgoyMDAzLTAxLTE2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmM6IEluY2x1ZGUgZWxmL3BwYzY0LmggcmF0aGVyIHRoYW4gZWxmL3BwYy5oLgoJKFJfUFBDXyopOiBSZW5hbWUgYWxsIG9jY3VycmVuY2VzIHRvIFJfUFBDNjRfKi4KCShSX1BQQzY0X0FERFIzMCk6IFJlbmFtZSBhbGwgb2NjdXJyZW5jZXMgdG8gUl9QUEM2NF9SRUwzMC4KCShlbnVtIGVsZl9wcGNfcmVsb2NfdHlwZSk6IERpdHRvIHRvIGVudW0gZWxmX3BwYzY0X3JlbG9jX3R5cGUuCgkocHBjNjRfZWxmX2djX3N3ZWVwX2hvb2spOiBIYW5kbGUgUl9QUEM2NF9SRUwzMCBhbG9uZyB3aXRoIG90aGVyCglyZWxhdGl2ZSByZWxvY3MsIG5vdCB3aXRoIGFic29sdXRlIG9uZXMuCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL1NSQy1QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMDEtMTUgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9jaGVja19yZWxvY3MpOiBEb24ndCBzZXQgREZfVEVYVFJFTCBmb3IgYQoJcmVsb2NhdGlvbiBhZ2FpbnN0IGEgbm9uLWFsbG9jYXRlZCByZWFkb25seSBzZWN0aW9uLgoKMjAwMy0wMS0xMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBBZGp1c3QgYWRkZW5kIGZvciBHT1QxNl9IQS4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuICBQTFRHT1QxNl9IQSB0b28uCgoyMDAyLTAxLTA4ICBLbGVlIERpZW5lcyAgPGtkaWVuZXNAYXBwbGUuY29tPgoKCSogTWFrZWZpbGUuYW0gKEFMTF9NQUNISU5FUyk6IFVzZSBjcHUtbXNwNDMwLmxvLCBub3QgY3B1LW1zcDQzMC5jLgoJKEJGRDMyX0JBQ0tFTkRTKTogVXNlIGVsZjMyLW1zcDQzMC5sbywgbm90IGVsZjMyLW1zcDQzMC5jLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMDEtMDggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmbjMyLW1pcHMuYyAocHJldl9yZWxvY19zZWN0aW9uKTogTmV3LgoJKEdFVF9SRUxPQ19BRERFTkQpOiBVc2UgaXQuICBQYXJlbnRoZXNpemUgbWFjcm8gYXJndW1lbnRzLgoJKFNFVF9SRUxPQ19BRERFTkQpOiBQYXJlbnRoZXNpemUgbWFjcm8gYXJndW1lbnQuCgoyMDAzLTAxLTA3ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmUuYW5nbGluQG5yYy5nYy5jYT4KCgkqIGVsZjMyLWhwcGEuYyAoZmluYWxfbGlua19yZWxvY2F0ZSk6IEZvciBhbGwgRFAgcmVsYXRpdmUgcmVsb2NhdGlvbnMsCglhZGp1c3QgYWRkaWwgaW5zdHJ1Y3Rpb25zIGlmIHRoZSBzeW1ib2wgaGFzIG5vIHNlY3Rpb24uCgoyMDAzLTAxLTA3ICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXhzdG9ybXkxNi5jICh4c3Rvcm15MTZfZWxmX2hvd3RvX3RhYmxlKTogTWFrZSBSRUxfMTIgbm90CglwYXJ0aWFsX2lucGxhY2UuCgoyMDAzLTAxLTA3ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogZWxmMzItbTY4ay5jIChlbGZfbTY4a19jaGVja19yZWxvY3MpOiBEb24ndCBzZXQgREZfVEVYVFJFTCBmb3IKCVBDIHJlbGF0aXZlIHJlbG9jYXRpb25zLgoJKGVsZl9tNjhrX2Rpc2NhcmRfY29waWVzKTogU2V0IGl0IGhlcmUgaW5zdGVhZC4KCjIwMDItMDEtMDIgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoJICAgIEplZmYgSm9obnN0b24gIDxqam9obnN0bkByZWRoYXQuY29tPgoKCSogTWFrZWZpbGUuYW0gKEFMTF9NQUNISU5FUyk6IEFkZCBjcHUtaXEyMDAwLmxvLgoJKEFMTF9NQUNISU5FU19DRklMRVMpOiBBZGQgY3B1LWlxMjAwMC5jLgoJKEJGRDMyX0JBQ0tFTkRTKTogQWRkIGVsZjMyLWlxMjAwMC5sby4KCShCRkQzMl9CQUNLRU5EU19DRklMRVMpOiBBZGQgZWxmMzItaXEyMDAwLmMuCgkoY3B1LWlxMjAwMC5sbyk6IE5ldyB0YXJnZXQuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWcuYmZkOiBIYW5kbGUgaXEyMDAwLSotZWxmLgoJKiBhcmNodXJlcy5jIChiZmRfYXJjaGl0ZWN0dXJlKTogQWRkIGJmZF97YXJjaCxtYWNofV9pcTIwMDAuCgkoYmZkX2FyY2h1cmVzX2xpc3QpOiBBZGQgYmZkX2lxMjAwMF9hcmNoLgoJKiBjb25maWd1cmUuaW46IEhhbmRsZSBiZmRfZWxmMzJfaXEyMDAwX3ZlYy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiByZWxvYy5jOiBBZGQgQkZEX1JFTE9DX0lRMjAwMF9PRkZTRVRfMTYsIEJGRF9SRUxPQ19JUTIwMDBfT0ZGU0VUXzIxLAoJYW5kIEJGRF9SRUxPQ19JUTIwMDBfVUhJMTYuCgkqIHRhcmdldHMuYyAoYmZkX2VsZjMyX2lxMjAwMF92ZWMpOiBEZWNsYXJlLgoJKGJmZF90YXJnZXRfdmVjdG9yKTogQWRkIGJmZF9lbGYzMl9pcTIwMDBfdmVjLgoJKiBlbGYuYyAocHJlcF9oZWFkZXJzKTogU2V0IGVfbWFjaGluZSB0byBFTV9JUTIwMDAuCgkqIGNwdS1pcTIwMDAuYzogTmV3IGZpbGUuCgkqIGVsZjMyLWlxMjAwMC5jOiBMaWtld2lzZS4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgkqIGJmZC1pbjIuaDogTGlrZXdpc2UuCgoyMDAzLTAxLTAyICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmM6IEluY2x1ZGUgbGliaWJlcnR5LmguCgkoZWxmX21pcHNfaXNhLCBfYmZkX21pcHNfZWxmX21hY2hfZXh0ZW5kc19wKTogUmVtb3ZlLgoJKG1pcHNfc2V0X2lzYV9mbGFncyk6IE5ldyBmdW5jdGlvbiwgc3BsaXQgb3V0IGZyb20uLi4KCShfYmZkX21pcHNfZWxmX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiAuLi5oZXJlLiAgT25seSBjYWxsCgltaXBzX3NldF9pc2FfZmxhZ3MgaWYgdGhlIEVGX01JUFNfTUFDSCBiaXRzIGFyZSBjbGVhci4KCShtaXBzX21hY2hfZXh0ZW5zaW9ucyk6IE5ldyBhcnJheS4KCShtaXBzXzMyYml0X2ZsYWdzX3ApOiBOZXcgZnVuY3Rpb24uCgkoX2JmZF9taXBzX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogUmV3b3JrIGFyY2hpdGVjdHVyZSBjaGVja3MuCglVc2UgbWlwc18zMmJpdF9mbGFnc19wIHRvIGNoZWNrIGlmIG9uZSBiaW5hcnkgaXMgMzItYml0IGFuZCB0aGUKCW90aGVyIGlzIDY0LWJpdC4gIFdoZW4gYWRvcHRpbmcgSUJGRCdzIGFyY2hpdGVjdHVyZSwgYWRvcHQgdGhlCgliZmRfbWFjaCBhcyB3ZWxsIGFzIHRoZSBmbGFncy4KCjIwMDMtMDEtMDIgIE5pY2sgS2Vsc2V5ICA8bmlja2tAdWJpY29tLmNvbT4KCgkqIGVsZjMyLWlwMmsuYzogUmUtd29yayBvZiBsaW5rZXIgcmVsYXhhdGlvbiBjb2RlIGZvciB0aGUgaXAyayB0bwoJZml4IGludGVybmFsIGVycm9ycywgZml4IGJhZCBjb2RlIGdlbmVyYXRpb24sIGZpeCBpbmNvcnJlY3Qgc3RhYnMKCWluZm9ybWF0aW9uLCBhbmQgaW1wcm92ZSBhYmlsaXR5IHRvIGVsaW1pbmF0ZSByZWR1bmRhbnQgcGFnZQoJaW5zdHJ1Y3Rpb25zLiBBZGRlZCBjb2RlIHRvIGlwMmtfZmluYWxfbGlua19yZWxvY2F0ZSB0byBzZWxmLXZlcmlmeQoJdGhlIGxpbmtlciByZWxheGF0aW9uLiAgRml4IGZvcm1hdHRpbmcgcHJvYmxlbXMuCgoyMDAyLTEyLTMwICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogYW91dHguaCAoTkFNRShhb3V0LG1hY2hpbmVfdHlwZSkpOiBBZGQgYmZkX21hY2hfbWlwc2lzYTMycjIgY2FzZS4KCSogYXJjaHVyZXMuYyAoYmZkX21hY2hfbWlwc2lzYTMycjIpOiBOZXcgZGVmaW5lLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGNwdS1taXBzLmMgKElfbWlwc2lzYTMycjIpOiBOZXcgZW51bSB2YWx1ZS4KCShhcmNoX2luZm9fc3RydWN0KTogQWRkIGVudHJ5IGZvciBJX21pcHNpc2EzMnIyLgoJKiBlbGZ4eC1taXBzLmMgKGVsZl9taXBzX2lzYSwgX2JmZF9lbGZfbWlwc19tYWNoKQoJKF9iZmRfbWlwc19lbGZfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IEhhbmRsZSBFX01JUFNfQVJDSF8zMlIyLgoJKF9iZmRfbWlwc19lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IEFkZAoJYmZkX21hY2hfbWlwc2lzYTMycjIgY2FzZS4KCShfYmZkX21pcHNfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBIYW5kbGUgbWVyZ2luZyBvZgoJYmluYXJpZXMgbWFya2VkIGFzIHVzaW5nIE1JUFMzMiBSZWxlYXNlIDIuCgoyMDAyLTEyLTMwICAgIERtaXRyeSBEaWt5IDxkaXdpbEBtYWlsLnJ1PgoKCSogTWFrZWZpbGUuYW06IEFkZCBtc3A0MzAgdGFyZ2V0LgoJKiBjb25maWd1cmUuaW46IExpa2V3aXNlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBhcmNodXJlcy5jOiBBZGQgbXNwNDMwIGFyY2hpdGVjdHVyZSB2ZWN0b3IuCgkqIGNvbmZpZy5iZmQ6IExpa2V3aXNlLgoJKiByZWxvYy5jOiBBZGQgbXNwNDMwIHJlbG9jcy4KCSogdGFyZ2V0cy5jOiBBZGQgbXNwMzIwIHRhcmdldC4KCSogY3B1LW1zcDQzMC5jOiBOZXcgZmlsZTogbXNwNDMwIGNwdSBkZXRlY3Rpb24uCgkqIGVsZjMyLW1zcDQzMC5jOiBOZXcgZmlsZTogbXNwNDMwIHJlbG9jIHByb2Nlc3NpbmcuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgoyMDAyLTEyLTI4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZi5jIChlbGZfc29ydF9zZWN0aW9ucyk6IERvbid0IHJlb3JkZXIgLnRic3MuCgkoYXNzaWduX2ZpbGVfcG9zaXRpb25zX2Zvcl9zZWdtZW50cyk6IE9ubHkgYWRqdXN0IG9mZi92b2ZmCglmb3IgaW5jcmVhc2VkIGFsaWdubWVudCBpbiBQVF9MT0FEIG9yIFBUX05PVEUgc2VnbWVudCwKCWJ1dCBhZGp1c3QgcF9maWxlc3ogZm9yIC50YnNzIHRvby4gIGluIFBUX0xPQUQgY29uc2lkZXIKCS50YnNzIHRvIGhhdmUgemVybyBtZW1vcnkgc2l6ZS4KCShjb3B5X3ByaXZhdGVfYmZkX2RhdGEpIFtTRUNUSU9OX1NJWkVdOiBEZWZpbmUuCglbSVNfQ09OVEFJTkVEX0JZX1ZNQSwgSVNfQ09OVEFJTkVEX0JZX0xNQV06IFVzZSBpdC4KCVtJTkNMVURFX1NFQ1RJT05fSU5fU0VHTUVOVF06IE9ubHkgcHV0IFNIRl9UTFMgc2VjdGlvbnMKCWludG8gUFRfVExTIHNlZ21lbnQuICBOZXZlciBwdXQgU0hGX1RMUyBzZWN0aW9ucyBpbgoJc2VnbWVudHMgb3RoZXIgdGhhbiBQVF9UTFMgb3IgUFRfTE9BRC4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogQ2xlYXIgLnBsdAoJc2hfZW50c2l6ZS4KCjIwMDItMTItMjMgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogY29mZjY0LXJzNjAwMC5jICh4Y29mZjY0X3BwY19yZWxvY2F0ZV9zZWN0aW9uKTogRml4IGxvZ2ljIHJldmVyc2FsLgoKMjAwMi0xMi0yMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfb3V0cHV0X2V4dHN5bSk6IEhlZWQgc3RyaXBfZGlzY2FyZGVkLgoKMjAwMi0xMi0yMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGFyY2h1cmVzLmMgKGJmZF9hcmNoX2dldF9jb21wYXRpYmxlKTogQWRkIHRoaXJkIHBhcmFtZXRlcgoJJ2FjY2VwdF91bmtub3ducycuICBPbmx5IGFjY2VwdCB1bmtub3duIGZvcm1hdCBCRkRzIGlmCglhY2NlcHRfdW5rbm93bnMgaXMgdHJ1ZSwgb3IgaWYgdGhlIGZvcm1hdCBpcyAiYmluYXJ5Ii4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMi0xMi0yMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvZmYtYXJtLmMgKGNvZmZfYXJtX3JlbG9jYXRlX3NlY3Rpb24pOiBEaXNhYmxlIFdJTkNFIHdvcmthcm91bmQKCXRoYXQgc3VidHJhY3RlZCA4IGZyb20gcGMgcmVsYXRpdmUgcmVsb2NhdGlvbnMuCgoyMDAyLTEyLTIwICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY29mZi1oODMwMC5jOiBGaXggY29tbWVudCB0eXBvcy4KCSogY29mZmNvZGUuaDogTGlrZXdpc2UuCgkqIGNwdS1jcmlzLmM6IExpa2V3aXNlLgoJKiBlbGYzMi12YXguYzogTGlrZXdpc2UuCgkqIGdlbmxpbmsuaDogTGlrZXdpc2UuCgkqIGxpbmtlci5jOiBMaWtld2lzZS4KCSogc29tLmM6IExpa2V3aXNlLgoJKiB0ZWtoZXguYzogTGlrZXdpc2UuCgkqIHZtcy1taXNjLmM6IExpa2V3aXNlLgoKMjAwMi0xMi0yMCAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiByZWxvYy5jOiBBZGQgQkZEX1JFTE9DX1hTVE9STVkxNl8xMi4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogZWxmMzIteHN0b3JteTE2LmMgKHhzdG9ybXkxNl9lbGZfaG93dG8pOiBBZGQgUl9YU1RPUk1ZMTZfMTIuCgkoeHN0b3JteTE2X3JlbG9jX21hcCk6IEFkZCBSX1hTVE9STVkxNl8xMi4KCjIwMDItMTItMTkgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBkb2MvYmZkaW50LnRleGk6IEZpeCB0eXBvcy4KCjIwMDItMTItMjAgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QHR3aW5zdW4uY29tPgoKCVBvcnQgdG8gUE9TSVggMTAwMy4xLTIwMDEuCgkqIGFjaW5jbHVkZS5tNCAoQU1fSU5TVEFMTF9MSUJCRkQpOiBEbyBub3QgcmVseSBvbiAidGVzdCAtbyIuCgkqIGNvbmZpZ3VyZS5pbiAoYnVpbGQtd2FybmluZ3MpOiBMaWtld2lzZS4KCShIb3JyaWJsZSBoYWNrcyB0byBidWlsZCBETExzIG9uIFdpbmRvd3MpOiBEbyBub3QgcmVseSBvbiAidGFpbCAtMSIuCgkqIGFjbG9jYWwubTQ6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0xMi0xOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvZmYtaDgzMDAuYzogSW5jbHVkZSBsaWJpYmVydHkuaC4KCShoODMwMF9yZWxvYzE2X2V4dHJhX2Nhc2VzKTogQ2hlY2sgdGhlIGhhc2ggdGFibGUgY3JlYXRvciBiZWZvcmUKCXJlZmVyZW5jaW5nIGg4MzAwIHNwZWNpZmljIGZpZWxkcy4gIFN0YXNoIHRoZSBoYXNoIHRhYmxlIHBvaW50ZXIKCWluIGEgbG9jYWwgdmFyLiAgQ29tbWVudCB0eXBvIGZpeGVzLgoJKGg4MzAwX2JmZF9saW5rX2FkZF9zeW1ib2xzKTogTGlrZXdpc2UuCgoJKiByZWxvYy5jIChzdHJ1Y3QgcmVsb2NfaG93dG9fc3RydWN0KTogUmV2aXNlIHNyY19tYXNrIGFuZAoJZHN0X21hc2sgY29tbWVudHMuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDItMTItMTggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogUmVvcmdhbml6ZSBkeW5hbWljIHJlbG9jCgljb2RlIGEgbGl0dGxlLiAgQ29tbWVudCBvbiBkeW5hbWljIHJlbG9jcyBhZ2FpbnN0IHNlY3Rpb24gc3ltYm9scy4KCjIwMDItMTItMTcgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogY29uZmlndXJlLmhvc3QgKGlhNjQtKi1ocHV4Kik6IFN1cHBvcnQgNjQgYml0IHRhcmdldHMgdXNpbmcKCXRoZSBIUCBjb21waWxlcidzICJsb25nIGxvbmciLgoKMjAwMi0xMi0xNiAgQW5kcmV3IE1hY0xlb2QgIDxhbWFjbGVvZEByZWRoYXQuY29tPgoKCSogZWxmMzIteHN0b3JteTE2LmMgKHhzdG9ybXkxNl9lbGZfaG93dG8pOiBBZGQgUl9YU1RPUk1ZMTZfTE8xNgoJYW5kIFJfWFNUT1JNWTE2X0hJMTYpIGhvd3RvIGVudHJpZXMuCgkoeHN0b3JteTE2X3JlbG9jX21hcCk6IE1hcCBSX1hTVE9STVkxNl97TE8sSEl9MTYgdG8gQkZEX1JFTE9DX3tMTyxISX0xNi4KCSh4c3Rvcm15MTZfaW5mb190b19ob3d0b19yZWxhKTogVXNlIFJfWFNUT1JNWTE2X0dOVV9WVElOSEVSSVQgdG8KCWRldGVybWluZSB0aGUgc3RhcnQgb2YgdGhlIHNlY29uZCByZWxvYyB0YWJsZS4KCjIwMDItMTItMTYgIE5hdGhhbiBUYWxsZW50ICA8ZXJheHhvbkBhbHVtbmkucmljZS5lZHU+CgoJKiBlY29mZmxpbmsuYzogRml4IHRoZSByZWFkaW5nIG9mIHRoZSBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24KCW9mIFRydTY0L0FscGhhIGJpbmFyaWVzIHRoYXQgYXJlIHByb2R1Y2VkIGJ5IHJlY2VudCBDb21wYXEKCWNvbXBpbGVycy4KCShta19mZHJ0YWIpOiBGaXggZXJyb3IgaW4gY3JlYXRpbmcgdGhlIEZEUiAoZmlsZSBkZXNjcmlwdG9yKQoJdGFibGUuCgkobG9va3VwX2xpbmUpOiBCZWNhdXNlIG9mIHRoZSBzdHJhbmdlIGluZm9ybWF0aW9uIHNvbWV0aW1lcwoJZ2VuZXJhdGVkIGJ5IENvbXBhcSdzIHJlY2VudCBjb21waWxlcnMsIGNoYW5nZSBob3cgdGhlIEZEUgoJdGFibGUgaXMgc2VhcmNoZWQgc28gdGhhdCBQRFJzIChwcm9jZWR1cmUgZGVzY3JpcHRvcnMpIGFyZQoJY29ycmVjdGx5IGZvdW5kLiAgTm90ZSB0aGF0IHRoaXMgY2hhbmdlIGlzIHJlYWxseSBtb3JlIG9mIGEgaGFjazsKCWhvd2V2ZXIsIEkgaGF2ZSBpbmNsdWRlZCBleHRlbnNpdmUgZG9jdW1lbnRhdGlvbiBhcyB0byB3aHkKCXRoaXMgaXMgdGhlIGJlc3Qgc29sdXRpb24gc2hvcnQgb2YgYW4gZXh0ZW5zaXZlIHJld3JpdGUgb3IKCWFub3RoZXIgaGFjay4KCShmZHJ0YWJfbG9va3VwKTogQWRkIGNvbW1lbnRzIHRvIGV4cGxhaW4gdGhlIGFsZ29yaXRobS4KCjIwMDItMTItMTIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmLW0xMDMwMC5jIChlbGYzMl9tbjEwMzAwX2xpbmtfaGFzaF9uZXdmdW5jKTogUmVvcmRlcgoJaW5pdGlhbGl6ZXJzIHRvIG1hdGNoIHN0cnVjdCBkZWNsYXJhdGlvbi4KCjIwMDItMTItMTIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkd2FyZjIuYyAoY29tcF91bml0X2NvbnRhaW5zX2FkZHJlc3MpOiBDb21tZW50IHR5cG8gZml4LgoJKiBlbGYuYyAoZ2V0X3Byb2dyYW1faGVhZGVyX3NpemUpOiBMaWtld2lzZS4KCSogZWxmMzItbTMyci5jIChtMzJyX2VsZl9sbzE2X3JlbG9jKTogTGlrZXdpc2UuCgkobTMycl9lbGZfZ2VuZXJpY19yZWxvYyk6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9ob3d0b19pbml0KTogTGlrZXdpc2UuCgkqIGVsZmxpbmsuaCAoZWxmX2JmZF9kaXNjYXJkX2luZm8pOiBMaWtld2lzZS4KCjIwMDItMTItMTIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogQWRkIG91dHB1dF9vZmZzZXQKCXRvIERUX0pNUFJFTC4gIFVzZSBzcmVscGx0IGlucHV0IHNlY3Rpb24gc2l6ZSBmb3IgRFRfUExUUkVMU1ogYW5kCglEVF9SRUxTWiBhZGp1c3RtZW50LCBub3Qgb3V0cHV0IHNlY3Rpb24uICBBdm9pZCB3cml0aW5nIHRhZ3Mgd2hlbgoJdW5jaGFuZ2VkLiAgRG9uJ3QgYXNzdW1lIGxpbmtlciBzY3JpcHQgaXMgc2FuZSwgYWRqdXN0IERUX1JFTCB0b28uCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IEp1c3QgdXNlIHJhdwoJc2l6ZSBvZiBzcmVscGx0IGZvciBEVF9QTFRSRUxTWi4gIFVzZSBzcmVscGx0IGlucHV0IHNlY3Rpb24gc2l6ZSBmb3IKCURUX1JFTEFTWiBhZGp1c3RtZW50LCBub3Qgb3V0cHV0IHNlY3Rpb24uICBBdm9pZCB3cml0aW5nIHRhZ3Mgd2hlbgoJdW5jaGFuZ2VkLiAgQWRqdXN0IERUX1JFTEEuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBUd2Vha3MgZm9yIGJldHRlcgoJZm9ybWF0dGluZy4gIEF2b2lkIHdyaXRpbmcgdGFncyB3aGVuIHVuY2hhbmdlZC4gIEFkanVzdCBEVF9SRUxBLgoKMjAwMi0xMi0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogRG9uJ3QgZGl2aWRlCglhZGRlbmQgYnkgNC4KCjIwMDItMTItMTIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChzdHJ1Y3QgbWlwc19nb3RfZW50cnkpOiBOZXcuCgkoc3RydWN0IG1pcHNfZ290X2luZm8pOiBBZGRlZCBnb3RfZW50cmllcyBmaWVsZC4KCShtaXBzX2VsZl9nb3RfZW50cnlfaGFzaCwgbWlwc19lbGZfZ290X2VudHJ5X2VxKTogTmV3IGZ1bmN0aW9ucy4KCShtaXBzX2VsZl9sb2NhbF9nb3RfaW5kZXgsIG1pcHNfZWxmX2dvdF9wYWdlLAoJbWlwc19lbGZfZ290MTZfZW50cnkpOiBSZS1pbXBsZW1lbnQgaW4gdGVybXMgb2YgbmV3Li4uCgkobWlwc19lbGZfY3JlYXRlX2xvY2FsX2dvdF9lbnRyeSk6IFJld3JpdGUgdG8gdXNlIGdvdF9lbnRyaWVzLgoJQ2hhbmdlIHJldHVybiB0eXBlLgoJKG1pcHNfZWxmX2hpZ2hlc3QpOiBXYXJuaW5nIGNsZWFuLXVwLgoJKG1pcHNfZWxmX2NyZWF0ZV9nb3Rfc2VjdGlvbik6IEluaXRpYWxpemUgZ290X2VudHJpZXMuCgkoX2JmZF9taXBzX2VsZl9jaGVja19yZWxvY3MpOiBVc2UgZ290X2VudHJpZXMgdG8gZXN0aW1hdGUKCWxvY2FsIGdvdCBzaXplLgoJKF9iZmRfbWlwc19lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogRG8gbm90IGFjY291bnQgZm9yCglHT1RfUEFHRSBlbnRyaWVzLCBzaW5jZSB3ZSBub3cgcmV1c2UgR09UMTYgZW50cmllcy4KCjIwMDItMTItMTAgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBhb3V0eC5oIChzZXRfc2VjdGlvbl9jb250ZW50cyk6IEFsbG93IGFuIG90aGVyd2lzZSB1bnJlcHJlc2VudGFibGUKCXJlYWQtb25seSBzZWN0aW9uIHRoYXQgbGllcyBhZnRlciAudGV4dCBhbmQgYmVmb3JlIC5kYXRhIHRvIGJlCgl3cml0dGVuIGludG8gdGhlIG91dHB1dCBmaWxlIGFuZCBpbmNsdWRlZCBpbiBhX3RleHQuCgkodHJhbnNsYXRlX3RvX25hdGl2ZV9zeW1fZmxhZ3MpOiBJZiBhbiBvdGhlcndpc2UgdW5yZXByZXNlbnRhYmxlCglzZWN0aW9uIHdhcyBtZXJnZWQgd2l0aCAudGV4dCwgY29udmVydCBpdHMgc3ltYm9scyB0byBOX1RFWFQKCXN5bWJvbHMuCgkqIGxpYmFvdXQuaCAoYW91dF9zZWN0aW9uX21lcmdlX3dpdGhfdGV4dF9wKTogTmV3IG1hY3JvLgoKMjAwMi0xMi0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGJmZC1pbi5oOiBDb21tZW50IHR5cG8gZml4LiAgRm9ybWF0dGluZy4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBjb2ZmNjQtcnM2MDAwLmMgKHhjb2ZmNjRfb3BlbnJfbmV4dF9hcmNoaXZlZF9maWxlKTogV2FybmluZyBmaXguCgkqIGVsZjMyLW02OGhjMTIuYyAobTY4aGMxMl9lbGZfc2V0X21hY2hfZnJvbV9mbGFncyk6IFByb3RvdHlwZS4KCSogZWxmNjQtbW1peC5jIChtbWl4X2R1bXBfYnBvX2dyZWdzKTogV2FybmluZyBmaXguCgoyMDAyLTEyLTA1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbGF4X3NlY3Rpb24pOiBIYW5kbGUgUENSRUwyMUJJLgoJT25seSBzZW5kIFBDUkVMMjFCIHRob3VnaCB0aGUgcGx0LiAgRml4IGluc3RhbGxlZCByZWxvYyB0eXBlLgoJKGVsZk5OX2lhNjRfcmVsb2NhdGVfc2VjdGlvbik6IEdpdmUgZXJyb3IgZm9yIGR5bmFtaWMgcmVsb2MKCWFnYWluc3QgUENSRUwyMiBvciBQQ1JFTDY0STsgY2xlYW4gdXAgZXJyb3IgbWVzc2FnZXMgZm9yCglicmFuY2ggcmVsb2NzLgoKMjAwMi0xMi0wNCAgS2V2aW4gQnVldHRuZXIgIDxrZXZpbmJAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LW1pcHMuYyAoZWxmNjRfbWlwc19ncm9rX3Byc3RhdHVzLCBlbGY2NF9taXBzX2dyb2tfcHNpbmZvKToKCU5ldyBmdW5jdGlvbnMuCgkoZWxmX2JhY2tlbmRfZ3Jva19wcnN0YXR1cywgZWxmX2JhY2tlbmRfZ3Jva19wc2luZm8pOiBEZWZpbmUuCgoyMDAyLTEyLTA0ICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KCgkqIGNwdS1pYTY0LW9wYy5jOiBBZGQgb3BlcmFuZCBjb25zdGFudCAiYXIuY3NkIi4KCjIwMDItMTItMDQgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmeHgtaWE2NC5jIChnZXRfbG9jYWxfc3ltX2hhc2gpOiBVc2Ugc2VjdGlvbiBJRCBpbnN0ZWFkIG9mCglCRkQgYWRkcmVzcyB3aGVuIGNvbnN0cnVjdGluZyBsb2NhbCBuYW1lLgoKMjAwMi0xMi0wNCAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIGVsZjMyLW02OGsuYyAoc3RydWN0IGVsZl9tNjhrX2xpbmtfaGFzaF90YWJsZSk6IEFkZCBzeW1fc2VjCgltZW1iZXIuCgkoZWxmX202OGtfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IEluaXRpYWxpemUgaXQuCgkoZWxmX202OGtfY2hlY2tfcmVsb2NzKTogSGFuZGxlIHN5bWJvbHMgdGhhdCBhcmUgZm9yY2VkIHRvIGJlCglsb2NhbCBkdWUgdG8gdmlzaWJpbGl0eSBjaGFuZ2VzLgoJKGVsZl9tNjhrX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKGVsZl9tNjhrX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKGVsZl9tNjhrX2Rpc2NhcmRfY29waWVzKTogTGlrZXdpc2UuCgkoZWxmX202OGtfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMi0xMi0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfZWRpdF9vcGQpOiBDb3JyZWN0IHR5cG8uCgoyMDAyLTEyLTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogc3JlYy5jIChzcmVjX3dyaXRlX3N5bWJvbHMpOiBSZXN0b3JlICckJyBwcmVmaXggdG8gYWRkcmVzcwoJYWNjaWRlbnRhbGx5IHJlbW92ZWQgaW4gMjAwMi0wNC0wNCBjaGFuZ2UuCgkoc3JlY19nZXRfc3ltdGFiKTogVXNlIDAgaW5zdGVhZCBvZiBgKGxvbmcpIEZBTFNFJy4KCjIwMDItMTItMDMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1wcGMuYyAoYXB1aW5mb19saXN0X2luaXQpOiBOZXcgZnVuY3Rpb24uCgkoYXB1aW5mb19saXN0X2FkZCk6IE5ldyBmdW5jdGlvbjogQWRkIGEgdmFsdWUgdG8gdGhlIGxpc3QuCgkoYXB1aW5mb19saXN0X2xlbmd0aCk6IE5ldyBmdW5jdGlvbjogUmV0dXJuIHRoZSBudW1iZXIgb2YKCXZhbHVlcyBvbiB0aGUgbGlzdC4KCShhcHVpbmZvX2xpc3RfZWxlbWVudCk6IE5ldyBmdW5jdGlvbjogUmV0dXJuIGEgdmFsdWUgb24gdGhlCglsaXN0LgoJKGFwdWluZm9fbGlzdF9maW5pc2gpOiBOZXcgZnVuY3Rpb246IEZyZWUgdGhlIHJlc291cmNlcyB1c2VkCglieSB0aGUgbGlzdC4KCShwcGNfZWxmX2JlZ2luX3dyaXRlX3Byb2Nlc3NpbmcpOiBOZXcgZnVuY3Rpb24uICBTY2FuIHRoZQoJaW5wdXQgYmZkcyBmb3IgYXB1aW5mbyBzZWN0aW9ucy4KCShwcGNfZWxmX3dyaXRlX3NlY3Rpb24pOiBOZXcgZnVuY3Rpb246IERlbGF5IHRoZSBjcmVhdGlvbiBvZgoJdGhlIGNvbnRlbnRzIG9mIGFuIGFwdWluZm8gc2VjdGlvbiBpbiBhbiBvdXRwdXQgYmZkLgoJKHBwY19lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IE5ldyBmdW5jdGlvbi4gIENyZWF0ZSB0aGUKCWNvbnRlbnRzIG9mIGFuIGFwdWluZm8gc2VjdGlvbiBpbiBhbiBvdXRwdXQgYmZkLgoJKGVsZl9iYWNrZW5kX2JlZ2luX3dyaXRlX3Byb2Nlc3NpbmcpOiBEZWZpbmUuCgkoZWxmX2JhY2tlbmRfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IERlZmluZS4KCShlbGZfYmFja2VuZF93cml0ZV9zZWN0aW9uKTogRGVmaW5lLgoKMjAwMi0xMi0wMyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNwdS1pYTY0LW9wYy5jIChlbGY2NF9pYTY0X29wZXJhbmRzKTogQWRkIGxkeG1vdiBlbnRyeS4KCjIwMDItMTItMDEgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCUZpeCBQUiBzYXZhbm5haC8xNDE3OgoJKiBlbGYzMi1tNjhoYzExLmMgKG02OGhjMTFfZWxmX3JlbGF4X2RlbGV0ZV9ieXRlcyk6IERvbid0IGFkanVzdAoJYnJhbmNoIGlmIGl0IGdvZXMgdG8gdGhlIHN0YXJ0IG9mIHRoZSBkZWxldGVkIHJlZ2lvbi4KCjIwMDItMTItMDEgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogYmZkLWluMi5oIChiZmRfbWFjaF9tNjgxMik6IFJlYnVpbGQuCgkqIGFyY2h1cmVzLmMgKGJmZF9tYWNoX202ODEyX2RlZmF1bHQsIGJmZF9tYWNoX202ODEyLAoJYmZkX21hY2hfbTY4MTJzKTogRGVjbGFyZS4KCgkqIGVsZjMyLW02OGhjMTIuYyAobTY4aGMxMl9lbGZfc2V0X21hY2hfZnJvbV9mbGFncyk6IE5ldyBmdW5jdGlvbi4KCShfYmZkX202OGhjMTJfZWxmX3NldF9wcml2YXRlX2ZsYWdzKTogQ2FsbCBpdC4KCShfYmZkX202OGhjMTJfZWxmX3ByaW50X3ByaXZhdGVfYmZkX2RhdGEpOiBSZXBvcnQgcHJvY2Vzc29yIHZlcnNpb24uCgkoX2JmZF9tNjhoYzEyX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogTWVyZ2UgdGhlIGZsYWdzIGFuZAoJcmVwb3J0IG1pY3JvY29udHJvbGxlciBpbmNvbXBhdGliaWxpdGllcyAoSEMxMiB2cyBIQ1MxMikuCgkoZWxmX2JhY2tlbmRfb2JqZWN0X3ApOiBVcGRhdGUuCgoyMDAyLTExLTMwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYmZkLWluLmggKFRSVUVfRkFMU0VfQUxSRUFEWV9ERUZJTkVELCBCRkRfVFJVRV9GQUxTRSk6IERlbGV0ZS4KCShlbnVtIGJmZF9ib29sZWFuLCBib29sZWFuKTogRGVsZXRlLgoJKGJmZF9ib29sZWFuKTogVHlwZWRlZiB0byBhbiBpbnQuCgkoRkFMU0UsIFRSVUUpOiBEZWZpbmUuCgkqIGFpeDM4Ni1jb3JlLmMsIGFpeDVwcGMtY29yZS5jLCBhb3V0LWFkb2JlLmMsIGFvdXQtYXJtLmMsIGFvdXQtY3Jpcy5jLAoJYW91dC1lbmNhcC5jLCBhb3V0LW5zMzJrLmMsIGFvdXQtdGFyZ2V0LmgsIGFvdXQtdGljMzAuYywgYW91dGYxLmgsCglhb3V0eC5oLCBhcmNoaXZlLmMsIGFyY2hpdmU2NC5jLCBhcmNodXJlcy5jLCBiZmQtaW4uaCwgYmZkLmMsIGJmZHdpbi5jLAoJYmluYXJ5LmMsIGJvdXQuYywgY2FjaGUuYywgY2lzY28tY29yZS5jLCBjb2ZmLWEyOWsuYywgY29mZi1hbHBoYS5jLAoJY29mZi1hcG9sbG8uYywgY29mZi1hcm0uYywgY29mZi1hdXguYywgY29mZi1oODMwMC5jLCBjb2ZmLWg4NTAwLmMsCgljb2ZmLWkzODYuYywgY29mZi1pODYwLmMsIGNvZmYtaTk2MC5jLCBjb2ZmLWlhNjQuYywgY29mZi1tNjhrLmMsCgljb2ZmLW04OGsuYywgY29mZi1tY29yZS5jLCBjb2ZmLW1pcHMuYywgY29mZi1vcjMyLmMsIGNvZmYtcHBjLmMsCgljb2ZmLXJzNjAwMC5jLCBjb2ZmLXNoLmMsIGNvZmYtc3BhcmMuYywgY29mZi1zdGdvMzIuYywgY29mZi10aWMzMC5jLAoJY29mZi10aWM0eC5jLCBjb2ZmLXRpYzU0eC5jLCBjb2ZmLXRpYzgwLmMsIGNvZmYtdzY1LmMsIGNvZmYtd2UzMmsuYywKCWNvZmYtejhrLmMsIGNvZmY2NC1yczYwMDAuYywgY29mZmNvZGUuaCwgY29mZmdlbi5jLCBjb2ZmbGluay5jLAoJY29yZWZpbGUuYywgY3B1LWEyOWsuYywgY3B1LWFscGhhLmMsIGNwdS1hcmMuYywgY3B1LWFybS5jLCBjcHUtYXZyLmMsCgljcHUtY3Jpcy5jLCBjcHUtZDEwdi5jLCBjcHUtZDMwdi5jLCBjcHUtZGx4LmMsIGNwdS1mcjMwLmMsIGNwdS1mcnYuYywKCWNwdS1oODMwMC5jLCBjcHUtaDg1MDAuYywgY3B1LWhwcGEuYywgY3B1LWkzNzAuYywgY3B1LWkzODYuYywKCWNwdS1pODYwLmMsIGNwdS1pOTYwLmMsIGNwdS1pYTY0LmMsIGNwdS1pcDJrLmMsIGNwdS1tMTAyMDAuYywKCWNwdS1tMTAzMDAuYywgY3B1LW0zMnIuYywgY3B1LW02OGhjMTEuYywgY3B1LW02OGhjMTIuYywgY3B1LW02OGsuYywKCWNwdS1tODhrLmMsIGNwdS1tY29yZS5jLCBjcHUtbWlwcy5jLCBjcHUtbW1peC5jLCBjcHUtbnMzMmsuYywKCWNwdS1vcGVucmlzYy5jLCBjcHUtb3IzMi5jLCBjcHUtcGRwMTEuYywgY3B1LXBqLmMsIGNwdS1wb3dlcnBjLmMsCgljcHUtcnM2MDAwLmMsIGNwdS1zMzkwLmMsIGNwdS1zaC5jLCBjcHUtc3BhcmMuYywgY3B1LXRpYzMwLmMsCgljcHUtdGljNHguYywgY3B1LXRpYzU0eC5jLCBjcHUtdGljODAuYywgY3B1LXY4NTAuYywgY3B1LXZheC5jLAoJY3B1LXc2NS5jLCBjcHUtd2UzMmsuYywgY3B1LXhzdG9ybXkxNi5jLCBjcHUtejhrLmMsIGR3YXJmMS5jLAoJZHdhcmYyLmMsIGVjb2ZmLmMsIGVjb2ZmbGluay5jLCBlZmktYXBwLWlhMzIuYywgZWZpLWFwcC1pYTY0LmMsCgllbGYtYmZkLmgsIGVsZi1laC1mcmFtZS5jLCBlbGYtaHBwYS5oLCBlbGYtbTEwMjAwLmMsIGVsZi1tMTAzMDAuYywKCWVsZi1zdHJ0YWIuYywgZWxmLmMsIGVsZjMyLWFyYy5jLCBlbGYzMi1hcm0uaCwgZWxmMzItYXZyLmMsCgllbGYzMi1jcmlzLmMsIGVsZjMyLWQxMHYuYywgZWxmMzItZDMwdi5jLCBlbGYzMi1kbHguYywgZWxmMzItZnIzMC5jLAoJZWxmMzItZnJ2LmMsIGVsZjMyLWdlbi5jLCBlbGYzMi1oODMwMC5jLCBlbGYzMi1ocHBhLmMsIGVsZjMyLWhwcGEuaCwKCWVsZjMyLWkzNzAuYywgZWxmMzItaTM4Ni5jLCBlbGYzMi1pODYwLmMsIGVsZjMyLWk5NjAuYywgZWxmMzItaXAyay5jLAoJZWxmMzItbTMyci5jLCBlbGYzMi1tNjhoYzExLmMsIGVsZjMyLW02OGhjMTIuYywgZWxmMzItbTY4ay5jLAoJZWxmMzItbWNvcmUuYywgZWxmMzItbWlwcy5jLCBlbGYzMi1vcGVucmlzYy5jLCBlbGYzMi1vcjMyLmMsCgllbGYzMi1wai5jLCBlbGYzMi1wcGMuYywgZWxmMzItczM5MC5jLCBlbGYzMi1zaC5jLCBlbGYzMi1zaDY0LWNvbS5jLAoJZWxmMzItc2g2NC5jLCBlbGYzMi1zcGFyYy5jLCBlbGYzMi12ODUwLmMsIGVsZjMyLXZheC5jLAoJZWxmMzIteHN0b3JteTE2LmMsIGVsZjY0LWFscGhhLmMsIGVsZjY0LWdlbi5jLCBlbGY2NC1ocHBhLmMsCgllbGY2NC1taXBzLmMsIGVsZjY0LW1taXguYywgZWxmNjQtcHBjLmMsIGVsZjY0LXBwYy5oLCBlbGY2NC1zMzkwLmMsCgllbGY2NC1zaDY0LmMsIGVsZjY0LXNwYXJjLmMsIGVsZjY0LXg4Ni02NC5jLCBlbGZhcm0tbmFiaS5jLAoJZWxmYXJtLW9hYmkuYywgZWxmY29kZS5oLCBlbGZjb3JlLmgsIGVsZmxpbmsuYywgZWxmbGluay5oLAoJZWxmbjMyLW1pcHMuYywgZWxmeHgtaWE2NC5jLCBlbGZ4eC1taXBzLmMsIGVsZnh4LW1pcHMuaCwKCWVsZnh4LXRhcmdldC5oLCBmb3JtYXQuYywgZnJlZWJzZC5oLCBnZW5saW5rLmgsIGhhc2guYywgaHAzMDBocHV4LmMsCglocHBhYnNkLWNvcmUuYywgaHB1eC1jb3JlLmMsIGkzODZhb3V0LmMsIGkzODZsaW51eC5jLCBpMzg2bHlueC5jLAoJaTM4Nm1hY2gzLmMsIGkzODZtc2Rvcy5jLCBpMzg2b3M5ay5jLCBpZWVlLmMsIGloZXguYywgaXJpeC1jb3JlLmMsCglsaWJhb3V0LmgsIGxpYmJmZC1pbi5oLCBsaWJiZmQuYywgbGliY29mZi1pbi5oLCBsaWJlY29mZi5oLCBsaWJpZWVlLmgsCglsaWJubG0uaCwgbGlib2FzeXMuaCwgbGlicGVpLmgsIGxpYnhjb2ZmLmgsIGxpbmtlci5jLCBseW54LWNvcmUuYywKCW02OGtsaW51eC5jLCBtNjhrbHlueC5jLCBtYWNoLW8uYywgbWFjaC1vLmgsIG1lcmdlLmMsIG1pcHNic2QuYywKCW1tby5jLCBuZXRic2QtY29yZS5jLCBuZXRic2QuaCwgbmxtLmMsIG5sbTMyLWFscGhhLmMsIG5sbTMyLWkzODYuYywKCW5sbTMyLXBwYy5jLCBubG0zMi1zcGFyYy5jLCBubG1jb2RlLmgsIG9hc3lzLmMsIG9wbmNscy5jLCBvc2YtY29yZS5jLAoJcGM1MzItbWFjaC5jLCBwZHAxMS5jLCBwZS1hcm0uYywgcGUtaTM4Ni5jLCBwZS1tY29yZS5jLCBwZS1taXBzLmMsCglwZS1zaC5jLCBwZVhYaWdlbi5jLCBwZWYuYywgcGVpLWFybS5jLCBwZWktaTM4Ni5jLCBwZWktbWNvcmUuYywKCXBlaS1taXBzLmMsIHBlaS1zaC5jLCBwZWljb2RlLmgsIHBwY2Jvb3QuYywgcHRyYWNlLWNvcmUuYywgcmVsb2MuYywKCXJlbG9jMTYuYywgcmlzY2l4LmMsIHJzNjAwMC1jb3JlLmMsIHNjbzUtY29yZS5jLCBzZWN0aW9uLmMsIHNpbXBsZS5jLAoJc29tLmMsIHNvbS5oLCBzcGFyY2xpbnV4LmMsIHNwYXJjbHlueC5jLCBzcmVjLmMsIHN0YWJzLmMsIHN1bm9zLmMsCglzeW1zLmMsIHRhcmdldHMuYywgdGVraGV4LmMsIHRpY29mZi5oLCB0cmFkLWNvcmUuYywgdmVyc2Fkb3MuYywKCXZtcy1nc2QuYywgdm1zLWhkci5jLCB2bXMtbWlzYy5jLCB2bXMtdGlyLmMsIHZtcy5jLCB2bXMuaCwKCXhjb2ZmLXRhcmdldC5oLCB4Y29mZmxpbmsuYywgeHN5bS5jLCB4c3ltLmg6IFJlcGxhY2UgYm9vbGVhbiB3aXRoCgliZmRfYm9vbGVhbiwgdHJ1ZSB3aXRoIFRSVUUsIGZhbHNlIHdpdGggRkFMU0UuICBTaW1wbGlmeSBjb21wYXJpc29ucwoJb2YgYmZkX2Jvb2xlYW4gdmFycyB3aXRoIFRSVUUvRkFMU0UuICBGb3JtYXR0aW5nLgoJKiBiZmQtaW4yLmgsIGxpYmJmZC5oLCBsaWJjb2ZmLmg6IFJlZ2VuZXJhdGUKCjIwMDItMTEtMjggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYtYmZkLmg6IFJlcGxhY2Ugb2NjdXJyZW5jZXMgb2YgRWxmMzJfSW50ZXJuYWxfKiBhbmQKCUVsZjY0X0ludGVybmFsXyogd2l0aCBFbGZfSW50ZXJuYWxfKi4gIFJlcGxhY2UgRWxmX0ludGVybmFsX1JlbAoJd2l0aCBFbGZfSW50ZXJuYWxfUmVsYS4KCSogZWxmLWhwcGEuaCwgZWxmLW0xMDIwMC5jLCBlbGYtbTEwMzAwLmMsIGVsZjMyLWFyYy5jLCBlbGYzMi1hcm0uaCwKCWVsZjMyLWF2ci5jLCBlbGYzMi1jcmlzLmMsIGVsZjMyLWQxMHYuYywgZWxmMzItZDMwdi5jLCBlbGYzMi1kbHguYywKCWVsZjMyLWZyMzAuYywgZWxmMzItZnJ2LmMsIGVsZjMyLWdlbi5jLCBlbGYzMi1oODMwMC5jLCBlbGYzMi1ocHBhLmMsCgllbGYzMi1pMzcwLmMsIGVsZjMyLWkzODYuYywgZWxmMzItaTg2MC5jLCBlbGYzMi1pOTYwLmMsIGVsZjMyLWlwMmsuYywKCWVsZjMyLW0zMnIuYywgZWxmMzItbTY4aGMxMS5jLCBlbGYzMi1tNjhoYzEyLmMsIGVsZjMyLW02OGsuYywKCWVsZjMyLW1jb3JlLmMsIGVsZjMyLW1pcHMuYywgZWxmMzItb3BlbnJpc2MuYywgZWxmMzItb3IzMi5jLAoJZWxmMzItcHBjLmMsIGVsZjMyLXMzOTAuYywgZWxmMzItc2guYywgZWxmMzItdjg1MC5jLCBlbGYzMi12YXguYywKCWVsZjMyLXhzdG9ybXkxNi5jLCBlbGY2NC1hbHBoYS5jLCBlbGY2NC1nZW4uYywgZWxmNjQtaHBwYS5jLAoJZWxmNjQtbWlwcy5jLCBlbGY2NC1tbWl4LmMsIGVsZjY0LXBwYy5jLCBlbGY2NC1zMzkwLmMsIGVsZjY0LXNoNjQuYywKCWVsZjY0LXNwYXJjLmMsIGVsZjY0LXg4Ni02NC5jLCBlbGZhcm0tbmFiaS5jLCBlbGZhcm0tb2FiaS5jLAoJZWxmY29kZS5oLCBlbGZsaW5rLmgsIGVsZm4zMi1taXBzLmMsIGVsZnh4LWlhNjQuYywgZWxmeHgtbWlwcy5jOiBEaXR0by4KCSogZWxmLWhwcGEuaCAoZWxmX2hwcGFfaW50ZXJuYWxfc2hkcik6IERlbGV0ZS4gIFVzZSBFbGZfSW50ZXJuYWxfU2hkcgoJdGhyb3VnaG91dCBpbnN0ZWFkLgoJKiBlbGYuYyAoX2JmZF9lbGZfbm9faW5mb190b19ob3d0b19yZWwpOiBEZWxldGUuCgkqIGVsZmNvZGUuaCAoZWxmX3N3YXBfcmVsb2NhX2luKTogUGFzcyBzb3VyY2Ugb3BlcmFuZCBhcyBhIGJmZF9ieXRlICouCglSZW1vdmUgSU5MSU5FIGtleXdvcmQuCgkoZWxmX3N3YXBfcmVsb2NfaW4pOiBMaWtld2lzZS4gIEFsc28gY2xlYXIgcl9hZGRlbmQuCgkoZWxmX3N3YXBfcmVsb2Nfb3V0LCBlbGZfc3dhcF9yZWxvY2Ffb3V0KTogUGFzcyBkZXN0aW5hdGlvbiBvcGVyYW5kCglhcyBhIGJmZF9ieXRlICouCgkoZWxmX3dyaXRlX3JlbG9jcyk6IENvbnNvbGlkYXRlIFJFTCBhbmQgUkVMQSBjb2RlLgoJKGVsZl9zbHVycF9yZWxvY190YWJsZV9mcm9tX3NlY3Rpb24pOiBTaW1wbGlmeSBSRUwgY29kZS4KCShOQU1FKF9iZmRfZWxmLHNpemVfaW5mbykpOiBQb3B1bGF0ZSByZWxvYyBzd2FwIGVudHJpZXMuCgkqIGVsZi1iZmQuaCAoTUFYX0lOVF9SRUxTX1BFUl9FWFRfUkVMKTogRGVmaW5lLgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX3JlYWRfcmVsb2NzX2Zyb21fc2VjdGlvbik6IENvbnNvbGlkYXRlIFJFTCBhbmQKCVJFTEEgY29kZS4KCShlbGZfbGlua19hZGp1c3RfcmVsb2NzKTogTGlrZXdpc2UuICBEb24ndCBtYWxsb2Mgc3BhY2UgZm9yIHRlbXAKCXJlbG9jIGFycmF5LCB1c2UgYSBmaXhlZCBzaXplIG9mIE1BWF9JTlRfUkVMU19QRVJfRVhUX1JFTC4KCShlbGZfbGlua19vdXRwdXRfcmVsb2NzKTogTGlrZXdpc2UuCgkoZWxmX3JlbG9jX2xpbmtfb3JkZXIpOiBMaWtld2lzZS4KCShlbGZfZmluaXNoX3BvaW50ZXJfbGlua2VyX3NlY3Rpb24pOiBMaWtld2lzZS4KCShzdHJ1Y3QgZWxmX2xpbmtfc29ydF9yZWxhKTogUmVtb3ZlIHVuaW9uLgoJKGVsZl9saW5rX3NvcnRfY21wMSk6IFVwZGF0ZSB0byBzdWl0LgoJKGVsZl9saW5rX3NvcnRfY21wMik6IEhlcmUgdG9vLgoJKGVsZl9saW5rX3NvcnRfcmVsb2NzKTogQ29uc29saWRhdGUgUkVMIGFuZCBSRUxBIGNvZGUuICBGaXggbWVtb3J5CglvdmVyLWFsbG9jYXRpb24gZm9yIGludF9yZWxzX3Blcl9leHRfcmVsICE9IDEgY2FzZS4KCSogZWxmMzItYXJtLmg6IFVwZGF0ZSBhbGwgYmZkX2VsZjMyX3N3YXBfcmVsb2Nfb3V0IGNhbGxzLgoJKiBlbGYzMi1pMzg2LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1jcmlzLmM6IExpa2V3aXNlIGZvciBiZmRfZWxmMzJfc3dhcF9yZWxvY2Ffb3V0LgoJKiBlbGYzMi1ocHBhLmMsIGVsZjMyLWkzNzAuYywgZWxmMzItbTY4ay5jLCBlbGYzMi1wcGMuYywgZWxmMzItczM5MC5jLAoJZWxmMzItc2guYywgZWxmMzItdmF4LmMsIGVsZnh4LW1pcHMuYzogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmM6IExpa2V3aXNlIGZvciBiZmRfZWxmNjRfc3dhcF9yZWxvY2Ffb3V0LgoJKiBlbGY2NC1ocHBhLmMsIGVsZjY0LW1pcHMuYywgZWxmNjQtcHBjLmMsIGVsZjY0LXMzOTAuYywgZWxmNjQtc2g2NC5jLAoJZWxmNjQtc3BhcmMuYywgZWxmNjQteDg2LTY0LmM6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmM6IExpa2V3aXNlIGZvciBiZmRfZWxmTk5fc3dhcF9yZWxvY2Ffb3V0LgoJKiBlbGZ4eC1taXBzLmMgKHNvcnRfZHluYW1pY19yZWxvY3MpOiBMaWtld2lzZSBmb3IKCWJmZF9lbGYzMl9zd2FwX3JlbG9jX2luLgoKCSogZWxmMzItYXJtLmg6IFVwZGF0ZSBlbGYzMl9hcm1faW5mb190b19ob3d0byBjYWxscy4KCSogZWxmMzItbWlwcy5jOiBMaWtld2lzZSBmb3IgbWlwc19pbmZvX3RvX2hvd3RvX3JlbC4KCShtaXBzX2VsZjY0X3N3YXBfcmVsb2NfaW4pOiBaZXJvIHJfYWRkZW5kLgoJKG1pcHNfZWxmNjRfYmVfc3dhcF9yZWxvY19pbik6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfc2x1cnBfb25lX3JlbG9jX3RhYmxlKTogU2ltcGxpZnkuCgoJKiBlbGY2NC1hbHBoYS5jIChhbHBoYV9lbGZfc2l6ZV9pbmZvKTogUG9wdWxhdGUgcmVsb2Mgc3dhcCBlbnRyaWVzLgoJKiBlbGY2NC1ocHBhLmMgKGhwcGE2NF9lbGZfc2l6ZV9pbmZvKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3NpemVfaW5mbyk6IExpa2V3aXNlLgoKMjAwMi0xMS0yOCAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IERvbid0IGNvbXBsYWluIGFib3V0Cgl1bnJlc29sdmVkIGRlYnVnZ2luZyByZWxvY3MgaW4gZHluYW1pYyBhcHBsaWNhdGlvbnMuCgkqIGVsZjY0LXNoNjQuYyAoc2hfZWxmNjRfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMi0xMS0yNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1laC1mcmFtZS5jIChFTlNVUkVfTk9fUkVMT0NTKTogRGlzcmVnYXJkIFJfKl9OT05FIHJlbG9jcy4KCShfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhfZnJhbWUpOiBEb24ndCBkaXNjYXJkIGR1cGxpY2F0ZSBDSUVzCglvbiBhIHJlbG9jYXRhYmxlIGxpbmsuICBDb21tZW50IHR5cG9zLgoJKiBlbGYuYyAoX2JmZF9lbGZfbGlua19oYXNoX25ld2Z1bmMpOiBBc3NpZ24gZWxlbWVudHMgb2Ygc3RydWN0dXJlCglpbiB0aGUgb3JkZXIgdGhleSBhcmUgZGVjbGFyZWQuICBDbGVhciBlbGZfaGFzaF92YWx1ZSB0b28uCgkoX2JmZF9lbGZfbGlua19oYXNoX3RhYmxlX2luaXQpOiBMaWtld2lzZSBhc3NpZ24gaW4gb3JkZXIuICBDbGVhcgoJZWhfaW5mbyBhbmQgdGxzX3NlZ21lbnQuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfaW5wdXRfYmZkIDxlbWl0X3JlbG9jcz4pOiBLZWVwIHJlbG9jIG9mZnNldHMKCXNvcnRlZCB3aGVuIGRpc2NhcmRpbmcgcmVsb2NzIGJ5IHR1cm5pbmcgdGhlbSBpbnRvIFJfKl9OT05FLgoKCSogbGliYmZkLmMgKHdhcm5fZGVwcmVjYXRlZCk6IENvbW1lbnQgc3BlbGxpbmcuCgkqIHBvL1NSQy1QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMTEtMjEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IERvbid0IG92ZXJ3cml0ZSB0aGUKCWFyY2gncyBzdF9vdGhlciBiaXRzIHdoZW4gbWVyZ2luZyB2aXNpYmlsaXRpZXMuCgkoZWxmX2xpbmtfb3V0cHV0X2V4dHN5bSk6IFRpZHkgY2xlYXJpbmcgb2YgdmlzaWJpbGl0eSBmaWVsZC4KCjIwMDItMTEtMjEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb2ZmLW1jb3JlLmMgKFNXQVBfSU5fUkVMT0NfT0ZGU0VUKTogRGVmaW5lLgoJKFNXQVBfT1VUX1JFTE9DX09GRlNFVCk6IERlZmluZS4KCjIwMDItMTEtMjAgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmLmMgKF9iZmRfZWxmX2xpbmtfaGFzaF90YWJsZV9pbml0KTogTWFrZSBzdXJlCgljYW5fcmVmY291bnQgaXMgcHJvcGVybHkgZXh0ZW5kZWQgdG8gdGhlIHR5cGUgb2YKCWluaXRfcmVmY291bnQuCgoyMDAyLTExLTE5ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAoTUlQU19SRUxPQ19SRUxBX1ApOiBOZXcgbWFjcm8uCgkoX2JmZF9taXBzX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogVXNlIGl0LgoKCSogZWxmeHgtbWlwcy5jIChNTkFNRSk6IE5ldyBtYWNyby4KCShfYmZkX21pcHNfZWxmX2NoZWNrX3JlbG9jcyk6IFVzZSBpdC4KCShfYmZkX21pcHNfZWxmX2Rpc2NhcmRfaW5mbyk6IExpa2V3aXNlLgoJKF9iZmRfbWlwc19lbGZfZmluYWxfbGluayk6IExpa2V3aXNlLgoKMjAwMi0xMS0xOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfZWRpdF9vcGQpOiBXaGVuIGRlbGV0aW5nIHJlbG9jcywgYWRqdXN0CglyZWxfaGRyLnNoX3NpemUgdG9vLgoKMjAwMi0xMS0xOCAgS2xlZSBEaWVuZXMgIDxrZGllbmVzQGFwcGxlLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChCRkQzMl9MSUJTKTogQWRkIGJmZHdpbi5sbywgYmZkaW8ubG8uCgkoQkZEMzJfTElCU19DRklMRVMpOiBBZGQgYmZkd2luLmMsIGJmZGlvLmMuCgkoQkZEX0hfRklMRVMpOiBBZGQgYmZkd2luLmMsIGJmZGlvLmMuCgkoTElCQkZEX0hfRklMRVMpOiBBZGQgYmZkd2luLmMsIGJmZGlvLmMuCglBZGQgZGVwZW5kZW5jaWVzIGZvciBiZmR3aW4uYywgYmZkaW8uYy4KCSogYmZkLmM6IFJlbW92ZSBiZmRfZ2V0X210aW1lLCBiZmRfZ2V0X3NpemUuCgkqIGxpYmJmZC5jOiBSZW1vdmUgcmVhbF9yZWFkLCBiZmRfYnJlYWQsIF9iZmRfd2luZG93X2ludGVybmFsLAoJYmZkX2luaXRfd2luZG93LCBiZmRfZnJlZV93aW5kb3csIGJmZF9nZXRfZmlsZV93aW5kb3csIGJmZF9id3JpdGUsCgliZmRfdGVsbCwgYmZkX2ZsdXNoLCBiZmRfc3RhdCwgYmZkX3NlZWsuCgkqIGJmZGlvLmM6IE5ldyBmaWxlLiAgQ29udGFpbnMgcmVhbF9yZWFkLCBiZmRfYnJlYWQsIGJmZF93cml0ZSwKCWJmZF90ZWxsLCBiZmRfZmx1c2gsIGJmZF9zdGF0LCBiZmRfc2VlaywgYmZkX2dlX210aW1lLAoJYmZkX2dldF9zaXplIChtb3ZlZCBmcm9tIGxpYmJmZC5jIGFuZCBiZmQuYykuCgkqIGJmZHdpbi5jIE5ldyBmaWxlLiAgQ29udGFpbnMgX2JmZF93aW5kb3dfaW50ZXJuYWwsCgliZmRfaW5pdF93aW5kb3csIGJmZF9mcmVlX3dpbmRvdywgYmZkX2dldF9maWxlX3dpbmRvdyAobW92ZWQgZnJvbQoJbGliYmZkLmMgYW5kIGJmZC5jKS4KCSogcG8vU1JDLVBPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoJKiBwby9iZmQucG90OiBSZWdlbmVyYXRlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBhY2xvY2FsLm00OiBSZWdlbmVyYXRlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0xMS0xOCAgS2xlZSBEaWVuZXMgIDxrZGllbmVzQGFwcGxlLmNvbT4KCgkqIGJmZC5jIChiZmRfcHJlc2VydmVfc2F2ZSk6IERvbid0IHplcm8gQkZEX0lOX01FTU9SWS4KCjIwMDItMTEtMTUgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjb2ZmLWg4MzAwLmMgKGg4MzAwX3JlbG9jMTZfZXN0aW1hdGUpOiBEbyBub3Qgb3B0aW1pemUgYXdheQoJanNyIGFmdGVyIGEgc2hvcnQganVtcC4KCSogZWxmMzItaDgzMDAuYyAoZWxmMzJfaDhfcmVsYXhfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMi0xMS0xNSAgS2xlZSBEaWVuZXMgIDxrZGllbmVzQGFwcGxlLmNvbT4KCgkqIHBlZi5jIChiZmRfcGVmX2NvbnZlcnRfYXJjaGl0ZWN0dXJlKTogTW92ZSBkZWNsYXJhdGlvbiBvZgoJQVJDSF9QT1dFUlBDIGFuZCBBUkNIX002OEsgdG8gdGhlIHN0YXJ0IG9mIHRoZSBmdW5jdGlvbi4KCjIwMDItMTEtMTQgIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGNvZmYtdGljNHguYyAodGljNHhfaG93dG9fdGFibGUpOiBGb3JtYXR0aW5nIGZpeHVwCgoyMDAyLTExLTE0ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBlbGY2NC1tbWl4LmMgKF9iZmRfbW1peF9maW5hbGl6ZV9saW5rZXJfYWxsb2NhdGVkX2dyZWdzKToKCUZvciBicG9fZ3JlZ3Nfc2VjdGlvbi0+Y29udGVudHMsIGFsbG9jYXRlIF9yYXdfc2l6ZSwgbm90CglfY29va2VkX3NpemUuCgoyMDAyLTExLTEzICBLbGVlIERpZW5lcyAgPGtkaWVuZXNAYXBwbGUuY29tPgoKCSogY29uZmlnLmJmZDogQWRkIGVudHJpZXMgZm9yIHBvd2VycGMtKi1kYXJ3aW4gYW5kIGNvdXNpbnMuCgoyMDAyLTExLTEzICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZmNvZGUuaCAoZWxmX29iamVjdF9wKTogRG9uJ3QgcmVzdG9yZSBhYmZkLT5hcmNoX2luZm8uCgoyMDAyLTExLTEzICBLbGVlIERpZW5lcyAgPGtkaWVuZXNAYXBwbGUuY29tPgoJICAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBiZmQuYyAoc3RydWN0IGJmZF9wcmVzZXJ2ZSk6IE5ldy4KCShiZmRfcHJlc2VydmVfc2F2ZSk6IE5ldyBmdW5jdGlvbi4KCShiZmRfcHJlc2VydmVfcmVzdG9yZSk6IERpdHRvLgoJKGJmZF9wcmVzZXJ2ZV9maW5pc2gpOiBEaXR0by4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBtYWNoLW8uYzogRm9ybWF0dGluZy4KCShiZmRfbWFjaF9vX3NjYW5fcmVhZF9zeW10YWJfc3ltYm9sKTogTWFrZSAidmFsdWUiIHVuc2lnbmVkLgoJKGJmZF9tYWNoX29fb2JqZWN0X3ApOiBVc2UgYmZkX3ByZXNlcnZlX3NhdmUvcmVzdG9yZS9maW5pc2guCgkoYmZkX21hY2hfb19jb3JlX3ApOiBEaXR0by4KCShiZmRfbWFjaF9vX3NjYW4pOiBQYXNzIGluIG1kYXRhLgoJKiBtYWNoLW8uaCAoYmZkX21hY2hfb19zY2FuKTogVXBkYXRlIHByb3RvdHlwZS4KCSogcGVmLmM6IEZvcm1hdHRpbmcuCgkoYmZkX3BlZl9vYmplY3RfcCk6IFVzZSBiZmRfcHJlc2VydmVfc2F2ZS9yZXN0b3JlL2ZpbmlzaC4KCShiZmRfcGVmX3hsaWJfb2JqZWN0X3ApOiBEaXR0by4KCShiZmRfcGVmX3NjYW4pOiBQYXNzIGluIG1kYXRhLiAgTW92ZSB2ZXJzaW9uIGNoZWNrIHRvIGJmZF9wZWZfb2JqZWN0X3AuCgkqIHBlZi5oIChiZmRfcGVmX3NjYW4pOiBVcGRhdGUgcHJvdG90eXBlLgoJKiB4c3ltLmM6IEZvcm1hdHRpbmcsIEsmUiBmaXhlcy4KCShiZmRfc3ltX29iamVjdF9wKTogVXNlIGJmZF9wcmVzZXJ2ZV9zYXZlL3Jlc3RvcmUvZmluaXNoLgoJKGJmZF9zeW1fc2Nhbik6IE5ldyBmdW5jdGlvbiBzcGxpdCBvdXQgZnJvbSBiZmRfc3ltX29iamVjdF9wLgoJKiB4c3ltLmggKGJmZF9zeW1fc2Nhbik6IERlY2xhcmUuCgkqIGVsZmNvZGUuaCAoZWxmX29iamVjdF9wKTogVXNlIGJmZF9wcmVzZXJ2ZV9zYXZlL3Jlc3RvcmUvZmluaXNoLgoJKiBlbGZjb3JlLmggKGVsZl9jb3JlX2ZpbGVfcCk6IExpa2V3aXNlLgoJKiB0YXJnZXRzLmMgKF9iZmRfdGFyZ2V0X3ZlY3Rvcik6IFJldmVydCAyMDAyLTExLTA4IGNoYW5nZS4KCjIwMDItMTEtMTIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9kYS5wbzogVXBkYXRlZCBEYW5pc2ggdHJhbnNsYXRpb24uCgoyMDAyLTExLTEyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBPcHRpbWl6ZSBzdGFicyBmb3IKCXJlbG9jYXRhYmxlIGxpbmsgdG9vLgoJKGVsZl9saW5rX2lucHV0X2JmZCk6IFdoZW4gZW1pdHRpbmcgcmVsb2NzLCBhZGp1c3Qgb2Zmc2V0cyBmb3IKCWVoX2ZyYW1lIGFuZCBzdGFiIHNlY3Rpb25zLiAgWmFwIGRlbGV0ZWQgcmVsb2NzLgoJKGVsZl9yZWxvY19zeW1ib2xfZGVsZXRlZF9wKTogUmV0dXJuIHRydWUgZm9yIHplcm8gcl9zeW1uZHguCgkoZWxmX2JmZF9kaXNjYXJkX2luZm8pOiBSdW4gZm9yIHJlbG9jYXRhYmxlIGxpbmsgdG9vLgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2VkaXRfb3BkKTogUmVuYW1lIGZyb20gZWRpdF9vcGQuICBNYWtlIGdsb2JhbC4KCUhhbmRsZSBsZCAtciBjYXNlLgoJKHBwYzY0X2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBEb24ndCBjYWxsIGVkaXRfb3BkIGZyb20gaGVyZS4KCSogZWxmNjQtcHBjLmggKHBwYzY0X2VsZl9lZGl0X29wZCk6IERlY2xhcmUuCgoJKiBlbGYtYmZkLmggKHN0cnVjdCBjaWVfaGVhZGVyKTogTW92ZSBmcm9tIGVsZl9laC1mcmFtZS5jLgoJKHN0cnVjdCBjaWUsIHN0cnVjdCBlaF9jaWVfZmRlLCBzdHJ1Y3QgZWhfZnJhbWVfc2VjX2luZm8pOiBMaWtld2lzZS4KCShzdHJ1Y3QgZWhfZnJhbWVfYXJyYXlfZW50LCBzdHJ1Y3QgZWhfZnJhbWVfaGRyX2luZm8pOiBMaWtld2lzZS4KCShlbnVtIGVsZl9saW5rX2luZm9fdHlwZSk6IFJlbW92ZSBFTEZfSU5GT19UWVBFX0VIX0ZSQU1FX0hEUi4KCShzdHJ1Y3QgZWhfZnJhbWVfaGRyX2luZm8pOiBBZGQgImhkcl9zZWMiLCByZW1vdmUgInNwbGl0Ii4KCShzdHJ1Y3QgZWxmX2xpbmtfaGFzaF90YWJsZSk6IEFkZCBlaF9pbmZvLgoJKHN0cnVjdCBlbGZfb2JqX3RkYXRhKTogQ2hhbmdlIGVoX2ZyYW1lX2hkciB0byBhbiBhc2VjdGlvbiAqLgoJKF9iZmRfZWxmX2Rpc2NhcmRfc2VjdGlvbl9laF9mcmFtZSk6IFVwZGF0ZSBwcm90b3R5cGUuCgkoX2JmZF9lbGZfZGlzY2FyZF9zZWN0aW9uX2VoX2ZyYW1lX2hkcik6IExpa2V3aXNlLgoJKF9iZmRfZWxmX3dyaXRlX3NlY3Rpb25fZWhfZnJhbWUpOiBMaWtld2lzZS4KCShfYmZkX2VsZl93cml0ZV9zZWN0aW9uX2VoX2ZyYW1lX2hkcik6IExpa2V3aXNlLgoJKiBlbGYtZWgtZnJhbWUuYyAoX2JmZF9lbGZfZGlzY2FyZF9zZWN0aW9uX2VoX2ZyYW1lKTogUmVtb3ZlICJlaGRyc2VjIgoJcGFyYW0uICBHZXQgImhkcl9pbmZvIiBmcm9tIGxpbmsgaGFzaCB0YWJsZS4KCShfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhfZnJhbWVfaGRyKTogUmVtb3ZlICJzZWMiIHBhcmFtLiAgR2V0CgloZWFkZXIgc2VjdGlvbiBmcm9tIGxpbmsgaGFzaCB0YWJsZS4gIFNhdmUgaGVhZGVyIHNlY3Rpb24gdG8gZWxmX3RkYXRhLgoJKF9iZmRfZWxmX21heWJlX3N0cmlwX2VoX2ZyYW1lX2hkcik6IFJlbW92ZSBsb2NhbCAic2VjIi4gIFVzZQoJaGVhZGVyIHNlY3Rpb24gZnJvbSBsaW5rIGhhc2ggdGFibGUuICBEb24ndCBhbGxvYyBoZHJfaW5mby4gIENsZWFyCgloZHJfc2VjIGluc3RlYWQgb2Ygc2V0dGluZyAic3RyaXAiLgoJKF9iZmRfZWxmX2VoX2ZyYW1lX3NlY3Rpb25fb2Zmc2V0KTogRm9ybWF0dGluZy4KCShfYmZkX2VsZl93cml0ZV9zZWN0aW9uX2VoX2ZyYW1lKTogUmVtb3ZlICJlaGRyc2VjIiwgYWRkICJpbmZvIiBwYXJhbS4KCUdldCBoZWFkZXIgc2VjdGlvbiBmcm9tIGxpbmsgaGFzaCB0YWJsZS4KCShfYmZkX2VsZl93cml0ZV9zZWN0aW9uX2VoX2ZyYW1lX2hkcik6IFJlbW92ZSAic2VjIiwgYWRkICJpbmZvIiBwYXJhbS4KCUdldCBoZWFkZXIgc2VjdGlvbiBmcm9tIGxpbmsgaGFzaCB0YWJsZS4KCSogZWxmLmMgKG1hcF9zZWN0aW9uc190b19zZWdtZW50cyk6IFVzZSBjYWNoZWQgZWhfZnJhbWVfaGRyLgoJKGdldF9wcm9ncmFtX2hlYWRlcl9zaXplKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfc2VjdGlvbl9vZmZzZXQpOiBGb3JtYXR0aW5nLgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogU3Rhc2ggZWggZnJhbWUgaGVhZGVyCglzZWN0aW9uIHBvaW50ZXIgaW4gbGluayBoYXNoIHRhYmxlLgoJKGVsZl9iZmRfZmluYWxfbGluayk6IEFkanVzdCBfYmZkX2VsZl93cml0ZV9zZWN0aW9uX2VoX2ZyYW1lX2hkcgoJYW5kIF9iZmRfZWxmX3dyaXRlX3NlY3Rpb25fZWhfZnJhbWUgY2FsbHMuICBVcGRhdGUgY29tbWVudCBhYm91dAoJZWhfZnJhbWUgZW50cmllcy4KCShlbGZfYmZkX2Rpc2NhcmRfaW5mbyk6IEFkanVzdCBfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhfZnJhbWUgYW5kCglfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhfZnJhbWVfaGRyIGNhbGxzLiAgUmVtb3ZlICJlaGRyIi4KCgkqIHBvL1NSQy1QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCgkqIGVsZi1laC1mcmFtZS5jIChfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhfZnJhbWUpOiBEb24ndCB6ZXJvCglyZWxvY3MgZm9yIGRpc2NhcmRlZCBGREVzLiAgUmVtb3ZlIGRlYWQgY29kZS4KCShfYmZkX2VsZl93cml0ZV9zZWN0aW9uX2VoX2ZyYW1lX2hkcik6IFJlbW92ZSBkZWFkIGNvZGUuCgkqIGVsZmxpbmsuaCAoZWxmX2JmZF9kaXNjYXJkX2luZm8pOiBEb24ndCBzYXZlIGVkaXRlZCByZWxvY3MuCglUaWR5IGNvbmRpdGlvbnMgdW5kZXIgd2hpY2ggc3RhYnMgYXJlIGVkaXRlZC4gIEZvcm1hdHRpbmcuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBJZ25vcmUgb3ZlcmZsb3dzCglmcm9tIGRpc2NhcmRlZCByZWxvY3MuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9pbnN0YWxsX2R5bl9yZWxvYyk6IEFkZCByZWxvYyBvdXRwdXQKCXNlY3Rpb24gYWRqdXN0bWVudHMgYWZ0ZXIgdGVzdGluZyBtYWdpYyB2YWx1ZXMuCgoyMDAyLTExLTEyICBUaG9tYXMgTW9lc3RsIDx0bW1ARnJlZUJTRC5vcmc+CgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBDb3JyZWN0CglyZWZlcmVuY2VzIHRvIGxhcmdlIHBsdCBzeW1ib2xzLgoKMjAwMi0xMS0xMiAgS2xlZSBEaWVuZXMgIDxrZGllbmVzQGFwcGxlLmNvbT4KCgkqIG1hY2gtby5jIChiZmRfbWFjaF9vX3NjYW5fcmVhZF90aHJlYWQpOiBEb24ndCByZS11c2UgJ2knIHdoZW4KCWxvb2tpbmcgZm9yIGFuIHVudXNlZCBzZWN0aW9uIG5hbWUuCgoyMDAyLTExLTExICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY29mZi1oODMwMC5jOiBGaXggZm9ybWF0dGluZy4KCSogZWxmMzItaDgzMDAuYzogTGlrZXdpc2UuCgkqIHJlbG9jMTYuYzogTGlrZXdpc2UuCgoyMDAyLTExLTA5ICBKZXJvZW4gRG9iYmVsYWVyZSAgPGplcm9lbi5kb2JiZWxhZXJlQGFjdW5pYS5jb20+CgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IERvbid0IHN0cmlwIG91dHB1dAoJc2VjdGlvbiB3aGVuIGR5bmFtaWMgc2VjdGlvbiB1bnVzZWQ7ICBfYmZkX3N0cmlwX3NlY3Rpb25fZnJvbV9vdXRwdXQKCWluc3RlYWQuCgoyMDAyLTExLTA4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogdGFyZ2V0cy5jIChfYmZkX3RhcmdldF92ZWN0b3IpOiBEaXNhYmxlIHBlZl92ZWMsIHBlZl94bGliX3ZlYwoJYW5kIHN5bV92ZWMuCgoJKiBkd2FyZjIuYzogUmV2ZXJ0IGxhc3QgY2hhbmdlLgoKMjAwMi0xMS0wNyAgTWljaGFsIEx1ZHZpZyAgPG1sdWR2aWdAc3VzZS5jej4KCgkqIGR3YXJmMi5jIChyZWFkX2luZGlyZWN0X3N0cmluZywgcmVhZF9hYmJyZXZzLCBkZWNvZGVfbGluZV9pbmZvLAoJX2JmZF9kd2FyZjJfZmluZF9uZWFyZXN0X2xpbmUpOiBVc2UKCWJmZF9zaW1wbGVfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKCkgaW5zdGVhZCBvZgoJYmZkX2dldF9zZWN0aW9uX2NvbnRlbnRzKCkuCgkqIHJlbG9jLmMgKGJmZF9wZXJmb3JtX3JlbG9jYXRpb24pOiBBZGQgc2FuaXR5IGNoZWNrLgoJKiBzaW1wbGUuYyAoc2ltcGxlX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IElmIHRoZSBzZWN0aW9uCglkb2VzIG5vdCBoYXZlIGFueSByZWxvY3MgYXNzb2NpYXRlZCB3aXRoIGl0LCBqdXN0IHJldHVybiB0aGUKCXVuYWRqdXN0ZWQgY29udGVudHMuCgoyMDAyLTExLTA3ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGVsZjMyLWNyaXMuYyAoY3Jpc19lbGZfcmVsb2NhdGVfc2VjdGlvbikgPGNhc2UgUl9DUklTXzE2X0dPVCwKCWNhc2UgUl9DUklTXzMyX0dPVD46IENvcnJlY3QgdGVzdCBmb3IgZmlsbGluZyBpbiBjb25zdGFudCAuZ290Cgljb250ZW50cywgZW5hYmxpbmcgZm9yIGEgbm9uLURTTywgZm9yIHN5bWJvbHMgZGVmaW5lZCBpbiB0aGUKCXByb2dyYW0gd2l0aCAtLWV4cG9ydC1keW5hbWljLgoKMjAwMi0xMS0wNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jOiBDb21tZW50IHR5cG8gZml4ZXMuCgkocHBjNjRfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBBbGxvdyBCRkRfRU5ESUFOX1VOS05PV04gaW5wdXQuCgoyMDAyLTExLTA3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vZGEucG86IFVwZGF0ZWQgRGFuaXNoIHRyYW5zbGF0aW9uLgoKMjAwMi0xMS0wNiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1taXBzLmMgKG1pcHNfZWxmNjRfc2x1cnBfb25lX3JlbG9jX3RhYmxlKTogR2VuZXJhdGUKCWV4YWN0bHkgdGhyZWUgaW50ZXJuYWwgcmVsb2NzIHBlciBleHRlcm5hbCByZWxvYy4gIFNldCByZWxvY19jb3VudAoJdG8gdGhlIGV4dGVybmFsIHJlbG9jIGNvdW50LgoKMjAwMi0xMS0wNiAgS2xlZSBEaWVuZXMgIDxrZGllbmVzQGFwcGxlLmNvbT4KCgkgKiBjb2ZmLXN0Z28zMi5jIChzdHViX2J5dGVzKTogTWFyayBhcyBjb25zdC4KCSBGaXggY29tbWVudCBmb3JtYXR0aW5nLgoKMjAwMi0xMS0wNiAgS2xlZSBEaWVuZXMgIDxrZGllbmVzQGFwcGxlLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChCRkQzMl9CQUNLRU5EUyk6IEFkZCBtYWNoLW8ubG8sIHBlZi5sbywgYW5kCgl4c3ltLmxvLgoJKEJGRDMyX0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCBtYWNoLW8uYywgcGVmLmMsIGFuZCB4c3ltLmMuCgkoU09VUkNFX0hGSUxFUyk6IEFkZCBtYWNoLW8uaCwgcGVmLmgsIHBlZi10cmFjZWJhY2suaCwgeHN5bS5oCgkqIGFyY2h1cmVzLmMgKGVudW0gYmZkX2FyY2hpdGVjdHVyZSk6IEFkZCBiZmRfYXJjaF9tOThrLgoJKiBiZmQuYyAoc3RydWN0IGJmZCk6IEFkZCBwcml2YXRlIGRhdGEgZm9yIG1hY2gtbywgcGVmLCBhbmQgc3ltLgoJKiB0YXJnZXRzLmMgKGVudW0gYmZkX2ZsYXZvdXIpOiBBZGQgZmxhdm91cnMgZm9yIG1hY2gtbywgcGVmLCBhbmQKCXN5bS4KCShfYmZkX3RhcmdldF92ZWN0b3IpOiBBZGQgdGFyZ2V0IHZlY3RvcnMgZm9yIG1hY2gtbywgcGVmLCBhbmQgc3ltLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZG9jL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIHhzeW0uYzogTmV3IGZpbGUuICBDb250YWlucyBzdXBwb3J0IGZvciB0aGUgQXBwbGUvTWV0cm93ZXJrcwoJeFNZTSBkZWJ1Z2dpbmcgZm9ybWF0LgoJKiB4c3ltLmg6IE5ldyBmaWxlLgoJKiBwZWYuYzogTmV3IGZpbGUuICBDb250YWlucyBzdXBwb3J0IGZvciB0aGUgQXBwbGUgQ29kZSBGcmFnbWVudAoJTWFuYWdlciBQcmVmZXJyZWQgRXhlY3V0YWJsZSBGb3JtYXQKCSogcGVmLmg6IE5ldyBmaWxlLgoJKiBwZWYtdHJhY2ViYWNrLmg6IE5ldyBmaWxlLiAgQ29udGFpbnMgc3VwcG9ydCBmb3IgcGFyc2luZyBQb3dlclBDCgl0cmFjZWJhY2sgdGFibGVzIGFzIHVzZWQgYnkgUEVGIGV4ZWN1dGFibGVzIChhbmQgcGVyaGFwcyBvdGhlcgoJc3lzdGVtcyBhcyB3ZWxsKS4KCSogbWFjaC1vLmM6IE5ldyBmaWxlLiAgQ29udGFpbnMgc3VwcG9ydCBmb3IgdGhlIE1hY2gtTyBvYmplY3QgZmlsZQoJZm9ybWF0LgoJKiBtYWNoLW8uaDogTmV3IGZpbGUuCgkqIG1hY2gtby10YXJnZXQuYzogTmV3IGZpbGUuICBEZWNsYXJlcyB0aGUgbWFjaC1vIHRhcmdldHMKCXRoZW1zZWx2ZXMuICBJbmNsdWRlZCB0aHJlZSB0aW1lcyBieSBtYWNoLW8uYzsgZWFjaCB0aW1lIHdpdGggYQoJZGlmZmVyZW50IHNldCBvZiBtYWNyb3Mgc2V0LgoKMjAwMi0xMS0wNiAgR3JhZW1lIFBldGVyc29uICA8Z3BAcW54LmNvbT4KCgkqIE1ha2VmaWxlLmFtOiBSZW1vdmUgZW50cmllcyBmb3IgZWxmMzItcW54LltjaF0uCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWcuYmZkOiBDaGFuZ2UgYXJtLW50byB0byB1c2UgYmZkX2VsZjMyX3tiaWd8bGl0dGxlfWFybV92ZWMsCglwcGMtbnRvIHRvIHVzZSBiZmRfZWxmMzJfcG93ZXJwY3tsZX1fdmVjLCBzaC1udG8gdG8gdXNlCgliZmRfZWxmMzJfc2h7bH1fdmVjLCBhbmQgaTM4Ni1udG8gdG8gdXNlIGJmZF9lbGYzMl9pMzg2X3ZlYy4KCSogY29uZmlndXJlLmluOiBSZW1vdmUgc3VwcG9ydCBmb3IgYmZkX2VsZjMyX3Noe2x9cW54X3ZlYywKCWJmZF9lbGYzMl9wb3dlcnBje2xlfXFueF92ZWMsIGJmZF9lbGYzMl97YmlnfGxpdHRsZX1hcm1xbnhfdmVjLAoJYW5kIGJmZF9lbGYzMl9pMzg2cW54X3ZlYywgYW5kIHJlbW92ZWQgZWxmMzItcW54LmxvIGZyb20gb3RoZXIgdGFyZ2V0cy4KCWJmZF9lbGYzMl9zaHtsfV92ZWMsIGFuZCBpMzg2LW50byB0byB1c2UgYmZkX2VsZjMyX2kzODZfdmVjLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGVsZjMyLXFueC5jOiBSZW1vdmUuCgkqIGVsZjMyLXFueC5oOiBSZW1vdmUuCgkqIGVsZi5jOiBSZW1vdmUgY2FsbHMgdG8gUU5YIHNwZWNpZmljIHNldF9ub25sb2FkYWJsZV9maWxlcG9zLAoJaXNfY29udGFpbmVkX2J5X2ZpbGVwb3MsIGFuZCBjb3B5X3ByaXZhdGVfYmZkX2RhdGFfcC4KCSogZWxmLWJmZC5oIChzdHJ1Y3QgZWxmX2JhY2tlbmRfZGF0YSk6IFJlbW92ZSBzZXRfbm9ubG9hZGFibGVfZmlsZXBvcywKCWlzX2NvbnRhaW5lZF9ieV9maWxlcG9zLCBhbmQgY29weV9wcml2YXRlX2JmZF9kYXRhX3AuCgkqIGVsZjMyLWkzODYuYzogUmVtb3ZlIFFOWCBleHRlbmRlZCBiZmQgc3VwcG9ydC4KCSogZWxmMzItcHBjLmM6IFJlbW92ZSBRTlggZXh0ZW5kZWQgYmZkIHN1cHBvcnQuCgkqIGVsZjMyLXNoLmM6IFJlbW92ZSBRTlggZXh0ZW5kZWQgYmZkIHN1cHBvcnQuCgkqIGVsZmFybS1uYWJpLmM6IFJlbW92ZSBRTlggZXh0ZW5kZWQgYmZkIHN1cHBvcnQuCgkqIHRhcmdldHMuYzogUmVtb3ZlIHFueCB2ZWN0b3JzLgoJKiBlbGZ4eC10YXJnZXQuaCAoZWxmX2JhY2tlbmRfc2V0X25vbmxvYWRhYmxlX2ZpbGVwb3MpOiBSZW1vdmUKCShlbGZfYmFja2VuZF9pc19jb250YWluZWRfYnlfZmlsZXBvcyk6IFJlbW92ZS4KCShlbGZfYmFja2VuZF9jb3B5X3ByaXZhdGVfYmZkX2RhdGFfcCk6IFJlbW92ZS4KCSogcG8vU1JDLVBPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0xMS0wNiAgRGF2aWQgTydCcmllbiAgPG9icmllbkBGcmVlQlNELm9yZz4KCSAgICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEFkanVzdCBhZGRlbmQgb2YKCWR5bmFtaWMgcmVsb2NzIGFnYWluc3Qgc2VjdGlvbiBzeW1ib2xzIGZvciB0aGUgb3V0cHV0IHNlY3Rpb24gdm1hLgoKMjAwMi0xMS0wNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLWFybS5oICh0MmExX3B1c2hfaW5zbiwgdDJhMl9sZHJfaW5zbiwgdDJhM19tb3ZfaW5zbiwKCXQyYTRfYnhfaW5zbiwgdDJhNV9wb3BfaW5zbiwgdDJhNl9ieF9pbnNuKTogUmVtb3ZlLgoKMjAwMi0xMS0wNSAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgkgICAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy5iZmQgKHNoLSotbGludXgqKTogVXNlIGJmZF9lbGYqX3NoNjQqbGluX3ZlYyBhcyBzaDY0Cgl2ZWN0b3JzIGluIHRhcmdldF9zZWx2ZWNzLgoJKHNobGUtKi1uZXRic2RlbGYqKTogVXNlIGJmZF9lbGYqX3NoNjQqbmJzZF92ZWMgYXMgc2g2NCB2ZWN0b3JzCglpbiB0YXJnZXRfc2VsdmVjcy4KCShzaC0qLW5ldGJzZGVsZiopOiBMaWtld2lzZS4KCSogY29uZmlndXJlLmluIChhc3NvY3ZlY3MpOiBOZXcgdmFyaWFibGUuICBIYW5kbGUgYXNzb2N2ZWNzIGxpa2UKCXNlbHZlY3MuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogZm9ybWF0LmMgKGJmZF9jaGVja19mb3JtYXRfbWF0Y2hlcyk6IFN0b3JlIGJmZF90YXJnZXQgcG9pbnRlcnMKCWluIG1hdGNoaW5nX3ZlY3RvciBpbnN0ZWFkIG9mIHRhcmdldCBuYW1lcy4gIFNlbGVjdCBmaXJzdCB0YXJnZXQKCWZyb20gYmZkX2Fzc29jaWF0ZWRfdmVjdG9yIHRoYXQgbWF0Y2hlcyBhIGxpc3Qgb2YgYW1iaWd1b3VzIHRhcmdldHMuCgkqIHRhcmdldHMuYyAoX2JmZF9hc3NvY2lhdGVkX3ZlY3Rvcik6IE5ldyBhcnJheS4KCShiZmRfYXNzb2NpYXRlZF92ZWN0b3IpOiBOZXcgdmFyaWFibGUuCgkoX2JmZF90YXJnZXRfdmVjdG9yKTogQWRkIGJmZF9lbGYqX3NoNjQqbGluX3ZlYy4KCSogbGliYmZkLWluLmggKGJmZF9hc3NvY2lhdGVkX3ZlY3Rvcik6IERlY2xhcmUuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoKMjAwMi0xMS0wNSAgRWxpYXMgQXRoYW5hc29wb3Vsb3MgIDxlYXRoYW5Ab3RlbmV0LmdyPgoKCSogdm1zLWdzZC5jIChfYmZkX3Ztc193cml0ZV9nc2QpOiBDaGVjayB0aGF0IHN5bWJvbC0+dWRhdGEucCBpcwoJbm9uLU5VTEwgYmVmb3JlIGRlcmVmZXJlbmNpbmcuCgoyMDAyLTExLTA0ICBLYXogS29qaW1hICA8a2tvamltYUByci5paWo0dS5vci5qcD4KCgkqIHZtcy5jICh2bXNfb2JqZWN0X3ApOiBSZXN0b3JlIHRoZSBzdGFydCBhZGRyZXNzIHdoZW4gcmV0dXJuaW5nCglOVUxMLgoKMjAwMi0xMS0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCSAgICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGVsZmxpbmsuaCAoc3RydWN0IGVsZl9maW5hbF9saW5rX2luZm8pOiBBZGQgc2huZHhidWZfc2l6ZS4KCShlbGZfYmZkX2ZpbmFsX2xpbmspOiBEb24ndCBib3RoZXIgemVyb2luZyBzeW10YWJfaGRyIGZpZWxkcy4KCVNldCB1cCBhIGxhcmdlciBzeW1zaG5keGJ1ZiwgYW5kIHdyaXRlIGl0IG91dC4gIEZyZWUgaXQgb24KCWV4aXQgcmF0aGVyIHRoYW4gZnJlZWluZyBzeW1idWYgdHdpY2UuICBDb3JyZWN0IHNlY3Rpb24gaW5kZXgKCW9uIG91dHB1dCBzZWN0aW9uIHN5bWJvbCBsb29wLgoJKGVsZl9saW5rX291dHB1dF9zeW0pOiBBY2N1bXVsYXRlIHN5bWJvbCBleHRlbnNpb24gc2VjdGlvbgoJaW5kaWNlcywgcmVhbGxvY2F0aW5nIHN5bXNobmR4YnVmIHJhdGhlciB0aGFuIHdyaXRpbmcgaXQgb3V0LgoJKGVsZl9saW5rX2ZsdXNoX291dHB1dF9zeW1zKTogRG9uJ3QgZmx1c2ggc3ltc2huZHhidWYuCgkqIGVsZi5jIChhc3NpZ25fc2VjdGlvbl9udW1iZXJzKTogSW5pdCBpX3NoZHJwIHRvIGFsbCB6ZXJvLgoJVXNlIGJmZF96YWxsb2MgdG8gY2xlYXIgaV9zaGRycFswXSB0b28uCgoyMDAyLTExLTAzICBTdGVwaGVuIENsYXJrZSA8c3RlcGhlbi5jbGFya2VAZWFydGhsaW5nLm5ldD4KCgkgKiBlbGYzMi1zaDY0LWNvbS5jIChzaDY0X2FkZHJlc3NfaW5fY3Jhbmdlcyk6IFVzZQoJX3Jhd19zaXplIG9mIGNyYW5nZXMgc2VjdGlvbiBpZiBfY29va2VkX3NpemUgbm90IHlldCBzZXQuCgoyMDAyLTExLTAzICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGVsZjMyLXY4NTAuYyAodjg1MF9lbGZfcmVsYXhfZGVsZXRlX2J5dGVzKTogQ29ycmVjdCBwYXJhbWV0ZXJzCglmb3IgYmZkX2VsZjMyX3N3YXBfc3ltYm9sX291dC4KCjIwMDItMTAtMzEgIERhdmlkIE8nQnJpZW4gIDxvYnJpZW5ARnJlZUJTRC5vcmc+CgoJKiBlbGYtZWgtZnJhbWUuYyAoX2JmZF9lbGZfZGlzY2FyZF9zZWN0aW9uX2VoX2ZyYW1lKTogRG9uJ3QgbWl4CglzaWduZWQgYW5kIHVuc2lnbmVkIGluIGNvbXBhcmlzb24uCgoyMDAyLTEwLTMwICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGNvZmZjb2RlLmg6IFJlbW92ZSBleHRyYW5lb3VzICdcJy4KCjIwMDItMTAtMjggIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogTWFrZWZpbGUuYW0gKHRhcmdldHMubG8pOiBEZXBlbmQgb24gTWFrZWZpbGUgaW5zdGVhZCBvZgoJY29uZmlnLnN0YXR1cy4KCShhcmNodXJlcy5sbyk6IExpa2V3aXNlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZWQuCgoyMDAyLTEwLTI1ICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogY29uZmlnLmJmZCAobWlwcyplbC0qLW5ldGJzZCosIG1pcHMqLSotbmV0YnNkKik6IEFkZAoJYmZkX2VsZjY0X2JpZ21pcHNfdmVjIGFuZCBiZmRfZWxmNjRfbGl0dGxlbWlwc192ZWMgdG8KCXRhcmdfc2VsdmVjcy4KCjIwMDItMTAtMjUgIEppbSBXaWxzb24gIDx3aWxzb25AcmVkaGF0LmNvbT4KCgkqIGVsZjY0LXNoNjQuYyAoc2hfZWxmNjRfcmVsb2NhdGVfc2VjdGlvbik6IENhbGwKCV9iZmRfZWxmX3JlbGFfbG9jYWxfc3ltLiAgSGFuZGxlIHJlbG9jcyBhZ2FpbnN0IFNUVF9TRUNUSU9OIHN5bWJvbAoJb2YgU0hGX01FUkdFIHNlY3Rpb24uCgoyMDAyLTEwLTI1ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIHNpbXBsZS5jOiBDb3JyZWN0IHBsYWNlbWVudCBvZiBBVFRSSUJVVEVfVU5VU0VELgoKMjAwMi0xMC0yNCAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlQGhpYXVseTEuaGlhLm5yYy5jYT4KCgkqIGFvdXR4LmggKE5BTUUoYW91dCxzd2FwX2V4dF9yZWxvY19pbikpOiBDYXN0IGJ5dGVzLT5yX2luZGV4IHRvCgl1bnNpZ25lZCBpbnQuICBDYXN0IFJFTE9DX0JBU0UxMCwgUkVMT0NfQkFTRTEzIGFuZCBSRUxPQ19CQVNFMjIgdG8KCXVuc2lnbmVkIGludC4KCShOQU1FKGFvdXQsZmluYWxfbGluaykpOiBDYXN0IGVudW0gdXNlZCBpbiBhc3NpZ25tZW50LgoJKGFvdXRfbGlua193cml0ZV9zeW1ib2xzKTogQ2FzdCBlbnVtcyBpbiBjb21wYXJpc29ucywgaW50IHZhbHVlcyB0bwoJYm9vbGVhbiwgZW51bXMgaW4gYXNzaWdubWVudHMgdG8gaW50LgoJKGFvdXRfbGlua19pbnB1dF9zZWN0aW9uX3N0ZCk6IENhc3QgcmVsLT5yX2luZGV4IHRvIHVuc2lnbmVkIGludC4KCShhb3V0X2xpbmtfaW5wdXRfc2VjdGlvbl9leHQpOiBMaWtld2lzZS4gIENhc3QgZW51bXMgdXNlZCBpbgoJY29tcGFyaXNvbnMgd2l0aCB1bnNpZ25lZCBpbnRzLgoJKGFvdXRfbGlua19yZWxvY19saW5rX29yZGVyKTogQ2FzdCBlbnVtIHRvIGludCBpbiBhc3NpZ25tZW50LgoJKiBhcmNoaXZlLmMgKF9iZmRfZ2VuZXJpY19yZWFkX2FyX2hkcl9tYWcpOiBDYXN0IHJlc3VsdCBvZiBtZW1jaHIKCWNhbGxzIHRvIGNoYXIgKi4KCSogYmZkLWluLmggKGJmZF9zZXRfc2VjdGlvbl92bWEpOiBDYXN0IGVudW0gdHJ1ZSB0byB1bnNpZ25lZCBpbnQgaW4KCWFzc2lnbm1lbnQuCgkqIGJmZC1pbjIuaCAoYmZkX3NldF9zZWN0aW9uX3ZtYSk6IExpa2V3aXNlLgoJKiBiZmQuYyAoYmZkX3JlY29yZF9waGRyKTogQ2FzdCBlbnVtcyBpbiBhc3NpZ25tZW50cy4KCSogYmluYXJ5LmMgKGJmZF9hbGxvYyk6IENhc3QgZW51bSB0byBsb25nLgoJKiBjb2ZmZ2VuLmMgKF9iZmRfY29mZl9pc19sb2NhbF9sYWJlbF9uYW1lKTogQ2FzdCByZXR1cm4gdG8gYm9vbGVhbi4KCSogZHdhcmYyLmMgKHJlYWRfYWJicmV2cyk6IEFkZCBjYXN0cyB0byBlbnVtIHR5cGVzLgoJKHJlYWRfYXR0cmlidXRlX3ZhbHVlKTogTGlrZXdpc2UuCgkoYXJhbmdlX2FkZCk6IENhc3QgcmVzdWx0IG9mIGJmZF96YWxsb2MgY2FsbC4KCShjb21wX3VuaXRfY29udGFpbnNfYWRkcmVzcyk6IFJldHVybiB0cnVlIGFuZCBmYWxzZS4KCShjb21wX3VuaXRfZmluZF9uZWFyZXN0X2xpbmUpOiBDYXN0IHJldHVybiB0byBib29sZWFuLgoJKiBmb3JtYXQuYyAoYmZkX2NoZWNrX2Zvcm1hdF9tYXRjaGVzLCBiZmRfc2V0X2Zvcm1hdCk6IExpa2V3aXNlLgoJKiBnZW4tYW91dC5jOiBkZWZpbmUgbWFjcm8gJ18nIGlmIG5vdCBkZWZpbmVkLgoJKiBsaWJiZmQuYyAoYmZkX3JlYWxsb2MpOiBDYXN0IG1hbGxvYyBhbmQgcmVhbGxvYyB0byBQVFIuCgkoYmZkX2J3cml0ZSk6IENhc3QgYmZkX3JlYWxsb2MgdG8gYmZkX2J5dGUgKi4KCShiZmRfd3JpdGVfYmlnZW5kaWFuXzRieXRlX2ludCk6IENhc3QgcmV0dXJuIHRvIGJvb2xlYW4uCgkoYmZkX3NlZWspOiBDYXN0IGJmZF9yZWFsbG9jIHRvIGJmZF9ieXRlICouCgkoYmZkX2dlbmVyaWNfaXNfbG9jYWxfbGFiZWxfbmFtZSk6IENhc3QgcmV0dXJuIHRvIGJvb2xlYW4uCgkqIGxpYmNvZmYuaCAoX2JmZF9jb2ZmX2FkanVzdF9zeW1uZHgpOiBSZW1vdmUgZXh0cmFuZW91cyAnXCcuCgkqIGxpbmtlci5jIChfYmZkX2xpbmtfaGFzaF9uZXdmdW5jKTogQ2FzdCBiZmRfaGFzaF9hbGxvY2F0ZSByZXN1bHQgdG8KCXN0cnVjdCBiZmRfaGFzaF9lbnRyeSAqLgoJKF9iZmRfZ2VuZXJpY19saW5rX2hhc2hfbmV3ZnVuYyk6IGxpa2V3aXNlLgoJKF9iZmRfZ2VuZXJpY19maW5hbF9saW5rKTogQ2FzdCBlbnVtIHRvIHVuc2lnbmVkIGludC4KCSogbWVyZ2UuYyAoc2VjX21lcmdlX2VtaXQpOiBDYXN0IHJldHVybiB0byBib29sZWFuLgoJKG1lcmdlX3N0cmluZ3MpOiBBZGQgY2FzdHMgdG8gY29uc3QgdW5zaWduZWQgY2hhciAqLgoJKiByZWxvYy5jIChiZmRfZ2V0X3JlbG9jX2NvZGVfbmFtZSk6IENhc3QgZW51bXMgaW4gY29tcGFyaXNvbiB0byBpbnQuCgkoYmZkX2dlbmVyaWNfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnQpOiBDYXN0IGVudW0gdG8gdW5zaWduZWQgaW50LgoJKiBzZWN0aW9uLmMgKGJmZF9zZWN0aW9uX2hhc2hfbmV3ZnVuYyk6IENhc3QgYmZkX2hhc2hfYWxsb2NhdGUgcmVzdWx0Cgl0byBzdHJ1Y3QgYmZkX2hhc2hfZW50cnkgKi4KCShiZmRfc2V0X3NlY3Rpb25fY29udGVudCk6IEFkZCBjYXN0IHRvIFBUUiBpbiBjb21wYXJpc29uLgoJKiBzaW1wbGUuYyAoc2ltcGxlX2R1bW15X3dhcm5pbmcsIHNpbXBsZV9kdW1teV91bmRlZmluZWRfc3ltYm9sLAoJc2ltcGxlX2R1bW15X3JlbG9jX292ZXJmbG93LCBzaW1wbGVfZHVtbXlfcmVsb2NfZGFuZ2Vyb3VzLAoJc2ltcGxlX2R1bW15X3VuYXR0YWNoZWRfcmVsb2MsCgliZmRfc2ltcGxlX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IEFkZCBLJlIgZGVjbGFyYXRpb25zIGFuZAoJZnVuY3Rpb24gZGVmaW5pdGlvbnMuCgkqIHNyZWMuYyAoUzNGb3JjZWQpOiBJbml0aWFsaXplIHRvIGZhbHNlLgoJKHNyZWNfZ2V0X3N5bXRhYik6IENhc3QgcmV0dXJuIHZhbHVlIGZyb20gYmZkX2FsbG9jIHRvIGFzeW1ib2wgKi4KCSogc3RhYnMuYyAoX2JmZF9saW5rX3NlY3Rpb25fc3RhYnMpOiBDYXN0IGVudW0gdG8gaW50IGluIGNvbXBhcmlzb25zLgoJKF9iZmRfZGlzY2FyZF9zZWN0aW9uX3N0YWJzKTogTGlrZXdpc2UuICBBbHNvIGNhc3QgcmV0dXJuIHRvIGJvb2xlYW4uCgkqIHN5bXMuYyAoYmZkX2lzX3VuZGVmaW5lZF9zeW1jbGFzcyk6IENhc3QgcmV0dXJuIHRvIGJvb2xlYW4uCgkoX2JmZF9zdGFiX3NlY3Rpb25fZmluZF9uZWFyZXN0X2xpbmUpOiBDYXN0IGVudW0gdG8gYmZkX2J5dGUgaW4KCWNvbXBhcmlzb25zLgoKMjAwMi0xMC0yMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9jaGVja19yZWxvY3MpOiBPbmx5IHB1dCBtYXliZV9keW5hbWljCglyZWxvY3MgaW50byBzaGFyZWQgbGliIG5vbi1hbGxvY2F0ZWQgcmVsb2Mgc2VjdGlvbnMuCgoyMDAyLTEwLTIzICBOYXRoYW4gVGFsbGVudCAgPGVyYXh4b25AYWx1bW5pLnJpY2UuZWR1PgoKCSogZHdhcmYyLmMgKGFkZF9saW5lX2luZm8pOiBFbnN1cmUgdGhhdCB0aGUgbGluZV9pbmZvX3RhYmxlIGlzCglzb3J0ZWQgZXZlbiB3aGVuIGdpdmVuIGFuIG91dC1vZi1vcmRlciBsaW5lIHNlcXVlbmNlLgoJKGxvb2t1cF9hZGRyZXNzX2luX2xpbmVfaW5mb190YWJsZSk6IFdoZW4gYW4gZXhhY3QgVk1BIG1hdGNoIGlzCglub3QgZm91bmQsIHJldHVybiBsaW5lIGluZm9ybWF0aW9uIHdpdGggdGhlIGNsb3Nlc3QgVk1BLgoKMjAwMi0xMC0yMyBSb3NzIEFsZXhhbmRlciA8cm9zcy5hbGV4YW5kZXJAdWsubmVjZXVyLmNvbT4KCgkqIGVsZjY0LWhwcGEuYzogRm9yY2UgRFRfRkxBR1MgdG8gYWx3YXlzIGJlIHNldC4gIFJlcXVpcmVkIGJ5CglIUFVYIDExLjAwIHBhdGNoIFBIU1NfMjY1NTkuCgoyMDAyLTEwLTIyICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9tb2RpZnlfc2VnbWVudF9tYXApOiBEb24ndCBtb3ZlCgl0aGUgb3B0aW9ucyBzZWN0aW9uIGludG8gYSBzZXBhcmF0ZSBzZWN0aW9uIHVubGVzcyBJUklYIDYKCWNvbXBhdGliaWxpdHkgaXMgZW5hYmxlZC4KCjIwMDItMTAtMjIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmbGluay5oIChzdHJ1Y3QgZWxmX2xpbmtfc29ydF9yZWxhKTogVHVybiByZWwgYW5kIHJlbGEKCWludG8gYXJyYXlzLgoJKGVsZl9saW5rX3NvcnRfY21wMSwgZWxmX2xpbmtfc29ydF9jbXAyKTogQWRqdXN0LgoJKGVsZl9saW5rX3NvcnRfcmVsb2NzKTogTGlrZXdpc2UuICBUYWtlIGludF9yZWxzX3Blcl9leHRfcmVsCglpbnRvIGFjY291bnQuCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfY3JlYXRlX2R5bmFtaWNfcmVsb2NhdGlvbik6IENvbXBvc2UKCVJfTUlQU19SRUwzMiB3aXRoIFJfTUlQUzY0IGlmIEFCSV82NF9QLgoKMjAwMi0xMC0yMSAgR3JhZW1lIFBldGVyc29uICA8Z3BAcW54LmNvbT4KCgkqIHRhcmdldHMuYyAoX2JmZF90YXJnZXRfdmVjdG9yKTogQWRkIG1pc3NpbmcgcW54IHZlY3RvcnMuCgoyMDAyLTEwLTIxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogdGFyZ2V0cy5jIChiZmRfdGFyZ2V0X2xpc3QpOiBEb24ndCByZXR1cm4gdGhlIGRlZmF1bHQgdGFyZ2V0IHR3aWNlLgoKMjAwMi0xMC0yMSAgRWxpYXMgQXRoYW5hc29wb3Vsb3MgIDxlYXRoYW5Ab3RlbmV0LmdyPgoKCSogYXJjaGl2ZS5jIChfYmZkX2FyY2hpdmVfYnNkX3VwZGF0ZV9hcm1hcF90aW1lc3RhbXApOiBSZXBsYWNlCglwZXJyb3Igd2l0aCBiZmRfcGVycm9yLgoKMjAwMi0xMC0xOSAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IENvcnJlY3RseSBoYW5kbGUKCURUX1JQQVRIIGFuZCBEVF9SVU5QQVRILgoKMjAwMi0xMC0xOSAgTWFyayBLZXR0ZW5pcyAgPGtldHRlbmlzQGdudS5vcmc+CgoJKiBlbGYuYyAoZWxmY29yZV9ncm9rX25vdGUpOiBGaXggcmVjb2duaXRpb24gb24gTlRfUFJYRlBSRUcgbm90ZXMuCgoyMDAyLTEwLTE3ICBEZW5pcyBDaGVydHlrb3YgIDxkZW5pc2NAb3ZlcnRhLnJ1PgoKCSogZWxmMzItaXAyay5jIChFTEZfTUFDSElORV9BTFQxKTogRGVmaW5lIGFsdGVybmF0ZSBtYWNoaW5lIGNvZGUKCWZvciBpcDJrIHBvcnQuCgoyMDAyLTEwLTE3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmeHgtdGFyZ2V0LmggKFVTRV9SRUwpOiBEb24ndCBkZWZpbmUgYXMgMS4KCSogZWxmMzItYXJtLmggKFVTRV9SRUwpOiBQcm92aWRlIGEgZGVmYXVsdCBkZWZpbmUgb2YgMC4KCVVzZSAjaWYgcmF0aGVyIHRoYW4gI2lmZGVmIHdoZW4gdGVzdGluZyBVU0VfUkVMLgoJKiBlbGYzMi1tMzJyLmM6IExpa2V3aXNlLgoKCSogZWxmMzItYXJjLmMgKFVTRV9SRUwpOiBEZWZpbmUgYXMgMS4KCSogZWxmMzItZDEwdi5jIChVU0VfUkVMKTogTGlrZXdpc2UuCgkqIGVsZjMyLW0zMnIuYyAoVVNFX1JFTCk6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhoYzExLmMgKFVTRV9SRUwpOiBMaWtld2lzZS4KCSogZWxmMzItbTY4aGMxMi5jIChVU0VfUkVMKTogTGlrZXdpc2UuCgkqIGVsZjMyLW9yMzIuYyAoVVNFX1JFTCk6IExpa2V3aXNlLgoJKiBlbGZhcm0tbmFiaS5jIChVU0VfUkVMKTogTGlrZXdpc2UuCgoyMDAyLTEwLTE2ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5iZmQgKHMzOTAtKi1saW51eCopOiBBZGQgdGFyZzY0X3NlbHZlY3MuCgkoczM5MHgtKi1saW51eCopOiBBZGQgdGFyZ19zZWx2ZWNzLgoKMjAwMi0xMC0xNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtIChCRkQzMl9CQUNLRU5EUyk6IFJlbW92ZSBlbGZhcm1xbngtbmFiaS5sbywKCWVsZjMyLWkzODYtZmJzZC5sbywgZWxmMzItaTM4NnFueC5sbywgZWxmMzItcHBjcW54LmxvLAoJZWxmMzItc2gtbGluLmxvLCBlbGYzMi1zaDY0LWxpbi5sbywgZWxmMzItc2gtbmJzZC5sbywKCWVsZjMyLXNoNjQtbmJzZC5sbywgZWxmMzItc2hxbngubG8uICBBZGQgZWxmMzItcW54LmxvLgoJKEJGRDMyX0JBQ0tFTkRTX0NGSUxFUyk6IExpa2V3aXNlIGZvciBjb3JyZXNwb25kaW5nIEMgZmlsZXMuCgkoQkZENjRfQkFDS0VORFMpOiBSZW1vdmUgZWxmNjQtc2g2NC1saW4ubG8sIGVsZjY0LXNoNjQtbmJzZC5sby4KCShCRkQ2NF9CQUNLRU5EU19DRklMRVMpOiBMaWtld2lzZSBmb3IgY29ycmVzcG9uZGluZyBDIGZpbGVzLgoJKFNPVVJDRV9IRklMRVMpOiBBZGQgZWxmMzItcW54LmguCgkoQlVJTERfSEZJTEVTKTogQWRkIGJmZHZlci5oLgoJUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmUuaW4gVXBkYXRlIGJmZCB2ZWN0b3IgZGVwZW5kZW5jaWVzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGVsZjMyLWkzODYtZmJzZC5jOiBEZWxldGUuICBNb3ZlIGNvZGUgdG8gZWxmMzItaTM4Ni5jLgoJKiBlbGYzMi1pMzg2cW54LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGNxbnguYzogRGVsZXRlLiAgTW92ZSBjb2RlIHRvIGVsZjMyLXBwYy5jLgoJKiBlbGYzMi1zaC1uYnNkLmM6IERlbGV0ZS4gIE1vdmUgY29kZSB0byBlbGYzMi1zaC5jLgoJKiBlbGYzMi1zaC1saW4uYzogTGlrZXdpc2UuCgkqIGVsZjMyLXNocW54LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zaDY0LWxpbi5jOiBEZWxldGUuICBNb3ZlIGNvZGUgdG8gZWxmMzItc2g2NC5jLgoJKiBlbGYzMi1zaDY0LW5ic2QuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXNoNjQtbGluLmM6IERlbGV0ZS4gIE1vdmUgY29kZSB0byBlbGY2NC1zaDY0LmMuCgkqIGVsZjY0LXNoNjQtbmJzZC5jOiBMaWtld2lzZS4KCSogZWxmYXJtcW54LW5hYmkuYzogRGVsZXRlLiAgTW92ZSBjb2RlIHRvIGVsZmFybS1uYWJpLmMuCgkqIGVsZjMyLWFybS5oIChFTEZfTUFYUEFHRVNJWkUpOiBBbHdheXMgZGVmaW5lLgoJKiBlbGYzMi1pMzg2LmM6IFJlbW92ZSBFTEZfQVJDSCBhbmQgRUxGMzJfSTM4Nl9DX0lOQ0xVREVEIHRlc3RzLgoJKiBlbGYzMi1wcGMuYzogUmVtb3ZlIEVMRjMyX1BQQ19DX0lOQ0xVREVEIHRlc3RzLgoJKiBlbGYzMi1xbnguaCAoZWxmX2JhY2tlbmRfc2V0X25vbmxvYWRhYmxlX2ZpbGVwb3MpOiBBbHdheXMgZGVmaW5lLgoJKGVsZl9iYWNrZW5kX2lzX2NvbnRhaW5lZF9ieV9maWxlcG9zKTogTGlrZXdpc2UuCgkoZWxmX2JhY2tlbmRfY29weV9wcml2YXRlX2JmZF9kYXRhX3ApOiBMaWtld2lzZS4KCUdsb2JhbGl6ZSBhbmQgbW92ZSBmdW5jdGlvbnMgdG8uLgoJKiBlbGYzMi1xbnguYzogLi5oZXJlLiAgTmV3IGZpbGUuCgkqIGVsZjMyLXNoLmM6IFJlbW92ZSBFTEZfQVJDSCBhbmQgRUxGMzJfU0hfQ19JTkNMVURFRCB0ZXN0cy4gIERvbid0CgllbWl0IHRhcmdldCB2ZWN0b3JzIHdoZW4gSU5DTFVERV9TSE1FRElBLgoJKiBlbGYzMi1zaDY0LmM6IFJlbW92ZSBFTEZfQVJDSCB0ZXN0LiAgTW92ZSBUQVJHRVRfKiBldGMuIGRlZmluZXMgdG8KCWVuZCBvZiBmaWxlLgoJKiBlbGY2NC1zaDY0LmM6IFJlbW92ZSBFTEZfQVJDSCB0ZXN0LgoJKiBlbGZhcm0tbmFiaS5jOiBSZW1vdmUgRUxGQVJNX05BQklfQ19JTkNMVURFRCB0ZXN0LgoJKiBwby9CTEQtUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL1NSQy1QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMTAtMTYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IEVycm9yIG91dCBvbiBkeW5hbWljIG9iamVjdHMKCWxvYWRlZCB3aXRoIC0tanVzdC1zeW1ib2xzLgoKCSogZWxmMzItaTM4NnFueC5jIChUQVJHRVRfTElUVExFX05BTUUpOiBEZWZpbmUuCgkqIGVsZjMyLXBwY3FueC5jIChUQVJHRVRfTElUVExFX05BTUUsIFRBUkdFVF9CSUdfTkFNRSk6IERlZmluZS4KCSogZWxmMzItc2hxbnguYyAoVEFSR0VUX0xJVFRMRV9OQU1FLCBUQVJHRVRfQklHX05BTUUpOiBEZWZpbmUuCgkqIGVsZmFybXFueC1uYWJpLmMgKFRBUkdFVF9MSVRUTEVfTkFNRSwgVEFSR0VUX0JJR19OQU1FKTogRGVmaW5lLgoKMjAwMi0xMC0xNSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIE1ha2VmaWxlLmFtIChCRkQ2NF9CQUNLRU5EUyk6IFJlbW92ZSBlbGY2NC1hbHBoYS1mYnNkLgoJKEJGRDY0X0JBQ0tFTkRTX0NGSUxFUyk6IExpa2V3aXNlLgoJKiBjb25maWd1cmUuaW4gKGJmZF9lbGY2NF9hbHBoYV9mcmVlYnNkX3ZlYyk6IFVzZSBlbGY2NC1hbHBoYS4KCSogZWxmNjQtYWxwaGEtZmJzZC5jOiBSZW1vdmUgZmlsZSwgbW92ZSBjb2RlIC4uLgoJKiBlbGY2NC1hbHBoYS5jOiAuLi4gaGVyZS4KCSogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZTogUmVidWlsZC4KCjIwMDItMTAtMTQgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKSBbQlJTR1BdOiBJbmNyZW1lbnQKCVZBTFVFLCBub3QgQURERU5ELgoKMjAwMi0xMC0xNCAgU3RlcGhlbiBDbGFya2UgPHN0ZXBoZW4uY2xhcmtlQHN1cGVyaC5jb20+CgoJKiBlbGYzMi1zaC5jIChlbGZfc2hfbGlua19oYXNoX2VudHJ5KTogUmVwbGFjZQoJZGF0YWxhYmVsX2dvdF9vZmZzZXQgd2l0aCB1bmlvbiBvZiBkYXRhbGFiZWxfZ290CglvZmZzZXQgYW5kIHJlZmNvdW50LgoJKHNoX2VsZl9saW5rX2hhc2hfbmV3ZnVuYyk6IEluaXRpYWxpemUgZGF0YWxhYmVsX2dvdC5yZWZjb3VudC4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBEZWxldGUgdW5uZWNlc3NhcnkgY29kZSBmb3IKCVNUVF9EQVRBTEFCRUwgdHlwZS4gIENyZWF0ZSBlbnRyeSBpbiBnb3QgZm9yCglkYXRhbGFiZWwgdmVyc2lvbiBvZiBzeW1ib2wgaWYgZGF0YWxhYmVsX2dvdC5yZWZjb3VudCA+IDAuCgkoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBVc2UgZGF0YWxhYmVsX2dvdCB1bmlvbi4KCShzaF9lbGZfZ2Nfc3dlZXBfaG9vayk6IFB1bGwgY29tbW9uIGNvZGUgdG8gaW5pdGlhbGl6ZQoJaCBhbmQgZWggb3V0IG9mIHN3aXRjaCBzdGF0ZW1lbnQuICBEZWNsYXJlIHNlZW5fc3R0X2RhdGFsYWJlbC4KCUluaXRpYWxpemUgaXQuICBEZWNyZW1lbnQgZGF0YWxhYmVsX2dvdC5yZWZjb3VudCBmb3IKCWdvdCByZWxvY3Mgd2hlbiBzZWVuX3N0dF9kYXRhbGFiZWwgaXMgdHJ1ZS4KCURlY3JlbWVudCBsb2NhbF9nb3RfcmVmY291bnRzIGVudHJ5IGZvciBkYXRhbGFiZWwgZ290IHJlbG9jcwoJb2YgbG9jYWwgc3ltYm9scy4KCShzaF9lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBDb3B5IGRhdGFsYWJlbF9nb3QgZmllbGQgb3Zlci4KCShzaF9lbGZfY2hlY2tfcmVsb2NzKTogRGVjbGFyZSBzZWVuX3N0dF9kYXRhbGFiZWwuCglJbml0aWFsaXplIGl0LiAgV2hlbiBzZWVuX3N0dF9kYXRhbGFiZWwgaXMgdHJ1ZSwgaW5jcmVtZW50CglkYXRhbGFiZWxfZ290IHJlZmNvdW50IHJhdGhlciB0aGFuIGdvdC5yZWZjb3VudC4KCShzaF9lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogQ3JlYXRlIHJlbG9jcyB0bwoJaW5pdGlhbGl6ZSBnb3QgZW50cnkgZm9yIGRhdGFsYWJlbCB2ZXJzaW9uIG9mIHN5bWJvbC4KCjIwMDItMTAtMTQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIuCgkoQkZEX0hfRklMRVMpOiBSZW1vdmUgdmVyc2lvbi5oLgoJKiBiZmQtaW4uaCAoQkZEX1ZFUlNJT04sIEJGRF9WRVJTSU9OX0RBVEUsIEJGRF9WRVJTSU9OX1NUUklORyk6IE1vdmUuLgoJKiB2ZXJzaW9uLmg6IC4udG8gaGVyZS4KCSogY29uZmlndXJlLmluIChiZmRfdmVyc2lvbl9kYXRlKTogUmVtb3ZlLgoJKEFDX09VVFBVVCk6IE1ha2UgYmZkdmVyLmggZnJvbSB2ZXJzaW9uLmguCgkqIGJmZC5jOiAjaW5jbHVkZSAiYmZkdmVyLmgiLgoJKiB2bXMtaGRyLmM6IExpa2V3aXNlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIHBvL1NSQy1QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMTAtMTQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBhcmNodXJlcy5jIChiZmRfbWFjaF9pMzg2X2kzODYsIGJmZF9tYWNoX2kzODZfaTgwODYsCgliZmRfbWFjaF9pMzg2X2kzODZfaW50ZWxfc3ludGF4LCBiZmRfbWFjaF94ODZfNjQsCgliZmRfbWFjaF94ODZfNjRfaW50ZWxfc3ludGF4IGJmZF9tYWNoX3BwYywgYmZkX21hY2hfcHBjNjQsCgliZmRfbWFjaF9yczZrLCBiZmRfbWFjaF9kMTB2LCBiZmRfbWFjaF9zaCwgYmZkX21hY2hfdjg1MCwKCWJmZF9tYWNoX2FyY181LCBiZmRfbWFjaF9hcmNfNiwgYmZkX21hY2hfYXJjXzcsIGJmZF9tYWNoX2FyY184LAoJYmZkX21hY2hfbTMyciwgYmZkX21hY2hfZnJ2LCBiZmRfbWFjaF9mcnZzaW1wbGUsCgliZmRfbWFjaF9pYTY0X2VsZjY0LCBiZmRfbWFjaF9pYTY0X2VsZjMyLAoJYmZkX21hY2hfaXAyMDIyLCBiZmRfbWFjaF9pcDIwMjJleHQsCgliZmRfbWFjaF9zMzkwXzMxLCBiZmRfbWFjaF9zMzkwXzY0LCBiZmRfbWFjaF94c3Rvcm15MTYpOiBSZW51bWJlci4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMi0xMC0xNCAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBjb25maWcuYmZkIChzaCplYi0qLWxpbnV4Kiwgc2gqLSotbGludXgqKTogQWRkIHRoZSBhbHRlcm5hdGl2ZQoJZW5kaWFuIHZlY3RvciB0byB0YXJnX3NlbHZlY3MuCgoyMDAyLTEwLTEzICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfY2FsY3VsYXRlX3JlbG9jYXRpb24pOiBUYWtlCglzYXZlX2FkZGVuZCBhcmd1bWVudC4gIERvbid0IGFwcGx5IHRoZSAzMi1iaXQgbWFzayB0byBhCglHUFJFTDMyIHZhbHVlIGlmIGl0J3MgdG8gYmUgdXNlZCBpbiBhbm90aGVyIHJlbG9jYXRpb24uICBEb24ndAoJdXNlIGZvcmNlZC1jaGVjayBjb21wdXRhdGlvbiBvZiBsb2NhbF9wIHRvIGRlY2lkZSB3aGV0aGVyIHRvCglhZGQgZ3AwIHRvIEdQUkVMMTYgdmFsdWUuICBEb24ndCB1c2Ugb25seSB0aGUgbG93ZXN0IDE2IGJpdHMKCW9mIHRoZSBhZGRlbmQgb2YgYSBub24taW4tcGxhY2UgR1BSRUwxNiByZWxvY2F0aW9uLgoJKF9iZmRfbWlwc19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFBhc3MgdXNlX3NhdmVkX2FkZGVuZF9wIHRvCgltaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbigpLgoKMjAwMi0xMC0xMiAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBlbGYzMi1tNjhoYzExLmMgKG02OGhjMTFfZWxmX3JlbGF4X3NlY3Rpb24pOiBEb24ndCB0cmVhdCByZWxvY3MKCXdpdGggc3ltYm9scyBpbiBvdGhlciBzZWN0aW9ucyBpZiB3ZSByZWxheGVkIHNvbWV0aGluZzsgIHRoZSBzZWN0aW9ucwoJb3V0cHV0IG9mZnNldHMgbXVzdCBiZSByZS1jb21wdXRlZCBiZWZvcmUuCgoyMDAyLTEwLTEyICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGVsZjMyLW02OGhjMTEuYyAobTY4aGMxMV9lbGZfcmVsYXhfc2VjdGlvbik6IFVwZGF0ZSBzeW1ib2xzCgloYW5kbGluZyB0byB1c2UgRWxmX0ludGVybmFsX1N5bS4KCShtNjhoYzExX2VsZl9yZWxheF9kZWxldGVfYnl0ZXMpOiBMaWtld2lzZS4KCjIwMDItMTAtMTEgIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCSogZWxmMzItc2guYyAoc2hfZWxmX29wdGltaXplZF90bHNfcmVsb2MsIHNoX2VsZl9ta29iamVjdCwKCXNoX2VsZl9vYmplY3RfcCwgZHRwb2ZmX2Jhc2UpOiBOZXcgZnVuY3Rpb25zLgoJKHNoX2VsZl9ob3d0b190YWJsZSk6IEFkZCBUTFMgcmVsb2NzLgoJKHNoX3JlbG9jX21hcCk6IExpa2V3aXNlLgoJKHNoX2VsZl9pbmZvX3RvX2hvd3RvKTogU3VwcG9ydCBUTFMgcmVsb2NzLgoJKGVsZl9zaF9saW5rX2hhc2hfZW50cnkpOiBBZGQgdGxzX3R5cGUgYW5kIHRsc190cG9mZjMyLgoJKHNoX2VsZl9oYXNoX2VudHJ5LCBzaF9lbGZfdGRhdGEsIHNoX2VsZl9sb2NhbF9nb3RfdGxzX3R5cGUpOgoJTmV3IG1hY3Jvcy4KCShzaF9lbGZfb2JqX3RkYXRhKTogTmV3LgoJKGVsZl9zaF9saW5rX2hhc2hfdGFibGUpOiBBZGQgdGxzX2xkbV9nb3QuCgkoc2hfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBDbGVhciByZWZjb3VudCBvZiB0bHNfbGRtX2dvdC4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBTdXBwb3J0IFRMUyByZWxvY3MuCgkoc2hfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogU3VwcG9ydCBUTFMgcmVsb2NzLiAgRG9uJ3QgdHJ5IHRvIGZpbmQKCS5yZWxhLmdvdCBzZWN0aW9uIHdoZW4gZm91bmQgYWxyZWFkeS4gIFJldHVybiBmYWxzZSBhZnRlciBwcmludGluZwoJZXJyb3IgYWJvdXQgdW5yZXNvbHZhYmxlIHJlbG9jYXRpb24uCgkoc2hfZWxmX2djX3N3ZWVwX2hvb2spOiBTdXBwb3J0IFRMUyByZWxvY3MuCgkoc2hfZWxmX2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLgoJKHNoX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCShiZmRfZWxmMzJfbWtvYmplY3QsIGVsZl9iYWNrZW5kX29iamVjdF9wKTogRGVmaW5lIGZvciBUTFMgY2FzZS4KCSogcmVsb2MuYzogQWRkIFNIIFRMUyByZWxvY3MuCgkqIGJmZC1pbjIuaCwgbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgoyMDAyLTEwLTExICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KCjIwMDItMTAtMTEgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogTWFrZWZpbGUuYW06IFJ1biBkZXAtYW0uCgkoQkZEX0hfREVQKTogQWRkIHNpbXBsZS5jIGFuZCBsaW5rZXIuYy4KCShCRkQzMl9MSUJTKTogQWRkIHNpbXBsZS5sby4KCShCRkQzMl9MSUJTX0NGSUxFUyk6IEFkZCBzaW1wbGUuYy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGVkLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGVkLgoJKiBzaW1wbGUuYzogTmV3IGZpbGUuCgoyMDAyLTEwLTExICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29mZi1hcm0uYyAocmVjb3JkX2FybV90b190aHVtYl9nbHVlKTogQXZvaWQgdHlwZS1wdW5uZWQgcG9pbnRlcnMuCgkocmVjb3JkX3RodW1iX3RvX2FybV9nbHVlKTogTGlrZXdpc2UuCgkqIGVjb2ZmLmMgKGVjb2ZmX2xpbmtfYWRkX2V4dGVybmFscyk6IExpa2V3aXNlLgoJKiBlbGYzMi1hcm0uaCAocmVjb3JkX2FybV90b190aHVtYl9nbHVlKTogTGlrZXdpc2UuCgkocmVjb3JkX3RodW1iX3RvX2FybV9nbHVlKTogTGlrZXdpc2UuCgkqIGVsZjMyLW0zMnIuYyAobTMycl9lbGZfYWRkX3N5bWJvbF9ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGYzMi1zaDY0LmMgKHNoNjRfZWxmX2FkZF9zeW1ib2xfaG9vayk6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYyAoZnVuY19kZXNjX2FkanVzdCk6IExpa2V3aXNlLgoJKiBlbGY2NC1zaDY0LmMgKHNoNjRfZWxmNjRfYWRkX3N5bWJvbF9ob29rKTogTGlrZXdpc2UuCgkoc2g2NF9lbGY2NF9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX2NyZWF0ZV9nb3Rfc2VjdGlvbik6IExpa2V3aXNlLgoJKF9iZmRfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfY3JlYXRlX2xpbmtlcl9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZmxpbmsuaCAoZWxmX2FkZF9kZWZhdWx0X3N5bWJvbCk6IExpa2V3aXNlLgoJKGVsZl9saW5rX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoTkFNRShiZmRfZWxmLHNpemVfZHluYW1pY19zZWN0aW9ucykpOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X2FpeF9hZGRfc3ltYm9sX2hvb2spOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9jcmVhdGVfZ290X3NlY3Rpb24pOiBMaWtld2lzZS4KCShfYmZkX21pcHNfZWxmX2FkZF9zeW1ib2xfaG9vayk6IExpa2V3aXNlLgoJKF9iZmRfbWlwc19lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogbGlua2VyLmMgKGdlbmVyaWNfbGlua19hZGRfc3ltYm9sX2xpc3QpOiBMaWtld2lzZS4KCSogeGNvZmZsaW5rLmMgKHhjb2ZmX2xpbmtfYWRkX3N5bWJvbHMpOiBMaWtld2lzZS4KCgkqIGVsZnh4LWlhNjQuYyAob29yX2JybCwgb29yX2lwKTogQ29uZGl0aW9uYWxseSBkZWZpbmUuCgoJKiBlbGY2NC1wcGMuYyAoZWRpdF9vcGQpOiBPbmx5IHplcm8gb3BkIHN5bXMgd2hlbiBmdW5jdGlvbiBpcwoJY29tcGxldGVseSByZW1vdmVkLiAgQ29ycmVjdCBsb2NhbCBzeW0gYWRqdXN0bWVudC4KCjIwMDItMTAtMTAgIFN0ZXBoZW4gQ2xhcmtlIDxzdGVwaGVuLmNsYXJrZUBzdXBlcmguY29tPgoKCSogZWxmMzItc2guYyAoZWxmX3NoX3BpY19wbHRfZW50cnlfYmUsIGVsZl9zaF9waWNfcGx0X2VudHJ5X2xlKToKCUNvcnJlY3QgbWlzdGFrZSBpbiBjYWxjdWxhdGlvbiBvZiBhZGRyZXNzIG9mIC5nb3QuCgkqIGVsZjY0LXNoNjQuYyAoZWxmX3NoNjRfcGljX3BsdF9lbnRyeV9iZSwKCWVsZl9zaDY0X3BpY19wbHRfZW50cnlfbGUpOiBMaWtld2lzZS4KCjIwMDItMTAtMDkgIFJpY2hhcmQgU2hhbm4gPHJpY2hhcmQuc2hhbm5Ac3VwZXJoLmNvbT4KCSAgICBTdGVwaGVuIENsYXJrZSA8c3RlcGhlbi5jbGFya2VAc3VwZXJoLmNvbT4KCgkqIE1ha2VmaWxlLmFtOiBBZGQgZW50cmllcyBmb3IgZWxmMzItc2g2NC1saW4uYyBhbmQKCWVsZjY0LXNoNjQtbGluLmMuIFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWcuYmZkOiBDaGFuZ2Ugc2g2NGViLSotbGludXgqIGFuZCBzaDY0LSotbGludXgqCgl0byB1c2Ugc2g2NCB2ZWN0b3JzIHJhdGhlciB0aGFuIHNoIHZlY3RvcnMuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGJmZF9lbGYzMl9zaDY0bGluX3ZlYywgYmZkX2VsZjMyX3NoNjRibGluX3ZlYywKCWJmZF9lbGY2NF9zaDY0bGluX3ZlYywgYmZkX2VsZjY0X3NoNjRibGluX3ZlYy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBlbGYzMi1zaDY0LWxpbi5jOiBOZXcgZmlsZS4KCSogZWxmNjQtc2g2NC1saW4uYzogTmV3IGZpbGUuCgkqIHRhcmdldHMuYzogQWRkIGJmZF9lbGYzMl9zaDY0bGluX3ZlYywgYmZkX2VsZjMyX3NoNjRibGluX3ZlYywKCWJmZF9lbGY2NF9zaDY0bGluX3ZlYywgYmZkX2VsZjY0X3NoNjRibGluX3ZlYy4KCjIwMDItMTAtMDggIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogUmUtYXJyYW5nZSB0aGUKCUlFLT5MRSB0cmFuc2l0aW9uIGZvciBSXzM4Nl9UTFNfSUUuCgoyMDAyLTEwLTA4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKGVkaXRfb3BkKTogQ29ycmVjdCB0ZXN0IGZvciBkaXNjYXJkZWQgc2VjdGlvbnMuCgoyMDAyLTEwLTA3ICBNYXJrIEVsYnJlY2h0ICA8c25vd2JhbGwzQHNvZnRob21lLm5ldD4KCgkqIGNvZmZsaW5rLmMgKG1hcmtfcmVsb2NzKTogRG9uJ3QgbWFyayByZWxvY2F0aW9ucyBpbiBleGNsdWRlZAoJc2VjdGlvbnMuCgoyMDAyLTEwLTA3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmbGluay5oIChlbGZfbGlua19pbnB1dF9iZmQpOiBSZW1vdmUgQkZEX1ZFUlNJT05fREFURSBkZXBlbmRlbnQKCWNvZGUuCgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2J1aWxkX3N0dWJzKTogSW5jcmVtZW50IC5nbGluayBpbmR4LgoKMjAwMi0xMC0wNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIG9wbmNscy5jOiBGb3JtYXR0aW5nLgoJKF9iZmRfbmV3X2JmZCk6IFVzZSBhIHNtYWxsZXIgc2VjdGlvbiBoYXNoIHRhYmxlLgoKMjAwMi0xMC0wNSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2NyZWF0ZV9keW5hbWljX3JlbG9jYXRpb24pOiBTZXQgdGhlIHR5cGUKCW9mIHRoZSBvdGhlciB0d28gcmVsb2NhdGlvbnMgcGFja2VkIHdpdGggYSBSRUwzMiB0byBOT05FLgoKMjAwMi0xMC0wMiAgU3RlcGhlbiBDbGFya2UgPHN0ZXBoZW4uY2xhcmtlQHN1cGVyaC5jb20+CgoJKiBlbGYzMi1zaC5jIChlbGZfc2hfbGlua19oYXNoX2VudHJ5KTogQWRkIGdvdHBsdF9yZWZjb3VudC4KCShzaF9lbGZfbGlua19oYXNoX25ld2Z1bmMpOiBJbml0aWFsaXplIGl0LgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IFRyYW5zZmVyIGdvdHBsdCByZWZzIGZyb20gcGx0LnJlZmNvdW50Cgl0byBnb3QucmVmY291bnQgZm9yIHN5bWJvbHMgdGhhdCBhcmUgZm9yY2VkIGxvY2FsIG9yIHdoZW4KCXdlIGhhdmUgZGlyZWN0IGdvdCByZWZzLgoJKHNoX2VsZl9nY19zd2VlcF9ob29rKTogQWRqdXN0IGdvdHBsdF9yZWZjb3VudC4gIFVzZSBpdAoJdG8gY29ycmVjdGx5IGFkanVzdCBnb3QucmVmY291bnQgYW5kIHBsdC5yZWZjb3VudC4KCShzaF9lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBDb3B5IGdvdHBsdF9yZWZjb3VudCBhY3Jvc3MuCgkoc2hfZWxmX2NoZWNrX3JlbG9jcyk6IEluY3JlbWVudCBnb3RwbHRfcmVmY291bnQuCgoyMDAyLTEwLTAxICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IEZpeAoJbW92bCBmb29AaW5kbnRwb2ZmLCAlZWF4IElFLT5MRSB0cmFuc2l0aW9uLgoKMjAwMi0xMC0wMSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBDaGFuZ2UgVExTR0QKCXNlcXVlbmNlIGFuZCBpdHMgdHJhbnNpdGlvbnMuCgoyMDAyLTEwLTAxICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IFJlc29sdmUgUl8zODZfVExTX0xET18zMgoJdG8gc3RfdmFsdWUgKyBhZGRlbmQgaW4gbm9uLWNvZGUgc2VjdGlvbnMuCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IFJlc29sdmUKCVJfWDg2XzY0X0RUUE9GRjMyIHRvIHN0X3ZhbHVlICsgYWRkZW5kIGluIG5vbi1jb2RlIHNlY3Rpb25zLgoKMjAwMi0wOS0zMCAgR2F2aW4gUm9taWctS29jaCAgPGdhdmluQHJlZGhhdC5jb20+CgkgICAgS2VuIFJhZWJ1cm4gIDxyYWVidXJuQGN5Z251cy5jb20+CgkgICAgQWxkeSBIZXJuYW5kZXogIDxhbGR5aEByZWRoYXQuY29tPgoJICAgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoJICAgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGFyY2h1cmVzLmMgKGJmZF9tYWNoX21pcHM0MTIwLCBiZmRfbWFjaF9taXBzNTQwMCk6IE5ldy4KCShiZmRfbWFjaF9taXBzNTUwMCk6IE5ldy4KCSogY3B1LW1pcHMuYyAoSV9taXBzNDEyMCwgSV9taXBzNTQwMCwgSV9taXBzNTUwMCk6IE5ldy4KCShhcmNoX2luZm9fc3RydWN0KTogQWRkIGNvcnJlc3BvbmRpbmcgZW50cmllcyBoZXJlLgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfZWxmX21pcHNfbWFjaCk6IEhhbmRsZSBFX01JUFNfTUFDSF80MTIwLAoJRV9NSVBTX01BQ0hfNTQwMCBhbmQgRV9NSVBTX01BQ0hfNTUwMC4KCShfYmZkX21pcHNfZWxmX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBIYW5kbGUgYmZkX21hY2hfbWlwczQxMjAsCgliZmRfbWFjaF9taXBzNTQwMCBhbmQgYmZkX21hY2hfbWlwczU1MDAuCgkoX2JmZF9taXBzX2VsZl9tYWNoX2V4dGVuZHNfcCk6IE5ldyBmdW5jdGlvbi4KCShfYmZkX21pcHNfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBVc2UgaXQgdG8gaGVscCBtZXJnZQoJdGhlIEVGX01JUFNfTUFDSCBmbGFncy4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMi0wOS0yOCAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGVsZjMyLXZheC5jIChlbGZfdmF4X3NpemVfZHluYW1pY19zZWN0aW9uKTogRG9uJ3Qgc3RyaXAKCS5nb3Qgc2VjdGlvbnMuCgoyMDAyLTA5LTI4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLmMgKG1hcF9zZWN0aW9uc190b19zZWdtZW50cyk6IENvcnJlY3QgdGVzdCBmb3Igc3RhcnQgb2YKCXdyaXRhYmxlIHNlY3Rpb24gaW4gdGhlIHNhbWUgcGFnZSBhcyBlbmQgb2YgcmVhZC1vbmx5IHNlY3Rpb24uCgoyMDAyLTA5LTI3ICBNYXR0IFRob21hcyAgPG1hdHRAM2FtLXNvZnR3YXJlLmNvbT4KCgkqIGVsZjMyLXZheC5jIChlbGZfdmF4X2NoZWNrX3JlbG9jcyk6IFJlbW92ZSB1bnVzZWQKCWxvY2FsX2dvdF9yZWZjb3VudHMgdXNhZ2UuICBSZW1vdmUgYWxsb2NhdGlvbiBvZiBnb3Qgc2xvdC4KCShlbGZfdmF4X2djX3N3ZWVwX2hvb2spOiBSZW1vdmUgdW51c2VkIGxvY2FsX2dvdF9yZWZjb3VudHMgdXNhZ2UuCglSZW1vdmUgZGUtYWxsb2NhdGlvbiBvZiBnb3Qgc2xvdC4KCShlbGZfdmF4X3NpemVfZHluYW1pY19zZWN0aW9uKTogRml4IHNvbWUgaW5kZW50YXRpb24uICBBZGQgaGFzaAoJdHJhdmVyc2FsIGZvciBlbGZfdmF4X2luc3RhbnRpYXRlX2dvdF9lbnRyaWVzLiAgQWxsb3cgZW1wdHkgLmdvdAoJc2VjdGlvbnMgdG8gYmUgR0MnZWQuCgkoZWxmX3ZheF9pbnN0YW50aWF0ZV9nb3RfZW50cmllcyk6IE5ldyBmdW5jdGlvbi4KCShlbGZfdmF4X3JlbG9jYXRlX3NlY3Rpb24pOiBTaW1wbGlmeSBSX1ZBWF9HT1QzMiBoYW5kbGluZy4gIFJlbW92ZQoJdGVzdHMgdGhhdCBhcmUgbm93IGhhbmRsZWQgYnkgZWxmX3ZheF9pbnN0YW50aWF0ZV9nb3RfZW50cmllcy4KCUFzc2VydCBHT1QgZW50cnkgZmFsbHMgd2l0aGluIC5nb3Qgc2VjdGlvbiBzaXplLiAgUmVtb3ZlIHJlZHVuZGFudAoJY29tcGFyaXNpb25zLiAgRml4IGNvbW1lbnRzLgoKMjAwMi0wOS0yNyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiByZWxvYy5jOiBBZGQgeDg2LTY0IFRMUyByZWxvY3MuCgkqIGJmZC1pbjIuaCwgbGliYmZkLmg6IFJlYnVpbHQuCgkqIGVsZjY0LXg4Ni02NC5jICh4ODZfNjRfZWxmX2hvd3RvKTogRml4IHNpemUgZmllbGRzIGZvciAzMi1iaXQKCXJlbG9jcy4gIEFkZCBUTFMgcmVsb2NzLgoJKHg4Nl82NF9yZWxvY19tYXApOiBBZGQgVExTIHJlbG9jcy4KCShlbGY2NF94ODZfNjRfaW5mb190b19ob3d0byk6IEFkanVzdCBmb3IgYWRkZWQgVExTIHJlbG9jcy4KCShzdHJ1Y3QgZWxmNjRfeDg2XzY0X2xpbmtfaGFzaF9lbnRyeSk6IEFkZCB0bHNfdHlwZSBmaWVsZC4KCShHT1RfVU5LTk9XTiwgR09UX05PUk1BTCwgR09UX1RMU19HRCwgR09UX1RMU19JRSk6IERlZmluZS4KCShlbGY2NF94ODZfNjRfaGFzaF9lbnRyeSk6IERlZmluZS4KCShzdHJ1Y3QgZWxmNjRfeDg2XzY0X29ial90ZGF0YSk6IE5ldy4KCShlbGY2NF94ODZfNjRfdGRhdGEsIGVsZjY0X3g4Nl82NF9sb2NhbF9nb3RfdGxzX3R5cGUpOiBEZWZpbmUuCgkoc3RydWN0IGVsZjY0X3g4Nl82NF9saW5rX2hhc2hfdGFibGUpOiBBZGQgdGxzX2xkX2dvdC4KCShsaW5rX2hhc2hfbmV3ZnVuYyk6IEluaXRpYWxpemUgdGxzX3R5cGUuCgkoZWxmNjRfeDg2XzY0X2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBJbml0aWFsaXplIHRsc19sZF9nb3QuCgkoZWxmNjRfeDg2XzY0X2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogU3dhcCB0bHNfdHlwZSBpZiBuZWNlc3NhcnkuCgkoZWxmNjRfeDg2XzY0X21rb2JqZWN0KTogTmV3LgoJKGVsZjY0X3g4Nl82NF9lbGZfb2JqZWN0X3ApOiBBbGxvY2F0ZSBzdHJ1Y3QgZWxmNjRfeDg2XzY0X29ial90ZGF0YS4KCShlbGY2NF94ODZfNjRfdGxzX3RyYW5zaXRpb24pOiBOZXcuCgkoZWxmNjRfeDg2XzY0X2NoZWNrX3JlbG9jcyk6IEFkZCByX3R5cGUgdmFyaWFibGUgYW5kIHVzZSBpdC4KCUhhbmRsZSBUTFMgcmVsb2NzLgoJKGVsZjY0X3g4Nl82NF9nY19zd2VlcF9ob29rKTogSGFuZGxlIFRMUyByZWxvY3MuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogQWxsb2NhdGUgR09UIHNwYWNlIGZvciBUTFMgcmVsb2NzLgoJKGVsZjY0X3g4Nl82NF9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShkdHBvZmZfYmFzZSwgdHBvZmYpOiBOZXcuCgkoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBIYW5kbGUgVExTIHJlbG9jcy4KCShlbGY2NF94ODZfNjRfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogT25seSBoYW5kbGUgbm9uLVRMUyBHT1QKCWVudHJpZXMuCgkoYmZkX2VsZjY0X21rb2JqZWN0KTogRGVmaW5lLgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9jaGVja19yZWxvY3MpIFtSXzM4Nl9UTFNfTEVdOiBTZXQKCURGX1NUQVRJQ19UTFMgaWYgc2hhcmVkLgoKMjAwMi0wOS0yNiAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9mYWtlX3NlY3Rpb25zKTogRG9uJ3QgZW1pdCB1bm5lZWRlZAoJZW1wdHkgcmVsb2NhdGlvbiBzZWN0aW9ucy4KCjIwMDItMDktMjYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjX2J1aWxkX29uZV9zdHViKTogRG9uJ3QgYnVpbGQgZ2xpbmsgc3R1YnMgaGVyZS4KCShwcGM2NF9lbGZfYnVpbGRfc3R1YnMpOiBCdWlsZCB0aGVtIGhlcmUgaW5zdGVhZC4KCjIwMDItMDktMjQgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmMzItc3BhcmMuYyAoZWxmMzJfc3BhcmNfcmVsb2NhdGVfc2VjdGlvbik6IFB1dCBSX1NQQVJDX1JFTEFUSVZFCglhZGRlbmQgaW50byByX2FkZGVuZCwgbm90ICpyX29mZnNldC4KCShlbGYzMl9zcGFyY19maW5pc2hfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogQ2xlYXIgeHdvcmQgYXQKCVJfU1BBUkNfUkVMQVRJVkUncyByX29mZnNldC4KCjIwMDItMDktMjMgIE5hdGhhbiBUYWxsZW50ICA8ZXJheHhvbkBhbHVtbmkucmljZS5lZHU+CgoJKiBkd2FyZjIuYyAoZGVjb2RlX2xpbmVfaW5mbyk6IFVwZGF0ZSB0byBjb3JyZWN0bHkgZGVjb2RlCgl0aGUgKG5vbi1zdGFuZGFyZCBEV0FSRjIpIG91dC1vZi1vcmRlciBhZGRyZXNzIHNlcXVlbmNlcwoJZ2VuZXJhdGVkIGJ5IHRoZSBJbnRlbCBDKysgNi4wIGNvbXBpbGVyIGZvciBpYTY0LUxpbnV4LgoKMjAwMi0wOS0yMyAgTWFyayBFbGJyZWNodCAgPHNub3diYWxsM0Bzb2Z0aG9tZS5uZXQ+CgoJKiBjb25maWcuYmZkOiBGb3IgREpHUFAgdGFyZ2V0cywgbWF0Y2ggd2l0aCBhbnkgY3B1IGFuZCBhbnkgbWFjaGluZS4KCjIwMDItMDktMjMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYtZWgtZnJhbWUuYyAoX2JmZF9lbGZfZGlzY2FyZF9zZWN0aW9uX2VoX2ZyYW1lKTogWmVybyByZWxvY3MKCWZvciBkaXNjYXJkZWQgRkRFcy4gIFJlbW92ZSByZWR1bmRhbnQgYXNzaWdubWVudC4KCSogZWxmbGluay5oIChlbGZfYmZkX2Rpc2NhcmRfaW5mbyk6IFNhdmUgZWRpdGVkIHJlbG9jcy4KCjIwMDItMDktMjIgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfbWVyZ2VfaW5kX3N5bWJvbHMpOiBEb24ndCBtZXJnZQoJdGhlIHJlbG9jYXRpb24gY291bnQgYmV0d2VlbiBkaWZmZXJlbnQgLnJlbG9jIHNlY3Rpb25zLgoKMjAwMi0wOS0yMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBBbGxvdyAiLnNic3MuKiIgYW5kCgkiLnNkYXRhLioiIGZvciBSX1BQQ19TREFSRUwxNiwgIi5zYnNzMioiIGFuZCAiLnNkYXRhMioiIGZvcgoJUl9QUENfRU1CX1NEQTJSRUwuICBTaW1pbGFybHkgZm9yIFJfUFBDX0VNQl9TREEyMSBhbmQKCVJfUFBDX0VNQl9SRUxTREEuCgoJKiBlbGZjb2RlLmggKGVsZl9zbHVycF9yZWxvY190YWJsZV9mcm9tX3NlY3Rpb24pOiBNYWtlICJzeW1jb3VudCIKCXVuc2lnbmVkLiAgTW92ZSAic3ltY291bnQiIGFzc2lnbm1lbnQgb3V0IG9mIGxvb3AuCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogcG8vU1JDLVBPVEZJTEVTLmluOiBSZWduZXJhdGUuCgoyMDAyLTA5LTE5ICBOYXRoYW4gVGFsbGVudCAgPGVyYXh4b25AYWx1bW5pLnJpY2UuZWR1PgoKCSogZHdhcmYyLmMgKF9iZmRfZHdhcmYyX2ZpbmRfbmVhcmVzdF9saW5lKTogSWYgYWRkcmVzcyBsZW5ndGggaXMKCXplcm8sIHNldCBpdCB0byA4IGZvciAobm9uLXN0YW5kYXJkKSA2NC1iaXQgRFdBUkYyIGZvcm1hdHMKCShlLmcuIElSSVg2NCkuCgoyMDAyLTA5LTE5ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IENsZWFyIC5nb3Qgd29yZAoJZXZlbiBpZiBnZW5lcmF0aW5nIFJfUFBDX1JFTEFUSVZFIHJlbG9jLgoJKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IE1ha2Ugc3VyZSByZWxvY2F0aW9uIGlzIHBlcmZvcm1lZAoJaWYgc2tpcCA9PSAtMi4gIENsZWFyIG1lbW9yeSBhdCByX29mZnNldCB3aGVuIGNyZWF0aW5nIGR5bmFtaWMKCXJlbG9jYXRpb24uCgoyMDAyLTA5LTE5ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHJlbG9jLmMgKEJGRF9SRUxPQ18zODZfVExTX1RQT0ZGLCBCRkRfUkVMT0NfMzg2X1RMU19JRSwKCUJGRF9SRUxPQ18zODZfVExTX0dPVElFKTogQWRkLgoJKiBiZmQtaW4yLmgsIGxpYmJmZC5oOiBSZWJ1aWx0LgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9ob3d0b190YWJsZSk6IEFkZCBSXzM4Nl9UTFNfVFBPRkYsIFJfMzg2X1RMU19JRQoJYW5kIFJfMzg2X1RMU19HT1RJRS4KCShlbGZfaTM4Nl9yZWxvY190eXBlX2xvb2t1cCk6IEhhbmRsZSBpdC4KCShzdHJ1Y3QgZWxmX2kzODZfbGlua19oYXNoX2VudHJ5KTogQ2hhbmdlIHRsc190eXBlIHR5cGUgdG8gdW5zaWduZWQKCWNoYXIgaW5zdGVhZCBvZiBlbnVtLCBjaGFuZ2UgR09UXyogaW50byBkZWZpbmVzLgoJKEdPVF9UTFNfSUVfUE9TLCBHT1RfVExTX0lFX05FRywgR09UX1RMU19JRV9CT1RIKTogRGVmaW5lLgoJKGVsZl9pMzg2X3Rsc190cmFuc2l0aW9uKTogSGFuZGxlIFJfMzg2X1RMU19JRSBhbmQgUl8zODZfVExTX0dPVElFLgoJKGVsZl9pMzg2X2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLiAgQXZvaWQgY3Jhc2ggaWYgbG9jYWwgc3ltYm9sIGlzCglhY2Nlc3NlZCBib3RoIGFzIG5vcm1hbCBhbmQgVExTIHN5bWJvbC4gIE1vdmUgUl8zODZfVExTX0xETSBhbmQKCVJfMzg2X1BMVDMyIGNhc2VzIHNvIHRoYXQgUl8zODZfVExTX0lFIGNhbiBmYWxsIHRocm91Z2guCglIYW5kbGUgUl8zODZfVExTX0xFXzMyIGFuZCBSXzM4Nl9UTFNfTEUgaW4gc2hhcmVkIGxpYnMuCgkoZWxmX2kzODZfZ2Nfc3dlZXBfaG9vayk6IEhhbmRsZSBSXzM4Nl9UTFNfSUUgYW5kIFJfMzg2X1RMU19HT1RJRS4KCUhhbmRsZSBSXzM4Nl9UTFNfTEVfMzIgYW5kIFJfMzg2X1RMU19MRSBpbiBzaGFyZWQgbGlicy4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBBbGxvY2F0ZSAyIC5nb3QgYW5kIDIgLnJlbC5nb3QgZW50cmllcyBpZgoJdGxzX3R5cGUgaXMgR09UX1RMU19JRV9CT1RILgoJKGVsZl9pMzg2X3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBIYW5kbGUgUl8zODZfVExTX0lFIGFuZCBSXzM4Nl9UTFNfR09USUUuCglIYW5kbGUgUl8zODZfVExTX0xFXzMyIGFuZCBSXzM4Nl9UTFNfTEUgaW4gc2hhcmVkIGxpYnMuCgkoZWxmX2kzODZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogVXNlIHRsc190eXBlICYgR09UX1RMU19JRSB0byBjYXRjaAoJYWxsIDQgR09UX1RMU18qIFRMUyB0eXBlcy4KCjIwMDItMDktMTkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbGZsaW5rLmggKGVsZl9maXhfc3ltYm9sX2ZsYWdzKTogV2hlbiBleGFtaW5pbmcgd2VhayBzeW1ib2xzLAoJZm9sbG93IGluZGlyZWN0IGxpbmtzLgoKMjAwMi0wOS0xOSAgTmF0aGFuIFRhbGxlbnQgIDxlcmF4eG9uQGFsdW1uaS5yaWNlLmVkdT4KCgkqIGVjb2Zmc3dhcC5oIChlY29mZl9zd2FwX3Bkcl9pbikgPGlzeW0sIGlsaW5lPjogVXBkYXRlIHRvCgljb3JyZWN0bHkgc2lnbi1leHRlbmQgMzItYml0IEVDT0ZGIG51bGwgdmFsdWVzICgweGZmZmZmZmZmLCAtMSkKCW9uIDY0IGJpdCBtYWNoaW5lcy4KCShlY29mZl9zd2FwX3N5bV9pbikgPGlzcz46IExpa2V3aXNlLgoJKiBlY29mZi5jIChfYmZkX2Vjb2ZmX3NsdXJwX3N5bWJvbGljX2luZm8pOiBGaXggZXJyb3IgcmVhZGluZwoJRUNPRkYgaW5mb3JtYXRpb246ICdpb3B0TWF4JyByZWZlcnMgdG8gdGhlIGFjdHVhbCAqc2l6ZSoKCW9mIHRoZSBvcHRpbWl6YXRpb24gc3ltdGFiLCBub3QgdGhlIG51bWJlciBvZiBlbnRyaWVzLgoKMjAwMi0wOS0xOSAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IFVwZGF0ZQoJRUxGX0xJTktfSEFTSF9ORUVEU19QTFQgbG9naWMuCgoyMDAyLTA5LTE4ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGVsZmNvZGUuaCAoZWxmX3NsdXJwX3JlbG9jX3RhYmxlX2Zyb21fc2VjdGlvbik6IENoZWNrCgljb3JyZWN0IHJlbG9jYXRpb24gY291bnQuCgoyMDAyLTA5LTE3ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGJmZC1pbi5oIChiZmRfZ2V0X2R5bmFtaWNfc3ltY291bnQpOiBEZWZpbmUuCgkqIGJmZC5jIChzdHJ1Y3QgX2JmZCk6IEFkZCBkeW5zeW1jb3VudC4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlZC4KCSogZWxmLmMgKF9iZmRfZWxmX2Nhbm9uaWNhbGl6ZV9keW5hbWljX3N5bXRhYik6IFNldAoJYWJmZC0+ZHluc3ltY291bnQuCgkqIGVsZmNvZGUuaCAoZWxmX3NsdXJwX3JlbG9jX3RhYmxlX2Zyb21fc2VjdGlvbik6IENoZWNrCglmb3Igb3ZlcmZsb3cuCgoyMDAyLTA5LTE3ICBTdGFuIENveCA8c2NveEByZWRoYXQuY29tPgoKCSogZWxmNjQtbWlwcy5jIChtaXBzX2VsZjY0X2JlX3N3YXBfcmVsb2NhX291dCk6IEhhbmRsZSB0eXBlMiBhbmQgdHlwZTMuCgkobWlwc19lbGY2NF9maW5hbF9ncCk6IERvbid0IG1ha2UgdXAgZ3AgdmFsdWUuCgkqIGVsZm4zMi1taXBzLmMgKG1pcHNfZWxmX2ZpbmFsX2dwKTogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9maW5hbF9saW5rKTogQWx3YXlzIGNyZWF0ZQoJLk1JUFMub3B0aW9ucy8ub3B0aW9ucyBzZWN0aW9uLgoKMjAwMi0wOS0xNyAgRGF2aWQgTydCcmllbiAgPG9icmllbkBGcmVlQlNELm9yZz4KCgkqIGVsZjMyLWkzODYtZmJzZC5jOiBBbHdheXMgbGFiZWwgdXNpbmcgdGhlIEVJX09TQUJJIG1ldGhvZC4KCUl0IGlzIGJlbmlnbiBmb3IgRnJlZUJTRCA8IDQuMS4gIE1pbm9yIHJlZm9ybWF0dGluZy4KCSogZWxmNjQtYWxwaGEtZmJzZC5jOiBMaWtld2lzZS4KCjIwMDItMDktMTcgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKSBbUl8zODZfVExTX1RQT0ZGMzJdOiBOZWdhdGUKCWFkZGVuZC4KCjIwMDItMDktMTcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1hbHBoYS5jIChhbHBoYV9lbGZfc2l6ZV9pbmZvKTogTWFrZSBzdGF0aWMuCgoyMDAyLTA5LTE3ICBTdmVpbiBFLiBTZWxkYWwgIDxTdmVpbi5TZWxkYWxAc29saWRhcy5jb20+CgoJKiBjb2ZmLXRpYzR4LmM6IEFkZCBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgYW5kIEFUVFJJQlVURV9VTlVTRUQuCgkqIGNwdS10aWM0eC5jOiBEaXR0by4KCjIwMDItMDktMTcgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGY2NC1taXBzLmMgKGRlZmluZSBlbGZfYmFja2VuZF9pZ25vcmVfZGlzY2FyZGVkX3JlbG9jcyk6IFJlbW92ZQoJZHVwbGljYXRlIGRlZmluZS4KCjIwMDItMDktMTYgIEJydW5vIEhhaWJsZSAgPGJydW5vQGNsaXNwLm9yZz4KCgkqIGVsZjMyLWkzODYuYzogRG9uJ3QgZGVmaW5lZCBFTEZfQVJDSCBldGMuIGlmIHRoaXMgZmlsZSBpcyBpbmNsdWRlZAoJYnkgYSB0YXJnZXQgdmFyaWFudCBpbXBsZW1lbnRhdGlvbi4KCSogZWxmNjQtYWxwaGEuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWkzODYtZmJzZC5jOiBOZXcgZmlsZS4KCSogZWxmNjQtYWxwaGEtZmJzZC5jOiBOZXcgZmlsZS4KCSogdGFyZ2V0cy5jOiBTdXBwb3J0IGJmZF9lbGYzMl9pMzg2X2ZyZWVic2RfdmVjIGFuZAoJYmZkX2VsZjY0X2FscGhhX2ZyZWVic2RfdmVjLgoJKiBjb25maWd1cmUuaW46IEFjY2VwdCB0aGUgdmVjdG9ycyBiZmRfZWxmMzJfaTM4Nl9mcmVlYnNkX3ZlYywKCWJmZF9lbGY2NF9hbHBoYV9mcmVlYnNkX3ZlYy4KCSogTWFrZWZpbGUuYW0gKEJGRDMyX0JBQ0tFTkRTKTogQWRkIGVsZjMyLWkzODYtZmJzZC5sby4KCShCRkQzMl9CQUNLRU5EU19DRklMRVMpOiBBZGQgZWxmMzItaTM4Ni1mYnNkLmMuCgkoQkZENjRfQkFDS0VORFMpOiBBZGQgZWxmNjQtYWxwaGEtZmJzZC5sby4KCShCRkQ2NF9CQUNLRU5EU19DRklMRVMpOiBBZGQgZWxmNjQtYWxwaGEtZmJzZC5jLgoJKGVsZjMyLWkzODYtZmJzZC5sbywgZWxmNjQtYWxwaGEtZmJzZC5sbyk6IEFkZCBkZXBlbmRlbmNpZXMuCgkqIGNvbmZpZy5iZmQ6IEZvciBGcmVlQlNEIHRhcmdldHMsIHNldCB0YXJnX2RlZnZlYyB0byBhIEZyZWVCU0QKCXNwZWNpZmljIHRhcmdldHMuIERlZmluZSBPTERfRlJFRUJTRF9BQklfTEFCRUwgaWYgYXBwcm9wcmlhdGUuCgoyMDAyLTA5LTEyICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLWkzODYuYyAoZHRwb2ZmX2Jhc2UsIHRwb2ZmKTogRG9uJ3QgY3Jhc2ggaWYgdGxzX3NlZ21lbnQgaXMKCU5VTEwuCgkoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IFJldHVybiBmYWxzZSBhZnRlciBwcmludGluZyBlcnJvciBhYm91dAoJdW5yZXNvbHZhYmxlIHJlbG9jYXRpb24uCgoyMDAyLTA5LTEyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9maW5hbF9saW5rX3JlbG9jYXRlKTogRml4IGhhbmRsaW5nIG9mCglSX0FSTV9USE1fUEMxMS4KCjIwMDItMDktMTEgIEplZmZyZXkgTGF3ICA8bGF3QHJlZGhhdC5jb20+CgoJKiBlbGYzMi1oODMwMC5jIChlbGYzMl9oOF9yZWxheF9zZWN0aW9uKTogRml4IHR5cG8uCgoyMDAyLTA5LTExICBBbmRyZXcgSGFsZXkgIDxhcGhAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBlbGYuYyAoX2JmZF9lbGZfZmluZF9uZWFyZXN0X2xpbmUpOiBDaGVjayBmdW5jdGlvbm5hbWVfcHRyIGFuZAoJbGluZV9wdHIgYmVmb3JlIGRlY2lkaW5nIHdlJ3ZlIGZvdW5kIGEgc3ltYm9sLgoKMjAwMi0wOS0xMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL2RhLnBvOiBOZXcgRGFuaXNoIHRyYW5zbGF0aW9uIGZpbGUuCgkqIGNvbmZpZ3VyZS5pbiAoTElOR1VBUyk6IEFkZCAnZGEnLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTA5LTEwICBNaWNoYWVsIFNueWRlciAgPG1zbnlkZXJAcmVkaGF0LmNvbT4KCgkqIGlyaXgtY29yZS5jIChkb19zZWN0aW9ucywgZG9fc2VjdGlvbnM2NCk6IE5ldyBmdW5jdGlvbnMuCgkoaXJpeF9jb3JlX2NvcmVfZmlsZV9wKTogQ2FsbCBuZXcgZnVuY3Rpb25zIGRvX3NlY3Rpb25zLAoJZG9fc2VjdGlvbnM2NCwgZGVwZW5kaW5nIG9uIGNvcmVmaWxlICgzMi1iaXQgb3IgNjQtYml0KS4KCjIwMDItMDktMDkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfcmVsYXhfc2VjdGlvbik6IEhhbmRsZSBQQ1JFTDIxTQoJYW5kIFBDUkVMMjFGIGxpa2UgUENSRUwyMUIuCgoyMDAyLTA5LTA0ICBLZXZpbiBCdWV0dG5lciAgPGtldmluYkByZWRoYXQuY29tPgoKCSogY29uZmlnLmJmZCAobWlwcyotKi1pcml4NiopOiBBZGQgbmV3IEFCSSB2ZWN0b3JzLiAgTWFrZSBuMzIgZGVmYXVsdAoJdmVjdG9yLgoKMjAwMi0wOS0wMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXY4NTAuYyAodjg1MF9lbGZfZmluYWxfbGlua19yZWxvY2F0ZSk6IFVzZSBoZWxwZnVsCgluYW1lcyBpbnN0ZWFkIG9mIGNyeXB0aWNhbGx5IG92ZXJsb2FkZWQgYmZkX3JlbG9jIGVycm9yCgljb2Rlcy4KCSh2ODUwX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkodjg1MF9lbGZfcmVsYXhfc2VjdGlvbik6IFJlcGxhY2UgY2FjaGluZyBvZiBleHRlcm5hbCBzeW1ib2xzCgl3aXRoIGNhY2hpbmcgb2YgaW50ZXJuYWwgc3ltYm9scyBvYnRhaW5lZCBmcm9tIGNhbGxpbmcKCWJmZF9lbGZfZ2V0X2VsZl9zeW1zKCkuCglGaXh1cCBwcm9ibGVtcyB3aXRoIGZyZWVpbmcgY2FjaGVkIGFsbG9jYXRlZCBtZW1vcnkgYmxvY2tzLgoKMjAwMi0wOS0wMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNwdS1wai5jIChzY2FuX21hY2gsIGNvbXBhdGlibGUsIGFyY2hfaW5mb19zdHJ1Y3QpOiBSZW1vdmUuCgkoYmZkX3BqX2FyY2gpOiBVc2UgYmZkX2RlZmF1bHRfc2Nhbi4KCSogY3B1LXY4NTAuYyAoc2Nhbik6IFJlbW92ZS4KCShOKTogVXNlIGJmZF9kZWZhdWx0X3NjYW4uCgkqIGNwdS16OGsuYyAoc2Nhbl9tYWNoKTogUmVtb3ZlLgoJKGFyY2hfaW5mb19zdHJ1Y3QsIGJmZF96OGtfYXJjaCk6IFJlb3JnYW5pemUgc28gdGhhdCB0aGUgZGVmYXVsdCBpcwoJZmlyc3QuICBVc2UgYmZkX2RlZmF1bHRfc2Nhbi4KCgkqIGVjb2ZmLmMgKF9iZmRfZWNvZmZfc2V0X2FyY2hfbWFjaF9ob29rKTogRG9uJ3QgdXNlIGhhcmQtY29kZWQKCWJmZF9tYWNoIGNvbnN0YW50cy4KCShlY29mZl9nZXRfbWFnaWMpOiBMaWtld2lzZS4KCSogZWxmMzItdjg1MC5jICh2ODUwX2VsZl9vYmplY3RfcCk6IExpa2V3aXNlLgoJKHY4NTBfZWxmX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBMaWtld2lzZS4KCSogbWlwc2JzZC5jIChNWShzZXRfYXJjaF9tYWNoKSk6IExpa2V3aXNlLgoJKE1ZKHdyaXRlX29iamVjdF9jb250ZW50cykpOiBMaWtld2lzZS4KCSogY29mZjY0LXJzNjAwMC5jICh4Y29mZjY0X3dyaXRlX29iamVjdF9jb250ZW50cyk6IExpa2V3aXNlLgoJKiBjb2ZmY29kZS5oIChjb2ZmX3dyaXRlX29iamVjdF9jb250ZW50cyk6IExpa2V3aXNlLgoJKGNvZmZfc2V0X2FyY2hfbWFjaF9ob29rKTogQWRkIGNvbW1lbnQgZGVzY3JpYmluZyBtYWNoaW5lID09IDAuCglSZW1vdmUgdW5uZWNlc3NhcnkgIm1hY2hpbmUiIGFzc2lnbm1lbnRzLgoJKGNvZmZfd3JpdGVfcmVsb2NzKTogVGVzdCBmb3IgdGhlIGFic29sdXRlIHNlY3Rpb24gc3ltIGJ5IHRlc3RpbmcKCXNlY3Rpb24gYW5kIGZsYWdzLgoKCSogYW91dHguaCAoTkFNRShhb3V0LG1hY2hpbmVfdHlwZSkpOiBSZWNvZ25pemUgYmZkX21hY2hfaTM4Nl9pMzg2CglhbmQgYmZkX21hY2hfaTM4Nl9pMzg2X2ludGVsX3N5bnRheC4KCSogcGRwMTEuYyAoTkFNRShhb3V0LG1hY2hpbmVfdHlwZSkpOiBMaWtld2lzZS4KCjIwMDItMDgtMzAgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZUBoaWF1bHkxLmhpYS5ucmMuY2E+CgoJKiBiZmQtaW4uaCAoYWxpZ25fcG93ZXIpOiBDYXN0IGNvbnN0YW50cyB0byBiZmRfdm1hIHR5cGUuCgkqIGJmZC1pbjIuaCAoYWxpZ25fcG93ZXIpOiBMaWtld2lzZS4KCjIwMDItMDgtMzAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKCSogY3B1LWF2ci5jIChjb21wYXRpYmxlKTogRG9uJ3QgdXNlIGhhcmQtY29kZWQgbWFjaCBjb25zdGFudHMuCgkqIGNwdS1wb3dlcnBjLmMgKHBvd2VycGNfY29tcGF0aWJsZSk6IExpa2V3aXNlLgoJKiBjcHUtcnM2MDAwLmMgKHJzNjAwMF9jb21wYXRpYmxlKTogTGlrZXdpc2UuCgoyMDAyLTA4LTI4ICBDYXRoZXJpbmUgTW9vcmUgIDxjbG1AcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXY4NTAuYyAodjg1MF9lbGZfcmVsb2NfbWFwKTogQWRkIG5ldyByZWxvY3MuCgkodjg1MC1lbGYtcmVsb2MpOiBEb24ndCByZXNvbHZlIHBjIHJlbGF0aXZlIHJlbG9jcy4KCSh2ODUwX2VsZl9pZ25vcmVfcmVsb2MpOiBOZXcgcm91dGluZS4KCSh2ODUwX2VsZl9maW5hbF9saW5rX3JlbG9jYXRlKTogSGFuZGxlIG5ldyByZWxvY3MuCgkodjg1MF9lbGZfcmVsYXhfZGVsZXRlX2J5dGVzICk6IE5ldyByb3V0aW5lLgoJKHY4NTBfZWxmX3JlbGF4X3NlY3Rpb24pOiBOZXcgcm91dGluZS4KCShiZmRfZWxmMzJfYmZkX3JlbGF4X3NlY3Rpb24pOiBEZWZpbmUuCgkoSE9XVE8pOiBOZXcgZW50cmllcyBmb3IgbmV3IHJlbG9jcy4KCSogcmVsb2MuYyAoQkZEX1JFTE9DX1Y4NTBfTE9OR0NBTEwpOiBOZXcgcmVsb2MuCgkoQkZEX1JFTE9DX1Y4NTBfTE9OR0pVTVApOiBOZXcgcmVsb2MuCgkoQkZEX1JFTE9DX1Y4NTBfQUxJR04pOiBOZXcgcmVsb2MuCgkqIGFyY2h1cmVzLmM6IFJlbW92ZSByZWR1bmRhbnQgdjg1MGVhIGFyY2hpdGVjdHVyZS4KCSogY3B1LXY4NTAuYzogUmVtb3ZlIHJlZHVuZGFudCB2ODUwZWEgc3VwcG9ydC4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZWQuCgoyMDAyLTA4LTI4ICBTdmVpbiBFLiBTZWxkYWwgIDxTdmVpbi5TZWxkYWxAc29saWRhcy5jb20+CgoJKiBjb25maWcuYmZkOiBBZGQgdGljNHgtKi0qY29mZiogYW5kIGM0eC0qLSpjb2ZmKiB0YXJnZXQuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHRpYzR4X2NvZmYgdmVjdG9yIGZpbGVzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmFtOiBBZGQgdGljNHggdGFyZ2V0LgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDgtMjcgIE1pY2hhZWwgSGF5ZXMgPG0uaGF5ZXNAZWxlYy5jYW50ZXJidXJ5LmFjLm56PgoKCSogYXJjaHVyZXMuYzogQWRkIHRoZSBCRkQgYXJjaCB0eXBlIHRpYzR4LgoJKiBiZmQtaW4uaDogQWRkIEJGRF9JTl9NRU1PUlkgZmxhZy4KCSogY29mZi10aWM0eC5jOiBOZXcgZmlsZS4KCSogY29mZnN3YXAuaCAoY29mZl9zd2FwX3N5bV9vdXQpOiBBZGQgcHJlYWRqdXN0ZXIuCgkqIGNwdS10aWM0eC5jOiBOZXcgZmlsZS4KCSogdGFyZ2V0cy5jOiBBZGRlZCB0aWM0eC0gaW4gbGlzdCBvZiB4dmVjcy4KCSogdGljb2ZmLmg6IE5ldyBmaWxlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAyLTA4LTI3ICBBZGFtIE5lbWV0ICA8YW5lbWV0QGxueHcuY29tPgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IFNldCB0aGUgbGFzdAoJYml0IG9mIERUX0lOSVQgYW5kIERUX0ZJTkkgZm9yIFRodW1iIGZ1bmN0aW9ucy4KCjIwMDItMDgtMjYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb2ZmY29kZS5oIChjb2ZmX3NldF9hcmNoX21hY2hfaG9vayk6IEhhbmRsZSBXNjVNQUdJQy4KCjIwMDItMDgtMjYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBhb3V0eC5oIChOQU1FKGFvdXQscmVsb2NfdHlwZV9sb29rdXApKTogSGFuZGxlIEJGRF9SRUxPQ184LgoKMjAwMi0wOC0yNCAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBOZXcuCgkoY3JlYXRlX2dvdF9zZWN0aW9uLCBhbGxvY2F0ZV9keW5yZWxvY3MsIHJlYWRvbmx5X2R5bnJlbG9jcyk6CglMaWtld2lzZS4KCShzdHJ1Y3QgZWxmX3NoX3BjcmVsX3JlbG9jc19jb3BpZWQpOiBSZW1vdmVkLgoJKHN0cnVjdCBlbGZfc2hfZHluX3JlbG9jcyk6IE5ldy4KCShzdHJ1Y3QgZWxmX3NoX2xpbmtfaGFzaF9lbnRyeSk6IFJlcGxhY2UgcGNyZWxfcmVsb2NzX2NvcGllZAoJZmllbGQgd2l0aCBkeW5fcmVsb2NzLgoJKHN0cnVjdCBlbGZfc2hfbGlua19oYXNoX3RhYmxlKTogQWRkIHNob3J0LWN1dHMgdG8gZ2V0IGR5bmFtaWMKCXNlY3Rpb25zIGFuZCBzeW1fc2VjLgoJKHNoX2VsZl9saW5rX2hhc2hfbmV3ZnVuYyk6IENsZWFyIGR5bl9yZWxvY3MuCgkoc2hfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBDbGVhciBzaG9ydHMtY3V0cyBhbmQgc3ltX3NlYy4KCShzaF9lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBVc2UgY3JlYXRlX2dvdF9zZWN0aW9uIGluc3RlYWQKCW9mIF9iZmRfZWxmX2NyZWF0ZV9nb3Rfc2VjdGlvbi4KCShzaF9lbGZfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCgkoc2hfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogVXNlIHNob3J0LWN1dHMgdG8gdGhlIGR5bmFtaWMKCXNlY3Rpb25zLgoJKHNoX2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wsIHNoX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMsCglzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbiwgc2hfZWxmX2NoZWNrX3JlbG9jcywKCXNoX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wsIHNoX2VsZl9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6CglMaWtld2lzZS4KCShzaF9lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogSGFuZGxlIG5vY29weXJlbG9jLiBLZWVwIHRoZQoJZHluYW1pYyByZWxvY2F0aW9ucyBhbmQgYXZvaWRpbmcgdGhlIGNvcHkgcmVsb2NhdGlvbiB3aGVuIHdlCglkaWRuJ3QgZmluZCBhbnkgZHluYW1pYyByZWxvY2F0aW9ucyBpbiB0aGUgc2VjdGlvbiB3aGljaCBoYXMKCWNvbnRlbnRzIG9yIGlzIHJlYWQtb25seS4KCShXSUxMX0NBTExfRklOSVNIX0RZTkFNSUNfU1lNQk9MKTogTmV3LgoJKHNoX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBEb24ndCByZXNldCB0aGUgc2l6ZSBvZgoJLnJlbGEuZ290IHNlY3Rpb24gZXZlbiBpZiBkeW5hbWljX3NlY3Rpb25zX2NyZWF0ZWQgZmxhZyBpcyBvZmYuCglEb24ndCB1c2Ugc2hfZWxmX2Rpc2NhcmRfY29waWVzLiBTY2FuIGFsbCBpbnB1dCBiZmQgYW5kIHVzZQoJYWxsb2NhdGVfZHlucmVsb2NzLiBDYWxsIHJlYWRvbmx5X2R5bnJlbG9jcyB0byBkZXRlcm1pbmUKCXdoZXRoZXIgd2UgbmVlZCBEVF9URVhUUkVMLgoJKHNoX2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBVc2UgcGx0LnJlZmNvdW50IHRvIGRldGVybWluZQoJd2hldGhlciB0aGUgc3ltYm9sIHdhcyBuZXZlciByZWZlcnJlZCB0by4KCShzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFVzZSBXSUxMX0NBTExfRklOSVNIX0RZTkFNSUNfU1lNQk9MLgoJKHNoX2VsZl9nY19zd2VlcF9ob29rKTogRmlsbCB3aXRoIHRoZSByZWFsIHN3ZWVwIGZ1bmN0aW9uLgoJKHNoX2VsZl9jaGVja19yZWxvY3MpOiBDYWxsIGNyZWF0ZV9nb3Rfc2VjdGlvbiBpZiB0aGUgc2hvcnQtY3V0Cgl0byAuZ290IGlzIG51bGwuIEluY3JlbWVudCByZWZlcmVuY2UgY291bnRlcnMgb25seSBpbnN0ZWFkIG9mCglhbGxvY2F0aW5nIHNwYWNlIG9uIGR5bmFtaWMgc2VjdGlvbnMgaGVyZS4gRG9uJ3QgY29uZGl0aW9uYWxpemUKCXVuaW5pdGlhbGl6ZWQgZ290Lm9mZnNldCB2YWx1ZSB3aGVuIG1hcmtpbmcgdGhlIHN5bWJvbCBhcyBhCglnbG9iYWwgb2Zmc2V0IHRhYmxlIGVudHJ5LiBLZWVwIHJlbG9jYXRpb25zIGZvciBzeW1ib2xzIHNhdGlzZmllZAoJYnkgYSBkeW5hbWljIGxpYnJhcnkgdG8gYXZvaWQgY29weSByZWxvY2F0aW9ucyBmb3IgdGhlIHN5bWJvbC4KCVNldCBkeW5vYmogZmllbGQgb2YgYW4gZWxmIGhhc2ggdGFibGUgaWYgbmVlZGVkLgoJKHNoX2VsZl9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IEhhbmRsZSBudWxsIHNlY3Rpb24gcG9pbnRlcgoJY29ycmVjdGx5LgoJKGVsZl9iYWNrZW5kX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogRGVmaW5lZC4KCShlbGZfYmFja2VuZF9jYW5fcmVmY291bnQpOiBEZWZpbmVkLgoKMjAwMi0wOC0yMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZi1laC1mcmFtZS5jIChfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhfZnJhbWUpOiBVbmRvCglwcmV2aW91cyBjaGFuZ2UuICBBZGQgY29tbWVudCBleHBsYWluaW5nIHdoeS4KCjIwMDItMDgtMjMgIFN0ZXBoZW4gQ2xhcmtlIDxzdGVwaGVuLmNsYXJrZUBzdXBlcmguY29tPgoKCSogZWxmMzItc2guYyAoZWxmX3NoX3BsdDBfZW50cnlfYmUsIGVsZl9zaF9wbHQwX2VudHJ5X2xlKTogQ29weQoJY29udGVudHMgb2YgLmdvdC5wbHRbMl0gdG8gdHIwLCBub3QgYWRkcmVzcyBvZiAuZ290LnBsdC4KCShzaF9lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogRG8gbm90IGFwcGx5IEdPVF9CSUFTIHdoZW4KCXBhdGNoaW5nIGFic29sdXRlIHBsdCBlbnRyeS4gRm9yIHNobWVkaWEgcGx0IGVudHJ5LCBzZXQgYm90dG9tIGJpdAoJb2YgYnJhbmNoIHRvIHBsdDAgYXMgdGhpcyBpcyBhIGJyYW5jaCB0byBhbiBzaG1lZGlhIGluc3RydWN0aW9uLgoJKiBlbGY2NC1zaDY0LmMgKGVsZl9zaDY0X3BsdDBfZW50cnlfYmUsIGVsZl9zaDY0X3BsdDBfZW50cnlfbGUpOgoJQ29weSBjb250ZW50cyBvZiAuZ290LnBsdFsyXSB0byB0cjAsIG5vdCBhZGRyZXNzIG9mIC5nb3QucGx0LgoJKGVsZl9zaDY0X3BsdF9lbnRyeV9iZSwgZWxmX3NoNjRfcGx0X2VudHJ5X2xlKTogVXNlIHB0cmVsIHRvCglicmFuY2ggdG8gcGx0MC4KCShzaDY0X2VsZjY0X2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IERvIG5vdCBhcHBseSBHT1RfQklBUyB3aGVuCglwYXRjaGluZyBhYnNvbHV0ZSBwbHQgZW50cnkuIEZvciBzaG1lZGlhIHBsdCBlbnRyeSwgYnJhbmNoIHRvCglwbHQwIGlzIG5vdyBwdHJlbCwgc28gdXNlIHJlbGF0aXZlIG9mZnNldC4gIFNldCBib3R0b20gYml0IG9mCglicmFuY2ggdGFyZ2V0IGFzIGl0IGlzIGEgYnJhbmNoIHRvIGFuIHNobWVkaWEgaW5zdHJ1Y3Rpb24uCgoyMDAyLTA4LTIzICBTdGVwaGVuIENsYXJrZSA8c3RlcGhlbi5jbGFya2VAc3VwZXJoLmNvbT4sCgkgICAgUmljaGFyZCBTaGFubiA8cmljaGFyZC5zaGFubkBzdXBlcmguY29tPgoKCSogZWxmMzItc2guYyAoc2hfZWxmX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogU2V0IExTQiBvZiBEVF9JTklUCgl2YWx1ZSBpZiAuaW5pdCBpcyBhbiBTSG1lZGlhIGZ1bmN0aW9uLiAgU2ltaWxhcmx5IGZvciBEVF9GSU5JLgoJKiBlbGY2NC1zaDY0LmMgKHNoNjRfZWxmNjRfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCjIwMDItMDgtMjMgIFN0ZXBoZW4gQ2xhcmtlIDxzdGVwaGVuLmNsYXJrZUBzdXBlcmguY29tPgoKCSogZWxmMzItc2guYyAoc2hfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFplcm8gaW5pdGlhbGl6ZQoJZHluYW1pYyBzZWN0aW9uLgoJKiBlbGY2NC1zaDY0LmMgKHNoNjRfZWxmNjRfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgoyMDAyLTA4LTIyICBLYXogS29qaW1hIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCSogZWxmLWVoLWZyYW1lLmMgKF9iZmRfZWxmX2Rpc2NhcmRfc2VjdGlvbl9laF9mcmFtZSk6IFVzZSBhIHNpbXBsZQoJYnl0ZSByZWFkIHdoZW4gcmVhZGluZyB0aGUgcmV0dXJuIGFkZHJlc3MgcmVnaXN0ZXIgY29sdW1uLgoKMjAwMi0wOC0yMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5iZmQ6IEFkZCBwb3dlcGM2NC0qLSpic2QqIHRhcmdldC4KCjIwMDItMDgtMjIgIEdyYWVtZSBQZXRlcnNvbiAgPGdwQHFueC5jb20+CgoJKiBNYWtlZmlsZS5hbTogQWRkIGVudHJpZXMgZm9yIGVsZjMyLXNocW54LmMKCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy5iZmQ6IEFkZCBzdXBwb3J0IHNoLSotbnRvKiB0YXJnZXQuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHN1cHBvcnQgZm9yIGJmZF9lbGYzMl9zaHtsfXFueF92ZWMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogZWxmMzItcW54Lmg6IENoYW5nZWQgdHlwbyAiZWxmX2kzODZxbnhfKiIgdG8gImVsZl9xbnhfKiIgLgoJKiBlbGYzMi1zaC5jOiBEbyBub3QgaW5jbHVkZSBlbGYzMi10YXJnZXQuaCBpZgoJRUxGMzJfU0hfQ19JTkNMVURFRCBpcyBkZWZpbmVkLgoJKiBlbGYzMi1zaHFueC5jOiBOZXcgZmlsZTogU3VwcG9ydCBmb3IgUU5YLgoJKiB0YXJnZXRzLmM6IEFkZCBiZmRfZWxmMzJfc2h7bH1xbnhfdmVjLgoKMjAwMi0wOC0yMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL3RyLnBvOiBVcGRhdGVkIFR1cmtpc2ggdHJhbnNsYXRpb24uCgoJKiBzeW1zLmMgKF9iZmRfZ2VuZXJpY19yZWFkX21pbmlzeW1ib2xzKTogU2V0IGJmZF9lcnJvciBpZiB0aGUKCXN5bWJvbHMgYXJlIG5vdCByZWFkLgoKMjAwMi0wOC0yMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLW02OGhjMTEuYzogRm9ybWF0dGluZyBmaXhlcy4KCShlbGYzMl9tNjhoYzExX2djX21hcmtfaG9vayk6IENvcnJlY3QgcGFyYW1zLiAgUmVtb3ZlIHVubmVjZXNzYXJ5IHRlc3QuCgkqIGVsZjMyLW02OGhjMTIuYzogRm9ybWF0dGluZyBmaXhlcy4KCShlbGYzMl9tNjhoYzExX2djX21hcmtfaG9vayk6IENvcnJlY3QgcGFyYW1zLiAgUmVtb3ZlIHVubmVjZXNzYXJ5IHRlc3QuCgoyMDAyLTA4LTIyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29mZi1yczYwMDAuYyAocnM2MDAwY29mZl92ZWMgPG9iamVjdF9mbGFncz4pOiBBZGQgU0VDX0NPREUgYW5kCglTRUNfREFUQS4KCShwbWFjX3hjb2ZmX3ZlYyk6IExpa2V3aXNlLgoJKiBjb2ZmNjQtcnM2MDAwLmMgKHJzNjAwMGNvZmY2NF92ZWMpOiBMaWtld2lzZS4KCShhaXg1Y29mZjY0X3ZlYyk6IExpa2V3aXNlLgoKMjAwMi0wOC0yMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1iZmQuaCAoc3RydWN0IGVsZl9iYWNrZW5kX2RhdGEpOiBBZGQgc3RydWN0IGVsZl9iYWNrZW5kX2RhdGEKCXBhcmFtIHRvIGVsZl9iYWNrZW5kX2NvcHlfaW5kaXJlY3Rfc3ltYm9sLgoJKF9iZmRfZWxmX2xpbmtfaGFzaF9jb3B5X2luZGlyZWN0KTogTGlrZXdpc2UuCgkqIGVsZmxpbmsuaCAoZWxmX2FkZF9kZWZhdWx0X3N5bWJvbCwgZWxmX2ZpeF9zeW1ib2xfZmxhZ3MpOiBBZGp1c3QKCWNhbGxzIHRvIGNvcHlfaW5kaXJlY3Rfc3ltYm9sLgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IExpa2V3aXNlLgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9zMzkwX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jIChlbGZfczM5MF9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9oYXNoX2NvcHlfaW5kaXJlY3QpOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuaCAoX2JmZF9taXBzX2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IExpa2V3aXNlLgoJKiBlbGYuYyAoX2JmZF9lbGZfbGlua19oYXNoX2NvcHlfaW5kaXJlY3QpOiBMaWtld2lzZS4gIFByb3Blcmx5Cgl0ZXN0IHJlZmNvdW50cyBmb3IgInVzZWQiIHZhbHVlcy4KCjIwMDItMDgtMjEgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZUBoaWF1bHkxLmhpYS5ucmMuY2E+CgoJKiBlbGYtZWgtZnJhbWUuYyAoX2JmZF9lbGZfZGlzY2FyZF9zZWN0aW9uX2VoX2ZyYW1lKTogQWRkIFBBUkFNUyB0bwoJYXJndW1lbnQgZGVjbGFyYXRpb24uCgoyMDAyLTA4LTE5ICBFbGVuYSBaYW5ub25pIDxlemFubm9uaUByZWRoYXQuY29tPgoKCSogYXJjaHVyZXMuYyAoYmZkX21hY2hfcHBjX2U1MDApOiBBZGRlZC4KCSogYmZkLWluMi5oOiBSZWJ1aWx0LgoJKiBjcHUtcG93ZXJwYy5jIChiZmRfcG93ZXJwY19hcmNocyk6IEFkZGVkIGU1MDAuCgoyMDAyLTA4LTE5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItbTY4aGMxMi5jIChlbGZfYmFja2VuZF9jYW5fZ2Nfc2VjdGlvbnMpOiBGYWxzZS4KCjIwMDItMDgtMTcgIEFuZHJldyBDYWduZXkgIDxhYzEzMTMxM0ByZWRoYXQuY29tPgoKCSogZWxmLmMgKGJmZF9lbGZfZ2V0X2VsZl9zeW1zKTogQ2hhbmdlIHR5cGUgb2YgYGVzeW0nIHRvCglgYmZkX2J5dGUnLgoKMjAwMi0wOC0xNyAgU3RhbiBDb3ggIDxzY294QHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfbW9kaWZ5X3NlZ21lbnRfbWFwKTogVXNlIHRoZQoJSVJJWCA2IHNlZ21lbnQgbGF5b3V0IGZvciBORVdBQkkuCgoyMDAyLTA4LTE2ICBTdGVwaGVuIENsYXJrZSA8c3RlcGhlbi5jbGFya2VAc3VwZXJoLmNvbT4KCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9nY19tYXJrX2hvb2spOiBGb3Igc2g2NCwgc2tpcCBpbmRpcmVjdAoJc3ltYm9scyB3aGVuIGxvb2tpbmcgZm9yIHNlY3Rpb24gcmVmZXJyZWQgdG8gYnkgYSByZWxvY2F0aW9uLgoJKiBlbGY2NC1zaC5jIChzaF9lbGY2NF9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCjIwMDItMDgtMTUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1pMzcwLmM6IE1vdmUgcmVsb2MgZW51bSB0byBpbmNsdWRlL2VsZi9pMzcwLmguCgoyMDAyLTA4LTE1ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGVsZjMyLWNyaXMuYyAoZWxmX2NyaXNfZGlzY2FyZF9leGNlc3NfcHJvZ3JhbV9keW5hbWljcyk6IEFkZAoJbWlzc2luZyBjaGVjayBmb3Igd2hldGhlciB0aGUgc3ltYm9sIGlzIHJlZmVyZW5jZWQgYnkgRFNPIGJlZm9yZQoJdW5leHBvcnRpbmcgaXQgYXMgYW4gdW5uZWVkZWQgZHluYW1pYyBzeW1ib2wuCgoyMDAyLTA4LTE0ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoKMjAwMi0wOC0xNCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBjb25maWcuYmZkOiBBbHdheXMgYWRkIDY0Yml0IHZlY3RvcnMgdG8gMzJiaXQgTGludXgvbWlwcy4KCjIwMDItMDgtMTQgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogZWxmMzItbTY4aGMxMS5jIChtNjhoYzExX3JlbGF4X2dyb3VwKTogTmV3IHRvIHJlbGF4IGdyb3VwIG9mCglpbnN0cnVjdGlvbnMuCgkobTY4aGMxMV9kaXJlY3RfcmVsYXgpOiBOZXcgdG8gZGVmaW5lIHRhYmxlIG9mIHJlbGF4YWJsZSBpbnN0cnVjdGlvbnMuCgkoZmluZF9yZWxheGFibGVfaW5zbik6IE5ldywgZmluZCBhIHJlbGF4YWJsZSBpbnNuLgoJKGNvbXBhcmVfcmVsb2MpOiBOZXcgdG8gY29tcGFyZSB0d28gcmVsb2NzLgoJKG02OGhjMTFfZWxmX3JlbGF4X3NlY3Rpb24pOiBOZXcsIHJlbGF4IHRleHQgc2VjdGlvbnMuCgkobTY4aGMxMV9lbGZfcmVsYXhfZGVsZXRlX2J5dGVzKTogTmV3LCBkZWxldGUgYnl0ZXMgYW5kIGFkanVzdCBicmFuY2hzLgoJKGVsZjMyX202OGhjMTFfY2hlY2tfcmVsb2NzKTogTmV3IGZ1bmN0aW9uIGZvciBHQyBzdXBwb3J0LgoJKGVsZjMyX202OGhjMTFfcmVsb2NhdGVfc2VjdGlvbik6IE5ldyBmdW5jdGlvbiBmb3IgR0Mgc3VwcG9ydC4KCShiZmRfZWxmMzJfYmZkX3JlbGF4X3NlY3Rpb24pOiBEZWZpbmUgdG8gc3VwcG9ydCBsaW5rZXIgcmVsYXhhdGlvbi4KCShlbGZfYmFja2VuZF9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4KCShlbGZfYmFja2VuZF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAyLTA4LTEzICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZmxpbmsuaCAoTkFNRShiZmRfZWxmLHNpemVfZHluYW1pY19zZWN0aW9ucyk6IERvbid0IGNvdW50CglkZWZpbml0aW9ucyBpbiBzaGFyZWQgb2JqZWN0cyB3aGVuIGNoZWNraW5nIHN5bWJvbCB3aXRoCgl1bmRlZmluZWQgdmVyc2lvbi4KCjIwMDItMDgtMTMgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogZWxmMzItbTY4aGMxMS5jIChlbGYzMl9tNjhoYzExX2djX21hcmtfaG9vayk6IE5ldyBmb3Igc2VjdGlvbiBHQy4KCShlbGYzMl9tNjhoYzExX2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCShlbGZfYmFja2VuZF9nY19tYXJrX2hvb2spOiBEZWZpbmUgZm9yIEdDIHNlY3Rpb24gc3VwcG9ydC4KCShlbGZfYmFja2VuZF9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkoZWxmX2JhY2tlbmRfY2FuX2djX3NlY3Rpb25zKTogTGlrZXdpc2UuCgoJKiBlbGYzMi1tNjhoYzEyLmM6IExpa2V3aXNlLgoKMjAwMi0wOC0xMyAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBlbGYzMi1tNjhoYzExLmMgKF9iZmRfbTY4aGMxMV9lbGZfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IE5ldy4KCShfYmZkX202OGhjMTFfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBOZXcgZnVuY3Rpb24uCgkoX2JmZF9tNjhoYzExX2VsZl9zZXRfcHJpdmF0ZV9mbGFncyk6IE5ldyBmdW5jdGlvbi4KCVVzZSB0aGVtIHRvIHNldC9jaGVjay9wcmludCBFTEYgZmxhZ3Mgc3BlY2lmaWMgdG8gNjhIQzExLgoKCSogZWxmMzItbTY4aGMxMi5jIChfYmZkX202OGhjMTJfZWxmX3ByaW50X3ByaXZhdGVfYmZkX2RhdGEpOiBOZXcuCgkoX2JmZF9tNjhoYzEyX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogTmV3IGZ1bmN0aW9uLgoJKF9iZmRfbTY4aGMxMl9lbGZfc2V0X3ByaXZhdGVfZmxhZ3MpOiBOZXcgZnVuY3Rpb24uCglVc2UgdGhlbSB0byBzZXQvY2hlY2svcHJpbnQgRUxGIGZsYWdzIHNwZWNpZmljIHRvIDY4SEMxMi4KCjIwMDItMDgtMTMgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogZWxmMzItbTY4aGMxMS5jIChlbGZfbTY4aGMxMV9ob3d0b190YWJsZSk6IEFkZCB0aGUgbmV3IHJlbG9jczsKCWZpeCBtYXNrcyBmb3IgUEMtcmVsIHJlbG9jcy4KCShtNjhoYzExX2VsZl9pZ25vcmVfcmVsb2MpOiBOZXcgZnVuY3Rpb24uCgoJKiBlbGYzMi1tNjhoYzEyLmMgKG02OGhjMTJfZWxmX3NwZWNpYWxfcmVsb2MpOiBOZXcgdG8gaGFuZGxlIHNwZWNpZmljCgk2OEhDMTIgYmFua2VkIGFkZHJlc3NpbmcgcmVsb2NzLgoJKG02OGhjMTJfcGh5c19hZGRyKTogTmV3IHRvIGNvbXB1dGUgcGh5c2ljYWwgYWRkcmVzcyBvZiBiYW5rZWQgbWVtb3J5LgoJKG02OGhjMTJfcGh5c19wYWdlKTogTGlrZXdpc2UgZm9yIHBhZ2UuCgkobTY4aGMxMl9hZGRyX2lzX2JhbmtlZCk6IE5ldyB0byBzZWUgaWYgYWRkcmVzcyBpcyBpbiBiYW5rZWQgYXJlYS4KCShlbGZfbTY4aGMxMl9ob3d0b190YWJsZSk6IEFkZCBuZXcgcmVsb2NzIGFuZCByZW5hbWUgdG8geHgxMi4KCjIwMDItMDgtMTMgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogcmVsb2MuYyAoQkZEX1JFTE9DX002OEhDMTFfUkxfSlVNUCwgQkZEX1JFTE9DX002OEhDMTFfUkxfR1JPVVAsCglCRkRfUkVMT0NfTTY4SEMxMV9MTzE2LCBCRkRfUkVMT0NfTTY4SEMxMV9QQUdFLAoJQkZEX1JFTE9DX002OEhDMTFfMjQpOiBOZXcgcmVsb2NzIGZvciA2OEhDMTEvNjhIQzEyLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAyLTA4LTEyICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZmxpbmsuaCAoZWxmX2FkZF9kZWZhdWx0X3N5bWJvbCk6IFByZXNlcnZlIHNlY3Rpb24gYWNyb3NzCgllbGZfbWVyZ2Vfc3ltYm9sLgoKMjAwMi0wOC0wOSAgR3JhZW1lIFBldGVyc29uICA8Z3BAcW54LmNvbT4KCgkqIE1ha2VmaWxlLmFtOiBBZGQgZW50cmllcyBmb3IgZWxmMzItcHBjcW54LmMsIGFuZCBhZGQKCWVsZjMyLXFueC5oIGRlcGVuZGVuY3kgdG8gZWxmYXJtcW54LW5hYmkuYyBhbmQgZWxmMzItaTM4NnFueC5jLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmJmZDogQWRkIHN1cHBvcnQgZm9yIHBvd2VycGN7bGV9LSotbnRvIHRhcmdldHMuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHN1cHBvcnQgZm9yIGJmZF9lbGYzMl9wb3dlcnBje2xlfXFueF92ZWMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogZWxmMzItaTM4NnFueC5jOiBNb3ZlZCBiYWNrZW5kIGZ1bmN0aW9ucyBpbnRvIGEgUU5YIHNwZWNpZmljCgljb21tb24gZmlsZSAiZWxmMzItcW54LmgiLCBhbmQgbm93IGluY2x1ZGUgdGhhdCBmaWxlLgoJKiBlbGYzMi1xbnguaDogTmV3IGZpbGU6IFFOWCBzcGVjaWZpYyBjb21tb24gZWxmIGJhY2tlbmQuCgkqIGVsZjMyLXBwYy5jOiBEbyBub3QgaW5jbHVkZSBlbGYzMi10YXJnZXQuaCBpZgoJRUxGMzJfUFBDX0NfSU5DTFVERUQgaXMgZGVmaW5lZC4KCSogZWxmMzItcHBjcW54LmM6IE5ldyBmaWxlOiBTdXBwb3J0IGZvciBRTlguCgkqIGVsZmFybXFueC1uYWJpLmM6IEluY2x1ZGUgZWxmMzItcW54LmggZm9yIHFueCBlbGYgYmFja2VuZC4KCSogdGFyZ2V0cy5jOiBBZGQgYmZkX2VsZjMyX3Bvd2VycGN7bGV9cW54X3ZlYy4KCjIwMDItMDgtMDkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9zdi5wbzogVXBkYXRlZCBTd2VkaXNoIHRyYW5zbGF0aW9uLgoKMjAwMi0wOC0wOSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfZ2xvYmFsX2dvdF9pbmRleCk6IEF2b2lkIHNlZ2ZhdWx0IGlmCglnLT5nbG9iYWxfZ290c3ltIGlzIE5VTEwuCgoyMDAyLTA4LTA4ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZmxpbmsuaCAoZWxmX2FkZF9kZWZhdWx0X3N5bWJvbCk6IERvbid0IHdhcm4gaWYgYSBkZWZpbml0aW9uCglvdmVycmlkZXMgYW4gaW5kaXJlY3QgdmVyc2lvbmVkIHN5bWJvbC4KCjIwMDItMDgtMDggIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogRmlsbCBpbiBwcm9wZXIgYWRkZW5kCglmb3IgUl8zODZfVExTX1RQT0ZGMzIgcmVsb2NzIGFnYWluc3Qgc3ltbmR4IDAuCgoyMDAyLTA4LTA3ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZmxpbmsuaCAoTkFNRShiZmRfZWxmLHNpemVfZHluYW1pY19zZWN0aW9ucykpOiBDaGVjayBzeW1ib2wKCXdpdGggdW5kZWZpbmVkIHZlcnNpb24gaWYgbmVlZGVkLgoJKGVsZl9saW5rX2Fzc2lnbl9zeW1fdmVyc2lvbik6IE1hdGNoIGEgZGVmYXVsdCBzeW1ib2wgd2l0aCBhCgl2ZXJzaW9uIHdpdGhvdXQgZGVmaW5pdGlvbi4gTm8gbmVlZCB0byBoaWRlIHRoZSBkZWZhdWx0CglkZWZpbml0aW9uIHNlcGFyYXRlbHkuCgoyMDAyLTA4LTA4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmbGluay5oIChlbGZfbGlua19vdXRwdXRfZXh0c3ltKTogRG9uJ3Qgb3V0cHV0IHN5bWJvbHMgZnJvbQoJU0VDX0VYQ0xVREUgc2VjdGlvbnMuCgoJKiBhb3V0eC5oIChhb3V0X2xpbmtfd3JpdGVfc3ltYm9scyk6IENvcnJlY3QgaGFuZGxpbmcgb2Ygd2FybmluZyBzeW1zLgoKMjAwMi0wOC0wNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChlZGl0X29wZCk6IEFycmFuZ2UgdG8gZHJvcCBzeW1ib2xzIGZvciBkaXNjYXJkZWQgLm9wZAoJZW50cmllcy4KCjIwMDItMDgtMDcgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2NyZWF0ZV9keW5hbWljX3JlbG9jYXRpb24pOiBDYXN0IHNpZ25lZG5lc3MKCW1pc21hdGNoLgoKMjAwMi0wOC0wNyAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZnh4LW1pcHMuYyAoQUJJXzY0X1ApOiBSZW1vdmUgc3VwZXJmbHVvdXMgY2hlY2suCgoyMDAyLTA4LTA3ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmMzItbWlwcy5jIChtaXBzX3JlbG9jX21hcCk6IEZpeCB0eXBvLgoKMjAwMi0wOC0wNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHhjb2ZmbGluay5jICh4Y29mZl93cml0ZV9nbG9iYWxfc3ltYm9sKTogU2V0IG5fc2NudW0gZm9yIGFic19zZWN0aW9uLgoKMjAwMi0wOC0wNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfaG93dG9fcmF3KTogWmVybyBhbGwgc3JjX21hc2sgZW50cmllcy4KCjIwMDItMDgtMDYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsaWJ4Y29mZi5oOiBVc2UgUEFSQU1TIG9uIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucy4KCSogY29mZi1yczYwMDAuYyAoeGNvZmZfZ2VuZXJhdGVfcnRpbml0KTogU2ltcGxpZnkgc2l6ZSBjYWxjLgoJKiBjb2ZmNjQtcnM2MDAwLmMgKHhjb2ZmNjRfZ2VuZXJhdGVfcnRpbml0KTogTGlrZXdpc2UuCgoJKiBjb2ZmLXJzNjAwMC5jOiAoeGNvZmZfcnR5cGUyaG93dG8pOiBEb24ndCBwbGFjZSByZWxvYyBhZGRyZXNzIGluCglhZGRlbmQuCgkqIGNvZmY2NC1yczYwMDAuYzogKHhjb2ZmNjRfcnR5cGUyaG93dG8pOiBMaWtld2lzZS4KCjIwMDItMDgtMDYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb2ZmLXJzNjAwMC5jOiBGb3JtYXR0aW5nIGZpeGVzLgoJKHhjb2ZmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogVXNlIFBBUkFNUyBpbiBkZWNsYXJhdGlvbi4KCSh4Y29mZl9jb21wbGFpbl9vdmVyZmxvdyk6IExpa2V3aXNlLgoJKHhjb2ZmX3BwY19yZWxvY2F0ZV9zZWN0aW9uKTogVXNlIG9sZC1zdHlsZSBmdW5jdGlvbiBwb2ludGVyIGNhbGwuCgkoYmZkX3hjb2ZmX2JhY2tlbmRfZGF0YSk6IFJlbW92ZSB1c2VsZXNzIGNvbW1lbnRzLgoJKHJzNjAwMGNvZmZfdmVjKTogTGlrZXdpc2UuCgkoYmZkX3BtYWNfeGNvZmZfYmFja2VuZF9kYXRhKTogTGlrZXdpc2UuCgkocG1hY194Y29mZl92ZWMpOiBMaWtld2lzZS4KCgkqIGNvZmY2NC1yczYwMDAuYzogRm9ybWF0dGluZyBmaXhlcy4KCSh4Y29mZjY0X2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogVXNlIFBBUkFNUyBpbiBkZWNsYXJhdGlvbi4KCSh4Y29mZjY0X3BwY19yZWxvY2F0ZV9zZWN0aW9uKTogVXNlIG9sZC1zdHlsZSBmdW5jdGlvbiBwb2ludGVyIGNhbGwuCgkoYmZkX3hjb2ZmX2JhY2tlbmRfZGF0YSk6IFJlbW92ZSB1c2VsZXNzIGNvbW1lbnRzLgoJKHJzNjAwMGNvZmY2NF92ZWMpOiBMaWtld2lzZS4KCShiZmRfeGNvZmZfYWl4NV9iYWNrZW5kX2RhdGEpOiBMaWtld2lzZS4KCShhaXg1Y29mZjY0X3ZlYyk6IExpa2V3aXNlLgoKMjAwMi0wOC0wNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvZmYtcnM2MDAwLmMgKHhjb2ZmX2hvd3RvX3RhYmxlKTogUmV2ZXJ0IHNvbWUgb2YgbGFzdCBjaGFuZ2UgdG8KCW1hc2sgZW50cmllcy4gIFVzZSBjb21wbGFpbl9vdmVyZmxvd19kb250IGZvciBSX1JFRi4KCSh4Y29mZl9yZWxvY190eXBlX2JhKTogUmV2ZXJ0IGxhc3QgY2hhbmdlLgoJKHhjb2ZmX3JlbG9jX3R5cGVfYnIpOiBMaWtld2lzZS4KCSh4Y29mZl9yZWxvY190eXBlX2NyZWwpOiBMaWtld2lzZS4KCSh4Y29mZl9wcGNfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBjb2ZmNjQtcnM2MDAwLmMgKHhjb2ZmNjRfcmVsb2NfdHlwZV9icik6IExpa2V3aXNlLgoJKHhjb2ZmNjRfcHBjX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSh4Y29mZjY0X2hvd3RvX3RhYmxlKTogUmV2ZXJ0IHNvbWUgb2YgbGFzdCBjaGFuZ2UgdG8gbWFzayBlbnRyaWVzLgoJVXNlIGNvbXBsYWluX292ZXJmbG93X2RvbnQgZm9yIFJfUkVGLgoKCSogY29mZi1yczYwMDAuYyAoeGNvZmZfaG93dG9fdGFibGUpOiBGaXggc3JjX21hc2sgZW50cmllcy4gIE1ha2UgYWxsCglyZWxvY3Mgd2l0aCBiaXRzaXplID09IDE2IGhhdmUgc2l6ZSA9IDEuCgkoeGNvZmZfcmVsb2NfdHlwZV9iYSk6IENvcnJlY3Qgc3JjX21hc2sgYW5kIGRzdF9tYXNrIGFkanVzdG1lbnQuCgkoeGNvZmZfcmVsb2NfdHlwZV9icik6IExpa2V3aXNlLgoJKHhjb2ZmX3JlbG9jX3R5cGVfY3JlbCk6IExpa2V3aXNlLgoJKHhjb2ZmX3BwY19yZWxvY2F0ZV9zZWN0aW9uKTogU2V0IHVwIHNyY19tYXNrIGFuZCBkc3RfbWFzayBjb3JyZWN0bHkuCgkqIGNvZmY2NC1yczYwMDAuYyAoeGNvZmY2NF9yZWxvY190eXBlX2JyKTogQ29ycmVjdCBzcmNfbWFzayBhbmQKCWRzdF9tYXNrIGFkanVzdG1lbnQuCgkoeGNvZmY2NF9wcGNfcmVsb2NhdGVfc2VjdGlvbik6IFNldCB1cCBzcmNfbWFzayBhbmQgZHN0X21hc2sgY29ycmVjdGx5LgoJKHhjb2ZmNjRfaG93dG9fdGFibGUpOiBGaXggc3JjX21hc2sgZW50cmllcy4gIE1ha2UgYWxsIHJlbG9jcyB3aXRoCgliaXRzaXplID09IDE2IGhhdmUgc2l6ZSA9IDEuCgoyMDAyLTA4LTAxICBEZW5pcyBDaGVydHlrb3YgIDxkZW5pc2NAb3ZlcnRhLnJ1PgoKCSogZWxmMzItaXAyay5jOiBQcm9jZXNzb3IgbWFudWZhY3R1cmVyIGNoYW5nZWQgdG8gVWJpY29tLgoJKHN0cnVjdCBtaXNjKTogTmV3IGZpZWxkIGlzeW1idWYuIEFsbCBmcmVlXyogZmllbGRzIHJlbW92ZWQuCgkoc3ltYm9sX3ZhbHVlKTogUGFzcyBpbiBpbnRlcm5hbCBzeW1zLiBObyBuZWVkIHRvIHN3YXAgc3ltcyBpbi4KCShpcDJrX2VsZl9yZWxheF9zZWN0aW9uKTogVXNlIGJmZF9lbGZfZ2V0X2VsZl9zeW1zLiBQcm9wZXJseSBmcmVlCglwb3NzaWJseSBjYWNoZWQgaW5mby4KCSh0aWR5dXBfYWZ0ZXJfZXJyb3IpOiBSZW1vdmVkLgoJKGlwMmtfZWxmX3JlbGF4X3NlY3Rpb25fcGFzczEpOiBEb24ndCB1c2UgcmVtb3ZlZCBmaWVsZHMgb2Ygc3RydWN0CgltaXNjLiBVc2UgbmV3IGZpZWxkLgoJKGFkanVzdF9hbGxfcmVsb2NhdGlvbnMpOiBVc2UgaW50ZXJuYWwgc3ltcy4gTm8gbmVlZCB0byBzd2FwIHN5bXMKCWluIGFuZCBvdXQuCgkoYWRkX3BhZ2VfaW5zbik6IERvbid0IHVzZSByZW1vdmVkIGZpZWxkcyBvZiBzdHJ1Y3QgbWlzYy4KCjIwMDItMDgtMDEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1hcm0uaDogUmV2ZXJ0IHByZXZpb3VzIGRlbHRhLgoKMjAwMi0wOC0wMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoQU1fSU5JVF9BVVRPTUFLRSk6IEJ1bXAgdmVyc2lvbiBudW1iZXIuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMDctMzEgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogY29uZmlnLmJmZDogQWRkIHg4Ni02NCB2ZWN0b3IgdG8gTGludXgvaTM4NiBpZiA2NGJpdCBCRkQgaXMKCXNlbGVjdGVkLgoKMjAwMi0wNy0zMSAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBjb25maWcuYmZkOiBBZGQgbjMyIHZlY3RvcnMgdG8gMzJiaXQgTGludXgvbWlwcyBpZiA2NGJpdCBCRkQKCWlzIHNlbGVjdGVkLgoKMjAwMi0wNy0zMSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogU3dhcCB0bHNfdHlwZQoJaWYgX2JmZF9lbGZfbGlua19oYXNoX2NvcHlfaW5kaXJlY3Qgd2lsbCBzd2FwIGdvdC5yZWZjb3VudC4KCjIwMDItMDctMzEgIElhbiBEYWxsICA8aWFuQHNpYnlsLmJld2FyZS5kcm9wYmVhci5pZC5hdT4KCgkqIGNwdS1uczMyay5jIChfYmZkX25zMzJrX3B1dF9pbW1kZWlhdGUsIF9iZmRfbnMzMmtfZ2V0X2ltbWVkaWF0ZSk6CglUaGVyZSBpcyBubyA4IGJ5dGUgcmVsb2NhdGlvbiB0eXBlIGZvciB0aGlzIGFyY2hpdGVjdHVyZS4KCShkb19uczMya19yZWxvYyk6IFVzZSBiZmRfdm1hIGluc3RlYWQgb2YgbmF0aXZlIHR5cGVzLgoJKGJmZF9uczMya19wdXRfaW1tZWRpYXRlLCBfYmZkX25zMzJrX3JlbG9jYXRlX2NvbnRlbnRzKSBwdXRfZGF0YQoJcmV0dXJucyB2b2lkLgoJKF9iZmRfbnMzMmtfcHV0X2Rpc3BsYWNlbWVudCk6IERvbid0IGNoZWNrIGZvciBvdmVyZmxvdy4gV2UgY2FuCglyZWx5IG9uIGdlbmVyaWMgY29kZSB0byBkbyB0aGF0LgoJKiBhb3V0LW5zMzJrLmMgKGhvd3RvX3RhYmxlKTogQWRkIGFwcHJvcHJpYXRlIG92ZXJmbG93IGRldGVjdGlvbgoJdG8gYWxsIHRhYmxlIGVudHJpZXMuCgkoX2JmZF9uczMya19yZWxvY2F0ZV9jb250ZW50cyk6IHB1dF9kYXRhIHJldHVybnMgdm9pZC4KCSogbnMzMmsuaDogKF9iZmRfbnMzMmtfcHV0X2Rpc3BsYWNlbWVudCwgX2JmZF9uczMya19wdXRfaW1tZWRpYXRlKQoJKF9iZmRfZG9fbnMzMmtfcmVsb2NfY29udGVudHMpOiBGaXggcHJvdG90eXBlcy4gcHV0IGRhdGEgZnVuY3Rpb25zCglyZXR1cm4gdm9pZC4KCjIwMDItMDctMzEgIElhbiBEYWxsICA8aWFuQHNpYnlsLmJld2FyZS5kcm9wYmVhci5pZC5hdT4KCgkqIGFvdXR4LmggKGFvdXRfbGlua19jaGVja19hcl9zeW1ib2xzKTogV2hldGhlciB0byBpbmNsdWRlIGFuCglhcmNoaXZlIG9iamVjdCBpcyB0YXJnZXQgZGVwZW5kYW50LgoKMjAwMi0wNy0zMSAgQWRhbSBOZW1ldCAgPGFuZW1ldEBsbnh3LmNvbT4KCgkqIGVsZjMyLWFybS5oIChBUk1fUExUX0VOVFJZX1NJWkUpOiBSZW5hbWUgUExUX0VOVFJZX1NJWkUuCgkoVEhVTUJfUExUX0VOVFJZX1NJWkUpOiBOZXcgbWFjcm8uCgkoUExUX0VOVFJZX1NJWkUpOiBSZXR1cm4gdGhlIGFwcHJvcHJpYXRlICpfUExUX0VOVFJZX1NJWkUuCgkoZWxmMzJfYXJtX3BsdDBfZW50cnkpOiBSZW5hbWUgUExUX0VOVFJZX1NJWkUgdG8KCUFSTV9QTFRfRU5UUllfU0laRS4KCShlbGYzMl9hcm1fcGx0X2VudHJ5KTogTGlrZXdpc2UuCgkoZWxmX2JhY2tlbmRfcGx0X2hlYWRlcl9zaXplKTogTGlrZXdpc2UuCgkoZWxmMzJfdGh1bWJfcGx0MF9lbnRyeSk6IE5ldyBnbG9iYWwuCgkoZWxmMzJfYXJtX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogVXNlIGl0LiAgUHV0IFRodW1iIGVudHJpZXMKCWludG8gLnBsdC50aHVtYi4KCShlbGYzMl90aHVtYl9wbHRfZW50cnkpOiBOZXcgZ2xvYmFsLgoJKGVsZjMyX2FybV9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBVc2UgaXQuICBVc2UgLnRodW1iLnBsdCBmb3IKCVRodW1iIGVudHJpZXMuICBTZXQgdGhlIGJvdHRvbSBiaXQgb2YgdGhlIGNvcnJlc3BvbmRpbmcgR09UIGVudHJ5Cglmb3IgYSBUaHVtYiBQTFQgZW50cnkuCgkoc3RydWN0IGVsZjMyX2FybV9wbHRfZW50cnlfaW5mbyk6IE5ldyBzdHJ1Y3R1cmUuCgkoc3RydWN0IGVsZjMyX2FybV9saW5rX2hhc2hfZW50cnksIHBsdF9pbmZvKTogTmV3IG1lbWJlciBvZiB0aGlzCgl0eXBlLgoJKGVsZjMyX2FybV9saW5rX2hhc2hfbmV3ZnVuYyk6IEluaXRpYWxpemUgbmV3IG1lbWJlci4KCShlbGYzMl9hcm1fZmluYWxfbGlua19yZWxvY2F0ZSwgUl9BUk1fVEhNX1BDMjIgY2FzZSk6IEhhbmRsZQoJcmVsb2NhdGlvbnMgYWdhaW5zdCB0aGUgUExULgoJKGVsZjMyX2FybV9jaGVja19yZWxvY3MsIGNhc2UgUl9BUk1fUExUMzIgY2FzZSk6IFNldAoJZmlyc3RfcmVsX3R5cGUgaWYgdGhpcyBpcyB0aGUgZmlyc3QgdGltZSB3ZSBlbmNvdW50ZXIgdGhlIHN5bWJvbC4KCShlbGYzMl9hcm1fY2hlY2tfcmVsb2NzLCBjYXNlIFJfQVJNX1RITV9QQzIyIGNhc2UpOiBOZXcgY2FzZS4KCURldGVybWluZSBpZiByZWxvY2F0aW9uIG5lZWRzIGEgUExUIGVudHJ5LiAgU2V0IGZpcnN0X3JlbF90eXBlIGlmCgl0aGlzIGlzIHRoZSBmaXJzdCB0aW1lIHdlIGVuY291bnRlciB0aGUgc3ltYm9sCgkoZWxmMzJfYXJtX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IENyZWF0ZSBQTFQgZW50cmllcyBmb3IgVGh1bWIKCWZ1bmN0aW9ucyBhcyB3ZWxsLgoJKGVsZjMyX2FybV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBIYW5kbGUgLnBsdC50aHVtYiBsaWtlIC5wbHQuCgkoZWxmMzJfYXJtX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogTmV3IGZ1bmN0aW9uLiAgQ3JlYXRlIHRoZQoJLnBsdC50aHVtYiBzZWN0aW9uLgoJKGVsZl9iYWNrZW5kX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogQ2FsbCBpdC4KCjIwMDItMDctMzEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBiZmQuYyAoYmZkX2FsdF9tYWNoX2NvZGUpOiBSZW5hbWUgcGFyYW1ldGVyICdpbmRleCcgdG8KCSdhbHRlcm5hdGl2ZScgaW4gb3JkZXIgdG8gYXZvaWQgc2hhZG93aW5nIGdsb2JhbCBzeW1ib2wgb2YgdGhlCglzYW1lIG5hbWUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgkqIGxpYmNvZmYuaDogUmVnZW5lcmF0ZS4KCjIwMDItMDctMzEgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBNYWtlZmlsZS5hbTogQWRkIG4zMiBBQkkgc3VwcG9ydC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy5iZmQ6IEFkZCBuMzIgdmVjdG9ycyB0byBtaXBzNjQqLSotbGludXgqIHRhcmdldHMuIFRyZWF0IDY0CgliaXQgdmVjdG9ycyBmb3IgbWlwcyotKi1saW51eCB0YXJnZXRzIGFzIG9wdGlvbmFsLgoJKiBjb25maWd1cmUuaW46IEFkZCBuMzIgQUJJIHZlY3RvcnMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogZWxmMzItbWlwcy5jIChtaXBzX2VsZjMyX29iamVjdF9wKTogUmVqZWN0IG4zMiBBQkkgZmlsZXMuCgkqIGVsZm4zMi1taXBzLmM6IE5ldyBmaWxlLCBuMzIgQUJJIHN1cHBvcnQuCgkqIHRhcmdldHMuYzogQWRkIG4zMiBBQkkgdmVjdG9ycy4KCjIwMDItMDctMzAgIEdyYWVtZSBQZXRlcnNvbiAgPGdwQHFueC5jb20+CgoJKiBlbGZhcm1xbngtbmFiaS5jOiBOZXcgZmlsZTogU3VwcG9ydCBmb3IgUU5YLgoJKiBjb25maWcuYmZkOiBBZGQgc3VwcG9ydCBmb3IgYXJtLSotbnRvIHRhcmdldC4KCSogY29uZmlndXJlLmluOiBBZGQgc3VwcG9ydCBmb3IgYmZkX2VsZjMyX3tiaWd8bGl0dGxlfWFybXFueF92ZWMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogTWFrZWZpbGUuYW06IEFkZCBlbnRyaWVzIGZvciBlbGZhcm1xbngtbmFiaS5jLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZWxmMzItYXJtLmggKEVMRl9NQVhQQUdFU0laRSk6IERvIG5vdCBkZWZpbmUgaWYgYWxyZWFkeSBkZWZpbmVkLgoJRG8gbm90IGRlZmluZSBnbG9iYWwgZnVuY3Rpb24gaWYgRUxGQVJNX05BQklfQ19JTkNMVURFRCBpcyBkZWZpbmVkLgoJKiBlbGZhcm0tbmFiaS5jOiBEbyBub3QgaW5jbHVkZSBlbGYzMi1hcm0uaCBpZgoJRUxGQVJNX05BQklfQ19JTkNMVURFRCBpcyBkZWZpbmVkLgoJKiB0YXJnZXRzLmM6IEFkZCBiZmRfZWxmMzJfe2JpZ3xsaXR0bGV9YXJtcW54X3ZlYy4KCjIwMDItMDctMzAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9zdi5wbzogVXBkYXRlZCBTd2VkaXNoIHRyYW5zbGF0aW9uLgoKMjAwMi0wNy0zMCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYuYyAoZWxmX2Zha2Vfc2VjdGlvbnMpOiBGaXggdXAgLnRic3Mgc2hfc2l6ZSBhbmQgc2hfdHlwZS4KCjIwMDItMDctMzAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBhb3V0eC5oIChzb21lX2FvdXRfb2JqZWN0X3ApOiBDbGVhbiB1cCB0ZGF0YSBwcm9wZXJseSBvbiBlcnJvci4KCSogYXJjaGl2ZS5jIChiZmRfZ2VuZXJpY19hcmNoaXZlX3ApOiBMaWtld2lzZS4KCSogY29mZi1yczYwMDAuYyAoX2JmZF94Y29mZl9hcmNoaXZlX3ApOiBMaWtld2lzZS4KCShfYmZkX3hjb2ZmX2FyY2hpdmVfcCk6IFVzZSBiZmRfc2Nhbl92bWEgaW4gcGxhY2Ugb2Ygc3RydG9sLgoJKiBjb2ZmNjQtcnM2MDAwLmMgKHhjb2ZmNjRfc2x1cnBfYXJtYXApOiBMaWtld2lzZS4KCSh4Y29mZjY0X2FyY2hpdmVfcCk6IExpa2V3aXNlLgoJKHhjb2ZmNjRfb3BlbnJfbmV4dF9hcmNoaXZlZF9maWxlKTogTGlrZXdpc2UuCgkoeGNvZmY2NF9hcmNoaXZlX3ApOiBDbGVhbiB1cCB0ZGF0YSBwcm9wZXJseSBvbiBlcnJvci4KCSogY29mZmdlbi5jIChjb2ZmX3JlYWxfb2JqZWN0X3ApOiBMaWtld2lzZS4KCShjb2ZmX29iamVjdF9wKTogUmVsZWFzZSBmaWxlaGRyIGFuZCBvcHRoZHIuCgkqIGVjb2ZmLmMgKF9iZmRfZWNvZmZfYXJjaGl2ZV9wKTogQ2xlYW4gdXAgdGRhdGEgcHJvcGVybHkgb24gZXJyb3IuCgkqIGllZWUuYyAoaWVlZV9hcmNoaXZlX3ApOiBMaWtld2lzZS4KCSogaWhleC5jIChpaGV4X29iamVjdF9wKTogTGlrZXdpc2UuCgkoaWhleF9ta29iamVjdCk6IEFsd2F5cyBhbGxvY2F0ZSB0ZGF0YS4KCSogcGVpY29kZS5oIChwZV9JTEZfb2JqZWN0X3ApOiBSZWxlYXNlIGJmZF9hbGxvYydkIGJ1ZmZlciBvbiBlcnJvci4KCSogc3JlYy5jIChzcmVjX21rb2JqZWN0KTogQWx3YXlzIGFsbG9jYXRlIHRkYXRhLgoJKHNyZWNfb2JqZWN0X3ApOiBDbGVhbiB1cCB0ZGF0YSBwcm9wZXJseSBvbiBlcnJvci4KCShzeW1ib2xzcmVjX29iamVjdF9wKTogTGlrZXdpc2UuCgkqIHZlcnNhZG9zLmMgKHZlcnNhZG9zX29iamVjdF9wKTogTGlrZXdpc2UuCgkqIHZtcy1taXNjLmMgKF9iZmRfdm1zX2dldF9yZWNvcmQpOiBVc2UgYmZkX21hbGxvYyBpbnN0ZWFkIG9mIG1hbGxvYywKCWFuZCBiZmRfcmVhbGxvYyBpbnN0ZWFkIG9mIHJlYWxsb2MuCgkoYWRkX25ld19jb250ZW50cyk6IFVzZSBiZmRfYWxsb2MgaW5zdGVhZCBvZiBiZmRfbWFsbG9jIGZvciBzZWN0aW9ucy4KCSogdm1zLmMgKHZtc19pbml0aWFsaXplKTogQWx3YXlzIGFsbG9jYXRlIHRkYXRhLiAgVXNlIGJmZF9hbGxvYyBpbgoJcGxhY2Ugb2YgYmZkX21hbGxvYywgc2ltcGxpZnlpbmcgZXJyb3IgZnJlZWluZy4gIEZyZWUgaGFzaCB0YWJsZSB0b28uCgkodm1zX29iamVjdF9wKTogQ2xlYW4gdXAgdGRhdGEgb24gZXJyb3IuCgkodm1zX21rb2JqZWN0KTogRG9uJ3QgY29tcGxhaW4gb24gc3RkZXJyIGlmIHZtc19pbml0aWFsaXplIGZhaWxzLgoJKHZtc19jbG9zZV9hbmRfY2xlYW51cCk6IEFkanVzdCBmb3IgYmZkX2FsbG9jIHVzZS4KCjIwMDItMDctMzAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IFNldCBlX2ZsYWdzLgoKMjAwMi0wNy0yNiAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogTWVyZ2UgQVNFCglmbGFncyBpbnRvIHJlc3VsdGluZyBCRkQuCgoyMDAyLTA3LTI2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCUZyb20gSm9obiBSZWlzZXIgPGpyZWlzZXJAQml0V2Fnb24uY29tPgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBDbGVhcgoJdGxzX2xkbV9nb3QucmVmY291bnQuCgoyMDAyLTA3LTI1ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmNjQtbWlwcy5jOiBVcGRhdGUgVE9ETyBjb21tZW50LgoJKG1pcHNfZWxmNjRfaGlnaGVyX3JlbG9jLG1pcHNfZWxmNjRfaGlnaGVzdF9yZWxvYywKCW1pcHNfZWxmNjRfZ3ByZWwxNl9yZWxvY2EpOiBSZW1vdmUgcHJvdG90eXBlcy4KCShtaXBzMTZfanVtcF9yZWxvYyxtaXBzMTZfZ3ByZWxfcmVsb2MpOiBBZGQgZnVuY3Rpb25zLgoJKFVOVVNFRF9SRUxPQyk6IFJlcGxhY2UgYnkgRU1QVFlfUkVMT0MuCgkobWlwc19lbGY2NF9ob3d0b190YWJsZV9yZWwpOiBVc2Ugc3BlY2lhbCBSX01JUFNfSEkxNiBoYW5kbGluZy4gUmVtb3ZlCgl3cm9uZyBjb21tZW50cy4gUmVtb3ZlIGRpc2Z1bmN0aW9uYWwgc3VwcG9ydCBvZiBSX01JUFNfSElHSEVSIGFuZAoJUl9NSVBTX0hJR0hFU1QuCgkobWlwc19lbGY2NF9ob3d0b190YWJsZV9yZWxhKTogRml4IGhhbmRsaW5nIG9mIFJfTUlQU19HUFJFTDE2IGFuZAoJUl9NSVBTX0dPVDE2LiBSZW1vdmUgd3JvbmcgY29tbWVudHMuCgkoZWxmX21pcHMxNl9qdW1wX2hvd3RvLGVsZl9taXBzMTZfZ3ByZWxfaG93dG8sCgllbGZfbWlwc19nbnVfdnRpbmhlcml0X2hvd3RvLGVsZl9taXBzX2dudV92dGVudHJ5X2hvd3RvKTogTmV3LCBjb2RlCglmcm9tIGVsZjMyLW1pcHMuYy4KCShtaXBzX2VsZjY0X2hpMTZfcmVsb2MpOiBGaXggZm9ybWF0dGluZy4KCShtaXBzX2VsZjY0X2hpZ2hlcl9yZWxvYyxtaXBzX2VsZjY0X2hpZ2hlc3RfcmVsb2MpOiBSZW1vdmUuCgkobWlwc19lbGY2NF9nb3QxNl9yZWxvYyk6IEZpeCBmb3JtYXR0aW5nLiBSZW1vdmUgc3VwZXJmbHVvdXMgY29kZS4KCUJldHRlciBjb21tZW50LiBGYWxsIGJhY2sgdG8gUl9NSVBTX0dPVF9ESVNQIGluc3RlYWQgb2YgYWJvcnQoKS4KCShtaXBzX2VsZjY0X2dwcmVsMTZfcmVsb2MpOiBNYWtlIHN0YXRpYy4gQWRkIGNoZWNrIGZvcgoJcGFydGlhbF9pbnBsYWNlLgoJKG1pcHNfZWxmNjRfZ3ByZWwxNl9yZWxvY2EpOiBSZW1vdmUuCgkobWlwc19lbGY2NF9saXRlcmFsX3JlbG9jKTogTmV3IGZ1bmN0aW9uLgoJKG1pcHNfZWxmNjRfZ3ByZWwzMl9yZWxvYyk6IEZpeCBmb3JtYXR0aW5nLgoJKG1pcHNfZWxmNjRfc2hpZnQ2X3JlbG9jKTogRml4IGNvbW1lbnQuIE1ha2Ugc3RhdGljLgoJKG1pcHMxNl9qdW1wX3JlbG9jLG1pcHMxNl9ncHJlbF9yZWxvYyk6IE5ldyBmdW5jdGlvbnMsIGNvZGUgZnJvbQoJZWxmMzItbWlwcy5jLgoJKGVsZl9yZWxvY19tYXAsbWlwc19yZWxvY19tYXApOiBOZXcgbWFwcGluZyB0YWJsZSwgc2ltaWxpYXIgYXMgaW4KCWVsZjMyLW1pcHMuYwoJKGJmZF9lbGY2NF9iZmRfcmVsb2NfdHlwZV9sb29rdXApOiBVc2UgdGhlIG1hcHBpbmcgdGFibGUuIEVuYWJsZSBHTlUKCXNwZWNpZmljIHJlbG9jYXRpb25zLgoJKG1pcHNfZWxmNjRfcnR5cGVfdG9faG93dG8pOiBFbmFibGUgR05VIHNwZWNpZmljIHJlbG9jYXRpb25zLgoJKG1pcHNfZWxmNjRfb2JqZWN0X3ApOiBJbnZlcnQgbG9naWMgdG8gY2hlY2sgZm9yIFNHSS1pc2ggQUJJLgoJKEVMRl9NQVhQQUdFU0laRSk6IEFkZCBjb21tZW50LgoKMjAwMi0wNy0yNSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL3N2LnBvOiBVcGRhdGVkIFN3ZWRpc2ggdHJhbnNsYXRpb24uCgkqIHBvL2VzLnBvOiBVcGRhdGVkIFNwYW5pc2ggdHJhbnNsYXRpb24uCgkqIHBvL2ZyLnBvOiBVcGRhdGVkIEZyZW5jaCB0cmFuc2xhdGlvbi4KCjIwMDItMDctMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYtYmZkLmggKF9iZmRfZWxmMzJfbGlua19yZWNvcmRfbG9jYWxfZHluYW1pY19zeW1ib2wpOiBEZWZpbmUKCWFzIGVsZl9saW5rX3JlY29yZF9sb2NhbF9keW5hbWljX3N5bWJvbC4KCShfYmZkX2VsZjY0X2xpbmtfcmVjb3JkX2xvY2FsX2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgkoZWxmX2xpbmtfcmVjb3JkX2xvY2FsX2R5bmFtaWNfc3ltYm9sKTogRGVjbGFyZS4gIE5vdyByZXR1cm5zIGludC4KCSogZWxmbGluay5oIChlbGZfbGlua19yZWNvcmRfbG9jYWxfZHluYW1pY19zeW1ib2wpOiBNb3ZlIHRvLi4KCSogZWxmbGluay5jOiAuLiBoZXJlLiAgVXNlIGJmZF9lbGZfZ2V0X2VsZl9zeW1zLiAgQ2hlY2sgd2hldGhlciBhbgoJYXR0ZW1wdCBpcyBtYWRlIHRvIHJlY29yZCBhIHN5bWJvbCBpbiBhIGRpc2NhcmRlZCBzZWN0aW9uLCBhbmQKCXJldHVybiBgMicgaW4gdGhhdCBjYXNlLgoKMjAwMi0wNy0yNCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL3N2LnBvOiBVcGRhdGVkIFN3ZWRpc2ggdHJhbnNsYXRpb24uCgkqIHBvL2VzLnBvOiBVcGRhdGVkIFNwYW5pc2ggdHJhbnNsYXRpb24uCgoyMDAyLTA3LTIzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogcG8vU1JDLVBPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKCSogZWxmLWhwcGEuaCAoZWxmX2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IElmIHJlbG9jYXRhYmxlLCByZXR1cm4KCWltbWVkaWF0ZWx5LiAgUmVtb3ZlIGNvZGUgaGFuZGxpbmcgcmVsb2NhdGFibGUgbGlua2luZy4KCSogZWxmMzItYXZyLmMgKGVsZjMyX2F2cl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWNyaXMuYyAoY3Jpc19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1mcjMwLmMgKGVsZjMyX2Zydl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWZydi5jIChlbGYzMl9mcnZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1oODMwMC5jIChlbGYzMl9oOF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWlwMmsuYyAoaXAya19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1zcGFyYy5jIChlbGYzMl9zcGFyY19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXY4NTAuYyAodjg1MF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi12YXguYyAoZWxmX3ZheF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItYXZyLmMgKGVsZl9iYWNrZW5kX3JlbGFfbm9ybWFsKTogRGVmaW5lLgoJKiBlbGYzMi1jcmlzLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1mcjMwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1mcnYuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWg4MzAwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1ocHBhLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1pcDJrLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zcGFyYy5jOiBMaWtld2lzZS4KCSogZWxmMzItdjg1MC5jOiBMaWtld2lzZS4KCSogZWxmMzItdmF4LmM6IExpa2V3aXNlLgoJKiBlbGY2NC1ocHBhLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1zcGFyYy5jOiBMaWtld2lzZS4KCSogZWxmMzItZnIzMC5jIChlbGYzMl9mcnZfcmVsb2NhdGVfc2VjdGlvbik6IEVkaXQgY29tbWVudC4KCSogZWxmMzItZnJ2LmMgKGVsZjMyX2Zydl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWk4NjAuYyAoZWxmMzJfaTg2MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWlwMmsuYyAoaXAya19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1tMzJyLmMgKG0zMnJfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItb3BlbnJpc2MuYyAob3BlbnJpc2NfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzIteHN0b3JteTE2LmMgKHhzdG9ybXkxNl9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYtbTEwMjAwLmMgKFVTRV9SRUxBKTogRG9uJ3QgZGVmaW5lLgoJKiBlbGYtbTEwMzAwLmM6IExpa2V3aXNlLgoJKiBlbGZhcm0tb2FiaS5jOiBMaWtld2lzZS4KCSogZWxmMzItaTM3MC5jOiBMaWtld2lzZS4KCSogZWxmMzItaXAyay5jOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jOiBMaWtld2lzZS4KCSogZWxmMzItbWNvcmUuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jOiBMaWtld2lzZS4KCSogZWxmMzItczM5MC5jOiBMaWtld2lzZS4KCSogZWxmMzItdmF4LmM6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jOiBMaWtld2lzZS4KCSogZWxmMzItYXZyLmMgKFVTRV9SRUwpOiBEb24ndCB1bmRlZi4KCSogZWxmMzItaXAyay5jOiBMaWtld2lzZS4KCjIwMDItMDctMjMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbGYtYmZkLmggKHN0cnVjdCBlbGZfYmFja2VuZF9kYXRhKTogQWRkIG5ldyBiaXRmaWVsZAoJJ3dhbnRfcF9wYWRkcl9zZXRfdG9femVybycuCgkqIGVsZnh4LXRhcmdldC5oOiBTZXQgZGVmYXVsdCB2YWx1ZSBmb3Igd2FudF9wX3BhZGRyX3NldF90b196ZXJvCgl0byBmYWxzZTsKCSogZWxmeHgtaWE2NC5jOiBTZXQgd2FudF9wX3BhZGRyX3NldF96ZXJvIGZvciBIUFVYIHRhcmdldC4KCSogZWxmLmMgKGNvcHlfcHJpdmF0ZV9iZmRfZGF0YSk6IFRlc3Qgd2FudF9wX3BhZGRyX3NldF96ZXJvLgoKMjAwMi0wNy0yMyAgR2Fib3IgS2VyZXN6dGZhbHZpICA8a2VyZXN6dGdAbWFpbC5jb20+CgoJKiBubG1jb2RlLmggKG5sbV9zd2FwX2F1eGlsaWFyeV9oZWFkZXJzX291dCk6IFN3YXBwZWQgdGhlIG9yZGVyIG9mCgl0aGUgTWVTc0FnRXMgYW5kIENvUHlSaUdoVCB0YWdzIHRvIG1ha2UgPj1OVzQueCBOTE0gbG9hZGVycyB0bwoJc2hvdyB0aGUgQ29weXJpZ2h0IHN0cmluZy4KCU1pbm9yIGZvcm1hdHRpbmcgdGlkeSB1cHMuCgoyMDAyLTA3LTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vZnIucG86IFVwZGF0ZWQgRnJlbmNoIHRyYW5zbGF0aW9uLgoJKiBwby9zdi5wbzogVXBkYXRlZCBTd2VkaXNoIHRyYW5zbGF0aW9uLgoKMjAwMi0wNy0yMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfaW5wdXRfYmZkKTogRG9uJ3QgY2hhbmdlIGludGVybmFsIHN5bWJvbHMKCXdoZW4gb3V0cHV0dGluZyByZWxvY3MuCgoyMDAyLTA3LTIwICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogT25seSBpbnNlcnQKCURUX1BMVEdPVCBpbnRvIHRoZSBkeW5hbWljIHNlY3Rpb24gaWYgdGhlcmUgaXMgYSBQTFQuCgoyMDAyLTA3LTE5ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX2Rpc2NhcmRfaW5mbyk6IE5ldyBmdW5jdGlvbiwgY29kZSBmcm9tCgllbGYzMi1taXBzLmMuCgkoX2JmZF9taXBzX2VsZl93cml0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuaCAoX2JmZF9taXBzX2VsZl9kaXNjYXJkX2luZm8pOiBOZXcgcHJvdG90eXBlLgoJKF9iZmRfbWlwc19lbGZfd3JpdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1taXBzLmMgKGVsZjMyX21pcHNfZGlzY2FyZF9pbmZvKTogTW92ZSB0byBlbGZ4eC1taXBzLmMuCgkoZWxmMzJfbWlwc193cml0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9pZ25vcmVfZGlzY2FyZGVkX3JlbG9jcyk6IFVzZSBpdC4KCShfYmZkX21pcHNfZWxmX3dyaXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDItMDctMTkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZ4eC1pYTY0LmM6IChlbGZOTl9pYTY0X21vZGlmeV9zZWdtZW50X21hcCk6IFByb3Blcmx5IHNjYW4KCVBUX0lBXzY0X1VOV0lORCBzZWdtZW50cyBmb3IgYSBnaXZlbiBzZWN0aW9uLgoKMjAwMi0wNy0xNyAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBNYWtlZmlsZS5hbTogRml4IGEgdHlwby4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTA3LTE1ICBEZW5pcyBDaGVydHlrb3YgIDxkZW5pc2NAb3ZlcnRhLnJ1PgoJICAgIEZyYW5rIENoLiBFaWdsZXIgIDxmY2hlQHJlZGhhdC5jb20+CgkgICAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgkgICAgQWxhbiBMZWhvdHNreSAgPGFsZWhvdHNreUBjeWdudXMuY29tPgoJICAgIEpvaG4gSGVhbHkgIDxqaGVhbHlAcmVkaGF0LmNvbT4KCSAgICBHcmFoYW0gU3RvdHQgIDxncmFoYW1zQHJlZGhhdC5jb20+CgkgICAgSmVmZiBKb2huc3RvbiAgPGpqb2huc3RuQHJlZGhhdC5jb20+CgoJKiBNYWtlZmlsZS5hbTogQWRkIHN1cHBvcnQgZm9yIGlwMmsuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGFyY2h1cmVzLmM6IEFkZCBzdXBwb3J0IGZvciBpcDJrLgoJKiBjb25maWcuYmZkOiBBZGQgc3VwcG9ydCBmb3IgaXAyay4KCSogY29uZmlndXJlLmluOiBBZGQgc3VwcG9ydCBmb3IgaXAyay4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiByZWxvYy5jOiBBZGQgc3VwcG9ydCBmb3IgaXAyay4KCSogdGFyZ2V0cy5jOiBBZGQgc3VwcG9ydCBmb3IgaXAyay4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogY3B1LWlwMmsuYzogTmV3IGZpbGUuCgkqIGVsZjMyLWlwMmsuYzogTmV3IGZpbGUuCgoyMDAyLTA3LTE3ICBJYW4gUmlja2FyZHMgIDxpcmlja2FyZEBhcm0uY29tPgoKCSogZHdhcmYyLmMgKGNvbmNhdF9maWxlbmFtZSk6IElmIHdlIGNhbid0IGVzdGFibGlzaCB0aGUgZGlyZWN0b3J5CglqdXN0IHJldHVybiB0aGUgZmlsZW5hbWUuCgoyMDAyLTA3LTE2ICBNb3JpdHogSm9kZWl0ICA8bW9yaXR6QGpvZGVpdC5vcmc+CgoJKiBwZVhYaWdlbi5jIChfYmZkX1hYaV9zd2FwX2FvdXRoZHJfb3V0KTogQ29ycmVjdCBvcmRlciBvZiBtZW1zZXQgYXJncy4KCjIwMDItMDctMTYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZsaW5rLmg6IEZvcm1hdHRpbmcgZml4ZXMsIHRpZHkgcHJvdG90eXBlcy4KCShlbGZfbGlua19hc3NpZ25fc3ltX3ZlcnNpb24pOiBNb3ZlIGNvbW1vbiBjb2RlIG91dCBvZiBsb29wLgoKMjAwMi0wNy0xNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfaW5wdXRfYmZkKTogRG9uJ3QgY2FsbCByZWxvY19lbWl0dGVyIHdoZW4KCXJlbG9jIHNlY3Rpb24gc2l6ZSBpcyB6ZXJvLiAgQ29ycmVjdCByZWxvYyBvdXRwdXQgbG9jYXRpb24uCgoyMDAyLTA3LTE2ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogZWxmLWhwcGEuaCAoZWxmX2hwcGFfcmVsb2NfZmluYWxfdHlwZSk6IFVzZSBSX1BBUklTQ19QQ1JFTDE2RiBhcwoJdGhlIGZpbmFsIHR5cGUgZm9yIHRoZSBlX2ZzZWwgc2VsZWN0b3Igd2hlbiBnZW5lcmF0aW5nIFBBMi4wVyBjb2RlLgoJKGVsZl9ocHBhX3JlbG9jYXRlX2luc24pOiBQcm92aWRlIHN1cHBvcnQgZm9yIFBBMi4wVyAxNi1iaXQgZm9ybWF0IDEKCXJlbG9jYXRpb25zLgoKMjAwMi0wNy0xNCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2Fzc2lnbl9zeW1fdmVyc2lvbik6IEhpZGUgdGhlIGRlZmF1bHQKCWRlZmluaXRpb24gaWYgdGhlcmUgaXMgYSBoaWRkZW4gdmVyc2lvbmVkIGRlZmluaXRpb24uCgoyMDAyLTA3LTEyICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGVsZjMyLWNyaXMuYyAoY3Jpc19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IERyb3Agbm9uc2Vuc2ljYWwKCWR5bmFtaWMgcmVmZXJlbmNlIHRlc3QgaW4gYXNzZXJ0aW9uIHdoZW4gaW5pdGlhbGl6aW5nIEdPVCB3aXRoCglzdGF0aWMgY29udGVudHMuICBKdXN0IGFzc2VydCB0aGF0IHRoZXJlIGFyZSBlaXRoZXIgbm8gZHluYW1pYwoJc2VjdGlvbnMsIHRoZSBzeW1ib2wgaXMgZGVmaW5lZCBpbiB0aGUgcmVndWxhciBvYmplY3RzIG9yIHRoYXQgdGhlCglzeW1ib2wgaXMgdW5kZWYgd2Vhay4gIFR3ZWFrIGNvbW1lbnQuCgkoZWxmX2NyaXNfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogRW1pdCAuZ290IHJlbG9jIGZvciBhIHByb2dyYW0KCW9ubHkgaWYgdGhlIHN5bWJvbCBpc24ndCBkZWZpbmVkIGluIHRoZSBwcm9ncmFtIGFuZCBpc24ndCB1bmRlZgoJd2Vhay4KCShlbGZfY3Jpc19hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBTaW1wbGlmeSBjb25kaXRpb24gZm9yIGdldHRpbmcKCXJpZCBvZiBQTFQgZW50cnk6IG9ubHkgZG8gaXQgaWYgdGhlIHN5bWJvbCBpc24ndCBkZWZpbmVkIGluIGEgRFNPLgoJV2hlbiBkb2luZyBzbywgY2xlYXIgRUxGX0xJTktfSEFTSF9ORUVEU19QTFQuICBUd2VhayBjb21tZW50cy4KCShlbGZfY3Jpc19kaXNjYXJkX2V4Y2Vzc19wcm9ncmFtX2R5bmFtaWNzKTogRG9uJ3QgY29uc2lkZXIKCUVMRl9MSU5LX0hBU0hfUkVGX0RZTkFNSUMgd2hlbiBvbWl0dGluZyAuZ290IHJ1bnRpbWUgcmVsb2NzLgoKMjAwMi0wNy0xMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IERvbid0IGNvbXBsYWluIGFib3V0Cgl1bnJlc29sdmVkIGRlYnVnZ2luZyByZWxvY3MgaW4gZHluYW1pYyBhcHBsaWNhdGlvbnMuCgkqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1zcGFyYy5jIChlbGYzMl9zcGFyY19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDItMDctMTAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAoT05FUyk6IERlZmluZS4KCShwcGM2NF9lbGZfaG93dG9fdGFibGUpOiBVc2UgT05FUyBoZXJlIHRvIGF2b2lkIHdhcm5pbmdzLiAgRmlsbCBpbgoJbWlzc2luZyBzcmNfbWFzayBmaWVsZHMuICBUd2VhayBSX1BQQzY0X05PTkUsIFJfUFBDNjRfQ09QWS4gIEZpbGwKCWluIG1pc3NpbmcgZHN0X21hc2sgZmllbGRzIG9uIFJfUFBDNjRfUExUMzIsIFJfUFBDNjRfUExUUkVMMzIuCgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2dldF9zeW1ib2xfaW5mbyk6IERlbGV0ZS4KCShwcGM2NF9lbGZfc2V0X3ByaXZhdGVfZmxhZ3MpOiBEZWxldGUuCgkocHBjNjRfZWxmX3NlY3Rpb25fZnJvbV9zaGRyKTogRGVsZXRlLgoJKHBwYzY0X2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogUmVtb3ZlIGZsYWcgY2hlY2tpbmcvbWVyZ2luZyBjb2RlLgoJKHBwYzY0X2VsZl9mYWtlX3NlY3Rpb25zKTogRGVsZXRlLgoJKGJmZF9lbGY2NF9iZmRfc2V0X3ByaXZhdGVfZmxhZ3MpOiBEb24ndCBkZWZpbmUuCgkoYmZkX2VsZjY0X2dldF9zeW1ib2xfaW5mbyk6IExpa2V3aXNlLgoJKGVsZl9iYWNrZW5kX3NlY3Rpb25fZnJvbV9zaGRyKTogTGlrZXdpc2UuCgkoZWxmX2JhY2tlbmRfZmFrZV9zZWN0aW9ucyk6IExpa2V3aXNlLgoKMjAwMi0wNy0xMCAgTWFyY28gV2FsdGhlciAgPE1hcmNvLldhbHRoZXJAc3VuLmNvbT4KCgkqIGVsZi5jOiAoYXNzaWduX3NlY3Rpb25fbnVtYmVycykgU2V0IHNoX2VudHNpemUgZm9yIC5zdGFiIG9ubHkKCXdoZW4gbm90IGFscmVhZHkgc2V0LgoJKiBlbGY2NC1zcGFyYy5jOiAoc3BhcmM2NF9lbGZfZmFrZV9zZWN0aW9ucyk6IE5ldyBmdW5jdGlvbi4KCShlbGZfYmFja2VuZF9mYWtlX3NlY3Rpb25zKTogRGVmaW5lLgoKMjAwMi0wNy0xMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIG1lcmdlLmMgKF9iZmRfbWVyZ2Vfc2VjdGlvbik6IFJlbW92ZSByZWR1bmRhbnQgb3V0cHV0X3NlY3Rpb24gY2hlY2suCglGb3JtYXR0aW5nLgoJKF9iZmRfbWVyZ2Vfc2VjdGlvbnMpOiBEb24ndCBzZXQgU0VDX0VYQ0xVREUgb24gdW51c2VkIHNlY3Rpb25zLgoKMjAwMi0wNy0wOSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBlbGYzMi1jcmlzLmMgKGNyaXNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBNb3ZlIHNhbml0eS1jaGVjayBmb3IKCU5VTEwgc3ltX2hhc2hlcyB0byBqdXN0IGJlZm9yZSB1c2UuCgk8Y2FzZSBSX0NSSVNfMzJfR09UUkVMPjogSW4gdGVzdCBmb3IgbG9jYWwgc3ltYm9sLCBhY2NlcHQgYWxzbwoJc3ltYm9sIHdpdGggbm9uLWRlZmF1bHQgdmlzaWJpbGl0eS4KCTxjYXNlIFJfQ1JJU18zMl9HT1RSRUwsIGNhc2UgUl9DUklTXzMyX1BMVF9HT1RSRUw+OiBEaXR0by4KCTxjYXNlIFJfQ1JJU184X1BDUkVMLCBjYXNlIFJfQ1JJU18xNl9QQ1JFTCwgY2FzZSBSX0NSSVNfMzJfUENSRUw+OgoJRGl0dG8uCgkoY3Jpc19lbGZfZ2Nfc3dlZXBfaG9vayk6IE9ubHkgZGVjcmVhc2UgaC0+cGx0LnJlZmNvdW50IGZvcgoJc3ltYm9sIHdpdGggbm9uLWRlZmF1bHQgdmlzaWJpbGl0eS4KCShjcmlzX2VsZl9jaGVja19yZWxvY3MpOiBBdCB0ZXN0cyBmb3IgbG9jYWwgc3ltYm9sIGJlZm9yZQoJaW5jcmVhc2luZyBoLT5wbHQucmVmY291bnQsIGFsc28gY2hlY2sgZm9yIG5vbi1kZWZhdWx0Cgl2aXNpYmlsaXR5LiAgRGl0dG8gd2hlbiBjaGVja2luZyBmb3IgbG9jYWwgc3ltYm9sIHRvIGVsaW1pbmF0ZQoJcGMtcmVsYXRpdmUgcnVudGltZSByZWxvY3MuCgoyMDAyLTA3LTA4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLmM6IEZvcm1hdHRpbmcuCgkoSVNfU09MQVJJU19QVF9JTlRFUlApOiBBZGQgcF9wYWRkciBhbmQgcF9tZW1zeiBjaGVja3MuCgkoSU5DTFVERV9TRUNUSU9OX0lOX1NFR01FTlQpOiBSZW1vdmUgSVNfU09MQVJJU19QVF9JTlRFUlAuCgkoY29weV9wcml2YXRlX2JmZF9kYXRhKTogU2V0IHBfdmFkZHIgb24gYnJva2VuIFNvbGFyaXMgUFRfSU5URVJQCglzZWdtZW50cy4KCjIwMDItMDctMDcgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgkgICAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvZmZsaW5rLmMgKF9iZmRfY29mZl9maW5hbF9saW5rKTogT24gUEUgQ09GRiBzeXN0ZW1zLCB0YWtlIGludG8KCWFjY291bnQgdGhlIGltcGFjdCBvZiByZWxvY2F0aW9uIGNvdW50IG92ZXJmbG93IHdoZW4gY29tcHV0aW5nCglzZWN0aW9uIG9mZnNldHMuCgkqIGNvZmZjb2RlLmggKGNvZmZfd3JpdGVfcmVsb2NzKTogVXNlIG9ial9wZSB3aGVuIGRlY2lkaW5nIHdoZXRoZXIKCW9yIG5vdCB0byBhcHBseSB0aGUgUEUgQ09GRiByZWxvYyBvdmVyZmxvdyBoYW5kbGluZy4gIEZpeCBhCglmZW5jZXBvc3QgZXJyb3IgaW4gZGVjaWRpbmcgd2hldGhlciBvciBub3QgdG8gdXNlIHRoYXQgdGVjaG5pcXVlLgoKMjAwMi0wNy0wNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1iZmQuaCAoc3RydWN0IGVsZl9yZWxvY19jb29raWUpOiBSZW1vdmUgbG9jc3ltX3NobmR4LAoJY2hhbmdlIHR5cGUgb2YgbG9jc3ltcy4KCShiZmRfZWxmX2dldF9lbGZfc3ltcyk6IERlY2xhcmUuCgkqIGVsZi5jIChiZmRfZWxmX2dldF9lbGZfc3ltcyk6IE5ldyBmdW5jdGlvbi4KCShncm91cF9zaWduYXR1cmUpOiBVc2UgYmZkX2VsZl9nZXRfZWxmX3N5bXMuCgkoYmZkX3NlY3Rpb25fZnJvbV9yX3N5bW5keCk6IExpa2V3aXNlLgoJKiBlbGZjb2RlLmggKGVsZl9zbHVycF9zeW1ib2xfdGFibGUpOiBMaWtld2lzZS4KCSogZWxmbGluay5oIChlbGZfbGlua19pc19kZWZpbmVkX2FyY2hpdmVfc3ltYm9sKTogTGlrZXdpc2UuCgkoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogTGlrZXdpc2UuICBSZW9yZ2FuaXNlIHRvIGluY3JlYXNlCglsb2NhbGl0eSBvZiB2YXJpb3VzIGRhdGEgc3RydWN0dXJlcy4gIFByb3Blcmx5IGZyZWUgaW50ZXJuYWwgcmVsb2NzLgoJKGVsZl9iZmRfZmluYWxfbGluayk6IFByb3Blcmx5IGZyZWUgaW50ZXJuYWwgcmVsb2NzLgoJKGVsZl9saW5rX2NoZWNrX3ZlcnNpb25lZF9zeW1ib2wpOiBVc2UgYmZkX2VsZl9nZXRfZWxmX3N5bXMuCgkoZWxmX2xpbmtfaW5wdXRfYmZkKTogTGlrZXdpc2UuCgkoZWxmX2djX21hcmspOiBMaWtld2lzZS4gIFByb3Blcmx5IGZyZWUgaW50ZXJuYWwgcmVsb2NzLgoJKGVsZl9nY19zd2VlcCk6IFByb3Blcmx5IGZyZWUgaW50ZXJuYWwgcmVsb2NzLgoJKGVsZl9yZWxvY19zeW1ib2xfZGVsZXRlZF9wKTogTm8gbmVlZCB0byBzd2FwIHN5bXMgaW4uCgkoZWxmX2JmZF9kaXNjYXJkX2luZm8pOiBVc2UgYmZkX2VsZl9nZXRfZWxmX3N5bXMuICBQcm9wZXJseSBmcmVlCglpbnRlcm5hbCByZWxvY3MuCgkqIGVsZi1tMTAyMDAuYyAobW4xMDIwMF9lbGZfcmVsYXhfc2VjdGlvbik6IFVzZSBiZmRfZWxmX2dldF9lbGZfc3ltcy4KCVByb3Blcmx5IGZyZWUgcG9zc2libHkgY2FjaGVkIGluZm8uCgkobW4xMDIwMF9lbGZfcmVsYXhfZGVsZXRlX2J5dGVzKTogUmVtb3ZlIHN5bWJvbCBzd2FwcGluZyBjb2RlLgoJKG1uMTAyMDBfZWxmX3N5bWJvbF9hZGRyZXNzX3ApOiBQYXNzIGluIGludGVybmFsIHN5bXMuICBSZW1vdmUKCXN5bWJvbCBzd2FwcGluZyBjb2RlLgoJKG1uMTAyMDBfZWxmX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IFVzZSBiZmRfZWxmX2dldF9lbGZfc3ltcy4KCVByb3Blcmx5IGZyZWUgcG9zc2libHkgY2FjaGVkIGluZm8uCgkqIGVsZi1tMTAzMDAuYyAobW4xMDMwMF9lbGZfcmVsYXhfc2VjdGlvbik6IEFzIGFib3ZlIGZvciBlbGYtbTEwMjAwLmMuCgkobW4xMDMwMF9lbGZfcmVsYXhfZGVsZXRlX2J5dGVzKTogTGlrZXdpc2UuCgkobW4xMDMwMF9lbGZfc3ltYm9sX2FkZHJlc3NfcCk6IExpa2V3aXNlLgoJKG1uMTAzMDBfZWxmX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IExpa2V3aXNlLgoJKiBlbGYzMi1oODMwMC5jIChlbGYzMl9oOF9yZWxheF9zZWN0aW9uKTogQXMgYWJvdmUgZm9yIGVsZi1tMTAyMDAuYy4KCShlbGYzMl9oOF9yZWxheF9kZWxldGVfYnl0ZXMpOiBMaWtld2lzZS4KCShlbGYzMl9oOF9zeW1ib2xfYWRkcmVzc19wKTogTGlrZXdpc2UuCgkoZWxmMzJfaDhfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogTGlrZXdpc2UuCgkqIGVsZjMyLW0zMnIuYyAobTMycl9lbGZfcmVsYXhfc2VjdGlvbik6IEFzIGFib3ZlIGZvciBlbGYtbTEwMjAwLmMuCgkobTMycl9lbGZfcmVsYXhfZGVsZXRlX2J5dGVzKTogTGlrZXdpc2UuCgkobTMycl9lbGZfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9yZWxvY19sb29wKTogRnJlZSBzZWN0aW9uIGNvbnRlbnRzIHVzaW5nCgllbGZfc2VjdGlvbl9kYXRhIHRvIGRldGVybWluZSB3aGV0aGVyIGNhY2hlZC4KCShzaF9lbGZfcmVsYXhfc2VjdGlvbik6IEFzIGFib3ZlIGZvciBlbGYtbTEwMjAwLmMuCgkoc2hfZWxmX3JlbGF4X2RlbGV0ZV9ieXRlcyk6IExpa2V3aXNlLgoJKHNoX2VsZl9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBMaWtld2lzZS4KCSogZWxmMzIteHN0b3JteTE2LmMgKHhzdG9ybXkxNl9lbGZfcmVsYXhfc2VjdGlvbik6IEFzIGFib3ZlLgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxheF9zZWN0aW9uKTogQXMgYWJvdmUuICBBbHNvIGRlbGF5CglyZWFkaW5nIG9mIGxvY2FsIHN5bXMuCgkqIGVsZjY0LW1taXguYyAobW1peF9lbGZfcmVsYXhfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1zaDY0LmMgKHNoX2VsZjY0X2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IEFzIGFib3ZlLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfcmVsYXhfc2VjdGlvbik6IEFzIGFib3ZlLgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfY2hlY2tfcmVsb2NzKTogUHJvcGVybHkgZnJlZSBpbnRlcm5hbAoJcmVsb2NzLgoJKiBlbGYzMi1hcm0uaCAoYmZkX2VsZjMyX2FybV9wcm9jZXNzX2JlZm9yZV9hbGxvY2F0aW9uKTogUHJvcGVybHkKCWZyZWUgaW50ZXJuYWwgcmVsb2NzIGFuZCBzZWN0aW9uIGNvbnRlbnRzLiAgRG9uJ3QgcmVhZCBzeW1ib2xzLgoJKiBlbGYzMi1ocHBhLmMgKGdldF9sb2NhbF9zeW1zKTogVXNlIGJmZF9lbGZfZ2V0X2VsZl9zeW1zLgoJKGVsZjMyX2hwcGFfc2l6ZV9zdHVicyk6IERvbid0IGZyZWUgbG9jYWwgc3ltcy4KCSogZWxmMzItbTY4ay5jIChiZmRfbTY4a19lbGYzMl9jcmVhdGVfZW1iZWRkZWRfcmVsb2NzKTogRGVsYXkKCXJlYWRpbmcgb2YgbG9jYWwgc3ltcy4gIFVzZSBiZmRfZWxmX2dldF9lbGZfc3ltcy4gIFByb3Blcmx5IGZyZWUKCXBvc3NpYmx5IGNhY2hlZCBpbmZvLgoJKiBlbGYzMi1taXBzLmMgKGJmZF9taXBzX2VsZjMyX2NyZWF0ZV9lbWJlZGRlZF9yZWxvY3MpOiBMaWtld2lzZS4KCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX2NoZWNrX3JlbG9jcyk6IFVzZSBiZmRfZWxmX2dldF9lbGZfc3ltcy4KCSogZWxmNjQtcHBjLmMgKHN0cnVjdCBwcGNfbGlua19oYXNoX3RhYmxlKTogRGVsZXRlIGJmZF9jb3VudCBhbmQKCWFsbF9sb2NhbF9zeW1zLgoJKGdldF9sb2NhbF9zeW1zKTogRGVsZXRlIGZ1bmN0aW9uLgoJKGVkaXRfb3BkKTogVXNlIGJmZF9lbGZfZ2V0X2VsZl9zeW1zLiAgRnJlZSBvbiBlcnJvciBleGl0LiAgQ2FjaGUKCW9uIGV4aXQuCgkocHBjNjRfZWxmX3NpemVfc3R1YnMpOiBVc2UgYmZkX2VsZl9nZXRfZWxmX3N5bXMuICBGcmVlL2NhY2hlIG9uIGV4aXQuCgoyMDAyLTA3LTA1ICBKaW0gV2lsc29uICA8d2lsc29uQHJlZGhhdC5jb20+CgoJKiBzeW1zLmMgKGRlY29kZV9zZWN0aW9uX3R5cGUpOiBOZXcuCgkoYmZkX2RlY29kZV9zeW1jbGFzcyk6IENhbGwgZGVjb2RlX3NlY3Rpb25fdHlwZS4KCjIwMDItMDctMDQgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogbWVyZ2UuYyAoX2JmZF9tZXJnZWRfc2VjdGlvbl9vZmZzZXQpOiBBdm9pZCBhY2Nlc3NpbmcgYnl0ZSBiZWZvcmUKCXNlY3Rpb24gY29udGVudCBzdGFydC4KCVJlcG9ydGVkIGJ5IE1pY2hhZWwgU2NodW1hY2hlciA8bWlrZUBoaWdodGVjLXJ0LmNvbT4uCgoyMDAyLTA3LTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogc2VjdGlvbi5jIChfYmZkX3N0cmlwX3NlY3Rpb25fZnJvbV9vdXRwdXQpOiBSZW1vdmUgdW5uZWNlc3NhcnkKCWxpbmsgb3JkZXIgY29kZS4gIERvbid0IGFjdHVhbGx5IHJlbW92ZSB0aGUgb3V0cHV0IHNlY3Rpb24gaGVyZTsKCUp1c3Qgc2V0IGEgZmxhZyBmb3IgdGhlIGxpbmtlciB0byBkbyBzby4KCSogZWxmbGluay5jIChfYmZkX2VsZl9saW5rX3JlbnVtYmVyX2R5bnN5bXMpOiBUZXN0IGZvciByZW1vdmVkCglzZWN0aW9ucyB3aGVuIHNldHRpbmcgdXAgb3V0cHV0IHNlY3Rpb24gZHluc3ltcy4KCjIwMDItMDctMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IFJldmVydCAxOTk5LTA5LTAyIGhwdXgKCWZ1ZGdlLgoJKiBlbGYuYyAoYmZkX3NlY3Rpb25fZnJvbV9zaGRyKTogV29yayBhcm91bmQgYnJva2VuIGhwdXggc2hhcmVkCglsaWJzIGhlcmUgaW5zdGVhZC4KCjIwMDItMDctMDIgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBlbGY2NC1zMzkwLmMgKGNyZWF0ZV9nb3Rfc2VjdGlvbik6IFNldCAuZ290IHNlY3Rpb24gYWxpZ25tZW50IHRvCgk4IGJ5dGVzLgoJKGVsZl9zMzkwX2NoZWNrX3JlbG9jcyk6IFNldCAucmVsYS5keW4gc2VjdGlvbiBhbGlnbm1lbnQgdG8gOCBieXRlcy4KCjIwMDItMDctMDIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYuYyAoX2JmZF9lbGZfcmVsb2NfdHlwZV9jbGFzcyk6IEZpeCBjb21tZW50IGdyYW1tYXIuCgoyMDAyLTA3LTAxICBNYXR0IFRob21hcyAgPG1hdHRAM2FtLXNvZnR3YXJlLmNvbT4KCgkqIGVsZjMyLXZheC5jIChlbGYzMl92YXhfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IENoYW5nZSBFRl8qCgl0byBFRl9WQVhfKi4KCjIwMDItMDctMDEgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGZ4eC1taXBzLmMgKEFCSV82NF9QKTogRml4IGNvbW1lbnQuCgkoTUlQU19FTEZfT1BUSU9OU19TRUNUSU9OX05BTUUsTUlQU19FTEZfU1RVQl9TRUNUSU9OX05BTUUpOiBVc2UgdGhlCgluZXcgc2VjdGlvbiBuYW1lcyBmb3IgTjY0IEFCSS4KCShtaXBzX2VsZl9vdXRwdXRfZXh0c3ltKTogTm8gc3BlY2lhbCBfZ3BfZGlzcCBoYW5kbGluZyBmb3IgTmV3QUJJLgoJKG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogQ29kZSBmb3JtYXR0aW5nLgoJKG1pcHNfZWxmX2NyZWF0ZV9keW5hbWljX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCShfYmZkX21pcHNfZWxmX2Zha2Vfc2VjdGlvbnMpOiBJUklYNiBuZWVkcyB0aGlzIGhhY2ssIHRvby4KCShfYmZkX21pcHNfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IEhhbmRsZSBHT1RfUEFHRSBmb3IgYW55IE5ld0FCSS4KCShfYmZkX21pcHNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBObyBzcGVjaWFsIGhhbmRsaW5nIGZvciBSX01JUFNfNjQKCWluIGFueSBOZXdBQkkuCgkoX2JmZF9taXBzX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBObyBzcGVjaWFsIF9ncF9kaXNwIGhhbmRsaW5nCglmb3IgTmV3QUJJLgoJKF9iZmRfbWlwc19lbGZfbW9kaWZ5X3NlZ21lbnRfbWFwKTogSGFuZGxlIGFueSBONjQgQUJJLgoJKF9iZmRfbWlwc19lbGZfZ2Nfc3dlZXBfaG9vayk6IE5ld0FCSSBHT1QgcmVsb2NzIHNob3VsZCBiZSBoYW5kbGVkCgloZXJlLCB0b28uCgoyMDAyLTA3LTAxICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9yZWxvY2F0ZV9zZWN0aW9uKTogT25seSBjb252ZXJ0CglSX1g4Nl82NF82NCB0byBSX1g4Nl82NF9SRUxBVElWRS4KCjIwMDItMDctMDEgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZUBoaWF1bHkxLmhpYS5ucmMuY2E+CgoJKiB2YXhic2QuYzogTmV3IEJGRCBiYWNrZW5kIGZvciBWQVggQlNEIGFuZCBVbHRyaXguCgkqIE1ha2VmaWxlLmFtIChCRkQzMl9CQUNLRU5EUywgQkZEMzJfQkFDS0VORFNfQ0ZJTEVTKTogQWRkIG5ldyBiYWNrZW5kLgoJUnVuICJtYWtlIGRlcC1hbSIuCgkqIGNvbmZpZy5iZmQgKHZheC0qLWJzZCogfCB2YXgtKi11bHRyaXgqKTogVXNlIHZheGJzZF92ZWMgaW5zdGVhZCBvZgoJaG9zdF9hb3V0X3ZlYy4KCSogY29uZmlndXJlLmluICh2YXhic2RfdmVjKTogQWRkLgoJKiB0YXJnZXRzLmMgKHZheGJzZF92ZWMpOiBBZGQuCgkqIE1ha2VmaWxlLmluOiBSZWJ1aWxkLgoJKiBjb25maWd1cmU6IFJlYnVpbGQuCgkqIHBvL1NSQy1QT1RGSUxFUy5pbjogUmVidWlsZC4KCjIwMDItMDctMDEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZsaW5rLmggKGVsZl9nY19tYXJrKTogUGFzcyBpbiB0aGUgc2VjdGlvbiB3aG9zZSByZWxvY3Mgd2UgYXJlCglleGFtaW5pbmcgdG8gZ2NfbWFya19ob29rLCByYXRoZXIgdGhhbiB0aGUgYmZkLgoJKGVsZl9nY19zZWN0aW9ucyk6IEFkanVzdC4KCSogZWxmLWJmZC5oIChzdHJ1Y3QgZWxmX2JhY2tlbmRfZGF0YSA8Z2NfbWFya19ob29rPik6IExpa2V3aXNlLgoJKiBlbGYtbTEwMzAwLmMgKG1uMTAzMDBfZWxmX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1hdnIuYyAoZWxmMzJfYXZyX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1jcmlzLmMgKGNyaXNfZWxmX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1kMTB2LmMgKGVsZjMyX2QxMHZfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLWZyMzAuYyAoZnIzMF9lbGZfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItbTMyci5jIChtMzJyX2VsZl9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jIChlbGZfbTY4a19nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItbWNvcmUuYyAobWNvcmVfZWxmX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1vcGVucmlzYy5jIChvcGVucmlzY19lbGZfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9zMzkwX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi12ODUwLmMgKHY4NTBfZWxmX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi12YXguYyAoZWxmX3ZheF9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzIteHN0b3JteTE2LmMgKHhzdG9ybXkxNl9lbGZfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjY0LW1taXguYyAobW1peF9lbGZfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYyAoZWxmX3MzOTBfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNoNjQuYyAoc2hfZWxmNjRfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5oIChfYmZkX21pcHNfZWxmX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1mcnYuYyAoZWxmMzJfZnJ2X2djX21hcmtfaG9vayk6IExpa2V3aXNlLiAgQWxzbyByZW1vdmUKCXJlZHVuZGFudCBsb2NhbCBzeW0gdGVzdHMuCgkqIGVsZjY0LXBwYy5jIChzdHJ1Y3QgcHBjX2xpbmtfaGFzaF9lbnRyeSk6IEFkZCBpc19lbnRyeS4KCShsaW5rX2hhc2hfbmV3ZnVuYyk6IEluaXQgaXNfZW50cnkuCgkocHBjNjRfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogQ29weSBpc19lbnRyeS4KCShwcGM2NF9lbGZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IEluaXQgYWxsX2xvY2FsX3N5bXMuCgkoY3JlYXRlX2xpbmthZ2Vfc2VjdGlvbnMpOiBVc2UgYmZkX21ha2Vfc2VjdGlvbl9hbnl3YXkgcmF0aGVyIHRoYW4KCWJmZF9tYWtlX3NlY3Rpb24uCgkocHBjNjRfZWxmX21hcmtfZW50cnlfc3ltcyk6IE5ldyBmdW5jdGlvbi4KCShwcGM2NF9lbGZfY2hlY2tfcmVsb2NzKTogRG9uJ3QgYm90aGVyIHRlc3RpbmcgZWxmX2JhZF9zeW10YWIuICBTZXQKCXVwIG9wZCBlbnRyeSB0byBmdW5jdGlvbiBzZWN0aW9uIG1hcC4KCShwcGM2NF9lbGZfZ2NfbWFya19ob29rKTogU3BlY2lhbCBjYXNlIG9wZCBzZWN0aW9uIHJlbG9jcywgYW5kCglyZWxvY3MgdGhhdCByZWZlcmVuY2UgdGhlIG9wZCBzZWN0aW9uLgoJKGVkaXRfb3BkKTogTmV3IGZ1bmN0aW9uLgoJKHBwYzY0X2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBDYWxsIGdldF9sb2NhbF9zeW1zIGFuZCBlZGl0X29wZC4KCShwcGM2NF9lbGZfc2V0dXBfc2VjdGlvbl9saXN0cyk6IERvbid0IGNhbGN1bGF0ZSBodGFiLT5iZmRfY291bnQgaGVyZS4KCShnZXRfbG9jYWxfc3ltcyk6IERvIHNvIGhlcmUuICBFeGl0IGlmIHdlIGFscmVhZHkgaGF2ZSBsb2NhbCBzeW1zLgoJUmVtb3ZlIGJvZ3VzIGNvbW1lbnQgaW1wb3J0ZWQgZnJvbSBlbGYzMi1ocHBhLmMuICBEb24ndCBhdHRlbXB0IHRvCglyZWFkIGxvY2FsIHN5bXMgb24gbm9uLUVMRiBpbnB1dC4KCShwcGM2NF9lbGZfc2l6ZV9zdHVicyk6IENhbGwgX2JmZF9lbGY2NF9saW5rX3JlYWRfcmVsb2NzIHJhdGhlcgoJdGhhbiBkdXBsaWNhdGluZyBpdCdzIGZ1bmN0aW9uIGhlcmUuICBBZGp1c3QgZnJlZSBvZiBpbnRlcm5hbAoJcmVsb2NzIHRvIHN1aXQuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBBZGp1c3QgbG9jYWwgc3ltcyBpbiBvcGQgc2VjdGlvbi4KCSogZWxmNjQtcHBjLmggKHBwYzY0X2VsZl9tYXJrX2VudHJ5X3N5bXMpOiBEZWNsYXJlLgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfc2l6ZV9zdHVicyk6IENhbGwKCV9iZmRfZWxmMzJfbGlua19yZWFkX3JlbG9jcyByYXRoZXIgdGhhbiBkdXBsaWNhdGluZyBpdCdzIGZ1bmN0aW9uCgloZXJlLiAgQWRqdXN0IGZyZWUgb2YgaW50ZXJuYWwgcmVsb2NzIHRvIHN1aXQuCgoyMDAyLTA3LTAxICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X2NoZWNrX3JlbG9jcyk6IENlcnRhaW4gcmVsb2NhdGlvbnMKCWFyZSBub3QgYWxsb3dlZCBpbiBzaGFyZWQgbGlicyBjb2RlLCBlbmZvcmNlIC1mUElDLgoKMjAwMi0wNi0yOSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogbW1vLmMgKG1tb193cml0ZV9sb2NfY2h1bmspOiBEb24ndCBlbGltaW5hdGUgbGVhZGluZyBhbmQKCXRyYWlsaW5nIHplcm8tc2VxdWVuY2VzIHdoZW4gdGhlcmUncyBwcmV2aW91cyBsZWZ0LW92ZXIgZGF0YS4KCjIwMDItMDYtMjcgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZUBoaWF1bHkxLmhpYS5ucmMuY2E+CgoJKiBlbGY2NC1ocHBhLmMgKGVsZjY0X2hwcGFfcmVsb2NfdHlwZV9jbGFzcyk6IE5ldyBmdW5jdGlvbi4KCShlbGY2NF9ocHBhX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogQ2hlY2sgb3RoZXJfcmVsX3NlYywgZGx0X3JlbF9zZWMKCWFuZCBvcGRfcmVsX3NlYyBpbiBvcmRlciBmb3Igc3RhcnRpbmcgcmVsYSBzZWN0aW9uLiAgQ2hlY2sgX3Jhd19zaXplLgoJKGVsZl9iYWNrZW5kX3JlbG9jX3R5cGVfY2xhc3MpOiBEZWZpbmUuCgoyMDAyLTA2LTI3ICBLZXZpbiBCdWV0dG5lciA8a2V2aW5iQHJlZGhhdC5jb20+CgoJKiBkd2FyZjIuYyAoZGVjb2RlX2xpbmVfaW5mbyk6IEhhbmRsZSBvbGRlciwgbm9uLXN0YW5kYXJkLCA2NC1iaXQKCURXQVJGMiBmb3JtYXRzLgoKMjAwMi0wNi0yNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNwdS1wb3dlcnBjLmM6IENvbW1lbnQgb24gb3JkZXJpbmcgb2YgYXJjaF9pbmZvLgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9vYmplY3RfcCk6IE5ldyBmdW5jdGlvbi4KCShlbGZfYmFja2VuZF9vYmplY3RfcCk6IERlZmluZS4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9vYmplY3RfcCk6IE5ldyBmdW5jdGlvbi4KCShlbGZfYmFja2VuZF9vYmplY3RfcCk6IERlZmluZS4KCjIwMDItMDYtMjYgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWd1cmUuaW4gKHZheC0qLW5ldGJzZCopOiBTZXQgQ09SRUZJTEUgdG8gbmV0YnNkLWNvcmUubG8uCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMDYtMjUgIEphc29uIEVja2hhcmR0ICA8amxlQHJpY2UuZWR1PgoKCSogZHdhcmYyLmMgKGRlY29kZV9saW5lX2luZm8pOiBDaGVjayB1bml0LT5hZGRyX3NpemUKCXRvIHJlYWQgaW4gdGhlIHByb3BlciBudW1iZXIgb2YgcHJvbG9ndWUgYnl0ZXMuCgoyMDAyLTA2LTI1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5iZmQgKHBvd2VycGMtKi1haXg1Kik6IE9ubHkgY3JlYXRlIGEgc2VsdmVjcyBmb3IKCWFpeDVjb2ZmNjRfdmVjIGlmIDY0LWJpdCBiZmQgc3VwcG9ydCBoYXMgYmVlbiBlbmFibGVkLgoJKHBvd2VycGM2NC0qLWFpeDUqKTogT25seSBkZWZpbmUgaWYgNjQtYml0IGJmZCBzdXBwb3J0IGhhcwoJYmVlbiBlbmFibGVkLgoKCSogdGFyZ2V0cy5jIChfYmZkX3RhcmdldF92ZWN0b3JbXSk6IE9ubHkgaW5jbHVkZQoJYWl4NWNvZmY2NF92ZWMgaWYgNjQtYml0IGJmZCBzdXBwb3J0IGhhcyBiZWVuIGVuYWJsZWQuCgoyMDAyLTA2LTI1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwY19hZGRfc3R1Yik6IFJlcGxhY2Ugc3RyY3B5L3N0cm5jcHkgd2l0aCBtZW1jcHkuCgkqIGVsZjMyLWhwcGEuYyAoaHBwYV9hZGRfc3R1Yik6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX2xpbmtfcmVjb3JkX2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVsZmxpbmsuaCAoZWxmX2FkZF9kZWZhdWx0X3N5bWJvbCk6IEZpeCBjb21tZW50IHR5cG8uCgkoZWxmX2FkZF9kZWZhdWx0X3N5bWJvbCk6IFJlcGxhY2Ugc3RyY3B5IGFuZCBzdHJuY3B5IHdpdGggbWVtY3B5LgoJKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IExpa2V3aXNlLgoJKGVsZl9saW5rX2Fzc2lnbl9zeW1fdmVyc2lvbik6IExpa2V3aXNlLgoJKiBoYXNoLmMgKGJmZF9oYXNoX2xvb2t1cCk6IExpa2V3aXNlLgoJKiBsaW5rZXIuYyAoX2JmZF9nZW5lcmljX2xpbmtfYWRkX29uZV9zeW1ib2wpOiBMaWtld2lzZS4KCSogc2VjdGlvbi5jIChiZmRfZ2V0X3VuaXF1ZV9zZWN0aW9uX25hbWUpOiBMaWtld2lzZS4KCSogc3ltcy5jIChfYmZkX3N0YWJfc2VjdGlvbl9maW5kX25lYXJlc3RfbGluZSk6IExpa2V3aXNlLgoJKiBlbGYuYyAoX2JmZF9lbGZfbWFrZV9zZWN0aW9uX2Zyb21fcGhkcik6IExpa2V3aXNlLgoJKGFzc2lnbl9zZWN0aW9uX251bWJlcnMpOiBMaWtld2lzZS4KCShfYmZkX2VsZmNvcmVfbWFrZV9wc2V1ZG9zZWN0aW9uKTogTGlrZXdpc2UuCgkoZWxmY29yZV9ncm9rX2x3cHN0YXR1cyk6IExpa2V3aXNlLgoJKGVsZmNvcmVfZ3Jva193aW4zMnBzdGF0dXMpOiBMaWtld2lzZS4KCShlbGZjb3JlX3dyaXRlX25vdGUpOiBDb25zdGlmeSBpbnB1dCBwYXJhbXMuICBVc2UgUFRSIGluc3RlYWQgb2YKCXZvaWQgKi4gIEluY2x1ZGUgdGVybWluYXRpbmcgTlVMIGluIG5hbWVzei4gIENvcnJlY3QgcGFkZGluZy4KCVN1cHBvcnQgTlVMTCAibmFtZSIgcGFyYW0uICBVc2UgbWVtY3B5IGluc3RlYWQgb2Ygc3RyY3B5LgoJKGVsZmNvcmVfd3JpdGVfcHJwc2luZm8pOiBDb25zdGlmeSBpbnB1dCBwYXJhbXMuCgkoZWxmY29yZV93cml0ZV9wcnN0YXR1cyk6IExpa2V3aXNlLiAgVXNlIFBUUiBpbnN0ZWFkIG9mIHZvaWQgKi4KCShlbGZjb3JlX3dyaXRlX2x3cHN0YXR1cyk6IExpa2V3aXNlLgoJKGVsZmNvcmVfd3JpdGVfcHN0YXR1cyk6IExpa2V3aXNlLgoJKGVsZmNvcmVfd3JpdGVfcHJmcHJlZyk6IExpa2V3aXNlLgoJKGVsZmNvcmVfd3JpdGVfcHJ4ZnByZWcpOiBMaWtld2lzZS4KCSogZWxmLWJmZC5oIChlbGZjb3JlX3dyaXRlX25vdGUpOiBVcGRhdGUgZGVjbGFyYXRpb24uCgkoZWxmY29yZV93cml0ZV9wcnBzaW5mbyk6IExpa2V3aXNlLgoJKGVsZmNvcmVfd3JpdGVfcHJzdGF0dXMpOiBMaWtld2lzZS4KCShlbGZjb3JlX3dyaXRlX3BzdGF0dXMpOiBMaWtld2lzZS4KCShlbGZjb3JlX3dyaXRlX3ByZnByZWcpOiBMaWtld2lzZS4KCShlbGZjb3JlX3dyaXRlX3ByeGZwcmVnKTogTGlrZXdpc2UuCgkoZWxmY29yZV93cml0ZV9sd3BzdGF0dXMpOiBMaWtld2lzZS4KCjIwMDItMDYtMjUgIEphc29uIEVja2hhcmR0ICA8amxlQHJpY2UuZWR1PgoKCSogZWNvZmYuYyAoZWNvZmZfc2V0X3N5bWJvbF9pbmZvKTogU2V0IEJTRl9GVU5DVElPTiBmb3IKCXN5bWJvbHMgb2YgdHlwZSBzdFByb2MgYW5kIHN0U3RhdGljUHJvYy4KCjIwMDItMDYtMjUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlY29mZi5jOiBWQXJpb3VzIGZvcm1hdHRpbmcgZml4ZXMuCgoyMDAyLTA2LTI1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29mZi1yczYwMDAuYyAoeGNvZmZfZ2VuZXJhdGVfcnRpbml0KTogRml4IHR5cG8uCgoyMDAyLTA2LTI1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYW91dC1hZG9iZS5jOiBEb24ndCBjb21wYXJlIGFnYWluc3QgInRydWUiIG9yICJmYWxzZS4KCSogYW91dC10YXJnZXQuaDogTGlrZXdpc2UuCgkqIGFvdXR4Lmg6IExpa2V3aXNlLgoJKiBhcmNoaXZlLmM6IExpa2V3aXNlLgoJKiBib3V0LmM6IExpa2V3aXNlLgoJKiBjYWNoZS5jOiBMaWtld2lzZS4KCSogY29mZi1hMjlrLmM6IExpa2V3aXNlLgoJKiBjb2ZmLWFscGhhLmM6IExpa2V3aXNlLgoJKiBjb2ZmLWkzODYuYzogTGlrZXdpc2UuCgkqIGNvZmYtbWlwcy5jOiBMaWtld2lzZS4KCSogY29mZi1vcjMyLmM6IExpa2V3aXNlLgoJKiBjb2ZmNjQtcnM2MDAwLmM6IExpa2V3aXNlLgoJKiBjb2ZmY29kZS5oOiBMaWtld2lzZS4KCSogY29mZmdlbi5jOiBMaWtld2lzZS4KCSogY3B1LW5zMzJrLmM6IExpa2V3aXNlLgoJKiBlY29mZi5jOiBMaWtld2lzZS4KCSogZWNvZmZsaW5rLmM6IExpa2V3aXNlLgoJKiBlbGYuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWFybS5oOiBMaWtld2lzZS4KCSogZWxmMzItY3Jpcy5jOiBMaWtld2lzZS4KCSogZWxmMzItZDMwdi5jOiBMaWtld2lzZS4KCSogZWxmMzItaTM4Ni5jOiBMaWtld2lzZS4KCSogZWxmMzItbWNvcmUuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jOiBMaWtld2lzZS4KCSogZWxmMzItc2guYzogTGlrZXdpc2UuCgkqIGVsZjMyLXNoNjQuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXY4NTAuYzogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1zaDY0LmM6IExpa2V3aXNlLgoJKiBlbGZjb2RlLmg6IExpa2V3aXNlLgoJKiBlbGZjb3JlLmg6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmg6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmM6IExpa2V3aXNlLgoJKiBpMzg2b3M5ay5jOiBMaWtld2lzZS4KCSogaWVlZS5jOiBMaWtld2lzZS4KCSogbGliYmZkLmM6IExpa2V3aXNlLgoJKiBsaW5rZXIuYzogTGlrZXdpc2UuCgkqIG1tby5jOiBMaWtld2lzZS4KCSogbmxtMzItYWxwaGEuYzogTGlrZXdpc2UuCgkqIG5sbTMyLWkzODYuYzogTGlrZXdpc2UuCgkqIG5sbTMyLXBwYy5jOiBMaWtld2lzZS4KCSogbmxtMzItc3BhcmMuYzogTGlrZXdpc2UuCgkqIG5sbWNvZGUuaDogTGlrZXdpc2UuCgkqIG9hc3lzLmM6IExpa2V3aXNlLgoJKiBwZHAxMS5jOiBMaWtld2lzZS4KCSogcGVpY29kZS5oOiBMaWtld2lzZS4KCSogcmVsb2MuYzogTGlrZXdpc2UuCgkqIHNvbS5jOiBMaWtld2lzZS4KCSogc3JlYy5jOiBMaWtld2lzZS4KCSogdGVraGV4LmM6IExpa2V3aXNlLgoJKiB2bXMuYzogTGlrZXdpc2UuCgkqIHhjb2ZmbGluay5jOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYzogRWRpdCBjb21tZW50IHRvIG5vdCB1c2UgIj09IGZhbHNlIi4KCgkqIGFvdXRmMS5oOiBEb24ndCB1c2UgIj8gdHJ1ZSA6IGZhbHNlIi4KCSogZWNvZmYuYzogTGlrZXdpc2UuCgkqIGZvcm1hdC5jOiBMaWtld2lzZS4KCSogaWVlZS5jOiBMaWtld2lzZS4KCSogbGlua2VyLmM6IExpa2V3aXNlLgoJKiBtbW8uYzogTGlrZXdpc2UuCgkqIG9hc3lzLmM6IExpa2V3aXNlLgoKMjAwMi0wNi0yMyAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfYXJjaGl2ZV9zeW1ib2xzKTogRm9yIHRoZSBkZWZhdWx0Cgl2ZXJzaW9uLCBjaGVjayByZWZlcmVuY2VzIHdpdGggb25seSBvbmUgYEAnIGZpcnN0LgoKMjAwMi0wNi0yMyAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlQGhpYXVseTEuaGlhLm5yYy5jYT4KCgkqIGVsZjY0LWhwcGEuYyAoZWxmNjRfaHBwYV9tYXJrX21pbGxpX2FuZF9leHBvcnRlZF9mdW5jdGlvbnMpOiBOZXcKCWZ1bmN0aW9uLgoJKGFsbG9jYXRlX2dsb2JhbF9kYXRhX2RsdCk6IERvbid0IGFkZCBtaWxsaWNvZGUgc3ltYm9scyB0byBkeW5hbWljCglzeW1ib2wgdGFibGUuCgkoYWxsb2NhdGVfZ2xvYmFsX2RhdGFfb3BkLCBhbGxvY2F0ZV9keW5yZWxfZW50cmllcyk6IExpa2V3aXNlLgoJKGVsZjY0X2hwcGFfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogUmV2aXNlIHRvIHVzZQoJZWxmNjRfaHBwYV9tYXJrX21pbGxpX2FuZF9leHBvcnRlZF9mdW5jdGlvbnMuCgkoZWxmNjRfaHBwYV9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBSZW1vdmUgY29kZSB0byBrZWVwIG1pbGxpY29kZQoJc3ltYm9scyBvdXQgb2YgZHluYW1pYyBzeW1ib2wgdGFibGUuCgoyMDAyLTA2LTIzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogcG8vU1JDLVBPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKCSogZWxmbGluay5oOiBDb21tZW50IHR5cG8gZml4ZXMuCgoyMDAyLTA2LTIzICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGYtYmZkLmggKGVsZl9saW5rX2xvYWRlZF9saXN0KTogTmV3IHN0cnVjdHVyZS4KCShlbGZfbGlua19oYXNoX3RhYmxlKTogQWRkICJsb2FkZWQiLgoJKiBlbGYuYyAoX2JmZF9lbGZfbGlua19oYXNoX3RhYmxlX2luaXQpOiBJbml0aWFsaXplICJsb2FkZWQiLgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2NoZWNrX3ZlcnNpb25lZF9zeW1ib2wpOiBOZXcgZnVuY3Rpb24uCgkoZWxmX2xpbmtfb3V0cHV0X2V4dHN5bSk6IENhbGwgZWxmX2xpbmtfY2hlY2tfdmVyc2lvbmVkX3N5bWJvbC4KCjIwMDItMDYtMTkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogZWxmbGluay5oIChzaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBJZiB0aGUgdGFyZ2V0IGRvZXMgbm90CglzdXBwb3J0IGFuIEVMRiBzdHlsZSBoYXNoIHRhYmxlLCByZXR1cm4gdHJ1ZSwgaW5kaWNhdGluZyB0aGF0Cglub3RoaW5nIG5lZWRlZCB0byBiZSBkb25lLCByYXRoZXIgdGhhbiBmYWxzZSwgaW5kaWNhdGluZyB0aGF0IHRoZQoJc2VjdGlvbidzIHNpemUgY291bGQgbm90IGJlIGNvbXB1dGVkLgoKMjAwMi0wNi0xOCAgRGF2ZSBCcm9sbGV5ICA8YnJvbGxleUByZWRoYXQuY29tPgoKCUZyb20gQ2F0aGVyaW5lIE1vb3JlLCBNaWNoYWVsIE1laXNzbmVyLCBEYXZlIEJyb2xsZXk6CgkqIHBvL1NSQy1QT1RGSUxFUy5pbjogQWRkIGNwdS1mcnYuYyBhbmQgZWxmMzItZnJ2LmMKCSogdGFyZ2V0cy5jOiBTdXBwb3J0IGJmZF9lbGYzMl9mcnZfdmVjLgoJKiByZWxvYy5jOiBBZGQgRlJWIHJlbG9jcy4KCSogY29uZmlndXJlLmluOiBBZGQgc3VwcG9ydCBmb3IgYmZkLWVsZjMyLWZydi12ZWMuCgkqIGNvbmZpZy5iZmQgKHRhcmdfY3B1KTogQWRkIHN1cHBvcnQgZm9yIGZydi0qLWVsZi4KCSogYXJjaHVyZXMuYzogQWRkIGZydiBhcmNoIGFuZCBtYWNoaW5lcy4KCSogTWFrZWZpbGUuYW0gKEFMTF9NQUNISU5FUyk6IEFkZCBjcHUtZnJ2LmxvLgoJKEFMTF9NQUNISU5FU19DRklMRVMpOiBBZGQgY3B1LWZydi5jLgoJKEJGRDMyX0JBQ0tFTkRTKTogQWRkIGVsZjMyLWZydi5sby4KCShCRkQzMl9CQUNLRU5EU19DRklMRVMpOiBBZGQgZWxmMzItZnJ2LmMKCShjcHUtZnJ2LmxvKTogTmV3IHRhcmdldC4KCShlbGYzMi1mcnYubG8pOiBOZXcgdGFyZ2V0LgoJKiBjcHUtZnJ2LmM6IE5ldyBmaWxlLgoJKiBlbGYzMi1mcnYuYzogTmV3IGZpbGUuCgoyMDAyLTA2LTE4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZmNvZGUuaCAoZWxmX29iamVjdF9wKTogU2FuaXR5IGNoZWNrIGVoX3Nob2ZmID09IDAgaW1wbGllcwoJZV9zaG51bSA9PSAwLgoJT25seSByZWFkIHRoZSBmaXJzdCBzZWN0aW9uIGhlYWRlciBpZiBlX3Nob2ZmIGlzIG5vbi16ZXJvLgoJRG9uJ3QgY29uc2lkZXIgZV9zaHN0cm5keCBpZiB0aGVyZSBhcmUgbm8gc2VjdGlvbnMuCgoyMDAyLTA2LTE3ICBUb20gUml4IDx0cml4QHJlZGhhdC5jb20+CgoJKiBlbGYzMi1kMTB2LmMgKGVsZl9kMTB2X2hvd3RvX3RhYmxlKTogQ2hhbmdlIFJfRDEwVl8xMF9QQ1JFTF9SLAoJUl9EMTBWXzEwX1BDUkVMX0wgYW5kIFJfRDEwVl8xOF9QQ1JFTCB0byB1c2UKCWNvbXBsYWluX292ZXJmbG93X2JpdGZpZWxkLgoKMjAwMi0wNi0xNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIG9wbmNscy5jIChiZmRfb3BlbnIpOiBSZW1vdmUgcmVkdW5kYW50IGJmZF9zZXRfZXJyb3IuCgkoYmZkX2Zkb3BlbnIpOiBMaWtld2lzZS4KCShiZmRfb3BlbnN0cmVhbXIpOiBMaWtld2lzZS4KCShiZmRfb3BlbncpOiBMaWtld2lzZS4KCgkqIHRhcmdldHMuYzogU29ydCB0YXJnZXQgdmVjcy4KCShfYmZkX3RhcmdldF92ZWN0b3IpOiBBZGQgYWl4NWNvZmY2NF92ZWMsIGJmZF9lbGYzMl9zaDY0X3ZlYywKCWJmZF9lbGYzMl9zaDY0bF92ZWMsIGJmZF9lbGYzMl9zaDY0bG5ic2RfdmVjLAoJYmZkX2VsZjMyX3NoNjRuYnNkX3ZlYywgYmZkX2VsZjY0X3NoNjRfdmVjLCBiZmRfZWxmNjRfc2g2NGxfdmVjLAoJYmZkX2VsZjY0X3NoNjRsbmJzZF92ZWMsIGJmZF9lbGY2NF9zaDY0bmJzZF92ZWMuCgkqIGNvbmZpZ3VyZS5pbjogU29ydCB0YXJnZXQgdmVjcy4gIEFkZCBtODhrbWFjaDNfdmVjLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTA2LTE2ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBlbGY2NC1tbWl4LmMgKGJwb19yZWxvY19yZXF1ZXN0X3NvcnRfZm4pOiBVc2UgbWVtYmVyCglicG9fcmVsb2Nfbm8gdG8gYnJlYWsgc29ydCBvcmRlciB0aWVzLCBub3QgYWRkcmVzcyBvZiBpdGVtcy4KCjIwMDItMDYtMTYgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZUBoaWF1bHkxLmhpYS5ucmMuY2E+CgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9maW5hbF9saW5rKTogRml4IGZvcm1hdHRpbmcgaW4gY29tbWVudC4KCVNraXAgZXhjbHVkZWQgc2VjdGlvbnMgaW4gZGV0ZXJtaW5nIF9fZ3AgdmFsdWUuCgkoZWxmX2hwcGFfZmluYWxfbGlua19yZWxvY2F0ZSk6IFVzZSB0aGUgc3ltYm9sJ3MgYWRkcmVzcyBpbgoJUl9QQVJJU0NfRlBUUjY0IHJlbG9jYXRpb25zIHRoYXQgZG9uJ3QgbmVlZCBhbiBvcGQgZW50cnkuCgkqIGVsZjY0LWhwcGEuYyAoYWxsb2NhdGVfZHlucmVsX2VudHJpZXMpOiBTaW1wbGlmeSBjb2RlLgoJKGVsZjY0X2hwcGFfZmluYWxpemVfZHlucmVsb2MpOiBMaWtld2lzZS4KCShlbGY2NF9ocHBhX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IE1vdmUgY29tbWVudHMgYW5kIGZpeCB0eXBvLgoJKGVsZjY0X2hwcGFfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogQnJlYWsgdXAgYXNzZXJ0LgoKMjAwMi0wNi0xNCAgU2VyZ2V5IEdyaWdvcmlldiAgPHNlcmdlQGxlb3BvbGQuUGh5c2lrLlVuaS1BdWdzYnVyZy5ERT4KCgkqIHBlaS1pMzg2LmMgKENPRkZfU0VDVElPTl9BTElHTk1FTlRfRU5UUklFUyk6IEVuYWJsZSAxNiBieXRlCglhbGlnbm1lbnQgZm9yIC5ic3MsIC5kYXRhIGFuZCAudGV4dCBzZWN0aW9ucyBzbyB0aGF0IHNzZSBhbmQgc3NlMgoJY29kZSB3aWxsIHdvcmsuCgkqIHBlLWkzODYuYyAoQ09GRl9TRUNUSU9OX0FMSUdOTUVOVF9FTlRSSUVTKTogTGlrZXdpc2UuCgoyMDAyLTA2MDEzICBKIm9ybiBSZW5uZWNrZSAgPGpvZXJuLnJlbm5lY2tlQHN1cGVyaC5jb20+CgoJY29uZmlnLmJmZDogQWRkIHN1cHBvcnQgZm9yIHNoWzEyMzRdbCotKi1lbGYqIHwgc2gzZWwqLSotZWxmKiwKCXNoWzEyMzRdKi1lbGYqLgoKMjAwMi0wNi0xMiAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlQGhpYXVseTEuaGlhLm5yYy5jYT4KCgkqIGVsZmxpbmsuaCAoZWxmX2JmZF9maW5hbF9saW5rKTogSW1wcm92ZSBlcnJvciBoYW5kbGluZyBmb3IgbWlzc2luZwoJZHluYW1pYyBzZWN0aW9ucy4KCgkqIGVsZjY0LWhwcGEuYyAoYWxsb2NhdGVfZ2xvYmFsX2RhdGFfb3BkKTogV2UgZG9uJ3QgbmVlZCBhbiBvcGQgZW50cnkKCWZvciBhIHN5bWJvbCB0aGF0IGhhcyBubyBvdXRwdXQgc2VjdGlvbi4KCShhbGxvY2F0ZV9keW5yZWxfZW50cmllcyk6IENvcnJlY3QgY29tbWVudC4KCShlbGY2NF9ocHBhX2ZpbmFsaXplX2R5bnJlbG9jKTogTGlrZXdpc2UuICBEb24ndCBjcmVhdGUgYW4gb3BkIGVudHJ5Cgl1bmxlc3Mgd2Ugd2FudCBvbmUuCgkoZWxmNjRfaHBwYV9maW5hbGl6ZV9vcGQpOiBQcmV2ZW50IHNlZ2ZhdWx0IGlmIGR5bl9oIGlzIE5VTEwuCgkoZWxmNjRfaHBwYV9maW5hbGl6ZV9kbHQpOiBMaWtld2lzZS4gIFByZXZlbnQgc2VnZmF1bHQgZm9yIHN5bWJvbHMKCXdpdGggbm8gc2VjdGlvbi4gIFJlbW92ZSB1bm5lY2Vzc2FyeSBwYXJlbnRoZXNlcy4KCjIwMDItMDYtMTEgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBjb2ZmY29kZS5oIChjb2ZmX2NvbXB1dGVfc2VjdGlvbl9maWxlX3Bvc2l0aW9ucyk6IEFkZCBkYXRhCglzZWN0aW9uIHRvIEFJWCBsb2FkZXIgYWxpZ25tZW50IGNoZWNrLgoKCSogY29mZi1yczYwMDAuYyAoX2JmZF94Y29mZl9ta29iamVjdCk6IFNldCBkZWZhdWx0IHRleHQgc2VjdGlvbgoJYWxpZ25tZW50IHRvIDQgYnl0ZXMuCgkoX2JmZF94Y29mZl9jb3B5X3ByaXZhdGVfYmZkX2RhdGEpOiBVc2UgdGV4dCBhbmQgZGF0YSBhbGlnbm1lbnQKCXBvd2VyIGFjY2Vzc29yIG1hY3JvLgoJKGRvX3NoYXJlZF9vYmplY3RfcGFkZGluZyk6IFJlbW92ZSBpbnZhbGlkIGFzc2VydGlvbi4KCjIwMDItMDYtMTAgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIHNlY3Rpb24uYyAoX2JmZF9zdHJpcF9zZWN0aW9uX2Zyb21fb3V0cHV0KTogU2V0IFNFQ19FWENMVURFCglmb3IgcmVtb3ZlZCBvdXRwdXQgc2VjdGlvbnMuCgoyMDAyLTA2LTEwICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQHJlZGhhdC5jb20+CgoJKiBtZXJnZS5jIChtZXJnZV9zdHJpbmdzKTogVXNlIGh0YWJfY3JlYXRlX2FsbG9jIHdpdGggY2FsbG9jLCBub3QKCWh0YWJfYWxsb2MuCgkqIGVsZi1zdHJ0YWIuYyAoX2JmZF9lbGZfc3RydGFiX2ZpbmFsaXplKTogTGlrZXdpc2UuCgoyMDAyLTA2LTA4ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZi5jIChjb3B5X3ByaXZhdGVfYmZkX2RhdGEpOiBEb24ndCBjYXN0IHRvIGJmZF9zaXplX3R5cGUgdG8KCXdvcmsgYXJvdW5kIGEgbG9uZyBsb25nIGJ1ZyBpbiBnY2MgMi45NiBvbiBtaXBzLgoKMjAwMi0wNi0wOCAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChCRkQzMl9CQUNLRU5EUyk6IEFkZCB2YXgxa25ldGJzZC5sby4KCShCRkQzMl9CQUNLRU5EU19DRklMRVMpOiBBZGQgdmF4MWtuZXRic2QuYy4KCVJlZ2VuZXJhdGUgZGVwZW5kZW5jeSBsaXN0cy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy5iZmQgKHZheC0qLW5ldGJzZGVsZiosIHZheC0qLW5ldGJzZGFvdXQqKTogQWRkCgl2YXgxa25ldGJzZF92ZWMgdG8gdGFyZ19zZWx2ZWNzLgoJKiBjb25maWd1cmUuaW46IEFkZCB2YXgxa25ldGJzZF92ZWMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogdGFyZ2V0cy5jIChfYmZkX3RhcmdldF92ZWN0b3IpOiBBZGQgdmF4MWtuZXRic2RfdmVjLgoJKiB2YXgxa25ldGJzZC5jOiBOZXcgZmlsZS4KCSogdmF4bmV0YnNkLmM6IFVwZGF0ZSBjb3B5cmlnaHQgeWVhcnMuCgkoVEFSR0VUX1BBR0VfU0laRSk6IFNldCB0byAweDEwMDAuCgkoREVGQVVMVF9NSUQpOiBTZXQgdG8gTV9WQVg0S19ORVRCU0QuCgoyMDAyLTA2LTA4ICBNYXR0IFRob21hcyAgPG1hdHRAM2FtLXNvZnR3YXJlLmNvbT4KCgkqIGxpYmFvdXQuaCAoZW51bSBtYWNoaW5lX3R5cGUpOiBBZGQgTV9WQVg0S19ORVRCU0QuCgoyMDAyLTA2LTA4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtc2g2NC5jIChzaDY0X2VsZjY0X2xpbmtfb3V0cHV0X3N5bWJvbF9ob29rKTogTWFrZSBzdGF0aWMuCgoyMDAyLTA2LTA4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCgkqIGFybW5ldGJzZC5jOiBSZXBsYWNlIENPTlNUIHdpdGggY29uc3QuCgkqIGNvcmVmaWxlLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1kbHguYzogTGlrZXdpc2UuCgkqIGVsZjY0LW1pcHMuYzogTGlrZXdpc2UuCgkqIG1tby5jOiBMaWtld2lzZS4KCSogbnMzMmtuZXRic2QuYzogTGlrZXdpc2UuCgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9hZGRfc3ltYm9sX2hvb2spOiBDaGVjayB0aGUgaGFzaAoJdGFibGUgaXMgZWxmNjQtc3BhcmMuCgoyMDAyLTA2LTA4ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBTaW1wbGlmeSBjb2RlLgoJRml4IFJFTEEgYWRkZW5kcyB0byBnZXQgbm90IHNoaWZ0ZWQgaW4gdGhlIHJlc3VsdC4gRG9uJ3QgZG8gc3BlY2lhbAoJaGFuZGxpbmcgb2YgUl9NSVBTXzY0IGZvciBOZXdBQkkuCgoyMDAyLTA2LTA3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYW91dHguaCAoTkFNRShhb3V0LHNsdXJwX3N5bWJvbF90YWJsZSkpOiBVc2UgYmZkX3ptYWxsb2MuCgkoTkFNRShhb3V0LHNsdXJwX3JlbG9jX3RhYmxlKSk6IExpa2V3aXNlLgoJKiBjb2ZmLW1pcHMuYyAobWlwc19yZWxheF9zZWN0aW9uKTogVXNlIGJmZF96YWxsb2MuCgkqIGNvZmYtcnM2MDAwLmMgKHhjb2ZmX3dyaXRlX2FybWFwX2JpZyk6IFVzZSBiZmRfem1hbGxvYy4KCSh4Y29mZl93cml0ZV9hcmNoaXZlX2NvbnRlbnRzX2JpZyk6IExpa2V3aXNlLgoJKHhjb2ZmX2dlbmVyYXRlX3J0aW5pdCk6IExpa2V3aXNlLgoJKHhjb2ZmX2dlbmVyYXRlX3J0aW5pdCk6IExpa2V3aXNlLCBhbmQgY2hlY2sgZXJyb3IgcmV0dXJuLgoJKiBjb2ZmNjQtcnM2MDAwLmMgKHhjb2ZmNjRfZ2VuZXJhdGVfcnRpbml0KTogTGlrZXdpc2UuCgkqIGNvZmZnZW4uYyAoY29mZl9zZWN0aW9uX3N5bWJvbCk6IFVzZSBiZmRfemFsbG9jLgoJKGNvZmZfZ2V0X25vcm1hbGl6ZWRfc3ltdGFiKTogTGlrZXdpc2UuCgkoY29mZl9tYWtlX2VtcHR5X3N5bWJvbCk6IExpa2V3aXNlLgoJKGJmZF9jb2ZmX3NldF9zeW1ib2xfY2xhc3MpOiBMaWtld2lzZS4KCSogY29mZmxpbmsuYyAoY29mZl9saW5rX2FkZF9zeW1ib2xzKTogTGlrZXdpc2UuCgkqIGVjb2ZmLmMgKF9iZmRfZWNvZmZfbWFrZV9lbXB0eV9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWNvZmZsaW5rLmMgKGVjb2ZmX3dyaXRlX3NodWZmbGUpOiBVc2UgYmZkX3ptYWxsb2MuCgkoYmZkX2Vjb2ZmX3dyaXRlX2FjY3VtdWxhdGVkX2RlYnVnKTogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmMgKGdldF9nb3RfZW50cnkpOiBVc2UgYmZkX3phbGxvYy4KCSogaTM4NmxpbnV4LmMgKGJmZF9pMzg2bGludXhfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGkzODZseW54LmMgKE5BTUUobHlueCxzbHVycF9yZWxvY190YWJsZSkpOiBVc2UgYmZkX3ptYWxsb2MuCgkqIGllZWUuYyAoZG9fd2l0aF9yZWxvY3MpOiBVc2UgYmZkX3phbGxvYy4KCSogbTY4a2xpbnV4LmMgKGJmZF9tNjhrbGludXhfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIHBkcDExLmMgKE5BTUUoYW91dCxzbHVycF9zeW1ib2xfdGFibGUpKTogVXNlIGJmZF96bWFsbG9jLgoJKE5BTUUoYW91dCxzbHVycF9yZWxvY190YWJsZSkpOiBMaWtld2lzZS4KCShOQU1FKGFvdXQsc3F1aXJ0X291dF9yZWxvY3MpKTogRG9uJ3QgbWVtc2V0IHdoZW4gemFsbG9jJ2QuCgkqIHJlbG9jMTYuYyAoYmZkX2NvZmZfcmVsb2MxNl9yZWxheF9zZWN0aW9uKTogVXNlIGJmZF96bWFsbG9jLgoJKiBzb20uYyAoc29tX2J1aWxkX2FuZF93cml0ZV9zeW1ib2xfdGFibGUpOiBMaWtld2lzZS4KCShzb21fc2x1cnBfc3RyaW5nX3RhYmxlKTogTGlrZXdpc2UuCgkoc29tX3NsdXJwX3N5bWJvbF90YWJsZSk6IExpa2V3aXNlLgoJKHNvbV9iZmRfYXJfd3JpdGVfc3ltYm9sX3N0dWZmKTogTGlrZXdpc2UuCgkqIHNwYXJjbGludXguYyAoYmZkX3NwYXJjbGludXhfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogVXNlIGJmZF96YWxsb2MuCgkqIHN1bm9zLmMgKGJmZF9zdW5vc19zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogdGVraGV4LmMgKGZpbmRfY2h1bmspOiBMaWtld2lzZS4gIEdldCByaWQgb2YgdW51c2VkICJzbmFtZSIuCgkqIHZtcy1nc2QuYyAoX2JmZF92bXNfc2x1cnBfZ3NkKTogVXNlIGJmZF96bWFsbG9jLgoJKiB4Y29mZmxpbmsuYyAoeGNvZmZfbGlua19hZGRfc3ltYm9scyk6IFVzZSBiZmRfemFsbG9jL2JmZF96bWFsbG9jLgoKMjAwMi0wNi0wNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1iZmQuaCAoc3RydWN0IGJmZF9lbGZfc2VjdGlvbl9kYXRhIDxncm91cF9uYW1lPik6IFJlcGxhY2Ugd2l0aAoJImdyb3VwIiB1bmlvbi4KCShlbGZfZ3JvdXBfbmFtZSk6IFVwZGF0ZS4KCShlbGZfZ3JvdXBfaWQpOiBEZWZpbmUuCgkoYmZkX2VsZl9zZXRfZ3JvdXBfY29udGVudHMpOiBEZWNsYXJlLgoJKiBlbGYuYyAoZWxmX2Zha2Vfc2VjdGlvbnMpOiBRdWFsaWZ5IHVzZSBvZiBlbGZfZ3JvdXBfbmFtZS4KCShzZXRfZ3JvdXBfY29udGVudHMpOiBSZW5hbWUgdG8gYmZkX2VsZl9zZXRfZ3JvdXBfY29udGVudHMuICBSZW1vdmUKCUFUVFJJQlVURV9VTlVTRUQgZnJvbSBmYWlsZWRwdHJhcmcuICBJZiBlbGZfZ3JvdXBfaWQgaXMgc2V0LCB1c2UKCXRoYXQgc3ltIGZvciB0aGUgc2lnbmF0dXJlLgoJKF9iZmRfZWxmX2NvbXB1dGVfc2VjdGlvbl9maWxlX3Bvc2l0aW9ucyk6IERvbid0IGNhbGwKCXNldF9ncm91cF9jb250ZW50cyBmb3IgImxkIC1yIiBjYXNlLgoJKHN3YXBfb3V0X3N5bXMpOiBVc2UgYmZkX3phbGxvYy4KCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfYXJjaGl2ZV9zeW1ib2xzKTogTGlrZXdpc2UuCgkoTkFNRShiZmRfZWxmLHNpemVfZHluYW1pY19zZWN0aW9ucykpOiBMaWtld2lzZS4KCShlbGZfYmZkX2ZpbmFsX2xpbmspOiBDYWxsIGJmZF9lbGZfc2V0X2dyb3VwX2NvbnRlbnRzLgoKMjAwMi0wNi0wNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEFsbG93IHVucmVzb2x2ZWQKCXJlbG9jcyBpbiBvcGQgZm9yIG5vbi1zaGFyZWQgdG9vLgoKMjAwMi0wNi0wNiAgSmVmZnJleSBMYXcgIDxsYXdAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLWg4MzAwLmMgKGVsZjMyX2g4X3JlbGF4X3NlY3Rpb24pOiBJZ25vcmUgdW5pbnRlcmVzdGluZwoJcmVsb2NhdGlvbnMuCgoyMDAyLTA2LTA2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIG1lcmdlLmM6IEluY2x1ZGUgbGliaWJlcnR5LmguCgkqIGVsZi1zdHJ0YWIuYzogSW5jbHVkZSBsaWJpYmVydHkuaC4KCjIwMDItMDYtMDYgIEVsaWFzIEF0aGFuYXNvcG91bG9zICA8ZWF0aGFuQG90ZW5ldC5ncj4KCgkqIHBlWFhpZ2VuLmMgKHBlX3ByaW50X2lkYXRhKTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KCjIwMDItMDYtMDYgIERhdmlkIEhlaW5lIDxkbGhlaW5lQHRlbnNpbGljYS5jb20+CgoJKiBlbGYuYyAoYXNzaWduX2ZpbGVfcG9zaXRpb25zX2Zvcl9zZWdtZW50cyk6IFJlbW92ZSB1bmFsbG9jYXRlZAoJc2VjdGlvbnMgZnJvbSB0aGUgc2VjdGlvbiB0byBzZWdtZW50IG1hcHBpbmcgZm9yIFBUX0xPQUQgc2VnbWVudHMuCglVcGRhdGUgY29tbWVudCBhYm91dCBlbXB0eSBsb2FkYWJsZSBzZWdtZW50cy4KCjIwMDItMDYtMDYgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIHN0YWJzLmMgKF9iZmRfbGlua19zZWN0aW9uX3N0YWJzKTogQ2hlY2sgdGhhdCB0aGUgc3ltYm9sIG9mZnNldAoJaXMgd2l0aGluIHRoZSAuc3RhYnN0ciBzZWN0aW9uLgoKMjAwMi0wNi0wNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1iZmQuaCAoc3RydWN0IGVsZl9zaXplX2luZm8gPHN3YXBfc3ltYm9sX2luPik6IEZ1bmN0aW9uIGFyZ3MKCWFyZSAiY29uc3QgUFRSIiwgbm90ICJjb25zdCBQVFIgKiIuCgkoYmZkX2VsZjMyX3N3YXBfc3ltYm9sX2luKTogTGlrZXdpc2UuCgkoYmZkX2VsZjY0X3N3YXBfc3ltYm9sX2luKTogTGlrZXdpc2UuCgkqIGVsZmNvZGUuaCAoZWxmX3N3YXBfc3ltYm9sX2luKTogQ2hhbmdlIGlucHV0IGFyZ3MgdG8gY29uc3QgUFRSLgoJKGVsZl9zbHVycF9zeW1ib2xfdGFibGUpOiBBZGp1c3QgY2FsbCB0byBlbGZfc3dhcF9zeW1ib2xfaW4uCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfaXNfZGVmaW5lZF9hcmNoaXZlX3N5bWJvbCk6IExpa2V3aXNlLgoJKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IExpa2V3aXNlLgoJKGVsZl9saW5rX3JlY29yZF9sb2NhbF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKGVsZl9saW5rX2lucHV0X2JmZCk6IExpa2V3aXNlLgoJKGVsZl9nY19tYXJrKTogTGlrZXdpc2UuCgkoZWxmX3JlbG9jX3N5bWJvbF9kZWxldGVkX3ApOiBMaWtld2lzZS4KCSogZWxmLW0xMDIwMC5jIChtbjEwMjAwX2VsZl9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgkobW4xMDIwMF9lbGZfcmVsYXhfZGVsZXRlX2J5dGVzKTogTGlrZXdpc2UuCgkobW4xMDIwMF9lbGZfc3ltYm9sX2FkZHJlc3NfcCk6IExpa2V3aXNlLgoJKG1uMTAyMDBfZWxmX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IExpa2V3aXNlLgoJKiBlbGYtbTEwMzAwLmMgKG1uMTAzMDBfZWxmX3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCShtbjEwMzAwX2VsZl9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgkobW4xMDMwMF9lbGZfcmVsYXhfZGVsZXRlX2J5dGVzKTogTGlrZXdpc2UuCgkobW4xMDMwMF9lbGZfc3ltYm9sX2FkZHJlc3NfcCk6IExpa2V3aXNlLgoJKG1uMTAzMDBfZWxmX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IExpa2V3aXNlLgoJKiBlbGYzMi1oODMwMC5jIChlbGYzMl9oOF9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgkoZWxmMzJfaDhfcmVsYXhfZGVsZXRlX2J5dGVzKTogTGlrZXdpc2UuCgkoZWxmMzJfaDhfc3ltYm9sX2FkZHJlc3NfcCk6IExpa2V3aXNlLgoJKGVsZjMyX2g4X2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IExpa2V3aXNlLgoJKiBlbGYzMi1ocHBhLmMgKGdldF9sb2NhbF9zeW1zKTogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGsuYyAoYmZkX202OGtfZWxmMzJfY3JlYXRlX2VtYmVkZGVkX3JlbG9jcyk6IExpa2V3aXNlLgoJKiBlbGYzMi1taXBzLmMgKGJmZF9taXBzX2VsZjMyX2NyZWF0ZV9lbWJlZGRlZF9yZWxvY3MpOiBMaWtld2lzZS4KCSogZWxmMzItc2guYyAoc2hfZWxmX3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCShzaF9lbGZfcmVsYXhfZGVsZXRlX2J5dGVzKTogTGlrZXdpc2UuCgkoc2hfZWxmX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IExpa2V3aXNlLgoJKiBlbGYzMi14c3Rvcm15MTYuYyAoeHN0b3JteTE2X2VsZl9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLgoJKiBlbGY2NC1tbWl4LmMgKG1taXhfZWxmX3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmMgKGdldF9sb2NhbF9zeW1zKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNoNjQuYyAoc2hfZWxmNjRfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAyLTA2LTA1ICBKIm9ybiBSZW5uZWNrZSA8am9lcm4ucmVubmVja2VAc3VwZXJoLmNvbT4KCgkqIGNvbmZpZy5iZmQgKHNoNjRsKi0qLWVsZiosIHNobCotKi1lbGYqKTogTmV3IGNvbmZpZ3VyYXRpb25zLgoKMjAwMi0wNi0wNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi5jIChncm91cF9zaWduYXR1cmUpOiBTd2FwIGluIHRoZSB3aG9sZSBzeW1ib2wsIGFuZCBoYW5kbGUKCWV4dHJhY3Rpbmcgc2VjdGlvbiBzeW1ib2wgbmFtZXMuCgkoc2V0dXBfZ3JvdXApOiBBZGQgY29tbWVudC4KCShzZXRfZ3JvdXBfY29udGVudHMpOiBXaGVuIGNhbGxlZCBmcm9tIG9iamNvcHkgb3IgbGQsIGFycmFuZ2UgZm9yCglzZWN0aW9uIGNvbnRlbnRzIHRvIGJlIHdyaXR0ZW4uICBXcml0ZSBncm91cCBtZW1iZXIgb3V0cHV0IHNlY3Rpb24KCWluZGljZXMgdG8gYWxsb3cgb2JqY29weSB0byByZW9yZ2FuaXplIHNlY3Rpb25zLgoJKF9iZmRfZWxmX2NvcHlfcHJpdmF0ZV9zZWN0aW9uX2RhdGEpOiBDb3B5IGdyb3VwIGluZm8uCgoJKiBlbGYtYmZkLmggKHN0cnVjdCBlbGZfc2l6ZV9pbmZvKTogQWRkIHN3YXBfc3ltYm9sX2luIGZpZWxkLgoJKGJmZF9lbGYzMl9zd2FwX3N5bWJvbF9pbik6IFVwZGF0ZSBwcm90b3R5cGUuCgkoYmZkX2VsZjY0X3N3YXBfc3ltYm9sX2luKTogTGlrZXdpc2UuCgkqIGVsZmNvZGUuaCAoZWxmX3N3YXBfc3ltYm9sX2luKTogQ2hhbmdlIGlucHV0IGFyZ3MgdG8gY29uc3QgUFRSICouCgkoZWxmX3NsdXJwX3N5bWJvbF90YWJsZSk6IEFkanVzdCBjYWxsIHRvIGVsZl9zd2FwX3N5bWJvbF9pbi4KCSogZWxmbGluay5oIChlbGZfbGlua19pc19kZWZpbmVkX2FyY2hpdmVfc3ltYm9sKTogTGlrZXdpc2UuCgkoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogTGlrZXdpc2UuCgkoZWxmX2xpbmtfcmVjb3JkX2xvY2FsX2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgkoZWxmX2xpbmtfaW5wdXRfYmZkKTogTGlrZXdpc2UuCgkoZWxmX2djX21hcmspOiBMaWtld2lzZS4KCShlbGZfcmVsb2Nfc3ltYm9sX2RlbGV0ZWRfcCk6IExpa2V3aXNlLgoJKiBlbGYtbTEwMjAwLmMgKG1uMTAyMDBfZWxmX3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCShtbjEwMjAwX2VsZl9yZWxheF9kZWxldGVfYnl0ZXMpOiBMaWtld2lzZS4KCShtbjEwMjAwX2VsZl9zeW1ib2xfYWRkcmVzc19wKTogTGlrZXdpc2UuCgkobW4xMDIwMF9lbGZfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogTGlrZXdpc2UuCgkqIGVsZi1tMTAzMDAuYyAobW4xMDMwMF9lbGZfcmVsYXhfc2VjdGlvbik6IExpa2V3aXNlLgoJKG1uMTAzMDBfZWxmX3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCShtbjEwMzAwX2VsZl9yZWxheF9kZWxldGVfYnl0ZXMpOiBMaWtld2lzZS4KCShtbjEwMzAwX2VsZl9zeW1ib2xfYWRkcmVzc19wKTogTGlrZXdpc2UuCgkobW4xMDMwMF9lbGZfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogTGlrZXdpc2UuCgkqIGVsZjMyLWg4MzAwLmMgKGVsZjMyX2g4X3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCShlbGYzMl9oOF9yZWxheF9kZWxldGVfYnl0ZXMpOiBMaWtld2lzZS4KCShlbGYzMl9oOF9zeW1ib2xfYWRkcmVzc19wKTogTGlrZXdpc2UuCgkoZWxmMzJfaDhfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuYyAoZ2V0X2xvY2FsX3N5bXMpOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jIChiZmRfbTY4a19lbGYzMl9jcmVhdGVfZW1iZWRkZWRfcmVsb2NzKTogTGlrZXdpc2UuCgkqIGVsZjMyLW1pcHMuYyAoYmZkX21pcHNfZWxmMzJfY3JlYXRlX2VtYmVkZGVkX3JlbG9jcyk6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfcmVsYXhfc2VjdGlvbik6IExpa2V3aXNlLgoJKHNoX2VsZl9yZWxheF9kZWxldGVfYnl0ZXMpOiBMaWtld2lzZS4KCShzaF9lbGZfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogTGlrZXdpc2UuCgkqIGVsZjMyLXhzdG9ybXkxNi5jICh4c3Rvcm15MTZfZWxmX3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsYXhfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1ocHBhLmMgKGVsZjY0X2hwcGFfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCgkqIGVsZjY0LW1taXguYyAobW1peF9lbGZfcmVsYXhfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYyAoZ2V0X2xvY2FsX3N5bXMpOiBMaWtld2lzZS4KCSogZWxmNjQtc2g2NC5jIChzaF9lbGY2NF9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmY29kZS5oIChOQU1FKF9iZmRfZWxmLHNpemVfaW5mbykpOiBVcGRhdGUgaW5pdGlhbGlzZXIuCgkqIGVsZjY0LWFscGhhLmMgKGFscGhhX2VsZl9zaXplX2luZm8pOiBMaWtld2lzZS4KCSogZWxmNjQtaHBwYS5jIChocHBhNjRfZWxmX3NpemVfaW5mbyk6IExpa2V3aXNlLgoJKiBlbGY2NC1taXBzLmMgKG1pcHNfZWxmNjRfc2l6ZV9pbmZvKTogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYyAoczM5MF9lbGY2NF9zaXplX2luZm8pOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfc2l6ZV9pbmZvKTogTGlrZXdpc2UuCgoyMDAyLTA2LTA1ICBNYWNpZWogVy4gUm96eWNraSAgPG1hY3JvQGRzMi5wZy5nZGEucGw+CgoJKiBlbGYzMi1taXBzLmMgKGVsZjMyX21pcHNfaWdub3JlX2Rpc2NhcmRlZF9yZWxvY3MpOiBNb3ZlIHRvLi4uCgllbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfaWdub3JlX2Rpc2NhcmRlZF9yZWxvY3MpOiAuLi4gaGVyZS4KCWVsZjY0LW1pcHMuYyAoZWxmX2JhY2tlbmRfaWdub3JlX2Rpc2NhcmRlZF9yZWxvY3MpOiBVc2UKCV9iZmRfbWlwc19lbGZfaWdub3JlX2Rpc2NhcmRlZF9yZWxvY3MuCgllbGZ4eC1taXBzLmggKF9iZmRfbWlwc19lbGZfaWdub3JlX2Rpc2NhcmRlZF9yZWxvY3MpOiBEZWNsYXJlLgoKMjAwMi0wNi0wNSAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogQ2FsbAoJX2JmZF9lbGZfcmVsX2xvY2FsX3N5bSBmb3IgU1RUX1NFQ1RJT04gcmVsb2NhdGlvbnMgYWdhaW5zdAoJdGhlIFNFQ19NRVJHRSBzZWN0aW9uLgoKMjAwMi0wNi0wNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvZmYtYWxwaGEuYzogVXBkYXRlIGNvcHlyaWdodCBkYXRlLgoJKiBjb2ZmLW1pcHMuYzogTGlrZXdpc2UuCgkqIHhjb2ZmLXRhcmdldC5oOiBMaWtld2lzZS4KCgkqIGJmZC1pbi5oOiBSZW1vdmUgInRha2VuIGZyb20gdGhlIHNvdXJjZSIgY29tbWVudC4KCSogbGliYmZkLWluLmg6IExpa2V3aXNlLgoJKiBsaWJjb2ZmLWluLmg6IExpa2V3aXNlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBsaWJjb2ZmLmg6IFJlZ2VuZXJhdGUuCgoJKiBlbGYuYyAoYmZkX2VsZl9kaXNjYXJkX2dyb3VwKTogUmV0dXJuIHRydWUuCgkqIGVsZi1iZmQuaCAoYmZkX2VsZl9kaXNjYXJkX2dyb3VwKTogRGVjbGFyZS4KCSogYmZkLWluLmggKGJmZF9lbGZfZGlzY2FyZF9ncm91cCk6IERvbid0IGRlY2xhcmUgaGVyZS4KCSogc2VjdGlvbi5jIChiZmRfZGlzY2FyZF9ncm91cCk6IFJlbmFtZSB0byBiZmRfZ2VuZXJpY19kaXNjYXJkX2dyb3VwLgoJKiBiZmQuYyAoYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIHRhcmdldHMuYyAoc3RydWN0IGJmZF90YXJnZXQpOiBBZGQgX2JmZF9kaXNjYXJkX2dyb3VwLgoJKEJGRF9KVU1QX1RBQkxFX0xJTkspOiBIZXJlIHRvby4KCSogbGliYmZkLWluLmggKF9iZmRfbm9saW5rX2JmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiBhb3V0LWFkb2JlLmMgKGFvdXRfMzJfYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIGFvdXQtdGFyZ2V0LmggKE1ZX2JmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiBhb3V0LXRpYzMwLmMgKE1ZX2JmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiBiaW5hcnkuYyAoYmluYXJ5X2JmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiBib3V0LmMgKGJfb3V0X2JmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiBjb2ZmLWFscGhhLmMgKF9iZmRfZWNvZmZfYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIGNvZmZjb2RlLmggKGNvZmZfYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIGNvZmYtbWlwcy5jIChfYmZkX2Vjb2ZmX2JmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiBlbGZ4eC10YXJnZXQuaCAoYmZkX2VsZk5OX2JmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiBpMzg2bXNkb3MuYyAobXNkb3NfYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIGkzODZvczlrLmMgKG9zOWtfYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIGllZWUuYyAoaWVlZV9iZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogaWhleC5jIChpaGV4X2JmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiBtbW8uYyAobW1vX2JmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiBubG0tdGFyZ2V0LmggKG5sbV9iZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogb2FzeXMuYyAob2FzeXNfYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIHBwY2Jvb3QuYyAocHBjYm9vdF9iZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogc29tLmMgKHNvbV9iZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogc3JlYy5jIChzcmVjX2JmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiB0ZWtoZXguYyAodGVraGV4X2JmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiB2ZXJzYWRvcy5jICh2ZXJzYWRvc19iZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogdm1zLmMgKHZtc19iZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogeGNvZmYtdGFyZ2V0LmggKF9iZmRfeGNvZmZfYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIGNvZmY2NC1yczYwMDAuYyAocnM2MDAwY29mZjY0X3ZlYyk6IFVwZGF0ZSBpbml0aWFsaXNlci4KCShhaXg1Y29mZjY0X3ZlYyk6IExpa2V3aXNlLgoJKiBjb2ZmLXJzNjAwMC5jIChyczYwMDBjb2ZmX3ZlYywgcG1hY194Y29mZl92ZWMpOiBMaWtld2lzZS4KCjIwMDItMDYtMDQgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQkZEMzJfQkFDS0VORFMpOiBBZGQgZWxmMzItc2g2NC1jb20ubG8uCgkoQkZEMzJfQkFDS0VORFNfQ0ZJTEVTKTogQWRkIGVsZjMyLXNoNjQtY29tLmMuCgkoZWxmMzItc2g2NC1jb20ubG8pOiBOZXcgZGVwZW5kZW5jeSBsaXN0LgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLmluIChiZmRfZWxmMzJfc2g2NF92ZWMsIGJmZF9lbGYzMl9zaDY0bF92ZWMpCgkoYmZkX2VsZjMyX3NoNjRuYnNkX3ZlYywgYmZkX2VsZjMyX3NoNjRsbmJzZF92ZWMpOiBBZGQKCWVsZjMyLXNoNjQtY29tLmxvLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGVsZjMyLXNoNjQuYyAoc2g2NF9hZGRyZXNzX2luX2NyYW5nZXMpCgkoc2g2NF9nZXRfY29udGVudHNfdHlwZSwgc2g2NF9hZGRyZXNzX2lzX3NobWVkaWEpOiBNb3ZlIHRvLi4uCgkoY3JhbmdlX3Fzb3J0X2NtcGIsIGNyYW5nZV9xc29ydF9jbXBsLCBjcmFuZ2VfYnNlYXJjaF9jbXBiKToKCShjcmFuZ2VfYnNlYXJjaF9jbXBsKTogUHJlcGVuZCBfYmZkX3NoNjRfIHRvIG5hbWUgYW5kIG1vdmUgdG8uLi4KCSogZWxmMzItc2g2NC1jb20uYzogLi4uaGVyZS4gIE5ldyBmaWxlLgoKMjAwMi0wNi0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLW9wZW5yaXNjLmMgKG9wZW5yaXNjX2VsZl9nY19tYXJrX2hvb2spOiBSZW1vdmUKCUFUVFJJQlVURV9VTlVTRUQgb24gdXNlZCBwYXJhbXMuCgkqIGVsZjMyLXZheC5jIChlbGZfdmF4X2djX21hcmtfaG9vayk6IFJlbW92ZSB1bm5lY2Vzc2FyeSBjaGVja3MKCWJlZm9yZSBjYWxsaW5nIGJmZF9zZWN0aW9uX2Zyb21fZWxmX2luZGV4IG9uIGxvY2FsIHN5bXMuCgkqIGVsZjY0LXNoNjQuYyAoc2hfZWxmNjRfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgoyMDAyLTA2LTA0ICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogTWFrZWZpbGUuYW0gKEJGRDMyX0JBQ0tFTkRTKTogQWRkIGVsZjMyLXNoNjQtbmJzZC5sby4KCShCRkQzMl9CQUNLRU5EU19DRklMRVMpOiBBZGQgZWxmMzItc2g2NC1uYnNkLmMuCgkoQkZENjRfQkFDS0VORFMpOiBBZGQgZWxmNjQtc2g2NC1uYnNkLmxvLgoJKEJGRDY0X0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCBlbGY2NC1zaDY0LW5ic2QuYy4KCShlbGYzMi1zaDY0LW5ic2QubG8sIGVsZjY0LXNoNjQtbmJzZC5sbyk6IE5ldyBydWxlcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy5iZmQgKHNoNWxlLSotbmV0YnNkKiwgc2g1LSotbmV0YnNkKiwgc2g2NGxlLSotbmV0YnNkKikKCShzaDY0LSotbmV0YnNkKik6IE5ldyB0YXJnZXRzLgoJKiBjb25maWd1cmUuaW46IEFkZCBiZmRfZWxmMzJfc2g2NG5ic2RfdmVjLCBiZmRfZWxmMzJfc2g2NGxuYnNkX3ZlYywKCWJmZF9lbGY2NF9zaDY0bmJzZF92ZWMsIGFuZCBiZmRfZWxmNjRfc2g2NGxuYnNkX3ZlYy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBlbGYzMi1zaDY0LW5ic2QuYzogTmV3IGZpbGUuCgkqIGVsZjY0LXNoNjQtbmJzZC5jOiBOZXcgZmlsZS4KCSogdGFyZ2V0cy5jOiBBZGQgZXh0ZXJuIGRlY2xzIGZvciBiZmRfZWxmMzJfc2g2NG5ic2RfdmVjLAoJYmZkX2VsZjMyX3NoNjRsbmJzZF92ZWMsIGJmZF9lbGY2NF9zaDY0bmJzZF92ZWMsIGFuZAoJYmZkX2VsZjY0X3NoNjRsbmJzZF92ZWMuCgoyMDAyLTA2LTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLmMgKHNldHVwX2dyb3VwKTogU2V0IFNFQ19MSU5LX09OQ0Ugb24gR1JQX0NPTURBVCBncm91cHMuCgkoYmZkX3NlY3Rpb25fZnJvbV9zaGRyKTogTGlrZXdpc2UuICBTZXQgc2VjdGlvbiBuYW1lIG9mIGdyb3VwCglzZWN0aW9ucyBmcm9tIHNpZ25hdHVyZS4KCShncm91cF9zaWduYXR1cmUpOiBTcGxpdCBvdXQgZnJvbSBzZXR1cF9ncm91cC4gIEVuc3VyZSBzeW1ib2wgdGFibGUKCWlzIGF2YWlsYWJsZS4KCShiZmRfZWxmX2Rpc2NhcmRfZ3JvdXApOiBOZXcgZnVuY3Rpb24uCgkoX2JmZF9lbGZfbWFrZV9zZWN0aW9uX2Zyb21fc2hkcik6IERvbid0IHNldCBTRUNfTElOS19PTkNFIG9uCgkuZ251LmxpbmtvbmNlKiBzZWN0aW9ucyBpZiB0aGV5IGFyZSBtZW1iZXJzIG9mIGEgZ3JvdXAuCgkoc2V0X2dyb3VwX2NvbnRlbnRzKTogU2V0IEdSUF9DT01EQVQgZmxhZy4KCSogc2VjdGlvbi5jIChiZmRfZGlzY2FyZF9ncm91cCk6IE5ldyBmdW5jdGlvbi4KCSogYmZkLWluLmggKGJmZF9lbGZfZGlzY2FyZF9ncm91cCk6IERlY2xhcmUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogZWxmLWJmZC5oIChzdHJ1Y3QgYmZkX2VsZl9zZWN0aW9uX2RhdGEpOiBBZGQgbGlua29uY2VfcCBmaWVsZC4KCShlbGZfbGlua29uY2VfcCk6IERlZmluZS4KCjIwMDItMDYtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYuYyAoYmZkX3NlY3Rpb25fZnJvbV9zaGRyKTogTWFrZSAibmFtZSIgY29uc3QuCgkqIGVsZi1iZmQuaCAoZWxmX2JhY2tlbmRfc2VjdGlvbl9mcm9tX3NoZHIpOiBMaWtld2lzZS4KCSogZWxmMzItaTM3MC5jIChpMzcwX2VsZl9zZWN0aW9uX2Zyb21fc2hkcik6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9zZWN0aW9uX2Zyb21fc2hkcik6IExpa2V3aXNlLgoJKiBlbGYzMi1zaDY0LmMgKHNoNjRfYmFja2VuZF9zZWN0aW9uX2Zyb21fc2hkcik6IExpa2V3aXNlLgoJKiBlbGYzMi12ODUwLmMgKHY4NTBfZWxmX3NlY3Rpb25fZnJvbV9zaGRyKTogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3NlY3Rpb25fZnJvbV9zaGRyKTogTGlrZXdpc2UuCgkqIGVsZjY0LWhwcGEuYyAoZWxmNjRfaHBwYV9zZWN0aW9uX2Zyb21fc2hkcik6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3NlY3Rpb25fZnJvbV9zaGRyKTogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9zZWN0aW9uX2Zyb21fc2hkcik6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfc2VjdGlvbl9mcm9tX3NoZHIpOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5oIChfYmZkX21pcHNfZWxmX3NlY3Rpb25fZnJvbV9zaGRyKTogTGlrZXdpc2UuCgoyMDAyLTA2LTAzICBNYWNpZWogVy4gUm96eWNraSAgPG1hY3JvQGRzMi5wZy5nZGEucGw+CgoJKiBlbGZ4eC1taXBzLmMgKEFCSV82NF9QKTogVXNlIGJhY2tlbmQncyBkYXRhIHRvIGRldGVybWluZSB0aGUKCUFCSS4KCjIwMDItMDYtMDIgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBlbGYzMi1hcmMuYzogRml4IGZvcm1hdHRpbmcuCgkqIGVsZjMyLWFybS5oOiBMaWtld2lzZS4KCSogZWxmMzItY3Jpcy5jOiBMaWtld2lzZS4KCSogZWxmMzItZGx4LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1ocHBhLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzg2LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzg2cW54LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1vcjMyLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zMzkwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zaDY0LmM6IExpa2V3aXNlLgoJKiBlbGYzMi12YXguYzogTGlrZXdpc2UuCgkqIGVsZjMyLXhzdG9ybXkxNi5jOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYzogTGlrZXdpc2UuCgkqIGVsZjY0LW1taXguYzogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jOiBMaWtld2lzZS4KCSogZWxmNjQtc2g2NC5jOiBMaWtld2lzZS4KCSogZWxmNjQteDg2LTY0LmM6IExpa2V3aXNlLgoKMjAwMi0wNi0wMiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCBkZXJlZmVyZW5jZQoJbnVsbCB3aGVuIHRoZXJlIGFyZSBubyBnb3QgZW50cmllcyBmb3IgYSBzeW1ib2wuCgkoZWxmNjRfYWxwaGFfcmVsYXhfZmluZF90bHNfc2VnbWVudCk6IFJlYXJyYW5nZSB0byBhdm9pZAoJdW5pbml0aWFsaXplZCB2YXJpYWJsZSB3YXJuaW5nLgoKMjAwMi0wNi0wMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbGF4X3dpdGhfbGl0dXNlKTogRG9uJ3QgdGVzdCBmb3IKCXVuZGVmaW5lZCBzeW1ib2xzIGhlcmUuCgkoZWxmNjRfYWxwaGFfcmVsYXhfc2VjdGlvbik6IERvIGl0IGhlcmUuICBBbHNvIHRlc3QgZm9yIG5vdAoJZGVmaW5lZCBpbiB0aGUgY3VycmVudCBtb2R1bGUuCgkoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbl9yKTogU3BsaXQgb3V0IG9mIC4uLgoJKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pOiAuLi4gaGVyZS4gIERvbid0IGRlcmVmZXJlbmNlCglOVUxMIHdoZW4gbG9va2luZyB1cCBsb2NhbCBnb3QgZW50cmllcy4KCjIwMDItMDYtMDEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxheF93aXRoX2xpdHVzZSk6IFJlamVjdCB1bmRlZmluZWQKCXN5bWJvbHMgZnJvbSBKU1IgcmVsYXhhdGlvbi4KCShlbGY2NF9hbHBoYV9zaXplX3BsdF9zZWN0aW9uXzEpOiBOZXcuCgkoZWxmNjRfYWxwaGFfY2FsY19keW5yZWxfc2l6ZXMpOiBTcGxpdCBvdXQgLnJlbGEuZ290IGJpdHMgLi4uCgkoZWxmNjRfYWxwaGFfc2l6ZV9yZWxhX2dvdF8xKTogLi4uIGhlcmUuCgkoZWxmNjRfYWxwaGFfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogU3BsaXQgb3V0IC5yZWxhLmdvdCBiaXRzIC4uLgoJKGVsZjY0X2FscGhhX3NpemVfcmVsYV9nb3Rfc2VjdGlvbik6IC4uLiBoZXJlLgoJKGVsZjY0X2FscGhhX3NpemVfcGx0X3NlY3Rpb24pOiBOZXcuCgkoZWxmNjRfYWxwaGFfcmVsYXhfc2VjdGlvbik6IENhbGwgdGhlbS4KCShlbGY2NF9hbHBoYV9zaXplX2dvdF9zZWN0aW9ucyk6IFJlbW92ZSBvdXRwdXRfYmZkIGFyZy4KCShlbGY2NF9hbHBoYV9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBDaGVjayBnb3RlbnQgdXNlX2NvdW50LgoKMjAwMi0wNi0wMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKGFscGhhX2dldF9kdHByZWxfYmFzZSwgYWxwaGFfZ2V0X3RwcmVsX2Jhc2UpOiBOZXcuCgkoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IFVzZSB0aGVtLiAgUmVqZWN0IExFIFRMUyByZWxvY3MKCWluIHNoYXJlZCBsaWJyYXJpZXMuICBGaXggRFRQUkVMSEkgYW5kIFRQUkVMSEkgdmFsdWUuCgkoSU5TTl9BRERRLCBJTlNOX1JEVU5JUSk6IE5ldy4KCShzdHJ1Y3QgYWxwaGFfcmVsYXhfaW5mbyk6IEFkZCBzeW10YWJfaGRyLCB0bHNfc2VnbWVudCwgZmlyc3RfZ290ZW50LgoJKGVsZjY0X2FscGhhX3JlbGF4X3dpdGhfbGl0dXNlKTogUmV0dXJuIGJvb2xlYW4uICBSZW1vdmUgaXJlbGVuZAoJYXJndW1lbnQuICBSZWplY3QgZHluYW1pYyBzeW1ib2xzLiAgVXNlIExJVFVTRSBzeW1ib2xpYyBjb25zdGFudHMuCgkoZWxmNjRfYWxwaGFfcmVsYXhfZ290X2xvYWQpOiBSZW5hbWUgZnJvbSByZWxheF93aXRob3V0X2xpdHVzZS4KCUhhbmRsZSBHT1REVFBSRUwgYW5kIEdPVFRQUkVMIHJlbG9jYXRpb25zLgoJKGVsZjY0X2FscGhhX3JlbGF4X2dwcmVsaGlsbyk6IE5ldy4KCShlbGY2NF9hbHBoYV9yZWxheF90bHNfZ2V0X2FkZHIpOiBOZXcuCgkoZWxmNjRfYWxwaGFfcmVsYXhfZmluZF90bHNfc2VnbWVudCk6IE5ldy4KCShlbGY2NF9hbHBoYV9yZWxheF9zZWN0aW9uKTogSGFuZGxlIFRMUyByZWxvY2F0aW9ucy4KCShBTFBIQV9FTEZfTElOS19IQVNIX1RMU19JRSk6IE5ldy4KCShlbGY2NF9hbHBoYV9jaGVja19yZWxvY3MpOiBTZXQgaXQuCgoyMDAyLTA2LTAxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsYXhfc2VjdGlvbik6IERvbid0IHN0b3JlIGNvbXB1dGVkIGdwLgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfY2hlY2tfcmVsb2NzKTogRml4IHR5cG8gb24gbWF5YmVfZHluYW1pYwoJY2hlY2s7IGRvbid0IHN1cHByZXNzIGR5bmFtaWMgcmVsb2NzIGZvciBub24tYWxsb2NhdGVkIHNlY3Rpb25zLgoKCSogZWxmNjQtYWxwaGEuYzogUmVtb3ZlIGRlYWQgY29kZS4KCjIwMDItMDUtMzEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBwby9TUkMtUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IERvbid0IGFsbG9jYXRlCglzcGFjZSBmb3IgYnNzIC5wbHQuCgoyMDAyLTA1LTMxICBHcmFlbWUgUGV0ZXJzb24gIDxncEBxbnguY29tPgoKCSogTWFrZWZpbGUuYW0gKEJGRDMyX0JBQ0tFTkRTKTogQWRkIGVsZjMyLWkzODZxbngubG8uCgkoQkZEMzJfQkFDS0VORFNfQ0ZJTEVTKTogQWRkIGVsZjMyLWkzODZxbnguYy4KCVJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmJmZDogQWRkIGlbMzQ1Nl04Ni0qLW50by1xbngqIHN1cHBvcnQuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGJmZF9lbGYzMl9pMzg2cW54X3ZlYyBzdXBwb3J0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGVsZi1iZmQuaCAoc3RydWN0IGVsZl9iYWNrZW5kX2RhdGEpOiBBZGQgc2V0X25vbmxvYWRhYmxlX2ZpbGVwb3MsCglpc19jb250YWluZWRfYnlfZmlsZXBvcywgYW5kIGNvcHlfcHJpdmF0ZV9iZmRfZGF0YV9wLgoJKiBlbGYuYyAoYXNzaWduX2ZpbGVfcG9zaXRpb25zX2Zvcl9zZWdtZW50cyk6IENhbGwgYmFja2VuZAoJc2V0X25vbmxvYWRhYmxlX2ZpbGVwb3MuICBGaXggbm9uLUsmUiBjYWxsIHRvIF9iZmRfZXJyb3JfaGFuZGxlci4KCShJU19DT05UQUlORURfQllfRklMRVBPUyk6IERlZmluZS4KCShJTkNMVURFX1NFQ1RJT05fSU5fU0VHTUVOVCk6IEFsc28gdGVzdCBJU19DT05UQUlORURfQllfRklMRVBPUy4KCShjb3B5X3ByaXZhdGVfYmZkX2RhdGEpOiBVc2UgSVNfQ09OVEFJTkVEX0JZX0ZJTEVQT1MuICBUeXBvIGZpeC4KCUZpeCBub24tSyZSIGNhbGwgdG8gX2JmZF9lcnJvcl9oYW5kbGVyLgoJKF9iZmRfZWxmX2NvcHlfcHJpdmF0ZV9zZWN0aW9uX2RhdGEpOiBVc2UgYmFja2VuZAoJY29weV9wcml2YXRlX2JmZF9kYXRhX3AuCgkqIGVsZjMyLWkzODYuYzogRG9uJ3QgaW5jbHVkZSBlbGZ4eC10YXJnZXQuaCB3aGVuCglFTEYzMl9JMzg2X0NfSU5DTFVERUQgaXMgZGVmaW5lZC4KCSogZWxmMzItaTM4NnFueC5jOiBOZXcgUU5YIGVsZiBiYWNrZW5kIGZpbGUuCgkqIGVsZnh4LXRhcmdldC5oOiBBZGQgZWxmX2JhY2tlbmRfc2V0X25vbmxvYWRhYmxlX2ZpbGVwb3MsCgllbGZfYmFja2VuZF9pc19jb250YWluZWRfYnlfZmlsZXBvcywgYW5kCgllbGZfYmFja2VuZF9kb19jb3B5X3ByaXZhdGVfYmZkX2RhdGEuCgkqIHRhcmdldHMuYzogQWRkIGJmZF90YXJnZXQgYmZkX2VsZjMyX2kzODZxbnhfdmVjLgoKMjAwMi0wNS0zMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmFybS1vYWJpLmMgKGJmZF9lbGYzMl9hcm1fYWRkX2dsdWVfc2VjdGlvbnNfdG9fYmZkKTogRGVmaW5lLgoJTW92ZSBvdGhlciBzaW1pbGFyIGRlZmluZXMgdG8gc3RhcnQgb2YgZmlsZS4KCjIwMDItMDUtMzAgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBjb2ZmLXJzNjAwMC5jICh4Y29mZl9ydHlwZTJob3d0byk6IEhhbmRsZSAxNiBiaXQgUl9SQkEuCgkqIGNvZmY2NC1yczYwMDAuYyAoeGNvZmY2NF9ydHlwZTJob3d0byk6IFNhbWUuCgoyMDAyLTA1LTMwICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoQUxQSEFfRUxGX0xJTktfSEFTSF9MVV9UTFNHRCwKCUFMUEhBX0VMRl9MSU5LX0hBU0hfTFVfVExTTERNLCBBTFBIQV9FTEZfTElOS19IQVNIX0xVX0ZVTkMpOiBOZXcuCgkoQUxQSEFfRUxGX0dPVF9FTlRSWV9SRUxPQ1NfRE9ORSk6IFJlbW92ZS4KCShBTFBIQV9FTEZfR09UX0VOVFJZX1JFTE9DU19YTEFURUQpOiBSZW1vdmUuCgkoc3RydWN0IGFscGhhX2VsZl9nb3RfZW50cnkpOiBBZGQgcmVsb2NfdHlwZSwgcmVsb2NfZG9uZSwgcmVsb2NfeGxhdGVkLgoJKHN0cnVjdCBhbHBoYV9lbGZfb2JqX3RkYXRhKTogUmVuYW1lIHRvdGFsX2dvdF9lbnRyaWVzIGFuZAoJbl9sb2NhbF9nb3RfZW50cmllcyB0byB0b3RhbF9nb3Rfc2l6ZSBhbmQgbG9jYWxfZ290X3NpemUuCgkoZWxmNjRfYWxwaGFfaG93dG8sIGVsZjY0X2FscGhhX3JlbG9jX21hcCk6IFVwZGF0ZSBmb3IgVExTIHJlbG9jcy4KCShhbHBoYV9nb3RfZW50cnlfc2l6ZSk6IE5ldy4KCShlbGY2NF9hbHBoYV9yZWxheF93aXRoX2xpdHVzZSk6IFVzZSBpdC4KCShlbGY2NF9hbHBoYV9yZWxheF93aXRob3V0X2xpdHVzZSk6IExpa2V3aXNlLgoJKE1BWF9HT1RfU0laRSk6IFJlbmFtZSBmcm9tIE1BWF9HT1RfRU5UUklFUy4KCShnZXRfZ290X2VudHJ5KTogTmV3LgoJKGVsZjY0X2FscGhhX2NoZWNrX3JlbG9jcyk6IEhhbmRsZSBUTFMgcmVsb2NzLiAgUmVvcmdhbml6ZS4KCShlbGY2NF9hbHBoYV9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBUZXN0IExVX0ZVTkMgYXMgYSBtYXNrLgoJKGVsZjY0X2FscGhhX21lcmdlX2luZF9zeW1ib2xzKTogQ2hlY2sgZ290ZW50LT5yZWxvY190eXBlLgoJKGVsZjY0X2FscGhhX2Nhbl9tZXJnZV9nb3RzLCBlbGY2NF9hbHBoYV9tZXJnZV9nb3RzKTogTGlrZXdpc2UuCgkoZWxmNjRfYWxwaGFfY2FsY19nb3Rfb2Zmc2V0c19mb3Jfc3ltYm9sKTogVXNlIGFscGhhX2dvdF9lbnRyeV9zaXplLgoJKGVsZjY0X2FscGhhX2NhbGNfZ290X29mZnNldHMpOiBMaWtld2lzZS4KCShhbHBoYV9keW5hbWljX2VudHJpZXNfZm9yX3JlbG9jKTogTmV3LgoJKGVsZjY0X2FscGhhX2NhbGNfZHlucmVsX3NpemVzKTogVXNlIGl0LgoJKGVsZjY0X2FscGhhX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pOiBIYW5kbGUgVExTIHJlbG9jYXRpb25zLgoJKiByZWxvYy5jOiBBZGQgQWxwaGEgVExTIHJlbG9jYXRpb25zLgoJKiBiZmQtaW4yLmgsIGxpYmJmZC5oOiBSZWJ1aWxkLgoKMjAwMi0wNS0yOSBSYWxmIEhhYmFja2VyIDxyYWxmLmhhYmFja2VyQGZyZWVuZXQuZGU+CgoJKiBwZVhYaWdlbi5jIChwZV9wcmludF9pZGF0YSk6IFJlbW92ZSBkb3VibGUgcHJpbnRlZAoJaW1wb3J0IHRhYmxlIGxpbmVzOyBhZGQgQm91bmQtVG8gY29tbWVudC4KCjIwMDItMDUtMjkgIE1hdHQgVGhvbWFzICA8bWF0dEAzYW0tc29mdHdhcmUuY29tPgoKCSogTWFrZWZpbGUuYW0gKEJGRDMyX0JBQ0tFTkRTKTogQWRkIGVsZjMyLXZheC5sby4KCShCRkQzMl9CQUNLRU5EU19DRklMRVMpOiBBZGQgZWxmMzItdmF4LmMuCgkoZWxmMzItdmF4LmxvKTogTmV3IHJ1bGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmUuaW4gKGJmZF9lbGYzMl92YXhfdmVjKQoJKHZheG5ldGJzZF92ZWMpOiBOZXcgdmVjdG9ycy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjb25maWcuYmZkICh2YXgtKi1uZXRic2RlbGYqKQoJKHZheC0qLW5ldGJzZGFvdXQqKQoJKHZheC0qLW5ldGJzZCopOiBOZXcgdGFyZ2V0cy4KCSogZWxmMzItdmF4LmM6IE5ldyBmaWxlLgoJKiByZWxvYy5jOiBBZGQgVkFYIHJlbG9jYXRpb25zLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIHRhcmdldHMuYyAoX2JmZF90YXJnZXRfdmVjdG9yKTogQWRkIGJmZF9lbGYzMl92YXhfdmVjLgoKMjAwMi0wNS0yOSAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZy5iZmQgKGFybS0qLW5ldGJzZCopOiBBZGQgYmZkX2VsZjMyX2xpdHRsZWFybV92ZWMKCWFuZCBiZmRfZWxmMzJfYmlnYXJtX3ZlYyB0byB0YXJnX3NlbHZlY3MuCgoyMDAyLTA1LTI5ICBSYWxmIEhhYmFja2VyICA8cmFsZi5oYWJhY2tlckBmcmVlbmV0LmRlPgoKCSogcGVYWGlnZW4uYyAocGVfcHJpbnRfaWRhdGEpOiBGaXggc2VnIGZhdWx0cyBvbiBwcmludGluZyBpbXBvcnQgdGFibGVzCgl3aXRoIGF1dG8taW1wb3J0ZWQgc3ltYm9scy4KCjIwMDItMDUtMjkgIEFkYW0gTmVtZXQgIDxhbmVtZXRAbG54dy5jb20+CgoJKiBlbGYzMi1hcm0uaCAoYmZkX2VsZjMyX2FybV9nZXRfYmZkX2Zvcl9pbnRlcndvcmtpbmcpOiBEb24ndCBhZGQgZ2x1ZQoJc2VjdGlvbnMgb25seSByZWNvcmQgYmZkLgoJKGJmZF9lbGYzMl9hcm1fYWRkX2dsdWVfc2VjdGlvbnNfdG9fYmZkKTogTmV3IGZ1bmN0aW9uLgoJKiBiZmQtaW4uaCAoYmZkX2VsZjMyX2FybV9hZGRfZ2x1ZV9zZWN0aW9uc190b19iZmQpOiBEZWNsYXJlIGl0LgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAyLTA1LTI4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIHN5bXMuYyAoX2JmZF9zdGFiX3NlY3Rpb25fZmluZF9uZWFyZXN0X2xpbmUpOiBNb3ZlCglkZWNsYXJhdGlvbiBhbmQgaW5pdGlhbGlzYXRpb24gb2Ygc2F3X2xpbmUgYW5kIHNhd19mdW5jIG91dCBvZgoJZm9yIGxvb3AuCgoyMDAyLTA1LTI5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9nZXRfc3ltYm9sX2luZm8pOiBOZXcgZnVuY3Rpb24uCgkoYmZkX2VsZjY0X2dldF9zeW1ib2xfaW5mbyk6IERlZmluZS4KCSogZWxmeHgtdGFyZ2V0LmggKGJmZF9lbGZOTl9nZXRfc3ltYm9sX2luZm8pOiBPbmx5IGRlZmluZSBpZiB1bmRlZi4KCjIwMDItMDUtMjkgIEFuZHJleSBWb2xrb3YgIDxhdm9sa292QHRyYW5zYXMuY29tPgoKCSogY3B1LWg4MzAwLmM6IE1ha2UgZGVmYXVsdCBoODMwMCBtYWNoaW5lIGZpcnN0IGluIG1hY2hpbmUgbGlzdC4KCjIwMDItMDUtMjggIEt1YW5nIEh3YSBMaW4gPGt1YW5nQHNiY2dsb2JhbC5uZXQ+CgoJKiBjb25maWcuYmZkOiBBZGRlZCBETFggY29uZmlndXJhdG9uLgoJKiBNYWtlZmlsZS5hbTogQWRkZWQgRExYIGNvbmZpZ3VyYXRvbi4KCSogY29uZmlndXJlLmluOiBBZGRlZCBETFggY29uZmlndXJhdG9uLgoJKiBhcmNodXJlcy5jOiBBZGQgRExYIGFyY2hpdGVjdHVyZS4KCSogcmVsb2MuYzogQWRkIERMWCByZWxvY3MuCgkqIHRhcmdldHMuYzogQWRkZWQgRExYIHRhcmdldCB2ZWN0b3IuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VucmVhdGUuCgkqIGJmZC1pbjIuaDogUmVnZW5yZWF0ZS4KCSogZWxmMzItZGx4LmM6IE5ldyBmaWxlOiBTdXBwb3J0IERMWCB0YXJnZXQuCgkqIGNwdS1kbHguYzogTmV3IGZpbGU6IFN1cHBvcnQgRExYIHRhcmdldC4KCjIwMDItMDUtMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1tNjhrLmMgKGVsZjMyX202OGtfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IEZvcm1hdHRpbmcuCgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogUmV2ZXJ0IGxhc3QgY2hhbmdlLgoJKHBwYzY0X2VsZl9jaGVja19yZWxvY3MpOiBEb24ndCBzZXQgdXAgZnVuY3Rpb24gZGVzY3JpcHRvciBzeW1ib2wKCXN0cmluZ3MgdG8gcG9pbnQgaW5zaWRlIGZ1bmN0aW9uIGNvZGUgc3ltIHN0cmluZy4KCShmdW5jX2Rlc2NfYWRqdXN0KTogTGlrZXdpc2UuCgkocHBjNjRfZWxmX2hpZGVfc3ltYm9sKTogUmV3cml0ZSBjb2RlIHRvIGxvb2sgdXAgZnVuY3Rpb24gY29kZSBzeW0uCgoyMDAyLTA1LTI0ICBNaWNoYWwgTHVkdmlnICA8bWx1ZHZpZ0BzdXNlLmN6PgoKCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9ncm9rX3Byc3RhdHVzKTogQWRkZWQuCgkoZWxmNjRfeDg2XzY0X2dyb2tfcHNpbmZvKTogQWRkZWQuCgoyMDAyLTA1LTI0ICBUQU1VUkEgS2VudCA8a2VudEBuZXRic2Qub3JnPgoKCSogY29uZmlnLmJmZDogQWRkIGEgdGFyZ2V0IGZvciBpMzg2LW5ldGJzZHBlLgoKMjAwMi0wNS0yNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBEb24ndCBjb3B5IGlzX2Z1bmMKCWFuZCBpc19mdW5jX2Rlc2NyaXB0b3IuCgkoZnVuY19kZXNjX2FkanVzdCk6IEhpZGUgZnVuY3Rpb24gY29kZSBzeW0gaW4gc2hhcmVkIGxpYnMgdW5sZXNzCgl0aGVyZSBpcyBhIG1hdGNoaW5nIGV4cG9ydGVkIGZ1bmN0aW9uIGRlc2NyaXB0b3Igc3ltLgoKMjAwMi0wNS0yMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYuYyAoX2JmZF9lbGZfbWFrZV9zZWN0aW9uX2Zyb21fc2hkcik6IFNldCBTRUNfVEhSRUFEX0xPQ0FMCglmb3Igc3ltYm9scyBmcm9tIFNIRl9UTFMgc2VjdGlvbi4KCShfYmZkX2VsZl9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogQWRkIFBUX1RMUy4KCShlbGZfZmFrZV9zZWN0aW9ucyk6IFNldCBTSEZfVExTIGZvciBTRUNfVEhSRUFEX0xPQ0FMIHNlY3Rpb25zLgoJKG1hcF9zZWN0aW9uc190b19zZWdtZW50cyk6IEJ1aWxkIFBUX1RMUyBzZWdtZW50IGlmIG5lY2Vzc2FyeS4KCShhc3NpZ25fZmlsZV9wb3NpdGlvbnNfZm9yX3NlZ21lbnRzKTogTGlrZXdpc2UuCgkoZ2V0X3Byb2dyYW1faGVhZGVyX3NpemUpOiBBY2NvdW50IGZvciBQVF9UTFMgc2VnbWVudC4KCShzd2FwX291dF9zeW1zKTogU2V0IHR5cGUgb2YgQlNGX1RIUkVBRF9MT0NBTCBzeW1ib2xzIGFuZCBzeW1ib2xzIGZyb20KCVNFQ19USFJFQURfTE9DQUwgc2VjdGlvbnMgdG8gU1RUX1RMUy4KCSogcmVsb2MuYzogQWRkIDM4NiBhbmQgSUEtNjQgVExTIHJlbG9jcy4KCSogc2VjdGlvbi5jIChTRUNfVEhSRUFEX0xPQ0FMKTogRGVmaW5lLgoJKFNFQ19DT05TVFJVQ1RPUl9URVhULCBTRUNfQ09OU1RSVUNUT1JfREFUQSwgU0VDX0NPTlNUUlVDVE9SX0JTUyk6CglSZW1vdmUuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogU3VwcG9ydCAudGNvbW1vbi4KCShzaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBJZiBERl9TVEFUSUNfVExTLCBzZXQgREZfRkxBR1MKCXVuY29uZGl0aW9uYWxseS4KCShzdHJ1Y3QgZWxmX2ZpbmFsX2xpbmtfaW5mbyk6IEFkZCBmaXJzdF90bHNfc2VjLgoJKGVsZl9iZmRfZmluYWxfbGluayk6IFNldCBmaXJzdF90bHNfc2VjLgoJQ29tcHV0ZSBlbGZfaGFzaF90YWJsZSAoaW5mbyktPnRsc19zZWdtZW50LgoJKGVsZl9saW5rX291dHB1dF9leHRzeW0pOiBIYW5kbGUgU1RUX1RMUyBzeW1ib2xzLgoJKGVsZl9saW5rX2lucHV0X2JmZCk6IExpa2V3aXNlLgoJKiBzeW1zLmMgKEJTRl9USFJFQURfTE9DQUwpOiBEZWZpbmUuCgkqIGJmZC1pbjIuaDogUmVidWlsdC4KCSogbGliYmZkLmg6IFJlYnVpbHQuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfdGxzX3RyYW5zaXRpb24sIGR0cG9mZl9iYXNlLCB0cG9mZiwKCWVsZl9pMzg2X21rb2JqZWN0LCBlbGZfaTM4Nl9vYmplY3RfcCk6IE5ldyBmdW5jdGlvbnMuCgkoZWxmX2hvd3RvX3RhYmxlKTogQWRkIFRMUyByZWxvY3MuCgkoZWxmX2kzODZfcmVsb2NfdHlwZV9sb29rdXApOiBTdXBwb3J0IFRMUyByZWxvY3MuCgkoZWxmX2kzODZfaW5mb190b19ob3d0b19yZWwpOiBMaWtld2lzZS4KCShzdHJ1Y3QgZWxmX2kzODZfbGlua19oYXNoX2VudHJ5KTogQWRkIHRsc190eXBlLgoJKHN0cnVjdCBlbGZfaTM4Nl9vYmpfdGRhdGEpOiBOZXcuCgkoZWxmX2kzODZfaGFzaF9lbnRyeSwgZWxmX2kzODZfdGRhdGEsIGVsZl9pMzg2X2xvY2FsX2dvdF90bHNfdHlwZSk6CglOZXcgbWFjcm9zLgoJKHN0cnVjdCBlbGZfaTM4Nl9saW5rX2hhc2hfdGFibGUpOiBBZGQgdGxzX2xkbV9nb3QuCgkobGlua19oYXNoX25ld2Z1bmMpOiBDbGVhciB0bHNfdHlwZS4KCShlbGZfaTM4Nl9jaGVja19yZWxvY3MpOiBTdXBwb3J0IFRMUyByZWxvY3MuCgkoZWxmX2kzODZfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IExpa2V3aXNlLgoJKGVsZl9pMzg2X3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCShlbGZfaTM4Nl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCShiZmRfZWxmMzJfbWtvYmplY3QsIGVsZl9iYWNrZW5kX29iamVjdF9wKTogRGVmaW5lLgoJKiBlbGZ4eC1pYTY0LmMgKHN0cnVjdCBlbGZOTl9pYTY0X2R5bl9zeW1faW5mbyk6IEFkZCB0cHJlbF9vZmZzZXQsCglkdHBtb2Rfb2Zmc2V0LCBkdHByZWxfb2Zmc2V0LCB0cHJlbF9kb25lLCBkdHBtb2RfZG9uZSwgZHRwcmVsX2RvbmUsCgl3YW50X3RwcmVsLCB3YW50X2R0cG1vZCwgd2FudF9kdHByZWwuCgkoZWxmTk5faWE2NF90cHJlbF9iYXNlLCBlbGZOTl9pYTY0X2R0cHJlbF9iYXNlKTogTmV3IGZ1bmN0aW9ucy4KCShpYTY0X2hvd3RvX3RhYmxlKTogQWRkIFRMUyByZWxvY3MsIHJlbmFtZSBSX0lBNjRfTFRPRkZfVFAyMiB0bwoJUl9JQTY0X0xUT0ZGX1RQUkVMMjIuCgkoZWxmX2NvZGVfdG9faG93dG9faW5kZXgpOiBBZGQgVExTIHJlbG9jcy4KCShlbGZOTl9pYTY0X2NoZWNrX3JlbG9jcyk6IFN1cHBvcnQgVExTIHJlbG9jcy4KCShhbGxvY2F0ZV9nbG9iYWxfZGF0YV9nb3QpOiBBY2NvdW50IGZvciBUTFMgLmdvdCBkYXRhLgoJKGFsbG9jYXRlX2R5bnJlbF9lbnRyaWVzKTogQWNjb3VudCBmb3IgVExTIGR5bmFtaWMgcmVsb2NhdGlvbnMuCgkoZWxmTk5faWE2NF9pbnN0YWxsX3ZhbHVlKTogU3VwcHJ0IFRMUyByZWxvY3MuCgkoc2V0X2dvdF9lbnRyeSk6IFN1cHBvcnQgVExTIHJlbG9jcy4KCShlbGZOTl9pYTY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDItMDUtMjMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9maW5hbF9saW5rX3JlbG9jYXRlKTogRm9yIHRoZSBUaHVtYgoJQkxYIHJlbG9jIHJvdW5kIHRoZSByZWxvY2F0aW9uIHVwIHJhdGhlciB0aGFuIGRvd24uCgkqIGNvZmYtYXJtLmMgKGNvZmZfYXJtX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDItMDUtMjEgIEguSi4gTHUgIChoamxAZ251Lm9yZykKCgkqIGxpbmtlci5jIChfYmZkX2dlbmVyaWNfbGlua19hZGRfb25lX3N5bWJvbCk6IEFsbG93IG11bHRpcGxlCglkZWZpbml0aW9uLgoKMjAwMi0wNS0yMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfc2l6ZV9zdHVicyk6IERvbid0IHN0cmlwIC5icmFuY2hfbHQuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBIYW5kbGUgdW5yZXNvbHZlZCByZWxvY3MgaW4gb3BkLgoKMjAwMi0wNS0yMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFJldHVybiBmYWxzZSBmb3IKCXVucmVzb2x2ZWQgcmVsb2NzLgoJKHBwYzY0X2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBDaGVjayBmb3Igc3BsdCBOVUxMLgoKMjAwMi0wNS0yMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGJmZC5jIChiZmRfZ2V0X2FyY2hfc2l6ZSk6IFJlbW92ZSBiZmRfc2V0X2Vycm9yIGNhbGwgZm9yCglub24tRUxGIHRhcmdldHMuCgoyMDAyLTA1LTIxICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmLWJmZC5oIChlbGZfYmFja2VuZF9lbWl0X3JlbG9jcyk6IENoYW5nZSBwcm90b3R5cGUgdG8gcmV0dXJuCglhbiBlcnJvciB2YWx1ZS4KCSogZWxmbGluay5oIChlbGZfbGlua19vdXRwdXRfcmVsb2NzKTogTGlrZXdpc2UuIEltcHJvdmUgZXJyb3IgbWVzc2FnZS4KCXJldHVybiB3aXRoIGZhbHNlIG9uIGVycm9yLgoJKGVsZl9saW5rX2lucHV0X2JmZCk6IENoZWNrIHJlbG9jX2VtaXR0ZXIgcmV0dXJuIHZhbHVlLgoKMjAwMi0wNS0yMSAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZy5iZmQgKGFybWViLSotbmV0YnNkZWxmKik6IE5ldyB0YXJnZXQuCgoyMDAyLTA1LTIwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwY19idWlsZF9vbmVfc3R1Yik6IFBvaW50IHVuZGVmaW5lZCBmdW5jdGlvbiBzeW1zCglhdCB0aGUgcGx0IGNhbGwgc3R1Yi4KCjIwMDItMDUtMTkgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjcHUtbWlwcy5jIChtaXBzX2NvbXBhdGlibGUpOiBEb24ndCB0cnkgdG8gY2hlY2sgbWFjaGluZQoJY29tcGF0aWJpbGl0eS4KCjIwMDItMDUtMTggIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBjb2ZmNjQtcnM2MDAwLmMgKF9iZmRfeGNvZmY2NF9zd2FwX2F1eF9vdXQpOiBGaXggQ19GSUxFIGF1eGVudC4KCjIwMDItMDUtMTcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2luZm9fdG9faG93dG8pOiBGb3JtYXR0aW5nLgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogRG9uJ3Qgd2FybiBhYm91dCByZWxvYyBvdmVyZmxvdyB3aGVuCgl3ZSd2ZSBhbHJlYWR5IHdhcm5lZCBhYm91dCBhbiB1bmRlZmluZWQgc3ltYm9sLiAgUmVwb3J0IG1vcmUKCWRldGFpbCBvbiByZWxvYyBlcnJvcnMuCgoyMDAyLTA1LTE3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYWNpbmNsdWRlLm00IChBTV9JTlNUQUxMX0xJQkJGRCk6IE5ldy4KCSogY29uZmlndXJlLmluOiBJbnZva2UgQU1fSU5TVEFMTF9MSUJCRkQuCgkqIE1ha2VmaWxlLmFtIChpbnN0YWxsLWRhdGEtbG9jYWwpOiBSZXZlcnQgMjAwMi0wNS0xMy4gIE1vdmUgdG8uLgoJKGluc3RhbGxfbGliYmZkKTogLi4gTmV3IHRhcmdldC4KCSh1bmluc3RhbGxfbGliYmZkKTogTGlrZXdpc2UuCgkoaW5zdGFsbC1iZmRsaWJMVExJQlJBUklFUyk6IExpa2V3aXNlLgoJKHVuaW5zdGFsbC1iZmRsaWJMVExJQlJBUklFUyk6IExpa2V3aXNlLgoJKGJmZGxpYmRpcik6IE5ldy4KCShiZmRpbmNsdWRlZGlyKTogTmV3LgoJKGxpYl9MVExJQlJBUklFUyk6IFJlbmFtZSB0byBiZmRsaWJfTFRMSUJSQVJJRVMuCgkqIGFjbG9jYWwubTQ6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTA1LTE3ICBTdHVhcnQgQmFsZm91ciA8c2JhbGZvdXJAY2lzY28uY29tPgoKCSogaGFzaC5jIChiZmRfaGFzaF9sb29rdXApOiBSZW1vdmUgY29tcHV0YXRpb24gb2YgbGVuIGZyb20gaW5zaWRlCgloYXNoIGxvb3AuCgoyMDAyLTA1LTE2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5iZmQ6IEFkZCB0YXJnZXRzIGZvciBzaDY0LWxpbnV4IChsaXR0bGUgZW5kaWFuIGFuZAoJYmlnIGVuZGlhbikuCgoyMDAyLTA1LTE1ICBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0QHNreW5ldC5iZT4KCgkqIHBlWFhpZ2VuLmMgKHBlX3ByaW50X2lkYXRhKTogRG8gbm90IGFzc3VtZSB0aGF0IHRoZSBmaXJzdCB0aHVuawoJaXMgbG9jYXRlZCBpbiB0aGUgc2FtZSBzZWN0aW9uIGFzIHRoZSBpbXBvcnQgdGFibGUuICBJbnN0ZWFkCgljaGVjaywgYW5kIGlmIG5lY2Vzc2FyeSBsb2FkIHRoZSBzZWN0aW9uIGNvbnRhaW5pbmcgdGhlIHRodW5rLgoKMjAwMi0wNS0xNSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBhaXg1cHBjLWNvcmUuYyAoeGNvZmY2NF9jb3JlX3ApOiBSZXBsYWNlIGJmZF9yZWFkIHdpdGgKCWJmZF9icmVhZC4KCSh4Y29mZjY0X2NvcmVfZmlsZV9tYXRjaGVzX2V4ZWN1dGFibGVfcCk6IFJlcGxhY2UgYmZkX3JlYWQKCXdpdGggYmZkX2JyZWFkLgoKMjAwMi0wNS0xNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGFpeDVwcGMtY29yZS5jOiBXYXJuaW5nIGZpeGVzLgoJKiBhb3V0LWFkb2JlLmMgKGFvdXRfMzJfYmZkX2xpbmtfanVzdF9zeW1zKTogRGVmaW5lLgoJKiBhb3V0LXRhcmdldC5oIChNWV9iZmRfbGlua19qdXN0X3N5bXMpOiBEZWZpbmUuCgkqIGFvdXQtdGljMzAuYyAoTVlfYmZkX2xpbmtfanVzdF9zeW1zKTogRGVmaW5lLgoJKiBiZmQuYyAoYmZkX2xpbmtfanVzdF9zeW1zKTogRGVmaW5lLgoJKiBiaW5hcnkuYyAoYmluYXJ5X2JmZF9saW5rX2p1c3Rfc3ltcyk6IERlZmluZS4KCSogYm91dC5jIChiX291dF9iZmRfbGlua19qdXN0X3N5bXMpOiBEZWZpbmUuCgkqIGNvZmYtcnM2MDAwLmMgKHJzNjAwMGNvZmZfdmVjLCBwbWFjX3hjb2ZmX3ZlYyk6IFVwZGF0ZSBpbml0aWFsaXplci4KCSogY29mZjY0LXJzNjAwMC5jIChyczYwMDBjb2ZmNjRfdmVjLCBhaXg1Y29mZjY0X3ZlYyk6IExpa2V3aXNlLgoJKiBjb2ZmY29kZS5oIChjb2ZmX2JmZF9saW5rX2p1c3Rfc3ltcyk6IERlZmluZS4KCSogZWxmLWJmZC5oIChlbnVtIGVsZl9saW5rX2luZm9fdHlwZSk6IEFkZCBFTEZfSU5GT19UWVBFX0pVU1RfU1lNUy4KCShlbGZfZGlzY2FyZGVkX3NlY3Rpb24pOiBDaGVjayBmb3IgRUxGX0lORk9fVFlQRV9KVVNUX1NZTVMuCgkoX2JmZF9lbGZfbGlua19qdXN0X3N5bXMpOiBEZWNsYXJlLgoJKiBlbGYuYyAoX2JmZF9lbGZfbGlua19qdXN0X3N5bXMpOiBOZXcgZnVuY3Rpb24uCgkqIGVsZi1laC1mcmFtZS5jIChfYmZkX2VsZl9tYXliZV9zdHJpcF9laF9mcmFtZV9oZHIpOiBDaGVjayB0aGF0CglzZWN0aW9ucyBoYXZlbid0IGFscmVhZHkgYmVlbiBkaXNjYXJkZWQgYnkgdGhlIGxpbmtlci4KCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBMaWtld2lzZSBmb3Igc3RhYgoJc2VjdGlvbnMgYW5kIFNFQ19NRVJHRSBzZWN0aW9ucy4KCShlbGZfYmZkX2Rpc2NhcmRfaW5mbyk6IFNpbWlsYXJseSBoZXJlLgoJKiBlbGZ4eC10YXJnZXQuaCAoYmZkX2VsZk5OX2JmZF9saW5rX2p1c3Rfc3ltcyk6IERlZmluZS4KCSogaTM4Nm1zZG9zLmMgKG1zZG9zX2JmZF9saW5rX2p1c3Rfc3ltcyk6IERlZmluZS4KCSogaTM4Nm9zOWsuYyAob3M5a19iZmRfbGlua19qdXN0X3N5bXMpOiBEZWZpbmUuCgkqIGllZWUuYyAoaWVlZV9iZmRfbGlua19qdXN0X3N5bXMpOiBEZWZpbmUuCgkqIGloZXguYyAoaWhleF9iZmRfbGlua19qdXN0X3N5bXMpOiBEZWZpbmUuCgkqIGxpYmJmZC1pbi5oIChfYmZkX25vbGlua19iZmRfbGlua19qdXN0X3N5bXMpOiBEZWZpbmUuCgkoX2JmZF9nZW5lcmljX2xpbmtfanVzdF9zeW1zKTogRGVjbGFyZS4KCSogbGliZWNvZmYuaCAoX2JmZF9lY29mZl9iZmRfbGlua19qdXN0X3N5bXMpOiBEZWZpbmUuCgkqIGxpbmtlci5jIChfYmZkX2dlbmVyaWNfbGlua19qdXN0X3N5bXMpOiBOZXcgZnVuY3Rpb24uCgkqIG1tby5jIChtbW9fYmZkX2xpbmtfanVzdF9zeW1zKTogRGVmaW5lLgoJKiBubG0tdGFyZ2V0LmggKG5sbV9iZmRfbGlua19qdXN0X3N5bXMpOiBEZWZpbmUuCgkqIG9hc3lzLmMgKG9hc3lzX2JmZF9saW5rX2p1c3Rfc3ltcyk6IERlZmluZS4KCSogcHBjYm9vdC5jIChwcGNib290X2JmZF9saW5rX2p1c3Rfc3ltcyk6IERlZmluZS4KCSogc29tLmMgKHNvbV9iZmRfbGlua19qdXN0X3N5bXMpOiBEZWZpbmUuCgkqIHNyZWMuYyAoc3JlY19iZmRfbGlua19qdXN0X3N5bXMpOiBEZWZpbmUuCgkqIHRhcmdldHMuYyAoc3RydWN0IGJmZF90YXJnZXQpOiBBZGQgX2JmZF9saW5rX2p1c3Rfc3ltcy4KCShCRkRfSlVNUF9UQUJMRV9MSU5LKTogQW5kIGhlcmUuCgkqIHRla2hleC5jICh0ZWtoZXhfYmZkX2xpbmtfanVzdF9zeW1zKTogRGVmaW5lLgoJKiB2ZXJzYWRvcy5jICh2ZXJzYWRvc19iZmRfbGlua19qdXN0X3N5bXMpOiBEZWZpbmUuCgkqIHZtcy5jICh2bXNfYmZkX2xpbmtfanVzdF9zeW1zKTogRGVmaW5lLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMi0wNS0xNSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZjMyLW1pcHMuYzogUmVtb3ZlIHN1cGVyZmx1b3VzIGRlZmluaXRpb25zIGNvcGllZCBmcm9tCgllbGZ4eC1taXBzLmMuCgkoYmZkX2VsZjMyX2JpZ21pcHNfdmVjLGJmZF9lbGYzMl9saXR0bGVtaXBzX3ZlYyk6IFVzZSB0aGUKCVNHSWlzaCB2ZWN0b3JzIHRvIGNoZWNrIHRoZSBzcGVjaWFsIGNhc2UuCgkobWlwc19lbGZfaGkxNl9yZWxvYyk6IEZpeCBjb21tZW50LgoJKG1pcHNfZWxmX2dvdDE2X3JlbG9jKTogTGlrZXdpc2UuCgkoX2JmZF9taXBzX2VsZjMyX2dwcmVsMTZfcmVsb2MpOiBMaWtld2lzZS4KCShlbGZfcmVsb2NfbWFwKTogQ29kZSBjbGVhbnVwLgoJKG1pcHNfcmVsb2NfbWFwKTogQWRkIGNvbW1lbnQuCgkoYmZkX2VsZjIzX2JmZF9yZWxvY190eXBlX2xvb2t1cCk6IENvZGUgY2xlYW51cC4KCShtaXBzX2VsZjMyX3J0eXBlX3RvX2hvd3RvKTogTGlrZXdpc2UuCgkobWlwc19lbGYzMl9kaXNjYXJkX2luZm8pOiBMaWtld2lzZS4KCShlbGYzMl9taXBzX2lyaXhfY29tcGF0KTogSW52ZXJ0IGxvZ2ljOiBPbmx5IFNHSWlzaCB2ZWN0b3JzCglsZWFkIHRvIElSSVggY29tcGF0aWJpbGl0eSBub3cuCgoyMDAyLTA1LTE1ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmeHgtbWlwcy5jOiBDYWxsIGl0IElSSVgsIG5vdCBJcml4IGluIGNvbW1lbnRzLgoKMjAwMi0wNS0xMyAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZy5iZmQgKHNobGUtKi1uZXRic2RlbGYqKTogQWRkIHRhcmdldCB3aGljaCBpbmNsdWRlcwoJc2g2NCBzdXBwb3J0LgoKMjAwMi0wNS0xMyAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoKCSogY29uZmlndXJlLmluOiBSZXZlcnQgMjAwMi0wNC0wNy4gIEluc3RlYWQsIGF1dG8tY29uZmlndXJlCglIQVZFX1NUX0NfSU1QTC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjb25maWcuaW46IFJlZ2VuZXJhdGUuCgkqIHJzNjAwMC1jb3JlLmMgKENORVdfSU1QTCk6IEd1YXJkIHVzZSBvZiBjX2ltcGwgd2l0aCBIQVZFX1NUX0NfSU1QTAoJb3IgQUlYXzVfQ09SRS4KCjIwMDItMDUtMTEgIEZlZGVyaWNvIEcuIFNjaHdpbmR0IDxmZ3NjaEBvbGltcG8uY29tLmJyPgoKCSogY29uZmlndXJlLmluIChzcGFyYyotKi1vcGVuYnNkKik6IFN1cHBvcnQgc3BhcmM2NC1vcGVuYnNkCgljb3JlZmlsZXMgYXMgd2VsbC4yCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMDUtMTMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbSAoaW5zdGFsbC1kYXRhLWxvY2FsKTogSW5zdGFsbCBoZWFkZXJzIHRvCgkkKGV4ZWNfcHJlZml4KS9pbmNsdWRlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDUtMTEgIFJhbGYgQ29yc2VwaXVzICA8Y29yc2VwaXVAZmF3LnVuaS11bG0uZGU+CgkgICAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBjb2ZmLXNoLmMgKHNoX3JlbG9jX21hcCk6IE1hcCB0byBSX1NIX0lNTTMyIGZvciBub24tUEUuICBEb24ndAoJbWFwIEJGRF9SRUxPQ19SVkEuCgoyMDAyLTA1LTExICBGZWRlcmljbyBHLiBTY2h3aW5kdCA8ZmdzY2hAb2xpbXBvLmNvbS5icj4KCgkqIGNvbmZpZy5iZmQgKGFscGhhKi0qLW9wZW5ic2QqLCBzcGFyYzY0Ki0qLW9wZW5ic2QqLAoJaHBwYSotKi1vcGVuYnNkKik6IE5ldyB0YXJnZXRzLgoJKiBjb25maWd1cmUuaW4gKGFscGhhKi0qLW9wZW5ic2QqKTogU2V0IENPUkVGSUxFLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTA1LTEwICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogY29mZjY0LXJzNjAwMC5jICh4Y29mZjY0X3JlbG9jX3R5cGVfYnIpOiBOZXcgZnVuY3Rpb24gZm9yCgl4Y29mZjY0X3BwY19yZWxvY2F0ZV9zZWN0aW9uLgoJKiBjb2ZmLXJzNjAwMC5jIDogRXh0ZXJuIGNvbW1vbiB4Y29mZl9yZWxvY190eXBlIGZ1bmN0aW9ucy4KCSogbGlieGNvZmYuaDogQ29tbW9uIHhjb2ZmX3JlbG9jX3R5cGUgZnVuY3Rpb24gZGVjbGFyYXRpb24uCgoyMDAyLTA1LTEwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogUmVtb3ZlIG92ZXJmbG93IGNoZWNrcwoJYWRkZWQgaW4gMjAwMi0wNS0wOSBjb21taXQuCgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfc2l6ZV9zdHVicyk6IFJldmVydCBwYXJ0IG9mIDIwMDItMDUtMDQsCglkb24ndCBsb29rIGZvciBzdHVicyBvbiBhbGwgdW5kZWZpbmVkIHN5bXMuCgoyMDAyLTA1LTA5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKFJBX1JFR0lTVEVSX01BU0ssIFJBX1JFR0lTVEVSX1NISUZUKTogRGVsZXRlLgoJKHBwYzY0X2VsZl9ob3d0b19yYXcgPFJfUFBDNjRfUkVMQVRJVkU+KTogTm90IHBjX3JlbGF0aXZlIG9yCglwY3JlbF9vZmZzZXQuCgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9ob3d0b190YWJsZSk6IENvbW1lbnRzLgoJKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBIYW5kbGUgbW9yZSByZWxvY3MgZm9yIHJlbG9jYXRhYmxlCglsaW5raW5nIGFuZCBhZ2FpbnN0IFNFQ19NRVJHRSBzZWN0aW9ucy4KCjIwMDItMDUtMDggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9jcmVhdGVfZ290KTogTmV3IGZ1bmN0aW9uLgoJKHBwY19lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBDYWxsIHBwY19lbGZfY3JlYXRlX2dvdCBiZWZvcmUKCV9iZmRfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zLiAgQ29ycmVjdCAucGx0IGZsYWdzLgoJKHBwY19lbGZfY2hlY2tfcmVsb2NzKTogVXNlIHBwY19lbGZfY3JlYXRlX2dvdCBpbiBwbGFjZSBvZgoJX2JmZF9lbGZfY3JlYXRlX2dvdF9zZWN0aW9uLgoKMjAwMi0wNS0wNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1iZmQuaCAoc3RydWN0IGVsZl9iYWNrZW5kX2RhdGEpOiBBZGQgcmVsYV9ub3JtYWwuCgkqIGVsZnh4LXRhcmdldC5oIChlbGZfYmFja2VuZF9yZWxhX25vcm1hbCk6IERlZmluZS4KCShlbGZOTl9iZWQpOiBJbml0IHJlbGFfbm9ybWFsLgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2lucHV0X2JmZCA8ZW1pdF9yZWxvY3M+KTogSGFuZGxlIGFkanVzdG1lbnQKCWZvciBzZWN0aW9uIHN5bWJvbHMgaGVyZSBpZiByZWxhX25vcm1hbC4gIFNpbXBsaWZ5IGFicyBzZWN0aW9uIHRlc3QuCgkqIGVsZi1tMTAyMDAuYyAobW4xMDIwMF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IElmIHJlbG9jYXRhYmxlLAoJcmV0dXJuIGltbWVkaWF0ZWx5LiAgUmVtb3ZlIGNvZGUgaGFuZGxpbmcgcmVsb2NhdGFibGUgbGlua2luZy4KCSogZWxmLW0xMDMwMC5jIChtbjEwMzAwX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWZyMzAuYyAoZnIzMF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzcwLmMgKGkzNzBfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItaTg2MC5jIChlbGYzMl9pODYwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jIChlbGZfbTY4a19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLW1jb3JlLmMgKG1jb3JlX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLW9wZW5yaXNjLmMgKG9wZW5yaXNjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItczM5MC5jIChlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXhzdG9ybXkxNi5jICh4c3Rvcm15MTZfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYyAoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UgI2lmbmRlZiBVU0VfUkVMLgoJKiBlbGYzMi1tMzJyLmMgKG0zMnJfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmLW0xMDIwMC5jIChlbGZfYmFja2VuZF9yZWxhX25vcm1hbCk6IERlZmluZS4KCSogZWxmLW0xMDMwMC5jIChlbGZfYmFja2VuZF9yZWxhX25vcm1hbCk6IERlZmluZS4KCSogZWxmMzItZnIzMC5jIChlbGZfYmFja2VuZF9yZWxhX25vcm1hbCk6IERlZmluZS4KCSogZWxmMzItaTM3MC5jIChlbGZfYmFja2VuZF9yZWxhX25vcm1hbCk6IERlZmluZS4KCSogZWxmMzItaTg2MC5jIChlbGZfYmFja2VuZF9yZWxhX25vcm1hbCk6IERlZmluZS4KCSogZWxmMzItbTY4ay5jIChlbGZfYmFja2VuZF9yZWxhX25vcm1hbCk6IERlZmluZS4KCSogZWxmMzItbWNvcmUuYyAoZWxmX2JhY2tlbmRfcmVsYV9ub3JtYWwpOiBEZWZpbmUuCgkqIGVsZjMyLW9wZW5yaXNjLmMgKGVsZl9iYWNrZW5kX3JlbGFfbm9ybWFsKTogRGVmaW5lLgoJKiBlbGYzMi1wcGMuYyAoZWxmX2JhY2tlbmRfcmVsYV9ub3JtYWwpOiBEZWZpbmUuCgkqIGVsZjMyLXMzOTAuYyAoZWxmX2JhY2tlbmRfcmVsYV9ub3JtYWwpOiBEZWZpbmUuCgkqIGVsZjMyLXhzdG9ybXkxNi5jIChlbGZfYmFja2VuZF9yZWxhX25vcm1hbCk6IERlZmluZS4KCSogZWxmNjQtcHBjLmMgKGVsZl9iYWNrZW5kX3JlbGFfbm9ybWFsKTogRGVmaW5lLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9iYWNrZW5kX3JlbGFfbm9ybWFsKTogRGVmaW5lLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmX2JhY2tlbmRfcmVsYV9ub3JtYWwpOiBEZWZpbmUuCgkqIGVsZnh4LWlhNjQuYyAoZWxmX2JhY2tlbmRfcmVsYV9ub3JtYWwpOiBEZWZpbmUuCgkqIGVsZjMyLWFybS5oIChlbGZfYmFja2VuZF9yZWxhX25vcm1hbCk6IERlZmluZSAjaWZuZGVmIFVTRV9SRUwuCgkqIGVsZjMyLW0zMnIuYyAoZWxmX2JhY2tlbmRfcmVsYV9ub3JtYWwpOiBMaWtld2lzZS4KCjIwMDItMDUtMDYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9maW5hbF9saW5rX3JlbG9jYXRlKTogQ29udmVydAoJJ3JlbG9jX3NpZ25lZF9tYXgnIGFuZCAncmVsb2Nfc2lnbmVkX21pbicgaW50byBoYWxmLXdvcmQgb2Zmc2V0cy4KCjIwMDItMDUtMDYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2lucHV0X2JmZCA8ZW1pdF9yZWxvY3M+KTogQWRqdXN0IHJfb2Zmc2V0Cgl3aGVuIG5vdCByZWxvY2F0YWJsZS4gIEZpeCByZWxvY19lbWl0dGVyIGNhbGwgZm9yIEsmUi4KCjIwMDItMDUtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBSZWluc3RhdGUgY29kZQoJcmVsb2FkaW5nIGxvY2FsIHN5bSBhZGRlbmQgbWlzdGFrZW5seSByZW1vdmVkIGluIDIwMDItMDUtMDEgY2hhbmdlLgoKCSogZHdhcmYyLmMgKHN0cnVjdCBsaW5lX2hlYWQpOiBNYWtlIHByb2xvZ3VlX2xlbmd0aCBhIGJmZF92bWEuCgkocmVhZF9hYmJyZXZzKTogQ2hhbmdlICJvZmZzZXQiIHBhcmFtIHRvIGJmZF92bWEuCgkocGFyc2VfY29tcF91bml0KTogQ2hhbmdlICJ2ZXJzaW9uIiBhbmQgYWRkcl9zaXplIHRvIHVuc2lnbmVkIGludHMuCglDaGFuZ2UgImFiYnJldl9vZmZzZXQiIHRvIGJmZF92bWEuCgkocmVhZF9pbmRpcmVjdF9zdHJpbmcpOiBVc2UgY29ycmVjdCBjb252ZXJzaW9uIGNoYXJzIGluIGVycm9yCgltZXNzYWdlIGZvcm1hdCBzdHJpbmcsIGNhc3QgYmZkX3ZtYSdzIHRvIHVuc2lnbmVkIGxvbmcuCgkocmVhZF9hYmJyZXZzKTogTGlrZXdpc2UuCgkocmVhZF9hdHRyaWJ1dGVfdmFsdWUpOiBMaWtld2lzZS4KCShkZWNvZGVfbGluZV9pbmZvKTogTGlrZXdpc2UuCgkoc2Nhbl91bml0X2Zvcl9mdW5jdGlvbnMpOiBMaWtld2lzZS4KCShwYXJzZV9jb21wX3VuaXQpOiBMaWtld2lzZS4KCjIwMDItMDUtMDQgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBjb2Zmc3dhcC5oIChjb2ZmX3N3YXBfcmVsb2NfaW4pOiBSZW1vdmUgWENPRkYgc3VwcG9ydC4KCShjb2ZmX3N3YXBfcmVsb2Nfb3V0KTogU2FtZS4KCSogY29mZi1yczYwMDAuYzogKHhjb2ZmX3N3YXBfcmVsb2NfaW4pOiBNb3ZlZCBmcm9tIGNvZmZzd2FwLmguCgkoeGNvZmZfc3dhcF9yZWxvY19vdXQpOiBTYW1lLgoJKHhjb2ZmX3J0eXBlMmhvd3RvKTogUmVuYW1lZCBmcm9tIF9iZmRfeGNvZmZfcnR5cGUyaG93dG8uIFNwZWNpYWwKCWNhc2Ugc29tZSAxNiBiaXQgcmVsb2NzLiBBZGQgcmVsb2MgdmFsdWUgdG8gb3V0cHV0LgoJKHhjb2ZmX2hvd3RvX3RhYmxlKTogUmVtb3ZlIDY0IGJpdCBSX1BPUywgYWRkIDE2IGJpdAoJUl9SQlIuIEltcHJvdmUgbmFtZXMuCgkoX2JmZF94Y29mZl9yZWxvY190eXBlX2xvb2t1cCk6IEFkanVzdCBmb3IgcmVtb3ZhbCBvZiA2NCBiaXQgUl9QT1MuCgkoYmZkX3hjb2ZmX2JhY2tlbmRfZGF0YSk6IFVwZGF0ZSB3aXRoIG5ldyByZWxvYyBzd2FwIG5hbWVzLgoJKGJmZF9wbWFjX3hjb2ZmX2JhY2tlbmRfZGF0YSkgOiBTYW1lLgoJKiBjb2ZmNjQtcnM2MDAwLmM6ICh4Y29mZjY0X3N3YXBfcmVsb2NfaW4pOiBNb3ZlZCBmcm9tIGNvZmZzd2FwLmguCgkoeGNvZmY2NF9zd2FwX3JlbG9jX291dCk6IFNhbWUuCgkoeGNvZmY2NF9ydHlwZTJob3d0byk6IFNwZWNpYWwgY2FzZSBzb21lIDE2IGJpdCByZWxvY3MgYW5kIDMyIGJpdAoJUl9QT1MuIEFkZCByZWxvYyB2YWx1ZSB0byBvdXRwdXQuCgkoeGNvZmY2NF9ob3d0b190YWJsZSk6IE1vdmUgNjQgYml0IFJfUE9TIHRvIGZpcnN0IGVudHJ5LiAgQWRkIDE2CgliaXQgUl9SQlIuIEltcHJvdmUgbmFtZXMsIG1hc2tzLgoJKHhjb2ZmNjRfcmVsb2NfdHlwZV9sb29rdXApOiBBZGp1c3QgZm9yIG1vdmUgb2YgNjQgYml0IFJfUE9TLgoJKGJmZF94Y29mZl9iYWNrZW5kX2RhdGEpOiBVcGRhdGUgd2l0aCBuZXcgcmVsb2Mgc3dhcCBuYW1lcy4KCShiZmRfeGNvZmZfYWl4NV9iYWNrZW5kX2RhdGEpIDogU2FtZS4KCjIwMDItMDUtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1ocHBhLmMgKHN0cnVjdCBlbGYzMl9ocHBhX2xpbmtfaGFzaF90YWJsZSk6IEFkZAoJYmZkX2NvdW50IHRvcF9pbmRleCwgaW5wdXRfbGlzdCwgYWxsX2xvY2FsX3N5bXMuCgkoZWxmMzJfaHBwYV9zZXR1cF9zZWN0aW9uX2xpc3RzKTogTmV3IGZ1bmN0aW9uLCBzcGxpdCBmcm9tCgllbGYzMl9ocHBhX3NpemVfc3R1YnMuCgkoZWxmMzJfaHBwYV9uZXh0X2lucHV0X3NlY3Rpb24pOiBMaWtld2lzZS4KCShncm91cF9zZWN0aW9ucyk6IExpa2V3aXNlLgoJKGdldF9sb2NhbF9zeW1zKTogTGlrZXdpc2UuCgkoZWxmMzJfaHBwYV9zaXplX3N0dWJzKTogQWRqdXN0IGZvciBzcGxpdCBvdXQgZnVuY3Rpb25zLiAgTG9vayBmb3IKCXN0dWJzIG9uIHVuZGVmaW5lZCBzeW1zIHRvby4KCShlbGYzMl9ocHBhX3NldF9ncCk6IFVzZSBiZmRfbGlua19oYXNoKiBpbnN0ZWFkIG9mIGVsZl9saW5rX2hhc2gqLgoJT25seSBhY2Nlc3MgaHRhYiBlbGYgZmllbGRzIHdoZW4gd2UgaGF2ZSBhbiBlbGYgaGFzaCB0YWJsZS4KCSogZWxmMzItaHBwYS5oIChlbGYzMl9ocHBhX3NldHVwX3NlY3Rpb25fbGlzdHMpOiBEZWNsYXJlLgoJKGVsZjMyX2hwcGFfbmV4dF9pbnB1dF9zZWN0aW9uKTogRGVjbGFyZS4KCjIwMDItMDUtMDQgIEJvYiBCeXJuZXMgIDxieXJuZXNAY3VybC5jb20+CgoJKiBvcG5jbHMuYyAoX2JmZF9uZXdfYmZkX2NvbnRhaW5lZF9pbik6IENoZWNrIHJldHVybiB2YWx1ZSBvZgoJX2JmZF9uZXdfYmZkLgoKMjAwMi0wNS0wMyAgSC5KLiBMdSAgKGhqbEBnbnUub3JnKQoKCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9saW5rX2hhc2hfZW50cnkpOiBBZGQgZm9yY2VkX2xvY2FsLgoJKG1pcHNfZWxmX2xpbmtfaGFzaF9uZXdmdW5jKTogSW5pdGlhbGl6ZSBmb3JjZWRfbG9jYWwgdG8gZmFsc2UuCgkobWlwc19lbGZfcmVjb3JkX2dsb2JhbF9nb3Rfc3ltYm9sKTogQ2FsbCBfYmZkX21pcHNfZWxmX2hpZGVfc3ltYm9sCgl0byBoaWRlIGEgZ2xvYmFsIHN5bWJvbC4KCShfYmZkX21pcHNfZWxmX2hpZGVfc3ltYm9sKTogUmV0dXJuIGlmIGZvcmNlZF9sb2NhbCBpcyB0cnVlLiBTZXQKCWZvcmNlZF9sb2NhbCB0byB0cnVlLgoKMjAwMi0wNS0wMiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pOiBGb3JjZSByZWxhdGl2ZSByZWxvY3MKCXZzIFNITl9VTkRFRiB0byB6ZXJvLgoKMjAwMi0wNS0wMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfaG93dG9fcmF3IDxSX1BQQzY0X1NFQ1RPRkY+KTogQ2hhbmdlIHRvIGEKCTE2IGJpdCByZWxvYy4KCTxSX1BQQzY0X1NFQ1RPRkZfRFM+OiBMaWtld2lzZS4KCShwcGM2NF9lbGZfcmVsb2NfdHlwZV9sb29rdXApOiBNYXAgZnJvbSBCRkRfUkVMT0NfMTZfQkFTRVJFTCB0bwoJU0VDVE9GRiByZWxvYy4KCSogZWxmMzItcHBjLmMgKHBwY19lbGZfaG93dG9fcmF3IDxSX1BQQ19TRUNUT0ZGPik6IENvcnJlY3QuCgkocHBjX2VsZl9yZWxvY190eXBlX2xvb2t1cCk6IE1hcCBmcm9tIEJGRF9SRUxPQ18xNl9CQVNFUkVMIHRvCglTRUNUT0ZGIHJlbG9jLgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9hZGRyMTZfaGFfcmVsb2MpOiBEZWxldGUuCgkocHBjNjRfZWxmX2hhX3JlbG9jKTogTmV3IGZ1bmN0aW9uLgoJKHBwYzY0X2VsZl9icnRha2VuX3JlbG9jKTogTmV3IGZ1bmN0aW9uLgoJKHBwYzY0X2VsZl9zZWN0b2ZmX3JlbG9jKTogTmV3IGZ1bmN0aW9uLgoJKHBwYzY0X2VsZl9zZWN0b2ZmX2hhX3JlbG9jKTogTmV3IGZ1bmN0aW9uLgoJKHBwYzY0X2VsZl90b2NfcmVsb2MpOiBOZXcgZnVuY3Rpb24uCgkocHBjNjRfZWxmX3RvY19oYV9yZWxvYyk6IE5ldyBmdW5jdGlvbi4KCShwcGM2NF9lbGZfdG9jNjRfcmVsb2MpOiBOZXcgZnVuY3Rpb24uCgkocHBjNjRfZWxmX3VuaGFuZGxlZF9yZWxvYyk6IE5ldyBmdW5jdGlvbi4KCShwcGM2NF9lbGZfaG93dG9fcmF3KTogVXNlIHRoZSBhYm92ZS4KCTxSX1BQQzY0X1JFTEFUSVZFPjogTWFyayBwY19yZWxhdGl2ZSwgcGNyZWxfb2Zmc2V0LgoJPFJfUFBDNjRfU0VDVE9GRj46IE5vdCBwY19yZWxhdGl2ZSBvciBwY3JlbF9vZmZzZXQuICBGaXggZHN0X21hc2suCgk8Ul9QUEM2NF9TRUNUT0ZGX0RTPjogTGlrZXdpc2UuCgkoSVNfQUJTT0xVVEVfUkVMT0MpOiBVcGRhdGUuCgkoc3RydWN0IHBwY19saW5rX2hhc2hfdGFibGUpOiBBZGQgaGF2ZV91bmRlZndlYWsuCgkocHBjNjRfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBJbml0LgoJKGZ1bmNfZGVzY19hZGp1c3QpOiBTZXQgaGF2ZV91bmRlZndlYWsuCgkocHBjNjRfZWxmX2Z1bmNfZGVzY19hZGp1c3QpOiBDYWxsIGZ1bmNfZGVzY19hZGp1c3QgZWFybGllci4gIE9ubHkKCWFkZCB0aGUgLnNmcHIgYmxyIHdoZW4gaGF2ZV91bmRlZndlYWsuCgkocHBjNjRfZWxmX3NldHVwX3NlY3Rpb25fbGlzdHMpOiBDaGVjayBoYXNoIHRhYmxlIGZsYXZvdXIuCgkocHBjNjRfZWxmX25leHRfaW5wdXRfc2VjdGlvbik6IE1vdmUgb3V0cHV0X3NlY3Rpb24tPm93bmVyIHRlc3QgdG8KCXBwYzY0ZWxmLmVtLgoJKHBwYzY0X2VsZl9zZXRfdG9jKTogUmVuYW1lIHRvIHBwYzY0X2VsZl90b2MsIHJlbW92ZSBpbmZvIHBhcmFtCglhbmQgcmVsb2NhdGFibGUgdGVzdC4gIFJldHVybiBUT0NzdGFydCBhbmQgZG9uJ3Qgc2V0IGVsZl9ncC4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IENvcnJlY3QgQlJUQUtFTi9CUk5UQUtFTiBicmFuY2gKCW9mZnNldCBjYWxjdWxhdGlvbi4gIEFkZCBhc3NlcnQgb24gd2VhayBzeW0gYnJhbmNoIHR3ZWFrcy4KCSogZWxmNjQtcHBjLmggKHBwYzY0X2VsZl9zZXRfdG9jKTogRGVsZXRlLgoJKHBwYzY0X2VsZl90b2MpOiBEZWNsYXJlLgoJKHBwYzY0X2VsZl9uZXh0X2lucHV0X3NlY3Rpb24pOiBVcGRhdGUuCgoyMDAyLTA1LTAxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogc3ltcy5jIChfYmZkX3N0YWJfc2VjdGlvbl9maW5kX25lYXJlc3RfbGluZSk6IERvbid0IGJvbWIgb24gTlVMTAoJZmlsZV9uYW1lLgoKMjAwMi0wNS0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChDUk9SXzE1MTUxNSwgQ1JPUl8zMTMxMzEpOiBEZWZpbmUuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBVc2UgdGhlbS4gIERvbid0IGxvb2sgZm9yIHBsdCBjYWxscwoJb24gUl9QUEM2NF9BRERSMjQgcmVsb2NzLiAgUmVxdWlyZSBhIG5vcCBvciBubyBsaW5rIHJlZyBvbiBwbHQKCWNhbGwgYnJhbmNoZXMuICBDb3JyZWN0IHVuZGVmaW5lZCB3ZWFrIGRlc3RpbmF0aW9uLgoJKHBwYzY0X2VsZl9mdW5jX2Rlc2NfYWRqdXN0KTogQWx3YXlzIGNyZWF0ZSBhdCBsZWFzdCBvbmUgYmxyIGluCgkuc2ZwciwgYW5kIGNvcnJlY3QgY2FzZSB3aGVyZSBlaXRoZXIgb25seSBzYXZlZiogb3IgcmVzdGYqIGlzCgluZWVkZWQuCgoJTG9uZyBicmFuY2ggc3R1YnMsIG11bHRpcGxlIHN0dWIgc2VjdGlvbnMuCgkqIGVsZjY0LXBwYy5oIChwcGM2NF9lbGZfc2V0dXBfc2VjdGlvbl9saXN0cyk6IERlY2xhcmUuCgkocHBjNjRfZWxmX25leHRfaW5wdXRfc2VjdGlvbik6IERlY2xhcmUuCgkqIGVsZjY0LXBwYy5jOiBNb3ZlIGxpbmtlci1vbmx5IHByb3RvdHlwZXMuCgkoU1RVQl9TVUZGSVgpOiBEZWZpbmUuCgkoZW51bSBwcGNfc3R1Yl90eXBlKTogTmV3LgoJKHN0cnVjdCBwcGNfc3R1Yl9oYXNoX2VudHJ5KTogTmV3LgoJKHN0cnVjdCBwcGNfYnJhbmNoX2hhc2hfZW50cnkpOiBOZXcuCgkoc3RydWN0IHBwY19saW5rX2hhc2hfZW50cnkpOiBBZGQgc3R1Yl9jYWNoZSwgb2guCgkoc3RydWN0IHBwY19saW5rX2hhc2hfdGFibGUpOiBBZGQgc3R1Yl9oYXNoX3RhYmxlIGV0Yy4gIFJlbW92ZQoJc3N0dWIuICBBZGQgc2JybHQsIHNyZWxicmx0LCBoYXNfMTRiaXRfYnJhbmNoLCBzdHViX2l0ZXJhdGlvbi4KCVJlbmFtZSBwbHRfb3ZlcmZsb3cgdG8gc3R1Yl9lcnJvci4KCShwcGNfc3R1Yl9oYXNoX2xvb2t1cCk6IERlZmluZS4KCShwcGNfYnJhbmNoX2hhc2hfbG9va3VwKTogRGVmaW5lLgoJKHN0dWJfaGFzaF9uZXdmdW5jKTogTmV3IGZ1bmN0aW9uLgoJKGJyYW5jaF9oYXNoX25ld2Z1bmMpOiBOZXcgZnVuY3Rpb24uCgkobGlua19oYXNoX25ld2Z1bmMpOiBJbml0IG5ldyBmaWVsZHMuCgkocHBjNjRfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCShwcGM2NF9lbGZfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBOZXcgZnVuY3Rpb24uCgkocHBjX3N0dWJfbmFtZSk6IE5ldyBmdW5jdGlvbi4KCShwcGNfZ2V0X3N0dWJfZW50cnkpOiBOZXcgZnVuY3Rpb24uCgkocHBjX2FkZF9zdHViKTogTmV3IGZ1bmN0aW9uLgoJKGNyZWF0ZV9saW5rYWdlX3NlY3Rpb25zKTogVXNlIGJmZF9tYWtlX3NlY3Rpb25fYW55d2F5LiAgQ3JlYXRlCgkuYnJhbmNoX2x0IGFuZCAucmVsYS5icmFuY2hfbHQgc2VjdGlvbnMuICBEb24ndCBjcmVhdGUgLnN0dWIuCgkocHBjNjRfZWxmX2NoZWNrX3JlbG9jcyk6IFNldCBoYXNfMTRiaXRfYnJhbmNoIG9uIFJfUFBDNjRfUkVMMTQqLAoJYW5kIHNldCB1cCBmb3IgcGx0IGNhbGwgc3R1YnMuICBMaW5rIGZ1bmMgYW5kIGZ1bmMgZGVzYyBzeW1zLgoJKHBwYzY0X2VsZl9nY19zd2VlcF9ob29rKTogSGFuZGxlIFJFTDE0KiBhcyBwZXIgUkVMMjQuCgkoZnVuY19kZXNjX2FkanVzdCk6IEF2b2lkIGhhc2ggbG9va3VwIHdoZW4gZnVuYyBkZXNjIHN5bSBhdmFpbGFibGUKCXZpYSBzaG9ydGN1dCwgYW5kIHNldCBsaW5rcyB3aGVuIHByb2Nlc3NpbmcuCgkocHBjNjRfZWxmX2hpZGVfc3ltYm9sKTogTGlrZXdpc2UuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogRG9uJ3QgYWxsb2NhdGUgc3R1YiBzZWN0aW9uIGhlcmUuCgkocHBjNjRfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IEhhbmRsZSBzYnJsdCBhbmQgc3JlbGJybHQuCglSZW1vdmUgc3N0dWIgY29kZS4KCShwcGNfdHlwZV9vZl9zdHViKTogTmV3IGZ1bmN0aW9uLgoJKGJ1aWxkX29uZV9zdHViKTogRGVsZXRlLgoJKHBwY19idWlsZF9vbmVfc3R1Yik6IE5ldyBmdW5jdGlvbi4KCShwcGNfc2l6ZV9vbmVfc3R1Yik6IE5ldyBmdW5jdGlvbi4KCShwcGM2NF9lbGZfc2V0dXBfc2VjdGlvbl9saXN0cyk6IE5ldyBmdW5jdGlvbi4KCShwcGM2NF9lbGZfbmV4dF9pbnB1dF9zZWN0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKGdyb3VwX3NlY3Rpb25zKTogTmV3IGZ1bmN0aW9uLgoJKGdldF9sb2NhbF9zeW1zKTogTmV3IGZ1bmN0aW9uLgoJKHBwYzY0X2VsZl9zaXplX3N0dWJzKTogUmV3cml0ZS4KCShwcGM2NF9lbGZfYnVpbGRfc3R1YnMpOiBSZXdyaXRlLgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTG9vayB1cCBzdHViIGVudHJ5IGZvciBSRUwyNAoJcmVsb2NzLiAgRG9uJ3QgcHJvcGFnYXRlIFJFTDE0KiB0byBkeW5hbWljIG9iamVjdHMuICBMb29rIGZvciBsb25nCglicmFuY2ggc3R1YnMgaWYgUkVMMTQqIG9yIFJFTDI0IHJlbG9jcyB3b24ndCByZWFjaC4KCShiZmRfZWxmNjRfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogRGVmaW5lLgoKMjAwMi0wNC0zMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy5iZmQ6IEFkZCBzdXBwb3J0IGZvciBwb3dlcnBjLSotd2luZGlzcy4KCjIwMDItMDQtMzAgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiB4Y29mZmxpbmsuYyAoeGNvZmZfbGlua19hZGRfc3ltYm9scyk6IEFsd2F5cyBjb3B5IHVuZGVmIENfRVhUCglzeW1ib2wgbmFtZXMgaW50byB0aGUgaGFzaCB0YWJsZS4KCjIwMDItMDQtMjggIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBjb2ZmLXJzNjAwMC5jICh4Y29mZl9jYWxjdWxhdGVfcmVsb2NhdGlvbikgOiBGdW5jdGlvbiB0YWJsZSBmb3IKCWNhbHVsYXRpbmcgcmVsb2NhdGlvbnMuCgkoeGNvZmZfY29tcGxhaW5fb3ZlcmZsb3cpIDogRnVuY3Rpb24gdGFibGUgZm9yIHJlbG9jYXRpb24gZXJyb3JzLgoJKHhjb2ZmX3BwY19yZWxvY2F0ZV9zZWN0aW9uKTogVXNlIHJlbG9jYXRpb24gYW5kIGNvbXBsYWluIGZ1bmN0aW9uCgl0YWJsZXMuCgkoeGNvZmZfY29tcGxhaW5fb3ZlcmZsb3dfdW5zaWduZWRfZnVuYyk6IE5ldyBjb21wbGFpbiBmdW5jdGlvbi4KCSh4Y29mZl9jb21wbGFpbl9vdmVyZmxvd19zaWduZWRfZnVuYyk6IFNhbWUuCgkoeGNvZmZfY29tcGxhaW5fb3ZlcmZsb3dfYml0ZmllbGRfZnVuYyk6IFNhbWUuCgkoeGNvZmZfY29tcGxhaW5fb3ZlcmZsb3dfZG9udF9mdW5jKTogU2FtZS4KCSh4Y29mZl9yZWxvY190eXBlX2NyZWwpOiBOZXcgcmVjb3QgZnVuY3Rpb24uCgkoeGNvZmZfcmVsb2NfdHlwZV9icik6IFNhbWUuCgkoeGNvZmZfcmVsb2NfdHlwZV9iYSk6IFNhbWUuCgkoeGNvZmZfcmVsb2NfdHlwZV90b2MpOiBTYW1lLgoJKHhjb2ZmX3JlbG9jX3R5cGVfcmVsKTogU2FtZS4KCSh4Y29mZl9yZWxvY190eXBlX25lZyk6IFNhbWUuCgkoeGNvZmZfcmVsb2NfdHlwZV9wb3MpOiBTYW1lLgoJKHhjb2ZmX3JlbG9jX3R5cGVfZmFpbCk6IFNhbWUuCgkoeGNvZmZfcmVsb2NfdHlwZV9ub29wKTogU2FtZS4KCSogbGlieGNvZmYuaCA6IERlY2xhcmUgY29tbW9uIHBhcnRzIGZvciB4Y29mZjY0LgoJKiBjb2ZmNjQtcnM2MDAwLmMgKHhjb2ZmNjRfcHBjX3JlbG9jYXRlX3NlY3Rpb24pOiBVc2UgcmVsb2NhdGlvbgoJYW5kIGNvbXBsYWluIGZ1bmN0aW9uIHRhYmxlcy4KCjIwMDItMDQtMjggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC14ODYtNjQuYyAoc3RydWN0IGVsZjY0X3g4Nl82NF9keW5fcmVsb2NzKTogQ29tbWVudCB0eXBvLgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfZmluYWxfbGluayk6IEZvcm1hdHRpbmcuCgoyMDAyLTA0LTI2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogb3BuY2xzLmMgKGJmZF9tYWtlX3JlYWRhYmxlKTogQ2FsbCBiZmRfc2VjdGlvbl9saXN0X2NsZWFyLgoJKiB4Y29mZmxpbmsuYyAoeGNvZmZfbGlua19hZGRfZHluYW1pY19zeW1ib2xzKTogTGlrZXdpc2UuCgoJKiBlbGZsaW5rLmggKGVsZl9iZmRfZmluYWxfbGluayk6IEVuc3VyZSBpbnB1dCBiZmQgY2xhc3MgaXMgdGhlCglzYW1lIGFzIHRoZSBvdXRwdXQgYmVmb3JlIGNhbGxpbmcgZWxmX2xpbmtfaW5wdXRfYmZkLgoKCSogY29mZmNvZGUuaCAoY29mZl9jb21wdXRlX3NlY3Rpb25fZmlsZV9wb3NpdGlvbnMpOiBTZXQKCXNlY3Rpb25fdGFpbCBhZnRlciBzaHVmZmxpbmcgc2VjdGlvbiBsaXN0LgoKMjAwMi0wNC0yNCAgQ2hyaXN0aWFuIEdyb2Vzc2xlciA8Y2hyaXNAZ3JvZXNzbGVyLm9yZz4KCgkqIGNvZmYtejhrLmMgKGV4dHJhX2Nhc2UpOiBGaXggUl9JTU0zMiByZWxvY2F0aW9uczogVGhlCglhZGRyZXNzZXMgYXJlIDIzYml0IHdpdGggYSBzcGVjaWFsIGxheW91dCwgbm90IHBsYWluIDMyYml0Cgl2YWx1ZXMuICBQcmV2ZW50IHJlbG9jYXRpb24gb2YgaW1tZWRpYXRlIHZhbHVlcy4KCjIwMDItMDQtMjQgIENocmlzIEcuIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IElmIE1ETVggb3IKCU1JUFMtMTYgQVNFIGZsYWdzIGFyZSBzZXQsIHByaW50IHNvbWV0aGluZyB0byBpbmRpY2F0ZSB0aGF0LgoKMjAwMi0wNC0yMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLWhwcGEuYyAoaHBwYV90eXBlX29mX3N0dWIpOiBDb3JyZWN0IGFuZCBzaW1wbGlmeSBjb25kaXRpb24KCXVuZGVyIHdoaWNoIGEgcGx0IGNhbGwgc3R1YiBpcyB1c2VkLgoJKGZpbmFsX2xpbmtfcmVsb2NhdGUpOiBTaW1pbGFybHkuCgkoYWxsb2NhdGVfcGx0X3N0YXRpYyk6IENsZWFyIGgtcGxhYmVsIGV4Y2VwdCB3aGVuIHBsdCBlbnRyeSBpcwoJZXhjbHVzaXZlbHkgdXNlZCBmb3IgYSBwbGFiZWwuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogVXNlIHRoZSBhYm92ZSB0byBzaW1wbGlmeSBwbHQgc2l6aW5nLgoJKHN0cnVjdCBlbGYzMl9ocHBhX2xpbmtfaGFzaF90YWJsZSk6IEFkZCBoYXNfMjJiaXRfYnJhbmNoLgoJKGVsZjMyX2hwcGFfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IEluaXQuCgkoQkwyMl9SUCk6IERlZmluZS4KCShocHBhX2J1aWxkX29uZV9zdHViKTogVXNlIEJMMjJfUlAgaWYgaGFzXzIyYml0X2JyYW5jaC4KCShlbGYzMl9ocHBhX2NoZWNrX3JlbG9jcyk6IFNldCBoYXNfMjJiaXRfYnJhbmNoLgoKCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2NoZWNrX3JlbG9jcyk6IFJlbW92ZSBkZWJ1ZyBtZXNzYWdlLgoJKGZpbmFsX2xpbmtfcmVsb2NhdGUpOiBMaWtld2lzZS4KCjIwMDItMDQtMjIgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmLWVoLWZyYW1lLmMgKF9iZmRfZWxmX2Rpc2NhcmRfc2VjdGlvbl9laF9mcmFtZSk6IERvbid0IGJ1aWxkCglzZWFyY2ggdGFibGUgaWYgc29tZSBGREUgaXMgRFdfRUhfUEVfYWxpZ25lZCBlbmNvZGVkIGVpdGhlci4KCShfYmZkX2VsZl93cml0ZV9zZWN0aW9uX2VoX2ZyYW1lKTogSGFuZGxlIHRlcm1pbmF0aW5nIEZERSBzcGVjaWFsbHkuCgoyMDAyLTA0LTIyICBSaWNoYXJkIFNtaXRoICA8cmljaGFyZEBleC1wYXJyb3QuY29tPgoJICAgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmLWVoLWZyYW1lLmMgKHN0cnVjdCBlaF9jaWVfZmRlKTogQWRkIHBlcl9lbmNvZGluZ19yZWxhdGl2ZS4KCShfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhfZnJhbWUpOiBTZXQgaXQgZm9yIENJRXMgd2l0aCBwY3JlbAoJZW5jb2RlZCBwZXJzb25hbGl0eS4KCShfYmZkX2VsZl93cml0ZV9zZWN0aW9uX2VoX2ZyYW1lKTogQWRqdXN0IHBjcmVsIGVuY29kZWQgcGVyc29uYWxpdHkKCWZvciBDSUUvRkRFIHJlbW92YWwuCgoyMDAyLTA0LTIwICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogY29mZjY0LXJzNjAwMC5jIChfYmZkX3hjb2ZmNjRfc3dhcF9hdXhfaW4pOiBGaXggQ19GSUxFIGF1eGVudC4KCjIwMDItMDQtMjAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBhcmNodXJlcy5jIChiZmRfbG9va3VwX2FyY2gpOiBNb3ZlIHRoZSBsaXN0IG9yZGVyIGNvbW1lbnQuLgoJKHN0cnVjdCBiZmRfYXJjaF9pbmZvKTogLi50byB3aGVyZSBpdCBiZWxvbmdzLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoJKiBhcmNodXJlcy5jIChiZmRfbG9va3VwX2FyY2gpOiBBZGQgY29tbWVudCBvbiBsaXN0IG9yZGVyLgoJKGJmZF9kZWZhdWx0X3NldF9hcmNoX21hY2gpOiBVc2UgYmZkX2xvb2t1cF9hcmNoLgoJKiBjcHUtcG93ZXJwYy5jIChiZmRfcG93ZXJwY19hcmNocyk6IFJlLW9yZGVyIHNvIHRoYXQgdGhlIGRlZmF1bHQKCWlzIGFsd2F5cyBhdCBoZWFkIG9mIGxpc3QuCgoyMDAyLTA0LTE4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvZmYtYXJtLmMgKGNvZmZfdGh1bWJfcGNyZWxfMTIsIGNvZmZfdGh1bWJfcGNyZWxfOSwKCWluc2VydF90aHVtYl9icmFuY2gsIHJlY29yZF90aHVtYl90b19hcm1fZ2x1ZSk6IFN1cHByZXNzCglkZWZpbml0aW9uIG9mIHRoZXNlIGZ1bmN0aW9ucyBmb3IgQVJNX1dJTkNFIGJ1aWxkcyBhcyB0aGV5IGFyZQoJbm90IHVzZWQuCgkoU1dBUF9JTl9SRUxPQ19PRkZTRVQsIFNXQVBfT1VUX1JFTE9DX09GRlNFVCk6IERvIG5vdCBkZWZpbmUKCWZvciBBUk1fV0lOQ0UgYnVpbGRzLgoKMjAwMi0wNC0xOCAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb2ZmLWFybS5jIChiZmRfYXJtX3Byb2Nlc3NfYmVmb3JlX2FsbG9jYXRpb24pOgoKMjAwMi0wNC0xNyAgSiJvcm4gUmVubmVja2UgPGpvZXJuLnJlbm5lY2tlQHN1cGVyaC5jb20+CgoJKiBjcHUtc2guYyAoc2Nhbl9tYWNoKTogRGVsZXRlLgoJKGFyY2hfaW5mb19zdHJ1Y3QpOiBSZXBsYWNlIHNjYW5fbWFjaCB3aXRoIGJmZF9kZWZhdWx0X3NjYW4uCgkoYmZkX3NoX2FyY2gpOiBMaWtld2lzZS4KCjIwMDItMDQtMTYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogaWhleC5jIChpaGV4X3dyaXRlX29iamVjdF9jb250ZW50cyk6IEZpeCBjaGVjayBmb3IgcmVjb3JkcwoJY3Jvc3NpbmcgNjRLIGJvdW5kYXJpZXMuCgoyMDAyLTA0LTE2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItbTMyci5jIChtMzJyX2VsZl9hZGRfc3ltYm9sX2hvb2spOiBDaGVjayB0aGUgaGFzaCB0YWJsZQoJdHlwZSByYXRoZXIgdGhhbiBqdXN0IGFzc3VtaW5nIGVudHJpZXMgYXJlIEVMRi4KCSogZWxmMzItc2g2NC5jIChzaDY0X2VsZl9hZGRfc3ltYm9sX2hvb2spOiBMaWtld2lzZS4KCSogZWxmNjQtc2g2NC5jIChzaDY0X2VsZjY0X2FkZF9zeW1ib2xfaG9vayk6IExpa2V3aXNlLgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9hZGRfc3ltYm9sX2hvb2spOiBMaWtld2lzZS4KCSogZWxmNjQtbW1peC5jIChtbWl4X2VsZl9hZGRfc3ltYm9sX2hvb2spOiBVc2UgYmZkX2xpbmtfaGFzaF9lbnRyeQoJcmF0aGVyIHRoYW4gZWxmX2xpbmtfaGFzaF9lbnRyeS4KCjIwMDItMDQtMTUgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1taXBzLmMgKG1pcHNfZWxmMzJfb2JqZWN0X3ApOiBSZXZlcnQgMDQwNCBmcmFnbWVudDogYWxsb3cKCW4zMiBiaW5hcmllcy4KCjIwMDItMDQtMTUgIE1pY2hhZWwgU255ZGVyICA8bXNueWRlckByZWRoYXQuY29tPgoKCSogb3BuY2xzLmMgKGJmZF9jbG9zZSk6IFdyaXRlIGNvbnRlbnRzIGlmIHdyaXRlYWJsZS4KCU1pbm9yIGZvcm1hdHRpbmcgdGlkeS11cHMuCgoyMDAyLTA0LTE1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItcHBjLmMgKHBwY19lbGZfYWRkX3N5bWJvbF9ob29rKTogQ2hlY2sgdGhlIGhhc2ggdGFibGUgdHlwZS4KCjIwMDItMDQtMTIgIE1pY2hhZWwgU255ZGVyICA8bXNueWRlckByZWRoYXQuY29tPgoKCSogYmZkLWluLmggKGJmZF9nZXRfc2VjdGlvbl9sbWEpOiBOZXcgYWNjZXNzIG1hY3JvLgoJTWlub3Igd2hpdGUtc3BhY2UgZml4LXVwLgoKMjAwMi0wNC0xMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi5jIChwcmVwX2hlYWRlcnMpOiBEb24ndCB6ZXJvIEVJX09TQUJJLCBFSV9BQklWRVJTSU9OIG9yCgloZWFkZXIgcGFkLgoKMjAwMi0wNC0wOSAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBlbGZhcm0tbmFiaS5jIChlbGYzMl9hcm1faG93dG9fdGFibGUpOiBGaXggQUJTMTYgbWFza3MuCgoyMDAyLTA0LTA5ICBDYXNwZXIgUy4gSG9ybnN0cnVwIDxjaG9ybnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogY29mZmNvZGUuaCAoY29mZl9yZWFkX3dvcmQpOiBOZXcuCgkoY29mZl9jb21wdXRlX2NoZWNrc3VtKTogTmV3LgoJKGNvZmZfYXBwbHlfY2hlY2tzdW0pOiBOZXcuCgkoY29mZl93cml0ZV9vYmplY3RfY29udGVudHMpOiBDYWxsIGNvZmZfYXBwbHlfY2hlY2tzdW0gKCkgdG8KCWFwcGx5IGNoZWNrc3VtIHRvIFBFIGltYWdlLgoKMjAwMi0wNC0wOCAgUmFuZG9scGggQ2h1bmcgIDx0YXVzcUBkZWJpYW4ub3JnPgoKCSogZWxmMzItaHBwYS5jIChocHBhX3Vud2luZF9lbnRyeV9jb21wYXJlKTogTW92ZSB0byBlbGYtaHBwYS5oLgoJKGVsZjMyX2hwcGFfZmluYWxfbGluayk6IFNwbGl0IG91dCBzb3J0aW5nIGxvZ2ljIHRvLi4KCSogZWxmLWhwcGEuaCAoZWxmX2hwcGFfc29ydF91bndpbmQpOiAuLmhlcmUuCgkoZWxmX2hwcGFfZmluYWxfbGluayk6IENhbGwgZWxmX2hwcGFfc29ydF91bndpbmQuCgoyMDAyLTA0LTA3ICBBbmRyZXcgQ2FnbmV5ICA8YWMxMzEzMTNAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIG1pc3NpbmcgYGB8JycgdG8gcG93ZXJwYy0qLWFpeDQuWzQtOV0qCglwYXR0ZXJuLgoJKiBjb25maWd1cmU6IFJlLWdlbmVyYXRlLgoKMjAwMi0wNC0wNyAgQW5kcmV3IENhZ25leSAgPGFjMTMxMzEzQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW46IE9ubHkgZGVmaW5lIEFJWF9DT1JFX0RVTVBYX0NPUkUgd2hlbiBBSVggdmVyc2lvbgoJaXMgZ3JlYXRlciBvciBlcXVhbCB0byA0LjMuMy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJRml4IFBSIGdkYi8zNDQuCgoyMDAyLTA0LTA1ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGVsZjMyLWNyaXMuYyAoY3Jpc19lbGZfaG93dG9fdGFibGUpIDxSX0NSSVNfMTZfUENSRUwsCglSX0NSSVNfMzJfUENSRUw+OiBGaXggdHlwbyBpbiBuYW1lLgoJKGNyaXNfZWxmX2NoZWNrX3JlbG9jcyk6IEFsd2F5cyBjcmVhdGUgLnJlbGEuZ290IGhlcmUgd2hlbgoJUl9DUklTXzE2X0dPVFBMVCBvciBSX0NSSVNfMzJfR09UUExUIGlzIHNlZW4uCgkoZWxmX2NyaXNfYWRqdXN0X2dvdHBsdF90b19nb3QpOiBEb24ndCBjcmVhdGUgLnJlbGEuZ290IGhlcmU7Cglhc3N1bWUgaXQncyBjcmVhdGVkLgoKMjAwMi0wNC0wNCAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBhb3V0LWFkb2JlLmMgKGFvdXRfMzJfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogRGVmaW5lLgoJKiBhb3V0LXRhcmdldC5oIChNWV9iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBDb25kaXRpb25hbGx5CglkZWZpbmUuCgkqIGFvdXQtdGljMzAuYyAoTVlfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogTGlrZXdpc2UuCgkqIGJmZC5jIChiZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBEZWZpbmUuCgkqIGJpbmFyeS5jIChiaW5hcnlfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogRGVmaW5lLgoJKiBib3V0LmMgKGJfb3V0X2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IERlZmluZS4KCSogY29mZi1yczYwMDAuYyAocnM2MDAwY29mZl92ZWMpOiBJbmNsdWRlCglfYmZkX2dlbmVyaWNfbGlua19oYXNoX3RhYmxlX2ZyZWUuCgkocG1hY194Y29mZl92ZWMpOiBMaWtld2lzZS4KCSogY29mZjY0LXJzNjAwMC5jIChyczYwMDBjb2ZmNjRfdmVjKTogTGlrZXdpc2UuCgkoYWl4NWNvZmY2NF92ZWMpOiBMaWtld2lzZS4KCSogY29mZmNvZGUuaCAoY29mZl9iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBDb25kaXRpb25hbGx5IGRlZmluZS4KCSogZWxmLW0xMDMwMC5jIChlbGYzMl9tbjEwMzAwX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogTmV3IGZ1bmN0aW9uLgoJKGJmZF9lbGYzMl9iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBEZWZpbmUuCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9saW5rX2hhc2hfdGFibGVfZnJlZSk6IE5ldyBmdW5jdGlvbi4KCShiZmRfZWxmMzJfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogRGVmaW5lLgoJKiBlbGZ4eC10YXJnZXQuaCAoYmZkX2VsZk5OX2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IENvbmRpdGlvbmFsbHkKCWRlZmluZS4KCSogaTM4Nm1zZG9zLmMgKG1zZG9zX2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IERlZmluZS4KCSogaTM4Nm9zOWsuYyAob3M5a19iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBEZWZpbmUuCgkqIGllZWUuYyAoaWVlZV9iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBEZWZpbmUuCgkqIGloZXguYyAoaWhleF9iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBEZWZpbmUuCgkqIGxpYmJmZC1pbi5oIChfYmZkX25vbGlua19iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBEZWZpbmUuCgkoX2JmZF9nZW5lcmljX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogQWRkIHByb3RvdHlwZS4KCSogbGliY29mZi1pbi5oIChfYmZkX3hjb2ZmX2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IEFkZCBwcm90b3R5cGUuCgkqIGxpYmVjb2ZmLmggKF9iZmRfZWNvZmZfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogRGVmaW5lLgoJKiBsaW5rZXIuYyAoX2JmZF9nZW5lcmljX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogTmV3IGZ1bmN0aW9uLgoJKiBtbW8uYyAobW1vX2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IERlZmluZS4KCSogbmxtLXRhcmdldC5oIChubG1fYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogRGVmaW5lLgoJKiBvYXN5cy5jIChvYXN5c19iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBEZWZpbmUuCgkqIHBwY2Jvb3QuYyAocHBjYm9vdF9iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBEZWZpbmUuCgkqIHNvbS5jIChzb21fYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogRGVmaW5lLgoJKiBzcmVjLmMgKHNyZWNfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogRGVmaW5lLgoJKiB0ZWtoZXguYyAodGVraGV4X2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IERlZmluZS4KCSogdmVyc2Fkb3MuYyAodmVyc2Fkb3NfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogRGVmaW5lLgoJKiB2bXMuYyAodm1zX2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IE5ldyBmdW5jdGlvbi4KCSogeGNvZmZsaW5rLmMgKF9iZmRfeGNvZmZfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogTmV3IGZ1bmN0aW9uLgoKCSogY29mZi1hcm0uYyAoY29mZl9hcm1fbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IFVzZSBiZmRfbWFsbG9jCglpbnN0ZWFkIG9mIGJmZF9hbGxvYy4KCSogY29mZi1oODMwMC5jIChoODMwMF9jb2ZmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogY29mZi1tY29yZS5jIChjb2ZmX21jb3JlX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogY29mZi1wcGMuYyAocHBjX2NvZmZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiBjb2ZmbGluay5jIChfYmZkX2NvZmZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiBlY29mZi5jIChfYmZkX2Vjb2ZmX2JmZF9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIGVsZi1tMTAzMDAuYyAoZWxmMzJfbW4xMDMwMF9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIGVsZi5jIChfYmZkX2VsZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiBlbGYzMi1jcmlzLmMgKGVsZl9jcmlzX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGsuYyAoZWxmX202OGtfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9zMzkwX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogZWxmMzItc2guYyAoc2hfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfYmZkX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYyAoZWxmX3MzOTBfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiBlbGY2NC1zaDY0LmMgKHNoNjRfZWxmNjRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9iZmRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogbGlua2VyLmMgKF9iZmRfZ2VuZXJpY19saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIG02OGtsaW51eC5jIChsaW51eF9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIHNwYXJjbGludXguYyAobGludXhfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiBzdW5vcy5jIChzdW5vc19saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIHhjb2ZmbGluay5jIChfYmZkX3hjb2ZmX2JmZF9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgoJKiB0YXJnZXRzLmM6IEFkZCBfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlIHRvIHh2ZWMuCgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBsaWJjb2ZmLmg6IFJlZ2VuZXJhdGUuCgoyMDAyLTA0LTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZGVwLWluLnNlZDogQ29wZSB3aXRoIGFic29sdXRlIHBhdGhzLgoJKiBNYWtlZmlsZS5hbSAoZGVwLnNlZCk6IFN1YnN0IFRPUERJUiwgYW5kIG5vdCBJTkNESVIuCglSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvZmYtYXJtLmM6IEZpeCBjb3B5cmlnaHQgZGF0ZS4KCSogY3B1LWg4MzAwLmM6IExpa2V3aXNlLgoJKiBjcHUtaTM3MC5jOiBMaWtld2lzZS4KCSogY3B1LXMzOTAuYzogTGlrZXdpc2UuCgkqIGNwdS1taXBzLmM6IExpa2V3aXNlLgoJKiBwby9TUkMtUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTA0LTA0ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogTWFrZWZpbGUuYW06IEFkZCBlbGZ4eC1taXBzLmMgdG8gdGhlIGtub3duIGJhY2tlbmRzLgoJKGVsZjMyLW1pcHMubG8pOiByZW1vdmUgZGVwZW5kZW5jeSB0byBjb2ZmL2V4dGVybmFsLmguCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmUuaW46IEFkZCBlbGZ4eC1taXBzLmxvIHRvIGFsbCB2ZWN0b3JzIHVzaW5nIGVsZjMyLW1pcHMubG8KCVJlbW92ZSBlbGYzMi1taXBzLmxvIGZyb20gNjQgYml0IHZlY3RvcnMuIFVwZGF0ZSBkZXBlbmRlbmNpZXMKCWFjY29yZGluZ2x5LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGVsZi1iZmQuaDogTW92ZSBhbGwgTUlQUyBFTEYgc3BlY2lmaWMgcHJvdG90eXBlcyB0byBlbGZ4eC1taXBzLmguCgkoaXJpeF9jb21wYXRfdCk6IElSSVggY29tcGF0aWJpbGl0eSBsZXZlbCwgbW92ZWQgZnJvbSBlbGYzMi1taXBzLmMuCgkoZWxmX2JhY2tlbmRfbWlwc19pcml4X2NvbXBhdCwgZWxmX2JhY2tlbmRfbWlwc19ydHlwZV90b19ob3d0byk6IE5ldwoJTUlQUyBzcGVjaWZpYyBiYWNrZW5kIGZ1bmN0aW9ucy4KCSogZWxmMzItbWlwcy5jOiBNb3ZlZCBtb3N0IGNvZGUgdG8gZWxmeHgtbWlwcy5jLgoJKG1pcHNfZWxmX2hpMTZfcmVsb2MpOiBSZW5hbWUgZnJvbSBfYmZkX21pcHNfZWxmX2hpMTZfcmVsb2MgYW5kIG1ha2UKCXN0YXRpYy4KCShtaXBzX2VsZl9sbzE2X3JlbG9jKTogTGlrZXdpc2UsIHdhcyBfYmZkX21pcHNfZWxmX2xvMTZfcmVsb2MuCgkobWlwc19lbGZfZ290MTZfcmVsb2MpOiBMaWtld2lzZSwgd2FzIF9iZmRfbWlwc19lbGZfZ290MTZfcmVsb2MuCgkobWlwc19lbGZfZ3ByZWwzMl9yZWxvYyk6IExpa2V3aXNlLCB3YXMgX2JmZF9taXBzX2VsZl9ncHJlbDMyX3JlbG9jLgoJKG1pcHNfZWxmMzJfcnR5cGVfdG9faG93dG8pOiBSZW5hbWUgZnJvbSBtaXBzX3J0eXBlX3RvX2hvd3RvLiBDaGFuZ2VkCglpbnRlcmZhY2UgdG8gYWxsb3cgc2VsZWN0aW9uIG9mIHRoZSByaWdodCBSRUwgb3IgUkVMQSBob3d0byB0YWJsZS4KCShtaXBzX2VsZjMyX29iamVjdF9wKTogUmVuYW1lIGZyb20gX2JmZF9taXBzX2VsZl9vYmplY3RfcCBhbmQgbWFkZQoJc3RhdGljLiBMZXQgaXQgcmVmdXNlIG4zMiBvYmplY3RzLgoJKGVsZjMyX21pcHNfZ3Jva19wcnN0YXR1cyk6IFJlbmFtZSBmcm9tIF9iZmRfZWxmMzJfbWlwc19ncm9rX3Byc3RhdHVzLgoJKGVsZjMyX21pcHNfZ3Jva19wc2luZm8pOiBSZW5hbWUgZnJvbSBfYmZkX2VsZjMyX21pcHNfZ3Jva19wc2luZm8uCgkoZWxmMzJfbWlwc19kaXNjYXJkX2luZm8pOiBSZW5hbWUgZnJvbSBfYmZkX2VsZjMyX21pcHNfZGlzY2FyZF9pbmZvLgoJKGVsZjMyX21pcHNfaWdub3JlX2Rpc2NhcmRlZF9yZWxvY3MpOiBSZW5hbWUgZnJvbQoJX2JmZF9lbGYzMl9taXBzX2lnbm9yZV9kaXNjYXJkZWRfcmVsb2NzLgoJKGVsZjMyX21pcHNfd3JpdGVfc2VjdGlvbik6IFJlbmFtZSBmcm9tIF9iZmRfZWxmMzJfbWlwc193cml0ZV9zZWN0aW9uLgoJKGVsZjMyX21pcHNfaXJpeF9jb21wYXQpOiBOZXcgZnVuY3Rpb24sIHJlcGxhY2VzIElSSVhfQ09NUEFULgoJKGVsZl9taXBzX2hvd3RvX3RhYmxlX3JlbGEpOiBSZW1vdmUuCgkqIGVsZjY0LW1pcHMuYzogTW92ZWQgbW9zdCBjb2RlIHRvIGVsZnh4LW1pcHMuYy4KCShiZmRfZWxmNjRfYmZkX3JlbG9jX3R5cGVfbG9va3VwKTogTWFrZSBzdGF0aWMuCgkobWlwc19lbGY2NF9ydHlwZV90b19ob3d0byk6IE5ldyBmdW5jdGlvbi4KCShtaXBzX2VsZjY0X29iamVjdF9wKTogTGlrZXdpc2UuCgkoZWxmNjRfbWlwc19pcml4X2NvbXBhdCk6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmM6IE5ldyBmaWxlIGNvbnRhaW5pbmcgY29tbW9uIGNvZGUgbWVyZ2VkIHRvZ2V0aGVyIGZyb20KCWVsZjMyLW1pcHMuYyBhbmQgZWxmNjQtbWlwcy5jLgoJKiBlbGZ4eC1taXBzLmg6IE5ldyBmaWxlIGNvbnRhaW5pbmcgTUlQUyBzcGVjaWZpYyBwcm90b3R5cGVzIGZyb20KCWVsZi1iZmQuaC4KCSogZWxmeHgtdGFyZ2V0Lmg6IEFkZCBoYW5kbGluZyBmb3IgZWxmX2JhY2tlbmRfbWlwc19pcml4X2NvbXBhdCBhbmQKCWVsZl9iYWNrZW5kX21pcHNfcnR5cGVfdG9faG93dG8uCgoyMDAyLTA0LTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogc3JlYy5jIChNQVhDSFVOSywgQ2h1bmspOiBSZXZpc2UgY29tbWVudHMuCgkoc3JlY193cml0ZV9yZWNvcmQpOiBDb3JyZWN0IGJ1ZmZlciBzaXplLgoJKHNyZWNfd3JpdGVfaGVhZGVyKTogRG8gd2l0aG91dCBpbnRlcm1lZGlhdGUgYnVmZmVyLgoJKHNyZWNfd3JpdGVfc2VjdGlvbik6IFZhbGlkYXRlIENodW5rLgoJKHNyZWNfd3JpdGVfdGVybWluYXRvcik6IFBhc3MgTlVMTCBpbnN0ZWFkIG9mIGR1bW15IGJ1ZmZlci4KCShzcmVjX3dyaXRlX3N5bWJvbHMpOiBQYXNzIGZpbGUgYW5kIHN5bWJvbCBuYW1lcyBkaXJlY3RseSB0bwoJYmZkX2J3cml0ZSBzbyBzcHJpbnRmIHdvbid0IG92ZXJmbG93IGJ1ZmZlci4KCjIwMDItMDQtMDMgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmMzItc3BhcmMuYyAoZWxmMzJfc3BhcmNfcmVsb2NhdGVfc2VjdGlvbik6IERvbid0IGVtaXQgZHluYW1pYwoJUEMgcmVsYXRpdmUgcmVsb2NzIGFnYWluc3QgaGlkZGVuIHN5bWJvbHMuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDItMDQtMDMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYuYyAoX2JmZF9lbGZfbWFrZV9zZWN0aW9uX2Zyb21fc2hkcik6IFdoZW4gc2V0dGluZyBzZWN0aW9uCglMTUFzLCBsb29wIG92ZXIgc2VnbWVudHMgdW50aWwgcF92YWRkciBhbmQgcF9tZW1zeiBzcGVjaWZ5IGFuCglleHRlbnQgZW5jbG9zaW5nIHRoZSBzZWN0aW9uLgoKMjAwMi0wNC0wMiAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBpaGV4LmMgKGloZXhfd3JpdGVfb2JqZWN0X2NvbnRlbnRzKTogRG8gbm90IGFsbG93IHJlY29yZHMgdG8KCWNyb3NzIGEgNjRLIGJvdW5kYXJ5IC0gd3JhcCBpZiBuZWNlc3NhcnkuCgoyMDAyLTA0LTAxICBOYXRoYW4gV2lsbGlhbXMgIDxuYXRoYW53QHdhc2FiaXN5c3RlbXMuY29tPgoKCSogZWxmLmMgKGVsZmNvcmVfbmV0YnNkX2dldF9sd3BpZCk6IEZpeCBvZmYtYnktb25lIGVycm9yCgl3aGljaCBjYXVzZWQgdGhlIHJldHVybmVkIExXUCBJRCB0byBhbHdheXMgYmUgMC4KCjIwMDItMDQtMDEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1zcGFyYy5jIChXSUxMX0NBTExfRklOSVNIX0RZTkFNSUNfU1lNQk9MKTogTmV3LgoJKGVsZjMyX3NwYXJjX3JlbG9jYXRlX3NlY3Rpb24pOiBVc2UgaXQgdG8gZmlndXJlIG91dCB3aGVuIHRvCglpbml0aWFsaXplIC5nb3QgZW50cmllcy4KCSogZWxmNjQtc3BhcmMuYzogU2ltaWxhcmx5LgoKMjAwMi0wMy0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxpbmtlci5jIChsaW5rX2FjdGlvbik6IElnbm9yZSBkdXBsaWNhdGUgd2FybmluZyBzeW1zLgoJKF9iZmRfZ2VuZXJpY19saW5rX3dyaXRlX2dsb2JhbF9zeW1ib2wpOiBGb2xsb3cgd2FybmluZyBzeW1ib2wgbGluay4KCSogZWxmbGluay5oIChlbGZfYWRqdXN0X2R5bnN0cl9vZmZzZXRzKTogTGlrZXdpc2UuCgkoZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKGVsZl9leHBvcnRfc3ltYm9sKTogTGlrZXdpc2UuCgkoZWxmX2xpbmtfZmluZF92ZXJzaW9uX2RlcGVuZGVuY2llcyk6IExpa2V3aXNlLgoJKGVsZl9saW5rX2Fzc2lnbl9zeW1fdmVyc2lvbik6IExpa2V3aXNlLgoJKGVsZl9saW5rX3NlY19tZXJnZV9zeW1zKTogTGlrZXdpc2UuCgkoZWxmX2xpbmtfb3V0cHV0X2V4dHN5bSk6IExpa2V3aXNlLgoJKGVsZl9nY19zd2VlcF9zeW1ib2wpOiBMaWtld2lzZS4KCShlbGZfZ2NfcHJvcGFnYXRlX3Z0YWJsZV9lbnRyaWVzX3VzZWQpOiBMaWtld2lzZS4KCShlbGZfZ2Nfc21hc2hfdW51c2VkX3Z0ZW50cnlfcmVsb2NzKTogTGlrZXdpc2UuCgkoZWxmX2djX2FsbG9jYXRlX2dvdF9vZmZzZXRzKTogTGlrZXdpc2UuCgkoZWxmX2NvbGxlY3RfaGFzaF9jb2Rlcyk6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmMgKGVsZl9saW5rX3JlbnVtYmVyX2hhc2hfdGFibGVfZHluc3ltcyk6IExpa2V3aXNlLgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV91bm1hcmtfdXNlbGVzc19keW5hbWljX3N5bWJvbHMpOiBMaWtld2lzZS4KCShlbGZfaHBwYV9yZW1hcmtfdXNlbGVzc19keW5hbWljX3N5bWJvbHMpOiBMaWtld2lzZS4KCSogZWxmLW0xMDMwMC5jIChlbGYzMl9tbjEwMzAwX2ZpbmlzaF9oYXNoX3RhYmxlX2VudHJ5KTogTGlrZXdpc2UuCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fZGlzY2FyZF9jb3BpZXMpOiBMaWtld2lzZS4KCSogZWxmMzItY3Jpcy5jIChlbGZfY3Jpc19hZGp1c3RfZ290cGx0X3RvX2dvdCk6IExpa2V3aXNlLgoJKGVsZl9jcmlzX2Rpc2NhcmRfZXhjZXNzX2Rzb19keW5hbWljcyk6IExpa2V3aXNlLgoJKiBlbGYzMi1ocHBhLmMgKGNsb2JiZXJfbWlsbGljb2RlX3N5bWJvbHMpOiBMaWtld2lzZS4KCShtYXJrX1BJQ19jYWxscyk6IExpa2V3aXNlLgoJKGFsbG9jYXRlX3BsdF9zdGF0aWMpOiBMaWtld2lzZS4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBMaWtld2lzZS4KCShyZWFkb25seV9keW5yZWxvY3MpOiBMaWtld2lzZS4KCSogZWxmMzItaTM4Ni5jIChhbGxvY2F0ZV9keW5yZWxvY3MpOiBMaWtld2lzZS4KCShyZWFkb25seV9keW5yZWxvY3MpOiBMaWtld2lzZS4KCSogZWxmMzItaTM3MC5jIChpMzcwX2VsZl9hZGp1c3RfZHluaW5keCk6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhrLmMgKGVsZl9tNjhrX2Rpc2NhcmRfY29waWVzKTogTGlrZXdpc2UuCgkqIGVsZjMyLW1pcHMuYyAobWlwc19lbGZfb3V0cHV0X2V4dHN5bSk6IExpa2V3aXNlLgoJKG1pcHNfZWxmX3NvcnRfaGFzaF90YWJsZV9mKTogTGlrZXdpc2UuCgkobWlwc19lbGZfY2hlY2tfbWlwczE2X3N0dWJzKTogTGlrZXdpc2UuCgkqIGVsZjMyLXMzOTAuYyAoYWxsb2NhdGVfZHlucmVsb2NzKTogTGlrZXdpc2UuCgkocmVhZG9ubHlfZHlucmVsb2NzKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9kaXNjYXJkX2NvcGllcyk6IExpa2V3aXNlLgoJKiBlbGYzMi14c3Rvcm15MTYuYyAoeHN0b3JteTE2X3JlbGF4X3BsdF9jaGVjayk6IExpa2V3aXNlLgoJKHhzdG9ybXkxNl9yZWxheF9wbHRfcmVhbGxvYyk6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9jYWxjX2dvdF9vZmZzZXRzX2Zvcl9zeW1ib2wpOiBMaWtld2lzZS4KCShlbGY2NF9hbHBoYV9vdXRwdXRfZXh0c3ltKTogTGlrZXdpc2UuCgkqIGVsZjY0LWhwcGEuYyAoZWxmNjRfaHBwYV9tYXJrX2V4cG9ydGVkX2Z1bmN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGY2NC1taXBzLmMgKG1pcHNfZWxmNjRfc29ydF9oYXNoX3RhYmxlX2YpOiBMaWtld2lzZS4KCShtaXBzX2VsZjY0X2NoZWNrX21pcHMxNl9zdHVicyk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfb3V0cHV0X2V4dHN5bSk6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYyAoZnVuY19kZXNjX2FkanVzdCk6IExpa2V3aXNlLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IExpa2V3aXNlLgoJKHJlYWRvbmx5X2R5bnJlbG9jcyk6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmMgKGFsbG9jYXRlX2R5bnJlbG9jcyk6IExpa2V3aXNlLgoJKHJlYWRvbmx5X2R5bnJlbG9jcyk6IExpa2V3aXNlLgoJKiBlbGY2NC1zaDY0LmMgKHNoNjRfZWxmNjRfZGlzY2FyZF9jb3BpZXMpOiBMaWtld2lzZS4KCSogZWxmNjQteDg2LTY0LmMgKGFsbG9jYXRlX2R5bnJlbG9jcyk6IExpa2V3aXNlLgoJKHJlYWRvbmx5X2R5bnJlbG9jcyk6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfZ2xvYmFsX2R5bl9zeW1fdGh1bmspOiBMaWtld2lzZS4KCSogYW91dHguaCAoYW91dF9saW5rX3dyaXRlX290aGVyX3N5bWJvbCk6IExpa2V3aXNlLgoJKiBjb2ZmbGluay5jIChfYmZkX2NvZmZfd3JpdGVfdGFza19nbG9iYWxzKTogTGlrZXdpc2UuCgkoX2JmZF9jb2ZmX3dyaXRlX2dsb2JhbF9zeW0pOiBMaWtld2lzZS4KCSogaTM4NmxpbnV4LmMgKGxpbnV4X3RhbGx5X3N5bWJvbHMpOiBMaWtld2lzZS4KCSogbTY4a2xpbnV4LmMgKGxpbnV4X3RhbGx5X3N5bWJvbHMpOiBMaWtld2lzZS4KCSogc3BhcmNsaW51eC5jIChsaW51eF90YWxseV9zeW1ib2xzKTogTGlrZXdpc2UuCgkqIHBkcDExLmMgKGFvdXRfbGlua193cml0ZV9vdGhlcl9zeW1ib2wpOiBMaWtld2lzZS4KCSogc3Vub3MuYyAoc3Vub3Nfc2Nhbl9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKiB4Y29mZmxpbmsuYyAoeGNvZmZfYnVpbGRfbGRzeW1zKTogTGlrZXdpc2UuCgkoeGNvZmZfd3JpdGVfZ2xvYmFsX3N5bWJvbCk6IExpa2V3aXNlLgoKCSogY29mZmxpbmsuYyAoX2JmZF9jb2ZmX2ZpbmFsX2xpbmspOiBGb3JtYXR0aW5nLgoJKiBjcHUtbWlwcy5jIChtaXBzX2NvbXBhdGlibGUpOiBNYWtlIHN0YXRpYywgcHJvdG90eXBlLgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X2NoZWNrX3JlbG9jcyk6IEZvcm1hdHRpbmcuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfb3V0cHV0X2V4dHN5bSk6IExpa2V3aXNlLgoJKiBlbGY2NC1taXBzLmMgKG1pcHNfZWxmNjRfc29ydF9oYXNoX3RhYmxlKTogTGlrZXdpc2UuCgkobWlwc19lbGY2NF9maW5hbF9saW5rKTogTGlrZXdpc2UuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfZmluZF92ZXJzaW9uX2RlcGVuZGVuY2llcyk6IFJlbW92ZSBkdXBsaWNhdGUKCXByb3RvdHlwZS4KCjIwMDItMDMtMjcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogY29mZi1hcm0uYyAoU1dBUF9JTl9SRUxPQ19PRkZTRVQpOiBEZWZpbmUuCgkoU1dBUF9PVVRfUkVMT0NfT0ZGU0VUKTogRGVmaW5lLgoKMjAwMi0wMy0yNyAgR3JlZ29yeSBTdGV1Y2sgPGdyZWdAbmVzdC5jeD4KCgkqIGVsZi5jIChfYmZkX2VsZl9nZXRfc3ltdGFiX3VwcGVyX2JvdW5kKTogTGVhdmUgc3BhY2UgZm9yCgl0ZXJtaW5hdGluZyBOVUxMIGlmIGVtcHR5IHN5bWJvbCB0YWJsZS4KCShfYmZkX2VsZl9nZXRfZHluYW1pY19zeW10YWJfdXBwZXJfYm91bmQpOiBMaWtld2lzZS4KCjIwMDItMDMtMjYgIEguSi4gTHUgIChoamxAZ251Lm9yZykKCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfaW5wdXRfYmZkKTogUmV2ZXJ0IHRoZSBsYXN0IGNoYW5nZSBzaW5jZQoJdGhlIGdjYyBleGNlcHRpb24gaGFuZGxpbmcgaXNuJ3QgZml4ZWQgeWV0LgoKMjAwMi0wMy0yNiAgSC5KLiBMdSAgKGhqbEBnbnUub3JnKQoKCSogZWxmbGluay5oIChlbGZfbGlua19pbnB1dF9iZmQpOiBDb21wbGFpbiBhYm91dCByZWxvY2F0aW9ucwoJYWdhaW5zdCBsb2NhbCBzeW1ib2xzIGluIGRpc2NhcmRlZCBzZWN0aW9ucy4KCjIwMDItMDMtMjYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZsaW5rLmggKGVsZl9nY19tYXJrKTogRG9uJ3QgcmVjdXJzZSBpbnRvIG5vbi1FTEYgc2VjdGlvbnMuCgoyMDAyLTAzLTIzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLmMgKF9iZmRfZWxmX21ha2Vfc2VjdGlvbl9mcm9tX3NoZHIpOiBEb24ndCBzZXQgbG1hIGJhc2VkIG9uCglzZWN0aW9uIGZpbGUgb2Zmc2V0IGZvciAhU0VDX0xPQUQgc2VjdGlvbnMuCgoyMDAyLTAzLTIxICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fZmluYWxfbGlua19yZWxvY2F0ZSA8Y2FzZSBSX0FSTV9HT1RPRkY+LAoJPGNhc2UgUl9BUk1fR09UPik6IEhhbmRsZSByZWxvY2F0aW9ucyB0byBUaHVtYiBmdW5jdGlvbnMuCgoyMDAyLTAzLTIxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29mZjY0LXJzNjAwMC5jIChfYmZkX3hjb2ZmNjRfcHV0X3N5bWJvbF9uYW1lKTogUHJvdG90eXBlLgoJV2hpdGVzcGFjZSBjaGFuZ2VzLgoJKiBhcmNoaXZlLmM6IFVwZGF0ZSBjb3B5cmlnaHQgZGF0ZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBwby9TUkMtUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTAzLTIwICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGR3YXJmMi5jIChzdHJ1Y3QgZnVuY2luZm8pOiBNb3ZlIHVwLgoJKGxvb2t1cF9hZGRyZXNzX2luX2Z1bmN0aW9uX3RhYmxlKTogTmV3IGFyZ3VtZW50IGZ1bmN0aW9uX3B0ci4KCVNldCBpdC4KCShsb29rdXBfYWRkcmVzc19pbl9saW5lX3RhYmxlKTogTmV3IGFyZ3VtZW50IGZ1bmN0aW9uLiAgSWYgZnVuY3Rpb24KCWlzIG5vbi1OVUxMLCB1c2UgaXQgdG8gaGFuZGxlIGBgYWRkcicnIGJlZm9yZSB0aGUgZmlyc3QgbGluZSBub3RlIG9mCgl0aGUgZnVuY3Rpb24uCgkoY29tcF91bml0X2ZpbmRfbmVhcmVzdF9saW5lKTogVXBkYXRlIGFuZCBzd2FwIGNhbGxzIHRvCglsb29rdXBfYWRkcmVzc19pbl9mdW5jdGlvbl90YWJsZSBhbmQgbG9va3VwX2FkZHJlc3NfaW5fbGluZV90YWJsZS4KCSogc3ltcy5jIChfYmZkX3N0YWJfc2VjdGlvbl9maW5kX25lYXJlc3RfbGluZSk6IFVzZSB0aGUgZmlyc3QKCU5fU0xJTkUgZW5jb3VudGVyZWQgaWYgd2Ugc2VlIGFuIE5fRlVOIGJlZm9yZSBhbnkgTl9TTElORS4KCjIwMDItMDMtMjAgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBjb2ZmLXJzNjAwMC5jIChfYmZkX3hjb2ZmX3N0YXRfYXJjaF9lbHQpOiBSZW5hbWVkIGZyb20KCV9iZmRfeGNvZmZfZ2VuZXJpY19zdGF0X2FyY2hfZWx0LiAgRml4IGZvcm1hdCBjaGVjay4KCSogY29mZjY0LXJzNjAwMC5jIDogVXNlIF9iZmRfeGNvZmZfc3RhdF9hcmNoX2VsdC4KCjIwMDItMDMtMTkgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiB4Y29mZmxpbmsuYyAoX2JmZF94Y29mZl9iZmRfbGlua19hZGRfc3ltYm9scyk6IExvb2sgdGhyb3VnaCBhbGwKCWR5bmFtaWMgb2JqZWN0cyBpbiBhcmNoaXZlcy4KCjIwMDItMDMtMTkgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGVsZmxpbmsuaCAoTkFNRShiZmRfZWxmLHJlY29yZF9saW5rX2Fzc2lnbm1lbnQpKTogRG9uJ3Qgc2V0CglTVFRfTk9UWVBFIHN5bWJvbHMgdG8gU1RUX09CSkVDVC4KCjIwMDItMDMtMTggIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCgkqIGNwdS1pMzg2LmMgKGJmZF94ODZfNjRfYXJjaCk6IFJlbmFtZSB0byAiaTM4Njp4ODYtNjQiCgoyMDAyLTAzLTE4ICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogYWl4NXBwYy5jb3JlLmMgOiBOZXcgZmlsZSBmb3IgQUlYIDUgNjQgYml0IGNvcmUgc3VwcG9ydC4KCSogYmZkLWluLmggOiBBZGQgYmZkX3hjb2ZmX2FyX2FyY2hpdmVfc2V0X21hZ2ljIGRlY2xhcmF0aW9uLgoJKiBjb2ZmLXJzNjAwMCAoZG9fcGFkKSA6IE5ldyBmdW5jdGlvbiBmb3IgYXJjaGl2ZSBwYWRkaW5nLgoJKGRvX2NvcHkpIDogTmV3IGZ1bmN0aW9uIGZvciBvYmplY3QgZmlsZSBjb3B5aW5nIGluIGFyY2hpdmVzLgoJKGRvX3NoYXJlZF9vYmplY3RfcGFkZGluZykgOiBOZXcgZnVuY3Rpb24gZm9yIHBhZGRpbmcgc2hhcmVkCglvYmplY3RzIHRvIHRoZWlyIHRleHQgc2VjdGlvbiBhbGlnbm1lbnQgaW4gYXJjaGl2ZXMuCgkoYmZkX3hjb2ZmX2FyX2FjaGl2ZV9zZXRfbWFnaWMpIDogU3R1Yi4KCSh4Y29mZl93cml0ZV9hcm1hcF9iaWcpIDogVXNlIGRvX2NvcHkgYW5kIGRvX3BhZC4KCSh4Y29mZl93cml0ZV9hcmNoaXZlX2NvbnRlbnRzX2JpZykgOiBVc2UgZG9fc2hhcmVkX29iamVjdF9wYWRkaW5nLAoJZG9fY29weSBhbmQgZG9fcGFkLgoJKiBjb2ZmNjQtcnM2MDAwLmMgKHhjb2ZmNjRfd3JpdGVfb2piZWN0X2NvbnRlbnRzKSA6IFVzZQoJYmZkX3hjb2ZmX21hZ2ljX251bWJlci4KCSh4Y29mZjY0X2JhZF9mb3JtYXRfaG9vaykgOiBOZXcgZnVuY3Rpb24gZm9yIF9iZmRfYmFkX2Zvcm1hdF9ob29rCglmb3AuCgkoeGNvZmZfYmFja2VuZF9kYXRhX3IpIDogVXNlIHhjb2ZmNjRfYmFkX2Zvcm1hdF9ob29rLgoJKGJmZF94Y29mZl9haXg1X2JhY2tlbmRfZGF0YSkgOiBOZXcgQWl4IDUgYmFja2VuZCBkYXRhLgoJKGFpeDVjb2ZmNjRfdmVjKSA6IE5ldyBBaXggNSB0YXJnZXQgYWl4NWNvZmY2NC1yczYwMDAuCgkqIHJzNjAwMC1jb3JlLmMgOiBVcGRhdGUgY29weXJpZ2h0IGRhdGUuCgkqIHhjb2ZmbGluay5jIChiZmRfeGNvZmZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogQ2hlY2sgZm9yIE5VTEwKCWNzZWN0cHAuCgkqIGNvZmZjb2RlLmggKGNvZmZfbmV3X3NlY3Rpb25faG9vaykgOiBVc2UgbmV3IGFjY2Vzc29yIG1hY3Jvcy4KCShjb2ZmX3NldF9hcmNoX21hY2hfaG9vaykgOiBBZGQgQWl4IDUgVTY0X1RPQ01BR0lDIG1hZ2ljICMuCgkoY29mZl9zZXRfZmxhZ3MpIDogVXNlIGJmZF94Y29mZl9tYWdpY19udW1iZXIuCgkqIGxpYnhjb2ZmLmggKGJmZF94Y29mZl9pc194Y29mZjY0KTogQWRkIFU2NF9UT0NNQUdJQy4KCSogY29uZmlndXJlLmluIDogQWRkIHBvd2VycGMtKi1haXg1IGFuZCByczYwMDAtKi1haXg1IHN1cHBvcnQuCgkqIE1ha2VmaWxlLmFtIDogU2FtZS4KCSogY29uZmlnLmJmZCA6IFNhbWUuCgkqIHRhcmdldHMuYyA6IFNhbWUuCgkqIGNvbmZpZ3VyZSA6IFJlZ25lcmF0ZS4KCSogTWFrZWZpbGUuaW4gOiBTYW1lLgoJKiBiZmQtaW4yLmggOiBTYW1lLgoKMjAwMi0wMy0xOCAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBwby9mci5wbzogVXBkYXRlZCB2ZXJzaW9uLgoKMjAwMi0wMy0xOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxpYmJmZC5jIChiZmRfd3JpdGVfYmlnZW5kaWFuXzRieXRlX2ludCk6IFJldHVybiB0cnVlIGlmZiBzdWNjZXNzLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogYXJjaGl2ZS5jIChjb2ZmX3dyaXRlX2FybWFwKTogUGFzcyBvbiBmYWlsdXJlcyBmcm9tCgliZmRfd3JpdGVfYmlnZW5kaWFuXzRieXRlX2ludC4KCjIwMDItMDMtMTQgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChOQU1FKGJmZF9lbGYsc2l6ZV9keW5hbWljX3NlY3Rpb25zKSk6IFNldCB0aGUgQkZECgllcnJvciB0byBiZmRfZXJyb3Jfbm9ucmVwcmVzZW50YWJsZV9zZWN0aW9uIGZvciByZWluaXRfYXJyYXkKCXNlY3Rpb24gaW4gRFNPLgoKMjAwMi0wMy0xNCAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb2ZmY29kZS5oIChjb2ZmX3NsdXJwX3N5bWJvbF90YWJsZSk6IFdoZW4gYWRkaW5nIEJTRl9XRUFLIGZsYWcsCglPUiBpdCBpbiByYXRoZXIgdGhhbiByZXBsYWNpbmcgcHJldmlvdXNseSBzZWxlY3RlZCBmbGFncy4KCgkqIGVsZnh4LXRhcmdldC5oIChUQVJHRVRfQklHX1NZTSk6IFNldCBhcl9tYXhfbmFtZWxlbiB0byAxNS4KCShUQVJHRVRfTElUVExFX1NZTSk6IFNldCBhcl9tYXhfbmFtZWxlbiB0byAxNS4KCjIwMDItMDMtMTQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjcHUtbWlwcy5jIChtaXBzX2NvbXBhdGlibGUpOiBOZXcuICBEb24ndCBjaGVjayBiaXRzX3Blcl93b3JkLgoJKE4pOiBVc2UgdGhlIGFib3ZlLgoJKiBlbGZsaW5rLmggKGVsZl9iZmRfZmluYWxfbGluayk6IFJldmVydCBsYXN0IGNoYW5nZS4gIEluc3RlYWQsCgllbnN1cmUgcmVsb2Mgc2l6ZSBtYXRjaGVzIGJlZm9yZSBjYWxsaW5nIGVsZl9saW5rX2lucHV0X2JmZC4KCUFkZCBhbiBhc3NlcnQgdG8gY2hlY2sgcmVsb2Mgc2l6ZSB3aGVuIGNvdW50aW5nIG91dHB1dCByZWxvY3MuCgoyMDAyLTAzLTE0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIG1tby5jIChtbW9fZ2V0X2xvYyk6IFJldHVybiBOVUxMIHJhdGhlciB0aGFuIGZhbHNlLgoKMjAwMi0wMy0xMyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBwby9mci5wbzogVXBkYXRlZCB2ZXJzaW9uLgoKMjAwMi0wMy0xMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGFyY2h1cmVzLmMgKGJmZF9kZWZhdWx0X2NvbXBhdGlibGUpOiBUZXN0IGJpdHNfcGVyX3dvcmQuCgkqIGNwdS1pMzg2LmMgKGkzODZfY29tcGF0aWJsZSk6IFJlbW92ZS4gIFJlcGxhY2Ugb2NjdXJyZW5jZXMgd2l0aAoJYmZkX2RlZmF1bHRfY29tcGF0aWJsZS4KCSogY3B1LWkzNzAuYyAoaTM3MF9jb21wYXRpYmxlKTogTGlrZXdpc2UuCgkqIGNwdS1zcGFyYy5jIChzcGFyY19jb21wYXRpYmxlKTogTGlrZXdpc2UuCgkqIGNwdS1oODMwMC5jIChjb21wYXRpYmxlKTogVGVzdCBpbi0+YXJjaCA9PSBvdXQtPmFyY2guCgoJKiBlbGZsaW5rLmg6IEZvcm1hdHRpbmcgZml4ZXMuCgkoZWxmX2xpbmtfb3V0cHV0X2V4dHN5bSk6IE1lcmdlIHVuZGVmaW5lZCBhbmQgdW5kZWYgd2VhayBjYXNlcy4KCgkqIGVsZmxpbmsuaCAoZWxmX2JmZF9maW5hbF9saW5rKTogT25seSBjYWxsIGVsZl9saW5rX2lucHV0X2JmZAoJd2hlbiB3b3JkIHNpemUgb2YgaW5wdXQgbWF0Y2hlcyBvdXRwdXQgd29yZCBzaXplLgoKMjAwMi0wMy0xMiAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogY3B1LWkzODYuYyAoaTM4Nl9jb21wYXRpYmxlKTogTmV3LiAgVXNlIGl0IGluc3RlYWQgb2YKCWJmZF9kZWZhdWx0X2NvbXBhdGlibGUuCgoyMDAyLTAzLTA3ICBILkouIEx1ICAoaGpsQGdudS5vcmcpCgoJKiBjb2ZmLXNoLmMgKHNoY29mZl9yZWxvY19tYXApOiBVc2UgYmZkX3JlbG9jX2NvZGVfcmVhbF90eXBlCglhcyB0aGUgdHlwZSBmb3IgYmZkX3JlbG9jX3ZhbC4KCjIwMDItMDMtMDUgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZUBoaWF1bHkxLmhpYS5ucmMuY2E+CgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9pc19keW5hbWljX2xvYWRlcl9zeW1ib2wpOiBOZXcgZnVuY3Rpb24uCgkoZWxmX2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IElnbm9yZSB1bmRlZmluZWQgZHluYW1pYyBsb2FkZXIgc3ltYm9scy4KCShlbGZfaHBwYV9maW5hbF9saW5rX3JlbG9jYXRlKTogQ29ycmVjdCByZWxvY2F0aW9ucyBmb3IgaW5kaXJlY3QKCXJlZmVyZW5jZXMgdG8gbG9jYWwgZGF0YSB0aHJvdWdoIHRoZSBETFQuICBGaXggLm9wZCBjcmVhdGlvbiBmb3IKCWxvY2FsIHN5bWJvbHMgdXNpbmcgUl9QQVJJU0NfTFRPRkZfRlBUUjMyIGFuZCBSX1BBUklTQ19GUFRSNjQKCXJlbG9jYXRpb25zLiAgVXNlIGVfbHNlbCBzZWxlY3RvciBmb3IgUl9QQVJJU0NfRExUSU5EMjFMLAoJUl9QQVJJU0NfTFRPRkZfRlBUUjIxTCBhbmQgUl9QQVJJU0NfTFRPRkZfVFAyMUwgYXMgcGVyCgkiUHJvY2Vzc29yLVNwZWNpZmljIEVMRiBmb3IgUEFfUklTQywgVmVyc2lvbiAxLjQzIiBkb2N1bWVudC4KCVNpbWlsYXJseSwgdXNlIGVfcnNlbCBmb3IgRExUIGFuZCBMVE9GRiAnUicgcmVsb2NhdGlvbnMuCgkqIGVsZjMyLWhwcGEuYyAoZmluYWxfbGlua19yZWxvY2F0ZSk6IFJldmlzZSByZWxvY2F0aW9uIHNlbGVjdG9ycwoJYXMgcGVyICJQcm9jZXNzb3ItU3BlY2lmaWMgRUxGIGZvciBQQV9SSVNDLCBWZXJzaW9uIDEuNDMiIGRvY3VtZW50LgoKMjAwMi0wMy0wNSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBtZXJnZS5jIChfYmZkX21lcmdlX3NlY3Rpb25zKTogRG9uJ3Qgc2VnZmF1bHQgaWYgdGhlcmUKCWlzIG5vdGhpbmcgdG8gbWVyZ2UgZHVlIHRvIEdDLgoKMjAwMi0wMy0wNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLWhwcGEuYyAoY2xvYmJlcl9taWxsaWNvZGVfc3ltYm9scyk6IFJlbW92ZSBoYWNrIHRvIGtlZXAKCXN5bWJvbHMgdGhhdCBoYXZlIGJlZW4gZm9yY2VkIGxvY2FsLgoKCSogZWxmbGluay5oIChlbGZfYmZkX2ZpbmFsX2xpbmspOiBDYWxsIGVsZl9saW5rX291dHB1dF9leHRzeW0KCXRvIG91dHB1dCBmb3JjZWQgbG9jYWwgc3ltcyBmb3Igbm9uLXNoYXJlZCBsaW5rLgoJKGVsZl9saW5rX291dHB1dF9leHRzeW0pOiBUd2VhayBjb25kaXRpb24gZm9yIGNhbGxpbmcgYmFja2VuZAoJYWRqdXN0X2R5bmFtaWNfc3ltYm9sIHNvIHRoYXQgcHJldmlvdXMgYmVoYXZpb3VyIGlzIGtlcHQuCglXaGl0ZXNwYWNlIGNoYW5nZXMgdGhyb3VnaG91dCBmaWxlLgoKMjAwMi0wMy0wNCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGYuYyAoYmZkX3NlY3Rpb25fZnJvbV9zaGRyKTogSGFuZGxlIHNwZWNpYWwgc2VjdGlvbnMsCgkuaW5pdF9hcnJheSwgLmZpbmlfYXJyYXkgYW5kIC5wcmVpbml0X2FycmF5LgoJKGVsZl9mYWtlX3NlY3Rpb25zKTogTGlrZXdpc2UuCgoJKiBlbGZsaW5rLmggKE5BTUUoYmZkX2VsZixzaXplX2R5bmFtaWNfc2VjdGlvbnMpKTogQ3JlYXRlIHRoZQoJRFQgZW50cnkgb25seSBpZiB0aGUgc2VjdGlvbiBpcyBpbiBvdXRwdXQgZm9yIC5pbml0X2FycmF5LAoJLmZpbmlfYXJyYXkgYW5kIC5wcmVpbml0X2FycmF5LiBDb21wbGFpbiBhYm91dCAucHJlaW5pdF9hcnJheQoJc2VjdGlvbiBpbiBEU08uCgkoZWxmX2JmZF9maW5hbF9saW5rKTogV2FybiB6ZXJvIHNpemUgZm9yIC5pbml0X2FycmF5LAoJLmZpbmlfYXJyYXkgYW5kIC5wcmVpbml0X2FycmF5IHNlY3Rpb25zLgoKCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3NlY3Rpb25fZnJvbV9zaGRyKTogUmVtb3ZlCglTSFRfSU5JVF9BUlJBWSwgU0hUX0ZJTklfQVJSQVkgYW5kIFNIVF9QUkVJTklUX0FSUkFZLgoJKGVsZk5OX2lhNjRfZmFrZV9zZWN0aW9ucyk6IFJlbW92ZSAuaW5pdF9hcnJheSwgLmZpbmlfYXJyYXkgYW5kCgkucHJlaW5pdF9hcnJheS4KCjIwMDItMDMtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWd1cmUuaW4gKFdJTjMyTElCQUREKTogRG9uJ3QgZXZhbCBQSUNGTEFHIGFzc2lnbm1lbnQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMDMtMDIgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBjb2ZmNjQtcnM2MDAwLmMgKHhjb2ZmNjRfaG93dG9fdGFibGUpOiBSZXBsYWNlIGhvd3RvIHR5cGVzIHdpdGgKCXN5bWJvbGljIGVxdWl2LgoJKiBjb2ZmLXJzNjAwMC5jICh4Y29mZl9ob3d0b190YWJsZSk6IFNhbWUuCgoyMDAyLTAzLTAxICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KCgkqIGVsZmxpbmsuaCAoc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogSWYgc2VjdGlvbiBuYW1lZAoJIi5wcmVpbml0X2FycmF5IiBleGlzdHMsIGNyZWF0ZSBEVF9QUkVJTklUX0FSUkFZIGFuZAoJRFRfUFJFSU5JVF9BUlJBWVNaIGVudHJpZXMgaW4gZHluYW1pYyB0YWJsZS4gIEFuYWxvZ291c2x5IGZvcgoJIi5pbml0X2FycmF5IiBhbmQgIi5maW5pX2FycmF5Ii4KCShlbGZfYmZkX2ZpbmFsX2xpbmspOiBIYW5kbGUgRFRfUFJFSU5JVF9BUlJBWVNaLCBEVF9JTklUX0FSUkFZU1osCglEVF9GSU5JX0FSUkFZU1osIERUX1BSRUlOSVRfQVJSQVksIERUX0lOSVRfQVJSQVksIGFuZAoJRFRfRklOSV9BUlJBWS4KCjIwMDItMDItMjYgIEFuZHJldyBNYWNsZW9kICA8YW1hY2xlb2RAY3lnbnVzLmNvbT4KCgkqIGVsZmxpbmsuaCAoZWxmX2JmZF9maW5hbF9saW5rKTogRG9uJ3QgY3Jhc2ggb24gU0hOX1VOREVGIGxvY2FsCglkeW5zeW1zLgoKMjAwMi0wMi0yNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LWhwcGEuaDogVXBkYXRlIGNvcHlyaWdodCBkYXRlLgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9jaGVja19yZWxvY3MpOiBXYXJuaW5nIGZpeC4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IERvbid0IGdlbmVyYXRlIHBvd2VyNCBzdHlsZSBicmFuY2gKCWhpbnRzIGZvciAqX0JSVEFLRU4gYW5kICpfQlJOVEFLRU4gcmVsb2NzLgoKMjAwMi0wMi0yMiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1zaDY0LmMgKHNoX2VsZjY0X3JlbG9jYXRlX3NlY3Rpb24pOiBGaXggYSB0eXBvIGZyb20gbXkKCWxhc3QgcGF0Y2guCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMi0wMi0yMSAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogZWxmNjQteDg2LTY0LmM6IE1ham9yIHJld29yayB0aGF0IGludHJvZHVjZXMgYWxsIHJlY2VudCBjaGFuZ2VzCgl0byB0aGUgeDg2LTY0IGJhY2tlbmQuICBHZXQgYSBjbG9zZXIgbWF0Y2ggdG8gZWxmMzItaTM4Ni4KCShzdHJ1Y3QgZWxmNjRfeDg2XzY0X2R5bl9yZWxvY3MpOiBSZW5hbWUgZnJvbQoJZWxmNjRfeDg2XzY0X3BjcmVsX3JlbG9jc19jb3BpZWQsIGFkZCBhZGRpdGlvbmFsIGZpZWxkcy4gIENoYW5nZQoJYWxsIHVzZXJzLgoJKHN0cnVjdCBlbGY2NF94ODZfNjRfbGlua19oYXNoX3RhYmxlKTogQWRkIHNob3J0IGN1dHMgdG8gc29tZQoJc2VjdGlvbnMuCgkobGlua19oYXNoX25ld2Z1bmMpOiBSZW5hbWUgZnJvbSBlbGY2NF94ODZfNjRfbGlua19oYXNoX25ld2Z1bmMsCglyZW1vdmUgY2FzdHMsIGluaXRpYWxpemUgbmV3IGhhc2ggbWVtYmVycy4KCShjcmVhdGVfZ290X3NlY3Rpb24pOiBOZXcuCgkoZWxmNjRfeDg2XzY0X2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogTmV3LgoJKGVsZjY0X3g4Nl82NF9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IE5ldy4KCShlbGY2NF94ODZfNjRfY2hlY2tfcmVsb2NzKTogRG9uJ3QgYWxsb2NhdGUgc3BhY2UgZm9yIGR5bmFtaWMKCXJlbG9jcywgLmdvdCBvciAucmVsZ290IGhlcmUgYnV0IGRvIGl0IGluIGFsbG9jYXRlX2R5bnJlbG9jcy4KCVJlZmVyZW5jZSBjb3VudCBwb3NzaWJsZSAucGx0IGFuZCAuZ290IGVudHJpZXMuICBEb24ndCB0ZXN0IGlucHV0CglzZWN0aW9uIFNFQ19SRUFET05MWSBoZXJlIHRvIHRyeSB0byBhdm9pZCBjb3B5IHJlbG9jcywgYW5kIGtlZXAKCWR5bl9yZWxvY3MgcmVnYXJkbGVzcyBvZiBFTEZfTElOS19OT05fR09UX1JFRi4gIERvbid0IHNldAoJREZfVEVYVFJFTCBoZXJlLiAgRGVsYXkgc2V0dGluZyBvZiB2YXJpYWJsZXMgdW50aWwgbmVlZGVkLiAgQ2FjaGUKCXBvaW50ZXIgdG8gInNyZWxvYyIgc2VjdGlvbiBpbiBlbGZfc2VjdGlvbl9kYXRhLiBUd2VhayBjb25kaXRpb24KCXVuZGVyIHdoaWNoIC5nb3QgY3JlYXRlZC4gIFJlcG9ydCBmaWxlcyB3aXRoIGJhZCByZWxvY2F0aW9uCglzZWN0aW9uIG5hbWVzLgoJKGVsZjY0X3g4Nl82NF9nY19zd2VlcF9ob29rKTogU3dlZXAgZHluX3JlbG9jcyBhbmQgbG9jYWxfZHlucmVsLgoJUmVmZXJlbmNlIGNvdW50IHBvc3NpYmxlIC5wbHQgZW50cmllcy4gIERvbid0IGRlYWxsb2NhdGUgLmdvdCBhbmQKCS5yZWxnb3Qgc3BhY2UgaGVyZS4KCShlbGY2NF94ODZfNjRfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogSGFuZGxlIG5vY29weXJlbG9jLiAgRG9uJ3QKCWRvIGNvcHkgcmVsb2MgcHJvY2Vzc2luZyBmb3Igd2Vha2RlZnMuICBSZW1vdmUgcmVkdW5kYW50IGNhc3RzIGFuZAoJYWJvcnRzLiAgRGVsYXkgc2V0dGluZyBvZiB2YXJzIHVudGlsIG5lZWRlZC4gIE1vdmUgY3JlYXRpb24gb2YKCWR5bmFtaWMgc3ltYm9scyBhbmQgYWxsb2NhdGlvbiBvZiAucGx0IGFuZCAucmVsYS5wbHQgdG8KCWFsbG9jYXRlX2R5bnJlbG9jcy4gIFJlcGxhY2UgQkZEX0FTU0VSVCB3aXRoIGFib3J0LgoJKFdJTExfQ0FMTF9GSU5JU0hfRFlOQU1JQ19TWU1CT0wpOiBOZXcuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogTmV3LgoJKHJlYWRvbmx5X2R5bnJlbG9jcyk6IE5ldy4KCShlbGY2NF94ODZfNjRfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogQ2FsbCByZWFkb25seV9keW5yZWxvY3MuCglBbGxvY2F0ZSBzcGFjZSBmb3IgZHluIHJlbG9jcy4gIFJlcGxhY2UgQkZEX0FTU0VSVCB3aXRoIGFib3J0LgoJWmVybyBvdXQgdGhlIGR5bmFtaWMgYWxsb2NhdGVkIGNvbnRlbnQgc3BhY2UuCgkoZWxmNjRfeDg2XzY0X2Rpc2NhcmRfY29waWVzKTogUmVtb3ZlZC4KCShlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IE1ha2UgdXNlIG9mIGR5bmFtaWMgc2VjdGlvbgoJc2hvcnQtY3V0cy4gIExvY2FsaXNlIHZhcnMsIGFuZCBkZWxheSBzZXR0aW5nLiAgQmV0dGVyIGVycm9yCglyZXBvcnRpbmcsIHJlcGxhY2UgQkZEX0FTU0VSVCB3aXRoIGFib3J0LiAgQ2hlY2sKCUVMRl9MSU5LX0hBU0hfREVGX0RZTkFNSUMgdG8gc2VlIGlmIGEgc3ltYm9sIGlzIG5vdCBkZWZpbmVkIGluIHRoZQoJcmVndWxhciBvYmplY3QgZmlsZSBhbmQgdHJlYWQgdGhlIHdlYWsgZGVmaW5pdGlvbiBhcyB0aGUgbm9ybWFsCglvbmUuICBEb24ndCBkaXNjYXJkIHJlbG9jcyBmb3IgdW5kZWZ3ZWFrIG9yIHVuZGVmaW5lZCBzeW1ib2xzIGFuZAoJY2hlY2sgIURFRl9SRUdVTEFSIGFzIHdlbGwgYXMgREVGX0RZTkFNSUMgaW4gdGVzdCBmb3IgYXZvaWRlZCBjb3B5CglyZWxvY3MuCgkoZWxmNjRfeDg2XzY0X2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IERvbid0IGNvcHkgcmVsb2NzIGZvcgoJc3ltYm9scyB0aGF0IGhhdmUgYmVlbiBmb3JjZWQgbG9jYWwuICBVc2Ugc2FtZSB0ZXN0IHRvIGRlY2lkZSBpZgoJd2UgY2FuIHVzZSBhIHJlbGF0aXZlIHJlbG9jIGZvciBnb3QgYXMgcmVsb2NhdGVfc2VjdGlvbi4gIEV4cGFuZAoJU0hOX1VOREVGIGNvbW1lbnQuICBNb3ZlIGV4cHJlc3Npb25zIG91dCBvZiBmdW5jdGlvbiBjYWxscy4KCVJlcGxhY2UgQkZEX0FTU0VSVCB3aXRoIGFib3J0LgoJKGJmZF9lbGY2NF9iZmRfZmluYWxfbGluayk6IFJlbW92ZWQuCgkoZWxmX2JhY2tlbmRfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBEZWZpbmUuCgoyMDAyLTAyLTIwICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogY29mZi1yczYwMDAuYyAoeGNvZmZfaG93dG9fdGFibGUpOiBBZGQgMTYgYml0IFJfQkEuCgkoX2JmZF94Y29mZl9yZWxvY190eXBlX2xvb2t1cCk6IFVzZSBpdC4KCSogY29mZjY0LXJzNjAwMC5jICh4Y29mZjY0X2hvd3RvX3RhYmxlKTogU2FtZS4KCSh4Y29mZjY0X3JlbG9jX3R5cGVfbG9va3VwKTogU2FtZS4KCjIwMDItMDItMjAgIFBldGVyIFNjaGF1ZXIgIDxwZXNAcmVnZW50LmUtdGVjaG5pay50dS1tdWVuY2hlbi5kZT4KCgkqIG9zZi1jb3JlLmMgKG9zZl9jb3JlX3ZlYyk6IE9TRi8xIChEaWdpdGFsIFVuaXgpIGNvcmUgZmlsZXMgYXJlCglsaXR0bGUgZW5kaWFuLgoKMjAwMi0wMi0xOSAgTWFydGluIFNjaHdpZGVmc2t5ICA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KCgkqIGFyY2h1cmVzLmMgKGJmZF9tYWNoX3MzOTBfZXNhKTogUmVuYW1lIHRvIGJmZF9tYWNoX3MzOTBfMzEuCgkoYmZkX21hY2hfczM5MF9lc2FtZSk6IFJlbmFtZSB0byBiZmRfbWFjaF9zMzkwXzY0LgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGNwdS1zMzkwLmMgKGFyY2hfaW5mb19zdHJ1Y3QpOiBVc2UgcmVuYW1lZCBhcmNoaXRlY3R1cmUgZGVmaW5lcy4KCVJlcGxhY2UgYXJjaGl0ZWN0dXJlIG5hbWUgInMzOTAiIHdpdGggInMzOTA6MzEtYml0IiBhbmQgInMzOTA6ZXNhbWUiCgl3aXRoICJzMzkwOjY0LWJpdCIuCgkqIGVsZjMyLXMzOTAuYyAoZWxmX2hvd3RvX3RhYmxlKTogQWRkIDMyIGJpdCBwYyByZWxhdGl2ZSByZWxvY2F0aW9ucy4KCShlbGZfczM5MF9yZWxvY190eXBlX2xvb2t1cCk6IExpa2V3aXNlLgoJKGVsZl9zMzkwX2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLgoJKGVsZl9zMzkwX2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCShlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkoZWxmX3MzOTBfb2JqZWN0X3ApOiBVc2UgcmVuYW1lZCBhcmNoaXRlY3R1cmUgZGVmaW5lLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9zMzkwX29iamVjdF9wKTogVXNlIHJlbmFtZWQgYXJjaGl0ZWN0dXJlIGRlZmluZS4KCjIwMDItMDItMTkgIEZyYW5rIENoLiBFaWdsZXIgIDxmY2hlQHJlZGhhdC5jb20+CgoJKiBzeW1zLmMgKHN0dFtdKTogU29ydGVkLiAgQWRkZWQgLmluaXQvLmZpbmkgLT4gInQiIG1hcHBpbmcuCgoyMDAyLTAyLTE5ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZi1laC1mcmFtZS5jIChfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhfZnJhbWUpOiBFbmFibGUKCWFic3B0ciAtPiBwY3JlbCBvcHRpbWl6YXRpb24gZm9yIHNoYXJlZCBsaWJzLgoJT25seSBjcmVhdGUgbWluaW1hbCAuZWhfZnJhbWVfaGRyIGlmIGFic3B0ciBGREUgZW5jb2RpbmcgaW4gc2hhcmVkCglsaWJyYXJ5IGNhbm5vdCBiZSBjb252ZXJ0ZWQgdG8gcGNyZWwuCgkoX2JmZF9lbGZfZWhfZnJhbWVfc2VjdGlvbl9vZmZzZXQpOiBSZXR1cm4gLTIgaWYgbWFraW5nIGFic3B0cgoJcmVsYXRpdmUuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IElmCglfYmZkX2VsZl9zZWN0aW9uX29mZnNldCByZXR1cm5lZCAtMiwgc2tpcCwgYnV0IG1ha2Ugc3VyZSB0aGUKCXJlbG9jYXRpb24gaXMgaW5zdGFsbGVkLgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBMaWtld2lzZS4KCSogZWxmMzItY3Jpcy5jIChjcmlzX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWkzNzAuYyAoaTM3MF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhrLmMgKGVsZl9tNjhrX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmMgKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItc2guYyAoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItc3BhcmMuYyAoZWxmMzJfc3BhcmNfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jIChlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNoNjQuYyAoc2hfZWxmNjRfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKTogSGFuZGxlCglfYmZkX2VsZl9zZWN0aW9uX29mZnNldCByZXR1cm5pbmcgLTIgdGhlIHNhbWUgd2F5IGFzIC0xLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfaW5zdGFsbF9keW5fcmVsb2MpOiBMaWtld2lzZS4KCSogZWxmMzItbWlwcy5jIChtaXBzX2VsZl9jcmVhdGVfZHluYW1pY19yZWxvY2F0aW9uKTogQWRkIEZJWE1FCglhbmQgQkZEX0FTU0VSVC4KCSogZWxmNjQtbWlwcy5jIChtaXBzX2VsZjY0X2NyZWF0ZV9keW5hbWljX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCjIwMDItMDItMTggIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiB4Y29mZmxpbmsuYyAoYmZkX3hjb2ZmX2xpbmtfZ2VybmF0ZV9ydGluaXQpOiBBZGQgLWJydGwgc3VwcG9ydC4KCShiZmRfeGNvZmZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogU2FtZS4KCSogYmZkLWluLmggKGJmZF94Y29mZl9saW5rX2dlbmVyYXRlX3J0aW5pdCk6IFNhbWUuCgkoYmZkX3hjb2ZmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFNhbWUuCgkqIGNvZmYtcnM2MDAwLmMgKHhjb2ZmX2dlbmVyYXRlX3J0aW5pdCk6IFNhbWUuCgkqIGNvZmYtcnM2NDYwMDAuYyAoeGNvZmY2NF9nZW5lcmF0ZV9ydGluaXQpOiBTYW1lLgoJKiBsaWJ4Y29mZi5oIChzdHJ1Y3QgeGNvZmZfYmFja2VuZF9kYXRhX3JlYyk6IFNhbWUuCgkqIHhjb2ZmbGluay5jICh4Y29mZl9idWlsZF9sZHN5bXMsIHhjb2ZmX2xpbmtfYWRkX3N5bWJvbHMpOiBDbGVhbi4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMi0wMi0xOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChTVEZEX0ZSMF8wUjEsIExGRF9GUjBfMFIxLCBCTFIpOiBEZWZpbmUuCgkoc3RydWN0IHBwY19saW5rX2hhc2hfdGFibGUpOiBBZGQgc2Zwci4KCShwcGM2NF9lbGZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IEluaXQgaXQuCgkocHBjNjRfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogU3BsaXQgY3JlYXRpb24gb2YgLnN0dWIgYW5kCgkuZ2xpbmsgb3V0IHRvLi4KCShjcmVhdGVfbGlua2FnZV9zZWN0aW9ucyk6IC4uaGVyZS4gIE1ha2UgLnNmcHIgdG9vLgoJKHBwYzY0X2VsZl9jaGVja19yZWxvY3MpOiBDYWxsIGNyZWF0ZV9saW5rYWdlX3NlY3Rpb25zLCBhbmQgc2V0CglkeW5vYmogZWFybHkuCgkoTUlOX1NBVkVfRlBSLCBNQVhfU0FWRV9GUFIpOiBEZWZpbmUuCgkocHBjNjRfZWxmX2Z1bmNfZGVzY19hZGp1c3QpOiBMb29rIGZvciBtaXNzaW5nIC5fc2F2ZWYqIGFuZAoJLl9yZXN0ZiogZnVuY3Rpb25zLCBhbmQgY3JlYXRlIGFzIG5lZWRlZC4KCShmdW5jX2Rlc2NfYWRqdXN0KTogT25seSBmb3JjZV9sb2NhbCBmb3Igc2hhcmVkIGxpYnMuCgoyMDAyLTAyLTE4ICBEYXZpZCBPJ0JyaWVuICA8b2JyaWVuQEZyZWVCU0Qub3JnPgoKCSogY29uZmlndXJlLmluOiBCdW1wIHZlcnNpb24gbnVtYmVyIHBvc3QgMi4xMiBicmFuY2hpbmcuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMDItMTcgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIG1tby5jOiBDb3JyZWN0IGFuZCBpbXByb3ZlIGNvbW1lbnRzLgoJKG1tb193cml0ZV9jaHVuayk6IFN0b3JlIHRyYWlsaW5nIGJ5dGUgaW4gYmZkIGJ1ZmZlcjsgZG9uJ3QKCXplcm8tcGFkLiAgVXNlIGlucHV0IHRvIGZpbGwgdXAgbm9uLWVtcHR5IGJmZCBidWZmZXIuCgkobW1vX2ZsdXNoX2NodW5rKTogTmV3IGZ1bmN0aW9uLgoJKG1tb193cml0ZV9sb2NfY2h1bmspOiBBZGQgcGFyYW1ldGVyIGxhc3Rfdm1hcCwgYWxsIGNhbGxlcnMKCWNoYW5nZWQuICBEb24ndCBlbWl0IGxvY2F0aW9uIHNwZWNpZmllciBpZiBWTUEgaXMgc2FtZSBhcwoJKkxBU1RfVk1BUCBhZnRlciBvbWl0dGluZyBsZWFkaW5nIHplcm8gY29udGVudHMuICBDYWxsCgltbW9fZmx1c2hfY2h1bmsgYmVmb3JlIGVtaXR0aW5nIGxvY2F0aW9uIHNwZWNpZmllci4KCShtbW9fd3JpdGVfbG9jX2NodW5rX2xpc3QpOiBDYWxsIG1tb19mbHVzaF9jaHVuayB3aGVuIGZpbmlzaGVkCgl3aXRoIG1tb193cml0ZV9sb2NfY2h1bmsgY2FsbHMuCgkobW1vX2ludGVybmFsX3dyaXRlX3NlY3Rpb24pOiBDYWxsIG1tb19mbHVzaF9jaHVuayBhZnRlcgoJbW1vX3dyaXRlX2NodW5rLgoJKG1tb193cml0ZV9zeW1ib2xzX2FuZF90ZXJtaW5hdG9yKTogTW92ZSA6TWFpbiB0byBmaXJzdCBwb3NpdGlvbgoJaW4gc3ltYm9sIGFycmF5LiAgQWRkIGZha2VkIG9uZSBpZiBpdCBkb2VzIG5vdCBleGlzdCBpZiB0aGVyZSBhcmUKCW90aGVyIHN5bWJvbHMuICBEb24ndCBhZGQgaXQgaWYgdGhlcmUgYXJlIG5vIHN5bWJvbHMgYXQgYWxsLiAgTW92ZQoJb3V0IHRlc3QgZm9yIHZhbHVlIG9mIDpNYWluIGZyb20gc3ltYm9sIGxvb3AuICBSZW5hbWUgdGFibGUKCWZha2VtYWluIHRvIG1haW50YWJsZSBhbmQgdmFyaWFibGUgbWFpbnN5bSB0byBmYWtlbWFpbi4KCjIwMDItMDItMTUgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKSBbQlJTR1BdOiBBIHRhcmdldAoJc2VjdGlvbiB3aXRoIG5vIGdvdCBtYXRjaGVzIGFueSBnb3QuICBTaW1wbGlmeSBlcnJvciBnZW5lcmFpb24uCgoyMDAyLTAyLTE1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCVN1cHBvcnQgYXJiaXRyYXJ5IGxlbmd0aCBmaWxsIHBhdHRlcm5zLgoJKiBsaW5rZXIuYyAoYmZkX25ld19saW5rX29yZGVyKTogWmVybyBhbGwgZmllbGRzIHdpdGggYmZkX3phbGxvYy4KCShfYmZkX2RlZmF1bHRfbGlua19vcmRlcik6IFJlbW92ZSBiZmRfZmlsbF9saW5rX29yZGVyIGNvZGUuCglDYWxsIGRlZmF1bHRfZGF0YV9saW5rX29yZGVyLgoJKGRlZmF1bHRfZmlsbF9saW5rX29yZGVyKTogRGVsZXRlLgoJKGRlZmF1bHRfZGF0YV9saW5rX29yZGVyKTogTmV3IGZ1bmN0aW9uLgoJKiBlbGYzMi1taXBzLmMgKF9iZmRfbWlwc19lbGZfZmluYWxfbGluayk6IFJlcGxhY2Ugb2NjdXJyZW5jZXMKCW9mIGJmZF9maWxsX2xpbmtfb3JkZXIgd2l0aCBiZmRfZGF0YV9saW5rX29yZGVyLgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9maW5hbF9saW5rKTogTGlrZXdpc2UuCgkqIGVsZjY0LW1pcHMuYyAobWlwc19lbGY2NF9maW5hbF9saW5rKTogTGlrZXdpc2UuCgoJKiBiZmQuYyAoYmZkX3NjYW5fdm1hKTogQ2xhbXAgb3ZlcmZsb3dzIHRvIG1heCBiZmRfdm1hIHZhbHVlLgoJQ29ycmVjdCB2YWx1ZSByZXR1cm5lZCBpbiAiZW5kIiBmb3IgIjB4PG5vbi1oZXg+Ii4KCjIwMDItMDItMTQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogY3B1LWFybS5jIChwcm9jZXNzb3JzKTogUmVwbGFjZSAnYXJjaCcgZmllbGQgd2l0aCAnbWFjaCcuCgkoc2Nhbik6IFRlc3QgYWdhaW5zdCAnbWFjaCcgZmllbGQgaW4gaW5mbyBzdHJ1Y3R1cmUuCgoyMDAyLTAyLTE0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLmMgKGVsZl9mYWtlX3NlY3Rpb25zKTogVXNlIFNIVF9OT0JJVFMgd2hlbiBTRUNfTkVWRVJfTE9BRC4KCjIwMDItMDItMTQgIE1hdHQgRnJlZGV0dGUgIDxmcmVkZXR0ZUBuZXRic2Qub3JnPgoKCSogZWxmMzItbTY4ay5jIChlbGYzMl9tNjhrX3ByaW50X3ByaXZhdGVfYmZkX2RhdGEpOiBSZWNvZ25pemUKCUVGX002ODAwMC4KCjIwMDItMDItMTMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogZWxmLmMgKF9iZmRfZWxmX21ha2Vfc2VjdGlvbl9mcm9tX3NoZHIpOiBEbyBub3QgaW5zaXN0IG9uCglub24temVybyBwaHlzaWNhbCBhZGRyZXNzZXMgd2hlbiBhZGp1c3RpbmcgdGhlIExNQXMgb2YgbmV3CglzZWN0aW9ucy4KCjIwMDItMDItMTIgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZUBoaWF1bHkxLmhpYS5ucmMuY2E+CgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9yZWxvY19maW5hbF90eXBlKTogTmV3IGZ1bmN0aW9uIHN0cmlwcGVkCglmcm9tIF9iZmRfZWxmX2hwcGFfZ2VuX3JlbG9jX3R5cGUuCgkoX2JmZF9lbGZfaHBwYV9nZW5fcmVsb2NfdHlwZSk6IFJlbW92ZSBkdXBsaWNhdGUgcHJvdG90eXBlLgoJKiBlbGYzMi1ocHBhLmggKGVsZjMyX2hwcGFfcmVsb2NfZmluYWxfdHlwZSk6IEFkZCBwcm90cHR5cGUuCgkqIGVsZjMyLWhwcGEuYzogSW5jbHVkZSBlbGYzMi1ocHBhLmggYmVmb3JlIGVsZi1ocHBhLmguCgkqIGVsZjY0LWhwcGEuaCAoZWxmNjRfaHBwYV9yZWxvY19maW5hbF90eXBlKTogQWRkIHByb3RwdHlwZS4KCjIwMDItMDItMTIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmLW0xMDMwMC5jIChtbjEwMzAwX2VsZl9yZWxheF9zZWN0aW9uKTogU2tpcCBzZWN0aW9uIGJlZm9yZQoJbG9hZGluZyBpdHMgY29udGVudHMgaWYgdGhlcmUncyBub3RoaW5nIHRvIGRvIGluIGl0LgoKMjAwMi0wMi0xMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfc2l6ZV9zdHVicyk6IENvcnJlY3QgdGVzdCBmb3IgY3Jvc3NpbmcKCTY0ayBib3VuZGFyeS4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogQWRkIGR5bmFtaWMKCURUX1BQQzY0X09QRCBhbmQgRFRfUFBDNjRfT1BEU1ogdGFncy4KCShwcGM2NF9lbGZfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBTZXQgdmFsdWVzIGZvciB0aGVtLgoKMjAwMi0wMi0xMSAgTWljaGFlbCBTbnlkZXIgIDxtc255ZGVyQHJlZGhhdC5jb20+CgoJKiBlbGYtYmZkLmggKGVsZmNvcmVfd3JpdGVfbHdwc3RhdHVzKTogQWRkIHByb3RvdHlwZS4KCSogZWxmLmMgKGVsZmNvcmVfZ3Jva19wc3RhdHVzKTogQWRkIHByb3RvdHlwZS4KCShlbGZjb3JlX2dyb2tfbHdwc3RhdHVzKTogQWRkIHByb3RvdHlwZS4KCShlbGZjb3JlX3dyaXRlX2x3cHN0YXR1cyk6IE5ldyBmdW5jdGlvbi4KCShlbGZjb3JlX3dyaXRlX3BzdGF0dXMpOiBGaXggdHlwbywgZWxpbWluYXRlIHVubmVjZXNzYXJ5IG1lbWNweS4KCjIwMDItMDItMTEgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmMzItc2guYzogQWRkZWQgbWlzc2luZyBwcm90b3R5cGVzLgoJKiBlbGYzMi1zaDY0LmM6IExpa2V3aXNlLgoJKHNoX2VsZl9hbGlnbl9sb2Fkcyk6IE1hcmsgdW51c2VkIGFyZ3MgYXMgc3VjaC4KCSogZWxmNjQtc2g2NC5jOiBBZGRlZCBtaXNzaW5nIHByb3RvdHlwZXMuCgkoc3RydWN0IGVsZl9zaDY0X2xpbmtfaGFzaF9lbnRyeSk6IEZpeCB0eXBvLgoJKHNoX2VsZjY0X3JlbG9jYXRlX3NlY3Rpb24pOiBGaXggaW5mbyBhcmd1bWVudCBwYXNzZWQgdG8KCV9iZmRfZWxmX3NlY3Rpb25fb2Zmc2V0LgoKMjAwMi0wMi0xMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogYWNsb2NhbC5tNDogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTAyLTEwICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGNvZmYtcnM2MDAwLmMgKHhjb2ZmX2dlbmVyYXRlX3J0aW5pdCk6IFNpbGVuY2UgdW5pbml0aWFsaXplZAoJdmFyaWFibGUgd2FybmluZ3MuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9yZWxheF9zZWN0aW9uKTogU2lsZW5jZSBzaWduZWQvdW5zaWduZWQKCWNvbXBhcmlzb24gd2FybmluZy4KCSogdHJhZC1jb3JlLmMgKHRyYWRfdW5peF9jb3JlX2ZpbGVfcCk6IFNpbGVuY2UgcG9pbnRlci9pbnRlZ2VyCgljYXN0IHdhcm5pbmdzIGZvciB0aGUgY29tbW9uIGNhc2UuCgoyMDAyLTAyLTEwICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBjb25maWcuYmZkIChzaC0qLWxpbnV4Kiwgc2gtKi1lbGYqIHwgc2gtKi1ydGVtc2VsZiopOiBBZGQgc2g2NAoJdmVjdG9ycy4KCShzaC0qLW5ldGJzZGVsZiopOiBOZXcsIHRvIHRydW1wIHNoKi0qLW5ldGJzZGVsZiogYW5kIGFkZCBzaDY0Cgl2ZWN0b3JzLgoKMjAwMi0wMi0wOSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX2hvd3RvKTogQWRkIFJfQUxQSEFfQlJTR1AuCgkoZWxmNjRfYWxwaGFfcmVsb2NfbWFwLCBlbGY2NF9hbHBoYV9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4KCShlbGY2NF9hbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIHJlbG9jLmMgKEJGRF9SRUxPQ19BTFBIQV9CUlNHUCk6IE5ldy4KCSogYmZkLWluMi5oLCBsaWJiZmQuaDogUmVidWlsZC4KCjIwMDItMDItMDkgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGVsZjY0LW1taXguYyAoX2JmZF9tbWl4X2ZpbmFsaXplX2xpbmtlcl9hbGxvY2F0ZWRfZ3JlZ3MpOiBDaGVjawoJdGhhdCBiYXNlLXBsdXMtb2Zmc2V0IHJlbG9jIGFjY291bnRpbmcgaXMgY29uc2lzdGVudC4KCShtbWl4X2VsZl9yZWxheF9zZWN0aW9uKTogS2VlcCBiYXNlLXBsdXMtb2Zmc2V0IHJlbG9jIGFjY291bnRpbmcKCXVwIHRvIGRhdGUgZm9yIHVuZGVmaW5lZCBzeW1ib2xzLgoKMjAwMi0wMi0wOCAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgoJRnJvbSBSYWluZXIgT3J0aCAgPHJvQFRlY2hGYWsuVW5pLUJpZWxlZmVsZC5ERT4KCgkqIGVsZjMyLW1pcHMuYyAoX2JmZF9taXBzX2VsZl9mYWtlX3NlY3Rpb25zKTogRG9uJ3QgY3JlYXRlIC5yZWxhCglzZWN0aW9ucyBmb3IgdGhlIE8zMiBBQkkuCgoyMDAyLTAyLTA4ICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogZWxmMzItYXJtLmg6IEZpeCBmb3JtYXR0aW5nIG9mIF8oIi4uLiIpLgoJKiBlbGYzMi1kMTB2LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhrLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1taXBzLmM6IExpa2V3aXNlLgoKMjAwMi0wMi0wOCAgSXZhbiBHdXp2aW5lYyA8aXZhbmdAb3BlbmNvcmVzLm9yZz4KCgkqIGNvZmYtb3IzMi5jOiBGaXggY29tcGlsZSB0aW1lIHdhcm5pbmcgbWVzc2FnZXMuCgoyMDAyLTAyLTA4ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCglDb250cmlidXRlIHNoNjQtZWxmLgoJMjAwMi0wMS0yMyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIHJlbG9jLmMgKFJfU0hfR09UUExUMzIsIFJfU0hfR09UX0xPVzE2LCBSX1NIX0dPVF9NRURMT1cxNiwKCVJfU0hfR09UX01FREhJMTYsIFJfU0hfR09UX0hJMTYsIFJfU0hfR09UUExUX0xPVzE2LAoJUl9TSF9HT1RQTFRfTUVETE9XMTYsIFJfU0hfR09UUExUX01FREhJMTYsIFJfU0hfR09UUExUX0hJMTYsCglSX1NIX1BMVF9MT1cxNiwgUl9TSF9QTFRfTUVETE9XMTYsIFJfU0hfUExUX01FREhJMTYsCglSX1NIX1BMVF9ISTE2LCBSX1NIX0dPVE9GRl9MT1cxNiwgUl9TSF9HT1RPRkZfTUVETE9XMTYsCglSX1NIX0dPVE9GRl9NRURISTE2LCBSX1NIX0dPVE9GRl9ISTE2LCBSX1NIX0dPVFBDX0xPVzE2LAoJUl9TSF9HT1RQQ19NRURMT1cxNiwgUl9TSF9HT1RQQ19NRURISTE2LCBSX1NIX0dPVFBDX0hJMTYsCglSX1NIX0dPVDEwQlk0LCBSX1NIX0dPVFBMVDEwQlk0LCBSX1NIX0dPVDEwQlk4LCBSX1NIX0dPVFBMVDEwQlk4LAoJUl9TSF9DT1BZNjQsIFJfU0hfR0xPQl9EQVQ2NCwgUl9TSF9KTVBfU0xPVDY0LCBSX1NIX1JFTEFUSVZFNjQpOgoJTmV3IHJlbG9jcy4KCSogbGliYmZkLmgsIGJmZC1pbjIuaDogUmVidWlsdC4KCSogZWxmMzItc2guYyAoc2hfZWxmX2hvd3RvX3RhYmxlKTogRGVmaW5lIG5ldyByZWxvY3MuCgkoc2hfcmVsb2NfbWFwKTogTWFwIHRoZW0uCgkoUExUX0VOVFJZX1NJWkUsIGVsZl9zaF9wbHQwX2VudHJ5X2JlLCBlbGZfc2hfcGx0MF9lbnRyeV9sZSwKCWVsZl9zaF9wbHRfZW50cnlfYmUsIGVsZl9zaF9wbHRfZW50cnlfbGUsIGVsZl9zaF9waWNfcGx0X2VudHJ5X2JlLAoJZWxmX3NoX3BpY19wbHRfZW50cnlfbGUsIGVsZl9zaF9wbHQwX2VudHJ5LCBlbGZfc2hfcGx0X2VudHJ5LAoJZWxmX3NoX3BpY19wbHRfZW50cnksIGVsZl9zaF9zaXplb2ZfcGx0LCBlbGZfc2hfcGx0X3BsdDBfb2Zmc2V0LAoJZWxmX3NoX3BsdDBfZ290cGx0X29mZnNldCwgZWxmX3NoX3BsdF90ZW1wX29mZnNldCwKCWVsZl9zaF9wbHRfc3ltYm9sX29mZnNldCwgZWxmX3NoX3BsdF9yZWxvY19vZmZzZXQsCgltb3ZpX3Nob3JpX3B1dHZhbCkgW0lOQ0xVREVfU0hNRURJQV06IE5ldy4KCShlbGZfc2hfbGlua19oYXNoX2VudHJ5KSBbSU5DTFVERV9TSE1FRElBXTogQWRkCglkYXRhbGFiZWxfZ290X29mZnNldC4KCShzaF9lbGZfbGlua19oYXNoX25ld2Z1bmMpOiBJbml0aWFsaXplIGl0LgoJKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogQXVnbWVudCB0aGUgc2NvcGUgb2YKCXNlZW5fc3R0X2RhdGFsYWJlbC4gIEludHJvZHVjZSBHT1RQTFQgc3VwcG9ydC4gIEV4dGVuZCBHT1RQQywgUExULAoJR09UIGFuZCBHT1RPRkYgaGFuZGxpbmcgdG8gbmV3IFNIbWVkaWEgcmVsb2NhdGlvbiB0eXBlcy4gIFN1cHBvcnQKCUdPVF9CSUFTLgoJKHNoX2VsZl9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4KCShzaF9lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKSBbVEFSR0VUX1NITUVESUFdOiBTZXQgdXAgdmFsdWVzIGluCglQTFQgZW50cmllcyB1c2luZyBtb3ZpX3Nob3JpX3B1dHZhbC4gIFN1cHBvcnQgR09UX0JJQVMuCgkoc2hfZWxmX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNoNjQuYyAoc2htZWRpYV9wcmVwYXJlX3JlbG9jKTogRG8gbm90IGFkZCBhZGRlbmQgdG8KCXJlbG9jYXRpb24sIGl0J3Mgbm93IGRvbmUgYnkgdGhlIGNhbGxlci4KCShHT1RfQklBUyk6IE5ldy4KCSogZWxmNjQtc2g2NC5jIChHT1RfQklBUywgUExUX0VOVFJZX1NJWkUsIGVsZl9zaDY0X3NpemVvZl9wbHQsCgllbGZfc2g2NF9wbHRfcGx0MF9vZmZzZXQsIGVsZl9zaDY0X3BsdDBfZ290cGx0X29mZnNldCwKCWVsZl9zaDY0X3BsdF90ZW1wX29mZnNldCwgZWxmX3NoNjRfcGx0X3N5bWJvbF9vZmZzZXQsCgllbGZfc2g2NF9wbHRfcmVsb2Nfb2Zmc2V0LCBFTEZfRFlOQU1JQ19JTlRFUlBSRVRFUiwKCWVsZl9zaDY0X3BjcmVsX3JlbG9jc19jb3BpZWQsIGVsZl9zaDY0X2xpbmtfaGFzaF9lbnRyeSwKCWVsZl9zaDY0X2xpbmtfaGFzaF90YWJsZSwgc2g2NF9lbGY2NF9saW5rX2hhc2hfdHJhdmVyc2UsCglzaDY0X2VsZjY0X2hhc2hfdGFibGUpOiBOZXcuCgkoc2hfZWxmNjRfaG93dG9fdGFibGUpOiBJbnRyb2R1Y2UgbmV3IHJlbG9jcy4KCShzaF9lbGY2NF9pbmZvX3RvX2hvd3RvKTogQWNjZXB0IG5ldyBQSUMgcmVsb2NzLgoJKHNoX2VsZjY0X3JlbG9jYXRlX3NlY3Rpb24pOiBBdWdtZW50IHRoZSBzY29wZSBvZgoJc2Vlbl9zdHRfZGF0YWxhYmVsLiAgU3VwcG9ydCBuZXcgUElDIHJlbG9jcy4KCShzaF9lbGY2NF9jaGVja19yZWxvY3MpOiBTdXBwb3J0IG5ldyBQSUMgcmVsb2NzLgoJKGVsZl9zaDY0X3BsdDBfZW50cnlfYmUsIGVsZl9zaDY0X3BsdDBfZW50cnlfbGUsCgllbGZfc2g2NF9wbHRfZW50cnlfYmUsIGVsZl9zaDY0X3BsdF9lbnRyeV9sZSwKCWVsZl9zaDY0X3BpY19wbHRfZW50cnlfYmUsIGVsZl9zaDY0X3BpY19wbHRfZW50cnlfbGUsCgllbGZfc2g2NF9wbHQwX2VudHJ5LCBlbGZfc2g2NF9wbHRfZW50cnksIGVsZl9zaDY0X3BpY19wbHRfZW50cnksCglzaDY0X2VsZjY0X2xpbmtfaGFzaF9uZXdmdW5jLCBzaDY0X2VsZjY0X2xpbmtfaGFzaF90YWJsZV9jcmVhdGUsCgltb3ZpX3Nob3JpX3B1dHZhbCwgbW92aV8zc2hvcmlfcHV0dmFsLAoJc2g2NF9lbGY2NF9jcmVhdGVfZHluYW1pY19zZWN0aW9ucywKCXNoNjRfZWxmNjRfYWRqdXN0X2R5bmFtaWNfc3ltYm9sLCBzaDY0X2VsZjY0X2Rpc2NhcmRfY29waWVzLAoJc2g2NF9lbGY2NF9zaXplX2R5bmFtaWNfc2VjdGlvbnMsCglzaDY0X2VsZjY0X2ZpbmlzaF9keW5hbWljX3N5bWJvbCwKCXNoNjRfZWxmNjRfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBOZXcuCgkoZWxmX2JhY2tlbmRfY3JlYXRlX2R5bmFtaWMtc2VjdGlvbnMsCgliZmRfZWxmNjRfYmZkX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUsCgllbGZfYmFja2VuZF9hZGp1c3RfZHluYW1pY19zeW1ib2wsCgllbGZfYmFja2VuZF9zaXplX2R5bmFtaWNfc2VjdGlvbnMsCgllbGZfYmFja2VuZF9maW5pc2hfZHluYW1pY19zeW1ib2wsCgllbGZfYmFja2VuZF9maW5pc2hfZHluYW1pY19zZWN0aW9ucywgZWxmX2JhY2tlbmRfd2FudF9nb3RfcGx0LAoJZWxmX2JhY2tlbmRfcGx0X3JlYWRvbmx5LCBlbGZfYmFja2VuZF93YW50X3BsdF9zeW0sCgllbGZfYmFja2VuZF9nb3RfaGVhZGVyX3NpemUsIGVsZl9iYWNrZW5kX3BsdF9oZWFkZXJfc2l6ZSk6CglEZWZpbmUuCgkyMDAxLTA1LTE2ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogZWxmMzItc2guYzogUmVudW1iZXJlZCBhbmQgcmVuYW1lZCBzb21lIFNINSByZWxvY2F0aW9ucyB0bwoJbWF0Y2ggb2ZmaWNpYWwgbnVtYmVycyBhbmQgbmFtZXM7IG1vdmVkIHVubWFjaGluZyBvbmVzIHRvIHRoZQoJcmFuZ2UgMHhmMi0weGZmLgoJKiBlbGYzMi1zaDY0LmMsIGVsZjY0LXNoNjQuYzogTGlrZXdpc2UuCgkyMDAxLTAzLTEyICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCSogZWxmMzItc2guYyAoc2hfZWxmX3JlbGF4X3NlY3Rpb24pOiBEb24ndCByZWxheCBTSG1lZGlhCglzZWN0aW9ucy4KCTIwMDEtMDMtMTIgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoJKiBlbGYzMi1zaDY0LmMgKHNobWVkaWFfcHJlcGFyZV9yZWxvYyk6IFZhbGlkYXRlIHJlbG9jcyB0aGF0IG11c3QKCWJlIGFsaWduZWQuCgkqIGVsZjY0LXNoNjQuYyAoc2hfZWxmNjRfcmVsb2NhdGVfc2VjdGlvbik6IERpdHRvLgoJMjAwMS0wMS0xNCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBuQGN5Z251cy5jb20+CgkqIGVsZjMyLXNoNjQuYyAoYmZkX2VsZjMyX2JmZF9jb3B5X3ByaXZhdGVfc2VjdGlvbl9kYXRhKTogRGVmaW5lLgoJKHNoNjRfZWxmX2Zha2Vfc2VjdGlvbnMpOiBTZXQgdHlwZSB0byBTSFRfU0g1X0NSX1NPUlRFRCBmb3IgYQoJLmNyYW5nZXMgc2VjdGlvbiB3aXRoIFNFQ19TT1JUX0VOVFJJRVMgc2V0LgoJKHNoNjRfYmFja2VuZF9zZWN0aW9uX2Zyb21fc2hkcik6IFNldCBTRUNfU09SVF9FTlRSSUVTIG9uIGFuCglpbmNvbWluZyBzb3J0ZWQgLmNyYW5nZXMgc2VjdGlvbi4KCShzaDY0X2JmZF9lbGZfY29weV9wcml2YXRlX3NlY3Rpb25fZGF0YSk6IE5ldy4KCShzaDY0X2VsZl9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogT25seSBzb3J0IC5jcmFuZ2VzIGFuZCBtb2RpZnkKCXN0YXJ0IGFkZHJlc3MgaWYgY2FsbGVkIGJ5IGxpbmtlci4KCTIwMDEtMDEtMDggIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoJKiBlbGYzMi1zaDY0LmMgKHNoNjRfZWxmX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBBY3RpdmF0ZQoJSGFucy1QZXRlciBOaWxzc29uJ3Mgc2V0IGJpdCAwIHBhdGNoIGZyb20gMjAwMS0wMS0wNi4KCSogZWxmNjQtc2g2NC5jIChzaDY0X2VsZjY0X2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBEaXR0by4KCTIwMDEtMDEtMDYgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwbkBjeWdudXMuY29tPgoJKiBlbGY2NC1zaDY0LmMgKHNoX2VsZjY0X2hvd3RvX3RhYmxlKTogTm8gb3BlbiBicmFjZSBhdCBzdGFydCBvZgoJbGluZS4gIEFkZCBjb21tZW50cyBiZWZvcmUgYWxsIGVudHJpZXMuCgk8Ul9TSF9QVF8xNiwgUl9TSF9TSE1FRElBX0NPREU+OiBDb3JyZWN0IGFuZCBjbGFyaWZ5IGRlc2NyaWJpbmcKCWNvbW1lbnQuCgkoc2hfZWxmNjRfcmVsb2MpOiBDb3JyZWN0IGhlYWQgY29tbWVudC4KCShzaF9lbGY2NF9yZWxvY2F0ZV9zZWN0aW9uKTogQ29ycmVjdCBzcGFjaW5nLgoJPHJlbG9jYXRpbmcgZm9yIGEgbG9jYWwgc3ltYm9sPjogRG8gbm90IGhvbm91ciBTVE9fU0g1X0lTQTMyOwoJaW5zdGVhZCBjYWxsIHJlbG9jX2Rhbmdlcm91cyBjYWxsYmFjay4KCTxjYXNlIFJfU0hfU0hNRURJQV9DT0RFPjogTmV3IGNhc2UuCgkoc2hfZWxmNjRfZ2NfbWFya19ob29rKTogQ29ycmVjdCBzcGFjaW5nLgoJKHNoX2VsZjY0X2NoZWNrX3JlbG9jcyk6IERpdHRvLgoJKiBlbGYzMi1zaDY0LmMgKHNobWVkaWFfcHJlcGFyZV9yZWxvYykgPGNhc2UgUl9TSF9TSE1FRElBX0NPREU+OgoJTmV3IGNhc2UuCgkqIGVsZjMyLXNoLmM6IENvcnJlY3QgI2VuZGlmIGNvbW1lbnRzIGZvciAjaWZuZGVmLXdyYXBwZWQKCWZ1bmN0aW9ucy4KCShzaF9lbGZfaG93dG9fdGFibGUpIDxSX1NIX1BUXzE2LCBSX1NIX1NITUVESUFfQ09ERT46IENvcnJlY3QsCgljbGFyaWZ5IGRlc2NyaWJpbmcgY29tbWVudC4gIEFkZCBjb21tZW50cyBiZWZvcmUgYWxsIGVudHJpZXMuCgkoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pIDxyZWxvY2F0aW5nIGZvciBhIGxvY2FsIHN5bWJvbD46IERvIG5vdAoJaG9ub3VyIFNUT19TSDVfSVNBMzI7IGluc3RlYWQgY2FsbCByZWxvY19kYW5nZXJvdXMgY2FsbGJhY2suCgkyMDAxLTAxLTA2ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocG5AY3lnbnVzLmNvbT4KCVNvcnQgLmNyYW5nZXMgc2VjdGlvbiBpbiBmaW5hbCBsaW5rLiAgUHJlcGFyZSB0byBzZXQgYml0IDAgb24KCWVudHJ5IGFkZHJlc3MuCgkqIGVsZjMyLXNoNjQuYyAoc3RydWN0IHNoNjRfZmluZF9zZWN0aW9uX3ZtYV9kYXRhKTogTmV3LgoJKHNoNjRfZWxmX2xpbmtfb3V0cHV0X3N5bWJvbF9ob29rKTogRml4IHR5cG8gaW4gcHJvdG90eXBlLgoJKHNoNjRfZWxmX3NldF9tYWNoX2Zyb21fZmxhZ3MpOiBTZXQgU0VDX0RFQlVHR0lORyBvbiBpbmNvbWluZwoJLmNyYW5nZXMgc2VjdGlvbi4KCShzaDY0X2JhY2tlbmRfc2VjdGlvbl9mcm9tX3NoZHIpOiBOZXcsIHRvIHJlY29nbml6ZQoJU0hUX1NINV9DUl9TT1JURUQgb24gaW5jb21pbmcgLmNyYW5nZXMgc2VjdGlvbi4KCShlbGZfYmFja2VuZF9zZWN0aW9uX2Zyb21fc2hkcik6IERlZmluZS4KCShzaDY0X2VsZl9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogU29ydCBvdXRnb2luZyAuY3JhbmdlcwoJc2VjdGlvbi4gIChOZXcsIHRlbXBvcmFyaWx5IGRpc2FibGVkOikgU2V0IGJpdCAwIG9uIGVudHJ5IGFkZHJlc3MKCWFjY29yZGluZyB0byBJU0EgdHlwZS4KCShzaDY0X2ZpbmRfc2VjdGlvbl9mb3JfYWRkcmVzcyk6IE5ldy4KCShjcmFuZ2VfcXNvcnRfY21wYiwgY3JhbmdlX3Fzb3J0X2NtcGwsIGNyYW5nZV9ic2VhcmNoX2NtcGIsCgljcmFuZ2VfYnNlYXJjaF9jbXBsKTogTW92ZSBoZXJlIGZyb20gb3Bjb2Rlcy9zaDY0LWRpcy5jLgoJKHNoNjRfYWRkcmVzc19pbl9jcmFuZ2VzKTogTW92ZSBoZXJlIGZyb20gb3Bjb2Rlcy9zaDY0LWRpcy5jLiAgVXNlCgliZmRfbWFsbG9jLCBub3QgeG1hbGxvYy4KCShzaDY0X2dldF9jb250ZW50c190eXBlKTogTW92ZSBoZXJlIGZyb20gb3Bjb2Rlcy9zaDY0LWRpcy5jLiAgTWFrZQoJZ2xvYmFsLgoJKiBlbGYzMi1zaDY0LmMgKHNoNjRfZWxmNjRfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IE5ldywgKGJ1dAoJdGVtcG9yYXJpbHkgZGlzYWJsZWQpIHNldHRpbmcgYml0IDAgb24gZW50cnkgYWRkcmVzcy4KCShlbGZfYmFja2VuZF9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogRGVmaW5lLgoJMjAwMS0wMS0wNSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBuQGN5Z251cy5jb20+CgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9ob3d0b190YWJsZSkgPFJfU0hfUFRfMTY+OiBBZGp1c3QgZmllbGRzIHRvCgliZSBhIHByb3BlciByZWxvY2F0aW9uIGZvciBQVEEgYW5kIFBUQiByYXRoZXIgdGhhbiBhIG1hcmtlci4KCTxSX1NIX0lNTVU1LCBSX1NIX0lNTVM2LCBSX1NIX0lNTVU2LCBSX1NIX0lNTVMxMCwgUl9TSF9JTU1TMTBCWTIsCglSX1NIX0lNTVMxMEJZNCwgUl9TSF9JTU1TMTBCWTgsIFJfU0hfSU1NUzE2LCBSX1NIX0lNTVUxNiwKCVJfU0hfSU1NX0xPVzE2LCBSX1NIX0lNTV9MT1cxNl9QQ1JFTCwgUl9TSF9JTU1fTUVETE9XMTYsCglSX1NIX0lNTV9NRURMT1cxNl9QQ1JFTCwgUl9TSF9JTU1fTUVESEkxNiwgUl9TSF9JTU1fTUVESEkxNl9QQ1JFTCwKCVJfU0hfSU1NX0hJMTYsIFJfU0hfSU1NX0hJMTZfUENSRUwsIFJfU0hfNjQsIFJfU0hfNjRfUENSRUw+OgoJWmVybyBzcmNfbWFzay4KCSogZWxmNjQtc2g2NC5jOiBEaXR0by4KCShzaF9lbGY2NF9yZWxvY2F0ZV9zZWN0aW9uKSA8Y2FzZSBSX1NIX1BUXzE2PjogTmV3IGNhc2UuCgkqIGVsZjMyLXNoNjQuYzogSW5jbHVkZSBvcGNvZGVzL3NoNjQtb3BjLmgKCShzaG1lZGlhX3ByZXBhcmVfcmVsb2MpOiBUYWtlIGEgYmZkX2xpbmtfaW5mbyBwb2ludGVyIGFzIGZpcnN0Cglhcmd1bWVudC4gIERyb3AgY29uc3QgcXVhbGlmaWVycyBmcm9tICJiZmQgKiIgYW5kICJiZmRfYnl0ZSAqIgoJcGFyYW1ldGVycy4gIE5vIHVudXNlZCBwYXJhbWV0ZXJzLiAgQ2FsbGVyIGNoYW5nZWQuCgk8Y2FzZSBSX1NIX1BUXzE2PjogTmV3IGNhc2UuCgkqIE1ha2VmaWxlLmFtIChlbGYzMi1zaDY0LmxvKTogQWRkIGRlcGVuZGVuY3kgb24gc2g2NC1vcGMuaC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkyMDAwLTEyLTMwICBIYW5zLVBldGVyIE5pbHNzb24gIDxocG5AY3lnbnVzLmNvbT4KCSogZWxmNjQtc2g2NC5jIChzaDY0X2VsZjY0X2Zha2Vfc2VjdGlvbnMpOiBTZXQgU0hGX1NINV9JU0EzMiBmb3IKCWFsbCBjb2RlIHNlY3Rpb25zLgoJKHNoX2VsZjY0X3NldF9tYWNoX2Zyb21fZmxhZ3MpOiBDaGFuZ2UgZnJvbSBFRl9TSDY0IHRvIEVGX1NINS4KCShzaDY0X2VsZl9tZXJnZV9wcml2YXRlX2RhdGEpOiBEaXR0by4KCSogZWxmMzItc2g2NC5jIChzaDY0X2VsZl9mYWtlX3NlY3Rpb25zKTogVXNlIHNoNjRfZWxmX3NlY3Rpb25fZGF0YQoJdG8gYWNjZXNzIHN0b3JlZCBzZWN0aW9uIGZsYWdzLgoJKHNoNjRfZWxmX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBSZXR1cm4gaW1tZWRpYXRlbHkgdW5sZXNzCgljYWxsZWQgYnkgbGlua2VyLiAgVXNlIHNoNjRfZWxmX3NlY3Rpb25fZGF0YSAoY3JhbmdlcykgdG8gZ2V0IHNpemUKCW9mIGxpbmtlci1nZW5lcmF0ZWQgY3JhbmdlcyBlbnRyaWVzLgoJKHNoNjRfZWxmX2NvcHlfcHJpdmF0ZV9kYXRhKTogQWRkIG1pc3NpbmcgInJldHVybiB0cnVlIi4KCShzaDY0X2VsZl9zZXRfbWFjaF9mcm9tX2ZsYWdzKTogQ2hhbmdlIGZyb20gRUZfU0g2NCB0byBFRl9TSDUuCgkoc2hfZWxmNjRfbWVyZ2VfcHJpdmF0ZV9kYXRhKTogRGl0dG8uCgkyMDAwLTEyLTE5ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocG5AY3lnbnVzLmNvbT4KCSogZWxmNjQtc2g2NC5jIChzaDY0X2VsZjY0X2Zha2Vfc2VjdGlvbnMpOiBOZXcsIGNvcHkgb2YKCWVsZjY0LXNoNjQuYzpzaDY0X2VsZl9mYWtlX3NlY3Rpb25zLgoJKGVsZl9iYWNrZW5kX2Zha2Vfc2VjdGlvbnMpOiBEZWZpbmUgYXMgc2g2NF9lbGY2NF9mYWtlX3NlY3Rpb25zLgoJMjAwMC0xMi0xOCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBuQGN5Z251cy5jb20+CgkqIGVsZjMyLXNoNjQuYyAoc2g2NF9lbGZfY29weV9wcml2YXRlX2RhdGFfaW50ZXJuYWwpOiBEZWxldGUuCgkoc2g2NF9lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IE5ldy4KCShlbGZfYmFja2VuZF9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogRGVmaW5lLgoJKHNoNjRfZWxmX2Zha2Vfc2VjdGlvbnMpOiBHZXQgaGVhZGVyIGZsYWdzIGZyb20gdGRhdGEgZmllbGQuCgkoc2g2NF9lbGZfY29weV9wcml2YXRlX2RhdGEpOiBEbyBub3QgY2FsbAoJc2g2NF9lbGZfY29weV9wcml2YXRlX2RhdGFfaW50ZXJuYWwsIGp1c3QgY29weSBlX2ZsYWdzIGZpZWxkLgoJKHNoNjRfZWxmX21lcmdlX3ByaXZhdGVfZGF0YSk6IERvIG5vdCBjYWxsCglzaDY0X2VsZl9jb3B5X3ByaXZhdGVfZGF0YV9pbnRlcm5hbC4KCTIwMDAtMTItMTIgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwbkBjeWdudXMuY29tPgoJUmVtb3ZlIEVGX1NINjRfQUJJNjQsIGxldCBFTEYgc2l6ZSBtYWtlIGRpZmZlcmVuY2UuCglSZW1vdmUgU0g2NC1zcGVjaWZpYyBCRkQgc2VjdGlvbiBmbGFnLgoJKiBlbGYzMi1zaDY0LmMgKHNoNjRfZWxmX2Zha2Vfc2VjdGlvbnMpOiBSZWNvZ25pemUgc2VjdGlvbiBhcwoJY29udGFpbmluZyBTSG1lZGlhIHRocm91Z2ggZWxmX3NlY3Rpb25fZGF0YSAoYXNlY3QpLT50ZGF0YQoJbm9uLXplcm8sIG5vdCB1c2luZyBhIEJGRCBzZWN0aW9uIGZsYWcuCgkoc2g2NF9lbGZfc2V0X21hY2hfZnJvbV9mbGFncyk6IERvbid0IHJlY29nbml6ZSBFRl9TSDY0X0FCSTY0LgoJKHNoNjRfZWxmX21lcmdlX3ByaXZhdGVfZGF0YSk6IFNpbWlsYXIuCgkoZWxmX2JhY2tlbmRfc2VjdGlvbl9mbGFncyk6IERvbid0IGRlZmluZS4KCShzaDY0X2VsZl9iYWNrZW5kX3NlY3Rpb25fZmxhZ3MpOiBEZWxldGUuCgkqIGVsZjY0LXNoNjQuYyAoc2hfZWxmNjRfc2V0X21hY2hfZnJvbV9mbGFncyk6IFJlY29nbml6ZSBFRl9TSDY0LAoJbm90IEVGX1NINjRfQUJJNjQuCgkoc2hfZWxmNjRfbWVyZ2VfcHJpdmF0ZV9kYXRhKTogU2ltaWxhci4KCSogc2VjdGlvbi5jIChTZWN0aW9uIGZsYWdzIGRlZmluaXRpb25zKTogRG9uJ3QgZGVmaW5lCglTRUNfU0hfSVNBX1NITUVESUEuCgkoYmZkLWluMi5oKTogUmVnZW5lcmF0ZS4KCTIwMDAtMTItMDkgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwbkBjeWdudXMuY29tPgoJTWFrZSBEYXRhTGFiZWwgcmVmZXJlbmNlcyB3b3JrIHdpdGggcGFydGlhbCBsaW5raW5nLgoJKiBlbGYzMi1zaDY0LmM6IEZpeCBmb3JtYXR0aW5nLgoJKHNoNjRfZWxmX2xpbmtfb3V0cHV0X3N5bWJvbF9ob29rKTogTmV3LgoJKGVsZl9iYWNrZW5kX2xpbmtfb3V0cHV0X3N5bWJvbF9ob29rKTogRGVmaW5lIHRvCglzaDY0X2VsZl9saW5rX291dHB1dF9zeW1ib2xfaG9vay4KCShzaDY0X2VsZl9hZGRfc3ltYm9sX2hvb2spOiBNYWtlIERhdGFMYWJlbCBzeW1ib2wganVzdCBnbG9iYWwKCXVuZGVmaW5lZCBpZiBwYXJ0aWFsIGxpbmtpbmcuICBBZGp1c3Qgc2FuaXR5IGNoZWNrLgoJKiBlbGY2NC1zaDY0LmMgKHNoNjRfZWxmNjRfbGlua19vdXRwdXRfc3ltYm9sX2hvb2spOiBOZXcuCgkoZWxmX2JhY2tlbmRfbGlua19vdXRwdXRfc3ltYm9sX2hvb2spOiBEZWZpbmUgdG8KCXNoNjRfZWxmNjRfbGlua19vdXRwdXRfc3ltYm9sX2hvb2suCgkoc2g2NF9lbGY2NF9hZGRfc3ltYm9sX2hvb2spOiBNYWtlIERhdGFMYWJlbCBzeW1ib2wganVzdCBnbG9iYWwKCXVuZGVmaW5lZCBpZiBwYXJ0aWFsIGxpbmtpbmcuICBBZGp1c3Qgc2FuaXR5IGNoZWNrLgoJMjAwMC0xMi0wNyAgSGFucy1QZXRlciBOaWxzc29uICA8aHBuQGN5Z251cy5jb20+CglJbXBsZW1lbnQgc2VtYW50aWNzIGZvciBpbnRlci1maWxlIERhdGFMYWJlbCByZWZlcmVuY2VzLgoJKiBlbGY2NC1zaDY0LmMgKERBVEFMQUJFTF9TVUZGSVgpOiBEZWZpbmUuCgkoc2g2NF9lbGY2NF9hZGRfc3ltYm9sX2hvb2spOiBOZXcuCgkoc2hfZWxmNjRfcmVsb2NhdGVfc2VjdGlvbik6IElmIHBhc3NpbmcgYW4gaW5kaXJlY3Qgc3ltYm9sIHdpdGgKCXN0X3R5cGUgU1RUX0RBVEFMQUJFTCBvbiB0aGUgd2F5IHRvIGEgc3ltYm9sIHdpdGggc3Rfb3RoZXIKCVNUT19TSDVfSVNBMzIsIGRvIG5vdCBiaXRvciAxIHRvIHRoZSByZWxvY2F0aW9uLgoJKGVsZl9iYWNrZW5kX2FkZF9zeW1ib2xfaG9vayk6IERlZmluZSB0bwoJc2g2NF9lbGY2NF9hZGRfc3ltYm9sX2hvb2suCgkqIGVsZjY0LXNoMzIuYzogVHdlYWsgY29tbWVudHMuCgkoREFUQUxBQkVMX1NVRkZJWCk6IERlZmluZS4KCShzaDY0X2VsZl9hZGRfc3ltYm9sX2hvb2spOiBOZXcuCgkoZWxmX2JhY2tlbmRfYWRkX3N5bWJvbF9ob29rKTogRGVmaW5lIHRvIHNoNjRfZWxmX2FkZF9zeW1ib2xfaG9vay4KCSogZWxmMzItc2guYyAoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBJZiBwYXNzaW5nIGFuIGluZGlyZWN0CglzeW1ib2wgd2l0aCBzdF90eXBlIFNUVF9EQVRBTEFCRUwgb24gdGhlIHdheSB0byBhIHN5bWJvbCB3aXRoCglzdF9vdGhlciBTVE9fU0g1X0lTQTMyLCBkbyBub3QgYml0b3IgMSB0byB0aGUgcmVsb2NhdGlvbi4KCTIwMDAtMTItMDUgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwbkBjeWdudXMuY29tPgoJUGFzcyB0aHJvdWdoIFNUVF9EQVRBTEFCRUwuCgkqIGVsZjMyLXNoNjQuYyAoc2g2NF9lbGZfZ2V0X3N5bWJvbF90eXBlKTogTmV3LgoJKGVsZl9iYWNrZW5kX2dldF9zeW1ib2xfdHlwZSk6IERlZmluZS4KCSogZWxmNjQtc2g2NC5jIChzaDY0X2VsZjY0X2dldF9zeW1ib2xfdHlwZSk6IE5ldy4KCShlbGZfYmFja2VuZF9nZXRfc3ltYm9sX3R5cGUpOiBEZWZpbmUuCgkyMDAwLTExLTMwICBIYW5zLVBldGVyIE5pbHNzb24gIDxocG5AY3lnbnVzLmNvbT4KCSogZWxmMzItc2g2NC5jOiBUd2VhayBjb21tZW50cy4KCShzaDY0X2VsZl9jb3B5X3ByaXZhdGVfZGF0YV9pbnRlcm5hbCk6IEFkZCBwcm90b3R5cGUuCgkoYmZkX2VsZjMyX2JmZF9zZXRfcHJpdmF0ZV9mbGFncyk6IERlZmluZS4KCShzaDY0X2VsZl9jb3B5X3ByaXZhdGVfZGF0YV9pbnRlcm5hbCk6IENvbXBhcmUgbWFjaGluZSBuYW1lLCBub3QKCXRleHR1YWwgQkZEIHRhcmdldCBuYW1lLCB0byBjaGVjayB3aGV0aGVyIHRvIGNvcHkgc2VjdGlvbiBmbGFnCglTSEZfU0g1X0lTQTMyLgoJKHNoNjRfZWxmX21lcmdlX3ByaXZhdGVfZGF0YSk6IFZhbGlkaXplIGJmZF9nZXRfYXJjaF9zaXplLgoJVHdlYWsgc2VjdGlvbi1jb250ZW50cy10eXBlLW1pc21hdGNoIG1lc3NhZ2UuCgkoc2htZWRpYV9wcmVwYXJlX3JlbG9jKTogQWRkIEFUVFJJQlVURV9VTlVTRUQgbWFya2Vycy4KCVZhbGlkaXplIHJlbG9jLXR5cGVzLgoJKiBlbGY2NC1zaDY0LmM6IE5ldyBmaWxlLgoJKiB0YXJnZXRzLmMgKGJmZF9lbGY2NF9zaDY0X3ZlYywgYmZkX2VsZjY0X3NoNjRsX3ZlYyk6IERlY2xhcmUuCgkqIE1ha2VmaWxlLmFtIChCRkQ2NF9CQUNLRU5EUyk6IEFkZCBlbGY2NC1zaDY0LmxvLgoJKEJGRDY0X0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCBlbGY2NC1zaDY0LmMuCglSZWdlbmVyYXRlIGRlcGVuZGVuY2llcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy5iZmQgKHNoNjQtKi1lbGYqKTogQWRkIGJmZF9lbGY2NF9zaDY0X3ZlYyBhbmQKCWJmZF9lbGY2NF9zaDY0bF92ZWMuCgkqIGNvbmZpZ3VyZS5pbjogSGFuZGxlIGJmZF9lbGY2NF9zaDY0X3ZlYyBhbmQKCWJmZF9lbGY2NF9zaDY0bF92ZWMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogcG8vUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL2JmZC5wb3Q6IFJlZ2VuZXJhdGUuCgkyMDAwLTExLTI5ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocG5AY3lnbnVzLmNvbT4KCSogZWxmMzItc2g2NC5jIChzaDY0X2VsZl9zZXRfbWFjaF9mcm9tX2ZsYWdzKTogRG8gbm90IHJlY29nbml6ZQoJYW55dGhpbmcgZWxzZSBidXQgRUZfU0g2NCBhbmQgRUZfU0g2NF9BQkk2NC4KCShzaDY0X2VsZl9tZXJnZV9wcml2YXRlX2RhdGEpOiBFbWl0IGVycm9yIGZvciBhbnl0aGluZyBlbHNlIGJ1dAoJRUZfU0g2NCBhbmQgRUZfU0g2NF9BQkk2NC4KCSogY29uZmlnLmJmZDogUmVtb3ZlIGJmZF9lbGYzMl9zaGJsaW5fdmVjIGFuZCBiZmRfZWxmMzJfc2hsaW5fdmVjCglmcm9tIHRhcmdfc2VsdmVjcy4KCSogY29uZmlndXJlLmluOiBBZGQgY29mZmxpbmsubG8gdG8gYmZkX2VsZjMyX3NoNjRfdmVjIGFuZAoJYmZkX2VsZjMyX3NoNjRsX3ZlYyBhcyBhIHRlbXBvcmFyeSBtZWFzdXJlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkyMDAwLTExLTI3ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocG5AY3lnbnVzLmNvbT4KCSogY3B1LXNoLmMgKGFyY2hfaW5mb19zdHJ1Y3QpOiBJbmNsdWRlIHNoNSBpdGVtCgl1bmNvbmRpdGlvbmFsaXplZC4KCSogY29uZmlnLmJmZCAoc2g2NC0qLWVsZiopOiBEbyBub3Qgc2V0IHRhcmdfY2ZsYWdzLgoJQWRkIHRhcmdfc2VsdmVjcyBiZmRfZWxmMzJfc2hfdmVjLCBiZmRfZWxmMzJfc2hsX3ZlYywKCWJmZF9lbGYzMl9zaGJsaW5fdmVjIGFuZCBiZmRfZWxmMzJfc2hsaW5fdmVjLgoJKiBlbGYzMi1zaDY0LmM6IFR3ZWFrIGNvbW1lbnRzLgoJKHNoNjRfZWxmX3NldF9tYWNoX2Zyb21fZmxhZ3MpOiBSZWNvZ25pemUgYWxsIG1hY2hpbmUgZmxhZ3MgdGhhdAoJYXJlIHByb3BlciBzdWJzZXRzIG9mIFNINjQgYXMgYmZkX21hY2hfc2g1LiAgQWRkIEVGX1NINjRfQUJJNjQuCgkoc2g2NF9lbGZfY29weV9wcml2YXRlX2RhdGFfaW50ZXJuYWwpOiBXcmFwIGxvbmcgbGluZS4KCShzaDY0X2VsZl9tZXJnZV9wcml2YXRlX2RhdGEpOiBSZXdyaXRlIHRvIGFsbG93IG9iamVjdHMgZnJvbQoJU0g2NCBzdWJzZXRzIHRvIGJlIGxpbmtlZCB0b2dldGhlci4KCShJTkNMVURFX1NITUVESUEpOiBEZWZpbmUuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKSA8bG9jYWwgc3ltYm9sPjoKCVBhcmVudGhlc2l6ZSBwbHVzLWV4cHJlc3Npb24gaW5zaWRlIG9yLWV4cHJlc3Npb24uCgk8Z2xvYmFsIHN5bWJvbD46IERpdHRvLgoJKHNoX2VsZl9zZXRfbWFjaF9mcm9tX2ZsYWdzKTogUmVtb3ZlIGNvZGUgcmVmdXNpbmcKCWRlbGV0ZWQgRUZfU0g2NF8zMkJJVF9BQkkgZmxhZy4KCTIwMDAtMTEtMjYgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwbkBjeWdudXMuY29tPgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfaG93dG9fdGFibGUpIDxSX1NIX0lNTV9MT1cxNl9QQ1JFTCwKCVJfU0hfSU1NX01FRExPVzE2X1BDUkVMLCBSX1NIX0lNTV9NRURISTE2X1BDUkVMLAoJUl9TSF9JTU1fSEkxNl9QQ1JFTCwgUl9TSF82NF9QQ1JFTD46IFNldCBwY3JlbF9vZmZzZXQgdG8gdHJ1ZS4KCShzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbikgPGxvY2FsIHN5bWJvbD46IE9yIDEgaW4KCWNhbGN1bGF0aW9uIG9mIHJlbG9jYXRpb24gaWYgc3ltLT5zdF9vdGhlciAmIFNUT19TSDVfSVNBMzIuCgk8Z2xvYmFsIHN5bWJvbD46IERpdHRvIGlmIGgtPm90aGVyICYgU1RPX1NINV9JU0EzMi4KCSogZWxmMzItc2g2NC5jIChzaG1lZGlhX3ByZXBhcmVfcmVsb2MpOiBBZGQgcmVsLT5yX2FkZGVuZCB0bwoJcmVsb2NhdGlvbi4KCTIwMDAtMTEtMjQgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwbkBjeWdudXMuY29tPgoJKiBNYWtlZmlsZS5hbSAoQkZEMzJfQkFDS0VORFMpOiBBZGQgZWxmMzItc2g2NC5sby4KCShCRkQzMl9CQUNLRU5EU19DRklMRVMpOiBBZGQgZWxmMzItc2g2NC5jLgoJUmVnZW5lcmF0ZSBkZXBlbmRlbmNpZXMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBhcmNodXJlcy5jOiBBZGQgYmZkX21hY2hfc2g1LgoJKiBjb25maWcuYmZkOiBNYXAgdGFyZ19jcHUgc2gqIHRvIGJmZF9zaF9hcmNoLgoJSGFuZGxlIHNoNjQtKi1lbGYqLiAgU2V0IHRhcmdfY2ZsYWdzIHRvIC1ESU5DTFVERV9TSE1FRElBLgoJKiBjb25maWd1cmUuaW46IEhhbmRsZSBiZmRfZWxmMzJfc2g2NF92ZWMgYW5kIGJmZF9lbGYzMl9zaDY0bF92ZWMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogcmVsb2MuYyAoQkZEX1JFTE9DX1NIX1NITUVESUFfQ09ERSwgQkZEX1JFTE9DX1NIX0lNTVU1LAoJQkZEX1JFTE9DX1NIX0lNTVM2LCBCRkRfUkVMT0NfU0hfSU1NUzZCWTMyLCBCRkRfUkVMT0NfU0hfSU1NVTYsCglCRkRfUkVMT0NfU0hfSU1NUzEwLCBCRkRfUkVMT0NfU0hfSU1NUzEwQlkyLAoJQkZEX1JFTE9DX1NIX0lNTVMxMEJZNCwgQkZEX1JFTE9DX1NIX0lNTVMxMEJZOCwKCUJGRF9SRUxPQ19TSF9JTU1TMTYsIEJGRF9SRUxPQ19TSF9JTU1VMTYsIEJGRF9SRUxPQ19TSF9JTU1fTE9XMTYsCglCRkRfUkVMT0NfU0hfSU1NX0xPVzE2X1BDUkVMLCBCRkRfUkVMT0NfU0hfSU1NX01FRExPVzE2LAoJQkZEX1JFTE9DX1NIX0lNTV9NRURMT1cxNl9QQ1JFTCwgQkZEX1JFTE9DX1NIX0lNTV9NRURISTE2LAoJQkZEX1JFTE9DX1NIX0lNTV9NRURISTE2X1BDUkVMLCBCRkRfUkVMT0NfU0hfSU1NX0hJMTYsCglCRkRfUkVMT0NfU0hfSU1NX0hJMTZfUENSRUwsIEJGRF9SRUxPQ19TSF9QVF8xNik6IE5ldyByZWxvY2F0aW9ucy4KCSogY3B1LXNoLmMgW0lOQ0xVREVfU0hNRURJQV0gKGFyY2hfaW5mb19zdHJ1Y3QpOiBEZWZpbmUgYW5kIGxpbmsKCWluIGl0ZW0gZm9yIFNINS4KCSogZWxmMzItc2guYyBbSU5DTFVERV9TSE1FRElBXSAoc2hfZWxmX2hvd3RvX3RhYmxlKTogQWRkIGhvd3RvIGl0ZW1zCglmb3IgU0htZWRpYSByZWxvY3MuCglbSU5DTFVERV9TSE1FRElBXSAoc2hfcmVsKTogQWRkIG1hcHBpbmdzIGZvciBTSG1lZGlhIHJlbG9jcy4KCVtJTkNMVURFX1NITUVESUFdIChzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbikgW2RlZmF1bHRdOiBDYWxsCglzaG1lZGlhX3ByZXBhcmVfcmVsb2MsIGdvdG8gZmluYWxfbGlua19yZWxvY2F0ZSBpZiBpdCByZXR1cm5zCglub24temVybywgZWxzZSBmYWlsIGFzIGJlZm9yZS4KCShzaF9lbGZfc2V0X21hY2hfZnJvbV9mbGFncyk6IFByb3ZpZGUgZnVuY3Rpb24gb25seSBpZiBub3QgZGVmaW5lZAoJYXMgbWFjcm8uICBEbyBub3QgcmVjb2duaXplIG9iamVjdHMgd2l0aCBFRl9TSDY0XzMyQklUX0FCSSBzZXQuCgkoc2hfZWxmX3NldF9wcml2YXRlX2ZsYWdzKTogUHJvdmlkZSBmdW5jdGlvbiBvbmx5IGlmIG5vdCBkZWZpbmVkCglhcyBhIG1hY3JvLgoJKHNoX2VsZl9jb3B5X3ByaXZhdGVfZGF0YSk6IFNpbWlsYXIuCgkoc2hfZWxmX21lcmdlX3ByaXZhdGVfZGF0YSk6IFNpbWlsYXIuCgkqIHNlY3Rpb24uYyAoU0VDX1NIX0lTQV9TSE1FRElBKTogTmV3LgoJKiB0YXJnZXRzLmMgKGJmZF9lbGYzMl9zaDY0X3ZlYywgYmZkX2VsZjMyX3NoNjRsX3ZlYyk6IERlY2xhcmUuCgkqIGVsZjMyLXNoNjQuYzogTmV3IGZpbGUuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIHBvL1BPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoJKiBwby9iZmQucG90OiBSZWdlbmVyYXRlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoKMjAwMi0wMi0wNyAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBiZmQtaW4uaDogVXBkYXRlIDxzdGRib29sLmg+IGNoZWNrIHRvIG9ubHkgc2VlIGlmIDxzdGRib29sLmg+IGhhcwoJYmVlbiBpbmNsdWRlZCwgbm90IGRyYWcgaXQgaW4uCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDItMDItMDYgIEguSi4gTHUgIChoamxAZ251Lm9yZykKCgkqIGVsZjMyLW1pcHMuYyAoX2JmZF9taXBzX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogVXBkYXRlCgl0aGUgbWFjaCBhbmQgSVNBIGZpZWxkcyBpZiBuZWNlc3NhcnkuCgoyMDAyLTAyLTA2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvZmZjb2RlLmggKGNvZmZfc2V0X2FyY2hfbWFjaF9ob29rKTogU2VsZWN0IHRoZSBoaWdoZXN0IGtub3duCglBUk0gYXJjaGl0ZWN0dXJlIHdoZW4gYW4gRl9BUk1fNSBmbGFnIGlzIGRldGVjdGVkLCBzaW5jZSB3ZSBjYW5ub3QKCWJlIHN1cmUgZXhhY3RseSB3aGljaCBhcmNoaXRlY3R1cmUgdGhpcyByZXByZXNlbnRzLgoKMjAwMi0wMi0wNSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL3RyLnBvOiBVcGRhdGVkIHRyYW5zbGF0aW9uLgoKMjAwMi0wMi0wNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglGcm9tIEppbWkgWCA8amltaXhAd2F0c29uLmlibS5jb20+CgkqIGFyY2h1cmVzIChiZmRfbWFjaF9wcGM2NCk6IERlZmluZS4KCShiZmRfcG93ZXJwY19hcmNoKTogUmVuYW1lIHRvIGJmZF9wb3dlcnBjX2FyY2hzLgoJKGJmZF9wb3dlcnBjX2FyY2gpOiBEZWZpbmUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogY3B1LXBvd2VycGMuYyAoYXJjaF9pbmZvX3N0cnVjdCk6IFJlbmFtZSB0byBiZmRfcG93ZXJwY19hcmNocy4KCShiZmRfcG93ZXJwY19hcmNoKTogTW92ZSB0byB0YWlsIG9mIGJmZF9wb3dlcnBjX2FyY2hzLgoJKGJmZF9wb3dlcnBjX2FyY2hzKTogQWRkIGRlZmF1bHQgcG93ZXJwYzY0IGFyY2guCgoyMDAyLTAyLTA1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBDaGVjayBmb3IgcmVsb2NzCglhZ2FpbnN0IHNlY3Rpb24gc3ltcyBpbiByZWFkb25seSBzZWN0aW9ucy4gIERvbid0IGRvIHRoZSBnbG9iYWwKCXN5bSBjaGVjayBpZiB3ZSBmaW5kIG9uZS4KCSogZWxmNjQtczM5MC5jIChlbGZfczM5MF9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9zMzkwX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKGVsZl9zMzkwX2dyb2tfcHJzdGF0dXMpOiBBZGQgbWlzc2luZyBwcm90b3R5cGUuCgoyMDAyLTAyLTA0ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBlbGY2NC1tbWl4LmMgKG1taXhfZHVtcF9icG9fZ3JlZ3MpOiBOZXcgZnVuY3Rpb24uCgkobW1peF9lbGZfY2hlY2tfY29tbW9uX3JlbG9jcykgPGNhc2UgUl9NTUlYX0JBU0VfUExVU19PRkZTRVQ+OgoJQ2FsbCBiZmRfZ2V0X3NlY3Rpb25fYnlfbmFtZSBvbmx5IG9uY2UuICBJbml0aWFsaXplCglicG9kYXRhLT5uX2Jwb19yZWxvY3NfdGhpc19zZWN0aW9uLgoJKF9iZmRfbW1peF9wcmVwYXJlX2xpbmtlcl9hbGxvY2F0ZWRfZ3JlZ3MpOiBSZW1vdmUgY29tbWVudAoJcmVmZXJyaW5nIHRvIERTT3MuCgkoYnBvX3JlbG9jX3JlcXVlc3Rfc29ydF9mbik6IERvbid0IHVzZSBkaWZmZXJlbmNlIG9mIHZhbHVlcyBhcwoJcmV0dXJuLXZhbHVlLgoKMjAwMi0wMi0wMiAgRGF2aWQgTydCcmllbiAgPG9icmllbkBGcmVlQlNEPgoKCSogY29uZmlndXJlLmluOiBUd2VhayB0aGUgRnJlZUJTRCA0LnggcmVjb2duaXRpb24gbW9yZS4gIE9ubHkgdHJlYXQKCXZlcnNpb24gNC41IGFuZCBsYXRlciB0aGUgc2FtZSBhcyA1LUNVUlJFTlQuCgkqIGNvbmZpZ3VyZTogUmUtZ2VuZXJhdGUuCgoyMDAyLTAyLTAyICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogY29uZmlnLmJmZCAoaHBwYSotKi1uZXRic2QqKTogTmV3IHRhcmdldC4KCjIwMDItMDEtMzEgIFBoaWxpcHAgVGhvbWFzICA8cHRob21hc0BzdXNlLmRlPgoKCSogY29mZi1hcm0uYyAoY29mZl9hcm1fbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IE1vdmUgRVJST1IKCXRvIGZyb250IG9mIG1lc3NhZ2UuIFVuaWZ5IG1lc3NhZ2VzIHdpdGggZWxmMzItYXJtLmguIFVzZQoJY29tbWFzIHdoZXJlIG5lY2Nlc3NhcnkuCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IFVzZSBhbGwgdXBjYXNlCglFUlJPUiBpbiBtZXNzYWdlcy4gVW5pZnkgbWVzc2FnZXMgd2l0aCBjb2ZmLWFybS5jLiBDb3JyZWN0CglWRlAvRlBBIGVycm9yIG1lc3NhZ2UuCgkoZWxmMzJfYXJtX3ByaW50X3ByaXZhdGVfYmZkX2RhdGEpOiBEb24ndCBtYXJrIEFQQ1MtMjYgYW5kCglBUENTLTMyIGZvciB0cmFuc2xhdGlvbi4KCjIwMDItMDItMDEgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCglQZXJmb3JtIG9uLWRlbWFuZCBnbG9iYWwgcmVnaXN0ZXIgYWxsb2NhdGlvbiBmcm9tCglSX01NSVhfQkFTRV9QTFVTX09GRlNFVCByZWxvY3MuCgkqIGVsZjY0LW1taXguYyAoc3RydWN0IGJwb19yZWxvY19zZWN0aW9uX2luZm8sIHN0cnVjdAoJYnBvX3JlbG9jX3JlcXVlc3QsIHN0cnVjdCBicG9fZ3JlZ19zZWN0aW9uX2luZm8pOiBOZXcuCgkobW1peF9lbGZfY2hlY2tfY29tbW9uX3JlbG9jcywgbW1peF9lbGZfZ2Nfc3dlZXBfaG9vaywKCWJwb19yZWxvY19yZXF1ZXN0X3NvcnRfZm4sIG1taXhfZWxmX3JlbGF4X3NlY3Rpb24sCglfYmZkX21taXhfY2hlY2tfYWxsX3JlbG9jcywKCV9iZmRfbW1peF9wcmVwYXJlX2xpbmtlcl9hbGxvY2F0ZWRfZ3JlZ3MsCglfYmZkX21taXhfZmluYWxpemVfbGlua2VyX2FsbG9jYXRlZF9ncmVncyk6IE5ldyBmdW5jdGlvbnMuCgkoZWxmX21taXhfaG93dG9fdGFibGUpOiBDb3JyZWN0IHNyY19tYXNrIGZvciBtb3N0IHJlbG9jcy4KCShtbWl4X2VsZl9wZXJmb3JtX3JlbG9jYXRpb24pIDxjYXNlIFJfTU1JWF9CQVNFX1BMVVNfT0ZGU0VUPjogTmV3CgljYXNlLgoJKG1taXhfZmluYWxfbGlua19yZWxvY2F0ZSkgPGNhc2UgUl9NTUlYX0JBU0VfUExVU19PRkZTRVQ+OiBOZXcKCWNhc2UuICBGaXggdHlwbyBpbiBjb21tZW50LiAgTmV3IGxhYmVsIGRvX21taXhfcmVsb2MuCgkobW1peF9lbGZfY2hlY2tfcmVsb2NzKTogQWJ1c2UgYmZkX2xpbmtfaW5mbyBtZW1iZXIgYmFzZV9maWxlIHRvCglzdG9yZSBmaXJzdCBvYmplY3QgZmlsZSB3aXRoIGEgYmFzZS1wbHVzLW9mZnNldCByZWxvYy4gIENhbGwKCW1taXhfZWxmX2NoZWNrX2NvbW1vbl9yZWxvY3MgZm9yIHRoZSBwYXJ0IGNvbW1vbiB3aXRoIG1tby4KCShtbWl4X2VsZl9maW5hbF9saW5rKTogV3JpdGUgb3V0IGxpbmtlci1hbGxvY2F0ZWQgcmVnaXN0ZXIKCWNvbnRlbnRzIHNlY3Rpb24uCgkoZWxmX2JhY2tlbmRfZ2Nfc3dlZXBfaG9vayk6IERlZmluZS4KCShiZmRfZWxmNjRfYmZkX3JlbGF4X3NlY3Rpb24pOiBEZWZpbmUuCgoJKiBtbW8uYzogRG9uJ3QgaW5jbHVkZSA8Y3R5cGUuaD4KCShtbW9faW5pdCk6IENvcnJlY3QgaW5pdC1vbmNlIGxvZ2ljLgoKMjAwMi0wMi0wMSAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5iZmQ6IENvbmRpdGlvbmFsbHkgc3VwcG9ydCA8YWlhZmY+IGZvciBwcmUgQUlYIDQuMy4KCjIwMDItMDItMDEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIKCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTAxLTMxICBEYXZpZCBPJ0JyaWVuICA8b2JyaWVuQEZyZWVCU0Q+CgoJKiBjb25maWd1cmUuaW46IFJlY29nbml6ZSB0aGUgZGlmZmVyZW5jZXMgaW4gY29yZSBmaWxlcyBmcm9tIEZyZWVCU0QKCTQuezAsMX0gYW5kIGxhdGVyIHZlcnNpb25zIG9mIDQueC4gIFRoaXMgdHJlYXRzIDQuMisgdGhlIHNhbWUgYXMKCTUtQ1VSUkVOVC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wMS0zMSAgSXZhbiBHdXp2aW5lYyAgPGl2YW5nQG9wZW5jb3Jlcy5vcmc+CgoJKiBjb2ZmLW9yMzIuYzogTmV3IGZpbGUuCgkqIGNwdS1vcjMyLmM6IE5ldyBmaWxlLgoJKiBlbGYzMi1vcjMyLmM6IE5ldyBmaWxlLgoJKiBhcmNodXJlcy5jOiBBZGQgc3VwcG9ydCBmb3Igb3IzMi4KCSogdGFyZ2V0cy5jOiBBZGQgc3VwcG9ydCBmb3Igb3IzMi4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBjb2ZmY29kZS5oIChjb2ZmX3NldF9hcmNoX21hY2hfaG9vaywgY29mZl9zZXRfZmxhZ3MsCgljb2ZmX3dyaXRlX29iamVjdF9jb250ZW50cyk6IEFkZCBzdXBwb3J0IGZvciBvcjMyLgoJKiBjb25maWcuYmZkOiBBZGQgdGFyZ2V0LgoJKiBjb25maWd1cmUuaW46IEFkZCBzdXBwb3J0IGZvciBvcjMyLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmFtOiBBZGQgc3VwcG9ydCBmb3Igb3IzMi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL1NSQy1QT1RGSUxFUy5pbjogQWRkIG9yMzIgZmlsZXMuCgkqIHBvL2JmZC5wb3Q6IFJlZ2VuZXJhdGUuCgoyMDAyLTAxLTMxICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCSAgICBEb24gTGluZHNheSAgPGxpbmRzYXlkQGNpc2NvLmNvbT4KCgkqIGVsZjMyLW1pcHMuYyAobWlwc19lbGZfY2FsY3VsYXRlX3JlbG9jYXRpb24pOiBSZXBsYWNlICdyZXR1cm4KCWZhbHNlJyB3aXRoIGEgcmV0dXJuIG9mIGEgYmZkX3JlbG9jXyBlcnJvciBjb2RlLgoKMjAwMi0wMS0zMSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBlbGYzMi1jcmlzLmMgKGVsZl9jcmlzX2Rpc2NhcmRfZXhjZXNzX3Byb2dyYW1fZHluYW1pY3MpOiBEb24ndAoJdW5leHBvcnQgdW5yZWZlcmVuY2VkIHN5bWJvbHMgd2hlbiAtLWV4cG9ydC1keW5hbWljLiAgQ2FsbAoJX2JmZF9lbGZfc3RydGFiX2RlbHJlZiB3aGVuIHVuZXhwb3J0aW5nLgoKMjAwMi0wMS0zMCAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBiZmQtaW4uaDogSW5jbHVkZSA8c3RkYm9vbC5oPiBpZiBpdCBpcyBhdmFpbGFibGUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZWQuCgoyMDAyLTAxLTMxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKGZ1bmNfZGVzY19hZGp1c3QpOiBTVFZfUFJPVEVDVEVEIGZ1bmN0aW9ucyBzaG91bGQKCW5vdCBnbyB2aWEgdGhlIHBsdC4KCjIwMDItMDEtMzAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogYXJjaHVyZXMuYzogVGlkeSB1cCBmb3JtYXR0aW5nIG9mIGVtYmVkZGVkIGNvbW1lbnRzLgoJKiBiZmQuYzogVGlkeSB1cCBmb3JtYXR0aW5nIG9mIGVtYmVkZGVkIGNvbW1lbnRzLgoJKiBiZmQtaW4uaDogRml4IGZvcm1hdHRpbmcgb2YgY29tbWVudHMuCgkqIHJlbG9jLmM6IFRpZHkgdXAgZm9ybWF0dGluZyBvZiBvcmRpbmFyeSAmIGVtYmVkZGVkIGNvbW1lbnRzLgoJKiBzZWN0aW9uLmM6IFRpZHkgdXAgZm9ybWF0dGluZyBvZiBlbWJlZGRlZCBjb21tZW50cy4KCSogc3ltcy5jOiBUaWR5IHVwIGZvcm1hdHRpbmcgb2YgZW1iZWRkZWQgY29tbWVudHMuCgkqIHRhcmdldHMuYzogVGlkeSB1cCBmb3JtYXR0aW5nIG9mIGVtYmVkZGVkIGNvbW1lbnRzLgoKCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMi0wMS0zMCAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiB2bXMtdGlyLmMgKGNtZF9uYW1lKTogTmV3IGZ1bmN0aW9uLgoJKHRpcl9jbWRfbmFtZSk6IE5ldyBmdW5jdGlvbi4KCShldGlyX3N0YSwgZXRpcl9zdG8sIGV0aXJfb3ByLCBldGlyX3N0Yyk6IFVzZSBjbWRfbmFtZSgpLgoJKHRpcl9vcHIsIHRpcl9jdGwsIHRpcl9jbWQpOiB1c2UgdGlyX2NtZF9uYW1lKCkuCglGaXggZm9ybWF0dGluZy4KCgkqIHBlWFhpZ2VuLmMgKHBlX3ByaW50X2lkYXRhKTogUmVhcnJhbmdlIG1lc3NhZ2UgdG8gYWlkIGluCgl0cmFuc2xhdGlvbi4KCShwZV9wcmludF9wZGF0YSk6IFJlYXJyYW5nZSBtZXNzYWdlIHRvIGFpZCBpbiB0cmFuc2xhdGlvbi4KCgkqIGxpYmJmZC5jICh3YXJuX2RlcHJlY2F0ZWQpOiBSZWFycmFuZ2UgZXJyb3IgbWVzc2FnZSB0byBhaWQgaW4KCXRyYW5zbGF0aW9uLgoKCSogaWhleC5jIChpaGV4X3dyaXRlX29iamVjdF9jb250ZW50cyk6IEZpeCBzcGVsbGluZyB0eXBvLgoKCSogaWVlZS5jIChpZWVlX3NsdXJwX2V4dGVybmFsX3N5bWJvbHMpOiBSZW1vdmUgc3B1cmlvdXMgc3BhY2UuCgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9hZGRfc3ltYm9sX2hvb2spOiBSZWFycmFuZ2UgZXJyb3IKCW1lc3NhZ2UgdG8gYWlkIGluIHRyYW5zbGF0aW9uLgoKCSogZWxmNjQtbW1peC5jIChtbWl4X2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBSZWFycmFuZ2UgZXJyb3IgbWVzc2FnZQoJdG8gYWlkIGluIHRyYW5zbGF0aW9uLgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogRml4IHR5cG8uCgoyMDAyLTAxLTMwICBQaGlsaXBwIFRob21hcyAgPHB0aG9tYXNAc3VzZS5kZT4KCgkqIGNvZmYtYXJtLmMsIGVsZjMyLWVsZi5oOiBVbmlmeSBtZXNzYWdlcy4KCjIwMDItMDEtMzAgIE5pY2sgQ2xpZnRvbiA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL3N2LnBvOiBVcGRhdGVkIHRyYW5zbGF0aW9uLgoKMjAwMi0wMS0zMCAgUGhpbGlwcCBUaG9tYXMgIDxwdGhvbWFzQHN1c2UuZGU+CgoJKiBkd2FyZjIuYyAocmVhZF9hYmJyZXYpOiBVc2UgZnVsbCBzZWN0aW9uIG5hbWUgaW4gZXJyb3IgbWVzc2FnZS4KCShkZWNvZGVfbGluZV9pbmZvKTogTGlrZXdpc2UuCgoJKiBlbGYuYyAoX2JmZF9lbGZfc3ltYm9sX2Zyb21fYmZkX3N5bWJvbCk6IERvbid0IHRyYW5zbGF0ZSBkZWJ1Z2dpbmcKCW1lc3NhZ2UuCgoyMDAyLTAxLTMwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKGZ1bmNfZGVzY19hZGp1c3QpOiBPbmx5IHByb3ZpZGUgbWlzc2luZyBmdW5jdGlvbgoJZGVzY3JpcHRvciBzeW1ib2xzIGZvciB1bmRlZmluZWQgZnVuY3Rpb24gY29kZSBzeW1zLiAgQ2xlYXIKCUVMRl9MSU5LX05PTl9FTEYgc28gdGhhdCB0aGV5IGNhbiBzdGF5IHdlYWsuCgoyMDAyLTAxLTI5ICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoJICAgIE1pdGNoIExpY2h0ZW5iZXJnICA8bXBsQGJyb2FkY29tLmNvbT4KCgkqIGJmZC1pbi5oIChiZmRfbWlwc19lbGYzMl9jcmVhdGVfZW1iZWRkZWRfcmVsb2NzKTogTmV3IHByb3RvdHlwZS4KCSogZWxmMzItbWlwcy5jIChiZmRfbWlwc19lbGYzMl9jcmVhdGVfZW1iZWRkZWRfcmVsb2NzKTogTmV3IGZ1bmN0aW9uCgl0byBoYW5kbGUgMzItYml0IEVMRiBlbWJlZGRlZCByZWxvYyAobGQgLS1lbWJlZGRlZC1yZWxvY3MpCglnZW5lcmF0aW9uLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAyLTAxLTI5ICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogZWxmMzItbWlwcy5jOiBBZGQgYWRkaXRpb25hbCBjb21tZW50cyBhYm91dCBISTE2IHJlbG9jYXRpb24KCXByb2Nlc3NpbmcuCgkoX2JmZF9taXBzX2VsZl9oaTE2X3JlbG9jKTogRG9uJ3Qgc3VidHJhY3QgYWRkcmVzcyBoZXJlIGZvcgoJcGMtcmVsYXRpdmUgcmVsb2NhdGlvbnMuICAoUmV2ZXJ0cyBjaGFuZ2UgbWFkZSBvbiAyMDAxLTEwLTMxLikKCShfYmZkX21pcHNfZWxmX2xvMTZfcmVsb2MpOiBTdWJ0cmFjdCBhZGRyZXNzIG9mIExPMTYgcGFydCBoZXJlCglmb3IgcGMtcmVsYXRpdmUgcmVsb2NhdGlvbnMuCgkobWlwc19lbGZfY2FsY3VsYXRlX3JlbG9jYXRpb24pOiBBZGQgYSBjb21tZW50IGFib3V0IGEga2x1ZGdlCglpbiB0aGUgUl9NSVBTX0dOVV9SRUxfSEkxNiBoYW5kbGluZy4KCShfYmZkX21pcHNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBJbXBsZW1lbnQgdGhhdCBrbHVkZ2U7CglhZGp1c3QgcGMtcmVsYXRpdmUgSEkxNiByZWxvY2F0aW9uIGZvciBkaWZmZXJlbmNlIGluIEhJMTYgYW5kCglMTzE2IGFkZHJlc3Nlcywgc2luY2UgaXQgY2FuJ3QgZWFzaWx5IGJlIGRvbmUgaW4KCW1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uLgoKMjAwMi0wMS0yOSAgTWFydGluIFNjaHdpZGVmc2t5ICA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KCgkqIGVsZjMyLWkzODYgKGVsZl9pMzg2X2FkanVzdF9keW5hbWljX3N5bWJvbCk6IERvIG5vdCByZXBsYWNlIFBMVDMyCglyZWxvY2F0aW9ucyB3aXRoIFBDMzIgcmVsb2NhdGlvbnMgZm9yIHVuZGVmaW5lZCBvciB3ZWFrIHN5bWJvbHMuCgkqIGVsZjMyLXMzOTAgKGVsZl9pMzg2X2FkanVzdF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkweCAoZWxmX2kzODZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgoyMDAyLTAxLTI4ICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogZWxmY29yZS5oIChlbGZfY29yZV9maWxlX3ApOiBJbXByb3ZlIGNvbW1lbnQgZm9yIGxhc3QgY2hhbmdlLgoKMjAwMi0wMS0yNyAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKMjAwMi0wMS0yNyAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGVsZmNvcmUuaCAoZWxmX2NvcmVfZmlsZV9wKTogU2V0IHRoZSBtYWNoaW5lIGFyY2hpdGVjdHVyZQoJYmVmb3JlIHByb2Nlc3NpbmcgdGhlIHByb2dyYW0gaGVhZGVycy4KCjIwMDItMDEtMjYgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiA8NjQtYml0IGNvbmZpZ3VyYXRpb24+OiBJZiB1c2luZyBnY2MsIGNoZWNrIGFuZAoJZW1pdCBlcnJvciBmb3IgZWdjcy0xLjEuMi4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wMS0yNiAgRWdvciBEdWRhICA8ZGVvQGxvZ29zLW0ucnU+CgoJKiBlbGYuYyAoZWxmY29yZV9ncm9rX3dpbjMycHN0YXR1cyk6IENvcHkgb25seSBhcyBtdWNoIGluZm9ybWF0aW9uCglhcyBwb3NzaWJsZSB0byBhdm9pZCBzdGFjayBjb3JydXB0aW9uLgoKMjAwMi0wMS0yNiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX2NoZWNrX3JlbG9jcyk6IERvbid0IHNldCByZWx0ZXh0Cglmb3Igbm9uLWFsbG9jYXRlZCBzZWN0aW9ucy4KCjIwMDItMDEtMjUgIE1hcmsgS2V0dGVuaXMgIDxrZXR0ZW5pc0BnbnUub3JnPgoKCSogZWxmLmMgKGVsZmNvcmVfd3JpdGVfcHJzdGF0dXMpOiBNYWtlIHN1cmUgd2UgcGFzcyB0aGUgYWRkcmVzcyBvZgoJcHJzdGF0LnByX3JlZyBldmVuIGlmIGl0IGlzIGEgc3RydWN0LgoKMjAwMi0wMS0yNSAgU3RldmUgRWxsY2V5IDxzamVAY3VwLmhwLmNvbT4KCgkqIGVsZnh4LWlhNjQuYzogUmVzZXQgQUlYIHZlY3RvciBmdW5jdGlvbiBvdmVycmlkZXMgZm9yIEhQLVVYLgoKMjAwMi0wMS0yNSAgUGhpbGlwcCBUaG9tYXMgIDxwdGhvbWFzQHN1c2UuZGU+CgoJKiBjb2ZmZ2VuLmMgKGNvZmZfcHJpbnRfc3ltYm9sKTogRG9uJ3QgbWFyayBpbmZvIG1lc3NhZ2UKCWZvciB0cmFuc2xhdGlvbi4KCjIwMDItMDEtMjUgIE5pY2sgQ2xpZnRvbiA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL2ZyLnBvOiBVcGRhdGVkIHRyYW5zbGF0aW9uLgoJKiBwby9lcy5wbzogVXBkYXRlZCB0cmFuc2xhdGlvbi4KCjIwMDItMDEtMjUgIFBoaWxpcHAgVGhvbWFzICA8cHRob21hc0BzdXNlLmRlPgoKCSogY29mZi1hbHBoYS5jIChhbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKTogVW5pZnkgd2FybmluZyBtZXNzYWdlCglmb3IgR1AgcmVsYXRpdmUgcmVsb2NhdGlvbnMgd2l0aG91dCBHUCBkZWZpbmVkLgoJKiBjb2ZmLW1pcHMuYyAobWlwc19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAyLTAxLTI1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLWVoLWZyYW1lLmMgKF9iZmRfZWxmX2VoX2ZyYW1lX3NlY3Rpb25fb2Zmc2V0KTogQXZvaWQKCXVuc2lnbmVkIG92ZXJmbG93IHdoZW4gbmV3X29mZnNldCA8IG9sZF9vZmZzZXQuCgoyMDAyLTAxLTI0ICBQaGlsaXBwIFRob21hcyAgPHB0aG9tYXNAc3VzZS5kZT4KCgkqIGJmZC5jIChfYmZkX2Fib3J0KTogRml4IHR5cG8uCgoyMDAyLTAxLTIzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogRG9uJ3Qgc3VwcHJlc3MKCXBsdCBlbnRyaWVzIGZvciB1bmRlZndlYWsgc3ltYm9scy4KCjIwMDItMDEtMjMgIFN0ZXZlIEVsbGNleSA8c2plQGN1cC5ocC5jb20+CgoJKiB0YXJnZXRzLmMgKGJmZF9lbGYzMl9pYTY0X2hwdXhfYmlnX3ZlYyk6IEFkZCB0byBERUZBVUxUX1ZFQ1RPUi4KCShiZmRfZWxmNjRfaWE2NF9ocHV4X2JpZ192ZWMpOiBEaXR0by4KCShiZmRfZWxmMzJfaDgzMDBfdmVjKTogRGl0dG8uCgoyMDAyLTAxLTIzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmM6IFJlbW92ZSBzdGFsZSBwYXJ0IG9mIEFCSSBjb21tZW50LgoJKE5PX09QRF9SRUxPQ1MpOiBEZWZpbmUuCgkocHBjNjRfZWxmX2NoZWNrX3JlbG9jcyk6IFVzZSBpdC4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEhlcmUgdG9vLgoJKGJ1aWxkX29uZV9zdHViKTogRG9uJ3QgcG9pbnQgZnVuY3Rpb24gc3ltcyBhdCB0aGUgc3R1Yi4gIEluc3RlYWQsCgloaWphY2sgcGx0Lm9mZnNldC4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IENoZWNrIHdoZXRoZXIgUkVMMjQgcmVsb2NzIHNob3VsZAoJcmVhbGx5IGdvIHRvIHRoZSBzdHViLiAgTWFrZSBhbGwgZHluYW1pYyByZWxvY3MgaW4gb3BkIGFnYWluc3QKCWxvY2Fscy4KCShwcGM2NF9lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogQWxsb3cgZm9yIG5vbi1zdGFuZGFyZCB1c2Ugb2YKCXBsdC5vZmZzZXQuCgoyMDAyLTAxLTIyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoSU5TTl9VTk9QKTogRW5jb2RlIHdpdGggUkIgYXMgJHNwLgoKMjAwMi0wMS0yMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBDb3JyZWN0IHNpZ24gb2YKCVRPQ19CQVNFX09GRiBhZGp1c3RtZW50LgoKCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogcG8vU1JDLVBPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wMS0yMiAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlQGhpYXVseTEuaGlhLm5yYy5jYT4KCgkqIGNvbmZpZ3VyZS5ob3N0IChocHBhKjY0Ki0qLWhwdXgqLCBocHBhKjY0Ki0qLWxpbnV4Kik6IEFkZCBuZXcKCWhvc3QgZGVmaW5lcy4KCjIwMDItMDEtMjEgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogZWxmMzItY3Jpcy5jIChjcmlzX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKSA8Y2FzZSBSX0NSSVNfMzJfR09UUkVMPjoKCUNoZWNrIGZvciBhbmQgZW1pdCBlcnJvciBpZiBzZ290IGlzIE5VTEwgYXQgdGhpcyBwb2ludC4KCjIwMDItMDEtMjEgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWcuYmZkIChpYTY0Ki0qLW5ldGJzZCopOiBOZXcgdGFyZ2V0LgoKMjAwMi0wMS0yMSAgVGhvbWFzIEtsYXVzbmVyIDx3aXpAZGFuYmFsYS5pZm9lci50dXdpZW4uYWMuYXQ+CgoJKiBzb20uYyAoc29tX3dyaXRlX3NwYWNlX3N0cmluZ3MpOiBDb21tZW50IHR5cG8gZml4LgoKMjAwMi0wMS0yMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChzdHJ1Y3QgcHBjX2xpbmtfaGFzaF9lbnRyeSk6IEFkZCBpc19mdW5jIGFuZAoJaXNfZnVuY19kZXNjcmlwdG9yIGZpZWxkcy4KCShsaW5rX2hhc2hfbmV3ZnVuYyk6IEluaXQgdGhlbS4KCShwcGM2NF9lbGZfY2hlY2tfcmVsb2NzKTogT25seSBSX1BQQzI0X1JFTDI0IHN5bXMgc3RhcnRpbmcgd2l0aCBhCglkb3QgYXJlIGNhbmRpZGF0ZXMgZm9yIHBsdCBlbnRyaWVzLiAgV2hlbiBwcm9jZXNzaW5nIC5vcGQgcmVsb2NzLAoJc2V0IGZ1bmN0aW9uIGRlc2NyaXB0b3Igc3RyaW5ncyB0byBwb2ludCBpbnNpZGUgZnVuY3Rpb24gY29kZQoJc3RyaW5nLCBhbmQgc2V0IG5ldyBwcGNfbGlua19oYXNoX2VudHJ5IGZpZWxkcy4KCShwcGM2NF9lbGZfZ2Nfc3dlZXBfaG9vayk6IERvbid0IHN3ZWVwIFJfUFBDNjRfUkVMMjQgcmVsb2NzLgoJKHBwYzY0X2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBSZW1vdmUgbW9zdCBjb2RlIGRlYWxpbmcgd2l0aAoJZnVuY3Rpb24gZGVzY3JpcHRvcnMuICBJdCdzIG5vdyBkb25lIGluLi4KCShmdW5jX2Rlc2NfYWRqdXN0KTogTmV3LgoJKHBwYzY0X2VsZl9mdW5jX2Rlc2NfYWRqdXN0KTogTmV3LgoJKGRlZmluZSBlbGZfYmFja2VuZF9hbHdheXNfc2l6ZV9zZWN0aW9ucyk6IERlZmluZS4KCShwcGM2NF9lbGZfaGlkZV9zeW1ib2wpOiBOZXcuCgkoZGVmaW5lIGVsZl9iYWNrZW5kX2hpZGVfc3ltYm9sKTogRGVmaW5lLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IFJlbW92ZSBjb2RlIGxvb2tpbmcgdXAgZnVuY3Rpb24gZGVzY3JpcHRvcnMKCWFzIHRoYXQgaGFzIGJlZW4gZG9uZSBlYXJsaWVyLgoJKHBwYzY0X2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBVc2UgaHRhYiBzaG9ydGN1dCB0byBlbGYgaGFzaAoJdGFibGUuCgkocHBjNjRfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLiAgUmVtb3ZlIGNvZGUgbG9va2luZwoJdXAgZnVuY3Rpb24gZGVzY3JpcHRvci4KCShidWlsZF9vbmVfc3R1Yik6IExvb2sgdXAgdGhlIGZ1bmN0aW9uIGNvZGUgc3ltLiAgQ2hlY2sgZm9yCglpbnZhbGlkIHBsdCBvZmZzZXRzLgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogVHdlYWsgY2FsbHMgdG8gdW5kZWZpbmVkIHdlYWsgc3ltcy4KCUNvbnZlcnQgUl9QUEM2NF9UT0MgcmVsb2NzIHRvIFJfUFBDNjRfUkVMQVRJVkUgaW4gc2hhcmVkIGxpYnMuCgoJKiBlbGYtYmZkLmggKGVsZl9iYWNrZW5kX2RhdGEgPGVsZl9iYWNrZW5kX2hpZGVfc3ltYm9sPik6IEFkZAoJYm9vbGVhbiBwYXJhbS4KCShfYmZkX2VsZl9saW5rX2hhc2hfaGlkZV9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBBZGp1c3QgY2FsbCB0bwoJZWxmX2JhY2tlbmRfaGlkZV9zeW1ib2wuCgkoZWxmX2ZpeF9zeW1ib2xfZmxhZ3MpOiBMaWtld2lzZS4KCShlbGZfbGlua19hc3NpZ25fc3ltX3ZlcnNpb24pOiBMaWtld2lzZS4gVXNlIGJmZF9tYWxsb2MgcmF0aGVyCgl0aGFuIGJmZF9hbGxvYy4KCSogZWxmLmMgKF9iZmRfZWxmX2xpbmtfaGFzaF9oaWRlX3N5bWJvbCk6IEFkZCAiZm9yY2VfbG9jYWwiIHBhcmFtLgoJU2V0IEVMRl9MSU5LX0ZPUkNFRF9MT0NBTCBhbmQgY2FsbCBfYmZkX2VsZl9zdHJ0YWJfZGVscmVmLgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfaGlkZV9zeW1ib2wpOiBMaWtld2lzZS4KCShjbG9iYmVyX21pbGxpY29kZV9zeW1ib2xzKTogQWRqdXN0IHRvIHN1aXQgbmV3IGhpZGVfc3ltYm9sLgoJKiBlbGYzMi1jcmlzLmMgKGVsZl9jcmlzX2hpZGVfc3ltYm9sKTogQWRkICJmb3JjZV9sb2NhbCIgcGFyYW0KCWFuZCBhZGp1c3QgdG8gc3VpdC4KCSogZWxmMzItbWlwcy5jIChfYmZkX21pcHNfZWxmX2hpZGVfc3ltYm9sKTogTGlrZXdpc2UsIGFuZCBjYWxsCglfYmZkX2VsZl9saW5rX2hhc2hfaGlkZV9zeW1ib2wgcmF0aGVyIHRoYW4gZHVwbGljYXRpbmcgY29kZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X2hhc2hfaGlkZV9zeW1ib2wpOiBMaWtld2lzZS4KCjIwMDItMDEtMTggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IFRlc3QgZm9yIGEKCWR5bmFtaWMgZnVuY3Rpb24gZGVzY3JpcHRvciBzeW1ib2wsIG5vdCB0aGUgYXNzb2NpYXRlZCBmdW5jdGlvbgoJc3ltYm9sLgoKMjAwMi0wMS0xNyAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1taXBzLmMgKG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogRml4IHR5cG8uCgoyMDAyLTAxLTE3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIHBvL2JmZC5wb3Q6IFJlZ2VuZXJhdGUuCgkqIHBvL2ZyLnBvOiBSZWdlbmVyYXRlLgoKMjAwMi0wMS0xNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1iZmQuaCAoZWxmX2JhY2tlbmRfZGF0YSA8ZWxmX2JhY2tlbmRfc2VjdGlvbl9mcm9tX2JmZF9zZWN0aW9uPik6CglSZW1vdmUgIkVsZl9JbnRlcm5hbF9TaGRyICoiIHBhcmFtLgoJKF9iZmRfbWlwc19lbGZfc2VjdGlvbl9mcm9tX2JmZF9zZWN0aW9uKTogRGl0dG8uCgkqIGVsZjMyLW1pcHMuYyAoX2JmZF9taXBzX2VsZl9zZWN0aW9uX2Zyb21fYmZkX3NlY3Rpb24pOiBEaXR0by4KCSogZWxmMzItbTMyci5jIChfYmZkX20zMnJfZWxmX3NlY3Rpb25fZnJvbV9iZmRfc2VjdGlvbik6IERpdHRvLgoJKiBlbGYzMi12ODUwLmMgKHY4NTBfZWxmX3NlY3Rpb25fZnJvbV9iZmRfc2VjdGlvbik6IERpdHRvLgoJKiBlbGY2NC1tbWl4LmMgKG1taXhfZWxmX3NlY3Rpb25fZnJvbV9iZmRfc2VjdGlvbik6IERpdHRvLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2hwdXhfYmFja2VuZF9zZWN0aW9uX2Zyb21fYmZkX3NlY3Rpb24pOiBEaXR0by4KCSogZWxmLmMgKF9iZmRfZWxmX3NlY3Rpb25fZnJvbV9iZmRfc2VjdGlvbik6IEFsbG93IGJhY2tlbmQKCWZ1bmN0aW9uIHRvIG92ZXJyaWRlIHNwZWNpYWwgc2VjdGlvbnMuICBSZW1vdmUgaGRyIGFyZyBmcm9tCgliYWNrZW5kIGNhbGwsIGFuZCBkb24ndCBsb29wLgoKMjAwMi0wMS0xNiAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1taXBzLmMgKG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogU2V0IHJlcXVpcmVfamFseHAKCW9uIFJfTUlQU18yNiBhbmQgdGFyZ2V0IGlzIDE2Yml0LiBBZGQgUl9NSVBTMTZfR1BSRUwgdG8gbGlzdCBvZgoJcmVsb2NhdGlvbnMgcmVxdWlyaW5nIGdwMCBhbmQgZ3AuCgoyMDAyLTAxLTE2ICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IEhhbmRsZQoJRUZfQVJNX1ZGUF9GTE9BVC4KCShlbGYzMl9hcm1fcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IExpa2V3aXNlLgoKMjAwMi0wMS0xNiAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBwby90ci5wbzogSW1wb3J0IG5ldyB2ZXJzaW9uLgoKMjAwMi0wMS0xNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfaG93dG9fcmF3KTogUmVtb3ZlIHN0YWxlIEZJWE1Fcy4KCShwcGM2NF9lbGZfcmVsb2NfdHlwZV9sb29rdXApOiBVc2UgcHJvcGVyIENUT1IgcmVsb2MuCgkoT1JJX1IwX1IwXzApOiBDb3JyZWN0LgoKMjAwMi0wMS0xNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBEb24ndCBzZXQgU0VDX0NPREUKCXdoZW4gcGx0X25vdF9sb2FkZWQuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBObyBuZWVkIHRvCgljbGVhciAucGx0IFNFQ19DT0RFIGhlcmUuICBDcmVhdGUgLnN0dWIgYW5kIGNvcnJlY3QgLmdsaW5rIGZsYWdzLgoJKFBMVF9JTklUSUFMX0VOVFJZX1NJWkUpOiBTZXQgdG8gMjQuCgkocHBjNjRfZWxmX2dsaW5rX2NvZGUpOiBEZWxldGUuCgkoUFBDNjRfRUxGX0dMSU5LX1NJWkUpOiBEZWxldGUuCgkoQURESVNfUjEyX1IyLCBTVERfUjJfNDBSMSwgTERfUjExXzBSMTIsIExEX1IyXzBSMTIsIE1UQ1RSX1IxMSwKCUJDVFIsIEFERElTX1IxMl9SMTJfMSwgTERfUjJfNDBSMSwgTk9QLCBMSV9SMF8wLCBCX0RPVCwgTElTX1IwXzAsCglPUklfUjBfUjBfMCk6IERlZmluZS4KCShQTFRfQ0FMTF9TVFVCX1NJWkUsIEdMSU5LX0NBTExfU1RVQl9TSVpFKTogRGVmaW5lLgoJKHN0cnVjdCBwcGNfbGlua19oYXNoX3RhYmxlKTogQWRkIHNzdHViIGFuZCBwbHRfb3ZlcmZsb3cuCgkocHBjNjRfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBJbml0IHRoZW0uCgkocHBjNjRfZWxmX2NoZWNrX3JlbG9jcyA8Ul9QUEM2NF9SRUwyND4pOiBSZWZjb3VudCAucGx0IGVudHJ5LgoJRG9uJ3QgY29weSB0byBzaGFyZWQgbGliLgoJKHBwYzY0X2VsZl9jaGVja19yZWxvY3MpOiBDYWxsIGJmZF9zZXRfZXJyb3Igb24gZXJyb3JzLgoJKHBwYzY0X2VsZl9nY19zd2VlcF9ob29rIDxSX1BQQzY0X1JFTDI0Pik6IFN3ZWVwIHBsdCByZWZjb3VudC4KCShhbGxvY2F0ZV9keW5yZWxvY3MgPHBsdD4pOiBEb24ndCBjaGFuZ2UgZnVuY3Rpb24gc3ltIGhlcmUuICBNYWtlCglyb29tIGZvciAuc3R1YiBhbmQgLmdsaW5rIGNvZGUuCgkocHBjNjRfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IEhhbmRsZSAuc3R1Yi4gIE1ha2UgZW50cnkgZm9yCglEVF9QUEM2NF9HTElOSy4KCShwcGM2NF9lbGZfZmluYWxfbGluayk6IFJlbmFtZSB0byBwcGM2NF9lbGZfc2V0X3RvYy4gIERvbid0IGNhbGwKCWJmZF9lbGY2NF9iZmRfZmluYWxfbGluay4KCShiZmRfZWxmNjRfYmZkX2ZpbmFsX2xpbmspOiBEb24ndCBkZWZpbmUuCgkocHBjNjRfZWxmX3NpemVfc3R1YnMpOiBOZXcuCgkoYnVpbGRfcGx0X3N0dWIpOiBOZXcuCgkoYnVpbGRfb25lX3N0dWIpOiBOZXcuCgkocHBjNjRfZWxmX2J1aWxkX3N0dWJzKTogTmV3LgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uIDx0b2MgcmVsb2NzPik6IFJlbW92ZSBhc3NlcnQuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCBjb3B5IFJfUFBDNjRfUkVMMjQgcmVsb2NzLgoJKHBwYzY0X2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBEb24ndCBidWlsZCBzdHVicyBoZXJlLiAgU2V0CglEVF9QUEM2NF9HTElOSyBlbnRyeS4gIFR3ZWFrIERUX1BMVEdPVCwgRFRfSk1QUkVMLCBEVF9QTFRSRUxTWiBpbgoJY2FzZSBvdXRwdXQgc2VjdGlvbnMgbm90IHNlcGFyYXRlLiAgQWRqdXN0IERUX1JFTEFTWiB0byBub3QKCWluY2x1ZGUgcGx0IHJlbG9jcy4gIFNldCByZXNlcnZlZCBnb3QgZW50cnkuICBTZXQgZ290IGFuZCBwbHQKCWVudHJ5IHNpemUuCgkoZWxmX2JhY2tlbmRfZ290X2hlYWRlcl9zaXplKTogU2V0IHRvIDguCgkqIGVsZjY0LXBwYy5oOiBOZXcgZmlsZS4KCjIwMDItMDEtMTYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFdoZW4gcmVtb3ZpbmcKCXNlY3Rpb25zLCB1c2UgYmZkX3NlY3Rpb25fbGlzdF9yZW1vdmUuCgkqIGVsZjMyLWkzNzAuYyAoaTM3MF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogV2hlbiByZW1vdmluZyBhbGwKCXNlY3Rpb25zLCB1c2UgYmZkX3NlY3Rpb25fbGlzdF9jbGVhci4KCjIwMDItMDEtMTUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcG8vc3YucG86IE5ldyBmaWxlOiBTd2VkaXNoIHRyYW5zbGF0aW9uLgoJKiBjb25maWd1cmUuaW4gKEFMTF9MSU5HVUFTKTogQWRkIHN2LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTAxLTE1ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfaW5wdXRfYmZkKTogQmFjayBvdXQgMjAwMi0wMS0wNyBjaGFuZ2UuCgkqIGVsZi5jIChtZXJnZV9zZWN0aW9uc19yZW1vdmVfaG9vayk6IE5ldyBmdW5jdGlvbi4KCShfYmZkX2VsZl9tZXJnZV9zZWN0aW9ucyk6IFBhc3MgaXQgYXMgM3JkIGFyZ3VtZW50IHRvCglfYmZkX21lcmdlX3NlY3Rpb25zLgoJKiBsaWJiZmQtaW4uaCAoX2JmZF9tZXJnZV9zZWN0aW9ucyk6IEFkZCAzcmQgYXJndW1lbnQuCgkqIGxpYmJmZC5oOiBSZWJ1aWx0LgoJKiBtZXJnZS5jIChfYmZkX21lcmdlX3NlY3Rpb25zKTogQWRkIHJlbW92ZV9ob29rIGFyZ3VtZW50LgoJQ2FsbCByZW1vdmVfaG9vayBpZiBhIFNFQ19FWENMVURFIHNlY3Rpb24gaXMgZW5jb3VudGVyZWQuCgoyMDAyLTAxLTE1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGVsZjMyLXhzdG9ybXkxNi5jICh4c3Rvcm15MTZfcmVsb2NfbWFwKTogQWRkIG5ldyBmaWVsZCAndGFibGUnLgoJKHhzdG9ybXkxNl9yZWxvY19tYXApOiBJbml0aWFsaXNlIG5ldyBmaWVsZCB3aXRoIGNvcnJlY3QgaG93dG8KCXRhYmxlLgoJKHhzdG9ybXkxNl9yZWxvY190eXBlX2xvb2t1cCk6IFVzZSAndGFibGUnIGZpZWxkIHRvIGxvY2F0ZSBjb3JyZWN0Cglob3d0byBlbnRyeS4KCjIwMDItMDEtMTAgIE1pY2hhZWwgU255ZGVyICA8bXNueWRlckByZWRoYXQuY29tPgoKCSogZWxmLmMgKGVsZmNvcmVfd3JpdGVfcHJzdGF0dXMpOiBVc2UgbG9uZyBpbnN0ZWFkIG9mIHBpZF90OwoJKGVsZmNvcmVfd3JpdGVfcHN0YXR1cyk6IFVzZSBsb25nIGluc3RlYWQgb2YgcGlkX3Q7CgkqIGVsZi1iZmQuaDogQ2hhbmdlIHByb3RvdHlwZXMgdG8gdXNlIGxvbmcgaW5zdGVhZCBvZiBwaWRfdDsKCjIwMDItMDEtMDkgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBlbGYuYzogVXBkYXRlIGNvcHlyaWdodCB5ZWFycy4KCShlbGZjb3JlX2dyb2tfbmV0YnNkX25vdGUpOiBVc2UgTlRfTkVUQlNEQ09SRV9QUk9DSU5GTwoJYW5kIE5UX05FVEJTRENPUkVfRklSU1RNQUNILiAgSW1wcm92ZSBhIGNvbW1lbnQuCgoyMDAyLTAxLTA4ICBNaWNoYWVsIFNueWRlciAgPG1zbnlkZXJAcmVkaGF0LmNvbT4KCglBZGQgY2FwYWJpbGl0eSB0byB3cml0ZSBjb3JlZmlsZSBub3RlIHNlY3Rpb25zLCBmb3IgZ2RiLgoJKiBlbGYuYyAoZWxmY29yZV93cml0ZV9ub3RlKTogTmV3IGZ1bmN0aW9uLgoJKGVsZmNvcmVfd3JpdGVfcHJwc2luZm8pOiBOZXcgZnVuY3Rpb24uCgkoZWxmY29yZV93cml0ZV9wcnN0YXR1cyk6IE5ldyBmdW5jdGlvbi4KCShlbGZjb3JlX3dyaXRlX3BzdGF0dXMpOiBOZXcgZnVuY3Rpb24uCgkoZWxmY29yZV93cml0ZV9wcmZwcmVnKTogTmV3IGZ1bmN0aW9uLgoJKGVsZmNvcmVfd3JpdGVfcHJ4ZnByZWcpOiBOZXcgZnVuY3Rpb24uCgkqIGVsZi1iZmQuaDogQWRkIHByb3RvdHlwZXMgZm9yIGFib3ZlIGZ1bmN0aW9ucy4KCjIwMDItMDEtMDggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmLmMgKGVsZl9mYWtlX3NlY3Rpb25zKTogUHJvcGFnYXRlIGVycm9ycyBmcm9tCgllbGZfYmFja2VuZF9mYWtlX3NlY3Rpb24uCgoyMDAyLTAxLTA3ICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogTWFrZWZpbGUuYW0gKEJGRDMyX0JBQ0tFTkRTKTogQWRkIGVsZjMyLXNoLW5ic2QubG8uCgkoQkZEMzJfQkFDS0VORFNfQ0ZJTEVTKTogQWRkIGVsZjMyLXNoLW5ic2QuYy4KCShlbGYzMi1zaC1uYnNkLmxvKTogTmV3IHJ1bGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWcuYmZkIChzaCpsZS0qLW5ldGJzZGVsZiopOiBOZXcgdGFyZ2V0LgoJKHNoKi0qLW5ldGJzZGVsZiopOiBOZXcgdGFyZ2V0LgoJKiBjb25maWd1cmUuaW46IEluY2x1ZGUgbmV0YnNkLWNvcmUubG8gZm9yIG5hdGl2ZSBzaCotKi1uZXRic2QqLgoJKGJmZF9lbGYzMl9zaG5ic2RfdmVjKTogTmV3IHZlY3Rvci4KCShiZmRfZWxmMzJfc2hsbmJzZF92ZWMpOiBOZXcgdmVjdG9yLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGVsZjMyLXNoLW5ic2QuYzogTmV3IGZpbGUuCgkqIHRhcmdldHMuYzogVXBkYXRlIGNvcHlyaWdodCB5ZWFycy4KCShfYmZkX3RhcmdldF92ZWN0b3IpOiBBZGQgYmZkX2VsZjMyX3NobG5ic2RfdmVjIGFuZAoJYmZkX2VsZjMyX3NobmJzZF92ZWMuCgoyMDAyLTAxLTA3ICBBbGR5IEhlcm5hbmRleiAgPGFsZHloQHJlZGhhdC5jb20+CgoJKiBjb2ZmLXJzNjAwMC5jIChSRUFEMjApOiBVc2UgYmZkX3NjYW5fdm1hLgoKMjAwMi0wMS0wNyAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0ByZWRoYXQuY29tPgoKCSogZWxmbGluay5oIChlbGZfbGlua19pbnB1dF9iZmQpOiBEb24ndCBhc2sgZm9yIHRoZSBtZXJnZWQgb2Zmc2V0CglvZiBhIHN5bWJvbCBpbiBhIHNlY3Rpb24gdGhhdCB3aWxsIGJlIGRlbGV0ZWQuCgoyMDAyLTAxLTA3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIHBvL2VzLnBvOiBOZXcgZmlsZTogU3BhbmlzaCB0cmFuc2xhdGlvbi4KCSogY29uZmlndXJlLmluIChBTExfTElOR1VBUyk6IEFkZCBlcy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wMS0wNiAgU3RldmUgRWxsY2V5ICA8c2plQGN1cC5ocC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKGlzX3Vud2luZF9zZWN0aW9uX25hbWUpOiBBZGQgdGFyZ2V0IHZlY3RvciBhcwoJYXJndW1lbnQgc28gd2UgY2FuIGhhbmRsZSBIUC1VWCBzcGVjaWFsbHkuCgkoZWxmTk5faWE2NF9ocHV4X3ZlYyk6IE5ldyBmb3IgdXNlIGluIGlzX3Vud2luZF9zZWN0aW9uX25hbWUuCgkoZWxmTk5faHB1eF9iYWNrZW5kX3NlY3Rpb25fZnJvbV9iZmRfc2VjdGlvbik6IE5ldyBmb3Igc3VwcG9ydAoJb2YgU0hOX0lBXzY0X0FOU0lfQ09NTU9OLgoJKGVsZk5OX2lhNjRfcmVsYXhfc2VjdGlvbik6IEFkZCBzdXBwb3J0IGZvciBTSE5fSUFfNjRfQU5TSV9DT01NT04uCgkoaXNfdW53aW5kX3NlY3Rpb25fbmFtZSk6IEFkZCBzcGVjaWFsIEhQLVVYIHN1cHBvcnQuCgkoZWxmTk5faWE2NF9zZWN0aW9uX2Zyb21fc2hkcik6IEFkZCBzdXBwb3J0IGZvciBtb3JlIHNlY3Rpb25zLgoJKGVsZk5OX2lhNjRfZmFrZV9zZWN0aW9ucyk6IE1vZGlmeSBpc191bndpbmRfc2VjdGlvbl9uYW1lIGNhbGwgYW5kCglhZGQgc3VwcG9ydCBmb3IgbW9yZSBzZWN0aW9ucy4KCShlbGZOTl9pYTY0X2FkZGl0aW9uYWxfcHJvZ3JhbV9oZWFkZXJzKTogTW9kaWZ5Cglpc191bndpbmRfc2VjdGlvbl9uYW1lIGNhbGwuCgkoZWxmTk5faWE2NF9tb2RpZnlfc2VnbWVudF9tYXApOiBSZW1vdmUgYXNzdW1wdGlvbiB0aGF0IHRoZXJlIGlzCglvbmx5IG9uZSB1bndpbmQgc2VjdGlvbiBpbiBzZWdtZW50LgoKMjAwMi0wMS0wNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHN5bXMuYyAoX2JmZF9nZW5lcmljX21ha2VfZW1wdHlfc3ltYm9sKTogTmV3IGZ1bmN0aW9uLgoJKiBsaWJiZmQtaW4uaCAoX2JmZF9ub3N5bWJvbHNfbWFrZV9lbXB0eV9zeW1ib2wpOiBEZWZpbmUgYXMKCV9iZmRfZ2VuZXJpY19tYWtlX2VtcHR5X3N5bWJvbC4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogaHBwYWJzZC1jb3JlLmMgKGhwcGFic2RfY29yZV9tYWtlX2VtcHR5X3N5bWJvbCk6IERlbGV0ZSBmdW5jdGlvbi4KCShocHBhYnNkX2NvcmVfZ2V0X3N5bXRhYl91cHBlcl9ib3VuZCk6IERvbid0IGRlZmluZS4KCShocHBhYnNkX2NvcmVfZ2V0X3N5bXRhYik6IExpa2V3aXNlLgoJKGhwcGFic2RfY29yZV9wcmludF9zeW1ib2wpOiBMaWtld2lzZS4KCShocHBhYnNkX2NvcmVfZ2V0X3N5bWJvbF9pbmZvKTogTGlrZXdpc2UuCgkoaHBwYWJzZF9jb3JlX2JmZF9pc19sb2NhbF9sYWJlbF9uYW1lKTogTGlrZXdpc2UuCgkoaHBwYWJzZF9jb3JlX2dldF9saW5lbm8pOiBMaWtld2lzZS4KCShocHBhYnNkX2NvcmVfZmluZF9uZWFyZXN0X2xpbmUpOiBMaWtld2lzZS4KCShocHBhYnNkX2NvcmVfYmZkX21ha2VfZGVidWdfc3ltYm9sKTogTGlrZXdpc2UuCgkoaHBwYWJzZF9jb3JlX3JlYWRfbWluaXN5bWJvbHMpOiBMaWtld2lzZS4KCShocHBhYnNkX2NvcmVfbWluaXN5bWJvbF90b19zeW1ib2wpOiBMaWtld2lzZS4KCShocHBhYnNkX2NvcmVfdmVjKTogVXNlIEJGRF9KVU1QX1RBQkxFX1NZTUJPTFMgKF9iZmRfbm9zeW1ib2xzKS4KCUZvcm1hdHRpbmcgZml4ZXMuCgkqIGhwdXgtY29yZS5jOiBTaW1pbGFybHkuCgkqIGlyaXgtY29yZS5jOiBTaW1pbGFybHkuCgkqIG9zZi1jb3JlLmM6IFNpbWlsYXJseS4KCSogc2NvNS1jb3JlLmM6IFNpbWlsYXJseS4KCSogYmluYXJ5LmMgKGJpbmFyeV9tYWtlX2VtcHR5X3N5bWJvbCk6IFJlbW92ZSBmdW5jdGlvbiwgZGVmaW5lIGFzCglfYmZkX2dlbmVyaWNfbWFrZV9lbXB0eV9zeW1ib2wuCgkqIGloZXguYyAoaWhleF9tYWtlX2VtcHR5X3N5bWJvbCk6IExpa2V3aXNlLgoJKiBtbW8uYyAobW1vX21ha2VfZW1wdHlfc3ltYm9sKTogTGlrZXdpc2UuCgkqIHBwY2Jvb3QuYyAocHBjYm9vdF9tYWtlX2VtcHR5X3N5bWJvbCk6IExpa2V3aXNlLgoJKiBzcmVjLmMgKHNyZWNfbWFrZV9lbXB0eV9zeW1ib2wpOiBMaWtld2lzZS4KCSogdmVyc2Fkb3MuYyAodmVyc2Fkb3NfbWFrZV9lbXB0eV9zeW1ib2wpOiBMaWtld2lzZS4KCSogdm1zLmMgKF9iZmRfdm1zX21ha2VfZW1wdHlfc3ltYm9sKTogUmVtb3ZlLgoJKHZtc19tYWtlX2VtcHR5X3N5bWJvbCk6IERlZmluZSBhcyBfYmZkX2dlbmVyaWNfbWFrZV9lbXB0eV9zeW1ib2wuCgkqIHZtcy1nc2QuYyAoX2JmZF92bXNfc2x1cnBfZ3NkKTogQ2FsbCBiZmRfbWFrZV9lbXB0eV9zeW1ib2wKCXJhdGhlciB0aGFuIF9iZmRfdm1zX21ha2VfZW1wdHlfc3ltYm9sLgoJKiB2bXMtbWlzYy5jIChuZXdfc3ltYm9sKTogTGlrZXdpc2UuCgoyMDAyLTAxLTA1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogc2VjdGlvbi5jIChiZmRfc2VjdGlvbl9pbml0KTogUmVtb3ZlIHVubmVjZXNzYXJ5IGluaXRpYWxpc2F0aW9ucy4KCShiZmRfc2VjdGlvbl9saXN0X2NsZWFyKTogTmV3IGZ1bmN0aW9uLgoJKGJmZF9zZWN0aW9uX2xpc3RfcmVtb3ZlLCBiZmRfc2VjdGlvbl9saXN0X2luc2VydCk6IE5ldyBtYWNyb3MuCgkoX2JmZF9zdHJpcF9zZWN0aW9uX2Zyb21fb3V0cHV0KTogVXNlIHRoZW0uCgkqIGNvZmZjb2RlLmggKGNvZmZfc2V0X2FsaWdubWVudF9ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLW1pcHMuYyAoX2JmZF9taXBzX2VsZl9maW5hbF9saW5rKTogTGlrZXdpc2UuCgkqIGVsZjY0LW1pcHMuYyAobWlwc19lbGY2NF9maW5hbF9saW5rKTogTGlrZXdpc2UuCgkqIGVsZjY0LW1taXguYyAobW1peF9lbGZfZmluYWxfbGluayk6IExpa2V3aXNlLgoJKiBzdW5vcy5jIChzdW5vc19hZGRfZHluYW1pY19zeW1ib2xzKTogTGlrZXdpc2UuCgkqIHhjb2ZmbGluay5jIChfYmZkX3hjb2ZmX2JmZF9maW5hbF9saW5rKTogTGlrZXdpc2UuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCgkqIG5ldGJzZC1jb3JlLmMgKG5ldGJzZF9jb3JlX2ZpbGVfcCk6IFVzZSBiZmRfbWFrZV9zZWN0aW9uX2FueXdheQoJcmF0aGVyIHRoYW4gZG9pbmcgb3VyIG93biBzZWN0aW9uIGhhbmRsaW5nLiAgQ2xlYW4gdXAgYWZ0ZXIgZXJyb3JzCgl3aXRoIGJmZF9yZWxlYXNlIGFuZCBiZmRfc2VjdGlvbl9saXN0X2NsZWFyLiAgSGFuZGxlIHVuZXhwZWN0ZWQKCWZsYWdzLgoJKiBhb3V0ZjEuaCAoc3Vub3M0X2NvcmVfZmlsZV9wKTogTGlrZXdpc2UuCgkqIGFpeDM4Ni1jb3JlLmMgKGFpeDM4Nl9jb3JlX2ZpbGVfcCk6IExpa2V3aXNlLgoJKiBjaXNjby1jb3JlLmMgKGNpc2NvX2NvcmVfZmlsZV92YWxpZGF0ZSk6IExpa2V3aXNlLgoJKiBwdHJhY2UtY29yZS5jIChwdHJhY2VfdW5peF9jb3JlX2ZpbGVfcCk6IExpa2V3aXNlLgoJKiB0cmFkLWNvcmUuYyAodHJhZF91bml4X2NvcmVfZmlsZV9wKTogTGlrZXdpc2UuCgoJKiBocHBhYnNkLWNvcmUuYyAoaHBwYWJzZF9jb3JlX2NvcmVfZmlsZV9wKTogQ2xlYW4gdXAgYWZ0ZXIgZXJyb3JzCgl3aXRoIGJmZF9yZWxlYXNlIGFuZCBiZmRfc2VjdGlvbl9saXN0X2NsZWFyLgoJKiBocHV4LWNvcmUuYyAoaHB1eF9jb3JlX2NvcmVfZmlsZV9wKTogTGlrZXdpc2UuCgkqIGlyaXgtY29yZS5jIChpcml4X2NvcmVfY29yZV9maWxlX3ApOiBMaWtld2lzZS4KCSogbHlueC1jb3JlLmMgKGx5bnhfY29yZV9maWxlX3ApOiBMaWtld2lzZS4KCSogb3NmLWNvcmUuYyAob3NmX2NvcmVfY29yZV9maWxlX3ApOiBMaWtld2lzZS4KCSogcnM2MDAwLWNvcmUuYyAocnM2MDAwY29mZl9jb3JlX3ApOiBMaWtld2lzZS4KCSogc2NvNS1jb3JlLmMgKHNjbzVfY29yZV9maWxlX3ApOiBMaWtld2lzZS4KCgkqIGVsZjMyLW1pcHMuYyAoX2JmZF9taXBzX2VsZl9sbzE2X3JlbG9jKTogU2ltcGxpZnksIGFuZCBwZXJmb3JtCglzaWduIGV4dGVuc2lvbiBhZGp1c3RtZW50cyB3aXRob3V0IGNvbmRpdGlvbmFscy4KCjIwMDItMDEtMDQgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmLWVoLWZyYW1lLmMgKF9iZmRfZWxmX3dyaXRlX3NlY3Rpb25fZWhfZnJhbWUpOiBEb24ndCBjcmFzaCBpZgoJQ0lFIGF0IC5laF9mcmFtZSBzdGFydCBpcyByZW1vdmVkIGR1ZSB0byBubyBGREVzIHJlZmVyZW5jaW5nIGl0LgoKMjAwMi0wMS0wNCAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZy5iZmQgKHg4Nl82NC0qLW5ldGJzZCopOiBOZXcgdGFyZ2V0LgoJKiBjb25maWd1cmUuaW4gKHg4Nl82NC0qLW5ldGJzZCopOiBTZXQgQ09SRUZJTEUKCXRvIG5ldGJzZC1jb3JlLmxvLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKMjAwMi0wMS0wMyAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIHhjb2ZmbGluay5jIChfYmZkX3hjb2ZmX2JmZF9maW5hbF9saW5rKTogVXBkYXRlIC5wYWQgc2VjdGlvbiBvcmRlcmluZwoJZm9yIHJlY2VudCBiZmRfbWFrZV9zZWN0aW9uX2FueXdheSBjaGFuZ2UuCgoyMDAyLTAxLTAzICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fZmluYWxfbGlua19yZWxvY2F0ZSk6IEhhbmRsZQoJUl9BUk1fVEhNX1BDMTEgcmVsb2MuCgoyMDAyLTAxLTAyICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoTElOR1VBUyk6IEFkZCBqYS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBwby9qYS5wbzogSW1wb3J0IGZyb20gdHJhbnNsYXRpb24gcHJvamVjdCdzIHdlYiBzaXRlLgoKMjAwMi0wMS0wMiAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBSZWZvcm1hdCBlcnJvcgoJbWVzc2FnZXMgdG8gZWFzZSB0cmFuc2xhdGlvbiBpbnRvIG90aGVyIGxhbmd1YWdlcy4KCkZvciBvbGRlciBjaGFuZ2VzIHNlZSBDaGFuZ2VMb2ctMDAwMQoMCkxvY2FsIFZhcmlhYmxlczoKbW9kZTogY2hhbmdlLWxvZwpsZWZ0LW1hcmdpbjogOApmaWxsLWNvbHVtbjogNzQKdmVyc2lvbi1jb250cm9sOiBuZXZlcgpFbmQ6Cg==