MjAwMy0wOS0xNiAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlLmFuZ2xpbkBucmMtY25yYy5nYy5jYT4KCgkqIGl0YmwtbGV4LmM6IFJlYnVpbGQgd2l0aCBmbGV4IDIuNS40LgoKMjAwMy0wOS0xNiAgUmFsZiBDb3JzZXBpdXMgIDxjb3JzZXBpdUBmYXcudW5pLXVsbS5kZT4KCgkqIGNvbmZpZ3VyZS5pbjogSGFuZGxlIGFybS0qLXJ0ZW1zKiBhbmQgdGh1bWItKnJ0ZW1zKi4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMy0wNy0yNCAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBjb25maWcvdGMtbTY4aGMxMS5oIChEV0FSRjJfQUREUl9TSVpFKTogVXNlIDMyLWJpdCBhZGRyZXNzIGZvcgoJZGVidWdnaW5nIHN5bWJvbHMgc28gdGhhdCB3ZSBoYW5kbGUgcGFnZSBtZW1vcnkgY29ycmVjdGx5LgoKMjAwMy0wNi0yMiAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZy90Yy1uczMyay5jIChtZF9iZWdpbik6IEluaXRpYWxpemUgaW5zdF9oYXNoX3RhYmxlIGFmdGVyCglhbGwgbG9jYWxzIGhhdmUgYmVlbiBkZWNsYXJlZC4KCjIwMDMtMDYtMTggIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGM0eCBhcyBhbiBhcmNoaXRlY3R1cmUgdmFyaWFudCB0byB0aWM0eC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZG9jL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0wNi0xMyAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJKiB0Yy1hcm0uYyAoRlBVX0RFRkFVTFQsIGNhc2UgVEVfTElOVVgpOiBEZWZhdWx0IHRvIEZQVV9BUkNIX0ZQQS4KCShGUFVfREVGQVVMVCwgY2FzZSBURV9OZXRCU0QpOiBEZWZhdWx0IHRvIEZQVV9BUkNIX1ZGUCBmb3IgRUxGLAoJRlBVX0FSQ0hfRlBBIGZvciBBT1VULgoJKG1kX2JlZ2luKTogRG9uJ3QgdHJ5IHRvIGd1ZXNzIHRoZSBmbG9hdGluZyBwb2ludCBhcmNoaXRlY3R1cmUgZnJvbQoJdGhlIENQVSBpZiB0aGUgT1MgQUJJIChMaW51eCwgTmV0QlNEKSBtYW5kYXRlcyBhIHBhcnRpY3VsYXIgZm9ybS4KCjIwMDMtMDYtMDMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiB0Yy12ODUwLmMgKHRjLWdlbl9yZWxvYyk6IFRyYW5zbGF0ZSBCRkRfUkVMT0NfMzIgaW50bwoJQkZEX1JFTE9DXzMyX1BDUkVMIGlmIHRoZSByZWxvYyBpcyBwYy1yZWxhdGl2ZS4gIERvIHRoaXMKCWJlZm9yZSBjYWxsaW5nIGJmZF9yZWxvY190eXBlX2xvb2t1cC4KCjIwMDMtMDYtMDIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBtYWNyby5jIChzdWJfYWN0dWFsKTogRG9uJ3QgbG9zZSBzdHJpbmcgaWYgaXQgdHVybnMgb3V0IHRoYXQKCSZzdHJpbmcgd2Fzbid0IGFuIGFyZy4KCjIwMDMtMDUtMjkgIEthenVoaXJvIEluYW9rYSAgPGluYW9rYS5rYXp1aGlyb0ByZW5lc2FzLmNvbT4KCgkqIGNvbmZpZy90Yy1tMzJyLmM6IEFtZW5kIGNvbW1lbnQgdG8gcmVmZXIgdG8gUmVuZXNhcwoKMjAwMy0wNS0yNCAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1hY3JvKTogRG9uJ3QgdXNlIHVuaW5pdGlhbGl6ZWQgdGVtcHJlZy4KCjIwMDMtMDUtMTkgIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGNvbmZpZy90Yy10aWM0eC5jIChtZF9hc3NlbWJsZSk6IEFkZGVkIHN1cHBvcnQgZm9yIG9uZS1saW5lIHBhcmFsbGVsCglpbnNucy4KCSogY29uZmlnL3RjLXRpYzR4Lmg6IEFkZGVkIERPVUJMRUJBUl9QQVJBTExFTCBkZWZpbml0aW9uCgoyMDAzLTA1LTE1ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCglNZXJnZSBmcm9tIG1haW5saW5lOgoKCTIwMDMtMDUtMDkgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgkqIGNvbmZpZy90Yy1zMzkwLmMgKHMzOTBfdGFyZ2V0X2Zvcm1hdCk6IEFsd2F5cyBjYWxsIGluaXRfZGVmYXVsdF9hcmNoLgoKCTIwMDMtMDUtMDYgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBjb25maWd1cmUuaW4gKE1JUFNfREVGQVVMVF9BQkkpOiBBQ19ERUZJTkUuCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfYWZ0ZXJfcGFyc2VfYXJncyk6IFNldCBtaXBzX2FiaSB0byBpdC4KCSogY29uZmlnLmluLCBjb25maWd1cmU6IFJlYnVpbHQuCgoyMDAzLTA1LTEzICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIHJlYWQuYyAob2xkX2J1ZmZlciwgb2xkX2lucHV0LCBvbGRfbGltaXQpOiBSZW1vdmUgdmFyaWFibGVzLgoJKHJlYWRfYV9zb3VyY2VfZmlsZSk6IERlbGV0ZSBsYWJlbCBjb250aW4uCgk8aGFuZGxpbmcgI0FQUC8jTk9fQVBQPjogVXNlIGFuICJzYiIgdG8gcHVzaCAjQVBQIGV4cGFuc2lvbiBpbnRvCglpbnB1dCBhcyB3aXRoIG1hY3JvcywgaW5zdGVhZCBvZiBpbiBzZXBhcmF0ZSBvbGRfKiB2YXJpYWJsZXMuCglaZXJvLXRlcm1pbmF0ZSBzdHJpbmcgYmVpbmcgc2NydWJiZWQuCgoyMDAzLTA1LTA1ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfbmVlZF9lbGZfYWRkZW5kX2ZpeHVwKTogUmVtb3ZlCglzeW1ib2xfdXNlZF9pbl9yZWxvY19wIGNoZWNrLgoJKG1kX2FwcGx5X2ZpeDMpOiBSZW1vdmUgY2hlY2sgZm9yIGhvd3RvLT5wY3JlbF9vZmZzZXQuCgoyMDAzLTA1LTAxICBDaHJpc3RpYW4gR3JvZXNzbGVyIDxjaHJpc0Bncm9lc3NsZXIub3JnPgoKCSogZXhwci5oOiBGaXggY29tbWVudHMgaW4gb3BlcmF0b3JUIHR5cGVkZWYuCgkqIGNvbmZpZy90Yy16OGsuYzogQWRkIDIwMDMgdG8gY29weXJpZ2h0IG1lc3NhZ2UuCglGb2xkIHNfc2VnbSgpIGFuZCBzX3Vuc2VnKCkgaW50byBvbmUgZnVuY3Rpb24gc19zZWdtKHBhcm0pIHdoaWNoCglkZWNpZGVzIGJ5IHRoZSBwYXJhbWV0ZXIuCgkobWRfYmVnaW4pOiBEb24ndCBzZXQgbGlua3JlbGF4LiAgT25seSBzZXQgWjgwMDIgZGVmYXVsdCBpZiBubwoJY29tbWFuZCBsaW5lIGFyZ3VtZW50IHdhcyBnaXZlbiB0byBzZWxlY3QgdGhlIGludGVuZGVkCglhcmNoaXRlY3VyZS4KCShnZXRfaW50ZXJydXB0X29wZXJhbmQpOiBXYXJuIGlmIE5PUCB0eXBlIGNvZGUgaXMgZW1pdHRlZC4KCShuZXdmaXgpOiBOZXcgcGFyYW1ldGVyICdzaXplJywgZm9yd2FyZCBpdCB0byAnZml4X25ld19leHAnLgoJKGFwcGx5X2ZpeCk6IENhbGwgbmV3Zml4IHdpdGggYWRkaXRpb25hbCAnc2l6ZScgcGFyYW1ldGVyLgoJKGJ1aWxkX2J5dGVzKTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSAnbmliJy4gIERldGVjdCBvdmVyZmxvdyBpbgoJNCBiaXQgaW1tZWRpYXRlIGFyZ3VtZW50cy4KCShtZF9sb25nb3B0cyk6IEFkZCAnbGlua3JlbGF4JyBvcHRpb24uCgkobWRfcGFyc2Vfb3B0aW9uKTogQWRhcHQgdG8gbmV3IHNfc2VnbSBmdW5jdGlvbi4gIFNldCAnbGlua3JlbGF4JwoJdmFyaWFibGUgd2hlbiAnbGlua3JlbGF4JyBjb21tYW5kIGxpbmUgb3B0aW9uIGlzIHNwZWNpZmllZC4KCShtZF9zaG93X3VzYWdlKTogRGlzcGxheSAnbGlua3JlbGF4JyBvcHRpb24uCgkobWRfYXBwbHlfZml4Myk6IEZpeCBjYXNlcyBSX0lNTTRMLCBSX0pSLCBhbmQgUl9JTU04LiAgQWRkIGNhc2VzCglSX0NBTExSIGFuZCBSX1JFTDE2LgoJKiBjb25maWcvdGMtejhrLmg6IFVuZGVmIFdBUk5fU0lHTkVEX09WRVJGTE9XX1dPUkQuCgoyMDAzLTA0LTMwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWhwcGEuYyAoaHBwYV9zeW1ib2xfY2hhcnMpOiBSZXZlcnQgMjAwMy0wNC0yOCBjaGFuZ2UuCgkqIGNvbmZpZy90Yy1ocHBhLmggKHRjX3N5bWJvbF9jaGFycyk6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtcHBjLmMgKHBwY19zeW1ib2xfY2hhcnMpOiBSZXZlcnQgMjAwMy0wNC0yNCBjaGFuZ2UuCgkqIGNvbmZpZy90Yy1wcGMuaCAodGNfc3ltYm9sX2NoYXJzKTogTGlrZXdpc2UuCgkqIGFwcC5jIChkb19zY3J1Yl9jaGFycyk6IFJldmVydCAyMDAzLTA0LTIzIGFuZCAyMDAzLTA0LTIyIGNoYW5nZXMuCgoyMDAzLTA0LTI5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL29iai1lbGYuYyAob2JqX2VsZl9zeW12ZXIpOiBTa2lwIHdoaXRlc3BhY2UgYmVmb3JlIHRoZQoJc3RhcnQgb2YgYSB2ZXJzaW9uIG5hbWUuCgoyMDAzLTA0LTI4ICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogY29uZmlndXJlLmluIChtaXBzLSotKm4qYnNkKik6IFJlcGxhY2Ugd2l0aC4uLgoJKG1pcHMtKi1uZXRic2QqLCBtaXBzLSotb3BlbmJzZCopOiBUaGVzZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMy0wNC0yOCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBjb25maWcvdGMtaHBwYS5jIChocHBhX3N5bWJvbF9jaGFycyk6IE5ldy4KCSogY29uZmlnL3RjLWhwcGEuaCAodGNfc3ltYm9sX2NoYXJzKTogTGlrZXdpc2UuCgoyMDAzLTA0LTI2ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuaCAoVENfRk9SQ0VfUkVMT0NBVElPTl9TVUJfU0FNRSk6IERlZmluZSBhZ2Fpbi4KCjIwMDMtMDQtMjUgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBORVdTOiBCZWxhdGVkbHkgbWVudGlvbiBzdXBwb3J0IGZvciBNSVBTMzIgUmVsZWFzZSAyLgoKMjAwMy0wNC0yNCAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChub3BpY19uZWVkX3JlbGF4KTogUmV2ZXJ0IHByZXZpb3VzCgljaGFuZ2UuCgoyMDAzLTA0LTI0IERoYW5hbmpheSBEZXNocGFuZGUgPGRoYW5hbmpheWRAa3BpdGN1bW1pbnMuY29tPgoKCSogY29uZmlnL3RjLWg4MzAwLmggKERXQVJGMl9MSU5FX01JTl9JTlNOX0xFTkdUSCk6IE5ldwoJKiBjb25maWcvdGMtaDgzMDAuYyAoZHdhcmYyZGJnLmgpOiBJbmNsdWRlCgkobWRfcHNldWRvX3RhYmxlKTogSGFuZGxlIC5sb2MgYW5kIC5maWxlCgkobWRfYXNzZW1ibGUpOiBDYWxsIGR3YXJmMl9lbWl0X2luc24gaWYgQkZEX0FTU0VNQkxFUi4KCSogTWFrZWZpbGUuYW06IEFkZCBkZXBlbmRlbmN5IG9uIGR3YXJmMmRiZy5oIGZvciBoODMwMCB0YXJnZXRzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMDQtMjQgRGhhbmFuamF5IERlc2hwYW5kZSA8ZGhhbmFuamF5ZEBrcGl0Y3VtbWlucy5jb20+CgoJKiBjb25maWcvdGMtaDgzMDAuYyAoTm1vZGUsIGg4MzAwaG5tb2RlLCBoODMwMHNubW9kZSk6IE5ldy4KCShtZF9wc2V1ZG9fdGFibGUpOiBBZGQgaDgzMDBobiwgaDgzMDBzbi4KCSogY29uZmlnL3RjLWg4MzAwLmggKENPRkZfTUFHSUMpOiBIYW5kbGUgaDgzMDBobiwgaDgzMDBzbi4KCSogZG9jL2MtaDgzMDAudGV4aSA6IEFkZCBkb2N1bWVudGF0aW9uIGZvciBuZXcgbWFjaGluZSBkaXJlY3RpdmVzLgoKMjAwMy0wNC0yNCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAocHBjX3N5bWJvbF9jaGFycyk6IERlZmluZS4KCSogY29uZmlnL3RjLXBwYy5oICh0Y19zeW1ib2xfY2hhcnMpOiBEZWZpbmUuCgoyMDAzLTA0LTIzICBKIm9ybiBSZW5uZWNrZSA8am9lcm4ucmVubmVja2VAc3VwZXJoLmNvbT4KCgkqIGNvbmZpZy90Yy1zaC5jOiBBbWVuZCBjb21tZW50IHRvIHJlZmVyIHRvIFN1cGVySC4KCSogY29uZmlnL3RjLXNoLmg6IExpa2V3aXNlLgoJKExJU1RJTkdfSEVBREVSKTogQW1lbmQgdG8gcmVmZXIgdG8gU3VwZXJILgoJKiBjb25maWcvdGMtc2g2NC5jOiBDaGFuZ2UgY29tbWVudCB0byByZWZlciB0byBTdXBlckguCgkqIGNvbmZpZy90Yy1zaDY0LmggKExJU1RJTkdfSEVBREVSKTogQ2hhbmdlIHRvIHJlZmVyIHRvIFN1cGVySC4KCSogZG9jL2FzLnRleGluZm8gW1NILCBHRU5FUklDXTogQW1lbmQgLyBDaGFuZ2UgdG8gcmVmZXIgdG8gU3VwZXJILgoJKiBkb2MvYy1zaC50ZXhpOiBBbWVuZCB0byByZWZlciB0byBTdXBlckguCglBZGQgU3VwZXJIIGFyY2hpdGVjdHVyZSBkb2N1bWVudGF0aW9uIHJlZmVyZW5jZXMuCgkqIGRvYy9jLXNoNjQudGV4aTogQ2hhbmdlIHRvIHJlZmVyIHRvIFN1cGVySC4KCjIwMDMtMDQtMjMgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogYXBwLmMgKGRvX3NjcnViX2NoYXJzKTogTW9yZSBjaGVja3MgZm9yIHZhbGlkIGxhYmVscy4KCjIwMDMtMDQtMjIgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogYXBwLmMgKGRvX3NjcnViX2NoYXJzKTogQ2hlY2sgZm9yIHZhbGlkIGxhYmVsLgoKMjAwMy0wNC0yMiAgS2F6dWhpcm8gSW5hb2thICA8aW5hb2thLmthenVoaXJvQHJlbmVzYXMuY29tPgoKCSogZG9jL2FzLnRleGluZm86IFJlcGxhY2UgcmVmZXJlbmNlcyB0byBNaXRzdWJpc2hpIE0zMlIgd2l0aAoJcmVmZXJlbmNlcyB0byBSZW5lc2FzIE0zMlIuCgkqIGRvYy9jLW0zMnIudGV4aTogTGlrZXdpc2UuCgoyMDAzLTA0LTIxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZHdhcmYyZGJnLmMgKGdldF9maWxlbnVtKTogU2tpcCBhcy15ZXQgdW5hc3NpZ25lZCBmaWxlIG51bWJlcnMuCgkob3V0X2ZpbGVfbGlzdCk6IEFzc2lnbiBub24tbnVsbCBmaWxlbmFtZSBhZnRlciBnZW5lcmF0aW5nIGVycm9yLgoKMjAwMy0wNC0xOCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlaG9wdC5jIChjaGVja19laF9mcmFtZSk6IEZvciBhdWdfc2l6ZSA9PSAwCglpbiBzdGF0ZV9zZWVpbmdfYXVnX3NpemUgc3RhdGUgc2tpcCB0aGUgc3RhdGVfc2tpcHBpbmdfYXVnCglzdGF0ZS4KCjIwMDMtMDQtMTUgIFJvaGl0IEt1bWFyIFNyaXZhc3RhdmEgPHJvaGl0c0BrcGl0Y3VtbWlucy5jb20+CgoJKiBkb2MvYy1oODMwMC50ZXhpOiBSZXBsYWNlIG9jY3VycmFuY2VzIG9mICdIaXRhY2hpJyB3aXRoCgknUmVuZXNhcycuCgkqIGRvYy9jLWg4NTAwLnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy1zaC50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2Mtc2g2NC50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2g4LnRleGk6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaDgzMDAuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1oODMwMC5oOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWg4NTAwLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaDg1MDAuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1zaC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXNoLmg6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtc2g2NC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXNoNjQuaDogTGlrZXdpc2UuCgoyMDAzLTA0LTEwICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmggKHRjX2ZyYWdfZGF0YV90eXBlLCBUQ19GUkFHX1RZUEUpOiBOZXcuCgkqIGNvbmZpZy90Yy1taXBzLmM6IFVzZSBzaWduZWQgYWRkIGZvciBuMzIgYWRkcmVzcyBhcml0aG1ldGljLgoJKGFwcGVuZF9pbnNuKTogV2hlbiBmaWxsaW5nIGRlbGF5IHNsb3RzIHdpdGggaW5zdHJ1Y3Rpb25zCgl0aGF0IGhhdmUgZml4dXBzIHRoYXQgdGNfZ2VuX3JlbG9jIG1pZ2h0IGNvbnNpZGVyIG1vZGlmeWFibGUKCWluIHZhcmlhbnQgZnJhZ3MsIHN0YXJ0IGEgbmV3IGZyYWcuCgkobG9hZF9hZGRyZXNzKTogR2VuZXJhdGUgR09UX0RJU1Agd2l0aCBvZiB3aXRob3V0IG9mZnNldAoJZGVwZW5kaW5nIG9uIHdoZXRoZXIgc3ltYm9sIGlzIGxvY2FsLiAgRm9yIC14Z290LCB1c2UKCUdPVF9QQUdFL0dPVF9PRlNUIG9yIEdPVF9ISTE2L0dPVF9MTzE2LgoJKG1hY3JvKSA8TV9ETEFfQUIsIE1fTEFfQUI+OiBMaWtld2lzZS4KCTxNX0pBTF9BPjogSW4gTmV3QUJJLCB1c2UgQ0FMTDE2IG9yIEdPVF9ESVNQIGZvciBzbWFsbCBnb3QsCglDQUxMX0hJMTYvQ0FMTF9MTzE2IG9yIEdPVF9QQUdFL0dPVF9PRlNUIGZvciBiaWcgZ290LgoJPGxkX3N0PjogSW4gTmV3QUJJIHdpdGggc21hbGwgZ290LCBhbHdheXMgdXNlCglHT1RfUEFHRS9HT1RfT0ZTVCwgd2l0aCB0aGUgbGF0dGVyIGluIHRoZSBsb2FkL3N0b3JlCglpbnN0cnVjdGlvbi4gIFdpdGggYmlnIGdvdCwgdXNlIEdPVF9ISTE2L0dPVF9MTzE2IG9yCglHT1RfUEFHRS9HT1RfT0ZTVC4KCSh0Y19nZW5fcmVsb2MpOiBBZGp1c3QgdmFyaWFudCBmcmFncyB3aXRoIEdPVF9ESVNQIGluIE5ld0FCSS4KCUFkZCB0Y19mcmFnX2RhdGEudGNfZnJfb2Zmc2V0IHRvIGFkZGVuZHMuICBEZWNheSBDQUxMMTYsCglHT1RfT0ZTVCBhbmQgR09UX0RJU1AgdG8gR09UX0RJU1AgaW4gTmV3QUJJLgoJKG1kX2NvbnZlcnRfZnJhZyk6IFVzZSBtZW1tb3ZlIGZvciBzYWZlIGNvcHlpbmcgb2Ygb3ZlcmxhcHBpbmcKCXJlZ2lvbnMuCgoyMDAzLTA0LTA5ICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGRvYy9jLW02OGhjMTEudGV4aSAoTTY4SEMxMS1PcHRzKTogRG9jdW1lbnQgLW02OGhjczEyLCAtbXNob3J0LAoJLW1sb25nLCAtbXNob3J0LWRvdWJsZSBhbmQgLW1sb25nLWRvdWJsZSBvcHRpb25zOyB1c2UgdGFibGUgQGNvZGUuCgkoTTY4SEMxMS1TeW50YXgpOiBVcGRhdGUgdG8gZG9jdW1lbnQgNjhIQzEyIG9wZXJhbmRzLgoJKE02OEhDMTEtTW9kaWZpZXJzKTogTmV3IHNlY3Rpb24gZm9yIG9wZXJhbmQgbW9kaWZpZXJzLgoJKE02OEhDMTEtRGlyZWN0aXZlcyk6IE5ldyBzZWN0aW9uIGZvciBzcGVjaWZpYyBhc3NlbWJsZXIgZGlyZWN0aXZlcy4KCShNNjhIQzExLUJyYW5jaCk6IEZpeCBPdmVyZnVsbCBoYm94IGVycm9yLgoKMjAwMy0wNC0wOSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNybyk6IEFkZCBjb21tZW50cyBleHBsYWluaW5nIHRoZSByYXRpb25hbGUKCWZvciBDaHJpcycgY2hhbmdlLgoKMjAwMy0wNC0wOSAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1hY3JvKTogUHV0IGJhY2sgYCsgMHg4MDAwJyBpbiB0ZXN0IGZvciA2NC1iaXQKCWNvbnN0YW50IGFkZHJlc3MgdGhhdCBBbGV4YW5kcmUgdG9vayBvdXQgYnkgYWNjaWRlbnQuICBSZWplY3QKCTY0LWJpdCBhZGRyZXNzZXMgdGhhdCBhcmUgbm90IHNpZ24gZXh0ZW5zaW9ucyBvZiAzMiBiaXRzIG9ubHkgaWYKCXdlIGRvbid0IHN1cHBvcnQgNjQtYml0IGFkZHJlc3MgY29uc3RhbnRzLgoKMjAwMy0wNC0wOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAobWRfYXBwbHlfZml4Myk6IEdlbmVyYXRlIEFERFIxNiByZWxvY3MuCgoyMDAzLTA0LTA4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogYXMuYyAocGVyZm9ybV9hbl9hc3NlbWJseV9wYXNzKTogSWYgdXNpbmcgY2dlbiwgY2FsbAoJZ2FzX2NnZW5fYmVnaW4uCgkqIGNnZW4uYyAoZ2FzX2NnZW5fYmVnaW4pOiBOZXcgZnVuY3Rpb24uICBJZgoJZmxhZ19zaWduZWRfb3ZlcmZsb3dfb2sgaXMgc2V0IGNhbGwgY2dlbl9zZXRfc2lnbmVkX292ZXJmbG93X29rCglvdGhlcndpc2UgY2FsbCBjZ2VuX2NsZWFyX3NpZ25lZF9vdmVyZmxvd19vay4KCSogY2dlbi5oOiBQcm90b3R5cGUgZ2FzX2NnZW5fYmVnaW4uCgoyMDAzLTA0LTA3ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogd3JpdGUuYyAod3JpdGVfcmVsb2NzKTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KCjIwMDMtMDQtMDYgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChIQVZFXzY0QklUX0FERFJFU1NfQ09OU1RBTlRTKTogTmV3LgoJKG1hY3JvKTogVXNlIG5ldyBtYWNybyB0byBkZWNpZGUgd2hldGhlciB0byBlbWl0IGNvbnN0YW50IGFkZHJlc3MKCWFzIDMyIG9yIDY0IGJpdHMgaWYgYWRkcmVzc2VzIGFyZSAzMi1iaXQgd2lkZSBidXQgcmVnaXN0ZXJzIGFyZQoJNjQtYml0IHdpZGUuCgoyMDAzLTA0LTA1ICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGNvbmZpZy90Yy1tNjhoYzExLmMgKE02ODExX09QX0NBTExfQUREUik6IE5ldyBpbnRlcm5hbCBkZWZpbmUuCgkoTTY4MTFfT1BfUEFHRV9BRERSKTogTmV3IGludGVybmFsIGRlZmluZS4KCShnZXRfb3BlcmFuZCk6IE5ldyBtb2RpZmllciAlcGFnZSBhbmQgJWFkZHIgdG8gb2J0YWluIHBhZ2UgYW5kCglhZGRyZXNzIHBhcnQgb2YgYSBmYXItZnVuY3Rpb24uCgkoZml4dXA4KTogVXNlIEJGRF9SRUxPQ19NNjhIQzExX1BBR0UgZm9yIGEgJXBhZ2UgbW9kaWZpZXI7IGRvbid0Cgljb21wbGFpbiBvbiBvdmVyZmxvdyBmb3IgdGhlIEJGRF9SRUxPQ19NNjhIQzExX1BBR0UgYW5kIHRydW5jYXRpb24KCXJlbG9jcy4KCShmaXh1cDE2KTogVXNlIEJGRF9SRUxPQ19NNjhIQzExX0xPMTYgZm9yIGEgJWFkZHIgbW9kaWZpZXIuCgkoZmluZF9vcGNvZGUpOiBBZGQgY29tbWVudC4KCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IEZvcmNlIHJlbG9jYXRpb24gb2YKCVNUQVRFX1VOREVYRURfT0ZGU0VUIHR5cGVzIHdoZW4gdGhlIHN5bWJvbCBpcyBub3QgYWJzb2x1dGUuCgkodGNfbTY4aGMxMV9maXhfYWRqdXN0YWJsZSk6IENoZWNrIGZvciBCRkRfUkVMT0NfTTY4SEMxMV9MTzE2CglpbnN0ZWFkIG9mIEJGRF9SRUxPQ19MTzE2OyB0ZW1wb3JhcmlseSBtYWtlIHRoZSBCRkRfUkVMT0NfMzIKCW9uIHRoZSBzeW1ib2wgaXRzZWxmIHNvIHRoYXQgRFdBUkYyIHN0cmluZ3MgYXJlIG1lcmdlZCBjb3JyZWN0bHkuCgoyMDAzLTA0LTA0ICBTdmVpbiBFLiBTZWxkYWwgIDxTdmVpbi5TZWxkYWxAc29saWRhcy5jb20+CgoJKiBjb25maWcvb2JqLWNvZmYuaCAoVEFSR0VUX0ZPUk1BVCk6IE5hbWVzcGFjZSBjbGVhbnVwLCBjaGFuZ2VkCglkZWZhdWx0IHRpYzR4IHRhcmdldCBmb3JtYXQgdG8gJ2NvZmYyLXRpYzR4Jy4KCSogY29uZmlnL3RjLXRpYzR4LmM6IE5hbWVzcGFjZSBjbGVhbnVwLiBSZXBsYWNlIHMvYzR4L3RpYzR4LyBhbmQKCXMvYzN4L3RpYzN4LwoJKiBjb25maWcvdGMtdGljNHguaDogRGl0dG8KCjIwMDMtMDQtMDMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBORVdTOiBNZW50aW9uIHN1cHBvcnQgZm9yIFh0ZW5zYSBhcmNoaXRlY3R1cmUuCgoyMDAzLTA0LTAyICBQaGlsaXAgQmx1bmRlbGwgIDxwaGlsYkBnbnUub3JnPgoKCSogY29uZmlnL3RjLWFybS5jIChhcm1fZm9yY2VfcmVsb2NhdGlvbik6IFJldHVybiAwIGZvciBPRkZTRVRfSU1NLgoKMjAwMy0wNC0wMiAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1hY3JvMik6IEFkanVzdCBpbXBsZW1lbnRhdGlvbiBvZgoJTV9VTEgsIE1fVUxIVSwgTV9VTFcsIGFuZCBNX1VMRCBzbyB0aGF0IHRoZXkgd29yayBwcm9wZXJseQoJaW4gdGhlIGNhc2Ugd2hlcmUgdGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gcmVnaXN0ZXJzCglhcmUgdGhlIHNhbWUuCgoyMDAzLTA0LTAxICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogTWFrZWZpbGUuYW0gKENQVV9UWVBFUyk6IEFkZCB4dGVuc2EuCgkoVEFSR0VUX0NQVV9DRklMRVMpOiBBZGQgY29uZmlnL3RjLXh0ZW5zYS5jLgoJKFRBUkdFVF9DUFVfSEZJTEVTKTogQWRkIGNvbmZpZy90Yy14dGVuc2EuaC4KCSh4dGVuc2EtcmVsYXgubyk6IE5ldyB0YXJnZXQuCglSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS5pbjogSGFuZGxlIHh0ZW5zYS0qLSouICBBZGQgeHRlbnNhLXJlbGF4Lm8gdG8KCWV4dHJhX29iamVjdHMgZm9yIHh0ZW5zYSB0YXJnZXRzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIHdyaXRlLmMgKHdyaXRlX29iamVjdF9maWxlKTogQWRkIG5ldyBtZF9wb3N0X3JlbGF4X2hvb2suCgkqIGNvbmZpZy90Yy14dGVuc2EuYzogTmV3IGZpbGUuCgkqIGNvbmZpZy90Yy14dGVuc2EuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy94dGVuc2EtaXN0YWNrLmg6IExpa2V3aXNlLgoJKiBjb25maWcveHRlbnNhLXJlbGF4LmM6IExpa2V3aXNlLgoJKiBjb25maWcveHRlbnNhLXJlbGF4Lmg6IExpa2V3aXNlLgoJKiBkb2MvTWFrZWZpbGUuYW0gKENQVV9ET0NTKTogQWRkIGMteHRlbnNhLnRleGkuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZG9jL2FsbC50ZXhpOiBTZXQgbmV3IFhURU5TQSB2YXJpYWJsZS4KCSogZG9jL2FzLnRleGluZm86IFNldCBuZXcgWHRlbnNhIHZhcmlhYmxlLiAgRGVzY3JpYmUKCVh0ZW5zYS1zcGVjaWZpYyBvcHRpb25zLiAgRGVmaW5lIGxpbmUgY29tbWVudCBjaGFyYWN0ZXIgZm9yCglYdGVuc2EuICBBZGQgWHRlbnNhIHByb2Nlc3NvcnMgdG8gbGlzdCBvZiBFTEYgdGFyZ2V0cyB3aGVyZQoJYWxpZ25tZW50IGlzIHNwZWNpZmllZCBpbiBieXRlcy4gIEFkZCBuZXcgWHRlbnNhLURlcGVuZGVudCBub2RlLgoJQWRkIGFja25vd2xlZGdlbWVudHMgZm9yIHRob3NlIGNvbnRyaWJ1dGluZyB0byB0aGUgWHRlbnNhIHBvcnQuCgkqIGRvYy9pbnRlcm5hbHMudGV4aTogRGVzY3JpYmUgbmV3IG1kX3Bvc3RfcmVsYXhfaG9vay4KCSogZG9jL2MteHRlbnNhLnRleGk6IE5ldyBmaWxlLgoKMjAwMy0wNC0wMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCSAgICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYzogUmVtb3ZlIHByZXNlbmNlIG9mIChyKSBhbmQgKHRtKSBzeW1ib2xzLgoJKEFSTV9BUkNIX0lXTU1YVCk6IFNpbXBsaWZ5LgoJKGluc25zKTogUGxhY2UgaXdtbXggaW5zdHJ1Y3Rpb25zIGluIGNvcnJlY3QgcGxhY2UgaW4gdGFibGUuCgkoYXJtX2FkZF9ub3RlKTogTmV3IGZ1bmN0aW9uOiBBZGQgYSBub3RlIGVudHJ5IHRvIGEgLm5vdGUgc2VjdGlvbi4KCShtZF9iZWdpbik6IE1ha2UgdGhlIGRlZmF1bHQgYXJjaGl0ZWN0dXJlIGJlIHVua25vd24uCglTdXBwcmVzcyB0aGUgY3JlYXRpb24gb2YgYW4gYXJtIG5vdGUgc2VjdGlvbi4KCjIwMDMtMDMtMjYgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobm9waWNfbmVlZF9yZWxheCk6IENoZWNrIGZvciBTX0lTX0VYVEVSTi4KCjIwMDMtMDMtMjUgIFN0YW4gQ294ICAgPHNjb3hAcmVkaGF0LmNvbT4KCSAgICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCUNvbnRyaWJ1dGUgc3VwcG9ydCBmb3IgSW50ZWwncyBpV01NWHQgY2hpcCAtIGFuIEFSTSB2YXJpYW50OgoKCSogY29uZmlnL3RjLWFybS5jOiAoQVJNX0NFWFRfSVdNTVhULCBBUk1fQVJDSF9JV01NWFQsIFdSX1BSRUZJWCwKCVdDX1BSRUZJWCwgUkVHX1RZUEVfSVdNTVhUKTogTmV3IGNvbnN0YW50cy4KCShlbnVtIHdyZWdfdHlwZSwgZW51bSBpd21teHRfaW5zbl90eXBlKTogTmV3IHR5cGVzLgoJKHdyX3JlZ2lzdGVyLCB3Y19yZWdpc3Rlciwgd2NnX3JlZ2lzdGVyKTogTmV3IG1hY3Jvcy4KCShpd21teHRfdGFibGUpOiBOZXcgdmFyaWFibGUuCgkod3JlZ19yZXF1aXJlZF9oZXJlLCBkb19pd21teHRfYnl0ZV9hZGRyLCBkb19pd21teHRfdGFuZGMsCglkb19pd21teHRfdGJjc3QsIGRvX2l3bW14dF90ZXh0cmMsIGRvX2l3bW14dF90ZXh0cm0sCglkb19pd21teHRfdGluc3IsIGRvX2l3bW14dF90bWNyLCBkb19pd21teHRfdG1jcnIsIGRvX2l3bW14dF90bWlhLAoJZG9faXdtbXh0X3Rtb3Ztc2ssIGRvX2l3bW14dF90bXJjLCBkb19pd21teHRfdG1ycmMsCglkb19pd21teHRfdG9yYywgZG9faXdtbXh0X3dhbGlnbmksIGRvX2l3bW14dF93bW92LAoJZG9faXdtbXh0X3dvcmRfYWRkciwgZG9faXdtbXh0X3dyd3IsIGRvX2l3bW14dF93cndyd2NnLAoJZG9faXdtbXh0X3dyd3J3ciwgZG9faXdtbXh0X3dzaHVmaCwgZG9faXdtbXh0X3d6ZXJvLAoJY3BfYnl0ZV9hZGRyZXNzX29mZnNldCwgY3BfYnl0ZV9hZGRyZXNzX3JlcXVpcmVkX2hlcmUsCgljaGVja19pd21teHRfaW5zbik6IE5ldwlmdW5jdGlvbnMuCgkoYXNtX29wY29kZV9pbnNucyk6IEFkZCBpV01NWHQgaW5zdHJ1Y3Rpb25zLgoJKG1kX2JlZ2luKTogU2V0IHRoZSBtYWNoIHZhbHVlIGZvciBpV01NWHQgdGFyZ2V0cy4gIENyZWF0ZSBhIG5vdGUKCXNlY3Rpb24gdG8gaWRlbnRpZnkgaXdtbXh0IGJpbmFyaWVzLgoJKG1kX2FwcGx5X2ZpeDMpOiBIYW5kbGUgQkZEX1JFTE9DX0FSTV9DUF9PRkZfSU1NX1MyLgoJKiBkb2MvYy1hcm0udGV4aTogRG9jdW1lbnQgdGhlIHN1cHBvcnQgZm9yIHRoZSBpV01NWHQuCgkqIE5FV1M6IE1lbnRpb24gbmV3IHN1cHBvcnQuCgoyMDAzLTAzLTI0ICBEYW5pZWwgTulyaSAgPGRuZUBtYXlvbm5haXNlLm5ldD4KCgkqIGRvYy9hcy50ZXhpbmZvOiBSZW5hbWUgdGhlIGFsbCBvY2N1cmFuY2VzIG9mIEM1NFggdG8gVElDNTRYLgoJKiBkb2MvYWxsLnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy10aWM1NHgudGV4aTogTGlrZXdpc2UuCgoyMDAzLTAzLTIxICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogY29uZmlnL3RjLWlhNjQuYyAoZ2VuZXJhdGVfdW53aW5kX2ltYWdlKTogRml4IHR5cGUgb2YgdW53X3JlYyB0bwoJYXZvaWQgYWxpYXNpbmcgaXNzdWUuCgoyMDAzLTAzLTIxICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogY29uZmlnL3RjLXMzOTAuYyAoczM5MF9hcmNoX3NpemUpOiBJbml0aWFsaXplIHRvIHplcm8uCgkoY3VycmVudF9hcmNoX21hc2spOiBSZW5hbWUgdG8gY3VycmVudF9tb2RlX21hc2suCgkoY3VycmVudF9hcmNoX3JlcXVlc3RlZCk6IFJlbW92ZSB2YXJpYWJsZS4KCShjdXJyZW50X2NwdSk6IE5ldyB2YXJpYWJsZS4KCShpbml0X2RlZmF1bHRfYXJjaCk6IFNldCBkZWZhdWx0cyB2YWx1ZXMgZm9yIHMzOTBfYXJjaF9zaXplLAoJY3VycmVudF9tb2RlX21hc2sgYW5kIGN1cnJlbnRfY3B1LgoJKG1kX3BhcnNlX29wdGlvbik6IE5ldyBvcHRpb25zIC1tZXNhLCAtbXphcmNoIGFuZCAtbWFyY2g9e2c1LGc2LHo5MDB9LgoJKG1kX2JlZ2luKTogUmVwbGFjZSBjdXJyZW50X2FyY2hfbWFzayBieSBjdXJyZW50X2NwdS4KCShtZF9hc3NlbWJsZSk6IEFkYXB0IGNoZWNrIGFuZCBlcnJvciBtZXNzYWdlIHRvIGN1cnJlbnRfbW9kZV9tYXNrIGFuZAoJY3VycmVudF9jcHUuCgoyMDAzLTAzLTA5ICBKYW1lcyBFIFdpbHNvbiAgPHdpbHNvbkB0dWxpcHRyZWUub3JnPgoKCSogbWFjcm8uYyAoYnVmZmVyX2FuZF9uZXN0KTogU3RvcmUgbW9yZSB0byBzYiBpbnN0ZWFkIG9mICdcbicuCgkqIHJlYWQuYyAoZ2V0X2xpbmVfc2IpOiBSZXR1cm4gZW5kIG9mIGxpbmUgY2hhcmFjdGVyIG9yICdcbicgaWYKCWl0IGlzIHplcm8gb3Igbm9uLWV4aXN0ZW50LgoKMjAwMy0wMy0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzX3ZhbGlkYXRlX2ZpeCk6IE5ldyBmdW5jdGlvbi4KCSogY29uZmlnL3RjLW1pcHMuaCAoVENfVkFMSURBVEVfRklYKTogRGVmaW5lLgoJKG1pcHNfdmFsaWRhdGVfZml4KTogRGVjbGFyZS4KCjIwMDMtMDMtMTIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogUmV2ZXJ0ZWQgMjAwMy0wMy0wMidzIHBhdGNoLgoKMjAwMy0wMy0xMSAgU3RldmUgRWxsY2V5ICA8c2plQGN1cC5ocC5jb20+CgoJKiBkd2FyZjJkYmcuYyAoZ2VuZXJpY19kd2FyZjJfZW1pdF9vZmZzZXQpOiBOZXcuCgkoVENfRFdBUkYyX0VNSVRfT0ZGU0VUKTogUHJvdmlkZSBkZWZhdWx0LgoJKG91dF9kZWJ1Z19hcmFuZ2VzLCBvdXRfZGVidWdfaW5mbyk6IFVzZSBpdC4KCSogY29uZmlnL3RjLWlhNjQuYyAoaWE2NF9kd2FyZjJfZW1pdF9vZmZzZXQpOiBOZXcuCgkoaWE2NF9jb25zX2ZpeF9uZXcpOiBNb3ZlIEZVTkNfRFRQX1JFTEFUSVZFIGhhbmRsaW5nIC4uLgoJKGlhNjRfZ2VuX3JlYWxfcmVsb2NfdHlwZSk6IC4uLiBoZXJlLgoJKiBjb25maWcvdGMtaWE2NC5oIChUQ19EV0FSRjJfRU1JVF9PRkZTRVQpOiBOZXcuCgoyMDAzLTAzLTA5ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoc19taXBzX2VuZCk6IFJlbW92ZSAhQkZEX0FTU0VNQkxFUiBjYXNlLgoJKHNfbWlwc19lbnQpOiBMaWtld2lzZS4KCjIwMDMtMDMtMDQgIERtaXRyeSBEaWt5ICA8ZGl3aWxAbWFpbC5ydT4KCgkqIGNvbmZpZy90Yy1tc3A0MzAuYyAobWN1X3R5cGVzKTogQWRkIHJlY2VudGx5IGFubm91bmNlZCB4MTEyMgoJYW5kIHgxMTIzIGRldmljZXMsIGFkZCBtaXNzZWQgeDQzNy4KCShtZF9zaG93X3VzYWdlKTogU29ydCBkZXZpY2UgbGlzdC4KCjIwMDMtMDMtMDMgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tPgoKCSogY29uZmlnL3RjLXNoLmMgKHNoX2RzcCk6IFJlcGxhY2Ugd2l0aCBwcmVzZXRfdGFyZ2V0X2FyY2guCgkobWRfYmVnaW4pOiBVc2UgcHJlc2V0X3RhcmdldF9hcmNoLgoJKG1kX2xvbmdvcHRzKTogTWFrZSBpc2Egb3B0aW9uIHVuY29uZGl0aW9uYWwuCgkobWRfcGFyc2Vfb3B0aW9uKTogTWFrZSBPUFRJT05fRFNQIGFuZCBPUFRJT05fSVNBIHNoNCAvIGFueQoJc2V0IHByZXNldF90YXJnZXRfYXJjaC4KCShtZF9hcHBseV9maXgzKTogSWYgQkZEX0FTU0VNQkxFUiwgYWRqdXN0IFNXSVRDSF9UQUJMRSBmaXh1cHMKCWJ5IC1TX0dFVF9WQUxVRSAgKGZpeFAtPmZ4X3N1YnN5KS4KCSh0Y19nZW5fcmVsb2MpOiBGb3IgU1dJVENIX1RBQkxFIGZpeHVwcywgdGhlIHN5bWJvbCBpcyBmaXhwLT5meF9zdWJzeSwKCWFuZCB0aGUgYWRkZW5kIGlzIDAuCglBZGp1c3QgYWRkZW5kIG9mIFJfU0hfSU5EMTJXIHJlbG9jYXRpb25zIGJ5IGZpeHAtPmZ4X29mZnNldCAtIDQuCgkqIGNvbmZpZy90Yy1zaC5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9MT0NBTCk6IERlZmluZS4KCjIwMDMtMDMtMDIgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChhcHBlbmRfaW5zbik6IEFkZCBoYW5kbGluZyBvZgoJQkZEX1JFTE9DX01JUFNFTUJfMTZfUENSRUxfUzIuIEF2b2lkIGVtaXR0aW5nIHVubmVlZGVkCglCRkRfUkVMT0NfMTZfUENSRUxfUzIgcmVsb2NzIGFuZCBhZGQgZWFybGllciB3YXJuaW5ncyBhYm91dAoJbWlzYWxpZ25lZCBhZGRyZXNzIGFuZCByZWFuZ2Ugb3ZlcmZsb3cuCgkobWFjcm9fYnVpbGQpOiBBZGQgaGFuZGxpbmcgb2YgQkZEX1JFTE9DX01JUFNFTUJfMTZfUENSRUxfUzIuIEFkZAoJZWFybGllciB3YXJuaW5ncyBhYm91dCBtaXNhbGlnbmVkIGFkZHJlc3MgYW5kIHJlYW5nZSBvdmVyZmxvdy4KCShtaXBzX2lwKTogQWRkIGhhbmRsaW5nIG9mIEJGRF9SRUxPQ19NSVBTRU1CXzE2X1BDUkVMX1MyLgoJKG1kX2FwcGx5X2ZpeCk6IExpa2V3aXNlLiBGaXggd2FybmluZyBvdXRwdXQuCgkodGNfZ2VuX3JlbG9jKTogQWRkIGhhbmRsaW5nIG9mIEJGRF9SRUxPQ19NSVBTRU1CXzE2X1BDUkVMX1MyLgoJQWxsb3cgQkZEX1JFTE9DXzE2X1BDUkVMX1MyIGZvciBhbGwgQUJJcy4KCShtZF9jb252ZXJ0X2ZyYWcpOiBBZGQgaGFuZGxpbmcgb2YgQkZEX1JFTE9DX01JUFNFTUJfMTZfUENSRUxfUzIuCgoyMDAzLTAyLTIxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogTkVXUzogTWVudGlvbiBhdmFpbGFiaWxpdHkgb2YgdGVzdCBnZW5lcmF0b3IgcHJvZ3JhbS4KCjIwMDMtMDItMjEgIE1pbGVzIEJhZGVyICA8bWlsZXNAZ251Lm9yZz4KCgkqIGNvbmZpZy90Yy12ODUwLmMgKHN5c3RlbV9yZWdpc3RlcnMpOiBBZGQgdjg1MGUgZGVidWcgcmVnaXN0ZXJzLgoJKHN5c3RlbV9yZWdpc3Rlcl9uYW1lKTogQWNjZXB0IHVwIHRvIDI3ICh0aGUgbGFzdCB2ODUwZSBzeXMgcmVnaXN0ZXIpLgoKMjAwMy0wMi0yMSAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIGRvYy9hcy50ZXhpbmZvOiBEZWZpbmUgbmV3IENPRkYtRUxGIHZhcmlhYmxlIHRvIGNvbmRpdGlvbmFsaXplIHRleHQKCXJlbGV2YW50IHRvIGJvdGggQ09GRiBhbmQgRUxGLiAgRml4IG9idmlvdXMgdHlwb3MgYW5kIHRleGluZm8gYnVncy4KCUNhcGl0YWxpemUgc2VjdGlvbiBoZWFkaW5ncyBjb25zaXN0ZW50bHkuICBGb3JtYXQgaW5kZXggZW50cmllcyBtb3JlCgljb25zaXN0ZW50bHkuICBVbmNvbmRpdGlvbmFsaXplIHRleHQgYWJvdXQgd2hldGhlciB0ZXh0IGFuZCBkYXRhCglzZWN0aW9ucyBhcmUgYWx0ZXJhYmxlLiAgVXNlIEBpZm5vdHRleCBmb3IgYWx0ZXJuYXRpdmVzIHRvIEB0ZXggb3V0cHV0CglzbyB0aGF0IEhUTUwgd29ya3MuICBDbGVhbiB1cCBDT0ZGIHZzLiBFTEYgZGVzY3JpcHRpb25zIG9mIC5zZWN0aW9uLAoJLnNpemUgYW5kIC50eXBlIGRpcmVjdGl2ZXMuICBCZSBtb3JlIHBvbGl0ZSBhYm91dCBiYWQgYnVnIHJlcG9ydHMuCglNb3ZlIEZETCBpbnRvIGEgc2VwYXJhdGUgZmlsZS4KCSogZG9jL2ZkbC50ZXhpOiBOZXcgZmlsZS4KCjIwMDMtMDItMjEgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKHByZXZfcmVsb2Nfb3BfZnJhZyk6IE5ldyB2YXJpYWJsZS4KCShtYWNybyk6IENoZWNrIGl0IHRvIGRlY2lkZSB3aGV0aGVyIGEgbmV3IGZyYWcgaXMgbmVlZGVkLgoJKG15X2dldFNtYWxsRXhwcmVzc2lvbik6IFNldCBpdC4KCjIwMDMtMDItMjAgIGptYyAgPGptY0BwcmlvcmlzLm1pbmkucHcuZWR1LnBsPgoKCSogY2dlbi5jOiBGaXggdHlwbzogaW50aWFsIC0+IGluaXRpYWwuCgoyMDAzLTAyLTE5ICBKaWUgWmhhbmcgIDx6aGFuZ2ppZUBtYWdpbWEuY29tLmNuPgoKCSogYXBwLmMgKGRvX3NjcnViX2NoYXJzKTogSGFuZGxlICd8fCcgaW4gdHdvIHN0YXRlcy4KCjIwMDMtMDItMTMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiB3cml0ZS5jIChUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9TQU1FKTogUmV2ZXJ0IGxhc3QgY2hhbmdlLgoJKiBjb25maWcvdGMtczM5MC5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9TQU1FKTogRGVmaW5lLgoKMjAwMy0wMi0xMSAgVXdlIFN0aWViZXIgIDx1d2VAd3d3cy5kZT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHN1cHBvcnQgZm9yIGthT1MgYXMgY3Jvc3MgYnVpbGQgdGFyZ2V0IHN5c3RlbS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCjIwMDMtMDItMTAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtYXJtLmMgKG1kX2JlZ2luKTogSWYgdGhlIE1hdmVyaWNrIGNvLXByb2Nlc3NvciBpcwoJc2VsZWN0ZWQsIHNldCB0aGUgRUZfQVJNX01BVkVSSUNLX0ZMT0FUIGZsYWcgYW5kCgliZmRfbWFjaF9hcm1fZXA5MzEyIG1hY2hpbmUgbnVtYmVyLgoKMjAwMy0wMi0wOCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAocmVsb2NfbmVlZHNfbG9fcCk6IE5ldyBmdW5jdGlvbi4KCShmaXh1cF9oYXNfbWF0Y2hpbmdfbG9fcCk6IE5ldyBmdW5jdGlvbi4KCShhcHBlbmRfaW5zbik6IFVzZSByZWxvY19uZWVkc19sb19wIHRvIGNoZWNrIHdoZXRoZXIgYSByZWxvY2F0aW9uCgltaWdodCBuZWVkIGEgbWF0Y2hpbmcgJWxvKCkuICBSZXVzZSB0aGUgaGVhZCBvZiBtaXBzX2hpX2ZpeHVwX2xpc3QKCWlmIHRoYXQgZml4dXAgYWxyZWFkeSBoYXMgYSBtYXRjaGluZyAlbG8oKS4gIERvbid0IGNhbGwgZnJhZ193YW5lIGhlcmUuCgkobWFjcm8pOiBDYWxsIGZyYWdfd2FuZSBoZXJlIGlmIHRoZSBsYXN0IHVubWF0Y2hlZCBoaSB3YXMgaW4gdGhlCgljdXJyZW50IGZyYWcuCgkocGljX25lZWRfcmVsYXgpOiBOZXcgZnVuY3Rpb24sIHNwbGl0IG91dCBmcm9tLi4uCgkobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiAuLi5oZXJlLgoJKG1pcHNfZnJvYl9maWxlKTogVXNlIHJlbG9jX25lZWRzX2xvX3AuICBVc2UgcGljX25lZWRfcmVsYXggdG8gdGVzdAoJd2hldGhlciBCRkRfUkVMT0NfTUlQU19HT1QxNiBmaXh1cHMgcmVmZXIgdG8gZ2xvYmFsIHN5bWJvbHMuCgoyMDAzLTAyLTA3ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChteV9nZXRTbWFsbEV4cHJlc3Npb24pOiBSZXdvcmsgYnJhY2tldCBoYW5kbGluZy4KCjIwMDMtMDItMDYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtcHBjLmMgKHBwY19lbGZfc3VmZml4KTogVW5kbyBwYXJ0IG9mIGxhc3QgY2hhbmdlIHNvIHRoYXQKCXhAdG9jK29mZiB3b3Jrcy4KCjIwMDMtMDItMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtcHBjLmMgKG1hcHBpbmcpOiBIYW5kbGUgbmV3IFRMUyByZWxvYyBzcGVjcy4KCShwcGNfZWxmX3N1ZmZpeCk6IERvbid0IHdhcm4gZm9yIHgrb2ZmQGdvdCB3aGVuIHBwYzY0IGFuZCBkb24ndAoJYWNjZXB0IHhAZ290K29mZiBldGMuCgkobWRfYXNzZW1ibGUpOiBIYW5kbGUgVExTIHJlbG9jcy4KCShwcGNfZm9yY2VfcmVsb2NhdGlvbik6IEZvcmNlIGZvciBhbGwgVExTIHJlbG9jcy4KCShwcGNfZml4X2FkanVzdGFibGUpOiBMaWtld2lzZS4KCShtZF9hcHBseV9maXgzKTogSGFuZGxlIFRMUyByZWxvY3MuCgoyMDAzLTAyLTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL29iai1lbGYuYyAob2JqX2VsZl9jaGFuZ2Vfc2VjdGlvbik6IFNldCBTRUNfTElOS19PTkNFIGFuZAoJU0VDX0xJTktfRFVQTElDQVRFU19ESVNDQVJEIGRpcmVjdGx5IHJhdGhlciB0aGFuIHVzaW5nIGVsZl9saW5rb25jZV9wLgoKMjAwMy0wMi0wMiAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoZW51bSBzbWFsbF9leF90eXBlKTogUmVtb3ZlLgoJKGltbV91bm1hdGNoZWRfaGkpOiBSZW1vdmUuCgkobWRfYXNzZW1ibGUpOiBSZW1vdmUgdXNlIG9mIGltbV91bm1hdGNoZWRfaGkuICBSZW1vdmUgdGhlIGxhc3QKCWFyZ3VtZW50IGZyb20gY2FsbHMgdG8gYXBwZW5kX2luc24uCgkoYXBwZW5kX2luc24pOiBSZW1vdmUgdW5tYXRjaGVkX2hpIHBhcmFtZXRlcjsgY2hlY2sgcmVsb2NfdHlwZVswXQoJaW5zdGVhZC4KCShtYWNyb19idWlsZCk6IFVwZGF0ZSBhcHBlbmRfaW5zbiBjYWxscy4KCShtaXBzMTZfbWFjcm9fYnVpbGQsIG1hY3JvX2J1aWxkX2x1aSk6IExpa2V3aXNlLgoJKG1pcHNfaXApOiBSZXdvcmsgaGFuZGxpbmcgb2Ygc21hbGwgZXhwcmVzc2lvbnMuICBNb3ZlIGV4cGxpY2l0CglyZWxvY2F0aW9uIGhhbmRsaW5nIGludG8gbXlfZ2V0U21hbGxFeHByZXNzaW9uLiAgQXNzdW1lIHRoYXQgdGhlCgl2YWx1ZSBvZiAnbycgb3BlcmFuZHMgaXMgemVybyBpZiB0aGVyZSBpcyBvbmx5IG9uZSBicmFja2V0ZWQKCWV4cHJlc3Npb24gbGVmdC4KCShwZXJjZW50X29wKTogTWFrZSBjb25zdGFudC4gIFJlY29yZCB0aGUgQkZEIHJlbG9jYXRpb24gY29kZQoJYXNzb2NpYXRlZCB3aXRoIGVhY2ggb3BlcmF0b3IuCgkobXlfZ2V0U21hbGxQYXJzZXIsIG15X2dldFBlcmNlbnRPcCk6IFJlbW92ZS4KCShwYXJzZV9yZWxvY2F0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKG15X2dldFNhbWxsRXhwcmVzc2lvbik6IFJld29yay4gIEZpbGwgaW4gcmVsb2NhdGlvbnMgaGVyZQoJcmF0aGVyIHRoYW4gaW4gbWlwc19pcC4KCjIwMDMtMDEtMjkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChsaW5lX2NvbW1lbnRfY2hhcnMpOiBBZGQgJyMnLiAgVGhpcyBtYWtlcyB0aGUKCWFzc2VtYmxlcidzIGhhbmRsaW5nIG9mICMgPGxpbmVudW0+ICI8ZmlsZW5hbWU+IiBkaXJlY3RpdmVzIHdvcmsuCgoyMDAzLTAxLTI4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGR3YXJmMmRiZy5jOiBJbmNsdWRlIGZpbGVuYW1lcy5oLgoJKHN0cnVjdCBmaWxlX2VudHJ5KTogTWFrZSBmaWxlbmFtZSBjb25zdCBjaGFyICouCgkoZGlycywgZGlyc19pbl91c2UsIGRpcnNfYWxsb2NhdGVkKTogTmV3IHZhcmlhYmxlcy4KCShnZXRfZmlsZW51bSk6IEFkZCBOVU0gYXJndW1lbnQuICBCdWlsZCBkaXJlY3RvcnkgdGFibGUuCgkoZHdhcmYyX3doZXJlKTogQWRqdXN0IGNhbGxlci4KCShkd2FyZjJfZGlyZWN0aXZlX2ZpbGUpOiBVc2UgZ2V0X2ZpbGVudW0gdG8gYWxsb2NhdGUKCXNsb3QgaW4gZmlsZSBhbmQgZGlyZWN0b3J5IHRhYmxlcy4KCShkd2FyZjJfZGlyZWN0aXZlX2xvYyk6IFJlY3JlYXRlIGZ1bGwgZmlsZW5hbWUgZnJvbQoJZGlyZWN0b3J5IGFuZCBmaWxlbmFtZSBwYXJ0IGlmIG5lZWRlZCBmb3IgbGlzdGluZy4KCShvdXRfZmlsZV9saXN0KTogT3V0cHV0IGRpcmVjdG9yeSB0YWJsZS4KCU91dHB1dCBtYWluIHNvdXJjZSBmaWxlIGRpcm5hbWUgYmVmb3JlIGl0cyBmaWxlbmFtZS4KCjIwMDMtMDEtMjggICAgRG1pdHJ5IERpa3kgPGRpd2lsQG1haWwucnU+CgoJKiBjb25maWcvdGMtbXNwNDMwLmM6IFJlcGxhY2Ugb2NjdXJlbmNlcyBvZiAndG9sb3dlcicgd2l0aAoJJ1RPTE9XRVInLgoKMjAwMy0wMS0yNyAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+CgoJKiBjb25maWcvdGMtaWE2NC5jIChkb3RfdmZyYW1lc3ApOiBDb3JyZWN0IGVycm9yIG1lc3NhZ2UuCgkoZG90X3ZmcmFtZXBzcCk6IERpdHRvLgoKMjAwMy0wMS0yNyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW4gKGVtKTogU2V0IHRvIGlyaXggb24gYWxsIElyaXggc3lzdGVtcy4KCSogY29uZmlndXJlOiBSZWJ1aWx0LgoJKiBjb25maWcvdGUtaXJpeC5oOiBOZXcgZmlsZS4KCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19kd2FyZjJfZm9ybWF0KTogVXNlIFRFX0lSSVggdG8gZGVjaWRlCgl3aGV0aGVyIHRvIHVzZSBJcml4LXNwZWNpZmljIDY0LWJpdCBmb3JtYXQuCgoyMDAzLTAxLTI3ICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogY29uZmlnL3RjLXMzOTAuYyAoczM5MF9lbGZfY29ucyk6IEF2b2lkIGRlc2lnbmF0ZWQgaW5pdGlhbGl6ZXJzLgoKMjAwMy0wMS0yNSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtc3BhcmMuYyAoc3BhcmNfaXApOiBIYW5kbGUgVExTICUgb3BlcmF0b3JzLgoJKHRjX2dlbl9yZWxvYyk6IEhhbmRsZSBUTFMgcmVsb2NzLgoJKHNwYXJjX2NvbnMsIGNvbnNfZml4X25ld19zcGFyYyk6IEhhbmRsZSAlcl90bHNfZHRwb2ZmLgoJKiBjb25maWcvdGMtc3BhcmMuaCAodGNfZml4X2FkanVzdGFibGUpOiBEb24ndCBhZGp1c3QgVExTCglyZWxvY3MuCgkqIGNvbmZpZy9vYmotZWxmLmMgKG9ial9lbGZfc2VjdGlvbl93b3JkKTogSGFuZGxlIHRscy4KCShvYmpfZWxmX3R5cGUpOiBIYW5kbGUgdGxzX29iamVjdC4KCjIwMDMtMDEtMjQgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBjb25maWcvdGMtczM5MC5jIChzMzkwX3Rsc19zdWZmaXgpOiBOZXcgZnVuY3Rpb24uCgkoZWxmX3N1ZmZpeF90eXBlKTogQWRkIHN1ZmZpeCBlbnVtcyBmb3IgVExTIHJlbG9jYXRpb25zLgoJKHMzOTBfZWxmX3N1ZmZpeCk6IEFkZCBzdWZmaXggc3RyaW5ncyBmb3IgVExTIHJlbG9jYXRpb25zLgoJKHMzOTBfZWxmX2NvbnMpOiBNYXAgbmV3IGxlbmdodC9lbGYgc3VmZml4IGNvbWJpbmF0aW9ucyBmb3IgVExTIHRvCgliZmQgcmVsb2NhdGlvbnMuCgkobWRfZ2F0aGVyX29wZXJhbmRzKTogTWFwIG5ldyBpbnN0cnVjdGlvbiBvcGVyYW5kL2VsZiBzdWZmaXgKCWNvbWJpbmF0aW9ucyBmb3IgVExTIHRvIGJmZCByZWxvY2F0aW9ucy4KCSh0Y19zMzkwX2ZpeF9hZGp1c3RhYmxlKTogQWRkIG5ldyBUTFMgcmVsb2NhdGlvbnMuCgkodGNfczM5MF9mb3JjZV9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgkobWRfYXBwbHlfZml4Myk6IExpa2V3aXNlLgoKMjAwMy0wMS0yNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGFzLmg6IFVwZGF0ZSBjb3B5cmlnaHQgZGF0ZS4KCSogc3ltYm9scy5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWQxMHYuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1mcjMwLmg6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaTk2MC5oOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW1pcHMuaDogTGlrZXdpc2UuCgoJKiBjb25maWcvdGMtaHBwYS5oIChESUZGX0VYUFJfT0spOiBEZWZpbmUuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogTW92ZS4KCjIwMDMtMDEtMjMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBORVdTOiBBbm5vdW5jZSBzaDJlIHN1cHBvcnQuCgoJQWRkIHNoMmUgc3VwcG9ydDoKCTIwMDItMDQtMDIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBjb25maWcvdGMtc2guYyAobWRfc2hvd191c2FnZSk6IEFkZGVkIHNoMmUgbmV4dCB0byBzaDNlLgoJKHNoX2VsZl9maW5hbF9wcm9jZXNzaW5nKTogSGFuZGxlIGFyY2hfc2gyZS4KCjIwMDMtMDEtMjMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBzeW1ib2xzLmMgKFNfRk9SQ0VfUkVMT0MpOiBBZGQgInN0cmljdCIgcGFyYW0uCgkqIHN5bWJvbHMuaCAoU19GT1JDRV9SRUxPQyk6IExpa2V3aXNlLgoJKiBjb25maWcvb2JqLWFvdXQuaCAoU19GT1JDRV9SRUxPQyk6IExpa2V3aXNlLgoJKiBjb25maWcvb2JqLWJvdXQuaCAoU19GT1JDRV9SRUxPQyk6IExpa2V3aXNlLgoJKiBjb25maWcvb2JqLWNvZmYuaCAoU19GT1JDRV9SRUxPQyk6IExpa2V3aXNlLgoJKiBjb25maWcvb2JqLWllZWUuaCAoU19GT1JDRV9SRUxPQyk6IExpa2V3aXNlLgoJKiBjb25maWcvb2JqLXZtcy5oIChTX0ZPUkNFX1JFTE9DKTogTGlrZXdpc2UuCgkqIHdyaXRlLmMgKGdlbmVyaWNfZm9yY2VfcmVsb2MpOiBOZXcgZnVuY3Rpb24uCgkoVENfRk9SQ0VfUkVMT0NBVElPTik6IFVzZSBpdCBoZXJlIGluc3RlYWQgb2YgU19GT1JDRV9SRUxPQy4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9TQU1FKTogVGVzdCBUQ19GT1JDRV9SRUxPQ0FUSU9OIHRvby4KCShhZGp1c3RfcmVsb2Nfc3ltcyk6IEFkanVzdCBTX0ZPUkNFX1JFTE9DIGNhbGwuCgkqIGFzLmggKGdlbmVyaWNfZm9yY2VfcmVsb2MpOiBEZWNsYXJlLgoJKiBkb2MvaW50ZXJuYWxzLnRleGkgKFNfRk9SQ0VfUkVMT0MpOiBVcGRhdGUuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9TVUJfU0FNRSk6IFVwZGF0ZS4KCgkqIGNvbmZpZy90Yy1hbHBoYS5jIChhbHBoYV9mb3JjZV9yZWxvY2F0aW9uKTogQWRqdXN0IHRvIHVzZQoJZ2VuZXJpY19mb3JjZV9yZWxvYy4KCShhbHBoYV9maXhfYWRqdXN0YWJsZSk6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtYXJtLmMgKGFybV9mb3JjZV9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1jcmlzLmMgKG1kX2NyaXNfZm9yY2VfcmVsb2NhdGlvbik6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtZnJ2LmMgKGZydl9mb3JjZV9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1pMzg2LmMgKG1kX2FwcGx5X2ZpeDMpOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWlhNjQuYyAoaWE2NF9mb3JjZV9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1pcDJrLmMgKGlwMmtfZm9yY2VfcmVsb2NhdGlvbik6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbTMyci5jIChtMzJyX2ZvcmNlX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW02OGhjMTEuYyAodGNfbTY4aGMxMV9mb3JjZV9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1tY29yZS5jIChtY29yZV9mb3JjZV9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfZm9yY2VfcmVsb2NhdGlvbik6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbW1peC5jIChtbWl4X2ZvcmNlX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXBwYy5jIChwcGNfZm9yY2VfcmVsb2NhdGlvbik6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtczM5MC5jICh0Y19zMzkwX2ZvcmNlX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXNoLmMgKHNoX2ZvcmNlX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCShtZF9wY3JlbF9mcm9tX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXNwYXJjLmMgKHRjX2dlbl9yZWxvYyk6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtdjg1MC5jICh2ODUwX2ZvcmNlX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXhzdG9ybXkxNi5jICh4c3Rvcm15MTZfZm9yY2VfcmVsb2NhdGlvbik6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaTM4Ni5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1tY29yZS5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1zcGFyYy5oICh0Y19maXhfYWRqdXN0YWJsZSk6IExpa2V3aXNlLgoKCSogY29uZmlnL3RjLWQxMHYuYyAoZDEwdl9mb3JjZV9yZWxvY2F0aW9uKTogRGVsZXRlLgoJKiBjb25maWcvdGMtZDEwdi5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OKTogRG9uJ3QgZGVmaW5lLgoJKiBjb25maWcvdGMtZGx4LmMgKG1kX2RseF9mb3JjZV9yZWxvY2F0aW9uKTogRGVsZXRlLgoJKiBjb25maWcvdGMtZGx4LmggKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBEb24ndCBkZWZpbmUuCgkqIGNvbmZpZy90Yy1mcjMwLmMgKGZyMzBfZm9yY2VfcmVsb2NhdGlvbik6IERlbGV0ZS4KCSogY29uZmlnL3RjLWZyMzAuaCAoVENfRk9SQ0VfUkVMT0NBVElPTik6IERvbid0IGRlZmluZS4KCSogY29uZmlnL3RjLW1uMTAzMDAuYyAobW4xMDMwMF9mb3JjZV9yZWxvY2F0aW9uKTogRGVsZXRlLgoJKiBjb25maWcvdGMtbW4xMDMwMC5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OKTogRG9uJ3QgZGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX1NBTUUpOiBUZXN0IFRDX0ZPUkNFX1JFTE9DQVRJT04gdG9vLgoJKiBjb25maWcvdGMtaTk2MC5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9TQU1FKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1ocHBhLmMgKGhwcGFfZm9yY2VfcmVsb2NhdGlvbik6IEFkanVzdCBTX0ZPUkNFX1JFTE9DIGNhbGwuCgkqIGNvbmZpZy90Yy1taXBzLmMgKFJFTEFYX0JSQU5DSF9UT09GQVIpOiBXYXJuaW5nIGZpeC4KCSogY29uZmlnL3RjLW1pcHMuaCAoVENfRk9SQ0VfUkVMT0NBVElPTl9TVUJfU0FNRSk6IERvbid0IGRlZmluZS4KCSogY29uZmlnL3RjLW9wZW5yaXNjLmMgKG9wZW5yaXNjX2ZvcmNlX3JlbG9jYXRpb24pOiBEZWxldGUuCgkqIGNvbmZpZy90Yy1vcGVucmlzYy5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OKTogRG9uJ3QgZGVmaW5lLgoJKiBjb25maWcvdGMtc3BhcmMuYyAoZWxmMzJfc3BhcmNfZm9yY2VfcmVsb2NhdGlvbik6IERlbGV0ZS4KCSogY29uZmlnL3RjLXNwYXJjLmggKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBEb24ndCBkZWZpbmUgZm9yIEVMRi4KCSogY29uZmlnL3RjLWkzODYuYyAoaTM4Nl9mb3JjZV9yZWxvY2F0aW9uKTogRGVsZXRlLgoJKiBjb25maWcvdGMtaTM4Ni5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OKTogRG9uJ3QgZGVmaW5lIGZvcgoJQkZEX0FTU0VNQkxFUi4KCShFWFRFUk5fRk9SQ0VfUkVMT0MpOiBGaXggVEVfUEUgYW5kIFNUUklDVF9QRV9GT1JNQVQgbmVzdGluZy4KCSogY29uZmlnL3RjLW02OGsuaCAoVENfRk9SQ0VfUkVMT0NBVElPTik6IERvbid0IGRlZmluZS4KCSogY29uZmlnL3RjLXBqLmggKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBEb24ndCBkZWZpbmUuCgkqIGNvbmZpZy90Yy1zaC5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9BQlMpOiBEb24ndCBjYWxsCglTX0ZPUkNFX1JFTE9DLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX1NBTUUpOiBUZXN0IFRDX0ZPUkNFX1JFTE9DQVRJT04gdG9vLgoJKiBjb25maWcvdGMtc2g2NC5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9TQU1FKTogTGlrZXdpc2UuCgoyMDAzLTAxLTIzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLXNoNjQuYyAoc2htZWRpYV9mcm9iX3NlY3Rpb25fdHlwZSk6IEFkanVzdCBmb3IgY2hhbmdlZAoJc2g2NF9lbGZfc2VjdGlvbl9kYXRhLgoJKiBjb25maWcvdGMtc2g2NC5oOiBJbmNsdWRlIGVsZjMyLXNoNjQuaC4KCSogY29uZmlnL3RjLW02OGhjMTEuYzogRG9uJ3QgaW5jbHVkZSBzdGRpby5oLgoJKG1kX3Nob3dfdXNhZ2UpOiBGaXggbWlzc2luZyBjb250aW51YXRpb24uCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAzLTAxLTIyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogYXMuaDogSW5jbHVkZSBmb3Blbi1iaW4uaCBub3QgZm9wZW4tc2FtZS5oIGZvciBtaW5ndzMyIGhvc3RzLgoKMjAwMy0wMS0yMSAgRmFiaW8gQWxlbWFnbmEgIDxmYWxlbWFnbkBhcm9zLm9yZz4KCgkqIGNvbmZpZ3VyZS5pbjogSGFuZGxlICotKi1hcm9zKi4KCSogY29uZmlndXJlOglSZWdlbmVyYXRlZCBmcm9tIGNvbmZpZ3VyZS5pbi4KCjIwMDMtMDEtMjAgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBjb25maWcvdGMtczM5MC5jIChlbGZfc3VmZml4X3R5cGUpOiBBZGQgc3VmZml4IGVudW1zIGZvciBnb3RvZmYsCglnb3RwbHQgYW5kIHBsdG9mZiByZWxvY2F0aW9ucy4KCShzMzkwX2VsZl9zdWZmaXgpOiBBZGQgc3VmZml4IHN0cmluZ3MgZm9yIGdvdG9mZiwgZ290cGx0IGFuZCBwbHRvZmYuCgkoczM5MF9lbGZfY29ucyk6IE1hcCBuZXcgbGVuZ2h0L2VsZiBzdWZmaXggY29tYmluYXRpb25zIGZvciBnb3RvZmYsCglnb3RwbHQgYW5kIHBsdG9mZiB0byBiZmQgcmVsb2NhdGlvbnMuCgkobWRfZ2F0aGVyX29wZXJhbmRzKTogTWFwIG5ldyBpbnN0cnVjdGlvbiBvcGVyYW5kL2VsZiBzdWZmaXgKCWNvbWJpbmF0aW9ucyB0byBiZmQgcmVsb2NhdGlvbnMuCgkodGNfczM5MF9maXhfYWRqdXN0YWJsZSk6IEFkZCBuZXcgZ290b2ZmLCBnb3RwbHQgYW5kIHBsdG9mZiByZWxvY2F0aW9ucwoJdG8gdGhlIGxpc3Qgb2YgdW5hZGp1c3RhYmxlIHJlbG9jYXRpb25zLgoJKHRjX3MzOTBfZm9yY2VfcmVsb2NhdGlvbik6IEFsd2F5cyBlbWl0IHJlbG9jYXRpb25zIGZvciBnb3RvZmYsIGdvdHBsdAoJYW5kIHBsdG9mZiByZWxvY2F0aW9ucy4KCShtZF9hcHBseV9maXgzKTogQWRkIHRoZSBuZXcgcmVsb2NhdGlvbnMuCgoyMDAzLTAxLTIwICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogY29uZmlnL3RjLXMzOTAuYyAobWRfYXBwbHlfZml4Myk6IEVtaXQgZXJyb3IgbWVzc2FnZSBmb3IgcmVsb2NhdGlvbnMKCXdpdGggYSBzdWJzeSBzeW1ib2wuCgoyMDAzLTAxLTE3ICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGNvbmZpZy90Yy1tNjhoYzExLmMgKHRjX202OGhjMTFfZml4X2FkanVzdGFibGUpOiBQcmV2ZW50IGFkanVzdG1lbnQKCW9mIHJlbG9jcyBmb3IgbWVtb3J5IGJhbmsgYWRkcmVzc2luZy4KCjIwMDMtMDEtMTcgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogY29uZmlnL3RjLW02OGhjMTEuYyAobWRfc2hvd191c2FnZSk6IFVwZGF0ZSB1c2FnZS4KCShtZF9wYXJzZV9vcHRpb24pOiBSZWNvZ25pemUgLW02OGhjczEyLgoJKG02OGhjMTFfZWxmX2ZpbmFsX3Byb2Nlc3NpbmcpOiBTZXQgRUZfTTY4SENTMTJfTUFDSCBmbGFnIHRvIGlkZW50aWZ5CglIQ1MxMi4KCSogZG9jL2FzLnRleGluZm8gKE92ZXJ2aWV3KTogRG9jdW1lbnQgbmV3IG9wdGlvbiAtbTY4aGNzMTIuCgoyMDAzLTAxLTE2ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1pYTY0LmMgKGlhNjRfY29uc19maXhfbmV3KTogSGFuZGxlIEBkdHByZWwoKSBpbiBkYXRhLgoKMjAwMy0wMS0xNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL1BPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0wMS0xMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHJlYWQuYyAoZ2V0X2Fic29sdXRlX2V4cHIpOiBOZXcsIHNwbGl0IG91dCBmcm9tLi4KCShnZXRfYWJzb2x1dGVfZXhwcmVzc2lvbik6IC4uaGVyZS4KCSogcmVhZC5oIChnZXRfYWJzb2x1dGVfZXhwcik6IERlY2xhcmUuCgkqIGNvbmZpZy9vYmotZWxmLmMgKGVsZl9jb21tb24pOiBVc2Ugb2Zmc2V0VCBmb3IgInRlbXAiIGFuZCAic2l6ZSIuCglUcmltIHNpemUgdG8gYXJjaCBiaXRzX3Blcl9hZGRyZXNzLCBhbmQgdGVzdCBmb3IgbmVnYXRpdmUgaW5wdXQKCXZpYSBnZXRfYWJzb2x1dGVfZXhwci4KCjIwMDMtMDEtMDcgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXhzdG9ybXkxNi5jIChtZF9jZ2VuX2xvb2t1cF9yZWxvYyk6IEFkanVzdCB2YWx1ZSBiYXNlZAoJb24gb3BlcmFuZCB0eXBlLgoJKHhzdG9ybXkxNl9tZF9hcHBseV9maXgzKTogVXNlIGFkanVzdG1lbnQuCgoyMDAzLTAxLTAyICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGlxMjAwMC1lbGYgdGFyZ2V0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy90Yy1pcTIwMDAuYzogTmV3IGZpbGUuCgkqIGNvbmZpZy90Yy1pcTIwMDAuaDogTGlrZXdpc2UuCgkqIHBvL2dhcy5wb3Q6IFJlZ2VuZXJhdGUuCgoyMDAzLTAxLTAyICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYzogVXBkYXRlIGNvcHlyaWdodCB5ZWFycyB0byBpbmNsdWRlIDIwMDMuCgkobWlwc19pcCk6IEZpeCBpbmRlbnRhdGlvbiBvZiAiK0EiLCAiK0IiLCBhbmQgIitDIiBoYW5kbGluZy4KCUFkZGl0aW9uYWxseSwgY2xlYW4gdXAgdGhlaXIgY29kZSBzbGlnaHRseSBhbmQgY2xlYW4gdXAgdGhlaXIKCWNvbW1lbnRzIHNvbWUgbW9yZS4KCgkqIGRvYy9jLW1pcHMudGV4aTogQWRkIE1JUFMzMnIyIHRvICIuc2V0IG1pcHNOIiBkb2N1bWVudGF0aW9uLgoKMjAwMy0wMS0wMSAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBkb2MvTWFrZWZpbGUuYW0gKGFzLjEpOiBEZXBlbmQgb24gImFzY29uZmlnLnRleGkgZ2FzdmVyLnRleGkKCSQoQ1BVX0RPQ1MpIi4KCSogZG9jL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0wMS0wMSAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlLmFuZ2xpbkBucmMuY2E+CgoJKiBjb25maWcvb2JqLWVsZi5jIChzcGVjaWFsX3NlY3Rpb25zKTogV29yayBhcm91bmQgSFAncyBpbmNvcnJlY3QgdXNhZ2UKCW9mIC5pbml0IGFuZCAuZmluaSBzZWN0aW9ucyBmb3IgYXJyYXkgaW5pdGlhbGl6ZXJzIGFuZCBmaW5hbGl6ZXJzLgoKMjAwMi0xMi0zMSAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKHZhbGlkYXRlX21pcHNfaW5zbiwgbWlwc19pcCk6IFJlY29nbml6ZQoJdGhlICIrRCIgb3BlcmFuZCwgd2hpY2ggd2lsbCBiZSB1c2VkIG9ubHkgYnkgdGhlIGRpc2Fzc2VtYmxlci4KCjIwMDItMTItMzAgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWd1cmUuaW46IFJlY29nbml6ZSBtaXBzaXNhMzJyMiwgbWlwc2lzYTMycjJlbCwgYW5kCglDUFUgdmFyaWFudHMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogY29uZmlnL3RjLW1pcHMuYyAoSVNBX0hBU19EUk9SLCBJU0FfSEFTX1JPUik6IE5ldyBkZWZpbmVzLgoJKG1hY3JvX2J1aWxkKTogSGFuZGxlICJLIiBvcGVyYW5kLgoJKG1hY3JvMik6IFVzZSBJU0FfSEFTX0RST1IgYW5kIElTQV9IQVNfUk9SIGluIHRoZSBwbGFjZXMgd2hlcmUKCUNQVV9IQVNfRFJPUiBhbmQgQ1BVX0hBU19ST1IgYXJlIGN1cnJlbnRseSB1c2VkLgoJKG1pcHNfaXApOiBOZXcgdmFyaWFibGUgImxhc3Rwb3MiLCBhbmQgaW1wbGVtZW50ICIrQSIsICIrQiIsCglhbmQgIitDIiBvcGVyYW5kcyBmb3IgTUlQUzMyIFJlbGVhc2UgMiBpbnMvZXh0IGluc3RydWN0aW9ucy4KCUltcGxlbWVudCAiSyIgb3BlcmFuZCBmb3IgTUlQUzMyIFJlbGVhc2UgMiByZGh3ciBpbnN0cnVjdGlvbi4KCSh2YWxpZGF0ZV9taXBzX2luc24pOiBJbXBsZW1lbnQgIisiIGFzIGEgd2F5IHRvIGV4dGVuZCB0aGUKCWFsbG93ZWQgb3BlcmFuZHMsIGFuZCBpbXBsZW1lbnQgIksiLCAiK0EiLCAiK0IiLCBhbmQgIitDIgoJb3BlcmFuZHMuCgkoT1BUSU9OX01JUFMzMlIyKTogTmV3IGRlZmluZS4KCShtZF9sb25nb3B0cyk6IEFkZCBlbnRyeSBmb3IgT1BUSU9OX01JUFMzMlIyLgoJKE9QVElPTl9FTEZfQkFTRSk6IEFkanVzdCB0byBhY2NvbW9kYXRlIE9QVElPTlNfTUlQUzMyUjIuCgkobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlIE9QVElPTl9NSVBTMzJSMi4KCShzX21pcHNzZXQpOiBSZWltcGxlbWVudCBoYW5kbGluZyBvZiAiLnNldCBtaXBzTiIgb3B0aW9ucwoJYW5kIGFkZCBzdXBwb3J0IGZvciAiLnNldCBtaXBzMzJyMiIuCgkobWlwc19jcHVfaW5mb190YWJsZSk6IEFkZCBlbnRyeSBmb3IgIm1pcHMzMnIyIiAoTUlQUzMyIFJlbGVhc2UgMikuCgkobWRfc2hvd191c2FnZSk6IERvY3VtZW50ICItbWlwczMycjIiIG9wdGlvbi4KCSogZG9jL2FzLnRleGluZm86IERvY3VtZW50ICItbWlwczMycjIiIG9wdGlvbi4KCSogZG9jL2MtbWlwcy50ZXhpOiBMaWtld2lzZS4KCjIwMDItMTItMzAgIERtaXRyeSBEaWt5ICA8ZGl3aWxAbWFpbC5ydT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIG1zcDQzMCB0YXJnZXQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogTWFrZWZpbGUuYW06IEFkZCBtc3A0MzAgdGFyZ2V0LgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlnL3RjLW1zcDQzMC5jOiBOZXcgZmlsZTogbXNwNDMwIGFzc2VtYmxlci4KCSogY29uZmlnL3RjLW1zcDQzMC5oOiBOZXcgZmlsZTogdGFyZ2V0IG1hY3JvcyBmb3IgbXNwNDMwLgoJKiBkb2MvTWFrZWZpbGUuYW06IEFkZCBtc3A0MzAgdGFyZ2V0LgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9hcy50ZXhpbmZvOiBJbmNsdWRlIG1zcDQzMCBkb2N1bWVuYXRpb24uCgkqIGRvYy9hbGwudGV4aTogRW5hYmxlIG1zcDQzMCBkb2N1bWVudGF0aW9uLgoJKiBkb2MvYy1tc3A0MzAudGV4aTogTmV3IGZpbGU6IGRvY3VtZW50IG1zcDQzMCBzcGVjaWZpYyBmZWF0dXJlcwoJb2YgdGhlIGFzc2VtYmxlci4KCjIwMDItMTItMjUgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZHdhcmYyZGJnLmMgKERXQVJGMl9BRERSX1NJWkUpOiBOZXcgbWFjcm8uCgkoZHdhcmYyX2ZpbmlzaCk6IFVzZSBpdC4KCSogZG9jL2ludGVybmFscy50ZXhpIChEV0FSRjJfQUREUl9TSVpFKTogRG9jdW1lbnQgaXQuCgkqIGNvbmZpZy90Yy1taXBzLmggKERXQVJGMl9BRERSX1NJWkUpOiBPdmVycmlkZS4KCjIwMDItMTItMjAgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXhzdG9ybXkxNi5jIChtZF9jZ2VuX2xvb2t1cF9yZWxvYyk6IFN1cHBvcnQKCUJGRF9SRUxPQ19YU1RPUk1ZMTZfMTIuCgoyMDAyLTEyLTE5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZG9jL2FzLnRleGluZm8gKEludm9raW5nKTogVHlwbyBmaXguCgkqIGNvbmZpZy90Yy10aWM1NHguYyAoZW5jb2RlX29wZXJhbmQpOiBDb21tZW50IHR5cG8gZml4LgoKMjAwMi0xMi0xOCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGRvYy9jLWFscGhhLnRleGk6IEZpeCB0eXBvcy4KCSogZG9jL2MtYXJtLnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy1kMTB2LnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy1pMzcwLnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy1pOTYwLnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy1pYTY0LnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy1tbWl4LnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy1uczMyay50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2MtcGRwMTEudGV4aTogTGlrZXdpc2UuCgkqIGRvYy9jLXBqLnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy1zaDY0LnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy1zcGFyYy50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2MtdGljNTR4LnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy12ODUwLnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy12YXgudGV4aTogTGlrZXdpc2UuCgkqIGRvYy9pbnRlcm5hbHMudGV4aTogTGlrZXdpc2UuCgoyMDAyLTEyLTE4ICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWFjcm8pOiBJbiBNX0RST0wsIE1fRFJPUiwgTV9ST0wsIGFuZCBNX1JPUiwKCXVzZSBoYXJkd2FyZSByb3RhdGUgb3BzIGFzIGFwcHJvcHJpYXRlLiAgSW4gTV9EUk9MX0ksIE1fRFJPUl9JLAoJTV9ST0xfSSwgYW5kIE1fUk9SX0ksIHNpbXBsaWZ5IGNvZGUsIGNsZWFuIHVwIHdhcm5pbmdzLCBhbmQKCWFycmFuZ2Ugbm90IHRvIGlzc3VlIHdhcm5pbmdzIGFib3V0IHVzZSBvZiBBVCB3aGVuIEFUIGlzIG5vdAoJYWN0dWFsbHkgdXNlZC4KCjIwMDItMTItMTcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBhcy5jIChzdGRfbG9uZ29wdHMpOiBEdXBsaWNhdGUgLS1rZWVwLWxvY2FscyBlbnRyeSBpbiBvcmRlciB0bwoJcHJldmVudCBpdCBiZWluZyBjb25mdXNlZCB3aXRoIC1rLgoKMjAwMi0xMi0xNiAgQW5kcmV3IE1hY0xlb2QgIDxhbWFjbGVvZEByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXhzdG9ybXkxNi5jIChtZF9jZ2VuX2xvb2t1cF9yZWxvYyk6IElmIGEgcmVsb2NhdGlvbgoJaGFzIGFscmVhZHkgYmVlbiBzZXQgdXAsIHVzZSBpdC4KCjIwMDItMTItMTYgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBDaGFuZ2VMb2ctOTI5NTogRml4IGEgdHlwby4KCSogUkVBRE1FOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWQxMHYuYzogRml4IGEgY29tbWVudCB0eXBvLgoJKiBjb25maWcvdGMtZGx4LmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaDgzMDAuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1oODUwMC5oOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW1pcHMuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1zMzkwLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtc2guaDogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy10aWM4MC5oOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXc2NS5oOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXo4ay5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXo4ay5oOiBMaWtld2lzZS4KCSogdGVzdHN1aXRlL2dhcy9oODMwMC9jbXBzaTIuczogTGlrZXdpc2UuCgoyMDAyLTEyLTE2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWQzMHYuYyAoY2hlY2tfcmFuZ2UpOiBXYXJuaW5nIGZpeGVzLCBmb3JtYXR0aW5nLgoJU2ltcGxpZnkgc2lnbiBleHRlbnNpb24uICBSZW1vdmUgcmVkdW5kYW50IHVuc2lnbmVkIDwgMCB0ZXN0LgoJKiBjb25maWcvdGMtaTk2MC5jIChtZF9yaV90b19jaGFycyk6IFByb3RvdHlwZS4KCSogY29uZmlnL3RjLW1jb3JlLmMgKG1kX3BzZXVkb190YWJsZSk6IEZpeCB0eXBvLgoJKGR1bXBfbGl0ZXJhbHMpOiBJbml0IGJyYXJzeW0sIGFuZCB0ZXN0IGxhdGVyIGluc3RlYWQgb2YgaXNmb3JjZS4KCgkqIGNvbmZpZy90Yy1uczMyay5jIChlbmNvZGVfb3BlcmFuZCk6IENvbnN0aWZ5IG9wZXJhbmRzUCBhbmQgc3VmZml4UC4KCShwYXJzZSk6IENvbnN0aWZ5IGxpbmUgYW5kIGxpbmVwdHIuCgkobWRfYmVnaW4pOiBDYWxjdWxhdGUgZW5kb3AgaGVyZS4KCjIwMDItMTItMTMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvb2JqLXZtcy5jOiBGb3JtYXR0aW5nLiAgSW5jbHVkZSBmbmN0bC5oLgoJKENyZWF0ZV9WTVNfT2JqZWN0X0ZpbGUpOiBGaXggY3JlYXQgY2FsbCBmb3Igc2FuZSB1bml4IHN5c3RlbXMuCgkoT2JqZWN0X1JlY29yZF9PZmZzZXQpOiBNYWtlIGl0IGEgc2l6ZV90LgoJKEZsdXNoX1ZNU19PYmplY3RfUmVjb3JkX0J1ZmZlcik6IEZpeCBzaWduZWQvdW5zaWduZWQgd2FybmluZy4KCShWTVNfVEJUX1JvdXRpbmVfRW5kIDxTaXplPik6IE1ha2UgdmFyIHVuc2lnbmVkIGxvbmcuCgkoVk1TX0ZpeF9JbmRpcmVjdF9SZWZlcmVuY2UgPE9mZnNldD4pOiBNYWtlIGFyZyBhZGRyZXNzVC4KCShzeW50aGVzaXplX2RhdGFfc2VnbWVudCA8ZGF0YV9zaXplPik6IFJlbW92ZSBBVFRSSUJVVEVfVU5VU0VELgoJKHZtc19maXh1cF9kYXRhX3NlY3Rpb24gPGRhdGFfc2l6ZT4pOiBBZGQgaGVyZSBpbnN0ZWFkLgoJKiBjb25maWcvZS1jcmlzZWxmLmM6IEZpeCB0eXBvIGluIGxhc3QgY2hhbmdlLgoKMjAwMi0xMi0xMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHdyaXRlLmMgKHdyaXRlX29iamVjdF9maWxlKTogRml4IHNpZ25lZC91bnNpZ25lZCB3YXJuaW5nLgoJKiBjb25maWcvZS1jcmlzYW91dC5jIChjcmlzYW91dF9iZmRfbmFtZSk6IFByb3RvdHlwZS4KCSogY29uZmlnL2UtY3Jpc2VsZi5jIChjcmlzZWxmX2JmZF9uYW1lKTogUHJvdG90eXBlLgoJKiBjb25maWcvb2JqLWFvdXQuYyAoc19zZWN0KTogUmVtb3ZlIHVudXNlZCBmdW5jdGlvbi4KCSogY29uZmlnL29iai1ib3V0LmMgKG9ial9ib3V0X2xpbmUgPGlnbm9yZT4pOiBBZGQgQVRUUklCVVRFX1VOVVNFRC4KCSogY29uZmlnL29iai1jb2ZmLmMgKGNvZmZfbGFzdF9iZik6IERvbid0IGRlY2xhcmUgZm9yIE9CSl9YQ09GRi4KCShmaXh1cF9tZGVwcyA8aD4pOiBBZGQgQVRUUklCVVRFX1VOVVNFRC4KCSogY29uZmlnL29iai1lY29mZi5jIChlY29mZl9mcm9iX2ZpbGUgPGFkZHI+KTogTGlrZXdpc2UuCgkqIGNvbmZpZy9vYmotdm1zLmMgKHNldHVwX2Jhc2ljX3R5cGUgPHNwbnQ+KTogTGlrZXdpc2UuCgkoVk1TX1JTWU1fUGFyc2UgPEN1cnJlbnRfUm91dGluZT4pOiBMaWtld2lzZS4KCSh2bXNfZml4dXBfdGV4dF9zZWN0aW9uIDx0ZXh0X3Npej4pOiBMaWtld2lzZS4KCShzeW50aGVzaXplX2RhdGFfc2VnbWVudCA8ZGF0YV9zaXplPik6IExpa2V3aXNlLgoJKHZtc19maXh1cF94dG9yc19zZWN0aW9uIDxzZWN0X25vPik6IExpa2V3aXNlLgoJKHN0cnVjdHVyZV9jb3VudCk6IERvbid0IHVzZSBpbXBsaWNpdCBpbnQgdHlwZS4KCSogY29uZmlnL3RjLWEyOWsuYyAoaW5zZXJ0X3NyZWcpOiBQcm90b3R5cGUuCgkoZGVmaW5lX3NvbWVfcmVncyk6IFByb3RvdHlwZSwgbWFrZSBzdGF0aWMuCgkocGFyc2Vfb3BlcmFuZCk6IExpa2V3aXNlLgoJKG1kX3BhcnNlX29wdGlvbiA8Yyxhcmc+KTogQWRkIEFUVFJJQlVURV9VTlVTRUQuCgkobWRfc2hvd191c2FnZSA8c3RyZWFtPik6IExpa2V3aXNlLgoJKG1kX3NlY3Rpb25fYWxpZ24gPHNlZ21lbnQ+KTogTGlrZXdpc2UuCgkobWRfY29udmVydF9mcmFnIDxhbGwgYXJncz4pOiBMaWtld2lzZS4KCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCA8YWxsIGFyZ3M+KTogTGlrZXdpc2UuCgkobWRfYXBwbHlfZml4Myk6IERvbid0IGNhc3QgdmFsUCBwb2ludGVyIHR5cGUuICBGaXggYm9ndXMgPj49J3MuCgkqIGNvbmZpZy90Yy1hcm0uYyAoYXJtX3ZhbGlkYXRlX2ZpeCk6IE9ubHkgZm9yIE9CSl9DT0ZGIG9yIE9CSl9FTEYuCgkqIGNvbmZpZy90Yy1kMzB2LmMgKG1kX3BhcnNlX29wdGlvbiA8YXJnPik6IEFkZCBBVFRSSUJVVEVfVU5VU0VELgoJKG1kX3VuZGVmaW5lZF9zeW1ib2wgPG5hbWU+KTogTGlrZXdpc2UuCgkobWRfY29udmVydF9mcmFnIDxhbGwgYXJncz4pOiBMaWtld2lzZS4KCSh3cml0ZV9sb25nIDxvcGNvZGU+KTogTGlrZXdpc2UuCgkodGNfZ2VuX3JlbG9jIDxzZWc+KTogTGlrZXdpc2UuCgkobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXggPGFsbCBhcmdzPik6IExpa2V3aXNlLgoJKG1kX2FwcGx5X2ZpeDMgPHNlZz4pOiBMaWtld2lzZS4KCShzX2QzMHZfYWxpZ24gPGlnbm9yZT4pOiBMaWtld2lzZS4KCShidWlsZF9pbnNuKTogQ29ycmVjdCBmb3JtYXQgc3RyaW5nLgoJKG1kX2FwcGx5X2ZpeDMpOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWZyMzAuYyAobWRfcGFyc2Vfb3B0aW9uIDxjLGFyZz4pOiBBZGQgQVRUUklCVVRFX1VOVVNFRC4KCShtZF91bmRlZmluZWRfc3ltYm9sIDxuYW1lPik6IExpa2V3aXNlLgoJKG1kX2NvbnZlcnRfZnJhZyA8YWxsIGFyZ3M+KTogTGlrZXdpc2UuCgkobWRfY2dlbl9sb29rdXBfcmVsb2MgPGluc24+KTogTGlrZXdpc2UuCgkobWRfYmVnaW4pOiBEZWxldGUgdW51c2VkIHZhcnMuCgkobWRfYXNzZW1ibGUpOiBMaWtld2lzZS4KCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IExpa2V3aXNlLgoJKGZyMzBfcmVsYXhfZnJhZyk6ICNpZiAwIG91dCwgc2VlbXMgdW51c2VkLgoJKG1kX2F0b2YpOiBSZW1vdmUgZGVjbGFyYXRpb24gb2YgYXRvZl9pZWVlLgoJKHJlc3RvcmVfY29sb24pOiBQcm90b3R5cGUuCgkqIGNvbmZpZy90Yy1mcnYuYyAoZnJ2X2luc2VydF92bGl3X2luc24pOiBQcm90b3R5cGUuCgkoZnJ2X2ZpbmRfaW5fdmxpdyk6IExpa2V3aXNlLgoJKGZydl9kZWJ1Z190b21jYXQpOiBMaWtld2lzZS4KCShmcnZfYWRqdXN0X3ZsaXdfY291bnQpOiBMaWtld2lzZS4KCShmcnZfdG9tY2F0X3NodWZmbGUpOiBMaWtld2lzZS4KCShmcnZfdG9tY2F0X2FuYWx5emVfdmxpd19jaGFpbnMpOiBMaWtld2lzZS4gIENvcnJlY3QgYXJncyB0bwoJZnJ2X2ZpbmRfaW5fdmxpdyBjYWxsLgoJKG1kX2F0b2YpOiBSZW1vdmUgZGVjbGFyYXRpb24gb2YgYXRvZl9pZWVlLgoJKiBjb25maWcvdGMtaDg1MDAuYyAoY29ucyk6IERlbGV0ZSBkZWNsYXJhdGlvbi4KCShtZF9iZWdpbiA8b3Bjb2RlPik6IENvbnN0aWZ5LgoJKGRpc3BsYWNlbWVudF9zaXplLCBpbW1lZGlhdGVfc2l6ZSwgYWJzb2x1dGVfc2l6ZSk6IFJlbW92ZS4KCShidWlsZF9yZWxheGFibGVfaW5zdHJ1Y3Rpb24gPG9wZXJhbmQ+KTogQWRkIEFUVFJJQlVURV9VTlVTRUQuCgkodGNfY3Jhd2xfc3ltYm9sX2NoYWluIDxoZWFkZXJzPik6IExpa2V3aXNlLgoJKG1kX3VuZGVmaW5lZF9zeW1ib2wgPG5hbWU+KTogTGlrZXdpc2UuCgkodGNfaGVhZGVyc19ob29rIDxoZWFkZXJzPik6IExpa2V3aXNlLgoJKG1kX3BhcnNlX29wdGlvbiA8Yyxhcmc+KTogTGlrZXdpc2UuCgkobWRfc2hvd191c2FnZSA8c3RyZWFtPik6IExpa2V3aXNlLgoJKG1kX2NvbnZlcnRfZnJhZyA8aGVhZGVycywgc2VnPik6IExpa2V3aXNlLgoJKHRjX2NvZmZfc3ltYm9sX2VtaXRfaG9vayA8aWdub3JlPik6IExpa2V3aXNlLgoJKG1kX2F0b2YpOiBSZW1vdmUgZGVjbGFyYXRpb24gb2YgYXRvZl9pZWVlLgoJKHRjX2FvdXRfZml4X3RvX2NoYXJzKTogUmVtb3ZlIHVudXNlZCBmdW5jdGlvbi4KCShwYXJzZV9yZWcpOiBQcm90b3R5cGUuCgkocGFyc2VfZXhwKTogUHJvdG90eXBlLgoJKHNraXBfY29sb250aGluZyk6IFByb3RvdHlwZS4gIFVzZSAmJiwgbm90ICYgaW4gbG9naWNhbCBleHByZXNzaW9ucy4KCShwYXJzZV9yZWdsaXN0KTogUHJvdG90eXBlLgoJKGdldF9vcGVyYW5kKTogUHJvdG90eXBlLgoJKGdldF9vcGVyYW5kcyk6IFByb3RvdHlwZS4KCShnZXRfc3BlY2lmaWMpOiBQcm90b3R5cGUuICBNYWtlICJ0aGlzX2luZGV4IiBzaWduZWQuCgkoY2hlY2spOiBQcm90b3R5cGUsIG1ha2Ugc3RhdGljLgoJKGluc2VydCk6IFByb3RvdHlwZQoJKGJ1aWxkX3JlbGF4YWJsZV9pbnN0cnVjdGlvbik6IFByb3RvdHlwZSwgbWFrZSBzdGF0aWMuCgkoYnVpbGRfYnl0ZXMpOiBQcm90b3R5cGUuCgkod29yZGlmeV9zY2IpOiBQcm90b3R5cGUuCgkqIGNvbmZpZy90Yy1oODUwMC5oIChzdGFydF9sYWJlbCk6IERlY2xhcmUuCgkodGNfY29mZl9zaXplbWFjaGRlcCk6IERlY2xhcmUuCgkqIGNvbmZpZy90Yy1pMzcwLmMgKGkzNzBfZWJjZGljIDx1bnVzZWQ+KTogQWRkIEFUVFJJQlVURV9VTlVTRUQuCgkoaTM3MF9ybW9kZSA8dW51c2VkPik6IExpa2V3aXNlLgoJKGkzNzBfY3NlY3QgPHVudXNlZD4pOiBMaWtld2lzZS4KCShpMzcwX2RjIDx1bnVzZWQ+KTogTGlrZXdpc2UuCgkoaTM3MF9kcyA8dW51c2VkPik6IExpa2V3aXNlLgoJKGkzNzBfZWxmX2xjb21tIDx1bnVzZWQ+KTogTGlrZXdpc2UuCgkoaTM3MF9sdG9yZyA8aWdub3JlPik6IExpa2V3aXNlLgoJKGkzNzBfdXNpbmcgPGlnbm9yZT4pOiBMaWtld2lzZS4KCShpMzcwX2Ryb3AgPGlnbm9yZT4pOiBMaWtld2lzZS4KCShpMzcwX2J5dGUgPGlnbm9yZT4pOiBMaWtld2lzZS4KCShpMzcwX3RjIDxpZ25vcmU+KTogTGlrZXdpc2UuCgkobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXggPGZyYWdwLCBzZWc+KTogTGlrZXdpc2UuCgkobWRfY29udmVydF9mcmFnIDxhbGwgYXJncz4pOiBMaWtld2lzZS4KCShtZF91bmRlZmluZWRfc3ltYm9sIDxuYW1lPik6IExpa2V3aXNlLgoJKG1kX3BjcmVsX2Zyb21fc2VjdGlvbiA8c2VjPik6IExpa2V3aXNlLgoJKHRjX2dlbl9yZWxvYyA8c2VnPik6IExpa2V3aXNlLgoJKGkzNzBfc2VjdGlvbl9sZXR0ZXIpOiAjaWYgMCB1bnVzZWQgZnVuY3Rpb25zLgoJKGkzNzBfc2VjdGlvbl93b3JkLCBpMzcwX3NlY3Rpb25fdHlwZSwgaTM3MF9zZWN0aW9uX2ZsYWdzKTogTGlrZXdpc2UuCgkoc3ltYm9sX2xvY2F0ZSk6IFByb3RvdHlwZS4KCSogY29uZmlnL3RjLWk4NjAuYyAobWRfYXRvZik6IFJlbW92ZSBkZWNsYXJhdGlvbiBvZiBhdG9mX2llZWUuCgkobWRfbnVtYmVyX3RvX2Rpc3AsIG1kX251bWJlcl90b19maWVsZCk6IFJlbW92ZS4KCShtZF9hcHBseV9maXgzKTogQ29ycmVjdCBmb3JtYXQgc3RyaW5nIGFuZCBjYXN0ICJmdXAiLgoJKiBjb25maWcvdGMtaTk2MC5jIChtZF9jb252ZXJ0X2ZyYWcpOiBBZGQgQVRUUklCVVRFX1VOVVNFRCB0byBhcmdzLgoJKHNfZW5kaWFuIDxpZ25vcmU+KTogTGlrZXdpc2UuCgkobWRfdW5kZWZpbmVkX3N5bWJvbCA8bmFtZT4pOiBMaWtld2lzZS4KCSh0Y19jcmF3bF9zeW1ib2xfY2hhaW4gPGhlYWRlcnM+KTogTGlrZXdpc2UuCgkodGNfc2V0X2JhbF9vZl9jYWxsKTogTGlrZXdpc2UuCgkodGNfY29mZl9zeW1ib2xfZW1pdF9ob29rIDxzeW1ib2xQPik6IExpa2V3aXNlLgoJKGk5NjBfaGFuZGxlX2FsaWduIDxmcmFncD4pOiBMaWtld2lzZS4KCShpOTYwX3ZhbGlkYXRlX2ZpeCA8dGhpc19zZWdtZW50X3R5cGU+KTogTGlrZXdpc2UKCSh0Y19nZW5fcmVsb2MgPHNlY3Rpb24+KTogTGlrZXdpc2UuCgkodGNfY29mZl9zeW1ib2xfZW1pdF9ob29rKTogT25seSBkZWZpbmUgZm9yIE9CSl9DT0ZGLgoJKHN0cnVjdCBtZW1TLCBzdHJ1Y3QgcmVnb3ApOiBGb3J3YXJkIGRlY2xhcmUuCgkoYnJjbnRfZW1pdCwgYnJsYWJfbmV4dCwgY29icl9mbXQsIGN0cmxfZm10LCBlbWl0LCBnZXRfYXJncywKCWdldF9jZGlzcCwgZ2V0X2lzcGVjLCBnZXRfcmVnbnVtLCBpX3NjYW4sIG1lbV9mbXQsIG1lbWFfdG9fbWVtYiwKCXBhcnNlX2V4cHIsIHBhcnNlX2xkY29uc3QsIHBhcnNlX21lbW9wLCBwYXJzZV9wbywgcGFyc2VfcmVnb3AsCglyZWdfZm10LCByZWxheF9jb2JyLCBzX2xlYWZwcm9jLCBzX3N5c3Byb2MsIHNoaWZ0X29rLCBzeW50YXgsCgl0YXJnX2hhc19zZnIsIHRhcmdfaGFzX2ljbGFzcywgdGNfYmZkX2ZpeDJydHlwZSk6IFByb3RvdHlwZS4KCShtZF9jaGFyc190b19udW1iZXIsIG1kX251bWJlcl90b19pbW0pOiBNYWtlIHN0YXRpYywgcHJvdG90eXBlLgoJKG1kX251bWJlcl90b19maWVsZCk6IExpa2V3aXNlLgoJKG1kX251bWJlcl90b19kaXNwKTogUmVtb3ZlIHVudXNlZCBmdW5jdGlvbi4KCShtZF9hdG9mKTogUmVtb3ZlIGRlY2xhcmF0aW9uIG9mIGF0b2ZfaWVlZS4KCShtZF9hcHBseV9maXgzKTogQ29ycmVjdCBtZF9udW1iZXJfdG9faW1tIGNhbGwuCgkqIGNvbmZpZy90Yy1pcDJrLmMgKG1kX2Fzc2VtYmxlKTogV2FybmluZyBmaXguCgkqIGNvbmZpZy90Yy1tMzJyLmMgKG1kX3BhcnNlX29wdGlvbiA8YXJnPik6IEFkZCBBVFRSSUJVVEVfVU5VU0VELgoJKGZpbGxfaW5zbiA8aWdub3JlPik6IExpa2V3aXNlLgoJKGRlYnVnX3N5bSA8aWdub3JlPik6IExpa2V3aXNlLgoJKG1kX3VuZGVmaW5lZF9zeW1ib2wgPG5hbWU+KTogTGlrZXdpc2UuCgkobTMycl9zY29tbSA8aWdub3JlPik6IExpa2V3aXNlLgoJKG1kX2NvbnZlcnRfZnJhZyA8YWJmZD4pOiBMaWtld2lzZS4KCShtZF9jZ2VuX2xvb2t1cF9yZWxvYyA8aW5zbj4pOiBMaWtld2lzZS4KCShtMzJyX3JlY29yZF9oaTE2IDxzZWc+KTogTGlrZXdpc2UuCgkobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiAjaWYgMCBvbGRfZnJfZml4LgoJKGFsbG93X20zMnJ4KTogUHJvdG90eXBlLgoJKGZpcnN0X3dyaXRlc190b19zZWNvbmRzX29wZXJhbmRzKTogUHJvdG90eXBlLgoJKHdyaXRlc190b19wYyk6IFByb3RvdHlwZS4KCShjYW5fbWFrZV9wYXJhbGxlbCk6IFByb3RvdHlwZS4KCShtYWtlX3BhcmFsbGVsKTogUHJvdG90eXBlLgoJKHRhcmdldF9tYWtlX3BhcmFsbGVsKTogUHJvdG90eXBlLgoJKGFzc2VtYmxlX3R3b19pbnNucyk6IFByb3RvdHlwZS4KCShtMzJyX3JlY29yZF9oaTE2KTogUHJvdG90eXBlLgoJKG1kX2F0b2YpOiBSZW1vdmUgZGVjbGFyYXRpb24gb2YgYXRvZl9pZWVlLgoJKiBjb25maWcvdGMtbTMyci5oIChtMzJyX2ZpeF9hZGp1c3RhYmxlKTogRGVjbGFyZS4KCShtMzJyX2ZvcmNlX3JlbG9jYXRpb24pOiBQcm90b3R5cGUuCgkobTMycl9lbGZfc2VjdGlvbl9jaGFuZ2VfaG9vayk6IFByb3RvdHlwZS4KCSogY29uZmlnL3RjLW02OGsuYyAodGNfZ2VuX3JlbG9jIDxzZWN0aW9uPik6IEFkZCBBVFRSSUJVVEVfVU5VU0VELgoJKG1kX3Nob3dfdXNhZ2UpOiBGaXggc2lnbmVkL3Vuc2lnbmVkIHdhcm5pbmcuCgkqIGNvbmZpZy90Yy1tODhrLmMgKGdldF9yZWcpOiBNYWtlIHJlZ19wcmVmaXggcGFyYW0gdW5zaWduZWQuCgkoY2FsY29wKTogRGl0dG8gZm9yIHJlZ19wcmVmaXggdmFyLgoJKGhleHZhbCk6IEFkZCBjYXN0IHRvIGZpeCBzaWduZWQvdW5zaWduZWQgd2FybmluZy4KCShtZF9udW1iZXJfdG9fZGlzcCk6IERlbGV0ZSB1bnVzZWQgZnVuY3Rpb24uCgkobWRfbnVtYmVyX3RvX2ZpZWxkKTogTGlrZXdpc2UuCgkoZmxvYXRfY29ucywgY29ucywgc19nbG9ibCwgc19zcGFjZSwgc19zZXQsIHNfbGNvbW0pOiBSZW1vdmUgZGVjbC4KCShtYXRjaF9uYW1lKTogUHJvdG90eXBlLgoJKGdldF9iZjIpOiBQcm90b3R5cGUuCgkoZ2V0X2JmX29mZnNldF9leHByZXNzaW9uKTogUHJvdG90eXBlLgoJKiBjb25maWcvdGMtbWNvcmUuYyAobWNvcmVfc19saXRlcmFscyA8aWdub3JlPik6IEFkZCBBVFRSSUJVVEVfVU5VU0VELgoJKG1kX3VuZGVmaW5lZF9zeW1ib2wgPGlnbm9yZT4pOiBMaWtld2lzZS4KCShtZF9jcmVhdGVfc2hvcnRfanVtcCA8YWxsIGFyZ3M+KTogTGlrZXdpc2UuCgkobWRfY3JlYXRlX2xvbmdfanVtcCA8YWxsIGFyZ3M+KTogTGlrZXdpc2UuCgkobWRfY29udmVydF9mcmFnIDxhYmZkLCBzZWM+KTogTGlrZXdpc2UuCgkobWRfYXBwbHlfZml4MyA8c2VnbWVudD4pOiBMaWtld2lzZS4KCShtZF9zZWN0aW9uX2FsaWduIDxzZWdtZW50Pik6IExpa2V3aXNlLgoJKG1kX3BjcmVsX2Zyb21fc2VjdGlvbiA8c2VjPik6IExpa2V3aXNlLgoJKHRjX2dlbl9yZWxvYyA8c2VjdGlvbj4pOiBMaWtld2lzZS4KCShyZWdfbSwgcmVnX24sIGltbWVkaWF0ZSk6IERlbGV0ZSB1bnVzZWQgdmFycy4KCShkdW1wX2xpdGVyYWxzKTogRml4IHNpZ25lZC91bnNpZ25lZCB3YXJuaW5nLgoJKGVudGVyX2xpdGVyYWwpOiBMaWtld2lzZS4KCShwYXJzZV9pbW0pOiBMaWtld2lzZS4gIEFsc28gZml4IGZvcm1hdCBzdHJpbmcuCgkocGFyc2VfbWVtKTogUmVtb3ZlIHVudXNlZCB2YXIuCgkobWRfYXNzZW1ibGUgPExTPik6IEFib3J0IG9uIHVuZXhwZWN0ZWQgaW5zdC4KCShtZF9hdG9mKTogUmVtb3ZlIGRlY2xhcmF0aW9uIG9mIGF0b2ZfaWVlZS4KCShtZF9wYXJzZV9vcHRpb24pOiBSZW1vdmUgdW51c2VkIHZhcnMuCgkobWRfYXBwbHlfZml4Myk6IEZpeCBmb3JtYXQgc3RyaW5ncywgY2FzdCBhcmdzLgoJKHRjX2dlbl9yZWxvYyk6IERlbGV0ZSB1bnVzZWQgdmFyLgoJKiBjb25maWcvdGMtbWNvcmUuaCAodGNfY29mZl9zaXplbWFjaGRlcCk6IERlY2xhcmUuCgkqIGNvbmZpZy90Yy1tbjEwMjAwLmMgKG1kX3BhcnNlX29wdGlvbiA8YywgYXJnPik6IEFkZCBBVFRSSUJVVEVfVU5VU0VELgoJKG1kX3VuZGVmaW5lZF9zeW1ib2wgPG5hbWU+KTogTGlrZXdpc2UuCgkobWRfY29udmVydF9mcmFnIDxhYmZkPik6IExpa2V3aXNlLgoJKHRjX2dlbl9yZWxvYyA8c2VnPik6IExpa2V3aXNlLgoJKGNoZWNrX29wZXJhbmQgPGluc24+KTogTGlrZXdpc2UuCgkobWRfY29udmVydF9mcmFnKTogRml4IGZvcm1hdCBzdHJpbmdzLgoJKHRjX2dlbl9yZWxvYyk6IERlbGV0ZSBmeF9hZGRzeSAtIGZ4X3N1YnN5IGNvZGUuCgkqIGNvbmZpZy90Yy1vcGVucmlzYy5jIChpZ25vcmVfcHNldWRvKTogUHJvdG90eXBlLgoJKG1kX2F0b2YpOiBSZW1vdmUgZGVjbGFyYXRpb24gb2YgYXRvZl9pZWVlLgoJKiBjb25maWcvdGMtb3IzMi5jIChwYXJzZV9vcGVyYW5kKTogUHJvdG90eXBlIG5vbi1CRkQgdG9vLgoJKG1kX2FwcGx5X2ZpeDMpOiBGaXggYm9ndXMgPj49J3MuCgkobWRfdW5kZWZpbmVkX3N5bWJvbCk6IERlbGV0ZSB1bnVzZWQgdmFyLgoJKiBjb25maWcvdGMtcGouYyAobGl0dGxlLCBiaWcsIHBhcnNlX2V4cF9zYXZlX2lscCk6IFByb3RvdHlwZS4KCShjX3RvX3IsIGlwdXNoX2NvZGUsIGZha2Vfb3Bjb2RlLCBhbGlhcyk6IExpa2V3aXNlLgoJKGZha2Vfb3Bjb2RlKTogQWRqdXN0IGZvciBwal9vcGNfaW50X3QgY2hhbmdlLgoJKG1kX2JlZ2luKTogTGlrZXdpc2UuCgkobWRfYXNzZW1ibGUpOiBMaWtld2lzZS4KCShpcHVzaF9jb2RlKTogQ29ycmVjdCBwYXJzZV9leHBfc2F2ZV9pbHAgY2FsbC4gIFRlc3QgcGVuZGluZ19yZWxvYwoJaW5zdGVhZCBvZiBub24tZXhpc3RlbnQgdGhpcmQgYXJnIG9mIHBhcnNlX2V4cF9zYXZlX2lscC4KCShtZF9wYXJzZV9vcHRpb24pOiBDb3JyZWN0ICJsaXR0bGUiIGFuZCAiYmlnIiBjYWxscy4KCSogY29uZmlnL3RjLXNwYXJjLmMgKHNfcmVnaXN0ZXIpOiBPbmx5IGRlY2xhcmUgI2lmZGVmIE9CSl9FTEYuCgkobWRfYXBwbHlfZml4MyA8c2VnbWVudD4pOiBBZGQgQVRUUklCVVRFX1VOVVNFRC4KCSh0Y19nZW5fcmVsb2MgPHNlY3Rpb24+KTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy10aWMzMC5jOiAjaW5jbHVkZSBzdGRhcmcuaCBvciB2YXJhcmdzLmguCgkoZGVidWcpOiBSZXdyaXRlIHVzaW5nIFZBXyogbWFjcm9zLgoJKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogQWRkIEFUVFJJQlVURV9VTlVTRUQgdG8gYXJncy4KCShtZF9jb252ZXJ0X2ZyYWcpOiBMaWtld2lzZS4KCShtZF9wYXJzZV9vcHRpb24pOiBMaWtld2lzZS4KCShtZF9zaG93X3VzYWdlKTogTGlrZXdpc2UuCgkobWRfdW5kZWZpbmVkX3N5bWJvbCk6IExpa2V3aXNlLgoJKHRjX2dlbl9yZWxvYyk6IExpa2V3aXNlLgoJKG1kX29wZXJhbmQpOiBMaWtld2lzZS4KCSh0Y19hb3V0X3ByZV93cml0ZV9ob29rKTogRGVsZXRlLgoJKHN0cnVjdCB0aWMzMF9pbnNuKTogTWFrZSAib3BlcmFuZHMiIHVuc2lnbmVkLgoJKHN0cnVjdCB0aWMzMF9wYXJfaW5zbik6IExpa2V3aXNlLgoJKG1kX2Fzc2VtYmxlKTogTGlrZXdpc2UgZm9yICJjb3VudCIsICJpIiBhbmQgIm51bW9wcyIuCgkodGljMzBfcGFyYWxsZWxfaW5zbik6IExpa2V3aXNlIGZvciB2YXJzIGhlcmUuCgkodGljMzBfb3BlcmFuZCk6IExpa2V3aXNlLiAgUmVtb3ZlIHVzZWxlc3MgdW5zaWduZWQgPj0gMCBjb21wYXJpc29uLgoJKiBjb25maWcvdGMtdGljMzAuaCAodGNfYW91dF9wcmVfd3JpdGVfaG9vayk6IERlZmluZSBhcyBlbXB0eS4KCSogY29uZmlnL3RjLXRpYzgwLmMgKG9ial9jb2ZmX3NlY3Rpb24pOiBEZWxldGUgZGVjbGFyYXRpb24uCgkobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiBBZGQgQVRUUklCVVRFX1VOVVNFRCBvbiBhcmdzLgoJKG1kX3VuZGVmaW5lZF9zeW1ib2wpOiBMaWtld2lzZS4KCShtZF9wYXJzZV9vcHRpb24pOiBMaWtld2lzZS4KCShtZF9jb252ZXJ0X2ZyYWcpOiBMaWtld2lzZS4KCSh0Y19jb2ZmX3N5bWJvbF9lbWl0X2hvb2spOiBMaWtld2lzZS4KCShtZF9hdG9mKTogUmVtb3ZlIGRlY2xhcmF0aW9uIG9mIGF0b2ZfaWVlZS4KCShjb25zdF9vdmVyZmxvdyk6IFdhcm5pbmcgZml4ZXMsIHRpZHkuCgkoZ2V0X29wZXJhbmRzKTogRGVsZXRlIHVudXNlZCB2YXJzLgoJKGludGVybmFsX2Vycm9yX2EpOiBBZGp1c3QgZm9ybWF0IHN0cmluZyB0byBleHBlY3QgYSBsb25nIGZvciBhcmcuCgkoZmluZF9vcGNvZGUpOiBXYXJuaW5nIGZpeGVzLCBzaW1wbGlmeS4KCShidWlsZF9pbnNuKTogQ2FzdCBpbnRlcm5hbF9lcnJvcl9hIGFyZy4KCShtZF9iZWdpbik6IExpa2V3aXNlLgoJKG1kX2FwcGx5X2ZpeDMpOiBMaWtld2lzZS4KCShtZF9hc3NlbWJsZSk6IERlbGV0ZSB1bnVzZWQgdmFyLgoJKiBjb25maWcvdGMtdGljODAuaCAodGNfY29mZl9maXgycnR5cGUpOiBQcm90b3R5cGUuCgkqIGNvbmZpZy90Yy16OGsuYyAoY29ucywgb2JqX2NvZmZfc2VjdGlvbik6IERlbGV0ZSBkZWNsYXJhdGlvbnMuCgkod2hhdHJlZywgcGFyc2VfcmVnLCBwYXJzZV9leHApOiBNYWtlIHN0YXRpYywgcHJvdG90eXBlLgoJKGNoZWNrZm9yLCByZWd3b3JkLCByZWdhZGRyLCBnZXRfY3RybF9vcGVyYW5kKTogUHJvdG90eXBlLgoJKGdldF9mbGFnc19vcGVyYW5kLCBnZXRfaW50ZXJydXB0X29wZXJhbmQsIGdldF9jY19vcGVyYW5kKTogTGlrZXdpc2UuCgkoZ2V0X29wZXJhbmQsIGdldF9vcGVyYW5kcywgZ2V0X3NwZWNpZmljLCBuZXdmaXgpOiBMaWtld2lzZS4KCShhcHBseV9maXgsIGJ1aWxkX2J5dGVzKTogTGlrZXdpc2UuCgkobWRfYXRvZik6IFJlbW92ZSBkZWNsYXJhdGlvbiBvZiBhdG9mX2llZWUuCgkodGNfYW91dF9maXhfdG9fY2hhcnMpOiBEZWxldGUuCgkobWRfYmVnaW4pOiBDb25zdGlmeSAib3Bjb2RlIi4gIERvbid0IHRyeSB0byBpbml0IG9wY29kZS0+aWR4LgoJRml4IHNfdW5zZWcgY2FsbC4KCShtZF9wYXJzZV9vcHRpb24pOiBGaXggc19zZWdtIGFuZCBzX3Vuc2VnIGNhbGxzLgoKMjAwMi0xMi0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiB0Yy1taXBzLmMgKFJFTEFYX0JSQU5DSF9FTkNPREUpOiBSZW1vdmUgcmVsb2NfczIgYXJndW1lbnQuCglBZGp1c3QgY2FsbGVycy4KCShSRUxBWF9CUkFOQ0hfUkVMT0NfUzIpOiBEZWxldGUuCgkoYXBwZW5kX2luc24pOiBVc2Ugb25seSBCRkRfUkVMT0NfMTZfUENSRUxfUzIgZm9yIGJyYW5jaGVzLgoJRG8gbm90IGhhbmRsZSBCRkRfUkVMT0NfMTZfUENSRUwuCgkobWFjcm9fYnVpbGQsIG1pcHNfaXApOiBMaWtld2lzZS4KCShtZF9wY3JlbF9mcm9tKTogUmV0dXJuIDQgZm9yIHVuZGVmaW5lZCBzeW1ib2xzIHJlZ2FyZGxlc3Mgb2YKCW1pcHNfcGljLgoJKG1kX2FwcGx5X2ZpeDMpOiBVc2Ugb25seSBCRkRfUkVMT0NfMTZfUENSRUxfUzIgZm9yIGJyYW5jaGVzLgoJRG9uJ3QgZGVyZWZlcmVuY2UgaG93dG8gaWYgbm8gc3VjaCByZWxvY2F0aW9uIGlzIGF2YWlsYWJsZS4KCURvIG5vdCBhcHBseSBoYWNrIGZvciBpbi1wbGFjZSB6ZXJvIGFkZGVuZCBpbiBORVdBQkkuCgkobWRfY29udmVydF9mcmFnKTogVXNlIG9ubHkgQkZEX1JFTE9DXzE2X1BDUkVMX1MyIGZvciBicmFuY2hlcy4KCjIwMDItMTItMTIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPiwKCSAgICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLW1uMTAzMDAuaCAoVENfVkFMSURBVEVfRklYX1NVQik6IERlZmluZS4KCShUQ19MSU5LUkVMQVhfRklYVVApOiBBZGQgY29tbWVudHMuCgoyMDAyLTEyLTEyICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1tbjEwMzAwLmMgKHNldF9hcmNoX21hY2gpOiBDaGFuZ2UgYXJndW1lbnQgdHlwZSB0bwoJYXZvaWQgd2FybmluZ3MuCgkocl9yZWdpc3Rlcl9uYW1lLCB4cl9yZWdpc3Rlcl9uYW1lKTogQWRkIHByb3RvdHlwZSBkZWNsYXJhdGlvbnMuCgoyMDAyLTEyLTA4ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZy90Yy1pYTY0LmMgKG1kX2FwcGx5X2ZpeDMpOiBSZW1vdmUgdGhlIFBDUkVMIGhhY2sKCWNvcGllZCBmcm9tIHRjLWkzODYuYy4KCjIwMDItMTItMDggIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCUZpeCBCdWcgc2F2YW5uYWgvMTgyNToKCSogY29uZmlnL3RjLW02OGhjMTEuYyAoU1RBVEVfSU5ERVhFRF9QQ1JFTCk6IE5ldyByZWxheCBjb2RlLgoJKG1kX3JlbGF4X3RhYmxlKTogRGVmaW5lIHNwZWNpZmljIHJlbGF4IGZvciBQQy1yZWwgb2Zmc2V0cy4KCShidWlsZF9pbmRleGVkX2J5dGUpOiBVc2UgYSBTVEFURV9JTkRFWEVEX1BDUkVMIHJlbGF4IGNvZGUuCgkobTY4aGMxMV9yZWxheF9mcmFnKTogSGFuZGxlIHRoZSBuZXcgcmVsYXggY29kZS4KCShtZF9jb252ZXJ0X2ZyYWcpOiBMaWtld2lzZS4KCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IExpa2V3aXNlLgoKMjAwMi0xMi0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHN1YnNlZ3MuYyAoc2VjdGlvbl9zeW1ib2wpOiBVc2UgdGhlIHN5bWJvbCwgbm90IHRoZSBzZWN0aW9uLCBuYW1lLgoKMjAwMi0xMi0wNSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9pYTY0LmMgKGVudW0gcmVsb2NfZnVuYyk6IEFkZCBGVU5DX0xUX1JFTEFUSVZFX1guCgkoaWE2NF9nZW5fcmVhbF9yZWxvY190eXBlKTogSGFuZGxlIGl0LgoJKHBzZXVkb19mdW5jKTogQWRkIEBsdG9mZnguCgkobWRfYmVnaW4pOiBCdWlsZCAuPGx0b2ZmeD4uCgkoaWE2NF9mb3JjZV9yZWxvY2F0aW9uKTogVHJ1ZSBmb3IgTFRPRkYyMlggYW5kIExEWE1PVi4KCjIwMDItMTItMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtYXJtLmMgKGFybV9mb3JjZV9yZWxvY2F0aW9uKTogTW92ZSBvdXQgb2YgI2lmIE9CSl9FTEYuCglNb3ZlIE9CSl9DT0ZGIFRDX0ZPUkNFX1JFTE9DQVRJT04gY29kZSBoZXJlIHNvIHRoYXQgQ09GRiBoYW5kbGVzCglBUk1fSU1NRURJQVRFIGFuZCBBUk1fQURSTF9JTU1FRElBVEUgcmVsb2NzIGFzIGZvciBFTEYuCgkqIGNvbmZpZy90Yy1hcm0uaCAoVENfRk9SQ0VfUkVMT0NBVElPTik6IERlZmluZSBmb3IgYm90aCBFTEYgYW5kCglDT0ZGIHRvIGNhbGwgYXJtX2ZvcmNlX3JlbG9jYXRpb24uCgoyMDAyLTEyLTA0ICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KCgkqIGNvbmZpZy90Yy1pYTY0LmMgKHBzZXVkb19mdW5jKTogQWRkICJAcGF1c2UiIGNvbnN0YW50IGZvciAiaGludCIKCWluc3RydWN0aW9uLgoJKGVtaXRfb25lX2J1bmRsZSk6IEhhbmRsZSAiaGludCIgaW5zdHJ1Y3Rpb24uCgkob3BlcmFuZF9tYXRjaCk6IE1hdGNoIElBNjRfT1BORF9BUl9DU0QuCgoyMDAyLTEyLTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZHdhcmYyZGJnLmMgKHNjYWxlX2FkZHJfZGVsdGEpOiBDb3JyZWN0IHBhcmFtZXRlci4gIE1vdmUgcHJvdG90eXBlCglpbnNpZGUgI2lmLgoKMjAwMi0xMi0wMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAocHBjX2NsZWFudXApOiBEbyBub3Qgc2V0IFNFQ19NRVJHRSBmbGFnIG9uCgkuUFBDLkVNQi5hcHVpbmZvIHNlY3Rpb25zLgoKMjAwMi0xMi0wMyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1pYTY0LmMgKG9wZXJhbmRfbWF0Y2gpOiBBZGQgSUE2NF9PUE5EX0xEWE1PViBjYXNlLgoKMjAwMi0xMi0wMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy13NjUuYyAoc19sb25nYSk6IFByb3RvdHlwZS4gIE1ha2Ugc3RhdGljLCBzcGVjaWZ5IGludCBhcmcuCgkoY29ucywgc19hbGlnbl9ieXRlcyk6IERlbGV0ZSBkZWNsYXJhdGlvbi4KCShyZWxheCk6IERlbGV0ZS4KCShtZF9iZWdpbik6IENvbnN0aWZ5ICJzdHJ1Y3Qgb3BpbmZvICoiIHZhci4gIERvbid0IHRyeSB0byBtYWtlICJuYW1lIgoJc3RyaW5ncyBjb21tb24uCgkoZG90KTogRGVsZXRlIHVudXNlZCBmdW5jdGlvbi4KCSh3NjVfZXhwcmVzc2lvbik6IFJlbW92ZSB1bnVzZWQgYXJnLgoJKHBhcnNlX2V4cCk6IFByb3RvdHlwZS4gIFJlbW92ZSB1bnVzZWQgYXJnLiAgQWRqdXN0IHc2NV9leHByZXNzaW9uCgljYWxsLgoJKGdldF9vcGVyYW5kcyk6IFByb3RvdHlwZS4gIENvbnN0aWZ5ICJzdHJ1Y3Qgb3BpbmZvICoiIGFyZy4gIEZpeAoJcGFyc2VfZXhwIGNhbGwuCgkoZ2V0X3NwZWNpZmljKTogUHJvdG90eXBlLiAgQ29uc3RpZnkgInN0cnVjdCBvcGluZm8gKiIgYXJnIGFuZCByZXR1cm4KCXZhbHVlLgoJKGNoZWNrKTogUmVtb3ZlIHVudXNlZCBmdW5jdGlvbi4KCShidWlsZF9NeXRlcyk6IFByb3RvdHlwZS4gIENvbnN0aWZ5ICJzdHJ1Y3Qgb3BpbmZvICoiIGFyZy4gIEFib3J0CglvbiB1bmhhbmRsZWQgc3dpdGNoIGNhc2UuCgkobWRfYXNzZW1ibGUpOiBSZW1vdmUgdW51c2VkIG9wX3N0YXJ0LCBvcF9lbmQsIG5sZW4sIHAgdmFycy4gIENvbnN0aWZ5Cgkib3Bjb2RlIi4KCSh0Y19jcmF3bF9zeW1ib2xfY2hhaW4pOiBEZWxldGUgdW51c2VkIGZ1bmN0aW9uLgoJKHRjX2hlYWRlcnNfaG9vayk6IExpa2V3aXNlLgoJKHRjX05vdXRfZml4X3RvX2NoYXJzKTogTGlrZXdpc2UuCgkobWRfdW5kZWZpbmVkX3N5bWJvbCk6IEFkZCBBVFRSSUJVVEVfVU5VU0VELgoJKG1kX3BhcnNlX29wdGlvbik6IExpa2V3aXNlLgoJKG1kX2NvbnZlcnRfZnJhZyk6IExpa2V3aXNlLgoJKHRjX2NvZmZfc3ltYm9sX2VtaXRfaG9vayk6IExpa2V3aXNlLgoJKG1kX3Nob3dfdXNhZ2UpOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXc2NS5oICh0Y19jb2ZmX3NpemVtYWNoZGVwKTogRGVjbGFyZS4KCShUQ19QQVJTRV9DT05TX0VYUFJFU1NJT04pOiB3NjVfZXhwcmVzc2lvbiB0YWtlcyBvbmUgYXJnLgoJKHc2NV9leHByZXNzaW9uKTogRGVjbGFyZS4KCgkqIHBvL1BPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKCSogY29uZmlnL3RjLWFybS5jIChhcm1fZm9yY2VfcmVsb2NhdGlvbik6IFJldHVybiAwIGZvciBBUk1fSU1NRURJQVRFCglhbmQgQVJNX0FEUkxfSU1NRURJQVRFLgoKMjAwMi0xMi0wMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGdhc3AuYzogRGVsZXRlLiAgSXQgaGFzIGJlZW4gZGVwcmVjYXRlZC4KCSogTkVXUzogTWVudGlvbiB0aGF0IGdhc3AgaGFzIGJlZW4gcmVtb3ZlZC4KCSogTWFrZWZpbGUuYW06IFJlbW92ZSByZWZlcmVuY2VzIHRvIGdhc3AuCgkqIG1ha2VmaWxlLnZtczogTGlrZXdpc2UuCgkqIG1wdy1tYWtlLnNlZDogTGlrZXdpc2UuCgkqIE1ha2VpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9nYXNwLnRleGk6IERlbGV0ZS4KCSogZG9jL01ha2VmaWxlLmFtOiBSZW1vdmUgcmVmZXJlbmNlcyB0byBnYXNwLnRleGkuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogbWFjcm8uYzogRGVsZXRlIHJlZmVyZW5jZXMgdG8gZ2FzcC4KCVJlbW92ZSB1c2Ugb2YgY29tbWVudF9jaGFyIGZ1bmN0aW9uIHBhcmFtZXRlciBhcyBpdCBpcyBubyBsb25nZXIKCW5lZWRlZC4KCSogbWFjcm8uaDogVXBkYXRlIHByb3RvdHlwZXMgdG8gcmVtb3ZlIGNvbW1lbnRfY2hhciBwYXJhbWV0ZXIuCglGaXggZm9ybWF0dGluZy4KCSogcmVhZC5jIChyZWFkX2Ffc291cmNlX2ZpbGUsIHNfaXJwKTogUmVtb3ZlIGNvbW1lbnRfY2hhcgoJcGFyYW1ldGVyIGZyb20gaW52b2NhdGlvbiBvZiBmdW5jdGlvbnMgaW4gbWFjcm8uYwoKMjAwMi0xMi0wMiAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiByZWFkLmMgKGVtaXRfZXhwcikgWyFXT1JLSU5HX0RPVF9XT1JEXTogSW5pdGlhbGl6ZSB4LT51c2VfanVtcC4KCjIwMDItMTItMDEgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogY29uZmlnL3RjLW02OGhjMTEuYyAobWRfYmVnaW4pOiBGaXggcXNvcnQgd2FybmluZy4KCSh0Y19nZW5fcmVsb2MpOiBNYXJrIHNlY3Rpb24gcGFyYW0gYXMgbm90IHVzZWQuCgoyMDAyLTEyLTAxICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCglGaXggQnVnIHNhdmFubmFoLzE4MjU6CgkqIGNvbmZpZy90Yy1tNjhoYzExLmggKG1kX3JlbGF4X2ZyYWcpOiBEZWZpbmUgdG8gc3VwcG9ydCByZWxheGF0aW9ucwoJdGhhdCBhcmUgbm90IHBjLXJlbGF0aXZlLgoJKG02OGhjMTFfcmVsYXhfZnJhZyk6IERlY2xhcmUuCgoJKiBjb25maWcvdGMtbTY4aGMxMS5jIChidWlsZF9pbmRleGVkX2J5dGUpOiBVc2UgYSBmcmFnX3ZhciB0byBoYW5kbGUKCXRoZSBvZmZzZXRhYmxlIGluZGV4ZWQgYWRkcmVzc2luZyBtb2RlcyAobixyKS4KCShidWlsZF9pbnNuKTogQ2xlYW51cCBzb21lIGxvY2Fscy4KCShtNjhoYzExX3JlbGF4X2ZyYWcpOiBOZXcgZnVuY3Rpb24gaW1wb3J0ZWQgZnJvbSB0Yy1jcmlzLmMgdG8gaGFuZGxlCglyZWxheGF0aW9uIG9mIGRpZmZlcmVuY2UgYmV0d2VlbiB0d28gc3ltYm9scyBvZiBzYW1lIHNlY3Rpb24uCgkobWRfY29udmVydF9mcmFnKTogRm9yIElOREVYRURfT0ZGU0VUIHJlbGF4cywgdXNlIHRoZSBkaXNwbGFjZW1lbnQKCW9ubHkgd2hlbiB0aGlzIGlzIGEgUEMtcmVsYXRpdmUgb3BlcmFuZCBhbmQgdGhlIG9mZnNldCBpcyBub3QgYWJzb2x1dGUuCgkobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiBDb252ZXJ0IHRoZSBJTkRFWEVEX09GRlNFVCxVTkRFRiBmcmFnCgl0byBJTkRFWEVEX09GRlNFVCxTVEFURV9CSVRTNSB3aGVuIHRoZSBzeW1ib2wgaXMgYWJzb2x1dGU7IHRoaXMgd2lsbAoJYmUgaGFuZGxlZCBieSBtNjhoYzExX3JlbGF4X2ZyYWcuCgoyMDAyLTEyLTAxICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGNvbmZpZy90Yy1tNjhoYzExLmMgKGVsZl9mbGFncyk6IFNldCBkZWZhdWx0IEFCSSB0byBnY2MgZGVmYXVsdAoJKDMyLWJpdCBpbnQsIDY0LWJpdCBkb3VibGUpLgoJKG1kX2xvbmdvcHRzKTogTmV3IG9wdGlvbnMgLW1zaG9ydCwgLW1sb25nLCAtbXNob3J0LWRvdWJsZSBhbmQKCS1tbG9uZy1kb3VibGUgdG8gY29udHJvbCB0aGUgQUJJLgoJKG1kX3Nob3dfdXNhZ2UpOiBVcGRhdGUuCgkobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlIG5ldyBvcHRpb25zLgoJKiBkb2MvYXMudGV4aW5mbyAoT3ZlcnZpZXcpOiBEb2N1bWVudCBuZXcgb3B0aW9ucyBmb3IgSEMxMS9IQzEyLgoKMjAwMi0xMi0wMSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHN5bWJvbHMuYyAocmVwb3J0X29wX2Vycm9yKTogTmV3IGZ1bmN0aW9uLCBicm9rZW4gb3V0IG9mIC4uLgoJKHJlc29sdmVfc3ltYm9sX3ZhbHVlKTogLi4uIGhlcmUuIFVzZSBmb3IgYm90aCBtb25hZGljIGFuZCBkeWFkaWMKCW9wZXJhdG9ycy4KCjIwMDItMTEtMzAgIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCSogY29uZmlnL3RjLXNoLmMgKG1kX2FwcGx5X2ZpeDMpOiBUYWtlIGFjY291bnQgb2YgZnhfb2Zmc2V0Cglmb3IgQkZEX1JFTE9DXzMyX1BMVF9QQ1JFTC4KCjIwMDItMTEtMzAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkd2FyZjJkYmcuYywgd3JpdGUuYywgY29uZmlnL29iai1hb3V0LmMsIGNvbmZpZy9vYmotY29mZi5jLAoJY29uZmlnL29iai1lY29mZi5jLCBjb25maWcvb2JqLWVsZi5jLCBjb25maWcvb2JqLXNvbS5jLAoJY29uZmlnL3RjLWFybS5jLCBjb25maWcvdGMtYXJtLmgsIGNvbmZpZy90Yy1hdnIuYywgY29uZmlnL3RjLWNyaXMuYywKCWNvbmZpZy90Yy1kMTB2LmMsIGNvbmZpZy90Yy1kMTB2LmgsIGNvbmZpZy90Yy1kMzB2LmMsIGNvbmZpZy90Yy1kMzB2LmgsCgljb25maWcvdGMtZGx4LmMsIGNvbmZpZy90Yy1kbHguaCwgY29uZmlnL3RjLWZyMzAuYywgY29uZmlnL3RjLWZyMzAuaCwKCWNvbmZpZy90Yy1mcnYuYywgY29uZmlnL3RjLWZydi5oLCBjb25maWcvdGMtaHBwYS5jLCBjb25maWcvdGMtaTM3MC5jLAoJY29uZmlnL3RjLWkzODYuYywgY29uZmlnL3RjLWkzODYuaCwgY29uZmlnL3RjLW0zMnIuYywKCWNvbmZpZy90Yy1tNjhoYzExLmMsIGNvbmZpZy90Yy1tY29yZS5jLCBjb25maWcvdGMtbWNvcmUuaCwKCWNvbmZpZy90Yy1taXBzLmMsIGNvbmZpZy90Yy1taXBzLmgsIGNvbmZpZy90Yy1tbjEwMjAwLmMsCgljb25maWcvdGMtbW4xMDMwMC5jLCBjb25maWcvdGMtbW4xMDMwMC5oLCBjb25maWcvdGMtb3BlbnJpc2MuYywKCWNvbmZpZy90Yy1vcGVucmlzYy5oLCBjb25maWcvdGMtcHBjLmMsIGNvbmZpZy90Yy1zMzkwLmMsCgljb25maWcvdGMtc2guYywgY29uZmlnL3RjLXNoLmgsIGNvbmZpZy90Yy1zaDY0LmMsIGNvbmZpZy90Yy10aWM1NHguYywKCWNvbmZpZy90Yy12ODUwLmMsIGNvbmZpZy90Yy12ODUwLmgsIGNvbmZpZy90Yy14c3Rvcm15MTYuYywKCWNvbmZpZy90Yy14c3Rvcm15MTYuaDogUmVwbGFjZSBib29sZWFuIHdpdGggYmZkX2Jvb2xlYW4sIHRydWUgd2l0aAoJVFJVRSwgZmFsc2Ugd2l0aCBGQUxTRS4gIFNpbXBsaWZ5IGNvbXBhcmlzb25zIG9mIGJmZF9ib29sZWFuIHZhcnMgd2l0aAoJVFJVRS9GQUxTRS4gIEZvcm1hdHRpbmcuCgoyMDAyLTExLTI5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWFybS5jIChkb190X2JrcHQpOiBJZiBubyBvcGVyYW5kIGlzIHNwZWNpZmllZCwKCWFzc3VtZSBhIHZhbHVlIG9mIHplcm8uCgkoZG9fYmtwdCk6IExpa2V3aXNlLgoKMjAwMi0xMS0yOSAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBjb25maWcvdGMtc2guYyAobWRfYXBwbHlfZml4Myk6IENhbGwgU19TRVRfVEhSRUFEX0xPQ0FMCglmb3IgVExTIHJlbG9jYXRpb25zLgoKMjAwMi0xMS0yOSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtaWE2NC5jIChtZF9hcHBseV9maXgzKTogQWRkIGRlZmF1bHQgY2FzZS4KCjIwMDItMTEtMjggIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogc3ltYm9scy5jIChTX1NFVF9USFJFQURfTE9DQUwpOiBOZXcgZnVuY3Rpb24uCgkqIHN5bWJvbHMuaCAoU19TRVRfVEhSRUFEX0xPQ0FMKTogTmV3IHByb3RvdHlwZS4KCSogY29uZmlnL3RjLWkzODYuYyAobWRfYXBwbHlfZml4Myk6IENhbGwgU19TRVRfVEhSRUFEX0xPQ0FMCglmb3IgVExTIHJlbG9jYXRpb25zLgoJKiBjb25maWcvdGMtaWE2NC5jIChtZF9hcHBseV9maXgzKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1hbHBoYS5jIChtZF9hcHBseV9maXgzKTogTGlrZXdpc2UuCgoyMDAyLTExLTI4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHdyaXRlLmMgKHN1YnNlZ3NfZmluaXNoKTogRm9yIFNFQ19NRVJHRSBzZWN0aW9ucyBwYWQgbGFzdCBmcmFnbWVudAoJdG8gZW50c2l6ZS4KCjIwMDItMTEtMjYgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tLgoKCSogZHdhcmYyZGJnLmMgKHNjYWxlX2FkZHJfZGVsdGEpOiBOZXcuCgkoc2l6ZV9pbmNfbGluZV9hZGRyKTogVXNlIGl0LgoJKGVtaXRfaW5jX2xpbmVfYWRkcik6IFVzZSBpdC4KCjIwMDItMTEtMjYgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogY29uZmlnL3RjLWNyaXMuYyAoY3Jpc19yZWxheF9mcmFnKTogRml4IHR5cG8gaW4gY29tbWVudC4KCShtZF9hc3NlbWJsZSk6IERvbid0IHBhc3Mgb24gYnJhbmNoZXMgdG8gY29uc3RhbnRzIGFzIHJlbGF4YWJsZS4KCVR3ZWFrIGNvbW1lbnQuCgoyMDAyLTExLTI1ICBTdmVpbiBFLiBTZWxkYWwgIDxTdmVpbi5TZWxkYWxAc29saWRhcy5jb20+CgoJKiBjb25maWcvdGMtdGljNHguYyAoYzR4X29wZXJhbmRzX21hdGNoKTogQnVnZml4IGluIGRpcmVjdCBtb2RlCgoyMDAyLTExLTIxICBSYW5kb2xwaCBDaHVuZyAgPHJhbmRvbHBoQHRhdXNxLm9yZz4KCgkqIGNvbmZpZy90Yy1ocHBhLmggKHRjX2Zyb2Jfc3ltYm9sKTogRnJvYiB1bmRlZmluZWQgdW51c2VkIHN5bWJvbHMKCW9ubHkgaWYgdGhleSBoYXZlIGRlZmF1bHQgdmlzaWJpbGl0eS4KCjIwMDItMTEtMjEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtYWxwaGEuYyAoYWxwaGFfZml4X2FkanVzdGFibGUpOiBSZW1vdmUgcmVkdW5kYW50CglTX0lTX0RFRklORUQgdGVzdC4KCjIwMDItMTEtMjEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtbWNvcmUuYyAobWNvcmVfcG9vbF9jb3VudCk6IE5ldyBmdW5jdGlvbi4KCShtY29yZV9jb25zLCBtY29yZV9mbG9hdF9jb25zLCBtY29yZV9zdHJpbmdlciwgbWNvcmVfZmlsbCk6IFVzZSBpdC4KCjIwMDItMTEtMjAgIEtsZWUgRGllbmVzICA8a2RpZW5lc0BhcHBsZS5jb20+CgoJKiBjb25maWcvdGMtbWNvcmUuYyAobWRfYmVnaW4pOiBVc2UgYSBjb25zdCBpdGVyYXRvci4gIERvbid0Cgljb2FsZXNjZSB0aGUgbmFtZSBmaWVsZHMgdG8gdXNlIHRoZSBzYW1lIHBvaW50ZXIuCgoJKiBjb25maWcvdGMtc2guYyAobWRfYmVnaW4pOiBVc2UgYSBjb25zdCBpdGVyYXRvci4gIERvbid0IGNvYWxlc2NlCgl0aGUgbmFtZSBmaWVsZHMgdG8gdXNlIHRoZSBzYW1lIHBvaW50ZXIuCgkoZ2V0X3NwZWNpZmljKTogQ2hlY2sgZm9yIG9wY29kZXMgd2l0aCB0aGUgc2FtZSBuYW1lIHVzaW5nIHN0cmNtcAoJYXMgd2VsbCBhcyBjb21wYXJpbmcgdGhlIHBvaW50ZXIuCgoyMDAyLTExLTIwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogd3JpdGUuYyAoYWRqdXN0X3JlbG9jX3N5bXMpOiBEb24ndCByZWR1Y2UgU0VDX01FUkdFIGZpeHVwcyB3aXRoCglmeF9zdWJzeSBub24tTlVMTC4KCjIwMDItMTEtMTkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvb2JqLWVsZi5jIChvYmpfZWxmX3Zpc2liaWxpdHkpOiBPdmVyd3JpdGUgb25seSB0aGUKCXZpc2liaWxpdHkgcG9ydGlvbiBvZiBzdF9vdGhlci4KCjIwMDItMTEtMTkgIEtsZWUgRGllbmVzICA8a2RpZW5lc0BhcHBsZS5jb20+CgoJKiBjb25maWcvdGMtaDgzMDAuYyAoc3RydWN0IGg4X2luc3RydWN0aW9uKTogTmV3IHR5cGUsIHVzZWQgdG8KCXdyYXAgaDhfb3Bjb2RlcyB3aXRoIGxlbmd0aCwgbm9wZXJhbmRzLCBpZHgsIGFuZCBzaXplIGZpZWxkcwoJKGNvbXB1dGVkIGF0IHJ1bi10aW1lKS4KCShoOF9pbnN0cnVjdGlvbnMpOiBOZXcgdmFyaWFibGUuCgkobWRfYmVnaW4pOiBBbGxvY2F0ZSB0aGUgc3RvcmFnZSBmb3IgaDhfaW5zdHJ1Y3Rpb25zLiAgRmlsbAoJaDhfaW5zdHJ1Y3Rpb25zIHdpdGggcG9pbnRlcnMgdG8gdGhlIGFwcHJvcHJpYXRlIG9wY29kZSBhbmQgdGhlCgljb3JyZWN0IHZhbHVlIGZvciB0aGUgYWRkaXRpb25hbCBmaWVsZHMuCgkoY2xldmVyX21lc3NhZ2UpOiBVcGRhdGUgdG8gdXNlIGg4X2luc3RydWN0aW9ucyBpbnN0ZWFkIG9mCgloOF9vcGNvZGVzLgoJKGJ1aWxkX2J5dGVzKTogRGl0dG8uCgkoZ2V0X3NwZWNpZmljKTogRGl0dG8uCgkobWRfYXNzZW1ibGUpOiBEaXR0by4KCjIwMDItMTEtMTkgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBjb25maWcvdGMtczM5MC5jICh0Y19zMzkwX2ZpeF9hZGp1c3RhYmxlKTogUmUtYWRkIHBhdGNoIHRvIHByZXZlbnQKCWFkanVzdG1lbnRzIHRvIHN5bWJvbHMgaW4gbWVyZ2Ugc2VjdGlvbnMuCgoyMDAyLTExLTE5ICBMdWtlIERlbGxlciA8bHVrZWRAY3NlLnVuc3cuZWR1LmF1PgoKCSogY29uZmlnL3RjLWFscGhhLmMgKHNfYWxwaGFfcHJvbG9ndWUpOiBhc19iYWQgd2hlbiBzeW0gaXMgTlVMTC4KCjIwMDItMTEtMTggIEtldmluIEJ1ZXR0bmVyICA8a2V2aW5iQHJlZGhhdC5jb20+CgoJKiBkd2FyZjJkYmcuaCAoZHdhcmYyX2Zvcm1hdCk6IE5ldyBlbnVtLgoJKiBkd2FyZjJkYmcuYyAoRFdBUkYyX0ZPUk1BVCk6IFByb3ZpZGUgZGVmYXVsdCBkZWZpbml0aW9uLgoJKG91dF9kZWJ1Z19saW5lLCBvdXRfZGVidWdfaW5mbyk6IEFkZCBjb2RlIGZvciBoYW5kbGluZyA2NC1iaXQKCURXQVJGIDIgZm9ybWF0cy4KCSogY29uZmlnL3RjLW1pcHMuaCAobWlwc19kd2FyZjJfZm9ybWF0KTogRGVjbGFyZS4KCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19kd2FyZjJfZm9ybWF0KTogTmV3IGZ1bmN0aW9uLgoJKiBkb2MvaW50ZXJuYWxzLnRleGkgKERXQVJGMl9GT1JNQVQpOiBEb2N1bWVudC4KCjIwMDItMTEtMTggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoc19jaGFuZ2Vfc2VjdGlvbik6IE1ha2Ugc3VyZSBpbnB1dCBidWZmZXIKCWlzIG5vdCBhY2Nlc3NlZCBwYXN0IHRoZSBlbmQuICBEb24ndCBoYW5kCglvYmpfZWxmX2NoYW5nZV9zZWN0aW9uIGEgcG9pbnRlciBpbnRvIHRoZSBpbnB1dCBidWZmZXIuCgoyMDAyLTExLTE4ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4sIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jICh0Y19nZW5fcmVsb2MpOiBGaXggdHlwbyBpbiBoYW5kbGluZyBvZgoJR09UX0xPMTYgb24gTkVXQUJJLgoKMjAwMi0xMS0xOCAgU3ZlaW4gRS4gU2VsZGFsICA8U3ZlaW4uU2VsZGFsQHNvbGlkYXMuY29tPgoKCSogY29uZmlnL3RjLXRpYzR4LmM6IEZpeGVkIHByb3BlciBjb21tYW5kbGluZQoJcGFyYW1ldGVycy4gQWRkZWQgc3VwcG9ydCBmb3IgbmV3IG9wY29kZS1saXN0IGZvcm1hdC4gR2VuZXJhbAoJZXJyb3IgbWVzc2FnZSBmaXh1cHMuCgkoYzR4X2luc3RfYWRkKTogUmVqZWN0IGluc24gbm90IGZvciBvdXIgQ1BVCgkobWRfYmVnaW4pOiBBZGRlZCBtYXRyaXggZm9yIHNldHRpbmcgdGhlIHByb3BlciBvcGNvZGUtbGV2ZWwgJgoJZGV2aWNlLWZsYWdzIGFjY29yZGluZyB0byBjcHUgdHlwZSBhbmQgcmV2aXNpb24uIFJld3JpdGUgdGhlCglvcGNvZGUgaGFzaGVyLgoJKGM0eF9vcGVyYW5kX3BhcnNlKTogRml4IG9wY29kZSBidWcKCShjNHhfb3BlcmFuZHNfbWF0Y2gpOiBOZXcgZnVuY3Rpb24gYXJndW1lbnQuIEFkZGVkIGRyeS1ydW4KCW1lY2hhbmlzbSwgdGhhdCBpcyBvcHRpb25hbCBlcnJvciBnZW5lcmF0aW9uLiBBZGRlZCBjb25zdHJhaW50ICdpJwoJYW5kICdqJy4KCShjNHhfaW5zbl9jaGVjayk6IEFkZGVkIG5ldyBmdW5jdGlvbiBmb3IgcG9zdC12ZXJpZmljYXRpb24gb2YgdGhlCglnZW5lcmF0ZWQgaW5zbi4KCShtZF9hc3NlbWJsZSk6IENoZWNrIGFsbCBvcGNvZGVzIGJlZm9yZSBjcm9ha2luZyBiZWNhdXNlIG9mIGFuCglhcmd1bWVudCBtaXNtYXRjaC4gTmVlZCB0aGlzIHRvIGJlIGFibGUgdG8gZnVsbHkgc3VwcG9ydAoJb3J0b2dvbmFsbHkgYXJndW1lbnRzLgoJKG1kX3BhcnNlX29wdGlvbnMpOiBSZXZpc2VkIGNvbW1hbmRwcm9tcHQgc3dpY3RoZXMgYW5kIGFkZGVkIG5ldwoJb25lcy4KCShtZF9zaG93X3VzYWdlKTogQ29tcGxldGUgcmV3cml0ZSBvZiBwcmludG91dC4KCjIwMDItMTEtMTYgIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGNvbmZpZy90Yy10aWM0eC5jOiBSZW1vdmUgYzR4X3BzZXVkb19pZ25vcmUgZnVuY3Rpb24uCgkgIChjNHhfb3BlcmFuZHNfbWF0Y2gpOiBBZGRlZCBjaGVjayBmb3IgOC1iaXRzIExERiBpbnNuLiBHaXZlCgkgIHdhcm5pbmcgd2hlbiB1c2luZyBjb25zdGFudCBkaXJlY3QgYmlnZ2VyIHRoYW4gMl4xNi4gQWRkIHRoZSBuZXcKCSAgYXJndW1lbnRzLgoKMjAwMi0xMS0xMSAgQ2hyaXN0b3BoZXIgRmF5bG9yICA8Y2dmQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW46IFVzZSAuZ2RiaW5pdCB1bmRlciBDeWd3aW4uCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMTEtMTEgIENocmlzdG9waGVyIEZheWxvciAgPGNnZkByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWkzODYuaCAoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lIG9ubHkgaWYKCVNUUklDVF9QRV9GT1JNQVQuCgoyMDAyLTExLTExICBTdmVpbiBFLiBTZWxkYWwgIDxTdmVpbi5TZWxkYWxAc29saWRhcy5jb20+CgoJKiBjb25maWcvdGMtdGljNHguYzogRGVjbGFyZSBhcyBtYW55IGZ1bmN0aW9ucyBhcyBwb3NzaWJsZSBhcwoJc3RhdGljLiBNYWludGVuYW5jZSBvbiB0aGUgZ2VuZXJhbCBpbmRlbnRpbmcuIFJlbW92ZWQgdW5uZWNlc3NhcnkKCXBzZXVkby1vcHMgYW5kIGFkZGVkIG5ldyBvbmVzLiBSZW1vdmVkIG9ic29sZXRlZCBjNHhfcHNldWRvX2lnbm9yZQoJZnVuY3Rpb24uIEFkZCBzdXBwb3J0IGZvciBuZXcgRFNQLCBUTVMzMjBWQzMzLiBGaXggYnVnIGZvcgoJY29udmVydGluZyBmbG9udW0gY29uc3RhbnRzLgoJKGM0eF9kb19hbGlnbik6IEFkZCBwcm9wZXIgYWxpZ24gaGFuZGxpbmcuIFNldHVwIGFsaWduIHRvIGluc2VydAoJTk9QJ3MuCgkoYzR4X2dlbl90b193b3Jkcyk6IFN1cHBvcnQgZm9yIGV4dGVuZGVkIFRJIHR5cGUgZmxvYXRzLgoJKG1kX2F0b2YpOiBQcm9wZXIgZHVtcGluZyBvZiBtdWx0aXBsZS13b3JkIGxpdHRsZW51bXMuCgkoYzR4X2F0b2YpOiBBZGRlZCBzdXBwb3J0IGZvciBleHRlbmRlZCBUSSB0eXBlIGZsb2F0cy4KCShjNHhfc3RyaW5nZXIpOiBBZGRlZCBuZXcgZnVuY3Rpb24gdG8gaGFuZGxlIGNvbXBhY3Qgc3RyaW5ncy4KCShjNHhfZW1pdF9jaGFyKTogQWRkZWQgbmV3IGZ1bmN0aW9uIGFyZ3VtZW50IHRvIGhhbmRsZSBjdXN0b20KCWxlbmd0aCBpbnNlcnRzLCBsaWtlIHNpbmdsZS1ieXRlIHN0cmluZ3MuCgkqIGNvbmZpZy90Yy10aWM0eC5oOiBBZGQgcHJvcGVyIGFsaWduIGhhbmRsaW5nIHdpdGggTk9QJ3MuCgkqIE1ha2VmaWxlLmFtOiBBZGRlZCB0aWM0eCBkZXBlbmRlY3kKCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUKCjIwMDItMTEtMTEgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIG1hY3JvLmMgKGdldF9hbnlfc3RyaW5nKTogQ29ycmVjdCBsb2dpYyBmb3Igbm90IGdvaW5nIGJleW9uZCBlbmQKCW9mIGluLT5wdHJbXS4KCjIwMDItMTEtMTAgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGNvbmZpZy90Yy1tbWl4LmMgKGdldF9wdXRnZXRfb3BlcmFuZHMpOiBNYXJrIGJvdGggcG9zc2libGUKCW9wZXJhbmRzIGFzIGludmFsaWQgYXQgYmVnaW5uaW5nLgoKCSogY29uZmlnL3RjLW1taXguYyAobWRfY29udmVydF9mcmFnKSA8Y2FzZSBTVEFURV9HUkVHX0RFRj46CglJbml0aWFsaXplIHRhcmdldCBvZiBmaXh1cCB0byB6ZXJvLgoKMjAwMi0xMS0wNyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNyb19idWlsZF9sdWkpOiBfZ3BfZGlzcCBpcyBub3Qgc3BlY2lhbCBvbgoJTkVXQUJJLCBidXQgd2Ugc2hvdWxkIHN0aWxsIGVtaXQgSEkxNl9TIGZvciBub24tUElDIG4zMi4KCjIwMDItMTEtMDYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtYWxwaGEuYyAoYWxwaGFfdmFsaWRhdGVfZml4KTogTW92ZSBjb2RlIC4uLgoJKGFscGhhX2ZpeF9hZGp1c3RhYmxlKTogLi4uIGhlcmUuCgkqIGNvbmZpZy90Yy1hbHBoYS5oIChUQ19WQUxJREFURV9GSVgpOiBSZW1vdmUuCgoyMDAyLTExLTA3ICBFcmljIEtvaGwgIDxla29obEByei1vbmxpbmUuZGU+CgoJKiBjb25maWcvdGUtcGUuaCAoTEVYX0FUKTogQWNjZXB0IGF0LXNpZ24gKEApIGFzIGZpcnN0IGNoYXJhY3RlcgoJb2YgYSBsYWJlbC4KCjIwMDItMTEtMDUgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoc3VwcG9ydF82NGJpdF9vYmplY3RzKTogQ2hlY2sgKmwgYmVmb3JlIGl0CglpcyBmcmVlZC4KCjIwMDItMTEtMDQgIERhbm55IFNtaXRoICA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBjb25maWcvb2JqLWNvZmYuYyAob2JqLWNvZmYtc2VjdGlvbik6IFNldCBTRUNfREFUQSBhbmQKCVNFQ19MT0FEIGZsYWdzIGZvciBzZWN0aW9ucyBtYXJrZWQgYXMgJ3MnLgoKMjAwMi0xMS0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHdyaXRlLmMgKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX0FCUyk6IERlZmF1bHQgdG8gemVyby4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9MT0NBTCk6IExpa2V3aXNlIHdoZW4gRElGRl9FWFBSX09LLgoJKiBkb2MvaW50ZXJuYWxzLnRleGkgKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX0FCUyk6IERvY3VtZW50IGNoYW5nZWQKCWRlZmF1bHQuCgoJKiBkZXAtaW4uc2VkOiBGaXggdHlwby4KCjIwMDItMTAtMzAgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogY29uZmlndXJlLmluOiBVcGRhdGUgQVJNIENQVSBwYXR0ZXJucy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCjIwMDItMTAtMjkgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogaXRibC1sZXgubDogVXNlICNpbmNsdWRlIDw+IGZvciBnZW5lcmF0ZWQgaGVhZGVycy4KCSogaXRibC1vcHMuYzogTGlrZXdpc2UuCgoyMDAyLTEwLTI4ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGRvYy9nYXNwLnRleGk6IEZpeCB0eXBvIGluIGRlcHJlY2F0aW9uIG5vdGUuCgoyMDAyLTEwLTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWFybS5jICh0Y19nZW5fcmVsb2MpOiBBbGxvdyBhbiBhYnNvbHV0ZSByZWZlcmVuY2UgdG8KCV9HTE9CQUxfVEFCTEVfT0ZGU0VUXyB0byBiZSBjb252ZXJ0ZWQgaW50byBhIEdPVCByZWxvYy4KCjIwMDItMTAtMjMgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGNvbmZpZy90Yy1tbWl4LmggKG1taXhfZnJvYl9maWxlX2JlZm9yZV9hZGp1c3QpOiBEb24ndCBkZWNsYXJlLgoJKHRjX2Zyb2JfZmlsZV9iZWZvcmVfYWRqdXN0KTogRG9uJ3QgZGVmaW5lLgoJKiBjb25maWcvdGMtbW1peC5jIChtbWl4X2Zyb2JfbG9jYWxfcmVsb2MpOiBSZW1vdmUgdW51c2VkCglmdW5jdGlvbi4KCShtbWl4X2Zyb2JfZmlsZV9iZWZvcmVfYWRqdXN0KTogUmVtb3ZlIGluZWZmZWN0aXZlIGZ1bmN0aW9uLgoKMjAwMi0xMC0yMyAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBjb25maWcvdGMtY3Jpcy5jIChTSU1QTEVfRVhQUik6IE5ldyBtYWNyby4KCShjcmlzX3JlbGF4X2ZyYWcpOiBOZXcgZnVuY3Rpb24uCgkobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpIDxjYXNlIEVOQ09ERV9SRUxBWAoJKFNUQVRFX0JBU0VfUExVU19ESVNQX1BSRUZJWCwgU1RBVEVfVU5ERik+OiBQYXNzIG9uIHVucmVzb2x2ZWQKCWV4cHJlc3Npb25zIHRoYXQgd2lsbCBiZWNvbWUgYWJzb2x1dGUgZXhwcmVzc2lvbnMgdG8gcmVsYXhhdGlvbi4KCShtZF9jb252ZXJ0X2ZyYWcpIDxjYXNlIEVOQ09ERV9SRUxBWCAoU1RBVEVfQkFTRV9QTFVTX0RJU1BfUFJFRklYLAoJU1RBVEVfV09SRCk+OiBFeHBlY3Qgb25seSBhYnNvbHV0ZSBleHByZXNzaW9ucy4gIFVzZSB0aGUgc3ltYm9sCgl2YWx1ZSwgbm90IGRpc3RhbmNlIHRvIHN5bWJvbC4KCTxjYXNlIEVOQ09ERV9SRUxBWCAoU1RBVEVfQkFTRV9QTFVTX0RJU1BfUFJFRklYLCBTVEFURV9CWVRFKT46CglEaXR0by4gIENvcnJlY3QgcGxhY2VtZW50IG9mIGZpeHVwLgoJKG1kX2Fzc2VtYmxlKTogVXNlIFNJTVBMRV9FWFBSIHdoZW4gZGlzc2VjdGluZyBleHByZXNzaW9ucy4KCShnZW5fYmRhcCk6IERpdHRvLgoJKiBjb25maWcvdGMtY3Jpcy5oIChjcmlzX3JlbGF4X2ZyYWcpOiBEZWNsYXJlLgoJKG1kX3JlbGF4X2ZyYWcpOiBEZWZpbmUuCgoyMDAyLTEwLTIyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL29iai1lbGYuYyAoc3BlY2lhbF9zZWN0aW9ucyk6IFVzZSBjb3JyZWN0IHR5cGVzIGZvciBpbml0CglhcnJheSBzZWN0aW9ucy4KCShvYmpfZWxmX2NoYW5nZV9zZWN0aW9uKTogRG9uJ3QgbWVzcyB3aXRoIGluaXQgYXJyYXkgc2VjdGlvbiB0eXBlLgoKMjAwMi0xMC0yMSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19uZWVkX2VsZl9hZGRlbmRfZml4dXApOiBSZXR1cm4gdHJ1ZQoJZm9yIHJlbG9jcyBhZ2FpbnN0IHN5bWJvbHMgaW4gYSBtZXJnZWQgc2VjdGlvbi4KCjIwMDItMTAtMTggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWRfYmVnaW4pOiBBZGQgJGZjYyByZWdpc3RlcnMgdG8gdGhlIHN5bWJvbAoJdGFibGUgYXMgcmVnaXN0ZXIgbmFtZXMuCgoyMDAyLTEwLTE4ICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiBjb25maWcvdGMtczM5MC5jIChtZF9wYXJzZV9vcHRpb24pOiBTZXQgczM5MF9hcmNoX3NpemUgdG8gMzIKCWZvciBvcHRpb24gLW0zMS4KCjIwMDItMTAtMTggIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGV4cHIuYyAob3BlcmFuZCk6IEFkZCBzdXBwb3J0IGZvciBuLm5uIGZsb251bXMuCgoyMDAyLTEwLTE3ICBKb2hhbm5lcyBTdGV6ZW5iYWNoICA8anNAY29udmVyZ2VuY2UuZGU+CgoJKiBpdGJsLXBhcnNlLnkgKGVudHJ5KTogUHJvdmlkZSBlbXB0eSBhY3Rpb24uCgoyMDAyLTEwLTE2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlndXJlLmluIChCRkRWRVJfSCk6IFNldCBhbmQgc3Vic3QuCgkqIGRlcC1pbi5zZWQ6IFJlcGxhY2UgYmZkdmVyLmggd2l0aCAkKEJGRFZFUl9IKS4KCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKEJGRFZFUl9IKTogRGVmaW5lLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTEwLTE1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWkzODYuaCAoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZSBmb3IgUEUgdG9vLgoKMjAwMi0xMC0xNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCShDUFVfT0JKX1ZBTElEKTogc2g2NCBjb2ZmIGlzIGludmFsaWQuCgkqIGFzLmM6ICNpbmNsdWRlICJiZmR2ZXIuaCIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWcuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTEwLTE0ICBNb21jaGlsIFZlbGlrb3YgIDx2ZWxjb0BmYWRhdGEuYmc+CgoJKiBjb25maWcvdGMtdjg1MC5jIChDSEVDS18pOiBSZW1vdmUgdG9rZW4gcGFzdGluZyBvcGVyYXRvci4KCjIwMDItMTAtMTQgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAobWlwczY0dnItZWxmLCBtaXBzNjR2cmVsLWVsZik6IE5ldyBjb25maWcuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMTAtMTMgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoJICAgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoc19ncGR3b3JkKTogTmV3IGZ1bmN0aW9uLgoJKG1pcHNfcHNldWRvX3RhYmxlKTogQWRkIC5ncGR3b3JkLgoJKG1pcHNfbmVlZF9lbGZfYWRkZW5kX2ZpeHVwKTogbmV2ZXIgZm9yIE5FV0FCSS4KCShtZF9hcHBseV9maXgzKTogRG9uJ3QgbWFyayBCRkRfUkVMT0M2NCBhZnRlciBHUFJFTDE2IG9yCglHUFJFTDMyIGFzIGRvbmUuCgkoc19jcGFkZCk6IEdlbmVyYXRlIC5jcGFkZCBvbiBORVdBQkkuCgoyMDAyLTEwLTEyICBFbGlhcyBBdGhhbmFzb3BvdWxvcyAgPGVhdGhhbkBvdGVuZXQuZ3I+CgoJKiBjb25maWcvdGMtcHBjLmMgKHBwY19jbGVhbnVwKTogTWFrZSAnaScgdW5zaWduZWQgaW50LgoKMjAwMi0xMC0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5oIChtaXBzX3JlbGF4X2ZyYWcpOiBUYWtlIHNlZ21lbnQgYXMgYXJndW1lbnQuCgkobWRfcmVsYXhfZnJhZyk6IEFkanVzdCBtYWNyby4KCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19yZWxheF9icmFuY2gpOiBOZXcgdmFyaWFibGUuCgkoUkVMQVhfQlJBTkNIX0VOQ09ERSwgUkVMQVhfQlJBTkNIX1AsIFJFTEFYX0JSQU5DSF9MSUtFTFksCglSRUxBWF9CUkFOQ0hfTElOSywgUkVMQVhfQlJBTkNIX1RPT0JBUik6IE5ldy4KCShSRUxBWF9NSVBTMTZfUCk6IEFkanVzdC4KCShhcHBlbmRfaW5zbik6IEVtaXQgYnJhbmNoIHRvIG5vbi1jb25zdGFudCBpbiBhIGZyYWdfdmFyIGlmCglicmFuY2gtcmVsYXhhdGlvbiBpcyBkZXNpcmFibGUgYW5kIHBvc3NpYmxlLgoJKE9QVElPTl9SRUxBWF9CUkFOQ0gsIE9QVElPTl9OT19SRUxBWF9CUkFOQ0gpOiBOZXcgb3B0aW9ucy4KCShPUFRJT05fRUxGX0JBU0UpOiBBZGp1c3QuCgkobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlIG5ldyBvcHRpb25zLgoJKG1kX2FwcGx5X2ZpeDMpOiBVcGRhdGUgY29tbWVudCBvbiBFTUJFRERFRF9QSUMgY29uZGl0aW9uYWwKCWJyYW5jaCByZWxheGF0aW9uLgoJKHJlbGF4ZWRfYnJhbmNoX2xlbmd0aCk6IE5ldyBmdW5jdGlvbi4KCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IEhhbmRsZSBicmFuY2ggZnJhZ3MuCgkobWlwc19yZWxheF9mcmFnKTogTGlrZXdpc2UuCgkobWRfY29udmVydF9mcmFnKTogSGFuZGxlIGJyYW5jaCBmcmFncy4gIFdhcm4gaWYgYnJhbmNoIGlzCglyZWxheGVkLgoKMjAwMi0xMC0xMSAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBjb25maWcvdGMtc2guYyAoc2hfZm9yY2VfcmVsb2NhdGlvbik6IE1ha2Ugc3VyZSBUTFMgcmVsb2NzIGdldAoJZW1pdHRlZC4KCShtZF9hcHBseV9maXgzKTogQWRkIFRMUyByZWxvY3MuCgkoc2hfcGFyc2VfbmFtZSk6IFN1cHBvcnQgQFRMU0dELCBAVExTTERNLCBAR09UVFBPRkYsIEBUUE9GRiBhbmQKCUBEVFBPRkYuCgoyMDAyLTEwLTExICBNaWNoZWwgU2l4ICA8bXNpeEBjY3IuanVzc2lldS5mcj4KCSAgICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWkzODYuYyAob3V0cHV0X2p1bXApOiBTZXQgZnhfc2lnbmVkIGZvciBsb29wL2pjeHouCgkobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiBMaWtld2lzZSBmb3IgOCBiaXQgYnJhbmNoZXMuCgpUaHUgT2N0IDEwIDE0OjMxOjMwIDIwMDIgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tPgoKCSogY29uZmlnL3RjLXNoLmMgKGFzc2VtYmxlX3BwaSk6IEluaXRpYWxpemUgcmVnX3ggLyByZWdfeSAvIHJlZ19uCglpbnNpZGUgbG9vcC4KCjIwMDItMTAtMDkgIFJpY2hhcmQgU2hhbm4gPHJpY2hhcmQuc2hhbm5Ac3VwZXJoLmNvbT4KCSAgICBTdGVwaGVuIENsYXJrZSA8c3RlcGhlbi5jbGFya2VAc3VwZXJoLmNvbT4KCgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNoNjRfdGFyZ2V0X2Zvcm1hdCk6IEFkZCBzdXBwb3J0IGZvciBzaDY0CglMaW51eCBlbnZpcm9ubWVudC4KCjIwMDItMTAtMDMgIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCSogY29udGlnL3RjLXNoLmMgKHNoX2xvY2FsX3BjcmVsKTogTmV3LgoJKHNoX2ZvcmNlX3JlbG9jYXRpb24pOiBVc2Ugc2hfbG9jYWxfcGNyZWwuCgkobWRfcGNyZWxfZnJvbV9zZWN0aW9uKTogQ2hlY2sgdGhlIHJlbG9jYXRpb24gdHlwZSB3aGV0aGVyIGl0CglzaG91bGQgYmUgcmVzb2x2ZWQgbG9jYWxseS4gVXNlIFNfRk9SQ0VfUkVMT0MuCgoyMDAyLTEwLTAxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLW1pcHMuaCAoVENfRk9SQ0VfUkVMT0NBVElPTl9TVUJfU0FNRSk6IERlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OKTogVGlkeSBhcmcuCgoyMDAyLTA5LTMwICBHYXZpbiBSb21pZy1Lb2NoICA8Z2F2aW5AcmVkaGF0LmNvbT4KCSAgICBLZW4gUmFlYnVybiAgPHJhZWJ1cm5AY3lnbnVzLmNvbT4KCSAgICBBbGR5IEhlcm5hbmRleiAgPGFsZHloQHJlZGhhdC5jb20+CgkgICAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgkgICAgTWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQHJlZGhhdC5jb20+CgkgICAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgkgICAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogZG9jL2MtbWlwcy50ZXhpOiBBZGQgZW50cmllcyBmb3IgLW1hcmNoPXZyNDEyMCx2cjQxMzAsdnI0MTgxLAoJdnI1NDAwIGFuZCB2cjU1MDAuICBBZGQgZW50cnkgZm9yIC1tZml4LXZyNDEyMi1idWdzLgoJKiBjb25maWcvdGMtbWlwcy5jIChDUFVfSEFTX0RST1IsIENQVV9IQVNfUk9SKTogTmV3IG1hY3Jvcy4KCShoaWxvX2ludGVybG9ja3MpOiBUcnVlIGZvciBDUFVfVlI1NTAwLgoJKGdwcl9pbnRlcmxvY2tzLCBjb3BfaW50ZXJsb2Nrcyk6IFRydWUgZm9yIENQVV9WUjU0MDAgYW5kIENQVV9WUjU1MDAuCgkobWlwc19maXhfdnI0MTIyX2J1Z3MpOiBOZXcuCgkoYXBwZW5kX2luc24pOiBXb3JrIGFyb3VuZCA0MTIyIGVycm9ycyBpZiBtaXBzX2ZpeF92cjQxMjJfYnVncy4KCShtaXBzX2VtaXRfZGVsYXlzKTogTGlrZXdpc2UuCgkobWFjcm8yKSBbTV9EUk9MSV06IFVzZSBkcm9yIG9yIGRyb3IzMiBpZiBDUFVfSEFTX0RST1IuCglbTV9ST0xJXTogTGlrZXdpc2Ugcm9yIGlmIENQVV9IQVNfUk9SLgoJKHZhbGlkYXRlX21pcHNfaW5zbiwgbWlwc19pcCk6IEhhbmRsZSAnWycsICddJywgJ2UnIGFuZCAnJScuCgkoT1BUSU9OX0ZJWF9WUjQxMjIsIE9QVElPTl9OT19GSVhfVlI0MTIyKTogTmV3IG9wdGlvbnMuCgkobWRfbG9uZ29wdHMpOiBBZGQgLW1maXgtdnI0MTIyLWJ1Z3MgYW5kIC1uby1tZml4LXZyNDEyMi1idWdzLgoJKE9QVElPTl9FTEZfQkFTRSk6IEJ1bXAuCgkobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlIHRoZSBuZXcgb3B0aW9ucy4KCShtaXBzX2NwdV9pbmZvX3RhYmxlKTogQWRkIGVudHJpZXMgZm9yIHZyNDEyMCwgdnI0MTMwLCB2cjQxODEsCgl2cjU0MDAgYW5kIHZyNTUwMC4KCjIwMDItMDktMjkgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWRfYXBwbHlfZml4Myk6IFN1YnRyYWN0IHRoZSBzeW1ib2wgdmFsdWUKCXR3aWNlIGlmIGhvd3RvLT5wY3JlbF9vZmZzZXQgaXMgdHJ1ZS4KCjIwMDItMDktMjggIE1hdHQgVGhvbWFzICA8bWF0dEAzYW0tc29mdHdhcmUuY29tPgoJICAgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWcvdGMtdmF4LmMgKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogT25seSB0cnkgdG8KCWNvbnZlcnQgdW5kZWZpbmVkIHJlZmVyZW5jZXMgdG8gR09UMzIvUExUMzIgaWYgUElDIGNvZGUgaXMKCXJlcXVlc3RlZC4gIEZpeCBjb21tZW50LgoKMjAwMi0wOS0yNyAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBjb25maWcvdGMtc2guYyAoc2hfZm9yY2VfcmVsb2NhdGlvbik6IFJldHVybiAwIGZvcgoJc29tZSBQQyByZWxhdGl2ZSByZWxvY2F0aW9ucyB3aGVuIG5vdCByZWxheGluZy4KCjIwMDItMDktMjYgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAodGNfaTM4Nl9maXhfYWRqdXN0YWJsZSk6IEFkZCB4ODYtNjQgVExTIHJlbG9jcy4KCURlZmluZSB0aGVtIGlmIG5vdCBCRkRfQVNTRU1CTEVSLgoJKGxleF9nb3QpOiBIYW5kbGUgQHRsc2dkLCBAZHRwb2ZmIGFuZCBAdHBvZmYgaW4gNjQtYml0IG1vZGUsIGFkZAoJQHRsc2xkLgoJKG1kX2FwcGx5X2ZpeDMpOiBObyBhZGRlbmQgZm9yIEJGRF9SRUxPQ19YODZfNjRfVExTR0QsCglCRkRfUkVMT0NfWDg2XzY0X1RMU0xEIGFuZCBCRkRfUkVMT0NfWDg2XzY0X0dPVFRQT0ZGLgoJKHRjX2dlbl9yZWxvYyk6IEhhbmRsZSB4ODYtNjQgVExTIHJlbG9jcy4KCjIwMDItMDktMjcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtYXZyLmMgKG1kX2FwcGx5X2ZpeDMpOiBSZWluc3RhdGUgY29kZSBoYW5kbGluZyBwY3JlbAoJZml4dXBzIHRvIGN1cnJlbnQgb3IgYWJzb2x1dGUgc2VjdGlvbi4KCjIwMDItMDktMjYgIEppbSBXaWxzb24gIDx3aWxzb25AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy12ODUwLmMgKHY4NTBfb2Zmc2V0KTogVXNlIGZyYWdfdmFyIGluc3RlYWQgb2YgZnJhZ19ub3dfZml4CglhbmQgZnJhZ19tb3JlLgoKMjAwMi0wOS0yNiAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKENQVV9IQVNfTUlQUzE2KTogQWRkIG1pcHMtbHNpLWVsZiBhcyBNSVBTMTYKCWNhcGFibGUgY29uZmlndXJhdGlvbi4KCShtYWNyb19idWlsZCk6IENoZWNrIGZvciBNSVBTMTYgY2FwYWJpbGl0eSwgbm90IGZvciBhY3R1YWwgTUlQUzE2IGNvZGUKCWdlbmVyYXRpb24uCgkobWlwc19pcCk6IExpa2V3aXNlLgoKMjAwMi0wOS0yNiAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKGFwcGVuZF9pbnNuKTogRml4IGp1bXAgb3ZlcmZsb3cgY2hlY2suCgoyMDAyLTA5LTI0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWkzODYuYyAocHJvY2Vzc19vcGVyYW5kcyk6IFdhcm4gYWJvdXQgImxlYSIgc2VnbWVudAoJb3ZlcnJpZGVzLgoKMjAwMi0wOS0yMiAgTWFyayBFbGJyZWNodCAgPHNub3diYWxsM0Bzb2Z0aG9tZS5uZXQ+CgoJKiB3cml0ZS5jOiBEZWxldGUgc2V0X3NlZ21lbnRfdm1hIGFuZCBwcm90b3R5cGUuIFVwZGF0ZSBhbGwgY2FsbGVycy4KCjIwMDItMDktMjEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChtZF9hcHBseV9maXgzKTogUmVwbGFjZSBTX0lTX0VYVEVSTkFMLAoJU19JU19XRUFLIGV0Yy4gd2l0aCBTX0ZPUkNFX1JFTE9DIGNhbGwuICBDb3JyZWN0IGNvbW1lbnQuCglSZW5hbWUgImZzZWciIHRvICJzeW1fc2VnIi4KCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZG9jL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wOS0yMCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHN5bWJvbHMuYyAoY29sb24pOiBEbyBub3QgYWxsb3cgc3ltYm9scyB0byBiZSBjcmVhdGVkIGluIHRoZQoJYWJzb2x1dGUgc2VjdGlvbiBpZiBXT1JLSU5HX0RPVF9XT1JEIGlzIG5vdCBkZWZpbmVkIGFuZAoJbmV3X2Jyb2tlbl93b3JkcyB3b3VsZCByZXF1aXJlIGEgbmV3IGZyYWcgdG8gYmUgY3JlYXRlZC4KCjIwMDItMDktMjAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBleHByLmMgKGV4cHIpOiBTaW1wbGlmeSBmb28tZm9vIGhlcmUuCgkoY2xlYW5fdXBfZXhwcmVzc2lvbik6IFJlbW92ZSBPX3N1YnRyYWN0IGNvZGUuCgoJKiB3cml0ZS5oIChzdHJ1Y3QgZml4KTogQWRkIGZ4X2RvdF92YWx1ZS4KCShkb3RfdmFsdWUpOiBEZWNsYXJlLgoJKiB3cml0ZS5jIChkb3RfdmFsdWUpOiBOZXcgdmFyLgoJKGZpeF9uZXdfaW50ZXJuYWwpOiBTYXZlIGRvdF92YWx1ZSBhcyBmeF9kb3RfdmFsdWUuCgkoZml4dXBfc2VnbWVudCk6IEFkanVzdCBmeF9vZmZzZXQgdXNpbmcgZnhfZG90X3ZhbHVlLgoJKiBleHByLmMgKGV4cHIpOiBVcGRhdGUgZG90X3ZhbHVlLgoKMjAwMi0wOS0xOSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jICh0Y19pMzg2X2ZpeF9hZGp1c3RhYmxlKTogSGFuZGxlCglCRkRfUkVMT0NfMzg2X1RMU19JRSBhbmQgQkZEX1JFTE9DXzM4Nl9UTFNfR09USUUuCgkoQkZEX1JFTE9DXzM4Nl9UTFNfSUUsIEJGRF9SRUxPQ18zODZfVExTX0dPVElFKTogRGVmaW5lIHRvIDAKCWlmIG5vdCBkZWZpbmVkLgoJKGxleF9nb3QpOiBIYW5kbGUgQEdPVE5UUE9GRiBhbmQgQElORE5UUE9GRi4KCShtZF9hcHBseV9maXgzLCB0Y19nZW5fcmVsb2MpOiBIYW5kbGUgQkZEX1JFTE9DXzM4Nl9UTFNfSUUgYW5kCglCRkRfUkVMT0NfMzg2X1RMU19HT1RJRS4KCjIwMDItMDktMTkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtYWxwaGEuYyAobWRfcGNyZWxfZnJvbSk6IE9ubHkgYWRqdXN0IHNwZWNpYWwgZm9yCglicmFuY2ggdHlwZSByZWxvY3MuCgkoYWxwaGFfZm9yY2VfcmVsb2NhdGlvbik6IERvbid0IHNwZWNpYWwtY2FzZSBicmFuY2ggdHlwZSByZWxvY3MuCgoyMDAyLTA5LTE5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW02OGsuYyAoc2VsZWN0X2NvbnRyb2xfcmVncyk6IEhhbmRsZSBzaXR1YXRpb24gd2hlcmUKCWFyY2hpdGVjdHVyZSBoYXMgbm90IHlldCBiZWVuIHNlbGVjdGVkLgoKMjAwMi0wOS0xOCAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKElTX1NFWFRfMzJCSVRfTlVNKTogTW92ZSBjbG9zZXIgdG8gdG9wIG9mIGZpbGUuCgkoSVNfU0VYVF8xNkJJVF9OVU0pOiBOZXcgbWFjcm8uCgkobWFjcm9fYnVpbGRfbGRzdF9jb25zdG9mZnNldCk6IE5ldyBmdW5jdGlvbiwgdG8gYnVpbGQgYSBzZXQgb2YKCWluc3RydWN0aW9ucyB0byBkbyBhIGxvYWQgb3Igc3RvcmUgZnJvbSBhIGNvbnN0YW50IG9mZnNldCByZWxhdGl2ZQoJdG8gYSBnaXZlbiByZWdpc3Rlci4KCShtYWNybywgc19jcHJlc3RvcmUpOiBVc2UgbWFjcm9fYnVpbGRfbGRzdF9jb25zdG9mZnNldCB0byBpbXBsZW1lbnQKCS5jcHJlc3RvcmUgcHNldWRvLW9wLgoKMjAwMi0wOS0xOCAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1kX2FwcGx5X2ZpeDMpOiBKdXN0IHJldHVybiBmb3IgQkZEX1JFTE9DXzguCgoyMDAyLTA5LTE4ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoc19jaGFuZ2Vfc2VjdGlvbik6IEZpeCBwYXJzaW5nLiBDb2RlIGNsZWFudXAuCgoyMDAyLTA5LTE3ICBTdGFuIENveCAgPHNjb3hAcmVkaGF0LmNvbT4KCgkqIHRjLW1pcHMuYyAobG9hZF9hZGRyZXNzKTogVXNlIEJGRF9SRUxPQ19NSVBTX0dPVF9ESVNQIGZvciBuZXdhYmkuCgkobWFjcm8pOiBMaWtld2lzZSBmb3IgbGEuICBMaWtld2lzZSBmb3IgbGQuCgkobWlwc19hZnRlcl9wYXJzZV9hcmdzKTogTWFrZSAteGdvdCBvcHRpb25hbCwgbm90IHRoZSBkZWZhdWx0LgoJKG1kX2FwcGx5X2ZpeDMpOiBBbGxvdyBjb21wb3NpdGUgcmVsb2NhdGlvbiB0byBzZXQgdXAgZ3AuCgkodGNfZ2VuX3JlbG9jKTogQWxsb3cgcmVsYXhpbmcgZm9yIG5ld2FiaS4KCVJlbGF4IFJfTUlQU19DQUxMMTYgdG8gUl9NSVBTX0dPVF9QQUdFL1JfTUlQU19HT1RfT0ZTVCBpZiBsb2NhbC4KCVJlbGF4IFJfTUlQU19HT1QxNi9SX01JUFNfTE8xNiB0byBSX01JUFNfR09UX0RJU1AgaWYgbG9jYWwuCgoyMDAyLTA5LTE3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWFybS5jIChtZF9hcHBseV9maXgzKTogTm90ZSB0aGF0IGFuIGltcGxlbWVudGVkCglCRkRfUkVMT0NfQVJNX0lNTUVESUFURSBoYXMgYmVlbiBkb25lLgoJKHRjX2dlbl9yZWxvYyk6IERvIG5vdCBpc3N1ZSByZWxvYyBudW1iZXIgb2YgdW5pbXBsZW1lbnRlZAoJQkZEX1JFTE9DX0FSTV9JTU1FRElBVEUgYW5kIEJGRF9SRUxPQ19BUk1fT0ZGU0VUX0lNTSByZWxvY3MgLQoJdGhlaXIgbmFtZSBpcyBhbHJlYWR5IGluIHRoZSBlcnJvciBtZXNzYWdlIC0gcGx1cyByZW1vdmUgdGhlbQoJZnJvbSB0aGUgZGVmYXVsdCBjYXNlLgoKCSogY29uZmlnL3RjLWFybS5jIChkb19sZG1zdG0pOiBXYXJuIGFib3V0IHVucHJlZGljdGFibGUKCWJlaGF2aW9yIG9mIGluc3RydWN0aW9ucy4KCjIwMDItMDktMTcgIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGNvbmZpZy90Yy10aWM0eC5jOiBBZGQgZnVuY3Rpb24gZGVjbGFyYXRpb25zIGFuZCBBVFRSSUJVVEVfVU5VU0VELgoJQ29udmVydCBmdW5jdGlvbnMgdG8gSyZSIGZvcm1hdC4KCjIwMDItMDktMTcgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChwZHJfc2VnKTogRGVmaW5lIG9ubHkgZm9yIEVMRi4KCShzX2NoYW5nZV9zZWN0aW9uKTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4gRG9uJ3QgdXNlIGZvciBub25FTEYuCgoyMDAyLTA5LTE3ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL29iai1lbGYuYyAob2JqX2VsZl9jaGFuZ2Vfc2VjdGlvbik6IE1vdmUgcHJvdG90eXBlIHRvCglvYmotZWxmLmgKCSogY29uZmlnL29iai1lbGYuaCAob2JqX2VsZl9jaGFuZ2Vfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMi0wOS0xNiAgRWxpYXMgQXRoYW5hc29wb3Vsb3MgIDxlYXRoYW5Ab3RlbmV0LmdyPgoKCSogZHdhcmYyZGJnLmMgKG91dF9kZWJ1Z19hYmJyZXYpOiBBZGQgc3VwcG9ydCBmb3IgdGhlIERXX0FUX25hbWUgZmllbGQuCgkob3V0X2RlYnVnX2luZm8pOiBMaWtld2lzZS4KCjIwMDItMDktMTYgIEJydW5vIEhhaWJsZSAgPGJydW5vQGNsaXNwLm9yZz4KCgkqIGNvbmZpZy90Yy1pMzg2LmggKEVMRl9UQVJHRVRfRk9STUFUKTogTmV3IG1hY3JvLgoJKFRBUkdFVF9GT1JNQVQpOiBVc2UgRUxGX1RBUkdFVF9GT1JNQVQgaW5zdGVhZCBvZiAiZWxmMzItaTM4NiIuCgkqIGNvbmZpZy90Yy1pMzg2LmMgKGkzODZfdGFyZ2V0X2Zvcm1hdCk6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtYWxwaGEuaCAoRUxGX1RBUkdFVF9GT1JNQVQpOiBOZXcgbWFjcm8uCgkoVEFSR0VUX0ZPUk1BVCk6IFVzZSBFTEZfVEFSR0VUX0ZPUk1BVCBpbnN0ZWFkIG9mICJlbGY2NC1hbHBoYSIuCgoyMDAyLTA5LTEzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXBwYy5jIChtZF9hc3NlbWJsZSk6IERvIG5vdCBjb3VudCBGQUtFIG9wZXJhbmRzCgl3aGVuIGRlY2lkaW5nIGlmIGFueSBvcGVyYW5kcyBoYXZlIGJlZW4gc2tpcHBlZC4KCjIwMDItMDktMTEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBORVdTOiBOZXcgVEkgcG9ydCBzdXBwb3J0cyBib3RoIEM0eCBhbmQgQzN4IHNlcmllcyBvZiBEU1BzLgoKCSogcG8vdHIucG86IFVwZGF0ZWQgVHVya2lzaCB0cmFuc2xhdGlvbi4KCjIwMDItMDktMTEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAobWRfYXBwbHlfZml4Myk6IEFsbG93IGFkZGVuZCBmb3IKCUJGRF9SRUxPQ18zODZfVExTX0xET18zMiwgQkZEX1JFTE9DXzM4Nl9UTFNfTEUgYW5kCglCRkRfUkVMT0NfMzg2X1RMU19MRV8zMi4KCjIwMDItMDktMDUgIEplZmYgTGF3ICA8bGF3QHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtaHBwYS5jIChtZF9hcHBseV9maXgzKTogRG9uJ3Qgc2V0IGZ4X2RvbmUgZm9yCgltYXJrZXIgcmVsb2NhdGlvbnMgc3VjaCBhcyBFTlRSWS9FWElULgoJKiBjb25maWcvdGMtaHBwYS5oIChNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbml0aW9uIGFwcGxpZXMKCXRvIGJvdGggT0JKX0VMRiBhbmQgT0JKX1NPTS4KCjIwMDItMDktMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkb2MvaW50ZXJuYWxzLnRleGkgKG1kX2FwcGx5X2ZpeDMpOiBFeHBhbmQuCgkoVENfVkFMSURBVEVfRklYLCBUQ19GT1JDRV9SRUxPQ0FUSU9OLCBUQ19GT1JDRV9SRUxPQ0FUSU9OX0FCUywKCVRDX0ZPUkNFX1JFTE9DQVRJT05fTE9DQUwsIFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX1NBTUUsCglUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9BQlMsIFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX0xPQ0FMLAoJVENfVkFMSURBVEVfRklYX1NVQiwgTURfQVBQTFlfU1lNX1ZBTFVFLCBTX0ZPUkNFX1JFTE9DLAoJRVhURVJOX0ZPUkNFX1JFTE9DKTogRG9jdW1lbnQuCgkoVENfSEFORExFU19GWF9ET05FLCBvYmpfZml4X2FkanVzdGFibGUpOiBSZW1vdmUuCgkqIGFzLmg6IERvbid0IGluY2x1ZGUgc3RydWMtc3ltYm9sLmggZm9yIGFyYy4KCShJU19FTEYpOiBEZWZpbmUuCgkqIGNnZW4uYyAoZ2FzX2NnZW5fbWRfYXBwbHlfZml4Myk6IFJlbW92ZSAqdmFsUCBmdWRnZXMgYW5kIGNvZGUgdG8KCXN1YnRyYWN0IGFic29sdXRlIHN5bWJvbC4KCSogb2JqLmggKHN0cnVjdCBmb3JtYXRfb3BzKTogQWRkIGZyb2JfZmlsZV9iZWZvcmVfZml4LgoJKiBzdWJzZWdzLmMgKHNlY3Rpb25fc3ltYm9sKTogU2V0IEJTRl9TRUNUSU9OX1NZTSBmbGFnLgoJKiBzeW1ib2xzLmMgKFNfRk9SQ0VfUkVMT0MpOiBOZXcgZnVuY3Rpb24uCgkqIHN5bWJvbHMuaCAoU19GT1JDRV9SRUxPQyk6IERlY2xhcmUuCgkqIHdyaXRlLmMgKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBDaGFuZ2UgZGVmYXVsdC4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX0FCUyk6IERlZmluZS4KCShUQ19SRUxPQ19SVFNZTV9MT0NfRklYVVApOiBEb24ndCBkZWZpbmUuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9MT0NBTCk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9TRUNUSU9OKTogRG9uJ3QgZGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX1NBTUUpOiBEZWZpbmUgdGhpcyBpbnN0ZWFkLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX0FCUyk6IERlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9MT0NBTCk6IERlZmluZS4KCShUQ19WQUxJREFURV9GSVhfU1VCKTogRGVmaW5lLgoJKFRDX0ZJWF9BREpVU1RBQkxFKTogRG9uJ3QgZGVmaW5lLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoYWJzX3NlY3Rpb25fc3ltKTogTmV3IHZhcmlhYmxlLgoJKGFkanVzdF9yZWxvY19zeW1zKTogVXNlIFNfRk9SQ0VfUkVMT0MuICBSZW1vdmUgb2JqX2ZpeF9hZGp1c3RhYmxlCgljYWxsLiAgRG9uJ3Qgc3ltYm9sX21hcmtfdXNlZF9pbl9yZWxvYyBoZXJlLiAgU2ltcGxpZnkgbGlua19vbmNlIHRlc3RzLgoJRG9uJ3QgcHV0IHRoZSBhYnNvbHV0ZSBzZWN0aW9uIHN5bSBvbiBmaXh1cHMgaGVyZS4KCShmaXhfc2VnbWVudCk6IE5ldyBmdW5jdGlvbi4KCSh3cml0ZV9yZWxvY3MpOiBEb24ndCBjYWxsIGZpeHVwX3NlZ21lbnQgZnJvbSBoZXJlLgoJKHdyaXRlX29iamVjdF9maWxlKTogSW5zdGVhZCBjYWxsIHRjX2Zyb2JfZmlsZV9iZWZvcmVfZml4LAoJb2JqX2Zyb2JfZmlsZV9iZWZvcmVfZml4LCBhbmQgZml4X3NlZ21lbnQgcHJpb3IgdG8gc3ltYm9sIHRhYmxlIGNvZGUuCglEb24ndCBvdXRwdXQgdGhlIGFic29sdXRlIHNlY3Rpb24gc3ltYm9sLgoJKGZpeHVwX3NlZ21lbnQpOiBSZXdyaXRlLgoJKiB3cml0ZS5oIChhYnNfc2VjdGlvbl9zeW0pOiBEZWNsYXJlLgoJKiBjb25maWcvb2JqLWFvdXQuYyAob2JqX2FvdXRfZnJvYl9maWxlX2JlZm9yZV9maXgpOiBSZW5hbWUgZnJvbQoJb2JqX2FvdXRfZnJvYl9maWxlLgoJKGFvdXRfZm9ybWF0X29wcyk6IEFkanVzdCB0byBzdWl0LgoJKiBjb25maWcvb2JqLWFvdXQuaCAob2JqX2Zyb2JfZmlsZSk6IERvbid0IGRlZmluZS4KCShvYmpfZnJvYl9maWxlX2JlZm9yZV9maXgpOiBEZWZpbmUuCgkob2JqX2FvdXRfZnJvYl9maWxlX2JlZm9yZV9maXgpOiBSZW5hbWUgZnJvbSBvYmpfYW91dF9mcm9iX2ZpbGUuCgkoU19GT1JDRV9SRUxPQyk6IERlZmluZS4KCSogY29uZmlnL29iai1ib3V0LmggKFNfRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkqIGNvbmZpZy9vYmotY29mZi5jIChjb2ZmX2Zvcm1hdF9vcHMpOiBJbml0IG5ldyBmaWVsZC4KCSogY29uZmlnL29iai1jb2ZmLmg6IEZvcm1hdHRpbmcgZml4ZXMuCgkob2JqX3NlY19zeW1fb2tfZm9yX3JlbG9jKTogRGVmaW5lLgoJKFNfRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkqIGNvbmZpZy9vYmotZWNvZmYuYyAoZWNvZmZfZnJvYl9maWxlX2JlZm9yZV9maXgpOiBTcGxpdCBvdXQgLi4KCShlY29mZl9mcm9iX2ZpbGUpOiAuLiBmcm9tIGhlcmUuCgkoZWNvZmZfZm9ybWF0X29wcyk6IEFkZCBuZXcgZnVuY3Rpb24uCgkqIGNvbmZpZy9vYmotZWNvZmYuaCAoZWNvZmZfZnJvYl9maWxlX2JlZm9yZV9maXgpOiBEZWNsYXJlLgoJKG9ial9mcm9iX2ZpbGVfYmVmb3JlX2ZpeCk6IERlZmluZS4KCSogY29uZmlnL29iai1lbGYuYyAoZWxmX2Zvcm1hdF9vcHMpOiBJbml0IG5ldyBmaWVsZC4KCSogY29uZmlnL29iai1lbGYuaCAob2JqX3NlY19zeW1fb2tfZm9yX3JlbG9jKTogRXhwYW5kIGNvbW1lbnQuCgkqIGNvbmZpZy9vYmotaWVlZS5oOiBGb3JtYXR0aW5nIGZpeGVzLgoJKFNfRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkqIGNvbmZpZy9vYmotbXVsdGkuaCAob2JqX2Zyb2JfZmlsZV9iZWZvcmVfZml4KTogRGVmaW5lLgoJKiBjb25maWcvb2JqLXZtcy5oIChTX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKiBjb25maWcvdGMtYWxwaGEuYyAobWRfYXBwbHlfZml4Myk6IENvcnJlY3QgR1BESVNQIGNvbW1lbnQuCgkoYWxwaGFfZm9yY2VfcmVsb2NhdGlvbik6IFVzZSBTX0ZPUkNFX1JFTE9DLCBhbmQgZG9uJ3QgcmV0dXJuIDAKCWZvciBCRkRfUkVMT0NfMzIgYW5kIEJGRF9SRUxPQ182NC4KCShhbHBoYV9maXhfYWRqdXN0YWJsZSk6IFJlbW92ZSBleHRlcm4gYW5kIHdlYWsgdGVzdHMuCgkoYWxwaGFfYmVmb3JlX2ZpeCk6IFJlbmFtZSBmcm9tIGFscGhhX2FkanVzdF9zeW10YWIuCgkoYWxwaGFfYWRqdXN0X3JlbG9jcyk6IFJlbmFtZSBmcm9tIGFscGhhX2FkanVzdF9zeW10YWJfcmVsb2NzLgoJKiBjb25maWcvdGMtYWxwaGEuaCAoc3RydWN0IGZpeCwgc3RydWN0IGFscGhhX3JlbG9jX3RhZyk6IERlY2xhcmUuCgkoVENfVkFMSURBVEVfRklYKTogVHdlYWsgcGFyYW0gbmFtZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OLCB0Y19maXhfYWRqdXN0YWJsZSk6IExpa2V3aXNlLgoJKFRDX1JFTE9DX1JUU1lNX0xPQ19GSVhVUCk6IERvbid0IGRlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX0xPQ0FMKTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCShNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkodGNfYWRqdXN0X3N5bXRhYik6IERvbid0IGRlZmluZS4KCShhbHBoYV9hZGp1c3Rfc3ltdGFiKTogRG9uJ3QgZGVjbGFyZS4KCSh0Y19mcm9iX2ZpbGVfYmVmb3JlX2ZpeCk6IERlZmluZS4KCShhbHBoYV9iZWZvcmVfZml4KTogRGVjbGFyZS4KCShUQ19JTklUX0ZJWF9EQVRBKTogVHdlYWsgcGFyYW0gbmFtZXMuCgkqIGNvbmZpZy90Yy1hcmMuYzogSW5jbHVkZSAic3RydWMtc3ltYm9sLmgiLgoJKG1kX3BjcmVsX2Zyb20pOiBSZW1vdmUgdW5kZWZpbmVkIHN5bSBmdWRnZS4KCShtZF9hcHBseV9maXgzKTogUmVtb3ZlICp2YWxQIGZ1ZGdlcyBhbmQgY29kZSB0byBzdWJ0cmFjdCBhYnMgc3ltLgoJRG9uJ3Qgc2V0IGZ4X2FkZG51bWJlci4KCSh0Y19nZW5fcmVsb2MpOiBSZW1vdmUgc3B1cmlvdXMgZnhfYWRkbnVtYmVyIGNvbW1lbnQuCgkqIGNvbmZpZy90Yy1hcmMuaCAoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKEVYVEVSTl9GT1JDRV9SRUxPQyk6IERlZmluZS4KCSogY29uZmlnL3RjLWFybS5jIChtZF9hcHBseV9maXgzIDxjYXNlIEJGRF9SRUxPQ19BUk1fR09UUEM+KTogUmVtb3ZlLgoJKHRjX2dlbl9yZWxvYyk6IEZ1ZGdlIEFSTV9HT1RQQyBhZGRlbmQuCgkoYXJtX3ZhbGlkYXRlX2ZpeCk6IFJldHVybiB2b2lkLgoJKGFybV9maXhfYWRqdXN0YWJsZSA8ZWxmIHZlcnNpb24+KTogUmVtb3ZlIGV4dGVybiBhbmQgd2VhayB0ZXN0cy4KCUFkZCBwbHQgYW5kIGdvdCByZWxvYyB0ZXN0cy4KCShhcm1fZm9yY2VfcmVsb2NhdGlvbik6IENhbGwgU19GT1JDRV9SRUxPQy4KCSogY29uZmlnL3RjLWFybS5oIChzdHJ1Y3QgZml4KTogRm9yd2FyZCBkZWNsYXJlLgoJKFRDX1ZBTElEQVRFX0ZJWCk6IE5vIGxvbmdlciBzZXQgYWRkX3N5bWJvbFAuCgkoYXJtX3ZhbGlkYXRlX2ZpeCk6IEFkanVzdCBkZWNsYXJhdGlvbi4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OIDxwZSB2ZXJzaW9uKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBUd2VhayBwYXJhbSBuYW1lLgoJKFRDX0lOSVRfRklYX0RBVEEpOiBMaWtld2lzZS4KCShvYmpfZml4X2FkanVzdGFibGUpOiBEb24ndCBkZWZpbmUuCgkodGNfZml4X2FkanVzdGFibGUpOiBDYWxsIGFybV9maXhfYWRqdXN0YWJsZS4KCShUQ19GSVhfQURKVVNUQUJMRSk6IERvbid0IGRlZmluZS4KCShNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKFRDX1JFTE9DX1JUU1lNX0xPQ19GSVhVUCk6IERvbid0IGRlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX0xPQ0FMKTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCSogY29uZmlnL3RjLWF2ci5jIChtZF9hcHBseV9maXgzKTogRG9uJ3QgY2FzdCB2YWxQIHBvaW50ZXIgdHlwZS4KCVJlbW92ZSAqdmFsUCBmdWRnZXMgYW5kIGNvZGUgdG8gc3VidHJhY3QgYWJzIHN5bS4gIERvbid0IHNldAoJZnhfYWRkbnVtYmVyLgoJKiBjb25maWcvdGMtYXZyLmg6IEZvcm1hdHRpbmcuCgkoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZS4KCSogY29uZmlnL3RjLWNyaXMuYyAodGNfZ2VuX3JlbG9jKTogRG9uJ3QgdXNlIGZ4X2FkZG51bWJlci4KCShtZF9hcHBseV9maXgzKTogUmVtb3ZlIGNvZGUgdG8gc3VidHJhY3QgYWJzIHN5bS4KCShtZF9jcmlzX2ZvcmNlX3JlbG9jYXRpb24pOiBVcGRhdGUgY29tbWVudC4gIENhbGwgU19GT1JDRV9SRUxPQy4KCSogY29uZmlnL3RjLWNyaXMuaCAoVENfRk9SQ0VfUkVMT0NBVElPTik6IFR3ZWFrIHBhcmFtIG5hbWUuCgkoSVNfQ1JJU19QSUNfUkVMT0MsIHRjX2ZpeF9hZGp1c3RhYmxlKTogTGlrZXdpc2UuCgkoVENfUkVMT0NfUlRTWU1fTE9DX0ZJWFVQKTogRG9uJ3QgZGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fTE9DQUwpOiBEZWZpbmUgdGhpcyBpbnN0ZWFkLgoJKHRjX2ZpeF9hZGp1c3RhYmxlKTogUmVtb3ZlIGV4dGVybiwgd2VhayB0ZXN0cy4KCSogY29uZmlnL3RjLWQxMHYuYyAodGNfZ2VuX3JlbG9jKTogRG9uJ3QgZmlkZGxlIGFkZHJlc3Mgb2YKCUJGRF9SRUxPQ19WVEFCTEVfSU5IRVJJVCByZWxvY3MuICBEb24ndCB1c2UgZnhfYWRkbnVtYmVyLgoJKG1kX2FwcGx5X2ZpeDMpOiBEb24ndCBjYXN0IHZhbFAgcG9pbnRlciB0eXBlLiAgUmVtb3ZlICp2YWxQIGZ1ZGdlcwoJYW5kIGNvZGUgdG8gc3VidHJhY3QgYWJzIHN5bS4KCShkMTB2X2ZpeF9hZGp1c3RhYmxlKTogUmVtb3ZlIGV4dGVybiwgd2VhaywgU0VDX01FUkdFIHRlc3RzLgoJKGQxMHZfZm9yY2VfcmVsb2NhdGlvbik6IENhbGwgU19GT1JDRV9SRUxPQy4KCSogY29uZmlnL3RjLWQxMHYuaDogRG9uJ3QgaW5jbHVkZSB3cml0ZS5oLgoJKHN0cnVjdCBmaXgpOiBJbnN0ZWFkLCBmb3J3YXJkIGRlY2xhcmUuCgkoTURfUENSRUxfRlJPTV9TRUNUSU9OKTogVHdlYWsgcGFyYW0gbmFtZXMuCgkobWRfcGNyZWxfZnJvbV9zZWN0aW9uKTogVXNlICJzdHJ1Y3QgZml4IiBpbnN0ZWFkIG9mICJmaXhTIi4KCShkMTB2X2ZpeF9hZGp1c3RhYmxlKTogTGlrZXdpc2UuCgkob2JqX2ZpeF9hZGp1c3RhYmxlKTogRG9uJ3QgZGVmaW5lLgoJKHRjX2ZpeF9hZGp1c3RhYmxlKTogRGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBUd2VhayBwYXJhbSBuYW1lLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZS4KCShFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1kMzB2LmMgKHRjX2dlbl9yZWxvYyk6IERvbid0IHVzZSBmeF9hZGRudW1iZXIuCgkobWRfYXBwbHlfZml4Myk6IERvbid0IGNhc3QgdmFsUCBwb2ludGVyIHR5cGUuICBSZW1vdmUgKnZhbFAgZnVkZ2VzCglhbmQgY29kZSB0byBzdWJ0cmFjdCBhYnMgc3ltLgoJKiBjb25maWcvdGMtZDMwdi5oOiBEb24ndCBpbmNsdWRlIHdyaXRlLmguCgkoc3RydWN0IGZpeCk6IEluc3RlYWQsIGZvcndhcmQgZGVjbGFyZS4KCShNRF9QQ1JFTF9GUk9NX1NFQ1RJT04pOiBUd2VhayBwYXJhbSBuYW1lcy4KCShtZF9wY3JlbF9mcm9tX3NlY3Rpb24pOiBVc2UgInN0cnVjdCBmaXgiIGluc3RlYWQgb2YgImZpeFMiLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZS4KCShFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1kbHguYyAobWRfZGx4X2ZvcmNlX3JlbG9jYXRpb24pOiBDYWxsIFNfRk9SQ0VfUkVMT0MuCgkobWRfZGx4X2ZpeF9hZGp1c3RhYmxlKTogRG9uJ3QgdGVzdCBmb3IgTlVMTCBmeF9hZGRzeS4KCShtZF9hcHBseV9maXgzKTogTm8gbmVlZCB0byB0ZXN0IGZ4X3BjcmVsIGJlZm9yZSBzZXR0aW5nIGZ4X2RvbmUuCgkodGNfZ2VuX3JlbG9jKTogRG9uJ3QgZmlkZGxlIHdpdGggQkZEX1JFTE9DX1ZUQUJMRV9JTkhFUklUIHJlbG9jcy4KCUFkanVzdCB0aGUgYWRkcmVzcyBmb3IgQkZEX1JFTE9DX1ZUQUJMRV9FTlRSWSwgbm90IHRoZSBhZGRlbmQuCglEb24ndCB1c2UgZnhfYWRkbnVtYmVyLgoJKiBjb25maWcvdGMtZGx4Lmg6IERvbid0IGluY2x1ZGUgd3JpdGUuaC4KCShtZF9jb252ZXJ0X2ZyYWcpOiBXZSdyZSBub3QgYWxwaGEgdHdpY2Ugb3Zlci4KCShFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkob2JqX2ZpeF9hZGp1c3RhYmxlKTogRG9uJ3QgZGVmaW5lLgoJKHRjX2ZpeF9hZGp1c3RhYmxlKTogRGVmaW5lLgoJKFRDX0ZJWF9BREpVU1RBQkxFKTogRG9uJ3QgZGVmaW5lLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZS4KCShMT0NBTF9MQUJFTFNfRE9MTEFSKTogVW5kZWYgYWx3YXlzLgoJKiBjb25maWcvdGMtZnIzMC5jIChmcjMwX2ZvcmNlX3JlbG9jYXRpb24pOiBDYWxsIFNfRk9SQ0VfUkVMT0MuCgkoZnIzMF9maXhfYWRqdXN0YWJsZSk6IFJlbW92ZSBleHRlcm4sIHdlYWsgdGVzdHMuCgkqIGNvbmZpZy90Yy1mcjMwLmggKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZS4KCShvYmpfZml4X2FkanVzdGFibGUpOiBEb24ndCBkZWZpbmUuCgkodGNfZml4X2FkanVzdGFibGUpOiBEZWZpbmUuCgkoc3RydWN0IGZpeCk6IEZvcndhcmQgZGVjbGFyZS4KCShNRF9QQ1JFTF9GUk9NX1NFQ1RJT04pOiBUd2VhayBwYXJhbSBuYW1lLiAgUmVtb3ZlIGR1cGxpY2F0ZS4KCSogY29uZmlnL3RjLWZydi5jIChmcnZfZm9yY2VfcmVsb2NhdGlvbik6IENhbGwgU19GT1JDRV9SRUxPQy4KCShmcnZfZml4X2FkanVzdGFibGUpOiBEb24ndCBkbyBleHRlcm4sIHdlYWsgdGVzdHMuCgkqIGNvbmZpZy90Yy1mcnYuaCAoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKFRDX0ZJWF9BREpVU1RBQkxFKTogRG9uJ3QgZGVmaW5lLgoJKG9ial9maXhfYWRqdXN0YWJsZSk6IERvbid0IGRlZmluZS4KCSh0Y19maXhfYWRqdXN0YWJsZSk6IERlZmluZS4KCShzdHJ1Y3QgZml4KTogRm9yd2FyZCBkZWNsYXJlLgoJKE1EX1BDUkVMX0ZST01fU0VDVElPTik6IFR3ZWFrIHBhcmFtIG5hbWUuICBSZW1vdmUgZHVwbGljYXRlLlwKCSogY29uZmlnL3RjLWg4MzAwLmMgKG1kX2FwcGx5X2ZpeDMpOiBEb24ndCBjYXN0IHZhbFAgcG9pbnRlciB0eXBlLgoJKiBjb25maWcvdGMtaDgzMDAuaCAoc3RydWN0IGZpeCk6IEZvcndhcmQgZGVjbGFyZS4KCShFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1ocHBhLmMgKG1kX2FwcGx5X2ZpeDMpOiBSZW1vdmUgc3VidHJhY3Rpb24gb2Ygc3ltIHZhbHVlLgoJKGhwcGFfZml4X2FkanVzdGFibGUpOiBEb24ndCB0ZXN0IGV4dGVybiBvciB3ZWFrLiAgRG9uJ3QKCXN5bWJvbF9tYXJrX3VzZWRfaW5fcmVsb2MuCgkoaHBwYV9mb3JjZV9yZWxvY2F0aW9uKTogVXNlIFNfRk9SQ0VfUkVMT0MgaW5zdGVhZCBvZiBTX0lTX0VYVEVSTkFMCglhbmQgU19JU19XRUFLLgoJKiBjb25maWcvdGMtaHBwYS5oIChFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEZWZpbmUKCShUQ19GT1JDRV9SRUxPQ0FUSU9OLCBUQ19JTklUX0ZJWF9EQVRBKTogVHdlYWsgcGFyYW0gbmFtZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX1NFQ1RJT04pOiBEb24ndCBkZWZpbmUuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKiBjb25maWcvdGMtaTM3MC5jIChtZF9hcHBseV9maXgzKTogUmVtb3ZlICp2YWxQIGZ1ZGdlcyBhbmQgY29kZQoJdG8gc3VidHJhY3QgYWJzIHN5bS4KCSogY29uZmlnL3RjLWkzNzAuaDogUmVtb3ZlIGlmZGVmIE9CSl9FTEYgdGVzdHMuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKE1EX1BDUkVMX0ZST01fU0VDVElPTik6IFR3ZWFrIHBhcmFtIG5hbWUuCgkqIGNvbmZpZy90Yy1pMzg2LmMgKHRjX2kzODZfZml4X2FkanVzdGFibGUpOiBSZW1vdmUgd2VhaywgZXh0ZXJuIHRlc3RzLgoJKG1kX2FwcGx5X2ZpeDMpOiBUZXN0IGZ4X2FkZHN5LCBub3QgZnhfcGNyZWwuCgkoaTM4Nl9mb3JjZV9yZWxvY2F0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKiBjb25maWcvdGMtaTM4Ni5oIChUQ19DT0ZGX0ZJWDJSVFlQRSk6IFR3ZWFrIHBhcmFtIG5hbWUuCgkoVENfVkFMSURBVEVfRklYKTogTGlrZXdpc2UuCgkoVENfRklYX0FESlVTVEFCTEUpOiBEb24ndCBkZWZpbmUuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT04gPGVsZiB2ZXJzaW9uPik6IENhbGwgaTM4Nl9mb3JjZV9yZWxvY2F0aW9uLgoJKGkzODZfZm9yY2VfcmVsb2NhdGlvbik6IERlY2xhcmUuCgkoVENfUkVMT0NfUlRTWU1fTE9DX0ZJWFVQKTogRG9uJ3QgZGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fTE9DQUwpOiBEZWZpbmUgdGhpcyBpbnN0ZWFkLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT04gPGNvZmYgdmVyc2lvbj4pOiBDYWxsIFNfRk9SQ0VfUkVMT0MuCgkqIGNvbmZpZy90Yy1pODYwLmMgKG1kX2FwcGx5X2ZpeDMpOiBEb24ndCBjYXN0IHZhbFAgcG9pbnRlciB0eXBlLgoJKiBjb25maWcvdGMtaTg2MC5oIChNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKiBjb25maWcvdGMtaTk2MC5jIChyZWxvY19jYWxsaik6IFJlbW92ZSBkZWNsYXJhdGlvbi4gIFJldHVybiBmYWxzZS4KCShtZF9hcHBseV9maXgzKTogRG9uJ3QgY2FzdCB2YWxQIHBvaW50ZXIgdHlwZS4gIE1vdmUgY29kZSBoZXJlIGZyb20KCW9sZCBmaXh1cF9zZWdtZW50LiAgTm8gbmVlZCB0byB0ZXN0IGZ4X3BjcmVsIGJlZm9yZSBzZXR0aW5nIGZ4X2RvbmUuCgkoaTk2MF92YWxpZGF0ZV9maXgpOiBSZW1vdmUgYWRkX3N5bWJvbFBQIGFyZyBhbmQgYWRkX3N5bWJvbFAgbWFjcm8uCglVc2UgZnhfYWRkc3kgaW5zdGVhZCBvZiBhZGRfc3ltYm9sUCwgYXNfYmFkX3doZXJlIGluc3RlYWQgb2YgYXNfYmFkLgoJUmVtb3ZlICNpZiAwIGNvZGUuICBJbnZlcnQgcmV0dXJuIGJvb2xlYW4uCgkqIGNvbmZpZy90Yy1pOTYwLmggKFRDX0NPVU5UX1JFTE9DKTogVHdlYWsgcGFyYW0gbmFtZS4KCShUQ19DT0ZGX0ZJWDJSVFlQRSwgVENfQURKVVNUX1JFTE9DX0NPVU5ULCBUQ19WQUxJREFURV9GSVgpOiBMaWtld2lzZS4KCSh0Y19oZWFkZXJzX2hvb2ssIHRjX2NvZmZfZml4MnJ0eXBlKTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKHRjX2NvZmZfc2l6ZW1hY2hkZXApOiBQcm90b3R5cGUuCgkoaTk2MF9oYW5kbGVfYWxpZ24pOiBMaWtld2lzZS4KCShpOTYwX3ZhbGlkYXRlX2ZpeCk6IEFkanVzdCBkZWNsYXJhdGlvbi4KCShyZWxvY19jYWxsaik6IExpa2V3aXNlLgoJKEVYVEVSTl9GT1JDRV9SRUxPQyk6IERlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9TQU1FKTogRGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fQUJTKTogRGVmaW5lLgoJKFRDX1JFTE9DX1JUU1lNX0xPQ19GSVhVUCk6IERvbid0IGRlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX0xPQ0FMKTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCShUQ19GSVhfQURKVVNUQUJMRSk6IERvbid0IGRlZmluZS4KCShNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1pYTY0LmMgKGlhNjRfZm9yY2VfcmVsb2NhdGlvbik6IENhbGwgU19GT1JDRV9SRUxPQy4KCSogY29uZmlnL3RjLWlhNjQuaCAoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKFRDX1JFTE9DX1JUU1lNX0xPQ19GSVhVUCk6IERvbid0IGRlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX0xPQ0FMKTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCSogY29uZmlnL3RjLWlwMmsuYyAoaXAya19mb3JjZV9yZWxvY2F0aW9uKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKiBjb25maWcvdGMtaXAyay5oIChNRF9BUFBMWV9GSVgzKTogRG9uJ3QgZGVmaW5lLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZS4KCShFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkoVENfRk9SQ0VfUkVMT0NBVElPTik6IFR3ZWFrIHBhcmFtIG5hbWUuCgkqIGNvbmZpZy90Yy1tMzJyLmMgKG0zMnJfZm9yY2VfcmVsb2NhdGlvbik6IENhbGwgU19GT1JDRV9SRUxPQy4KCShtMzJyX2ZpeF9hZGp1c3RhYmxlKTogRG9uJ3QgdGVzdCBleHRlcm4sIHdlYWsuCgkqIGNvbmZpZy90Yy1tMzJyLmggKE1EX1BDUkVMX0ZST01fU0VDVElPTik6IFR3ZWFrIHBhcmFtIG5hbWUuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKG9ial9maXhfYWRqdXN0YWJsZSk6IERvbid0IGRlZmluZS4KCSh0Y19maXhfYWRqdXN0YWJsZSk6IERlZmluZS4KCSh0Y19mcm9iX2ZpbGUpOiBEb24ndCBkZWZpbmUuCgkodGNfZnJvYl9maWxlX2JlZm9yZV9maXgpOiBEZWZpbmUuCgkoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKiBjb25maWcvdGMtbTY4aGMxMS5jICh0Y19nZW5fcmVsb2MpOiBTZXQgYWRkZW5kIHRvIHplcm8uICBBZGp1c3QKCUJGRF9SRUxPQ19WVEFCTEVfRU5UUlkgYWRkcmVzcy4KCSh0Y19tNjhoYzExX2ZvcmNlX3JlbG9jYXRpb24pOiBDYWxsIFNfRk9SQ0VfUkVMT0MuCgkodGNfbTY4aGMxMV9maXhfYWRqdXN0YWJsZSk6IERvbid0IHRlc3QgcmVsYXhhYmxlX3N5bWJvbC4KCShtZF9hcHBseV9maXgzKTogUmVtb3ZlICp2YWxQIGZ1ZGdlcyBhbmQgY29kZSB0byBzdWJ0cmFjdCBhYnMgc3ltLgoJUmVtb3ZlIGR1cGxpY2F0ZWQgZnhfZG9uZSBjb2RlLgoJKiBjb25maWcvdGMtbTY4aGMxMS5oIChNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKiBjb25maWcvdGMtbTY4ay5jICh0Y19tNjhrX2ZpeF9hZGp1c3RhYmxlKTogRG9uJ3QgdGVzdAoJcmVsYXhhYmxlX3N5bWJvbC4KCSogY29uZmlnL3RjLW02OGsuaCAoVENfQ09GRl9GSVgyUlRZUEUpOiBUd2VhayBwYXJhbSBuYW1lLgoJKFRDX1JFTE9DX1JUU1lNX0xPQ19GSVhVUCk6IERvbid0IGRlZmluZS4KCShUQ19GSVhfQURKVVNUQUJMRSk6IERvbid0IGRlZmluZS4KCShFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBDYWxsIFNfRk9SQ0VfUkVMT0MuCgkqIGNvbmZpZy90Yy1tY29yZS5jIChtZF9hcHBseV9maXgzKTogRG9uJ3QgY2FzdCB2YWxQIHBvaW50ZXIgdHlwZS4KCVJlbW92ZSBmeF9hZGRzeSB0ZXN0cy4KCShtY29yZV9mb3JjZV9yZWxvY2F0aW9uKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKG1jb3JlX2ZpeF9hZGp1c3RhYmxlKTogRG9uJ3QgdGVzdCBmeF9hZGRzeS4KCSogY29uZmlnL3RjLW1jb3JlLmggKE1EX1BDUkVMX0ZST01fU0VDVElPTik6IFR3ZWFrIHBhcmFtIG5hbWUuCgkoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKG9ial9maXhfYWRqdXN0YWJsZSk6IERvbid0IGRlZmluZS4KCSh0Y19maXhfYWRqdXN0YWJsZSk6IERlZmluZS4KCShNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1taXBzLmMgKGVudW0gbWlwc19waWNfbGV2ZWwpOiBNb3ZlIHRvIHRjLW1pcHMuaC4KCShtaXBzX3BpYyk6IE5vIGxvbmdlciBzdGF0aWMuCgkobWlwc19mb3JjZV9yZWxvY2F0aW9uKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKG1pcHNfZml4X2FkanVzdGFibGUpOiBSZW1vdmUgZXh0ZXJuLCB3ZWFrIHRlc3RzLgoJKiBjb25maWcvdGMtbWlwcy5oIChlbnVtIG1pcHNfcGljX2xldmVsKTogRGVjbGFyZS4KCShtaXBzX3BpYyk6IERlY2xhcmUuCgkodGNfZnJvYl9maWxlKTogRG9uJ3QgZGVmaW5lLgoJKHRjX2Zyb2JfZmlsZV9iZWZvcmVfZml4KTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCShFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1tbWl4LmMgKG1kX2FwcGx5X2ZpeDMpOiBSZXBsYWNlIHJlYWxfcmVnX3NlY3Rpb24gdGVzdHMKCXdpdGggcmVnX3NlY3Rpb24gdGVzdHMuICBTZXQgZnhfZG9uZSBpbnN0ZWFkIG9mIGNhbGxpbmcKCXN5bWJvbF9jbGVhcl91c2VkX2luX3JlbG9jIG9uIGJhZCByZWxvY3MuCgkodGNfZ2VuX3JlbG9jKTogWmVybyBmeF9hZGRzeSBvbiBiYWQgcmVsb2NzLgoJKG1taXhfZm9yY2VfcmVsb2NhdGlvbik6IFJlbW92ZSB3ZWFrIHN5bSB0ZXN0LiAgQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKG1taXhfYWRqdXN0X3N5bXRhYik6IFNpbXBsaWZ5IGxpc3QgaGFuZGxpbmcuICBBYm9ydCBvbiBhbnkKCW5vbnNlbnNlLgoJKiBjb25maWcvdGMtbW1peC5oICh0Y19maXhfYWRqdXN0YWJsZSk6IFJlbW92ZSB3ZWFrIHRlc3RzLiAgQ2hlY2sKCUJGRF9SRUxPQ19NTUlYX0xPQ0FMLgoJKHRjX2Zyb2Jfc3ltYm9sKTogS2VlcCB1c2VyIGRlZmluZWQgc3ltcyBpbiByZWdfc2VjdGlvbi4gIERvbid0IHB1bnQuCgkoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKE1EX1BDUkVMX0ZST01fU0VDVElPTik6IFR3ZWFrIHBhcmFtIG5hbWUuCgkodGNfZnJvYl9maWxlKTogRG9uJ3QgZGVmaW5lLgoJKHRjX2Zyb2JfZmlsZV9iZWZvcmVfZml4KTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCSogY29uZmlnL3RjLW1uMTAzMDAuYyAobW4xMDMwMF9mb3JjZV9yZWxvY2F0aW9uKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJUmVtb3ZlIFNFQ19DT0RFIGNoZWNrcy4KCShtbjEwMzAwX2ZpeF9hZGp1c3RhYmxlKTogUmVtb3ZlIGV4dGVybiBhbmQgd2VhayB0ZXN0cy4KCSogY29uZmlnL3RjLW1uMTAzMDAuaCAoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBUd2VhayBwYXJhbSBuYW1lLgoJKG9ial9maXhfYWRqdXN0YWJsZSk6IERvbid0IGRlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9TQU1FKTogRGVmaW5lIHRvIGhhbmRsZSBTRUNfQ09ERS4KCSogY29uZmlnL3RjLW5zMzJrLmggKFRDX0ZJWF9EQVRBX1BSSU5UKTogVHdlYWsgcGFyYW0gbmFtZS4KCSogY29uZmlnL3RjLW9wZW5yaXNjLmMgKG9wZW5yaXNjX2ZvcmNlX3JlbG9jYXRpb24pOiBDYWxsIFNfRk9SQ0VfUkVMT0MuCgkob3BlbnJpc2NfZml4X2FkanVzdGFibGUpOiBEb24ndCB0ZXN0IGZ4X2FkZHN5LgoJKiBjb25maWcvdGMtb3BlbnJpc2MuaCAoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKG9ial9maXhfYWRqdXN0YWJsZSk6IERvbid0IGRlZmluZS4KCSh0Y19maXhfYWRqdXN0YWJsZSk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoTURfUENSRUxfRlJPTV9TRUNUSU9OKTogUmVtb3ZlIGR1cGxpY2F0ZS4gVHdlYWsgcGFyYW0gbmFtZS4KCSogY29uZmlnL3RjLW9yMzIuYyAobWRfYXBwbHlfZml4Myk6IERvbid0IGNhc3QgdmFsUCBwb2ludGVyIHR5cGUuCgkodGNfZ2VuX3JlbG9jKTogRG9uJ3QgZmlkZGxlIHdpdGggQkZEX1JFTE9DX1ZUQUJMRV9JTkhFUklUIHJlbG9jcy4KCUFkanVzdCB0aGUgYWRkcmVzcyBmb3IgQkZEX1JFTE9DX1ZUQUJMRV9FTlRSWSwgbm90IHRoZSBhZGRlbmQuCgkqIGNvbmZpZy90Yy1vcjMyLmggKEVYVEVSTl9GT1JDRV9SRUxPQyk6IERlZmluZS4KCShNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1wai5jIChtZF9hcHBseV9maXgzKTogRG9uJ3QgY2FzdCB2YWxQIHBvaW50ZXIgdHlwZS4KCURvbid0IHN1YnRyYWN0IHN5bWJvbCB2YWx1ZS4KCSogY29uZmlnL3RjLXBqLmggKG1kX3BjcmVsX2Zyb20pOiBUd2VhayBwYXJhbSBuYW1lLgoJKEVYVEVSTl9GT1JDRV9SRUxPQyk6IERlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZS4KCShvYmpfZml4X2FkanVzdGFibGUpOiBEb24ndCBkZWZpbmUuCgkodGNfZml4X2FkanVzdGFibGUpOiBEZWZpbmUgdGhpcyBpbnN0ZWFkLgoJKiBjb25maWcvdGMtcHBjLmMgKHBwY19mcm9iX3N5bWJvbCA8Y29mZiB2ZXJzaW9uPik6IElnbm9yZSBhYnNvbHV0ZQoJc2VjdGlvbiBzeW0uCgkocHBjX2ZvcmNlX3JlbG9jYXRpb24gPGNvZmYgdmVyc2lvbj4pOiBDYWxsIFNfRk9SQ0VfUkVMT0MuCgkocHBjX2ZvcmNlX3JlbG9jYXRpb24gPGVsZiB2ZXJzaW9uPik6IE5ldy4KCShwcGNfZml4X2FkanVzdGFibGUgPGVsZiB2ZXJzaW9uPik6IFJlbW92ZSBleHRlcm4gYW5kIHdlYWsgdGVzdHMuCgkobWRfYXBwbHlfZml4Myk6IERvbid0IHN1YnRyYWN0IHN5bWJvbCB2YWx1ZXMgZm9yIEVMRi4gIFVwZGF0ZQoJY29tbWVudHMuICBEb24ndCBzdWJ0cmFjdCBmeF9zdWJzeSBhcyB0aGF0IGlzIGFscmVhZHkgZG9uZS4KCSogY29uZmlnL3RjLXBwYy5oICh0Y19maXhfYWRqdXN0YWJsZSk6IFR3ZWFrIHBhcmFtIG5hbWUuCgkoTURfUENSRUxfRlJPTV9TRUNUSU9OKTogTGlrZXdpc2UuCgkoVENfRk9SQ0VfUkVMT0NBVElPTik6IERlZmluZSBmb3IgYm90aCBFTEYgYW5kIFhDT0ZGIGFzIGNhbGxpbmcKCXBwY19mb3JjZV9yZWxvY2F0aW9uLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fU0VDVElPTik6IERlbGV0ZS4KCShUQ19SRUxPQ19SVFNZTV9MT0NfRklYVVApOiBEb24ndCBkZWZpbmUuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9MT0NBTCk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKiBjb25maWcvdGMtczM5MC5jOiAjaW5jbHVkZSAiZHdhcmYyZGJnLmgiLgoJKHMzOTBfaW5zbik6IFJlbW92ZSBleGNlc3MgcGFyZW5zLgoJKHRjX3MzOTBfZml4X2FkanVzdGFibGUpOiBSZW1vdmUgZXh0ZXJuLCB3ZWFrLCBTRUNfTUVSR0UgdGVzdHMuCgkodGNfczM5MF9mb3JjZV9yZWxvY2F0aW9uKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKG1kX2FwcGx5X2ZpeDMpOiBBZGQgQVRUUklCVVRFX1VOVVNFRCBvbiAic2VnIi4gIEFib3J0IHdoZW4gZnhfc3Vic3kKCW5vbi1OVUxMLiAgRG9uJ3Qgc3VidHJhY3Qgb2ZmIGZ4X2FkZHN5IHZhbHVlLgoJKiBjb25maWcvdGMtczM5MC5oIChUQ19SRUxPQ19SVFNZTV9MT0NfRklYVVApOiBEb24ndCBkZWZpbmUuCgkoVENfRk9SQ0VfUkVMT0NBVElPTiwgTURfUENSRUxfRlJPTV9TRUNUSU9OKTogVHdlYWsgcGFyYW0gbmFtZS4KCShUQ19GSVhfQURKVVNUQUJMRSk6IERvbid0IGRlZmluZS4KCShNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1zaC5jIChTV0lUQ0hfVEFCTEVfQ09OUyk6IE1vdmUgdG8gdGMtc2guaC4KCShTV0lUQ0hfVEFCTEUpOiBMaWtld2lzZS4KCShzaF9mb3JjZV9yZWxvY2F0aW9uKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKHNoX2ZpeF9hZGp1c3RhYmxlKTogUmVtb3ZlICJyZXR1cm4gMSIgY2FzZXMgaGFuZGxlZCBieSB0aGUgZGVmYXVsdC4KCVJlcGxhY2UgVENfUkVMT0NfUlRTWU1fTE9DX0ZJWFVQIHdpdGggcmVsb2MgdHlwZSB0ZXN0cy4KCShtZF9hcHBseV9maXgzIDxjYXNlIEJGRF9SRUxPQ18zMl9QTFRfUENSRUw+KTogU2ltcGxpZnksCglmeF9hZGRudW1iZXIgaXMgemVybyBvbiBlbnRyeS4gIFNhdmUgdmFsIGluIGZ4X2FkZG51bWJlci4KCSh0Y19nZW5fcmVsb2MpOiBEb24ndCBzdWJ0cmFjdCBmeF9zdWJzeS4KCSogY29uZmlnL3RjLXNoLmggKHN0cnVjdCBmaXgpOiBNb3ZlLgoJKG9ial9maXhfYWRqdXN0YWJsZSk6IERvbid0IGRlZmluZS4KCSh0Y19maXhfYWRqdXN0YWJsZSk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoVENfRklYX0FESlVTVEFCTEUpOiBEb24ndCBkZWZpbmUuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKFNXSVRDSF9UQUJMRV9DT05TKTogRGVmaW5lLgoJKFNXSVRDSF9UQUJMRSk6IERlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9TQU1FKTogRGVmaW5lLgoJKFRDX1ZBTElEQVRFX0ZJWF9TVUIpOiBEZWZpbmUuCgkoTURfUENSRUxfRlJPTV9TRUNUSU9OKTogVHdlYWsgcGFyYW0gbmFtZS4KCShUQ19SRUxPQ19SVFNZTV9MT0NfRklYVVApOiBEb24ndCBkZWZpbmUuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9MT0NBTCk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9TVUJfQUJTKTogRGVmaW5lLgoJKiBjb25maWcvdGMtc2g2NC5oIChUQ19SRUxPQ19SVFNZTV9MT0NfRklYVVApOiBEb24ndCBkZWZpbmUuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9MT0NBTCk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9TVUJfU0FNRSk6IERlZmluZS4KCShUQ19WQUxJREFURV9GSVhfU1VCKTogRGVmaW5lLgoJKE1EX1BDUkVMX0ZST01fU0VDVElPTik6IFR3ZWFrIHBhcmFtIG5hbWUuCgkqIGNvbmZpZy90Yy1zcGFyYy5jIChtZF9hcHBseV9maXgzKTogRG9uJ3Qgc3VidHJhY3Qgb2ZmIHN5bWJvbCB2YWx1ZS4KCSh0Y19nZW5fcmVsb2MpOiBVc2UgU19GT1JDRV9SRUxPQy4KCShlbGYzMl9zcGFyY19mb3JjZV9yZWxvY2F0aW9uKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKiBjb25maWcvdGMtc3BhcmMuaCAoVENfRk9SQ0VfUkVMT0NBVElPTiA8Y29mZiB2ZXJzaW9uPik6IFJlbW92ZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX0FCUyk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoVENfUkVMT0NfUlRTWU1fTE9DX0ZJWFVQKTogRG9uJ3QgZGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fTE9DQUwpOiBEZWZpbmUgdGhpcyBpbnN0ZWFkLgoJKHRjX2ZpeF9hZGp1c3RhYmxlKTogUmVtb3ZlIGV4dGVybiBhbmQgd2VhayB0ZXN0cy4gIFVzZSBTX0ZPUkNFX1JFTE9DLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZS4KCShUQ19GSVhfREFUQV9QUklOVCk6IFR3ZWFrIHBhcmFtIG5hbWUuCgkqIGNvbmZpZy90Yy10aWMzMC5jIChVU0VfU1RET1VUKTogRG9uJ3QgZGVmaW5lLgoJKG1kX3BhcnNlX29wdGlvbik6IFJlbW92ZSBzdHVwaWQgZGVidWcgY29kZS4KCSh0Y19nZW5fcmVsb2MpOiBEb24ndCB1c2UgZnhfYWRkbnVtYmVyLgoJKiBjb25maWcvdGMtdjg1MC5jICh2ODUwX2ZpeF9hZGp1c3RhYmxlKTogUmVtb3ZlIGV4dGVybiBhbmQgd2VhayB0ZXN0cy4KCSh2ODUwX2ZvcmNlX3JlbG9jYXRpb24pOiBSZW1vdmUgd2VhayB0ZXN0LiAgQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKiBjb25maWcvdGMtdjg1MC5oIChvYmpfZml4X2FkanVzdGFibGUpOiBEb24ndCBkZWZpbmUuCgkodGNfZml4X2FkanVzdGFibGUpOiBEZWZpbmUgdGhpcyBpbnN0ZWFkLgoJKFRDX0ZJWF9BREpVU1RBQkxFKTogRG9uJ3QgZGVmaW5lLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoVENfRk9SQ0VfUkVMT0NBVElPTiwgTURfUENSRUxfRlJPTV9TRUNUSU9OKTogVHdlYWsgcGFyYW0gbmFtZS4KCSogY29uZmlnL3RjLXZheC5oIChUQ19SRUxPQ19SVFNZTV9MT0NfRklYVVApOiBEb24ndCBkZWZpbmUuCgkoVENfRklYX0FESlVTVEFCTEUpOiBEb24ndCBkZWZpbmUuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCSh0Y19maXhfYWRqdXN0YWJsZSk6IFJlbW92ZSBleHRlcm4gYW5kIHdlYWsgdGVzdHMuCgkqIGNvbmZpZy90Yy13NjUuaCAoc3RydWN0IGZpeCk6IEZvcndhcmQgZGVjbGFyZS4KCSogY29uZmlnL3RjLXhzdG9ybXkxNi5jICh4c3Rvcm15MTZfZm9yY2VfcmVsb2NhdGlvbik6IENhbGwKCVNfRk9SQ0VfUkVMT0MuCgkoeHN0b3JteTE2X2ZpeF9hZGp1c3RhYmxlKTogUmVtb3ZlIGV4dGVybiBhbmQgd2VhayB0ZXN0cy4gIERvbid0CgljYWxsIHhzdG9ybXkxNl9mb3JjZV9yZWxvY2F0aW9uOyAgSW5zdGVhZCB0ZXN0IGZvciBGUFRSMTYgcmVsb2MuCgkoeHN0b3JteTE2X21kX2FwcGx5X2ZpeDMpOiBSZW1vdmUgKnZhbFAgZnVkZ2VzIGFuZCBjb2RlIHRvIHN1YnRyYWN0CglhYnNvbHV0ZSBzeW1ib2wuCgkqIGNvbmZpZy90Yy14c3Rvcm15MTYuaCAoTURfQVBQTFlfRklYMyk6IERvbid0IGRlZmluZS4KCShNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkob2JqX2ZpeF9hZGp1c3RhYmxlKTogRG9uJ3QgZGVmaW5lLgoJKHRjX2ZpeF9hZGp1c3RhYmxlKTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCShNRF9QQ1JFTF9GUk9NX1NFQ1RJT04pOiBSZW1vdmUgZHVwbGljYXRlLiAgVHdlYWsgcGFyYW0gbmFtZS4KCjIwMDItMDktMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtcHBjLmMgKHBwY19mcm9iX3N5bWJvbCk6IEZvcm1hdHRpbmcsIHdhcm5pbmcgZml4LgoJKHBwY19maXhfYWRqdXN0YWJsZSA8Y29mZiB2ZXJzaW9uPik6IENsZWFudXAuCgoJKiBjb25maWcvdGMtcHBjLmMgKFBQQ19ISUdIRVIsIFBQQ19ISUdIRVNUKTogRml4IHdhcm5pbmcuCgkobWRfcGFyc2Vfb3B0aW9uKTogTm8gLWE2NCB3aXRob3V0IEJGRDY0LgoJKHBwY19zZXRfY3B1KTogU2VsZWN0IGFwcHJvcHJpYXRlIGNwdSB3aGVuIHBwY19vYmo2NC4KCShwcGNfYXJjaCk6IFVzZSBiZmRfbWFjaF9yczZrIGZvciBiZmRfYXJjaF9yczYwMDAuCgoyMDAyLTA5LTA0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXBwYy5jIChtZF9iZWdpbik6IERvIG5vdCBpbnNlcnQgbm9uLUJvb2tFMzIKCWluc3RydWN0aW9ucyBpbnRvIHRoZSBoYXNoIHRhYmxlIGlmIHRoZSB0YXJnZXQgY3B1IGlzIHRoZSBCb29rRTMyLgoKMjAwMi0wOC0zMSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogcmVhZC5jIChkb19hbGlnbik6IFVzZSBBVFRSSUJVVEVfVU5VU0VEX0xBQkVMIGZvciBsYWJlbCwgbm90CglBVFRSSUJVVEVfVU5VU0VELgoKMjAwMC0wOC0yOCAgQ2F0aGVyaW5lIE1vb3JlICA8Y2xtQHJlZGhhdC5jb20+CgoJKiB0Yy12ODUwLmMgKHY4NTBfcmVsYXgpOiBEZWNsYXJlLgoJKHY4NTBfbG9uZ2NvZGUpOiBOZXcgcm91dGluZS4KCSh2ODUwX2hhbmRsZV9hbGlnbik6IE5ldyByb3V0aW5lLgoJKG1kX3BzZXVkb190YWJsZSk6IEFkZCBsb25nY2FsbCBhbmQgbG9uZ2p1bXAuCgkobWRfcGFyc2Vfb3B0aW9uKTogQ2hlY2sgZm9yIHJlbGF4IG9wdGlvbi4KCSh0Y19nZW5fcmVsb2MpOiBIYW5kbGUgQkZEX1JFTE9DX1Y4NTBfTE9OR0NBTEwsCglCRkRfUkVMT0NfVjg1MF9MT05HSlVNUCwgYW5kIEJGRF9SRUxPQ19WODUwX0FMSUdOLgoJKG1kX2FwcGx5X2ZpeDMpOiBMaWtld2lzZS4KCSh2ODUwX2ZvcmNlX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCSh2ODUwX2NvbW0pOiBDaGFuZ2UgdGhlIGN1cnJlbnQgc2VjdGlvbi4KCShtZF9hc3NlbWJsZSk6IEVuc3VyZSB0aGF0IHRoZSBjb3JyZWN0IHZhbHVlIGlzIHB1dCBpbiB0aGUKCWZpeHVwLgoJKHY4NTBfc2RhdGEsIHY4NTBfdGRhdGEsIHY4NTBfemRhdGEsIHY4NTBfc2Jzcywgdjg1MF90YnNzLAoJdjg1MF96YnNzLCB2ODUwX3Jvc2RhdGEsIHY4NTBfcm96ZGF0YSk6IEZpeCBzZWN0aW9uIGJvb2sga2VlcGluZy4KCVJlbW92ZSByZWR1bmRhbnQgdjg1MGVhIHN1cHBvcnQuCgkqIHRjLXY4NTAuaCAoSEFORExFX0FMSUdOKTogRGVmaW5lLgoJKHY4NTBfaGFuZGxlX2FsaWduKTogRGVjbGFyZS4KCSogZG9jL2Mtdjg1MC5jOiBEb2N1bWVudCAtbXJlbGF4LCAubG9uZ2NhbGwgYW5kIC5sb25nanVtcC4KCjIwMDItMDgtMjggIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHRpYzR4LWNvZmYqIGFuZCBjNHgtY29mZiotY29mZi1jb2ZmIHRhcmdldHMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogTkVXUzogTWVudGlvbiBuZXcgcG9ydC4KCjIwMDItMDgtMjggIE1pY2hhZWwgSGF5ZXMgPG0uaGF5ZXNAZWxlYy5jYW50ZXJidXJ5LmFjLm56PgoKCSogY29uZmlnL29iai1jb2ZmLmM6IEFkZCBzZGVmIGRlZmluaXRpb24uCgkqIGNvbmZpZy9vYmotY29mZi5oOiBBZGQgdGljNHggaW5jbHVkZSBmaWxlIGFuZCBzZXQKCXRhcmdldCBmb3JtYXQuCgkqIGNvbmZpZy90Yy10aWM0eC5jOiBOZXcgZmlsZS4KCSogY29uZmlnL3RjLXRpYzR4Lmg6IE5ldyBmaWxlLgoKMjAwMi0wOC0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHdyaXRlLmMgKEJGRF9GQVNUX1NFQ1RJT05fRklMTCk6IFJlbW92ZSB1bnVzZWQgbWFjcm8uCgkoVENfQURKVVNUX1JFTE9DX0NPVU5UKTogVHdlYWsgcGFyYW0gbmFtZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OLCBUQ19GT1JDRV9SRUxPQ0FUSU9OX1NFQ1RJT04pOiBMaWtld2lzZS4KCShUQ19GSVhfQURKVVNUQUJMRSwgTURfUENSRUxfRlJPTV9TRUNUSU9OKTogTGlrZXdpc2UuCgkoUkVMT0NfRU5VTSk6IERlZmluZS4KCShmaXhfbmV3X2ludGVybmFsKTogVXNlIFJFTE9DX0VOVU0uCgkoZml4X25ldywgZml4X25ld19leHApOiBMaWtld2lzZS4KCShhZGp1c3RfcmVsb2Nfc3ltcyk6IENvbW1lbnQuICBSZW1vdmUgdW5uZWNlc3NhcnkgdGVzdHMgb24gc3ltICE9IE5VTEwuCglSZXBsYWNlIGdvdG9zIHdpdGggY29udGludWUuCgkod3JpdGVfcmVsb2NzKTogRm9ybWF0dGluZy4gIEF2b2lkIHN5bWJvbCBsb29wcyBpbgoJUkVMT0NfRVhQQU5TSU9OX1BPU1NJQkxFIGNhc2UgdG9vLiAgUmVwb3J0IGJmZF9yZWxvY19vdXRvZnJhbmdlCgllcnJvcnMsIGFuZCBlcnJvciBudW1iZXIgaW4gb3RoZXIgY2FzZXMuCgkoZml4dXBfc2VnbWVudCk6IFJlbW92ZSBwYXJhbSBuYW1lcyBmcm9tIHByb3RvdHlwZS4gIFJlbmFtZQoJInRoaXNfc2VnbWVudF90eXBlIiB0byAidGhpc19zZWdtZW50Ii4gIFVwZGF0ZSBsaW5rcmVsYXggY29tbWVudC4KCVJlbW92ZSAic2l6ZSwgInBsYWNlIiBhbmQgIndoZXJlIiBsb2NhbCB2YXJzLiAgRm9ybWF0dGluZy4gIFVwZGF0ZQoJIm5vIHN5bWJvbCIgY29tbWVudC4gIFJlbW92ZSAjaWYgMCBhbmQgI2lmIDEuCgoJKiBhcHAuYyAoZG9fc2NydWJfY2hhcnMpOiBEb24ndCB0ZXN0IElHTk9SRV9OT05TVEFOREFSRF9FU0NBUEVTLiAgVGlkeS4KCjIwMDItMDgtMjcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkd2FyZjJkYmcuYzogQWx3YXlzIGluY2x1ZGUgZHdhcmYyZGJnLmguCgkoZHdhcmYyX2RpcmVjdGl2ZV9maWxlKTogQWRqdXN0IGR1bW15IHZlcnNpb24gYXJncy4KCSogZWNvZmYuYyAoZWNvZmZfZGlyZWN0aXZlX3dlYWtleHQpOiBBZGQgQVRUUklCVVRFX1VOVVNFRC4KCSogZXhwci5jIChjbGVhbl91cF9leHByZXNzaW9uIDxPX3N1YnRyYWN0Pik6IEFsbG93IHN1YnRyYWN0aW9uCgl3aGVuIHN5bWJvbCB2YWx1ZXMgZGlmZmVyLgoJKiByZWFkLmMgKGRvX2FsaWduKTogQWRkIEFUVFJJQlVURV9VTlVTRUQgdG8gbGFiZWwuCgkocHNldWRvX3NldCA8T19zdWJ0cmFjdD4pOiBSZW1vdmUgdW5uZWNlc3Nhcnkgc2VnbWVudCB0ZXN0LgoJKiBjb25maWcvb2JqLWJvdXQuYyAob2JqX3BzZXVkb190YWJsZSk6IFdhcm5pbmcgZml4LgoKMjAwMi0wOC0yNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy13NjUuYyAobWRfc2VjdGlvbl9hbGlnbik6IEZpeCB0eXBvLgoJKG1kX3BhcnNlX29wdGlvbik6IFJldHVybiAwLCBub3QgMS4KCjIwMDItMDgtMjIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBkb2MvYXMudGV4aW5mbyAoU2VjdGlvbik6IE5vdGUgdGhhdCBpZiAnQCcgaXMgYSBjb21tZW50CgljaGFyYWN0ZXIgdGhlbiBhbm90aGVyIHN5bWJvbCBpcyB1c2VkIHRvIHByZWZpeCB0aGUgc2VjdGlvbidzCgl0eXBlLgoKMjAwMi0wOC0yMiAgQ2hyaXN0aWFuIEdyb2Vzc2xlciA8Y2hyaXNAZ3JvZXNzbGVyLm9yZz4KCgkqIGNvbmZpZy90Yy16OGsuYyAoZ2V0X29wZXJhbmRzKTogQWRqdXN0IHB0ciB2YXJpYWJsZSBhbHNvIGluCgkiY2FzZSAwIiBjYXNlLgoKMjAwMi0wOC0xMiAgR3JhZW1lIFBldGVyc29uICA8Z3BAcW54LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHN1cHBvcnQgZm9yIHNoLSoqLW50byogdGFyZ2V0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTA4LTIxICBOaXRpbiAgR3VwdGEgIDxuaXRpbmdAbm9pZGEuaGNsdGVjaC5jb20+CgoJKiBjb25maWcvdGMtaDgzMDAuaCAoVENfTElOS1JFTEFYX0ZJWFVQKTogRGVmaW5lLgoKMjAwMi0wOC0yMSAgRWxlbmEgWmFubm9uaSAgPGV6YW5ub25pQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtcHBjLmMgKHBwY19jbGVhbnVwKTogRG8gc29tZXRoaW5nIG9ubHkgaWYgZm9ybWF0CglpcyBFTEYuCgkocHBjX2FwdWluZm9fc2VjdGlvbl9hZGQpOiBEZWZpbmUgb25seSBpZiBmb3JtYXQgaXMgRUxGLgoJKG1kX2Fzc2VtYmxlKTogRW1pdCBBUFVpbmZvIHNlY3Rpb24gb25seSBpZiBmb3JtYXQgaXMgRUxGLgoJRml4IGZvcm1hdHRpbmcuCgoyMDAyLTA4LTIxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWFyYy5jIChtZF9wc2V1ZG9fdGFibGUgPGR3YXJmMl9kaXJlY3RpdmVfZmlsZT4pOiBDYXN0LgoJKiBjb25maWcvdGMtZnJ2LmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaHBwYS5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWlhNjQuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1pcDJrLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbTY4aGMxMS5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW02OGsuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1tbWl4LmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbW4xMDMwMC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXNoLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtc3BhcmMuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy12ODUwLmM6IExpa2V3aXNlLgoKMjAwMi0wOC0yMCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWFjcm8yKTogSW1wbGVtZW50IHJvdGF0ZXMgYnkgemVybyB1c2luZyBzaGlmdHMKCWJ5IHplcm8uCgoyMDAyLTA4LTE5ICBFbGVuYSBaYW5ub25pICA8ZXphbm5vbmlAcmVkaGF0LmNvbT4KCglGcm9tIG1hdHRoZXcgZ3JlZW4gIDxtcmdAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAoUFBDX09QQ09ERV9DTEFTU0lDKTogRW5hYmxlIHRoaXMgZXZlcnl3aGVyZQoJUFBDX09QQ09ERV9QUEMgaXMsIGV4Y2VwdCBmb3IgQm9va0UgYXJjaGl0ZWN0dXJlcy4KCShtZF9wYXJzZV9vcHRpb24pOiBBZGQgc3VwcG9ydCBmb3IgLW1zcGUuCgkobWRfc2hvd191c2FnZSk6IEFkZCAtbXNwZS4KCShtZF9wYXJzZV9vcHRpb24pOiBBZGQgc3VwcG9ydCBmb3IgLW1lNTAwIGFuZAoJLW1lNTAweDIgdG8gZ2VuZXJhdGUgY29kZSBmb3IgTW90b3JvbGEgZTUwMCBjb3JlIGNvbXBsZXguCgkobWRfc2hvd191c2FnZSk6IEFkZCAtbWU1MDAgYW5kIC1tZTUwMHgyLgoKCShQUENfQVBVSU5GT19JU0VMLCBQUENfQVBVSU5GT19QTVIsIFBQQ19BUFVJTkZPX1JGTUNJLAoJUFBDX0FQVUlORk9fQ0FDSEVMQ0ssIFBQQ19BUFVJTkZPX1NQRSwgUFBDX0FQVUlORk9fRUZTLAoJUFBDX0FQVUlORk9fQlJMT0NLKTogTmV3IG1hY3Jvcy4KCgkocHBjX2NsZWFudXApOiBOZXcgZnVuY3Rpb24uCgkocHBjX2FwdWluZm9fc2VjdGlvbl9hZGQpOiBOZXcgZnVuY3Rpb24uCgkoQVBVSUQpOiBOZXcgbWFjcm8uCgkobWRfYXNzZW1ibGUpOiBDb2xsZWN0IGluZm8gYW5kIHdyaXRlIHRoZSBBUFVpbmZvIHNlY3Rpb24uCgoJKiBjb25maWcvdGMtcHBjLmggKG1kX2NsZWFudXApOiBEZWZpbmUuCgkocHBjX2NsZWFudXApOiBFeHBvcnQuCgkoRUxGX1RDX1NQRUNJQUxfU0VDVElPTlMpOiBBZGQgLlBQQy5FTUIuYXB1aW5mbyBzZWN0aW9uLgoKMjAwMi0wOC0xNyAgU3RhbiBDb3ggIDxzY294QHJlZGhhdC5jb20+CgoJKiBjb25maWcvb2JqLWVsZi5jIChvYmpfZWxmX2NoYW5nZV9zZWN0aW9uKTogTWFrZSBub24tc3RhdGljLgoJY29uZmlnL3RjLW1pcHMuYyAoc19jaGFuZ2Vfc2VjdGlvbik6IE5ldyBmdW5jdGlvbiB0byBzdXBwb3J0CglJUklYIC5zZWN0aW9uIHBzZXVkby1vcC4KCjIwMDItMDgtMTYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtdjg1MC5jIChtZF9hc3NlbWJsZSk6IEZpeCBhc3NlbWJsaW5nIG9mICJjYWxsdCAweDNmIi4KCjIwMDItMDgtMTUgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWFjcm9fYnVpbGRfamFscik6IE1ha2Ugc3VyZSB3ZSBnZW5lcmF0ZQoJdGhlIGZpeC11cCBhZ2FpbnN0IG9uIHRoZSByaWdodCBmcmFnLgoJKHNfY3BzZXR1cCk6IExpa2V3aXNlLiAgUGFyc2UgdGhpcmQgYXJndW1lbnQgYXMgZXhwcmVzc2lvbiwgdG8KCWhhbmRsZSBnbG9iYWwgc3ltYm9scyBhbmQgZm9yd2FyZC9iYWNrd2FyZCBsYWJlbHMgY29ycmVjdGx5LgoKMjAwMi0wOC0xNCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHJlYWQuYyAoc3RyaW5nZXIpOiBDYXRjaCBhdHRlbXB0cyB0byBjcmVhdGUgc3RyaW5ncyBpbiB0aGUgYWJzCglzZWN0aW9uLgoKCSogY29uZmlnL3RjLWFscGhhLmM6IEZpeCBjb21waWxpbmcgZm9yIENPRkYgdGFyZ2V0cy4KCVNvbWUgbWlub3IgZm9ybWF0dGluZyB0aWR5dXBzLgoKMjAwMi0wOC0xMyAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBjb25maWcvdGMtbTY4aGMxMS5oIChNRF9QQ1JFTF9GUk9NX1NFQ1RJT04pOiBSZW1vdmUuCgkoVENfSEFORExFU19GWF9ET05FKTogRGVmaW5lIHRvIGxldCBtZF9hcHBseV9maXgzIHNldCBmeF9kb25lIGZsYWcKCWFjY29yZGluZyB0byB0aGUgcmVsb2MuCgkodGNfZml4X2FkanVzdGFibGUsIHRjX202OGhjMTFfZml4X2FkanVzdGFibGUpOiBEZWZpbmUuCgkoVENfRk9SQ0VfUkVMT0NBVElPTik6IERlZmluZS4KCSh0Y19tNjhoYzExX2ZvcmNlX3JlbG9jYXRpb24pOiBEZWNsYXJlLgoKCSogY29uZmlnL3RjLW02OGhjMTEuYyAobWRfcHNldWRvX3RhYmxlKTogQWRkIHJlbGF4IGNvbW1hbmQuCgkoc19tNjhoYzExX3JlbGF4KTogTmV3IGZ1bmN0aW9uIGZvciByZWxheCBncm91cC4KCShidWlsZF9pbnNuLCBidWlsZF9qdW1wX2luc24pOiBFbWl0IGEgTTY4SEMxMV9STF9KVU1QIHJlbG9jIGF0CgliZWdpbm5pbmcgb2YganVtcCBpbnN0cnVjdGlvbi4KCShtZF9wY3JlbF9mcm9tKTogUmVuYW1lIGZyb20gbWRfcGNyZWxfZnJvbV9zZWN0aW9uIGFuZCBmaXgKCWFkZHJlc3MgY29tcHV0YXRpb24uCgkodGMtZ2VuX3JlbG9jKTogVXBkYXRlLgoJKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogQ3JlYXRlIHRoZSBCRkRfUkVMT0NfMTZfUENSRUwgYXMKCVBDLXJlbGF0aXZlIGZpeHVwLgoJKHRjX202OGhjMTFfZm9yY2VfcmVsb2NhdGlvbik6IE5ldyBmdW5jdGlvbiwgaGFuZGxlIG5ldyByZWxvY3MuCgkodGNfbTY4aGMxMV9maXhfYWRqdXN0YWJsZSk6IE5ldyB0byBtYWtlIHN1cmUgdGhlcmUgYXJlIGVub3VnaAoJcmVsb2MgZm9yIHRoZSBsaW5rZXIgcmVsYXggcGFzcy4KCShtZF9hcHBseV9maXgzKTogSGFuZGxlIE02OEhDMTFfUkxfSlVNUCwgTTY4SEMxMV9STF9HUk9VUAoJYW5kIFZUQUJMRSByZWxvY3MuCgoyMDAyLTA4LTEzICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGNvbmZpZy90Yy1tNjhoYzExLmMgKG02OGhjMTFfZWxmX2ZpbmFsX3Byb2Nlc3NpbmcpOiBOZXcgZnVuY3Rpb24uCgkobWRfcHNldWRvX3RhYmxlKTogQWRkIC5tb2RlLCAuZmFyIGFuZCAuaW50ZXJydXB0IHBzZXVkbyBvcC4KCShzX202OGhjMTFfbW9kZSk6IE5ldyBmdW5jdGlvbiBmb3IgLm1vZGUgcHNldWRvIG9wLgoJKHNfbTY4aGMxMV9tYXJrX3N5bWJvbCk6IE5ldyBmdW5jdGlvbiBmb3IgLmZhciBhbmQgLmludGVycnVwdAoJcHNldWRvIG9wLgoJKiBjb25maWcvdGMtbTY4aGMxMS5oIChlbGZfdGNfZmluYWxfcHJvY2Vzc2luZyk6IERlZmluZS4KCShtNjhoYzExX2VsZl9maW5hbF9wcm9jZXNzaW5nKTogRGVjbGFyZS4KCjIwMDItMDgtMTMgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogY29uZmlnL3RjLW02OGhjMTEuYyAobWRfYmVnaW4pOiBUYWtlIGludG8gYWNjb3VudCBhZGRpdGlvbmFsCglwYWdlIG9wZXJhbmQgZm9yIGNhbGwgaW5zdHJ1Y3Rpb24uCgkocHJpbnRfb3Bjb2RlX2Zvcm1hdCk6IExpa2V3aXNlLgoJKGNoZWNrX3JhbmdlKTogTGlrZXdpc2UgZm9yIHBhZ2UgcmFuZ2UgY2hlY2tpbmcuCgkoZ2V0X29wZXJhbmQpOiBEb24ndCBza2lwIGEgcG9zc2libGUgY29tbWEgaW4gb3BlcmFuZHMuCgkoZml4dXA4KTogR2VuZXJhdGUgQkZEX1JFTE9DX002OEhDMTFfUEFHRSByZWxvYy4KCShmaXh1cDE2KTogTGlrd2lzZSB3aXRoIEJGRF9SRUxPQ19NNjhIQzExX0xPMTYuCgkoZml4dXAyNCk6IE5ldyB0byBoYW5kbGUgY2FsbCByZWxvYy4KCShidWlsZF9pbnNuKTogSGFuZGxlIG1pc3NpbmcgcGFnZSBvcGVyYW5kIGZvciBjYWxsIGluc3RydWN0aW9uLgoJKGZpbmQpOiBMaWtld2lzZS4KCShtZF9hcHBseV9maXgzKTogVGFrZSBpbnRvIGFjY291bnQgbmV3IHJlbG9jcy4KCShnZXRfb3BlcmFuZCk6IEZpeCB0aGUgbW9kZSBmb3IgaW5kZXhlZCBpbmRpcmVjdCBhZGRyZXNzaW5nLgoJKGJ1aWxkX2luZGV4ZWRfYnl0ZSk6IEZpeCBwb3N0IGluZGV4IGJ5dGUgZm9yIGluZGV4ZWQgaW5kaXJlY3QgbW9kZS4KCjIwMDItMDgtMTIgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfaXApOiBEb24ndCB3b3JrIG91dCB0aGUgdmFsdWUgb2YKCWNvbnN0YW50ICVoaSgpcyBoZXJlLgoKMjAwMi0wOC0xMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKHRjX2kzODZfZml4X2FkanVzdGFibGUpOiBUZXN0IE9VVFBVVF9GTEFWT1IKCWZvciBFTEYsIGFuZCBkb24ndCBib3RoZXIgY2hlY2tpbmcgRUxGIHJlbG9jcyB3aGVuIG5vbi1FTEYuCgkoaTM4Nl9pbW1lZGlhdGUpOiBBbGxvdyBhYnNvbHV0ZV9zZWN0aW9uIGV4cHJlc3Npb25zIGZvciBhb3V0LgoJKGkzODZfZGlzcGxhY2VtZW50KTogTGlrZXdpc2UuICBBbHNvIHRlc3QgYmZkX2lzX2NvbV9zZWN0aW9uLgoJKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogVGVzdCBPVVRQVVRfRkxBVk9SIGZvciBFTEYuCgkobWRfYXBwbHlfZml4Myk6IEhhY2sgZm9yIGJmZF9pbnN0YWxsX3JlbG9jYXRpb24gd2hlbiBmeF9wY3JlbCwKCW5vdCB3aGVuIGZ4X2FkZHN5LiAgUmVtb3ZlIGRlYWQgY29kZS4KCjIwMDItMDgtMDkgIEdyYWVtZSBQZXRlcnNvbiAgPGdwQHFueC5jb20+CgoJKiBjb25maWd1cmUuaW46IEFkZCBzdXBwb3J0IGZvciBwcGMtKi1udG8qIHRhcmdldC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wOC0wOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1pMzg2Lmg6IFJlb3JnYW5pemUuCgoyMDAyLTA4LTA5ICBNYWNpZWogVy4gUm96eWNraSAgPG1hY3JvQGRzMi5wZy5nZGEucGw+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNybyk6IEhhbmRsZSBhIHJlZ2lzdGVyIHBsdXMgYSAxNi1iaXQKCWltbWVkaWF0ZSBvZmZzZXQgaW4gImRsYSIgYW5kICJsYSIgZXhwYW5zaW9ucy4KCjIwMDItMDgtMDkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWd1cmUuaW46IGJmZF9nYXM9eWVzIGZvciBhbGwgaTM4NiB0YXJnZXRzLiAgRm9ybWF0dGluZy4KCVJlbW92ZSAiYmZkX2dhcz15ZXMiIGZyb20gdGFyZ2V0IHRhYmxlIHdoZW4gY292ZXJlZCBsYXRlci4KCUNvbnNvbGlkYXRlIHNvbWUgZW50cmllcy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlCgoyMDAyLTA4LTA5ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKG91dHB1dF9pbnNuKTogU2F2ZSBmcmFnX25vdyBhbmQgZnJhZ19ub3dfZml4ICgpCglhdCBzdGFydCBvZiBpbnNuLCBwYXNzIGl0IHRvIG91dHB1dF9kaXNwIGFuZCBvdXRwdXRfaW1tLgoJKG91dHB1dF9kaXNwKTogQWRkZWQgYXJndW1lbnRzLiAgSWYgX0dMT0JBTF9PRkZTRVRfVEFCTEVfIGlzIHNlZW4KCWluIGRpc3BsYWNlbWVudCBmb3IgUl8zODZfMzIgcmVsb2MsIHVzZSBSXzM4Nl9HT1RQQyBhbmQgY29tcHV0ZQoJcHJvcGVybHkgYWRkZW5kLgoJKG91dHB1dF9pbW0pOiBBZGRlZCBhcmd1bWVudHMuICBDb21wdXRlIHByb3Blcmx5IGFkZGVuZCBmb3IKCVJfMzg2X0dPVFBDLgoJKG1kX2FwcGx5X2ZpeDMpOiBSZW1vdmUgUl8zODZfR09UUEMgaGFuZGxpbmcuCgoyMDAyLTA4LTA2ICBHZW9yZ2UgRnJhbmNlIDxmcmFuY2VAaGFuZGhlbGRzLm9yZz4KCgkqIGNvbmZpZy90Yy1hbHBoYS5jIChjcHVfdHlwZXMpOiBFbmFibGVkIGV2NjcsIGV2NjgsICAtbTIxMjY0YQoJYW5kIG0yMTI2NGIgcHJvY2Vzc29yIG5hbWVzIGFuZCBjcHUgdHlwZXMuCgkqIGRvYy9jLWFscGhhLnRleGk6IERvY3VtZW50ZWQgbmV3IHR5cGVzLgoKMjAwMi0wOC0wNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAobWRfYXBwbHlfZml4Myk6IEFkanVzdCAxNiBiaXQgWENPRkYgcmVsb2Mgb2Zmc2V0LgoKMjAwMi0wOC0wMSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAodGNfZ2VuX3JlbG9jKTogRXh0ZW5kIEdQLXJlbGF0aXZlIGFkZGVuZAoJaGFuZGxpbmcgdG8gQkZEX1JFTE9DX01JUFMxNl9HUFJFTC4KCjIwMDItMDgtMDEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtYXJtLmMgKGFkZF90b19saXRfcG9vbCk6IEVuc3VyZSB0aGF0IG9mZnNldCB0byBsaXRlcmFsCglwb29sIGlzIGNvbXB1dGVkIHVzaW5nIHNpZ25lZCBhcml0aG1ldGljIHNvIHRoYXQgcHJvcGVyIHNpZ24KCWV4dGVuc2lvbiBpcyBwZXJmb3JtZWQgaWYgWF9hZGRfbnVtYmVyIGlzIGEgNjQtYml0IGludGVnZXIuCgoyMDAyLTA4LTAxICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgkgICAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBkd2FyZjJkYmcuYyAoZHdhcmYyX2ZpbmlzaCk6IERvbid0IGVtaXQgdW5yZWZlcmVuY2VkCgkuZGVidWdfbGluZSBzZWN0aW9uIHVubGVzcyBpdCBoYXMgbGluZSBpbmZvcm1hdGlvbi4KCjIwMDItMDctMzEgIElhbiBEYWxsICA8aWFuQHNpYnlsLmJld2FyZS5kcm9wYmVhci5pZC5hdT4KCgkqIGNvbmZpZy90Yy1uczMyay5oIChtZF9wY3JlbF9hZGp1c3QpOiBTdXBwbHkgcHJvdG90eXBlLgoJKiBjb25maWcvdGMtbnMzMmsuYyAoY29udmVydF9paWYsIG1kX3BhcnNlX29wdGlvbiwgbWRfc2hvd191c2FnZSk6CglBbGxvdyBkZWZhdWx0IGRpc3BsYWNlbWVudCBzaXplIHRvIGJlIGFuIG9wdGlvbgkiLS1kaXNwLXNpemUtZGVmYXVsdCIuCgkobWRfbnVtYmVyX3RvX2Rpc3ApOiBNYWtlIGVycm9yIG1lc3NhZ2VzIGluY2x1ZGUgdmFsdWUuIFVzZSAlZCB0bwoJcHJpbnQgaW50ZWdlcnMsIG5vdCAlcy4KCShmaXhfbmV3X25zMzJrKTogQ29uZGl0aW9uYWxseSBzZXQgZnhfbm9fb3ZlcmZsb3cgc28gd2UgZG9uJ3QKCWdldCBkdXBsaWNhdGUgbWVzc2FnZXMgc29tZXRpbWVzLgoJKGNvbnZlcnRfaWlmKTogR3JvdyBmcmFnIHRvIG1heCBwb3NzaWJsZSBpbnN0cnVjdGlvbiBzaXplLiBBdm9pZAoJY3JlYXRpbmcgdW5uZWNlc3NhcnkgZml4ZXMuCgkobWRfbnVtYmVyX3RvX2ZpZWxkKSBBZGQgcHJvdG90eXBlLgoJKGVuY29kZV9vcGVyYW5kLCBwYXJzZSwgY29udmVydF9paWYsIG1kX2ZpeF9wY3JlbF9hZGp1c3QpOiBBZGQKCXByb3RvdHlwZXMgYW5kIG1ha2Ugc3RhdGljLgoJKHN0cnVjdCBhZGRyX21vZGUpOiBNYWtlIG1vZGUgYW5kIHNjYWxlZF9tb2RlIGV4cGxpY2l0bHkgc2lnbmVkLgoJKGV2YWx1YXRlX2V4cHIpOiBVc2UgcmVzdWx0UCBhcmd1bWVudCBpbnN0ZWFkIG9mIGV4cHJQIGdsb2JhbC4KCShnZXRfYWRkcl9tb2RlKTogUXVpdGVuIGNvbXBpbGVyIHdhcm5pbmdzLgoJKGVuY29kZV9vcGVyYW5kKTogZWxpbWluYXRlIHVudXNlZCB2YXJpYWJsZXMuIFF1aXRlbiBjb21waWxlcgoJd2FybmluZ3MuIEVsaW1pbmF0ZSBudWwgY2hhcmFjdGVyIGluIGZvcm1hdCBzdHJpbmdzLgoJKHBhcnNlKTogYXJnYyBpcyB1bnNpZ25lZC4KCShyZWxvYyk6IFR5cGUgY2FzdCBpbmRleCB0byBxdWlldGVuIGNvbXBpbGVyLgoJKG1kX3BjcmVsX2FkanVzdCwgbWRfYXBwbHlfZml4Myk6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgkobWRfY29udmVydF9mcmFnKTogTm90ZSB1bnVzZWQgcGFyYW1ldGVycy4gUmVtb3ZlIHVudXNlZAoJdmFyaWFibGVzLgoJKG1kX2NyZWF0ZV9sb25nX2p1bXAsIG1kX2NyZWF0ZV9zaG9ydF9qdW1wLAoJbWRfdW5kZWZpbmVkX3N5bWJvbF9uYW1lLCBtZF9zZWN0aW9uX2FsaWduLCB0Y19nZW5fcmVsb2MpOiBOb3RlCgl1bnVzZWQgcGFyYW1ldGVycy4KCjIwMDItMDctMzEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBORVdTOiBSZXRyb2FjdGl2ZWx5IGFkZCBlbnRyeSBmb3IgTGFycyBCcmlua2hvZmYncyBjb250cmlidXRpb24KCW9mIHRoZSBQRFAtMTEgYW5kIDIuMTFCU0QgYS5vdXQgc3VwcG9ydC4KCjIwMDItMDctMzEgIE1vbWNoaWwgVmVsaWtvdiAgPHZlbGNvQGZhZGF0YS5iZz4KCgkqIGNvbmZpZy90Yy12ODUwLmMgKG1kX2Fzc2VtYmxlKTogRml4IHJhbmdlIGNoZWNrIGZvciBpbW1lZGlhdGUKCW9wZXJhbmQuCgoyMDAyLTA3LTMwICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19jcHVfaW5mb190YWJsZSk6IENsZWFuIHVwIGVudHJpZXMgcmVsYXRlZAoJdG8gQnJvYWRjb20gU0ItMSBjb3JlIHN1cHBvcnQuCgoyMDAyLTA3LTMxICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc190YXJnZXRfZm9ybWF0KTogRml4IGZvcm1hdHRpbmcuCglBZGQgcmVjb2duaXRpb24gb2YgbjMyIEFCSSBmb3JtYXRzLgoKMjAwMi0wNy0zMCAgTWFjaWVqIFcuIFJvenlja2kgIDxtYWNyb0BkczIucGcuZ2RhLnBsPgoKCSogdGMtbWlwcy5jIChsb2FkX2FkZHJlc3MpOiBEb24ndCBjbG9iYmVyICRhdCB3aGVuIGxvYWRpbmcgYQoJNjQtYml0IGFkZHJlc3MgaW4gbm9uLVBJQyBjb2RlIGlmIG5vYXQgaXMgaW4gZWZmZWN0LgoJKG1hY3JvKTogTGlrZXdpc2UuCgoyMDAyLTA3LTMwICBNYWNpZWogVy4gUm96eWNraSAgPG1hY3JvQGRzMi5wZy5nZGEucGw+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNybyk6IFVzZSBjb2RlcyA2IGFuZCA3IGluIHRyYXAgaW5zdHJ1Y3Rpb25zCgl1c2VkIGluIGRpdmlzaW9uL211bHRpcGx5IG1hY3JvIGV4cGFuc2lvbnMgc2ltaWxhcmx5IHRvIGhvdyB0aGV5CglhcmUgdXNlZCBpbiB0aGUgdmFyaWFudHMgd2l0aCBicmVhayBpbnN0cnVjdGlvbnMuCgkobWFjcm8yKTogTGlrZXdpc2UuCgoyMDAyLTA3LTMwICBHcmFlbWUgUGV0ZXJzb24gIDxncEBxbnguY29tPgoKCSogY29uZmlndXJlLmluOiBBZGQgc3VwcG9ydCBmb3IgYXJtLSotbnRvIHRhcmdldC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wNy0zMCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYyAoc3RydWN0IGxpdGVyYWxfcG9vbCk6IEFkZCBmaWVsZHMgdG8gYWxsb3cKCW11bHRpcGxlIGxpdGVyYWwgcG9vbHMgdG8gYmUgbWFpbnRhaW5lZC4KCShmaW5kX2xpdGVyYWxfcG9vbCk6IE5ldyBmdW5jdGlvbi4KCShmaW5kX29yX21ha2VfbGl0ZXJhbF9wb29sKTogTmV3IGZ1bmN0aW9uLgoJKGFkZF90b19saXRlcmFsX3Bvb2wpOiBVc2UgZmluZF9vcl9tYWtlX2xpdGVyYWxfcG9vbC4KCShhcm1fc190ZXh0LCBhcm1fc19kYXRhLCBhcm1fc19zZWN0aW9uKTogUmVtb3ZlIC0gbm8gbG9uZ2VyCgluZWVkZWQuCgkoc19sdG9yZyk6IFVzZSBmaW5kX2xpdGVyYWxfcG9vbC4KCShhcm1fY2xlYW51cCk6IER1bXAgYWxsIGxpdGVyYWwgcG9vbHMuCgkqIGRvYy9jLWFybS50ZXhpOiBEb2N1bWVudCBuZXcgYmVoYXZpb3VyIG9mIG9ubHkgZHVtcGluZyBsaXRlcmFsCglwb29scyB1cG9uIHJlcXVlc3QuCgoyMDAyLTA3LTI2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLXBwYy5jIChwcGNfc2V0X2NwdSk6IFVzZSBQUENfT1BDT0RFXzY0IGFzIHRoZSBkZWZhdWx0CglyYXRoZXIgdGhhbiBQUENfT1BDT0RFXzMyIGZvciBwb3dlcnBjNjQqLgoKMjAwMi0wNy0yNSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL2VzLnBvOiBVcGRhdGVkIFNwYW5pc2ggdHJhbnNsYXRpb24uCgkqIHBvL2ZyLnBvOiBVcGRhdGVkIEZyZW5jaCB0cmFuc2xhdGlvbi4KCjIwMDItMDctMjUgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGRvYy9jLW1pcHMudGV4aTogUmVtb3ZlIC1tY3B1LiAgRG9jdW1lbnQgLW1hYmkuCgkqIGNvbmZpZ3VyZS5pbiAoTUlQU19DUFVfU1RSSU5HX0RFRkFVTFQpOiBOZXcgY29uZmlndXJhdGlvbiBtYWNyby4KCShVU0VfRV9NSVBTX0FCSV9PMzIsIE1JUFNfREVGQVVMVF82NEJJVCk6IE5ldyBjb25maWd1cmF0aW9uIG1hY3Jvcy4KCSogY29uZmlndXJlLCBjb25maWcuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy90Yy1taXBzLmMgKGZpbGVfbWlwc19hYmkpOiBSZW5hbWUgdG8gbWlwc19hYmkuCgkobWlwc19zZXRfb3B0aW9ucyk6IFJlbW92ZSAiYWJpIiBmaWVsZC4KCShtaXBzX29wdHMpOiBVcGRhdGUgYWNjb3JkaW5nbHkuICBSZXBsYWNlIGFsbCB1c2VzIG9mIG1pcHNfb3B0cy5hYmkKCXdpdGggbWlwc19hYmkuCgkobWlwc19jcHUpOiBSZW1vdmUuCgkobWlwc19hcmNoX3N0cmluZywgbWlwc19hcmNoX2luZm8pOiBOZXcgdmFycy4KCShtaXBzX3R1bmVfc3RyaW5nLCBtaXBzX3R1bmVfaW5mbyk6IE5ldyB2YXJzLgoJKEFCSV9ORUVEU18zMkJJVF9SRUdTLCBBQklfTkVFRFNfNjRCSVRfUkVHUyk6IE5ldyBtYWNyb3MuCgkoSEFWRV8zMkJJVF9HUFJTLCBIQVZFXzMyQklUX0ZQUlMpOiBEb24ndCBjaGVjayB0aGUgQUJJLgoJKG1pcHNfaXNhX3RvX3N0ciwgbWlwc19jcHVfdG9fc3RyKTogUmVtb3ZlLgoJKG1pcHNfaXApOiBJZiB0aGUgc2VsZWN0ZWQgYXJjaGl0ZWN0dXJlIGlzIGEgZ2VuZXJpYyBJU0EgcmF0aGVyCgl0aGFuIGEgcHJvY2Vzc29yLCBvbmx5IG1lbnRpb24gdGhlIElTQSBsZXZlbCBpbiBlcnJvciBtZXNzYWdlcy4KCShPUFRJT05fTUNQVSk6IFJlbW92ZS4KCShPUFRJT05fRlA2NCk6IE5ldy4KCShtZF9sb25nb3B0cyk6IEFkZCAtbWZwNjQsIHJlbW92ZSAtbWNwdS4KCShtaXBzX3NldF9vcHRpb25fc3RyaW5nKTogTmV3IGZuLgoJKG1kX3BhcnNlX29wdGlvbik6IE1ha2UgLW1pcHNOIHVwZGF0ZSBmaWxlX21pcHNfaXNhIHJhdGhlciB0aGFuCgltaXBzX29wdHMuaXNhLiAgVXNlIG1pcHNfc2V0X29wdGlvbl9zdHJpbmcgdG8gc2V0IC1tYXJjaCBvciAtbXR1bmUuCglEb24ndCBsZXQgLW1ncDMyIGFuZCAtbWZwMzIgY2hhbmdlIHRoZSBBQkkuCgkoc2hvdyk6IE1vdmUgdG8gZW5kIG9mIGZpbGUuICBDb25zdGlmeSBzdHJpbmcgYXJndW1lbnQuCgkobWRfc2hvd191c2FnZSk6IE1vdmUgdG8gdGhlIGVuZCBvZiB0aGUgZmlsZS4gIFJlYWQgYXZhaWxhYmxlCglhcmNoaXRlY3R1cmVzIGZyb20gbWlwc19jcHVfaW5mb190YWJsZS4KCShtaXBzX3NldF9hcmNoaXRlY3R1cmUpOiBOZXcgZm4uCgkobWlwc19hZnRlcl9wYXJzZV9hcmdzKTogUmV3b3JrLiAgUmVtb3ZlIC1tY3B1IGhhbmRsaW5nLiAgLW1pcHNOCglpcyBhbiBhbGlhcyBmb3IgLW1hcmNoPW1pcHNOLiAgRG9uJ3QgY2hhbmdlIHRoZSBBQkkgYmFzZWQgb24gb3RoZXIKCWZsYWdzLiAgSW5mZXIgdGhlIHJlZ2lzdGVyIHNpemUgZnJvbSB0aGUgQUJJIGFzCXdlbGwgYXMgdGhlCglhcmNoaXRlY3R1cmUuICBDb21wbGFpbiBhYm91dCBtb3JlIGNvbmZsaWN0aW5nIGFyZ3VtZW50cy4KCVVuaWZ5IGxvZ2ljIHdpdGggR0NDLgoJKHNfbWlwc3NldCk6IERvbid0IGNoYW5nZSB0aGUgQUJJLgoJKG1pcHNfZWxmX2ZpbmFsX3Byb2Nlc3NpbmcpOiBDaGVjayBVU0VfRV9NSVBTX0FCSV9PMzIuCgkobWlwc19jcHVfaW5mb190YWJsZSk6IFJlbW92ZSBHZW5lcmljLU1JUFMqIGVudHJpZXMsIGtlZXBpbmcganVzdAoJIm1pcHNOIi10eXBlIGVudHJpZXMuICBSZW1vdmUgZW50cmllcyB0aGF0IHZhcnkgb25seSBpbiB0aGUKCW1hbnVmYWN0dXJlcidzIHByZWZpeCwgb3IgdGhhdCBoYXZlICIwMDAiIHJlcGxhY2VkIGJ5ICJrIi4KCVJlbW92ZSBUQVJHRVRfQ1BVIGVudHJpZXMuICBNYWtlIHIyMDAwIGVudHJ5IHVzZSBDUFVfUjMwMDAuCgkobWlwc19zdHJpY3RfbWF0Y2hpbmdfY3B1X25hbWVfcCwgbWlwc19tYXRjaGluZ19jcHVfbmFtZV9wKTogTmV3IGZucy4KCShtaXBzX3BhcnNlX2NwdSk6IE5ldyBmbi4KCShtaXBzX2NwdV9pbmZvX2Zyb21fbmFtZSwgbWlwc19jcHVfaW5mb19mcm9tX2NwdSk6IFJlbW92ZS4KCShtaXBzX2NwdV9pbmZvX2Zyb21faXNhKTogTWlub3IgZm9ybWF0dGluZyB0d2Vhay4KCjIwMDItMDctMjQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9zdi5wbzogVXBkYXRlZCBTd2VkaXNoIHRyYW5zbGF0aW9uLgoJKiBwby9lcy5wbzogVXBkYXRlZCBTcGFuaXNoIHRyYW5zbGF0aW9uLgoKMjAwMi0wNy0yMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgoJKiBwby9QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDctMjMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9mci5wbzogVXBkYXRlZCBGcmVuY2ggdHJhbnNsYXRpb24uCgoyMDAyLTA3LTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogQ09OVFJJQlVUT1JTOiBLZW4gUmFlYnVybiBpcyBubyBsb25nZXIgdGhlIG1haW50YWluZXIgZm9yCglHQVMuCgoyMDAyLTA3LTE5ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19uZWVkX2VsZl9hZGRlbmRfZml4dXApOiBVc2UgU19JU19FWFRFUk5BTAoJaW5zdGVhZCBvZiBTX0lTX0VYVEVSTi4KCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IExpa2V3aXNlLgoJKG1pcHNfZml4X2FkanVzdGFibGUpOiBMaWtld2lzZS4KCjIwMDItMDctMTkgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzX3BpY19sZXZlbCk6IFJlbW92ZSBJUklYNF9QSUMuCgoyMDAyLTA3LTE5ICBNaXJvc2xhdiBUaWNoeSA8dGljaG05YW1Ac3MxMDAwLm1zLm1mZi5jdW5pLmN6PgoJICAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25kLmMgKHNfaWZkZWYpOiBUcmVhdCBhIHJlZmVyZW5jZWQgYnV0IG5vdCB5ZXQgZGVmaW5lZAoJc3ltYm9sIGFzIGlmIGl0IHdlcmUgdW5kZWZpbmVkLCBpbiBleGFjdGx5IHRoZSBzYW1lIHdheSBhcwoJLmVxdWl2LgoKCSogZG9jL2FzLnRleGluZm86IERvY3VtZW50IHRoYXQgLmlmZGVmLCAuaWZuZGVmIGFuZCAuZXF1aXYKCWNvbnNpZGVyIHJlZmVyZW5jZWQgYnVnIG5vdCB5ZXQgZGVmaW5lZCBzeW1ib2xzIHRvIGJlCgl1bmRlZmluZWQuCgoyMDAyLTA3LTE4ICBEZW5pcyBDaGVydHlrb3YgIDxkZW5pc2NAb3ZlcnRhLnJ1PgoJICAgIEZyYW5rIENoLiBFaWdsZXIgIDxmY2hlQHJlZGhhdC5jb20+CgkgICAgQWxhbiBMZWhvdHNreSAgPGFsZWhvdHNreUBjeWdudXMuY29tPgoJICAgIEpvaG4gSGVhbHkgIDxqaGVhbHlAcmVkaGF0LmNvbT4KCSAgICBKZWZmIEpvaG5zdG9uICA8ampvaG5zdG5AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGlwMmsgY29uZmlndXJhdG9uLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmFtOiBBZGQgaXAyayBjb25maWd1cmF0b24uCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWcvdGMtaXAyay5jOiBOZXcgZmlsZS4KCSogY29uZmlnL3RjLWlwMmsuaDogTmV3IGZpbGVzLgoJKiBORVdTOiBNZW50aW9uIG5ldyBzdXBwb3J0LgoJKiBkb2MvTWFrZWZpbGUuYW0gKENQVV9ET0NTKTogQWRkIGMtaXAyay50ZXhpLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9hbGwudGV4aTogU2V0IElQMksKCSogZG9jL2FzLnRleGluZm86IEFkZCBJUDJLIGRlc2NyaXB0aW9uLgoJKiBkb2MvYy1pcDJrLnRleGk6IE5ldyBmaWxlLgoKMjAwMi0wNy0xOSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBORVdTOiBSZWZvcm1hdCB0byBtYXRjaCBzdHlsZSBvZiBvdGhlciBORVdTIGZpbGVzLgoKMjAwMi0wNy0xNyAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogdGMtaTM4Ni5jIChpMzg2X2FsaWduX2NvZGUpOiBJbXBsZW1lbnQgeDg2XzY0IG5ldXRyYWwgY29kZSBmaWxsZXJzLgoKMjAwMi0wNy0xNiAgTW9yaXR6IEpvZGVpdCAgPG1vcml0ekBqb2RlaXQub3JnPgoKCSogY29uZmlnL3RjLXo4ay5jIChidWlsZF9ieXRlcyk6IENvcnJlY3Qgb3JkZXIgb2YgbWVtc2V0IGFyZ3MuCgoyMDAyLTA3LTE2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIE5FV1M6IEFkZCAnQ2hhbmdlcyBpbiAyLjEzJy4KCjIwMDItMDctMTUgIE1hdHQgRnJlZGV0dGUgIDxmcmVkZXR0ZUBuZXRic2Qub3JnPgoKCSogY29uZmlnL3RjLWhwcGEuaCAoTEFCRUxTX1dJVEhPVVRfQ09MT05TKTogRGVmaW5lIGlmIFRFX05ldEJTRC4KCjIwMDItMDctMTIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChwcm9jZXNzX3N1ZmZpeCk6IE1lcmdlIENPREVfNjRCSVQgSnVtcEJ5dGUKCWNhc2Ugd2l0aCBub24gQ09ERV82NEJJVCBjYXNlLiAgRG9uJ3Qgd2FybiBvbiAicXdvcmQgcHRyIiBpZgoJbm90IENPREVfNjRCSVQuCgoyMDAyLTA3LTExICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLXBwYy5jIChwcGNfZWxmX2Zyb2Jfc3ltYm9sKTogRGVsZXRlLgoJKHBwY19mcm9iX2ZpbGVfYmVmb3JlX2FkanVzdCk6IE5ldyBmdW5jdGlvbi4KCSogY29uZmlnL3RjLXBwYy5oICh0Y19mcm9iX3N5bWJvbCk6IERvbid0IGRlZmluZS4KCShwcGNfZWxmX2Zyb2Jfc3ltYm9sKTogRG9uJ3QgZGVjbGFyZS4KCSh0Y19mcm9iX2ZpbGVfYmVmb3JlX2FkanVzdCk6IERlZmluZS4KCShwcGNfZnJvYl9maWxlX2JlZm9yZV9hZGp1c3QpOiBEZWNsYXJlLgoKCSogY29uZmlnL3RjLXBwYy5jIChtZF9wc2V1ZG9fdGFibGUpOiBXYXJuaW5nIGZpeC4KCShwcGNfY3B1KTogTWFrZSBpdCB1bnNpZ25lZCBsb25nIHRvIGFncmVlIHdpdGggc3RydWN0IHBvd2VycGNfb3Bjb2RlCglmbGFncy4KCShwcGNfc2l6ZSk6IERlbGV0ZS4KCShwcGNfeGNvZmY2NCk6IFJlbmFtZSB0byBwcGNfb2JqNjQuCgkobWRfcGFyc2Vfb3B0aW9uIDxtPik6IEVuY29kZSBvbGQgcHBjX3NpemUgdmFsdWUgaW4gcHBjX2NwdS4KCShwcGNfc2V0X2NwdSk6IFNldCBQUENfT1BDT0RFXzMyIHRvby4KCShwcGNfYXJjaCk6IFVzZSBwcGNfb2JqNjQgaW5zdGVhZCBvZiBwcGNfc2l6ZSB0byBzZWxlY3QgYmZkX21hY2hfcHBjNjQKCW9yIGJmZF9tYWNoX3BwYy4KCShwcGNfdGFyZ2V0X2Zvcm1hdCk6IFVzZSBwcGNfb2JqNjQgdG8gc2VsZWN0IGZvcm1hdC4KCShtZF9iZWdpbik6IEFkanVzdCBmb3IgUFBDX09QQ09ERV8zMi82NCBpbiBwcGNfY3B1LgoJKHBwY19pbnNlcnRfb3BlcmFuZCk6IFVzZSBwcGNfb2JqNjQgaW5zdGVhZCBvZiBwcGNfc2l6ZS4KCShwcGNfZWxmX3N1ZmZpeCk6IExpa2V3aXNlLiAgRG9uJ3QgZGVwZW5kIG9uIEJGRF9ERUZBVUxUX1RBUkdFVF9TSVpFLgoJKHRjX2Zyb2Jfc3ltYm9sKTogTGlrZXdpc2UuCgkobWRfYXNzZW1ibGUpOiBVc2UgcHBjX29iajY0IGluc3RlYWQgb2YgcHBjX3NpemUuICBEb24ndCBkZXBlbmQgb24KCUJGRF9ERUZBVUxUX1RBUkdFVF9TSVpFLgoJKHBwY190Yyk6IExpa2V3aXNlLgoJKHBwY19pc190b2Nfc3ltKTogTGlrZXdpc2UuCgkobWRfYXBwbHlfZml4Myk6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtcHBjLmggKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBEb24ndCBkZXBlbmQgb24KCUJGRF9ERUZBVUxUX1RBUkdFVF9TSVpFLgoJKEVMRl9UQ19TUEVDSUFMX1NFQ1RJT05TKTogTGlrZXdpc2UuCgkodGNfZnJvYl9zeW1ib2wpOiBMaWtld2lzZS4KCjIwMDItMDctMDkgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNyb19idWlsZCk6IEhhbmRsZSBNSVBTMTYgaW5zbnMuCgkobWlwc19pcCk6IExpa2V3aXNlLgoKMjAwMi0wNy0wOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKG1kX3BzZXVkb190YWJsZSA8ZmlsZT4pOiBXYXJuaW5nIGZpeC4KCShCRkRfUkVMT0NfOCwgQkZEX1JFTE9DXzhfUENSRUwpOiBEZWZpbmUgZm9yIG5vbi1CRkQuCgkobWRfYXBwbHlfZml4Myk6IEZvcm1hdHRpbmcuICBSZW1vdmUgcmVkdW5kYW50IHRlc3QuCgkodGNfZ2VuX3JlbG9jKTogUmVtb3ZlIHJlZHVuZGFudCBjb2RlLgoJKHRjX2kzODZfZm9yY2VfcmVsb2NhdGlvbik6IERlbGV0ZS4gIE1vdnkgYm9keSBvZiBmdW5jdGlvbiB0by4uCgkqIGNvbmZpZy90Yy1pMzg2LmggKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiAuLiBoZXJlLgoKMjAwMi0wNy0wOSAgRmVkZXJpY28gRy4gU2Nod2luZHQgPGZnc2NoQG9saW1wby5jb20uYnI+CgoJKiBjb25maWd1cmUuaW46IEFkZCBocHBhLSotb3BlbmJzZCogdGFyZ2V0LCBjaGFuZ2UKCWFscGhhKi0qLW9wZW5ic2QqIGZvcm1hdCB0byBlbGYsIGFuZCB1c2UgZWxmIGZvciBzcGFyYy0qLW9wZW5ic2QqCgl3aXRoIHNwYXJjNjQgY3B1LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTA3LTA4ICBNYWNpZWogVy4gUm96eWNraSAgPG1hY3JvQGRzMi5wZy5nZGEucGw+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNybyk6IFNoaWZ0IHRoZSAzMi1iaXQgYWRkcmVzcyByYW5nZQoJYWNjZXNzaWJsZSB3aXRoIGEgbG9uZSAibHVpIiBkb3duIGJ5IDMyNzY4LgoKMjAwMi0wNy0wOCAgTWFjaWVqIFcuIFJvenlja2kgIDxtYWNyb0BkczIucGcuZ2RhLnBsPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobG9hZF9hZGRyZXNzKTogVXNlIG5vbi10cmFwcGluZyAiZGFkZHUiCglpbnN0ZWFkIG9mICJkYWRkIiBpbiBhZGRyZXNzIGNhbGN1bGF0aW9ucy4KCShtYWNybyk6IExpa2V3aXNlLgoKMjAwMi0wNy0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKHByb2Nlc3Nfc3VmZml4KTogUmVtb3ZlIGludGVsIG1vZGUgbW92c3ggYW5kCgltb3Z6eCBmdWRnZXMuCgkobWRfYXNzZW1ibGUpOiBJbnN0ZWFkLCB6YXAgdGhlIHN1ZmZpeCBoZXJlLgoKMjAwMi0wNy0wMyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBORVdTOiBSZW1vdmUgbmV4dCByZWxlYXNlIG51bWJlciB1bnRpbCB0aGUgcmVsZWFzZSBpcyBhY3R1YWxseQoJdXBvbiB1cy4KCjIwMDItMDctMDMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbSAoY2hlY2stREVKQUdOVSk6IFJldmVydCAyMDAyLTA2LTI1IGNoYW5nZS4KCVJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDctMDIgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBjb25maWcvdGMtczM5MC5jICh0Y19zMzkwX2ZpeF9hZGp1c3RhYmxlKTogUHJldmVudCBhbnkgYWRqdXN0bWVudAoJdG8gc3ltYm9scyBpbiBtZXJnZSBzZWN0aW9ucywgZXZlbiBub24gcGMtcmVsYXRpdmUgb25lcy4KCjIwMDItMDYtMjkgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogY29uZmlnL3RjLW02OGhjMTEuaCAobTY4aGMxMV9saXN0aW5nX2hlYWRlcik6IEZpeCB3YXJuaW5nLgoKMjAwMi0wNi0yOSAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBjb25maWcvdGMtbTY4aGMxMS5oIChFTEZfVENfU1BFQ0lBTF9TRUNUSU9OUyk6IE5ldyBzZWN0aW9ucwoJLnNvZnRyZWdzIGFuZCAuZWVwcm9tLgoKMjAwMi0wNi0yOCAgRGF2aWQgTydCcmllbiAgPG9icmllbkBGcmVlQlNELm9yZz4KCgkqIE5FV1M6IE5vdGUgdGhlIG5leHQgcmVsZWFzZSBpcyAyLjEzLgoKMjAwMi0wNi0yNiAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBwby90ci5wbzogTmV3IHRyYW5zbGF0aW9uIGltcG9ydGVkLgoKMjAwMi0wNi0yNiAgRWxpYXMgQXRoYW5hc29wb3Vsb3MgIDxlYXRoYW5Ab3RlbmV0LmdyPgoKCSogZWNvZmYuYzogKGdldF90YWcpOiBSZXBsYWNlIHN0cmNweSB3aXRoIHhzdHJkdXAuCgkoZWNvZmZfZGlyZWN0aXZlX2RlZik6IExpa2V3aXNlLgoJKGVjb2ZmX2RpcmVjdGl2ZV90YWcpOiBMaWtld2lzZS4KCSogbGlzdGluZy5jIChmaWxlX2luZm8pOiBMaWtld2lzZS4KCSogaGFzaC5jICh3aGF0KTogTGlrZXdpc2UuCgoyMDAyLTA2LTI1ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIE1ha2VmaWxlLmFtIChjaGVjay1ERUpBR05VKTogU2V0IExDX0FMTD1DIGFuZCBleHBvcnQgaXQuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KCjIwMDItMDYtMTkgIERoYW5hbmpheSBSLiBEZXNocGFuZGUgPGRoYW5hbmpheWRAa3BpdC5jb20+CgoJKiBjb25maWcvdGMtc2guYyAoZ2V0X3NwZWNpZmljKTogUmV2ZXJ0IDIwMDItMDUtMDEgY2hhbmdlLgoJKGFzc2VtYmxlX3BwaSk6IEdlbmVyYXRlIHdhcm5pbmcgaWYgdGhlIHNhbWUgcmVnaXN0ZXIgaXMgdXNlZAoJdHdpY2UgYXMgZGVzdGluYXRpb24gaW4gdGhlIHNhbWUgcGFkZCAvIHBtdWxzIGluc3RydWN0aW9uLgoKMjAwMi0wNi0xOCAgRGF2ZSBCcm9sbGV5ICA8YnJvbGxleUByZWRoYXQuY29tPgoKCUZyb20gQ2F0aGVyaW5lIE1vb3JlLCBNaWNoYWVsIE1laXNzbmVyLCBSaWNoYXJkIFNhbmRpZm9yZCwgRGF2ZSBCcm9sbGV5CgkqIHBvL1BPVEZJTEVTLmluOiBBZGQgdGMtZnJ2LmMsIHRjLWZydi5oLgoJKiBjb25maWd1cmUuaW46IFN1cHBvcnQgZnJ2LSotKi4KCSogTWFrZWZpbGUuYW0gKENQVV9UWVBFUyk6IEFkZCBmcnYuCgkoVEFSR0VUX0NQVV9DRklMRVMpOiBBZGQgdGMtZnJ2LmMuCgkoVEFSR0VUX0NQVV9IRklMRVMpOiBBZGQgdGMtZnJ2LmguCgkoREVQVENfZnJ2X2NvZmYpOiBOZXcgdmFyaWFibGUuCgkoREVQVENfZnJ2X2VsZik6IE5ldyB2YXJpYWJsZS4KCShERVBPQkpfZnJ2X2NvZmYpOiBOZXcgdmFyaWFibGUuCgkoREVQT0JKX2Zydl9lbGYpOiBOZXcgdmFyaWFibGUuCgkoREVQX2Zydl9jb2ZmKTogTmV3IHZhcmlhYmxlLgoJKERFUF9mcnZfZWxmKTogTmV3IHZhcmlhYmxlLgoJKiB0Yy1mcnYuYzogTmV3IGZpbGUuCgkqIHRjLWZydi5oOiBOZXcgZmlsZS4KCjIwMDItMDYtMTcgIENhdGhlcmluZSBNb29yZSA8Y2xtQHJlZGhhdC5jb20+CgoJKiBjb25maWcvb2JqLWVsZi5oIChUQVJHRVRfU1lNQk9MX0ZJRUxEUyk6IENvbmRpdGlvbmFsbHkgZGVmaW5lLgoKMjAwMi0wNi0xNyAgSiJvcm4gUmVubmVja2UgPGpvZXJuLnJlbm5lY2tlQHN1cGVyaC5jb20+CgoJKiBjb25maWcvdGMtc2guYyAoYXNzZW1ibGVfcHBpKTogSW5pdGlhbGl6ZSByZWdfbi4KCjIwMDItMDYtMTcgIFRvbSBSaXggPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1pMzcwLmggKHRjX2NvbW1lbnRfY2hhcnMpOiBEZWZpbmUgZm9yIGkzNzAtZWxmLgoKMjAwMi0wNi0xNCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoJICAgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogZHdhcmYyZGJnLmggKGR3YXJmMl9kaXJlY3RpdmVfZmlsZSk6IFJldHVybiBjaGFyICouCgkqIGR3YXJmMmRiZy5jIChkd2FyZjJfZGlyZWN0aXZlX2ZpbGUpOiBSZXR1cm4gZmlsZW5hbWUuCgkqIGNvbmZpZy90Yy1taXBzLmMgKHNfbWlwc19maWxlKTogQ2FsbCBzX2FwcF9maWxlX3N0cmluZwoJYW5kIG5ld19sb2dpY2FsX2xpbmUgZm9yIHRoZSBmaXJzdCAuZmlsZSBkaXJlY3RpdmUuCgkqIHJlYWQuYyAoc19hcHBfZmlsZV9zdHJpbmcpOiBOZXcgZnVuY3Rpb24uCgkoc19hcHBfZmlsZSk6IENhbGwgaXQuCgkqIHJlYWQuaCAoc19hcHBfZmlsZV9zdHJpbmcpOiBBZGQgZGVjbGFyYXRpb24uCgoyMDAyLTA2LTE0ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogUmVtb3ZlIE1JUFNfU1RBQlNfRUxGLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoJKiBjb25maWcuaW46IFJlZ2VuZXJhdGVkLgoJKiBjb25maWcvb2JqLWVsZi5oIChFQ09GRl9ERUJVR0dJTkcpOiBEZWZpbmUgdG8gbWlwc19mbGFnX21kZWJ1ZwoJZm9yIE1JUFMgdGFyZ2V0cy4KCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19wc2V1ZG9fdGFibGUpOiBSZW1vdmUgI2lmZGVmIGFyb3VuZAoJIi5leHRlcm4iLgoJKHBkcl9zZWcpOiBEZWNsYXJlIHVuY29uZGl0aW9uYWxseS4KCShtZF9iZWdpbik6IEFsd2F5cyBnZW5lcmF0ZSAucGRyIHVubGVzcyBFQ09GRl9ERUJVR0dJTkcgb3Igbm90IEVMRi4KCShzX21pcHNfZW5kKTogTGlrZXdpc2UuICBHZW5lcmF0ZSBzdGFicyBmdW5jdGlvbiBtYXJrZXJzLgoJKHNfbWlwc19lbnQpOiBHZW5lcmF0ZSBzdGFicyBmdW5jdGlvbiBtYXJrZXJzLgoJKHNfbWlwc19mcmFtZSk6IEFsd2F5cyBnZW5lcmF0ZSAucGRyIHVubGVzcyBFQ09GRl9ERUJVR0dJTkcgb3Igbm90CglFTEYuCgkoc19taXBzX21hc2spOiBMaWtld2lzZS4KCShtaXBzX2ZsYWdfbWRlYnVnKTogTmV3LgoJKG1kX2xvbmdvcHRzKTogQWRkICJtZGVidWciIGFuZCAibm8tbWRlYnVnIi4KCShtZF9wYXJzZV9vcHRpb25zKTogQWRkIE9QVElPTl9NREVCVUcgYW5kIE9QVElPTl9OT19NREVCVUcuCgkobWlwc19hZnRlcl9wYXJzZV9hcmdzKTogU2V0IG1pcHNfZmxhZ19tZGVidWcuCgkqIGRvYy9hcy50ZXhpbmZvOiBBZGQgIi1tZGVidWciIGFuZCAiLW5vLW1kZWJ1ZyIgZm9yIE1JUFMuCgoyMDAyLTA2LTEzICBNYWNpZWogVy4gUm96eWNraSAgPG1hY3JvQGRzMi5wZy5nZGEucGw+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtZF9hcHBseV9maXgzKTogRG9uJ3Qgc3VidHJhY3QgdGhlIHN5bWJvbCdzCgl2YWx1ZSB0d2ljZSBmb3IgUkVMQSByZWxvY2F0aW9ucy4KCjIwMDItMDYtMTIgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogc3ltYm9scy5jIChyZXNvbHZlX3N5bWJvbF92YWx1ZSk6IEluaXRpYWxpc2UgZmluYWxfdmFsLgoKCSogc3Vic2Vncy5jIChzdWJzZWdzX3ByaW50X3N0YXRpc3RpY3MpOiBDYXN0IGZyY2hwIHRvIHZvaWQgKi4KCjIwMDItMDYtMTEgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtcHBjLmMgKHBwY19zdWJzZWdfYWxpZ24pOiBEZWxldGUuCgkocHBjX2NoYW5nZV9jc2VjdCk6IERlZmF1bHQgY3NlY3QgYWxpZ24gaXMgMi4KCSogY29uZmlnL3RjLXBwYy5oIChTVUJfU0VHTUVOVF9BTElHTik6IERlbGV0ZQoKMjAwMi0wNi0wOSAgTWFyZWsgTWljaGFsa2lld2ljeiAgPG1hcmVrbUBhbWVsZWsuZ2RhLnBsPgoKCSogY29uZmlnL3RjLWF2ci5jIChtY3VfdHlwZXMpOiBVcGRhdGUuCgoyMDAyLTA2LTA4ICBNYXR0IFRob21hcyAgPG1hdHRAM2FtLXNvZnR3YXJlLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAodmF4LSotbmV0YnNkZWxmKiwgdmF4LSotbmV0YnNkYW91dCopCgkodmF4LSotbmV0YnNkKik6IE5ldyB0YXJnZXRzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy9hb3V0X2dudS5oIChlbnVtIG1hY2hpbmVfdHlwZSk6IEFkZCBNX1ZBWDRLX05FVEJTRC4KCSogY29uZmlnL3RjLXZheC5jOiBBZGQgc3VwcG9ydCBmb3IgRUxGIGFuZCBQSUMuCgkoZmxhZ193YW50X3BpYyk6IE5ldyBmbGFnLgoJKGZsb2F0X2NvbnMpOiBGaXggcHJvdG90eXBlLgoJKG1kX2FwcGx5X2ZpeDMpOiBBZGp1c3QgZm9yIEJGRF9BU1NFTUJMRVIuCgkobWRfYXNzZW1ibGUpOiBJbnRyb2R1Y2UgYSBuZXcgaXNfYWJzb2x1dGUgbG9jYWwsIGFuZCB1c2UgaXQKCXJhdGhlciB0aGFuIHJlcGVhdGluZyB0aGUgdGVzdC4gIE1ha2UgZmF0YWwgZXJyb3JzIGFjdHVhbGx5CglmYXRhbCBieSB1c2luZyBhc19mYXRhbCBhcyBhcHByb3ByaWF0ZS4gIEFkanVzdCBmb3IgQkZEX0FTU0VNQkxFUi4KCUFkZCBzdXBwb3J0IGZvciBFTEYuICBBZGQgc3VwcG9ydCBmb3IgUElDLgoJKG1kX2NvbnZlcnRfZnJhZyk6IEFkanVzdCBmb3IgQkZEX0FTU0VNQkxFUi4KCSh0Y19hb3V0X2ZpeF90b19jaGFycyk6IE9ubHkgaW5jbHVkZSBpZiBPQkpfQU9VVCBhbmQgbm90CglCRkRfQVNTRU1CTEVSLgoJKHZheF9yZWdfcGFyc2UpOiBNYWtlIHRoZSAlIHJlZ2lzdGVyIHByZWZpeCBtYW5kYXRvcnkgZm9yIEVMRiwKCW9wdGlvbmFsIGZvciBhLm91dCwgYW5kIG5vdCBhbGxvd2VkIGZvciBWTVMuICBBZGp1c3QgYWxsIGNhbGxlcnMuCgkobWRfY3JlYXRlX3Nob3J0X2p1bXApOiBBZGQgQVRUUklCVVRFX1VOVVNFRCB0byB1bnVzZWQgYXJndW1lbnRzLgoJKG1kX2NyZWF0ZV9sb25nX2p1bXApOiBMaWtld2lzZS4KCShtZF91bmRlZmluZWRfc3ltYm9sKTogTGlrZXdpc2UuCgkobWRfc2VjdGlvbl9hbGlnbik6IExpa2V3aXNlLgoJKG1kX3Nob3J0b3B0cyk6IEFsbG93IC1rIGFuZCAtSyBmb3IgRUxGLgoJKG1kX3BhcnNlX29wdGlvbik6IFNldCBmbGFnX3dhbnRfcGljIGlmIC1rIG9yIC1LLgoJKHRjX2hlYWRlcnNfaG9vayk6IE5ldyBmdW5jdGlvbiBpZiBPQkpfQU9VVCBhbmQgbm90IEJGRF9BU1NFTUJMRVIuCgkodGNfZ2VuX3JlbG9jKTogTmV3IGZ1bmN0aW9uIGlmIEJGRF9BU1NFTUJMRVIuCgkqIGNvbmZpZy90Yy12YXguaCAodGNfaGVhZGVyc19ob29rKTogUmVtb3ZlLgoJKFRBUkdFVF9GT1JNQVQpOiBTZXQgYWNjb3JkaW5nIHRvIG9iamVjdCBmb3JtYXQgYW5kIHRhcmdldAoJZW52aXJvbm1lbnQuCgkoQkZEX0FSQ0gsIFRBUkdFVF9BUkNIKTogRGVmaW5lLgoJKE5PX1JFTE9DKTogQWRqdXN0IGZvciBCRkRfQVNTRU1CTEVSLgoJKFRDX1JFTE9DX1JUU1lNX0xPQ19GSVhVUCwgVENfRklYX0FESlVTVEFCTEUpCgkodGNfZml4X2FkanVzdGFibGUpOiBEZWZpbmUgaWYgQkZEX0FTU0VNQkxFUi4KCSogY29uZmlnL3ZheC1pbnN0LmggKFZBWF9KU0IsIFZBWF9DQUxMUywgVkFYX0NBTExHKTogRGVmaW5lLgoKMjAwMi0wNi0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoJKiBhcy5jOiBSZXBsYWNlIENPTlNUIHdpdGggY29uc3QuCgkqIHdyaXRlLmM6IExpa2V3aXNlLgoJKiBjb25maWcvb2JqLWNvZmYuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1hMjlrLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtYXJtLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtZGx4LmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaDgzMDAuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1oODUwMC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWkzNzAuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1pODYwLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaTk2MC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW02OGhjMTEuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1tNjhrLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbTg4ay5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW1jb3JlLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbWlwcy5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW5zMzJrLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtcGRwMTEuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1wai5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXMzOTAuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1zaC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXNwYXJjLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtdGFob2UuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy10aWM4MC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXY4NTAuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy12YXguYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy13NjUuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy16OGsuYzogTGlrZXdpc2UuCgoyMDAyLTA2LTA4ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCglCYXNlZCBvbiBwYXRjaCBmcm9tIE1hdHQgR3JlZW46CgkqIGNvbmZpZy9vYmotZWxmLmggKEVDT0ZGX0RFQlVHR0lORyk6IE1ha2UgY29uZmlndXJhYmxlLgoJKiBjb25maWcvdGMtbWlwcy5jIChzX21pcHNfZmlsZSk6IFJlbmFtZWQgZnJvbSBzX2ZpbGUuCgkoc19taXBzX2xvYyk6IE5ldyBmdW5jdGlvbi4KCShtaXBzX25vbmVjb2ZmX3BzZXVkb190YWJsZSk6IENhbGwgdGhlbS4KCShhcHBlbmRfaW5zbik6IENhbGwgZHdhcmYyX2VtaXRfaW5zbi4KCjIwMDItMDYtMDggIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzX29wdHMpOiBGaXggY29tbWVudCwgYWxsIEFTRSBmaWVsZHMgYXJlIHNldAoJdG8gLTEuCgkoZmlsZV9hc2VfbWlwczE2KTogTmV3IHZlcmlhYmxlLgoJKG1pcHNfZWFiaTY0KTogUmVtb3ZlLgoJKENQVV9IQVNfTUlQUzE2KTogTmV3IGRlZmluZS4KCShDUFVfSEFTX01ETVgpOiBGaXggZGF0YSB0eXBlLgoJKG1kX2JlZ2luKTogQ29kZSBjbGVhbnVwLiBVc2UgZmlsZV9hc2VfbWlwczE2LgoJKG1pcHNfZWxmX2ZpbmFsX3Byb2Nlc3NpbmcpOiBIYW5kbGUgbWlwczE2IGhlYWRlciBmbGFnLgoJSGFuZGxlIEVBQkkgZmxhZyB3aXRob3V0IGludGVybWVkaWF0ZSB2YXJpYWJsZS4KCjIwMDItMDYtMDggIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBkb2MvYXMudGV4aW5mbzogVXBkYXRlIE1JUFMgZG9jdW1lbnRhdGlvbi4KCjIwMDItMDYtMDggIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jOiBBZGQgZGVmaW5lIGZvciAkemVybyByZWdpc3Rlci4KCShtZF9iZWdpbik6IEFkZCAkemVybyBhcyBhbGlhcyBuYW1lIGZvciAkMC4KCShpbnNuX3VzZXNfcmVnKTogVXNlIFpFUk8gZGVmaW5lLgoJKG1pcHNfaXApOiBBZGQgJHplcm8gYXMgYWxpYXMgbmFtZSBmb3IgJDAuCgkobWlwczE2X2lwKTogTGlrZXdpc2UuCgkoc19jcGxvY2FsKTogRGVtYW5kIGVtcHR5IHJlc3Qgb2YgaW5wdXQgbGluZS4KCSh0Y19nZXRfcmVnaXN0ZXIpOiBMaWtld2lzZS4gQWRkIHN1cHBvcnQgZm9yICRrdDAsIGt0MSByZWdpc3RlcgoJbmFtZXMuIFVzZSBaRVJPIGRlZmluZS4gRml4IGlucHV0X2xpbmVfcG9pbnRlciBwcm9ncmVzcy4KCjIwMDItMDYtMDcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBzeW1ib2xzLmM6IFJlcGxhY2UgQ09OU1QgYnkgY29uc3QgdGhyb3VnaG91dC4KCShzeW1ib2xfZmluZF9leGFjdCk6IFNwbGl0IG91dCBmcm9tLi4KCShzeW1ib2xfZmluZF9iYXNlKTogLi5oZXJlLgoJKiBzeW1ib2xzLmg6IFJlcGxhY2UgQ09OU1QgYnkgY29uc3QgdGhyb3VnaG91dC4KCShzeW1ib2xfZmluZF9leGFjdCk6IERlY2xhcmUuCgkqIGNvbmZpZy9vYmotZWxmLmM6ICNpbmNsdWRlICJzdHJ1Yy1zeW1ib2wuaCIuCgkoZWxmX2Zyb2JfZmlsZSk6IElmIGdyb3VwIG5hbWUgbWF0Y2hlcyBhbiBleHBvcnRlZCBzeW1ib2wsIHVzZSB0aGF0CglzeW1ib2wgZm9yIHRoZSBzaWduYXR1cmUgYW5kICIuZ3JvdXAiIGFzIHRoZSBzZWN0aW9uIG5hbWUuCgoyMDAyLTA2LTA2ICBKIm9ybiBSZW5uZWNrZSA8am9lcm4ucmVubmVja2VAc3VwZXJoLmNvbT4KCgkqIGNvbmZpZy90Yy1zaC5jIChwYXJzZV9hdCk6IEAoc3ltYm9sLHBjKSBpcyBBX0RJU1BfUEMgYWdhaW4sCglidXQgd2FybiBhYm91dCBpdC4KCjIwMDItMDYtMDYgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogdGMtbWlwcy5jIChtaXBzX2FmdGVyX3BhcnNlX2FyZ3MpOiBBbHdheXMgc2V0IG1pcHNfb3B0cy5hc2VfbWlwczNkCglhbmQgbWlwc19vcHRzLmFzZV9tZG14IGlmIHRoZXkgYXJlIHVuaW5pdGlhbGl6ZWQuCgoyMDAyLTA2LTA2ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogZ2FzL2NvbmZpZy90Yy1ocHBhLmMgKHBhX2lwKTogUmVwbGFjZSAiTCQwXDAwMSIgd2l0aCBGQUtFX0xBQkVMX05BTUUuCgkoaHBwYV9mb3JjZV9yZWxvY2F0aW9uKTogQ2hlY2sgaWYgYSBzdHViIGp1c3QgYmVmb3JlIHRoZSBzdGFydCBzeW1ib2wKCW9mIHRoZSBsYXN0IGNhbGxfaW5mbyBpcyByZWFjaGFibGUgYmVmb3JlIGZvcmNpbmcgcmVsb2NhdGlvbi4gIEZpeAoJdHlwby4KCjIwMDItMDYtMDQgIE1hY2llaiBXLiBSb3p5Y2tpICA8bWFjcm9AZHMyLnBnLmdkYS5wbD4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfYWZ0ZXJfcGFyc2VfYXJncyk6IE5ldyBmdW5jdGlvbi4KCShtZF9iZWdpbik6IE1vdmUgcHJvY2Vzc2luZyBvZiBkZWZhdWx0cyB0byBtaXBzX2FmdGVyX3BhcnNlX2FyZ3MuCgljb25maWcvdGMtbWlwcy5oIChtZF9hZnRlcl9wYXJzZV9hcmdzKTogRGVmaW5lLgoKMjAwMi0wNi0wNCAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoc2g1Kik6IFNldCBjcHVfdHlwZSB0byBzaDY0IGFuZCBlbmRpYW4gdG8gYmlnLgoJKHNoNWxlKiwgc2g2NGxlKik6IFNldCBjcHVfdHlwZSB0byBzaDY0IGFuZCBlbmRpYW4gdG8gbGl0dGxlLgoJKHNoNSotKi1uZXRic2QqLCBzaDY0Ki0qLW5ldGJzZCopOiBOZXcgdGFyZ2V0cy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjb25maWcvdGMtc2g2NC5jIChzaDY0X3RhcmdldF9mb3JtYXQpOiBBZGQgc3VwcG9ydCBmb3IgTmV0QlNECgllbnZpcm9ubWVudC4KCjIwMDItMDYtMDQgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWcvdGMtc2g2NC5oIChNRF9QQ1JFTF9GUk9NX1NFQ1RJT04pOiBVbmRlZiBiZWZvcmUgcmVkZWZpbmluZy4KCjIwMDItMDYtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvb2JqLWVsZi5jIChvYmpfZWxmX2NoYW5nZV9zZWN0aW9uKTogU2V0IGFuZCBjaGVjayBlbGYKCWxpbmtvbmNlIGZsYWcuICBQcmludCBhbGwgd2FybmluZ3MuCgkob2JqX2VsZl9zZWN0aW9uKTogUGFyc2UgIixjb21kYXQiIGZvciBncm91cHMuCgkoZWxmX2Zyb2JfZmlsZSk6IFNldCBTRUNfTElOS19PTkNFIG9uIENPTURBVCBncm91cHMuICBDaGVjawoJY29uc2lzdGVuY3kgb2YgY29tZGF0IGZsYWcuCgoyMDAyLTA2LTAyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWFscGhhLmMgKGFscGhhX2FkanVzdF9zeW10YWJfcmVsb2NzKTogRml4IHRoaW5rbwoJd2l0aCBMSVRFUkFMcyB3aXRob3V0IHNlcXVlbmNlIG51bWJlcnMuCgoyMDAyLTA2LTAxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWFscGhhLmM6IE1vdmUgTElUVVNFIGNvbnN0YW50cyB0byAiZWxmL2FscGhhLmgiLgoJUmVuYW1lIHRoZW0gTElUVVNFX0FMUEhBXyouCgoyMDAyLTA1LTMxICBTaHJpbml2YXMgQXRyZSA8U2hyaW5pdmFzQUBrcGl0LmNvbT4KCgkqIGNvbmZpZy90Yy1oODMwMC5jIChnZXRfb3BlcmFuZCk6IEFsbG93IHN0bS5sIGFuZCBsZG0ubCBpbnNucyB0bwoJYWNjZXB0IHBhcmVudGhlc2VzIGVuY2xvc2VkIHJlZ2lzdGVyIGxpc3RzLgoKMjAwMi0wNS0zMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL1BPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wNS0zMSAgR3JhZW1lIFBldGVyc29uICA8Z3BAcW54LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGkzODYtKi1udG8tcW54Ki4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wNS0zMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfaXApOiBVc2UgdW5zaWduZWQgbG9uZyB2YWx1ZXMgZm9yCgl3YXJuaW5nIG91dHB1dC4KCjIwMDItMDUtMzEgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChzX2Nwc2V0dXApOiBGaXggaW5pdGlhbGl6YXRpb24gb2YKCW1pcHNfY3ByZXR1cm5fcmVnaXN0ZXIgYW5kIG1pcHNfY3ByZXR1cm5fb2Zmc2V0LgoKMjAwMi0wNS0zMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKHNfY3BzZXR1cCk6IEZpeCBjb21tZW50LgoKMjAwMi0wNS0zMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1kX2JlZ2luKTogQWRkICRyYSBhcyBhbGlhcyBuYW1lIGZvciAkMzEuCgkobWlwc19pcCk6IExpa2V3aXNlLgoJKG1pcHMxNl9pcCk6IExpa2V3aXNlLgoJKHRjX2dldF9yZWdpc3Rlcik6IExpa2V3aXNlLgoKMjAwMi0wNS0zMCAgQ2hyaXMgRy4gRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCSAgICBFZCBTYXR0ZXJ0aHdhaXRlICA8ZWhzQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfc2V0X29wdGlvbnMpOiBOZXcgImFzZV9tZG14IiBtZW1iZXIuCgkobWlwc19vcHRzKTogSW5pdGlhbGl6ZSAiYXNlX21kbXgiIG1lbWJlci4KCShmaWxlX2FzZV9tZG14KTogTmV3IHZhcmlhYmxlLgoJKENQVV9IQVNfTURNWCk6IE5ldyBtYWNyby4KCShtZF9iZWdpbik6IEluaXRpYWxpemUgbWlwc19vcHRzLmFzZV9tZG14IGFuZCBmaWxlX2FzZV9tZG14CgliYXNlZCBvbiBjb21tYW5kIGxpbmUgb3B0aW9ucyBhbmQgY29uZmlndXJhdGlvbiBkZWZhdWx0cy4KCShtYWNyb19idWlsZCk6IE5vdGUgaW4gY29tbWVudCB0aGF0IHVzZSBvZiBNRE1YIGluIG1hY3JvcyBpcwoJbm90IGN1cnJlbnRseSBhbGxvd2VkLgoJKHZhbGlkYXRlX21pcHNfaW5zbik6IEFkZCBzdXBwb3J0IGZvciB0aGUgIk8iLCAiUSIsICJYIiwgIlkiLCBhbmQKCSJaIiBNRE1YIG9wZXJhbmQgdHlwZXMuCgkobWlwc19pcCk6IEFjY2VwdCBNRE1YIGluc3RydWN0aW9ucyBpZiBtaXBzX29wdHMuYXNlX21kbXggaXMgc2V0LAoJYW5kIGFkZCBzdXBwb3J0IGZvciB0aGUgIk8iLCAiUSIsICJYIiwgIlkiLCBhbmQgIloiIE1ETVggb3BlcmFuZAoJdHlwZXMuCgkoT1BUSU9OX01ETVgsIE9QVElPTl9OT19NRE1YLCBtZF9sb25nb3B0cywgbWRfcGFyc2Vfb3B0aW9uKToKCUFkZCBzdXBwb3J0IGZvciAiLW1kbXgiIGFuZCAiLW5vLW1kbXgiIG9wdGlvbnMuCgkoT1BUSU9OX0VMRl9CQVNFKTogTW92ZSB0byBhY2NvbW9kYXRlIG5ldyBvcHRpb25zLgoJKHNfbWlwc3NldCk6IFN1cHBvcnQgIi5zZXQgbWRteCIgYW5kICIuc2V0IG5vbWRteCIuCgkobWlwc19lbGZfZmluYWxfcHJvY2Vzc2luZyk6IFNldCBNRE1YIEFTRSBFTEYgaGVhZGVyIGZsYWcgaWYKCWZpbGVfYXNlX21kbXggd2FzIHNldC4KCSogZG9jL2FzLnRleGluZm86IERvY3VtZW50IC1tZG14IGFuZCAtbm8tbWRteCBvcHRpb25zLgoJKiBkb2MvYy1taXBzLnRleGk6IExpa2V3aXNlLCBhbmQgZG9jdW1lbnQgIi5zZXQgbWRteCIgYW5kICIuc2V0Cglub21kbXgiIGRpcmVjdGl2ZXMuCgoyMDAyLTA1LTMxICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoT1BUSU9OX05PX003MDAwX0hJTE9fRklYKTogUmVuYW1lIHRvCglPUFRJT05fTU5PXzcwMDBfSElMT19GSVguIEFkZCBhbHRlcm5hdGUgIm1uby1maXg3MDAwIgoJY29tbWFuZCBsaW5lIHN3aXRjaCBjb25mb3JtaW5nIHRvIGdjYyBjb252ZW50aW9ucy4KCSogZG9jL2MtbWlwcy50ZXhpOiBEb2N1bWVudCAtbW5vLWZpeDcwMDAgaW5zdGVhZCBvZiBuby1tZml4LTcwMDAuCgoyMDAyLTA1LTMxICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWFjcm9fYnVpbGRfamFscik6IE5ldyBGdW5jdGlvbi4KCShtZF9iZWdpbik6IE5ld0FCSSB1c2VzIGJpZyBHT1RzLgoJKG1hY3JvX2J1aWxkKTogUmVjb2duaXplIEJGRF9SRUxPQ19NSVBTX0dPVF9ESVNQLAoJQkZEX1JFTE9DX01JUFNfR09UX1BBR0UsIEJGRF9SRUxPQ19NSVBTX0dPVF9PRlNUIGFzIHZhbGlkLgoJKGxvYWRfYWRkcmVzcyk6IEFkZCBzb21lIE5ld0FCSSBQSUMgc3VwcG9ydC4KCShtYWNybyk6IExpa2V3aXNlLgoJKG1kX2FwcGx5X2ZpeCk6IFNwZWNpYWwgaGFuZGxpbmcgZm9yIEJGRF9SRUxPQ19NSVBTX0pBTFIuCgkodGNfZ2VuX3JlbG9jKTogRG9uJ3QgZW5jb2RlIE5ld0FCSSB2dGFibGVzIGluIFJFTCByZWxvY2F0aW9ucy4KCjIwMDItMDUtMzEgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChsb2FkX2FkZHJlc3MpOiBVc2UgbWlwc19ncF9yZWdpc3RlciBpbnN0ZWFkCglvZiBoYXJkY29kZWQgdmFsdWUuIFJlbW92ZSBkYmwgcGFyYW1ldGVyLCB1c2UgSEFWRV8zMkJJVF9BRERSRVNTRVMKCWluc3RlYWQuCgkobWFjcm8pOiBVc2UgbWlwc19ncF9yZWdpc3RlciBpbnN0ZWFkIG9mIGhhcmRjb2RlZCB2YWx1ZS4KCjIwMDItMDUtMzAgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBleHByLmggKG9wZXJhdG9yVCk6IEFkZCBPX21kMTcuLk9fbWQzMi4KCSogY29uZmlnL3RjLWFscGhhLmMgKE9fbGl0dXNlX3Rsc2dkLCBPX2xpdHVzZV90bHNsZG0sIE9fdGxzZ2QsCglPX3Rsc2xkbSwgT19nb3RkdHByZWwsIE9fZHRwcmVsaGksIE9fZHRwcmVsbG8sIE9fZHRwcmVsLCBPX2dvdHRwcmVsLAoJT190cHJlbGhpLCBPX3RwcmVsbG8sIE9fdHByZWwpOiBOZXcuCgkoVVNFUl9SRUxPQ19QLCBhbHBoYV9yZWxvY19vcF90YWcsIGRlYnVnX2V4cCk6IEluY2x1ZGUgdGhlbS4KCShEVU1NWV9SRUxPQ19MSVRVU0VfVExTR0QsIERVTU1ZX1JFTE9DX0xJVFVTRV9UTFNMRE0pOiBOZXcuCgkoTElUVVNFX1RMU0dELCBMSVRVU0VfVExTTERNKTogTmV3LgoJKHN0cnVjdCBhbHBoYV9yZWxvY190YWcpOiBBZGQgbWFzdGVyLCBzYXdfdGxzZ2QsIHNhd190bHNsZCwKCXNhd19sdV90bHNnZCwgc2F3X2x1X3Rsc2xkbS4gIE1ha2UgbXVsdGlfc2VjdGlvbl9wIGEgYml0IGZpZWxkLgoJKG1kX2FwcGx5X2ZpeDMpOiBIYW5kbGUgVExTIHJlbG9jYXRpb25zLgoJKGFscGhhX2ZvcmNlX3JlbG9jYXRpb24sIGFscGhhX2ZpeF9hZGp1c3RhYmxlKTogTGlrZXdpc2UuCgkoYWxwaGFfYWRqdXN0X3N5bXRhYl9yZWxvY3MpOiBTb3J0IExJVEVSQUwgcmVsb2NzIGFmdGVyIHRoZQoJYXNzb2NpYXRlZCBUTFMgcmVsb2MuICBDaGVjayBsaXR1c2VfdGxzIHJlbG9jcyBtYXRjaCB1cC4KCShlbWl0X2luc24pOiBIYW5kbGUgVExTIHJlbG9jYXRpb25zLgoJKGxkWF9vcCk6IFJlbW92ZS4KCgkqIGRvYy9jLWFscGhhLnRleGk6IEFkZCBkb2NzIGZvciB0bHMgcmVsb2NhdGlvbnMuCgoyMDAyLTA1LTMwICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19ncHJlbF9vZmZzZXQpOiBOZXcgdmFyaWFibGUuCgkoc19ncHZhbHVlKTogVXNlIGl0LgoKMjAwMi0wNS0zMCAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJKiBnYXMvY29uZmlnL3RjLWQxMHYuYyAoY2hlY2tfcmVzb3VyY2VfY29uZmxpY3QpOiBPbmx5IGNoZWNrCgl3cml0ZS13cml0ZSBjb25mbGljdHMuCgkobWRfYXNzZW1ibGUpOiBSZWZvcm1hdCBpbnRyb2R1Y3RvcnkgY29tbWVudC4KCShwYXJhbGxlbF9vayk6IFByZXZlbnQgcGFja2luZyBvbmx5IGlmIHRoZSBmaXJzdAoJaW5zdHJ1Y3Rpb24gY2Fubm90IGJlIHBhY2tlZC4KCjIwMDItMDUtMzAgIEphc29uIEVja2hhcmR0IDxqbGVAcmVkaGF0LmNvbT4KCSAgICBUb20gUml4IDx0cml4QHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtZDEwdi5jIChidWlsZF9pbnNuKTogQ2hlY2sgZm9yIGltbWVkaWF0ZXMuCgoyMDAyLTA1LTI4ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYzogUmVwbGFjZSBHUCBpbiBjb21tZW50cyBieSAkZ3AuCgkobWlwc19iaWdfZ290KTogSW5pdGlhbGl6ZS4KCShtaXBzX3RyYXApOiBJbml0aWFsaXplLgoJKGxvYWRfYWRkcmVzcyk6IFVzZSBtaXBzX2dwX3JlZ2lzdGVyIGluc3RlYWQgb2YgaGFyZGNvZGVkIHZhbHVlLgoJUmVtb3ZlIGRibCBwYXJhbWV0ZXIsIHVzZSBIQVZFXzMyQklUX0FERFJFU1NFUyBpbnN0ZWFkLgoJKG1hY3JvKTogVXNlIG1pcHNfZ3BfcmVnaXN0ZXIgaW5zdGVhZCBvZiBoYXJkY29kZWQgdmFsdWUuCgkobWFjcm8yKTogQ2hhbmdlIGxvYWRfYWRkcmVzcyBjYWxscy4KCShtZF9wY3JlbF9mcm9tKTogQ29tbWVudCBmb3JtYXR0aW5nLgoJKHNfY3Bsb2FkKTogVXNlIG1pcHNfZ3BfcmVnaXN0ZXIgaW5zdGVhZCBvZiBoYXJkY29kZWQgdmFsdWUuCgkoc19jcHJlc3RvcmUpOiBMaWtld2lzZS4gQ29tbWVudCBmb3JtYXR0aW5nLgoJKHNfZ3B3b3JkKTogRml4IGRhdGEgdHlwZS4KCShzX2NwYWRkKTogVXNlIG1pcHNfZ3BfcmVnaXN0ZXIgaW5zdGVhZCBvZiBoYXJkY29kZWQgdmFsdWUuCgkobm9waWNfbmVlZF9yZWxheCk6IFJlcGxhY2UgR1AgaW4gY29tbWVudHMgYnkgJGdwLgoJKG1pcHNfZWxmX2ZpbmFsX3Byb2Nlc3NpbmcpOiBCZXR0ZXIgY29tbWVudC4KCjIwMDItMDUtMjggIEt1YW5nIEh3YSBMaW4gPGt1YW5nQHNiY2dsb2JhbC5uZXQ+CgoJKiBjb25maWd1cmUuaW46IEFkZCBETFggY29uZmlndXJhdG9uCgkqIE1ha2VmaWxlLmFtOiBBZGQgRExYIGNvbmZpZ3VyYXRvbgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWcvdGMtZGx4LmM6IE5ldyBmaWxlLgoJKiBjb25maWcvdGMtZGx4Lmg6IE5ldyBmaWxlcy4KCSogTkVXUzogTWVudGlvbiBuZXcgc3VwcG9ydC4KCjIwMDItMDUtMjcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogY29uZmlnL29iai1jb2ZmLmMgKHdyaXRlX29iamVjdF9maWxlKTogQWRkIG1pc3Npbmcgc2VtaWNvbG9uLgoKMjAwMi0wNS0yNiAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfZW1pdF9kZWxheXMpOiBSZXBsYWNlIG1hZ2ljIGNvbnN0YW50IGZvciBSQQoJYnkgdGhlIGRlZmluZS4gUmVtb3ZlIHN1cGVyZmx1b3VzIGNoZWNrIG9mIG1pcHNfb3B0cy5taXBzMTYuCgkoYXBwZW5kX2luc24pOiBMaWtld2lzZS4gQ2Fub25pY2FsaXplIHZhcmlhYmxlIGluY3JlbWVudHMuCgkobWFjcm9fYnVpbGQpOiBDYW5vbmljYWxpemUgdmFyaWFibGUgaW5jcmVtZW50cy4KCShtYWNyb19idWlsZF9sdWkpOiBMaWtld2lzZS4KCShsb2FkX3JlZ2lzdGVyKTogTGlrZXdpc2UuCgkobG9hZF9hZGRyZXNzKTogTW92ZSBwb2ludGVyIGluaXRpYWxpemF0aW9uLgoJKG1hY3JvKTogTW92ZSBwb2ludGVyIHRvIGEgbW9yZSBsb2NhbCBzY29wZS4gQ2Fub25pY2FsaXplIHZhcmlhYmxlCglpbmNyZW1lbnRzLiBCZXR0ZXIgY29tbWVudHMuIFJlcGxhY2UgbWFnaWMgY29uc3RhbnQgZm9yIFJBIGJ5IHRoZQoJZGVmaW5lLgoJKG1hY3JvMik6IFJlcGxhY2UgbWFnaWMgY29uc3RhbnQgZm9yIFJBIGJ5IHRoZSBkZWZpbmUuIENhbm9uaWNhbGl6ZQoJdmFyaWFibGUgaW5jcmVtZW50cy4KCShtaXBzX2lwKTogQ2Fub25pY2FsaXplIHZhcmlhYmxlIGluY3JlbWVudHMuCgkobWlwczE2X2lwKTogUmVwbGFjZSBtYWdpYyBjb25zdGFudCBmb3IgUkEgYnkgdGhlIGRlZmluZS4KCShteV9nZXRTbWFsbFBhcnNlcik6IENhbm9uaWNhbGl6ZSB2YXJpYWJsZSBpbmNyZW1lbnRzL2RlY3JlbWVudHMuCgkobXlfZ2V0UGVyY2VudE9wKTogTGlrZXdpc2UuCgkobXlfZ2V0U21hbGxFeHByZXNzaW9uKTogTGlrZXdpc2UuCgkoc19hbGlnbik6IExpa2V3aXNlLgoJKHNfbWlwc3NldCk6IExpa2V3aXNlLgoJKHNfY3BzZXR1cCk6IExpa2V3aXNlLgoJKHNfaW5zbik6IFJlbW92ZSBzdXBlcmZsdW91cyBjaGVjayBvZiBtaXBzX29wdHMubWlwczE2LgoJKHNfbWlwc19zdGFiKTogTGlrZXdpc2UuCgkobWlwc19oYW5kbGVfYWxpZ24pOiBDYW5vbmljYWxpemUgdmFyaWFibGUgaW5jcmVtZW50cy4KCShzX21pcHNfZW50KTogTGlrZXdpc2UuCgkoc19taXBzX2VuZCk6IEFkZCBjb21tZW50LgoKMjAwMi0wNS0yNiAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogVXNlIG5zMzJrLSotbmV0YnNkKiBpbnN0ZWFkIG9mIG5zMzJrLXBjNTMyLW5ldGJzZCouCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMDUtMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbSAoT0JKUyk6IERlcGVuZCBvbiBhbnNpZGVjbC5oIGFuZCBmb3Blbi1zYW1lLmguCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBkZXAtaW4uc2VkOiBSZW9yZGVyIHRvIG1hdGNoIE9CSlMgaW4gTWFrZWZpbGUuYW0uCgkqIGNvbmZpZ3VyZS5pbiAoQUxMX09CSl9ERVBTKTogQWRkIHN5bWNhdC5oIHdoZW4gbmVlZF9iZmQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogYXMuaDogVXNlICNpbmNsdWRlICIiIGluc3RlYWQgb2YgPD4gZm9yIGxvY2FsIGhlYWRlciBmaWxlcy4KCSogZmxvbnVtLWtvbnN0LmM6IExpa2V3aXNlLgoJKiBmbG9udW0tbXVsdC5jOiBMaWtld2lzZS4KCSogZ2FzcC5jOiBMaWtld2lzZS4KCSogbGlzdGluZy5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWlhNjQuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy12ODUwLmg6IExpa2V3aXNlLgoKMjAwMi0wNS0yNCAgVEFNVVJBIEtlbnQgPGtlbnRAbmV0YnNkLm9yZz4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGEgdGFyZ2V0IGZvciBpMzg2LW5ldGJzZHBlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTA1LTIzICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9vYmotZWxmLmMgKGVsZl9jb21tb24pOiBSZW5hbWVkIGZyb20gb2JqX2VsZl9jb21tb24uCgkob2JqX2VsZl9jb21tb24pOiBDYWxsIGVsZl9jb21tb24uCgkob2JqX2VsZl90bHNfY29tbW9uKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9wc2V1ZG9fdGFiKTogU3VwcG9ydCAudGxzX2NvbW1vbi4KCShzcGVjaWFsX3NlY3Rpb25zKTogQWRkIC50ZGF0YSBhbmQgLnRic3MuCgkob2JqX2VsZl9jaGFuZ2Vfc2VjdGlvbik6IFNldCBTRUNfVEhSRUFEX0xPQ0FMIGZvciBTSEZfVExTCglzZWN0aW9ucy4KCShvYmpfZWxmX3BhcnNlX3NlY3Rpb25fbGV0dGVycyk6IFN1cHBvcnQgVCBpbiBzZWN0aW9uIGZsYWdzIChTSEZfVExTKS4KCShvYmpfZWxmX3BhcnNlX3NlY3Rpb25fbGV0dGVycyk6IEluY2x1ZGUgVCBpbiBlcnJvciBtZXNzYWdlLgoJKiBjb25maWcvdGMtcHBjLmMgKHBwY19zZWN0aW9uX2xldHRlcik6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtYWxwaGEuYyAoYWxwaGFfZWxmX3NlY3Rpb25fbGV0dGVyKTogTGlrZXdpc2UuCgkodGNfZ2VuX3JlbG9jKTogSGFuZGxlIFNFQ19USFJFQURfTE9DQUwgdGhlIHNhbWUgd2F5IGFzCglTRUNfTUVSR0UuCgkqIGNvbmZpZy90Yy1zcGFyYy5jIChtZF9hcHBseV9maXgzKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1pMzg2LmMgKHRjX2kzODZfZml4X2FkanVzdGFibGUpOiBBZGQgVExTIHJlbG9jcy4KCURlZmluZSB0aGVtIGlmIG5vdCBCRkRfQVNTRU1CTEVSLgoJKGxleF9nb3QpOiBTdXBwb3J0IEBUTFNHRCwgQFRMU0xETSwgQEdPVFRQT0ZGLCBAVFBPRkYsIEBEVFBPRkYKCWFuZCBATlRQT0ZGLgoJKG1kX2FwcGx5X2ZpeDMpOiBBZGQgVExTIHJlbG9jcy4KCSogY29uZmlnL3RjLWlhNjQuYyAoZW51bSByZWxvY19mdW5jKTogQWRkIEZVTkNfRFRQX01PRFVMRSwKCUZVTkNfRFRQX1JFTEFUSVZFLCBGVU5DX1RQX1JFTEFUSVZFLCBGVU5DX0xUX0RUUF9NT0RVTEUsCglGVU5DX0xUX0RUUF9SRUxBVElWRSwgRlVOQ19MVF9UUF9SRUxBVElWRS4KCShwc2V1ZG9fZnVuYyk6IFN1cHBvcnQgQGR0cG1vZCgpLCBAZHRwcmVsKCkgYW5kIEB0cHJlbCgpLgoJKGlhNjRfZWxmX3NlY3Rpb25fbGV0dGVyKTogSW5jbHVkZSBUIGluIGVycm9yIG1lc3NhZ2UuCgkobWRfYmVnaW4pOiBTdXBwb3J0IFRMUyBvcGVyYXRvcnMuCgkobWRfb3BlcmFuZCk6IExpa2V3aXNlLgoJKGlhNjRfZ2VuX3JlYWxfcmVsb2NfdHlwZSk6IFN1cHBvcnQgVExTIHJlbG9jcy4KCSogd3JpdGUuYyAoYWRqdXN0X3JlbG9jX3N5bXMpOiBEb24ndCBjaGFuZ2Ugc3ltYm9scyBpbgoJU0VDX1RIUkVBRF9MT0NBTCBzZWN0aW9ucyB0byBTVFRfU0VDVElPTiArIGFkZGVuZC4KCjIwMDItMDUtMjMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWFybS5jIChtZF9hcHBseV9maXgzKTogRm9yIHRoZSBUaHVtYiBCTFggcmVsb2MKCXJvdW5kIHRoZSByZWxvY2F0aW9uIHVwIHJhdGhlciB0aGFuIGRvd24uCgoyMDAyLTA1LTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9vYmotY29mZi5jIChvYmpfY29mZl9zZWN0aW9uKTogU2lsZW50bHkgaWdub3JlIGFuICdhJwoJZmxhZy4KCSogZG9jL2FzLnRleGluZm86IERvY3VtZW50IHRoYXQgdGhlIENPRkYgdmVyc2lvbiBvZiAuc2VjdGlvbgoJaWdub3JlcyB0aGUgJ2EnIGZsYWcuCgoyMDAyLTA1LTIzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWFscGhhLmMgKGFzc2VtYmxlX3Rva2Vucyk6IFByb3RlY3QgdXNlIG9mCglBTFBIQV9SRUxPQ19UQUJMRSB3aXRoICNpZmRlZiBSRUxPQ19PUF9QLgoKCSogd3JpdGUuYyAoc2l6ZV9zZWcpOiBDaGVjayBhZGp1c3RtZW50IHRvIGxhc3QgZnJhZy4KCShTVUJfU0VHTUVOVF9BTElHTik6IElmIEhBTkRMRV9BTElHTiBkZWZpbmVkLCBwYWQgb3V0IGxhc3QgZnJhZyB0bwoJc2VjdGlvbiBhbGlnbm1lbnQuCgkqIGNvbmZpZy9vYmotY29mZi5jIChTVUJfU0VHTUVOVF9BTElHTik6IExpa2V3aXNlLgoJKiBjb25maWcvb2JqLWllZWUuYyAoU1VCX1NFR01FTlRfQUxJR04pOiBMaWtld2lzZS4KCSh3cml0ZV9vYmplY3RfZmlsZSk6IEludm9rZSBtZF9kb19hbGlnbiBpZiBhdmFpbGFibGUsIGFuZCB1c2UKCWZyYWdfYWxpZ25fY29kZSBvbiB0ZXh0IHNlY3Rpb25zLgoJKiBjb25maWcvb2JqLXZtcy5oIChTVUJfU0VHTUVOVF9BTElHTik6IE5vdyB0d28gYXJncy4KCSogY29uZmlnL3RjLW04OGsuaCAoU1VCX1NFR01FTlRfQUxJR04pOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXBwYy5oIChTVUJfU0VHTUVOVF9BTElHTik6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtc2guaCAoU1VCX1NFR01FTlRfQUxJR04pOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWkzODYuaCAoU1VCX1NFR01FTlRfQUxJR04pOiBMaWtld2lzZS4gIERlZmluZSBmb3IKCUJGRF9BU1NFTUJMRVIgdG9vLgoKMjAwMi0wNS0yMiAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBkd2FyZjJkYmcuYyAoZHdhcmYyX2RpcmVjdGl2ZV9sb2MpOiBDYWxsIGxpc3Rpbmdfc291cmNlX2ZpbGUKCWZvciBzb3VyY2UgZmlsZS4KCjIwMDItMDUtMjIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWFybS5jIChhcm1fc19zZWN0aW9uKTogRW5hYmxlIGZvciBDT0ZGIGJ1aWxkcyBhcyB3ZWxsCglhcyBFTEYgYnVpbGRzLgoKMjAwMi0wNS0yMiAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBkd2FyZjJkYmcuYyAoZHdhcmYyX2VtaXRfaW5zbik6IEVtaXQgb25seSBvbmUgbGluZSBzeW1ib2wKCWZvciBvbmUgLmxvYyBmb3IgY29tcGlsZXIuCgoyMDAyLTA1LTIyICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWFjcm8pOiBSZWxheCB3YXJuaW5nLCBpdCdzIHRvb3Qgc3RyaWN0IGZvcgoJZW1iZWRkZWQtUElDLgoKMjAwMi0wNS0yMiAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1hY3JvMik6IEFkZCA2NCBiaXQgZHJvbCwgZHJvciBtYWNyb3MuCglPcHRpbWl6ZSB0aGUgcm90YXRlIGJ5IHplcm8gY2FzZS4KCjIwMDItMDUtMjEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmluOiBSZW1vdmUgYWNjaWRlbnRhbCBlbmFibGluZyBvZiBiZmRfZ2FzPXllcyBmb3IKCXNoLWNvZmYgdGFyZ2V0cy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wNS0xOCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGFwcC5jOiBGaXggZm9ybWF0dGluZy4KCSogYXMuYzogTGlrZXdpc2UuCgkqIGVob3B0LmM6IExpa2V3aXNlLgoJKiBleHByLmM6IExpa2V3aXNlLgoJKiBpbnB1dC1maWxlLmM6IExpa2V3aXNlLgoJKiBsaXN0aW5nLmM6IExpa2V3aXNlLgoJKiBtYWNyby5oOiBMaWtld2lzZS4KCSogc3RhYnMuYzogTGlrZXdpc2UuCgkqIHN5bWJvbHMuYzogTGlrZXdpc2UuCgoyMDAyLTA1LTE3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL29iai1nZW5lcmljLmM6IERlbGV0ZSBmaWxlLgoJKiBjb25maWcvb2JqLWdlbmVyaWMuaDogTGlrZXdpc2UuCgoyMDAyLTA1LTE2ICBNYXJlayBNaWNoYWxraWV3aWN6ICA8bWFyZWttQGFtZWxlay5nZGEucGw+CgoJKiBjb25maWcvdGMtYXZyLmMgKG1jdV90eXBlcyk6IFVwZGF0ZSBmb3IgbmV3IGRldmljZXMuCgoyMDAyLTA1LTE1ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWFjcm8pOiBXYXJuIGFib3V0IHdyb25nIGxhL2RsYSB1c2UuCgoyMDAyLTA1LTE1ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjX21pcHMuYyAoc19jcHNldHVwKTogRml4IGNvbXBsZXRlbHkgYm9ndXMgY29kZSB3aGljaCBoYWQKCXdvcmtlZCBzb21ldGltZXMgYnkgYWNjaWRlbnQuIEZpeCBjb3B5JnBhc3RlIGNvbW1lbnQuCgoyMDAyLTA1LTE1ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWRfYmVnaW4pOiBGaXggLnJlZ2luZm8gYW5kIC5NSVBTLm9wdGlvbiBzZWN0aW9uCglhbGlnbm1lbnQgZm9yIE5ld0FCSS4gTGV0IG4zMiB1c2UgLnJlZ2luZm8uIFJlbW92ZSB1c2VsZXNzIGNhc3RzLgoJKG1pcHNfZWxmX2ZpbmFsX3Byb2Nlc3NpbmcpOiBMZXQgbjMyIHVzZSAucmVnaW5mby4KCjIwMDItMDUtMTUgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChhcHBlbmRfaW5zbik6IEZpeCB0b28gc21hbGwgcmFuZ2Ugb2YgdmFyaWFibGUuCgoyMDAyLTA1LTE0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYyAoYXJtX2NsZWFudXApOiBSZW1vdmUgcmVkdW5kYW50IGNhbGwgdG8KCWxpc3RpbmdfcHJldl9saW5lKCkuCgoyMDAyLTA1LTEzICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYyAobWRfYXNzZW1ibGUpOiBSZW1vdmUgcmVkdW5kYW50IGNhbGwgdG8KCWxpc3RpbmdfcHJldigpLgoKCSogZHdhcmYyZGJnLmMgKGR3YXJmMl9lbWl0X2luc24pOiBEbyBub3QgcmVzZXQKCWxvY19kaXJlY3RpdmVfc2Vlbi4KCgkqIHN0YWJzLmMgKHNfc3RhYl9nZW5lcmljKTogRml4IGdyYW1tYXRpY2FsIGVycm9yIGluIHdhcm5pbmcKCW1lc3NhZ2UuCgoyMDAyLTA1LTEzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogd3JpdGUuYyAoc3Vic2Vnc19maW5pc2gpOiBEb24ndCBzcGVjaWFsbHkgYWxpZ24gbGFzdCBzdWJzZWcuCgoyMDAyLTA1LTExICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIHN0YWJzLmMgKHNfc3RhYl9nZW5lcmljKTogV2FybiBhYm91dCBhIGRlc2NyaXB0aW9uIGZpZWxkIHRoYXQgaXMKCXRvbyBiaWcuCgoJKiBjb25maWcvb2JqLWNvZmYuYzogRml4IGNvbXBpbGUgdGltZSB3YXJuaW5ncyB3aGVuIGNvbXBpbGluZwoJd2l0aG91dCBCRkRfQVNTRU1CTEVSIGRlZmluZWQuCglGaXggZm9ybWF0dGluZy4KCgkqIGNvbmZpZy90Yy1zaC5jIChtZF9wY3JlbF9mcm9tKTogRGVmaW5lIGZvciB1c2Ugd2l0aCBzaC1obXMKCXRhcmdldC4KCShtZF9wY3JlbF9mcm9tX3NlY3Rpb24pOiBVc2UgbWRfcGNyZWxfZnJvbSgpLgoKMjAwMi0wNS0xMSAgQnJ1bm8gSGFpYmxlICA8YnJ1bm9AY2xpc3Aub3JnPgoKCSogZHdhcmYyZGJnLmMgKGR3YXJmMl9lbWl0X2luc24pOiBVc2UgdGhlICdjdXJyZW50JyBzdHJ1Y3QgZmlsbGVkCglieSBkd2FyZjJfZGlyZWN0aXZlX2xvYywgaW5zdGVhZCBvZiBjYWxsaW5nIGR3YXJmMl93aGVyZS4KCjIwMDItMDUtMTEgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjb25maWcvb2JqLWNvZmYuaDogRml4IGZvcm1hdHRpbmcuCgkqIGNvbmZpZy90Yy1tY29yZS5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW1uMTAzMDAuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1vcGVucmlzYy5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW9yMzIuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1wZHAxMS5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXBwYy5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXBwYy5oOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXNoNjQuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1zaC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXRpYzU0eC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXhzdG9ybXkxNi5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXhzdG9ybXkxNi5oOiBMaWtld2lzZS4KCjIwMDItMDUtMDkgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjb25maWcvb2JqLWNvZmYuYzogRml4IGZvcm1hdHRpbmcuCgkqIGNvbmZpZy9vYmotZWxmLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtYWxwaGEuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1hcm0uYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1kMTB2LmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtZDMwdi5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWg4MzAwLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaHBwYS5jOiBMaWtld2lzZS4KCjIwMDItMDUtMDkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCkgRG9uJ3QgbG9zZQoJcmVsb2Mgd2hlbiBub19jb25kX2p1bXBfcHJvbW90aW9uLgoKMjAwMi0wNS0wOCAgSmltIFdpbHNvbiAgPHdpbHNvbkByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWk5NjAuYyAobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiBSZXR1cm4gc2l6ZSBvZgoJY3VycmVudCB2YXJpYWJsZSBwYXJ0IG9mIGZyYWcuCgoyMDAyLTA1LTA4ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY29uZmlnL3RjLW1taXguYzogRml4IGZvcm1hdHRpbmcuCgkqIGNvbmZpZy90Yy1tbWl4Lmg6IExpa2V3aXNlLgoKMjAwMi0wNS0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMDUtMDcgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjb25maWcvdGMtbTY4ay5jOiBGaXggZm9ybWF0dGluZy4KCjIwMDItMDUtMDcgIEZlZGVyaWNvIEcuIFNjaHdpbmR0IDxmZ3NjaEBvbGltcG8uY29tLmJyPgoKCSogTWFrZWZpbGUuYW06IEhvbm91ciBERVNURElSLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDUtMDYgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjb25maWcvdGMtaWE2NC5jOiBGaXggZm9ybWF0dGluZy4KCSogY29uZmlnL3RjLWlhNjQuaDogTGlrZXdpc2UuCgoyMDAyLTA1LTA0ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY29uZmlnL3RjLW1pcHMuYzogRml4IGZvcm1hdHRpbmcuCgkqIGNvbmZpZy90Yy1zMzkwLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtczM5MC5oOiBMaWtld2lzZS4KCjIwMDItMDUtMDMgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXMzOTAuYyAobWRfZ2F0aGVyX29wZXJhbmRzKTogRW1pdCBkd2FyZjIgbGluZS1udW1iZXIKCWluZm9ybWF0aW9uIGZvciBpbnN0cnVjdGlvbnMuCgoyMDAyLTA1LTAyICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogYXMuaDogRml4IGZvcm1hdHRpbmcuCgkqIGNnZW4uYzogTGlrZXdpc2UuCgkqIGNnZW4uaDogTGlrZXdpc2UuCgkqIGR3YXJmMmRiZy5jOiBMaWtld2lzZS4KCSogZnJhZ3MuaDogTGlrZXdpc2UuCgkqIGdhc3AuYzogTGlrZXdpc2UuCgkqIG1hY3JvLmM6IExpa2V3aXNlLgoJKiByZWFkLmM6IExpa2V3aXNlLgoJKiBzdGFicy5jOiBMaWtld2lzZS4KCSogc3ltYm9scy5jOiBMaWtld2lzZS4KCjIwMDItMDUtMDIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBhcHAuYyAobXJpX3BzZXVkbyk6IE9ubHkgZGVjbGFyZSBmb3IgVENfTTY4Sy4KCgkqIGNvbmZpZy90Yy1wcGMuYyAobWFwcGluZyk6IE1hcCBzZWN0b2ZmIHRvIEJGRF9SRUxPQ18xNl9CQVNFUkVMLgoJKHBwY19lbGZfdmFsaWRhdGVfZml4KTogUmVwbGFjZSBCRkRfUkVMT0NfMzJfQkFTRVJFTCB3aXRoCglCRkRfUkVMT0NfMTZfQkFTRVJFTC4KCShtZF9hc3NlbWJsZSk6IExpa2V3aXNlLgoJKG1kX2FwcGx5X2ZpeDMpOiBMaWtld2lzZS4KCjIwMDItMDUtMDIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWFybS5jICh0aHVtYl9hZGRfc3ViKTogRG8gbm90IGNvbnZlcnQgYSBzdWJ0cmFjdCBvZgoJemVybyBpbnRvIGFuIGFkZCBvZiB6ZXJvIC0gaXQgaXMgbm90IHRoZSBzYW1lLgoKMjAwMi0wNS0wMSAgQXJhdGkgRGlrZXkgPGFyYXRpZEBrcGl0LmNvbT4KCgkqIHRjLXNoLmMgKGdldF9zcGVjaWZpYyk6IEdlbmVyYXRlIHdhcm5pbmcgaWYgdGhlIHNhbWUKCWRlc3RpbmF0aW9uIHJlZ2lzdGVyIGlzIHVzZWQgaW4gcGFyYWxsZWwgaW5zdHJ1Y3Rpb25zLgoKMjAwMi0wNS0wMSAgQW5kcmV3IE1hY2xlb2QgIDxhbWFjbGVvZEBjeWdudXMuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAoZXh0cmFfc3ltYm9sX2NoYXJzKTogQWRkICdbJyB0byB0aGUgbGlzdC4KCjIwMDItMDUtMDEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiB3cml0ZS5jIChjdnRfZnJhZ190b19maWxsKTogU2V0IGZyX29mZnNldCB0byB6ZXJvIG9uIC5vcmcKCWJhY2t3YXJkcyB0byBwcmV2ZW50IGNhc2NhZGluZyBlcnJvcnMuCgoyMDAyLTA0LTMwICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlndXJlLmluOiBBZGQgc3VwcG9ydCBmb3IgcG93ZXJwYy0qLXdpbmRpc3MuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgoyMDAyLTA0LTI4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLXMzOTAuYyAobWRfcGFyc2Vfb3B0aW9uKTogRm9ybWF0dGluZy4KCgkqIGNvbmZpZy90Yy1pMzg2LmM6IEZvcm1hdHRpbmcgZml4ZXMsIGFkZCBtaXNzaW5nIHNwYWNlIGluIGVycm9yCgltZXNzYWdlLgoKMjAwMi0wNC0yNCAgQ2hyaXN0aWFuIEdyb2Vzc2xlciA8Y2hyaXNAZ3JvZXNzbGVyLm9yZz4KCgkqIGNvbmZpZy90Yy16OGsuYyAoYnVpbGRfYnl0ZXMpOiBBZGQgc3VwcG9ydCBmb3IgbmV3IGNhc2VzOgoJQ0xBU1NfSUdOT1JFIGFuZCBBUkdfTklNNC4KCShtZF9hc3NlbWJsZSk6IFByZXZlbnQgZGVzdHJ1Y3Rpb24gb2YgaW5wdXRfbGluZV9wb2ludGVyIGlmCglnZXRfb3BlcmFuZHMgcmV0dXJucyBmYWlsdXJlLgoKMjAwMi0wNC0yNCAgQ2hyaXMgRy4gRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1hY3JvX2J1aWxkKTogRG8gX25vdF8gYWxsb3cgTUlQUy0zRAoJaW5zdHJ1Y3Rpb25zIHRvIGJlIGdlbmVyYXRlZCBieSBtYWNyb3MuCgoyMDAyLTA0LTI0ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogY29uZmlnL3RjLWkzODYuYyAob3V0cHV0X2p1bXAsIG91dHB1dF9kaXNwKQoJKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogRG9uJ3Qgc2V0IGZ4X3BjcmVsX2FkanVzdCBhbnkKCW1vcmUuCgkobWRfYXBwbHlfZml4Myk6IFJlbWVtYmVyIGFkZGVuZCB2YWx1ZSBmb3IgcmVsYSByZWxvY2F0aW9ucy4KCSh0Y19nZW5fcmVsb2MpOiBDb3JyZWN0bHkgY29tcHV0ZSBwYy1yZWxhdGl2ZSByZWxvY2F0aW9uIGFkZGVuZC4KCjIwMDItMDQtMjIgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNyb19idWlsZCk6IEFkZCBjbG9zZS1wYXJlbnRoZXNpcyBtaXNzaW5nCglmcm9tIHByZXZpb3VzIGNoYW5nZS4KCjIwMDItMDQtMjIgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWFjcm9fYnVpbGQpOiBBZGQgd2FybmluZyBpZiBtYWNybyBpbnN0cnVjdGlvbnMKCWFyZSBleHBhbmRlZCBpbnRvIGEgYnJhbmNoIGRlbGF5IHNsb3QuCgoyMDAyLTA0LTE3ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQHJlZGhhdC5jb20+CgoJKiBkd2FyZjJkYmcuYyAoZHdhcmYyX2dlbl9saW5lX2luZm8pOiBEbyBlbWl0IGR1cGxpY2F0ZSBsaW5lCgludW1iZXJzLCBnZGIgcmVsaWVzIG9uIHRoZW0gdG8gZGV0ZWN0IHRoZSBzdGFydCBvZiB0aGUgcHJvbG9ndWUuCgoyMDAyLTA0LTE3ICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogY29uZmlnL3RjLXMzOTAuYyAodGNfczM5MF9maXhfYWRqdXN0YWJsZSk6IFByZXZlbnQgYWRqdXN0bWVudHMgdG8KCXN5bWJvbHMgaW4gbWVyZ2Ugc2VjdGlvbnMuCgoyMDAyLTA0LTE2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYXMuYyAobWFpbik6IERvbid0IHJlZmVyZW5jZSBfYmZkX2NodW5rc2l6ZS4KCjIwMDItMDQtMTUgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtZDEwdi5jIChkMTB2X2ZpeF9hZGp1c3RhYmxlKTogUHJldmVudCBhZGp1c3RtZW50cyB0bwoJc3ltYm9scyBpbiBtZXJnZSBzZWN0aW9ucy4KCjIwMDItMDQtMTEgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGRvYy9pbnZva2UudGV4aSAoVENfTEFSR0VTVF9FWFBPTkVOVF9JU19OT1JNQUwpOiBEb2N1bWVudC4KCSogY29uZmlnL2F0b2YtaWVlZS5jIChUQ19MQVJHRVNUX0VYUE9ORU5UX0lTX05PUk1BTCk6IEFkZCBhbgoJYXJndW1lbnQgZm9yIHRoZSBwcmVjaXNpb24uCgkoZ2VuX3RvX3dvcmRzKTogVXBkYXRlIGFjY29yZGluZ2x5LgoKMjAwMi0wNC0xMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGFzLmMgKHBhcnNlX2FyZ3MgPE9QVElPTl9WRVJTSU9OPik6IFVzZSBWRVJTSU9OIGlzCglCRkRfVkVSU0lPTl9TVFJJTkcgdW5hdmFpbGFibGUuCgkqIGNvbmZpZy90Yy1pMzg2LmMgKElOTElORSk6IERlZmluZSAoZm9yIG5vbi1CRkQgYXNzZW1ibGVyKS4KCjIwMDItMDQtMDkgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tPgoKCSogY29uZmlnL3RjLXNoLmggKFRDX0ZJWF9BREpVU1RBQkxFKTogRGlzYWJsZSBhZGp1c3RpbmcgaWYKCXN5bWJvbF91c2VkX2luX3JlbG9jX3AgaXMgdHJ1ZS4KCgkqIGNvbmZpZy90Yy1zaC5jIChtZF9hcHBseV9maXgzKTogRG9uJ3QgemVybyByZWxvY2F0aW9ucyBvbiBiaWcKCWVuZGlhbiBob3N0cy4KCjIwMDItMDQtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkZXAtaW4uc2VkOiBDb3BlIHdpdGggYWJzb2x1dGUgcGF0aHMuCgkqIE1ha2VmaWxlLmFtIChkZXAuc2VkKTogU3Vic3QgVE9QRElSLgoJUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wNC0wNCAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHMxNl9tYWNyb19idWlsZCk6IENhc3QgdHlwZSBtaXNtYXRjaC4KCShtaXBzX2lwKTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KCShtZF9hcHBseV9maXgzKTogQ2FzdCBzaWduZWQvdW5zaWduZXMgbWlzbWF0Y2hlcy4gUmVwbGFjZQoJdW5zaWduZWQgY2hhciB3aXRoIGJmZF9ieXRlLgoJKHNfZmlsZSk6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgkoc19taXBzX2VudCk6IExpa2V3aXNlLgoKMjAwMi0wNC0wMyAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1kMTB2LmMgKGQxMHZfaW5zZXJ0X29wZXJhbmQpOiBGaXggd2FybmluZyBpbiBhc19iYWRfd2hlcmUuCgkoYnVpbGRfaW5zbik6IFNhbWUuCgkoZmluZF9vcGNvZGUpOiBGaXggd2FybmluZyBpbiBhc193YXJuLgoJKiBjb25maWcvdGMtZDEwdi5oOiBVcGRhdGUgQ29weXJpZ2h0LgoKMjAwMi0wNC0wMyAgQWxhbiBNYXRzdW9rYSA8YWxhbm1AcmVkaGF0LmNvbT4KCSAgICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCUZyb20gSmVmZiBLbmFnZ3MgPGprbmFnZ3NAcmVkaGF0LmNvbT4KCSogY29uZmlnL3RjLWQxMHYuYyAoY2hlY2tfcmVzb3VyY2VfY29uZmxpY3QpOiBOZXcgZnVuY3Rpb24gdG8KCWNoZWNrIGZvciByZXNvdXJjZSBjb25mbGljdHMuCgoJRnJvbSBKYXNvbiBFY2toYXJkdCAgPGpsZUByZWRoYXQuY29tPgoJKiBjb25maWcvdGMtZDEwdi5jIChidWlsZF9pbnNuKTogQ2hlY2sgZm9yIHVucmVzb2x2ZWQgaW1tNCBvcgoJaW1tMyBmaWVsZHMuCgkqIGNvbmZpZy90Yy1kMTB2LmMgKGZpbmRfb3Bjb2RlKTogRW1pdCBhIHdhcm5pbmcgaWYgb25lIG9mIHRoZQoJcmVzZXJ2ZWQgY29udHJvbCByZWdpc3RlcnMgaXMgdXNlZC4KCSogY29uZmlnL3RjLWQxMHYuYyAoYnVpbGRfaW5zbik6IENoZWNrIGZvciB1bnJlc29sdmVkIGltbTQgb3IKCWltbTMgZmllbGRzLgoKCUZyb20gMjAwMS0wMy0yOCAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgkqIHRjLWQxMHYuYyAocGFyYWxsZWxfb2spOiBQcmV2ZW50IHBhY2tpbmcgb25seSBpZiB0aGUgZmlyc3QKCWluc3RydWN0aW9uIGNhbm5vdCBiZSBwYWNrZWQuCgoJRnJvbSAyMDAxLTAzLTMwICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCSogZ2FzL2NvbmZpZy90Yy1kMTB2LmMgKGNoZWNrX3Jlc291cmNlX2NvbmZsaWN0KTogT25seSBjaGVjawoJd3JpdGUtd3JpdGUgY29uZmxpY3RzLgoJKG1kX2Fzc2VtYmxlKTogUmVmb3JtYXQgaW50cm9kdWN0b3J5IGNvbW1lbnQuCgkqIG9wY29kZXMvZDEwdi1vcGMuYyAoZDEwdl9vcGNvZGVzKTogYGJ0c3RpJyBkb2VzIG5vdCBtb2RpZnkgaXRzCglhcmd1bWVudHMuCgoyMDAyLTA0LTAzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogc3ltYm9scy5jIChyZXNvbHZlX3N5bWJvbF92YWx1ZSA8T191bWludXMsIE9fYml0X25vdCwKCU9fbG9naWNhbF9ub3Q+KTogRGVyaXZlIGZpbmFsX3NlZyBmcm9tIGFkZF9zeW1ib2wuCgk8T19tdWx0aXBseS4uT19sb2dpY2FsX29yPjogTW9yZSBmaW5hbF9zZWcgdHdpZGRsZXMuCgoyMDAyLTA0LTAxICBKZXNzaWNhIEhhbiAgPGplc3NpY2FAY3VwLmhwLmNvbT4KCgkqIGNvbmZpZy90Yy1pYTY0LmMgKGlhNjRfY29uc19maXhfbmV3KTogSGFuZGxlIDggYnl0ZSBpcGx0IHJlbG9jCglpbiAzMi1iaXQgbW9kZS4KCjIwMDItMDMtMjcgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChvdXRwdXRfanVtcCk6IFNldCBmeF9wY3JlbF9hZGp1c3QgdG8gc2l6ZSBvZgoJZmllbGQgZm9yIHBjLXJlbGF0aXZlIGZpeHVwcy4KCShvdXRwdXRfZGlzcCk6IExpa2V3aXNlLgoJKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogTGlrZXdpc2UuCgkodGNfZ2VuX3JlbG9jKTogU3VidHJhY3QgZnhfcGNyZWxfYWRqdXN0IGluc3RlYWQgb2YgZnhfc2l6ZSBmb3IKCXBjLXJlbGF0aXZlIGZpeHVwcyBpbiA2NGJpdCBtb2RlLgoKMjAwMi0wMy0yMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90ZS1haXg1Lmg6IFR5cG8gZml4LgoKMjAwMi0wMy0yMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDMtMjAgIEFsYmVydCBDaGluLUEtWW91bmcgIDxjaGluYUB0aGV3cml0dGVud29yZC5jb20+CgoJKiBjb25maWcvdGMtYXJtLmMgKHZmcF9kcF9yZWdfcmVxdWlyZWRfaGVyZSk6IEZpeCB0eXBvCgkodmZwX3NwX3JlZ19wb3MgLT4gdmZwX2RwX3JlZ19wb3MpLgoKMjAwMi0wMy0xOCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IERvIG5vdCBtb2RpZnkKCXRoZSBFWFRFTkRFRCBiaXQgaGVyZTsgcmVwb3J0IHRoZSBlc3RpbWF0ZSBhY2NvcmRpbmcgdG8gdGhlCgljdXJyZW50IHNpemUuCgoyMDAyLTAzLTE4ICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmluOiBBZGQgQUlYIDUgc3VwcG9ydC4KCSogY29uZmlnL3RjLXBwYy5jIChwcGNfdGFyZ2V0X2Zvcm1hdCk6IEFkZCBBSVggNSA2NCBiaXQgdGFyZ2V0LgoJKiBjb25maWcvdGUtYWl4NS5oOiBOZXcgZmlsZS4gQUlYIDUgc3VwcG9ydC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wMy0xOCAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBwby9mci5wbzogVXBkYXRlZCB2ZXJzaW9uLgoKMjAwMi0wMy0xNiAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogZG9jL2MtbWlwcy50ZXhpIChNYWNoaW5lIERlcGVuZGVuY2llcyk6IEFkZCBuZXcgbm9kZS4KCjIwMDItMDMtMTUgIENocmlzIEcuIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzX3NldF9vcHRpb25zKTogTmV3ICJhc2VfbWlwczNkIiBtZW1iZXIuCgkobWlwc19vcHRzKTogSW5pdGlhbGl6ZSAiYXNlX21pcHMzZCIgbWVtYmVyLgoJKGZpbGVfYXNlX21pcHMzZCk6IE5ldyB2YXJpYWJsZS4KCShDUFVfSEFTX01JUFMzRCk6IE5ldyBtYWNyby4KCShtZF9iZWdpbik6IEluaXRpYWxpemUgbWlwc19vcHRzLmFzZV9taXBzM2QgYW5kIGZpbGVfYXNlX21pcHMzZAoJYmFzZWQgb24gY29tbWFuZCBsaW5lIG9wdGlvbnMgYW5kIGNvbmZpZ3VyYXRpb24gZGVmYXVsdHMuCgkobWFjcm9fYnVpbGQsIG1pcHNfaXApOiBBY2NlcHQgTUlQUy0zRCBpbnN0cnVjdGlvbnMgaWYKCW1pcHNfb3B0cy5hc2VfbWlwczNkIGlzIHNldC4KCShPUFRJT05fTUlQUzNELCBPUFRJT05fTk9fTUlQUzNELCBtZF9sb25nb3B0cywgbWRfcGFyc2Vfb3B0aW9uKToKCUFkZCBzdXBwb3J0IGZvciAiLW1pcHMzZCIgYW5kICItbm8tbWlwczNkIiBvcHRpb25zLgoJKE9QVElPTl9FTEZfQkFTRSk6IE1vdmUgdG8gYWNjb21vZGF0ZSBuZXcgb3B0aW9ucy4KCShzX21pcHNzZXQpOiBTdXBwb3J0ICIuc2V0IG1pcHMzZCIgYW5kICIuc2V0IG5vbWlwczNkIi4KCShtaXBzX2VsZl9maW5hbF9wcm9jZXNzaW5nKTogQWRkIGEgY29tbWVudCBpbmRpY2F0aW5nIHRoYXQgYQoJTUlQUy0zRCBBU0UgRUxGIGhlYWRlciBmbGFnIHNob3VsZCBiZSBzZXQsIHdoZW4gb25lIGV4aXN0cy4KCSogZG9jL2FzLnRleGluZm86IERvY3VtZW50IC1taXBzM2QgYW5kIC1uby1taXBzM2Qgb3B0aW9ucy4KCSogZG9jL2MtbWlwcy50ZXhpOiBMaWtld2lzZSwgYW5kIGRvY3VtZW50ICIuc2V0IG1pcHMzZCIgYW5kICIuc2V0Cglub21pcHMzZCIgZGlyZWN0aXZlcy4KCjIwMDItMDMtMTQgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGNvbmZpZy90Yy1tbWl4LmMgKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogRG9uJ3QgY29uc2lkZXIKCWEgd2VhayBzeW1ib2wgaW4gc2FtZSBzZWN0aW9uIHRvIGJlIHdpdGhpbiByZWFjaC4KCjIwMDItMDMtMTMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcG8vZnIucG86IFVwZGF0ZWQgdmVyc2lvbi4KCjIwMDItMDMtMTIgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJKiBjb25maWcvdGMtaWE2NC5jIChmaXh1cF91bndfcmVjb3Jkcyk6IENsZWFyIHJlZ2lvbiB3aGVuIHNlZWluZyBhCglib2R5IHJlY29yZCBzbyB0aGF0IGFuIGVycm9yIGlzIGdpdmVuIGZvciBtaXNwbGFjZWQgLnNhdmUKCXBzZXVkby1vcHMuCgoyMDAyLTAzLTA5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWkzODYuaCAoUkVYX09QQ09ERSk6IERlZmluZS4KCShSRVhfTU9ERTY0LCBSRVhfRVhUWCwgUkVYX0VYVFksIFJFWF9FWFRaKTogRGVmaW5lLgoJKHJleF9ieXRlKTogdHlwZWRlZiB0byBpbnQuCgkqIGNvbmZpZy90Yy1pMzg2LmM6IEdyb3VwIHByb3RvdHlwZXMgYW5kIHZhcnMgdG9nZXRoZXIuCglGb3JtYXR0aW5nIGZpeGVzLiAgUmVtb3ZlIG9jY3VycmVuY2VzIG9mICJyZWdpc3RlciIga2V5d29yZC4KCSh0cnVlKTogRGVsZXRlLgoJKGZhbHNlKTogRGVsZXRlLgoJKG1vZGVfZnJvbV9kaXNwX3NpemUpOiBBZGQgSU5MSU5FIGtleXdvcmQgdG8gcHJvdG90eXBlLgoJKGZpdHNfaW5fc2lnbmVkX2J5dGUpOiBMaWtld2lzZS4KCShmaXRzX2luX3Vuc2lnbmVkX2J5dGUpOiBMaWtld2lzZS4KCShmaXRzX2luX3Vuc2lnbmVkX3dvcmQpOiBMaWtld2lzZS4KCShmaXRzX2luX3NpZ25lZF93b3JkKTogTGlrZXdpc2UuCgkoZml0c19pbl91bnNpZ25lZF9sb25nKTogTGlrZXdpc2UuCgkoZml0c19pbl9zaWduZWRfbG9uZyk6IExpa2V3aXNlLgoJKHR5cGVfbmFtZXMpOiBDb25zdGlmeS4KCShpbnRlbF9mbG9hdF9vcGVyYW5kKTogQ29uc3RpZnkgcGFyYW0uCgkoYWRkX3ByZWZpeCk6IFVzZSBSRVhfT1BDT0RFLgoJKG1kX2Fzc2VtYmxlKTogTGlrZXdpc2UuICBNb2RpZnkgZm9yIGNoYW5nZWQgcmV4X2J5dGUuCgkocGFyc2VfaW5zbik6IFNwbGl0IG91dCBvZiBtZF9hc3NlbWJsZS4KCShwYXJzZV9vcGVyYW5kcyk6IExpa2V3aXNlLgoJKHN3YXBfb3BlcmFuZHMpOiBMaWtld2lzZS4KCShvcHRpbWl6ZV9pbW0pOiBMaWtld2lzZS4KCShvcHRpbWl6ZV9kaXNwKTogTGlrZXdpc2UuCgkobWF0Y2hfdGVtcGxhdGUpOiBMaWtld2lzZS4KCShjaGVja19zdHJpbmcpOiBMaWtld2lzZS4KCShwcm9jZXNzX3N1ZmZpeCk6IExpa2V3aXNlLgoJKGNoZWNrX2J5dGVfcmVnKTogTGlrZXdpc2UuCgkoY2hlY2tfbG9uZ19yZWcpOiBMaWtld2lzZS4KCShjaGVja19xd29yZF9yZWcpOiBMaWtld2lzZS4KCShjaGVja193b3JkX3JlZyk6IExpa2V3aXNlLgoJKGZpbmFsaXplX2ltbSk6IExpa2V3aXNlLgoJKHByb2Nlc3Nfb3BlcmFuZHMpOiBMaWtld2lzZS4KCShidWlsZF9tb2RybV9ieXRlKTogTGlrZXdpc2UuCgkob3V0cHV0X2luc24pOiBMaWtld2lzZS4KCShvdXRwdXRfYnJhbmNoKTogTGlrZXdpc2UuCgkob3V0cHV0X2p1bXApOiBMaWtld2lzZS4KCShvdXRwdXRfaW50ZXJzZWdfanVtcCk6IExpa2V3aXNlLgoJKG91dHB1dF9kaXNwKTogTGlrZXdpc2UuCgkob3V0cHV0X2ltbSk6IExpa2V3aXNlLgoKMjAwMi0wMy0wNyAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBkb2MvYXMudGV4aW5mbzogV3JhcCBAbWVudSBpbiBAaWZub3R0ZXgsIG5vdCBAaWZpbmZvLgoKMjAwMi0wMy0wNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKHRjX2dlbl9yZWxvYyk6IERvbid0IGF0dGVtcHQgdG8gaGFuZGxlIDggYnl0ZQoJcmVsb2NzIGV4Y2VwdCB3aGVuIEJGRDY0LgoKCSogd3JpdGUuYyAobnVtYmVyX3RvX2NoYXJzX2JpZ2VuZGlhbik6IERvbid0IGFib3J0IHdoZW4gTiBpcwoJbGFyZ2VyIHRoYW4gc2l6ZW9mIChWQUwpLgoJKG51bWJlcl90b19jaGFyc19saXR0bGVlbmRpYW4pOiBMaWtld2lzZS4KCjIwMDItMDMtMDUgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZUBoaWF1bHkxLmhpYS5ucmMuY2E+CgoJKiBjb25maWcvdGMtaHBwYS5jIChtZF9hcHBseV9maXgzKTogQWRkIGNhc3QuCgkoaHBwYV9maXhfYWRqdXN0YWJsZSk6IEFkanVzdCBsaXN0IG9mIHNlbGVjdG9ycyB1c2luZyBlX2xyc2VsIGFuZAoJZV9ycnNlbC4KCjIwMDItMDMtMDUgIFBhdWwgS29uaW5nICA8cGtvbmluZ0BlcXVhbGxvZ2ljLmNvbT4KCgkqIHRjLXBkcDExLmM6IFVzZSBWQVggZmxvYXQgZm9ybWF0IHN1cHBvcnQgZm9yIFBEUC0xMSB0YXJnZXQuCgkocGFyc2VfYWM1KTogTmV3IGZ1bmN0aW9uIGZvciBwYXJzaW5nIGZsb2F0IHJlZ3MgaW4gZmxvYXQgb3BlcmFuZC4KCShwYXJzZV9leHByZXNzaW9uKTogUmVtb3ZlIGF0dGVtcHQgdG8gbWFrZSBsaXRlcmFscyBiZSBvY3RhbC4KCShwYXJzZV9vcF9ub19kZWZlcnJlZCk6IFN1cHBvcnQgZmxvYXQgbGl0ZXJhbHMuCgkocGFyc2Vfb3ApOiBSZWplY3QgYXR0ZW1wdHMgdG8gcmVmZXIgdG8gZmxvYXQgcmVncy4KCShwYXJzZV9mb3ApOiBOZXcgZnVuY3Rpb24sIGxpa2UgcGFyc2Vfb3AgYnV0IGZvciBmbG9hdCBvcGVyYW5kLgoJKG1kX2Fzc2VtYmxlKTogQWRkIGNhc2VzIHRvIHBhcnNlIGZsb2F0IG9wZXJhbmRzLiAgQWxzbyBmaXgKCUlNTTMsIElNTTYsIElNTTggY2FzZXMgdG8gcGljayB1cCB0aGUgb3BlcmFuZCBmcm9tIHRoZSByaWdodCBzcG90LgoKMjAwMi0wMy0wNCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBjb25maWcvb2JqLWVsZi5jIChzcGVjaWFsX3NlY3Rpb24pOiBBZGQgLmluaXRfYXJyYXksCgkuZmluaV9hcnJheSBhbmQgLnByZWluaXRfYXJyYXkuCgoJKiBjb25maWcvdGMtaWE2NC5oIChFTEZfVENfU1BFQ0lBTF9TRUNUSU9OUyk6IFJlbW92ZQoJLmluaXRfYXJyYXkgYW5kIC5maW5pX2FycmF5LgoKMjAwMi0wMy0wMSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjb25maWcvb2JqLWVsZi5jIChlbGZfY29weV9zeW1ib2xfYXR0cmlidXRlcyk6IERvbid0IGNvcHkKCXZpc2liaWxpdHkuCgkob2JqX2Zyb2Jfc3ltYm9sKTogQ29weSB2aXNpYmlsaXR5LgoKMjAwMi0wMi0yOCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtYWxwaGEuYyAoc19hbHBoYV90ZXh0KTogVXNlIG9ial9lbGZfdGV4dCBmb3IgT0JKX0VMRiwgbm90CglzX3RleHQuCgkoc19hbHBoYV9kYXRhKTogVXNlIG9ial9lbGZfZGF0YSBmb3IgT0JKX0VMRiwgbm90IHNfZGF0YS4KCjIwMDItMDItMjcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcG8vZXMucG86IFVwZGF0ZWQuCgoyMDAyLTAyLTI2ICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19uZWVkX2VsZl9hZGRlbmRfZml4dXApOiBGb3IgZW1iZWRkZWQtUElDCglvbmx5LCB1bmRvIHRoZSBjaGFuZ2VzIG1hZGUgb24gMjAwMS0wNi0wOCwgd2l0aCB0aGUKCWVmZmVjdCBiZWluZyB0aGF0IGNvbW1vbiBvciBleHRlcm4gc3ltYm9scyBhcmUKCWFkanVzdGVkIGZvciBlbWJlZGRlZC1QSUMsIGJ1dCB3ZWFrIHN5bWJvbHMgYXJlIG5vdC4KCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheDogTGlrZXdpc2UsIHdpdGggdGhlIGVmZmVjdAoJdGhhdCBleHRlcm4gc3ltYm9scyBhcmUgdHJlYXRlZCB0aGUgc2FtZSBhcyB3ZWFrIHN5bWJvbHMKCW9ubHkgaWYgbm90IGVtYmVkZGVkLVBJQy4KCShtaXBzX2ZpeF9hZGp1c3RhYmxlKSBMaWtld2lzZSwgd2l0aCB0aGUgZWZmZWN0IHRoYXQKCXdlYWsgb3IgZXh0ZXJuIHN5bWJvbHMgYXJlIG5vdCBhZGp1c3RlZCBmb3IgZW1iZWRkZWQtUElDLgoJKG1kX2FwcGx5X2ZpeDMpOiBUd2VhayBzbyB0aGF0IHRoZSBjYXNlIHdoZXJlIHZhbHVlIGlzIHplcm8KCWlzIGhhbmRsZWQgbW9yZSBjb3JyZWN0bHkgZm9yIGVtYmVkZGVkLVBJQyBjb2RlLgoKMjAwMi0wMi0yNiAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBkb2MvYXMudGV4aW5mbyAoT3ZlcnZpZXcpOiBBZGQgbWlzc2luZyBAaWZzZXQgSUE2NAoKCSogY29uZmlndXJlLmluIChMSU5HVUFTKTogQWRkIGVzLnBvLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIHBvL2VzLnBvOiBOZXcgZmlsZS4KCjIwMDItMDItMjUgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChzZXRfYXQpOiBGaXggaGFuZGxpbmcgb2YgNjRiaXQgcmVnaXN0ZXIgbG9hZHMuCgkobWFjcm8pOiBMaWtld2lzZS4gRml4IGxhL2RsYSBhZGRyZXNzIGV4cGFuc2lvbnMgZm9yIEVNQkVEREVEX1BJQwoJYW5kIE5PX1BJQyBjYXNlcy4gQ29kZSBjbGVhbnVwLgoJKG1hY3JvMik6IEZpeCBoYW5kbGluZyBvZiA2NGJpdCByZWdpc3RlciBsb2Fkcy4KCjIwMDItMDItMjUgIERhdmlkIE1vc2JlcmdlciAgPGRhdmlkbUBocGwuaHAuY29tPgoKCSogZG9jL2FzLnRleGluZm86IEFkZCBlbnRyeSBmb3IgSUE2NC4KCSogZG9jL2MtaWE2NC50ZXhpOiBOZXcgZmlsZS4KCjIwMDItMDItMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtaHBwYS5jOiBVcGRhdGUgY29weXJpZ2h0IGRhdGUuCgoJKiBkb2MvYy1wcGMudGV4aSAoUG93ZXJQQy1PcHRzKTogQWRkIC1tcG93ZXI0LCAtbWFsdGl2ZWMgYW5kIC1tNzQwMAoJUmVtb3ZlIHJlZmVyZW5jZXMgdG8gY2hpcCBtYW51ZmFjdHVyZXJzLgoJKiBjb25maWcvdGMtcHBjLmMgKG1kX3BhcnNlX29wdGlvbik6IEhhbmRsZSAtbXBvd2VyNCBvcHRpb24uCglDb3JyZWN0IGNvbW1lbnRzLgoJKG1kX3Nob3dfdXNhZ2UpOiBSZW1vdmUgcmVmZXJlbmNlcyB0byBjaGlwIG1hbnVmYWN0dXJlcnMuICBNZW50aW9uCgktbXBvd2VyNC4KCShtZF9iZWdpbik6IFRlc3QgcG93ZXI0IG9wY29kZSBmbGFnIGJpdHMuCgoyMDAyLTAyLTIyICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KCgkqIGNvbmZpZy90Yy1pYTY0LmMgKGRvdF9yZXN0b3JlKTogSXNzdWUgZXJyb3IgbWVzc2FnZSBvZiBlcGlsb2d1ZQoJY291bnQgZXhjZWVkcyBwcm9sb2d1ZSBjb3VudC4KCShtZF9zaG93X3VzYWdlKTogRGVzY3JpYmUgLW1jb25zdGFudC1ncCBhbmQgLW1hdXRvLXBpYy4KCSh1bndpbmQubGFiZWxfcHJvbG9ndWVfY291bnQpOiBOZXcgbWVtYmVyLgoKCUJhc2VkIG9uIGEgcGF0Y2ggYnkgSGFucyBCb2VobSA8aGJvZWhtQGhwbC5ocC5jb20+OgoKCShnZXRfc2F2ZWRfcHJvbG9ndWVfY291bnQpOiBOZXcgZnVuY3Rpb24uCgkoc2F2ZV9wcm9sb2d1ZV9jb3VudCk6IE5ldyBmdW5jdGlvbi4KCShmcmVlX3NhdmVkX3Byb2xvZ3VlX2NvdW50KTogTmV3IGZ1bmN0aW9uLgoJKGRvdF9sYWJlbF9zdGF0ZSk6IFJlY29yZCBzdGF0ZSBsYWJlbCBieSBjYWxsaW5nIHNhdmVfcHJvbG9ndWVfY291bnQoKS4KCShkb3RfY29weV9zdGF0ZSk6IFJlc3RvcmUgcHJvbG9ndWUgY291bnQgYnkgY2FsbGluZwoJZ2V0X3NhdmVkX3Byb2xvZ3VlX2NvdW50KCkuCgkoZ2VuZXJhdGVfdW53aW5kX2ltYWdlKTogRnJlZSB1cCBsaXN0IG9mIHNhdmVkIHByb2xvZ3VlCgljb3VudHMgYnkgY2FsbGluZyBmcmVlX3NhdmVkX3Byb2xvZ3VlX2NvdW50cygpLgoKMjAwMi0wMi0yMiAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtdGljNTR4LmM6IEFkZCBtaXNzaW5nIHByb3RvdHlwZXMgYW5kIHJlbW92ZSBBTlNJIHN0eWxlCglmdW5jdGlvbiBkZWNsYXJhdGlvbnMuCgoyMDAyLTAyLTIxICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIE5FV1M6IE5vdGUgdGhhdCBHQVNQIGlzIG5vdyBkZXByZWNhdGVkLgoJKiBNYWtlZmlsZS5hbTogRG8gbm90IGJ1aWxkIGdhc3AtbmV3IGJ5IGRlZmF1bHQuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBkb2MvTWFrZWZpbGUuYW06IERvIG5vdCBpbnN0YWxsIGdhc3AuaW5mby4KCSogZG9jL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBnYXMvZ2FzcC50ZXhpOiBOb3RlIHRoYXQgZ2FzcCBpcyBub3cgZGVwcmVjYXRlZC4KCjIwMDItMDItMjAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogTkVXUzogTWFyayAyLjEyIGJyYW5jaC4KCjIwMDItMDItMTkgIFRvbSBUcm9tZXkgIDx0cm9tZXlAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy14c3Rvcm15MTYuaCAoRFdBUkYyX0xJTkVfTUlOX0lOU05fTEVOR1RIKTogRGVmaW5lLgoKMjAwMi0wMi0xOSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1kX3BhcnNlX29wdGlvbik6IENvbXBsYWluIGFib3V0IGludmFsaWQgLW1hYmkKCW9wdGlvbiBpbnB1dC4KCjIwMDItMDItMTkgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBjb25maWcvdGMtczM5MC5jIChtZF9wYXJzZV9vcHRpb24pOiBBZGQgc3dpdGNoZXMgLW0zMSBhbmQgLW02NC4KCU1ha2UgYml0IHNpemUgaW5kZXBlbmRlbnQgb2YgYXJjaGl0ZWN0dXJlIHN3aXRjaC4KCShtZF9iZWdpbik6IEFkZCB3YXJuaW5nIGZvciAtbTY0IHdpdGggLUFlc2EuCgkoczM5MF9tZF9lbmQpOiBVc2UgcmVuYW1lZCBhcmNoaXRlY3R1cmUgZGVmaW5lcy4KCjIwMDItMDItMTggIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogY29uZmlnL29iai1jb2ZmLmg6IENoZWNrICF0YXJnZXRfYmlnX2VuZGlhbiwgbm90IHNobCwgZm9yIGNvZmYtc2guCgoyMDAyLTAyLTE2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGRvYy9hcy50ZXhpbmZvIChNYWNoaW5lIERlcGVuZGVuY2llcyk6IEZpeCB0eXBvOiBNTUlYIHVzZWQKCWluc3RlYWQgb2YgQ1JJUy4KCjIwMDItMDItMTUgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IFJlYWxseQoJbWFrZSBzdXJlIHdlIHRyZWF0IHdlYWsgbGlrZSBleHRlcm4gb25seSBmb3IgRUxGLiAgKEZpeGVzCglwYXRjaCBmcm9tIDIwMDEtMDctMjUuKQoKMjAwMi0wMi0xNSAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBkb2MvYXMudGV4aW5mbzogQWRkIGR1cGxpY2F0ZSBkaXJlY3RvcnkgZW50cnkgc28gdGhhdCAiaW5mbyBnYXMiCgl3b3JrcyBhcyBleHBlY3RlZC4KCjIwMDItMDItMTUgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIE5FV1M6IE1lbnRpb24gc3VwcG9ydCBmb3IgTU1JWC4KCjIwMDItMDItMTMgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzX25lZWRfZWxmX2FkZGVuZF9maXh1cCk6IFJlc3RydWN0dXJlIGludG8KCWEgc2VxdWVuY2Ugb2YgaW5kcGVuZGVudCAnaWYnIHN0YXRlbWVudHMgZm9yIGVhc2llciBkZWJ1Z2dpbmcKCWFuZCBmdXR1cmUgbW9kaWZpY2F0aW9uLgoKMjAwMi0wMi0xMyAgTWF0dCBGcmVkZXR0ZSAgPGZyZWRldHRlQG5ldGJzZC5vcmc+CgoJKiBjb25maWcvdGMtbTY4ay5jIChtZF9zaG93X3VzYWdlKTogTm8gbG9uZ2VyIGRpc3BsYXkgYQoJaGFyZC1jb2RlZCAiNjgwMjAiIGZvciB0aGUgZGVmYXVsdCBDUFUsIGluc3RlYWQgZGlzcGxheSB0aGUKCWNhbm9uaWNhbCBuYW1lIG9mIHRoZSB0cnVlLCBjb25maWd1cmVkIGRlZmF1bHQgQ1BVLgoJKG02OGtfZWxmX2ZpbmFsX3Byb2Nlc3NpbmcpOiBNYXJrIG9iamVjdHMgZm9yIHN1Yi02ODAyMAoJQ1BVcyB3aXRoIHRoZSBuZXcgRUZfTTY4MDAwIGZsYWcuCgoyMDAyLTAyLTEzICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogY29uZmlnL3RjLWkzODYuYyAodGNfaTM4Nl9maXhfYWRqdXN0YWJsZSk6IERvbid0IGFkanVzdAoJcGMtcmVsYXRpdmUgcmVsb2NhdGlvbnMgdG8gbWVyZ2Ugc2VjdGlvbnMgaW4gNjQtYml0IG1vZGUuCgoyMDAyLTAyLTEzICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIE5FV1M6IERvY3VtZW50IGZsb2F0aW5nIHBvaW50IG51bWJlciBoYW5kbGluZyBpbiBnYXNwLgoJKiBnYXNwLmM6IEluY2x1ZGUgPGFzc2VydC5oPiBhbmQgInhyZWdleC5oIi4KCShpc19mbG9udW0pOiBOZXcgZnVuY3Rpb24uCgkoY2hld19mbG93bnVtKTogTGlrZXdpc2UuCgkoY2hhbmdlX2Jhc2UpOiBDb25zdW1lIGZsb251bXMgZnJvbSB0aGUgaW5wdXQsIHdoZXJlIHBvc3NpYmxlLgoJKiBkb2MvZ2FzcC50ZXhpIChDb25zdGFudHMpOiBEb2N1bWVudCBmbG9hdGluZyBwb2ludCBudW1iZXJzLgoKMjAwMi0wMi0xMiAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlQGhpYXVseTEuaGlhLm5yYy5jYT4KCgkqIGNvbmZpZy90Yy1ocHBhLmMgKGhwcGFfZml4X2FkanVzdGFibGUpOiBEb24ndCBhZGp1c3QgZmluYWwgdHlwZXMKCXRoYXQgaW1wbGljaXRseSB1c2UgTFIgYW5kIFJSIHNlbGVjdG9ycy4KCjIwMDItMDItMTIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1uMTAzMDAuYyAob3RoZXJfcmVnaXN0ZXJzKTogQWRkZWQgYGVwc3cnLiAgTWFyayBgcGMnCglhbmQgYGVwc3cnIGFzIGF2YWlsYWJsZSBvbiBBTTMzIGFuZCBhYm92ZSBvbmx5LgoJKG90aGVyX3JlZ2lzdGVyX25hbWUpOiBBZGQgbG9naWMgdG8gaGFuZGxlIG1hY2hpbmUgdHlwZSBlbmNvZGVkIGluCglyZWdfbnVtYmVyLgoKMjAwMi0wMi0xMSAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAobWRfYXBwbHlfZml4Myk6IENoZWNrIGZvciBpbnNlcnQgZm9wIGludmFsaWQgZm9yCgl4Y29mZjY0LgoKMjAwMi0wNi0xMSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtc3BhcmMuYyAoVTB4ODAwMDAwMDAsIFUweGZmZmZmZmZmKTogTmV3IGNvbnN0YW50cy4KCVVzZSBhbGwgb3Zlci4KCjIwMDItMDItMTEgIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCgkqIGkzODYuYyAobWRfYXNzZW1ibGUpOiBTdXBwb3J0IDMyYml0IGFkZHJlc3MgcHJlZml4LgoJKGkzODZfZGlzcGxhY2VtZW50KTogTGlrZXdpc2UuCgkoaTM4Nl9pbmRleF9jaGVjayk6IEFjY2VwdCAzMmJpdCBhZGRyZXNzaW5nIGluIDY0Yml0IG1vZGUuCgoyMDAyLTAyLTExICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1zaC5jIChkb3QpOiBSZW1vdmVkIHVudXNlZCBmdW5jdGlvbi4KCjIwMDItMDItMTEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbTogIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGFjbG9jYWwubTQ6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTAyLTEwICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZG9jL2MtYWxwaGEudGV4aTogTmV3IGZpbGUuCgkqIGRvYy9NYWtlZmlsZS5hbSAoQ1BVX0RPQ1MpOiBBZGQgaXQuCgkqIGRvYy9hbGwudGV4aSwgZG9jL2FzLnRleGluZm86IEFkZCBob29rcyBmb3IgQWxwaGEuCgoyMDAyLTAyLTA5ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWFscGhhLmMgKE9fc2FtZWdwKTogTmV3LgoJKFVTRVJfUkVMT0NfUCk6IEluY2x1ZGUgaXQuCgkoYWxwaGFfcmVsb2Nfb3BfdGFnLCBkZWJ1Z19leHAsIGZpbmRfbWFjcm9fbWF0Y2gpOiBBZGQgaXQuCgkobWRfYXBwbHlfZml4Myk6IEhhbmRsZSBCRkRfUkVMT0NfQUxQSEFfQlJTR1AuCgkoYWxwaGFfZm9yY2VfcmVsb2NhdGlvbiwgYWxwaGFfZml4X2FkanVzdGFibGUpOiBMaWtld2lzZS4KCShhbHBoYV92YWxpZGF0ZV9maXgpOiBOZXcuCgkqIGNvbmZpZy90Yy1hbHBoYS5oIChUQ19WQUxJREFURV9GSVgpOiBOZXcuCgoyMDAyLTAyLTA5ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGRvYy9jLWNyaXMudGV4aTogTmV3LgoJKiBkb2MvYWxsLnRleGk6IEBzZXQgQ1JJUy4KCSogZG9jL2FzLnRleGluZm86IERpdHRvLiAgQWRkIENSSVMgZ2FzIG1hbnBhZ2Ugb3B0aW9uIG92ZXJ2aWV3LgoJSW5jbHVkZSBjLWNyaXMudGV4aS4KCSogZG9jL01ha2VmaWxlLmFtIChDUFVfRE9DUyk6IEFkZCBjLWNyaXMudGV4aQoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTAyLTA4ICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoSVNfU0VYVF8zMkJJVF9OVU0pOiBOZXcgbWFjcm8gdG8KCWRldGVybWluZSBpZiBhIG51bWJlciBpcyBhIHNpZ24tZXh0ZW5kZWQgMzItYml0IG51bWJlci4KCShsb2FkX3JlZ2lzdGVyKTogVXNlIElTX1NFWFRfMzJCSVRfTlVNLgoJKG1hY3JvKTogQ2hlY2sgaWYgbG9hZC9zdG9yZSBtYWNybyBoYW5kbGluZyBpcyB1c2luZyBhCgljb25zdGFudCAzMi1iaXQgYWRkcmVzcyBvbiA2NC1iaXQgYWRkcmVzcyBzeXN0ZW1zLCBhbmQgaWYKCXNvIG9wdGltaXplIHRoZSBnZW5lcmF0aW9uIG9mIHRoYXQgYWRkcmVzcy4KCjIwMDItMDItMDggIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtYWxwaGEuYyAoYWxwaGFfZm9yY2VfcmVsb2NhdGlvbik6IERvbid0IGFzc2VydCB0aGF0Cgl3ZSd2ZSBlbGltaW5hdGVkIGFsbCBmb3JlaWduIHJlbG9jYXRpb24gdHlwZXMgeWV0LgoJKGFscGhhX2ZpeF9hZGp1c3RhYmxlKTogTGlrZXdpc2UuCgoyMDAyLTAyLTA4ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCglDb250cmlidXRlIHNoNjQtZWxmLgoJMjAwMi0wMi0wOCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkJICAgIFN0ZXBoZW4gQ2xhcmtlIDxTdGVwaGVuLkNsYXJrZUBzdC5jb20+CgkqIGRvYy9jLXNoNjQudGV4aTogRml4IGNpdGF0aW9uIG9mIFNINjQgYXJjaGl0ZWN0dXJlIG1hbnVhbC4KCTIwMDItMDEtMzEgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBjb25maWcvdGMtc2guYyAobWRfcmVsYXhfdGFibGUpOiBBZGRlZCBkZWZhdWx0IHNpemVzIGZvcgoJbm9uLVBDLXJlbGF0aXZlIFVOREVGX01PVkksIGFuZCByZWxheGF0aW9uIHNlcXVlbmNlcyBmb3IKCU1PVklfMTYsIE1PVklfMzIgYW5kIE1PVklfNDguCgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNobWVkaWFfbWRfYXBwbHlfZml4Myk6IEZpeCB3YXJuaW5nLgoJKHNobWVkaWFfbWRfY29udmVydF9mcmFnKTogSGFuZGxlIG5vbi1QQy1yZWxhdGl2ZSBVTkRFRl9NT1ZJCglhbmQgTU9WSV8xNi4KCShzaG1lZGlhX21kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogUmVtb3ZlIHJlZHVuZGFudAoJYmxvY2tzLiAgU2V0IGZyYWdQLT5mcl92YXIgZXZlbiBpZiByZWxheGF0aW9uIHR5cGUgdW5jaGFuZ2VkLgoJUmV0YWluIFVOREVGX01PVkkgdW50aWwgZXhwcmVzc2lvbiBkZWNheXMgdG8gbnVtYmVyLgoJMjAwMi0wMS0yNCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNobWVkaWFfaW5pdF9yZWxvYyk6IEhhbmRsZSBuZXcgU0htZWRpYSBQSUMKCXJlbG9jYXRpb24gdHlwZXMuICBUYWtlIGZpeFAtPmZ4X2FkZG51bWJlciBpbnRvIGFjY291bnQgdG9vLgoJKHNobWVkaWFfbWRfYXBwbHlfZml4KTogTGlrZXdpc2UuCgkoc2htZWRpYV9tZF9jb252ZXJ0X2ZyYWcpOiBMaWtld2lzZS4KCShzaG1lZGlhX2J1aWxkX015dGVzKTogTGlrZXdpc2UuCgkoc2g2NF9jb25zdW1lX2RhdGFsYWJlbCk6IENvbXBsYWluIGFib3V0IG5lc3RlZCBkYXRhbGFiZWwuCglTdXBwb3J0IFBJQyByZWxvY3MuICBDYWxsIHNoX3BhcnNlX25hbWUuCgkqIGNvbmZpZy90Yy1zaDY0LmggKFRDX1JFTE9DX1JUU1lNX0xPQ19GSVhVUCk6IEV4dGVuZCBkZWZpbml0aW9uCglpbiB0Yy1zaC5oIHRvIFNIbWVkaWEgcmVsb2MgdHlwZXMuCgkqIGNvbmZpZy90Yy1zaC5jIChTSDY0UENSRUxQTFQsIE1PVklfUExULCBNT1ZJX0dPVE9GRiwKCU1PVklfR09UUEMpOiBOZXcgcmVsYXhhdGlvbiBjb25zdGFudHMuCgkobWRfcmVsYXhfdGFibGUpOiBJbnRyb2R1Y2UgcmVsYXhhdGlvbiBkaXJlY3RpdmVzIGZvciBQSUMtcmVsYXRlZAoJY29uc3RhbnRzLgoJKHNoX1BJQ19yZWxhdGVkX3ApOiBIYW5kbGUgZGF0YWxhYmVsLgoJKHNoX2NoZWNrX2ZpeHVwKTogQ2hvb3NlIFNINSBQSUMgcmVsb2NhdGlvbnMuCgkoc2hfY29uc19maXhfbmV3KTogQWRkZWQgQkRGX1JFTE9DXzY0LgoJKG1kX2FwcGx5X2ZpeDMsIHNoX3BhcnNlX25hbWUpOiBIYW5kbGUgR09UUExULgoJMjAwMi0wMS0xOCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNoNjRfbWF4X21lbV9mb3JfcnNfYWxpZ25fY29kZSk6IElmIHRoZQoJY3VycmVudCBJU0EgaXMgU0htZWRpYSwgZ2V0IDcgYnl0ZXMuCgkyMDAxLTExLTI4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCSogY29uZmlnL3RjLXNoLmMgKG1kX2FwcGx5X2ZpeDMpOiBUcmVhdCBzaG1lZGlhX21kX2FwcGx5X2ZpeDMgYXMgYQoJdm9pZCBmdW5jdGlvbi4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2htZWRpYV9hcHBseV9maXgpOiBSZW5hbWUgdG8KCXNobWVkaWFfYXBwbHlfZml4MyBhbmQgbWFrZSB2b2lkLgoJMjAwMS0wNS0xNyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNfc2g2NF9hYmkpOiBSZW1vdmUgdW51c2VkIGFyZ3VtZW50cyBwYXNzZWQgdG8KCWFzX2JhZC4KCTIwMDEtMDQtMTIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBjb25maWcvdGMtc2g2NC5oIChtZF9wYXJzZV9uYW1lKTogVGFrZSAmYyBhcyBhcmd1bWVudC4KCTIwMDEtMDMtMTQgIERKIERlbG9yaWUJPGRqQHJlZGhhdC5jb20+CgkqIGRvYy9NYWtlZmlsZS5hbSAoQ1BVX0RPQ1MpOiBBZGRlZCBjLXNoNjQudGV4aQoJKiBkb2MvTWFrZWZpbGUuaW4oQ1BVX0RPQ1MpOiBEaXR0by4KCSogZG9jL2Mtc2g2NC50ZXhpOiBOZXcgZmlsZS4KCSogZG9jL2FzLnRleGluZm86IEFkZCBTSDY0IHN1cHBvcnQuCgkyMDAxLTAzLTEzICBESiBEZWxvcmllCTxkakByZWRoYXQuY29tPgoJKiBjb25maWcvdGMtc2g2NC5jIChzaG1lZGlhX2dldF9vcGVyYW5kcyk6IFJlbmFtZSBBX1JFU1ZfRnggdG8KCUFfUkVVU0VfUFJFViBzbyB0aGF0IGl0cyBwdXJwb3NlIGlzIG1vcmUgb2J2aW91cy4KCShzaG1lZGlhX2J1aWxkX015dGVzKTogRGl0dG8uCgkyMDAxLTAzLTA3ICBESiBEZWxvcmllCTxkakByZWRoYXQuY29tPgoJKiBjb25maWcvdGMtc2g2NC5jIChzaDY0X3Z0YWJsZV9lbnRyeSk6IE5ldywgc3RyaXAgZGF0YWxhYmVscwoJYmVmb3JlIHByb2Nlc3NpbmcuCgkoc2g2NF92dGFibGVfaW5oZXJpdCk6IERpdHRvLgoJKHN0cmlwX2RhdGFsYWJlbHMpOiBOZXcsIHN0cmlwICJkYXRhbGFiZWwiIGZyb20gZ2l2ZW4gbGluZS4KCSogY29uZmlnL3RjLXNoLmMgKG1kX3BzZXVkb190YWJsZSk6IEFkZCBzaDY0LXNwZWNpZmljIHZ0YWJsZQoJcHNldWRvcy4KCTIwMDEtMDMtMDYgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNobWVkaWFfbWRfYXNzZW1ibGUpOiBNb3ZlIGR3YXJmMl9lbWl0X2luc24KCWNhbGwgLi4uCgkoc2htZWRpYV9idWlsZF9NeXRlcyk6IC4uLiB0byBoZXJlLgoJMjAwMS0wMy0wNiAgREogRGVsb3JpZQk8ZGpAcmVkaGF0LmNvbT4KCSogY29uZmlnL3RjLXNoLmM6IFJlbW92ZSBzaDY0LXNwZWNpZmljIHVhcXVhZCBub3cgdGhhdCB0aGVyZQoJaXMgYSBnZW5lcmljIG9uZS4KCTIwMDEtMDEtMjEgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmggKERXQVJGMl9MSU5FX01JTl9JTlNOX0xFTkdUSCk6IE92ZXJyaWRlLgoJKiBjb25maWcvdGMtc2g2NC5jIChzaG1lZGlhX21kX2Fzc2VtYmxlKTogT2Zmc2V0IHJlY29yZGVkIGluc24KCWFkZHJlc3MgYnkgb25lIGluIGNhbGwgdG8gZHdhcmYyX2VtaXRfaW5zbi4KCTIwMDEtMDEtMTMgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CglJbXBsZW1lbnQgIi5hYmkiIHBzZXVkbyBhbmQgY29ycmVjdCAuY3JhbmdlcyBkZXNjcmlwdG9ycy4gIENvcnJlY3QKCWFsaWdubWVudCBoYW5kbGluZyBicm9rZW4gYnkgaW1wb3J0ZWQgY2hhbmdlcy4KCSogY29uZmlnL3RjLXNoNjQuaCAoSEFORExFX0FMSUdOKTogT3ZlcnJpZGUgZGVmaW5pdGlvbiBpbiB0Yy1zaC5oLgoJKHNoNjRfaGFuZGxlX2FsaWduKTogRGVjbGFyZS4KCShNQVhfTUVNX0ZPUl9SU19BTElHTl9DT0RFKTogT3ZlcnJpZGUgZGVmaW5pdGlvbiBpbiB0Yy1zaC5oLgoJKHNoNjRfbWF4X21lbV9mb3JfcnNfYWxpZ25fY29kZSk6IERlY2xhcmUuCgkoZW51bSBzaDY0X2lzYV92YWx1ZXMpOiBNb3ZlZCBoZXJlIGZyb20gdGMtc2g2NC5jLgoJKG1kX2RvX2FsaWduKTogRGVmaW5lLgoJKHNoNjRfZG9fYWxpZ24pOiBEZWNsYXJlLgoJKHN0cnVjdCBzaDY0X3RjX2ZyYWdfZGF0YSk6IE5ldy4KCShUQ19GUkFHX1RZUEUpOiBDaGFuZ2UgdG8gc3RydWN0IHNoNjRfdGNfZnJhZ19kYXRhLiAgVXNlcnMKCWNoYW5nZWQuCgkoVENfRlJBR19JTklUKTogQ2hhbmdlIHRvIHNldCBuZXcgZGF0YXR5cGUuCgkoc3RydWN0IHNoNjRfc2VnbWVudF9pbmZvX3R5cGUpOiBSZW5hbWUgbWVtYmVyCglsYXN0X2ZsdXNoZWRfbG9jYXRpb24gdG8gbGFzdF9jb250ZW50c19tYXJrLiAgQWxsIHVzZXJzIGNoYW5nZWQuCgkobWRfZWxmX3NlY3Rpb25fY2hhbmdlX2hvb2ssIFRDX0NPTlNfRklYX05FVyk6IERvIG5vdCBkZWZpbmUuCgkoc2htZWRpYV9lbGZfbmV3X3NlY3Rpb24sIHNoNjRfdGNfY29uc19maXhfbmV3KTogRG8gbm90IHByb3RvdHlwZS4KCSogY29uZmlnL3RjLXNoLmMgKG1kX3BzZXVkb190YWJsZSk6IEFkZCAiLmFiaSIuCgkoc2hfZWxmX2NvbnMpIFtIQVZFX1NINjRdOiBDYWxsIHNoNjRfdXBkYXRlX2NvbnRlbnRzX21hcmsgaW5zdGVhZAoJb2YgdW5zZXR0aW5nIHNlZW5faW5zbi4KCShtZF9hc3NlbWJsZSkgW0hBVkVfU0g2NF0gPGJlZm9yZSBuZXcgU0hjb21wYWN0IHNlcXVlbmNlPjogQWxzbwoJY2FsbCBzaDY0X3VwZGF0ZV9jb250ZW50c19tYXJrLgoJKHNoX2hhbmRsZV9hbGlnbik6IFJlbW92ZSBIQVZFX1NINjQtY29uZGl0aW9uZWQgY29kZS4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2g2NF9pc2FfbW9kZSk6IENvcnJlY3QgdHlwZSBmcm9tIGJvb2xlYW4gdG8KCWVudW0gc2g2NF9pc2FfdmFsdWVzLgoJKHNoNjRfc2V0X2NvbnRlbnRzX3R5cGUpOiBEcm9wIHNlZ1QgcGFyYW1ldGVyLglBbGwgY2FsbGVycyBjaGFuZ2VkLgoJKGVtaXR0aW5nX2NyYW5nZSk6IEJvb2xlYW4gZ3VhcmQgbW92ZWQgdG8gZmlsZSBzY29wZSBmcm9tIGZ1bmN0aW9uCglzY29wZSBpbiBzaDY0X3NldF9jb250ZW50c190eXBlLgoJKHNfc2g2NF9hYmkpOiBOZXcuCgkoc2g2NF91cGRhdGVfY29udGVudHNfbWFyayk6IE5ldzsgbW9zdCBzcGxpdCBvdXQgZnJvbQoJc2g2NF9mbHVzaF9wZW5kaW5nX291dHB1dC4KCShzaG1lZGlhX21kX2VuZCk6IENhbGwgc2g2NF91cGRhdGVfY29udGVudHNfbWFyay4gIFNldAoJc2g2NF9pc2FfbW9kZSB0byBzaDY0X2lzYV9zaDVfZ3VhcmQgdW5sZXNzIHNoNjRfaXNhX3Vuc3BlY2lmaWVkLgoJKHNoNjRfZG9fYWxpZ24pOiBOZXcgZnVuY3Rpb24uCgkoc2g2NF9tYXhfbWVtX2Zvcl9yc19hbGlnbl9jb2RlKTogTmV3IGZ1bmN0aW9uLgoJKHNoNjRfaGFuZGxlX2FsaWduKTogUmVuYW1lIGZyb20gc2htZWRpYV9kb19hbGlnbi4gIE1ha2UKCW5vbi1zdGF0aWMuICBBZGQgaGVhZCBjb21tZW50LglFbWl0IHplcm8gYnl0ZXMgZm9yIG4gYnl0ZXMgbW9kdWxvCglmb3VyLiAgQ2hhbmdlIHJldHVybi10eXBlIHRvIHZvaWQuCgkoc2htZWRpYV9lbGZfbmV3X3NlY3Rpb24pOiBSZW1vdmUuCgkoc2htZWRpYV9tZF9hc3NlbWJsZSk6IENhbGwgc2g2NF91cGRhdGVfY29udGVudHNfbWFyay4KCShzX3NoNjRfbW9kZSk6IERpdHRvLiAgRG8gbm90IGNhbGwgbWRfZmx1c2hfcGVuZGluZ19vdXRwdXQuICBNYWtlCgluZXcgZnJhZy4gIENhbGwgc2g2NF91cGRhdGVfY29udGVudHNfbWFyayBhZnRlciBtYWtpbmcgdGhlIG5ldwoJZnJhZy4KCShzaDY0X2ZsdXNoX3BlbmRpbmdfb3V0cHV0KTogSnVzdCBjYWxsIHNoNjRfdXBkYXRlX2NvbnRlbnRzX21hcmsKCWFuZCBzaF9mbHVzaF9wZW5kaW5nX291dHB1dC4KCShzaDY0X2ZsYWdfb3V0cHV0KTogQWxzbyBjYWxsIG1kX2ZsdXNoX3BlbmRpbmdfb3V0cHV0LCBidXQgYWRkCgljb25kaXRpb24gb24gbm90IGVtaXR0aW5nX2NyYW5nZS4KCShzaDY0X3RjX2NvbnNfZml4X25ldyk6IFJlbW92ZS4KCTIwMDEtMDEtMTIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNobWVkaWFfZG9fYWxpZ24pOiBGaXggdG8gd29yayB3aXRoIG5ldwoJYWxpZ25tZW50IGhhbmRsaW5nIHNjaGVtZSBpbXBvcnRlZCBmcm9tIHNvdXJjZXdhcmUuCgkyMDAxLTAxLTEyICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJKiBjb25maWcvdGMtc2g2NC5oIChUQVJHRVRfRk9STUFUKTogRGVmaW5lLgoJKHNoNjRfdGFyZ2V0X2Zvcm1hdCk6IFByb3RvdHlwZS4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2g2NF90YXJnZXRfbWFjaCk6IE5ldyBmdW5jdGlvbi4KCTIwMDEtMDEtMDcgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNobWVkaWFfbWRfZW5kKTogV2hlbiBlcXVhdGluZyBhIHN5bWJvbCwgdXNlCgl6ZXJvX2FkZHJlc3NfZnJhZyBpbnN0ZWFkIG9mIGNvcHlpbmcgdGhlIGZyYWcgb2YgdGhlIHN5bWJvbC4KCShzaG1lZGlhX2Zyb2JfZmlsZV9iZWZvcmVfYWRqdXN0KTogRGl0dG8uCgkoc2htZWRpYV9tZF9hcHBseV9maXgpIDxjYXNlIEJGRF9SRUxPQ19TSF9JTU1fTUVETE9XMTY+OiBDYXN0IG1hc2sKCXRvIHZhbHVlVCB0byByZW1vdmUgc2lnbmVkbmVzcy4KCShzaG1lZGlhX21kX2NvbnZlcnRfZnJhZyk6IEFkZCBwYXJhbWV0ZXIgZmluYWwuICBSZW5hbWUgcGFyYW1ldGVyCgloZWFkZXJzIHRvIG91dHB1dF9iZmQuCURvIG5vdCBldmFsdWF0ZSBzeW1ib2xzIGlmIGZpbmFsIGlzIGZhbHNlOwoJZG8gZW1pdCBmaXh1cHMuCgkoc2htZWRpYV9tZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCkgPGNhc2UgQyAoTU9WSV9JTU1fMzIsCglVTkRFRl9NT1ZJKSBldCBhbD46IElmIHN5bWJvbCBjYW5ub3QgYmUgbW9kaWZpZWQgdG8gYmUgUEMtcmVsYXRpdmUKCXRvIHRoZSBjdXJyZW50IGZyYWcsIGNhbGwgc2htZWRpYV9tZF9jb252ZXJ0X2ZyYWcgdG8gZW1pdCBmaXh1cHMKCWFuZCBtYWtlIGZyYWdfd2FuZSBuZXV0cmFsaXplIHRoZSBmcmFnLiAgVXBkYXRlIGNvbW1lbnRzLgoJKiBjb25maWcvdGMtc2guYyAobWRfY29udmVydF9mcmFnKTogQ2hhbmdlIGNhbGxlciBvZgoJc2htZWRpYV9tZF9jb252ZXJ0X2ZyYWcuCgkyMDAxLTAxLTA2ICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJKiBjb25maWcvdGMtc2g2NC5oOiBUd2VhayBjb21tZW50cyBhbmQgY29ycmVjdCBmb3JtYXR0aW5nLgoJKiBjb25maWcvdGMtc2g2NC5jOiBEaXR0by4KCShzaG1lZGlhX21kX2NvbnZlcnRfZnJhZykgPFBUL1BUQS9QVEIgMzIsIDQ4IGFuZCA2NCBiaXQKCWV4cGFuc2lvbiwgTU9WSSBwY3JlbCBleHBhbnNpb24+OiBGaXggdGhpbmtvIGNhbGN1bGF0aW5nIG9mZnNldAoJZm9yIHRoZSBuby1yZWxvY2F0aW9uIGNhc2UuCgkoc2htZWRpYV9jaGVja19saW1pdHMpOiBGaXggcmFuZ2UgY2hlY2sgYmVpbmcgb2ZmLWJ5LW9uZSBmb3IgUFRBLgoJKiBjb25maWcvdGMtc2guYzogRGl0dG8uICBBZGQgcHJvcGVyIGNvbW1lbnRzIHRvICNpZmRlZi8jaWZuZGVmCgl3cmFwcGVycy4KCShTSDY0UENSRUwxNl9GKTogSW5jcmVtZW50IGZvciBwcm9wZXIgbWF4LVBUQSBoYW5kbGluZy4gIFVwZGF0ZQoJY29tbWVudC4KCShTSDY0UENSRUwxNl9NLCBNT1ZJXzE2X00pOiBDb3JyZWN0IHJhbmdlIHRoaW5rby4KCShTSDY0UENSRUw0OF9NLCBNT1ZJXzQ4X00pOiBTaW1pbGFyOyBkb24ndCBjb3VudCBpbiBsZW5ndGggb2YKCWV4cGFuc2lvbi4KCShTSDY0UENSRUwzMl9NLCBNT1ZJXzMyX00pOiBEaXR0bzsgaGFuZGxlIG92ZXJmbG93aW5nIGV4cHJlc3Npb24uCglDb3JyZWN0IGNvbW1lbnQuCgkyMDAxLTAxLTA1ICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJKiBjb25maWcvdGMtc2g2NC5jIChzaG1lZGlhX21kX2FwcGx5X2ZpeCkgPHNlY29uZCBzd2l0Y2gsIGNhc2UKCUJGRF9SRUxPQ19TSF9QVF8xNj46IFNldCBsb3dlc3QgYml0IGluIGZpZWxkIHRvIGJlIHJlbG9jYXRlZCB0byAxLgoJKHNobWVkaWFfbWRfY29udmVydF9mcmFnKSA8Y2FzZSBDIChTSDY0UENSRUwxNl8zMiwgU0g2NFBDUkVMMTYpIGV0CglhbD46IFNldCBsb3dlc3QgYml0IG9mIGZpZWxkIHRvIHJlbG9jYXRlIHRvIDEgYW5kIHJlc3QgdG8gZW1wdHksCglpZiByZWxvYyBpcyBlbWl0dGVkLgoJMjAwMC0xMi0zMSAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCU5ldyBvcHRpb25zIHBsdXMgYnVnZml4ZXMuCgkqIGNvbmZpZy90Yy1zaC5jIChtZF9sb25nb3B0cyk6IE5ldyBvcHRpb25zICItbm8tZXhwYW5kIiBhbmQKCSItZXhwYW5kLXB0MzIiLgoJKG1kX3BhcnNlX29wdGlvbik6IEhhbmRsZSBuZXcgb3B0aW9ucy4KCShtZF9zaG93X3VzYWdlKTogQWRkIGJsdXJiIGZvciBuZXcgb3B0aW9ucy4KCSogY29uZmlnL3RjLXNoNjQuYyAoU0hNRURJQV9CRkRfUkVMT0NfUFQpOiBOZXcgbWFjcm8uCgkoc2g2NF9leHBhbmQsIHNoNjRfcHQzMik6IE5ldyB2YXJpYWJsZXMuCgkoc2htZWRpYV9pbml0X3JlbG9jKTogSGFuZGxlIEJGRF9SRUxPQ19TSF9QVF8xNi4KCShzaG1lZGlhX21kX2FwcGx5X2ZpeCk6IEhvbGQgb3JpZ2luYWwgZml4UC0+Znhfcl90eXBlIGluCglvcmlnX2Z4X3JfdHlwZS4gIENoYW5nZSBTSE1FRElBX0JGRF9SRUxPQ19QVCBpbnRvCglCRkRfUkVMT0NfU0hfUFRfMTYuICBIYW5kbGUgQkZEX1JFTE9DX1NIX1BUXzE2IGFzIHBjLXJlbGF0aXZlLgoJPHJlc29sdmVkIHByZXZpb3VzbHktcGMtcmVsYXRpdmUgcmVsb2NzPjogSGFuZGxlCglTSE1FRElBX0JGRF9SRUxPQ19QVCBhbmQgQkZEX1JFTE9DX1NIX1BUXzE2LgoJKHNobWVkaWFfbWRfY29udmVydF9mcmFnKSA8Y2FzZSBDIChTSDY0UENSRUwxNlBUXzY0LCBTSDY0UENSRUwxNiksCgljYXNlIEMgKFNINjRQQ1JFTDE2UFRfMzIsIFNINjRQQ1JFTDE2KT46IE1vZGlmeSB0byBQVEIgaWYgb3BlcmFuZAoJcG9pbnRzIHRvIFNIY29tcGFjdCBjb2RlLgoJPGNhc2UgQyAoU0g2NFBDUkVMMTZfMzIsIFNINjRQQ1JFTDE2KSwgY2FzZSBDIChTSDY0UENSRUwxNl82NCwKCVNINjRQQ1JFTDE2KT46IENoZWNrIHRoYXQgSVNBIG9mIHdoYXQgb3BlcmFuZCBwb2ludHMgYXQgYW5kCglQVEEvUFRCIG1hdGNoZXMsIG9yIGVtaXQgZXJyb3IuCgkoc2htZWRpYV9jaGVja19saW1pdHMpOiBIYW5kbGUgQkZEX1JFTE9DX1NIX1BUXzE2IGFuZAoJU0hNRURJQV9CRkRfUkVMT0NfUFQuCgkoc2htZWRpYV9pbW1lZGlhdGVfb3ApOiBJZiBwY3JlbCwgZW1pdCBmaXh1cCBhbHNvIGZvciBjb25zdGFudAoJb3BlcmFuZC4KCShzaG1lZGlhX2J1aWxkX015dGVzKSA8Y2FzZSBBX0lNTVMxNj46IEFsc28gY2hlY2sgc2g2NF9leHBhbmQgaW4KCWNvbmRpdGlvbiBmb3IgTU9WSSBleHBhbnNpb24uCgk8Y2FzZSBBX1BDSU1NUzE2Qlk0PjogSGFuZGxlIGV4cGFuc2lvbiB0byAzMiBiaXRzIG9ubHksIGlmCglzaDY0X3B0MzIuICBFbWl0IG9ubHkgYSBCRkRfUkVMT0NfU0hfUFRfMTYgZml4dXAgaWYgbm90CglzaDY0X2V4cGFuZC4KCTxjYXNlIEFfUENJTU1TMTZCWTRfUFQ+OiBMaWtld2lzZSwgYnV0IGVtaXQgYSBTSE1FRElBX0JGRF9SRUxPQ19QVAoJZml4dXAuCgkoc2g2NF90YXJnZXRfZm9ybWF0KTogRXJyb3ItY2hlY2sgc2V0dGluZyBvZiBzaDY0X3B0MzIgYW5kCglzaDY0X2V4cGFuZC4gIEZpeCB0eXBvIGluIGNoZWNrIGZvciBzaDY0X3NoY29tcGFjdF9jb25zdF9jcmFuZ2UuCgkoc2htZWRpYV9tZF9wY3JlbF9mcm9tX3NlY3Rpb24pOiBIYW5kbGUgQkZEX1JFTE9DX1NIX1BUXzE2IGFuZAoJU0hNRURJQV9CRkRfUkVMT0NfUFQgYXMgY29taW5nIGZyb20gU0htZWRpYSBjb2RlLgoJMjAwMC0xMi0zMSAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYzogSW1wcm92ZSBjb21tZW50cy4KCShzaG1lZGlhX21kX2NvbnZlcnRfZnJhZyk6IFJlbW92ZSBpbmFjdGl2ZSBpc19wdF92YXJpYW50IGNvZGUuCURvCglub3Qgc2F5IHRoZSBsaW5rZXIgd2lsbCBjaGVjayBjb3JyZWN0bmVzcyBvZiBQVEEvUFRCIGV4cGFuc2lvbi4KCShzaG1lZGlhX21kX2VuZCk6IE1ha2Ugbm9uLXN0YXRpYy4KCSogY29uZmlnL3RjLXNoNjQuaCAobWRfZW5kKTogRGVmaW5lIHRvIHNobWVkaWFfbWRfZW5kLglBZGQKCXByb3RvdHlwZS4KCSogY29uZmlnL3RjLXNoLmMgKHNoX2ZpbmFsaXplKTogUmVtb3ZlLgoJKiBjb25maWcvdGMtc2guaCAobWRfZW5kKTogRG8gbm90IGRlZmluZS4KCVJlbW92ZSBwcm90b3R5cGUgZm9yIHNoX2ZpbmFsaXplLgoJMjAwMC0xMi0zMCAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2htZWRpYV9mcm9iX3NlY3Rpb25fdHlwZSk6IFVzZSBhIHN0cnVjdAoJc2g2NF9zZWN0aW9uX2RhdGEgY29udGFpbmVyIHdoZW4gc3RvcmluZyBzZWN0aW9uIHR5cGUgaW4gdGRhdGEKCWZpZWxkIGluIGVsZl9zZWN0aW9uX2RhdGEuCgkqIGNvbmZpZy90Yy1zaC5jIChzaF9lbGZfZmluYWxfcHJvY2Vzc2luZyk6IENoYW5nZSBmcm9tIEVGX1NINjQgdG8KCUVGX1NINS4KCSogTWFrZWZpbGUuYW06IFVwZGF0ZSBkZXBlbmRlbmNpZXMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJMjAwMC0xMi0yMiAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2htZWRpYV9tZF9hc3NlbWJsZSk6IERvbid0IHByb3RlY3QKCWR3YXJmMl9lbWl0X2luc24gY2FsbCB3aXRoIHRlc3Qgb24gZGVidWdfdHlwZS4KCTIwMDAtMTItMTkgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNoNjRfc2V0X2NvbnRlbnRzX3R5cGUpOiBNYWtlIGNvbnRlbnRzLXR5cGUKCUNSVF9TSDVfSVNBMzIgc3RpY2t5IGZvciA2NC1iaXQuCgkyMDAwLTEyLTE4ICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJR2VuZXJhdGUgLmNyYW5nZSBzZWN0aW9ucyB3aGVuIHN3aXRjaGluZyBJU0EgbW9kZSBvciBlbWl0dGluZwoJY29uc3RhbnRzIGluIHNhbWUgc2VjdGlvbiBhcyBjb2RlLgoJKiBjb25maWcvdGMtc2g2NC5jOiBSZWZvcm1hdCBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMuCgkoc2g2NF9lbmRfb2ZfYXNzZW1ibHksIHNoNjRfbWl4LCBzaDY0X3NoY29tcGFjdF9jb25zdF9jcmFuZ2UpOiBOZXcKCXZhcmlhYmxlcy4KCShzaDY0X3NldF9jb250ZW50c190eXBlKTogUmVuYW1lIGZyb20gc2g2NF9pbml0X3NlY3Rpb24uICBSZXdyaXRlCgl0byBlbWl0IGEgLmNyYW5nZXMgZGVzY3JpcHRvciB3aGVuIGNvbnRlbnRzIHR5cGUgY2hhbmdlcy4gIE9ubHkKCWVtaXQgZXJyb3IgaWYgY2hhbmdpbmcgY29udGVudHMgdHlwZSBhbmQgLW5vLW1peCBpcyBpbiBlZmZlY3QuCgkoc2g2NF9lbWl0X2NyYW5nZSwgc2g2NF9mbHVzaF9sYXN0X2NyYW5nZSwgc2g2NF9mbGFnX291dHB1dCwKCXNoNjRfZmx1c2hfcGVuZGluZ19vdXRwdXQsIHNoNjRfdGNfY29uc19maXhfbmV3KTogTmV3IGZ1bmN0aW9ucy4KCShzaG1lZGlhX21kX2VuZCk6IFNldCBzaDY0X2VuZF9vZl9hc3NlbWJseS4gIFBhc3MKCXNoNjRfZmx1c2hfbGFzdF9jcmFuZ2Ugb3ZlciBzZWN0aW9ucy4KCVdoZW4gY2hlY2tpbmcgbWFpbiBzeW1ib2wgb2YgZGF0YWxhYmVsIHN5bWJvbCwgY2hlY2sgZm9yCglTVE9fU0g1X0lTQTMyLCBub3QgSVNBIHR5cGUgb2Ygc2VjdGlvbiBpbiBkZWZpbml0aW9uLgoJKHNobWVkaWFfZnJvYl9maWxlX2JlZm9yZV9hZGp1c3QpOiBDaGVjayBtYWluIHN5bWJvbCBmb3IKCVNUT19TSDVfSVNBMzI7IGRvbid0IGNoZWNrIElTQSB0eXBlIG9mIHNlY3Rpb24gaW4gZGVmaW5pdGlvbi4KCShzaG1lZGlhX2Zyb2Jfc2VjdGlvbl90eXBlKTogQWRqdXN0IGZvciAuY3Jhbmdlczsgc2V0IHNlY3Rpb24gZmxhZwoJdG8gU0hGX1NINV9JU0EzMl9NSVhFRCBvciBTSEZfU0g1X0lTQTMyIGFjY29yZGluZyB0byB3aGV0aGVyCgkuY3JhbmdlcyBlbnRyaWVzIGhhdmUgYmVlbiBvdXRwdXQuCgkoc2htZWRpYV9lbGZfbmV3X3NlY3Rpb24pOiBKdXN0IGNhbGwgbWRfZmx1c2hfcGVuZGluZ19vdXRwdXQuCgkoc2htZWRpYV9tZF9hc3NlbWJsZSk6IERvIG5vdCBlbWl0IGEgQkZEX1JFTE9DX1NIX1NITUVESUFfQ09ERQoJZml4LiAgRG8gbm90IHNldCB0Y19zZWdtZW50X2luZm9fZGF0YS5pbl9jb2RlIGZvciBzZWN0aW9uLiAgQ2FsbAoJc2g2NF9zZXRfY29udGVudHNfdHlwZSBmb3IgU0htZWRpYSBjb2RlLgoJKHNfc2g2NF9tb2RlKTogRG8gbm90IGNhbGwgc2g2NF9pbml0X3NlY3Rpb24gb3Igc2V0IHNlZW5faW5zbiB0bwoJZmFsc2UuCUNhbGwgbWRfZmx1c2hfcGVuZGluZ19vdXRwdXQuCgkoc2g2NF90YXJnZXRfZm9ybWF0KTogQ2hlY2sgdGhhdCAtbm8tbWl4IGFuZAoJLXNoY29tcGFjdC1jb25zdC1jcmFuZ2UgYXJlIHVzZWQgaW4gc2FuZSBjb21iaW5hdGlvbiB3aXRoIG90aGVyCglvcHRpb25zLgoJKHNobWVkaWFfbWRfcGNyZWxfZnJvbV9zZWN0aW9uKTogQ2hlY2sgdHlwZSBvZiBmaXggZm9yIGhvdyB0bwoJYWRqdXN0IHBjLXJlbGF0aXZlLgoJKHNoNjRfY29uc3VtZV9kYXRhbGFiZWwpOiBDaGVjayBzeW1ib2wgZm9yIGhhdmluZyBTVE9fU0g1X0lTQTMyLAoJbm90IElTQSB0eXBlIG9mIHNlY3Rpb24gaW4gZGVmaW5pdGlvbi4KCSogY29uZmlnL3RjLXNoNjQuaCAoc3RydWN0IHNoNjRfc2VnbWVudF9pbmZvX3R5cGUpOiBSZXdyaXRlIHRvCglob2xkIGNvbnRlbnRzLXR5cGUgc3RhdGUuCgkobWRfZmx1c2hfcGVuZGluZ19vdXRwdXQpOiBSZWRlZmluZSB0byBzaDY0X2ZsdXNoX3BlbmRpbmdfb3V0cHV0LgoJKHNoNjRfZmx1c2hfcGVuZGluZ19vdXRwdXQpOiBEZWNsYXJlLgoJKFRDX0NPTlNfRklYX05FVyk6IERlZmluZSB0byBzaDY0X3RjX2NvbnNfZml4X25ldy4KCShzaDY0X3RjX2NvbnNfZml4X25ldyk6IERlY2xhcmUuCgkqIGNvbmZpZy90Yy1zaC5jIChzaF9lbGZfY29ucykgW0hBVkVfU0g2NF06IFVuc2V0IHNlZW5faW5zbiBhbmQKCWNhbGwgc2g2NF9mbGFnX291dHB1dC4KCShtZF9hc3NlbWJsZSkgW0hBVkVfU0g2NF06IERvIG5vdCBlbWl0IEJGRF9SRUxPQ19TSF9DT0RFLiAgSnVzdAoJY2FsbCBzaDY0X3NldF9jb250ZW50c190eXBlIHRvIG1hcmsgU0hjb21wYWN0IGNvZGUgYW5kIHNldAoJc2Vlbl9pbnNuLgoJKG1kX2xvbmdvcHRzKTogTmV3IG9wdGlvbnMgIi1uby1taXgiIGFuZAoJIi1zaGNvbXBhY3QtY29uc3QtY3JhbmdlIi4KCShtZF9wYXJzZV9vcHRpb24pOiBIYW5kbGUgbmV3IG9wdGlvbnMuCgkobWRfc2hvd191c2FnZSk6IEFkZCBibHVyYiBmb3IgbmV3IG9wdGlvbnMuCgkobWRfbnVtYmVyX3RvX2NoYXJzKSBbSEFWRV9TSDY0XTogQ2FsbCBzaDY0X2ZsYWdfb3V0cHV0LgoJMjAwMC0xMi0xNSAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYzogRGVsZXRlIGludmVzdGlnYXRlZCBhbmQgb2Jzb2xldGUgZml4bWU6cy4KCShzaDY0X2xhc3RfaW5zbl9mcmFnKTogTmV3LgoJKHNobWVkaWFfbWRfY29udmVydF9mcmFnKTogVXNlIHRjX2ZyYWdfZGF0YSBmaWVsZCBvZiBpbmNvbWluZyBmcmFnCgl0byBnZXQgZnJhZyBmb3IgaW5zbiBvcGNvZGUgZm9yIGdlbmVyYXRpbmcgZml4dXBzOyBkbyBub3QgYXNzdW1lIGl0CglpcyB0aGUgc2FtZSBmcmFnLgoJKHNobWVkaWFfYnVpbGRfTXl0ZXMpOiBTZXQgc2g2NF9sYXN0X2luc25fZnJhZyBhZnRlciBncm93aW5nIGZyYWcKCWZvciBuZXcgaW5zbi4KCSogY29uZmlnL3RjLXNoNjQuaCAoRUxGX1RDX1NQRUNJQUxfU0VDVElPTlMpOiBEZWZpbmUgZm9yIC5jcmFuZ2VzCglzZWN0aW9uLgoJKFRDX0ZSQUdfVFlQRSk6IERlZmluZSBhcyBmcmFnUyAqLgoJKFRDX0ZSQUdfSU5JVCk6IERlZmluZSB0byBzZXQgdGNfZnJhZ19kYXRhIHRvIHNoNjRfbGFzdF9pbnNuX2ZyYWcuCgkoc2g2NF9sYXN0X2luc25fZnJhZyk6IERlY2xhcmUuCgkoc2g2NF9jb25zdW1lX2RhdGFsYWJlbCk6IEZpeCB0eXBvOyBjaGVjayBmb3Igc2VnaW5mbyAhPSBOVUxMLAoJbm90ID09IE5VTEwgYmVmb3JlIGRlcmVmZXJlbmNpbmcuCgkyMDAwLTEyLTEyICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJR2V0IHJpZCBvZiBCRkQgc2VjdGlvbiBmbGFnIGFuZCBFRl9TSDY0X0FCSTY0LgoJKiBjb25maWcvdGMtc2g2NC5jIChzaG1lZGlhX2Zyb2Jfc2VjdGlvbl90eXBlKTogVXNlCgllbGZfc2VjdGlvbl9kYXRhIChzZWMpLT50ZGF0YSwgbm90IGEgc3BlY2lmaWMgQkZEIHNlY3Rpb24gZmxhZywgdG8KCWNvbW11bmljYXRlIHRoZSBzZWN0aW9uIGFzIGNvbnRhaW5pbmcgU0htZWRpYSBjb2RlLiAgRGVzY3JpYmUgd2h5LgoJKiBjb25maWcvdGMtc2guYyAoc2hfZWxmX2ZpbmFsX3Byb2Nlc3NpbmcpOiBUd2VhayBjb21tZW50LiAgU2V0CglFRl9TSDY0IHJlZ2FyZGxlc3Mgb2YgQUJJLgoJKiBjb25maWcvdGMtc2g2NC5jIChzaG1lZGlhX21kX2FwcGx5X2ZpeCk6IERlY2FwaXRhbGl6ZSAiaW52YWxpZCIKCWluIGVycm9yIG1lc3NhZ2UuICBIYW5kbGUgcmVzb2x2ZWQgZXhwcmVzc2lvbnMgZm9yCglCRkRfUkVMT0NfU0hfSU1NUzEwLCBCRkRfUkVMT0NfU0hfSU1NUzEwQlkyLAoJQkZEX1JFTE9DX1NIX0lNTVMxMEJZNCBhbmQgQkZEX1JFTE9DXzY0LgoJKHNobWVkaWFfY2hlY2tfbGltaXRzKTogSGFuZGxlIEJGRF9SRUxPQ182NC4KCShzaDY0X2FkanVzdF9zeW10YWIpOiBEbyBub3QgZGVjcmVtZW50IHRoZSBHQVMgc3ltYm9sIHZhbHVlIGZvcgoJYSBTVE9fU0g1X0lTQTMyIHN5bWJvbCwgb25seSB0aGUgQkZEIHZhbHVlLgoJMjAwMC0xMi0xMSAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmM6IENhbGwgZHdhcmYyX2VtaXRfaW5zbiwgbm90IHRoZSBkZWZ1bmN0Cglkd2FyZjJfZ2VuZXJhdGVfYXNtX2xpbmVuby4KCTIwMDAtMTItMTEgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CglIYW5kbGUgUEMtcmVsYXRpdmUgTU9WSSBleHBhbnNpb25zIHdpdGggYXNzZW1ibGVyIHJlbGF4YXRpb24uCglHZW5lcmF0ZSBQQy1yZWxhdGl2ZSByZWxvY3MgZnJvbSAxNi1iaXQgUEMtcmVsYXRpdmUgZXhwcmVzc2lvbnMuCgkqIGNvbmZpZy90Yy1zaDY0LmMgKFNITUVESUFfTURfUENSRUxfRlJPTV9GSVgpOiBCcmVhayBvdXQgZnJvbS4uLgoJKHNobWVkaWFfbWRfcGNyZWxfZnJvbV9zZWN0aW9uKTogLi4uaGVyZS4KCShzaG1lZGlhX21kX2FwcGx5X2ZpeCk6IEhhbmRsZSBmaXh1cHMgZm9yIDE2LWJpdCBvcGVyYW5kcyB0aGF0IGhhcwoJdHVybmVkIGNvbXBsZXRlbHkgcmVzb2x2ZWQuICBBZGp1c3QgcmVsb2NhdGlvbiB0eXBlIGZvciAxNi1iaXQKCWltbWVkaWF0ZSBvcGVyYW5kcyB0aGF0IGhhcyB0dXJuZWQgUEMtcmVsYXRpdmUuICBBZGp1c3QgYmFjayBmb3IKCU1EX1BDUkVMX0ZST01fU0VDVElPTiBiZWluZyBhcHBsaWVkIHR3aWNlLgoJKHNobWVkaWFfbWRfY29udmVydF9mcmFnKTogQWx3YXlzIGVtaXQgcmVsb2MgZm9yIGV4cHJlc3Npb24gd2l0aAoJZ2xvYmFsIG9yIHdlYWsgc3ltYm9sLglIYW5kbGUgcmVsYXhhdGlvbiByZXN1bHQgZm9yIFBDLXJlbGF0aXZlCglleHByZXNzaW9ucy4KCShzaG1lZGlhX21kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogQW4gZXhwcmVzc2lvbiB3aXRoIGEgd2VhawoJb3IgZ2xvYmFsIHN5bWJvbCBjYW4gbm90IGJlIHJlbGF4ZWQuICBCcmVhayBvdXQgdGVzdHMgZm9yCglyZWxheGFibGUgc3ltYm9sIGludG8gdmFyaWFibGUgc3ltX3JlbGF4YWJsZS4KCTxjYXNlcyBDIChNT1ZJX0lNTV82NCwgVU5ERUZfTU9WSSkgYW5kIEMgKE1PVklfSU1NXzMyLAoJVU5ERUZfTU9WSSk+OiBCcmVhayBvdXQgYW55IFBDLXJlbGF0aXZlIGV4cHJlc3Npb24gYW5kIGNoYW5nZQoJcmVsYXhhdGlvbiB0eXBlLgoJKHNobWVkaWFfYnVpbGRfTXl0ZXMpOiBDU0UgJm9wZXJhbmRzLT5vcGVyYW5kc1tqXSBpbnRvIHZhcmlhYmxlCglvcGpwLgoJPGNhc2UgQV9JTU1TMTY+OiBGaXggdHlwbyBmb3IgaW5pdGlhbCBtaW5vciByZWxheGF0aW9uIHR5cGUgb2YKCU1PVkkgZXhwYW5zaW9uLiAgSWYgWF9vcF9zeW1ib2wgb2YgdGhlIGltbWVkaWF0ZSBleHByZXNzaW9uIGlzCglzZXQsIG1ha2UgYW4gZXhwcmVzc2lvbiBzeW1ib2wgZm9yIHRoZSBhcmd1bWVudCB0byBmcmFnX3Zhci4KCSogY29uZmlnL3RjLXNoLmMgKE1PVklfSU1NXzMyX1BDUkVMLCBNT1ZJX0lNTV82NF9QQ1JFTCk6IE5ldwoJcmVsYXhhdGlvbnMuCgkoRU5EKTogQWRqdXN0IGZvciBuZXcgcmVsYXhhdGlvbnMuCgkobWRfcmVsYXhfdGFibGUpOiBBZGQgZW50cmllcyBmb3IgbmV3IHJlbGF4YXRpb25zLgoJMjAwMC0xMi0wNyAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNobWVkaWFfcGFyc2VfcmVnKTogSW5pdGlhbGl6ZSB2YXJpYWJsZSBsZW4uCgkyMDAwLTEyLTA3ICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJKiBjb25maWcvdGMtc2g2NC5jIChzaG1lZGlhX21kX2NvbnZlcnRfZnJhZyk6IENvcnJlY3QgYWxsIE1PVkkgYW5kCglTSE9SSSBvcGVyYW5kIG9mZnNldHMgaW4gUFQvUFRBL1BUQiBleHBhbnNpb25zLgoJMjAwMC0xMi0wNSAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCUltcGxlbWVudCBEYXRhTGFiZWwgc2VtYW50aWNzLgoJKiBjb25maWcvdGMtc2guYyAoc2hfZnJvYl9maWxlKSBbSEFWRV9TSDY0XTogQ2FsbAoJc2htZWRpYV9mcm9iX2ZpbGVfYmVmb3JlX2FkanVzdC4KCSogY29uZmlnL3RjLXNoNjQuYyBbISBPQkpfRUxGXTogRW1pdCAjZXJyb3IuCgkoREFUQUxBQkVMX1NVRkZJWCk6IERlZmluZS4KCShzaG1lZGlhX21kX2VuZCkgPGJlZm9yZSBhZGp1c3RpbmcgU1RPX1NINV9JU0EzMiBzeW1ib2xzPjogV2FsawoJc3ltYm9sIGxpc3QgdG8gdXBkYXRlICJkYXRhbGFiZWwiIHN5bWJvbHMgdG8gdGhlaXIgbWFpbiBzeW1ib2wKCWNvdW50ZXJwYXJ0cy4KCShzaG1lZGlhX2Zyb2JfZmlsZV9iZWZvcmVfYWRqdXN0KTogTmV3LgoJKHNoNjRfYWRqdXN0X3N5bXRhYik6IEZvciByZW1haW5pbmcgZGF0YWxhYmVsIHN5bWJvbHMsIHNldCB0bwoJdW5kZWZpbmVkIGFuZCBzZXQgU1RUX0RBVEFMQUJFTC4KCShzaDY0X2Zyb2JfbGFiZWwpOiBJbml0aWFsaXplIFRDIHN5bWJvbCBmaWVsZC4KCShzaDY0X2NvbnN1bWVfZGF0YWxhYmVsKTogQWN0dWFsbHkgaW1wbGVtZW50IHNlbWFudGljcy4gIE5ldwoJcGFyYW1ldGVyIG9wZXJhbmRmLCBjYWxsIGl0IGluc3RlYWQgb2YgZXhwcmVzc2lvbi4KCShzaDY0X2V4Y2x1ZGVfc3ltYm9sKTogTmV3LgoJKiBjb25maWcvdGMtc2g2NC5oIChtZF9wYXJzZV9uYW1lKTogUGFzcyBvbiB0aGUgZnVuY3Rpb24gb3BlcmFuZAoJdG8gc2g2NF9jb25zdW1lX2RhdGFsYWJlbC4KCSh0Y19zeW1ib2xfbmV3X2hvb2spOiBEZWZpbmUgdG8gdGNfZnJvYl9zeW1ib2wuCgkoVENfU1lNRklFTERfVFlQRSk6IERlZmluZSB0byBzeW1ib2xTICouCgkodGNfZnJvYl9zeW1ib2wpOiBEZWZpbmUgdG8gY2FsbCBzaDY0X2V4Y2x1ZGVfc3ltYm9sLgoJMjAwMC0xMi0wMSAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2htZWRpYV9pbml0X3JlbG9jKTogVHdlYWsgY29tbWVudCBmb3IgZGVmYXVsdAoJY2FzZS4KCShzaG1lZGlhX21kX2Fzc2VtYmxlKTogQ2FsbCBkd2FyZjJfZ2VuZXJhdGVfYXNtX2xpbmVubyBpZgoJZ2VuZXJhdGluZyBkd2FyZjIgZGVidWcgaW5mb3JtYXRpb24uCgkyMDAwLTExLTMwICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJKiBjb25maWcvdGMtc2g2NC5jIChzaDY0X3RhcmdldF9mb3JtYXQpOiBVc2UgZWxmNjQtc2g2NGwgYW5kCgllbGY2NC1zaDY0IGZvciB0aGUgNjQtYml0IEFCSS4KCSogY29uZmlnL3RjLXNoLmMgKG1kX3Nob3dfdXNhZ2UpOiBUd2VhayB1c2FnZSBvdXRwdXQgZm9yIC1hYmk9KgoJb3B0aW9uLgoJMjAwMC0xMS0yOSAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCSogY29uZmlnL3RjLXNoLmM6IFJlbW92ZSBjb25kaXRpb25hbGl6aW5nIG9uIEhBVkVfU0g2NCBmb3IKCWNhc2UtaW5zZW5zaXRpdml0eS4KCTIwMDAtMTEtMjcgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmM6IFR3ZWFrIGNvbW1lbnRzLCBmb3JtYXR0aW5nIGFuZCBlcnJvciBtZXNzYWdlcy4KCShlbnVtIHNoNjRfYWJpX3ZhbHVlcyk6IE5ldyB0eXBlLgoJKGVudW0gc2g2NF9pc2FfdmFsdWVzKTogTmV3IHR5cGUuCgkoc2g2NF9pc2FfbW9kZSk6IFJlcGxhY2Ugc2htZWRpYV9tb2RlLglBbGwgcmVmZXJlcnMgY2hhbmdlZC4KCShzZWVuX3NoY29tcGFjdF9tb2RlLCBzZWVuX3NobWVkaWFfbW9kZSk6IERlbGV0ZS4KCShzaDY0X2FiaSk6IFJlcGxhY2Ugc2htZWRpYV82NC4KCShzaG1lZGlhX21kX2NvbnZlcnRfZnJhZykgPEMgKE1PVklfSU1NXzY0LCBNT1ZJXzY0KSwKCUMgKE1PVklfSU1NXzMyLCBNT1ZJXzMyKT46IENvcnJlY3QgcmVnaXN0ZXIgbnVtYmVyIGhhbmRsaW5nLgoJKHNfc2g2NF9tb2RlKTogQ2hlY2sgdmFsaWRpdHkgZm9yIHRoaXMgdGFyZ2V0LgoJKHNoNjRfdGFyZ2V0X2Zvcm1hdCk6IEluaXRpYWxpemUgZGVmYXVsdHMgZm9yIElTQSBhbmQgQUJJLgoJRmFsbGJhY2sgdG8gb2xkIG9iamVjdCBmb3JtYXQgaWYgbm8gU0g2NCBJU0Egb3IgQUJJIGhhcyBiZWVuCglzcGVjaWZpZWQuCgkqIGNvbmZpZy90Yy1zaC5jIChtZF9wYXJzZV9vcHRpb24pOiBDaGVjayBjb21iaW5hdGlvbnMgZm9yIGVycm9ycy4KCShzaF9lbGZfZmluYWxfcHJvY2Vzc2luZyk6IENoYW5nZSB0byBoYXZlIEVGX1NINjRfQUJJNjQgZm9yIDY0LWJpdAoJQUJJIGFuZCBFRl9TSDY0IGZvciAzMi1iaXQgQUJJLCBpZiBTSDY0IG9wdGlvbnMgYXJlIHNwZWNpZmllZC4KCSogY29uZmlnL3RjLXNoNjQuaDogRml4IHR5cG8gaW4gY29tbWVudC4KCTIwMDAtMTEtMjUgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNobWVkaWFfbWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpCgk8UFQgZml4dXBzIGZvciBhYnNvbHV0ZSB2YWx1ZXM+OiBTaXplIHdpbGwgYmUgbG9uZ2VzdCwgbm90CglzaG9ydGVzdC4KCShzaG1lZGlhX21kX2NvbnZlcnRfZnJhZyk6IERpc2FibGUgUFRCLXdhcm5pbmcgbWFjaGluZXJ5LiAgQ29ycmVjdAoJYWxsIE1PVkkgYW5kIFNIT1JJIG9wZXJhbmQgb2Zmc2V0cyBpbiBQVC9QVEEvUFRCIGV4cGFuc2lvbnMuCgkqIGNvbmZpZy90Yy1zaC5jIChwYXJzZV9yZWcpIFtIQVZFX1NINjRdOiBBZGQgbG9jYWwgdmFyaWFibGVzIGwwCglhbmQgbDEgdG8gaG9sZCBsb3dlcmNhc2Ugb2YgdHdvIGZpcnN0IGNoYXJhY3RlcnMuICBDaGFuZ2UgYWxsCglyZW1haW5pbmcgVE9fTE9XRVIgdG8gdG9sb3dlci4KCSogY29uZmlnL3RjLXNoNjQuYyAoVE9fTE9XRVIpOiBEZWxldGUuCgkoc2htZWRpYV9maW5kX2Nvb2tlZF9vcGNvZGUpOiBVc2UgdG9sb3dlciwgbm90IFRPX0xPV0VSLgoJKG1kX3BhcnNlX25hbWUpOiBEZWZpbmUuCgkoc2g2NF9jb25zdW1lX2RhdGFsYWJlbCk6IERlY2xhcmUuCgkoRE9MTEFSX0RPVCk6IERlZmluZS4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2htZWRpYV9wYXJzZV9leHApOiBOZXcuCgkoc2g2NF9jb25zdW1lX2RhdGFsYWJlbCk6IE5ldzsganVzdCBpZ25vcmluZyBkYXRhbGFiZWwgc2VtYW50aWNzLgoJKHNobWVkaWFfcGFyc2VfcmVnKTogUmVtb3ZlIGNvbnN0IGZyb20gc3JjCglwYXJhbWV0ZXIuCgkoc2htZWRpYV9nZXRfb3BlcmFuZHMpOiBEaXR0byBmb3IgYXJncyBwYXJhbWV0ZXIgYW5kIHB0ciB2YXJpYWJsZS4KCShzaG1lZGlhX21kX2Fzc2VtYmxlKTogRGl0dG8gZm9yIG9wX2VuZCB2YXJpYWJsZS4KCShzaG1lZGlhX2dldF9vcGVyYW5kKTogRGl0dG8gZm9yIHB0ciBwYXJhbWV0ZXIgYW5kIHNyYyB2YXJpYWJsZS4KCVVzZSBzaG1lZGlhX3BhcnNlX2V4cCwgbm90IHBhcnNlX2V4cC4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2htZWRpYV9wYXJzZV9yZWcpOiBBZGQgc2htZWRpYV9hcmdfdHlwZQoJcGFyYW1ldGVyLiAgQWxsIGNhbGxlcnMgY2hhbmdlZC4KCShzaG1lZGlhX2dldF9vcGVyYW5kKTogQWRkIHNobWVkaWFfYXJnX3R5cGUgcGFyYW1ldGVyLglBbGwKCWNhbGxlcnMgY2hhbmdlZC4KCShzaG1lZGlhX3BhcnNlX3JlZyk6IFB1dCBmaXJzdCB0d28gY2hhcmFjdGVyIGluIGxvY2FsIHZhcmlhYmxlcy4KCVVzZSB0b2xvd2VyLCBub3QgVE9fTE9XRVIuICBJZiBubyByZWdpc3RlciBpcyBmb3VuZCBhbmQgYXJndHlwZQoJaW5kaWNhdGVzIGEgY29udHJvbCByZWdpc3Rlciwgc2NhbiBzaG1lZGlhX2NyZWdfdGFibGUKCWNhc2UtaW5zZW5zaXRpdmUuCgkyMDAwLTExLTI0ICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJKiBNYWtlZmlsZS5hbSAoQ1BVX1RZUEVTKTogQWRkIHNoNjQuCgkoVEFSR0VUX0NQVV9DRklMRVMpOiBBZGQgY29uZmlnL3RjLXNoNjQuYy4KCShUQVJHRVRfQ1BVX0hGSUxFUyk6IEFkZCBjb25maWcvdGMtc2g2NC5oLgoJUmVnZW5lcmF0ZSBkZXBlbmRlbmNpZXMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmUuaW46IEFkZCBzdXBwb3J0IGZvciBzaDY0LSotZWxmKi4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjb25maWcvdGMtc2g2NC5oOiBOZXcuCgkqIGNvbmZpZy90Yy1zaDY0LmM6IE5ldy4KCSogY29uZmlnL3RjLXNoLmMgKG1kX3BzZXVkb190YWJsZSkgW0hBVkVfU0g2NF06IE5ldyBwc2V1ZG9zCgkubW9kZSwgLmlzYSBhbmQgLnVhcXVhZC4KCVtIQVZFX1NINjRdIChTSDY0UENSRUwxNl8zMiwgU0g2NFBDUkVMMTZfNjQsIFNINjRQQ1JFTDE2UFRfMzIsCglTSDY0UENSRUwxNlBUXzY0LCBNT1ZJX0lNTV8zMiwgTU9WSV9JTU1fNjQpOiBEZWZpbmUuCglbSEFWRV9TSDY0XSAoRU5EKTogRGVmaW5lIGFzIDEwLgoJW0hBVkVfU0g2NF0gKFVOREVGX1NINjRQQ1JFTCwgU0g2NFBDUkVMMTYsIFNINjRQQ1JFTDMyLAoJU0g2NFBDUkVMNDgsIFNINjRQQ1JFTDY0LCBVTkRFRl9NT1ZJLCBNT1ZJXzE2LCBNT1ZJXzMyLCBNT1ZJXzQ4LAoJTU9WSV82NCk6IERlZmluZS4KCVtIQVZFX1NINjRdIChTSDY0UENSRUwxNl9GLCBTSDY0UENSRUwxNl9NLCBTSDY0UENSRUwxNl9MRU5HVEgsCglTSDY0UENSRUwzMl9GLCBTSDY0UENSRUwzMl9NLCBTSDY0UENSRUwzMl9MRU5HVEgsIFNINjRQQ1JFTDQ4X0YsCglTSDY0UENSRUw0OF9NLCBTSDY0UENSRUw0OF9MRU5HVEgsIFNINjRQQ1JFTDY0X0xFTkdUSCwKCU1PVklfMTZfTEVOR1RILCBNT1ZJXzMyX0xFTkdUSCwgTU9WSV80OF9MRU5HVEgsIE1PVklfNjRfTEVOR1RIKToKCURlZmluZS4KCShtZF9yZWxheF90YWJsZSkgW0hBVkVfU0g2NF06IFByb3ZpZGUgcmVsYXhhdGlvbnMgZm9yIFNIbWVkaWEuCgkobWRfYmVnaW4pIFtIQVZFX1NINjRdOiBDYWxsIHNobWVkaWFfbWRfYmVnaW4uCgkocGFyc2VfcmVnKSBbSEFWRV9TSDY0XTogUGFyc2UgcmVnaXN0ZXIgbmFtZXMgY2FzZS1pbnNlbnNpdGl2ZS4KCShtZF9hc3NlbWJsZSkgW0hBVkVfU0g2NF06IENhbGwgc2htZWRpYV9tZF9hc3NlbWJsZSBpZiBhc3NlbWJsaW5nCglTSG1lZGlhIGluc3RydWN0aW9ucy4gIEhhbmRsZSBzdGF0ZS1jaGFuZ2UgYWZ0ZXIgc3dpdGNoaW5nIHRvCglTSGNvbXBhY3QuCgkobWRfbG9uZ29wdHMpIFtIQVZFX1NINjRdOiBOZXcgb3B0aW9ucyAtLWlzYT0qIGFuZCAtLWFiaT0qLgoJKG1kX3BhcnNlX29wdGlvbikgW0hBVkVfU0g2NF06IFBhcnNlIG5ldyBvcHRpb25zLgoJKG1kX3Nob3dfdXNhZ2UpIFtIQVZFX1NINjRdOiBTaG93IHVzYWdlIG9mIG5ldyBvcHRpb25zLgoJKG1kX2NvbnZlcnRfZnJhZykgW0hBVkVfU0g2NF0gPGRlZmF1bHQ+OiBDYWxsCglzaG1lZGlhX21kX2NvbnZlcnRfZnJhZyBpbnN0ZWFkIG9mIGFib3J0LgoJKHNoX2ZvcmNlX3JlbG9jYXRpb24pIFtIQVZFX1NINjRdOiBBbHNvIGZvcmNlIHJlbG9jYXRpb24gZm9yCglCRkRfUkVMT0NfU0hfU0hNRURJQV9DT0RFLgoJKHNoX2VsZl9maW5hbF9wcm9jZXNzaW5nKSBbSEFWRV9TSDY0XTogU2V0IGZsYWdzIGlkZW50aWZ5aW5nCglTSGNvbXBhY3Qgb3IgU0htZWRpYSBjb2RlLgoJKG1kX2FwcGx5X2ZpeCkgW0hBVkVfU0g2NF0gPGRlZmF1bHQ+OiBSZXR1cm4gcmVzdWx0IGZyb20gY2FsbGluZwoJc2htZWRpYV9tZF9hcHBseV9maXggaW5zdGVhZCBvZiBhYm9ydC4KCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCkgW0hBVkVfU0g2NF0gPGRlZmF1bHQ+OiBSZXR1cm4KCXJlc3VsdCBmcm9tIGNhbGxpbmcgc2htZWRpYV9tZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCBpbnN0ZWFkCglvZiBjYWxsaW5nIGFib3J0LgoJKHNoX2RvX2FsaWduKSBbSEFWRV9TSDY0XTogSWYgc2htZWRpYV9tb2RlLCBsZXQgc2htZWRpYV9kb19hbGlnbgoJZG8gdGhlIHdvcmsuCgkodGNfZ2VuX3JlbG9jKSBbSEFWRV9TSDY0XTogRm9yIHVucmVjb2duaXplZCByZWxvY3MsIGNhbGwKCXNobWVkaWFfaW5pdF9yZWxvYyBhbmQgZG8gbm90aGluZyBtb3JlIGlmIGl0IHJldHVybnMgbm9uLXplcm8uCgkoc2hfZmluYWxpemUpIFtIQVZFX1NINjRdOiBDYWxsIHNobWVkaWFfbWRfZW5kLgoJKiBwby9QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCSogcG8vZ2FzLnBvdDogUmVnZW5lcmF0ZS4KCjIwMDItMDItMDYgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXNoLmMgKHBhcnNlX2F0KTogSW5zdGFsbCB0aGUgY29ycmVjdCB2ZXJzaW9uIG9mCgkyMDAyLTAyLTA0J3MgcGF0Y2guCgoJKiBjb25maWcvdGMtc2guYyAobWRfYXBwbHlfZml4MykgPEJGRF9SRUxPQ18zMl9QTFRfUENSRUw+OiBEb24ndAoJYXNzdW1lIGZpeFAtPmZ4X3N1YnN5IGlzIG5vbi1OVUxMLgoKMjAwMi0wMi0wNCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtc2guYyAocGFyc2VfYXQpOiBTZXQgYXJnIHR5cGUgb2YgQChleHByLHBjKSB0bwoJQV9ESVNQX1BDX0FCUywgYW5kIGFkanVzdCBpdCBieSAtNC4KCShnZXRfc3BlY2lmaWMpOiBBY2NlcHQgQV9ESVNQX1BDX0FCUyB3aGVyZSBBX0RJU1BfUEMgaXMKCWV4cGVjdGVkLgoJKGJ1aWxkX015dGVzKTogTWFyayBQQ1JFTElNTSBmaXgtdXBzIGFzIHBjLXJlbGF0aXZlIG9ubHkgaWYKCXRoZSBvcGVyYW5kIHR5cGUgaXMgbm90IEFfRElTUF9QQ19BQlMuCgoyMDAyLTAyLTA0ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBjb25maWcvdGMtbW1peC5jICh0Y19nZW5fcmVsb2MpOiBEb24ndCB0cnkgYW5kIHRha2UgdGhlIHZhbHVlIG9mCgljb21tb24gYW5kIHdlYWsgc3ltYm9scy4gIEhhbmRsZSBjb21tb24gYW5kIHdlYWsgc3ltYm9scyBhcwoJdW5kZWZpbmVkIHN5bWJvbHMgd2l0aCByZWdhcmRzIHRvIEdSRUcgaGFuZGxpbmcgYW5kIG1lcmdpbmcuCgkobW1peF9mcm9iX2ZpbGUpOiBEaXR0by4KCjIwMDItMDItMDIgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWd1cmUuaW4gKGhwcGEtKi1uZXRic2QqKTogTmV3IHRhcmdldC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjb25maWcvdGMtaHBwYS5oOiBBbHNvIGRlZmluZSBXQVJOX0NPTU1FTlRTIGlmIFRFX05ldEJTRC4KCjIwMDItMDItMDIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtdjg1MC5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzIGFtZCB1c2Ugb2xkLXN0eWxlCglmdW5jdGlvbiBkZWZpbml0aW9ucy4KCShBUkVBX1pEQSwgQVJFQV9TREEsIEFSRUFfVERBKTogRGVsZXRlLgoJKHNkYXRhX3NlY3Rpb24gdGRhdGFfc2VjdGlvbiwgemRhdGFfc2VjdGlvbiwgc2Jzc19zZWN0aW9uLAoJdGJzc19zZWN0aW9uLCB6YnNzX3NlY3Rpb24sIHJvc2RhdGFfc2VjdGlvbiwgcm96ZGF0YV9zZWN0aW9uLAoJc2NvbW1vbl9zZWN0aW9uLCB0Y29tbW9uX3NlY3Rpb24sIHpjb21tb25fc2VjdGlvbiwKCWNhbGxfdGFibGVfZGF0YV9zZWN0aW9uLCBjYWxsX3RhYmxlX3RleHRfc2VjdGlvbik6IERlbGV0ZS4KCSh2ODUwX3NkYXRhLCB2ODUwX3RkYXRhLCB2ODUwX3pkYXRhLCB2ODUwX3Nic3MsIHY4NTBfdGJzcywKCXY4NTBfemJzcywgdjg1MF9ic3MsIHY4NTBfcm9zZGF0YSwgdjg1MF9yb3pkYXRhLAoJdjg1MF9jYWxsX3RhYmxlX2RhdGEsIHY4NTBfY2FsbF90YWJsZV90ZXh0KTogRGVsZXRlLgoJKHN0cnVjdCB2ODUwX3NlZ19lbnRyeSk6IE5ldy4KCSh2ODUwX3NlZ190YWJsZSk6IE5ldy4KCShTREFUQV9TRUNUSU9OIFREQVRBX1NFQ1RJT04sIFpEQVRBX1NFQ1RJT04sIFNCU1NfU0VDVElPTiwKCVRCU1NfU0VDVElPTiwgWkJTU19TRUNUSU9OLCBCU1NfU0VDVElPTiwgUk9TREFUQV9TRUNUSU9OLAoJUk9aREFUQV9TRUNUSU9OLCBTQ09NTU9OX1NFQ1RJT04sIFRDT01NT05fU0VDVElPTiwgWkNPTU1PTl9TRUNUSU9OLAoJQ0FMTF9UQUJMRV9EQVRBX1NFQ1RJT04sIENBTExfVEFCTEVfVEVYVF9TRUNUSU9OKTogRGVmaW5lLgoJKGRvX3Y4NTBfc2VnKTogTmV3LgoJKHY4NTBfc2VnKTogTmV3LgoJKHY4NTBfY29tbSk6IFVzZSBkb192ODUwX3NlZyBhbmQgdjg1MF9zZWdfdGFibGUuICBTaW1wbGlmeQoJcmVjb3JkaW5nIG9mIGFsaWdubWVudC4KCShtZF9wc2V1ZG9fdGFibGUpOiBVc2Ugdjg1MF9zZWcuCgkobWRfYmVnaW4pOiBEb24ndCBpbml0IC5jYWxsX3RhYmxlX2RhdGEgYW5kIC5jYWxsX3RhYmxlX3RleHQgaGVyZS4KCVNldCB2ODUwX3NlZ190YWJsZSBic3MgZW50cnkuCgoyMDAyLTAyLTAxICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJU3VwcG9ydCBvbi1kZW1hbmQgZ2xvYmFsIHJlZ2lzdGVyIGFsbG9jYXRpb24gYnkgcGFzc2luZyBvbgoJYmFzZS1wbHVzLW9mZnNldCByZWxvY3MgdG8gdGhlIGxpbmtlci4KCSogY29uZmlnL3RjLW1taXguYzogVHdlYWsgYW5kIGZpeCB0eXBvcyBpbiBjb21tZW50cy4KCShhbGxvY2F0ZV91bmRlZmluZWRfZ3JlZ3NfaW5fbGlua2VyKTogTmV3IHZhcmlhYmxlLgoJKE9QVElPTl9MSU5LRVJfQUxMT0NBVEVEX0dSRUdTKTogTmV3IG9wdGlvbiBtYWNyby4KCShtZF9sb25nb3B0cyk6IEFkZCAtLWxpbmtlci1hbGxvY2F0ZWQtZ3JlZ3MuCgkobWRfcGFyc2Vfb3B0aW9uKSA8Y2FzZSAneCc+OiBJbXBseSAtLWxpbmtlci1hbGxvY2F0ZWQtZ3JlZ3MuCgk8Y2FzZSBPUFRJT05fTElOS0VSX0FMTE9DQVRFRF9HUkVHUz46IE5ldy4KCShtZF9zaG93X3VzYWdlKTogVXBkYXRlIHRleHQgZm9yIC14LiAgQWRkIHRleHQgZm9yCgktLWxpbmtlci1hbGxvY2F0ZWQtZ3JlZ3MuCgkodGNfZ2VuX3JlbG9jKTogRGVyaXZlIGRlZmF1bHQgdmFsdWUgZm9yIGFkZGVuZCBmcm9tIHZhbCBhbmQKCWJhZGRzeS4gIFVzZSBhZGRzZWMgYW5kIGJmZF9pc19hYnNfc2VjdGlvbiBpbiBtb3JlIHBsYWNlcy4gIERvbid0CgllbWl0IGVycm9yIGZvciBCRkRfUkVMT0NfTU1JWF9CQVNFX1BMVVNfT0ZGU0VUIHdpdGhvdXQgc3VpdGFibGUKCUdSRUcgaWYgYWxsb2NhdGVfdW5kZWZpbmVkX2dyZWdzX2luX2xpbmtlci4KCSogZG9jL2FzLnRleGluZm8gKE92ZXJ2aWV3KSA8VGFyZ2V0IE1NSVggb3B0aW9ucz46IEFkZAoJLS1saW5rZXItYWxsb2NhdGVkLWdyZWdzLgoJKiBkb2MvYy1tbWl4LnRleGkgKE1NSVgtT3B0cyk6IEFkZCBibHVyYiBhYm91dAoJLS1saW5rZXItYWxsb2NhdGVkLWdyZWdzLiAgTWVudGlvbiB0aGF0IGl0J3MgaW1wbGllZCBieSAteC4KCShNTUlYLVBzZXVkb3MpIDxHUkVHPjogTWVudGlvbiB3aGVuIGFuZCBob3cgYSBHUkVHIGNhbiBiZSBvbWl0dGVkLgoJKE1NSVgtbW1peGFsKTogQ2xhcmlmeSBkYXRlZCBjb21wYXJpc29uIGFuZCBsb2NhdGlvbiBvZiBNTUlYd2FyZS4KCgkqIGNvbmZpZy90Yy1tbWl4LmggKG1kX3BhcnNlX25hbWUpOiBVc2UgSVNVUFBFUiwgbm90IGlzdXBwZXIuCgoyMDAyLTAyLTAxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wMS0zMSAgSXZhbiBHdXp2aW5lYyAgPGl2YW5nQG9wZW5jb3Jlcy5vcmc+CgoJKiBjb25maWcvdGMtb3IzMi5jOiBOZXcgZmlsZS4KCSogY29uZmlnL3RjLW9yMzIuaDogTmV3IGZpbGUuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHN1cHBvcnQgZm9yIG9yMzIgdGFyZ2V0cy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjb25maWcvb2JqLWNvZmYuYzogQWRkIHN1cHBvcnQgZm9yIG9yMzIgdGFyZ2V0cy4KCSogY29uZmlnL29iai1jb2ZmLmg6IEFkZCBzdXBwb3J0IGZvciBvcjMyIHRhcmdldHMuCgkqIE1ha2VmaWxlLmFtOiBBZGQgc3VwcG9ydCBmb3Igb3IzMiB0YXJnZXRzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogTkVXUzogTWVudGlvbiBzdXBwb3J0IGZvciBPcGVuUklTQy4KCSogZG9jL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBwby9QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCSogcG8vZ2FzLnBvdDogUmVnZW5lcmF0ZS4KCjIwMDItMDEtMzAgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1zaC5jIChwYXJzZV9yZWcpOiBGaXggZW5kLW9mLXdvcmQgY2hlY2sgZm9yIGlzLCBpeCwgaXkKCWFuZCBtb2QuCgoyMDAyLTAxLTI5ICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAodGNfZ2VuX3JlbG9jKTogQXJyYW5nZSBmb3IKCUJGRF9SRUxPQ19QQ1JFTF9ISTE2X1MgcmVsb2NhdGlvbnMgdG8gYmUgb3V0cHV0IHJlbGF0aXZlIHRvCgl0aGVpciBMTzE2IHBhcnRzLCBldmVuIGZvciBFTEYuCgoyMDAyLTAxLTI5ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmM6IFByb3RlY3QgZGVmaW5pdGlvbnMgb2YgdHJ1ZSBhbmQgZmFsc2UKCWZyb20gcmVkZWZpbml0aW9uLgoKMjAwMi0wMS0yOCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjb25maWcvb2JqLWVsZi5jIChlbGZfZnJvYl9maWxlX2JlZm9yZV9hZGp1c3QpOiBSZW1vdmUgc3ltYm9scwoJbWFkZSBiZWNhdXNlIG9mIC53ZWFrLCBpZiB0aGV5IGFyZSBuZWl0aGVyIGRlZmluZWQgbm9yIHVzZWQgaW4gYW55Cgl3YXkuCgoyMDAyLTAxLTI3ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgoyMDAyLTAxLTI2ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBkb2MvTWFrZWZpbGUuYW0gKGluc3RhbGwpOiBEZXBlbmQgb24gaW5zdGFsbC1pbmZvLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTAxLTI2ICBOaWNrIENsaWZ0b24gPG5pY2tAcmVkaGF0LmNvbT4KCgkqIHBvL2ZyLnBvOiBVcGRhdGVkIHZlcnNpb24KCjIwMDItMDEtMjQgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogY29uZmlnL3RjLWg4MzAwLmMgKGNoZWNrX29wZXJhbmQpOiBEb24ndCBwcmludCBhIHdhcm5pbmcKCXdoZW4gYSB2YWxpZCAyNC1iaXQgYWRkcmVzcyBpcyBnaXZlbiB0byBhIDE2LWJpdCBhZGRyZXNzCglvcGVyYW5kLgoKMjAwMi0wMS0yNCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtc2guYyAoc2hfZWxmX3N1ZmZpeCk6IFJlbW92ZWQuCgkoc2hfUElDX3JlbGF0ZWRfcCwgc2hfY2hlY2tfZml4dXAsIHNoX2NvbnNfZml4X25ldywKCXNoX2VuZF9vZl9tYXRjaCwgc2hfcGFyc2VfbmFtZSk6IE5ldyBmdW5jdGlvbnMuCgkoc2hfZWxmX2NvbnMpOiBTaW1wbGlmeS4KCShwYXJzZV9leHApOiBSZWplY3QgbWlzcGxhY2VkIFBJQyBvcGVyYW5kcy4KCShtZF91bmRlZmluZWRfc3ltYm9sKTogU2ltcGxpZnkuCgkoc2hfZml4X2FkanVzdGFibGUpOiBMZXQgQEdPVE9GRiBiZSBhZGp1c3RlZC4KCShtZF9hcHBseV9maXgzKTogV3JpdGUgQFBMVCBhbmQgQEdPVE9GRiBhZGRlbmRzIGluIHBsYWNlLgoJKHRjX2dlbl9yZWxvYyk6IE1vdmUgZml4cCBzdWJzeSBhYnNvbHV0ZSB2YWx1ZSBpbnRvIGFkZG51bWJlci4KCUNvbXBsYWluIGlmIHN1YnN5IHJlbWFpbnMgYXQgdGhlIGVuZC4KCSogY29uZmlnL3RjLXNoLmggKHNoX3BhcnNlX25hbWUsIHNoX2NvbnNfZml4X25ldyk6IERlY2xhcmUuCgkobWRfcGFyc2VfbmFtZSwgVENfQ09OU19GSVhfTkVXLCBPX1BJQ19yZWxvYyk6IERlZmluZS4KCjIwMDItMDEtMjIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1uMTAzMDAuYyAoeHJfcmVnaXN0ZXJzKTogTW92ZSBgcGMnLi4uCgkob3RoZXJfcmVnaXN0ZXJzKTogLi4uIGhlcmUuCgoyMDAyLTAxLTIyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZ2FzL3BvL1BPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wMS0yMSAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBjb25maWcvb2JqLWNvZmYuYyAob2JqX2NvZmZfaW5pdF9zdGFiX3NlY3Rpb24pOiBNYWtlIHRoZQoJc3RhYnN0cl9uYW1lIGFsbG9jYXRpb24gcGVybWFuZW50LCBhcyBpdCB3aWxsIGJlIHJlZmVyZW5jZWQgZnJvbQoJdGhlIHNlY3Rpb24gaGFzaC4KCjIwMDItMDEtMjEgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWd1cmUuaW4gKGlhNjQtKi1uZXRic2QqKTogTmV3IHRhcmdldC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wMS0yMSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogZG9jL2FzLnRleGluZm8gKE92ZXJ2aWV3KSA8VGFyZ2V0IEFSTSBvcHRpb25zPjogQWRkIG1pc3Npbmcge30KCXRvIEBkb3RzIGNhbGwuCgk8RGV0YWlsZWQgZGVzY3JpcHRpb24sIEFSTSBvcHRpb25zPjogRGl0dG8uCgkqIGRvYy9jLWFybS50ZXhpIChBUk0gT3B0aW9ucyk6IERpdHRvLgoKMjAwMi0wMS0xOCAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJKiB0Yy1hcm0uYyAoZG9feHNjX21pYSwgZG9feHNjX21hciwgZG9feHNjX21yYSk6IFJlbmFtZWQgZnJvbQoJZG9fbWlhLCBkb19tYXIgYW5kIGRvX21yYSByZXNwZWN0aXZlbHkuCgkoZG9fbWF2XyopOiBSZW5hbWVkIGZyb20gZG9fY18qLgoJKG1hdl9yZWdfcmVxdWlyZWRfaGVyZSwgbWF2X3BhcnNlX29mZnNldCk6IFJlbmFtZWQgZnJvbQoJY2lycnVzX3JlZ19yZXF1aXJlZF9oZXJlIGFuZCBjaXJydXNfcGFyc2Vfb2Zmc2V0IHJlc3BlY3RpdmVseS4KCShNQVZfTU9ERT8pOiBSZW5hbWVkIGZyb20gQ0lSUlVTX01PREU/LgoKMjAwMi0wMS0xOCAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgkgICAgS2VpdGggV2Fsa2VyICA8a2VpdGgud2Fsa2VyQGFybS5jb20+CgoJKiB0Yy1hcm0uYyAoQVJNX0VYVF9WNUosIEFSTV9BUkNIX1Y1VEVKKTogRGVmaW5lLgoJKGluc25zKTogQWRkIHBhdHRlcm4gZm9yIGJ4aiBpbnN0cnVjdGlvbi4KCShkb19ieGopOiBOZXcgZnVuY3Rpb24uCgkoYXJtX2NwdXMpOiBBZGQgYXJtOTI2ZWouCgkoYXJtX2FyY2hzKTogQWRkIGFybXY1dGVqLgoKMjAwMi0wMS0xOCAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJKiBkb2MvYy1hcm0udGV4aTogQWRkIG5ldyBmcGUgb3B0aW9ucyB0byBsaXN0IG9mIHN1cHBvcnRlZCBmbGFncy4KCjIwMDItMDEtMTkgIEtlaXRoIFdhbGtlciAgPGtlaXRoLndhbGtlckBhcm0uY29tPgoKCSogdGMtYXJtLmMgKGFybV9mcHVzKTogQWRkIGZwZTIgYW5kIGZwZTMuCgoyMDAyLTAxLTE4ICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCgkqIE5FV1M6IE1lbnRpb24gbmV3IEFSTSBjb21tYW5kLWxpbmUgb3B0aW9ucyBhbmQgVkZQIHN1cHBvcnQuCgoJKiBjb25maWcvdGMtYXJtLmMgKEFSTV9DRVhUX1hTQ0FMRSk6IFJlcGxhY2VzIEFSTV9FWFRfWFNDQUxFLiAgQWxsCgl1c2VzIGNoYW5nZWQuCgkoQVJNX0NFWFRfTUFWRVJJQ0spOiBTaW1pbGFybHkuCgkoQVJNX0FOWSk6IE5vdyBtZWFucyBhbnkgY29yZSBpbnN0cnVjdGlvbi4KCShDUFVfREVGQVVMVCk6IERlZmF1bHQgdG8gQVJNX0FOWS4KCSh1c2VzX2FwY3NfMjYsIGF0Y3BzLCBzdXBwb3J0X2ludGVyd29yaywgdXNlc19hcGNzX2Zsb2F0KQoJKHBpY19jb2RlKTogRGVjbGFyZSBmb3IgYWxsIG9iamVjdCB0eXBlcy4gIE1ha2UgdHlwZSBpbnQuCgkobGVnYWN5X2NwdSwgbGVnYWN5X2ZwdSwgbWNwdV9jcHVfb3B0LCBtY3B1X2ZwdV9vcHQsIG1hcmNoX2NwdV9vcHQpCgkobWFyY2hfZnB1X29wdCwgbWZwdV9vcHQpOiBEZWNsYXJlLgoJKG1kX2xvbmdvcHRzKTogVGlkeSB1cCBjb25kaXRpb25hbCBkZWZpbml0aW9ucy4KCShhcm1fb3B0cywgYXJtX2NwdXMsIGFybV9hcmNocywgYXJtX2ZwdXMsIGFybV9leHRlbnNpb25zKQoJKGFybV9sb25nX29wdHMpOiBOZXcgdGFibGVzLgoJKGFybV9wYXJzZV9jcHUsIGFybV9wYXJzZV9hcmNoLCBhcm1fcGFyc2VfZnB1KTogTmV3IGZ1bmN0aW9ucy4KCShhcm1fcGFyc2VfZXh0ZW5zaW9uKTogTmV3IGZ1bmN0aW9uLgoJKG1kX3BhcnNlX29wdGlvbik6IFJld3JpdGUgdXNpbmcgbmV3IHRhYmxlLWRyaXZlbiBzeXN0ZW0uCgkobWRfc2hvd191c2FnZSk6IFVzZSBuZXcgdGFibGUtZHJpdmVuIHN5c3RlbS4KCShtZF9iZWdpbik6IENhbGN1bGF0ZSBjcHVfdmFyaWFudCBmcm9tIGNvbW1hbmQgbGluZSBvcHRpb24gZGF0YS4KCSogZG9jL2FzLnRleGluZm8gKEFSTSBJU0Egb3B0aW9ucyk6IERvY3VlbWVudCBuZXcgQVJNLXNwZWNpZmljCgljb21tYW5kLWxpbmUgb3B0aW9ucy4KCSogZG9jL2MtYXJtLnRleGk6IExpa2V3aXNlLgoKMjAwMi0wMS0xOCAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogYXMuYyAocGFyc2VfYXJncyk6IFVwZGF0ZSB5ZWFyLgoKMjAwMi0wMS0xNyAgVGltb3RoeSBXYWxsICA8dHdhbGxAYWx1bS5taXQuZWR1PgoKCSogY29uZmlnL3RjLXRpYzU0eC5jIChlbmNvZGVfYWRkcmVzcyk6IEFkZCBhIG1vcmUgaW5mb3JtYXRpdmUKCXdhcm5pbmcgYWJvdXQgaW5jb3JyZWN0IHN5bnRheC4KCjIwMDItMDEtMTcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcG8vZ2FzLnBvdDogUmVnZW5lcmF0ZS4KCjIwMDItMDEtMTcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogbWFjcm8uYyAoZ2V0X2FueV9zdHJpbmcpOiBBZGQgbm8tYy1mb3JtYXQgY29tbWVudCB0byBwcmV2ZW50Cgljb25mdXNpb24gd2hlbiB0cmFuc2xhdGluZyBzdHJpbmcuCgkqIGdhc3AuYyAoZ2V0X2FueV9zdHJpbmcpOiBBZGQgbm8tYy1mb3JtYXQgY29tbWVudCB0byBwcmV2ZW50Cgljb25mdXNpb24gd2hlbiB0cmFuc2xhdGluZyBzdHJpbmcuCgoyMDAyLTAxLTE2ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoJICAgIEpvaGFubmVzIFN0ZXplbmJhY2ggPGpzQGNvbnZlcmdlbmNlLmRlPgoJKiBjb25maWcvdGMtbWlwcy5jIChwZXJjZW50X29wKTogRW5zdXJlIGxvbmdlciBwZXJjZW50X29wJ3MgYXJlCgltYXRjaGVkIGJlZm9yZSB0aGUgc2hvcnRlciBvbmVzLgoJKG15X2dldFNtYWxsUGFyc2VyKTogRml4IGhhbmRsaW5nIG9mIG5lc3RlZCBwYXJlbnRoZXNlcyBpbgoJcGVyY2VudF9vcCdzLiBDb2RlIGNsZWFudXAuCgkobXlfZ2V0UGVyY2VudE9wKTogTmV3IGZ1bmN0aW9uLCBjb2RlIGZyb20gbXlfZ2V0U21hbGxQYXJzZXIuCgkobXlfZ2V0U21hbGxFeHByZXNzaW9uKTogRml4IGhhbmRsaW5nIG9mIGNsb3NpbmcgcGFyZW50aGVzZXMuCglDb2RlIGNsZWFudXAuIEJldHRlciBjb21tZW50cy4KCjIwMDItMDEtMTYgIE5pY2sgQ2xpZnRvbiA8bmlja2NAcmVkaGF0LmNvbT4KCglwby90ci5wbzogTmV3IGZpbGU6IFR1cmtpc2ggdHJhbnNsYXRpb24uCgljb25maWd1cmUuaW4gKExJTkdVQVMpOiBBZGQgInRyIi4KCWNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMDEtMTUgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCVN1cHBvcnQgZm9yIFZGUCBpbnN0cnVjdGlvbnMKCSogdGMtYXJtLmMgKENQX1dCX09LLCBDUF9OT19XQik6IE5ldyBkZWZpbmVzLgoJKGNwX2FkZHJlc3NfcmVxdWlyZWRfaGVyZSk6IE5ldyBhcmd1bWVudCB3Yl9vay4gIFdoZW4gZmFsc2UsIGRvIG5vdAoJYWNjZXB0IHdyaXRlLWJhY2sgZm9ybXMgb2YgYWRkcmVzc2luZy4gIENoYW5nZSBhbGwgY2FsbGVycy4KCShGUFVfVkZQX0VYVF9OT05FLCBGUFVfVkZQX0VYVF9WMXhELCBGUFVfVkZQX1ZGUF9WMSkKCShGUFVfVkZQX0VYVF9WMik6IERlZmluZS4KCShGUFVfQVJDSF9WRlAsIEZQVV9BUkNIX1ZGUF9WMXhELCBGUFVfQVJDSF9WRlBfVjEsIEZQVV9BUkNIX1ZGUF9WMik6CglEZWZpbmUgaW4gdGVybXMgb2YgYWJvdmUuCgkodmZwX2RwX3JlZ19wb3MsIHZmcF9zcF9yZWdfcG9zLCB2ZnBfbGRzdG1fdHlwZSk6IE5ldyBlbnVtcy4KCSh2ZnBfcmVnKTogTmV3IHN0cnVjdC4KCSh2ZnBfcmVncyk6IE5ldyBhcnJheSBvZiByZWdpc3RlcnMuCgkoaW5zbnMpOiBBZGQgVkZQIGluc3RydWN0aW9ucy4KCShzbl90YWJsZSk6IE5ldyBhcnJheSBvZiBWRlAgc2luZ2xlLXByZWNpc2lvbiByZWdpc3RlciBuYW1lcy4KCShkbl90YWJsZSk6IE5ldyBhcnJheSBvZiBWRlAgZG91YmxlLXByZWNpc2lvbiByZWdpc3RlciBuYW1lcy4KCShhbGxfcmVnX21hcHMpOiBBZGQgdGhlIG5ldyByZWdpc3RlciB0YWJsZXMuCgkoYXJtX3JlZ190eXBlKTogQWRkIG5ldyB2YWx1ZXMgZm9yIGFib3ZlLiAgSW5jcmVhc2UgUkVUX1RZUEVfTUFYLgoJKHZmcF9zcF9yZWdfcmVxdWlyZWRfaGVyZSwgdmZwX2RwX3JlZ19yZXF1aXJlZF9oZXJlLCBkb192ZnBfc3BfbW9uYWRpYykKCShkb192ZnBfZHBfbW9uYWRpYywgZG9fdmZwX3NwX2R5YWRpYywgZG9fdmZwX2RwX2R5YWRpYykKCShkb192ZnBfcmVnX2Zyb21fc3AsIGRvX3ZmcF9zcF9yZWcyLCBkb192ZnBfc3BfZnJvbV9yZWcpCgkoZG9fdmZwX3JlZ19mcm9tX2RwLCBkb192ZnBfcmVnMl9mcm9tX2RwLCBkb192ZnBfZHBfZnJvbV9yZWcpCgkoZG9fdmZwX2RwX2Zyb21fcmVnMiwgdmZwX3Bzcl9wYXJzZSwgdmZwX3Bzcl9yZXF1aXJlZF9oZXJlKQoJKGRvX3ZmcF9yZWdfZnJvbV9jdHJsLCBkb192ZnBfY3RybF9mcm9tX3JlZywgZG9fdmZwX3NwX2xkc3QpCgkoZG9fdmZwX2RwX2xkc3QsIHZmcF9zcF9yZWdfbGlzdCwgdmZwX2RwX3JlZ19saXN0LCB2ZnBfc3BfbGRzdG0pCgkodmZwX2RwX2xkc3RtLCBkb192ZnBfc3BfbGRzdG1pYSwgZG9fdmZwX3NwX2xkc3RtZGIsIGRvX3ZmcF9sZHN0bWlhKQoJKGRvX3ZmcF9kcF9sZHN0bWRiLCBkb192ZnBfeHBfbGRzdG1pYSwgZG9fdmZwX3hwX2xkc3RtZGIpCgkoZG9fdmZwX3NwX2NvbXBhcmVfeiwgZG9fdmZwX2RwX2NvbXBhcmVfeiwgZG9fdmZwX2RwX3NwX2N2dCkKCShkb192ZnBfc3BfZHBfY3Z0KTogTmV3IGZ1bmN0aW9ucy4KCShtZF9iZWdpbik6IFNldCBzb2Z0LWZsb2F0IGZsYWcgZm9yIGFwcHJvcHJpYXRlIFZGUCB3b3JrLgoJKG1kX2F0b2YpOiBIYW5kbGUgVkZQLWZvcm1hdCBkb3VibGVzLgoJKG1kX3BhcnNlX29wdGlvbik6IEhhbmRsZSBWRlAgY29tbWFuZC1saW5lIG9wdGlvbnMuCgkobWRfc2hvd191c2FnZSk6IERpc3BsYXkgVkZQIGNvbW1hbmQtbGluZSBvcHRpb25zLgoKMjAwMi0wMS0xNSAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJKiB0Yy1hcm0uYyAobWRfcGFyc2Vfb3B0aW9uKTogVGlkeSB1cCBzZXR0aW5nIG9mIGNwdV92YXJpYW50IGZvcgoJdmFyaW91cyBjb21tYW5kIGxpbmUgb3B0aW9ucy4KCjIwMDItMDEtMTUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXhzdG9ybXkxNi5jOiAoeHN0b3JteTE2X2ZpeF9hZGp1c3RhYmxlKTogRG8gbm90IGZpeAoJdnRpbmhlcml0IHJlbG9jcy4KCSh4c3Rvcm15MTZfbWRfYXBwbHlfZml4Myk6IERvIG5vdCByZXR1cm4gYSB2YWx1ZS4KCjIwMDItMDEtMTQgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogdGMtYXJtLmMgKG1kX2xvbmdvcHRzKTogT24gdGFyZ2V0cyB0aGF0IGFyZW4ndCBiaS1lbmRpYW4sIHN1cHBvcnQKCXRoZSAtRUwvLUVCIG9wdGlvbiB0aGF0IG1hdGNoZXMgdGhlIHRhcmdldCdzIGVuZGlhbm5lc3MuCgkobWRfcGFyc2Vfb3B0aW9uKTogTGlrZXdpc2UuCgoyMDAyLTAxLTE0ICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCgkqIHRjLWFybS5jIChtZF9sb25nb3B0cyk6IEZpeCBtaXNwbGFjZWQgI2VuZGlmIC0tIHRoZSAtb2FiaSBvcHRpb24KCWlzIG5vdCBkZXBlbmRlbnQgb24gQVJNX0JJX0VORElBTi4KCjIwMDItMDEtMTQgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogdGMtYXJtLmMgKGFsbCBlcnJvciBtZXNzYWdlcyk6IE5vcm1hbGl6ZSBjYXBpdGFsaXphdGlvbiBvZiBtZXNzYWdlcy4KCgkqIHRjLWFybS5oIChtZF9vcGVyYW5kKTogRGVsZXRlIGRlZmluZS4KCSogdGMtYXJtLmMgKGluX215X2dldF9leHByZXNzaW9uKTogTmV3IHN0YXRpYyB2YXJpYWJsZS4KCShteV9nZXRfZXhwcmVzc2lvbik6IFNldCBhbmQgY2xlYXIgaXQuCgkobWRfb3BlcmFuZCk6IE5ldyBmdW5jdGlvbi4gIElmIGNhbGxlZCBmcm9tIG15X2dldF9leHByZXNzaW9uCglwdXQgdGhlIGVycm9yIGluIGluc3QuZXJyb3IuCgkob3V0cHV0X2luc3QpOiBOb3cgdGFrZXMgYXJndW1lbnQgb2YgaW5zdHJ1Y3Rpb24gYmVpbmcgYXNzZW1ibGVkLgoJUHJpbnQgaXQgb3V0IHdpdGggYW55IGVycm9yIG1lc3NhZ2UuCgkoZG9fbGRzdCwgZG9fbGRzdHY0LCB0aHVtYl9sb2FkX3N0b3JlKTogRmF1bHQgYXR0ZW1wdCB0byB1c2UgYSBzdG9yZQoJd2l0aCAnPScgc3ludGF4LgoJKGVuZF9vZl9saW5lKTogRG9uJ3QgdXBkYXRlIGluc3QuZXJyb3IgaWYgaXQgaXMgYWxyZWFkeSBzZXQuCgoyMDAyLTAxLTExICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCgkqIHRjLWFybS5jIChkb19sZHN0KTogRml4IGhhbmRsaW5nIGFuIGltbWVkaWF0ZSBleHByZXNzaW9uIHBzZXVkbwoJb3AgdGhhdCBjYW4gYmUgdHJhbnNsYXRlZCBpbnRvIGEgbXZuIGluc3RydWN0aW9uLgoKMjAwMi0wMS0xMSAgU3RldmUgRWxsY2V5ICA8c2plQGN1cC5ocC5jb20+CgoJKiBnYXMvY29uZmlnL3RjLWlhNjQuaCAoTURfRkxBR1NfREVGQVVMVCk6IE5ldyBNYWNybyBmb3IKCXNldHRpbmcgZGVmYXVsdCBtZC5mbGFncy4KCShTSFRfSU5JVF9BUlJBWSk6IE5ldyBlbGYgc3BlY2lhbCBzZWN0aW9uIHVzZWQgYnkgSFAtVVguCgkoU0hUX0ZJTklfQVJSQVkpOiBOZXcgZWxmIHNwZWNpYWwgc2VjdGlvbiB1c2VkIGJ5IEhQLVVYLgoJKiBnYXMvY29uZmlnL3RjLWlhNjQuYyAoc2V0dXBfdW53aW5kX2hlYWRlcik6IEFkZCBzdXBwb3J0Cglmb3IgMzIgYml0IHVud2luZCBpbmZvIGJsb2Nrcy4KCShnZW5lcmF0ZV91bndpbmRfaW1hZ2UpOiBBZGQgc3VwcG9ydCBmb3IgZGlmZmVyZW50IHR5cGVzCglvZiB1bndpbmQgaW1hZ2VzICgzMiBiaXRzIGFuZC9vciBiaWctZW5kaWFuKS4KCShpYTY0X2luaXQpOiBVc2UgTURfRkxBR1NfREVGQVVMVCB0byBzZXQgbWQuZmxhZ3MuCgkoaWE2NF90YXJnZXRfZm9ybWF0KTogQWRkIHN1cHBvcnQgZm9yIGhwdXggdGFyZ2V0IGZvcm1hdHMuCgkoaWE2NF9nZW5fcmVhbF9yZWxvY190eXBlKTogQWRkIHN1cHBvcnQgZm9yIEZVTkNfSVBMVF9SRUxPQy4KCShpYTY0X2VsZl9zZWN0aW9uX3R5cGUpOiBBZGQgc3VwcG9ydCBmb3IgU0hUX0lOSVRfQVJSQVkgYW5kCglTSFRfRklOSV9BUlJBWSBlbGYgc2VjdGlvbiB0eXBlcy4KCjIwMDItMDEtMTAgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogdGMtYXJtLmMgKHN0cnVjdCByZWdfZW50cnkpOiBNb3ZlIGJlZm9yZSBwcm90b3R5cGVzLgoJKGludF9yZWdpc3RlciwgY3BfcmVnaXN0ZXIsIGZwX3JlZ2lzdGVyKTogRGVsZXRlLgoJKHJlZ190YWJsZSk6IERlbGV0ZS4gIFJlcGxhY2VkIHdpdGggLi4uCgkocm5fdGFibGUsIGNwX3RhYmxlLCBjbl90YWJsZSwgZm5fdGFibGUsIG1hdl9tdmZfdGFibGUpCgkobWF2X212ZF90YWJsZSwgbWF2X212ZnhfdGFibGUsIG1hdl9tdmR4X3RhYmxlLCBtYXZfbXZheF90YWJsZSkKCShtYXZfZHNwc2NfdGFibGUpOiAuLi4gb25lIHRhYmxlIHBlciByZWdpc3RlciBzZXQuCgkoYXJtX3JlZ19oc2gpOiBEZWxldGUuCgkoc3RydWN0IHJlZ19tYXApOiBOZXcgc3RydWN0dXJlLgoJKGFsbF9yZWdfbWFwcyk6IE5ldyBhcnJheS4KCShlbnVtIGFybV9yZWdfdHlwZSk6IE5ldyBlbnVtcy4KCShidWlsZF9yZWdfaHNoKTogTmV3IGZ1bmN0aW9uLgoJKGluc2VydF9yZWdfYWxpYXMpOiBVc2UgaGFzaCB0YWJsZSBwYXNzZWQgYnkgY2FsbGVyLiAgQWRqdXN0IGFsbAoJY2FsbGVycy4KCShjcmVhdGVfcmVnaXN0ZXJfYWxpYXMpOiBOZXcgZnVuY3Rpb24sIHNwbGl0IG91dCBmcm9tIC4uLgoJKG1kX2Fzc2VtYmxlKTogLi4uIGhlcmUuCgkobWRfYmVnaW4pOiBCdWlsZCBuZXcgcmVnaXN0ZXIgaGFzaCB0YWJsZXMuCgkoYXJtX3JlZ19wYXJzZSk6IE5ldyBhcmd1bWVudCBmb3IgdGhlIGhhc2ggdGFibGUgdG8gc2VhcmNoLiAgQWRqdXN0IGFsbAoJY2FsbGVycy4KCShhcm1fcmVnX3BhcnNlX2FueSk6IE5ldyBmdW5jdGlvbi4KCShjb19wcm9jX251bWJlcik6IExvb2sgdXAgdGhlIHByb2Nlc3NvciBudW1iZXIgaW4gdGhlIHByb2Nlc3NvciBoYXNoCgl0YWJsZS4KCShjaXJydXNfcmVndHlwZSk6IERlbGV0ZS4KCShjaXJydXNfcmVnaXN0ZXIsIGNpcnJ1c19tdmZfcmVnaXN0ZXIsIGNpcnJ1c19tdmRfcmVnaXN0ZXIpCgkoY2lycnVzX212ZnhfcmVnaXN0ZXIsIGNpcnJ1c19tdmR4X3JlZ2lzdGVyLCBjaXJydXNfbXZheF9yZWdpc3RlcikKCShBUk1fRVhUX01BVkVSSUNLc2NfcmVnaXN0ZXIpOiBEZWxldGUuCgkoZG9fY19iaW5vcHNfMSwgZG9fY19iaW5vcHNfMiwgZG9fY19iaW5vcHNfMyk6IERlbGV0ZS4KCShkb19jX2Jpbm9wc18xW2Etb10sIGRvX2NfYmlub3BzXzJbYS1jXSwgZG9fY19iaW5vcHNfM1thLWRdKTogTmV3CglmdW5jdGlvbnMuCgkoZG9fY190cmlwbGVfNCwgZG9fY190cmlwbGVfNSk6IERlbGV0ZS4KCShkb19jX3RyaXBsZV80W2FiXSwgZG9fY190cmlwbGVfNVthLWhdKTogTmV3IGZ1bmN0aW9ucy4KCShkb19jX3F1YWRfNik6IERlbGV0ZS4KCShkb19jX3F1YWRfNlthYl0pOiBOZXcgZnVuY3Rpb25zLgoJKGRvX2NfYmlub3BzLCBkb19jX3RyaXBsZSwgZG9fY19xdWFkLCBkb19jX3NoaWZ0LCBkb19jX2xkc3QpOiBSZXdvcmsKCWFyZ3VtZW50cyB0byB1c2UgbmV3IHJlZ2lzdGVyIHBhcnNpbmcgbWV0aG9kcy4KCShjaXJydXNfcmVnX3JlcXVpcmVkX2hlcmUpOiBMaWtld2lzZS4KCShpbnNucyk6IFJlY2xhc3NpZnkgY2lycnVzIG1hdmVyaWNrIHdvcmtlciBmdW5jdGlvbnMuCgkoY2lycnVzX3ZhbGlkX3JlZyk6IERlbGV0ZS4KCjIwMDItMDEtMDcgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWd1cmUuaW4gKHNoKmxlKTogU2V0IGNwdV90eXBlPXNoIGFuZCBlbmRpYW49bGl0dGxlLgoJKHNoKi0qLW5ldGJzZGVsZiopOiBOZXcgdGFyZ2V0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIHRjLXNoLmg6IFVwZGF0ZSBjb3B5cmlnaHQgeWVhcnMuCgkoVEFSR0VUX0ZPUk1BVCk6IEFkZCB2ZXJzaW9uIGZvciBURV9OZXRCU0QuCgoyMDAyLTAxLTA3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIHJlYWQuYyAoZW1pdF9leHByKTogRG8gbm90IGFsbG93ICdzaXplJyBvciAnbmJ5dGVzJyB0byBnbwoJbmVnYXRpdmUuCgoyMDAyLTAxLTA2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLW02OGsuaCAobWRfcHJlcGFyZV9yZWxheF9zY2FuKTogUmV3cml0ZS4KCSogY29uZmlnL3RjLW02OGsuYyAobWRfcmVsYXhfdGFibGUpOiBBZGQgbWRfcHJlcGFyZV9yZWxheF9zY2FuIGNvbW1lbnQuCgoyMDAyLTAxLTA1ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIHRjLW1pcHMuYyAobWlwc19jcHJlc3RvcmVfdmFsaWQpOiBOZXcgZmxhZy4KCShtaXBzX2ZyYW1lX3JlZ192YWxpZCk6IE5ldyBmbGFnLgoJKG1hY3JvKSBbTV9KQUxfMl06IENoZWNrIGJvdGggZmxhZ3MuCglbTV9KQUxfQV06IExpa2V3aXNlLgoJKHNfY3ByZXN0b3JlKTogU2V0IG1pcHNfY3ByZXN0b3JlX3ZhbGlkLgoJKHRjX2dldF9yZWdpc3Rlcik6IElmIHNldHRpbmcgbWlwc19mcmFtZV9yZWcsIHNldAoJbWlwc19mcmFtZV9yZWdfdmFsaWQgYW5kIGNsZWFyIG1pcHNfY3ByZXN0b3JlX3ZhbGlkLgoJKHNfbWlwc19lbnQpOiBDbGVhciBib3RoIGZsYWdzLgoJKHNfbWlwc19lbmQpOiBDbGVhciBib3RoIGZsYWdzLgoKMjAwMi0wMS0wNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHdyaXRlLmMgKHdyaXRlX29iamVjdF9maWxlKTogTWFrZSB1c2Ugb2YgYmZkX3NlY3Rpb25fbGlzdF9yZW1vdmUuCgkqIGNvbmZpZy9vYmotZWNvZmYuYyAoZWNvZmZfZnJvYl9maWxlKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1tbWl4LmMgKG1taXhfZnJvYl9maWxlKTogTGlrZXdpc2UuCgoyMDAyLTAxLTA0ICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogY29uZmlndXJlLmluIChpMzg2LSotbmV0YnNkZWxmKik6IENvbGxhcHNlIHRhcmdldCBpbnRvLi4uCgkoaTM4Ni0qLW5ldGJzZCopOiAuLi50aGlzLiAgQWRkIHN1cHBvcnQgZm9yIHg4Ni02NC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCjIwMDItMDEtMDMgIG1hdHRoZXcgZ3JlZW4gIDxtcmdAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAobWRfcGFyc2Vfb3B0aW9uKTogQm9va0UgaXMgbm90IE1vdG9yb2xhIHNwZWNpZmljLgoKMjAwMi0wMS0wMiAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbTY4ay5jIChtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IFRlc3QgZm9yIGEKCU5VTEwgZnJhZyBsaW5rLgoKRm9yIG9sZGVyIGNoYW5nZXMgc2VlIENoYW5nZUxvZy0wMDAxCgwKTG9jYWwgVmFyaWFibGVzOgptb2RlOiBjaGFuZ2UtbG9nCmxlZnQtbWFyZ2luOiA4CmZpbGwtY29sdW1uOiA3NAp2ZXJzaW9uLWNvbnRyb2w6IG5ldmVyCkVuZDoK