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+CgoJKiBlbGYzMi1ocHBhLmMgKHN0cnVjdCBlbGYzMl9ocHBhX2xpbmtfaGFzaF9lbnRyeSwKCWhwcGFfbGlua19oYXNoX25ld2Z1bmMsIGhwcGFfYnVpbGRfb25lX3N0dWIsCgllbGYzMl9ocHBhX2FkanVzdF9keW5hbWljX3N5bWJvbCwgbWFya19QSUNfY2FsbHMsIGFsbG9jYXRlX3BsdF9zdGF0aWMsCglhbGxvY2F0ZV9keW5yZWxvY3MsIGVsZjMyX2hwcGFfc2l6ZV9keW5hbWljX3NlY3Rpb25zLAoJZWxmMzJfaHBwYV9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBSZW1vdmUgcGljX2NhbGwgZmllbGQgYW5kIGFsbCBjb2RlCglmb3IgZ2VuZXJhdGluZyBpbXBvcnQgc3R1YnMgZm9yIGNhbGxzIHRvIHN0YXRpY2FsbHkgbGlua2VkIFBJQwoJZnVuY3Rpb25zLgoJKGhwcGFfdHlwZV9vZl9zdHViKTogRG9uJ3QgZ2VuZXJhdGUgYW4gaW1wb3J0IHN0dWIgZm9yIGNhbGxzIHRvCglzdGF0aWNhbGx5IGxpbmtlZCBwaWMgZnVuY3Rpb25zLiAgR2VuZXJhdGUgaW1wb3J0IHN0dWJzIGZvciBjYWxscwoJaW4gYSBzaGFyZWQgb2JqZWN0LCB0byBmdW5jdGlvbnMgbm90IGluIGEgcmVndWxhciBmaWxlLCBhbmQgdG8KCWRlZmluZWQgd2VhayBmdW5jdGlvbnMuICBBZGQgbmV3IGFyZ3VtZW50IElORk8uCgkoaHBwYV9idWlsZF9vbmVfc3R1Yik6IERvbid0IHVuZGVmIEFERElMX0RQLgoJKGVsZjMyX2hwcGFfY2hlY2tfcmVsb2NzKTogRG9uJ3Qgc2V0IFNFQ19IQVNfR09UX1JFRiBmbGFnLgoJKGVsZjMyX2hwcGFfc2l6ZV9zdHVicyk6IFBhc3MgaW5mbyB0byBocHBhX3R5cGVfb2Zfc3R1Yi4KCShmaW5hbF9saW5rX3JlbG9jYXRlKTogQ2hhbmdlIGFsbCBETFRJTkQgcmVsb2NzIHRvIERQUkVMIHJlbG9jcyBpbiBhCglub24tc2hhcmVkIGxpbmsuICBDb252ZXJ0IGluc3RydWN0aW9ucyB0aGF0IHVzZSB0aGUgbGlua2FnZSB0YWJsZQoJcG9pbnRlciwgb3IgYSBmYWNzaW1pbGUgdGhlcmVvZiwgdG8gdXNlIHRoZSBnbG9iYWwgZGF0YSBwb2ludGVyIHdoZW4KCXRoZSByZWxvYyBoYXMgYmVlbiBjaGFuZ2VkLgoKMjAwMy0wOS0wOCAgSm9lbCBCcm9iZWNrZXIgIDxicm9iZWNrZXJAZ25hdC5jb20+CgoJKiBhcmNodXJlcy5jOiBBZGQgbmV3IG1hY2hpbmUgbmFtZXMgZm9yIGhwcGEuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogY3B1LWhwcGEuYzogVXNlIHRoZSBuZXcgbWFjaGluZSBuYW1lcy4KCjIwMDMtMDktMDYgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogZWxmMzItbTY4aGMxeC5oIChzdHJ1Y3QgbTY4aGMxMV9lbGZfbGlua19oYXNoX3RhYmxlKTogUmVtb3ZlCglhbGxfbG9jYWxfc3ltcyBtZW1iZXIuCgkqIGVsZjMyLW02OGhjMXguYyAoZWxmMzJfbTY4aGMxMV9zaXplX3N0dWJzKTogVXNlIGJmZF9lbGZfZ2V0X2VsZl9zeW1zCgl0byBnZXQgdGhlIGxvY2FsIHN5bWJvbHMuCgoyMDAzLTA5LTA2ICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGVsZjMyLW02OGhjMTIuYyAoZWxmMzJfbTY4aGMxMl9zcGVjaWFsX3NlY3Rpb25zKTogTmV3IGZvciBoYzExLgoJKGVsZl9iYWNrZW5kX3NwZWNpYWxfc2VjdGlvbnMpOiBEZWZpbmUuYQoKCVBSIHNhdmFubmFoLzQ5NTA6CgkqIGVsZjMyLW02OGhjMTEuYyAoZWxmMzJfbTY4aGMxMV9zcGVjaWFsX3NlY3Rpb25zKTogVGhlIC52ZWN0b3JzCglzZWN0aW9uIGlzIHJlYWQtb25seS4KCjIwMDMtMDktMDQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBhcmNodXJlcy5jIChiZmRfbWFjaF92ODUwZTEpOiBEZWZpbmUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogY3B1LXY4NTAuaCAoc2Nhbik6IEFjY2VwdCBiZmRfbWFjaF92ODUwZTEuCgkoYXJjaF9pbmZvX3N0cnVjdCk6IEluY2x1ZGUgYW4gZW50cnkgZm9yIGJmZF9tYWNoX3Y4NTBlMS4KCSogZWxmMzItdjg1MC5jICh2ODUwX2VsZl9vYmplY3RfcCk6IEFjY2VwdCBFX1Y4NTBFMV9BUkNIIGZsYWcuCgkodjg1MF9lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IEFjY2VwdCBiZmRfbWFjaF92ODUwZTEuCgkodjg1MF9lbGZfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IEludGVycHJldCBFX1Y4NTBFMV9BUkNIIGZsYWcuCgkodjg1MF9lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IEFsbG93IHY4NTBlMSBiaW5hcmllcyB0byBiZQoJbGlua2VkIHdpdGggdjg1MGUgYmluYXJpZXMuICBNYXJrIHRoZSBvdXRwdXQgYXMgdjg1MGUuCgoyMDAzLTA5LTAzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29mZmxpbmsuYyAoX2JmZF9jb2ZmX2xpbmtfaW5wdXRfYmZkKTogRG8gbm90IHNraXAgc2VjdGlvbgoJc3ltYm9scyB0aGF0IGFyZSB1c2VkIGluIHJlbG9jcy4KCjIwMDMtMDgtMzAgIFJvYmVydCBNaWxsYW4gIDxyb2JlcnRtaEBnbnUub3JnPgoKCSogY29uZmlndXJlLmluOiBNYXRjaCBHTlUvS0ZyZWVCU0Qgd2l0aCBuZXcga2ZyZWVic2QqLWdudSB0cmlwbGV0LgoJKiBjb25maWcuYmZkOiBMaWtld2lzZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMy0wOC0zMSAgQ2hyaXN0aWFuIEdyb2Vzc2xlciAgPGNocmlzQGdyb2Vzc2xlci5vcmc+CgoJKiBlbGYzMi1pODYwLmMgKGk4NjBfaG93dG9fcGMyNl9yZWxvYyk6IEZpbmlzaCByZWxvY2F0aW9uIGhlcmUKCWluc3RlYWQgb2YgcmV0dXJuaW5nIGJmZF9yZWxvY19jb250aW51ZS4KCjIwMDMtMDgtMzEgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIG1lcmdlLmM6IFVwZGF0ZSB0byBJU08gQzkwLgoKMjAwMy0wOC0yNyAgSWFuIExhbmNlIFRheWxvciAgPGlhbkBhaXJzLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQ2hlY2sgZm9yIHN0cnRvdWxsLgoJKiBiZmQuYyAoYmZkX3NjYW5fdm1hKTogVXNlIHN0cnRvdWxsIHdoZW4gYXZhaWxhYmxlLgoJKiBjb25maWd1cmUsIGNvbmZpZy5pbjogUmVnZW5lcmF0ZS4KCgkqIGNvbmZpZ3VyZS5pbjogRGVmaW5lIGFuZCBzdWJzdGl0dXRlIEJGRF9IT1NUX0xPTkdfTE9ORy4KCSogYmZkLWluLmg6IERlZmluZSBCRkRfSE9TVF9MT05HX0xPTkcuICBUZXN0IGl0IHJhdGhlciB0aGFuCglfX0dOVUNfXyB3aGVuIGRlY2lkaW5nIHdoZXRoZXIgdG8gdXNlIGxvbmcgbG9uZyBmb3IKCUJGRF9IT1NUXzY0X0JJVC4KCSogY29uZmlndXJlLCBNYWtlZmlsZS5pbiwgZG9jL01ha2VmaWxlLmluLCBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAzLTA4LTI3ICBDaHJpc3RpYW4gR3JvZXNzbGVyICA8Y2hyaXNAZ3JvZXNzbGVyLm9yZz4KCgkqIGVsZjMyLWk4NjAuYyAoaTg2MF9ob3d0b19wYzI2X3JlbG9jLCBpODYwX2hvd3RvX3BjMTZfcmVsb2MsCglpODYwX2hvd3RvX3NwbGl0bl9yZWxvYywgaTg2MF9ob3d0b19oaWdoYWRqX3JlbG9jKTogTmV3CglmdW5jdGlvbnMuCgkoZWxmMzJfaTg2MF9ob3d0b190YWJsZSk6IEluc2VydCB0aGUgbmV3IGZ1bmN0aW9ucyBhcwoJJ3NwZWNpYWxfZnVuY3Rpb24ncyBpbiB0aGUgcHJvcGVyIHJlbG9jIHR5cGUgZW50cmllcy4KCjIwMDMtMDgtMjcgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGVsZjMyLWZydi5jIChlbGYzMl9mcnZfcmVsb2NhdGVfc2VjdGlvbik6IFVzZQoJX2JmZF9lbGZfcmVsYV9sb2NhbF9zeW0uCgoyMDAzLTA4LTI2ICBNaWNoYWVsIFNueWRlciAgPG1zbnlkZXJAcmVkaGF0LmNvbT4KCgkqIGNwdS1mcnYuYzogUmVtb3ZlIHVudXNlZCBlbnVtLgoKMjAwMy0wOC0yNSAgTWFjaWVqIFcuIFJvenlja2kgIDxtYWNyb0BkczIucGcuZ2RhLnBsPgoKCSogcmVsb2MuYzogRml4IGRvY3VtZW50YXRpb24gZm9yIE1JUFMgRUxGIHJlbG9jYXRpb25zLgoJbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgliZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAzLTA4LTI0ICBKYXNvbiBFY2toYXJkdCAgPGpsZUByaWNlLmVkdT4KCgkqIGNvZmYtaTg2MC5jIChDQUxDX0FEREVORCk6IERlZmluZSB0byBiZSBhIG5vLW9wLgoKMjAwMy0wOC0yNCAgSmFzb24gRWNraGFyZHQgIDxqbGVAcmljZS5lZHU+CgoJKiBlbGYzMi1pODYwLmMgKGVsZjMyX2k4NjBfcmVsb2NhdGVfcGMxNik6IFN1YnRyYWN0IDQgYW5kCglzaGlmdCBieSAyIGJlZm9yZSBzdG9yaW5nIHRoZSByZWxvY2F0ZWQgdmFsdWUuCgoyMDAzLTA4LTIzICBKYXNvbiBFY2toYXJkdCAgPGpsZUByaWNlLmVkdT4KCgkqIGNvZmYtaTg2MC5jIChjb2ZmX2k4NjBfcmVsb2NfbnlpKTogTmV3IGZ1bmN0aW9uLgoJKGhvd3RvX3RhYmxlKTogQWRkIGVudHJpZXMgZm9yIHJlbG9jYXRpb25zIFBBSVIsIEhJR0hBREosIEhJR0gsCglMT1duLCBTUExJVG4sIGFuZCBCUkFERFIuCgkoUlRZUEUySE9XVE8pOiBDaGVjayB0aGF0IHRoZSByX3R5cGUgaXMgd2l0aGluIHRoZSBob3d0b190YWJsZQoJYmVmb3JlIHRyeWluZyB0byBhY2Nlc3MgdGhlIGVudHJ5LgoJKGNvZmZfaTg2MF9ydHlwZV90b19ob3d0byk6IExpa2V3aXNlLgoJKGNvZmZfaTg2MF9yZWxvY190eXBlX2xvb2t1cCk6IE5ldyBmdW5jdGlvbi4KCShpODYwX3JlbG9jX3Byb2Nlc3NpbmcpOiBOZXcgZnVuY3Rpb24uCgkoY29mZl9iZmRfcmVsb2NfdHlwZV9sb29rdXApOiBEZWZpbmUgbWFjcm8uCgkoUkVMT0NfUFJPQ0VTU0lORyk6IERlZmluZSBtYWNyby4KCU1pbm9yIGZvcm1hdHRpbmcgYWRqdXN0bWVudHMuCgoyMDAzLTA4LTIzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBEb24ndCBjcmFzaCBvbiBOVUxMIG93bmVyLgoKMjAwMy0wOC0yMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogQWxpZ24gdGhlCgkuZ290IHNlY3Rpb24gYXQgOCBieXRlcy4KCjIwMDMtMDgtMjEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb2ZmbGluay5jOiBVcGRhdGUgdG8gSVNPIEM5MCBhbmQgdGlkeSB1cCBmb3JtYXR0aW5nLgoKMjAwMy0wOC0yMSAgUmFuZG9scGggQ2h1bmcgIDx0YXVzcUBkZWJpYW4ub3JnPgoKCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX29iamVjdF9wKTogRm9yIGVsZjMyLWhwcGEtbGludXgsIG9iamVjdHMKCWNhbiBoYXZlIE9TQUJJPUxpbnV4IG9yIE9TQUJJPVN5c1YuICBDaGVjayBmb3IgYm90aC4KCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX29iamVjdF9wKTogTGlrZXdpc2UuCgoyMDAzLTA4LTIxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vc3YucG86IFVwZGF0ZWQgU3dlZGlzaCB0cmFuc2xhdGlvbi4KCjIwMDMtMDgtMjAgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGVsZjY0LW1pcHMuYyAoZWxmX2JhY2tlbmRfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBEZWZpbmUuCgoyMDAzLTA4LTIwICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmLWJmZC5oIChSRUxPQ19GT1JfR0xPQkFMX1NZTUJPTCk6IE5ldyBtYWNybyB1c2VkIHRvCglyZXBsYWNlIHNvbWUgZHVwbGljYXRlZCBjb2RlIGluIG1vc3QgZWxmeHgteHh4eC5jIGZpbGVzLiAgVGhpcwoJdmVyc2lvbiB1c2VzIHRoZSBuZXcgZmllbGRzIGluIGJmZF9saW5rX2luZm8uCgoJKiBlbGYtbTEwMzAwLmMgKG1uMTAzMDBfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBVc2UgbmV3IG1hY3JvLgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItY3Jpcy5jIChjcmlzX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1pcDJrLmMgKGlwMmtfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItaXEyMDAwLmMgKGlxMjAwMF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhrLmMgKGVsZl9tNjhrX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmMgKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItc3BhcmMuYyAoZWxmMzJfc3BhcmNfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi12YXguYyAoZWxmX3ZheF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXh0ZW5zYS5jIChlbGZfeHRlbnNhX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jIChlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV91bm1hcmtfdXNlbGVzc19keW5hbWljX3N5bWJvbHMsCgllbGZfaHBwYV9yZW1hcmtfdXNlbGVzc19keW5hbWljX3N5bWJvbHMsCgllbGZfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogVXNlIHRoZSBuZXcgZmllbGRzIGluCgliZmRfbGlua19pbmZvIHN0cnVjdHVyZS4KCSogZWxmMzItc2guYyAoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCgkqIGVsZjY0LWhwcGEuYyAoZWxmNjRfaHBwYV9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4KCSogZWxmNjQtc2g2NC5jIChzaF9lbGY2NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IExpa2V3aXNlLgoKCSogZWxmbGluay5oIChlbGZfbGlua19vdXRwdXRfZXh0c3ltKTogRml4IHRlc3QgZm9yIHJlcG9ydGluZwoJdW5kZWZpbmVkIHN5bWJvbHMgaW4gc2hhcmVkIGxpYnJhcmllcy4gIFJlbW92ZSByZWR1bmRhbnQgdGVzdAoJb2Ygc2hsaWJfdW5kZWZpbmVkIHdoZW4gcmVwb3J0aW5nIHJlZmVyZW5jZXMgdG8gZm9yY2VkIGxvY2FsCglzeW1ib2xzLgoKMjAwMy0wOC0xOCAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIGxpYnBlaS5oIChiZmRfcGVfZXhlY3V0YWJsZV9wKTogQWxzbyByZWNvZ25pemUgZWZpLWFwcAoJZXhlY3V0YWJsZXMuCgoyMDAzLTA4LTE3ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBzaW1wbGUuYyAoYmZkX3NpbXBsZV9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBNb3ZlCglyZWxvY19kb25lIGhhY2sgdG8gYmVmb3JlIGZpcnN0IGJmZF9zZWN0aW9uX3NpemUgY2FsbC4gIENoYW5nZSBhbGwKCXJldHVybnMgdG8gdXNlIG5ldyB3cmFwcGVyIG1hY3JvIFJFVFVSTiwgcmVzdG9yaW5nIHNlYy0+cmVsb2NfZG9uZS4KCjIwMDMtMDgtMTYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYzogRG9uJ3QgaW5jbHVkZSBlbGYvcHBjLmguCgoyMDAzLTA4LTE0ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfbW9kaWZ5X3NlZ21lbnRfbWFwKTogRml4IFBUX0RZTkFNSUMKCWNvZGUgdG8gd29yayB3aXRoIDY0LWJpdCBiZmRzLgoKMjAwMy0wOC0xNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGRlcC1pbi5zZWQ6IFJlbW92ZSBsaWJpbnRsLmguCgkqIE1ha2VmaWxlLmFtIChTUkMtUE9URklMRVMuaW4sIEJMRC1QT1RGSUxFUy5pbik6IFVuc2V0IExDX0NPTExBVEUuCgkoUE9URklMRVMuaW4pOiBSZW1vdmUgdGFyZ2V0LgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMDgtMTIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX25leHRfaW5wdXRfc2VjdGlvbik6IFVwZGF0ZSBjb21tZW50LgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogRm9yIHplcm8gc3ltIFJfUFBDNjRfVE9DIHJlbG9jcywKCXVzZSB0aGUgZnVuY3Rpb24gc3ltIGZyb20gdGhlIHByZXZpb3VzIHJlbG9jLgoKMjAwMy0wOC0xMSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBNYWtlIHVuZGVmaW5lZCBzeW1ib2xzCglmYXRhbCBpZiAtcGllLgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItc3BhcmMuYyAoZWxmMzJfc3BhcmNfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmMgKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbikgPGNhc2UgUl9QUENfUkVMQVgzMj46IElzc3VlIGZhdGFsIGVycm9yCglvbiB1bmRlZmluZWQgc3ltYm9scyBpZiAtcGllLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMy0wOC0xMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEFkZCBzcGVjaWFsIGNhc2UgZm9yIGNydDEubwoJYnJhbmNoIHRvIF9fbGliY19zdGFydF9tYWluLgoKMjAwMy0wOC0wOCBEbWl0cnkgRGlreSA8ZGl3aWxAbWFpbC5ydT4KCgkqIGFyY2h1cmVzLmM6IEFkZCB4VzQyIGFuZCB4RTQyIHBhcnRzLiBTb3J0IE1QVSBsaXN0IGFjY29yZGluZyB0bwoJZ2NjIG9yZGVyLgoJKiBjcHUtbXNwNDMwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1tc3A0MzAuYzogTGlrZXdpc2UuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDMtMDgtMDcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZ4eC10YXJnZXQuaDogUmVtb3ZlIFBUUiBjYXN0LgoJKiB0YXJnZXRzLmMgKGJmZF90YXJnZXQpOiBNYWtlIGJhY2tlbmRfZGF0YSBjb25zdCB2b2lkICouCgkqIGVsZi1iZmQuaDogQ29uc3RpZnkgYWxsIG9jY3VycmVuY2VzIG9mIHN0cnVjdCBlbGZfYmFja2VuZF9kYXRhLgoJKiBlbGYtbTEwMzAwLmM6IExpa2V3aXNlLgoJKiBlbGYuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWkzODYuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGhjMXguYzogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jOiBMaWtld2lzZS4KCSogZWxmMzItczM5MC5jOiBMaWtld2lzZS4KCSogZWxmMzItc2guYzogTGlrZXdpc2UuCgkqIGVsZjMyLXNoNjQuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXNwYXJjLmM6IExpa2V3aXNlLgoJKiBlbGYzMi14dGVuc2EuYzogTGlrZXdpc2UuCgkqIGVsZjY0LW1pcHMuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jOiBMaWtld2lzZS4KCSogZWxmNjQtc2g2NC5jOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jOiBMaWtld2lzZS4KCSogZWxmY29kZS5oOiBMaWtld2lzZS4KCSogZWxmY29yZS5oOiBMaWtld2lzZS4KCSogZWxmbGluay5jOiBMaWtld2lzZS4KCSogZWxmbGluay5oOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5jOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5oOiBMaWtld2lzZS4KCSogZWxmLmMgKHByZXBfaGVhZGVycyk6IFJlbW92ZSB1c2VsZXNzIGNoZWNrIGZvciBudWxsIGJhY2tlbmRfZGF0YS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKCSogZWxmLWJmZC5oOiBSZW1vdmUgUEFSQU1TIG1hY3JvLiAgUmVwbGFjZSBQVFIgd2l0aCB2b2lkICouCgkoTkFNRSk6IFVzZSAjIyByYXRoZXIgdGhhbiBDT05DQVQ0IG1hY3JvLgoJKiBlbGZjb2RlLmg6IFJlbW92ZSBvbmUgcmVtYWluaW5nIFBBUkFNUyBtYWNyby4KCSogZWxmLWVoLWZyYW1lLmM6IENvbnZlcnQgdG8gQzkwLCByZW1vdmUgdW5uZWVkZWQgY2FzdHMgYW5kIHByb3RvdHlwZXMuCgkqIGVsZi1zdHJ0YWIuYzogTGlrZXdpc2UuCgkqIGVsZi1ocHBhLmg6IExpa2V3aXNlLgoJKiBlbGYzMi1ocHBhLmg6IExpa2V3aXNlLgoJKiBlbGYzMi1ocHBhLmM6IExpa2V3aXNlLgoJKGVsZjMyX2hwcGFfYWRkX3N5bWJvbF9ob29rKTogRGVsZXRlLgoJKGVsZl9iYWNrZW5kX2FkZF9zeW1ib2xfaG9vayk6IERvbid0IGRlZmluZS4KCSogbGliaHBwYS5oOiBDb252ZXJ0IHRvIEM5MC4gIFJlcGxhY2UgSU5MSU5FIHdpdGggaW5saW5lLgoKMjAwMy0wOC0wNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGNfc3R1Yl9uYW1lKTogVHdlYWsgbmFtZXMgZm9yIGJldHRlciByZWFkYWJpbGl0eS4KCShwcGM2NF9lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogQWxsb3cgY29weSByZWxvY3MgYWdhaW5zdAoJZnVuY3Rpb24gZGVzY3JpcHRvcnMsIGJ1dCB3YXJuLgoJKHBwY19idWlsZF9vbmVfc3R1Yik6IFJlbW92ZSBhIGNvdXBsZSBvZiB2YXJzLiAgTW92ZSBjb2RlIGNyZWF0aW5nCglzdHViIHN5bXMgc28gdGhhdCB3ZSBjYW4gYXZvaWQgYSBzdHViIHN5bSBpZiB3ZSBhbHJlYWR5IGhhdmUgYQoJcGx0IHN5bS4gIERvIG5vdCByZWRlZmluZSBhbiBleGlzdGluZyBzeW1ib2wuCgkocHBjNjRfZWxmX2J1aWxkX3N0dWJzKTogV2hlbiAtLWVtaXQtc3R1Yi1zeW1zLCBwcmludCBhIHN5bWJvbCBmb3IKCWdsaW5rLgoKMjAwMy0wOC0wNiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL2ZyLnBvOiBVcGRhdGVkIEZyZW5jaCB0cmFuc2xhdGlvbi4KCjIwMDMtMDgtMDYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogTWFyayAuZHluYnNzIHdpdGgKCVNFQ19MSU5LRVJfQ1JFQVRFRC4KCjIwMDMtMDgtMDUgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogZWxmMzItYXJtLmggKFdJTExfQ0FMTF9GSU5JU0hfRFlOQU1JQ19TWU1CT0wpOiBEZWZpbmUuCgkoZWxmMzJfYXJtX2ZpbmFsX2xpbmtfcmVsb2NhdGUsIGVsZjMyX2FybV9yZWxvY2F0ZV9zZWN0aW9uKTogVXNlIGl0LgoKMjAwMy0wOC0wMyAgSmVmZiBNdWl6ZWxhYXIgIDxtdWl6ZWxhYXJAcm9nZXJzLmNvbT4KCgkqIGNvZmZjb2RlLmggKGNvZmZfc2x1cnBfbGluZV90YWJsZSk6IFJldHVybiB3aXRoIGEgd2FybmluZwoJbWVzc2FnZSBpZiB0aGUgbGluZSBudW1iZXIgdGFibGUgY291bGQgbm90IGJlIHJlYWQuCgoyMDAzLTA4LTA0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBQcmVwZW5kICJ3YXJuaW5nOiAiCgl0byBtZXNzYWdlcyBwcm9kdWNlZCBmb3IgLmdudS53YXJuaW5nLlNZTUJPTCBzZWN0aW9ucy4KCjIwMDMtMDgtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZjb2RlLmg6IENvbnZlcnQgdG8gQzkwLCByZW1vdmUgdW5uZWVkZWQgY2FzdHMgYW5kIHByb3RvdHlwZXMuCgkqIGVsZmNvcmUuaDogTGlrZXdpc2UuCgkqIGVsZmxpbmsuYzogTGlrZXdpc2UuCgkqIGVsZmxpbmsuaDogTGlrZXdpc2UuCgkqIGVsZi5jIChzeW1faXNfZ2xvYmFsKTogUmVtb3ZlIElOTElORS4KCShhbGlnbl9maWxlX3Bvc2l0aW9uKTogUmVwbGFjZSBJTkxJTkUgd2l0aCBpbmxpbmUuCgkqIGVsZmNvZGUuaCAoZWxmX3N3YXBfZHluX2luLCBlbGZfc3dhcF9keW5fb3V0KTogUmVtb3ZlIElOTElORS4KCShlbGZfZmlsZV9wKTogUmVwbGFjZSBJTkxJTkUgd2l0aCBpbmxpbmUuCgoyMDAzLTA4LTAyICBLYXogS29qaW1hICA8a2tvamltYUByci5paWo0dS5vci5qcD4KCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9jaGVja19yZWxvY3MpOiBEb24ndCBzZXQgREZfVEVYVFJFTCBoZXJlLgoKMjAwMy0wOC0wMSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmeHgtaWE2NC5jIChnZXRfZ290KTogQWxpZ24gdGhlIC5nb3Qgc2VjdGlvbiBhdCA4IGJ5dGVzLgoKMjAwMy0wOC0wMSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IFVzZQoJRWxmTk5fRXh0ZXJuYWxfUmVsYSBpbnN0ZWFkIG9mIEVsZjY0X0V4dGVybmFsX1JlbGEuCgoyMDAzLTA4LTAxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnLmJmZDogQWRkIGNvZGUgdG8gY2F0Y2ggb2Jzb2xldGUgY29uZmlndXJhdGlvbnMgYW5kIHdhcm4KCWFib3V0IHRoZW0gdW5sZXNzIC0tZW5hYmxlLW9ic29sZXRlIGlzIHVzZWQuICBVc2UgdGhpcyB0byBtYXJrCgl2YXgtdm1zIHBvcnQgYXMgb2Jzb2xldGUuCgoyMDAzLTA3LTMwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItcHBjLmMgKHBwY19lbGZfaW5zdGFsbF92YWx1ZSk6IFRpZHkuCgkocHBjX2VsZl9yZWxheF9zZWN0aW9uKTogUmVtb3ZlIGRlYWQgY29kZS4gIFJlbW92ZSB1bm5lY2Vzc2FyeSBjYXN0cy4KCUZvcm1hdHRpbmcuCgkqIGVsZnh4LXRhcmdldC5oOiBSZW1vdmUgUEFSQU1TIG1hY3JvLiAgRm9ybWF0dGluZy4KCjIwMDMtMDctMzAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYuYyAoYmZkX3NlY3Rpb25fZnJvbV9yX3N5bW5keCk6IFRlc3QgZm9yIFNITl9VTkRFRi4KCSogZWxmNjQtcHBjLmMgKGdldF9mZGgpOiBOZXcgZnVuY3Rpb24sIHNwbGl0IG91dCBmcm9tCglwcGM2NF9lbGZfZWRpdF9vcGQuCgkocHBjNjRfZWxmX2NoZWNrX3JlbG9jcyk6IFVzZSBnZXRfZmRoLgoJKGZ1bmNfZGVzY19hZGp1c3QpOiBMaWtld2lzZS4gIFRpZHkuCgkocHBjNjRfZWxmX2VkaXRfb3BkKTogVGlnaHRlbiByZWxvYyBjaGVja3MuICBGcmVlIGxvY2FsX3N5bXMgb24gZXJyb3IKCWV4aXQuICBVc2UgZ2V0X2ZkaC4gIEFjY291bnQgZm9yIHN1cGVyZmx1b3VzIGR5bmFtaWMgcmVsb2NzLgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogV2FybmluZyBmaXguCgoyMDAzLTA3LTMwICBKYXNvbiBFY2toYXJkdCAgPGpsZUByaWNlLmVkdT4KCgkqIGNvZmYtaTg2MC5jOiBDb252ZXJ0IHRvIElTTyBDOTAuICBSZW1vdmUgc3VwZXJmbG91cyBwcm90b3R5cGVzLgoKMjAwMy0wNy0zMCAgSmFzb24gRWNraGFyZHQgIDxqbGVAcmljZS5lZHU+CgoJKiBlbGYzMi1pODYwLmM6IENvbnZlcnQgdG8gSVNPIEM5MC4gIFJlbW92ZSBzdXBlcmZsb3VzIHByb3RvdHlwZXMuCgoyMDAzLTA3LTMwICBSYW5kb2xwaCBDaHVuZyAgPHRhdXNxQGRlYmlhbi5vcmc+CgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogTG9vayB1cCBkeW5faCBmb3IgdW5kZWZ3ZWFrLgoJKiBlbGY2NC1ocHBhLmMgKGVsZjY0X2hwcGFfZmluYWxpemVfZGx0KTogQ2hlY2sgaC0+cm9vdC50eXBlLgoKMjAwMy0wNy0zMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi5jOiBDb252ZXJ0IHRvIEM5MCwgcmVtb3ZlIHVubmVjZXNzYXJ5IHByb3RvdHlwZXMgYW5kIGNhc3RzLgoJUmVwbGFjZSBQVFIgd2l0aCB2b2lkICouICBGb3JtYXR0aW5nLgoJKF9iZmRfZWxmX2Fzc2lnbl9maWxlX3Bvc2l0aW9uX2Zvcl9zZWN0aW9uKTogUmVtb3ZlIElOTElORS4KCShtYWtlX21hcHBpbmcpOiBMaWtld2lzZS4KCjIwMDMtMDctMjkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAoZnVuY19kZXNjX2FkanVzdCk6IEdpdmUgbGlua2VyIGNyZWF0ZWQgZnVuY3Rpb24KCWRlc2NyaXB0b3Igc3ltYm9scyBhIHNpemUgYW5kIHR5cGUuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBDb3JyZWN0IGxxIGluc24gdGVzdC4KCjIwMDMtMDctMjggIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoKCSogZWxmMzItcHBjLmMgKFJfUFBDX1JFTEFYMzIpOiBOZXcgcmVsb2NhdGlvbi4KCShwcGNfZWxmX2luc3RhbGxfdmFsdWUpOiBOZXcgZnVuY3Rpb24uCgkocHBjX2VsZl9zb3J0X3JlbGEpOiBSZW1vdmUuCgkocHBjX2VsZl9yZWxheF9zZWN0aW9uKTogUmV3cml0ZS4gUmVtb3ZlIG9sZCByZWxheGF0aW9uCglhbmQgcmVwbGFjZSB3aXRoIG91dCBvZiByYW5nZSBicmFuY2ggc3R1YnMuCgkocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogSGFuZGxlIFJfUFBDX1JFTEFYMzIuCgoyMDAzLTA3LTI5ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZi1tMTAzMDAuYyAobW4xMDMwMF9lbGZfcmVsYXhfc2VjdGlvbik6IFRha2Ugc3ltYm9sIGhhc2ggdGFibGUKCWZyb20gaW5wdXRfYmZkLgoKMjAwMy0wNy0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi5jIChzcGVjaWFsX3NlY3Rpb25zKTogU2V0IGF0dHJpYnV0ZXMgZm9yIC5nb3QgYW5kIC5wbHQuCgoyMDAzLTA3LTI3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBFbnN1cmUgbm8gY29weSByZWxvY3MKCW9uIGZ1bmN0aW9uIGRlc2NyaXB0b3JzLgoJKEVMSU1JTkFURV9DT1BZX1JFTE9DUyk6IEV4cGFuZCBjb21tZW50LgoJKHBwYzY0X2VsZl9zcGVjaWFsX3NlY3Rpb25zKTogTW92ZS4gIERvbid0IGluY2x1ZGUgbm9uLXBwYzY0IHNlY3Rpb25zLgoJRG8gaW5jbHVkZSAiLnRvYzEiLgoKMjAwMy0wNy0yNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmLmMgKF9iZmRfZWxmX25ld19zZWN0aW9uX2hvb2spOiBTZXQgdGhlIGRlZmF1bHQgc2VjdGlvbgoJdHlwZSB0byBTSFRfTlVMTC4KCShlbGZfZmFrZV9zZWN0aW9ucyk6IFNldCB0aGUgc2VjdGlvbiB0eXBlIGJhc2VkIG9uIGFzZWN0LT5mbGFncwoJaWYgaXQgaXMgU0hUX05VTEwuIERvbid0IGFib3J0IG9uIHByb2Nlc3NvciBzcGVjaWZpYyBzZWN0aW9uCgl0eXBlcy4KCjIwMDMtMDctMjUgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZWQuCgoyMDAzLTA3LTI1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGYtYmZkLmggKGJmZF9lbGZfc3BlY2lhbF9zZWN0aW9uKTogTmV3LgoJKGVsZl9iYWNrZW5kX2RhdGEpOiBBZGQgc3BlY2lhbF9zZWN0aW9ucywgYSBwb2ludGVyIHRvCgliZmRfZWxmX3NwZWNpYWxfc2VjdGlvbi4KCShlbGZfc2VjdGlvbl90eXBlKS4gTmV3LgoJKGVsZl9zZWN0aW9uX2ZsYWdzKTogTmV3LgoJKF9iZmRfZWxmX2dldF9zZWNfdHlwZV9hdHRyKTogTmV3LgoKCSogZWxmLmMgKF9iZmRfZWxmX21ha2Vfc2VjdGlvbl9mcm9tX3NoZHIpOiBBbHdheXMgdXNlIHRoZQoJcmVhbCBzZWN0aW9uIHR5cGUvZmxhZ3MuCgkoc3BlY2lhbF9zZWN0aW9ucyk6IE5ldy4KCShnZXRfc3BlY2lhbF9zZWN0aW9uKTogTmV3LgoJKF9iZmRfZWxmX2dldF9zZWNfdHlwZV9hdHRyKTogTmV3LgoJKF9iZmRfZWxmX25ld19zZWN0aW9uX2hvb2spOiBDaGVjayBzcGVjaWFsX3NlY3Rpb24gdG8gc2V0CgllbGZfc2VjdGlvbl90eXBlIGFuZCBlbGZfc2VjdGlvbl9mbGFncy4KCShlbGZfZmFrZV9zZWN0aW9ucyk6IERvbid0IHVzZSBzZWN0aW9uIG5hbWUgdG8gc2V0IEVMRiBzZWN0aW9uCglkYXRhLgoKCSogZWxmMzItbTMyci5jIChtMzJyX2VsZl9zcGVjaWFsX3NlY3Rpb25zKTogTmV3LgoJKGVsZl9iYWNrZW5kX3NwZWNpYWxfc2VjdGlvbnMpOiBEZWZpbmVkLgoKCSogZWxmMzItbTY4aGMxMS5jIChlbGYzMl9tNjhoYzExX3NwZWNpYWxfc2VjdGlvbnMpOiBOZXcuCgkoZWxmX2JhY2tlbmRfc3BlY2lhbF9zZWN0aW9ucyk6IERlZmluZWQuCgoJKiBlbGYzMi1tY29yZS5jIChtY29yZV9lbGZfc3BlY2lhbF9zZWN0aW9ucyk6IE5ldy4KCShlbGZfYmFja2VuZF9zcGVjaWFsX3NlY3Rpb25zKTogRGVmaW5lZC4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX3NwZWNpYWxfc2VjdGlvbnMpOiBOZXcuCgkoZWxmX2JhY2tlbmRfc3BlY2lhbF9zZWN0aW9ucyk6IERlZmluZWQuCgoJKiBlbGYzMi1zaDY0LmMgKHNoNjRfZWxmX3NwZWNpYWxfc2VjdGlvbnMpOiBOZXcuCgkoZWxmX2JhY2tlbmRfc3BlY2lhbF9zZWN0aW9ucyk6IERlZmluZWQuCgoJKiBlbGYzMi12ODUwLmMgKHY4NTBfZWxmX3NwZWNpYWxfc2VjdGlvbnMpOiBOZXcuCgkoZWxmX2JhY2tlbmRfc3BlY2lhbF9zZWN0aW9ucyk6IERlZmluZWQuCgoJKiBlbGYzMi14dGVuc2EuYyAoZWxmX3h0ZW5zYV9zcGVjaWFsX3NlY3Rpb25zKTogTmV3LgoJKGVsZl9iYWNrZW5kX3NwZWNpYWxfc2VjdGlvbnMpOiBEZWZpbmVkLgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfc3BlY2lhbF9zZWN0aW9ucyk6IE5ldy4KCShlbGZfYmFja2VuZF9zcGVjaWFsX3NlY3Rpb25zKTogRGVmaW5lZC4KCgkqIGVsZjY0LWhwcGEuYyAoZWxmNjRfaHBwYV9zcGVjaWFsX3NlY3Rpb25zKTogTmV3LgoJKGVsZl9iYWNrZW5kX3NwZWNpYWxfc2VjdGlvbnMpOiBEZWZpbmVkLgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9zcGVjaWFsX3NlY3Rpb25zKTogTmV3LgoJKGVsZl9iYWNrZW5kX3NwZWNpYWxfc2VjdGlvbnMpOiBEZWZpbmVkLgoKCSogZWxmNjQtc2g2NC5jIChzaDY0X2VsZjY0X3NwZWNpYWxfc2VjdGlvbnMpOiBOZXcuCgkoZWxmX2JhY2tlbmRfc3BlY2lhbF9zZWN0aW9ucyk6IERlZmluZWQuCgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfc3BlY2lhbF9zZWN0aW9ucyk6IE5ldy4KCShlbGZfYmFja2VuZF9zcGVjaWFsX3NlY3Rpb25zKTogRGVmaW5lZC4KCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9zcGVjaWFsX3NlY3Rpb25zKTogTmV3LgoKCSogZWxmeHgtbWlwcy5oIChfYmZkX21pcHNfZWxmX3NwZWNpYWxfc2VjdGlvbnMpOiBOZXcuCgkoZWxmX2JhY2tlbmRfc3BlY2lhbF9zZWN0aW9ucyk6IERlZmluZWQuCgoJKiBlbGZ4eC10YXJnZXQuaCAoZWxmX2JhY2tlbmRfc3BlY2lhbF9zZWN0aW9ucyk6IE5ldy4gRGVmYXVsdAoJdG8gTlVMTC4KCShlbGZOTl9iZWQpOiBJbml0aWFsaXplIHNwZWNpYWxfc2VjdGlvbnMuCgoJKiBzZWN0aW9uLmMgKGJmZF9hYnNfc2VjdGlvbik6IFJlbW92ZSBjb25zdC4KCShiZmRfdW5kX3NlY3Rpb24pOiBMaWtld2lzZS4KCShiZmRfY29tX3NlY3Rpb24pOiBMaWtld2lzZS4KCShiZmRfaW5kX3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDMtMDctMjQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb2ZmLWFybS5jIChFWFRSQV9TX0ZMQUdTKTogSW5jbHVkZSBTRUNfQ09ERSBzbyB0aGF0IGNvZGUKCXNlY3Rpb25zIGFyZSBhc3NpZ25lZCB0aGUgTE9BRCBhdHRyaWJ1dGUuCgoyMDAzLTA3LTI1ICBLYXogS29qaW1hICA8a2tvamltYUByci5paWo0dS5vci5qcD4KCgkqIGVsZjMyLXNoLmM6IENvbnZlcnQgdG8gQzkwLiAgUmVwbGFjZSBQVFIgd2l0aCB2b2lkICouCgkqIGVsZjMyLXNoNjQtY29tLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zaDY0LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zaDY0Lmg6IExpa2V3aXNlLgoJKiBlbGY2NC1zaDY0LmM6IExpa2V3aXNlLgoKMjAwMy0wNy0yNCAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogVXNlIFNZTUJPTF9DQUxMU19MT0NBTC4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBMaWtld2lzZS4KCShzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLiBVc2UgU1lNQk9MX1JFRkVSRU5DRVNfTE9DQUwuCgkoc2hfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IFVzZSBTWU1CT0xfUkVGRVJFTkNFU19MT0NBTC4KCjIwMDMtMDctMjQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9mci5wbzogVXBkYXRlZCBGcmVuY2ggdHJhbnNsYXRpb24uCgoyMDAzLTA3LTIzICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogZWxmMzIteHRlbnNhLmMgKHh0ZW5zYV9lbGZfZHluYW1pY19zeW1ib2xfcCk6IE1ha2UgaW5saW5lIGFuZCBtb3ZlCgluZWFyIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZpbGUuICBTd2FwIG9yZGVyIG9mIGFyZ3VtZW50cy4gIENhbGwKCV9iZmRfZWxmX2R5bmFtaWNfc3ltYm9sX3Agd2l0aCAiaWdub3JlX3Byb3RlY3RlZCIgc2V0IHRvIDAuCgkoZWxmX3h0ZW5zYV9maXhfcmVmY291bnRzKTogQWRqdXN0IHh0ZW5zYV9lbGZfZHluYW1pY19zeW1ib2xfcCBjYWxsLgoJKGVsZl94dGVuc2FfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKHNocmlua19keW5hbWljX3JlbG9jX3NlY3Rpb25zKTogTGlrZXdpc2UuCgoyMDAzLTA3LTIzICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogZWxmMzIteHRlbnNhLmMgKHBsdF9yZWxvY19jb3VudCk6IEZpeCB0eXBvIGluIGNvbW1lbnQuCgkoZWxmX3h0ZW5zYV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBVc2UgZWxmX2Rpc2NhcmRlZF9zZWN0aW9uLgoJKGVsZl94dGVuc2FfY29tYmluZV9wcm9wX2VudHJpZXMpOiBBdm9pZCByZXR1cm5pbmcgbm9uLXplcm8gd2l0aG91dAoJZmlyc3QgcHJpbnRpbmcgYW4gZXJyb3IgbWVzc2FnZS4KCShlbGZfeHRlbnNhX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoZWxmX3h0ZW5zYV9kaXNjYXJkX2luZm9fZm9yX3NlY3Rpb24pOiBBZGp1c3Qgc2l6ZSBvZiAuZ290LmxvYyB3aGVuCglkaXNjYXJkaW5nIGxpdGVyYWwgdGFibGUgZW50cmllcy4KCShlbGZfeHRlbnNhX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBSZW1vdmUgbmV3bGluZSBmcm9tIGVycm9yIG1lc3NhZ2UuCgkoZWxmX3h0ZW5zYV9kb19hc21fc2ltcGxpZnkpOiBMaWtld2lzZS4KCjIwMDMtMDctMjMgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogZWxmMzItbTY4aGMxeC5jIChlbGYzMl9tNjhoYzExX3NpemVfc3R1YnMpOiBBdm9pZCBjcmFzaCB3aGVuCgl3ZSBoYXZlIGEgbG9jYWwgc3ltYm9sIGluIGNvbW1vbiBzZWN0aW9uLgoKMjAwMy0wNy0yMiAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX2R5bmFtaWNfc3ltYm9sX3ApOiBEb24ndCByZXR1cm4gVFJVRSBmb3IKCXdlYWsgc3ltYm9scy4KCjIwMDMtMDctMjIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb2ZmY29kZS5oIChjb2ZmX3NsdXJwX3N5bWJvbF90YWJsZSk6IEFkZCBDX1RDU1lNIGFuZCBDX0VDT01MIHRvCglleHBlY3RlZCBSUzYwMDAgc3RvcmFnZSBjbGFzc2VzLgoKMjAwMy0wNy0yMSAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTWFyawoJb3V0cHV0X2JmZCB1bnVzZWQgdG8gc2lsZW5jZSBnY2MuCgoyMDAzLTA3LTIxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vc3YucG86IFVwZGF0ZWQgU3dlZGlzaCB0cmFuc2xhdGlvbi4KCjIwMDMtMDctMjEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYtYmZkLmggKFNZTUJPTF9SRUZFUkVOQ0VTX0xPQ0FMLCBTWU1CT0xfQ0FMTFNfTE9DQUwpOiBVc2UuLgoJKF9iZmRfZWxmX3N5bWJvbF9yZWZzX2xvY2FsX3ApOiAuLnRoaXMuICBEZWNsYXJlLgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX3N5bWJvbF9yZWZzX2xvY2FsX3ApOiBOZXcgZnVuY3Rpb24uCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IFJlbW92ZSBoIE5VTEwgdGVzdAoJbm93IGRvbmUgaW4gX2JmZF9lbGZfc3ltYm9sX3JlZnNfbG9jYWxfcC4KCSogZWxmMzItcHBjLmMgKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAzLTA3LTE4ICBILkouIEx1IDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfZHluYW1pY19zeW1ib2xfcCk6IFVuZG8gdGhlIGxhc3QgY2hhbmdlLgoKMjAwMy0wNy0xOCAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGYtYmZkLmggKFNZTUJPTF9SRUZFUkVOQ0VTX0xPQ0FMKTogRml4IGEgdHlwby4KCShTWU1CT0xfQ0FMTFNfTE9DQUwpOiBMaWtld2lzZS4KCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfZHluYW1pY19zeW1ib2xfcCk6IFJldHVybiBUUlVFCglpbW1lZGlhdGVseSBpZiBzeW1ib2wgaXNuJ3QgZGVmaW5lZCBsb2NhbGx5LgoKMjAwMy0wNy0xOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfZHluYW1pY19zeW1ib2xfcCk6IE5ldy4KCSogZWxmLWJmZC5oIChfYmZkX2VsZl9keW5hbWljX3N5bWJvbF9wKTogRGVjbGFyZSBpdC4KCShTWU1CT0xfUkVGRVJFTkNFU19MT0NBTCwgU1lNQk9MX0NBTExTX0xPQ0FMKTogVXNlIGl0LgoJKiBlbGYzMi14dGVuc2EuYyAoeHRlbnNhX2VsZl9keW5hbWljX3N5bWJvbF9wKTogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmMgKGFscGhhX2VsZl9keW5hbWljX3N5bWJvbF9wKTogTGlrZXdpc2UuCgkqIGVsZjY0LWhwcGEuYyAoZWxmNjRfaHBwYV9keW5hbWljX3N5bWJvbF9wKTogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9keW5hbWljX3N5bWJvbF9wKTogTGlrZXdpc2UuCglVcGRhdGUgYWxsIGNhbGxlcnMgdG8gcHJvdmlkZSB0aGUgcmVsb2NhdGlvbiBiZWluZyByZXNvbHZlZC4KCjIwMDMtMDctMTcgIFNoYXVuIEphY2ttYW4gPHNqYWNrbWFuQHBhdGh3YXljb25uZWN0LmNvbT4KCgkqIGNvbmZpZy5iZmQgKGFybS13aW5jZS1wZSk6IEFkZCAtREFSTV9DT0ZGX0JVR0ZJWCB0bwoJdGFyZ19jZmxhZ3MuCgoyMDAzLTA3LTE3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vZXMucG86IE5ldyBTcGFuaXNoIHRyYW5zbGF0aW9uLgoJKiBwby9zdi5wbzogTmV3IFN3ZWRpc2ggdHJhbnNsYXRpb24uCgkqIHBvL29wY29kZXMucG90OiBSZWdlbmVyYXRlLgoKMjAwMy0wNy0xNiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5iZmQsIGNvbmZpZ3VyZS5ob3N0LCBjb25maWd1cmUuaW46IFJlbW92ZSBpYTY0LWFpeCBzdXBwb3J0LgoJKiBlbGZ4eC1pYTY0LmMsIHRhcmdldHMuYzogTGlrZXdpc2UuCgoyMDAzLTA3LTE2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X2R5bmFtaWNfc3ltYm9sX3ApOiBQcm9wZXJseSByZXR1cm4gZmFsc2UKCWZvciBzeW1ib2xzIGRlZmluZWQgbG9jYWxseSBwbHVzIC1Cc3ltYm9saWMuICBUaWR5IGxvZ2ljLgoKMjAwMy0wNy0xNSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogYXJjaHVyZXMuYyAoYmZkX21hY2hfbWlwczcwMDApOiBOZXcuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZWQuCgkqIGNwdS1taXBzLmMgKGFyY2hfaW5mb19zdHJ1Y3QpOiBBZGQgYW4gZW50cnkgZm9yIG1pcHM6NzAwMC4KCSogZWxmeHgtbWlwcy5jIChtaXBzX3NldF9pc2FfZmxhZ3MpOiBIYW5kbGUgYmZkX21hY2hfbWlwczcwMDAuCgkobWlwc19tYWNoX2V4dGVuc2lvbnMpOiBBZGQgYW4gZW50cnkgZm9yIGl0LgoKMjAwMy0wNy0xNCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL3RyLnBvOiBVcGRhdGUgd2l0aCBsYXRlc3QgdmVyc2lvbi4KCSogcG8vU1JDLVBPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoJKiBwby9iZmQucG90OiBSZWdlbmVyYXRlLgoJKiBNYWtmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAzLTA3LTEyICBKZWZmIEJha2VyICA8amJha2VyQHFueC5jb20+CgoJKiBjb25maWcuYmZkIChfX1FOWFRBUkdFVF9fKTogRGVmaW5lIGZvciBOZXV0cmlubyBhcmNoaXRlY3R1cmVzLgoJKiBlbGYzMi1hcm0uaCAoRUxGX01BWFBBR0VTSVpFKTogU2V0IHRvIDRrIGZvciBOZXV0cmluby4KCSogZWxmMzItc2guYyAoRUxGX01BWFBBR0VTSVpFKTogU2V0IHRvIDRrIGZvciBOZXV0cmluby4KCSogZWxmMzItcHBjLmMgKEVMRl9NQVhQQUdFU0laRSk6IFNldCB0byA0ayBmb3IgTmV1dHJpbm8uCgoyMDAzLTA3LTEyICBKZWZmIE11aXplbGFhciAgPG11aXplbGFhckByb2dlcnMuY29tPgoKCSogY29mZmNvZGUuaCAoY29mZl9zZXRfc2VjdGlvbl9jb250ZW50cyk6IFNldCB0aGUKCUlNQUdFX0ZJTEVfMzJCSVRfTUFDSElORSBmbGFnIGZvciBQRSB0YXJnZXRzLgoKMjAwMy0wNy0xMSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogYmZkLWluLmggKGJmZF9oODMwMF9wYWRfYWRkcmVzcyk6IERlY2xhcmUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogY3B1LWg4MzAwLmMgKGJmZF9oODMwMF9wYWRfYWRkcmVzcyk6IE5ldyBmdW5jdGlvbi4KCSogY29mZi1oODMwMC5jIChoODMwMF9yZWxvYzE2X2VzdGltYXRlKTogVXNlIGl0IHRvIGNhbm9uaWNhbGl6ZQoJYWRkcmVzc2VzIGJlZm9yZSBjaGVja2luZyB3aGV0aGVyIHRoZXkgY2FuIGJlIHJlbGF4ZWQuCgkoaDgzMDBfcmVsb2MxNl9leHRyYV9jYXNlcyk6IExpa2V3aXNlIGZvciB0aGUgUl9NT1ZMMiBzYW5pdHkgY2hlY2suCglEb24ndCBjb21wbGFpbiBhYm91dCBvdmVyZmxvd3MgaW4gZ2VuZXJhbCA4LWJpdCByZWxvY2F0aW9ucy4KCSogZWxmMzItaDgzMDAuYyAoZWxmMzJfaDhfcmVsYXhfc2VjdGlvbik6IFVzZSBiZmRfaDgzMDBfcGFkX2FkZHJlc3MuCglGaXggaGFuZGxpbmcgb2YgUl9IOF9ESVIyNEE4LgoKMjAwMy0wNy0xMSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogZWxmMzItaDgzMDAuYzogQ29udmVydCBmdW5jdGlvbiBwcm90b3R5cGVzIGFuZCBkZWZpbml0aW9ucwoJdG8gQzkwIHN5bnRheC4KCSogY29mZi1oODMwMC5jOiBMaWtld2lzZS4KCSogY3B1LWg4MzAwLmM6IExpa2V3aXNlLgoKMjAwMy0wNy0xMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHBvL1NSQy1QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCSogcG8vYmZkLnBvdDogTGlrZXdpc2UuCgoyMDAzLTA3LTEwICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogZWxmMzIteHRlbnNhLmMgKGVsZl94dGVuc2FfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBDcmVhdGUgbmV3CgkuZ290LmxvYyBzZWN0aW9uLiAgRG8gbm90IHNldCBTRUNfQUxMT0Mgb3IgU0VDX0xPQUQgZmxhZ3MgZm9yIHRoZQoJLnh0LmxpdC5wbHQgc2VjdGlvbi4KCShlbGZfeHRlbnNhX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFNldCBzaXplIG9mIHRoZSAuZ290LmxvYyBzZWN0aW9uCglhbmQgYWxsb2NhdGUgbWVtb3J5IGZvciBpdC4KCShlbGZfeHRlbnNhX2NvbWJpbmVfcHJvcF9lbnRyaWVzKTogQ29weSBjb250ZW50cyBvZiAueHQubGl0IG91dHB1dAoJc2VjdGlvbiB0byB0aGUgLmdvdC5sb2Mgc2VjdGlvbi4KCShlbGZfeHRlbnNhX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogRml4IHVwIGNhbGwgdG8KCWVsZl94dGVuc2FfY29tYmluZV9wcm9wX2VudHJpZXMgYW5kIHNldCBEVF9YVEVOU0FfR09UX0xPQ19PRkYgdG8KCXRoZSBhZGRyZXNzIG9mIC5nb3QubG9jLgoJKHJlbGF4X3Byb3BlcnR5X3NlY3Rpb24pOiBTaHJpbmsgLmdvdC5sb2MgdG8gbWF0Y2ggY2hhbmdlcyBpbiBhbnkKCWxpdGVyYWwgdGFibGUgc2VjdGlvbi4KCSh4dGVuc2FfaXNfcHJvcGVydHlfc2VjdGlvbik6IENoYW5nZSB0byBtYXRjaAoJeHRlbnNhX2dldF9wcm9wZXJ0eV9zZWN0aW9uX25hbWUuCgkoeHRlbnNhX2lzX2xpdHRhYmxlX3NlY3Rpb24pOiBOZXcuCgoyMDAzLTA3LTEwICBILkouIEx1IDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoSUE2NF9IT1dUTyk6IFNldCBkc3RfbWFzayB0byAtMSBpbnN0ZWFkIG9mCgktMUxMLgoKMjAwMy0wNy0xMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtIChCRkQzMl9CQUNLRU5EUyk6IEFkZCBlbGYzMi1hbTMzbGluLmxvLgoJKEJGRDMyX0JBQ0tFTkRTX0NGSUxFUyk6IGVsZjMyLWFtMzNsaW4uYyBub3QgZWxmMzItYW0zM2xpbi5sby4KCVJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMDctMTAgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCTIwMDEtMDktMTIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBlbGYzMi1hbTMzbGluLmMgKEVMRl9NQUNISU5FX0NPREUpOiBSZWRlZmluZSB0byBFTV9NTjEwMzAwLgoJKEVMRl9NQUNISU5FX0FMVDEpOiBEZWZpbmUgdG8gRU1fQ1lHTlVTX01OMTAzMDAuCgkyMDAxLTA2LTAyICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCSogZWxmMzItYW0zM2xpbi5jOiBSZW5hbWUgZ2xvYmFsIGZ1bmN0aW9ucy4KCTIwMDEtMDUtMDkgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBjb25maWcuYmZkIChhbTMzXzIuMCwgYW0zM18yLjAtKi1saW51eCopOiBBZGRlZC4KCSogY29uZmlndXJlLmluIChiZmRfZWxmMzJfYW0zM2xpbl92ZWMpOiBBZGRlZC4KCSogTWFrZWZpbGUuYW0gKEJGRDMyX0JBQ0tFTkRTKTogQWRkZWQgZWxmMzItYW0zM2xpbi5sby4KCShlbGYzMi1hbTMzbGluLmxvKTogTGlzdCBkZXBlbmRlbmNpZXMuCgkqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwgTWFrZWZpbGUuaW46IFJlYnVpbHQuCgkqIGVsZi1tMTAzMDAuYyAoVEFSR0VUX0xJVFRMRV9TWU0sIFRBUkdFVF9MSVRUTEVfTkFNRSwKCUVMRl9BUkNILCBFTEZfTUFDSElORV9DT0RFLCBFTEZfTUFYUEFHRVNJWkUpOiBEZWZpbmUgb25seSBpZgoJRUxGX0FSQ0ggd2FzIG5vdCBkZWZpbmVkIGJlZm9yZS4KCShlbGZfc3ltYm9sX2xlYWRpbmdfY2hhcik6IERlZmluZSBpZiBub3QgZGVmaW5lZC4KCSogZWxmMzItYW0zM2xpbi5jOiBPdmVycmlkZSB0aGUgZGVmaW5pdGlvbnMgYWJvdmUuCgkqIHRhcmdldHMuYyAoYmZkX2VsZjMyX2FtMzNsaW5fdmVjKTogTmV3LgoKMjAwMy0wNy0wOSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJMjAwMi0xMi0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGVsZi1tMTAzMDAuYyAoZWxmMzJfbW4xMDMwMF9saW5rX2hhc2hfbmV3ZnVuYyk6IEluaXRpYWxpemUKCXBjcmVsX3JlbG9jc19jb3BpZWQuCgkyMDAxLTEyLTEzICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogZWxmLW0xMDMwMC5jIChFTEZfRFlOQU1JQ19JTlRFUlBSRVRFUik6IFJlbmFtZWQgZnJvbQoJbGQtbGludXguc28uMiB0byBsZC5zby4xLgoJMjAwMS0xMC0xMCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGVsZi1tMTAzMDAuYyAoZWxmX21uMTAzMDBfc2l6ZW9mX3BsdDApOiBOZXcgbWFjcm8uCgkoX2JmZF9tbjEwMzAwX2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBVc2UgaXQuCgkoX2JmZF9tbjEwMzAwX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmLW0xMDMwMC5jIChfYmZkX21uMTAzMDBfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IEFsbG9jYXRlCgkucmVsYS4qIHNlY3Rpb24gY29udGVudHMgd2l0aCBiZmRfemFsbG9jLgoJMjAwMS0wOS0yNSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGVsZi1tMTAzMDAuYzogQWRkZWQgZGVjbGFyYXRpb25zIGZvciBmdW5jdGlvbnMgbWlzc2luZyB0aGVtLgoJTWVyZ2Ugc29tZSBzaGFyZWQtbGlicmFyeSBjaGFuZ2VzIGZyb20gdGhlIGkzODYgYmFjay1lbmQuICBVc2UKCVJfTU4xMDMwMF9SRUxBVElWRSBpbnN0ZWFkIG9mIFJfTU4xMDMwMF9QQ1JFTDMyIGFuZAoJUl9NTjEwMzAwX0dMT0JfREFUIGluc3RlYWQgb2YgUl9NTjEwMzAwXzMyIHdoZXJlIGFwcHJvcHJpYXRlLgoJKHN0cnVjdCBlbGYzMl9tbjEwMzAwX2xpbmtfaGFzaF9lbnRyeSk6IFJlbW92ZSBkdXBsaWNhdGVzIG9mCgltZW1iZXJzIG9mIGVsZl9saW5rX2hhc2hfZW50cnkuICBBZGp1c3RlZCByZWZlcmVuY2VzLgoJKG1uMTAzMDBfZWxmX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBkeW5vYmogd2FzIGFscmVhZHkgbG9hZGVkCglpbnRvIGEgbG9jYWwgdmFyaWFibGUsIHVzZSBpdC4KCTIwMDEtMDktMjEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoJKiBlbGYtbTEwMzAwLmM6IEFkZCBtaXNzaW5nIGZ1bmN0aW9uIHByb3RvdHlwZXMuCgkyMDAxLTA4LTI0ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogZWxmLW0xMDMwMC5jIChtbjEwMzAwX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogRG9uJ3QgY29tcHV0ZQoJcmVsb2NhdGlvbiBmb3IgZHluYW1pYyByZWxvY2F0aW9ucy4KCTIwMDEtMDUtMTYgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiByZWxvYy5jIChCRkRfUkVMT0NfTU4xMDMwMF9HT1RPRkYyNCk6IE5ldy4KCSogZWxmLW0xMDMwMC5jOiBJbnRyb2R1Y2UgR09UUEMxNiwgR09UT0ZGMjQsIEdPVE9GRjE2IGFuZAoJUExUMTYsIGFuZCByZW5hbWUgR09UUEMgdG8gR09UUEMzMiBhbmQgR09UT0ZGIHRvIEdPVE9GRjMyLgoJKF9iZmRfbW4xMDMwMF9lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBNb3ZlIGNyZWF0aW9uIG90IFBMVC4uLgoJKF9iZmRfbW4xMDMwMF9lbGZfY3JlYXRlX2dvdF9zZWN0aW9uKTogLi4uIGhlcmUsIHNvIHRoYXQgaXRzCglhZHJlc3MgaXMgYWxyZWFkeSBrbm93biBhdCB0aGUgdGltZSB3ZSBjb21wdXRlIHJlbGF4YXRpb25zLgoJKG1uMTAzMDBfZWxmX3JlbGF4X3NlY3Rpb24pOiBSZWxheCBHT1RQQzMyLCBHT1RPRkYzMiwgR09UMzIKCWFuZCBQTFQzMiB0byBuYXJyb3dlciByZWxvY2F0aW9ucy4KCSogbGliYmZkLmgsIGJmZC1pbjIuaDogUmVidWlsdC4KCTIwMDEtMDQtMTIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiByZWxvYy5jIChCRkRfUkVMT0NfTU4xMDMwMF9HT1QzMiwgQkZEX1JFTE9DX01OMTAzMDBfR09UMjQsCglCRkRfUkVMT0NfTU4xMDMwMF9HT1QxNiwgQkZEX1JFTE9DX01OMTAzMDBfQ09QWSwKCUJGRF9SRUxPQ19NTjEwMzAwX0dMT0JfREFULCBCRkRfUkVMT0NfTU4xMDMwMF9KTVBfU0xPVCwKCUJGRF9SRUxPQ19NTjEwMzAwX1JFTEFUSVZFKTogTmV3IHJlbG9jcy4KCSogbGliYmZkLmgsIGJmZC1pbjIuaDogUmVidWlsdC4KCSogZWxmLW0xMDMwMC5jIChzdHJ1Y3QgZWxmX21uMTAzMDBfcGNyZWxfcmVsb2NzX2NvcGllZCk6IE5ldy4KCShzdHJ1Y3QgZWxmMzJfbW4xMDMwMF9saW5rX2hhc2hfZW50cnkpOiBBZGRlZCBEU08tcmVsYXRlZAoJZmllbGRzLgoJKGVsZl9tbjEwMzAwX2hvd3RvKTogRGVmaW5lZCBuZXcgcmVsb2NhdGlvbiB0eXBlcy4KCShtbjEwMzAwX3JlbG9jX21hcCk6IE1hcCB0aGVtLgoJKF9iZmRfbW4xMDMwMF9lbGZfY3JlYXRlX2dvdF9zZWN0aW9uKTogTmV3IGZuLgoJKG1uMTAzMDBfZWxmX2NoZWNrX3JlbG9jcyk6IEhhbmRsZSBQSUMgcmVsb2NzLgoJKG1uMTAzMDBfZWxmX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBMaWtld2lzZS4KCShtbjEwMzAwX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogSGFuZGxlIERTT3MuCgkoUExUMF9FTlRSWV9TSVpFLCBQTFRfRU5UUllfU0laRSwgUElDX1BMVF9FTlRSWV9TSVpFKTogTmV3IG1hY3Jvcy4KCShlbGZfbW4xMDMwMF9wbHQwX2VudHJ5LCBlbGZfbW4xMDMwMF9wbHRfZW50cnksCgllbGZfbW4xMDMwMF9waWNfcGx0X2VudHJ5KTogTmV3LgoJKGVsZl9tbjEwMzAwX3NpemVvZl9wbHQsIGVsZl9tbjEwMzAwX3BsdF9wbHQwX29mZnNldCwKCWVsZl9tbjEwMzAwX3BsdDBfbGlua2VyX29mZnNldCwgZWxmX21uMTAzMDBfcGx0MF9nb3RpZF9vZmZzZXQsCgllbGZfbW4xMDMwMF9wbHRfdGVtcF9vZmZzZXQsIGVsZl9tbjEwMzAwX3BsdF9zeW1ib2xfb2Zmc2V0LAoJZWxmX21uMTAzMDBfcGx0X3JlbG9jX29mZnNldDogTmV3IG1hY3Jvcy4KCShFTEZfRFlOQU1JQ19JTlRFUlBSRVRFUik6IExpa2V3aXNlLgoJKF9iZmRfbW4xMDMwMF9lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBOZXcgZnVuY3Rpb24uCgkoX2JmZF9tbjEwMzAwX2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCShfYmZkX21uMTAzMDBfZWxmX2Rpc2NhcmRfY29waWVzKTogTGlrZXdpc2UuCgkoX2JmZF9tbjEwMzAwX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShfYmZkX21uMTAzMDBfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKF9iZmRfbW4xMDMwMF9lbGZfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShlbGZfYmFja2VuZF9jYW5fZ2Nfc2VjdGlvbnMsCgllbGZfYmFja2VuZF9jcmVhdGVfZHluYW1pY19zZWN0aW9ucywKCWVsZl9iYWNrZW5kX2FkanVzdF9keW5hbWljX3NlY3Rpb25zLAoJZWxmX2JhY2tlbmRfc2l6ZV9keW5hbWljX3NlY3Rpb25zLAoJZWxmX2JhY2tlbmRfZmluaXNoX2R5bmFtaWNfc3ltYm9sLAoJZWxmX2JhY2tlbmRfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMsIGVsZl9iYWNrZW5kX3dhbnRfZ290X3BsdCwKCWVsZl9iYWNrZW5kX3BsdF9yZWFkb25seSwgZWxmX2JhY2tlbmRfd2FudF9wbHRfc3ltLAoJZWxmX2JhY2tlbmRfZ290X2hlYWRlcl9zaXplLCBlbGZfYmFja2VuZF9wbHRfaGVhZGVyX3NpemUpOiBOZXcKCW1hY3Jvcy4KCjIwMDMtMDctMDkgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCTIwMDEtMDUtMDYgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBlbGYtbTEwMzAwLmMgKGNvbXB1dGVfZnVuY3Rpb25faW5mbyk6IEFjY291bnQgZm9yIEFNMzMKCXJlZ2lzdGVycyBpbiBgbW92bScgd2hlbiBjb21wdXRpbmcgc3RhY2sgc3BhY2UgZm9yIGBjYWxsJyB3aGVuCglsaW5raW5nIGZvciBBTTMzLzIuMCBsaW5rLgoJMjAwMC0wNC0wMSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQGN5Z251cy5jb20+CgkqIGFyY2h1cmVzLmMgKGJmZF9tYWNoX2FtMzNfMik6IFJlbmFtZWQgZnJvbSBiZmRfbWFjaF9hbTMzMi4KCSogYmZkLWluMi5oOiBSZWJ1aWx0LgoJKiBjcHUtbTEwMzAwLmMgKGJmZF9hbTMzXzJfYXJjaCk6IFJlbmFtZWQgZnJvbSBiZmRfYW0zMzJfYXJjaC4KCSogZWxmLW0xMDMwMC5jOiBVcGRhdGVkLgoJMjAwMC0wMy0zMSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQGN5Z251cy5jb20+CgkqIGFyY2h1cmVzLmMgKGJmZF9tYWNoX2FtMzMyKTogRGVmaW5lZC4KCSogYmZkLWluMi5oOiBSZWJ1aWx0LgoJKiBjcHUtbTEwMzAwLmMgKGJmZF9hbTMzMl9hcmNoKTogRGVmaW5lZC4KCShiZmRfYW0zM19hcmNoKTogQ2hhaW5lZCB3aXRoIGFtMzMtMi4KCSogZWxmLW0xMDMwMC5jIChlbGZfbW4xMDMwMF9tYWNoKTogSGFuZGxlIGFtMzMyLgoJKF9iZmRfbW4xMDMwMF9lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IExpa2V3aXNlLgoKMjAwMy0wNy0wOSAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKElBNjRfSE9XVE8pOiBTZXQgZHN0X21hc2sgdG8gLTFMTC4KCjIwMDMtMDctMTAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAoYmZkX2VsZjY0X21rb2JqZWN0KTogRGVmaW5lLgoJKHN0cnVjdCBwcGM2NF9lbGZfb2JqX3RkYXRhKTogTmV3LgoJKHBwYzY0X2VsZl90ZGF0YSwgcHBjNjRfdGxzbGRfZ290KTogRGVmaW5lLgoJKHBwYzY0X2VsZl9ta29iamVjdCk6IE5ldyBmdW5jdGlvbi4KCShzdHJ1Y3QgZ290X2VudHJ5KTogQWRkICJvd25lciIuICBNb3ZlICJ0bHNfdHlwZSIuCgkoc3RydWN0IHBwY19saW5rX2hhc2hfdGFibGUpOiBEZWxldGUgInJlbGdvdCIsICJ0bHNsZF9nb3QiLgoJKHBwYzY0X2VsZl9pbml0X3N0dWJfYmZkKTogTmV3IGZ1bmN0aW9uLgoJKGNyZWF0ZV9nb3Rfc2VjdGlvbik6IENyZWF0ZSBoZWFkZXIgLmdvdCBpbiBkeW5vYmouICBDcmVhdGUgLmdvdAoJYW5kIC5yZWxhLmdvdCBpbiBlYWNoIGJmZC4gIFN0YXNoIHBvaW50ZXJzIGluIHBwYzY0X2VsZl9vYmpfdGRhdGEuCgkocHBjNjRfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogRG9uJ3QgY2FsbCBjcmVhdGVfZ290X3NlY3Rpb24uCglMb29rIGZvciBkeW5vYmogLmdvdCwgYW5kIHRlc3QgaXQuCgkocHBjNjRfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogQWRqdXN0IGZvciBjaGFuZ2VkIGdvdC4KCSh1cGRhdGVfbG9jYWxfc3ltX2luZm8pOiBMaWtld2lzZS4KCShwcGM2NF9lbGZfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCgkocHBjNjRfZWxmX2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCShwcGM2NF9lbGZfdGxzX29wdGltaXplKTogTGlrZXdpc2UuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogTGlrZXdpc2UuCgkocHBjNjRfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkocHBjNjRfZWxmX25leHRfdG9jX3NlY3Rpb24pOiBVcGRhdGUgY29tbWVudC4KCSh0b2NfYWRqdXN0aW5nX3N0dWJfbmVlZGVkKTogUmVtb3ZlIHVubmVlZGVkIGNhc3QuCgkocHBjNjRfZWxmX2J1aWxkX3N0dWJzKTogQ2hlY2sgZm9yIHN0dWIgc2VjdGlvbnMgaW4gc3R1YiBiZmQgYnkKCXRlc3Rpbmcgc2VjdGlvbiBmbGFncy4KCShwcGM2NF9lbGZfYnVpbGRfc3R1YnMpOiBMaWtld2lzZS4KCShwcGM2NF9lbGZfc2l6ZV9zdHVicyk6IExpa2V3aXNlLiAgUmVtb3ZlIHN0dWJfYmZkIHBhcmFtLgoJKHBwYzY0X2VsZl9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IFdyaXRlIG91dCBnb3Qgc2VjdGlvbnMuCgkoZnVuY19kZXNjX2FkanVzdCk6IENvcHkgb3ZlciBkeW5hbWljIGluZm8gZm9yIHVuZGVmIHdlYWtzLgoJKiBlbGY2NC1wcGMuaCAocHBjNjRfZWxmX2luaXRfc3R1Yl9iZmQpOiBEZWNsYXJlLgoJKHBwYzY0X2VsZl9zaXplX3N0dWJzKTogVXBkYXRlIHByb3RvdHlwZS4KCSogZWxmbGluay5oIChlbGZfbGlua19zb3J0X3JlbG9jcyk6IFVzZSBsaW5rX29yZGVycyB0byBmaW5kIHJlbGR5bgoJaW5wdXQgc2VjdGlvbnMgcmF0aGVyIHRoYW4gc2Nhbm5pbmcgZHlub2JqLgoKMjAwMy0wNy0wOSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9saW5rX2hhc2hfZW50cnkpOiBSZW1vdmUgbWluX2R5bl9yZWxvY19pbmRleC4KCShiZmRfbWlwc19lbGZfc3dhcF9tc3ltX2luLCBiZmRfbWlwc19lbGZfc3dhcF9tc3ltX291dCk6IERlbGV0ZS4KCShtaXBzX2VsZl9jcmVhdGVfbXN5bV9zZWN0aW9uKTogRGVsZXRlLgoJKG1pcHNfZWxmX2NyZWF0ZV9keW5hbWljX3JlbG9jYXRpb24pOiBEb24ndCBzZXQgbWluX2R5bl9yZWxvY19pbmRleC4KCShfYmZkX21pcHNfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTGlrZXdpc2UuCgkoX2JmZF9taXBzX2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IERvbid0IGNyZWF0ZSAubXN5bS4KCShfYmZkX21pcHNfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IERvbid0IGNhbGN1bGF0ZSBpdHMgc2l6ZS4KCShfYmZkX21pcHNfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IERvbid0IGFkZCBEVF9NSVBTX01TWU0uCgkoX2JmZF9taXBzX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBEb24ndCBhZGQgc3ltYm9scyB0byAubXN5bS4KCShfYmZkX21pcHNfZWxmX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgoyMDAzLTA3LTA5ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2lyaXg2X2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IE1ha2UgdGhlCglzeW1ib2xzIHByb3RlY3RlZC4KCjIwMDMtMDctMDkgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfY3JlYXRlX2R5bmFtaWNfcmVsb2NhdGlvbik6IEZpeCBoYW5kbGluZwoJb2YgcmVsb2NhdGlvbnMgd2hvc2Ugb2Zmc2V0IGlzIC0yLgoKMjAwMy0wNy0wOSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9jcmVhdGVfZHluYW1pY19yZWxvY2F0aW9uKTogVHJlYXQKCWZvcmNlZC1sb2NhbCBzeW1ib2xzIGxpa2Ugb3RoZXIgbG9jYWxzLiAgRG9uJ3QgY3JlYXRlIHJlbG9jYXRpb25zCglhZ2FpbnN0IFNUTl9VTkRFRiBpbiBpcml4IG9iamVjdHMuCgoyMDAzLTA3LTA5ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2NyZWF0ZV9keW5hbWljX3JlbG9jYXRpb24pOiBJbiBTR0ktCgljb21wYXRpYmxlIG9iamVjdHMsIGFkZCB0aGUgdmFsdWVzIG9mIGRlZmluZWQgZXh0ZXJuYWwgc3ltYm9scwoJdG8gdGhlIGFkZGVuZC4KCjIwMDMtMDctMDkgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBBbHdheXMKCWluaXRpYWxpemUgYSBHT1QgZW50cnkgdG8gdGhlIHN5bWJvbCdzIHN0X3ZhbHVlLgoKMjAwMy0wNy0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1iZmQuaCAoc3RydWN0IGVsZl9vYmpfdGRhdGEpOiBNb3ZlIGxpbmtlcl9zZWN0aW9uX3BvaW50ZXJzLi4KCSogZWxmMzItcHBjLmMgKHN0cnVjdCBwcGNfZWxmX29ial90ZGF0YSk6IC4udG8gaGVyZS4gIE5ldy4KCShwcGNfZWxmX3RkYXRhKTogRGVmaW5lLgoJKGVsZl9sb2NhbF9wdHJfb2Zmc2V0cyk6IEFkanVzdC4KCShwcGNfZWxmX21rb2JqZWN0KTogTmV3IGZ1bmN0aW9uLgoJKGJmZF9lbGYzMl9ta29iamVjdCk6IERlZmluZS4KCgkqIGVsZmNvZGUuaCAoZWxmX29iamVjdF9wKTogQWxsb2NhdGUgdGRhdGEgdmlhIF9iZmRfc2V0X2Zvcm1hdC4KCSogZWxmY29yZS5oIChlbGZfY29yZV9maWxlX3ApOiBMaWtld2lzZS4KCSogc2VjdGlvbi5jIChiZmRfc2VjdGlvbl9pbml0KTogUmVtb3ZlIHByb3RvdHlwZS4KCjIwMDMtMDctMDggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYtYmZkLmggKHN0cnVjdCBlbGZfbGlua19oYXNoX2VudHJ5KTogUmVtb3ZlIGxpbmtlcl9zZWN0aW9uX3BvaW50ZXIKCWZpZWxkLgoJKGVudW0gZWxmX2xpbmtlcl9zZWN0aW9uX2VudW0pOiBEZWxldGUuCgkoc3RydWN0IGVsZl9saW5rZXJfc2VjdGlvbik6IERlbGV0ZS4KCShzdHJ1Y3QgZWxmX2xpbmtlcl9zZWN0aW9uX3BvaW50ZXJzKTogRGVsZXRlLgoJKHN0cnVjdCBlbGZfb2JqX3RkYXRhKTogUmVtb3ZlICNpZiAwIGNodW5rLiAgUmVtb3ZlIGxpbmtlcl9zZWN0aW9uLgoJTWFrZSBsaW5rZXJfc2VjdGlvbl9wb2ludGVycyBhIHZvaWQqKi4KCShlbGZfbG9jYWxfcHRyX29mZnNldHMsIGVsZl9saW5rZXJfc2VjdGlvbik6IERvbid0IGRlZmluZS4KCSogZWxmMzItcHBjLmMgKGVudW0gZWxmX2xpbmtlcl9zZWN0aW9uX2VudW0pOiBOZXcsIGN1dC1kb3duIHZlcnNpb24KCW9mIG9sZCBpdGVtIGluIGVsZi1iZmQuaC4KCShzdHJ1Y3QgZWxmX2xpbmtlcl9zZWN0aW9uKTogTGlrZXdpc2UuCgkoc3RydWN0IGVsZl9saW5rZXJfc2VjdGlvbl9wb2ludGVycyk6IExpa2V3aXNlLgoJKGVsZl9sb2NhbF9wdHJfb2Zmc2V0cyk6IERlZmluZS4KCShzdHJ1Y3QgcHBjX2VsZl9saW5rX2hhc2hfZW50cnkpOiBBZGQgbGlua2VyX3NlY3Rpb25fcG9pbnRlci4KCShwcGNfZWxmX2xpbmtfaGFzaF9uZXdmdW5jKTogSW5pdCBpdC4KCShzdHJ1Y3QgcHBjX2VsZl9saW5rX2hhc2hfdGFibGUpOiBBZGQgc2Jzcy4KCShwcGNfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiB6bWFsbG9jIHJhdGhlciB0aGFuIGNsZWFyaW5nCglpbmRpdmlkdWFsIGZpZWxkcy4KCShlbGZfY3JlYXRlX2xpbmtlcl9zZWN0aW9uKTogRm9sZCBpbnRvLi4KCShwcGNfZWxmX2NyZWF0ZV9saW5rZXJfc2VjdGlvbik6IC4uaGVyZS4gIFJlbW92ZSBob2xlX3NpemUgY29kZS4KCU1ha2UgcmVsYSBzZWN0aW9uIGhlcmUgaWYgc2hhcmVkLgoJKGVsZl9maW5kX3BvaW50ZXJfbGlua2VyX3NlY3Rpb24pOiBQYXNzIGxzZWN0IHJhdGhlciB0aGFuIGVudW0uCgkoZWxmX2NyZWF0ZV9wb2ludGVyX2xpbmtlcl9zZWN0aW9uKTogQWRqdXN0LiAgemFsbG9jIHJhdGhlciB0aGFuCgljbGVhcmluZyBpbiBhIGxvb3AuCgkoZWxmX2ZpbmlzaF9wb2ludGVyX2xpbmtlcl9zZWN0aW9uKTogQWRqdXN0LiAgRG9uJ3QgbWFrZSByZWxhCglzZWN0aW9uIGhlcmUuCgkocHBjX2VsZl9jaGVja19yZWxvY3MpOiBBZGp1c3QuCgkocHBjX2VsZl9hZGRfc3ltYm9sX2hvb2spOiBUaWdodGVuIGhhc2ggY3JlYXRvciB0ZXN0LiAgUmVtb3ZlIGNvZGUKCWNyZWF0aW5nIC5zYnNzIGJ5IGhhbmQuCgkqIGVsZi5jIChfYmZkX2VsZl9saW5rX2hhc2hfbmV3ZnVuYyk6IEFkanVzdC4KCjIwMDMtMDctMDQgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmMzItczM5MC5jIChlbGZfaG93dG9fdGFibGUpOiBDaGFuZ2UgUl8zOTBfR09UMTIgdG8KCWNvbXBsYWluX292ZXJmbG93X2JpdGZpZWxkLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9ob3d0b190YWJsZSk6IENoYW5nZSBSXzM5MF9HT1QxMiB0bwoJY29tcGxhaW5fb3ZlcmZsb3dfYml0ZmllbGQuCgoyMDAzLTA3LTA0ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZi1iZmQuaCAoU1lNQk9MX1JFRkVSRU5DRVNfTE9DQUwsIFNZTUJPTF9DQUxMU19MT0NBTCk6IFJldHVybgoJdHJ1ZSBldmVuIGlmIC1waWUuCgoyMDAzLTA3LTA0ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoc3RydWN0IGVsZk5OX2lhNjRfbGlua19oYXNoX3RhYmxlKTogQWRkIHJlbF9mcHRyX3NlYy4KCShlbGZOTl9pYTY0X2R5bmFtaWNfc3ltYm9sX3ApOiBDaGFuZ2UgaW5mby0+c2hhcmVkIGludG8KCSFpbmZvLT5leGVjdXRhYmxlLgoJKGdldF9mcHRyKTogRm9yIC1waWUgY3JlYXRlIC5vcGQgYXMgd3JpdGFibGUgc2VjdGlvbiBhbmQgY3JlYXRlCgkucmVsYS5vcGQgYXMgd2VsbC4KCShlbGZOTl9pYTY0X2NoZWNrX3JlbG9jcyk6IENoYW5nZSBpbmZvLT5zaGFyZWQgaW50bwoJIWluZm8tPmV4ZWN1dGFibGUuCgkoYWxsb2NhdGVfZnB0cik6IExpa2V3aXNlLgoJKGFsbG9jYXRlX2R5bnJlbF9lbnRyaWVzKTogQWNjb3VudCBmb3IgYSByZWxhdGl2ZSByZWxvYyBmb3IgLXBpZQoJQGZwdHIoKS4gIERvbid0IGFjY291bnQgZm9yIGEgcmVsYXRpdmUgcmVsb2MgaWYgLXBpZSB3YW50X2x0b2ZmX2ZwdHIKCWZvciB1bmRlZndlYWsgc3ltYm9sLiAgQWNjb3VudCBmb3IgYW4gSVBMVCByZWxvYyBpbiAucmVsYS5vcGQKCXNlY3Rpb24gaWYgLXBpZS4KCShzZXRfZ290X2VudHJ5KTogRG9uJ3QgY3JlYXRlIGEgcmVsYXRpdmUgcmVsb2MgaWYgLXBpZQoJd2FudF9sdG9mZl9mcHRyIGZvciB1bmRlZndlYWsgc3ltYm9sLgoJKHNldF9mcHRyX2VudHJ5KTogRW1pdCBhbiBJUExUIHJlbG9jIGluIC5yZWxhLm9wZCBmb3IgLXBpZS4KCShlbGZOTl9pYTY0X3JlbG9jYXRlX3NlY3Rpb24pOiBFbWl0IGEgcmVsYXRpdmUgcmVsb2MgZm9yIC1waWUKCUBmcHRyKCkuCgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfcmVsb2NhdGVfc2VjdGlvbik6IElzc3VlIHVuZGVmaW5lZF9zeW1ib2wKCWV2ZW4gaWYgLXBpZS4KCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYyAoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1zcGFyYy5jIChlbGYzMl9zcGFyY19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAzLTA3LTA0ICBQYXVsIENsYXJrZSA8cGF1bGNAc2VuZXQuY29tLmF1PgoKCSogZWxmMzItaDgzMDAuYyAoUl9IOF9ESVIzMkExNik6IEZpeCBuYW1lIGZpZWxkLgoJKGVsZjMyX2g4X3JlbGF4X3NlY3Rpb24pIDxSX0g4X0RJUjE2QTg+OiBBZGp1c3QgcG9zaXRpb24gb2YgcmVsb2NhdGlvbi4KCTxSX0g4X0RJUjMyQTE2PjogRml4IHR5cGUgb2YgcmVsb2NhdGlvbi4KCjIwMDMtMDctMDQgIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCSogZWxmMzItc2guYyAoc2hfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogUmV0dXJuIGlmIGR5bmFtaWMKCXNlY3Rpb25zIHdlcmUgY3JlYXRlZCBhbHJlYWR5LiAgUmVtb3ZlIHVubmVjZXNzYXJ5IHRlc3RzIG9mCgl0aGUgcHJldmlvdXMgY2hhbmdlLgoKMjAwMy0wNy0wNCAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBEb24ndCBjYWxsCgliZmRfbWFrZV9zZWN0aW9uIGZvciBleGlzdGluZyBzZWN0aW9ucy4KCjIwMDMtMDctMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1zcGFyYy5jIChlbGYzMl9zcGFyY19jaGVja19yZWxvY3MpOiBEb24ndCBjYWxsCgljcmVhdGVfZ290X3NlY3Rpb24gaWYgd2UgYWxyZWFkeSBoYXZlIGRvbmUgc28uCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKHNoX2VsZl9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4KCShzaF9lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogRGVsZXRlICJkeW5vYmoiIHZhci4gIFVzZQoJaHRhYi0+cm9vdC5keW5vYmogaW5zdGVhZC4KCShzaF9lbGZfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCgkoc2hfZWxmX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgoJKiBzZWN0aW9uLmMgKGJmZF9tYWtlX3NlY3Rpb24pOiBSZXR1cm4gTlVMTCBmb3IgZXhpc3Rpbmcgc2VjdGlvbi4KCjIwMDMtMDctMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IERvbid0IGNhbGwKCXBwY19lbGZfY3JlYXRlX2dvdCBpZiB3ZSd2ZSBhbHJlYWR5IGRvbmUgc28uCgoJKiBlbGYtYmZkLmggKF9iZmRfZWxmX2NyZWF0ZV9saW5rZXJfc2VjdGlvbikgRG9uJ3QgZGVjbGFyZS4KCShfYmZkX2VsZl9maW5kX3BvaW50ZXJfbGlua2VyX3NlY3Rpb24pOiBMaWtld2lzZS4KCShiZmRfZWxmMzJfY3JlYXRlX3BvaW50ZXJfbGlua2VyX3NlY3Rpb24pOiBMaWtld2lzZS4KCShiZmRfZWxmMzJfZmluaXNoX3BvaW50ZXJfbGlua2VyX3NlY3Rpb24pOiBMaWtld2lzZS4KCShiZmRfZWxmNjRfY3JlYXRlX3BvaW50ZXJfbGlua2VyX3NlY3Rpb24pOiBMaWtld2lzZS4KCShiZmRfZWxmNjRfZmluaXNoX3BvaW50ZXJfbGlua2VyX3NlY3Rpb24pOiBMaWtld2lzZS4KCShfYmZkX2VsZl9tYWtlX2xpbmtlcl9zZWN0aW9uX3JlbGEpOiBMaWtld2lzZS4KCSogZWxmY29kZS5oIChlbGZfY3JlYXRlX3BvaW50ZXJfbGlua2VyX3NlY3Rpb24pOiBEb24ndCBkZWZpbmUuCgkoZWxmX2ZpbmlzaF9wb2ludGVyX2xpbmtlcl9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfbWFrZV9saW5rZXJfc2VjdGlvbl9yZWxhKTogRGVsZXRlLgoJKF9iZmRfZWxmX2NyZWF0ZV9saW5rZXJfc2VjdGlvbik6IE1vdmUgdGhpcyBmdW5jdGlvbi4uCgkoX2JmZF9lbGZfZmluZF9wb2ludGVyX2xpbmtlcl9zZWN0aW9uKTogLi5hbmQgdGhpcy4uCgkqIGVsZmxpbmsuaCAoZWxmX2NyZWF0ZV9wb2ludGVyX2xpbmtlcl9zZWN0aW9uKTogLi5hbmQgdGhpcy4uCgkoZWxmX2ZpbmlzaF9wb2ludGVyX2xpbmtlcl9zZWN0aW9uKTogLi5hbmQgdGhpcy4uCgkqIGVsZjMyLXBwYy5jOiAuLnRvIGhlcmUsIHJlbmFtaW5nIHRvIHRoZSBmb2xsb3dpbmcsIGFuZCBhZGp1c3RpbmcKCWNhbGxzLgoJKGVsZl9jcmVhdGVfbGlua2VyX3NlY3Rpb24pOiBDb252ZXJ0IHRvIEM5MCwgdGlkeS4KCShlbGZfZmluZF9wb2ludGVyX2xpbmtlcl9zZWN0aW9uKTogTGlrZXdpc2UuCgkoZWxmX2NyZWF0ZV9wb2ludGVyX2xpbmtlcl9zZWN0aW9uKTogTGlrZXdpc2UuCgkoZWxmX2ZpbmlzaF9wb2ludGVyX2xpbmtlcl9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWkzNzAuYzogRGVsZXRlICNpZiAwIGNvZGUuCgoyMDAzLTA3LTAyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9mdW5jX2Rlc2NfYWRqdXN0KTogRG9uJ3QgYWxsb3cgX3NhdmVmKiBhbmQKCV9yZXN0ZiogdG8gYmUgc2F0aXNmaWVkIGJ5IHNoYXJlZCBsaWJzLCBhbmQgYWx3YXlzIGZvcmNlIHRoZW0gbG9jYWwuCgkodG9jX2FkanVzdGluZ19zdHViX25lZWRlZCk6IEF2b2lkIHNjYW5uaW5nIGxpbmtlciBjcmVhdGVkIHNlY3Rpb25zLgoJQ29ycmVjdCB0ZXN0IGZvciAiYmwiLgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uIDxSX1BQQzY0X1RMUz4pOiBDb3JyZWN0IHRlc3QgZm9yCglwcmltYXJ5IG9wY29kZSAzMS4KCjIwMDMtMDctMDEgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBlbGYzMi1zMzkwLmMgKHMzOTBfZWxmX2xkaXNwX3JlbG9jKTogTmV3IHByb3RvdHlwZS4KCShzMzkwX3Rsc19yZWxvYyk6IE5ldyBmdW5jdGlvbi4KCShlbGZfaG93dG9fdGFibGUpOiBBZGQgbG9uZyBkaXNwbGFjZW1lbnQgcmVsb2NhdGlvbnMgUl8zOTBfMjAsCglSXzM5MF9HT1QyMCwgUl8zOTBfR09UUExUMjAgYW5kIFJfMzkwX1RMU19HT1RJRTIwLgoJKGVsZl9zMzkwX3JlbG9jX3R5cGVfbG9va3VwKTogTGlrZXdpc2UuCgkoZWxmX3MzOTBfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCgkoZWxmX3MzOTBfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jOiBTYW1lIGNoYW5nZXMgYXMgZm9yIGVsZjMyLXMzOTAuYy4KCSogcmVsb2MuYzogQWRkIGxvbmcgZGlzcGxhY2VtZW50IHJlbG9jYXRpb25zIEJGRF9SRUxPQ18zOTBfMjAsCglCRkRfUkVMT0NfMzkwX0dPVDIwLCBCRkRfUkVMT0NfMzkwX0dPVFBMVDIwIGFuZAoJQkZEX1JFTE9DXzM5MF9UTFNfR09USUUyMC4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBsaWJiZmQuaDogTGlrZXdpc2UuCgoyMDAzLTA2LTMwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY3B1LWlhNjQtb3BjLmMgKGV4dF9pbW1zX3NjYWxlZCk6IERvbid0IHNpZ24gZXh0ZW5kIHVzaW5nIHNoaWZ0cy4KCShpbnNfaW1tcywgaW5zX2ltbXNtMXU0KTogTGlrZXdpc2UuICBXYXJuaW5nIGZpeC4KCjIwMDMtMDYtMjkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBhcmNoaXZlLmM6IENvbnZlcnQgdG8gQzkwLCByZW1vdmUgdW5uZWNlc3NhcnkgcHJvdG90eXBlcyBhbmQgY2FzdHMuCglSZXBsYWNlIFBUUiB3aXRoIHZvaWQgKi4gIEZvcm1hdHRpbmcuCgkqIGFyY2hpdmU2NC5jOiBMaWtld2lzZS4KCSogYXJjaHVyZXMuYzogTGlrZXdpc2UuCgkqIGJmZC1pbi5oOiBMaWtld2lzZS4KCSogYmZkLmM6IExpa2V3aXNlLgoJKiBiZmRpby5jOiBMaWtld2lzZS4KCSogYmZkd2luLmM6IExpa2V3aXNlLgoJKiBjYWNoZS5jOiBMaWtld2lzZS4KCSogY29yZWZpbGUuYzogTGlrZXdpc2UuCgkqIGZvcm1hdC5jOiBMaWtld2lzZS4KCSogaW5pdC5jOiBMaWtld2lzZS4KCSogbGliYmZkLWluLmg6IExpa2V3aXNlLgoJKiBsaWJiZmQuYzogTGlrZXdpc2UuCgkqIGxpbmtlci5jOiBMaWtld2lzZS4KCSogb3BuY2xzLmM6IExpa2V3aXNlLgoJKiByZWxvYy5jOiBMaWtld2lzZS4KCSogc2VjdGlvbi5jOiBMaWtld2lzZS4KCSogc2ltcGxlLmM6IExpa2V3aXNlLgoJKiBzeW1zLmM6IExpa2V3aXNlLgoJKiB0YXJnZXRzLmM6IExpa2V3aXNlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoKCSogZWNvZmYuYyAoYmZkX2RlYnVnX3NlY3Rpb24pOiBBZGQgbWlzc2luZyBrZXB0X3NlY3Rpb24gaW5pdGlhbGl6YXRpb24uCgkqIGxpYmJmZC1pbi5oIChfYmZkX3NoX2FsaWduX2xvYWRfc3Bhbik6IERvbid0IGRlY2xhcmUgaWYgZGVmaW5lZC4KCSogbGliYmZkLmMgKENPRVJDRTMyLCBFSUdIVF9HQVpJTExJT04pOiBTaW1wbGlmeS4KCShiZmRfZ2V0YjY0KTogUmV3cml0ZSB3aXRob3V0IHBhcmVucy4KCShiZmRfZ2V0bDY0LCBiZmRfZ2V0Yl9zaWduZWRfNjQsIGJmZF9nZXRsX3NpZ25lZF82NCk6IExpa2V3aXNlLgoJKiBjYWNoZS5jIChpbnNlcnQsIHNuaXApOiBSZW1vdmUgSU5MSU5FLgoJKiBsaW5rZXIuYyAoYmZkX2xpbmtfYWRkX3VuZGVmKTogTGlrZXdpc2UuCgoyMDAzLTA2LTI5ICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBlbGY2NC14ODYtNjQuYzogQ29udmVydCB0byBJU08gQzkwIHByb3RvdHlwZXMsIHJlbW92ZQoJdW5uZWNlc3NhcnkgcHJvdG90eXBlcy4gIFJlcGxhY2UgUFRSIHdpdGggdm9pZCAqLgoJKGVsZjY0X3g4Nl82NF9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBVc2UgU1lNQk9MX0NBTExTX0xPQ0FMIHRvCgl0cmltIHBsdCBlbnRyaWVzLiAgTW92ZSB1bmRlZndlYWsgbm9uLWRlZmF1bHQgdmlzaWJpbGl0eSB0ZXN0IC4uLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IC4uLiBmcm9tIGhlcmUuCgkoV0lMTF9DQUxMX0ZJTklTSF9EWU5BTUlDX1NZTUJPTCk6IFBhc3MgU0hBUkVEIGluc3RlYWQgb2YgSU5GTy4KCUNoYW5nZSBhbGwgY2FsbGVycy4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBVc2UgU1lNQk9MX0NBTExTX0xPQ0FMLiAgVXNlCglTWU1CT0xfUkVGRVJFTkNFU19MT0NBTCBmb3IgZHlucmVsb2MgY2hlY2suCgkoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBVc2UgU1lNQk9MX0NBTExTX0xPQ0FMIGZvcgoJZHlucmVsb2MgYW5kIC5nb3QgcmVsb2NzLgoJKGVsZjY0X3g4Nl82NF9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBVc2UgU1lNQk9MX1JFRkVSRU5DRVNfTE9DQUwKCWZvciAuZ290IHJlbG9jcy4KCjIwMDMtMDYtMjkgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGZ4eC1taXBzLmM6IEFsbG93IGxhenkgYmluZGluZyBmb3IgUl9NSVBTX0pBTFIuCgoyMDAzLTA2LTI3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogb3BuY2xzLmMgKGJmZF9hZGRfZ251X2RlYnVnbGlua19zZWN0aW9uKTogUmVuYW1lIHRvCgliZmRfYWRkX2dudV9kZWJ1Z2xpbmtfc2VjdGlvbiBhbmQgb25seSBjcmVhdGUgdGhlIHNlY3Rpb24sIGRvIG5vdAoJZmlsbCBpbiBpdHMgY29udGVudHMuCgkoYmZkX2ZpbGxfaW5fZ251X2RlYnVnbGlua19zZWN0aW9uKTogTmV3IGZ1bmN0aW9uLiAgRmlsbCBpbiB0aGUKCWNvbnRlbnRzIG9mIGEgLmdudS1kZWJ1Z2xpbmsgc2VjdGlvbi4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMy0wNi0yNyAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZnh4LW1pcHMuYzogUmV2ZXJ0IC5nb3QgYWxpZ25tZW50IHRvIDIqKjQuCgoyMDAzLTA2LTI3ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmMzItbWlwcy5jOiBGaXggYWRkZW5kIGZvciBfZ3BfZGlzcCBzcGVjaWFsIHN5bWJvbC4KCjIwMDMtMDYtMjcgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfZmFrZV9zZWN0aW9ucyk6IFJlbW92ZSBub24tZGVmYXVsdAoJcmVsb2NhdGlvbiBoZWFkZXIgc2V0dXAuCgoyMDAzLTA2LTI1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItcHBjLmMgKHBwY19lbGZfaG93dG9fdGFibGUpOiBSZW1vdmUgdW5uZWNlc3NhcnkgY2FzdC4KCShwcGNfZWxmX3JlbG9jX3R5cGVfbG9va3VwKTogTW9kaWZ5IGNvbW1lbnQuCgkocHBjX2VsZl9pbmZvX3RvX2hvd3RvKTogRGl0dG8uCgkocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogRGl0dG8uCgkocHBjX2VsZl9jaGVja19yZWxvY3MpOiBDYWxsIHBwY19lbGZfaG93dG9faW5pdC4KCjIwMDMtMDYtMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBhb3V0LW5zMzJrLmM6IENvcnJlY3Qgc3BlbGxpbmcgb2YgInJlbG9jYXRhYmxlIi4KCSogYW91dHguaDogTGlrZXdpc2UuCgkqIGJmZC1pbi5oOiBMaWtld2lzZS4KCSogYmZkLmM6IExpa2V3aXNlLgoJKiBib3V0LmM6IExpa2V3aXNlLgoJKiBjb2ZmLWEyOWsuYzogTGlrZXdpc2UuCgkqIGNvZmYtYWxwaGEuYzogTGlrZXdpc2UuCgkqIGNvZmYtYXJtLmM6IExpa2V3aXNlLgoJKiBjb2ZmLWkzODYuYzogTGlrZXdpc2UuCgkqIGNvZmYtaTg2MC5jOiBMaWtld2lzZS4KCSogY29mZi1pOTYwLmM6IExpa2V3aXNlLgoJKiBjb2ZmLW02OGsuYzogTGlrZXdpc2UuCgkqIGNvZmYtbTg4ay5jOiBMaWtld2lzZS4KCSogY29mZi1tY29yZS5jOiBMaWtld2lzZS4KCSogY29mZi1taXBzLmM6IExpa2V3aXNlLgoJKiBjb2ZmLW9yMzIuYzogTGlrZXdpc2UuCgkqIGNvZmYtcHBjLmM6IExpa2V3aXNlLgoJKiBjb2ZmLXJzNjAwMC5jOiBMaWtld2lzZS4KCSogY29mZi1zaC5jOiBMaWtld2lzZS4KCSogY29mZi10aWM4MC5jOiBMaWtld2lzZS4KCSogY29mZjY0LXJzNjAwMC5jOiBMaWtld2lzZS4KCSogY29mZmxpbmsuYzogTGlrZXdpc2UuCgkqIGNwdS1uczMyay5jOiBMaWtld2lzZS4KCSogZWNvZmYuYzogTGlrZXdpc2UuCgkqIGVjb2ZmbGluay5jOiBMaWtld2lzZS4KCSogZWxmLWJmZC5oOiBMaWtld2lzZS4KCSogZWxmLWVoLWZyYW1lLmM6IExpa2V3aXNlLgoJKiBlbGYtaHBwYS5oOiBMaWtld2lzZS4KCSogZWxmLW0xMDIwMC5jOiBMaWtld2lzZS4KCSogZWxmLW0xMDMwMC5jOiBMaWtld2lzZS4KCSogZWxmLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1hcm0uaDogTGlrZXdpc2UuCgkqIGVsZjMyLWF2ci5jOiBMaWtld2lzZS4KCSogZWxmMzItY3Jpcy5jOiBMaWtld2lzZS4KCSogZWxmMzItZDEwdi5jOiBMaWtld2lzZS4KCSogZWxmMzItZGx4LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1mcjMwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1mcnYuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWg4MzAwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1ocHBhLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzcwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzg2LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1pODYwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1pOTYwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1pcDJrLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1pcTIwMDAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW0zMnIuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGhjMTEuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGhjMXguYzogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGsuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW1jb3JlLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1taXBzLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1tc3A0MzAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW9wZW5yaXNjLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXMzOTAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXNoLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zaDY0LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zcGFyYy5jOiBMaWtld2lzZS4KCSogZWxmMzItdjg1MC5jOiBMaWtld2lzZS4KCSogZWxmMzItdmF4LmM6IExpa2V3aXNlLgoJKiBlbGYzMi14c3Rvcm15MTYuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXh0ZW5zYS5jOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYzogTGlrZXdpc2UuCgkqIGVsZjY0LWhwcGEuYzogTGlrZXdpc2UuCgkqIGVsZjY0LW1pcHMuYzogTGlrZXdpc2UuCgkqIGVsZjY0LW1taXguYzogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jOiBMaWtld2lzZS4KCSogZWxmNjQtc2g2NC5jOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jOiBMaWtld2lzZS4KCSogZWxmY29kZS5oOiBMaWtld2lzZS4KCSogZWxmbGluay5oOiBMaWtld2lzZS4KCSogZWxmbjMyLW1pcHMuYzogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYzogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuYzogTGlrZXdpc2UuCgkqIGkzODZsaW51eC5jOiBMaWtld2lzZS4KCSogaWVlZS5jOiBMaWtld2lzZS4KCSogbGliY29mZi1pbi5oOiBMaWtld2lzZS4KCSogbGlua2VyLmM6IExpa2V3aXNlLgoJKiBtNjhrbGludXguYzogTGlrZXdpc2UuCgkqIHBkcDExLmM6IExpa2V3aXNlLgoJKiBwZS1taXBzLmM6IExpa2V3aXNlLgoJKiBwZVhYaWdlbi5jOiBMaWtld2lzZS4KCSogcmVsb2MuYzogTGlrZXdpc2UuCgkqIHJlbG9jMTYuYzogTGlrZXdpc2UuCgkqIHNwYXJjbGludXguYzogTGlrZXdpc2UuCgkqIHN1bm9zLmM6IExpa2V3aXNlLgoJKiBzeW1zLmM6IExpa2V3aXNlLgoJKiB2ZXJzYWRvcy5jOiBMaWtld2lzZS4KCSogdm1zLmM6IExpa2V3aXNlLgoJKiB4Y29mZmxpbmsuYzogTGlrZXdpc2UuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogbGliY29mZi5oOiBSZWdlbmVyYXRlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCjIwMDMtMDYtMjQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9jaGVja19yZWxvY3MpOiBSZXBvcnQgcGx0IHJlbG9jIGFnYWluc3QKCWxvY2FsIHN5bSBlcnJvcnMuCgoJKiBlbGYzMi1pMzg2LmM6IENvbnZlcnQgdG8gQzkwIGZ1bmN0aW9uIGRlZmluaXRpb25zLCByZW1vdmUgdW5uZWNlc3NhcnkKCXByb3RvdHlwZXMgYW5kIGNhc3RzLiAgUmVwbGFjZSBQVFIgd2l0aCB2b2lkICouICBGb3JtYXR0aW5nLgoJKiBlbGYzMi1wcGMuYzogTGlrZXdpc2UuICBCcmVhayBsb25nIHN0cmluZ3MgdG9vLgoJKHBwY19lbGZfcmVsYXhfc2VjdGlvbik6IFVzZSBlbnVtIGVsZl9wcGNfcmVsb2NfdHlwZSBmb3Igcl90eXBlLgoJKHBwY19lbGZfdW5oYW5kbGVkX3JlbG9jKTogSW50ZXJuYXRpb25hbGl6ZSBlcnJvciBtZXNzYWdlLgoJKiBlbGYzMi1wcGMuaDogUmVtb3ZlIFBBUkFNUy4KCjIwMDMtMDYtMjMgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9iZWdpbl93cml0ZV9wcm9jZXNzaW5nKTogVXNlIGJ5dGVzIHRvIGNvdW50CglBUFVpbmZvIHNsb3RzLgoJKHBwY19lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IExpa2V3aXNlLgoKMjAwMy0wNi0yMyAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2lucHV0X2JmZCk6IENoZWNrIHJhdyBzaXplIHdoZW4gdXNpbmcKCWtlcHRfc2VjdGlvbiB0byBwcmVzZXJ2ZSBkZWJ1ZyBpbmZvcm1hdGlvbiBkaXNjYXJkZWQgYnkKCWxpbmtvbmNlLgoKMjAwMy0wNi0yMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChzdHJ1Y3QgcHBjX2xpbmtfaGFzaF90YWJsZSk6IEFkZCB0b3BfaWQuCgkocHBjNjRfZWxmX3NldHVwX3NlY3Rpb25fbGlzdHMpOiBTZXQgaXQuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBDaGVjayBzeW0gc2VjdGlvbiBpZCBhZ2FpbnN0IHRvcF9pZC4KCShwcGNfYnVpbGRfb25lX3N0dWIpOiBDb21tZW50IG9uIHRvcF9pZC4KCjIwMDMtMDYtMjAgIFJhbGYgQ29yc2VwaXVzICA8Y29yc2VwaXVAZmF3LnVuaS11bG0uZGU+CgoJKiBjb25maWcuYmZkOiBBZGQgdGljNHgtKi1ydGVtcyouCgoyMDAzLTA2LTIwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmM6IENvbnZlcnQgdG8gQzkwIGZ1bmN0aW9uIGRlZmluaXRpb25zLCByZW1vdmUgdW5uZWNlc3NhcnkKCXByb3RvdHlwZXMgYW5kIGNhc3RzLiAgUmVwbGFjZSBQVFIgd2l0aCB2b2lkICouICBGb3JtYXQgY29weXJpZ2h0LgoJTWVudGlvbiBBQkkgbGlua3MuCgkoc3RydWN0IHBwY19saW5rX2hhc2hfdGFibGUpOiBSZW5hbWUgc2dvdCwgc3JlbGdvdCwgc3BsdCwgc3JlbHBsdCwKCXNkeW5ic3MsIHNyZWxic3MsIHNnbGluaywgc2JybHQgYW5kIHNyZWxicmx0IHRvIGdvdCwgcmVsZ290IC4uIHJlbGJybHQuCgkocHBjX3R5cGVfb2Zfc3R1Yik6IE1ha2Ugcl90eXBlIGFuIGVudW0uCgkocHBjNjRfZWxmX3NpemVfc3R1YnMpOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmg6IFJlbW92ZSBQQVJBTVMgbWFjcm8uCgoyMDAzLTA2LTE5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogUmVpbnN0YXRlIGluaXQgb2YKCWVsZiBoYXNoIHRhYiBmaWVsZHMuCgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3JlbG9jX3R5cGVfbG9va3VwKTogVGlkeSBwcm90b3R5cGUuCgkocHBjNjRfZWxmX2luZm9fdG9faG93dG8pOiBMaWtld2lzZS4KCShwcGM2NF9lbGZfYnVpbGRfc3R1YnMpOiBBZGQgInN0YXRzIiBwYXJhbSwgYW5kIHByaW50IHN0YXRpc3RpY3MuCgkqIGVsZjY0LXBwYy5oIChwcGM2NF9lbGZfYnVpbGRfc3R1YnMpOiBBZGp1c3QgcHJvdG90eXBlLgoKMjAwMy0wNi0xOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBJZ25vcmUgUl9TUEFSQ19ESVNQMzIKCXJlbG9jIG92ZXJmbG93IG9uIGRpc2NhcmRlZCBlaF9mcmFtZSBlbnRyaWVzLgoKMjAwMy0wNi0xOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jICh0b2NfYWRqdXN0aW5nX3N0dWJfbmVlZGVkKTogTmV3IGZ1bmN0aW9uLgoJKHBwYzY0X2VsZl9uZXh0X2lucHV0X3NlY3Rpb24pOiBVc2UgaXQgaGVyZSB0byBzZXQgaGFzX2dwX3JlbG9jLgoJUmV0dXJuIGVycm9yIGNvbmRpdGlvbi4KCShwcGM2NF9lbGZfc2l6ZV9zdHVicyk6IFJlc3RyaWN0IHRvYyBhZGp1c3Rpbmcgc3R1YnMgdG8gc2VjdGlvbnMKCXRoYXQgaGF2ZSBoYXNfZ3BfcmVsb2Mgc2V0LgoJKHN0cnVjdCBwcGNfbGlua19oYXNoX3RhYmxlKTogQWRkIHN0dWJfY291bnQuCgkocHBjX2J1aWxkX29uZV9zdHViKTogSW5jcmVtZW50IGl0LgoJKHBwYzY0X2VsZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogem1hbGxvYyByYXRoZXIgdGhhbiBjbGVhcmluZwoJaW5kaXZpZHVhbCBmaWVsZHMuCgkqIGVsZjY0LXBwYy5oIChwcGM2NF9lbGZfbmV4dF9pbnB1dF9zZWN0aW9uKTogVXBkYXRlIHByb3RvdHlwZS4KCjIwMDMtMDYtMTggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZsaW5rLmggKGVsZl9nY19yZWNvcmRfdnRlbnRyeSk6IFJldmVydCBsYXN0IGNoYW5nZS4gIENvcnJlY3QKCXNpemUgY2FsY3VsYXRpb24gZnJvbSBhZGRlbmQuICBSb3VuZCBzaXplIHVwLgoKMjAwMy0wNi0xOCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBlbGYzMi1jcmlzLmMgKGNyaXNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pIDxjYXNlCglSX0NSSVNfMzJfR09UUkVMPjogV2hlbiBsaW5raW5nIGEgcHJvZ3JhbSwgZG9uJ3QgY29tcGxhaW4gYWJvdXQgYQoJc3ltYm9sIGZyb20gYSBub3JtYWwgb2JqZWN0IG9yIGFuIHVuZGVmaW5lZCB3ZWFrIHN5bWJvbC4KCjIwMDMtMDYtMTggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBBY2NlcHQgYSBzeW1ib2wgb24KCVJfUFBDNjRfVE9DIHJlbG9jcy4KCjIwMDMtMDYtMTcgIEguSi4gTHUgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogc2VjdGlvbi5jIChzdHJ1Y3Qgc2VjKTogUHV0IGJhY2sga2VwdF9zZWN0aW9uLgoJKFNURF9TRUNUSU9OKTogUHV0IGJhY2sga2VwdF9zZWN0aW9uIGluaXRpYWxpemF0aW9uLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2lucHV0X2JmZCk6IEFsc28gY2hlY2sgZGlzY2FyZGVkIGxpbmtvbmNlCglzZWN0aW9ucyBmb3IgcmVsb2NhdGVhYmxlIG91dHB1dC4gVXNlIGtlcHRfc2VjdGlvbiB0byBwcmVzZXJ2ZQoJZGVidWcgaW5mb3JtYXRpb24gZGlzY2FyZGVkIGJ5IGxpbmtvbmNlLgoKMjAwMy0wNi0xNyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxvY2F0ZV9zZWN0aW9uKTogU3VwcG9ydAoJc2VnbWVudC1yZWxhdGl2ZSByZWxvY2F0aW9uIGJldHdlZW4gZGlmZmVyZW50IHNlZ21lbnRzLgoKMjAwMy0wNi0xNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IERvIHVuYWxpZ25lZCByZWxvYwoJb3B0aW1pemF0aW9ucyBlYXJsaWVyLgoKCSogZWxmNjQtcHBjLmMgKHN0cnVjdCBwcGNfbGlua19oYXNoX3RhYmxlKTogUmVpbnN0YXRlIHRvcF9pbmRleC4KCVJlc3RvcmUgcHJldmlvdXMgaW5wdXRfbGlzdCB0eXBlLgoJKHBwYzY0X2VsZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogVW5kbyBsYXN0IGNoYW5nZS4KCShwcGM2NF9lbGZfc2V0dXBfc2VjdGlvbl9saXN0cyk6IFJlaW5zdGF0ZSBjb2RlIHNldHRpbmcgdXAgaW5wdXQgbGlzdHMKCXBlciBvdXRwdXQgc2VjdGlvbiwgYnV0IGRvbid0IGJvdGhlciB3aXRoIGJmZF9hYnNfc2VjdGlvbiBtYXJrZXIuCgkocHBjNjRfZWxmX25leHRfaW5wdXRfc2VjdGlvbik6IEFkanVzdCBmb3IgbXVsdGlwbGUgaW5wdXQgc2VjdGlvbgoJbGlzdHMuCgkoZ3JvdXBfc2VjdGlvbnMpOiBMaWtld2lzZS4KCjIwMDMtMDYtMTcgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY2F0aW9uX3NlY3Rpb24pOiBFbnN1cmUKCSpyX29mZnNldCA9PSByX2FkZGVuZCBmb3IgUkVMQVRJVkUgcmVsb2NzIGFnYWluc3QgLmdvdC4KCjIwMDMtMDYtMTcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBPcHRpbWl6ZSB1bmFsaWduZWQgcmVsb2NzLgoKMjAwMy0wNi0xNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZmxpbmsuaCAoZWxmX2djX3JlY29yZF92dGVudHJ5KTogQWxsb2NhdGUgYW4gZXh0cmEgZWxlbWVudAoJaW4gdGhlIHZ0YWJsZV9lbnRyaWVzX3VzZWQgYXJyYXkgdG8gYWxsb3cgZm9yIHRoZSBhY2Nlc3NpbmcKCXRoZSBsYXJnZXN0IGVsZW1lbnQuCgoyMDAzLTA2LTE3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHN0cnVjdCBwcGNfbGlua19oYXNoX3RhYmxlKTogUmVtb3ZlIHRvcF9pbmRleC4gIE1vZGlmeQoJaW5wdXRfbGlzdC4KCShwcGM2NF9lbGZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IEluaXQgaW5wdXRfbGlzdCBoZXJlLgoJKHBwYzY0X2VsZl9zZXR1cF9zZWN0aW9uX2xpc3RzKTogUmVtb3ZlIGNvZGUgc2V0dGluZyB1cCBpbnB1dCBsaXN0cwoJcGVyIG91dHB1dCBzZWN0aW9uLiAgU2V0IHRvY19vZmYgZm9yIGFicyBhbmQgb3RoZXIgc3RhbmRhcmQgc2VjdGlvbnMuCgkocHBjNjRfZWxmX3JlaW5pdF90b2MpOiBEb24ndCBzZXQgZWxmX2dwIG9uIGlucHV0IGJmZHMgbGFja2luZyBhIHRvYy4KCShwcGM2NF9lbGZfbmV4dF9pbnB1dF9zZWN0aW9uKTogQWRqdXN0IGZvciBzaW5nbGUgaW5wdXQgc2VjdGlvbiBsaXN0LgoJRG9uJ3Qgc2V0IHRvY19jdXJyIGZyb20gaW5wdXQgYmZkcyB0aGF0IGhhdmVuJ3Qgc2V0IGVsZl9ncC4KCShncm91cF9zZWN0aW9ucyk6IEFkanVzdCBmb3Igc2luZ2xlIGlucHV0IHNlY3Rpb24gbGlzdC4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IENvcnJlY3QgcGNyZWwgc2VjdGlvbiB6ZXJvLgoKMjAwMy0wNi0xNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFdoZW4gb3B0aW1pemluZyB0b2N0cHJlbAoJdGxzLCBjaGVjayB0aGF0IGEgVE9DMTZfRFMgb3IgVE9DMTZfTE9fRFMgcmVsb2MgaXNuJ3QgcG9pbnRpbmcgdG8gYQoJZHRwcmVsIGVudHJ5LiAgRW5zdXJlIFRMU19MRCBEVFBNT0QgcmVsb2MgaGFzIGEgemVybyBhZGRlbmQuICBXcml0ZQoJZ290IHNlY3Rpb24gZm9yIFJFTEFUSVZFIHJlbG9jcy4gIEZpeCB3cm9uZyBjb21tZW50LiAgQ2hhbmdlIGNvbmRpdGlvbgoJdW5kZXIgd2hpY2ggZHluYW1pYyByZWxvY3MgdXBkYXRlIHRoZSBzZWN0aW9uIGNvbnRlbnRzLgoKMjAwMy0wNi0xMyAgUm9iZXJ0IE1pbGxhbiAgPHplcmF0dWwyQHdhbmFkb28uZXM+CgoJKiBjb25maWcuYmZkOiBBZGQgaTM4Ni1uZXRic2QtZ251IHRhcmdldC4KCjIwMDMtMDYtMTIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBvcG5jbHMuYyAoY2FsY19jcmMzMik6IFJlbmFtZSB0bwoJYmZkX2NhbGNfZ251X2RlYnVnbGlua19jcmMzMiBhbmQgZXhwb3J0LgoJKEdOVV9ERUJVR0xJTkspOiBEZWZpbmUgYW5kIHVzZSB0byByZXBsYWNlIG9jY3VycmVuY2VzIG9mCgloYXJkLWNvZGVkICIuZ251X2RlYnVnbGluayIgaW4gdGhlIGNvZGUuCgkoZ2V0X2RlYnVnX2xpbmtfaW5mbyk6IFByZXZlbnQgYWJvcnRzIGJ5IHJlcGxhY2luZyBjYWxsIHRvCgl4bWFsbG9jIHdpdGggYSBjYWxsIHRvIG1hbGxvYy4KCShmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGUpOiBQcmV2ZW50IGFib3J0cyBieSByZXBsYWNpbmcgY2FsbHMKCXRvIHhtYWxsb2MgYW5kIHhzdHJkdXAgd2l0aCBjYWxscyB0byBtYWxsb2MgYW5kIHN0cmR1cC4KCShiZmRfYWRkX2dudV9kZWJ1Z2xpbmspOiBOZXcgZnVuY3Rpb24uICBBZGQgYSAuZ251X2RlYnVnbGluawoJc2VjdGlvbiB0byBhIGJmZC4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMy0wNi0xMiBGZWRlcmljbyBHLiBTY2h3aW5kdCA8ZmdzY2hAbG9kb3NzLm5ldD4KCgkqIGNvbmZpZy5iZmQgKGlbMy03XTg2LSotb3BlbmJzZFswLTJdLiogfCBpWzMtN104Ni0qLW9wZW5ic2QzLlswLTNdKToKCU5ldyB0YXJnZXQgKHdhcyBpWzMtN104Ni0qLW9wZW5ic2QqIGJlZm9yZSkuCgkoaVszLTddODYtKi1vcGVuYnNkKik6IENoYW5nZSB0byB1c2UgYmZkX2VsZjMyX2kzODZfdmVjLgoJKHZheC0qLW9wZW5ic2QqKTogTmV3IHRhcmdldC4KCjIwMDMtMDYtMTEgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGZ4eC1taXBzLmMgKE1JUFNfRUxGX09QVElPTlNfU0VDVElPTl9OQU1FKTogVXNlIC5NSVBTLm9wdGlvbnMKCWZvciBuMzIsIHRvby4KCShNSVBTX0VMRl9TVFVCX1NFQ1RJT05fTkFNRSk6IFVzZSAuTUlQUy5zdHVicyBmb3IgbjMyLCB0b28uCgkobWlwc19lbGZfcmVsX2R5bl9zZWN0aW9uKTogVXNlIGFwcHJvcHJpYXRlIHNlY3Rpb24gYWxpZ25tZW50LgoJKG1pcHNfZWxmX2NyZWF0ZV9nb3Rfc2VjdGlvbik6IExpa2V3aXNlLgoJKF9iZmRfbWlwc19lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCjIwMDMtMDYtMTEgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGYzMi1taXBzLmMgKG1pcHNfZWxmX2dlbmVyaWNfcmVsb2MpOiBOZXcgRnVuY3Rpb24uCgkoZWxmX21pcHNfaG93dG9fdGFibGVfcmVsKTogVXNlIGl0LgoJKGdwcmVsMzJfd2l0aF9ncCk6IE1vdmUgcHJvdG90eXBlLgoJKG1pcHNfZWxmX2hpMTZfcmVsb2MpOiBDaGVjayBmb3IgISBCU0ZfTE9DQUwgaW5zdGVhZCBvZiB6ZXJvIGFkZGVuZC4KCVVzZSBtaXBzX2VsZl9nZW5lcmljX3JlbG9jLgoJKG1pcHNfZWxmX2dvdDE2X3JlbG9jKTogQ2hlY2sgZm9yICEgQlNGX0xPQ0FMIGluc3RlYWQgb2YgemVybyBhZGRlbmQuCglDb2RlIGNsZWFudXAuCgkoX2JmZF9taXBzX2VsZjMyX2dwcmVsMTZfcmVsb2MpOiBDaGVjayBmb3IgISBCU0ZfTE9DQUwgaW5zdGVhZCBvZgoJemVybyBhZGRlbmQuCgkobWlwc19lbGZfZ3ByZWwzMl9yZWxvYyk6IExpa2V3aXNlLiBVc2UgdGhlIHNhbWUgR1AgYXNzaWdubWVudCBsb2dpYwoJYXMgaW4gdGhlIG90aGVyICpfZ3ByZWwqX3JlbG9jIGZ1bmN0aW9ucy4KCShncHJlbDMyX3dpdGhfZ3ApOiBIYW5kbGUgcGFydGlhbF9pbnBsYWNlIHByb3Blcmx5LgoJKG1pcHMzMl82NGJpdF9yZWxvYyk6IFVzZSBtaXBzX2VsZl9nZW5lcmljX3JlbG9jLgoJKG1pcHMxNl9ncHJlbF9yZWxvYyk6IENoZWNrIGZvciAhIEJTRl9MT0NBTCBpbnN0ZWFkIG9mIHplcm8gYWRkZW5kLgoJRG8gYWRkZW5kIGhhbmRsaW5nIGRpcmVjdGx5IGluc3RlYWQgb2YgY2FsbGluZwoJX2JmZF9taXBzX2VsZl9ncHJlbDE2X3dpdGhfZ3AuIEhhbmRsZSBwYXJ0aWFsX2lucGxhY2UgcHJvcGVybHkuCgkqIGVsZjY0LW1pcHMuYyAobWlwc19lbGY2NF9oaTE2X3JlbG9jKTogQ2hlY2sgZm9yICEgQlNGX0xPQ0FMIGluc3RlYWQKCW9mIHplcm8gYWRkZW5kLiBIYW5kbGUgcGFydGlhbF9pbnBsYWNlIHByb3Blcmx5LgoJKG1pcHNfZWxmNjRfZ290MTZfcmVsb2MpOiBDaGVjayBmb3IgISBCU0ZfTE9DQUwgaW5zdGVhZCBvZiB6ZXJvCglhZGRlbmQuCgkobWlwc19lbGY2NF9ncHJlbDE2X3JlbG9jKTogTGlrZXdpc2UuCgkobWlwc19lbGY2NF9saXRlcmFsX3JlbG9jKTogTGlrZXdpc2UuCgkobWlwc19lbGY2NF9ncHJlbDMyX3JlbG9jKTogTGlrZXdpc2UuIFVzZSB0aGUgc2FtZSBHUCBhc3NpZ25tZW50Cglsb2dpYyBhcyBpbiB0aGUgb3RoZXIgKl9ncHJlbCpfcmVsb2MgZnVuY3Rpb25zLiBIYW5kbGUKCXBhcnRpYWxfaW5wbGFjZSBwcm9wZXJseS4KCShtaXBzX2VsZjY0X3NoaWZ0Nl9yZWxvYyk6IENoZWNrIGZvciAhIEJTRl9MT0NBTCBpbnN0ZWFkIG9mIHplcm8KCWFkZGVuZC4gSGFuZGxlIHBhcnRpYWxfaW5wbGFjZSBwcm9wZXJseS4KCShtaXBzMTZfZ3ByZWxfcmVsb2MpOiBMaWtld2lzZS4gRG8gYWRkZW5kIGhhbmRsaW5nIGRpcmVjdGx5IGluc3RlYWQKCW9mIGNhbGxpbmcgX2JmZF9taXBzX2VsZl9ncHJlbDE2X3dpdGhfZ3AuCgkqIGVsZm4zMi1taXBzLmMgKG1pcHNfZWxmX2dvdDE2X3JlbG9jKTogQ2hlY2sgZm9yIEJTRl9MT0NBTC4KCShtaXBzX2VsZl9ncHJlbDMyX3JlbG9jKTogQ2hlY2sgZm9yICEgQlNGX0xPQ0FMIGluc3RlYWQKCW9mIHplcm8gYWRkZW5kLgoJKG1pcHNfZWxmX3NoaWZ0Nl9yZWxvYyk6IEhhbmRsZSBwYXJ0aWFsX2lucGxhY2UgcHJvcGVybHkuCgkobWlwczE2X2dwcmVsX3JlbG9jKTogTGlrZXdpc2UuIERvIGFkZGVuZCBoYW5kbGluZyBkaXJlY3RseSBpbnN0ZWFkCglvZiBjYWxsaW5nIF9iZmRfbWlwc19lbGZfZ3ByZWwxNl93aXRoX2dwLgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfZ3ByZWwxNl93aXRoX2dwKTogSGFuZGxlCglwYXJ0aWFsX2lucGxhY2UgcHJvcGVybHkuIEZpeCB3cm9uZyBhZGRlbmQgaGFuZGxpbmcuIEZpeCBvdmVyZmxvdwoJY2hlY2suCgkoX2JmZF9taXBzX2VsZl9zaWduX2V4dGVuZCk6IFJlbmFtZWQgZnJvbSBtaXBzX2VsZl9zaWduX2V4dGVuZCBhbmQKCWV4cG9ydGVkLgoJKG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogVXNlIF9iZmRfbWlwc19lbGZfc2lnbl9leHRlbmQuCgkoX2JmZF9taXBzX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkobWlwc19lbGZfY3JlYXRlX2R5bmFtaWNfcmVsb2NhdGlvbik6IFVwZGF0ZSBzZWNfaW5mb190eXBlIGFjY2Vzcy4KCSogZWxmeHgtbWlwcy5oIChfYmZkX21pcHNfcmVsYXhfc2VjdGlvbik6IEZpeCBwcm90b3R5cGUgZGVjbGFyYXRpb24uCgkoX2JmZF9taXBzX2VsZl9zaWduX2V4dGVuZCk6IE5ldyBwcm90b3R5cGUuCgoyMDAzLTA2LTExIEZlZGVyaWNvIEcuIFNjaHdpbmR0IDxmZ3NjaEBsb2Rvc3MubmV0PgoKCSogY29uZmlnLmJmZCAoc3BhcmMtKi1vcGVuYnNkWzAtMl0uKiB8IHNwYXJjLSotb3BlbmJzZDMuWzAtMV0pOgoJTmV3IHRhcmdldCAod2FzIHNwYXJjLSotb3BlbmJzZCogYmVmb3JlKS4KCShzcGFyYy0qLW9wZW5ic2QqKTogQ2hhbmdlIHRvIHVzZSBiZmRfZWxmMzJfc3BhcmNfdmVjLgoKCSogY29uZmlndXJlLmluICh2YXgtKi1vcGVuYnNkKik6IFNldCBDT1JFRklMRSB0byBuZXRic2QtY29yZS5sby4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMy0wNi0xMSAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBwby9NYWtlLWluIChERVNURElSKTogTmV3LgoJKGluc3RhbGwtZGF0YS15ZXMpOiBTdXBwb3J0ICQoREVTVERJUikuCgkodW5pbnN0YWxsKTogTGlrZXdpc2UuCgoyMDAzLTA2LTExICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW0gKGNvbmZpZy5zdGF0dXMpOiBEZXBlbmQgb24gdmVyc2lvbi5oLgoJUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBwby9TUkMtUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgoyMDAzLTA2LTEwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoJICAgIEdhcnkgSGFkZSA8Z2FyeWhhZGVAdXMuaWJtLmNvbT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbiA8Kl9EUz4pOiBTcGVjaWFsIGNhc2UgbHEuCgoyMDAzLTA2LTEwICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBhcmNodXJlcy5jIChiZmRfbWFjaF9oODMwMHN4bik6IE5ldyBhcmNoaXRlY3R1cmUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogY3B1LWg4MzAwLmMgKGg4MzAwX3NjYW4pOiBDaGVjayBmb3IgJ3N4bicuCgkoaDgzMDBzeG5faW5mb19zdHJ1Y3QpOiBOZXcuCgkoaDgzMDBzeF9pbmZvX3N0cnVjdCk6IExpbmsgdG8gaXQuCgkqIGVsZjMyLWg4MzAwLmMgKGVsZjMyX2g4X21hY2gpOiBBZGQgaDgzMDBzeG4gY2FzZS4KCShlbGYzMl9oOF9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogTGlrZXdpc2UuCgoyMDAzLTA2LTA4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmM6IE1vdmUgVEFSR0VUX0xJVFRMRV9TWU0gYW5kIG90aGVyIG1hY3JvcyB1c2VkIGJ5CgllbGZ4eC10YXJnZXQuaCBzbyB0aGF0IHdlIGNhbiB1c2UgZWxmX2JhY2tlbmRfZ290X2hlYWRlcl9zaXplLgoJKEVMRl9NQUNISU5FX0FMVDEsIEVMRl9NQUNISU5FX0FMVDIpOiBEZWxldGUuCgkoR0xJTktfQ0FMTF9TVFVCX1NJWkUpOiBNb2RpZnkuICBEZWZpbmUgbmV3IGdsaW5rIGNhbGwgc3R1YiBhbmQKCWFzc29jaWF0ZWQgbWFjcm9zLgoJKHBwYzY0X2VsZl9ob3d0b19yYXcgPEdPVF9UUFJFTDE2X0RTLCBHT1RfVFBSRUwxNl9MT19EUz4pOiBDb3JyZWN0Cglkc3RfbWFzay4KCShlbnVtIHBwY19zdHViX3R5cGUpOiBBZGQgcHBjX3N0dWJfbG9uZ19icmFuY2hfcjJvZmYgYW5kCglwcGNfc3R1Yl9wbHRfYnJhbmNoX3Iyb2ZmLgoJKHN0cnVjdCBwcGNfc3R1Yl9oYXNoX2VudHJ5KTogUmVvcmdhbml6ZS4KCShzdHJ1Y3QgcHBjX2xpbmtfaGFzaF90YWJsZSk6IEFkZCBub19tdWx0aV90b2MsIG11bHRpX3RvY19uZWVkZWQsCgl0b2NfY3VyciwgdG9jX29mZiBhbmQgZW1pdF9zdHViX3N5bXMuCgkocHBjNjRfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBJbml0IHRoZW0uCgkocHBjX3N0dWJfbmFtZSk6IENvcnJlY3Qgc3RyaW5nIHNpemUuCgkocHBjNjRfZWxmX2NoZWNrX3JlbG9jcyk6IFNldCBoYXNfZ3BfcmVsb2Mgb24gR09UIGFuZCBUT0MgcmVsb2NzLgoJKHBwYzY0X2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBTZXQgbm9fbXVsdGlfdG9jIGlmIEdPVCBlbnRyaWVzCgl1c2VkLgoJKHBwY190eXBlX29mX3N0dWIpOiBUd2VhayByb290LnR5cGUgdGVzdC4KCShidWlsZF9wbHRfc3R1Yik6IFJlbW92ZSBnbGluayBjb2RlLiAgQWRqdXN0IGZvciBpbnNuIG1hY3JvIGNoYW5nZXMuCgkocHBjX3NpemVfb25lX3N0dWIpOiBIYW5kbGUgcHBjX3N0dWJfbG9uZ19icmFuY2hfcjJvZmYgYW5kCglwcGNfc3R1Yl9wbHRfYnJhbmNoX3Iyb2ZmLgoJKHBwY19idWlsZF9vbmVfc3R1Yik6IExpa2V3aXNlLiAgRml4IHZhciBzaGFkb3dpbmcuICBDb3JyZWN0IGFkZGlzLGFkZGkKCXJhbmdlIHRlc3QuICBVc2UgdG9jX29mZiB0byBjYWxjdWx0ZSByMiB2YWx1ZXMuICBIYW5kbGUgZW1pdF9zdHViX3N5bXMuCgkocHBjNjRfZWxmX3NldHVwX3NlY3Rpb25fbGlzdHMpOiBSZW1vdmUgaHRhYiBjcmVhdG9yIGZsYXZvdXIgdGVzdC4KCUluaXRpYWxpemUgZWxmX2dwIGFuZCB0b2NfY3Vyci4KCShwcGM2NF9lbGZfbmV4dF90b2Nfc2VjdGlvbiwgcHBjNjRfZWxmX3JlaW5pdF90b2MpOiBOZXcgZnVuY3Rpb25zLgoJKHBwYzY0X2VsZl9uZXh0X2lucHV0X3NlY3Rpb24pOiBTZXQgdG9jX29mZi4KCShncm91cF9zZWN0aW9ucyk6IEVuc3VyZSBncm91cHMgaGF2ZSB0aGUgc2FtZSBUT0MuCgkocHBjNjRfZWxmX3NpemVfc3R1YnMpOiBDaGVjayB3aGV0aGVyIHdlIG5lZWQgYSBUT0MgYWRqdXN0aW5nIHN0dWIuCgkocHBjNjRfZWxmX2J1aWxkX3N0dWJzKTogQWRkIGVtaXRfc3R1Yl9zeW1zIHBhcmFtLCBhbmQgc3Rhc2ggaW4gaHRhYi4KCUJ1aWxkIG5ldyBnbGluayBzdHViLgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogSGFuZGxlIG11bHRpcGxlIFRPQ3MuICBGaXggY29tbWVudHMuCgkocHBjNjRfZWxmX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogQWRqdXN0IERUX1BQQzY0X0dMSU5LLgoJKiBlbGY2NC1wcGMuaCAocHBjNjRfZWxmX2J1aWxkX3N0dWJzKTogVXBkYXRlIHByb3RvdHlwZS4KCShwcGM2NF9lbGZfbmV4dF90b2Nfc2VjdGlvbiwgcHBjNjRfZWxmX3JlaW5pdF90b2MpOiBEZWNsYXJlLgoJKiBzZWN0aW9uLmMgKHN0cnVjdCBzZWMpOiBSZW5hbWUgZmxhZzEyIHRvIGhhc19ncF9yZWxvYy4KCShTVERfU0VDVElPTik6IFVwZGF0ZS4KCSogZWNvZmYuYyAoYmZkX2RlYnVnX3NlY3Rpb24pOiBVcGRhdGUgY29tbWVudC4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMy0wNi0wNSAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBlbGZjb2RlLmggKGVsZl9zbHVycF9yZWxvY190YWJsZV9mcm9tX3NlY3Rpb24pOiBEb24ndCBkZXJlZmVyZW5jZQoJTlVMTCBmdW5jdGlvbiBwb2ludGVycy4KCjIwMDMtMDYtMDUgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogc2ltcGxlLmMgKGJmZF9zaW1wbGVfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogQ2FsbAoJX2JmZF9nZW5lcmljX2xpbmtfYWRkX3N5bWJvbHMgaW5zdGVhZCBvZiBiZmRfbGlua19hZGRfc3ltYm9scy4KCjIwMDMtMDYtMDQgIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGNvZmYtdGljNTR4LmM6IFJlbW92ZWQgdGhlIHRpY29mZjBfYmFkX2Zvcm1hdF9ob29rKCkgYW5kCgl0aWNvZmYxX2JhZF9mb3JtYXRfaG9vaygpIGZ1bmN0aW9ucy4gUmVtb3ZlZCB0aGUgY29mZjAgYW5kIGNvZmYxCglzd2FwdGFibGVzLgoJKiBjb2ZmLXRpYzR4LmM6IERpdHRvCgkqIGNvZmZjb2RlLmg6IEFkZGVkIGV4dHJhIGFyZ3VtZW50cyB0byBDUkVBVEVfQklHX0NPRkZfVEFSR0VUX1ZFQwoJYW5kIENSRUFURV9MSVRUTEVfQ09GRl9UQVJHRVRfVkVDLiBDcmVhdGVkIHRoZSBtYWNybwoJQ1JFQVRFX0JJR0hEUl9DT0ZGX1RBUkdFVF9WRUMuIENyZWF0ZWQgdGhlIHRpY29mZjBfYmFkX2Zvcm1hdF9ob29rKCksCgl0aWNvZmYxX2JhZF9mb3JtYXRfaG9vaygpIGZ1bmN0aW9ucy4gQ3JlYXRlZCB0aGUgY29mZjAgYW5kIGNvZmYxCglzd2FwIHRhYmxlcy4KCSogY29mZi10aWM0eC5jOiBBZG9wdGVkIG5ldyBDUkVBVEVfeHh4X0NPRkZfVEFSR0VUX1ZFQyBtYWNyb3MuCgkqIGNvZmYtYTI5ay5jOiBBcHBlbmQgQ09GRl9TV0FQX1RBQkxFIGFyZ3VtZW50CgkqIGNvZmYtYXBvbGxvLmM6IERpdHRvCgkqIGNvZmYtYXJtLmM6IERpdHRvCgkqIGNvZmYtaDgzMDAuYzogRGl0dG8KCSogY29mZi1oODUwMC5jOiBEaXR0bwoJKiBjb2ZmLWk5NjAuYzogRGl0dG8KCSogY29mZi1tNjhrLmM6IERpdHRvCgkqIGNvZmYtbTg4ay5jOiBEaXR0bwoJKiBjb2ZmLW1jb3JlLmM6IERpdHRvCgkqIGNvZmYtc2guYzogRGl0dG8KCSogY29mZi1zcGFyYy5jOiBEaXR0bwoJKiBjb2ZmLXRpYzgwLmM6IERpdHRvCgkqIGNvZmYtd2UzMmsuYzogRGl0dG8KCSogY29mZi16OGsuYzogRGl0dG8KCSogY29mZi13NjUuYzogRGl0dG8KCjIwMDMtMDYtMDQgIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGNvZmYtdGljNHguYyAodGljb2ZmMF9zd2FwX3RhYmxlLCB0aWNvZmYxX3N3YXBfdGFibGUpOiBGaXhlZAoJaW5pdGlhbGl6YXRpb24gYnVnCgoyMDAzLTA2LTAzICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZi5jIChfYmZkX2VsZl9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogSGFuZGxlIFBUX0dOVV9TVEFDSy4KCShiZmRfc2VjdGlvbl9mcm9tX3BoZHIpOiBMaWtld2lzZS4KCShtYXBfc2VjdGlvbnNfdG9fc2VnbWVudHMpOiBDcmVhdGUgUFRfR05VX1NUQUNLIHNlZ21lbnQgaGVhZGVyLgoJKGdldF9wcm9ncmFtX2hlYWRlcl9zaXplKTogQ291bnQgd2l0aCBQVF9HTlVfU1RBQ0suCgkqIGVsZi1iZmQuaCAoc3RydWN0IGVsZl9vYmpfdGRhdGEpOiBBZGQgc3RhY2tfZmxhZ3MuCgkqIGVsZmxpbmsuaCAoYmZkX2VsZk5OX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFNldCBzdGFja19mbGFncy4KCjIwMDMtMDYtMDMgIEguSi4gTHUgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmbGluay5oIChlbGZfbGlua19pbnB1dF9iZmQpOiBDYWxsIGxpbmtlciBlcnJvcl9oYW5kbGVyCglmb3IgZGlzY2FyZGVkIGRlZmluaXRpb25zLgoKMjAwMy0wNi0wMyAgRWxpYXMgQXRoYW5hc29wb3Vsb3MgIDxlbGF0aGFuQHBoeXMudW9hLmdyPgoKCSogc3ltcy5jIChkZWNvZGVfc2VjdGlvbl90eXBlKTogUmV0dXJuICduJyBpZiBzZWN0aW9uIGZsYWdzIGFyZQoJU0VDX0hBU19DT05URU5UUyAmJiBTRUNfUkVBRE9OTFkuCgoyMDAzLTA2LTAzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmMzItdjg1MC5jICh2ODUwX2VsZl9ob3d0b190KTogUmVuYW1lIFJfVjg1MF8zMnRvCglSX1Y4NTBfQUJTMzIuICBBZGQgZW50cnkgZm9yIFJfVjg1MF9SRUwzMi4KCSh2ODUwX2VsZl9yZWxvY19tYXApOiBMaWtld2lzZS4KCSh2ODUwX2VsZl9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4KCSh2ODUwX2VsZl9wZXJmb3JtX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCSh2ODUwX2VsZl9maW5hbF9saW5rX3JlbG9jYXRlKTogTGlrZXdpc2UuICBJbmNsdWRlIGNvbXB1dGF0aW9uCgl0byBtYWtlIFJfVjg1MF9SRWwzMiBwYy1yZWxhdGl2ZS4KCjIwMDMtMDYtMDMgIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCSogZWxmMzItc2guYyAoc2hfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IENyZWF0ZSAuaW50ZXJwIHNlY3Rpb24KCWFuZCBEVF9ERUJVRyBkeW5hbWljIHRhZyBldmVuIGZvciBwb3NpdGlvbiBpbmRlcGVuZGVudCBleGVjdXRhYmxlcy4KCSogZWxmNjQtc2g2NC5jIChzaDY0X2VsZjY0X3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXplLgoKMjAwMy0wNi0wMiAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBjb25maWcuYmZkOiBNb3ZlIG9ic29sZXRlIGVudHJpZXMgb3V0IG9mIHRoZSByYW5nZSBvZiB0aGUKCXRhcmdtYXRjaCBzZWQgc2NyaXB0LgoKMjAwMy0wNi0wMiAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBjb25maWcuYmZkIChtaXBzKi1kZWMtYnNkKiwgbWlwcyotKi1wZSopOiBNYXJrIGFzIG9ic29sZXRlLgoKMjAwMy0wNS0zMSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1wcGMuYyAoYWxsb2NhdGVfZHlucmVsb2NzKTogVXNlIHNpbmdsZSBzbG90IGZvciBmaXJzdCA4MTkyCglwbHQgZW50cmllcywgbm90IGp1c3QgODE5MS4KCjIwMDMtMDUtMzAgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX2Rpc2NhcmRfaW5mbyk6IENvcnJlY3QgbG9vcCBpbmRleC4KCVJlcG9ydGVkIGJ5IEtlbiBGYWljemFrIDxrZmFpY3pha0BTQU5EVklORS5jb20+LgoKMjAwMy0wNS0zMCAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQHJlZGhhdC5jb20+CgkgICAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IFVzZSAhaW5mby0+ZXhlY3V0YWJsZQoJaW5zdGVhZCBvZiBpbmZvLT5zaGFyZWQgd2hlcmUgYXBwcm9wcmlhdGUuCgkoYmZkX2VsZk5OX3NpemVfZHluYW1pY19zZWN0aW9ucywgZWxmX2xpbmtfb3V0cHV0X2V4dHN5bSk6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX2NyZWF0ZV9nb3Rfc2VjdGlvbik6IExpa2V3aXNlLgoJKF9iZmRfZWxmX2xpbmtfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShfYmZkX2VsZl9saW5rX2Fzc2lnbl9zeW1fdmVyc2lvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X3NpemVfZHluYW1pY19zZWN0aW9ucyk6IENyZWF0ZSAuaW50ZXJwIHNlY3Rpb24KCWFuZCBEVF9ERUJVRyBkeW5hbWljIHRhZyBldmVuIGZvciBwb3NpdGlvbiBpbmRlcGVuZGVudCBleGVjdXRhYmxlcy4KCSogZWxmMzItcHBjLmMgKHBwY19lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfc2l6ZV9keW5hbWljX3NlY3Rpb25zOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnM6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9zMzkwX3NpemVfZHluYW1pY19zZWN0aW9uczogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfc2l6ZV9keW5hbWljX3NlY3Rpb25zOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3NpemVfZHluYW1pY19zZWN0aW9uczogTGlrZXdpc2UuCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX3NpemVfZHluYW1pY19zZWN0aW9uczogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3NpemVfZHluYW1pY19zZWN0aW9uczogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3NpemVfZHluYW1pY19zZWN0aW9uczogTGlrZXdpc2UuCgoyMDAzLTA1LTMwICBLcmlzIFdhcmtlbnRpbiA8a2V3YXJrZW5AcW54LmNvbT4KCgkqIGVsZi5jIChlbGZjb3JlX2dyb2tfbnRvX3N0YXR1cyk6IE9ubHkgc2V0IGx3cGlkIGZvciB0aGUgYWN0aXZlIG9yCglzaWduYWxsZWQgdGhyZWFkLgoJKGVsZmNvcmVfZ3Jva19udG9fZ3JlZ3MpOiBPbmx5IG1ha2UgLnJlZyBzZWN0aW9uIGZvciB0aGUgYWN0aXZlIHRocmVhZC4KCjIwMDMtMDUtMjkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwZWYuYzogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCVRpZHkgdXAgZm9ybWF0dGluZy4KCSogTWFrZWZpbGUuYW06IEFkZCBkZXBlbmRlbmN5IG9uIHNhZmUtY3R5cGUuaC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAzLTA1LTI5ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmeHgtbWlwcy5jOiBEb24ndCBmb3JjZSBzeW1ib2xzIGxvY2FsIHVuY29uZGl0aW9uYWxseS4KCjIwMDMtMDUtMjggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IERlbGV0ZSBib2d1cwoJdW5kZWZpbmVkX3N5bWJvbCBjYWxsLgoKMjAwMy0wNS0yNyAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9oYXNoX3NvcnRfZGF0YSk6IEZpeCBmb3JtYXR0dGluZy4KCShtaXBzX2VsZl9saW5rX2hhc2hfdGFibGUpOiBMaWtld2lzZS4KCjIwMDMtMDUtMjIgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGY2NC1taXBzLmMgKGVsZl9taXBzX2dudV9yZWwxNl9zMik6IEFkZCBpbnRlcm5hbGx5IHVzZWQKCVJfTUlQU19HTlVfUkVMMTZfUzIgc3VwcG9ydC4KCShiZmRfZWxmNjRfYmZkX3JlbG9jX3R5cGVfbG9va3VwKTogVXNlIGl0LgoJKG1pcHNfZWxmNjRfcnR5cGVfdG9faG93dG8pOiBVc2UgaXQuCgkqIGVsZm4zMi1taXBzLmMgKGVsZl9taXBzX2dudV9yZWwxNl9zMik6IEFkZCBpbnRlcm5hbGx5IHVzZWQKCVJfTUlQU19HTlVfUkVMMTZfUzIgc3VwcG9ydC4KCShiZmRfZWxmMzJfYmZkX3JlbG9jX3R5cGVfbG9va3VwKTogVXNlIGl0LgoJKG1pcHNfZWxmX24zMl9ydHlwZV90b19ob3d0byk6IFVzZSBpdC4KCjIwMDMtMDUtMjEgIFN0dWFydCBGLiBEb3duaW5nICA8c2Rvd25pbmdAZmFtZS5jb20+CgoJKiBzb20uaDogRGVmaW5lIFBBXzJfMCBiZWZvcmUgaW5jbHVkaW5nIGEub3V0LmgKCjIwMDMtMDUtMDcgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoJICAgIEFsZXhhbmRyZSBPbGl2YSAgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogQWRqdXN0CglwaWMgdGVzdHMsIGNoYW5nZSB0byB3YXJuaW5nLgoJKF9iZmRfbWlwc19lbGZfZmluYWxfbGluayk6IFJlbW92ZSBFRl9NSVBTX0NQSUMgZmxhZyBzZXR0aW5nLgoKMjAwMy0wNS0yMSAgTWFyY3VzIENvbXN0ZWR0ICA8bWFyY3VzQG1jLnBwLnNlPgoKCSogY29uZmlnLmJmZDogQ2hlY2sgZm9yIGEgdGFyZ2V0IHRyaXBsZXQgb2Ygc2hsLS4uLi1uZXRic2RlbGYgYXMKCXdlbGwgYXMgc2hsZS0uLi4tbmV0YnNkZWxmLiAgUmVtb3ZlIGR1cGxpY2F0ZSBlbnRyeS4KCjIwMDMtMDUtMjEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbGYzMi14c3Rvcm15MTYuYyAoeHN0b3JteTE2X2VsZl9ob3d0b190YWJsZSk6IEZpeCBkc3RfbWFzawoJZm9yIFhfU1RPUk1ZMTZfUkVMXzEyIHJlbG9jLgoKCSogZWxmLmMgKGJmZF9lbGZfZ2V0X25lZWRlZF9saXN0KTogVXNlIGlzX2VsZl9oYXNoX3RhYmxlIHRvIGNoZWNrCgl0aGUgdHlwZSBvZiB0aGUgaGFzaCB0YWJsZSBpbiB0aGUgYmZkX2xpbmtfaW5mbyBzdHJ1Y3R1cmUuCgkoYmZkX2VsZl9nZXRfcnVucGF0aF9saXN0KTogTGlrZXdpc2UuCgoyMDAzLTA1LTE5ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgoKCSogZWxmLmMgKGJmZF9lbGZfYmZkX2Zyb21fcmVtb3RlX21lbW9yeSk6IE5ldyBmdW5jdGlvbi4KCSogYmZkLWluLmg6IERlY2xhcmUgaXQuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZWQuCgkqIGVsZmNvZGUuaCAoTkFNRShfYmZkX2VsZixiZmRfZnJvbV9yZW1vdGVfbWVtb3J5KSk6IE5ldyBmdW5jdGlvbi4KCSogZWxmLWJmZC5oIChzdHJ1Y3QgZWxmX2JhY2tlbmRfZGF0YSk6IE5ldyBmdW5jdGlvbiBwb2ludGVyIG1lbWJlcgoJZWxmX2JhY2tlbmRfYmZkX2Zyb21fcmVtb3RlX21lbW9yeS4KCShfYmZkX2VsZjMyX2JmZF9mcm9tX3JlbW90ZV9tZW1vcnksIF9iZmRfZWxmNjRfYmZkX2Zyb21fcmVtb3RlX21lbW9yeSk6CglEZWNsYXJlIHRoZW0uCgkqIGVsZnh4LXRhcmdldC5oIChlbGZfYmFja2VuZF9iZmRfZnJvbV9yZW1vdGVfbWVtb3J5KTogTmV3IG1hY3JvLgoJKGVsZk5OX2JlZCk6IEFkZCB0aGF0IHRvIHRoZSBpbml0aWFsaXplci4KCjIwMDMtMDUtMTUgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CgoJKiBlbGYuYyAoZWxmY29yZV9ncm9rX25vdGUpOiBHcm9rIE5UX0FVWFYgbm90ZSwgbWFrZSAiLmF1eHYiIHNlY3Rpb24uCgoyMDAzLTA1LTIwICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfb3V0cHV0X2V4dHN5bSk6IE9ubHkgaXNzdWUgZXJyb3IgYWJvdXQgIT0KCVNUVl9ERUZBVUxUIHN5bWJvbHMgaWYgdGhleSBhcmUgYmZkX2xpbmtfaGFzaF91bmRlZmluZWQuCgoyMDAzLTA1LTIwICBILkouIEx1IDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfbWVyZ2Vfc3ltYm9sKTogQ2hlY2sgRUxGX0xJTktfRFlOQU1JQ19ERUYKCXdoZW4gcmVtb3ZpbmcgdGhlIG9sZCBkZWZpbml0aW9uIGZvciBzeW1ib2xzIHdpdGggbm9uLWRlZmF1bHQKCXZpc2liaWxpdHkuCgoyMDAzLTA1LTE4ICBKYXNvbiBFY2toYXJkdCAgPGpsZUByaWNlLmVkdT4KCgkqIGVsZjMyLWk4NjAuYyAoZWxmMzJfaTg2MF9yZWxvY2F0ZV9oaWdoYWRqKTogU2ltcGxpZnkgY2FsY3VsYXRpb24uCgoyMDAzLTA1LTE3ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogZWxmMzItbTY4ay5jIChlbGZfbTY4a19jaGVja19yZWxvY3MpOiBDYWNoZSByZWxvYyBzZWN0aW9uIGluCgllbGZfc2VjdGlvbl9kYXRhIGR1cmluZyBwcm9jZXNzaW5nIG9mIHBjLXJlbGF0aXZlIGFuZCBhYnNvbHV0ZQoJcmVsb2NhdGlvbnMuCgkoZWxmX202OGtfcmVsb2NhdGVfc2VjdGlvbik6IFVzZSB0aGUgY2FjaGVkIHJlbG9jIHNlY3Rpb24gaW5zdGVhZAoJb2YgY29tcHV0aW5nIGl0IGFnYWluLiAgRml4IGhhbmRsaW5nIG9mIHZpc2liaWxpdHkuICBEb24ndCBtb2RpZnkKCWFkZGVuZCB3aGVuIGNvcHlpbmcgb3ZlciBhIHJlbG9jYXRpb24gaW50byB0aGUgb3V0cHV0LgoKMjAwMy0wNS0xNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogVXNlIFNZTUJPTF9DQUxMU19MT0NBTAoJdG8gdHJpbSBwbHQgZW50cmllcy4gIE1vdmUgdW5kZWZ3ZWFrIG5vbi1kZWZhdWx0IHZpc2liaWxpdHkgdGVzdC4uCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogLi5mcm9tIGhlcmUuCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IERvbid0IHRlc3QKCWR5bmFtaWNfc2VjdGlvbnNfY3JlYXRlZCBoZXJlLiAgVXBkYXRlIGNvbW1lbnQuICBNb3ZlIHVuZGVmd2VhawoJbm9uLWRlZmF1bHQgdmlzaWJpbGl0eSB0ZXN0Li4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiAuLmZyb20gaGVyZS4gIEZpeCBjb21tZW50LgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IFVzZSBTWU1CT0xfQ0FMTFNfTE9DQUwKCXRvIHRyaW0gcGx0IGVudHJpZXMuICBNb3ZlIHVuZGVmd2VhayBub24tZGVmYXVsdCB2aXNpYmlsaXR5IHRlc3QuLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IC4uZnJvbSBoZXJlLiAgRml4IGNvbW1lbnQuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfb3V0cHV0X2V4dHN5bSk6IENvbXBhcmUgRUxGX1NUX1ZJU0lCSUxJVFkgd2l0aAoJU1RWX0RFRkFVTFQgcmF0aGVyIHRoYW4gY29tcGFyaW5nIHdpdGggemVyby4KCSogZWxmbGluay5jIChfYmZkX2VsZl9tZXJnZV9zeW1ib2wpOiBMaWtld2lzZS4KCShfYmZkX2VsZl9maXhfc3ltYm9sX2ZsYWdzKTogTGlrZXdpc2UuICBGb3JtYXQgY29tbWVudC4KCjIwMDMtMDUtMTcgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBiZmQuYyAoX2JmZF9nZXRfZ3BfdmFsdWUpOiBQcmV2ZW50IGlsbGVnYWwgYWNjZXNzIGZvciBhYmZkIG51bGwKCXBvaW50ZXJzLgoJKF9iZmRfc2V0X2dwX3ZhbHVlKTogTGlrZXdpc2UuCgoyMDAzLTA1LTE2ICBNaWNoYWVsIFNueWRlciAgPG1zbnlkZXJAcmVkaGF0LmNvbT4KCUZyb20gQmVybmQgU2NobWlkdCAgPGJlcm5kc0ByZWRoYXQuY29tPgoJKiBhcmNodXJlcy5jIChiZmRfbWFjaF9oODMwMHN4KTogTmV3LgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGNwdS1oODMwMC5jIChoODMwMF9zY2FuKSk6IEFkZCBzdXBwb3J0IGZvciBoODMwMHN4LgoJKGg4MzAwc3hfaW5mb19zdHJ1Y3QpOiBOZXcuCgkoaDgzMDBzX2luZm9fc3RydWN0KTogTGluayB0byBpdC4KCSogZWxmMzItaDgzMDAuYyAoZWxmMzJfaDhfbWFjaCk6IEFkZCBzdXBwb3J0IGZvciBoODMwMHN4LgoJKGVsZjMyX2g4X2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBMaWtld2lzZS4KCShlbGYzMl9oOF9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAzLTA1LTE2ICBLZWxsZXkgQ29vayAgPGtlbGxleWNvb2tAd2lkZW9wZW53ZXN0LmNvbT4KCgkqIGNvbmZpZy5iZmQ6IEFjY2VwdCBpWzMtN104NiB2YXJpYW50cy4KCSogY29uZmlndXJlLmhvc3Q6IExpa2V3aXNlLgoJKiBjb25maWd1cmUuaW46IExpa2V3aXNlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAzLTA1LTE1ICBILkouIEx1IDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfZml4X3N5bWJvbF9mbGFncyk6IEFsc28gaGlkZSBwcm90ZWN0ZWQKCXN5bWJvbC4KCjIwMDMtMDUtMTUgIEguSi4gTHUgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmbGluay5oIChlbGZfbGlua19jaGVja192ZXJzaW9uZWRfc3ltYm9sKTogQWxzbyBhbGxvdwoJdGhlIGJhc2UgdmVyc2lvbi4KCjIwMDMtMDUtMTUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgkgICAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGYzMi1pMzg2LmMgKGFsbG9jYXRlX2R5bnJlbG9jcyk6IFVzZSBTWU1CT0xfQ0FMTFNfTE9DQUwuCgkoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYyAoYWxsb2NhdGVfZHlucmVsb2NzKTogTGlrZXdpc2UuCgkocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChhbGxvY2F0ZV9keW5yZWxvY3MpOiBMaWtld2lzZS4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMy0wNS0xNSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZjMyLW1pcHMuYyAoZ3ByZWwzMl93aXRoX2dwKTogUmVtb3ZlIHVzZWxlc3MgTjY0IEFCSSBjYXNlLgoKMjAwMy0wNS0xMyAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBlbGYzMi1tNjhoYzF4LmMgKF9iZmRfbTY4aGMxMV9lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IENoZWNrIGZvcgoJcHJvY2Vzc29yIGNhcGFiaWxpdHksIGFsbG93IG1lcmdlIG9mIEhDMTIgYW5kIEhDUzEyIGluIHNvbWUgY2FzZXMuCgkobTY4aGMxMV9lbGZfaGFzaF90YWJsZV9jcmVhdGUpOiBVc2UgYmZkX21hbGxvYyBpbnN0ZWFkIG9mIGJmZF96YWxsb2MuCgkqIGNwdS1tNjhoYzEyLmMgKGJmZF9tNjhoYzEyc19hcmNoKTogTmV3IHN0cnVjdC4KCShiZmRfbTY4aGMxMl9hcmNoKTogTGluayBpdC4KCShzY2FuX21hY2gpOiBOZXcgZnVuY3Rpb24uCgoyMDAzLTA1LTEzICBBbmRyZXcgSGFsZXkgIDxhcGhAcmVkaGF0LmNvbT4KCgkqIGVsZi5jIChiZmRfZWxmX2hhc2gpOiBNYXNrIGxvd2VyIDMyIGJpdHMgb2YgaGFzaC4KCjIwMDMtMDUtMTMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgkgICAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmLWJmZC5oIChTWU1CT0xfUkVGRVJFTkNFU19MT0NBTCwgU1lNQk9MX0NBTExTX0xPQ0FMKTogTW92ZSBmcm9tCgllbGYzMi1wcGMuYy4gIEFkZCBFTEZfTElOS19GT1JDRURfTE9DQUwgY2hlY2suCgkqIGVsZjMyLXBwYy5jOiAoU1lNQk9MX1JFRkVSRU5DRVNfTE9DQUwsIFNZTUJPTF9DQUxMU19MT0NBTCk6IERlbGV0ZS4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBVc2UgU1lNQk9MX1JFRkVSRU5DRVNfTE9DQUwgZm9yIGR5bnJlbG9jIGNoZWNrLgoJKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYyAoYWxsb2NhdGVfZHlucmVsb2NzKTogTGlrZXdpc2UuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4gIFVzZSBmb3IgLmdvdCByZWxvY3MgdG9vLgoJKHBwYzY0X2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBEb24ndCBhc3N1bWUgc3ltYm9scyB3aXRoIC5wbHQKCXJlbG9jcyBuZWVkIG5vIG90aGVyIHR5cGVzLgoJKiBlbGYzMi1pMzg2LmMgKGFsbG9jYXRlX2R5bnJlbG9jcyk6IFVzZSBTWU1CT0xfUkVGRVJFTkNFU19MT0NBTCBmb3IKCWR5bnJlbG9jIGNoZWNrLgoJKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4gIFVzZSBmb3IgLmdvdCByZWxvY3MgdG9vLgoJKGVsZl9pMzg2X2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IFVzZSBTWU1CT0xfUkVGRVJFTkNFU19MT0NBTCBmb3IKCS5nb3QgcmVsb2NzLgoKMjAwMy0wNS0xMyAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogRm9yIHdlYWsgc3ltYm9scywKCWNvcHkgRUxGX0xJTktfTk9OX0dPVF9SRUYgZnJvbSB3ZWFrZGVmLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IEZvciB1bmRlZiB3ZWFrIHN5bXMgd2l0aCBub24tZGVmYXVsdAoJdmlzaWJpbGl0eSwgYSkgZG9uJ3QgYWxsb2NhdGUgcGx0IGVudHJpZXMsIGIpIGRvbid0IGFsbG9jYXRlCgkuZ290IHJlbG9jcywgYykgZGlzY2FyZCBkeW4gcmVsIHNwYWNlCgkoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBkKSBkb24ndCBnZW5lcmF0ZSAuZ290IHJlbG9jcywgZSkKCWRvbid0IGdlbmVyYXRlIGR5bmFtaWMgcmVsb2NzLgoJKHNoX2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IERvbid0IGNvcHkgRUxGX0xJTktfTk9OX0dPVF9SRUYKCWZvciB3ZWFrZGVmcyB3aGVuIHN5bWJvbCBhbHJlYWR5IGFkanVzdGVkLgoKMjAwMy0wNS0xMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXhzdG9ybXkxNi5jICh4c3Rvcm15MTZfZWxmX2hvd3RvX3RhYmxlKTogdXNlICdiaXRmaWVsZCcKCW92ZXJmbG93IGRldGVjdGlvbiBmb3IgUl9YU1RPUk1ZMTZfMTYgcmVsb2MuCgoyMDAzLTA1LTEyICBQYXVsIENsYXJrZSAgPHBhdWxjQHNlbmV0LmNvbS5hdT4KCgkqIGVsZjMyLWg4MzAwLmM6IEZpeCB0eXBvIGluIG5hbWUgb2YgUl9IOF9ESVI4IHJlbG9jLgoKMjAwMy0wNS0xMSAgSmFzb24gRWNraGFyZHQgIDxqbGVAcmljZS5lZHU+CgoJKiBlbGYzMi1pODYwLmMgKGVsZjMyX2k4NjBfcmVsb2NhdGVfaGlnaGFkaik6IFByb3Blcmx5CglhZGp1c3QgdXBwZXIgYml0cy4KCShlbGYzMl9pODYwX3JlbG9jYXRlX3NwbGl0bik6IE9idGFpbiB1cHBlciA1IGJpdHMgZnJvbSB0aGUKCXByb3BlciBwbGFjZS4KCShlbGYzMl9pODYwX3JlbG9jYXRlX3BjMTYpOiBPYnRhaW4gdXBwZXIgNSBiaXRzIGZyb20gdGhlCglwcm9wZXIgcGxhY2UuCgoyMDAzLTA1LTExICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogZWxmMzItbTY4ay5jIChlbGZfbTY4a19yZWxvY2F0ZV9zZWN0aW9uKTogUmVwbGFjZSB1Z2x5Cgljb21wbGljYXRlZCB0ZXN0cyBmb3IgdW5yZXNvbHZhYmxlIHJlbG9jcyB3aXRoIGEgc2ltcGxlIGRpcmVjdAoJc2NoZW1lIHVzaW5nICJ1bnJlc29sdmVkX3JlbG9jIiB2YXIuICBSZXBvcnQgc29tZSBkZXRhaWwgb24KCWJmZF9yZWxvY19vdXRvZnJhbmdlIGFuZCBzaW1pbGFyIGVycm9ycy4KCjIwMDMtMDUtMDkgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBlbGYzMi1zMzkwLmMgKGFsbG9jYXRlX2R5bnJlbG9jcywgZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6CglGaXggV0lMTF9DQUxMX0ZJTklTSF9EWU5BTUlDX1NZTUJPTCBjYWxsLgoJKFdJTExfQ0FMTF9GSU5JU0hfRFlOQU1JQ19TWU1CT0wpOiBQYXNzIFNIQVJFRCBpbnN0ZWFkIG9mIElORk8uCgkqIGVsZjY0LXMzOTAuYzogTGlrZXdpc2UuCgoyMDAzLTA1LTA5ICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogZWxmMzItczM5MC5jIChFTElNSU5BVEVfQ09QWV9SRUxPQ1MpOiBEZWZpbmUgYXMgb25lLgoJKGVsZl9zMzkwX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IEZvciB3ZWFrIHN5bWJvbHMsIGNvcHkKCUVMRl9MSU5LX05PTl9HT1RfUkVGIGZyb20gd2Vha2RlZi4KCShlbGZfczM5MF9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IFRlc3Qgd2hldGhlciB0aGUgd2Vha2RlZiBzeW0gaGFzCglhbHJlYWR5IGJlZW4gYWRqdXN0ZWQgYmVmb3JlIHRyZWF0aW5nIGl0IHNwZWNpYWxseS4KCSogZWw2NC1zMzkwLmM6IExpa3dpc2UuCgoyMDAzLTA1LTA5ICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogZWxmMzItczM5MC5jIChhbGxvY2F0ZV9keW5yZWxvY3MpOiBGb3IgdW5kZWYgd2VhayBzeW1zIHdpdGgKCW5vbi1kZWZhdWx0IHZpc2liaWxpdHksIGEpIGRvbid0IG1ha2UgdGhlbSBkeW5hbWljLCBiKSBkaXNjYXJkCglzcGFjZSBmb3IgZHluYW1pYyByZWxvY3MuCgkoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IEluaXRpYWxpemUgdGhlIEdPVCBlbnRyaWVzIGFuZCBza2lwCglSXzM5MF97OCwxNiwzMn0vUl8zOTBfUEN7MTYsMTZEQkwsMzJEQkwsMzJ9IGZvciB3ZWFrIHVuZGVmaW5lZAoJc3ltYm9scyB3aXRoIG5vbi1kZWZhdWx0IHZpc2liaWxpdHkuCgkqIGVsZjY0LXMzOTAuYzogTGlrZXdpc2UuCgoyMDAzLTA1LTA5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY3B1LWFybS5jIChhcm1fY2hlY2tfbm90ZSk6IFdhcm5pbmcgZml4LgoJKiBlbGYzMi1pcTIwMDAuYyAoaXEyMDAwX2VsZl9jaGVja19yZWxvY3MpOiBXYXJuaW5nIGZpeGVzLiAgQXJyYW5nZQoJdG8ga2VlcCByZWxvY3MgaWYgZWRpdGVkLgoJKGlxMjAwMF9lbGZfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IFJldHVybiBUUlVFLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfcmVsYXhfc2VjdGlvbik6IFVzZSBFTEZOTl9SX1NZTSwgbm90CglFTEY2NF9SX1NZTS4KCShlbGZOTl9pYTY0X3JlbGF4X2xkeG1vdik6IFdhcm5pbmcgZml4LgoJKiB4dGVuc2EtaXNhLmMgKHh0ZW5zYV9hZGRfaXNhKTogV2FybmluZyBmaXguCgkqIHh0ZW5zYS1tb2R1bGVzLmMgKGdldF9udW1fb3Bjb2Rlcyk6IFdhcm5pbmcgZml4LgoKMjAwMy0wNS0wOSAgQW5kcmV5IFBldHJvdiA8cGV0cm92QG5ldGJzZC5vcmc+CgoJKiBlbGYuYyAoZWxmX2Zha2Vfc2VjdGlvbnMpOiBVc2UgY29ycmVjdCBjYXN0IGZvciBzaF9uYW1lLgoKMjAwMy0wNS0wOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfbGlua19jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IE1vdmUgZnJvbQoJZWxmbGluay5oLiAgUmVwbGFjZSBMT0dfRklMRV9BTElHTiB3aXRoIGJlZC0+cy0+bG9nX2ZpbGVfYWxpZ24uCgkoX2JmZF9lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBVc2UgYmVkLT5zLT5sb2dfZmlsZV9hbGlnbi4KCShiZmRfZWxmX3JlY29yZF9saW5rX2Fzc2lnbm1lbnQpOiBNb3ZlIGZyb20gZWxmbGluay5oLgoJKF9iZmRfZWxmX21lcmdlX3N5bWJvbCk6IExpa2V3aXNlLgoJKF9iZmRfZWxmX2FkZF9kZWZhdWx0X3N5bWJvbCk6IExpa2V3aXNlLgoJKF9iZmRfZWxmX2V4cG9ydF9zeW1ib2wpOiBMaWtld2lzZS4KCShfYmZkX2VsZl9saW5rX2ZpbmRfdmVyc2lvbl9kZXBlbmRlbmNpZXMpOiBMaWtld2lzZS4KCShfYmZkX2VsZl9saW5rX2Fzc2lnbl9zeW1fdmVyc2lvbik6IExpa2V3aXNlLgoJKF9iZmRfZWxmX2xpbmtfcmVhZF9yZWxvY3MpOiBMaWtld2lzZS4KCShfYmZkX2VsZl9saW5rX3NpemVfcmVsb2Nfc2VjdGlvbik6IExpa2V3aXNlLgoJKF9iZmRfZWxmX2ZpeF9zeW1ib2xfZmxhZ3MpOiBMaWtld2lzZS4KCShfYmZkX2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCShfYmZkX2VsZl9saW5rX3NlY19tZXJnZV9zeW1zKTogTGlrZXdpc2UuCgkoZWxmX2xpbmtfcmVhZF9yZWxvY3NfZnJvbV9zZWN0aW9uKTogTGlrZXdpc2UuICBVc2UgYmVkLT5zLT5zaXplb2ZfcmVsCglhbmQgYmVkLT5zLT5zaXplb2ZfcmVsYS4KCShfYmZkX2VsZl9saW5rX291dHB1dF9yZWxvY3MpOiBMaWtld2lzZS4KCSogZWxmLWJmZC5oIChzdHJ1Y3QgZWxmX3NpemVfaW5mbyk6IFJlbmFtZSBmaWxlX2FsaWduIHRvCglsb2dfZmlsZV9hbGlnbi4KCShzdHJ1Y3QgZWxmX2luZm9fZmFpbGVkKTogTW92ZSBmcm9tIGVsZmxpbmsuaC4KCShzdHJ1Y3QgZWxmX2Fzc2lnbl9zeW1fdmVyc2lvbl9pbmZvKTogTGlrZXdpc2UuCgkoc3RydWN0IGVsZl9maW5kX3ZlcmRlcF9pbmZvKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBEZWxldGUgZHVwbGljYXRlIGRlY2xhcmF0aW9uLgoJKF9iZmRfZWxmX21lcmdlX3N5bWJvbCwgX2JmZF9lbGZfYWRkX2RlZmF1bHRfc3ltYm9sLAoJX2JmZF9lbGZfZXhwb3J0X3N5bWJvbCwgX2JmZF9lbGZfbGlua19maW5kX3ZlcnNpb25fZGVwZW5kZW5jaWVzLAoJX2JmZF9lbGZfbGlua19hc3NpZ25fc3ltX3ZlcnNpb24sCglfYmZkX2VsZl9saW5rX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zLCBfYmZkX2VsZl9saW5rX3JlYWRfcmVsb2NzLAoJX2JmZF9lbGZfbGlua19zaXplX3JlbG9jX3NlY3Rpb24sIF9iZmRfZWxmX2xpbmtfb3V0cHV0X3JlbG9jcywKCV9iZmRfZWxmX2ZpeF9zeW1ib2xfZmxhZ3MsIF9iZmRfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCwKCV9iZmRfZWxmX2xpbmtfc2VjX21lcmdlX3N5bXMpOiBEZWNsYXJlLgoJKGJmZF9lbGYzMl9saW5rX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogRG9uJ3QgZGVjbGFyZS4KCShfYmZkX2VsZjMyX2xpbmtfcmVhZF9yZWxvY3MpOiBMaWtld2lzZS4KCShiZmRfZWxmNjRfbGlua19jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKF9iZmRfZWxmNjRfbGlua19yZWFkX3JlbG9jcyk6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmg6IE1vdmUgbG90cyBvJyBzdHVmZiBlbHNld2hlcmUuCgkqIGJmZC1pbi5oIChiZmRfZWxmMzJfcmVjb3JkX2xpbmtfYXNzaWdubWVudCk6IERvbid0IGRlY2xhcmUuCgkoYmZkX2VsZjY0X3JlY29yZF9saW5rX2Fzc2lnbm1lbnQpOiBMaWtld2lzZS4KCShiZmRfZWxmX3JlY29yZF9saW5rX2Fzc2lnbm1lbnQpOiBEZWNsYXJlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGVsZmNvZGUuaCAoZWxmX2xpbmtfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBEb24ndCBkZWNsYXJlLgoJKE5BTUUoX2JmZF9lbGYsc2l6ZV9pbmZvKSk6IEFkanVzdCBmb3IgbG9nX2ZpbGVfYWxpZ24uCgkqIGVsZi5jIChfYmZkX2VsZl9pbml0X3JlbG9jX3NoZHIpOiBBZGp1c3QgZm9yIGJlZC0+cy0+bG9nX2ZpbGVfYWxpZ24uCgkoYXNzaWduX2ZpbGVfcG9zaXRpb25zX2Zvcl9zZWdtZW50cyk6IExpa2V3aXNlLgoJKGFzc2lnbl9maWxlX3Bvc2l0aW9uc19leGNlcHRfcmVsb2NzKTogTGlrZXdpc2UuCgkoc3dhcF9vdXRfc3ltcywgZWxmY29yZV93cml0ZV9ub3RlKTogTGlrZXdpc2UuCgkqIGVsZi1tMTAyMDAuYzogQWRqdXN0IGZvciBjaGFuZ2VkIGZ1bmN0aW9uIG5hbWVzLgoJKiBlbGYtbTEwMzAwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1hcm0uaDogTGlrZXdpc2UuCgkqIGVsZjMyLWg4MzAwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1ocHBhLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1pcDJrLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1tMzJyLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhoYzExLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhoYzF4LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhrLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1taXBzLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXNoLmM6IExpa2V3aXNlLgoJKiBlbGYzMi12ODUwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi14dGVuc2EuYzogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1ocHBhLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1tbWl4LmM6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXNoNjQuYzogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYzogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuYzogTGlrZXdpc2UuCgkoTUlQU19FTEZfTE9HX0ZJTEVfQUxJR04pOiBVc2UgbG9nX2ZpbGVfYWxpZ24uCgkqIGVsZjY0LWFscGhhLmMgKGFscGhhX2VsZl9zaXplX2luZm8pOiBBZGp1c3QgZm9yIGxvZ19maWxlX2FsaWduLgoJKiBlbGY2NC1ocHBhLmMgKGhwcGE2NF9lbGZfc2l6ZV9pbmZvKTogTGlrZXdpc2UuCgkqIGVsZjY0LW1pcHMuYyAobWlwc19lbGY2NF9zaXplX2luZm8pOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jIChzMzkwX2VsZjY0X3NpemVfaW5mbyk6IExpa2V3aXNlLgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9zaXplX2luZm8pOiBMaWtld2lzZS4KCjIwMDMtMDUtMDggIEguSi4gTHUgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmbGluay5oIChlbGZfYWRkX2RlZmF1bHRfc3ltYm9sKTogQWZ0ZXIgc2tpcHBpbmcgdGhlCgl1bnZlcnNpb25lZCBzeW1ib2wsIGdvIHRvIG5vbi1kZWZhdWx0IG9uZS4KCjIwMDMtMDUtMDcgIEguSi4gTHUgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmeHgtaWE2NC5jIChfYmZkX2VsZl9saW5rX2hhc2hfaGlkZV9zeW1ib2wpOiBBbHNvIGNsZWFyIHRoZQoJd2FudF9wbHQgZmllbGQuCgkoZWxmTk5faWE2NF9yZWxvY2F0ZV9zZWN0aW9uKTogRG9uJ3QgZG8gZHluYW1pYyBzeW1ib2wgbG9va3VwCglmb3Igc3ltYm9scyB3aXRoIG5vbi1kZWZhdWx0IHZpc2liaWxpdHkuCgoyMDAzLTA1LTA3ICBILkouIEx1IDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfY2hlY2tfdmVyc2lvbmVkX3N5bWJvbCk6IEFsc28gaGFuZGxlIHRoZQoJY2FzZSB0aGF0IGEgRFNPIHJlZmVyZW5jZXMgYSBoaWRkZW4gc3ltYm9sIHdoaWNoIG1heSBiZQoJc2F0aXNmaWVkIGJ5IGEgdmVyc2lvbmVkIHN5bWJvbCBpbiBhbm90aGVyIERTTy4KCShlbGZfbGlua19vdXRwdXRfZXh0c3ltKTogQ2hlY2sgdmVyc2lvbmVkIGRlZmluaXRpb24gZm9yIGhpZGRlbgoJc3ltYm9sIHJlZmVyZW5jZWQgYnkgYSBEU08uCgoyMDAzLTA1LTA3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmMzIteHN0b3JteTE2LmMgKHhzdG9ybXkxNl9lbGZfaG93dG9fdGFibGUpOiBSZXNldAoJUl9YU1RPUk1ZMTZfMTYgcmVsb2MgdG8gaWdub3JlIG92ZXJmbG93cy4KCjIwMDMtMDUtMDYgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBJbXByb3ZlCgllcnJvciBtZXNzYWdlIGZvciBtaXhpbmcgZGlmZmVyZW50LWVuZGlhbiBmaWxlcy4gIENoZWNrIGZvciBBQkkKCWNvbXBhdGliaWxpdHkgb2YgaW5wdXQgZmlsZXMgd2l0aCB0aGUgc2VsZWN0ZWQgZW11bGF0aW9uLgoKMjAwMy0wNS0wNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLWkzODYuYyAoYWxsb2NhdGVfZHlucmVsb2NzKTogRm9yIHVuZGVmIHdlYWsgc3ltcyB3aXRoCglub24tZGVmYXVsdCB2aXNpYmlsaXR5LCBhKSBkb24ndCBtYWtlIHRoZW0gZHluYW1pYywgYikgZGlzY2FyZAoJc3BhY2UgZm9yIGR5bmFtaWMgcmVsb2NzLgoJKiBlbGY2NC14ODYtNjQuYyAoYWxsb2NhdGVfZHlucmVsb2NzKTogTGlrZXdpc2UuCgoJKiBlbGYzMi1wcGMuYyAoYWxsb2NhdGVfZHlucmVsb2NzKTogRm9yIHVuZGVmIHdlYWsgc3ltcyB3aXRoCglub24tZGVmYXVsdCB2aXNpYmlsaXR5LCBhKSBkb24ndCBhbGxvY2F0ZSBwbHQgZW50cmllcywgYikgZG9uJ3QKCWFsbG9jYXRlIC5nb3QgcmVsb2NzLCBjKSBkaXNjYXJkIGR5biByZWwgc3BhY2UsCgkocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogZCkgZG9uJ3QgZ2VuZXJhdGUgLmdvdCByZWxvY3MsIGUpCglkb24ndCBnZW5lcmF0ZSBkeW5hbWljIHJlbG9jcy4KCSogZWxmNjQtcHBjLmMgKGFsbG9jYXRlX2R5bnJlbG9jcyk6IEFzIGFib3ZlLgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogQXMgYWJvdmUuCgoyMDAzLTA1LTA1ICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBlbGY2NC14ODYtNjQuYyAoYWxsb2NhdGVfZHlucmVsb2NzKTogRG9uJ3QgYWxsb2NhdGUgZHluYW1pYwoJcmVsb2NhdGlvbiBlbnRyaWVzIGZvciB3ZWFrIHVuZGVmaW5lZCBzeW1ib2xzIHdpdGggbm9uLWRlZmF1bHQKCXZpc2liaWxpdHkuCgkoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBJbml0aWFsaXplIHRoZSBHT1QgZW50cmllcyBhbmQKCXNraXAgUl8zODZfMzIvUl8zODZfUEMzMiBmb3Igd2VhayB1bmRlZmluZWQgc3ltYm9scyB3aXRoCglub24tZGVmYXVsdCB2aXNpYmlsaXR5LgoKMjAwMy0wNS0wNCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGYzMi1pMzg2LmMgKGFsbG9jYXRlX2R5bnJlbG9jcyk6IERvbid0IGFsbG9jYXRlIGR5bmFtaWMKCXJlbG9jYXRpb24gZW50cmllcyBmb3Igd2VhayB1bmRlZmluZWQgc3ltYm9scyB3aXRoIG5vbi1kZWZhdWx0Cgl2aXNpYmlsaXR5LgoJKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBJbml0aWFsaXplIHRoZSBHT1QgZW50cmllcyBhbmQKCXNraXAgUl8zODZfMzIvUl8zODZfUEMzMiBmb3Igd2VhayB1bmRlZmluZWQgc3ltYm9scyB3aXRoCglub24tZGVmYXVsdCB2aXNpYmlsaXR5LgoKCSogZWxmeHgtaWE2NC5jIChhbGxvY2F0ZV9mcHRyKTogRG9uJ3QgYWxsb2NhdGUgZnVuY3Rpb24KCWRlc2NyaXB0b3JzIGZvciB3ZWFrIHVuZGVmaW5lZCBzeW1ib2xzIHdpdGggbm9uLWRlZmF1bHQKCXZpc2liaWxpdHkuCgkoYWxsb2NhdGVfZHlucmVsX2VudHJpZXMpOiBEb24ndCBhbGxvY2F0ZSByZWxvY2F0aW9uIGVudHJpZXMKCWZvciBzeW1ib2xzIHJlc29sdmVkIHRvIDAuCgkoc2V0X2dvdF9lbnRyeSk6IERvbid0IGluc3RhbGwgZHluYW1pYyByZWxvY2F0aW9uIGZvciB3ZWFrCgl1bmRlZmluZWQgc3ltYm9scyB3aXRoIG5vbi1kZWZhdWx0IHZpc2liaWxpdHkuCgkoc2V0X3BsdG9mZl9lbnRyeSk6IExpa2V3aXNlLgoKCSogZWxmbGluay5oIChlbGZfZml4X3N5bWJvbF9mbGFncyk6IEhpZGUgd2VhayB1bmRlZmluZWQgc3ltYm9scwoJd2l0aCBub24tZGVmYXVsdCB2aXNpYmlsaXR5LgoJKGVsZl9saW5rX291dHB1dF9leHRzeW0pOiBEb24ndCBtYWtlIHdlYWsgdW5kZWZpbmVkIHN5bWJvbHMKCXdpdGggbm9uLWRlZmF1bHQgdmlzaWJpbGl0eSBkeW5hbWljLgoKMjAwMy0wNS0wNCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGZsaW5rLmggKGVsZl9tZXJnZV9zeW1ib2wpOiBDb3JyZWN0bHkgaGFuZGxlIHdlYWsgZGVmaW5pdGlvbi4KCjIwMDMtMDUtMDQgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChlbGZfbWVyZ2Vfc3ltYm9sKTogRG9uJ3QgcmVjb3JkIGEgaGlkZGVuL2ludGVybmFsCglzeW1ib2wgZHluYW1pYy4gQ2hlY2sgaW5kaXJlY3Rpb24gd2hlbiByZW1vdmluZyB0aGUgb2xkCglkZWZpbml0aW9uIGZvciBzeW1ib2xzIHdpdGggbm9uLWRlZmF1bHQgdmlzaWJpbGl0eS4KCShlbGZfYWRkX2RlZmF1bHRfc3ltYm9sKTogU2tpcCB3aGVuIHRvbGQgYnkgZWxmX21lcmdlX3N5bWJvbC4KCjIwMDMtMDUtMDIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbGYzMi14c3Rvcm15MTYuYyAoeHN0b3JteTE2X2VsZl9ob3d0b190YWJsZSk6IE1ha2UgdGhlCglSX1hTVE9STVkxNl84IGFuZCBSX1hTVE9STVkxNl8xNiByZWxvY3MgZGV0ZWN0IGFuZCBjb21wbGFpbiBhYm91dAoJdW5zaWduZWQgb3ZlcmZsb3cuCgoyMDAzLTA1LTAyICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmX3g4Nl82NF9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IERvbid0IGNvcHkKCUVMRl9MSU5LX05PTl9HT1RfUkVGIGZvciB3ZWFrZGVmcyB3aGVuIHN5bWJvbCBhbHJlYWR5IGFkanVzdGVkLgoJKEVMSU1JTkFURV9DT1BZX1JFTE9DUyk6IERlZmluZSBhcyBvbmUuICBVc2UgdGhyb3VnaG91dC4KCShlbGZfeDg2XzY0X2FkanVzdF9keW5hbWljX3N5bWJvbCk6IEZvciB3ZWFrIHN5bWJvbHMsIGNvcHkKCUVMRl9MSU5LX05PTl9HT1RfUkVGIGZyb20gd2Vha2RlZi4KCjIwMDMtMDUtMDIgIENoYXJsZXMgTGVwcGxlIDxjbGVwcGxlQGdoei5jYz4KCSAgICBOaWNrIENsaWZ0b24gPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBhY2luY2x1ZGUubTQ6IEZpeCBuYW1lIG9mIC0tZW5hYmxlLWluc3RhbGwtbGliYmZkIHN3aXRjaC4KCSogYWNsb2NhbC5tNDogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMDUtMDEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IFRlc3Qgd2hldGhlciB0aGUKCXdlYWtkZWYgc3ltIGhhcyBhbHJlYWR5IGJlZW4gYWRqdXN0ZWQgYmVmb3JlIHRyZWF0aW5nIGl0IHNwZWNpYWxseS4KCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IERvbid0IGNvcHkKCUVMRl9MSU5LX05PTl9HT1RfUkVGIGZvciB3ZWFrZGVmcyB3aGVuIHN5bWJvbCBhbHJlYWR5IGFkanVzdGVkLgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTGlrZXdpc2UuCgkocHBjNjRfZWxmX2NoZWNrX3JlbG9jcyk6IFNldCBFTEZfTElOS19OT05fR09UX1JFRi4KCjIwMDMtMDQtMjggIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbGF4X3NlY3Rpb24pOiBSZWxheCBsZHhtb3YgZHVyaW5nCgl0aGUgcmVsYXggZmluYWxpemUgcGFzcy4KCgkqIHNlY3Rpb24uYyAoc3RydWN0IHNlYyk6IEFkZCBuZWVkX2ZpbmFsaXplX3JlbGF4IGFuZCByZW1vdmUKCWZsYWcxMS4KCShTVERfU0VDVElPTik6IFVwZGF0ZSBzdHJ1Y3Qgc2VjIGluaXRpYWxpemVyLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGVkLgoKMjAwMy0wNC0yOCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGZsaW5rLmggKGVsZl9tZXJnZV9zeW1ib2wpOiBDYWxsIGVsZl9iYWNrZW5kX2NvcHlfaW5kaXJlY3Rfc3ltYm9sCgl0byBjb3B5IGFueSBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIGR5bmFtaWMgbGlua2luZyB3aGVuIHdlIGZsaXAKCXRoZSBpbmRpcmVjdGlvbi4KCjIwMDMtMDQtMjcgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmLWJmZC5oIChFTEZfTElOS19EWU5BTUlDX0RFRik6IE5ldy4KCShFTEZfTElOS19EWU5BTUlDX1dFQUspOiBOZXcuCgoJKiBlbGZsaW5rLmggKGVsZl9tZXJnZV9zeW1ib2wpOiBBZGQgb25lIGFyZ3VtZW50IHRvIGluZGljYXRlIGlmCglhIHN5bWJvbCBzaG91bGQgYmUgc2tpcHBlZC4gSWdub3JlIGRlZmluaXRpb25zIGluIGR5bmFtaWMKCW9iamVjdHMgZm9yIHN5bWJvbHMgd2l0aCBub24tZGVmYXVsdCB2aXNpYmlsaXR5LgoJKGVsZl9hZGRfZGVmYXVsdF9zeW1ib2wpOiBBZGp1c3RlZC4KCShlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBDaGVjayBpZiBhIHN5bWJvbCBzaG91bGQgYmUKCXNraXBwZWQuIERvbid0IG1lcmdlIHRoZSB2aXNpYmlsaXR5IGZpZWxkIHdpdGggdGhlIG9uZSBmcm9tCglhIGR5bmFtaWMgb2JqZWN0LgoJKGVsZl9saW5rX2NoZWNrX3ZlcnNpb25lZF9zeW1ib2wpOiBVc2UgdW5kZWZfYmZkLgoJKGVsZl9saW5rX291dHB1dF9leHRzeW0pOiBXYXJuIGlmIGEgZm9yY2VkIGxvY2FsIHN5bWJvbCBpcwoJcmVmZXJlbmNlZCBmcm9tIGR5bmFtaWMgb2JqZWN0cy4gTWFrZSBub24td2VhayB1bmRlZmluZWQgc3ltYm9sCgl3aXRoIG5vbi1kZWZhdWx0IHZpc2liaWxpdHkgYSBmYXRhbCBlcnJvci4KCjIwMDMtMDQtMjcgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogY29uZmlndXJlLmluOiBCdW1wIHZlcnNpb24gb24gSEVBRCB0byAyLjE0LjkwLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKMjAwMy0wNC0yNiAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJUFIgc2F2YW5uYWgvMzMzMToKCSogZWxmMzItbTY4aGMxMS5jIChtNjhoYzExX2VsZl9yZWxheF9zZWN0aW9uKTogQ2xlYXIgcHJldl9pbnNuX2dyb3VwCgl3aGVuIHdlIGNvdWxkbid0IHJlbGF4IHNvbWV0aGluZy4KCjIwMDMtMDQtMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZsaW5rLmggKGVsZl9tZXJnZV9zeW1ib2wpOiBXaGVuIHdlIGZpbmQgYSByZWd1bGFyIGRlZmluaXRpb24KCWZvciBhbiBpbmRpcmVjdCBzeW1ib2wsIGZsaXAgdGhlIGluZGlyZWN0aW9uIHNvIHRoYXQgdGhlIG9sZAoJZGlyZWN0IHN5bWJvbCBub3cgcG9pbnRzIHRvIHRoZSBuZXcgZGVmaW5pdGlvbi4KCjIwMDMtMDQtMjQgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CgoJKiBlbGYuYyAoYmZkX3NlY3Rpb25fZnJvbV9waGRyKTogTWFwIFBUX0dOVV9FSF9GUkFNRSB0byAiZWhfZnJhbWVfaGRyIi4KCjIwMDMtMDQtMjQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1wcGMuYzogRm9ybWF0dGluZyBhbmQgY29tbWVudCBmaXhlcy4KCShFTElNSU5BVEVfQ09QWV9SRUxPQ1MpOiBNb3ZlIGJlZm9yZSBwcGNfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sLgoJKHBwY19lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBDb3B5IGZsYWdzIGhlcmUgZm9yIHdlYWtkZWZzLgoKMjAwMy0wNC0yNCBEaGFuYW5qYXkgRGVzaHBhbmRlIDxkaGFuYW5qYXlkQGtwaXRjdW1taW5zLmNvbT4KCgkqIGFyY2h1cmVzLmMgKGJmZF9tYWNoX2g4MzAwaG4sIGJmZF9tYWNoX2g4MzAwc24pOiBBZGRlZC4KCSogYmZkLWluMi5oOiBSZWJ1aWx0LgoJKiBjb2ZmLWg4MzAwLmMgKEJBRE1BRyk6IEFkZCBjaGVjayBmb3IgSDgzMDBITkJBRE1BRyAmIEg4MzAwU05CQURNQUcuCgkqIGNvZmZjb2RlLmggKGNvZmZfc2V0X2FyY2hfbWFjaF9ob29rKTogQWRkIGNhc2UgZm9yIEg4MzAwSE5NQUdJQwoJJiBIODMwMFNOTUFHSUMuCgkoY29mZl9zZXRfZmxhZ3MpOiBBZGQgY2FzZSBmb3IgYmZkX21hY2hfaDgzMDBobiAmIGJmZF9tYWNoX2g4MzAwc24uCgkqIGNwdS1oODMwMC5jIChoODMwMF9zY2FuKTogSGFuZGxlIGg4MzAwaG4sIGg4MzAwc24uCgkoaDgzMDBzbl9pbmZvX3N0cnVjdCwgaDgzMDBobl9pbmZvX3N0cnVjdCk6IE5ldy4KCSogZWxmMzItaDgzMDAuYyAoZWxmMzJfaDhfbWFjaCk6IEhhbmRsZSBjYXNlIGZvciBoODMwMGhuICYgaDgzMDBzbgoJKGVsZjMyX2g4X2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBMaWtld2lzZS4KCjIwMDMtMDQtMjMgIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCSogZWxmMzItc2guYyAodHBvZmYpOiBOZXcuCgkoc3RydWN0IGVsZl9zaF9keW5fcmVsb2NzKTogUmVtb3ZlIHRsc190cG9mZjMyLgoJKFdJTExfQ0FMTF9GSU5JU0hfRFlOQU1JQ19TWU1CT0wpOiBQYXNzIFNIQVJFRCBpbnN0ZWFkIG9mIElORk8uCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogRG9uJ3QgbWFrZSB1bm5lY2Vzc2FyeSBkeW5hbWljIFRMUwoJcmVsb2NhdGlvbnMuICBBZGp1c3QgV0lMTF9DQUxMX0ZJTklTSF9EWU5BTUlDX1NZTUJPTCB1c2VzLgoJKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuIFJlbW92ZSB1bm5lY2Vzc2FyeSB0ZXN0cy4KCShkdHBvZmZfYmFzZSk6IEZpeCB3cm9uZyBpbmRlbnRhdGlvbi4KCShzaF9lbGZfY2hlY2tfcmVsb2NzKTogRG9uJ3Qgc2V0IERGX1NUQVRJQ19UTFMgZmxhZyB3aXRoIG5vbi1UTFMKCXJlbG9jYXRpb25zLiAgRG9uJ3Qgc2V0IHRsc190cG9mZjMyIGZsYWcuICBEb24ndCBtYWtlIHVubmVjZXNzYXJ5CglSX1NIX1RMU19UUE9GRjMyIHJlbG9jYXRpb25zLgoKMjAwMy0wNC0yMyAgSiJvcm4gUmVubmVja2UgPGpvZXJuLnJlbm5lY2tlQHN1cGVyaC5jb20+CgoJKiBhcmNodXJlcy5jIChlbnVtIGJmZF9hcmNoaXRlY3R1cmUpOiBBbWVuZCBjb21tZW50IHRvIHJlZmVyIHRvIFN1cGVySC4KCSogY3B1LXNoLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jOiBMaWtld2lzZS4KCSogcmVsb2MuYyAoYmZkX3JlbG9jX2NvZGVfcmVhbCk6IExpa2V3aXNlLgoJKiBlbGYzMi1zaDY0LWNvbS5jOiBDaGFuZ2UgY29tbWVudCB0byByZWZlciB0byBTdXBlckguCgkqIGVsZjMyLXNoNjQuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXNoNjQuYzogTGlrZXdpc2UuCgkqIGJmZC1pbjIuaCAoZW51bSBiZmRfYXJjaGl0ZWN0dXJlKTogUmVnZW5lcmF0ZS4KCjIwMDMtMDQtMjMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJRnJvbSBKdWxpZW4gTEVNT0lORSA8c3BlZWRibHVlQGRlYmlhbi5vcmc+CgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfaW5mb190b19ob3d0byk6IERlbGV0ZS4KCShlbGZfaW5mb190b19ob3d0byk6IERlZmluZSBhcyBlbGZfaTM4Nl9pbmZvX3RvX2hvd3RvX3JlbC4KCjIwMDMtMDQtMjIgIEthenVoaXJvIEluYW9rYSAgPGluYW9rYS5rYXp1aGlyb0ByZW5lc2FzLmNvbT4KCgkqIGFyY2h1cmVzLmM6IFJlcGxhY2UgcmVmZXJlbmNlcyB0byBNaXRzdWJpc2hpIE0zMlIgd2l0aCByZWZlcmVuY2VzCgl0byBSZW5lc2FzIE0zMlIuCgkqIHJlbG9jcy5jOiBMaWtld2lzZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMy0wNC0yMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKGFscGhhX2VsZl9keW5hbWljX3N5bWJvbF9wKTogUmV0dXJuIGZhbHNlIGZvciBhbgoJZXhlY3V0YWJsZSB3aGVuIGEgc3ltYm9sIGlzIGRlZmluZWQgYm90aCByZWd1bGFyIGFuZCBkeW5hbWljLgoKMjAwMy0wNC0yMSAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBNYWtlZmlsZS5hbSAoQkZEMzJfQkFDS0VORFMpOiBBZGQgZWxmMzItbTY4aGMxeC5sby4KCShlbGYzMi1tNjhoYzF4LmxvKTogVXBkYXRlIGRlcGVuZGVuY2llcwoJKiBjb25maWd1cmUuaW46IEFkZCBlbGYzMi1tNjhoYzF4LmxvLgoJKiBjb25maWd1cmU6IFJlYnVpbGQuCgkqIE1ha2VmaWxlLmluOiBSZWJ1aWxkLgoKMjAwMy0wNC0yMSAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBlbGYzMi1tNjhoYzF4LmM6IE5ldyBmaWxlIChmcm9tIGVsZjMyLW02OGhjMTEuYyBhbmQgZWxmMzItbTY4aGMxMi5jKQoJKG02OGhjMTFfZWxmX2hhc2hfdGFibGVfY3JlYXRlKTogTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX202OGhjMTFfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBOZXcgZnVuY3Rpb24uCgkoc3R1Yl9oYXNoX25ld2Z1bmMpOiBOZXcgZnVuY3Rpb24uCgkobTY4aGMxMV9hZGRfc3R1Yik6IE5ldyBmdW5jdGlvbi4KCShlbGYzMl9tNjhoYzExX2FkZF9zeW1ib2xfaG9vayk6IE5ldyBmdW5jdGlvbi4KCShlbGYzMl9tNjhoYzExX3NldHVwX3NlY3Rpb25fbGlzdHMpOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfbTY4aGMxMV9uZXh0X2lucHV0X3NlY3Rpb24pOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfbTY4aGMxMV9zaXplX3N0dWJzKTogTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX202OGhjMTFfYnVpbGRfc3R1YnMpOiBOZXcgZnVuY3Rpb24uCgkobTY4aGMxMV9nZXRfcmVsb2NhdGlvbl92YWx1ZSk6IE5ldyBmdW5jdGlvbi4KCShlbGYzMl9tNjhoYzExX3JlbG9jYXRlX3NlY3Rpb24pOiBDYWxsIHRoZSBhYm92ZSB0byByZWRpcmVjdAoJc29tZSByZWxvY2F0aW9ucyB0byB0aGUgdHJhbXBvbGluZSBjb2RlLgoJKG02OGhjMTFfZWxmX2V4cG9ydF9vbmVfc3R1Yik6IE5ldyBmdW5jdGlvbi4KCShtNjhoYzExX2VsZl9zZXRfc3ltYm9sKTogTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX202OGhjMTFfYnVpbGRfc3R1YnMpOiBDYWxsIGl0IHZpYSBiZmRfaGFzaF90cmF2ZXJzZS4KCShtNjhoYzExX2VsZl9nZXRfYmFua19wYXJhbWV0ZXJzKTogR2V0IHBhcmFtZXRlcnMgb25seSB3aGVuIHRoZSBpbmZvCglpcyBub3QgeWV0IGluaXRpYWxpemVkLgoKCSogZWxmMzItbTY4aGMxeC5oOiBOZXcgZmlsZSAoZnJvbSBlbGYzMi1tNjhoYzExLmMgYW5kIGVsZjMyLW02OGhjMTIuYykKCShlbGYzMl9tNjhoYzExX3N0dWJfaGFzaF9lbnRyeSk6IE5ldyBzdHJ1Y3QuCgkobTY4aGMxMV9wYWdlX2luZm8pOiBBZGQgdHJhbXBvbGluZSBoYW5kbGVyIGFkZHJlc3MuCgkobTY4aGMxMV9lbGZfbGlua19oYXNoX3RhYmxlKTogQWRkIHN0dWJzIGdlbmVyYXRpb24gbWVtYmVycy4KCShlbGYzMl9tNjhoYzExX2FkZF9zeW1ib2xfaG9vayk6IERlY2xhcmUuCgkoZWxmMzJfbTY4aGMxMV9zZXR1cF9zZWN0aW9uX2xpc3RzKTogRGVjbGFyZS4KCShlbGYzMl9tNjhoYzExX3NpemVfc3R1YnMpOiBEZWNsYXJlLgoJKGVsZjMyX202OGhjMTFfYnVpbGRfc3R1YnMpOiBEZWNsYXJlLgoKCSogZWxmMzItbTY4aGMxMS5jIChtNjhoYzExX2VsZl9pZ25vcmVfcmVsb2MpOiBNb3ZlIHRvIGVsZjMyLW02OGhjMXguYy4KCShlbGYzMl9tNjhoYzExX2djX21hcmtfaG9vaywgZWxmMzJfbTY4aGMxMV9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkoZWxmMzJfbTY4aGMxMV9jaGVja19yZWxvY3MsIGVsZjMyX202OGhjMTFfcmVsb2NhdGVfc2VjdGlvbik6IERpdHRvLgoJKF9iZmRfbTY4aGMxMV9lbGZfc2V0X3ByaXZhdGVfZmxhZ3MpOiBEaXR0by4KCShfYmZkX202OGhjMTFfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBEaXR0by4KCShfYmZkX202OGhjMTFfZWxmX3ByaW50X3ByaXZhdGVfYmZkX2RhdGEpOiBEaXR0by4KCShiZmRfZWxmMzJfYmZkX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBEZWZpbmUuCgkoZWxmX2JhY2tlbmRfYWRkX3N5bWJvbF9ob29rKTogRGVmaW5lLgoJKG02OGhjMTFfZWxmX2JmZF9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTmV3IGZ1bmN0aW9uLgoJKG02OGhjMTFfZWxmX2J1aWxkX29uZV9zdHViKTogTmV3IGZ1bmN0aW9uLgoJKG02OGhjMTFfZWxmX3NpemVfb25lX3N0dWIpOiBOZXcgZnVuY3Rpb24uCgkobTY4aGMxMV9lbGZfYmZkX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBJbnN0YWxsIHRoZSBhYm92ZS4KCShiZmRfZWxmMzJfYmZkX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBEZWZpbmUuCgoJKiBlbGYzMi1tNjhoYzEyLmMgKG02OGhjMTFfZWxmX2lnbm9yZV9yZWxvYyk6IFJlbW92ZS4KCShtNjhoYzEyX2FkZHJfaXNfYmFua2VkKTogUmVtb3ZlLCB1c2UgbTY4aGMxMV9hZGRyX2lzX2JhbmtlZC4KCShtNjhoYzEyX3BoeXNfYWRkcik6IERpdHRvLgoJKG02OGhjMTJfcGh5c19wYWdlKTogRGl0dG8uCgkobTY4aGMxMl9lbGZfc3BlY2lhbF9yZWxvYyk6IE1vdmUgdG8gZWxmMzItbTY4aGMxeC5jLgoJKGVsZjMyX202OGhjMTFfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkoZWxmMzJfbTY4aGMxMV9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkoZWxmMzJfbTY4aGMxMV9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4KCShlbGYzMl9tNjhoYzExX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCShfYmZkX202OGhjMTJfZWxmX3NldF9wcml2YXRlX2ZsYWdzKTogTGlrZXdpc2UuCgkoX2JmZF9tNjhoYzEyX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogTGlrZXdpc2UuCgkoX2JmZF9tNjhoYzEyX2VsZl9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogTGlrZXdpc2UuCgkobTY4aGMxMl9lbGZfYnVpbGRfb25lX3N0dWIpOiBOZXcgZnVuY3Rpb24uCgkobTY4aGMxMl9lbGZfc2l6ZV9vbmVfc3R1Yik6IE5ldyBmdW5jdGlvbi4KCShtNjhoYzEyX2VsZl9iZmRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IE5ldyBmdW5jdGlvbiwgdXNlIHRoZSBhYm92ZS4KCShlbGZfYmFja2VuZF9hZGRfc3ltYm9sX2hvb2spOiBEZWZpbmUuCgkoZWxmX202OGhjMTFfaG93dG9fdGFibGUpOiBVc2UgVFJVRSBmb3IgcGNyZWwgcmVsb2NzOyBmaXggbWFza3MuCgoyMDAzLTA0LTE4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZm9ybWF0LmMgKGJmZF9jaGVja19mb3JtYXRfbWF0Y2hlcyk6IE9ubHkgY2hlY2sgYXNzb2NpYXRlZAoJdmVjdG9yIGlmIHRoZSBtYXRjaGluZ192ZWN0b3IgaGFzIGJlZW4gY3JlYXRlZC4KCjIwMDMtMDQtMTUgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZHdhcmYyLmMgKF9iZmRfZHdhcmYyX2ZpbmRfbmVhcmVzdF9saW5lKTogRml4IHR5cG8gaW4KCTIwMDMtMDQtMDkncyBjaGFuZ2UuCgoyMDAzLTA0LTE1ICBCcmlhbiBGb3JkICA8Zm9yZEB2c3MuZnNpLmNvbT4KCgkqIHBlaWNvZGUuaCAoY29mZl9zd2FwX3Njbmhkcl9pbik6IElmIGEgc2VjdGlvbiBob2xkcwoJdW5pbml0aWFsaXplZCBkYXRhIGFuZCBpcyBmcm9tIGFuIG9iamVjdCBmaWxlIG9yIGZyb20gYW4KCWV4ZWN1dGFibGUgaW1hZ2UgdGhhdCBoYXMgbm90IGluaXRpYWxpemVkIHRoZSBzX3NpemUgZmllbGQsIG9yIGlmCgl0aGUgcGh5c2ljYWwgc2l6ZSBpcyBwYWRkZWQsIHVzZSB0aGUgdmlydHVhbCBzaXplIChzdG9yZWQgaW4KCXNfcGFkZHIpIGluc3RlYWQuCgoyMDAzLTA0LTE1ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogUHJvcGVybHkgcmVwb3J0CglmaWxlbmFtZSBmb3IgYWxpZ25tZW50IHJlZHVjdGlvbi4KCjIwMDMtMDQtMTUgIFJvaGl0IEt1bWFyIFNyaXZhc3RhdmEgPHJvaGl0c0BrcGl0Y3VtbWlucy5jb20+CgoJKiBhcmNodXJlcy5jOiBSZXBsYWNlIG9jY3VycmFuY2VzIG9mICdIaXRhY2hpJyB3aXRoICdSZW5lc2FzJy4KCSogcmVsb2MuYzogTGlrZXdpc2UuCgkqIGNvZmYtaDgzMDAuYzogTGlrZXdpc2UuCgkqIGNvZmYtaDg1MDAuYzogTGlrZXdpc2UuCgkqIGNvZmYtc2guYzogTGlrZXdpc2UuCgkqIGNwdS1oODMwMC5jOiBMaWtld2lzZS4KCSogY3B1LXNoLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1oODMwMC5jOiBMaWtld2lzZS4KCSogZWxmMzItc2guYzogTGlrZXdpc2UuCgkqIGVsZjMyLXNoNjQtY29tLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zaDY0LmM6IExpa2V3aXNlLgoJKiBlbGY2NC1zaDY0LmM6IExpa2V3aXNlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAzLTA0LTE0ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogTWFpbnRhaW4gbWF4aW11bQoJYWxpZ25tZW50IGZvciBjb21tb24gc3ltYm9scy4gV2FybiByZWR1Y2luZyBhbGlnbm1lbnQgZm9yCgljb21tb24gc3ltYm9scy4gUmVwb3J0IG9sZCBmaWxlbmFtZSB3aGVuIHN5bWJvbCBzaXplIGNoYW5nZXMuCgoyMDAzLTA0LTEyICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfY2FsY3VsYXRlX3JlbG9jYXRpb24pOiBBZGp1c3QgdHdvIG90aGVyCglvY2N1cnJlbmNlcyBvZiB0aGUgc2FtZSB0ZXN0IGNoYW5nZWQgaW4gdGhlIHByZXZpb3VzIHBhdGNoLgoJT3B0aW1pemUuCgoyMDAzLTA0LTExICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfZ2V0X2dsb2JhbF9nb3RzeW1faW5kZXgpOiBOZXcuCgkobWlwc19lbGZfY2FsY3VsYXRlX3JlbG9jYXRpb24pOiBEZWNheSBHT1RfUEFHRS9HT1RfT0ZTVCB0bwoJR09UX0RJU1AvYWRkZW5kIG9ubHkgaWYgdGhlIHN5bWJvbCBnb3QgYSBnbG9iYWwgR09UIGVudHJ5LgoKMjAwMy0wNC0xMCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogRGVjYXkKCUdPVF9QQUdFL0dPVF9PRlNUIHJlZmVyZW5jaW5nIG92ZXJyaWRhYmxlIHN5bWJvbCB0bwoJR09UX0RJU1AvYWRkZW5kLgoJKF9iZmRfbWlwc19lbGZfY2hlY2tfcmVsb2NzKTogSGFuZGxlIEdPVF9QQUdFIHJlZmVyZW5jaW5nCglnbG9iYWwgc3ltYm9sIGFzIEdPVF9ESVNQLgoKMjAwMy0wNC0xMCAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIGVsZjMyLXh0ZW5zYS5jIChlbGZfeHRlbnNhX3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCBjb250aW51ZSB0byB0aGUKCW5leHQgcmVsb2NhdGlvbiBvbiBhbiB1bmRlZmluZWQgc3ltYm9sLgoKMjAwMy0wNC0wOSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pIDxSX0FMUEhBX0dQUkVMMzI+OgoJSWdub3JlIHJlbG9jYXRpb25zIGFnYWluc3Qgcl9zeW1uZHggPT0gMC4KCjIwMDMtMDQtMDkgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IERvbid0IHJldHVybgoJRkFMU0UgZm9yIHVuZGVmaW5lZCBzeW1ib2xzLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMy0wNC0wOSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBkd2FyZjIuYyAoX2JmZF9kd2FyZjJfZmluZF9uZWFyZXN0X2xpbmUpOiBUcnkgRFdBUkYzLXN0YW5kYXJkCglhbmQgSVJJWC1zcGVjaWZpYyBzaGlmdC10by02NC1iaXQgNC1ieXRlIGxlbmd0aHMgYmVmb3JlIGZvbGxvd2luZwoJYWRkcl9zaXplLgoKMjAwMy0wNC0wOCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1taXBzLmMgKGJmZF9lbGYzMl9iZmRfcmVsb2NfdHlwZV9sb29rdXApOiBEZXRlY3QgKGN0b3IpCglwb2ludGVyIHNpemUgZnJvbSBBQkksIG5vdCBhcmNoX2JpdHNfcGVyX2FkZHJlc3MuCgoyMDAzLTA0LTA3ICBLZXZpbiBCdWV0dG5lciAgPGtldmluYkByZWRoYXQuY29tPgoKCSogZWxmbjMyLW1pcHMuYyAoZWxmMzJfbWlwc19ncm9rX3Byc3RhdHVzKTogQWRqdXN0IGNvcmUgZmlsZSByZWxhdGVkCgljb25zdGFudHMgZm9yIG4zMiBBQkkuCgoyMDAzLTA0LTA2ICBBbmRyZXcgQ2FnbmV5ICA8Y2FnbmV5QHJlZGhhdC5jb20+CgoJKiBzaW1wbGUuYyAoYmZkX3NpbXBsZV9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBEaXNhYmxlCglmcmVlIHRoYXQgbGVhZHMgdG8gR0RCIHZzIEJGRCBtZW1vcnkgY29ycnVwdGlvbi4KCjIwMDMtMDQtMDQgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogZWxmMzItbTY4aGMxMS5jIChtNjhoYzExX2VsZl9yZWxheF9kZWxldGVfYnl0ZXMpOiBBbHNvIGFkanVzdAoJc3ltYm9scyB0aGF0IG1hcmsgdGhlIGVuZCBvZiB0aGUgc2VjdGlvbi4KCShtNjhoYzExX2VsZl9yZWxheF9zZWN0aW9uKTogVXNlIFJfTTY4SEMxMV9QQ1JFTF84IHJlbG9jcyB3aGVuCgljb252ZXJ0aW5nIHRvIGEgcmVsYXRpdmUgYnJhbmNoIHNvIHRoYXQgdGhlIG9mZnNldCBpcyBjb21wdXRlZCBhZnRlcgoJdGhlIHJlbGF4YXRpb247IGFsc28gcmVsb2NhdGUgYSBqc3IgaW50byBhIGJzciBpZiBwb3NzaWJsZSBidXQgZG9uJ3QKCXJlbGF4IHRoZW0gaWYgdGhleSBhcmUgdG8gYSBmYXIgc3ltYm9sIGFzIHdlIG5lZWQgdG8gY2FsbCB0aGUKCXRyYW1wb2xpbmUgY29kZS4KCShlbGZfbTY4aGMxMV9ob3d0b190YWJsZSk6IFNldCBwY3JlbF9vZmZzZXQgdG8gdHJ1ZS4KCjIwMDMtMDQtMDQgIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGFyY2h1cmVzLmM6IE5hbWVzcGFjZSBjbGVhbnVwLiBSZW5hbWUgYmZkX21hY2hfYzN4IHRvCgliZmRfbWFjaF90aWMzeCBhbmQgYmZkX21hY2hfYzR4IHRvIGJmZF9tYWNoX3RpYzR4CgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZQoJKiBjb2ZmLXRpYzR4LmM6IE5hbWVzcGFjZSBjbGVhbnVwLiBSZXBsYWNlIHMvYzR4L3RpYzR4LwoJKiBjcHUtdGljNHguYzogRGl0dG8KCjIwMDMtMDQtMDMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwZVhYaWdlbi5jIChfYmZkX1hYaV9zd2FwX3Njbmhkcl9vdXQpOiBDb21wdXRlIHBzIGFuZCBzcwoJZGlmZmVyZW50bHkgZm9yIG9iamVjdCBmaWxlcyBhbmQgZXhlY3V0YWJsZXMuCgkqIHBlaWNvZGUuaCAoY29mZl9zd2FwX3Njbmhkcl9pbik6IE9ubHkgc2V0IHRoZSBzX3NpemUgZmllbGQKCWZvciBvYmplY3QgZmlsZXMgb3IgZm9yIGV4ZWN1dGFibGVzIHdobyBoYXZlIG5vdCBhbHJlYWR5Cglpbml0aWFsaXNlZCB0aGUgZmllbGQuCgkqIGxpYnBlaS5oIChiZmRfcGVfZXhlY3V0YWJsZV9wKTogTmV3IG1hY3JvLiAgUmV0dXJuIHRydWUgaWYKCXRoZSBQRSBmb3JtYXQgYmZkIGlzIGFuIGV4ZWN1dGFibGUuCgoyMDAzLTA0LTAzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItcHBjLmMgKHBwY19lbGZfY2hlY2tfcmVsb2NzKTogRG9uJ3QgdXNlIFNZTUJPTF9SRUZFUkVOQ0VTX0xPQ0FMCgloZXJlIGFzIGl0J3MgdG9vIGVhcmx5IHRvIHJlbGlhYmx5IGRldGVybWluZSBsb2NhbGl0eS4KCShwcGNfZWxmX2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCShTWU1CT0xfUkVGRVJFTkNFU19MT0NBTCk6IEV4cGFuZCBjb21tZW50LgoKMjAwMy0wNC0wMiAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIHh0ZW5zYS1tb2R1bGVzLmM6IFJlbW92ZSBjb21tZW50IGluZGljYXRpbmcgdGhhdCB0aGlzIGlzIGEKCWdlbmVyYXRlZCBmaWxlLgoKMjAwMy0wNC0wMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9oaWRlX3N5bWJvbCk6IFRlc3QgZm9yIE5VTEwgZHlub2JqLgoKMjAwMy0wNC0wMSAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIE1ha2VmaWxlLmFtIChBTExfTUFDSElORVMpOiBBZGQgY3B1LXh0ZW5zYS5sby4KCShBTExfTUFDSElORVNfQ0ZJTEVTKTogQWRkIGNwdS14dGVuc2EuYy4KCShCRkQzMl9CQUNLRU5EUyk6IEFkZCBlbGYzMi14dGVuc2EubG8sIHh0ZW5zYS1pc2EubG8sIGFuZAoJeHRlbnNhLW1vZHVsZXMubG8uCgkoQkZEMzJfQkFDS0VORFNfQ0ZJTEVTKTogQWRkIGVsZjMyLXh0ZW5zYS5jLCB4dGVuc2EtaXNhLmMsIGFuZAoJeHRlbnNhLW1vZHVsZXMuYy4KCShjcHUteHRlbnNhLmxvKTogTmV3IHRhcmdldC4KCShlbGYzMi14dGVuc2EubG8pOiBMaWtld2lzZS4KCSh4dGVuc2EtaXNhLmxvKTogTGlrZXdpc2UuCgkoeHRlbnNhLW1vZHVsZXMubG8pOiBMaWtld2lzZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGFyY2h1cmVzLmMgKGJmZF9hcmNoaXRlY3R1cmUpOiBBZGQgYmZkX3thcmNoLG1hY2h9X3h0ZW5zYS4KCShiZmRfYXJjaHVyZXNfbGlzdCk6IEFkZCBiZmRfeHRlbnNhX2FyY2guCgkqIGNvbmZpZy5iZmQ6IEhhbmRsZSB4dGVuc2EtKi0qLgoJKiBjb25maWd1cmUuaW46IEhhbmRsZSBiZmRfZWxmMzJfeHRlbnNhX3tsZSxiZX1fdmVjLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIHJlbG9jLmM6IEFkZCBCRkRfUkVMT0NfWFRFTlNBX3tSVExELEdMT0JfREFULEpNUF9TTE9ULFJFTEFUSVZFLAoJUExULE9QMCxPUDEsT1AyLEFTTV9FWFBBTkQsQVNNX1NJTVBMSUZZfS4KCSogdGFyZ2V0cy5jIChiZmRfZWxmMzJfeHRlbnNhX2JlX3ZlYyk6IERlY2xhcmUuCgkoYmZkX2VsZjMyX3h0ZW5zYV9sZV92ZWMpOiBMaWtld2lzZS4KCShiZmRfdGFyZ2V0X3ZlY3Rvcik6IEFkZCBiZmRfZWxmMzJfeHRlbnNhX3tiZSxsZX1fdmVjLgoJKiBjcHUteHRlbnNhLmM6IE5ldyBmaWxlLgoJKiBlbGYzMi14dGVuc2EuYzogTGlrZXdpc2UuCgkqIHh0ZW5zYS1pc2EuYzogTGlrZXdpc2UuCgkqIHh0ZW5zYS1tb2R1bGVzLmM6IExpa2V3aXNlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogYmZkLWluMi5oOiBMaWtld2lzZS4KCjIwMDMtMDQtMDEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBhcmNodXJlcy5jIChiZmRfbWFjaF9hcm1fdW5rbm93bik6IERlZmluZS4KCSogYmZkLWluLmggKGJmZF9hcm1fbWVyZ2VfbWFjaGluZXMsIGJmZF9hcm0rdXBkYXRlX25vdGVzLAoJYmZkX2FybV9nZXRfbWFjaF9mcm9tX25vdGVzKTogUHJvdG90eXBlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGNvZmYtYXJtLmMgKGNvZmZfYXJtX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBDYWxsCgliZmRfYXJtX21lcmdlX21hY2hpbmVzLgoJKGNvZmZfYXJtX2ZpbmFsX2xpbmtfcG9zdHNjcmlwdCk6IENhbGwgYmZkX2FybV91cGRhdGVfbm90ZXMuCgkqIGNvZmZjb2RlLmggKGNvZmZfc2V0X2FyY2hfbWFjaF9ob29rKTogQ2FsbAoJYmZkX2FybV9nZXRfbWFjaF9mcm9tX25vdGVzLgoJKiBjb2ZmZ2VuLmMgKGNvZmZfcmVhbF9vYmplY3RfcCk6IFJldmVydCBwcmV2aW91cyBkZWx0YS4KCSogY3B1X2FybS5jIChhcm1fY2hlY2tfbm90ZSk6IE5ldyBmdW5jdGlvbi4gIEV4YW1pbmUgYSBub3RlIGluIGEKCS5ub3RlIHNlY3Rpb24uCgkoYmZkX2FybV9tZXJnZV9tYWNoaW5lcyk6IE5ldyBmdW5jdGlvbjogSGFuZGxlIHRoZSBtZXJnaW5nIG9mIEFSTQoJYmluYXJpZXMgY29tcGlsZWQgZm9yIGRpZmZlcmVudCBhcmNoaXRlY3R1cmVzLi4KCShiZmRfYXJtX3VwZGF0ZV9ub3Rlcyk6IE5ldyBmdW5jdGlvbjogVXBkYXRlIGFuIEFSTSBub3RlIHNlY3Rpb24uCgkoYmZkX2FybV9nZXRfbWFjaF9mcm9tX25vdGVzKTogTmV3IGZ1bmN0aW9uOiBFeHRyYWN0IGEgYmZkIG1hY2hpbmUKCW51bWJlciBmcm9tIGFuIEFSTSBub3RlIHNlY3Rpb24uCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fb2JqZWN0X3ApOiBVc2UKCWJmZF9hcm1fZ2V0X21hY2hfZnJvbV9ub3Rlcy4KCShlbGYzMl9hcm1fbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IFVzZSBiZmRfYXJtX21lcmdlX21hY2hpbmVzLgoJKGVsZjMyX2FybV9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogVXNlIGJmZF9hcm1fdXBkYXRlX25vdGVzLgoKMjAwMy0wNC0wMSAgQmVuIEVsbGlzdG9uICA8YmplQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogZHdhcmYyLmMgKHJlYWRfYXR0cmlidXRlX3ZhbHVlKTogQ29ycmVjdCB0eXBvIGluIGNvbW1lbnQuCgoyMDAzLTA0LTAxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZHdhcmYyLmMgKGNvbmNhdF9maWxlbmFtZSk6IFVzZSBiZmRfbWFsbG9jKCkgYW5kIHN0cmR1cCgpCglpbnN0ZWFkIG9mIGNvbmNhdCgpLgoJKGRlY29kZV9saW5lX2luZm8pOiBPbmx5IGZyZWUgZmlsZW5hbWUgaWYgaXQgaXMgbm90IE5VTEwuCgkoYWRkX2xpbmVfaW5mbyk6IE1ha2UgYSBjb3B5IG9mIHRoZSBmaWxlbmFtZSB3aGVuIHN0b3JpbmcgaXQgaW50bwoJdGhlIGluZm8gc3RydWN0dXJlLgoKMjAwMy0wMy0zMSAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCSAgICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIHNpbXBsZS5jIChiZmRfc2ltcGxlX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IEFkZAoJcGFyYW1ldGVyIHN5bWJvbF90YWJsZS4gIE9wdGlvbmFsbHkgdXNlIGl0IGluc3RlYWQgb2YgdGhlIHN5bWJvbAoJdGFibGUgZnJvbSB0aGUgYmZkLiAgU2F2ZSBhbmQgcmVzdG9yZSBvdXRwdXQgb2Zmc2V0cyBhbmQgb3V0cHV0CglzZWN0aW9ucyAgYXJvdW5kIGJmZF9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMuICBGaXggYSBtZW1vcnkKCWxlYWsuCgkoc2ltcGxlX3NhdmVfb3V0cHV0X2luZm8sIHNpbXBsZV9yZXN0b3JlX291dHB1dF9pbmZvKTogTmV3CglmdW5jdGlvbnMuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogZHdhcmYyLmMgKHJlYWRfYWJicmV2cyk6IFVzZQoJYmZkX3NpbXBsZV9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMgaW5zdGVhZCBvZgoJYmZkX2dldF9zZWN0aW9uX2NvbnRlbnRzLgoJKGRlY29kZV9saW5lX2luZm8pOiBMaWtld2lzZS4KCShfYmZkX2R3YXJmMl9maW5kX25lYXJlc3RfbGluZSk6IExpa2V3aXNlLiAgRG9uJ3QgY2FsbAoJZmluZF9yZWxhX2FkZGVuZC4KCShmaW5kX3JlbGFfYWRkZW5kKTogUmVtb3ZlLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfcmVsb2MpOiBXZWFrZW4gc2FuaXR5IGNoZWNrIGZvcgoJZGVidWdnaW5nIHNlY3Rpb25zLgoJKGVsZk5OX2lhNjRfaGFzaF90YWJsZV9jcmVhdGUpOiBDcmVhdGUgdGhlIGhhc2ggdGFibGUgd2l0aCBtYWxsb2MsCglub3QgYmZkX3phbGxvYy4KCjIwMDMtMDMtMzEgIERhdmlkIEhlaW5lICA8ZGxoZWluZUBzdWlmLnN0YW5mb3JkLmVkdT4KCgkqIGFvdXR4LmggKGFvdXRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IFVzZSBiZmRfbWFsbG9jIGluc3RlYWQgb2YKCWJmZF9hbGxvYy4KCSogZHdhcmYyLmMgKGNvbmNhdF9maWxlbmFtZSk6IEFsd2F5cyBhbGxvY2F0ZSBzcGFjZSBmb3IgdGhlCglyZXR1cm5lZCBmaWxlbmFtZS4KCShkZWNvZGVfbGluZV9pbmZvKTogRnJlZSB0aGUgYWxsb2NhdGVkIGZpbGVuYW1lIHJldHVybmVkIGJ5Cgljb25jYXRfZmlsZW5hbWUuCgkqIGVsZi1laC1mcmFtZS5jIChiZmRfZWxmX3dyaXRlX3NlY3Rpb25fZWhfZnJhbWUpOiBGaXggbWVtb3J5IGxlYWtzLgoJKiBlbGYuYyAoY29weV9wcml2YXRlX2JmZF9kYXRhKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfc2x1cnBfdmVyc2lvbl90YWJsZXMpOiBGaXggYnVnIGZyZWVpbmcgY29udGVudHMgcG9pbnRlci4KCSogZWxmbGluay5oIChlbGZfbGlua19zb3J0X3JlbG9jcyk6IEZpeCBtZW1vcnkgbGVhay4KCSogZm9ybWF0LmMgKGJmZF9jaGVja19mb3JtYXRfbWF0Y2hlcyk6IExpa2V3aXNlLgoJKiBsaW5rZXIuYyAoYmZkX2dlbmVyaWNfZmluYWxfbGluayk6IExpa2V3aXNlLgoJKiBvcG5jbHMuYyAoZmluZF9zZXBhcmF0ZV9kZWJ1Z19pbmZvKTogTGlrZXdpc2UuCgkqIHNpbXBsZS5jIChiZmRfc2ltcGxlX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IExpa2V3aXNlLgoKMjAwMy0wMy0yOCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IENvcnJlY3RseSBjb21iaW5lCgl2aXNpYmlsaXRpZXMuCgoyMDAzLTAzLTI3ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxheF9zZWN0aW9uKTogUmVzZXQgc2VsZl9kdHBtb2Rfb2Zmc2V0Cgl0byAtMSBiZWZvcmUgcmVjb21wdXRpbmcgZ290IG9mZnNldHMuCgoyMDAzLTAzLTI2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogZWxmMzItbTY4ay5jIChXSUxMX0NBTExfRklOSVNIX0RZTkFNSUNfU1lNQk9MKTogRGVmaW5lLgoJKGVsZl9tNjhrX3JlbG9jYXRlX3NlY3Rpb24pOiBVc2UgaXQgdG8gY29ycmVjdGx5IGhhbmRsZSBzeW1ib2xzCglmb3JjZWQgdG8gYmUgbG9jYWwuCgkoZWxmX202OGtfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogRW1pdCBSRUxBVElWRSByZWxvYyBmb3IgZ290CgllbnRyaWVzIGZvciBzeW1ib2xzIHRoYXQgYXJlIGZvcmNlZCB0byBiZSBsb2NhbC4KCjIwMDMtMDMtMjUgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfcmVsYXhfc2VjdGlvbik6IE5ldyBmdW5jdGlvbi4KCSogZWxmeHgtbWlwcy5oIChfYmZkX21pcHNfcmVsYXhfc2VjdGlvbik6IERlY2xhcmUuCgkqIGVsZm4zMi1taXBzLmMsIGVsZjY0LW1pcHMuYzogVXNlIGl0LgoKMjAwMy0wMy0yNSAgU3RhbiBDb3ggICA8c2NveEByZWRoYXQuY29tPgoJICAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJQ29udHJpYnV0ZSBzdXBwb3J0IGZvciBJbnRlbCdzIGlXTU1YdCBjaGlwIC0gYW4gQVJNIHZhcmlhbnQ6CgoJKiBhcmNodXJlcy5jOiBBZGQgYmZkX21hY2hfYXJtX2lXTU1YdC4KCSogcmVsb2MuYzogQWRkIEJGRF9SRUxPQ19BUk1fQ1BfT0ZGX0lNTV9TMi4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogY29mZi1hcm0uYyAoY29mZl9hcm1fbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IEFsbG93IGlXTU1YdAoJb2JqZWN0IGZpbGVzIHRvIGJlIGxpbmtlZCB3aXRoIFhTY2FsZSBvbmVzLgoJKGNvZmZfYXJtX2ZpbmFsX2xpbmtfcG9zdHNjcmlwdCk6IFVwZGF0ZSBub3RlIHNlY3Rpb24uCgkqIGNvZmZjb2RlLmggKGNvZmZfc2V0X2FyY2hfbWFjaF9ob29rKTogSGFuZGxlIG5vdGUgc2VjdGlvbi4KCSogY29mZmdlbi5jIChjb2ZmX3JlYWxfb2JqZWN0X3ApOiBDYWxsIGJmZF9jb2ZmX3NldF9hcmNoX21hY2hfaG9vawoJYWZ0ZXIgaWRlbnRpZnlpbmcgYSBjb2ZmIGJpbmFyeS4KCSogY3B1LWFybS5jIChwcm9jZXNzb3JzKTogQWRkIGlXTU1YdC4KCShhcmNoX2luZik6IExpa2V3aXNlLgoJKiBlbGYzMi1hcm0uaCAoYXJtX29iamVjdF9wKTogSGFuZGxlIG5vdGUgc2VjdGlvbi4KCShlbGYzMl9hcm1fbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IEFsbG93IGlXTU1YdCBvYmplY3QgZmlsZXMgdG8KCWJlIGxpbmtlZCB3aXRoIFhTY2FsZSBvbmVzLgoJKGVsZjMyX2FybV9zZWN0aW9uX2ZsYWdzKTogTmV3IGZ1bmN0aW9uOiBTZXQgZmxhZ3Mgb24gbm90ZSBzZWN0aW9uLgoJKGVsZjMyX2FybV9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogSGFuZGxlIG5vdGUgc2VjdGlvbi4KCjIwMDMtMDMtMjEgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogZWxmMzIteHN0b3JteTE2LmMgKGVsZjMyX3hzdG9ybXkxNl9yZWxvY2F0ZV9zZWN0aW9uKTogQ2FsbAoJX2JmZF9lbGZfcmVsYV9sb2NhbF9zeW0uCgoyMDAzLTAzLTIwICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxheF9zZWN0aW9uKTogRG9uJ3QgdHJ5IHJlbGF4IGZvcgoJbm9uLUVMRiBvdXRwdXRzLgoKMjAwMy0wMy0yMCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBlWFhpZ2VuLmMgKF9iZmRfWFhpX3N3YXBfYW91dGhkcl9vdXQpOiBJbml0aWFsaXNlICRpZGF0YTIgYW5kCgkkaWRhdGE1IGluIGNhc2UgYmZkX2NvZmZfZmluYWxfbGluayBpcyBub3QgY2FsbGVkLgoKMjAwMy0wMy0xOSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1zcGFyYy5jIChzdHJ1Y3Qgc3BhcmM2NF9lbGZfc2VjdGlvbl9kYXRhKTogQWRkIHJlbG9jX2NvdW50CglmaWVsZC4KCShjYW5vbl9yZWxvY19jb3VudCk6IERlZmluZS4KCShzcGFyYzY0X2VsZl9zbHVycF9vbmVfcmVsb2NfdGFibGUsIHNwYXJjNjRfZWxmX3NsdXJwX3JlbG9jX3RhYmxlLAoJc3BhcmM2NF9lbGZfY2Fub25pY2FsaXplX2R5bmFtaWNfcmVsb2MpOiBVc2UgaXQgaW5zdGVhZCBvZgoJcmVsb2NfY291bnQuCgkoc3BhcmM2NF9lbGZfY2Fub25pY2FsaXplX3JlbG9jKTogTmV3IHJvdXRpbmUuCgkoYmZkX2VsZjY0X2Nhbm9uaWNhbGl6ZV9yZWxvYyk6IERlZmluZS4KCjIwMDMtMDMtMTggIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbGF4X3NlY3Rpb24pOiBIYW5kbGUgcmVsYXhhdGlvbgoJYWdhaW50IG1lcmdlYWJsZSBzZWN0aW9ucy4gIFRha2Ugcl9hZGRlbmQgaW50byBhY2NvdW50IHdoZW4gY2FjaGluZwoJdHJhbXBvbGluZXMuCgoyMDAzLTAzLTE4ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmeHgtaWE2NC5jIChnZXRfZHluX3N5bV9pbmZvKTogUmV0dXJuIE5VTEwgZ3JhY2VmdWxseSBmb3IKCWxvY2FsIHN5bWJvbHMgdGhhdCBoYXZlIG5vIGR5bmluZm8uCgoyMDAzLTAzLTE0ICBHZW5lIFNtaXRoICA8Z2VuZS5zbWl0aEBzaWVtZW5zLmNvbT4KCgkqIGllZWUuYyAoaWVlZV93cml0ZV9leHByZXNzaW9uKTogSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHN5bWJvbCBpcwoJTlVMTC4KCUdlbmVyYWwgZm9ybWF0dGluZyBpbXByb3ZlbWVudHMuCgoyMDAzLTAzLTEzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmluIChMSU5HVUFTKTogQWRkIHpoX0NOLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIHBvL3poX0NOLnBvOiBOZXcgZmlsZS4KCjIwMDMtMDMtMTMgIEVsaWFzIEF0aGFuYXNvcG91bG9zICA8ZWxhdGhhbkBwaHlzLnVvYS5ncj4KCgkqIGFvdXQtY3Jpcy5jIChCWVRFU19JTl9XT1JEKTogRG9uJ3QgZGVmaW5lLgoJYW91dC1lbmNhcC5jOiBMaWtld2lzZS4KCWFvdXQtbnMzMmsuYzogTGlrZXdpc2UuCglhb3V0LXRpYzMwLmM6IExpa2V3aXNlLgoJaHAzMDBic2QuYzogTGlrZXdpc2UuCglpMzg2YW91dC5jOiBMaWtld2lzZS4KCWkzODZkeW5peC5jOiBMaWtld2lzZS4KCWkzODZsaW51eC5jOiBMaWtld2lzZS4KCWkzODZseW54LmM6IExpa2V3aXNlLgoJaTM4Nm1hY2gzLmM6IExpa2V3aXNlLgoJbTY4azRrbmV0YnNkLmM6IExpa2V3aXNlLgoJbTY4a2xpbnV4LmM6IExpa2V3aXNlLgoJbTY4a2x5bnguYzogTGlrZXdpc2UuCgltNjhrbmV0YnNkLmM6IExpa2V3aXNlLgoJbTg4a21hY2gzLmM6IExpa2V3aXNlLgoJbWlwc2JzZC5jOiBMaWtld2lzZS4KCW5ld3NvczMuYzogTGlrZXdpc2UuCglzcGFyY2xpbnV4LmM6IExpa2V3aXNlLgoJc3BhcmNseW54LmM6IExpa2V3aXNlLgoJc3BhcmNuZXRic2QuYzogTGlrZXdpc2UuCgl2YXhic2QuYzogTGlrZXdpc2UuIEZpeCBjb21tZW50IGZvcm1hdHRpbmcuCgoyMDAzLTAzLTEyICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIFJldmVydGVkIDIwMDMtMDMtMDIncyBwYXRjaC4KCgkqIGVsZnh4LXRhcmdldC5oIChiZmRfZWxmTk5fY2Fub25pY2FsaXplX3JlbG9jKTogTWFrZSBpdAoJb3ZlcnJpZGFibGUuCgkqIGVsZjY0LW1pcHMuYyAobWlwc19lbGY2NF9jYW5vbmljYWxpemVfcmVsb2MsCgltaXBzX2VsZjY0X2dldF9keW5hbWljX3JlbG9jX3VwcGVyX2JvdW5kLAoJbWlwc19lbGY2NF9jYW5vbmljYWxpemVfZHluYW1pY19yZWxvYyk6IE5ldywgYWRhcHRlZCBmcm9tIGVsZi5jLgoJKGJmZF9lbGY2NF9nZXRfY2Fub25pY2FsaXplX3JlbG9jLAoJYmZkX2VsZjY0X2dldF9keW5hbWljX3JlbG9jX3VwcGVyX2JvdW5kLAoJYmZkX2VsZjY0X2Nhbm9uaWNhbGl6ZV9keW5hbWljX3JlbG9jKTogRGVmaW5lLgoJKG1pcHNfZWxmNjRfc2x1cnBfcmVsb2NfdGFibGUpOiBTdXBwb3J0IGR5bmFtaWMuCgkobWlwc19lbGY2NF9zbHVycF9vbmVfcmVsb2NfdGFibGUpOiBBZGp1c3QuCgoyMDAzLTAzLTEyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogeHN5bS5jIChiZmRfc3ltX2ZldGNoX3R5cGVfaW5mb3JtYXRpb25fdGFibGVfZW50cnkpOiBDaGFuZ2UKCSdpbmRleCcgdG8gJ29mZnNldCcgaW4gdGVzdCBmb3IgemVybyB2YWx1ZS4KCjIwMDMtMDMtMTEgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9jcmVhdGVfZHluYW1pY19yZWxvY2F0aW9uKTogRG8gbm90IGNyZWF0ZQoJZHluYW1pYyByZWxvY2F0aW9ucyBwb2ludGluZyB0byBsb2NhbCBvciBzZWN0aW9uIHN5bWJvbHMsIHVzZSB0aGUKCU5VTEwgc3ltYm9sIGluc3RlYWQuICBEb2N1bWVudCB0aGUgY2hvaWNlIHRvIG5vdCBlbWl0IGFuCglhZGRpdGlvbmFsIFJfTUlQU182NCByZWxvY2F0aW9uLgoKMjAwMy0wMy0xMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBTdWJ0cmFjdCB0bHMgc2VnIHZtYSBmcm9tCgl6ZXJvIGluZGV4IGR5bmFtaWMgdGxzIHJlbG9jcyBnZW5lcmF0ZWQgZm9yIHRoZSBHT1QuICBUaWR5IGNvZGUuCglTZXQgInJlbG9jYXRpb24iIHRvIDEgb24gRFRQTU9EMzIgcmVsb2NzLiAgT3B0aW1pemUgSEEgYWRqdXN0bWVudC4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAzLTAzLTA3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItcHBjLmMgKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IERvbid0IGxvb2sgZm9yIGEgbm9wIGFmdGVyCglhIHRsc19nZXRfYWRkciBjYWxsLgoKCSogZWxmMzItcHBjLmMgKEVMSU1JTkFURV9DT1BZX1JFTE9DUyk6IERlZmluZSBhcyBvbmUuCgkocHBjX2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBGb3Igd2VhayBzeW1ib2xzLCBjb3B5CglFTEZfTElOS19OT05fR09UX1JFRiBmcm9tIHdlYWtkZWYuCgkqIGVsZjY0LXBwYy5jIChFTElNSU5BVEVfQ09QWV9SRUxPQ1MpOiBEZWZpbmUgYXMgb25lLgoJKHBwYzY0X2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBGb3Igd2VhayBzeW1ib2xzLCBjb3B5CglFTEZfTElOS19OT05fR09UX1JFRiBmcm9tIHdlYWtkZWYuCgkqIGVsZjMyLWkzODYuYyAoRUxJTUlOQVRFX0NPUFlfUkVMT0NTKTogRGVmaW5lIGFzIG9uZS4gIFVzZSB0aHJvdWdob3V0LgoJKGVsZl9pMzg2X2FkanVzdF9keW5hbWljX3N5bWJvbCk6IEZvciB3ZWFrIHN5bWJvbHMsIGNvcHkKCUVMRl9MSU5LX05PTl9HT1RfUkVGIGZyb20gd2Vha2RlZi4KCjIwMDMtMDMtMDYgIEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+CglBbmRyZXcgSGFsZXkgIDxhcGhAcmVkaGF0LmNvbT4KCgkqIGVsZmxpbmsuaCAoZWxmX2JmZF9kaXNjYXJkX2luZm8pOiBEb24ndCBwcm9jZXNzIGVoIGZyYW1lcyBpZgoJb3V0cHV0IGlzIHJlbG9jYXRlYWJsZS4KCjIwMDMtMDMtMDYgIFN0ZXZlbiBLb25vcGEgPHNrb25vcGFAa2dvLmNzYy5jb20+CgoJKiBzb20uYyAoc29tX2ZpeHVwX2Zvcm1hdHMpOiBDb3JyZWN0IGZvcm1hdHMgZm9yIFJfQVVYX1VOV0lORCBhbmQKCVJfQ09NTUVOVC4KCjIwMDMtMDMtMDYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9jcmVhdGVfbGlua2VyX3NlY3Rpb24pOiBEb24ndCBjYXBpdGFsaXplCgllcnJvciBtZXNzYWdlcy4KCShFTElNSU5BVEVfQ09QWV9SRUxPQ1MpOiBEZWZpbmUgdG8gemVyby4KCShwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCBkZXJlZiBodGFiLT50bHNfc2VjIHdoZW4gY2FsY3VsYXRpbmcKCVRMU0xEIHJlbG9jcy4gIFJlcG9ydCByZWxvYyB0eXBlcyBvbiBhIG51bWJlciBvZiBlcnJvcnMuICBPcHRpbWl6ZQoJTE9DQUwyNFBDIGNoZWNrIGZvciBub24tbG9jYWwgc3ltcy4gIERvbid0IGNhcGl0YWxpemUgZXJyb3IgbWVzc2FnZXMuCgkqIGVsZjY0LXBwYy5jIChFTElNSU5BVEVfQ09QWV9SRUxPQ1MpOiBEZWZpbmUgdG8gemVyby4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IERvbid0IGRlcmVmIGh0YWItPnRsc19zZWMgd2hlbgoJY2FsY3VsYXRpbmcgVExTTEQgcmVsb2NzLiAgUmVwb3J0IHJlbG9jIHR5cGVzIG9uIGEgbnVtYmVyIG9mIGVycm9ycy4KCURvbid0IGNhcGl0YWxpemUgZXJyb3IgbWVzc2FnZXMuCgoyMDAzLTAzLTAzICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZnh4LWlhNjQuYyAoVVNFX0JSTCk6IFJlbW92ZWQuCgkob29yX2lwKTogUmVtb3ZlZC4KCjIwMDMtMDMtMDMgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tPgoKCSogZWxmMzItc2guYyAoc2hfZWxmX2hvd3RvX3RhYik6IE1ha2UgUl9TSF9JTkQxMlcgaW50byBhbiBvcmRpbmFyeQoJcmVsb2NhdGlvbiAobm8gc3BlY2lhbCBmdW5jdGlvbiksIGFuZCBtYWtlIGl0IG5vbi1wYXJ0aWFsX2lucGxhY2UuCgkoc2hfZWxmX3JlbGF4X3NlY3Rpb24pOiBXaGVuIGNyZWF0aW5nIGEgYnNyLCB1c2UgYSBjb25zaXN0ZW50IHZhbHVlCglubyBtYXR0ZXIgaWYgdGhlIHN5bWJvbCBpcyBleHRlcm4gb3Igbm90OyAgc2V0IGFkZGVuZCB0byAtNC4KCURvbid0IHN3YXAgbG9hZCAvIG5vbi1sb2FkIGluc3RydWN0aW9ucyBmb3IgU0g0LgoJKHNoX2VsZl9yZWxheF9kZWxldGVfYnl0ZXMpOiBJbiBSX1NIX0lORDEyVyBjYXNlLCBjaGVjayB0aGUgb2Zmc2V0CglyYXRoZXIgdGhhbiBpZiB0aGUgc3ltYm9sIGlzIGV4dGVybmFsIHRvIGRldGVybWluZSBpZiBhZGp1c3RpbmcgdGhlCglvZmZzZXQgbWFrZXMgc2Vuc2UuICBBZGp1c3QgdGhlIGFkZGVuZCB0b28gaWYgYXBwcm9wcmlhdGUuCgkoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBJbiBSX1NIX0lORDEyVywgZG9uJ3QgZmlkZGxlIHdpdGggdGhlCglyZWxvY2F0aW9uLgoKMjAwMy0wMy0wMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL2RhLnBvOiBJbnN0YWxsZWQgbGF0ZXN0IHRyYW5zbGF0aW9uLgoKMjAwMy0wMy0wMiAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZjMyLW1pcHMuYyAoZWxmX21pcHNfaG93dG9fdGFibGVfcmVsKTogQ2hhbmdlIGRlZmluaXRpb24gb2YKCVJfTUlQU19QQzE2IHRvIHJpZ2h0c2hpZnQgMi4KCShlbGZfcmVsb2NfbWFwIG1pcHNfcmVsb2NfbWFwKTogTWFwIHRvIHJpZ2h0c2hpZnRlZCBCRkQgcmVsb2MuCgkoYmZkX2VsZjMyX2JmZF9yZWxvY190eXBlX2xvb2t1cCk6IFN1cHBvcnQKCUJGRF9SRUxPQ19NSVBTRU1CXzE2X1BDUkVMX1MyLgoJKiBlbGY2NC1taXBzLmMgKG1pcHNfZWxmNjRfaG93dG9fdGFibGVfcmVsKTogQ2hhbmdlIGRlZmluaXRpb24gb2YKCVJfTUlQU19QQzE2IHRvIHJpZ2h0c2hpZnQgMi4KCShtaXBzX2VsZjY0X2hvd3RvX3RhYmxlX3JlbGEpOiBMaWtld2lzZS4KCShtaXBzX3JlbG9jX21hcCk6IE1hcCB0byByaWdodHNoaWZ0ZWQgQkZEIHJlbG9jLgoJKiBlbGZuMzItbWlwcy5jOiBUaGUgc2FtZSBhcyBpbiBlbGY2NC1taXBzLmMuCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfZ290X2Zvcl9pYmZkKTogVHlwbyBpbiBjb21tZW50LgoJKG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogSGFuZGxlIHJpZ2h0c2hpZnRlZCBhZGRlbmRzIGZvcgoJUl9NSVBTX1BDMTYuCgkqIHJlbG9jLmMgKEJGRF9SRUxPQ19NSVBTRU1CXzE2X1BDUkVMX1MyKTogTmV3IEJGRCByZWxvY2F0aW9uIGZvcgoJTUlQUyBFbWJlZGRlZCBQSUMuIFJlbW92ZSBzdXBlcmZsdW91cyBlbXB0eSBDT01NRU5ULgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMy0wMi0yOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxheF9zZWN0aW9uKTogQ29ycmVjdCBib3VuZHMKCWZvciBsdG9mZjIyeCByZWxheGF0aW9uLgoKMjAwMy0wMy0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGJmZC1pbi5oIChfYmZkKTogRG9uJ3QgZGVmaW5lLgoJKiBiZmQuYzogUmVuYW1lIG9jY3VycmVuY2VzIG9mICJzdHJ1Y3QgX2JmZCIgdG8gInN0cnVjdCBiZmQiLgoJKiBzeW1zLmM6IExpa2V3aXNlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAzLTAyLTI3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmeHgtaWE2NC5jIChzdHJ1Y3QgZWxmTk5faWE2NF9keW5fc3ltX2luZm8pOiBBZGQgd2FudF9nb3R4OwoJKGVsZk5OX2lhNjRfY2hlY2tfcmVsb2NzKTogU2V0IGl0LgoJKGFsbG9jYXRlX2dsb2JhbF9kYXRhX2dvdCk6IENoZWNrIGl0LgoJKGFsbG9jYXRlX2xvY2FsX2dvdCk6IExpa2V3aXNlLgoJKGFsbG9jYXRlX2R5bnJlbF9lbnRyaWVzKTogTGlrZXdpc2UuCgkoZWxmTk5faWE2NF9yZWxheF9sZHhtb3YpOiBOZXcuCgkoZWxmTk5faWE2NF9yZWxheF9zZWN0aW9uKTogSGFuZGxlIExUT0ZGMjJYLCBMRFhNT1YuCgkoZWxmTk5faWE2NF9jaG9vc2VfZ3ApOiBTcGxpdCBvdXQgZnJvbSAuLi4KCShlbGZOTl9pYTY0X2ZpbmFsX2xpbmspOiAuLi4gaGVyZS4KCjIwMDMtMDItMjcgIEFuZHJldyBDYWduZXkgIDxjYWduZXlAcmVkaGF0LmNvbT4KCgkqIGJmZC5jIChzdHJ1Y3QgYmZkKTogUmVuYW1lICJzdHJ1Y3QgX2JmZCIuCgkqIGJmZC1pbi5oOiBVcGRhdGUgY29weXJpZ2h0LgoJKHN0cnVjdCBiZmQpOiBSZW5hbWUgInN0cnVjdCBfYmZkIi4KCShfYmZkKTogRGVmaW5lIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAzLTAyLTI1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmbGluay5oIChlbGZfYmZkX2ZpbmFsX2xpbmspOiBBcHBvcnRpb24gcmVsb2MgY291bnRzIHRvIHJlbF9oZHIKCWFuZCByZWxfaGRyMiB3aGVuIGluaXRpYWxseSBjb3VudGluZyBpbnB1dCByZWxvY3MgcmF0aGVyIHRoYW4gYWZ0ZXIKCWNyZWF0aW5nIG91dHB1dCByZWxvYyBzZWN0aW9ucy4KCShlbGZfbGlua19yZWFkX3JlbG9jc19mcm9tX3NlY3Rpb24pOiBEb24ndCBhYm9ydCB3aXRoIHdyb25nIHJlbG9jCglzaXplcy4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAzLTAyLTI0ICBLcmlzIFdhcmtlbnRpbiAgPGtld2Fya2VuQHFueC5jb20+CgoJKiBlbGYuYyAoZWxmY29yZV9yZWFkX25vdGVzKTogQWRkIGNoZWNrIGZvciBRTlggc3R5bGUgY29yZSBmaWxlLgoJKGVsZmNvcmVfZ3JvZ19udG9fbm90ZSk6IE5ldyBmdW5jdGlvbi4KCShlbGZjb3JlX2dyb2dfbnRvX2dyZWdzKTogTmV3IGZ1bmN0aW9uLgoJKGVsZmNvcmVfZ3JvZ19udG9fc3RhdHVzKTogTmV3IGZ1bmN0aW9uLgoKMjAwMy0wMi0yNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfY3JlYXRlX2dvdF9zZWN0aW9uKTogQ2hlY2sgZXhpc3RpbmcgLmdvdAoJc2VjdGlvbiBmbGFncyBiZWZvcmUgY29uY2x1ZGluZyB0aGF0IHdlJ3ZlIGFscmVhZHkgYmVlbiBjYWxsZWQuCglEb24ndCB1c2UgcmVnaXN0ZXIga2V5d29yZC4KCShfYmZkX2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IERvbid0IHVzZSByZWdpc3RlciBrZXl3b3JkLgoJKF9iZmRfZWxmX2NyZWF0ZV9saW5rZXJfc2VjdGlvbik6IEZvcm1hdHRpbmcuCgoyMDAzLTAyLTIwICBqbWMgIDxqbWNAcHJpb3Jpcy5taW5pLnB3LmVkdS5wbD4KCgkqIGNvZmYtaDgzMDAuYzogRml4IHR5cG86IGludGlhbCAtPiBpbml0aWFsLgoJKiBjb2ZmLXBwYy5jOiBMaWtld2lzZS4KCjIwMDMtMDItMjAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1wcGMuYzogRm9ybWF0dGluZy4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBMRCBhbmQgR0QgcmVsb2NzIGFnYWluc3QgdGhlIHNhbWUgc3ltIG5lZWQKCXNlcGFyYXRlIEdPVCBlbnRyaWVzLgoJKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IENvcnJlY3QgR09UIGhhbmRsaW5nIGZvciBtdWx0aXBsZSBHT1QKCWVudHJpZXMgcGVyIHN5bWJvbC4KCjIwMDMtMDItMTkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfZ2Nfc3dlZXBfaG9vayk6IFNpbXBsaWZ5IGR5bmFtaWMgcmVsb2MKCXJlbW92YWwuICBMb2NhbGl6ZSB2YXJzLiAgUmVtb3ZlIHVubmVjZXNzYXJ5IGR5bm9iaiB0ZXN0LgoJKiBlbGYzMi1pMzg2IChXSUxMX0NBTExfRklOSVNIX0RZTkFNSUNfU1lNQk9MKTogUGFzcyBTSEFSRUQgaW5zdGVhZAoJb2YgSU5GTy4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBBZGp1c3QgV0lMTF9DQUxMX0ZJTklTSF9EWU5BTUlDX1NZTUJPTCB1c2VzLAoJYW5kIG9wdGltaXplLgoJKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCShlbGZfaTM4Nl9nY19zd2VlcF9ob29rKTogU2ltcGxpZnkgZHluIHJlbG9jIHJlbW92YWwuICBMb2NhbGl6ZSB2YXJzLgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9zMzkwX2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItc2guYyAoc2hfZWxmX2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jIChlbGZfczM5MF9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1zcGFyYy5jIChlbGYzMl9zcGFyY19nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuICBSZW1vdmUKCWxvY2FsX2R5bnJlbCBmb3Igc2VjdGlvbiB0b28uICBEb24ndCB0b3VjaCBISVBMVDIyLCBMT1BMVDEwLCBQQ1BMVDMyCglvciBQQ1BMVDEwIHJlbG9jcy4gIERvbid0IHN1YnRyYWN0IHR3aWNlIG9uIFBMVDMyIHJlbG9jcy4KCUZvcm1hdHRpbmcuCgoJKiBlbGY2NC1wcGMuYyAoRUxJTUlOQVRFX0NPUFlfUkVMT0NTKTogRGVmaW5lLgoJKHBwYzY0X2VsZl9jaGVja19yZWxvY3MpOiBVc2UgaXQuICBDb3JyZWN0IGNvbW1lbnQuICBNb3ZlIFNFQ19BTExPQwoJdGVzdC4KCShwcGM2NF9lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogVXNlIEVMSU1JTkFURV9DT1BZX1JFTE9DUy4KCShXSUxMX0NBTExfRklOSVNIX0RZTkFNSUNfU1lNQk9MKTogUGFzcyBTSEFSRUQgaW5zdGVhZCBvZiBJTkZPLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IEFkanVzdCBXSUxMX0NBTExfRklOSVNIX0RZTkFNSUNfU1lNQk9MIHVzZXMsCglhbmQgb3B0aW1pemUuICBVc2UgRUxJTUlOQVRFX0NPUFlfUkVMT0NTLgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoJKiBlbGYzMi1wcGMuYyAoc3RydWN0IHBwY19lbGZfZHluX3JlbG9jcyk6IEFkZCBwY19jb3VudCBmaWVsZC4KCShwcGNfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogQ29weSBwY19jb3VudCBmaWVsZC4KCShFTElNSU5BVEVfQ09QWV9SRUxPQ1MpOiBEZWZpbmUuCgkocHBjX2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBDb252ZXJ0IGNvcHkgcmVsb2NzIHRvIGR5bmFtaWMuCgkoV0lMTF9DQUxMX0ZJTklTSF9EWU5BTUlDX1NZTUJPTCk6IFBhc3MgU0hBUkVEIGluc3RlYWQgb2YgSU5GTy4KCShNVVNUX0JFX0RZTl9SRUxPQyk6IERlZmluZS4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBBZGp1c3QgV0lMTF9DQUxMX0ZJTklTSF9EWU5BTUlDX1NZTUJPTCB1c2VzLAoJYW5kIG9wdGltaXplLiAgVHJpbSBkeW5fcmVsb2NzLgoJKHBwY19lbGZfY2hlY2tfcmVsb2NzKTogRG9uJ3QgZ2VuZXJhdGUgZHluX3JlbG9jcyB3aGVuIHdlIGtub3cgdGhleSdsbAoJbm90IGJlIHVzZWQuICBEbyBnZW5lcmF0ZSBkeW5fcmVsb2NzIGZvciBjb3B5IHJlbG9jIGF2b2lkYW5jZS4gIEtlZXAKCXRyYWNrIG9mIHBjX3JlbCBkeW4gcmVsb2NzLgoJKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFJlbW92ZSAid2lsbF9iZWNvbWVfbG9jYWwiLiAgQWRqdXN0CglXSUxMX0NBTExfRklOSVNIX0RZTkFNSUNfU1lNQk9MIHVzZS4gIFRyaW0gZHluIHJlbG9jcyBhcyBwZXIKCWFsbG9jYXRlX2R5bnJlbG9jcy4gIERvbid0IHJlY2FsY3VsYXRlICJzZWMiLgoKMjAwMy0wMi0xOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBSZW1vdmUgdW5uZWNlc3NhcnkgdGVzdC4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl90bHNfb3B0aW1pemUpOiBEZWNyZW1lbnQgdGxzbGRfZ290LnJlZmNvdW50CglvbiBpbnZhbGlkIExEIHJlbG9jcy4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBJbnZhbGlkIExEIHJlbG9jcyBkb24ndCB1c2UgdGxzbGRfZ290IGVudHJ5LgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogVW5pZnkgbmV3IGhhbmRsaW5nIG9mIExEIHJlbG9jcyBhbmQKCXRsc2xkX2dvdCBlbnRyeS4gIFVzZSBJU19QUEM2NF9UTFNfUkVMT0MuCgoJKiBlbGYzMi1wcGMuaDogTmV3IGZpbGUuCgkqIGVsZjMyLXBwYy5jOiBJbmNsdWRlIGVsZjMyLXBwYy5oLgoJKE5PUCwgQ1JPUl8xNTE1MTUsIENST1JfMzEzMTMxLCBUUF9PRkZTRVQsIERUUF9PRkZTRVQpOiBEZWZpbmUuCgkoc3RydWN0IHBwY19lbGZfbGlua19oYXNoX2VudHJ5KTogUmVuYW1lICJyb290IiB0byAiZWxmIi4gIEFkanVzdCB1c2VzLgoJQWRkICJ0bHNfbWFzayIgZmllbGQuCgkoVExTX0dELCBUTFNfTEQsIFRMU19UUFJFTCwgVExTX0RUUFJFTCwgVExTX1RMUywgVExTX1RQUkVMR0QpOiBEZWZpbmUuCgkoc3RydWN0IHBwY19lbGZfbGlua19oYXNoX3RhYmxlKTogUmVuYW1lICJyb290IiB0byAiZWxmIi4gIEFkanVzdCB1c2VzLgoJQWRkIGdvdCwgcmVsZ290LCBwbHQsIHJlbHBsdCwgZHluYnNzLCByZWxic3MsIGR5bnNic3MsIHJlbHNic3MsCglzZGF0YSwgc2RhdGEyLCB0bHNfc2VjLCB0bHNfZ2V0X2FkZHIsIHRsc2xkX2dvdCBmaWVsZHMuCglNYWtlIHVzZSBvZiBodGFiIHNob3J0Y3V0cyB0aHJvdWdob3V0IGZpbGUuCgkocHBjX2VsZl9saW5rX2hhc2hfbmV3ZnVuYyk6IEluaXQgdGxzX21hc2sgZmllbGQuCgkocHBjX2VsZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogSW5pdCBuZXcgZmllbGRzLgoJKHBwY19lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBDb3B5IHRsc19tYXNrLgoJKHBwY19lbGZfaG93dG9fcmF3KTogQWRkIHRscyByZWxvY3MuCgkocHBjX2VsZl9yZWxvY190eXBlX2xvb2t1cCk6IEhhbmRsZSB0aGVtLgoJKHBwY19lbGZfdW5oYW5kbGVkX3JlbG9jKTogTmV3IGZ1bmN0aW9uLgoJKHBwY19lbGZfY3JlYXRlX2dvdCk6IFN0YXNoIGdvdCBzZWN0aW9uIHBvaW50ZXIgaW4gaGFzaCB0YWJsZSwKCXJldHVybiBzdGF0dXMuICBNYWtlIC5yZWxhLmdvdCB0b28uCgkocHBjX2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IFN0YXNoIHNlY3Rpb24gcG9pbnRlcnMgaW4gaHRhYi4KCShwcGNfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IE9ubHkgc2V0IHVwIGNvcHkgcmVsb2NzIHdoZW4KCU5PTl9HT1RfUkVGIHNldC4gIERvbid0IGFsbG9jYXRlIHNwYWNlIGluIC5wbHQgaGVyZS4uCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogLi5kbyBzbyBoZXJlIGluc3RlYWQsIHByb3Blcmx5IHJlZi1jb3VudGluZyBhbmQKCW5vdCBhbGxvY2F0aW5nIHBsdCBlbnRyaWVzIHVubmVjZXNzYXJpbHkuICBBbGxvY2F0ZSBnb3QgZW50cmllcyBoZXJlLgoJKFdJTExfQ0FMTF9GSU5JU0hfRFlOQU1JQ19TWU1CT0wpOiBEZWZpbmUuCgkocHBjX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBBbGxvY2F0ZSBsb2NhbCBnb3QgZW50cmllcy4gIFBhc3MKCSJpbmZvIiBkdXJpbmcgYWxsb2NhdGVfZHlucmVsb2NzIGhhc2ggdHJhdmVyc2FsLiAgVXNlIGh0YWIgc2VjdGlvbgoJc2hvcnRjdXRzIHJhdGhlciB0aGFuIHNlYXJjaGluZyBmb3IgbmFtZWQgc2VjdGlvbnMuICBHZXQgcmlkIG9mCgkicGx0IiBhbmQgInN0cmlwIiBib29sZWFucy4KCSh1cGRhdGVfbG9jYWxfc3ltX2luZm8sIGJhZF9zaGFyZWRfcmVsb2MpOiBOZXcgZnVuY3Rpb25zLgoJKHBwY19lbGZfY2hlY2tfcmVsb2NzKTogSGFuZGxlIFRMUyByZWxvY3MuICBNb3ZlIC5yZWxhLmdvdCBjcmVhdGlvbiB0bwoJcHBjX2VsZl9jcmVhdGVfZ290LiAgRG9uJ3QgbWFyayBnb3Qgb3IgcGx0IHJlbG9jIHN5bXMgZHluYW1pYywgZG8gc28KCWluIGFsbG9jYXRlX2R5bnJlbG9jLiAgVXNlIHVwZGF0ZV9sb2NhbF9zeW1faW5mbyBhbmQgYmFkX3NoYXJlZF9yZWxvYy4KCURpc2FsbG93IFJfUFBDX0VNQl9SRUxTREEsIFJfUFBDX0VNQl9OQUREUjMyLCBSX1BQQ19FTUJfTkFERFIxNiwKCVJfUFBDX0VNQl9OQUREUjE2X0xPLCBSX1BQQ19FTUJfTkFERFIxNl9ISSBhbmQgUl9QUENfRU1CX05BRERSMTZfSEEKCWluIHNoYXJlZCBsaWJzLiAgUl9QUENfUExUUkVMMzIgaXMgYSBwbHQgcmVsb2MgdG9vLiAgUmVmY291bnQgYWxsCglyZWxvY3MgdGhhdCBtaWdodCB1c2UgYSBwbHQgZW50cnkuICBTZXQgTk9OX0dPVF9SRUYgdG9vLgoJRW51bWVyYXRlIGFsbCBkby1ub3RoaW5nIHJlbG9jcy4KCShwcGNfZWxmX2djX3N3ZWVwX2hvb2spOiBTaW1wbGlmeSByZW1vdmFsIG9mIGR5bnJlbG9jcy4gIEhhbmRsZQoJdGxzIHJlbG9jcyBhbmQgYWxsIHBsdCByZWxvY3MuCgkocHBjX2VsZl90bHNfc2V0dXAsIHBwY19lbGZfdGxzX29wdGltaXplKTogTmV3IGZ1bmN0aW9ucy4KCShwcGNfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IERvbid0IGJ1aWxkIGdvdCBlbnRyaWVzIGhlcmUuCgkocHBjX2VsZl9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IFJld3JpdGUgdGFnIGNvZGUgdXNpbmcgaHRhYgoJc2hvcnRjdXRzLgoJKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFRpZHkuICBIYW5kbGUgVExTIHJlbG9jcy4gIFVzZQoJYmZkX2VsZl9sb2NhbF9zeW1fbmFtZS4gIFNpbXBsaWZ5IHVucmVzb2x2ZWQgcmVsb2MgY29kZS4gIEJ1aWxkIGdvdAoJZW50cmllcyBhbmQgZ290IHJlbG9jcyBoZXJlLiAgV2FybiBvbiBub24temVybyBnb3QgcmVsb2MgYWRkZW5kLgoJU3BsaXQgb3V0IGJyYW5jaCB0YWtlbi9ub3QgdGFrZW4gcmVsb2MgY29kZSBpbnRvIGEgc2VwYXJhdGUgc3dpdGNoCglhbmQgY29ycmVjdCBvZmZzZXQgY2FsY3VsYXRpb24uIEFsbG93IEJSVEFLRU4vQlJOVEFLRU4gZHluYW1pYyByZWxvY3MuCglTcGxpdCBvdXQgSEEgcmVsb2MgYWRqdXN0bWVudHMgdG8gc2VwYXJhdGUgc3dpdGNoIHN0YXRlbWVudC4gIERvbid0Cgl3YXJuIG9uIHJlbG9jIG92ZXJmbG93IGlmIHdlJ3ZlIGFscmVhZHkgd2FybmVkIGFib3V0IHVuZGVmaW5lZC4KCURvbid0IHJlYnVpbGQgc3ltIG5hbWUgd2hlbiByZXBvcnRpbmcgZXJyb3JzLiAgUmVwb3J0IGFsbCBwb3NzaWJsZQoJZXJyb3JzIGZyb20gX2JmZF9maW5hbF9saW5rX3JlbG9jYXRlLgoJKGJmZF9lbGYzMl9iZmRfZmluYWxfbGluayk6IERvbid0IGRlZmluZS4KCjIwMDMtMDItMTggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCBpbml0ICJyIi4gIERvbid0CglyZWJ1aWxkIHN5bSBuYW1lIHdoZW4gcmVwb3J0aW5nIGVycm9ycy4KCjIwMDMtMDItMTcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX291dHB1dF9leHRzeW0pOiBPbmx5IGNoZWNrCglhbGxvd19zaGxpYl91bmRlZmluZWQgZm9yIHNoYXJlZCBsaWJyYXJpZXMuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IFJlbW92ZSBib2d1cyBjaGVjawoJb2YgYWxsb3dfc2hsaWJfdW5kZWZpbmVkLgoJKiBlbGYzMi1jcmlzLmMgKGNyaXNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jIChlbGZfbTY4a19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItczM5MC5jIChlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItdmF4LmMgKGVsZl92YXhfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LWhwcGEuYyAoZWxmNjRfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDMtMDItMTcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbGYuYyAoU0VHTUVOVF9BRlRFUl9TRUdNRU5UKTogQWRkIHRoaXJkIHBhcmFtZXRlciAtIHRoZQoJYWRkcmVzcyBmaWVsZCB0byB1c2UgaW4gdGhlIGNvbXBhcmlzb24uCgkoU0VHTUVOVF9PVkVSTEFQUyk6IENoZWNrIHRoYXQgTE1BcyBvdmVybGFwIGFzIHdlbGwuCgoyMDAzLTAyLTE0ICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogZWxmY29yZS5oIChlbGZfY29yZV9maWxlX3ApOiBDb21wYXJlIGFsdGVybmF0ZSBtYWNoaW5lIGNvZGVzIGZvciBFTEYKCWJhY2tlbmRzIHdoZW4gY2hlY2tpbmcgaWYgdGhlIGdlbmVyaWMgRUxGIHRhcmdldCBzaG91bGQgYmUgdXNlZC4KCgkqIHN5bXMuYyAoX2JmZF9zdGFiX3NlY3Rpb25fZmluZF9uZWFyZXN0X2xpbmUpOiBGb3IgbGluZSBudW1iZXIgc3RhYnMKCW91dHNpZGUgb2YgZnVuY3Rpb25zLCB0cmVhdCB2YWx1ZXMgYXMgYWJzb2x1dGUgYWRkcmVzc2VzLgoKCSogYmZkLmM6IENoYW5nZSBlbWJlZGRlZCBkb2N1bWVudGF0aW9uIHRvIHVzZSBjb25zaXN0ZW50IGluZGVudGF0aW9uCglhbmQgdG8gc3BsaXQgdXAgbG9uZyBsaW5lcy4gIENoYW5nZSBpbmZvcm1hbCBzdHlsZSBvZiBkZXNjcmlwdGlvbgoJZm9yIGZ1bmN0aW9ucyBsYWNraW5nIHJlYWwgZG9jdW1lbnRhdGlvbi4KCSogY29mZmNvZGUuaDogQnJlYWsgdXAgbG9uZyBsaW5lcyBpbiBlbWJlZGRlZCBkb2N1bWVudGF0aW9uLgoJKiBmb3JtYXQuYzogTGlrZXdpc2UuCgkqIHRhcmdldHMuYzogTGlrZXdpc2UuCgkqIGxpYmNvZmYuaDogUmVnZW5lcmF0ZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMy0wMi0xNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IEluaXQgdGxzX2dldF9hZGRyLgoJKHBwYzY0X2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IE1lcmdlIHRsc19tYXNrIHRvby4KCShwcGM2NF9lbGZfZ2Nfc3dlZXBfaG9vayk6IFNpbXBsaWZ5IHJlbW92YWwgb2YgZHluX3JlbG9jcy4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBEb24ndCB0cmVhdCB1bmRlZmluZWQgYW5kIHVuZGVmd2VhayBzcGVjaWFsbHkuCgkocHBjX3NpemVfb25lX3N0dWIpOiBGaXggd2FybmluZywgYW5kIHRpZ2h0ZW4gcGx0IGVudHJ5IGNoZWNrLgoJKGdyb3VwX3NlY3Rpb25zKTogRG9uJ3Qgc2hhcmUgYSBzdHViIHNlY3Rpb24gaWYgc3R1YnMgYXJlIGZvciBhIGxhcmdlCglzZWN0aW9uLiAgQWRqdXN0IGNvbW1lbnQuCgkocHBjNjRfZWxmX3NpemVfc3R1YnMpOiBSb3VnaGx5IGRvdWJsZSB0aGUgc2l6ZSBsZWZ0IGZvciBzdHVicyBpZgoJIXN0dWJzX2Fsd2F5c19iZWZvcmVfYnJhbmNoLgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogSW5pdGlhbGl6ZSB0bHNsZCBHT1QgZW50cnkgb25jZS4gIERvbid0Cgl0cmVhdCB1bmRlZmluZWQgYW5kIHVuZGVmd2VhayBzcGVjaWFsbHkgd2hlbiBwcm9jZXNzaW5nIGR5biByZWxvY3MuCgoyMDAzLTAyLTEzICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogSGFuZGxlIC5zeW12ZXIgeCwgeEBGT08uCgoyMDAzLTAyLTEzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmMzItYXJtLmggKGVsZjMyX3RodW1iX3RvX2FybV9zdHViKTogSW5jbHVkZSBzZWN0aW9uIFZNQXMKCWluIGNvbXB1dGF0aW9uIG9mIG9mZnNldCB0byBpbnNlcnQgaW50byBCTCBpbnN0cnVjdGlvbi4KCjIwMDMtMDItMTEgIFV3ZSBTdGllYmVyICA8dXdlQHd3d3MuZGU+CgoJKiBjb25maWcuYmZkOiBBZGQgc3VwcG9ydCBmb3Iga2FPUyBhcyBjcm9zcyBidWlsZCB0YXJnZXQgc3lzdGVtLgoKMjAwMy0wMi0xMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfY2hlY2tfcmVsb2NzKTogTWF0Y2ggdmVyc2lvbmVkCgkuX190bHNfZ2V0X2FkZHIgdG9vLgoJKHBwYzY0X2VsZl90bHNfc2V0dXApOiBFbnN1cmUgY2FjaGVkIHRsc19nZXRfYWRkciBpcyBub3QgaW5kaXJlY3QuCgoyMDAzLTAyLTEwICBLYXoga29qaW1hICA8a2tvamltYUByci5paWo0dS5vci5qcD4KCgkqIGVsZjMyLXNoLmMgKGVsZl9zaF9keW5fcmVsb2NzKTogQWRkIHRsc190cG9mZjMyIGZpZWxkLgoJKGVsZl9zaF9saW5rX2hhc2hfZW50cnkpOiBSZW1vdmUgdGxzX3Rwb2ZmMzIgZmllbGQuCgkoc2hfZWxmX2xpbmtfaGFzaF9uZXdmdW5jKTogUmVtb3ZlIHRoZSBpbml0aWFsaXphdGlvbiBvZgoJdGxzX3Rwb2ZmMzIgZmllbGQuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogS2VlcCBkeW5fcmVsb2NzIGlmIGl0IGluY2x1ZGVzIHRoZSBlbnRyeQoJZm9yIHdoaWNoIHRsc190cG9mZjMyIGZsYWcgaXMgc2V0LgoJKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogQ292ZXJ0IHRvIExFIG9ubHkgaWYgdGhlIGR5bl9yZWxvY3MKCW9mIHRoZSBzeW1ib2wgaW5jbHVkZXMgdGhlIGVudHJ5IG1hdGNoZWQgd2l0aCB0aGUgaW5wdXRfc2VjdGlvbgoJYW5kIGhhdmluZyB0bHNfdHBvZmYzMiBmbGFnIG9uLiAgV2hlbiBsaW5raW5nIHN0YXRpY2FsbHksIHNldAoJc3ltYm9sIGluZGV4IG9mIFJfU0hfVExTX1RQT0ZGMzIgcmVsb2NhdGlvbiB0byB6ZXJvIGlmIHRoZSBzeW1ib2wKCWlzIGRlZmluZWQgaW4gdGhpcyBleGVjdXRhYmxlLgoJKHNoX2VsZl9jaGVja19yZWxvY3MpOiBTZXQgdGxzX3Rwb2ZmMzIgZmxhZyBhcHByb3ByaWF0ZWx5LgoKMjAwMy0wMi0xMCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9zMzkwX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFNldCByZWxvY3MgdG8gVFJVRQoJZXZlbiBpZiB0aGVyZSBpcyBqdXN0IG5vbi1lbXB0eSAucmVsYS5wbHQuCgoyMDAzLTAyLTEwICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogYXJjaHVyZXMuYyAoYmZkX21hY2hfYXJtX2VwOTMxMik6IERlZmluZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBjcHUtYXJtLmMgKHByb2Nlc3NvcnNbXSk6IEFkZCBlcDkzMTIuCgkoYmZkX2FybV9hcmNoKTogQWRkIGVwOTMxMi4KCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9tZXJnZV9wcml2YXRlX2RhdGEpOiBVcGRhdGUgZXJyb3IKCW1lc3NhZ2VzIGFuZCBhZGQgdGVzdCBmb3IgTWF2ZXJpY2sgZmxvYXRpbmcgcG9pbnQgc3VwcG9ydC4KCShlbGYzMl9hcm1fcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IEhhbmRsZQoJRUZfQVJNX01BVkVSSUNLX0ZMT0FUIGZsYWcuCgkoZWxmMzJfYXJtX29iamVjdF9wKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9iYWNrZW5kX29iamVjdF9wKTogRGVmaW5lLgoKMjAwMy0wMi0xMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jOiBSZW5hbWUgYXNzb3J0ZWQgb2NjdXJyZW5jZXMgb2YgdGxzX3R5cGUgYW5kIHNpbWlsYXIKCXZhcmlhYmxlcywgc3RydWN0dXJlIGZpZWxkcyBvciBmdW5jdGlvbiBwYXJhbXMgdG8gdGxzX21hc2sgb3IKCXNpbWlsYXIgdG8gYmV0dGVyIHJlZmxlY3QgdXNhZ2UuCgkoc3RydWN0IGdvdF9lbnRyeSk6IENvbW1lbnQuCgkoc3RydWN0IHBwY19saW5rX2hhc2hfZW50cnkpOiBFeHBhbmQgY29tbWVudCwgYW5kIHJlbnVtYmVyIFRMU18qLgoJKGdldF90bHNfbWFzayk6IFJlbmFtZSBmcm9tIGdldF90bHNfdHlwZS4KCjIwMDMtMDItMDkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAoVExTX0dEX0xEKTogRG9uJ3QgZGVmaW5lLi4KCShUTFNfR0QpOiAuLmRlZmluZSB0aGlzIGluc3RlYWQgYW5kIHVwZGF0ZSBhbGwgdXNlcy4KCShUTFNfVFBSRUxHRCk6IERlZmluZS4KCShwcGM2NF9lbGZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IFR3ZWFrIGluaXRpYWxpemF0aW9uIG9mCglpbml0X3JlZmNvdW50IGFuZCBpbml0X29mZnNldC4KCShwcGM2NF9lbGZfY2hlY2tfcmVsb2NzKTogQWRkIG9uZSBleHRyYSBlbGVtZW50IHRvIHRfc3ltbmR4IGFycmF5LgoJTWFyayBzZWNvbmQgc2xvdCBvZiBHRCBvciBMRCB0b2MgZW50cmllcy4KCShnZXRfdGxzX3R5cGUpOiBSZXR1cm4gYW4gaW50LiAgRGlzdGluZ3Vpc2ggdG9jIEdEIGFuZCBMRCBlbnRyaWVzCglmcm9tIG90aGVyIHRscyB0eXBlcy4KCShwcGM2NF9lbGZfdGxzX3NldHVwKTogTmV3IGZ1bmN0aW9uLCBzcGxpdCBvdXQgZnJvbS4uCgkocHBjNjRfZWxmX3Rsc19vcHRpbWl6ZSk6IC4uaGVyZS4gIERvbid0IG9wdGltaXplIHdoZW4gc3ltYm9scyBhcmUKCWRlZmluZWQgaW4gYSBkeW5hbWljIG9iamVjdC4gIEZpeCBMRCBvcHRpbWl6YXRpb24uICBEb24ndCBzZXQgVExTX1RQUkVMCglvbiBHRC0+SUUgb3B0aW1pemF0aW9uLCB1c2UgVExTX1RQUkVMR0QgaW5zdGVhZC4gIFVzZSBnZXRfdGxzX3R5cGUKCXJldHVybiB2YWx1ZSB0byBwcm9wZXJseSBkZWNpZGUgd2hldGhlciB0b2MgR0QgYW5kIExEIGVudHJpZXMgY2FuCglvcHRpbWl6ZSBhd2F5IF9fdGxzX2dldF9hZGRyIGNhbGwuICBDaGVjayBuZXh0IHJlbG9jIGFmdGVyIERUUE1PRDY0Cgl0byBkZXRlcm1pbmUgR0Qgb3IgTEQgcmF0aGVyIHRoYW4gbG9va2luZyBhdCBUTFNfTEQgZmxhZy4gIERvbid0CglhdHRlbXB0IHRvIGFkanVzdCBnb3QgZW50cnkgdGxzX3R5cGUgaGVyZS4uCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogLi5pbnN0ZWFkLCBhZGp1c3QgZ290IGVudHJ5IHRsc190eXBlIGhlcmUsIGFuZAoJbG9vayBmb3IgcG9zc2libGUgbWVyZ2VzLgoJKHBwYzY0X2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBBZGp1c3QgbG9jYWwgZ290IGVudHJpZXMgZm9yCglvcHRpbWl6YXRpb24uCgkocHBjNjRfZWxmX3NpemVfc3R1YnMpOiBUd2VhayBfX3Rsc19nZXRfYWRkciBmdWRnZS4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFJlbmFtZSBzb21lIHZhcnMgdG8gYmV0dGVyIHJlZmxlY3QgdXNhZ2UuCglNYWtlIHVzZSBvZiByZXR1cm4gdmFsdWUgZnJvbSBnZXRfdGxzX3R5cGUgdG8gcHJvcGVybHkgZGV0ZWN0IEdEIGFuZAoJTEQgb3B0aW1pemF0aW9ucy4gIFNwbGl0IHRsc2xkL2dkIGhpL2hhIGZyb20gbG8vZHMgY2FzZS4gIERvbid0CgloYW5kbGUgdGxzX2dldF9hZGRyIHJlbW92YWwgd2hlbiBsb29raW5nIGF0IFJFTDI0IHJlbG9jcywgZG8gaXQgd2hlbgoJbG9va2luZyBhdCB0aGUgcHJldmlvdXMgcmVsb2MuICBDaGVjayByZWxvYyBhZnRlciBEVFBNT0Q2NCB0byBkZXRlcm1pbmUKCUdEIG9yIExELgoJKiBlbGY2NC1wcGMuaCAocHBjNjRfZWxmX3Rsc19zZXR1cCk6IERlY2xhcmUuCgoyMDAzLTAyLTA4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItaHBwYS5jIChncm91cF9zZWN0aW9ucyk6IERvbid0IHNoYXJlIGEgc3R1YiBzZWN0aW9uIGlmCglzdHVicyBhcmUgZm9yIGEgbGFyZ2Ugc2VjdGlvbi4KCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9zaXplX3N0dWJzKTogRG91YmxlIHRoZSBzaXplIGxlZnQgZm9yCglzdHVicyBpZiAhc3R1YnNfYWx3YXlzX2JlZm9yZV9icmFuY2guCgoyMDAzLTAyLTA3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmLmMgKHN3YXBfb3V0X3N5bXMpOiBHZW5lcmF0ZSBhbiBlcnJvciBtZXNzYWdlIGlmIGFuCgllcXVpdmFsZW50IG91dHB1dCBzZWN0aW9uIGNhbm5vdCBiZSBmb3VuZCBmb3IgYSBzeW1ib2wuCgoyMDAzLTAyLTA3ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbGF4X3NlY3Rpb24pOiBEb24ndCBjcmFzaCBpZgoJbG9jYWxfZ290X2VudHJpZXMgaXMgTlVMTC4KCjIwMDMtMDItMDYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJKiBlbGYtZWgtZnJhbWUuYyAoZ2V0X0RXX0VIX1BFX3NpZ25lZCk6IERlZmluZS4KCShyZWFkX3ZhbHVlKTogQWRkIHBhcmFtZXRlciBpc19zaWduZWQsIHVzZSBzaWduZWQgZXh0cmFjdGlvbiBpZgoJdGhlIHZhbHVlIGlzIHNpZ25lZC4KCShfYmZkX2VsZl93cml0ZV9zZWN0aW9uX2VoX2ZyYW1lKTogUGFzcyBzaWduZWQgZmxhZyBvZiB0aGUKCWVuY29kaW5nIHRvIHJlYWRfdmFsdWUuCgoyMDAzLTAyLTA2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IERvbid0IGNvcHkgZ290IGFuZAoJcGx0IGluZm8gd2hlbiBjYWxsZWQgdG8gdHJhbnNmZXIgd2VhayBzeW0gaW5mby4KCjIwMDMtMDItMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiByZWxvYy5jOiBBZGQgUFBDIGFuZCBQUEM2NCBUTFMgcmVsb2NzLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBlbGY2NC1wcGMuYyAoVFBfT0ZGU0VULCBEVFBfT0ZGU0VUKTogRGVjbGFyZS4KCShwcGM2NF9lbGZfaG93dG9fcmF3KTogQWRkIFRMUyBob3d0bydzLiAgQWRqdXN0IFJfUFBDNjRfTk9ORSB0byBiZQoJYWdhaW5zdCBhIDMyIGJpdCBmaWVsZC4KCShwcGM2NF9lbGZfcmVsb2NfdHlwZV9sb29rdXApOiBIYW5kbGUgVExTIHJlbG9jcy4KCShfcHBjNjRfZWxmX3NlY3Rpb25fZGF0YSk6IEFkZCB0X3N5bW5keCBhbmQgY29tbWVudHMuCgkocHBjNjRfZWxmX3NlY3Rpb25fZGF0YSk6IFVzZSBlbGZfc2VjdGlvbl9kYXRhIG1hY3JvLgoJKHBwYzY0X2VsZl9uZXdfc2VjdGlvbl9ob29rKTogQW1lcmljYW4gc3BlbGxpbmcuCgkoc3RydWN0IGdvdF9lbnRyeSwgc3RydWN0IHBsdF9lbnRyeSk6IE5ldy4KCShNVVNUX0JFX0RZTl9SRUxPQyk6IFJlbmFtZSBmcm9tIElTX0FCU09MVVRFX1JFTE9DLgoJKHN0cnVjdCBwcGNfc3R1Yl9oYXNoX2VudHJ5KTogQWRkICJhZGRlbmQiIGZpZWxkLgoJKHN0cnVjdCBwcGNfbGlua19oYXNoX2VudHJ5KTogQWRkICJ0bHNfdHlwZSIuCgkoVExTX1RMUywgVExTX0dEX0xELCBUTFNfTEQsIFRMU19UUFJFTCwgVExTX0RUUFJFTCwKCVRMU19FWFBMSUNJVCk6IERlZmluZS4KCShzdHJ1Y3QgcHBjX2xpbmtfaGFzaF90YWJsZSk6IEFkZCB0bHNfc2VjLCB0bHNfZ2V0X2FkZHIsIHRsc2xkX2dvdC4KCShsaW5rX2hhc2hfbmV3ZnVuYyk6IEluaXQgbmV3IGZpZWxkcy4KCShwcGM2NF9lbGZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLiAgU2V0IGluaXRfcmVmY291bnQgYW5kCglpbml0X29mZnNldCB0byBOVUxMLgoJKHBwYzY0X2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IENvcHkgZ290IGFuZCBwbHQgaW5mby4gIERvbid0IGNhbGwKCV9iZmRfZWxmX2xpbmtfaGFzaF9jb3B5X2luZGlyZWN0LCByYXRoZXIgaW5zZXJ0IHJlbGV2YW50IGNvZGUgZnJvbQoJdGhlcmUuCgkodXBkYXRlX2xvY2FsX3N5bV9pbmZvLCB1cGRhdGVfcGx0X2luZm8pOiBOZXcgZnVuY3Rpb25zLgoJKHBwYzY0X2VsZl9jaGVja19yZWxvY3MpOiBVc2UgdGhlbS4gIEhhbmRsZSBUTFMgcmVsb2NzLiAgQWRqdXN0IEdPVAoJaGFuZGxpbmcgdG8gdXNlIGdvdC5nbGlzdCByYXRoZXIgdGhhbiBnb3QucmVmY291bnQuICBMaWtld2lzZSBmb3IgUExULgoJKHBwYzY0X2VsZl9nY19zd2VlcF9ob29rKTogSGFuZGxlIFRMUyByZWxvY3MsIG5ldyBHT1QgYW5kIFBMVCBsaXN0cy4KCShmdW5jX2Rlc2NfYWRqdXN0KTogQWRqdXN0IGZvciBuZXcgUExUIGxpc3QuCgkocHBjNjRfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKGdldF9zeW1faCwgZ2V0X3Rsc190eXBlKTogTmV3IGZ1bmN0aW9ucy4KCShwcGM2NF9lbGZfZWRpdF9vcGQpOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLiAgVXNlIGdldF9zeW1faC4KCShwcGM2NF9lbGZfdGxzX29wdGltaXplKTogTmV3IGZ1bmN0aW9uLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IEFkanVzdCBmb3IgbmV3IFBMVCBhbmQgR09UIGxpc3RzLiAgQWxsb2NhdGUKCVRMUyByZWxvY3MuCgkocHBjNjRfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKHBwY190eXBlX29mX3N0dWIpOiBBZGp1c3QgZm9yIG5ldyBQTFQgbGlzdC4KCShwcGNfYnVpbGRfb25lX3N0dWIpOiBMaWtld2lzZS4KCShwcGM2NF9lbGZfc2l6ZV9zdHVicyk6IExpa2V3aXNlLiAgVXNlIGdldF9zeW1faC4gIFRyZWF0IF9fdGxzX2dldF9hZGRyCgljYWxscyBzcGVjaWFsbHkuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBBZGp1c3QgZm9yIG5ldyBHT1QgYW5kIFBMVCBsaXN0cy4gIEhhbmRsZQoJVExTIHJlbG9jcy4gIFJlcG9ydCBsb2NhbCBzeW1zIHVzaW5nIGJmZF9lbGZfbG9jYWxfc3ltX25hbWUuICBEb24ndAoJaW5pdCBHT1QgZW50cmllcyB0aGF0IGhhdmUgYSByZWxvYy4gIEdlbmVyYXRlIEdPVCByZWxvY3MgaGVyZS4uCgkocHBjNjRfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IC4ubm90IGhlcmUuICBBZGp1c3QgZm9yIFBMVCBsaXN0LgoJKiBlbGY2NC1wcGMuaCAocHBjNjRfZWxmX3Rsc19vcHRpbWl6ZSk6IERlY2xhcmUuCgoyMDAzLTAyLTA0ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogZWxmMzItbTY4ay5jIChlbGZfbTY4a19oYXNoX2VudHJ5KTogRGVmaW5lLgoJKGVsZl9tNjhrX2xpbmtfaGFzaF90cmF2ZXJzZSk6IFJlbW92ZS4KCShlbGZfbTY4a19saW5rX2hhc2hfbmV3ZnVuYyk6IFVzZSBzdHJ1Y3QgYmZkX2hhc2hfZW50cnkgYW5kCgllbGZfbTY4a19oYXNoX2VudHJ5IGluc3RlYWQgb2Ygc3RydWN0IGVsZl9tNjhrX2xpbmtfaGFzaF9lbnRyeSB0bwoJcmVkdWNlIGNhc3RpbmcuCgkoZWxmX202OGtfY2hlY2tfcmVsb2NzKTogVXNlIGVsZl9tNjhrX2hhc2hfZW50cnkgaW5zdGVhZCBvZgoJY2FzdGluZy4KCShlbGZfbTY4a19zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBVc2UgZWxmX2xpbmtfaGFzaF90cmF2ZXJzZQoJaW5zdGVhZCBvZiBlbGZfbTY4a19saW5rX2hhc2hfdHJhdmVyc2UuCgkoZWxmX202OGtfZGlzY2FyZF9jb3BpZXMpOiBDaGFuZ2UgZmlyc3QgcGFyYW1ldGVyIHRvIHBvaW50ZXIgdG8KCXN0cnVjdCBlbGZfbGlua19oYXNoX2VudHJ5IGFuZCB1c2UgZWxmX202OGtfaGFzaF9lbnRyeSB3aGVuIHN0cnVjdAoJZWxmX202OGtfbGlua19oYXNoX2VudHJ5IGlzIG5lZWRlZC4KCjIwMDMtMDItMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYtYmZkLmggKHN0cnVjdCBnb3RfZW50cnksIHN0cnVjdCBwbHRfZW50cnkpOiBGb3J3YXJkIGRlY2xhcmUuCgkoc3RydWN0IGVsZl9saW5rX2hhc2hfZW50cnkpOiBBZGQgImdsaXN0IiBhbmQgInBsaXN0IiBmaWVsZHMgdG8KCSJnb3QiIHVuaW9uLCBhbmQgZGVjbGFyZSBhcyBnb3RwbHRfdW5pb24uICBVc2UgZ290cGx0X3VpbmlvbiBmb3IKCSJwbHQiIGZpZWxkLgoJKHN0cnVjdCBlbGZfbGlua19oYXNoX3RhYmxlKTogTWFrZSAiaW5pdF9yZWZjb3VudCIgYSBnb3RwbHRfdW5pb24uCglBZGQgImluaXRfb2Zmc2V0IiBmaWVsZC4KCShzdHJ1Y3QgZWxmX29ial90ZGF0YSA8bG9jYWxfZ290Pik6IEFkZCAic3RydWN0IGdvdF9lbnRyeSAqKiIgdG8gdW5pb24uCgkoZWxmX2xvY2FsX2dvdF9lbnRzKTogRGVjbGFyZS4KCSogZWxmLmMgKF9iZmRfZWxmX2xpbmtfaGFzaF9uZXdmdW5jKTogQWRqdXN0IGluaXRpYWxpemF0aW9uIG9mICJnb3QiCglhbmQgInBsdCIuCgkoX2JmZF9lbGZfbGlua19oYXNoX2hpZGVfc3ltYm9sKTogVXNlICJpbml0X29mZnNldCIuCgkoX2JmZF9lbGZfbGlua19oYXNoX3RhYmxlX2luaXQpOiBTZXQgImluaXRfb2Zmc2V0Ii4KCSogZWxmbGluay5oIChOQU1FKGJmZF9lbGYsc2l6ZV9keW5hbWljX3NlY3Rpb25zKSk6IFNldCBpbml0X3JlZmNvdW50Cglmcm9tIGluaXRfb2Zmc2V0LgoJKGVsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBTZXQgcGx0IGFuZCBnb3Qgb2Zmc2V0cyB1c2luZyBpbml0X29mZnNldC4KCgkqIGVsZi5jIChiZmRfZWxmX2xvY2FsX3N5bV9uYW1lKTogU3BsaXQgb3V0IGZyb20uLgoJKGdyb3VwX3NpZ25hdHVyZSk6IC4uaGVyZS4KCSogZWxmLWJmZC5oIChiZmRfZWxmX2xvY2FsX3N5bV9uYW1lKTogRGVjbGFyZS4KCjIwMDMtMDItMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYtYmZkLmggKGVudW0gZWxmX2xpbmtfaW5mb190eXBlKTogUmVtb3ZlLgoJKHN0cnVjdCBiZmRfZWxmX3NlY3Rpb25fZGF0YSk6IE1vdmUgc2VjX2luZm9fdHlwZSwgdXNlX3JlbGFfcCBmaWVsZHMKCXRvIHN0cnVjdCBzZWMuICBSZW1vdmUgbGlua29uY2VfcCBmaWVsZC4KCShlbGZfbGlua29uY2VfcCk6IERlbGV0ZS4KCShlbGZfZGlzY2FyZGVkX3NlY3Rpb24pOiBVcGRhdGUgZm9yIHNlY19pbmZvX3R5cGUgY2hhbmdlLgoJKiBzZWN0aW9uLmMgKHN0cnVjdCBzZWMpOiBBZGQgc2VjX2luZm9fdHlwZSwgdXNlX3JlbGFfcCwgaGFzX3Rsc19yZWxvYywKCWZsYWcxMSwgZmxhZzEyLCBmbGFnMTMsIGZsYWcxNCwgZmxhZzE1LCBmbGFnMTYsIGZsYWcyMCwgZmxhZzI0LgoJKEVMRl9JTkZPX1RZUEVfTk9ORSk6IERlZmluZS4KCShFTEZfSU5GT19UWVBFX1NUQUJTKTogRGVmaW5lLgoJKEVMRl9JTkZPX1RZUEVfTUVSR0UpOiBEZWZpbmUuCgkoRUxGX0lORk9fVFlQRV9FSF9GUkFNRSk6IERlZmluZS4KCShFTEZfSU5GT19UWVBFX0pVU1RfU1lNUyk6IERlZmluZS4KCShTVERfU0VDVElPTik6IFVwZGF0ZSBzdHJ1Y3Qgc2VjIGluaXRpYWxpemVyLgoJKiBlY29mZi5jIChiZmRfZGVidWdfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYuYzogTGlrZXdpc2UuICBVcGRhdGUgb2NjdXJyZW5jZXMgb2Ygc2VjX2luZm9fdHlwZSBhbmQgdXNlX3JlbGFfcC4KCSogZWxmbGluay5oOiBMaWtld2lzZS4KCSogZWxmLWVoLWZyYW1lLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5jOiBMaWtld2lzZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKCSogZWxmMzItc3BhcmMuYyAoc2VjX2RvX3JlbGF4KTogVXNlIGVsZl9zZWN0aW9uX2RhdGEgbWFjcm8gcmF0aGVyIHRoYW4KCXJlZmVycmluZyB0byB1c2VkX2J5X2JmZC4KCSogZWxmNjQtc3BhcmMuYyAoc2VjX2RvX3JlbGF4KTogTGlrZXdpc2UuCgkqIGVsZjY0LW1taXguYyAobW1peF9lbGZfc2VjdGlvbl9kYXRhKTogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfc2VjdGlvbl9kYXRhKTogTGlrZXdpc2UuCgkqIGllZWUuYyAoaWVlZV9zbHVycF9zZWN0aW9uX2RhdGEpOiBVc2UgaWVlZV9wZXJfc2VjdGlvbiBtYWNyby4KCShpZWVlX2dldF9zZWN0aW9uX2NvbnRlbnRzKTogTGlrZXdpc2UuCgkoaWVlZV9uZXdfc2VjdGlvbl9ob29rKTogRm9ybWF0dGluZy4KCShpZWVlX2Nhbm9uaWNhbGl6ZV9yZWxvYyk6IFJlbW92ZSBjb21tZW50ZWQgb3V0IGNvZGUuCgkqIG1tby5jIChtbW9fc2VjdGlvbl9kYXRhKTogRGVmaW5lLiAgVXNlIHRocm91Z2hvdXQgZmlsZS4KCSogb2FzeXMuYyAob2FzeXNfZ2V0X3NlY3Rpb25fY29udGVudHMpOiBVc2Ugb2FzeXNfcGVyX3NlY3Rpb24gbWFjcm8uCgoyMDAzLTAxLTMxICBHcmF5ZG9uIEhvYXJlIDxncmF5ZG9uQHJlZGhhdC5jb20+CgoJKiBNYWtlZmlsZS5hbSAob3BuY2xzLmxvKTogQWRkIGRlcGVuZGVuY3kgdXBvbiBsaWJpYmVydHkuaC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIG9wbmNscy5jIChjYWxjX2NyYzMyLCBnZXRfZGVidWdfbGlua19pbmZvLAoJc2VwZXJhdGVfZGVidWdfZmlsZV9leGlzdHMsIGZpbmRfc2VwZXJhdGVfZGVidWdfZmlsZSk6IE5ldwoJaW50ZXJuYWwgZnVuY3Rpb25zLgoJKGJmZF9mb2xsb3dfZ251X2RlYnVnbGluayk6IE5ldyBmdW5jdGlvbi4gIEZvbGxvdyB0aGUgcG9pbnRlcgoJY29udGFpbmVkIGluc2lkZSBhIC5nbnVfZGVidWdsaW5rIHNlY3Rpb24uCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDMtMDEtMjkgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9nb3RfZW50cnlfaGFzaCk6IERvbid0IGRlcmVmZXJlbmNlCgllbnRyeS0+YWJmZCB3aGVuIGl0J3MgTlVMTC4KCjIwMDMtMDEtMjcgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9jcmVhdGVfZHluYW1pY19yZWxvY2F0aW9uKTogSGFuZGxlCglfYmZkX2VsZl9zZWN0aW9uX29mZnNldCByZXR1cm5pbmcgLTIgdGhlIHNhbWUgd2F5IGFzIC0xLgoKCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9tdWx0aV9nb3QpOiBOZXcgZnVuY3Rpb24uCgkoc3RydWN0IG1pcHNfZ290X2VudHJ5KTogTWFrZSBzeW1uZHggYW5kIGdvdGlkeCBzaWduZWQuICBNb3ZlZAoJYWRkZW5kIGludG8gdW5pb24gYWxvbmcgd2l0aCBhZGRyZXNzIGFuZCBsaW5rIGhhc2ggZW50cnkuCgkoc3RydWN0IG1pcHNfZ290X2luZm8pOiBBZGRlZCBiZmQyZ290IGFuZCBuZXh0LgoJKHN0cnVjdCBtaXBzX2VsZl9oYXNoX3NvcnRfZGF0YSk6IEFkZGVkIG1heF91bnJlZl9nb3RfZHluaW5keC4KCShtaXBzX2VsZl9nb3Rfc2VjdGlvbiwgbWlwc19lbGZfY3JlYXRlX2dvdF9zZWN0aW9uKTogVXNlCglTRUNfRVhDTFVERSBiaXQgdG8gdGVsbCB3aGV0aGVyIHdlIHJlYWxseSBuZWVkIHRoZSBnb3QKCXNlY3Rpb24uICBUYWtlIGJvb2xlYW4gYXJndW1lbnRzIHRvIGRpc3JlZ2FyZCBhbiBleGNsdWRlZAoJc2VjdGlvbiwgb3IgdG8gY3JlYXRlIGl0IGFzIGV4Y2x1ZGVkLiAgQWRqdXN0IGFsbCBjYWxsZXJzLgoJVXNlIG1pcHNfZWxmX2dvdF9zZWN0aW9uIGFsbCBvdmVyLgoJKG1pcHNfZWxmX2xvY2FsX2dvdF9pbmRleCwgbWlwc19lbGZfZ290X3BhZ2UsCgltaXBzX2VsZl9nb3QxNl9lbnRyeSk6IFRha2UgaW5wdXQgYmZkIGFzIGFyZ3VtZW50LCBhbmQgcGFzcyBpdAoJb24gdG8gbWlwc19lbGZfY3JlYXRlX2xvY2FsX2dvdF9lbnRyeS4KCShtaXBzX2VsZl9nbG9iYWxfZ290X2luZGV4LCBtaXBzX2VsZl9jcmVhdGVfbG9jYWxfZ290X2VudHJ5KToKCVRha2UgaW5wdXQgYmZkIGFzIGFyZ3VtZW50LCBhbmQgbWFuYWdlIGVudHJpZXMgaW4gdGhlCglhcHByb3ByaWF0ZSBHT1QuCgkobWlwc19lbGZfZ290X29mZnNldF9mcm9tX2luZGV4KTogVGFrZSBpbnB1dCBiZmQgYXMgYXJndW1lbnQsCglhbmQgdXNlIGl0IHRvIGFkanVzdCB0aGUgR1Agb2Zmc2V0IG9mIHRoZSBiZmQuCgkobWlwc19lbGZfc29ydF9oYXNoX3RhYmxlLCBtaXBzX2VsZl9zb3J0X2hhc2hfdGFibGVfZik6IE1vdmUKCXVucmVmZXJlbmNlZCBHT1QgZW50cmllcyBvZiBnbG9iYWwgc3ltYm9scyB0byB0aGUgZW5kLgoJKG1pcHNfZWxmX3JlY29yZF9nbG9iYWxfZ290X3N5bWJvbCk6IFRha2UgaW5wdXQgYmZkIGFzCglhcmd1bWVudC4gIEFkZCBlbnRyaWVzIHRvIHRoZSBtYXN0ZXIgR09UIGhhc2ggdGFibGUuCgkoc3RydWN0IG1pcHNfZWxmX2JmZDJnb3RfaGFzaCk6IE5ldy4KCShzdHJ1Y3QgbWlwc19lbGZfZ290X3Blcl9iZmRfYXJnKTogTmV3LgoJKHN0cnVjdCBtaXBzX2VsZl9zZXRfZ2xvYmFsX2dvdF9vZmZzZXRfYXJnKTogTmV3LgoJKG1pcHNfZWxmX2hhc2hfYmZkX3ZtYSwgbWlwc19lbGZfbXVsdGlfZ290X2VudHJ5X2hhc2gsCgltaXBzX2VsZl9tdWx0aV9nb3RfZW50cnlfZXEsIG1pcHNfZWxmX2JmZDJnb3RfZW50cnlfaGFzaCwKCW1pcHNfZWxmX2JmZDJnb3RfZW50cnlfZXEsIG1pcHNfZWxmX21ha2VfZ290X3Blcl9iZmQsCgltaXBzX2VsZl9tZXJnZV9nb3RzLCBtaXBzX2VsZl9zZXRfZ2xvYmFsX2dvdF9vZmZzZXQsCgltaXBzX2VsZl9yZXNvbHZlX2ZpbmFsX2dvdF9lbnRyeSwKCW1pcHNfZWxmX3Jlc29sdmVfZmluYWxfZ290X2VudHJpZXMsIG1pcHNfZWxmX2FkanVzdF9ncCwKCW1pcHNfZWxmX2dvdF9mb3JfaWJmZCk6IE5ldyBmdW5jdGlvbnMuCgkoRUxGX01JUFNfR1BfT0ZGU0VUKTogRG9uJ3QgZGVwZW5kIG9uIFNHSV9DT01QQVQuCgkoTUlQU19FTEZfR09UX01BWF9TSVpFKTogTmV3IG1hY3JvLgoJKFNUVUJfTFcpOiBHZW5lcmF0ZSA2NC1iaXQgc3R1YiByZWdhcmRsZXNzIG9mIFNHSV9DT01QQVQuCgkobWlwc19lbGZfZ290X2VudHJ5X2hhc2gpOiBUYWtlIG5ldyBmaWVsZHMgaW50byBhY2NvdW50LiAgVXNlCgltaXBzX2VsZl9oYXNoX2JmZF92bWEuCgkobWlwc19lbGZfZ290X2VudHJ5X2VxKTogVGFrZSBuZXcgZmllbGRzIGludG8gYWNjb3VudC4KCShtaXBzX2VsZl9jcmVhdGVfZ290X3NlY3Rpb24pOiBJbml0aWFsaXplIG5ldyBmaWVsZHMuCgkobWlwc19lbGZfY2FsY3VsYXRlX3JlbG9jYXRpb24pOiBQYXNzIGlucHV0X2JmZCB0byBmdW5jdGlvbnMKCXRoYXQgbm93IHRha2UgaXQuICBBZGp1c3QgZ3AgZm9yIHRoZSBpbnB1dF9iZmQuCgkobWlwc19lbGZfYWxsb2NhdGVfZHluYW1pY19yZWxvY2F0aW9uLAoJbWlwc19lbGZfY3JlYXRlX2R5bmFtaWNfcmVsb2NhdGlvbiwKCV9iZmRfbWlwc19lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBVc2UuLi4KCShtaXBzX2VsZl9yZWxfZHluX3NlY3Rpb24pOiBOZXcgZnVuY3Rpb24uICBCb3Jyb3cgY29kZSBmcm9tLi4uCgkoX2JmZF9taXBzX2VsZl9jaGVja19yZWxvY3MpOiBQYXNzIGlucHV0X2JmZCB0byBmdW5jdGlvbnMgdGhhdAoJbm93IHRha2UgaXQuICBDcmVhdGUgdGhlIGdvdCBzZWN0aW9uIGlmIG5lZWRlZCwgZXZlbiBpZgoJZXhjbHVkZWQsIGJlZm9yZSByZWNvcmRpbmcgYSBnbG9iYWwgZ290IHN5bWJvbC4gIE1vdmUgc29tZQoJY29kZSB0by4uLgoJKG1pcHNfZWxmX3JlY29yZF9sb2NhbF9nb3Rfc3ltYm9sKTogTmV3IGZuLgoJKF9iZmRfbWlwc19lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogRGlzYWJsZSBjb21icmVsb2MuCglDb21wdXRlIG11bHRpLWdvdCBnbG9iYWwgZW50cmllcyBvZmZzZXRzLiAgTW92ZSBHT1QgY29kZSB0by4uLgoJKF9iZmRfbWlwc19lbGZfYWx3YXlzX3NpemVfc2VjdGlvbnMpOiBDYWxsIG1pcHNfZWxmX211bHRpX2dvdAoJaWYgdGhlIEdPVCBpcyB0b28gYmlnLgoJKF9iZmRfbWlwc19lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogU2V0IGdvdCBlbnRyeSBvZgoJdW5kZWZ3ZWFrIHN5bWJvbCB0byB6ZXJvLiAgR2VuZXJhdGUgZHluYW1pYyByZWxvY2F0aW9ucyBmb3IKCW5vbi1wcmltYXJ5IEdPVCBlbnRyaWVzIGZvciBnbG9iYWwgc3ltYm9scy4KCShfYmZkX21pcHNfZWxmX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogSGFuZGxlIG11bHRpLWdvdAoJY2FzZS4gIEdlbmVyYXRlIGR5bmFtaWMgcmVsb2NhdGlvbnMgZm9yIGxvY2FsIGdvdCBlbnRyaWVzLgoJU29ydCBkeW5hbWljIHJlbG9jYXRpb25zIG9uIE42NCB0b28sIHVzaW5nLi4uCgkoc29ydF9keW5hbWljX3JlbG9jc182NCk6IE5ldyBmbnMuCgkoX2JmZF9taXBzX2VsZl9oaWRlX3N5bWJvbCk6IEFkanVzdCBtdWx0aS1nb3QgY291bnRlcnMuCgkoX2JmZF9taXBzX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogSWdub3JlIEVGX01JUFNfWEdPVC4KCjIwMDMtMDEtMjcgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogYmZkLmMgKHN0cnVjdCBfYmZkKTogQWRkZWQgaWQgZmllbGQuCgkqIG9wbmNscy5jIChfYmZkX2lkX2NvdW50ZXIpOiBOZXcgc3RhdGljIHZhcmlhYmxlLgoJKF9iZmRfbmV3X2JmZCk6IFVzZSBpdC4KCSogYmZkLWluMi5oOiBSZWJ1aWx0LgoKMjAwMy0wMS0yNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXNwYXJjLmMgKGJmZF9lbGYzMl9uZXdfc2VjdGlvbl9ob29rKTogRGVmaW5lLgoKMjAwMy0wMS0yNSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1zcGFyYy5jIChfYmZkX3NwYXJjX2VsZl9ob3d0b190YWJsZSk6IEFkZCBUTFMgcmVsb2NzLgoJKGVsZjMyX3NwYXJjX3JldjMyX2hvd3RvKTogTmV3IHZhcmlhYmxlLgoJKHNwYXJjX3JlbG9jX21hcCk6IEFkZCBUTFMgcmVsb2NzLgoJKGVsZjMyX3NwYXJjX3JlbG9jX3R5cGVfbG9va3VwLCBlbGYzMl9zcGFyY19pbmZvX3RvX2hvd3RvKToKCUhhbmRsZSBSRVYzMi4KCShzcGFyY19lbGZfaGl4MjJfcmVsb2MsIHNwYXJjX2VsZl9sb3gxMF9yZWxvYywgZWxmMzJfc3BhcmNfbWtvYmplY3QpOgoJTmV3IGZ1bmN0aW9ucy4KCShzdHJ1Y3QgZWxmMzJfc3BhcmNfZHluX3JlbG9jcywgc3RydWN0IGVsZjMyX3NwYXJjX2xpbmtfaGFzaF9lbnRyeSwKCXN0cnVjdCBlbGYzMl9zcGFyY19saW5rX2hhc2hfdGFibGUpOgoJTmV3IHN0cnVjdHVyZXMuCgkoZWxmMzJfc3BhcmNfdGRhdGEsIGVsZjMyX3NwYXJjX2xvY2FsX2dvdF90bHNfdHlwZSwKCWVsZjMyX3NwYXJjX2hhc2hfdGFibGUpOiBEZWZpbmUuCgkobGlua19oYXNoX25ld2Z1bmMsIGVsZjMyX3NwYXJjX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUsCgljcmVhdGVfZ290X3NlY3Rpb24sIGVsZjMyX3NwYXJjX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zLAoJZWxmMzJfc3BhcmNfY29weV9pbmRpcmVjdF9zeW1ib2wsIGVsZjMyX3NwYXJjX3Rsc190cmFuc2l0aW9uKTogTmV3CglmdW5jdGlvbnMuCgkoZWxmMzJfc3BhcmNfY2hlY2tfcmVsb2NzKTogSGFuZGxlIFRMUyByZWxvY3MuICBBZGQgZHluYW1pYyByZWxvYwoJcmVmZXJlbmNlIGNvdW50aW5nLgoJKGVsZjMyX3NwYXJjX2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCShlbGYzMl9zcGFyY19hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCShlbGYzMl9zcGFyY19zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShlbGYzMl9zcGFyY19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkoYWxsb2NhdGVfZHlucmVsb2NzLCByZWFkb25seV9keW5yZWxvY3MsIGR0cG9mZl9iYXNlLCB0cG9mZik6CglOZXcgZnVuY3Rpb25zLgoJKGVsZjMyX3NwYXJjX29iamVjdF9wKTogQWxsb2NhdGUgYmFja2VuZCBwcml2YXRlIG9iamVjdCBkYXRhLgoJKGJmZF9lbGYzMl9iZmRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSwKCWVsZl9iYWNrZW5kX2NvcHlfaW5kaXJlY3Rfc3ltYm9sLCBiZmRfZWxmMzJfbWtvYmplY3QsCgllbGZfYmFja2VuZF9jYW5fcmVmY291bnQpOiBEZWZpbmUuCgkoZWxmX2JhY2tlbmRfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBEZWZpbmUgdG8KCWVsZjMyX3NwYXJjX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zLgoJKiByZWxvYy5jOiBBZGQgU1BBUkMgVExTIHJlbG9jcy4KCSogYmZkLWluMi5oLCBsaWJiZmQuaDogUmVidWlsdC4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfaG93dG9fdGFibGUpOiBBZGQgVExTIHJlbG9jcy4KCShzcGFyY19yZWxvY19tYXApOiBMaWtld2lzZS4KCjIwMDMtMDEtMjQgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfbWtvYmplY3QsIGVsZl9zMzkwX3Rsc190cmFuc2l0aW9uLAoJczM5MF90bHNfcmVsb2MsIGR0cG9mZl9iYXNlLCB0cG9mZiwgaW52YWxpZF90bHNfaW5zbik6IE5ldyBmdW5jdGlvbnMuCgkoZWxmX2hvd3RvX3RhYmxlKTogQWRkIFRMUyByZWxvY3MuCgkoZWxmX3MzOTBfcmVsb2NfdHlwZV9sb29rdXApOiBMaWtld2lzZS4KCShlbGZfczM5MF9saW5rX2hhc2hfZW50cnkpOiBBZGQgdGxzX3R5cGUuCgkoZWxmX3MzOTBfaGFzaF9lbnRyeSwgZWxmX3MzOTBfb2JqX3RkYXRhLCBlbGZfczM5MF9sb2NhbF9nb3RfdGxzX3R5cGUpOgoJTmV3IG1hY3Jvcy4KCShlbGZfczM5MF9saW5rX2hhc2hfdGFibGUpOiBBZGQgdGxzX2xkbV9nb3QuCgkobGlua19oYXNoX25ld2Z1bmMpOiBJbml0aWFsaXplIHRsc190eXBlLgoJKGVsZl9zMzkwX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBJbml0aWFsaXplIHJlZmNvdW50IG9mIHRsc19sZG1fZ290LgoJKGVsZl9zMzkwX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogQ29weSB0bHNfdHlwZSBpbmZvcm1hdGlvbi4KCShlbGZfczM5MF9jaGVja19yZWxvY3MpOiBTdXBwb3J0IFRMUyByZWxvY3MuCgkoZWxmX3MzOTBfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IExpa2V3aXNlLgoJKGVsZl9zMzkwX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCShlbGZfczM5MF9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCShiZmRfZWxmMzJfbWtvYmplY3QpOiBEZWZpbmUgZm9yIFRMUy4KCSogZWxmNjQtczM5MC5jOiBTYW1lIGNoYW5nZXMgYXMgZm9yIGVsZjMyLXMzOTAuYy4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgkqIHJlbG9jLmM6IEFkZCBzMzkwIFRMUyByZWxvY2F0aW9ucy4KCjIwMDMtMDEtMjQgIENoYXJsZXMgTGVwcGxlICA8Y2xlcHBsZUBnaHouY2M+CgoJKiBhY2xvY2FsLm00OiBGaXggbmFtZSBvZiAtLWVuYWJsZS1pbnN0YWxsLWxpYmJmZCBzd2l0Y2guCgoyMDAzLTAxLTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogQWRkIHNoMmUgc3VwcG9ydDoKCTIwMDItMDQtMDIgIEVsZW5hIFphbm5vbmkgIDxlemFubm9uaUByZWRoYXQuY29tPgoJKiBhcmNodXJlcy5jIChiZmRfbWFjaF9zaDJlKTogQWRkZWQuCgkqIGJmZC1pbjIuaDogUmVidWlsdC4KCSogY3B1LXNoLmMgKGFyY2hfaW5mb19zdHJ1Y3QpOiBBZGRlZCBTSDJlLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfc2V0X21hY2hfZnJvbV9mbGFncyk6IEhhbmRsZSBFRl9TSDJFLgoKMjAwMy0wMS0yMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1iZmQuaCAoc3RydWN0IGJmZF9lbGZfc2VjdGlvbl9kYXRhKTogUmVtb3ZlIHRkYXRhLiAgQ2hhbmdlCglkeW5pbmR4IHRvIGFuIGludC4gIFJlYXJyYW5nZSBmb3IgYmV0dGVyIHBhY2tpbmcuCgkqIGVsZi5jIChfYmZkX2VsZl9uZXdfc2VjdGlvbl9ob29rKTogRG9uJ3QgYWxsb2MgaWYgYWxyZWFkeSBkb25lLgoJKiBlbGYzMi1taXBzLmMgKGJmZF9lbGYzMl9uZXdfc2VjdGlvbl9ob29rKTogRGVmaW5lLgoJKiBlbGYzMi1zaDY0Lmg6IE5ldy4gIFNwbGl0IG91dCBmcm9tIGluY2x1ZGUvZWxmL3NoLmguCgkoc3RydWN0IF9zaDY0X2VsZl9zZWN0aW9uX2RhdGEpOiBOZXcgc3RydWN0LgoJKHNoNjRfZWxmX3NlY3Rpb25fZGF0YSk6IERvbid0IGRlcmVmZXJlbmNlIHNoNjRfaW5mbyAod2FzIHRkYXRhKS4KCSogZWxmMzItc2g2NC1jb20uYzogSW5jbHVkZSBlbGYzMi1zaDY0LmguCgkqIGVsZjMyLXNoNjQuYzogTGlrZXdpc2UuCgkoc2g2NF9lbGZfbmV3X3NlY3Rpb25faG9vayk6IE5ldyBmdW5jdGlvbi4KCShiZmRfZWxmMzJfbmV3X3NlY3Rpb25faG9vayk6IERlZmluZS4KCShzaDY0X2VsZl9mYWtlX3NlY3Rpb25zKTogQWRqdXN0IGZvciBzaDY0X2VsZl9zZWN0aW9uX2RhdGEgY2hhbmdlLgoJKHNoNjRfYmZkX2VsZl9jb3B5X3ByaXZhdGVfc2VjdGlvbl9kYXRhKTogTGlrZXdpc2UuCgkoc2g2NF9lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IExpa2V3aXNlLgoJKiBlbGYzMi1zcGFyYy5jIChzdHJ1Y3QgZWxmMzJfc3BhcmNfc2VjdGlvbl9kYXRhKTogTmV3LgoJKGVsZjMyX3NwYXJjX25ld19zZWN0aW9uX2hvb2spOiBOZXcgZnVuY3Rpb24uCgkoU0VUX1NFQ19ET19SRUxBWCwgU0VDX0RPX1JFTEFYKTogRGVsZXRlLgoJKHNlY19kb19yZWxheCk6IERlZmluZS4KCShlbGYzMl9zcGFyY19yZWxheF9zZWN0aW9uKTogQWRqdXN0IHRvIHVzZSBzZWNfZG9fcmVsYXguCgkoZWxmMzJfc3BhcmNfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1taXBzLmMgKGJmZF9lbGY2NF9uZXdfc2VjdGlvbl9ob29rKTogRGVmaW5lLgoJKiBlbGY2NC1tbWl4LmMgKHN0cnVjdCBfbW1peF9lbGZfc2VjdGlvbl9kYXRhKTogTmV3LgoJKG1taXhfZWxmX3NlY3Rpb25fZGF0YSk6IERlZmluZS4gIFVzZSB0aHJvdWdob3V0IGZpbGUuCgkobW1peF9lbGZfbmV3X3NlY3Rpb25faG9vayk6IE5ldyBmdW5jdGlvbi4KCShiZmRfZWxmNjRfbmV3X3NlY3Rpb25faG9vayk6IERlZmluZS4KCSogZWxmNjQtcHBjLmMgKHN0cnVjdCBfcHBjNjRfZWxmX3NlY3Rpb25fZGF0YSk6IE5ldy4KCShwcGM2NF9lbGZfc2VjdGlvbl9kYXRhKTogRGVmaW5lLiAgVXNlIHRocm91Z2hvdXQuCgkocHBjNjRfZWxmX25ld19zZWN0aW9uX2hvb2spOiBOZXcgZnVuY3Rpb24uCgkoYmZkX2VsZjY0X25ld19zZWN0aW9uX2hvb2spOiBEZWZpbmUuCgkqIGVsZjY0LXNwYXJjLmMgKHN0cnVjdCBzcGFyYzY0X2VsZl9zZWN0aW9uX2RhdGEpOiBOZXcuCgkoc3BhcmM2NF9lbGZfbmV3X3NlY3Rpb25faG9vayk6IE5ldyBmdW5jdGlvbi4KCShTRVRfU0VDX0RPX1JFTEFYLCBTRUNfRE9fUkVMQVgpOiBEZWxldGUuCgkoc2VjX2RvX3JlbGF4KTogRGVmaW5lLgoJKHNwYXJjNjRfZWxmX3JlbGF4X3NlY3Rpb24pOiBBZGp1c3QgdG8gdXNlIHNlY19kb19yZWxheC4KCShzcGFyYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkoYmZkX2VsZjY0X25ld19zZWN0aW9uX2hvb2spOiBEZWZpbmUuCgkqIGVsZm4zMi1taXBzLmMgKGJmZF9lbGYzMl9uZXdfc2VjdGlvbl9ob29rKTogRGVmaW5lLgoJKiBlbGZ4eC1taXBzLmMgKHN0cnVjdCBfbWlwc19lbGZfc2VjdGlvbl9kYXRhKTogTmV3LgoJKG1pcHNfZWxmX3NlY3Rpb25fZGF0YSk6IERlZmluZS4gIFVzZSB0aHJvdWdob3V0LgoJKF9iZmRfbWlwc19lbGZfbmV3X3NlY3Rpb25faG9vayk6IE5ldyBmdW5jdGlvbi4KCShtaXBzX2VsZl9jcmVhdGVfZ290X3NlY3Rpb24pOiBEb24ndCBhbGxvYyB1c2VkX2J5X2JmZC4KCSogZWxmeHgtbWlwcy5oIChfYmZkX21pcHNfZWxmX25ld19zZWN0aW9uX2hvb2spOiBEZWNsYXJlLgoJKiBlbGZ4eC10YXJnZXQuaCAoYmZkX2VsZk5OX25ld19zZWN0aW9uX2hvb2spOiBBZGQgI2lmbmRlZi4KCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMDEtMjEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChBTFBIQV9FTEZfTElOS19IQVNIX1BMVF9MT0MpOiBOZXcuCgkoc3RydWN0IGFscGhhX2VsZl9saW5rX2hhc2hfZW50cnkpOiBBZGQgcGx0X29sZF9zZWN0aW9uLCBwbHRfb2xkX3ZhbHVlLgoJKGVsZjY0X2FscGhhX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IFNldCB0aGVtLgoJKGVsZjY0X2FscGhhX3NpemVfcGx0X3NlY3Rpb25fMSk6IFJlc2V0IHRoZW0gd2hlbiBwbHQgZW50cnkgcmVtb3ZlZC4KCShlbGY2NF9hbHBoYV9yZWxheF90bHNfZ2V0X2FkZHIpOiBIYW5kbGUgTERNIHJlbG9jcy4gIEZyb2IgdGhlCglzeW1ib2wgaW5kZXggd2hlbiByZWxheGluZyBMRE0gdG8gVFBSRUwuCgkoZWxmNjRfYWxwaGFfcmVsYXhfc2VjdGlvbik6IExpa2V3aXNlLiAgQWxsb3cgcmVsYXhhdGlvbiBvZiBHRAoJcmVsb2NzLCBldmVuIGlmIHRoZSB0YXJnZXQgaXNuJ3QgbG9jYWxseSBkZWZpbmVkLgoJKGVsZjY0X2FscGhhX2NoZWNrX3JlbG9jcyk6IEZyb2IgTERNIHJlbG9jIHN5bW5keCB0byB6ZXJvLgoJKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4gIEZvcmNlIFRQLXJlbGF0aXZlCglyZWxvY3MgdnMgc3ltbmR4IDAgdG8gdGhlIHRwIGJhc2UuCgoyMDAzLTAxLTIxICBGYWJpbyBBbGVtYWduYSAgPGZhbGVtYWduQGFyb3Mub3JnPgoKCSogY29uZmlnLmJmZDogSGFuZGxlIGlbMzQ1Nl04Ni0qLWFyb3MqLgoKMjAwMy0wMS0yMSAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIGVsZjMyLXBwYy5jIChzdHJ1Y3QgcHBjX2VsZl9keW5fcmVsb2NzKTogRGVmaW5lLgoJKHN0cnVjdCBwcGNfZWxmX2xpbmtfaGFzaF9lbnRyeSk6IERlZmluZS4KCShwcGNfZWxmX2hhc2hfZW50cnkpOiBOZXcgZnVuY3Rpb24uCgkoc3RydWN0IHBwY19lbGZfbGlua19oYXNoX3RhYmxlKTogRGVmaW5lLgoJKHBwY19lbGZfaGFzaF90YWJsZSk6IE5ldyBmdW5jdGlvbi4KCShwcGNfZWxmX2xpbmtfaGFzaF9uZXdmdW5jKTogTmV3IGZ1bmN0aW9uLgoJKHBwY19lbGZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IE5ldyBmdW5jdGlvbi4KCShwcGNfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTmV3IGZ1bmN0aW9uLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IE5ldyBmdW5jdGlvbi4KCShyZWFkb25seV9keW5yZWxvY3MpOiBOZXcgZnVuY3Rpb24uCgkocHBjX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBBbGxvY2F0ZSBzcGFjZSBmb3IgZHluYW1pYwoJcmVsb2NzIGFuZCBkZXRlcm1pbmUgRFRfVEVYVFJFTC4KCShwcGNfZWxmX2NoZWNrX3JlbG9jcyk6IERvbid0IGRvIHRoYXQgaGVyZSwganVzdCBjb3VudCB0aGUKCWR5bmFtaWMgcmVsb2NzLgoJKHBwY19lbGZfZ2Nfc3dlZXBfaG9vayk6IERpc2NhcmQgYW55IGR5bmFtaWMgcmVsb2NzIGFnYWluc3QgdGhlCglyZW1vdmVkIHNlY3Rpb24uCgkoYmZkX2VsZjMyX2JmZF9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogRGVmaW5lLgoJKGVsZl9iYWNrZW5kX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogRGVmaW5lLgoKMjAwMy0wMS0yMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKGFscGhhX2R5bmFtaWNfZW50cmllc19mb3JfcmVsb2MpOiBHT1RUUFJFTCBhbmQKCVRQUkVMIGFsc28gZ2V0IGEgcmVsb2MgaWYgc2hhcmVkLiAgUmVtb3ZlIFNSRUwgc3VwcG9ydC4KCShlbGY2NF9hbHBoYV9lbWl0X2R5bnJlbCk6IE5ldy4KCShlbGY2NF9hbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKTogVXNlIGl0LiAgUmVzb2x2ZSBkeW5hbWljIFRQUkVMCglhbmQgR09UVFBSRUwgcmVsb2NzIHRvIGxvY2FsIHN5bWJvbHMgYWdhaW5zdCB0aGUgdHAgYmFzZS4KCShlbGY2NF9hbHBoYV9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBVc2UgZWxmNjRfYWxwaGFfZW1pdF9keW5yZWwuCgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxheF9nb3RfbG9hZCk6IERlY3JlbWVudCBnb3QKCXVzZSBjb3VudCBiZWZvcmUgY2xvYmJlcmluZyByX3R5cGUuCgkoZWxmNjRfYWxwaGFfcmVsYXhfdGxzX2dldF9hZGRyKTogRG9uJ3QgdXNlIHBvc1sxXSBpZiBpbnNuCglvcmRlcmluZyB3b3VsZCBtZWFuIGRhdGFmbG93IGluc3BlY3Rpb24gaXMgbmVjZXNzYXJ5LgoKMjAwMy0wMS0yMCAgU3ZlaW4gRS4gU2VsZGFsICA8U3ZlaW4uU2VsZGFsQHNvbGlkYXMuY29tPgoKCSogY29mZmNvZGUuaCAoY29mZl9zZXRfZmxhZ3MpOiBBZGRlZCBnZXQvc2V0IGFyY2ggaG9va3MuCgoyMDAzLTAxLTIwICBGYWJpbyBBbGVtYWduYSAgPGZhbGVtYWduQGFyb3Mub3JnPgoKCSogZWxmMzItc2guYzogVHJlYXQgZWxmTk5fYmVkIGxpa2Ugb3RoZXIgbWFjcm9zIGRlZmluZWQgaW4KCSAgZWxmeHgtdGFyZ2V0LmggYW5kICN1bmRlZiBpdCBiZWZvcmUgI2RlZmluZSdpbmcgaXQuCgkqIGVsZjMyLWkzODYuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXNoNjQuYzogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1zaDY0LmM6IExpa2V3aXNlLgoKMjAwMy0wMS0yMCAgTWFydGluIFNjaHdpZGVmc2t5ICA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogZWxmMzItczM5MC5jIChlbGZfczM5MF9hZGp1c3RfZ290cGx0KTogTmV3IHByb3RvdHlwZS4KCShlbGZfaG93dG9fdGFibGUpOiBSZW5hbWUgUl8zOTBfR09UT0ZGIHRvIFJfMzkwX0dPVE9GRjMyLiBBZGQKCVJfMzkwX0dPVE9GRjE2LCBSXzM5MF9HT1RPRkY2NCwgUl8zOTBfR09UUExUMTIsIFJfMzkwX0dPVFBMVDE2LAoJUl8zOTBfR09UUExUMzIsIFJfMzkwX0dPVFBMVDY0LCBSXzM5MF9HT1RQTFRFTlQsIFJfMzkwX1BMVE9GRjE2LAoJUl8zOTBfUExUT0ZGMzIgYW5kIFJfMzkwX1BMVE9GRjY0LgoJKGVsZl9zMzkwX3JlbG9jX3R5cGVfbG9va3VwKTogTGlrZXdpc2UuCgkoc3RydWN0IGVsZl9zMzkwX2xpbmtfaGFzaF9lbnRyeSk6IEFkZCBnb3RwbHRfcmVmY291bnQgdG8ga2VlcCB0cmFjawoJb2YgR09UUExUIHJlZmVyZW5jZXMgdG8gYSBmdW5jdGlvbi4KCShsaW5rX2hhc2hfbmV3ZnVuYyk6IEluaXRpYWxpemUgZ290cGx0X3JlZmNvdW50LgoJKGVsZl9zMzkwX2NoZWNrX3JlbG9jcyk6IE1vdmUgYWxsb2NhdGlvbiBvZiBsb2NhbF9nb3RfcmVmY291bnRzIGFycmF5CglhbmQgY3JlYXRpb24gb2YgdGhlIGdvdCBzZWN0aW9uIG91dCBvZiB0aGUgbWFpbiBzd2l0Y2guIEFkZCBzdXBwb3J0Cglmb3IgdGhlIGdvdG9mZiwgZ290cGx0IGFuZCBwbHRvZmYgcmVsb2NhdGlvbnMuCgkoZWxmX3MzOTBfZ2Nfc3dlZXBfaG9vayk6IEFkZCByZWZlcmVuY2UgY291bnRpbmcgZm9yIGdvdG9mZiwgZ290cGx0CglhbmQgcGx0b2ZmLgoJKGVsZl9zMzkwX2FkanVzdF9nb3RwbHQpOiBOZXcgZnVuY3Rpb24uCgkoZWxmX3MzOTBfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogQWRqdXN0IGdvdHBsdCByZWZjb3VudCBmb3IgcmVtb3ZlZAoJcGx0IGVudHJpZXMuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogQWRkIGNvbW1lbnQuCgkoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IENoYW5nZSByX3R5cGUgdG8gdW5zaWduZWQuIEFkZCBzdXBwb3J0Cglmb3IgZ290b2ZmLCBnb3RwbHQgYW5kIHBsdG9mZiByZWxvY2F0aW9ucy4KCSogZWxmNjQtczM5MC5jOiBTYW1lIGNoYW5nZXMgYXMgZm9yIGVsZjMyLXMzOTAuYy4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgkqIHJlbG9jLmM6IEFkZCBCRkRfUkVMT0NfMzkwX0dPVE9GRjY0LCBCRkRfUkVMT0NfMzkwX0dPVFBMVDEyLAoJQkZEX1JFTE9DXzM5MF9HT1RQTFQxNiwgQkZEX1JFTE9DXzM5MF9HT1RQTFQzMiwgQkZEX1JFTE9DXzM5MF9HT1RQTFQ2NCwKCUJGRF9SRUxPQ18zOTBfR09UUExURU5ULCBCRkRfUkVMT0NfMzkwX1BMVE9GRjE2LCBCRkRfUkVMT0NfMzkwX1BMVE9GRjMyCglhbmQgQkZEX1JFTE9DXzM5MF9QTFRPRkY2NC4KCjIwMDMtMDEtMTggIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbG9jYXRlX3NlY3Rpb24pOiBIYW5kbGUKCVJfSUE2NF9UUFJFTDY0W0xNXVNCIGFnYWluc3Qgbm9uLWdsb2JhbCBzeW1ib2wgcHJvcGVybHkuCgoyMDAzLTAxLTE2ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoc3RydWN0IGVsZk5OX2lhNjRfbGlua19oYXNoX3RhYmxlKTogQWRkCglzZWxmX2R0cG1vZF9kb25lIGFuZCBzZWxmX2R0cG1vZF9vZmZzZXQuCgkoYWxsb2NhdGVfZ2xvYmFsX2RhdGFfZ290KTogT25seSB1c2Ugb25lIGdvdCBlbnRyeSBmb3IgYWxsCglkdHBtb2QgcmVsb2NzIGFnYWluc3QgbG9jYWwgc3ltYm9scy4KCShhbGxvY2F0ZV9keW5yZWxfZW50cmllcyk6IE9ubHkgbmVlZCAucmVsYS5nb3QgZW50cnkgZm9yCglkdHBtb2QgYWdhaW5zdCBnbG9iYWwgc3ltYm9sLgoJKGVsZk5OX2lhNjRfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogSW5pdGlhbGl6ZSBzZWxmX2R0cG1vZF9vZmZzZXQuCglSZXNlcnZlIHNwYWNlIGluIC5yZWxhLmdvdCBmb3IgdGhlIGxvY2FsIGR0cG1vZCBlbnRyeS4KCShzZXRfZ290X2VudHJ5KTogSW5pdGlhbGl6ZSB0aGUgY29tbW9uIGxvY2FsIGR0cG1vZCAuZ290IGVudHJ5LgoJKGVsZk5OX2lhNjRfcmVsb2NhdGVfc2VjdGlvbik6IEhhbmRsZSBSX0lBXzY0X0RUUFJFTDY0TFNCCglhbmQgUl9JQV82NF9EVFBSRUw2NE1TQi4KCjIwMDMtMDEtMTYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYzogSW5jbHVkZSBlbGYvcHBjNjQuaCByYXRoZXIgdGhhbiBlbGYvcHBjLmguCgkoUl9QUENfKik6IFJlbmFtZSBhbGwgb2NjdXJyZW5jZXMgdG8gUl9QUEM2NF8qLgoJKFJfUFBDNjRfQUREUjMwKTogUmVuYW1lIGFsbCBvY2N1cnJlbmNlcyB0byBSX1BQQzY0X1JFTDMwLgoJKGVudW0gZWxmX3BwY19yZWxvY190eXBlKTogRGl0dG8gdG8gZW51bSBlbGZfcHBjNjRfcmVsb2NfdHlwZS4KCShwcGM2NF9lbGZfZ2Nfc3dlZXBfaG9vayk6IEhhbmRsZSBSX1BQQzY0X1JFTDMwIGFsb25nIHdpdGggb3RoZXIKCXJlbGF0aXZlIHJlbG9jcywgbm90IHdpdGggYWJzb2x1dGUgb25lcy4KCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogcG8vU1JDLVBPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0wMS0xNSAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX2NoZWNrX3JlbG9jcyk6IERvbid0IHNldCBERl9URVhUUkVMIGZvciBhCglyZWxvY2F0aW9uIGFnYWluc3QgYSBub24tYWxsb2NhdGVkIHJlYWRvbmx5IHNlY3Rpb24uCgoyMDAzLTAxLTEwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItcHBjLmMgKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEFkanVzdCBhZGRlbmQgZm9yIEdPVDE2X0hBLgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4gIFBMVEdPVDE2X0hBIHRvby4KCjIwMDItMDEtMDggIEtsZWUgRGllbmVzICA8a2RpZW5lc0BhcHBsZS5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQUxMX01BQ0hJTkVTKTogVXNlIGNwdS1tc3A0MzAubG8sIG5vdCBjcHUtbXNwNDMwLmMuCgkoQkZEMzJfQkFDS0VORFMpOiBVc2UgZWxmMzItbXNwNDMwLmxvLCBub3QgZWxmMzItbXNwNDMwLmMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0wMS0wOCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGZuMzItbWlwcy5jIChwcmV2X3JlbG9jX3NlY3Rpb24pOiBOZXcuCgkoR0VUX1JFTE9DX0FEREVORCk6IFVzZSBpdC4gIFBhcmVudGhlc2l6ZSBtYWNybyBhcmd1bWVudHMuCgkoU0VUX1JFTE9DX0FEREVORCk6IFBhcmVudGhlc2l6ZSBtYWNybyBhcmd1bWVudC4KCjIwMDMtMDEtMDcgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLmdjLmNhPgoKCSogZWxmMzItaHBwYS5jIChmaW5hbF9saW5rX3JlbG9jYXRlKTogRm9yIGFsbCBEUCByZWxhdGl2ZSByZWxvY2F0aW9ucywKCWFkanVzdCBhZGRpbCBpbnN0cnVjdGlvbnMgaWYgdGhlIHN5bWJvbCBoYXMgbm8gc2VjdGlvbi4KCjIwMDMtMDEtMDcgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogZWxmMzIteHN0b3JteTE2LmMgKHhzdG9ybXkxNl9lbGZfaG93dG9fdGFibGUpOiBNYWtlIFJFTF8xMiBub3QKCXBhcnRpYWxfaW5wbGFjZS4KCjIwMDMtMDEtMDcgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJKiBlbGYzMi1tNjhrLmMgKGVsZl9tNjhrX2NoZWNrX3JlbG9jcyk6IERvbid0IHNldCBERl9URVhUUkVMIGZvcgoJUEMgcmVsYXRpdmUgcmVsb2NhdGlvbnMuCgkoZWxmX202OGtfZGlzY2FyZF9jb3BpZXMpOiBTZXQgaXQgaGVyZSBpbnN0ZWFkLgoKMjAwMi0wMS0wMiAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgkgICAgSmVmZiBKb2huc3RvbiAgPGpqb2huc3RuQHJlZGhhdC5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQUxMX01BQ0hJTkVTKTogQWRkIGNwdS1pcTIwMDAubG8uCgkoQUxMX01BQ0hJTkVTX0NGSUxFUyk6IEFkZCBjcHUtaXEyMDAwLmMuCgkoQkZEMzJfQkFDS0VORFMpOiBBZGQgZWxmMzItaXEyMDAwLmxvLgoJKEJGRDMyX0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCBlbGYzMi1pcTIwMDAuYy4KCShjcHUtaXEyMDAwLmxvKTogTmV3IHRhcmdldC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy5iZmQ6IEhhbmRsZSBpcTIwMDAtKi1lbGYuCgkqIGFyY2h1cmVzLmMgKGJmZF9hcmNoaXRlY3R1cmUpOiBBZGQgYmZkX3thcmNoLG1hY2h9X2lxMjAwMC4KCShiZmRfYXJjaHVyZXNfbGlzdCk6IEFkZCBiZmRfaXEyMDAwX2FyY2guCgkqIGNvbmZpZ3VyZS5pbjogSGFuZGxlIGJmZF9lbGYzMl9pcTIwMDBfdmVjLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIHJlbG9jLmM6IEFkZCBCRkRfUkVMT0NfSVEyMDAwX09GRlNFVF8xNiwgQkZEX1JFTE9DX0lRMjAwMF9PRkZTRVRfMjEsCglhbmQgQkZEX1JFTE9DX0lRMjAwMF9VSEkxNi4KCSogdGFyZ2V0cy5jIChiZmRfZWxmMzJfaXEyMDAwX3ZlYyk6IERlY2xhcmUuCgkoYmZkX3RhcmdldF92ZWN0b3IpOiBBZGQgYmZkX2VsZjMyX2lxMjAwMF92ZWMuCgkqIGVsZi5jIChwcmVwX2hlYWRlcnMpOiBTZXQgZV9tYWNoaW5lIHRvIEVNX0lRMjAwMC4KCSogY3B1LWlxMjAwMC5jOiBOZXcgZmlsZS4KCSogZWxmMzItaXEyMDAwLmM6IExpa2V3aXNlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogYmZkLWluMi5oOiBMaWtld2lzZS4KCjIwMDMtMDEtMDIgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYzogSW5jbHVkZSBsaWJpYmVydHkuaC4KCShlbGZfbWlwc19pc2EsIF9iZmRfbWlwc19lbGZfbWFjaF9leHRlbmRzX3ApOiBSZW1vdmUuCgkobWlwc19zZXRfaXNhX2ZsYWdzKTogTmV3IGZ1bmN0aW9uLCBzcGxpdCBvdXQgZnJvbS4uLgoJKF9iZmRfbWlwc19lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IC4uLmhlcmUuICBPbmx5IGNhbGwKCW1pcHNfc2V0X2lzYV9mbGFncyBpZiB0aGUgRUZfTUlQU19NQUNIIGJpdHMgYXJlIGNsZWFyLgoJKG1pcHNfbWFjaF9leHRlbnNpb25zKTogTmV3IGFycmF5LgoJKG1pcHNfMzJiaXRfZmxhZ3NfcCk6IE5ldyBmdW5jdGlvbi4KCShfYmZkX21pcHNfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBSZXdvcmsgYXJjaGl0ZWN0dXJlIGNoZWNrcy4KCVVzZSBtaXBzXzMyYml0X2ZsYWdzX3AgdG8gY2hlY2sgaWYgb25lIGJpbmFyeSBpcyAzMi1iaXQgYW5kIHRoZQoJb3RoZXIgaXMgNjQtYml0LiAgV2hlbiBhZG9wdGluZyBJQkZEJ3MgYXJjaGl0ZWN0dXJlLCBhZG9wdCB0aGUKCWJmZF9tYWNoIGFzIHdlbGwgYXMgdGhlIGZsYWdzLgoKMjAwMy0wMS0wMiAgTmljayBLZWxzZXkgIDxuaWNra0B1Ymljb20uY29tPgoKCSogZWxmMzItaXAyay5jOiBSZS13b3JrIG9mIGxpbmtlciByZWxheGF0aW9uIGNvZGUgZm9yIHRoZSBpcDJrIHRvCglmaXggaW50ZXJuYWwgZXJyb3JzLCBmaXggYmFkIGNvZGUgZ2VuZXJhdGlvbiwgZml4IGluY29ycmVjdCBzdGFicwoJaW5mb3JtYXRpb24sIGFuZCBpbXByb3ZlIGFiaWxpdHkgdG8gZWxpbWluYXRlIHJlZHVuZGFudCBwYWdlCglpbnN0cnVjdGlvbnMuIEFkZGVkIGNvZGUgdG8gaXAya19maW5hbF9saW5rX3JlbG9jYXRlIHRvIHNlbGYtdmVyaWZ5Cgl0aGUgbGlua2VyIHJlbGF4YXRpb24uICBGaXggZm9ybWF0dGluZyBwcm9ibGVtcy4KCjIwMDItMTItMzAgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBhb3V0eC5oIChOQU1FKGFvdXQsbWFjaGluZV90eXBlKSk6IEFkZCBiZmRfbWFjaF9taXBzaXNhMzJyMiBjYXNlLgoJKiBhcmNodXJlcy5jIChiZmRfbWFjaF9taXBzaXNhMzJyMik6IE5ldyBkZWZpbmUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogY3B1LW1pcHMuYyAoSV9taXBzaXNhMzJyMik6IE5ldyBlbnVtIHZhbHVlLgoJKGFyY2hfaW5mb19zdHJ1Y3QpOiBBZGQgZW50cnkgZm9yIElfbWlwc2lzYTMycjIuCgkqIGVsZnh4LW1pcHMuYyAoZWxmX21pcHNfaXNhLCBfYmZkX2VsZl9taXBzX21hY2gpCgkoX2JmZF9taXBzX2VsZl9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogSGFuZGxlIEVfTUlQU19BUkNIXzMyUjIuCgkoX2JmZF9taXBzX2VsZl9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogQWRkCgliZmRfbWFjaF9taXBzaXNhMzJyMiBjYXNlLgoJKF9iZmRfbWlwc19lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IEhhbmRsZSBtZXJnaW5nIG9mCgliaW5hcmllcyBtYXJrZWQgYXMgdXNpbmcgTUlQUzMyIFJlbGVhc2UgMi4KCjIwMDItMTItMzAgICAgRG1pdHJ5IERpa3kgPGRpd2lsQG1haWwucnU+CgoJKiBNYWtlZmlsZS5hbTogQWRkIG1zcDQzMCB0YXJnZXQuCgkqIGNvbmZpZ3VyZS5pbjogTGlrZXdpc2UuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGFyY2h1cmVzLmM6IEFkZCBtc3A0MzAgYXJjaGl0ZWN0dXJlIHZlY3Rvci4KCSogY29uZmlnLmJmZDogTGlrZXdpc2UuCgkqIHJlbG9jLmM6IEFkZCBtc3A0MzAgcmVsb2NzLgoJKiB0YXJnZXRzLmM6IEFkZCBtc3AzMjAgdGFyZ2V0LgoJKiBjcHUtbXNwNDMwLmM6IE5ldyBmaWxlOiBtc3A0MzAgY3B1IGRldGVjdGlvbi4KCSogZWxmMzItbXNwNDMwLmM6IE5ldyBmaWxlOiBtc3A0MzAgcmVsb2MgcHJvY2Vzc2luZy4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCjIwMDItMTItMjggIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmLmMgKGVsZl9zb3J0X3NlY3Rpb25zKTogRG9uJ3QgcmVvcmRlciAudGJzcy4KCShhc3NpZ25fZmlsZV9wb3NpdGlvbnNfZm9yX3NlZ21lbnRzKTogT25seSBhZGp1c3Qgb2ZmL3ZvZmYKCWZvciBpbmNyZWFzZWQgYWxpZ25tZW50IGluIFBUX0xPQUQgb3IgUFRfTk9URSBzZWdtZW50LAoJYnV0IGFkanVzdCBwX2ZpbGVzeiBmb3IgLnRic3MgdG9vLiAgaW4gUFRfTE9BRCBjb25zaWRlcgoJLnRic3MgdG8gaGF2ZSB6ZXJvIG1lbW9yeSBzaXplLgoJKGNvcHlfcHJpdmF0ZV9iZmRfZGF0YSkgW1NFQ1RJT05fU0laRV06IERlZmluZS4KCVtJU19DT05UQUlORURfQllfVk1BLCBJU19DT05UQUlORURfQllfTE1BXTogVXNlIGl0LgoJW0lOQ0xVREVfU0VDVElPTl9JTl9TRUdNRU5UXTogT25seSBwdXQgU0hGX1RMUyBzZWN0aW9ucwoJaW50byBQVF9UTFMgc2VnbWVudC4gIE5ldmVyIHB1dCBTSEZfVExTIHNlY3Rpb25zIGluCglzZWdtZW50cyBvdGhlciB0aGFuIFBUX1RMUyBvciBQVF9MT0FELgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBDbGVhciAucGx0CglzaF9lbnRzaXplLgoKMjAwMi0xMi0yMyAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBjb2ZmNjQtcnM2MDAwLmMgKHhjb2ZmNjRfcHBjX3JlbG9jYXRlX3NlY3Rpb24pOiBGaXggbG9naWMgcmV2ZXJzYWwuCgoyMDAyLTEyLTIzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmbGluay5oIChlbGZfbGlua19vdXRwdXRfZXh0c3ltKTogSGVlZCBzdHJpcF9kaXNjYXJkZWQuCgoyMDAyLTEyLTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogYXJjaHVyZXMuYyAoYmZkX2FyY2hfZ2V0X2NvbXBhdGlibGUpOiBBZGQgdGhpcmQgcGFyYW1ldGVyCgknYWNjZXB0X3Vua25vd25zJy4gIE9ubHkgYWNjZXB0IHVua25vd24gZm9ybWF0IEJGRHMgaWYKCWFjY2VwdF91bmtub3ducyBpcyB0cnVlLCBvciBpZiB0aGUgZm9ybWF0IGlzICJiaW5hcnkiLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAyLTEyLTIxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29mZi1hcm0uYyAoY29mZl9hcm1fcmVsb2NhdGVfc2VjdGlvbik6IERpc2FibGUgV0lOQ0Ugd29ya2Fyb3VuZAoJdGhhdCBzdWJ0cmFjdGVkIDggZnJvbSBwYyByZWxhdGl2ZSByZWxvY2F0aW9ucy4KCjIwMDItMTItMjAgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjb2ZmLWg4MzAwLmM6IEZpeCBjb21tZW50IHR5cG9zLgoJKiBjb2ZmY29kZS5oOiBMaWtld2lzZS4KCSogY3B1LWNyaXMuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXZheC5jOiBMaWtld2lzZS4KCSogZ2VubGluay5oOiBMaWtld2lzZS4KCSogbGlua2VyLmM6IExpa2V3aXNlLgoJKiBzb20uYzogTGlrZXdpc2UuCgkqIHRla2hleC5jOiBMaWtld2lzZS4KCSogdm1zLW1pc2MuYzogTGlrZXdpc2UuCgoyMDAyLTEyLTIwICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIHJlbG9jLmM6IEFkZCBCRkRfUkVMT0NfWFNUT1JNWTE2XzEyLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBlbGYzMi14c3Rvcm15MTYuYyAoeHN0b3JteTE2X2VsZl9ob3d0byk6IEFkZCBSX1hTVE9STVkxNl8xMi4KCSh4c3Rvcm15MTZfcmVsb2NfbWFwKTogQWRkIFJfWFNUT1JNWTE2XzEyLgoKMjAwMi0xMi0xOSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGRvYy9iZmRpbnQudGV4aTogRml4IHR5cG9zLgoKMjAwMi0xMi0yMCAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAdHdpbnN1bi5jb20+CgoJUG9ydCB0byBQT1NJWCAxMDAzLjEtMjAwMS4KCSogYWNpbmNsdWRlLm00IChBTV9JTlNUQUxMX0xJQkJGRCk6IERvIG5vdCByZWx5IG9uICJ0ZXN0IC1vIi4KCSogY29uZmlndXJlLmluIChidWlsZC13YXJuaW5ncyk6IExpa2V3aXNlLgoJKEhvcnJpYmxlIGhhY2tzIHRvIGJ1aWxkIERMTHMgb24gV2luZG93cyk6IERvIG5vdCByZWx5IG9uICJ0YWlsIC0xIi4KCSogYWNsb2NhbC5tNDogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTEyLTE5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29mZi1oODMwMC5jOiBJbmNsdWRlIGxpYmliZXJ0eS5oLgoJKGg4MzAwX3JlbG9jMTZfZXh0cmFfY2FzZXMpOiBDaGVjayB0aGUgaGFzaCB0YWJsZSBjcmVhdG9yIGJlZm9yZQoJcmVmZXJlbmNpbmcgaDgzMDAgc3BlY2lmaWMgZmllbGRzLiAgU3Rhc2ggdGhlIGhhc2ggdGFibGUgcG9pbnRlcgoJaW4gYSBsb2NhbCB2YXIuICBDb21tZW50IHR5cG8gZml4ZXMuCgkoaDgzMDBfYmZkX2xpbmtfYWRkX3N5bWJvbHMpOiBMaWtld2lzZS4KCgkqIHJlbG9jLmMgKHN0cnVjdCByZWxvY19ob3d0b19zdHJ1Y3QpOiBSZXZpc2Ugc3JjX21hc2sgYW5kCglkc3RfbWFzayBjb21tZW50cy4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMi0xMi0xOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBSZW9yZ2FuaXplIGR5bmFtaWMgcmVsb2MKCWNvZGUgYSBsaXR0bGUuICBDb21tZW50IG9uIGR5bmFtaWMgcmVsb2NzIGFnYWluc3Qgc2VjdGlvbiBzeW1ib2xzLgoKMjAwMi0xMi0xNyAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBjb25maWd1cmUuaG9zdCAoaWE2NC0qLWhwdXgqKTogU3VwcG9ydCA2NCBiaXQgdGFyZ2V0cyB1c2luZwoJdGhlIEhQIGNvbXBpbGVyJ3MgImxvbmcgbG9uZyIuCgoyMDAyLTEyLTE2ICBBbmRyZXcgTWFjTGVvZCAgPGFtYWNsZW9kQHJlZGhhdC5jb20+CgoJKiBlbGYzMi14c3Rvcm15MTYuYyAoeHN0b3JteTE2X2VsZl9ob3d0byk6IEFkZCBSX1hTVE9STVkxNl9MTzE2CglhbmQgUl9YU1RPUk1ZMTZfSEkxNikgaG93dG8gZW50cmllcy4KCSh4c3Rvcm15MTZfcmVsb2NfbWFwKTogTWFwIFJfWFNUT1JNWTE2X3tMTyxISX0xNiB0byBCRkRfUkVMT0Nfe0xPLEhJfTE2LgoJKHhzdG9ybXkxNl9pbmZvX3RvX2hvd3RvX3JlbGEpOiBVc2UgUl9YU1RPUk1ZMTZfR05VX1ZUSU5IRVJJVCB0bwoJZGV0ZXJtaW5lIHRoZSBzdGFydCBvZiB0aGUgc2Vjb25kIHJlbG9jIHRhYmxlLgoKMjAwMi0xMi0xNiAgTmF0aGFuIFRhbGxlbnQgIDxlcmF4eG9uQGFsdW1uaS5yaWNlLmVkdT4KCgkqIGVjb2ZmbGluay5jOiBGaXggdGhlIHJlYWRpbmcgb2YgdGhlIGRlYnVnZ2luZyBpbmZvcm1hdGlvbgoJb2YgVHJ1NjQvQWxwaGEgYmluYXJpZXMgdGhhdCBhcmUgcHJvZHVjZWQgYnkgcmVjZW50IENvbXBhcQoJY29tcGlsZXJzLgoJKG1rX2ZkcnRhYik6IEZpeCBlcnJvciBpbiBjcmVhdGluZyB0aGUgRkRSIChmaWxlIGRlc2NyaXB0b3IpCgl0YWJsZS4KCShsb29rdXBfbGluZSk6IEJlY2F1c2Ugb2YgdGhlIHN0cmFuZ2UgaW5mb3JtYXRpb24gc29tZXRpbWVzCglnZW5lcmF0ZWQgYnkgQ29tcGFxJ3MgcmVjZW50IGNvbXBpbGVycywgY2hhbmdlIGhvdyB0aGUgRkRSCgl0YWJsZSBpcyBzZWFyY2hlZCBzbyB0aGF0IFBEUnMgKHByb2NlZHVyZSBkZXNjcmlwdG9ycykgYXJlCgljb3JyZWN0bHkgZm91bmQuICBOb3RlIHRoYXQgdGhpcyBjaGFuZ2UgaXMgcmVhbGx5IG1vcmUgb2YgYSBoYWNrOwoJaG93ZXZlciwgSSBoYXZlIGluY2x1ZGVkIGV4dGVuc2l2ZSBkb2N1bWVudGF0aW9uIGFzIHRvIHdoeQoJdGhpcyBpcyB0aGUgYmVzdCBzb2x1dGlvbiBzaG9ydCBvZiBhbiBleHRlbnNpdmUgcmV3cml0ZSBvcgoJYW5vdGhlciBoYWNrLgoJKGZkcnRhYl9sb29rdXApOiBBZGQgY29tbWVudHMgdG8gZXhwbGFpbiB0aGUgYWxnb3JpdGhtLgoKMjAwMi0xMi0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGYtbTEwMzAwLmMgKGVsZjMyX21uMTAzMDBfbGlua19oYXNoX25ld2Z1bmMpOiBSZW9yZGVyCglpbml0aWFsaXplcnMgdG8gbWF0Y2ggc3RydWN0IGRlY2xhcmF0aW9uLgoKMjAwMi0xMi0xMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGR3YXJmMi5jIChjb21wX3VuaXRfY29udGFpbnNfYWRkcmVzcyk6IENvbW1lbnQgdHlwbyBmaXguCgkqIGVsZi5jIChnZXRfcHJvZ3JhbV9oZWFkZXJfc2l6ZSk6IExpa2V3aXNlLgoJKiBlbGYzMi1tMzJyLmMgKG0zMnJfZWxmX2xvMTZfcmVsb2MpOiBMaWtld2lzZS4KCShtMzJyX2VsZl9nZW5lcmljX3JlbG9jKTogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX2hvd3RvX2luaXQpOiBMaWtld2lzZS4KCSogZWxmbGluay5oIChlbGZfYmZkX2Rpc2NhcmRfaW5mbyk6IExpa2V3aXNlLgoKMjAwMi0xMi0xMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBBZGQgb3V0cHV0X29mZnNldAoJdG8gRFRfSk1QUkVMLiAgVXNlIHNyZWxwbHQgaW5wdXQgc2VjdGlvbiBzaXplIGZvciBEVF9QTFRSRUxTWiBhbmQKCURUX1JFTFNaIGFkanVzdG1lbnQsIG5vdCBvdXRwdXQgc2VjdGlvbi4gIEF2b2lkIHdyaXRpbmcgdGFncyB3aGVuCgl1bmNoYW5nZWQuICBEb24ndCBhc3N1bWUgbGlua2VyIHNjcmlwdCBpcyBzYW5lLCBhZGp1c3QgRFRfUkVMIHRvby4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogSnVzdCB1c2UgcmF3CglzaXplIG9mIHNyZWxwbHQgZm9yIERUX1BMVFJFTFNaLiAgVXNlIHNyZWxwbHQgaW5wdXQgc2VjdGlvbiBzaXplIGZvcgoJRFRfUkVMQVNaIGFkanVzdG1lbnQsIG5vdCBvdXRwdXQgc2VjdGlvbi4gIEF2b2lkIHdyaXRpbmcgdGFncyB3aGVuCgl1bmNoYW5nZWQuICBBZGp1c3QgRFRfUkVMQS4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IFR3ZWFrcyBmb3IgYmV0dGVyCglmb3JtYXR0aW5nLiAgQXZvaWQgd3JpdGluZyB0YWdzIHdoZW4gdW5jaGFuZ2VkLiAgQWRqdXN0IERUX1JFTEEuCgoyMDAyLTEyLTEyICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfY2FsY3VsYXRlX3JlbG9jYXRpb24pOiBEb24ndCBkaXZpZGUKCWFkZGVuZCBieSA0LgoKMjAwMi0xMi0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKHN0cnVjdCBtaXBzX2dvdF9lbnRyeSk6IE5ldy4KCShzdHJ1Y3QgbWlwc19nb3RfaW5mbyk6IEFkZGVkIGdvdF9lbnRyaWVzIGZpZWxkLgoJKG1pcHNfZWxmX2dvdF9lbnRyeV9oYXNoLCBtaXBzX2VsZl9nb3RfZW50cnlfZXEpOiBOZXcgZnVuY3Rpb25zLgoJKG1pcHNfZWxmX2xvY2FsX2dvdF9pbmRleCwgbWlwc19lbGZfZ290X3BhZ2UsCgltaXBzX2VsZl9nb3QxNl9lbnRyeSk6IFJlLWltcGxlbWVudCBpbiB0ZXJtcyBvZiBuZXcuLi4KCShtaXBzX2VsZl9jcmVhdGVfbG9jYWxfZ290X2VudHJ5KTogUmV3cml0ZSB0byB1c2UgZ290X2VudHJpZXMuCglDaGFuZ2UgcmV0dXJuIHR5cGUuCgkobWlwc19lbGZfaGlnaGVzdCk6IFdhcm5pbmcgY2xlYW4tdXAuCgkobWlwc19lbGZfY3JlYXRlX2dvdF9zZWN0aW9uKTogSW5pdGlhbGl6ZSBnb3RfZW50cmllcy4KCShfYmZkX21pcHNfZWxmX2NoZWNrX3JlbG9jcyk6IFVzZSBnb3RfZW50cmllcyB0byBlc3RpbWF0ZQoJbG9jYWwgZ290IHNpemUuCgkoX2JmZF9taXBzX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBEbyBub3QgYWNjb3VudCBmb3IKCUdPVF9QQUdFIGVudHJpZXMsIHNpbmNlIHdlIG5vdyByZXVzZSBHT1QxNiBlbnRyaWVzLgoKMjAwMi0xMi0xMCAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGFvdXR4LmggKHNldF9zZWN0aW9uX2NvbnRlbnRzKTogQWxsb3cgYW4gb3RoZXJ3aXNlIHVucmVwcmVzZW50YWJsZQoJcmVhZC1vbmx5IHNlY3Rpb24gdGhhdCBsaWVzIGFmdGVyIC50ZXh0IGFuZCBiZWZvcmUgLmRhdGEgdG8gYmUKCXdyaXR0ZW4gaW50byB0aGUgb3V0cHV0IGZpbGUgYW5kIGluY2x1ZGVkIGluIGFfdGV4dC4KCSh0cmFuc2xhdGVfdG9fbmF0aXZlX3N5bV9mbGFncyk6IElmIGFuIG90aGVyd2lzZSB1bnJlcHJlc2VudGFibGUKCXNlY3Rpb24gd2FzIG1lcmdlZCB3aXRoIC50ZXh0LCBjb252ZXJ0IGl0cyBzeW1ib2xzIHRvIE5fVEVYVAoJc3ltYm9scy4KCSogbGliYW91dC5oIChhb3V0X3NlY3Rpb25fbWVyZ2Vfd2l0aF90ZXh0X3ApOiBOZXcgbWFjcm8uCgoyMDAyLTEyLTA4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYmZkLWluLmg6IENvbW1lbnQgdHlwbyBmaXguICBGb3JtYXR0aW5nLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGNvZmY2NC1yczYwMDAuYyAoeGNvZmY2NF9vcGVucl9uZXh0X2FyY2hpdmVkX2ZpbGUpOiBXYXJuaW5nIGZpeC4KCSogZWxmMzItbTY4aGMxMi5jIChtNjhoYzEyX2VsZl9zZXRfbWFjaF9mcm9tX2ZsYWdzKTogUHJvdG90eXBlLgoJKiBlbGY2NC1tbWl4LmMgKG1taXhfZHVtcF9icG9fZ3JlZ3MpOiBXYXJuaW5nIGZpeC4KCjIwMDItMTItMDUgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfcmVsYXhfc2VjdGlvbik6IEhhbmRsZSBQQ1JFTDIxQkkuCglPbmx5IHNlbmQgUENSRUwyMUIgdGhvdWdoIHRoZSBwbHQuICBGaXggaW5zdGFsbGVkIHJlbG9jIHR5cGUuCgkoZWxmTk5faWE2NF9yZWxvY2F0ZV9zZWN0aW9uKTogR2l2ZSBlcnJvciBmb3IgZHluYW1pYyByZWxvYwoJYWdhaW5zdCBQQ1JFTDIyIG9yIFBDUkVMNjRJOyBjbGVhbiB1cCBlcnJvciBtZXNzYWdlcyBmb3IKCWJyYW5jaCByZWxvY3MuCgoyMDAyLTEyLTA0ICBLZXZpbiBCdWV0dG5lciAgPGtldmluYkByZWRoYXQuY29tPgoKCSogZWxmNjQtbWlwcy5jIChlbGY2NF9taXBzX2dyb2tfcHJzdGF0dXMsIGVsZjY0X21pcHNfZ3Jva19wc2luZm8pOgoJTmV3IGZ1bmN0aW9ucy4KCShlbGZfYmFja2VuZF9ncm9rX3Byc3RhdHVzLCBlbGZfYmFja2VuZF9ncm9rX3BzaW5mbyk6IERlZmluZS4KCjIwMDItMTItMDQgIERhdmlkIE1vc2JlcmdlciAgPGRhdmlkbUBocGwuaHAuY29tPgoKCSogY3B1LWlhNjQtb3BjLmM6IEFkZCBvcGVyYW5kIGNvbnN0YW50ICJhci5jc2QiLgoKMjAwMi0xMi0wNCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGZ4eC1pYTY0LmMgKGdldF9sb2NhbF9zeW1faGFzaCk6IFVzZSBzZWN0aW9uIElEIGluc3RlYWQgb2YKCUJGRCBhZGRyZXNzIHdoZW4gY29uc3RydWN0aW5nIGxvY2FsIG5hbWUuCgoyMDAyLTEyLTA0ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogZWxmMzItbTY4ay5jIChzdHJ1Y3QgZWxmX202OGtfbGlua19oYXNoX3RhYmxlKTogQWRkIHN5bV9zZWMKCW1lbWJlci4KCShlbGZfbTY4a19saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogSW5pdGlhbGl6ZSBpdC4KCShlbGZfbTY4a19jaGVja19yZWxvY3MpOiBIYW5kbGUgc3ltYm9scyB0aGF0IGFyZSBmb3JjZWQgdG8gYmUKCWxvY2FsIGR1ZSB0byB2aXNpYmlsaXR5IGNoYW5nZXMuCgkoZWxmX202OGtfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgkoZWxmX202OGtfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoZWxmX202OGtfZGlzY2FyZF9jb3BpZXMpOiBMaWtld2lzZS4KCShlbGZfbTY4a19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAyLTEyLTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9lZGl0X29wZCk6IENvcnJlY3QgdHlwby4KCjIwMDItMTItMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBzcmVjLmMgKHNyZWNfd3JpdGVfc3ltYm9scyk6IFJlc3RvcmUgJyQnIHByZWZpeCB0byBhZGRyZXNzCglhY2NpZGVudGFsbHkgcmVtb3ZlZCBpbiAyMDAyLTA0LTA0IGNoYW5nZS4KCShzcmVjX2dldF9zeW10YWIpOiBVc2UgMCBpbnN0ZWFkIG9mIGAobG9uZykgRkFMU0UnLgoKMjAwMi0xMi0wMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXBwYy5jIChhcHVpbmZvX2xpc3RfaW5pdCk6IE5ldyBmdW5jdGlvbi4KCShhcHVpbmZvX2xpc3RfYWRkKTogTmV3IGZ1bmN0aW9uOiBBZGQgYSB2YWx1ZSB0byB0aGUgbGlzdC4KCShhcHVpbmZvX2xpc3RfbGVuZ3RoKTogTmV3IGZ1bmN0aW9uOiBSZXR1cm4gdGhlIG51bWJlciBvZgoJdmFsdWVzIG9uIHRoZSBsaXN0LgoJKGFwdWluZm9fbGlzdF9lbGVtZW50KTogTmV3IGZ1bmN0aW9uOiBSZXR1cm4gYSB2YWx1ZSBvbiB0aGUKCWxpc3QuCgkoYXB1aW5mb19saXN0X2ZpbmlzaCk6IE5ldyBmdW5jdGlvbjogRnJlZSB0aGUgcmVzb3VyY2VzIHVzZWQKCWJ5IHRoZSBsaXN0LgoJKHBwY19lbGZfYmVnaW5fd3JpdGVfcHJvY2Vzc2luZyk6IE5ldyBmdW5jdGlvbi4gIFNjYW4gdGhlCglpbnB1dCBiZmRzIGZvciBhcHVpbmZvIHNlY3Rpb25zLgoJKHBwY19lbGZfd3JpdGVfc2VjdGlvbik6IE5ldyBmdW5jdGlvbjogRGVsYXkgdGhlIGNyZWF0aW9uIG9mCgl0aGUgY29udGVudHMgb2YgYW4gYXB1aW5mbyBzZWN0aW9uIGluIGFuIG91dHB1dCBiZmQuCgkocHBjX2VsZl9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogTmV3IGZ1bmN0aW9uLiAgQ3JlYXRlIHRoZQoJY29udGVudHMgb2YgYW4gYXB1aW5mbyBzZWN0aW9uIGluIGFuIG91dHB1dCBiZmQuCgkoZWxmX2JhY2tlbmRfYmVnaW5fd3JpdGVfcHJvY2Vzc2luZyk6IERlZmluZS4KCShlbGZfYmFja2VuZF9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogRGVmaW5lLgoJKGVsZl9iYWNrZW5kX3dyaXRlX3NlY3Rpb24pOiBEZWZpbmUuCgoyMDAyLTEyLTAzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY3B1LWlhNjQtb3BjLmMgKGVsZjY0X2lhNjRfb3BlcmFuZHMpOiBBZGQgbGR4bW92IGVudHJ5LgoKMjAwMi0xMi0wMSAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJRml4IFBSIHNhdmFubmFoLzE0MTc6CgkqIGVsZjMyLW02OGhjMTEuYyAobTY4aGMxMV9lbGZfcmVsYXhfZGVsZXRlX2J5dGVzKTogRG9uJ3QgYWRqdXN0CglicmFuY2ggaWYgaXQgZ29lcyB0byB0aGUgc3RhcnQgb2YgdGhlIGRlbGV0ZWQgcmVnaW9uLgoKMjAwMi0xMi0wMSAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBiZmQtaW4yLmggKGJmZF9tYWNoX202ODEyKTogUmVidWlsZC4KCSogYXJjaHVyZXMuYyAoYmZkX21hY2hfbTY4MTJfZGVmYXVsdCwgYmZkX21hY2hfbTY4MTIsCgliZmRfbWFjaF9tNjgxMnMpOiBEZWNsYXJlLgoKCSogZWxmMzItbTY4aGMxMi5jIChtNjhoYzEyX2VsZl9zZXRfbWFjaF9mcm9tX2ZsYWdzKTogTmV3IGZ1bmN0aW9uLgoJKF9iZmRfbTY4aGMxMl9lbGZfc2V0X3ByaXZhdGVfZmxhZ3MpOiBDYWxsIGl0LgoJKF9iZmRfbTY4aGMxMl9lbGZfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IFJlcG9ydCBwcm9jZXNzb3IgdmVyc2lvbi4KCShfYmZkX202OGhjMTJfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBNZXJnZSB0aGUgZmxhZ3MgYW5kCglyZXBvcnQgbWljcm9jb250cm9sbGVyIGluY29tcGF0aWJpbGl0aWVzIChIQzEyIHZzIEhDUzEyKS4KCShlbGZfYmFja2VuZF9vYmplY3RfcCk6IFVwZGF0ZS4KCjIwMDItMTEtMzAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBiZmQtaW4uaCAoVFJVRV9GQUxTRV9BTFJFQURZX0RFRklORUQsIEJGRF9UUlVFX0ZBTFNFKTogRGVsZXRlLgoJKGVudW0gYmZkX2Jvb2xlYW4sIGJvb2xlYW4pOiBEZWxldGUuCgkoYmZkX2Jvb2xlYW4pOiBUeXBlZGVmIHRvIGFuIGludC4KCShGQUxTRSwgVFJVRSk6IERlZmluZS4KCSogYWl4Mzg2LWNvcmUuYywgYWl4NXBwYy1jb3JlLmMsIGFvdXQtYWRvYmUuYywgYW91dC1hcm0uYywgYW91dC1jcmlzLmMsCglhb3V0LWVuY2FwLmMsIGFvdXQtbnMzMmsuYywgYW91dC10YXJnZXQuaCwgYW91dC10aWMzMC5jLCBhb3V0ZjEuaCwKCWFvdXR4LmgsIGFyY2hpdmUuYywgYXJjaGl2ZTY0LmMsIGFyY2h1cmVzLmMsIGJmZC1pbi5oLCBiZmQuYywgYmZkd2luLmMsCgliaW5hcnkuYywgYm91dC5jLCBjYWNoZS5jLCBjaXNjby1jb3JlLmMsIGNvZmYtYTI5ay5jLCBjb2ZmLWFscGhhLmMsCgljb2ZmLWFwb2xsby5jLCBjb2ZmLWFybS5jLCBjb2ZmLWF1eC5jLCBjb2ZmLWg4MzAwLmMsIGNvZmYtaDg1MDAuYywKCWNvZmYtaTM4Ni5jLCBjb2ZmLWk4NjAuYywgY29mZi1pOTYwLmMsIGNvZmYtaWE2NC5jLCBjb2ZmLW02OGsuYywKCWNvZmYtbTg4ay5jLCBjb2ZmLW1jb3JlLmMsIGNvZmYtbWlwcy5jLCBjb2ZmLW9yMzIuYywgY29mZi1wcGMuYywKCWNvZmYtcnM2MDAwLmMsIGNvZmYtc2guYywgY29mZi1zcGFyYy5jLCBjb2ZmLXN0Z28zMi5jLCBjb2ZmLXRpYzMwLmMsCgljb2ZmLXRpYzR4LmMsIGNvZmYtdGljNTR4LmMsIGNvZmYtdGljODAuYywgY29mZi13NjUuYywgY29mZi13ZTMyay5jLAoJY29mZi16OGsuYywgY29mZjY0LXJzNjAwMC5jLCBjb2ZmY29kZS5oLCBjb2ZmZ2VuLmMsIGNvZmZsaW5rLmMsCgljb3JlZmlsZS5jLCBjcHUtYTI5ay5jLCBjcHUtYWxwaGEuYywgY3B1LWFyYy5jLCBjcHUtYXJtLmMsIGNwdS1hdnIuYywKCWNwdS1jcmlzLmMsIGNwdS1kMTB2LmMsIGNwdS1kMzB2LmMsIGNwdS1kbHguYywgY3B1LWZyMzAuYywgY3B1LWZydi5jLAoJY3B1LWg4MzAwLmMsIGNwdS1oODUwMC5jLCBjcHUtaHBwYS5jLCBjcHUtaTM3MC5jLCBjcHUtaTM4Ni5jLAoJY3B1LWk4NjAuYywgY3B1LWk5NjAuYywgY3B1LWlhNjQuYywgY3B1LWlwMmsuYywgY3B1LW0xMDIwMC5jLAoJY3B1LW0xMDMwMC5jLCBjcHUtbTMyci5jLCBjcHUtbTY4aGMxMS5jLCBjcHUtbTY4aGMxMi5jLCBjcHUtbTY4ay5jLAoJY3B1LW04OGsuYywgY3B1LW1jb3JlLmMsIGNwdS1taXBzLmMsIGNwdS1tbWl4LmMsIGNwdS1uczMyay5jLAoJY3B1LW9wZW5yaXNjLmMsIGNwdS1vcjMyLmMsIGNwdS1wZHAxMS5jLCBjcHUtcGouYywgY3B1LXBvd2VycGMuYywKCWNwdS1yczYwMDAuYywgY3B1LXMzOTAuYywgY3B1LXNoLmMsIGNwdS1zcGFyYy5jLCBjcHUtdGljMzAuYywKCWNwdS10aWM0eC5jLCBjcHUtdGljNTR4LmMsIGNwdS10aWM4MC5jLCBjcHUtdjg1MC5jLCBjcHUtdmF4LmMsCgljcHUtdzY1LmMsIGNwdS13ZTMyay5jLCBjcHUteHN0b3JteTE2LmMsIGNwdS16OGsuYywgZHdhcmYxLmMsCglkd2FyZjIuYywgZWNvZmYuYywgZWNvZmZsaW5rLmMsIGVmaS1hcHAtaWEzMi5jLCBlZmktYXBwLWlhNjQuYywKCWVsZi1iZmQuaCwgZWxmLWVoLWZyYW1lLmMsIGVsZi1ocHBhLmgsIGVsZi1tMTAyMDAuYywgZWxmLW0xMDMwMC5jLAoJZWxmLXN0cnRhYi5jLCBlbGYuYywgZWxmMzItYXJjLmMsIGVsZjMyLWFybS5oLCBlbGYzMi1hdnIuYywKCWVsZjMyLWNyaXMuYywgZWxmMzItZDEwdi5jLCBlbGYzMi1kMzB2LmMsIGVsZjMyLWRseC5jLCBlbGYzMi1mcjMwLmMsCgllbGYzMi1mcnYuYywgZWxmMzItZ2VuLmMsIGVsZjMyLWg4MzAwLmMsIGVsZjMyLWhwcGEuYywgZWxmMzItaHBwYS5oLAoJZWxmMzItaTM3MC5jLCBlbGYzMi1pMzg2LmMsIGVsZjMyLWk4NjAuYywgZWxmMzItaTk2MC5jLCBlbGYzMi1pcDJrLmMsCgllbGYzMi1tMzJyLmMsIGVsZjMyLW02OGhjMTEuYywgZWxmMzItbTY4aGMxMi5jLCBlbGYzMi1tNjhrLmMsCgllbGYzMi1tY29yZS5jLCBlbGYzMi1taXBzLmMsIGVsZjMyLW9wZW5yaXNjLmMsIGVsZjMyLW9yMzIuYywKCWVsZjMyLXBqLmMsIGVsZjMyLXBwYy5jLCBlbGYzMi1zMzkwLmMsIGVsZjMyLXNoLmMsIGVsZjMyLXNoNjQtY29tLmMsCgllbGYzMi1zaDY0LmMsIGVsZjMyLXNwYXJjLmMsIGVsZjMyLXY4NTAuYywgZWxmMzItdmF4LmMsCgllbGYzMi14c3Rvcm15MTYuYywgZWxmNjQtYWxwaGEuYywgZWxmNjQtZ2VuLmMsIGVsZjY0LWhwcGEuYywKCWVsZjY0LW1pcHMuYywgZWxmNjQtbW1peC5jLCBlbGY2NC1wcGMuYywgZWxmNjQtcHBjLmgsIGVsZjY0LXMzOTAuYywKCWVsZjY0LXNoNjQuYywgZWxmNjQtc3BhcmMuYywgZWxmNjQteDg2LTY0LmMsIGVsZmFybS1uYWJpLmMsCgllbGZhcm0tb2FiaS5jLCBlbGZjb2RlLmgsIGVsZmNvcmUuaCwgZWxmbGluay5jLCBlbGZsaW5rLmgsCgllbGZuMzItbWlwcy5jLCBlbGZ4eC1pYTY0LmMsIGVsZnh4LW1pcHMuYywgZWxmeHgtbWlwcy5oLAoJZWxmeHgtdGFyZ2V0LmgsIGZvcm1hdC5jLCBmcmVlYnNkLmgsIGdlbmxpbmsuaCwgaGFzaC5jLCBocDMwMGhwdXguYywKCWhwcGFic2QtY29yZS5jLCBocHV4LWNvcmUuYywgaTM4NmFvdXQuYywgaTM4NmxpbnV4LmMsIGkzODZseW54LmMsCglpMzg2bWFjaDMuYywgaTM4Nm1zZG9zLmMsIGkzODZvczlrLmMsIGllZWUuYywgaWhleC5jLCBpcml4LWNvcmUuYywKCWxpYmFvdXQuaCwgbGliYmZkLWluLmgsIGxpYmJmZC5jLCBsaWJjb2ZmLWluLmgsIGxpYmVjb2ZmLmgsIGxpYmllZWUuaCwKCWxpYm5sbS5oLCBsaWJvYXN5cy5oLCBsaWJwZWkuaCwgbGlieGNvZmYuaCwgbGlua2VyLmMsIGx5bngtY29yZS5jLAoJbTY4a2xpbnV4LmMsIG02OGtseW54LmMsIG1hY2gtby5jLCBtYWNoLW8uaCwgbWVyZ2UuYywgbWlwc2JzZC5jLAoJbW1vLmMsIG5ldGJzZC1jb3JlLmMsIG5ldGJzZC5oLCBubG0uYywgbmxtMzItYWxwaGEuYywgbmxtMzItaTM4Ni5jLAoJbmxtMzItcHBjLmMsIG5sbTMyLXNwYXJjLmMsIG5sbWNvZGUuaCwgb2FzeXMuYywgb3BuY2xzLmMsIG9zZi1jb3JlLmMsCglwYzUzMi1tYWNoLmMsIHBkcDExLmMsIHBlLWFybS5jLCBwZS1pMzg2LmMsIHBlLW1jb3JlLmMsIHBlLW1pcHMuYywKCXBlLXNoLmMsIHBlWFhpZ2VuLmMsIHBlZi5jLCBwZWktYXJtLmMsIHBlaS1pMzg2LmMsIHBlaS1tY29yZS5jLAoJcGVpLW1pcHMuYywgcGVpLXNoLmMsIHBlaWNvZGUuaCwgcHBjYm9vdC5jLCBwdHJhY2UtY29yZS5jLCByZWxvYy5jLAoJcmVsb2MxNi5jLCByaXNjaXguYywgcnM2MDAwLWNvcmUuYywgc2NvNS1jb3JlLmMsIHNlY3Rpb24uYywgc2ltcGxlLmMsCglzb20uYywgc29tLmgsIHNwYXJjbGludXguYywgc3BhcmNseW54LmMsIHNyZWMuYywgc3RhYnMuYywgc3Vub3MuYywKCXN5bXMuYywgdGFyZ2V0cy5jLCB0ZWtoZXguYywgdGljb2ZmLmgsIHRyYWQtY29yZS5jLCB2ZXJzYWRvcy5jLAoJdm1zLWdzZC5jLCB2bXMtaGRyLmMsIHZtcy1taXNjLmMsIHZtcy10aXIuYywgdm1zLmMsIHZtcy5oLAoJeGNvZmYtdGFyZ2V0LmgsIHhjb2ZmbGluay5jLCB4c3ltLmMsIHhzeW0uaDogUmVwbGFjZSBib29sZWFuIHdpdGgKCWJmZF9ib29sZWFuLCB0cnVlIHdpdGggVFJVRSwgZmFsc2Ugd2l0aCBGQUxTRS4gIFNpbXBsaWZ5IGNvbXBhcmlzb25zCglvZiBiZmRfYm9vbGVhbiB2YXJzIHdpdGggVFJVRS9GQUxTRS4gIEZvcm1hdHRpbmcuCgkqIGJmZC1pbjIuaCwgbGliYmZkLmgsIGxpYmNvZmYuaDogUmVnZW5lcmF0ZQoKMjAwMi0xMS0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1iZmQuaDogUmVwbGFjZSBvY2N1cnJlbmNlcyBvZiBFbGYzMl9JbnRlcm5hbF8qIGFuZAoJRWxmNjRfSW50ZXJuYWxfKiB3aXRoIEVsZl9JbnRlcm5hbF8qLiAgUmVwbGFjZSBFbGZfSW50ZXJuYWxfUmVsCgl3aXRoIEVsZl9JbnRlcm5hbF9SZWxhLgoJKiBlbGYtaHBwYS5oLCBlbGYtbTEwMjAwLmMsIGVsZi1tMTAzMDAuYywgZWxmMzItYXJjLmMsIGVsZjMyLWFybS5oLAoJZWxmMzItYXZyLmMsIGVsZjMyLWNyaXMuYywgZWxmMzItZDEwdi5jLCBlbGYzMi1kMzB2LmMsIGVsZjMyLWRseC5jLAoJZWxmMzItZnIzMC5jLCBlbGYzMi1mcnYuYywgZWxmMzItZ2VuLmMsIGVsZjMyLWg4MzAwLmMsIGVsZjMyLWhwcGEuYywKCWVsZjMyLWkzNzAuYywgZWxmMzItaTM4Ni5jLCBlbGYzMi1pODYwLmMsIGVsZjMyLWk5NjAuYywgZWxmMzItaXAyay5jLAoJZWxmMzItbTMyci5jLCBlbGYzMi1tNjhoYzExLmMsIGVsZjMyLW02OGhjMTIuYywgZWxmMzItbTY4ay5jLAoJZWxmMzItbWNvcmUuYywgZWxmMzItbWlwcy5jLCBlbGYzMi1vcGVucmlzYy5jLCBlbGYzMi1vcjMyLmMsCgllbGYzMi1wcGMuYywgZWxmMzItczM5MC5jLCBlbGYzMi1zaC5jLCBlbGYzMi12ODUwLmMsIGVsZjMyLXZheC5jLAoJZWxmMzIteHN0b3JteTE2LmMsIGVsZjY0LWFscGhhLmMsIGVsZjY0LWdlbi5jLCBlbGY2NC1ocHBhLmMsCgllbGY2NC1taXBzLmMsIGVsZjY0LW1taXguYywgZWxmNjQtcHBjLmMsIGVsZjY0LXMzOTAuYywgZWxmNjQtc2g2NC5jLAoJZWxmNjQtc3BhcmMuYywgZWxmNjQteDg2LTY0LmMsIGVsZmFybS1uYWJpLmMsIGVsZmFybS1vYWJpLmMsCgllbGZjb2RlLmgsIGVsZmxpbmsuaCwgZWxmbjMyLW1pcHMuYywgZWxmeHgtaWE2NC5jLCBlbGZ4eC1taXBzLmM6IERpdHRvLgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9pbnRlcm5hbF9zaGRyKTogRGVsZXRlLiAgVXNlIEVsZl9JbnRlcm5hbF9TaGRyCgl0aHJvdWdob3V0IGluc3RlYWQuCgkqIGVsZi5jIChfYmZkX2VsZl9ub19pbmZvX3RvX2hvd3RvX3JlbCk6IERlbGV0ZS4KCSogZWxmY29kZS5oIChlbGZfc3dhcF9yZWxvY2FfaW4pOiBQYXNzIHNvdXJjZSBvcGVyYW5kIGFzIGEgYmZkX2J5dGUgKi4KCVJlbW92ZSBJTkxJTkUga2V5d29yZC4KCShlbGZfc3dhcF9yZWxvY19pbik6IExpa2V3aXNlLiAgQWxzbyBjbGVhciByX2FkZGVuZC4KCShlbGZfc3dhcF9yZWxvY19vdXQsIGVsZl9zd2FwX3JlbG9jYV9vdXQpOiBQYXNzIGRlc3RpbmF0aW9uIG9wZXJhbmQKCWFzIGEgYmZkX2J5dGUgKi4KCShlbGZfd3JpdGVfcmVsb2NzKTogQ29uc29saWRhdGUgUkVMIGFuZCBSRUxBIGNvZGUuCgkoZWxmX3NsdXJwX3JlbG9jX3RhYmxlX2Zyb21fc2VjdGlvbik6IFNpbXBsaWZ5IFJFTCBjb2RlLgoJKE5BTUUoX2JmZF9lbGYsc2l6ZV9pbmZvKSk6IFBvcHVsYXRlIHJlbG9jIHN3YXAgZW50cmllcy4KCSogZWxmLWJmZC5oIChNQVhfSU5UX1JFTFNfUEVSX0VYVF9SRUwpOiBEZWZpbmUuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfcmVhZF9yZWxvY3NfZnJvbV9zZWN0aW9uKTogQ29uc29saWRhdGUgUkVMIGFuZAoJUkVMQSBjb2RlLgoJKGVsZl9saW5rX2FkanVzdF9yZWxvY3MpOiBMaWtld2lzZS4gIERvbid0IG1hbGxvYyBzcGFjZSBmb3IgdGVtcAoJcmVsb2MgYXJyYXksIHVzZSBhIGZpeGVkIHNpemUgb2YgTUFYX0lOVF9SRUxTX1BFUl9FWFRfUkVMLgoJKGVsZl9saW5rX291dHB1dF9yZWxvY3MpOiBMaWtld2lzZS4KCShlbGZfcmVsb2NfbGlua19vcmRlcik6IExpa2V3aXNlLgoJKGVsZl9maW5pc2hfcG9pbnRlcl9saW5rZXJfc2VjdGlvbik6IExpa2V3aXNlLgoJKHN0cnVjdCBlbGZfbGlua19zb3J0X3JlbGEpOiBSZW1vdmUgdW5pb24uCgkoZWxmX2xpbmtfc29ydF9jbXAxKTogVXBkYXRlIHRvIHN1aXQuCgkoZWxmX2xpbmtfc29ydF9jbXAyKTogSGVyZSB0b28uCgkoZWxmX2xpbmtfc29ydF9yZWxvY3MpOiBDb25zb2xpZGF0ZSBSRUwgYW5kIFJFTEEgY29kZS4gIEZpeCBtZW1vcnkKCW92ZXItYWxsb2NhdGlvbiBmb3IgaW50X3JlbHNfcGVyX2V4dF9yZWwgIT0gMSBjYXNlLgoJKiBlbGYzMi1hcm0uaDogVXBkYXRlIGFsbCBiZmRfZWxmMzJfc3dhcF9yZWxvY19vdXQgY2FsbHMuCgkqIGVsZjMyLWkzODYuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWNyaXMuYzogTGlrZXdpc2UgZm9yIGJmZF9lbGYzMl9zd2FwX3JlbG9jYV9vdXQuCgkqIGVsZjMyLWhwcGEuYywgZWxmMzItaTM3MC5jLCBlbGYzMi1tNjhrLmMsIGVsZjMyLXBwYy5jLCBlbGYzMi1zMzkwLmMsCgllbGYzMi1zaC5jLCBlbGYzMi12YXguYywgZWxmeHgtbWlwcy5jOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYzogTGlrZXdpc2UgZm9yIGJmZF9lbGY2NF9zd2FwX3JlbG9jYV9vdXQuCgkqIGVsZjY0LWhwcGEuYywgZWxmNjQtbWlwcy5jLCBlbGY2NC1wcGMuYywgZWxmNjQtczM5MC5jLCBlbGY2NC1zaDY0LmMsCgllbGY2NC1zcGFyYy5jLCBlbGY2NC14ODYtNjQuYzogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYzogTGlrZXdpc2UgZm9yIGJmZF9lbGZOTl9zd2FwX3JlbG9jYV9vdXQuCgkqIGVsZnh4LW1pcHMuYyAoc29ydF9keW5hbWljX3JlbG9jcyk6IExpa2V3aXNlIGZvcgoJYmZkX2VsZjMyX3N3YXBfcmVsb2NfaW4uCgoJKiBlbGYzMi1hcm0uaDogVXBkYXRlIGVsZjMyX2FybV9pbmZvX3RvX2hvd3RvIGNhbGxzLgoJKiBlbGYzMi1taXBzLmM6IExpa2V3aXNlIGZvciBtaXBzX2luZm9fdG9faG93dG9fcmVsLgoJKG1pcHNfZWxmNjRfc3dhcF9yZWxvY19pbik6IFplcm8gcl9hZGRlbmQuCgkobWlwc19lbGY2NF9iZV9zd2FwX3JlbG9jX2luKTogTGlrZXdpc2UuCgkobWlwc19lbGY2NF9zbHVycF9vbmVfcmVsb2NfdGFibGUpOiBTaW1wbGlmeS4KCgkqIGVsZjY0LWFscGhhLmMgKGFscGhhX2VsZl9zaXplX2luZm8pOiBQb3B1bGF0ZSByZWxvYyBzd2FwIGVudHJpZXMuCgkqIGVsZjY0LWhwcGEuYyAoaHBwYTY0X2VsZl9zaXplX2luZm8pOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfc2l6ZV9pbmZvKTogTGlrZXdpc2UuCgoyMDAyLTExLTI4ICBLYXogS29qaW1hICA8a2tvamltYUByci5paWo0dS5vci5qcD4KCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogRG9uJ3QgY29tcGxhaW4gYWJvdXQKCXVucmVzb2x2ZWQgZGVidWdnaW5nIHJlbG9jcyBpbiBkeW5hbWljIGFwcGxpY2F0aW9ucy4KCSogZWxmNjQtc2g2NC5jIChzaF9lbGY2NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAyLTExLTI2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLWVoLWZyYW1lLmMgKEVOU1VSRV9OT19SRUxPQ1MpOiBEaXNyZWdhcmQgUl8qX05PTkUgcmVsb2NzLgoJKF9iZmRfZWxmX2Rpc2NhcmRfc2VjdGlvbl9laF9mcmFtZSk6IERvbid0IGRpc2NhcmQgZHVwbGljYXRlIENJRXMKCW9uIGEgcmVsb2NhdGFibGUgbGluay4gIENvbW1lbnQgdHlwb3MuCgkqIGVsZi5jIChfYmZkX2VsZl9saW5rX2hhc2hfbmV3ZnVuYyk6IEFzc2lnbiBlbGVtZW50cyBvZiBzdHJ1Y3R1cmUKCWluIHRoZSBvcmRlciB0aGV5IGFyZSBkZWNsYXJlZC4gIENsZWFyIGVsZl9oYXNoX3ZhbHVlIHRvby4KCShfYmZkX2VsZl9saW5rX2hhc2hfdGFibGVfaW5pdCk6IExpa2V3aXNlIGFzc2lnbiBpbiBvcmRlci4gIENsZWFyCgllaF9pbmZvIGFuZCB0bHNfc2VnbWVudC4KCSogZWxmbGluay5oIChlbGZfbGlua19pbnB1dF9iZmQgPGVtaXRfcmVsb2NzPik6IEtlZXAgcmVsb2Mgb2Zmc2V0cwoJc29ydGVkIHdoZW4gZGlzY2FyZGluZyByZWxvY3MgYnkgdHVybmluZyB0aGVtIGludG8gUl8qX05PTkUuCgoJKiBsaWJiZmQuYyAod2Fybl9kZXByZWNhdGVkKTogQ29tbWVudCBzcGVsbGluZy4KCSogcG8vU1JDLVBPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0xMS0yMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogRG9uJ3Qgb3ZlcndyaXRlIHRoZQoJYXJjaCdzIHN0X290aGVyIGJpdHMgd2hlbiBtZXJnaW5nIHZpc2liaWxpdGllcy4KCShlbGZfbGlua19vdXRwdXRfZXh0c3ltKTogVGlkeSBjbGVhcmluZyBvZiB2aXNpYmlsaXR5IGZpZWxkLgoKMjAwMi0xMS0yMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvZmYtbWNvcmUuYyAoU1dBUF9JTl9SRUxPQ19PRkZTRVQpOiBEZWZpbmUuCgkoU1dBUF9PVVRfUkVMT0NfT0ZGU0VUKTogRGVmaW5lLgoKMjAwMi0xMS0yMCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGYuYyAoX2JmZF9lbGZfbGlua19oYXNoX3RhYmxlX2luaXQpOiBNYWtlIHN1cmUKCWNhbl9yZWZjb3VudCBpcyBwcm9wZXJseSBleHRlbmRlZCB0byB0aGUgdHlwZSBvZgoJaW5pdF9yZWZjb3VudC4KCjIwMDItMTEtMTkgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChNSVBTX1JFTE9DX1JFTEFfUCk6IE5ldyBtYWNyby4KCShfYmZkX21pcHNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBVc2UgaXQuCgoJKiBlbGZ4eC1taXBzLmMgKE1OQU1FKTogTmV3IG1hY3JvLgoJKF9iZmRfbWlwc19lbGZfY2hlY2tfcmVsb2NzKTogVXNlIGl0LgoJKF9iZmRfbWlwc19lbGZfZGlzY2FyZF9pbmZvKTogTGlrZXdpc2UuCgkoX2JmZF9taXBzX2VsZl9maW5hbF9saW5rKTogTGlrZXdpc2UuCgoyMDAyLTExLTE5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9lZGl0X29wZCk6IFdoZW4gZGVsZXRpbmcgcmVsb2NzLCBhZGp1c3QKCXJlbF9oZHIuc2hfc2l6ZSB0b28uCgoyMDAyLTExLTE4ICBLbGVlIERpZW5lcyAgPGtkaWVuZXNAYXBwbGUuY29tPgoKCSogTWFrZWZpbGUuYW0gKEJGRDMyX0xJQlMpOiBBZGQgYmZkd2luLmxvLCBiZmRpby5sby4KCShCRkQzMl9MSUJTX0NGSUxFUyk6IEFkZCBiZmR3aW4uYywgYmZkaW8uYy4KCShCRkRfSF9GSUxFUyk6IEFkZCBiZmR3aW4uYywgYmZkaW8uYy4KCShMSUJCRkRfSF9GSUxFUyk6IEFkZCBiZmR3aW4uYywgYmZkaW8uYy4KCUFkZCBkZXBlbmRlbmNpZXMgZm9yIGJmZHdpbi5jLCBiZmRpby5jLgoJKiBiZmQuYzogUmVtb3ZlIGJmZF9nZXRfbXRpbWUsIGJmZF9nZXRfc2l6ZS4KCSogbGliYmZkLmM6IFJlbW92ZSByZWFsX3JlYWQsIGJmZF9icmVhZCwgX2JmZF93aW5kb3dfaW50ZXJuYWwsCgliZmRfaW5pdF93aW5kb3csIGJmZF9mcmVlX3dpbmRvdywgYmZkX2dldF9maWxlX3dpbmRvdywgYmZkX2J3cml0ZSwKCWJmZF90ZWxsLCBiZmRfZmx1c2gsIGJmZF9zdGF0LCBiZmRfc2Vlay4KCSogYmZkaW8uYzogTmV3IGZpbGUuICBDb250YWlucyByZWFsX3JlYWQsIGJmZF9icmVhZCwgYmZkX3dyaXRlLAoJYmZkX3RlbGwsIGJmZF9mbHVzaCwgYmZkX3N0YXQsIGJmZF9zZWVrLCBiZmRfZ2VfbXRpbWUsCgliZmRfZ2V0X3NpemUgKG1vdmVkIGZyb20gbGliYmZkLmMgYW5kIGJmZC5jKS4KCSogYmZkd2luLmMgTmV3IGZpbGUuICBDb250YWlucyBfYmZkX3dpbmRvd19pbnRlcm5hbCwKCWJmZF9pbml0X3dpbmRvdywgYmZkX2ZyZWVfd2luZG93LCBiZmRfZ2V0X2ZpbGVfd2luZG93IChtb3ZlZCBmcm9tCglsaWJiZmQuYyBhbmQgYmZkLmMpLgoJKiBwby9TUkMtUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL2JmZC5wb3Q6IFJlZ2VuZXJhdGUuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGFjbG9jYWwubTQ6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTExLTE4ICBLbGVlIERpZW5lcyAgPGtkaWVuZXNAYXBwbGUuY29tPgoKCSogYmZkLmMgKGJmZF9wcmVzZXJ2ZV9zYXZlKTogRG9uJ3QgemVybyBCRkRfSU5fTUVNT1JZLgoKMjAwMi0xMS0xNSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNvZmYtaDgzMDAuYyAoaDgzMDBfcmVsb2MxNl9lc3RpbWF0ZSk6IERvIG5vdCBvcHRpbWl6ZSBhd2F5Cglqc3IgYWZ0ZXIgYSBzaG9ydCBqdW1wLgoJKiBlbGYzMi1oODMwMC5jIChlbGYzMl9oOF9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAyLTExLTE1ICBLbGVlIERpZW5lcyAgPGtkaWVuZXNAYXBwbGUuY29tPgoKCSogcGVmLmMgKGJmZF9wZWZfY29udmVydF9hcmNoaXRlY3R1cmUpOiBNb3ZlIGRlY2xhcmF0aW9uIG9mCglBUkNIX1BPV0VSUEMgYW5kIEFSQ0hfTTY4SyB0byB0aGUgc3RhcnQgb2YgdGhlIGZ1bmN0aW9uLgoKMjAwMi0xMS0xNCAgU3ZlaW4gRS4gU2VsZGFsICA8U3ZlaW4uU2VsZGFsQHNvbGlkYXMuY29tPgoKCSogY29mZi10aWM0eC5jICh0aWM0eF9ob3d0b190YWJsZSk6IEZvcm1hdHRpbmcgZml4dXAKCjIwMDItMTEtMTQgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGVsZjY0LW1taXguYyAoX2JmZF9tbWl4X2ZpbmFsaXplX2xpbmtlcl9hbGxvY2F0ZWRfZ3JlZ3MpOgoJRm9yIGJwb19ncmVnc19zZWN0aW9uLT5jb250ZW50cywgYWxsb2NhdGUgX3Jhd19zaXplLCBub3QKCV9jb29rZWRfc2l6ZS4KCjIwMDItMTEtMTMgIEtsZWUgRGllbmVzICA8a2RpZW5lc0BhcHBsZS5jb20+CgoJKiBjb25maWcuYmZkOiBBZGQgZW50cmllcyBmb3IgcG93ZXJwYy0qLWRhcndpbiBhbmQgY291c2lucy4KCjIwMDItMTEtMTMgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmY29kZS5oIChlbGZfb2JqZWN0X3ApOiBEb24ndCByZXN0b3JlIGFiZmQtPmFyY2hfaW5mby4KCjIwMDItMTEtMTMgIEtsZWUgRGllbmVzICA8a2RpZW5lc0BhcHBsZS5jb20+CgkgICAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGJmZC5jIChzdHJ1Y3QgYmZkX3ByZXNlcnZlKTogTmV3LgoJKGJmZF9wcmVzZXJ2ZV9zYXZlKTogTmV3IGZ1bmN0aW9uLgoJKGJmZF9wcmVzZXJ2ZV9yZXN0b3JlKTogRGl0dG8uCgkoYmZkX3ByZXNlcnZlX2ZpbmlzaCk6IERpdHRvLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIG1hY2gtby5jOiBGb3JtYXR0aW5nLgoJKGJmZF9tYWNoX29fc2Nhbl9yZWFkX3N5bXRhYl9zeW1ib2wpOiBNYWtlICJ2YWx1ZSIgdW5zaWduZWQuCgkoYmZkX21hY2hfb19vYmplY3RfcCk6IFVzZSBiZmRfcHJlc2VydmVfc2F2ZS9yZXN0b3JlL2ZpbmlzaC4KCShiZmRfbWFjaF9vX2NvcmVfcCk6IERpdHRvLgoJKGJmZF9tYWNoX29fc2Nhbik6IFBhc3MgaW4gbWRhdGEuCgkqIG1hY2gtby5oIChiZmRfbWFjaF9vX3NjYW4pOiBVcGRhdGUgcHJvdG90eXBlLgoJKiBwZWYuYzogRm9ybWF0dGluZy4KCShiZmRfcGVmX29iamVjdF9wKTogVXNlIGJmZF9wcmVzZXJ2ZV9zYXZlL3Jlc3RvcmUvZmluaXNoLgoJKGJmZF9wZWZfeGxpYl9vYmplY3RfcCk6IERpdHRvLgoJKGJmZF9wZWZfc2Nhbik6IFBhc3MgaW4gbWRhdGEuICBNb3ZlIHZlcnNpb24gY2hlY2sgdG8gYmZkX3BlZl9vYmplY3RfcC4KCSogcGVmLmggKGJmZF9wZWZfc2Nhbik6IFVwZGF0ZSBwcm90b3R5cGUuCgkqIHhzeW0uYzogRm9ybWF0dGluZywgSyZSIGZpeGVzLgoJKGJmZF9zeW1fb2JqZWN0X3ApOiBVc2UgYmZkX3ByZXNlcnZlX3NhdmUvcmVzdG9yZS9maW5pc2guCgkoYmZkX3N5bV9zY2FuKTogTmV3IGZ1bmN0aW9uIHNwbGl0IG91dCBmcm9tIGJmZF9zeW1fb2JqZWN0X3AuCgkqIHhzeW0uaCAoYmZkX3N5bV9zY2FuKTogRGVjbGFyZS4KCSogZWxmY29kZS5oIChlbGZfb2JqZWN0X3ApOiBVc2UgYmZkX3ByZXNlcnZlX3NhdmUvcmVzdG9yZS9maW5pc2guCgkqIGVsZmNvcmUuaCAoZWxmX2NvcmVfZmlsZV9wKTogTGlrZXdpc2UuCgkqIHRhcmdldHMuYyAoX2JmZF90YXJnZXRfdmVjdG9yKTogUmV2ZXJ0IDIwMDItMTEtMDggY2hhbmdlLgoKMjAwMi0xMS0xMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL2RhLnBvOiBVcGRhdGVkIERhbmlzaCB0cmFuc2xhdGlvbi4KCjIwMDItMTEtMTIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IE9wdGltaXplIHN0YWJzIGZvcgoJcmVsb2NhdGFibGUgbGluayB0b28uCgkoZWxmX2xpbmtfaW5wdXRfYmZkKTogV2hlbiBlbWl0dGluZyByZWxvY3MsIGFkanVzdCBvZmZzZXRzIGZvcgoJZWhfZnJhbWUgYW5kIHN0YWIgc2VjdGlvbnMuICBaYXAgZGVsZXRlZCByZWxvY3MuCgkoZWxmX3JlbG9jX3N5bWJvbF9kZWxldGVkX3ApOiBSZXR1cm4gdHJ1ZSBmb3IgemVybyByX3N5bW5keC4KCShlbGZfYmZkX2Rpc2NhcmRfaW5mbyk6IFJ1biBmb3IgcmVsb2NhdGFibGUgbGluayB0b28uCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfZWRpdF9vcGQpOiBSZW5hbWUgZnJvbSBlZGl0X29wZC4gIE1ha2UgZ2xvYmFsLgoJSGFuZGxlIGxkIC1yIGNhc2UuCgkocHBjNjRfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IERvbid0IGNhbGwgZWRpdF9vcGQgZnJvbSBoZXJlLgoJKiBlbGY2NC1wcGMuaCAocHBjNjRfZWxmX2VkaXRfb3BkKTogRGVjbGFyZS4KCgkqIGVsZi1iZmQuaCAoc3RydWN0IGNpZV9oZWFkZXIpOiBNb3ZlIGZyb20gZWxmX2VoLWZyYW1lLmMuCgkoc3RydWN0IGNpZSwgc3RydWN0IGVoX2NpZV9mZGUsIHN0cnVjdCBlaF9mcmFtZV9zZWNfaW5mbyk6IExpa2V3aXNlLgoJKHN0cnVjdCBlaF9mcmFtZV9hcnJheV9lbnQsIHN0cnVjdCBlaF9mcmFtZV9oZHJfaW5mbyk6IExpa2V3aXNlLgoJKGVudW0gZWxmX2xpbmtfaW5mb190eXBlKTogUmVtb3ZlIEVMRl9JTkZPX1RZUEVfRUhfRlJBTUVfSERSLgoJKHN0cnVjdCBlaF9mcmFtZV9oZHJfaW5mbyk6IEFkZCAiaGRyX3NlYyIsIHJlbW92ZSAic3BsaXQiLgoJKHN0cnVjdCBlbGZfbGlua19oYXNoX3RhYmxlKTogQWRkIGVoX2luZm8uCgkoc3RydWN0IGVsZl9vYmpfdGRhdGEpOiBDaGFuZ2UgZWhfZnJhbWVfaGRyIHRvIGFuIGFzZWN0aW9uICouCgkoX2JmZF9lbGZfZGlzY2FyZF9zZWN0aW9uX2VoX2ZyYW1lKTogVXBkYXRlIHByb3RvdHlwZS4KCShfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhfZnJhbWVfaGRyKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfd3JpdGVfc2VjdGlvbl9laF9mcmFtZSk6IExpa2V3aXNlLgoJKF9iZmRfZWxmX3dyaXRlX3NlY3Rpb25fZWhfZnJhbWVfaGRyKTogTGlrZXdpc2UuCgkqIGVsZi1laC1mcmFtZS5jIChfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhfZnJhbWUpOiBSZW1vdmUgImVoZHJzZWMiCglwYXJhbS4gIEdldCAiaGRyX2luZm8iIGZyb20gbGluayBoYXNoIHRhYmxlLgoJKF9iZmRfZWxmX2Rpc2NhcmRfc2VjdGlvbl9laF9mcmFtZV9oZHIpOiBSZW1vdmUgInNlYyIgcGFyYW0uICBHZXQKCWhlYWRlciBzZWN0aW9uIGZyb20gbGluayBoYXNoIHRhYmxlLiAgU2F2ZSBoZWFkZXIgc2VjdGlvbiB0byBlbGZfdGRhdGEuCgkoX2JmZF9lbGZfbWF5YmVfc3RyaXBfZWhfZnJhbWVfaGRyKTogUmVtb3ZlIGxvY2FsICJzZWMiLiAgVXNlCgloZWFkZXIgc2VjdGlvbiBmcm9tIGxpbmsgaGFzaCB0YWJsZS4gIERvbid0IGFsbG9jIGhkcl9pbmZvLiAgQ2xlYXIKCWhkcl9zZWMgaW5zdGVhZCBvZiBzZXR0aW5nICJzdHJpcCIuCgkoX2JmZF9lbGZfZWhfZnJhbWVfc2VjdGlvbl9vZmZzZXQpOiBGb3JtYXR0aW5nLgoJKF9iZmRfZWxmX3dyaXRlX3NlY3Rpb25fZWhfZnJhbWUpOiBSZW1vdmUgImVoZHJzZWMiLCBhZGQgImluZm8iIHBhcmFtLgoJR2V0IGhlYWRlciBzZWN0aW9uIGZyb20gbGluayBoYXNoIHRhYmxlLgoJKF9iZmRfZWxmX3dyaXRlX3NlY3Rpb25fZWhfZnJhbWVfaGRyKTogUmVtb3ZlICJzZWMiLCBhZGQgImluZm8iIHBhcmFtLgoJR2V0IGhlYWRlciBzZWN0aW9uIGZyb20gbGluayBoYXNoIHRhYmxlLgoJKiBlbGYuYyAobWFwX3NlY3Rpb25zX3RvX3NlZ21lbnRzKTogVXNlIGNhY2hlZCBlaF9mcmFtZV9oZHIuCgkoZ2V0X3Byb2dyYW1faGVhZGVyX3NpemUpOiBMaWtld2lzZS4KCShfYmZkX2VsZl9zZWN0aW9uX29mZnNldCk6IEZvcm1hdHRpbmcuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBTdGFzaCBlaCBmcmFtZSBoZWFkZXIKCXNlY3Rpb24gcG9pbnRlciBpbiBsaW5rIGhhc2ggdGFibGUuCgkoZWxmX2JmZF9maW5hbF9saW5rKTogQWRqdXN0IF9iZmRfZWxmX3dyaXRlX3NlY3Rpb25fZWhfZnJhbWVfaGRyCglhbmQgX2JmZF9lbGZfd3JpdGVfc2VjdGlvbl9laF9mcmFtZSBjYWxscy4gIFVwZGF0ZSBjb21tZW50IGFib3V0CgllaF9mcmFtZSBlbnRyaWVzLgoJKGVsZl9iZmRfZGlzY2FyZF9pbmZvKTogQWRqdXN0IF9iZmRfZWxmX2Rpc2NhcmRfc2VjdGlvbl9laF9mcmFtZSBhbmQKCV9iZmRfZWxmX2Rpc2NhcmRfc2VjdGlvbl9laF9mcmFtZV9oZHIgY2FsbHMuICBSZW1vdmUgImVoZHIiLgoKCSogcG8vU1JDLVBPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKCSogZWxmLWVoLWZyYW1lLmMgKF9iZmRfZWxmX2Rpc2NhcmRfc2VjdGlvbl9laF9mcmFtZSk6IERvbid0IHplcm8KCXJlbG9jcyBmb3IgZGlzY2FyZGVkIEZERXMuICBSZW1vdmUgZGVhZCBjb2RlLgoJKF9iZmRfZWxmX3dyaXRlX3NlY3Rpb25fZWhfZnJhbWVfaGRyKTogUmVtb3ZlIGRlYWQgY29kZS4KCSogZWxmbGluay5oIChlbGZfYmZkX2Rpc2NhcmRfaW5mbyk6IERvbid0IHNhdmUgZWRpdGVkIHJlbG9jcy4KCVRpZHkgY29uZGl0aW9ucyB1bmRlciB3aGljaCBzdGFicyBhcmUgZWRpdGVkLiAgRm9ybWF0dGluZy4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IElnbm9yZSBvdmVyZmxvd3MKCWZyb20gZGlzY2FyZGVkIHJlbG9jcy4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X2luc3RhbGxfZHluX3JlbG9jKTogQWRkIHJlbG9jIG91dHB1dAoJc2VjdGlvbiBhZGp1c3RtZW50cyBhZnRlciB0ZXN0aW5nIG1hZ2ljIHZhbHVlcy4KCjIwMDItMTEtMTIgIFRob21hcyBNb2VzdGwgPHRtbUBGcmVlQlNELm9yZz4KCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IENvcnJlY3QKCXJlZmVyZW5jZXMgdG8gbGFyZ2UgcGx0IHN5bWJvbHMuCgoyMDAyLTExLTEyICBLbGVlIERpZW5lcyAgPGtkaWVuZXNAYXBwbGUuY29tPgoKCSogbWFjaC1vLmMgKGJmZF9tYWNoX29fc2Nhbl9yZWFkX3RocmVhZCk6IERvbid0IHJlLXVzZSAnaScgd2hlbgoJbG9va2luZyBmb3IgYW4gdW51c2VkIHNlY3Rpb24gbmFtZS4KCjIwMDItMTEtMTEgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjb2ZmLWg4MzAwLmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBlbGYzMi1oODMwMC5jOiBMaWtld2lzZS4KCSogcmVsb2MxNi5jOiBMaWtld2lzZS4KCjIwMDItMTEtMDkgIEplcm9lbiBEb2JiZWxhZXJlICA8amVyb2VuLmRvYmJlbGFlcmVAYWN1bmlhLmNvbT4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogRG9uJ3Qgc3RyaXAgb3V0cHV0CglzZWN0aW9uIHdoZW4gZHluYW1pYyBzZWN0aW9uIHVudXNlZDsgIF9iZmRfc3RyaXBfc2VjdGlvbl9mcm9tX291dHB1dAoJaW5zdGVhZC4KCjIwMDItMTEtMDggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiB0YXJnZXRzLmMgKF9iZmRfdGFyZ2V0X3ZlY3Rvcik6IERpc2FibGUgcGVmX3ZlYywgcGVmX3hsaWJfdmVjCglhbmQgc3ltX3ZlYy4KCgkqIGR3YXJmMi5jOiBSZXZlcnQgbGFzdCBjaGFuZ2UuCgoyMDAyLTExLTA3ICBNaWNoYWwgTHVkdmlnICA8bWx1ZHZpZ0BzdXNlLmN6PgoKCSogZHdhcmYyLmMgKHJlYWRfaW5kaXJlY3Rfc3RyaW5nLCByZWFkX2FiYnJldnMsIGRlY29kZV9saW5lX2luZm8sCglfYmZkX2R3YXJmMl9maW5kX25lYXJlc3RfbGluZSk6IFVzZQoJYmZkX3NpbXBsZV9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMoKSBpbnN0ZWFkIG9mCgliZmRfZ2V0X3NlY3Rpb25fY29udGVudHMoKS4KCSogcmVsb2MuYyAoYmZkX3BlcmZvcm1fcmVsb2NhdGlvbik6IEFkZCBzYW5pdHkgY2hlY2suCgkqIHNpbXBsZS5jIChzaW1wbGVfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogSWYgdGhlIHNlY3Rpb24KCWRvZXMgbm90IGhhdmUgYW55IHJlbG9jcyBhc3NvY2lhdGVkIHdpdGggaXQsIGp1c3QgcmV0dXJuIHRoZQoJdW5hZGp1c3RlZCBjb250ZW50cy4KCjIwMDItMTEtMDcgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogZWxmMzItY3Jpcy5jIChjcmlzX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKSA8Y2FzZSBSX0NSSVNfMTZfR09ULAoJY2FzZSBSX0NSSVNfMzJfR09UPjogQ29ycmVjdCB0ZXN0IGZvciBmaWxsaW5nIGluIGNvbnN0YW50IC5nb3QKCWNvbnRlbnRzLCBlbmFibGluZyBmb3IgYSBub24tRFNPLCBmb3Igc3ltYm9scyBkZWZpbmVkIGluIHRoZQoJcHJvZ3JhbSB3aXRoIC0tZXhwb3J0LWR5bmFtaWMuCgoyMDAyLTExLTA3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmM6IENvbW1lbnQgdHlwbyBmaXhlcy4KCShwcGM2NF9lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IEFsbG93IEJGRF9FTkRJQU5fVU5LTk9XTiBpbnB1dC4KCjIwMDItMTEtMDcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9kYS5wbzogVXBkYXRlZCBEYW5pc2ggdHJhbnNsYXRpb24uCgoyMDAyLTExLTA2ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LW1pcHMuYyAobWlwc19lbGY2NF9zbHVycF9vbmVfcmVsb2NfdGFibGUpOiBHZW5lcmF0ZQoJZXhhY3RseSB0aHJlZSBpbnRlcm5hbCByZWxvY3MgcGVyIGV4dGVybmFsIHJlbG9jLiAgU2V0IHJlbG9jX2NvdW50Cgl0byB0aGUgZXh0ZXJuYWwgcmVsb2MgY291bnQuCgoyMDAyLTExLTA2ICBLbGVlIERpZW5lcyAgPGtkaWVuZXNAYXBwbGUuY29tPgoKCSAqIGNvZmYtc3RnbzMyLmMgKHN0dWJfYnl0ZXMpOiBNYXJrIGFzIGNvbnN0LgoJIEZpeCBjb21tZW50IGZvcm1hdHRpbmcuCgoyMDAyLTExLTA2ICBLbGVlIERpZW5lcyAgPGtkaWVuZXNAYXBwbGUuY29tPgoKCSogTWFrZWZpbGUuYW0gKEJGRDMyX0JBQ0tFTkRTKTogQWRkIG1hY2gtby5sbywgcGVmLmxvLCBhbmQKCXhzeW0ubG8uCgkoQkZEMzJfQkFDS0VORFNfQ0ZJTEVTKTogQWRkIG1hY2gtby5jLCBwZWYuYywgYW5kIHhzeW0uYy4KCShTT1VSQ0VfSEZJTEVTKTogQWRkIG1hY2gtby5oLCBwZWYuaCwgcGVmLXRyYWNlYmFjay5oLCB4c3ltLmgKCSogYXJjaHVyZXMuYyAoZW51bSBiZmRfYXJjaGl0ZWN0dXJlKTogQWRkIGJmZF9hcmNoX205OGsuCgkqIGJmZC5jIChzdHJ1Y3QgYmZkKTogQWRkIHByaXZhdGUgZGF0YSBmb3IgbWFjaC1vLCBwZWYsIGFuZCBzeW0uCgkqIHRhcmdldHMuYyAoZW51bSBiZmRfZmxhdm91cik6IEFkZCBmbGF2b3VycyBmb3IgbWFjaC1vLCBwZWYsIGFuZAoJc3ltLgoJKF9iZmRfdGFyZ2V0X3ZlY3Rvcik6IEFkZCB0YXJnZXQgdmVjdG9ycyBmb3IgbWFjaC1vLCBwZWYsIGFuZCBzeW0uCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogeHN5bS5jOiBOZXcgZmlsZS4gIENvbnRhaW5zIHN1cHBvcnQgZm9yIHRoZSBBcHBsZS9NZXRyb3dlcmtzCgl4U1lNIGRlYnVnZ2luZyBmb3JtYXQuCgkqIHhzeW0uaDogTmV3IGZpbGUuCgkqIHBlZi5jOiBOZXcgZmlsZS4gIENvbnRhaW5zIHN1cHBvcnQgZm9yIHRoZSBBcHBsZSBDb2RlIEZyYWdtZW50CglNYW5hZ2VyIFByZWZlcnJlZCBFeGVjdXRhYmxlIEZvcm1hdAoJKiBwZWYuaDogTmV3IGZpbGUuCgkqIHBlZi10cmFjZWJhY2suaDogTmV3IGZpbGUuICBDb250YWlucyBzdXBwb3J0IGZvciBwYXJzaW5nIFBvd2VyUEMKCXRyYWNlYmFjayB0YWJsZXMgYXMgdXNlZCBieSBQRUYgZXhlY3V0YWJsZXMgKGFuZCBwZXJoYXBzIG90aGVyCglzeXN0ZW1zIGFzIHdlbGwpLgoJKiBtYWNoLW8uYzogTmV3IGZpbGUuICBDb250YWlucyBzdXBwb3J0IGZvciB0aGUgTWFjaC1PIG9iamVjdCBmaWxlCglmb3JtYXQuCgkqIG1hY2gtby5oOiBOZXcgZmlsZS4KCSogbWFjaC1vLXRhcmdldC5jOiBOZXcgZmlsZS4gIERlY2xhcmVzIHRoZSBtYWNoLW8gdGFyZ2V0cwoJdGhlbXNlbHZlcy4gIEluY2x1ZGVkIHRocmVlIHRpbWVzIGJ5IG1hY2gtby5jOyBlYWNoIHRpbWUgd2l0aCBhCglkaWZmZXJlbnQgc2V0IG9mIG1hY3JvcyBzZXQuCgoyMDAyLTExLTA2ICBHcmFlbWUgUGV0ZXJzb24gIDxncEBxbnguY29tPgoKCSogTWFrZWZpbGUuYW06IFJlbW92ZSBlbnRyaWVzIGZvciBlbGYzMi1xbnguW2NoXS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy5iZmQ6IENoYW5nZSBhcm0tbnRvIHRvIHVzZSBiZmRfZWxmMzJfe2JpZ3xsaXR0bGV9YXJtX3ZlYywKCXBwYy1udG8gdG8gdXNlIGJmZF9lbGYzMl9wb3dlcnBje2xlfV92ZWMsIHNoLW50byB0byB1c2UKCWJmZF9lbGYzMl9zaHtsfV92ZWMsIGFuZCBpMzg2LW50byB0byB1c2UgYmZkX2VsZjMyX2kzODZfdmVjLgoJKiBjb25maWd1cmUuaW46IFJlbW92ZSBzdXBwb3J0IGZvciBiZmRfZWxmMzJfc2h7bH1xbnhfdmVjLAoJYmZkX2VsZjMyX3Bvd2VycGN7bGV9cW54X3ZlYywgYmZkX2VsZjMyX3tiaWd8bGl0dGxlfWFybXFueF92ZWMsCglhbmQgYmZkX2VsZjMyX2kzODZxbnhfdmVjLCBhbmQgcmVtb3ZlZCBlbGYzMi1xbngubG8gZnJvbSBvdGhlciB0YXJnZXRzLgoJYmZkX2VsZjMyX3Noe2x9X3ZlYywgYW5kIGkzODYtbnRvIHRvIHVzZSBiZmRfZWxmMzJfaTM4Nl92ZWMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogZWxmMzItcW54LmM6IFJlbW92ZS4KCSogZWxmMzItcW54Lmg6IFJlbW92ZS4KCSogZWxmLmM6IFJlbW92ZSBjYWxscyB0byBRTlggc3BlY2lmaWMgc2V0X25vbmxvYWRhYmxlX2ZpbGVwb3MsCglpc19jb250YWluZWRfYnlfZmlsZXBvcywgYW5kIGNvcHlfcHJpdmF0ZV9iZmRfZGF0YV9wLgoJKiBlbGYtYmZkLmggKHN0cnVjdCBlbGZfYmFja2VuZF9kYXRhKTogUmVtb3ZlIHNldF9ub25sb2FkYWJsZV9maWxlcG9zLAoJaXNfY29udGFpbmVkX2J5X2ZpbGVwb3MsIGFuZCBjb3B5X3ByaXZhdGVfYmZkX2RhdGFfcC4KCSogZWxmMzItaTM4Ni5jOiBSZW1vdmUgUU5YIGV4dGVuZGVkIGJmZCBzdXBwb3J0LgoJKiBlbGYzMi1wcGMuYzogUmVtb3ZlIFFOWCBleHRlbmRlZCBiZmQgc3VwcG9ydC4KCSogZWxmMzItc2guYzogUmVtb3ZlIFFOWCBleHRlbmRlZCBiZmQgc3VwcG9ydC4KCSogZWxmYXJtLW5hYmkuYzogUmVtb3ZlIFFOWCBleHRlbmRlZCBiZmQgc3VwcG9ydC4KCSogdGFyZ2V0cy5jOiBSZW1vdmUgcW54IHZlY3RvcnMuCgkqIGVsZnh4LXRhcmdldC5oIChlbGZfYmFja2VuZF9zZXRfbm9ubG9hZGFibGVfZmlsZXBvcyk6IFJlbW92ZQoJKGVsZl9iYWNrZW5kX2lzX2NvbnRhaW5lZF9ieV9maWxlcG9zKTogUmVtb3ZlLgoJKGVsZl9iYWNrZW5kX2NvcHlfcHJpdmF0ZV9iZmRfZGF0YV9wKTogUmVtb3ZlLgoJKiBwby9TUkMtUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTExLTA2ICBEYXZpZCBPJ0JyaWVuICA8b2JyaWVuQEZyZWVCU0Qub3JnPgoJICAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogQWRqdXN0IGFkZGVuZCBvZgoJZHluYW1pYyByZWxvY3MgYWdhaW5zdCBzZWN0aW9uIHN5bWJvbHMgZm9yIHRoZSBvdXRwdXQgc2VjdGlvbiB2bWEuCgoyMDAyLTExLTA1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItYXJtLmggKHQyYTFfcHVzaF9pbnNuLCB0MmEyX2xkcl9pbnNuLCB0MmEzX21vdl9pbnNuLAoJdDJhNF9ieF9pbnNuLCB0MmE1X3BvcF9pbnNuLCB0MmE2X2J4X2luc24pOiBSZW1vdmUuCgoyMDAyLTExLTA1ICBLYXogS29qaW1hICA8a2tvamltYUByci5paWo0dS5vci5qcD4KCSAgICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnLmJmZCAoc2gtKi1saW51eCopOiBVc2UgYmZkX2VsZipfc2g2NCpsaW5fdmVjIGFzIHNoNjQKCXZlY3RvcnMgaW4gdGFyZ2V0X3NlbHZlY3MuCgkoc2hsZS0qLW5ldGJzZGVsZiopOiBVc2UgYmZkX2VsZipfc2g2NCpuYnNkX3ZlYyBhcyBzaDY0IHZlY3RvcnMKCWluIHRhcmdldF9zZWx2ZWNzLgoJKHNoLSotbmV0YnNkZWxmKik6IExpa2V3aXNlLgoJKiBjb25maWd1cmUuaW4gKGFzc29jdmVjcyk6IE5ldyB2YXJpYWJsZS4gIEhhbmRsZSBhc3NvY3ZlY3MgbGlrZQoJc2VsdmVjcy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBmb3JtYXQuYyAoYmZkX2NoZWNrX2Zvcm1hdF9tYXRjaGVzKTogU3RvcmUgYmZkX3RhcmdldCBwb2ludGVycwoJaW4gbWF0Y2hpbmdfdmVjdG9yIGluc3RlYWQgb2YgdGFyZ2V0IG5hbWVzLiAgU2VsZWN0IGZpcnN0IHRhcmdldAoJZnJvbSBiZmRfYXNzb2NpYXRlZF92ZWN0b3IgdGhhdCBtYXRjaGVzIGEgbGlzdCBvZiBhbWJpZ3VvdXMgdGFyZ2V0cy4KCSogdGFyZ2V0cy5jIChfYmZkX2Fzc29jaWF0ZWRfdmVjdG9yKTogTmV3IGFycmF5LgoJKGJmZF9hc3NvY2lhdGVkX3ZlY3Rvcik6IE5ldyB2YXJpYWJsZS4KCShfYmZkX3RhcmdldF92ZWN0b3IpOiBBZGQgYmZkX2VsZipfc2g2NCpsaW5fdmVjLgoJKiBsaWJiZmQtaW4uaCAoYmZkX2Fzc29jaWF0ZWRfdmVjdG9yKTogRGVjbGFyZS4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgoyMDAyLTExLTA1ICBFbGlhcyBBdGhhbmFzb3BvdWxvcyAgPGVhdGhhbkBvdGVuZXQuZ3I+CgoJKiB2bXMtZ3NkLmMgKF9iZmRfdm1zX3dyaXRlX2dzZCk6IENoZWNrIHRoYXQgc3ltYm9sLT51ZGF0YS5wIGlzCglub24tTlVMTCBiZWZvcmUgZGVyZWZlcmVuY2luZy4KCjIwMDItMTEtMDQgIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCSogdm1zLmMgKHZtc19vYmplY3RfcCk6IFJlc3RvcmUgdGhlIHN0YXJ0IGFkZHJlc3Mgd2hlbiByZXR1cm5pbmcKCU5VTEwuCgoyMDAyLTExLTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoJICAgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogZWxmbGluay5oIChzdHJ1Y3QgZWxmX2ZpbmFsX2xpbmtfaW5mbyk6IEFkZCBzaG5keGJ1Zl9zaXplLgoJKGVsZl9iZmRfZmluYWxfbGluayk6IERvbid0IGJvdGhlciB6ZXJvaW5nIHN5bXRhYl9oZHIgZmllbGRzLgoJU2V0IHVwIGEgbGFyZ2VyIHN5bXNobmR4YnVmLCBhbmQgd3JpdGUgaXQgb3V0LiAgRnJlZSBpdCBvbgoJZXhpdCByYXRoZXIgdGhhbiBmcmVlaW5nIHN5bWJ1ZiB0d2ljZS4gIENvcnJlY3Qgc2VjdGlvbiBpbmRleAoJb24gb3V0cHV0IHNlY3Rpb24gc3ltYm9sIGxvb3AuCgkoZWxmX2xpbmtfb3V0cHV0X3N5bSk6IEFjY3VtdWxhdGUgc3ltYm9sIGV4dGVuc2lvbiBzZWN0aW9uCglpbmRpY2VzLCByZWFsbG9jYXRpbmcgc3ltc2huZHhidWYgcmF0aGVyIHRoYW4gd3JpdGluZyBpdCBvdXQuCgkoZWxmX2xpbmtfZmx1c2hfb3V0cHV0X3N5bXMpOiBEb24ndCBmbHVzaCBzeW1zaG5keGJ1Zi4KCSogZWxmLmMgKGFzc2lnbl9zZWN0aW9uX251bWJlcnMpOiBJbml0IGlfc2hkcnAgdG8gYWxsIHplcm8uCglVc2UgYmZkX3phbGxvYyB0byBjbGVhciBpX3NoZHJwWzBdIHRvby4KCjIwMDItMTEtMDMgIFN0ZXBoZW4gQ2xhcmtlIDxzdGVwaGVuLmNsYXJrZUBlYXJ0aGxpbmcubmV0PgoKCSAqIGVsZjMyLXNoNjQtY29tLmMgKHNoNjRfYWRkcmVzc19pbl9jcmFuZ2VzKTogVXNlCglfcmF3X3NpemUgb2YgY3JhbmdlcyBzZWN0aW9uIGlmIF9jb29rZWRfc2l6ZSBub3QgeWV0IHNldC4KCjIwMDItMTEtMDMgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogZWxmMzItdjg1MC5jICh2ODUwX2VsZl9yZWxheF9kZWxldGVfYnl0ZXMpOiBDb3JyZWN0IHBhcmFtZXRlcnMKCWZvciBiZmRfZWxmMzJfc3dhcF9zeW1ib2xfb3V0LgoKMjAwMi0xMC0zMSAgRGF2aWQgTydCcmllbiAgPG9icmllbkBGcmVlQlNELm9yZz4KCgkqIGVsZi1laC1mcmFtZS5jIChfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhfZnJhbWUpOiBEb24ndCBtaXgKCXNpZ25lZCBhbmQgdW5zaWduZWQgaW4gY29tcGFyaXNvbi4KCjIwMDItMTAtMzAgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogY29mZmNvZGUuaDogUmVtb3ZlIGV4dHJhbmVvdXMgJ1wnLgoKMjAwMi0xMC0yOCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBNYWtlZmlsZS5hbSAodGFyZ2V0cy5sbyk6IERlcGVuZCBvbiBNYWtlZmlsZSBpbnN0ZWFkIG9mCgljb25maWcuc3RhdHVzLgoJKGFyY2h1cmVzLmxvKTogTGlrZXdpc2UuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KCjIwMDItMTAtMjUgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWcuYmZkIChtaXBzKmVsLSotbmV0YnNkKiwgbWlwcyotKi1uZXRic2QqKTogQWRkCgliZmRfZWxmNjRfYmlnbWlwc192ZWMgYW5kIGJmZF9lbGY2NF9saXR0bGVtaXBzX3ZlYyB0bwoJdGFyZ19zZWx2ZWNzLgoKMjAwMi0xMC0yNSAgSmltIFdpbHNvbiAgPHdpbHNvbkByZWRoYXQuY29tPgoKCSogZWxmNjQtc2g2NC5jIChzaF9lbGY2NF9yZWxvY2F0ZV9zZWN0aW9uKTogQ2FsbAoJX2JmZF9lbGZfcmVsYV9sb2NhbF9zeW0uICBIYW5kbGUgcmVsb2NzIGFnYWluc3QgU1RUX1NFQ1RJT04gc3ltYm9sCglvZiBTSEZfTUVSR0Ugc2VjdGlvbi4KCjIwMDItMTAtMjUgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogc2ltcGxlLmM6IENvcnJlY3QgcGxhY2VtZW50IG9mIEFUVFJJQlVURV9VTlVTRUQuCgoyMDAyLTEwLTI0ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogYW91dHguaCAoTkFNRShhb3V0LHN3YXBfZXh0X3JlbG9jX2luKSk6IENhc3QgYnl0ZXMtPnJfaW5kZXggdG8KCXVuc2lnbmVkIGludC4gIENhc3QgUkVMT0NfQkFTRTEwLCBSRUxPQ19CQVNFMTMgYW5kIFJFTE9DX0JBU0UyMiB0bwoJdW5zaWduZWQgaW50LgoJKE5BTUUoYW91dCxmaW5hbF9saW5rKSk6IENhc3QgZW51bSB1c2VkIGluIGFzc2lnbm1lbnQuCgkoYW91dF9saW5rX3dyaXRlX3N5bWJvbHMpOiBDYXN0IGVudW1zIGluIGNvbXBhcmlzb25zLCBpbnQgdmFsdWVzIHRvCglib29sZWFuLCBlbnVtcyBpbiBhc3NpZ25tZW50cyB0byBpbnQuCgkoYW91dF9saW5rX2lucHV0X3NlY3Rpb25fc3RkKTogQ2FzdCByZWwtPnJfaW5kZXggdG8gdW5zaWduZWQgaW50LgoJKGFvdXRfbGlua19pbnB1dF9zZWN0aW9uX2V4dCk6IExpa2V3aXNlLiAgQ2FzdCBlbnVtcyB1c2VkIGluCgljb21wYXJpc29ucyB3aXRoIHVuc2lnbmVkIGludHMuCgkoYW91dF9saW5rX3JlbG9jX2xpbmtfb3JkZXIpOiBDYXN0IGVudW0gdG8gaW50IGluIGFzc2lnbm1lbnQuCgkqIGFyY2hpdmUuYyAoX2JmZF9nZW5lcmljX3JlYWRfYXJfaGRyX21hZyk6IENhc3QgcmVzdWx0IG9mIG1lbWNocgoJY2FsbHMgdG8gY2hhciAqLgoJKiBiZmQtaW4uaCAoYmZkX3NldF9zZWN0aW9uX3ZtYSk6IENhc3QgZW51bSB0cnVlIHRvIHVuc2lnbmVkIGludCBpbgoJYXNzaWdubWVudC4KCSogYmZkLWluMi5oIChiZmRfc2V0X3NlY3Rpb25fdm1hKTogTGlrZXdpc2UuCgkqIGJmZC5jIChiZmRfcmVjb3JkX3BoZHIpOiBDYXN0IGVudW1zIGluIGFzc2lnbm1lbnRzLgoJKiBiaW5hcnkuYyAoYmZkX2FsbG9jKTogQ2FzdCBlbnVtIHRvIGxvbmcuCgkqIGNvZmZnZW4uYyAoX2JmZF9jb2ZmX2lzX2xvY2FsX2xhYmVsX25hbWUpOiBDYXN0IHJldHVybiB0byBib29sZWFuLgoJKiBkd2FyZjIuYyAocmVhZF9hYmJyZXZzKTogQWRkIGNhc3RzIHRvIGVudW0gdHlwZXMuCgkocmVhZF9hdHRyaWJ1dGVfdmFsdWUpOiBMaWtld2lzZS4KCShhcmFuZ2VfYWRkKTogQ2FzdCByZXN1bHQgb2YgYmZkX3phbGxvYyBjYWxsLgoJKGNvbXBfdW5pdF9jb250YWluc19hZGRyZXNzKTogUmV0dXJuIHRydWUgYW5kIGZhbHNlLgoJKGNvbXBfdW5pdF9maW5kX25lYXJlc3RfbGluZSk6IENhc3QgcmV0dXJuIHRvIGJvb2xlYW4uCgkqIGZvcm1hdC5jIChiZmRfY2hlY2tfZm9ybWF0X21hdGNoZXMsIGJmZF9zZXRfZm9ybWF0KTogTGlrZXdpc2UuCgkqIGdlbi1hb3V0LmM6IGRlZmluZSBtYWNybyAnXycgaWYgbm90IGRlZmluZWQuCgkqIGxpYmJmZC5jIChiZmRfcmVhbGxvYyk6IENhc3QgbWFsbG9jIGFuZCByZWFsbG9jIHRvIFBUUi4KCShiZmRfYndyaXRlKTogQ2FzdCBiZmRfcmVhbGxvYyB0byBiZmRfYnl0ZSAqLgoJKGJmZF93cml0ZV9iaWdlbmRpYW5fNGJ5dGVfaW50KTogQ2FzdCByZXR1cm4gdG8gYm9vbGVhbi4KCShiZmRfc2Vlayk6IENhc3QgYmZkX3JlYWxsb2MgdG8gYmZkX2J5dGUgKi4KCShiZmRfZ2VuZXJpY19pc19sb2NhbF9sYWJlbF9uYW1lKTogQ2FzdCByZXR1cm4gdG8gYm9vbGVhbi4KCSogbGliY29mZi5oIChfYmZkX2NvZmZfYWRqdXN0X3N5bW5keCk6IFJlbW92ZSBleHRyYW5lb3VzICdcJy4KCSogbGlua2VyLmMgKF9iZmRfbGlua19oYXNoX25ld2Z1bmMpOiBDYXN0IGJmZF9oYXNoX2FsbG9jYXRlIHJlc3VsdCB0bwoJc3RydWN0IGJmZF9oYXNoX2VudHJ5ICouCgkoX2JmZF9nZW5lcmljX2xpbmtfaGFzaF9uZXdmdW5jKTogbGlrZXdpc2UuCgkoX2JmZF9nZW5lcmljX2ZpbmFsX2xpbmspOiBDYXN0IGVudW0gdG8gdW5zaWduZWQgaW50LgoJKiBtZXJnZS5jIChzZWNfbWVyZ2VfZW1pdCk6IENhc3QgcmV0dXJuIHRvIGJvb2xlYW4uCgkobWVyZ2Vfc3RyaW5ncyk6IEFkZCBjYXN0cyB0byBjb25zdCB1bnNpZ25lZCBjaGFyICouCgkqIHJlbG9jLmMgKGJmZF9nZXRfcmVsb2NfY29kZV9uYW1lKTogQ2FzdCBlbnVtcyBpbiBjb21wYXJpc29uIHRvIGludC4KCShiZmRfZ2VuZXJpY19nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudCk6IENhc3QgZW51bSB0byB1bnNpZ25lZCBpbnQuCgkqIHNlY3Rpb24uYyAoYmZkX3NlY3Rpb25faGFzaF9uZXdmdW5jKTogQ2FzdCBiZmRfaGFzaF9hbGxvY2F0ZSByZXN1bHQKCXRvIHN0cnVjdCBiZmRfaGFzaF9lbnRyeSAqLgoJKGJmZF9zZXRfc2VjdGlvbl9jb250ZW50KTogQWRkIGNhc3QgdG8gUFRSIGluIGNvbXBhcmlzb24uCgkqIHNpbXBsZS5jIChzaW1wbGVfZHVtbXlfd2FybmluZywgc2ltcGxlX2R1bW15X3VuZGVmaW5lZF9zeW1ib2wsCglzaW1wbGVfZHVtbXlfcmVsb2Nfb3ZlcmZsb3csIHNpbXBsZV9kdW1teV9yZWxvY19kYW5nZXJvdXMsCglzaW1wbGVfZHVtbXlfdW5hdHRhY2hlZF9yZWxvYywKCWJmZF9zaW1wbGVfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogQWRkIEsmUiBkZWNsYXJhdGlvbnMgYW5kCglmdW5jdGlvbiBkZWZpbml0aW9ucy4KCSogc3JlYy5jIChTM0ZvcmNlZCk6IEluaXRpYWxpemUgdG8gZmFsc2UuCgkoc3JlY19nZXRfc3ltdGFiKTogQ2FzdCByZXR1cm4gdmFsdWUgZnJvbSBiZmRfYWxsb2MgdG8gYXN5bWJvbCAqLgoJKiBzdGFicy5jIChfYmZkX2xpbmtfc2VjdGlvbl9zdGFicyk6IENhc3QgZW51bSB0byBpbnQgaW4gY29tcGFyaXNvbnMuCgkoX2JmZF9kaXNjYXJkX3NlY3Rpb25fc3RhYnMpOiBMaWtld2lzZS4gIEFsc28gY2FzdCByZXR1cm4gdG8gYm9vbGVhbi4KCSogc3ltcy5jIChiZmRfaXNfdW5kZWZpbmVkX3N5bWNsYXNzKTogQ2FzdCByZXR1cm4gdG8gYm9vbGVhbi4KCShfYmZkX3N0YWJfc2VjdGlvbl9maW5kX25lYXJlc3RfbGluZSk6IENhc3QgZW51bSB0byBiZmRfYnl0ZSBpbgoJY29tcGFyaXNvbnMuCgoyMDAyLTEwLTIzICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX2NoZWNrX3JlbG9jcyk6IE9ubHkgcHV0IG1heWJlX2R5bmFtaWMKCXJlbG9jcyBpbnRvIHNoYXJlZCBsaWIgbm9uLWFsbG9jYXRlZCByZWxvYyBzZWN0aW9ucy4KCjIwMDItMTAtMjMgIE5hdGhhbiBUYWxsZW50ICA8ZXJheHhvbkBhbHVtbmkucmljZS5lZHU+CgoJKiBkd2FyZjIuYyAoYWRkX2xpbmVfaW5mbyk6IEVuc3VyZSB0aGF0IHRoZSBsaW5lX2luZm9fdGFibGUgaXMKCXNvcnRlZCBldmVuIHdoZW4gZ2l2ZW4gYW4gb3V0LW9mLW9yZGVyIGxpbmUgc2VxdWVuY2UuCgkobG9va3VwX2FkZHJlc3NfaW5fbGluZV9pbmZvX3RhYmxlKTogV2hlbiBhbiBleGFjdCBWTUEgbWF0Y2ggaXMKCW5vdCBmb3VuZCwgcmV0dXJuIGxpbmUgaW5mb3JtYXRpb24gd2l0aCB0aGUgY2xvc2VzdCBWTUEuCgoyMDAyLTEwLTIzIFJvc3MgQWxleGFuZGVyIDxyb3NzLmFsZXhhbmRlckB1ay5uZWNldXIuY29tPgoKCSogZWxmNjQtaHBwYS5jOiBGb3JjZSBEVF9GTEFHUyB0byBhbHdheXMgYmUgc2V0LiAgUmVxdWlyZWQgYnkKCUhQVVggMTEuMDAgcGF0Y2ggUEhTU18yNjU1OS4KCjIwMDItMTAtMjIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX21vZGlmeV9zZWdtZW50X21hcCk6IERvbid0IG1vdmUKCXRoZSBvcHRpb25zIHNlY3Rpb24gaW50byBhIHNlcGFyYXRlIHNlY3Rpb24gdW5sZXNzIElSSVggNgoJY29tcGF0aWJpbGl0eSBpcyBlbmFibGVkLgoKMjAwMi0xMC0yMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGZsaW5rLmggKHN0cnVjdCBlbGZfbGlua19zb3J0X3JlbGEpOiBUdXJuIHJlbCBhbmQgcmVsYQoJaW50byBhcnJheXMuCgkoZWxmX2xpbmtfc29ydF9jbXAxLCBlbGZfbGlua19zb3J0X2NtcDIpOiBBZGp1c3QuCgkoZWxmX2xpbmtfc29ydF9yZWxvY3MpOiBMaWtld2lzZS4gIFRha2UgaW50X3JlbHNfcGVyX2V4dF9yZWwKCWludG8gYWNjb3VudC4KCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9jcmVhdGVfZHluYW1pY19yZWxvY2F0aW9uKTogQ29tcG9zZQoJUl9NSVBTX1JFTDMyIHdpdGggUl9NSVBTNjQgaWYgQUJJXzY0X1AuCgoyMDAyLTEwLTIxICBHcmFlbWUgUGV0ZXJzb24gIDxncEBxbnguY29tPgoKCSogdGFyZ2V0cy5jIChfYmZkX3RhcmdldF92ZWN0b3IpOiBBZGQgbWlzc2luZyBxbnggdmVjdG9ycy4KCjIwMDItMTAtMjEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiB0YXJnZXRzLmMgKGJmZF90YXJnZXRfbGlzdCk6IERvbid0IHJldHVybiB0aGUgZGVmYXVsdCB0YXJnZXQgdHdpY2UuCgoyMDAyLTEwLTIxICBFbGlhcyBBdGhhbmFzb3BvdWxvcyAgPGVhdGhhbkBvdGVuZXQuZ3I+CgoJKiBhcmNoaXZlLmMgKF9iZmRfYXJjaGl2ZV9ic2RfdXBkYXRlX2FybWFwX3RpbWVzdGFtcCk6IFJlcGxhY2UKCXBlcnJvciB3aXRoIGJmZF9wZXJyb3IuCgoyMDAyLTEwLTE5ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogQ29ycmVjdGx5IGhhbmRsZQoJRFRfUlBBVEggYW5kIERUX1JVTlBBVEguCgoyMDAyLTEwLTE5ICBNYXJrIEtldHRlbmlzICA8a2V0dGVuaXNAZ251Lm9yZz4KCgkqIGVsZi5jIChlbGZjb3JlX2dyb2tfbm90ZSk6IEZpeCByZWNvZ25pdGlvbiBvbiBOVF9QUlhGUFJFRyBub3Rlcy4KCjIwMDItMTAtMTcgIERlbmlzIENoZXJ0eWtvdiAgPGRlbmlzY0BvdmVydGEucnU+CgoJKiBlbGYzMi1pcDJrLmMgKEVMRl9NQUNISU5FX0FMVDEpOiBEZWZpbmUgYWx0ZXJuYXRlIG1hY2hpbmUgY29kZQoJZm9yIGlwMmsgcG9ydC4KCjIwMDItMTAtMTcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZ4eC10YXJnZXQuaCAoVVNFX1JFTCk6IERvbid0IGRlZmluZSBhcyAxLgoJKiBlbGYzMi1hcm0uaCAoVVNFX1JFTCk6IFByb3ZpZGUgYSBkZWZhdWx0IGRlZmluZSBvZiAwLgoJVXNlICNpZiByYXRoZXIgdGhhbiAjaWZkZWYgd2hlbiB0ZXN0aW5nIFVTRV9SRUwuCgkqIGVsZjMyLW0zMnIuYzogTGlrZXdpc2UuCgoJKiBlbGYzMi1hcmMuYyAoVVNFX1JFTCk6IERlZmluZSBhcyAxLgoJKiBlbGYzMi1kMTB2LmMgKFVTRV9SRUwpOiBMaWtld2lzZS4KCSogZWxmMzItbTMyci5jIChVU0VfUkVMKTogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGhjMTEuYyAoVVNFX1JFTCk6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhoYzEyLmMgKFVTRV9SRUwpOiBMaWtld2lzZS4KCSogZWxmMzItb3IzMi5jIChVU0VfUkVMKTogTGlrZXdpc2UuCgkqIGVsZmFybS1uYWJpLmMgKFVTRV9SRUwpOiBMaWtld2lzZS4KCjIwMDItMTAtMTYgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogY29uZmlnLmJmZCAoczM5MC0qLWxpbnV4Kik6IEFkZCB0YXJnNjRfc2VsdmVjcy4KCShzMzkweC0qLWxpbnV4Kik6IEFkZCB0YXJnX3NlbHZlY3MuCgoyMDAyLTEwLTE2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW0gKEJGRDMyX0JBQ0tFTkRTKTogUmVtb3ZlIGVsZmFybXFueC1uYWJpLmxvLAoJZWxmMzItaTM4Ni1mYnNkLmxvLCBlbGYzMi1pMzg2cW54LmxvLCBlbGYzMi1wcGNxbngubG8sCgllbGYzMi1zaC1saW4ubG8sIGVsZjMyLXNoNjQtbGluLmxvLCBlbGYzMi1zaC1uYnNkLmxvLAoJZWxmMzItc2g2NC1uYnNkLmxvLCBlbGYzMi1zaHFueC5sby4gIEFkZCBlbGYzMi1xbngubG8uCgkoQkZEMzJfQkFDS0VORFNfQ0ZJTEVTKTogTGlrZXdpc2UgZm9yIGNvcnJlc3BvbmRpbmcgQyBmaWxlcy4KCShCRkQ2NF9CQUNLRU5EUyk6IFJlbW92ZSBlbGY2NC1zaDY0LWxpbi5sbywgZWxmNjQtc2g2NC1uYnNkLmxvLgoJKEJGRDY0X0JBQ0tFTkRTX0NGSUxFUyk6IExpa2V3aXNlIGZvciBjb3JyZXNwb25kaW5nIEMgZmlsZXMuCgkoU09VUkNFX0hGSUxFUyk6IEFkZCBlbGYzMi1xbnguaC4KCShCVUlMRF9IRklMRVMpOiBBZGQgYmZkdmVyLmguCglSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS5pbiBVcGRhdGUgYmZkIHZlY3RvciBkZXBlbmRlbmNpZXMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogZWxmMzItaTM4Ni1mYnNkLmM6IERlbGV0ZS4gIE1vdmUgY29kZSB0byBlbGYzMi1pMzg2LmMuCgkqIGVsZjMyLWkzODZxbnguYzogTGlrZXdpc2UuCgkqIGVsZjMyLXBwY3FueC5jOiBEZWxldGUuICBNb3ZlIGNvZGUgdG8gZWxmMzItcHBjLmMuCgkqIGVsZjMyLXNoLW5ic2QuYzogRGVsZXRlLiAgTW92ZSBjb2RlIHRvIGVsZjMyLXNoLmMuCgkqIGVsZjMyLXNoLWxpbi5jOiBMaWtld2lzZS4KCSogZWxmMzItc2hxbnguYzogTGlrZXdpc2UuCgkqIGVsZjMyLXNoNjQtbGluLmM6IERlbGV0ZS4gIE1vdmUgY29kZSB0byBlbGYzMi1zaDY0LmMuCgkqIGVsZjMyLXNoNjQtbmJzZC5jOiBMaWtld2lzZS4KCSogZWxmNjQtc2g2NC1saW4uYzogRGVsZXRlLiAgTW92ZSBjb2RlIHRvIGVsZjY0LXNoNjQuYy4KCSogZWxmNjQtc2g2NC1uYnNkLmM6IExpa2V3aXNlLgoJKiBlbGZhcm1xbngtbmFiaS5jOiBEZWxldGUuICBNb3ZlIGNvZGUgdG8gZWxmYXJtLW5hYmkuYy4KCSogZWxmMzItYXJtLmggKEVMRl9NQVhQQUdFU0laRSk6IEFsd2F5cyBkZWZpbmUuCgkqIGVsZjMyLWkzODYuYzogUmVtb3ZlIEVMRl9BUkNIIGFuZCBFTEYzMl9JMzg2X0NfSU5DTFVERUQgdGVzdHMuCgkqIGVsZjMyLXBwYy5jOiBSZW1vdmUgRUxGMzJfUFBDX0NfSU5DTFVERUQgdGVzdHMuCgkqIGVsZjMyLXFueC5oIChlbGZfYmFja2VuZF9zZXRfbm9ubG9hZGFibGVfZmlsZXBvcyk6IEFsd2F5cyBkZWZpbmUuCgkoZWxmX2JhY2tlbmRfaXNfY29udGFpbmVkX2J5X2ZpbGVwb3MpOiBMaWtld2lzZS4KCShlbGZfYmFja2VuZF9jb3B5X3ByaXZhdGVfYmZkX2RhdGFfcCk6IExpa2V3aXNlLgoJR2xvYmFsaXplIGFuZCBtb3ZlIGZ1bmN0aW9ucyB0by4uCgkqIGVsZjMyLXFueC5jOiAuLmhlcmUuICBOZXcgZmlsZS4KCSogZWxmMzItc2guYzogUmVtb3ZlIEVMRl9BUkNIIGFuZCBFTEYzMl9TSF9DX0lOQ0xVREVEIHRlc3RzLiAgRG9uJ3QKCWVtaXQgdGFyZ2V0IHZlY3RvcnMgd2hlbiBJTkNMVURFX1NITUVESUEuCgkqIGVsZjMyLXNoNjQuYzogUmVtb3ZlIEVMRl9BUkNIIHRlc3QuICBNb3ZlIFRBUkdFVF8qIGV0Yy4gZGVmaW5lcyB0bwoJZW5kIG9mIGZpbGUuCgkqIGVsZjY0LXNoNjQuYzogUmVtb3ZlIEVMRl9BUkNIIHRlc3QuCgkqIGVsZmFybS1uYWJpLmM6IFJlbW92ZSBFTEZBUk1fTkFCSV9DX0lOQ0xVREVEIHRlc3QuCgkqIHBvL0JMRC1QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCSogcG8vU1JDLVBPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0xMC0xNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogRXJyb3Igb3V0IG9uIGR5bmFtaWMgb2JqZWN0cwoJbG9hZGVkIHdpdGggLS1qdXN0LXN5bWJvbHMuCgoJKiBlbGYzMi1pMzg2cW54LmMgKFRBUkdFVF9MSVRUTEVfTkFNRSk6IERlZmluZS4KCSogZWxmMzItcHBjcW54LmMgKFRBUkdFVF9MSVRUTEVfTkFNRSwgVEFSR0VUX0JJR19OQU1FKTogRGVmaW5lLgoJKiBlbGYzMi1zaHFueC5jIChUQVJHRVRfTElUVExFX05BTUUsIFRBUkdFVF9CSUdfTkFNRSk6IERlZmluZS4KCSogZWxmYXJtcW54LW5hYmkuYyAoVEFSR0VUX0xJVFRMRV9OQU1FLCBUQVJHRVRfQklHX05BTUUpOiBEZWZpbmUuCgoyMDAyLTEwLTE1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogTWFrZWZpbGUuYW0gKEJGRDY0X0JBQ0tFTkRTKTogUmVtb3ZlIGVsZjY0LWFscGhhLWZic2QuCgkoQkZENjRfQkFDS0VORFNfQ0ZJTEVTKTogTGlrZXdpc2UuCgkqIGNvbmZpZ3VyZS5pbiAoYmZkX2VsZjY0X2FscGhhX2ZyZWVic2RfdmVjKTogVXNlIGVsZjY0LWFscGhhLgoJKiBlbGY2NC1hbHBoYS1mYnNkLmM6IFJlbW92ZSBmaWxlLCBtb3ZlIGNvZGUgLi4uCgkqIGVsZjY0LWFscGhhLmM6IC4uLiBoZXJlLgoJKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlOiBSZWJ1aWxkLgoKMjAwMi0xMC0xNCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pIFtCUlNHUF06IEluY3JlbWVudAoJVkFMVUUsIG5vdCBBRERFTkQuCgoyMDAyLTEwLTE0ICBTdGVwaGVuIENsYXJrZSA8c3RlcGhlbi5jbGFya2VAc3VwZXJoLmNvbT4KCgkqIGVsZjMyLXNoLmMgKGVsZl9zaF9saW5rX2hhc2hfZW50cnkpOiBSZXBsYWNlCglkYXRhbGFiZWxfZ290X29mZnNldCB3aXRoIHVuaW9uIG9mIGRhdGFsYWJlbF9nb3QKCW9mZnNldCBhbmQgcmVmY291bnQuCgkoc2hfZWxmX2xpbmtfaGFzaF9uZXdmdW5jKTogSW5pdGlhbGl6ZSBkYXRhbGFiZWxfZ290LnJlZmNvdW50LgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IERlbGV0ZSB1bm5lY2Vzc2FyeSBjb2RlIGZvcgoJU1RUX0RBVEFMQUJFTCB0eXBlLiAgQ3JlYXRlIGVudHJ5IGluIGdvdCBmb3IKCWRhdGFsYWJlbCB2ZXJzaW9uIG9mIHN5bWJvbCBpZiBkYXRhbGFiZWxfZ290LnJlZmNvdW50ID4gMC4KCShzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFVzZSBkYXRhbGFiZWxfZ290IHVuaW9uLgoJKHNoX2VsZl9nY19zd2VlcF9ob29rKTogUHVsbCBjb21tb24gY29kZSB0byBpbml0aWFsaXplCgloIGFuZCBlaCBvdXQgb2Ygc3dpdGNoIHN0YXRlbWVudC4gIERlY2xhcmUgc2Vlbl9zdHRfZGF0YWxhYmVsLgoJSW5pdGlhbGl6ZSBpdC4gIERlY3JlbWVudCBkYXRhbGFiZWxfZ290LnJlZmNvdW50IGZvcgoJZ290IHJlbG9jcyB3aGVuIHNlZW5fc3R0X2RhdGFsYWJlbCBpcyB0cnVlLgoJRGVjcmVtZW50IGxvY2FsX2dvdF9yZWZjb3VudHMgZW50cnkgZm9yIGRhdGFsYWJlbCBnb3QgcmVsb2NzCglvZiBsb2NhbCBzeW1ib2xzLgoJKHNoX2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IENvcHkgZGF0YWxhYmVsX2dvdCBmaWVsZCBvdmVyLgoJKHNoX2VsZl9jaGVja19yZWxvY3MpOiBEZWNsYXJlIHNlZW5fc3R0X2RhdGFsYWJlbC4KCUluaXRpYWxpemUgaXQuICBXaGVuIHNlZW5fc3R0X2RhdGFsYWJlbCBpcyB0cnVlLCBpbmNyZW1lbnQKCWRhdGFsYWJlbF9nb3QgcmVmY291bnQgcmF0aGVyIHRoYW4gZ290LnJlZmNvdW50LgoJKHNoX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBDcmVhdGUgcmVsb2NzIHRvCglpbml0aWFsaXplIGdvdCBlbnRyeSBmb3IgZGF0YWxhYmVsIHZlcnNpb24gb2Ygc3ltYm9sLgoKMjAwMi0xMC0xNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCShCRkRfSF9GSUxFUyk6IFJlbW92ZSB2ZXJzaW9uLmguCgkqIGJmZC1pbi5oIChCRkRfVkVSU0lPTiwgQkZEX1ZFUlNJT05fREFURSwgQkZEX1ZFUlNJT05fU1RSSU5HKTogTW92ZS4uCgkqIHZlcnNpb24uaDogLi50byBoZXJlLgoJKiBjb25maWd1cmUuaW4gKGJmZF92ZXJzaW9uX2RhdGUpOiBSZW1vdmUuCgkoQUNfT1VUUFVUKTogTWFrZSBiZmR2ZXIuaCBmcm9tIHZlcnNpb24uaC4KCSogYmZkLmM6ICNpbmNsdWRlICJiZmR2ZXIuaCIuCgkqIHZtcy1oZHIuYzogTGlrZXdpc2UuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogcG8vU1JDLVBPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0xMC0xNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGFyY2h1cmVzLmMgKGJmZF9tYWNoX2kzODZfaTM4NiwgYmZkX21hY2hfaTM4Nl9pODA4NiwKCWJmZF9tYWNoX2kzODZfaTM4Nl9pbnRlbF9zeW50YXgsIGJmZF9tYWNoX3g4Nl82NCwKCWJmZF9tYWNoX3g4Nl82NF9pbnRlbF9zeW50YXggYmZkX21hY2hfcHBjLCBiZmRfbWFjaF9wcGM2NCwKCWJmZF9tYWNoX3JzNmssIGJmZF9tYWNoX2QxMHYsIGJmZF9tYWNoX3NoLCBiZmRfbWFjaF92ODUwLAoJYmZkX21hY2hfYXJjXzUsIGJmZF9tYWNoX2FyY182LCBiZmRfbWFjaF9hcmNfNywgYmZkX21hY2hfYXJjXzgsCgliZmRfbWFjaF9tMzJyLCBiZmRfbWFjaF9mcnYsIGJmZF9tYWNoX2ZydnNpbXBsZSwKCWJmZF9tYWNoX2lhNjRfZWxmNjQsIGJmZF9tYWNoX2lhNjRfZWxmMzIsCgliZmRfbWFjaF9pcDIwMjIsIGJmZF9tYWNoX2lwMjAyMmV4dCwKCWJmZF9tYWNoX3MzOTBfMzEsIGJmZF9tYWNoX3MzOTBfNjQsIGJmZF9tYWNoX3hzdG9ybXkxNik6IFJlbnVtYmVyLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAyLTEwLTE0ICBLYXogS29qaW1hICA8a2tvamltYUByci5paWo0dS5vci5qcD4KCgkqIGNvbmZpZy5iZmQgKHNoKmViLSotbGludXgqLCBzaCotKi1saW51eCopOiBBZGQgdGhlIGFsdGVybmF0aXZlCgllbmRpYW4gdmVjdG9yIHRvIHRhcmdfc2VsdmVjcy4KCjIwMDItMTAtMTMgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IFRha2UKCXNhdmVfYWRkZW5kIGFyZ3VtZW50LiAgRG9uJ3QgYXBwbHkgdGhlIDMyLWJpdCBtYXNrIHRvIGEKCUdQUkVMMzIgdmFsdWUgaWYgaXQncyB0byBiZSB1c2VkIGluIGFub3RoZXIgcmVsb2NhdGlvbi4gIERvbid0Cgl1c2UgZm9yY2VkLWNoZWNrIGNvbXB1dGF0aW9uIG9mIGxvY2FsX3AgdG8gZGVjaWRlIHdoZXRoZXIgdG8KCWFkZCBncDAgdG8gR1BSRUwxNiB2YWx1ZS4gIERvbid0IHVzZSBvbmx5IHRoZSBsb3dlc3QgMTYgYml0cwoJb2YgdGhlIGFkZGVuZCBvZiBhIG5vbi1pbi1wbGFjZSBHUFJFTDE2IHJlbG9jYXRpb24uCgkoX2JmZF9taXBzX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogUGFzcyB1c2Vfc2F2ZWRfYWRkZW5kX3AgdG8KCW1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKCkuCgoyMDAyLTEwLTEyICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGVsZjMyLW02OGhjMTEuYyAobTY4aGMxMV9lbGZfcmVsYXhfc2VjdGlvbik6IERvbid0IHRyZWF0IHJlbG9jcwoJd2l0aCBzeW1ib2xzIGluIG90aGVyIHNlY3Rpb25zIGlmIHdlIHJlbGF4ZWQgc29tZXRoaW5nOyAgdGhlIHNlY3Rpb25zCglvdXRwdXQgb2Zmc2V0cyBtdXN0IGJlIHJlLWNvbXB1dGVkIGJlZm9yZS4KCjIwMDItMTAtMTIgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogZWxmMzItbTY4aGMxMS5jIChtNjhoYzExX2VsZl9yZWxheF9zZWN0aW9uKTogVXBkYXRlIHN5bWJvbHMKCWhhbmRsaW5nIHRvIHVzZSBFbGZfSW50ZXJuYWxfU3ltLgoJKG02OGhjMTFfZWxmX3JlbGF4X2RlbGV0ZV9ieXRlcyk6IExpa2V3aXNlLgoKMjAwMi0xMC0xMSAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfb3B0aW1pemVkX3Rsc19yZWxvYywgc2hfZWxmX21rb2JqZWN0LAoJc2hfZWxmX29iamVjdF9wLCBkdHBvZmZfYmFzZSk6IE5ldyBmdW5jdGlvbnMuCgkoc2hfZWxmX2hvd3RvX3RhYmxlKTogQWRkIFRMUyByZWxvY3MuCgkoc2hfcmVsb2NfbWFwKTogTGlrZXdpc2UuCgkoc2hfZWxmX2luZm9fdG9faG93dG8pOiBTdXBwb3J0IFRMUyByZWxvY3MuCgkoZWxmX3NoX2xpbmtfaGFzaF9lbnRyeSk6IEFkZCB0bHNfdHlwZSBhbmQgdGxzX3Rwb2ZmMzIuCgkoc2hfZWxmX2hhc2hfZW50cnksIHNoX2VsZl90ZGF0YSwgc2hfZWxmX2xvY2FsX2dvdF90bHNfdHlwZSk6CglOZXcgbWFjcm9zLgoJKHNoX2VsZl9vYmpfdGRhdGEpOiBOZXcuCgkoZWxmX3NoX2xpbmtfaGFzaF90YWJsZSk6IEFkZCB0bHNfbGRtX2dvdC4KCShzaF9lbGZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IENsZWFyIHJlZmNvdW50IG9mIHRsc19sZG1fZ290LgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IFN1cHBvcnQgVExTIHJlbG9jcy4KCShzaF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBTdXBwb3J0IFRMUyByZWxvY3MuICBEb24ndCB0cnkgdG8gZmluZAoJLnJlbGEuZ290IHNlY3Rpb24gd2hlbiBmb3VuZCBhbHJlYWR5LiAgUmV0dXJuIGZhbHNlIGFmdGVyIHByaW50aW5nCgllcnJvciBhYm91dCB1bnJlc29sdmFibGUgcmVsb2NhdGlvbi4KCShzaF9lbGZfZ2Nfc3dlZXBfaG9vayk6IFN1cHBvcnQgVExTIHJlbG9jcy4KCShzaF9lbGZfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCgkoc2hfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKGJmZF9lbGYzMl9ta29iamVjdCwgZWxmX2JhY2tlbmRfb2JqZWN0X3ApOiBEZWZpbmUgZm9yIFRMUyBjYXNlLgoJKiByZWxvYy5jOiBBZGQgU0ggVExTIHJlbG9jcy4KCSogYmZkLWluMi5oLCBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCjIwMDItMTAtMTEgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGVkLgoKMjAwMi0xMC0xMSAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBNYWtlZmlsZS5hbTogUnVuIGRlcC1hbS4KCShCRkRfSF9ERVApOiBBZGQgc2ltcGxlLmMgYW5kIGxpbmtlci5jLgoJKEJGRDMyX0xJQlMpOiBBZGQgc2ltcGxlLmxvLgoJKEJGRDMyX0xJQlNfQ0ZJTEVTKTogQWRkIHNpbXBsZS5jLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZWQuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZWQuCgkqIHNpbXBsZS5jOiBOZXcgZmlsZS4KCjIwMDItMTAtMTEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb2ZmLWFybS5jIChyZWNvcmRfYXJtX3RvX3RodW1iX2dsdWUpOiBBdm9pZCB0eXBlLXB1bm5lZCBwb2ludGVycy4KCShyZWNvcmRfdGh1bWJfdG9fYXJtX2dsdWUpOiBMaWtld2lzZS4KCSogZWNvZmYuYyAoZWNvZmZfbGlua19hZGRfZXh0ZXJuYWxzKTogTGlrZXdpc2UuCgkqIGVsZjMyLWFybS5oIChyZWNvcmRfYXJtX3RvX3RodW1iX2dsdWUpOiBMaWtld2lzZS4KCShyZWNvcmRfdGh1bWJfdG9fYXJtX2dsdWUpOiBMaWtld2lzZS4KCSogZWxmMzItbTMyci5jIChtMzJyX2VsZl9hZGRfc3ltYm9sX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItc2guYyAoc2hfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNoNjQuYyAoc2g2NF9lbGZfYWRkX3N5bWJvbF9ob29rKTogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChmdW5jX2Rlc2NfYWRqdXN0KTogTGlrZXdpc2UuCgkqIGVsZjY0LXNoNjQuYyAoc2g2NF9lbGY2NF9hZGRfc3ltYm9sX2hvb2spOiBMaWtld2lzZS4KCShzaDY0X2VsZjY0X2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfY3JlYXRlX2dvdF9zZWN0aW9uKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShfYmZkX2VsZl9jcmVhdGVfbGlua2VyX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmbGluay5oIChlbGZfYWRkX2RlZmF1bHRfc3ltYm9sKTogTGlrZXdpc2UuCgkoZWxmX2xpbmtfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShOQU1FKGJmZF9lbGYsc2l6ZV9keW5hbWljX3NlY3Rpb25zKSk6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfYWl4X2FkZF9zeW1ib2xfaG9vayk6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2NyZWF0ZV9nb3Rfc2VjdGlvbik6IExpa2V3aXNlLgoJKF9iZmRfbWlwc19lbGZfYWRkX3N5bWJvbF9ob29rKTogTGlrZXdpc2UuCgkoX2JmZF9taXBzX2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBsaW5rZXIuYyAoZ2VuZXJpY19saW5rX2FkZF9zeW1ib2xfbGlzdCk6IExpa2V3aXNlLgoJKiB4Y29mZmxpbmsuYyAoeGNvZmZfbGlua19hZGRfc3ltYm9scyk6IExpa2V3aXNlLgoKCSogZWxmeHgtaWE2NC5jIChvb3JfYnJsLCBvb3JfaXApOiBDb25kaXRpb25hbGx5IGRlZmluZS4KCgkqIGVsZjY0LXBwYy5jIChlZGl0X29wZCk6IE9ubHkgemVybyBvcGQgc3ltcyB3aGVuIGZ1bmN0aW9uIGlzCgljb21wbGV0ZWx5IHJlbW92ZWQuICBDb3JyZWN0IGxvY2FsIHN5bSBhZGp1c3RtZW50LgoKMjAwMi0xMC0xMCAgU3RlcGhlbiBDbGFya2UgPHN0ZXBoZW4uY2xhcmtlQHN1cGVyaC5jb20+CgoJKiBlbGYzMi1zaC5jIChlbGZfc2hfcGljX3BsdF9lbnRyeV9iZSwgZWxmX3NoX3BpY19wbHRfZW50cnlfbGUpOgoJQ29ycmVjdCBtaXN0YWtlIGluIGNhbGN1bGF0aW9uIG9mIGFkZHJlc3Mgb2YgLmdvdC4KCSogZWxmNjQtc2g2NC5jIChlbGZfc2g2NF9waWNfcGx0X2VudHJ5X2JlLAoJZWxmX3NoNjRfcGljX3BsdF9lbnRyeV9sZSk6IExpa2V3aXNlLgoKMjAwMi0xMC0wOSAgUmljaGFyZCBTaGFubiA8cmljaGFyZC5zaGFubkBzdXBlcmguY29tPgoJICAgIFN0ZXBoZW4gQ2xhcmtlIDxzdGVwaGVuLmNsYXJrZUBzdXBlcmguY29tPgoKCSogTWFrZWZpbGUuYW06IEFkZCBlbnRyaWVzIGZvciBlbGYzMi1zaDY0LWxpbi5jIGFuZAoJZWxmNjQtc2g2NC1saW4uYy4gUmVnZW5lcmF0ZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy5iZmQ6IENoYW5nZSBzaDY0ZWItKi1saW51eCogYW5kIHNoNjQtKi1saW51eCoKCXRvIHVzZSBzaDY0IHZlY3RvcnMgcmF0aGVyIHRoYW4gc2ggdmVjdG9ycy4KCSogY29uZmlndXJlLmluOiBBZGQgYmZkX2VsZjMyX3NoNjRsaW5fdmVjLCBiZmRfZWxmMzJfc2g2NGJsaW5fdmVjLAoJYmZkX2VsZjY0X3NoNjRsaW5fdmVjLCBiZmRfZWxmNjRfc2g2NGJsaW5fdmVjLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGVsZjMyLXNoNjQtbGluLmM6IE5ldyBmaWxlLgoJKiBlbGY2NC1zaDY0LWxpbi5jOiBOZXcgZmlsZS4KCSogdGFyZ2V0cy5jOiBBZGQgYmZkX2VsZjMyX3NoNjRsaW5fdmVjLCBiZmRfZWxmMzJfc2g2NGJsaW5fdmVjLAoJYmZkX2VsZjY0X3NoNjRsaW5fdmVjLCBiZmRfZWxmNjRfc2g2NGJsaW5fdmVjLgoKMjAwMi0xMC0wOCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBSZS1hcnJhbmdlIHRoZQoJSUUtPkxFIHRyYW5zaXRpb24gZm9yIFJfMzg2X1RMU19JRS4KCjIwMDItMTAtMDggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAoZWRpdF9vcGQpOiBDb3JyZWN0IHRlc3QgZm9yIGRpc2NhcmRlZCBzZWN0aW9ucy4KCjIwMDItMTAtMDcgIE1hcmsgRWxicmVjaHQgIDxzbm93YmFsbDNAc29mdGhvbWUubmV0PgoKCSogY29mZmxpbmsuYyAobWFya19yZWxvY3MpOiBEb24ndCBtYXJrIHJlbG9jYXRpb25zIGluIGV4Y2x1ZGVkCglzZWN0aW9ucy4KCjIwMDItMTAtMDcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2lucHV0X2JmZCk6IFJlbW92ZSBCRkRfVkVSU0lPTl9EQVRFIGRlcGVuZGVudAoJY29kZS4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfYnVpbGRfc3R1YnMpOiBJbmNyZW1lbnQgLmdsaW5rIGluZHguCgoyMDAyLTEwLTA2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogb3BuY2xzLmM6IEZvcm1hdHRpbmcuCgkoX2JmZF9uZXdfYmZkKTogVXNlIGEgc21hbGxlciBzZWN0aW9uIGhhc2ggdGFibGUuCgoyMDAyLTEwLTA1ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfY3JlYXRlX2R5bmFtaWNfcmVsb2NhdGlvbik6IFNldCB0aGUgdHlwZQoJb2YgdGhlIG90aGVyIHR3byByZWxvY2F0aW9ucyBwYWNrZWQgd2l0aCBhIFJFTDMyIHRvIE5PTkUuCgoyMDAyLTEwLTAyICBTdGVwaGVuIENsYXJrZSA8c3RlcGhlbi5jbGFya2VAc3VwZXJoLmNvbT4KCgkqIGVsZjMyLXNoLmMgKGVsZl9zaF9saW5rX2hhc2hfZW50cnkpOiBBZGQgZ290cGx0X3JlZmNvdW50LgoJKHNoX2VsZl9saW5rX2hhc2hfbmV3ZnVuYyk6IEluaXRpYWxpemUgaXQuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogVHJhbnNmZXIgZ290cGx0IHJlZnMgZnJvbSBwbHQucmVmY291bnQKCXRvIGdvdC5yZWZjb3VudCBmb3Igc3ltYm9scyB0aGF0IGFyZSBmb3JjZWQgbG9jYWwgb3Igd2hlbgoJd2UgaGF2ZSBkaXJlY3QgZ290IHJlZnMuCgkoc2hfZWxmX2djX3N3ZWVwX2hvb2spOiBBZGp1c3QgZ290cGx0X3JlZmNvdW50LiAgVXNlIGl0Cgl0byBjb3JyZWN0bHkgYWRqdXN0IGdvdC5yZWZjb3VudCBhbmQgcGx0LnJlZmNvdW50LgoJKHNoX2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IENvcHkgZ290cGx0X3JlZmNvdW50IGFjcm9zcy4KCShzaF9lbGZfY2hlY2tfcmVsb2NzKTogSW5jcmVtZW50IGdvdHBsdF9yZWZjb3VudC4KCjIwMDItMTAtMDEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogRml4Cgltb3ZsIGZvb0BpbmRudHBvZmYsICVlYXggSUUtPkxFIHRyYW5zaXRpb24uCgoyMDAyLTEwLTAxICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IENoYW5nZSBUTFNHRAoJc2VxdWVuY2UgYW5kIGl0cyB0cmFuc2l0aW9ucy4KCjIwMDItMTAtMDEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogUmVzb2x2ZSBSXzM4Nl9UTFNfTERPXzMyCgl0byBzdF92YWx1ZSArIGFkZGVuZCBpbiBub24tY29kZSBzZWN0aW9ucy4KCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9yZWxvY2F0ZV9zZWN0aW9uKTogUmVzb2x2ZQoJUl9YODZfNjRfRFRQT0ZGMzIgdG8gc3RfdmFsdWUgKyBhZGRlbmQgaW4gbm9uLWNvZGUgc2VjdGlvbnMuCgoyMDAyLTA5LTMwICBHYXZpbiBSb21pZy1Lb2NoICA8Z2F2aW5AcmVkaGF0LmNvbT4KCSAgICBLZW4gUmFlYnVybiAgPHJhZWJ1cm5AY3lnbnVzLmNvbT4KCSAgICBBbGR5IEhlcm5hbmRleiAgPGFsZHloQHJlZGhhdC5jb20+CgkgICAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgkgICAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogYXJjaHVyZXMuYyAoYmZkX21hY2hfbWlwczQxMjAsIGJmZF9tYWNoX21pcHM1NDAwKTogTmV3LgoJKGJmZF9tYWNoX21pcHM1NTAwKTogTmV3LgoJKiBjcHUtbWlwcy5jIChJX21pcHM0MTIwLCBJX21pcHM1NDAwLCBJX21pcHM1NTAwKTogTmV3LgoJKGFyY2hfaW5mb19zdHJ1Y3QpOiBBZGQgY29ycmVzcG9uZGluZyBlbnRyaWVzIGhlcmUuCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9lbGZfbWlwc19tYWNoKTogSGFuZGxlIEVfTUlQU19NQUNIXzQxMjAsCglFX01JUFNfTUFDSF81NDAwIGFuZCBFX01JUFNfTUFDSF81NTAwLgoJKF9iZmRfbWlwc19lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IEhhbmRsZSBiZmRfbWFjaF9taXBzNDEyMCwKCWJmZF9tYWNoX21pcHM1NDAwIGFuZCBiZmRfbWFjaF9taXBzNTUwMC4KCShfYmZkX21pcHNfZWxmX21hY2hfZXh0ZW5kc19wKTogTmV3IGZ1bmN0aW9uLgoJKF9iZmRfbWlwc19lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IFVzZSBpdCB0byBoZWxwIG1lcmdlCgl0aGUgRUZfTUlQU19NQUNIIGZsYWdzLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAyLTA5LTI4ICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogZWxmMzItdmF4LmMgKGVsZl92YXhfc2l6ZV9keW5hbWljX3NlY3Rpb24pOiBEb24ndCBzdHJpcAoJLmdvdCBzZWN0aW9ucy4KCjIwMDItMDktMjggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYuYyAobWFwX3NlY3Rpb25zX3RvX3NlZ21lbnRzKTogQ29ycmVjdCB0ZXN0IGZvciBzdGFydCBvZgoJd3JpdGFibGUgc2VjdGlvbiBpbiB0aGUgc2FtZSBwYWdlIGFzIGVuZCBvZiByZWFkLW9ubHkgc2VjdGlvbi4KCjIwMDItMDktMjcgIE1hdHQgVGhvbWFzICA8bWF0dEAzYW0tc29mdHdhcmUuY29tPgoKCSogZWxmMzItdmF4LmMgKGVsZl92YXhfY2hlY2tfcmVsb2NzKTogUmVtb3ZlIHVudXNlZAoJbG9jYWxfZ290X3JlZmNvdW50cyB1c2FnZS4gIFJlbW92ZSBhbGxvY2F0aW9uIG9mIGdvdCBzbG90LgoJKGVsZl92YXhfZ2Nfc3dlZXBfaG9vayk6IFJlbW92ZSB1bnVzZWQgbG9jYWxfZ290X3JlZmNvdW50cyB1c2FnZS4KCVJlbW92ZSBkZS1hbGxvY2F0aW9uIG9mIGdvdCBzbG90LgoJKGVsZl92YXhfc2l6ZV9keW5hbWljX3NlY3Rpb24pOiBGaXggc29tZSBpbmRlbnRhdGlvbi4gIEFkZCBoYXNoCgl0cmF2ZXJzYWwgZm9yIGVsZl92YXhfaW5zdGFudGlhdGVfZ290X2VudHJpZXMuICBBbGxvdyBlbXB0eSAuZ290CglzZWN0aW9ucyB0byBiZSBHQydlZC4KCShlbGZfdmF4X2luc3RhbnRpYXRlX2dvdF9lbnRyaWVzKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl92YXhfcmVsb2NhdGVfc2VjdGlvbik6IFNpbXBsaWZ5IFJfVkFYX0dPVDMyIGhhbmRsaW5nLiAgUmVtb3ZlCgl0ZXN0cyB0aGF0IGFyZSBub3cgaGFuZGxlZCBieSBlbGZfdmF4X2luc3RhbnRpYXRlX2dvdF9lbnRyaWVzLgoJQXNzZXJ0IEdPVCBlbnRyeSBmYWxscyB3aXRoaW4gLmdvdCBzZWN0aW9uIHNpemUuICBSZW1vdmUgcmVkdW5kYW50Cgljb21wYXJpc2lvbnMuICBGaXggY29tbWVudHMuCgoyMDAyLTA5LTI3ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHJlbG9jLmM6IEFkZCB4ODYtNjQgVExTIHJlbG9jcy4KCSogYmZkLWluMi5oLCBsaWJiZmQuaDogUmVidWlsdC4KCSogZWxmNjQteDg2LTY0LmMgKHg4Nl82NF9lbGZfaG93dG8pOiBGaXggc2l6ZSBmaWVsZHMgZm9yIDMyLWJpdAoJcmVsb2NzLiAgQWRkIFRMUyByZWxvY3MuCgkoeDg2XzY0X3JlbG9jX21hcCk6IEFkZCBUTFMgcmVsb2NzLgoJKGVsZjY0X3g4Nl82NF9pbmZvX3RvX2hvd3RvKTogQWRqdXN0IGZvciBhZGRlZCBUTFMgcmVsb2NzLgoJKHN0cnVjdCBlbGY2NF94ODZfNjRfbGlua19oYXNoX2VudHJ5KTogQWRkIHRsc190eXBlIGZpZWxkLgoJKEdPVF9VTktOT1dOLCBHT1RfTk9STUFMLCBHT1RfVExTX0dELCBHT1RfVExTX0lFKTogRGVmaW5lLgoJKGVsZjY0X3g4Nl82NF9oYXNoX2VudHJ5KTogRGVmaW5lLgoJKHN0cnVjdCBlbGY2NF94ODZfNjRfb2JqX3RkYXRhKTogTmV3LgoJKGVsZjY0X3g4Nl82NF90ZGF0YSwgZWxmNjRfeDg2XzY0X2xvY2FsX2dvdF90bHNfdHlwZSk6IERlZmluZS4KCShzdHJ1Y3QgZWxmNjRfeDg2XzY0X2xpbmtfaGFzaF90YWJsZSk6IEFkZCB0bHNfbGRfZ290LgoJKGxpbmtfaGFzaF9uZXdmdW5jKTogSW5pdGlhbGl6ZSB0bHNfdHlwZS4KCShlbGY2NF94ODZfNjRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IEluaXRpYWxpemUgdGxzX2xkX2dvdC4KCShlbGY2NF94ODZfNjRfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBTd2FwIHRsc190eXBlIGlmIG5lY2Vzc2FyeS4KCShlbGY2NF94ODZfNjRfbWtvYmplY3QpOiBOZXcuCgkoZWxmNjRfeDg2XzY0X2VsZl9vYmplY3RfcCk6IEFsbG9jYXRlIHN0cnVjdCBlbGY2NF94ODZfNjRfb2JqX3RkYXRhLgoJKGVsZjY0X3g4Nl82NF90bHNfdHJhbnNpdGlvbik6IE5ldy4KCShlbGY2NF94ODZfNjRfY2hlY2tfcmVsb2NzKTogQWRkIHJfdHlwZSB2YXJpYWJsZSBhbmQgdXNlIGl0LgoJSGFuZGxlIFRMUyByZWxvY3MuCgkoZWxmNjRfeDg2XzY0X2djX3N3ZWVwX2hvb2spOiBIYW5kbGUgVExTIHJlbG9jcy4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBBbGxvY2F0ZSBHT1Qgc3BhY2UgZm9yIFRMUyByZWxvY3MuCgkoZWxmNjRfeDg2XzY0X3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKGR0cG9mZl9iYXNlLCB0cG9mZik6IE5ldy4KCShlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IEhhbmRsZSBUTFMgcmVsb2NzLgoJKGVsZjY0X3g4Nl82NF9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBPbmx5IGhhbmRsZSBub24tVExTIEdPVAoJZW50cmllcy4KCShiZmRfZWxmNjRfbWtvYmplY3QpOiBEZWZpbmUuCgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X2NoZWNrX3JlbG9jcykgW1JfMzg2X1RMU19MRV06IFNldAoJREZfU1RBVElDX1RMUyBpZiBzaGFyZWQuCgoyMDAyLTA5LTI2ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX2Zha2Vfc2VjdGlvbnMpOiBEb24ndCBlbWl0IHVubmVlZGVkCgllbXB0eSByZWxvY2F0aW9uIHNlY3Rpb25zLgoKMjAwMi0wOS0yNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGNfYnVpbGRfb25lX3N0dWIpOiBEb24ndCBidWlsZCBnbGluayBzdHVicyBoZXJlLgoJKHBwYzY0X2VsZl9idWlsZF9zdHVicyk6IEJ1aWxkIHRoZW0gaGVyZSBpbnN0ZWFkLgoKMjAwMi0wOS0yNCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1zcGFyYy5jIChlbGYzMl9zcGFyY19yZWxvY2F0ZV9zZWN0aW9uKTogUHV0IFJfU1BBUkNfUkVMQVRJVkUKCWFkZGVuZCBpbnRvIHJfYWRkZW5kLCBub3QgKnJfb2Zmc2V0LgoJKGVsZjMyX3NwYXJjX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBDbGVhciB4d29yZCBhdAoJUl9TUEFSQ19SRUxBVElWRSdzIHJfb2Zmc2V0LgoKMjAwMi0wOS0yMyAgTmF0aGFuIFRhbGxlbnQgIDxlcmF4eG9uQGFsdW1uaS5yaWNlLmVkdT4KCgkqIGR3YXJmMi5jIChkZWNvZGVfbGluZV9pbmZvKTogVXBkYXRlIHRvIGNvcnJlY3RseSBkZWNvZGUKCXRoZSAobm9uLXN0YW5kYXJkIERXQVJGMikgb3V0LW9mLW9yZGVyIGFkZHJlc3Mgc2VxdWVuY2VzCglnZW5lcmF0ZWQgYnkgdGhlIEludGVsIEMrKyA2LjAgY29tcGlsZXIgZm9yIGlhNjQtTGludXguCgoyMDAyLTA5LTIzICBNYXJrIEVsYnJlY2h0ICA8c25vd2JhbGwzQHNvZnRob21lLm5ldD4KCgkqIGNvbmZpZy5iZmQ6IEZvciBESkdQUCB0YXJnZXRzLCBtYXRjaCB3aXRoIGFueSBjcHUgYW5kIGFueSBtYWNoaW5lLgoKMjAwMi0wOS0yMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1laC1mcmFtZS5jIChfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhfZnJhbWUpOiBaZXJvIHJlbG9jcwoJZm9yIGRpc2NhcmRlZCBGREVzLiAgUmVtb3ZlIHJlZHVuZGFudCBhc3NpZ25tZW50LgoJKiBlbGZsaW5rLmggKGVsZl9iZmRfZGlzY2FyZF9pbmZvKTogU2F2ZSBlZGl0ZWQgcmVsb2NzLgoKMjAwMi0wOS0yMiAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9tZXJnZV9pbmRfc3ltYm9scyk6IERvbid0IG1lcmdlCgl0aGUgcmVsb2NhdGlvbiBjb3VudCBiZXR3ZWVuIGRpZmZlcmVudCAucmVsb2Mgc2VjdGlvbnMuCgoyMDAyLTA5LTIxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItcHBjLmMgKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEFsbG93ICIuc2Jzcy4qIiBhbmQKCSIuc2RhdGEuKiIgZm9yIFJfUFBDX1NEQVJFTDE2LCAiLnNic3MyKiIgYW5kICIuc2RhdGEyKiIgZm9yCglSX1BQQ19FTUJfU0RBMlJFTC4gIFNpbWlsYXJseSBmb3IgUl9QUENfRU1CX1NEQTIxIGFuZAoJUl9QUENfRU1CX1JFTFNEQS4KCgkqIGVsZmNvZGUuaCAoZWxmX3NsdXJwX3JlbG9jX3RhYmxlX2Zyb21fc2VjdGlvbik6IE1ha2UgInN5bWNvdW50IgoJdW5zaWduZWQuICBNb3ZlICJzeW1jb3VudCIgYXNzaWdubWVudCBvdXQgb2YgbG9vcC4KCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBwby9TUkMtUE9URklMRVMuaW46IFJlZ25lcmF0ZS4KCjIwMDItMDktMTkgIE5hdGhhbiBUYWxsZW50ICA8ZXJheHhvbkBhbHVtbmkucmljZS5lZHU+CgoJKiBkd2FyZjIuYyAoX2JmZF9kd2FyZjJfZmluZF9uZWFyZXN0X2xpbmUpOiBJZiBhZGRyZXNzIGxlbmd0aCBpcwoJemVybywgc2V0IGl0IHRvIDggZm9yIChub24tc3RhbmRhcmQpIDY0LWJpdCBEV0FSRjIgZm9ybWF0cwoJKGUuZy4gSVJJWDY0KS4KCjIwMDItMDktMTkgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmMzItcHBjLmMgKHBwY19lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogQ2xlYXIgLmdvdCB3b3JkCglldmVuIGlmIGdlbmVyYXRpbmcgUl9QUENfUkVMQVRJVkUgcmVsb2MuCgkocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTWFrZSBzdXJlIHJlbG9jYXRpb24gaXMgcGVyZm9ybWVkCglpZiBza2lwID09IC0yLiAgQ2xlYXIgbWVtb3J5IGF0IHJfb2Zmc2V0IHdoZW4gY3JlYXRpbmcgZHluYW1pYwoJcmVsb2NhdGlvbi4KCjIwMDItMDktMTkgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogcmVsb2MuYyAoQkZEX1JFTE9DXzM4Nl9UTFNfVFBPRkYsIEJGRF9SRUxPQ18zODZfVExTX0lFLAoJQkZEX1JFTE9DXzM4Nl9UTFNfR09USUUpOiBBZGQuCgkqIGJmZC1pbjIuaCwgbGliYmZkLmg6IFJlYnVpbHQuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2hvd3RvX3RhYmxlKTogQWRkIFJfMzg2X1RMU19UUE9GRiwgUl8zODZfVExTX0lFCglhbmQgUl8zODZfVExTX0dPVElFLgoJKGVsZl9pMzg2X3JlbG9jX3R5cGVfbG9va3VwKTogSGFuZGxlIGl0LgoJKHN0cnVjdCBlbGZfaTM4Nl9saW5rX2hhc2hfZW50cnkpOiBDaGFuZ2UgdGxzX3R5cGUgdHlwZSB0byB1bnNpZ25lZAoJY2hhciBpbnN0ZWFkIG9mIGVudW0sIGNoYW5nZSBHT1RfKiBpbnRvIGRlZmluZXMuCgkoR09UX1RMU19JRV9QT1MsIEdPVF9UTFNfSUVfTkVHLCBHT1RfVExTX0lFX0JPVEgpOiBEZWZpbmUuCgkoZWxmX2kzODZfdGxzX3RyYW5zaXRpb24pOiBIYW5kbGUgUl8zODZfVExTX0lFIGFuZCBSXzM4Nl9UTFNfR09USUUuCgkoZWxmX2kzODZfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuICBBdm9pZCBjcmFzaCBpZiBsb2NhbCBzeW1ib2wgaXMKCWFjY2Vzc2VkIGJvdGggYXMgbm9ybWFsIGFuZCBUTFMgc3ltYm9sLiAgTW92ZSBSXzM4Nl9UTFNfTERNIGFuZAoJUl8zODZfUExUMzIgY2FzZXMgc28gdGhhdCBSXzM4Nl9UTFNfSUUgY2FuIGZhbGwgdGhyb3VnaC4KCUhhbmRsZSBSXzM4Nl9UTFNfTEVfMzIgYW5kIFJfMzg2X1RMU19MRSBpbiBzaGFyZWQgbGlicy4KCShlbGZfaTM4Nl9nY19zd2VlcF9ob29rKTogSGFuZGxlIFJfMzg2X1RMU19JRSBhbmQgUl8zODZfVExTX0dPVElFLgoJSGFuZGxlIFJfMzg2X1RMU19MRV8zMiBhbmQgUl8zODZfVExTX0xFIGluIHNoYXJlZCBsaWJzLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IEFsbG9jYXRlIDIgLmdvdCBhbmQgMiAucmVsLmdvdCBlbnRyaWVzIGlmCgl0bHNfdHlwZSBpcyBHT1RfVExTX0lFX0JPVEguCgkoZWxmX2kzODZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IEhhbmRsZSBSXzM4Nl9UTFNfSUUgYW5kIFJfMzg2X1RMU19HT1RJRS4KCUhhbmRsZSBSXzM4Nl9UTFNfTEVfMzIgYW5kIFJfMzg2X1RMU19MRSBpbiBzaGFyZWQgbGlicy4KCShlbGZfaTM4Nl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBVc2UgdGxzX3R5cGUgJiBHT1RfVExTX0lFIHRvIGNhdGNoCglhbGwgNCBHT1RfVExTXyogVExTIHR5cGVzLgoKMjAwMi0wOS0xOSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZmxpbmsuaCAoZWxmX2ZpeF9zeW1ib2xfZmxhZ3MpOiBXaGVuIGV4YW1pbmluZyB3ZWFrIHN5bWJvbHMsCglmb2xsb3cgaW5kaXJlY3QgbGlua3MuCgoyMDAyLTA5LTE5ICBOYXRoYW4gVGFsbGVudCAgPGVyYXh4b25AYWx1bW5pLnJpY2UuZWR1PgoKCSogZWNvZmZzd2FwLmggKGVjb2ZmX3N3YXBfcGRyX2luKSA8aXN5bSwgaWxpbmU+OiBVcGRhdGUgdG8KCWNvcnJlY3RseSBzaWduLWV4dGVuZCAzMi1iaXQgRUNPRkYgbnVsbCB2YWx1ZXMgKDB4ZmZmZmZmZmYsIC0xKQoJb24gNjQgYml0IG1hY2hpbmVzLgoJKGVjb2ZmX3N3YXBfc3ltX2luKSA8aXNzPjogTGlrZXdpc2UuCgkqIGVjb2ZmLmMgKF9iZmRfZWNvZmZfc2x1cnBfc3ltYm9saWNfaW5mbyk6IEZpeCBlcnJvciByZWFkaW5nCglFQ09GRiBpbmZvcm1hdGlvbjogJ2lvcHRNYXgnIHJlZmVycyB0byB0aGUgYWN0dWFsICpzaXplKgoJb2YgdGhlIG9wdGltaXphdGlvbiBzeW10YWIsIG5vdCB0aGUgbnVtYmVyIG9mIGVudHJpZXMuCgoyMDAyLTA5LTE5ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogVXBkYXRlCglFTEZfTElOS19IQVNIX05FRURTX1BMVCBsb2dpYy4KCjIwMDItMDktMTggIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogZWxmY29kZS5oIChlbGZfc2x1cnBfcmVsb2NfdGFibGVfZnJvbV9zZWN0aW9uKTogQ2hlY2sKCWNvcnJlY3QgcmVsb2NhdGlvbiBjb3VudC4KCjIwMDItMDktMTcgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogYmZkLWluLmggKGJmZF9nZXRfZHluYW1pY19zeW1jb3VudCk6IERlZmluZS4KCSogYmZkLmMgKHN0cnVjdCBfYmZkKTogQWRkIGR5bnN5bWNvdW50LgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGVkLgoJKiBlbGYuYyAoX2JmZF9lbGZfY2Fub25pY2FsaXplX2R5bmFtaWNfc3ltdGFiKTogU2V0CglhYmZkLT5keW5zeW1jb3VudC4KCSogZWxmY29kZS5oIChlbGZfc2x1cnBfcmVsb2NfdGFibGVfZnJvbV9zZWN0aW9uKTogQ2hlY2sKCWZvciBvdmVyZmxvdy4KCjIwMDItMDktMTcgIFN0YW4gQ294IDxzY294QHJlZGhhdC5jb20+CgoJKiBlbGY2NC1taXBzLmMgKG1pcHNfZWxmNjRfYmVfc3dhcF9yZWxvY2Ffb3V0KTogSGFuZGxlIHR5cGUyIGFuZCB0eXBlMy4KCShtaXBzX2VsZjY0X2ZpbmFsX2dwKTogRG9uJ3QgbWFrZSB1cCBncCB2YWx1ZS4KCSogZWxmbjMyLW1pcHMuYyAobWlwc19lbGZfZmluYWxfZ3ApOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX2ZpbmFsX2xpbmspOiBBbHdheXMgY3JlYXRlCgkuTUlQUy5vcHRpb25zLy5vcHRpb25zIHNlY3Rpb24uCgoyMDAyLTA5LTE3ICBEYXZpZCBPJ0JyaWVuICA8b2JyaWVuQEZyZWVCU0Qub3JnPgoKCSogZWxmMzItaTM4Ni1mYnNkLmM6IEFsd2F5cyBsYWJlbCB1c2luZyB0aGUgRUlfT1NBQkkgbWV0aG9kLgoJSXQgaXMgYmVuaWduIGZvciBGcmVlQlNEIDwgNC4xLiAgTWlub3IgcmVmb3JtYXR0aW5nLgoJKiBlbGY2NC1hbHBoYS1mYnNkLmM6IExpa2V3aXNlLgoKMjAwMi0wOS0xNyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pIFtSXzM4Nl9UTFNfVFBPRkYzMl06IE5lZ2F0ZQoJYWRkZW5kLgoKMjAwMi0wOS0xNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LWFscGhhLmMgKGFscGhhX2VsZl9zaXplX2luZm8pOiBNYWtlIHN0YXRpYy4KCjIwMDItMDktMTcgIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGNvZmYtdGljNHguYzogQWRkIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBhbmQgQVRUUklCVVRFX1VOVVNFRC4KCSogY3B1LXRpYzR4LmM6IERpdHRvLgoKMjAwMi0wOS0xNyAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZjY0LW1pcHMuYyAoZGVmaW5lIGVsZl9iYWNrZW5kX2lnbm9yZV9kaXNjYXJkZWRfcmVsb2NzKTogUmVtb3ZlCglkdXBsaWNhdGUgZGVmaW5lLgoKMjAwMi0wOS0xNiAgQnJ1bm8gSGFpYmxlICA8YnJ1bm9AY2xpc3Aub3JnPgoKCSogZWxmMzItaTM4Ni5jOiBEb24ndCBkZWZpbmVkIEVMRl9BUkNIIGV0Yy4gaWYgdGhpcyBmaWxlIGlzIGluY2x1ZGVkCglieSBhIHRhcmdldCB2YXJpYW50IGltcGxlbWVudGF0aW9uLgoJKiBlbGY2NC1hbHBoYS5jOiBMaWtld2lzZS4KCSogZWxmMzItaTM4Ni1mYnNkLmM6IE5ldyBmaWxlLgoJKiBlbGY2NC1hbHBoYS1mYnNkLmM6IE5ldyBmaWxlLgoJKiB0YXJnZXRzLmM6IFN1cHBvcnQgYmZkX2VsZjMyX2kzODZfZnJlZWJzZF92ZWMgYW5kCgliZmRfZWxmNjRfYWxwaGFfZnJlZWJzZF92ZWMuCgkqIGNvbmZpZ3VyZS5pbjogQWNjZXB0IHRoZSB2ZWN0b3JzIGJmZF9lbGYzMl9pMzg2X2ZyZWVic2RfdmVjLAoJYmZkX2VsZjY0X2FscGhhX2ZyZWVic2RfdmVjLgoJKiBNYWtlZmlsZS5hbSAoQkZEMzJfQkFDS0VORFMpOiBBZGQgZWxmMzItaTM4Ni1mYnNkLmxvLgoJKEJGRDMyX0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCBlbGYzMi1pMzg2LWZic2QuYy4KCShCRkQ2NF9CQUNLRU5EUyk6IEFkZCBlbGY2NC1hbHBoYS1mYnNkLmxvLgoJKEJGRDY0X0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCBlbGY2NC1hbHBoYS1mYnNkLmMuCgkoZWxmMzItaTM4Ni1mYnNkLmxvLCBlbGY2NC1hbHBoYS1mYnNkLmxvKTogQWRkIGRlcGVuZGVuY2llcy4KCSogY29uZmlnLmJmZDogRm9yIEZyZWVCU0QgdGFyZ2V0cywgc2V0IHRhcmdfZGVmdmVjIHRvIGEgRnJlZUJTRAoJc3BlY2lmaWMgdGFyZ2V0cy4gRGVmaW5lIE9MRF9GUkVFQlNEX0FCSV9MQUJFTCBpZiBhcHByb3ByaWF0ZS4KCjIwMDItMDktMTIgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmMzItaTM4Ni5jIChkdHBvZmZfYmFzZSwgdHBvZmYpOiBEb24ndCBjcmFzaCBpZiB0bHNfc2VnbWVudCBpcwoJTlVMTC4KCShlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogUmV0dXJuIGZhbHNlIGFmdGVyIHByaW50aW5nIGVycm9yIGFib3V0Cgl1bnJlc29sdmFibGUgcmVsb2NhdGlvbi4KCjIwMDItMDktMTIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBGaXggaGFuZGxpbmcgb2YKCVJfQVJNX1RITV9QQzExLgoKMjAwMi0wOS0xMSAgSmVmZnJleSBMYXcgIDxsYXdAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLWg4MzAwLmMgKGVsZjMyX2g4X3JlbGF4X3NlY3Rpb24pOiBGaXggdHlwby4KCjIwMDItMDktMTEgIEFuZHJldyBIYWxleSAgPGFwaEBjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGVsZi5jIChfYmZkX2VsZl9maW5kX25lYXJlc3RfbGluZSk6IENoZWNrIGZ1bmN0aW9ubmFtZV9wdHIgYW5kCglsaW5lX3B0ciBiZWZvcmUgZGVjaWRpbmcgd2UndmUgZm91bmQgYSBzeW1ib2wuCgoyMDAyLTA5LTExICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vZGEucG86IE5ldyBEYW5pc2ggdHJhbnNsYXRpb24gZmlsZS4KCSogY29uZmlndXJlLmluIChMSU5HVUFTKTogQWRkICdkYScuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMDktMTAgIE1pY2hhZWwgU255ZGVyICA8bXNueWRlckByZWRoYXQuY29tPgoKCSogaXJpeC1jb3JlLmMgKGRvX3NlY3Rpb25zLCBkb19zZWN0aW9uczY0KTogTmV3IGZ1bmN0aW9ucy4KCShpcml4X2NvcmVfY29yZV9maWxlX3ApOiBDYWxsIG5ldyBmdW5jdGlvbnMgZG9fc2VjdGlvbnMsCglkb19zZWN0aW9uczY0LCBkZXBlbmRpbmcgb24gY29yZWZpbGUgKDMyLWJpdCBvciA2NC1iaXQpLgoKMjAwMi0wOS0wOSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxheF9zZWN0aW9uKTogSGFuZGxlIFBDUkVMMjFNCglhbmQgUENSRUwyMUYgbGlrZSBQQ1JFTDIxQi4KCjIwMDItMDktMDQgIEtldmluIEJ1ZXR0bmVyICA8a2V2aW5iQHJlZGhhdC5jb20+CgoJKiBjb25maWcuYmZkIChtaXBzKi0qLWlyaXg2Kik6IEFkZCBuZXcgQUJJIHZlY3RvcnMuICBNYWtlIG4zMiBkZWZhdWx0Cgl2ZWN0b3IuCgoyMDAyLTA5LTAyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmMzItdjg1MC5jICh2ODUwX2VsZl9maW5hbF9saW5rX3JlbG9jYXRlKTogVXNlIGhlbHBmdWwKCW5hbWVzIGluc3RlYWQgb2YgY3J5cHRpY2FsbHkgb3ZlcmxvYWRlZCBiZmRfcmVsb2MgZXJyb3IKCWNvZGVzLgoJKHY4NTBfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSh2ODUwX2VsZl9yZWxheF9zZWN0aW9uKTogUmVwbGFjZSBjYWNoaW5nIG9mIGV4dGVybmFsIHN5bWJvbHMKCXdpdGggY2FjaGluZyBvZiBpbnRlcm5hbCBzeW1ib2xzIG9idGFpbmVkIGZyb20gY2FsbGluZwoJYmZkX2VsZl9nZXRfZWxmX3N5bXMoKS4KCUZpeHVwIHByb2JsZW1zIHdpdGggZnJlZWluZyBjYWNoZWQgYWxsb2NhdGVkIG1lbW9yeSBibG9ja3MuCgoyMDAyLTA5LTAyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY3B1LXBqLmMgKHNjYW5fbWFjaCwgY29tcGF0aWJsZSwgYXJjaF9pbmZvX3N0cnVjdCk6IFJlbW92ZS4KCShiZmRfcGpfYXJjaCk6IFVzZSBiZmRfZGVmYXVsdF9zY2FuLgoJKiBjcHUtdjg1MC5jIChzY2FuKTogUmVtb3ZlLgoJKE4pOiBVc2UgYmZkX2RlZmF1bHRfc2Nhbi4KCSogY3B1LXo4ay5jIChzY2FuX21hY2gpOiBSZW1vdmUuCgkoYXJjaF9pbmZvX3N0cnVjdCwgYmZkX3o4a19hcmNoKTogUmVvcmdhbml6ZSBzbyB0aGF0IHRoZSBkZWZhdWx0IGlzCglmaXJzdC4gIFVzZSBiZmRfZGVmYXVsdF9zY2FuLgoKCSogZWNvZmYuYyAoX2JmZF9lY29mZl9zZXRfYXJjaF9tYWNoX2hvb2spOiBEb24ndCB1c2UgaGFyZC1jb2RlZAoJYmZkX21hY2ggY29uc3RhbnRzLgoJKGVjb2ZmX2dldF9tYWdpYyk6IExpa2V3aXNlLgoJKiBlbGYzMi12ODUwLmMgKHY4NTBfZWxmX29iamVjdF9wKTogTGlrZXdpc2UuCgkodjg1MF9lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IExpa2V3aXNlLgoJKiBtaXBzYnNkLmMgKE1ZKHNldF9hcmNoX21hY2gpKTogTGlrZXdpc2UuCgkoTVkod3JpdGVfb2JqZWN0X2NvbnRlbnRzKSk6IExpa2V3aXNlLgoJKiBjb2ZmNjQtcnM2MDAwLmMgKHhjb2ZmNjRfd3JpdGVfb2JqZWN0X2NvbnRlbnRzKTogTGlrZXdpc2UuCgkqIGNvZmZjb2RlLmggKGNvZmZfd3JpdGVfb2JqZWN0X2NvbnRlbnRzKTogTGlrZXdpc2UuCgkoY29mZl9zZXRfYXJjaF9tYWNoX2hvb2spOiBBZGQgY29tbWVudCBkZXNjcmliaW5nIG1hY2hpbmUgPT0gMC4KCVJlbW92ZSB1bm5lY2Vzc2FyeSAibWFjaGluZSIgYXNzaWdubWVudHMuCgkoY29mZl93cml0ZV9yZWxvY3MpOiBUZXN0IGZvciB0aGUgYWJzb2x1dGUgc2VjdGlvbiBzeW0gYnkgdGVzdGluZwoJc2VjdGlvbiBhbmQgZmxhZ3MuCgoJKiBhb3V0eC5oIChOQU1FKGFvdXQsbWFjaGluZV90eXBlKSk6IFJlY29nbml6ZSBiZmRfbWFjaF9pMzg2X2kzODYKCWFuZCBiZmRfbWFjaF9pMzg2X2kzODZfaW50ZWxfc3ludGF4LgoJKiBwZHAxMS5jIChOQU1FKGFvdXQsbWFjaGluZV90eXBlKSk6IExpa2V3aXNlLgoKMjAwMi0wOC0zMCAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlQGhpYXVseTEuaGlhLm5yYy5jYT4KCgkqIGJmZC1pbi5oIChhbGlnbl9wb3dlcik6IENhc3QgY29uc3RhbnRzIHRvIGJmZF92bWEgdHlwZS4KCSogYmZkLWluMi5oIChhbGlnbl9wb3dlcik6IExpa2V3aXNlLgoKMjAwMi0wOC0zMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoJKiBjcHUtYXZyLmMgKGNvbXBhdGlibGUpOiBEb24ndCB1c2UgaGFyZC1jb2RlZCBtYWNoIGNvbnN0YW50cy4KCSogY3B1LXBvd2VycGMuYyAocG93ZXJwY19jb21wYXRpYmxlKTogTGlrZXdpc2UuCgkqIGNwdS1yczYwMDAuYyAocnM2MDAwX2NvbXBhdGlibGUpOiBMaWtld2lzZS4KCjIwMDItMDgtMjggIENhdGhlcmluZSBNb29yZSAgPGNsbUByZWRoYXQuY29tPgoKCSogZWxmMzItdjg1MC5jICh2ODUwX2VsZl9yZWxvY19tYXApOiBBZGQgbmV3IHJlbG9jcy4KCSh2ODUwLWVsZi1yZWxvYyk6IERvbid0IHJlc29sdmUgcGMgcmVsYXRpdmUgcmVsb2NzLgoJKHY4NTBfZWxmX2lnbm9yZV9yZWxvYyk6IE5ldyByb3V0aW5lLgoJKHY4NTBfZWxmX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBIYW5kbGUgbmV3IHJlbG9jcy4KCSh2ODUwX2VsZl9yZWxheF9kZWxldGVfYnl0ZXMgKTogTmV3IHJvdXRpbmUuCgkodjg1MF9lbGZfcmVsYXhfc2VjdGlvbik6IE5ldyByb3V0aW5lLgoJKGJmZF9lbGYzMl9iZmRfcmVsYXhfc2VjdGlvbik6IERlZmluZS4KCShIT1dUTyk6IE5ldyBlbnRyaWVzIGZvciBuZXcgcmVsb2NzLgoJKiByZWxvYy5jIChCRkRfUkVMT0NfVjg1MF9MT05HQ0FMTCk6IE5ldyByZWxvYy4KCShCRkRfUkVMT0NfVjg1MF9MT05HSlVNUCk6IE5ldyByZWxvYy4KCShCRkRfUkVMT0NfVjg1MF9BTElHTik6IE5ldyByZWxvYy4KCSogYXJjaHVyZXMuYzogUmVtb3ZlIHJlZHVuZGFudCB2ODUwZWEgYXJjaGl0ZWN0dXJlLgoJKiBjcHUtdjg1MC5jOiBSZW1vdmUgcmVkdW5kYW50IHY4NTBlYSBzdXBwb3J0LgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlZC4KCjIwMDItMDgtMjggIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGNvbmZpZy5iZmQ6IEFkZCB0aWM0eC0qLSpjb2ZmKiBhbmQgYzR4LSotKmNvZmYqIHRhcmdldC4KCSogY29uZmlndXJlLmluOiBBZGQgdGljNHhfY29mZiB2ZWN0b3IgZmlsZXMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogTWFrZWZpbGUuYW06IEFkZCB0aWM0eCB0YXJnZXQuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wOC0yNyAgTWljaGFlbCBIYXllcyA8bS5oYXllc0BlbGVjLmNhbnRlcmJ1cnkuYWMubno+CgoJKiBhcmNodXJlcy5jOiBBZGQgdGhlIEJGRCBhcmNoIHR5cGUgdGljNHguCgkqIGJmZC1pbi5oOiBBZGQgQkZEX0lOX01FTU9SWSBmbGFnLgoJKiBjb2ZmLXRpYzR4LmM6IE5ldyBmaWxlLgoJKiBjb2Zmc3dhcC5oIChjb2ZmX3N3YXBfc3ltX291dCk6IEFkZCBwcmVhZGp1c3Rlci4KCSogY3B1LXRpYzR4LmM6IE5ldyBmaWxlLgoJKiB0YXJnZXRzLmM6IEFkZGVkIHRpYzR4LSBpbiBsaXN0IG9mIHh2ZWNzLgoJKiB0aWNvZmYuaDogTmV3IGZpbGUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDItMDgtMjcgIEFkYW0gTmVtZXQgIDxhbmVtZXRAbG54dy5jb20+CgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogU2V0IHRoZSBsYXN0CgliaXQgb2YgRFRfSU5JVCBhbmQgRFRfRklOSSBmb3IgVGh1bWIgZnVuY3Rpb25zLgoKMjAwMi0wOC0yNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvZmZjb2RlLmggKGNvZmZfc2V0X2FyY2hfbWFjaF9ob29rKTogSGFuZGxlIFc2NU1BR0lDLgoKMjAwMi0wOC0yNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGFvdXR4LmggKE5BTUUoYW91dCxyZWxvY190eXBlX2xvb2t1cCkpOiBIYW5kbGUgQkZEX1JFTE9DXzguCgoyMDAyLTA4LTI0ICBLYXogS29qaW1hICA8a2tvamltYUByci5paWo0dS5vci5qcD4KCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IE5ldy4KCShjcmVhdGVfZ290X3NlY3Rpb24sIGFsbG9jYXRlX2R5bnJlbG9jcywgcmVhZG9ubHlfZHlucmVsb2NzKToKCUxpa2V3aXNlLgoJKHN0cnVjdCBlbGZfc2hfcGNyZWxfcmVsb2NzX2NvcGllZCk6IFJlbW92ZWQuCgkoc3RydWN0IGVsZl9zaF9keW5fcmVsb2NzKTogTmV3LgoJKHN0cnVjdCBlbGZfc2hfbGlua19oYXNoX2VudHJ5KTogUmVwbGFjZSBwY3JlbF9yZWxvY3NfY29waWVkCglmaWVsZCB3aXRoIGR5bl9yZWxvY3MuCgkoc3RydWN0IGVsZl9zaF9saW5rX2hhc2hfdGFibGUpOiBBZGQgc2hvcnQtY3V0cyB0byBnZXQgZHluYW1pYwoJc2VjdGlvbnMgYW5kIHN5bV9zZWMuCgkoc2hfZWxmX2xpbmtfaGFzaF9uZXdmdW5jKTogQ2xlYXIgZHluX3JlbG9jcy4KCShzaF9lbGZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IENsZWFyIHNob3J0cy1jdXRzIGFuZCBzeW1fc2VjLgoJKHNoX2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IFVzZSBjcmVhdGVfZ290X3NlY3Rpb24gaW5zdGVhZAoJb2YgX2JmZF9lbGZfY3JlYXRlX2dvdF9zZWN0aW9uLgoJKHNoX2VsZl9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4KCShzaF9lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBVc2Ugc2hvcnQtY3V0cyB0byB0aGUgZHluYW1pYwoJc2VjdGlvbnMuCgkoc2hfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCwgc2hfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucywKCXNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uLCBzaF9lbGZfY2hlY2tfcmVsb2NzLAoJc2hfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCwgc2hfZWxmX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKToKCUxpa2V3aXNlLgoJKHNoX2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBIYW5kbGUgbm9jb3B5cmVsb2MuIEtlZXAgdGhlCglkeW5hbWljIHJlbG9jYXRpb25zIGFuZCBhdm9pZGluZyB0aGUgY29weSByZWxvY2F0aW9uIHdoZW4gd2UKCWRpZG4ndCBmaW5kIGFueSBkeW5hbWljIHJlbG9jYXRpb25zIGluIHRoZSBzZWN0aW9uIHdoaWNoIGhhcwoJY29udGVudHMgb3IgaXMgcmVhZC1vbmx5LgoJKFdJTExfQ0FMTF9GSU5JU0hfRFlOQU1JQ19TWU1CT0wpOiBOZXcuCgkoc2hfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IERvbid0IHJlc2V0IHRoZSBzaXplIG9mCgkucmVsYS5nb3Qgc2VjdGlvbiBldmVuIGlmIGR5bmFtaWNfc2VjdGlvbnNfY3JlYXRlZCBmbGFnIGlzIG9mZi4KCURvbid0IHVzZSBzaF9lbGZfZGlzY2FyZF9jb3BpZXMuIFNjYW4gYWxsIGlucHV0IGJmZCBhbmQgdXNlCglhbGxvY2F0ZV9keW5yZWxvY3MuIENhbGwgcmVhZG9ubHlfZHlucmVsb2NzIHRvIGRldGVybWluZQoJd2hldGhlciB3ZSBuZWVkIERUX1RFWFRSRUwuCgkoc2hfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IFVzZSBwbHQucmVmY291bnQgdG8gZGV0ZXJtaW5lCgl3aGV0aGVyIHRoZSBzeW1ib2wgd2FzIG5ldmVyIHJlZmVycmVkIHRvLgoJKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogVXNlIFdJTExfQ0FMTF9GSU5JU0hfRFlOQU1JQ19TWU1CT0wuCgkoc2hfZWxmX2djX3N3ZWVwX2hvb2spOiBGaWxsIHdpdGggdGhlIHJlYWwgc3dlZXAgZnVuY3Rpb24uCgkoc2hfZWxmX2NoZWNrX3JlbG9jcyk6IENhbGwgY3JlYXRlX2dvdF9zZWN0aW9uIGlmIHRoZSBzaG9ydC1jdXQKCXRvIC5nb3QgaXMgbnVsbC4gSW5jcmVtZW50IHJlZmVyZW5jZSBjb3VudGVycyBvbmx5IGluc3RlYWQgb2YKCWFsbG9jYXRpbmcgc3BhY2Ugb24gZHluYW1pYyBzZWN0aW9ucyBoZXJlLiBEb24ndCBjb25kaXRpb25hbGl6ZQoJdW5pbml0aWFsaXplZCBnb3Qub2Zmc2V0IHZhbHVlIHdoZW4gbWFya2luZyB0aGUgc3ltYm9sIGFzIGEKCWdsb2JhbCBvZmZzZXQgdGFibGUgZW50cnkuIEtlZXAgcmVsb2NhdGlvbnMgZm9yIHN5bWJvbHMgc2F0aXNmaWVkCglieSBhIGR5bmFtaWMgbGlicmFyeSB0byBhdm9pZCBjb3B5IHJlbG9jYXRpb25zIGZvciB0aGUgc3ltYm9sLgoJU2V0IGR5bm9iaiBmaWVsZCBvZiBhbiBlbGYgaGFzaCB0YWJsZSBpZiBuZWVkZWQuCgkoc2hfZWxmX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogSGFuZGxlIG51bGwgc2VjdGlvbiBwb2ludGVyCgljb3JyZWN0bHkuCgkoZWxmX2JhY2tlbmRfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBEZWZpbmVkLgoJKGVsZl9iYWNrZW5kX2Nhbl9yZWZjb3VudCk6IERlZmluZWQuCgoyMDAyLTA4LTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmLWVoLWZyYW1lLmMgKF9iZmRfZWxmX2Rpc2NhcmRfc2VjdGlvbl9laF9mcmFtZSk6IFVuZG8KCXByZXZpb3VzIGNoYW5nZS4gIEFkZCBjb21tZW50IGV4cGxhaW5pbmcgd2h5LgoKMjAwMi0wOC0yMyAgU3RlcGhlbiBDbGFya2UgPHN0ZXBoZW4uY2xhcmtlQHN1cGVyaC5jb20+CgoJKiBlbGYzMi1zaC5jIChlbGZfc2hfcGx0MF9lbnRyeV9iZSwgZWxmX3NoX3BsdDBfZW50cnlfbGUpOiBDb3B5Cgljb250ZW50cyBvZiAuZ290LnBsdFsyXSB0byB0cjAsIG5vdCBhZGRyZXNzIG9mIC5nb3QucGx0LgoJKHNoX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBEbyBub3QgYXBwbHkgR09UX0JJQVMgd2hlbgoJcGF0Y2hpbmcgYWJzb2x1dGUgcGx0IGVudHJ5LiBGb3Igc2htZWRpYSBwbHQgZW50cnksIHNldCBib3R0b20gYml0CglvZiBicmFuY2ggdG8gcGx0MCBhcyB0aGlzIGlzIGEgYnJhbmNoIHRvIGFuIHNobWVkaWEgaW5zdHJ1Y3Rpb24uCgkqIGVsZjY0LXNoNjQuYyAoZWxmX3NoNjRfcGx0MF9lbnRyeV9iZSwgZWxmX3NoNjRfcGx0MF9lbnRyeV9sZSk6CglDb3B5IGNvbnRlbnRzIG9mIC5nb3QucGx0WzJdIHRvIHRyMCwgbm90IGFkZHJlc3Mgb2YgLmdvdC5wbHQuCgkoZWxmX3NoNjRfcGx0X2VudHJ5X2JlLCBlbGZfc2g2NF9wbHRfZW50cnlfbGUpOiBVc2UgcHRyZWwgdG8KCWJyYW5jaCB0byBwbHQwLgoJKHNoNjRfZWxmNjRfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogRG8gbm90IGFwcGx5IEdPVF9CSUFTIHdoZW4KCXBhdGNoaW5nIGFic29sdXRlIHBsdCBlbnRyeS4gRm9yIHNobWVkaWEgcGx0IGVudHJ5LCBicmFuY2ggdG8KCXBsdDAgaXMgbm93IHB0cmVsLCBzbyB1c2UgcmVsYXRpdmUgb2Zmc2V0LiAgU2V0IGJvdHRvbSBiaXQgb2YKCWJyYW5jaCB0YXJnZXQgYXMgaXQgaXMgYSBicmFuY2ggdG8gYW4gc2htZWRpYSBpbnN0cnVjdGlvbi4KCjIwMDItMDgtMjMgIFN0ZXBoZW4gQ2xhcmtlIDxzdGVwaGVuLmNsYXJrZUBzdXBlcmguY29tPiwKCSAgICBSaWNoYXJkIFNoYW5uIDxyaWNoYXJkLnNoYW5uQHN1cGVyaC5jb20+CgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBTZXQgTFNCIG9mIERUX0lOSVQKCXZhbHVlIGlmIC5pbml0IGlzIGFuIFNIbWVkaWEgZnVuY3Rpb24uICBTaW1pbGFybHkgZm9yIERUX0ZJTkkuCgkqIGVsZjY0LXNoNjQuYyAoc2g2NF9lbGY2NF9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoKMjAwMi0wOC0yMyAgU3RlcGhlbiBDbGFya2UgPHN0ZXBoZW4uY2xhcmtlQHN1cGVyaC5jb20+CgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogWmVybyBpbml0aWFsaXplCglkeW5hbWljIHNlY3Rpb24uCgkqIGVsZjY0LXNoNjQuYyAoc2g2NF9lbGY2NF9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCjIwMDItMDgtMjIgIEtheiBLb2ppbWEgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBlbGYtZWgtZnJhbWUuYyAoX2JmZF9lbGZfZGlzY2FyZF9zZWN0aW9uX2VoX2ZyYW1lKTogVXNlIGEgc2ltcGxlCglieXRlIHJlYWQgd2hlbiByZWFkaW5nIHRoZSByZXR1cm4gYWRkcmVzcyByZWdpc3RlciBjb2x1bW4uCgoyMDAyLTA4LTIyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnLmJmZDogQWRkIHBvd2VwYzY0LSotKmJzZCogdGFyZ2V0LgoKMjAwMi0wOC0yMiAgR3JhZW1lIFBldGVyc29uICA8Z3BAcW54LmNvbT4KCgkqIE1ha2VmaWxlLmFtOiBBZGQgZW50cmllcyBmb3IgZWxmMzItc2hxbnguYwoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmJmZDogQWRkIHN1cHBvcnQgc2gtKi1udG8qIHRhcmdldC4KCSogY29uZmlndXJlLmluOiBBZGQgc3VwcG9ydCBmb3IgYmZkX2VsZjMyX3Noe2x9cW54X3ZlYy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBlbGYzMi1xbnguaDogQ2hhbmdlZCB0eXBvICJlbGZfaTM4NnFueF8qIiB0byAiZWxmX3FueF8qIiAuCgkqIGVsZjMyLXNoLmM6IERvIG5vdCBpbmNsdWRlIGVsZjMyLXRhcmdldC5oIGlmCglFTEYzMl9TSF9DX0lOQ0xVREVEIGlzIGRlZmluZWQuCgkqIGVsZjMyLXNocW54LmM6IE5ldyBmaWxlOiBTdXBwb3J0IGZvciBRTlguCgkqIHRhcmdldHMuYzogQWRkIGJmZF9lbGYzMl9zaHtsfXFueF92ZWMuCgoyMDAyLTA4LTIyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vdHIucG86IFVwZGF0ZWQgVHVya2lzaCB0cmFuc2xhdGlvbi4KCgkqIHN5bXMuYyAoX2JmZF9nZW5lcmljX3JlYWRfbWluaXN5bWJvbHMpOiBTZXQgYmZkX2Vycm9yIGlmIHRoZQoJc3ltYm9scyBhcmUgbm90IHJlYWQuCgoyMDAyLTA4LTIyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItbTY4aGMxMS5jOiBGb3JtYXR0aW5nIGZpeGVzLgoJKGVsZjMyX202OGhjMTFfZ2NfbWFya19ob29rKTogQ29ycmVjdCBwYXJhbXMuICBSZW1vdmUgdW5uZWNlc3NhcnkgdGVzdC4KCSogZWxmMzItbTY4aGMxMi5jOiBGb3JtYXR0aW5nIGZpeGVzLgoJKGVsZjMyX202OGhjMTFfZ2NfbWFya19ob29rKTogQ29ycmVjdCBwYXJhbXMuICBSZW1vdmUgdW5uZWNlc3NhcnkgdGVzdC4KCjIwMDItMDgtMjIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb2ZmLXJzNjAwMC5jIChyczYwMDBjb2ZmX3ZlYyA8b2JqZWN0X2ZsYWdzPik6IEFkZCBTRUNfQ09ERSBhbmQKCVNFQ19EQVRBLgoJKHBtYWNfeGNvZmZfdmVjKTogTGlrZXdpc2UuCgkqIGNvZmY2NC1yczYwMDAuYyAocnM2MDAwY29mZjY0X3ZlYyk6IExpa2V3aXNlLgoJKGFpeDVjb2ZmNjRfdmVjKTogTGlrZXdpc2UuCgoyMDAyLTA4LTIyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLWJmZC5oIChzdHJ1Y3QgZWxmX2JhY2tlbmRfZGF0YSk6IEFkZCBzdHJ1Y3QgZWxmX2JhY2tlbmRfZGF0YQoJcGFyYW0gdG8gZWxmX2JhY2tlbmRfY29weV9pbmRpcmVjdF9zeW1ib2wuCgkoX2JmZF9lbGZfbGlua19oYXNoX2NvcHlfaW5kaXJlY3QpOiBMaWtld2lzZS4KCSogZWxmbGluay5oIChlbGZfYWRkX2RlZmF1bHRfc3ltYm9sLCBlbGZfZml4X3N5bWJvbF9mbGFncyk6IEFkanVzdAoJY2FsbHMgdG8gY29weV9pbmRpcmVjdF9zeW1ib2wuCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9zMzkwX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X2hhc2hfY29weV9pbmRpcmVjdCk6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5oIChfYmZkX21pcHNfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVsZi5jIChfYmZkX2VsZl9saW5rX2hhc2hfY29weV9pbmRpcmVjdCk6IExpa2V3aXNlLiAgUHJvcGVybHkKCXRlc3QgcmVmY291bnRzIGZvciAidXNlZCIgdmFsdWVzLgoKMjAwMi0wOC0yMSAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlQGhpYXVseTEuaGlhLm5yYy5jYT4KCgkqIGVsZi1laC1mcmFtZS5jIChfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhfZnJhbWUpOiBBZGQgUEFSQU1TIHRvCglhcmd1bWVudCBkZWNsYXJhdGlvbi4KCjIwMDItMDgtMTkgIEVsZW5hIFphbm5vbmkgPGV6YW5ub25pQHJlZGhhdC5jb20+CgoJKiBhcmNodXJlcy5jIChiZmRfbWFjaF9wcGNfZTUwMCk6IEFkZGVkLgoJKiBiZmQtaW4yLmg6IFJlYnVpbHQuCgkqIGNwdS1wb3dlcnBjLmMgKGJmZF9wb3dlcnBjX2FyY2hzKTogQWRkZWQgZTUwMC4KCjIwMDItMDgtMTkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1tNjhoYzEyLmMgKGVsZl9iYWNrZW5kX2Nhbl9nY19zZWN0aW9ucyk6IEZhbHNlLgoKMjAwMi0wOC0xNyAgQW5kcmV3IENhZ25leSAgPGFjMTMxMzEzQHJlZGhhdC5jb20+CgoJKiBlbGYuYyAoYmZkX2VsZl9nZXRfZWxmX3N5bXMpOiBDaGFuZ2UgdHlwZSBvZiBgZXN5bScgdG8KCWBiZmRfYnl0ZScuCgoyMDAyLTA4LTE3ICBTdGFuIENveCAgPHNjb3hAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9tb2RpZnlfc2VnbWVudF9tYXApOiBVc2UgdGhlCglJUklYIDYgc2VnbWVudCBsYXlvdXQgZm9yIE5FV0FCSS4KCjIwMDItMDgtMTYgIFN0ZXBoZW4gQ2xhcmtlIDxzdGVwaGVuLmNsYXJrZUBzdXBlcmguY29tPgoKCSogZWxmMzItc2guYyAoc2hfZWxmX2djX21hcmtfaG9vayk6IEZvciBzaDY0LCBza2lwIGluZGlyZWN0CglzeW1ib2xzIHdoZW4gbG9va2luZyBmb3Igc2VjdGlvbiByZWZlcnJlZCB0byBieSBhIHJlbG9jYXRpb24uCgkqIGVsZjY0LXNoLmMgKHNoX2VsZjY0X2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoKMjAwMi0wOC0xNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLWkzNzAuYzogTW92ZSByZWxvYyBlbnVtIHRvIGluY2x1ZGUvZWxmL2kzNzAuaC4KCjIwMDItMDgtMTUgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogZWxmMzItY3Jpcy5jIChlbGZfY3Jpc19kaXNjYXJkX2V4Y2Vzc19wcm9ncmFtX2R5bmFtaWNzKTogQWRkCgltaXNzaW5nIGNoZWNrIGZvciB3aGV0aGVyIHRoZSBzeW1ib2wgaXMgcmVmZXJlbmNlZCBieSBEU08gYmVmb3JlCgl1bmV4cG9ydGluZyBpdCBhcyBhbiB1bm5lZWRlZCBkeW5hbWljIHN5bWJvbC4KCjIwMDItMDgtMTQgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgoyMDAyLTA4LTE0ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZy5iZmQ6IEFsd2F5cyBhZGQgNjRiaXQgdmVjdG9ycyB0byAzMmJpdCBMaW51eC9taXBzLgoKMjAwMi0wOC0xNCAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBlbGYzMi1tNjhoYzExLmMgKG02OGhjMTFfcmVsYXhfZ3JvdXApOiBOZXcgdG8gcmVsYXggZ3JvdXAgb2YKCWluc3RydWN0aW9ucy4KCShtNjhoYzExX2RpcmVjdF9yZWxheCk6IE5ldyB0byBkZWZpbmUgdGFibGUgb2YgcmVsYXhhYmxlIGluc3RydWN0aW9ucy4KCShmaW5kX3JlbGF4YWJsZV9pbnNuKTogTmV3LCBmaW5kIGEgcmVsYXhhYmxlIGluc24uCgkoY29tcGFyZV9yZWxvYyk6IE5ldyB0byBjb21wYXJlIHR3byByZWxvY3MuCgkobTY4aGMxMV9lbGZfcmVsYXhfc2VjdGlvbik6IE5ldywgcmVsYXggdGV4dCBzZWN0aW9ucy4KCShtNjhoYzExX2VsZl9yZWxheF9kZWxldGVfYnl0ZXMpOiBOZXcsIGRlbGV0ZSBieXRlcyBhbmQgYWRqdXN0IGJyYW5jaHMuCgkoZWxmMzJfbTY4aGMxMV9jaGVja19yZWxvY3MpOiBOZXcgZnVuY3Rpb24gZm9yIEdDIHN1cHBvcnQuCgkoZWxmMzJfbTY4aGMxMV9yZWxvY2F0ZV9zZWN0aW9uKTogTmV3IGZ1bmN0aW9uIGZvciBHQyBzdXBwb3J0LgoJKGJmZF9lbGYzMl9iZmRfcmVsYXhfc2VjdGlvbik6IERlZmluZSB0byBzdXBwb3J0IGxpbmtlciByZWxheGF0aW9uLgoJKGVsZl9iYWNrZW5kX2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLgoJKGVsZl9iYWNrZW5kX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDItMDgtMTMgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChOQU1FKGJmZF9lbGYsc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogRG9uJ3QgY291bnQKCWRlZmluaXRpb25zIGluIHNoYXJlZCBvYmplY3RzIHdoZW4gY2hlY2tpbmcgc3ltYm9sIHdpdGgKCXVuZGVmaW5lZCB2ZXJzaW9uLgoKMjAwMi0wOC0xMyAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBlbGYzMi1tNjhoYzExLmMgKGVsZjMyX202OGhjMTFfZ2NfbWFya19ob29rKTogTmV3IGZvciBzZWN0aW9uIEdDLgoJKGVsZjMyX202OGhjMTFfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKGVsZl9iYWNrZW5kX2djX21hcmtfaG9vayk6IERlZmluZSBmb3IgR0Mgc2VjdGlvbiBzdXBwb3J0LgoJKGVsZl9iYWNrZW5kX2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCShlbGZfYmFja2VuZF9jYW5fZ2Nfc2VjdGlvbnMpOiBMaWtld2lzZS4KCgkqIGVsZjMyLW02OGhjMTIuYzogTGlrZXdpc2UuCgoyMDAyLTA4LTEzICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGVsZjMyLW02OGhjMTEuYyAoX2JmZF9tNjhoYzExX2VsZl9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogTmV3LgoJKF9iZmRfbTY4aGMxMV9lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IE5ldyBmdW5jdGlvbi4KCShfYmZkX202OGhjMTFfZWxmX3NldF9wcml2YXRlX2ZsYWdzKTogTmV3IGZ1bmN0aW9uLgoJVXNlIHRoZW0gdG8gc2V0L2NoZWNrL3ByaW50IEVMRiBmbGFncyBzcGVjaWZpYyB0byA2OEhDMTEuCgoJKiBlbGYzMi1tNjhoYzEyLmMgKF9iZmRfbTY4aGMxMl9lbGZfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IE5ldy4KCShfYmZkX202OGhjMTJfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBOZXcgZnVuY3Rpb24uCgkoX2JmZF9tNjhoYzEyX2VsZl9zZXRfcHJpdmF0ZV9mbGFncyk6IE5ldyBmdW5jdGlvbi4KCVVzZSB0aGVtIHRvIHNldC9jaGVjay9wcmludCBFTEYgZmxhZ3Mgc3BlY2lmaWMgdG8gNjhIQzEyLgoKMjAwMi0wOC0xMyAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBlbGYzMi1tNjhoYzExLmMgKGVsZl9tNjhoYzExX2hvd3RvX3RhYmxlKTogQWRkIHRoZSBuZXcgcmVsb2NzOwoJZml4IG1hc2tzIGZvciBQQy1yZWwgcmVsb2NzLgoJKG02OGhjMTFfZWxmX2lnbm9yZV9yZWxvYyk6IE5ldyBmdW5jdGlvbi4KCgkqIGVsZjMyLW02OGhjMTIuYyAobTY4aGMxMl9lbGZfc3BlY2lhbF9yZWxvYyk6IE5ldyB0byBoYW5kbGUgc3BlY2lmaWMKCTY4SEMxMiBiYW5rZWQgYWRkcmVzc2luZyByZWxvY3MuCgkobTY4aGMxMl9waHlzX2FkZHIpOiBOZXcgdG8gY29tcHV0ZSBwaHlzaWNhbCBhZGRyZXNzIG9mIGJhbmtlZCBtZW1vcnkuCgkobTY4aGMxMl9waHlzX3BhZ2UpOiBMaWtld2lzZSBmb3IgcGFnZS4KCShtNjhoYzEyX2FkZHJfaXNfYmFua2VkKTogTmV3IHRvIHNlZSBpZiBhZGRyZXNzIGlzIGluIGJhbmtlZCBhcmVhLgoJKGVsZl9tNjhoYzEyX2hvd3RvX3RhYmxlKTogQWRkIG5ldyByZWxvY3MgYW5kIHJlbmFtZSB0byB4eDEyLgoKMjAwMi0wOC0xMyAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiByZWxvYy5jIChCRkRfUkVMT0NfTTY4SEMxMV9STF9KVU1QLCBCRkRfUkVMT0NfTTY4SEMxMV9STF9HUk9VUCwKCUJGRF9SRUxPQ19NNjhIQzExX0xPMTYsIEJGRF9SRUxPQ19NNjhIQzExX1BBR0UsCglCRkRfUkVMT0NfTTY4SEMxMV8yNCk6IE5ldyByZWxvY3MgZm9yIDY4SEMxMS82OEhDMTIuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDItMDgtMTIgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChlbGZfYWRkX2RlZmF1bHRfc3ltYm9sKTogUHJlc2VydmUgc2VjdGlvbiBhY3Jvc3MKCWVsZl9tZXJnZV9zeW1ib2wuCgoyMDAyLTA4LTA5ICBHcmFlbWUgUGV0ZXJzb24gIDxncEBxbnguY29tPgoKCSogTWFrZWZpbGUuYW06IEFkZCBlbnRyaWVzIGZvciBlbGYzMi1wcGNxbnguYywgYW5kIGFkZAoJZWxmMzItcW54LmggZGVwZW5kZW5jeSB0byBlbGZhcm1xbngtbmFiaS5jIGFuZCBlbGYzMi1pMzg2cW54LmMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWcuYmZkOiBBZGQgc3VwcG9ydCBmb3IgcG93ZXJwY3tsZX0tKi1udG8gdGFyZ2V0cy4KCSogY29uZmlndXJlLmluOiBBZGQgc3VwcG9ydCBmb3IgYmZkX2VsZjMyX3Bvd2VycGN7bGV9cW54X3ZlYy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBlbGYzMi1pMzg2cW54LmM6IE1vdmVkIGJhY2tlbmQgZnVuY3Rpb25zIGludG8gYSBRTlggc3BlY2lmaWMKCWNvbW1vbiBmaWxlICJlbGYzMi1xbnguaCIsIGFuZCBub3cgaW5jbHVkZSB0aGF0IGZpbGUuCgkqIGVsZjMyLXFueC5oOiBOZXcgZmlsZTogUU5YIHNwZWNpZmljIGNvbW1vbiBlbGYgYmFja2VuZC4KCSogZWxmMzItcHBjLmM6IERvIG5vdCBpbmNsdWRlIGVsZjMyLXRhcmdldC5oIGlmCglFTEYzMl9QUENfQ19JTkNMVURFRCBpcyBkZWZpbmVkLgoJKiBlbGYzMi1wcGNxbnguYzogTmV3IGZpbGU6IFN1cHBvcnQgZm9yIFFOWC4KCSogZWxmYXJtcW54LW5hYmkuYzogSW5jbHVkZSBlbGYzMi1xbnguaCBmb3IgcW54IGVsZiBiYWNrZW5kLgoJKiB0YXJnZXRzLmM6IEFkZCBiZmRfZWxmMzJfcG93ZXJwY3tsZX1xbnhfdmVjLgoKMjAwMi0wOC0wOSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL3N2LnBvOiBVcGRhdGVkIFN3ZWRpc2ggdHJhbnNsYXRpb24uCgoyMDAyLTA4LTA5ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9nbG9iYWxfZ290X2luZGV4KTogQXZvaWQgc2VnZmF1bHQgaWYKCWctPmdsb2JhbF9nb3RzeW0gaXMgTlVMTC4KCjIwMDItMDgtMDggIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChlbGZfYWRkX2RlZmF1bHRfc3ltYm9sKTogRG9uJ3Qgd2FybiBpZiBhIGRlZmluaXRpb24KCW92ZXJyaWRlcyBhbiBpbmRpcmVjdCB2ZXJzaW9uZWQgc3ltYm9sLgoKMjAwMi0wOC0wOCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBGaWxsIGluIHByb3BlciBhZGRlbmQKCWZvciBSXzM4Nl9UTFNfVFBPRkYzMiByZWxvY3MgYWdhaW5zdCBzeW1uZHggMC4KCjIwMDItMDgtMDcgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChOQU1FKGJmZF9lbGYsc2l6ZV9keW5hbWljX3NlY3Rpb25zKSk6IENoZWNrIHN5bWJvbAoJd2l0aCB1bmRlZmluZWQgdmVyc2lvbiBpZiBuZWVkZWQuCgkoZWxmX2xpbmtfYXNzaWduX3N5bV92ZXJzaW9uKTogTWF0Y2ggYSBkZWZhdWx0IHN5bWJvbCB3aXRoIGEKCXZlcnNpb24gd2l0aG91dCBkZWZpbml0aW9uLiBObyBuZWVkIHRvIGhpZGUgdGhlIGRlZmF1bHQKCWRlZmluaXRpb24gc2VwYXJhdGVseS4KCjIwMDItMDgtMDggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX291dHB1dF9leHRzeW0pOiBEb24ndCBvdXRwdXQgc3ltYm9scyBmcm9tCglTRUNfRVhDTFVERSBzZWN0aW9ucy4KCgkqIGFvdXR4LmggKGFvdXRfbGlua193cml0ZV9zeW1ib2xzKTogQ29ycmVjdCBoYW5kbGluZyBvZiB3YXJuaW5nIHN5bXMuCgoyMDAyLTA4LTA3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKGVkaXRfb3BkKTogQXJyYW5nZSB0byBkcm9wIHN5bWJvbHMgZm9yIGRpc2NhcmRlZCAub3BkCgllbnRyaWVzLgoKMjAwMi0wOC0wNyAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfY3JlYXRlX2R5bmFtaWNfcmVsb2NhdGlvbik6IENhc3Qgc2lnbmVkbmVzcwoJbWlzbWF0Y2guCgoyMDAyLTA4LTA3ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmeHgtbWlwcy5jIChBQklfNjRfUCk6IFJlbW92ZSBzdXBlcmZsdW91cyBjaGVjay4KCjIwMDItMDgtMDcgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGYzMi1taXBzLmMgKG1pcHNfcmVsb2NfbWFwKTogRml4IHR5cG8uCgoyMDAyLTA4LTA2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogeGNvZmZsaW5rLmMgKHhjb2ZmX3dyaXRlX2dsb2JhbF9zeW1ib2wpOiBTZXQgbl9zY251bSBmb3IgYWJzX3NlY3Rpb24uCgoyMDAyLTA4LTA2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9ob3d0b19yYXcpOiBaZXJvIGFsbCBzcmNfbWFzayBlbnRyaWVzLgoKMjAwMi0wOC0wNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxpYnhjb2ZmLmg6IFVzZSBQQVJBTVMgb24gZnVuY3Rpb24gZGVjbGFyYXRpb25zLgoJKiBjb2ZmLXJzNjAwMC5jICh4Y29mZl9nZW5lcmF0ZV9ydGluaXQpOiBTaW1wbGlmeSBzaXplIGNhbGMuCgkqIGNvZmY2NC1yczYwMDAuYyAoeGNvZmY2NF9nZW5lcmF0ZV9ydGluaXQpOiBMaWtld2lzZS4KCgkqIGNvZmYtcnM2MDAwLmM6ICh4Y29mZl9ydHlwZTJob3d0byk6IERvbid0IHBsYWNlIHJlbG9jIGFkZHJlc3MgaW4KCWFkZGVuZC4KCSogY29mZjY0LXJzNjAwMC5jOiAoeGNvZmY2NF9ydHlwZTJob3d0byk6IExpa2V3aXNlLgoKMjAwMi0wOC0wNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvZmYtcnM2MDAwLmM6IEZvcm1hdHRpbmcgZml4ZXMuCgkoeGNvZmZfY2FsY3VsYXRlX3JlbG9jYXRpb24pOiBVc2UgUEFSQU1TIGluIGRlY2xhcmF0aW9uLgoJKHhjb2ZmX2NvbXBsYWluX292ZXJmbG93KTogTGlrZXdpc2UuCgkoeGNvZmZfcHBjX3JlbG9jYXRlX3NlY3Rpb24pOiBVc2Ugb2xkLXN0eWxlIGZ1bmN0aW9uIHBvaW50ZXIgY2FsbC4KCShiZmRfeGNvZmZfYmFja2VuZF9kYXRhKTogUmVtb3ZlIHVzZWxlc3MgY29tbWVudHMuCgkocnM2MDAwY29mZl92ZWMpOiBMaWtld2lzZS4KCShiZmRfcG1hY194Y29mZl9iYWNrZW5kX2RhdGEpOiBMaWtld2lzZS4KCShwbWFjX3hjb2ZmX3ZlYyk6IExpa2V3aXNlLgoKCSogY29mZjY0LXJzNjAwMC5jOiBGb3JtYXR0aW5nIGZpeGVzLgoJKHhjb2ZmNjRfY2FsY3VsYXRlX3JlbG9jYXRpb24pOiBVc2UgUEFSQU1TIGluIGRlY2xhcmF0aW9uLgoJKHhjb2ZmNjRfcHBjX3JlbG9jYXRlX3NlY3Rpb24pOiBVc2Ugb2xkLXN0eWxlIGZ1bmN0aW9uIHBvaW50ZXIgY2FsbC4KCShiZmRfeGNvZmZfYmFja2VuZF9kYXRhKTogUmVtb3ZlIHVzZWxlc3MgY29tbWVudHMuCgkocnM2MDAwY29mZjY0X3ZlYyk6IExpa2V3aXNlLgoJKGJmZF94Y29mZl9haXg1X2JhY2tlbmRfZGF0YSk6IExpa2V3aXNlLgoJKGFpeDVjb2ZmNjRfdmVjKTogTGlrZXdpc2UuCgoyMDAyLTA4LTA2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29mZi1yczYwMDAuYyAoeGNvZmZfaG93dG9fdGFibGUpOiBSZXZlcnQgc29tZSBvZiBsYXN0IGNoYW5nZSB0bwoJbWFzayBlbnRyaWVzLiAgVXNlIGNvbXBsYWluX292ZXJmbG93X2RvbnQgZm9yIFJfUkVGLgoJKHhjb2ZmX3JlbG9jX3R5cGVfYmEpOiBSZXZlcnQgbGFzdCBjaGFuZ2UuCgkoeGNvZmZfcmVsb2NfdHlwZV9icik6IExpa2V3aXNlLgoJKHhjb2ZmX3JlbG9jX3R5cGVfY3JlbCk6IExpa2V3aXNlLgoJKHhjb2ZmX3BwY19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGNvZmY2NC1yczYwMDAuYyAoeGNvZmY2NF9yZWxvY190eXBlX2JyKTogTGlrZXdpc2UuCgkoeGNvZmY2NF9wcGNfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKHhjb2ZmNjRfaG93dG9fdGFibGUpOiBSZXZlcnQgc29tZSBvZiBsYXN0IGNoYW5nZSB0byBtYXNrIGVudHJpZXMuCglVc2UgY29tcGxhaW5fb3ZlcmZsb3dfZG9udCBmb3IgUl9SRUYuCgoJKiBjb2ZmLXJzNjAwMC5jICh4Y29mZl9ob3d0b190YWJsZSk6IEZpeCBzcmNfbWFzayBlbnRyaWVzLiAgTWFrZSBhbGwKCXJlbG9jcyB3aXRoIGJpdHNpemUgPT0gMTYgaGF2ZSBzaXplID0gMS4KCSh4Y29mZl9yZWxvY190eXBlX2JhKTogQ29ycmVjdCBzcmNfbWFzayBhbmQgZHN0X21hc2sgYWRqdXN0bWVudC4KCSh4Y29mZl9yZWxvY190eXBlX2JyKTogTGlrZXdpc2UuCgkoeGNvZmZfcmVsb2NfdHlwZV9jcmVsKTogTGlrZXdpc2UuCgkoeGNvZmZfcHBjX3JlbG9jYXRlX3NlY3Rpb24pOiBTZXQgdXAgc3JjX21hc2sgYW5kIGRzdF9tYXNrIGNvcnJlY3RseS4KCSogY29mZjY0LXJzNjAwMC5jICh4Y29mZjY0X3JlbG9jX3R5cGVfYnIpOiBDb3JyZWN0IHNyY19tYXNrIGFuZAoJZHN0X21hc2sgYWRqdXN0bWVudC4KCSh4Y29mZjY0X3BwY19yZWxvY2F0ZV9zZWN0aW9uKTogU2V0IHVwIHNyY19tYXNrIGFuZCBkc3RfbWFzayBjb3JyZWN0bHkuCgkoeGNvZmY2NF9ob3d0b190YWJsZSk6IEZpeCBzcmNfbWFzayBlbnRyaWVzLiAgTWFrZSBhbGwgcmVsb2NzIHdpdGgKCWJpdHNpemUgPT0gMTYgaGF2ZSBzaXplID0gMS4KCjIwMDItMDgtMDEgIERlbmlzIENoZXJ0eWtvdiAgPGRlbmlzY0BvdmVydGEucnU+CgoJKiBlbGYzMi1pcDJrLmM6IFByb2Nlc3NvciBtYW51ZmFjdHVyZXIgY2hhbmdlZCB0byBVYmljb20uCgkoc3RydWN0IG1pc2MpOiBOZXcgZmllbGQgaXN5bWJ1Zi4gQWxsIGZyZWVfKiBmaWVsZHMgcmVtb3ZlZC4KCShzeW1ib2xfdmFsdWUpOiBQYXNzIGluIGludGVybmFsIHN5bXMuIE5vIG5lZWQgdG8gc3dhcCBzeW1zIGluLgoJKGlwMmtfZWxmX3JlbGF4X3NlY3Rpb24pOiBVc2UgYmZkX2VsZl9nZXRfZWxmX3N5bXMuIFByb3Blcmx5IGZyZWUKCXBvc3NpYmx5IGNhY2hlZCBpbmZvLgoJKHRpZHl1cF9hZnRlcl9lcnJvcik6IFJlbW92ZWQuCgkoaXAya19lbGZfcmVsYXhfc2VjdGlvbl9wYXNzMSk6IERvbid0IHVzZSByZW1vdmVkIGZpZWxkcyBvZiBzdHJ1Y3QKCW1pc2MuIFVzZSBuZXcgZmllbGQuCgkoYWRqdXN0X2FsbF9yZWxvY2F0aW9ucyk6IFVzZSBpbnRlcm5hbCBzeW1zLiBObyBuZWVkIHRvIHN3YXAgc3ltcwoJaW4gYW5kIG91dC4KCShhZGRfcGFnZV9pbnNuKTogRG9uJ3QgdXNlIHJlbW92ZWQgZmllbGRzIG9mIHN0cnVjdCBtaXNjLgoKMjAwMi0wOC0wMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLWFybS5oOiBSZXZlcnQgcHJldmlvdXMgZGVsdGEuCgoyMDAyLTA4LTAxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmluIChBTV9JTklUX0FVVE9NQUtFKTogQnVtcCB2ZXJzaW9uIG51bWJlci4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wNy0zMSAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBjb25maWcuYmZkOiBBZGQgeDg2LTY0IHZlY3RvciB0byBMaW51eC9pMzg2IGlmIDY0Yml0IEJGRCBpcwoJc2VsZWN0ZWQuCgoyMDAyLTA3LTMxICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZy5iZmQ6IEFkZCBuMzIgdmVjdG9ycyB0byAzMmJpdCBMaW51eC9taXBzIGlmIDY0Yml0IEJGRAoJaXMgc2VsZWN0ZWQuCgoyMDAyLTA3LTMxICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBTd2FwIHRsc190eXBlCglpZiBfYmZkX2VsZl9saW5rX2hhc2hfY29weV9pbmRpcmVjdCB3aWxsIHN3YXAgZ290LnJlZmNvdW50LgoKMjAwMi0wNy0zMSAgSWFuIERhbGwgIDxpYW5Ac2lieWwuYmV3YXJlLmRyb3BiZWFyLmlkLmF1PgoKCSogY3B1LW5zMzJrLmMgKF9iZmRfbnMzMmtfcHV0X2ltbWRlaWF0ZSwgX2JmZF9uczMya19nZXRfaW1tZWRpYXRlKToKCVRoZXJlIGlzIG5vIDggYnl0ZSByZWxvY2F0aW9uIHR5cGUgZm9yIHRoaXMgYXJjaGl0ZWN0dXJlLgoJKGRvX25zMzJrX3JlbG9jKTogVXNlIGJmZF92bWEgaW5zdGVhZCBvZiBuYXRpdmUgdHlwZXMuCgkoYmZkX25zMzJrX3B1dF9pbW1lZGlhdGUsIF9iZmRfbnMzMmtfcmVsb2NhdGVfY29udGVudHMpIHB1dF9kYXRhCglyZXR1cm5zIHZvaWQuCgkoX2JmZF9uczMya19wdXRfZGlzcGxhY2VtZW50KTogRG9uJ3QgY2hlY2sgZm9yIG92ZXJmbG93LiBXZSBjYW4KCXJlbHkgb24gZ2VuZXJpYyBjb2RlIHRvIGRvIHRoYXQuCgkqIGFvdXQtbnMzMmsuYyAoaG93dG9fdGFibGUpOiBBZGQgYXBwcm9wcmlhdGUgb3ZlcmZsb3cgZGV0ZWN0aW9uCgl0byBhbGwgdGFibGUgZW50cmllcy4KCShfYmZkX25zMzJrX3JlbG9jYXRlX2NvbnRlbnRzKTogcHV0X2RhdGEgcmV0dXJucyB2b2lkLgoJKiBuczMyay5oOiAoX2JmZF9uczMya19wdXRfZGlzcGxhY2VtZW50LCBfYmZkX25zMzJrX3B1dF9pbW1lZGlhdGUpCgkoX2JmZF9kb19uczMya19yZWxvY19jb250ZW50cyk6IEZpeCBwcm90b3R5cGVzLiBwdXQgZGF0YSBmdW5jdGlvbnMKCXJldHVybiB2b2lkLgoKMjAwMi0wNy0zMSAgSWFuIERhbGwgIDxpYW5Ac2lieWwuYmV3YXJlLmRyb3BiZWFyLmlkLmF1PgoKCSogYW91dHguaCAoYW91dF9saW5rX2NoZWNrX2FyX3N5bWJvbHMpOiBXaGV0aGVyIHRvIGluY2x1ZGUgYW4KCWFyY2hpdmUgb2JqZWN0IGlzIHRhcmdldCBkZXBlbmRhbnQuCgoyMDAyLTA3LTMxICBBZGFtIE5lbWV0ICA8YW5lbWV0QGxueHcuY29tPgoKCSogZWxmMzItYXJtLmggKEFSTV9QTFRfRU5UUllfU0laRSk6IFJlbmFtZSBQTFRfRU5UUllfU0laRS4KCShUSFVNQl9QTFRfRU5UUllfU0laRSk6IE5ldyBtYWNyby4KCShQTFRfRU5UUllfU0laRSk6IFJldHVybiB0aGUgYXBwcm9wcmlhdGUgKl9QTFRfRU5UUllfU0laRS4KCShlbGYzMl9hcm1fcGx0MF9lbnRyeSk6IFJlbmFtZSBQTFRfRU5UUllfU0laRSB0bwoJQVJNX1BMVF9FTlRSWV9TSVpFLgoJKGVsZjMyX2FybV9wbHRfZW50cnkpOiBMaWtld2lzZS4KCShlbGZfYmFja2VuZF9wbHRfaGVhZGVyX3NpemUpOiBMaWtld2lzZS4KCShlbGYzMl90aHVtYl9wbHQwX2VudHJ5KTogTmV3IGdsb2JhbC4KCShlbGYzMl9hcm1fZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBVc2UgaXQuICBQdXQgVGh1bWIgZW50cmllcwoJaW50byAucGx0LnRodW1iLgoJKGVsZjMyX3RodW1iX3BsdF9lbnRyeSk6IE5ldyBnbG9iYWwuCgkoZWxmMzJfYXJtX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IFVzZSBpdC4gIFVzZSAudGh1bWIucGx0IGZvcgoJVGh1bWIgZW50cmllcy4gIFNldCB0aGUgYm90dG9tIGJpdCBvZiB0aGUgY29ycmVzcG9uZGluZyBHT1QgZW50cnkKCWZvciBhIFRodW1iIFBMVCBlbnRyeS4KCShzdHJ1Y3QgZWxmMzJfYXJtX3BsdF9lbnRyeV9pbmZvKTogTmV3IHN0cnVjdHVyZS4KCShzdHJ1Y3QgZWxmMzJfYXJtX2xpbmtfaGFzaF9lbnRyeSwgcGx0X2luZm8pOiBOZXcgbWVtYmVyIG9mIHRoaXMKCXR5cGUuCgkoZWxmMzJfYXJtX2xpbmtfaGFzaF9uZXdmdW5jKTogSW5pdGlhbGl6ZSBuZXcgbWVtYmVyLgoJKGVsZjMyX2FybV9maW5hbF9saW5rX3JlbG9jYXRlLCBSX0FSTV9USE1fUEMyMiBjYXNlKTogSGFuZGxlCglyZWxvY2F0aW9ucyBhZ2FpbnN0IHRoZSBQTFQuCgkoZWxmMzJfYXJtX2NoZWNrX3JlbG9jcywgY2FzZSBSX0FSTV9QTFQzMiBjYXNlKTogU2V0CglmaXJzdF9yZWxfdHlwZSBpZiB0aGlzIGlzIHRoZSBmaXJzdCB0aW1lIHdlIGVuY291bnRlciB0aGUgc3ltYm9sLgoJKGVsZjMyX2FybV9jaGVja19yZWxvY3MsIGNhc2UgUl9BUk1fVEhNX1BDMjIgY2FzZSk6IE5ldyBjYXNlLgoJRGV0ZXJtaW5lIGlmIHJlbG9jYXRpb24gbmVlZHMgYSBQTFQgZW50cnkuICBTZXQgZmlyc3RfcmVsX3R5cGUgaWYKCXRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgd2UgZW5jb3VudGVyIHRoZSBzeW1ib2wKCShlbGYzMl9hcm1fYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogQ3JlYXRlIFBMVCBlbnRyaWVzIGZvciBUaHVtYgoJZnVuY3Rpb25zIGFzIHdlbGwuCgkoZWxmMzJfYXJtX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IEhhbmRsZSAucGx0LnRodW1iIGxpa2UgLnBsdC4KCShlbGYzMl9hcm1fY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBOZXcgZnVuY3Rpb24uICBDcmVhdGUgdGhlCgkucGx0LnRodW1iIHNlY3Rpb24uCgkoZWxmX2JhY2tlbmRfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBDYWxsIGl0LgoKMjAwMi0wNy0zMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGJmZC5jIChiZmRfYWx0X21hY2hfY29kZSk6IFJlbmFtZSBwYXJhbWV0ZXIgJ2luZGV4JyB0bwoJJ2FsdGVybmF0aXZlJyBpbiBvcmRlciB0byBhdm9pZCBzaGFkb3dpbmcgZ2xvYmFsIHN5bWJvbCBvZiB0aGUKCXNhbWUgbmFtZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogbGliY29mZi5oOiBSZWdlbmVyYXRlLgoKMjAwMi0wNy0zMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIE1ha2VmaWxlLmFtOiBBZGQgbjMyIEFCSSBzdXBwb3J0LgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmJmZDogQWRkIG4zMiB2ZWN0b3JzIHRvIG1pcHM2NCotKi1saW51eCogdGFyZ2V0cy4gVHJlYXQgNjQKCWJpdCB2ZWN0b3JzIGZvciBtaXBzKi0qLWxpbnV4IHRhcmdldHMgYXMgb3B0aW9uYWwuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIG4zMiBBQkkgdmVjdG9ycy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBlbGYzMi1taXBzLmMgKG1pcHNfZWxmMzJfb2JqZWN0X3ApOiBSZWplY3QgbjMyIEFCSSBmaWxlcy4KCSogZWxmbjMyLW1pcHMuYzogTmV3IGZpbGUsIG4zMiBBQkkgc3VwcG9ydC4KCSogdGFyZ2V0cy5jOiBBZGQgbjMyIEFCSSB2ZWN0b3JzLgoKMjAwMi0wNy0zMCAgR3JhZW1lIFBldGVyc29uICA8Z3BAcW54LmNvbT4KCgkqIGVsZmFybXFueC1uYWJpLmM6IE5ldyBmaWxlOiBTdXBwb3J0IGZvciBRTlguCgkqIGNvbmZpZy5iZmQ6IEFkZCBzdXBwb3J0IGZvciBhcm0tKi1udG8gdGFyZ2V0LgoJKiBjb25maWd1cmUuaW46IEFkZCBzdXBwb3J0IGZvciBiZmRfZWxmMzJfe2JpZ3xsaXR0bGV9YXJtcW54X3ZlYy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBNYWtlZmlsZS5hbTogQWRkIGVudHJpZXMgZm9yIGVsZmFybXFueC1uYWJpLmMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBlbGYzMi1hcm0uaCAoRUxGX01BWFBBR0VTSVpFKTogRG8gbm90IGRlZmluZSBpZiBhbHJlYWR5IGRlZmluZWQuCglEbyBub3QgZGVmaW5lIGdsb2JhbCBmdW5jdGlvbiBpZiBFTEZBUk1fTkFCSV9DX0lOQ0xVREVEIGlzIGRlZmluZWQuCgkqIGVsZmFybS1uYWJpLmM6IERvIG5vdCBpbmNsdWRlIGVsZjMyLWFybS5oIGlmCglFTEZBUk1fTkFCSV9DX0lOQ0xVREVEIGlzIGRlZmluZWQuCgkqIHRhcmdldHMuYzogQWRkIGJmZF9lbGYzMl97YmlnfGxpdHRsZX1hcm1xbnhfdmVjLgoKMjAwMi0wNy0zMCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL3N2LnBvOiBVcGRhdGVkIFN3ZWRpc2ggdHJhbnNsYXRpb24uCgoyMDAyLTA3LTMwICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZi5jIChlbGZfZmFrZV9zZWN0aW9ucyk6IEZpeCB1cCAudGJzcyBzaF9zaXplIGFuZCBzaF90eXBlLgoKMjAwMi0wNy0zMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGFvdXR4LmggKHNvbWVfYW91dF9vYmplY3RfcCk6IENsZWFuIHVwIHRkYXRhIHByb3Blcmx5IG9uIGVycm9yLgoJKiBhcmNoaXZlLmMgKGJmZF9nZW5lcmljX2FyY2hpdmVfcCk6IExpa2V3aXNlLgoJKiBjb2ZmLXJzNjAwMC5jIChfYmZkX3hjb2ZmX2FyY2hpdmVfcCk6IExpa2V3aXNlLgoJKF9iZmRfeGNvZmZfYXJjaGl2ZV9wKTogVXNlIGJmZF9zY2FuX3ZtYSBpbiBwbGFjZSBvZiBzdHJ0b2wuCgkqIGNvZmY2NC1yczYwMDAuYyAoeGNvZmY2NF9zbHVycF9hcm1hcCk6IExpa2V3aXNlLgoJKHhjb2ZmNjRfYXJjaGl2ZV9wKTogTGlrZXdpc2UuCgkoeGNvZmY2NF9vcGVucl9uZXh0X2FyY2hpdmVkX2ZpbGUpOiBMaWtld2lzZS4KCSh4Y29mZjY0X2FyY2hpdmVfcCk6IENsZWFuIHVwIHRkYXRhIHByb3Blcmx5IG9uIGVycm9yLgoJKiBjb2ZmZ2VuLmMgKGNvZmZfcmVhbF9vYmplY3RfcCk6IExpa2V3aXNlLgoJKGNvZmZfb2JqZWN0X3ApOiBSZWxlYXNlIGZpbGVoZHIgYW5kIG9wdGhkci4KCSogZWNvZmYuYyAoX2JmZF9lY29mZl9hcmNoaXZlX3ApOiBDbGVhbiB1cCB0ZGF0YSBwcm9wZXJseSBvbiBlcnJvci4KCSogaWVlZS5jIChpZWVlX2FyY2hpdmVfcCk6IExpa2V3aXNlLgoJKiBpaGV4LmMgKGloZXhfb2JqZWN0X3ApOiBMaWtld2lzZS4KCShpaGV4X21rb2JqZWN0KTogQWx3YXlzIGFsbG9jYXRlIHRkYXRhLgoJKiBwZWljb2RlLmggKHBlX0lMRl9vYmplY3RfcCk6IFJlbGVhc2UgYmZkX2FsbG9jJ2QgYnVmZmVyIG9uIGVycm9yLgoJKiBzcmVjLmMgKHNyZWNfbWtvYmplY3QpOiBBbHdheXMgYWxsb2NhdGUgdGRhdGEuCgkoc3JlY19vYmplY3RfcCk6IENsZWFuIHVwIHRkYXRhIHByb3Blcmx5IG9uIGVycm9yLgoJKHN5bWJvbHNyZWNfb2JqZWN0X3ApOiBMaWtld2lzZS4KCSogdmVyc2Fkb3MuYyAodmVyc2Fkb3Nfb2JqZWN0X3ApOiBMaWtld2lzZS4KCSogdm1zLW1pc2MuYyAoX2JmZF92bXNfZ2V0X3JlY29yZCk6IFVzZSBiZmRfbWFsbG9jIGluc3RlYWQgb2YgbWFsbG9jLAoJYW5kIGJmZF9yZWFsbG9jIGluc3RlYWQgb2YgcmVhbGxvYy4KCShhZGRfbmV3X2NvbnRlbnRzKTogVXNlIGJmZF9hbGxvYyBpbnN0ZWFkIG9mIGJmZF9tYWxsb2MgZm9yIHNlY3Rpb25zLgoJKiB2bXMuYyAodm1zX2luaXRpYWxpemUpOiBBbHdheXMgYWxsb2NhdGUgdGRhdGEuICBVc2UgYmZkX2FsbG9jIGluCglwbGFjZSBvZiBiZmRfbWFsbG9jLCBzaW1wbGlmeWluZyBlcnJvciBmcmVlaW5nLiAgRnJlZSBoYXNoIHRhYmxlIHRvby4KCSh2bXNfb2JqZWN0X3ApOiBDbGVhbiB1cCB0ZGF0YSBvbiBlcnJvci4KCSh2bXNfbWtvYmplY3QpOiBEb24ndCBjb21wbGFpbiBvbiBzdGRlcnIgaWYgdm1zX2luaXRpYWxpemUgZmFpbHMuCgkodm1zX2Nsb3NlX2FuZF9jbGVhbnVwKTogQWRqdXN0IGZvciBiZmRfYWxsb2MgdXNlLgoKMjAwMi0wNy0zMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogU2V0IGVfZmxhZ3MuCgoyMDAyLTA3LTI2ICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBNZXJnZSBBU0UKCWZsYWdzIGludG8gcmVzdWx0aW5nIEJGRC4KCjIwMDItMDctMjYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJRnJvbSBKb2huIFJlaXNlciA8anJlaXNlckBCaXRXYWdvbi5jb20+CgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IENsZWFyCgl0bHNfbGRtX2dvdC5yZWZjb3VudC4KCjIwMDItMDctMjUgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGY2NC1taXBzLmM6IFVwZGF0ZSBUT0RPIGNvbW1lbnQuCgkobWlwc19lbGY2NF9oaWdoZXJfcmVsb2MsbWlwc19lbGY2NF9oaWdoZXN0X3JlbG9jLAoJbWlwc19lbGY2NF9ncHJlbDE2X3JlbG9jYSk6IFJlbW92ZSBwcm90b3R5cGVzLgoJKG1pcHMxNl9qdW1wX3JlbG9jLG1pcHMxNl9ncHJlbF9yZWxvYyk6IEFkZCBmdW5jdGlvbnMuCgkoVU5VU0VEX1JFTE9DKTogUmVwbGFjZSBieSBFTVBUWV9SRUxPQy4KCShtaXBzX2VsZjY0X2hvd3RvX3RhYmxlX3JlbCk6IFVzZSBzcGVjaWFsIFJfTUlQU19ISTE2IGhhbmRsaW5nLiBSZW1vdmUKCXdyb25nIGNvbW1lbnRzLiBSZW1vdmUgZGlzZnVuY3Rpb25hbCBzdXBwb3J0IG9mIFJfTUlQU19ISUdIRVIgYW5kCglSX01JUFNfSElHSEVTVC4KCShtaXBzX2VsZjY0X2hvd3RvX3RhYmxlX3JlbGEpOiBGaXggaGFuZGxpbmcgb2YgUl9NSVBTX0dQUkVMMTYgYW5kCglSX01JUFNfR09UMTYuIFJlbW92ZSB3cm9uZyBjb21tZW50cy4KCShlbGZfbWlwczE2X2p1bXBfaG93dG8sZWxmX21pcHMxNl9ncHJlbF9ob3d0bywKCWVsZl9taXBzX2dudV92dGluaGVyaXRfaG93dG8sZWxmX21pcHNfZ251X3Z0ZW50cnlfaG93dG8pOiBOZXcsIGNvZGUKCWZyb20gZWxmMzItbWlwcy5jLgoJKG1pcHNfZWxmNjRfaGkxNl9yZWxvYyk6IEZpeCBmb3JtYXR0aW5nLgoJKG1pcHNfZWxmNjRfaGlnaGVyX3JlbG9jLG1pcHNfZWxmNjRfaGlnaGVzdF9yZWxvYyk6IFJlbW92ZS4KCShtaXBzX2VsZjY0X2dvdDE2X3JlbG9jKTogRml4IGZvcm1hdHRpbmcuIFJlbW92ZSBzdXBlcmZsdW91cyBjb2RlLgoJQmV0dGVyIGNvbW1lbnQuIEZhbGwgYmFjayB0byBSX01JUFNfR09UX0RJU1AgaW5zdGVhZCBvZiBhYm9ydCgpLgoJKG1pcHNfZWxmNjRfZ3ByZWwxNl9yZWxvYyk6IE1ha2Ugc3RhdGljLiBBZGQgY2hlY2sgZm9yCglwYXJ0aWFsX2lucGxhY2UuCgkobWlwc19lbGY2NF9ncHJlbDE2X3JlbG9jYSk6IFJlbW92ZS4KCShtaXBzX2VsZjY0X2xpdGVyYWxfcmVsb2MpOiBOZXcgZnVuY3Rpb24uCgkobWlwc19lbGY2NF9ncHJlbDMyX3JlbG9jKTogRml4IGZvcm1hdHRpbmcuCgkobWlwc19lbGY2NF9zaGlmdDZfcmVsb2MpOiBGaXggY29tbWVudC4gTWFrZSBzdGF0aWMuCgkobWlwczE2X2p1bXBfcmVsb2MsbWlwczE2X2dwcmVsX3JlbG9jKTogTmV3IGZ1bmN0aW9ucywgY29kZSBmcm9tCgllbGYzMi1taXBzLmMuCgkoZWxmX3JlbG9jX21hcCxtaXBzX3JlbG9jX21hcCk6IE5ldyBtYXBwaW5nIHRhYmxlLCBzaW1pbGlhciBhcyBpbgoJZWxmMzItbWlwcy5jCgkoYmZkX2VsZjY0X2JmZF9yZWxvY190eXBlX2xvb2t1cCk6IFVzZSB0aGUgbWFwcGluZyB0YWJsZS4gRW5hYmxlIEdOVQoJc3BlY2lmaWMgcmVsb2NhdGlvbnMuCgkobWlwc19lbGY2NF9ydHlwZV90b19ob3d0byk6IEVuYWJsZSBHTlUgc3BlY2lmaWMgcmVsb2NhdGlvbnMuCgkobWlwc19lbGY2NF9vYmplY3RfcCk6IEludmVydCBsb2dpYyB0byBjaGVjayBmb3IgU0dJLWlzaCBBQkkuCgkoRUxGX01BWFBBR0VTSVpFKTogQWRkIGNvbW1lbnQuCgoyMDAyLTA3LTI1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vc3YucG86IFVwZGF0ZWQgU3dlZGlzaCB0cmFuc2xhdGlvbi4KCSogcG8vZXMucG86IFVwZGF0ZWQgU3BhbmlzaCB0cmFuc2xhdGlvbi4KCSogcG8vZnIucG86IFVwZGF0ZWQgRnJlbmNoIHRyYW5zbGF0aW9uLgoKMjAwMi0wNy0yNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1iZmQuaCAoX2JmZF9lbGYzMl9saW5rX3JlY29yZF9sb2NhbF9keW5hbWljX3N5bWJvbCk6IERlZmluZQoJYXMgZWxmX2xpbmtfcmVjb3JkX2xvY2FsX2R5bmFtaWNfc3ltYm9sLgoJKF9iZmRfZWxmNjRfbGlua19yZWNvcmRfbG9jYWxfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCShlbGZfbGlua19yZWNvcmRfbG9jYWxfZHluYW1pY19zeW1ib2wpOiBEZWNsYXJlLiAgTm93IHJldHVybnMgaW50LgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX3JlY29yZF9sb2NhbF9keW5hbWljX3N5bWJvbCk6IE1vdmUgdG8uLgoJKiBlbGZsaW5rLmM6IC4uIGhlcmUuICBVc2UgYmZkX2VsZl9nZXRfZWxmX3N5bXMuICBDaGVjayB3aGV0aGVyIGFuCglhdHRlbXB0IGlzIG1hZGUgdG8gcmVjb3JkIGEgc3ltYm9sIGluIGEgZGlzY2FyZGVkIHNlY3Rpb24sIGFuZAoJcmV0dXJuIGAyJyBpbiB0aGF0IGNhc2UuCgoyMDAyLTA3LTI0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vc3YucG86IFVwZGF0ZWQgU3dlZGlzaCB0cmFuc2xhdGlvbi4KCSogcG8vZXMucG86IFVwZGF0ZWQgU3BhbmlzaCB0cmFuc2xhdGlvbi4KCjIwMDItMDctMjMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBwby9TUkMtUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogSWYgcmVsb2NhdGFibGUsIHJldHVybgoJaW1tZWRpYXRlbHkuICBSZW1vdmUgY29kZSBoYW5kbGluZyByZWxvY2F0YWJsZSBsaW5raW5nLgoJKiBlbGYzMi1hdnIuYyAoZWxmMzJfYXZyX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItY3Jpcy5jIChjcmlzX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWZyMzAuYyAoZWxmMzJfZnJ2X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItZnJ2LmMgKGVsZjMyX2Zydl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWg4MzAwLmMgKGVsZjMyX2g4X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItaXAyay5jIChpcDJrX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItdjg1MC5jICh2ODUwX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXZheC5jIChlbGZfdmF4X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1hdnIuYyAoZWxmX2JhY2tlbmRfcmVsYV9ub3JtYWwpOiBEZWZpbmUuCgkqIGVsZjMyLWNyaXMuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWZyMzAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWZydi5jOiBMaWtld2lzZS4KCSogZWxmMzItaDgzMDAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWlwMmsuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXNwYXJjLmM6IExpa2V3aXNlLgoJKiBlbGYzMi12ODUwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi12YXguYzogTGlrZXdpc2UuCgkqIGVsZjY0LWhwcGEuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1mcjMwLmMgKGVsZjMyX2Zydl9yZWxvY2F0ZV9zZWN0aW9uKTogRWRpdCBjb21tZW50LgoJKiBlbGYzMi1mcnYuYyAoZWxmMzJfZnJ2X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItaTg2MC5jIChlbGYzMl9pODYwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItaXAyay5jIChpcDJrX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLW0zMnIuYyAobTMycl9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1vcGVucmlzYy5jIChvcGVucmlzY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi14c3Rvcm15MTYuYyAoeHN0b3JteTE2X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZi1tMTAyMDAuYyAoVVNFX1JFTEEpOiBEb24ndCBkZWZpbmUuCgkqIGVsZi1tMTAzMDAuYzogTGlrZXdpc2UuCgkqIGVsZmFybS1vYWJpLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzcwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1pcDJrLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhrLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1tY29yZS5jOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zMzkwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi12YXguYzogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jOiBMaWtld2lzZS4KCSogZWxmNjQteDg2LTY0LmM6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1hdnIuYyAoVVNFX1JFTCk6IERvbid0IHVuZGVmLgoJKiBlbGYzMi1pcDJrLmM6IExpa2V3aXNlLgoKMjAwMi0wNy0yMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZi1iZmQuaCAoc3RydWN0IGVsZl9iYWNrZW5kX2RhdGEpOiBBZGQgbmV3IGJpdGZpZWxkCgknd2FudF9wX3BhZGRyX3NldF90b196ZXJvJy4KCSogZWxmeHgtdGFyZ2V0Lmg6IFNldCBkZWZhdWx0IHZhbHVlIGZvciB3YW50X3BfcGFkZHJfc2V0X3RvX3plcm8KCXRvIGZhbHNlOwoJKiBlbGZ4eC1pYTY0LmM6IFNldCB3YW50X3BfcGFkZHJfc2V0X3plcm8gZm9yIEhQVVggdGFyZ2V0LgoJKiBlbGYuYyAoY29weV9wcml2YXRlX2JmZF9kYXRhKTogVGVzdCB3YW50X3BfcGFkZHJfc2V0X3plcm8uCgoyMDAyLTA3LTIzICBHYWJvciBLZXJlc3p0ZmFsdmkgIDxrZXJlc3p0Z0BtYWlsLmNvbT4KCgkqIG5sbWNvZGUuaCAobmxtX3N3YXBfYXV4aWxpYXJ5X2hlYWRlcnNfb3V0KTogU3dhcHBlZCB0aGUgb3JkZXIgb2YKCXRoZSBNZVNzQWdFcyBhbmQgQ29QeVJpR2hUIHRhZ3MgdG8gbWFrZSA+PU5XNC54IE5MTSBsb2FkZXJzIHRvCglzaG93IHRoZSBDb3B5cmlnaHQgc3RyaW5nLgoJTWlub3IgZm9ybWF0dGluZyB0aWR5IHVwcy4KCjIwMDItMDctMjMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9mci5wbzogVXBkYXRlZCBGcmVuY2ggdHJhbnNsYXRpb24uCgkqIHBvL3N2LnBvOiBVcGRhdGVkIFN3ZWRpc2ggdHJhbnNsYXRpb24uCgoyMDAyLTA3LTIzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmbGluay5oIChlbGZfbGlua19pbnB1dF9iZmQpOiBEb24ndCBjaGFuZ2UgaW50ZXJuYWwgc3ltYm9scwoJd2hlbiBvdXRwdXR0aW5nIHJlbG9jcy4KCjIwMDItMDctMjAgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBPbmx5IGluc2VydAoJRFRfUExUR09UIGludG8gdGhlIGR5bmFtaWMgc2VjdGlvbiBpZiB0aGVyZSBpcyBhIFBMVC4KCjIwMDItMDctMTkgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfZGlzY2FyZF9pbmZvKTogTmV3IGZ1bmN0aW9uLCBjb2RlIGZyb20KCWVsZjMyLW1pcHMuYy4KCShfYmZkX21pcHNfZWxmX3dyaXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5oIChfYmZkX21pcHNfZWxmX2Rpc2NhcmRfaW5mbyk6IE5ldyBwcm90b3R5cGUuCgkoX2JmZF9taXBzX2VsZl93cml0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLW1pcHMuYyAoZWxmMzJfbWlwc19kaXNjYXJkX2luZm8pOiBNb3ZlIHRvIGVsZnh4LW1pcHMuYy4KCShlbGYzMl9taXBzX3dyaXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtbWlwcy5jIChfYmZkX21pcHNfZWxmX2lnbm9yZV9kaXNjYXJkZWRfcmVsb2NzKTogVXNlIGl0LgoJKF9iZmRfbWlwc19lbGZfd3JpdGVfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMi0wNy0xOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZnh4LWlhNjQuYzogKGVsZk5OX2lhNjRfbW9kaWZ5X3NlZ21lbnRfbWFwKTogUHJvcGVybHkgc2NhbgoJUFRfSUFfNjRfVU5XSU5EIHNlZ21lbnRzIGZvciBhIGdpdmVuIHNlY3Rpb24uCgoyMDAyLTA3LTE3ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIE1ha2VmaWxlLmFtOiBGaXggYSB0eXBvLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDctMTUgIERlbmlzIENoZXJ0eWtvdiAgPGRlbmlzY0BvdmVydGEucnU+CgkgICAgRnJhbmsgQ2guIEVpZ2xlciAgPGZjaGVAcmVkaGF0LmNvbT4KCSAgICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCSAgICBBbGFuIExlaG90c2t5ICA8YWxlaG90c2t5QGN5Z251cy5jb20+CgkgICAgSm9obiBIZWFseSAgPGpoZWFseUByZWRoYXQuY29tPgoJICAgIEdyYWhhbSBTdG90dCAgPGdyYWhhbXNAcmVkaGF0LmNvbT4KCSAgICBKZWZmIEpvaG5zdG9uICA8ampvaG5zdG5AcmVkaGF0LmNvbT4KCgkqIE1ha2VmaWxlLmFtOiBBZGQgc3VwcG9ydCBmb3IgaXAyay4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogYXJjaHVyZXMuYzogQWRkIHN1cHBvcnQgZm9yIGlwMmsuCgkqIGNvbmZpZy5iZmQ6IEFkZCBzdXBwb3J0IGZvciBpcDJrLgoJKiBjb25maWd1cmUuaW46IEFkZCBzdXBwb3J0IGZvciBpcDJrLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIHJlbG9jLmM6IEFkZCBzdXBwb3J0IGZvciBpcDJrLgoJKiB0YXJnZXRzLmM6IEFkZCBzdXBwb3J0IGZvciBpcDJrLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBjcHUtaXAyay5jOiBOZXcgZmlsZS4KCSogZWxmMzItaXAyay5jOiBOZXcgZmlsZS4KCjIwMDItMDctMTcgIElhbiBSaWNrYXJkcyAgPGlyaWNrYXJkQGFybS5jb20+CgoJKiBkd2FyZjIuYyAoY29uY2F0X2ZpbGVuYW1lKTogSWYgd2UgY2FuJ3QgZXN0YWJsaXNoIHRoZSBkaXJlY3RvcnkKCWp1c3QgcmV0dXJuIHRoZSBmaWxlbmFtZS4KCjIwMDItMDctMTYgIE1vcml0eiBKb2RlaXQgIDxtb3JpdHpAam9kZWl0Lm9yZz4KCgkqIHBlWFhpZ2VuLmMgKF9iZmRfWFhpX3N3YXBfYW91dGhkcl9vdXQpOiBDb3JyZWN0IG9yZGVyIG9mIG1lbXNldCBhcmdzLgoKMjAwMi0wNy0xNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmxpbmsuaDogRm9ybWF0dGluZyBmaXhlcywgdGlkeSBwcm90b3R5cGVzLgoJKGVsZl9saW5rX2Fzc2lnbl9zeW1fdmVyc2lvbik6IE1vdmUgY29tbW9uIGNvZGUgb3V0IG9mIGxvb3AuCgoyMDAyLTA3LTE2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmbGluay5oIChlbGZfbGlua19pbnB1dF9iZmQpOiBEb24ndCBjYWxsIHJlbG9jX2VtaXR0ZXIgd2hlbgoJcmVsb2Mgc2VjdGlvbiBzaXplIGlzIHplcm8uICBDb3JyZWN0IHJlbG9jIG91dHB1dCBsb2NhdGlvbi4KCjIwMDItMDctMTYgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZUBoaWF1bHkxLmhpYS5ucmMuY2E+CgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9yZWxvY19maW5hbF90eXBlKTogVXNlIFJfUEFSSVNDX1BDUkVMMTZGIGFzCgl0aGUgZmluYWwgdHlwZSBmb3IgdGhlIGVfZnNlbCBzZWxlY3RvciB3aGVuIGdlbmVyYXRpbmcgUEEyLjBXIGNvZGUuCgkoZWxmX2hwcGFfcmVsb2NhdGVfaW5zbik6IFByb3ZpZGUgc3VwcG9ydCBmb3IgUEEyLjBXIDE2LWJpdCBmb3JtYXQgMQoJcmVsb2NhdGlvbnMuCgoyMDAyLTA3LTE0ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYXNzaWduX3N5bV92ZXJzaW9uKTogSGlkZSB0aGUgZGVmYXVsdAoJZGVmaW5pdGlvbiBpZiB0aGVyZSBpcyBhIGhpZGRlbiB2ZXJzaW9uZWQgZGVmaW5pdGlvbi4KCjIwMDItMDctMTIgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogZWxmMzItY3Jpcy5jIChjcmlzX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogRHJvcCBub25zZW5zaWNhbAoJZHluYW1pYyByZWZlcmVuY2UgdGVzdCBpbiBhc3NlcnRpb24gd2hlbiBpbml0aWFsaXppbmcgR09UIHdpdGgKCXN0YXRpYyBjb250ZW50cy4gIEp1c3QgYXNzZXJ0IHRoYXQgdGhlcmUgYXJlIGVpdGhlciBubyBkeW5hbWljCglzZWN0aW9ucywgdGhlIHN5bWJvbCBpcyBkZWZpbmVkIGluIHRoZSByZWd1bGFyIG9iamVjdHMgb3IgdGhhdCB0aGUKCXN5bWJvbCBpcyB1bmRlZiB3ZWFrLiAgVHdlYWsgY29tbWVudC4KCShlbGZfY3Jpc19maW5pc2hfZHluYW1pY19zeW1ib2wpOiBFbWl0IC5nb3QgcmVsb2MgZm9yIGEgcHJvZ3JhbQoJb25seSBpZiB0aGUgc3ltYm9sIGlzbid0IGRlZmluZWQgaW4gdGhlIHByb2dyYW0gYW5kIGlzbid0IHVuZGVmCgl3ZWFrLgoJKGVsZl9jcmlzX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IFNpbXBsaWZ5IGNvbmRpdGlvbiBmb3IgZ2V0dGluZwoJcmlkIG9mIFBMVCBlbnRyeTogb25seSBkbyBpdCBpZiB0aGUgc3ltYm9sIGlzbid0IGRlZmluZWQgaW4gYSBEU08uCglXaGVuIGRvaW5nIHNvLCBjbGVhciBFTEZfTElOS19IQVNIX05FRURTX1BMVC4gIFR3ZWFrIGNvbW1lbnRzLgoJKGVsZl9jcmlzX2Rpc2NhcmRfZXhjZXNzX3Byb2dyYW1fZHluYW1pY3MpOiBEb24ndCBjb25zaWRlcgoJRUxGX0xJTktfSEFTSF9SRUZfRFlOQU1JQyB3aGVuIG9taXR0aW5nIC5nb3QgcnVudGltZSByZWxvY3MuCgoyMDAyLTA3LTExICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogRG9uJ3QgY29tcGxhaW4gYWJvdXQKCXVucmVzb2x2ZWQgZGVidWdnaW5nIHJlbG9jcyBpbiBkeW5hbWljIGFwcGxpY2F0aW9ucy4KCSogZWxmMzItczM5MC5jIChlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYyAoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMi0wNy0xMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChPTkVTKTogRGVmaW5lLgoJKHBwYzY0X2VsZl9ob3d0b190YWJsZSk6IFVzZSBPTkVTIGhlcmUgdG8gYXZvaWQgd2FybmluZ3MuICBGaWxsIGluCgltaXNzaW5nIHNyY19tYXNrIGZpZWxkcy4gIFR3ZWFrIFJfUFBDNjRfTk9ORSwgUl9QUEM2NF9DT1BZLiAgRmlsbAoJaW4gbWlzc2luZyBkc3RfbWFzayBmaWVsZHMgb24gUl9QUEM2NF9QTFQzMiwgUl9QUEM2NF9QTFRSRUwzMi4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfZ2V0X3N5bWJvbF9pbmZvKTogRGVsZXRlLgoJKHBwYzY0X2VsZl9zZXRfcHJpdmF0ZV9mbGFncyk6IERlbGV0ZS4KCShwcGM2NF9lbGZfc2VjdGlvbl9mcm9tX3NoZHIpOiBEZWxldGUuCgkocHBjNjRfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBSZW1vdmUgZmxhZyBjaGVja2luZy9tZXJnaW5nIGNvZGUuCgkocHBjNjRfZWxmX2Zha2Vfc2VjdGlvbnMpOiBEZWxldGUuCgkoYmZkX2VsZjY0X2JmZF9zZXRfcHJpdmF0ZV9mbGFncyk6IERvbid0IGRlZmluZS4KCShiZmRfZWxmNjRfZ2V0X3N5bWJvbF9pbmZvKTogTGlrZXdpc2UuCgkoZWxmX2JhY2tlbmRfc2VjdGlvbl9mcm9tX3NoZHIpOiBMaWtld2lzZS4KCShlbGZfYmFja2VuZF9mYWtlX3NlY3Rpb25zKTogTGlrZXdpc2UuCgoyMDAyLTA3LTEwICBNYXJjbyBXYWx0aGVyICA8TWFyY28uV2FsdGhlckBzdW4uY29tPgoKCSogZWxmLmM6IChhc3NpZ25fc2VjdGlvbl9udW1iZXJzKSBTZXQgc2hfZW50c2l6ZSBmb3IgLnN0YWIgb25seQoJd2hlbiBub3QgYWxyZWFkeSBzZXQuCgkqIGVsZjY0LXNwYXJjLmM6IChzcGFyYzY0X2VsZl9mYWtlX3NlY3Rpb25zKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9iYWNrZW5kX2Zha2Vfc2VjdGlvbnMpOiBEZWZpbmUuCgoyMDAyLTA3LTEwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbWVyZ2UuYyAoX2JmZF9tZXJnZV9zZWN0aW9uKTogUmVtb3ZlIHJlZHVuZGFudCBvdXRwdXRfc2VjdGlvbiBjaGVjay4KCUZvcm1hdHRpbmcuCgkoX2JmZF9tZXJnZV9zZWN0aW9ucyk6IERvbid0IHNldCBTRUNfRVhDTFVERSBvbiB1bnVzZWQgc2VjdGlvbnMuCgoyMDAyLTA3LTA5ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGVsZjMyLWNyaXMuYyAoY3Jpc19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IE1vdmUgc2FuaXR5LWNoZWNrIGZvcgoJTlVMTCBzeW1faGFzaGVzIHRvIGp1c3QgYmVmb3JlIHVzZS4KCTxjYXNlIFJfQ1JJU18zMl9HT1RSRUw+OiBJbiB0ZXN0IGZvciBsb2NhbCBzeW1ib2wsIGFjY2VwdCBhbHNvCglzeW1ib2wgd2l0aCBub24tZGVmYXVsdCB2aXNpYmlsaXR5LgoJPGNhc2UgUl9DUklTXzMyX0dPVFJFTCwgY2FzZSBSX0NSSVNfMzJfUExUX0dPVFJFTD46IERpdHRvLgoJPGNhc2UgUl9DUklTXzhfUENSRUwsIGNhc2UgUl9DUklTXzE2X1BDUkVMLCBjYXNlIFJfQ1JJU18zMl9QQ1JFTD46CglEaXR0by4KCShjcmlzX2VsZl9nY19zd2VlcF9ob29rKTogT25seSBkZWNyZWFzZSBoLT5wbHQucmVmY291bnQgZm9yCglzeW1ib2wgd2l0aCBub24tZGVmYXVsdCB2aXNpYmlsaXR5LgoJKGNyaXNfZWxmX2NoZWNrX3JlbG9jcyk6IEF0IHRlc3RzIGZvciBsb2NhbCBzeW1ib2wgYmVmb3JlCglpbmNyZWFzaW5nIGgtPnBsdC5yZWZjb3VudCwgYWxzbyBjaGVjayBmb3Igbm9uLWRlZmF1bHQKCXZpc2liaWxpdHkuICBEaXR0byB3aGVuIGNoZWNraW5nIGZvciBsb2NhbCBzeW1ib2wgdG8gZWxpbWluYXRlCglwYy1yZWxhdGl2ZSBydW50aW1lIHJlbG9jcy4KCjIwMDItMDctMDggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYuYzogRm9ybWF0dGluZy4KCShJU19TT0xBUklTX1BUX0lOVEVSUCk6IEFkZCBwX3BhZGRyIGFuZCBwX21lbXN6IGNoZWNrcy4KCShJTkNMVURFX1NFQ1RJT05fSU5fU0VHTUVOVCk6IFJlbW92ZSBJU19TT0xBUklTX1BUX0lOVEVSUC4KCShjb3B5X3ByaXZhdGVfYmZkX2RhdGEpOiBTZXQgcF92YWRkciBvbiBicm9rZW4gU29sYXJpcyBQVF9JTlRFUlAKCXNlZ21lbnRzLgoKMjAwMi0wNy0wNyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCSAgICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29mZmxpbmsuYyAoX2JmZF9jb2ZmX2ZpbmFsX2xpbmspOiBPbiBQRSBDT0ZGIHN5c3RlbXMsIHRha2UgaW50bwoJYWNjb3VudCB0aGUgaW1wYWN0IG9mIHJlbG9jYXRpb24gY291bnQgb3ZlcmZsb3cgd2hlbiBjb21wdXRpbmcKCXNlY3Rpb24gb2Zmc2V0cy4KCSogY29mZmNvZGUuaCAoY29mZl93cml0ZV9yZWxvY3MpOiBVc2Ugb2JqX3BlIHdoZW4gZGVjaWRpbmcgd2hldGhlcgoJb3Igbm90IHRvIGFwcGx5IHRoZSBQRSBDT0ZGIHJlbG9jIG92ZXJmbG93IGhhbmRsaW5nLiAgRml4IGEKCWZlbmNlcG9zdCBlcnJvciBpbiBkZWNpZGluZyB3aGV0aGVyIG9yIG5vdCB0byB1c2UgdGhhdCB0ZWNobmlxdWUuCgoyMDAyLTA3LTA3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLWJmZC5oIChzdHJ1Y3QgZWxmX3JlbG9jX2Nvb2tpZSk6IFJlbW92ZSBsb2NzeW1fc2huZHgsCgljaGFuZ2UgdHlwZSBvZiBsb2NzeW1zLgoJKGJmZF9lbGZfZ2V0X2VsZl9zeW1zKTogRGVjbGFyZS4KCSogZWxmLmMgKGJmZF9lbGZfZ2V0X2VsZl9zeW1zKTogTmV3IGZ1bmN0aW9uLgoJKGdyb3VwX3NpZ25hdHVyZSk6IFVzZSBiZmRfZWxmX2dldF9lbGZfc3ltcy4KCShiZmRfc2VjdGlvbl9mcm9tX3Jfc3ltbmR4KTogTGlrZXdpc2UuCgkqIGVsZmNvZGUuaCAoZWxmX3NsdXJwX3N5bWJvbF90YWJsZSk6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2lzX2RlZmluZWRfYXJjaGl2ZV9zeW1ib2wpOiBMaWtld2lzZS4KCShlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBMaWtld2lzZS4gIFJlb3JnYW5pc2UgdG8gaW5jcmVhc2UKCWxvY2FsaXR5IG9mIHZhcmlvdXMgZGF0YSBzdHJ1Y3R1cmVzLiAgUHJvcGVybHkgZnJlZSBpbnRlcm5hbCByZWxvY3MuCgkoZWxmX2JmZF9maW5hbF9saW5rKTogUHJvcGVybHkgZnJlZSBpbnRlcm5hbCByZWxvY3MuCgkoZWxmX2xpbmtfY2hlY2tfdmVyc2lvbmVkX3N5bWJvbCk6IFVzZSBiZmRfZWxmX2dldF9lbGZfc3ltcy4KCShlbGZfbGlua19pbnB1dF9iZmQpOiBMaWtld2lzZS4KCShlbGZfZ2NfbWFyayk6IExpa2V3aXNlLiAgUHJvcGVybHkgZnJlZSBpbnRlcm5hbCByZWxvY3MuCgkoZWxmX2djX3N3ZWVwKTogUHJvcGVybHkgZnJlZSBpbnRlcm5hbCByZWxvY3MuCgkoZWxmX3JlbG9jX3N5bWJvbF9kZWxldGVkX3ApOiBObyBuZWVkIHRvIHN3YXAgc3ltcyBpbi4KCShlbGZfYmZkX2Rpc2NhcmRfaW5mbyk6IFVzZSBiZmRfZWxmX2dldF9lbGZfc3ltcy4gIFByb3Blcmx5IGZyZWUKCWludGVybmFsIHJlbG9jcy4KCSogZWxmLW0xMDIwMC5jIChtbjEwMjAwX2VsZl9yZWxheF9zZWN0aW9uKTogVXNlIGJmZF9lbGZfZ2V0X2VsZl9zeW1zLgoJUHJvcGVybHkgZnJlZSBwb3NzaWJseSBjYWNoZWQgaW5mby4KCShtbjEwMjAwX2VsZl9yZWxheF9kZWxldGVfYnl0ZXMpOiBSZW1vdmUgc3ltYm9sIHN3YXBwaW5nIGNvZGUuCgkobW4xMDIwMF9lbGZfc3ltYm9sX2FkZHJlc3NfcCk6IFBhc3MgaW4gaW50ZXJuYWwgc3ltcy4gIFJlbW92ZQoJc3ltYm9sIHN3YXBwaW5nIGNvZGUuCgkobW4xMDIwMF9lbGZfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogVXNlIGJmZF9lbGZfZ2V0X2VsZl9zeW1zLgoJUHJvcGVybHkgZnJlZSBwb3NzaWJseSBjYWNoZWQgaW5mby4KCSogZWxmLW0xMDMwMC5jIChtbjEwMzAwX2VsZl9yZWxheF9zZWN0aW9uKTogQXMgYWJvdmUgZm9yIGVsZi1tMTAyMDAuYy4KCShtbjEwMzAwX2VsZl9yZWxheF9kZWxldGVfYnl0ZXMpOiBMaWtld2lzZS4KCShtbjEwMzAwX2VsZl9zeW1ib2xfYWRkcmVzc19wKTogTGlrZXdpc2UuCgkobW4xMDMwMF9lbGZfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogTGlrZXdpc2UuCgkqIGVsZjMyLWg4MzAwLmMgKGVsZjMyX2g4X3JlbGF4X3NlY3Rpb24pOiBBcyBhYm92ZSBmb3IgZWxmLW0xMDIwMC5jLgoJKGVsZjMyX2g4X3JlbGF4X2RlbGV0ZV9ieXRlcyk6IExpa2V3aXNlLgoJKGVsZjMyX2g4X3N5bWJvbF9hZGRyZXNzX3ApOiBMaWtld2lzZS4KCShlbGYzMl9oOF9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBMaWtld2lzZS4KCSogZWxmMzItbTMyci5jIChtMzJyX2VsZl9yZWxheF9zZWN0aW9uKTogQXMgYWJvdmUgZm9yIGVsZi1tMTAyMDAuYy4KCShtMzJyX2VsZl9yZWxheF9kZWxldGVfYnl0ZXMpOiBMaWtld2lzZS4KCShtMzJyX2VsZl9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBMaWtld2lzZS4KCSogZWxmMzItc2guYyAoc2hfZWxmX3JlbG9jX2xvb3ApOiBGcmVlIHNlY3Rpb24gY29udGVudHMgdXNpbmcKCWVsZl9zZWN0aW9uX2RhdGEgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgY2FjaGVkLgoJKHNoX2VsZl9yZWxheF9zZWN0aW9uKTogQXMgYWJvdmUgZm9yIGVsZi1tMTAyMDAuYy4KCShzaF9lbGZfcmVsYXhfZGVsZXRlX2J5dGVzKTogTGlrZXdpc2UuCgkoc2hfZWxmX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IExpa2V3aXNlLgoJKiBlbGYzMi14c3Rvcm15MTYuYyAoeHN0b3JteTE2X2VsZl9yZWxheF9zZWN0aW9uKTogQXMgYWJvdmUuCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbGF4X3NlY3Rpb24pOiBBcyBhYm92ZS4gIEFsc28gZGVsYXkKCXJlYWRpbmcgb2YgbG9jYWwgc3ltcy4KCSogZWxmNjQtbW1peC5jIChtbWl4X2VsZl9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNoNjQuYyAoc2hfZWxmNjRfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogQXMgYWJvdmUuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxheF9zZWN0aW9uKTogQXMgYWJvdmUuCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9jaGVja19yZWxvY3MpOiBQcm9wZXJseSBmcmVlIGludGVybmFsCglyZWxvY3MuCgkqIGVsZjMyLWFybS5oIChiZmRfZWxmMzJfYXJtX3Byb2Nlc3NfYmVmb3JlX2FsbG9jYXRpb24pOiBQcm9wZXJseQoJZnJlZSBpbnRlcm5hbCByZWxvY3MgYW5kIHNlY3Rpb24gY29udGVudHMuICBEb24ndCByZWFkIHN5bWJvbHMuCgkqIGVsZjMyLWhwcGEuYyAoZ2V0X2xvY2FsX3N5bXMpOiBVc2UgYmZkX2VsZl9nZXRfZWxmX3N5bXMuCgkoZWxmMzJfaHBwYV9zaXplX3N0dWJzKTogRG9uJ3QgZnJlZSBsb2NhbCBzeW1zLgoJKiBlbGYzMi1tNjhrLmMgKGJmZF9tNjhrX2VsZjMyX2NyZWF0ZV9lbWJlZGRlZF9yZWxvY3MpOiBEZWxheQoJcmVhZGluZyBvZiBsb2NhbCBzeW1zLiAgVXNlIGJmZF9lbGZfZ2V0X2VsZl9zeW1zLiAgUHJvcGVybHkgZnJlZQoJcG9zc2libHkgY2FjaGVkIGluZm8uCgkqIGVsZjMyLW1pcHMuYyAoYmZkX21pcHNfZWxmMzJfY3JlYXRlX2VtYmVkZGVkX3JlbG9jcyk6IExpa2V3aXNlLgoJKiBlbGY2NC1ocHBhLmMgKGVsZjY0X2hwcGFfY2hlY2tfcmVsb2NzKTogVXNlIGJmZF9lbGZfZ2V0X2VsZl9zeW1zLgoJKiBlbGY2NC1wcGMuYyAoc3RydWN0IHBwY19saW5rX2hhc2hfdGFibGUpOiBEZWxldGUgYmZkX2NvdW50IGFuZAoJYWxsX2xvY2FsX3N5bXMuCgkoZ2V0X2xvY2FsX3N5bXMpOiBEZWxldGUgZnVuY3Rpb24uCgkoZWRpdF9vcGQpOiBVc2UgYmZkX2VsZl9nZXRfZWxmX3N5bXMuICBGcmVlIG9uIGVycm9yIGV4aXQuICBDYWNoZQoJb24gZXhpdC4KCShwcGM2NF9lbGZfc2l6ZV9zdHVicyk6IFVzZSBiZmRfZWxmX2dldF9lbGZfc3ltcy4gIEZyZWUvY2FjaGUgb24gZXhpdC4KCjIwMDItMDctMDUgIEppbSBXaWxzb24gIDx3aWxzb25AcmVkaGF0LmNvbT4KCgkqIHN5bXMuYyAoZGVjb2RlX3NlY3Rpb25fdHlwZSk6IE5ldy4KCShiZmRfZGVjb2RlX3N5bWNsYXNzKTogQ2FsbCBkZWNvZGVfc2VjdGlvbl90eXBlLgoKMjAwMi0wNy0wNCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBtZXJnZS5jIChfYmZkX21lcmdlZF9zZWN0aW9uX29mZnNldCk6IEF2b2lkIGFjY2Vzc2luZyBieXRlIGJlZm9yZQoJc2VjdGlvbiBjb250ZW50IHN0YXJ0LgoJUmVwb3J0ZWQgYnkgTWljaGFlbCBTY2h1bWFjaGVyIDxtaWtlQGhpZ2h0ZWMtcnQuY29tPi4KCjIwMDItMDctMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBzZWN0aW9uLmMgKF9iZmRfc3RyaXBfc2VjdGlvbl9mcm9tX291dHB1dCk6IFJlbW92ZSB1bm5lY2Vzc2FyeQoJbGluayBvcmRlciBjb2RlLiAgRG9uJ3QgYWN0dWFsbHkgcmVtb3ZlIHRoZSBvdXRwdXQgc2VjdGlvbiBoZXJlOwoJSnVzdCBzZXQgYSBmbGFnIGZvciB0aGUgbGlua2VyIHRvIGRvIHNvLgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX2xpbmtfcmVudW1iZXJfZHluc3ltcyk6IFRlc3QgZm9yIHJlbW92ZWQKCXNlY3Rpb25zIHdoZW4gc2V0dGluZyB1cCBvdXRwdXQgc2VjdGlvbiBkeW5zeW1zLgoKMjAwMi0wNy0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogUmV2ZXJ0IDE5OTktMDktMDIgaHB1eAoJZnVkZ2UuCgkqIGVsZi5jIChiZmRfc2VjdGlvbl9mcm9tX3NoZHIpOiBXb3JrIGFyb3VuZCBicm9rZW4gaHB1eCBzaGFyZWQKCWxpYnMgaGVyZSBpbnN0ZWFkLgoKMjAwMi0wNy0wMiAgTWFydGluIFNjaHdpZGVmc2t5ICA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KCgkqIGVsZjY0LXMzOTAuYyAoY3JlYXRlX2dvdF9zZWN0aW9uKTogU2V0IC5nb3Qgc2VjdGlvbiBhbGlnbm1lbnQgdG8KCTggYnl0ZXMuCgkoZWxmX3MzOTBfY2hlY2tfcmVsb2NzKTogU2V0IC5yZWxhLmR5biBzZWN0aW9uIGFsaWdubWVudCB0byA4IGJ5dGVzLgoKMjAwMi0wNy0wMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi5jIChfYmZkX2VsZl9yZWxvY190eXBlX2NsYXNzKTogRml4IGNvbW1lbnQgZ3JhbW1hci4KCjIwMDItMDctMDEgIE1hdHQgVGhvbWFzICA8bWF0dEAzYW0tc29mdHdhcmUuY29tPgoKCSogZWxmMzItdmF4LmMgKGVsZjMyX3ZheF9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogQ2hhbmdlIEVGXyoKCXRvIEVGX1ZBWF8qLgoKMjAwMi0wNy0wMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZnh4LW1pcHMuYyAoQUJJXzY0X1ApOiBGaXggY29tbWVudC4KCShNSVBTX0VMRl9PUFRJT05TX1NFQ1RJT05fTkFNRSxNSVBTX0VMRl9TVFVCX1NFQ1RJT05fTkFNRSk6IFVzZSB0aGUKCW5ldyBzZWN0aW9uIG5hbWVzIGZvciBONjQgQUJJLgoJKG1pcHNfZWxmX291dHB1dF9leHRzeW0pOiBObyBzcGVjaWFsIF9ncF9kaXNwIGhhbmRsaW5nIGZvciBOZXdBQkkuCgkobWlwc19lbGZfY2FsY3VsYXRlX3JlbG9jYXRpb24pOiBDb2RlIGZvcm1hdHRpbmcuCgkobWlwc19lbGZfY3JlYXRlX2R5bmFtaWNfcmVsb2NhdGlvbik6IExpa2V3aXNlLgoJKF9iZmRfbWlwc19lbGZfZmFrZV9zZWN0aW9ucyk6IElSSVg2IG5lZWRzIHRoaXMgaGFjaywgdG9vLgoJKF9iZmRfbWlwc19lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogSGFuZGxlIEdPVF9QQUdFIGZvciBhbnkgTmV3QUJJLgoJKF9iZmRfbWlwc19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IE5vIHNwZWNpYWwgaGFuZGxpbmcgZm9yIFJfTUlQU182NAoJaW4gYW55IE5ld0FCSS4KCShfYmZkX21pcHNfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IE5vIHNwZWNpYWwgX2dwX2Rpc3AgaGFuZGxpbmcKCWZvciBOZXdBQkkuCgkoX2JmZF9taXBzX2VsZl9tb2RpZnlfc2VnbWVudF9tYXApOiBIYW5kbGUgYW55IE42NCBBQkkuCgkoX2JmZF9taXBzX2VsZl9nY19zd2VlcF9ob29rKTogTmV3QUJJIEdPVCByZWxvY3Mgc2hvdWxkIGJlIGhhbmRsZWQKCWhlcmUsIHRvby4KCjIwMDItMDctMDEgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBPbmx5IGNvbnZlcnQKCVJfWDg2XzY0XzY0IHRvIFJfWDg2XzY0X1JFTEFUSVZFLgoKMjAwMi0wNy0wMSAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlQGhpYXVseTEuaGlhLm5yYy5jYT4KCgkqIHZheGJzZC5jOiBOZXcgQkZEIGJhY2tlbmQgZm9yIFZBWCBCU0QgYW5kIFVsdHJpeC4KCSogTWFrZWZpbGUuYW0gKEJGRDMyX0JBQ0tFTkRTLCBCRkQzMl9CQUNLRU5EU19DRklMRVMpOiBBZGQgbmV3IGJhY2tlbmQuCglSdW4gIm1ha2UgZGVwLWFtIi4KCSogY29uZmlnLmJmZCAodmF4LSotYnNkKiB8IHZheC0qLXVsdHJpeCopOiBVc2UgdmF4YnNkX3ZlYyBpbnN0ZWFkIG9mCglob3N0X2FvdXRfdmVjLgoJKiBjb25maWd1cmUuaW4gKHZheGJzZF92ZWMpOiBBZGQuCgkqIHRhcmdldHMuYyAodmF4YnNkX3ZlYyk6IEFkZC4KCSogTWFrZWZpbGUuaW46IFJlYnVpbGQuCgkqIGNvbmZpZ3VyZTogUmVidWlsZC4KCSogcG8vU1JDLVBPVEZJTEVTLmluOiBSZWJ1aWxkLgoKMjAwMi0wNy0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmxpbmsuaCAoZWxmX2djX21hcmspOiBQYXNzIGluIHRoZSBzZWN0aW9uIHdob3NlIHJlbG9jcyB3ZSBhcmUKCWV4YW1pbmluZyB0byBnY19tYXJrX2hvb2ssIHJhdGhlciB0aGFuIHRoZSBiZmQuCgkoZWxmX2djX3NlY3Rpb25zKTogQWRqdXN0LgoJKiBlbGYtYmZkLmggKHN0cnVjdCBlbGZfYmFja2VuZF9kYXRhIDxnY19tYXJrX2hvb2s+KTogTGlrZXdpc2UuCgkqIGVsZi1tMTAzMDAuYyAobW4xMDMwMF9lbGZfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLWF2ci5jIChlbGYzMl9hdnJfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLWNyaXMuYyAoY3Jpc19lbGZfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLWQxMHYuYyAoZWxmMzJfZDEwdl9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItZnIzMC5jIChmcjMwX2VsZl9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1tMzJyLmMgKG0zMnJfZWxmX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhrLmMgKGVsZl9tNjhrX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1tY29yZS5jIChtY29yZV9lbGZfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLW9wZW5yaXNjLmMgKG9wZW5yaXNjX2VsZl9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmMgKHBwY19lbGZfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItc3BhcmMuYyAoZWxmMzJfc3BhcmNfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLXY4NTAuYyAodjg1MF9lbGZfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLXZheC5jIChlbGZfdmF4X2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi14c3Rvcm15MTYuYyAoeHN0b3JteTE2X2VsZl9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmNjQtbW1peC5jIChtbWl4X2VsZl9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jIChlbGZfczM5MF9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmNjQtc2g2NC5jIChzaF9lbGY2NF9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmggKF9iZmRfbWlwc19lbGZfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLWZydi5jIChlbGYzMl9mcnZfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuICBBbHNvIHJlbW92ZQoJcmVkdW5kYW50IGxvY2FsIHN5bSB0ZXN0cy4KCSogZWxmNjQtcHBjLmMgKHN0cnVjdCBwcGNfbGlua19oYXNoX2VudHJ5KTogQWRkIGlzX2VudHJ5LgoJKGxpbmtfaGFzaF9uZXdmdW5jKTogSW5pdCBpc19lbnRyeS4KCShwcGM2NF9lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBDb3B5IGlzX2VudHJ5LgoJKHBwYzY0X2VsZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogSW5pdCBhbGxfbG9jYWxfc3ltcy4KCShjcmVhdGVfbGlua2FnZV9zZWN0aW9ucyk6IFVzZSBiZmRfbWFrZV9zZWN0aW9uX2FueXdheSByYXRoZXIgdGhhbgoJYmZkX21ha2Vfc2VjdGlvbi4KCShwcGM2NF9lbGZfbWFya19lbnRyeV9zeW1zKTogTmV3IGZ1bmN0aW9uLgoJKHBwYzY0X2VsZl9jaGVja19yZWxvY3MpOiBEb24ndCBib3RoZXIgdGVzdGluZyBlbGZfYmFkX3N5bXRhYi4gIFNldAoJdXAgb3BkIGVudHJ5IHRvIGZ1bmN0aW9uIHNlY3Rpb24gbWFwLgoJKHBwYzY0X2VsZl9nY19tYXJrX2hvb2spOiBTcGVjaWFsIGNhc2Ugb3BkIHNlY3Rpb24gcmVsb2NzLCBhbmQKCXJlbG9jcyB0aGF0IHJlZmVyZW5jZSB0aGUgb3BkIHNlY3Rpb24uCgkoZWRpdF9vcGQpOiBOZXcgZnVuY3Rpb24uCgkocHBjNjRfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IENhbGwgZ2V0X2xvY2FsX3N5bXMgYW5kIGVkaXRfb3BkLgoJKHBwYzY0X2VsZl9zZXR1cF9zZWN0aW9uX2xpc3RzKTogRG9uJ3QgY2FsY3VsYXRlIGh0YWItPmJmZF9jb3VudCBoZXJlLgoJKGdldF9sb2NhbF9zeW1zKTogRG8gc28gaGVyZS4gIEV4aXQgaWYgd2UgYWxyZWFkeSBoYXZlIGxvY2FsIHN5bXMuCglSZW1vdmUgYm9ndXMgY29tbWVudCBpbXBvcnRlZCBmcm9tIGVsZjMyLWhwcGEuYy4gIERvbid0IGF0dGVtcHQgdG8KCXJlYWQgbG9jYWwgc3ltcyBvbiBub24tRUxGIGlucHV0LgoJKHBwYzY0X2VsZl9zaXplX3N0dWJzKTogQ2FsbCBfYmZkX2VsZjY0X2xpbmtfcmVhZF9yZWxvY3MgcmF0aGVyCgl0aGFuIGR1cGxpY2F0aW5nIGl0J3MgZnVuY3Rpb24gaGVyZS4gIEFkanVzdCBmcmVlIG9mIGludGVybmFsCglyZWxvY3MgdG8gc3VpdC4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEFkanVzdCBsb2NhbCBzeW1zIGluIG9wZCBzZWN0aW9uLgoJKiBlbGY2NC1wcGMuaCAocHBjNjRfZWxmX21hcmtfZW50cnlfc3ltcyk6IERlY2xhcmUuCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9zaXplX3N0dWJzKTogQ2FsbAoJX2JmZF9lbGYzMl9saW5rX3JlYWRfcmVsb2NzIHJhdGhlciB0aGFuIGR1cGxpY2F0aW5nIGl0J3MgZnVuY3Rpb24KCWhlcmUuICBBZGp1c3QgZnJlZSBvZiBpbnRlcm5hbCByZWxvY3MgdG8gc3VpdC4KCjIwMDItMDctMDEgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfY2hlY2tfcmVsb2NzKTogQ2VydGFpbiByZWxvY2F0aW9ucwoJYXJlIG5vdCBhbGxvd2VkIGluIHNoYXJlZCBsaWJzIGNvZGUsIGVuZm9yY2UgLWZQSUMuCgoyMDAyLTA2LTI5ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBtbW8uYyAobW1vX3dyaXRlX2xvY19jaHVuayk6IERvbid0IGVsaW1pbmF0ZSBsZWFkaW5nIGFuZAoJdHJhaWxpbmcgemVyby1zZXF1ZW5jZXMgd2hlbiB0aGVyZSdzIHByZXZpb3VzIGxlZnQtb3ZlciBkYXRhLgoKMjAwMi0wNi0yNyAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlQGhpYXVseTEuaGlhLm5yYy5jYT4KCgkqIGVsZjY0LWhwcGEuYyAoZWxmNjRfaHBwYV9yZWxvY190eXBlX2NsYXNzKTogTmV3IGZ1bmN0aW9uLgoJKGVsZjY0X2hwcGFfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBDaGVjayBvdGhlcl9yZWxfc2VjLCBkbHRfcmVsX3NlYwoJYW5kIG9wZF9yZWxfc2VjIGluIG9yZGVyIGZvciBzdGFydGluZyByZWxhIHNlY3Rpb24uICBDaGVjayBfcmF3X3NpemUuCgkoZWxmX2JhY2tlbmRfcmVsb2NfdHlwZV9jbGFzcyk6IERlZmluZS4KCjIwMDItMDYtMjcgIEtldmluIEJ1ZXR0bmVyIDxrZXZpbmJAcmVkaGF0LmNvbT4KCgkqIGR3YXJmMi5jIChkZWNvZGVfbGluZV9pbmZvKTogSGFuZGxlIG9sZGVyLCBub24tc3RhbmRhcmQsIDY0LWJpdAoJRFdBUkYyIGZvcm1hdHMuCgoyMDAyLTA2LTI3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY3B1LXBvd2VycGMuYzogQ29tbWVudCBvbiBvcmRlcmluZyBvZiBhcmNoX2luZm8uCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX29iamVjdF9wKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9iYWNrZW5kX29iamVjdF9wKTogRGVmaW5lLgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX29iamVjdF9wKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9iYWNrZW5kX29iamVjdF9wKTogRGVmaW5lLgoKMjAwMi0wNi0yNiAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAodmF4LSotbmV0YnNkKik6IFNldCBDT1JFRklMRSB0byBuZXRic2QtY29yZS5sby4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wNi0yNSAgSmFzb24gRWNraGFyZHQgIDxqbGVAcmljZS5lZHU+CgoJKiBkd2FyZjIuYyAoZGVjb2RlX2xpbmVfaW5mbyk6IENoZWNrIHVuaXQtPmFkZHJfc2l6ZQoJdG8gcmVhZCBpbiB0aGUgcHJvcGVyIG51bWJlciBvZiBwcm9sb2d1ZSBieXRlcy4KCjIwMDItMDYtMjUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogY29uZmlnLmJmZCAocG93ZXJwYy0qLWFpeDUqKTogT25seSBjcmVhdGUgYSBzZWx2ZWNzIGZvcgoJYWl4NWNvZmY2NF92ZWMgaWYgNjQtYml0IGJmZCBzdXBwb3J0IGhhcyBiZWVuIGVuYWJsZWQuCgkocG93ZXJwYzY0LSotYWl4NSopOiBPbmx5IGRlZmluZSBpZiA2NC1iaXQgYmZkIHN1cHBvcnQgaGFzCgliZWVuIGVuYWJsZWQuCgoJKiB0YXJnZXRzLmMgKF9iZmRfdGFyZ2V0X3ZlY3RvcltdKTogT25seSBpbmNsdWRlCglhaXg1Y29mZjY0X3ZlYyBpZiA2NC1iaXQgYmZkIHN1cHBvcnQgaGFzIGJlZW4gZW5hYmxlZC4KCjIwMDItMDYtMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjX2FkZF9zdHViKTogUmVwbGFjZSBzdHJjcHkvc3RybmNweSB3aXRoIG1lbWNweS4KCSogZWxmMzItaHBwYS5jIChocHBhX2FkZF9zdHViKTogTGlrZXdpc2UuCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfbGlua19yZWNvcmRfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmbGluay5oIChlbGZfYWRkX2RlZmF1bHRfc3ltYm9sKTogRml4IGNvbW1lbnQgdHlwby4KCShlbGZfYWRkX2RlZmF1bHRfc3ltYm9sKTogUmVwbGFjZSBzdHJjcHkgYW5kIHN0cm5jcHkgd2l0aCBtZW1jcHkuCgkoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogTGlrZXdpc2UuCgkoZWxmX2xpbmtfYXNzaWduX3N5bV92ZXJzaW9uKTogTGlrZXdpc2UuCgkqIGhhc2guYyAoYmZkX2hhc2hfbG9va3VwKTogTGlrZXdpc2UuCgkqIGxpbmtlci5jIChfYmZkX2dlbmVyaWNfbGlua19hZGRfb25lX3N5bWJvbCk6IExpa2V3aXNlLgoJKiBzZWN0aW9uLmMgKGJmZF9nZXRfdW5pcXVlX3NlY3Rpb25fbmFtZSk6IExpa2V3aXNlLgoJKiBzeW1zLmMgKF9iZmRfc3RhYl9zZWN0aW9uX2ZpbmRfbmVhcmVzdF9saW5lKTogTGlrZXdpc2UuCgkqIGVsZi5jIChfYmZkX2VsZl9tYWtlX3NlY3Rpb25fZnJvbV9waGRyKTogTGlrZXdpc2UuCgkoYXNzaWduX3NlY3Rpb25fbnVtYmVycyk6IExpa2V3aXNlLgoJKF9iZmRfZWxmY29yZV9tYWtlX3BzZXVkb3NlY3Rpb24pOiBMaWtld2lzZS4KCShlbGZjb3JlX2dyb2tfbHdwc3RhdHVzKTogTGlrZXdpc2UuCgkoZWxmY29yZV9ncm9rX3dpbjMycHN0YXR1cyk6IExpa2V3aXNlLgoJKGVsZmNvcmVfd3JpdGVfbm90ZSk6IENvbnN0aWZ5IGlucHV0IHBhcmFtcy4gIFVzZSBQVFIgaW5zdGVhZCBvZgoJdm9pZCAqLiAgSW5jbHVkZSB0ZXJtaW5hdGluZyBOVUwgaW4gbmFtZXN6LiAgQ29ycmVjdCBwYWRkaW5nLgoJU3VwcG9ydCBOVUxMICJuYW1lIiBwYXJhbS4gIFVzZSBtZW1jcHkgaW5zdGVhZCBvZiBzdHJjcHkuCgkoZWxmY29yZV93cml0ZV9wcnBzaW5mbyk6IENvbnN0aWZ5IGlucHV0IHBhcmFtcy4KCShlbGZjb3JlX3dyaXRlX3Byc3RhdHVzKTogTGlrZXdpc2UuICBVc2UgUFRSIGluc3RlYWQgb2Ygdm9pZCAqLgoJKGVsZmNvcmVfd3JpdGVfbHdwc3RhdHVzKTogTGlrZXdpc2UuCgkoZWxmY29yZV93cml0ZV9wc3RhdHVzKTogTGlrZXdpc2UuCgkoZWxmY29yZV93cml0ZV9wcmZwcmVnKTogTGlrZXdpc2UuCgkoZWxmY29yZV93cml0ZV9wcnhmcHJlZyk6IExpa2V3aXNlLgoJKiBlbGYtYmZkLmggKGVsZmNvcmVfd3JpdGVfbm90ZSk6IFVwZGF0ZSBkZWNsYXJhdGlvbi4KCShlbGZjb3JlX3dyaXRlX3BycHNpbmZvKTogTGlrZXdpc2UuCgkoZWxmY29yZV93cml0ZV9wcnN0YXR1cyk6IExpa2V3aXNlLgoJKGVsZmNvcmVfd3JpdGVfcHN0YXR1cyk6IExpa2V3aXNlLgoJKGVsZmNvcmVfd3JpdGVfcHJmcHJlZyk6IExpa2V3aXNlLgoJKGVsZmNvcmVfd3JpdGVfcHJ4ZnByZWcpOiBMaWtld2lzZS4KCShlbGZjb3JlX3dyaXRlX2x3cHN0YXR1cyk6IExpa2V3aXNlLgoKMjAwMi0wNi0yNSAgSmFzb24gRWNraGFyZHQgIDxqbGVAcmljZS5lZHU+CgoJKiBlY29mZi5jIChlY29mZl9zZXRfc3ltYm9sX2luZm8pOiBTZXQgQlNGX0ZVTkNUSU9OIGZvcgoJc3ltYm9scyBvZiB0eXBlIHN0UHJvYyBhbmQgc3RTdGF0aWNQcm9jLgoKMjAwMi0wNi0yNSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVjb2ZmLmM6IFZBcmlvdXMgZm9ybWF0dGluZyBmaXhlcy4KCjIwMDItMDYtMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb2ZmLXJzNjAwMC5jICh4Y29mZl9nZW5lcmF0ZV9ydGluaXQpOiBGaXggdHlwby4KCjIwMDItMDYtMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBhb3V0LWFkb2JlLmM6IERvbid0IGNvbXBhcmUgYWdhaW5zdCAidHJ1ZSIgb3IgImZhbHNlLgoJKiBhb3V0LXRhcmdldC5oOiBMaWtld2lzZS4KCSogYW91dHguaDogTGlrZXdpc2UuCgkqIGFyY2hpdmUuYzogTGlrZXdpc2UuCgkqIGJvdXQuYzogTGlrZXdpc2UuCgkqIGNhY2hlLmM6IExpa2V3aXNlLgoJKiBjb2ZmLWEyOWsuYzogTGlrZXdpc2UuCgkqIGNvZmYtYWxwaGEuYzogTGlrZXdpc2UuCgkqIGNvZmYtaTM4Ni5jOiBMaWtld2lzZS4KCSogY29mZi1taXBzLmM6IExpa2V3aXNlLgoJKiBjb2ZmLW9yMzIuYzogTGlrZXdpc2UuCgkqIGNvZmY2NC1yczYwMDAuYzogTGlrZXdpc2UuCgkqIGNvZmZjb2RlLmg6IExpa2V3aXNlLgoJKiBjb2ZmZ2VuLmM6IExpa2V3aXNlLgoJKiBjcHUtbnMzMmsuYzogTGlrZXdpc2UuCgkqIGVjb2ZmLmM6IExpa2V3aXNlLgoJKiBlY29mZmxpbmsuYzogTGlrZXdpc2UuCgkqIGVsZi5jOiBMaWtld2lzZS4KCSogZWxmMzItYXJtLmg6IExpa2V3aXNlLgoJKiBlbGYzMi1jcmlzLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1kMzB2LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzg2LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1tY29yZS5jOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jOiBMaWtld2lzZS4KCSogZWxmMzItc2g2NC5jOiBMaWtld2lzZS4KCSogZWxmMzItdjg1MC5jOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXNoNjQuYzogTGlrZXdpc2UuCgkqIGVsZmNvZGUuaDogTGlrZXdpc2UuCgkqIGVsZmNvcmUuaDogTGlrZXdpc2UuCgkqIGVsZmxpbmsuaDogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuYzogTGlrZXdpc2UuCgkqIGkzODZvczlrLmM6IExpa2V3aXNlLgoJKiBpZWVlLmM6IExpa2V3aXNlLgoJKiBsaWJiZmQuYzogTGlrZXdpc2UuCgkqIGxpbmtlci5jOiBMaWtld2lzZS4KCSogbW1vLmM6IExpa2V3aXNlLgoJKiBubG0zMi1hbHBoYS5jOiBMaWtld2lzZS4KCSogbmxtMzItaTM4Ni5jOiBMaWtld2lzZS4KCSogbmxtMzItcHBjLmM6IExpa2V3aXNlLgoJKiBubG0zMi1zcGFyYy5jOiBMaWtld2lzZS4KCSogbmxtY29kZS5oOiBMaWtld2lzZS4KCSogb2FzeXMuYzogTGlrZXdpc2UuCgkqIHBkcDExLmM6IExpa2V3aXNlLgoJKiBwZWljb2RlLmg6IExpa2V3aXNlLgoJKiByZWxvYy5jOiBMaWtld2lzZS4KCSogc29tLmM6IExpa2V3aXNlLgoJKiBzcmVjLmM6IExpa2V3aXNlLgoJKiB0ZWtoZXguYzogTGlrZXdpc2UuCgkqIHZtcy5jOiBMaWtld2lzZS4KCSogeGNvZmZsaW5rLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1zcGFyYy5jOiBFZGl0IGNvbW1lbnQgdG8gbm90IHVzZSAiPT0gZmFsc2UiLgoKCSogYW91dGYxLmg6IERvbid0IHVzZSAiPyB0cnVlIDogZmFsc2UiLgoJKiBlY29mZi5jOiBMaWtld2lzZS4KCSogZm9ybWF0LmM6IExpa2V3aXNlLgoJKiBpZWVlLmM6IExpa2V3aXNlLgoJKiBsaW5rZXIuYzogTGlrZXdpc2UuCgkqIG1tby5jOiBMaWtld2lzZS4KCSogb2FzeXMuYzogTGlrZXdpc2UuCgoyMDAyLTA2LTIzICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9hcmNoaXZlX3N5bWJvbHMpOiBGb3IgdGhlIGRlZmF1bHQKCXZlcnNpb24sIGNoZWNrIHJlZmVyZW5jZXMgd2l0aCBvbmx5IG9uZSBgQCcgZmlyc3QuCgoyMDAyLTA2LTIzICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX21hcmtfbWlsbGlfYW5kX2V4cG9ydGVkX2Z1bmN0aW9ucyk6IE5ldwoJZnVuY3Rpb24uCgkoYWxsb2NhdGVfZ2xvYmFsX2RhdGFfZGx0KTogRG9uJ3QgYWRkIG1pbGxpY29kZSBzeW1ib2xzIHRvIGR5bmFtaWMKCXN5bWJvbCB0YWJsZS4KCShhbGxvY2F0ZV9nbG9iYWxfZGF0YV9vcGQsIGFsbG9jYXRlX2R5bnJlbF9lbnRyaWVzKTogTGlrZXdpc2UuCgkoZWxmNjRfaHBwYV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBSZXZpc2UgdG8gdXNlCgllbGY2NF9ocHBhX21hcmtfbWlsbGlfYW5kX2V4cG9ydGVkX2Z1bmN0aW9ucy4KCShlbGY2NF9ocHBhX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IFJlbW92ZSBjb2RlIHRvIGtlZXAgbWlsbGljb2RlCglzeW1ib2xzIG91dCBvZiBkeW5hbWljIHN5bWJvbCB0YWJsZS4KCjIwMDItMDYtMjMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBwby9TUkMtUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgoJKiBlbGZsaW5rLmg6IENvbW1lbnQgdHlwbyBmaXhlcy4KCjIwMDItMDYtMjMgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVsZi1iZmQuaCAoZWxmX2xpbmtfbG9hZGVkX2xpc3QpOiBOZXcgc3RydWN0dXJlLgoJKGVsZl9saW5rX2hhc2hfdGFibGUpOiBBZGQgImxvYWRlZCIuCgkqIGVsZi5jIChfYmZkX2VsZl9saW5rX2hhc2hfdGFibGVfaW5pdCk6IEluaXRpYWxpemUgImxvYWRlZCIuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfY2hlY2tfdmVyc2lvbmVkX3N5bWJvbCk6IE5ldyBmdW5jdGlvbi4KCShlbGZfbGlua19vdXRwdXRfZXh0c3ltKTogQ2FsbCBlbGZfbGlua19jaGVja192ZXJzaW9uZWRfc3ltYm9sLgoKMjAwMi0wNi0xOSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBlbGZsaW5rLmggKHNpemVfZHluYW1pY19zZWN0aW9ucyk6IElmIHRoZSB0YXJnZXQgZG9lcyBub3QKCXN1cHBvcnQgYW4gRUxGIHN0eWxlIGhhc2ggdGFibGUsIHJldHVybiB0cnVlLCBpbmRpY2F0aW5nIHRoYXQKCW5vdGhpbmcgbmVlZGVkIHRvIGJlIGRvbmUsIHJhdGhlciB0aGFuIGZhbHNlLCBpbmRpY2F0aW5nIHRoYXQgdGhlCglzZWN0aW9uJ3Mgc2l6ZSBjb3VsZCBub3QgYmUgY29tcHV0ZWQuCgoyMDAyLTA2LTE4ICBEYXZlIEJyb2xsZXkgIDxicm9sbGV5QHJlZGhhdC5jb20+CgoJRnJvbSBDYXRoZXJpbmUgTW9vcmUsIE1pY2hhZWwgTWVpc3NuZXIsIERhdmUgQnJvbGxleToKCSogcG8vU1JDLVBPVEZJTEVTLmluOiBBZGQgY3B1LWZydi5jIGFuZCBlbGYzMi1mcnYuYwoJKiB0YXJnZXRzLmM6IFN1cHBvcnQgYmZkX2VsZjMyX2Zydl92ZWMuCgkqIHJlbG9jLmM6IEFkZCBGUlYgcmVsb2NzLgoJKiBjb25maWd1cmUuaW46IEFkZCBzdXBwb3J0IGZvciBiZmQtZWxmMzItZnJ2LXZlYy4KCSogY29uZmlnLmJmZCAodGFyZ19jcHUpOiBBZGQgc3VwcG9ydCBmb3IgZnJ2LSotZWxmLgoJKiBhcmNodXJlcy5jOiBBZGQgZnJ2IGFyY2ggYW5kIG1hY2hpbmVzLgoJKiBNYWtlZmlsZS5hbSAoQUxMX01BQ0hJTkVTKTogQWRkIGNwdS1mcnYubG8uCgkoQUxMX01BQ0hJTkVTX0NGSUxFUyk6IEFkZCBjcHUtZnJ2LmMuCgkoQkZEMzJfQkFDS0VORFMpOiBBZGQgZWxmMzItZnJ2LmxvLgoJKEJGRDMyX0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCBlbGYzMi1mcnYuYwoJKGNwdS1mcnYubG8pOiBOZXcgdGFyZ2V0LgoJKGVsZjMyLWZydi5sbyk6IE5ldyB0YXJnZXQuCgkqIGNwdS1mcnYuYzogTmV3IGZpbGUuCgkqIGVsZjMyLWZydi5jOiBOZXcgZmlsZS4KCjIwMDItMDYtMTggIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmY29kZS5oIChlbGZfb2JqZWN0X3ApOiBTYW5pdHkgY2hlY2sgZWhfc2hvZmYgPT0gMCBpbXBsaWVzCgllX3NobnVtID09IDAuCglPbmx5IHJlYWQgdGhlIGZpcnN0IHNlY3Rpb24gaGVhZGVyIGlmIGVfc2hvZmYgaXMgbm9uLXplcm8uCglEb24ndCBjb25zaWRlciBlX3Noc3RybmR4IGlmIHRoZXJlIGFyZSBubyBzZWN0aW9ucy4KCjIwMDItMDYtMTcgIFRvbSBSaXggPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLWQxMHYuYyAoZWxmX2QxMHZfaG93dG9fdGFibGUpOiBDaGFuZ2UgUl9EMTBWXzEwX1BDUkVMX1IsCglSX0QxMFZfMTBfUENSRUxfTCBhbmQgUl9EMTBWXzE4X1BDUkVMIHRvIHVzZQoJY29tcGxhaW5fb3ZlcmZsb3dfYml0ZmllbGQuCgoyMDAyLTA2LTE3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogb3BuY2xzLmMgKGJmZF9vcGVucik6IFJlbW92ZSByZWR1bmRhbnQgYmZkX3NldF9lcnJvci4KCShiZmRfZmRvcGVucik6IExpa2V3aXNlLgoJKGJmZF9vcGVuc3RyZWFtcik6IExpa2V3aXNlLgoJKGJmZF9vcGVudyk6IExpa2V3aXNlLgoKCSogdGFyZ2V0cy5jOiBTb3J0IHRhcmdldCB2ZWNzLgoJKF9iZmRfdGFyZ2V0X3ZlY3Rvcik6IEFkZCBhaXg1Y29mZjY0X3ZlYywgYmZkX2VsZjMyX3NoNjRfdmVjLAoJYmZkX2VsZjMyX3NoNjRsX3ZlYywgYmZkX2VsZjMyX3NoNjRsbmJzZF92ZWMsCgliZmRfZWxmMzJfc2g2NG5ic2RfdmVjLCBiZmRfZWxmNjRfc2g2NF92ZWMsIGJmZF9lbGY2NF9zaDY0bF92ZWMsCgliZmRfZWxmNjRfc2g2NGxuYnNkX3ZlYywgYmZkX2VsZjY0X3NoNjRuYnNkX3ZlYy4KCSogY29uZmlndXJlLmluOiBTb3J0IHRhcmdldCB2ZWNzLiAgQWRkIG04OGttYWNoM192ZWMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMDYtMTYgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGVsZjY0LW1taXguYyAoYnBvX3JlbG9jX3JlcXVlc3Rfc29ydF9mbik6IFVzZSBtZW1iZXIKCWJwb19yZWxvY19ubyB0byBicmVhayBzb3J0IG9yZGVyIHRpZXMsIG5vdCBhZGRyZXNzIG9mIGl0ZW1zLgoKMjAwMi0wNi0xNiAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlQGhpYXVseTEuaGlhLm5yYy5jYT4KCgkqIGVsZi1ocHBhLmggKGVsZl9ocHBhX2ZpbmFsX2xpbmspOiBGaXggZm9ybWF0dGluZyBpbiBjb21tZW50LgoJU2tpcCBleGNsdWRlZCBzZWN0aW9ucyBpbiBkZXRlcm1pbmcgX19ncCB2YWx1ZS4KCShlbGZfaHBwYV9maW5hbF9saW5rX3JlbG9jYXRlKTogVXNlIHRoZSBzeW1ib2wncyBhZGRyZXNzIGluCglSX1BBUklTQ19GUFRSNjQgcmVsb2NhdGlvbnMgdGhhdCBkb24ndCBuZWVkIGFuIG9wZCBlbnRyeS4KCSogZWxmNjQtaHBwYS5jIChhbGxvY2F0ZV9keW5yZWxfZW50cmllcyk6IFNpbXBsaWZ5IGNvZGUuCgkoZWxmNjRfaHBwYV9maW5hbGl6ZV9keW5yZWxvYyk6IExpa2V3aXNlLgoJKGVsZjY0X2hwcGFfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTW92ZSBjb21tZW50cyBhbmQgZml4IHR5cG8uCgkoZWxmNjRfaHBwYV9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBCcmVhayB1cCBhc3NlcnQuCgoyMDAyLTA2LTE0ICBTZXJnZXkgR3JpZ29yaWV2ICA8c2VyZ2VAbGVvcG9sZC5QaHlzaWsuVW5pLUF1Z3NidXJnLkRFPgoKCSogcGVpLWkzODYuYyAoQ09GRl9TRUNUSU9OX0FMSUdOTUVOVF9FTlRSSUVTKTogRW5hYmxlIDE2IGJ5dGUKCWFsaWdubWVudCBmb3IgLmJzcywgLmRhdGEgYW5kIC50ZXh0IHNlY3Rpb25zIHNvIHRoYXQgc3NlIGFuZCBzc2UyCgljb2RlIHdpbGwgd29yay4KCSogcGUtaTM4Ni5jIChDT0ZGX1NFQ1RJT05fQUxJR05NRU5UX0VOVFJJRVMpOiBMaWtld2lzZS4KCjIwMDItMDYwMTMgIEoib3JuIFJlbm5lY2tlICA8am9lcm4ucmVubmVja2VAc3VwZXJoLmNvbT4KCgljb25maWcuYmZkOiBBZGQgc3VwcG9ydCBmb3Igc2hbMTIzNF1sKi0qLWVsZiogfCBzaDNlbCotKi1lbGYqLAoJc2hbMTIzNF0qLWVsZiouCgoyMDAyLTA2LTEyICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogZWxmbGluay5oIChlbGZfYmZkX2ZpbmFsX2xpbmspOiBJbXByb3ZlIGVycm9yIGhhbmRsaW5nIGZvciBtaXNzaW5nCglkeW5hbWljIHNlY3Rpb25zLgoKCSogZWxmNjQtaHBwYS5jIChhbGxvY2F0ZV9nbG9iYWxfZGF0YV9vcGQpOiBXZSBkb24ndCBuZWVkIGFuIG9wZCBlbnRyeQoJZm9yIGEgc3ltYm9sIHRoYXQgaGFzIG5vIG91dHB1dCBzZWN0aW9uLgoJKGFsbG9jYXRlX2R5bnJlbF9lbnRyaWVzKTogQ29ycmVjdCBjb21tZW50LgoJKGVsZjY0X2hwcGFfZmluYWxpemVfZHlucmVsb2MpOiBMaWtld2lzZS4gIERvbid0IGNyZWF0ZSBhbiBvcGQgZW50cnkKCXVubGVzcyB3ZSB3YW50IG9uZS4KCShlbGY2NF9ocHBhX2ZpbmFsaXplX29wZCk6IFByZXZlbnQgc2VnZmF1bHQgaWYgZHluX2ggaXMgTlVMTC4KCShlbGY2NF9ocHBhX2ZpbmFsaXplX2RsdCk6IExpa2V3aXNlLiAgUHJldmVudCBzZWdmYXVsdCBmb3Igc3ltYm9scwoJd2l0aCBubyBzZWN0aW9uLiAgUmVtb3ZlIHVubmVjZXNzYXJ5IHBhcmVudGhlc2VzLgoKMjAwMi0wNi0xMSAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGNvZmZjb2RlLmggKGNvZmZfY29tcHV0ZV9zZWN0aW9uX2ZpbGVfcG9zaXRpb25zKTogQWRkIGRhdGEKCXNlY3Rpb24gdG8gQUlYIGxvYWRlciBhbGlnbm1lbnQgY2hlY2suCgoJKiBjb2ZmLXJzNjAwMC5jIChfYmZkX3hjb2ZmX21rb2JqZWN0KTogU2V0IGRlZmF1bHQgdGV4dCBzZWN0aW9uCglhbGlnbm1lbnQgdG8gNCBieXRlcy4KCShfYmZkX3hjb2ZmX2NvcHlfcHJpdmF0ZV9iZmRfZGF0YSk6IFVzZSB0ZXh0IGFuZCBkYXRhIGFsaWdubWVudAoJcG93ZXIgYWNjZXNzb3IgbWFjcm8uCgkoZG9fc2hhcmVkX29iamVjdF9wYWRkaW5nKTogUmVtb3ZlIGludmFsaWQgYXNzZXJ0aW9uLgoKMjAwMi0wNi0xMCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogc2VjdGlvbi5jIChfYmZkX3N0cmlwX3NlY3Rpb25fZnJvbV9vdXRwdXQpOiBTZXQgU0VDX0VYQ0xVREUKCWZvciByZW1vdmVkIG91dHB1dCBzZWN0aW9ucy4KCjIwMDItMDYtMTAgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAcmVkaGF0LmNvbT4KCgkqIG1lcmdlLmMgKG1lcmdlX3N0cmluZ3MpOiBVc2UgaHRhYl9jcmVhdGVfYWxsb2Mgd2l0aCBjYWxsb2MsIG5vdAoJaHRhYl9hbGxvYy4KCSogZWxmLXN0cnRhYi5jIChfYmZkX2VsZl9zdHJ0YWJfZmluYWxpemUpOiBMaWtld2lzZS4KCjIwMDItMDYtMDggIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmLmMgKGNvcHlfcHJpdmF0ZV9iZmRfZGF0YSk6IERvbid0IGNhc3QgdG8gYmZkX3NpemVfdHlwZSB0bwoJd29yayBhcm91bmQgYSBsb25nIGxvbmcgYnVnIGluIGdjYyAyLjk2IG9uIG1pcHMuCgoyMDAyLTA2LTA4ICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogTWFrZWZpbGUuYW0gKEJGRDMyX0JBQ0tFTkRTKTogQWRkIHZheDFrbmV0YnNkLmxvLgoJKEJGRDMyX0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCB2YXgxa25ldGJzZC5jLgoJUmVnZW5lcmF0ZSBkZXBlbmRlbmN5IGxpc3RzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmJmZCAodmF4LSotbmV0YnNkZWxmKiwgdmF4LSotbmV0YnNkYW91dCopOiBBZGQKCXZheDFrbmV0YnNkX3ZlYyB0byB0YXJnX3NlbHZlY3MuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHZheDFrbmV0YnNkX3ZlYy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiB0YXJnZXRzLmMgKF9iZmRfdGFyZ2V0X3ZlY3Rvcik6IEFkZCB2YXgxa25ldGJzZF92ZWMuCgkqIHZheDFrbmV0YnNkLmM6IE5ldyBmaWxlLgoJKiB2YXhuZXRic2QuYzogVXBkYXRlIGNvcHlyaWdodCB5ZWFycy4KCShUQVJHRVRfUEFHRV9TSVpFKTogU2V0IHRvIDB4MTAwMC4KCShERUZBVUxUX01JRCk6IFNldCB0byBNX1ZBWDRLX05FVEJTRC4KCjIwMDItMDYtMDggIE1hdHQgVGhvbWFzICA8bWF0dEAzYW0tc29mdHdhcmUuY29tPgoKCSogbGliYW91dC5oIChlbnVtIG1hY2hpbmVfdHlwZSk6IEFkZCBNX1ZBWDRLX05FVEJTRC4KCjIwMDItMDYtMDggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1zaDY0LmMgKHNoNjRfZWxmNjRfbGlua19vdXRwdXRfc3ltYm9sX2hvb2spOiBNYWtlIHN0YXRpYy4KCjIwMDItMDYtMDggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKCSogYXJtbmV0YnNkLmM6IFJlcGxhY2UgQ09OU1Qgd2l0aCBjb25zdC4KCSogY29yZWZpbGUuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWRseC5jOiBMaWtld2lzZS4KCSogZWxmNjQtbWlwcy5jOiBMaWtld2lzZS4KCSogbW1vLmM6IExpa2V3aXNlLgoJKiBuczMya25ldGJzZC5jOiBMaWtld2lzZS4KCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX2FkZF9zeW1ib2xfaG9vayk6IENoZWNrIHRoZSBoYXNoCgl0YWJsZSBpcyBlbGY2NC1zcGFyYy4KCjIwMDItMDYtMDggIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFNpbXBsaWZ5IGNvZGUuCglGaXggUkVMQSBhZGRlbmRzIHRvIGdldCBub3Qgc2hpZnRlZCBpbiB0aGUgcmVzdWx0LiBEb24ndCBkbyBzcGVjaWFsCgloYW5kbGluZyBvZiBSX01JUFNfNjQgZm9yIE5ld0FCSS4KCjIwMDItMDYtMDcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBhb3V0eC5oIChOQU1FKGFvdXQsc2x1cnBfc3ltYm9sX3RhYmxlKSk6IFVzZSBiZmRfem1hbGxvYy4KCShOQU1FKGFvdXQsc2x1cnBfcmVsb2NfdGFibGUpKTogTGlrZXdpc2UuCgkqIGNvZmYtbWlwcy5jIChtaXBzX3JlbGF4X3NlY3Rpb24pOiBVc2UgYmZkX3phbGxvYy4KCSogY29mZi1yczYwMDAuYyAoeGNvZmZfd3JpdGVfYXJtYXBfYmlnKTogVXNlIGJmZF96bWFsbG9jLgoJKHhjb2ZmX3dyaXRlX2FyY2hpdmVfY29udGVudHNfYmlnKTogTGlrZXdpc2UuCgkoeGNvZmZfZ2VuZXJhdGVfcnRpbml0KTogTGlrZXdpc2UuCgkoeGNvZmZfZ2VuZXJhdGVfcnRpbml0KTogTGlrZXdpc2UsIGFuZCBjaGVjayBlcnJvciByZXR1cm4uCgkqIGNvZmY2NC1yczYwMDAuYyAoeGNvZmY2NF9nZW5lcmF0ZV9ydGluaXQpOiBMaWtld2lzZS4KCSogY29mZmdlbi5jIChjb2ZmX3NlY3Rpb25fc3ltYm9sKTogVXNlIGJmZF96YWxsb2MuCgkoY29mZl9nZXRfbm9ybWFsaXplZF9zeW10YWIpOiBMaWtld2lzZS4KCShjb2ZmX21ha2VfZW1wdHlfc3ltYm9sKTogTGlrZXdpc2UuCgkoYmZkX2NvZmZfc2V0X3N5bWJvbF9jbGFzcyk6IExpa2V3aXNlLgoJKiBjb2ZmbGluay5jIChjb2ZmX2xpbmtfYWRkX3N5bWJvbHMpOiBMaWtld2lzZS4KCSogZWNvZmYuYyAoX2JmZF9lY29mZl9tYWtlX2VtcHR5X3N5bWJvbCk6IExpa2V3aXNlLgoJKiBlY29mZmxpbmsuYyAoZWNvZmZfd3JpdGVfc2h1ZmZsZSk6IFVzZSBiZmRfem1hbGxvYy4KCShiZmRfZWNvZmZfd3JpdGVfYWNjdW11bGF0ZWRfZGVidWcpOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYyAoZ2V0X2dvdF9lbnRyeSk6IFVzZSBiZmRfemFsbG9jLgoJKiBpMzg2bGludXguYyAoYmZkX2kzODZsaW51eF9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogaTM4Nmx5bnguYyAoTkFNRShseW54LHNsdXJwX3JlbG9jX3RhYmxlKSk6IFVzZSBiZmRfem1hbGxvYy4KCSogaWVlZS5jIChkb193aXRoX3JlbG9jcyk6IFVzZSBiZmRfemFsbG9jLgoJKiBtNjhrbGludXguYyAoYmZkX202OGtsaW51eF9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogcGRwMTEuYyAoTkFNRShhb3V0LHNsdXJwX3N5bWJvbF90YWJsZSkpOiBVc2UgYmZkX3ptYWxsb2MuCgkoTkFNRShhb3V0LHNsdXJwX3JlbG9jX3RhYmxlKSk6IExpa2V3aXNlLgoJKE5BTUUoYW91dCxzcXVpcnRfb3V0X3JlbG9jcykpOiBEb24ndCBtZW1zZXQgd2hlbiB6YWxsb2MnZC4KCSogcmVsb2MxNi5jIChiZmRfY29mZl9yZWxvYzE2X3JlbGF4X3NlY3Rpb24pOiBVc2UgYmZkX3ptYWxsb2MuCgkqIHNvbS5jIChzb21fYnVpbGRfYW5kX3dyaXRlX3N5bWJvbF90YWJsZSk6IExpa2V3aXNlLgoJKHNvbV9zbHVycF9zdHJpbmdfdGFibGUpOiBMaWtld2lzZS4KCShzb21fc2x1cnBfc3ltYm9sX3RhYmxlKTogTGlrZXdpc2UuCgkoc29tX2JmZF9hcl93cml0ZV9zeW1ib2xfc3R1ZmYpOiBMaWtld2lzZS4KCSogc3BhcmNsaW51eC5jIChiZmRfc3BhcmNsaW51eF9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBVc2UgYmZkX3phbGxvYy4KCSogc3Vub3MuYyAoYmZkX3N1bm9zX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiB0ZWtoZXguYyAoZmluZF9jaHVuayk6IExpa2V3aXNlLiAgR2V0IHJpZCBvZiB1bnVzZWQgInNuYW1lIi4KCSogdm1zLWdzZC5jIChfYmZkX3Ztc19zbHVycF9nc2QpOiBVc2UgYmZkX3ptYWxsb2MuCgkqIHhjb2ZmbGluay5jICh4Y29mZl9saW5rX2FkZF9zeW1ib2xzKTogVXNlIGJmZF96YWxsb2MvYmZkX3ptYWxsb2MuCgoyMDAyLTA2LTA3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLWJmZC5oIChzdHJ1Y3QgYmZkX2VsZl9zZWN0aW9uX2RhdGEgPGdyb3VwX25hbWU+KTogUmVwbGFjZSB3aXRoCgkiZ3JvdXAiIHVuaW9uLgoJKGVsZl9ncm91cF9uYW1lKTogVXBkYXRlLgoJKGVsZl9ncm91cF9pZCk6IERlZmluZS4KCShiZmRfZWxmX3NldF9ncm91cF9jb250ZW50cyk6IERlY2xhcmUuCgkqIGVsZi5jIChlbGZfZmFrZV9zZWN0aW9ucyk6IFF1YWxpZnkgdXNlIG9mIGVsZl9ncm91cF9uYW1lLgoJKHNldF9ncm91cF9jb250ZW50cyk6IFJlbmFtZSB0byBiZmRfZWxmX3NldF9ncm91cF9jb250ZW50cy4gIFJlbW92ZQoJQVRUUklCVVRFX1VOVVNFRCBmcm9tIGZhaWxlZHB0cmFyZy4gIElmIGVsZl9ncm91cF9pZCBpcyBzZXQsIHVzZQoJdGhhdCBzeW0gZm9yIHRoZSBzaWduYXR1cmUuCgkoX2JmZF9lbGZfY29tcHV0ZV9zZWN0aW9uX2ZpbGVfcG9zaXRpb25zKTogRG9uJ3QgY2FsbAoJc2V0X2dyb3VwX2NvbnRlbnRzIGZvciAibGQgLXIiIGNhc2UuCgkoc3dhcF9vdXRfc3ltcyk6IFVzZSBiZmRfemFsbG9jLgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9hcmNoaXZlX3N5bWJvbHMpOiBMaWtld2lzZS4KCShOQU1FKGJmZF9lbGYsc2l6ZV9keW5hbWljX3NlY3Rpb25zKSk6IExpa2V3aXNlLgoJKGVsZl9iZmRfZmluYWxfbGluayk6IENhbGwgYmZkX2VsZl9zZXRfZ3JvdXBfY29udGVudHMuCgoyMDAyLTA2LTA3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogQWxsb3cgdW5yZXNvbHZlZAoJcmVsb2NzIGluIG9wZCBmb3Igbm9uLXNoYXJlZCB0b28uCgoyMDAyLTA2LTA2ICBKZWZmcmV5IExhdyAgPGxhd0ByZWRoYXQuY29tPgoKCSogZWxmMzItaDgzMDAuYyAoZWxmMzJfaDhfcmVsYXhfc2VjdGlvbik6IElnbm9yZSB1bmludGVyZXN0aW5nCglyZWxvY2F0aW9ucy4KCjIwMDItMDYtMDYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogbWVyZ2UuYzogSW5jbHVkZSBsaWJpYmVydHkuaC4KCSogZWxmLXN0cnRhYi5jOiBJbmNsdWRlIGxpYmliZXJ0eS5oLgoKMjAwMi0wNi0wNiAgRWxpYXMgQXRoYW5hc29wb3Vsb3MgIDxlYXRoYW5Ab3RlbmV0LmdyPgoKCSogcGVYWGlnZW4uYyAocGVfcHJpbnRfaWRhdGEpOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgoKMjAwMi0wNi0wNiAgRGF2aWQgSGVpbmUgPGRsaGVpbmVAdGVuc2lsaWNhLmNvbT4KCgkqIGVsZi5jIChhc3NpZ25fZmlsZV9wb3NpdGlvbnNfZm9yX3NlZ21lbnRzKTogUmVtb3ZlIHVuYWxsb2NhdGVkCglzZWN0aW9ucyBmcm9tIHRoZSBzZWN0aW9uIHRvIHNlZ21lbnQgbWFwcGluZyBmb3IgUFRfTE9BRCBzZWdtZW50cy4KCVVwZGF0ZSBjb21tZW50IGFib3V0IGVtcHR5IGxvYWRhYmxlIHNlZ21lbnRzLgoKMjAwMi0wNi0wNiAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogc3RhYnMuYyAoX2JmZF9saW5rX3NlY3Rpb25fc3RhYnMpOiBDaGVjayB0aGF0IHRoZSBzeW1ib2wgb2Zmc2V0CglpcyB3aXRoaW4gdGhlIC5zdGFic3RyIHNlY3Rpb24uCgoyMDAyLTA2LTA2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLWJmZC5oIChzdHJ1Y3QgZWxmX3NpemVfaW5mbyA8c3dhcF9zeW1ib2xfaW4+KTogRnVuY3Rpb24gYXJncwoJYXJlICJjb25zdCBQVFIiLCBub3QgImNvbnN0IFBUUiAqIi4KCShiZmRfZWxmMzJfc3dhcF9zeW1ib2xfaW4pOiBMaWtld2lzZS4KCShiZmRfZWxmNjRfc3dhcF9zeW1ib2xfaW4pOiBMaWtld2lzZS4KCSogZWxmY29kZS5oIChlbGZfc3dhcF9zeW1ib2xfaW4pOiBDaGFuZ2UgaW5wdXQgYXJncyB0byBjb25zdCBQVFIuCgkoZWxmX3NsdXJwX3N5bWJvbF90YWJsZSk6IEFkanVzdCBjYWxsIHRvIGVsZl9zd2FwX3N5bWJvbF9pbi4KCSogZWxmbGluay5oIChlbGZfbGlua19pc19kZWZpbmVkX2FyY2hpdmVfc3ltYm9sKTogTGlrZXdpc2UuCgkoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogTGlrZXdpc2UuCgkoZWxmX2xpbmtfcmVjb3JkX2xvY2FsX2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgkoZWxmX2xpbmtfaW5wdXRfYmZkKTogTGlrZXdpc2UuCgkoZWxmX2djX21hcmspOiBMaWtld2lzZS4KCShlbGZfcmVsb2Nfc3ltYm9sX2RlbGV0ZWRfcCk6IExpa2V3aXNlLgoJKiBlbGYtbTEwMjAwLmMgKG1uMTAyMDBfZWxmX3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCShtbjEwMjAwX2VsZl9yZWxheF9kZWxldGVfYnl0ZXMpOiBMaWtld2lzZS4KCShtbjEwMjAwX2VsZl9zeW1ib2xfYWRkcmVzc19wKTogTGlrZXdpc2UuCgkobW4xMDIwMF9lbGZfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogTGlrZXdpc2UuCgkqIGVsZi1tMTAzMDAuYyAobW4xMDMwMF9lbGZfcmVsYXhfc2VjdGlvbik6IExpa2V3aXNlLgoJKG1uMTAzMDBfZWxmX3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCShtbjEwMzAwX2VsZl9yZWxheF9kZWxldGVfYnl0ZXMpOiBMaWtld2lzZS4KCShtbjEwMzAwX2VsZl9zeW1ib2xfYWRkcmVzc19wKTogTGlrZXdpc2UuCgkobW4xMDMwMF9lbGZfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogTGlrZXdpc2UuCgkqIGVsZjMyLWg4MzAwLmMgKGVsZjMyX2g4X3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCShlbGYzMl9oOF9yZWxheF9kZWxldGVfYnl0ZXMpOiBMaWtld2lzZS4KCShlbGYzMl9oOF9zeW1ib2xfYWRkcmVzc19wKTogTGlrZXdpc2UuCgkoZWxmMzJfaDhfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuYyAoZ2V0X2xvY2FsX3N5bXMpOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jIChiZmRfbTY4a19lbGYzMl9jcmVhdGVfZW1iZWRkZWRfcmVsb2NzKTogTGlrZXdpc2UuCgkqIGVsZjMyLW1pcHMuYyAoYmZkX21pcHNfZWxmMzJfY3JlYXRlX2VtYmVkZGVkX3JlbG9jcyk6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfcmVsYXhfc2VjdGlvbik6IExpa2V3aXNlLgoJKHNoX2VsZl9yZWxheF9kZWxldGVfYnl0ZXMpOiBMaWtld2lzZS4KCShzaF9lbGZfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogTGlrZXdpc2UuCgkqIGVsZjMyLXhzdG9ybXkxNi5jICh4c3Rvcm15MTZfZWxmX3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsYXhfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1ocHBhLmMgKGVsZjY0X2hwcGFfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCgkqIGVsZjY0LW1taXguYyAobW1peF9lbGZfcmVsYXhfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYyAoZ2V0X2xvY2FsX3N5bXMpOiBMaWtld2lzZS4KCSogZWxmNjQtc2g2NC5jIChzaF9lbGY2NF9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDItMDYtMDUgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tPgoKCSogY29uZmlnLmJmZCAoc2g2NGwqLSotZWxmKiwgc2hsKi0qLWVsZiopOiBOZXcgY29uZmlndXJhdGlvbnMuCgoyMDAyLTA2LTA1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLmMgKGdyb3VwX3NpZ25hdHVyZSk6IFN3YXAgaW4gdGhlIHdob2xlIHN5bWJvbCwgYW5kIGhhbmRsZQoJZXh0cmFjdGluZyBzZWN0aW9uIHN5bWJvbCBuYW1lcy4KCShzZXR1cF9ncm91cCk6IEFkZCBjb21tZW50LgoJKHNldF9ncm91cF9jb250ZW50cyk6IFdoZW4gY2FsbGVkIGZyb20gb2JqY29weSBvciBsZCwgYXJyYW5nZSBmb3IKCXNlY3Rpb24gY29udGVudHMgdG8gYmUgd3JpdHRlbi4gIFdyaXRlIGdyb3VwIG1lbWJlciBvdXRwdXQgc2VjdGlvbgoJaW5kaWNlcyB0byBhbGxvdyBvYmpjb3B5IHRvIHJlb3JnYW5pemUgc2VjdGlvbnMuCgkoX2JmZF9lbGZfY29weV9wcml2YXRlX3NlY3Rpb25fZGF0YSk6IENvcHkgZ3JvdXAgaW5mby4KCgkqIGVsZi1iZmQuaCAoc3RydWN0IGVsZl9zaXplX2luZm8pOiBBZGQgc3dhcF9zeW1ib2xfaW4gZmllbGQuCgkoYmZkX2VsZjMyX3N3YXBfc3ltYm9sX2luKTogVXBkYXRlIHByb3RvdHlwZS4KCShiZmRfZWxmNjRfc3dhcF9zeW1ib2xfaW4pOiBMaWtld2lzZS4KCSogZWxmY29kZS5oIChlbGZfc3dhcF9zeW1ib2xfaW4pOiBDaGFuZ2UgaW5wdXQgYXJncyB0byBjb25zdCBQVFIgKi4KCShlbGZfc2x1cnBfc3ltYm9sX3RhYmxlKTogQWRqdXN0IGNhbGwgdG8gZWxmX3N3YXBfc3ltYm9sX2luLgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2lzX2RlZmluZWRfYXJjaGl2ZV9zeW1ib2wpOiBMaWtld2lzZS4KCShlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBMaWtld2lzZS4KCShlbGZfbGlua19yZWNvcmRfbG9jYWxfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCShlbGZfbGlua19pbnB1dF9iZmQpOiBMaWtld2lzZS4KCShlbGZfZ2NfbWFyayk6IExpa2V3aXNlLgoJKGVsZl9yZWxvY19zeW1ib2xfZGVsZXRlZF9wKTogTGlrZXdpc2UuCgkqIGVsZi1tMTAyMDAuYyAobW4xMDIwMF9lbGZfcmVsYXhfc2VjdGlvbik6IExpa2V3aXNlLgoJKG1uMTAyMDBfZWxmX3JlbGF4X2RlbGV0ZV9ieXRlcyk6IExpa2V3aXNlLgoJKG1uMTAyMDBfZWxmX3N5bWJvbF9hZGRyZXNzX3ApOiBMaWtld2lzZS4KCShtbjEwMjAwX2VsZl9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBMaWtld2lzZS4KCSogZWxmLW0xMDMwMC5jIChtbjEwMzAwX2VsZl9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgkobW4xMDMwMF9lbGZfcmVsYXhfc2VjdGlvbik6IExpa2V3aXNlLgoJKG1uMTAzMDBfZWxmX3JlbGF4X2RlbGV0ZV9ieXRlcyk6IExpa2V3aXNlLgoJKG1uMTAzMDBfZWxmX3N5bWJvbF9hZGRyZXNzX3ApOiBMaWtld2lzZS4KCShtbjEwMzAwX2VsZl9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBMaWtld2lzZS4KCSogZWxmMzItaDgzMDAuYyAoZWxmMzJfaDhfcmVsYXhfc2VjdGlvbik6IExpa2V3aXNlLgoJKGVsZjMyX2g4X3JlbGF4X2RlbGV0ZV9ieXRlcyk6IExpa2V3aXNlLgoJKGVsZjMyX2g4X3N5bWJvbF9hZGRyZXNzX3ApOiBMaWtld2lzZS4KCShlbGYzMl9oOF9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBMaWtld2lzZS4KCSogZWxmMzItaHBwYS5jIChnZXRfbG9jYWxfc3ltcyk6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhrLmMgKGJmZF9tNjhrX2VsZjMyX2NyZWF0ZV9lbWJlZGRlZF9yZWxvY3MpOiBMaWtld2lzZS4KCSogZWxmMzItbWlwcy5jIChiZmRfbWlwc19lbGYzMl9jcmVhdGVfZW1iZWRkZWRfcmVsb2NzKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgkoc2hfZWxmX3JlbGF4X2RlbGV0ZV9ieXRlcyk6IExpa2V3aXNlLgoJKHNoX2VsZl9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBMaWtld2lzZS4KCSogZWxmMzIteHN0b3JteTE2LmMgKHhzdG9ybXkxNl9lbGZfcmVsYXhfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LWhwcGEuYyAoZWxmNjRfaHBwYV9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4KCSogZWxmNjQtbW1peC5jIChtbWl4X2VsZl9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChnZXRfbG9jYWxfc3ltcyk6IExpa2V3aXNlLgoJKiBlbGY2NC1zaDY0LmMgKHNoX2VsZjY0X2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfcmVsYXhfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGZjb2RlLmggKE5BTUUoX2JmZF9lbGYsc2l6ZV9pbmZvKSk6IFVwZGF0ZSBpbml0aWFsaXNlci4KCSogZWxmNjQtYWxwaGEuYyAoYWxwaGFfZWxmX3NpemVfaW5mbyk6IExpa2V3aXNlLgoJKiBlbGY2NC1ocHBhLmMgKGhwcGE2NF9lbGZfc2l6ZV9pbmZvKTogTGlrZXdpc2UuCgkqIGVsZjY0LW1pcHMuYyAobWlwc19lbGY2NF9zaXplX2luZm8pOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jIChzMzkwX2VsZjY0X3NpemVfaW5mbyk6IExpa2V3aXNlLgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9zaXplX2luZm8pOiBMaWtld2lzZS4KCjIwMDItMDYtMDUgIE1hY2llaiBXLiBSb3p5Y2tpICA8bWFjcm9AZHMyLnBnLmdkYS5wbD4KCgkqIGVsZjMyLW1pcHMuYyAoZWxmMzJfbWlwc19pZ25vcmVfZGlzY2FyZGVkX3JlbG9jcyk6IE1vdmUgdG8uLi4KCWVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9pZ25vcmVfZGlzY2FyZGVkX3JlbG9jcyk6IC4uLiBoZXJlLgoJZWxmNjQtbWlwcy5jIChlbGZfYmFja2VuZF9pZ25vcmVfZGlzY2FyZGVkX3JlbG9jcyk6IFVzZQoJX2JmZF9taXBzX2VsZl9pZ25vcmVfZGlzY2FyZGVkX3JlbG9jcy4KCWVsZnh4LW1pcHMuaCAoX2JmZF9taXBzX2VsZl9pZ25vcmVfZGlzY2FyZGVkX3JlbG9jcyk6IERlY2xhcmUuCgoyMDAyLTA2LTA1ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfY2FsY3VsYXRlX3JlbG9jYXRpb24pOiBDYWxsCglfYmZkX2VsZl9yZWxfbG9jYWxfc3ltIGZvciBTVFRfU0VDVElPTiByZWxvY2F0aW9ucyBhZ2FpbnN0Cgl0aGUgU0VDX01FUkdFIHNlY3Rpb24uCgoyMDAyLTA2LTA1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29mZi1hbHBoYS5jOiBVcGRhdGUgY29weXJpZ2h0IGRhdGUuCgkqIGNvZmYtbWlwcy5jOiBMaWtld2lzZS4KCSogeGNvZmYtdGFyZ2V0Lmg6IExpa2V3aXNlLgoKCSogYmZkLWluLmg6IFJlbW92ZSAidGFrZW4gZnJvbSB0aGUgc291cmNlIiBjb21tZW50LgoJKiBsaWJiZmQtaW4uaDogTGlrZXdpc2UuCgkqIGxpYmNvZmYtaW4uaDogTGlrZXdpc2UuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgkqIGxpYmNvZmYuaDogUmVnZW5lcmF0ZS4KCgkqIGVsZi5jIChiZmRfZWxmX2Rpc2NhcmRfZ3JvdXApOiBSZXR1cm4gdHJ1ZS4KCSogZWxmLWJmZC5oIChiZmRfZWxmX2Rpc2NhcmRfZ3JvdXApOiBEZWNsYXJlLgoJKiBiZmQtaW4uaCAoYmZkX2VsZl9kaXNjYXJkX2dyb3VwKTogRG9uJ3QgZGVjbGFyZSBoZXJlLgoJKiBzZWN0aW9uLmMgKGJmZF9kaXNjYXJkX2dyb3VwKTogUmVuYW1lIHRvIGJmZF9nZW5lcmljX2Rpc2NhcmRfZ3JvdXAuCgkqIGJmZC5jIChiZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogdGFyZ2V0cy5jIChzdHJ1Y3QgYmZkX3RhcmdldCk6IEFkZCBfYmZkX2Rpc2NhcmRfZ3JvdXAuCgkoQkZEX0pVTVBfVEFCTEVfTElOSyk6IEhlcmUgdG9vLgoJKiBsaWJiZmQtaW4uaCAoX2JmZF9ub2xpbmtfYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIGFvdXQtYWRvYmUuYyAoYW91dF8zMl9iZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogYW91dC10YXJnZXQuaCAoTVlfYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIGFvdXQtdGljMzAuYyAoTVlfYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIGJpbmFyeS5jIChiaW5hcnlfYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIGJvdXQuYyAoYl9vdXRfYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIGNvZmYtYWxwaGEuYyAoX2JmZF9lY29mZl9iZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogY29mZmNvZGUuaCAoY29mZl9iZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogY29mZi1taXBzLmMgKF9iZmRfZWNvZmZfYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIGVsZnh4LXRhcmdldC5oIChiZmRfZWxmTk5fYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIGkzODZtc2Rvcy5jIChtc2Rvc19iZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogaTM4Nm9zOWsuYyAob3M5a19iZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogaWVlZS5jIChpZWVlX2JmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiBpaGV4LmMgKGloZXhfYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIG1tby5jIChtbW9fYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIG5sbS10YXJnZXQuaCAobmxtX2JmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiBvYXN5cy5jIChvYXN5c19iZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogcHBjYm9vdC5jIChwcGNib290X2JmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiBzb20uYyAoc29tX2JmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiBzcmVjLmMgKHNyZWNfYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIHRla2hleC5jICh0ZWtoZXhfYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIHZlcnNhZG9zLmMgKHZlcnNhZG9zX2JmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiB2bXMuYyAodm1zX2JmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiB4Y29mZi10YXJnZXQuaCAoX2JmZF94Y29mZl9iZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogY29mZjY0LXJzNjAwMC5jIChyczYwMDBjb2ZmNjRfdmVjKTogVXBkYXRlIGluaXRpYWxpc2VyLgoJKGFpeDVjb2ZmNjRfdmVjKTogTGlrZXdpc2UuCgkqIGNvZmYtcnM2MDAwLmMgKHJzNjAwMGNvZmZfdmVjLCBwbWFjX3hjb2ZmX3ZlYyk6IExpa2V3aXNlLgoKMjAwMi0wNi0wNCAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChCRkQzMl9CQUNLRU5EUyk6IEFkZCBlbGYzMi1zaDY0LWNvbS5sby4KCShCRkQzMl9CQUNLRU5EU19DRklMRVMpOiBBZGQgZWxmMzItc2g2NC1jb20uYy4KCShlbGYzMi1zaDY0LWNvbS5sbyk6IE5ldyBkZXBlbmRlbmN5IGxpc3QuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmUuaW4gKGJmZF9lbGYzMl9zaDY0X3ZlYywgYmZkX2VsZjMyX3NoNjRsX3ZlYykKCShiZmRfZWxmMzJfc2g2NG5ic2RfdmVjLCBiZmRfZWxmMzJfc2g2NGxuYnNkX3ZlYyk6IEFkZAoJZWxmMzItc2g2NC1jb20ubG8uCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogZWxmMzItc2g2NC5jIChzaDY0X2FkZHJlc3NfaW5fY3JhbmdlcykKCShzaDY0X2dldF9jb250ZW50c190eXBlLCBzaDY0X2FkZHJlc3NfaXNfc2htZWRpYSk6IE1vdmUgdG8uLi4KCShjcmFuZ2VfcXNvcnRfY21wYiwgY3JhbmdlX3Fzb3J0X2NtcGwsIGNyYW5nZV9ic2VhcmNoX2NtcGIpOgoJKGNyYW5nZV9ic2VhcmNoX2NtcGwpOiBQcmVwZW5kIF9iZmRfc2g2NF8gdG8gbmFtZSBhbmQgbW92ZSB0by4uLgoJKiBlbGYzMi1zaDY0LWNvbS5jOiAuLi5oZXJlLiAgTmV3IGZpbGUuCgoyMDAyLTA2LTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItb3BlbnJpc2MuYyAob3BlbnJpc2NfZWxmX2djX21hcmtfaG9vayk6IFJlbW92ZQoJQVRUUklCVVRFX1VOVVNFRCBvbiB1c2VkIHBhcmFtcy4KCSogZWxmMzItdmF4LmMgKGVsZl92YXhfZ2NfbWFya19ob29rKTogUmVtb3ZlIHVubmVjZXNzYXJ5IGNoZWNrcwoJYmVmb3JlIGNhbGxpbmcgYmZkX3NlY3Rpb25fZnJvbV9lbGZfaW5kZXggb24gbG9jYWwgc3ltcy4KCSogZWxmNjQtc2g2NC5jIChzaF9lbGY2NF9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCjIwMDItMDYtMDQgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQkZEMzJfQkFDS0VORFMpOiBBZGQgZWxmMzItc2g2NC1uYnNkLmxvLgoJKEJGRDMyX0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCBlbGYzMi1zaDY0LW5ic2QuYy4KCShCRkQ2NF9CQUNLRU5EUyk6IEFkZCBlbGY2NC1zaDY0LW5ic2QubG8uCgkoQkZENjRfQkFDS0VORFNfQ0ZJTEVTKTogQWRkIGVsZjY0LXNoNjQtbmJzZC5jLgoJKGVsZjMyLXNoNjQtbmJzZC5sbywgZWxmNjQtc2g2NC1uYnNkLmxvKTogTmV3IHJ1bGVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmJmZCAoc2g1bGUtKi1uZXRic2QqLCBzaDUtKi1uZXRic2QqLCBzaDY0bGUtKi1uZXRic2QqKQoJKHNoNjQtKi1uZXRic2QqKTogTmV3IHRhcmdldHMuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGJmZF9lbGYzMl9zaDY0bmJzZF92ZWMsIGJmZF9lbGYzMl9zaDY0bG5ic2RfdmVjLAoJYmZkX2VsZjY0X3NoNjRuYnNkX3ZlYywgYW5kIGJmZF9lbGY2NF9zaDY0bG5ic2RfdmVjLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGVsZjMyLXNoNjQtbmJzZC5jOiBOZXcgZmlsZS4KCSogZWxmNjQtc2g2NC1uYnNkLmM6IE5ldyBmaWxlLgoJKiB0YXJnZXRzLmM6IEFkZCBleHRlcm4gZGVjbHMgZm9yIGJmZF9lbGYzMl9zaDY0bmJzZF92ZWMsCgliZmRfZWxmMzJfc2g2NGxuYnNkX3ZlYywgYmZkX2VsZjY0X3NoNjRuYnNkX3ZlYywgYW5kCgliZmRfZWxmNjRfc2g2NGxuYnNkX3ZlYy4KCjIwMDItMDYtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYuYyAoc2V0dXBfZ3JvdXApOiBTZXQgU0VDX0xJTktfT05DRSBvbiBHUlBfQ09NREFUIGdyb3Vwcy4KCShiZmRfc2VjdGlvbl9mcm9tX3NoZHIpOiBMaWtld2lzZS4gIFNldCBzZWN0aW9uIG5hbWUgb2YgZ3JvdXAKCXNlY3Rpb25zIGZyb20gc2lnbmF0dXJlLgoJKGdyb3VwX3NpZ25hdHVyZSk6IFNwbGl0IG91dCBmcm9tIHNldHVwX2dyb3VwLiAgRW5zdXJlIHN5bWJvbCB0YWJsZQoJaXMgYXZhaWxhYmxlLgoJKGJmZF9lbGZfZGlzY2FyZF9ncm91cCk6IE5ldyBmdW5jdGlvbi4KCShfYmZkX2VsZl9tYWtlX3NlY3Rpb25fZnJvbV9zaGRyKTogRG9uJ3Qgc2V0IFNFQ19MSU5LX09OQ0Ugb24KCS5nbnUubGlua29uY2UqIHNlY3Rpb25zIGlmIHRoZXkgYXJlIG1lbWJlcnMgb2YgYSBncm91cC4KCShzZXRfZ3JvdXBfY29udGVudHMpOiBTZXQgR1JQX0NPTURBVCBmbGFnLgoJKiBzZWN0aW9uLmMgKGJmZF9kaXNjYXJkX2dyb3VwKTogTmV3IGZ1bmN0aW9uLgoJKiBiZmQtaW4uaCAoYmZkX2VsZl9kaXNjYXJkX2dyb3VwKTogRGVjbGFyZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBlbGYtYmZkLmggKHN0cnVjdCBiZmRfZWxmX3NlY3Rpb25fZGF0YSk6IEFkZCBsaW5rb25jZV9wIGZpZWxkLgoJKGVsZl9saW5rb25jZV9wKTogRGVmaW5lLgoKMjAwMi0wNi0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi5jIChiZmRfc2VjdGlvbl9mcm9tX3NoZHIpOiBNYWtlICJuYW1lIiBjb25zdC4KCSogZWxmLWJmZC5oIChlbGZfYmFja2VuZF9zZWN0aW9uX2Zyb21fc2hkcik6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzcwLmMgKGkzNzBfZWxmX3NlY3Rpb25fZnJvbV9zaGRyKTogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX3NlY3Rpb25fZnJvbV9zaGRyKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNoNjQuYyAoc2g2NF9iYWNrZW5kX3NlY3Rpb25fZnJvbV9zaGRyKTogTGlrZXdpc2UuCgkqIGVsZjMyLXY4NTAuYyAodjg1MF9lbGZfc2VjdGlvbl9mcm9tX3NoZHIpOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfc2VjdGlvbl9mcm9tX3NoZHIpOiBMaWtld2lzZS4KCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX3NlY3Rpb25fZnJvbV9zaGRyKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfc2VjdGlvbl9mcm9tX3NoZHIpOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3NlY3Rpb25fZnJvbV9zaGRyKTogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9zZWN0aW9uX2Zyb21fc2hkcik6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmggKF9iZmRfbWlwc19lbGZfc2VjdGlvbl9mcm9tX3NoZHIpOiBMaWtld2lzZS4KCjIwMDItMDYtMDMgIE1hY2llaiBXLiBSb3p5Y2tpICA8bWFjcm9AZHMyLnBnLmdkYS5wbD4KCgkqIGVsZnh4LW1pcHMuYyAoQUJJXzY0X1ApOiBVc2UgYmFja2VuZCdzIGRhdGEgdG8gZGV0ZXJtaW5lIHRoZQoJQUJJLgoKMjAwMi0wNi0wMiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGVsZjMyLWFyYy5jOiBGaXggZm9ybWF0dGluZy4KCSogZWxmMzItYXJtLmg6IExpa2V3aXNlLgoJKiBlbGYzMi1jcmlzLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1kbHguYzogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWkzODYuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWkzODZxbnguYzogTGlrZXdpc2UuCgkqIGVsZjMyLW9yMzIuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXMzOTAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXNoNjQuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXZheC5jOiBMaWtld2lzZS4KCSogZWxmMzIteHN0b3JteTE2LmM6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jOiBMaWtld2lzZS4KCSogZWxmNjQtbW1peC5jOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1zaDY0LmM6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYzogTGlrZXdpc2UuCgoyMDAyLTA2LTAyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IERvbid0IGRlcmVmZXJlbmNlCgludWxsIHdoZW4gdGhlcmUgYXJlIG5vIGdvdCBlbnRyaWVzIGZvciBhIHN5bWJvbC4KCShlbGY2NF9hbHBoYV9yZWxheF9maW5kX3Rsc19zZWdtZW50KTogUmVhcnJhbmdlIHRvIGF2b2lkCgl1bmluaXRpYWxpemVkIHZhcmlhYmxlIHdhcm5pbmcuCgoyMDAyLTA2LTAxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsYXhfd2l0aF9saXR1c2UpOiBEb24ndCB0ZXN0IGZvcgoJdW5kZWZpbmVkIHN5bWJvbHMgaGVyZS4KCShlbGY2NF9hbHBoYV9yZWxheF9zZWN0aW9uKTogRG8gaXQgaGVyZS4gIEFsc28gdGVzdCBmb3Igbm90CglkZWZpbmVkIGluIHRoZSBjdXJyZW50IG1vZHVsZS4KCShlbGY2NF9hbHBoYV9yZWxvY2F0ZV9zZWN0aW9uX3IpOiBTcGxpdCBvdXQgb2YgLi4uCgkoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IC4uLiBoZXJlLiAgRG9uJ3QgZGVyZWZlcmVuY2UKCU5VTEwgd2hlbiBsb29raW5nIHVwIGxvY2FsIGdvdCBlbnRyaWVzLgoKMjAwMi0wNi0wMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbGF4X3dpdGhfbGl0dXNlKTogUmVqZWN0IHVuZGVmaW5lZAoJc3ltYm9scyBmcm9tIEpTUiByZWxheGF0aW9uLgoJKGVsZjY0X2FscGhhX3NpemVfcGx0X3NlY3Rpb25fMSk6IE5ldy4KCShlbGY2NF9hbHBoYV9jYWxjX2R5bnJlbF9zaXplcyk6IFNwbGl0IG91dCAucmVsYS5nb3QgYml0cyAuLi4KCShlbGY2NF9hbHBoYV9zaXplX3JlbGFfZ290XzEpOiAuLi4gaGVyZS4KCShlbGY2NF9hbHBoYV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBTcGxpdCBvdXQgLnJlbGEuZ290IGJpdHMgLi4uCgkoZWxmNjRfYWxwaGFfc2l6ZV9yZWxhX2dvdF9zZWN0aW9uKTogLi4uIGhlcmUuCgkoZWxmNjRfYWxwaGFfc2l6ZV9wbHRfc2VjdGlvbik6IE5ldy4KCShlbGY2NF9hbHBoYV9yZWxheF9zZWN0aW9uKTogQ2FsbCB0aGVtLgoJKGVsZjY0X2FscGhhX3NpemVfZ290X3NlY3Rpb25zKTogUmVtb3ZlIG91dHB1dF9iZmQgYXJnLgoJKGVsZjY0X2FscGhhX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IENoZWNrIGdvdGVudCB1c2VfY291bnQuCgoyMDAyLTA2LTAxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoYWxwaGFfZ2V0X2R0cHJlbF9iYXNlLCBhbHBoYV9nZXRfdHByZWxfYmFzZSk6IE5ldy4KCShlbGY2NF9hbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKTogVXNlIHRoZW0uICBSZWplY3QgTEUgVExTIHJlbG9jcwoJaW4gc2hhcmVkIGxpYnJhcmllcy4gIEZpeCBEVFBSRUxISSBhbmQgVFBSRUxISSB2YWx1ZS4KCShJTlNOX0FERFEsIElOU05fUkRVTklRKTogTmV3LgoJKHN0cnVjdCBhbHBoYV9yZWxheF9pbmZvKTogQWRkIHN5bXRhYl9oZHIsIHRsc19zZWdtZW50LCBmaXJzdF9nb3RlbnQuCgkoZWxmNjRfYWxwaGFfcmVsYXhfd2l0aF9saXR1c2UpOiBSZXR1cm4gYm9vbGVhbi4gIFJlbW92ZSBpcmVsZW5kCglhcmd1bWVudC4gIFJlamVjdCBkeW5hbWljIHN5bWJvbHMuICBVc2UgTElUVVNFIHN5bWJvbGljIGNvbnN0YW50cy4KCShlbGY2NF9hbHBoYV9yZWxheF9nb3RfbG9hZCk6IFJlbmFtZSBmcm9tIHJlbGF4X3dpdGhvdXRfbGl0dXNlLgoJSGFuZGxlIEdPVERUUFJFTCBhbmQgR09UVFBSRUwgcmVsb2NhdGlvbnMuCgkoZWxmNjRfYWxwaGFfcmVsYXhfZ3ByZWxoaWxvKTogTmV3LgoJKGVsZjY0X2FscGhhX3JlbGF4X3Rsc19nZXRfYWRkcik6IE5ldy4KCShlbGY2NF9hbHBoYV9yZWxheF9maW5kX3Rsc19zZWdtZW50KTogTmV3LgoJKGVsZjY0X2FscGhhX3JlbGF4X3NlY3Rpb24pOiBIYW5kbGUgVExTIHJlbG9jYXRpb25zLgoJKEFMUEhBX0VMRl9MSU5LX0hBU0hfVExTX0lFKTogTmV3LgoJKGVsZjY0X2FscGhhX2NoZWNrX3JlbG9jcyk6IFNldCBpdC4KCjIwMDItMDYtMDEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxheF9zZWN0aW9uKTogRG9uJ3Qgc3RvcmUgY29tcHV0ZWQgZ3AuCgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9jaGVja19yZWxvY3MpOiBGaXggdHlwbyBvbiBtYXliZV9keW5hbWljCgljaGVjazsgZG9uJ3Qgc3VwcHJlc3MgZHluYW1pYyByZWxvY3MgZm9yIG5vbi1hbGxvY2F0ZWQgc2VjdGlvbnMuCgoJKiBlbGY2NC1hbHBoYS5jOiBSZW1vdmUgZGVhZCBjb2RlLgoKMjAwMi0wNS0zMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgkqIHBvL1NSQy1QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogRG9uJ3QgYWxsb2NhdGUKCXNwYWNlIGZvciBic3MgLnBsdC4KCjIwMDItMDUtMzEgIEdyYWVtZSBQZXRlcnNvbiAgPGdwQHFueC5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQkZEMzJfQkFDS0VORFMpOiBBZGQgZWxmMzItaTM4NnFueC5sby4KCShCRkQzMl9CQUNLRU5EU19DRklMRVMpOiBBZGQgZWxmMzItaTM4NnFueC5jLgoJUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWcuYmZkOiBBZGQgaVszNDU2XTg2LSotbnRvLXFueCogc3VwcG9ydC4KCSogY29uZmlndXJlLmluOiBBZGQgYmZkX2VsZjMyX2kzODZxbnhfdmVjIHN1cHBvcnQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogZWxmLWJmZC5oIChzdHJ1Y3QgZWxmX2JhY2tlbmRfZGF0YSk6IEFkZCBzZXRfbm9ubG9hZGFibGVfZmlsZXBvcywKCWlzX2NvbnRhaW5lZF9ieV9maWxlcG9zLCBhbmQgY29weV9wcml2YXRlX2JmZF9kYXRhX3AuCgkqIGVsZi5jIChhc3NpZ25fZmlsZV9wb3NpdGlvbnNfZm9yX3NlZ21lbnRzKTogQ2FsbCBiYWNrZW5kCglzZXRfbm9ubG9hZGFibGVfZmlsZXBvcy4gIEZpeCBub24tSyZSIGNhbGwgdG8gX2JmZF9lcnJvcl9oYW5kbGVyLgoJKElTX0NPTlRBSU5FRF9CWV9GSUxFUE9TKTogRGVmaW5lLgoJKElOQ0xVREVfU0VDVElPTl9JTl9TRUdNRU5UKTogQWxzbyB0ZXN0IElTX0NPTlRBSU5FRF9CWV9GSUxFUE9TLgoJKGNvcHlfcHJpdmF0ZV9iZmRfZGF0YSk6IFVzZSBJU19DT05UQUlORURfQllfRklMRVBPUy4gIFR5cG8gZml4LgoJRml4IG5vbi1LJlIgY2FsbCB0byBfYmZkX2Vycm9yX2hhbmRsZXIuCgkoX2JmZF9lbGZfY29weV9wcml2YXRlX3NlY3Rpb25fZGF0YSk6IFVzZSBiYWNrZW5kCgljb3B5X3ByaXZhdGVfYmZkX2RhdGFfcC4KCSogZWxmMzItaTM4Ni5jOiBEb24ndCBpbmNsdWRlIGVsZnh4LXRhcmdldC5oIHdoZW4KCUVMRjMyX0kzODZfQ19JTkNMVURFRCBpcyBkZWZpbmVkLgoJKiBlbGYzMi1pMzg2cW54LmM6IE5ldyBRTlggZWxmIGJhY2tlbmQgZmlsZS4KCSogZWxmeHgtdGFyZ2V0Lmg6IEFkZCBlbGZfYmFja2VuZF9zZXRfbm9ubG9hZGFibGVfZmlsZXBvcywKCWVsZl9iYWNrZW5kX2lzX2NvbnRhaW5lZF9ieV9maWxlcG9zLCBhbmQKCWVsZl9iYWNrZW5kX2RvX2NvcHlfcHJpdmF0ZV9iZmRfZGF0YS4KCSogdGFyZ2V0cy5jOiBBZGQgYmZkX3RhcmdldCBiZmRfZWxmMzJfaTM4NnFueF92ZWMuCgoyMDAyLTA1LTMxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmYXJtLW9hYmkuYyAoYmZkX2VsZjMyX2FybV9hZGRfZ2x1ZV9zZWN0aW9uc190b19iZmQpOiBEZWZpbmUuCglNb3ZlIG90aGVyIHNpbWlsYXIgZGVmaW5lcyB0byBzdGFydCBvZiBmaWxlLgoKMjAwMi0wNS0zMCAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGNvZmYtcnM2MDAwLmMgKHhjb2ZmX3J0eXBlMmhvd3RvKTogSGFuZGxlIDE2IGJpdCBSX1JCQS4KCSogY29mZjY0LXJzNjAwMC5jICh4Y29mZjY0X3J0eXBlMmhvd3RvKTogU2FtZS4KCjIwMDItMDUtMzAgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChBTFBIQV9FTEZfTElOS19IQVNIX0xVX1RMU0dELAoJQUxQSEFfRUxGX0xJTktfSEFTSF9MVV9UTFNMRE0sIEFMUEhBX0VMRl9MSU5LX0hBU0hfTFVfRlVOQyk6IE5ldy4KCShBTFBIQV9FTEZfR09UX0VOVFJZX1JFTE9DU19ET05FKTogUmVtb3ZlLgoJKEFMUEhBX0VMRl9HT1RfRU5UUllfUkVMT0NTX1hMQVRFRCk6IFJlbW92ZS4KCShzdHJ1Y3QgYWxwaGFfZWxmX2dvdF9lbnRyeSk6IEFkZCByZWxvY190eXBlLCByZWxvY19kb25lLCByZWxvY194bGF0ZWQuCgkoc3RydWN0IGFscGhhX2VsZl9vYmpfdGRhdGEpOiBSZW5hbWUgdG90YWxfZ290X2VudHJpZXMgYW5kCgluX2xvY2FsX2dvdF9lbnRyaWVzIHRvIHRvdGFsX2dvdF9zaXplIGFuZCBsb2NhbF9nb3Rfc2l6ZS4KCShlbGY2NF9hbHBoYV9ob3d0bywgZWxmNjRfYWxwaGFfcmVsb2NfbWFwKTogVXBkYXRlIGZvciBUTFMgcmVsb2NzLgoJKGFscGhhX2dvdF9lbnRyeV9zaXplKTogTmV3LgoJKGVsZjY0X2FscGhhX3JlbGF4X3dpdGhfbGl0dXNlKTogVXNlIGl0LgoJKGVsZjY0X2FscGhhX3JlbGF4X3dpdGhvdXRfbGl0dXNlKTogTGlrZXdpc2UuCgkoTUFYX0dPVF9TSVpFKTogUmVuYW1lIGZyb20gTUFYX0dPVF9FTlRSSUVTLgoJKGdldF9nb3RfZW50cnkpOiBOZXcuCgkoZWxmNjRfYWxwaGFfY2hlY2tfcmVsb2NzKTogSGFuZGxlIFRMUyByZWxvY3MuICBSZW9yZ2FuaXplLgoJKGVsZjY0X2FscGhhX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IFRlc3QgTFVfRlVOQyBhcyBhIG1hc2suCgkoZWxmNjRfYWxwaGFfbWVyZ2VfaW5kX3N5bWJvbHMpOiBDaGVjayBnb3RlbnQtPnJlbG9jX3R5cGUuCgkoZWxmNjRfYWxwaGFfY2FuX21lcmdlX2dvdHMsIGVsZjY0X2FscGhhX21lcmdlX2dvdHMpOiBMaWtld2lzZS4KCShlbGY2NF9hbHBoYV9jYWxjX2dvdF9vZmZzZXRzX2Zvcl9zeW1ib2wpOiBVc2UgYWxwaGFfZ290X2VudHJ5X3NpemUuCgkoZWxmNjRfYWxwaGFfY2FsY19nb3Rfb2Zmc2V0cyk6IExpa2V3aXNlLgoJKGFscGhhX2R5bmFtaWNfZW50cmllc19mb3JfcmVsb2MpOiBOZXcuCgkoZWxmNjRfYWxwaGFfY2FsY19keW5yZWxfc2l6ZXMpOiBVc2UgaXQuCgkoZWxmNjRfYWxwaGFfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IEhhbmRsZSBUTFMgcmVsb2NhdGlvbnMuCgkqIHJlbG9jLmM6IEFkZCBBbHBoYSBUTFMgcmVsb2NhdGlvbnMuCgkqIGJmZC1pbjIuaCwgbGliYmZkLmg6IFJlYnVpbGQuCgoyMDAyLTA1LTI5IFJhbGYgSGFiYWNrZXIgPHJhbGYuaGFiYWNrZXJAZnJlZW5ldC5kZT4KCgkqIHBlWFhpZ2VuLmMgKHBlX3ByaW50X2lkYXRhKTogUmVtb3ZlIGRvdWJsZSBwcmludGVkCglpbXBvcnQgdGFibGUgbGluZXM7IGFkZCBCb3VuZC1UbyBjb21tZW50LgoKMjAwMi0wNS0yOSAgTWF0dCBUaG9tYXMgIDxtYXR0QDNhbS1zb2Z0d2FyZS5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQkZEMzJfQkFDS0VORFMpOiBBZGQgZWxmMzItdmF4LmxvLgoJKEJGRDMyX0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCBlbGYzMi12YXguYy4KCShlbGYzMi12YXgubG8pOiBOZXcgcnVsZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS5pbiAoYmZkX2VsZjMyX3ZheF92ZWMpCgkodmF4bmV0YnNkX3ZlYyk6IE5ldyB2ZWN0b3JzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy5iZmQgKHZheC0qLW5ldGJzZGVsZiopCgkodmF4LSotbmV0YnNkYW91dCopCgkodmF4LSotbmV0YnNkKik6IE5ldyB0YXJnZXRzLgoJKiBlbGYzMi12YXguYzogTmV3IGZpbGUuCgkqIHJlbG9jLmM6IEFkZCBWQVggcmVsb2NhdGlvbnMuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogdGFyZ2V0cy5jIChfYmZkX3RhcmdldF92ZWN0b3IpOiBBZGQgYmZkX2VsZjMyX3ZheF92ZWMuCgoyMDAyLTA1LTI5ICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogY29uZmlnLmJmZCAoYXJtLSotbmV0YnNkKik6IEFkZCBiZmRfZWxmMzJfbGl0dGxlYXJtX3ZlYwoJYW5kIGJmZF9lbGYzMl9iaWdhcm1fdmVjIHRvIHRhcmdfc2VsdmVjcy4KCjIwMDItMDUtMjkgIFJhbGYgSGFiYWNrZXIgIDxyYWxmLmhhYmFja2VyQGZyZWVuZXQuZGU+CgoJKiBwZVhYaWdlbi5jIChwZV9wcmludF9pZGF0YSk6IEZpeCBzZWcgZmF1bHRzIG9uIHByaW50aW5nIGltcG9ydCB0YWJsZXMKCXdpdGggYXV0by1pbXBvcnRlZCBzeW1ib2xzLgoKMjAwMi0wNS0yOSAgQWRhbSBOZW1ldCAgPGFuZW1ldEBsbnh3LmNvbT4KCgkqIGVsZjMyLWFybS5oIChiZmRfZWxmMzJfYXJtX2dldF9iZmRfZm9yX2ludGVyd29ya2luZyk6IERvbid0IGFkZCBnbHVlCglzZWN0aW9ucyBvbmx5IHJlY29yZCBiZmQuCgkoYmZkX2VsZjMyX2FybV9hZGRfZ2x1ZV9zZWN0aW9uc190b19iZmQpOiBOZXcgZnVuY3Rpb24uCgkqIGJmZC1pbi5oIChiZmRfZWxmMzJfYXJtX2FkZF9nbHVlX3NlY3Rpb25zX3RvX2JmZCk6IERlY2xhcmUgaXQuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDItMDUtMjggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogc3ltcy5jIChfYmZkX3N0YWJfc2VjdGlvbl9maW5kX25lYXJlc3RfbGluZSk6IE1vdmUKCWRlY2xhcmF0aW9uIGFuZCBpbml0aWFsaXNhdGlvbiBvZiBzYXdfbGluZSBhbmQgc2F3X2Z1bmMgb3V0IG9mCglmb3IgbG9vcC4KCjIwMDItMDUtMjkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2dldF9zeW1ib2xfaW5mbyk6IE5ldyBmdW5jdGlvbi4KCShiZmRfZWxmNjRfZ2V0X3N5bWJvbF9pbmZvKTogRGVmaW5lLgoJKiBlbGZ4eC10YXJnZXQuaCAoYmZkX2VsZk5OX2dldF9zeW1ib2xfaW5mbyk6IE9ubHkgZGVmaW5lIGlmIHVuZGVmLgoKMjAwMi0wNS0yOSAgQW5kcmV5IFZvbGtvdiAgPGF2b2xrb3ZAdHJhbnNhcy5jb20+CgoJKiBjcHUtaDgzMDAuYzogTWFrZSBkZWZhdWx0IGg4MzAwIG1hY2hpbmUgZmlyc3QgaW4gbWFjaGluZSBsaXN0LgoKMjAwMi0wNS0yOCAgS3VhbmcgSHdhIExpbiA8a3VhbmdAc2JjZ2xvYmFsLm5ldD4KCgkqIGNvbmZpZy5iZmQ6IEFkZGVkIERMWCBjb25maWd1cmF0b24uCgkqIE1ha2VmaWxlLmFtOiBBZGRlZCBETFggY29uZmlndXJhdG9uLgoJKiBjb25maWd1cmUuaW46IEFkZGVkIERMWCBjb25maWd1cmF0b24uCgkqIGFyY2h1cmVzLmM6IEFkZCBETFggYXJjaGl0ZWN0dXJlLgoJKiByZWxvYy5jOiBBZGQgRExYIHJlbG9jcy4KCSogdGFyZ2V0cy5jOiBBZGRlZCBETFggdGFyZ2V0IHZlY3Rvci4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5yZWF0ZS4KCSogYmZkLWluMi5oOiBSZWdlbnJlYXRlLgoJKiBlbGYzMi1kbHguYzogTmV3IGZpbGU6IFN1cHBvcnQgRExYIHRhcmdldC4KCSogY3B1LWRseC5jOiBOZXcgZmlsZTogU3VwcG9ydCBETFggdGFyZ2V0LgoKMjAwMi0wNS0yNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLW02OGsuYyAoZWxmMzJfbTY4a19wcmludF9wcml2YXRlX2JmZF9kYXRhKTogRm9ybWF0dGluZy4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBSZXZlcnQgbGFzdCBjaGFuZ2UuCgkocHBjNjRfZWxmX2NoZWNrX3JlbG9jcyk6IERvbid0IHNldCB1cCBmdW5jdGlvbiBkZXNjcmlwdG9yIHN5bWJvbAoJc3RyaW5ncyB0byBwb2ludCBpbnNpZGUgZnVuY3Rpb24gY29kZSBzeW0gc3RyaW5nLgoJKGZ1bmNfZGVzY19hZGp1c3QpOiBMaWtld2lzZS4KCShwcGM2NF9lbGZfaGlkZV9zeW1ib2wpOiBSZXdyaXRlIGNvZGUgdG8gbG9vayB1cCBmdW5jdGlvbiBjb2RlIHN5bS4KCjIwMDItMDUtMjQgIE1pY2hhbCBMdWR2aWcgIDxtbHVkdmlnQHN1c2UuY3o+CgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X2dyb2tfcHJzdGF0dXMpOiBBZGRlZC4KCShlbGY2NF94ODZfNjRfZ3Jva19wc2luZm8pOiBBZGRlZC4KCjIwMDItMDUtMjQgIFRBTVVSQSBLZW50IDxrZW50QG5ldGJzZC5vcmc+CgoJKiBjb25maWcuYmZkOiBBZGQgYSB0YXJnZXQgZm9yIGkzODYtbmV0YnNkcGUuCgoyMDAyLTA1LTI0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IERvbid0IGNvcHkgaXNfZnVuYwoJYW5kIGlzX2Z1bmNfZGVzY3JpcHRvci4KCShmdW5jX2Rlc2NfYWRqdXN0KTogSGlkZSBmdW5jdGlvbiBjb2RlIHN5bSBpbiBzaGFyZWQgbGlicyB1bmxlc3MKCXRoZXJlIGlzIGEgbWF0Y2hpbmcgZXhwb3J0ZWQgZnVuY3Rpb24gZGVzY3JpcHRvciBzeW0uCgoyMDAyLTA1LTIzICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZi5jIChfYmZkX2VsZl9tYWtlX3NlY3Rpb25fZnJvbV9zaGRyKTogU2V0IFNFQ19USFJFQURfTE9DQUwKCWZvciBzeW1ib2xzIGZyb20gU0hGX1RMUyBzZWN0aW9uLgoJKF9iZmRfZWxmX3ByaW50X3ByaXZhdGVfYmZkX2RhdGEpOiBBZGQgUFRfVExTLgoJKGVsZl9mYWtlX3NlY3Rpb25zKTogU2V0IFNIRl9UTFMgZm9yIFNFQ19USFJFQURfTE9DQUwgc2VjdGlvbnMuCgkobWFwX3NlY3Rpb25zX3RvX3NlZ21lbnRzKTogQnVpbGQgUFRfVExTIHNlZ21lbnQgaWYgbmVjZXNzYXJ5LgoJKGFzc2lnbl9maWxlX3Bvc2l0aW9uc19mb3Jfc2VnbWVudHMpOiBMaWtld2lzZS4KCShnZXRfcHJvZ3JhbV9oZWFkZXJfc2l6ZSk6IEFjY291bnQgZm9yIFBUX1RMUyBzZWdtZW50LgoJKHN3YXBfb3V0X3N5bXMpOiBTZXQgdHlwZSBvZiBCU0ZfVEhSRUFEX0xPQ0FMIHN5bWJvbHMgYW5kIHN5bWJvbHMgZnJvbQoJU0VDX1RIUkVBRF9MT0NBTCBzZWN0aW9ucyB0byBTVFRfVExTLgoJKiByZWxvYy5jOiBBZGQgMzg2IGFuZCBJQS02NCBUTFMgcmVsb2NzLgoJKiBzZWN0aW9uLmMgKFNFQ19USFJFQURfTE9DQUwpOiBEZWZpbmUuCgkoU0VDX0NPTlNUUlVDVE9SX1RFWFQsIFNFQ19DT05TVFJVQ1RPUl9EQVRBLCBTRUNfQ09OU1RSVUNUT1JfQlNTKToKCVJlbW92ZS4KCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBTdXBwb3J0IC50Y29tbW9uLgoJKHNpemVfZHluYW1pY19zZWN0aW9ucyk6IElmIERGX1NUQVRJQ19UTFMsIHNldCBERl9GTEFHUwoJdW5jb25kaXRpb25hbGx5LgoJKHN0cnVjdCBlbGZfZmluYWxfbGlua19pbmZvKTogQWRkIGZpcnN0X3Rsc19zZWMuCgkoZWxmX2JmZF9maW5hbF9saW5rKTogU2V0IGZpcnN0X3Rsc19zZWMuCglDb21wdXRlIGVsZl9oYXNoX3RhYmxlIChpbmZvKS0+dGxzX3NlZ21lbnQuCgkoZWxmX2xpbmtfb3V0cHV0X2V4dHN5bSk6IEhhbmRsZSBTVFRfVExTIHN5bWJvbHMuCgkoZWxmX2xpbmtfaW5wdXRfYmZkKTogTGlrZXdpc2UuCgkqIHN5bXMuYyAoQlNGX1RIUkVBRF9MT0NBTCk6IERlZmluZS4KCSogYmZkLWluMi5oOiBSZWJ1aWx0LgoJKiBsaWJiZmQuaDogUmVidWlsdC4KCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl90bHNfdHJhbnNpdGlvbiwgZHRwb2ZmX2Jhc2UsIHRwb2ZmLAoJZWxmX2kzODZfbWtvYmplY3QsIGVsZl9pMzg2X29iamVjdF9wKTogTmV3IGZ1bmN0aW9ucy4KCShlbGZfaG93dG9fdGFibGUpOiBBZGQgVExTIHJlbG9jcy4KCShlbGZfaTM4Nl9yZWxvY190eXBlX2xvb2t1cCk6IFN1cHBvcnQgVExTIHJlbG9jcy4KCShlbGZfaTM4Nl9pbmZvX3RvX2hvd3RvX3JlbCk6IExpa2V3aXNlLgoJKHN0cnVjdCBlbGZfaTM4Nl9saW5rX2hhc2hfZW50cnkpOiBBZGQgdGxzX3R5cGUuCgkoc3RydWN0IGVsZl9pMzg2X29ial90ZGF0YSk6IE5ldy4KCShlbGZfaTM4Nl9oYXNoX2VudHJ5LCBlbGZfaTM4Nl90ZGF0YSwgZWxmX2kzODZfbG9jYWxfZ290X3Rsc190eXBlKToKCU5ldyBtYWNyb3MuCgkoc3RydWN0IGVsZl9pMzg2X2xpbmtfaGFzaF90YWJsZSk6IEFkZCB0bHNfbGRtX2dvdC4KCShsaW5rX2hhc2hfbmV3ZnVuYyk6IENsZWFyIHRsc190eXBlLgoJKGVsZl9pMzg2X2NoZWNrX3JlbG9jcyk6IFN1cHBvcnQgVExTIHJlbG9jcy4KCShlbGZfaTM4Nl9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogTGlrZXdpc2UuCgkoZWxmX2kzODZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKGVsZl9pMzg2X2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKGJmZF9lbGYzMl9ta29iamVjdCwgZWxmX2JhY2tlbmRfb2JqZWN0X3ApOiBEZWZpbmUuCgkqIGVsZnh4LWlhNjQuYyAoc3RydWN0IGVsZk5OX2lhNjRfZHluX3N5bV9pbmZvKTogQWRkIHRwcmVsX29mZnNldCwKCWR0cG1vZF9vZmZzZXQsIGR0cHJlbF9vZmZzZXQsIHRwcmVsX2RvbmUsIGR0cG1vZF9kb25lLCBkdHByZWxfZG9uZSwKCXdhbnRfdHByZWwsIHdhbnRfZHRwbW9kLCB3YW50X2R0cHJlbC4KCShlbGZOTl9pYTY0X3RwcmVsX2Jhc2UsIGVsZk5OX2lhNjRfZHRwcmVsX2Jhc2UpOiBOZXcgZnVuY3Rpb25zLgoJKGlhNjRfaG93dG9fdGFibGUpOiBBZGQgVExTIHJlbG9jcywgcmVuYW1lIFJfSUE2NF9MVE9GRl9UUDIyIHRvCglSX0lBNjRfTFRPRkZfVFBSRUwyMi4KCShlbGZfY29kZV90b19ob3d0b19pbmRleCk6IEFkZCBUTFMgcmVsb2NzLgoJKGVsZk5OX2lhNjRfY2hlY2tfcmVsb2NzKTogU3VwcG9ydCBUTFMgcmVsb2NzLgoJKGFsbG9jYXRlX2dsb2JhbF9kYXRhX2dvdCk6IEFjY291bnQgZm9yIFRMUyAuZ290IGRhdGEuCgkoYWxsb2NhdGVfZHlucmVsX2VudHJpZXMpOiBBY2NvdW50IGZvciBUTFMgZHluYW1pYyByZWxvY2F0aW9ucy4KCShlbGZOTl9pYTY0X2luc3RhbGxfdmFsdWUpOiBTdXBwcnQgVExTIHJlbG9jcy4KCShzZXRfZ290X2VudHJ5KTogU3VwcG9ydCBUTFMgcmVsb2NzLgoJKGVsZk5OX2lhNjRfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMi0wNS0yMyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBGb3IgdGhlIFRodW1iCglCTFggcmVsb2Mgcm91bmQgdGhlIHJlbG9jYXRpb24gdXAgcmF0aGVyIHRoYW4gZG93bi4KCSogY29mZi1hcm0uYyAoY29mZl9hcm1fcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMi0wNS0yMSAgSC5KLiBMdSAgKGhqbEBnbnUub3JnKQoKCSogbGlua2VyLmMgKF9iZmRfZ2VuZXJpY19saW5rX2FkZF9vbmVfc3ltYm9sKTogQWxsb3cgbXVsdGlwbGUKCWRlZmluaXRpb24uCgoyMDAyLTA1LTIyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9zaXplX3N0dWJzKTogRG9uJ3Qgc3RyaXAgLmJyYW5jaF9sdC4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEhhbmRsZSB1bnJlc29sdmVkIHJlbG9jcyBpbiBvcGQuCgoyMDAyLTA1LTIyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogUmV0dXJuIGZhbHNlIGZvcgoJdW5yZXNvbHZlZCByZWxvY3MuCgkocHBjNjRfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IENoZWNrIGZvciBzcGx0IE5VTEwuCgoyMDAyLTA1LTIxICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogYmZkLmMgKGJmZF9nZXRfYXJjaF9zaXplKTogUmVtb3ZlIGJmZF9zZXRfZXJyb3IgY2FsbCBmb3IKCW5vbi1FTEYgdGFyZ2V0cy4KCjIwMDItMDUtMjEgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGYtYmZkLmggKGVsZl9iYWNrZW5kX2VtaXRfcmVsb2NzKTogQ2hhbmdlIHByb3RvdHlwZSB0byByZXR1cm4KCWFuIGVycm9yIHZhbHVlLgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX291dHB1dF9yZWxvY3MpOiBMaWtld2lzZS4gSW1wcm92ZSBlcnJvciBtZXNzYWdlLgoJcmV0dXJuIHdpdGggZmFsc2Ugb24gZXJyb3IuCgkoZWxmX2xpbmtfaW5wdXRfYmZkKTogQ2hlY2sgcmVsb2NfZW1pdHRlciByZXR1cm4gdmFsdWUuCgoyMDAyLTA1LTIxICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogY29uZmlnLmJmZCAoYXJtZWItKi1uZXRic2RlbGYqKTogTmV3IHRhcmdldC4KCjIwMDItMDUtMjAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjX2J1aWxkX29uZV9zdHViKTogUG9pbnQgdW5kZWZpbmVkIGZ1bmN0aW9uIHN5bXMKCWF0IHRoZSBwbHQgY2FsbCBzdHViLgoKMjAwMi0wNS0xOSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNwdS1taXBzLmMgKG1pcHNfY29tcGF0aWJsZSk6IERvbid0IHRyeSB0byBjaGVjayBtYWNoaW5lCgljb21wYXRpYmlsaXR5LgoKMjAwMi0wNS0xOCAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGNvZmY2NC1yczYwMDAuYyAoX2JmZF94Y29mZjY0X3N3YXBfYXV4X291dCk6IEZpeCBDX0ZJTEUgYXV4ZW50LgoKMjAwMi0wNS0xNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfaW5mb190b19ob3d0byk6IEZvcm1hdHRpbmcuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCB3YXJuIGFib3V0IHJlbG9jIG92ZXJmbG93IHdoZW4KCXdlJ3ZlIGFscmVhZHkgd2FybmVkIGFib3V0IGFuIHVuZGVmaW5lZCBzeW1ib2wuICBSZXBvcnQgbW9yZQoJZGV0YWlsIG9uIHJlbG9jIGVycm9ycy4KCjIwMDItMDUtMTcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBhY2luY2x1ZGUubTQgKEFNX0lOU1RBTExfTElCQkZEKTogTmV3LgoJKiBjb25maWd1cmUuaW46IEludm9rZSBBTV9JTlNUQUxMX0xJQkJGRC4KCSogTWFrZWZpbGUuYW0gKGluc3RhbGwtZGF0YS1sb2NhbCk6IFJldmVydCAyMDAyLTA1LTEzLiAgTW92ZSB0by4uCgkoaW5zdGFsbF9saWJiZmQpOiAuLiBOZXcgdGFyZ2V0LgoJKHVuaW5zdGFsbF9saWJiZmQpOiBMaWtld2lzZS4KCShpbnN0YWxsLWJmZGxpYkxUTElCUkFSSUVTKTogTGlrZXdpc2UuCgkodW5pbnN0YWxsLWJmZGxpYkxUTElCUkFSSUVTKTogTGlrZXdpc2UuCgkoYmZkbGliZGlyKTogTmV3LgoJKGJmZGluY2x1ZGVkaXIpOiBOZXcuCgkobGliX0xUTElCUkFSSUVTKTogUmVuYW1lIHRvIGJmZGxpYl9MVExJQlJBUklFUy4KCSogYWNsb2NhbC5tNDogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDUtMTcgIFN0dWFydCBCYWxmb3VyIDxzYmFsZm91ckBjaXNjby5jb20+CgoJKiBoYXNoLmMgKGJmZF9oYXNoX2xvb2t1cCk6IFJlbW92ZSBjb21wdXRhdGlvbiBvZiBsZW4gZnJvbSBpbnNpZGUKCWhhc2ggbG9vcC4KCjIwMDItMDUtMTYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogY29uZmlnLmJmZDogQWRkIHRhcmdldHMgZm9yIHNoNjQtbGludXggKGxpdHRsZSBlbmRpYW4gYW5kCgliaWcgZW5kaWFuKS4KCjIwMDItMDUtMTUgIExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRAc2t5bmV0LmJlPgoKCSogcGVYWGlnZW4uYyAocGVfcHJpbnRfaWRhdGEpOiBEbyBub3QgYXNzdW1lIHRoYXQgdGhlIGZpcnN0IHRodW5rCglpcyBsb2NhdGVkIGluIHRoZSBzYW1lIHNlY3Rpb24gYXMgdGhlIGltcG9ydCB0YWJsZS4gIEluc3RlYWQKCWNoZWNrLCBhbmQgaWYgbmVjZXNzYXJ5IGxvYWQgdGhlIHNlY3Rpb24gY29udGFpbmluZyB0aGUgdGh1bmsuCgoyMDAyLTA1LTE1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGFpeDVwcGMtY29yZS5jICh4Y29mZjY0X2NvcmVfcCk6IFJlcGxhY2UgYmZkX3JlYWQgd2l0aAoJYmZkX2JyZWFkLgoJKHhjb2ZmNjRfY29yZV9maWxlX21hdGNoZXNfZXhlY3V0YWJsZV9wKTogUmVwbGFjZSBiZmRfcmVhZAoJd2l0aCBiZmRfYnJlYWQuCgoyMDAyLTA1LTE1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYWl4NXBwYy1jb3JlLmM6IFdhcm5pbmcgZml4ZXMuCgkqIGFvdXQtYWRvYmUuYyAoYW91dF8zMl9iZmRfbGlua19qdXN0X3N5bXMpOiBEZWZpbmUuCgkqIGFvdXQtdGFyZ2V0LmggKE1ZX2JmZF9saW5rX2p1c3Rfc3ltcyk6IERlZmluZS4KCSogYW91dC10aWMzMC5jIChNWV9iZmRfbGlua19qdXN0X3N5bXMpOiBEZWZpbmUuCgkqIGJmZC5jIChiZmRfbGlua19qdXN0X3N5bXMpOiBEZWZpbmUuCgkqIGJpbmFyeS5jIChiaW5hcnlfYmZkX2xpbmtfanVzdF9zeW1zKTogRGVmaW5lLgoJKiBib3V0LmMgKGJfb3V0X2JmZF9saW5rX2p1c3Rfc3ltcyk6IERlZmluZS4KCSogY29mZi1yczYwMDAuYyAocnM2MDAwY29mZl92ZWMsIHBtYWNfeGNvZmZfdmVjKTogVXBkYXRlIGluaXRpYWxpemVyLgoJKiBjb2ZmNjQtcnM2MDAwLmMgKHJzNjAwMGNvZmY2NF92ZWMsIGFpeDVjb2ZmNjRfdmVjKTogTGlrZXdpc2UuCgkqIGNvZmZjb2RlLmggKGNvZmZfYmZkX2xpbmtfanVzdF9zeW1zKTogRGVmaW5lLgoJKiBlbGYtYmZkLmggKGVudW0gZWxmX2xpbmtfaW5mb190eXBlKTogQWRkIEVMRl9JTkZPX1RZUEVfSlVTVF9TWU1TLgoJKGVsZl9kaXNjYXJkZWRfc2VjdGlvbik6IENoZWNrIGZvciBFTEZfSU5GT19UWVBFX0pVU1RfU1lNUy4KCShfYmZkX2VsZl9saW5rX2p1c3Rfc3ltcyk6IERlY2xhcmUuCgkqIGVsZi5jIChfYmZkX2VsZl9saW5rX2p1c3Rfc3ltcyk6IE5ldyBmdW5jdGlvbi4KCSogZWxmLWVoLWZyYW1lLmMgKF9iZmRfZWxmX21heWJlX3N0cmlwX2VoX2ZyYW1lX2hkcik6IENoZWNrIHRoYXQKCXNlY3Rpb25zIGhhdmVuJ3QgYWxyZWFkeSBiZWVuIGRpc2NhcmRlZCBieSB0aGUgbGlua2VyLgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IExpa2V3aXNlIGZvciBzdGFiCglzZWN0aW9ucyBhbmQgU0VDX01FUkdFIHNlY3Rpb25zLgoJKGVsZl9iZmRfZGlzY2FyZF9pbmZvKTogU2ltaWxhcmx5IGhlcmUuCgkqIGVsZnh4LXRhcmdldC5oIChiZmRfZWxmTk5fYmZkX2xpbmtfanVzdF9zeW1zKTogRGVmaW5lLgoJKiBpMzg2bXNkb3MuYyAobXNkb3NfYmZkX2xpbmtfanVzdF9zeW1zKTogRGVmaW5lLgoJKiBpMzg2b3M5ay5jIChvczlrX2JmZF9saW5rX2p1c3Rfc3ltcyk6IERlZmluZS4KCSogaWVlZS5jIChpZWVlX2JmZF9saW5rX2p1c3Rfc3ltcyk6IERlZmluZS4KCSogaWhleC5jIChpaGV4X2JmZF9saW5rX2p1c3Rfc3ltcyk6IERlZmluZS4KCSogbGliYmZkLWluLmggKF9iZmRfbm9saW5rX2JmZF9saW5rX2p1c3Rfc3ltcyk6IERlZmluZS4KCShfYmZkX2dlbmVyaWNfbGlua19qdXN0X3N5bXMpOiBEZWNsYXJlLgoJKiBsaWJlY29mZi5oIChfYmZkX2Vjb2ZmX2JmZF9saW5rX2p1c3Rfc3ltcyk6IERlZmluZS4KCSogbGlua2VyLmMgKF9iZmRfZ2VuZXJpY19saW5rX2p1c3Rfc3ltcyk6IE5ldyBmdW5jdGlvbi4KCSogbW1vLmMgKG1tb19iZmRfbGlua19qdXN0X3N5bXMpOiBEZWZpbmUuCgkqIG5sbS10YXJnZXQuaCAobmxtX2JmZF9saW5rX2p1c3Rfc3ltcyk6IERlZmluZS4KCSogb2FzeXMuYyAob2FzeXNfYmZkX2xpbmtfanVzdF9zeW1zKTogRGVmaW5lLgoJKiBwcGNib290LmMgKHBwY2Jvb3RfYmZkX2xpbmtfanVzdF9zeW1zKTogRGVmaW5lLgoJKiBzb20uYyAoc29tX2JmZF9saW5rX2p1c3Rfc3ltcyk6IERlZmluZS4KCSogc3JlYy5jIChzcmVjX2JmZF9saW5rX2p1c3Rfc3ltcyk6IERlZmluZS4KCSogdGFyZ2V0cy5jIChzdHJ1Y3QgYmZkX3RhcmdldCk6IEFkZCBfYmZkX2xpbmtfanVzdF9zeW1zLgoJKEJGRF9KVU1QX1RBQkxFX0xJTkspOiBBbmQgaGVyZS4KCSogdGVraGV4LmMgKHRla2hleF9iZmRfbGlua19qdXN0X3N5bXMpOiBEZWZpbmUuCgkqIHZlcnNhZG9zLmMgKHZlcnNhZG9zX2JmZF9saW5rX2p1c3Rfc3ltcyk6IERlZmluZS4KCSogdm1zLmMgKHZtc19iZmRfbGlua19qdXN0X3N5bXMpOiBEZWZpbmUuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAyLTA1LTE1ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmMzItbWlwcy5jOiBSZW1vdmUgc3VwZXJmbHVvdXMgZGVmaW5pdGlvbnMgY29waWVkIGZyb20KCWVsZnh4LW1pcHMuYy4KCShiZmRfZWxmMzJfYmlnbWlwc192ZWMsYmZkX2VsZjMyX2xpdHRsZW1pcHNfdmVjKTogVXNlIHRoZQoJU0dJaXNoIHZlY3RvcnMgdG8gY2hlY2sgdGhlIHNwZWNpYWwgY2FzZS4KCShtaXBzX2VsZl9oaTE2X3JlbG9jKTogRml4IGNvbW1lbnQuCgkobWlwc19lbGZfZ290MTZfcmVsb2MpOiBMaWtld2lzZS4KCShfYmZkX21pcHNfZWxmMzJfZ3ByZWwxNl9yZWxvYyk6IExpa2V3aXNlLgoJKGVsZl9yZWxvY19tYXApOiBDb2RlIGNsZWFudXAuCgkobWlwc19yZWxvY19tYXApOiBBZGQgY29tbWVudC4KCShiZmRfZWxmMjNfYmZkX3JlbG9jX3R5cGVfbG9va3VwKTogQ29kZSBjbGVhbnVwLgoJKG1pcHNfZWxmMzJfcnR5cGVfdG9faG93dG8pOiBMaWtld2lzZS4KCShtaXBzX2VsZjMyX2Rpc2NhcmRfaW5mbyk6IExpa2V3aXNlLgoJKGVsZjMyX21pcHNfaXJpeF9jb21wYXQpOiBJbnZlcnQgbG9naWM6IE9ubHkgU0dJaXNoIHZlY3RvcnMKCWxlYWQgdG8gSVJJWCBjb21wYXRpYmlsaXR5IG5vdy4KCjIwMDItMDUtMTUgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGZ4eC1taXBzLmM6IENhbGwgaXQgSVJJWCwgbm90IElyaXggaW4gY29tbWVudHMuCgoyMDAyLTA1LTEzICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogY29uZmlnLmJmZCAoc2hsZS0qLW5ldGJzZGVsZiopOiBBZGQgdGFyZ2V0IHdoaWNoIGluY2x1ZGVzCglzaDY0IHN1cHBvcnQuCgoyMDAyLTA1LTEzICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CgoJKiBjb25maWd1cmUuaW46IFJldmVydCAyMDAyLTA0LTA3LiAgSW5zdGVhZCwgYXV0by1jb25maWd1cmUKCUhBVkVfU1RfQ19JTVBMLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy5pbjogUmVnZW5lcmF0ZS4KCSogcnM2MDAwLWNvcmUuYyAoQ05FV19JTVBMKTogR3VhcmQgdXNlIG9mIGNfaW1wbCB3aXRoIEhBVkVfU1RfQ19JTVBMCglvciBBSVhfNV9DT1JFLgoKMjAwMi0wNS0xMSAgRmVkZXJpY28gRy4gU2Nod2luZHQgPGZnc2NoQG9saW1wby5jb20uYnI+CgoJKiBjb25maWd1cmUuaW4gKHNwYXJjKi0qLW9wZW5ic2QqKTogU3VwcG9ydCBzcGFyYzY0LW9wZW5ic2QKCWNvcmVmaWxlcyBhcyB3ZWxsLjIKCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wNS0xMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtIChpbnN0YWxsLWRhdGEtbG9jYWwpOiBJbnN0YWxsIGhlYWRlcnMgdG8KCSQoZXhlY19wcmVmaXgpL2luY2x1ZGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wNS0xMSAgUmFsZiBDb3JzZXBpdXMgIDxjb3JzZXBpdUBmYXcudW5pLXVsbS5kZT4KCSAgICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGNvZmYtc2guYyAoc2hfcmVsb2NfbWFwKTogTWFwIHRvIFJfU0hfSU1NMzIgZm9yIG5vbi1QRS4gIERvbid0CgltYXAgQkZEX1JFTE9DX1JWQS4KCjIwMDItMDUtMTEgIEZlZGVyaWNvIEcuIFNjaHdpbmR0IDxmZ3NjaEBvbGltcG8uY29tLmJyPgoKCSogY29uZmlnLmJmZCAoYWxwaGEqLSotb3BlbmJzZCosIHNwYXJjNjQqLSotb3BlbmJzZCosCglocHBhKi0qLW9wZW5ic2QqKTogTmV3IHRhcmdldHMuCgkqIGNvbmZpZ3VyZS5pbiAoYWxwaGEqLSotb3BlbmJzZCopOiBTZXQgQ09SRUZJTEUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMDUtMTAgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBjb2ZmNjQtcnM2MDAwLmMgKHhjb2ZmNjRfcmVsb2NfdHlwZV9icik6IE5ldyBmdW5jdGlvbiBmb3IKCXhjb2ZmNjRfcHBjX3JlbG9jYXRlX3NlY3Rpb24uCgkqIGNvZmYtcnM2MDAwLmMgOiBFeHRlcm4gY29tbW9uIHhjb2ZmX3JlbG9jX3R5cGUgZnVuY3Rpb25zLgoJKiBsaWJ4Y29mZi5oOiBDb21tb24geGNvZmZfcmVsb2NfdHlwZSBmdW5jdGlvbiBkZWNsYXJhdGlvbi4KCjIwMDItMDUtMTAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBSZW1vdmUgb3ZlcmZsb3cgY2hlY2tzCglhZGRlZCBpbiAyMDAyLTA1LTA5IGNvbW1pdC4KCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9zaXplX3N0dWJzKTogUmV2ZXJ0IHBhcnQgb2YgMjAwMi0wNS0wNCwKCWRvbid0IGxvb2sgZm9yIHN0dWJzIG9uIGFsbCB1bmRlZmluZWQgc3ltcy4KCjIwMDItMDUtMDkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAoUkFfUkVHSVNURVJfTUFTSywgUkFfUkVHSVNURVJfU0hJRlQpOiBEZWxldGUuCgkocHBjNjRfZWxmX2hvd3RvX3JhdyA8Ul9QUEM2NF9SRUxBVElWRT4pOiBOb3QgcGNfcmVsYXRpdmUgb3IKCXBjcmVsX29mZnNldC4KCgkqIGVsZjMyLWkzODYuYyAoZWxmX2hvd3RvX3RhYmxlKTogQ29tbWVudHMuCgkoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IEhhbmRsZSBtb3JlIHJlbG9jcyBmb3IgcmVsb2NhdGFibGUKCWxpbmtpbmcgYW5kIGFnYWluc3QgU0VDX01FUkdFIHNlY3Rpb25zLgoKMjAwMi0wNS0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX2NyZWF0ZV9nb3QpOiBOZXcgZnVuY3Rpb24uCgkocHBjX2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IENhbGwgcHBjX2VsZl9jcmVhdGVfZ290IGJlZm9yZQoJX2JmZF9lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMuICBDb3JyZWN0IC5wbHQgZmxhZ3MuCgkocHBjX2VsZl9jaGVja19yZWxvY3MpOiBVc2UgcHBjX2VsZl9jcmVhdGVfZ290IGluIHBsYWNlIG9mCglfYmZkX2VsZl9jcmVhdGVfZ290X3NlY3Rpb24uCgoyMDAyLTA1LTA3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLWJmZC5oIChzdHJ1Y3QgZWxmX2JhY2tlbmRfZGF0YSk6IEFkZCByZWxhX25vcm1hbC4KCSogZWxmeHgtdGFyZ2V0LmggKGVsZl9iYWNrZW5kX3JlbGFfbm9ybWFsKTogRGVmaW5lLgoJKGVsZk5OX2JlZCk6IEluaXQgcmVsYV9ub3JtYWwuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfaW5wdXRfYmZkIDxlbWl0X3JlbG9jcz4pOiBIYW5kbGUgYWRqdXN0bWVudAoJZm9yIHNlY3Rpb24gc3ltYm9scyBoZXJlIGlmIHJlbGFfbm9ybWFsLiAgU2ltcGxpZnkgYWJzIHNlY3Rpb24gdGVzdC4KCSogZWxmLW0xMDIwMC5jIChtbjEwMjAwX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogSWYgcmVsb2NhdGFibGUsCglyZXR1cm4gaW1tZWRpYXRlbHkuICBSZW1vdmUgY29kZSBoYW5kbGluZyByZWxvY2F0YWJsZSBsaW5raW5nLgoJKiBlbGYtbTEwMzAwLmMgKG1uMTAzMDBfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItZnIzMC5jIChmcjMwX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWkzNzAuYyAoaTM3MF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1pODYwLmMgKGVsZjMyX2k4NjBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhrLmMgKGVsZl9tNjhrX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItbWNvcmUuYyAobWNvcmVfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItb3BlbnJpc2MuYyAob3BlbnJpc2NfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmMgKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzIteHN0b3JteTE2LmMgKHhzdG9ybXkxNl9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jIChlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZSAjaWZuZGVmIFVTRV9SRUwuCgkqIGVsZjMyLW0zMnIuYyAobTMycl9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYtbTEwMjAwLmMgKGVsZl9iYWNrZW5kX3JlbGFfbm9ybWFsKTogRGVmaW5lLgoJKiBlbGYtbTEwMzAwLmMgKGVsZl9iYWNrZW5kX3JlbGFfbm9ybWFsKTogRGVmaW5lLgoJKiBlbGYzMi1mcjMwLmMgKGVsZl9iYWNrZW5kX3JlbGFfbm9ybWFsKTogRGVmaW5lLgoJKiBlbGYzMi1pMzcwLmMgKGVsZl9iYWNrZW5kX3JlbGFfbm9ybWFsKTogRGVmaW5lLgoJKiBlbGYzMi1pODYwLmMgKGVsZl9iYWNrZW5kX3JlbGFfbm9ybWFsKTogRGVmaW5lLgoJKiBlbGYzMi1tNjhrLmMgKGVsZl9iYWNrZW5kX3JlbGFfbm9ybWFsKTogRGVmaW5lLgoJKiBlbGYzMi1tY29yZS5jIChlbGZfYmFja2VuZF9yZWxhX25vcm1hbCk6IERlZmluZS4KCSogZWxmMzItb3BlbnJpc2MuYyAoZWxmX2JhY2tlbmRfcmVsYV9ub3JtYWwpOiBEZWZpbmUuCgkqIGVsZjMyLXBwYy5jIChlbGZfYmFja2VuZF9yZWxhX25vcm1hbCk6IERlZmluZS4KCSogZWxmMzItczM5MC5jIChlbGZfYmFja2VuZF9yZWxhX25vcm1hbCk6IERlZmluZS4KCSogZWxmMzIteHN0b3JteTE2LmMgKGVsZl9iYWNrZW5kX3JlbGFfbm9ybWFsKTogRGVmaW5lLgoJKiBlbGY2NC1wcGMuYyAoZWxmX2JhY2tlbmRfcmVsYV9ub3JtYWwpOiBEZWZpbmUuCgkqIGVsZjY0LXMzOTAuYyAoZWxmX2JhY2tlbmRfcmVsYV9ub3JtYWwpOiBEZWZpbmUuCgkqIGVsZjY0LXg4Ni02NC5jIChlbGZfYmFja2VuZF9yZWxhX25vcm1hbCk6IERlZmluZS4KCSogZWxmeHgtaWE2NC5jIChlbGZfYmFja2VuZF9yZWxhX25vcm1hbCk6IERlZmluZS4KCSogZWxmMzItYXJtLmggKGVsZl9iYWNrZW5kX3JlbGFfbm9ybWFsKTogRGVmaW5lICNpZm5kZWYgVVNFX1JFTC4KCSogZWxmMzItbTMyci5jIChlbGZfYmFja2VuZF9yZWxhX25vcm1hbCk6IExpa2V3aXNlLgoKMjAwMi0wNS0wNiAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBDb252ZXJ0CgkncmVsb2Nfc2lnbmVkX21heCcgYW5kICdyZWxvY19zaWduZWRfbWluJyBpbnRvIGhhbGYtd29yZCBvZmZzZXRzLgoKMjAwMi0wNS0wNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfaW5wdXRfYmZkIDxlbWl0X3JlbG9jcz4pOiBBZGp1c3Qgcl9vZmZzZXQKCXdoZW4gbm90IHJlbG9jYXRhYmxlLiAgRml4IHJlbG9jX2VtaXR0ZXIgY2FsbCBmb3IgSyZSLgoKMjAwMi0wNS0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFJlaW5zdGF0ZSBjb2RlCglyZWxvYWRpbmcgbG9jYWwgc3ltIGFkZGVuZCBtaXN0YWtlbmx5IHJlbW92ZWQgaW4gMjAwMi0wNS0wMSBjaGFuZ2UuCgoJKiBkd2FyZjIuYyAoc3RydWN0IGxpbmVfaGVhZCk6IE1ha2UgcHJvbG9ndWVfbGVuZ3RoIGEgYmZkX3ZtYS4KCShyZWFkX2FiYnJldnMpOiBDaGFuZ2UgIm9mZnNldCIgcGFyYW0gdG8gYmZkX3ZtYS4KCShwYXJzZV9jb21wX3VuaXQpOiBDaGFuZ2UgInZlcnNpb24iIGFuZCBhZGRyX3NpemUgdG8gdW5zaWduZWQgaW50cy4KCUNoYW5nZSAiYWJicmV2X29mZnNldCIgdG8gYmZkX3ZtYS4KCShyZWFkX2luZGlyZWN0X3N0cmluZyk6IFVzZSBjb3JyZWN0IGNvbnZlcnNpb24gY2hhcnMgaW4gZXJyb3IKCW1lc3NhZ2UgZm9ybWF0IHN0cmluZywgY2FzdCBiZmRfdm1hJ3MgdG8gdW5zaWduZWQgbG9uZy4KCShyZWFkX2FiYnJldnMpOiBMaWtld2lzZS4KCShyZWFkX2F0dHJpYnV0ZV92YWx1ZSk6IExpa2V3aXNlLgoJKGRlY29kZV9saW5lX2luZm8pOiBMaWtld2lzZS4KCShzY2FuX3VuaXRfZm9yX2Z1bmN0aW9ucyk6IExpa2V3aXNlLgoJKHBhcnNlX2NvbXBfdW5pdCk6IExpa2V3aXNlLgoKMjAwMi0wNS0wNCAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGNvZmZzd2FwLmggKGNvZmZfc3dhcF9yZWxvY19pbik6IFJlbW92ZSBYQ09GRiBzdXBwb3J0LgoJKGNvZmZfc3dhcF9yZWxvY19vdXQpOiBTYW1lLgoJKiBjb2ZmLXJzNjAwMC5jOiAoeGNvZmZfc3dhcF9yZWxvY19pbik6IE1vdmVkIGZyb20gY29mZnN3YXAuaC4KCSh4Y29mZl9zd2FwX3JlbG9jX291dCk6IFNhbWUuCgkoeGNvZmZfcnR5cGUyaG93dG8pOiBSZW5hbWVkIGZyb20gX2JmZF94Y29mZl9ydHlwZTJob3d0by4gU3BlY2lhbAoJY2FzZSBzb21lIDE2IGJpdCByZWxvY3MuIEFkZCByZWxvYyB2YWx1ZSB0byBvdXRwdXQuCgkoeGNvZmZfaG93dG9fdGFibGUpOiBSZW1vdmUgNjQgYml0IFJfUE9TLCBhZGQgMTYgYml0CglSX1JCUi4gSW1wcm92ZSBuYW1lcy4KCShfYmZkX3hjb2ZmX3JlbG9jX3R5cGVfbG9va3VwKTogQWRqdXN0IGZvciByZW1vdmFsIG9mIDY0IGJpdCBSX1BPUy4KCShiZmRfeGNvZmZfYmFja2VuZF9kYXRhKTogVXBkYXRlIHdpdGggbmV3IHJlbG9jIHN3YXAgbmFtZXMuCgkoYmZkX3BtYWNfeGNvZmZfYmFja2VuZF9kYXRhKSA6IFNhbWUuCgkqIGNvZmY2NC1yczYwMDAuYzogKHhjb2ZmNjRfc3dhcF9yZWxvY19pbik6IE1vdmVkIGZyb20gY29mZnN3YXAuaC4KCSh4Y29mZjY0X3N3YXBfcmVsb2Nfb3V0KTogU2FtZS4KCSh4Y29mZjY0X3J0eXBlMmhvd3RvKTogU3BlY2lhbCBjYXNlIHNvbWUgMTYgYml0IHJlbG9jcyBhbmQgMzIgYml0CglSX1BPUy4gQWRkIHJlbG9jIHZhbHVlIHRvIG91dHB1dC4KCSh4Y29mZjY0X2hvd3RvX3RhYmxlKTogTW92ZSA2NCBiaXQgUl9QT1MgdG8gZmlyc3QgZW50cnkuICBBZGQgMTYKCWJpdCBSX1JCUi4gSW1wcm92ZSBuYW1lcywgbWFza3MuCgkoeGNvZmY2NF9yZWxvY190eXBlX2xvb2t1cCk6IEFkanVzdCBmb3IgbW92ZSBvZiA2NCBiaXQgUl9QT1MuCgkoYmZkX3hjb2ZmX2JhY2tlbmRfZGF0YSk6IFVwZGF0ZSB3aXRoIG5ldyByZWxvYyBzd2FwIG5hbWVzLgoJKGJmZF94Y29mZl9haXg1X2JhY2tlbmRfZGF0YSkgOiBTYW1lLgoKMjAwMi0wNS0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLWhwcGEuYyAoc3RydWN0IGVsZjMyX2hwcGFfbGlua19oYXNoX3RhYmxlKTogQWRkCgliZmRfY291bnQgdG9wX2luZGV4LCBpbnB1dF9saXN0LCBhbGxfbG9jYWxfc3ltcy4KCShlbGYzMl9ocHBhX3NldHVwX3NlY3Rpb25fbGlzdHMpOiBOZXcgZnVuY3Rpb24sIHNwbGl0IGZyb20KCWVsZjMyX2hwcGFfc2l6ZV9zdHVicy4KCShlbGYzMl9ocHBhX25leHRfaW5wdXRfc2VjdGlvbik6IExpa2V3aXNlLgoJKGdyb3VwX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoZ2V0X2xvY2FsX3N5bXMpOiBMaWtld2lzZS4KCShlbGYzMl9ocHBhX3NpemVfc3R1YnMpOiBBZGp1c3QgZm9yIHNwbGl0IG91dCBmdW5jdGlvbnMuICBMb29rIGZvcgoJc3R1YnMgb24gdW5kZWZpbmVkIHN5bXMgdG9vLgoJKGVsZjMyX2hwcGFfc2V0X2dwKTogVXNlIGJmZF9saW5rX2hhc2gqIGluc3RlYWQgb2YgZWxmX2xpbmtfaGFzaCouCglPbmx5IGFjY2VzcyBodGFiIGVsZiBmaWVsZHMgd2hlbiB3ZSBoYXZlIGFuIGVsZiBoYXNoIHRhYmxlLgoJKiBlbGYzMi1ocHBhLmggKGVsZjMyX2hwcGFfc2V0dXBfc2VjdGlvbl9saXN0cyk6IERlY2xhcmUuCgkoZWxmMzJfaHBwYV9uZXh0X2lucHV0X3NlY3Rpb24pOiBEZWNsYXJlLgoKMjAwMi0wNS0wNCAgQm9iIEJ5cm5lcyAgPGJ5cm5lc0BjdXJsLmNvbT4KCgkqIG9wbmNscy5jIChfYmZkX25ld19iZmRfY29udGFpbmVkX2luKTogQ2hlY2sgcmV0dXJuIHZhbHVlIG9mCglfYmZkX25ld19iZmQuCgoyMDAyLTA1LTAzICBILkouIEx1ICAoaGpsQGdudS5vcmcpCgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2xpbmtfaGFzaF9lbnRyeSk6IEFkZCBmb3JjZWRfbG9jYWwuCgkobWlwc19lbGZfbGlua19oYXNoX25ld2Z1bmMpOiBJbml0aWFsaXplIGZvcmNlZF9sb2NhbCB0byBmYWxzZS4KCShtaXBzX2VsZl9yZWNvcmRfZ2xvYmFsX2dvdF9zeW1ib2wpOiBDYWxsIF9iZmRfbWlwc19lbGZfaGlkZV9zeW1ib2wKCXRvIGhpZGUgYSBnbG9iYWwgc3ltYm9sLgoJKF9iZmRfbWlwc19lbGZfaGlkZV9zeW1ib2wpOiBSZXR1cm4gaWYgZm9yY2VkX2xvY2FsIGlzIHRydWUuIFNldAoJZm9yY2VkX2xvY2FsIHRvIHRydWUuCgoyMDAyLTA1LTAyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IEZvcmNlIHJlbGF0aXZlIHJlbG9jcwoJdnMgU0hOX1VOREVGIHRvIHplcm8uCgoyMDAyLTA1LTAyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9ob3d0b19yYXcgPFJfUFBDNjRfU0VDVE9GRj4pOiBDaGFuZ2UgdG8gYQoJMTYgYml0IHJlbG9jLgoJPFJfUFBDNjRfU0VDVE9GRl9EUz46IExpa2V3aXNlLgoJKHBwYzY0X2VsZl9yZWxvY190eXBlX2xvb2t1cCk6IE1hcCBmcm9tIEJGRF9SRUxPQ18xNl9CQVNFUkVMIHRvCglTRUNUT0ZGIHJlbG9jLgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9ob3d0b19yYXcgPFJfUFBDX1NFQ1RPRkY+KTogQ29ycmVjdC4KCShwcGNfZWxmX3JlbG9jX3R5cGVfbG9va3VwKTogTWFwIGZyb20gQkZEX1JFTE9DXzE2X0JBU0VSRUwgdG8KCVNFQ1RPRkYgcmVsb2MuCgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2FkZHIxNl9oYV9yZWxvYyk6IERlbGV0ZS4KCShwcGM2NF9lbGZfaGFfcmVsb2MpOiBOZXcgZnVuY3Rpb24uCgkocHBjNjRfZWxmX2JydGFrZW5fcmVsb2MpOiBOZXcgZnVuY3Rpb24uCgkocHBjNjRfZWxmX3NlY3RvZmZfcmVsb2MpOiBOZXcgZnVuY3Rpb24uCgkocHBjNjRfZWxmX3NlY3RvZmZfaGFfcmVsb2MpOiBOZXcgZnVuY3Rpb24uCgkocHBjNjRfZWxmX3RvY19yZWxvYyk6IE5ldyBmdW5jdGlvbi4KCShwcGM2NF9lbGZfdG9jX2hhX3JlbG9jKTogTmV3IGZ1bmN0aW9uLgoJKHBwYzY0X2VsZl90b2M2NF9yZWxvYyk6IE5ldyBmdW5jdGlvbi4KCShwcGM2NF9lbGZfdW5oYW5kbGVkX3JlbG9jKTogTmV3IGZ1bmN0aW9uLgoJKHBwYzY0X2VsZl9ob3d0b19yYXcpOiBVc2UgdGhlIGFib3ZlLgoJPFJfUFBDNjRfUkVMQVRJVkU+OiBNYXJrIHBjX3JlbGF0aXZlLCBwY3JlbF9vZmZzZXQuCgk8Ul9QUEM2NF9TRUNUT0ZGPjogTm90IHBjX3JlbGF0aXZlIG9yIHBjcmVsX29mZnNldC4gIEZpeCBkc3RfbWFzay4KCTxSX1BQQzY0X1NFQ1RPRkZfRFM+OiBMaWtld2lzZS4KCShJU19BQlNPTFVURV9SRUxPQyk6IFVwZGF0ZS4KCShzdHJ1Y3QgcHBjX2xpbmtfaGFzaF90YWJsZSk6IEFkZCBoYXZlX3VuZGVmd2Vhay4KCShwcGM2NF9lbGZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IEluaXQuCgkoZnVuY19kZXNjX2FkanVzdCk6IFNldCBoYXZlX3VuZGVmd2Vhay4KCShwcGM2NF9lbGZfZnVuY19kZXNjX2FkanVzdCk6IENhbGwgZnVuY19kZXNjX2FkanVzdCBlYXJsaWVyLiAgT25seQoJYWRkIHRoZSAuc2ZwciBibHIgd2hlbiBoYXZlX3VuZGVmd2Vhay4KCShwcGM2NF9lbGZfc2V0dXBfc2VjdGlvbl9saXN0cyk6IENoZWNrIGhhc2ggdGFibGUgZmxhdm91ci4KCShwcGM2NF9lbGZfbmV4dF9pbnB1dF9zZWN0aW9uKTogTW92ZSBvdXRwdXRfc2VjdGlvbi0+b3duZXIgdGVzdCB0bwoJcHBjNjRlbGYuZW0uCgkocHBjNjRfZWxmX3NldF90b2MpOiBSZW5hbWUgdG8gcHBjNjRfZWxmX3RvYywgcmVtb3ZlIGluZm8gcGFyYW0KCWFuZCByZWxvY2F0YWJsZSB0ZXN0LiAgUmV0dXJuIFRPQ3N0YXJ0IGFuZCBkb24ndCBzZXQgZWxmX2dwLgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogQ29ycmVjdCBCUlRBS0VOL0JSTlRBS0VOIGJyYW5jaAoJb2Zmc2V0IGNhbGN1bGF0aW9uLiAgQWRkIGFzc2VydCBvbiB3ZWFrIHN5bSBicmFuY2ggdHdlYWtzLgoJKiBlbGY2NC1wcGMuaCAocHBjNjRfZWxmX3NldF90b2MpOiBEZWxldGUuCgkocHBjNjRfZWxmX3RvYyk6IERlY2xhcmUuCgkocHBjNjRfZWxmX25leHRfaW5wdXRfc2VjdGlvbik6IFVwZGF0ZS4KCjIwMDItMDUtMDEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBzeW1zLmMgKF9iZmRfc3RhYl9zZWN0aW9uX2ZpbmRfbmVhcmVzdF9saW5lKTogRG9uJ3QgYm9tYiBvbiBOVUxMCglmaWxlX25hbWUuCgoyMDAyLTA1LTAxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKENST1JfMTUxNTE1LCBDUk9SXzMxMzEzMSk6IERlZmluZS4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFVzZSB0aGVtLiAgRG9uJ3QgbG9vayBmb3IgcGx0IGNhbGxzCglvbiBSX1BQQzY0X0FERFIyNCByZWxvY3MuICBSZXF1aXJlIGEgbm9wIG9yIG5vIGxpbmsgcmVnIG9uIHBsdAoJY2FsbCBicmFuY2hlcy4gIENvcnJlY3QgdW5kZWZpbmVkIHdlYWsgZGVzdGluYXRpb24uCgkocHBjNjRfZWxmX2Z1bmNfZGVzY19hZGp1c3QpOiBBbHdheXMgY3JlYXRlIGF0IGxlYXN0IG9uZSBibHIgaW4KCS5zZnByLCBhbmQgY29ycmVjdCBjYXNlIHdoZXJlIGVpdGhlciBvbmx5IHNhdmVmKiBvciByZXN0ZiogaXMKCW5lZWRlZC4KCglMb25nIGJyYW5jaCBzdHVicywgbXVsdGlwbGUgc3R1YiBzZWN0aW9ucy4KCSogZWxmNjQtcHBjLmggKHBwYzY0X2VsZl9zZXR1cF9zZWN0aW9uX2xpc3RzKTogRGVjbGFyZS4KCShwcGM2NF9lbGZfbmV4dF9pbnB1dF9zZWN0aW9uKTogRGVjbGFyZS4KCSogZWxmNjQtcHBjLmM6IE1vdmUgbGlua2VyLW9ubHkgcHJvdG90eXBlcy4KCShTVFVCX1NVRkZJWCk6IERlZmluZS4KCShlbnVtIHBwY19zdHViX3R5cGUpOiBOZXcuCgkoc3RydWN0IHBwY19zdHViX2hhc2hfZW50cnkpOiBOZXcuCgkoc3RydWN0IHBwY19icmFuY2hfaGFzaF9lbnRyeSk6IE5ldy4KCShzdHJ1Y3QgcHBjX2xpbmtfaGFzaF9lbnRyeSk6IEFkZCBzdHViX2NhY2hlLCBvaC4KCShzdHJ1Y3QgcHBjX2xpbmtfaGFzaF90YWJsZSk6IEFkZCBzdHViX2hhc2hfdGFibGUgZXRjLiAgUmVtb3ZlCglzc3R1Yi4gIEFkZCBzYnJsdCwgc3JlbGJybHQsIGhhc18xNGJpdF9icmFuY2gsIHN0dWJfaXRlcmF0aW9uLgoJUmVuYW1lIHBsdF9vdmVyZmxvdyB0byBzdHViX2Vycm9yLgoJKHBwY19zdHViX2hhc2hfbG9va3VwKTogRGVmaW5lLgoJKHBwY19icmFuY2hfaGFzaF9sb29rdXApOiBEZWZpbmUuCgkoc3R1Yl9oYXNoX25ld2Z1bmMpOiBOZXcgZnVuY3Rpb24uCgkoYnJhbmNoX2hhc2hfbmV3ZnVuYyk6IE5ldyBmdW5jdGlvbi4KCShsaW5rX2hhc2hfbmV3ZnVuYyk6IEluaXQgbmV3IGZpZWxkcy4KCShwcGM2NF9lbGZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKHBwYzY0X2VsZl9saW5rX2hhc2hfdGFibGVfZnJlZSk6IE5ldyBmdW5jdGlvbi4KCShwcGNfc3R1Yl9uYW1lKTogTmV3IGZ1bmN0aW9uLgoJKHBwY19nZXRfc3R1Yl9lbnRyeSk6IE5ldyBmdW5jdGlvbi4KCShwcGNfYWRkX3N0dWIpOiBOZXcgZnVuY3Rpb24uCgkoY3JlYXRlX2xpbmthZ2Vfc2VjdGlvbnMpOiBVc2UgYmZkX21ha2Vfc2VjdGlvbl9hbnl3YXkuICBDcmVhdGUKCS5icmFuY2hfbHQgYW5kIC5yZWxhLmJyYW5jaF9sdCBzZWN0aW9ucy4gIERvbid0IGNyZWF0ZSAuc3R1Yi4KCShwcGM2NF9lbGZfY2hlY2tfcmVsb2NzKTogU2V0IGhhc18xNGJpdF9icmFuY2ggb24gUl9QUEM2NF9SRUwxNCosCglhbmQgc2V0IHVwIGZvciBwbHQgY2FsbCBzdHVicy4gIExpbmsgZnVuYyBhbmQgZnVuYyBkZXNjIHN5bXMuCgkocHBjNjRfZWxmX2djX3N3ZWVwX2hvb2spOiBIYW5kbGUgUkVMMTQqIGFzIHBlciBSRUwyNC4KCShmdW5jX2Rlc2NfYWRqdXN0KTogQXZvaWQgaGFzaCBsb29rdXAgd2hlbiBmdW5jIGRlc2Mgc3ltIGF2YWlsYWJsZQoJdmlhIHNob3J0Y3V0LCBhbmQgc2V0IGxpbmtzIHdoZW4gcHJvY2Vzc2luZy4KCShwcGM2NF9lbGZfaGlkZV9zeW1ib2wpOiBMaWtld2lzZS4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBEb24ndCBhbGxvY2F0ZSBzdHViIHNlY3Rpb24gaGVyZS4KCShwcGM2NF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogSGFuZGxlIHNicmx0IGFuZCBzcmVsYnJsdC4KCVJlbW92ZSBzc3R1YiBjb2RlLgoJKHBwY190eXBlX29mX3N0dWIpOiBOZXcgZnVuY3Rpb24uCgkoYnVpbGRfb25lX3N0dWIpOiBEZWxldGUuCgkocHBjX2J1aWxkX29uZV9zdHViKTogTmV3IGZ1bmN0aW9uLgoJKHBwY19zaXplX29uZV9zdHViKTogTmV3IGZ1bmN0aW9uLgoJKHBwYzY0X2VsZl9zZXR1cF9zZWN0aW9uX2xpc3RzKTogTmV3IGZ1bmN0aW9uLgoJKHBwYzY0X2VsZl9uZXh0X2lucHV0X3NlY3Rpb24pOiBOZXcgZnVuY3Rpb24uCgkoZ3JvdXBfc2VjdGlvbnMpOiBOZXcgZnVuY3Rpb24uCgkoZ2V0X2xvY2FsX3N5bXMpOiBOZXcgZnVuY3Rpb24uCgkocHBjNjRfZWxmX3NpemVfc3R1YnMpOiBSZXdyaXRlLgoJKHBwYzY0X2VsZl9idWlsZF9zdHVicyk6IFJld3JpdGUuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMb29rIHVwIHN0dWIgZW50cnkgZm9yIFJFTDI0CglyZWxvY3MuICBEb24ndCBwcm9wYWdhdGUgUkVMMTQqIHRvIGR5bmFtaWMgb2JqZWN0cy4gIExvb2sgZm9yIGxvbmcKCWJyYW5jaCBzdHVicyBpZiBSRUwxNCogb3IgUkVMMjQgcmVsb2NzIHdvbid0IHJlYWNoLgoJKGJmZF9lbGY2NF9iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBEZWZpbmUuCgoyMDAyLTA0LTMwICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnLmJmZDogQWRkIHN1cHBvcnQgZm9yIHBvd2VycGMtKi13aW5kaXNzLgoKMjAwMi0wNC0zMCAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIHhjb2ZmbGluay5jICh4Y29mZl9saW5rX2FkZF9zeW1ib2xzKTogQWx3YXlzIGNvcHkgdW5kZWYgQ19FWFQKCXN5bWJvbCBuYW1lcyBpbnRvIHRoZSBoYXNoIHRhYmxlLgoKMjAwMi0wNC0yOCAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGNvZmYtcnM2MDAwLmMgKHhjb2ZmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKSA6IEZ1bmN0aW9uIHRhYmxlIGZvcgoJY2FsdWxhdGluZyByZWxvY2F0aW9ucy4KCSh4Y29mZl9jb21wbGFpbl9vdmVyZmxvdykgOiBGdW5jdGlvbiB0YWJsZSBmb3IgcmVsb2NhdGlvbiBlcnJvcnMuCgkoeGNvZmZfcHBjX3JlbG9jYXRlX3NlY3Rpb24pOiBVc2UgcmVsb2NhdGlvbiBhbmQgY29tcGxhaW4gZnVuY3Rpb24KCXRhYmxlcy4KCSh4Y29mZl9jb21wbGFpbl9vdmVyZmxvd191bnNpZ25lZF9mdW5jKTogTmV3IGNvbXBsYWluIGZ1bmN0aW9uLgoJKHhjb2ZmX2NvbXBsYWluX292ZXJmbG93X3NpZ25lZF9mdW5jKTogU2FtZS4KCSh4Y29mZl9jb21wbGFpbl9vdmVyZmxvd19iaXRmaWVsZF9mdW5jKTogU2FtZS4KCSh4Y29mZl9jb21wbGFpbl9vdmVyZmxvd19kb250X2Z1bmMpOiBTYW1lLgoJKHhjb2ZmX3JlbG9jX3R5cGVfY3JlbCk6IE5ldyByZWNvdCBmdW5jdGlvbi4KCSh4Y29mZl9yZWxvY190eXBlX2JyKTogU2FtZS4KCSh4Y29mZl9yZWxvY190eXBlX2JhKTogU2FtZS4KCSh4Y29mZl9yZWxvY190eXBlX3RvYyk6IFNhbWUuCgkoeGNvZmZfcmVsb2NfdHlwZV9yZWwpOiBTYW1lLgoJKHhjb2ZmX3JlbG9jX3R5cGVfbmVnKTogU2FtZS4KCSh4Y29mZl9yZWxvY190eXBlX3Bvcyk6IFNhbWUuCgkoeGNvZmZfcmVsb2NfdHlwZV9mYWlsKTogU2FtZS4KCSh4Y29mZl9yZWxvY190eXBlX25vb3ApOiBTYW1lLgoJKiBsaWJ4Y29mZi5oIDogRGVjbGFyZSBjb21tb24gcGFydHMgZm9yIHhjb2ZmNjQuCgkqIGNvZmY2NC1yczYwMDAuYyAoeGNvZmY2NF9wcGNfcmVsb2NhdGVfc2VjdGlvbik6IFVzZSByZWxvY2F0aW9uCglhbmQgY29tcGxhaW4gZnVuY3Rpb24gdGFibGVzLgoKMjAwMi0wNC0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXg4Ni02NC5jIChzdHJ1Y3QgZWxmNjRfeDg2XzY0X2R5bl9yZWxvY3MpOiBDb21tZW50IHR5cG8uCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9maW5hbF9saW5rKTogRm9ybWF0dGluZy4KCjIwMDItMDQtMjYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBvcG5jbHMuYyAoYmZkX21ha2VfcmVhZGFibGUpOiBDYWxsIGJmZF9zZWN0aW9uX2xpc3RfY2xlYXIuCgkqIHhjb2ZmbGluay5jICh4Y29mZl9saW5rX2FkZF9keW5hbWljX3N5bWJvbHMpOiBMaWtld2lzZS4KCgkqIGVsZmxpbmsuaCAoZWxmX2JmZF9maW5hbF9saW5rKTogRW5zdXJlIGlucHV0IGJmZCBjbGFzcyBpcyB0aGUKCXNhbWUgYXMgdGhlIG91dHB1dCBiZWZvcmUgY2FsbGluZyBlbGZfbGlua19pbnB1dF9iZmQuCgoJKiBjb2ZmY29kZS5oIChjb2ZmX2NvbXB1dGVfc2VjdGlvbl9maWxlX3Bvc2l0aW9ucyk6IFNldAoJc2VjdGlvbl90YWlsIGFmdGVyIHNodWZmbGluZyBzZWN0aW9uIGxpc3QuCgoyMDAyLTA0LTI0ICBDaHJpc3RpYW4gR3JvZXNzbGVyIDxjaHJpc0Bncm9lc3NsZXIub3JnPgoKCSogY29mZi16OGsuYyAoZXh0cmFfY2FzZSk6IEZpeCBSX0lNTTMyIHJlbG9jYXRpb25zOiBUaGUKCWFkZHJlc3NlcyBhcmUgMjNiaXQgd2l0aCBhIHNwZWNpYWwgbGF5b3V0LCBub3QgcGxhaW4gMzJiaXQKCXZhbHVlcy4gIFByZXZlbnQgcmVsb2NhdGlvbiBvZiBpbW1lZGlhdGUgdmFsdWVzLgoKMjAwMi0wNC0yNCAgQ2hyaXMgRy4gRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogSWYgTURNWCBvcgoJTUlQUy0xNiBBU0UgZmxhZ3MgYXJlIHNldCwgcHJpbnQgc29tZXRoaW5nIHRvIGluZGljYXRlIHRoYXQuCgoyMDAyLTA0LTIzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItaHBwYS5jIChocHBhX3R5cGVfb2Zfc3R1Yik6IENvcnJlY3QgYW5kIHNpbXBsaWZ5IGNvbmRpdGlvbgoJdW5kZXIgd2hpY2ggYSBwbHQgY2FsbCBzdHViIGlzIHVzZWQuCgkoZmluYWxfbGlua19yZWxvY2F0ZSk6IFNpbWlsYXJseS4KCShhbGxvY2F0ZV9wbHRfc3RhdGljKTogQ2xlYXIgaC1wbGFiZWwgZXhjZXB0IHdoZW4gcGx0IGVudHJ5IGlzCglleGNsdXNpdmVseSB1c2VkIGZvciBhIHBsYWJlbC4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBVc2UgdGhlIGFib3ZlIHRvIHNpbXBsaWZ5IHBsdCBzaXppbmcuCgkoc3RydWN0IGVsZjMyX2hwcGFfbGlua19oYXNoX3RhYmxlKTogQWRkIGhhc18yMmJpdF9icmFuY2guCgkoZWxmMzJfaHBwYV9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogSW5pdC4KCShCTDIyX1JQKTogRGVmaW5lLgoJKGhwcGFfYnVpbGRfb25lX3N0dWIpOiBVc2UgQkwyMl9SUCBpZiBoYXNfMjJiaXRfYnJhbmNoLgoJKGVsZjMyX2hwcGFfY2hlY2tfcmVsb2NzKTogU2V0IGhhc18yMmJpdF9icmFuY2guCgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfY2hlY2tfcmVsb2NzKTogUmVtb3ZlIGRlYnVnIG1lc3NhZ2UuCgkoZmluYWxfbGlua19yZWxvY2F0ZSk6IExpa2V3aXNlLgoKMjAwMi0wNC0yMiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYtZWgtZnJhbWUuYyAoX2JmZF9lbGZfZGlzY2FyZF9zZWN0aW9uX2VoX2ZyYW1lKTogRG9uJ3QgYnVpbGQKCXNlYXJjaCB0YWJsZSBpZiBzb21lIEZERSBpcyBEV19FSF9QRV9hbGlnbmVkIGVuY29kZWQgZWl0aGVyLgoJKF9iZmRfZWxmX3dyaXRlX3NlY3Rpb25fZWhfZnJhbWUpOiBIYW5kbGUgdGVybWluYXRpbmcgRkRFIHNwZWNpYWxseS4KCjIwMDItMDQtMjIgIFJpY2hhcmQgU21pdGggIDxyaWNoYXJkQGV4LXBhcnJvdC5jb20+CgkgICAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYtZWgtZnJhbWUuYyAoc3RydWN0IGVoX2NpZV9mZGUpOiBBZGQgcGVyX2VuY29kaW5nX3JlbGF0aXZlLgoJKF9iZmRfZWxmX2Rpc2NhcmRfc2VjdGlvbl9laF9mcmFtZSk6IFNldCBpdCBmb3IgQ0lFcyB3aXRoIHBjcmVsCgllbmNvZGVkIHBlcnNvbmFsaXR5LgoJKF9iZmRfZWxmX3dyaXRlX3NlY3Rpb25fZWhfZnJhbWUpOiBBZGp1c3QgcGNyZWwgZW5jb2RlZCBwZXJzb25hbGl0eQoJZm9yIENJRS9GREUgcmVtb3ZhbC4KCjIwMDItMDQtMjAgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBjb2ZmNjQtcnM2MDAwLmMgKF9iZmRfeGNvZmY2NF9zd2FwX2F1eF9pbik6IEZpeCBDX0ZJTEUgYXV4ZW50LgoKMjAwMi0wNC0yMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGFyY2h1cmVzLmMgKGJmZF9sb29rdXBfYXJjaCk6IE1vdmUgdGhlIGxpc3Qgb3JkZXIgY29tbWVudC4uCgkoc3RydWN0IGJmZF9hcmNoX2luZm8pOiAuLnRvIHdoZXJlIGl0IGJlbG9uZ3MuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCgkqIGFyY2h1cmVzLmMgKGJmZF9sb29rdXBfYXJjaCk6IEFkZCBjb21tZW50IG9uIGxpc3Qgb3JkZXIuCgkoYmZkX2RlZmF1bHRfc2V0X2FyY2hfbWFjaCk6IFVzZSBiZmRfbG9va3VwX2FyY2guCgkqIGNwdS1wb3dlcnBjLmMgKGJmZF9wb3dlcnBjX2FyY2hzKTogUmUtb3JkZXIgc28gdGhhdCB0aGUgZGVmYXVsdAoJaXMgYWx3YXlzIGF0IGhlYWQgb2YgbGlzdC4KCjIwMDItMDQtMTggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogY29mZi1hcm0uYyAoY29mZl90aHVtYl9wY3JlbF8xMiwgY29mZl90aHVtYl9wY3JlbF85LAoJaW5zZXJ0X3RodW1iX2JyYW5jaCwgcmVjb3JkX3RodW1iX3RvX2FybV9nbHVlKTogU3VwcHJlc3MKCWRlZmluaXRpb24gb2YgdGhlc2UgZnVuY3Rpb25zIGZvciBBUk1fV0lOQ0UgYnVpbGRzIGFzIHRoZXkgYXJlCglub3QgdXNlZC4KCShTV0FQX0lOX1JFTE9DX09GRlNFVCwgU1dBUF9PVVRfUkVMT0NfT0ZGU0VUKTogRG8gbm90IGRlZmluZQoJZm9yIEFSTV9XSU5DRSBidWlsZHMuCgoyMDAyLTA0LTE4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvZmYtYXJtLmMgKGJmZF9hcm1fcHJvY2Vzc19iZWZvcmVfYWxsb2NhdGlvbik6CgoyMDAyLTA0LTE3ICBKIm9ybiBSZW5uZWNrZSA8am9lcm4ucmVubmVja2VAc3VwZXJoLmNvbT4KCgkqIGNwdS1zaC5jIChzY2FuX21hY2gpOiBEZWxldGUuCgkoYXJjaF9pbmZvX3N0cnVjdCk6IFJlcGxhY2Ugc2Nhbl9tYWNoIHdpdGggYmZkX2RlZmF1bHRfc2Nhbi4KCShiZmRfc2hfYXJjaCk6IExpa2V3aXNlLgoKMjAwMi0wNC0xNiAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBpaGV4LmMgKGloZXhfd3JpdGVfb2JqZWN0X2NvbnRlbnRzKTogRml4IGNoZWNrIGZvciByZWNvcmRzCgljcm9zc2luZyA2NEsgYm91bmRhcmllcy4KCjIwMDItMDQtMTYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1tMzJyLmMgKG0zMnJfZWxmX2FkZF9zeW1ib2xfaG9vayk6IENoZWNrIHRoZSBoYXNoIHRhYmxlCgl0eXBlIHJhdGhlciB0aGFuIGp1c3QgYXNzdW1pbmcgZW50cmllcyBhcmUgRUxGLgoJKiBlbGYzMi1zaDY0LmMgKHNoNjRfZWxmX2FkZF9zeW1ib2xfaG9vayk6IExpa2V3aXNlLgoJKiBlbGY2NC1zaDY0LmMgKHNoNjRfZWxmNjRfYWRkX3N5bWJvbF9ob29rKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX2FkZF9zeW1ib2xfaG9vayk6IExpa2V3aXNlLgoJKiBlbGY2NC1tbWl4LmMgKG1taXhfZWxmX2FkZF9zeW1ib2xfaG9vayk6IFVzZSBiZmRfbGlua19oYXNoX2VudHJ5CglyYXRoZXIgdGhhbiBlbGZfbGlua19oYXNoX2VudHJ5LgoKMjAwMi0wNC0xNSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLW1pcHMuYyAobWlwc19lbGYzMl9vYmplY3RfcCk6IFJldmVydCAwNDA0IGZyYWdtZW50OiBhbGxvdwoJbjMyIGJpbmFyaWVzLgoKMjAwMi0wNC0xNSAgTWljaGFlbCBTbnlkZXIgIDxtc255ZGVyQHJlZGhhdC5jb20+CgoJKiBvcG5jbHMuYyAoYmZkX2Nsb3NlKTogV3JpdGUgY29udGVudHMgaWYgd3JpdGVhYmxlLgoJTWlub3IgZm9ybWF0dGluZyB0aWR5LXVwcy4KCjIwMDItMDQtMTUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9hZGRfc3ltYm9sX2hvb2spOiBDaGVjayB0aGUgaGFzaCB0YWJsZSB0eXBlLgoKMjAwMi0wNC0xMiAgTWljaGFlbCBTbnlkZXIgIDxtc255ZGVyQHJlZGhhdC5jb20+CgoJKiBiZmQtaW4uaCAoYmZkX2dldF9zZWN0aW9uX2xtYSk6IE5ldyBhY2Nlc3MgbWFjcm8uCglNaW5vciB3aGl0ZS1zcGFjZSBmaXgtdXAuCgoyMDAyLTA0LTEyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLmMgKHByZXBfaGVhZGVycyk6IERvbid0IHplcm8gRUlfT1NBQkksIEVJX0FCSVZFUlNJT04gb3IKCWhlYWRlciBwYWQuCgoyMDAyLTA0LTA5ICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIGVsZmFybS1uYWJpLmMgKGVsZjMyX2FybV9ob3d0b190YWJsZSk6IEZpeCBBQlMxNiBtYXNrcy4KCjIwMDItMDQtMDkgIENhc3BlciBTLiBIb3Juc3RydXAgPGNob3Juc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBjb2ZmY29kZS5oIChjb2ZmX3JlYWRfd29yZCk6IE5ldy4KCShjb2ZmX2NvbXB1dGVfY2hlY2tzdW0pOiBOZXcuCgkoY29mZl9hcHBseV9jaGVja3N1bSk6IE5ldy4KCShjb2ZmX3dyaXRlX29iamVjdF9jb250ZW50cyk6IENhbGwgY29mZl9hcHBseV9jaGVja3N1bSAoKSB0bwoJYXBwbHkgY2hlY2tzdW0gdG8gUEUgaW1hZ2UuCgoyMDAyLTA0LTA4ICBSYW5kb2xwaCBDaHVuZyAgPHRhdXNxQGRlYmlhbi5vcmc+CgoJKiBlbGYzMi1ocHBhLmMgKGhwcGFfdW53aW5kX2VudHJ5X2NvbXBhcmUpOiBNb3ZlIHRvIGVsZi1ocHBhLmguCgkoZWxmMzJfaHBwYV9maW5hbF9saW5rKTogU3BsaXQgb3V0IHNvcnRpbmcgbG9naWMgdG8uLgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9zb3J0X3Vud2luZCk6IC4uaGVyZS4KCShlbGZfaHBwYV9maW5hbF9saW5rKTogQ2FsbCBlbGZfaHBwYV9zb3J0X3Vud2luZC4KCjIwMDItMDQtMDcgIEFuZHJldyBDYWduZXkgIDxhYzEzMTMxM0ByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmluOiBBZGQgbWlzc2luZyBgYHwnJyB0byBwb3dlcnBjLSotYWl4NC5bNC05XSoKCXBhdHRlcm4uCgkqIGNvbmZpZ3VyZTogUmUtZ2VuZXJhdGUuCgoyMDAyLTA0LTA3ICBBbmRyZXcgQ2FnbmV5ICA8YWMxMzEzMTNAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogT25seSBkZWZpbmUgQUlYX0NPUkVfRFVNUFhfQ09SRSB3aGVuIEFJWCB2ZXJzaW9uCglpcyBncmVhdGVyIG9yIGVxdWFsIHRvIDQuMy4zLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCglGaXggUFIgZ2RiLzM0NC4KCjIwMDItMDQtMDUgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogZWxmMzItY3Jpcy5jIChjcmlzX2VsZl9ob3d0b190YWJsZSkgPFJfQ1JJU18xNl9QQ1JFTCwKCVJfQ1JJU18zMl9QQ1JFTD46IEZpeCB0eXBvIGluIG5hbWUuCgkoY3Jpc19lbGZfY2hlY2tfcmVsb2NzKTogQWx3YXlzIGNyZWF0ZSAucmVsYS5nb3QgaGVyZSB3aGVuCglSX0NSSVNfMTZfR09UUExUIG9yIFJfQ1JJU18zMl9HT1RQTFQgaXMgc2Vlbi4KCShlbGZfY3Jpc19hZGp1c3RfZ290cGx0X3RvX2dvdCk6IERvbid0IGNyZWF0ZSAucmVsYS5nb3QgaGVyZTsKCWFzc3VtZSBpdCdzIGNyZWF0ZWQuCgoyMDAyLTA0LTA0ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGFvdXQtYWRvYmUuYyAoYW91dF8zMl9iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBEZWZpbmUuCgkqIGFvdXQtdGFyZ2V0LmggKE1ZX2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IENvbmRpdGlvbmFsbHkKCWRlZmluZS4KCSogYW91dC10aWMzMC5jIChNWV9iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBMaWtld2lzZS4KCSogYmZkLmMgKGJmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IERlZmluZS4KCSogYmluYXJ5LmMgKGJpbmFyeV9iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBEZWZpbmUuCgkqIGJvdXQuYyAoYl9vdXRfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogRGVmaW5lLgoJKiBjb2ZmLXJzNjAwMC5jIChyczYwMDBjb2ZmX3ZlYyk6IEluY2x1ZGUKCV9iZmRfZ2VuZXJpY19saW5rX2hhc2hfdGFibGVfZnJlZS4KCShwbWFjX3hjb2ZmX3ZlYyk6IExpa2V3aXNlLgoJKiBjb2ZmNjQtcnM2MDAwLmMgKHJzNjAwMGNvZmY2NF92ZWMpOiBMaWtld2lzZS4KCShhaXg1Y29mZjY0X3ZlYyk6IExpa2V3aXNlLgoJKiBjb2ZmY29kZS5oIChjb2ZmX2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IENvbmRpdGlvbmFsbHkgZGVmaW5lLgoJKiBlbGYtbTEwMzAwLmMgKGVsZjMyX21uMTAzMDBfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBOZXcgZnVuY3Rpb24uCgkoYmZkX2VsZjMyX2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IERlZmluZS4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogTmV3IGZ1bmN0aW9uLgoJKGJmZF9lbGYzMl9iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBEZWZpbmUuCgkqIGVsZnh4LXRhcmdldC5oIChiZmRfZWxmTk5fYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogQ29uZGl0aW9uYWxseQoJZGVmaW5lLgoJKiBpMzg2bXNkb3MuYyAobXNkb3NfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogRGVmaW5lLgoJKiBpMzg2b3M5ay5jIChvczlrX2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IERlZmluZS4KCSogaWVlZS5jIChpZWVlX2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IERlZmluZS4KCSogaWhleC5jIChpaGV4X2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IERlZmluZS4KCSogbGliYmZkLWluLmggKF9iZmRfbm9saW5rX2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IERlZmluZS4KCShfYmZkX2dlbmVyaWNfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBBZGQgcHJvdG90eXBlLgoJKiBsaWJjb2ZmLWluLmggKF9iZmRfeGNvZmZfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogQWRkIHByb3RvdHlwZS4KCSogbGliZWNvZmYuaCAoX2JmZF9lY29mZl9iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBEZWZpbmUuCgkqIGxpbmtlci5jIChfYmZkX2dlbmVyaWNfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBOZXcgZnVuY3Rpb24uCgkqIG1tby5jIChtbW9fYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogRGVmaW5lLgoJKiBubG0tdGFyZ2V0LmggKG5sbV9iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBEZWZpbmUuCgkqIG9hc3lzLmMgKG9hc3lzX2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IERlZmluZS4KCSogcHBjYm9vdC5jIChwcGNib290X2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IERlZmluZS4KCSogc29tLmMgKHNvbV9iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBEZWZpbmUuCgkqIHNyZWMuYyAoc3JlY19iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBEZWZpbmUuCgkqIHRla2hleC5jICh0ZWtoZXhfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogRGVmaW5lLgoJKiB2ZXJzYWRvcy5jICh2ZXJzYWRvc19iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBEZWZpbmUuCgkqIHZtcy5jICh2bXNfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogTmV3IGZ1bmN0aW9uLgoJKiB4Y29mZmxpbmsuYyAoX2JmZF94Y29mZl9iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBOZXcgZnVuY3Rpb24uCgoJKiBjb2ZmLWFybS5jIChjb2ZmX2FybV9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogVXNlIGJmZF9tYWxsb2MKCWluc3RlYWQgb2YgYmZkX2FsbG9jLgoJKiBjb2ZmLWg4MzAwLmMgKGg4MzAwX2NvZmZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiBjb2ZmLW1jb3JlLmMgKGNvZmZfbWNvcmVfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiBjb2ZmLXBwYy5jIChwcGNfY29mZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIGNvZmZsaW5rLmMgKF9iZmRfY29mZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIGVjb2ZmLmMgKF9iZmRfZWNvZmZfYmZkX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogZWxmLW0xMDMwMC5jIChlbGYzMl9tbjEwMzAwX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogZWxmLmMgKF9iZmRfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIGVsZjMyLWNyaXMuYyAoZWxmX2NyaXNfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jIChlbGZfbTY4a19saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9iZmRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jIChlbGZfczM5MF9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNoNjQuYyAoc2g2NF9lbGY2NF9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX2JmZF9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiBsaW5rZXIuYyAoX2JmZF9nZW5lcmljX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogbTY4a2xpbnV4LmMgKGxpbnV4X2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogc3BhcmNsaW51eC5jIChsaW51eF9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIHN1bm9zLmMgKHN1bm9zX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogeGNvZmZsaW5rLmMgKF9iZmRfeGNvZmZfYmZkX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCgkqIHRhcmdldHMuYzogQWRkIF9iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUgdG8geHZlYy4KCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgkqIGxpYmNvZmYuaDogUmVnZW5lcmF0ZS4KCjIwMDItMDQtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkZXAtaW4uc2VkOiBDb3BlIHdpdGggYWJzb2x1dGUgcGF0aHMuCgkqIE1ha2VmaWxlLmFtIChkZXAuc2VkKTogU3Vic3QgVE9QRElSLCBhbmQgbm90IElOQ0RJUi4KCVJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29mZi1hcm0uYzogRml4IGNvcHlyaWdodCBkYXRlLgoJKiBjcHUtaDgzMDAuYzogTGlrZXdpc2UuCgkqIGNwdS1pMzcwLmM6IExpa2V3aXNlLgoJKiBjcHUtczM5MC5jOiBMaWtld2lzZS4KCSogY3B1LW1pcHMuYzogTGlrZXdpc2UuCgkqIHBvL1NSQy1QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDQtMDQgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBNYWtlZmlsZS5hbTogQWRkIGVsZnh4LW1pcHMuYyB0byB0aGUga25vd24gYmFja2VuZHMuCgkoZWxmMzItbWlwcy5sbyk6IHJlbW92ZSBkZXBlbmRlbmN5IHRvIGNvZmYvZXh0ZXJuYWwuaC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGVsZnh4LW1pcHMubG8gdG8gYWxsIHZlY3RvcnMgdXNpbmcgZWxmMzItbWlwcy5sbwoJUmVtb3ZlIGVsZjMyLW1pcHMubG8gZnJvbSA2NCBiaXQgdmVjdG9ycy4gVXBkYXRlIGRlcGVuZGVuY2llcwoJYWNjb3JkaW5nbHkuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogZWxmLWJmZC5oOiBNb3ZlIGFsbCBNSVBTIEVMRiBzcGVjaWZpYyBwcm90b3R5cGVzIHRvIGVsZnh4LW1pcHMuaC4KCShpcml4X2NvbXBhdF90KTogSVJJWCBjb21wYXRpYmlsaXR5IGxldmVsLCBtb3ZlZCBmcm9tIGVsZjMyLW1pcHMuYy4KCShlbGZfYmFja2VuZF9taXBzX2lyaXhfY29tcGF0LCBlbGZfYmFja2VuZF9taXBzX3J0eXBlX3RvX2hvd3RvKTogTmV3CglNSVBTIHNwZWNpZmljIGJhY2tlbmQgZnVuY3Rpb25zLgoJKiBlbGYzMi1taXBzLmM6IE1vdmVkIG1vc3QgY29kZSB0byBlbGZ4eC1taXBzLmMuCgkobWlwc19lbGZfaGkxNl9yZWxvYyk6IFJlbmFtZSBmcm9tIF9iZmRfbWlwc19lbGZfaGkxNl9yZWxvYyBhbmQgbWFrZQoJc3RhdGljLgoJKG1pcHNfZWxmX2xvMTZfcmVsb2MpOiBMaWtld2lzZSwgd2FzIF9iZmRfbWlwc19lbGZfbG8xNl9yZWxvYy4KCShtaXBzX2VsZl9nb3QxNl9yZWxvYyk6IExpa2V3aXNlLCB3YXMgX2JmZF9taXBzX2VsZl9nb3QxNl9yZWxvYy4KCShtaXBzX2VsZl9ncHJlbDMyX3JlbG9jKTogTGlrZXdpc2UsIHdhcyBfYmZkX21pcHNfZWxmX2dwcmVsMzJfcmVsb2MuCgkobWlwc19lbGYzMl9ydHlwZV90b19ob3d0byk6IFJlbmFtZSBmcm9tIG1pcHNfcnR5cGVfdG9faG93dG8uIENoYW5nZWQKCWludGVyZmFjZSB0byBhbGxvdyBzZWxlY3Rpb24gb2YgdGhlIHJpZ2h0IFJFTCBvciBSRUxBIGhvd3RvIHRhYmxlLgoJKG1pcHNfZWxmMzJfb2JqZWN0X3ApOiBSZW5hbWUgZnJvbSBfYmZkX21pcHNfZWxmX29iamVjdF9wIGFuZCBtYWRlCglzdGF0aWMuIExldCBpdCByZWZ1c2UgbjMyIG9iamVjdHMuCgkoZWxmMzJfbWlwc19ncm9rX3Byc3RhdHVzKTogUmVuYW1lIGZyb20gX2JmZF9lbGYzMl9taXBzX2dyb2tfcHJzdGF0dXMuCgkoZWxmMzJfbWlwc19ncm9rX3BzaW5mbyk6IFJlbmFtZSBmcm9tIF9iZmRfZWxmMzJfbWlwc19ncm9rX3BzaW5mby4KCShlbGYzMl9taXBzX2Rpc2NhcmRfaW5mbyk6IFJlbmFtZSBmcm9tIF9iZmRfZWxmMzJfbWlwc19kaXNjYXJkX2luZm8uCgkoZWxmMzJfbWlwc19pZ25vcmVfZGlzY2FyZGVkX3JlbG9jcyk6IFJlbmFtZSBmcm9tCglfYmZkX2VsZjMyX21pcHNfaWdub3JlX2Rpc2NhcmRlZF9yZWxvY3MuCgkoZWxmMzJfbWlwc193cml0ZV9zZWN0aW9uKTogUmVuYW1lIGZyb20gX2JmZF9lbGYzMl9taXBzX3dyaXRlX3NlY3Rpb24uCgkoZWxmMzJfbWlwc19pcml4X2NvbXBhdCk6IE5ldyBmdW5jdGlvbiwgcmVwbGFjZXMgSVJJWF9DT01QQVQuCgkoZWxmX21pcHNfaG93dG9fdGFibGVfcmVsYSk6IFJlbW92ZS4KCSogZWxmNjQtbWlwcy5jOiBNb3ZlZCBtb3N0IGNvZGUgdG8gZWxmeHgtbWlwcy5jLgoJKGJmZF9lbGY2NF9iZmRfcmVsb2NfdHlwZV9sb29rdXApOiBNYWtlIHN0YXRpYy4KCShtaXBzX2VsZjY0X3J0eXBlX3RvX2hvd3RvKTogTmV3IGZ1bmN0aW9uLgoJKG1pcHNfZWxmNjRfb2JqZWN0X3ApOiBMaWtld2lzZS4KCShlbGY2NF9taXBzX2lyaXhfY29tcGF0KTogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuYzogTmV3IGZpbGUgY29udGFpbmluZyBjb21tb24gY29kZSBtZXJnZWQgdG9nZXRoZXIgZnJvbQoJZWxmMzItbWlwcy5jIGFuZCBlbGY2NC1taXBzLmMuCgkqIGVsZnh4LW1pcHMuaDogTmV3IGZpbGUgY29udGFpbmluZyBNSVBTIHNwZWNpZmljIHByb3RvdHlwZXMgZnJvbQoJZWxmLWJmZC5oLgoJKiBlbGZ4eC10YXJnZXQuaDogQWRkIGhhbmRsaW5nIGZvciBlbGZfYmFja2VuZF9taXBzX2lyaXhfY29tcGF0IGFuZAoJZWxmX2JhY2tlbmRfbWlwc19ydHlwZV90b19ob3d0by4KCjIwMDItMDQtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBzcmVjLmMgKE1BWENIVU5LLCBDaHVuayk6IFJldmlzZSBjb21tZW50cy4KCShzcmVjX3dyaXRlX3JlY29yZCk6IENvcnJlY3QgYnVmZmVyIHNpemUuCgkoc3JlY193cml0ZV9oZWFkZXIpOiBEbyB3aXRob3V0IGludGVybWVkaWF0ZSBidWZmZXIuCgkoc3JlY193cml0ZV9zZWN0aW9uKTogVmFsaWRhdGUgQ2h1bmsuCgkoc3JlY193cml0ZV90ZXJtaW5hdG9yKTogUGFzcyBOVUxMIGluc3RlYWQgb2YgZHVtbXkgYnVmZmVyLgoJKHNyZWNfd3JpdGVfc3ltYm9scyk6IFBhc3MgZmlsZSBhbmQgc3ltYm9sIG5hbWVzIGRpcmVjdGx5IHRvCgliZmRfYndyaXRlIHNvIHNwcmludGYgd29uJ3Qgb3ZlcmZsb3cgYnVmZmVyLgoKMjAwMi0wNC0wMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1zcGFyYy5jIChlbGYzMl9zcGFyY19yZWxvY2F0ZV9zZWN0aW9uKTogRG9uJ3QgZW1pdCBkeW5hbWljCglQQyByZWxhdGl2ZSByZWxvY3MgYWdhaW5zdCBoaWRkZW4gc3ltYm9scy4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMi0wNC0wMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi5jIChfYmZkX2VsZl9tYWtlX3NlY3Rpb25fZnJvbV9zaGRyKTogV2hlbiBzZXR0aW5nIHNlY3Rpb24KCUxNQXMsIGxvb3Agb3ZlciBzZWdtZW50cyB1bnRpbCBwX3ZhZGRyIGFuZCBwX21lbXN6IHNwZWNpZnkgYW4KCWV4dGVudCBlbmNsb3NpbmcgdGhlIHNlY3Rpb24uCgoyMDAyLTA0LTAyICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGloZXguYyAoaWhleF93cml0ZV9vYmplY3RfY29udGVudHMpOiBEbyBub3QgYWxsb3cgcmVjb3JkcyB0bwoJY3Jvc3MgYSA2NEsgYm91bmRhcnkgLSB3cmFwIGlmIG5lY2Vzc2FyeS4KCjIwMDItMDQtMDEgIE5hdGhhbiBXaWxsaWFtcyAgPG5hdGhhbndAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBlbGYuYyAoZWxmY29yZV9uZXRic2RfZ2V0X2x3cGlkKTogRml4IG9mZi1ieS1vbmUgZXJyb3IKCXdoaWNoIGNhdXNlZCB0aGUgcmV0dXJuZWQgTFdQIElEIHRvIGFsd2F5cyBiZSAwLgoKMjAwMi0wNC0wMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXNwYXJjLmMgKFdJTExfQ0FMTF9GSU5JU0hfRFlOQU1JQ19TWU1CT0wpOiBOZXcuCgkoZWxmMzJfc3BhcmNfcmVsb2NhdGVfc2VjdGlvbik6IFVzZSBpdCB0byBmaWd1cmUgb3V0IHdoZW4gdG8KCWluaXRpYWxpemUgLmdvdCBlbnRyaWVzLgoJKiBlbGY2NC1zcGFyYy5jOiBTaW1pbGFybHkuCgoyMDAyLTAzLTI4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGlua2VyLmMgKGxpbmtfYWN0aW9uKTogSWdub3JlIGR1cGxpY2F0ZSB3YXJuaW5nIHN5bXMuCgkoX2JmZF9nZW5lcmljX2xpbmtfd3JpdGVfZ2xvYmFsX3N5bWJvbCk6IEZvbGxvdyB3YXJuaW5nIHN5bWJvbCBsaW5rLgoJKiBlbGZsaW5rLmggKGVsZl9hZGp1c3RfZHluc3RyX29mZnNldHMpOiBMaWtld2lzZS4KCShlbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgkoZWxmX2V4cG9ydF9zeW1ib2wpOiBMaWtld2lzZS4KCShlbGZfbGlua19maW5kX3ZlcnNpb25fZGVwZW5kZW5jaWVzKTogTGlrZXdpc2UuCgkoZWxmX2xpbmtfYXNzaWduX3N5bV92ZXJzaW9uKTogTGlrZXdpc2UuCgkoZWxmX2xpbmtfc2VjX21lcmdlX3N5bXMpOiBMaWtld2lzZS4KCShlbGZfbGlua19vdXRwdXRfZXh0c3ltKTogTGlrZXdpc2UuCgkoZWxmX2djX3N3ZWVwX3N5bWJvbCk6IExpa2V3aXNlLgoJKGVsZl9nY19wcm9wYWdhdGVfdnRhYmxlX2VudHJpZXNfdXNlZCk6IExpa2V3aXNlLgoJKGVsZl9nY19zbWFzaF91bnVzZWRfdnRlbnRyeV9yZWxvY3MpOiBMaWtld2lzZS4KCShlbGZfZ2NfYWxsb2NhdGVfZ290X29mZnNldHMpOiBMaWtld2lzZS4KCShlbGZfY29sbGVjdF9oYXNoX2NvZGVzKTogTGlrZXdpc2UuCgkqIGVsZmxpbmsuYyAoZWxmX2xpbmtfcmVudW1iZXJfaGFzaF90YWJsZV9keW5zeW1zKTogTGlrZXdpc2UuCgkqIGVsZi1ocHBhLmggKGVsZl9ocHBhX3VubWFya191c2VsZXNzX2R5bmFtaWNfc3ltYm9scyk6IExpa2V3aXNlLgoJKGVsZl9ocHBhX3JlbWFya191c2VsZXNzX2R5bmFtaWNfc3ltYm9scyk6IExpa2V3aXNlLgoJKiBlbGYtbTEwMzAwLmMgKGVsZjMyX21uMTAzMDBfZmluaXNoX2hhc2hfdGFibGVfZW50cnkpOiBMaWtld2lzZS4KCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9kaXNjYXJkX2NvcGllcyk6IExpa2V3aXNlLgoJKiBlbGYzMi1jcmlzLmMgKGVsZl9jcmlzX2FkanVzdF9nb3RwbHRfdG9fZ290KTogTGlrZXdpc2UuCgkoZWxmX2NyaXNfZGlzY2FyZF9leGNlc3NfZHNvX2R5bmFtaWNzKTogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuYyAoY2xvYmJlcl9taWxsaWNvZGVfc3ltYm9scyk6IExpa2V3aXNlLgoJKG1hcmtfUElDX2NhbGxzKTogTGlrZXdpc2UuCgkoYWxsb2NhdGVfcGx0X3N0YXRpYyk6IExpa2V3aXNlLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IExpa2V3aXNlLgoJKHJlYWRvbmx5X2R5bnJlbG9jcyk6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzg2LmMgKGFsbG9jYXRlX2R5bnJlbG9jcyk6IExpa2V3aXNlLgoJKHJlYWRvbmx5X2R5bnJlbG9jcyk6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzcwLmMgKGkzNzBfZWxmX2FkanVzdF9keW5pbmR4KTogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGsuYyAoZWxmX202OGtfZGlzY2FyZF9jb3BpZXMpOiBMaWtld2lzZS4KCSogZWxmMzItbWlwcy5jIChtaXBzX2VsZl9vdXRwdXRfZXh0c3ltKTogTGlrZXdpc2UuCgkobWlwc19lbGZfc29ydF9oYXNoX3RhYmxlX2YpOiBMaWtld2lzZS4KCShtaXBzX2VsZl9jaGVja19taXBzMTZfc3R1YnMpOiBMaWtld2lzZS4KCSogZWxmMzItczM5MC5jIChhbGxvY2F0ZV9keW5yZWxvY3MpOiBMaWtld2lzZS4KCShyZWFkb25seV9keW5yZWxvY3MpOiBMaWtld2lzZS4KCSogZWxmMzItc2guYyAoc2hfZWxmX2Rpc2NhcmRfY29waWVzKTogTGlrZXdpc2UuCgkqIGVsZjMyLXhzdG9ybXkxNi5jICh4c3Rvcm15MTZfcmVsYXhfcGx0X2NoZWNrKTogTGlrZXdpc2UuCgkoeHN0b3JteTE2X3JlbGF4X3BsdF9yZWFsbG9jKTogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX2NhbGNfZ290X29mZnNldHNfZm9yX3N5bWJvbCk6IExpa2V3aXNlLgoJKGVsZjY0X2FscGhhX291dHB1dF9leHRzeW0pOiBMaWtld2lzZS4KCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX21hcmtfZXhwb3J0ZWRfZnVuY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjY0LW1pcHMuYyAobWlwc19lbGY2NF9zb3J0X2hhc2hfdGFibGVfZik6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfY2hlY2tfbWlwczE2X3N0dWJzKTogTGlrZXdpc2UuCgkobWlwc19lbGY2NF9vdXRwdXRfZXh0c3ltKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChmdW5jX2Rlc2NfYWRqdXN0KTogTGlrZXdpc2UuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogTGlrZXdpc2UuCgkocmVhZG9ubHlfZHlucmVsb2NzKTogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYyAoYWxsb2NhdGVfZHlucmVsb2NzKTogTGlrZXdpc2UuCgkocmVhZG9ubHlfZHlucmVsb2NzKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNoNjQuYyAoc2g2NF9lbGY2NF9kaXNjYXJkX2NvcGllcyk6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYyAoYWxsb2NhdGVfZHlucmVsb2NzKTogTGlrZXdpc2UuCgkocmVhZG9ubHlfZHlucmVsb2NzKTogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9nbG9iYWxfZHluX3N5bV90aHVuayk6IExpa2V3aXNlLgoJKiBhb3V0eC5oIChhb3V0X2xpbmtfd3JpdGVfb3RoZXJfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGNvZmZsaW5rLmMgKF9iZmRfY29mZl93cml0ZV90YXNrX2dsb2JhbHMpOiBMaWtld2lzZS4KCShfYmZkX2NvZmZfd3JpdGVfZ2xvYmFsX3N5bSk6IExpa2V3aXNlLgoJKiBpMzg2bGludXguYyAobGludXhfdGFsbHlfc3ltYm9scyk6IExpa2V3aXNlLgoJKiBtNjhrbGludXguYyAobGludXhfdGFsbHlfc3ltYm9scyk6IExpa2V3aXNlLgoJKiBzcGFyY2xpbnV4LmMgKGxpbnV4X3RhbGx5X3N5bWJvbHMpOiBMaWtld2lzZS4KCSogcGRwMTEuYyAoYW91dF9saW5rX3dyaXRlX290aGVyX3N5bWJvbCk6IExpa2V3aXNlLgoJKiBzdW5vcy5jIChzdW5vc19zY2FuX2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgkqIHhjb2ZmbGluay5jICh4Y29mZl9idWlsZF9sZHN5bXMpOiBMaWtld2lzZS4KCSh4Y29mZl93cml0ZV9nbG9iYWxfc3ltYm9sKTogTGlrZXdpc2UuCgoJKiBjb2ZmbGluay5jIChfYmZkX2NvZmZfZmluYWxfbGluayk6IEZvcm1hdHRpbmcuCgkqIGNwdS1taXBzLmMgKG1pcHNfY29tcGF0aWJsZSk6IE1ha2Ugc3RhdGljLCBwcm90b3R5cGUuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfY2hlY2tfcmVsb2NzKTogRm9ybWF0dGluZy4KCSogZWxmMzItc2guYyAoc2hfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9vdXRwdXRfZXh0c3ltKTogTGlrZXdpc2UuCgkqIGVsZjY0LW1pcHMuYyAobWlwc19lbGY2NF9zb3J0X2hhc2hfdGFibGUpOiBMaWtld2lzZS4KCShtaXBzX2VsZjY0X2ZpbmFsX2xpbmspOiBMaWtld2lzZS4KCSogZWxmbGluay5oIChlbGZfbGlua19maW5kX3ZlcnNpb25fZGVwZW5kZW5jaWVzKTogUmVtb3ZlIGR1cGxpY2F0ZQoJcHJvdG90eXBlLgoKMjAwMi0wMy0yNyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb2ZmLWFybS5jIChTV0FQX0lOX1JFTE9DX09GRlNFVCk6IERlZmluZS4KCShTV0FQX09VVF9SRUxPQ19PRkZTRVQpOiBEZWZpbmUuCgoyMDAyLTAzLTI3ICBHcmVnb3J5IFN0ZXVjayA8Z3JlZ0BuZXN0LmN4PgoKCSogZWxmLmMgKF9iZmRfZWxmX2dldF9zeW10YWJfdXBwZXJfYm91bmQpOiBMZWF2ZSBzcGFjZSBmb3IKCXRlcm1pbmF0aW5nIE5VTEwgaWYgZW1wdHkgc3ltYm9sIHRhYmxlLgoJKF9iZmRfZWxmX2dldF9keW5hbWljX3N5bXRhYl91cHBlcl9ib3VuZCk6IExpa2V3aXNlLgoKMjAwMi0wMy0yNiAgSC5KLiBMdSAgKGhqbEBnbnUub3JnKQoKCSogZWxmbGluay5oIChlbGZfbGlua19pbnB1dF9iZmQpOiBSZXZlcnQgdGhlIGxhc3QgY2hhbmdlIHNpbmNlCgl0aGUgZ2NjIGV4Y2VwdGlvbiBoYW5kbGluZyBpc24ndCBmaXhlZCB5ZXQuCgoyMDAyLTAzLTI2ICBILkouIEx1ICAoaGpsQGdudS5vcmcpCgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2lucHV0X2JmZCk6IENvbXBsYWluIGFib3V0IHJlbG9jYXRpb25zCglhZ2FpbnN0IGxvY2FsIHN5bWJvbHMgaW4gZGlzY2FyZGVkIHNlY3Rpb25zLgoKMjAwMi0wMy0yNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmxpbmsuaCAoZWxmX2djX21hcmspOiBEb24ndCByZWN1cnNlIGludG8gbm9uLUVMRiBzZWN0aW9ucy4KCjIwMDItMDMtMjMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYuYyAoX2JmZF9lbGZfbWFrZV9zZWN0aW9uX2Zyb21fc2hkcik6IERvbid0IHNldCBsbWEgYmFzZWQgb24KCXNlY3Rpb24gZmlsZSBvZmZzZXQgZm9yICFTRUNfTE9BRCBzZWN0aW9ucy4KCjIwMDItMDMtMjEgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9maW5hbF9saW5rX3JlbG9jYXRlIDxjYXNlIFJfQVJNX0dPVE9GRj4sCgk8Y2FzZSBSX0FSTV9HT1Q+KTogSGFuZGxlIHJlbG9jYXRpb25zIHRvIFRodW1iIGZ1bmN0aW9ucy4KCjIwMDItMDMtMjEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb2ZmNjQtcnM2MDAwLmMgKF9iZmRfeGNvZmY2NF9wdXRfc3ltYm9sX25hbWUpOiBQcm90b3R5cGUuCglXaGl0ZXNwYWNlIGNoYW5nZXMuCgkqIGFyY2hpdmUuYzogVXBkYXRlIGNvcHlyaWdodCBkYXRlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIKCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL1NSQy1QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDMtMjAgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogZHdhcmYyLmMgKHN0cnVjdCBmdW5jaW5mbyk6IE1vdmUgdXAuCgkobG9va3VwX2FkZHJlc3NfaW5fZnVuY3Rpb25fdGFibGUpOiBOZXcgYXJndW1lbnQgZnVuY3Rpb25fcHRyLgoJU2V0IGl0LgoJKGxvb2t1cF9hZGRyZXNzX2luX2xpbmVfdGFibGUpOiBOZXcgYXJndW1lbnQgZnVuY3Rpb24uICBJZiBmdW5jdGlvbgoJaXMgbm9uLU5VTEwsIHVzZSBpdCB0byBoYW5kbGUgYGBhZGRyJycgYmVmb3JlIHRoZSBmaXJzdCBsaW5lIG5vdGUgb2YKCXRoZSBmdW5jdGlvbi4KCShjb21wX3VuaXRfZmluZF9uZWFyZXN0X2xpbmUpOiBVcGRhdGUgYW5kIHN3YXAgY2FsbHMgdG8KCWxvb2t1cF9hZGRyZXNzX2luX2Z1bmN0aW9uX3RhYmxlIGFuZCBsb29rdXBfYWRkcmVzc19pbl9saW5lX3RhYmxlLgoJKiBzeW1zLmMgKF9iZmRfc3RhYl9zZWN0aW9uX2ZpbmRfbmVhcmVzdF9saW5lKTogVXNlIHRoZSBmaXJzdAoJTl9TTElORSBlbmNvdW50ZXJlZCBpZiB3ZSBzZWUgYW4gTl9GVU4gYmVmb3JlIGFueSBOX1NMSU5FLgoKMjAwMi0wMy0yMCAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGNvZmYtcnM2MDAwLmMgKF9iZmRfeGNvZmZfc3RhdF9hcmNoX2VsdCk6IFJlbmFtZWQgZnJvbQoJX2JmZF94Y29mZl9nZW5lcmljX3N0YXRfYXJjaF9lbHQuICBGaXggZm9ybWF0IGNoZWNrLgoJKiBjb2ZmNjQtcnM2MDAwLmMgOiBVc2UgX2JmZF94Y29mZl9zdGF0X2FyY2hfZWx0LgoKMjAwMi0wMy0xOSAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIHhjb2ZmbGluay5jIChfYmZkX3hjb2ZmX2JmZF9saW5rX2FkZF9zeW1ib2xzKTogTG9vayB0aHJvdWdoIGFsbAoJZHluYW1pYyBvYmplY3RzIGluIGFyY2hpdmVzLgoKMjAwMi0wMy0xOSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogZWxmbGluay5oIChOQU1FKGJmZF9lbGYscmVjb3JkX2xpbmtfYXNzaWdubWVudCkpOiBEb24ndCBzZXQKCVNUVF9OT1RZUEUgc3ltYm9scyB0byBTVFRfT0JKRUNULgoKMjAwMi0wMy0xOCAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogY3B1LWkzODYuYyAoYmZkX3g4Nl82NF9hcmNoKTogUmVuYW1lIHRvICJpMzg2Ong4Ni02NCIKCjIwMDItMDMtMTggIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBhaXg1cHBjLmNvcmUuYyA6IE5ldyBmaWxlIGZvciBBSVggNSA2NCBiaXQgY29yZSBzdXBwb3J0LgoJKiBiZmQtaW4uaCA6IEFkZCBiZmRfeGNvZmZfYXJfYXJjaGl2ZV9zZXRfbWFnaWMgZGVjbGFyYXRpb24uCgkqIGNvZmYtcnM2MDAwIChkb19wYWQpIDogTmV3IGZ1bmN0aW9uIGZvciBhcmNoaXZlIHBhZGRpbmcuCgkoZG9fY29weSkgOiBOZXcgZnVuY3Rpb24gZm9yIG9iamVjdCBmaWxlIGNvcHlpbmcgaW4gYXJjaGl2ZXMuCgkoZG9fc2hhcmVkX29iamVjdF9wYWRkaW5nKSA6IE5ldyBmdW5jdGlvbiBmb3IgcGFkZGluZyBzaGFyZWQKCW9iamVjdHMgdG8gdGhlaXIgdGV4dCBzZWN0aW9uIGFsaWdubWVudCBpbiBhcmNoaXZlcy4KCShiZmRfeGNvZmZfYXJfYWNoaXZlX3NldF9tYWdpYykgOiBTdHViLgoJKHhjb2ZmX3dyaXRlX2FybWFwX2JpZykgOiBVc2UgZG9fY29weSBhbmQgZG9fcGFkLgoJKHhjb2ZmX3dyaXRlX2FyY2hpdmVfY29udGVudHNfYmlnKSA6IFVzZSBkb19zaGFyZWRfb2JqZWN0X3BhZGRpbmcsCglkb19jb3B5IGFuZCBkb19wYWQuCgkqIGNvZmY2NC1yczYwMDAuYyAoeGNvZmY2NF93cml0ZV9vamJlY3RfY29udGVudHMpIDogVXNlCgliZmRfeGNvZmZfbWFnaWNfbnVtYmVyLgoJKHhjb2ZmNjRfYmFkX2Zvcm1hdF9ob29rKSA6IE5ldyBmdW5jdGlvbiBmb3IgX2JmZF9iYWRfZm9ybWF0X2hvb2sKCWZvcC4KCSh4Y29mZl9iYWNrZW5kX2RhdGFfcikgOiBVc2UgeGNvZmY2NF9iYWRfZm9ybWF0X2hvb2suCgkoYmZkX3hjb2ZmX2FpeDVfYmFja2VuZF9kYXRhKSA6IE5ldyBBaXggNSBiYWNrZW5kIGRhdGEuCgkoYWl4NWNvZmY2NF92ZWMpIDogTmV3IEFpeCA1IHRhcmdldCBhaXg1Y29mZjY0LXJzNjAwMC4KCSogcnM2MDAwLWNvcmUuYyA6IFVwZGF0ZSBjb3B5cmlnaHQgZGF0ZS4KCSogeGNvZmZsaW5rLmMgKGJmZF94Y29mZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBDaGVjayBmb3IgTlVMTAoJY3NlY3RwcC4KCSogY29mZmNvZGUuaCAoY29mZl9uZXdfc2VjdGlvbl9ob29rKSA6IFVzZSBuZXcgYWNjZXNzb3IgbWFjcm9zLgoJKGNvZmZfc2V0X2FyY2hfbWFjaF9ob29rKSA6IEFkZCBBaXggNSBVNjRfVE9DTUFHSUMgbWFnaWMgIy4KCShjb2ZmX3NldF9mbGFncykgOiBVc2UgYmZkX3hjb2ZmX21hZ2ljX251bWJlci4KCSogbGlieGNvZmYuaCAoYmZkX3hjb2ZmX2lzX3hjb2ZmNjQpOiBBZGQgVTY0X1RPQ01BR0lDLgoJKiBjb25maWd1cmUuaW4gOiBBZGQgcG93ZXJwYy0qLWFpeDUgYW5kIHJzNjAwMC0qLWFpeDUgc3VwcG9ydC4KCSogTWFrZWZpbGUuYW0gOiBTYW1lLgoJKiBjb25maWcuYmZkIDogU2FtZS4KCSogdGFyZ2V0cy5jIDogU2FtZS4KCSogY29uZmlndXJlIDogUmVnbmVyYXRlLgoJKiBNYWtlZmlsZS5pbiA6IFNhbWUuCgkqIGJmZC1pbjIuaCA6IFNhbWUuCgoyMDAyLTAzLTE4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIHBvL2ZyLnBvOiBVcGRhdGVkIHZlcnNpb24uCgoyMDAyLTAzLTE4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGliYmZkLmMgKGJmZF93cml0ZV9iaWdlbmRpYW5fNGJ5dGVfaW50KTogUmV0dXJuIHRydWUgaWZmIHN1Y2Nlc3MuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBhcmNoaXZlLmMgKGNvZmZfd3JpdGVfYXJtYXApOiBQYXNzIG9uIGZhaWx1cmVzIGZyb20KCWJmZF93cml0ZV9iaWdlbmRpYW5fNGJ5dGVfaW50LgoKMjAwMi0wMy0xNCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGZsaW5rLmggKE5BTUUoYmZkX2VsZixzaXplX2R5bmFtaWNfc2VjdGlvbnMpKTogU2V0IHRoZSBCRkQKCWVycm9yIHRvIGJmZF9lcnJvcl9ub25yZXByZXNlbnRhYmxlX3NlY3Rpb24gZm9yIHJlaW5pdF9hcnJheQoJc2VjdGlvbiBpbiBEU08uCgoyMDAyLTAzLTE0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvZmZjb2RlLmggKGNvZmZfc2x1cnBfc3ltYm9sX3RhYmxlKTogV2hlbiBhZGRpbmcgQlNGX1dFQUsgZmxhZywKCU9SIGl0IGluIHJhdGhlciB0aGFuIHJlcGxhY2luZyBwcmV2aW91c2x5IHNlbGVjdGVkIGZsYWdzLgoKCSogZWxmeHgtdGFyZ2V0LmggKFRBUkdFVF9CSUdfU1lNKTogU2V0IGFyX21heF9uYW1lbGVuIHRvIDE1LgoJKFRBUkdFVF9MSVRUTEVfU1lNKTogU2V0IGFyX21heF9uYW1lbGVuIHRvIDE1LgoKMjAwMi0wMy0xNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNwdS1taXBzLmMgKG1pcHNfY29tcGF0aWJsZSk6IE5ldy4gIERvbid0IGNoZWNrIGJpdHNfcGVyX3dvcmQuCgkoTik6IFVzZSB0aGUgYWJvdmUuCgkqIGVsZmxpbmsuaCAoZWxmX2JmZF9maW5hbF9saW5rKTogUmV2ZXJ0IGxhc3QgY2hhbmdlLiAgSW5zdGVhZCwKCWVuc3VyZSByZWxvYyBzaXplIG1hdGNoZXMgYmVmb3JlIGNhbGxpbmcgZWxmX2xpbmtfaW5wdXRfYmZkLgoJQWRkIGFuIGFzc2VydCB0byBjaGVjayByZWxvYyBzaXplIHdoZW4gY291bnRpbmcgb3V0cHV0IHJlbG9jcy4KCjIwMDItMDMtMTQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogbW1vLmMgKG1tb19nZXRfbG9jKTogUmV0dXJuIE5VTEwgcmF0aGVyIHRoYW4gZmFsc2UuCgoyMDAyLTAzLTEzICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIHBvL2ZyLnBvOiBVcGRhdGVkIHZlcnNpb24uCgoyMDAyLTAzLTEzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYXJjaHVyZXMuYyAoYmZkX2RlZmF1bHRfY29tcGF0aWJsZSk6IFRlc3QgYml0c19wZXJfd29yZC4KCSogY3B1LWkzODYuYyAoaTM4Nl9jb21wYXRpYmxlKTogUmVtb3ZlLiAgUmVwbGFjZSBvY2N1cnJlbmNlcyB3aXRoCgliZmRfZGVmYXVsdF9jb21wYXRpYmxlLgoJKiBjcHUtaTM3MC5jIChpMzcwX2NvbXBhdGlibGUpOiBMaWtld2lzZS4KCSogY3B1LXNwYXJjLmMgKHNwYXJjX2NvbXBhdGlibGUpOiBMaWtld2lzZS4KCSogY3B1LWg4MzAwLmMgKGNvbXBhdGlibGUpOiBUZXN0IGluLT5hcmNoID09IG91dC0+YXJjaC4KCgkqIGVsZmxpbmsuaDogRm9ybWF0dGluZyBmaXhlcy4KCShlbGZfbGlua19vdXRwdXRfZXh0c3ltKTogTWVyZ2UgdW5kZWZpbmVkIGFuZCB1bmRlZiB3ZWFrIGNhc2VzLgoKCSogZWxmbGluay5oIChlbGZfYmZkX2ZpbmFsX2xpbmspOiBPbmx5IGNhbGwgZWxmX2xpbmtfaW5wdXRfYmZkCgl3aGVuIHdvcmQgc2l6ZSBvZiBpbnB1dCBtYXRjaGVzIG91dHB1dCB3b3JkIHNpemUuCgoyMDAyLTAzLTEyICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBjcHUtaTM4Ni5jIChpMzg2X2NvbXBhdGlibGUpOiBOZXcuICBVc2UgaXQgaW5zdGVhZCBvZgoJYmZkX2RlZmF1bHRfY29tcGF0aWJsZS4KCjIwMDItMDMtMDcgIEguSi4gTHUgIChoamxAZ251Lm9yZykKCgkqIGNvZmYtc2guYyAoc2hjb2ZmX3JlbG9jX21hcCk6IFVzZSBiZmRfcmVsb2NfY29kZV9yZWFsX3R5cGUKCWFzIHRoZSB0eXBlIGZvciBiZmRfcmVsb2NfdmFsLgoKMjAwMi0wMy0wNSAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlQGhpYXVseTEuaGlhLm5yYy5jYT4KCgkqIGVsZi1ocHBhLmggKGVsZl9ocHBhX2lzX2R5bmFtaWNfbG9hZGVyX3N5bWJvbCk6IE5ldyBmdW5jdGlvbi4KCShlbGZfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogSWdub3JlIHVuZGVmaW5lZCBkeW5hbWljIGxvYWRlciBzeW1ib2xzLgoJKGVsZl9ocHBhX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBDb3JyZWN0IHJlbG9jYXRpb25zIGZvciBpbmRpcmVjdAoJcmVmZXJlbmNlcyB0byBsb2NhbCBkYXRhIHRocm91Z2ggdGhlIERMVC4gIEZpeCAub3BkIGNyZWF0aW9uIGZvcgoJbG9jYWwgc3ltYm9scyB1c2luZyBSX1BBUklTQ19MVE9GRl9GUFRSMzIgYW5kIFJfUEFSSVNDX0ZQVFI2NAoJcmVsb2NhdGlvbnMuICBVc2UgZV9sc2VsIHNlbGVjdG9yIGZvciBSX1BBUklTQ19ETFRJTkQyMUwsCglSX1BBUklTQ19MVE9GRl9GUFRSMjFMIGFuZCBSX1BBUklTQ19MVE9GRl9UUDIxTCBhcyBwZXIKCSJQcm9jZXNzb3ItU3BlY2lmaWMgRUxGIGZvciBQQV9SSVNDLCBWZXJzaW9uIDEuNDMiIGRvY3VtZW50LgoJU2ltaWxhcmx5LCB1c2UgZV9yc2VsIGZvciBETFQgYW5kIExUT0ZGICdSJyByZWxvY2F0aW9ucy4KCSogZWxmMzItaHBwYS5jIChmaW5hbF9saW5rX3JlbG9jYXRlKTogUmV2aXNlIHJlbG9jYXRpb24gc2VsZWN0b3JzCglhcyBwZXIgIlByb2Nlc3Nvci1TcGVjaWZpYyBFTEYgZm9yIFBBX1JJU0MsIFZlcnNpb24gMS40MyIgZG9jdW1lbnQuCgoyMDAyLTAzLTA1ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIG1lcmdlLmMgKF9iZmRfbWVyZ2Vfc2VjdGlvbnMpOiBEb24ndCBzZWdmYXVsdCBpZiB0aGVyZQoJaXMgbm90aGluZyB0byBtZXJnZSBkdWUgdG8gR0MuCgoyMDAyLTAzLTA1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItaHBwYS5jIChjbG9iYmVyX21pbGxpY29kZV9zeW1ib2xzKTogUmVtb3ZlIGhhY2sgdG8ga2VlcAoJc3ltYm9scyB0aGF0IGhhdmUgYmVlbiBmb3JjZWQgbG9jYWwuCgoJKiBlbGZsaW5rLmggKGVsZl9iZmRfZmluYWxfbGluayk6IENhbGwgZWxmX2xpbmtfb3V0cHV0X2V4dHN5bQoJdG8gb3V0cHV0IGZvcmNlZCBsb2NhbCBzeW1zIGZvciBub24tc2hhcmVkIGxpbmsuCgkoZWxmX2xpbmtfb3V0cHV0X2V4dHN5bSk6IFR3ZWFrIGNvbmRpdGlvbiBmb3IgY2FsbGluZyBiYWNrZW5kCglhZGp1c3RfZHluYW1pY19zeW1ib2wgc28gdGhhdCBwcmV2aW91cyBiZWhhdmlvdXIgaXMga2VwdC4KCVdoaXRlc3BhY2UgY2hhbmdlcyB0aHJvdWdob3V0IGZpbGUuCgoyMDAyLTAzLTA0ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZi5jIChiZmRfc2VjdGlvbl9mcm9tX3NoZHIpOiBIYW5kbGUgc3BlY2lhbCBzZWN0aW9ucywKCS5pbml0X2FycmF5LCAuZmluaV9hcnJheSBhbmQgLnByZWluaXRfYXJyYXkuCgkoZWxmX2Zha2Vfc2VjdGlvbnMpOiBMaWtld2lzZS4KCgkqIGVsZmxpbmsuaCAoTkFNRShiZmRfZWxmLHNpemVfZHluYW1pY19zZWN0aW9ucykpOiBDcmVhdGUgdGhlCglEVCBlbnRyeSBvbmx5IGlmIHRoZSBzZWN0aW9uIGlzIGluIG91dHB1dCBmb3IgLmluaXRfYXJyYXksCgkuZmluaV9hcnJheSBhbmQgLnByZWluaXRfYXJyYXkuIENvbXBsYWluIGFib3V0IC5wcmVpbml0X2FycmF5CglzZWN0aW9uIGluIERTTy4KCShlbGZfYmZkX2ZpbmFsX2xpbmspOiBXYXJuIHplcm8gc2l6ZSBmb3IgLmluaXRfYXJyYXksCgkuZmluaV9hcnJheSBhbmQgLnByZWluaXRfYXJyYXkgc2VjdGlvbnMuCgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfc2VjdGlvbl9mcm9tX3NoZHIpOiBSZW1vdmUKCVNIVF9JTklUX0FSUkFZLCBTSFRfRklOSV9BUlJBWSBhbmQgU0hUX1BSRUlOSVRfQVJSQVkuCgkoZWxmTk5faWE2NF9mYWtlX3NlY3Rpb25zKTogUmVtb3ZlIC5pbml0X2FycmF5LCAuZmluaV9hcnJheSBhbmQKCS5wcmVpbml0X2FycmF5LgoKMjAwMi0wMy0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZ3VyZS5pbiAoV0lOMzJMSUJBREQpOiBEb24ndCBldmFsIFBJQ0ZMQUcgYXNzaWdubWVudC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wMy0wMiAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGNvZmY2NC1yczYwMDAuYyAoeGNvZmY2NF9ob3d0b190YWJsZSk6IFJlcGxhY2UgaG93dG8gdHlwZXMgd2l0aAoJc3ltYm9saWMgZXF1aXYuCgkqIGNvZmYtcnM2MDAwLmMgKHhjb2ZmX2hvd3RvX3RhYmxlKTogU2FtZS4KCjIwMDItMDMtMDEgIERhdmlkIE1vc2JlcmdlciAgPGRhdmlkbUBocGwuaHAuY29tPgoKCSogZWxmbGluay5oIChzaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBJZiBzZWN0aW9uIG5hbWVkCgkiLnByZWluaXRfYXJyYXkiIGV4aXN0cywgY3JlYXRlIERUX1BSRUlOSVRfQVJSQVkgYW5kCglEVF9QUkVJTklUX0FSUkFZU1ogZW50cmllcyBpbiBkeW5hbWljIHRhYmxlLiAgQW5hbG9nb3VzbHkgZm9yCgkiLmluaXRfYXJyYXkiIGFuZCAiLmZpbmlfYXJyYXkiLgoJKGVsZl9iZmRfZmluYWxfbGluayk6IEhhbmRsZSBEVF9QUkVJTklUX0FSUkFZU1osIERUX0lOSVRfQVJSQVlTWiwKCURUX0ZJTklfQVJSQVlTWiwgRFRfUFJFSU5JVF9BUlJBWSwgRFRfSU5JVF9BUlJBWSwgYW5kCglEVF9GSU5JX0FSUkFZLgoKMjAwMi0wMi0yNiAgQW5kcmV3IE1hY2xlb2QgIDxhbWFjbGVvZEBjeWdudXMuY29tPgoKCSogZWxmbGluay5oIChlbGZfYmZkX2ZpbmFsX2xpbmspOiBEb24ndCBjcmFzaCBvbiBTSE5fVU5ERUYgbG9jYWwKCWR5bnN5bXMuCgoyMDAyLTAyLTI1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtaHBwYS5oOiBVcGRhdGUgY29weXJpZ2h0IGRhdGUuCgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2NoZWNrX3JlbG9jcyk6IFdhcm5pbmcgZml4LgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogRG9uJ3QgZ2VuZXJhdGUgcG93ZXI0IHN0eWxlIGJyYW5jaAoJaGludHMgZm9yICpfQlJUQUtFTiBhbmQgKl9CUk5UQUtFTiByZWxvY3MuCgoyMDAyLTAyLTIyICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LXNoNjQuYyAoc2hfZWxmNjRfcmVsb2NhdGVfc2VjdGlvbik6IEZpeCBhIHR5cG8gZnJvbSBteQoJbGFzdCBwYXRjaC4KCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAyLTAyLTIxICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBlbGY2NC14ODYtNjQuYzogTWFqb3IgcmV3b3JrIHRoYXQgaW50cm9kdWNlcyBhbGwgcmVjZW50IGNoYW5nZXMKCXRvIHRoZSB4ODYtNjQgYmFja2VuZC4gIEdldCBhIGNsb3NlciBtYXRjaCB0byBlbGYzMi1pMzg2LgoJKHN0cnVjdCBlbGY2NF94ODZfNjRfZHluX3JlbG9jcyk6IFJlbmFtZSBmcm9tCgllbGY2NF94ODZfNjRfcGNyZWxfcmVsb2NzX2NvcGllZCwgYWRkIGFkZGl0aW9uYWwgZmllbGRzLiAgQ2hhbmdlCglhbGwgdXNlcnMuCgkoc3RydWN0IGVsZjY0X3g4Nl82NF9saW5rX2hhc2hfdGFibGUpOiBBZGQgc2hvcnQgY3V0cyB0byBzb21lCglzZWN0aW9ucy4KCShsaW5rX2hhc2hfbmV3ZnVuYyk6IFJlbmFtZSBmcm9tIGVsZjY0X3g4Nl82NF9saW5rX2hhc2hfbmV3ZnVuYywKCXJlbW92ZSBjYXN0cywgaW5pdGlhbGl6ZSBuZXcgaGFzaCBtZW1iZXJzLgoJKGNyZWF0ZV9nb3Rfc2VjdGlvbik6IE5ldy4KCShlbGY2NF94ODZfNjRfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBOZXcuCgkoZWxmNjRfeDg2XzY0X2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTmV3LgoJKGVsZjY0X3g4Nl82NF9jaGVja19yZWxvY3MpOiBEb24ndCBhbGxvY2F0ZSBzcGFjZSBmb3IgZHluYW1pYwoJcmVsb2NzLCAuZ290IG9yIC5yZWxnb3QgaGVyZSBidXQgZG8gaXQgaW4gYWxsb2NhdGVfZHlucmVsb2NzLgoJUmVmZXJlbmNlIGNvdW50IHBvc3NpYmxlIC5wbHQgYW5kIC5nb3QgZW50cmllcy4gIERvbid0IHRlc3QgaW5wdXQKCXNlY3Rpb24gU0VDX1JFQURPTkxZIGhlcmUgdG8gdHJ5IHRvIGF2b2lkIGNvcHkgcmVsb2NzLCBhbmQga2VlcAoJZHluX3JlbG9jcyByZWdhcmRsZXNzIG9mIEVMRl9MSU5LX05PTl9HT1RfUkVGLiAgRG9uJ3Qgc2V0CglERl9URVhUUkVMIGhlcmUuICBEZWxheSBzZXR0aW5nIG9mIHZhcmlhYmxlcyB1bnRpbCBuZWVkZWQuICBDYWNoZQoJcG9pbnRlciB0byAic3JlbG9jIiBzZWN0aW9uIGluIGVsZl9zZWN0aW9uX2RhdGEuIFR3ZWFrIGNvbmRpdGlvbgoJdW5kZXIgd2hpY2ggLmdvdCBjcmVhdGVkLiAgUmVwb3J0IGZpbGVzIHdpdGggYmFkIHJlbG9jYXRpb24KCXNlY3Rpb24gbmFtZXMuCgkoZWxmNjRfeDg2XzY0X2djX3N3ZWVwX2hvb2spOiBTd2VlcCBkeW5fcmVsb2NzIGFuZCBsb2NhbF9keW5yZWwuCglSZWZlcmVuY2UgY291bnQgcG9zc2libGUgLnBsdCBlbnRyaWVzLiAgRG9uJ3QgZGVhbGxvY2F0ZSAuZ290IGFuZAoJLnJlbGdvdCBzcGFjZSBoZXJlLgoJKGVsZjY0X3g4Nl82NF9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBIYW5kbGUgbm9jb3B5cmVsb2MuICBEb24ndAoJZG8gY29weSByZWxvYyBwcm9jZXNzaW5nIGZvciB3ZWFrZGVmcy4gIFJlbW92ZSByZWR1bmRhbnQgY2FzdHMgYW5kCglhYm9ydHMuICBEZWxheSBzZXR0aW5nIG9mIHZhcnMgdW50aWwgbmVlZGVkLiAgTW92ZSBjcmVhdGlvbiBvZgoJZHluYW1pYyBzeW1ib2xzIGFuZCBhbGxvY2F0aW9uIG9mIC5wbHQgYW5kIC5yZWxhLnBsdCB0bwoJYWxsb2NhdGVfZHlucmVsb2NzLiAgUmVwbGFjZSBCRkRfQVNTRVJUIHdpdGggYWJvcnQuCgkoV0lMTF9DQUxMX0ZJTklTSF9EWU5BTUlDX1NZTUJPTCk6IE5ldy4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBOZXcuCgkocmVhZG9ubHlfZHlucmVsb2NzKTogTmV3LgoJKGVsZjY0X3g4Nl82NF9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBDYWxsIHJlYWRvbmx5X2R5bnJlbG9jcy4KCUFsbG9jYXRlIHNwYWNlIGZvciBkeW4gcmVsb2NzLiAgUmVwbGFjZSBCRkRfQVNTRVJUIHdpdGggYWJvcnQuCglaZXJvIG91dCB0aGUgZHluYW1pYyBhbGxvY2F0ZWQgY29udGVudCBzcGFjZS4KCShlbGY2NF94ODZfNjRfZGlzY2FyZF9jb3BpZXMpOiBSZW1vdmVkLgoJKGVsZjY0X3g4Nl82NF9yZWxvY2F0ZV9zZWN0aW9uKTogTWFrZSB1c2Ugb2YgZHluYW1pYyBzZWN0aW9uCglzaG9ydC1jdXRzLiAgTG9jYWxpc2UgdmFycywgYW5kIGRlbGF5IHNldHRpbmcuICBCZXR0ZXIgZXJyb3IKCXJlcG9ydGluZywgcmVwbGFjZSBCRkRfQVNTRVJUIHdpdGggYWJvcnQuICBDaGVjawoJRUxGX0xJTktfSEFTSF9ERUZfRFlOQU1JQyB0byBzZWUgaWYgYSBzeW1ib2wgaXMgbm90IGRlZmluZWQgaW4gdGhlCglyZWd1bGFyIG9iamVjdCBmaWxlIGFuZCB0cmVhZCB0aGUgd2VhayBkZWZpbml0aW9uIGFzIHRoZSBub3JtYWwKCW9uZS4gIERvbid0IGRpc2NhcmQgcmVsb2NzIGZvciB1bmRlZndlYWsgb3IgdW5kZWZpbmVkIHN5bWJvbHMgYW5kCgljaGVjayAhREVGX1JFR1VMQVIgYXMgd2VsbCBhcyBERUZfRFlOQU1JQyBpbiB0ZXN0IGZvciBhdm9pZGVkIGNvcHkKCXJlbG9jcy4KCShlbGY2NF94ODZfNjRfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogRG9uJ3QgY29weSByZWxvY3MgZm9yCglzeW1ib2xzIHRoYXQgaGF2ZSBiZWVuIGZvcmNlZCBsb2NhbC4gIFVzZSBzYW1lIHRlc3QgdG8gZGVjaWRlIGlmCgl3ZSBjYW4gdXNlIGEgcmVsYXRpdmUgcmVsb2MgZm9yIGdvdCBhcyByZWxvY2F0ZV9zZWN0aW9uLiAgRXhwYW5kCglTSE5fVU5ERUYgY29tbWVudC4gIE1vdmUgZXhwcmVzc2lvbnMgb3V0IG9mIGZ1bmN0aW9uIGNhbGxzLgoJUmVwbGFjZSBCRkRfQVNTRVJUIHdpdGggYWJvcnQuCgkoYmZkX2VsZjY0X2JmZF9maW5hbF9saW5rKTogUmVtb3ZlZC4KCShlbGZfYmFja2VuZF9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IERlZmluZS4KCjIwMDItMDItMjAgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBjb2ZmLXJzNjAwMC5jICh4Y29mZl9ob3d0b190YWJsZSk6IEFkZCAxNiBiaXQgUl9CQS4KCShfYmZkX3hjb2ZmX3JlbG9jX3R5cGVfbG9va3VwKTogVXNlIGl0LgoJKiBjb2ZmNjQtcnM2MDAwLmMgKHhjb2ZmNjRfaG93dG9fdGFibGUpOiBTYW1lLgoJKHhjb2ZmNjRfcmVsb2NfdHlwZV9sb29rdXApOiBTYW1lLgoKMjAwMi0wMi0yMCAgUGV0ZXIgU2NoYXVlciAgPHBlc0ByZWdlbnQuZS10ZWNobmlrLnR1LW11ZW5jaGVuLmRlPgoKCSogb3NmLWNvcmUuYyAob3NmX2NvcmVfdmVjKTogT1NGLzEgKERpZ2l0YWwgVW5peCkgY29yZSBmaWxlcyBhcmUKCWxpdHRsZSBlbmRpYW4uCgoyMDAyLTAyLTE5ICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogYXJjaHVyZXMuYyAoYmZkX21hY2hfczM5MF9lc2EpOiBSZW5hbWUgdG8gYmZkX21hY2hfczM5MF8zMS4KCShiZmRfbWFjaF9zMzkwX2VzYW1lKTogUmVuYW1lIHRvIGJmZF9tYWNoX3MzOTBfNjQuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogY3B1LXMzOTAuYyAoYXJjaF9pbmZvX3N0cnVjdCk6IFVzZSByZW5hbWVkIGFyY2hpdGVjdHVyZSBkZWZpbmVzLgoJUmVwbGFjZSBhcmNoaXRlY3R1cmUgbmFtZSAiczM5MCIgd2l0aCAiczM5MDozMS1iaXQiIGFuZCAiczM5MDplc2FtZSIKCXdpdGggInMzOTA6NjQtYml0Ii4KCSogZWxmMzItczM5MC5jIChlbGZfaG93dG9fdGFibGUpOiBBZGQgMzIgYml0IHBjIHJlbGF0aXZlIHJlbG9jYXRpb25zLgoJKGVsZl9zMzkwX3JlbG9jX3R5cGVfbG9va3VwKTogTGlrZXdpc2UuCgkoZWxmX3MzOTBfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCgkoZWxmX3MzOTBfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCShlbGZfczM5MF9vYmplY3RfcCk6IFVzZSByZW5hbWVkIGFyY2hpdGVjdHVyZSBkZWZpbmUuCgkqIGVsZjY0LXMzOTAuYyAoZWxmX3MzOTBfb2JqZWN0X3ApOiBVc2UgcmVuYW1lZCBhcmNoaXRlY3R1cmUgZGVmaW5lLgoKMjAwMi0wMi0xOSAgRnJhbmsgQ2guIEVpZ2xlciAgPGZjaGVAcmVkaGF0LmNvbT4KCgkqIHN5bXMuYyAoc3R0W10pOiBTb3J0ZWQuICBBZGRlZCAuaW5pdC8uZmluaSAtPiAidCIgbWFwcGluZy4KCjIwMDItMDItMTkgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmLWVoLWZyYW1lLmMgKF9iZmRfZWxmX2Rpc2NhcmRfc2VjdGlvbl9laF9mcmFtZSk6IEVuYWJsZQoJYWJzcHRyIC0+IHBjcmVsIG9wdGltaXphdGlvbiBmb3Igc2hhcmVkIGxpYnMuCglPbmx5IGNyZWF0ZSBtaW5pbWFsIC5laF9mcmFtZV9oZHIgaWYgYWJzcHRyIEZERSBlbmNvZGluZyBpbiBzaGFyZWQKCWxpYnJhcnkgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBwY3JlbC4KCShfYmZkX2VsZl9laF9mcmFtZV9zZWN0aW9uX29mZnNldCk6IFJldHVybiAtMiBpZiBtYWtpbmcgYWJzcHRyCglyZWxhdGl2ZS4KCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogSWYKCV9iZmRfZWxmX3NlY3Rpb25fb2Zmc2V0IHJldHVybmVkIC0yLCBza2lwLCBidXQgbWFrZSBzdXJlIHRoZQoJcmVsb2NhdGlvbiBpcyBpbnN0YWxsZWQuCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fZmluYWxfbGlua19yZWxvY2F0ZSk6IExpa2V3aXNlLgoJKiBlbGYzMi1jcmlzLmMgKGNyaXNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItaTM3MC5jIChpMzcwX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGsuYyAoZWxmX202OGtfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1zcGFyYy5jIChlbGYzMl9zcGFyY19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtc2g2NC5jIChzaF9lbGY2NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pOiBIYW5kbGUKCV9iZmRfZWxmX3NlY3Rpb25fb2Zmc2V0IHJldHVybmluZyAtMiB0aGUgc2FtZSB3YXkgYXMgLTEuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9pbnN0YWxsX2R5bl9yZWxvYyk6IExpa2V3aXNlLgoJKiBlbGYzMi1taXBzLmMgKG1pcHNfZWxmX2NyZWF0ZV9keW5hbWljX3JlbG9jYXRpb24pOiBBZGQgRklYTUUKCWFuZCBCRkRfQVNTRVJULgoJKiBlbGY2NC1taXBzLmMgKG1pcHNfZWxmNjRfY3JlYXRlX2R5bmFtaWNfcmVsb2NhdGlvbik6IExpa2V3aXNlLgoKMjAwMi0wMi0xOCAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIHhjb2ZmbGluay5jIChiZmRfeGNvZmZfbGlua19nZXJuYXRlX3J0aW5pdCk6IEFkZCAtYnJ0bCBzdXBwb3J0LgoJKGJmZF94Y29mZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBTYW1lLgoJKiBiZmQtaW4uaCAoYmZkX3hjb2ZmX2xpbmtfZ2VuZXJhdGVfcnRpbml0KTogU2FtZS4KCShiZmRfeGNvZmZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogU2FtZS4KCSogY29mZi1yczYwMDAuYyAoeGNvZmZfZ2VuZXJhdGVfcnRpbml0KTogU2FtZS4KCSogY29mZi1yczY0NjAwMC5jICh4Y29mZjY0X2dlbmVyYXRlX3J0aW5pdCk6IFNhbWUuCgkqIGxpYnhjb2ZmLmggKHN0cnVjdCB4Y29mZl9iYWNrZW5kX2RhdGFfcmVjKTogU2FtZS4KCSogeGNvZmZsaW5rLmMgKHhjb2ZmX2J1aWxkX2xkc3ltcywgeGNvZmZfbGlua19hZGRfc3ltYm9scyk6IENsZWFuLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAyLTAyLTE4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKFNURkRfRlIwXzBSMSwgTEZEX0ZSMF8wUjEsIEJMUik6IERlZmluZS4KCShzdHJ1Y3QgcHBjX2xpbmtfaGFzaF90YWJsZSk6IEFkZCBzZnByLgoJKHBwYzY0X2VsZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogSW5pdCBpdC4KCShwcGM2NF9lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBTcGxpdCBjcmVhdGlvbiBvZiAuc3R1YiBhbmQKCS5nbGluayBvdXQgdG8uLgoJKGNyZWF0ZV9saW5rYWdlX3NlY3Rpb25zKTogLi5oZXJlLiAgTWFrZSAuc2ZwciB0b28uCgkocHBjNjRfZWxmX2NoZWNrX3JlbG9jcyk6IENhbGwgY3JlYXRlX2xpbmthZ2Vfc2VjdGlvbnMsIGFuZCBzZXQKCWR5bm9iaiBlYXJseS4KCShNSU5fU0FWRV9GUFIsIE1BWF9TQVZFX0ZQUik6IERlZmluZS4KCShwcGM2NF9lbGZfZnVuY19kZXNjX2FkanVzdCk6IExvb2sgZm9yIG1pc3NpbmcgLl9zYXZlZiogYW5kCgkuX3Jlc3RmKiBmdW5jdGlvbnMsIGFuZCBjcmVhdGUgYXMgbmVlZGVkLgoJKGZ1bmNfZGVzY19hZGp1c3QpOiBPbmx5IGZvcmNlX2xvY2FsIGZvciBzaGFyZWQgbGlicy4KCjIwMDItMDItMTggIERhdmlkIE8nQnJpZW4gIDxvYnJpZW5ARnJlZUJTRC5vcmc+CgoJKiBjb25maWd1cmUuaW46IEJ1bXAgdmVyc2lvbiBudW1iZXIgcG9zdCAyLjEyIGJyYW5jaGluZy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wMi0xNyAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogbW1vLmM6IENvcnJlY3QgYW5kIGltcHJvdmUgY29tbWVudHMuCgkobW1vX3dyaXRlX2NodW5rKTogU3RvcmUgdHJhaWxpbmcgYnl0ZSBpbiBiZmQgYnVmZmVyOyBkb24ndAoJemVyby1wYWQuICBVc2UgaW5wdXQgdG8gZmlsbCB1cCBub24tZW1wdHkgYmZkIGJ1ZmZlci4KCShtbW9fZmx1c2hfY2h1bmspOiBOZXcgZnVuY3Rpb24uCgkobW1vX3dyaXRlX2xvY19jaHVuayk6IEFkZCBwYXJhbWV0ZXIgbGFzdF92bWFwLCBhbGwgY2FsbGVycwoJY2hhbmdlZC4gIERvbid0IGVtaXQgbG9jYXRpb24gc3BlY2lmaWVyIGlmIFZNQSBpcyBzYW1lIGFzCgkqTEFTVF9WTUFQIGFmdGVyIG9taXR0aW5nIGxlYWRpbmcgemVybyBjb250ZW50cy4gIENhbGwKCW1tb19mbHVzaF9jaHVuayBiZWZvcmUgZW1pdHRpbmcgbG9jYXRpb24gc3BlY2lmaWVyLgoJKG1tb193cml0ZV9sb2NfY2h1bmtfbGlzdCk6IENhbGwgbW1vX2ZsdXNoX2NodW5rIHdoZW4gZmluaXNoZWQKCXdpdGggbW1vX3dyaXRlX2xvY19jaHVuayBjYWxscy4KCShtbW9faW50ZXJuYWxfd3JpdGVfc2VjdGlvbik6IENhbGwgbW1vX2ZsdXNoX2NodW5rIGFmdGVyCgltbW9fd3JpdGVfY2h1bmsuCgkobW1vX3dyaXRlX3N5bWJvbHNfYW5kX3Rlcm1pbmF0b3IpOiBNb3ZlIDpNYWluIHRvIGZpcnN0IHBvc2l0aW9uCglpbiBzeW1ib2wgYXJyYXkuICBBZGQgZmFrZWQgb25lIGlmIGl0IGRvZXMgbm90IGV4aXN0IGlmIHRoZXJlIGFyZQoJb3RoZXIgc3ltYm9scy4gIERvbid0IGFkZCBpdCBpZiB0aGVyZSBhcmUgbm8gc3ltYm9scyBhdCBhbGwuICBNb3ZlCglvdXQgdGVzdCBmb3IgdmFsdWUgb2YgOk1haW4gZnJvbSBzeW1ib2wgbG9vcC4gIFJlbmFtZSB0YWJsZQoJZmFrZW1haW4gdG8gbWFpbnRhYmxlIGFuZCB2YXJpYWJsZSBtYWluc3ltIHRvIGZha2VtYWluLgoKMjAwMi0wMi0xNSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pIFtCUlNHUF06IEEgdGFyZ2V0CglzZWN0aW9uIHdpdGggbm8gZ290IG1hdGNoZXMgYW55IGdvdC4gIFNpbXBsaWZ5IGVycm9yIGdlbmVyYWlvbi4KCjIwMDItMDItMTUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJU3VwcG9ydCBhcmJpdHJhcnkgbGVuZ3RoIGZpbGwgcGF0dGVybnMuCgkqIGxpbmtlci5jIChiZmRfbmV3X2xpbmtfb3JkZXIpOiBaZXJvIGFsbCBmaWVsZHMgd2l0aCBiZmRfemFsbG9jLgoJKF9iZmRfZGVmYXVsdF9saW5rX29yZGVyKTogUmVtb3ZlIGJmZF9maWxsX2xpbmtfb3JkZXIgY29kZS4KCUNhbGwgZGVmYXVsdF9kYXRhX2xpbmtfb3JkZXIuCgkoZGVmYXVsdF9maWxsX2xpbmtfb3JkZXIpOiBEZWxldGUuCgkoZGVmYXVsdF9kYXRhX2xpbmtfb3JkZXIpOiBOZXcgZnVuY3Rpb24uCgkqIGVsZjMyLW1pcHMuYyAoX2JmZF9taXBzX2VsZl9maW5hbF9saW5rKTogUmVwbGFjZSBvY2N1cnJlbmNlcwoJb2YgYmZkX2ZpbGxfbGlua19vcmRlciB3aXRoIGJmZF9kYXRhX2xpbmtfb3JkZXIuCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX2ZpbmFsX2xpbmspOiBMaWtld2lzZS4KCSogZWxmNjQtbWlwcy5jIChtaXBzX2VsZjY0X2ZpbmFsX2xpbmspOiBMaWtld2lzZS4KCgkqIGJmZC5jIChiZmRfc2Nhbl92bWEpOiBDbGFtcCBvdmVyZmxvd3MgdG8gbWF4IGJmZF92bWEgdmFsdWUuCglDb3JyZWN0IHZhbHVlIHJldHVybmVkIGluICJlbmQiIGZvciAiMHg8bm9uLWhleD4iLgoKMjAwMi0wMi0xNCAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjcHUtYXJtLmMgKHByb2Nlc3NvcnMpOiBSZXBsYWNlICdhcmNoJyBmaWVsZCB3aXRoICdtYWNoJy4KCShzY2FuKTogVGVzdCBhZ2FpbnN0ICdtYWNoJyBmaWVsZCBpbiBpbmZvIHN0cnVjdHVyZS4KCjIwMDItMDItMTQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYuYyAoZWxmX2Zha2Vfc2VjdGlvbnMpOiBVc2UgU0hUX05PQklUUyB3aGVuIFNFQ19ORVZFUl9MT0FELgoKMjAwMi0wMi0xNCAgTWF0dCBGcmVkZXR0ZSAgPGZyZWRldHRlQG5ldGJzZC5vcmc+CgoJKiBlbGYzMi1tNjhrLmMgKGVsZjMyX202OGtfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IFJlY29nbml6ZQoJRUZfTTY4MDAwLgoKMjAwMi0wMi0xMyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBlbGYuYyAoX2JmZF9lbGZfbWFrZV9zZWN0aW9uX2Zyb21fc2hkcik6IERvIG5vdCBpbnNpc3Qgb24KCW5vbi16ZXJvIHBoeXNpY2FsIGFkZHJlc3NlcyB3aGVuIGFkanVzdGluZyB0aGUgTE1BcyBvZiBuZXcKCXNlY3Rpb25zLgoKMjAwMi0wMi0xMiAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlQGhpYXVseTEuaGlhLm5yYy5jYT4KCgkqIGVsZi1ocHBhLmggKGVsZl9ocHBhX3JlbG9jX2ZpbmFsX3R5cGUpOiBOZXcgZnVuY3Rpb24gc3RyaXBwZWQKCWZyb20gX2JmZF9lbGZfaHBwYV9nZW5fcmVsb2NfdHlwZS4KCShfYmZkX2VsZl9ocHBhX2dlbl9yZWxvY190eXBlKTogUmVtb3ZlIGR1cGxpY2F0ZSBwcm90b3R5cGUuCgkqIGVsZjMyLWhwcGEuaCAoZWxmMzJfaHBwYV9yZWxvY19maW5hbF90eXBlKTogQWRkIHByb3RwdHlwZS4KCSogZWxmMzItaHBwYS5jOiBJbmNsdWRlIGVsZjMyLWhwcGEuaCBiZWZvcmUgZWxmLWhwcGEuaC4KCSogZWxmNjQtaHBwYS5oIChlbGY2NF9ocHBhX3JlbG9jX2ZpbmFsX3R5cGUpOiBBZGQgcHJvdHB0eXBlLgoKMjAwMi0wMi0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGYtbTEwMzAwLmMgKG1uMTAzMDBfZWxmX3JlbGF4X3NlY3Rpb24pOiBTa2lwIHNlY3Rpb24gYmVmb3JlCglsb2FkaW5nIGl0cyBjb250ZW50cyBpZiB0aGVyZSdzIG5vdGhpbmcgdG8gZG8gaW4gaXQuCgoyMDAyLTAyLTEyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9zaXplX3N0dWJzKTogQ29ycmVjdCB0ZXN0IGZvciBjcm9zc2luZwoJNjRrIGJvdW5kYXJ5LgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBBZGQgZHluYW1pYwoJRFRfUFBDNjRfT1BEIGFuZCBEVF9QUEM2NF9PUERTWiB0YWdzLgoJKHBwYzY0X2VsZl9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IFNldCB2YWx1ZXMgZm9yIHRoZW0uCgoyMDAyLTAyLTExICBNaWNoYWVsIFNueWRlciAgPG1zbnlkZXJAcmVkaGF0LmNvbT4KCgkqIGVsZi1iZmQuaCAoZWxmY29yZV93cml0ZV9sd3BzdGF0dXMpOiBBZGQgcHJvdG90eXBlLgoJKiBlbGYuYyAoZWxmY29yZV9ncm9rX3BzdGF0dXMpOiBBZGQgcHJvdG90eXBlLgoJKGVsZmNvcmVfZ3Jva19sd3BzdGF0dXMpOiBBZGQgcHJvdG90eXBlLgoJKGVsZmNvcmVfd3JpdGVfbHdwc3RhdHVzKTogTmV3IGZ1bmN0aW9uLgoJKGVsZmNvcmVfd3JpdGVfcHN0YXR1cyk6IEZpeCB0eXBvLCBlbGltaW5hdGUgdW5uZWNlc3NhcnkgbWVtY3B5LgoKMjAwMi0wMi0xMSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1zaC5jOiBBZGRlZCBtaXNzaW5nIHByb3RvdHlwZXMuCgkqIGVsZjMyLXNoNjQuYzogTGlrZXdpc2UuCgkoc2hfZWxmX2FsaWduX2xvYWRzKTogTWFyayB1bnVzZWQgYXJncyBhcyBzdWNoLgoJKiBlbGY2NC1zaDY0LmM6IEFkZGVkIG1pc3NpbmcgcHJvdG90eXBlcy4KCShzdHJ1Y3QgZWxmX3NoNjRfbGlua19oYXNoX2VudHJ5KTogRml4IHR5cG8uCgkoc2hfZWxmNjRfcmVsb2NhdGVfc2VjdGlvbik6IEZpeCBpbmZvIGFyZ3VtZW50IHBhc3NlZCB0bwoJX2JmZF9lbGZfc2VjdGlvbl9vZmZzZXQuCgoyMDAyLTAyLTExICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW06ICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBhY2xvY2FsLm00OiBSZWdlbmVyYXRlLgoJKiBjb25maWcuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMDItMTAgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogY29mZi1yczYwMDAuYyAoeGNvZmZfZ2VuZXJhdGVfcnRpbml0KTogU2lsZW5jZSB1bmluaXRpYWxpemVkCgl2YXJpYWJsZSB3YXJuaW5ncy4KCSogZWxmMzItc2guYyAoc2hfZWxmX3JlbGF4X3NlY3Rpb24pOiBTaWxlbmNlIHNpZ25lZC91bnNpZ25lZAoJY29tcGFyaXNvbiB3YXJuaW5nLgoJKiB0cmFkLWNvcmUuYyAodHJhZF91bml4X2NvcmVfZmlsZV9wKTogU2lsZW5jZSBwb2ludGVyL2ludGVnZXIKCWNhc3Qgd2FybmluZ3MgZm9yIHRoZSBjb21tb24gY2FzZS4KCjIwMDItMDItMTAgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGNvbmZpZy5iZmQgKHNoLSotbGludXgqLCBzaC0qLWVsZiogfCBzaC0qLXJ0ZW1zZWxmKik6IEFkZCBzaDY0Cgl2ZWN0b3JzLgoJKHNoLSotbmV0YnNkZWxmKik6IE5ldywgdG8gdHJ1bXAgc2gqLSotbmV0YnNkZWxmKiBhbmQgYWRkIHNoNjQKCXZlY3RvcnMuCgoyMDAyLTAyLTA5ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfaG93dG8pOiBBZGQgUl9BTFBIQV9CUlNHUC4KCShlbGY2NF9hbHBoYV9yZWxvY19tYXAsIGVsZjY0X2FscGhhX2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLgoJKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogcmVsb2MuYyAoQkZEX1JFTE9DX0FMUEhBX0JSU0dQKTogTmV3LgoJKiBiZmQtaW4yLmgsIGxpYmJmZC5oOiBSZWJ1aWxkLgoKMjAwMi0wMi0wOSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogZWxmNjQtbW1peC5jIChfYmZkX21taXhfZmluYWxpemVfbGlua2VyX2FsbG9jYXRlZF9ncmVncyk6IENoZWNrCgl0aGF0IGJhc2UtcGx1cy1vZmZzZXQgcmVsb2MgYWNjb3VudGluZyBpcyBjb25zaXN0ZW50LgoJKG1taXhfZWxmX3JlbGF4X3NlY3Rpb24pOiBLZWVwIGJhc2UtcGx1cy1vZmZzZXQgcmVsb2MgYWNjb3VudGluZwoJdXAgdG8gZGF0ZSBmb3IgdW5kZWZpbmVkIHN5bWJvbHMuCgoyMDAyLTAyLTA4ICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCglGcm9tIFJhaW5lciBPcnRoICA8cm9AVGVjaEZhay5VbmktQmllbGVmZWxkLkRFPgoKCSogZWxmMzItbWlwcy5jIChfYmZkX21pcHNfZWxmX2Zha2Vfc2VjdGlvbnMpOiBEb24ndCBjcmVhdGUgLnJlbGEKCXNlY3Rpb25zIGZvciB0aGUgTzMyIEFCSS4KCjIwMDItMDItMDggIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBlbGYzMi1hcm0uaDogRml4IGZvcm1hdHRpbmcgb2YgXygiLi4uIikuCgkqIGVsZjMyLWQxMHYuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGsuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW1pcHMuYzogTGlrZXdpc2UuCgoyMDAyLTAyLTA4ICBJdmFuIEd1enZpbmVjIDxpdmFuZ0BvcGVuY29yZXMub3JnPgoKCSogY29mZi1vcjMyLmM6IEZpeCBjb21waWxlIHRpbWUgd2FybmluZyBtZXNzYWdlcy4KCjIwMDItMDItMDggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCUNvbnRyaWJ1dGUgc2g2NC1lbGYuCgkyMDAyLTAxLTIzICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogcmVsb2MuYyAoUl9TSF9HT1RQTFQzMiwgUl9TSF9HT1RfTE9XMTYsIFJfU0hfR09UX01FRExPVzE2LAoJUl9TSF9HT1RfTUVESEkxNiwgUl9TSF9HT1RfSEkxNiwgUl9TSF9HT1RQTFRfTE9XMTYsCglSX1NIX0dPVFBMVF9NRURMT1cxNiwgUl9TSF9HT1RQTFRfTUVESEkxNiwgUl9TSF9HT1RQTFRfSEkxNiwKCVJfU0hfUExUX0xPVzE2LCBSX1NIX1BMVF9NRURMT1cxNiwgUl9TSF9QTFRfTUVESEkxNiwKCVJfU0hfUExUX0hJMTYsIFJfU0hfR09UT0ZGX0xPVzE2LCBSX1NIX0dPVE9GRl9NRURMT1cxNiwKCVJfU0hfR09UT0ZGX01FREhJMTYsIFJfU0hfR09UT0ZGX0hJMTYsIFJfU0hfR09UUENfTE9XMTYsCglSX1NIX0dPVFBDX01FRExPVzE2LCBSX1NIX0dPVFBDX01FREhJMTYsIFJfU0hfR09UUENfSEkxNiwKCVJfU0hfR09UMTBCWTQsIFJfU0hfR09UUExUMTBCWTQsIFJfU0hfR09UMTBCWTgsIFJfU0hfR09UUExUMTBCWTgsCglSX1NIX0NPUFk2NCwgUl9TSF9HTE9CX0RBVDY0LCBSX1NIX0pNUF9TTE9UNjQsIFJfU0hfUkVMQVRJVkU2NCk6CglOZXcgcmVsb2NzLgoJKiBsaWJiZmQuaCwgYmZkLWluMi5oOiBSZWJ1aWx0LgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfaG93dG9fdGFibGUpOiBEZWZpbmUgbmV3IHJlbG9jcy4KCShzaF9yZWxvY19tYXApOiBNYXAgdGhlbS4KCShQTFRfRU5UUllfU0laRSwgZWxmX3NoX3BsdDBfZW50cnlfYmUsIGVsZl9zaF9wbHQwX2VudHJ5X2xlLAoJZWxmX3NoX3BsdF9lbnRyeV9iZSwgZWxmX3NoX3BsdF9lbnRyeV9sZSwgZWxmX3NoX3BpY19wbHRfZW50cnlfYmUsCgllbGZfc2hfcGljX3BsdF9lbnRyeV9sZSwgZWxmX3NoX3BsdDBfZW50cnksIGVsZl9zaF9wbHRfZW50cnksCgllbGZfc2hfcGljX3BsdF9lbnRyeSwgZWxmX3NoX3NpemVvZl9wbHQsIGVsZl9zaF9wbHRfcGx0MF9vZmZzZXQsCgllbGZfc2hfcGx0MF9nb3RwbHRfb2Zmc2V0LCBlbGZfc2hfcGx0X3RlbXBfb2Zmc2V0LAoJZWxmX3NoX3BsdF9zeW1ib2xfb2Zmc2V0LCBlbGZfc2hfcGx0X3JlbG9jX29mZnNldCwKCW1vdmlfc2hvcmlfcHV0dmFsKSBbSU5DTFVERV9TSE1FRElBXTogTmV3LgoJKGVsZl9zaF9saW5rX2hhc2hfZW50cnkpIFtJTkNMVURFX1NITUVESUFdOiBBZGQKCWRhdGFsYWJlbF9nb3Rfb2Zmc2V0LgoJKHNoX2VsZl9saW5rX2hhc2hfbmV3ZnVuYyk6IEluaXRpYWxpemUgaXQuCgkoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBBdWdtZW50IHRoZSBzY29wZSBvZgoJc2Vlbl9zdHRfZGF0YWxhYmVsLiAgSW50cm9kdWNlIEdPVFBMVCBzdXBwb3J0LiAgRXh0ZW5kIEdPVFBDLCBQTFQsCglHT1QgYW5kIEdPVE9GRiBoYW5kbGluZyB0byBuZXcgU0htZWRpYSByZWxvY2F0aW9uIHR5cGVzLiAgU3VwcG9ydAoJR09UX0JJQVMuCgkoc2hfZWxmX2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLgoJKHNoX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpIFtUQVJHRVRfU0hNRURJQV06IFNldCB1cCB2YWx1ZXMgaW4KCVBMVCBlbnRyaWVzIHVzaW5nIG1vdmlfc2hvcmlfcHV0dmFsLiAgU3VwcG9ydCBHT1RfQklBUy4KCShzaF9lbGZfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmMzItc2g2NC5jIChzaG1lZGlhX3ByZXBhcmVfcmVsb2MpOiBEbyBub3QgYWRkIGFkZGVuZCB0bwoJcmVsb2NhdGlvbiwgaXQncyBub3cgZG9uZSBieSB0aGUgY2FsbGVyLgoJKEdPVF9CSUFTKTogTmV3LgoJKiBlbGY2NC1zaDY0LmMgKEdPVF9CSUFTLCBQTFRfRU5UUllfU0laRSwgZWxmX3NoNjRfc2l6ZW9mX3BsdCwKCWVsZl9zaDY0X3BsdF9wbHQwX29mZnNldCwgZWxmX3NoNjRfcGx0MF9nb3RwbHRfb2Zmc2V0LAoJZWxmX3NoNjRfcGx0X3RlbXBfb2Zmc2V0LCBlbGZfc2g2NF9wbHRfc3ltYm9sX29mZnNldCwKCWVsZl9zaDY0X3BsdF9yZWxvY19vZmZzZXQsIEVMRl9EWU5BTUlDX0lOVEVSUFJFVEVSLAoJZWxmX3NoNjRfcGNyZWxfcmVsb2NzX2NvcGllZCwgZWxmX3NoNjRfbGlua19oYXNoX2VudHJ5LAoJZWxmX3NoNjRfbGlua19oYXNoX3RhYmxlLCBzaDY0X2VsZjY0X2xpbmtfaGFzaF90cmF2ZXJzZSwKCXNoNjRfZWxmNjRfaGFzaF90YWJsZSk6IE5ldy4KCShzaF9lbGY2NF9ob3d0b190YWJsZSk6IEludHJvZHVjZSBuZXcgcmVsb2NzLgoJKHNoX2VsZjY0X2luZm9fdG9faG93dG8pOiBBY2NlcHQgbmV3IFBJQyByZWxvY3MuCgkoc2hfZWxmNjRfcmVsb2NhdGVfc2VjdGlvbik6IEF1Z21lbnQgdGhlIHNjb3BlIG9mCglzZWVuX3N0dF9kYXRhbGFiZWwuICBTdXBwb3J0IG5ldyBQSUMgcmVsb2NzLgoJKHNoX2VsZjY0X2NoZWNrX3JlbG9jcyk6IFN1cHBvcnQgbmV3IFBJQyByZWxvY3MuCgkoZWxmX3NoNjRfcGx0MF9lbnRyeV9iZSwgZWxmX3NoNjRfcGx0MF9lbnRyeV9sZSwKCWVsZl9zaDY0X3BsdF9lbnRyeV9iZSwgZWxmX3NoNjRfcGx0X2VudHJ5X2xlLAoJZWxmX3NoNjRfcGljX3BsdF9lbnRyeV9iZSwgZWxmX3NoNjRfcGljX3BsdF9lbnRyeV9sZSwKCWVsZl9zaDY0X3BsdDBfZW50cnksIGVsZl9zaDY0X3BsdF9lbnRyeSwgZWxmX3NoNjRfcGljX3BsdF9lbnRyeSwKCXNoNjRfZWxmNjRfbGlua19oYXNoX25ld2Z1bmMsIHNoNjRfZWxmNjRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSwKCW1vdmlfc2hvcmlfcHV0dmFsLCBtb3ZpXzNzaG9yaV9wdXR2YWwsCglzaDY0X2VsZjY0X2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zLAoJc2g2NF9lbGY2NF9hZGp1c3RfZHluYW1pY19zeW1ib2wsIHNoNjRfZWxmNjRfZGlzY2FyZF9jb3BpZXMsCglzaDY0X2VsZjY0X3NpemVfZHluYW1pY19zZWN0aW9ucywKCXNoNjRfZWxmNjRfZmluaXNoX2R5bmFtaWNfc3ltYm9sLAoJc2g2NF9lbGY2NF9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IE5ldy4KCShlbGZfYmFja2VuZF9jcmVhdGVfZHluYW1pYy1zZWN0aW9ucywKCWJmZF9lbGY2NF9iZmRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSwKCWVsZl9iYWNrZW5kX2FkanVzdF9keW5hbWljX3N5bWJvbCwKCWVsZl9iYWNrZW5kX3NpemVfZHluYW1pY19zZWN0aW9ucywKCWVsZl9iYWNrZW5kX2ZpbmlzaF9keW5hbWljX3N5bWJvbCwKCWVsZl9iYWNrZW5kX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zLCBlbGZfYmFja2VuZF93YW50X2dvdF9wbHQsCgllbGZfYmFja2VuZF9wbHRfcmVhZG9ubHksIGVsZl9iYWNrZW5kX3dhbnRfcGx0X3N5bSwKCWVsZl9iYWNrZW5kX2dvdF9oZWFkZXJfc2l6ZSwgZWxmX2JhY2tlbmRfcGx0X2hlYWRlcl9zaXplKToKCURlZmluZS4KCTIwMDEtMDUtMTYgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBlbGYzMi1zaC5jOiBSZW51bWJlcmVkIGFuZCByZW5hbWVkIHNvbWUgU0g1IHJlbG9jYXRpb25zIHRvCgltYXRjaCBvZmZpY2lhbCBudW1iZXJzIGFuZCBuYW1lczsgbW92ZWQgdW5tYWNoaW5nIG9uZXMgdG8gdGhlCglyYW5nZSAweGYyLTB4ZmYuCgkqIGVsZjMyLXNoNjQuYywgZWxmNjQtc2g2NC5jOiBMaWtld2lzZS4KCTIwMDEtMDMtMTIgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfcmVsYXhfc2VjdGlvbik6IERvbid0IHJlbGF4IFNIbWVkaWEKCXNlY3Rpb25zLgoJMjAwMS0wMy0xMiAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgkqIGVsZjMyLXNoNjQuYyAoc2htZWRpYV9wcmVwYXJlX3JlbG9jKTogVmFsaWRhdGUgcmVsb2NzIHRoYXQgbXVzdAoJYmUgYWxpZ25lZC4KCSogZWxmNjQtc2g2NC5jIChzaF9lbGY2NF9yZWxvY2F0ZV9zZWN0aW9uKTogRGl0dG8uCgkyMDAxLTAxLTE0ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocG5AY3lnbnVzLmNvbT4KCSogZWxmMzItc2g2NC5jIChiZmRfZWxmMzJfYmZkX2NvcHlfcHJpdmF0ZV9zZWN0aW9uX2RhdGEpOiBEZWZpbmUuCgkoc2g2NF9lbGZfZmFrZV9zZWN0aW9ucyk6IFNldCB0eXBlIHRvIFNIVF9TSDVfQ1JfU09SVEVEIGZvciBhCgkuY3JhbmdlcyBzZWN0aW9uIHdpdGggU0VDX1NPUlRfRU5UUklFUyBzZXQuCgkoc2g2NF9iYWNrZW5kX3NlY3Rpb25fZnJvbV9zaGRyKTogU2V0IFNFQ19TT1JUX0VOVFJJRVMgb24gYW4KCWluY29taW5nIHNvcnRlZCAuY3JhbmdlcyBzZWN0aW9uLgoJKHNoNjRfYmZkX2VsZl9jb3B5X3ByaXZhdGVfc2VjdGlvbl9kYXRhKTogTmV3LgoJKHNoNjRfZWxmX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBPbmx5IHNvcnQgLmNyYW5nZXMgYW5kIG1vZGlmeQoJc3RhcnQgYWRkcmVzcyBpZiBjYWxsZWQgYnkgbGlua2VyLgoJMjAwMS0wMS0wOCAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgkqIGVsZjMyLXNoNjQuYyAoc2g2NF9lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IEFjdGl2YXRlCglIYW5zLVBldGVyIE5pbHNzb24ncyBzZXQgYml0IDAgcGF0Y2ggZnJvbSAyMDAxLTAxLTA2LgoJKiBlbGY2NC1zaDY0LmMgKHNoNjRfZWxmNjRfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IERpdHRvLgoJMjAwMS0wMS0wNiAgSGFucy1QZXRlciBOaWxzc29uICA8aHBuQGN5Z251cy5jb20+CgkqIGVsZjY0LXNoNjQuYyAoc2hfZWxmNjRfaG93dG9fdGFibGUpOiBObyBvcGVuIGJyYWNlIGF0IHN0YXJ0IG9mCglsaW5lLiAgQWRkIGNvbW1lbnRzIGJlZm9yZSBhbGwgZW50cmllcy4KCTxSX1NIX1BUXzE2LCBSX1NIX1NITUVESUFfQ09ERT46IENvcnJlY3QgYW5kIGNsYXJpZnkgZGVzY3JpYmluZwoJY29tbWVudC4KCShzaF9lbGY2NF9yZWxvYyk6IENvcnJlY3QgaGVhZCBjb21tZW50LgoJKHNoX2VsZjY0X3JlbG9jYXRlX3NlY3Rpb24pOiBDb3JyZWN0IHNwYWNpbmcuCgk8cmVsb2NhdGluZyBmb3IgYSBsb2NhbCBzeW1ib2w+OiBEbyBub3QgaG9ub3VyIFNUT19TSDVfSVNBMzI7CglpbnN0ZWFkIGNhbGwgcmVsb2NfZGFuZ2Vyb3VzIGNhbGxiYWNrLgoJPGNhc2UgUl9TSF9TSE1FRElBX0NPREU+OiBOZXcgY2FzZS4KCShzaF9lbGY2NF9nY19tYXJrX2hvb2spOiBDb3JyZWN0IHNwYWNpbmcuCgkoc2hfZWxmNjRfY2hlY2tfcmVsb2NzKTogRGl0dG8uCgkqIGVsZjMyLXNoNjQuYyAoc2htZWRpYV9wcmVwYXJlX3JlbG9jKSA8Y2FzZSBSX1NIX1NITUVESUFfQ09ERT46CglOZXcgY2FzZS4KCSogZWxmMzItc2guYzogQ29ycmVjdCAjZW5kaWYgY29tbWVudHMgZm9yICNpZm5kZWYtd3JhcHBlZAoJZnVuY3Rpb25zLgoJKHNoX2VsZl9ob3d0b190YWJsZSkgPFJfU0hfUFRfMTYsIFJfU0hfU0hNRURJQV9DT0RFPjogQ29ycmVjdCwKCWNsYXJpZnkgZGVzY3JpYmluZyBjb21tZW50LiAgQWRkIGNvbW1lbnRzIGJlZm9yZSBhbGwgZW50cmllcy4KCShzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbikgPHJlbG9jYXRpbmcgZm9yIGEgbG9jYWwgc3ltYm9sPjogRG8gbm90Cglob25vdXIgU1RPX1NINV9JU0EzMjsgaW5zdGVhZCBjYWxsIHJlbG9jX2Rhbmdlcm91cyBjYWxsYmFjay4KCTIwMDEtMDEtMDYgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwbkBjeWdudXMuY29tPgoJU29ydCAuY3JhbmdlcyBzZWN0aW9uIGluIGZpbmFsIGxpbmsuICBQcmVwYXJlIHRvIHNldCBiaXQgMCBvbgoJZW50cnkgYWRkcmVzcy4KCSogZWxmMzItc2g2NC5jIChzdHJ1Y3Qgc2g2NF9maW5kX3NlY3Rpb25fdm1hX2RhdGEpOiBOZXcuCgkoc2g2NF9lbGZfbGlua19vdXRwdXRfc3ltYm9sX2hvb2spOiBGaXggdHlwbyBpbiBwcm90b3R5cGUuCgkoc2g2NF9lbGZfc2V0X21hY2hfZnJvbV9mbGFncyk6IFNldCBTRUNfREVCVUdHSU5HIG9uIGluY29taW5nCgkuY3JhbmdlcyBzZWN0aW9uLgoJKHNoNjRfYmFja2VuZF9zZWN0aW9uX2Zyb21fc2hkcik6IE5ldywgdG8gcmVjb2duaXplCglTSFRfU0g1X0NSX1NPUlRFRCBvbiBpbmNvbWluZyAuY3JhbmdlcyBzZWN0aW9uLgoJKGVsZl9iYWNrZW5kX3NlY3Rpb25fZnJvbV9zaGRyKTogRGVmaW5lLgoJKHNoNjRfZWxmX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBTb3J0IG91dGdvaW5nIC5jcmFuZ2VzCglzZWN0aW9uLiAgKE5ldywgdGVtcG9yYXJpbHkgZGlzYWJsZWQ6KSBTZXQgYml0IDAgb24gZW50cnkgYWRkcmVzcwoJYWNjb3JkaW5nIHRvIElTQSB0eXBlLgoJKHNoNjRfZmluZF9zZWN0aW9uX2Zvcl9hZGRyZXNzKTogTmV3LgoJKGNyYW5nZV9xc29ydF9jbXBiLCBjcmFuZ2VfcXNvcnRfY21wbCwgY3JhbmdlX2JzZWFyY2hfY21wYiwKCWNyYW5nZV9ic2VhcmNoX2NtcGwpOiBNb3ZlIGhlcmUgZnJvbSBvcGNvZGVzL3NoNjQtZGlzLmMuCgkoc2g2NF9hZGRyZXNzX2luX2NyYW5nZXMpOiBNb3ZlIGhlcmUgZnJvbSBvcGNvZGVzL3NoNjQtZGlzLmMuICBVc2UKCWJmZF9tYWxsb2MsIG5vdCB4bWFsbG9jLgoJKHNoNjRfZ2V0X2NvbnRlbnRzX3R5cGUpOiBNb3ZlIGhlcmUgZnJvbSBvcGNvZGVzL3NoNjQtZGlzLmMuICBNYWtlCglnbG9iYWwuCgkqIGVsZjMyLXNoNjQuYyAoc2g2NF9lbGY2NF9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogTmV3LCAoYnV0Cgl0ZW1wb3JhcmlseSBkaXNhYmxlZCkgc2V0dGluZyBiaXQgMCBvbiBlbnRyeSBhZGRyZXNzLgoJKGVsZl9iYWNrZW5kX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBEZWZpbmUuCgkyMDAxLTAxLTA1ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocG5AY3lnbnVzLmNvbT4KCSogZWxmMzItc2guYyAoc2hfZWxmX2hvd3RvX3RhYmxlKSA8Ul9TSF9QVF8xNj46IEFkanVzdCBmaWVsZHMgdG8KCWJlIGEgcHJvcGVyIHJlbG9jYXRpb24gZm9yIFBUQSBhbmQgUFRCIHJhdGhlciB0aGFuIGEgbWFya2VyLgoJPFJfU0hfSU1NVTUsIFJfU0hfSU1NUzYsIFJfU0hfSU1NVTYsIFJfU0hfSU1NUzEwLCBSX1NIX0lNTVMxMEJZMiwKCVJfU0hfSU1NUzEwQlk0LCBSX1NIX0lNTVMxMEJZOCwgUl9TSF9JTU1TMTYsIFJfU0hfSU1NVTE2LAoJUl9TSF9JTU1fTE9XMTYsIFJfU0hfSU1NX0xPVzE2X1BDUkVMLCBSX1NIX0lNTV9NRURMT1cxNiwKCVJfU0hfSU1NX01FRExPVzE2X1BDUkVMLCBSX1NIX0lNTV9NRURISTE2LCBSX1NIX0lNTV9NRURISTE2X1BDUkVMLAoJUl9TSF9JTU1fSEkxNiwgUl9TSF9JTU1fSEkxNl9QQ1JFTCwgUl9TSF82NCwgUl9TSF82NF9QQ1JFTD46CglaZXJvIHNyY19tYXNrLgoJKiBlbGY2NC1zaDY0LmM6IERpdHRvLgoJKHNoX2VsZjY0X3JlbG9jYXRlX3NlY3Rpb24pIDxjYXNlIFJfU0hfUFRfMTY+OiBOZXcgY2FzZS4KCSogZWxmMzItc2g2NC5jOiBJbmNsdWRlIG9wY29kZXMvc2g2NC1vcGMuaAoJKHNobWVkaWFfcHJlcGFyZV9yZWxvYyk6IFRha2UgYSBiZmRfbGlua19pbmZvIHBvaW50ZXIgYXMgZmlyc3QKCWFyZ3VtZW50LiAgRHJvcCBjb25zdCBxdWFsaWZpZXJzIGZyb20gImJmZCAqIiBhbmQgImJmZF9ieXRlICoiCglwYXJhbWV0ZXJzLiAgTm8gdW51c2VkIHBhcmFtZXRlcnMuICBDYWxsZXIgY2hhbmdlZC4KCTxjYXNlIFJfU0hfUFRfMTY+OiBOZXcgY2FzZS4KCSogTWFrZWZpbGUuYW0gKGVsZjMyLXNoNjQubG8pOiBBZGQgZGVwZW5kZW5jeSBvbiBzaDY0LW9wYy5oLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCTIwMDAtMTItMzAgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwbkBjeWdudXMuY29tPgoJKiBlbGY2NC1zaDY0LmMgKHNoNjRfZWxmNjRfZmFrZV9zZWN0aW9ucyk6IFNldCBTSEZfU0g1X0lTQTMyIGZvcgoJYWxsIGNvZGUgc2VjdGlvbnMuCgkoc2hfZWxmNjRfc2V0X21hY2hfZnJvbV9mbGFncyk6IENoYW5nZSBmcm9tIEVGX1NINjQgdG8gRUZfU0g1LgoJKHNoNjRfZWxmX21lcmdlX3ByaXZhdGVfZGF0YSk6IERpdHRvLgoJKiBlbGYzMi1zaDY0LmMgKHNoNjRfZWxmX2Zha2Vfc2VjdGlvbnMpOiBVc2Ugc2g2NF9lbGZfc2VjdGlvbl9kYXRhCgl0byBhY2Nlc3Mgc3RvcmVkIHNlY3Rpb24gZmxhZ3MuCgkoc2g2NF9lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IFJldHVybiBpbW1lZGlhdGVseSB1bmxlc3MKCWNhbGxlZCBieSBsaW5rZXIuICBVc2Ugc2g2NF9lbGZfc2VjdGlvbl9kYXRhIChjcmFuZ2VzKSB0byBnZXQgc2l6ZQoJb2YgbGlua2VyLWdlbmVyYXRlZCBjcmFuZ2VzIGVudHJpZXMuCgkoc2g2NF9lbGZfY29weV9wcml2YXRlX2RhdGEpOiBBZGQgbWlzc2luZyAicmV0dXJuIHRydWUiLgoJKHNoNjRfZWxmX3NldF9tYWNoX2Zyb21fZmxhZ3MpOiBDaGFuZ2UgZnJvbSBFRl9TSDY0IHRvIEVGX1NINS4KCShzaF9lbGY2NF9tZXJnZV9wcml2YXRlX2RhdGEpOiBEaXR0by4KCTIwMDAtMTItMTkgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwbkBjeWdudXMuY29tPgoJKiBlbGY2NC1zaDY0LmMgKHNoNjRfZWxmNjRfZmFrZV9zZWN0aW9ucyk6IE5ldywgY29weSBvZgoJZWxmNjQtc2g2NC5jOnNoNjRfZWxmX2Zha2Vfc2VjdGlvbnMuCgkoZWxmX2JhY2tlbmRfZmFrZV9zZWN0aW9ucyk6IERlZmluZSBhcyBzaDY0X2VsZjY0X2Zha2Vfc2VjdGlvbnMuCgkyMDAwLTEyLTE4ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocG5AY3lnbnVzLmNvbT4KCSogZWxmMzItc2g2NC5jIChzaDY0X2VsZl9jb3B5X3ByaXZhdGVfZGF0YV9pbnRlcm5hbCk6IERlbGV0ZS4KCShzaDY0X2VsZl9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogTmV3LgoJKGVsZl9iYWNrZW5kX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBEZWZpbmUuCgkoc2g2NF9lbGZfZmFrZV9zZWN0aW9ucyk6IEdldCBoZWFkZXIgZmxhZ3MgZnJvbSB0ZGF0YSBmaWVsZC4KCShzaDY0X2VsZl9jb3B5X3ByaXZhdGVfZGF0YSk6IERvIG5vdCBjYWxsCglzaDY0X2VsZl9jb3B5X3ByaXZhdGVfZGF0YV9pbnRlcm5hbCwganVzdCBjb3B5IGVfZmxhZ3MgZmllbGQuCgkoc2g2NF9lbGZfbWVyZ2VfcHJpdmF0ZV9kYXRhKTogRG8gbm90IGNhbGwKCXNoNjRfZWxmX2NvcHlfcHJpdmF0ZV9kYXRhX2ludGVybmFsLgoJMjAwMC0xMi0xMiAgSGFucy1QZXRlciBOaWxzc29uICA8aHBuQGN5Z251cy5jb20+CglSZW1vdmUgRUZfU0g2NF9BQkk2NCwgbGV0IEVMRiBzaXplIG1ha2UgZGlmZmVyZW5jZS4KCVJlbW92ZSBTSDY0LXNwZWNpZmljIEJGRCBzZWN0aW9uIGZsYWcuCgkqIGVsZjMyLXNoNjQuYyAoc2g2NF9lbGZfZmFrZV9zZWN0aW9ucyk6IFJlY29nbml6ZSBzZWN0aW9uIGFzCgljb250YWluaW5nIFNIbWVkaWEgdGhyb3VnaCBlbGZfc2VjdGlvbl9kYXRhIChhc2VjdCktPnRkYXRhCglub24temVybywgbm90IHVzaW5nIGEgQkZEIHNlY3Rpb24gZmxhZy4KCShzaDY0X2VsZl9zZXRfbWFjaF9mcm9tX2ZsYWdzKTogRG9uJ3QgcmVjb2duaXplIEVGX1NINjRfQUJJNjQuCgkoc2g2NF9lbGZfbWVyZ2VfcHJpdmF0ZV9kYXRhKTogU2ltaWxhci4KCShlbGZfYmFja2VuZF9zZWN0aW9uX2ZsYWdzKTogRG9uJ3QgZGVmaW5lLgoJKHNoNjRfZWxmX2JhY2tlbmRfc2VjdGlvbl9mbGFncyk6IERlbGV0ZS4KCSogZWxmNjQtc2g2NC5jIChzaF9lbGY2NF9zZXRfbWFjaF9mcm9tX2ZsYWdzKTogUmVjb2duaXplIEVGX1NINjQsCglub3QgRUZfU0g2NF9BQkk2NC4KCShzaF9lbGY2NF9tZXJnZV9wcml2YXRlX2RhdGEpOiBTaW1pbGFyLgoJKiBzZWN0aW9uLmMgKFNlY3Rpb24gZmxhZ3MgZGVmaW5pdGlvbnMpOiBEb24ndCBkZWZpbmUKCVNFQ19TSF9JU0FfU0hNRURJQS4KCShiZmQtaW4yLmgpOiBSZWdlbmVyYXRlLgoJMjAwMC0xMi0wOSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBuQGN5Z251cy5jb20+CglNYWtlIERhdGFMYWJlbCByZWZlcmVuY2VzIHdvcmsgd2l0aCBwYXJ0aWFsIGxpbmtpbmcuCgkqIGVsZjMyLXNoNjQuYzogRml4IGZvcm1hdHRpbmcuCgkoc2g2NF9lbGZfbGlua19vdXRwdXRfc3ltYm9sX2hvb2spOiBOZXcuCgkoZWxmX2JhY2tlbmRfbGlua19vdXRwdXRfc3ltYm9sX2hvb2spOiBEZWZpbmUgdG8KCXNoNjRfZWxmX2xpbmtfb3V0cHV0X3N5bWJvbF9ob29rLgoJKHNoNjRfZWxmX2FkZF9zeW1ib2xfaG9vayk6IE1ha2UgRGF0YUxhYmVsIHN5bWJvbCBqdXN0IGdsb2JhbAoJdW5kZWZpbmVkIGlmIHBhcnRpYWwgbGlua2luZy4gIEFkanVzdCBzYW5pdHkgY2hlY2suCgkqIGVsZjY0LXNoNjQuYyAoc2g2NF9lbGY2NF9saW5rX291dHB1dF9zeW1ib2xfaG9vayk6IE5ldy4KCShlbGZfYmFja2VuZF9saW5rX291dHB1dF9zeW1ib2xfaG9vayk6IERlZmluZSB0bwoJc2g2NF9lbGY2NF9saW5rX291dHB1dF9zeW1ib2xfaG9vay4KCShzaDY0X2VsZjY0X2FkZF9zeW1ib2xfaG9vayk6IE1ha2UgRGF0YUxhYmVsIHN5bWJvbCBqdXN0IGdsb2JhbAoJdW5kZWZpbmVkIGlmIHBhcnRpYWwgbGlua2luZy4gIEFkanVzdCBzYW5pdHkgY2hlY2suCgkyMDAwLTEyLTA3ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocG5AY3lnbnVzLmNvbT4KCUltcGxlbWVudCBzZW1hbnRpY3MgZm9yIGludGVyLWZpbGUgRGF0YUxhYmVsIHJlZmVyZW5jZXMuCgkqIGVsZjY0LXNoNjQuYyAoREFUQUxBQkVMX1NVRkZJWCk6IERlZmluZS4KCShzaDY0X2VsZjY0X2FkZF9zeW1ib2xfaG9vayk6IE5ldy4KCShzaF9lbGY2NF9yZWxvY2F0ZV9zZWN0aW9uKTogSWYgcGFzc2luZyBhbiBpbmRpcmVjdCBzeW1ib2wgd2l0aAoJc3RfdHlwZSBTVFRfREFUQUxBQkVMIG9uIHRoZSB3YXkgdG8gYSBzeW1ib2wgd2l0aCBzdF9vdGhlcgoJU1RPX1NINV9JU0EzMiwgZG8gbm90IGJpdG9yIDEgdG8gdGhlIHJlbG9jYXRpb24uCgkoZWxmX2JhY2tlbmRfYWRkX3N5bWJvbF9ob29rKTogRGVmaW5lIHRvCglzaDY0X2VsZjY0X2FkZF9zeW1ib2xfaG9vay4KCSogZWxmNjQtc2gzMi5jOiBUd2VhayBjb21tZW50cy4KCShEQVRBTEFCRUxfU1VGRklYKTogRGVmaW5lLgoJKHNoNjRfZWxmX2FkZF9zeW1ib2xfaG9vayk6IE5ldy4KCShlbGZfYmFja2VuZF9hZGRfc3ltYm9sX2hvb2spOiBEZWZpbmUgdG8gc2g2NF9lbGZfYWRkX3N5bWJvbF9ob29rLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IElmIHBhc3NpbmcgYW4gaW5kaXJlY3QKCXN5bWJvbCB3aXRoIHN0X3R5cGUgU1RUX0RBVEFMQUJFTCBvbiB0aGUgd2F5IHRvIGEgc3ltYm9sIHdpdGgKCXN0X290aGVyIFNUT19TSDVfSVNBMzIsIGRvIG5vdCBiaXRvciAxIHRvIHRoZSByZWxvY2F0aW9uLgoJMjAwMC0xMi0wNSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBuQGN5Z251cy5jb20+CglQYXNzIHRocm91Z2ggU1RUX0RBVEFMQUJFTC4KCSogZWxmMzItc2g2NC5jIChzaDY0X2VsZl9nZXRfc3ltYm9sX3R5cGUpOiBOZXcuCgkoZWxmX2JhY2tlbmRfZ2V0X3N5bWJvbF90eXBlKTogRGVmaW5lLgoJKiBlbGY2NC1zaDY0LmMgKHNoNjRfZWxmNjRfZ2V0X3N5bWJvbF90eXBlKTogTmV3LgoJKGVsZl9iYWNrZW5kX2dldF9zeW1ib2xfdHlwZSk6IERlZmluZS4KCTIwMDAtMTEtMzAgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwbkBjeWdudXMuY29tPgoJKiBlbGYzMi1zaDY0LmM6IFR3ZWFrIGNvbW1lbnRzLgoJKHNoNjRfZWxmX2NvcHlfcHJpdmF0ZV9kYXRhX2ludGVybmFsKTogQWRkIHByb3RvdHlwZS4KCShiZmRfZWxmMzJfYmZkX3NldF9wcml2YXRlX2ZsYWdzKTogRGVmaW5lLgoJKHNoNjRfZWxmX2NvcHlfcHJpdmF0ZV9kYXRhX2ludGVybmFsKTogQ29tcGFyZSBtYWNoaW5lIG5hbWUsIG5vdAoJdGV4dHVhbCBCRkQgdGFyZ2V0IG5hbWUsIHRvIGNoZWNrIHdoZXRoZXIgdG8gY29weSBzZWN0aW9uIGZsYWcKCVNIRl9TSDVfSVNBMzIuCgkoc2g2NF9lbGZfbWVyZ2VfcHJpdmF0ZV9kYXRhKTogVmFsaWRpemUgYmZkX2dldF9hcmNoX3NpemUuCglUd2VhayBzZWN0aW9uLWNvbnRlbnRzLXR5cGUtbWlzbWF0Y2ggbWVzc2FnZS4KCShzaG1lZGlhX3ByZXBhcmVfcmVsb2MpOiBBZGQgQVRUUklCVVRFX1VOVVNFRCBtYXJrZXJzLgoJVmFsaWRpemUgcmVsb2MtdHlwZXMuCgkqIGVsZjY0LXNoNjQuYzogTmV3IGZpbGUuCgkqIHRhcmdldHMuYyAoYmZkX2VsZjY0X3NoNjRfdmVjLCBiZmRfZWxmNjRfc2g2NGxfdmVjKTogRGVjbGFyZS4KCSogTWFrZWZpbGUuYW0gKEJGRDY0X0JBQ0tFTkRTKTogQWRkIGVsZjY0LXNoNjQubG8uCgkoQkZENjRfQkFDS0VORFNfQ0ZJTEVTKTogQWRkIGVsZjY0LXNoNjQuYy4KCVJlZ2VuZXJhdGUgZGVwZW5kZW5jaWVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmJmZCAoc2g2NC0qLWVsZiopOiBBZGQgYmZkX2VsZjY0X3NoNjRfdmVjIGFuZAoJYmZkX2VsZjY0X3NoNjRsX3ZlYy4KCSogY29uZmlndXJlLmluOiBIYW5kbGUgYmZkX2VsZjY0X3NoNjRfdmVjIGFuZAoJYmZkX2VsZjY0X3NoNjRsX3ZlYy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBwby9QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCSogcG8vYmZkLnBvdDogUmVnZW5lcmF0ZS4KCTIwMDAtMTEtMjkgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwbkBjeWdudXMuY29tPgoJKiBlbGYzMi1zaDY0LmMgKHNoNjRfZWxmX3NldF9tYWNoX2Zyb21fZmxhZ3MpOiBEbyBub3QgcmVjb2duaXplCglhbnl0aGluZyBlbHNlIGJ1dCBFRl9TSDY0IGFuZCBFRl9TSDY0X0FCSTY0LgoJKHNoNjRfZWxmX21lcmdlX3ByaXZhdGVfZGF0YSk6IEVtaXQgZXJyb3IgZm9yIGFueXRoaW5nIGVsc2UgYnV0CglFRl9TSDY0IGFuZCBFRl9TSDY0X0FCSTY0LgoJKiBjb25maWcuYmZkOiBSZW1vdmUgYmZkX2VsZjMyX3NoYmxpbl92ZWMgYW5kIGJmZF9lbGYzMl9zaGxpbl92ZWMKCWZyb20gdGFyZ19zZWx2ZWNzLgoJKiBjb25maWd1cmUuaW46IEFkZCBjb2ZmbGluay5sbyB0byBiZmRfZWxmMzJfc2g2NF92ZWMgYW5kCgliZmRfZWxmMzJfc2g2NGxfdmVjIGFzIGEgdGVtcG9yYXJ5IG1lYXN1cmUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCTIwMDAtMTEtMjcgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwbkBjeWdudXMuY29tPgoJKiBjcHUtc2guYyAoYXJjaF9pbmZvX3N0cnVjdCk6IEluY2x1ZGUgc2g1IGl0ZW0KCXVuY29uZGl0aW9uYWxpemVkLgoJKiBjb25maWcuYmZkIChzaDY0LSotZWxmKik6IERvIG5vdCBzZXQgdGFyZ19jZmxhZ3MuCglBZGQgdGFyZ19zZWx2ZWNzIGJmZF9lbGYzMl9zaF92ZWMsIGJmZF9lbGYzMl9zaGxfdmVjLAoJYmZkX2VsZjMyX3NoYmxpbl92ZWMgYW5kIGJmZF9lbGYzMl9zaGxpbl92ZWMuCgkqIGVsZjMyLXNoNjQuYzogVHdlYWsgY29tbWVudHMuCgkoc2g2NF9lbGZfc2V0X21hY2hfZnJvbV9mbGFncyk6IFJlY29nbml6ZSBhbGwgbWFjaGluZSBmbGFncyB0aGF0CglhcmUgcHJvcGVyIHN1YnNldHMgb2YgU0g2NCBhcyBiZmRfbWFjaF9zaDUuICBBZGQgRUZfU0g2NF9BQkk2NC4KCShzaDY0X2VsZl9jb3B5X3ByaXZhdGVfZGF0YV9pbnRlcm5hbCk6IFdyYXAgbG9uZyBsaW5lLgoJKHNoNjRfZWxmX21lcmdlX3ByaXZhdGVfZGF0YSk6IFJld3JpdGUgdG8gYWxsb3cgb2JqZWN0cyBmcm9tCglTSDY0IHN1YnNldHMgdG8gYmUgbGlua2VkIHRvZ2V0aGVyLgoJKElOQ0xVREVfU0hNRURJQSk6IERlZmluZS4KCSogZWxmMzItc2guYyAoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pIDxsb2NhbCBzeW1ib2w+OgoJUGFyZW50aGVzaXplIHBsdXMtZXhwcmVzc2lvbiBpbnNpZGUgb3ItZXhwcmVzc2lvbi4KCTxnbG9iYWwgc3ltYm9sPjogRGl0dG8uCgkoc2hfZWxmX3NldF9tYWNoX2Zyb21fZmxhZ3MpOiBSZW1vdmUgY29kZSByZWZ1c2luZwoJZGVsZXRlZCBFRl9TSDY0XzMyQklUX0FCSSBmbGFnLgoJMjAwMC0xMS0yNiAgSGFucy1QZXRlciBOaWxzc29uICA8aHBuQGN5Z251cy5jb20+CgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9ob3d0b190YWJsZSkgPFJfU0hfSU1NX0xPVzE2X1BDUkVMLAoJUl9TSF9JTU1fTUVETE9XMTZfUENSRUwsIFJfU0hfSU1NX01FREhJMTZfUENSRUwsCglSX1NIX0lNTV9ISTE2X1BDUkVMLCBSX1NIXzY0X1BDUkVMPjogU2V0IHBjcmVsX29mZnNldCB0byB0cnVlLgoJKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKSA8bG9jYWwgc3ltYm9sPjogT3IgMSBpbgoJY2FsY3VsYXRpb24gb2YgcmVsb2NhdGlvbiBpZiBzeW0tPnN0X290aGVyICYgU1RPX1NINV9JU0EzMi4KCTxnbG9iYWwgc3ltYm9sPjogRGl0dG8gaWYgaC0+b3RoZXIgJiBTVE9fU0g1X0lTQTMyLgoJKiBlbGYzMi1zaDY0LmMgKHNobWVkaWFfcHJlcGFyZV9yZWxvYyk6IEFkZCByZWwtPnJfYWRkZW5kIHRvCglyZWxvY2F0aW9uLgoJMjAwMC0xMS0yNCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBuQGN5Z251cy5jb20+CgkqIE1ha2VmaWxlLmFtIChCRkQzMl9CQUNLRU5EUyk6IEFkZCBlbGYzMi1zaDY0LmxvLgoJKEJGRDMyX0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCBlbGYzMi1zaDY0LmMuCglSZWdlbmVyYXRlIGRlcGVuZGVuY2llcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGFyY2h1cmVzLmM6IEFkZCBiZmRfbWFjaF9zaDUuCgkqIGNvbmZpZy5iZmQ6IE1hcCB0YXJnX2NwdSBzaCogdG8gYmZkX3NoX2FyY2guCglIYW5kbGUgc2g2NC0qLWVsZiouICBTZXQgdGFyZ19jZmxhZ3MgdG8gLURJTkNMVURFX1NITUVESUEuCgkqIGNvbmZpZ3VyZS5pbjogSGFuZGxlIGJmZF9lbGYzMl9zaDY0X3ZlYyBhbmQgYmZkX2VsZjMyX3NoNjRsX3ZlYy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiByZWxvYy5jIChCRkRfUkVMT0NfU0hfU0hNRURJQV9DT0RFLCBCRkRfUkVMT0NfU0hfSU1NVTUsCglCRkRfUkVMT0NfU0hfSU1NUzYsIEJGRF9SRUxPQ19TSF9JTU1TNkJZMzIsIEJGRF9SRUxPQ19TSF9JTU1VNiwKCUJGRF9SRUxPQ19TSF9JTU1TMTAsIEJGRF9SRUxPQ19TSF9JTU1TMTBCWTIsCglCRkRfUkVMT0NfU0hfSU1NUzEwQlk0LCBCRkRfUkVMT0NfU0hfSU1NUzEwQlk4LAoJQkZEX1JFTE9DX1NIX0lNTVMxNiwgQkZEX1JFTE9DX1NIX0lNTVUxNiwgQkZEX1JFTE9DX1NIX0lNTV9MT1cxNiwKCUJGRF9SRUxPQ19TSF9JTU1fTE9XMTZfUENSRUwsIEJGRF9SRUxPQ19TSF9JTU1fTUVETE9XMTYsCglCRkRfUkVMT0NfU0hfSU1NX01FRExPVzE2X1BDUkVMLCBCRkRfUkVMT0NfU0hfSU1NX01FREhJMTYsCglCRkRfUkVMT0NfU0hfSU1NX01FREhJMTZfUENSRUwsIEJGRF9SRUxPQ19TSF9JTU1fSEkxNiwKCUJGRF9SRUxPQ19TSF9JTU1fSEkxNl9QQ1JFTCwgQkZEX1JFTE9DX1NIX1BUXzE2KTogTmV3IHJlbG9jYXRpb25zLgoJKiBjcHUtc2guYyBbSU5DTFVERV9TSE1FRElBXSAoYXJjaF9pbmZvX3N0cnVjdCk6IERlZmluZSBhbmQgbGluawoJaW4gaXRlbSBmb3IgU0g1LgoJKiBlbGYzMi1zaC5jIFtJTkNMVURFX1NITUVESUFdIChzaF9lbGZfaG93dG9fdGFibGUpOiBBZGQgaG93dG8gaXRlbXMKCWZvciBTSG1lZGlhIHJlbG9jcy4KCVtJTkNMVURFX1NITUVESUFdIChzaF9yZWwpOiBBZGQgbWFwcGluZ3MgZm9yIFNIbWVkaWEgcmVsb2NzLgoJW0lOQ0xVREVfU0hNRURJQV0gKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKSBbZGVmYXVsdF06IENhbGwKCXNobWVkaWFfcHJlcGFyZV9yZWxvYywgZ290byBmaW5hbF9saW5rX3JlbG9jYXRlIGlmIGl0IHJldHVybnMKCW5vbi16ZXJvLCBlbHNlIGZhaWwgYXMgYmVmb3JlLgoJKHNoX2VsZl9zZXRfbWFjaF9mcm9tX2ZsYWdzKTogUHJvdmlkZSBmdW5jdGlvbiBvbmx5IGlmIG5vdCBkZWZpbmVkCglhcyBtYWNyby4gIERvIG5vdCByZWNvZ25pemUgb2JqZWN0cyB3aXRoIEVGX1NINjRfMzJCSVRfQUJJIHNldC4KCShzaF9lbGZfc2V0X3ByaXZhdGVfZmxhZ3MpOiBQcm92aWRlIGZ1bmN0aW9uIG9ubHkgaWYgbm90IGRlZmluZWQKCWFzIGEgbWFjcm8uCgkoc2hfZWxmX2NvcHlfcHJpdmF0ZV9kYXRhKTogU2ltaWxhci4KCShzaF9lbGZfbWVyZ2VfcHJpdmF0ZV9kYXRhKTogU2ltaWxhci4KCSogc2VjdGlvbi5jIChTRUNfU0hfSVNBX1NITUVESUEpOiBOZXcuCgkqIHRhcmdldHMuYyAoYmZkX2VsZjMyX3NoNjRfdmVjLCBiZmRfZWxmMzJfc2g2NGxfdmVjKTogRGVjbGFyZS4KCSogZWxmMzItc2g2NC5jOiBOZXcgZmlsZS4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogcG8vUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL2JmZC5wb3Q6IFJlZ2VuZXJhdGUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgoyMDAyLTAyLTA3ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGJmZC1pbi5oOiBVcGRhdGUgPHN0ZGJvb2wuaD4gY2hlY2sgdG8gb25seSBzZWUgaWYgPHN0ZGJvb2wuaD4gaGFzCgliZWVuIGluY2x1ZGVkLCBub3QgZHJhZyBpdCBpbi4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMi0wMi0wNiAgSC5KLiBMdSAgKGhqbEBnbnUub3JnKQoKCSogZWxmMzItbWlwcy5jIChfYmZkX21pcHNfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBVcGRhdGUKCXRoZSBtYWNoIGFuZCBJU0EgZmllbGRzIGlmIG5lY2Vzc2FyeS4KCjIwMDItMDItMDYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogY29mZmNvZGUuaCAoY29mZl9zZXRfYXJjaF9tYWNoX2hvb2spOiBTZWxlY3QgdGhlIGhpZ2hlc3Qga25vd24KCUFSTSBhcmNoaXRlY3R1cmUgd2hlbiBhbiBGX0FSTV81IGZsYWcgaXMgZGV0ZWN0ZWQsIHNpbmNlIHdlIGNhbm5vdAoJYmUgc3VyZSBleGFjdGx5IHdoaWNoIGFyY2hpdGVjdHVyZSB0aGlzIHJlcHJlc2VudHMuCgoyMDAyLTAyLTA1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vdHIucG86IFVwZGF0ZWQgdHJhbnNsYXRpb24uCgoyMDAyLTAyLTA1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCUZyb20gSmltaSBYIDxqaW1peEB3YXRzb24uaWJtLmNvbT4KCSogYXJjaHVyZXMgKGJmZF9tYWNoX3BwYzY0KTogRGVmaW5lLgoJKGJmZF9wb3dlcnBjX2FyY2gpOiBSZW5hbWUgdG8gYmZkX3Bvd2VycGNfYXJjaHMuCgkoYmZkX3Bvd2VycGNfYXJjaCk6IERlZmluZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBjcHUtcG93ZXJwYy5jIChhcmNoX2luZm9fc3RydWN0KTogUmVuYW1lIHRvIGJmZF9wb3dlcnBjX2FyY2hzLgoJKGJmZF9wb3dlcnBjX2FyY2gpOiBNb3ZlIHRvIHRhaWwgb2YgYmZkX3Bvd2VycGNfYXJjaHMuCgkoYmZkX3Bvd2VycGNfYXJjaHMpOiBBZGQgZGVmYXVsdCBwb3dlcnBjNjQgYXJjaC4KCjIwMDItMDItMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IENoZWNrIGZvciByZWxvY3MKCWFnYWluc3Qgc2VjdGlvbiBzeW1zIGluIHJlYWRvbmx5IHNlY3Rpb25zLiAgRG9uJ3QgZG8gdGhlIGdsb2JhbAoJc3ltIGNoZWNrIGlmIHdlIGZpbmQgb25lLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9zMzkwX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoZWxmX3MzOTBfZ3Jva19wcnN0YXR1cyk6IEFkZCBtaXNzaW5nIHByb3RvdHlwZS4KCjIwMDItMDItMDQgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGVsZjY0LW1taXguYyAobW1peF9kdW1wX2Jwb19ncmVncyk6IE5ldyBmdW5jdGlvbi4KCShtbWl4X2VsZl9jaGVja19jb21tb25fcmVsb2NzKSA8Y2FzZSBSX01NSVhfQkFTRV9QTFVTX09GRlNFVD46CglDYWxsIGJmZF9nZXRfc2VjdGlvbl9ieV9uYW1lIG9ubHkgb25jZS4gIEluaXRpYWxpemUKCWJwb2RhdGEtPm5fYnBvX3JlbG9jc190aGlzX3NlY3Rpb24uCgkoX2JmZF9tbWl4X3ByZXBhcmVfbGlua2VyX2FsbG9jYXRlZF9ncmVncyk6IFJlbW92ZSBjb21tZW50CglyZWZlcnJpbmcgdG8gRFNPcy4KCShicG9fcmVsb2NfcmVxdWVzdF9zb3J0X2ZuKTogRG9uJ3QgdXNlIGRpZmZlcmVuY2Ugb2YgdmFsdWVzIGFzCglyZXR1cm4tdmFsdWUuCgoyMDAyLTAyLTAyICBEYXZpZCBPJ0JyaWVuICA8b2JyaWVuQEZyZWVCU0Q+CgoJKiBjb25maWd1cmUuaW46IFR3ZWFrIHRoZSBGcmVlQlNEIDQueCByZWNvZ25pdGlvbiBtb3JlLiAgT25seSB0cmVhdAoJdmVyc2lvbiA0LjUgYW5kIGxhdGVyIHRoZSBzYW1lIGFzIDUtQ1VSUkVOVC4KCSogY29uZmlndXJlOiBSZS1nZW5lcmF0ZS4KCjIwMDItMDItMDIgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWcuYmZkIChocHBhKi0qLW5ldGJzZCopOiBOZXcgdGFyZ2V0LgoKMjAwMi0wMS0zMSAgUGhpbGlwcCBUaG9tYXMgIDxwdGhvbWFzQHN1c2UuZGU+CgoJKiBjb2ZmLWFybS5jIChjb2ZmX2FybV9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogTW92ZSBFUlJPUgoJdG8gZnJvbnQgb2YgbWVzc2FnZS4gVW5pZnkgbWVzc2FnZXMgd2l0aCBlbGYzMi1hcm0uaC4gVXNlCgljb21tYXMgd2hlcmUgbmVjY2Vzc2FyeS4KCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogVXNlIGFsbCB1cGNhc2UKCUVSUk9SIGluIG1lc3NhZ2VzLiBVbmlmeSBtZXNzYWdlcyB3aXRoIGNvZmYtYXJtLmMuIENvcnJlY3QKCVZGUC9GUEEgZXJyb3IgbWVzc2FnZS4KCShlbGYzMl9hcm1fcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IERvbid0IG1hcmsgQVBDUy0yNiBhbmQKCUFQQ1MtMzIgZm9yIHRyYW5zbGF0aW9uLgoKMjAwMi0wMi0wMSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCVBlcmZvcm0gb24tZGVtYW5kIGdsb2JhbCByZWdpc3RlciBhbGxvY2F0aW9uIGZyb20KCVJfTU1JWF9CQVNFX1BMVVNfT0ZGU0VUIHJlbG9jcy4KCSogZWxmNjQtbW1peC5jIChzdHJ1Y3QgYnBvX3JlbG9jX3NlY3Rpb25faW5mbywgc3RydWN0CglicG9fcmVsb2NfcmVxdWVzdCwgc3RydWN0IGJwb19ncmVnX3NlY3Rpb25faW5mbyk6IE5ldy4KCShtbWl4X2VsZl9jaGVja19jb21tb25fcmVsb2NzLCBtbWl4X2VsZl9nY19zd2VlcF9ob29rLAoJYnBvX3JlbG9jX3JlcXVlc3Rfc29ydF9mbiwgbW1peF9lbGZfcmVsYXhfc2VjdGlvbiwKCV9iZmRfbW1peF9jaGVja19hbGxfcmVsb2NzLAoJX2JmZF9tbWl4X3ByZXBhcmVfbGlua2VyX2FsbG9jYXRlZF9ncmVncywKCV9iZmRfbW1peF9maW5hbGl6ZV9saW5rZXJfYWxsb2NhdGVkX2dyZWdzKTogTmV3IGZ1bmN0aW9ucy4KCShlbGZfbW1peF9ob3d0b190YWJsZSk6IENvcnJlY3Qgc3JjX21hc2sgZm9yIG1vc3QgcmVsb2NzLgoJKG1taXhfZWxmX3BlcmZvcm1fcmVsb2NhdGlvbikgPGNhc2UgUl9NTUlYX0JBU0VfUExVU19PRkZTRVQ+OiBOZXcKCWNhc2UuCgkobW1peF9maW5hbF9saW5rX3JlbG9jYXRlKSA8Y2FzZSBSX01NSVhfQkFTRV9QTFVTX09GRlNFVD46IE5ldwoJY2FzZS4gIEZpeCB0eXBvIGluIGNvbW1lbnQuICBOZXcgbGFiZWwgZG9fbW1peF9yZWxvYy4KCShtbWl4X2VsZl9jaGVja19yZWxvY3MpOiBBYnVzZSBiZmRfbGlua19pbmZvIG1lbWJlciBiYXNlX2ZpbGUgdG8KCXN0b3JlIGZpcnN0IG9iamVjdCBmaWxlIHdpdGggYSBiYXNlLXBsdXMtb2Zmc2V0IHJlbG9jLiAgQ2FsbAoJbW1peF9lbGZfY2hlY2tfY29tbW9uX3JlbG9jcyBmb3IgdGhlIHBhcnQgY29tbW9uIHdpdGggbW1vLgoJKG1taXhfZWxmX2ZpbmFsX2xpbmspOiBXcml0ZSBvdXQgbGlua2VyLWFsbG9jYXRlZCByZWdpc3RlcgoJY29udGVudHMgc2VjdGlvbi4KCShlbGZfYmFja2VuZF9nY19zd2VlcF9ob29rKTogRGVmaW5lLgoJKGJmZF9lbGY2NF9iZmRfcmVsYXhfc2VjdGlvbik6IERlZmluZS4KCgkqIG1tby5jOiBEb24ndCBpbmNsdWRlIDxjdHlwZS5oPgoJKG1tb19pbml0KTogQ29ycmVjdCBpbml0LW9uY2UgbG9naWMuCgoyMDAyLTAyLTAxICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogY29uZmlnLmJmZDogQ29uZGl0aW9uYWxseSBzdXBwb3J0IDxhaWFmZj4gZm9yIHByZSBBSVggNC4zLgoKMjAwMi0wMi0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDEtMzEgIERhdmlkIE8nQnJpZW4gIDxvYnJpZW5ARnJlZUJTRD4KCgkqIGNvbmZpZ3VyZS5pbjogUmVjb2duaXplIHRoZSBkaWZmZXJlbmNlcyBpbiBjb3JlIGZpbGVzIGZyb20gRnJlZUJTRAoJNC57MCwxfSBhbmQgbGF0ZXIgdmVyc2lvbnMgb2YgNC54LiAgVGhpcyB0cmVhdHMgNC4yKyB0aGUgc2FtZSBhcwoJNS1DVVJSRU5ULgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTAxLTMxICBJdmFuIEd1enZpbmVjICA8aXZhbmdAb3BlbmNvcmVzLm9yZz4KCgkqIGNvZmYtb3IzMi5jOiBOZXcgZmlsZS4KCSogY3B1LW9yMzIuYzogTmV3IGZpbGUuCgkqIGVsZjMyLW9yMzIuYzogTmV3IGZpbGUuCgkqIGFyY2h1cmVzLmM6IEFkZCBzdXBwb3J0IGZvciBvcjMyLgoJKiB0YXJnZXRzLmM6IEFkZCBzdXBwb3J0IGZvciBvcjMyLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGNvZmZjb2RlLmggKGNvZmZfc2V0X2FyY2hfbWFjaF9ob29rLCBjb2ZmX3NldF9mbGFncywKCWNvZmZfd3JpdGVfb2JqZWN0X2NvbnRlbnRzKTogQWRkIHN1cHBvcnQgZm9yIG9yMzIuCgkqIGNvbmZpZy5iZmQ6IEFkZCB0YXJnZXQuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHN1cHBvcnQgZm9yIG9yMzIuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogTWFrZWZpbGUuYW06IEFkZCBzdXBwb3J0IGZvciBvcjMyLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogcG8vU1JDLVBPVEZJTEVTLmluOiBBZGQgb3IzMiBmaWxlcy4KCSogcG8vYmZkLnBvdDogUmVnZW5lcmF0ZS4KCjIwMDItMDEtMzEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoJICAgIERvbiBMaW5kc2F5ICA8bGluZHNheWRAY2lzY28uY29tPgoKCSogZWxmMzItbWlwcy5jIChtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IFJlcGxhY2UgJ3JldHVybgoJZmFsc2UnIHdpdGggYSByZXR1cm4gb2YgYSBiZmRfcmVsb2NfIGVycm9yIGNvZGUuCgoyMDAyLTAxLTMxICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGVsZjMyLWNyaXMuYyAoZWxmX2NyaXNfZGlzY2FyZF9leGNlc3NfcHJvZ3JhbV9keW5hbWljcyk6IERvbid0Cgl1bmV4cG9ydCB1bnJlZmVyZW5jZWQgc3ltYm9scyB3aGVuIC0tZXhwb3J0LWR5bmFtaWMuICBDYWxsCglfYmZkX2VsZl9zdHJ0YWJfZGVscmVmIHdoZW4gdW5leHBvcnRpbmcuCgoyMDAyLTAxLTMwICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGJmZC1pbi5oOiBJbmNsdWRlIDxzdGRib29sLmg+IGlmIGl0IGlzIGF2YWlsYWJsZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlZC4KCjIwMDItMDEtMzEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAoZnVuY19kZXNjX2FkanVzdCk6IFNUVl9QUk9URUNURUQgZnVuY3Rpb25zIHNob3VsZAoJbm90IGdvIHZpYSB0aGUgcGx0LgoKMjAwMi0wMS0zMCAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBhcmNodXJlcy5jOiBUaWR5IHVwIGZvcm1hdHRpbmcgb2YgZW1iZWRkZWQgY29tbWVudHMuCgkqIGJmZC5jOiBUaWR5IHVwIGZvcm1hdHRpbmcgb2YgZW1iZWRkZWQgY29tbWVudHMuCgkqIGJmZC1pbi5oOiBGaXggZm9ybWF0dGluZyBvZiBjb21tZW50cy4KCSogcmVsb2MuYzogVGlkeSB1cCBmb3JtYXR0aW5nIG9mIG9yZGluYXJ5ICYgZW1iZWRkZWQgY29tbWVudHMuCgkqIHNlY3Rpb24uYzogVGlkeSB1cCBmb3JtYXR0aW5nIG9mIGVtYmVkZGVkIGNvbW1lbnRzLgoJKiBzeW1zLmM6IFRpZHkgdXAgZm9ybWF0dGluZyBvZiBlbWJlZGRlZCBjb21tZW50cy4KCSogdGFyZ2V0cy5jOiBUaWR5IHVwIGZvcm1hdHRpbmcgb2YgZW1iZWRkZWQgY29tbWVudHMuCgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAyLTAxLTMwICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIHZtcy10aXIuYyAoY21kX25hbWUpOiBOZXcgZnVuY3Rpb24uCgkodGlyX2NtZF9uYW1lKTogTmV3IGZ1bmN0aW9uLgoJKGV0aXJfc3RhLCBldGlyX3N0bywgZXRpcl9vcHIsIGV0aXJfc3RjKTogVXNlIGNtZF9uYW1lKCkuCgkodGlyX29wciwgdGlyX2N0bCwgdGlyX2NtZCk6IHVzZSB0aXJfY21kX25hbWUoKS4KCUZpeCBmb3JtYXR0aW5nLgoKCSogcGVYWGlnZW4uYyAocGVfcHJpbnRfaWRhdGEpOiBSZWFycmFuZ2UgbWVzc2FnZSB0byBhaWQgaW4KCXRyYW5zbGF0aW9uLgoJKHBlX3ByaW50X3BkYXRhKTogUmVhcnJhbmdlIG1lc3NhZ2UgdG8gYWlkIGluIHRyYW5zbGF0aW9uLgoKCSogbGliYmZkLmMgKHdhcm5fZGVwcmVjYXRlZCk6IFJlYXJyYW5nZSBlcnJvciBtZXNzYWdlIHRvIGFpZCBpbgoJdHJhbnNsYXRpb24uCgoJKiBpaGV4LmMgKGloZXhfd3JpdGVfb2JqZWN0X2NvbnRlbnRzKTogRml4IHNwZWxsaW5nIHR5cG8uCgoJKiBpZWVlLmMgKGllZWVfc2x1cnBfZXh0ZXJuYWxfc3ltYm9scyk6IFJlbW92ZSBzcHVyaW91cyBzcGFjZS4KCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX2FkZF9zeW1ib2xfaG9vayk6IFJlYXJyYW5nZSBlcnJvcgoJbWVzc2FnZSB0byBhaWQgaW4gdHJhbnNsYXRpb24uCgoJKiBlbGY2NC1tbWl4LmMgKG1taXhfZmluYWxfbGlua19yZWxvY2F0ZSk6IFJlYXJyYW5nZSBlcnJvciBtZXNzYWdlCgl0byBhaWQgaW4gdHJhbnNsYXRpb24uCgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBGaXggdHlwby4KCjIwMDItMDEtMzAgIFBoaWxpcHAgVGhvbWFzICA8cHRob21hc0BzdXNlLmRlPgoKCSogY29mZi1hcm0uYywgZWxmMzItZWxmLmg6IFVuaWZ5IG1lc3NhZ2VzLgoKMjAwMi0wMS0zMCAgTmljayBDbGlmdG9uIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vc3YucG86IFVwZGF0ZWQgdHJhbnNsYXRpb24uCgoyMDAyLTAxLTMwICBQaGlsaXBwIFRob21hcyAgPHB0aG9tYXNAc3VzZS5kZT4KCgkqIGR3YXJmMi5jIChyZWFkX2FiYnJldik6IFVzZSBmdWxsIHNlY3Rpb24gbmFtZSBpbiBlcnJvciBtZXNzYWdlLgoJKGRlY29kZV9saW5lX2luZm8pOiBMaWtld2lzZS4KCgkqIGVsZi5jIChfYmZkX2VsZl9zeW1ib2xfZnJvbV9iZmRfc3ltYm9sKTogRG9uJ3QgdHJhbnNsYXRlIGRlYnVnZ2luZwoJbWVzc2FnZS4KCjIwMDItMDEtMzAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAoZnVuY19kZXNjX2FkanVzdCk6IE9ubHkgcHJvdmlkZSBtaXNzaW5nIGZ1bmN0aW9uCglkZXNjcmlwdG9yIHN5bWJvbHMgZm9yIHVuZGVmaW5lZCBmdW5jdGlvbiBjb2RlIHN5bXMuICBDbGVhcgoJRUxGX0xJTktfTk9OX0VMRiBzbyB0aGF0IHRoZXkgY2FuIHN0YXkgd2Vhay4KCjIwMDItMDEtMjkgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgkgICAgTWl0Y2ggTGljaHRlbmJlcmcgIDxtcGxAYnJvYWRjb20uY29tPgoKCSogYmZkLWluLmggKGJmZF9taXBzX2VsZjMyX2NyZWF0ZV9lbWJlZGRlZF9yZWxvY3MpOiBOZXcgcHJvdG90eXBlLgoJKiBlbGYzMi1taXBzLmMgKGJmZF9taXBzX2VsZjMyX2NyZWF0ZV9lbWJlZGRlZF9yZWxvY3MpOiBOZXcgZnVuY3Rpb24KCXRvIGhhbmRsZSAzMi1iaXQgRUxGIGVtYmVkZGVkIHJlbG9jIChsZCAtLWVtYmVkZGVkLXJlbG9jcykKCWdlbmVyYXRpb24uCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDItMDEtMjkgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBlbGYzMi1taXBzLmM6IEFkZCBhZGRpdGlvbmFsIGNvbW1lbnRzIGFib3V0IEhJMTYgcmVsb2NhdGlvbgoJcHJvY2Vzc2luZy4KCShfYmZkX21pcHNfZWxmX2hpMTZfcmVsb2MpOiBEb24ndCBzdWJ0cmFjdCBhZGRyZXNzIGhlcmUgZm9yCglwYy1yZWxhdGl2ZSByZWxvY2F0aW9ucy4gIChSZXZlcnRzIGNoYW5nZSBtYWRlIG9uIDIwMDEtMTAtMzEuKQoJKF9iZmRfbWlwc19lbGZfbG8xNl9yZWxvYyk6IFN1YnRyYWN0IGFkZHJlc3Mgb2YgTE8xNiBwYXJ0IGhlcmUKCWZvciBwYy1yZWxhdGl2ZSByZWxvY2F0aW9ucy4KCShtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IEFkZCBhIGNvbW1lbnQgYWJvdXQgYSBrbHVkZ2UKCWluIHRoZSBSX01JUFNfR05VX1JFTF9ISTE2IGhhbmRsaW5nLgoJKF9iZmRfbWlwc19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEltcGxlbWVudCB0aGF0IGtsdWRnZTsKCWFkanVzdCBwYy1yZWxhdGl2ZSBISTE2IHJlbG9jYXRpb24gZm9yIGRpZmZlcmVuY2UgaW4gSEkxNiBhbmQKCUxPMTYgYWRkcmVzc2VzLCBzaW5jZSBpdCBjYW4ndCBlYXNpbHkgYmUgZG9uZSBpbgoJbWlwc19lbGZfY2FsY3VsYXRlX3JlbG9jYXRpb24uCgoyMDAyLTAxLTI5ICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogZWxmMzItaTM4NiAoZWxmX2kzODZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogRG8gbm90IHJlcGxhY2UgUExUMzIKCXJlbG9jYXRpb25zIHdpdGggUEMzMiByZWxvY2F0aW9ucyBmb3IgdW5kZWZpbmVkIG9yIHdlYWsgc3ltYm9scy4KCSogZWxmMzItczM5MCAoZWxmX2kzODZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTB4IChlbGZfaTM4Nl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCjIwMDItMDEtMjggIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBlbGZjb3JlLmggKGVsZl9jb3JlX2ZpbGVfcCk6IEltcHJvdmUgY29tbWVudCBmb3IgbGFzdCBjaGFuZ2UuCgoyMDAyLTAxLTI3ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgoyMDAyLTAxLTI3ICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogZWxmY29yZS5oIChlbGZfY29yZV9maWxlX3ApOiBTZXQgdGhlIG1hY2hpbmUgYXJjaGl0ZWN0dXJlCgliZWZvcmUgcHJvY2Vzc2luZyB0aGUgcHJvZ3JhbSBoZWFkZXJzLgoKMjAwMi0wMS0yNiAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogY29uZmlndXJlLmluIDw2NC1iaXQgY29uZmlndXJhdGlvbj46IElmIHVzaW5nIGdjYywgY2hlY2sgYW5kCgllbWl0IGVycm9yIGZvciBlZ2NzLTEuMS4yLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTAxLTI2ICBFZ29yIER1ZGEgIDxkZW9AbG9nb3MtbS5ydT4KCgkqIGVsZi5jIChlbGZjb3JlX2dyb2tfd2luMzJwc3RhdHVzKTogQ29weSBvbmx5IGFzIG11Y2ggaW5mb3JtYXRpb24KCWFzIHBvc3NpYmxlIHRvIGF2b2lkIHN0YWNrIGNvcnJ1cHRpb24uCgoyMDAyLTAxLTI2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfY2hlY2tfcmVsb2NzKTogRG9uJ3Qgc2V0IHJlbHRleHQKCWZvciBub24tYWxsb2NhdGVkIHNlY3Rpb25zLgoKMjAwMi0wMS0yNSAgTWFyayBLZXR0ZW5pcyAgPGtldHRlbmlzQGdudS5vcmc+CgoJKiBlbGYuYyAoZWxmY29yZV93cml0ZV9wcnN0YXR1cyk6IE1ha2Ugc3VyZSB3ZSBwYXNzIHRoZSBhZGRyZXNzIG9mCglwcnN0YXQucHJfcmVnIGV2ZW4gaWYgaXQgaXMgYSBzdHJ1Y3QuCgoyMDAyLTAxLTI1ICBTdGV2ZSBFbGxjZXkgPHNqZUBjdXAuaHAuY29tPgoKCSogZWxmeHgtaWE2NC5jOiBSZXNldCBBSVggdmVjdG9yIGZ1bmN0aW9uIG92ZXJyaWRlcyBmb3IgSFAtVVguCgoyMDAyLTAxLTI1ICBQaGlsaXBwIFRob21hcyAgPHB0aG9tYXNAc3VzZS5kZT4KCgkqIGNvZmZnZW4uYyAoY29mZl9wcmludF9zeW1ib2wpOiBEb24ndCBtYXJrIGluZm8gbWVzc2FnZQoJZm9yIHRyYW5zbGF0aW9uLgoKMjAwMi0wMS0yNSAgTmljayBDbGlmdG9uIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vZnIucG86IFVwZGF0ZWQgdHJhbnNsYXRpb24uCgkqIHBvL2VzLnBvOiBVcGRhdGVkIHRyYW5zbGF0aW9uLgoKMjAwMi0wMS0yNSAgUGhpbGlwcCBUaG9tYXMgIDxwdGhvbWFzQHN1c2UuZGU+CgoJKiBjb2ZmLWFscGhhLmMgKGFscGhhX3JlbG9jYXRlX3NlY3Rpb24pOiBVbmlmeSB3YXJuaW5nIG1lc3NhZ2UKCWZvciBHUCByZWxhdGl2ZSByZWxvY2F0aW9ucyB3aXRob3V0IEdQIGRlZmluZWQuCgkqIGNvZmYtbWlwcy5jIChtaXBzX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDItMDEtMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYtZWgtZnJhbWUuYyAoX2JmZF9lbGZfZWhfZnJhbWVfc2VjdGlvbl9vZmZzZXQpOiBBdm9pZAoJdW5zaWduZWQgb3ZlcmZsb3cgd2hlbiBuZXdfb2Zmc2V0IDwgb2xkX29mZnNldC4KCjIwMDItMDEtMjQgIFBoaWxpcHAgVGhvbWFzICA8cHRob21hc0BzdXNlLmRlPgoKCSogYmZkLmMgKF9iZmRfYWJvcnQpOiBGaXggdHlwby4KCjIwMDItMDEtMjMgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBEb24ndCBzdXBwcmVzcwoJcGx0IGVudHJpZXMgZm9yIHVuZGVmd2VhayBzeW1ib2xzLgoKMjAwMi0wMS0yMyAgU3RldmUgRWxsY2V5IDxzamVAY3VwLmhwLmNvbT4KCgkqIHRhcmdldHMuYyAoYmZkX2VsZjMyX2lhNjRfaHB1eF9iaWdfdmVjKTogQWRkIHRvIERFRkFVTFRfVkVDVE9SLgoJKGJmZF9lbGY2NF9pYTY0X2hwdXhfYmlnX3ZlYyk6IERpdHRvLgoJKGJmZF9lbGYzMl9oODMwMF92ZWMpOiBEaXR0by4KCjIwMDItMDEtMjMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYzogUmVtb3ZlIHN0YWxlIHBhcnQgb2YgQUJJIGNvbW1lbnQuCgkoTk9fT1BEX1JFTE9DUyk6IERlZmluZS4KCShwcGM2NF9lbGZfY2hlY2tfcmVsb2NzKTogVXNlIGl0LgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogSGVyZSB0b28uCgkoYnVpbGRfb25lX3N0dWIpOiBEb24ndCBwb2ludCBmdW5jdGlvbiBzeW1zIGF0IHRoZSBzdHViLiAgSW5zdGVhZCwKCWhpamFjayBwbHQub2Zmc2V0LgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogQ2hlY2sgd2hldGhlciBSRUwyNCByZWxvY3Mgc2hvdWxkCglyZWFsbHkgZ28gdG8gdGhlIHN0dWIuICBNYWtlIGFsbCBkeW5hbWljIHJlbG9jcyBpbiBvcGQgYWdhaW5zdAoJbG9jYWxzLgoJKHBwYzY0X2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBBbGxvdyBmb3Igbm9uLXN0YW5kYXJkIHVzZSBvZgoJcGx0Lm9mZnNldC4KCjIwMDItMDEtMjIgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChJTlNOX1VOT1ApOiBFbmNvZGUgd2l0aCBSQiBhcyAkc3AuCgoyMDAyLTAxLTIyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IENvcnJlY3Qgc2lnbiBvZgoJVE9DX0JBU0VfT0ZGIGFkanVzdG1lbnQuCgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBwby9TUkMtUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTAxLTIyICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogY29uZmlndXJlLmhvc3QgKGhwcGEqNjQqLSotaHB1eCosIGhwcGEqNjQqLSotbGludXgqKTogQWRkIG5ldwoJaG9zdCBkZWZpbmVzLgoKMjAwMi0wMS0yMSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBlbGYzMi1jcmlzLmMgKGNyaXNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pIDxjYXNlIFJfQ1JJU18zMl9HT1RSRUw+OgoJQ2hlY2sgZm9yIGFuZCBlbWl0IGVycm9yIGlmIHNnb3QgaXMgTlVMTCBhdCB0aGlzIHBvaW50LgoKMjAwMi0wMS0yMSAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZy5iZmQgKGlhNjQqLSotbmV0YnNkKik6IE5ldyB0YXJnZXQuCgoyMDAyLTAxLTIxICBUaG9tYXMgS2xhdXNuZXIgPHdpekBkYW5iYWxhLmlmb2VyLnR1d2llbi5hYy5hdD4KCgkqIHNvbS5jIChzb21fd3JpdGVfc3BhY2Vfc3RyaW5ncyk6IENvbW1lbnQgdHlwbyBmaXguCgoyMDAyLTAxLTIxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHN0cnVjdCBwcGNfbGlua19oYXNoX2VudHJ5KTogQWRkIGlzX2Z1bmMgYW5kCglpc19mdW5jX2Rlc2NyaXB0b3IgZmllbGRzLgoJKGxpbmtfaGFzaF9uZXdmdW5jKTogSW5pdCB0aGVtLgoJKHBwYzY0X2VsZl9jaGVja19yZWxvY3MpOiBPbmx5IFJfUFBDMjRfUkVMMjQgc3ltcyBzdGFydGluZyB3aXRoIGEKCWRvdCBhcmUgY2FuZGlkYXRlcyBmb3IgcGx0IGVudHJpZXMuICBXaGVuIHByb2Nlc3NpbmcgLm9wZCByZWxvY3MsCglzZXQgZnVuY3Rpb24gZGVzY3JpcHRvciBzdHJpbmdzIHRvIHBvaW50IGluc2lkZSBmdW5jdGlvbiBjb2RlCglzdHJpbmcsIGFuZCBzZXQgbmV3IHBwY19saW5rX2hhc2hfZW50cnkgZmllbGRzLgoJKHBwYzY0X2VsZl9nY19zd2VlcF9ob29rKTogRG9uJ3Qgc3dlZXAgUl9QUEM2NF9SRUwyNCByZWxvY3MuCgkocHBjNjRfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IFJlbW92ZSBtb3N0IGNvZGUgZGVhbGluZyB3aXRoCglmdW5jdGlvbiBkZXNjcmlwdG9ycy4gIEl0J3Mgbm93IGRvbmUgaW4uLgoJKGZ1bmNfZGVzY19hZGp1c3QpOiBOZXcuCgkocHBjNjRfZWxmX2Z1bmNfZGVzY19hZGp1c3QpOiBOZXcuCgkoZGVmaW5lIGVsZl9iYWNrZW5kX2Fsd2F5c19zaXplX3NlY3Rpb25zKTogRGVmaW5lLgoJKHBwYzY0X2VsZl9oaWRlX3N5bWJvbCk6IE5ldy4KCShkZWZpbmUgZWxmX2JhY2tlbmRfaGlkZV9zeW1ib2wpOiBEZWZpbmUuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogUmVtb3ZlIGNvZGUgbG9va2luZyB1cCBmdW5jdGlvbiBkZXNjcmlwdG9ycwoJYXMgdGhhdCBoYXMgYmVlbiBkb25lIGVhcmxpZXIuCgkocHBjNjRfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFVzZSBodGFiIHNob3J0Y3V0IHRvIGVsZiBoYXNoCgl0YWJsZS4KCShwcGM2NF9lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuICBSZW1vdmUgY29kZSBsb29raW5nCgl1cCBmdW5jdGlvbiBkZXNjcmlwdG9yLgoJKGJ1aWxkX29uZV9zdHViKTogTG9vayB1cCB0aGUgZnVuY3Rpb24gY29kZSBzeW0uICBDaGVjayBmb3IKCWludmFsaWQgcGx0IG9mZnNldHMuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBUd2VhayBjYWxscyB0byB1bmRlZmluZWQgd2VhayBzeW1zLgoJQ29udmVydCBSX1BQQzY0X1RPQyByZWxvY3MgdG8gUl9QUEM2NF9SRUxBVElWRSBpbiBzaGFyZWQgbGlicy4KCgkqIGVsZi1iZmQuaCAoZWxmX2JhY2tlbmRfZGF0YSA8ZWxmX2JhY2tlbmRfaGlkZV9zeW1ib2w+KTogQWRkCglib29sZWFuIHBhcmFtLgoJKF9iZmRfZWxmX2xpbmtfaGFzaF9oaWRlX3N5bWJvbCk6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IEFkanVzdCBjYWxsIHRvCgllbGZfYmFja2VuZF9oaWRlX3N5bWJvbC4KCShlbGZfZml4X3N5bWJvbF9mbGFncyk6IExpa2V3aXNlLgoJKGVsZl9saW5rX2Fzc2lnbl9zeW1fdmVyc2lvbik6IExpa2V3aXNlLiBVc2UgYmZkX21hbGxvYyByYXRoZXIKCXRoYW4gYmZkX2FsbG9jLgoJKiBlbGYuYyAoX2JmZF9lbGZfbGlua19oYXNoX2hpZGVfc3ltYm9sKTogQWRkICJmb3JjZV9sb2NhbCIgcGFyYW0uCglTZXQgRUxGX0xJTktfRk9SQ0VEX0xPQ0FMIGFuZCBjYWxsIF9iZmRfZWxmX3N0cnRhYl9kZWxyZWYuCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9oaWRlX3N5bWJvbCk6IExpa2V3aXNlLgoJKGNsb2JiZXJfbWlsbGljb2RlX3N5bWJvbHMpOiBBZGp1c3QgdG8gc3VpdCBuZXcgaGlkZV9zeW1ib2wuCgkqIGVsZjMyLWNyaXMuYyAoZWxmX2NyaXNfaGlkZV9zeW1ib2wpOiBBZGQgImZvcmNlX2xvY2FsIiBwYXJhbQoJYW5kIGFkanVzdCB0byBzdWl0LgoJKiBlbGYzMi1taXBzLmMgKF9iZmRfbWlwc19lbGZfaGlkZV9zeW1ib2wpOiBMaWtld2lzZSwgYW5kIGNhbGwKCV9iZmRfZWxmX2xpbmtfaGFzaF9oaWRlX3N5bWJvbCByYXRoZXIgdGhhbiBkdXBsaWNhdGluZyBjb2RlLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfaGFzaF9oaWRlX3N5bWJvbCk6IExpa2V3aXNlLgoKMjAwMi0wMS0xOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogVGVzdCBmb3IgYQoJZHluYW1pYyBmdW5jdGlvbiBkZXNjcmlwdG9yIHN5bWJvbCwgbm90IHRoZSBhc3NvY2lhdGVkIGZ1bmN0aW9uCglzeW1ib2wuCgoyMDAyLTAxLTE3ICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIGVsZjMyLW1pcHMuYyAobWlwc19lbGZfY2FsY3VsYXRlX3JlbG9jYXRpb24pOiBGaXggdHlwby4KCjIwMDItMDEtMTcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcG8vYmZkLnBvdDogUmVnZW5lcmF0ZS4KCSogcG8vZnIucG86IFJlZ2VuZXJhdGUuCgoyMDAyLTAxLTE3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLWJmZC5oIChlbGZfYmFja2VuZF9kYXRhIDxlbGZfYmFja2VuZF9zZWN0aW9uX2Zyb21fYmZkX3NlY3Rpb24+KToKCVJlbW92ZSAiRWxmX0ludGVybmFsX1NoZHIgKiIgcGFyYW0uCgkoX2JmZF9taXBzX2VsZl9zZWN0aW9uX2Zyb21fYmZkX3NlY3Rpb24pOiBEaXR0by4KCSogZWxmMzItbWlwcy5jIChfYmZkX21pcHNfZWxmX3NlY3Rpb25fZnJvbV9iZmRfc2VjdGlvbik6IERpdHRvLgoJKiBlbGYzMi1tMzJyLmMgKF9iZmRfbTMycl9lbGZfc2VjdGlvbl9mcm9tX2JmZF9zZWN0aW9uKTogRGl0dG8uCgkqIGVsZjMyLXY4NTAuYyAodjg1MF9lbGZfc2VjdGlvbl9mcm9tX2JmZF9zZWN0aW9uKTogRGl0dG8uCgkqIGVsZjY0LW1taXguYyAobW1peF9lbGZfc2VjdGlvbl9mcm9tX2JmZF9zZWN0aW9uKTogRGl0dG8uCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faHB1eF9iYWNrZW5kX3NlY3Rpb25fZnJvbV9iZmRfc2VjdGlvbik6IERpdHRvLgoJKiBlbGYuYyAoX2JmZF9lbGZfc2VjdGlvbl9mcm9tX2JmZF9zZWN0aW9uKTogQWxsb3cgYmFja2VuZAoJZnVuY3Rpb24gdG8gb3ZlcnJpZGUgc3BlY2lhbCBzZWN0aW9ucy4gIFJlbW92ZSBoZHIgYXJnIGZyb20KCWJhY2tlbmQgY2FsbCwgYW5kIGRvbid0IGxvb3AuCgoyMDAyLTAxLTE2ICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIGVsZjMyLW1pcHMuYyAobWlwc19lbGZfY2FsY3VsYXRlX3JlbG9jYXRpb24pOiBTZXQgcmVxdWlyZV9qYWx4cAoJb24gUl9NSVBTXzI2IGFuZCB0YXJnZXQgaXMgMTZiaXQuIEFkZCBSX01JUFMxNl9HUFJFTCB0byBsaXN0IG9mCglyZWxvY2F0aW9ucyByZXF1aXJpbmcgZ3AwIGFuZCBncC4KCjIwMDItMDEtMTYgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogSGFuZGxlCglFRl9BUk1fVkZQX0ZMT0FULgoJKGVsZjMyX2FybV9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogTGlrZXdpc2UuCgoyMDAyLTAxLTE2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIHBvL3RyLnBvOiBJbXBvcnQgbmV3IHZlcnNpb24uCgoyMDAyLTAxLTE2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9ob3d0b19yYXcpOiBSZW1vdmUgc3RhbGUgRklYTUVzLgoJKHBwYzY0X2VsZl9yZWxvY190eXBlX2xvb2t1cCk6IFVzZSBwcm9wZXIgQ1RPUiByZWxvYy4KCShPUklfUjBfUjBfMCk6IENvcnJlY3QuCgoyMDAyLTAxLTE2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmbGluay5jIChfYmZkX2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IERvbid0IHNldCBTRUNfQ09ERQoJd2hlbiBwbHRfbm90X2xvYWRlZC4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IE5vIG5lZWQgdG8KCWNsZWFyIC5wbHQgU0VDX0NPREUgaGVyZS4gIENyZWF0ZSAuc3R1YiBhbmQgY29ycmVjdCAuZ2xpbmsgZmxhZ3MuCgkoUExUX0lOSVRJQUxfRU5UUllfU0laRSk6IFNldCB0byAyNC4KCShwcGM2NF9lbGZfZ2xpbmtfY29kZSk6IERlbGV0ZS4KCShQUEM2NF9FTEZfR0xJTktfU0laRSk6IERlbGV0ZS4KCShBRERJU19SMTJfUjIsIFNURF9SMl80MFIxLCBMRF9SMTFfMFIxMiwgTERfUjJfMFIxMiwgTVRDVFJfUjExLAoJQkNUUiwgQURESVNfUjEyX1IxMl8xLCBMRF9SMl80MFIxLCBOT1AsIExJX1IwXzAsIEJfRE9ULCBMSVNfUjBfMCwKCU9SSV9SMF9SMF8wKTogRGVmaW5lLgoJKFBMVF9DQUxMX1NUVUJfU0laRSwgR0xJTktfQ0FMTF9TVFVCX1NJWkUpOiBEZWZpbmUuCgkoc3RydWN0IHBwY19saW5rX2hhc2hfdGFibGUpOiBBZGQgc3N0dWIgYW5kIHBsdF9vdmVyZmxvdy4KCShwcGM2NF9lbGZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IEluaXQgdGhlbS4KCShwcGM2NF9lbGZfY2hlY2tfcmVsb2NzIDxSX1BQQzY0X1JFTDI0Pik6IFJlZmNvdW50IC5wbHQgZW50cnkuCglEb24ndCBjb3B5IHRvIHNoYXJlZCBsaWIuCgkocHBjNjRfZWxmX2NoZWNrX3JlbG9jcyk6IENhbGwgYmZkX3NldF9lcnJvciBvbiBlcnJvcnMuCgkocHBjNjRfZWxmX2djX3N3ZWVwX2hvb2sgPFJfUFBDNjRfUkVMMjQ+KTogU3dlZXAgcGx0IHJlZmNvdW50LgoJKGFsbG9jYXRlX2R5bnJlbG9jcyA8cGx0Pik6IERvbid0IGNoYW5nZSBmdW5jdGlvbiBzeW0gaGVyZS4gIE1ha2UKCXJvb20gZm9yIC5zdHViIGFuZCAuZ2xpbmsgY29kZS4KCShwcGM2NF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogSGFuZGxlIC5zdHViLiAgTWFrZSBlbnRyeSBmb3IKCURUX1BQQzY0X0dMSU5LLgoJKHBwYzY0X2VsZl9maW5hbF9saW5rKTogUmVuYW1lIHRvIHBwYzY0X2VsZl9zZXRfdG9jLiAgRG9uJ3QgY2FsbAoJYmZkX2VsZjY0X2JmZF9maW5hbF9saW5rLgoJKGJmZF9lbGY2NF9iZmRfZmluYWxfbGluayk6IERvbid0IGRlZmluZS4KCShwcGM2NF9lbGZfc2l6ZV9zdHVicyk6IE5ldy4KCShidWlsZF9wbHRfc3R1Yik6IE5ldy4KCShidWlsZF9vbmVfc3R1Yik6IE5ldy4KCShwcGM2NF9lbGZfYnVpbGRfc3R1YnMpOiBOZXcuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24gPHRvYyByZWxvY3M+KTogUmVtb3ZlIGFzc2VydC4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IERvbid0IGNvcHkgUl9QUEM2NF9SRUwyNCByZWxvY3MuCgkocHBjNjRfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IERvbid0IGJ1aWxkIHN0dWJzIGhlcmUuICBTZXQKCURUX1BQQzY0X0dMSU5LIGVudHJ5LiAgVHdlYWsgRFRfUExUR09ULCBEVF9KTVBSRUwsIERUX1BMVFJFTFNaIGluCgljYXNlIG91dHB1dCBzZWN0aW9ucyBub3Qgc2VwYXJhdGUuICBBZGp1c3QgRFRfUkVMQVNaIHRvIG5vdAoJaW5jbHVkZSBwbHQgcmVsb2NzLiAgU2V0IHJlc2VydmVkIGdvdCBlbnRyeS4gIFNldCBnb3QgYW5kIHBsdAoJZW50cnkgc2l6ZS4KCShlbGZfYmFja2VuZF9nb3RfaGVhZGVyX3NpemUpOiBTZXQgdG8gOC4KCSogZWxmNjQtcHBjLmg6IE5ldyBmaWxlLgoKMjAwMi0wMS0xNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogV2hlbiByZW1vdmluZwoJc2VjdGlvbnMsIHVzZSBiZmRfc2VjdGlvbl9saXN0X3JlbW92ZS4KCSogZWxmMzItaTM3MC5jIChpMzcwX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBXaGVuIHJlbW92aW5nIGFsbAoJc2VjdGlvbnMsIHVzZSBiZmRfc2VjdGlvbl9saXN0X2NsZWFyLgoKMjAwMi0wMS0xNSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBwby9zdi5wbzogTmV3IGZpbGU6IFN3ZWRpc2ggdHJhbnNsYXRpb24uCgkqIGNvbmZpZ3VyZS5pbiAoQUxMX0xJTkdVQVMpOiBBZGQgc3YuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMDEtMTUgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmbGluay5oIChlbGZfbGlua19pbnB1dF9iZmQpOiBCYWNrIG91dCAyMDAyLTAxLTA3IGNoYW5nZS4KCSogZWxmLmMgKG1lcmdlX3NlY3Rpb25zX3JlbW92ZV9ob29rKTogTmV3IGZ1bmN0aW9uLgoJKF9iZmRfZWxmX21lcmdlX3NlY3Rpb25zKTogUGFzcyBpdCBhcyAzcmQgYXJndW1lbnQgdG8KCV9iZmRfbWVyZ2Vfc2VjdGlvbnMuCgkqIGxpYmJmZC1pbi5oIChfYmZkX21lcmdlX3NlY3Rpb25zKTogQWRkIDNyZCBhcmd1bWVudC4KCSogbGliYmZkLmg6IFJlYnVpbHQuCgkqIG1lcmdlLmMgKF9iZmRfbWVyZ2Vfc2VjdGlvbnMpOiBBZGQgcmVtb3ZlX2hvb2sgYXJndW1lbnQuCglDYWxsIHJlbW92ZV9ob29rIGlmIGEgU0VDX0VYQ0xVREUgc2VjdGlvbiBpcyBlbmNvdW50ZXJlZC4KCjIwMDItMDEtMTUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogZWxmMzIteHN0b3JteTE2LmMgKHhzdG9ybXkxNl9yZWxvY19tYXApOiBBZGQgbmV3IGZpZWxkICd0YWJsZScuCgkoeHN0b3JteTE2X3JlbG9jX21hcCk6IEluaXRpYWxpc2UgbmV3IGZpZWxkIHdpdGggY29ycmVjdCBob3d0bwoJdGFibGUuCgkoeHN0b3JteTE2X3JlbG9jX3R5cGVfbG9va3VwKTogVXNlICd0YWJsZScgZmllbGQgdG8gbG9jYXRlIGNvcnJlY3QKCWhvd3RvIGVudHJ5LgoKMjAwMi0wMS0xMCAgTWljaGFlbCBTbnlkZXIgIDxtc255ZGVyQHJlZGhhdC5jb20+CgoJKiBlbGYuYyAoZWxmY29yZV93cml0ZV9wcnN0YXR1cyk6IFVzZSBsb25nIGluc3RlYWQgb2YgcGlkX3Q7CgkoZWxmY29yZV93cml0ZV9wc3RhdHVzKTogVXNlIGxvbmcgaW5zdGVhZCBvZiBwaWRfdDsKCSogZWxmLWJmZC5oOiBDaGFuZ2UgcHJvdG90eXBlcyB0byB1c2UgbG9uZyBpbnN0ZWFkIG9mIHBpZF90OwoKMjAwMi0wMS0wOSAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGVsZi5jOiBVcGRhdGUgY29weXJpZ2h0IHllYXJzLgoJKGVsZmNvcmVfZ3Jva19uZXRic2Rfbm90ZSk6IFVzZSBOVF9ORVRCU0RDT1JFX1BST0NJTkZPCglhbmQgTlRfTkVUQlNEQ09SRV9GSVJTVE1BQ0guICBJbXByb3ZlIGEgY29tbWVudC4KCjIwMDItMDEtMDggIE1pY2hhZWwgU255ZGVyICA8bXNueWRlckByZWRoYXQuY29tPgoKCUFkZCBjYXBhYmlsaXR5IHRvIHdyaXRlIGNvcmVmaWxlIG5vdGUgc2VjdGlvbnMsIGZvciBnZGIuCgkqIGVsZi5jIChlbGZjb3JlX3dyaXRlX25vdGUpOiBOZXcgZnVuY3Rpb24uCgkoZWxmY29yZV93cml0ZV9wcnBzaW5mbyk6IE5ldyBmdW5jdGlvbi4KCShlbGZjb3JlX3dyaXRlX3Byc3RhdHVzKTogTmV3IGZ1bmN0aW9uLgoJKGVsZmNvcmVfd3JpdGVfcHN0YXR1cyk6IE5ldyBmdW5jdGlvbi4KCShlbGZjb3JlX3dyaXRlX3ByZnByZWcpOiBOZXcgZnVuY3Rpb24uCgkoZWxmY29yZV93cml0ZV9wcnhmcHJlZyk6IE5ldyBmdW5jdGlvbi4KCSogZWxmLWJmZC5oOiBBZGQgcHJvdG90eXBlcyBmb3IgYWJvdmUgZnVuY3Rpb25zLgoKMjAwMi0wMS0wOCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGYuYyAoZWxmX2Zha2Vfc2VjdGlvbnMpOiBQcm9wYWdhdGUgZXJyb3JzIGZyb20KCWVsZl9iYWNrZW5kX2Zha2Vfc2VjdGlvbi4KCjIwMDItMDEtMDcgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQkZEMzJfQkFDS0VORFMpOiBBZGQgZWxmMzItc2gtbmJzZC5sby4KCShCRkQzMl9CQUNLRU5EU19DRklMRVMpOiBBZGQgZWxmMzItc2gtbmJzZC5jLgoJKGVsZjMyLXNoLW5ic2QubG8pOiBOZXcgcnVsZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy5iZmQgKHNoKmxlLSotbmV0YnNkZWxmKik6IE5ldyB0YXJnZXQuCgkoc2gqLSotbmV0YnNkZWxmKik6IE5ldyB0YXJnZXQuCgkqIGNvbmZpZ3VyZS5pbjogSW5jbHVkZSBuZXRic2QtY29yZS5sbyBmb3IgbmF0aXZlIHNoKi0qLW5ldGJzZCouCgkoYmZkX2VsZjMyX3NobmJzZF92ZWMpOiBOZXcgdmVjdG9yLgoJKGJmZF9lbGYzMl9zaGxuYnNkX3ZlYyk6IE5ldyB2ZWN0b3IuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogZWxmMzItc2gtbmJzZC5jOiBOZXcgZmlsZS4KCSogdGFyZ2V0cy5jOiBVcGRhdGUgY29weXJpZ2h0IHllYXJzLgoJKF9iZmRfdGFyZ2V0X3ZlY3Rvcik6IEFkZCBiZmRfZWxmMzJfc2hsbmJzZF92ZWMgYW5kCgliZmRfZWxmMzJfc2huYnNkX3ZlYy4KCjIwMDItMDEtMDcgIEFsZHkgSGVybmFuZGV6ICA8YWxkeWhAcmVkaGF0LmNvbT4KCgkqIGNvZmYtcnM2MDAwLmMgKFJFQUQyMCk6IFVzZSBiZmRfc2Nhbl92bWEuCgoyMDAyLTAxLTA3ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQHJlZGhhdC5jb20+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2lucHV0X2JmZCk6IERvbid0IGFzayBmb3IgdGhlIG1lcmdlZCBvZmZzZXQKCW9mIGEgc3ltYm9sIGluIGEgc2VjdGlvbiB0aGF0IHdpbGwgYmUgZGVsZXRlZC4KCjIwMDItMDEtMDcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcG8vZXMucG86IE5ldyBmaWxlOiBTcGFuaXNoIHRyYW5zbGF0aW9uLgoJKiBjb25maWd1cmUuaW4gKEFMTF9MSU5HVUFTKTogQWRkIGVzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTAxLTA2ICBTdGV2ZSBFbGxjZXkgIDxzamVAY3VwLmhwLmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoaXNfdW53aW5kX3NlY3Rpb25fbmFtZSk6IEFkZCB0YXJnZXQgdmVjdG9yIGFzCglhcmd1bWVudCBzbyB3ZSBjYW4gaGFuZGxlIEhQLVVYIHNwZWNpYWxseS4KCShlbGZOTl9pYTY0X2hwdXhfdmVjKTogTmV3IGZvciB1c2UgaW4gaXNfdW53aW5kX3NlY3Rpb25fbmFtZS4KCShlbGZOTl9ocHV4X2JhY2tlbmRfc2VjdGlvbl9mcm9tX2JmZF9zZWN0aW9uKTogTmV3IGZvciBzdXBwb3J0CglvZiBTSE5fSUFfNjRfQU5TSV9DT01NT04uCgkoZWxmTk5faWE2NF9yZWxheF9zZWN0aW9uKTogQWRkIHN1cHBvcnQgZm9yIFNITl9JQV82NF9BTlNJX0NPTU1PTi4KCShpc191bndpbmRfc2VjdGlvbl9uYW1lKTogQWRkIHNwZWNpYWwgSFAtVVggc3VwcG9ydC4KCShlbGZOTl9pYTY0X3NlY3Rpb25fZnJvbV9zaGRyKTogQWRkIHN1cHBvcnQgZm9yIG1vcmUgc2VjdGlvbnMuCgkoZWxmTk5faWE2NF9mYWtlX3NlY3Rpb25zKTogTW9kaWZ5IGlzX3Vud2luZF9zZWN0aW9uX25hbWUgY2FsbCBhbmQKCWFkZCBzdXBwb3J0IGZvciBtb3JlIHNlY3Rpb25zLgoJKGVsZk5OX2lhNjRfYWRkaXRpb25hbF9wcm9ncmFtX2hlYWRlcnMpOiBNb2RpZnkKCWlzX3Vud2luZF9zZWN0aW9uX25hbWUgY2FsbC4KCShlbGZOTl9pYTY0X21vZGlmeV9zZWdtZW50X21hcCk6IFJlbW92ZSBhc3N1bXB0aW9uIHRoYXQgdGhlcmUgaXMKCW9ubHkgb25lIHVud2luZCBzZWN0aW9uIGluIHNlZ21lbnQuCgoyMDAyLTAxLTA2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogc3ltcy5jIChfYmZkX2dlbmVyaWNfbWFrZV9lbXB0eV9zeW1ib2wpOiBOZXcgZnVuY3Rpb24uCgkqIGxpYmJmZC1pbi5oIChfYmZkX25vc3ltYm9sc19tYWtlX2VtcHR5X3N5bWJvbCk6IERlZmluZSBhcwoJX2JmZF9nZW5lcmljX21ha2VfZW1wdHlfc3ltYm9sLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBocHBhYnNkLWNvcmUuYyAoaHBwYWJzZF9jb3JlX21ha2VfZW1wdHlfc3ltYm9sKTogRGVsZXRlIGZ1bmN0aW9uLgoJKGhwcGFic2RfY29yZV9nZXRfc3ltdGFiX3VwcGVyX2JvdW5kKTogRG9uJ3QgZGVmaW5lLgoJKGhwcGFic2RfY29yZV9nZXRfc3ltdGFiKTogTGlrZXdpc2UuCgkoaHBwYWJzZF9jb3JlX3ByaW50X3N5bWJvbCk6IExpa2V3aXNlLgoJKGhwcGFic2RfY29yZV9nZXRfc3ltYm9sX2luZm8pOiBMaWtld2lzZS4KCShocHBhYnNkX2NvcmVfYmZkX2lzX2xvY2FsX2xhYmVsX25hbWUpOiBMaWtld2lzZS4KCShocHBhYnNkX2NvcmVfZ2V0X2xpbmVubyk6IExpa2V3aXNlLgoJKGhwcGFic2RfY29yZV9maW5kX25lYXJlc3RfbGluZSk6IExpa2V3aXNlLgoJKGhwcGFic2RfY29yZV9iZmRfbWFrZV9kZWJ1Z19zeW1ib2wpOiBMaWtld2lzZS4KCShocHBhYnNkX2NvcmVfcmVhZF9taW5pc3ltYm9scyk6IExpa2V3aXNlLgoJKGhwcGFic2RfY29yZV9taW5pc3ltYm9sX3RvX3N5bWJvbCk6IExpa2V3aXNlLgoJKGhwcGFic2RfY29yZV92ZWMpOiBVc2UgQkZEX0pVTVBfVEFCTEVfU1lNQk9MUyAoX2JmZF9ub3N5bWJvbHMpLgoJRm9ybWF0dGluZyBmaXhlcy4KCSogaHB1eC1jb3JlLmM6IFNpbWlsYXJseS4KCSogaXJpeC1jb3JlLmM6IFNpbWlsYXJseS4KCSogb3NmLWNvcmUuYzogU2ltaWxhcmx5LgoJKiBzY281LWNvcmUuYzogU2ltaWxhcmx5LgoJKiBiaW5hcnkuYyAoYmluYXJ5X21ha2VfZW1wdHlfc3ltYm9sKTogUmVtb3ZlIGZ1bmN0aW9uLCBkZWZpbmUgYXMKCV9iZmRfZ2VuZXJpY19tYWtlX2VtcHR5X3N5bWJvbC4KCSogaWhleC5jIChpaGV4X21ha2VfZW1wdHlfc3ltYm9sKTogTGlrZXdpc2UuCgkqIG1tby5jIChtbW9fbWFrZV9lbXB0eV9zeW1ib2wpOiBMaWtld2lzZS4KCSogcHBjYm9vdC5jIChwcGNib290X21ha2VfZW1wdHlfc3ltYm9sKTogTGlrZXdpc2UuCgkqIHNyZWMuYyAoc3JlY19tYWtlX2VtcHR5X3N5bWJvbCk6IExpa2V3aXNlLgoJKiB2ZXJzYWRvcy5jICh2ZXJzYWRvc19tYWtlX2VtcHR5X3N5bWJvbCk6IExpa2V3aXNlLgoJKiB2bXMuYyAoX2JmZF92bXNfbWFrZV9lbXB0eV9zeW1ib2wpOiBSZW1vdmUuCgkodm1zX21ha2VfZW1wdHlfc3ltYm9sKTogRGVmaW5lIGFzIF9iZmRfZ2VuZXJpY19tYWtlX2VtcHR5X3N5bWJvbC4KCSogdm1zLWdzZC5jIChfYmZkX3Ztc19zbHVycF9nc2QpOiBDYWxsIGJmZF9tYWtlX2VtcHR5X3N5bWJvbAoJcmF0aGVyIHRoYW4gX2JmZF92bXNfbWFrZV9lbXB0eV9zeW1ib2wuCgkqIHZtcy1taXNjLmMgKG5ld19zeW1ib2wpOiBMaWtld2lzZS4KCjIwMDItMDEtMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBzZWN0aW9uLmMgKGJmZF9zZWN0aW9uX2luaXQpOiBSZW1vdmUgdW5uZWNlc3NhcnkgaW5pdGlhbGlzYXRpb25zLgoJKGJmZF9zZWN0aW9uX2xpc3RfY2xlYXIpOiBOZXcgZnVuY3Rpb24uCgkoYmZkX3NlY3Rpb25fbGlzdF9yZW1vdmUsIGJmZF9zZWN0aW9uX2xpc3RfaW5zZXJ0KTogTmV3IG1hY3Jvcy4KCShfYmZkX3N0cmlwX3NlY3Rpb25fZnJvbV9vdXRwdXQpOiBVc2UgdGhlbS4KCSogY29mZmNvZGUuaCAoY29mZl9zZXRfYWxpZ25tZW50X2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItbWlwcy5jIChfYmZkX21pcHNfZWxmX2ZpbmFsX2xpbmspOiBMaWtld2lzZS4KCSogZWxmNjQtbWlwcy5jIChtaXBzX2VsZjY0X2ZpbmFsX2xpbmspOiBMaWtld2lzZS4KCSogZWxmNjQtbW1peC5jIChtbWl4X2VsZl9maW5hbF9saW5rKTogTGlrZXdpc2UuCgkqIHN1bm9zLmMgKHN1bm9zX2FkZF9keW5hbWljX3N5bWJvbHMpOiBMaWtld2lzZS4KCSogeGNvZmZsaW5rLmMgKF9iZmRfeGNvZmZfYmZkX2ZpbmFsX2xpbmspOiBMaWtld2lzZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKCSogbmV0YnNkLWNvcmUuYyAobmV0YnNkX2NvcmVfZmlsZV9wKTogVXNlIGJmZF9tYWtlX3NlY3Rpb25fYW55d2F5CglyYXRoZXIgdGhhbiBkb2luZyBvdXIgb3duIHNlY3Rpb24gaGFuZGxpbmcuICBDbGVhbiB1cCBhZnRlciBlcnJvcnMKCXdpdGggYmZkX3JlbGVhc2UgYW5kIGJmZF9zZWN0aW9uX2xpc3RfY2xlYXIuICBIYW5kbGUgdW5leHBlY3RlZAoJZmxhZ3MuCgkqIGFvdXRmMS5oIChzdW5vczRfY29yZV9maWxlX3ApOiBMaWtld2lzZS4KCSogYWl4Mzg2LWNvcmUuYyAoYWl4Mzg2X2NvcmVfZmlsZV9wKTogTGlrZXdpc2UuCgkqIGNpc2NvLWNvcmUuYyAoY2lzY29fY29yZV9maWxlX3ZhbGlkYXRlKTogTGlrZXdpc2UuCgkqIHB0cmFjZS1jb3JlLmMgKHB0cmFjZV91bml4X2NvcmVfZmlsZV9wKTogTGlrZXdpc2UuCgkqIHRyYWQtY29yZS5jICh0cmFkX3VuaXhfY29yZV9maWxlX3ApOiBMaWtld2lzZS4KCgkqIGhwcGFic2QtY29yZS5jIChocHBhYnNkX2NvcmVfY29yZV9maWxlX3ApOiBDbGVhbiB1cCBhZnRlciBlcnJvcnMKCXdpdGggYmZkX3JlbGVhc2UgYW5kIGJmZF9zZWN0aW9uX2xpc3RfY2xlYXIuCgkqIGhwdXgtY29yZS5jIChocHV4X2NvcmVfY29yZV9maWxlX3ApOiBMaWtld2lzZS4KCSogaXJpeC1jb3JlLmMgKGlyaXhfY29yZV9jb3JlX2ZpbGVfcCk6IExpa2V3aXNlLgoJKiBseW54LWNvcmUuYyAobHlueF9jb3JlX2ZpbGVfcCk6IExpa2V3aXNlLgoJKiBvc2YtY29yZS5jIChvc2ZfY29yZV9jb3JlX2ZpbGVfcCk6IExpa2V3aXNlLgoJKiByczYwMDAtY29yZS5jIChyczYwMDBjb2ZmX2NvcmVfcCk6IExpa2V3aXNlLgoJKiBzY281LWNvcmUuYyAoc2NvNV9jb3JlX2ZpbGVfcCk6IExpa2V3aXNlLgoKCSogZWxmMzItbWlwcy5jIChfYmZkX21pcHNfZWxmX2xvMTZfcmVsb2MpOiBTaW1wbGlmeSwgYW5kIHBlcmZvcm0KCXNpZ24gZXh0ZW5zaW9uIGFkanVzdG1lbnRzIHdpdGhvdXQgY29uZGl0aW9uYWxzLgoKMjAwMi0wMS0wNCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYtZWgtZnJhbWUuYyAoX2JmZF9lbGZfd3JpdGVfc2VjdGlvbl9laF9mcmFtZSk6IERvbid0IGNyYXNoIGlmCglDSUUgYXQgLmVoX2ZyYW1lIHN0YXJ0IGlzIHJlbW92ZWQgZHVlIHRvIG5vIEZERXMgcmVmZXJlbmNpbmcgaXQuCgoyMDAyLTAxLTA0ICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogY29uZmlnLmJmZCAoeDg2XzY0LSotbmV0YnNkKik6IE5ldyB0YXJnZXQuCgkqIGNvbmZpZ3VyZS5pbiAoeDg2XzY0LSotbmV0YnNkKik6IFNldCBDT1JFRklMRQoJdG8gbmV0YnNkLWNvcmUubG8uCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgoyMDAyLTAxLTAzICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogeGNvZmZsaW5rLmMgKF9iZmRfeGNvZmZfYmZkX2ZpbmFsX2xpbmspOiBVcGRhdGUgLnBhZCBzZWN0aW9uIG9yZGVyaW5nCglmb3IgcmVjZW50IGJmZF9tYWtlX3NlY3Rpb25fYW55d2F5IGNoYW5nZS4KCjIwMDItMDEtMDMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9maW5hbF9saW5rX3JlbG9jYXRlKTogSGFuZGxlCglSX0FSTV9USE1fUEMxMSByZWxvYy4KCjIwMDItMDEtMDIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmluIChMSU5HVUFTKTogQWRkIGphLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIHBvL2phLnBvOiBJbXBvcnQgZnJvbSB0cmFuc2xhdGlvbiBwcm9qZWN0J3Mgd2ViIHNpdGUuCgoyMDAyLTAxLTAyICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IFJlZm9ybWF0IGVycm9yCgltZXNzYWdlcyB0byBlYXNlIHRyYW5zbGF0aW9uIGludG8gb3RoZXIgbGFuZ3VhZ2VzLgoKRm9yIG9sZGVyIGNoYW5nZXMgc2VlIENoYW5nZUxvZy0wMDAxCgwKQ29weXJpZ2h0IChDKSAyMDAyLTIwMDMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCgpDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBmaWxlLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAphcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLgoKTG9jYWwgVmFyaWFibGVzOgptb2RlOiBjaGFuZ2UtbG9nCmxlZnQtbWFyZ2luOiA4CmZpbGwtY29sdW1uOiA3NAp2ZXJzaW9uLWNvbnRyb2w6IG5ldmVyCkVuZDoK