MjAwMS0wMS0yNiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9keW5hbWljX3N5bWJvbF9wKTogUmV0dXJuIGZhbHNlCglmb3Igbm9uLWRlZmF1bHQgdmlzaWJpbGl0eS4KCSogZWxmNjQtYWxwaGEuYyAoYWxwaGFfZWxmX2R5bmFtaWNfc3ltYm9sX3ApOiBMaWtld2lzZSwgYnV0CglkZWxldGUgdWdseSBtYWNybyBhbmQgcmVwbGFjZSB3aXRoIHByZXR0eSBmdW5jdGlvbi4KCjIwMDEtMDEtMjUgIE1hcmsgRWxicmVjaHQgIDxzbm93YmFsbDNAYmlnZm9vdC5jb20+CgoJKiBjb2ZmLWdvMzIuYzogVXBkYXRlIGNvcHlyaWdodC4KCSogY29mZi1zdGdvMzIuYzogTGlrZXdpc2UuCgkqIGNvZmYtZ28zMi5jIChDT0ZGX0xPTkdfRklMRU5BTUVTKTogRGVmaW5lLgoJKiBjb2ZmLXN0Z28zMi5jIChDT0ZGX0xPTkdfRklMRU5BTUVTKTogTGlrZXdpc2UuCgkqIGNvZmYtZ28zMi5jIChDT0ZGX1NFQ1RJT05fQUxJR05NRU5UX0VOVFJJRVMpOiBSZW1vdmUgLmJzcyBlbnRyeS4KCSogY29mZi1zdGdvMzIuYyAoQ09GRl9TRUNUSU9OX0FMSUdOTUVOVF9FTlRSSUVTKTogTGlrZXdpc2UuCgoyMDAxLTAxLTI1ICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIGJmZC1pbjIuaDogUmVidWlsZC4KCSogbGliYmZkLmg6IExpa2V3aXNlLgoKMjAwMS0wMS0yMyAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogYmZkLWluMi5oOiBSZWJ1aWxkLgoKMjAwMS0wMS0yMyAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogdm1zLW1pc2MuYyAoX2JmZF92bXNfbmV4dF9yZWNvcmQpOiBSZXR1cm4gLTEgaWYgUFJJVih2bXNfYnVmKQoJaXMgTlVMTCBvciBQUklWKHZtc19yZWMpIGlzIG91dHNpZGUgb2YgdGhlIGJ1ZmZlci4KCjIwMDEtMDEtMjMgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogY29mZjY0LXJzNjAwMC5jOiBGaXggZm9ybWF0dGluZy4KCSogY29mZi1hcm0uYzogTGlrZXdpc2UuCgkqIGNvZmZnZW4uYzogTGlrZXdpc2UuCgkqIGNvZmZsaW5rLmM6IExpa2V3aXNlLgoJKiBjb2ZmLW1jb3JlLmM6IExpa2V3aXNlLgoJKiBjb2ZmLW1pcHMuYzogTGlrZXdpc2UuCgkqIGNvZmYtcG1hYy5jOiBMaWtld2lzZS4KCSogY29mZi1wcGMuYzogTGlrZXdpc2UuCgkqIGNvZmYtcnM2MDAwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi5jOiBMaWtld2lzZS4KCSogZWxmMzItZnIzMC5jOiBMaWtld2lzZS4KCSogZWxmMzItaTM3MC5jOiBMaWtld2lzZS4KCSogZWxmMzItaTg2MC5jOiBMaWtld2lzZS4KCSogZWxmMzItbTMyci5jOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jOiBMaWtld2lzZS4KCSogZWxmMzItbWNvcmUuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jOiBMaWtld2lzZS4KCSogZWxmMzItc2guYzogTGlrZXdpc2UuCgkqIGVsZjMyLXY4NTAuYzogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1zcGFyYy5jOiBMaWtld2lzZS4KCSogZWxmbGluay5jOiBMaWtld2lzZS4KCSogZWxmbGluay5oOiBMaWtld2lzZS4KCSogZWxmLW0xMDIwMC5jOiBMaWtld2lzZS4KCSogZWxmLW0xMDMwMC5jOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jOiBMaWtld2lzZS4KCgkqIGFvdXR4Lmg6IEZpeCBmb3JtYXR0aW5nLgoJKiBiZmQuYzogTGlrZXdpc2UuCgkqIGJmZC1pbjIuaDogTGlrZXdpc2UuCgkqIGJmZC1pbi5oOiBMaWtld2lzZS4KCSogY3B1LWkzODYuYzogTGlrZXdpc2UuCgkqIGNwdS1tNjhoYzExLmM6IExpa2V3aXNlLgoJKiBkd2FyZjIuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jOiBMaWtld2lzZS4KCSogZm9ybWF0LmM6IExpa2V3aXNlLgoJKiBmcmVlYnNkLmg6IExpa2V3aXNlLgoJKiBoYXNoLmM6IExpa2V3aXNlLgoJKiBocDMwMGhwdXguYzogTGlrZXdpc2UuCgkqIGhwcGFic2QtY29yZS5jOiBMaWtld2lzZS4KCSogaHB1eC1jb3JlLmM6IExpa2V3aXNlLgoKMjAwMS0wMS0yMiAgQm8gVGhvcnNlbiAgPGJvQHN1c2UuZGU+CgoJKiBlbGY2NC14ODYtNjQuYzogQWRkZWQgUElDIHN1cHBvcnQgZm9yIFg4Ni02NC4KCShlbGY2NF94ODZfNjRfbGlua19oYXNoX25ld2Z1bmMpOiBGdW5jdGlvbiBhZGRlZC4KCShlbGY2NF94ODZfNjRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKGVsZjY0X3g4Nl82NF9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4KCShlbGY2NF94ODZfNjRfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkoZWxmNjRfeDg2XzY0X2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCShlbGY2NF94ODZfNjRfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgkoZWxmNjRfeDg2XzY0X3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKGVsZjY0X3g4Nl82NF9kaXNjYXJkX2NvcGllcyk6IExpa2V3aXNlLgoJKGVsZjY0X3g4Nl82NF9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCShlbGY2NF94ODZfNjRfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IEFkZCByZWxvY2F0aW9uIG9mIFBJQyBzZWN0aW9ucy4KCjIwMDEtMDEtMjEgIE1hY2llaiBXLiBSb3p5Y2tpICA8bWFjcm9AZHMyLnBnLmdkYS5wbD4KCgkqIE1ha2VmaWxlLmFtIChpbnN0YWxsLWRhdGEtbG9jYWwpOiBNYWtlIHVzZSBvZiAkKERFU1RESVIpLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDEtMDEtMjEgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogY29mZi1hMjlrLmM6IEZpeCBmb3JtYXR0aW5nLgoKMjAwMS0wMS0xOSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9jaGVja19yZWxvY3MpOiBSZXBvcnQgZmlsZXMgd2l0aCBiYWQKCXJlbG9jYXRpb24gc2VjdGlvbiBuYW1lcy4KCShlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogUmVwb3J0IGZpbGVzIHdpdGggYmFkIHJlbG9jYXRpb24KCXNlY3Rpb24gbmFtZXMgYW5kIHJldHVybiBmYWxzZS4KCjIwMDEtMDEtMTcgIEJvIFRob3JzZW4gIDxib0BzdXNlLmRlPgoKCSogdGFyZ2V0cy5jOiBBbHBoYWJldGl6ZSBsaXN0IG9mIHh2ZWNzLgoKMjAwMS0wMS0xNCAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGNvbmZpZy5iZmQ6IEFkZCBsaW51eCB0YXJnZXQgdmFyaWFudCBmb3IgZWxmeHgtaHBwYS4KCSogY29uZmlndXJlLmluOiBSZWNvZ25pemUgYmZkX2VsZjMyX2hwcGFfbGludXhfdmVjIGFuZAoJYmZkX2VsZjY0X2hwcGFfbGludXhfdmVjLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGVsZjY0LWhwcGEuYzogSW5jbHVkZSBlbGY2NC10YXJnZXQuaCBhZ2FpbiB0byBzdXBwb3J0IGxpbnV4Cgl0YXJnZXQgdmFyaWFudC4KCShlbGY2NF9ocHBhX3Bvc3RfcHJvY2Vzc19oZWFkZXJzKTogU2V0IEVMRk9TQUJJX0xJTlVYIGZvciBsaW51eC4KCSogZWxmMzItaHBwYS5jOiBJbmNsdWRlIGVsZjMyLXRhcmdldC5oIGFnYWluIHRvIHN1cHBvcnQgbGludXgKCXRhcmdldCB2YXJpYW50LgoJKGVsZjMyX2hwcGFfcG9zdF9wcm9jZXNzX2hlYWRlcnMpOiBOZXcgZnVuY3Rpb24uCgkoZWxmX2JhY2tlbmRfcG9zdF9wcm9jZXNzX2hlYWRlcnMpOiBEZWZpbmUuCgkqIHRhcmdldHMuYyAoYmZkX3RhcmdldF92ZWN0b3IpOiBBZGQgYmZkX2VsZjY0X2hwcGFfbGludXhfdmVjIGFuZAoJYmZkX2VsZjMyX2hwcGFfbGludXhfdmVjLgoKCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2xpbmtfaGFzaF90YWJsZSk6IEFkZCB0ZXh0X3NlZ21lbnRfYmFzZSwKCWFuZCBkYXRhX3NlZ21lbnRfYmFzZSBmaWVsZHMuCgkoZWxmMzJfaHBwYV9saW5rX2hhc2hfdGFibGVfY3JlYXRlICk6IEluaXQgdGhlbS4KCShlbGYzMl9ocHBhX2NoZWNrX3JlbG9jcyk6IFVwZGF0ZSBjb21tZW50cy4KCShocHBhX3JlY29yZF9zZWdtZW50X2FkZHIpOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogQ2FsbCBpdC4KCShmaW5hbF9saW5rX3JlbG9jYXRlKTogSGFuZGxlIFJfUEFSSVNDX1NFR1JFTDMyLgoJKGVsZjMyX2hwcGFfZmluYWxfbGluayk6IE5ldyBmdW5jdGlvbi4KCShiZmRfZWxmMzJfYmZkX2ZpbmFsX2xpbmspOiBEZWZpbmUgdG8gY2FsbCBpdC4KCShocHBhX3Vud2luZF9lbnRyeV9jb21wYXJlKTogTmV3IGZ1bmN0aW9uLgoJKiBjYWNoZS5jIChiZmRfb3Blbl9maWxlKTogQ3JlYXRlIGZpbGVzIGluIHdyaXRlK3JlYWQgbW9kZS4KCgkqIGVsZi1ocHBhLmggKGVsZl9ocHBhX2hvd3RvX3RhYmxlKTogU2V0IGJpdHNpemUgdmFsdWUgZm9yCglTRUdSRUwzMiBhbmQgbnVtZXJvdXMgb3RoZXIgcmVsb2NzLiAgQ2hhbmdlIGR1cGxpY2F0ZQoJUl9QQVJJU0NfTk9ORSByZWxvY3MgdG8gUl9QQVJJU0NfVU5JTVBMRU1FTlRFRC4KCgkqIG9wbmNscy5jIChiZmRfZmRvcGVucik6IEFkZCBwYXJlbnMgbGlrZSB0aGUgY29tbWVudCBzYXlzIGFyb3VuZAoJT19BQ0NNT0RFLgoKCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IERvbid0IGNyZWF0ZQoJLnBsdCBlbnRyaWVzIGZvciBEVF9JTklUIGFuZCBEVF9GSU5JLgoJKGVsZjMyX2hwcGFfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBSZW1vdmUgc3BlY2lhbCBoYW5kbGluZyBvZgoJRFRfSU5JVCBhbmQgRFRfRklOSS4KCgkqIGVsZjY0LWhwcGEuYyAoZWxmNjRfaHBwYV9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBVc2UgMTYtYml0CglvZmZzZXRzIGZvciBzdHViIC5wbHQgYWNjZXNzIGlmIHdpZGUgbW9kZS4gIENoZWNrIG9mZnNldCBpbiByYW5nZS4KCjIwMDEtMDEtMTMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1mcjMwLmMgKGZyMzBfZWxmX2hvd3RvX3RhYmxlKTogUmVtb3ZlIHNwdXJpb3VzIGJsYW5rCglsaW5lLgoKCSogY29mZmNvZGUuaCAoY29mZl9jYW5vbmljYWxpemVfcmVsb2MpOiBSZW1vdmUgc3B1cmlvdXMgYmxhbmsKCWxpbmUuCgoyMDAxLTAxLTEyICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogY29uZmlndXJlLmluIChbYmZkX2VsZjY0X3g4Nl82NF92ZWNdKTogU2V0IHRhcmdldDY0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAxLTAxLTExICBQZXRlciBUYXJnZXR0ICA8cGV0ZXIudGFyZ2V0dEBhcmNjb3Jlcy5jb20+CgoJKiBiZmQtaW4yLmggKGJmZF9hcmNoaXRlY3R1cmUpOiBBZGQgYmZkX21hY2hfYXJjXzUsCgliZmRfbWFjaF9hcmNfNiwgYmZkX21hY2hfYXJjXzcsIGJmZF9tYWNoX2FyY184IGZvciBBUkMgdmFyaWFudHMuCgkqIGNwdS1hcmMuYyAoYXJjaF9pbmZvX3N0cnVjdCk6IEFkZCBlbnRyaWVzIGZvciB2YXJpYW50cy4KCShiZmRfYXJjX2FyY2gpIFNldCBkZWZhdWx0IHRvIGJmZF9tYWNoX2FyY181LgoJKGFyY19nZXRfbWFjaCkgRG9uJ3QgYXNzdW1lIG1hY2hpbmUgbmFtZXMgcHJlZml4ZWQgYXJjLSBiZWZvcmUKCXRlc3RpbmcuCgkqIGVsZjMyLWFyYy5jIChhcmNfZWxmX29iamVjdF9wKTogU2V0IG1hY2hpbmUgbnVtYmVyIGJhc2VkIG9uIG5ldwoJc2VsZWN0aW9ucy4KCShhcmNfZWxmX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpIExpa2V3aXNlLgoJKEVMRl9NQUNISU5FX0NPREUpIFVzZSBFTV9BUkMuCgoyMDAxLTAxLTEwICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29mZi1hcm0uYyAoTE9DQUxfTEFCRUxfUFJFRklYKTogQ2hhbmdlIGRlZmluaXRpb24gdG8gIiIuCgoyMDAxLTAxLTA3ICBQaGlsaXAgQmx1bmRlbGwgIDxwaGlsYkBnbnUub3JnPgoKCSogUkVBRE1FOiBSZXBsYWNlIGBidWctZ251LXV0aWxzQGdudS5vcmcnIHdpdGgKCWBidWctYmludXRpbHNAZ251Lm9yZycuCgoyMDAxLTAxLTA0ICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIHNvbS5jOiBGaXggZm9ybWF0dGluZy4KCjIwMDEtMDEtMDMgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogZWNvZmZzd2FwLmg6IEZpeCBmb3JtYXR0aW5nLgoJKiBlbGYtYmZkLmg6IExpa2V3aXNlLgoJKiBlbGZhcm0tbmFiaS5jOiBMaWtld2lzZS4KCSogZWxmYXJtLW9hYmkuYzogTGlrZXdpc2UuCgkqIGVsZmNvZGUuaDogTGlrZXdpc2UuCgkqIGVsZmNvcmUuaDogTGlrZXdpc2UuCgkqIGVsZmxpbmsuYzogTGlrZXdpc2UuCgkqIGVsZmxpbmsuaDogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYzogTGlrZXdpc2UuCgkqIGVsZnh4LXRhcmdldC5oOiBMaWtld2lzZS4KCSogbGliYmZkLmM6IExpa2V3aXNlCgkqIGxpbmtlci5jOiBMaWtld2lzZS4KCSogbHlueC1jb3JlLmM6IExpa2V3aXNlLgoKMjAwMS0wMS0wMiAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBwYzUzMi1tYWNoLmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBwZS1hcm0uYzogTGlrZXdpc2UuCgkqIHBlLWkzODYuYzogTGlrZXdpc2UuCgkqIHBlLW1pcHMuYzogTGlrZXdpc2UuCgkqIHBlLXBwYy5jOiBMaWtld2lzZS4KCSogcGUtc2guYzogTGlrZXdpc2UuCgkqIHBlaS1taXBzLmM6IExpa2V3aXNlLgoJKiBwZWktc2guYzogTGlrZXdpc2UuCgkqIHBlaWNvZGUuaDogTGlrZXdpc2UuCgkqIHBwY2Jvb3QuYzogTGlrZXdpc2UuCgkqIHB0cmFjZS1jb3JlLmM6IExpa2V3aXNlLgoKMjAwMS0wMS0wMSAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiByZWxvYy5jOiBGaXggZm9ybWF0dGluZy4KCSogcmlzY2l4LmM6IExpa2V3aXNlLgoJKiByczYwMDAtY29yZS5jOiBMaWtld2lzZS4KCSogeGNvZmYtdGFyZ2V0Lmg6IExpa2V3aXNlLgoKMjAwMC0xMi0yOSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogZWxmY29kZS5oIChlbGZfb2JqZWN0X3ApOiBBbHNvIHJlc3RvcmUgdGhlIGJmZCBtYWNoIGZpZWxkIG9uCgllcnJvciwgYnkgY2FsbGluZyBiZmRfZGVmYXVsdF9zZXRfYXJjaF9tYWNoIHdpdGggaW5jb21pbmcKCXZhbHVlcy4KCjIwMDAtMTItMjYgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogdmF4bmV0YnNkLmM6IEZpeCBmb3JtYXR0aW5nLgoJKiB2ZXJzYWRvcy5jOiBMaWtld2lzZS4KCSogdm1zLWdzZC5jOiBMaWtld2lzZS4KCSogdm1zLWhkci5jOiBMaWtld2lzZS4KCSogdm1zLW1pc2MuYzogTGlrZXdpc2UuCgoyMDAwLTEyLTI1ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGFyY2hpdmUuYyAoY29mZl93cml0ZV9hcm1hcCk6IERvbid0IHdyaXRlIG1vcmUgdGhhbiBzeW1ib2xfY291bnQKCWBhcmNoaXZlX21lbWJlcl9maWxlX3B0cidzLgoKMjAwMC0xMi0yNSAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiB2bXMtdGlyLmM6IEZpeCBmb3JtYXR0aW5nLgoKMjAwMC0xMi0yMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiB2bXMuYzogRml4IGZvcm1hdHRpbmcuCgkqIHZtcy5oOiBMaWtld2lzZS4KCjIwMDAtMTItMjEgIFNhbnRlcmkgUGFhdm9sYWluZW4gPHNhbnR0dUBzc2guY29tPgoKCSogdm1zLWhkci5jOiBJbmNsdWRlIGFsbG9jYS5oIGlmIEhBVkVfQUxMT0NBX0ggaXMgZGVmaW5lZC4KCgkqIHBlaWNvZGUuaCAocGVfSUxGX29iamVjdF9wKTogQWRkIGNvbnN0IHRvIGltcG9ydCBvZiBUQVJHRVRfTElUVExFX1NZTS4KCgkqIGVsZjMyLW0zMnIuYyAobTMycl9lbGZfZ2VuZXJpY19yZWxvYyk6IEFkZCBjYXN0IHRvIGF2b2lkICh2b2lkICopCglhcml0aG1ldGljLgoKCSogZWxmMzItZnIzMC5jOiBBZGQgY2FzdHMgdG8gYXZvaWQgKHZvaWQgKikgYXJpdGhtZXRpYy4KCgkqIGNvZmZjb2RlLmggKHN0eXBfdG9fc2VjX2ZsYWdzKTogQWRkIGVtcHR5IHN0YXRlbWVudCBhZnRlciBsYWJlbC4KCjIwMDAtMTItMjEgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGxpYmJmZC5jIChiZmRfZ2V0X2JpdHMpOiBBZGRlZAoJKGJmZF9wdXRfYml0cyk6IExpa2V3aXNlCgkqIGJmZC1pbi5oOiBEZWNsYXJlZCB0aGUgYWJvdmUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZWQuCgoyMDAwLTEyLTIwICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIHRhcmdldHMuYzogRml4IGZvcm1hdHRpbmcuCgkqIHRla2hleC5jOiBMaWtld2lzZS4KCSogdHJhZC1jb3JlLmM6IExpa2V3aXNlLgoKMjAwMC0xMi0xOSAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBzY281LWNvcmUuYzogRml4IGZvcm1hdHRpbmcuCgkqIHNlY3Rpb24uYzogTGlrZXdpc2UuCgkqIHNwYXJjbGludXguYzogTGlrZXdpc2UuCgkqIHNwYXJjbHlueC5jOiBMaWtld2lzZS4KCSogc3BhcmNuZXRic2QuYzogTGlrZXdpc2UuCgkqIHNyZWMuYzogTGlrZXdpc2UuCgkqIHN0YWJzLmM6IExpa2V3aXNlLgoJKiBzdGFiLXN5bXMuYzogTGlrZXdpc2UuCgkqIHN1bm9zLmM6IExpa2V3aXNlLgoJKiBzeW1zLmM6IExpa2V3aXNlLgoJKiBzeXNkZXAuaDogTGlrZXdpc2UuCgoyMDAwLTEyLTE4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29mZi1hcm0uYyAoRVhUUkFfU19GTEFHUyk6IE9ubHkgZGVmaW5lIGlmIG5vdCBhbHJlYWR5CglkZWZpbmVkLgoJKiBlcG9jLXBlLWFybS5jIChFWFRSQV9TX0ZMQUdTKTogRGVmaW5lLgoJKiBlcG9jLXBlaS1hcm0uYyAoRVhUUkFfU19GTEFHUyk6IERlZmluZS4KCjIwMDAtMTItMTggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiB2bXMtbWlzYy5jIChfYmZkX3Ztc19nZXRfcmVjb3JkKTogQWRkIGRlZmF1bHQgY2FzZSB0bwoJZmlsZV9mb3JtYXQgc3dpdGNoLgoKMjAwMC0xMi0xNSAgTWlsb3NsYXYgVHJtYWMgPG1pdHJAdm9sbnkuY3o+CgoJKiBlbGZjb3JlLmggKGVsZl9jb3JlX2ZpbGVfcCk6IE1vdmUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtCgloZWFkZXJzIGJlZm9yZSBhdHRlbXB0aW5nIHRvIHJlYWQgdGhlbS4KCjIwMDAtMTItMTQgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogcGVpZ2VuLmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBzb20uYzogTGlrZXdpc2UuCgkqIHNvbS5oOiBMaWtld2lzZS4KCjIwMDAtMTItMTMgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogcGVpZ2VuLmM6IEZpeCBmb3JtYXR0aW5nLgoKMjAwMC0xMi0xMiAgSmltIFdpbHNvbiAgPHdpbHNvbkByZWRoYXQuY29tPgoKCSogIGVsZnh4LWlhNjQuYyAoZ2V0X2R5bl9zeW1faW5mbyk6IENhc3QgJXAgYXJndW1lbnQgdG8gdm9pZCAqLgoKMjAwMC0xMi0wOCAgTWFyayBTYWx0ZXIgIDxtc2FsdGVyQHJlZGhhdC5jb20+CgoJKiBiaW5hcnkuYyAoYmluYXJ5X3NldF9zZWN0aW9uX2NvbnRlbnRzKTogSWdub3JlIHNlY3Rpb25zCgl3aXRoIHplcm8gc2l6ZS4KCjIwMDAtMTItMTIgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogbTY4a2xpbnV4LmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBtNjhrbmV0YnNkLmM6IExpa2V3aXNlLgoJKiBtaXBzYnNkLmM6IExpa2V3aXNlLgoJKiBuZXRic2QtY29yZS5jOiBMaWtld2lzZS4KCSogbmV0YnNkLmg6IExpa2V3aXNlLgoJKiBuZXdzb3MzLmM6IExpa2V3aXNlLgoJKiBubG0zMi1hbHBoYS5jOiBMaWtld2lzZS4KCSogbmxtMzItaTM4Ni5jOiBMaWtld2lzZS4KCSogbmxtMzItcHBjLmM6IExpa2V3aXNlLgoJKiBubG0zMi1zcGFyYy5jOiBMaWtld2lzZS4KCSogbmxtY29kZS5oOiBMaWtld2lzZS4KCSogbmxtc3dhcC5oOiBMaWtld2lzZS4KCSogbmxtLXRhcmdldC5oOiBMaWtld2lzZS4KCSogbnMzMmtuZXRic2QuYzogTGlrZXdpc2UuCgoyMDAwLTEyLTEwICBGcmVkIEZpc2ggIDxmbmZAYmUuY29tPgoKCSogZWxmbGluay5oIChlbGZfbGlua19vdXRwdXRfZXh0c3ltKTogRG9uJ3QgY29tcGxhaW4gYWJvdXQgdW5kZWZpbmVkCglzeW1ib2xzIGluIHNoYXJlZCBvYmplY3RzIGlmIGFsbG93X3NobGliX3VuZGVmaW5lZCBpcyB0cnVlLgoKMjAwMC0xMi0xMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNwdS1zaC5jOiBGaXggZm9ybWF0dG5nLgoJKiBlbGYuYzogRml4IGZvcm1hdHRuZy4KCSogZWxmMzItbWlwcy5jOiBGaXggZm9ybWF0dG5nLgoJKiBlbGYzMi1zaC5jOiBGaXggZm9ybWF0dG5nLgoJKiBlbGY2NC1hbHBoYS5jOiBGaXggZm9ybWF0dG5nLgoKMjAwMC0xMi0wOSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLW1pcHMuYyAoX2JmZF9taXBzX2VsZl9maW5kX25lYXJlc3RfbGluZSk6IFBhc3MKCWR3YXJmMl9maW5kX2xpbmVfaW5mbyBhcyBsYXN0IHBhcmFtZXRlciB0byBpbnZvY2F0aW9uIG9mCglfYmZkX2R3YXJmMl9maW5kX25lYXJlc3RfbGluZS4KCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9maW5kX25lYXJlc3RfbGluZSk6IFBhc3MKCWR3YXJmMl9maW5kX2xpbmVfaW5mbyBhcyBsYXN0IHBhcmFtZXRlciB0byBpbnZvY2F0aW9uIG9mCglfYmZkX2R3YXJmMl9maW5kX25lYXJlc3RfbGluZS4KCjIwMDAtMTItMDggIE1hcmsgRWxicmVjaHQgIDxzbm93YmFsbDNAYmlnZm9vdC5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQkZEMzJfQkFDS0VORFMpOiBNb3ZlIGR3YXJmMi5sbyBmcm9tIGhlcmUuLi4KCShCRkRfTElCUyk6IC4uLnRvIGhlcmUuCgkoQkZEMzJfQkFDS0VORFNfQ0ZJTEVTKTogTW92ZSBkd2FyZjIuYyBmcm9tIGhlcmUuLi4KCShCRkRfTElCU19DRklMRVMpOiAuLi50byBoZXJlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLmluOiBSZW1vdmUgZHdhcmYubG8gZnJvbSB0aGUgZWxmIHNoZWxsIHZhcmlhYmxlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGxpYmNvZmYtaW4uaCAoY29mZl90ZGF0YSk6IEFkZCBwb2ludGVyIGR3YXJmMl9maW5kX2xpbmVfaW5mby4KCSogbGliY29mZi5oOiBSZWdlbmVyYXRlLgoJKiBjb2ZmZ2VuLmMgKGNvZmZfZmluZF9uZWFyZXN0X2xpbmUpOiBDYWxsCglfYmZkX2R3YXJmMl9maW5kX25lYXJlc3RfbGluZS4KCSogZHdhcmYyLmMgKF9iZmRfZHdhcmYyX2ZpbmRfbmVhcmVzdF9saW5lKTogQWRkIHBhcmFtZXRlci4gVXBkYXRlCglhY2NvcmRpbmdseS4KCShyZWFkX2FiYnJldnMpOiBMaWtld2lzZQoJKGRlY29kZV9saW5lX2luZm8pOiBMaWtld2lzZS4KCShwYXJzZV9jb21wX3VuaXQpOiBMaWtld2lzZS4KCShjb21wX3VuaXRfZmluZF9uZWFyZXN0X2xpbmUpOiBMaWtld2lzZS4KCSogbGliYmZkLWluLmggKF9iZmRfZHdhcmYyX2ZpbmRfbmVhcmVzdF9saW5lKTogVXBkYXRlIHByb3RvdHlwZS4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgkqIGVsZi5jIChfYmZkX2VsZl9maW5kX25lYXJlc3RfbGluZSk6IFVwZGF0ZSBjYWxsLgoJKiBlbGYtYmZkLmggKGVsZl9vYmpfdGRhdGEpOiBDaGFuZ2UgZHdhcmYyX2ZpbmRfbGluZV9pbmZvIHRvIHR5cGUgUFRSLgoJKiBkd2FyZjIuYyAoY29uY2F0X2ZpbGVuYW1lKTogVXNlIElTX0FCU09MVVRFX1BBVEguCgkqIGNvZmZjb2RlLmggKFNUWVBfWENPRkZfREVCVUcsIFNUWVBfREVCVUdfSU5GTyk6IE5ldyBtYWNyb3MuCgkoc2VjX3RvX3N0eXBfZmxhZ3MpOiBVc2UgdGhlbS4gSGFuZGxlIERXQVJGMiBzZWN0aW9ucy4KCShzdHlwX3RvX3NlY19mbGFncyk6IEhhbmRsZSBEV0FSRjIgc2VjdGlvbnMuCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fZmluZF9uZWFyZXN0X2xpbmUpOiBBZGQgcGFyYW1ldGVyIHRvIGNhbGwKCXRvIF9iZmRfZmluZF9uZWFyZXN0X2xpbmUuCgkqIGVsZjMyLW1pcHMuYyAoX2JmZF9taXBzX2VsZl9maW5kX25lYXJlc3RfbGluZSk6IEFkZCBwYXJhbWV0ZXIgdG8KCWNhbGwgdG8gX2JmZF9maW5kX25lYXJlc3RfbGluZS4KCjIwMDAtMTItMDggIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogY29mZmdlbi5jOiBGaXggZm9ybWF0dGluZy4KCSogZWxmLW0xMDMwMC5jOiBMaWtld2lzZS4KCSogZWxmMzItaTM4Ni5jOiBMaWtld2lzZS4KCSogZWxmMzItaTk2MC5jOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jOiBMaWtld2lzZS4KCSogZWxmMzItbWNvcmUuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jOiBMaWtld2lzZS4KCSogZWxmMzItc2guYzogTGlrZXdpc2UuCgkqIGVsZjMyLXNwYXJjLmM6IExpa2V3aXNlLgoJKiBlbGYzMi12ODUwLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jOiBMaWtld2lzZS4KCSogZWxmNjQtaHBwYS5jOiBMaWtld2lzZS4KCSogZWxmNjQtbWlwcy5jOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYzogTGlrZXdpc2UuCgoyMDAwLTEyLTA3ICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIGVsZjMyLXBwYy5jOiBGaXggZm9ybWF0dGluZy4KCSogZWxmNjQteDg2LTY0LmM6IExpa2V3aXNlLgoKMjAwMC0xMi0wNiAgVWxmIENhcmxzc29uICA8dWxmY0BlbmdyLnNnaS5jb20+CgoJRnJvbSAgUmFsZiBCYWVjaGxlICA8cmFsZkBnbnUub3JnPgoKCSogZWxmMzItbWlwcy5jIChlbGYzMl9taXBzX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBBbHdheXMgcGVybWl0CglCRkRzIGNvbnRhaW5pbmcgbm8gc2VjdGlvbnMgb3IgZW1wdHkgLnRleHQsIC5kYXRhIG9yIC5ic3Mgc2VjdGlvbnMKCXRvIGJlIG1lcmdlZCwgcmVnYXJkbGVzcyBvZiB0aGVpciBmbGFncy4KCjIwMDAtMTItMDYgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogZWxmMzItbTMyci5jOiBGaXggZm9ybWF0dGluZy4KCSogZWxmMzItbTY4aGMxMS5jOiBMaWtld2lzZS4KCSogZWxmMzItbTY4aGMxMi5jOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jOiBMaWtld2lzZS4KCSogZWxmMzItbWNvcmUuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXBqLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYzogTGlrZXdpc2UuCgoyMDAwLTEyLTA1ICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIGVsZjMyLWZyMzAuYzogRml4IGZvcm1hdHRpbmcuCgkqIGVsZjMyLWhwcGEuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWkzNzAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWkzODYuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWk4NjAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWk5NjAuYzogTGlrZXdpc2UuCgoyMDAwLTEyLTAzICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIGVsZjMyLWFybS5oOiBGaXggZm9ybWF0dGluZy4KCSogZWxmMzItYXZyLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1jcmlzLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1kMTB2LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1kMzB2LmM6IExpa2V3aXNlLgoJKiBlbGYtaHBwYS5oOiBMaWtld2lzZS4KCSogZWxmLW0xMDIwMC5jOiBMaWtld2lzZS4KCSogZWxmLW0xMDMwMC5jOiBMaWtld2lzZS4KCjIwMDAtMTItMDEgIENocmlzIERlbWV0cmlvdSAgPGNnZEBzaWJ5dGUuY29tPgoKCSogYW91dHguaCAoTkFNRShhb3V0LG1hY2hpbmVfdHlwZSkpOiBBZGQgYmZkX21hY2hfbWlwczMyIGFuZAoJYmZkX21hY2hfbWlwczMyXzRrLiAgVXBkYXRlIEZJWE1FIGNvbW1lbnQuCgkqIGFyY2h1cmVzLmMgKGJmZF9tYWNoX21pcHMzMik6IE5ldyBjb25zdGFudC4KCShiZmRfbWFjaF9taXBzNEssIGJmZF9tYWNoX21pcHMzMl80aykgUmVuYW1lIHRoZSBmb3JtZXIgdG8KCXRoZSBsYXR0ZXIsIHJlbnVtYmVyIGl0LgoJKiBiZmQtaW4yLmggKGJmZF9tYWNoX21pcHMzMik6IE5ldyBjb25zdGFudC4KCShiZmRfbWFjaF9taXBzNEssIGJmZF9tYWNoX21pcHMzMl80aykgUmVuYW1lIHRoZSBmb3JtZXIgdG8KCXRoZSBsYXR0ZXIsIHJlbnVtYmVyIGl0LgoJKiBjcHUtbWlwcy5jIChJX21pcHMzMik6IE5ldyBjb25zdGFudC4KCShJX21pcHM0SywgSV9taXBzMzJfNGspOiBSZW5hbWUgdGhlIGZvcm1lciB0byB0aGUgbGF0dGVyLgoJKGFyY2hfaW5mb19zdHJ1Y3QpOiBBZGQgYmZkX21hY2hfbWlwczMyIGVudHJ5LCByZXBsYWNlCgliZmRfbWFjaF9taXBzNEsgZW50cnkgd2l0aCBiZmRfbWFjaF9taXBzMzJfNGsgZW50cnkuCgkqIGVsZjMyLW1pcHMuYyAoZWxmX21pcHNfaXNhKTogQWRkIEVfTUlQU19BUkNIXzMyIGNhc2UuCgkoZWxmX21pcHNfbWFjaCk6IExpa2V3aXNlLiAgQWxzbywgcmVwbGFjZSBFX01JUFNfTUFDSF9NSVBTMzIKCXdpdGggRV9NSVBTX01BQ0hfTUlQUzMyXzRLLgoJKF9iZmRfbWlwc19lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IFJlcGxhY2UKCWJmZF9tYWNoX21pcHM0SyB3aXRoIGJmZF9tYWNoX21pcHMzMl80ayBjYXNlLCBhZGQKCWJmZF9tYWNoX21pcHMzMiBjYXNlLgoJKF9iZmRfbWlwc19lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IEdlbmVyYWxpemUgSVNBIG1peGluZwoJY29tcGFyaXNvbiB3aXRoIHN1cHBvcnQgZm9yIE1JUFMzMi4KCShfYmZkX21pcHNfZWxmX3ByaW50X3ByaXZhdGVfYmZkX2RhdGEpOiBQcmludCBJU0EgbmFtZSBmb3IKCU1JUFMzMi4KCgkqIGFvdXR4LmggKE5BTUUoYW91dCxtYWNoaW5lX3R5cGUpKTogQWRkIGNhc2VzIGZvcgoJYmZkX21hY2hfbWlwczUgYW5kIGJmZF9tYWNoX21pcHM2NC4KCSogYXJjaHVyZXMuYyAoYmZkX21hY2hfbWlwczUsIGJmZF9tYWNoX21pcHM2NCk6IE5ldyBjb25zdGFudHMuCgkqIGJmZC1pbjIuaCAoYmZkX21hY2hfbWlwczUsIGJmZF9tYWNoX21pcHM2NCk6IExpa2V3aXNlLgoJKiBjcHVfbWlwcy5jIChJX21pcHM1LCBJX21pcHM2NCk6IE5ldyBkZWZpbml0aW9ucy4KCShhcmNoX2luZm9fc3RydWN0KTogQWRkIGVudHJpZXMgZm9yIGJmZF9tYWNoX21pcHM1IGFuZAoJYmZkX21hY2hfbWlwczY0LgoJKiBlbGYzMi1taXBzLmMgKGVsZl9taXBzX2lzYSwgZWxmX21pcHNfbWFjaCwKCV9iZmRfbWlwc19lbGZfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IEFkZCBjYXNlcyBmb3IKCUVfTUlQU19BUkNIXzUgYW5kIEVfTUlQU19BUkNIXzY0LgoJKF9iZmRfbWlwc19lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IEFkZCBjYXNlcyBmb3IKCWJmZF9tYWNoX21pcHM1IGFuZCBiZmRfbWFjaF9taXBzNjQuCgoJKiBiZmQvYW91dHguaCAoTkFNRShhb3V0LG1hY2hpbmVfdHlwZSkpOiBBZGQgYQoJYmZkX21hY2hfbWlwc19zYjEgY2FzZS4KCSogYmZkL2FyY2h1cmVzLmMgKGJmZF9tYWNoX21pcHNfc2IxKTogTmV3IGNvbnN0YW50LgoJKiBiZmQvYmZkLWluMi5oIChiZmRfbWFjaF9taXBzX3NiMSk6IE5ldyBjb25zdGFudC4KCSogYmZkL2NwdS1taXBzLmMgKElfc2IxKTogTmV3IGNvbnN0YW50LgoJKGFyY2hfaW5mb19zdHJ1Y3QpOiBBZGQgZW50cnkgZm9yIGJmZF9tYWNoX21pcHNfc2IxLgoJKiBiZmQvZWxmMzItbWlwcy5jIChlbGZfbWlwc19tYWNoKTogQWRkIGNhc2UgZm9yCglFX01JUFNfTUFDSF9TQjEuCgkoX2JmZF9taXBzX2VsZl9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogQWRkIGNhc2UgZm9yCgliZmRfbWFjaF9taXBzX3NiMS4KCjIwMDAtMTItMDEgIEpvZWwgU2hlcnJpbGwgPGpvZWxAT0FSY29ycC5jb20+CgoJKiBjb25maWcuYmZkIChhcm0tKi1ydGVtcyosIGEyOWstKnJ0ZW1zKik6IE5ldyB0YXJnZXRzLgoJKHNwYXJjKi0qLXJ0ZW1zZWxmKiwgc3BhcmMqLSotcnRlbXNhb3V0Kik6IE5ldyB0YXJnZXRzLgoJKHNwYXJjKi0qLXJ0ZW1zKik6IFN3aXRjaGVkIGZyb20gYS5vdXQgdG8gRUxGLgoKMjAwMC0xMS0zMCAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogTWFrZWZpbGUuYW0gKEJGRDY0X0JBQ0tFTkRTKTogQWRkIGVsZjY0LXg4Ni02NC5sbwoJQkZENjRfQkFDS0VORFNfQ0ZJTEVTKTogQWRkIGVsZjY0LXg4Ni02NC5jCgkoZWxmNjQteDg2LTY0LmxvKTogQWRkIGRlcGVuZGVuY2llcy4KCSogYXJjaHVyZXMuYyAoREVTQ1JJUFRJT04pOiBBZGQgYmZkX21hY2hfeDg2XzY0LAoJYmZkX21hY2hfeDg2XzY0X2ludGVsX3N5bnRheC4KCSogZWxmLmMgKHByZXBfaGVhZGVycyk6IFVzZSBFTV94ODZfNjQgZm9yIDY0Yml0IG91dHB1dC4KCSogY29uZmlnLmJmZCAoeDg2XzY0KTogQWRkLgoJKiBjb25maWd1cmUuaW46IEFkZCBzdXBwb3J0IGZvciBiZmRfZWxmNjRfeDg2XzY0X3ZlYy4KCSogY3B1LWkzODYuYyAoYmZkX3g4Nl82NF9hcmNoX2ludGVsX3N5bnRheCwgYmZkX3g4Nl82NF9hcmNoKTogQWRkLgoJKGJmZF9pMzg2X2FyY2gsIGk4MDg2X2FyKTogTGluayBpbi4KCSogZWxmNjQteDg2LTY0LmM6IE5ldyBmaWxlLgoJKiByZWxvYy5jIChFTlVNRE9DKTogQWRkIEJGRF9SRUxPQ19YODZfNjQqLgoJKiB0YXJnZXRzLmMgKGJmZF9lbGY2NF94ODZfNjRfdmVjKTogQWRkLgoJKGJmZF90YXJnZXRfdmVjdCk6IEFkZCBiZmRfZWxmNjRfeDg2XzY0X3ZlYy4KCjIwMDAtMTEtMzAgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogeGNvZmZsaW5rLmM6IEZpeCBmb3JtYXR0aW5nLgoKMjAwMC0xMS0yOCAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBhb3V0eC5oOiBGaXggZm9ybWF0dGluZy4KCSogYmZkLWluLmg6IExpa2V3aXNlLgoJKiBiZmQtaW4yLmg6IExpa2V3aXNlLgoJKiBjYWNoZS5jOiBMaWtld2lzZS4KCSogY2lzY28tY29yZS5jOiBMaWtld2lzZS4KCSogY29mZjY0LXJzNjAwMC5jOiBMaWtld2lzZS4KCSogY29mZmNvZGUuaDogTGlrZXdpc2UuCgkqIGNvZmZzd2FwLmg6IExpa2V3aXNlLgoJKiBjb3JlZmlsZS5jOiBMaWtld2lzZS4KCSogZWxmMzItbWlwcy5jOiBMaWtld2lzZS4KCjIwMDAtMTEtMjcgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogYW91dC1hZG9iZS5jOiBGaXggZm9ybWF0dGluZy4KCSogY29mZjY0LXJzNjAwMC5jOiBMaWtld2lzZS4KCSogY29mZmdlbi5jOiBMaWtld2lzZS4KCSogY29mZmxpbmsuYzogTGlrZXdpc2UuCgoyMDAwLTExLTI3ICBQaGlsaXAgQmx1bmRlbGwgIDxwYkBmdXR1cmV0di5jb20+CgoJKiBsaWJjb2ZmLWluLmggKGNvZmZfdGRhdGEpOiBBZGQgYHN0cmluZ3Nfd3JpdHRlbicgZmxhZy4KCShvYmpfY29mZl9zdHJpbmdzX3dyaXR0ZW4pOiBOZXcgYWNjZXNzb3IgbWFjcm8gZm9yIGFib3ZlLgoJKiBsaWJjb2ZmLmg6IFJlZ2VuZXJhdGUuCgkqIGNvZmZsaW5rLmMgKF9iZmRfY29mZl9maW5hbF9saW5rKTogU2F5IHRoYXQgd2Ugd3JvdGUgdGhlCglzdHJpbmdzLgoJKiBjb2ZmY29kZS5oIChjb2ZmX3dyaXRlX29iamVjdF9jb250ZW50cyk6IE5vIG5lZWQgdG8gd3JpdGUgb3V0Cgl0aGUgc3RyaW5nIHRhYmxlIGlmIGl0J3MgYWxyZWFkeSBiZWVuIGRvbmUuCgoyMDAwLTExLTIyICBQaGlsaXAgQmx1bmRlbGwgIDxwYkBmdXR1cmV0di5jb20+CgoJKiBjb2ZmbGluay5jIChfYmZkX2NvZmZfZ2VuZXJpY19yZWxvY2F0ZV9zZWN0aW9uKTogRG9uJ3Qgb2JqZWN0IHRvCgl3ZWFrIHVuZGVmaW5lZCBzeW1ib2xzLgoKMjAwMC0xMS0yNCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGFyY2h1cmVzLmMgKGJmZF9tYWNoX2FybV81VEUpOiBEZWZpbmUuCgkoYmZkX21hY2hfYXJtK1hTY2FsZSk6IERlZmluZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKCSogY29mZi1hcm0uYyAoY29mZl9hcm1fcmVsb2NfdHlwZV9sb29rdXApOiBBY2NlcHQKCUJGRF9SRUxPQ19BUk1fUENSRUxfQkxYLgoKCSogY29mZmNvZGUuaCAoY29mZl9zZXRfZmxhZ3MpOiBTZXQgZmxhZ3MgZm9yIDV0LCA1dGUgYW5kCglYU2NhbGUgbWFjaGluZSBudW1iZXJzLgoKCSogY29uZmlnLmJmZCAoeHNjYWxlLWVsZik6IEFkZCB0YXJnZXQuCgkoeHNjYWxlLWNvZmYpOiBBZGQgdGFyZ2V0LgoKCSogY3B1LWFybS5jOiBBZGQgeHNjYWxlIG1hY2hpbmUgbmFtZS4KCUFkZCB2NXQsIHY1dGUgYW5kIFhTY2FsZSBtYWNoaW5lIG51bWJlcnMuCgoyMDAwLTExLTIzICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIGFpeDM4Ni1jb3JlLmM6IEZpeCBmb3JtYXR0aW5nLgoKMjAwMC0xMS0yMiAgSmltIFdpbHNvbiAgPHdpbHNvbkByZWRoYXQuY29tPgoKCSogY29mZi1pYTY0LmMgKGhvd3RvX3RhYmxlKTogVXNlIEVNUFRZX0hPV1RPLgoJKGluX3JlbG9jX3ApOiBBZGQgQVRUUklCVVRFX1VOVVNFRCB0byB1bnVzZWQgcGFyYW1ldGVycy4KCSogY3B1LWlhNjQtb3BjLmMgKGluc19yc3ZkLCBleHRfcnN2ZCwgaW5zX2NvbnN0LCBleHRfY29uc3QpOiBMaWtld2lzZS4KCShpbnNfaW1tc19zY2FsZWQpOiBJbml0aWFsaXplIHNpZ25fYml0IGF0IGZ1bmN0aW9uIGVudHJ5LgoJKGVsZjY0X2lhNjRfb3BlcmFuZHMpOiBBZGQgbWlzc2luZyBpbml0aWFsaXplcnMuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxvYywgZWxmTk5faWE2NF9yZWxvY190eXBlX2xvb2t1cCwKCWVsZk5OX2lhNjRfaW5mb190b19ob3d0bywgZWxmTk5faWE2NF9mYWtlX3NlY3Rpb25zLAoJZWxmTk5faWE2NF9hZGRfc3ltYm9sX2hvb2ssIGVsZk5OX2lhNjRfaXNfbG9jYWxfbGFiZWxfbmFtZSwKCWVsZk5OX2lhNjRfbG9jYWxfaGFzaF90YWJsZV9pbml0LCBnZXRfZnB0ciwgZ2V0X3BsdG9mZiwKCWVsZk5OX2lhNjRfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogQWRkIEFUVFJJQlVURV9VTlVTRUQgZm9yIHVudXNlZAoJcGFyYW1ldGVycy4KCShlbGZOTl9pYTY0X2luZm9fdG9faG93dG8pOiBJbml0aWFsaXplIGZyZWVfcmVsb2NzLCBmcmVlX2NvbnRlbnRzLAoJYW5kIGZyZWVfZXh0c3ltcyBhdCBmdW5jdGlvbiBlbnRyeS4KCShlbGZOTl9hZGRfc3ltYm9sX2hvb2spOiBBZGQgdW5zaWduZWQgY2FzdCB0byBiZmRfZ2V0X2dwX3NpemUgcmVzdWx0LgoJKGVsZk5OX2lhNjRfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBEZWxldGUgdW51c2VkIGxvY2FsIGguCgkoZ2V0X2dvdCk6IERlbGV0ZSB1bnVzZWQgbG9jYWwgc3JlbC4KCShlbGZOTl9pYTY0X2NoZWNrX3JlbG9jcyk6IEluaXRpYWxpemUgZHlucmVsX3R5cGUgd2hlbiBkZWNsYXJlZC4KCShlbGZOTl9pYTY0X3JlbG9jYXRlX3NlY3Rpb24pOiBEZWxldGUgdW51c2VkIGxvY2FsIGR5bmluZHguCgoyMDAwLTExLTIxICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIGNvZmYtYTI5ay5jOiBGaXggZm9ybWF0dGluZy4KCSogY29mZi1oODUwMC5jOiBMaWtld2lzZS4KCSogY29mZi1pOTYwLmM6IExpa2V3aXNlLgoJKiBjb2ZmLXBwYy5jOiBMaWtld2lzZS4KCSogY29mZi1yczYwMDAuYzogTGlrZXdpc2UuCgkqIGNvZmYtc3RnbzMyLmM6IExpa2V3aXNlLgoJKiBjb2ZmLXRpYzU0eC5jOiBMaWtld2lzZS4KCSogY29mZi13NjUuYzogTGlrZXdpc2UuCgkqIGNwdS1oODUwMC5jOiBMaWtld2lzZS4KCSogY3B1LWhwcGEuYzogTGlrZXdpc2UuCgkqIGNwdS1uczMyay5jOiBMaWtld2lzZS4KCSogZWNvZmYuYzogTGlrZXdpc2UuCgkqIGVjb2ZmbGluay5jOiBMaWtld2lzZS4KCjIwMDAtMTEtMjEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfcmVsb2NfbG9vcCk6IEZpeCBjb21waWxlIHRpbWUgd2FybmluZywgYW5kCglyZW1vdmUgcG9zc2liaWxpdHkgb2YgaW5maW5pdGUgbG9vcC4KCjIwMDAtMTEtMjAgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogYWl4Mzg2LWNvcmUuYzogRml4IGZvcm1hdHRpbmcuCgkqIGFvdXQtYWRvYmUuYzogTGlrZXdpc2UuCgkqIGFvdXQtYXJtLmM6IExpa2V3aXNlLgoJKiBhb3V0LWVuY2FwLmM6IExpa2V3aXNlLgoJKiBhb3V0LW5zMzJrLmM6IExpa2V3aXNlLgoJKiBhb3V0LXRhcmdldC5oOiBMaWtld2lzZS4KCSogYW91dC10aWMzMC5jOiBMaWtld2lzZS4KCSogYW91dGYxLmg6IExpa2V3aXNlLgoJKiBhb3V0eC5oOiBMaWtld2lzZS4KCSogYXJjaGl2ZS5jOiBMaWtld2lzZS4KCSogYmZkLWluLmg6IExpa2V3aXNlLgoJKiBiZmQtaW4yLmg6IExpa2V3aXNlLgoJKiBiZmQuYzogTGlrZXdpc2UuCgkqIGJvdXQuYzogTGlrZXdpc2UuCgoyMDAwLTExLTE3ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogRG9uJ3QgY3JlYXRlCglwbHRvZmYgZW50cmllcyBmb3IgRFRfSU5JVCBhbmQgRFRfRklOSS4KCShlbGZOTl9pYTY0X2ZpbmFsX2xpbmspOiBEb24ndCBzZXQgRFRfSU5JVC9GSU5JIGVudHJpZXMuCgkoZWxmTk5faWE2NF9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IERvbid0IGZpbGwgaW4gRFRfSU5JVC9GSU5JCgllbnRyaWVzLgoKMjAwMC0xMS0xNiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9jaGVja19yZWxvY3MpOiBIYW5kbGUgSVBMVCByZWxvY3MuCgkoYWxsb2NhdGVfZHlucmVsX2VudHJpZXMpOiBMaWtld2lzZS4KCShlbGZOTl9pYTY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4gIFNldCBSRUwgYWRkZW5kcyBjb3JyZWN0bHkuCgkoc2V0X3BsdG9mZl9lbnRyeSk6IExpa2V3aXNlLgoJKGlhNjRfaG93dG9fdGFibGUpOiBSZW1vdmUgUl9JQTY0X1NFR0JBU0UsIGFuZCBSX0lBNjRfRVBMVFtNTF1TQgoJKGVsZk5OX2lhNjRfcmVsb2NfdHlwZV9sb29rdXApOiBMaWtld2lzZS4KCShlbGZOTl9pYTY0X2luc3RhbGxfdmFsdWUpOiBMaWtld2lzZS4KCShlbGZOTl9pYTY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogcmVsb2MuYyAoQkZEX1JFTE9DX0lBNjRfU0VHQkFTRSk6IFJlbW92ZS4KCShCRkRfUkVMT0NfSUE2NF9FUExUTVNCLCBCRkRfUkVMT0NfSUE2NF9FUExUTFNCKTogUmVtb3ZlLgoKMjAwMC0xMS0xNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBjcHUtYTI5ay5jOiBGaXggZm9ybWF0dGluZy4KCSogY3B1LWFscGhhLmM6IExpa2V3aXNlLgoJKiBjcHUtYXJtLmM6IExpa2V3aXNlLgoJKiBjcHUtYXZyLmM6IExpa2V3aXNlLgoJKiBjcHUtZDEwdi5jOiBMaWtld2lzZS4KCSogY3B1LWg4NTAwLmM6IExpa2V3aXNlLgoJKiBjcHUtaHBwYS5jOiBMaWtld2lzZS4KCSogY3B1LWkzNzAuYzogTGlrZXdpc2UuCgkqIGNwdS1pMzg2LmM6IExpa2V3aXNlLgoJKiBjcHUtaTk2MC5jOiBMaWtld2lzZS4KCSogY3B1LWlhNjQtb3BjLmM6IExpa2V3aXNlLgoJKiBjcHUtaWE2NC5jOiBMaWtld2lzZS4KCSogY3B1LW0zMnIuYzogTGlrZXdpc2UuCgkqIGNwdS1tNjhoYzExLmM6IExpa2V3aXNlLgoJKiBjcHUtbTY4aGMxMi5jOiBMaWtld2lzZS4KCSogY3B1LW02OGsuYzogTGlrZXdpc2UuCgkqIGNwdS1tODhrLmM6IExpa2V3aXNlLgoJKiBjcHUtbWlwcy5jOiBMaWtld2lzZS4KCSogY3B1LW5zMzJrLmM6IExpa2V3aXNlLgoJKiBjcHUtcGouYzogTGlrZXdpc2UuCgkqIGNwdS1wb3dlcnBjLmM6IExpa2V3aXNlLgoJKiBjcHUtc2guYzogTGlrZXdpc2UuCgkqIGNwdS1zcGFyYy5jOiBMaWtld2lzZS4KCSogY3B1LXRpYzU0eC5jOiBMaWtld2lzZS4KCSogY3B1LXY4NTAuYzogTGlrZXdpc2UuCgkqIGNwdS12YXguYzogTGlrZXdpc2UuCgkqIGNwdS13NjUuYzogTGlrZXdpc2UuCgkqIGNwdS13ZTMyay5jOiBMaWtld2lzZS4KCSogY3B1LXo4ay5jOiBMaWtld2lzZS4KCSogZHdhcmYxLmM6IExpa2V3aXNlLgoJKiBkd2FyZjIuYzogTGlrZXdpc2UuCgoyMDAwLTExLTE1ICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIGNvZmYtYXJtLmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBjb2ZmLXBwYy5jOiBMaWtld2lzZS4KCSogY29mZi1yczYwMDAuYzogTGlrZXdpc2UuCgkqIGNvZmYtc2guYzogTGlrZXdpc2UuCgkqIGNvZmYtc3BhcmMuYzogTGlrZXdpc2UuCgkqIGNvZmYtdGljMzAuYzogTGlrZXdpc2UuCgkqIGNvZmYtdGljNTR4LmM6IExpa2V3aXNlLgoJKiBjb2ZmLXRpYzgwLmM6IExpa2V3aXNlLgoJKiBjb2ZmLXc2NS5jOiBMaWtld2lzZS4KCSogY29mZi13ZTMyay5jOiBMaWtld2lzZS4KCSogY29mZi16OGsuYzogTGlrZXdpc2UuCgoyMDAwLTExLTE1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfY2hlY2tfcmVsb2NzKTogQ3JlYXRlIHRoZSByZWxvYwoJc2VjdGlvbiB3aXRoIHRoZSBzYW1lIEFMTE9DfExPQUQgZmxhZ3MgYXMgdGhlIHNvdXJjZSBzZWN0aW9uLgoKMjAwMC0xMS0xNCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxheF9vcHRfY2FsbCk6IE9ubHkgY2hlY2sgYml0cyB1c2VkCglieSBTVE9fQUxQSEEgY29uc3RhbnRzLgoKMjAwMC0xMS0xNCAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBjb2ZmLXBtYWMuYzogRml4IGZvcm1hdHRpbmcuCgkqIGNvZmYtcHBjLmM6IExpa2V3aXNlLgoKMjAwMC0xMS0xMyAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBBbHNvIGFkZCBpbmRpcmVjdAoJc3ltYm9scyBmb3IgY29tbW9uIHN5bWJvbHMgd2l0aCB0aGUgZGVmYXVsdCB2ZXJzaW9uLgoKMjAwMC0xMS0wOSAgUGhpbGlwIEJsdW5kZWxsICA8cGJAZnV0dXJldHYuY29tPgoKCSogc2VjdGlvbi5jIChTVERfU0VDVElPTik6IFNldCBnY19tYXJrIGZsYWcuCgoyMDAwLTExLTExICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIGNvZmYtaTk2MC5jOiBMaWtld2lzZS4KCSogY29mZi1tNjhrLmM6IExpa2V3aXNlLgoJKiBjb2ZmLW04OGsuYzogTGlrZXdpc2UuCgkqIGNvZmYtbWNvcmUuYzogTGlrZXdpc2UuCgkqIGNvZmYtbWlwcy5jOiBMaWtld2lzZS4KCjIwMDAtMTEtMTEgIEJlcm5kIFNjaG1pZHQgIDxiZXJuZHNAY3lnbnVzLmNvLnVrPgoKCSogZWxmMzItc2guYyAoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBJZ25vcmUgUl9TSF9OT05FIHJlbG9jcy4KCjIwMDAtMTEtMTAgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogY29mZi1oODMwMC5jOiBGaXggZm9ybWF0dGluZy4KCSogY29mZi1oODUwMC5jOiBMaWtld2lzZS4KCSogY29mZi1pMzg2LmM6IExpa2V3aXNlLgoJKiBjb2ZmLWk4NjAuYzogTGlrZXdpc2UuCgkqIGNvZmYtaTk2MC5jOiBMaWtld2lzZS4KCSogY29mZi1pYTY0LmM6IExpa2V3aXNlLgoKMjAwMC0xMS0wOSAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBhcmNoaXZlLmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBhcmNodXJlcy5jOiBMaWtld2lzZS4KCjIwMDAtMTEtMDcgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKGVsZjY0X2lhNjRfZmluYWxfbGluayk6IE5ldyBsb2NhbCB1bndpbmRfb3V0cHV0X3NlYy4KCVNldCBpdCBiZWZvcmUgYmZkX2VsZjY0X2JmZF9maW5hbF9saW5rIGNhbGwuICBVc2UgaXQgYWZ0ZXIgdGhlIGNhbGwuCgkqIHNlY3Rpb24uYyAoYmZkX3NldF9zZWN0aW9uX2NvbnRlbnRzKTogQ2FsbCBtZW1jcHkgaWYKCXNlY3Rpb24tPmNvbnRlbnRzIHNldCBhbmQgbG9jYXRpb24gbm90IGVxdWFsIHRvIGNvbnRlbnRzIHBsdXMgb2Zmc2V0LgoKMjAwMC0xMS0wOCAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBiZmQtaW4uaDogRml4IGZvcm1hdHRpbmcuCgkqIGJmZC1pbjIuaDogTGlrZXdpc2UuCgkqIGJmZC5jOiBMaWtld2lzZS4KCSogYmluYXJ5LmM6IExpa2V3aXNlLgoJKiBib3V0LmM6IExpa2V3aXNlLgoJKiBjb2ZmLWEyOWsuYzogTGlrZXdpc2UuCgkqIGNvZmYtYWxwaGEuYzogTGlrZXdpc2UuCgkqIGNvZmYtYXBvbGxvLmM6IExpa2V3aXNlLgoJKiBjb2ZmLWF1eC5jOiBMaWtld2lzZS4KCjIwMDAtMTEtMDcgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogYWl4Mzg2LWNvcmUuYzogRml4IGZvcm1hdHRpbmcuCgkqIGFvdXRmMS5oOiBMaWtld2lzZS4KCSogYW91dHguaDogTGlrZXdpc2UuCgkqIGFyY2h1cmVzLmM6IExpa2V3aXNlLgoJKiBhcm1uZXRic2QuYzogTGlrZXdpc2UuCgoyMDAwLTExLTA3ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogY29mZi1oODMwMC5jIChzcGVjaWFsKTogQWRqdXN0IHJlbG9jIGFkZHJlc3MuCgoyMDAwLTExLTA2ICBTdGV2ZSBFbGxjZXkgPHNqZUBjdXAuaHAuY29tPgoKCSogYXJjaHVyZXMuYyAoYmZkX21hY2hfaWE2NF9lbGY2NCwgYmZkX21hY2hfaWE2NF9lbGYzMik6IEFkZCBkZWZpbmVzCgl0byBkaWZmZXJlbnRpYXRlIGVsZjMyIGFuZCBlbGY2NCBvbiBpYTY0LgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy5iZmQ6IEFkZCB0YXJnZXQgZm9yICJpYTY0Ki0qLWhwdXgqIi4KCSogY29uZmlndXJlLmluOiBBZGQgYmZkX2VsZjMyX2lhNjRfYmlnX3ZlYyB0byBzZWx2ZWNzIHN3aXRjaC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjcHUtaWE2NC5jIChiZmRfaWE2NF9lbGYzMl9hcmNoKTogQWRkIGVsZjMyIGFyY2ggaW5mbyBzdHJ1Y3R1cmUuCgkqIHRhcmdldHMuYzogQWRkIGJmZF90YXJnZXQgYmZkX2VsZjMyX2lhNjRfYmlnX3ZlYy4KCgkqIE1ha2VmaWxlLmFtOiBNYWtlIGVsZjMyLWlhNjQuYyBhbmQgZWxmNjQtaWE2NC5jIGRlcml2ZWQgb2JqZWN0cwoJZnJvbSBlbGZ4eC1pYTY0LmMuICBBZGQgZGVwZW5lbmN5IHJ1bGVzIGZvciBtYWtpbmcgZWxmMzItaWE2NC5sby4KCSogTWFrZWZpbGUuaW46IFJlZ25lcmF0ZS4KCSogZWxmNjQtaWE2NC5jOiBEZWxldGVkLgoJKiBlbGZ4eC1pYTY0LmM6IE5ldyBmaWxlLCBwYXJhbWF0ZXJpemVkIHZlcnNpb24gb2YgZWxmNjQtaWE2NC5jLgoKMjAwMC0xMS0wNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBhb3V0LWFkb2JlLmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBhb3V0LWFybS5jOiBMaWtld2lzZS4KCSogYW91dC1jcmlzLmM6IExpa2V3aXNlLgoJKiBhb3V0LWVuY2FwLmM6IExpa2V3aXNlLgoJKiBhb3V0LW5zMzJrLmM6IExpa2V3aXNlLgoJKiBhb3V0LXRhcmdldC5oOiBMaWtld2lzZS4KCSogYW91dC10aWMzMC5jOiBMaWtld2lzZS4KCjIwMDAtMTEtMDUgIFBoaWxpcCBCbHVuZGVsbCAgPHBoaWxiQGdudS5vcmc+CgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBBbHdheXMgcGVybWl0CglCRkRzIGNvbnRhaW5pbmcgbm8gc2VjdGlvbnMgdG8gYmUgbWVyZ2VkLCByZWdhcmRsZXNzIG9mIHRoZWlyIGZsYWdzLgoKMjAwMC0xMS0wNCAgUGhpbGlwIEJsdW5kZWxsICA8cGhpbGJAZ251Lm9yZz4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fcmVsb2NhdGVfc2VjdGlvbik6IFN1cHByZXNzIGVycm9yIG1lc3NhZ2UKCWlmIGEgcmVsb2NhdGlvbiBmb3IgYW4gdW5kZWZpbmVkIHN5bWJvbCBhbHNvIHJlc3VsdHMgaW4gYW4KCW92ZXJmbG93LgoKMjAwMC0xMS0wNiAgQ2hyaXN0b3BoZXIgRmF5bG9yIDxjZ2ZAY3lnbnVzLmNvbT4KCgkqIGNvbmZpZy5iZmQ6IEFkZCBzdXBwb3J0IGZvciBTdW4gQ2hvcnVzLgoKMjAwMC0xMS0wNSAgRGF2aWQgTydCcmllbiAgPG9icmllbkBGcmVlQlNELm9yZz4KCgkqIGNvbmZpZ3VyZS5pbjogUmVjb2duaXplIGFscGhhLSotZnJlZWJzZCouCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDAtMTEtMDIgIEx1Y2lhbm8gR2VtbWUgPGlzaGl0YXdhQHlhaG9vLmNvbT4KCgkqIHNyZWMuYyAoQ0hVTkspOiBSZW5hbWUgdG8gREVGQVVMVF9DSFVOSy4KCShDaHVuayk6IE5ldyBnbG9iYWwgdmFyaWFibGUgc2V0IGJ5IGEgcGFyYW1ldGVyIGluIG9iamNvcHkuYy4KCShTM0ZvcmNlZCk6IE5ldyBnbG9iYWwgdmFyaWFibGUgc2V0IGJ5IGEgcGFyYW1ldGVyIGluCglvYmpjb3B5LmMuCgkoc3JlY19zZXRfc2VjdGlvbl9jb250ZW50cyk6IElmIFMzRm9yY2VkIGlzIHRydWUsIGFsd2F5cyBnZW5lcmF0ZQoJUzMgcmVjb3Jkcy4KCShzcmVjX3dyaXRlX3NlY3Rpb24pOiBVc2UgJ0NodW5rJyB0byBsaW1pdCBtYXhpbXVtIGxlbmd0aCBvZiBTCglyZWNvcmRzLgoKMjAwMC0xMS0wMiAgUGVyIEx1bmRiZXJnICA8cGx1bmRpc0BjaGFvc2Rldi5vcmc+CgoJKiBjb25maWcuYmZkOiBBZGQgc3VwcG9ydCBmb3IgaVszNDU2XTg2LWNoYW9zZGV2LXN0b3JtLWNoYW9zLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBwby9iZmQucG90OiBSZWdlbmVyYXRlLgoKMjAwMC0xMC0zMSAgUGhpbGlwIEJsdW5kZWxsICA8cGhpbGJAZ251Lm9yZz4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IE9ubHkgaGFuZGxlCglFRl9TT0ZUX0ZMT0FUIGlmIGl0IGlzIGRlZmluZWQuCgoyMDAwLTEwLTI3ICBQaGlsaXAgQmx1bmRlbGwgIDxwaGlsYkBnbnUub3JnPgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9jb3B5X3ByaXZhdGVfYmZkX2RhdGEpOiBEb24ndCByZWZ1c2UKCWF0dGVtcHRzIHRvIG1peCBQSUMgY29kZSB3aXRoIG5vbi1QSUMsIGp1c3QgbWFyayB0aGUgb3V0cHV0IGFzCgliZWluZyBwb3NpdGlvbiBkZXBlbmRlbnQuCgkoZWxmMzJfYXJtX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBMaWtld2lzZS4gIFByaW50IGFuIGVycm9yCgltZXNzYWdlIGZvciBFRl9TT0ZUX0ZMT0FUIG1pc21hdGNoZXMuICBEaXNwbGF5IGRpYWdub3N0aWNzIGZvcgoJYWxsIG1pc21hdGNoZXMsIG5vdCBqdXN0IHRoZSBmaXJzdCBvbmUuCgoyMDAwLTEwLTI1ICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAc2lieXRlLmNvbT4KCgkqIGllZWUuYyAoaWVlZV9hcmNoaXZlX3ApOiBQbHVnIG9uZSBvZiBtYW55IHBvc3NpYmxlCgltZW1vcnkgbGVha3MgaW4gZXJyb3IgaGFuZGxpbmcuCgoyMDAwLTEwLTIwICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEsCgllbGYzMl9zcGFyY19vYmplY3RfcCwgZWxmMzJfc3BhcmNfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6CglTdXBwb3J0IHY4cGx1c2IuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEsCglzcGFyYzY0X2VsZl9vYmplY3RfcCk6IFN1cHBvcnQgdjliLgoJKiBhcmNodXJlcy5jOiBEZWNsYXJlIHY4cGx1c2IgYW5kIHY5YiBtYWNoaW5lcy4KCSogYmZkLWluMi5oOiBEaXR0by4KCSogY3B1LXNwYXJjLmM6IERpdHRvLgoKMjAwMC0xMC0xNiAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BzaG9nZ290aC5jeWdudXMuY29tPgoKCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IENsZWFyIHRoZSBsb2NhdGlvbgoJb2YgYSBHT1QgcmVsb2MuCgoJKiBlbGYzMi1wcGMuYyAoU1lNQk9MX1JFRkVSRU5DRVNfTE9DQUwpOiBOZXcgbWFjcm8uCgkoU1lNQk9MX0NBTExTX0xPQ0FMKTogTmV3IG1hY3JvLgoJKHBwY19lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogVXNlIFNZTUJPTF9DQUxMU19MT0NBTC4KCShwcGNfZWxmX2NoZWNrX3JlbG9jcyk6IFVzZSBTWU1CT0xfUkVGRVJFTkNFU19MT0NBTC4KCShwcGNfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IFVzZSBTWU1CT0xfUkVGRVJFTkNFU19MT0NBTC4KCShwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBVc2UgZmxhZyB2YXJpYWJsZSB0byBkZXRlcm1pbmUKCXdoZXRoZXIgdGhlIHJlbG9jYXRpb24gcmVmZXJzIHRvIGEgbG9jYWwgc3ltYm9sLgoJVGVzdCB3aGV0aGVyIGEgUExUUkVMMjQgcmVsb2Mgd2lsbCBwcm9kdWNlIGEgcmVsb2MgYnkgbG9va2luZwoJdG8gc2VlIHdoZXRoZXIgYSBQTFQgZW50cnkgd2FzIG1hZGUuCgoyMDAwLTEwLTE0ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQHNob2dnb3RoLmN5Z251cy5jb20+CgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBEb24ndCBtYWtlIFBMVAoJZW50cmllcyB0aGF0IGNvdWxkIHNlcnZlIGFzIGEgZGVmaW5pdGlvbiBmb3IgYSB3ZWFrIHN5bWJvbC4KCjIwMDAtMTAtMTMgIFVsZiBDYXJsc3NvbiAgPHVsZmNAZW5nci5zZ2kuY29tPgoKCUZyb20gIFJhbGYgQmFlY2hsZSAgPHJhbGZAZ251Lm9yZz4KCgkqIGVsZjMyLW1pcHMuYyAobWlwc19lbGZfY3JlYXRlX2R5bmFtaWNfcmVsb2NhdGlvbik6IE5ldyBhcmd1bWVudAoJbG9jYWxfcC4gIEFkZCBzeW1ib2wgdmFsdWUgb25seSBmb3Igbm9uLVJfTUlQU19SRUwzMiByZWxvY2F0aW9ucwoJYWdhaW5zdCBsb2NhbCBzeW1ib2xzLgoJKF9iZmRfbWlwc19lbGZfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBVbmRvIHBhdGNoIGZyb20gMjAwMC0xMC0wMS4KCjIwMDAtMTAtMTIgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBzZWN0aW9uLmMgKHN0cnVjdCBzZWMpOiBBZGQga2VwdF9zZWN0aW9uLgoJKHN0cnVjdCBiZmRfY29tZGF0X2luZm8pOiBSZW1vdmUgc2VjLCB3ZSBjYW4gdXNlIGFib3ZlLgoJKFNURF9TRUNUSU9OKTogQWRkIGluaXRpYWxpemVyLgoJKGJmZF9tYWtlX3NlY3Rpb25fYW55d2F5KTogSW5pdCBoZXJlIHRvby4KCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogUmVtb3ZlIHVubmVjZXNzYXJ5Cgl6ZXJvaW5nIG9mIGBmbGFncycuCgkoZWxmX2xpbmtfaW5wdXRfYmZkKTogU2V0IGFsbCBhc2VjdGlvbi0+c3ltYm9sLT52YWx1ZSdzIGhlcmUsIGFuZAoJZnVkZ2UgdmFsdWVzIGZvciBkaXNjYXJkZWQgbGluay1vbmNlIHNlY3Rpb24gc3ltYm9scy4KCgkqIGVsZjY0LWhwcGEuYzogSW5jbHVkZSBhbGxvY2EtY29uZi5oCgoyMDAwLTEwLTExICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogZWxmLmMgKHN3YXBfb3V0X3N5bXMpOiBSZXZlcnQgMjAwMC0xMC0wNyBjaGFuZ2VzLgoKCSogaWVlZS5jIChpZWVlX21ha2VfZW1wdHlfc3ltYm9sKTogT29wcywgYmZkX3phbGxvYyBuZWVkcyBhbm90aGVyIGFyZy4KCjIwMDAtMTAtMTAgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBpZWVlLmMgKGllZWVfbWFrZV9lbXB0eV9zeW1ib2wpOiBVc2UgYmZkX3phbGxvYywgbm90IGJmZF96bWFsbG9jLgoKMjAwMC0xMC0xMCAgVG9tIFJpeCA8dHJpeEByZWRoYXQuY29tPgoKCSogc2VjdGlvbi5jIChiZmRfbWFrZV9zZWN0aW9uX2FueXdheSk6IFJlbGVhc2UgbmV3c2VjdCBwdHIgd2hlbgoJbmV3c2VjdC0+c3ltYm9sIGZhaWxzIHRvIGFsbG9jLiAgVXNlIGJmZF9yZWxlYXNlIGluc3RlYWQgb2YgZnJlZS4KCjIwMDAtMTAtMDkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQGN5Z251cy5jb20KCgkqIGVsZjY0LWlhNjQuYyAoZWxmNjRfaWE2NF91bndpbmRfZW50cnlfY29tcGFyZV9iZmQpOiBOZXcuCgkoZWxmNjRfaWE2NF91bndpbmRfZW50cnlfY29tcGFyZSk6IE5ldy4KCShlbGY2NF9pYTY0X2ZpbmFsX2xpbmspOiBTb3J0IHRoZSAuSUFfNjQudW53aW5kIHNlY3Rpb24uCgoyMDAwLTEwLTA3ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogZWxmbGluay5oIChzaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBEb24ndCBjcmVhdGUgdmFyaW91cyB0YWdzIGlmCgkuZHluc3RyIGlzIGV4Y2x1ZGVkIGZyb20gdGhlIGxpbmsuICBEb24ndCBzZXQgZmlyc3QgZHluc3ltIGVudHJ5CglpZiBkeW5zeW1jb3VudCBpcyB6ZXJvLgoJKGVsZl9iZmRfZmluYWxfbGluayk6IERvbid0IHRyeSB0byBzd2FwIG91dCBkeW5hbWljIHN5bXMgaWYKCS5keW5zeW0gZXhjbHVkZWQgZnJvbSB0aGUgbGluay4gIERvbid0IHRyeSB0byB3cml0ZSBhbnkgZHluYW1pYwoJc2VjdGlvbnMgZXhjbHVkZWQgZnJvbSB0aGUgbGluay4KCgkqIGVsZi5jIChzd2FwX291dF9zeW1zKTogSGFuZGxlIGdsb2JhbCBzZWN0aW9uIHN5bWJvbHMuCgoyMDAwLTEwLTA1ICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIHBlaWdlbi5jIChfYmZkX3BlaV9zd2FwX3Njbmhkcl9vdXQpOiBub3RlIGV4dGVuZGVkIHJlbG9jcwoJKiBjb2ZmY29kZS5oIChjb2ZmX3NldF9hbGlnbm1lbnRfaG9vayk6IHJlYWQgZXh0ZW5kZWQgcmVsb2MgY291bnQKCShjb2ZmX3dyaXRlX3JlbG9jcyk6IHdyaXRlIGV4dGVuZGVkIHJlbG9jIGNvdW50CgkoY29mZl93cml0ZV9vYmplY3RfY29udGVudHMpOiBhY2NvdW50IGZvciBleHRlbmRlZCByZWxvY3MKCjIwMDAtMTAtMDUgIEppbSBXaWxzb24gIDx3aWxzb25AY3lnbnVzLmNvbT4KCgkqIGVsZi1iZmQuaCAoc3RydWN0IGVsZl9iYWNrZW5kX2RhdGEpOiBBZGQgZWxmX2JhY2tlbmRfc2VjdGlvbl9mbGFncwoJZmllbGQuCgkqIGVsZi5jIChfYmZkX2VsZl9tYWtlX3NlY3Rpb25fZnJvbV9zaGRyKTogQ2FsbCB0aGUKCWVsZl9iYWNrZW5kX3NlY3Rpb25fZmxhZ3MgZnVuY3Rpb24uCgkqIGVsZjY0LWlhNjQuYyAoZWxmNjRfaWE2NF9zZWN0aW9uX2Zyb21fc2hkcik6IERlbGV0ZSBmbGFnIGNvbnZlcnNpb24KCWNvZGUuCgkoZWxmNjRfaWE2NF9zZWN0aW9uX2ZsYWdzKTogTmV3IGZ1bmN0aW9uIGNvbnRhaW5pbmcgZmxhZyBjb252ZXJzaW9uCgljb2RlLgoJKGVsZl9iYWNrZW5kX3NlY3Rpb25fZmxhZ3MpOiBEZWZpbmUgdG8gZWxmNjRfaWE2NF9zZWN0aW9uX2ZsYWdzLgoJKiBlbGZ4eC10YXJnZXQuaCAoZWxmX2JhY2tlbmRfc2VjdGlvbl9mbGFncyk6IERlZmluZS4KCShlbGZOTl9iZWQpOiBJbml0aWFsaXplIGVsZl9iYWNrZW5kX3NlY3Rpb25fZmxhZ3MgZmllbGQuCgoyMDAwLTEwLTAyICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2NoZWNrX3JlbG9jcyk6IENvcnJlY3QgY2FsbCB0bwoJX2JmZF9lbGYzMl9nY19yZWNvcmRfdnRhYmxlLiAgQ29ycmVjdCBhIGNvbW1lbnQuCgoyMDAwLTEwLTAxICBVbGYgQ2FybHNzb24gIDx1bGZjQGVuZ3Iuc2dpLmNvbT4KCglGcm9tICBSYWxmIEJhZWNobGUgIDxyYWxmQGdudS5vcmc+CgoJKiBlbGYzMi1taXBzLmMgKF9iZmRfbWlwc19lbGZfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBNYXJrIGdsZAoJcHJvZHVjZXMgYmluYXJpZXMgd2l0aCBnb3RbMV0gPSAweDgwMDAwMDAxIHRvIGRpZmZlcmVuY2lhdGUgdGhlbQoJZm9yIHRoZSBkeW5hbWljIGxpbmtlciBmcm9tIHRoZSBicm9rZW4gYmluYXJpZXMgcHJvZHVjZWQgYnkgb2xkCgl2ZXJzaW9ucy4KCjIwMDAtMDktMzAgIFBldHIgU29yZmEgPHBldHJzQHNjby5jb20+CgoJKiBlbGYuYyAoZWxmY29yZV9ncm9rX3BzdGF0dXMpOiBDaGVjayBmb3Igc2l6ZSBvZiBweHN0YXR1c190LgoJKGVsZmNvcmVfZ3Jva19sd3BzdGF0dXMpOiBDaGVjayBmb3Igc2l6ZSBvZiBsd3B4c3RhdHVzX3QuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGNoZWNrIGZvciBweHN0YXR1c190IGFuZCBsd3B4c3RhdHVzX3QuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDAtMDktMjcgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCURlZmluZSB0d28gYmZkX3RhcmdldHMgZm9yIGFic2VuY2UgYW5kIHByZXNlbmNlIG9mIGxlYWRpbmcKCXVuZGVyc2NvcmUgb24gc3ltYm9scy4gIE1ha2Ugc3VyZSB0byBvbmx5IGxpbmsgc2FtZSBraW5kLgoJKiBlbGYzMi1jcmlzLmMgKGNyaXNfZWxmX29iamVjdF9wLAoJY3Jpc19lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZywgY3Jpc19lbGZfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSwKCWNyaXNfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBOZXcuCgkoZWxmX2JhY2tlbmRfb2JqZWN0X3AsIGVsZl9iYWNrZW5kX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcsCgliZmRfZWxmMzJfYmZkX3ByaW50X3ByaXZhdGVfYmZkX2RhdGEsCgliZmRfZWxmMzJfYmZkX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBEZWZpbmUuCgk8VGFyZ2V0IHZlY3RvciBkZWZpbml0aW9uPjogSW5jbHVkZSBlbGYzMi10YXJnZXQuaCB0d2ljZSB3aXRoCglkaWZmZXJlbnQgbWFjcm8gc2V0dGluZ3M6CgkoVEFSR0VUX0xJVFRMRV9TWU0pOiBGaXJzdCBhcyBiZmRfZWxmMzJfY3Jpc192ZWMsIHRoZW4gYXMKCWJmZF9lbGYzMl91c19jcmlzX3ZlYy4KCShUQVJHRVRfTElUVExFX05BTUUpOiBGaXJzdCBhcyAiZWxmMzItY3JpcyIsIHRoZW4gImVsZjMyLXVzLWNyaXMiLgoJKGVsZl9zeW1ib2xfbGVhZGluZ19jaGFyKTogRmlyc3QgYXMgMCwgdGhlbiAnXycuCgkoSU5DTFVERURfVEFSR0VUX0ZJTEUpOiBEZWZpbmUgZm9yIHNlY29uZCBpbmNsdWRlIG9mIGVsZjMyLXRhcmdldC5oLgoJKiBjb25maWcuYmZkIChjcmlzLSotKik6IEFkZCBiZmRfZWxmMzJfdXNfY3Jpc192ZWMgdG8gdGFyZ19zZWx2ZWNzLgoJKiBjb25maWd1cmUuaW4gKGJmZF9lbGYzMl9jcmlzX3ZlYywgY3Jpc19hb3V0X3ZlYyk6IE5ldyB2ZWN0b3IuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogdGFyZ2V0cy5jOiBEZWNsYXJlIGJmZF9lbGYzMl91c19jcmlzX3ZlYy4KCSogcG8vYmZkLnBvdDogUmVnZW5lcmF0ZS4KCjIwMDAtMDktMjkgIE1vbWNoaWwgVmVsaWtvdiAgPHZlbGNvQGZhZGF0YS5iZz4KCgkqIGVsZjMyLWFybS5oIChhcm1fYWRkX3RvX3JlbCk6IENvcnJlY3RseSBhZGp1c3QgdGhlIGFkZGVuZCBmb3IKCVJfQVJNX1RITV9QQzIyIHJlbG9jYXRpb25zLgoKMjAwMC0wOS0yOSAgTklJQkUgWXV0YWthIDxnbmlpYmVAY2hyb290Lm9yZz4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogRG9uJ3QgYmZkX3JlbGVhc2UgcnVucGF0aC4KCjIwMDAtMDktMjkgIE1vbWNoaWwgVmVsaWtvdiA8dmVsY29AZmFkYXRhLmJnPgoKCSogZWxmLmMgKGVsZl9mYWtlX3NlY3Rpb25zKTogRG8gbm90IG1hcmsgdGhlIHNlY3Rpb24gU0hUX05PQklUUyBpZgoJaXMgaGFzIHRoZSBTRUNfSEFTX0NPTlRFTlRTIGZsYWcgc2V0LgoKMjAwMC0wOS0yOCAg1nJqYW4gRnJpYmVyZyAgPG9yamFuZkBheGlzLmNvbT4KCSAgICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGFvdXQtY3Jpcy5jIChOX1RYVEFERFIpOiBEZWZpbmUuCgoyMDAwLTA5LTI4ICBKb2huIERhdmlkIEFuZ2xpbiA8ZGF2ZUBoaWF1bHkxLmhpYS5ucmMuY2E+CgoJKiBzb20uYzogSW5jbHVkZSBhbGxvY2EtY29uZi5oLgoJKiBNYWtlZmlsZS5hbTogIm1ha2UgZGVwLWFtIgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDAtMDktMjcgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBlbGYzMi1ocHBhLmMgKHBsdF9zdHViKTogTmV3LgoJKFBMVF9TVFVCX0VOVFJZKTogRGVmaW5lLgoJKGVsZjMyX2hwcGFfbGlua19oYXNoX3RhYmxlKTogQ2hhbmdlIG11bHRpX3N1YnNwYWNlIHRvIHBhY2tlZAoJYm9vbGVhbi4gIEFkZCBuZWVkX3BsdF9zdHViLCBoYXNfMTJiaXRfYnJhbmNoIGFuZCBoYXNfMTdiaXRfYnJhbmNoLgoJKGVsZjMyX2hwcGFfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IEluaXQgdG8gc3VpdC4KCShlbGYzMl9ocHBhX2NoZWNrX3JlbG9jcyk6IFNldCBoYXNfMTJiaXRfYnJhbmNoIGFuZAoJaGFzXzE3Yml0X2JyYW5jaCBhcyBhcHByb3ByaWF0ZS4KCShlbGYzMl9ocHBhX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IFNldCBuZWVkX3BsdF9zdHViIGZvcgoJbm9uLWxvY2FsIGZ1bmN0aW9ucy4KCShlbGYzMl9ocHBhX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IENvcnJlY3Qgc2V0dGluZyBvZiByZWx0ZXh0LgoJQWRkIHNwYWNlIGZvciBwbHRfc3R1YiBhcyBuZWVkZWQuCgkoZWxmMzJfaHBwYV9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBQb2ludCAucGx0IGVudHJpZXMgZm9yIGdsb2JhbAoJZnVuY3Rpb25zIGF0IHBsdF9zdHViLgoJKGVsZjMyX2hwcGFfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBXcml0ZSBwbHRfc3R1Yi4KCShlbGYzMl9ocHBhX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogTGVhdmUgLnBsdCBleGVjdXRhYmxlLgoKCSogZWxmMzItaHBwYS5oIChlbGYzMl9ocHBhX3NpemVfc3R1YnMpOiBBZGQgZ3JvdXBfc2l6ZSBwYXJhbS4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX3NpemVfc3R1YnMpOiBMaWtld2lzZS4gIFVzZSBpdCBpbnN0ZWFkCglvZiBmaXhlZCBzaXplLCBhbmQgaWYgbmVnYXRpdmUsIGRpc2FibGUgaGFuZGxpbmcgb2YgaW5wdXQgc2VjdGlvbnMKCWJlZm9yZSBzdHViIHNlY3Rpb24uICBTZXQgdXAgZGVmYXVsdCBzdHViIGdyb3VwIHNpemUgZGVwZW5kaW5nCglvbiBkZXRlY3RlZCBicmFuY2ggcmVsb2NzLgoJKGhwcGFfYnVpbGRfb25lX3N0dWIpOiBVc2UgbHJzZWwgYW5kIHJyc2VsIGZvciBpbXBvcnQgc3R1YnMgdG8KCWVuc3VyZSBkaWZmZXJlbnQgb2Zmc2V0cyBmcm9tIHN5bV92YWx1ZSBhcmVuJ3Qgcm91bmRlZCB0bwoJZGlmZmVyZW50IDJrIGJsb2Nrcy4gIFVzZSBscnNlbCBhbmQgcnJzZWwgZm9yIG90aGVyIHN0dWJzIHRvbyBmb3IKCWNvbnNpc3RlbmN5IHJhdGhlciB0aGFuIG5lY2Vzc2l0eS4KCShlbGYzMl9ocHBhX2NoZWNrX3JlbG9jcyk6IEhhbmRsZSBSX1BBUklTQ19ESVIxNEYuCgkoZmluYWxfbGlua19yZWxvY2F0ZSk6IExpa2V3aXNlLgoJKGVsZjMyX2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoKCSogZWxmLWhwcGEuaCAoZWxmX2hwcGFfaG93dG9fdGFibGUpOiBBZGQgUl9QQVJJU0NfRElSMTRGIHJlbG9jLgoJKF9iZmRfZWxmX2hwcGFfZ2VuX3JlbG9jX3R5cGUpOiBHZW5lcmF0ZSB0aGVtLgoJKGVsZl9ocHBhX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBIYW5kbGUgdGhlbS4KCShlbGZfaHBwYV9yZWxvY2F0ZV9pbnNuKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfaHBwYV9nZW5fcmVsb2NfdHlwZSk6IEFkZCBtaXNzaW5nIGVfbGRzZWwgYW5kIGVfcmRzZWwgY2FzZXMuCgoyMDAwLTA5LTI2ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGVsZmNvZGUuaCAoZWxmX29iamVjdF9wKTogUHJlc2VydmUgYW5kIGNsZWFyIGFiZmQgc2VjdGlvbgoJaW5mb3JtYXRpb24uICBSZXN0b3JlIGF0IGVycm9yLgoKMjAwMC0wOS0yNiAgUGF1bCBTb2tvbG92c2t5ICA8UGF1bC5Tb2tvbG92c2t5QHRlY2hub2xvZ2lzdC5jb20+CgoJKiBwZWlnZW4uYyAoX2JmZF9wZWlfc3dhcF9hb3V0aGRyX2luKTogSWYgc29tZSBEYXRhRGlyZWN0b3J5CglpcyBlbXB0eSwgbWFrZSBzdXJlIHRoYXQgaXRzIHJ2YSBhbHNvIDAuIE5UIGxvYWRlciBkaXNsaWtlcwoJaGF2aW5nIG90aGVyd2lzZS4KCjIwMDAtMDktMjYgIFN0ZXZlIEVsbGNleSA8c2plQGN1cC5ocC5jb20+CgoJKiBzb20uYyAoc29tX2JmZF9kZXJpdmVfbWlzY19zeW1ib2xfaW5mbyk6IE1ha2Ugd2VhayBzeW1ib2xzCglnbG9iYWwgYnkgZGVmYXVsdC4KCjIwMDAtMDktMjEgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfY2hlY2tfcmVsb2NzKTogRml4IHdlYWsgc3ltIGhhbmRsaW5nIGluCgljdXJyZW50bHkgdW51c2VkIFJFTEFUSVZFX0RZTkFNSUNfUkVMT0NTIGNvZGUuCgkoaHBwYV9kaXNjYXJkX2NvcGllcyk6IExpa2V3aXNlLgoJKGVsZjMyX2hwcGFfc2l6ZV9zdHVicyk6IFNpemUgYGlucHV0X2xpc3QnIGFycmF5IGNvcnJlY3RseS4gIENvcnJlY3QKCWNvbW1lbnRzLiAgRG9uJ3QgY2hlY2sgbm9uLWNvZGUgb3V0cHV0IHNlY3Rpb25zIGZvciBzdHViIGdyb3VwaW5nLgoKMjAwMC0wOS0yMCAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIHNlY3Rpb24uYyAoYmZkX2dldF91bmlxdWVfc2VjdGlvbl9uYW1lKTogUmV0dXJuIE5VTEwgaWYKCWJmZF9tYWxsb2MgZmFpbHMuCgoyMDAwLTA5LTE5ICBNaWNoYWVsIFNva29sb3YgIDxtc29rb2xvdkBpdmFuLkhhcmhhbi5PUkc+CgoJKiBlbGYzMi1tNjhrLmMgKGVsZl9jcHUzMl9wbHQwX2VudHJ5KTogQ2hhbmdlIHRoZSBQTFQgZW50cnkgMAoJaW5zdHJ1Y3Rpb24gc2VxdWVuY2UgdG8gYWN0dWFsbHkgd29yay4KCShlbGZfbTY4a19maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IENoYW5nZSB0aGUgcGF0Y2gtaW4gb2Zmc2V0CglhY2NvcmRpbmdseS4KCjIwMDAtMDktMTggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmMzItc2guYyAoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBVc2UKCV9iZmRfZmluYWxfbGlua19yZWxvY2F0ZSB0byBhcHBseSB0aGUgcmVsb2NhdGlvbiBhZ2FpbnN0IGEgc2VjdGlvbgoJc3ltYm9sLCB3aGVuIGRvaW5nIHJlbG9jYXRhYmxlIGxpbmtzLgoKMjAwMC0wOS0xOCAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9zdHViX2hhc2hfZW50cnkpOiBSZW5hbWUgaW5wdXRfc2VjdGlvbgoJdG8gaWRfc2VjLgoJKHN0dWJfaGFzaF9uZXdmdW5jKTogSGVyZSB0b28uCgkoaHBwYV9hZGRfc3R1Yik6IEFuZCBoZXJlLgoJKGVsZjMyX2hwcGFfbGlua19oYXNoX3RhYmxlKTogUmVtb3ZlIHN0dWJfc2VjdGlvbl9jcmVhdGVkLAoJcmVsb2Nfc2VjdGlvbl9jcmVhdGVkLCBmaXJzdF9pbml0X3NlYyBhbmQgZmlyc3RfZmluaV9zZWMuICBBZGQKCXN0dWJfZ3JvdXAuCgkoZWxmMzJfaHBwYV9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogSW5pdCB0byBzdWl0LgoJKGhwcGFfZ2V0X3N0dWJfZW50cnkpOiBBZGQgc3VwcG9ydCBmb3IgZ3JvdXBpbmcgc3R1YiBzZWN0aW9ucy4KCShocHBhX2FkZF9zdHViKTogTGlrZXdpc2UuICBSZW1vdmUgc2VjX2NvdW50IHBhcmFtIGFuZCBpbml0L2ZpbmkKCXNlY3Rpb24gY29kZS4gIEluZGV4IHN0dWIgdmFycyBieSBzZWN0aW9uLT5pZC4KCShlbGYzMl9ocHBhX3NpemVfc3R1YnMpOiBMaWtld2lzZS4gIFJlbW92ZSBkdXBsaWNhdGVkIGZ1bmN0aW9uCglleGl0IHBhdGhzLiAgWmFwIGFsbG9jYXRpb24gb2YgYWJvdmUgcmVtb3ZlZCB2YXJzLiAgUmVmaW5lCglsaW5rLW9uY2UgdGVzdC4KCgkqIGVsZjMyLWhwcGEuaCAoZWxmMzJfaHBwYV9zaXplX3N0dWJzKTogQWRkIG91dHB1dF9iZmQgcGFyYW0uCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9zaXplX3N0dWJzKTogTGlrZXdpc2UuCgkoaHBwYV9nZXRfc3R1Yl9lbnRyeSk6IFBhc3MgaW4gcG9pbnRlciB0byBlbGYzMl9ocHBhX2xpbmtfaGFzaF90YWJsZQoJcmF0aGVyIHRoYW4gcG9pbnRlciB0byBiZmRfbGlua19pbmZvLgoJKGhwcGFfYWRkX3N0dWIpOiBMaWtld2lzZS4KCShmaW5hbF9saW5rX3JlbG9jYXRlKTogTGlrZXdpc2UuCgoyMDAwLTA5LTE3ICBEYXZpZCBIdWdnaW5zLURhaW5lcyAgPGRoZEBsaW51eGNhcmUuY29tPgoKCShlbGYzMl9ocHBhX3NpemVfc3R1YnMpOiBEb24ndCB0cnkgdG8gYnVpbGQgc3R1YnMgZm9yIGRpc2NhcmRlZAoJbGluay1vbmNlIHNlY3Rpb25zLgoKMjAwMC0wOS0xNiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1zaC5jIChFTEZfTUFYUEFHRVNJWkUpOiBEZWZpbmUgdG8gMTI4LCB0byBtYXRjaAoJbGQvZW11bHBhcmFtcy9zaGVsZi5zaC4KCjIwMDAtMDktMTAgIE1pY2hhZWwgU29rb2xvdiAgPG1zb2tvbG92QGl2YW4uSGFyaGFuLk9SRz4KCgkqIGVsZjMyLW02OGsuYyAoYmZkX202OGtfZWxmMzJfY3JlYXRlX2VtYmVkZGVkX3JlbG9jcyk6IE5ldyBmdW5jdGlvbi4KCSogYmZkLWluLmggKGJmZF9tNjhrX2VsZjMyX2NyZWF0ZV9lbWJlZGRlZF9yZWxvY3MpOiBBZGQgZGVjbGFyYXRpb24uCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDAtMDktMTUgIEtlbm5ldGggQmxvY2sgIDxLZW5uZXRoLkJsb2NrQGNvbXBhcS5jb20+CgoJKiBiZmQvZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsYXhfd2l0aF9saXR1c2UpOiBsZCBwZXJmb3JtcwoJTElUVVNFIHJlbG9jYXRpb25zIGluY29ycmVjdGx5IGlmIC1yZWxheCBpcyBzcGVjaWZpZWQgb24gdGhlIGxkCgljb21tYW5kIGxpbmUgYW5kIHRoZSBkaXNwbGFjZW1lbnQgZmllbGQgb2YgdGhlIGxvYWQgb3Igc3RvcmUKCWluc3RydWN0aW9uIGlzIG5vbi16ZXJvLiAoUGF0Y2ggYnkgcGF1bC53aW5hbHNraUBjb21wYXEuY29tKQoKMjAwMC0wOS0xNSAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGVsZjMyLWhwcGEuYyAoaHBwYV9hZGRfc3R1Yik6IERvbnQgc2V0IGZpcnN0X2luaXRfc2VjIGFuZAoJZmlyc3RfZmluaV9zZWMgaGVyZS4KCShlbGYzMl9ocHBhX3NpemVfc3R1YnMpOiBJbnN0ZWFkIGNvcnJlY3RseSBmaW5kIHRoZSBmaXJzdCAuaW5pdAoJYW5kIC5maW5pIHNlY3Rpb24gaGVyZS4KCjIwMDAtMDktMTUgIERhdmlkIEh1Z2dpbnMtRGFpbmVzICA8ZGhkQGxpbnV4Y2FyZS5jb20+CgoJKiBlbGYzMi1ocHBhLmMgKGNsb2JiZXJfbWlsbGljb2RlX3N5bWJvbHMpOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfaHBwYV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBDYWxsIGl0LgoKMjAwMC0wOS0xNCAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9saW5rX2hhc2hfZW50cnkpOiBNYWtlIHBpY19jYWxsCglwYWNrZWQuICBBZGQgcGxhYmVsLCBwbHRfYWJzIHBhY2tlZCBib29sZWFucy4KCShocHBhX2xpbmtfaGFzaF9uZXdmdW5jKTogSW5pdCBuZXcgZmllbGRzLgoJKFBMQUJFTF9QTFRfRU5UUllfU0laRSk6IERlZmluZS4KCShocHBhX3N0dWJfbmFtZSk6IFVzZSBzaXplX3QgbGVuIHZhcnMuCgkoaHBwYV9hZGRfc3R1Yik6IExpa2V3aXNlLgoJKGVsZjMyX2hwcGFfYnVpbGRfc3R1YnMpOiBMaWtld2lzZS4KCShocHBhX2J1aWxkX29uZV9zdHViKTogS2lsbCBzb21lIGNvbXBpbGVyIHdhcm5pbmdzLgoJKGVsZjMyX2hwcGFfY2hlY2tfcmVsb2NzKTogQWx3YXlzIGdlbmVyYXRlIGEgcGx0IGVudHJ5IGZvciBQTEFCRUxzCglpZiBkeW5hbWljIGxpbmtpbmcuICBNdW5nZSB0aGUgbG9jYWwgcGx0IG9mZnNldHMgaW50bwoJbG9jYWxfZ290X3JlZmNvdW50cy4gIFNldCBoLT5wbGFiZWwgZm9yIGFsbCBnbG9iYWwgUExBQkVMcy4gIFVzZQoJc2l6ZV90IGxlbiB2YXJzLiAgQWRkIGFzc2VydCBmb3IgcGxhYmVsIGFkZGVuZC4KCShlbGYzMl9ocHBhX2djX3N3ZWVwX2hvb2spOiBTd2VlcCBsb2NhbCBwbHQgZW50cmllcyB0b28uCgkoZWxmMzJfaHBwYV9oaWRlX3N5bWJvbCk6IE5ldyBmdW5jdGlvbi4KCShlbGZfYmFja2VuZF9oaWRlX3N5bWJvbCk6IERlZmluZS4KCShlbGYzMl9ocHBhX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IERvbid0IHRocm93IGF3YXkgcGx0IGVudHJpZXMKCXdpdGggaC0+cGxhYmVsIHNldC4gIERvbid0IG1ha2UgcGx0IGVudHJpZXMgdG8gaGF2ZSBkeW5hbWljIHN5bXMKCXdoZW4gdGhleSBoYXZlIGJlZW4gZm9yY2VkIGxvY2FsLiAgSWYgcGx0IGVudHJ5IGlzIHVzZWQgYnkgYQoJcGxhYmVsLCBtYWtlIGl0IFBMQUJFTF9QTFRfRU5UUllfU0laRS4KCShlbGYzMl9ocHBhX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFNldCBwbHRfYWJzIGZvciBpbml0IGZucy4KCVNldCB1cCAucGx0IG9mZnNldHMgZm9yIGxvY2FsIHN5bXMuCgkoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogSW5pdGlhbGlzZSBwbHQgZW50cmllcyBmb3IgbG9jYWwKCXN5bXMuICBMZWF2ZSB3ZWFrIHVuZGVmaW5lZCBwbGFiZWxzIHplcm8uICBNYWtlIGdsb2JhbCBwbGFiZWwKCXJlbG9jcyBhZ2FpbnN0IGZ1bmN0aW9uIHN5bWJvbCwgYW5kIGxlYXZlIHRoZSBhZGRlbmQgemVyby4KCVVzZSAqQUJTKiBESVIzMiByZWxvY3MgaW5zdGVhZCBvZiBTRUdSRUwzMiBmb3IgZHluYW1pYyBnb3QgcmVsb2NzLgoJKGVsZjMyX2hwcGFfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogU2V0IHVwIElQTFQgcmVsb2NzIGZvcgoJbm9uLWR5bmFtaWMgc3ltcy4gIEluaXQgZXh0cmEgcGx0IGZvciBwbGFiZWxzLiAgVXNlICpBQlMqIERJUjMyCglyZWxvY3MgaW5zdGVhZCBvZiBTRUdSRUwzMiBmb3IgZHluYW1pYyBnb3QgcmVsb2NzLgoJKGVsZjMyX2hwcGFfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBSZXNlcnZlIG9uZSBtb3JlIC5nb3QgZW50cnkuCgkoZWxmX2JhY2tlbmRfZ290X2hlYWRlcl9zaXplKTogQWRqdXN0LgoJKGVsZjMyX2hwcGFfc2V0X2dwKTogQ2FsY3VsYXRlIGFuICJpZGVhbCIgTFRQLgoKCSogZWxmMzItaHBwYS5jIChMT05HX0JSQU5DSF9WSUFfUExUKTogRGVmaW5lLgoJKGhwcGFfdHlwZV9vZl9zdHViKTogVXNlIGl0IGluc3RlYWQgb2YgI2lmIDAKCShocHBhX2Rpc2NhcmRfY29waWVzKTogVXNlIGl0IGhlcmUgdG9vLgoJKGVsZjMyX2hwcGFfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogQW5kIGhlcmUuCgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfbGlua19oYXNoX3RhYmxlKTogUmVtb3ZlIGBvZmZzZXQnIGZpZWxkLgoJKGVsZjMyX2hwcGFfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IEFuZCBoZXJlLgoJKGhwcGFfYnVpbGRfb25lX3N0dWIpOiBBbmQgaGVyZS4gIEluc3RlYWQga2VlcCB0cmFjayBvZiBzdHViCglvZmZzZXQgdXNpbmcgX3Jhd19zaXplLgoJKGVsZjMyX2hwcGFfc2l6ZV9zdHVicyk6IExpa2V3aXNlLgoJKGVsZjMyX2hwcGFfYnVpbGRfc3R1YnMpOiBMaWtld2lzZS4KCShocHBhX3NpemVfb25lX3N0dWIpOiBMaWtld2lzZS4gIFJlc2l6ZSByZWxvYyBzZWN0aW9uIHRvby4KCgkqIGVsZjMyLWhwcGEuYyAoaHBwYV9hZGRfc3R1Yik6IENvcnJlY3QgZmlyc3RfaW5pdF9zZWMgYW5kCglmaXJzdF9maW5pX3NlYyBoYW5kbGluZy4gIERvbid0IHNlYXJjaCBmb3IgcmVsb2Mgc2VjdGlvbiBvciBzZXQKCWhwbGluay0+cmVsb2Nfc2VjdGlvbl9jcmVhdGVkIGhlcmUuCgkoZWxmMzJfaHBwYV9zaXplX3N0dWJzKTogSW5zdGVhZCBzZWFyY2ggZm9yIHJlbG9jIHNlY3Rpb25zLCBhbmQKCXNldCByZWxvY19zZWN0aW9uX2NyZWF0ZWQgaGVyZS4KCShocHBhX2hhbmRsZV9QSUNfY2FsbHMpOiBTZXQgRUxGX0xJTktfSEFTSF9ORUVEU19QTFQuCgkoZWxmMzJfaHBwYV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBNYWtlIGEgLnBsdCBlbnRyeSBmb3IgRFRfSU5JVAoJYW5kIERUX0ZJTkkuCgkoZWxmMzJfaHBwYV9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IFNldCBEVF9JTklUIGFuZCBEVF9GSU5JLgoKCSogZWxmMzItaHBwYS5jIChocHBhX2J1aWxkX29uZV9zdHViKTogUmVwbGFjZSBgZWxmX2hhc2hfdGFibGUgKGluZm8pJwoJd2l0aCBgaHBsaW5rLT5yb290LicuCgkoZWxmMzJfaHBwYV9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4KCShlbGYzMl9ocHBhX2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCShlbGYzMl9ocHBhX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKGhwcGFfaGFuZGxlX1BJQ19jYWxscyk6IExpa2V3aXNlLgoJKGVsZjMyX2hwcGFfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoZWxmMzJfaHBwYV9zZXRfZ3ApOiBMaWtld2lzZS4KCShlbGYzMl9ocHBhX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCShlbGYzMl9ocHBhX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKGVsZjMyX2hwcGFfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCglGcm9tICBEYXZpZCBIdWdnaW5zLURhaW5lcyAgPGRoZEBsaW51eGNhcmUuY29tPgoJKiBlbGYzMi1ocHBhLmMgKGhwcGFfdHlwZV9vZl9zdHViKTogR2VuZXJhdGUgaW1wb3J0IHN0dWJzIGZvcgoJZGVmaW5lZCB3ZWFrIHN5bWJvbHMgaW4gc2hhcmVkIGxpbmtzLgoJKGZpbmFsX2xpbmtfcmVsb2NhdGUpOiBDYWxscyB0byBkZWZpbmVkIHdlYWsgc3ltYm9scyBpbiBzaGFyZWQKCW9iamVjdHMgbXVzdCBnbyB2aWEgaW1wb3J0IHN0dWJzLCBhcyB0aGUgdGFyZ2V0IG1pZ2h0IG5vdCBiZSBrbm93bgoJYXQgbGluayB0aW1lLgoKMjAwMC0wOS0xNCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfaG93dG9fdGFibGUpOiBNb3ZlZCBSX1NIX0dPVDMyLCBSX1NIX1BMVDMyLAoJUl9TSF9DT1BZLCBSX1NIX0dMT0JfREFULCBSX1NIX0pNUF9TTE9ULCBSX1NIX1JFTEFUSVZFLAoJUl9TSF9HT1RPRkYsIFJfU0hfR09UUEMpIHRvIHRoZSByYW5nZSBmcm9tIDE2MCB0byAxNjcuICBSZXBsYWNlZAoJdGhlIG9yaWdpbmFsIGVudHJpZXMgd2l0aCBFTVBUWV9IT1dUT3MsIGFuZCBhZGRlZCBuZXcgb25lcyB0byBmaWxsCglpbiB0aGUgZ2FwLgoJKHNoX2VsZl9pbmZvX3RvX2hvd3RvKTogTWFrZSBzdXJlIHRoZSBuZXcgZ2FwIGlzbid0IHVzZWQuCgkoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDAtMDktMTMgIEFuZGVycyBOb3JsYW5kZXIgIDxhbm9ybGFuZEBhY2MudW11LnNlPgoKCSogY3B1LW1pcHMuYyAoYXJjaF9pbmZvX3N0cnVjdCk6IEFkZCBtaXBzOjRLCgkqIGJmZC1pbjIuaCAoYmZkX21hY2hfbWlwczRLKTogTmV3IGRlZmluZS4KCSogYXJjaHVyZXMuYzogQWRkIGJmZF9tYWNoX21pcHM0SyB0byBjb21tZW50LgoJKiBlbGYzMi1taXBzLmMgKF9iZmRfbWlwc19lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IFJldHVybgoJRV9NSVBTX0FSQ0hfMiBmb3IgYmZkX21hY2hfbWlwczRLLgoKMjAwMC0wOS0xMyAgTWFyY28gRnJhbnplbiA8bWFyY29mQHRoeXJvbi5jb20+CgoJKiBzb20uYyAoc29tX3dyaXRlX3N5bWJvbF9zdHJpbmdzKTogRG8gbm90IHVzZWQgZml4ZWQgYnVmZmVycywKCXVzZSBzaXplX3QgYXMgYSBjb3VudGVyLgoJKHNvbV93cml0ZV9zcGFjZV9zdHJpbmdzKTogU2ltaWxhcmx5LgoKMjAwMC0wOS0xMiAgSmFzb24gRWNraGFyZHQgIDxqbGVAY3lnbnVzLmNvbT4KCgkqIGVsZjMyLWk4NjAuYyAoZWxmMzJfaTg2MF9yZWxvY2F0ZV9wYzI2KTogTmV3IGZ1bmN0aW9uCglhbmQgcHJvdG90eXBlLgoJKGVsZjMyX2k4NjBfcmVsb2NhdGVfc2VjdGlvbik6IEludm9rZSBuZXcgZnVuY3Rpb24gZnJvbSBoZXJlLgoKMjAwMC0wOS0xMSAgTWljaGFlbCBTb2tvbG92ICA8bXNva29sb3ZAaXZhbi5IYXJoYW4uT1JHPgoKCSogZWxmLmMgKF9iZmRfZWxmX21ha2Vfc2VjdGlvbl9mcm9tX3NoZHIpOiBNYWtlIGRlYnVnX3NlY19uYW1lcwoJc3RhdGljLgoKMjAwMC0wOS0xMCAgTWljaGFlbCBTb2tvbG92ICA8bXNva29sb3ZAaXZhbi5IYXJoYW4uT1JHPgoKCSogY29mZi1tNjhrLmMgKGJmZF9tNjhrX2NvZmZfY3JlYXRlX2VtYmVkZGVkX3JlbG9jcyk6IEVtaXQgOCBOVUxzIGZvcgoJdGFyZ2V0IHNlY3Rpb24gbmFtZSBpbnN0ZWFkIG9mIGR1bXBpbmcgY29yZSB3aGVuIHRoZSB0YXJnZXQgc3ltYm9sIGlzCgl1bmRlZmluZWQuCgoyMDAwLTA5LTA5ICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIHJpc2NpeC5jOiBSZW1vdmUgREVGVU4uCgoyMDAwLTA5LTA4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogRG8gbm90Cglpbml0aWFsaXNlIGZsYWdzIGluIG91dHB1dCBiZmQgaWYgdGhlIGlucHV0IGJmZCBpcyB0aGUgZGVmYXVsdAoJYXJjaGl0ZWN0dXJlIHdpdGggdGhlIGRlZmF1bHQgZmxhZ3MuCgoyMDAwLTA5LTA4ICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIGFyY2hpdmUuYzogRml4IGZvcm1hdHRpbmcuCgkqIGNvZmYtYXJtLmM6IExpa2V3aXNlLgoJKiBkb2MvY2hldy5jOiBMaWtld2lzZS4KCjIwMDAtMDktMDggIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBzZWN0aW9uLmMgKGJmZF9nZXRfdW5pcXVlX3NlY3Rpb25fbmFtZSk6IFB1dCBhIGRvdCBiZWZvcmUgdGhlCgludW1lcmljIHN1ZmZpeC4KCjIwMDAtMDktMDcgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogZG9jL2NoZXcuYzogUmVtb3ZlIGFsbCB1c2VzIG9mIERFRlVOIGFuZCBERUZVTl9WT0lELgoJKiBlbGYuYzogRml4IGZvcm1hdHRpbmcuCgoyMDAwLTA5LTA3ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5iZmQgKHNoLSotbGludXgqKTogQWRkZWQuCgkqIGNvbmZpZ3VyZS5pbiAoYmZkX2VsZjMyX3NobGluX3ZlYywgYmZkX2VsZjMyX3NoYmxpbl92ZWMpOiBOZXcuCgkqIHRhcmdldHMuYzogRGVjbGFyZSB0aGVtLgoJKiBlbGYzMi1zaC1saW4uYzogTmV3IGZpbGUuCgkqIE1ha2VmaWxlLmFtOiBDb21waWxlIGl0LgoJKiBlbGYzMi1zaC5jOiBEb24ndCBvdmVycmlkZSBkZWZpbmVzIGZyb20gZWxmMzItc2gtbGluLmMuCgkqIGNvbmZpZ3VyZSwgTWFrZWZpbGUuaW46IFJlYnVpbHQuCgoyMDAwLTA5LTA2ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGN5Z251cy5jb20+CgoJKiB4Y29mZmxpbmsuYyAoeGNvZmZfbGlua19pbnB1dF9iZmQpOiBJbmNsdWRlIHRoZSAudG9jYnNzCglwc2VkdW8tc2VjdGlvbiB3aGVuIGRldGVybWluaW5nIHdoZXJlIHRoZSBUT0MgZW5kcy4KCgkqIGNvZmYtcnM2MDAwLmMgKF9iZmRfeGNvZmZfc3dhcF9hdXhfb3V0KTogVXNlIGJmZF9oX3B1dF8xNiB0bwoJb3V0cHV0IHhfdHZuZHggYXMgaXQgaXMgb25seSB0d28gYnl0ZXMgd2lkZS4KCgkqIGNvZmYtcnM2MDAwLmMgKHhjb2ZmX2hvd3RvX3RhYmxlKTogQSBtb2RpZmlhYmxlIGJyYW5jaC1hYnNvbHV0ZQoJcmVsb2MgaXMgMjYgb3IgMzIgYml0cyB3aWRlLgoKCSogY29mZi1yczYwMDAuYyAoX2JmZF94Y29mZl9ydHlwZTJob3d0byk6IFRoZSBiaXRzaXplIGlzIGlycmVsZXZhbnQKCWZvciByZWxvY3MgdGhhdCBkb24ndCBjaGFuZ2UgYW55dGhpbmcuICBBbHNvIGxvb2sgYXQgdGhlIGZ1bGwKCTYgYml0cyBvZiBiaXRzaXplLgoKMjAwMC0wOS0wNiAgUGhpbGlwIEJsdW5kZWxsICA8cGhpbGJAZ251Lm9yZz4KCgkqIGNvbmZpZy5iZmQgKGFybSotKi11Y2xpbnV4Kik6IE5ldyB0YXJnZXQuCgoyMDAwLTA5LTA2ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZTogUmVidWlsdCB3aXRoIG5ldyBsaWJ0b29sLm00LgoKMjAwMC0wOS0wNiAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIHNlY3Rpb24uYyAoYmZkX2dldF91bmlxdWVfc2VjdGlvbl9uYW1lKTogQXZvaWQgYysrIHJlc2VydmVkCgl3b3JkIGZvciB2YXJpYWJsZSBuYW1lLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAwLTA5LTA1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogcG8vYmZkLnBvdDogUmVnZW5lcmF0ZS4KCSogZG9jL2JmZGludC50ZXhpOiBSZW1vdmUgQ1ZTIGRhdGUgc3RyaW5nIC0gaXQgZm9pbHMgY29tcGFyZXMgd2l0aAoJbG9jYWwgdmVyc2lvbnMuCgoyMDAwLTA5LTA1ICBTdGV2ZW4gSm9obnNvbiAgPHNiam9obnNvbkBvemVtYWlsLmNvbS5hdT4KCgkqIGNwdS1wb3dlcnBjLmMgIChhcmNoX2luZm9fc3RydWN0KTogQWRkZWQgTVBDODYwIEZhbWlseSBlbnRyeS4KCjIwMDAtMDktMDUgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJU2hhcmVkIGxpYnJhcnkgYW5kIFBJQyBzdXBwb3J0LgoJKiBlbGYzMi1ocHBhLmMgKFBMVF9FTlRSWV9TSVpFKTogTmV3LgoJKEdPVF9FTlRSWV9TSVpFKTogTmV3LgoJKEVMRl9EWU5BTUlDX0lOVEVSUFJFVEVSKTogTmV3LgoJKFNUVUJfU1VGRklYKTogRGVmaW5lLgoJKExPTkdfQlJBTkNIX1BJQ19JTl9TSExJQik6IERlZmluZS4KCShSRUxBVElWRV9EWU5BTUlDX1JFTE9DUyk6IERlZmluZS4KCShlbnVtIGVsZjMyX2hwcGFfc3R1Yl90eXBlKTogTmV3LgoJKHN0cnVjdCBlbGYzMl9ocHBhX3N0dWJfaGFzaF9lbnRyeSk6IFJlbmFtZSBvZmZzZXQgdG8KCXN0dWJfb2Zmc2V0LiAgQWRkIGEgbnVtYmVyIG9mIG5ldyBmaWVsZHMuCgkoc3RydWN0IGVsZjMyX2hwcGFfbGlua19oYXNoX2VudHJ5KTogTmV3LgoJKHN0cnVjdCBlbGYzMl9ocHBhX2xpbmtfaGFzaF90YWJsZSk6IEFkZCBudW1lcm91cyBmaWVsZHMuICBSZW1vdmUKCWdsb2JhbF92YWx1ZS4KCShlbGYzMl9ocHBhX2hhc2hfdGFibGUpOiBSZW5hbWUgdG8gaHBwYV9saW5rX2hhc2hfdGFibGUuCgkoZWxmMzJfaHBwYV9zdHViX2hhc2hfbG9va3VwKTogUmVuYW1lIHRvIGhwcGFfc3R1Yl9oYXNoX2xvb2t1cC4KCShlbGYzMl9ocHBhX3N0dWJfaGFzaF9uZXdmdW5jKTogUmVuYW1lIHRvIHN0dWJfaGFzaF9uZXdmdW5jLiAgSW5pdAoJbmV3IGZpZWxkcy4KCShocHBhX2xpbmtfaGFzaF9uZXdmdW5jKTogTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX2hwcGFfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IFVzZSBhYm92ZSBmdW5jdGlvbi4gSW5pdCBuZXcKCWZpZWxkcy4KCShlbGYzMl9ocHBhX3N0dWJfbmFtZSk6IFJlbmFtZSB0byBocHBhX3N0dWJfbmFtZS4gIFBhc3MgaW4gcmVsb2MKCWluc3RlYWQgb2YgYWRkZW5kLCBhbmQgcmVtb3ZlIHN5bV9uYW1lIGZyb20gYXJncy4gIERvbid0IHVzZQoJc3ltYm9sIG5hbWUgZm9yIGxvY2FsIHN5bXMsIGluc3RlYWQgdXNlIHN5bSBpbmRleC4KCShlbGYzMl9ocHBhX3NpemVfb2Zfc3R1Yik6IFJlbmFtZSB0byBocHBhX3R5cGVfb2Zfc3R1YiwgYW5kIHJldHVybgoJc3R1YiB0eXBlIHJhdGhlciB0aGFuIHNpemUuICBQYXNzIGluIGhhc2ggYW5kIGhhbmRsZSBpbXBvcnQgc3R1YgoJY2FzZS4gIEFsc28gcGFzcyBpbiByZWxvYyBpbnN0ZWFkIG9mIG9mZnNldCBzbyB3ZSBjYW4gY2FsY3VsYXRlCglQQ1JFTDIyRiBhbmQgUENSRUwxMkYgYnJhbmNoZXMgcHJvcGVybHkuCgkoZWxmMzJfaHBwYV9idWlsZF9vbmVfc3R1Yik6IFJlbmFtZSB0byBocHBhX2J1aWxkX29uZV9zdHViLiAgQnVpbGQKCWltcG9ydCBhbmQgZXhwb3J0IHN0dWJzIHRvby4KCShlbGYzMl9ocHBhX3NpemVfb25lX3N0dWIpOiBSZW5hbWUgdG8gaHBwYV9zaXplX29uZV9zdHViLiAgSGFuZGxlCglpbXBvcnQgYW5kIGV4cG9ydCBzdHViIHNpemluZy4KCShlbGYzMl9ocHBhX2NoZWNrX3JlbG9jcyk6IE5ldyBmdW5jdGlvbi4KCShlbGYzMl9ocHBhX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IE5ldyBmdW5jdGlvbi4KCShocHBhX2Rpc2NhcmRfY29waWVzKTogTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX2hwcGFfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9iYWNrZW5kX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IERlZmluZS4KCShlbGYzMl9ocHBhX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IE5ldyBmdW5jdGlvbi4KCShlbGZfYmFja2VuZF9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBEZWZpbmUuCgkoZWxmMzJfaHBwYV9zaXplX3N0dWJzKTogU3Rhc2ggcGFyYW1zIGluIGxpbmsgaGFzaCB0YWJsZSwgYW5kIG1vdmUKCXNvbWUgbG9jYWwgdmFycyBpbnRvIHRoZSBsaW5rIGhhc2ggdGFibGUgdG9vLiAgRm9yIHNoYXJlZCBsaW5rcywKCXRydW5kbGUgb3ZlciBmdW5jdGlvbiBzeW1zLCBnZW5lcmF0aW5nIGV4cG9ydCBzdHVicy4gIEhhbmRsZQoJUENSRUwyMkYgYnJhbmNoZXMuICBCcmVhayBvdXQgc3R1YiBjcmVhdGlvbiBjb2RlIGZyb20gaGVyZS4uCgkoaHBwYV9hZGRfc3R1Yik6IC4uIHRvIGhlcmUuICBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfaHBwYV9maW5hbF9saW5rKTogUmVuYW1lIHRvIGVsZjMyX2hwcGFfc2V0X2dwLCBhbmQgZG9uJ3QKCWNhbGwgdGhlIGJmZCBsaW5rZXIuICBVc2UgZWxmX2dwIHRvIHJlY29yZCBnbG9iYWwgcG9pbnRlci4KCUNhbGN1bGF0ZSBhIHZhbHVlIGZyb20gc2VjdGlvbnMgaWYgJGdsb2JhbCQgaXMgbWlzc2luZy4KCShiZmRfZWxmMzJfYmZkX2ZpbmFsX2xpbmspOiBEZWZpbmUgYXMgX2JmZF9lbGYzMl9nY19jb21tb25fZmluYWxfbGluay4KCShlbGYzMl9ocHBhX2djX21hcmtfaG9vayk6IE5ldyBmdW5jdGlvbi4KCShlbGZfYmFja2VuZF9nY19tYXJrX2hvb2spOiBEZWZpbmUuCgkoZWxmMzJfaHBwYV9nY19zd2VlcF9ob29rKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9iYWNrZW5kX2djX3N3ZWVwX2hvb2spOiBEZWZpbmUuCgkoZWxmMzJfaHBwYV9iZmRfZmluYWxfbGlua19yZWxvY2F0ZSk6IFJlbmFtZSB0byBmaW5hbF9saW5rX3JlbG9jYXRlLgoJQWRkIHJlbCB0byBhcmdzLCBhbmQgcmVtb3ZlIGhvd3RvLCBpbnB1dF9iZmQsIG9mZnNldCwgYWRkZW5kLAoJc3ltX25hbWUgYXMgd2UgY2FuIHJlY2FsY3VsYXRlIHRoZXNlIGxvY2FsbHkuICBIYW5kbGUgY2FsbHMgdG8KCWR5bmFtaWMgb2JqZWN0cywgZXh0cmEgUElDIHJlbG9jcywgUENSRUwyMkYgYnJhbmNoZXMuICBDaGFuZ2UKCWhhbmRsaW5nIG9mIHVuZGVmaW5lZCB3ZWFrIHN5bXMuICBDaGVjayB0aGF0IHN0dWJzIGFyZSBpbiByYW5nZS4KCU9ubHkgbG9vayBmb3IgaW1wb3J0IHN0dWJzIG9uIFBDUkVMMTdGIGFuZCBQQ1JFTDIyRiByZWxvY3MuICBBZGQKCW1lc3NhZ2Ugb24gaGl0dGluZyBhIERQUkVMMjFMIHJlbG9jIHRoYXQgbmVlZHMgZml4aW5nLiAgU3VidHJhY3QKCW9mZiBQQyBmb3IgUENSRUwxNEYuICBCcmVhayBvdXQgY29kZSB0aGF0IGRvZXMgYSBzdHViIGxvb2t1cCBmcm9tCgloZXJlLi4KCShocHBhX2dldF9zdHViX2VudHJ5KTogLi50byBoZXJlLiAgTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX2hwcGFfcmVsb2NhdGVfaW5zbik6IE1lcmdlIGludG8gZmluYWxfbGlua19yZWxvY2F0ZS4KCShlbGYzMl9ocHBhX3JlbG9jYXRlX3NlY3Rpb24pOiBIYW5kbGUgZ290IGFuZCBwbHQgcmVsb2NzLCBkeW5hbWljCglyZWxvY3MsIGV0Yy4gZXRjLgoJKGVsZjMyX2hwcGFfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBOZXcgZnVuY3Rpb24uCgkoZWxmX2JhY2tlbmRfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBEZWZpbmUuCgkoZWxmX2JhY2tlbmRfZmluYWxfd3JpdGVfcHJvY2Vzc2luZykgRGVmaW5lLgoJKGhwcGFfaGFuZGxlX1BJQ19jYWxscyk6IE5ldyBmdW5jdGlvbi4KCShlbGYzMl9ocHBhX2J1aWxkX3N0dWJzKTogQ2FsbCBpdC4gIFBhc3MgbGlua19pbmZvIHRvCglocHBhX2J1aWxkX29uZV9zdHViLgoJKGVsZjMyX2hwcGFfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBOZXcgZnVuY3Rpb24KCXRvIGNyZWF0ZSAucGx0IGFuZCAuZ290IHRoZW4gc2V0IC5wbHQgZmxhZ3MgY29ycmVjdGx5LgoJKGVsZl9iYWNrZW5kX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogRGVmaW5lLgoJKGVsZjMyX2hwcGFfb2JqZWN0X3ApOiBOZXcgZnVuY3Rpb24uCgkoZWxmX2JhY2tlbmRfb2JqZWN0X3ApOiBEZWZpbmUuCgkoZWxmMzJfaHBwYV9lbGZfZ2V0X3N5bWJvbF90eXBlKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9iYWNrZW5kX2dldF9zeW1ib2xfdHlwZSk6IERlZmluZS4KCShlbGZfYmFja2VuZF9jYW5fZ2Nfc2VjdGlvbnMpOiBEZWZpbmUuCgkoZWxmX2JhY2tlbmRfd2FudF9nb3RfcGx0KTogRGVmaW5lLgoJKGVsZl9iYWNrZW5kX3BsdF9hbGlnbm1lbnQpOiBTZXQgdG8gMi4KCShlbGZfYmFja2VuZF9wbHRfcmVhZG9ubHkpOiBEZWZpbmUuCgkoZWxmX2JhY2tlbmRfd2FudF9wbHRfc3ltKTogRGVmaW5lLgoJKGVsZl9iYWNrZW5kX2dvdF9oZWFkZXJfc2l6ZSk6IFJlc2VydmUgb25lIGVudHJ5LgoKCSogZWxmMzItaHBwYS5oIChlbGYzMl9ocHBhX2J1aWxkX3N0dWJzKTogRG9uJ3QgcGFzcyBzdHViIGJmZC4KCShlbGYzMl9ocHBhX3NpemVfc3R1YnMpOiBQYXNzIGluIG11bHRpX3N1YnNwYWNlLgoJKGVsZjMyX2hwcGFfc2V0X2dwKTogRGVjbGFyZS4KCgkqIHNlY3Rpb24uYyAoU0VDX0hBU19HT1RfUkVGKTogRGVmaW5lIG5ldyBmbGFnIGZvciBhc2VjdGlvbi4KCShiZmRfZ2V0X3VuaXF1ZV9zZWN0aW9uX25hbWUpOiBOZXcgZnVuY3Rpb24uCgkqIGJmZF9pbjIuaDogUmVnZW5lcmF0ZS4KCgkqIGVsZjY0LWhwcGEuYyAoZWxmNjRfaHBwYV9jaGVja19yZWxvY3MpOiBIYW5kbGUgUl9QQVJJU0NfUENSRUwxMkYuCgkoZWxmNjRfaHBwYV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBSZW1vdmUgdGhlIEZJWE1FIGF0IGJmZF96YWxsb2MKCWNvbW1lbnQuCgoJRnJvbSAgRGF2aWQgSHVnZ2lucy1EYWluZXMgIDxkaGRAbGludXhjYXJlLmNvbT4KCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX2NoZWNrX3JlbG9jcyk6IEZpeCBhIHdhcm5pbmcuCgkoZWxmNjRfaHBwYV9tYXJrX2V4cG9ydGVkX2Z1bmN0aW9ucyk6IFNldCBkeW5faC0+c3Rfc2huZHguCgkoZWxmNjRfaHBwYV9saW5rX291dHB1dF9zeW1ib2xfaG9vayk6IFRlc3QgZHluX2gtPnN0X3NobmR4IGhhcwoJYmVlbiB1cGRhdGVkIGluIGZpbmlzaF9keW5hbWljX3N5bWJvbCBiZWZvcmUgbW9kaWZ5aW5nIGZ1bmN0aW9uCglzeW1ib2wuCgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9ob3d0b190YWJsZSk6IFJlc3RydWN0dXJlIGludG8gZ3JvdXBzIG9mCgllaWdodCBlbnRyaWVzLiAgUmVwbGFjZSBOVUxMIHdpdGggYmZkX2VsZl9nZW5lcmljX3JlbG9jLiAgQWRkCglSX1BBUklTQ19HTlVfVlRFTlRSWSwgUl9QQVJJU0NfR05VX1ZUSU5IRVJJVCBhbmQgUl9QQVJJU0NfUENSRUwxMkYuCgkoX2JmZF9lbGZfaHBwYV9nZW5fcmVsb2NfdHlwZSk6IEhhbmRsZSBSX1BBUklTQ19HTlVfVlQqLiAgQWRkIHNvbWUKCWNvbW1lbnRzLiAgSGFuZGxlIGZvcm1hdCA9PSAxMiBmb3IgUl9IUFBBX1BDUkVMX0NBTEwuCgkoZWxmX2hwcGFfZmluYWxfbGlua19yZWxvY2F0ZSk6IEhhbmRsZSBSX1BBUklTQ19QQ1JFTDEyRi4KCShlbGZfaHBwYV9yZWxvY2F0ZV9pbnNuKTogTGlrZXdpc2UuICBSZWZvcm1hdCBzb21lIGNvbW1lbnRzLgoJKGVsZl9ocHBhX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBFeHBvc2UgaXQgZm9yIEFSQ0hfU0laRSA9PSAzMi4KCglGcm9tIERhdmlkIEh1Z2dpbnMtRGFpbmVzICA8ZGhkQGxpbnV4Y2FyZS5jb20+CgkqIGVsZi1ocHBhLmggKGVsZl9ocHBhX2lzX2xvY2FsX2xhYmVsX25hbWUpOiBBY2NlcHQgdGhlIFN5c1YvRUxGCglzdHlsZSBvZiBsb2NhbCBsYWJlbHMgYXMgd2VsbC4KCjIwMDAtMDktMDMgIFBoaWxpcCBCbHVuZGVsbCAgPHBoaWxiQGdudS5vcmc+CgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCB0cnkgdG8gcmVsb2NhdGUKCXJlZmVyZW5jZXMgdG8gdW5kZWZpbmVkIHN5bWJvbHMgaW4gZGVidWdnaW5nIHNlY3Rpb25zLgoKMjAwMC0wOS0wMiAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogcmVsb2MuYyAoQkZEX1JFTE9DX1NIX0NPUFksIEJGRF9SRUxPQ19TSF9HTE9CX0RBVCwKCUJGRF9SRUxPQ19TSF9KTVBfU0xPVCwgQkZEX1JFTE9DX1NIX1JFTEFUSVZFLAoJQkZEX1JFTE9DX1NIX0dPVFBDKTogTW92ZSB0aGVtIGZyb20gdGhlIE1JUFMgc2VjdGlvbiB0byB0aGUgU0gKCXNlY3Rpb24uCgoyMDAwLTA5LTAyICBKYXNvbiBFY2toYXJkdCAgPGpsZUBjeWdudXMuY29tPgoKCSogZWxmMzItaTg2MC5jIChiZmRfZWxmMzJfYmZkX2lzX2xvY2FsX2xhYmVsX25hbWUpOiBEZWZpbmUgbWFjcm8uCgkoZWxmMzJfaTg2MF9pc19sb2NhbF9sYWJlbF9uYW1lKTogTmV3IGZ1bmN0aW9uIGFuZCBwcm90b3R5cGUuCgoyMDAwLTA5LTAyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmluOiBJbmNyZWFzZSB2ZXJzaW9uIG51bWJlciB0byAyLjEwLjkxLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGFjbG9jYWwubTQ6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy5pbjogUmVnZW5lcmF0ZS4KCSogcG8vYmZkLnBvdDogUmVnZW5lcmF0ZS4KCjIwMDAtMDktMDIgIERhbmllbCBCZXJsaW4gPGRiZXJsaW5AcmVkaGF0LmNvbT4KCgkqIGVsZi5jIChfYmZkX2VsZl9tYWtlX3NlY3Rpb25fZnJvbV9zaGRyKTogQWRkCgkuZ251LmxpbmtvYmNlLndpLiB0byB0aGUgbGlzdCBvZiBkZWJ1ZyBzZWN0aW9uIG5hbWVzLgoKMjAwMC0wOS0wMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGR3YXJmMi5jIChmaW5kX2RlYnVnX2luZm8pOiBOZXcgZnVuY3Rpb246IExvY2F0ZSBhIHNlY3Rpb24KCWNvbnRhaW5pbmcgZHdhcmYyIGRlYnVnIGluZm9ybWF0aW9uLgoJKGJmZF9kd2FyZjJfZmluZF9uZWFyZXN0X2xpbmUpOiBGaW5kIGFsbCBzZWN0aW9ucyBjb250YWluaW5nCglkZWJ1ZyBpbmZvcm1hdGlvbiBhbmQgaW5jbHVkZSB0aGVtIGluIHRoZSBzdGFzaC4KCjIwMDAtMDktMDEgIE5paWJlIFl1dGFrYSAgPGduaWliZUBtMTduLm9yZz4sIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPiwgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1zaC5jIChSX1NIX0dPVDMyLCBSX1NIX1BMVDMyLCBSX1NIX0NPUFksIFJfU0hfR0xPQl9EQVQsCglSX1NIX0pNUF9TTE9ULCBSX1NIX1JFTEFUSVZFLCBSX1NIX0dPVE9GRiwgUl9TSF9HT1RQQyk6IE5ldy4KCShzaF9yZWxvY19tYXApOiBBZGQgbmV3IHJlbG9jcy4KCShzaF9lbGZfY2hlY2tfcmVsb2NzLCBzaF9lbGZfbGlua19oYXNoX25ld2Z1bmMsCglzaF9lbGZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSwgc2hfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCwKCXNoX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMsIHNoX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wsCglzaF9lbGZfZmluaXNoZV9keW5hbWljX3NlY3Rpb25zLCBzaF9lbGZfZGlzY2FyZF9jb3BpZXMpOiBOZXcKCWZ1bmN0aW9ucy4KCShFTEZfRFlOQU1JQ19JTlRFUlBSRVRFUiwgUExUX0VOVFJZX1NJWkUpOiBEZWZpbmUuCgkoZWxmX3NoX3BsdDBfZW50cnlfYmUsIGVsZl9zaF9wbHQwX2VudHJ5X2xlLAoJZWxmX3NoX3BsdF9lbnRyeV9iZSwgZWxmX3NoX3BsdF9lbnRyeV9sZSwKCWVsZl9zaF9waWNfcGx0X2VudHJ5X2JlLCBlbGZfc2hfcGljX3BsdF9lbnRyeV9sZSk6CglOZXcgYXJyYXkgY29uc3RhbnRzLgoJKGVsZl9zaF9wbHQwX2VudHJ5LCBlbGZfc2hfcGx0X2VudHJ5LCBlbGZfc2hfcGljX3BsdF9lbnRyeSk6CglOZXcgdmFyaWFibGVzLgoJKGVsZl9zaF9zaXplb2ZfcGx0LCBlbGZfc2hfcGx0X3BsdDBfb2Zmc2V0LAoJZWxmX3NoX3BsdDBfbGlua2VyX29mZnNldCwgZWxmX3NoX3BsdDBfZ290aWRfb2Zmc2V0LAoJZWxmX3NoX3BsdF90ZW1wX29mZnNldCwgZWxmX3NoX3BsdF9zeW1ib2xfb2Zmc2V0LAoJZWxmX3NoX3BsdF9yZWxvY19vZmZzZXQpOiBEZWZpbmUuCgkoZWxmX3NoX3BjcmVsX3JlbG9jc19jb3BpZWQsIGVsZl9zaF9saW5rX2hhc2hfZW50cnksCgllbGZfc2hfbGlua19oYXNoX3RhYmxlKTogTmV3IHN0cnVjdHMuCgkoc2hfZWxmX2xpbmtfaGFzaF90cmF2ZXJzZSwgc2hfZWxmX2hhc2hfdGFibGUpOiBOZXcgbWFjcm9zLgoJKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uLCBzaF9lbGZfY2hlY2tfcmVsb2NzKTogSGFuZGxlIG5ldwoJcmVsb2NhdGlvbiB0eXBlcy4KCShlbGZfYmFja2VuZF9jcmVhdGVfZHluYW1pY19zZWN0aW9ucywKCWJmZF9lbGYzMl9iZmRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSwKCWVsZl9iYWNrZW5kX2FkanVzdF9keW5hbWljX3N5bWJvbCwKCWVsZl9iYWNrZW5kX3NpemVfZHluYW1pY19zZWN0aW9ucywKCWVsZl9iYWNrZW5kX2ZpbmlzaF9keW5hbWljX3N5bWJvbCwKCWVsZl9iYWNrZW5kX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zLCBlbGZfYmFja2VuZF93YW50X2dvdF9wbHQsCgllbGZfYmFja2VuZF9wbHRfcmVhZG9ubHksIGVsZl9iYWNrZW5kX3dhbnRfcGx0X3N5bSwKCWVsZl9iYWNrZW5kX2dvdF9oZWFkZXJfc2l6ZSwgZWxmX2JhY2tlbmRfcGx0X2hlYWRlcl9zaXplKToKCURlZmluZS4KCSogcmVsb2MuYyAoQkZEX1JFTE9DX1NIX0NPUFksIEJGRF9SRUxPQ19TSF9HTE9CX0RBVCwKCUJGRF9SRUxPQ19TSF9KTVBfU0xPVCwgQkZEX1JFTE9DX1NIX1JFTEFUSVZFLCBCRkRfUkVMT0NfU0hfR09UUEMpOgoJTmV3IHJlbG9jcy4KCSogYmZkLWluMi5oLCBsaWJiZmQuaDogUmVidWlsdC4KCjIwMDAtMDktMDEgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IFJldmVydCAyMDAwLTA4LTI3CgljaGFuZ2UuCgoyMDAwLTA4LTMxICBKIm9ybiBSZW5uZWNrZSA8YW15bGFhckBjeWdudXMuY28udWs+CgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfbWVyZ2VfcHJpdmF0ZV9kYXRhKTogSWYgaWJmZCdzIGVsZiBoZWFkZXIgZmxhZ3MKCW5vdCBpbml0aWFsaXplZCwgc2V0IHRoZW0gdG8gaW5kaWNhdGUgdGhlIFNIMSBpbnN0cnVjdGlvbiBzZXQuCgoyMDAwLTA4LTMxICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGFjaW5jbHVkZS5tNDogSW5jbHVkZSBsaWJ0b29sIGFuZCBnZXR0ZXh0IG1hY3JvcyBmcm9tIHRoZQoJdG9wIGxldmVsLgoJKiBhY2xvY2FsLm00LCBjb25maWd1cmU6IFJlYnVpbHQuCgoyMDAwLTA4LTI5ICBNaWNoYWVsIFNueWRlciAgPG1zbnlkZXJAc2VhZG9nLmN5Z251cy5jb20+CgoJKiBlbGYuYzogRWxpbWluYXRlIHJlZmVyZW5jZXMgdG8gX19zcGFyY3Y5IG1hY3JvOyByZXBsYWNlIHdpdGgKCWF1dG9jb25mIHZhcmlhYmxlcyBIQVZFX1BTSU5GTzMyX1QgZXRjLgoJKiBjb25maWd1cmUuaW46IEF1dG8tY29uZmlndXJlIEhBVkVfUFNJTkZPXzMyX1QsIEhBVkVfUFJQU0lORk8zMl9ULAoJSEFWRV9QU1RBVFVTMzJfVCwgSEFWRV9QUlNUQVRVUzMyX1QsIEhBVkVfUFJTVEFUVVMzMl9UX1BSX1dITy4KCSogY29uZmlnLmluOiBEaXR0by4KCSogYWNpbmNsdWRlLm00IChCRkRfSEFWRV9TWVNfUFJPQ0ZTX1RZUEUpIGRlZmluZSBfU1lTQ0FMTDMyIHNvIGl0IGNhbgoJZGV0ZWN0IHRoZSBhYm92ZSB0eXBlZGVmcy4gIChCRkRfSEFWRV9TWVNfUFJPQ0ZTX1RZUEVfTUVNQkVSKTogRGl0dG8uCgkqIGFjbG9jYWwubTQ6IERpdHRvLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAwLTA4LTI3ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9jaGVja19yZWxvY3MpOiBLZWVwIGluZm8gb24gcmVsb2NzIGNvcGllZAoJZm9yIGFueSBzaGFyZWQgbGluaywgbm90IGp1c3Qgc2hhcmVkIC1Cc3ltYm9saWMuCgkoZWxmX2kzODZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogQ2FsbCBlbGZfaTM4Nl9kaXNjYXJkX2NvcGllcyBvbgoJYW55IHNoYXJlZCBsaW5rLCBhbmQgcGFzcyBsaW5rIGluZm8gdG8gaXQuCgkoZWxmX2kzODZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogVXBkYXRlIGNvbW1lbnQuCgkoZWxmX2kzODZfZGlzY2FyZF9jb3BpZXMpOiBNb2RpZnkgdG8gZGlzY2FyZCByZWxvY3MgZm9yIHN5bWJvbHMKCXRoYXQgaGF2ZSBiZWVuIGZvcmNlZCBsb2NhbC4KCShlbGZfaTM4Nl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBEb24ndCBjb3B5IHJlbG9jcyBmb3Igc3ltYm9scwoJdGhhdCBoYXZlIGJlZW4gZm9yY2VkIGxvY2FsLgoKMjAwMC0wOC0yNCAgRGVuaXMgQ2hlcnR5a292ICA8ZGVuaXNjQG92ZXJ0YS5ydT4gJiBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBBbGxvdyBjb21tb24KCXN5bWJvbHMgdG8gaGF2ZSBhbiBhbGlnbm1lbnQgb2YgMSBpZiBleHBsaWNpdGx5IHJlcXVlc3RlZCwgYW5kCglub3Qgb3ZlcnJpZGRlbiBieSBvdGhlciBkZWZpbml0aW9ucy4KCjIwMDAtMDgtMjIgIERvdWcgS3dhbiA8ZGt3YW5AdHJhbnNtZXRhLmNvbT4KCgkqIGNvZmYtdzY1LmMgKENSRUFURV9MSVRUTEVfQ09GRl9UQVJHRVQpOiBGaXggdHlwby4KCSogY29mZmNvZGUuaCAoY29mZl9zZXRfZmxhZ3MpOiBBZGQgZGV0ZWN0aW9uIG9mIHc2NSBhcmNoaXRlY3R1cmUuCgoyMDAwLTA4LTIyICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGYtYmZkLmggKGVsZl9saW5rX2hhc2hfdGFibGUpOiBBZGQgcnVucGF0aC4KCgkqIGJmZC1pbi5oIChiZmRfZWxmX2dldF9ydW5wYXRoX2xpc3QpOiBOZXcgcHJvdG90eXBlLgoJKiBiZmQtaW4yLmg6IFJlYnVpbHQuCgoJKiBlbGYuYyAoX2JmZF9lbGZfbGlua19oYXNoX3RhYmxlX2luaXQpOiBJbml0aWFsaXplIHRoZQoJInJ1bnBhdGgiIGZpZWxkIHRvIE5VTEwuCgkoYmZkX2VsZl9nZXRfcnVucGF0aF9saXN0KTogTmV3IGZ1bmN0aW9uLgoKCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBSZWNvcmQgRFRfUlBBVEggYW5kCglEVF9SVU5QQVRIIGVudHJpZXMuCgoyMDAwLTA4LTIyICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKSBbUl9TSF9JTkQxMlcsCglSX1NIX0RJUjhXUE4sIFJfU0hfRElSOFdQWiwgUl9TSF9ESVI4V1BMXTogSGFuZGxlIHRoZW0KCWV4cGxpY2l0bHkuICBJbXByb3ZlIHZhbGlkYXRpb24gb2Ygcl90eXBlLgoKMjAwMC0wOC0yMSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBaZXJvIG91dCB0aGUKCWR5bmFtaWMgYWxsb2NhdGVkIGNvbnRlbnQgc3BhY2UuICBBZGQgYSBjb21tZW50IHRvIHJlbWluZCB1cyB0aGF0CglvbmUgZGF5IHRoaXMgb3VnaHQgdG8gYmUgZml4ZWQuCgkqIGVsZjMyLW02OGsuYyAoZWxmX202OGtfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGY2NC1ocHBhLmMgKGVsZjY0X2hwcGFfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgoyMDAwLTA4LTIxICBKYXNvbiBFY2toYXJkdCAgPGpsZUBjeWdudXMuY29tPgoKCSogZWxmMzItaTg2MC5jIChlbGYzMl9pODYwX3JlbG9jYXRlX3BjMTYpOiBKdXN0IHdyaXRlIHRoZSBpbW1lZGlhdGUKCWZpZWxkIHdpdGggdGhlIG5ld2x5IHJlbG9jYXRlZCB2YWx1ZSBpbnN0ZWFkIG9mIGFkZGluZyBpdCB0byB0aGUKCWV4aXN0aW5nIGltbWVkaWF0ZSBmaWVsZC4KCShlbGYzMl9pODYwX3JlbG9jYXRlX3NwbGl0bik6IExpa2V3aXNlLgoJKGVsZjMyX2k4NjBfcmVsb2NhdGVfaGlnaGFkaik6IExpa2V3aXNlLgoKMjAwMC0wOC0xNiAgSmFzb24gRWNraGFyZHQgIDxqbGVAY3lnbnVzLmNvbT4KCgkqIGVsZjMyLWk4NjAuYyAoZWxmMzJfaTg2MF9yZWxvY2F0ZV9wYzE2KTogSW1wbGVtZW50ZWQgZnVuY3Rpb24gKGl0Cgl3YXMgcHJldmlvdXNseSBqdXN0IGEgc3R1YikuCgoyMDAwLTA4LTE2ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfY3JlYXRlX2dvdF9zZWN0aW9uKTogRG9uJ3QgYWJvcnQoKS4KCUZvcm1hdHRpbmcgZml4ZXMuCgkoX2JmZF9lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCjIwMDAtMDgtMTYgIEFuZHJldyBNYWNsZW9kICA8YW1hY2xlb2RAY3lnbnVzLmNvbT4KCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBTZXQgcmVsb2NhdGlvbiBhZGRyZXNzCglmb3IgdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgdGhlIGJlZ2lubmluZyBvZiB0aGUgc2VjdGlvbi4KCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IERvbid0IGFsbG9jYXRlCglmb3VyIGV4dHJhIGVudHJpZXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgLnJlbGEucGx0IHNlY3Rpb24uCgkoc3BhcmM2NF9lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogQWRqdXN0IHRoZSBvZmZzZXQgaW4gdGhlIC5yZWxhLnBsdAoJc2VjdGlvbiB0byBhY2NvdW50IGZvciB0aGUgZm91ciByZXNlcnZlZCBlbnRyaWVzIGluIHRoZSAucGx0IHNlY3Rpb24uCgoyMDAwLTA4LTE1ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGN5Z251cy5jb20+CgoJKiB4Y29mZmxpbmsuYyAoX2JmZF9wcGNfeGNvZmZfcmVsb2NhdGVfc2VjdGlvbik6IEFkZCBvcmkgcjAscjAsMAoJdG8gdGhlIGxpc3Qgb2YgTk9QcyB3ZSByZWNvZ25pemUgYWZ0ZXIgYSBicmFuY2gtYW5kLWxpbmsuCglVc2UgdGhlIG9yaSBOT1Agd2hlbiBvbmUgaXMgbmVlZGVkLgoKCSogY29mZi1yczYwMDAuYyAoX2JmZF94Y29mZl9zbHVycF9hcm1hcCk6IEZpbmlzaCBpbXBsZW1lbnRhdGlvbgoJZm9yIGxhcmdlIGFyY2hpdmVzLgoKMjAwMC0wOC0xNCAgSmltIFdpbHNvbiAgPHdpbHNvbkBjeWdudXMuY29tPgoKCSogZWxmNjQtaWE2NC5jIChlbGY2NF9pYTY0X21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBIYW5kbGUKCUVGX0lBXzY0X1JFRFVDRURGUCwgRUZfSUFfNjRfQ09OU19HUCwgYW5kIEVGX0lBXzY0X05PRlVOQ0RFU0NfQ09OU19HUC4KCShlbGY2NF9pYTY0X3ByaW50X3ByaXZhdGVfYmZkX2RhdGEpOiBMaWtld2lzZS4gIEFsc28gaGFuZGxlCglFRl9JQV82NF9BQlNPTFVURS4KCjIwMDAtMDgtMTEgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmMzItc2guYyAoc2hfZWxmX3NldF9tYWNoX2Zyb21fZmxhZ3MpOiBNYWtlIGl0IHN0YXRpYy4KCjIwMDAtMDgtMTAgIEphc29uIEVja2hhcmR0ICA8amxlQGN5Z251cy5jb20+CgoJKiBlbGYzMi1pODYwLmMgKGVsZjMyX2k4NjBfcmVsb2NhdGVfc2VjdGlvbik6IE5ldyBmdW5jdGlvbi4KCShpODYwX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfaTg2MF9yZWxvY2F0ZV9zcGxpdG4pOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfaTg2MF9yZWxvY2F0ZV9wYzE2KTogTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX2k4NjBfcmVsb2NhdGVfaGlnaGFkaik6IE5ldyBmdW5jdGlvbi4KCShlbGYzMl9pODYwX2hvd3RvKTogTWlub3IgYWRqdXN0bWVudHMgdG8gc29tZSByZWxvY2F0aW9ucy4KCShlbGZfaW5mb190b19ob3d0b19yZWwpOiBEZWZpbmUuCgkoZWxmX2JhY2tlbmRfcmVsb2NhdGVfc2VjdGlvbik6IERlZmluZS4KCjIwMDAtMDgtMTAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBlbGYzMi1hcm0uaDogRml4IGZvcm1hdHRpbmcuCgoyMDAwLTA4LTEwICBCZXJuZCBTY2htaWR0ICA8YmVybmRzQGN5Z251cy5jby51az4KCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9yZWxvY19sb29wKTogTWFrZSBMQVNUX1NZTUJPTF9TRUNUSU9OIHN0YXRpYy4KCjIwMDAtMDgtMDggIEphc29uIEVja2hhcmR0ICA8amxlQGN5Z251cy5jb20+CgoJKiBlbGYzMi1pODYwLmMgKGVsZjMyX2k4NjBfaG93dG9fdGFibGUpOiBVcGRhdGVkIHNvbWUgZmllbGRzLgoKMjAwMC0wOC0wNyAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBpZWVlLmMgKGllZWVfd3JpdGVfZGVidWdfcGFydCk6IFJld3JpdGUgYSBjb21tZW50LgoJKiBlbGY2NC1pYTY0LmM6IEZpeCBhIHR5cG8uCgoyMDAwLTA4LTA1ICBKYXNvbiBFY2toYXJkdCAgPGpsZUBjeWdudXMuY29tPgoKCSogZWxmMzItaTg2MCAoZWxmMzJfaTg2MF9ob3d0b190YWJsZSk6IE5ldyBzdHJ1Y3R1cmUuCgkobG9va3VwX2hvd3RvKTogTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX2k4NjBfcmVsb2NfdHlwZV9sb29rdXApOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfaTg2MF9pbmZvX3RvX2hvd3RvX3JlbGEpOiBOZXcgZnVuY3Rpb24uCgkoZWxmX2NvZGVfdG9faG93dG9faW5kZXgpOiBOZXcgc3RydWN0dXJlLgoJKGVsZl9pbmZvX3RvX2hvd3RvKTogUmUtZGVmaW5lIGFzIGVsZjMyX2k4NjBfaW5mb190b19ob3d0b19yZWxhLgoJKGJmZF9lbGYzMl9iZmRfcmVsb2NfdHlwZV9sb29rdXApOiBSZS1kZWZpbmUgYXMKCWVsZjMyX2k4NjBfcmVsb2NfdHlwZV9sb29rdXAuCgoyMDAwLTA4LTA0ICBSb2RuZXkgQnJvd24gIDxSb2RuZXlCcm93bkBwbXNjLmNvbT4KCgkqIHNvbS5jIChzdHJ1Y3QgZml4dXBfZm9ybWF0KTogQ29uc3RpZnkgYGZvcm1hdCcuCgkoc29tX2hwcGFfaG93dG9fdGFibGUpOiBVc2UgU09NX0hPV1RPIG1hY3JvLgoJKHRyeV9wcmV2X2ZpeHVwLCBocHBhX3NvbV9yZWxvYyk6IERlY29yYXRlIHVudXNlZCBwYXJhbWV0ZXIuCgkoc29tX2JmZF9yZWxvY190eXBlX2xvb2t1cCk6IExpa2V3aXNlLgoJKGNvbXBhcmVfc3Vic3BhY2VzKTogUmVtb3ZlIHVudXNlZCBgY291bnQxJywgYGNvdW50MicuCgkoc29tX2JlZ2luX3dyaXRpbmcpOiBSZW1vdmUgdW51c2VkIGB0b3RhbF9yZWxvY19zaXplJy4KCShzb21fYmZkX2Rlcml2ZV9taXNjX3N5bWJvbF9pbmZvKTogRGVjb3JhdGUgdW51c2VkIHBhcmFtZXRlci4KCShzb21fcHJpbnRfc3ltYm9sLCBzb21fYmZkX2lzX2xvY2FsX2xhYmVsX25hbWUpOiBMaWtld2lzZS4KCShzb21fc2V0X3JlbG9jX2luZm8pOiBDb25zdGlmeSBgY3AnLiBSZW1vdmUgdW51c2VkIGBhZGRlbmQnLgoJKHNvbV9maW5kX25lYXJlc3RfbGluZSk6IERlY29yYXRlIHVudXNlZCBwYXJhbWV0ZXIocykuCgkoc29tX3NpemVvZl9oZWFkZXJzLCBzb21fZ2V0X3N5bWJvbF9pbmZvLCBzb21fd3JpdGVfYXJtYXApOiBMaWtld2lzZS4KCShzb21fYmZkX2xpbmtfc3BsaXRfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMC0wOC0wMyAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIHNlY3Rpb24uYzogUmVzdG9yZSBiYWNrZWQgb3V0IGNvZGUuCgkqIGVsZi5jOiBSZXN0b3JlIGJhY2tlZCBvdXQgY29kZS4KCShjb3B5X3ByaXZhdGVfYmZkX2RhdGEpOiBGaXggYnVnIHByZXZlbnRpbmcgc3RpcHBlZCBkeW5hbWljCgliaW5hcmllcyBmcm9tIHdvcmtpbmcuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDAtMDgtMDMgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIHNlY3Rpb24uYzogQmFjayBvdXQgdGhlIGNoYW5nZSBtYWRlIGJ5IE5pY2sgQ2xpZnRvbgoJPG5pY2tjQGN5Z251cy5jb20+IG9uIDIwMDAtMDctMzEuIEl0IGJyZWFrcyBzdHJpcHBpbmcgZHluYW1pYwoJYmluYXJpZXMuCgkqIGJmZC1pbjIuaDogTGlrZXdpc2UuCgkqIGVsZi5jOiBMaWtld2lzZS4KCjIwMDAtMDgtMDMgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmMzItc2guYyAoc2hfZWxmX3JlbG9jX2xvb3ApOiBXYXJuaW5nIHJlbW92YWwuCgoyMDAwLTA3LTMxICBKYXNvbiBFY2toYXJkdCAgPGpsZUBjeWdudXMuY29tPgoKCSogcmVsb2MuYyAoQkZEX1JFTE9DXzg2MF8qKTogTmV3IGJmZCByZWxvY3MgZm9yIGk4NjAuCgkqIGJmZC1pbjIuaCwgbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgoyMDAwLTA3LTMxICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogc2VjdGlvbi5jIChzdHJ1Y3Qgc2VjKTogQWRkIG5ldyBib29sZWFuIGZpZWxkICdzZWdtZW50X21hcmsnLgoJKFNURF9TRUNUSU9OKTogSW5pdGlhbGlzZSBuZXcgZmllbGQgdG8gemVyby4KCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCgkqIGVsZi5jIChjb3B5X3ByaXZhdGVfYmZkX2RhdGEpOiBSZW9yZ2FuaXNlIHNlY3Rpb24gdG8gc2VnbWVudAoJbWFwcGluZyB0byBjb3BlIHdpdGggbW92ZWQgc2VjdGlvbnMgcmVxdWlyaW5nIG5ldyBzZWdtZW50cywKCWFuZCBvdmVybGFwcGluZyBzZWdtZW50cy4KCShTRUdNRU5UX0VORCk6IE5ldyBtYWNybzogUmV0dXJuIHRoZSBlbmQgYWRkcmVzcyBvZiBhIHNlZ21lbnQuCgkoSVNfQ09OVEFJTkVEX0JZX1ZNQSk6IE5ldyBtYWNybzogRGV0ZXJtaW5lIGlmIGEgc2VnbWVudAoJY29udGFpbnMgYSBzZWN0aW9uIGJ5IGNvbXBhcmluZyB0aGVpciBWTUEgYWRkcmVzc2VzLgoJKElTX0NPTlRBSU5FRF9CWV9MTUEpOiBOZXcgbWFjcm86IERldGVybWluZSBpZiBhIHNlZ21lbnQKCWNvbnRhaW5zIGEgc2VjdGlvbiBieSBjb21wYXJpbmcgdGhlaXIgTE1BIGFkZHJlc3Nlcy4KCShJTkNMVURFX1NFQ1RJT05fSU5fU0VHTUVOVCk6IE5ldyBtYWNybzogRGV0ZXJtaW5lIGlmIGEKCXNlY3Rpb24gc2hvdWxkIGJlIGluY2x1ZGVkIGluIGEgc2VnbWVudC4KCShTRUdNRU5UX0FGVEVSX1NFR01FTlQpOiBOZXcgbWFjcm86IERldGVybWluZSBpZiBvbmUgc2VnbWVudAoJZm9sbG93cyBhbm90aGVyIGluIG1lbW9yeS4KCShTRUdNRU5UX09WRVJMQVBTX1NFR01FTlQpOiBOZXcgbWFjcm86IERldGVybWluZSBpZiB0d28KCXNlZ21lbnRzIG92ZXJsYXAuCgoyMDAwLTA3LTIyICBKYXNvbiBFY2toYXJkdCAgPGpsZUBjeWdudXMuY29tPgoKCSogY3B1LWk4NjAuYzogQWRkZWQgY29tbWVudHMuCgoJKiBlbGYzMi1pODYwLmMgKFRBUkdFVF9MSVRUTEVfU1lNKTogRGVmaW5lZCB0bwoJYmZkX2VsZjMyX2k4NjBfbGl0dGxlX3ZlYy4KCShUQVJHRVRfTElUVExFX05BTUUpOiBEZWZpbmVkIHRvICJlbGYzMi1pODYwLWxpdHRsZSIuCgkoRUxGX01BWFBBR0VTSVpFKTogQ2hhbmdlZCB0byA0MDk2LgoKCSogdGFyZ2V0cy5jIChiZmRfZWxmMzJfaTg2MF9saXR0bGVfdmVjKTogRGVjbGFyYXRpb24gb2YKCW5ldyB0YXJnZXQuCgkoYmZkX3RhcmdldF92ZWN0b3IpOiBBZGRlZCBiZmRfZWxmMzJfaTg2MF9saXR0bGVfdmVjLgoKCSogY29uZmlnLmJmZCAoaTg2MC1zdGFyZGVudC1zeXN2NCosIGk4NjAtc3RhcmRlbnQtZWxmKik6IEFkZGVkCgljb25maWcgZm9yIGxpdHRsZSBlbmRpYW4gZWxmMzIgaTg2MC4KCSh0YXJnX2RlZnZlYyk6IERlZmluZSBmb3IgdGhlIG5ldyBjb25maWcgYWJvdmUKCWFzICJiZmRfZWxmMzJfaTg2MF9saXR0bGVfdmVjIi4KCSh0YXJnX3NlbHZlY3MpOiBEZWZpbmUgZm9yIHRoZSBuZXcgY29uZmlnIGFib3ZlCglhcyAiYmZkX2VsZjMyX2k4NjBfdmVjIGJmZF9lbGYzMl9pODYwX2xpdHRsZV92ZWMiCgoJKiBjb25maWd1cmUuaW4gKGJmZF9lbGYzMl9pODYwX2xpdHRsZV92ZWMpOiBBZGRlZCByZWNvZ25pdGlvbgoJb2YgbmV3IHRhcmdldCB2ZWMuCgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKMjAwMC0wNy0yNyAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChlbGZfbWVyZ2Vfc3ltYm9sKTogVGFrZSBvbmUgbW9yZSBhcmd1bWVudCwKCWR0X25lZWRlZCwgdG8gaW5kaWNhdGUgaWYgdGhlIHN5bWJvbCBjb21lcyBmcm9tIGEgRFRfTkVFREVECgllbnRyeS4gRG9uJ3Qgb3ZlcmlkZSB0aGUgZXhpc3Rpbmcgd2VhayBkZWZpbml0aW9uIGlmIGR0X25lZWRlZAoJaXMgdHJ1ZS4KCShlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBQYXNzIGR0X25lZWRlZCB0bwoJZWxmX21lcmdlX3N5bWJvbCAoKS4KCjIwMDAtMDctMjcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX3NpemVfcmVsb2Nfc2VjdGlvbik6IFplcm9lcyB0aGUgc2VjdGlvbidzCglhbGxvY2F0ZWQgY29udGVudHMuCgoyMDAwLTA3LTI1ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGN5Z251cy5jb20+CgoJKiBjb25maWd1cmUuaG9zdCAoKi0qLWFpeCopOiBBSVggaGFzICdsb25nIGxvbmcnIGFsd2F5cy4KCgkqIGNvZmYtcnM2MDAwLmMgKHhjb2ZmX3dyaXRlX29uZV9hcm1hcF9iaWcpOiBOZXcgcHJvY2VkdXJlLgoJKHhjb2ZmX3dyaXRlX2FybWFwX2JpZyk6IFdyaXRlIGJvdGggMzItYml0IGFuZCA2NC1iaXQgYXJtYXBzLgoJKHhjb2ZmX3dyaXRlX2FyY2hpdmVfY29udGVudHNfYmlnKTogRG9uJ3QgdXBkYXRlIHRoZSBvZmZzZXQKCW9mIHRoZSBzeW1ib2wgdGFibGUsIHhjb2ZmX3dyaXRlX2FybWFwIHdpbGwgZG8gaXQuCgoyMDAwLTA3LTIzICBVbGYgQ2FybHNzb24gIDx1bGZjQGVuZ3Iuc2dpLmNvbT4KCgkqIGVsZjMyLW1pcHMuYyAoX2JmZF9taXBzX2VsZl9jaGVja19yZWxvY3MpOiBVc2UgYWJmZCBpbnN0ZWFkCglvZiBkeW5vYmogZm9yIFNHSV9DT01QQVQgY2hlY2tzLgoKMjAwMC0wNy0yMSAgTWljaGFlbCBTb2tvbG92ICA8bXNva29sb3ZAaXZhbi5IYXJoYW4uT1JHPgoKCSogY29mZi1tNjhrLmMgKGJmZF9tNjhrX2NvZmZfY3JlYXRlX2VtYmVkZGVkX3JlbG9jcyk6IE5ldyBmdW5jdGlvbi4KCSogYmZkLWluLmggKGJmZF9tNjhrX2NvZmZfY3JlYXRlX2VtYmVkZGVkX3JlbG9jcyk6IEFkZCBkZWNsYXJhdGlvbi4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMC0wNy0yMSAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIGVsZjMyLW1pcHMuYyAoX2JmZF9taXBzX2VsZl9jaGVja19yZWxvY3MpOiBEZXRlY3Qgb3V0IG9mCglyYW5nZSBzeW1ib2wgaW5kaWNlcyBpbiByZWxvY3MgYW5kIGlzc3VlIGFuIGVycm9yIG1lc3NhZ2UuCgoyMDAwLTA3LTIwICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGZsaW5rLmggKE5BTUUoYmZkX2VsZixzaXplX2R5bmFtaWNfc2VjdGlvbnMpKTogRG9uJ3QgY2hlY2sKCWluZm8tPm5ld19kdGFncyB3aGVuIHNldHRpbmcgRFRfRkxBR1NfMS4gSXQgd2lsbCBvbmx5IGJlIHNldAoJYnkgdGhlIG5ldyBsaW5rZXIgb3B0aW9ucy4gSXQgc2hvdWxkbid0IGJyZWFrIGFueXRoaW5nLgoKMjAwMC0wNy0yMCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChOQU1FKGJmZF9lbGYsc2l6ZV9keW5hbWljX3NlY3Rpb25zKSk6IFNldCBEVF9GTEFHU18xCglvbmx5IGlmIGluZm8tPm5ld19kdGFncyBpcyB0cnVlLgoKMjAwMC0wNy0yMCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChOQU1FKGJmZF9lbGYsc2l6ZV9keW5hbWljX3NlY3Rpb25zKSk6IFNldAoJRFRfUlVOUEFUSCBhbmQgRFRfRkxBR1Mgb25seSBpZiBpbmZvLT5uZXdfZHRhZ3MgaXMgdHJ1ZS4KCjIwMDAtMDctMjAgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogTWFrZWZpbGUuYW0gKEFMTF9NQUNISU5FUyk6IEFkZCBjcHUtY3Jpcy5sby4KCShBTExfTUFDSElORVNfQ0ZJTEVTKTogQWRkIGNwdS1jcmlzLmMuCgkoQkZEMzJfQkFDS0VORFMpOiBBZGQgYW91dC1jcmlzLmxvIGFuZCBlbGYzMi1jcmlzLmxvLgoJKEJGRDMyX0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCBhb3V0LWNyaXMuYyBhbmQgZWxmMzItY3Jpcy5jLgoJKGNwdS1jcmlzLmxvLCBhb3V0LWNyaXMubG8sIGVsZjMyLWNyaXMubG8pOiBOZXcgcnVsZXMuCgkqIE1ha2VmaWxlLmluOiBSZWJ1aWxkLgoJKiBhY2xvY2FsLm00OiBSZWJ1aWxkLgoJKiBhb3V0eC5oIChOQU1FKGFvdXQsbWFjaGluZV90eXBlKSk6IEFkZCBjYXNlIGZvciBiZmRfYXJjaF9jcmlzLgoJKiBhcmNodXJlcy5jIChlbnVtIGJmZF9hcmNoaXRlY3R1cmUpOiBBZGQgYmZkX2FyY2hfY3Jpcy4KCShiZmRfY3Jpc19hcmNoKTogRGVjbGFyZS4KCShiZmRfYXJjaHVyZXNfbGlzdCk6IEFkZCBiZmRfY3Jpc19hcmNoLgoJKiBiZmQtaW4yLmg6IFJlYnVpbGQuCgkqIGNvbmZpZy5iZmQ6IChjcmlzLSotKik6IE5ldyB0YXJnZXQuCgkqIGNvbmZpZ3VyZS5pbiAoYmZkX2VsZjMyX2NyaXNfdmVjLCBjcmlzX2FvdXRfdmVjKTogTmV3IHZlY3RvcnMuCgkqIGNvbmZpZ3VyZTogUmVidWlsZC4KCSogZWxmLmMgKHByZXBfaGVhZGVycyk6IEFkZCBiZmRfYXJjaF9jcmlzLgoJKiBsaWJiZmQuaDogUmVidWlsZC4KCSogbGliYW91dC5oIChlbnVtIG1hY2hpbmVfdHlwZSk6IEFkZCBNX0NSSVMuCgkqIHJlbG9jLmM6IEFkZCBDUklTIHJlbG9jYXRpb25zLgoJKiB0YXJnZXRzLmMgKGJmZF9lbGYzMl9jcmlzX3ZlYywgY3Jpc19hb3V0X3ZlYyk6IERlY2xhcmUuCgkoYmZkX3RhcmdldF92ZWN0KTogQWRkIGJmZF9lbGYzMl9jcmlzX3ZlYyBhbmQgY3Jpc19hb3V0X3ZlYy4KCSogY3B1LWNyaXMuYywgYW91dC1jcmlzLmMsIGVsZjMyLWNyaXMuYzogTmV3IGZpbGVzLgoJKiBwby9QT1RGSUxFUy5pbiwgcG8vYmZkLnBvdDogUmVnZW5lcmF0ZS4KCjIwMDAtMDctMTkgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogQWxzbyBzZXQKCURGX1RFWFRSRUwgaWYgRFRfVEVYVFJFTCBpcyBzZXQuCgkqIGVsZjMyLWkzNzAuYyAoaTM3MF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGsuYyAoZWxmX202OGtfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjMyLW1pcHMuYyAoX2JmZF9taXBzX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmMgKHBwY19lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGY2NC1pYTY0LmMgKGVsZjY0X2lhNjRfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoKCSogZWxmbGluay5oIChOQU1FKGJmZF9lbGYsc2l6ZV9keW5hbWljX3NlY3Rpb25zKSk6IEFsc28KCXNldCBERl9TWU1CT0xJQyBmb3Igc3ltYm9saWMgbGluay4gQWxzbyBzZXQgRFRfUlVOUEFUSCBpZgoJRFRfUlBBVEggaXMgc2V0LgoJU2V0IHRoZSBEVF9GTEFHUyBhbmQgRFRfRkxBR1NfMSBlbnRyaWVzIGlmIG5lY2Vzc2FyeS4KCjIwMDAtMDctMTkgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGJmZC1pbi5oIChiZmRfZWxmX3NldF9kdF9uZWVkZWRfc29uYW1lKTogTmV3LgoJKiBiZmQtaW4yLmg6IFJlYnVpbGQuCgoJKiBlbGYtYmZkLmggKGVsZl9vYmpfdGRhdGEpOiBBZGQgZHRfc29uYW1lLgoJKGVsZl9kdF9zb25hbWUpOiBOZXcuCgoJKiBlbGYuYyAoYmZkX2VsZl9zZXRfZHRfbmVlZGVkX3NvbmFtZSk6IE5ldy4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogQWRkIHRoZSBEVF9ORUVERUQKCWVudHJ5IGlmIHRoZSBzaGFyZWQgb2JqZWN0IGxvYWRlZCBieSBEVF9ORUVERUQgaXMgdXNlZCB0bwoJcmVzb2x2ZSB0aGUgcmVmZXJlbmNlIGluIGEgcmVndWxhciBvYmplY3QuCgoyMDAwLTA3LTE5ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGYuYyAoX2JmZF9lbGZfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IEhhbmRsZSBEVF9DT05GSUcsCglEVF9ERVBBVURJVCBhbmQgRFRfQVVESVQgYXMgc3RyaW5ncy4KCjIwMDAtMDctMTkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBmb3JtYXQuYzogRml4IGZvcm1hdHRpbmcuCgoyMDAwLTA3LTE5ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGYuYyAoX2JmZF9lbGZfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IEZpeCBEVF9DSEVDS1NVTS4KCjIwMDAtMDctMTkgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVsZi5jIChfYmZkX2VsZl9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogSGFuZGxlIERUX0JJTkRfTk9XLAoJRFRfSU5JVF9BUlJBWSwgRFRfRklOSV9BUlJBWSwgRFRfSU5JVF9BUlJBWVNaLCBEVF9GSU5JX0FSUkFZU1osCglEVF9SVU5QQVRILCBEVF9GTEFHUywgRFRfUFJFSU5JVF9BUlJBWSwgRFRfUFJFSU5JVF9BUlJBWVNaLAoJRFRfUExUUEFEU1osIERUX01PVkVFTlQsIERUX01PVkVTWiwgRFRfRkVBVFVSRSwgRFRfUE9TRkxBR18xLAoJRFRfU1lNSU5TWiwgRFRfU1lNSU5FTlQsIERUX0NPTkZJRywgRFRfREVQQVVESVQsIERUX0FVRElULAoJRFRfUExUUEFELCBEVF9NT1ZFVEFCLCBEVF9TWU1JTkZPLCBEVF9SRUxBQ09VTlQsIERUX1JFTENPVU5ULAoJRFRfRkxBR1NfMSwgRFRfVVNFRCBhbmQgRFRfQ0hFQ0tTVU0uCgoyMDAwLTA3LTE4ICBBbmRyZXcgQ2FnbmV5ICA8Y2FnbmV5QGIxLmN5Z251cy5jb20+CgoJKiBlbGYuYyAoYmZkX2VsZl9nZXRfc2lnbl9leHRlbmRfdm1hLCBiZmRfZWxmX2dldF9hcmNoX3NpemUpOiBNb3ZlCglyZW5hbWVkIGZ1bmN0aW9ucyBmcm9tIGhlcmUuLi4KCShhc3NpZ25fc2VjdGlvbl9udW1iZXJzKTogVXNlIHJlbmFtZWQgZnVuY3Rpb25zLgoJKHByZXBfaGVhZGVycyk6IFVzZSByZW5hbWVkIGZ1bmN0aW9ucy4KCgkqIGJmZC5jIChiZmRfZ2V0X3NpZ25fZXh0ZW5kX3ZtYSwgYmZkX2dldF9hcmNoX3NpemUpOiAuLi5UbyBoZXJlLgoJKiBiZmQtaW4uaCAoYmZkX2dldF9zaWduX2V4dGVuZF92bWEsIGJmZF9nZXRfYXJjaF9zaXplKTogVXBkYXRlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAwLTA3LTE4ICBVbGYgQ2FybHNzb24gIDx1bGZjQGVuZ3Iuc2dpLmNvbT4KCgkqIGVsZjMyLW1pcHMuYyAoX2JmZF9taXBzX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBBZGQKCXBhcmVudGhlc2lzIGluIGlmIHN0YXRlbWVudC4KCjIwMDAtMDctMTcgIEtvdW5kaW55YSBLICA8a2tAZGRlb3JnLnNvZnQubmV0PgoKCUVuYWJsZSB0aGUgc3VwcG9ydCBmb3IgVHJhZGl0aW9uYWwgTUlQUy4KCSogZWxmMzItbWlwcy5jIChJUklYX0NPTVBBVCk6IFJlY29nbml6ZSBiZmRfZWxmMzJfdHJhZGJpZ21pcHNfdmVjYW5kCglyZXR1cm4gaWN0X25vbmUgYXBwcm9wcmlhdGVseSBmb3IgdHJhZGl0aW9uYWwgbWlwcyB0YXJnZXRzLgoJKFNUVUJfTFcpOiBDaGFuZ2UgMHg4Zjk5ODAwMCB0byAweDhmOTk4MDEwIGZvciB0cmFkaXRpb25hbCBtaXBzLgoJKFNUVUJfTU9WRSk6IENvbmRpdGlvbmFsaXplIGZvciB0cmFkaXRvbmFsIG1pcHMuCgkoU1RVQl9MSTE2KTogTGlrZXdpc2UuCgkoX2JmZF9taXBzX2VsZl9tb2RpZnlfc2VnbWVudF9tYXApOiBDb25kaXRpb25hbGl6ZSB0byBhdm9pZCBtYWtpbmcKCXJvb20gZm9yIFJUUFJPQyBoZWFkZXIuCgkoX2JmZF9taXBzX2VsZl9tb2RpZnlfc2VnbWVudF9tYXApOiBGb3IgYSBub3JtYWwgbWlwcyBleGVjdXRhYmxlIHNldAoJdGhlIHBlcm1pc3Npb24gZm9yIHRoZSBQVF9EWU5BTUlDIGFzIHJlYWQsIHdyaXRlIGFuZCBleGVjdXRlLgoJKG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogQ2hlY2sgZm9yIHRoZSBzeW1ib2wgX0RZTkFNSUNfTElOS0lORwoJZm9yIHRyYWRpdG9uYWwgbWlwcy4KCShfYmZkX21pcHNfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogQWRkIHRoZSBzeW1ib2wKCV9EWU5BTUlDX0xJTktJTkcgZm9yIHRyYWRpdG9uYWwgbWlwcy4KCShfYmZkX21pcHNfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogQWRkIHRoZSBzeW1ib2wgX19STERfTUFQCglpbiBjYXNlIG9mIHRyYWRpdG9uYWwgbWlwcy4KCShfYmZkX21pcHNfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IENyZWF0ZSBhIHN0dWIgb25seSBpZiBhIFBMVAoJZW50cnkgaXMgcmVxdWlyZWQuIEZvciBhIGZ1bmN0aW9uIGlmIFBMVCBpcyBub3QgcmVxdWlyZWQgdGhlbiBzZXQgdGhlCgljb3JyZXNwb25kaW5nIGhhc2ggdGFibGUgZW50cnkgdG8gMC4KCShfYmZkX21pcHNfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IEFkZCBEVF9ERUJVRyBlbnRyeSBmb3IKCXRyYWRpdG9uYWwgbWlwcy4KCShfYmZkX21pcHNfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IGZvciBhIHVuZGVmaW5lZCBzeW1ib2wgaW4gYQoJc2hhcmVkIG9iamVjdCBzZXQgdGhlIHZhbHVlIHRvIDAuCgkoX2JmZF9taXBzX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBDaGVjayBmb3IgdGhlIHN5bWJvbAoJX0RZTkFNSUNfTElOS0lORyBmb3IgdHJhZGl0b25hbCBtaXBzLgoJKF9iZmRfbWlwc19lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogQ2hlY2sgZm9yIHRoZSBzeW1ib2wgX19STERfTUFQCglmb3IgdHJhZGl0b25hbCBtaXBzLgoKMjAwMC0wNy0xNSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogYW91dHguaCAodHJhbnNsYXRlX3RvX25hdGl2ZV9zeW1fZmxhZ3MpOiBIYW5kbGUgQlNGX0xPQ0FMLgoKMjAwMC0wNy0xMiAgQ2hhcmxlcyBXaWxzb24gIDxjd2lsc29uQGVjZS5nYXRlY2guZWR1PgoKCSogbGliYmZkLmMgKGJmZF9zZWVrKTogZml4ICdzZWVrIGJleW9uZCBFT0YnIGVycm9yIHdoZW4gd3JpdGluZwoJb3V0IGEgc3RydWN0dXJlIHRoYXQgaXMgQkZEX0lOX01FTU9SWS4KCjIwMDAtMDctMTEgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBlbGY2NC1ocHBhLmMgKGdldF9keW5fbmFtZSk6IFBhc3MgaW4gc2VjdGlvbiBwb2ludGVyIGluc3RlYWQgb2YKCWJmZCBwb2ludGVyLiAgUHJpbnQgc2VjdGlvbiBpZCBpbnN0ZWFkIG9mIGJmZCBwb2ludGVyIGZvciBsb2NhbAoJc3ltcy4gIFByZWZpeCBhZGRlbmQgd2l0aCBgKycgZm9yIGdsb2JhbCBzeW1zIGFzIHdlbGwgYXMgbG9jYWwuCglDb3JyZWN0IGNhbGN1bGF0aW9uIG9mIG5hbWUgY29tcG9uZW50IGxlbmd0aHMuCgkoZWxmNjRfaHBwYV9jaGVja19yZWxvY3MpOiBVcGRhdGUgY2FsbCB0byBnZXRfZHluX25hbWUuCgoJRnJvbSBEYXZpZCBIdWdnaW5zLURhaW5lcyAgPGRoZEBsaW51eGNhcmUuY29tPgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogVXBkYXRlIGNhbGxzIGhlcmUgdG9vLgoJKiBlbGY2NC1ocHBhLmMgKGVsZjY0X2hwcGFfY2hlY2tfcmVsb2NzKTogRml4IHNvbWUgd2FybmluZ3MuCgkoZWxmNjRfaHBwYV9tb2RpZnlfc2VnbWVudF9tYXApOiBMaWtld2lzZS4KCjIwMDAtMDctMTEgIEFuZHJldyBDYWduZXkgIDxjYWduZXlAYjEuY3lnbnVzLmNvbT4KCgkqIGVsZi5jIChiZmRfZWxmX2dldF9zaWduX2V4dGVuZF92bWEpOiBSZXR1cm4gdGVuZGVuY3kgb2YgVk1BCglhZGRyZXNzZXMgdG8gYmUgIm5hdHVyYWxseSIgc2lnbiBleHRlbmRlZC4gIFJldHVybiAtMSBpZiB1bmtub3duLgoJKiBiZmQtaW4uaCAoYmZkX2VsZl9nZXRfc2lnbl9leHRlbmRfdm1hKTogQWRkIGRlY2xhcmF0aW9uLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAwLTA3LTExICBBbmRyZXcgQ2FnbmV5ICA8Y2FnbmV5QGIxLmN5Z251cy5jb20+CgoJKiBlY29mZnN3YXAuaCAoZWNvZmZfZ2V0X29mZiwgZWNvZmZfcHV0X29mZik6IEFkZCBFQ09GRl9TSUdORURfMzIKCWFuZCBFQ09GX1NJR05FRF82NCB0byBsaXN0IHdheXMgdG8gZXh0cmFjdCBhbiBvZmZzZXQuCgkoZWNvZmZfc3dhcF9mZHJfaW4sIGVjb2ZmX3N3YXBfZmRyX291dCwgZWNvZmZfc3dhcF9wZHJfaW4sCgllY29mZl9zd2FwX3Bkcl9vdXQsIGVjb2ZmX3N3YXBfZXh0X2luLCBlY29mZl9zd2FwX2V4dF9vdXQpOgoJVXBkYXRlLgoJKiBlbGY2NC1taXBzLmMgKEVDT0ZGX1NJR05FRF82NCk6IERlZmluZSBpbnN0ZWFkIG9mIEVDT0ZGXzY0LgoJKiBlbGYzMi1taXBzLmMgKEVDT0ZGX1NJR05FRF8zMik6IERlZmluZSBpbnN0ZWFkIG9mIEVDT0ZGXzMyLgoKMjAwMC0wNy0xMSAgQW5kcmV3IENhZ25leSAgPGNhZ25leUBiMS5jeWdudXMuY29tPgoKCSogZWxmY29kZS5oIChlbGZfb2JqZWN0X3ApOiBVc2UgYmZkX3NldF9zdGFydF9hZGRyZXNzIGFuZCBub3QKCWJmZF9nZXRfc3RhcnRfYWRkcmVzcy4KCShlbGZfc3dhcF9laGRyX2luKTogU2lnbiBleHRlbmQgZV9lbnRyeSB3aGVuIGFwcGxpY2FibGUuCgkoZWxmX3N3YXBfZWhkcl9vdXQpOiBEaXR0by4KCjIwMDAtMDctMTAgIEFsZXhhbmRlciBBZ2FuaWNoZXYgIDxBQWdhbmljaGV2QGh5cGVyY29tLmNvbT4KCgkqIGFyY2h1cmVzLmMgKGJmZF9kZWZhdWx0X3NjYW4pOiBBZGQgc2V0IG9mIGJmZF9tYWNoXyBjYXNlcyBmb3IKCWNvbXBhdGliaWxpdHkgd2l0aCBvbGRlciBiaW51dGlscy4KCjIwMDAtMDctMTAgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBzZWN0aW9uLmMgKGJmZF9tYWtlX3NlY3Rpb25fYW55d2F5KTogU3RhcnQgc2VjdGlvbl9pZCBhdCAweDEwLgoJKFNURF9TRUNUSU9OKTogQXZvaWQgbmVnYXRpdmUgaWRzLCBpbnN0ZWFkIHVzZSAwIHRvIDMuCgoJRnJvbSBSeWFuIEJyYWRldGljaCAgPHJicmFkZXRpY2hAdXN3ZXN0Lm5ldD4KCSogZHdhcmYxLmMgKHBhcnNlX2RpZSk6IEN1cmUgc2lnbmVkL3Vuc2lnbmVkIGNoYXIgd2FybmluZ3MuCgkocGFyc2VfbGluZV90YWJsZSk6IERpdHRvLgoJKF9iZmRfZHdhcmYxX2ZpbmRfbmVhcmVzdF9saW5lKTogRGl0dG8uCgkqIHN5bXMuYyAoY21waW5kZXhlbnRyeSk6IFJlbW92ZSBleHRyYSBgKicgZnJvbSBwYXJhbXMuCgoyMDAwLTA3LTA5ICBLb3VuZGlueWEgSyAgPGtrQGRkZW9yZy5zb2Z0Lm5ldD4KCgkqIGVsZjMyLW1pcHMuYyAoc29ydF9keW5hbWljX3JlbG9jcyk6IE5ldyBGdW5jdGlvbi4KCShfYmZkX21pcHNfZWxmX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogQ2FsbCBzb3J0X2R5bmFtaWNfcmVsb2NzCgl2aWEgcXNvcnQgdG8gc29ydCB0aGUgZHluYW1pYyByZWxvY2F0aW9ucyBpbiBpbmNyZWFzaW5nIHJfc3ltbmR4Cgl2YWx1ZS4KCjIwMDAtMDctMDkgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBlbGY2NC1ocHBhLmMgKGVsZjY0X2hwcGFfZHluX2hhc2hfdGFibGVfaW5pdCk6IEFkZAoJQVRUUklCVVRFX1VOVVNFRCB0byB1bnVzZWQgYXJncy4KCShnZXRfb3BkKTogTGlrZXdpc2UuCgkoZ2V0X3BsdCk6IExpa2V3aXNlLgoJKGdldF9kbHQpOiBMaWtld2lzZS4KCShnZXRfc3R1Yik6IExpa2V3aXNlLgoJKGVsZjY0X2hwcGFfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgkoZWxmNjRfaHBwYV9saW5rX291dHB1dF9zeW1ib2xfaG9vayk6IExpa2V3aXNlLgoJKGVsZjY0X2hwcGFfY2hlY2tfcmVsb2NzKTogRGVsZXRlIHVudXNlZCB2YXIuCgkoZWxmNjRfaHBwYV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShlbGY2NF9ocHBhX2ZpbmFsaXplX29wZCk6IExpa2V3aXNlLgoJKGVsZjY0X2hwcGFfZmluYWxpemVfZHlucmVsb2MpOiBMaWtld2lzZS4KCShlbGY2NF9ocHBhX21vZGlmeV9zZWdtZW50X21hcCk6IExpa2V3aXNlLgoJKGVsZjY0X2hwcGFfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCgkqIGVsZi1ocHBhLmggKGVsZl9ocHBhX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBBZGQKCUFUVFJJQlVURV9VTlVTRUQgdG8gdW51c2VkIGFyZ3MuCgkoZWxmX2hwcGFfZmluYWxfbGlua19yZWxvY2F0ZSk6IExpa2V3aXNlLgoJKGVsZl9ocHBhX3JlY29yZF9zZWdtZW50X2FkZHJzKTogQWRkIHBhcmV0aGVzZXMuCgkoZWxmX2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IENvbnN0aWZ5IGR5bl9uYW1lLgoKCUZyb20gIERhdmlkIEh1Z2dpbnMtRGFpbmVzICA8ZGhkQGxpbnV4Y2FyZS5jb20+CgkqIGNvbmZpZy5iZmQ6IEFkZCBocHBhKjY0Ki0qLWxpbnV4LWdudSA2NC1iaXQgdGFyZ2V0LCBhbmQKCXJlYXJyYW5nZSBjYXNlIHN0YXRlbWVudCBzbyB0aGF0IGl0IGdldHMgcHJlZmVycmVkIHRvIDMyLWJpdCBvbmVzLgoKCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2JmZF9maW5hbF9saW5rX3JlbG9jYXRlKTogVXNlCglhc2VjdGlvbi0+aWQgaW5zdGVhZCBvZiBhZGRyZXNzIG9mIGFzZWN0aW9uIHN0cnVjdHVyZS4KCShlbGYzMl9ocHBhX3NpemVfc3R1YnMpOiBMaWtld2lzZS4KCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9zaXplX3N0dWJzKTogVXNlIGp1c3Qgb25lIHN0dWIgc2VjdGlvbgoJZm9yIC5pbml0KiBhbmQgLmZpbmkqLgoKCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2JmZF9maW5hbF9saW5rX3JlbG9jYXRlKTogTWFzayBwb2ludGVycwoJYW5kIGFkZGVuZHMgdXNlZCBpbiBzdHViIG5hbWVzIHRvIDMyIGJpdHMuCgkoZWxmMzJfaHBwYV9zaXplX3N0dWJzKTogTGlrZXdpc2UuCgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9maW5hbF9saW5rX3JlbG9jYXRlKTogRG9uJ3Qgc3VtIGFkZGVuZAoJdHdpY2UgZm9yIFJfUEFSSVNDX0dQUkVMNjQuICBVc2UgYmZkX3B1dF8zMiBmb3IgUl9QQVJJU0NfUENSRUwzMiwKCW5vdCBiZmRfcHV0XzY0LiAgRml4IG1pbm9yIGNvbW1lbnQgdHlwbyBhbmQgZm9ybWF0dGluZy4KCglDaGFuZ2VzIHRvIGNyZWF0ZSBtdWx0aXBsZSBsaW5rZXIgc3R1YnMsIHBvc2l0aW9uZWQgaW1tZWRpYXRlbHkKCWJlZm9yZSB0aGUgc2VjdGlvbiB3aGVyZSB0aGV5IGFyZSByZXF1aXJlZC4KCSogZWxmMzItaHBwYS5jOiBEb24ndCBpbmNsdWRlIGhwcGFfc3R1YnMuaC4KCShlbGYzMl9ocHBhX3N0dWJfaGFzaF9lbnRyeSk6IEFkZCBhIHBvaW50ZXIgdG8gdGhlIHN0dWIgc2VjdGlvbi4KCShlbGYzMl9ocHBhX3N0dWJfaGFzaF90YWJsZSk6IERlbGV0ZS4KCShlbGYzMl9ocHBhX2xpbmtfaGFzaF9lbnRyeSk6IERlbGV0ZS4KCShlbGYzMl9ocHBhX2xpbmtfaGFzaF90YWJsZSk6IFVzZSBwbGFpbiBiZmRfaGFzaF90YWJsZSBmb3IKCXN0dWJfaGFzaF90YWJsZSwgYW5kIHN0b3JlIHRoZSBzdHJ1Y3QgaGVyZSByYXRoZXIgdGhhbiBhIHBvaW50ZXIuCglEZWxldGUgb3V0cHV0X3N5bWJvbF9jb3VudC4gIEFkZCBvZmZzZXQgYXJyYXkuICBDaGFuZ2UKCWdsb2JhbF92YWx1ZSB0byBhIGJmZF92bWEuCgkoZWxmMzJfaHBwYV9zdHViX2hhc2hfbG9va3VwKTogVXNlIHRhYmxlIGluc3RlYWQgb2YgdGFibGUtPnJvb3QuCgkoZWxmMzJfaHBwYV9zdHViX2hhc2hfdHJhdmVyc2UpOiBEZWxldGUuCgkoZWxmMzJfaHBwYV9uYW1lX29mX3N0dWIpOiBEZWxldGUuCgkoZWxmMzJfaHBwYV9saW5rX2hhc2hfbG9va3VwKTogRGVsZXRlLgoJKGVsZjMyX2hwcGFfbGlua19oYXNoX3RyYXZlcnNlKTogRGVsZXRlLgoJKGVsZjMyX2hwcGFfc3R1Yl9oYXNoX3RhYmxlX2luaXQpOiBEZWxldGUuCgkoZWxmMzJfaHBwYV9zaXplX29mX3N0dWIpOiBQYXNzIGlucHV0IHNlY3Rpb24gYW5kIG9mZnNldCByYXRoZXIKCXRoYW4gbG9jYXRpb24gYW5kIGNhbGN1bGF0ZSBsb2NhdGlvbiBoZXJlLiAgRG9uJ3QgcGFzcyBuYW1lIGFzIGFsbAoJc3R1YnMgYXJlIG5vdyB0aGUgc2FtZSBzaXplLgoJKGVsZjMyX2hwcGFfc3R1Yl9oYXNoX25ld2Z1bmMpOiBJbml0IG5ldyBmaWVsZHMuCgkoZWxmMzJfaHBwYV9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UsIGFuZCBzdHViX2hhc2hfdGFibGUKCXRvby4KCShlbGYzMl9ocHBhX2JmZF9maW5hbF9saW5rX3JlbG9jYXRlKTogQ2FzdCBlbnVtcyB0byBpbnQgYmVmb3JlCgljb21wYXJpbmcgYWdhaW5zdCBpbnRzLiAgUmV3cml0ZSBzdHViIGhhbmRsaW5nIGNvZGUuCgkoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogTWFrZSByX3R5cGUgYW5kIHJfc3ltbmR4IHVuc2lnbmVkLgoJQ2FzZSBlbnVtcyB0byBpbnQgYmVmb3JlIGNvbXBhcmluZyBhZ2FpbnN0IGludHMuICBSZW1vdmUKCWJmZF9yZWxvY19kYW5nZXJvdXMgY2FzZS4KCShlbGYzMl9ocHBhX2J1aWxkX29uZV9zdHViKTogUmV3cml0ZS4KCShlbGYzMl9ocHBhX3NpemVfb25lX3N0dWIpOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfaHBwYV9idWlsZF9zdHVicyk6IFJld3JpdGUuCgkoZWxmMzJfaHBwYV9zaXplX3N0dWJzKTogUGFzcyBpbiBsaW5rZXIgY2FsbC1iYWNrIGZ1bmN0aW9ucy4KCVJld3JpdGUgc3R1Yi1oYW5kbGluZyBzcGVjaWZpYyBjb2RlLgoKCSogZWxmMzItaHBwYS5oIChlbGYzMl9ocHBhX3NpemVfc3R1YnMpOiBVcGRhdGUgcHJvdG90eXBlLgoKCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX2R5bl9oYXNoX2VudHJ5KTogRml4IGEgY29tbWVudCB0eXBvLgoKCSogaHBwYV9zdHVicy5oOiBEZWxldGUuCgkqIE1ha2VmaWxlLmFtIChTT1VSQ0VfSEZJTEVTKTogUmVtb3ZlIGhwcGFfc3R1YnMuaAoJKGVsZjMyLWhwcGEubG8pOiBSZW1vdmUgaHBwYV9zdHVicy5oIGZyb20gZGVwZW5kZW5jaWVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCgkqIGVsZi1ocHBhLmggKF9iZmRfZWxmX2hwcGFfZ2VuX3JlbG9jX3R5cGUpOiBIYW5kbGUgZV9ubHNlbCBhbmQKCWVfbmxyc2VsLgoKCSogbGliaHBwYS5oIChocHBhX2ZpZWxkX2FkanVzdCk6IENvcnJlY3QgZV9uc2VsIGNhc2UuCgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IE1lbnRpb24gdGhlIG9mZnNldAoJYW5kIHNlY3Rpb24gbmFtZSBmb3IgYmZkX3JlbG9jX25vdHN1cHBvcnRlZCBlcnJvciBtZXNzYWdlLgoJKGVsZjMyX2hwcGFfYmZkX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBQcmludCByZWFzb25zIGZvciByZXR1cm5pbmcKCWJmZF9yZWxvY19ub3RzdXBwb3J0ZWQuCgkoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogQWRkIEFUVFJJQlVURV9VTlVTRUQgdG8gb3V0cHV0X2JmZC4KCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9iZmRfZmluYWxfbGlua19yZWxvY2F0ZSk6IEhhbmRsZQoJdW5kZWZpbmVkIHdlYWsgc3ltYm9scyBmb3IgYWxsIHJlbG9jcy4KCShlbGYzMl9ocHBhX3NpemVfb2Zfc3R1Yik6IEFkanVzdCBjYWxjdWxhdGlvbiBieSA4IHNpbmNlIGJyYW5jaAoJb2Zmc2V0cyBhcmUgcmVsYXRpdmUgdG8gb25lIHBhc3QgdGhlIGRlbGF5IHNsb3QuCgkoZWxmMzJfaHBwYV9zaXplX3N0dWJzKTogQWNjb3VudCBmb3IgcmVsb2MgYWRkZW5kIHdoZW4gY2FsY3VsYXRpbmcKCWJyYW5jaCBkZXN0aW5hdGlvbi4gIFB1dCBhZGRlbmQgaW50byBzdHViIG5hbWUgdG9vLgoJKGVsZjMyX2hwcGFfYmZkX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBBY2NvdW50IGZvciByZWxvYyBhZGRlbmQgYW5kCglhZGp1c3QgYnkgOCB3aGVuIGRlY2lkaW5nIHdoZXRoZXIgYSBsaW5rZXIgc3R1YiBpcyBuZWVkZWQuICBQdXQKCWFkZGVuZCBpbnRvIHN0dWIgbmFtZSBhcyBmb3IgYWJvdmUuCgoJKiBlbGYzMi1ocHBhLmMgKGhwcGFfZWxmX3JlbG9jYXRlX2luc24pOiBDaGFuZ2Ugc2lnbmVkL3Vuc2lnbmVkIG9uCgl2YXJpb3VzIGFyZ3MgYW5kIHZhcnMuCgkoZWxmMzJfaHBwYV9iZmRfZmluYWxfbGlua19yZWxvY2F0ZSk6IEhlcmUgdG9vLgoJKGVsZjMyX2hwcGFfc2l6ZV9zdHVicyk6IFJlbmFtZSBpbmRleCAtPiBpbmR4LiAgVXNlIGVfaW5keCBmb3IKCWlubmVyIGJsb2NrIHZhciB0byBhdm9pZCBzaGFkb3dpbmcuCgoJKiBlbGYzMi1ocHBhLmggKF9iZmRfZWxmMzJfaHBwYV9nZW5fcmVsb2NfdHlwZSk6ICBNYWtlIGBmaWVsZCcgYXJnCgl1bnNpZ25lZC4KCSogZWxmNjQtaHBwYS5oIChfYmZkX2VsZjY0X2hwcGFfZ2VuX3JlbG9jX3R5cGUpOiBEaXR0by4KCSogZWxmLWhwcGEuaCAoX2JmZF9lbGZfaHBwYV9nZW5fcmVsb2NfdHlwZSk6IERpdHRvLgoJKGVsZl9ocHBhX2Zha2Vfc2VjdGlvbnMpOiBSZW5hbWUgbG9jYWwgdmFyIHRvIGF2b2lkIHNoYWRvd2luZy4KCgkqIGxpYmhwcGEuaDogQ2hhbmdlIHByYWN0aWNhbGx5IGFsbCB1bnNpZ25lZCBpbnRzIHRvIHBsYWluIGludHMuCglSZW1vdmUgdGVzdHMgb24gZ2NjIHZlcnNpb24uICBJbnN0ZWFkIHVzZSBBVFRSSUJVVEVfVU5VU0VEIGZvcgoJcHJvdG90eXBlcy4KCglGcm9tIFJ5YW4gQnJhZGV0aWNoICA8cmJyYWRldGljaEB1c3dlc3QubmV0PgoJKiBsaWJocHBhLmggKGhwcGFfb3Bjb2RlX3R5cGUpOiBOZXcgZW51bSB0byByZXBsYWNlICNkZWZpbmUncy4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2JmZF9maW5hbF9saW5rX3JlbG9jYXRlKTogTW9kaWZ5IHRvCglzdWl0IGFib3ZlLgoJRnJvbSAgRGF2aWQgSHVnZ2lucy1EYWluZXMgIDxkaGRAbGludXhjYXJlLmNvbT4KCSogZWxmLWhwcGEuaCAoZWxmX2hwcGFfcmVsb2NhdGVfaW5zbik6IFVwZGF0ZSB0aGUgb3Bjb2RlIGNvbnN0YW50cwoJdG8gdGhlIG5ldyBPUF8qIG9uZXMuCgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfc2l6ZV9zdHVicyk6IENvbnNvbGlkYXRlIGZyZWVpbmcgb24KCWVycm9yIGV4aXQuICBCYWlsIG91dCBlYXJsaWVyIG9uIHBsYWJlbCByZWxvY3MgdGhhdCB3ZSBhcmVuJ3QKCWludGVyZXN0ZWQgaW4uICBEb24ndCB0ZWxsIGVsZjMyX2hwcGFfc3R1Yl9oYXNoX2xvb2t1cCB0byBjb3B5CglzdHJpbmcsIGFuZCB0aGVuIGRvbid0IGZyZWUgb3VyIGNvcHkuCgkoZWxmMzJfaHBwYV9idWlsZF9vbmVfc3R1Yik6IE1ha2UgaW5zbiB1bnNpZ25lZCBpbnQuCgoJKiBsaWJocHBhLmggKGJmZF9ocHBhX2luc24yZm10KTogMjIgYml0IGJyYW5jaGVzIGFyZSBvbmx5CglhdmFpbGFibGUgd2l0aCBCTCwgbm90IEJFIGFuZCBCTEUuCgoJKiBlbGYzMi1ocHBhLmMgKGhwcGFfZWxmX3JlbG9jYXRlX2luc24pOiBBZGQgc29tZSBtb3JlIGV4YW1wbGUKCWNvZGUgZm9yIGVsZiBhcmcgcmVsb2NzLgoJKGVsZjMyX2hwcGFfYmZkX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBSZXBsYWNlIGJvb2xlYW4gaXNfbG9jYWwKCWFyZ3VtZW50IHdpdGggZWxmX2xpbmtfaGFzaF9lbnRyeSBoLiAgSGFuZGxlIHVuZGVmaW5lZCB3ZWFrCglzeW1ib2xzLiAgTW92ZSAkZ2xvYmFsJCBsb29rdXAgZnJvbSBoZXJlLi4uCgkoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogLi4udG8gaGVyZS4gIFJldHVybiBjb3JyZWN0IGVycm9yCgltZXNzYWdlIGZvciBub24taGFuZGxlZCByZWxvY3MuCgkoZWxmMzJfaHBwYV9zaXplX29mX3N0dWIpOiBDb3JyZWN0bHkgdGVzdCBicmFuY2ggcmFuZ2UuICBQcmV2aW91cwoJd3JvbmcgdGVzdCB3YXMgLTB4M2ZmZmYgdG8gKzB4NDAwMDAuCgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9maW5hbF9saW5rX3JlbG9jYXRlKTogUl9QQVJJU0NfRElSMTdSLAoJUl9QQVJJU0NfRElSMTdGLCBhbmQgUl9QQVJJU0NfRElSMjFMIGFyZSBmb3IgYWJzb2x1dGUgYnJhbmNoZXM7CglIYW5kbGUgdGhlbSBhcyBzdWNoLgoJKGVsZl9ocHBhX3JlbG9jYXRlX2luc24pOiBGaXggYSB0eXBvLgoKCSogbGliaHBwYS5oIChHRVRfRklFTEQsIEdFVF9CSVQsIE1BU0ssIENBVEVOQVRFLCBFTEVWRU4pOiBEZWxldGUuCgkoYXNzZW1ibGVfMywgYXNzZW1ibGVfNiwgYXNzZW1ibGVfMTIsIGFzc2VtYmxlXzE2LCBhc3NlbWJsZV8xNmEsCglhc3NlbWJsZV8xNywgYXNzZW1ibGVfMjEpOiBEZWxldGUuCglTdXBwbHkgZGVmaW5lcyBmb3IgYWxsIDY0IHBvc3NpYmxlIG9wY29kZXMuCgkoYmZkX2hwcGFfaW5zbjJmbXQpOiBBZGQgYmZkIGFyZ3VtZW50LCBhbmQgdXNlIHRvIHNlbGVjdCB3aWRlIG1vZGUKCWZvcm1hdHMuICBIYW5kbGUgQ09NSUNMUi4KCShocHBhX3JlYnVpbGRfaW5zbik6IERlbGV0ZSBiZmQgYXJndW1lbnQuICBIYW5kbGUgZm9ybWF0cyAxMCwgLTExLAoJLTEwLCAtMTYsIDE2LCAyMi4KCgkqIGVsZjMyLWhwcGEuYyAoaHBwYV9lbGZfcmVsb2NhdGVfaW5zbik6IENvbXBsZXRlIHJld3JpdGUuCgkoZWxmMzJfaHBwYV9iZmRfZmluYWxfbGlua19yZWxvY2F0ZSk6IE1ham9yIHJld3JpdGUuCgkoZWxmMzJfaHBwYV9idWlsZF9vbmVfc3R1Yik6IE1vZGlmeSBocHBhX2VsZl9yZWxvY2F0ZV9pbnNuIGNhbGxzCgl0byBzdWl0LgoJKGVsZjMyX2hwcGFfc2l6ZV9zdHVicyk6IERvbid0IGZyZWUgc3R1Yl9uYW1lIHR3aWNlLiAgUmVhZCBpbiBhbGwKCXRoZSBsb2NhbCBzeW1zIC0gZGlkIHRoaXMgY29kZSBnZXQgZGVsZXRlZCBhY2NpZGVudGFsbHk/ICBJZ25vcmUKCXVuZGVmaW5lZCBhbmQgdW5kZWZ3ZWFrIHN5bXMuCgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9maW5hbF9saW5rKTogTW92ZSBocHBhX2luZm8gdG8gb3V0ZXJtb3N0CglibG9jay4gIFVzZSBpdCBpbnN0ZWFkIG9mIGVsZjY0X2hwcGFfaGFzaF90YWJsZSAoaW5mbykuCgkoZWxmX2hwcGFfZmluYWxfbGlua19yZWxvY2F0ZSk6IFVzZSBocHBhX2luZm8gaW5zdGVhZCBvZgoJZWxmNjRfaHBwYV9oYXNoX3RhYmxlIChpbmZvKS4KCgkqIGxpYmhwcGEuaCAocmVfYXNzZW1ibGVfMywgcmVfYXNzZW1ibGVfMTIsIHJlX2Fzc2VtYmxlXzE2LAoJcmVfYXNzZW1ibGVfMTcsIHJlX2Fzc2VtYmxlXzIxLCByZV9hc3NlbWJsZV8yMik6IERvbid0IG1hc2sgaW5zbi4KCShocHBhX3JlYnVpbGRfaW5zbik6IE1hc2sgaW1tZWRpYXRlIGJpdHMgaGVyZSBpbnN0ZWFkLgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9yZWxvY2F0ZV9pbnNuKTogTWFzayBoZXJlIHRvby4KCjIwMDAtMDctMDggIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBzZWN0aW9uLmMgKHN0cnVjdCBzZWMpOiBBZGQgaWQgZmllbGQuICBUaWR5IGNvbW1lbnQgZm9ybWF0dGluZy4KCShiZmRfbWFrZV9zZWN0aW9uX2FueXdheSk6IFNldCBpZC4KCShTVERfU0VDVElPTik6IEluaXQgaWQgdG9vLgoJQ2hhbmdlIENPTlNUIHRvIGNvbnN0IHRocm91Z2hvdXQuCgkqIGFyY2h1cmVzLmMgKGJmZF9hcmNoX2luZm8pOiBUaWR5IGNvbW1lbnQuCgkoYmZkX2FyY2hfbGlzdCk6IENoYW5nZSBhIENPTlNUIHRvIGNvbnN0LgoJKiBsaWJiZmQtaW4uaDogVGlkeSBjb21tZW50cyBhbmQgcmVwbGFjZSBDT05TVCB3aXRoIGNvbnN0LgoJKiBlbGYtYmZkLmg6IExpa2V3aXNlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBsaWJjb2ZmLmg6IFJlZ2VuZXJhdGUuCgoyMDAwLTA3LTA3ICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIGFyY2hpdmUuYyAoX2JmZF93cml0ZV9hcmNoaXZlX2NvbnRlbnRzKTogQWRkIGFuIGluZm9ybWF0aXZlCgljb21tZW50LgoKMjAwMC0wNy0wNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBzcmVjLmM6IEZpeCBmb3JtYXR0aW5nLgoKMjAwMC0wNi0wNSAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBNQUlOVEFJTkVSUzogbmV3CgoyMDAwLTA3LTA0ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvZmYtYXJtLmMgKGNvZmZfYXJtX3JlbG9jYXRlX3NlY3Rpb24pOiBEbyBub3QgaWdub3JlIHRoZSBzeW1ib2wKCXZhbHVlIG9mIFBDLXJlbGF0aXZlIG9mZnNldHMuCgoyMDAwLTA3LTAzICBKaW0gV2lsc29uICA8d2lsc29uQGN5Z251cy5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChhbHBoYV9lbGZfc2l6ZV9pbmZvKTogTmV3LgoJKGVsZl9iYWNrZW5kX3NpemVfaW5mbyk6IERlZmluZSB0byBhbHBoYV9lbGZfc2l6ZV9pbmZvLgoJKiBlbGZjb2RlLmggKGVsZl9zaXplX2luZm8pOiBDaGFuZ2UgaGFzaCBidWNrZXQgc2l6ZSB0byA0LgoKMjAwMC0wNy0wMyAgVWxmIENhcmxzc29uICA8dWxmY0BlbmdyLnNnaS5jb20+CgoJKiBlbGYzMi1taXBzLmM6IEluY2x1ZGUgZWxmMzItdGFyZ2V0LmggYWdhaW4gZm9yIHRoZSB0cmFkaXRpb25hbAoJTUlQUyB0YXJnZXRzLgoKMjAwMC0wNy0wMyAgTWFyZWsgTWljaGFsa2lld2ljeiAgPG1hcmVrbUBsaW51eC5vcmcucGw+CgoJKiBlbGYzMi1hdnIuYyAoYmZkX2VsZjMyX2JmZF9yZWxvY190eXBlX2xvb2t1cCk6CglBZGQgQVRUUklCVVRFX1VOVVNFRCB0byB1bnVzZWQgYXJndW1lbnRzIHRvIGF2b2lkIHdhcm5pbmdzLgoJKGF2cl9pbmZvX3RvX2hvd3RvX3JlbGEpOiBMaWtld2lzZS4KCShlbGYzMl9hdnJfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkoZWxmMzJfYXZyX2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCShlbGYzMl9hdnJfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMC0wNy0wMyAgTWFyayBFbGJyZWNodCAgPHNub3diYWxsM0BiaWdmb290LmNvbT4KCgkqIGNvZmZsaW5rLmMgKF9iZmRfY29mZl93cml0ZV9nbG9iYWxfc3ltKTogVHVybiBhIHdlYWsgc3ltYm9sIGludG8KCWFuIGV4dGVybmFsIHN5bWJvbCBmb3IgYSBub24tc2hhcmVkLCBub24tcmVsb2NhdGFibGUgbGluay4KCjIwMDAtMDctMDMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb2ZmbGluay5jIChJU19FWFRFUk5BTCk6IE5ldyBtYWNybzogUmV0dXJuIHRydWUgaWYgdGhlIHN5bWJvbAoJaXMgYW4gZXh0ZXJuYWwgc3ltYm9sLgoJKElTX1dFQUtfRVhURVJOQUwpOiBOZXcgbWFjcm86IFJldHVybiB0cnVlIGlmIHRoZSBzeW1ib2wgaXMgYSB3ZWFrCglleHRlcm5hbCBzeW1ib2wuCgoyMDAwLTA3LTAzICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIHJlbG9jMTYuYzogRml4IGZvcm1hdHRpbmcuCgoyMDAwLTA3LTAxICBLb3VuZGlueWEgSyAgPGtrQGRkZW9yZy5zb2Z0Lm5ldD4KCgkqIGNvbmZpZy5iZmQ6IENoYW5nZSB0YXJnX2RlZnZlYyBhbmQgdGFyZ19zZWx2ZWNzIGZvciBtaXBzKi0qLXN5c3Y0KgoJdG8gYWRkIGEgbmV3IHRhcmdldCBmb3IgdHJhZGl0aW9uYWwgbWlwcyBpLmUKCWJmZF9lbGYzMl90cmFkYmlnbWlwc192ZWMgYW5kIGJmZF9lbGYzMl90cmFkbGl0dGxlbWlwc192ZWMuCgkqIGNvbmZpZ3VyZS5pbjogTGlrZXdpc2UuCgkqIGNvbmZpZ3VyZTogUmVidWlsZC4KCSogdGFyZ2V0cy5jIChiZmRfZWxmMzJfdHJhZGJpZ21pcHNfdmVjKTogRGVjbGFyZSBhbmQgcHV0IGluCgliZmRfdGFyZ2V0X3ZlY3Rvci4KCShiZmRfZWxmMzJfdHJhZGxpdHRsZW1pcHNfdmVjKTogTGlrZXdpc2UuCgkqIGVsZnh4LXRhcmdldC5oOiBBZGQgbWFjcm8gSU5DTFVERURfVEFSR0VUX0ZJTEUgd2hpY2ggaXMgbW9yZSBhIHRlc3QKCXRvIHNlZSB0aGF0IGVsZk5OX2JlZCBkb2VzIG5vdCBnZXQgcmVkZWZpbmVkIGV2ZW4gaWYgdGhlIHRhcmdldCBmaWxlCglpcyBpbmNsdWRlZCB0d2ljZSBmb3IgYSBjaGlwLiBTZWUgZWxmMzItbWlwcy5jLgoKMjAwMC0wNy0wMSAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIE1ha2VmaWxlLmFtIChERVApOiBGaXggMjAwMC0wNi0yMi4gIGdyZXAgYWZ0ZXIgcnVubmluZyBkZXAuc2VkCgkoQ0xFQU5GSUxFUyk6IEFkZCBERVBBLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDAtMDYtMzAgIERKIERlbG9yaWUgIDxkakBjeWdudXMuY29tPgoKCSogcGVpY29kZS5oIChjb2ZmX3N3YXBfZmlsZWhkcl9pbik6IGNhbid0IHVzZSBlX21hZ2ljIGJlY2F1c2Ugd2UKCWNhbid0IGFzc3VtZSB0aGUgUEUgaGVhZGVyIGlzIGF0IDB4ODAuCgoyMDAwLTA2LTI5ICBNYXJrIEVsYnJlY2h0ICA8c25vd2JhbGwzQGJpZ2Zvb3QuY29tPgoKCSogc3ltcy5jIChfYmZkX3N0YWJfc2VjdGlvbl9maW5kX25lYXJlc3RfbGluZSk6IFVzZSBJU19BQlNPTFVURV9QQVRILgoKMjAwMC0wNi0yOCAgTWFyayBFbGJyZWNodCAgPHNub3diYWxsM0BiaWdmb290LmNvbT4KCgkqIGdvMzJzdHViLmg6IFVwZGF0ZSBzdHViLgoKMjAwMC0wNi0yNiAgTWFyZWsgTWljaGFsa2lld2ljeiAgPG1hcmVrbUBsaW51eC5vcmcucGw+CgoJKiBhcmNodXJlcy5jIChiZmRfbWFjaF9hdnI1KTogRGVmaW5lLgoJKiBiZmQtaW4yLmggKGJmZF9tYWNoX2F2cjUpOiBEZWZpbmUuCgkqIGNwdS1hdnIuYyAoYXJjaF9pbmZvX3N0cnVjdCk6IFJlbmFtZSBiZmRfbWFjaF9hdnI0IHRvCgliZmRfbWFjaF9hdnI1LCBhZGQgYmZkX21hY2hfYXZyNC4gIFVwZGF0ZSBjb21tZW50cy4KCShjb21wYXRpYmxlKTogVXBkYXRlIGNvbW1lbnQuICBBZGQgbWlzc2luZyB0ZXN0LgoJKiBlbGYzMi1hdnIuYyAoYXZyX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBTdXBwb3J0IDhLIHdyYXAKCWZvciBhdnIyIGFuZCBhdnI0LiAgU2ltcGxpZnkgOEsgd3JhcCBjb2RlLgoJKGJmZF9lbGZfYXZyX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBSZWNvZ25pemUgYmZkX21hY2hfYXZyNS4KCShlbGYzMl9hdnJfb2JqZWN0X3ApOiBSZWNvZ25pemUgRV9BVlJfTUFDSF9BVlI1LgoKMjAwMC0wNi0yNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBjb2ZmLWg4MzAwLmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBjcHUtaDgzMDAuYzogTGlrZXdpc2UuCgoyMDAwLTA2LTI0ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fZmluYWxfbGlua19yZWxvY2F0ZSk6IFByaW50IGAobG9jYWwpJwoJZm9yIGxvY2FsIHN5bWJvbHMgd2hvc2UgbmFtZXMgYXJlIHVua25vd24uCgoyMDAwLTA2LTIyICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogTWFrZWZpbGUuYW0gKERFUCk6IGdyZXAgZm9yIGxlYWRpbmcgYC8nIGluIERFUDEsIGFuZCBmYWlsIGlmIHdlCglmaW5kIG9uZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDAtMDYtMjAgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIE1ha2VmaWxlLmFtOiBSZWJ1aWxkIGRlcGVuZGVuY3kuCgkqIE1ha2VmaWxlLmluOiBSZWJ1aWxkLgoKMjAwMC0wNi0yMCAgTWFjaWVqIFcuIFJvenlja2kgIDxtYWNyb0BkczIucGcuZ2RhLnBsPgoKCSogZWxmMzItbWlwcy5jIChfYmZkX21pcHNfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9iYWNrZW5kX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTWFwIHRvIHRoZSBuZXcgZnVuY3Rpb24uCgoyMDAwLTA2LTIwICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogYXJjaGl2ZS5jIChub3JtYWxpemUpOiBDb3JyZWN0IHBvaW50ZXIgY29tcGFyaXNvbiB3aGVuIGNoZWNraW5nCglmb3IgYmFja3NsYXNoZXMuCgkoYmZkX2JzZF90cnVuY2F0ZV9hcm5hbWUpOiBMaWtld2lzZS4KCShiZmRfZ251X3RydW5jYXRlX2FybmFtZSk6IExpa2V3aXNlLgoKMjAwMC0wNi0yMCAgVWxmIENhcmxzc29uICA8dWxmY0BlbmdyLnNnaS5jb20+CgoJKiBlbGYtYmZkLmggKHN0cnVjdCBlbGZfb2JqX3RkYXRhKTogRGVmaW5lIHBlciBCRkQgSXJpeCA1IHZpcnR1YWwKCXNlY3Rpb25zIGVsZl97dGV4dCxkYXRhfV97c2VjdGlvbixzeW1ib2x9LgoJKiBlbGYzMi1taXBzLmM6IG1pcHNfZWxmX3t0ZXh0LGRhdGF9X3tzZWN0aW9uLHN5bWJvbH17LF9wdHJ9OiBSZW1vdmUuCgkoX2JmZF9taXBzX2VsZl9oaWRlX3N5bWJvbCk6IE5ldyBmdW5jdGlvbi4KCShlbGZfYmFja2VuZF9oaWRlX3N5bWJvbCk6IE1hcCB0byB0aGUgbmV3IGZ1bmN0aW9uLgoJKF9iZmRfbWlwc19lbGZfYWRkX3N5bWJvbF9ob29rKTogQ2hhbmdlIHRvIHVzZSBuZXcgcGVyIEJGRAoJZGVmaW5pdGlvbnMgb2YgbWlwc19lbGZfe3RleHQsZGF0YX1fe3NlY3Rpb24sc3ltYm9sfS4KCShtaXBzX2VsZl9sb2NhbF9yZWxvY2F0aW9uX3ApOiBUcnkgdG8gZmluZCB0aGUgZGlyZWN0IHN5bWJvbAoJYmFzZWQgb24gbmV3IGNoZWNrX2ZvcmNlZCBhcmd1bWVudC4KCShtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IFVzZSBuZXcgdmVyc2lvbiBvZgoJbWlwc19lbGZfbG9jYWxfcmVsb2NhdGlvbl9wLgoJKG1pcHNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCShfYmZkX21pcHNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCShtaXBzX2VsZl9zb3J0X2hhc2hfdGFibGUpOiBPbmx5IGFzc2VydCB0aGF0IGhhdmUgZW5vdWdoIEdPVAoJc3BhY2UuCgkobWlwc19lbGZfZ290MTZfZW50cnkpOiBNYXRjaCBhbGwgMzIgYml0cyB0byB0aGUgZXhpc3RpbmcgR09UCgllbnRyeSBpZiB0aGUgcmVsb2NhdGlvbiBiYXNlZCBvbiB0aGUgbmV3IGV4dGVybmFsIGFyZ3VtZW50LgoJKG1pcHNfZWxmX2NyZWF0ZV9keW5hbWljX3JlbG9jYXRpb24pOiBBc3NlcnQgdGhhdCB3ZSBoYXZlIGEKCXNlY3Rpb24gY29udGVudHMgYWxsb2NhdGVkIHdoZXJlIHdlIGNhbiBzd2FwIG91dCB0aGUgZHluYW1pYwoJcmVsb2NhdGlvbnMuCgkobWlwc19lbGZfY2FsY3VsYXRlX3JlbG9jYXRpb24pOiBGaW5kIHRoZSByZWFsIGhhc2gtdGFibGUgZW50cnkKCWNvcnJlY3RseSBieSB1c2luZyBoLT5yb290LnJvb3QudHlwZS4gIE9ubHkgY3JlYXRlIGEgZHluYW1pYwoJcmVsb2NhdGlvbiBlbnRyeSBpZiB0aGUgc3ltYm9sIGlzIGRlZmluZWQgaW4gYSBzaGFyZWQgbGlicmFyeS4KCUNyZWF0ZSBhbiBleHRlcm5hbCBHT1QgZW50cnkgZm9yIHRoZSBHT1QxNiByZWxvY2F0aW9uIGlmIHRoZQoJc3ltYm9sIHdhcyBmb3JjZWQgbG9jYWwuCgkoX2JmZF9taXBzX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBEb24ndCBhc3NlcnQgdGhlcmUgaXMgYQoJZHluYW1pYyBpbmRleCBpZiB0aGUgc3ltYm9sIHdhcyBmb3JjZWQgbG9jYWwuCgoyMDAwLTA2LTIwICBNYWNpZWogVy4gUm96eWNraSAgPG1hY3JvQGRzMi5wZy5nZGEucGw+CgoJKiBlbGYzMi1taXBzLmM6IEZpeCB0eXBvcyBpbiBjb21tZW50cy4KCjIwMDAtMDYtMTkgIE1hcmsgS2V0dGVuaXMgIDxrZXR0ZW5pc0BnbnUub3JnPgoKCSogcnM2MDAwLWNvcmUuYzogV3JhcCBkZWZpbml0aW9uIG9mIGB1bmlvbiBWbUluZm8nIHdpdGhpbiAjaWZkZWYKCUNPUkVfVkVSU0lPTl8xLgoKMjAwMC0wNi0xOCAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAd29ybGRuZXQuZnI+CgoJKiBNYWtlZmlsZS5pbiwgYmZkLWluMi5oLCBsaWJiZmQuaCwgY29uZmlndXJlOiBSZWJ1aWxkLgoJKiBNYWtlZmlsZS5hbSAoQUxMX01BQ0hJTkVTLCBBTExfTUFDSElORVNfQ0ZJTEVTLCBCRkQzMl9CQUNLRU5EUywKCUJGRDMyX0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCA2OGhjMTIsIDY4aGMxMSBmaWxlcy4KCSogY29uZmlndXJlLmluIChiZmRfZWxmMzJfbTY4aGMxMl92ZWMpOiBSZWNvZ25pemUuCgkoYmZkX2VsZjMyX202OGhjMTFfdmVjKTogTGlrZXdpc2UuCgkqIGNvbmZpZy5iZmQgKHRhcmdfY3B1KTogUmVjb2duaXplIDY4aGMxMiBhbmQgNjhoYzExLgoJU3VwcG9ydHMgNjhoYzExICYgNjhoYzEyICBhdCB0aGUgc2FtZSB0aW1lLgoJKiB0YXJnZXRzLmMgKGJmZF9lbGYzMl9tNjhoYzEyX3ZlYyk6IERlY2xhcmUgYW5kIHB1dCBpbgoJYmZkX3RhcmdldF92ZWN0b3IuCgkoYmZkX2VsZjMyX202OGhjMTFfdmVjKTogTGlrZXdpc2UuCgkqIGVsZi5jIChwcmVwX2hlYWRlcnMpOiBSZWNvZ25pemUgYmZkX2FyY2hfbTY4aGMxMiBhbmQgNjhoYzExLgoJKiBhcmNodXJlcy5jIChiZmRfbTY4aGMxMl9hcmNoKTogRGVmaW5lIGFuZCByZWdpc3RlciBpbiBnbG9iYWwgbGlzdAoJKGJmZF9tNjhoYzExX2FyY2gpOiBMaWtld2lzZS4KCSogcmVsb2MuYyAoQkZEX1JFTE9DX002OEhDMTFfSEk4LCBCRkRfUkVMT0NfTTY4SEMxMV9MTzgsCglCRkRfUkVMT0NfTTY4SEMxMV8zQik6IERlZmluZS4KCSogY3B1LW02OGhjMTIuYywgZWxmMzItbTY4aGMxMi5jOiBOZXcgZmlsZXMgZm9yIDY4aGMxMiBzdXBwb3J0LgoJKiBjcHUtbTY4aGMxMS5jLCBlbGYzMi1tNjhoYzExLmM6IE5ldyBmaWxlcyBmb3IgNjhoYzExIHN1cHBvcnQuCgoyMDAwLTA2LTE4ICBVbGYgQ2FybHNzb24gIDx1bGZjQGVuZ3Iuc2dpLmNvbT4KCgkqIGVsZl9iZmQuaCAoc3RydWN0IGVsZl9iYWNrZW5kX2RhdGEpOiBBZGQgaW5mbyBhcmd1bWVudCB0bwoJZWxmX2JhY2tlbmRfaGlkZV9zeW1ib2wuCgkoX2JmZF9lbGZfbGlua19oYXNoX2hpZGVfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVsZi5jIChfYmZkX2VsZl9saW5rX2hhc2hfaGlkZV9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmNjQtaWE2NC5jIChlbGY2NF9pYTY0X2hhc2hfaGlkZV9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBMaWtld2lzZS4KCShlbGZfbGlua19hc3NpZ25fc3ltX3ZlcnNpb24pOiBMaWtld2lzZS4KCjIwMDAtMDYtMTggIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGNvZmYtaTM4Ni5jIChjb2ZmX2kzODZfcmVsb2MpOiBEb24ndCByZXR1cm4gaW4gY2FzZSBvZgoJb3V0cHV0X2JmZCA9PSAoYmZkICopIE5VTEwgaWYgQ09GRl9XSVRIX1BFIGlzIGRlZmluZWQuCglDb21wZW5zYXRlIFBFIHJlbG9jYXRpb25zIHdoZW4gbGlua2luZyB3aXRoIG5vbi1QRSBvYmplY3QKCWZpbGVzIHRvIGdlbmVyYXRlIGEgbm9uLVBFIGV4ZWN1dGFibGUuCgoyMDAwLTA2LTE3ICBVbGYgQ2FybHNzb24gIDx1bGZjQGVuZ3Iuc2dpLmNvbT4KCgkqIGVsZjMyLW1pcHMuYyAobWlwc19lbGZfY2FsY3VsYXRlX3JlbG9jYXRpb24pOiBFeHBsaWNpdGx5IHdyaXRlCglHT1QgZW50cmllcyBpZiB3ZSdyZSBkb2luZyBhIHN0YXRpYyBsaW5rIG9yIC1Cc3ltYm9saWMgbGluay4KCjIwMDAtMDYtMTUgIFVsZiBDYXJsc3NvbiAgPHVsZmNAZW5nci5zZ2kuY29tPgoKCSogZWxmbGluay5oIChlbGZfbGlua19hZGp1c3RfcmVsb2NzKTogQ2hlY2sgZm9yIGFuZCBjYWxsIGJhY2tlbmQKCXNwZWNpZmlmaWMgc3dhcF9yZWxvY197aW4sb3V0fSBhbmQgc3dhcF9yZWxvY2Ffe2luLG91dH0gaWYKCWF2YWlsYWJsZS4KCShlbGZfbGlua19vdXRwdXRfcmVsb2NzKTogTGlrZXdpc2UuCgkoZWxmX3JlbG9jX2xpbmtfb3JkZXIpOiBMaWtld2lzZS4KCjIwMDAtMDYtMTYgIE5pY2hvbGFzIER1ZmZlayAgPG5zZEByZWRoYXQuY29tPgoKCSogYXJjaHVyZXMuYyAoZW51bSBiZmRfYXJjaGl0ZWN0dXJlKTogI2RlZmluZSBjb25zdGFudHMgZm9yCglQb3dlclBjIGFuZCBSUzYwMDAgbWFjaGluZSBudW1iZXJzLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGNvZmZjb2RlLmggKGNvZmZfc2V0X2FyY2hfbWFjaF9ob29rKTogI2lmZGVmIFhDT0ZGNjQsIHNldCBhcmNoCgl0byBiZmRfYXJjaF9wb3dlcnBjIGluc3RlYWQgb2YgYmZkX2FyY2hfcnM2MDAwLiAgUmVmZXIgdG8gUG93ZXJQYwoJYW5kIFJTNjAwMCBtYWNoaW5lIG51bWJlcnMgdXNpbmcgI2RlZmluZWQgY29uc3RhbnRzIGZyb20KCWFyY2h1cmVzLmMuCgkqIGNwdS1wb3dlcnBjLmMgKGFyY2hfaW5mb19zdHJ1Y3QpOiBSZWZlciB0byBQb3dlclBjIGFuZCBSUzYwMDAKCW1hY2hpbmUgbnVtYmVycyB1c2luZyAjZGVmaW5lZCBjb25zdGFudHMgZnJvbSBhcmNodXJlcy5jLiAgQWRkCgllbnRyaWVzIGZvciBFQzYwM2UsIDYzMCwgQTM1LCBSUzY0SUksIFJTNjRJSUksIDc0MDAuICBTcGVjaWZ5Cgk2NC1iaXQgd29yZHMgaW4gNjIwIGVudHJ5LgoJKiBjcHUtcnM2MDAwLmMgKGFyY2hfaW5mb19zdHJ1Y3QpOiBDcmVhdGUgd2l0aCBlbnRyaWVzIGZvciBSUzEsCglSU0MsIGFuZCBSUzIuCgkoYmZkX3JzNjAwMF9hcmNoKTogQ2hhbmdlIGRlZmF1bHQgbWFjaGluZSB0byAwIChiZmRfbWFjaF9yczZrKS4KCjIwMDAtMDYtMTYgIE5pY2hvbGFzIER1ZmZlayAgPG5zZEBjeWdudXMuY29tPgoKCSogY29mZmNvZGUuaCAoY29mZl9ta29iamVjdF9ob29rKTogU2V0IHhjb2ZmX3RkYXRhLnhjb2ZmNjQuCgkqIGxpYmNvZmYtaW4uaCAoc3RydWN0IHhjb2ZmX3RkYXRhKTogRGVmaW5lIHhjb2ZmNjQgZmllbGQuCgkqIGxpYmNvZmYuaCAoc3RydWN0IHhjb2ZmX3RkYXRhKTogRGVmaW5lIHhjb2ZmNjQgZmllbGQuCgoyMDAwLTA2LTE2ICBOaWNob2xhcyBEdWZmZWsgIDxuc2RAcmVkaGF0LmNvbT4KCgkqIGJmZC1pbi5oIChiZmRfZmFtaWx5X2NvZmYpOiBEZWZpbmUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogY29mZmdlbi5jIChjb2ZmX2NvdW50X2xpbmVudW1iZXJzLCBjb2ZmX3N5bWJvbF9mcm9tLAoJY29mZl9maW5kX25lYXJlc3RfbGluZSk6IENoZWNrIENPRkZuZXNzIHVzaW5nIGJmZF9mYW1pbHlfY29mZigpCglpbnN0ZWFkIG9mIGJmZF90YXJnZXRfY29mZl9mbGF2b3VyLgoJKiBjb2ZmbGluay5jIChfYmZkX2NvZmZfZmluYWxfbGluayk6IExpa2V3aXNlLgoJKiBjcHUtbnMzMmsuYyAoZG9fbnMzMmtfcmVsb2MpOiBEb24ndCBzdHJjbXAoKSB0YXJnZXQgbmFtZSB0bwoJZXhjbHVkZSBYQ09GRiBmaWxlcy4KCSogcmVsb2MuYyAoYmZkX3BlcmZvcm1fcmVsb2NhdGlvbiwgYmZkX2luc3RhbGxfcmVsb2NhdGlvbik6CglMaWtld2lzZS4KCSogdGFyZ2V0cy5jIChlbnVtIGJmZF9mbGF2b3VyKTogQWRkIGJmZF90YXJnZXRfeGNvZmZfZmxhdm91ci4KCSogeGNvZmYtdGFyZ2V0LmggKFRBUkdFVF9TWU0pOiBVc2UgYmZkX3RhcmdldF94Y29mZl9mbGF2b3VyLgoJKiB4Y29mZmxpbmsuYyAoWENPRkZfWFZFQ1ApOiBEZWxldGUuCgkoYmZkX3hjb2ZmX2xpbmtfcmVjb3JkX3NldCwgYmZkX3hjb2ZmX2ltcG9ydF9zeW1ib2wsCgliZmRfeGNvZmZfZXhwb3J0X3N5bWJvbCwgYmZkX3hjb2ZmX2xpbmtfY291bnRfcmVsb2MsCgliZmRfeGNvZmZfcmVjb3JkX2xpbmtfYXNzaWdubWVudCwKCWJmZF94Y29mZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBSZXBsYWNlIFhDT0ZGX1hWRUNQKCkgd2l0aAoJY2hlY2sgZm9yIGJmZF90YXJnZXRfeGNvZmZfZmxhdm91ci4KCjIwMDAtMDYtMTYgIE5pY2hvbGFzIER1ZmZlayAgPG5zZEByZWRoYXQuY29tPgoKCSogcnM2MDAwLWNvcmUuYzogU3VwcG9ydCA2NC1iaXQgY29yZSBmaWxlcywgc3VwcG9ydCBwcmUtNC4zIGNvcmUKCWZpbGVzIG9uIEFJWCA0LjMuCgkocmVhZF9oZHIpOiBOZXcgZnVuY3Rpb24uCgkocnM2MDAwY29mZl9jb3JlX3ApOiBTdG9yZSBtc3RzYXZlIG9yIF9fY29udGV4dDY0IHN0cnVjdCBpbnN0ZWFkCglvZiB0cnlpbmcgdG8gZXh0cmFjdCBpbmRpdmlkdWFsIHJlZ2lzdGVycy4gIFNldCBhYmZkLT5hcmNoX2luZm8KCXRvIG1hdGNoIHRoZSBhcmNoaXRlY3R1cmUgdGhhdCBjcmVhdGVkIHRoZSBjb3JlIGZpbGUuCgkocnM2MDAwY29mZl9nZXRfc2VjdGlvbl9jb250ZW50cyk6IERlbGV0ZS4KCSogeGNvZmYtdGFyZ2V0LmggKHJzNjAwMGNvZmZfZ2V0X3NlY3Rpb25fY29udGVudHMpOiBEZWxldGUuCgoyMDAwLTA2LTE0ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiB2bXMtbWlzYy5jIChfYmZkX3Ztc19uZXh0X3JlY29yZCk6IFJldHVybiAtMSBpZiBQUklWKHZtc19yZWMpCglpcyBOVUxMLgoKMjAwMC0wNi0xMyAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMC0wNi0xMyAgSiJvcm4gUmVubmVja2UgPGFteWxhYXJAY3lnbnVzLmNvLnVrPgoKCSogcGVpY29kZS5oIChwZV9JTEZfb2JqZWN0X3ApOiBVc2UgVEFSR0VUX0xJVFRMRV9TWU0gaW5zdGVhZCBvZgoJYXJtcGVpX2xpdHRsZV92ZWMuCgoyMDAwLTA2LTA4ICBEYXZpZCBPJ0JyaWVuICA8b2JyaWVuQEZyZWVCU0Qub3JnPgoKCSogY29uZmlndXJlLmluIChWRVJTSU9OKTogVXBkYXRlIHRvIHNob3cgdGhpcyBpcyB0aGUgQ1ZTIG1haW5saW5lLgoKMjAwMC0wNi0wNyAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGVsZjMyLWQxMHYuYzogSW5jbHVkZSBlbGYvZDEwdi5oCgkoZW51bSByZWxvY190eXBlKTogRGVsZXRlLgoJKiBlbGYzMi1kMzB2LmM6IEluY2x1ZGUgZWxmL2QzMHYuaAoJKGVudW0gcmVsb2NfdHlwZSk6IERlbGV0ZS4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIiB0byByZWdlbmVyYXRlIGRlcGVuZGVuY2llcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9ob3d0b190YWJsZSk6IFJlbW92ZSBFTVBUWV9IT1dUT3MuCgkoZWxmMzJfaTM4Nl92dGluaGVyaXRfaG93dG8sIGVsZjMyX2kzODZfdnRlbnRyeV9ob3d0byk6IERlbGV0ZSBhbmQKCW1vdmUgSE9XVE9zIGludG8gZWxmX2hvd3RvX3RhYmxlLgoJKFJfMzg2X3N0YW5kYXJkLCBSXzM4Nl9leHRfb2Zmc2V0KTogRGVmaW5lLgoJKFJfMzg2X2V4dCwgUl8zODZfdnRfb2Zmc2V0LCBSXzM4Nl92dCk6IERlZmluZS4KCShlbGZfaTM4Nl9yZWxvY190eXBlX2xvb2t1cCk6IE1vZGlmeSBjYWxjdWxhdGlvbiBvZiBpbmRleCBpbnRvCgllbGZfaG93dG9fdGFibGUgc2luY2Ugd2UndmUgcmVtb3ZlZCB0aGUgcGFkZGluZy4KCShlbGZfaTM4Nl9pbmZvX3RvX2hvd3RvX3JlbCk6IExpa2V3aXNlLgoJKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDAtMDYtMDYgIE1pY2hhZWwgU255ZGVyICA8bXNueWRlckBzZWFkb2cuY3lnbnVzLmNvbT4KCgkqIGVsZi5jIChlbGZfZ3Jva19wcl9zdGF0dXMpOiBFbGltaW5hdGUgcmVmZXJlbmNlIHRvIHByZ3JlZ3NldF90LgoKMjAwMC0wNi0wNSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5jIChfYmZkX2VsZl9saW5rX3JlY29yZF9keW5hbWljX3N5bWJvbCk6IERvbid0IGZsYWcKCWFuIGVycm9yIHdoZW4gc2VlaW5nIGFuIHVuZGVmaW5lZCBzeW1ib2wgd2l0aCBoaWRkZW4vaW50ZXJuYWwKCWF0dHJpYnV0ZS4gSXQgaXMgaGFuZGxlZCBpbiAqX3JlbG9jYXRlX3NlY3Rpb24gKCkuCgoyMDAwLTA2LTA1ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGZsaW5rLmggKGVsZl9maXhfc3ltYm9sX2ZsYWdzKTogRm9sbG93IHRoZSBsaW5rIGZvciB0aGUKCWluZGlyZWN0IHN5bWJvbCBmb3IgdGhlIEVMRl9MSU5LX05PTl9FTEYgYml0LgoJKGVsZl9saW5rX291dHB1dF9leHRzeW0pOiBEb24ndCBvdXRwdXQgdGhlIGluZGlyZWN0IHN5bWJvbCBldmVuCglpZiB0aGUgRUxGX0xJTktfTk9OX0VMRiBiaXQgaXMgc2V0LgoKMjAwMC0wNi0wMSAgSi5ULiBDb25rbGluICA8anRjQHJlZGJhY2suY29tPgoKCSogY29uZmlnLmJmZCAoaVszNDU2XTg2LSotbmV0YnNkZWxmKik6IE5ldyB0YXJnZXQuCgkoaVszNDU2XTg2LSotbmV0YnNkYW91dCopOiBOZXcgdGFyZ2V0LgoJKGlbMzQ1Nl04Ni0qLW5ldGJzZCopOiBBZGQgYmZkX2VsZjMyX2kzODZfdmVjIHRvIHRhcmdfc2VsdmVjcy4KCShpWzM0NTZdODYtKi1vcGVuYnNkKik6IExpa2V3aXNlLgoKMjAwMC0wNS0zMCAgQW5kcmV3IENhZ25leSAgPGNhZ25leUBiMS5jeWdudXMuY29tPgoKCSogdHJhZC1jb3JlLmM6IEZyb20gaHB1eC1jb3JlLmMsIGluY2x1ZGUgPGRpcmVudC5oPiBvcgoJPHN5cy9uZGlyLmg+IHdoZW4gcG9zc2libGUuCgoyMDAwLTA1LTMxICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogb3BpbnRsLmggKF8oU3RyaW5nKSk6IEV4cGxhaW4gd2h5IGRnZXR0ZXh0IGlzIHVzZWQgaW5zdGVhZAoJb2YgZ2V0dGV4dC4KCjIwMDAtMDUtMzEgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckByZWRoYXQuY29tPgoKCSogZWxmLmMgKF9iZmRfZWxmX3NsdXJwX3ZlcnNpb25fdGFibGVzKTogQ29ycmVjdCByZWFkaW5nIG9mIHZlcnNpb24KCWRlZmluaXRpb25zLiAgV2UgbXVzdCBub3QgYXNzdW1lIHRoZXkgYXJlIHNvcnRlZCBpbiB0aGUgZmlsZQoJYWNjb3JkaW5nIHRvIHRoZWlyIGluZGV4IG51bWJlcnMuCgoyMDAwLTA1LTMxICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogZWxmLWhwcGEuaDogKGVsZl9ocHBhX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBVc2UgZV9yc2VsIGZpZWxkCglzZWxlY3RvciBmb3IgUl9QQVJJU0NfUENSRUwxN1IuICBSX1BBUklTQ19ESVIxN1IgYW5kCglSX1BBUklTQ19ESVIxN0YgYXJlIGZvciBhYnNvbHV0ZSBicmFuY2hlczsgSGFuZGxlIHRoZW0gYXMgc3VjaC4KCjIwMDAtMDUtMzAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBjcHUtaTk2MC5jIChzY2FuXzk2MF9tYWNoKTogQWNjZXB0IDgwOTYwS0EsIDgwOTYwS0IsCgk4MDk2MENBLCA4MDk2ME1DIGFzIHZhbGlkIG1hY2hpbmUgbmFtZXMuCgoyMDAwLTA1LTMwICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX2xpbmtfcmVjb3JkX2R5bmFtaWNfc3ltYm9sKTogQ2xlYXIgdGhlCgl2aXNpYmlsaXR5IGJpdHMgaWYgdGhlIHN5bWJvbCBpcyB1bmRlZmluZWQuIENvcnJlY3RseSBoYW5kbGUKCXdlYWsgdW5kZWZpbmVkIHN5bWJvbHMgd2l0aCBoaWRkZW4gYW5kIGludGVybmFsIGF0dHJpYnV0ZXMuCgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IEFsd2F5cyB0dXJuIHRoZQoJc3ltYm9sIGludG8gbG9jYWwgaWYgaXQgaGFzIHRoZSBoaWRkZW4gb3IgaW50ZXJuYWwgYXR0cmlidXRlLgoKMjAwMC0wNS0yOSAgUGhpbGlwIEJsdW5kZWxsICA8cGhpbGJAZ251Lm9yZz4KCgkqIHBwY2Jvb3QuYzogIEFkZCBwYWNrZWQgYXR0cmlidXRlIGlmIGNvbXBpbGluZyB3aXRoIEdDQy4KCjIwMDAtMDUtMjkgIEFuYXRvbHkgVm9yb2JleSAgPG1lbGxvbkBwb2JveC5jb20+CgoJKiBlbGYuYyAoX2JmZF9lbGZfbGlua19oYXNoX3RhYmxlX2luaXQpOiBJbml0aWFsaXplIGR5bmxvY2FsLgoKMjAwMC0wNS0yNiAgTWljaGFlbCBTbnlkZXIgIDxtc255ZGVyQHNlYWRvZy5jeWdudXMuY29tPgoKCSogZWxmLmMgKGVsZmNvcmVfZ3Jva19wcnN0YXR1cywgZWxmY29yZV9ncm9rX3BzdGF0dXMsCgllbGZjb3JlX2dyb2tfcHNpbmZvKTogQWRkIGNvZGUgdG8gYWxsb3cgZGVidWdnaW5nIGEgMzItYml0Cgljb3JlZmlsZSBvbiBhIDY0LWJpdCAoU3BhcmMgU29sYXJpcykgaG9zdC4gIEFsc28gY2xlYW4gdXAKCWEgZmV3IG9sZCBjb21tZW50cy4KCjIwMDAtMDUtMjYgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBNYWtlZmlsZS5hbTogVXBkYXRlIGRlcGVuZGVuY2llcyB3aXRoICJtYWtlIGRlcC1hbSIKCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoJKiBzeXNkZXAuaCAoZ2V0dGV4dCwgZGdldHRleHQsIGRjZ2V0dGV4dCwgdGV4dGRvbWFpbiwKCWJpbmR0ZXh0ZG9tYWluKTogUmVwbGFjZSBkZWZpbmVzIHdpdGggdGhvc2UgZnJvbSBpbnRsL2xpYmdldHRleHQuaAoJdG8gcXVpZXRlbiBnY2Mgd2FybmluZ3MuCgoyMDAwLTA1LTI2ICBFbGkgWmFyZXRza2lpICA8ZWxpekBpcy5lbHRhLmNvLmlsPgoKCSogYW91dHguaCAoZmluZF9uZWFyZXN0X2xpbmUpOiBVc2UgSVNfQUJTT0xVVEVfUEFUSC4KCgkqIGFyY2hpdmUuYyAobm9ybWFsaXplLCBiZmRfYnNkX3RydW5jYXRlX2FybmFtZSwKCWJmZF9nbnVfdHJ1bmNhdGVfYXJuYW1lKSBbSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU1dOiBTdXBwb3J0CglmaWxlIG5hbWVzIHdpdGggYmFja3NsYXNoZXMuCgoJKiBjYWNoZS5jIChiZmRfb3Blbl9maWxlKSBbX19NU0RPU19fXTogRG9uJ3QgdW5saW5rIHRoZSBmaWxlCgliZWZvcmUgb3BlbmluZyBpdC4KCgkqIHN5c2RlcC5oOiBJbmNsdWRlIGZpbGVuYW1lcy5oLgoKMjAwMC0wNS0yNiAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIG9wbmNscy5jIChiZmRfY2xvc2VfYWxsX2RvbmUpOiBNYXNrIGZpbGUgcGVybXMgd2l0aCAwNzc3IG5vdCAweDc3Ny4KCjIwMDAtMDUtMjYgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfcmVsYXhfc2VjdGlvbik6IE5ldy4KCShzcGFyYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogT3B0aW1pemUgdGFpbCBjYWxsIGludG8gYnJhbmNoIGFsd2F5cwoJaWYgcG9zc2libGUuCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCShlbGYzMl9zcGFyY19yZWxheF9zZWN0aW9uKTogTmV3LgoKMjAwMC0wNS0yNiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1zcGFyYy5jOiBBZGQgQVRUUklCVVRFX1VOVVNFRCB0byB1bnVzZWQgZnVuY3Rpb24gcGFyYW1ldGVycy4KCVJlbW92ZSB1bnVzdWVkIHZhcmlhYmxlcy4KCShzcGFyYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogQ2hhbmdlIHJfc3ltbmR4IHR5cGUgdG8gdW5zaWduZWQgbG9uZy4KCShzcGFyYzY0X2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogRml4IHNoYXJlZCBsaWJyYXJ5IGNhc2UgZnJvbQoJcHJldmlvdXMgZml4LCBzbyB0aGF0IHNoYXJlZCBsaWJzIHJlYWxseSBkb24ndCBpbmZsdWVuY2UgdGFyZ2V0cwoJZXh0ZW5zaW9uIG1hc2sgYW5kIG1lbW9yeSBtb2RlbC4KCjIwMDAtMDUtMjMgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pOiBDaGVjawoJaC0+cm9vdC5vdGhlciBub3QgaC0+b3RoZXIuCgkqIGVsZjMyLW1pcHMuYyAobWlwc19lbGZfY2FsY3VsYXRlX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBGaXggYSB0eXBvLgoKMjAwMC0wNS0yMyAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogRG9uJ3QgYWxsb3cgdGhlCgl1bmRlZmluZWQgc3ltYm9sIHdpdGggdGhlIG5vbi1kZWZhdWx0IHZpc2liaWxpdHkgYXR0cmlidXRlcy4KCSogZWxmLWhwcGEuaCAoZWxmX2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItaTM3MC5jIChpMzcwX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGsuYyAoZWxmX202OGtfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1tY29yZS5jIChtY29yZV9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1taXBzLmMgKG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItc3BhcmMuYyAoZWxmMzJfc3BhcmNfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LWlhNjQuYyAoZWxmNjRfaWE2NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDAtMDUtMjIgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQGN5Z251cy5jb20+CgoJKiBlbGY2NC1pYTY0LmMgKGlhNjRfaG93dG9fdGFibGUpOiBBZGQgUENSRUw2MEIsIFBDUkVMMjFCSSwKCVBDUkVMMjIsIFBDUkVMNjRJLiAgWmVybyBzaXplIG9mIHNwZWNpYWwgcmVsb2NzLgoJKGVsZjY0X2lhNjRfcmVsb2NfdHlwZV9sb29rdXApOiBMaWtld2lzZS4KCShVU0VfQlJMLCBvb3JfYnJsLCBvb3JfaXApOiBOZXcuCgkoZWxmNjRfaWE2NF9yZWxheF9zZWN0aW9uKTogTmV3LgoJKGVsZjY0X2lhNjRfY2hlY2tfcmVsb2NzKTogSGFuZGxlIFBDUkVMNjBCLCBQQ1JFTDIyLCBQQ1JFTDY0SS4KCShlbGY2NF9pYTY0X2luc3RhbGxfdmFsdWUpOiBMaWtld2lzZSwgcGx1cyBQQ1JFTDIxQkkuCgkoZWxmNjRfaWE2NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkoYmZkX2VsZjY0X2JmZF9yZWxheF9zZWN0aW9uKTogTmV3LgoJKiByZWxvYy5jIChCRkRfUkVMT0NfSUE2NF9QQ1JFTDIxQkkpOiBOZXcuCgkoQkZEX1JFTE9DX0lBNjRfe1BDUkVMMjIsUENSRUw2MEIsUENSRUw2NEl9KTogTmV3LgoJKiBiZmQtaW4yLmgsIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoKMjAwMC0wNS0yMiAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiA6IEFkZCBwZWlnZW4ubG8gdG8gTUlQUyBQRSB0YXJnZXRzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAwLTA1LTIyICBNb21jaGlsIFZlbGlrb3YgIDx2ZWxjb0BmYWRhdGEuYmc+CgoJKiBsaWJiZmQuYyAoX2JmZF9nZW5lcmljX3ZlcmlmeV9lbmRpYW5fbWF0Y2gpOiBDb21wYXJlIGVuZGlhbmVzcwoJb25seSBpZiBpdCBpcyBrbm93biBmb3IgYm90aCBpbnB1dCBhbmQgb3V0cHV0IGJmZHMuIFNlcGFyYXRlCgllcnJvciBtZXNzYWdlIHN0cmluZ3MgYXMgaW4gc29tZSBsYW5ndWFnZXMsIGl0IG1heSBiZSBuZWNlc3NhcnkKCXRvIGNoYW5nZSBtb3JlIHRoYW4gb25lIHBsYWNlIGluIHRoZSBzdHJpbmcgdG8gY2hhbmdlIGJldHdlZW4KCSdiaWcnIGFuZCAnbGl0dGxlJy4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBSZW1vdmUgaW5saW5lCgllbmRpYW5lc3MgY2hlY2tzLCBjYWxsIF9iZmRfZ2VuZXJpY192ZXJpZnlfZW5kaWFuX21hdGNoKCkgaW5zdGVhZC4KCgkqIGVsZjMyLW1pcHMuYyAoX2JmZF9taXBzX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogTGlrZXdpc2UuCgoJKiBlbGYzMi1tY29yZS5jIChtY29yZV9lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IExpa2V3aXNlLgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogTGlrZXdpc2UuIFZlcmlmeQoJZW5kaWFuZXNzIGJlZm9yZSBjaGVja2luZyBiZmQgZmxhdm91cnMuCgoyMDAwLTA1LTIyICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX291dHB1dF9leHRzeW0pOiBDbGVhciB0aGUgdmlzaWJpbGl0eQoJZmllbGQgZm9yIHN5bWJvbHMgbm90IGRlZmluZWQgbG9jYWxseS4KCjIwMDAtMDUtMTggIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBsaWJocHBhLmggKHJlX2Fzc2VtYmxlXzMsIHJlX2Fzc2VtYmxlXzEyLCByZV9hc3NlbWJsZV8xNiwKCXJlX2Fzc2VtYmxlXzE3LCByZV9hc3NlbWJsZV8yMSwgcmVfYXNzZW1ibGVfMjIpOiBEb24ndCBtYXNrIGluc24uCgkoaHBwYV9yZWJ1aWxkX2luc24pOiBNYXNrIGltbWVkaWF0ZSBiaXRzIGhlcmUgaW5zdGVhZC4KCSogZWxmLWhwcGEuaCAoZWxmX2hwcGFfcmVsb2NhdGVfaW5zbik6IE1hc2sgaGVyZSB0b28uCgoyMDAwLTA1LTE4ICBNb21jaGlsIFZlbGlrb3YgPHZlbGNvQGZhZGF0YS5iZz4KCgkqIGVsZmxpbmsuaCAoZWxmX2JmZF9maW5hbF9saW5rLCBlbGZfbGlua19pbnB1dF9iZmQpOiBXaGVuIGVtaXRpbmcKCXJlbG9jcyBmb3IgYW4gZXhlY3V0YWJsZSwgZW5zdXJlIHRoYXQgdGhleSBhcmUgdmlydHVhbCBhZGRyZXNzZXMuCgoyMDAwLTA1LTE4ICBKZWZmcmV5IEEgTGF3ICAobGF3QGN5Z251cy5jb20pCgoJKiBjb25maWcuYmZkIChocHBhKjY0Ki0qLWhwdXgxMSopOiBOZXcgdGFyZ2V0IHRyaXBsZXQuCgoyMDAwLTA1LTE3ICBTLiBCaGFyYWR3YWogWWFkYXZhbGxpICA8c2J5QHNjcnVncy5sa2cuZGVjLmNvbT4KCSAgICBSaWNrIEdvcnRvbgkgICAgICAgICAgICA8Z29ydG9uQHNjcnVncy5sa2cuZGVjLmNvbT4KCgkqIGVsZmxpbmsuaDogQWRkIGVtaXRyZWxvY2F0aW9ucyBzdXBwb3J0OiB3aGVuIGVuYWJsZWQsIHJlbG9jYXRpb24KCWluZm9ybWF0aW9uIGFuZCByZWxvY2F0aW9uIHNlY3Rpb25zIGFyZSBwdXQgaW50byBmaW5hbCBvdXRwdXQKCWV4ZWN1dGFibGVzLiAgSWYgdGhlIGVtaXRyZWxvY2F0aW9ucyBmbGFnIGlzIHNldCwgZG8gdGhlIGZvbGxvd2luZzoKCShlbGZfYmZkX2ZpbmFsX2xpbmspOiBFbWl0IHJlbG9jYXRpb24gc2VjdGlvbnMuCgkoZWxmX2xpbmtfaW5wdXRfYmZkKTogQ29tcHV0ZSByZWxvY2F0aW9uIHNlY3Rpb24gY29udGVudHMuCgkoZWxmX2djX3NlY3Rpb25zKTogRG9uJ3QgY2xlYW4gcmVsb2NhdGlvbiBzZWN0aW9ucy4KCjIwMDAtMDUtMTYgIENhdGhlcmluZSBNb29yZSAgPGNsbUBjeWdudXMuY29tPgoKCSogc29tLmMgKHNvbV9kZWNvZGVfc3ltY2xhc3MpOiAgUmVjb2duaXplIHdlYWsgc3ltYm9scy4KCjIwMDAtMDUtMTYgIFN6YWJvbGNzIFN6YWthY3NpdHMgPHN6YWthQEYtU2VjdXJlLmNvbT4KCgkqIHBlaWdlbi5jIChwZV9wcmludF9pZGF0YSk6IFVuZG8gcGFydCBvZiAyMDAwLTA1LTEyIGNoYW5nZSB0aGF0CglyZWFkIGlkYXRhIHNlY3Rpb24gb25seSBmcm9tIGRhdGFvZmYuCgkocGVfcHJpbnRfZWRhdGEpOiBDb3JyZWN0bHkgY2hlY2sgZm9yIHZhbGlkIGVhdF9tZW1iZXIuCgoyMDAwLTA1LTE2ICBKIm9ybiBSZW5uZWNrZSA8YW15bGFhckBjeWdudXMuY28udWs+CgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfcmVsYXhfZGVsZXRlX2J5dGVzKTogSGFuZGxlIFJfU0hfU1dJVENIOC4KCjIwMDAtMDUtMTQgIFBoaWxpcCBCbHVuZGVsbCAgPHBoaWxiQGdudS5vcmc+CgoJKiBjb25maWcuYmZkIChhcm1lYi0qLWVsZiwgYXJtKmItKi1saW51eC1nbnUqKTogTmV3IHRhcmdldHMuCgoyMDAwLTA1LTEyICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogdGFyZ2V0cy5jIChiZmRfdGFyZ2V0X3ZlY3Rvcik6ICNpZmRlZiBCRkQ2NCByczYwMDBjb2ZmNjRfdmVjCgoJKiBwZWlnZW4uYyAocGVfcHJpbnRfaWRhdGEpOiBMb29rIGZvciAuaWRhdGEgc2VjdGlvbiBhbmQgcHJpbnQKCWluZm8gZXZlbiBpZiBkYXRhIGRpcmVjdG9yeSBoYXMgemVybyBlbnRyaWVzLiAgUmVhZCBpZGF0YSBzZWN0aW9uCglzdGFydGluZyBmcm9tIGRhdGFvZmYsIGFuZCBhZGp1c3QgYWxsIGRhdGEgb2Zmc2V0cyB0byBzdWl0LiAgQ2FzdAoJYWxsIGJmZF92bWEgdmFycyB0byB1bnNpZ25lZCBsb25nIGJlZm9yZSBwYXNzaW5nIHRvIGZwcmludGYuCgkqIHBlaWdlbi5jIChwZV9wcmludF9lZGF0YSk6IFNpbWlsYXJseSwgbG9vayBmb3IgLmVkYXRhIHNlY3Rpb24KCWFuZCBwcmludCBpbmZvIGV2ZW4gaWYgZGF0YSBkaXJlY3RvcnkgaGFzIHplcm8gZW50cmllcy4gIENhc3QKCWFsbCBiZmRfdm1hIHZhcnMgdG8gdW5zaWduZWQgbG9uZyBiZWZvcmUgcGFzc2luZyB0byBmcHJpbnRmLgoKCUZyb20gU3phYm9sY3MgU3pha2Fjc2l0cyA8c3pha2FARi1TZWN1cmUuY29tPgoJKiBwZWlnZW4uYyAocGVfcHJpbnRfaWRhdGEpOiBVc2UgYmZkX3NlY3Rpb25fc2l6ZSByYXRoZXIgdGhhbiBkYXRhCglkaXJlY3Rvcnkgc2l6ZSB3aGljaCBtYXkgYmUgYm9ndXMuCgkqIHBlaWdlbi5jIChwZV9wcmludF9lZGF0YSk6IFNpbWlsYXJseS4KCjIwMDAtMDUtMDkgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBlbGYuYyAoYmZkX3NlY3Rpb25fZnJvbV9zaGRyKTogRG9uJ3Qgc2V0IHVzZV9yZWxhX3AgaWYgcmVsYQoJc2VjdGlvbiBpcyBlbXB0eS4KCShjb3B5X3ByaXZhdGVfYmZkX2RhdGEpOiBBbGxvdyBmb3Igc3BhY2UgcG9zc2libHkgdGFrZW4gdXAgYnkgZWxmCgloZWFkZXJzIHdoZW4gY2FsY3VsYXRpbmcgc2VnbWVudCBwaHlzaWNhbCBhZGRyZXNzIGZyb20gbG1hLgoKMjAwMC0wNS0wOCAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIHZlcnNhZG9zLmMgKHZlcnNhZG9zX3NjYW4pOiBJbml0IHN0cmluZ2xlbiBhbmQgcGFzc18yX2RvbmUuCgoJKiB0cmFkLWNvcmUuYyAodHJhZF91bml4X2NvcmVfZmlsZV9wKTogUmV0dXJuCgliZmRfZXJyb3Jfd3JvbmdfZm9ybWF0IHJhdGhlciB0aGFuIGJmZF9lcnJvcl9maWxlX3RydW5jYXRlZC4KCgkqIHBlaWdlbi5jIChfYmZkX3BlaV9zd2FwX2FvdXRoZHJfb3V0KTogUGFzcyBJbWFnZUJhc2UgdG8KCWFkZF9kYXRhX2VudHJ5LiAgRGF0YURpcmVjdG9yeSB2aXJ0dWFsIGFkZHJlc3MgaXMgcmVsYXRpdmUuCgkocGVfcHJpbnRfaWRhdGEpOiBBY2NvdW50IGZvciByZWxhdGl2ZSBEYXRhRGlyZWN0b3J5IHZpcnR1YWwKCWFkZHJlc3Nlcy4gIERvbid0IHRyYXNoIGRhdGFzaXplIGluc2lkZSBQT1dFUlBDX0xFX1BFIGNvZGUuCgkocGVfcHJpbnRfZWRhdGEpOiBTaW1pbGFybHkuCgoJRnJvbSBTemFib2xjcyBTemFrYWNzaXRzIDxzemFrYUBGLVNlY3VyZS5jb20+CgkqIHBlaWdlbi5jIChkaXJfbmFtZXMpOiBBZGQgRGVsYXkgSW1wb3J0IERpcmVjdG9yeS4KCShwZV9wcmludF9pZGF0YSk6ICBBbHdheXMgc2VhcmNoIGZvciBiZmQgc2VjdGlvbiBjb250YWluaW5nCglpZGF0YSBhZGRyZXNzIHJhdGhlciB0aGFuIGxvb2tpbmcgdXAgc2VjdGlvbiBuYW1lLiAgUHJpbnQgdGhpcwoJc2VjdGlvbiBuYW1lIHJhdGhlciB0aGFuIC5pZGF0YS4KCShwZV9wcmludF9lZGF0YSk6IFNpbWlsYXJseS4gIEFsc28gcHJpbnQgc29tZSBmaWVsZHMgYXMgJTA4bHguCgkoX2JmZF9wZV9wcmludF9wcml2YXRlX2JmZF9kYXRhX2NvbW1vbik6IFByaW50IFJlc2VydmVkMSBmaWVsZCBhcwoJV2luMzJWZXJzaW9uLgoKMjAwMC0wNS0wNSAgQ2xpbnRvbiBQb3BldHogIDxjcG9wZXR6QGN5Z251cy5jb20+CgoJKiB4Y29mZi5oOiBSZW5hbWUgdG8geGNvZmYtdGFyZ2V0LmgKCSogTWFrZWZpbGUuYW06IENoYW5nZSBhbGwgaW5zdGFuY2VzIG9mIHhjb2ZmLmggdG8geGNvZmYtdGFyZ2V0LmgKCSogY29mZi1yczYwMDAuYzogRGl0dG8uCgkqIGNvZmY2NC1yczYwMDAuYzogRGl0dG8uCgkqIGNvZmYtcG1hYy5jOiBEaXR0by4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAwLTA1LTA1ICBDbGludG9uIFBvcGV0eiAgPGNwb3BldHpAY3lnbnVzLmNvbT4KCgkqIGNvZmZjb2RlLmggKGNvZmZfc2V0X2FyY2hfbWFjaF9ob29rLCBjb2ZmX3NldF9mbGFncyk6CglDaGFuZ2UgVTgwMlRPQzY0TUFHSUMgdG8gVTgwM1hUT0NNQUdJQy4KCjIwMDAtMDUtMDQgIE1pY2hhZWwgU255ZGVyICA8bXNueWRlckBzZWFkb2cuY3lnbnVzLmNvbT4KCgkqIGVsZi5jIChiZmRfZWxmX2dldF9hcmNoX3NpemUpOiBOZXcgZnVuY3Rpb24sIHJldHVybiAzMiB8IDY0IHwgLTEuCgkqIGJmZC1pbi5oOiBQcm90b3R5cGUgYmZkX2VsZl9nZXRfYXJjaF9zaXplLgoJKiBiZmQtaW4yLmg6IFByb3RvdHlwZSBiZmRfZWxmX2dldF9hcmNoX3NpemUuCgoyMDAwLTA1LTA0ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogbGliaHBwYS5oIChIUFBBX1JfQ09OU1RBTlQpOiBDYXN0IGFyZ3VtZW50IHRvIGJmZF9zaWduZWRfdm1hLgoKMjAwMC0wNS0wMyAgTWFydGluIHYuIEz2d2lzICA8bG9ld2lzQGluZm9ybWF0aWsuaHUtYmVybGluLmRlPgoKCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBSZXNldCBkeW5pbmR4IGZvcgoJaGlkZGVuIGFuZCBpbnRlcm5hbCBzeW1ib2xzLgoJKGVsZl9maXhfc3ltYm9sX2ZsYWdzKTogQ2xlYXIgTkVFRFNfUExUIGZvciBzeW1ib2xzIHdpdGgKCXZpc2liaWxpdHkuCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfbGlua19yZWNvcmRfZHluYW1pY19zeW1ib2wpOiBEbyBub3QKCWFzc2lnbiBhIFBMVCBvciBHT1QgZW50cnkgdG8gc3ltYm9scyB3aXRoIGhpZGRlbiBhbmQKCWludGVybmFsIHZpc2liaWxpdHkuCgoyMDAwLTA1LTAzICBNYXJrIEVsYnJlY2h0ICA8c25vd2JhbGwzQGJpZ2Zvb3QuY29tPgoKCSogYmZkL2NvZmYtZ28zMi5jIChDT0ZGX1NFQ1RJT05fQUxJR05NRU5UX0VOVFJJRVMpOiBBZGQgZW50cnkgZm9yCgl0aGUgLmJzcyBzZWN0aW9uLgoJKiBiZmQvY29mZi1zdGdvMzIuYyAoQ09GRl9TRUNUSU9OX0FMSUdOTUVOVF9FTlRSSUVTKTogTGlrZXdpc2UuCgoyMDAwLTA1LTAyICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGYuYyAocHJlcF9oZWFkZXJzKTogVXNlIEVMRk9TQUJJX05PTkUgaW5zdGVhZCBvZgoJRUxGT1NBQklfU1lTVi4KCjIwMDAtMDUtMDIgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiB0YXJnZXRzLmMgKGJmZF90YXJnZXRfdmVjdG9yKTogUmVzdG9yZSBiZmRfZWxmMzJfaHBwYV92ZWMuCgkqIE1ha2VmaWxlLmFtIChCRkQzMl9CQUNLRU5EUyk6IFJlc3RvcmUgZWxmMzItaHBwYS5sby4gIFJlZ2VuZXJhdGUKCWRlcGVuZGVuY2llcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAwLTA1LTAxICBKaW0gV2lsc29uICA8d2lsc29uQGN5Z251cy5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQkZEMzJfQkFDS0VORFMpOiBBZGQgZWZpLWFwcC1pYTMyLmxvLgoJKEJGRDMyX0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCBlZmktYXBwLWlhMzIuYy4KCShCRkQ2NF9CQUNLRU5EUyk6IERlbGV0ZSBjb2ZmLWlhNjQubG8uICBBZGQgZWZpLWFwcC1pYTY0LmxvLgoJKEJGRDY0X0JBQ0tFTkRTX0NGSUxFUyk6IERlbGV0ZSBjb2ZmLWlhNjQuYy4gIEFkZCBlZmktYXBwLWlhNjQuYy4KCSogTWFrZWZpbGUuaW46IFJlYnVpbGQuCgoyMDAwLTA1LTAyICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogY29uZmlnLmJmZDogUmUtZW5hYmxlIGVsZjMyLWhwcGEuICBJdCBub3cgY29tcGlsZXMsIGV2ZW4gaWYgaXQKCWRvZXNuJ3Qgd29yayB2ZXJ5IHdlbGwuCgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9pbnRlcm5hbF9zaGRyKTogRGVmaW5lLgoJKGVsZl9ocHBhX2Zha2Vfc2VjdGlvbnMpOiBoZHIgaXMgZWxmX2hwcGFfaW50ZXJuYWxfc2hkci4KCVNldCBoZHItPnNfdHlwZSB0byAxIGlmIEFSQ0hfU0laRSA9PSAzMi4KCShfYmZkX2VsZl9ocHBhX2dlbl9yZWxvY190eXBlKTogQWRkIHByb3RvdHlwZS4KCShlbGZfaHBwYV9pbmZvX3RvX2hvd3RvKTogTGlrZXdpc2UuCgkoZWxmX2hwcGFfaW5mb190b19ob3d0b19yZWwpOiBMaWtld2lzZS4KCShlbGZfaHBwYV9yZWxvY190eXBlX2xvb2t1cCk6IExpa2V3aXNlLgoJKGVsZl9ocHBhX2lzX2xvY2FsX2xhYmVsX25hbWUpOiBMaWtld2lzZS4KCShlbGZfaHBwYV9mYWtlX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoZWxmX2hwcGFfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IExpa2V3aXNlLgoJKGVsZl9ocHBhX2hvd3RvX3RhYmxlKTogRnVsbHkgaW5pdGlhbGlzZSBhbGwgZW50cmllcy4KCShfYmZkX2VsZl9ocHBhX2dlbl9yZWxvY190eXBlKTogQWRkIEFUVFJJQlVURV9VTlVTRUQgdG8gYXJncy4KCShlbGZfaHBwYV9pbmZvX3RvX2hvd3RvKTogTGlrZXdpc2UuCgkoZWxmX2hwcGFfaW5mb190b19ob3d0b19yZWwpOiBMaWtld2lzZS4KCShlbGZfaHBwYV9yZWxvY190eXBlX2xvb2t1cCk6IExpa2V3aXNlLgoJKGVsZl9ocHBhX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcsIGVsZl9ocHBhX2FkZF9zeW1ib2xfaG9vaywKCWVsZl9ocHBhX3VubWFya191c2VsZXNzX2R5bmFtaWNfc3ltYm9scywKCWVsZl9ocHBhX3JlbWFya191c2VsZXNzX2R5bmFtaWNfc3ltYm9scywKCWVsZl9ocHBhX3JlY29yZF9zZWdtZW50X2FkZHJzLCBlbGZfaHBwYV9maW5hbF9saW5rLAoJZWxmX2hwcGFfcmVsb2NhdGVfc2VjdGlvbiwgZWxmX2hwcGFfZmluYWxfbGlua19yZWxvY2F0ZSwKCWVsZl9ocHBhX3JlbG9jYXRlX2luc24pOiBDb21waWxlIG9ubHkgaWYgQVJDSF9TSVpFID09IDY0IHVudGlsCgllbGYzMi1ocHBhLmMgbWVzcyBpcyBjbGVhbmVkIHVwLgoJKGVsZl9ocHBhX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBNYWtlIGluc24gYW5kIHJfdHlwZSB1bnNpZ25lZAoJaW50LiAgRGVsZXRlIHJfZmllbGQuICBJbiBjYXNlIFJfUEFSSVNDX1BDUkVMMjFMLCBkb24ndCBzZXQKCXJfZmllbGQgdGhlbiBjYWxsIGhwcGFfZmllbGRfYWRqdXN0IGlubGluZSBmdW5jIHdpdGggdmFyaWFibGUKCXJfZmllbGQgYXJnLCBpbnN0ZWFkIGNhbGwgaHBwYV9maWVsZF9hZGp1c3Qgd2l0aCBmaXhlZCBhcmcuCglJbiBjYXNlIFJfUEFSSVNDX1BDUkVMMjJGLCBkb24ndCBzZXQgcl9maWVsZC4KCShlbGZfaHBwYV9yZWxvY2F0ZV9pbnNuKTogQ2hhbmdlIGFyZ3MgYW5kIHJldHVybiB0eXBlIHRvIHVuc2lnbmVkCglpbnQuICBDYWxsIHJlX2Fzc2VtYmxlXyogZnVuY3MgdG8gZG8gdGhlIHdvcmsuCgoJKiBlbGYzMi1ocHBhLmMgKGhwcGFfZWxmX3JlbG9jYXRlX2luc24pOiBEb24ndCBhc3N1bWUgMzIgYml0IHdoZW4KCXNpZ24gZXh0ZW5kaW5nLgoKCSogbGliaHBwYS5oIChIUFBBX1JfQ09OU1RBTlQpOiBEb24ndCBhc3N1bWUgMzIgYml0IHdoZW4gc2lnbgoJZXh0ZW5kaW5nLgoJKHNpZ25fZXh0ZW5kKTogTWFzayBmaXJzdCBiZWZvcmUgc2lnbiBleHRlbmRpbmcuCgkobG93X3NpZ25fZXh0ZW5kKTogUmV3cml0ZSB3aXRob3V0IGNvbmRpdGlvbiBleHByZXNzaW9uLgoJKG9uZXMsIGRpc19hc3NlbWJsZV8zLCBkaXNfYXNzZW1ibGVfMTIsIGRpc19hc3NlbWJsZV8xNiwKCWRpc19hc3NlbWJsZV8xNywgZGlzX2Fzc2VtYmxlXzIxLCBkaXNfYXNzZW1ibGVfMjIpOiBEZWxldGUuCgkoYXNzZW1ibGVfMywgYXNzZW1ibGVfNiwgYXNzZW1ibGVfMTIsIGFzc2VtYmxlXzE2LCBhc3NlbWJsZV8xNmEsCglhc3NlbWJsZV8xNywgYXNzZW1ibGVfMjEsIHNpZ25fdW5leHQsIGxvd19zaWduX3VuZXh0KTogUmV0dXJuCglyZXN1bHQgYXMgZnVuY3Rpb24gcmV0dXJuIHZhbHVlIHJhdGhlciB0aGFuIHRocm91Z2ggcG9pbnRlciBhcmcuCglBY2NlcHQgdW5zaWduZWQgaW50IGFyZ3MsIGFuZCByZXR1cm4gdW5zaWduZWQgaW50LgoJKHJlX2Fzc2VtYmxlXzMpOiBOZXcuICBDb21iaW5lcyBmdW5jdGlvbiBvZiBkaXNfYXNzZW1ibGVfMyB3aXRoCglyZS1hc3NlbWJseSBvZiBvcGNvZGUgYW5kIGltbWVkaWF0ZS4KCShyZV9hc3NlbWJsZV8xMik6IExpa2V3aXNlLgoJKHJlX2Fzc2VtYmxlXzE2KTogTGlrZXdpc2UuCgkocmVfYXNzZW1ibGVfMTcpOiBMaWtld2lzZS4KCShyZV9hc3NlbWJsZV8yMSk6IExpa2V3aXNlLgoJKHJlX2Fzc2VtYmxlXzIyKTogTGlrZXdpc2UuCgkoaHBwYV9maWVsZF9hZGp1c3QpOiBSZXdyaXRlIGFuZCBkb2N1bWVudCwgcGF5aW5nIGF0dGVudGlvbiB0bwoJc2l6ZSBvZiB0eXBlcyBhbmQgc2lnbmVkL3Vuc2lnbmVkIGlzc3Vlcy4KCShnZXRfb3Bjb2RlKTogU2hpZnQgYmVmb3JlIG1hc2tpbmcuCgkoRkRMVyk6IFJlbmFtZSB0byBGTERXLgoJKGJmZF9ocHBhX2luc24yZm10KTogQ2hhbmdlIGFyZyB0byB1bnNpZ25lZCBpbnQuICBEZWxldGUgZm10LgoJKGhwcGFfcmVidWlsZF9pbnNuKTogQ2hhbmdlIGFyZ3MgYW5kIHJldHVybiB2YWx1ZSB0byB1bnNpZ25lZAoJaW50LiAgTWFrZSB1c2Ugb2YgcmVfYXNzZW1ibGVfKi4gIENvcnJlY3QgY2FzZSAxMS4KCgkqIGRlcC1pbi5zZWQ6IEhhbmRsZSAuLi9vcGNvZGVzLy4KCSogTWFrZWZpbGUuYW0gKFNPVVJDRV9IRklMRVMpOiBBZGQgZWxmLWhwcGEuaCwgZWxmMzItaHBwYS5oLAoJZWxmNjQtaHBwYS5oLCBocHBhX3N0dWJzLmgsIHhjb2ZmLmguCgkoQkZEMzJfQkFDS0VORFNfQ0ZJTEVTKTogUmVzdG9yZSBlbGYzMi1ocHBhLmMuCglSZW1vdmUgZWxmNjQtaHBwYS5sbywgY3B1LWlhNjQubG8sIGVsZjY0LWlhNjQubG8sIGVsZmFybS1vYWJpLmxvLAoJZWxmYXJtLW5hYmkubG8gZGVwZW5kZW5jaWVzIG91dHNpZGUgb2YgYXV0by1kZXBlbmRlbmN5IGFyZWEuCglSZWdlbmVyYXRlIGRlcGVuZGVuY2llcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoJKiBjb25maWd1cmUuaW4gKFRSQURfSEVBREVSKTogVGVzdCBub24tbnVsbCBiZWZvcmUKCUFDX0RFRklORV9VTlFVT1RFRC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKCSogcmVsb2MuYzogRml4IG1pcy1zcGVsbGluZyBpbiBjb21tZW50LgoKMjAwMC0wNS0wMSAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGNvZmYtc2guYyAoYmZkX2NvZmZfc21hbGxfc3dhcF90YWJsZSk6IEZpeCBGcmkgQXByIDI4IGNoYW5nZS4KCSogdm1zLmMgKHZtc19vcGVucl9uZXh0X2FyY2hpdmVkX2ZpbGUpOiBSZXR1cm4gTlVMTC4KCjIwMDAtMDQtMjggIENsaW50b24gUG9wZXR6ICA8Y3BvcGV0ekBjeWdudXMuY29tPgoKCSogY29mZmNvZGUuaCBDb3B5IGNoYW5nZXMgbWlzdGFrZW5seSBkb25lIHRvIGxpYmNvZmYuaCBpbgoJNC8yNC8yMDAwIHBhdGNoLgoKMjAwMC0wNC0yOSAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogbGliYmZkLWluLmg6IENvcnJlY3RseSBjaGVjayBHQ0MgdmVyc2lvbi4KCSogYmZkLWluLmg6IExpa2V3aXNlLgoJKiBsaWJocHBhLmg6IExpa2V3aXNlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMC0wNC0yOCAgQ2xpbnRvbiBQb3BldHogIDxjcG9wZXR6QGN5Z251cy5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQkZENjRfQkFDS0VORFMsIEJGRDY0X0JBQ0tFTkRTX0NGSUxFUyk6IEFkZAoJY29mZmR1LXJzNjAwMC57bG8sY30uCgkoY29mZi1wbWFjLmxvLCBjb2ZmLXJzNjAwMC5sbywgY29mZjY0LXJzNjAwMC5sbyk6IEFkZCBkZXBlbmRlbmN5CglvbiB4Y29mZi5oCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiB4Y29mZi5oOiBOZXcgZmlsZS4KCSogY29mZi1wbWFjLmM6IFVzZSB4Y29mZi5oIGluc3RlYWQgb2YgY29mZi1yczYwMDAuYy4KCSogY29mZi1yczYwMDAuYzogTW92ZSBhbGwgZGVjbGFyYXRpb25zIGFuZCBkZWZpbmVzIHRoYXQgYXJlCgljb21tb24gdG8gdGhlIHhjb2ZmIGJhY2tlbmRzIGludG8geGNvZmYuaAoJKiBjb2ZmNjQtcnM2MDAwLmM6IERpdHRvLAoKMjAwMC0wNC0yOCAgQ2xpbnRvbiBQb3BldHogIDxjcG9wZXR6QGN5Z251cy5jb20+CgoJKiBjb2ZmLW1pcHMuYyAobWlwc19lY29mZl9iYWNrZW5kX2RhdGEpOiAgQWRkIGluaXRpYWxpemF0aW9uIG9mCglfYmZkX2NvZmZfZm9yY2Vfc3ltbmFtZXMgaW4gc3RyaW5ncyBhbmQKCV9iZmRfY29mZl9kZWJ1Z19zdHJpbmdfcHJlZml4X2xlbmd0aCB0byB0aGVpciBkZWZhdWx0IHZhbHVlcy4KCSogY29mZi1zaC5jOiAoYmZkX2NvZmZfc21hbGxfc3dhcF90YWJsZSk6IERpdHRvLgoKMjAwMC0wNC0yOCAgQ2xpbnRvbiBQb3BldHogIDxjcG9wZXR6QGN5Z251cy5jb20+CgoJKiBjb2ZmLWFscGhhLmMgKGFscGhhX2Vjb2ZmX2JhY2tlbmRfZGF0YSk6IEFkZCBpbml0aWFsaXphdGlvbiBvZgoJX2JmZF9jb2ZmX2ZvcmNlX3N5bW5hbWVzIGluIHN0cmluZ3MgYW5kCglfYmZkX2NvZmZfZGVidWdfc3RyaW5nX3ByZWZpeF9sZW5ndGggdG8gdGhlaXIgZGVmYXVsdCB2YWx1ZXMuCgoyMDAwLTA0LTI3ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogZWxmMzItbTY4ay5jIChlbGZfbTY4a19nY19zd2VlcF9ob29rKTogIFJldHVybiBpZiBkeW5vYmogTlVMTC4KCUNoZWNrIGxvY2FsX2dvdF9yZWZjb3VudHMgYmVmb3JlIGRlcmVmZXJlbmNpbmcuCgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogQ2hlY2sgc3BsdCAhPSBOVUxMCgliZWZvcmUgZGVjaWRpbmcgd2UgZG9uJ3QgbmVlZCBSX1BQQ19QTFQzMiByZWxvY2F0aW9uLgoJKHBwY19lbGZfZ2Nfc3dlZXBfaG9vayk6IENoZWNrIGxvY2FsX2dvdF9yZWZjb3VudHMgYmVmb3JlCglkZXJlZmVyZW5jaW5nLgoKCSogZWxmbGluay5oIChlbGZfZ2NfY29tbW9uX2ZpbmFsaXplX2dvdF9vZmZzZXRzKTogRml4IGNvbW1lbnQuCgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X2NoZWNrX3JlbG9jcyk6IFJlZmVyZW5jZSBjb3VudCAuZ290IGFuZAoJLnBsdCBlbnRyaWVzLgoJKGVsZl9pMzg2X2djX3N3ZWVwX2hvb2spOiBHYXJiYWdlIGNvbGxlY3QgLmdvdCBhbmQgLnBsdCBlbnRyaWVzLgoJKGVsZl9pMzg2X2FkanVzdF9keW5hbWljX3N5bWJvbCk6IFJlY29nbml6ZSB1bnVzZWQgLnBsdCBlbnRyaWVzLgoJKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBBbGxvdyBmb3IgLnBsdCB0byBnbyBtaXNzaW5nLgoJKGVsZl9pMzg2X2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IFVzZSBzYW1lIHRlc3QgdG8gZGVjaWRlIGlmIHdlCgljYW4gdXNlIGEgcmVsYXRpdmUgcmVsb2MgZm9yIGdvdCBhcyBlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uLgoJKGJmZF9lbGYzMl9iZmRfZmluYWxfbGluayk6IERlZmluZSB0byB1c2UgZ2MgZm9ybSBvZiBmaW5hbCBsaW5rLgoKMjAwMC0wNC0yNiAgQ2xpbnRvbiBQb3BldHogIDxjcG9wZXR6QGN5Z251cy5jb20+CgoJKiBjb25maWcuYmZkOiBSZW1vdmUgZXh0cmFuZW91cyBiZmRfcG93ZXJwY182NF9hcmNoLgoKMjAwMC0wNC0yNCAgQ2xpbnRvbiBQb3BldHogIDxjcG9wZXR6QGN5Z251cy5jb20+CgoJKiBNYWtlZmlsZS5hbSAoY29mZjY0LXJzNjAwMC5sbyk6IE5ldyBydWxlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29mZi1yczYwMDAuYyAoeGNvZmZfbWtvYmplY3QsIHhjb2ZmX2NvcHlfcHJpdmF0ZV9iZmRfZGF0YSwKCXhjb2ZmX2lzX2xvY2FsX2xhYmVsX25hbWUsIHhjb2ZmX3J0eXBlMmhvd3RvLAoJeGNvZmZfcmVsb2NfdHlwZV9sb29rdXAsIHhjb2ZmX3NsdXJwX2FybWFwLCB4Y29mZl9hcmNoaXZlX3AsCgl4Y29mZl9yZWFkX2FyX2hkciwgeGNvZmZfb3BlbnJfbmV4dF9hcmNoaXZlZF9maWxlLCB4Y29mZl93cml0ZV9hcm1hcCwKCXhjb2ZmX3dyaXRlX2FyY2hpdmVfY29udGVudHMpOiBObyBsb25nZXIgc3RhdGljLCBhbmQgcHJlZml4IHdpdGggX2JmZF8uCgkoTk9fQ09GRl9TWU1CT0xTKTogRGVmaW5lLgoJKHhjb2ZmNjRfc3dhcF9zeW1faW4sIHhjb2ZmNjRfc3dhcF9zeW1fb3V0LCB4Y29mZjY0X3N3YXBfYXV4X2luLAoJeGNvZmY2NF9zd2FwX2F1eF9vdXQpOiBOZXcgZnVuY3Rpb25zOyBoYW5kbGUgeGNvZmYgc3ltYm9sIHRhYmxlcwoJaW50ZXJuYWxseS4KCShNSU5VU19PTkUpOiBOZXcgbWFjcm8uCgkoeGNvZmZfaG93dG9fdGFibCwgeGNvZmZfcmVsb2NfdHlwZV9sb29rdXApOiBBZGQgNjQgYml0IFBPUwoJcmVsb2NhdGlvbi4KCShjb2ZmX1NXQVBfc3ltX2luLCBjb2ZmX1NXQVBfc3ltX291dCwgY29mZl9TV0FQX2F1eF9pbiwKCWNvZmZfU1dBUF9hdXhfb3V0KTogTWFwIHRvIHRoZSBuZXcgZnVuY3Rpb25zLgoJKiBjb2ZmNjQtcnM2MDAwLmM6IE5ldyBmaWxlLgoJKiBsaWJjb2ZmLmggKGJmZF9jb2ZmX2JhY2tlbmRfZGF0YSk6IEFkZCBuZXcgZmllbGRzCglfYmZkX2NvZmZfZm9yY2Vfc3ltbmFtZXNfaW5fc3RyaW5ncyBhbmQKCV9iZmRfY29mZl9kZWJ1Z19zdHJpbmdfcHJlZml4X2xlbmd0aC4KCShiZmRfY29mZl9mb3JjZV9zeW1uYW1lc19pbl9zdHJpbmdzLAoJYmZkX2NvZmZfZGVidWdfc3RyaW5nX3ByZWZpeF9sZW5ndGgpOiBOZXcgbWFjcm9zIGZvciBhYm92ZSBmaWVsZHMuCgkqIGNvZmZjb2RlLmggKGNvZmZfc2V0X2FyY2hfbWFjaF9ob29rKTogSGFuZGxlIFhDT0ZGNjQgbWFnaWMuCglTZXQgbWFjaGluZSB0byA2MjAgZm9yIFhDT0ZGNjQuICBVc2UgYmZkX2NvZmZfc3dhcF9zeW1faW4gaW5zdGVhZAoJb2YgdXNpbmcgY29mZl9zd2FwX3N5bV9pbiBkaXJlY3RseS4KCShGT1JDRV9TWU1OQU1FU19JTl9TVFJJTkdTKTogTmV3IG1hY3JvLCBkZWZpbmVkIGZvciBYQ09GRjY0LgoJKGNvZmZfc2V0X2ZsYWdzKSBTZXQgbWFnaWMgZm9yIFhDT0ZGNjQuCgkoY29mZl9jb21wdXRlX3NlY3Rpb25fZmlsZV9wb3NpdGlvbnMpOiBBZGQgc3ltYm9sIG5hbWUgbGVuZ3RoIHRvCglzdHJpbmcgc2VjdGlvbiBsZW5ndGggaWYgYmZkX2NvZmZfZGVidWdfc3RyaW5nX3ByZWZpeF9sZW5ndGggaXMKCXRydWUuCgkoY29mZl93cml0ZV9vYmplY3RfY29udGVudHMpOiBEb24ndCBkbyByZWxvYyBvdmVyZmxvdyBmb3IgWENPRkY2NC4KCShjb2ZmX3NsdXJwX2xpbmVfdGFibGUpOiBVc2UgYmZkX2NvZmZfc3dhcF9saW5lbm9faW4gaW5zdGVhZCBvZgoJdXNpbmcgY29mZl9zd2FwX2xpbmVub19pbiBkaXJlY3RseS4KCShiZmRfY29mZl9iYWNrZW5kX2RhdGEpOiBBZGQgX2JmZF9jb2ZmX2ZvcmNlX3N5bW5hbWVzX2luX3N0cmluZ3MKCWFuZCBfYmZkX2NvZmZfZGVidWdfc3RyaW5nX3ByZWZpeF9sZW5ndGggZmllbGRzLgoJKiBjb2ZmZ2VuLmMgKGNvZmZfZml4X3N5bWJvbF9uYW1lLCBjb2ZmX3dyaXRlX3N5bWJvbHMpOiBGb3JjZQoJc3ltYm9sIG5hbWVzIGludG8gc3RyaW5ncyB0YWJsZSB3aGVuCgliZmRfY29mZl9mb3JjZV9zeW1uYW1lc19pbl9zdHJpbmdzIGlzIHRydWUuCgkqIGNvZmZzd2FwLmggKE1BWF9TQ05IRFJfTlJFTE9DLCBNQVhfU0NOSERSX05MTk5PLCBHRVRfUkVMT0NfVkFERFIsCglTRVRfUkVMT0NfVkFERFIpOiBOZXcgbWFjcm9zLgoJKGNvZmZfc3dhcF9yZWxvY19pbiwgY29mZl9zd2FwX3JlbG9jX291dCk6IFVzZSBhYm92ZSBtYWNyb3MuCgkoY29mZl9zd2FwX2F1eF9pbiwgY29mZl9zd2FwX2F1eF9vdXQpOiBSZW1vdmUgUlM2MDAwQ09GRl9DCgljb2RlLgoJKGNvZmZfc3dhcF9hb3V0aGRyX2luLCBjb2ZmX3N3YXBfYW91dGhkcl9vdXQpOiBIYW5kbGUgWENPRkY2NAoJY2hhbmdlcyB3aXRoaW4gUlM2MDAwQ09GRl9DIHNwZWNpZmljIGNvZGUuCgkoY29mZl9zd2FwX3Njbmhkcl9vdXQpOiBVc2UgUFVUX1NDTkhEUl9OTE5OTywgUFVUX1NDTkhEUl9OUkVMT0MsCglNQVhfU0NOSERSX05SRUxPQywgYW5kIE1BWF9TQ05IRFJfTkxOTk8uCgkqIHJlbG9jLmMgKGJmZF9wZXJmb3JtX3JlbG9jYXRpb24sIGJmZF9pbnN0YWxsX3JlbG9jYXRpb24pOgoJRXh0ZW5kIGV4aXN0aW5nIGhhY2sgb24gdGFyZ2V0IG5hbWUuCgkqIHhjb2ZmbGluay5jIChYQ09GRl9YVkVDUCk6IEV4dGVuZCBleGlzdGluZyBoYWNrIG9uCgl0YXJnZXQgbmFtZS4KCSogY29mZi10aWM1NHguYyAodGljb2YpOiBLZWVwIHVwIHRvIGRhdGUgd2l0aCBuZXcgZmllbGRzCglpbiBiZmRfY29mZl9iYWNrZW5kX2RhdGEuCgkqIGNvbmZpZy5iZmQ6IEFkZCBiZmRfcG93ZXJwY182NF9hcmNoIHRvIHRhcmdfYXJjaCBhbmQgZGVmaW5lCgl0YXJnX3NlbHZlY3MgdG8gaW5jbHVkZSByczYwMDBjb2ZmNjRfdmVjIGZvciByczYwMDAuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHJzNjAwMGNvZmY2NF92ZWMgY2FzZS4KCSogY3B1LXBvd2VycGMuYzogTmV3IGJmZF9hcmNoX2luZm9fdHlwZS4KCjIwMDAtMDQtMjQgIEplZmZyZXkgQSBMYXcgIChsYXdAY3lnbnVzLmNvbSkKCgkqIGNvbmZpZy5iZmQ6IE9ubHkgZGlzYWJsZSBlbGYzMi1ocHBhIHZlY3RvcnMsIG5vdCBhbGwgb2YgdGhlCglCU0QgYW5kIE9TRiBjb25maWd1cmF0aW9uIHN1cHBvcnQuICBQcm92aWRlIChkaXNhYmxlZCkgY2xhdXNlcwoJZm9yIFBBNjQgc3VwcG9ydC4KCSogY29uZmlndXJlLmluOiBBZGQgY2xhdXNlIGZvciBQQTY0IHN1cHBvcnQuCgkqIGNvbmZpZ3VyZTogUmVidWlsdC4KCgkqIHRhcmdldHMuYyAoYmZkX3RhcmdldF92ZWN0b3IpOiBBZGQgYmZkX2VsZjY0X2hwcGFfdmVjLgoJKGJmZF9lbGY2NF9ocHBhX3ZlYyk6IERlY2xhcmUuCgoJKiBNYWtlZmlsZS5hbSAoQkZENjRfQkFDS0VORFMpOiBBZGQgZWxmNjQtaHBwYS5sbwoJKEJGRDY0X0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCBlbGY2NC1ocHBhLmMKCShlbGY2NC1ocHBhLmxvKTogQWRkIGRlcGVuZGVuY2llcy4KCSogTWFrZWZpbGUuaW46IFJlYnVpbHQuCgoJKiBlbGY2NC1ocHBhLmMsIGVsZjY0LWhwcGEuaDogTmV3IGZpbGVzIHdpdGggUEE2NCBzdXBwb3J0LgoKMjAwMC0wNC0yNCAgSmFzb24gRWNraGFyZHQgIDxqbGVAY3lnbnVzLmNvbT4KCgkqIGxpYmhwcGEuaCAoZGlzX2Fzc2VtYmxlXzE2KTogTmV3IGZ1bmN0aW9uLgoJKHBhX2FyY2gpOiBBZGRlZCBwYTIwdyBlbGVtZW50LgoKMjAwMC0wNC0yNCAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBlbGYtYmZkLmg6IEFkZCBwcm90b3R5cGVzIGZvciBiZmRfZWxmMzJfd3JpdGVfcmVsb2NzLAoJYmZkX2VsZjMyX3NsdXJwX3JlbG9jX3RhYmxlLCBiZmRfZWxmNjRfd3JpdGVfcmVsb2NzLCBhbmQKCWJmZF9lbGY2NF9zbHVycF9yZWxvY190YWJsZS4KCgkqIGVsZmNvZGUuaCAoZWxmX3dyaXRlX3JlbG9jcywgZWxmX3NsdXJwX3JlbG9jX3RhYmxlKTogTmV3CglkZWZpbml0aW9ucyB0byBnZXQgZXh0ZXJuYWwgbmFtZXMuCgkoZWxmX3dyaXRlX3JlbG9jcyk6IFJlbmFtZWQgZnJvbSB3cml0ZV9yZWxvY3MgYW5kIG1ha2UgZ2xvYmFsLgoJKGVsZl9zbHVycF9yZWxvY190YWJsZSk6IE1ha2UgZ2xvYmFsLgoJKF9iZmRfZWxmLHNpemVfaW5mbyk6IFVzZSBlbGZfd3JpdGVfcmVsb2NzIGluc3RlYWQgb2Ygd3JpdGVfcmVsb2NzLgoKCSogYXJjaGl2ZS5jIChocHV4X3VpZF9naWRfZW5jb2RlKTogTmV3IGZ1bmN0aW9uLgoJKGJmZF9hcl9oZHJfZnJvbV9maWxlc3lzdGVtKTogVXNlIGl0IGlmIEhQVVhfTEFSR0VfQVJfSURTIGlzCglkZWZpbmVkIGFuZCB0aGUgSUQgaXMgZ3JlYXRlciB0aGFuIDk5OTk5LgoJKGJmZF9nZW5lcmljX3N0YXRfYXJjaF9lbHQpOiBJZiBIUFVYX0xBUkdFX0FSX0lEUyBpcyBkZWZpbmVkIGRlY29kZQoJc3BlY2lhbCB1aWQvZ2lkIGZpZWxkcyBpbnRvIDMyIGJpdCB2YWx1ZXMuCgoyMDAwLTA0LTIxICBNYXR0aGV3IEdyZWVuICA8bXJnQGN5Z251cy5jb20+CgoJKiBjb25maWcuYmZkOiBBZGQgTmV0QlNEL3NwYXJjNjQgc3VwcG9ydC4KCkZyaSBBcHIgMjEgMTM6MjA6NTMgMjAwMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAY3lnbnVzLmNvbT4KCQkJICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KCQkJICBUaW1vdGh5IFdhbGwgPHR3YWxsQGN5Z251cy5jb20+CgkJCSAgSmltIFdpbHNvbiAgPHdpbHNvbkBjeWdudXMuY29tPgoKCSogTWFrZWZpbGUuYW0gKEFMTF9NQUNISU5FUyk6IEFkZCBjcHUtaWE2NC5sby4KCShBTExfTUFDSElORVNfQ0ZJTEVTKTogQWRkIGNwdS1pYTY0LmMuCgkoQkZENjRfQkFDS0VORFMpOiBBZGQgZWxmNjQtaWE2NC5sby4KCShCRkQ2NF9CQUNLRU5EU19DRklMRVMpOiBBZGQgZWxmNjQtaWE2NC5jLgoJKGNwdS1pYTY0LmxvLCBlbGY2NC1pYTY0LmxvKTogTmV3IHJ1bGVzLgoJKiBNYWtlZmlsZS5pbjogUmVidWlsZC4KCSogYXJjaHVyZXMuYyAoZW51bSBiZmRfYXJjaGl0ZWN0dXJlKTogQWRkIGJmZF9hcmNoX2lhNjQuCgkoYmZkX2lhNjRfYXJjaCk6IERlY2xhcmUuCgkoYmZkX2FyY2h1cmVzX2xpc3QpOiBBZGQgYmZkX2lhNjRfYXJjaC4KCSogYmZkLWluMi5oOiBSZWJ1aWxkLgoJKiBjb25maWcuYmZkOiAoaWE2NCotKi1saW51eC1nbnUqLCBpYTY0Ki0qLWVsZiopOiBOZXcgdGFyZ2V0cy4KCSogY29uZmlndXJlOiBSZWJ1aWxkLgoJKiBjb25maWd1cmUuaG9zdDogKGlhNjQtKi1saW51eCopOiBOZXcgaG9zdC4KCSogY29uZmlndXJlLmluIChiZmRfZWxmNjRfaWE2NF9saXR0bGVfdmVjLCBiZmRfZWxmNjRfaWE2NF9iaWdfdmVjLAoJYmZkX2VmaV9hcHBfaWE2NF92ZWMsIGJmZF9lZmlfYXBwX2lhNjRfdmVjKTogTmV3IHZlY3RvcnMuCgkqIGVsZi5jIChwcmVwX2hlYWRlcnMpOiBBZGQgYmZkX2FyY2hfaWE2NC4KCSogbGliYmZkLmg6IFJlYnVpbGQuCgkqIHJlbG9jLmM6IEFkZCBJQS02NCByZWxvY2F0aW9ucy4KCSogdGFyZ2V0cy5jIChiZmRfZWxmNjRfaWE2NF9saXR0bGVfdmVjLCBiZmRfZWxmNjRfaWE2NF9iaWdfdmVjKToKCURlY2xhcmUuCgkoYmZkX3RhcmdldF92ZWN0KTogQWRkIGJmZF9lbGY2NF9pYTY0X2xpdHRsZV92ZWMuCgkqIGNwdS1pYTY0LW9wYy5jLCBjcHUtaWE2NC5jLCBlbGY2NC1pYTY0LmM6IE5ldyBmaWxlcy4KCjIwMDAtMDQtMjEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQGN5Z251cy5jb20+CgoJKiBlbGYzMi1kMzB2LmMgKGJmZF9lbGZfZDMwdl9yZWxvYyk6IERvbid0IG1vZGlmeSBzZWN0aW9uCgljb250ZW50cyB3aGVuIHBlcmZvcm1pbmcgYSBwYXJ0aWFsIGxpbmsuCgkoYmZkX2VsZl9kMzB2X3JlbG9jXzIxKTogTGlrZXdpc2UuCgoyMDAwLTA0LTIwICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBSZXN0cmljdCAxOTk4LTEyLTEwCglwYXRjaCB0byBzeW1ib2xzIGRlZmluZWQgYnkgYSBzaGFyZWQgb2JqZWN0LgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogU2ltaWxhcmx5LgoKMjAwMC0wNC0xOSAgTWljaGFlbCBTb2tvbG92ICA8bXNva29sb3ZAaXZhbi5IYXJoYW4uT1JHPgoKCUsmUiBjb21waWxlciBmaXhlcy4KCSogZHdhcmYyLmMgKGNvbmNhdF9maWxlbmFtZSk6IEF2b2lkIHN0cmluZyBsaXRlcmFsIGNvbmNhdGVuYXRpb24uCgkqIGllZWUuYyAoaWVlZV9nZXRfc3ltdGFiKTogRG9uJ3QgaW5pdGlhbGlzZSB1bmlvbiBpbiBzdHJ1Y3QuCgpNb24gQXByIDE3IDE5OjE0OjM2IDIwMDAgIERhdmlkIE1vc2JlcmdlciAgPGRhdmlkbUBocGwuaHAuY29tPgoKCSogTWFrZWZpbGUuYW0gKEJGRDY0X0JBQ0tFTkRTKTogTWVudGlvbiBjb2ZmLWlhNjQubG8uCgkoQkZENjRfQkFDS0VORFNfQ0ZJTEVTKTogTWVudGlvbiBjb2ZmLWlhNjQuYwoJKGNvZmYtaWE2NC5sbyk6IEFkZCBkZXBlbmRlbmN5LgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29mZi1pYTY0LmM6IE5ldyBmaWxlLgoJKiBlZmktYXBwLWlhMzIuYzogRGl0dG8uCgkqIGVmaS1hcHAtaWE2NC5jOiBEaXR0by4KCSogY29mZmNvZGUuaCAoY29mZl9zZXRfYXJjaF9tYWNoX2hvb2spOiBIYW5kbGUgSUE2NE1BR0lDLgoJKGNvZmZfc2V0X2ZsYWdzKTogRGl0dG8uCgkoY29mZl93cml0ZV9vYmplY3RfY29udGVudHMpIFtJQTY0XTogU2V0IG1hZ2ljIG51bWJlciB0byBaTUFHSUMuCgkqIGNvbmZpZy5iZmQgKGlbMzQ1Nl04Ni0qLWxpbnV4LWdudSopOiBNZW50aW9uIGJmZF9lZmlfYXBwX2lhMzJfdmVjLgoJKiBjb25maWd1cmUuaW4gKGVsZik6IEhhbmRsZSBiZmRfZWZpX2FwcF9pYTMyIGFuZCBiZmRfZWZpX2FwcF9pYTY0X3ZlYy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBsaWJwZWkuaCAoR0VUX09QVEhEUl9JTUFHRV9CQVNFKTogTmV3IG1hY3JvLgoJKFBVVF9PUFRIRFJfSU1BR0VfQkFTRSk6IERpdHRvLgoJKEdFVF9PUFRIRFJfU0laRV9PRl9TVEFDS19SRVNFUlZFKTogRGl0dG8uCgkoUFVUX09QVEhEUl9TSVpFX09GX1NUQUNLX1JFU0VSVkUpOiBEaXR0by4KCShHRVRfT1BUSERSX1NJWkVfT0ZfU1RBQ0tfQ09NTUlUKTogRGl0dG8uCgkoUFVUX09QVEhEUl9TSVpFX09GX1NUQUNLX0NPTU1JVCk6IERpdHRvLgoJKEdFVF9PUFRIRFJfU0laRV9PRl9IRUFQX1JFU0VSVkUpOiBEaXR0by4KCShQVVRfT1BUSERSX1NJWkVfT0ZfSEVBUF9SRVNFUlZFKTogRGl0dG8uCgkoR0VUX09QVEhEUl9TSVpFX09GX0hFQVBfQ09NTUlUKTogRGl0dG8uCgkoUFVUX09QVEhEUl9TSVpFX09GX0hFQVBfQ09NTUlUKTogRGl0dG8uCgkoR0VUX1BEQVRBX0VOVFJZKTogRGl0dG8uCgkqIHBlaWdlbi5jIChfYmZkX3BlaV9zd2FwX2FvdXRoZHJfaW4pIFtDT0ZGX1dJVEhfUEVQNjRdOiBEb24ndCByZWFkCglkYXRhX3N0YXJ0LiAgVXNlIGFib3ZlIG1hY3JvcyB0byByZWFkIGZpZWxkcyB0aGF0IGFyZSA2NCBiaXQgd2lkZSBmb3IKCUNPRkZfV0lUSF9QRVA2NC4gIERvbid0IHRydW5jYXRlIGVudHJ5IGFuZCB0ZXh0X3N0YXJ0IHRvIDMyIGJpdHMuCgkoX2JmZF9wZWlfc3dhcF9hb3V0aGRyX291dCkgW1BFSV9GT1JDRV9NSU5JTVVNX0FMSUdOTUVOVF06IEZvcmNlCglGaWxlQWxpZ25tZW50IGFuZCBTZWN0aW9uQWxpZ25tZW50IHRvIG1pbmltdW0gYWxpZ25tZW50IGlmIHRoZXkKCWFyZSB6ZXJvLgoJKF9iZmRfcGVpX3N3YXBfYW91dGhkcl9vdXQpIFtQRUlfREVGQVVMVF9UQVJHRVRfU1VCU1lTVEVNXTogU2V0CglTdWJzeXN0ZW0gdG8gZGVmYXVsdCBQRUlfREVGQVVMVF9UQVJHRVRfU1VCU1lTVEVNLgoJKF9iZmRfcGVpX3N3YXBfYW91dGhkcl9vdXQpIFtDT0ZGX1dJVEhfUEVQNjRdOiBEb24ndCBzZXQgZGF0YV9zdGFydC4KCVVzZSBhYm92ZSBtYWNyb3MgdG8gd3JpdGUgZmllbGRzIHRoYXQgYXJlIDY0IGJpdCB3aWRlIGZvcgoJQ09GRl9XSVRIX1BFUDY0LgoJKHBlX3ByaW50X3BkYXRhKTogU2V0IFBEQVRBX1JPV19TSVpFIHRvIDMqOCBmb3IgQ09GRl9XSVRIX1BFUDY0LAoJNSo0IG90aGVyd2lzZS4gIFRoaXMgc2hvdWxkIGJlIHJpZ2h0IGZvciBJQS0zMiBhbmQgSUEtNjQsIGJ1dCBtYXkKCWJlIHdyb25nIGZvciBwbGF0Zm9ybXMuICBVc2UgUERBVEFfUk9XX1NJWkUgaW5zdGVhZCBvZiBoYXJkY29kZWQKCXZhbHVlIG9mIDIwIGJ5dGVzLiAgTW9kaWZ5IHByaW50aW5nIGZvciBDT0ZGX1dJVEhfUEVQNjQgdG8gcHJpbnQKCWJlZ2luIGFkZHJlc3MsIGVuZCBhZGRyZXNzLCBhbmQgdW53aW5kIGluZm8gYWRkcmVzcyBvbmx5LiAgVXNlCglHRVRfUERBVEFfRU5UUlkoKSB0byByZWFkIC5wZGF0YSBlbnRyaWVzLiAgVXNlIGZwcmludGZfdm1hKCkgdG8KCXByaW50IGFkZHJlc3Nlcy4KCSh0YmwpOiBBZGQgU0VDVElPTiwgUkVMMzIsIFJFU0VSVkVEMSwgTUlQU19KTVBBRERSMTYsIERJUjY0LCBhbmQKCUhJR0gzQURKIHJlbG9jYXRpb24gbmFtZXMuCgkoX2JmZF9wZV9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogUHJpbnQgU3Vic3lzdGVtIG5hbWUgaW4gbGVnaWJsZSBmb3JtLgoJKiB0YXJnZXRzLmM6IERlY2xhcmUgYmZkX2VmaV9hcHBfaWEzMl92ZWMgYW5kCgliZmRfZWZpX2FwcF9pYTY0X3ZlYy4KCShiZmRfdGFyZ2V0X3ZlY3Rvcik6IE1lbnRpb24gYmZkX2VmaV9hcHBfaWEzMl92ZWMgYW5kCgliZmRfZWZpX2FwcF9pYTY0X3ZlYy4KCjIwMDAtMDQtMTcgIFRpbW90aHkgV2FsbCAgPHR3YWxsQGN5Z251cy5jb20+CgoJKiBiZmQtaW4yLmg6IEFkZCBwcm90b3R5cGVzIGZvciB0aWM1NHggbG9hZCBwYWdlIGFjY2Vzcy4KCSogYmZkLWluLmg6IFJlZ2VuZXJhdGUuCgkqIGNvZmYtdGljNTR4LmM6IEFkZCBsb2FkIHBhZ2UgZnVuY3Rpb25zOyBhbGxvdyBiZmRfYXJjaF91bmtub3duCglpbiBjdXN0b21pemVkIF9zZXRfYXJjaF9tYWNoIGZ1bmN0aW9uLgoJKiBjb2ZmY29kZS5oIChjb2ZmX3NldF9hbGlnbm1lbnRfaG9vayk6IFNldCBzZWN0aW9uIGxvYWQgcGFnZSBpZgoJdGhlIGFwcHJvcHJpYXRlIG1hY3JvIGlzIGRlZmluZWQuCgkod3JpdGVfb2JqZWN0X2NvbnRlbnRzKTogUmVhZCBzZWN0aW9uIGxvYWQgcGFnZS4KCjIwMDAtMDQtMTMgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBlbGYzMi1ocHBhLmg6IFVwZGF0ZSBjb3B5cmlnaHQgZGF0ZS4KCgkqIGVsZjMyLWZyMzAuYyAoZnIzMF9lbGZfaTIwX3JlbG9jKTogRG9uJ3QgdXNlIFUgc3VmZml4LgoJKiBlbGYzMi1taXBzLmMgKF9iZmRfbWlwc19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEFuZCBoZXJlLgoKCSogZWxmMzItZDMwdi5jIChNQVgzMik6IERvbid0IHVzZSBMTCBzdWZmaXguCgkoTUlOMzIpOiBEZWZpbmUgaW4gdGVybXMgb2YgTUFYMzIuCgkoYmZkX2VsZl9kMzB2X3JlbG9jKTogTWFrZSByZWxvY2F0aW9uIGEgYmZkX3NpZ25lZF92bWEuCgoJKiBjb2ZmLWEyOWsuYyAoU0lHTl9FWFRFTkRfSFdPUkQpOiBSZXBsYWNlIHdpdGggbW9yZSBjb25jaXNlCglleHByZXNzaW9uLgoKCSogcGVpY29kZS5oIChwZV9JTEZfYnVpbGRfYV9iZmQpOiBSZW1vdmUgVUwgZnJvbSBoZXggY29uc3RhbnRzLgoKMjAwMC0wNC0xMiAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGRlcC1pbi5zZWQ6IE1hdGNoIHNwYWNlIGJlZm9yZSBmaWxlIG5hbWUsIG5vdCBhZnRlci4KCSogTWFrZWZpbGUuYW06IFJlZ2VuZXJhdGUgZGVwZW5kZW5jaWVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCgkqIHJlbG9jLmMgKF9iZmRfcmVsb2NhdGVfY29udGVudHMpOiBJbiBjb21wbGFpbl9vdmVyZmxvd19iaXRmaWVsZAoJY2FzZSwgYWxsb3cgYWRkcmVzcyB3cmFwLWFyb3VuZCBzdHVwaWRseSByZW1vdmVkIDIwMDAtMDMtMTcuICBTaWduCglleHRlbmQgd2l0aG91dCBhbiBpZiBzdGF0ZW1lbnQuCgoyMDAwLTA0LTExICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogY29mZi1taXBzLmMgKG1pcHNfZ3ByZWxfcmVsb2MpOiBUZXN0IGZvciAxNiBiaXQgcmFuZ2UgdXNpbmcKCXNpZ25lZCBxdWFudGl0ZXMuCgkqIGVsZjMyLW1pcHMuYyAoZ3ByZWwxNl93aXRoX2dwKTogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9iZmRfZmluYWxfbGlua19yZWxvY2F0ZSk6IFRlc3QgcmFuZ2UKCWhlcmUgdXNpbmcgLTB4NDAwMDAsIG5vdCAoaW50KTB4ZmZmYzAwMDAuCgkoZWxmMzJfaHBwYV9zaXplX29mX3N0dWIpOiBMaWtld2lzZS4KCjIwMDAtMDQtMTEgIFRpbW90aHkgV2FsbCAgPHR3YWxsQGN5Z251cy5jb20+CgoJKiBjb2ZmLXRpYzU0eC5jOiBOb3cgYnVpbGRzIHdpdGggYWxsIHRhcmdldHMuCgkqIE1ha2VmaWxlLmFtOiBBZGQgY29mZi90aWM1NHguaCB0byBjb2ZmLXRpYzU0eC5vIGRlcGVuZGVuY2llcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvZmZjb2RlLmggKGNvZmZfc2V0X2FyY2hfbWFjaF9ob29rKTogRWxpbWluYXRlIHdhcm5pbmcgb24KCXVuaXRpYWxpemVkIHZhcmlhYmxlLgoKRnJpIEFwciAgNyAxNTo1Njo1NyAyMDAwICBBbmRyZXcgQ2FnbmV5ICA8Y2FnbmV5QGIxLmN5Z251cy5jb20+CgoJKiBjb25maWd1cmUuaW4gKFdBUk5fQ0ZMQUdTKTogU2V0IHRvIC1XIC1XYWxsIGJ5IGRlZmF1bHQuICBBZGQKCS0tZW5hYmxlLWJ1aWxkLXdhcm5pbmdzIG9wdGlvbi4KCSogTWFrZWZpbGUuYW0gKEFNX0NGTEFHUywgV0FSTl9DRkxBR1MpOiBBZGQgZGVmaW5pdGlvbnMuCgkqIE1ha2VmaWxlLmluLCBjb25maWd1cmU6IFJlLWdlbmVyYXRlLgoKMjAwMC0wNC0wNyAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIHJlbG9jLmM6IEFkZCBCRkRfUkVMT0NfQVJNX1BDUkVMX0JMWCBhbmQKCUJGRF9SRUxPQ19USFVNQl9QQ1JFTF9CTFguCgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBIYW5kbGUKCVJfQVJNX1hQQzI1IGFuZCBSX0FSTV9USE1fUEMyMi4KCgkqIGVsZmFybS1uYWJpLmMgKGVsZjMyX2FybV9ob3d0b18pOiBGaXggZGVmaW5pdGlvbnMgb2YKCVJfQVJNX1hQQzI1IGFuZCBSX0FSTV9USE1fWFBDMjIuCgkoZWxmMzJfYXJtX3JlbG9jX21hcCk6IE1ha2UgQkZEX1JFTE9DX3tBUk18VEhVTUJ9X1BDUkVMX0JMWCB0bwoJUl9BUk1fW1hQQzI1fFRITV9YUEMyMl0uCgoJKiBlbGZhcm0tb2FiaS5jOiBEZWZpbmUgT0xEX0FSTV9BQkkgYW5kIGNoYW5nZSBpbmNsdWRlIGZyb20KCWVsZi9hcm0tb2FiaS5oIHRvIGVsZi9hcm0uaAoKCSogTWFrZWZpbGUuYW06IEZpeCBkZXBlbmRlbmN5IGZvciBlbGZhcm0tb2FiaS5jCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCjIwMDAtMDQtMDYgIE1pY2hhZWwgU255ZGVyICA8bXNueWRlckBzZWFkb2cuY3lnbnVzLmNvbT4KCgkqIGVsZmNvcmUuaCAoZWxmX2NvcmVfZmlsZV9wKTogcHJlc2VydmUgdmFsdWUgb2YgdGRhdGEgYXQgZW50cnksCglhbmQgcmVzdG9yZSBpdCBvbiBmYWlsdXJlLiAgUmVsZWFzZSBuZXdseSBhbGxvY2F0ZWQgdGRhdGEgb24KCWZhaWx1cmUuCgpGcmkgQXByICA3IDExOjMzOjQ3IDIwMDAgIEppbSBXaWxzb24gIDx3aWxzb25AY3lnbnVzLmNvbT4KCgkqIGR3YXJmMi5jIChzdHJ1Y3QgZHdhcmYyX2RlYnVnKTogTmV3IGZpZWxkIGR3YXJmX2xpbmVfc2l6ZS4KCShkZWNvZGVfbGluZV9pbmZvKTogU2V0IGl0LiAgUmVwb3J0IGVycm9yIGlmIHVuaXQtPmxpbmVfb2Zmc2V0IGlzCgllcXVhbCB0byBvciBsYXJnZXIgdGhhbiBpdC4KCjIwMDAtMDQtMDcgIFRpbW90aHkgV2FsbCAgPHR3YWxsQGN5Z251cy5jb20+CgoJKiB0YXJnZXRzLmM6IEFkZGVkIHZlY3MgZm9yIHRpYzU0eC4KCSogcmVsb2MuYzogQWRkZWQgcmVsb2NzIGZvciB0aWM1NHguCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlZC4KCSogY29uZmlndXJlOiBBZGQgVEkgQ09GRiB2ZWNzIGZvciB0aWM1NHguCgkqIGNvbmZpZ3VyZS5pbjogRGl0dG8uCgkqIGNvbmZpZy5iZmQgKHRhcmdfY3B1KTogUmVjb2duaXplIG5ldyB0aWM1NHggdGFyZ2V0LgoJKiBjb2ZmY29kZS5oIChjb2ZmX3NsdXJwX3N5bWJvbF90YWJsZSk6IEFkZGl0aW9ucyBmb3IgVEkgQ09GRiBoYW5kbGluZy4KCSogYmZkLWluMi5oOiBBZGQgdGljNTR4IHRhcmdldCBhbmQgcmVsb2NhdGlvbnMuCgkqIE1ha2VmaWxlLmFtLCBNYWtlZmlsZS5pbjogQWRkIHRpYzU0eCB0YXJnZXQuCgkqIGFyY2h1cmVzLmMgKGJmZF9hcmNodXJlc19saXN0KTogQWRkIHRpYzU0eCB0YXJnZXQuCgkqIGNvZmYtdGljNTR4LmM6IE5ldy4KCSogY3B1LXRpYzU0eC5jOiBOZXcuCgoyMDAwLTA0LTA2ICBNaWNoYWVsIFNueWRlciAgPG1zbnlkZXJAc2VhZG9nLmN5Z251cy5jb20+CgoJKiBlbGZjb3JlLmggKGVsZl9jb3JlX2ZpbGVfcCk6IGNhbGwgYmFja2VuZF9vYmplY3RfcCB3aGljaAoJdGhlcmVieSBnZXRzIGFuIG9wcG9ydHVuaXR5IHRvIHVwZGF0ZSB0aGUgYXJjaC9tYWNoaW5lIHR5cGUuCgoyMDAwLTA0LTA2ICBUaW1vdGh5IFdhbGwgIDx0d2FsbEBjeWdudXMuY29tPgoKCSogY29mZmNvZGUuaCAoY29mZl9zbHVycF9zeW1ib2xfdGFibGUpOiBIYW5kbGUgQ19TVEFUTEFCIHN0b3JhZ2UKCWNsYXNzLiAgSGFuZGxlIFNFQ19DTElOSyBhbmQgU0VDX0JMT0NLIGZsYWdzLgoJKiBzZWN0aW9uLmM6IEFkZCBTRUNfQ0xJTksgYW5kIFNFQ19CTE9DSyBmbGFncy4KCSogYmZkLWluMi5oOiBBZGQgU0VDX0NMSU5LIGFuZCBTRUNfQkxPQ0sgZmxhZ3MuCgoyMDAwLTA0LTA2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9zZXRfcHJpdmF0ZV9mbGFncyk6IE9ubHkgY2hlY2sgZm9yCglFRl9JTlRFUldPUksgaWYgdGhpcyBpcyBhbiB1bmtub3duIEVBQkkuCgkoZWxmMzJfYXJtX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBDaGVjayBFQUJJIHZlcnNpb24KCW51bWJlcnMuICBPbmx5IGNoZWNrIEVGX3h4eCBmbGFncyBpZiB0aGUgRUFCSSB2ZXJzaW9uIG51bWJlcgoJaXMgdW5rbm93bi4KCShlbGYzMl9hcm1fY2hlY2tfcHJpdmF0ZV9iZmRfZGF0YSk6IE9ubHkgY2hlY2sgRUZfeHh4IGZsYWdzCglpZiB0aGUgRUFCSSB2ZXJzaW9uIG51bWJlciBpcyB1bmtub3duLgoJKGVsZjMyX2FybV9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogT25seSBkZWNvZGUgRUZfeHh4IGZsYWdzCglpZiB0aGUgRUFCSSB2ZXJzaW9uIG51bWJlciBpcyB1bmtub3duLgoKV2VkIEFwciAgNSAyMjowNDoyMCAyMDAwICBKIm9ybiBSZW5uZWNrZSA8YW15bGFhckBjeWdudXMuY28udWs+CgoJKiByZWxvYy5jIChfYmZkX3JlbG9jYXRlX2NvbnRlbnRzKTogQWRkIEJGRF9SRUxPQ19TSF9MT09QX1NUQVJUIGFuZAoJQkZEX1JFTE9DX1NIX0xPT1BfRU5ELgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfaG93dG9fdGFiKTogQ2hhbmdlIHNwZWNpYWxfZnVuYyB0bwoJc2hfZWxmX2lnbm9yZV9yZWxvYyBmb3IgYWxsIGVudHJpZXMgdGhhdCBzaF9lbGZfcmVsb2MgdXNlZCB0byBpZ25vcmUuCglBZGQgZW50cmllcyBmb3IgUl9TSF9MT09QX1NUQVJUIGFuZCBSX1NIX0xPT1BfRU5ELgoJKHNoX2VsZl9yZWxvY19sb29wKTogTmV3IGZ1bmN0aW9uLgoJKHNoX2VsZl9yZWxvYyk6IE5vIG5lZWQgdG8gdGVzdCBmb3IgYWx3YXlzLXRvLWJlLWlnbm9yZWQgcmVsb2NzCglhbnkgbW9yZS4KCShzaF9yZWwpOiBBZGQgZW50cmllcyBmb3IgQkZEX1JFTE9DX1NIX0xPT1Bfe1NUQVJULEVORH0uCgkoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBIYW5kbGUgQkZEX1JFTE9DX1NIX0xPT1Bfe1NUQVJULEVORH0uCgkqIGJmZC1pbjIuaCwgbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgoyMDAwLTA0LTA0ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogcG8vYmZkLnBvdDogUmVnZW5lcmF0ZS4KCgkqIE1ha2VmaWxlLmFtOiBSZW1vdmUgZXh0cmFuZW91cyBta2RlcCBjb21tZW50LgoJKE1LREVQKTogVXNlIGdjYyAtTU0gcmF0aGVyIHRoYW4gbWtkZXAuCgkoREVQKTogUXVvdGUgd2hlbiBwYXNzaW5nIHZhcnMgdG8gc3ViLW1ha2UuICBBZGQgd2FybmluZwoJbWVzc2FnZSB0byBlbmQuCgkoREVQMSk6IFJld3JpdGUgZm9yICJnY2MgLU1NIi4KCShDTEVBTkZJTEVTKTogQWRkIERFUDIuCglVcGRhdGUgZGVwZW5kZW5jaWVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDAtMDQtMDMgIEtldmluIEJ1ZXR0bmVyICA8a2V2aW5iQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW46IEFkZGVkIGNvcmVmaWxlIHN1cHBvcnQgZm9yIEFJWCA0LjMuICBJbiBwYXJ0aWN1bGFyLAoJQUlYX0NPUkVfRFVNUFhfQ09SRSB3aWxsIGJlIGRlZmluZWQgaW4gYWRkaXRpb24gdG8gQUlYX0NPUkUgd2hlbgoJY29tcGlsaW5nIHJzNjAwMC1jb3JlLmMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgoyMDAwLTA0LTAzICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBjYWNoZS5jIChiZmRfb3Blbl9maWxlKTogVW5saW5rIHRoZSBvdXRwdXQgZmlsZSBvbmx5IGlmCglpdCBoYXMgbm9uLXplcm8gc2l6ZS4KCjIwMDAtMDQtMDEgIEtlbiBCbG9jayBVU0cgIDxibG9ja0B6azMuZGVjLmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCBlbWl0CglyZWxhdGl2ZSByZWxvY2F0aW9ucyBmb3Igbm9uLWxvYWRlZCBzZWN0aW9ucyBpbiBzaGFyZWQgb2JqZWN0cy4KCShlbGY2NF9hbHBoYV9jaGVja19yZWxvY3MpOiBTaW1pbGFybHkuCgpNb24gQXByICAzIDEzOjM3OjE1IDIwMDAgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogYW91dHguaCAoTkFNRShhb3V0LHJlbG9jX3R5cGVfbG9va3VwKSk6IEFkZCBCRkRfUkVMT0NfOCBhbmQKCUJGRF9SRUxPQ18xNiB0byBzd2l0Y2ggZm9yIGV4dGVuZGVkIHJlbG9jcy4KCShNWV9zd2FwX2V4dF9yZWxvY19pbik6IE5ldy4KCShNWV9zd2FwX2V4dF9yZWxvY19vdXQpOiBOZXcuCgkoTkFNRShhb3V0LHNsdXJwX3JlbG9jX3RhYmxlKSk6IFVzZSBNWV9zd2FwX2V4dF9yZWxvY19pbiByYXRoZXIKCXRoYW4gTkFNRShhb3V0LHN3YXBfZXh0X3JlbG9jX2luKSBmb3IgZXh0ZW5kZWQgcmVsb2NzLgoJKE5BTUUoYW91dCxzcXVpcnRfb3V0X3JlbG9jcykpOiBTaW1pbGFybHkgdXNlCglNWV9zd2FwX2V4dF9yZWxvY19vdXQuCgkoYW91dF9saW5rX3JlbG9jX2xpbmtfb3JkZXIpOiBVc2UgTVlfcHV0X2V4dF9yZWxvYyBpZiBkZWZpbmVkLgoKMjAwMC0wNC0wMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBjb2ZmLWg4MzAwLmMgKGg4MzAwX3JlbG9jMTZfZXh0cmFfY2FzZXMpOiBBZGQgYnNyOjE2IC0+IGJzcjo4IHRvCgl0aGUgUl9QQ1JXT1JEX0IgY2FzZS4KCjIwMDAtMDMtMzEgIFRob21hcyBkZSBMZWxsaXMgIDx0ZGVsQHdycy5jb20+CgoJKiBzcmVjLmMgOiBTZXQgQ0hVTksgc2l6ZSB0byAxNiBieXRlcyB0byBwcmV2ZW50IGRvd25sb2FkIGZhaWx1cmVzCglvbiBzb21lIHRhcmdldHMuCgkqIGloZXguYyA6IERpdHRvLgoKV2VkIE1hciAzMCAxNToyODowMCAyMDAwICBEb25hbGQgTGluZHNheSAgPGRsaW5kc2F5QGN5Z251cy5jb20+CgoJKiBlbGYzMi1tMzJyLmMgKG0zMnJfZWxmX2dlbmVyaWNfcmVsb2MpOiBuZXcgZnVuY3Rpb24uICBBbGwKCUhPV1RPIHJlZmVyZW5jZXMgdG8gYmZkX2VsZl9nZW5lcmljX3JlbG9jLCB0aGF0IGhhdmUKCXBhcnRpYWxfaW5wbGFjZSA9PSB0cnVlLCBub3cgdXNlIHRoZSBuZXcgZnVuY3Rpb24uICBUaGUgZnVuY3Rpb24KCWlzIGJhc2VkIG9uIHRoZSByZWNlbnQgcmV3cml0ZSBvZiBtMzJyX2VsZl9sbzE2X3JlbG9jKCksIGFuZAoJZXh0ZW5kcyBpdHMgZml4ZXMgdG8gdGhlIFJfTTMyUl97MTYsMjQsMzJ9IHJlbG9jcy4KCVRoZSBuZXcgbG9naWMgaW4gbTMycl9lbGZfbG8xNl9yZWxvYygpIGhhcyBiZWVuIHJlbW92ZWQsIGFuZAoJaXQgaW5zdGVhZCBjYWxscyB0aGUgbmV3IHJvdXRpbmUgdG8gb2J0YWluIHRoYXQgZnVuY3Rpb25hbGl0eS4KCjIwMDAtMDMtMjcgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBlbGYzMi1hdnIuYyAoZWxmMzJfYXZyX2djX21hcmtfaG9vaywgZWxmMzJfYXZyX2djX3N3ZWVwX2hvb2ssCgllbGYzMl9hdnJfY2hlY2tfcmVsb2NzLCBhdnJfZmluYWxfbGlua19yZWxvY2F0ZSwKCWVsZjMyX2F2cl9yZWxvY2F0ZV9zZWN0aW9uLCBiZmRfZWxmX2F2cl9maW5hbF93cml0ZV9wcm9jZXNzaW5nLAoJZWxmMzJfYXZyX29iamVjdF9wKTogQWRkIHByb3RvdHlwZXMuCgkoZWxmMzJfYXZyX2djX21hcmtfaG9vayk6IEFkZCBkZWZhdWx0IGZvciBoLT5yb290LnR5cGUuCgkoYmZkX2VsZl9hdnJfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IE1ha2Ugc3RhdGljLgoKMjAwMC0wMy0yNyAgRGVuaXMgQ2hlcnR5a292ICA8ZGVuaXNjQG92ZXJ0YS5ydT4KCgkqIGNwdS1hdnIuYzogTmV3IGZpbGUuICBCRkQgc3VwcG9ydCByb3V0aW5lcyBmb3IgQVZSIGFyY2hpdGVjdHVyZS4KCSogYXJjaHVyZXMuYyAoYmZkX2FyY2hpdGVjdHVyZSk6IEFkZCBBVlIgYXJjaGl0ZWN0dXJlLgoJKGJmZF9hcmNodXJlc19saXN0KTogQWRkIHJlZmVyZW5jZSB0byBBVlIgYXJjaGl0ZWN0dXJlIGluZm8uCgkqIGVsZi5jIChwcmVwX2hlYWRlcnMpOiBIYW5kbGUgYmZkX2FyY2hfYXZyLgoJKiByZWxvYy5jOiBBZGQgdmFyaW91cyBBVlIgcmVsb2NhdGlvbiBlbnVtcy4KCSogdGFyZ2V0cy5jIChiZmRfZWxmMzJfYXZyX3ZlYyk6IERlY2xhcmUgYW5kIGFkZCB0byB0YXJnZXQgdmVjdG9yCglsaXN0LgoJKiBNYWtlZmlsZS5hbTogQWRkIHN1cHBvcnQgZm9yIEFWUiBlbGYuCgkqIGNvbmZpZ3VyZS5pbjogTGlrZXdpc2UuCgkqIGNvbmZpZy5iZmQ6IExpa2V3aXNlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBUaGlzIHRvby4KCSogYmZkLWluMi5oOiBBbmQgdGhpcy4KCSogbGliYmZkLmg6IEFuZCB0aGlzLgoKMjAwMC0wMy0yNCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfbWVyZ2VfaW5kX3N5bWJvbHMpOiBBZGQgcHJvdG90eXBlLgoJKGVsZjY0X2FscGhhX2ZpbmRfcmVsb2NfYXRfb2ZzKTogTGlrZXdpc2UuCgoyMDAwLTAzLTE3ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogcmVsb2MuYyAoYmZkX2NoZWNrX292ZXJmbG93KTogSW4gY2FzZSBjb21wbGFpbl9vdmVyZmxvd19iaXRmaWVsZCwKCWZsYWcgYW4gb3ZlcmZsb3cgaWYgdGhlIGJpdGZpZWxkIGlzIG91dHNpZGUgLTIqKm4gdG8gMioqbi0xLiAgVGhlCglhbGxvd2FibGUgcmFuZ2UgdXNlZCB0byBiZSAtMioqKG4tMSkgdG8gMioqbi0xLgoJKiByZWxvYy5jIChfYmZkX3JlbG9jYXRlX2NvbnRlbnRzKTogU2FtZSBoZXJlLiAgQWxzbyByZXBsYWNlCgkiYm9vbGVhbiBvdmVyZmxvdyIgd2l0aCAiYmZkX3JlbG9jX3N0YXR1c190eXBlIGZsYWciLgoKMjAwMC0wMy0xNCAgRG91ZyBFdmFucyAgPGRqZUBjYXNleS50cmFuc21ldGEuY29tPgoKCSogZWxmMzItbTMyci5jIChtMzJyX2VsZl9sbzE2X3JlbG9jKTogUmV3cml0ZS4KCjIwMDAtMDMtMTQgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogcmVsb2MxNi5jIChiZmRfY29mZl9yZWxvYzE2X3JlbGF4X3NlY3Rpb24pOiBDb3VudCB0aGUgdG90YWwgbnVtYmVyCglvZiBzaHJpbmtzIHByb3Blcmx5LCBpbmNsdWRpbmcgdGhlIGxhc3QgcmVsb2MuCgoyMDAwLTAzLTEzICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIGNvZmYtaDgzMDAuYyAoaDgzMDBfcmVsb2MxNl9leHRyYV9jYXNlcyk6IEZpeCB0aGUgc2FuaXR5CgljaGVjayBmb3IgUl9NT1ZMMi4KCjIwMDAtMDMtMTEgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBpZWVlLmMgKGllZWVfYXJjaGl2ZV9wKTogUmV0dXJuIGJmZF9lcnJvcl93cm9uZ19mb3JtYXQgb24KCWEgZm9ybWF0IG1pc21hdGNoIHJhdGhlciB0aGFuIGFuICJlcnJvciIgZnJvbSBiZmRfcmVhZCBzdWNoIGFzCgliZmRfZXJyb3JfZmlsZV90cnVuY2F0ZWQuCgoyMDAwLTAzLTEwICBHZW9mZiBLZWF0aW5nICA8Z2VvZmZrQGN5Z251cy5jb20+CgoJKiBlbGYzMi1taXBzLmMgKF9iZmRfbWlwc19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IERvIHByb3BlcgoJc2lnbi1leHRlbnNpb24gYW5kIGJpZy1lbmRpYW4gY29tcGVuc2F0aW9uIGZvcgoJUl9NSVBTXzY0IGV2ZW4gaW4gbGQgLXIuCgoyMDAwLTAzLTEwICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGN5Z251cy5jb20+CgoJKiBlbGYzMi1taXBzLmMgKG1pcHNfZWxmX25leHRfcmVsb2NhdGlvbik6IFJlbmFtZSBmcm9tCgltaXBzX2VsZl9uZXh0X2xvMTZfcmVsb2NhdGlvbiwgYW5kIGdlbmVyYWxpemUgdG8gbG9vawoJZm9yIGFueSByZWxvY2F0aW9uIHR5cGUuCgkoZWxmX21pcHNfaG93dG9fdGFibGUpOiBNYWtlIFJfTUlQU19QQzE2IHBjcmVsX29mZnNldC4KCShlbGZfbWlwc19nbnVfcmVsX2hpMTYpOiBIb3d0byBmb3IgUl9NSVBTX0dOVV9SRUxfSEkxNi4KCShlbGZfbWlwc19nbnVfcmVsX2xvMTYpOiBIb3d0byBmb3IgUl9NSVBTX0dOVV9SRUxfTE8xNi4KCShlbGZfbWlwc19nbnVfcmVsMTZfczIpOiBIb3d0byBmb3IgUl9NSVBTX0dOVV9SRUwxNl9TMi4KCShlbGZfbWlwc19nbnVfcGNyZWw2NCk6IEhvd3RvIGZvciBSX01JUFNfUEM2NC4KCShlbGZfbWlwc19nbnVfcGNyZWwzMik6IEhvd3RvIGZvciBSX01JUFNfUEMzMi4KCShiZmRfZWxmMzJfYmZkX3JlbG9jX3R5cGVfbG9va3VwKTogQWRkIG5ldyByZWxvY3MuCgkobWlwc19ydHlwZV90b19ob3d0byk6IExpa2V3aXNlLgoJKG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogSGFuZGxlIG5ldyByZWxvY3MuCgkoX2JmZF9taXBzX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogUkVMX0hJMTYvUkVMX0xPMTYgcmVsb2NzCglhcmUgcGFpcmVkLiAgVGhlIGFkZGVuZCBmb3IgUl9NSVBTX0dOVV9SRUwxNl9TMgoJaXMgc2hpZnRlZCByaWdodCB0d28gYml0cy4KCjIwMDAtMDMtMTAgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiByZWxvYy5jIChiZmRfcGVyZm9ybV9yZWxvY2F0aW9uKTogVW5kbyBlbWFjcyBmb3JtYXR0aW5nIG9mCgljb21tZW50LCBhbmQgZW5zdXJlIGl0IGRvZXNuJ3QgaGFwcGVuIGFnYWluLgoJKGJmZF9pbnN0YWxsX3JlbG9jYXRpb24pOiBTYW1lIGhlcmUuCgkoX2JmZF9yZWxvY2F0ZV9jb250ZW50cyk6IERvbid0IGJvdGhlciBhc3NpZ25pbmcgdW51c2VkIHNpZ25tYXNrCglzaGlmdCByZXN1bHQuICBGaXggdHlwb3MgaW4gY29tbWVudHMuCglSZW1vdmUgdHJhaWxpbmcgd2hpdGVzcGFjZSB0aHJvdWdob3V0IGZpbGUuCgoyMDAwLTAzLTA3ICBEb3VnIEV2YW5zICA8ZGplQGNhc2V5LnRyYW5zbWV0YS5jb20+CgoJKiByZWxvYy5jIChyZWxvY19ob3d0b19zdHJ1Y3QpOiBGaXggcGFydGlhbF9pbnBsYWNlIGNvbW1lbnQuCgkqIGJmZC1pbjIuaDogUmVidWlsZC4KCjIwMDAtMDMtMDYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBwZWljb2RlLmggKHN0cnVjdCBwZV9JTEZfdmFycyk6IEFkZCBzeW1fcHRyX3RhYmxlIGFuZAoJc3ltX3B0cl9wdHIgZmllbGRzLgoJKFNJWkVPRl9JTEZfU1lNX1BUUl9UQUJMRSk6IERlZmluZS4KCShTSVpFT0ZfSUxGX1NUUklOR1MpOiBSZWRlZmluZS4KCShwZV9JTEZfbWFrZV9hX3N5bWJvbC1yZWxvYyk6IE5ldyBmdW5jdGlvbi4gIENyZWF0ZXMgYSBzeW1ib2wKCXJlbGF0aXZlIHJlbG9jLCBhcyBvcHBvc2VkIHRvIGEgc2VjdGlvbiByZWxhdGl2ZSByZWxvYy4KCShwZV9JTEZfbWFrZV9hX3N5bWJvbCk6IFNldCB0aGUgY2xhc3Mgb2YgbG9jYWwgc3ltYm9scyB0byBDX1NUQVQKCW5vdCBDX0xBQkVMLgoJQWRkIGxlbmd0aCBvZiBzeW1ib2wncyBwcmVmaXggdG8gc3RyaW5nIHBvaW50ZXIuCglTdG9yZSBhIHBvaW50ZXIgdG8gdGhlIHN5bWJvbCBpbiB0aGUgc3ltYm9sIHBvaW50ZXIgdGFibGUuCgkocGVfSUxGX2J1aWxkX2FfYmZkKTogRG8gbm90IGJ1aWxkIC5pZGF0YSQyIG9yIC5pZGF0YSQ3LgoJSW5pdGlhbGlzZSB0aGUgc3ltYm9sIHBvaW50ZXIgdGFibGUuCglTdG9yZSB0aGUgaGludCBpbiB0aGUgSGludC9OYW1lIHRhYmxlLgoJTWFrZSB0aGUganVtcCByZWxvYyBiZSBzeW1ib2wgcmVhbHRpdmUsIG5vdCBzZWN0aW9uIHJlbGF0aXZlLgoJQ3JlYXRlIGFuIGltcG9ydCBzeW1ib2wgZm9yIGltcG9ydGVkIGNvZGUuCgoyMDAwLTAzLTA2ICBDYXRoZXJpbmUgTW9vcmUgIDxjbG1AY3lnbnVzLmNvbT4KCgkqIGVsZi5jIChzd2FwX291dF9zeW1zKTogIENoZWNrIGZvciBudWxsIHR5cGVfcHRyLgoKMjAwMC0wMy0wMSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBhb3V0LXRhcmdldC5oIChNWSh3cml0ZV9vYmplY3RfY29udGVudHMpKTogUmVtb3ZlIHVudXNlZAoJYW5kIHVudXNhYmxlICIjaWYgQ0hPT1NFX1JFTE9DX1NJWkUiLgoJKiBwYzUzMi1tYWNoLmMgKE1ZKHdyaXRlX29iamVjdF9jb250ZW50cykpOiBEaXR0by4KCSogbmV0YnNkLmggKE1ZKHdyaXRlX29iamVjdF9jb250ZW50cykpOiBEaXR0by4KCSogaHAzMDBocHV4LmMgKE1ZKHdyaXRlX29iamVjdF9jb250ZW50cykpOiBEaXR0by4KCSogZnJlZWJzZC5oIChNWSh3cml0ZV9vYmplY3RfY29udGVudHMpKTogRGl0dG8uCgkqIGFvdXQtdGljMzAuYyAodGljMzBfYW91dF93cml0ZV9vYmplY3RfY29udGVudHMpOiBEaXR0by4KCjIwMDAtMDItMjkgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIHBlaWNvZGUuaCAoanRhYik6IE1ha2UgaXQgc3RhdGljLgoKCSogY29mZi1zaC5jIChzaF9hbGlnbl9sb2FkX3NwYW4pOiBEZWNsYXJlZCBpZiBDT0ZGX1dJVEhfUEUgaXMKCWRlZmluZWQgYW5kIENPRkZfSU1BR0VfV0lUSF9QRSBpcyBub3QgZGVmaW5lZC4KCShfYmZkX3NoX2FsaWduX2xvYWRfc3Bhbik6IERlZmluZWQgYXMgc2hfYWxpZ25fbG9hZF9zcGFuIGlmCglDT0ZGX1dJVEhfUEUgaXMgZGVmaW5lZCBhbmQgQ09GRl9JTUFHRV9XSVRIX1BFIGlzIG5vdCBkZWZpbmVkLgoKMjAwMC0wMy0wMSAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIGNvZmYtYXJtLmMgKGJmZF9hcm1fcHJvY2Vzc19iZWZvcmVfYWxsb2NhdGlvbik6IE1ha2UKCSdzeW1uZHgnIHNpZ25lZCB0byBwcmV2ZW50IGNvbXBpbGUgdGltZSB3YXJuaW5nLgoKCSogY29mZi1tY29yZS5jOiBSZW1vdmUgdW51c2VkIHByb3RvdHlwZSBmb3IgcGVfb2JqZWN0X3AuCgoJKiBjb2ZmLXNoLmM6IEFkZCAiI2lmbmRlZiBDT0ZGX0lNQUdFX1dJVEhfUEUiIGFyb3VuZCBzdGF0aWMKCWZ1bmN0aW9ucyB0aGF0IGFyZSBub3QgdXNlZCB3aGVuIENPRkZfSU1BR0VfV0lUSF9QRSBpcwoJZGVmaW5lZC4KCShzdHJ1Y3Qgc2hfb3Bjb2RlKTogQ2hhbmdlIHR5cGUgb2YgJ2ZsYWdzJyBmaWVsZCB0byB1bnNpZ25lZAoJbG9uZyBzbyB0aGF0IGl0IGNhbiBob2xkIHRoZSBVU0VTQVMgZmxhZy4KCgkqIGNvZmZjb2RlLmggKHN0eXBfdG9fc2VjX2ZsYWdzKTogSW5pdGlhbGlzZSAndGFyZ2V0X25hbWUnLgoKCSogZWxmLW0xMDMwMC5jIChtbjEwMzAwX2VsZl9yZWxheF9zZWN0aW9uKTogSW5pdGlhbGlzZQoJJ3N5bV9zZWMnLgoKCSogZWxmMzItaTM3MC5jOiBBZGQgQVRUUklCVVRFX1VOVVNFRCB0byB1bnVzZWQgZnVuY3Rpb24KCXBhcmFtZXRlcnMuCglSZW1vdmUgdW51c3VlZCB2YXJpYWJsZXMgYW5kIGNvZGUuCgkoZWxmX2JhY2tlbmRfYWRkX3N5bWJvbF9ob29rKTogRml4IHByb3RvdHlwZS4KCgkqIGVsZjMyLW02OGsuYyAoZWxmX202OGtfZ2Nfc3dlZXBfaG9vayk6IEluaXRpYWxpc2UgJ3Nnb3QnIGFuZAoJJ3NyZWxnb3QnLgoKCSogZWxmMzItbWNvcmUuYyAobWNvcmVfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBJbml0aWFsaXNlCgknb2xkaW5zdCcuCgoJKiBlbGYzMi1taXBzLmM6IEFkZCBBVFRSSUJVVEVfVU5VU0VEIHRvIHVudXNlZCBmdW5jdGlvbgoJcGFyYW1ldGVycy4KCVJlbW92ZSB1bnVzdWVkIHZhcmlhYmxlcyBhbmQgY29kZS4KCShlbGZfYmFja2VuZF9hZGRfc3ltYm9sX2hvb2spOiBGaXggcHJvdG90eXBlLgoKCSogZWxmMzItc2guYyAoc2hfZWxmX3NldF9tYWNoX2Zyb21fZmxhZ3MpOiBVc2UgJ2ZsYWdzJy4KCgkqIGVsZmxpbmsuaCAoZWxmX2JmZF9saW5rX2FkZF9zeW1ib2xzKTogQWRkIEFUVFJJQlVURV9VTlVTRUQKCXRvIHVudXNlZCBmdW5jdGlvbiBwYXJhbWV0ZXIuCgoJKiBwZS1taXBzLmM6IEFkZCBBVFRSSUJVVEVfVU5VU0VEIHRvIHVudXNlZCBmdW5jdGlvbgoJcGFyYW1ldGVycy4KCVVzZSBFTVBUWV9IT1dUTyB0byBpbml0aWFsaXNlIGVtcHR5IGhvd3RvIHNsb3RzLgoJUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMuCgoJKiBwZWljb2RlLmggKHBlX0lMRl9idWlsZF9hX2JmZCk6IEluaXRpYWxpc2UgaWQ2LgoKMjAwMC0wMy0wMSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogYW91dHguaCAoYW91dF9saW5rX2lucHV0X3NlY3Rpb25fc3RkKTogUGFzcyAidHJ1ZSIgdG8KCXRoZSB1bmRlZmluZWRfc3ltYm9sIGNhbGxiYWNrLgoJKGFvdXRfbGlua19pbnB1dF9zZWN0aW9uX2V4dCk6IExpa2V3aXNlLgoJKiBib3V0LmMgKGdldF92YWx1ZSk6IExpa2V3aXNlLgoJKiBjb2ZmLWEyOWsuYyAoY29mZl9hMjlrX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogY29mZi1hbHBoYS5jIChhbHBoYV9lY29mZl9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVuKToKCUxpa2V3aXNlLgoJKGFscGhhX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogY29mZi1hcm0uYyAoY29mZl9hcm1fcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBjb2ZmLWk5NjAuYyAoY29mZl9pOTYwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogY29mZi1tY29yZS5jIChjb2ZmX21jb3JlX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogY29mZi1taXBzLmMgKG1pcHNfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBjb2ZmLXBwYy5jIChjb2ZmX3BwY19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGNvZmYtc2guYyAoc2hfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBjb2ZmLXRpYzgwLmMgKGNvZmZfdGljODBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBjb2ZmbGluay5jIChfYmZkX2NvZmZfZ2VuZXJpY19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZi1tMTAyMDAuYyAobW4xMDIwMF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYtbTEwMzAwLmMgKG1uMTAzMDBfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItZDEwdi5jIChlbGYzMl9kMTB2X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItZnIzMC5jIChmcjMwX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWkzNzAuYyAoaTM3MF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1tMzJyLmMgKG0zMnJfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItbWNvcmUuYyAobWNvcmVfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItc2guYyAoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItdjg1MC5jICh2ODUwX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfbGlua19yZWNvcmRfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmbGluay5oIChlbGZfbGlua19vdXRwdXRfZXh0c3ltKTogTGlrZXdpc2UuCgkqIHBlLW1pcHMuYyAoY29mZl9wZV9taXBzX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogcmVsb2MuYyAoYmZkX2dlbmVyaWNfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbik6IExpa2V3aXNlLgoJKiByZWxvYzE2LmMgKF9iZmRfcHBjX3hjb2ZmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCgkqIGVsZi1ocHBhLmggKGVsZl9ocHBhX3JlbG9jYXRlX3NlY3Rpb24pOiBQYXNzICJmYWxzZSIgdG8gdGhlCgl1bmRlZmluZWRfc3ltYm9sIGNhbGxiYWNrIHdoZW4gYnVpbGRpbmcgc2hhcmVkIGxpYnJhcnkgd2l0aAoJLUJzeW1ib2xpYyBhbmQgdW5kZWZpbmVkIHN5bWJvbHMgYXJlIGFsbG93ZWQuIE90aGVyd2lzZSwgcGFzcwoJInRydWUiLgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGsuYyAoZWxmX202OGtfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1taXBzLmMgKG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgkoZWxmMzJfbWlwc19nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudCk6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAwLTAyLTI4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogTWFrZWZpbGUuYW06IEFkZCBydWxlcyB0byBidWlsZCBwZVtpXS17c2h8bWlwc30ubG8gb2JqZWN0cy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoJKiBjb25maWd1cmUuaW46IEFkZCBzdXBwb3J0IGZvciBtaXBzIGFuZCBzaCBwZSB2ZWN0b3JzLgoJKiBjb25maWd1cmU6IHJlZ2VuZXJhdGUuCgoJKiBjb25maWcuYmZkOiBBZGQgc3VwcG9ydCBmb3IgYXJtLXdpbmNlLCBtaXBzLXBlIGFuZCBzaC1wZQoJdGFyZ2V0cy4KCgkqIHRhcmdldHMuYzogQWRkIG1pcHMgYW5kIHNoIHBlIHZlY3RvcnMuCgoJKiBsaWJwZWkuaCAoY29mZl9maW5hbF9saW5rX3Bvc3RzY3JpcHQpOiBPbmx5IGRlZmluZSBpZiBub3QKCWFscmVhZHkgZGVmaW5lZC4KCgkqIGNvZmZjb2RlLmg6IEFkZCBzdXBwb3J0IGZvciBXaW5DRSBtYWdpYyBudW1iZXJzLgoKCSogcGVpZ2VuLmMgKHBlX3ByaW50X3JlbG9jKTogVXBkYXRlIGNvbW1lbnQgYW5kIHJlYXJyYW5nZQoJYXBwZW5kaW5nIG9mIG5ld2xpbmUgY2hhcmFjdGVyLgoKCSogcGVpY29kZS5oOiBBZGQgc3VwcG9ydCBmb3IgSW1hZ2UgTGlicmFyeSBGb3JtYXQuCgkocGVfSUxGX3ZhcnMpOiBTdHJ1Y3R1cmUgY29udGFpbmluZyBkYXRhIHVzZWQgYnkgSUxGIGNvZGUuCgkocGVfSUxGX21ha2VfYV9zZWN0aW9uKTogTmV3IGZ1bmN0aW9uLiAgQ3JlYXRlIGEgc2VjdGlvbiBiYXNlZAoJb24gSUxGIGRhdGEuCgkocGVfSUxGX21ha2VfYV9yZWxvYyk6IE5ldyBmdW5jdGlvbi4gIENyZWF0ZSBhIHJlbG9jIGJhc2VkIG9uCglJTEYgZGF0YS4KCShwZV9JTEZfbWFrZV9hX3N5bWJvbCk6IE5ldyBmdW5jdGlvbi4gIENyZWF0ZSBhIHN5bWJvbCBiYXNlZAoJb24gSUxGIGRhdGEuCgkocGVfSUxGX3NhdmVfcmVsb2NzKTogTmV3IGZ1bmN0aW9uLiAgU3RvcmUgdGhlIHJlbG9jcyBjcmVhdGVkCglieSBwZV9JTEZfbWFrZV9hX3JlbG9jIGluIGEgc2VjdGlvbi4KCShwZV9JTEZfYnVpbGRfYV9iZmQpOiBOZXcgZnVuY3Rpb24uICBDcmVhdGUgYSBCRkQgZGVzY3JpYmluZwoJYW4gSUxGIG9iamVjdC4KCShwZV9JTEZfb2JqZWN0X3ApOiBOZXcgZnVuY3Rpb24uICBSZXR1cm4gYSBiZmRfdGFyZ2V0IHBvaW50ZXIKCWZvciBhbiBJTEYgb2JqZWN0LgoJKHBlX2JmZF9vYmplY3RfcCk6IElmIGFuIElMRiBvYmplY3QgaXMgZGV0ZWN0ZWQgY2FsbAoJcGVfSUxGX29iamVjdF9wIG9uIGl0LgoKCSogY29mZi1hcm0uYzogQWRkIHN1cHBvcnQgZm9yIFdpbkNFIHJlbG9jcyB3aGljaCBhcmUgZGlmZmVyZW50Cglmcm9tIG5vcm1hbCBBUk0gQ09GRiByZWxvY3MuCgkqIHBlLWFybS5jOiBVbnNldCBUQVJHRVRfVU5ERVJTQ09SRSBmb3IgYSBXaW5DRSB0YXJnZXQuCgoJKiBjb2ZmLXNoLmM6IEFkZCBzdXBwb3J0IGZvciBzaC1wZSB0YXJnZXQuCgkqIHBlLXNoLmM6IE5ldyBmaWxlLiAgU3VwcG9ydCBjb2RlIGZvciBzaC1wZSB0YXJnZXQuCgkqIHBlaS1zaC5jOiBOZXcgZmlsZS4gIFN1cHBvcnQgY29kZSBmb3Igc2gtcGUgdGFyZ2V0LgoKCSogcGUtbWlwcy5jOiBOZXcgZmlsZS4gIFN1cHBvcnQgY29kZSBmb3IgbWlwcy1wZSB0YXJnZXQuCgkqIHBlaS1taXBzLmM6IE5ldyBmaWxlLiAgU3VwcG9ydCBjb2RlIGZvciBtaXBzLXBlIHRhcmdldC4KCjIwMDAtMDItMjcgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmMzItc3BhcmMuYyAoZWxmMzJfc3BhcmNfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IERvbid0IGJ1bXAKCWFyY2hpdGVjdHVyZSBpZiB0aGUgb2JqZWN0IGNhdXNpbmcgdGhlIGJ1bXAgaXMgZHluYW1pYy4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IExpa2V3aXNlLAoJYW5kIGFsc28gZG9uJ3QgaXQgZm9yIG1lbW9yeSBvcmRlcmluZy4KCShzcGFyYzY0X2VsZl93cml0ZV9yZWxvY3MpOiBUYWtlIHNyY19yZWxhIG91dCBvZiB0aGUgbG9vcC4KCjIwMDAtMDItMjcgIElhbiBMYW5jZSBUYXlsb3IgIDxpYW5AemVtYnUuY29tPgoKCSogZHdhcmYyLmMgKHJlYWRfYWJicmV2cyk6IFVzZSBfcmF3X3NpemUgZGlyZWN0bHkgcmF0aGVyIHRoYW4KCWNhbGxpbmcgYmZkX2dldF9zZWN0aW9uX3NpemVfYmVmb3JlX3JlbG9jLgoJKGRlY29kZV9saW5lX2luZm8pOiBMaWtld2lzZS4KCShfYmZkX2R3YXJmMl9maW5kX25lYXJlc3RfbGluZSk6IExpa2V3aXNlLgoKMjAwMC0wMi0yNyAgRWxpIFphcmV0c2tpaSAgPGVsaXpAaXMuZWx0YS5jby5pbD4KCgkqIE1ha2VmaWxlLmFtIChzdGFtcC1saWIpOiBVc2UgJChMSUJUT09MKSAtLWNvbmZpZyB0byBnZXQgdGhlCgluYW1lIG9mIHRoZSBsaWJ0b29sIGRpcmVjdG9yeS4KCSogTWFrZWZpbGUuaW46IFJlYnVpbGQuCgpGcmkgRmViIDI1IDE4OjM5OjI2IDIwMDAgIFJvZG5leSBCcm93biAoUm9kbmV5QnJvd25AcG1zYy5jb20pCgoJKiBzb20uYyAoU09NX0hPV1RPKTogRGVmaW5lLgoJKHNvbV9ocHBhX2hvd3RvX3RhYmxlKTogVXNlIGl0LgoKMjAwMC0wMi0yNSAgQWxleGFuZHJlIE9saXZhICA8b2xpdmFAbHNkLmljLnVuaWNhbXAuYnI+CgoJKiBjb25maWcuYmZkOiBFbmFibGUgNjQgYml0IHN1cHBvcnQgZm9yIEdOVS9MaW51eC9zcGFyYy4KCgkqIGNvbmZpZy5iZmQ6IEVuYWJsZSA2NCBiaXQgc3VwcG9ydCBmb3IgU29sYXJpczcrL3NwYXJjLgoKMjAwMC0wMi0yNCAgQ2F0aGVyaW5lIE1vb3JlICA8Y2xtQGN5Z251cy5jb20+CgoJKiBzb20uYyAoc29tX21pc2Nfc3ltYm9sX2luZm8pOiAgQWRkIGZpZWxkCglzZWNvbmRhcnlfZGVmLgoJKHNvbV9iZmRfZGVyaXZlX21pc2Nfc3ltYm9sX2luZm8pOiAgSW5pdGlhbGl6ZQoJc2Vjb25kYXJ5X2RlZi4KCShzb21fYnVpbGRfYW5kX3dyaXRlX3N5bWJvbF90YWJsZSk6IEtlZXAgdHJhY2sKCW9mIHNlY29uZGFyeV9kZWYgZmllbGQuCgkoc29tX3NsdXJwX3N5bWJvbF90YWJsZSk6IFNldCBCU0ZfV0VBSyBzeW1ib2wgZmxhZwoJaWYgc2Vjb25kYXJ5X2RlZiBmaWVsZCBpcyBzZXQuCgkoc29tX2JmZF9hcl93cml0ZV9zeW1ib2xfc3R1ZmYpOiBJbml0aWFsaXplCglzZWNvbmRhcnlfZGVmLgoKMjAwMC0wMi0yMyAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAd29ybGRuZXQuZnI+CgoJKiBkd2FyZjIuYyAocmVhZF9hZGRyZXNzKTogUmVhZCAxNi1iaXRzIGFkZHJlc3Nlcy4KCShwYXJzZV9jb21wX3VuaXQpOiBBY2NlcHQgYWRkcl9zaXplID09IDIuCgoyMDAwLTAyLTIzICBBbGFuIE1vZHJhICA8YWxhbkBzcHJpLmxldmVscy51bmlzYS5lZHUuYXU+CgoJKiBiZmQtaW4uaDogVXBkYXRlIGNvcHlyaWdodCBkYXRlLgoKMjAwMC0wMi0yMyAgTGluYXMgVmVwc3RhcyA8bGluYXNAbGluYXMub3JnPgoKCSogY3B1LWkzNzAuYzogTmV3IGZpbGUuCgkqIGVsZjMyLWkzNzAuYzogIE5ldyBmaWxlLgoJKiBhcmNodXJlcy5jIChlbnVtIGJmZF9hcmNoaXRlY3R1cmUpOiBBZGQgYmZkX2FyY2hfaTM3MC4KCShiZmRfaTM3MF9hcmNoKTogTmV3LgoJKGJmZF9hcmNodXJlc19saXN0KTogQWRkIGJmZF9pMzcwX2FyY2guCgkqIGVsZi5jIChwcmVwX2hlYWRlcnMpOiBBZGQgYmZkX2FyY2hfaTM3MC4KCSogTWFrZWZpbGUuYW06IEFkZCBzdXBwb3J0IGZvciBJQk0gMzcwIGVsZi4KCSogY29uZmlnLmJmZDogTGlrZXdpc2UuCgkqIGNvbmZpZ3VyZS5pbjogTGlrZXdpc2UuCgkqIGxpYmJmZC5oIChiZmRfcmVsb2NfY29kZV9yZWFsX25hbWVzKTogTGlrZXdpc2UuCgkqIHJlbG9jLmMgKGJmZF9yZWxvY19jb2RlX3R5cGUpOiBMaWtld2lzZS4KCSogdGFyZ2V0cy5jOiBMaWtld2lzZS4KCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDAtMDItMjIgIElhbiBMYW5jZSBUYXlsb3IgIDxpYW5AemVtYnUuY29tPgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9pbmZvX3RvX2hvd3RvX3JlbCk6IEdpdmUgYSB3YXJuaW5nIGZvcgoJaW52YWxpZCByZWxvY2F0aW9uIHR5cGVzLCBhbmQgY2hhbmdlIHRoZW0gdG8gUl8zODZfTk9ORS4KCjIwMDAtMDItMjIgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogSWYgYSB2ZXJzaW9uIHN5bWJvbCBpcwoJbm90IGRlZmluZWQsIGRvbid0IGFkZCBhIHNlY29uZCBFTEZfVkVSX0NIUi4KCgkqIGVsZmxpbmsuaCAoZWxmX2JmZF9maW5hbF9saW5rKTogQ2FsbCBvdXRwdXRfZXh0c3ltIGZvciBnbG9iYWwKCXN5bWJvbHMgY29udmVydGVkIHRvIGxvY2FsIHN5bWJvbHMgZXZlbiB3aGVuIHN0cmlwcGluZyBhbGwKCXN5bWJvbHMuCgkoZWxmX2xpbmtfb3V0cHV0X2V4dHN5bSk6IFByb2Nlc3MgZ2xvYmFsIHN5bWJvbHMgY29udmVydGVkIHRvCglsb2NhbCBzeW1ib2xzIGV2ZW4gaWYgdGhleSBhcmUgYmVpbmcgc3RyaXBwZWQuCgoyMDAwLTAyLTIxICBBbGFuIE1vZHJhICA8YWxhbkBzcHJpLmxldmVscy51bmlzYS5lZHUuYXU+CgoJKiBhcmNodXJlcy5jIChiZmRfb2N0ZXRzX3Blcl9ieXRlKTogUmV0dXJuIHVuc2lnbmVkIGludC4KCShiZmRfYXJjaF9tYWNoX29jdGV0c19wZXJfYnl0ZSk6IERpdHRvLgoJKiBsaWJiZmQuYyAoYmZkX3JlYWQsIGJmZF9zZWVrKTogUXVlbGwgc2lnbmVkIHZzLiB1bnNpZ25lZAoJY29tcGFyaXNvbiB3YXJuaW5nLgoJKiBzZWN0aW9uLmMgKGJmZF9nZXRfc2VjdGlvbl9zaXplX2JlZm9yZV9yZWxvYyk6IFF1ZWxsIHNpZ25lZAoJdnMuIHVuc2lnbmVkIGNvbXBhcmlzb24gd2FybmluZy4KCShiZmRfZ2V0X3NlY3Rpb25fc2l6ZV9hZnRlcl9yZWxvYyk6IFNhbWUgaGVyZS4gIEZpeCBwYXJlbnRoZXNlcyB0b28uCgkqIHRyYWQtY29yZS5jICh0cmFkX3VuaXhfY29yZV9maWxlX3ApOiBDb3JyZWN0IDIwMDAtMDEtMjcKCWNoYW5nZS4gIFdoYXQgd2FzIEkgdGhpbmtpbmc/CgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCgkqIGVsZmxpbmsuaCAoZWxmX2djX3N3ZWVwKTogU2tpcCBub24tZWxmIGlucHV0IGJmZHMuCgkoZWxmX2djX3NlY3Rpb25zKTogU2FtZSBoZXJlLgoJKGVsZl9nY19jb21tb25fZmluYWxpemVfZ290X29mZnNldHMpOiBBbmQgaGVyZS4KCjIwMDAtMDItMjEgIElhbiBMYW5jZSBUYXlsb3IgIDxpYW5AemVtYnUuY29tPgoKCUVMRiBIUFBBIGRvZXNuJ3Qgd29yayBhdCBwcmVzZW50OyByZW1vdmUgaXQgdW50aWwgaXQgZG9lcy4KCSogY29uZmlnLmJmZDogQ29tbWVudCBvdXQgc2V0dGluZyB0YXJnX2RlZnZlYyB0bwoJYmZkX2VsZjMyX2hwcGFfdmVjLgoJKiBNYWtlZmlsZS5hbTogUmVidWlsZCBkZXBlbmRlbmNpZXMuCgkoQkZEMzJfQkFDS0VORFMpOiBSZW1vdmUgZWxmMzItaHBwYS5sby4KCShCRkQzMl9CQUNLRU5EU19DRklMRVMpOiBSZW1vdmUgZWxmMzItaHBwYS5jLgoJKFNPVVJDRV9IRklMRVMpOiBSZW1vdmUgZWxmMzItaHBwYS5oIGFuZCBocHBhX3N0dWJzLmguCgkqIE1ha2VmaWxlLmluOiBSZWJ1aWxkLgoJKiB0YXJnZXRzLmMgKGJmZF90YXJnZXRfdmVjdG9yKTogQ29tbWVudCBvdXQgYmZkX2VsZjMyX2hwcGFfdmVjLgoKMjAwMC0wMi0xOCAgR2VvZmYgS2VhdGluZyAgPGdlb2Zma0BjeWdudXMuY29tPgoKCSogY29mZmNvZGUuaCAoY29mZl9zZXRfYXJjaF9tYWNoX2hvb2spOiBVc2UgZnJlZSgpLCBiZWNhdXNlIHRoZXJlCglpcyBubyBiZmRfZnJlZSgpLiAgUmV2ZXJ0IGJmZF9mcmVlIHBhcnQgb2YgcHJldmlvdXMgY2hhbmdlLgoKMjAwMC0wMi0xOCAgR2VvZmYgS2VhdGluZyAgPGdlb2Zma0BjeWdudXMuY29tPgoKCSogY29mZmNvZGUuaCAoY29mZl9zZXRfYXJjaF9tYWNoX2hvb2spOiBEb24ndCB1c2UgdmFyaWFibGUtc2l6ZQoJYXJyYXlzLgoJKGNvZmZfY29tcHV0ZV9zZWN0aW9uX2ZpbGVfcG9zaXRpb25zKTogVXNlIGJmZF9mcmVlIHRvIHBhaXIKCWJmZF9tYWxsb2MuCgkoY29mZl93cml0ZV9vYmplY3RfY29udGVudHMpOiBMaWtld2lzZS4KCgkqIGNvZmYtcnM2MDAwLmMgKHhjb2ZmX2hvd3RvX3RhYmxlXzE2KTogTmV3IHZhcmlhYmxlLgoJKHhjb2ZmX3J0eXBlMmhvd3RvKTogSGFuZGxlIDE2LWJpdCB2YXJpYW50cyBvZiAzMi1iaXQgcmVsb2NzLgoKMjAwMC0wMi0xOCAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBjb2ZmLXJzNjAwMC5jIChYQ09GRkFSTUFHQklHKTogTmV3IG1hY3JvLgoJKHhjb2ZmX2FyX2ZpbGVfaGRyX2JpZyk6IE5ldyBzdHJ1Y3R1cmUuCgkoU0laRU9GX0FSX0ZJTEVfSERSX0JJRyk6IE5ldyBtYWNyby4KCSh4Y29mZl9hcl9oZHJfYmlnKTogTmV3IHN0cnVjdHVyZS4KCShTSVpFT0ZfQVJfSERSX0JJRyk6IE5ldyBtYWNyby4KCSh4Y29mZl9iaWdfZm9ybWF0X3ApOiBOZXcgbWFjcm8uCgkoeGNvZmZfYXJkYXRhX2JpZyk6IE5ldyBtYWNyby4KCShhcmNoX3hoZHJfYmlnKTogTmV3IG1hY3JvLgoJKHhjb2ZmX3NsdXJwX2FybWFwKTogSGFuZGxlIGxhcmdlIGFyY2hpdmVzLgoJKHhjb2ZmX2FyY2hpdmVfcCk6IERldGVjdCBsYXJnZSBhcmNoaXZlcy4KCSh4Y29mZl9yZWFkX2FyX2hkcik6IEhhbmRsZSBsYXJnZSBhcmNoaXZlcy4KCSh4Y29mZl9vcGVucl9uZXh0X2FyY2hpdmVkX2ZpbGUpOiBIYW5kbGUgbGFyZ2UgYXJjaGl2ZXMuCgkoeGNvZmZfZ2VuZXJpY19zdGF0X2FyY2hfZWx0KTogSGFuZGxlIGxhcmdlIGFyY2hpdmVzLgoJKHhjb2ZmX3dyaXRlX2FybWFwX29sZCk6IFJlbmFtZSBmcm9tIHhjb2ZmX3dyaXRlX2FybWFwLgoJKHhjb2ZmX3dyaXRlX2FybWFwX2JpZyk6IE5ldyBmdW5jdGlvbi4KCSh4Y29mZl93cml0ZV9hcm1hcCk6IE5ldyBmdW5jdGlvbiwgZGlzcGF0Y2ggdG8gX29sZCBvciBfYmlnLgoJKHhjb2ZmX3dyaXRlX2FyY2hpdmVfY29udGVudHNfb2xkKTogUmVuYW1lIGZyb20KCXhjb2ZmX3dyaXRlX2FyY2hpdmVfY29udGVudHMuCgkoeGNvZmZfd3JpdGVfYXJjaGl2ZV9jb250ZW50c19iaWcpOiBOZXcgZnVuY3Rpb24uCgkoeGNvZmZfd3JpdGVfYXJjaGl2ZV9jb250ZW50cyk6IE5ldyBmdW5jdGlvbiwgZGlzcGF0Y2ggdG8gX29sZCBvcgoJX2JpZy4KCjIwMDAtMDItMTggIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQGN5Z251cy5jb20+CgoJKiBlbGYtYmZkLmggKHN0cnVjdCBlbGZfbGlua19oYXNoX3RhYmxlKTogUmVtb3ZlIGNvcHlfaW5kaXJlY3QKCWFuZCBoaWRlX3N5bWJvbCBtZW1iZXJzLgoJKGVsZl9saW5rX2hhc2hfY29weV9pbmRpcmVjdCk6IFJlbW92ZS4KCShlbGZfbGlua19oYXNoX2hpZGVfc3ltYm9sKTogUmVtb3ZlLgoJKHN0cnVjdCBlbGZfYmFja2VuZF9kYXRhKTogQWRkIGVsZl9iYWNrZW5kX2NvcHlfaW5kaXJlY3Rfc3ltYm9sCglhbmQgZWxmX2JhY2tlbmRfaGlkZV9zeW1ib2wuCgkoX2JmZF9lbGZfbGlua19oYXNoX2NvcHlfaW5kaXJlY3QpOiBEZWNsYXJlLgoJKF9iZmRfZWxmX2xpbmtfaGFzaF9oaWRlX3N5bWJvbCk6IERlY2xhcmUuCgkqIGVsZi5jIChfYmZkX2VsZl9saW5rX2hhc2hfY29weV9pbmRpcmVjdCk6IFJlbW92ZSB0YWJsZSBhcmd1bWVudC4KCShfYmZkX2VsZl9saW5rX2hhc2hfaGlkZV9zeW1ib2wpOiBMaWtld2lzZS4KCShfYmZkX2VsZl9saW5rX2hhc2hfdGFibGVfaW5pdCk6IERvbid0IGluaXQga2lsbGVkIG1lbWJlcnMuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogVXNlIHRoZSBiZWQgZnVuY3Rpb24KCXBvaW50ZXJzIG5vdCBlbGZfbGlua19oYXNoX3tjb3B5X2luZGlyZWN0LGhpZGVfc3ltYm9sfS4KCShlbGZfbGlua19hc3NpZ25fc3ltX3ZlcnNpb24pOiBMaWtld2lzZS4KCSogZWxmeHgtdGFyZ2V0LmggKGVsZl9iYWNrZW5kX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogRGVmYXVsdC4KCShlbGZfYmFja2VuZF9oaWRlX3N5bWJvbCk6IExpa2V3aXNlLgoJKGVsZk5OX2JlZCk6IFVwZGF0ZSBmb3IgbmV3IG1lbWJlcnMuCgoyMDAwLTAyLTE3ICBLZXZpbiBCdWV0dG5lciAgPGtldmluYkByZWRoYXQuY29tPgoKCSogcnM2MDAwLWNvcmUuYyAoQ09SRV9EQVRBX1NJWkVfRklFTEQsIENPUkVfQ09NTV9GSUVMRCwgU0FWRV9GSUVMRCwKCVNUQUNLX0VORF9BRERSKTogRGVmaW5lIGZvciBuZXcgY29yZSBmaWxlIGZvcm1hdC4KCShMT0FERVJfT0ZGU0VUX0ZJRUxELCBMT0FERVJfUkVHSU9OX1NJWkUsIENPUkVfRFVNUCk6IE5ldyBkZWZpbmVzCglmb3IgaGFuZGxpbmcgdGhlIHZhZ2FyaWVzIG9mIHRoZSB2YXJpb3VzIGNvcmUgZmlsZSBzdHJ1Y3R1cmVzIHVzZWQKCWJ5IEFJWCBvdmVyIHRoZSB5ZWFycy4KCShyczYwMDBjb2ZmX2NvcmVfcCwgcnM2MDAwY29mZl9jb3JlX2ZpbGVfbWF0Y2hlc19leGVjdXRhYmxlLAoJUnM2a0NvckRhdGEpOiBVc2UgYWJvdmUgZGVmaW5lcyB0byBhZGFwdCBjb2RlIHRvIHVzZSBBSVggNC4zJ3MKCWNvcmVfZHVtcHggc3RydWN0dXJlLgoKVGh1IEZlYiAxNyAwMDowNDo0OCAyMDAwICBKIm9ybiBSZW5uZWNrZSA8YW15bGFhckBjeWdudXMuY28udWs+CgoJKiBhcmNodXJlcy5jIChiZmRfbWFjaF9zaDIsIGJmZF9tYWNoX3NoX2RzcCk6IE5ldyBtYWNyb3MuCgkoYmZkX21hY2hfc2gzX2RzcCk6IExpa2V3aXNlLgoJKGJmZF9tYWNoX3NoNCk6IFJlaW5zdGF0ZS4KCShiZmRfZGVmYXVsdF9zY2FuKTogUmVjb2duaXplIDc0MTAsIDc3MDgsIDc3MjkgYW5kIDc3NTAuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogY29mZi1zaC5jIChzdHJ1Y3Qgc2hfb3Bjb2RlKTogZmxhZ3MgaXMgbm8gbG9uZ2VyIHNob3J0LgoJKFVTRVNBUywgVVNFU0FTX1JFRywgVVNFU1I4LCBTRVRTQVMsIFNFVFNBU19SRUcpOiBOZXcgbWFjcm9zLgoJKHNoX29wY29kZTQxLCBzaF9vcGNvZGU0Mik6IEludGVncmF0ZSBhcyBzaF9vcGNvZGU0MS4KCShzaF9vcGNvZGUwMSwgc2hfb3Bjb2RlMDIsIHNoX29wY29kZTQwKTogQWRkIHNoLWRzcCBvcGNvZGVzLgoJKHNoX29wY29kZTQxLCBzaF9vcGNvZGU0LCBzaF9vcGNvZGU4MCk6IExpa2V3aXNlLgoJKHNoX29wY29kZXMpOiBObyBsb25nZXIgY29uc3QuCgkoc2hfZHNwX29wY29kZWYwLCBzaF9kc3Bfb3Bjb2RlZik6IE5ldyBhcnJheXMuCgkoc2hfaW5zbl91c2VzX3JlZyk6IENoZWNrIGZvciBVU0VTQVMgYW5kIFVTRVNSOC4KCShzaF9pbnNuX3NldHNfcmVnLCBzaF9pbnNuc19jb25mbGljdCk6IENoZWNrIGZvciBTRVRTQVMuCgkoX2JmZF9zaF9hbGlnbl9sb2FkX3NwYW4pOiBSZXR1cm4gZWFybHkgZm9yIFNINC4KCU1vZGlmeSBzaF9vcGNvZGVzIGxvb2t1cCB0YWJsZSBmb3Igc2gtZHNwIC8gc2gzLWRzcC4KCVRha2UgaW50byBhY2NvdW50IHRoYXQgZmllbGQgYiBvZiBhIHBhcmFsbGVsIHByb2Nlc3NpbmcgaW5zbgoJY291bGQgYmUgbWlzdGFrZW4gZm9yIGEgc2VwYXJhdGUgaW5zbi4KCSogY3B1LXNoLmMgKGFyY2hfaW5mb19zdHJ1Y3QpOiBOZXcgYXJyYXkgZWxlbWVudHMgZm9yCglzaDIsIHNoLWRzcCBhbmQgc2gzLWRzcC4KCVJlaW5zdGF0ZSBlbGVtZW50IGZvciBzaDQuCgkoU0gyX05FWFQsIFNIX0RTUF9ORVhULCBTSDNfRFNQX05FWFQpOiBOZXcgbWFjcm9zLgoJKFNINF9ORVhUKTogUmVpbnN0YXRlLgoJKFNIM19ORVhULCBTSDNFX05FWFQpOiBBZGp1c3QuCgkqIGVsZi1iZmQuaCAoX3NoX2VsZl9zZXRfbWFjaF9mcm9tX2ZsYWdzKTogRGVjbGFyZS4KCSogZWxmMzItc2guYyAoc2hfZWxmX3NldF9wcml2YXRlX2ZsYWdzKTogTmV3IGZ1bmN0aW9uLgoJKHNoX2VsZl9jb3B5X3ByaXZhdGVfZGF0YSwgc2hfZWxmX3NldF9tYWNoX2Zyb21fZmxhZ3MpOiBMaWtld2lzZS4KCShzaF9lbGZfbWVyZ2VfcHJpdmF0ZV9kYXRhKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9iYWNrZW5kX29iamVjdF9wLCBiZmRfZWxmMzJfYmZkX3NldF9wcml2YXRlX2JmZF9mbGFncyk6IERlZmluZS4KCShiZmRfZWxmMzJfYmZkX2NvcHlfcHJpdmF0ZV9iZmRfZGF0YSk6IERlZmluZS4KCShiZmRfZWxmMzJfYmZkX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBDaGFuZ2UgdG8KCXNoX2VsZl9tZXJnZV9wcml2YXRlX2RhdGEuCgoyMDAwLTAyLTEzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEBjeWdudXMuY29tPgoKCSogZWxmLWJmZC5oIChzdHJ1Y3QgZWxmX2xpbmtfaGFzaF90YWJsZSk6IEFkZCBjb3B5X2luZGlyZWN0IGFuZAoJaGlkZV9zeW1ib2wgbWVtYmVycy4KCShlbGZfbGlua19oYXNoX2NvcHlfaW5kaXJlY3QpOiBOZXcuCgkoZWxmX2xpbmtfaGFzaF9oaWRlX3N5bWJvbCk6IE5ldy4KCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBCcmVhayBvdXQgY29weSBmcm9tCglpbmRpcmVjdCBuZXcgbmV3IHN5bWJvbCB0byBlbGYuYy4KCShlbGZfbGlua19hc3NpZ25fc3ltX3ZlcnNpb24pOiBCcmVhayBvdXQgcHJpdmF0aXphdGlvbiBvZgoJbm9uLWV4cG9ydGVkIHN5bWJvbCB0byBlbGYuYy4KCSogZWxmLmMgKF9iZmRfZWxmX2xpbmtfaGFzaF9jb3B5X2luZGlyZWN0KTogTmV3LgoJKF9iZmRfZWxmX2xpbmtfaGFzaF9oaWRlX3N5bWJvbCk6IE5ldy4KCShfYmZkX2VsZl9saW5rX2hhc2hfdGFibGVfaW5pdCk6IEluaXQgY29weV9pbmRpcmVjdCBhbmQgaGlkZV9zeW1ib2wuCgoyMDAwLTAyLTEzICBJYW4gTGFuY2UgVGF5bG9yICA8aWFuQHplbWJ1LmNvbT4KCgkqIHNlY3Rpb24uYyAoX2JmZF9zdHJpcF9zZWN0aW9uX2Zyb21fb3V0cHV0KTogQWRkIGluZm8gcGFyYW1ldGVyLgoJSWYgaXQgcGFzc2VkIGFzIG5vbi1OVUxMLCB1c2UgaXQgdG8gY2hlY2sgd2hldGhlciBhbnkgaW5wdXQgQkZECgloYXMgYW4gaW5wdXQgc2VjdGlvbiB3aGljaCB1c2VzIHRoaXMgb3V0cHV0IHNlY3Rpb24uICBDaGFuZ2UgYWxsCgljYWxsZXJzLgoJKiBiZmQtaW4yLmg6IFJlYnVpbGQuCgoJKiBiZmQtaW4uaDogTW92ZSBkZWNsYXJhdGlvbnMgb2YgYmZkX2dldF9lbGZfcGhkcl91cHBlcl9ib3VuZCBhbmQKCWJmZF9nZXRfZWxmX3BoZHJzIGluIGZyb20gYmZkLWluMi5oLCBjb3JyZWN0aW5nIHBhdGNoIG9mCgkxOTk5LTExLTI5LgoJKiBiZmQtaW4yLmg6IFJlYnVpbGQuCgoyMDAwLTAyLTEwICBUaW1vdGh5IFdhbGwgIDx0d2FsbEBjeWdudXMuY29tPgoKCSogY29mZnN3YXAuaCAoY29mZl9zd2FwX3N5bV9pbik6IEFkZCBob29rIFNXQVBfU1lNX0lOX1BPU1QgdG8KCWFsbG93IGZpbmFsIG1vZGlmaWNhdGlvbnMgb2Ygc3dhcHBlZC1pbiBzeW1ib2wuCgkoY29mZl9zd2FwX3N5bV9vdXQpOiBEaXR0byB3aXRoIFNXQVBfU1lNX09VVF9QT1NULgoJKiBjb2ZmY29kZS5oIChjb2ZmX3dyaXRlX3JlbG9jcyk6IFVzZSBtYWNybwoJU0VDVElPTl9SRUxBVElWRV9BQlNPTFVURV9TWU1CT0xfUCBpZiBkZWZpbmVkIHRvIGRldGVybWluZSB3aGV0aGVyCglzeW1ib2wgaW5kZXggc2hvdWxkIGJlIHNldCB0byAtMS4KClRodSBGZWIgMTAgMjA6MDc6NTAgR01UIDIwMDAgIFRvc2hpeWFzdSBNb3JpdGEgKHRvc2hpLm1vcml0YUBzZWdhLmNvbSkKCgkqIGNvZmYtc2guYyAoVVNFUzFfUkVHLCBVU0VTMl9SRUcsIFNFVFMxX1JFRywgU0VUUzJfUkVHLAoJVVNFU0YxX1JFRywgVVNFU0YyX1JFRywgU0VUU0YxX1JFRywgU0VUU0YyX1JFRyk6IE5ldyBtYWNyb3MuCgkqIChzaF9pbnNuX3NldHNfcmVnLCBzaF9pbnNuX3NldHNfZnJlZyk6IE5ldyBwcm90b3R5cGVzLgoJKiAoc2hfaW5zbl9zZXRzX3JlZywgc2hfaW5zbl91c2VzX29yX3NldHNfcmVnLCBzaF9pbnNuc19zZXRzX2ZyZWcsCglzaF9pbnNuc191c2VzX29yX3NldHNfZnJlZyk6IE5ldyBmdW5jdGlvbnMuCgkqIChzaF9pbnNuX3VzZXNfcmVnLCBzaF9pbnNuX3VzZXNfZnJlZyk6IFVzZSBuZXcgbWFjcm9zLgoJKiAoc2hfaW5zbnNfY29uZmxpY3QpOiBVc2UgbmV3IGZ1bmN0aW9ucyBhbmQgbmV3IG1hY3JvcyB0bwoJZGV0ZWN0IGNvbmZsaWN0cyB3aGVuIHR3byBpbnN0cnVjdGlvbnMgYm90aCBzZXQgc2FtZSBpbnRlZ2VyIHJlZ2lzdGVycywKCWJvdGggc2V0IHNhbWUgZnAgcmVnaXN0ZXIsIGFuZCBib3RoIHNldCBzcGVjaWFsIHJlZ2lzdGVyLgoKMjAwMC0wMi0wOSAgVGltb3RoeSBXYWxsICA8dHdhbGxAY3lnbnVzLmNvbT4KCgkqIGNvZmZnZW4uYyAoY29mZl9yZWFsX29iamVjdF9wKTogU2V0IGFyY2gvbWFjaCBpbmZvIHByaW9yIHRvCglzd2FwcGluZyBpbiBzZWN0aW9ucywgc28gdGhhdCB0aGUgc3dhcHBpbmcgcm91dGluZXMgaGF2ZSBhY2Nlc3MgdG8KCXRoZSBhcmNoL21hY2ggaW5mby4KCjIwMDAtMDItMDggTWFyayBFbGJyZWNodCA8c25vd2JhbGwzQGJpZ2Zvb3QuY29tPgoKCSogY29mZi1nbzMyLmM6IFVwZGF0ZSBjb21tZW50LiBVcGRhdGUgY29weXJpZ2h0LgoKMjAwMC0wMS0yNyAgVGhvbWFzIGRlIExlbGxpcyAgPHRkZWxAd2luZHJpdmVyLmNvbT4KCgkqIHN5bXMuYyAoYmZkX2RlY29kZV9zeW1jbGFzcykKCVR3byBuZXcgY2xhc3MgY2hhcmFjdGVycyB3ZXJlIGFkZGVkIC0gJ1YnIGFuZCAndicuICBUaGUKCW1lYW5pbmcgb2YgJ1cnIGlzIG5vdyByZXN0cmljdGVkIHRvIGp1c3Qgd2VhayBub24tb2JqZWN0CglzeW1ib2xzLiAgVGhpcyBhbGxvd3MgZGlmZmVyZW50aWF0aW9uIGJldHdlZW4sIGZvciBleGFtcGxlLAoJd2VhayBmdW5jdGlvbnMgdnMgd2VhayBvYmplY3RzLiAgbm0gZm9yIGV4YW1wbGUgbm93IGR1bXBzOgoJJ1cnID0gd2VhayBnbG9iYWwKCSd3JyA9IHdlYWsgdW5yZXNvbHZlZAoJJ1YnID0gd2VhayBnbG9iYWwgb2JqZWN0CgkndicgPSB3ZWFrIHVucmVzb2x2ZWQgb2JqZWN0CgoJKGJmZF9pc191bmRlZmluZWRfc3ltY2xhc3MpOiBOZXcgZnVuY3Rpb24uICBSZXR1cm4gdHJ1ZSBpZiB0aGUKCWdpdmVuIHN5bWJvbCBjbGFzcyByZXByZXNlbnRzIGFuZCB1bmRlZmluZWQvdW5yZXNvbHZlZCBzeW1ib2wuCgoJKGJmZF9zeW1ib2xfaW5mbyk6IFVzZSBiZmRfaXNfdW5kZWZpbmVkX3N5bWNsYXNzIHRvIGNoZWNrIGZvcgoJdW5yZXNvbHZlZCBzeW1ib2xzLgoKCSogYmZkLWluMi5oOiBBZGQgcHJvdG90eXBlIGZvciBiZmRfaXNfdW5kZWZpbmVkX3N5bWJvbCgpLgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9nZXRfc3ltYm9sX3R5cGUpOiBJZiBhIHN5bWJvbCBoYXMgdGhlCglTVFRfQVJNXzE2QklUIGZsYWcgc2V0LCBidXQgaXQgaXMgbm90IGF0dGFjaGVkIHRvIGEgZGF0YSBvYmplY3QKCXJldHVybiBTVFRfQVJNXzE2QklUIHNvIHRoYXQgaXQgd2lsbCBiZSB0cmVhdGVkIGFzIGNvZGUgYnkgdGhlCglkaXNhc3NlbWJsZXIuCgoyMDAwLTAxLTI3ICBBbGFuIE1vZHJhICA8YWxhbkBzcHJpLmxldmVscy51bmlzYS5lZHUuYXU+CgoJKiBjb2ZmLWkzODYuYyAoaTNjb2ZmX29iamVjdF9wKTogUmVtb3ZlIHByb3RvdHlwZS4KCVVwZGF0ZSBjb3B5cmlnaHQuCgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX2xpbmtfcmVjb3JkX2R5bmFtaWNfc3ltYm9sKTogQWRkIGNvbnN0Cgl0byBuYW1lLiAgVXBkYXRlIGNvcHlyaWdodC4KCgkqIHRyYWQtY29yZS5jICh0cmFkX3VuaXhfY29yZV9maWxlX3ApOiBDYXN0IGNvcmVfcmVnc2VjCglhc3NpZ25tZW50IHRvIGF2b2lkIHdhcm5pbmcuICBVcGRhdGUgY29weXJpZ2h0LgoKMjAwMC0wMS0yNCAgUm9iZXJ0IExpcGUgIChyb2JlcnRsQHNjby5jb20pCgoJKiBjb2ZmY29kZS5oIChjb2ZmX3dyaXRlX29iamVjdF9jb250ZW50cyk6IEdldCBidWZmIHZpYSBiZmRfbWFsbG9jCglpbnN0ZWFkIG9mIHVzaW5nIEdOVSBDIGV4dGVuc2lvbi4KCjIwMDAtMDEtMjEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBsaWJiZmQuYyAoYmZkX3JlYWQpOiBEbyBub3QgYXR0ZW1wdCB0byBnZXQgYSBuZWdhdGl2bHkgc2l6ZWQKCWFtb3VudCBmcm9tIGEgYmZkX2luX21lbW9yeSBzdHJ1Y3R1cmUuCgkoYmZkX3NlZWspOiBEbyBub3QgYWxsb3cgc2Vla3MgcGFzdCB0aGUgZW5kIG9mIGEgYmZkX2luX21lbW9yeQoJc3RydWN0dXJlLgoKMjAwMC0wMS0xNCAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIGxpbmtlci5jIChkZWZhdWx0X2luZGlyZWN0X2xpbmtfb3JkZXIpOiBvb3BzIC0gZml4IGluY29ycmVjdGx5CglhcHBsaWVkIHBhdGNoIGZyb20gVGltIFdhbGwuCgoyMDAwLTAxLTEzICBUaW1vdGh5IFdhbGwgKHR3YWxsQHRpYWMubmV0PgoKCSogY29mZmNvZGUuaDogVXNlIGJmZF9jb2ZmX3h4eCBpbnN0ZWFkIG9mIHRoZSBtYWNybyBYWFggKHdoZXJlIHh4eAoJPSBzY25oc3osIGZpbGhzeiwgcmVsc3osIGFvdXRzeiwgZXRjKQoKCSogY29mZnN3YXAuaDogRGl0dG8uCgoyMDAwLTAxLTEzICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogZWxmMzItYXJtLmggKGVsZjMyX3RodW1iX3RvX2FybV9zdHViKTogRml4IG9mZnNldCBpbiBicmFuY2ggdG8KCWludGVyd29yayB0aHVtYiB0byBhcm0gc3R1Yi4KCjIwMDAtMDEtMTMgIFRpbW90aHkgV2FsbCAodHdhbGxAdGlhYy5uZXQ+CgoJKiBhcmNodXJlcy5jIChiZmRfb2N0ZXRzX3Blcl9ieXRlKTogTmV3IGZ1bmN0aW9uOiBSZXR1cm4KCXRhcmdldCBieXRlIHNpemUuCgkoYmZkX2FyY2hfbWFjaF9vY3RldHNfcGVyX2J5dGUpOiBOZXcgZnVuY3Rpb246IFJldHVybiB0YXJnZXQKCWJ5dGUgc2l6ZS4KCgkqIHNlY3Rpb24uYzogRGlzdGluZ3Vpc2ggYmV0d2VlbiBvY3RldHMgYW5kIGJ5dGVzIGZvciB1c2FnZSBvZgoJX2Nvb2tlZF9zaXplLCAgX3Jhd19zaXplLCBhbmQgb3V0cHV0X29mZnNldC4gIENsYXJpZnkKCWRlc2NyaXB0aW9uIG9mIGJmZF9zZXRfc2VjdGlvbl9jb250ZW50cy4KCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCgkqIGNvZmZnZW4uYzogSW5kaWNhdGUgdGhhdCB0aGUgb2Zmc2V0IHBhcmFtZXRlciBpcyBpbiBieXRlcywgbm90CglvY3RldHMuCgoJKiBjb2ZmbGluay5jIChiZmRfY29mZl9saW5rX2lucHV0X2JmZCk6IFVzZSBiZmRfb2N0ZXRzX3Blcl9ieXRlCgl3aGVyZSBhcHByb3ByaWF0ZSB0byBnZXQgdGhlIG9jdGV0IG9mZnNldCB3aGVuIGNhbGxpbmcKCWJmZF9zZXRfc2VjdGlvbl9jb250ZW50cy4KCShiZmRfY29mZl9yZWxvY19saW5rX29yZGVyKTogRGl0dG8uCgoJKiBsaW5rZXIuYyAoYmZkX2dlbmVyaWNfcmVsb2NfbGlua19vcmRlcik6IERpdHRvLgoJKF9iZmRfZGVmYXVsdF9saW5rX29yZGVyKTogRGl0dG8uCgoJKiByZWxvYy5jIChiZmRfcGVyZm9ybV9yZWxvY2F0aW9uKTogIERpc3Rpbmd1aXNoIGJldHdlZW4gb2N0ZXRzCglhbmQgYnl0ZXMuICBVc2Ugb2N0ZXRzIHdoZW4gaW5kZXhpbmcgaW50byBvY3RldCBkYXRhOyB1c2UgYnl0ZXMKCXdoZW4gY2FsY3VsYXRpbmcgdGFyZ2V0IGFkZHJlc3Nlcy4KCShiZmRfaW5zdGFsbF9yZWxvY2F0aW9uKTogRGl0dG8uCgoJKiBzcmVjLmMgKHNyZWNfd3JpdGVfc2VjdGlvbik6IERpdHRvLgoKMjAwMC0wMS0xMyAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIGNvZmYtbWNvcmUuYyAoQ09GRl9ERUZBVUxUX1NFQ1RJT05fQUxJR05NRU5UX1BPV0VSKTogQ2hhbmdlIGZyb20KCTMgdG8gMi4gIFRoaXMgYWxsb3dzIDQgYnl0ZSBzaXplZCBzZWN0aW9ucywgd2hpY2ggaXMgbmVjZXNzYXJ5IGZvcgoJZGxsdG9vbCB0byBidWlsZCBmdW5jdGlvbmluZyBETExzLgoKMjAwMC0wMS0xMCAgUGhpbGlwIEJsdW5kZWxsICA8cGJAZnV0dXJldHYuY29tPgoKCSogY29uZmlnLmJmZCAoYXJtKi0qLWxpbnV4LWdudSopOiBNYXRjaCBpbnN0ZWFkIG9mIGFybSotKi1saW51eC1nbnUuCgkoYXJtKi0qLWNvbml4Kik6IE5ldyB0YXJnZXQuCgoyMDAwLTAxLTEwICBFZ29yIER1ZGEgIDxkZW9AbG9nb3MtbS5ydT4KCgkqIGNvbmZpZy5iZmQ6IEluY2x1ZGUgZWxmMzJfaTM4NiB2ZWN0b3IgdG8gdGFyZ2V0IGxpc3QgZm9yIGN5Z3dpbgoJYW5kIG1pbmd3LgoKCSogY29uZmlnLmluOiBVbmRlZmluZSBIQVZFX1dJTjMyX1BTVEFUVVNfVC4KCSogY29uZmlndXJlLmluOiBUZXN0IGZvciBzdHJ1Y3R1cmUgd2luMzJfcHN0YXR1c190IGluCgk8c3lzL3Byb2Nmcy5oPgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoJKiBlbGYuYyAoZWxmY29yZV9ncm9rX3dpbjMycHN0YXR1cyk6IE5ldyBmdW5jdGlvbjogcHJvY2VzcwoJd2luMzJfcHN0YXR1c190IG5vdGVzIGluIGVsZiBjb3JlIGZpbGUuCgkoZWxmY29yZV9ncm9rX25vdGUpOiBEZXRlY3Qgd2luMzJfcHN0YXR1cyBub3Rlcy4KCjIwMDAtMDEtMDMgIE1hcnRpbiB2LiBMb2V3aXMgIDxsb2V3aXNAaW5mb3JtYXRpay5odS1iZXJsaW4uZGU+CgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX2xpbmtfcmVjb3JkX2R5bmFtaWNfc3ltYm9sKTogUHJvY2VzcyBzeW1ib2wKCXZpc2liaWxpdHkuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogQ29tYmluZSB2aXNpYmlsaXRpZXMuCgkqIGVsZi5jIChiZmRfZWxmX3ByaW50X3N5bWJvbCk6IEludGVycHJldCBzdF9vdGhlciBhcyB2aXNpYmlsaXR5LgoKRm9yIG9sZGVyIGNoYW5nZXMgc2VlIENoYW5nZUxvZy05ODk5CgwKTG9jYWwgVmFyaWFibGVzOgptb2RlOiBjaGFuZ2UtbG9nCmxlZnQtbWFyZ2luOiA4CmZpbGwtY29sdW1uOiA3NAp2ZXJzaW9uLWNvbnRyb2w6IG5ldmVyCkVuZDoK