MjAxMS0wNS0yOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJQXBwbHkgZnJvbSBtYWlubGluZQoJMjAxMS0wNS0yMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CglQUiAxMjc2MwoJKiBsZGxhbmcuYyAobGFuZ19vdXRwdXRfc2VjdGlvbl9maW5kX2J5X2ZsYWdzKTogTWF0Y2ggb3JwaGFuIC5zZGF0YTIKCWxpa2Ugc2VjdGlvbnMgdG8gZXhpc3RpbmcgLnNkYXRhMiwgYW5kIHNpbWlsYXJseSBmb3Igb3JwaGFuIFRMUwoJc2VjdGlvbnMuCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAocGxhY2Vfb3JwaGFuKTogRXhjbHVkZSAudGJzcyBmcm9tIG9ycGhhbl9ic3MuCgoJMjAxMS0wNS0xNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CglQUiBsZC8xMjc2MAoJKiBsZG1haW4uYyAobm90aWNlKTogQWRkICJmbGFncyIgYW5kICJzdHJpbmciIHBhcmFtLgoJKiBwbHVnaW4uYyAocGx1Z2luX25vdGljZSk6IExpa2V3aXNlLiAgSGFuZGxlIGluZGlyZWN0LCB3YXJuaW5nCglhbmQgY29uc3RydWN0b3Igc3ltcy4KCgkyMDEwLTA1LTE2ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRhbkBjb2Rlc291cmNlcnkuY29tPgoJKiBsZGxhbmcuYyAocHJpbnRfYXNzaWdubWVudCk6IFVzZSB0aGUgc3ltYm9sJ3Mgc2VjdGlvbiBpZiB3ZQoJdXNlIGl0cyB2YWx1ZS4KCSogbGRleHAuYyAoZXhwX2ZvbGRfdHJlZV8xKTogU2tpcCBzZWxmLWFzc2lnbm1lbnQuICBFeHBhbmQKCWNvbW1lbnQgb24gY29weWluZyBzeW1ib2wgdHlwZS4KCgkyMDExLTA1LTA3ICBEYXZlIEtvcm4gIDxkYXZlLmtvcm4uY3lnd2luQGdtYWlsLmNvbT4KCVBSIGxkLzEyMzY1CgkqIHNjcmlwdHRlbXBsL3BlLnNjIChfX3J0X3BzcmVsb2NzX3N0YXJ0KTogTmV3IHN5bWJvbCBkZWZpbml0aW9uLgoJKF9fcnRfcHNyZWxvY3NfZW5kKTogTGlrZXdpc2UuCgkoX19ydF9wc3JlbG9jc19zaXplKTogTGlrZXdpc2UgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBhYm92ZS4KCShfX1JVTlRJTUVfUFNFVURPX1JFTE9DX0xJU1RfRU5EX18pOiBNb3ZlIG91dHNpZGUgLnJkYXRhIHNlY3Rpb24KCWltbWVkaWF0ZWx5IGFmdGVyIGVuZCBvZiBwc2V1ZG8tcmVsb2MgZGF0YS4KCShfX19SVU5USU1FX1BTRVVET19SRUxPQ19MSVNUX0VORF9fXyk6IExpa2V3aXNlLgoJKF9fUlVOVElNRV9QU0VVRE9fUkVMT0NfTElTVF9fKTogTW92ZSBvdXRzaWRlIC5yZGF0YSBzZWN0aW9uIGFuZAoJY2FsY3VsYXRlIGJhY2t3YXJkIGZyb20gbGlzdCBlbmQuCgkoX19fUlVOVElNRV9QU0VVRE9fUkVMT0NfTElTVF9fXyk6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9wZXAuc2M6IExpa2V3aXNlLgoKCTIwMTEtMDMtMjkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgoJUFIgbGQvMTI2MTMKCSogbGRsZXgubCAobGV4X3dhcm5faW52YWxpZCk6IERvbid0IGFzc3VtZSBjaGFyIGlzIHVuc2lnbmVkLgoKCTIwMTEtMDMtMTAgIERhdmUgS29ybiAgPGRhdmUua29ybi5jeWd3aW5AZ21haWwuY29tPgoJKiBlbXVsdGVtcGwvcGUuZW0gKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9wbGFjZV9vcnBoYW4pOiBQcmVzZXJ2ZQoJYWxpZ25tZW50IG9mIGlucHV0IHNlY3Rpb25zIHdoZW4gY3JlYXRpbmcgb3JwaGFuIG91dHB1dCBzZWN0aW9ucwoJZHVyaW5nIHJlbG9jYXRhYmxlIGxpbmsuCgkqIGVtdWx0ZW1wbC9wZXAuZW0gKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9wbGFjZV9vcnBoYW4pOiBMaWtld2lzZS4KCgkyMDExLTAyLTE0ICBNaWtlIEZyeXNpbmdlciAgPHZhcGllckBnZW50b28ub3JnPgoJKiBsZGxhbmcuYyAobGFuZ192ZXJzX21hdGNoKTogRGVjbGFyZSBhIG5ldyBjX3N5bSwgYXNzaWduIGl0IHRvCgl0aGUgYmZkX2RlbWFuZ2xlIG9mIHN5bSwgY2hhbmdlIHVzZXJzIG9mIHN5bSB0byBjX3N5bSB3aGVuIG5vdAoJYWxyZWFkeSBkZW1hbmdsaW5nLCBhbmQgZnJlZSB3aGVuIGRvbmUuICBDaGFuZ2UgY2FsbGVycyBvZgoJY3BsdXNfZGVtYW5nbGUgdG8gYmZkX2RlbWFuZ2xlLgoKMjAxMS0wNS0xNiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCVBSIGxkLzEyNzYwCgkqIHBsdWdpbi5jIChwbHVnaW5fbm90aWNlKTogU2V0IHUudW5kZWYuYWJmZCBmb3Igc3ltYm9scyBtYWRlCgl1bmRlZndlYWsuCgoyMDExLTA1LTE2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KCgkqIGxkbGFuZy5jIChsYW5nX2xlYXZlX291dHB1dF9zZWN0aW9uX3N0YXRlbWVudCk6IERvbid0IGNvcHkKCXByZXZpb3VzIGxtYV9yZWdpb24gaWYgZ2l2ZW4gYWRkcmVzcy4KCjIwMTEtMDUtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgoKCVBSIGxkLzEyNzI2CgkqIGxkZXhwLmggKGxhbmdfcGhhc2VfdHlwZSk6IEFkZCBsYW5nX2Fzc2lnbmluZ19waGFzZV9lbnVtLgoJKiBsZGV4cC5jIChleHBfZm9sZF90cmVlXzEpOiBDb3JyZWN0IGFzc2lnbiB0byBkb3QgY29tbWVudC4gIERvbid0Cglhc3NpZ24gdG8gZG90IHdoZW4gbGFuZ19hc3NpZ25pbmdfcGhhc2VfZW51bS4KCSogbGRsYW5nLmggKGxhbmdfZG9fYXNzaWdubWVudHMpOiBVcGRhdGUgcHJvdG90eXBlLgoJKiBsZGxhbmcuYyAobGFuZ19kb19hc3NpZ25tZW50cyk6IEFkZCBwaGFzZSBwYXJhbWV0ZXIuICBVcGRhdGUgYWxsCgljYWxsZXJzLgoJKiBwZS1kbGwuYyAocGVfZGxsX2ZpbGxfc2VjdGlvbnMsIHBlX2V4ZV9maWxsX3NlY3Rpb25zKTogVXBkYXRlCglsYW5nX2RvX2Fzc2lnbm1lbnRzIGNhbGxzLgoKMjAxMS0wNC0yOCAgRGFuaWVsIEMuIEtsYXVlciAgPGRhbmllbC5jLmtsYXVlckB3ZWIuZGU+CgoJUFIgbGQvMTI2MTQKCSogZW11bHRlbXBsL3BlLmVtIChfYWZ0ZXJfb3Blbik6IENvcnJlY3RseSBjaGVjayB3aGV0aGVyIHN5bWJvbCBpcwoJaW4gdW5kZWYgbGlzdC4KCjIwMTEtMDQtMjcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgoKCUJhY2twb3J0IGZyb20gbWFpbmxpbmUuCgkyMDExLTA0LTI0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KCVBSIGxkLzEyMzY1CglQUiBsZC8xMjY5NgoJKiBsZG1haW4uYyAobm90aWNlKTogRGVsZXRlICJuYW1lIiBwYXJhbSwgYWRkICJoIi4KCSogcGx1Z2luLmMgKHBsdWdpbl9ub3RpY2UpOiBMaWtld2lzZS4gIFNldCBub25faXJfcmVmLiAgSGFuZGxlCglyZWRlZmluaXRpb25zIG9mIElSIHN5bWJvbHMgaW4gcmVhbCBCRkRzLgoJKHBsdWdpbl9tdWx0aXBsZV9kZWZpbml0aW9uLCBwbHVnaW5fbXVsdGlwbGVfY29tbW9uKTogRGVsZXRlLgoJKG5vbl9pcm9ubHlfaGFzaCwgaW5pdF9ub25faXJvbmx5X2hhc2gpOiBEZWxldGUuCgkoaXNfdmlzaWJsZV9mcm9tX291dHNpZGUpOiBUcmF2ZXJzZSBlbnRyeV9zeW1ib2wgY2hhaW4uCgkoZ2V0X3N5bWJvbHMpOiBVc2Ugbm9uX2lyX3JlZiBmbGFnIHJhdGhlciB0aGFuIGhhc2ggbG9va3VwLgoKCTIwMTEtMDQtMjAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgoJUFIgbGQvMTIzNjUKCSogbGRmaWxlLmMgKGxkZmlsZV90cnlfb3Blbl9iZmQpOiBNb3ZlIGNvZGUgY3JlYXRpbmcgYW5kIHN3aXRjaGluZwoJdG8gcGx1Z2luIElSIEJGRC4uCgkqIGxkbWFpbi5jIChhZGRfYXJjaGl2ZV9lbGVtZW50KTogLi5hbmQgc2ltaWxhciBjb2RlIGhlcmUuLgoJKiBwbHVnaW4uYyAocGx1Z2luX21heWJlX2NsYWltKTogLi50byBoZXJlLiAgTmV3IGZ1bmN0aW9uLgoJKHBsdWdpbl9jYWxsX2NsYWltX2ZpbGUpOiBNYWtlIHN0YXRpYy4KCShhc3ltYm9sX2Zyb21fcGx1Z2luX3N5bWJvbCk6IFNldCBFTEYgc3Rfc2huZHggZm9yIGNvbW1vbiBzeW1zLgoJKHBsdWdpbl9tdWx0aXBsZV9jb21tb24pOiBOZXcgZnVuY3Rpb24uCgkocGx1Z2luX2NhbGxfYWxsX3N5bWJvbHNfcmVhZCk6IEhvb2sgaW4gcGx1Z2luX211bHRpcGxlX2NvbW1vbi4KCSogcGx1Z2luLmggKHBsdWdpbl9jYWxsX2NsYWltX2ZpbGUpOiBEb24ndCBkZWNsYXJlLgoJKHBsdWdpbl9tYXliZV9jbGFpbSk6IERlY2xhcmUuCgoJMjAxMS0wNC0yMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CglQUiBsZC8xMjM2NQoJKiBsZG1haW4uYyAobXVsdGlwbGVfZGVmaW5pdGlvbik6IFRha2UgYSBiZmRfbGlua19oYXNoX2VudHJ5Cglwb2ludGVyIGFyZyByYXRoZXIgdGhhbiAibmFtZSIsICJvYmZkIiwgIm9zZWMiLCAib3ZhbCIuICBBZGQgY29kZQoJcmVtb3ZlZCBmcm9tIGxpbmtlci5jLiAgSGFjayBhcm91bmQgeGNvZmZsaW5rLmMgb2RkaXR5IGluCglwYXNzaW5nIE5VTEwgbmJmZC4KCShtdWx0aXBsZV9jb21tb24pOiBTaW1pbGFybHkuCgkqIHBsdWdpbi5jIChvcmlnX2FsbG93X211bHRpcGxlX2RlZnMpOiBEZWxldGUuCgkocGx1Z2luX2NhbGxfYWxsX3N5bWJvbHNfcmVhZCk6IERvbid0IHR3aWRkbGUgYWxsb3dfbXVsdGlwbGVfZGVmaW5pdGlvbi4KCShwbHVnaW5fbXVsdGlwbGVfZGVmaW5pdGlvbik6IFVwZGF0ZS4KCgkyMDExLTA0LTE4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KCVBSIGxkLzEyMzY1CglQUiBsZC8xMjY3MgoJKiBsZGZpbGUuYyAobGRmaWxlX3RyeV9vcGVuX2JmZCk6IERvbid0IGF0dGVtcHQgYW55IHBsdWdpbiBhY3Rpb24KCXdoZW4gbm9fbW9yZV9jbGFpbWluZy4KCSogbGRtYWluLmMgKGFkZF9hcmNoaXZlX2VsZW1lbnQpOiBMaWtld2lzZS4KCShtdWx0aXBsZV9kZWZpbml0aW9uKTogUmVtb3ZlIHBsdWdpbl9tdWx0aXBsZV9kZWZpbml0aW9uIGNhbGwuCgkobm90aWNlKTogUmVtb3ZlIHBsdWdpbl9ub3RpY2UgY2FsbC4KCSogbGRsYW5nLmMgKGxhbmdfbGlzdF9pbnNlcnRfYWZ0ZXIsIHZvaWQgbGFuZ19saXN0X3JlbW92ZV90YWlsKTogTW92ZS4KCURlbGV0ZSBwcm90b3R5cGUuCgkocGx1Z2luX2luc2VydCk6IE5ldyBzdGF0aWMgdmFyLgoJKG9wZW5faW5wdXRfYmZkcyk6IE9ubHkgcmVzY2FuIGxpYnMgYWZ0ZXIgcGx1Z2luIGluc2VydCBwb2ludC4KCShsYW5nX2djX3NlY3Rpb25zKTogT21pdCBwbHVnaW4gY2xhaW1lZCBmaWxlcy4KCShsYW5nX3Byb2Nlc3MpOiBTZXQgcGx1Z2luX2luc2VydC4gIE9ubHkgcmVzY2FuIHdoZW4gcGx1Z2luIGFkZHMKCW9iamVjdHMuCgkqIHBsdWdpbi5oIChub19tb3JlX2NsYWltaW5nKTogRGVjbGFyZS4KCShwbHVnaW5fbm90aWNlLCBwbHVnaW5fbXVsdGlwbGVfZGVmaW5pdGlvbik6IERvbid0IGRlY2xhcmUuCgkqIHBsdWdpbi5jOiBGb3JtYXR0aW5nLgoJKG9yaWdfbm90aWNlX2FsbCwgb3JpZ19hbGxvd19tdWx0aXBsZV9kZWZzLCBvcmlnX2NhbGxiYWNrcywKCXBsdWdpbl9jYWxsYmFja3MpOiBOZXcgc3RhdGljIHZhcnMuCgkobm9fbW9yZV9jbGFpbWluZyk6IE1ha2UgZ2xvYmFsLgoJKHBsdWdpbl9jYWNoZWRfYWxsb3dfbXVsdGlwbGVfZGVmcyk6IERlbGV0ZS4KCShwbHVnaW5fZ2V0X2lyX2R1bW15X2JmZCk6IFNldCBTRUNfRVhDTFVERSBvbiBkdW1teSAudGV4dCBzZWN0aW9uLAoJdXNlIG5ld2VyIGJmZF9tYWtlX3NlY3Rpb24gdmFyaWFudC4gIE1ha2UgQ09NTU9OIHNlY3Rpb24gdG9vLgoJRXJyb3IgaGFuZGxpbmcuICBDb3JyZWN0IHNldHRpbmcgb2YgZ3Agc2l6ZS4KCShhc3ltYm9sX2Zyb21fcGx1Z2luX3N5bWJvbCk6IFByb3Blcmx5IGNhc3QgbGFzdCBhcmcgb2YgY29uY2F0LgoJKG1lc3NhZ2UpOiBMaWtld2lzZSBmb3IgQUNPTkNBVC4KCShhc3ltYm9sX2Zyb21fcGx1Z2luX3N5bWJvbCk6IFVzZSBvdXIgQ09NTU9OIHNlY3Rpb24uCgkoZ2V0X3N5bWJvbHMpOiBXaGVuIHJlcG9ydF9wbHVnaW5fc3ltYm9scywgc2hvdyB2aXNpYmlsaXR5IHRvby4KCShpbml0X25vbl9pcm9ubHlfaGFzaCk6IE1vdmUuICBEb24ndCB0ZXN0IG5vbl9pcm9ubHlfaGFzaC4KCShwbHVnaW5fbG9hZF9wbHVnaW5zKTogU2F2ZSBzdGF0ZSBvZiBsaW5rZXIgY2FsbGJhY2tzLCBzZXQgdXAgdG8KCWNhbGwgcGx1Z2luX25vdGljZSBpbnN0ZWFkLiAgQ2FsbCBpbml0X25vbl9pcm9ubHlfaGFzaCBoZXJlLgoJKHBsdWdpbl9jYWxsX2FsbF9zeW1ib2xzX3JlYWQpOiBTZXQgcGx1Z2luX211bHRpcGxlX2RlZmluaXRpb24gaW4KCXBsdWdpbiBjYWxsYmFja3MuCgkocGx1Z2luX25vdGljZSk6IFJld3JpdGUuCgkocGx1Z2luX211bHRpcGxlX2RlZmluaXRpb24pOiBNYWtlIHN0YXRpYywgY2FsbCBvcmlnaW5hbCBjYWxsYmFjay4KCgkyMDExLTA0LTE1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KCVBSIGxkLzEyNjcyCgkqIGxkbGFuZy5jIChlbnVtIG9wZW5fYmZkX21vZGUpOiBOZXcuCgkob3Blbl9pbnB1dF9iZmRzKTogUmVwbGFjZSAiZm9yY2UiIHBhcmFtIHdpdGggIm1vZGUiLiAgUmVsb2FkCglhcmNoaXZlcyBmb3IgcmVzY2FuLiAgVXBkYXRlIGFsbCBjYWxsZXJzLgoJKGxhbmdfcHJvY2Vzcyk6IE1ha2UgYW5vdGhlciBvcGVuX2lucHV0X2JmZHMgcGFzcyBmb3IgcGx1Z2lucy4KCgkyMDExLTAzLTIzICBKb3NlcGggTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCSogbGV4c3VwLmMgKHBhcnNlX2FyZ3MpOiBPbmx5IHNldCByZXBvcnRfcGx1Z2luX3N5bWJvbHMgaWYgcGx1Z2lucwoJYXJlIGVuYWJsZWQuICBNYXJrIGxldmVsIGFzIHBvc3NpYmx5IHVudXNlZC4KCgkyMDExLTAzLTEwICBEYXZlIEtvcm4gIDxkYXZlLmtvcm4uY3lnd2luQGdtYWlsLmNvbT4KCSogcGx1Z2luLmMgKGdldF9zeW1ib2xzKTogVXNlIHdyYXBwZWQgbG9va3VwIGZvciB1bmRlZmluZWQgc3ltYm9scy4KCgkyMDExLTAzLTEwICBEYXZlIEtvcm4gIDxkYXZlLmtvcm4uY3lnd2luQGdtYWlsLmNvbT4KCSogbGRsYW5nLmMgKGxhbmdfY2hlY2spOiBEb24ndCBydW4gY2hlY2tzIG9uIGR1bW15IElSIEJGRHMuCgoJMjAxMS0wMy0xMCAgRGF2ZSBLb3JuICA8ZGF2ZS5rb3JuLmN5Z3dpbkBnbWFpbC5jb20+CgkqIGxkbGFuZy5oIChsYW5nX2lucHV0X3N0YXRlbWVudF90eXBlKTogQWRkIG5ldyAnY2xhaW1fYXJjaGl2ZScgZmxhZywKCXdyYXBwaW5nIGJvdGggaXQgYW5kICdjbGFpbScgZmxhZyBpbiAjaWZkZWYgRU5BQkxFX1BMVUdJTlMuCgkqIGxkbWFpbi5jIChhZGRfYXJjaGl2ZV9lbGVtZW50KTogU2V0IGl0IGlmIHRoZSBtZW1iZXIgaXMgY2xhaW1lZC4KCSogbGRsYW5nLmMgKG5ld19hZmlsZSk6IEluaXRpYWxpc2UgY2xhaW1fYXJjaGl2ZSBhbmQgY2xhaW1lZCBtZW1iZXJzLgoJKGZpbmRfcmVwbGFjZW1lbnRzX2luc2VydF9wb2ludCk6IE5ldyBoZWxwZXIgZnVuY3Rpb24uCgkobGFuZ19wcm9jZXNzKTogQWZ0ZXIgYWRkaW5nIGFuZCBvcGVuaW5nIHJlcGxhY2VtZW50IGZpbGVzIHBhc3NlZAoJZnJvbSBwbHVnaW4sIHNwbGljZSB0aGVtIGludG8gY29ycmVjdCBwbGFjZSBpbiBzdGF0ZW1lbnQgbGlzdCBhbmQKCWZpbGUgY2hhaW5zIHRvIHByZXNlcnZlIGNyaXRpY2FsIGxpbmsgb3JkZXIuCgkobGFuZ19saXN0X2luc2VydF9hZnRlcik6IE5ldyBoZWxwZXIgZnVuY3Rpb24uCgkobGFuZ19saXN0X3JlbW92ZV90YWlsKTogTGlrZXdpc2UuCgoJMjAxMS0wMy0xMCAgRGF2ZSBLb3JuICA8ZGF2ZS5rb3JuLmN5Z3dpbkBnbWFpbC5jb20+CgkqIHBsdWdpbi5jIChJUk9OTFlfU1VGRklYKTogUmV2aXNlIHRvIG5pY2VseSBodW1hbi1yZWFkYWJsZSBmb3JtLgoJKElST05MWV9TVUZGSVhfTEVOKTogRGVsZXRlLgoJKHBsdWdpbl9nZXRfaXJfZHVtbXlfYmZkKTogRG9uJ3QgYXBwZW5kIElST05MWV9TVUZGSVguCgkoaXNfaXJfZHVtbXlfYmZkKTogRG9uJ3QgbG9vayBmb3Igc3VmZml4OyBjaGVjayBjbGFpbWVkIGZsYWcgb2YKCWVuY2xvc2luZyBsYW5nIGlucHV0IHN0YXRlbWVudCBpbnN0ZWFkLgoKCTIwMTEtMDMtMDQgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCSogbGQudGV4aW5mbzogRG9jdW1lbnQgLS12ZXJib3NlWz1OVU1CRVJdLgoJKiBsZXhzdXAuYyAobGRfb3B0aW9ucyk6IFVwZGF0ZSAtLXZlcmJvc2UuCgkocGFyc2VfYXJncyk6IFNldCByZXBvcnRfcGx1Z2luX3N5bWJvbHMuCgkqIHBsdWdpbi5jIChyZXBvcnRfcGx1Z2luX3N5bWJvbHMpOiBOZXcuCgkoZ2V0X3N5bWJvbHMpOiBSZXBvcnQgcGx1Z2luIHN5bWJvbHMgaWYgcmVwb3J0X3BsdWdpbl9zeW1ib2xzCglpcyBUUlVFLgoJKiBwbHVnaW4uaCAocmVwb3J0X3BsdWdpbl9zeW1ib2xzKTogTmV3LgoKCTIwMTEtMDItMjQgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCVBSIGxkLzEyNTA3CgkqIHBsdWdpbi5jIChnZXRfc3ltYm9scyk6IERvbid0IGNoZWNrIGVudHJ5IHN5bWJvbCBoZXJlLgoJKGluaXRfbm9uX2lyb25seV9oYXNoKTogQWRkIGVudHJ5X3N5bWJvbCBjaGFpbiBpbnRvCglub25faXJvbmx5X2hhc2guCgoJMjAxMS0wMi0yNCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoJUFIgbGQvMTI1MDcKCSogcGx1Z2luLmMgKGdldF9zeW1ib2xzKTogRG9uJ3QgbWFyayBlbnRyeSBzeW1ib2wgSVIgb25seS4KCgkyMDEwLTEyLTA2ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgkqIGxleHN1cC5jIChsZF9vcHRpb25zKTogQWRkIC1mbHRvIGFuZCAtZmx0by1wYXJ0aXRpb249IGZvcgoJR0NDIExUTyBvcHRpb24gY29tcGF0aWJpbGl0eS4KCgkyMDEwLTEyLTAxICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgkqIHBsdWdpbi5oOiBSZS1pbmRlbnQuCgoyMDExLTA0LTIwICBUcmlzdGFuIEdpbmdvbGQgIDxnaW5nb2xkQGFkYWNvcmUuY29tPgoKCSogZW11bHRlbXBsL2FpeC5lbSAoX2FkZF9vcHRpb25zKTogSWdub3JlIC1iYmlndG9jIHN3aXRjaC4KCjIwMTEtMDMtMjYgIEpvaG4gTWFyaW5vICA8YmludXRpbHNAbWFyaW5vLnN0PgoKCSogY29uZmlndXJlLmhvc3Q6IFVwZGF0ZSAqLSotZHJhZ29uZmx5KiBob3N0IGVudHJ5LgoJKiBjb25maWd1cmUudGd0OiBVcGRhdGUgKi0qLWRyYWdvbmZseSogdGFyZ2V0IGVudHJ5LgoJKiBsZGxleC5sOiBQcmV2ZW50IHJlZGVmaW5pdGlvbiBvZiBZWV9OT19VTlBVVC4KCjIwMTEtMDMtMTMgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNubnJjLmdjLmNhPgoKCUJhY2twb3J0IGZyb20gbWFpbmxpbmU6CgkyMDExLTAyLTE4ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmUuYW5nbGluQG5yYy1jbm5yYy5nYy5jYT4KCglQUiBsZC8xMjM3NgoJZW11bHBhcmFtcy9ocHBhbGludXguc2ggKERBVEFfQUREUik6IERlZmluZS4KCShTSExJQl9EQVRBX0FERFIpOiBMaWtld2lzZS4KCjIwMTEtMDItMTQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgoKCSogbGRtYWluLmMgKHJlbW92ZV9vdXRwdXQpOiBSZW5hbWUgdG8uLgoJKGxkX2NsZWFudXApOiAuLnRoaXMuIENhbGwgYmZkX2NhY2hlX2Nsb3NlX2FsbCBhbmQgcGx1Z2luX2NhbGxfY2xlYW51cC4KCShtYWluKTogQWRqdXN0LgoJKiBwbHVnaW4uYyAocGx1Z2luX2NhbGxfY2xlYW51cCk6IE1ha2UgZ2xvYmFsLgoJKHBsdWdpbl9sb2FkX3BsdWdpbnMpOiBEb24ndCByZWdpc3RlciBwbHVnaW5fY2FsbF9jbGVhbnVwIHdpdGggeGF0ZXhpdC4KCSogcGx1Z2luLmggKHBsdWdpbl9jYWxsX2NsZWFudXApOiBEZWNsYXJlLgoKMjAxMS0wMi0xMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJKiBzY3JpcHR0ZW1wbC9hcm1icGFiaS5zYzogUmV2ZXJ0IDIwMTAtMTEtMDIgIEguSi4gTHUuCgkqIHNjcmlwdHRlbXBsL2F2ci5zYzogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2VsZjMyY3IxNi5zYzogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2VsZjMyY3J4LnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvZWxmMzJtc3A0MzAuc2M6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9lbGYzMm1zcDQzMF8zLnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvZWxmMzJzaC1zeW1iaWFuLnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvZWxmNjRocHBhLnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvZWxmX2NoYW9zLnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvZWxmZDEwdi5zYzogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2VsZmQzMHYuc2M6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9lbGZpMzcwLnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvZWxmbTY4aGMxMS5zYzogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2VsZm02OGhjMTIuc2M6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9lbGZ4dGVuc2Euc2M6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9pcDJrLnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvaXEyMDAwLnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvbWVwLnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvbW1vLnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvdjg1MC5zYzogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL3hzdG9ybXkxNi5zYzogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2VsZi5zYzogUmV2ZXJ0IDIwMTAtMTAtMjkgIEguSi4gTHUuCgoyMDExLTAyLTEwICBBbGFuIE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KCglBcHBseSBmcm9tIG1haW5saW5lCgkyMDEwLTExLTA4ICBUaG9tYXMgU2Nod2luZ2UgIDx0aG9tYXNAc2Nod2luZ2UubmFtZT4KCSogY29uZmlndXJlLmhvc3Q6IEFkZCBzdGFuemEgZm9yICotKi1nbnUqLgoKMjAxMS0wMi0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJQmFja3BvcnQgZnJvbSBtYWlubGluZQoJMjAxMS0wMS0yMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoJKiBNYWtlZmlsZS5hbSAoQ1hYKTogUmVtb3ZlZC4KCSogY29uZmlndXJlLmluOiBBZGQgQUNfUFJPR19DWFguCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KCSogY29uZmlndXJlOiBMaWtld2lzZS4KCgkyMDExLTAxLTIyICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJkc2FuZGlmb3JkQGdvb2dsZW1haWwuY29tPgoJKiBwbHVnaW4uYyAocGx1Z2luX2dldF9pcl9kdW1teV9iZmQpOiBDb3B5IGFjcm9zcyB0aGUgYmZkJ3MKCXByaXZhdGUgZGF0YSBhbmQgR1Agc2l6ZS4KCgkyMDExLTAxLTIxICBBbGFuIE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KCSogbGRleHAuYyAoZm9sZF9iaW5hcnkpOiBTZXQgcmVzdWx0IHNlY3Rpb24gZm9yIGFyaXRobWV0aWMgYW5kCglsb2dpY2FsIG9wZXJhdGlvbnMgdG8gTlVMTCB3aGVuIGJvdGggb3BlcmFuZHMgYXJlIGluIHNhbWUgc2VjdGlvbi4KCSogbGQudGV4aW5mbyAoRXhwcmVzc2lvbiBTZWN0aW9uKTogRGVzY3JpYmUgdGhpcy4KCgkyMDExLTAxLTE0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KCSogbGRtYWluLmMgKG1haW4pOiBGbHVzaCBzdGRvdXQgYmVmb3JlIGFuZCBzdGRlcnIgYWZ0ZXIgcHJpbnRpbmcKCW1lc3NhZ2UuCgkqIGxkbWlzYy5jIChlaW5mbyk6IFNpbWlsYXJseS4KCSogcGx1Z2luLmMgKG1lc3NhZ2UpOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3BwYzY0ZWxmLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3h0ZW5zYWVsZi5lbTogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmMzJtY29yZS5zaDogVXNlIGVpbmZvIHJhdGhlciB0aGFuIHByaW50Zi4KCSogZW11bHRlbXBsL2Jlb3MuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvcGUuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvcGVwLmVtOiBMaWtld2lzZS4KCgkyMDExLTAxLTE0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KCSogZW11bHRlbXBsL2VsZjMyLmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9wbGFjZV9vcnBoYW4pOiBEb24ndAoJYXR0ZW1wdCB0byBwdXQgbm9uLWFsbG9jIG9ycGhhbnMgYmVmb3JlIGRlYnVnIHNlY3Rpb25zLCBqdXN0IHBsYWNlCgl0aGVtIGFmdGVyIC5jb21tZW50LgoKCTIwMTEtMDEtMTQgIEouIFBhcmsgIDxncmFzc21hbkBnbWFpbC5jb20+CglQUiBsZC8xMjMzOQoJKiBsZGxhbmcuYyAoc29ydF9kZWZfc3ltYm9sKTogSGFuZGxlIGJmZF9saW5rX2hhc2hfd2FybmluZyBzeW1ib2xzLgoKCTIwMTEtMDEtMTQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgoJKiBNYWtlZmlsZS5hbTogU29ydCBlbXVsYXRpb24gcnVsZXMuCgkoZWVsZjMyYW0zM2xpbi5jKTogRGVsZXRlLgoJKEFMTF9FTVVMQVRJT05fU09VUkNFUyk6IFNvcnQsIGFkZCBtaXNzaW5nIGVudHJpZXMuCgkoQUxMXzY0X0VNVUxBVElPTl9TT1VSQ0VTKTogTGlrZXdpc2UuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKCTIwMTEtMDEtMTMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgoJUFIgbGQvMTIzNTYKCSogbGQudGV4aW5mbyAoTWlzY2VsbGFuZW91cyBDb21tYW5kcyk6IERlc2NyaWJlIExEX0ZFQVRVUkUuCgkoRXhwcmVzc2lvbiBTZWN0aW9uKTogVXBkYXRlLgoJKiBsZC5oIChsZF9jb25maWdfdHlwZSk6IEFkZCBzYW5lX2V4cHIuCgkqIGxkZ3JhbS55IChpZmlsZV9wMSk6IEFkZCBMRF9GRUFUVVJFLgoJKiBsZGxleC5sIChMRF9GRUFUWVJFKTogTmV3LgoJKiBsZGVtdWwuYyAoYWZ0ZXJfcGFyc2VfZGVmYXVsdCk6IERlbGV0ZSBjb2RlIGhhbmRsaW5nIGxkX2NvbXBhdGliaWxpdHkuCgkqIGxkZXhwLmggKHN0cnVjdCBsZGV4cF9jb250cm9sKTogRGVsZXRlIHVzZXNfZGVmaW5lZC4KCSogbGRleHAuYzogUmVtb3ZlIGFsbCB1c2VzIG9mIHVzZXNfZGVmaW5lZC4KCShmb2xkX25hbWUpOiBUZXN0IGNvbmZpZy5zYW5lX2V4cHIgcmF0aGVyIHRoYW4gbGRfY29tcGF0aWJpbGl0eS4KCShleHBfZm9sZF90cmVlXzEpOiBMaWtld2lzZS4gIEFkanVzdCBoYW5kbGluZyBvZiBhc3NpZ25tZW50cwoJZHVyaW5nIGZpcnN0IHBoYXNlLgoJKiBsZGxhbmcuaCAobGRfY29tcGF0aWJpbGl0eSk6IERlbGV0ZS4KCShsYW5nX2xkX2ZlYXR1cmUpOiBEZWNsYXJlLgoJKiBsZGxhbmcuYyAobGRfY29tcGF0aWJpbGl0eSk6IERlbGV0ZS4KCShvcGVuX2lucHV0X2JmZHMpOiBPbmx5IGhhbmRsZSBhc3NpZ25tZW50cyBmb3IgLS1kZWZzeW0uCgkobGFuZ19sZF9mZWF0dXJlKTogTmV3IGZ1bmN0aW9uLgoKCTIwMTEtMDEtMTMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgoJUFIgbGQvMTIzNTYKCSogbGRleHAuaCAoZXhwX2Fzc29wKTogRGVsZXRlLgoJKGV4cF9hc3NpZ24sIGV4cF9kZWZzeW0pOiBEZWNsYXJlLgoJKiBsZGV4cC5jIChleHBfYXNzb3ApOiBNYWtlIHN0YXRpYywgaGFuZGxlIGFsbCBhc3NpZ25tZW50IHZhcmlhdGlvbnMuCgkoZXhwX2Fzc2lnbiwgZXhwX2RlZnN5bSk6IE5ldyBmdW5jdGlvbnMuCgkoZXhwX3Byb3ZpZGUpOiBVc2UgZXhwX2Fzc29wLgoJKiBsZGdyYW0ueSAoZGVmc3ltX2V4cHIpOiBVc2UgZXhwX2RlZnN5bS4KCSogbGRjdG9yLmMsICogbGRncmFtLnksICogbGRsYW5nLmMsICogbXJpLmMsICogZW11bHRlbXBsL2Jlb3MuZW0sCgkqIGVtdWx0ZW1wbC9wZS5lbSwgKiBlbXVsdGVtcGwvcGVwLmVtLCAqIGVtdWx0ZW1wbC9zcHVlbGYuZW0sCgkqIGVtdWx0ZW1wbC94dGVuc2FlbGYuZW06IFVwZGF0ZSBleHBfYXNzb3AgLT4gZXhwX2Fzc2lnbi4KCgkyMDExLTAxLTEyICBBbGFuIE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KCVBSIGxkLzEyMzgwCgkqIGxkZXhwLmggKGVudW0gcGhhc2VfZW51bSk6IENvbW1lbnQuICBBZGQgZXhwX2RhdGFzZWdfZG9uZS4KCSogbGRleHAuYyAoZm9sZF91bmFyeSA8REFUQV9TRUdNRU5UX0VORD4pOiBSZWFycmFuZ2UgY29kZS4gIFRlc3QKCWZvciBleHBfZGF0YXNlZ19kb25lIHJhdGhlciB0aGFuIGV4cGxkLnBoYXNlID09IGxhbmdfZmluYWxfcGhhc2VfZW51bQoJdG8gZGV0ZWN0IHdoZW4gd2UndmUgZmluaXNoZWQgc2l6aW5nIHNlY3Rpb25zLgoJKGZvbGRfYmluYXJ5IDxEQVRBX1NFR01FTlRfQUxJR04+KTogTGlrZXdpc2UuCgkoZm9sZF9iaW5hcnkgPERBVEFfU0VHTUVOVF9SRUxST19FTkQ+KTogTGlrZXdpc2UuICBBbHNvIHRlc3QKCXRoYXQgd2UgYXJlIG5vdCBpbnNpZGUgYW4gb3V0cHV0IHNlY3Rpb24gc3RhdGVtZW50LgoJKiBsZGxhbmcuYyAobGFuZ19zaXplX3NlY3Rpb25zKTogU2V0IGV4cF9kYXRhc2VnX2RvbmUgb24gZXhpdCBpZgoJbm90IGV4cF9kYXRhc2VnX3JlbHJvX2FkanVzdCBvciBleHBfZGF0YXNlZ19hZGp1c3QuICBEb24ndCBzZXQKCWxhbmdfZmluYWxfcGhhc2VfZW51bSBoZXJlLgoJKGxhbmdfcHJvY2Vzcyk6IFNldCBsYW5nX2ZpbmFsX3BoYXNlX2VudW0gaGVyZS4KCgkyMDExLTAxLTA1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CglQUiBsZC8xMjM2NAoJKiBwbHVnaW4uYyAoZ2V0X3N5bWJvbHMpOiBDaGVjayBpZiBvd25lcl9zZWMtPm93bmVyIGlzIE5VTEwKCWJlZm9yZSBhY2Nlc3NpbmcgaXRzIGZsYWdzIGZpZWxkLgoKCTIwMTEtMDEtMDEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCSogbGR2ZXIuYyAobGR2ZXJzaW9uKTogVXBkYXRlIGNvcHlyaWdodCB0byAyMDExLgoKCTIwMTAtMTItMjAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgoJUFIgbGQvMTIzMjcKCSogbGQudGV4aW5mbyAoRXhwcmVzc2lvbiBTZWN0aW9uKTogRGVzY3JpYmUgdHJlYXRtZW50IG9mIG51bWJlcnMKCWFuZCBhYnNvbHV0ZSBzeW1ib2xzLgoJKiBsZGVtdWwuYyAoYWZ0ZXJfb3Blbl9kZWZhdWx0KTogTG9vayB1cCBfX2xkX2NvbXBhdGliaWxpdHkuCgkqIGxkZXhwLmMgKGZvbGRfbmFtZSk6IENvbnZlcnQgYWJzb2x1dGUgc3ltYm9scyB0byBudW1iZXJzIHdoZW4KCWluc2lkZSBvdXRwdXQgc2VjdGlvbiBkZWZpbml0aW9ucywgb3Igd2hlbiBfX2xkX2NvbXBhdGliaWxpdHkgPj0gMjIxLgoJKGV4cF9mb2xkX3RyZWVfMSk6IENvbnZlcnQgbnVtYmVycyB0byBhYnNvbHV0ZSB3aGVuIG5vdCBpbiBvdXRwdXQKCXNlY3Rpb24gZGVmaW5pdGlvbiBhbmQgX19sZF9jb21wYXRpYmlsaXR5IDwgMjIxLiAgRG9uJ3QgYWx3YXlzCgljb252ZXJ0IHZhbHVlcyBvdXRzaWRlIGFuIG91dHB1dCBzZWN0aW9uIGRlZmluaXRpb24gdG8gYWJzb2x1dGUuCgkqIGxkZXhwLmggKHVzZXNfZGVmaW5lZCk6IENvbW1lbnQuCgkqIGxkbGFuZy5jIChsZF9jb21wYXRpYmlsaXR5KTogTmV3IHZhcmlhYmxlLgoJKiBsZGxhbmcuaCAobGRfY29tcGF0aWJpbGl0eSk6IERlY2xhcmUuCgkqIGVtdWx0ZW1wbC9haXguZW0sICogZW11bHRlbXBsL2FybWNvZmYuZW0sICogZW11bHRlbXBsL2Jlb3MuZW0sCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSwgKiBlbXVsdGVtcGwvZ2VuZWxmLmVtLCAqIGVtdWx0ZW1wbC9sbms5NjAuZW0sCgkqIGVtdWx0ZW1wbC9tNjhrY29mZi5lbSwgKiBlbXVsdGVtcGwvbW1vLmVtLCAqIGVtdWx0ZW1wbC9wZS5lbSwKCSogZW11bHRlbXBsL3BlcC5lbSwgKiBlbXVsdGVtcGwvc3Vub3MuZW0sICogZW11bHRlbXBsL3o4MC5lbTogQ2FsbAoJYWZ0ZXJfb3Blbl9kZWZhdWx0IGZyb20gYWZ0ZXJfb3BlbiBmdW5jdGlvbi4KCgkyMDEwLTEyLTIwICBBbGFuIE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KCVBSIGxkLzEyMDAxCglSZXZlcnQgMjAxMC0xMS0wMyBOaWNrIENsaWZ0b24KCSogbGRsYW5nLmMgKGxkbGFuZ19kZWZfY2hhaW5fbGlzdCk6IERlbGV0ZS4KCShpbnNlcnRfZGVmaW5lZCwgbGRsYW5nX2FkZF9kZWYsIGxhbmdfcGxhY2VfZGVmaW5lZHMpOiBEZWxldGUuCgkobGFuZ19wcm9jZXNzKTogRG9uJ3QgY2FsbCBsYW5nX3BsYWNlX2RlZmluZWRzLgoJKGxhbmdfYWRkX2Fzc2lnbm1lbnQpOiBEb24ndCBkbyBhbnl0aGluZyBzcGVjaWFsIGZvciAtLWRlZnN5bS4KCSogbGRleHAuaCAoc3RydWN0IGxkZXhwX2NvbnRyb2wpOiBBZGQgdXNlc19kZWZpbmVkLgoJKGV4cF9mb2xkX3RyZWVfbm9fZG90KTogRGVjbGFyZS4KCSogbGRleHAuYyAoZXhwX2ZvbGRfdHJlZSk6IENsZWFyIHVzZXNfZGVmaW5lZC4KCShleHBfZm9sZF90cmVlX25vX2RvdCk6IExpa2V3aXNlLiAgTWFrZSBnbG9iYWwuCgkoZm9sZF9uYW1lIDxERUZJTkVEPik6IFNldCB1c2VzX2RlZmluZWQuCgkoZXhwX2ZvbGRfdHJlZV8xIDxldHJlZV9hc3NpZ24+KTogRGVmaW5lIHN5bWJvbCBkdXJpbmcgZmlyc3QgcGhhc2UKCWV2ZW4gd2hlbiB0aGUgdmFsdWUgYmVpbmcgYXNzaWduZWQgaXNuJ3QgdmFsaWQuCgkqIGxkbGFuZy5jIChvcGVuX2lucHV0X2JmZHMpOiBQcm9jZXNzIGFzc2lnbm1lbnQgc3RhdGVtZW50cy4KCShsYW5nX3Byb2Nlc3MpOiBCdW1wIGxhbmdfc3RhdGVtZW50X2l0ZXJhdGlvbi4KCShzY2FuX2Zvcl9zZWxmX2Fzc2lnbm1lbnQpOiBGb3JtYXR0aW5nLgoJKHByaW50X2Fzc2lnbm1lbnQpOiBTdHlsZS4KCgkyMDEwLTEyLTEzICBBbGFuIE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KCSogbGRsYW5nLmMgKGxvYWRfc3ltYm9scyk6IENvcnJlY3QgbGFzdCBjaGFuZ2UuCgoJMjAxMC0xMi0xMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoJKiBsZGxhbmcuYyAobG9hZF9zeW1ib2xzKTogT3B0aW1pemUgZm9yIGFkZF9hcmNoaXZlX2VsZW1lbnQuCgoJMjAxMC0xMi0wNiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoJUFIgbGQvMTIyODgKCSogcGx1Z2luLmMgKG1lc3NhZ2UpOiBEb24ndCBhZGQgdGhlIHRyYWlsaW5nIGBcbicgZm9yCglMRFBMX0VSUk9SLgoKCTIwMTAtMTItMDYgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCVBSIGxkLzEyMjg4CgkqIHRlc3RwbHVnLmM6IFJlbW92ZSB0aGUgdHJhaWxpbmcgYFxuJyBmcm9tIFRWX01FU1NBR0UuCgoJMjAxMC0xMi0wNiAgRG1pdHJ5IEdvcmJhY2hldiAgPGQuZy5nb3JiYWNoZXZAZ21haWwuY29tPgoJUFIgbGQvMTIyODgKCSogcGx1Z2luLmMgKG1lc3NhZ2UpOiBVc2UgcHV0Y2hhciBmb3IgdGhlIHRyYWlsaW5nIGBcbicuCgoJMjAxMC0xMi0wNiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoJCSAgICBEbWl0cnkgR29yYmFjaGV2ICA8ZC5nLmdvcmJhY2hldkBnbWFpbC5jb20+CglQUiBsZC8xMjI4OQoJKiBsZG1haW4uYyAobWFpbik6IERvbid0IGNhbGwgcGx1Z2luX2NhbGxfY2xlYW51cC4KCSogcGx1Z2luLmMgKHBsdWdpbl9jYWxsX2NsZWFudXApOiBNYWtlIGl0IHN0YXRpYy4KCShtZXNzYWdlKTogRG9uJ3QgY2FsbCBwbHVnaW5fY2FsbF9jbGVhbnVwLgoJKHBsdWdpbl9sb2FkX3BsdWdpbnMpOiBDYWxsIHhhdGV4aXQgd2l0aCBwbHVnaW5fY2FsbF9jbGVhbnVwLgoKCTIwMTAtMTItMDUgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCVBSIGxkLzEyMjg5CgkqIHBsdWdpbi5jIChtZXNzYWdlKTogQ2FsbCBwbHVnaW5fY2FsbF9jbGVhbnVwIG9uIGZhdGFsCgllcnJvci4KCgkyMDEwLTEyLTA1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgkqIHBsdWdpbi5jIChtZXNzYWdlKTogQWRkIGEgc3BhY2UgYWZ0ZXIgYDonIGluIGVycm9yIG1lc3NhZ2UuCgoJMjAxMC0xMi0wNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoJKiBwbHVnaW4uYyAoYXN5bWJvbF9mcm9tX3BsdWdpbl9zeW1ib2wpOiBBZGQgdGhlIHRyYWlsaW5nIGBcbicKCXRvIGVpbmZvLgoJKGdldF9zeW1ib2xzKTogTGlrZXdpc2UuCgkocGx1Z2luX25vdGljZSk6IExpa2V3aXNlLgoJKHBsdWdpbl9tdWx0aXBsZV9kZWZpbml0aW9uKTogTGlrZXdpc2UuCgoJMjAxMC0xMi0wNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoJUFIgbGQvMTIyODgKCSogcGx1Z2luLmMgKG1lc3NhZ2UpOiBBZGQgdGhlIHRyYWlsaW5nIGBcbicuCgoJMjAxMC0xMi0wNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoJKiBsZGZpbGUuYyAobGRmaWxlX29wZW5fZmlsZV9zZWFyY2gpOiBDaGVjayBtYXliZV9hcmNoaXZlIGluc3RlYWQKCW9mIGlzX2FyY2hpdmUuCgkqIGVtdWx0ZW1wbC9haXguZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvZWxmMzIuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvbGludXguZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvcGUuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvcGVwLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3N1bm9zLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3Ztcy5lbTogTGlrZXdpc2UuCgkqIGxkbGFuZy5jIChuZXdfYWZpbGUpOiBTZXQgbWF5YmVfYXJjaGl2ZSBpbnN0ZWFkIG9mIGlzX2FyY2hpdmUuLgoJKiBsZGxhbmcuaCAobGFuZ19pbnB1dF9zdGF0ZW1lbnRfc3RydWN0KTogUmVwbGFjZSBpc19hcmNoaXZlCgl3aXRoIG1heWJlX2FyY2hpdmUuCgoJMjAxMC0xMi0wNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoJKiBwbHVnaW4uYyAoYXN5bWJvbF9mcm9tX3BsdWdpbl9zeW1ib2wpOiBQcm9wZXJseSBjb252ZXJ0IExUTwoJcGx1Z2luIHZpc2liaWxpdHkgdG8gRUxGIHZpc2liaWxpdHkuCgkoaXNfdmlzaWJsZV9mcm9tX291dHNpZGUpOiBSZS1pbmRlbnQuCgoJMjAxMC0xMS0yMSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoJKiBsZGZpbGUuYzogUmUtaW5kZW50IHBsdWdpbiBjb2RlLgoJKiBsZGxhbmcuYzogTGlrZXdpc2UuCgkqIGxkbWFpbi5jOiBMaWtld2lzZS4KCSogcGx1Z2luLmM6IExpa2V3aXNlLgoKCTIwMTAtMTEtMjAgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCVBSIGxkLzEyMjQ2CgkqIHBsdWdpbi5jIChhc3ltYm9sX2Zyb21fcGx1Z2luX3N5bWJvbCk6IFNldCBhbGlnbm1lbnQgb2YKCWNvbW1vbiBzeW1ib2wgdG8gMSBmb3IgRm9yIEVMRiB0YXJnZXRzLgoKCTIwMTAtMTEtMjAgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCVBSIGxkLzEyMjQ3CgkqIGxleHN1cC5jIChwYXJzZV9hcmdzKTogUHJvcGVybHkgcmVwb3J0IGxvYWRpbmcgcGx1Z2luIGVycm9yLgoKMjAxMC0xMi0yMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJKiBwby9qYS5wbzogVXBkYXRlLgoKMjAxMC0xMi0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJKiBsZGxhbmcuYyAobGFuZ19zaXplX3NlY3Rpb25zXzEpOiBBbGlnbiBsbWEgdXNpbmcgc2FtZSBhbGlnbm1lbnQKCWFzIGZvciB2bWEuCgoyMDEwLTExLTA1IFBpZXJyZSBNdWxsZXKgIDxtdWxsZXJAaWNzLnUtc3RyYXNiZy5mcj4KCgkqIGVtdWx0ZW1wbC9zcHVlbGYuZW0gKG5ld190bXBfZmlsZSk6IEZpeCB3cm9uZyBmaXJzdCBwYXJhbWV0ZXIuCgoyMDEwLTExLTMwICBKb2VsIFNoZXJyaWxsICA8am9lbC5zaGVycmlsbEBvYXJjb3JwLmNvbT4KCgkqIGNvbmZpZ3VyZS50Z3Q6IEFkZCBzcGFyYzY0LXJ0ZW1zLgoKMjAxMC0xMS0yNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJKiBwby9qYS5wbzogVXBkYXRlLgoKMjAxMC0xMS0yNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJKiBwby9iZy5wbzogVXBkYXRlLgoJKiBwby9lcy5wbzogVXBkYXRlLgoJKiBwby9maS5wbzogVXBkYXRlLgoJKiBwby9qYS5wbzogTmV3LgoJKiBwby96aF9DTi5wbzogVXBkYXRlLgoKMjAxMC0xMS0yNSAgSmFuIEh1Ymlja2EgIDxodWJpY2thQHVjdy5jej4KCgkqIHNjcmlwdHRlbXBsL2VsZi5zYzogR3JvdXAgLnRleHQuZXhpdCwgdGV4dC5zdGFydHVwIGFuZCAudGV4dC5ob3QKCXNlY3Rpb25zLgoKMjAxMC0xMS0yMyAgTWF0dGhpYXMgS2xvc2UgIDxkb2tvQHVidW50dS5jb20+CgoJKiBjb25maWd1cmUuYWM6IEZvciAtLWVuYWJsZS1nb2xkLCBoYW5kbGUgdmFsdWUgYGRlZmF1bHQnIGluc3RlYWQgb2YKCWBib3RoKicuIEFsd2F5cyBpbnN0YWxsIGxkIGFzIGxkLmdvbGQsIGluc3RhbGwgYXMgbGQgaWYgZ29sZCBpcwoJdGhlIGRlZmF1bHQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMTAtMTEtMTkgIERhdmUgS29ybiAgPGRhdmUua29ybi5jeWd3aW5AZ21haWwuY29tPgoKCSogcGx1Z2luLmMgKGlzX3Zpc2libGVfZnJvbV9vdXRzaWRlKTogTmV3IGZ1bmN0aW9uLgoJKGdldF9zeW1ib2xzKTogVXNlIGl0LgoKMjAxMC0xMS0wNSAgVHJpc3RhbiBHaW5nb2xkICA8Z2luZ29sZEBhZGFjb3JlLmNvbT4KCgkqIHBvL2xkLnBvdDogUmVnZW5lcmF0ZQoJKiBwby9QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZQoKMjAxMC0xMS0wNSAgVHJpc3RhbiBHaW5nb2xkICA8Z2luZ29sZEBhZGFjb3JlLmNvbT4KCgkqIE5FV1M6IEFkZCBtYXJrZXIgZm9yIDIuMjEuCgoyMDEwLTExLTA1ICBEYXZlIEtvcm4gIDxkYXZlLmtvcm4uY3lnd2luQGdtYWlsLmNvbT4KCgkqIHBsdWdpbi5oIChwbHVnaW5fYWN0aXZlX3BsdWdpbnNfcCk6IE5ldyBwcm90b3R5cGUuCgkoaXNfaXJfZHVtbXlfYmZkKTogRGVsZXRlIHByb3RvdHlwZS4KCSogcGx1Z2luLmM6IEZpeCBmb3JtYXR0aW5nIGlzc3Vlcy4KCShpc19pcl9kdW1teV9iZmQpOiBNYWtlIHN0YXRpYy4KCShwbHVnaW5fYWN0aXZlX3BsdWdpbnNfcCk6IE5ldyBmdW5jdGlvbi4KCSogbGRmaWxlLmMgKGxkZmlsZV90cnlfb3Blbl9iZmQpOiBVc2UgaXQgdG8gc2F2ZSB3b3JrIGlmIG5vIHBsdWdpbnMKCWFyZSBsb2FkZWQuICBBbHdheXMgY2xvc2UgZmlsZSBkZXNjcmlwdG9yIGFmdGVyIGNsYWltIGhhbmRsZXIgcmV0dXJucy4KCSogbGRtYWluLmMgKGFkZF9hcmNoaXZlX2VsZW1lbnQpOiBMaWtld2lzZS4KCjIwMTAtMTEtMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgoKCSogbGRsYW5nLmMgKGxhbmdfYWRkX3NlY3Rpb24pOiBEaXN0aW5ndWlzaCBFTEYgdHJlYXRtZW50IG9mIE5PTE9BRC4KCShtYXBfaW5wdXRfdG9fb3V0cHV0X3NlY3Rpb25zKTogTGlrZXdpc2UuCgkobGFuZ19zaXplX3NlY3Rpb25zXzEpOiBMaWtld2lzZS4KCShJR05PUkVfU0VDVElPTik6IERvbid0IHRlc3QgU0VDX05FVkVSX0xPQUQuCgkobGFuZ19jaGVja19zZWN0aW9uX2FkZHJlc3Nlcyk6IExpa2V3aXNlLgoKMjAxMC0xMS0wNCAgS2FpIFRpZXR6ICA8a2FpLnRpZXR6QG9uZXZpc2lvbi5jb20+CgoJKiBzY3JpcHR0ZW1wbC9wZS5zYyAoLmRlYnVnX3R5cGVzKTogTmV3LgoJKiBzY3JpcHR0ZW1wbC9wZXAuc2M6IExpa2V3aXNlLgoKMjAxMC0xMS0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJKiBwbHVnaW4uYyAoaXNfaXJfZHVtbXlfYmZkKTogRG9uJ3Qgc2VnZmF1bHQgb24gTlVMTCBhYmZkLgoKMjAxMC0xMS0wMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCglQUiBsZC8xMjAwMQoJKiBsZGxhbmcuYyAobGRsYW5nX2RlZl9jaGFpbl9saXN0KTogTmV3IHZhcmlhYmxlLiAgQ29udGFpbnMgYSBsaXN0CglvZiBzeW1ib2xzIGRlZmluZWQgdmlhIHRoZSAtLWRlZnN5bSBjb21tYW5kIGxpbmUgb3B0aW9uIGFuZAoJY3VycmVudGx5IHdhaXRpbmcgYXNzaWdubWVudC4KCShpbnNlcnRfZGVmaW5lZCk6IEFkZCBhIGRlZmluZWQgc3ltYm9sIHRvIHRoZSBzeW1ib2wgdGFibGUuCgkobGRsYW5nX2FkZF9kZWYpOiBBZGQgYSBlbnRyeSB0byB0aGUgbGRsYW5nX2RlZl9jaGFpbl9saXN0LgoJKGxhbmdfcGxhY2VfZGVmaW5lZHMpOiBXYWxrIGxkbGFuZ19kZWZfY2hhaW5fbGlzdCBkZWZpbmluZyB0aGUKCXN5bWJvbHMuCgkobGFuZ19wcm9jZXNzKTogQ2FsbCBsYW5nX3BsYWNlX2RlZmluZWRzLgoJKGxhbmdfYWRkX2Fzc2lnbm1lbnQpOiBJZiB0aGUgYXNzaWdubWVudCBoYXMgY29tZSBmcm9tIGEgLS1kZWZzeW0KCWNvbW1hbmQgbGluZSBvcHRpb24gdGhlbiBjYWxsIGxhbmdfYWRkX2RlZi4KCjIwMTAtMTEtMDMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgoKCSogTWFrZWZpbGUuYW0gKGVlbGY2NGhwcGEuYyk6IENvcnJlY3QgZGVwZW5kZW5jaWVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMTAtMTEtMDIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIHNjcmlwdHRlbXBsL2FybWJwYWJpLnNjOiBJbmNsdWRlIGNvbXByZXNzZWQgRFdBUkYgZGVidWcKCXNlY3Rpb25zLgoJKiBzY3JpcHR0ZW1wbC9hdnIuc2M6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9lbGYzMmNyMTYuc2M6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9lbGYzMmNyeC5zYzogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2VsZjMybXNwNDMwLnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvZWxmMzJtc3A0MzBfMy5zYzogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2VsZjMyc2gtc3ltYmlhbi5zYzogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2VsZjY0aHBwYS5zYzogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2VsZl9jaGFvcy5zYzogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2VsZmQxMHYuc2M6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9lbGZkMzB2LnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvZWxmaTM3MC5zYzogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2VsZm02OGhjMTEuc2M6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9lbGZtNjhoYzEyLnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvZWxmeHRlbnNhLnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvaXAyay5zYzogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2lxMjAwMC5zYzogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL21lcC5zYzogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL21tby5zYzogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL3Y4NTAuc2M6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC94c3Rvcm15MTYuc2M6IExpa2V3aXNlLgoKMjAxMC0xMC0yOSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogbGRmaWxlLmMgKGxkZmlsZV90cnlfb3Blbl9iZmQpOiBTZXQgQkZEX0RFQ09NUFJFU1MgYWZ0ZXIKCWJmZF9vcGVuciByZXR1cm5zLgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKGdsZCR7RU1VTEFUSU9OX05BTUV9X3RyeV9uZWVkZWQpOiBMaWtld2lzZS4KCgkqIHNjcmlwdHRlbXBsL2VsZi5zYzogSW5jbHVkZSBjb21wcmVzc2VkIERXQVJGIGRlYnVnIHNlY3Rpb25zLgoKMjAxMC0xMC0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJKiBsZGZpbGUuYyAoZmluZF9zY3JpcHRzX2Rpcik6IERvbid0IGxvb2sgaW4gYWJzb2x1dGUgU0NSSVBURElSLgoKMjAxMC0xMC0yOCAgTWF0dGhpYXMgS2xvc2UgIDxkb2tvQHVidW50dS5jb20+CgoJKiBsZC50ZXhpbmZvOiBBZGQgZGlyZWN0b3J5IHNlY3Rpb24gZm9yIGluZm8gZG9jdW1lbnQuCgkqIGxkaW50LnRleGluZm86IExpa2V3aXNlLgoKMjAxMC0xMC0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJKiBlbXVsdGVtcGwvcHBjNjRlbGYuZW0gKGdsZCR7RU1VTEFUSU9OX05BTUV9X25ld192ZXJzX3BhdHRlcm4pOiBGb3IKCS0tbm8tdW5kZWZpbmVkLXZlcnNpb24sIGRvbid0IHJlcG9ydCBkb3Qgc3ltIHZlcnNpb25zIGFkZGVkIGJ5IGxkLgoKMjAxMC0xMC0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJKiBsZGxhbmcuaCAobGRsYW5nX2FkZF91bmRlZik6IEFkZCBjbWRsaW5lIHBhcmFtLgoJKiBsZGxhbmcuYyAodW5kZWZfZnJvbV9jbWRsaW5lKTogTmV3IHZhci4KCShsZGxhbmdfYWRkX3VuZGVmKTogQWRkIGNtZGxpbmUgcGFyYW0uICBTZXQgdW5kZWZfZnJvbV9jbWRsaW5lLgoJKGxhbmdfZW5kKTogUmVhbGx5IHJlcXVpcmUgLWUgb3IgLXUgZnJvbSBjb21tYW5kIGxpbmUgb24KCXJlbG9jYXRhYmxlIC0tZ2Mtc2VjdGlvbnMuCgkqIGxkZW11bC5jIChhZnRlcl9wYXJzZV9kZWZhdWx0KTogQWRqdXN0IGxkbGFuZ19hZGRfdW5kZWYgY2FsbC4KCSogbGRncmFtLnkgKGV4dGVybl9uYW1lX2xpc3RfYm9keSk6IExpa2V3aXNlLgoJKiBsZXhzdXAuYyAocGFyc2VfYXJncyk6IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvYWl4LmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9yZWFkX2ZpbGUpOiBMaWtld2lzZS4KCjIwMTAtMTAtMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgoKCSogcGx1Z2luLmMgKHBsdWdpbl9nZXRfaXJfZHVtbXlfYmZkKTogU2V0IGJmZF91c2VfcmVzZXJ2ZWRfaWQuCglGb3JtYXR0aW5nLgoKMjAxMC0xMC0yMiAgUmFpbmVyIE9ydGggIDxyb0BDZUJpVGVjLlVuaS1CaWVsZWZlbGQuREU+CgoJKiBlbXVscGFyYW1zL2VsZjMyX3NwYXJjX3NvbDIuc2ggKE9VVFBVVF9GT1JNQVQpOiBTZXQgdG8KCWVsZjMyLXNwYXJjLXNvbDIuCgkqIGVtdWxwYXJhbXMvZWxmNjRfc3BhcmNfc29sMi5zaCAoT1VUUFVUX0ZPUk1BVCk6IFNldCB0bwoJZWxmNjQtc3BhcmMtc29sMi4KCjIwMTAtMTAtMjIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgoKCSogbGR3cml0ZS5jIChidWlsZF9saW5rX29yZGVyIDxsYW5nX2RhdGFfc3RhdGVtZW50X2VudW0+KTogRG9uJ3QKCW91dHB1dCB3aGVuIHNlY3Rpb24gaGFzIG5vIGNvbnRlbnRzLgoJKGJ1aWxkX2xpbmtfb3JkZXIgPGxhbmdfcmVsb2Nfc3RhdGVtZW50X2VudW0+KTogTGlrZXdpc2UuCgoyMDEwLTEwLTIxICBKb3NlcGggTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGVtdWxwYXJhbXMvZWxmMzJfdGljNnhfbGUuc2ggKEFUVFJTX1NFQ1RJT05TKTogVXNlCgkuYzZ4YWJpLmF0dHJpYnV0ZXMsIG5vdCBfX1RJX2J1aWxkX2F0dHJpYnV0ZXMuCgoyMDEwLTEwLTIwICBEYXZlIEtvcm4gIDxkYXZlLmtvcm4uY3lnd2luQGdtYWlsLmNvbT4KCgkqIHBsdWdpbi5jIChnZXRfc3ltYm9scyk6IENoZWNrIHN5bWJvbCB0eXBlIGNvcnJlY3RseS4KCjIwMTAtMTAtMTUgIERhdmUgS29ybiAgPGRhdmUua29ybi5jeWd3aW5AZ21haWwuY29tPgoKCSogY29uZmlndXJlLmluOiBJZiA8ZGxmY24uaD4gY2FuJ3QgYmUgZm91bmQsIHRyeSBmb3IgPFdpbmRvd3MuaD4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjb25maWcuaW46IExpa2V3aXNlLgoJKiBwbHVnaW4uYyBbIUhBVkVfRExGQ05fSCAmJiBIQVZFX1dJTkRPV1NfSF0gKGRsb3Blbik6IFByb3ZpZGUKCXRyaXZhbCBMb2FkTGlicmFyeS1iYXNlZCByZXBsYWNlbWVudCBmb3IgV2luZG93cyBzeXN0ZW1zLgoJWyFIQVZFX0RMRkNOX0ggJiYgSEFWRV9XSU5ET1dTX0hdIChkbHN5bSk6IExpa2V3aXNlIHRyaXZpYWwKCXJlcGxhY2VtZW50IGJhc2VkIG9uIEdldFByb2NBZGRyZXNzLgoJWyFIQVZFX0RMRkNOX0ggJiYgSEFWRV9XSU5ET1dTX0hdIChkbHN5bSk6IExpa2V3aXNlIEZyZWVMaWJyYXJ5LgoJKiBzeXNkZXAuaDogRG9uJ3QgaW5mZXIgcHJlc2VuY2Ugb2YgPGRsZmNuLmg+IGZyb20gRU5BQkxFX1BMVUdJTlMKCWFueW1vcmUsIHVzZSBpdHMgb3duIGd1YXJkLgoKMjAxMC0xMC0xNSAgRGF2ZSBLb3JuICA8ZGF2ZS5rb3JuLmN5Z3dpbkBnbWFpbC5jb20+CgoJKiBwbHVnaW4uYyAoYWRkX2lucHV0X2ZpbGUpOiBUYWtlIGNvcHkgb2YgaW5wdXQgc3RyaW5nLgoJKGFkZF9pbnB1dF9saWJyYXJ5KTogTGlrZXdpc2UuCgkoc2V0X2V4dHJhX2xpYnJhcnlfcGF0aCk6IExpa2V3aXNlLgoKMjAxMC0xMC0xNCAgRGF2ZSBLb3JuICA8ZGF2ZS5rb3JuLmN5Z3dpbkBnbWFpbC5jb20+CgoJQXBwbHkgTEQgcGx1Z2luIHBhdGNoIHNlcmllcyAocGFydCA2LzYpLgoJKiBsZGxhbmcuYyAobG9hZF9zeW1ib2xzKTogSGFuZGxlIGJmZCBzdWJzaXR1dGlvbiB3aGVuIGNhbGxpbmcgdGhlCglhZGRfYXJjaGl2ZV9lbGVtZW50IGNhbGxiYWNrLgoJKiBsZG1haW4uYyAoYWRkX2FyY2hpdmVfZWxlbWVudClbRU5BQkxFX1BMVUdJTlNdOiBPZmZlciB0aGUgYXJjaGl2ZQoJbWVtYmVyIHRvIHRoZSBwbHVnaW5zIGFuZCBpZiBjbGFpbWVkIHNldCAic3Vic2JmZCIgb3V0cHV0IHBhcmFtZXRlciB0bwoJcG9pbnQgdG8gdGhlIGR1bW15IElSLW9ubHkgQkZELgoKMjAxMC0xMC0xNCAgRGF2ZSBLb3JuICA8ZGF2ZS5rb3JuLmN5Z3dpbkBnbWFpbC5jb20+CgoJQXBwbHkgTEQgcGx1Z2luIHBhdGNoIHNlcmllcyAocGFydCA1LzYpLgoJKiBwbHVnaW4uYyAoYXN5bWJvbF9mcm9tX3BsdWdpbl9zeW1ib2wpOiBJZiB0aGUgYmZkIGlzIGFuIEVMRiBiZmQsCglmaW5kIHRoZSBlbGYgc3ltYm9sIGRhdGEgYW5kIHNldCB0aGUgdmlzaWJpbGl0eSBpbiB0aGUgc3Rfb3RoZXIgZmllbGQuCgoyMDEwLTEwLTE0ICBEYXZlIEtvcm4gIDxkYXZlLmtvcm4uY3lnd2luQGdtYWlsLmNvbT4KCglBcHBseSBMRCBwbHVnaW4gcGF0Y2ggc2VyaWVzIChwYXJ0IDQvNikuCgkqIGxkbGFuZy5jIChsYW5nX3Byb2Nlc3MpW0VOQUJMRV9QTFVHSU5TXTogTW92ZSBpbnZvY2F0aW9uIG9mCglwbHVnaW5fY2FsbF9hbGxfc3ltYm9sc19yZWFkIHRvIGJlZm9yZSBzZXR0aW5nIG9mIGdjX3N5bV9saXN0LCBhbmQKCW9wZW4gYW55IG5ldyBpbnB1dCBmaWxlcyB0aGF0IG1heSBoYXZlIGJlZW4gYWRkZWQgZHVyaW5nIGl0LgoJKiBsZG1haW4uYyAobXVsdGlwbGVfZGVmaW5pdGlvbilbRU5BQkxFX1BMVUdJTlNdOiBDYWxsIG91dCB0bwoJcGx1Z2luX211bHRpcGxlX2RlZmluaXRpb24gYW5kIGxldCBpdCBoYXZlIGZpcnN0IHNheSBvdmVyIHdoYXQgdG8gZG8KCXdpdGggdGhlIGNsYXNoaW5nIGRlZmluaXRpb25zLgoJKiBwbHVnaW4uYyAobm9fbW9yZV9jbGFpbWluZyk6IE5ldyBib29sZWFuIHZhcmlhYmxlLgoJKHBsdWdpbl9jYWNoZWRfYWxsb3dfbXVsdGlwbGVfZGVmcyk6IExpa2V3aXNlLgoJKGFkZF9pbnB1dF9maWxlKTogSW1wbGVtZW50LgoJKGFkZF9pbnB1dF9saWJyYXJ5KTogTGlrZXdpc2UuCgkoc2V0X2V4dHJhX2xpYnJhcnlfcGF0aCk6IExpa2V3aXNlLgoJKHBsdWdpbl9jYWxsX2NsYWltX2ZpbGUpOiBEb24ndCBkbyBhbnl0aGluZyB3aGVuIG5vX21vcmVfY2xhaW1pbmcgc2V0LgoJKHBsdWdpbl9jYWxsX2FsbF9zeW1ib2xzX3JlYWQpOiBTZXQgaXQuICBEaXNhYmxlIGxpbmsgaW5mbwoJImFsbG93X211bHRpcGxlX2RlZmluaXRpb24iIGZsYWcsIGJ1dCBjYWNoZSBpdHMgdmFsdWUuCgkocGx1Z2luX211bHRpcGxlX2RlZmluaXRpb24pOiBOZXcgZnVuY3Rpb24uCgkqIHBsdWdpbi5oIChwbHVnaW5fbXVsdGlwbGVfZGVmaW5pdGlvbik6IEFkZCBwcm90b3R5cGUuCgkqIHRlc3RwbHVnLmMgKGFkZGZpbGVfZW51bV90KTogTmV3IGVudW1lcmF0ZWQgdHlwZWRlZi4KCShhZGRfZmlsZV90KTogTmV3IHN0cnVjdCB0eXBlZGVmLgoJKGFkZGZpbGVzX2xpc3QpOiBOZXcgdmFyaWFibGUuCgkoYWRkZmlsZXNfdGFpbF9jaGFpbl9wdHIpOiBMaWtld2lzZS4KCShyZWNvcmRfYWRkX2ZpbGUpOiBOZXcgZnVuY3Rpb24uCgkocGFyc2Vfb3B0aW9uKTogUGFyc2UgImFkZDoiLCAibGliOiIgYW5kICJkaXI6IiBvcHRpb25zIGFuZCBjYWxsIGl0LgoJKG9uYWxsX3N5bWJvbHNfcmVhZCk6IEl0ZXJhdGUgdGhlIGxpc3Qgb2YgbmV3IGZpbGVzLCBsaWJzIGFuZCBkaXJzLAoJYWRkaW5nIHRoZW0uCgoyMDEwLTEwLTE0ICBEYXZlIEtvcm4gIDxkYXZlLmtvcm4uY3lnd2luQGdtYWlsLmNvbT4KCglBcHBseSBMRCBwbHVnaW4gcGF0Y2ggc2VyaWVzIChwYXJ0IDMvNikuCgkqIGxkbWFpbi5jIChub3RpY2UpW0VOQUJMRV9QTFVHSU5TXTogQ2FsbCBwbHVnaW5fbm90aWNlLgoJKiBwbHVnaW4uYyAobm9uX2lyb25seV9oYXNoKTogQWRkIG5ldyBiZmQgaGFzaCB0YWJsZS4KCShwbHVnaW5fbG9hZF9wbHVnaW5zKTogRXhpdCBlYXJseSBpZiBubyBwbHVnaW5zIHRvIGxvYWQuICBJZiBwbHVnaW5zCglkbyBsb2FkIHN1Y2Nlc3NmdWxseSwgc2V0IG5vdGljZV9hbGwgZmxhZyBpbiBsaW5rIGluZm8uCgkoZ2V0X3N5bWJvbHMpOiBJbXBsZW1lbnQuCgkocGx1Z2luX2xvYWRfcGx1Z2lucyk6IEV4aXQgZWFybHkgaWYgbm8gcGx1Z2lucyB0byBsb2FkLCBlbHNlIGFmdGVyCglsb2FkaW5nIHBsdWdpbnMgc3VjY2Vzc2Z1bGx5IGVuYWJsZSBub3RpY2VfYWxsIG1vZGUuCgkoaW5pdF9ub25faXJvbmx5X2hhc2gpOiBMYXppbHkgaW5pdCBub25faXJvbmx5X2hhc2ggdGFibGUuCgkocGx1Z2luX25vdGljZSk6IFJlY29yZCBzeW1ib2xzIHJlZmVyZW5jZWQgZnJvbSBub24tSVIgZmlsZXMgaW4gdGhlCglub25faXJvbmx5X2hhc2guICBTdXBwcmVzcyB0cmFjaW5nLCBjcmVmIGdlbmVyYXRpb24gYW5kIG5vY3Jvc3NyZWZzCgl0cmFja2luZyBmb3Igc3ltYm9scyBmcm9tIGR1bW15IElSIGJmZHMuCgkqIHBsdWdpbi5oOiBGaXggZm9ybWF0dGluZy4KCShwbHVnaW5fbm90aWNlKTogQWRkIHByb3RvdHlwZS4KCSogdGVzdHBsdWcuYyAoZHVtcHJlc29sdXRpb25zKTogTmV3IGdsb2JhbCB2YXIuCgkocGFyc2Vfb3B0aW9ucyk6IEFjY2VwdCAiZHVtcHJlc29sdXRpb25zIi4KCShvbmFsbF9zeW1ib2xzX3JlYWQpOiBHZXQgc3ltcyBhbmQgZHVtcCByZXNvbHV0aW9ucyBpZiBpdCB3YXMgZ2l2ZW4uCgoyMDEwLTEwLTE0ICBEYXZlIEtvcm4gIDxkYXZlLmtvcm4uY3lnd2luQGdtYWlsLmNvbT4KCglBcHBseSBMRCBwbHVnaW4gcGF0Y2ggc2VyaWVzIChwYXJ0IDIvNikuCgkqIGxkZmlsZS5jIChsZGZpbGVfdHJ5X29wZW5fYmZkKVtFTkFCTEVfUExVR0lOU106IERvbid0IHJldHVybiBlYXJseQoJZHVyaW5nIGNvbXBhdCBjaGVja3MgaWYgdGhleSBwYXNzLCBpbnN0ZWFkIG9mZmVyIGFueSBzdWNjZXNzZnVsbHkKCW9wZW5lZCBhbmQgYWNjZXB0ZWQgZmlsZSB0byB0aGUgcGx1Z2luIGNsYWltIGZpbGUgaG9va3MgY2hhaW4uICBDcmVhdGUKCWEgZHVtbXkgYmZkIHRvIGFjY2VwdCBzeW1ib2xzIGFkZGVkIGJ5IHRoZSBwbHVnaW4sIGlmIHRoZSBwbHVnaW4KCWNsYWltcyB0aGUgZmlsZS4KCSogbGRsYW5nLmMgKGxhbmdfcHJvY2VzcylbRU5BQkxFX1BMVUdJTlNdOiBDYWxsIHBsdWdpbiBhbGwgc3ltYm9scwoJcmVhZCBob29rIGNoYWluIGJlZm9yZSBsZGVtdWxfYWZ0ZXJfb3Blbi4KCSogbGRsYW5nLmggKHN0cnVjdCBsYW5nX2lucHV0X3N0YXRlbWVudF9zdHJ1Y3QpOiBBZGQgbmV3IHNpbmdsZS1iaXQKCSdjbGFpbWVkJyBmbGFnLgoJKiBwbHVnaW4uYyAoSVJPTkxZX1NVRkZJWCk6IE5ldyBtYWNybyBmb3IgZHVtbXkgYmZkIGZpbGUgc3VmZml4LgoJKElST05MWV9TVUZGSVhfTEVOKTogTGVuZ3RoIG9mIHRoZSBhYm92ZSBzdHJpbmcuCgkocGx1Z2luX2dldF9pcl9kdW1teV9iZmQpOiBOZXcgZnVuY3Rpb24gdG8gY3JlYXRlIHRoZSBkdW1teSBiZmQgdXNlZAoJdG8gc3RvcmUgc3ltYm9scyBmb3IgaXItb25seSBmaWxlcy4KCShpc19pcl9kdW1teV9iZmQpOiBOZXcgZnVuY3Rpb24gdG8gY2hlY2sgaWYgYSBiZmQgaXMgaXItb25seS4KCShhc3ltYm9sX2Zyb21fcGx1Z2luX3N5bWJvbCk6IE5ldyBmdW5jdGlvbiBjb252ZXJ0cyBzeW1ib2wgZm9ybWF0cy4KCShhZGRfc3ltYm9scyk6IENhbGwgaXQgdG8gY29udmVydCBwbHVnaW4gc3ltcyB0byBiZmQgc3ltcyBhbmQgYWRkCgl0aGVtIHRvIHRoZSBkdW1teSBiZmQuCgkqIHBsdWdpbi5oOiBBZGQgbWlzc2luZyBpbmNsdWRlIGd1YXJkcy4KCShwbHVnaW5fZ2V0X2lyX2R1bW15X2JmZCk6IEFkZCBwcm90b3R5cGUuCgkoaXNfaXJfZHVtbXlfYmZkKTogTGlrZXdpc2UuCgkqIHRlc3RwbHVnLmMgKFRWX01FU1NBR0UpOiBOZXcgaGVscGVyIG1hY3JvLgoJKHN0cnVjdCBjbGFpbV9maWxlKTogTmV3IHN0cnVjdC4KCShjbGFpbV9maWxlX3QpOiBOZXcgdHlwZWRlZi4KCSh0YWdfbmFtZXNbXSk6IE1ha2Ugc3RhdGljIGFuZCBjb25zdC4KCShjbGFpbWZpbGVzX2xpc3QpOiBOZXcgdmFyaWFibGUuCgkoY2xhaW1maWxlc190YWlsX2NoYWluX3B0cik6IExpa2V3aXNlLgoJKGxhc3RfY2xhaW1maWxlKTogTGlrZXdpc2UuCgkocmVjb3JkX2NsYWltX2ZpbGUpOiBSZWNvcmQgYSBmaWxlIHRvIGNsYWltIG9uIGEgc2luZ2x5LWxpbmtlZCBsaXN0LgoJKHBhcnNlX3N5bWRlZnN0cik6IFBhcnNlIGFuIEFTQ0lJIHJlcHJlc2VudGF0aW9uIG9mIGEgc3ltYm9sIGZyb20gYQoJcGx1Z2luIG9wdGlvbiBpbnRvIHRoZSBmaWVsZHMgb2YgYSBzdHJ1Y3QgbGRfcGx1Z2luX3N5bWJvbC4KCShyZWNvcmRfY2xhaW1lZF9maWxlX3N5bWJvbCk6ICBVc2UgaXQgdG8gcGFyc2UgcGx1Z2luIG9wdGlvbiBmb3IKCWFkZGluZyBhIHN5bWJvbC4KCShwYXJzZV9vcHRpb24pOiBQYXJzZSBjbGFpbSBmaWxlIGFuZCBhZGQgc3ltYm9sIG9wdGlvbnMuCgkoZHVtcF90dl90YWcpOiBVc2UgVFZfTUVTU0FHRS4KCShvbmxvYWQpOiBMaWtld2lzZS4KCShvbmNsYWltX2ZpbGUpOiBNYWtlIHN0YXRpYy4gIFVzZSBUVl9NRVNTQUdFLiAgU2NhbiBsaXN0IG9mIGZpbGVzIHRvCgljbGFpbSBhbmQgY2xhaW0gdGhpcyBmaWxlIGlmIHJlcXVpcmVkLCBhZGRpbmcgYW55IHN5bWJvbHMgc3BlY2lmaWVkLgoJKG9uYWxsX3N5bWJvbHNfcmVhZCk6IE1ha2Ugc3RhdGljIGFuZCB1c2UgVFZfTUVTU0FHRS4KCShvbmNsZWFudXApOiBMaWtld2lzZS4KCjIwMTAtMTAtMTQgIERhdmUgS29ybiAgPGRhdmUua29ybi5jeWd3aW5AZ21haWwuY29tPgoKCUFwcGx5IExEIHBsdWdpbiBwYXRjaCBzZXJpZXMgKHBhcnQgMS82KS4KCSogY29uZmlndXJlLmluOiBBZGQgQUNfQ0hFQ0tzIGZvciBmaWxlIGlvIGFuZCBkbGZjbiBoZWFkZXJzIGFuZAoJZnVuY3Rpb25zIGFuZCBBQ19TRUFSQ0ggZm9yIC1sZGwuCgkoZW5hYmxlX3BsdWdpbnMpOiBOZXcgc2hlbGwgdmFyaWFibGUgc2V0IGlmIGFib3ZlIHRlc3RzIGZpbmQgZGxvcGVuCglmdW5jdGlvbmFsaXR5LgoJKEVOQUJMRV9QTFVHSU5TKTogQWRkIHJlbGF0ZWQgYXV0b21ha2UgY29uZGl0aW9uYWwuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmluOiBMaWtld2lzZS4KCSogTWFrZWZpbGUuYW0gKFBMVUdJTl9DKTogRGVjbGFyZSBwbHVnaW4gQyBzb3VyY2UgZmlsZSwgY29uZGl0aW9uYWwKCW9uIEVOQUJMRV9QTFVHSU5TIGJlaW5nIGRlZmluZWQuCgkoUExVR0lOX0gpOiBMaWtld2lzZSBmb3IgaGVhZGVyIGZpbGUuCgkoUExVR0lOX09CSkVDVCk6IExpa2V3aXNlIGZvciBvYmplY3QgZmlsZS4KCShQTFVHSU5fQ0ZMQUdTKTogTGlrZXdpc2UgLUQgZmxhZyByZXF1aXJlZCB0byBjb21waWxlIHBsdWdpbiBzdXBwb3J0LgoJKEFNX0NQUEZMQUdTKTogVXNlIFBMVUdJTl9DRkxBR1MuCgkoQ0ZJTEVTKTogVXNlIFBMVUdJTl9DLgoJKEhGSUxFUyk6IFVzZSBQTFVHSU5fSC4KCShPRklMRVMpOiBVc2UgUExVR0lOX09CSkVDVC4KCShsZF9uZXdfU09VUkNFUyk6IFVzZSBQTFVHSU5fQy4KCShub2luc3RfTFRMSUJSQVJJRVMpW0VOQUJMRV9QTFVHSU5TXTogRGVjbGFyZSB0ZXN0IHBsdWdpbi4KCShsaWJsZHRlc3RwbHVnX2xhX1NPVVJDRVMpW0VOQUJMRV9QTFVHSU5TXTogQWRkIGF1dG9tYWtlIGRlZmluaXRpb24KCWZvciB0ZXN0IHBsdWdpbi4KCShsaWJsZHRlc3RwbHVnX2xhX0NGTEFHUylbRU5BQkxFX1BMVUdJTlNdOiBMaWtld2lzZS4KCShsaWJsZHRlc3RwbHVnX2xhX0xERkxBR1MpW0VOQUJMRV9QTFVHSU5TXTogTGlrZXdpc2UuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBzeXNkZXAuaDogSW5jbHVkZSBzdGRhcmcuaCwgdW5pc3RkLmggYW5kIG9uZSBvZiBmY250bC5oIG9yCglzeXMvZmlsZS5oIHdoZXJlIGF2YWlsYWJsZS4gIEluY2x1ZGUgZGxmY24uaCB3aGVuIEVOQUJMRV9QTFVHSU5TLgoJKE9fUkRPTkxZKTogU3VwcGx5IGRlZmF1bHQgZGVmaW5pdGlvbiBsaWtld2lzZSB0byBiZmQncyBzeXNkZXAuaAoJKE9fV1JPTkxZKTogTGlrZXdpc2UuCgkoT19SRFdSKTogTGlrZXdpc2UuCgkoT19BQ0NNT0RFKTogTGlrZXdpc2UuCgkoT19CSU5BUlkpOiBMaWtld2lzZS4KCShTRUVLX1NFVCk6IExpa2V3aXNlLgoJKFNFRUtfQ1VSKTogTGlrZXdpc2UuCgkoU0VFS19FTkQpOiBMaWtld2lzZS4KCSogbGRtaXNjLmMgKHZmaW5mbyk6IE1ha2Ugbm9uLXN0YXRpYy4gIEFkZCAlcCBmb3JtYXQgY2hhci4KCSogbGRtaXNjLmggKHZmaW5mbyk6IERlY2xhcmUgZXh0ZXJuIHByb3RvdHlwZS4KCSogbGV4c3VwLmMgKGVudW0gb3B0aW9uX3ZhbHVlcylbRU5BQkxFX1BMVUdJTlNdOiBBZGQgbmV3IGVudHJpZXMgZm9yCglPUFRJT05fUExVR0lOIGFuZCBPUFRJT05fUExVR0lOX09QVC4KCShsZF9vcHRpb25zW10pW0VOQUJMRV9QTFVHSU5TXTogQWRkIG9wdGlvbiBkYXRhIGZvciB0aGUgYWJvdmUgdHdvLgoJKHBhcnNlX2FyZ3MpW0VOQUJMRV9QTFVHSU5TXTogSGFuZGxlIHRoZW0sIGFuZCBsb2FkIGFsbCBwbHVnaW5zIG9uY2UKCW9wdGlvbiBwYXJzaW5nIGlzIGNvbXBsZXRlLgoJKiBsZG1haW4uYyAobWFpbilbRU5BQkxFX1BMVUdJTlNdOiBDYWxsIHBsdWdpbiBjbGVhbnVwIGhvb2tzIGp1c3QKCWFmdGVyIGxhbmdfZmluaXNoLgoJKiBwbHVnaW4uYzogTmV3IHNvdXJjZSBmaWxlLgoJKiBwbHVnaW4uaDogTGlrZXdpc2UgbmV3IGhlYWRlci4KCSogdGVzdHBsdWcuYzogTmV3IHNvdXJjZSBmaWxlLgoKMjAxMC0xMC0xMiAgUmFpbmVyIE9ydGggIDxyb0BDZUJpVGVjLlVuaS1CaWVsZWZlbGQuREU+CgoJKiBlbXVsdGVtcGwvc29sYXJpczIuZW0gKGVsZl9zb2xhcmlzMl9iZWZvcmVfYWxsb2NhdGlvbik6IFJlbmFtZWQKCWJhc2V2ZXJfc3ltcyB0byBnbG9iYWxfc3ltcy4KCUVtaXQgZ2xvYmFsX3N5bXMgaW50byAuZHluYW1pYyBzZWN0aW9uIGZvciBhbGwgZXhlY3V0YWJsZXMgYW5kCglzaGFyZWQgb2JqZWN0cy4KCShlbGZfc29sYXJpczJfYWZ0ZXJfYWxsb2NhdGlvbik6IE5ldyBmdW5jdGlvbi4KCShMREVNVUxfQUZURVJfQUxMT0NBVElPTik6IFVzZSBpdC4KCSogZW11bHBhcmFtcy9zb2xhcmlzMi5zaDogTmV3IGZpbGUuCgkqIGVtdWxwYXJhbXMvZWxmMzJfc3BhcmNfc29sMi5zaDogVXNlIGl0LgoJKiBlbXVscGFyYW1zL2VsZjY0X3NwYXJjX3NvbDIuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZl9pMzg2X3NvbDIuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZl94ODZfNjRfc29sMi5zaDogTGlrZXdpc2UuCgkqIE1ha2VmaWxlLmFtIChlZWxmMzJfc3BhcmNfc29sMi5jKTogRGVwZW5kIG9uCgkkKHNyY2RpcikvZW11bHBhcmFtcy9zb2xhcmlzMi5zaC4KCShlZWxmNjRfc3BhcmNfc29sMi5jKTogTGlrZXdpc2UuCgkoZWVsZl94ODZfNjRfc29sMi5jKTogTGlrZXdpc2UuCgkoZWVsZl9pMzg2X3NvbDIuYyk6IExpa2V3aXNlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMTAtMTAtMDYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBsZC50ZXhpbmZvOiBVcGRhdGUgZGVzY3JpcHRpb24gb2YgY29tcHV0YXRpb24gb2YgVk1BIGFuZCBMTUEKCWFkZHJlc3NlcyBmb3Igb3V0cHV0IHNlY3Rpb25zLgoKMjAxMC0xMC0wNiAgUmFsZiBXaWxkZW5odWVzICA8UmFsZi5XaWxkZW5odWVzQGdteC5kZT4KCgkqIE1ha2VmaWxlLmFtIChBTExfNjRfRU1VTEFUSU9OUyk6IEZpeCB0eXBvIGluIGxhc3QgY29tbWl0LgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCgkqIE1ha2VmaWxlLmFtIChBTExfRU1VTEFUSU9OUyk6IFJld3JpdGUgaW4gdGVybXMgb2YgLi4uCgkoQUxMX0VNVUxBVElPTl9TT1VSQ0VTKTogLi4uIHRoaXMgbmV3IHZhcmlhYmxlLgoJKEFMTF82NF9FTVVMQVRJT05TKTogUmV3cml0ZSBpbiB0ZXJtcyBvZiAuLi4KCShBTExfNjRfRU1VTEFUSU9OX1NPVVJDRVMpOiAuLi4gdGhpcyBuZXcgdmFyaWFibGUuCgkoRVhUUkFfbGRfbmV3X1NPVVJDRVMpOiBSZXdyaXRlIGluIHRlcm1zIG9mIHRoZSBfU09VUkNFUwoJdmFyaWFibGVzLgoJKGVlbGYzMm1pY3JvYmxhemUuYyk6IEZpeCBpbmRlbnRhdGlvbi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDEwLTEwLTA0ICBCZXJuZCBTY2htaWR0ICA8YmVybmRzQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBlbXVsdGVtcGwveHRlbnNhZWxmLmVtIChyZXBsYWNlX2luc25fc2VjX3dpdGhfcHJvcF9zZWMpOiBVc2UKCV9iZmRfZWxmX3NpbmdsZV9yZWxfaGRyLgoKMjAxMC0xMC0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJUFIgbGQvMTIwNjYKCSogbGRleHAuYyAoZm9sZF9uYW1lKTogVHJlYXQgYWJzb2x1dGUgc3ltYm9scyBhcyBwbGFpbiBudW1iZXJzLgoJKiBsZC50ZXhpbmZvIChFeHByZXNzaW9uIFNlY3Rpb24pOiBEb24ndCBzYXkgYWJzb2x1dGUgc3ltYm9scwoJYXJlIGFkZHJlc3Nlcy4KCjIwMTAtMDktMjkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgoKCSogbGRsYW5nLmMgKGxhbmdfcGxhY2Vfb3JwaGFucyk6IFplcm8gdm1hIHdoZW4gcmVsb2NhdGFibGUgb3Igbm9uLWxvYWQKCXNlY3Rpb24gZm9yIG9ycGhhbnMgaGFuZGxlZCBoZXJlLgoKMjAxMC0wOS0yNyAgUmFsZiBXaWxkZW5odWVzICA8UmFsZi5XaWxkZW5odWVzQGdteC5kZT4KCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMTAtMDktMjMgIERhdmUgS29ybiAgPGRhdmUua29ybi5jeWd3aW5AZ21haWwuY29tPgoKCSogc2NyaXB0dGVtcGwvYXJtY29mZi5zYzogUmV2ZXJ0IDIwMTAtMDktMjIgY2hhbmdlLgoKMjAxMC0wOS0yMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJKiBsZGxhbmcuYyAobGFuZ19hZGRfc2VjdGlvbik6IERvbid0IGNvcHkgU0VDX1JFTE9DIGZyb20gaW5wdXQKCXRvIG91dHB1dCBzZWN0aW9uIG9uIGEgZmluYWwgbGluay4KCjIwMTAtMDktMjIgIEthaSBUaWV0eiAgPGthaS50aWV0ekBvbmV2aXNpb24uY29tPgoKCSogbGRsYW5nLmMgKGxhbmdfYWRkX3NlY3Rpb24pOiBBbGxvdyBmb3IgZGVidWdnaW5nCglzZWN0aW9uIHRvIGJlIG1hcmtlZCBhcyBub2xvYWQgYnV0IHRvIGtlZXAgY29udGVudC4KCShJR05PUkVfU0VDVElPTik6IExpa2V3aXNlLgoJKGxhbmdfY2hlY2tfc2VjdGlvbl9hZGRyZXNzZXMpOiBMaWtld2lzZS4KCSogbGR3cml0ZS5jIChidWlsZF9saW5rX29yZGVyKTogTGlrZXdpc2UuCgoJKiBlbXVsdGVtcGwvcGUuZW0gKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9wbGFjZV9vcnBoYW4pOiBBZGQKCWlkYXRhIHRvIG9ycGhhbiBzZXQuCgkqIGVtdWx0ZW1wbC9wZXAuZW06IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9hcm1jb2ZmLnNjOiBTZXBhcmF0ZSBpZGF0YQoJYW5kIGFkZCBfX0lBVF9zdGFydF9fIGFuZCBfX0lBVF9lbmRfXyBsYWJlbHMuCgkqIHNjcmlwdHRlbXBsL3BlLnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvcGVwLnNjOiBMaWtld2lzZS4KCjIwMTAtMDktMjAgIERhdmlkIFMuIE1pbGxlciAgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+CgoJKiBlbXVscGFyYW1zL2VsZjMyX3NwYXJjLnNoOiBTZXQgTk9QIHRvIDB4MDEwMDAwMDAKCjIwMTAtMDktMTYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgoKCSogbGQudGV4aW5mbyAoTk9MT0FEKTogRG8gbm90IGVycm9uZW91c2x5IHN0YXRlIHRoYXQgY29udGVudHMgd2lsbAoJYXBwZWFyIGluIG91dHB1dCBmaWxlLgoJKiBsZGxhbmcuYyAobGFuZ19hZGRfc2VjdGlvbik6IENsZWFyIFNFQ19IQVNfQ09OVEVOVFMgb24gbm9sb2FkCgl1bmxlc3MgU0VDX0NPRkZfU0hBUkVEX0xJQlJBUlkuCgkobWFwX2lucHV0X3RvX291dHB1dF9zZWN0aW9ucyk6IERvbid0IHNldCBTRUNfSEFTX0NPTlRFTlRTIGZvciBub2xvYWQKCW91dHB1dCBzZWN0aW9ucy4KCShsYW5nX3NpemVfc2VjdGlvbnNfMSk6IERvbid0IHRlc3QgU0VDX05FVkVSX0xPQUQgd2hlbiBkZWNpZGluZwoJdG8gdXBkYXRlIGRvdCBpbiByZWdpb24uICBEaXR0byB3aGVuIHNldHRpbmcgU0VDX0FMTE9DIGlmIGRvdAoJYWR2YW5jZWQgZHVlIHRvIGFzc2lnbm1lbnQuCgkqIGxkd3JpdGUuYyAoYnVpbGRfbGlua19vcmRlcik6IERvbid0IHRlc3QgU0VDX05FVkVSX0xPQUQuCgoyMDEwLTA5LTE1ICBLYWkgVGlldHogIDxrYWkudGlldHpAb25ldmlzaW9uLmNvbT4KCgkqIHNjcmlwdHRlbXBsL3BlcC5zYzogQWRkIC54ZGF0YSBzZWdtZW50IGFuZAoJcHV0IGludG8gLnBkYXRhIGFsbCBzZWdtZW50cyBiZWdpbm5pbmcgd2l0aCAucGRhdGEuCgoyMDEwLTA5LTEwICBBbGFuIE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KCglQUiBsZC8xMTkzMQoJKiBsZGxhbmcuaCAobGFuZ19mb3JfZWFjaF9zdGF0ZW1lbnRfd29ya2VyKTogRGVjbGFyZS4KCSogbGRsYW5nLmMgKGxhbmdfZm9yX2VhY2hfc3RhdGVtZW50X3dvcmtlcik6IE1ha2UgZ2xvYmFsLiAgRG9uJ3QKCXJlY3Vyc2UgaW50byBjaGlsZHJlbiBvZiBvdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnQgd2l0aCBjb25zdHJhaW50CglzZXQgdG8gLTEuCgkocHJpbnRfYXNzaWdubWVudCk6IEhhbmRsZSBOVUxMIG91dHB1dF9zZWN0aW9uLT5iZmRfc2VjdGlvbi4KCShsYW5nX3NpemVfc2VjdGlvbnNfMSk6IElnbm9yZSBvdXRwdXQgc2VjdGlvbiBzdGF0ZW1lbnQgYWRkcmVzcwoJd2hlbiBjb25zdHJhaW50IGlzIC0xLgoJKiBlbXVsdGVtcGwveHRlbnNhZWxmLmVtIChsYW5nX2Zvcl9lYWNoX3N0YXRlbWVudF93b3JrZXIpOiBEZWxldGUuCgoyMDEwLTA5LTA5ICBUcmlzdGFuIEdpbmdvbGQgIDxnaW5nb2xkQGFkYWNvcmUuY29tPgoKCSogTkVXUzogQWRkIGEgZW50cnkgZm9yIGFscGhhLXZtcy4KCjIwMTAtMDktMDcgIEFuZHJldyBCdXJnZXNzICA8YWJ1cmdlc3NAYnJvYWRjb20uY29tPgoKCSogbGR3cml0ZS5jIChjbG9uZV9zZWN0aW9uKTogQ2FsbCBiZmRfY29weV9wcml2YXRlX3NlY3Rpb25fZGF0YSBvbgoJbmV3bHkgY2xvbmVkIHNlY3Rpb24uCgoyMDEwLTA5LTAyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLnRndCAoeDg2XzY0LSotbWluZ3cqKTogQWRkIDMyLWJpdCBwZSBlbXVsYXRpb25zIHRvby4KCjIwMTAtMDgtMzEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBsZGxleC5sIChXSUxEQ0hBUik6IEFkZCB0aGUgY2FyZXQgYW5kIGV4Y2xhbWF0aW9uIHBvaW50CgljaGFyYWN0ZXJzLCBzbyB0aGF0IHRoZXkgY2FuIGJlIHVzZWQgaW5zaWRlIGdsb2JzLgoKMjAxMC0wOC0zMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGxkLnRleGluZm8gKE1FTU9SWSk6IENsYXJpZnkgdGhlIGJlaGF2aW91ciBvZiB0aGUgISBjaGFyYWN0ZXIgaW4KCWEgcmVnaW9uJ3MgYXR0cmlidXRlcy4KCjIwMTAtMDgtMzEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgoKCSogc2NyaXB0dGVtcGwvbW1vLnNjOiBNb3ZlIGFzc2lnbm1lbnQgdG8gIk1haW4iIGluc2lkZSAudGV4dAoJb3V0cHV0IHNlY3Rpb24gc3RhdGVtZW50LgoKMjAxMC0wOC0yNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCVBSIGxkLzExOTQ2CgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoX2JlZm9yZV9hbGxvY2F0aW9uKTogQ2hlY2sgYXVkaXQgZW50cnkKCW9ubHkgb24gRUxGIGlucHV0LgoKMjAxMC0wOC0yMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCVBSIGxkLzExOTM3CgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoX2FmdGVyX29wZW4pOiBGaW5kIG9uZSAuZWhfZnJhbWUgc2VjdGlvbgoJZm9yIC0tZWgtZnJhbWUtaGRyLgoKMjAxMC0wOC0yMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCVBSIGxkLzExOTM3CgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoX2FmdGVyX29wZW4pOiBGaW5kIGFuIEVMRiBpbnB1dCBmb3IKCS0tYnVpbGQtaWQgYW5kIC0tZWgtZnJhbWUtaGRyLgoKMjAxMC0wOC0yMCAgTWFjaWVqIFcuIFJvenlja2kgIDxtYWNyb0Bjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZWZpbGUuYW0gKGVzaGxlbGZfZmQuYyk6IENvcnJlY3QgdGhlIG5hbWUgb2YgdGhlIHRvb2wKCWRpcmVjdG9yeS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDEwLTA4LTIwICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZW11bHRlbXBsL2VsZjMyLmVtIChfYWZ0ZXJfb3Blbik6IENoZWNrIGZvciBnZXRfZWxmX2JhY2tlbmRfZGF0YQoJcmV0dXJuaW5nIE5VTEwuCgoyMDEwLTA4LTE5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KCgkqIE5FV1M6IE1lbnRpb24gY2hhbmdlIGluIGxpbmtlciBzY3JpcHQgZXhwcmVzc2lvbiBldmFsdWF0aW9uLgoKMjAxMC0wOC0xOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJKiBsZC50ZXhpbmZvIChFeHByZXNzaW9uIFNlY3Rpb24pOiBEZXRhaWwgZXhwcmVzc2lvbiBldmFsdWF0aW9uLgoJKEJ1aWx0aW4gRnVuY3Rpb25zIDxBRERSPik6IENvcnJlY3QuCgkoQnVpbHRpbiBGdW5jdGlvbnMgPExPQURBRERSPik6IERvbid0IG1lbnRpb24gTE9BREFERFIgbm9ybWFsbHkKCXRoZSBzYW1lIGFzIEFERFIuCgkoQnVpbHRpbiBGdW5jdGlvbnMgPFNFR01FTlRfU1RBUlQ+KTogVHlwbyBmaXguCgkqIGxkZXhwLmMgKG5ld19udW1iZXIpOiBOZXcgZnVuY3Rpb24uCgkobWFrZV9hYnMsIGV4cF9nZXRfYWJzX2ludCk6IENvcGUgd2l0aCBOVUxMIGV4cGxkLnJlc3VsdC5zZWN0aW9uLgoJKGZvbGRfdW5hcnkgPCd+JywgJyEnLCAnLSc+KTogRG9uJ3QgbWFrZV9hYnMuCgkoZm9sZF9iaW5hcnkpOiBTaW1wbGlmeSByZXN1bHQgc2VjdGlvbiBsb2dpYy4gIFJldHVybiBOVUxMIHNlY3Rpb24KCWZvciBsb2dpY2FsIG9wcy4KCShmb2xkX2JpbmFyeSA8U0VHTUVOVF9TVEFSVD4pOiBVc2UgbmV3X3JlbF9mcm9tX2FicyB0byBzZXQgdmFsdWUgdG8KCWEgY29uc2lzdGVudCByZXN1bHQuCgkoZm9sZF9uYW1lIDxTSVpFT0ZfSEVBREVSUz4pOiBSZXR1cm4gbmV3X251bWJlciwgbm90IG5ld19hYnMuCgkoZm9sZF9uYW1lIDxERUZJTkVELCBTSVpFT0YsIEFMSUdOT0YsIExFTkdUSCwgQ09OU1RBTlQ+KTogTGlrZXdpc2UuCgkoZm9sZF9uYW1lIDxOQU1FPik6IE5vIG5lZWQgdG8gaGFuZGxlIGFic29sdXRlIHN5bWJvbHMgZGlmZmVyZW50bHkKCWZyb20gcmVsYXRpdmUgb25lcy4KCShmb2xkX25hbWUgPE9SSUdJTj4pOiBEb24ndCByZXR1cm4gdmFsaWQgcmVzdWx0IHdoZW4KCWxhbmdfZmlyc3RfcGhhc2VfZW51bS4gIFJldHVybiBuZXdfcmVsX2Zyb21fYWJzLCBub3QgbmV3X2Ficy4KCShleHBfZm9sZF90cmVlXzEgPGV0cmVlX3ZhbHVlPik6IFJldHVybiBuZXdfbnVtYmVyLCBub3QgbmV3X3JlbC4KCShleHBfZm9sZF90cmVlXzEpOiBBanVzdCBmb3IgTlVMTCBleHBsZC5yZXN1bHQuc2VjdGlvbi4gIFdoZW4gYXNzaWduaW5nCglhIHBsYWluIG51bWJlciB0byBkb3QsIGFzc3VtZSB0aGUgdmFsdWUgaXMgcmVsYXRpdmUgdG8gZXhwbGQuc2VjdGlvbi4KCU1ha2UgdGVybXMgbm90IGluIGFuIG91dHB1dCBzZWN0aW9uLCBhYnNvbHV0ZS4KCSogbGRsYW5nLmMgKHByaW50X2Fzc2lnbm1lbnQpOiBGaXggc3R5bGUgbml0LgoJKGxhbmdfc2l6ZV9zZWN0aW9uc18xKTogQ29wZSB3aXRoIE5VTEwgZXhwbGQucmVzdWx0LnNlY3Rpb24uCgkobGFuZ19kb19hc3NpZ25tZW50c18xKTogTGlrZXdpc2UuCgoyMDEwLTA4LTEyICBBbGFuIE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KCgkqIGxkZXhwLmMgKG5ld19yZWwpOiBSZW1vdmUgInN0ciIuICBVcGRhdGUgYWxsIGNhbGwgc2l0ZXMuCgkoZXhwX2ZvbGRfdHJlZV8xKTogV2hlbiBhc3NpZ25pbmcgdG8gZG90LCBjYWxjdWxhdGUgbmV4dGRvdAoJdXNpbmcgZXhwbGQucmVzdWx0LnNlY3Rpb24gcmF0aGVyIHRoYW4gZXhwbGQuc2VjdGlvbi4KCjIwMTAtMDgtMDYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgoKCVBSIGxkLzExODg3CgkqIGxkbGFuZy5jIChsYW5nX2FkZF92ZXJzX2RlcGVuZCk6IERvbid0IGxlYXZlIHZlcnNpb25fbmVlZGVkCgl1bmluaXRpYWxpc2VkLgoKMjAxMC0wNy0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJKiBsZGV4cC5jIChleHBfcHJpbnRfdHJlZSk6IFByaW50IGZ1bmN0aW9uLWxpa2UgYmluYXJ5IG5vZGVzIGFzCglmdW5jdGlvbnMgcmF0aGVyIHRoYW4gaW4tZml4IG9wZXJhdG9ycy4gIFVzZSBmcHV0cyBhbmQgZnB1dGMKCXdoZXJlIGFwcHJvcHJpYXRlLgoKMjAxMC0wNy0yMyAgTmF2ZWVuLkguUyAgPG5hdmVlbi5TQGtwaXRjdW1taW5zLmNvbT4KCSAgICBJbmEgUGFuZGl0ICA8aW5hLnBhbmRpdEBrcGl0Y3VtbWlucy5jb20+CgoJKiBjb25maWd1cmUudGd0OiBNYXRjaCBhbGwgdjg1MCB0YXJnZXRzLgoKMjAxMC0wNy0yMCAgTWlrZSBGcnlzaW5nZXIgIDx2YXBpZXJAZ2VudG9vLm9yZz4KCgkqIGxkLnRleGluZm8gKFZFUlNJT04pOiBSZW1vdmUgImludCIgZnJvbSBleGFtcGxlIHNjcmlwdCBhbmQgYWRkICI7Ii4KCURlY2xhcmUgdGhlIGRlZmF1bHQgbGFuZ3VhZ2UgYXMgQy4KCjIwMTAtMDctMTcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgoKCSogbGRsYW5nLmMgKGxhbmdfY2hlY2tfc2VjdGlvbl9hZGRyZXNzZXMpOiBDYXRjaCBvdmVybGFwIGZvcgoJc2VjdGlvbnMgdGhhdCB3cmFwIGFyb3VuZCB0aGUgYWRkcmVzcyBzcGFjZS4KCjIwMTAtMDYtMjkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBzY3JpcHR0ZW1wbC94c3Rvcm15MTYuc2MgKC5nY2NfZXhjZXB0X3RhYmxlKTogSW5jbHVkZSBzZWN0aW9ucwoJd2l0aCB0aGUgLmdjY19leGNlcHRfdGFibGUuIHByZWZpeC4KCjIwMTAtMDYtMjkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgoKCSogZW11bHBhcmFtcy9tYXhxY29mZi5zaDogRGVsZXRlIGZpbGUuCgkqIHNjcmlwdHRlbXBsL21heHFjb2ZmLnNjOiBEZWxldGUgZmlsZS4KCSogTWFrZWZpbGUuYW06IFJlbW92ZSByZWZlcmVuY2VzIHRvIG1heHEuCgkqIGNvbmZpZ3VyZS50Z3Q6IExpa2V3aXNlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBwby9QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCjIwMTAtMDYtMjcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgoKCSogcGUtZGxsLmMgKGZpbGxfZWRhdGEpOiBBdm9pZCBzZXQgYnV0IHVudXNlZCB3YXJuaW5nLgoJKHBlX3dhbGtfcmVsb2NzX29mX3N5bWJvbCk6IERlbGV0ZSBzZXQgYnV0IHVudXNlZCB2YXJpYWJsZXMuCgkoZ2VuZXJhdGVfcmVsb2MsIHBlX2ltcGxpZWRfaW1wb3J0X2RsbCk6IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvYWl4LmVtIChvcGVuX2R5bmFtaWNfYXJjaGl2ZSk6IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwveHRlbnNhZWxmLmVtIChyZXBsYWNlX2luc25fc2VjX3dpdGhfcHJvcF9zZWMpOiBMaWtld2lzZS4KCSh4dGVuc2FfbGF5b3V0X3dpbGQpOiBMaWtld2lzZS4KCSh4dGVuc2FfY29sb2NhdGVfb3V0cHV0X2xpdGVyYWxzX2NhbGxiYWNrKTogTGlrZXdpc2UuCgoyMDEwLTA2LTI1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KCgkqIGVtdWx0ZW1wbC9wcGM2NGVsZi5lbSAocHJlbGltX3NpemVfc2VjdGlvbnMpOiBOZXcgZnVuY3Rpb24uCgkocHBjX2JlZm9yZV9hbGxvY2F0aW9uKTogVXNlIGl0LiAgU2l6ZSBzZWN0aW9ucyBiZWZvcmUgdG9jIGVkaXQgdG9vLgoKMjAxMC0wNi0yNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKGZpbmRfZXhwX2Fzc2lnbm1lbnQpOiBIYW5kbGUgZXRyZWVfcHJvdmlkZWQuCgoyMDEwLTA2LTIwICBEYW5ueSBTbWl0aCAgPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZW11bHRlbXBsL3BlLmVtIChnbGRfJHtFTVVMQVRJT05fTkFNRX1fYmVmb3JlX3BhcnNlKTogTWFrZQoJYXV0by1pbXBvcnQgYW5kIG1lcmdlLXJkYXRhIGRlZmF1bHRzIHNhbWUgZm9yIGlbMy03XTg2IGFuZAoJeDg2XzY0IG1pbmd3LgoKMjAxMC0wNi0xNSAgSm9zZXBoIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBlbXVscGFyYW1zL2VsZjMyX3RpYzZ4X2xlLnNoIChBVFRSU19TRUNUSU9OUyk6IERlZmluZS4KCjIwMTAtMDYtMDkgIERhdmUgS29ybiAgPGRhdmUua29ybi5jeWd3aW5AZ21haWwuY29tPgoKCVBSIGxkLzExNjAzCgkqIHBlLWRsbC5jIChwcm9jZXNzX2RlZl9maWxlX2FuZF9kcmVjdHZlKTogUmVvcmRlciBjaGVjayBmb3IKCWZvcndhcmRlZCBleHBvcnQgbmFtZSBhZnRlciBjaGVjayBmb3Igb3JkaW5hcnkgZXhwb3J0LgoKMjAxMC0wNi0wOCAgQmVybmQgU2NobWlkdCAgPGJlcm5kc0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZW11bHBhcmFtcy9lbGYzMl90aWM2eF9sZS5zaCAoT1RIRVJfQlNTX1NFQ1RJT05TKTogTmV3LgoKMjAxMC0wNi0wOCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGZkbC50ZXhpOiBSZXBsYWNlIHdpdGggdjEuMyB0ZXh0LgoJKiBsZC50ZXhpbmZvOiBSZXBsYWNlIGFiYnJldmlhdGVkIDIwdGggY2VudHVyeSB5ZWFyIG51bWJlcnMgd2l0aAoJZnVsbCB2ZXJzaW9ucy4KCSogbGRpbnQudGV4aW5mbzogTGlrZXdpc2UuCglSZWxpY2Vuc2UgdW5kZXIgR0ZETCB2MS4zLiAgUmVwbGFjZSB0ZXh0IG9mIHYxLjEgRkRMIHdpdGggYW4KCWluY2x1ZGUgb2YgdGhlIGZkbC50ZXhpIGZpbGUuCgoyMDEwLTA2LTAxICBUcmlzdGFuIEdpbmdvbGQgIDxnaW5nb2xkQGFkYWNvcmUuY29tPgoKCSogc2NyaXB0dGVtcGwvYWxwaGF2bXMuc2M6IEFkZCBjb21tZW50cy4gTW92ZSAkTElOSyQgdG8gdGhlCglyZWFkb25seSBvdXRwdXQtc2VjdGlvbi4gSGFuZGxlIExJQiRJTklUSUFMSVpFIGFuZCBzZWN0aW9ucwoJY3JlYXRlZCBieSBnY2MuCgkqIGVtdWx0ZW1wbC92bXMuZW0gKHZtc19wbGFjZV9vcnBoYW4pOiBBZGQgY29tbWVudHMuCgoyMDEwLTA1LTI4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogTWFrZWZpbGUuYW0gKGVzaGxlbGZfZmQuYyk6IEZpeCB0eXBvIGluIHJ1bGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAxMC0wNS0yNiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCVBSIGxkLzExNjI4CgkqIGxkZXhwLmMgKGZvbGRfYmluYXJ5KTogV2FybiBpZiB2YWx1ZSBvZiBTRUdNRU5UX1NUQVJUIGlzbid0CgltdWx0aXBsZSBvZiBtYXhpbXVtIHBhZ2Ugc2l6ZS4KCjIwMTAtMDUtMjUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBNYWtlZmlsZS5hbTogRml4IHR5cG8uCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAxMC0wNS0yNSAgRGFuaWVsIEphY29ib3dpdHogIDxkYW5AY29kZXNvdXJjZXJ5LmNvbT4KCSAgICBKb3NlcGggTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCSAgICBBbmRyZXcgU3R1YmJzICA8YW1zQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQUxMX0VNVUxBVElPTlMpOiBBZGQgZXNoZWxmX2ZkLm8gYW5kIGVzaGxlbGZfZmQuby4KCShlc2hlbGZfZmQuYywgZXNobGVsZl9mZC5jKTogTmV3IHJ1bGVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLnRndCAoc2gtKi11Y2xpbnV4Kik6IEFkZCBzaGVsZl9mZCBhbmQgc2hsZWxmX2ZkCgllbXVsYXRpb25zLgoJKiBlbXVscGFyYW1zL3NoZWxmX2ZkLnNoOiBOZXcgZmlsZS4KCSogZW11bHBhcmFtcy9zaGxlbGZfZmQuc2g6IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL3NobGVsZl9saW51eC5zaDogVXBkYXRlIGNvbW1lbnQuCgoyMDEwLTA1LTI1ICBKYXkgS3JlbGwgIDxqYXkua3JlbGxAY29ybmVsbC5lZHU+CgoJUFIgbGQvMTE2MjEKCSogTWFrZWZpbGUuYW06IFJlcGxhY2UgYWxsIG9jY3VyZW5jZXMgb2YgLm8gd2l0aCAuQE9CSkVYVEAKCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDEwLTA1LTI1ICBLYWkgVGlldHogIDxrYWkudGlldHpAb25ldmlzaW9uLmNvbT4KCgkqIGRlZmZpbGVwLnkgKG9wdF9uYW1lKTogQWxsb3cgbGVhZGluZyBkb3QuCgkoZG90X25hbWUpOiBMaWtld2lzZS4KCShhbnlsYW5nX2lkKTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9wZXAuZW0gKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9iZWZvcmVfcGFyc2UpOiBFbmFibGUgYnkKCWRlZmF1bHQgYXV0b19pbXBvcnQuCgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1faGFuZGxlX29wdGlvbik6IFdhcm4gYWJvdXQgdjEuCgkocGVwX2ZpbmRfZGF0YV9pbXBvcnRzKTogUmVtb3ZlIHN1cGVyZmxvdXMgd2FybmluZ3MgYWJvdXQKCWF1dG8taW1wb3J0LgoJKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9nZXRfc2NyaXB0KTogRG9uJ3QgbWVyZ2UgZm9yIGF1dG8taW1wb3J0CglhbmQgYWN0aXZlIHBzZXVkby1yZWxvY2F0aW9uLXYyIHJkYXRhIGludG8gZGF0YSBzZWN0aW9uLgoJKiBlbXVsdGVtcGwvcGUuZW0gKGRlZmF1bHRfbWVyZ2VfcmRhdGEpOiBOZXcgc2hlbGwgdmFyaWFibGUuCgkoTUVSR0VfUkRBVEFfVjIpOiBOZXcgbWFjcm8uCgkoZ2xkXyR7RU1VTEFUSU9OX05BTUV9X2dldF9zY3JpcHQpOiBBZGp1c3QgcnVsZSBmb3IgYXV0by1pbXBvcnQKCXNlbGVjdGVkIHNjcmlwdC4KCjIwMTAtMDUtMTUgIEthaSBUaWV0eiAgPGthaS50aWV0ekBvbmV2aXNpb24uY29tPgoKCSogZW11bHRlbXBsL3BlLmVtIChpc191bmRlcnNjb3JpbmcpOiBOZXcgaGVscGVyIGZ1bmN0aW9uLgoJKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9iZWZvcmVfcGFyc2UpOiBSZXBsYWNlIGNvZGUKCWZvciBwZShwKV9sZWFkaW5nX3VuZGVyc2NvcmUgZGV0ZWN0aW9uIGJ5IGlzX3VuZGVyc2NvcmluZy4KCShVKTogTGlrZXdpc2UuCgkoR0VUX0lOSVRfU1lNQk9MX05BTUUpOiBMaWtld2lzZS4KCShVX1NJWkUpOiBMaWtld2lzZS4KCShzZXRfcGVfbmFtZSk6Cgkoc2V0X2VudHJ5X3BvaW50KToKCShnbGRfJHtFTVVMQVRJT05fTkFNRX1fc2V0X3N5bWJvbHMpOgoJKiBlbXVsdGVtcGwvcGVwLmVtOiBMaWtld2lzZS4KCSogcGUtZGxsLmMgKHBlX2RldGFpbF9saXN0KTogU2V0IGRlZmF1bHQKCXVuZGVyc2NvcmluZyBmb3IgeDY0IHRhcmdldC4KCShwZV9kbGxfaWRfdGFyZ2V0KTogQWRkIGluaXRpYWxpemF0aW9uIG9mCglwZShwKV9sZWFkaW5nX3VuZGVyc2NvcmUuCgoyMDEwLTA1LTE1ICBEYXZlIEtvcm4gIDxkYXZlLmtvcm4uY3lnd2luQGdtYWlsLmNvbT4KCgkqIHBlLWRsbC5jOiBSZW1vdmVkIHRyYWlsaW5nIHdoaXRlc3BhY2VzLgoKMjAxMC0wNS0xNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJUFIgbGQvMTE1ODMKCSogbGRleHAuYyAoZXhwX2ZvbGRfdHJlZV8xKTogSWYgYXNzaWdubWVudCBzb3VyY2UgZXhwcmVzc2lvbiBpcwoJaW52YWxpZCwgbWFrZSB0aGUgZGVzdGluYXRpb24gc3ltYm9sIHVuZGVmaW5lZC4KCjIwMTAtMDUtMTEgIEthaSBUaWV0eiAgPGthaS50aWV0ekBvbmV2aXNpb24uY29tPgoKCSogZW11bHRlbXBsL3BlLmVtIChnbGRfJHtFTVVMQVRJT05fTkFNRX1fYmVmb3JlX3BhcnNlKToKCUluaXRpYWxpemUgcGUocClfbGVhZGluZ191bmRlcnNjb3JlIHZhcmlhYmxlLgoJKHNldF9wZV9uYW1lKTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9wZXAuZW06IExpa2V3aXNlLgoJQWRkaXRpb25hbCBjaGFuZ2UgZGVmYXVsdCB0byBub24tdW5kZXJzY29yZSBmb3IKCXBlcF9sZWFkaW5nX3VuZGVyc2NvcmUgZXF1YWwgdG8gLTEuCgoyMDEwLTA1LTA3ICBUcmlzdGFuIEdpbmdvbGQgIDxnaW5nb2xkQGFkYWNvcmUuY29tPgoKCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUgd2l0aCBhdXRvbWFrZSAxLjExLjEuCgkqIGFjbG9jYWwubTQ6IERpdHRvLgoKMjAxMC0wNS0wNSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL2VzLnBvOiBVcGRhdGVkIFNwYW5pc2ggdHJhbnNsYXRpb24uCgoyMDEwLTA0LTI3ICBLYWkgVGlldHogIDxrYWkudGlldHpAb25ldmlzaW9uLmNvbT4KCgkqIHBlLWRsbC5jIChfbm1fLXN5bWJvbHMpOiBVc2UgYWx3YXlzIHVuZGVyc2NvcmVkIHZhcmlhbnQKCWZvciBzeW1ib2xzLgoJKF9faW1wXy1zeW1ib2xzKTogTGlrZXdpc2UuCgkoX19faW1wXy1zeW1ib2xzKTogTGlrZXdpc2UuCgkqIE5FV1M6IE1lbnRpb24gQUJJIGNoYW5nZSBmb3IgeDY0IFBFLUNPRkYuCgoyMDEwLTA0LTI3ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBNYWtlZmlsZS5hbSAoaW5zdGFsbC1leGVjLWxvY2FsKTogUHJvcGVybHkgaW5zdGFsbCBsZCBhcwoJZGVmYXVsdCBjcm9zcyBsaW5rZXIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KCjIwMTAtMDQtMjcgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCSAgICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmluIChpbnN0YWxsX2FzX2RlZmF1bHQpOiBEZWZpbmUgYW5kIHNldCB0byB0cnVlCgl1bmxlc3MgLS1lbmFibGUtZ29sZD1ib3RoL2dvbGQgaGFzIGJlZW4gc3BlY2lmaWVkLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoJKiBNYWtlZmlsZS5hbSAodHJhbnNmb3JtKTogVXNlIGxkLmJmZCBhcyB0aGUgZGVmYXVsdCBuYW1lIG9mCgl0aGUgbGlua2VyLgoJKGluc3RhbGwtZXhlYy1sb2NhbCk6IEFsc28gaW5zdGFsbCB0aGUgZXhlY3V0YWJsZSBhcyBhIGJpbmFyeQoJbmFtZWQgJ2xkJyBpZiBpbnN0YWxsX2FzX2RlZmF1bHQgaXMgdHJ1ZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDEwLTA0LTIyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vbGQucG90OiBVcGRhdGVkIGJ5IHRoZSBUcmFuc2xhdGlvbiBwcm9qZWN0LgoJKiBwby92aS5wbzogVXBkYXRlZCBWaWV0bmFtZXNlIHRyYW5zbGF0aW9uLgoJKiBwby9iZy5wbzogVXBkYXRlZCBCdWxnYXJpYW4gdHJhbnNsYXRpb24uCgoyMDEwLTA0LTE1ICBBbmRyZXcgSGFsZXkgIDxhcGhAcmVkaGF0LmNvbT4KCgkqIGVtdWx0ZW1wbC9hcm1lbGYuZW0gKG1lcmdlX2V4aWR4X2VudHJpZXMpOiBOZXcgdmFyaWFibGUuCgkoT1BUSU9OX05PX01FUkdFX0VYSURYX0VOVFJJRVMpOiBOZXcgZGVmaW5pdGlvbi4KCSgibm8tbWVyZ2UtZXhpZHgtZW50cmllcyIpOiBOZXcgb3B0aW9uLgoJKiBsZC50ZXhpbmZvIChtZXJnZS1leGlkeC1lbnRyaWVzKTogRG9jdW1lbnQgdGhpcyBvcHRpb24uCgoyMDEwLTA0LTE0ICBUcmlzdGFuIEdpbmdvbGQgIDxnaW5nb2xkQGFkYWNvcmUuY29tPgoKCSogZW11bHBhcmFtcy9hbHBoYXZtcy5zaDogTmV3IGZpbGUuCgkqIGVtdWx0ZW1wbC92bXMuZW06IE5ldyBmaWxlLgoJKiBzY3JpcHR0ZW1wbC9hbHBoYXZtcy5zYzogTmV3IGZpbGUuCgkqIGNvbmZpZ3VyZS50Z3QgKGFscGhhKi0qLSp2bXMqKTogQWRkZWQuCgkqIE1ha2VmaWxlLmFtIChBTExfRU1VTEFUSU9OUyk6IEFkZCBlYWxwaGF2bXMubwoJKGVhbHBoYXZtcy5jKTogTmV3IHRhcmdldC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDEwLTA0LTA5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogbGRsYW5nLmMgKHdpbGRfc29ydCk6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUgc2VjdGlvbl9uYW1lLgoKMjAxMC0wNC0wNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDEwLTA0LTA2ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJUFIgbGQvMTE0MzQKCSogbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC91bmlxdWUxLmQ6IE5ldy4KCSogbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC91bmlxdWUxLnM6IExpa2V3aXNlLgoKCSogbGQteDg2LTY0L3g4Ni02NC5leHA6IFJ1biB1bmlxdWUxLgoKMjAxMC0wNC0wNSAgS2FpIFRpZXR6ICA8a2FpLnRpZXR6QG9uZXZpc2lvbi5jb20+CgoJKiBlbXVsdGVtcGwvcGVwLmVtIChVKTogTWFjcm8gbW9kaWZpZWQuCgkoVV9TSVpFKTogTmV3IGhlbHBlciBtYWNyby4KCShHRVRfSU5JVF9TWU1CT0xfTkFNRSk6IExpa2V3aXNlLgoJKGVudW0gb3B0aW9ucyk6IEFkZCBPUFRJT05fTk9fTEVBRElOR19VTkRFUlNDT1JFCglhbmQgT1BUSU9OX0xFQURJTkdfVU5ERVJTQ09SRSBlbnVtZXJhdG9yLXZhbHVlcy4KCShnbGQke0VNVUxBVElPTl9OQU1FfV9hZGRfb3B0aW9ucyk6IEFkZCAtLShuby0pbGVhZGluZy11bmRlcnNjb3JlCglvcHRpb24uCgkoZGVmaW5mbyk6IEFkZCBuZXcgbWVtYmVyIGlzX2Nfc3ltYm9sLgoJKEQpOiBBZGQgdG8gbWFjcm8gdW5kZXJzY29yZSBtb2RlIHBhcmFtZXRlci4KCShpbml0KTogQWRkIGRlZmluaXRpb24gZm9yIGlzX2Nfc3ltYm9sLgoJKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9saXN0X29wdGlvbnMpOiBEaXNwbGF5IG5ldyBvcHRpb25zLgoJKHNldF9wZXBfbmFtZSk6IEFkanVzdCB1bmRlcnNjb3JpbmcgZGVwZW5kZW50IGZpeGVkCglzeW1ib2wgaGFuZGxpbmcuCgkoZ2xkXyR7RU1VTEFUSU9OX05BTUV9X3NldF9zeW1ib2xzKTogTGlrZXdpc2UuCgkoc2F3X29wdGlvbik6IExpa2V3aXNlLgoJKGdsZF8ke0VNVUxBVElPTl9OQU1FfV91bnJlY29nbml6ZWRfZmlsZSk6IExpa2V3aXNlLgoJKHNldF9lbnRyeV9wb2ludCk6IEluaXRpYWwgaW5pdGlhbF9zeW1ib2xfY2hhciBkZXBlbmRlbnQgdG8KCXRhcmdldCdzIGRlZmF1bHQgYW5kIG5ldyBvcHRpb24gZmxhZyBwZXBfbGVhZGluZ191bmRlcnNjb3JlLgoJKiBlbXVsdGVtcGwvcGUuZW0gKFUpOiBNYWNybyBtb2RpZmllZC4KCShVX1NJWkUpOiBOZXcgaGVscGVyIG1hY3JvLgoJKEdFVF9JTklUX1NZTUJPTF9OQU1FKTogTGlrZXdpc2UuCgkoT1BUSU9OX0xFQURJTkdfVU5ERVJTQ09SRSk6IEFkZCBuZXcgb3B0aW9uIGRlZmluZS4KCShPUFRJT05fTk9fTEVBRElOR19VTkRFUlNDT1JFKTogTGlrZXdpc2UuCgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1fYWRkX29wdGlvbnMpOiBBZGQgLS0obm8tKWxlYWRpbmctdW5kZXJzY29yZQoJb3B0aW9uLgoJKGRlZmluZm8pOiBBZGQgbmV3IG1lbWJlciBpc19jX3N5bWJvbC4KCShEKTogQWRkIHRvIG1hY3JvIHVuZGVyc2NvcmUgbW9kZSBwYXJhbWV0ZXIuCgkoaW5pdCk6IEFkZCBkZWZpbml0aW9uIGZvciBpc19jX3N5bWJvbC4KCShnbGRfJHtFTVVMQVRJT05fTkFNRX1fbGlzdF9vcHRpb25zKTogRGlzcGxheSBuZXcgb3B0aW9ucy4KCShzZXRfcGVwX25hbWUpOiBBZGp1c3QgdW5kZXJzY29yaW5nIGRlcGVuZGVudCBmaXhlZAoJc3ltYm9sIGhhbmRsaW5nLgoJKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9zZXRfc3ltYm9scyk6IExpa2V3aXNlLgoJKHNhd19vcHRpb24pOiBMaWtld2lzZS4KCShnbGRfJHtFTVVMQVRJT05fTkFNRX1fdW5yZWNvZ25pemVkX2ZpbGUpOiBMaWtld2lzZS4KCShzZXRfZW50cnlfcG9pbnQpOiBJbml0aWFsIGluaXRpYWxfc3ltYm9sX2NoYXIgZGVwZW5kZW50IHRvCgl0YXJnZXQncyBkZWZhdWx0IGFuZCBuZXcgb3B0aW9uIGZsYWcgcGVwX2xlYWRpbmdfdW5kZXJzY29yZS4KCSogcGUtZGxsLmMgKHBlX2xlYWRpbmdfdW5kZXJzY29yZSk6IE5ldyBmbGFnIHZhcmlhYmxlLgoJKHBlX2RldGFpbF9saXN0KTogUmVtb3ZlIGNvbnN0IHRvIGFsbG93IG1vZGlmeSBvZgoJbWVtYmVyIHVuZGVyc2NvcmUuCgkocGVfZGxsX2lkX3RhcmdldCk6IEluaXRpYWxpemUgcGVfZGV0YWlscycgdW5kZXJzY29yZSB2YXJpYWJsZQoJZGVwZW5kZW50IHRvIHRhcmdldCdzIGRlZmF1bHQgYW5kIGZsYWcgcGVfbGVhZGluZ191bmRlcnNjb3JlLgoJKiBwZS1kbGwuaCAocGVfbGVhZGluZ191bmRlcnNjb3JlKTogQWRkIGV4dGVybiBkZWNsYXJhdGlvbiBvZgoJb3B0aW9uIGZsYWcuCgkqIHBlcC1kbGwuYyAocGVfbGVhZGluZ191bmRlcnNjb3JlKTogQWRkIGFsaWFzIGRlZmluZSBmb3IKCXBlcF9sZWFkaW5nX3VuZGVyc2NvcmUuCgkqIHBlcC1kbGwuaCAocGVwX2xlYWRpbmdfdW5kZXJzY29yZSkgQWRkIGV4dGVybiBkZWNsYXJhdGlvbiBvZgoJb3B0aW9uIGZsYWcuCgkqIGxkLnRleGluZm86IEFkZCBkb2N1bWVudGF0aW9uIGZvciAtLShuby0pbGVhZGluZy11bmRlcnNjb3JlCglvcHRpb24uCgoyMDEwLTAzLTI2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KCglQUiBsZC8xMTQyNgoJKiBjb25maWd1cmUuaG9zdCAobWFueSBsaW51eCB0YXJnZXRzIDxIT1NUSU5HX0NSVDA+KTogUmVtb3ZlIGVkaXRzLgoJKG02OCotbW90b3JvbGEtc3lzdiA8SE9TVElOR19MSUJTPik6IFVzZSBoZXJlIGRvYywgbm90IGVjaG8uCgoyMDEwLTAzLTI1ICBKb3NlcGggTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIE1ha2VmaWxlLmFtIChBTExfRU1VTEFUSU9OUyk6IEFkZCBlZWxmMzJfdGljNnhfYmUubyBhbmQKCWVlbGYzMl90aWM2eF9sZS5vLgoJKGVlbGYzMl90aWM2eF9iZS5jLCBlZWxmMzJfdGljNnhfbGUuYyk6IE5ldy4KCSogTkVXUzogQWRkIG5ld3MgZW50cnkgZm9yIFRJIEM2WCBzdXBwb3J0LgoJKiBjb25maWd1cmUudGd0ICh0aWM2eC0qLSopOiBOZXcuCgkqIGVtdWxwYXJhbXMvZWxmMzJfdGljNnhfYmUuc2gsIGVtdWxwYXJhbXMvZWxmMzJfdGljNnhfbGUuc2g6IE5ldy4KCjIwMTAtMDMtMjMgIEpvc2VwaCBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogc2NyaXB0dGVtcGwvZWxmLnNjIChST0RBVEFfTkFNRSwgU0RBVEFfTkFNRSwgU0JTU19OQU1FLAoJQlNTX05BTUUpOiBEZWZpbmUgaWYgbm90IGFscmVhZHkgZGVmaW5lZC4gIFVzZSBpbiBwbGFjZSBvZiBzb21lCgloYXJkY29kZWQgc2VjdGlvbiBuYW1lcy4KCjIwMTAtMDMtMTggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIHNjcmlwdHRlbXBsL2VsZi5zYyAoSU5JVF9BUlJBWSk6IFJlLWluZGVudC4KCjIwMTAtMDMtMTggIEF5bWVyaWMgVmluY2VudCAgPHZpbmNlbnRAbGFicmkuZnI+CgoJUFIgbGQvMTEzODQKCSogZW11bHRlbXBsL3NoNjRlbGYuZW06IEFkZCBtaXNzaW5nIEVPRi4KCjIwMTAtMDMtMTggIERvdWcgU2VtbGVyICA8ZG91Z3NlbWxlckBnbWFpbC5jb20+CgoJKiBwZS1kbGwuYyAobWFrZV9vbmUpOiBNYWtlIHRleHQgc2VjdGlvbiByZWFkb25seS4KCShtYWtlX29uZSk6IEFkZCAqQUJTKiBzeW1ib2wgQGZlYXQuMDAgd2l0aCB2YWx1ZSAxIHRvIHRhZwoJdGhlIGp1bXAgc3R1YiBvbiBYODYgYXMgL1NBRkVTRUggY29tcGF0aWJsZSBmb3IKCW5hdGl2ZSB0b29sY2hhaW5zLgoKMjAxMC0wMy0xNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJKiBsZGxhbmcuYyAobGFuZ19zaXplX3NlY3Rpb25zXzEpOiBSZW1vdmUgInMiIHBhcmFtLiAgU2V0ICJzIiBmcm9tCgkqcHJldiBpbnN0ZWFkLiAgVXBkYXRlIGFsbCBjYWxsZXJzLgoKMjAxMC0wMy0xNSAgRGFuaWVsIEphY29ib3dpdHogIDxkYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGxkbGFuZy5jIChsYW5nX2luc2VydF9vcnBoYW4pOiBQbGFjZSBsb2FkYWJsZSBvcnBoYW5zIGluIHRoZSBzYW1lCglyZWdpb24gYW5kIHBoZHJzIGFzIHRoZWlyIHBsYWNlbWVudCBzZWN0aW9uLgoKMjAxMC0wMy0xNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJKiBlbXVsdGVtcGwvcHBjNjRlbGYuZW0gKG1vdmVfaW5wdXRfc2VjdGlvbiwgc29ydF90b2Nfc2VjdGlvbnMpOiBOZXcuCgkocHBjX2JlZm9yZV9hbGxvY2F0aW9uKTogQ2FsbCBzb3J0X3RvY19zZWN0aW9ucy4KCShub190b2Nfc29ydCwgT1BUSU9OX05PX1RPQ19TT1JUKTogTmV3LgoJKFBBUlNFX0FORF9MSVNUX1BST0xPR1VFLCBQQVJTRV9BTkRfTElTVF9MT05HT1BUUywKCSBQQVJTRV9BTkRfTElTVF9PUFRJT05TKTogSGFuZGxlIC0tbm8tdG9jLXNvcnQuCgoyMDEwLTAzLTE0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KCglQUiBsZC8xMTM3OAoJKiBlbXVsdGVtcGwvcHBjNjRlbGYuZW0gKGdsZCR7RU1VTEFUSU9OX05BTUV9X2FmdGVyX2FsbG9jYXRpb24pOiBDYWxsCglwcGM2NF9lbGZfY2hlY2tfaW5pdF9maW5pIGFuZCB3YXJuIGlmIC5pbml0Ly5maW5pIHVzZSBkaWZmZXJlbnQgVE9Dcy4KCjIwMTAtMDMtMTEgIEdlb3JnZSBHZW5zdXJlICA8d2Vya3QwQGdtYWlsLmNvbT4KCglQUiBsZC8xMTM2NwoJKiBsZGNyZWYuYyAoaGFuZGxlX2FzbmVlZGVkX2NyZWYpOiBDb3JyZWN0IGNvcHlpbmcgb2YgcmVmcy4KCjIwMTAtMDMtMDUgIFJhaW5lciBPcnRoICA8cm9AQ2VCaVRlYy5VbmktQmllbGVmZWxkLkRFPgoKCSogTWFrZWZpbGUuYW0gKEFMTF9FTVVMQVRJT05TKTogQWRkIGVlbGYzMl9zcGFyY19zb2wyLm8sCgllZWxmX2kzODZfc29sMi5vLgoJKEFMTF82NF9FTVVMQVRJT05TKTogQWRkIGVlbGZfeDg2XzY0X3NvbDIubywgZWVsZjY0X3NwYXJjX3NvbDIuby4KCShlZWxmMzJfc3BhcmNfc29sMi5jKTogTmV3IHJ1bGUuCgkoZWVsZjY0X3NwYXJjX3NvbDIuYyk6IExpa2V3aXNlLgoJKGVlbGZfeDg2XzY0X3NvbDIuYyk6IExpa2V3aXNlLgoJKGVlbGZfaTM4Nl9zb2wyLmMpOiBMaWtld2lzZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS50Z3QgKGlbMy03XTg2LSotc29sYXJpczIqKTogQ2hhbmdlIHRhcmdfZW11bCB0bwoJZWxmX2kzODZfc29sMi4KCUFkZCBlbGZfaTM4Nl9sZHNvLCBlbGZfeDg2XzY0X3NvbDIgdG8gdGFyZ19leHRyYV9lbXVscy4KCSh4ODZfNjQtKi1zb2xhcmlzMiopOiBDaGFuZ2UgdGFyZ19lbXVsIHRvIGVsZl94ODZfNjRfc29sMi4KCUFkZCBlbGZfeDg2XzY0LCBlbGZfaTM4Nl9zb2wyLCBlbGZfaTM4NiB0byB0YXJnX2V4dHJhX2VtdWxzLgoJKHNwYXJjLSotc29sYXJpczIuWzAtNl0qKTogQ2hhbmdlIHRhcmdfZW11bCB0byBlbGYzMl9zcGFyY19zb2wyLgoJQWRkIHRhcmdldF9leHRyYV9lbXVscy4KCShzcGFyYy0qLXNvbGFyaXMyKik6IENoYW5nZSB0YXJnX2VtdWwgdG8gZWxmMzJfc3BhcmNfc29sMi4KCUFkZCBlbGYzMl9zcGFyYywgZWxmNjRfc3BhcmNfc29sMiB0byB0YXJnX2V4dHJhX2VtdWxzLgoJKHNwYXJjdjktKi1zb2xhcmlzMiopOiBDaGFuZ2UgdGFyZ19lbXVsIHRvIGVsZjY0X3NwYXJjX3NvbDIuCglBZGQgZWxmNjRfc3BhcmMsIGVsZjMyX3NwYXJjX3NvbDIgdG8gdGFyZ2V0X2V4dHJhX2VtdWxzLgoJKiBlbXVscGFyYW1zL2VsZjMyX3NwYXJjX3NvbDIuc2g6IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL2VsZjY0X3NwYXJjX3NvbDIuc2g6IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL2VsZl9pMzg2X3NvbDIuc2g6IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL2VsZl94ODZfNjRfc29sMi5zaDogTmV3IGZpbGUuCgkqIGVtdWx0ZW1wbC9zb2xhcmlzMi5lbTogTmV3IGZpbGUuCgoyMDEwLTAyLTI3ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJUFIgbGQvMTEzMzAKCSogbGQudGV4aW5mbzogUmVwbGFjZSBleHBsaWNpdGVseSB3aXRoIGV4cGxpY2l0bHkuCgoyMDEwLTAyLTI3ICBKaWUgWmhhbmcgIDxqaWVAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHNjcmlwdHRlbXBsL2FybWJwYWJpLnNjOiBEb24ndCBjb21iaW5lIC5pbml0X2FycmF5Liogb3IKCS5maW5pX2FycmF5Liogd2hlbiBkbyByZWxvY2F0YWJsZSBsaW5raW5nLgoJKiBzY3JpcHR0ZW1wbC9lbGYuc2M6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9lbGYzMnNoLXN5bWJpYW4uc2M6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9lbGY2NGhwcGEuc2M6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9lbGZ4dGVuc2Euc2M6IExpa2V3aXNlLgoKMjAxMC0wMi0yNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJKiBzY3JpcHR0ZW1wbC9lbGYuc2MgKC5maW5pX2FycmF5KTogUGxhY2UgaW5wdXQgLmZpbmlfYXJyYXkgYWZ0ZXIKCS5maW5pX2FycmF5LiouCgkqIHNjcmlwdHRlbXBsL2FybWJwYWJpLnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvZWxmMzJzaC1zeW1iaWFuLnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvZWxmNjRocHBhLnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvZWxmeHRlbnNhLnNjOiBMaWtld2lzZS4KCjIwMTAtMDItMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgoKCVBSIGxkLzExMzA0CgkqIGxkbGFuZy5jIChpbml0X29zKTogUmVtb3ZlIGlzZWMgcGFyYW0uICBEb24ndCBjaGVjayBmb3IKCWJmZF9zZWN0aW9uIGFscmVhZHkgc2V0IG9yIGNhbGwgYmZkX2luaXRfcHJpdmF0ZV9zZWN0aW9uX2RhdGEKCWhlcmUuCgkoZXhwX2luaXRfb3MpOiBVcGRhdGUgaW5pdF9vcyBjYWxsLgoJKGxhbmdfYWRkX3NlY3Rpb24pOiBUaWR5LiAgUmVhbGx5IGRvbid0IHNldCBTRUNfTElOS19PTkNFCglmbGFncy4gIENhbGwgYmZkX2luaXRfcHJpdmF0ZV9zZWN0aW9uX2RhdGEgaGVyZS4KCShtYXBfaW5wdXRfdG9fb3V0cHV0X3NlY3Rpb25zKTogVGlkeS4gIFVwZGF0ZSBpbml0X29zIGNhbGxzLgoJVXNlIG9zLT5zZWN0eXBlIHRvIHNlbGVjdCBzZWMgZmxhZ3MgZm9yIGxhbmdfZGF0YV9zdGF0ZW1lbnQuCgoyMDEwLTAyLTIzICBBbGFuIE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KCglQUiBsZC8xMTMwNAoJKiBsZGxhbmcuYzogUmV2ZXJ0IGxhc3QgcGF0Y2guCgoyMDEwLTAyLTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vYmcucG86IFVwZGF0ZWQgQnVsZ2FyaWFuIHRyYW5zbGF0aW9uLgoKMjAxMC0wMi0yMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJUFIgbGQvMTEzMDQKCSogbGRsYW5nLmMgKGV4cF9pbml0X29zKTogRGVsZXRlIGZvcndhcmQgZGVjbGFyYXRpb24uCgkoaW5pdF9vcyk6IERvbid0IGNoZWNrIGZvciBiZmRfc2VjdGlvbiBhbHJlYWR5IGNyZWF0ZWQgYW5kIGRvbid0Cglpbml0IGFkZHJfdHJlZSBhbmQgbG9hZF9iYXNlIGV4cHJlc3Npb25zIGhlcmUuCgkobWFwX2lucHV0X3RvX291dHB1dF9zZWN0aW9ucyk6IE9ubHkgbWFwIGlucHV0IHRvIG91dHB1dCBzZWN0aW9ucwoJYW5kIHNldCBjb25zdHJhaW50cyBoZXJlLCBhbmQgYXMgYW4gZXhjZXB0aW9uLCBjcmVhdGUgb3V0cHV0CglzZWN0aW9ucyB3aGljaCBoYXZlIHRoZWlyIGFkZHJlc3Mgc2V0LiAgTW92ZSBhbGwgdGhlIG90aGVyIGNvZGUgdG8uLgoJKGNyZWF0ZV9vdGhlcl9vdXRwdXRfc2VjdGlvbnMpOiAuLmhlcmUuICBOZXcgZnVuY3Rpb24uICBIYW5kbGUgaW5pdAoJb2YgYWRkcl90cmVlIGFuZCBsb2FkX2Jhc2UgaGVyZSB0b28uCgkobGFuZ19wcm9jZXNzKTogQ2FsbCBjcmVhdGVfb3RoZXJfb3V0cHV0X3NlY3Rpb25zLgoKMjAxMC0wMi0xOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJKiBNYWtlZmlsZS5hbSAoZWVsZjMyX2k5NjAuYyk6IERlcGVuZCBvbiBFTEZfR0VOX0RFUFMsIG5vdCBFTEZfREVQUy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDEwLTAyLTE5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KCgkqIGxkbGFuZy5jICh1bmlxdWVfc2VjdGlvbl9wKTogQWRkIG9zIHBhcmFtLiAgQWxsb3cgZ3JvdXAKCXNlY3Rpb25zIHRvIG1hdGNoIC9ESVNDQVJELy4gIFVwZGF0ZSBhbGwgY2FsbGVycy4KCSogZW11bHRlbXBsL2dlbmVsZi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fYmVmb3JlX2FsbG9jYXRpb24pOiBOZXcuCgkoTERFTVVMX0JFRk9SRV9BTExPQ0FUSU9OKTogRGVmaW5lLgoKMjAxMC0wMi0xNSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL3ZpLnBvOiBVcGRhdGVkIFZpZXRuYW1lc2UgdHJhbnNsYXRpb24uCgoyMDEwLTAyLTEwICBSaWNoYXJkIFNhbmRpZm9yZCAgPHIuc2FuZGlmb3JkQHVrLmlibS5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQ0ZJTEVTKTogQWRkIGxkbGV4LXdyYXBwZXIuYy4KCShPRklMRVMpOiBSZXBsYWNlIGxkbGV4LmMgd2l0aCBsZGxleC13cmFwcGVyLmMuCgkobGRsZXgubyk6IFJlcGxhY2Ugd2l0aC4uLgoJKGxkbGV4LXdyYXBwZXIubyk6IC4uLnRoaXMgbmV3IHJ1bGUuCgkoRVhUUkFfbGRfbmV3X1NPVVJDRVMpOiBBZGQgbGRsZXgubC4KCShsZF9uZXdfU09VUkNFUyk6IFJlcGxhY2UgbGRsZXgubCB3aXRoIGxkbGV4LXdyYXBwZXIuYy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGxkbGV4LmwgKHN5c2RlcC5oKTogRG9uJ3QgaW5jbHVkZSBoZXJlLgoJKiBsZGxleC13cmFwcGVyLmM6IE5ldyBmaWxlLgoKMjAxMC0wMi0wOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJKiBlbXVsdGVtcGwvcHBjNjRlbGYuZW0gKHBwY19iZWZvcmVfYWxsb2NhdGlvbik6IFVwZGF0ZSBmb3IgY2hhbmdlZAoJZnVuY3Rpb24gcGFyYW1ldGVycy4KCjIwMTAtMDItMDUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW4gKEFMTF9MSUJHVUFTKTogQWRkIGJnLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIHBvL2JnLnBvOiBOZXcgQnVsZ2FyaWFuIHRyYW5zbGF0aW9uLgoKMjAxMC0wMi0wNSAgUnlhbiBNYW5zZmllbGQgIDxybWFuc2ZpZWxkQHFueC5jb20+CgoJKiBlbXVsdGVtcGwvYXJtZWxmLmVtIChQQVJTRV9BTkRfTElTVF9PUFRJT05TKTogRml4IGhlbHAgZm9yCgktLXRhcmdldDEtYWJzIGFuZCAtLXRhcmdldDEtcmVsIG9wdGlvbnMuCgoyMDEwLTAyLTAzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZW11bHRlbXBsL2FscGhhZWxmLmVtOiBVcGRhdGUgdmFsdWUgZXhwZWN0ZWQgZnJvbSBlbGZfb2JqZWN0X2lkLgoJKiBlbXVsdGVtcGwvaHBwYWVsZi5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9taXBzZWxmLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3BwYzMyZWxmLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3BwYzY0ZWxmLmVtOiBMaWtld2lzZS4KCjIwMTAtMDItMDMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgoKCSogZW11bHRlbXBsL3BwYzY0ZWxmLmVtIChidWlsZF90b2NfbGlzdCk6IFJlcG9ydCBlcnJvcnMgZnJvbQoJcHBjNjRfZWxmX25leHRfdG9jX3NlY3Rpb24uCgkoYWZ0ZXJfYWxsb2NhdGlvbik6IFVwZGF0ZSBmb3IgY2hhbmdlZCBmdW5jdGlvbiBuYW1lcyBhbmQgcGFyYW1zLgoJUnVuIHNlY29uZCBwYXNzIG9mIG11bHRpdG9jIHBhcnRpdGlvbmluZy4KCjIwMTAtMDEtMjEgIEpvbiBHcmFudCAgPGpnQGpndWsub3JnPgoJICAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJUFIgNDQzNwoJKiBsZGZpbGUuYzogKGxkZmlsZV9vcGVuX2ZpbGUpOiBEbyBub3Qgc3RvcCBsaW5rIHVwb24gZW5jb3VudGVyaW5nCglhIG1pc3NpbmcgZmlsZSBvciBsaWJyYXJ5LiAgSW5zdGVhZCBtYXJrIHRoZSBlbnRyeSBhcyBtaXNzaW5nIGFuZAoJc2V0IHRoZSBnbG9iYWwgZmxhZyB0byBpbmRpY2F0ZSB0aGF0IG1pc3NpbmcgZmlsZXMgd2VyZQoJZW5jb3VudGVyZWQuCgkqIGxkbGFuZy5jIChtaXNzaW5nX2ZpbGVzKTogTmV3IGV4cG9ydGVkIHZhcmlhYmxlLgoJKGxvYWRfc3ltYm9scyk6IFNraXAgbG9hZGluZyBpZiB0aGUgZmlsZSBpcyBtaXNzaW5nLgoJKG9wZW5faW5wdXRfYmZkcyk6IFRlcm1pbmF0ZSBsaW5rIGlmIGFueSBpbnB1dCBmaWxlcyB3ZXJlCgltaXNzaW5nLgoJKiBsZGxhbmcuaCAoc3RydWN0IGxhbmdfaW5wdXRfc3RhdGVtZW50X3N0cnVjdCk6IEFkZCBtaXNzaW5nX2ZpbGUKCWZpZWxkLgoJQWRkIGV4cG9ydCBvZiBtaXNzaW5nX2ZpbGUgdmFyaWFibGUuCgoyMDEwLTAxLTEzICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoX3BsYWNlX29ycGhhbik6IElmIGFuIGlucHV0IHNlY3Rpb24gZG9lc24ndAoJbWF0Y2ggYW4gZXhpc3Rpbmcgb3V0cHV0IHNlY3Rpb24sIGJ1dCBhbiB1bnVzZWQgb3V0cHV0IHNlY3Rpb24KCXN0YXRlbWVudCBkb2VzIG1hdGNoLCB1c2UgaXQuCgkqIGVtdWx0ZW1wbC9wZS5lbSAoX3BsYWNlX29ycGhhbik6IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvcGVwLmVtIChfcGxhY2Vfb3JwaGFuKTogTGlrZXdpc2UuCgoyMDEwLTAxLTA5ICBSYWxmIFdpbGRlbmh1ZXMgIDxSYWxmLldpbGRlbmh1ZXNAZ214LmRlPgoKCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMTAtMDEtMDggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGxkdmVyLmMgKGxkdmVyc2lvbik6IENoYW5nZSB0byAiQ29weXJpZ2h0IDIwMTAiLgoKMjAxMC0wMS0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJUFIgMTExMDcKCSogZW11bHRlbXBsL3Z4d29ya3MuZW06IEV4cGFuZCB0ciBhcmd1bWVudHMgdG8gc3VpdCBub24tR05VIHRyLgoKRm9yIG9sZGVyIGNoYW5nZXMgc2VlIENoYW5nZUxvZy0yMDA5CgwKTG9jYWwgVmFyaWFibGVzOgptb2RlOiBjaGFuZ2UtbG9nCmxlZnQtbWFyZ2luOiA4CmZpbGwtY29sdW1uOiA3NAp2ZXJzaW9uLWNvbnRyb2w6IG5ldmVyCkVuZDoK