MjAwMi0xMi0yMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIFJFQURNRSA8YnVpbGRpbmcgYXI+OiBEb24ndCB1c2UgbGliaWJlcnkncyBuZWVkZWRfbGlzdCBvcgoJcmVxdWlyZWRfbGlzdCwgaW5zdGVhZCBsaW5rIGxpYmliZXJ0eS8qLm8uCgoyMDAyLTExLTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogc2l6ZS5jICh1c2FnZSk6IEZpeCB0eXBvIGRlc2NyaWJpbmcgc3dpdGNoIGZvciBoZXggZm9ybWF0LgoKMjAwMi0xMS0wNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoTElOR1VBUyk6IEFkZCAnZGEnLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIHBvL2RhLnBvOiBOZXcgRGFuaXNoIHRyYW5zbGF0aW9uLgoKMjAwMi0xMC0zMCAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBwby9iaW51dGlscy5wb3Q6IFJlZ2VuZXJhdGVkLgoKMjAwMi0xMC0yOCAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJTWVyZ2UgZnJvbSBtYWlubGluZToKCTIwMDItMTAtMjEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgkqIGJ1Y29tbS5jIChsaXN0X3N1cHBvcnRlZF90YXJnZXRzKTogVXNlIGJmZF90YXJnZXRfbGlzdC4KCgkyMDAyLTEwLTA5ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCSogcmVhZGVsZi5jIChkaXNwbGF5X2RlYnVnX2luZm8pOiBJZ25vcmUgZW1wdHkgLnJlbGEuZGVidWdfaW5mbwoJc2VjdGlvbnMuICBBbGxvdyByZWxvY2F0aW9ucyBhZ2FpbnN0IHRoZSBhYnNvbHV0ZSBzeW1ib2wuICBEb24ndAoJdXNlIHRoZSB2YWx1ZSBpbiBjb21wdW5pdC5jdV9hYmJyZXZfb2Zmc2V0IGlmIHdlIGZvdW5kIGEgUkVMQQoJcmVsb2NhdGlvbi4KCjIwMDItMTAtMjEgIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIG9iamR1bXAuYyAoZHVtcF9kYXRhKTogQ29ycmVjdCBhZGRyX29mZnNldCBmb3Igb3BiICE9IDEuCgoyMDAyLTA5LTIzICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCglNZXJnZSBmcm9tIG1haW5saW5lOgoJMjAwMi0wOS0xMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCSogcG8vdHIucG86IFVwZGF0ZWQgVHVya2lzaCB0cmFuc2xhdGlvbi4KCgkyMDAyLTA4LTE0ICBMdWtlIER1bnN0YW4gIDxpbmZpZGVsQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCSogcmNwYXJzZS55IChhY2NfZW50cnkpOiBEb24ndCB3YXJuIGFib3V0IEFMVCB1c2Ugd2l0aAoJbm9uLVZJUlRLRVkuCgoJMjAwMi0wOC0wOSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCSogcG8vc3YucG86IFVwZGF0ZWQgU3dlZGlzaCB0cmFuc2xhdGlvbi4KCgkyMDAyLTA3LTMxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoJKiBhZGRyMmxpbmUuYyAocHJvY2Vzc19maWxlKTogUmVuYW1lIHBhcmFtZXRlciAnZmlsZW5hbWUnIHRvCgknZmlsZV9uYW1lJyBpbiBvcmRlciB0byBhdm9pZCBzaGFkb3dpbmcgZ2xvYmFsIHN5bWJvbCBvZiB0aGUKCXNhbWUgbmFtZS4KCShtYWluKTogTGlrZXdpc2UuCgoyMDAyLTA3LTMwICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCglNZXJnZSBmcm9tIG1haW5saW5lOgoJMjAwMi0wNy0zMCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgkqIHJlYWRlbGYuYyAoT1BUSU9OX0RFQlVHX0RVTVApOiBEZWZpbmUuCgkob3B0aW9ucyk6IFVzZSBpdC4KCSh1c2FnZSk6IFVwZGF0ZSBoZWxwLgoJKHBhcnNlX2FyZ3MpOiBIYW5kbGUgLS1kZWJ1Zy1kdW1wIHNlcGFyYXRlbHkgZnJvbSAtdy4KCSogZG9jL2JpbnV0aWxzLnRleGkgKHJlYWRlbGYpOiBVcGRhdGUgZG9jdW1lbnRhdGlvbi4KCjIwMDItMDctMjUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9lcy5wbzogVXBkYXRlZCBTcGFuaXNoIHRyYW5zbGF0aW9uLgoJKiBwby9mci5wbzogVXBkYXRlZCBGcmVuY2ggdHJhbnNsYXRpb24uCgoyMDAyLTA3LTI0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vZXMucG86IFVwZGF0ZWQgU3BhbmlzaCB0cmFuc2xhdGlvbi4KCjIwMDItMDctMjMgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogcG8vYmludXRpbHMucG90OiBSZWdlbmVyYXRlZC4KCjIwMDItMDctMjMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9mci5wbzogVXBkYXRlZCBGcmVuY2ggdHJhbnNsYXRpb24uCgoyMDAyLTA3LTIzICBFcmljIFMuIFJheW1vbmQgIDxlc3JAZ29sdXgudGh5cnN1cy5jb20+CgoJKiBkb2MvYmludXRpbHMudGV4aSAoYWRkcjJsaW5lIDxtYW4gc3lub3BzaXM+KTogQ29ycmVjdCBicmFja2V0cy4KCjIwMDItMDctMjAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBidWRlbWFuZy5jOiBJbmNsdWRlIGNvbmZpZy5oIGFuZCBzdHJpbmcuaC9zdHJpbmdzLmguCgoyMDAyLTA3LTE2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIE5FV1M6IEFkZCAnQ2hhbmdlcyBpbiAyLjEzJy4KCjIwMDItMDctMTAgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChnZXRfZHluYW1pY190eXBlKTogSGFuZGxlIERUX0dOVV9QUkVMSU5LRUQsCglEVF9HTlVfQ09ORkxJQ1QqIGFuZCBEVF9HTlVfTElCTElTWiouCgkoZ2V0X3NlY3Rpb25fdHlwZV9uYW1lKTogSGFuZGxlIFNIVF9HTlVfTElCTElTVC4KCShwcm9jZXNzX2R5bmFtaWNfc2VnbWVudCk6IEhhbmRsZSBEVF9HTlVfQ09ORkxJQ1RTWiwKCURUX0dOVV9MSUJMSVNUU1ogYW5kIERUX0dOVV9QUkVMSU5LRUQuCgkocHJvY2Vzc19nbnVfbGlibGlzdCk6IE5ldy4KCShwcm9jZXNzX2ZpbGUpOiBDYWxsIGl0LgoKMjAwMi0wNy0wMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtIChjaGVjay1ERUpBR05VKTogUmV2ZXJ0IDIwMDItMDYtMjUgY2hhbmdlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDctMDIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBidWRlbWFuZy5jOiBOZXcgZmlsZSwgImRlbWFuZ2xlIiBmdW5jdGlvbi4KCSogYnVkZW1hbmcuaDogTmV3IGZpbGUuCgkqIGFkZHIybGluZS5jICh0cmFuc2xhdGVfYWRkcmVzc2VzKTogVXNlICJkZW1hbmdsZSIuCgkqIG5tLmMgKHByaW50X3N5bW5hbWUpOiBMaWtld2lzZS4KCSogb2JqZHVtcC5jIChvYmpkdW1wX3ByaW50X3N5bW5hbWUpOiBMaWtld2lzZS4KCShkdW1wX3N5bWJvbHMpOiBMaWtld2lzZS4gIEFsc28sIGRvbid0IHVzZSBiZmRfYXN5bWJvbF9uYW1lIG1hY3JvCgloZXJlIHNpbmNlIHRoYXQgb2JmdXNjYXRlcy4KCSogcmRjb2ZmLmM6IERvbid0ICNpbmNsdWRlIGRlbWFuZ2xlLmguCgkqIE1ha2VmaWxlLmFtIChDRklMRVMpOiBBZGQgYnVkZW1hbmcuYywgZW11bF9haXguYywKCWVtdWxfdmFuaWxsYS5jLiAgUmVtb3ZlIGVtdWxfJChFTVVMQVRJT04pLmMuICBTb3J0LgoJKEhGSUxFUyk6IEFkZCBidWRlbWFuZy5oLiAgU29ydC4KCShubV9uZXdfU09VUkNFUywgb2JqZHVtcF9TT1VSQ0VTLCBhZGRyMmxpbmVfU09VUkNFUyk6IEFkZCBidWRlbWFuZy5jLgoJUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wNy0wMSAgTWF0dCBUaG9tYXMgIDxtYXR0QDNhbS1zb2Z0d2FyZS5jb20+CgoJKiByZWFkZWxmLmM6IEluY2x1ZGUgImVsZi92YXguaCIuCgkoZ3Vlc3NfaXNfcmVsYSk6IE1vdmUgRU1fVkFYIGZyb20gdW5rbm93biB0byBSRUxBIGNhc2UuCgkoZHVtcF9yZWxvY2F0aW9ucyk6IEhhbmRsZSBWQVggcmVsb2NhdGlvbnMuCgkoZ2V0X21hY2hpbmVfZmxhZ3MpOiBIYW5kbGUgVkFYIG1hY2hpbmUgZmxhZ3MuCgoyMDAyLTA2LTI5ICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIHJlYWRlbGYuYyAoZHVtcF9yZWxvY2F0aW9ucyk6IEhhbmRsZSA2OEhDMTEvNjhIQzEyIHJlbG9jYXRpb25zLgoKMjAwMi0wNi0yNiAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBNQUlOVEFJTkVSUzogUmVtb3ZlIFRvbSBSaXggZnJvbSBkMTB2IGFuZCBwY2MgbWFpbnRhaW5lcnNoaXBzLgoKMjAwMi0wNi0yNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIG5tLmMgKHByaW50X3N5bW5hbWUpOiBXaGVuIGRlbWFuZ2xpbmcsIHN0cmlwIGxlYWRpbmcgZG90cyBmcm9tCglzeW1ib2wgbmFtZXMgdG8gYXZvaWQgY29uZnVzaW5nIHRoZSBkZW1hbmdsZXIuCgoyMDAyLTA2LTI1ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIE1ha2VmaWxlLmFtIChjaGVjay1ERUpBR05VKTogU2V0IExDX0FMTD1DIGFuZCBleHBvcnQgaXQuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KCjIwMDItMDYtMjEgIElnb3IgU2NoZWluICA8aWdvckB0eGMuY29tPgoKCSogY29uZmlndXJlLmluOiBRdW90ZSBidV9jdl9oYXZlX2ZvcGVuNjQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMDYtMjEgIE1pdHNydSBDaGluZW4gIDxjaGluZW5AanAuaWJtLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQ2hlY2sgZm9yIHN0cmNvbGwuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgoJKiBubS5jIChtYWluKTogU2V0IGxvY2FsZSBmb3IgTENfQ09MTEFURSBjYXRlZ29yeS4KCShub25fbnVtZXJpY19mb3J3YXJkKTogVXNlIHN0cmNvbGwgaWYgYXZhaWxhYmxlLgoKMjAwMi0wNi0yMCAgRGF2ZSBCcm9sbGV5ICA8YnJvbGxleUByZWRoYXQuY29tPgoKCSogTUFJTlRBSU5FUlM6IEFkZCBzZWxmIGFzIGZyMzAgYW5kIGZydiBtYWludGFpbmVyLgoKMjAwMi0wNi0xOCAgSC5KLiBMdSAgKGhqbEBnbnUub3JnKQoKCSogbm0uYzogSW5jbHVkZSAiZWxmL2NvbW1vbi5oIi4KCShleHRlbmRlZF9zeW1ib2xfaW5mbyk6IEFkZCBlbGZpbmZvLCBhIHBvaW50ZXIgdG8KCWVsZl9zeW1ib2xfdHlwZS4KCShTWU1fU0laRSk6IFVzZSBlbGZpbmZvIGlmIGl0IGlzIG5vdCBOVUxMLgoJKGdldF9zeW1ib2xfdHlwZSk6IE5ldyBmdW5jdGlvbi4KCShkaXNwbGF5X2FyY2hpdmUpOiBTZXQgcHJpbnRfd2lkdGggZm9yIGVhY2ggYXJjaGl2ZSBtZW1iZXIuCgkoZGlzcGxheV9maWxlKTogTGlrZXdpc2UuCgkoZGlzcGxheV9yZWxfZmlsZSk6IERvbid0IHNldCBwcmludF93aWR0aCBoZXJlLgoJKHByaW50X29iamVjdF9maWxlbmFtZV9zeXN2KTogSGFuZGxlIHByaW50X3dpZHRoLgoJKHByaW50X2FyY2hpdmVfbWVtYmVyX3N5c3YpOiBMaWtld2lzZS4KCShwcmludF9zeW1ib2xzKTogUGFzcyAoYmZkX3ZtYSkgMCB0byBwcmludF9zeW1ib2wuCgkocHJpbnRfc3ltYm9sKTogU2V0IHRoZSBlbGZpbmZvIGZpZWxkIGluIGV4dGVuZGVkX3N5bWJvbF9pbmZvCglmb3IgRUxGLgoJKHByaW50X29iamVjdF9maWxlbmFtZV9zeXN2KTogRml4IHRoZSBvdXRwdXQgZm9ybWF0LgoJKHByaW50X3N5bWJvbF9pbmZvX3N5c3YpOiBQcmludCB0eXBlIGFuZCBzZWN0aW9uIGZvciBFTEYuCgoyMDAyLTA2LTE4ICBFbGlhcyBBdGhhbmFzb3BvdWxvcyAgPGVhdGhhbkBvdGVuZXQuZ3I+CgoJKiBubS5jIChwcmludF9zaXplX3N5bWJvbHMpOiBSZW1vdmUgYXNzaWdubWVudCwgd2hpY2ggbWFrZXMKCXRoZSBzeW1ib2wncyBzaXplIGVxdWFsIHRvIGl0cyB2YWx1ZSB3aGVuIC0tc2l6ZS1zb3J0IGlzCgl1c2VkLgoKMjAwMi0wNi0xOCAgRGF2ZSBCcm9sbGV5ICA8YnJvbGxleUByZWRoYXQuY29tPgoKCUZyb20gQ2F0aGVyaW5lIE1vb3JlOgoJKiByZWFkZWxmLmMgKGVsZi9mcnYuaCk6ICNpbmNsdWRlIGl0LgoJKGd1ZXNzX2lzX3JlbGEpOiBTdXBwb3J0IEVNX0NZR05VU19GUlYuCgkoZHVtcF9yZWxvY2F0aW9ucyk6IERpdHRvLgoJKGdldF9tYWNoaW5lX25hbWUpOiBEaXR0by4KCSogTWFrZWZpbGUuYW0gKHJlYWRlbGYubyk6IGFkZCBkZXBlbmRlbmN5IG9uICQoSU5DRElSKS9lbGYvZnJ2LmguCgoyMDAyLTA2LTE4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYyAoZ2V0X2ZpbGVfaGVhZGVyKTogT25seSByZWFkIHRoZSBmaXJzdCBzZWN0aW9uIGhlYWRlciBpZgoJZV9zaG9mZiBpcyBub24temVyby4KCjIwMDItMDYtMTUgIEguSi4gTHUgIChoamxAZ251Lm9yZykKCgkqIG5tLmMgKHByaW50X3NpemUpOiBOZXcgdmFyaWFibGUuIEluaXRpYWxpemUgdG8gMC4KCShsb25nX29wdGlvbnMpOiBBZGQgJ1MnLyJwcmludC1zaXplIi4KCShtYWluKTogSGFuZGxlICdTJy4KCShwcmludF9zeW1ib2xfaW5mb19ic2QpOiBQcmludCBzaXplIG9ubHkgaWYgcHJpbnRfc2l6ZSBpcyBub3QKCTAuCgoJKiBkb2MvYmludXRpbHMudGV4aTogRG9jdW1lbnQgLVMvLS1wcmludC1zaXplLgoKMjAwMi02LTEzICBFbGlhcyBBdGhhbmFzb3BvdWxvcyAgPGVhdGhhbkBvdGVuZXQuZ3I+CgoJKiBubS5jIChzdHJ1Y3QgZXh0ZW5kZWRfc3ltYm9sX2luZm8pOiBOZXcgc3RyY3V0dXJlOiBBZGQgdGhlIHNpemUKCW9mIHRoZSBzeW1ib2xzIHRvIHRoZSBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSB0aGUgc3ltYm9sX2luZm8KCXN0cnVjdHVyZS4KCShwcmludF9zeW1ib2xzKTogUGFzcyB0aGUgc3ltYm9sIHNpemUgdG8gcHJpbnRfc3ltYm9sLgoJKHByaW50X3NpemVfc3ltYm9scyk6IFBhc3MgdGhlIHN5bWJvbCBzaXplIHRvIHByaW50X3N5bWJvbC4KCShwcmludF9zeW1ib2wpOiBFeHRyYSBhcmd1bWVudDogVGhlIHNpemUgb2YgdGhlIHN5bWJvbC4gIFN0b3JlCgl0aGlzIGluIHRoZSBleHRlbmRlZF9zeW1ib2xfaW5mbyBzdHJ1Y3R1cmUuCgkocHJpbnRfc3ltYm9sX2luZm8pOiBDaGFuZ2UgdHlwZSBvZiBpbmZvIHBhcmFtZXRlciB0bwoJZXh0ZW5kZWRfc3ltYm9sX2luZm8uICBEaXNwbGF5IHRoZSBzaXplLCBpZiBrbm93bi4KCShwcmludF9zeW1ib2xfaW5mb19wb3NpeCk6IExpa2V3aXNlLgoJKHByaW50X3N5bWJvbF9pbmZvX3N5c3YpOiBMaWtld2lzZS4KCjIwMDItMDYtMDggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ25lcmF0ZS4KCgkqIGJ1Y29tbS5jOiBSZXBsYWNlIENPTlNUIHdpdGggY29uc3QuCgkqIG5tLmM6IExpa2V3aXNlLgoJKiBvYmpkdW1wLmM6IExpa2V3aXNlLgoKMjAwMi0wNi0wNyAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiByZWFkZWxmLmMgKERXX0NGQV9HTlVfYXJnc19zaXplKTogRG9uJ3QgZGVmaW5lLgoJKERXX0NGQV9HTlVfbmVnYXRpdmVfb2Zmc2V0X2V4dGVuZGVkKTogTGlrZXdpc2UuCgkoRFdfQ0ZBX0dOVV93aW5kb3dfc2F2ZSk6IExpa2V3aXNlLgoJKGRpc3BsYXlfZGVidWdfZnJhbWVzKTogSGFuZGxlIERXX0NGQV9vZmZzZXRfZXh0ZW5kZWRfc2YsCglEV19DRkFfZGVmX2NmYV9zZiBhbmQgRFdfQ0ZBX2RlZl9jZmFfb2Zmc2V0X3NmLgoKMjAwMi0wNi0wNyAgRWxpYXMgQXRoYW5hc29wb3Vsb3MgIDxlYXRoYW5Ab3RlbmV0LmdyPgoKCSogbm0uYzogV2hlbiBjb21wdXRpbmcgc2l6ZSBvZiBzeW1ib2xzIGZvciBhbiBFTEYgdGFyZ2V0IHVzZSB0aGUKCWludGVybmFsIHNpemUgZmllbGQuCgoyMDAyLTA2LTA2ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogdGVzdHN1aXRlL2JpbnV0aWxzLWFsbC9vYmpjb3B5LmV4cDogY2xlYXIgeGZhaWwgZm9yCgkiaHBwYSo2NCotKi1ocHV4KiIuCgkqIHRlc3RzdWl0ZS9iaW51dGlscy1hbGwvaHBwYS9vYmpkdW1wLmV4cDogUmV0dXJuIGlmCgkiKjY0Ki0qLSoiLgoKMjAwMi0wNi0wNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIG9iamNvcHkuYyAoY29weV9zZWN0aW9uKTogRG9uJ3QgY29weSBTRUNfR1JPVVAgc2VjdGlvbnMuCgoyMDAyLTA2LTAzICBFbGlhcyBBdGhhbmFzb3BvdWxvcyAgPGVhdGhhbkBvdGVuZXQuZ3I+CgoJKiBvYmpkdW1wLmM6IEZpeCBmb3JtYXR0aW5nLgoKMjAwMi0wNS0yOSAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBNQUlOVEFJTkVSUzogQWRkIHNlbGYgYXMgTTY4ayBtYWludGFpbmVyLgoKMjAwMi0wNS0yOCAgS3VhbmcgSHdhIExpbiA8a3VhbmdAc2JjZ2xvYmFsLm5ldD4KCgkqIHJlYWRlbGYuYzogTW9kaWZpZWQvQWRkZWQgRExYIGVsZiBzdXBwb3J0LgoKMjAwMi0wNS0yNyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBhcnN1cC5jOiBGaXggZm9ybWF0dGluZy4KCSogZGVidWcuYyAoZGVidWdfcmVjb3JkX2xhYmVsKTogQWRkIG1pc3NpbmcgY29sb24gdG8gZXJyb3IKCW1lc3NhZ2UuCgkqIGllZWUuYyAocGFyc2VfaWVlZV90eSk6IEZpeCBzcGVsbGluZyB0eXBvLgoJKiByZWFkZWxmLmMgKHByb2Nlc3NfcHJvZ3JhbV9oZWFkZXJzKTogUmVtb3ZlIEVuZ2xpc2ggYXNzdW1wdGlvbgoJYWJvdXQgbWFraW5nIGEgcGx1cmFsIHdvcmQuCgkocHJvY2Vzc19zZWN0aW9uX2hlYWRlcnMpOiBMaWtld2lzZS4KCShwcm9jZXNzX3JlbG9jcyk6IEFsbG93IHF1b3RlcyB0byBiZSB0cmFuc2xhdGVkLgoJKHByb2Nlc3NfdW53aW5kKTogTGlrZXdpc2UsCgkocHJvY2Vzc19taXBzX3NwZWNpZmljKTogSW1wcm92ZSBlcnJvciBtZXNzYWdlLgoJKGdldF9ub3RlX3R5cGUpOiBGaXggc3BlbGxpbmcgdHlwby4KCgkqIGNvbmZpZ3VyZS5pbiAoQUxMX0xJTkdVQVMpOiBBZGQgc3YKCSogcG8vc3YucG86IE5ldyBmaWxlLgoKMjAwMi0wNS0yNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHVud2luZC1pYTY0LmMgKHVud19wcmludF9icm1hc2spOiBEb24ndCB1c2Ugc3ByaW50Zi4KCSh1bndfcHJpbnRfZ3JtYXNrKTogTGlrZXdpc2UuCgkodW53X3ByaW50X2ZybWFzayk6IExpa2V3aXNlLgoKMjAwMi0wNS0yNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGFyc3VwLmM6IFJlbW92ZSBBUkdTVVNFRC4KCSogZGVidWcuYzogTGlrZXdpc2UuCgkqIGllZWUuYzogTGlrZXdpc2UuCgkqIG5sbWNvbnYuYzogTGlrZXdpc2UuCgkqIHByZGJnLmM6IExpa2V3aXNlLgoJKiBzdGFicy5jOiBMaWtld2lzZS4KCSogd3JzdGFicy5jOiBMaWtld2lzZS4KCjIwMDItMDUtMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBhcmxleC5sOiBVc2UgI2luY2x1ZGUgIiIgaW5zdGVhZCBvZiA8PiBmb3IgbG9jYWwgaGVhZGVyIGZpbGVzLgoJKiBjb2ZmZHVtcC5jOiBMaWtld2lzZS4KCSogY29mZmdyb2suYzogTGlrZXdpc2UuCgkqIG5sbWNvbnYuYzogTGlrZXdpc2UuCgkqIG5sbWhlYWRlci55OiBMaWtld2lzZS4KCSogc3Jjb252LmM6IExpa2V3aXNlLgoJKiBzdHJpbmdzLmM6IExpa2V3aXNlLgoJKiBzeXNkdW1wLmM6IExpa2V3aXNlLgoJKiB1bndpbmQtaWE2NC5oOiBMaWtld2lzZS4KCSogd2luZHJlcy5oOiBMaWtld2lzZS4KCSogd2luZHVuaS5oOiBMaWtld2lzZS4KCjIwMDItMDUtMjQgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBNQUlOVEFJTkVSUzogQWRkIHNlbGYgYXMgdGhlIGQxMHYgbWFpbnRhaW5lci4KCjIwMDItMDUtMjQgICBUQU1VUkEgS2VudCA8a2VudEBuZXRic2Qub3JnPgoKCSogY29uZmlndXJlLmluOiBCdWlsZHMgZGxsdG9vbCBmb3IgaTM4Ni1uZXRic2RwZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wNS0yMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHNpemUuYzogRml4IGZvcm1hdHRpbmcuCgkqIHNyY29udi5jOiBMaWtld2lzZS4KCSogc3RhYnMuYzogTGlrZXdpc2UuCgkqIHN5c2R1bXAuYzogTGlrZXdpc2UuCgkqIHVud2luZC1pYTY0LmM6IExpa2V3aXNlLgoJKiB3cnN0YWJzLmM6IExpa2V3aXNlLgoKMjAwMi0wNS0yMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKGdldF9zZWdtZW50X3R5cGUpOiBBZGQgUFRfVExTLgoJKGdldF9lbGZfc2VjdGlvbl9mbGFncyk6IEFkZCBTSEZfVExTLgoJKGdldF9keW5hbWljX2ZsYWdzKTogT3B0aW1pemUuICBBZGQgREZfU1RBVElDX1RMUy4KCShwcm9jZXNzX2R5bmFtaWNfc2VnbWVudCk6IFVzZSBwdXRzIGluc3RlYWQgb2YgcHJpbnRmLgoJKGdldF9zeW1ib2xfdHlwZSk6IFN1cHBvcnQgU1RUX1RMUy4KCSogb2JqZHVtcC5jIChkdW1wX3NlY3Rpb25faGVhZGVyKTogUmVtb3ZlIFNFQ19DT05TVFJVQ1RPUl9URVhULAoJU0VDX0NPTlNUUlVDVE9SX0RBVEEsIFNFQ19DT05TVFJVQ1RPUl9CU1MuCglBZGQgU0VDX1RIUkVBRF9MT0NBTC4KCjIwMDItMDUtMjMgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiByZGNvZmYuYzogRml4IGZvcm1hdHRpbmcuCgkqIHJkZGJnLmM6IExpa2V3aXNlLgoJKiByZWFkZWxmLmM6IExpa2V3aXNlLgoJKiByZW5hbWUuYzogTGlrZXdpc2UuCgkqIHJlc2Jpbi5jOiBMaWtld2lzZS4KCSogcmVzcmMuYzogTGlrZXdpc2UuCgkqIHJlc3Jlcy5jOiBMaWtld2lzZS4KCjIwMDItMDUtMjEgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBmaWxlbW9kZS5jOiBGaXggZm9ybWF0dGluZy4KCSogaWVlZS5jOiBMaWtld2lzZS4KCSogaXMtcmFubGliLmM6IExpa2V3aXNlLgoJKiBpcy1zdHJpcC5jOiBMaWtld2lzZS4KCSogbWF5YmUtcmFubGliLmM6IExpa2V3aXNlLgoJKiBtYXliZS1zdHJpcC5jOiBMaWtld2lzZS4KCSogbmxtY29udi5jOiBMaWtld2lzZS4KCSogbm0uYzogTGlrZXdpc2UuCgkqIG5vdC1yYW5saWIuYzogTGlrZXdpc2UuCgkqIG5vdC1zdHJpcC5jOiBMaWtld2lzZS4KCSogb2JqY29weS5jOiBMaWtld2lzZS4KCSogb2JqZHVtcC5jOiBMaWtld2lzZS4KCjIwMDItMDUtMjEgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBvYmpkdW1wLmMgKGR1bXBfaGVhZGVycyk6IEZpeCBvdXRwdXQgZm9ybWF0dGluZyBmb3IgRUxGMzIKCWFyY2hpdGVjdHVyZXMgaW4gYSBCRkQ2NCBlbmFibGVkIHRvb2xjaGFpbi4KCjIwMDItMDUtMjAgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBkZWJ1Zy5jOiBGaXggZm9ybWF0dGluZy4KCSogZGVidWcuaDogTGlrZXdpc2UuCgkqIGRsbHRvb2wuYzogTGlrZXdpc2UuCgkqIGRsbHdyYXAuYzogTGlrZXdpc2UuCgkqIGVtdWxfYWl4LmM6IExpa2V3aXNlLgoJKiBlbXVsX3ZhbmlsbGEuYzogTGlrZXdpc2UuCgoyMDAyLTA1LTE5ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogYWRkcjJsaW5lLmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBhci5jOiBMaWtld2lzZS4KCSogYXJzdXAuYzogTGlrZXdpc2UuCgkqIGFyc3VwLmg6IExpa2V3aXNlLgoJKiBiaW5lbXVsLmM6IExpa2V3aXNlLgoJKiBiaW5lbXVsLmg6IExpa2V3aXNlLgoJKiBidWNvbW0uYzogTGlrZXdpc2UuCgkqIGNvZmZkdW1wLmM6IExpa2V3aXNlLgoJKiBjb2ZmZ3Jvay5jOiBMaWtld2lzZS4KCSogY29mZmdyb2suaDogTGlrZXdpc2UuCgoyMDAyLTA1LTE2ICBNYXJlayBNaWNoYWxraWV3aWN6ICA8bWFyZWttQGFtZWxlay5nZGEucGw+CgoJKiBNQUlOVEFJTkVSUzogQWRkIG15c2VsZiBhcyB0aGUgc2Vjb25kIEFWUiBwb3J0IG1haW50YWluZXIuCgoyMDAyLTA1LTE2ICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIE1BSU5UQUlORVJTOiBVcGRhdGUgbXkgZW1haWwgYWRkcmVzcy4KCjIwMDItMDUtMDkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogTUFJTlRBSU5FUlM6IEFkZCBKYXNvbiBUaG9ycGUgYXMgVkFYIG1haW50YWluZXIuCgoyMDAyLTA1LTA5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlndXJlLmluOiBSZXBsYWNlIGAqcGUnIHdpdGggYHBlJyB0aHJvdWdob3V0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTA1LTA3ICBGZWRlcmljbyBHLiBTY2h3aW5kdCA8ZmdzY2hAb2xpbXBvLmNvbS5icj4KCgkqIE1ha2VmaWxlLmFtOiBIb25vdXIgREVTVERJUi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTA1LTA2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZGxsdG9vbC5jIChwcm9jZXNzX2RlZl9maWxlKTogQWRkIG1pc3NpbmcgcHJvdG90eXBlLgoJKG5ld19kaXJlY3RpdmUsIGFzc2VtYmxlX2ZpbGUsIG1haW4pOiBMaWtld2lzZS4KCShwcm9jZXNzX2RlZl9maWxlLCBuZXdfZGlyZWN0aXZlKTogTWFrZSBzdGF0aWMuCgkoaW5mb3JtKTogUmV3cml0ZSB1c2luZyBWQV9GSVhFREFSRy4KCSogZGxsd3JhcC5jIChteWJhc2VuYW1lKTogQWRkIG1pc3NpbmcgcHJvdG90eXBlLgoJKHN0cmhhc2gsIG1haW4pOiBMaWtld2lzZS4KCShpbmZvcm0pOiBSZXdyaXRlIHVzaW5nIFZBX0ZJWEVEQVJHLgoJKHdhcm4pOiBMaWtld2lzZS4KCShjbGVhbnVwX2FuZF9leGl0KTogVXNlIG9sZCBzdHlsZSBmdW5jdGlvbiBkZWZpbml0aW9uLgoJKHN0cmhhc2gpOiBMaWtld2lzZS4KCSogd2luZHJlcy5jIChkZWZpbmVfcmVzb3VyY2UpOiBVc2Ugb25lIG1lbXNldCB0byBjbGVhciBhbGwgb2YKCXN0cnVjdCByZXNfcmVzb3VyY2UuCgoJKiByY3BhcnNlLnk6IFJlbW92ZSBuZXdjbWQgcnVsZS4gIE1vdmUgcmNwYXJzZV9kaXNjYXJkX3N0cmluZ3MKCWNhbGwgdG8gcnVsZXMgdGhhdCBuZWVkIG5vIGxvb2thaGVhZC4gIENoZWNrIGZvciBubyBsb29rYWhlYWQuCgoyMDAyLTA1LTA2ICBCb3J1dCBSYXplbSAgPGJvcnV0LnJhemVtQHNpb2wubmV0PgoKCSogcmNsZXgubCAoZ2V0X3N0cmluZyk6IENvcnJlY3QgInN0cmluZ3MiIGxpc3QgaGFuZGxpbmcuCgkqIHJlc3JjLmMgKHJlYWRfcmNfZmlsZSk6IERpc2NhcmQgc3RyaW5ncy4KCjIwMDItMDUtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBhci5jIChyZXBsYWNlX21lbWJlcnMpOiBSZW1vdmUgdW51c2VkIHZhci4gIEZvcm1hdHRpbmcgZml4LgoJKiBiaW5lbXVsLmMgKGFyX2VtdWxfZGVmYXVsdF9wYXJzZV9hcmcpOiBBZGQgQVRUUklCVVRFX1VOVVNFRC4KCgkqIE1BSU5UQUlORVJTOiBTb3J0IHBvcnQgbWFpbnRhaW5lcnMgYnkgQ1BVLgoKMjAwMi0wNS0wNCAgQm9iIEJ5cm5lcyAgPGJ5cm5lc0BjdXJsLmNvbT4KCgkqIHNpemUuYyAoZGlzcGxheV9hcmNoaXZlKTogQWRkIGxhc3RfYXJmaWxlIGFuZCBjb2RlIHRvIGNsb3NlIGFyY2hpdmVzLgoKMjAwMi0wNS0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIG5tLmMgKHByaW50X3N5bWJvbCk6IENoZWNrIHJldHVybmVkIGZpbGVuYW1lIGZyb20KCWJmZF9maW5kX25lYXJlc3RfbGluZSBpcyBub24tTlVMTC4KCjIwMDItMDQtMjUgIEVsZW5hIFphbm5vbmkgPGV6YW5ub25pQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKGdldF9BVF9uYW1lKTogSGFuZGxlIERXX0FUX0dOVV92ZWN0b3IuCgoyMDAyLTA0LTI0ICBDaHJpc3RpYW4gR3JvZXNzbGVyIDxjaHJpc0Bncm9lc3NsZXIub3JnPgoKCSogTUFJTlRBSU5FUlM6IENoYW5nZWQgbXkgZW1haWwgYWRkcmVzcy4KCjIwMDItMDQtMTcgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBhcnBhcnNlLnk6IEZpeCBzeW50YXggd2FybmluZy4KCjIwMDItMDQtMTYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChmZXRjaF9sb2NhdGlvbl9saXN0KTogUmVtb3ZlIHVudXNlZCBmdW5jdGlvbi4KCgkqIHJlYWRlbGYuYyAocHJvY2Vzc19jb3JlZmlsZV9ub3RlX3NlZ21lbnQpOiBDYXRjaCBjb3JydXB0IG5vdGVzCglhbmQgZGlzcGxheSBhIHdhcm5pbmcgbWVzc2FnZSwgdGhlbiBleGl0IHRoZSBsb29wLgoKCSogcmNwYXJzZS55OiBTZXQgTUVNRkxBR19ESVNDQVJEQUJMRSBieSBkZWZhdWx0LgoKMjAwMi0wNC0xNSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiByZXNyYy5jICh3cml0ZV9yY19kaWFsb2cpOiBJZiBjaGFyc2V0IGlzIG5vbi1kZWZhdWx0IHZhbHVlCglkaXNwbGF5IGFsbCBvZiB0aGUgRElBTE9HRVggcGFyYW1ldGVycy4KCjIwMDItMDQtMTUgIEVyaWMgS29obCA8ZWtvaGxAcnotb25saW5lLmRlPgoKCSogcmNwYXJzZS55OiBBbGxvdyB0d28gdG8gZml2ZSBwYXJhbWV0ZXIgaW4gRk9OVCBzdGF0ZW1lbnQgb2YKCURJQUxPR0VYIHJlc291cmNlcy4KCSogcmVzYmluLmMgKGJpbl90b19yZXNfZGlhbG9nKTogRml4ZWQgcmVhZC93cml0ZSBjb2RlIGZvciBkaWFsb2dleAoJcmVzb3VyY2UgZGF0YS4KCShyZXNfdG9fYmluX2RpYWxvZyk6IExpa2V3aXNlLgoJKiB3aW5kcmVzLmg6IEFkZGVkIG1pc3NzaW5nIGNoYXJzZXQgdmFyaWFibGUgdG8gZGlhbG9nX2V4CglzdHJ1Y3R1cmUuCgoyMDAyLTA0LTEwICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIHJjcGFyc2UueTogU2V0IE1FTUZMQUdfUFVSRSBieSBkZWZhdWx0LgoKMjAwMi0wNC0wOSAgQmVybmQgSGVyZCA8aW5mb0BoZXJkc29mdC5jb20+CgoJKiByY3BhcnNlLnk6IENMQVNTIGRlZmluaXRpb25zIGluIERJQUxPRyByZXNvdXJjZXMKCWFyZSBxdW90ZWQuCglGaXggdHlwbyBpbiBCRURJVCB3YXJuaW5nLgoJRG9uJ3QgYWRkIGRlZmF1bHQgZGlhbG9nIHN0eWxlIHdoZW4gZXhwbGljaXQgc3R5bGUgc3BlY2lmaWVkLgoJQWRkIFdTX0NBUFRJT04gZGlhbG9nIHN0eWxlIGlmIENBUFRJT04gaXMgc3BlY2lmaWVkLgoKCSogcmNsZXgubCAoaGFuZGxlX3F1b3Rlcyk6ICJceGhleCIgZW5jb2RpbmcgaW4gc3RyaW5ncyBjb3JyZWN0ZWQuCgkoaGFuZGxlX3F1b3RlcykgIlxhIiBlc2NhcGUgKHVzZWQgZm9yIHJpZ2h0IGp1c3RpZmllZCBrZXkKCWRlZmluaXRpb25zIGluIG1lbnVzKSBpcyBlbmNvZGVzIGFzIGJpbmFyeSA4LgoKCSogcmVzcmMuYyAod3JpdGVfcmNfZGlhbG9nKTogUHJpbnQgc3R5bGUgZXZlbiBpZiBpdCBpcyAwLgoJKHdyaXRlX3JjX2RpcmVjdG9yeSk6IEZpeCBvdmVybG9va2VkIHN1Ymxhbmcgc2hpZnQgYnVnLgoJKGJpbl90b19yZXNfZGlhbG9nKTogRG9uJ3QgcHJpbnQgZW1wdHkgZGlhbG9nIGNhcHRpb24uCgoJKiByZXNiaW4uYyAoYmluX3RvX3Jlc19kaWFsb2cpOiBVc2Ugc2lnbmF0dXJlIHRvIGlkZW50aWZ5CglESUFMT0dFWC4KCgkqIHdpbmRyZXMuYyAobWFpbik6IFNldCBkZWZhdWx0IExBTkdVQUdFIHRvIGVuZ2xpc2gvdXMuCgoyMDAyLTA0LTA5ICBHdW5uYXIgRGVnbmJvbCA8ZGVnbmJvbEBkYW5iYnMuZGs+CgoJKiByZXNyYy5jOiBwcmludCBDTEFTUyBuYW1lcyBpbiBxdW90ZXMKCjIwMDItMDQtMDkgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tPgoKCSogTUFJTlRBSU5FUlM6IFVwZGF0ZSBteSBlbWFpbCBhZGRyZXNzLgoKMjAwMi0wNC0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGRlcC1pbi5zZWQ6IENvcGUgd2l0aCBhYnNvbHV0ZSBwYXRocy4KCSogTWFrZWZpbGUuYW0gKGRlcC5zZWQpOiBTdWJzdCBUT1BESVIuCglSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTAzLTI3ICBQZXRlciBUYXJnZXR0ICA8cGV0ZXIudGFyZ2V0dEBhcmMuY29tPgoKCSogTUFJTlRBSU5FUlM6IFVwZGF0ZSBteSBlbWFpbCBhZGRyZXNzLgoKMjAwMi0wMy0yMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogcG8vUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgkqIGFjbG9jYWwubTQ6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wMy0yMCAgRGFuaWVsIEJlcmxpbiAgPGRhbkBkYmVybGluLm9yZz4KCgkqIHJlYWRlbGYuYzogQWRkIHN1cHBvcnQgZm9yIGRpc3BsYXlpbmcgZHdhcmYyIGxvY2F0aW9uIGxpc3RzLgoJKGRvX2RlYnVnX2xvYywgZGVidWdfbG9jX3NlY3Rpb24sIGRlYnVnX2xvY19zaXplKTogTmV3LgoJKHBhcnNlX2FyZ3MpOiBVc2UgJ08nIGFzIHNob3J0aGFuZCBmb3IgZGlzcGxheWluZyBsb2NhdGlvbiBsaXN0CglzZWN0aW9uLgoJKHByb2Nlc3Nfc2VjdGlvbl9oZWFkZXJzKTogSGFuZGxlIGRlYnVnX2xvYyBhcyB3ZWxsLgoJKGxvYWRfZGVidWdfbG9jKTogTmV3LgoJKGZyZWVfZGVidWdfbG9jKTogTmV3LgoJKGZldGNoX2xvY2F0aW9uX2xpc3QpOiBOZXcuCgkoZGlzcGxheV9kZWJ1Z19sb2MpOiBOZXcuCgkoZGlzcGxheV9kZWJ1Z19pbmZvKTogQ2FsbCBsb2FkX2RlYnVnX2xvYyBhbmQgZnJlZV9kZWJ1Z19sb2MuCgkoZGVidWdfZGlzcGxheXMpOiBXZSBjYW4gZGlzcGxheSAuZGVidWdfbG9jIG5vdywgdG9vLgoJKHVzYWdlKTogVXBkYXRlIHVzYWdlIHN0cmluZy4KCShyZWFkX2FuZF9kaXNwbGF5X2F0dHJfdmFsdWUpOiBOb3RlIGxvY2F0aW9uIGxpc3RzLCBidXQgZG9uJ3QKCWRpc3BsYXkgdGhlbSBpbmxpbmUuCgoyMDAyLTAzLTE4ICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogTWFrZWZpbGUuYW06IEFkZCBiaW51dGlscyBlbXVsYXRpb24gc3VwcG9ydC4KCSogY29uZmlndXJlLmluOiBTYW1lLgoJKiBjb25maWd1cmUudGd0OiBOZXcgZmlsZS4gIFNhbWUuCgkqIGFyLmMgKG1haW4pOiBVc2UgYXJfZW11bF9wYXJzZV9hcmcuCgkodXNhZ2UpOiBVc2UgYXJfZW11bF91c2FnZS4KCShyZXBsYWNlX21lbWJlcnMpOiBVc2UgYXJfZW11bF9yZXBsYWNlLCBhcl9lbXVsX2FwcGVuZC4KCSogYmluZW11bC5jOiBOZXcgZmlsZS4gIERlZmluZSB0aGUgYmludXRpbHMgZW11bGF0aW9uCglsYXllci4gRGVmaW5lIGRlZmF1bHQgbWV0aG9kcy4KCSogYmluZW11bC5oOiBOZXcgZmlsZS4gIEJpbnV0aWxzIGVtdWxhdGlvbiBsYXllciBoZWFkZXIgZmlsZS4KCSogZW11bF9haXguYzogTmV3IGZpbGUuICBBSVggYmludXRpbHMgZW11bGF0aW9uLgoJKiBlbXVsX3ZhbmlsbGEuYzogTmV3IGZpbGUuIERlZmF1bHQgYmludXRpbHMgZW11bGF0aW9uLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBTYW1lLgoKMjAwMi0wMy0xOCAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBwby9mci5wbzogVXBkYXRlZCB2ZXJzaW9uLgoKMjAwMi0wMy0xMyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBwby9mci5wbzogVXBkYXRlZCB2ZXJzaW9uLgoKMjAwMi0wMy0wNyAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBSRUFETUU6IFVwZGF0ZSBzb21lIHZlcnNpb24gbnVtYmVycy4KCjIwMDItMDMtMDcgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogZG9jL2JpbnV0aWxzLnRleGkgKFRhcmdldCBTZWxlY3Rpb24pOiBGaXggTEQgY3Jvc3NyZWZlcmVuY2VzLgoJKEFyY2hpdGVjdHVyZSBTZWxlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDItMDMtMDEgIERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBiYWlrYWwucnU+CgoJKiBkbGx0b29sLmMgKGdlbl9leHBfZmlsZSk6IFRha2UgaW50byBhY2NvdW50IC0ta2lsbC1hdCAoLWspIHdoaWxlCglnZW5lcmF0aW5nIC5leHAgZmlsZS4KCjIwMDItMDItMjEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChkdW1wX3JlbG9jYXRpb25zKTogRml4IHR5cG8uCgoyMDAyLTAyLTIwICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIE5FV1M6IE1hcmsgMi4xMiBicmFuY2guCgoyMDAyLTAyLTE4ICBUaW1vdGh5IERhbHkgIDxyZW1vdGVfYm9iQHlhaG9vLmNvbT4KCgkqIHJlYWRlbGYuYyAoZHVtcF9yZWxvY2F0aW9ucyk6IERpc3BsYXkgMm5kIGFuZCAzcmQgcmVsb2MKCXR5cGVzIGZvciA2NC1iaXQgTUlQUy4gIE5hcnJvdyBzb21lIGZpZWxkcyBmb3IgODAtY2hhcgoJb3V0cHV0LgoJKGR1bXBfcmVsb2NhdGlvbnMpOiBDaGFuZ2Ugc3BlbGxpbmcgZnJvbSAndW5yZWNvZ25pc2VkJwoJdG8gJ3VucmVjb2duaXplZCcuCgkoZGVjb2RlX0FSTV9tYWNoaW5lX2ZsYWdzKTogTGlrZXdpc2UuCgkocGFyc2VfYXJncyk6IExpa2V3aXNlLgoJKHJlYWRfYW5kX2Rpc3BsYXlfYXR0cl92YWx1ZSk6IExpa2V3aXNlLgoJKGRpc3BsYXlfZGVidWdfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMi0wMi0xNSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogTkVXUzogTWVudGlvbiBzdXBwb3J0IGZvciBNTUlYLgoKMjAwMi0wMi0xMyAgTWF0dCBGcmVkZXR0ZSAgPGZyZWRldHRlQG5ldGJzZC5vcmc+CgoJKiByZWFkZWxmLmMgKGdldF9tYWNoaW5lX2ZsYWdzKTogUmVjb2duaXplIEVGX002ODAwMC4KCjIwMDItMDItMTIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogTUFJTlRBSU5FUlM6IEFkZGVkIHNlbGYgYXMgTU4xMDMwMCBjby1tYWludGFpbmVyLgoKMjAwMi0wMi0xMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHJlYWRlbGYuYyAoZ2V0X3BwYzY0X2R5bmFtaWNfdHlwZSk6IEhhbmRsZSBEVF9QUEM2NF9PUEQgYW5kCglEVF9QUEM2NF9PUERTWi4KCjIwMDItMDItMTEgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogTUFJTlRBSU5FUlM6IExpc3QgbXlzZWxmIGFzIGJyYW5jaCBtYWludGFpbmVyLgoKMjAwMi0wMi0xMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogb2JqY29weS5jOiBVcGRhdGUgY29weXJpZ2h0IGRhdGUuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDItMTAgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogbmxtY29udi5jOiBCYWNrIG91dCBsb2NhbHRpbWUgUEFSQU1TIGNoYW5nZS4KCjIwMDItMDItMTEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBvYmpjb3B5LmMgKE1LRElSKTogRGVmaW5lLgoJKGNvcHlfYXJjaGl2ZSk6IE1ha2UgbmFtZV9saXN0Lm5hbWUgY29uc3QuICBVc2UgTUtESVIuCglIYW5kbGUgZHVwbGljYXRlIGZpbGVzIGluIGFyY2hpdmVzIGJ5IG1ha2luZyBtb3JlIHRlbXAgZGlycy4KCjIwMDItMDItMTAgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogY29mZmR1bXAuYzogSW5jbHVkZSAiZ2V0b3B0LmgiIGFmdGVyICJidWNvbW0uaCIKCXNvIHRoYXQgbWFjcm9zIGFyZSBkZWZpbmVkIGNvcnJlY3RseS4KCSogbmxtY29udi5jOiBBZGQgUEFSQU1TICgoY29uc3QgdGltZV90ICopKSB0byBsb2NhbHRpbWUKCXByb3RvdHlwZS4gIFByb3RvdHlwZSBtYWluLgoJKiBubG1oZWFkZXIueTogQWRkIFBBUkFNUyAoKGludCkpIHRvIHN0cmVycm9yIHByb3RvdHlwZS4KCjIwMDItMDItMDYgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogTUFJTlRBSU5FUlM6IEFkZGVkIHNlbGYgYXMgU0ggY28tbWFpbnRhaW5lci4KCjIwMDItMDItMDUgIE5pY2sgQ2xpZnRvbiA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL3RyLnBvOiBVcGRhdGVkIHRyYW5zbGF0aW9uLgoKMjAwMi0wMi0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDEtMjkgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogbm0uYyAocHJpbnRfdmFsdWUpOiBNYXJrIGFiZmQgdW51c2VkLgoKMjAwMi0wMS0yOSAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiB1bndpbmQtaWE2NC5jICh1bndfZGVjb2Rlcik6IENoYW5nZSBzZWNvbmQgYXJndW1lbnQKCXRvIHVuc2lnbmVkIGludCwgdG8gbWF0Y2ggZnVuY3Rpb24gcHJvdG90eXBlcy4KCjIwMDItMDEtMjkgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogb2JqZHVtcC5jOiBJbmNsdWRlICJnZXRvcHQuaCIgYWZ0ZXIgImJ1Y29tbS5oIiBzbyB0aGF0CglfX0dOVV9MSUJSQVJZX18gd2lsbCBiZSBkZWZpbmVkLgoJKiBzaXplLmM6IExpa2V3aXNlLgoKMjAwMi0wMS0yNyAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKMjAwMi0wMS0yNiAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogZG9jL01ha2VmaWxlLmFtIChpbnN0YWxsKTogRGVwZW5kIG9uIGluc3RhbGwtaW5mby4KCSogZG9jL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wMS0yNSAgSmFzb24gUi4gVGhvcnBlIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogb2JqY29weS5jIChzdHJpcF91c2FnZSk6IERvY3VtZW50IC1kIGFzIGFuIGFsaWFzCgktLXN0cmlwLWRlYnVnLgoKCSogc2l6ZS5jICh1c2FnZSk6IERvY3VtZW50IFstdCB8IC0tdG90YWxzXSBvcHRpb25zLgoJKGxvbmdfb3B0aW9ucyk6IEFkZCAtLXRvdGFscyBvcHRpb24uCgkobWFpbik6IElmIHRoZSBbLXQgfCAtLXRvdGFsc10gb3B0aW9uIGlzIHNwZWNpZmllZCBhbmQKCXRoZSBvdXRwdXQgZm9ybWF0IGlzIEJlcmtlbGV5LXN0eWxlLCBwcmludCB0aGUgdG90YWwKCXRleHQsIGRhdGEsIGFuZCBic3Mgc2l6ZXMgb2YgYWxsIG9iamVjdHMgbGlzdGVkLgoJKHByaW50X2JlcmtlbGV5X2Zvcm1hdCk6IElmIHRoZSBbLXQgfCAtLXRvdGFsc10gb3B0aW9uCglpcyBzcGVjaWZpZWQsIHRyYWNrIHRoZSB0b3RhbCB0ZXh0LCBkYXRhLCBhbmQgYnNzCglzaXplcy4KCSogZG9jL2JpbnV0aWxzLnRleGkgKHNpemUpOiBEb2N1bWVudCBbLXQgfCAtLXRvdGFsc10gb3B0aW9ucy4KCShzdHJpcCk6IERvY3VtZW50IC1kIGFzIGFuIGFsaWFzIGZvciAtLXN0cmlwLWRlYnVnLgoJKiBORVdTOiBNZW50aW9uIG5ldyBmZWF0dXJlIG9mIHNpemUuCgoyMDAyLTAxLTI1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIHBvL2ZyLnBvOiBVcGRhdGVkIHZlcnNpb24uCgkqIHBvL2VzLnBvOiBVcGRhdGVkIHZlcnNpb24uCgoyMDAyLTAxLTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGFkZHIybGluZS5jICh1c2FnZSk6IFVwZGF0ZSB0ZXh0IHRvIHByb3ZpZGUgdmVyYm9zZQoJZGVzY3JpcHRpb24gb2YgdGhlIGNvbW1hbmQgbGluZSBvcHRpb25zLgoJKiBhci5jICh1c2FnZSk6IFVwZGF0ZSB0ZXh0IHRvIHByb3ZpZGUgdmVyYm9zZQoJZGVzY3JpcHRpb24gb2YgdGhlIGNvbW1hbmQgbGluZSBvcHRpb25zLgoJKG1haW4pOiBBY2NlcHQgLWggYW5kIC1IIHdoZW4gcnVubmluZyBhcyByYW5saWIuCgkqIGNvZmZkdW1wLmMgKHNob3dfdXNhZ2UpOiBVcGRhdGUgdGV4dCB0byBwcm92aWRlIHZlcmJvc2UKCWRlc2NyaXB0aW9uIG9mIHRoZSBjb21tYW5kIGxpbmUgb3B0aW9ucy4KCSogZGxsdG9vbC5jIChtYWluKTogQWNjZXB0IC1IIGFzIGFuIGFsaWFzIGZvciAtLWhlbHAuCgkqIG5sbWNvbnYuYyAoc2hvd191c2FnZSk6IFVwZGF0ZSB0ZXh0IHRvIHByb3ZpZGUgdmVyYm9zZQoJZGVzY3JpcHRpb24gb2YgdGhlIGNvbW1hbmQgbGluZSBvcHRpb25zLgoJKiBubS5jICh1c2FnZSk6IFJlcGxhY2UgT1BUSU9OUyB3aXRoIG9wdGlvbihzKS4KCShtYWluKTogQWNjZXB0IC1IIGFzIGFuIGFsaWFzIGZvciAtLWhlbHAuCgkqIG9iamNvcHkuYyAoc3RyaXBfbWFpbik6IEFjY2VwdCAtSCBhcyBhbiBhbGlhcyBmb3IgLS1oZWxwLgoJKiBvYmpkdW1wLmMgKG1haW4pOiBBY2NlcHQgLXYgYXMgYW4gYWxpYXMgZm9yIC0tdmVyYm9zZS4KCSogcmVhZGVsZi5jICh1c2FnZSk6IEFkanVzdCBmb3JtYXQgdG8gbWF0Y2ggc3R5bGUgdXNlZCBpbgoJb3RoZXIgYmludXRpbHMuCgkqIHNpemUuYyAodXNhZ2UpOiBVcGRhdGUgdGV4dCB0byBwcm92aWRlIHZlcmJvc2UgZGVzY3JpcHRpb24KCW9mIHRoZSBjb21tYW5kIGxpbmUgb3B0aW9ucy4KCShtYWluKTogQWNjZXB0IC12LCAtaCBhbmQgLUggYXMgY29tbWFuZCBsaW5lIG9wdGlvbnMuCgkqIHNyY29udi5jIChzaG93X3VzYWdlKTogVXBkYXRlIHRleHQgdG8gcHJvdmlkZSB2ZXJib3NlCglkZXNjcmlwdGlvbiBvZiB0aGUgY29tbWFuZCBsaW5lIG9wdGlvbnMuCgkqIHN0cmluZ3MuYyAobWFpbik6IEFjY2VwdCAtSCBhbmQgLXYgYXMgY29tbWFuZCBsaW5lIG9wdGlvbnMuCgkodXNhZ2UpOiBVcGRhdGUgdGV4dCB0byBwcm92aWRlIHZlcmJvc2UgZGVzY3JpcHRpb24gb2YgdGhlCgljb21tYW5kIGxpbmUgb3B0aW9ucy4KCSogc3lzZHVtcC5jIChzaG93X3VzYWdlKTogVXBkYXRlIHRleHQgdG8gcHJvdmlkZSB2ZXJib3NlCglkZXNjcmlwdGlvbiBvZiB0aGUgY29tbWFuZCBsaW5lIG9wdGlvbnMuCgkqIHdpbmRyZXMuYyAodXNhZ2UpOiBBZGp1c3QgZm9ybWF0IHRvIG1hdGNoIHN0eWxlIHVzZWQgaW4KCW90aGVyIGJpbnV0aWxzLgoKCSogY29mZmR1bXAuYzogRml4IGZvcm1hdHRpbmcuCgkqIG5sbWNvbnYuYzogRml4IGZvcm1hdHRpbmcuCgkqIHNyY29udi5jOiBGaXggZm9ybWF0dGluZy4KCSogc3lzZHVtcC5jOiBGaXggZm9ybWF0dGluZy4KCjIwMDItMDEtMjIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wMS0xOCAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogdmVyc2lvbi5jIChwcmludF92ZXJzaW9uKTogVXBkYXRlIHllYXIuCgoyMDAyLTAxLTE3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogcmVhZGVsZi5jIChnZXRfbWFjaGluZV9uYW1lKTogSGFuZGxlIEVNX1BQQzY0LgoJKGd1ZXNzX2lzX3JlbGEpOiBIZXJlIHRvby4KCjIwMDItMDEtMTcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcG8vYmludXRpbHMucG90OiBSZWdlbmVyYXRlLgoJKiBwby9mci5wbzogUmVnZW5lcmF0ZS4KCSogcG8vdHIucG86IFJlZ2VuZXJhdGUuCgoyMDAyLTAxLTE2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIHBvL3RyLnBvOiBJbXBvcnQgbmV3IHZlcnNpb24uCgoyMDAyLTAxLTE2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogcmVhZGVsZi5jIChnZXRfcHBjNjRfZHluYW1pY190eXBlKTogTmV3LgoJKGdldF9keW5hbWljX3R5cGUpOiBDYWxsIGl0LgoKMjAwMi0wMS0xNSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBvYmpjb3B5LmMgKGNvcHlfdXNhZ2UpOiBVc2UgIm9wdGlvbnMiIGluc3RlYWQgb2YgInN3aXRjaGVzIi4KCShzdHJpcF91c2FnZSk6IFVzZSAib3B0aW9ucyIgaW5zdGVhZCBvZiAic3dpdGNoZXMiLgoJKiBkb2MvYmludXRpbHMudGV4aSAoZGxsdG9vbCk6ICBSZWZlciB0byAib3B0aW9ucyIgaW5zdGVhZCBvZgoJInN3aXRjaGVzIi4KCjIwMDItMDEtMTQgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogTUFJTlRBSU5FUlM6IEFkZCBzZWxmIGFzIGNvLW1haW50YWluZXIgZm9yIHRoZSBBUk0gY29kZS4KCjIwMDEtMTItMTggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcG8vZXMucG86IEltcG9ydCBmcm9tIHRyYW5zbGF0aW9uIHByb2plY3QuCgkqIGNvbmZpZ3VyZS5pbiAoQUxMX0xJTkdVQVMpOiBBZGQgZXMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMDEtMDkgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiByZWFkZWxmLmMgKGdldF9uZXRic2RfZWxmY29yZV9ub3RlX3R5cGUpOiBVc2UKCU5UX05FVEJTRENPUkVfUFJPQ0lORk8gYW5kIE5UX05FVEJTRENPUkVfRklSU1RNQUNILgoKMjAwMi0wMS0wOSAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIHJlYWRlbGYuYzogVXBkYXRlIGNvcHlyaWdodCB5ZWFycy4KCShnZXRfbm90ZV90eXBlKTogUmV0dXJuIGEgY29uc3QgY2hhciAqLgoJKGdldF9uZXRic2RfZWxmY29yZV9ub3RlX3R5cGUpOiBOZXcgZnVuY3Rpb24uCgkocHJvY2Vzc19ub3RlKTogVXNlIGdldF9uZXRic2RfZWxmY29yZV9ub3RlX3R5cGUgdG8gZ2V0Cgl0aGUgbm90ZSB0eXBlIHN0cmluZyBmb3IgTmV0QlNEIEVMRiBjb3JlIGZpbGVzLgoKMjAwMi0wMS0wNiAgU3RldmUgRWxsY2V5ICA8c2plQGN1cC5ocC5jb20+CgoJKiByZWFkZWxmLmMgKGdldF9pYTY0X3NlZ21lbnRfdHlwZSk6IEFkZCBzdXBwb3J0IGZvciBtYWNyb3MuCgkoZ2V0X3NlZ21lbnRfdHlwZSk6IEFkZCBzdXBwb3J0IGZvciBJQTY0IHNwZWNpZmljIG1hY3Jvcy4KCjIwMDEtMTItMjAgIEp1bGlhbiB2LiBCb2NrICA8anVsaWFuQHdvbmdyLm5ldD4KCgkqIHJlYWRlbGYuYyAocHJpbnRfc3ltYm9sKTogTmV3IGZ1bmN0aW9uOiBQcmludCBhIGZvcm1hdHRlZCBzeW1ib2wKCW5hbWUuICBJZiAtLXdpZGUgaXMgc3BlY2lmaWVkIGRvIG5vdCB0cnVuY2F0ZSBpdC4KCShkdW1wX3JlbG9jYXRpb25zKTogVXNlIHByaW50X3N5bWJvbCgpIHRvIHByaW50IHN5bWJvbCBuYW1lcy4KCShwcm9jZXNzX3N5bWJvbF90YWJsZSk6IExpa2V3aXNlLgoJKHByb2Nlc3Nfc3ltaW5mbyk6IExpa2V3aXNlLgoJKHByb2Nlc3NfbWlwc19zcGVjaWZpYyk6IExpa2V3aXNlLgoJKHVzYWdlKTogRG9jdW1lbnQgbmV3IGZlYXR1cmUgb2YgLS13aWRlIHN3aXRjaC4KCSogZG9jL2JpbnV0aWxzLnRleGkgKG9iamR1bXApOiBEb2N1bWVudCBhZGRpdGlvbmFsIGJlaGF2aW91ciBvZgoJLS13aWRlLgoKMjAwMS0xMi0xOCAgTWljaGFlbCBTbnlkZXIgIDxtc255ZGVyQHJlZGhhdC5jb20+CgoJKiBvYmpjb3B5LmMgKGNvcHlfZmlsZSk6IEFjY2VwdCBjb3JlZmlsZXMgKGZvcm1hdCBiZmRfY29yZSkuCgkoY29weV9vYmplY3QpOiBEb24ndCBzZXQgdGhlIHN0YXJ0IGFkZHJlc3Mgb3IgZmxhZ3Mgb2YgYSBjb3JlIGZpbGUuCgkoY29weV9zZWN0aW9uKTogRG9uJ3QgcmVsb2NhdGUgYSBjb3JlIGZpbGUuICBEb24ndCBjb3B5IGNvbnRlbnRzCglpZiB0aGUgaW5wdXQgc2VjdGlvbiBoYXMgdGhlIGNvbnRlbnRzIGZsYWcgc2V0LCBidXQgdGhlIG91dHB1dAoJc2VjdGlvbiBkb2VzIG5vdCAod2hpY2ggaGFwcGVucyB3aXRoIHRoZSBmYWtlICdub3RlJyBwc2V1ZG8tCglzZWN0aW9ucyB0aGF0IEJGRCBjcmVhdGVzIGZvciBjb3JlZmlsZXMpLgoKMjAwMS0xMi0xOCAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIHJlYWRlbGYuYyAoZ2V0X21hY2hpbmVfZmxhZ3MpOiBSZWNvZ25pemUgaGVhZGVyIGZsYWdzIGZvciBBQkkgYW5kCglBU0UgZXh0ZW5zaW9ucy4gTW9yZSByb2J1c3QgY29kZSBmb3IgSVNBIGNoZWNraW5nLiBJZ25vcmUgZW1wdHkgZmllbGRzCglpbiBoZWFkZXIgZmxhZ3MgZm9yIEdOVSBleHRlbnNpb25zLgoKMjAwMS0xMi0xOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIG9iamNvcHkuYyAoY29weV9hcmNoaXZlKTogU2V0IG91dHB1dCBiZmQgZm9ybWF0IG91dHNpZGUgdGhlIGxvb3AuCgoyMDAxLTEyLTE4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIHBvL2phLnBvOiBJbXBvcnQgZnJvbSB0cmFuc2xhdGlvbiBwcm9qZWN0LgoJKiBjb25maWd1cmUuaW4gKEFMTF9MSU5HVUFTKTogQWRkIGphLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAxLTEyLTE4ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogYWRkcjJsaW5lLmMgKG1haW4pOiBQcm90b3lwZS4KCSogYXIuYyAobWFpbik6IFByb3RveXBlLgoJKiBubS5jIChtYWluKTogUHJvdG95cGUuCgkqIG9iamNvcHkuYyAobWFpbik6IFByb3RveXBlLgoJKiBvYmpkdW1wLmMgKG1haW4pOiBQcm90b3lwZS4KCSogc2l6ZS5jIChtYWluKTogUHJvdG95cGUuCgkqIHN0cmluZ3MuYyAobWFpbik6IFByb3RveXBlLgoKMjAwMS0xMi0xNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHJlYWRlbGYuYyAoc3ltdGFiX3NobmR4X2hkcik6IE5ldyBnbG9iYWwuCgkoU0VDVElPTl9IRUFERVJfSU5ERVgpOiBEZWZpbmUuCgkoU0VDVElPTl9IRUFERVJfTlVNKTogRGVmaW5lLgoJKFNFQ1RJT05fSEVBREVSKTogRGVmaW5lLgoJKEdFVF9FTEZfU1lNQk9MUyk6IFBhc3MgdHdvIHBhcmFtcyByYXRoZXIgdGhhbiB0aHJlZS4KCShnZXRfMzJiaXRfZWxmX3N5bWJvbHMpOiBUYWtlIGZpbGUgYW5kIHNlY3Rpb24gYXJncy4gIFJlYWQgYW5kCgl1c2UgU0hUX1NZTVRBQl9TSE5EWC4KCShnZXRfNjRiaXRfZWxmX3N5bWJvbHMpOiBMaWtld2lzZS4KCShkdW1wX3JlbG9jYXRpb25zKTogVXNlIFNFQ1RJT05fSEVBREVSIHRvIGluZGV4ICJzZWN0aW9uX2hlYWRlcnMiLgoJKHByb2Nlc3Nfc2VjdGlvbl9oZWFkZXJzKTogTGlrZXdpc2UuICBVc2UgU0VDVElPTl9IRUFERVJfTlVNIHRvby4KCVJlbWVtYmVyIHN5bXRhYl9zaGR4X2hkci4KCShwcm9jZXNzX3Byb2dyYW1faGVhZGVycyk6IFNjYW4gZnJvbSBpbmRleCAxIGZvciBzZWdtZW50IG1hcC4KCShzbHVycF9pYTY0X3Vud2luZF90YWJsZSk6IFVzZSBTRUNUSU9OX0hFQURFUiB0byBpbmRleAoJInNlY3Rpb25faGVhZGVycyIuCgkocHJvY2Vzc19yZWxvY3MpOiBMaWtld2lzZS4gIEFsc28gYWRqdXN0IGNhbGwgdG8gR0VUX0VMRl9TWU1CT0xTLgoJKHByb2Nlc3NfdW53aW5kKTogTGlrZXdpc2UuCgkocHJvY2Vzc192ZXJzaW9uX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkocHJvY2Vzc19zeW1ib2xfdGFibGUpOiBMaWtld2lzZS4KCShkaXNwbGF5X2RlYnVnX2luZm8pOiBMaWtld2lzZS4KCShwcm9jZXNzX2R5bmFtaWNfc2VnbWVudCk6IEZha2UgdXAgYSBzeW10YWIgc2VjdGlvbiBmb3IgY2hhbmdlZAoJR0VUX0VMRl9TWU1CT0xTLgoJKGdldF9zeW1ib2xfaW5kZXhfdHlwZSk6IENoZWNrIFNITl9MT09TIGJlZm9yZSBTSE5fTE9SRVNFUlZFLgoJKHByb2Nlc3NfcHJvZ3JhbV9oZWFkZXJzKTogS2lsbCBzaWduZWQvdW5zaWduZWQgd2FybmluZy4KCShsb2FkX2RlYnVnX3N0cik6IExpa2V3aXNlLgoJKGRpc3BsYXlfZGVidWdfaW5mbyk6IExpa2V3aXNlLgoKMjAwMS0xMi0xMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKGdldF9zZWdtZW50X3R5cGUpOiBTdXBwb3J0IFBUX0dOVV9FSF9GUkFNRS4KCjIwMDEtMTItMTEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiByZWFkZWxmLmMgKHByb2Nlc3NfZmlsZV9oZWFkZXIpOiBQcmludCBleHRlbmRlZCBlX3NobnVtIGFuZAoJZV9zaGR0cm5keCB2YWx1ZXMuICBTZXQgZWxmX2hlYWRlciB2YWx1ZXMgZm9yIHNhbWUuCgkoZ2V0XzMyYml0X3NlY3Rpb25faGVhZGVycyk6IEFkZCAibnVtIiBhcmcgdG8gcmVhZCAibnVtIiBoZWFkZXJzLgoJKGdldF82NGJpdF9zZWN0aW9uX2hlYWRlcnMpOiBMaWtld2lzZS4KCShwcm9jZXNzX3NlY3Rpb25faGVhZGVycyk6IFVwZGF0ZSBjYWxscy4KCShnZXRfZmlsZV9oZWFkZXIpOiBDYWxsIGdldF8zMmJpdF9zZWN0aW9uX2hlYWRlcnMgb3IgNjRiaXQgdmFyaWFudC4KCjIwMDEtMTItMTAgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogb2JqY29weS5jIChzZXR1cF9zZWN0aW9uKTogQ29weSBlbnRzaXplLgoKMjAwMS0xMi0wNyAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0ByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChndWVzc19pc19yZWxhKTogQWRkIHN1cHBvcnQgZm9yIHN0b3JteTE2LgoJKGR1bXBfcmVsb2NhdGlvbnMpOiBMaWtld2lzZS4KCShnZXRfbWFjaGluZV9uYW1lKTogTGlrZXdpc2UuCgoyMDAxLTEyLTA1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGRsbHdyYXAuYyAobWFpbikgUmVwbGFjZSBtdWx0aXBsZSBzdHJpbmdzIGRlc2NyaWJpbmcgYQoJc2luZ2xlIGVycm9yIHdpdGggYSBzaW5nbGUsIG5ld2xpbmUgZXNjYXBlZCBzZW50ZW5jZSB0byBwZXJtaXQKCWJldHRlciB0cmFuc2xhdGlvbiBpbnRvIGZvcmVpZ24gbGFuZ3VhZ2VzLgoKCSogcmVhZGVsZi5jIChnZXRfZWxmX2NsYXNzKTogUmVtb3ZlIGludGVybmFsaW9uYWxpc2F0aW9uIG9mIEVMRgoJY2xhc3MgbmFtZXMuCgoyMDAxLTEyLTA0ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogc3RyaW5ncy5jIChnZXRfY2hhcik6IEluaXRpYWxpemUgdmFsdWUuCgoyMDAxLTEyLTA0ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogYXJsZXgubDogU2lsZW5jZSBjb21waWxlIHdhcm5pbmdzLgoJKiBhcnN1cC5oOiBMaWtld2lzZS4gRml4IGZvcm1hdHRpbmcuCgoyMDAxLTEyLTA0ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHN0cmluZ3MuYzogSW5jbHVkZSBjb25maWcuaCBiZWZvcmUgYmZkLmguCgkoZmlsZV9vZmYpOiBOZXcgdHlwZS4KCShmaWxlX29wZW4pOiBEZWZpbmUuCgkocHJpbnRfc3RyaW5ncyk6IFVzZSBmaWxlX29mZiBpbnN0ZWFkIG9mIGZpbGVfcHRyLiAgUHJpbnQgYWRkcmVzc2VzCgl3aGljaCBkb24ndCBmaXQgaW50byBsb25nIGNvcnJlY3RseS4KCShnZXRfY2hhcik6IFVzZSBmaWxlX29mZiBpbnN0ZWFkIG9mIGZpbGVfcHRyLiAgVXNlIGdldGNfdW5sb2NrZWQgaWYKCWF2YWlsYWJsZS4KCShzdHJpbmdzX2ZpbGUpOiBVc2UgZmlsZV9vZmYgaW5zdGVhZCBvZiBmaWxlX3B0ci4gIFVzZSBmaWxlX29wZW4uCgkqIGNvbmZpZ3VyZS5pbjogQ2hlY2sgZm9yIGdldGNfdW5sb2NrZWQuCglDaGVjayBmb3IgZm9wZW42NCBhbmQgd2hldGhlciBfTEFSR0VGSUxFNjRfU09VUkNFIG5lZWRzIHRvCgliZSBkZWZpbmVkIGZvciBpdC4KCSogY29uZmlndXJlOiBSZWJ1aWx0LgoJKiBjb25maWcuaC5pbjogUmVidWlsdC4KCjIwMDEtMTEtMjkgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogYnVjb21tLmMgKG1ha2VfdGVtcG5hbWUpOiBSZXZlcnQgdGhlIGNoYW5nZXMgbWFkZSBvbgoJMjAwMS0xMS0xNCBhbmQgMjAwMS0xMS0xMi4gVGhleSB3b24ndCB3b3JrIHdpdGggZGlyZWN0b3JpZXMuCgoyMDAxLTExLTIzICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogYmludXRpbHMvTWFrZWZpbGUuYW0gKGNoZWNrLURFSkFHTlUpOiBQYXNzIENDX0ZPUl9UQVJHRVQgYW5kCglDRkxBR1NfRk9SX1RBUkdFVCB0byBydW50ZXN0IGluIGVudmlyb25tZW50LgoJKiBNYWtlZmlsZS5pbjogUmVidWlsZC4KCSogZG9jL01ha2VmaWxlLmluOiBSZWJ1aWxkLgoKMjAwMS0xMS0yOCAgTWlrZSBTdHVtcCAgPG1yc0B3cnMuY29tPgoKCSogb2JqY29weS5jIChzZXR1cF9zZWN0aW9uKTogUHJlc2VydmUgU0VDX1JFTE9DIHdoZW4KCS0tc2V0LXNlY3Rpb24tZmxhZ3MgaXMgdXNlZC4KCjIwMDEtMTEtMTkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChkb19kZWJ1Z19zdHIpOiBOZXcgdmFyaWFibGUuCgkoZGlzcGxheV9kZWJ1Z19zdHIpOiBOZXcgZnVuY3Rpb246IERpc3BsYXkgdGhlIGNvbnRlbnRzIG9mIGEKCS5kZWJ1Z19zdHIgc2VjdGlvbi4KCShsb2FkX2RlYnVnX3N0cik6IE5ldyBmdW5jdGlvbjogTG9hZCBpbiB0aGUgY29udGVudHMgb2YgYQoJLmRlYnVnX3N0ciBzZWN0aW9uLgoJKGZyZWVfZGVidWdfc3RyKTogTmV3IGZ1bmN0aW9uOiBGcmVlIHRoZSBtZW1vcnkgdXNlZCBieQoJbG9hZF9kZWJ1Z19zdHIoKS4KCShmZXRjaF9pbmRpcmVjdF9zdHJpbmcpOiBSZXRyaWV2ZSBhIHN0cmluZyBmcm9tIHRoZSAuZGVidWdfc3RyCglzZWN0aW9uLgoJKHVzYWdlKTogQWRkIC13cy4KCShwYXJzZV9hcmdzKTogQWNjZXB0IC13cy4KCShwcm9jZXNzX3NlY3Rpb25faGVhZGVycyk6IEFsbG93IHRoZSBkaXNwbGF5IG9mIHRoZSAuZGVidWdfc3RyCglzZWN0aW9uLgoJKHJlYWRfYW5kX2Rpc3BsYXlfYXR0cl92YWx1ZSk6IFVzZSBmZXRjaF9pbmRpcmVjdF9zdHJpbmcuICBTaG93CglvZmZzZXQgaW50byAuZGVidWdfc3RyIHNlY3Rpb24uCgkoZGlzcGxheV9kZWJ1Z19pbmZvKTogVXNlIGxvYWRfZGVidWdfc3RyIGFuZCBmcmVlX2RlYnVnX3N0ci4KCShkZWJ1Z19kaXNwbGF5cyk6IEFkZCAuZGVidWdfc3RyLgoJKiBkb2MvYmludXRpbHMudGV4aTogRG9jdW1lbnQgLXdzLgoKMjAwMS0xMS0xOSAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogdGVzdHN1aXRlL2JpbnV0aWxzLWFsbC9vYmpkdW1wLmV4cDogQWRkIHg4Ni02NC4KCjIwMDEtMTEtMTUgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJKiByZWFkZWxmLmM6IEZpeCB3YXJuaW5ncyB3aXRob3V0IHRlcm1pbmF0aW5nIG5ld2xpbmUuCgoyMDAxLTExLTE1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZG9jL2JpbnV0aWxzLnRleGkgKG9iamR1bXApOiBEb2N1bWVudCBwcGMgLU0gb3B0aW9ucy4KCjIwMDEtMTEtMTQgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGRvYy9iaW51dGlscy50ZXhpIChvYmpkdW1wKTogRml4IGRlc2NyaXB0aW9uIHRvIHVzZSB4ODYtNjQuCgoyMDAxLTExLTE0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGJ1Y29tbS5jIChtYWtlX3RlbXBuYW1lKTogVXNlIG1rc3RlbXBzIGluc3RlYWQgb2YgbWtzdGVtcCwgc2luY2UKCW5vdCBhbGwgc3lzdGVtcyBwcm92aWRlIG1rc3RlbXAuCgoyMDAxLTExLTE0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZG9jL2JpbnV0aWxzLnRleGkgKG9iamR1bXApOiBEb2N1bWVudCB4ODYgLU0gb3B0aW9ucy4KCjIwMDEtMTEtMTMgIEtlaXRoIFdhbGtlciA8a2VpdGgud2Fsa2VyQGFybS5jb20+CgoJKiByZWFkZWxmLmMgKHJlYWRfYW5kX2Rpc3BsYXlfYXR0cl92YWx1ZSk6IE5ldyBmdW5jdGlvbiB0bwoJaGFuZGxlIERXX0ZPUk1faW5kaXJlY3QuCgkocmVhZF9hbmRfZGlzcGxheV9hdHRyKTogVXNlIGl0LgoKMjAwMS0xMS0xMyAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0ByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChkaXNwbGF5X2RlYnVnX2xpbmVzKTogRGVhbCB3aXRoIHVua25vd24gc3RhbmRhcmQKCW9wY29kZXMuICBIYW5kbGUgRFdfTE5TX3NldF9wcm9sb2d1ZV9lbmQsIERXX0xOU19zZXRfZXBpbG9ndWVfYmVnaW4sCglEV19MTlNfc2V0X2lzYS4KCjIwMDEtMTEtMTMgIFRpbW90aHkgV2FsbCAgPHR3YWxsQGFsdW0ubWl0LmVkdT4KCgkqIE1BSU5UQUlORVJTOiBBZGQgc2VsZiBhcyB0aWM1NHggbWFpbnRhaW5lci4gIFRoaXMgdGFyZ2V0CglpbmNsdWRlcyB0aGUgSUJNIEM1NFhEU1AgY2xvbmUuCgoyMDAxLTExLTEyICAqIFN0ZXZlbiBKLiBIaWxsIDxzamhpbGxAcmVhbGl0eWRpbHV0ZWQuY29tPgoKCSogYnVjb21tLmMgKG1ha2VfdGVtcG5hbWUpOiBVc2UgbWtzdGVtcCBpbiBwbGFjZSBvZiBta3RlbXAuCgoyMDAxLTExLTA5ICBKZWZmcmV5IEEgTGF3ICAobGF3QGN5Z251cy5jb20pCgoJKiB1bndpbmQtaWE2NC5jICh1bndfcHJpbnRfYnJtYXNrKTogRml4IElTTyBDIHBvcnRhYmlsaXR5IGdsaXRjaC4KCSh1bndfcHJpbnRfZ3JtYXNrLCB1bndfcHJpbnRfZnJtYXNrLCB1bndfcHJpbnRfYWJyZWcpOiBMaWtld2lzZS4KCSh1bndfcHJpbnRfeHlyZWcsIHVud19kZWNvZGVfeDEsIHVud19kZWNvZGVfeDIpOiBMaWtld2lzZS4KCSh1bndfZGVjb2RlX3gzLCB1bndfZGVjb2RlX3IxLCB1bndfZGVjb2RlX3IyKTogTGlrZXdpc2UuCgkodW53X2RlY29kZV9yMywgdW53X2RlY29kZV9wMSwgdW53X2RlY29kZV9wMl9wNSk6IExpa2V3aXNlLgoJKHVud19kZWNvZGVfcDYsIHVud19kZWNvZGVfcDdfcDEwLCB1bndfZGVjb2RlX2IxKTogTGlrZXdpc2UuCgkodW53X2RlY29kZV9iMiwgdW53X2RlY29kZV9iM19iNCk6IExpa2V3aXNlLgoKCSogcmVhZGVsZi5jIChnZXRfZWxmX2NsYXNzKTogRml4IElTTyBwb3J0YWJpbGl0eSBnbGl0Y2guCgkoZ2V0X2RhdGFfZW5jb2RpbmcsIGdldF9vc2FiaV9uYW1lLCByZXF1ZXN0X2R1bXApOiBMaWtld2lzZS4KCjIwMDEtMTEtMDcgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChkZWJ1Z19zdHIsIGRlYnVnX3N0cl9zaXplKTogTmV3LgoJKGRpc3BsYXlfZGVidWdfYWJicmV2KTogSWYgbm8gYWJicmV2cyB3ZXJlIHJlYWQsIHNraXAgdGhlIENVLgoJQ2FsbCBmcmVlX2FiYnJldnMuCgkocmVhZF9hbmRfZGlzcGxheV9hZGRyKTogSGFuZGxlIERXX0ZPUk1fc3RycC4KCShkaXNwbGF5X2RlYnVnX2luZm8pOiBSZWFkIC5kZWJ1Z19zdHIgc2VjdGlvbiBpZiBwcmVzZW50LAoJc28gdGhhdCBEV19GT1JNX3N0cnAgY2FuIGJlIGhhbmRsZWQuCglGaXggdGVzdCBmb3Igbm9uLWV4aXN0YW50IC5kZWJ1Z19hYmJyZXYgc2VjdGlvbi4KCjIwMDEtMTEtMDUgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogYXJsZXgubDogQWNjZXB0IGBcJyBpbiBmaWxlbmFtZXMuICBQYXRjaCBieSA8ZWFybF9jaGV3QGFnaWxlbnQuY29tPi4KCgkqIGFyc3VwLmMgKGFyX29wZW4pOiBQcmVwZW5kIHRtcC0gdG8gYmFzZW5hbWUsIG5vdCB3aG9sZSBwYXRoLgoKMjAwMS0xMS0wNSAgTWFydGluIFNjaHdpZGVmc2t5ICA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KCgkqIE1BSU5UQUlORVJTOiBBZGQgc2VsZiBhcyBzMzkwL3MzOTB4IG1haW50YWluZXIuCgoyMDAxLTExLTAyICBUb20gUml4ICA8dHJpeEBibHVleS5jeWdudXMuY29tPgoKCSogTUFJTlRBSU5FUlM6IEFkZCBzZWxmIGFzIFBQQyBYQ09GRiBtYWludGFpbmVyLgoKMjAwMS0xMS0wMiAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW4gKEFMTF9MSU5HVUFTKTogQWRkICJmciIgYW5kICJ0ciIuCgkqIGNvbmZpZ3VyZTogUmVnZXJuYXRlLgoJKiBwby9mci5wbzogTmV3IGZpbGUuCgkqIHBvL3RyLnBvOiBOZXcgZmlsZS4KCjIwMDEtMTAtMzAgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIE1BSU5UQUlORVJTOiBBZGQgc2VsZiBhcyBNTUlYIHBvcnQgbWFpbnRhaW5lci4KCSogcmVhZGVsZi5jOiBJbmNsdWRlIGVsZi9tbWl4LmguCgkoZ3Vlc3NfaXNfcmVsYSk6IE1NSVggaXMgUkVMQS4KCShkdW1wX3JlbG9jYXRpb25zKTogSGFuZGxlIE1NSVggcmVsb2NhdGlvbnMuCgkqIE1ha2VmaWxlLmFtOiBSZWdlbmVyYXRlIGRlcGVuZGVuY2llcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAxLTEwLTEzICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYyAocGFyc2VfYXJncyk6IEhhbmRsZSBtdWx0aXBsZSBvcHRpb25zIHRvIHRoZSAtdwoJc3dpdGNoLgoKMjAwMS0xMC0xMiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKGdldF9zZWN0aW9uX3R5cGVfbmFtZSk6IERvbid0IHByaW50IFNIVF8gcHJlZml4IGZvcgoJTE9QUk9DLCBMT09TIGFuZCBMT1VTRVIuCgoyMDAxLTEwLTExICBKIm9ybiBSZW5uZWNrZSA8YW15bGFhckBvbmV0ZWwubmV0LnVrPgoKCSogTUFJTlRBSU5FUlM6IFVwZGF0ZSBteSBlbWFpbCBhZGRyZXNzLgoKMjAwMS0xMC0wMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMS0xMC0wMiAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKGRpc3BsYXlfZGVidWdfbGluZSwgZGlzcGxheV9kZWJ1Z19wdWJuYW1lcywKCWRpc3BsYXlfZGVidWdfaW5mbywgZGlzcGxheV9kZWJ1Z19mcmFtZXMpOiBEZXRlY3QgYW5kIHdhcm4KCWFib3V0IDY0LWJpdCBmb3JtYXQgZW50cmllcy4KCShkaXNwbGF5X2RlYnVnX2FyYW5nZXMpOiBSZXdvcmQgNjQtYml0IHdhcm5pbmcuCgkoZGVidWdfZGlzcGxheXMpOiBBZGQgLmRlYnVnX3B1YnR5cGVzIGFzIGEga25vd24sIGJ1dCBub3QgeWV0CglzdXBwb3J0ZWQsIGRlYnVnIHNlY3Rpb24uCgoyMDAxLTEwLTAyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29mZmR1bXAuYyAoUFJPR1JBTV9WRVJTSU9OKTogRGVsZXRlLgoJKG1haW4gPCdWJz4pOiBDYWxsIHByaW50X3ZlcnNpb24uCgkqIHNyY29udi5jOiBMaWtld2lzZS4KCSogc3lzZHVtcC5jOiBMaWtld2lzZS4KCSogdmVyc2lvbi5jIChwcm9ncmFtX3ZlcnNpb24pOiBSZW1vdmUuCgkocHJpbnRfdmVyc2lvbik6IFVzZSBCRkRfVkVSU0lPTl9TVFJJTkcuICBKdXN0IHByaW50IHRoZSBjdXJyZW50Cgl5ZWFyIGluIGNvcHlyaWdodCBtZXNzYWdlLgoJKiBhZGRyMmxpbmUuYyAocHJvZ3JhbV92ZXJzaW9uKTogUmVtb3ZlIHVudXNlZCBkZWNsYXJhdGlvbi4KCSogb2JqZHVtcC5jIChkaXNwbGF5X3RhcmdldF90YWJsZXMpOiBVc2UgQkZEX1ZFUlNJT05fU1RSSU5HIGluCglwbGFjZSBvZiBCRkRfVkVSU0lPTi4KCSogTWFrZWZpbGUuYW0gKE1ha2VmaWxlKTogRGVwZW5kIG9uIGJmZC9jb25maWd1cmUuaW4uCgkoY3BsdXMtZGVtLm8pOiBEZXBlbmQgb24gTWFrZWZpbGUuCglSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAxLTEwLTAxICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYyAoZGlzcGxheV9kZWJ1Z19hcmFuZ2VzKTogRGV0ZWN0IGFuZCB3YXJuIGFib3V0IERXQVJGNjQKCWZvcm1hdCAuZGVidWdfYXJhbmdlIHNlY3Rpb25zLgoJKG1haW4pOiBBZGQgbWlzc2luZyBwcm90b3R5cGUuCgoyMDAxLTA5LTMwICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBNYWtlZmlsZS5hbTogVXBkYXRlIGRlcGVuZGVuY2llcyB3aXRoICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMS0wOS0yOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIG9iamR1bXAuYyAoZHVtcF9zZWN0aW9uX2hlYWRlcik6IER1bXAgU0VDX0FSQ0hfQklUXzAuCgoyMDAxLTA5LTI2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYnVjb21tLmMgKGZhdGFsKTogRGVmaW5lIHVzaW5nIFZQQVJBTVMsIFZBX09QRU4sIFZBX0ZJWEVEQVJHLAoJVkFfQ0xPU0UuCgkobm9uX2ZhdGFsKTogTGlrZXdpc2UuCgkqIG9iamR1bXAuYyAob2JqZHVtcF9zcHJpbnRmKTogTGlrZXdpc2UuCgkqIHJlYWRlbGYuYyAoZXJyb3IpOiBMaWtld2lzZS4KCSh3YXJuKTogTGlrZXdpc2UuCgoyMDAxLTA5LTI1ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYyAoZG9fd2lkZSk6IE5ldy4KCShvcHRpb25zKTogQWRkIC0td2lkZS4KCSh1c2FnZSwgcGFyc2VfYXJncyk6IExpa2V3aXNlLgoJKHByb2Nlc3NfcHJvZ3JhbV9oZWFkZXJzKTogUHV0IGVhY2ggc2VnbWVudCBvbiBhIHNpbmdsZSBsaW5lIGlmCgktLXdpZGUgaXMgZ2l2ZW4uCgkocHJvY2Vzc19zZWN0aW9uX2hlYWRlcnMpOiBQdXQgZWFjaCBzZWN0aW9uIG9uIGEgc2luZ2xlIGxpbmUgaWYKCS0td2lkZSBpcyBnaXZlbi4KCSogZG9jL2JpbnV0aWxzLnRleGk6IERvY3VtZW50IGl0LgoJKiBORVdTOiBMaWtld2lzZS4KCjIwMDEtMDktMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiByZWFkZWxmLmMgKHByaW50X3ZtYSk6IFByaW50IDggZGlnaXRzIG9mIGxvdyBoZXggdmFsdWUuCgoyMDAxLTA5LTI0ICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBubG1jb252LmM6IEZpeCB3YXJuaW5ncyBhYm91dCB1bnVzZWQgYXR0cmlidXRlcyBhbmQgZnVuY3Rpb24KCXByb3RvdHlwZXMuCgoJKiBzdHJpbmdzLmM6IEFkZCBwcm90b3R5cGUgZm9yIGdldF9jaGFyLgoKMjAwMC0wOS0xOSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZG9jL01ha2VmaWxlLmFtICgkKERFTUFOR0xFUl9OQU1FKS4xKTogVHJ5IGN4eGZpbHQubWFuIGFuZAoJJChzcmNkaXIpL2N4eGZpbHQubWFuLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlYnVpbGQuCgoyMDAxLTA5LTE5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogb2JqY29weS5jIChjb3B5X21haW4pOiBDb3JyZWN0IHJlbmFtZS1zZWN0aW9uIHN0cmluZyBwYXJzaW5nLgoJQ29uc29saWRhdGUgbmV3X25hbWUgcGFyc2luZywgYW5kIGVycm9yIG1lc3NhZ2VzLgoKMjAwMS0wOS0xOCAgQnJ1bm8gSGFpYmxlICA8aGFpYmxlQGNsaXNwLmNvbnMub3JnPgoKCSogYWRkcjJsaW5lLmM6IERvbid0IGluY2x1ZGUgPGN0eXBlLmg+LgoJKG1haW4pOiBGb3IgZ2V0dGV4dCwgYWxzbyBzZXQgdGhlIExDX0NUWVBFIGxvY2F0ZSBmYWNldC4KCSogYXIuYyAobWFpbik6IExpa2V3aXNlLgoJKiBjb2ZmZHVtcC5jIChtYWluKTogTGlrZXdpc2UuCgkqIGRsbHRvb2wuYzogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCShtYWluKTogRm9yIGdldHRleHQsIGFsc28gc2V0IHRoZSBMQ19DVFlQRSBsb2NhdGUgZmFjZXQuCglVc2UgSVNBTE5VTSBpbnN0ZWFkIG9mIGlzYWxwaGEvaXNkaWdpdC4KCSogZGxsd3JhcC5jOiBEb24ndCBpbmNsdWRlIDxjdHlwZS5oPi4KCShtYWluKTogRm9yIGdldHRleHQsIGFsc28gc2V0IHRoZSBMQ19DVFlQRSBsb2NhdGUgZmFjZXQuCgkqIG5sbWNvbnYuYzogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCShtYWluKTogRm9yIGdldHRleHQsIGFsc28gc2V0IHRoZSBMQ19DVFlQRSBsb2NhdGUgZmFjZXQuCglVc2UgVE9VUFBFUiBpbnN0ZWFkIG9mIGlzbG93ZXIvdG91cHBlci4KCSogbmxtaGVhZGVyLnk6IEluY2x1ZGUgInNhZmUtY3R5cGUuaCIgaW5zdGVhZCBvZiA8Y3R5cGUuaD4uCgkoeXlsZXgpOiBVc2UgSVNTUEFDRS9JU0FMTlVNIGluc3RlYWQgb2YgaXNzcGFjZS9pc2FsbnVtLgoJVXNlIFRPVVBQRVIgaW5zdGVhZCBvZiBpc2xvd2VyL3RvdXBwZXIuCgkqIG5tLmMgKG1haW4pOiBGb3IgZ2V0dGV4dCwgYWxzbyBzZXQgdGhlIExDX0NUWVBFIGxvY2F0ZSBmYWNldC4KCSogb2JqY29weS5jIChtYWluKTogTGlrZXdpc2UuCgkqIG9iamR1bXAuYzogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCShkaXNhc3NlbWJsZV9ieXRlcyk6IFVzZSBJU1BSSU5UIGluc3RlYWQgb2YgaXNwcmludC4KCShkdW1wX3NlY3Rpb25fc3RhYnMpOiBVc2UgSVNESUdJVCBpbnN0ZWFkIG9mIGlzZGlnaXQuCgkoZHVtcF9kYXRhKTogVXNlIElTUFJJTlQgaW5zdGVhZCBvZiBpc3ByaW50LgoJKG1haW4pOiBGb3IgZ2V0dGV4dCwgYWxzbyBzZXQgdGhlIExDX0NUWVBFIGxvY2F0ZSBmYWNldC4KCSogcmNsZXgubDogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCShjcHBfbGluZSwgaGFuZGxlX3F1b3Rlcyk6IFVzZSBJU1NQQUNFIGluc3RlYWQgb2YgaXNzcGFjZS4KCSogcmNwYXJzZS55OiBJbmNsdWRlICJzYWZlLWN0eXBlLmgiIGluc3RlYWQgb2YgPGN0eXBlLmg+LgoJVXNlIFRPVVBQRVIgaW5zdGVhZCBvZiBpc2xvd2VyL3RvdXBwZXIuCgkqIHJlYWRlbGYuYyAobWFpbik6IEZvciBnZXR0ZXh0LCBhbHNvIHNldCB0aGUgTENfQ1RZUEUgbG9jYXRlIGZhY2V0LgoJKiByZXNyYy5jOiBJbmNsdWRlICJzYWZlLWN0eXBlLmgiIGluc3RlYWQgb2YgPGN0eXBlLmg+LgoJKHdyaXRlX3JjX2FjY2VsZXJhdG9ycyk6IFVzZSBJU1BSSU5UIGluc3RlYWQgb2YgaXNwcmludC4KCSh3cml0ZV9yY19yY2RhdGEpOiBMaWtld2lzZS4KCSogc2l6ZS5jIChtYWluKTogRm9yIGdldHRleHQsIGFsc28gc2V0IHRoZSBMQ19DVFlQRSBsb2NhdGUgZmFjZXQuCgkqIHNyY29udi5jIChtYWluKTogTGlrZXdpc2UuCgkqIHN0YWJzLmM6IEluY2x1ZGUgInNhZmUtY3R5cGUuaCIgaW5zdGVhZCBvZiA8Y3R5cGUuaD4uCgkocGFyc2VfbnVtYmVyKTogVXNlIElTRElHSVQvSVNVUFBFUi9JU0xPV0VSIGluc3RlYWQgb2YKCWlzZGlnaXQvaXN1cHBlci9pc2xvd2VyLgoJKHBhcnNlX3N0YWJfc3RyaW5nLCBwYXJzZV9zdGFiX3R5cGUsIHBhcnNlX3N0YWJfYXJndHlwZXMsCglwYXJzZV9zdGFiX2FycmF5X3R5cGUsIHN0YWJfZGVtYW5nbGVfY291bnQsIHN0YWJfZGVtYW5nbGVfZ2V0X2NvdW50LAoJc3RhYl9kZW1hbmdsZV9wcmVmaXgsIHN0YWJfZGVtYW5nbGVfcXVhbGlmaWVkLAoJc3RhYl9kZW1hbmdsZV90ZW1wbGF0ZSwgc3RhYl9kZW1hbmdsZV90eXBlLAoJc3RhYl9kZW1hbmdsZV9mdW5kX3R5cGUpOiBVc2UgSVNESUdJVCBpbnN0ZWFkIG9mIGlzZGlnaXQuCgkqIHN0cmluZ3MuYzogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCShpc2dyYXBoaWMpOiBVc2UgSVNQUklOVCBpbnN0ZWFkIG9mIGlzYXNjaWkvaXNwcmludC4KCShtYWluKTogUmVtb3ZlIEhBVkVfTENfTUVTU0FHRVMgZGVwZW5kZW5jeS4KCSogc3lzZHVtcC5jOiBJbmNsdWRlICJzYWZlLWN0eXBlLmgiIGluc3RlYWQgb2YgPGN0eXBlLmg+LgoJKHBiYXJyYXkpOiBVc2UgSVNQUklOVCBpbnN0ZWFkIG9mIGlzcHJpbnQuCgkobWFpbik6IEZvciBnZXR0ZXh0LCBhbHNvIHNldCB0aGUgTENfQ1RZUEUgbG9jYXRlIGZhY2V0LgoJKiB3aW5kcmVzLmM6IEluY2x1ZGUgInNhZmUtY3R5cGUuaCIgaW5zdGVhZCBvZiA8Y3R5cGUuaD4uCgkoZm9ybWF0X2Zyb21fZmlsZW5hbWUpOiBVc2UgSVNQUklOVCBpbnN0ZWFkIG9mIGlzcHJpbnQuCgkobWFpbik6IEZvciBnZXR0ZXh0LCBhbHNvIHNldCB0aGUgTENfQ1RZUEUgbG9jYXRlIGZhY2V0LgoJKiB3aW5kdW5pLmM6IEluY2x1ZGUgInNhZmUtY3R5cGUuaCIgaW5zdGVhZCBvZiA8Y3R5cGUuaD4uCgkodW5pY29kZV9wcmludCk6IFVzZSBJU1BSSU5UIGluc3RlYWQgb2YgaXNwcmludC4KCSogd3JzdGFicy5jOiBJbmNsdWRlICJzYWZlLWN0eXBlLmgiIGluc3RlYWQgb2YgPGN0eXBlLmg+LgoJKHN0YWJfdmFyaWFibGUpOiBVc2UgSVNESUdJVCBpbnN0ZWFkIG9mIGlzZGlnaXQuCgoyMDAxLTA5LTE4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYXIuYyAocHJpbnRfY29udGVudHMpOiBDYXN0IGFyZ3Mgb2YgYmZkX3NlZWsgdG8gdGhlIHJpZ2h0IHR5cGVzLgoJUmVwbGFjZSBiZmRfcmVhZCBjYWxsIHdpdGggY2FsbCB0byBiZmRfYnJlYWQuCgkoZXh0cmFjdF9maWxlKTogTGlrZXdpc2UuCgoJKiBvYmpkdW1wLmMgKGR1bXBfc2VjdGlvbl9oZWFkZXIpOiBDYXN0IHNlY3Rpb24tPmZpbGVwb3MgdG8KCXVuc2lnbmVkIGxvbmcgdG8gc3VpdCBwcmludGYgZm9ybWF0IHN0cmluZy4KCSogcmVhZGVsZi5jIChwcm9jZXNzX3NlY3Rpb25faGVhZGVycyk6IFNpbWlsYXJseSBmb3Igc2hfb2Zmc2V0LgoJKHByb2Nlc3NfdW53aW5kKTogTGlrZXdpc2UuCgoyMDAxLTA5LTE0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIHN0cmluZ3MuYyAoZW5jb2RpbmcsIGVuY29kaW5nX2J5dGVzKTogTmV3IHZhcmlhYmxlcy4KCShsb25nX29wdGlvbnMpOiBBZGQgLS1lbmNvZGluZy4KCShtYWluKTogQWNjZXB0IC1lIGFuZCAtLWVuY29kaW5nLgoJKGdldF9jaGFyKTogTmV3IGZ1bmN0aW9uLiAgUmVhZCBhLCBwb3NzaWJseSB3aWRlLCBjaGFyYWN0ZXIgZnJvbQoJdGhlIGlucHV0IHN0cmVhbS4KCShwcmludF9zdHJpbmdzKTogVXNlIGdldF9jaGFyKCkuCgkodXNhZ2UpOiBEb2N1bWVudCBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbi4KCSogZG9jL2JpbnV0aWxzLnRleGk6IERvY3VtZW50IG5ldyBjb21tYW5kIGxpbmUgb3B0aW9uLgoJKiBORVdTOiBBbm5vdW5jZSBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbi4KCjIwMDEtMDktMTIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChndWVzc19pc19yZWxhLCBkdW1wX3JlbG9jYXRpb25zLCBnZXRfbWFjaGluZV9uYW1lLAoJZ2V0X21hY2hpbmVfZmxhZ3MpOiBBZGRlZCBFTV9NMzJSLCBFTV9EMTBWLCBFTV9WODUwLCBFTV9EMzBWLAoJRU1fTU4xMDIwMCwgRU1fTU4xMDMwMCwgRU1fRlIzMCwgRU1fQVZSX09MRCBhbmQgRU1fUEpfT0xELgoJUmVtb3ZlZCBFTV9DWUdOVVNfQVJDLgoKMjAwMS0wOS0wNCAgSmVmZnJleSBBIExhdyAgKGxhd0BjeWdudXMuY29tKQoKCSogcmVhZGVsZi5jOiBJbmNsdWRlIGVsZi9oOCBmb3IgSDggc2VyaWVzIGRlZmluaXRpb25zLgoJKGd1ZXNzX2lzX3JlbGEpOiBIOCBzZXJpZXMgaWYgUkVMQS4KCShkdW1wX3JlbG9jYXRpb25zKTogSGFuZGxlIEg4IHNlcmllcyByZWxvY2F0aW9ucy4KCjIwMDEtMDgtMzEgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChnZXRfbWFjaGluZV9mbGFncyk6IFJlbW92ZSBFX01JUFNfTUFDSF9NSVBTMzJfNEsuCgoyMDAxLTA4LTI5ICBQZXRlciBUYXJnZXR0ICA8cGV0ZXIudGFyZ2V0dEBhcmNjb3Jlcy5jb20+CgoJKiBNQUlOVEFJTkVSUzogSW5jbHVkZSBBUkMgTWFpbnRhaW5lci4KCjIwMDEtMDgtMjkgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogc3RhYnMuYyAoc3RhYl9kZW1hbmdsZV90ZW1wbGF0ZSk6IEluaXRpYWxpc2UgczQuCgoyMDAxLTA4LTI3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogcmVhZGVsZi5jIChkdW1wX3JlbG9jYXRpb25zKTogUmVjb2duaXNlIEVNX1BQQzY0LgoKMjAwMS0wOC0yNiAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIHJlYWRlbGYuYyAoZ2V0X21hY2hpbmVfZmxhZ3MpOiBBZGQgZGV0ZWN0aW9uIG9mIEVGX01JUFNfMzJCSVRNT0RFLgoKMjAwMS0wOC0yNSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogbm0uYyAocHJpbnRfd2lkdGgpOiBOZXcuCgkoZGlzcGxheV9yZWxfZmlsZSk6IFNldCBgcHJpbnRfd2lkdGgnIGFjY29yZGluZyB0bwoJYmZkX3NwcmludGZfdm1hLgoJKHByaW50X3N5bWJvbF9pbmZvX2JzZCk6IENoZWNrIGBwcmludF93aWR0aCcgaW5zdGVhZCBvZiBCRkQ2NC4KCjIwMDEtMDgtMjQgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogb2JqY29weS5jICh1c2VfYWx0X21hY2hfY29kZSk6IE5ldyB2YXJpYWJsZS4KCShPUFRJT05fQUxUX01BQ0hfQ09ERSk6IERlZmluZS4KCShjb3B5X29wdGlvbnMpOiBBZGRlZCAtLWFsdC1tYWNoaW5lLWNvZGUuCgkoY29weV9tYWluKTogSGFuZGxlIGl0LgoJKGNvcHlfb2JqZWN0KTogU3dpdGNoIHRvIGFsdGVybmF0ZSBtYWNoaW5lIGNvZGUgaWYgcmVxdWVzdGVkLgoJKiBkb2MvYmludXRpbHMudGV4aTogRG9jdW1lbnQgbmV3IG9wdGlvbi4KCSogTkVXUzogTGlrZXdpc2UuCgoyMDAxLTA4LTIyICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogcmVhZGVsZi5jIChnZXRfbWFjaGluZV9mbGFncyk6IEFkZCBkZXRlY3Rpb24gb2YgRUZfTUlQU19VQ09ERS4KCjIwMDEtMDgtMjEgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIHJlYWRlbGYuYyAoZHVtcF9yZWxvY2F0aW9ucyk6IFN1cHBvcnQgRUxGNjQgb24gMzJiaXQgaG9zdHMuCgkoZGlzcGxheV9kZWJ1Z19pbmZvKTogQ2FzdCBmb3IgNjRiaXQgaG9zdHMuCgkoZGlzcGxheV9kZWJ1Z19mcmFtZXMpOiBMaWtld2lzZS4KCShwcm9jZXNzX21pcHNfc3BlY2lmaWMpOiBMaWtld2lzZS4KCjIwMDEtMDgtMjEgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGNvZmZncm9rLmg6IEFkZCBtaXNzaW5nIHBhcmFtZXRlciBmb3IgcHJvdG90eXBlIG9mIGNvZmZfZ3Jvay4KCgkqIHN5c2R1bXAuYzogQWRkIG1pc3NpbmcgcHJvdG90eXBlcy4KCSogc3Jjb252LmM6IExpa2V3aXNlLgoJKiB1bndpbmQtaWE2NC5jOiBMaWtld2lzZS4KCSogY29mZmR1bXAuYzogTGlrZXdpc2UuCgoJKiBzeXNpbmZvLnk6IFByaW50IHByb3RvdHlwZXMsIGluY2x1ZGUgPGFuc2lkZWNsLmg+LgoKCSogY29mZmdyb2suYzogQWRkIG1pc3NpbmcgcHJvdG90eXBlcywgaW5jbHVkZSBsaWJpYmVydHkuaCBpbnN0ZWFkCglvZiBkZWNsYXJpbmcgeGNhbGxvYy4KCjIwMDEtMDgtMTAgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIG5tLmMgKHByaW50X3ZhbHVlKTogQWRkIG9uZSBhcmcsIGJmZCAqLgoJKHByaW50X3ZhbHVlKTogUmVwbGFjZSBmcHJpbnRmX3ZtYSB3aXRoIGJmZF9mcHJpbnRmX3ZtYS4KCShwcmludF9zeW1ib2xfaW5mb19ic2QpOiBBbHNvIHBhc3MgYGFiZmQnIHRvIHByaW50X3ZhbHVlICgpLgoJKHByaW50X3N5bWJvbF9pbmZvX3N5c3YpOiBMaWtld2lzZS4KCShwcmludF9zeW1ib2xfaW5mb19wb3NpeCk6IExpa2V3aXNlLgoKCSogb2JqZHVtcC5jIChkdW1wX3NlY3Rpb25faGVhZGVyKTogUmVwbGFjZSBwcmludGZfdm1hIHdpdGgKCWJmZF9wcmludGZfdm1hLgoJKHByaW50X3NlY3Rpb25fc3RhYnMpOiBMaWtld2lzZS4KCShkdW1wX2JmZF9oZWFkZXIpOiBMaWtld2lzZS4KCShvYmpkdW1wX3ByaW50X3ZhbHVlKTogUmVwbGFjZSBzcHJpbnRmX3ZtYSB3aXRoCgliZmRfc3ByaW50Zl92bWEuCgkoZGlzYXNzZW1ibGVfYnl0ZXMpOiBMaWtld2lzZS4KCShkdW1wX3JlbG9jX3NldCk6IExpa2V3aXNlLgoKMjAwMS0wOC0xMCAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogY29uZmlndXJlLmluOiBBZGQgLVdzdHJpY3QtcHJvdG90eXBlcyBhbmQgLVdtaXNzaW5nLXByb3RvdHlwZXMKCXRvIGJ1aWxkIHdhcm5pbmdzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAxLTA4LTA5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogcmVhZGVsZi5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoJKiBvYmpkdW1wLmM6IExpa2V3aXNlLiAgRm9ybWF0IGV4aXN0aW5nIHByb3RvdHlwZXMuCgoyMDAxLTA4LTA4ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYyAoZGlzcGxheV9kZWJ1Z19pbmZvKTogQWRkIHRvIGFiYnJldl9vZmZzZXQgdGhlIGFkZGVuZAoJb2YgYW55IFJFTEEgcmVsb2NhdGlvbiBmb3IgdGhlIGFiYnJldl9vZmZzZXQgbWVtb3J5IGxvY2F0aW9uIHRoYXQKCXJlZmVycyB0byB0aGUgLmRlYnVnX2FiYnJldiBzZWN0aW9uIHN5bWJvbC4KCjIwMDEtMDgtMDcgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIHJlYWRlbGYuYyAocHJvY2Vzc19maWxlKTogUmV0dXJuIDAgaWYgT0ssIG90aGVyd2lzZSByZXR1cm4gMS4KCShtYWluKTogUmV0dXJuIHByb2Nlc3NfZmlsZSAoKS4KCjIwMDEtMDgtMDUgIFBoaWxpcCBCbHVuZGVsbCAgPHBoaWxiQGdudS5vcmc+CgoJKiBkb2MvYmludXRpbHMudGV4aTogVXNlICJUaHVtYiIgbm90ICJUSFVNQiIuCgoyMDAxLTA4LTAzICBKb2huIEhlYWx5ICA8amhlYWx5QHJlZGhhdC5jb20+CgoJUGF0Y2ggc3VnZ2VzdGVkIGJ5IEZyYW5rIEVpZ2xlciA8ZmNoZUByZWRoYXQuY29tPi4KCSogb2JqZHVtcC5jIChkaXNhc3NlbWJsZV9kYXRhKTogRmlsbCBpbiBzZWN0aW9uIG1lbWJlciBvZiB0aGUKCWRpc2FzbV9pbmZvIHN0cnVjdHVyZS4KCjIwMDEtMDgtMDMgIFRvbSBXYWxzaCAgPHRvbUBjeWJlcmlhbnNvZnR3YXJlLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkZWQgLS13aXRoLXdpbmRyZXMgb3B0aW9uLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKMjAwMS0wNy0xMSAgU3RlcGhhbmUgQ2FycmV6ICA8U3RlcGhhbmUuQ2FycmV6QHdvcmxkbmV0LmZyPgoKCSogZG9jL2JpbnV0aWxzLnRleGk6IFVzZSBAY29tbWFuZHtuYW1lfSBmb3IgY29tbWFuZHM7Cgl1c2UgQG9wdGlvbnstb3B0fSBmb3Igb3B0aW9uczsgdXNlIEB0YWJsZSBAZW52IGZvciBsaXN0IG9mIG9wdGlvbnM7CglyZW1vdmUgc3BhY2VzIGFycm91bmQgWyB8IF0gaW4gc3lub3BzaXMuCgoJKiBkb2MvTWFrZWZpbGUuYW0gKFBPRDJNQU4pOiBVc2UgJ0dOVSBEZXZlbG9wbWVudCBUb29scycgZm9yIHRoZQoJY2VudGVyIHRpdGxlLgoKMjAwMS0wNy0zMSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBvYmpjb3B5LmM6IEZpeCBmb3JtYXR0aW5nLgoJKHNlY3Rpb25fcmVuYW1lKTogTmV3IHN0cnVjdHVyZS4KCShPUFRJT05fUkVOQU1FX1NFQ1RJT04pOiBOZXcgc3dpdGNoLgoJKGNvcHlfdXNhZ2UpOiBEb2N1bWVudCBuZXcgc3dpdGNoLgoJKGFkZF9zZWN0aW9uX3JlbmFtZSk6IE5ldyBmdW5jdGlvbjogQWRkIGEgbm9kZSB0byB0aGUgc2VjdGlvbgoJcmVuYW1lIGxpc3QuCgkoZmluZF9zZWN0aW9uX3JlbmFtZSk6IE5ldyBmdW5jdGlvbjogRmluZCB0aGUgbmV3IG5hbWUgYW5kCglmbGFncyBmb3IgYSBzZWN0aW9uLgoJKHNldHVwX3NlY3Rpb24pOiBDYWxsIGZpbmRfc2VjdGlvbl9uYW1lIHRvIGRldGVybWluZSB0aGUgbmFtZQoJb2YgdGhlIG91dHB1dCBzZWN0aW9uLgoJKGNvcHlfbWFpbik6IEhhbmRsZSBPUFRJT05fUkVOQU1FX1NFQ1RJT04uCgkqIGJpbnV0aWxzLnRleGk6IERvY3VtZW50IG5ldyBzd2l0Y2guCgkqIE5FV1M6IE1lbnRpb24gbmV3IHN3aXRjaC4KCjIwMDEtMDctMzAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogUkVBRE1FOiBSZW5hbWUgYnVnLWdudS11dGlsc0BnY2Mub3JnIHRvIGJ1Zy1iaW51dGlsc0BnY2Mub3JnLgoJKiBNQUlOVEFJTkVSUzogUmVuYW1lIGJ1Zy1nbnUtdXRpbHNAZ2NjLm9yZyB0bwoJYnVnLWJpbnV0aWxzQGdjYy5vcmcuCgoyMDAxLTA3LTI4ICBNYXR0aGlhcyBLcmFtbSAgPGtyYW1tQHF1aXNzLm9yZz4KCgkqIGJ1Y29tbS5jIChsaXN0X3N1cHBvcnRlZF9hcmNoaXRlY3R1cmVzKTogTmV3IGZ1bmN0aW9uLgoJKiBidWNvbW0uaCAobGlzdF9zdXBwb3J0ZWRfYXJjaGl0ZWN0dXJlcyk6IERlY2xhcmUuCgkqIG9iamR1bXAuYyAodXNhZ2UpOiBDYWxsIHRoZSBhYm92ZS4KCjIwMDEtMDctMjUgIERhdmUgQnJvbGxleSAgPGJyb2xsZXlAcmVkaGF0LmNvbT4KCgkqIG9iamR1bXAuYyAoU0tJUF9aRVJPRVMpOiBPbmx5IGRlZmluZSBpdCBpZiBpdCBpcyBub3QgYWxyZWFkeSBkZWZpbmVkLgoJKFNLSVBfWkVST0VTX0FUX0VORCk6IE9ubHkgZGVmaW5lIGl0IGlmIGl0IGlzIG5vdCBhbHJlYWR5IGRlZmluZWQuCgoyMDAxLTA3LTE5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIFJFQURNRTogVXBkYXRlIGZvciAyLjExLiAgQ2hhbmdlIGJ1ZyByZXBvcnRpbmcgZW1haWwgYWRkcmVzcy4KCSogTUFJTlRBSU5FUlM6IFRpZHkgdXAuICBDaGFuZ2UgYnVnIHJlcG9ydGluZyBlbWFpbCBhZGRyZXNzLgoKMjAwMS0wNy0xNiAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiByZXNyZXMuYyAod3JpdGVfcmVzX2hlYWRlcik6IEFsaWduIGhlYWRlciBzaXplLgoJKHJlc19hbGlnbl9maWxlKTogQ2FsY3VsYXRlIGFsaWdubWVudCBjb3JyZWN0bHkuCgoJKiByY3BhcnNlLnkgKHN0eWxlcyk6IHVzZSBTVUJMQU5HX1NISUZUIGluc3RlYWQgb2YgOCAob3IgdGhlIG1vcmUKCWNvcnJlY3QgMTApLgoJKiByZXNyYy5jICh3cml0ZV9yY19yZXNvdXJjZSk6IExpa2V3aXNlLgoJKiB3aW5kcmVzLmggKFNVQkxBTkdfU0hJRlQpOiBEZWZpbmUgLSBhcyAxMC4KCjIwMDEtMDctMTUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogTUFJTlRBSU5FUlM6IEFkZCBDaHJpc3RpYW4gR3JvZXNzbGVyIGFzIG1haW50YWluZXIgZm9yIHo4ayBwb3J0LgoKMjAwMS0wNy0xMSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBNQUlOVEFJTkVSUzogQWRkIG5vdGVzIGFib3V0IGJyYW5jaCBjaGVja2lucy4KCjIwMDEtMDctMDUgIERhbmllbCBCZXJsaW4gIDxkYW5AY2dzb2Z0d2FyZS5jb20+CgoJKiByZWFkZWxmLmMgKGRpc3BsYXlfZGVidWdfbWFjaW5mbyk6IE5ldyBmdW5jdGlvbiwgZGlzcGxheQoJLmRlYnVnX21hY2luZm8gc2VjdGlvbi4KCShkb19kZWJ1Z19tYWNpbmZvKTogTmV3IHZhcmlhYmxlLgoJKHBhcnNlX2FyZ3MpOiBIYW5kbGUgIi13W21NXSIgdG8gbWVhbiBkaXNwbGF5IG1hY3JvIGluZm8uCgkocHJvY2Vzc19zZWN0aW9uX2hlYWRlcnMpOiBIYW5kbGUgZGVidWdfbWFjaW5mby4KCShkZWJ1Z19kaXNwbGF5cyk6IFJlcGxhY2UgdW5zdXBwb3J0ZWQgZnVuY3Rpb24gd2l0aCBtYWNpbmZvCglmdW5jdGlvbiBmb3IgLmRlYnVnX21hY2luZm8gZGlzcGxheS4KCSogZG9jL2JpbnV0aWxzLnRleGk6IERvY3VtZW50IG5ldyBjb21tYW5kIGxpbmUgc3dpdGNoLgoJKiBORVdTOiBEb2N1bWVudCBuZXcgZmVhdHVyZSBvZiByZWFkZWxmLgoKMjAwMS0wNy0wNSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogb2JqY29weS5jIChmaWx0ZXJfc3ltYm9scyk6IERvbid0IHR1cm4gdW5kZWZpbmVkIHN5bWJvbHMKCWludG8gbG9jYWwuCgoyMDAxLTA3LTAzICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGRvYy9NYWtlZmlsZS5hbSAoYWRkcjJsaW5lLjEpOiBVc2UgYWRkcjJsaW5lLnBvZCBpbnN0ZWFkIG9mCgkkQC5wb2QuCgkoYXIuMSk6IExpa2V3aXNlLgoJKGRsbHRvb2wuMSk6IExpa2V3aXNlLgoJKG5sbWNvbnYuMSk6IExpa2V3aXNlLgoJKG5tLjEpOiBMaWtld2lzZS4KCShvYmpjb3B5LjEpOiBMaWtld2lzZS4KCShvYmpkdW1wLjEpOiBMaWtld2lzZS4KCShyYW5saWIuMSk6IExpa2V3aXNlLgoJKHJlYWRlbGYuMSk6IExpa2V3aXNlLgoJKHNpemUuMSk6IExpa2V3aXNlLgoJKHN0cmluZ3MuMSk6IExpa2V3aXNlLgoJKHN0cmlwLjEpOiBMaWtld2lzZS4KCSh3aW5kcmVzLjEpOiBMaWtld2lzZS4KCShjeHhmaWx0Lm1hbik6IFVzZSAkKERFTUFOR0xFUl9OQU1FKS5wb2QgaW5zdGVhZCBvZiAkQC5wb2QuCgkoJChERU1BTkdMRVJfTkFNRSkuMSk6IEFsc28gc3Vic3RpdHV0ZSBjeHhmaWx0IHdpdGgKCSQoREVNQU5HTEVSX05BTUUpLgoJKGFzLjEpOiBSZW1vdmVkLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGVkLgoKMjAwMS0wNy0wMyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBNQUlOVEFJTkVSUzogQ2hhbmdlIE1JUFMgbWFpbnRhaW5lciB0byBFcmljIENocmlzdG9waGVyLgoKMjAwMS0wNy0wMSAgRGFuaWVsIEJlcmxpbiAgPGRhbkBjZ3NvZnR3YXJlLmNvbT4KCgkqIHJlYWRlbGYuYzogU3VwcG9ydCBEV0FSRiAyLjEgdGFncywgZW5jb2RpbmdzLCBsYW5ndWFnZXMuCgoyMDAxLTA2LTI5ICBKYW1lcyBDb3duaWUgPGpjb3duaWVAZXRudXMuY29tPgoKCSogcmVhZGVsZi5jOiBTdXBwb3J0IERXQVJGIDIuMSBhdHRyaWJ1dGVzLgoKMjAwMS0wNi0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHJlYWRlbGYuYyAoR0VUX0RBVEFfQUxMT0MpOiBSZW1vdmUuCgkoR0VUX0RBVEEpOiBSZW1vdmUuCgkoZ2V0X2RhdGEpOiBOZXcgZnVuY3Rpb24gY29tYmluaW5nIGFib3ZlIG1hY3Jvcywgd2l0aCBhbiBleHRyYQoJdGVzdCBmb3IgemVybyBzaXplLgoJKHNsdXJwX3JlbGFfcmVsb2NzKTogVXNlIGdldF9kYXRhLCBhbmQgY2F0Y2ggZXJyb3IgcmV0dXJuLgoJKHNsdXJwX3JlbF9yZWxvY3MpOiBMaWtld2lzZS4KCShnZXRfMzJiaXRfcHJvZ3JhbV9oZWFkZXJzKTogTGlrZXdpc2UuCgkoZ2V0XzY0Yml0X3Byb2dyYW1faGVhZGVycyk6IExpa2V3aXNlLgoJKGdldF8zMmJpdF9zZWN0aW9uX2hlYWRlcnMpOiBMaWtld2lzZS4KCShnZXRfNjRiaXRfc2VjdGlvbl9oZWFkZXJzKTogTGlrZXdpc2UuCgkoZ2V0XzMyYml0X2VsZl9zeW1ib2xzKTogTGlrZXdpc2UuCgkoZ2V0XzY0Yml0X2VsZl9zeW1ib2xzKTogTGlrZXdpc2UuCgkocHJvY2Vzc19zZWN0aW9uX2hlYWRlcnMpOiBMaWtld2lzZS4KCShwcm9jZXNzX3JlbG9jcyk6IExpa2V3aXNlLgoJKHNsdXJwX2lhNjRfdW53aW5kX3RhYmxlKTogTGlrZXdpc2UuCgkocHJvY2Vzc191bndpbmQpOiBMaWtld2lzZS4KCShnZXRfMzJiaXRfZHluYW1pY19zZWdtZW50KTogTGlrZXdpc2UuCgkoZ2V0XzY0Yml0X2R5bmFtaWNfc2VnbWVudCk6IExpa2V3aXNlLgoJKHByb2Nlc3NfZHluYW1pY19zZWdtZW50KTogTGlrZXdpc2UuCgkocHJvY2Vzc192ZXJzaW9uX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkocHJvY2Vzc19zeW1ib2xfdGFibGUpOiBMaWtld2lzZS4KCShkdW1wX3NlY3Rpb24pOiBMaWtld2lzZS4KCShkaXNwbGF5X2RlYnVnX2luZm8pOiBMaWtld2lzZS4KCShkaXNwbGF5X2RlYnVnX3NlY3Rpb24pOiBMaWtld2lzZS4KCShwcm9jZXNzX3NlY3Rpb25fY29udGVudHMpOiBMaWtld2lzZS4KCShwcm9jZXNzX2NvcmVmaWxlX25vdGVfc2VnbWVudCk6IExpa2V3aXNlLgoJKHByb2Nlc3NfbWlwc19zcGVjaWZpYyk6IExpa2V3aXNlLiAgQWxzbyBmcmVlIGVjb25mMzIsIGVjb25mNjQuCgoyMDAxLTA2LTI1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogcmVhZGVsZi5jIChkdW1wX3JlbG9jYXRpb25zKTogUHJpbnQgImJhZCBzeW1ib2wgaW5kZXgiIGlmCglzeW10YWIgPT0gTlVMTCB3aXRoIG5vbi16ZXJvIHN5bXRhYl9pbmRleC4KCShwcm9jZXNzX3JlbG9jcyk6IERvbid0IGJvbWIgaWYgcmVsb2Mgc2VjdGlvbiBoYXMgbm8gc3ltc2VjLgoKMjAwMS0wNi0yNCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogb2JqY29weS5jIChzdHJpcF9tYWluKTogUmV2ZXJ0IHRoZSBjaGFuZ2UgbWFkZSBvbiAyMDAxLTA1LTMwCglieSBhY2NpZGVudC4KCShjb3B5X21haW4pOiBBcHBseSB0aGUgdGhlIGNoYW5nZSBtYWRlIHRvIHN0cmlwX21haW4gb24KCTIwMDEtMDUtMzAgYnkgYWNjaWRlbnQuCgoyMDAxLTA2LTIzICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiB1bndpbmQtaWE2NC5jICh1bndfZGVjb2RlX3gxKTogQWRkIHVudXNlZCBhdHRyaWJ1dGUgZm9yCglwYXJhbWV0ZXIgJ2NvZGUnLgoJKHVud19kZWNvZGVfeDIpOiBMaWtld2lzZS4KCSh1bndfZGVjb2RlX3gzKTogTGlrZXdpc2UuCgkodW53X2RlY29kZV94NCk6IExpa2V3aXNlLgoKMjAwMS0wNi0yMyAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBNQUlOVEFJTkVSUzogQWRkIG15c2VsZiBhcyBNODhrIG1haW50YWluZXIuCgoyMDAxLTA2LTIyICBKb2NlbHluIE1heWVyICA8am9jZWx5bi5tYXllckBuZXRnZW0uY29tPgoKCSogb2JqY29weS5jIChzdHJpcF9tYWluKTogU3VwcG9ydCAtbyBvciAtLW91dHB1dC1maWxlIGNvbW1hbmQgbGllbgoJc3dpdGNoLgoKMjAwMS0wNi0xOSAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGVkLgoKMjAwMS0wNi0xOSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmM6IFJlc3RvcmUgZm9ybWF0dGluZy4KCjIwMDEtMDYtMTggIEguSi4gTHUgPGhqbEBnbnUub3JnPiAmIE5pY2sgQ2xpZnRvbiA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIE1ha2VmaWxlLmFtOiBNb3ZlIGRvY3VtZW50YXRpb24gaW50byBkb2Mgc3ViZGlyZWN0b3J5LgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZWQuCgkqIGJpbnV0aWxzLnRleGk6IE1vdmUgaW50byBkb2Mgc3ViZGlyZWN0b3J5LgoJKiBhZGRyMmxpbmUuMTogUmVtb3ZlZC4KCSogYXIuMTogTGlrZXdpc2UuCgkqIGRsbHRvb2wuMTogTGlrZXdpc2UuCgkqIG5sbWNvbnYuMTogTGlrZXdpc2UuCgkqIG5tLjE6IExpa2V3aXNlLgoJKiBvYmpjb3B5LjE6IExpa2V3aXNlLgoJKiBvYmpkdW1wLjE6IExpa2V3aXNlLgoJKiByYW5saWIuMTogTGlrZXdpc2UuCgkqIHJlYWRlbGYuMTogTGlrZXdpc2UuCgkqIHNpemUuMTogTGlrZXdpc2UuCgkqIHN0cmluZ3MuMTogTGlrZXdpc2UuCgkqIHN0cmlwLjE6IExpa2V3aXNlLgoJKiB3aW5kcmVzLjE6IExpa2V3aXNlLgoJKiBjeHhmaWx0Lm1hbjogTGlrZXdpc2UuCgkqIGRvYzogTmV3IERpcmVjdG9yeS4KCSogZG9jL01ha2VmaWxlLmFtOiBOZXcgZmlsZS4KCSogZG9jL01ha2VmaWxlLmluOiBHZW5lcmF0ZS4KCjIwMDEtMDYtMDkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBORVdTOiBGaXggYSB0eXBvLiAgTWVudGlvbiBocHBhNjQtZWxmLiAgQWRkIGJpbnV0aWxzLTIuMTEgbWFya2VyLgoKMjAwMS0wNi0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1BSU5UQUlORVJTOiBVcGRhdGUgbXkgZW1haWwgYWRkcmVzcy4KCjIwMDEtMDUtMzAgIEhvbmRhIEhpcm9raSAgPGhob25kYUBrb2JlLWNhdHYubmUuanA+CgoJKiBvYmpjb3B5LmM6IEFkZCBuZXcgc3dpdGNoZXM6IC0ta2VlcC1nbG9iYWwtc3ltYm9sLAoJLS1rZWVwLXN5bWJvbHMsIC0tbG9jYWxpemUtc3ltYm9scywgLS1rZWVwLWdsb2JhbC1zeW1ib2xzIGFuZAoJLS13ZWFrZW4tc3ltYm9scy4KCSogYmludXRpbHMudGV4aTogRG9jdW1lbnQgbmV3IHN3aXRjaGVzLgoJKiBvYmpjb3B5LjE6IFJlZ2VuZXJhdGUuCgkqIE5FV1M6IEFubm91bmNlIG5ldyBmZWF0dXJlLgoKMjAwMS0wNS0yOCAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogcmVhZGVsZi5jIChkaXNwbGF5X2RlYnVnX2ZyYW1lcyk6IEZpeCB3YXJuaW5nczogUmVtb3ZlIHVudXNlZAoJdmFyaWFibGVzLCBmaXggZm9ybWF0IHN0cmluZ3MuCgoyMDAxLTA1LTI4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIG9iamR1bXAuYyAoZGlzYXNzZW1ibGVfYnl0ZXMpOiBSZW1vdmUgc2VjdGlvbiBWTUEgYWRqdXN0bWVudAoJd2hlbiBjb21wdXRpbmcgdGhlIGFkZHJlc3Mgb2YgdGhlIGxpbmUgdG8gc2hvdy4KCjIwMDEtMDUtMTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKGRvX2RlYnVnX2ZyYW1lc19pbnRlcnApOiBOZXcuCgkoYnl0ZV9nZXRfbGl0dGxlX2VuZGlhbik6IElmIEJGRDY0LCBhbHdheXMgcmVhZCBlbnRpcmUgOC1ieXRlIGZpZWxkcy4KCShieXRlX2dldF9iaWdfZW5kaWFuKTogTGlrZXdpc2UuCgkocGFyc2VfYXJncykgWydGJ106IFNldCBkb19kZWJ1Z19mcmFtZXNfaW50ZXJwLgoJKEZyYW1lX0NodW5rKTogTWFrZSBkYXRhX2ZhY3RvciBzaWduZWQsIGFkZCBmZGVfZW5jb2RpbmcuCgkoZnJhbWVfZGlzcGxheV9yb3cpOiBEb24ndCB0cnVuYyBwY19iZWdpbiB0byBpbnQuCgkoc2l6ZV9vZl9lbmNvZGVkX3ZhbHVlKTogTmV3LgoJKGRpc3BsYXlfZGVidWdfZnJhbWVzKTogSGFuZGxlIDY0LWJpdCB0YXJnZXRzLiAgUHJpbnQgcmF3IGRhdGEKCXVubGVzcyBkb19kZWJ1Z19mcmFtZXNfaW50ZXJwLgoJKGRlYnVnX2Rpc3BsYXlzKTogUmVtb3ZlIGR1cGxpY2F0ZSAuZGVidWdfZnJhbWUuCgoyMDAxLTA1LTE1ICBSYWxmIEJhZWNobGUgIDxyYWxmQGdudS5vcmc+CgoJKiByZWFkZWxmLmM6IFJlcGxhY2UgdXNlcyBvZiBFTV9NSVBTX1JTNF9CRSB3aXRoIEVNX01JUFNfUlMzX0xFLgoJVGhlIGZvcm1lciBjb25zdGFudCB3YXMgbmV2ZXIgaW4gYWN0aXZlIHVzZSBhbmQgaXMgdXNlZCBvdGhlcndpc2UKCWJ5IHRoZSBBQkkuCgoyMDAxLTA1LTExICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYyAocHJvY2Vzc191bndpbmQpOiBQcmludCBhbGwgdW53aW5kIHNlY3Rpb25zLCBub3QganVzdAoJb25lLgoKMjAwMS0wNS0wNyAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIHJlYWRlbGYuYyAocHJvY2Vzc191bndpbmQpOiBSZW1vdmUgY29uc3Qgc3BlY2lmaWVyLgoKMjAwMS0wNC0yNyAgTWljaGFsIFN2ZWMgPHJlYmVsQGF0cmV5Lmthcmxpbi5tZmYuY3VuaS5jej4KCgkqIHN0cmluZ3MuYyAoaXNncmFwaGljKTogRG8gbm90IHVzZSBpc2FzY2lpKCkgdW5sZXNzIGl0IGlzIG5lZWRlZAoJZm9yIGlzcHJpbnQoKSB0byB3b3JrLgoJKG1haW4pOiBTZXQgdGhlIGxvY2FsZSBkb21haW4gdG8gTENfQUxMIG5vdCBqdXN0IExDX01FU1NBR0VTLgoKMjAwMS0wNC0yNyAgSm9oYW4gUnlkYmVyZyAgPGpyeWRiZXJnQG9wZW5jb3Jlcy5vcmc+CgoJKiBORVdTOiBBbm5vdW5jZSBzdXBwb3J0IGZvciBPcGVuUklTQy4KCjIwMDEtMDQtMTcgIERhbm55IFNtaXRoICA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkbGx0b29sLmMgKGRvX2RlZmF1bHRfZXhjbHVkZXMpOiBJbml0aWFsaXNlIHRvIHRydWUuCgoyMDAxLTA0LTEwICBBbGFuIE1vZHJhICA8YW1vZHJhQG9uZS5uZXQuYXU+CgoJKiBNQUlOVEFJTkVSUzogVXBkYXRlIG15IGVtYWlsIGFkZHJlc3MKCSogbm0uYyAocHJpbnRfc3ltYm9sX2luZm9fYnNkKTogVXNlIGEgc2ltcGxlIHByaW50ZiBzdHJpbmcuCgoyMDAxLTA0LTA1ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIHJlYWRlbGYuYyAoZGlzcGxheV9kZWJ1Z19saW5lcyk6IEZpeCB0eXBvIGZvciAiUHJvbG9ndWUiLgoKMjAwMS0wMy0zMCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogcmVhZGVsZi5jIChwcm9jZXNzX3Vud2luZCk6IEp1c3QgcmV0dXJuIGlmIGRvX3Vud2luZCBpcyAwLgoKMjAwMS0wMy0yOCAgUm9nZXIgU2F5bGUgIDxyb2dlckBtZXRhcGhvcmljcy5jb20+CgoJKiBkbGx0b29sLmMgKG1ha2Vfb25lX2xpYl9maWxlKTogRml4IHNlY3Rpb24gZmxhZ3MgZm9yCgkudGV4dCwgLmRhdGEgYW5kIC5ic3MgaW4gc3R1YiBkcyoubyBmaWxlcyB0byBtYXRjaCB0aG9zZQoJZ2VuZXJhdGVkIGJ5IGdhcy4KCjIwMDEtMDMtMjkgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIHJlYWRlbGYuYyAocHJvY2Vzc191bndpbmQpOiBPbmx5IGRvIHVud2luZCBzZWN0aW9ucyBmb3IKCUlBNjQuCgoyMDAxLTAzLTI4ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBNYWtlZmlsZS5hbSAoJChzcmNkaXIpL2RsbHRvb2wuMSk6IFJlbW92ZSB0aGUgZXh0cmEgdGFyZ2V0LgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDEtMDMtMjYgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGJpbnV0aWxzLnRleGkgKG5tKTogRml4IHRleGkgc3ludGF4LgoKMjAwMS0wMy0yNSAgU3RlcGhhbmUgQ2FycmV6ICA8U3RlcGhhbmUuQ2FycmV6QHdvcmxkbmV0LmZyPgoKCSogYmludXRpbHMudGV4aTogUHV0IEBjIG1hbiBiZWdpbiBhbmQgQGMgbWFuIGVuZCBpbmRpY2F0aW9ucwoJdG8gZ2VuZXJhdGUgbWFuIHBhZ2VzIHVzaW5nIHRleGkycG9kIGFuZCBwb2QybWFuLiBQdXQgQGMgbWFuIHRpdGxlCgl0byBpZGVudGlmeSBlYWNoIG1hbi4gQWRkIFNFRUFMU08gZW50cmllcy4KCSogTWFrZWZpbGUuYW0gKE1BTkNPTkYsIFRFWEkyUE9ELCBQT0QyTUFOKTogTmV3IHZhcmlhYmxlLgoJKG1hbl9NQU5TKTogQWRkIGRsbHRvb2wuMSwgbmxtY29udi4xLCByZWFkZWxmLjEsIHdpbmRyZXMuMSwKCXNvcnQgdGhlIGxpc3QuCgkoKi4xKTogQnVpbGQgdGhlIG1hbiBwYWdlcyBmcm9tIGJpbnV0aWxzLnRleGkuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMS0wMy0xMyAgRXJpYyBLb2hsICA8ZWtvaGxAcnotb25saW5lLmRlPgoKCSogZGVmcGFyc2UueSAob3B0X2VxdWFsX25hbWUpOiBhbGxvdyAiLiIgaW4gbmFtZS4KCSogZGxsdG9vbC5jIChkZWZfZXhwb3J0cyk6IEFkZGVkIGFiaWxpdHkgdG8gZ2VuZXJhdGUgZm9yd2FyZGVkIGV4cG9ydHMuCgkoZ2VuX2V4cF9maWxlKTogTGlrZXdpc2UuCgoyMDAxLTAzLTEyICBTdGVmYW4gR2V1a2VuIDxtYWlsQHN0ZWZhbi1nZXVrZW4uZGU+CgoJKiBORVdTOiBEb2N1bWVudCBhZGRpdGlvbiBvZiAtQiBzd2l0Y2ggdG8gb2JqY29weS4KCSogYmludXRpbHMudGV4aTogIERvY3VtZW50IGFkZGl0aW9uIG9mIC1CIHN3aXRjaCB0byBvYmpjb3B5LgoJKiBvYmpjb3B5LmM6IChjb3B5X29wdGlvbnMpOiBBZGQgLS1iaW5hcnktYXJjaGl0ZWN0dXJlLgoJKGNvcHlfdXNhZ2UpOiBEb2N1bWVudCAtQi8tLWJpbmFyeS1hcmNoaXRlY3R1cmUuCgkoY29weV9tYWluKTogU3VwcG9ydCAtQi8tLWJpbmFyeS1hcmNoaXRlY3R1cmUuICBTZXQKCWJmZF9leHRlcm5hbF9iaW5hcnlfYXJjaGl0ZWN0dXJlLgoKMjAwMS0wMy0xMSAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogcmVhZGVsZi5jIChndWVzc19pc19yZWxhKTogSGFuZGxlIEVNX1MzOTBfT0xELgoJKGR1bXBfcmVsb2NhdGlvbnMpOiBMaWtld2lzZS4KCShnZXRfbWFjaGluZV9uYW1lKTogTGlrZXdpc2UuCgoyMDAxLTAyLTI4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jOiAoc3RydWN0IHVud19hdXhfaW5mbyk6IFJlbW92ZSBjb25zdCBtb2RpZmllciBmb3IKCSdzdHJ0YWInIGZpZWxkLgoJKHByb2Nlc3NfdW53aW5kKTogUmVtb3ZlIG5vbi1LJlIgY29tcGxpYW50IExIUyB0eXBlIGNhc3QgaW4gY2FsbAoJdG8gR0VUX0RBVEFfQUxMT0MgbWFjcm8uCgoyMDAxLTAyLTI4ICBQaGlsaXAgQmx1bmRlbGwgIDxwYkBmdXR1cmV0di5jb20+CgoJKiByZWFkZWxmLmMgKGRlY29kZV9BUk1fbWFjaGluZV9mbGFncyk6IEV4cGxpY2l0bHkgbWVudGlvbiB3aGljaAoJQUJJIGlzIGluIHVzZTsgcmVtb3ZlIGFtYmlndWl0eSBiZXR3ZWVuIHRoZSAidW5rbm93biIgRUFCSSBhbmQKCXVucmVjb2duaXNlZCBBQklzLiAgSGFuZGxlIHZlcnNpb24gMiBBUk0gRUFCSS4gIFVwZGF0ZSB1c2VzIG9mCglyZW5hbWVkIEVGX3h4IGNvbnN0YW50cy4KCjIwMDEtMDItMjcgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBjb25maWd1cmUuaW4gKEJGRF9WRVJTSU9OKTogTmV3LgoJKEFNX0lOSVRfQVVUT01BS0UpOiBVc2UgJEJGRF9WRVJTSU9OLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDEtMDItMTQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBNQUlOVEFJTkVSUzogQWRkICJPYnZpb3VzIEZpeCIgcnVsZS4KCjIwMDEtMDItMTEgIE1pY2hhZWwgU29rb2xvdiAgPG1zb2tvbG92QGl2YW4uSGFyaGFuLk9SRz4KCgkqIHVud2luZC1pYTY0LmM6IERvbid0IHVzZSBBTlNJIEMgcHJlcHJvY2Vzc29yIHN0cmluZ2lzYXRpb24gYW5kIHN0cmluZwoJbGl0ZXJhbCBjb25jYXRlbmF0aW9uLgoKMjAwMS0wMi0xMSAgTWljaGFlbCBTb2tvbG92ICA8bXNva29sb3ZAaXZhbi5IYXJoYW4uT1JHPgoKCSogcmVhZGVsZi5jIChzdHJ1Y3QgdW53X2F1eF9pbmZvKTogUmVtb3ZlIGNvbnN0IGZyb20gdGhlIGluZm8gbWVtYmVyLgoJKHByb2Nlc3NfdW53aW5kKTogRG9uJ3QgdHlwZS1jYXN0IHRoZSB0aGlyZCBhcmd1bWVudCB0byB0aGUKCUdFVF9EQVRBX0FMTE9DIG1hY3JvLgoKMjAwMS0wMi0xMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYyAoZHVtcF9yZWxvY2F0aW9ucyk6IEZyZWUgY29ycmVjdGVkIGFsbG9jYXRlZAoJYXJyYXkuCgkocHJvY2Vzc191bndpbmQpOiBGaXggY29tcGlsZSB0aW1lIHdhcm5pbmcuCgoyMDAxLTAyLTEwICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogYmludXRpbHMudGV4aTogRG9jdW1lbnQgbmV3IC0tdW53aW5kIG9wdGlvbiB0byByZWFkZWxmLgoKMjAwMS0wMi0wOSAgTWFydGluIFNjaHdpZGVmc2t5ICA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KCgkqIHJlYWRlbGYuYzogQWRkIGxpbnV4IHRhcmdldCBmb3IgUy8zOTAuCgoyMDAxLTAyLTEwICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogbm0uYyAocHJpbnRfc3ltYm9sX2luZm9fYnNkKTogRG9uJ3QgI2lmZGVmIGluc2lkZSBwcmludGYgaW4gY2FzZQoJcHJpbnRmIGlzIGEgbWFjcm8uCgoyMDAxLTAyLTA4ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBhY2luY2x1ZGUubTQgKEFNX1BST0dfTEVYKTogT3ZlcnJpZGUgaW5zdGFsbGVkIGRlZmluaXRpb24uCgkqIGFjbG9jYWwubTQ6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDEtMDItMDcgIFRvZGQgVmllcmxpbmcgIDx0dkB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGJ1Y29tbS5jIChiZmRfdGFyZ2V0X3ZlY3Rvcik6IENoYW5nZSBleHRlcm4gYXJyYXkgdG8gcG9pbnRlci4KCSogb2JqZHVtcC5jIChiZmRfdGFyZ2V0X3ZlY3Rvcik6IExpa2V3aXNlLgoKMjAwMS0wMi0wNyAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+CgoJKiByZWFkZWxmLmMgKHByb2Nlc3NfdW53aW5kKTogTmV3IGZ1bmN0aW9uLgoJKHNsdXJwX2lhNjRfdW53aW5kX3RhYmxlKTogRGl0dG8uCgkoZHVtcF9pYTY0X3Vud2luZCk6IERpdHRvLgoJKGZpbmRfc3ltYm9sX2Zvcl9hZGRyZXNzKTogRGl0dG8uCgkoc2x1cnBfcmVsYV9yZWxvY3MpOiBOZXcgZnVuY3Rpb24gKHNwbGl0IG9mZiBmcm9tIGR1bXBfcmVsb2NhdGlvbnMoKSkuCgkoc2x1cnBfcmVsX3JlbG9jcyk6IERpdHRvLgoJKHBhcnNlX2FyZ3MpOiBIYW5kbGUgJy11JyBvcHRpb24uCgoJKiB1bndpbmQtaWE2NC5jOiBOZXcgZmlsZS4KCSogdW53aW5kLWlhNjQuaDogTmV3IGZpbGUuCgkqIE1ha2VmaWxlLmFtOiBJbmNsdWRlIHVud2luZC1pYTY0LmMgaW4gcmVhZGVsZiBidWlsZC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL2JpbnV0aWxzLnBvdDogUmVnZW5lcmF0ZS4KCjIwMDEtMDItMDQgIFBoaWxpcCBCbHVuZGVsbCAgPHBoaWxiQGdudS5vcmc+CgoJKiBjb25maWd1cmUuaW4gKE9CSkRVTVBfREVGUyk6IE1hdGNoIGBhcm0qLSonLCBub3QganVzdCBgYXJtLSonLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAxLTAxLTMxICBTdGV2ZSBkZVJvc2llciAgPHNkZXJvc2llckB2YXJpLWxpdGUuY29tPgoKCSogaWVlZS5jIChpZWVlX2FkZF9iYjExKTogRG9uJ3QgY2hlY2sgZm9yIGJhY2tzbGFzaGVzCgl1bmxlc3MgSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0gaXMgZGVmaW5lZC4KCjIwMDEtMDEtMjQgIE1hcmsgRWxicmVjaHQgIDxzbm93YmFsbDNAYmlnZm9vdC5jb20+CgoJKiBpZWVlLmM6IFVwZGF0ZSBjb3B5cmlnaHQuCgkoaWVlZV9zdGFydF9jb21waWxhdGlvbl91bml0KTogRG9uJ3QgY2hlY2sgZm9yIGJhY2tzbGFzaGVzCgl1bmxlc3MgSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0gaXMgZGVmaW5lZC4KCgkqIHN0YWJzLmM6IFVwZGF0ZSBjb3B5cmlnaHQuIEluY2x1ZGUgImZpbGVuYW1lcy5oIi4KCShwYXJzZV9zdGFiKTogVXNlIElTX0FCU09MVVRFX1BBVEguIElnbm9yZSBOX1dBUk5JTkcgc3RhYnMuCgoyMDAxLTAxLTIzICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYyAocHJvY2Vzc192ZXJzaW9uX3NlY3Rpb25zKTogQ2hlY2sgaWYgVkVSREVGIG9yIFZFUk5FRUQKCXNlY3Rpb25zIGFyZSBwcmVzZW50IGJlZm9yZSB1c2luZyB0aGVtLiAgUmVtb3ZlIGNvZGUgZHVwbGljYXRpb24uCgkocHJvY2Vzc19zeW1ib2xfdGFibGUpOiBDaGVjayBpZiBWRVJERUYgb3IgVkVSTkVFRCBzZWN0aW9ucyBhcmUKCXByZXNlbnQgYmVmb3JlIHVzaW5nIHRoZW0uCgoyMDAxLTAxLTE3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogb2JqY29weS5jIChjb3B5X29iamVjdCk6IEZhaWwgaWYgYXR0ZW1wdGluZyB0byBjb252ZXJ0IHRoZQoJZW5kaWFubmVzcyBvZiB0aGUgaW5wdXQgb2JqZWN0IGZpbGUuCgoJKiBiaW51dGlscy50ZXhpOiBFeHBsYWluIHRoYXQgb2JqY29weSBjYW5ub3QgY29udmVydCBlbmRpYW5uZXNzLgoKMjAwMS0wMS0xNiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYyAoc3RyaW5nX3RhYmxlX2xlbmd0aCk6IE5ldyB2YXJpYWJsZS4KCShTRUNUSU9OX05BTUUpOiBDYXRjaCBvdXQgb2YgcmFuZ2UgaW5kaWNlcyBhbmQgbWlzc2luZyBzZWN0aW9uCglwb2ludGVycy4KCShwcm9jZXNzX3NlY3Rpb25faGVhZGVycyk6IERlbGV0ZSB1c2VsZXNzIGxvY2FsIHZhcmlhYmxlCglzdHJpbmdfdGFibGVfb2Zmc2V0LiAgU2V0IHRoZSB2YWx1ZSBvZiBzdHJpbmdfdGFibGVfbGVuZ3RoCglhZnRlciBsb2FkaW5nIHRoZSBzdHJpbmcgdGFibGUuCgkocHJvY2Vzc19taXBzX3NwZWNpZmljKTogVXNlIFNFQ1RJT05fTkFNRSBtYWNyby4KCShwcm9jZXNzX2ZpbGUpOiBTZXQgc3RyaW5nX3RhYmxlX2xlbmd0aCB0byAwIHdoZW4gaXQgaXMgZnJlZWQuCgoyMDAxLTAxLTEyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogdmVyc2lvbi5jIChwcmludF92ZXJzaW9uKTogVXBkYXRlIGNvcHlyaWdodCBkYXRlLgoKMjAwMS0wMS0xMSAgUGV0ZXIgVGFyZ2V0dCAgPHBldGVyLnRhcmdldHRAYXJjY29yZXMuY29tPgoKCSogcmVhZGVsZi5jIChkdW1wX3JlbG9jYXRpb25zKTogSW5jbHVkZSBzZWxlY3Rpb24gd2l0aCBFTV9BUkMuCgkoZ2V0X21hY2hpbmVfbmFtZSkgVXBkYXRlIG5hbWUgdG8gIkFSQyIuCgoyMDAxLTAxLTA5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogTWFrZWZpbGUuYW06IEFkZCBydWxlIHRvIGJ1aWxkIG9iamR1bXAubyBmcm9tIG9iamR1bXAuYyBhbmQKCXVzaW5nIE9CSkRVTVBfREVGUy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoJKiBjb25maWd1cmUuaW46IERlZmluZSBPQkpEVU1QX0RFRlMuICBEZWZhdWx0IHRvIGVtcHR5LgoJKGFybSwgeHNjYWxlLCBkMTB2KTogRm9yIHRoZXNlIHRhcmdldHMgZGVmaW5lIE9CSkRVTVBfREVGUyB0bwoJLURESVNBU1NFTUJMRVJfTkVFRFNfUkVMT0NTLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoJKiBvYmpkdW1wLmMgKGRpc2Fzc2VtYmxlX2J5dGVzKTogSWYgRElTQVNTRU1CTEVSX05FRURTX1JFTE9DUwoJaXMgZGVmaW5lZCByZWFkIGluIHRoZSByZWxvY3MgZXZlbiBpZiBkdW1wX3JlbG9jX2luZm8gaXMKCWZhbHNlLgoKMjAwMS0wMS0wNyAgUGhpbGlwIEJsdW5kZWxsICA8cGhpbGJAZ251Lm9yZz4KCgkqIGJpbnV0aWxzLnRleGkgKEJ1ZyBSZXBvcnRpbmcpOiBSZXBsYWNlIGBidWctZ251LXV0aWxzJyB3aXRoCglgYnVnLWJpbnV0aWxzJy4KCSogUkVBRE1FOiBMaWtld2lzZS4KCjIwMDAtMTItMTkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBkbGx0b29sLmM6IEFkZCBtaXNzaW5nIHN1cHBvcnQgZm9yIGFybS1lcG9jLXBlLgoJKiBjb25maWd1cmUuaW46IEFkZCBtaXNzaW5nIHN1cHBvcnQgZm9yIGFybS1lcG9jLXBlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAwLTEyLTE1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogTUFJTlRBSU5FUlM6IEFkZCBEaWVnbyBOb3ZpbGxvIGFzIGEgbWFpbnRhaW5lciBmb3IgdGhlIEludGVsCglNb2RlIHBhcnRzIG9mIHRoZSB4ODYgcG9ydC4KCjIwMDAtMTItMDQgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIHJlYWRlbGYuYyAoZ3Vlc3NfaXNfcmVsYSk6IEFkZCBFTV9YODZfNjQuCgkoZHVtcF9yZWxvY2F0aW9ucyk6IEFkZCBFTV9YODZfNjQuCgkoZ2V0X21hY2hpbmVfbmFtZSk6IEFkZCBFTV9YODZfNjQuCglJbmNsdWRlICJlbGYveDg2LTY0LmgiLgoKMjAwMC0xMi0xMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYzogRml4IGZvcm1hdHRpbmcuCgoyMDAwLTEyLTExICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiBNQUlOVEFJTkVSUzogQWRkIG15c2VsZiBhbmQgQW5kcmVhcyBKYWVnZXIgYXMgeDg2XzY0IG1haW50YWluZXIuCgoyMDAwLTEyLTA3ICBBbmRyZXcgSGFsZXkgIDxhcGhAcmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYyAoZGlzcGxheV9kZWJ1Z19mcmFtZXMpOiBPbmx5IGRpc3BsYXkgY29sdW1ucyB0aGF0IGFyZQoJcmVmZXJlbmNlZCBieSB0aGUgZnJhbWUgZGVidWcgaW5mby4KCjIwMDAtMTItMDUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBNQUlOVEFJTkVSUzogQWRkIEphc29uIE1lcnJpbGwgYXMgRFdBUkYyIG1haW50YWluZXIuCgoyMDAwLTEyLTA0ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYyAocHJvY2Vzc19zZWN0aW9uX2hlYWRlcnMpOiBIYW5kbGUgbGlua29uY2Uud2kgc2VjdGlvbnMuCgkoZGlzcGxheV9kZWJ1Z19zZWN0aW9uKTogTGlrZXdpc2UuCgkoZGlzcGxheV9kZWJ1Z19pbmZvKTogRGlzcGxheSBDVSBoZWFkZXIgYmVmb3JlIGJhaWxpbmcuCgoyMDAwLTEyLTAxICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAc2lieXRlLmNvbT4KCgkqIHJlYWRlbGYuYyAoZ2V0X21hY2hpbmVfZmxhZ3MpOiBSZWNvZ25pemUgTUlQUzMyIElTQSBpbgoJRUZfTUlQU19BUkNILiAgUmVwbGFjZSB1c2Ugb2YgRV9NSVBTX01BQ0hfTUlQUzMyIHdpdGgKCUVfTUlQU19NQUNIX01JUFMzMl80SyBhbmQgYWRqdXN0IHByaW50ZWQgQ1BVIG5hbWUgc2ltaWxhcmx5LgoKCSogcmVhZGVsZi5jIChnZXRfbWFjaGluZV9mbGFncyk6IEFkZCBjYXNlcyBmb3IgRV9NSVBTX0FSQ0hfNSwKCWFuZCBFX01JUFNfQVJDSF82NC4KCgkqIHJlYWRlbGYuYyAoZ2V0X21hY2hpbmVfZmxhZ3MpOiBBZGQgY2FzZSBmb3IKCUVfTUlQU19NQUNIX1NCMS4KCjIwMDAtMTEtMzAgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogcmVhZGVsZi5jIChmcmFtZV9kaXNwbGF5X3Jvdyk6IE91dHB1dCAncycgZm9yIERXX0NGQV9zYW1lX3ZhbHVlLgoKMjAwMC0xMS0yOCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogTUFJTlRBSU5FUlM6IEFkZCBKgfZybiBSZW5uZWNrZSBhbmQgc2VsZiBhcyBTSCBtYWludGFpbmVycy4KCUNoYW5nZSBzb3VyY2V3YXJlLmN5Z251cy5jb20gdG8gc291cmNlcy5yZWRoYXQuY29tLgoJRml4IHR5cG8gZm9yICJhbW9uZ3N0Ii4KCjIwMDAtMTEtMjggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBzdHJpcC4xIChDT1BZSU5HKTogTWVudGlvbiB0aGF0IHRoZSBHTlUgRnJlZSBEb2N1bWVudGF0aW9uCglMaWNlbnNlIGlzIHByZXNlbnQgaW4gdGhlIHNvdXJjZXMsIGJ1dCBub3QgdGhlIG91dHB1dCwgYW5kCglhbHNvIGF2YWlsYWJsZSBmcm9tIHRoZSBHTlUgd2Vic2l0ZS4KCShHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UpOiBDb21tZW50IG91dCB0aGlzIHNlY3Rpb24uCgkqIHN0cmluZ3MuMTogRGl0dG8uCgkqIHNpemUuMTogRGl0dG8uCgkqIHJhbmxpYi4xOiBEaXR0by4KCSogb2JqZHVtcC4xOiBEaXR0by4KCSogb2JqY29weS4xOiBEaXR0by4KCSogbm0uMTogRGl0dG8uCgkqIG5sbWNvbnYuMTogRGl0dG8uCgkqIGFyLjE6IERpdHRvLgoJKiBhZGRyMmxpbmUuMTogRGl0dG8uCgoyMDAwLTExLTI3ICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYyAodXNhZ2UpOiBBZGQgLXdmICgtLWRlYnVnLWR1bXA9ZnJhbWVzKSBvcHRpb24uCgkocGFyc2VfYXJncyk6IFN1cHBvcnQgLXdmIG9wdGlvbi4KCShwcm9jZXNzX3NlY3Rpb25faGVhZGVycyk6IERpdHRvLgoJKGRlYnVnX2Rpc3BsYXlzKTogRGl0dG8uCgkoZGlzcGxheV9kZWJ1Z19mcmFtZXMpOiBOZXcsIGR1bXAgKl9mcmFtZSBzZWN0aW9ucy4KCShmcmFtZV9uZWVkX3NwYWNlKTogU3VwcG9ydCBmb3IgYWJvdmUuCgkoZnJhbWVfZGlzcGxheV9yb3cpOiBEaXR0by4KCSogYmludXRpbHMudGV4aTogRG9jdW1lbnQgaXQuCgoyMDAwLTExLTI0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogTkVXUzogQW5ub3VuY2Ugc3VwcG9ydCBmb3IgdjV0LCB2NXRlIGFuZCBYU2NhbGUuCgoyMDAwLTExLTIyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChnZXRfbWFjaGluZV9uYW1lKTogQWRkIEVNX0pBVkVMSU4sIEVNX0ZJUkVQQVRILAoJRU1fWlNQLCBFTV9NTUlYLCBFTV9IVUFOWSwgRU1fUFJJU00uCgkoZ2V0X3NlY3Rpb25fdHlwZV9uYW1lKTogQWRkIFNIVF9HUk9VUCBhbmQgU0hUX1NZTVRBQl9TSE5EWC4KCShnZXRfZWxmX3NlY3Rpb25fZmxhZ3M6IEFkZCBTSEZfR1JPVVAuCgkocHJvY2Vzc19zZWN0aW9uX2hlYWRlcnMpOiBBZGp1c3Qgb3V0cHV0IGZvciAzMi1iaXQgYmluYXJpZXMKCXRvIGxvb2sgbmljZSBvbiBhbiA4MCBjb2x1bW4gdGVybWluYWwuCgoyMDAwLTExLTIwICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiByZWFkZWxmLmMgKGdldF9vc2FiaV9uYW1lKTogQ2hhbmdlIEVMRk9TQUJJX01PTlRFUkVZIHRvCglFTEZPU0FCSV9BSVguCgoyMDAwLTExLTE3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChkaXNwbGF5X2RlYnVnX2xpbmVzKTogQWRqdXN0IGxhc3QgY2hhbmdlIHRvCgl1c2Ugc2l6ZW9mIChleHRlcm5hbC0+bGlfbGVuZ3RoKS4KCjIwMDAtMTEtMTcgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKGRpc3BsYXlfZGVidWdfbGluZXMpOiBGaXggc2VjdGlvbiBsZW5ndGggY2hlY2sKCWFuZCBlbmRfb2Zfc2VxdWVuY2UgY29tcHV0YXRpb24uCgoyMDAwLTExLTA2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogYmludXRpbHMudGV4aTogQWRkIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZS4KCSogb2JqY29weS4xOiBBZGQgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLgoJKiBvYmpkdW1wLjE6IEFkZCBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UuCgkqIGFkZHIybGluZS4xOiBBZGQgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLgoJKiBhci4xOiBBZGQgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLgoJKiBubG1jb252LjE6IEFkZCBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UuCgkqIG5tLjE6IEFkZCBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UuCgkqIHJhbmxpYi4xOiBBZGQgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLgoJKiBzaXplLjE6IEFkZCBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UuCgkqIHN0cmluZ3MuMTogQWRkIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZS4KCSogc3RyaXAuMTogQWRkIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZS4KCjIwMDAtMTAtMDYgIEx1Y2lhbm8gR2VtbWUgPGlzaGl0YXdhQHlhaG9vLmNvbT4KCgkqIG9iamNvcHkuYyAoLS1zcmVjLWxlbj1ubik6IE5ldyBwYXJhbWV0ZXIgdG8gc2V0IHRoZQoJbWF4aW11bSBsZW5ndGggb2YgZ2VuZXJhdGVkIFNyZWNvcmRzLgoJKC0tc3JlYy1mb3JjZVMzKTogTmV3IHBhcmFtZXRlciB0aGF0IHJlc3RyaWN0cyB0aGUgZ2VuZXJhdGlvbiBvZgoJU3JlY29yZHMgdG8gdHlwZSBTMyBvbmx5LgoJKiBiaW51dGlscy50ZXhpOiBEb2N1bWVudCBuZXcgY29tbWFuZCBsaW5lIHN3aXRjaGVzLgoJKiBvYmpjb3B5LjE6IERvY3VlbW50IHRoZSBuZXcgY29tbWFuZCBsaW5lIHN3aXRjaGVzLgoJKiBORVdTOiBBbm5vdW5jZSB0aGUgZXhpc3RlbmNlIG9mIHRoZSBuZXcgY29tbWFuZCBsaW5lIHN3aXRjaGVzLgoKMjAwMC0xMC0zMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIE1BSU5UQUlORVJTOiBBZGQgSmltIFdpbHNvbiBhcyB0aGUgbWFpbnRhaW5lciBmb3IgdGhlIElBNjQKCWNvZGUuICBBZGQgRXJpYyBDaHJpc29waGVyIGFzIG1haW50YWluZXIgb2YgTU4xMDMwMCBwb3J0LgoKMjAwMC0xMC0xMiAgUm9nZXIgU2F5bGUgIDxyb2dlckBtZXRhcGhvcmljcy5jb20+CgoJKiBNYWtlIGNvbW1hIGFmdGVyIHN0cmluZyBhZnRlciBpY29uL2NvbnRyb2wgb3B0aW9uYWwuCgoyMDAwLTA5LTEzICBBbmRlcnMgTm9ybGFuZGVyICA8YW5vcmxhbmRAYWNjLnVtdS5zZT4KCgkqIHJlYWRlbGYuYyAoZ2V0X21hY2hpbmVfZmxhZ3MpOiBBbHNvIHByaW50IEVGX01JUFNfTUFDSCBmaWVsZC4KCgkqIE5FV1M6IE1lbnRpb24gc3VwcG9ydCBmb3IgTUlQUzMyLgoKMjAwMC0wOS0wOCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIE1BSU5UQUlORVJTOiBBZGQgU3RlcGhhbmUgQ2FycmV6IGFzIG1haW50YWluZXIgZm9yIDY4SENbMTF8MTJdLgoKMjAwMC0wOS0wNyAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogY29uZmlndXJlLmluIChBQ19JU0NfUE9TSVgpOiBQdXQgYWZ0ZXIgQUNfQ0FOT05JQ0FMX1NZU1RFTS4KCSogY29uZmlndXJlOiBSZWJ1aWxkLgoKMjAwMC0wOS0wNiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmU6IFJlYnVpbHQgd2l0aCBuZXcgbGlidG9vbC5tNC4KCjIwMDAtMDktMDUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBhY2xvY2FsLm00OiBSZWdlbmVyYXRlLgoJKiBjb25maWcuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDAtMDktMDQgIFRvZGQgVmllcmxpbmcgIDx0dkB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIHN0cmlwLjE6IEZpeCBzdHJheSAnXCcgaW4gLW8gZm9ybWF0dGluZy4KCjIwMDAtMDktMDIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW46IEluY3JlYXNlIHZlcnNpb24gbnVtYmVyIHRvIDIuMTAuOTEuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogYWNsb2NhbC5tNDogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgoJKiBwby9iaW51dGlscy5wb3Q6IFJlZ2VuZXJhdGUuCgoyMDAwLTA4LTMxICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGFjaW5jbHVkZS5tNDogSW5jbHVkZSBsaWJ0b29sIGFuZCBnZXR0ZXh0IG1hY3JvcyBmcm9tIHRoZQoJdG9wIGxldmVsLgoJKiBhY2xvY2FsLm00LCBjb25maWd1cmU6IFJlYnVpbHQuCgoyMDAwLTA4LTMwICBKYW1pZSBHdWluYW4gIDxndWluYW5AYmx1ZWJ1dHRvbi5jb20+CgoJKiByZXNyYy5jIChjbG9zZV9pbnB1dF9zdHJlYW0pOiBEZWxldGUgZXh0cmFuZW91cyBsb2dpYwoKMjAwMC0wOC0yNCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBORVdTOiBNZW50aW9uIHN1cHBvcnQgZm9yIENSSVMuCgoyMDAwLTA4LTIxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogYWRkcjJsaW5lLmM6IENoYW5nZWQgZW1haWwgYWRkcmVzcyBmb3IgVWxyaWNoIExhdXRoZXIuCgoyMDAwLTA4LTE3ICBDaHJpc3RvcGhlciBDLiBDaGltZWxpcyA8Y2hyaXNAZGViaWFuLm9yZz4KCgkqIG9iamR1bXAuYyAoTE9OR0VTVF9BUkNIKTogU2V0IHRvIHNpemVvZigicG93ZXJwYzpjb21tb24iKS4KCjIwMDAtMDgtMTcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKGRpc3BsYXlfZGVidWdfcHVibmFtZXMpOiBPbmx5IGlzc3VlIHdhcm5pbmcKCW1lc3NhZ2Ugb25jZS4gIFRlcm1pbmF0ZSBtZXNzYWdlIHdpdGggYSBuZXcgbGluZS4KCShkaXNwbGF5X2RlYnVnX2FyYW5nZXMpOiBPbmx5IGRpc3BsYXkgdmVyc2lvbiAyIGRlYnVnIGluZm8uCgoyMDAwLTA4LTE0ICBUb2RkIFZpZXJsaW5nIDx0dkB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIG9iamNvcHkuYyAoc3RyaXBfbWFpbik6IFNpbGVudGx5IGFjY2VwdCAtZCBhcyBhbiBhbGlhcyBmb3IgLWcKCWZvciBjb21wYXRhYmlsaXR5IHdpdGggb2xkIEJTRCBzeXN0ZW1zLgoKMjAwMC0wOC0xNCAgSmFzb24gRWNraGFyZHQgIDxqbGVAY3lnbnVzLmNvbT4KCgkqIE5FV1M6IE1lbnRpb24gaTg2MCBzdXBwb3J0LgoKMjAwMC0wOC0xMSAgQ2FybG8gV29vZCA8Y2FybG9AYWxpbm9lLmNvbT4KCgkqIGFkZHIybGluZS5jIChtYWluKTogQWRkIGNvbnN0IHRvIGNoYXIgKi4KCjIwMDAtMDgtMTEgIEdlb2ZmIEtlYXRpbmcgIDxnZW9mZmtAY3lnbnVzLmNvbT4KCgkqIGFyLmMgKG1haW4pOiBEb24ndCBjcmFzaCBpZiBjYWxsZWQgd2l0aCBubyBhcmd1bWVudHMKCW9yIG9ubHkgJy1YMzJfNjQnIGFzIGFuIGFyZ3VtZW50LgoKMjAwMC0wOC0wOCAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiByZXNyYy5jOiB1c2UgImdjYyAteGMiIGluc3RlYWQgb2YgLXhjLWhlYWRlcgoKMjAwMC0wOC0wNSAgSmFzb24gRWNraGFyZHQgIDxqbGVAY3lnbnVzLmNvbT4KCgkqIHJlYWRlbGYuYyAoZWxmL2k4NjAuaCk6IEluY2x1ZGUuCgkoZHVtcF9yZWxvY2F0aW9ucyk6IEFkZCByZWNvZ25pdGlvbiBvZiBpODYwIGFyY2hpdGVjdHVyZS4KCShndWVzc19pc19yZWxhKTogQWRkIHJlY29nbml0aW9uIG9mIGk4NjAgYXJjaGl0ZWN0dXJlLgoKMjAwMC0wOC0wMyAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIE1BSU5UQUlORVJTOiBBZGQgaW5mb3JtYXRpb24gYWJvdXQgQ0dFTiBtYWludGFpbmVycy4KCjIwMDAtMDctMjYgIEdlb2ZmIEtlYXRpbmcgIDxnZW9mZmtAY3lnbnVzLmNvbT4KCgkqIG5tLmMgKG1haW4pOiBJZ25vcmUgJy1YMzJfNjQnIGFzIGFuIG9wdGlvbi4KCSogYXIuYyAobWFpbik6IExpa2V3aXNlLgoJKiBiaW51dGlscy50ZXhpIChubSk6IERvY3VtZW50IG5ldyBvcHRpb24uCgkoYXIpOiBMaWtld2lzZS4KCjIwMDAtMDctMjMgIE1pY2hhZWwgU29rb2xvdiAgPG1zb2tvbG92QGl2YW4uSGFyaGFuLk9SRz4KCgkqIHJkY29mZi5jIChleHRlcm5hbF9jb2ZmX3N5bWJvbF9wKTogSyZSLWlzZS4KCjIwMDAtMDctMjAgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGJpbnV0aWxzLnRleGk6IFB1dCBiYWNrICJAZW5kIHRhYmxlIiBkZWxldGVkIGJ5CglhY2NpZGVudC4KCjIwMDAtMDctMDUgIEtlbm5ldGggQmxvY2sgIDxrcmJsb2NrQGNvbXB1dGVyLm9yZz4KCgkqIG5tLmM6IEFkZCBvcHRpb25hbCBzdHlsZSB0byBkZW1hbmdsZSBzd2l0Y2guCgkqIG9iamR1bXAuYzogQWRkIG9wdGlvbmFsIHN0eWxlIHRvIGRlbWFuZ2xlIHN3aXRjaC4KCSogYWRkcjJsaW5lLmM6IEFkZCBvcHRpb25hbCBzdHlsZSB0byBkZW1hbmdsZSBzd2l0Y2guCgkqIGJpbnV0aWxzLnRleGk6IERvY3VtZW50IG9wdGlvbmFsIHN0eWxlIHRvIGRlbWFuZ2xlCglzd2l0Y2guCgoyMDAwLTA3LTIwICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIE1BSU5UQUlORVJTOiBBZGQgc2VsZiBhcyBDUklTIHBvcnQgbWFpbnRhaW5lci4KCSogcmVhZGVsZi5jOiBJbmNsdWRlIGVsZi9jcmlzLmguCgkoZ3Vlc3NfaXNfcmVsYSk6IEhhbmRsZSBFTV9DUklTLgoJKGR1bXBfcmVsb2NhdGlvbnMpOiBEaXR0by4KCShnZXRfbWFjaGluZV9uYW1lKTogRGl0dG8uCgkqIE1ha2VmaWxlLmFtOiBSZWJ1aWxkIGRlcGVuZGVuY2llcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL2JpbnV0aWxzLnBvdDogUmVnZW5lcmF0ZS4KCjIwMDAtMDctMTkgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIHJlYWRlbGYuYyAoZ2V0X2R5bmFtaWNfdHlwZSk6IENoYW5nZSAiQVVYSUxBUlkiIHRvCgkiQVVYSUxJQVJZIi4KCShwcm9jZXNzX2R5bmFtaWNfc2VnbWVudCk6IFByaW50IG91dCBzdHJpbmdzIGZvciBEVF9DT05GSUcsCglEVF9ERVBBVURJVCwgRFRfQVVESVQgYW5kIERUX1JVTlBBVEguCgoyMDAwLTA3LTE5ICBNYXJrIEtldHRlbmlzICA8a2V0dGVuaXNAZ251Lm9yZz4KCgkqIG5tLmMgKHVzYWdlKTogQ2hhbmdlIG91dHB1dCBvZiBgbm0gLS1oZWxwJyB0byBpbmNsdWRlIGEKCWRlc2NyaXB0aW9uIG9mIHRoZSBwdXJwb3NlIG9mIHRoZSBwcm9ncmFtIGFuZCBhIGRldGFpbGVkCglkZXNjcmlwdGlvbiBvZiB0aGUgYWNjZXB0ZWQgb3B0aW9ucy4KCjIwMDAtMDctMTkgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIHJlYWRlbGYuYyAocHJvY2Vzc19keW5hbWljX3NlZ21lbnQpOiBDaGFuZ2UgREZfMV9OT0RFUExJQgoJdG8gREZfMV9OT0RFRkxJQi4KCjIwMDAtMDctMTkgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIHJlYWRlbGYuYyAoZ2V0X2R5bmFtaWNfdHlwZSk6IEZpeCBEVF9DSEVDS1NVTS4KCjIwMDAtMDctMTkgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIHJlYWRlbGYuYyAoZ2V0X2R5bmFtaWNfdHlwZSk6IENoYW5nZSBEVF9GRUFUVVJFXzEgdG8KCURUX0ZFQVRVUkUuCgkocHJvY2Vzc19keW5hbWljX3NlZ21lbnQpOiBMaWtld2lzZS4KCgkqIHJlYWRlbGYuYyAoZ2V0X2R5bmFtaWNfdHlwZSk6IEhhbmRsZSBEVF9DT05GSUcsIERUX0RFUEFVRElULAoJRFRfQVVESVQsIERUX1BMVFBBRCwgRFRfTU9WRVRBQiBhbmQgRFRfQ0hFQ0tTVU0uCgkocHJvY2Vzc19keW5hbWljX3NlZ21lbnQpOiBIYW5kbGUgRFRGXzFfQ09ORkVYUCwgREZfMV9OT0RFUExJQiwKCURGXzFfTk9EVU1QIGFuZCBERl8xX0NPTkxGQVQuCgoyMDAwLTA3LTE4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogYmludXRpbHMudGV4aSAocmVhZGVsZik6IEZpeCBzcGVsbGluZyB0eXBvLgoKMjAwMC0wNy0xMSAgTWFyayBLZXR0ZW5pcyAgPGtldHRlbmlzQGdudS5vcmc+CgoJKiBvYmpkdW1wLmMgKHVzYWdlKTogTWFrZSBvdXRwdXQgb2YgYG9iamR1bXAgLS1oZWxwJyBtb3JlCgljb25zaXN0ZW50IHdpdGggdGhlIHJlc3Qgb2YgdGhlIEdOVSB3b3JsZC4gIEFkZCBhIGxpbmUgZGVzY3JpYmluZwoJdGhlIHB1cnBvc2Ugb2YgdGhlIHByb2dyYW0uCgoyMDAwLTA3LTEwICBEYXZpZCBIdWdnaW5zLURhaW5lcyAgPGRoZEBsaW51eGNhcmUuY29tPgoKCSogc3RhYnMuYyAocGFyc2Vfc3RhYl9yYW5nZV90eXBlKTogQ2FzdCB0byBwcm9wZXIgdHlwZSB0byBmaXgKCXdhcm5pbmcuCgoyMDAwLTA3LTEwICBSeWFuIEJyYWRldGljaCAgPHJicmFkZXRpY2hAdXN3ZXN0Lm5ldD4KCgkqIHJlYWRlbGYuYyAoZ2V0X2R5bmFtaWNfZGF0YSk6IEFkZCBjYXN0cyBhbmQgdXNlIHVuc2lnbmVkIGNoYXJzCgl0byBmaXggd2FybmluZ3MuCgkocHJvY2Vzc19zeW1ib2xfdGFibGUpOiBEaXR0by4KCShwcm9jZXNTX2V4dGVuZGVkX2xpbmVfb3ApOiBEaXR0by4KCShkaXNwbGF5X2RlYnVnX2xpbmVzKTogRGl0dG8uCgkoZGlzcGxheV9kZWJ1Z19wdWJuYW1lcyk6IERpdHRvLgoJKHJlYWRfYW5kX2Rpc3BsYXlfYXR0cik6IERpdHRvLgoKMjAwMC0wNy0wOSAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIE1BSU5UQUlORVJTOiBBZGQgc2V2ZXJhbCBtb3JlIHBvcnQgc3BlY2lmaWMgbWFpbnRhaW5lcnMuCgoyMDAwLTA3LTA1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogTUFJTlRBSU5FUlM6IEFkZCBibGFua2V0IHdyaXRlIHByaXZzIGZvciBNaWNoYWVsIE1laXNzbmVyLgoKMjAwMC0wNi0wNSAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBNQUlOVEFJTkVSUzogTmV3LgoKMjAwMC0wNy0wMSAgRXJpYyBGaWZlciAgPEVGaWZlckBzYW53YWludC5jb20+CgoJKiBkbGx3cmFwLmM6IENoYW5nZWQgbWlzdGFrZW4gZHluX3N0cmluZ19hcHBlbmQoKSBjYWxscwoJdG8gZHluX3N0cmluZ19hcHBlbmRfY3N0cigpLgoKMjAwMC0wNy0wMSAgQWxleGFuZGVyIEFnYW5pY2hldiA8QUFnYW5pY2hldkBoeXBlcmNvbS5jb20+CgoJKiBzdGFicy5jIChwYXJzZV9zdGFiX3R5cGUpOiBEaXZpZGUgc2l6ZSBpbiBiaXRzIGJ5IDggYXMgYmludXRpbHMKCXN0cnVjdCBkZWJ1Z190eXBlIHN0b3JlcyBzaXplIGluIGJ5dGVzLgoKMjAwMC0wNy0wMSAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIE1ha2VmaWxlLmFtIChERVApOiBGaXggMjAwMC0wNi0yMi4gIGdyZXAgYWZ0ZXIgcnVubmluZyBkZXAuc2VkCgkoQ0xFQU5GSUxFUyk6IEFkZCBERVBBLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDAtMDYtMjcgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBhci5jOiBSZXZlcnQgaW5jb3JyZWN0IDIwMDAtMDYtMjUgcGF0Y2guCgkqIGJ1Y29tbS5jOiBMaWtld2lzZS4KCjIwMDAtMDYtMjUgTWFyayBFbGJyZWNodCA8c25vd2JhbGwzQGJpZ2Zvb3QuY29tPgoKCSogcmRjb2ZmIChwYXJzZV9jb2ZmX3N5bWJvbCk6IFRyZWF0IEdOVSB3ZWFrIHN5bWJvbHMgYXMgZXh0ZXJuYWwuCgkoZXh0ZXJuYWxfY29mZl9zeW1ib2xfcCk6IE5ldyBmdW5jdGlvbi4KCShwYXJzZV9jb2ZmKTogVXNlIGl0LgoKMjAwMC0wNi0yNSAgQWxleGFuZGVyIEFnYW5pY2hldiA8QUFnYW5pY2hldkBoeXBlcmNvbS5jb20+CgoJKiBhci5jIChub3JtYWxpemUpOiBBZHZhbmNlIHBhc3QgYm90aCBjaGFyYWN0ZXJzIGluIGEgRE9TIGJhc2VkCgk8bGV0dGVyPjogZmlsZXBhdGggcHJlZml4LgoJKG1haW4pOiBMaWtld2lzZS4KCSogYnVjb21tLmMgKG1ha2VfdGVtcG5hbWUpOiBMaWtld2lzZS4KCjIwMDAtMDYtMjQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBvYmpkdW1wLmMgKHVzYWdlKTogRml4IGRlc2NyaXB0aW9uIG9mIC0tc3RhYnMgc3dpdGNoLgoKMjAwMC0wNi0yMiAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIE1ha2VmaWxlLmFtIChERVApOiBncmVwIGZvciBsZWFkaW5nIGAvJyBpbiBERVAxLCBhbmQgZmFpbCBpZiB3ZQoJZmluZCBvbmUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMC0wNi0yMCAgQWxleGFuZGVyIEFnYW5pY2hldiA8QUFnYW5pY2hldkBoeXBlcmNvbS5jb20+CgoJKiBhci5jIChub3JtYWxpemUpOiBDb3JyZWN0IHBvaW50ZXIgY29tcGFyaXNvbiB3aGVuIGNoZWNraW5nIGZvcgoJYmFja3NsYXNoZXMuCgkobWFpbik6IExpa2V3aXNlLgoJKiBidWNvbW0uYyAobWFrZV90ZW1wbmFtZSk6IExpa2V3aXNlLgoKCSogaWVlZS5jIChpZWVlX3N0YXJ0X2NvbXBpbGF0aW9uX3VuaXQpOiBDb3JyZWN0IHBvaW50ZXIgY29tcGFyaXNvbgoJYW5kIHNlYXJjaCBmb3IgYmFja3NsYXNoZXMgaW4gdGhlIG9yaWdpbmFsIHBhdGhuYW1lLgoJKGllZWVfYWRkX2JiMTEpOiBMaWtld2lzZS4KCjIwMDAtMDYtMTggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBhci5jIChwcmludF9jb250ZW50cyk6IEltcHJvdmUgdmVyYm9zZSBtZXNzYWdlLgoKMjAwMC0wNi0xNSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZHluLXN0cmluZy5jOiBSZW1vdmVkLiBOb3QgbmVlZGVkIHdpdGggZHluLXN0cmluZy5jIGluCglsaWJpYmVydHkuCgkqIGR5bi1zdHJpbmcuaDogTGlrZXdpc2UuCgoJKiBNYWtlZmlsZS5hbTogUmVtb3ZlIHJlZmVyZW5jZXMgdG8gZHluLXN0cmluZy5jIGFuZAoJZHluLXN0cmluZy5oLiBSZWJ1aWxkIGRlcGVuZGVuY3kuCgkqIE1ha2VmaWxlLmluOiBSZWJ1aWxkLgoKMjAwMC0wNi0xNSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogYmludXRpbHMudGV4aTogUHV0IGEgd2FybmluZyBvbiBjb3B5aW5nIHJlbG9jYXRhYmxlIG9iamVjdAoJZmlsZXMgYmV0d2VlbiB0d28gZGlmZmVyZW50IGZvcm1hdHMuCgoyMDAwLTA2LTEzICBESiBEZWxvcmllICA8ZGpAY3lnbnVzLmNvbT4KCgkqIHJjcGFyc2UueSAoY29udHJvbCk6IElDT04gY29udHJvbHMgdGFrZSBhbiBpZCBhcyB0aGUgZmlyc3QKCXBhcmFtZXRlciwgbm90IGFuIG9wdGlvbmFsIHN0cmluZy4gIEFsc28sIGNhbGwgbmV3IGNvbnZlbmllbmNlCglmdW5jdGlvbiB0aGF0IHRha2VzIHJlc19pZCdzLgoJKiByZXNyYy5jIChkZWZpbmVfY29udHJvbCk6IG1pc3NpbmcgdGV4dCBtZWFucyB6ZXJvLWxlbmd0aCBzdHJpbmcsCglub3QgemVybyBJRC4KCShkZWZpbmVfaWNvbl9jb250cm9sKTogTmV3LgoJKiB3aW5kcmVzLmg6IGRlY2xhcmUgZGVmaW5lX2ljb25fY29udHJvbC4KCjIwMDAtMDYtMTMgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDAtMDYtMDggIERhdmlkIE8nQnJpZW4gIDxvYnJpZW5ARnJlZUJTRC5vcmc+CgoJKiBjb25maWd1cmUuaW4gKFZFUlNJT04pOiBVcGRhdGUgdG8gc2hvdyB0aGlzIGlzIHRoZSBDVlMgbWFpbmxpbmUuCgoyMDAwLTA2LTAyICBEYXZpZCBPJ0JyaWVuICA8b2JyaWVuQEZyZWVCU0Qub3JnPgoKCSogc3RyaW5ncy5jIChpc2dyYXBoaWMpOiBJbnRlcnByZXQgPFRBQj4gYXMgYSBwcmludGFibGUgY2hhcmFjdGVyLAoJYW5hbG9nb3VzIHRvIDxTUEFDRT4uCgoyMDAwLTA1LTMwICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogb2JqZHVtcC5jIChkaXNwbGF5X3RhcmdldF9saXN0KTogVXNlIGJmZF9jbG9zZV9hbGxfZG9uZSwgbm90CgliZmRfY2xvc2UgdG8gZml4IGNyYXNoIGNhdXNlZCBieSAyMDAwLTA1LTI0IGNoYW5nZS4KCjIwMDAtMDUtMjUgIERKIERlbG9yaWUgIDxkakBjeWdudXMuY29tPgoKCSogcmVzcmMuYyAoY2xvc2VfaW5wdXRfc3RyZWFtKTogemVybyBvdXQgY3BwX3BpcGUgYWZ0ZXIgY2xvc2luZyBpdC4KCjIwMDAtMDUtMjYgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBNYWtlZmlsZS5hbTogVXBkYXRlIGRlcGVuZGVuY2llcyB3aXRoICJtYWtlIGRlcC1hbSIKCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAwLTA1LTI2ICBFbGkgWmFyZXRza2lpICA8ZWxpekBpcy5lbHRhLmNvLmlsPgoKCSogYXIuYzogSW5jbHVkZSBmaWxlbmFtZXMuaC4KCShub3JtYWxpemUpIFtIQVZFX0RPU19CQVNFRF9GSUxFX1NZU1RFTV06IFN1cHBvcnQgYmFja3NsYXNoZXMKCWFuZCBkcml2ZSBsZXR0ZXJzIGluIGZpbGUgbmFtZXMuCgkobWFpbik6IFN1cHBvcnQgYmFja3NsYXNoZXMgYW5kIGRyaXZlIGxldHRlcnMgaW4gYXJndlswXS4gIERyb3AKCXRoZSAuZXhlIHN1ZmZpeCwgaWYgYW55LCBpbiBhcmd2WzBdIGlmIGlzX3JhbmxpYiBpcyBuZWdhdGl2ZS4gIFVzZQoJRklMRU5BTUVfQ01QIGluc3RlYWQgb2Ygc3RyY21wIHRvIGNvbXBhcmUgZmlsZSBuYW1lcy4KCShvcGVuX2luYXJjaCkgW19fR08zMl9fXTogRG9uJ3QgaWZkZWYgZXJybm8gIT0gRU5PRU5UIHRlc3QgZm9yCglESkdQUCB2Mi4KCShkb19xdWlja19hcHBlbmQpIFtfX0dPMzJfX106IERpdHRvLgoJKGdldF9wb3NfYmZkLCBkZWxldGVfbWVtYmVycywgbW92ZV9tZW1iZXJzLCByZXBsYWNlX21lbWJlcnMpOgoJQ29tcGFyZSBmaWxlIG5hbWVzIHdpdGggRklMRU5BTUVfQ01QLgoKCSogYnVjb21tLmM6IEluY2x1ZGUgZmlsZW5hbWVzLmguCgkobWFrZV90ZW1wbmFtZSkgW0hBVkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNXTogU3VwcG9ydCBtaXhlZAoJZm9yd2FyZC9iYWNrd2FyZCBzbGFzaGVzIGFuZCBkcml2ZSBsZXR0ZXJzIGluIGZpbGUgbmFtZXMuCgoJKiBpZWVlLmMgKGllZWVfc3RhcnRfY29tcGlsYXRpb25fdW5pdCwgaWVlZV9hZGRfYmIxMSk6IFN1cHBvcnQKCW1peGVkIGZvcndhcmQvYmFja3dhcmQgc2xhc2hlcyBhbmQgZHJpdmUgbGV0dGVycyBpbiBmaWxlIG5hbWVzLgoKCSogc3RyaW5ncy5jIChPX0JJTkFSWSwgc2V0bW9kZSwgU0VUX0JJTkFSWSk6IERlZmluZS4KCShtYWluKSBbU0VUX0JJTkFSWV06IFVzZSBTRVRfQklOQVJZIHRvIHN3aXRjaCBzdGRpbiBpbnRvIGJpbmFyeQoJbW9kZS4KCgkqIG9iamNvcHkuYzogSW5jbHVkZSBmaWxlbmFtZXMuaC4KCShtYWluKSBbSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU1dOiBEcm9wIHRoZSAuZXhlIHN1ZmZpeAoJYmVmb3JlIGNvbXBhcmluZyB0byAic3RyaXAiLgoJVXNlIEZJTEVOQU1FX0NNUCB0byBjb21wYXJlIGZpbGUgbmFtZXMuCgoJKiBhcnN1cC5jOiBJbmNsdWRlIGZpbGVuYW1lcy5oLgoJKG1hcF9vdmVyX2xpc3QsIGFyX2RlbGV0ZSwgYXJfcmVwbGFjZSwgYXJfZXh0cmFjdCk6IFVzZQoJRklMRU5BTUVfQ01QIHRvIGNvbXBhcmUgZmlsZSBuYW1lcy4KCShhcl9vcGVuKTogUHJlcGVuZCAidG1wLSIgaW5zdGVhZCBvZiBhcHBlbmRpbmcgIi10bXAiLCB0byBjcmVhdGUKCXRoZSB0ZW1wb3JhcnkgZmlsZSBuYW1lLgoKCSogY29uZmlndXJlLmluOiBDaGVjayBmb3Igc2V0bW9kZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMC0wNS0yNCAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIG9iamR1bXAuYyAoZGlzcGxheV90YXJnZXRfbGlzdCk6IENsb3NlIHRoZSBiZmQuCgkoZGlzcGxheV9pbmZvX3RhYmxlKTogTGlrZXdpc2UuCgoyMDAwLTA1LTE0ICBILkouIEx1ICAoaGpsQGdudS5vcmcpCgoJKiBvYmpjb3B5LmMgKGZpbHRlcl9zeW1ib2xzKTogRG9uJ3Qgc3RyaXAgZ2xvYmFsIHN5bWJvbHMgaW4KCXJlbG9jYXRhYmxlIG9iamVjdCBmaWxlcy4KCjIwMDAtMDUtMTQgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBzaXplLmMgKHVzYWdlKTogQXNzb2NpYXRlIHNob3J0IG9wdGlvbnMgd2l0aCBjb3JyZXNwb25kaW5nIGxvbmcKCW9wdGlvbiB0byBnaXZlIGEgY2x1ZSBhcyB0byB0aGVpciBmdW5jdGlvbi4KCjIwMDAtMDUtMTQgIFBoaWxpcHBlIERlIE11eXRlciAgPHBoZG1AbWFjcWVsLmJlPgoKCSogc2l6ZS5jIChtYWluKTogQWNjZXB0IGFuZCBpZ25vcmUgYC1mJyBvcHRpb24uCgoyMDAwLTA1LTEzICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogYnVjb21tLmggKGdldHRleHQsIGRnZXR0ZXh0LCBkY2dldHRleHQsIHRleHRkb21haW4sCgliaW5kdGV4dGRvbWFpbik6IFJlcGxhY2UgZGVmaW5lcyB3aXRoIHRob3NlIGZyb20gaW50bC9saWJnZXR0ZXh0LmgKCXRvIHF1aWV0ZW4gZ2NjIHdhcm5pbmdzLgoKMjAwMC0wNS0xMiAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogbmxtY29udi5jICh0ZW1wX2ZpbGVuYW1lKTogUmVtb3ZlZC4KCgkqIG5sbWNvbnYuYyAobGlua19pbnB1dHMpOiBVc2UgbWFrZV90ZW1wX2ZpbGUgKCkgaW5zdGVhZCBvZgoJY2hvb3NlX3RlbXBfYmFzZSAoKS4KCSogb2JqZHVtcC5jIChkaXNwbGF5X3RhcmdldF9saXN0KTogTGlrZXdpc2UuCgkoZGlzcGxheV9pbmZvX3RhYmxlKTogTGlrZXdpc2UuCgoyMDAwLTA1LTA4ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogb2JqY29weS5jIChzZXR1cF9zZWN0aW9uKTogQWRkIGNvbnN0IGFuZCBnZXR0ZXh0IGNhbGxzIGZvciBlcnIuCgoyMDAwLTA1LTAyICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiByZWFkZWxmLmMgKGdldF9vc2FiaV9uYW1lKTogSGFuZGxlIEVMRk9TQUJJX05PTkUgaW5zdGVhZCBvZgoJRUxGT1NBQklfU1lTVi4gQWxzbyBoYW5kbGUgRUxGT1NBQklfTkVUQlNELCBFTEZPU0FCSV9IVVJELAoJRUxGT1NBQklfU09MQVJJUywgRUxGT1NBQklfTU9OVEVSRVksIEVMRk9TQUJJX0lSSVgsCglFTEZPU0FCSV9GUkVFQlNELCBFTEZPU0FCSV9UUlU2NCwgRUxGT1NBQklfTU9ERVNUTwoJYW5kIEVMRk9TQUJJX09QRU5CU0QuCgoyMDAwLTA1LTAyICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIGNvZmZncm9rLmM6IEFkZCBBVFRSSUJVVEVfVU5VU0VEIGFzIGFwcHJvcHJpYXRlLgoJKiBzcmNvbnYuYzogTGlrZXdpc2UuCgkqIHN5c2R1bXAuYzogTGlrZXdpc2UuCgoyMDAwLTA0LTIzICBEZW5pcyBDaGVydHlrb3YgIDxkZW5pc2NAb3ZlcnRhLnJ1PgoKCSogcmVhZGVsZi5jIChndWVzc19pc19yZWxhKTogQVZSIHVzZXMgUkVMQSByZWxvY2F0aW9ucy4KCShnZXRfbWFjaGluZV9uYW1lKTogbWFjaGluZSBuYW1lIGZvciBFTV9BVlIgYWRkZWQuCgoyMDAwLTA0LTIxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEBjeWdudXMuY29tPgoJICAgIERhdmlkIE1vc2JlcmdlciAgPGRhdmlkbUBocGwuaHAuY29tPgoKCSogTWFrZWZpbGUuYW0gKHJlYWRlbGYubyk6IEFkZCBlbGYvaWE2NC5oLgoJKiBNYWtlZmlsZS5pbjogUmVidWlsZC4KCSogcmVhZGVsZi5jOiBJbmNsdWRlIGVsZi9pYTY0LmguCgkoZ3Vlc3NfaXNfcmVsYSwgZHVtcF9yZWxvY2F0aW9ucyk6IEhhbmRsZSBFTV9JQV82NC4KCjIwMDAtMDQtMTcgIFRpbW90aHkgV2FsbCAgPHR3YWxsQGN5Z251cy5jb20+CgoJKiBvYmpkdW1wLmMgKGRpc2Fzc2VtYmxlX2RhdGEpOiBTZXQgb2N0ZXRzIHBlciBieXRlICphZnRlcioKCXJlc29sdmluZyBhcmNoL21hY2ggZm9yIGJpbmFyeSBmaWxlcy4KCjIwMDAtMDQtMTQgIE1pY2hhZWwgU29rb2xvdiAgPG1zb2tvbG92QGl2YW4uSGFyaGFuLk9SRz4KCgkqIGFybGV4Lmw6IEFkZCBkaXJlY3RpdmVzIHRvIGluY3JlYXNlIGxleCBidWZmZXIgc2l6ZS4KCgkqIG9iamR1bXAuYywgcmVhZGVsZi5jOiBEb24ndCBpbmNsdWRlIHN0cmFyZy5oIG9yIHZhcmFyZ3MuaC4gVGhleSBhcmUKCWFscmVhZHkgaW5jbHVkZWQgYnkgYnVjb21tLmguCgoyMDAwLTA0LTEwICBQaGlsaXBwZSBEZSBNdXl0ZXIgIDxwaGRtQG1hY3FlbC5iZT4KCgkqIHJlYWRlbGYuYyAoZHluYW1pY19zZWdtZW50X21pcHNfdmFsKTogQ2FsbCBgc3ByaW50ZicsIG5vdAoJYHN0cmZ0aW1lJyBzaW5jZSBzdHJmdGltZSBpcyBub3QgYXZhaWxhYmxlIG9uIGFsbCBzeXN0ZW1zLgoJKHByb2Nlc3NfbWlwc19zcGVjaWZpYyk6IERpdHRvLgoKMjAwMC0wNC0wNyAgQW5kcmV3IENhZ25leSAgPGNhZ25leUBiMS5jeWdudXMuY29tPgoKCSogY29uZmlndXJlLmluIChXQVJOX0NGTEFHUyk6IFNldCB0byAtVyAtV2FsbCBieSBkZWZhdWx0LiAgQWRkCgktLWVuYWJsZS1idWlsZC13YXJuaW5ncyBvcHRpb24uCgkqIE1ha2VmaWxlLmFtIChBTV9DRkxBR1MsIFdBUk5fQ0ZMQUdTKTogQWRkIGRlZmluaXRpb25zLgoJKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlOiBSZS1nZW5lcmF0ZS4KCjIwMDAtMDQtMDYgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBhZGRyMmxpbmUuYzogVXBkYXRlIGNvcHlyaWdodC4KCSogb2JqY29weS4xOiBMaWtld2lzZSwgYW5kIHRpdGxlLgoJKiBzdHJpbmdzLjE6IExpa2V3aXNlLgoKCSogdmVyc2lvbi5jIChwcmludF92ZXJzaW9uKTogQWRkIDIwMDAuCgoJKiByZGRiZy5jIChyZWFkX3NlY3Rpb25fc3RhYnNfZGVidWdnaW5nX2luZm8pOiBEb24ndCB1c2UKCWJmZF9zaXplX3R5cGUgZm9yIHN0cnggdG8gYXZvaWQgcHJpbnRmIHByb2JsZW1zIGlmIEJGRDY0LgoKCSogYnVjb21tLmM6IChyZXBvcnQpOiBSZW1vdmUgYHN0YXRpYycuCglNb3ZlIGluY2x1c2lvbiBvZiBzdGRhcmcuaC92YXJhcmcuaCBmcm9tIGhlcmUuCgkqIGJ1Y29tbS5oOiBUbyBoZXJlLgoJKENPTlNUKTogQ2hhbmdlIGFsbCBvY2N1cmVuY2VzIHRvIGNvbnN0LgoJKHJlcG9ydCk6IERlY2xhcmUgaXQuCgkoYmZkX2ZhdGFsKTogQWRkIEFUVFJJQlVURV9OT1JFVFVSTi4KCShmYXRhbCk6IEFkZCBBVFRSSUJVVEVfUFJJTlRGXzEgQVRUUklCVVRFX05PUkVUVVJOLgoJKG5vbl9mYXRhbCk6IEFkZCBBVFRSSUJVVEVfUFJJTlRGXzEuCgoJKiBhci5jIChtYWluKTogVXNlIGZhdGFsIG9yIG5vbl9mYXRhbCBpbnN0ZWFkIG9mIGZwcmludGYuCglDb3JyZWN0IGEgdHlwbyBpbiBhbiBlcnJvciBtZXNzYWdlLgoJKGRvX3F1aWNrX2FwcGVuZCk6IFVzZSBub25fZmF0YWwgaW5zdGVhZCBvZiBmcHJpbnRmLgoJKG1vdmVfbWVtYmVycyk6IFVzZSBmYXRhbCBpbnN0ZWFkIG9mIGZwcmludGYsIGV4aXQuCgkqIGNvZmZkdW1wLmMgKG1haW4pOiBTYW1lIGhlcmUuCgoJKiBkbGx0b29sLmMgKGRpc3BsYXkpOiBEZWxldGUuCgkod2Fybik6IERlbGV0ZS4KCShpbmZvcm0pOiBVc2UgYHJlcG9ydCcgaW5zdGVhZCBvZiBgZGlzcGxheScuCgkocnZhYWZ0ZXIpOiBSZW1vdmUgdHJhaWxpbmcgXG4gZnJvbSBmYXRhbCBlcnJvciBtc2cuCgkocnZhYmVmb3JlKTogRGl0dG8uCgkoYXNtX3ByZWZpeCk6IERpdHRvLgoJKHl5ZXJyb3IpOiBSZXBsYWNlIGB3YXJuJyB3aXRoIGBub25fZmF0YWwnLCBhbmQgcmVtb3ZlIFxuLgoJKGRlZl9uYW1lKTogTGlrZXdpc2UuCgkocnVuKTogTGlrZXdpc2UuCgkoc2Nhbl9hbGxfc3ltYm9scyk6IExpa2V3aXNlLgoJKGdlbl9saWJfZmlsZSk6IExpa2V3aXNlLgoJKGRlZl9saWJyYXJ5KTogTGlrZXdpc2UuICBSZW1vdmUgZXh0cmEgcHJvZ3JhbV9uYW1lIHRvby4KCShydW4pOiBSZW1vdmUgXG4gZnJvbSBpbmZvcm0gc3RyaW5ncy4KCShzY2FuX2RyZWN0dmVfc3ltYm9scyk6IExpa2V3aXNlLgoJKGFkZF9leGNsdWRlcyk6IExpa2V3aXNlLgoJKHNjYW5fb3Blbl9vYmpfZmlsZSk6IExpa2V3aXNlLgoJKGdlbl9leHBfZmlsZSk6IExpa2V3aXNlLgoJKGdlbl9saWJfZmlsZSk6IExpa2V3aXNlLgoJKHByb2Nlc3NfZHVwbGljYXRlcyk6IExpa2V3aXNlLgoKCSogTWFrZWZpbGUuYW0gKGRsbHdyYXBfU09VUkNFUyk6IEFkZCB2ZXJzaW9uLmMuCgkqIGRsbHdyYXAuYyAocHJvZ3JhbV92ZXJzaW9uKTogRGVsZXRlLgoJKHByaW50X3ZlcnNpb24pOiBEZWxldGUuCgkoZGlzcGxheSk6IEFsd2F5cyBwcmludCB0cmFpbGluZyBcbi4KCSh3YXJuKTogTmV3LgoJKGRlbGV0ZV90ZW1wX2ZpbGVzKTogVXNlIHdhcm4gaW5zdGVhZCBvZiBmcHJpbnRmLiAgVXNlIGdldHRleHQuCgkocnVuKTogSGVyZSB0b28uCgkobWFpbik6IEFuZCBoZXJlLgoJKHVzYWdlKTogZ2V0dGV4dCdpZnkuCgkobG9uZ19vcHRpb25zKTogQWRkIG1pc3NpbmcgaW5pdGlhbGlzZXJzLgoKCSogbmxtY29udi5jIChtYWluKTogVXNlIGZhdGFsL25vbl9mYXRhbCBpbnN0ZWFkIG9mIGZwcmludGYuCgkoc2VsZWN0X291dHB1dF9mb3JtYXQpOiBMaWtld2lzZS4KCShwb3dlcnBjX21hbmdsZV9yZWxvY3MpOiBMaWtld2lzZS4KCShsaW5rX2lucHV0cyk6IExpa2V3aXNlLgoKCSogbm0uYyAoc2V0X3ByaW50X3JhZGl4KTogVXNlIGZhdGFsIGluc3RlYWQgb2YgZnByaW50ZiwgZXhpdC4KCShzZXRfb3V0cHV0X2Zvcm1hdCk6IExpa2V3aXNlLgoJKG1haW4pOiBVc2Ugbm9uX2ZhdGFsIGluc3RlYWQgb2YgZnByaW50Zi4KCShkaXNwbGF5X3JlbF9maWxlKTogTGlrZXdpc2UuCgoJKiBvYmpkdW1wLmMgKHNsdXJwX3N5bXRhYik6IFVzZSBub25fZmF0YWwgaW5zdGVhZCBvZiBmcHJpbnRmLgoJKHNsdXJwX2R5bmFtaWNfc3ltdGFiKTogU2FtZSBoZXJlLgoJKGRpc2Fzc2VtYmxlX2RhdGEpOiBBbmQgaGVyZS4KCShyZWFkX3NlY3Rpb25fc3RhYnMpOiBBbmQgaGVyZS4KCShyZWFkX3NlY3Rpb25fc3RhYnMpOiBBbmQgaGVyZS4KCShkdW1wX2JmZCk6IEFuZCBoZXJlLgoJKG1haW4pOiBBbmQgaGVyZS4KCShvYmpkdW1wX3NwcmludGYpOiBVc2UgZmF0YWwgaW5zdGVhZCBvZiBmcHJpbnRmLCBleGl0LgoJKGRpc2Fzc2VtYmxlX2RhdGEpOiBTYW1lIGhlcmUuCgoJKiByZGNvZmYuYyAocGFyc2VfY29mZl90eXBlKTogVXNlIG5vbl9mYXRhbCBpbnN0ZWFkIG9mIGZwcmludGYuCgkocGFyc2VfY29mZl9zdHJ1Y3RfdHlwZSk6IFNhbWUgaGVyZS4KCShwYXJzZV9jb2ZmX2VudW1fdHlwZSk6IEFuZCBoZXJlLgoJKHBhcnNlX2NvZmYpOiBBbmQgaGVyZS4KCSogcmRkYmcuYyAocmVhZF9kZWJ1Z2dpbmdfaW5mbyk6IEFuZCBoZXJlLgoJKiBzaXplLmMgKG1haW4pOiBBbmQgaGVyZS4KCSogd2luZHJlcy5jIChmb3JtYXRfZnJvbV9uYW1lKTogQW5kIGhlcmUuCgkqIHdyc3RhYnMuYyAoc3RhYl93cml0ZV9zeW1ib2wpOiBIZXJlIHRvby4KCSh3cml0ZV9zdGFic19pbl9zZWN0aW9uc19kZWJ1Z2dpbmdfaW5mbyk6IEFuZCBoZXJlLgoJKHN0YWJfaW50X3R5cGUpOiBBbmQgaGVyZS4KCShzdGFiX3N0cnVjdF9maWVsZCk6IEFuZCBoZXJlLgoJKHN0YWJfdHlwZGVmKTogQW5kIGhlcmUuCgoJKiByZXNjb2ZmLmMgKHJlYWRfY29mZl9yc3JjKTogVXNlIGZhdGFsIGluc3RlYWQgb2YgZnByaW50ZiwgZXhpdC4KCSogc3Jjb252LmMgKG1haW4pOiBTYW1lIGhlcmUuCgkqIHN0cmluZ3MuYyAobWFpbik6IEFuZCBoZXJlLgoJKGludGVnZXJfYXJnKTogQW5kIGhlcmUuCgkqIHN5c2R1bXAuYyAobWFpbik6IEFuZCBoZXJlLgoKMjAwMC0wNC0wNiAgVGltb3RoeSBXYWxsICA8dHdhbGxAY3lnbnVzLmNvbT4KCgkqIG9iamR1bXAuYyAoZHVtcF9zZWN0aW9uX2hlYWRlcik6IFByaW50IENMSU5LIGFuZCBCTE9DSyBmbGFncy4KCjIwMDAtMDQtMDYgIEphc29uIE1lcnJpbGwgIDxqYXNvbkB5b3JpY2suY3lnbnVzLmNvbT4KCgkqIHJlYWRlbGYuYyAoZGVjb2RlX2xvY2F0aW9uX2V4cHJlc3Npb24pOiBMb29wIHRocm91Z2ggbXVsdGlwbGUKCW9wZXJhdGlvbnMuCgkocmVhZF9hbmRfZGlzcGxheV9hdHRyKTogUGFzcyBpbiBsZW5ndGguCgoJKiByZWFkZWxmLmMgKHJlYWRfYW5kX2Rpc3BsYXlfYXR0cik6IEFkZCBDVSBvZmZzZXQgdG8gcmVmZXJlbmNlcy4KCShkaXNwbGF5X2RlYnVnX2luZm8pOiBQYXNzIGl0IGluLgoKMjAwMC0wNC0wNiAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIHJlYWRlbGYuYyAoZGVjb2RlX0FSTV9tYWNoaW5lX2ZsYWdzKTogTmV3IGZ1bmN0aW9uLgoJKGdldF9tYWNoaW5lX2ZsYWdzKTogQ2FsbCBkZWNvZGVfQVJNX21hY2hpbmVfZmxhZ3MgZm9yIEFSTQoJdGFyZ2V0cy4KCgkoZ2V0X21hY2hpbmVfbmFtZSk6IENhdGNoIEVNX0FWUgoKMjAwMC0wNC0wNSAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGJpbnV0aWxzLnRleGk6IFJlbW92ZSBvcHRpb25hbCBgPScgZnJvbSBsb25nIG9wdGlvbnMgdGhhdCBoYXZlCglhbiBgPScgaW4gdGhlIGFyZ3VtZW50LgoJKiBvYmpjb3B5LjE6IEhlcmUgdG9vLiAgUmVtb3ZlIGV4dHJhIHNwYWNlIG9uIGRpc2NhcmQtYWxsLgoKCSogYmludXRpbHMudGV4aSAob2JqY29weSk6IE1lbnRpb24gLS1yZWRlZmluZS1zeW0uCgkqIG9iamNvcHkuMTogSGVyZSB0b28uCgkqIE5FV1M6IEFuZCBoZXJlLgoKCSogb2JqY29weS5jIChwYXJzZV9mbGFncyk6IFNwbGl0IG9mZiBmbGFnIG5hbWVzIGZyb20gZXJyb3IgbWVzc2FnZQoJZ2V0dGV4dCBhcyB0aGV5IGFyZSBub3QgdHJhbnNsYXRlZC4KCShjb3B5X21haW4pOiBTaW1pbGFybHkgc3BsaXQgb2ZmIG9wdGlvbiBuYW1lIGZvciAtLWFkZC1zZWN0aW9uLAoJLS1zZXQtc2VjdGlvbi1mbGFncywgLS1jaGFuZ2Utc2VjdGlvbi12bWEsIC0tY2hhbmdlLXNlY3Rpb24tbG1hCgllcnJvciBtZXNzYWdlcy4KCVNvbWUgd2hpdGUgc3BhY2UgY2hhbmdlcy4KCglmcm9tIE1hdHRoZXcgQmVuamFtaW4gPG1hdHRAbGludXhib3gubnU+CgkqIG9iamNvcHkuYyAoc3RydWN0IHJlZGVmaW5lX25vZGUpOiBOZXcuCgkocmVkZWZpbmVfc3ltX2xpc3QpOiBOZXcuCgkocmVkZWZpbmVfbGlzdF9hcHBlbmQpOiBOZXcuCgkobG9va3VwX3N5bV9yZWRlZmluaXRpb24pOiBOZXcuCgkoT1BUSU9OX1JFREVGSU5FX1NZTSk6IE5ldy4KCShjb3B5X29wdGlvbnMpOiBBZGQgLS1yZWRlZmluZS1zeW0gb3B0aW9uLgoJKGNvcHlfdXNhZ2UpOiBNZW50aW9uIGl0LgoJKGZpbHRlcl9zeW1ib2xzKTogUmVuYW1lIHN5bWJvbHMgb24gcmVkZWZpbmVfc3ltX2xpc3QuCgkoY29weV9vYmplY3QpOiBDYWxsIGZpbHRlcl9zeW1ib2xzIGlmIHJlZGVmaW5lX3N5bV9saXN0ICE9IE5VTEwuCgkoY29weV9tYWluKTogSGFuZGxlIE9QVElPTl9SRURFRklORV9TWU0uCgoyMDAwLTA0LTA0ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiByZWFkZWxmLmMgKHByb2Nlc3Nfc3ltYm9sX3RhYmxlKTogQ29ycmVjdGx5IHJlYWQgaW4gc3ltYm9sCgl2ZXJzaW9uaW5nIGluZm9ybWF0aW9uLgoKMjAwMC0wNC0wNCAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIHBvL2JpbnV0aWxzLnBvdDogUmVnZW5lcmF0ZS4KCgkqIGFkZHIybGluZS5jICh1c2FnZSk6IFJlc3RvcmUgdHJhbnNsYXRlZCBwYXJ0IG9mIGJ1ZyBzdHJpbmcuCgkqIGFyLmMgKHVzYWdlKTogTGlrZXdpc2UuCgkqIG5sbWNvbnYuYyAoc2hvd191c2FnZSk6IExpa2V3aXNlLgoJKiBubS5jICh1c2FnZSk6IExpa2V3aXNlLgoJKiBvYmpjb3B5LmMgKGNvcHlfdXNhZ2UpOiBMaWtld2lzZS4KCShzdHJpcF91c2FnZSk6IExpa2V3aXNlLgoJKiBvYmpkdW1wLmMgKHVzYWdlKTogTGlrZXdpc2UuCgkqIHJlYWRlbGYuYyAodXNhZ2UpOiBMaWtld2lzZS4KCSogc2l6ZS5jICh1c2FnZSk6IExpa2V3aXNlLgoJKiBzdHJpbmdzLmMgKHVzYWdlKTogTGlrZXdpc2UuCgkqIHdpbmRyZXMuYyAodXNhZ2UpOiBMaWtld2lzZS4KCgkqIE1ha2VmaWxlLmFtIChNS0RFUCk6IFVzZSBnY2MgLU1NIHJhdGhlciB0aGFuIG1rZGVwLgoJKERFUCk6IFF1b3RlIHdoZW4gcGFzc2luZyB2YXJzIHRvIHN1Yi1tYWtlLiAgQWRkIHdhcm5pbmcKCW1lc3NhZ2UgdG8gZW5kLgoJKERFUDEpOiBSZXdyaXRlIGZvciAiZ2NjIC1NTSIuCgkoQ0xFQU5GSUxFUyk6IEFkZCBERVAyLgoJVXBkYXRlIGRlcGVuZGVuY2llcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAwLTA0LTA0ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBNYWtlZmlsZS5hbSAoR0VORVJBVEVEX0hGSUxFUyk6IEFkZCByY3BhcnNlLmgKCShhcnBhcnNlLmgpOiBEZXBlbmQgb24gYXJwYXJzZS5jCgkoZGVmcGFyc2UuaCwgbmxtaGVhZGVyLmgsIHJjcGFyc2UuaCwgc3lzaW5mby5oKTogU2ltaWxhcmx5LgoKMjAwMC0wNC0wMyAgSC5KLiBMdSAgKGhqbEBnbnUub3JnKQoKCSogc2l6ZS5jICh1c2FnZSk6IFVzZSBSRVBPUlRfQlVHU19UTy4KCjIwMDAtMDQtMDMgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBidWNvbW0uaDogI2luY2x1ZGUgImJpbi1idWdzLmgiCgkqIGFkZHIybGluZS5jICh1c2FnZSk6IFVzZSBSRVBPUlRfQlVHU19UTy4KCSogYXIuYyAodXNhZ2UpOiBMaWtld2lzZS4KCSogbmxtY29udi5jIChzaG93X3VzYWdlKTogTGlrZXdpc2UuCgkqIG5tLmMgKHVzYWdlKTogTGlrZXdpc2UuCgkoT1BUSU9OX1RBUkdFVCk6IERlZmluZS4KCShsb25nX29wdGlvbnMpOiBVc2UgT1BUSU9OX1RBUkdFVCByYXRoZXIgdGhhbiAyMDAuCgkobWFpbik6IExpa2V3aXNlLgoKCSogb2JqY29weS5jIChjb3B5X3VzYWdlKTogVXNlIFJFUE9SVF9CVUdTX1RPLgoJKHN0cmlwX3VzYWdlKTogTGlrZXdpc2UuCgkqIG9iamR1bXAuYyAodXNhZ2UpOiBMaWtld2lzZS4KCSogcmVhZGVsZi5jICh1c2FnZSk6IExpa2V3aXNlLgoJKiBzdHJpbmdzLmMgKHVzYWdlKTogTGlrZXdpc2UuCgkqIHdpbmRyZXMuYyAodXNhZ2UpOiBMaWtld2lzZS4KCjIwMDAtMDMtMzEgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZUBoaWF1bHkxLmhpYS5ucmMuY2E+CgoJKiByZWFkZWxmLmM6IEluY2x1ZGUgc3lzL3R5cGVzLmggYmVmb3JlIHN5cy9zdGF0LmggZm9yIHVsdHJpeC4KCjIwMDAtMDMtMjcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiByZGRiZy5jIChyZWFkX3NlY3Rpb25fc3RhYnNfZGVidWdnaW5nX2luZm8pOiBDYXRjaCBvdXQgb2YgcmFuZ2UKCXN0cmluZyBvZmZzZXRzIGluIGNvcnJ1cHQgc3RhYnMgZW50cmllcy4KCjIwMDAtMDMtMjcgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiByZWFkZWxmLmM6IEluY2x1ZGUgZWxmL2F2ci5oCgkoZHVtcF9yZWxvY2F0aW9ucyk6IEFkZCBFTV9BVlIgY2FzZS4KCjIwMDAtMDMtMDkgIFRpbSBXYXVnaCAgPHR3YXVnaEByZWRoYXQuY29tPgoKCSogc3RyaW5ncy4xOiBDb3JyZWN0ICctYnl0ZXMnIHRvICctLWJ5dGVzJy4KCjIwMDAtMDMtMDggIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIE1ha2VmaWxlLmFtIChpbnN0YWxsLWV4ZWMtbG9jYWwpOiBEZXBlbmQgb24KCWluc3RhbGwtYmluUFJPR1JBTVMgZm9yIHBhcmFsbGVsIG1ha2UuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KCjIwMDAtMDItMjcgIElhbiBMYW5jZSBUYXlsb3IgIDxpYW5AemVtYnUuY29tPgoKCUZyb20gQnJhZCBMdWNpZXIgPGx1Y2llckBtYXRoLnB1cmR1ZS5lZHU+OgoJKiByZWFkZWxmLmMgKHByb2Nlc3NfZHluYW1pY19zZWdtZW50KTogQWRkIGNhc3QgdG8gbWFrZSBzdXJlCglhcmd1bWVudCB0byAlKiBpcyBpbnQuCgoyMDAwLTAyLTI1ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBjb25maWd1cmUuaW4gKEFDX1NFQVJDSF9MSUJTKTogUGFzcyBtLCBub3QgLWxtLgoKMjAwMC0wMi0yNCAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGFybS13aW5jZSwgbWlwcy1wZSBhbmQgc2gtcGUgdGFyZ2V0cy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKCSogZGxsdG9vbC5jOiBBZGQgc3VwcG9ydCBmb3Igc2gtcGUgYW5kIG1pcHMtcGUgdGFyZ2V0cy4KCSogcmVzY29mZi5jOiBBZGQgc3VwcG9ydCBmb3Igc2gtcGUgYW5kIG1pcHMtcGUgdGFyZ2V0cy4KCjIwMDAtMDItMjMgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIHJlYWRlbGYuYyAoZ2V0X29zYWJpX25hbWUpOiBIYW5kbGUgRUxGT1NBQklfTElOVVguCgoyMDAwLTAyLTIyICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogcmVhZGVsZi5jIChwcm9jZXNzX3N5bWJvbF90YWJsZSk6IFJlbW92ZSB1c2Ugb2YgRUxGX1NUX09USEVSLgoKMjAwMC0wMi0yMiAgSWFuIExhbmNlIFRheWxvciAgPGlhbkB6ZW1idS5jb20+CgoJRnJvbSBCcmFkIEx1Y2llciA8bHVjaWVyQG1hdGgucHVyZHVlLmVkdT46CgkqIHJlYWRlbGYuYyAocHJvY2Vzc192ZXJzaW9uX3NlY3Rpb25zKTogQWRkIGNhc3RzIHRvIG1ha2Ugc3VyZQoJYXJndW1lbnQgdG8gJSogaXMgYW4gaW50LgoJKHByb2Nlc3NfbWlwc19zcGVjaWZpYyk6IEFkZCBjYXN0cyB0byBtYWtlIHByaW50ZiBhcmd1bWVudHMgbWF0Y2gKCWZvcm1hdC4KCjIwMDAtMDItMjEgIEFsYW4gTW9kcmEgIDxhbGFuQHNwcmkubGV2ZWxzLnVuaXNhLmVkdS5hdT4KCgkqIG9iamR1bXAuYyAoZHVtcF9zZWN0aW9uX2hlYWRlcik6IENoYW5nZSBgb3BiJyB0byB1bnNpZ25lZC4KCShmaW5kX3N5bWJvbF9mb3JfYWRkcmVzcyk6IFNhbWUgaGVyZS4KCShkaXNhc3NlbWJsZV9kYXRhKTogQW5kIGhlcmUuICBDaGFuZ2UgYGFkZHJfb2Zmc2V0JywKCWBzdG9wX29mZnNldCcsIGBuZXh0c3RvcF9vZmZzZXQnIHRvIHVuc2lnbmVkIGxvbmcuCgkoZHVtcF9kYXRhKTogQ2hhbmdlIG9wYiB0byB1bnNpZ25lZC4KCjIwMDAtMDItMTggIEZyYW5rIENoLiBFaWdsZXIgIDxmY2hlQHJlZGhhdC5jb20+CgoJKiByZXNyYy5jOiBSZW1vdmUgdW5tYXRjaGVkICNpZiBmb3IgY3lnd2luLgoKMjAwMC0wMi0xNCAgRmVybmFuZG8gTmFzc2VyICA8Zm5hc3NlckB0b3RlbS50by5jeWdudXMuY29tPgoKCSogYmludXRpbHMudGV4aTogRG9jdW1lbnQgdGhlIGNoYW5nZSBvZiBmbGF2b3IgbmFtZSBmcm9tIGF0cGNzLXNwZWNpYWwKCXRvIHNwZWNpYWwtYXRwY3MgdG8gcHJldmVudCBuYW1lIGNvbmZsaWN0IGluIGdkYi4KCjIwMDAtMDItMDggIFRpbW90aHkgV2FsbCAgPHR3YWxsQHJlZGhhdC5jb20+CgoJKiBvYmpkdW1wLmMgKHNob3dfbGluZSk6IEZpeCBidWcgcHJldmVudGluZyBwcmludGluZyBvZiB0aGUgdmVyeQoJZmlyc3QgbGluZSAobGluZSB6ZXJvKSBvZiBhIGZpbGUgd2hlbiBpbnRlcmxpc3Rpbmcgc291cmNlIGFuZAoJYXNzZW1ibHkuICBBZGRlZCBvcHRpb24gdG8gcHJpbnQgZW50aXJlIGNvbnRleHQgZnJvbSBzdGFydCBvZiBmaWxlCgl3aGVuIHRoZSBmaXJzdCBsaW5lIGZyb20gdGhhdCBmaWxlIGlzIGVuY291bnRlcmVkLgoKMjAwMC0wMi0wMyAgVGltb3RoeSBXYWxsIDx0d2FsbEByZWRoYXQuY29tPgoKCSogb2JqZHVtcC5jIChkdW1wX3NlY3Rpb25faGVhZGVyLCBmaW5kX3N5bWJvbF9mb3JfYWRkcmVzcywKCXNob3dfbGluZSwgZGlzYXNzZW1ibGVfYnl0ZXMsIGRpc2Fzc2VtYmxlX2RhdGEsIGR1bXBfZGF0YSk6CglkaXN0aW5ndWlzaCBiZXR3ZWVuIG9jdGV0cyBhbmQgYnl0ZXMuCgoyMDAwLTAxLTI3ICBUaG9tYXMgZGUgTGVsbGlzICA8dGRlbEB3aW5kcml2ZXIuY29tPgoKCSogbm0uYyAocHJpbnRfc3ltYm9sX2luZm9fYnNkKTogVXNlIGJmZF9pc191bmRlZmluZWRfc3ltY2xhc3MgdG8KCWNoZWNrIHRvIHVucmVzb2x2ZWQgc3ltYm9scy4KCShwcmludF9zeW1ib2xfaW5mb19zeXN2KTogIERpdHRvLgoJKHByaW50X3N5bWJvbF9pbmZvX3Bvc2l4KTogIERpdHRvLgoKCSogYmludXRpbHMudGV4aTogRG9jdW1lbnQgbmV3ICdWJyBzeW1jbGFzcyBmbGFnIGZvciBubS4KCjIwMDAtMDEtMjcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBiaW51dGlscy50ZXhpIChvYmpkdW1wKTogRG9jdW1lbnQgbmV3IEFSTSBzcGVjaWZpYwoJZGlzYXNzZW1ibGVyIG9wdGlvbnMuCgoJKiBvYmpkdW1wLmMgKHVzYWdlKTogQ2FsbCBkaXNhc3NlbWJsZXJfdXNhZ2UoKS4KCjIwMDAtMDEtMjcgIEFsYW4gTW9kcmEgIDxhbGFuQHNwcmkubGV2ZWxzLnVuaXNhLmVkdS5hdT4KCgkqIHJlYWRlbGYuYyAoZ2V0X2R5bmFtaWNfZmxhZ3MpOiBSZXR1cm4gYnVmZi4KCShwcm9jZXNzX2R5bmFtaWNfc2VnbWVudCk6IERvbid0IHBhc3MgZXJyb3Igc3RyaW5ncyB0byBwcmludGYKCWFzIGZvcm1hdCBhcmcuCgkocmVhZF9hbmRfZGlzcGxheV9hdHRyKTogVXNlIGx4IGFuZCBsZCB0byBwcmludCBsb25ncy4KCShwcm9jZXNzX2NvcmVmaWxlX25vdGVfc2VnbWVudCk6IENhc3QgYmZkX3ZtYSB0byB1bnNpZ25lZCBsb25nCgliZWZvcmUgcHJpbnRpbmcuCglVcGRhdGUgY29weXJpZ2h0LgoKMjAwMC0wMS0xNyAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIHJlYWRlbGYuYyAoZ2V0X29zYWJpX25hbWUpOiBSZWNvZ25pc2UgRUxGT1NBQklfQVJNLgoKMjAwMC0wMS0xNSAgQWxhbiBNb2RyYSAgPGFsYW5Ac3ByaS5sZXZlbHMudW5pc2EuZWR1LmF1PgoKCSogZGVidWcuYyAoZGVidWdfbmFtZV90eXBlKTogUmV0dXJuIERFQlVHX1RZUEVfTlVMTCByYXRoZXIgdGhhbgoJZmFsc2UuCgkoZGVidWdfdGFnX3R5cGUpOiBIZXJlIHRvby4KCSogaWVlZS5jIChpZWVlX2J1aWx0aW5fdHlwZSk6IEFuZCBoZXJlLgoJKiBzdGFicy5jIChwYXJzZV9zdGFiX3R5cGUsIHBhcnNlX3N0YWJfYXJyYXlfdHlwZSk6IEFuZCBoZXJlLgoKMjAwMC0wMS0xMyAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIHJlYWRlbGYuYyAoZ2V0X21hY2hpbmVfbmFtZSk6IENoYW5nZSBFTV9TMzcwIHRvIHJldHVybiAiSUJNCglTeXN0ZW0vMzcwIi4KCjIwMDAtMDEtMTEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiByZWFkZWxmLmMgKGdldF9keW5hbWljX3R5cGUpOiBSZW1vdmUgRFRfRU5DT0RJTkcuCgoyMDAwLTAxLTEwICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogcmVhZGVsZi5jIChnZXRfbm90ZV90eXBlKTogRGlzcGxheSBOVF9XSU4zMlBTVEFUVVMgbm90ZXMuCgoyMDAwLTAxLTA3ICBNdW1pdCBLaGFuICA8a2hhbkB4cmF5bGl0aC53aXNjLmVkdT4KCgkqIHdpbmRyZXMuYyAobG9uZ19vcHRpb25zKTogQWRkIC0tdXNlLXRlbXAtZmlsZSBhbmQKCS0tbm8tdXNlLXRlbXAtZmlsZSBvcHRpb25zLgoJKHVzYWdlKTogRG9jdW1lbnQuCgkobWFpbik6IEhhbmRsZS4KCgkqIHdpbmRyZXMuaDogVXBkYXRlIHJlYWRfcmNfZmlsZSBwcm90b3R5cGUuCgoJKiByZXNyYy5jIChjcHBfdGVtcF9maWxlKTogTmV3IHN0YXRpYyB2YXJpYWJsZS4KCShpc3RyZWFtX3R5cGUpOiBOZXcgc3RhdGljIHZhcmlhYmxlLgoJKGNsb3NlX3BpcGUpOiBEZWxldGUgZnVuY3Rpb24uCgkocnVuX2NtZCk6IE5ldyBzdGF0aWMgZnVuY3Rpb24uCgkob3Blbl9pbnB1dF9zdHJlYW0pOiBOZXcgc3RhdGljIGZ1bmN0aW9uLgoJKGNsb3NlX2lucHV0X3N0cmVhbSk6IE5ldyBzdGF0aWMgZnVuY3Rpb24uCgkobG9va19mb3JfZGVmYXVsdCk6IEhhbmRsZSBET1MgZGlyZWN0b3J5IHNlcGFyYXRvci4gVXNlCglvcGVuX2lucHV0X3N0cmVhbSBpbnN0ZWFkIG9mIHBvcGVuLgoJKHJlYWRfcmNfZmlsZSk6IExpa2V3aXNlLgoKCSogYmludXRpbHMudGV4aTogRG9jdW1lbnQgLS11c2UtdGVtcC1maWxlLCAtLW5vLXVzZS10ZW1wLWZpbGUKCW9wdGlvbnMuCgoyMDAwLTAxLTA0ICBNdW1pdCBLaGFuICA8a2hhbkB4cmF5bGl0aC53aXNjLmVkdT4KCgkqIGRsbHRvb2wuYyAoY3JlYXRlX2NvbXBhdF9pbXBsaWIpOiBOZXcgdmFyaWFibGUuCgkoZ2VuX2V4cF9maWxlKTogVXNlLgoJKG1ha2Vfb25lX2xpYl9maWxlKTogVXNlLgoJKGxvbmdfb3B0aW9ucyk6IEFkZCAtLWNvbXBhdC1pbXBsaWIgb3B0aW9uLgoJKHVzYWdlKTogSGFuZGxlLgoJKG1haW4pOiBIYW5kbGUuCgoJKiBkbGx3cmFwLmMgKGVudW0gdGFyZ2V0X3R5cGUpOiBSZW5hbWUgTUlOR1czMl9UQVJHRVQgdG8gTUlOR1dfVEFSR0VULgoJKG1haW4pOiBVc2UuIERvbid0IGxvb2sgZm9yICIzMiIgaW4gY3lnd2luIGFuZCBtaW5ndyB0YXJnZXQgbmFtZXMuCgoyMDAwLTAxLTAzICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogYmludXRpbHMudGV4aTogRG9jdW1lbnQgbmV3LCBBUk0gc3BlY2lmaWMgZGlzYXNzZW1ibGVyCgljb21tYW5kIGxpbmUgc3dpdGNoICItTSBmb3JjZS10aHVtYiIuCgpGb3Igb2xkZXIgY2hhbmdlcyBzZWUgQ2hhbmdlTG9nLTk4OTkKDApMb2NhbCBWYXJpYWJsZXM6Cm1vZGU6IGNoYW5nZS1sb2cKbGVmdC1tYXJnaW46IDgKZmlsbC1jb2x1bW46IDc0CnZlcnNpb24tY29udHJvbDogbmV2ZXIKRW5kOgo=