MjAwMy0wOS0xNiAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlLmFuZ2xpbkBucmMtY25yYy5nYy5jYT4KCgkqIGxkbGV4LmM6IFJlYnVpbGQgd2l0aCBmbGV4IDIuNS40LgoKMjAwMy0wNy0yOSAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBzY3JpcHR0ZW1wbC9lbGZtNjhoYzEyLnNjOiBBZGQgZ2NjX2V4Y2VwdF90YWJsZS4KCSogc2NyaXB0dGVtcGwvZWxmbTY4aGMxMS5zYzogTGlrZXdpc2UuCgoyMDAzLTA3LTIzICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIHNjcmlwdHRlbXBsL2VsZm02OGhjMTEuc2M6IEtlZXAgY3Rvci9kdG9yIHNlY3Rpb25zOyBUYWtlIGludG8KCWFjY291bnQgLnRyYW1wIHNlY3Rpb25zOwoJKiBzY3JpcHR0ZW1wbC9lbGZtNjhoYzEyLnNjOiBMaWtld2lzZS4KCjIwMDMtMDYtMTIgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS50Z3QgKG1pcHMqLXNnaS1pcml4NiopOiBBZGQgdGhlIG8zMiBhbmQgbjY0IGVtdWxhdGlvbnMKCXRvICR0YXJnX2V4dHJhX2xpYnBhdGguCgoyMDAzLTA2LTAyICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCglNZXJnZSBmcm9tIG1haW5saW5lOgoJMjAwMy0wNS0xNSAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgkqIGVtdWxwYXJhbXMvZWxmNjRfaWE2NC5zaDogRG9uJ3Qgc2V0IENPTU1PTlBBR0VTSVpFIGZvciBub3cuCgoyMDAzLTA1LTMwICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZW11bHRlbXBsL2FybWVsZi5lbSAoYXJtX2VsZl9iZWZvcmVfYWxsb2NhdGlvbik6IFJlcGxhY2UgQVNTRVJUCgl3aXRoIGEgdGVzdCBmb3IgYSBOVUxMIGJmZF9mb3JfaW50ZXJ3b3JraW5nLgoKMjAwMy0wNS0wNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbGV4Lmw6IEFjY2VwdCBDIHN0eWxlIGNvbW1lbnRzIGluIHZlcnNpb24gc2NyaXB0cy4KCjIwMDMtMDQtMjggIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogbGRsYW5nLmMgKGxhbmdfcHJvY2Vzcyk6IEFkZCB0aGUgcmVsYXggZmluYWxpemUgcGFzcy4KCgkqIGxkbWFpbi5jIChtYWluKTogSW5pdGlhbGl6ZSBsaW5rX2luZm8ucmVsYXhfZmluYWxpemluZyB0bwoJRkFMU0UuCgoyMDAzLTA0LTI0ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgoKCSogbGRncmFtLnkgKHBoZHJfdHlwZSk6IEdyb2sgUFRfVExTIGFuZCBQVF9HTlVfRUhfRlJBTUUgbmFtZXMuCglJZiBhIG5hbWUgc3RyaW5nIGlzIHVua25vd24sIGdpdmUgYW4gZXJyb3IgcmF0aGVyIHRoYW4gY3Jhc2hpbmcgbGF0ZXIuCgoyMDAzLTA0LTIzIERoYW5hbmpheSBEZXNocGFuZGUgPGRoYW5hbmpheWRAa3BpdGN1bW1pbnMuY29tPgoKCSogTWFrZWZpbGUuYW0gKEFMTF9FTVVMQVRJT05TKTogQWRkIGVoODMwMGhuLm8sIGVoODMwMHNuLm8sCgllaDgzMDBobmVsZi5vLCBlaDgzMDBzbmVsZi5vIGFuZCByZXNwZWN0aXZlIHJ1bGVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLnRndDogQWRkIGg4MzAwaG4sIGg4MzAwc24sIGg4MzAwaG5lbGYsIGg4MzAwc25lbGYKCSogZW11bHBhcmFtcy9oODMwMGhuLnNoOiBOZXcKCSogZW11bHBhcmFtcy9oODMwMHNuLnNoOiBOZXcKCSogZW11bHBhcmFtcy9oODMwMGhuZWxmLnNoOiBOZXcKCSogZW11bHBhcmFtcy9oODMwMHNuZWxmLnNoOiBOZXcKCSogc2NyaXB0dGVtcGwvaDgzMDBobi5zYzogbmV3CgkqIHNjcmlwdHRlbXBsL2g4MzAwc24uc2M6IG5ldwoKMjAwMy0wNC0yMyAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBsZG1haW4uYyAobGlua19jYWxsYmFja3MpOiBJbml0aWFsaXplIGVycm9yX2hhbmRsZXIuCgoJKiBsZG1pc2MuYyAoZXJyb3JfaGFuZGxlcik6IE5ldyBmdW5jdGlvbi4KCgkqIGxkbWlzYy5oIChlcnJvcl9oYW5kbGVyKTogTmV3IHByb3RvdHlwZS4KCjIwMDMtMDQtMjEgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogZW11bHBhcmFtcy9tNjhoYzExZWxmLnNoOiBVc2UgbTY4aGMxeGVsZi5lbSBleHRyYS4KCSogZW11bHBhcmFtcy9tNjhoYzExZWxmYi5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvbTY4aGMxMmVsZi5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvbTY4aGMxMmVsZmIuc2g6IExpa2V3aXNlLgoKMjAwMy0wNC0xOSAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBlbXVsdGVtcGwvbTY4aGMxeGVsZi5lbTogTmV3IGZpbGUgdG8gZ2VuZXJhdGUgZmFyIHRyYW1wb2xpbmVzIG9uCgk2OEhDMTEgYW5kIDY4SEMxMi4KCShMREVNVUxfQkVGT1JFX0FMTE9DQVRJT04pOiBPdmVycmlkZSB0byBnYXRoZXIgdGhlIHRyYW1wb2xpbmVzIHRvCglnZW5lcmF0ZS4KCShMREVNVUxfRklOSVNIKTogT3ZlcnJpZGUgdG8gZ2VuZXJhdGUgdGhlIHRyYW1wb2xpbmVzIGFmdGVyIGdjIGFuZAoJbGlua2VyIHJlbGF4YXRpb24uCgkoTERFTVVMX0NSRUFURV9PVVRQVVRfU0VDVElPTl9TVEFURU1FTlRTKTogT3ZlcnJpZGUgdG8gY3JlYXRlIHRoZQoJc3R1YiBmaWxlIGZvciB0cmFtcG9saW5lcy4KCShQQVJTRV9BTkRfTElTVF9PUFRJT05TLCBQQVJTRV9BTkRfTElTVF9MT05HT1BUUyk6IE5ldyBvcHRpb25zCgktLW5vLXRyYW1wb2xpbmUgYW5kIC0tYmFuay13aW5kb3cgdG8gY29udHJvbCB0aGUgbWVtb3J5IGJhbmsgd2luZG93LgoKMjAwMy0wNC0xOCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBsZGZpbGUuYyAobGRmaWxlX2FkZF9saWJyYXJ5X3BhdGgpOiBSZW1vdmUgdGhlIHVudXNlZAoJdmFyaWFibGUuCgoyMDAzLTA0LTE4ICBBbmRyZXcgSGFsZXkgIDxhcGhAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBzY3JpcHR0ZW1wbC94c3Rvcm15MTYuc2MgKF9fZGF0YSwgX19yZGF0YSk6IE5ldy4KCjIwMDMtMDQtMTYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBzY3JpcHR0ZW1wbC94c3Rvcm15MTYuc2M6IEFkZCAuamNyIHNlY3Rpb24gbWFwcGluZy4KCjIwMDMtMDQtMTUgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCUZyb20gRGViaWFuIGJ5IEphY2sgSG93YXJ0aCA8aG93YXJ0aEBuaXRyby5tZWQudWMuZWR1PjoKCgkqIGxkbGV4Lmw6IFVzZSBZWV9DVVJSRU5UX0JVRkZFUiBpbnN0ZWFkIG9mIHl5X2N1cnJlbnRfYnVmZmVyLgoKMjAwMy0wNC0xNSAgUm9oaXQgS3VtYXIgU3JpdmFzdGF2YSA8cm9oaXRzQGtwaXRjdW1taW5zLmNvbT4KCgkqIGg4LWRvYy50ZXhpOiBSZXBsYWNlIG9jY3VycmFuY2VzIG9mICdIaXRhY2hpJyB3aXRoICdSZW5lc2FzJy4KCSogbGQudGV4aW5mbzogTGlrZXdpc2UuCgoyMDAzLTA0LTE0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCUZyb20gUHJhc2hhbnRoIFRhbXJhcGFybmkgPHByYXNoYW50aF90QGluLmlibS5jb20+CgkqIHNjcmlwdHRlbXBsL2VsZi5zYyAoQ1RPUik6IEhhbmRsZSBjcnRiZWdpblMubywgY3J0ZW5kUy5vIGFuZAoJb3RoZXIgdmFyaWFudHMgb2YgY3J0YmVnaW4ubywgY3J0ZW5kLm8uCgkoRFRPUik6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9jcmlzYW91dC5zYyAoY3RvcnMsIGR0b3JzKTogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2VsZl9jaGFvcy5zYyAoQ1RPUiwgRFRPUik6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9lbGZkMTB2LnNjIChDVE9SLCBEVE9SKTogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2VsZmQzMHYuc2MgKENUT1IsIERUT1IpOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvZWxmeHRlbnNhLnNjIChDVE9SLCBEVE9SKTogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2lxMjAwMC5zYyAoQ1RPUiwgRFRPUik6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9tbW8uc2MgKGN0b3JzLCBkdG9ycyk6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC94c3Rvcm15MTYuc2MgKENUT1IsIERUT1IpOiBMaWtld2lzZS4KCjIwMDMtMDQtMDkgICBEbWl0cnkgRGlreSAgPGRpd2lsQG1haWwucnU+CgoJKiBzY3JpcHR0ZW1wbC9lbGYzMm1zcDQzMC5zYzogQWRkIGluaXRYLCBmaW5pWCwgY3RvcnMsIGR0b3JzCglzZWN0aW9ucyB0byByZXNwZWN0IEMrKyAgY29uc3RydWN0b3IvZGVzdHJ1Y3Rvci4gQWRkIGN0b3JzL2R0b3JzCglzdGFydC9zdG9wIGRlZmluaXRpb25zLgoJKiBzY3JpcHR0ZW1wbC9lbGYzMm1zcDQzMF8zLnNjOiBMaWtld2lzZS4KCjIwMDMtMDQtMDYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBsZC50ZXhpbmZvIChPcHRpb25zKTogQWRkIGEgcmVtaW5kZXIgb2YgdGhlIHRhcmdldCBzcGVjaWZpYwoJbmF0dXJlIHRvIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgaTM4NiBQRSBzcGVjaWZpYyBvcHRpb25zLCBmb3IKCXJlYWRlcnMgd2hvIGhhdmUgbm90IHJlYWQgYWxsIHRoZSB3YXkgdGhyb3VnaCB0aGUgbWFudWFsLgoKMjAwMy0wNC0wNCAgU3ZlaW4gRS4gU2VsZGFsICA8U3ZlaW4uU2VsZGFsQHNvbGlkYXMuY29tPgoKCSogY29uZmlndXJlLnRndDogRml4ZWQgYnVnIGluIGxpc3Qgb2YgdGFyZ19leHRyYV9lbXVscy4KCSogZW11bHBhcmFtcy90aWMzeGNvZmYuc2ggKFNDUklQVF9OQU1FKTogTmFtZXNwYWNlCgljbGVhbnVwLiBSZXBsYWNlIHMvYzR4L3RpYzR4IGFuZCBzL2MzeC90aWMzeC8KCSogZW11bHBhcmFtcy90aWMzeGNvZmZfb25jaGlwLnNoOiBEaXR0bwoJKiBlbXVscGFyYW1zL3RpYzR4Y29mZi5zaDogRGl0dG8KCSogc2NyaXB0dGVtcGwvdGljNHhjb2ZmLnNjOiBEaXR0bwoKMjAwMy0wNC0wMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIE5FV1M6IE1lbnRpb24gc3VwcG9ydCBmb3IgWHRlbnNhIGFyY2hpdGVjdHVyZS4KCjIwMDMtMDQtMDIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwZS1kbGwuYyAocGVfZGV0YWlsX2xpc3QpOiBhcm0tcGUgdGFyZ2V0cyB1c2UgdW5kZXJzY29yZXMuCgoyMDAzLTA0LTAxICBEYW5ueSBTbWl0aCA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBlbXVsdGVtcGwvcGUuZW0gKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9hZnRlcl9vcGVuKToKCURvbid0IGNhbGwgcGVfZGxsX2J1aWxkX3NlY3Rpb24oKSBpZiBsaW5rX2luZm8ucmVsb2NhdGVhYmxlLgoJKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9maW5pc2gpOiBEb24ndCBjYWxsIHBlX2RsbF9maWxsX3NlY3Rpb25zKCkKCWlmIGxpbmtfaW5mby5yZWxvY2F0ZWFibGUuCgoyMDAzLTA0LTAxICBGYWJyaXppbyBHZW5uYXJpICA8ZmFicml6aW8uZ2VAdGlzY2FsaW5ldC5pdD4KCgkqIHBlLWRsbC5jIChwcm9jZXNzX2RlZl9maWxlKTogRG9uJ3QgY3JlYXRlIGFuIGV4cG9ydAoJc2VjdGlvbiBpZiB0aGVyZSBhcmUgbm8gZXhwb3J0cyBhbmQgd2UncmUgYnVpbGRpbmcgYW4gZXhlCgkocGVfZGxsX2J1aWxkX3NlY3Rpb25zKTogRGl0dG8KCShwZV9kbGxfZmlsbF9zZWN0aW9ucyk6IENvbmRpdGlvbmFsaXplIHNldHRpbmcKCWFiZmQtPmRsbCB0cnVlIG9uIGluZm8tPnNoYXJlZAoJKiBlbXVsdGVtcGwvcGUuZW0gKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9hZnRlcl9vcGVuKToKCUlmIGkzODZwZSBvciBhcm1wZSwgY2FsbCBwZV9kbGxfYnVpbGRfc2VjdGlvbigpCglmb3IgYm90aCBleGUncyBhbmQgZGxsJ3MsIG5vdCBqdXN0IGRsbCdzLgoJKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9maW5pc2gpOiBGb3IgYWxsIHRhcmdldHMgZXhjZXB0CglzaHBlIGFuZCBtaXBzcGUsIGNhbGwgcGVfZGxsX2ZpbGxfc2VjdGlvbnMoKSBmb3IgYm90aAoJZXhlJ3MgYW5kIGRsbCdzLCBub3QganVzdCBkbGwncy4KCjIwMDMtMDQtMDIgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBlbXVscGFyYW1zL3h0ZW5zYS1jb25maWcuc2g6IFJlbW92ZSBjb21tZW50IGluZGljYXRpbmcgdGhhdCB0aGlzIGlzCglhIGdlbmVyYXRlZCBmaWxlLgoKMjAwMy0wNC0wMSAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIE1ha2VmaWxlLmFtIChBTExfRU1VTEFUSU9OUyk6IEFkZCBlZWxmMzJ4dGVuc2Euby4KCShlZWxmMzJ4dGVuc2EuYyk6IE5ldyB0YXJnZXQuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmUudGd0OiBIYW5kbGUgeHRlbnNhLSotKi4KCSogZ2VuLWRvYy50ZXhpOiBTZXQgWFRFTlNBIHZhcmlhYmxlLgoJKiBsZC50ZXhpbmZvOiBTZXQgWFRFTlNBIHZhcmlhYmxlLiAgQWRkIG5ldyBYdGVuc2Egbm9kZS4KCSogZW11bHBhcmFtcy9lbGYzMnh0ZW5zYS5zaDogTmV3IGZpbGUuCgkqIGVtdWxwYXJhbXMveHRlbnNhLWNvbmZpZy5zaDogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC94dGVuc2FlbGYuZW06IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9lbGZ4dGVuc2Euc2M6IExpa2V3aXNlLgoKMjAwMy0wNC0wMSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUudGd0IChwb3dlcnBjKi0qLWxpbnV4Kik6IEFkZCBlbGYzMnBwYyB0byBwcGM2NAoJdGFyZ19leHRyYV9saWJwYXRoLiAgQWRkIGVsZjY0cHBjIHRvIHBwYyB0YXJnX2V4dHJhX2xpYnBhdGgKCWlmIC0tZW5hYmxlLTY0LWJpdC1iZmQuCgoyMDAzLTA0LTAxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZW11bHBhcmFtcy9hcm1lbGYuc2ggKE9USEVSX1JFQURPTkxZX1NFQ1RJT05TKTogQ2hhbmdlIG5hbWUgb2YKCW5vdGUgc2VjdGlvbi4KCSogZW11bHBhcmFtcy9hcm1lbGZfbGludXguc2ggKE9USEVSX1JFQURPTkxZX1NFQ1RJT05TKTogQ2hhbmdlCgluYW1lIG9mIG5vdGUgc2VjdGlvbi4KCjIwMDMtMDMtMzEgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogbGQudGV4aW5mbyAoLVRic3MsIC1UZGF0YSwgLVR0ZXh0KTogRG9jdW1lbnQgaW4gdGVybXMgb2YKCS0tc2VjdGlvbi1zdGFydC4KCjIwMDMtMDMtMzEgIERhdmlkIEhlaW5lICA8ZGxoZWluZUBzdWlmLnN0YW5mb3JkLmVkdT4KCgkqIGxkZmlsZS5jIChsZGZpbGVfYWRkX2xpYnJhcnlfcGF0aCk6IEFsd2F5cyBhbGxvY2F0ZSBzcGFjZSBmb3IKCXRoZSBmaWxlbmFtZS4KCSogbGRsYW5nLmMgKGxhbmdfcmVnaXN0ZXJfdmVyc19ub2RlKTogRnJlZSB0aGUgbm9kZSBpZiBpdCBjYW5ub3QKCWJlIHVzZWQuCgkqIGxkbWFpbi5jIChzZXRfc2NyaXB0c19kaXIpOiBBbHdheXMgZnJlZSB0aGUgY29uc3RydWN0ZWQKCWRpcmVjdG9yeSBuYW1lLgoJKGFkZF9rZWVwc3ltc19maWxlKTogRml4IG1lbW9yeSBsZWFrLgoJKiBsZG1pc2MuYyAodmZpbmZvKTogTGlrZXdpc2UuCgkqIGxleHN1cC5jIChwYXJzZV9hcmdzKTogTGlrZXdpc2UuCgoyMDAzLTAzLTI1ICBTdGFuIENveCAgIDxzY294QHJlZGhhdC5jb20+CgkgICAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCglDb250cmlidXRlIHN1cHBvcnQgZm9yIEludGVsJ3MgaVdNTVh0IGNoaXAgLSBhbglBUk0gdmFyaWFudDoKCgkqIGVtdWxwYXJhbXMvYXJtZWxmLnNoIChPVEhFUl9SRUFET05MWV9TRUNUSU9OUyk6IERlZmluZS4KCSogZW11bHBhcmFtcy9hcm1lbGZfbGludXguc2ggKE9USEVSX1JFQURPTkxZX1NFQ1RJT05TKTogRGVmaW5lLgoJKiBzY3JpcHR0ZW1wbC9hcm1jb2ZmLnNjICguZGF0YSk6IEVuc3VyZSA4IGJ5dGUgYWxpZ25tZW50LgoJKC5ic3MpOiBMaWtld2lzZS4KCjIwMDMtMDMtMjUgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogbGRtYWluLmggKGxkX2Nhbm9uX3N5c3Jvb3QsIGxkX2Nhbm9uX3N5c3Jvb3RfbGVuKTogRGVjbGFyZS4KCSogbGRtYWluLmMgKGxkX2Nhbm9uX3N5c3Jvb3QsIGxkX2Nhbm9uX3N5c3Jvb3RfbGVuKTogRGVmaW5lLgoJKG1haW4pOiBJbml0aWFsaXplIHRoZW0uCgkqIGxkZmlsZS5jOiBJbmNsdWRlIHBhdGhuYW1lcy5oLgoJKGlzX3N5c3Jvb3RlZF9wYXRobmFtZSk6IE5ldy4KCShsZGZpbGVfYWRkX2xpYnJhcnlfcGF0aCk6IFVzZSBpdC4KCShsZGZpbGVfb3Blbl9maWxlX3NlYXJjaCk6IExpa2V3aXNlLiAgVXNlIElTX0FCU09MVVRFX1BBVEguICBEb24ndAoJc2VhcmNoX2RpcnMgaWYgZ2l2ZW4gYW4gYWJzb2x1dGUgcGF0aG5hbWUuCgkobGRmaWxlX29wZW5fZmlsZSk6IElzc3VlIGVycm9yIG1lc3NhZ2UgZm9yIHN5c3Jvb3RlZAoJYWJzb2x1dGUgcGF0aG5hbWVzLgoJKiBNYWtlZmlsZS5hbTogVXBkYXRlZCBkZXBlbmRlbmNpZXMuCgkqIE1ha2VmaWxlLmluOiBSZWJ1aWxkLgoKMjAwMy0wMy0yNCAgRGFuaWVsIE7pcmkgIDxkbmVAbWF5b25uYWlzZS5uZXQ+CgoJKiBsZC50ZXhpbmZvOiBSZW5hbWUgYWxsIG9jY3VyYW5jZXMgb2YgQzU0WCB0byBUSUM1NFguCgoyMDAzLTAzLTE5ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogbGRmaWxlLmMgKGxkZmlsZV90cnlfb3Blbl9iZmQpOiBQb3AgbGV4ZXIgc3RhcnQgY29uZGl0aW9uIGFmdGVyCgllb2YuCgoyMDAzLTAzLTE4ICBEYW5ueSBTbWl0aCAgPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZGVmaWxlcC55IChvcHRfYmFzZSk6IElmIG5vIG51bWJlciBnaXZlbiwgc2V0IHRvIGRlZmF1bHQKCSgtMSksIG5vdCAwLgoKMjAwMy0wMy0xMyAgRGFubnkgU21pdGggIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRlZmZpbGVwLnkgKGRlZl9pbXBvcnQpOiAgVXNlIGRlZmF1bHQgZXh0ZW5zaW9uIG9mICJkbGwiCglpZiBubyBleHRlbnNpb24gcHJvdmlkZWQgaW4gcGFyc2VkIElNUE9SVCBkZWZpbml0aW9uLgoKCSogZGVmZmlsZXAueSAoZGVmX2xleCk6IFJldmVydCAyMDAzLTAzLTEyIGNoYW5nZS4KCShkb3RfbmFtZSk6IE5ldyBpZCB0eXBlIGFuZCBydWxlLgoJKGV4cGxpbmUpOiBVc2UgaW5zdGVhZCBvZiBJRC4KCShvcHRfZXF1YWxfbmFtZSk6IExpa2V3aXNlLgoKMjAwMy0wMy0xMiAgRGFubnkgU21pdGggIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRlZmZpbGVwLnkgKGRlZl9sZXgpOiBBY2NlcHQgJy4nIGFzIHZhbGlkIG5vbi1sZWFkIGNoYXIuCgoyMDAzLTAzLTA3ICBDaHJpc3RvcGhlciBGYXlsb3IgIDxjZ2ZAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS50Z3Q6IEFkZCBOQVRJVkVfTElCX0RJUlMgZm9yIGN5Z3dpbiB0YXJnZXQgYmFjayBhZnRlcgoJYXBwYXJlbnQgYWNjaWRlbnRhbCByZW1vdmFsIG9uIDIwMDMtMDEtMDYuCgoyMDAzLTAzLTA0ICBEbWl0cnkgRGlreSAgPGRpd2lsQG1haWwucnU+CgoJKiBNYWtlZmlsZS5hbTogQWRkIG5ldyBkZXZpY2VzIHgxMTIyIHgxMTMyIGVtdWxhdGlvbgoJKiBjb25maWd1cmUudGd0OiBMaWtld2lzZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGVtdWxwYXJhbXMvbXNwNDMweDExMjIuc2g6IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL21zcDQzMHgxMTMyLnNoOiBOZXcgZmlsZS4KCjIwMDMtMDMtMDMgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogbGRtYWluLmMgKHNldF9zY3JpcHRzX2Rpcik6IExvb2sgZm9yIHJlbGF0aXZlIHRvIFRPT0xCSU5ESVIgYXMKCXdlbGwuCgoJKiBsZGZpbGUuaCAoc3RydWN0IHNlYXJjaF9kaXJzKTogQWRkZWQgc3lzcm9vdGVkIGZpZWxkLgoJKiBsZGxhbmcuaCAoc3RydWN0IGxhbmdfaW5wdXRfc3RhdGVtZW50X3N0cnVjdCk6IExpa2V3aXNlLgoJKiBsZGZpbGUuYyAobGRmaWxlX2FkZF9saWJyYXJ5X3BhdGgpOiBNYXJrIHN5c3Jvb3RlZCBwYXRocy4KCShsZGZpbGVfb3Blbl9maWxlX3NlYXJjaCk6IExvb2sgZm9yIHN5c3Jvb3RlZCBmaWxlbmFtZSBzdGFydGluZwoJd2l0aCAvIGluIGxkX3N5c3Jvb3QgaW5zdGVhZCBvZiBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuICBDbGVhcgoJc3lzcm9vdGVkIGZsYWcgaWYgaXQncyBmb3VuZCBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuICBTZXQgaXQKCWZyb20gdGhlIHNlYXJjaCBkaXJlY3RvcnkncyBzeXNyb290ZWQgZmxhZyB3aGVyZSBpdCBpcyBmb3VuZAoJb3RoZXJ3aXNlLgoJKiBsZGxhbmcuYyAobGRsYW5nX3N5c3Jvb3RlZF9zY3JpcHQpOiBOZXcgc3RhdGljIHZhcmlhYmxlLgoJKG5ld19hZmlsZSk6IE1hcmsgc2VhcmNoX2ZpbGVfZW51bXMgYXMgc3lzcm9vdGVkIGlmCglsZGxhbmdfc3lzcm9vdGVkX3NjcmlwdC4KCShsb2FkX3N5bWJvbHMpOiBTZXQgbGRsYW5nX3N5c3Jvb3RlZF9zY3JpcHQgYWNjb3JkaW5nIHRvIHRoZQoJc2NyaXB0J3Mgc3lzcm9vdGVkIGZpZWxkIHdoaWxlIHByb2Nlc3NpbmcgaXQuCgkqIGxkLnRleGluZm86IERvY3VtZW50IElOUFVUIGJlaGF2aW9yIGluIHN5c3Jvb3QuCgoyMDAzLTAzLTAyICBEYW5ueSBTbWl0aCAgPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogc2NyaXB0dGVtcGwvcGUuc2M6IFVzZSBQUk9WSURFIHdpdGggZXRleHQsIGVuZCwgX2VuZCwKCjIwMDMtMDMtMDMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVscGFyYW1zL2VsZjY0YWxwaGEuc2ggKEVYVFJBX0VNX0ZJTEUpOiBEZWZpbmUuCgkoUEFSU0VfQU5EX0xJU1RfUFJPTE9HVUUsIFBBUlNFX0FORF9MSVNUX0xPTkdPUFRTLAoJUEFSU0VfQU5EX0xJU1RfT1BUSU9OUywgUEFSU0VfQU5EX0xJU1RfQVJHU19DQVNFUywKCVBBUlNFX0FORF9MSVNUX0VQSUxPR1VFKTogRG9uJ3QgZGVmaW5lLgoJKiBlbXVsdGVtcGwvYWxwaGFlbGYuZW06IE5ldyBmaWxlLgoKMjAwMy0wMy0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkZW11bC5jOiBJbmNsdWRlIGdldG9wdC5oLgoJKiBlbXVsdGVtcGwvZWxmMzIuZW06IEluY2x1ZGUgZ2V0b3B0LmggZWFybGllci4KCSogZW11bHRlbXBsL3RpY29mZi5lbTogTGlrZXdpc2UuCgoyMDAzLTAyLTI4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHRlbXBsL2VsZjMyLmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9nZXRfc2NyaXB0KTogQWRkIGNvbWJyZWxvYwoJc3VwcG9ydCB3aGVuIHNjcmlwdHMgcmVhZCBmcm9tIGZpbGVzLgoKMjAwMy0wMi0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkZW11bC5jIChsZGVtdWxfcGFyc2VfYXJncyk6IFJldHVybiBGQUxTRSBieSBkZWZhdWx0LgoJKiBsZGVtdWwuaCAoc3RydWN0IGxkX2VtdWxhdGlvbl94ZmVyX3N0cnVjdCk6IFVwZGF0ZSBwYXJzZV9hcmdzCgljb21tZW50LgoKCSogbGRlbXVsLmMgKGxkZW11bF9hZGRfb3B0aW9ucywgbGRlbXVsX2hhbmRsZV9vcHRpb24pOiBOZXcgZnVuY3Rpb25zLgoJKGxkZW11bF9wYXJzZV9hcmdzKTogUmV0dXJuIGJmZF9ib29sZWFuLiAgRm9ybWF0dGluZy4KCSogbGRlbXVsLmggKGxkZW11bF9hZGRfb3B0aW9ucywgbGRlbXVsX2hhbmRsZV9vcHRpb24pOiBEZWNsYXJlLgoJKGxkZW11bF9wYXJzZV9hcmdzKTogQWRqdXN0LgoJKHN0cnVjdCBsZF9lbXVsYXRpb25feGZlcl9zdHJ1Y3QpOiBBZGQgYWRkX29wdGlvbnMgYW5kIGhhbmRsZV9vcHRpb24uCglSZXR1cm4gYmZkX2Jvb2xlYW4gZnJvbSBwYXJzZV9hcmdzLgoJKiBsZXhzdXAuYyAocGFyc2VfYXJncyk6IE1hbGxvYyBzaG9ydG9wdHMsIGxvbmdvcHRzIGFuZAoJcmVhbGx5X2xvbmdvcHRzLiAgQ2FsbCBsZGVtdWxfYWRkX29wdGlvbnMgYW5kIGxkZW11bF9oYW5kbGVfb3B0aW9uLgoJKiBlbXVsdGVtcGwvYWl4LmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9hZGRfb3B0aW9ucyk6IFNwbGl0IG91dCBmcm9tCglnbGQke0VNVUxBVElPTl9OQU1FfV9wYXJzZV9hcmdzLgoJKGdsZCR7RU1VTEFUSU9OX05BTUV9X2hhbmRsZV9vcHRpb24pOiBMaWtld2lzZS4KCShsZF8ke0VNVUxBVElPTl9OQU1FfV9lbXVsYXRpb24pOiBBZGp1c3QgaW5pdGlhbGl6ZXIuCgkqIGVtdWx0ZW1wbC9hcm1jb2ZmLmVtOiBBcyBmb3IgYWl4LmVtLCBidXQgcmVtb3ZlIHBhcnNlX2FyZ3MuCgkqIGVtdWx0ZW1wbC9iZW9zLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3BlLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3RpY29mZi5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbTogTGlrZXdpc2UuICBEb24ndCBkdXBsaWNhdGUgbG9uZyBvcHRpb25zIGVpdGhlci4KCShnbGQke0VNVUxBVElPTl9OQU1FfV9hZGRfc3lzcm9vdCk6IFByb3RvdHlwZS4KCSogZW11bHRlbXBsL2FybWVsZi5lbSAoUEFSU0VfQU5EX0xJU1RfTE9OR09QVFMpOiBEb24ndCBkdXBsaWNhdGUKCW9wdGlvbnMuCgkqIGVtdWx0ZW1wbC9ocHBhZWxmLmVtIChQQVJTRV9BTkRfTElTVF9MT05HT1BUUyk6IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvcHBjMzJlbGYuZW0gKFBBUlNFX0FORF9MSVNUX0xPTkdPUFRTKTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9wcGM2NGVsZi5lbSAoUEFSU0VfQU5EX0xJU1RfTE9OR09QVFMpOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2FybWVsZl9vYWJpLmVtIChsZF8ke0VNVUxBVElPTl9OQU1FfV9lbXVsYXRpb24pOiBBZGp1c3QKCWluaXRpYWxpemVyLgoJKiBlbXVsdGVtcGwvZ2VuZXJpYy5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9nbGQ5NjAuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvZ2xkOTYwYy5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9saW51eC5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9sbms5NjAuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvbTY4a2NvZmYuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvbWlwc2Vjb2ZmLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3N1bm9zLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3ZhbmlsbGEuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvbmV0YnNkLmVtIChnbGRuZXRic2RfYmVmb3JlX3BhcnNlKTogUHJvdG90eXBlLgoKMjAwMy0wMi0yNSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKGdsZCR7RU1VTEFUSU9OX05BTUV9X2FkZF9zeXNyb290KTogRml4CgltZW1vcnkgYWxsb2NhdGlvbiBlcnJvci4KCgkqIE1ha2VmaWxlLmFtIChsZG1haW4ubyk6IERlZmluZSBUT09MQklORElSLgoJKiBNYWtlZmlsZS5pbjogUmVidWlsdC4KCSogbGRtYWluLmMgKGxkX3N5c3Jvb3QpOiBUcnkgdG8gc2V0IGZyb20gVE9PTEJJTkRJUiB0b28uCgoyMDAzLTAyLTIxICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogbGRsYW5nLmMgKGxhbmdfc2l6ZV9zZWN0aW9uc18xKTogQWRkIENIRUNLX1JFR0lPTlMgYXJndW1lbnQgYW5kIG9ubHkKCWNhbGwgb3NfcmVnaW9uX2NoZWNrIHdoZW4gaXQgaXMgc2V0LgoJKGxhbmdfc2l6ZV9zZWN0aW9ucyk6IEFkZCBDSEVDS19SRUdJT05TIGFyZ3VtZW50IGFuZCBwYXNzIGl0IHRocm91Z2ggdG8KCWxhbmdfc2l6ZV9zZWN0aW9uc18xLgoJKGxhbmdfcHJvY2Vzcyk6IENoYW5nZSBsYW5nX3NpemVfc2VjdGlvbnMgY2FsbHMgdG8gc2V0IENIRUNLX1JFR0lPTlMKCW9ubHkgZm9yIHRoZSBsYXN0IGNhbGwsIG5vdCBvbiBldmVyeSByZWxheGF0aW9uIGl0ZXJhdGlvbi4KCSogbGRsYW5nLmggKGxhbmdfc2l6ZV9zZWN0aW9ucyk6IFVwZGF0ZSBwcm90b3R5cGUuCgkqIHBlLWRsbC5jIChwZV9kbGxfZmlsbF9zZWN0aW9ucyk6IFNldCBDSEVDS19SRUdJT05TIGFyZ3VtZW50IGluIGNhbGxzCgl0byBsYW5nX3NpemVfc2VjdGlvbnMuCgkocGVfZXhlX2ZpbGxfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2VsZjMyLmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9maW5pc2gpOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2hwcGFlbGYuZW0gKGhwcGFlbGZfbGF5b3V0X3NlY3Rpb25zX2FnYWluKTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9wcGM2NGVsZi5lbSAocHBjX2JlZm9yZV9hbGxvY2F0aW9uKTogTGlrZXdpc2UuCgkocHBjX2xheW91dF9zZWN0aW9uc19hZ2Fpbik6IExpa2V3aXNlLgoKMjAwMy0wMi0yMSAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIGdlbi1kb2MudGV4aTogU2V0IEFSTSBhbmQgSFBQQSB2YXJpYWJsZXMuCgkqIGxkLnRleGluZm86IEZpeCB0eXBvcyBhbmQgb2J2aW91cyB0ZXhpbmZvIG1pc3Rha2VzLiAgTWFrZSBzZWN0aW9uCgl0aXRsZSBjYXBpdGFsaXphdGlvbiBtb3JlIGNvbnNpc3RlbnQuICBBZGQgbWlzc2luZyBtZW51IGVudHJpZXMgZm9yCgltYWNoaW5lLXNwZWNpZmljIHNlY3Rpb25zIGFuZCBjb25kaXRpb25hbGl6ZSB0aGVtIGNvbnNpc3RlbnRseS4KCUNvbmRpdGlvbmFsaXplIHRleHQgdGhhdCBpcyBpcnJlbGV2YW50IHdoZW4gU2luZ2xlRm9ybWF0IGlzIHNldC4KCUFkZCBAZ3JvdXAgZGl2aXNpb25zIHRvIGltcHJvdmUgcGFnZSBicmVha3MgaW4gbG9uZyBleGFtcGxlcy4KCVVzZSBAaWZ0ZXgvQGlmbm90dGV4IGluc3RlYWQgb2YgQGlmdGV4L0BpZmluZm8gc28gdGhhdCBIVE1MIG91dHB1dAoJaXMgY29ycmVjdC4gIFJlbW92ZSAiRklYTUUiIGNvbW1lbnQgYWJvdXQgbm90IHVzaW5nCglAcmFpc2VzZWN0aW9ucy9AbG93ZXJzZWN0aW9ucy4gIFVzZSBAcmFpc2VzZWN0aW9ucy9AbG93ZXJzZWN0aW9ucwoJY29uc2lzdGVudGx5IGZvciBtYWNoaW5lLXNwZWNpZmljIHNlY3Rpb25zLiAgQ2hhbmdlIHRvIGJlIG1vcmUgcG9saXRlCglhYm91dCBwb29yIGJ1ZyByZXBvcnRzLiAgUmVwbGFjZSBGREwgYXBwZW5kaXggd2l0aCBpbmNsdWRlIG9mIGZkbC50ZXhpLgoJTW92ZSBXSU4zMiBub2RlIHRvIG1hdGNoIGl0cyBvcmRlciBpbiB0aGUgbWVudXMuCgkqIGZkbC50ZXhpOiBOZXcgZmlsZS4KCjIwMDMtMDItMjAgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmluIChUQVJHRVRfU1lTVEVNX1JPT1QpOiBTZXQgZGVmYXVsdCB0bwoJJHtleGVjX3ByZWZpeH0vJHt0YXJnZXRfYWxpYXN9L3N5cy1yb290LiAgTWF0Y2ggZXhwbGljaXQKCScke2V4ZWNfcHJlZml4fScgKGluIGFkZGl0aW9uIHRvIHRoZSBleHBhbnNpb24gdGhlcmVvZikgYXMKCXJlbG9jYXRhYmxlLgoJKiBjb25maWd1cmU6IFJlYnVpbHQuCgoyMDAzLTAyLTIwICBQaGlsIEVkd2FyZHMgIDxwbWVAZ2NjLmdudS5vcmc+CgoJKiBsZGdyYW0ueSAodmVyc19kZWZucyk6IEFsc28gcmVjdXJzZSB3aXRoICdFWFRFUk4gTkFNRScgcGF0dGVybnMuCgoyMDAzLTAyLTIwICBIYXJyaSBQb3J0ZW4gIDxwb3J0ZW5Aa2RlLm9yZz4KCgkqIGxkZ3JhbS55ICh2ZXJzX2RlZm5zKTogQWxsb3cgb3B0aW9uYWwgdHJhaWxpbmcgc2VtaWNvbG9uIGluCglFWFRFUk4gTkFNRSBibG9jazsKCjIwMDMtMDItMTggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvcHBjMzJlbGYuZW06IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL2VsZjMycHBjLnNoIChFWFRSQV9FTV9GSUxFKTogRGVmaW5lLgoJKiBNYWtlZmlsZS5hbSAoZWVsZjMybHBwYy5jKTogRGVwZW5kIG9uIGVtdWx0ZW1wbC9wcGMzMmVsZi5lbS4KCShlZWxmMzJscHBjbnRvLmMpOiBMaWtld2lzZS4KCShlZWxmMzJscHBjc2ltLmMpOiBMaWtld2lzZS4KCShlZWxmMzJwcGNudG8uYyk6IExpa2V3aXNlLgoJKGVlbGYzMnBwYy5jKTogTGlrZXdpc2UuCgkoZWVsZjMycHBjX2Zic2QuYyk6IExpa2V3aXNlLgoJKGVlbGYzMnBwY3NpbS5jKTogTGlrZXdpc2UuCgkoZWVsZjMycHBjbGludXguYyk6IExpa2V3aXNlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMDItMTggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsZC50ZXhpbmZvOiBSZW1vdmUgc3BhY2VzIGJldHdlZW4gQHNhbXAgYW5kIG9wZW5pbmcgYnJhY2UuCgoyMDAzLTAyLTE4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHRlbXBsL3BwYzY0ZWxmLmVtIChwcGNfY3JlYXRlX291dHB1dF9zZWN0aW9uX3N0YXRlbWVudHMpOiBDaGVjawoJaGFzaCBjcmVhdG9yLgoJKHBwY19iZWZvcmVfYWxsb2NhdGlvbik6IERvbid0IGRvIG9wdGltaXphdGlvbnMgaWYgd3JvbmcgaGFzaCB0YWJsZS4KCShnbGQke0VNVUxBVElPTl9OQU1FfV9maW5pc2gpOiBEaXR0by4KCjIwMDMtMDItMTcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBsZG1haW4uYyAobWFpbikgRGVmYXVsdCBhbGxvd19zaGxpYl91bmRlZmluZWQgdG8gdHJ1ZS4KCSogbGV4c3VwLmMgKGxkX29wdGlvbnMpOiBBZGQgLS1uby1hbGxvdy1zaGxpYi11bmRlZmluZWQuCgkocGFyc2VfYXJncyk6IFBhcnNlIHRoZSBuZXcgc3dpdGNoLgoJKiBsZC50ZXhpbmZvOiBEb2N1bWVudCBuZXcgc3dpdGNoIGFuZCBkZWZhdWx0IGJlaGF2aW91ciBvZgoJYWxsb3dpbmcgdW5kZWZpbmVkIHN5bWJvbHMgaW4gc2hhcmVkIGxpYnJhcmllcy4KCjIwMDMtMDItMTEgRG1pdHJ5IERpa3kgIDxkaXdpbEBtYWlsLnJ1PgoKCSogc2NyaXB0dGVtcGwvZWxmMzJtc3A0MzAuc2M6IEFkZCBuZXcgZGF0YSBhbmNob3JzIGRlZmluaXRpb25zLgoJKiBzY3JpcHR0ZW1wbC9lbGYzMm1zcDQzMF8zLnNjOiBMaWtld2lzZS4KCjIwMDMtMDItMTEgIFV3ZSBTdGllYmVyICA8dXdlQHd3d3MuZGU+CgoJKiBjb25maWd1cmUudGd0OiBBZGQgc3VwcG9ydCBmb3Iga2FPUyBhcyBjcm9zcyBidWlsZCB0YXJnZXQKCXN5c3RlbS4KCjIwMDMtMDItMTAgIEpvaG4gRGFpdmlkIEFuZ2xpbiAgPGRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhPgoKCSogaHBwYWVsZi5lbSAoZ3JvdXBfc2l6ZSk6IENoYW5nZSBkZWZhdWx0IGJhY2sgdG8gMS4KCjIwMDMtMDItMDkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvcHBjNjRlbGYuZW06IEFkZCAibm8tdGxzLW9wdGltaXplIiBvcHRpb24gYW5kIHN1cHBvcnQgY29kZS4KCjIwMDMtMDItMDcgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJKiBocHBhZWxmLmVtIChncm91cF9zaXplKTogQ2hhbmdlIGRlZmF1bHQgdG8gLTEuCgoyMDAzLTAyLTA3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZW11bHRlbXBsL2FybWVsZi5lbSAoUEFSU0VfQU5EX0xJU1RfU0hPUlRPUFRTKTogUmVtb3ZlICduJyBzaG9ydAoJb3B0LgoJKFBBUlNFX0FORF9MSVNUX0xPTkdPUFRTKTogQWRkIGR1cGxpY2F0ZSBlbnRyeSBmb3IKCW5vLXBpcGVsaW5lLWtub3dsZWRnZS4gIFRoaXMgd2lsbCBwcmV2ZW50IHRoZSBnZXRvcHQgcGFja2FnZSBmcm9tCgl0aGlua2luZyB0aGF0IHRoZXJlIGFyZSBhbnkgc2hvcnRlciBhYmJyZXZpYXRpb25zIGZvcgoJLS1uby1waXBlbGluZS1rbm93bGVkZ2UuCgoyMDAzLTAyLTA3ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGdlbnNjcmlwdHMuc2ggKExJQl9QQVRIKTogRG9uJ3QgYXBwZW5kIExJQlBBVEhfU1VGRklYIHRvIHBhdGhzCgl3aGljaCBhbHJlYWR5IGhhdmUgaXQuICBBdm9pZCBkdXBsaWNhdGVzLgoKMjAwMy0wMi0wNiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbXVscGFyYW1zL2VsZjY0X3MzOTAuc2ggKExJQlBBVEhfU1VGRklYKTogU2V0IHRvIDY0LgoJKiBlbXVscGFyYW1zL2VsZl94ODZfNjQuc2ggKExJQlBBVEhfU1VGRklYKTogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmNjRfc3BhcmMuc2ggKExJQlBBVEhfU1VGRklYKTogU2V0IGluc3RlYWQgb2Ygc3VmZml4LgoKMjAwMy0wMi0wNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVtdWx0ZW1wbC9wcGM2NGVsZi5lbSAocHBjX2JlZm9yZV9hbGxvY2F0aW9uKTogU2l6ZSBzZWN0aW9ucyB0aGVuCgljYWxsIHBwYzY0X2VsZl90bHNfb3B0aW1pemUuCgoyMDAzLTAyLTAzICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbTogTW92ZSBnbGQke0VNVUxBVElPTl9OQU1FfV9hZGRfc3lzcm9vdAoJb3V0c2lkZSBvZiBHTlUvTGludXggY29uZGl0aW9uYWwuCgoyMDAzLTAxLTI4ICBSYWxmIEhhYmFja2VyICA8cmFsZi5oYWJhY2tlckBmcmVlbmV0LmRlPgoKCSogZGVmZmlsZXAueSAoZGVmX2dldF9tb2R1bGUpOiBOZXcgZnVuY3Rpb246IGxvY2F0ZSBhbiBhbHJlYWR5CglhZGRlZCBtb2R1bGUuCgkqIGRlZmZpbGUuaCAoZGVmX2dldF9tb2R1bGUpOiBOZXcgcHJvdG90eXBlLgoJKiBwZS1kbGwuYyAocGVfaW1wbGllZF9pbXBvcnRfZGxsKTogQWRkIGNvZGUgdG8JcHJldmVudCBpbXBvcnRpbmcKCWEgZGxsIG11bHRpcGxlIHRpbWVzLgoKMjAwMy0wMS0yMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVtdWx0ZW1wbC9zaDY0ZWxmLmVtOiBJbmNsdWRlIGVsZjMyLXNoNjQuaC4KCShzaDY0X2VsZl8ke0VNVUxBVElPTl9OQU1FfV9iZWZvcmVfYWxsb2NhdGlvbik6IEFkanVzdCBmb3IgY2hhbmdlZAoJc2g2NF9lbGZfc2VjdGlvbl9kYXRhLgoJKHNoNjRfZWxmXyR7RU1VTEFUSU9OX05BTUV9X2FmdGVyX2FsbG9jYXRpb24pOiBMaWtld2lzZS4KCjIwMDMtMDEtMjMgIFd1IFlvbmd3ZWkgIDxhZGFoQG5ldHN0ZC5jb20+CgoJKiBsZC50ZXhpbmZvOiBSZW1vdmUgYW4gZXh0cmEgImkiIGluIC0tZGxsLXNlYXJjaC1wcmVmaXguCgkqIGVtdWx0ZW1wbC9wZS5lbSAoZ2xkXyR7RU1VTEFUSU9OX05BTUV9X2xpc3Rfb3B0aW9ucyk6IE1vdmUgYQoJY3Jvc3MtODB0aC1jb2x1bW4tbWFyZ2luICJhbiIgdG8gdGhlIG5leHQgbGluZS4KCjIwMDMtMDEtMjEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbXVscGFyYW1zL3RpYzN4Y29mZi1vbmNoaXAuc2g6IFJlbmFtZSB0byAuLi56CgkqIGVtdWxwYXJhbXMvdGljM3hjb2ZmX29uY2hpcC5zaDogLi4udGhpcy4KCSogTWFrZWZpbGUuYW0gKGV0aWMzeGNvZmZfb25jaGlwLmMpOiBGaXggbmFtZSBvZiBnZW5lcmF0ZWQgQyBmaWxlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMDEtMjEgIEZhYmlvIEFsZW1hZ25hICA8ZmFsZW1hZ25AYXJvcy5vcmc+CgoJKiBjb25maWd1cmUudGd0OiBIYW5kbGUgaVszNDU2XTg2LSotYXJvcyoKCjIwMDMtMDEtMTkgIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIE1ha2VmaWxlLmFtOiBBZGRlZCBldGljM3hjb2ZmLm8gYW5kIGV0aWM0eGNvZmZfb25jaGlwLm8KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUKCSogY29uZmlndXJlLnRndDogQWRkZWQgZXh0cmEgdGFyZ2V0IGVtdWxhdGlvbnMKCSogZW11bHBhcmFtcy90aWMzeGNvZmYuc2g6IFJlbW92ZSBvbGQgc2V0dGluZ3MKCSogZW11bHBhcmFtcy90aWM0eGNvZmYuc2g6IERpdHRvCgkqIGVtdWxwYXJhbXMvdGljM3hjb2ZmLW9uY2hpcC5zaDogQWRkZWQgbmV3CgkqIHNjcmlwdHRlbXBsL3RpYzR4Y29mZi5zYzogUmV2aXNlIGFuZCBjb21iaW5lIGJvdGggYzN4IGFuZCBjNHgKCSogc2NyaXB0dGVtcGwvdGljM3hjb2ZmLnNjOiBSZW1vdmUKCjIwMDMtMDEtMTcgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fYWRkX3N5c3Jvb3QpOiBEbyBub3QKCXNraXAgJzonLgoKMjAwMy0wMS0xNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wMS0xNCAgQ2hhcmxlcyBXaWxzb24gIDxjd2lsc29uQGVjZS5nYXRlY2guZWR1PgoKCSogbGQvbGQudGV4aW5mbyAobm9kZSBXSU4zMik6IFNvbWUgY2xhcmlmaWNhdGlvbnMKCWFuZCBmb3JtYXR0aW5nIGZpeHVwcy4KCjIwMDMtMDEtMDkgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBsZG1haW4uYyAoZ2V0X2VtdWxhdGlvbik6IFNvcnQgLW1pcHNOTiBjaGVja3MgaW4gdGhlIHVzdWFsCglvcmRlciwgYW5kIGhhbmRsZSAoaWdub3JlKSAtbWlwczMycjIuCgoyMDAzLTAxLTA5ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGxkbWFpbi5jIChtYWluKTogTWFrZSBzdXJlIGxkX3N5c3Jvb3QgaXMgaW5pdGlhbGl6ZWQuCgoyMDAzLTAxLTA2ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChlZWxmMzJpcTEwLmMpOiBGaXggdGFiL3doaXRlc3BhY2UgbWl4dXAuCgoJKiBNYWtlZmlsZS5hbSAobGRtYWluLm8pOiBBZGQgQFRBUkdFVF9TWVNURU1fUk9PVF9ERUZJTkVALgoJKEdFTlNDUklQVFMpOiBBZGQgQHVzZV9zeXNyb290QC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGVkLgoJKiBjb25maWd1cmUuaG9zdDogTW92ZSBzZXR0aW5nIG9mIE5BVElWRV9MSUJfRElSUyB0by4uLgoJKiBjb25maWd1cmUudGd0OiAuLi4gaGVyZS4gIFVzZSAke3RhcmdldH0gaW5zdGVhZCBvZiAke2hvc3R9Cglmb3IgTkFUSVZFX0xJQl9ESVJTLgoJKiBjb25maWd1cmUuaW46IEFkZCAtLXdpdGgtc3lzcm9vdC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCSogZ2Vuc2NyaXB0cy5zaDogQWNjZXB0IHVzZV9zeXNyb290IG9wdGlvbi4gIFNldCBuZXcgdmFyaWFibGVzCglOQVRJVkUgYW5kIFVTRV9MSUJQQVRILiAgUHJlcGVuZCAiPSIgdG8gZGlyZWN0b3J5IG5hbWVzIGlmCgkkdXNlX3N5c3Jvb3QuICBEb24ndCBzZWFyY2ggJHRvb2xfbGliIGlmICR1c2Vfc3lzcm9vdC4KCSogbGRmaWxlLmMgKGxkZmlsZV9hZGRfbGlicmFyeV9wYXRoKTogSGFuZGxlIGxlYWRpbmcgJz0nLgoJKiBsZG1haW4uYyAoVEFSR0VUX1NZU1RFTV9ST09UKTogRGVmaW5lIGlmIG5vdCBkZWZpbmVkLgoJKGxkX3N5c3Jvb3QpOiBOZXcgdmFyaWFibGUuCgkobWFpbik6IEluaXRpYWxpemUgbGRfc3lzcm9vdC4KCSogbGRtYWluLmggKGxkX3N5c3Jvb3QpOiBOZXcgZXh0ZXJuLgoJKiBlbXVsdGVtcGwvZWxmMzIuZW06IFVzZSBOQVRJVkUgYW5kIFVTRV9MSUJQQVRIIGluc3RlYWQgb2YKCXNlYXJjaGluZyAkRU1VTEFUSU9OX0xJQlBBVEguCgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1fYWRkX3N5c3Jvb3QpOiBOZXcgZnVuY3Rpb24uCgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1fY2hlY2tfbGRfc29fY29uZik6IFVzZSBpdC4gIEhvbm9yIGxkX3N5c3Jvb3QuCgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1fYWZ0ZXJfb3Blbik6IExpa2V3aXNlLiAgT25seSBzZWFyY2gKCWVudmlyb25tZW50IHZhcmlhYmxlcyBpZiAkTkFUSVZFLgoJKiBsZC50ZXhpbmZvIChPcHRpb25zKTogTWVudGlvbiAiPSIgcHJlZml4IGluIHRoZSBkZXNjcmlwdGlvbiBvZiAtTC4KCSogTkVXUzogTWVudGlvbiAtLXdpdGgtc3lzcm9vdC4KCgkqIGVtdWxwYXJhbXMvZWxmMzJibWlwbjMyLWRlZnMuc2g6IFNldCBOQVRJVkUgYW5kIExJQlBBVEhfU1VGRklYCglpbnN0ZWFkIG9mIHNldHRpbmcgTElCX1BBVEguCgkqIGVtdWxwYXJhbXMvZWxmMzJwcGMuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjY0X3MzOTAuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjY0X3NwYXJjLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGY2NHBwYy5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmX3g4Nl82NC5zaDogTGlrZXdpc2UuCgoJKiBlbXVscGFyYW1zL2VsZjY0X2FpeC5zaDogQWRkICI9IiBwcmVmaXhlcyB0byBMSUJfUEFUSC4KCSogZW11bHBhcmFtcy9lbGY2NGhwcGEuc2g6IEFkZCAiPSIgcHJlZml4ZXMgdG8gTElCX1BBVEguCgoyMDAzLTAxLTAzICBDaGFybGVzIFdpbHNvbiAgPGN3aWxzb25AZWNlLmdhdGVjaC5lZHU+CgoJKiBsZC9wZS1kbGwuYyAoYXV0b2ZpbHRlcl9zeW1ib2xsaXN0KTogQWRkIGN5Z3dpbl9jcnQwLgoKMjAwMy0wMS0wNCAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBNYWtlZmlsZS5hbSAobGRtYWluLm8pOiBQYXNzIEJJTkRJUi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGVkLgoJKiBsZG1haW4uYyAoc2V0X3NjcmlwdHNfZGlyKTogVXNlIG1ha2VfcmVsYXRpdmVfcHJlZml4IGZvciB0aGUgZmlyc3QKCXNlYXJjaCBwYXRoLgoKMjAwMy0wMS0wMiAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQUxMX0VNVUxBVElPTlMpOiBBZGQgZWVsZjMyaXEyMDAwLm8uCgkoZWVsZjMyaXEyMDAwLmMpOiBOZXcgdGFyZ2V0LgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLnRndDogSGFuZGxlIGlxMjAwMC0qLWVsZi4KCSogZW11bHBhcmFtcy9lbGYzMmlxMTAuc2g6IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL2VsZjMyaXEyMDAwLnNoOiBOZXcgZmlsZS4KCSogc2NyaXB0dGVtcGwvaXEyMDAwLnNjOiBOZXcgZmlsZS4KCjIwMDMtMDEtMDIgQ2hhcmxlcyBXaWxzb24gPGN3aWxzb25AZWNlLmdhdGVjaC5lZHU+CgoJKiBwZS1kbGwuYyAoYXV0b2ZpbHRlcl9zeW1ib2xsaXN0KTogQWRkIGRvX3BzZXVkb19yZWxvYwoJYW5kIF9wZWkzODZfcnVudGltZV9yZWxvY2F0b3IgdG8gdGhlIGV4Y2x1ZGUgbGlzdC4KCjIwMDMtMDEtMDEgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBsZGZpbGUuYzogRml4IGNvbW1lbnQgdHlwb3MuCgkqIGxkbGFuZy5jOiBMaWtld2lzZS4KCSogbXJpLmM6IExpa2V3aXNlLgoJKiBwZS1kbGwuYzogTGlrZXdpc2UuCgoyMDAzLTAxLTAxICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCglTdWdnZXN0ZWQgYnkgTWFuZnJlZCBIb2xsc3RlaW4gPG1hbmZyZWQuaEBnbXgubmV0PjoKCSogTWFrZWZpbGUuYW0gKGxkLjEpOiBEZXBlbmQgb24gY29uZmlnZG9jLnRleGkKCWFuZCBsZHZlci50ZXhpLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZWQuCgoyMDAyLTEyLTI0ICBEbWl0cnkgRGlreSAgPGRpd2lsQG1haWwucnU+CgoJKiBNYWtlZmlsZS5hbTogQWRkIG1zcDQzMCB0YXJnZXQuCgkqIGNvbmZpZ3VyZS50Z3Q6IExpa2V3aXNlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZW11bHBhcmFtcy9tc3A0MzB4Pz8/LnNoOiBOZXcgZmlsZXMuICBMaW5rZXIgc2NyaXB0IHBhcmFtZXRlcnMKCWZvciB2YXJpb3VzIG1zcDQzMCBjb25maWd1cmF0aW9ucy4KCSogZ2VuLWRvYy50ZXhpOiBFbmFibGUgbXNwNDMwIGRvY3VtZW5hdGlvbi4KCSogbGQudGV4aW5mbzogRG9jdW1lbnQgbXNwNDMwIHNlY3Rpb25zLgoJKiBzY3JpcHR0ZW1wbC9lbGYzMm1zcDQzMC5zYzogTmV3IGZpbGUuICBMaW5rZXIgc2NyaXB0IGZvciBtc3A0MzAuCgkqIHNjcmlwdHRlbXBsL2VsZjMybXNwNDMwXzMuc2M6IE5ldyBmaWxlLiAgTGlua2VyIHNjcmlwdCBmb3IgbXNwNDMwLgoKMjAwMi0xMi0zMCAgUmFsZiBIYWJhY2tlciAgPFJhbGYuSGFiYWNrZXJAZnJlZW5ldC5kZT4KCSAgICBDaGFybGVzIFdpbHNvbiAgPGN3aWxzb25AZWNlLmdhdGVjaC5lZHU+CgoJKiBsZC9jb25maWcuaW4gKEhBVkVfUkVBTFBBVEgpOiBOZXcgZW50cnkuCgkoSEFWRV9TWVNfU1RBVF9ILCBIQVZFX1NZU19UWVBFU19IKTogUmVtb3ZlZDogb2Jzb2xldGUuCgoyMDAyLTEyLTMwICBSYWxmIEhhYmFja2VyICA8cmFsZi5oYWJhY2tlckBmcmVlbmV0LmRlPgoKCSogbGQudGV4aW5mbzogTmV3IHdpbjMyIHRvcGljczogJ3N5bWJvbCBhbGlhc2luZycgYW5kICdleHBvcnQgZGxsCglzeW1ib2xzJy4KCjIwMDItMTItMjMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsZG1haW4uYyAobWFpbik6IEluaXQgInN0cmlwX2Rpc2NhcmRlZCIuCgkqIGxleHN1cC5jIChPUFRJT05fU1RSSVBfRElTQ0FSREVEKTogRGVmaW5lLgoJKE9QVElPTl9OT19TVFJJUF9ESVNDQVJERUQpOiBEZWZpbmUuCgkobGRfb3B0aW9ucyk6IEFkZCAic3RyaXAtZGlzY2FyZGVkIiBhbmQgIm5vLXN0cmlwLWRpc2NhcmRlZCIuCgkocGFyc2VfYXJncyk6IEhhbmRsZSB0aGVtLgoKMjAwMi0xMi0yMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGxkLmggKHN0cnVjdCBhcmdzX3R5cGUpOiBBZGQgbmV3IGZpZWxkCgknYWNjZXB0X3Vua25vd25faW5wdXRfYXJjaGl0ZWN0dXJlJy4KCSogbGRtYWluLmMgKG1haW4pOiBJbml0aWFsaXNlICdhY2NlcHRfdW5rbm93bl9pbnB1dF9hcmNoaXRlY3R1cmUnCgl0byBmYWxzZS4KCSogbGRsYW5nLmMgKGxhbmdfY2hlY2spOiBQYXNzIGFjY2VwdF91bmtub3duX2lucHV0X2FyY2hpdGVjdHVyZSB0bwoJYmZkX2FyY2hfZ2V0X2NvbXBhdGlibGUuCgkqIGxkZmlsZS5jIChsZGZpbGVfdHJ5X29wZW5fYmZkKTogTGlrZXdpc2UuCgkqIGxleHN1cC5jIChsZF9vcHRpb25zKTogQWRkIG5ldyBjb21tYW5kIGxpbmUgc3dpdGNoCgktLWFjY2VwdC11bmtub3duLWlucHV0LWFyY2hpdGVjdHVyZSBhbmQgaXRzIGludmVyc2UuCgkocGFyc2VfYXJncyk6IEhhbmRsZSAtLWFjY2VwdC11bmtub3duLWlucHV0LWFyY2hpdGVjdHVyZS4KCSogbGQudGV4aW5mbzogRG9jdW1lbnQgbmV3IGxpbmtlciBvcHRpb24uCgkqIE5FV1M6IE1lbnRpb24gbmV3IGxpbmtlciBvcHRpb24uCgoyMDAyLTEyLTIwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRtYWluLmMgKG1haW4pOiBSZS1vcmRlciBsaW5rX2luZm8gaW5pdGlhbGl6YXRpb24uICBJbml0IGFsbAoJZmllbGRzLgoKMjAwMi0xMi0xOSAgQ2hhcmxlcyBXaWxzb24gIDxjd2lsc29uQGVjZS5nYXRlY2guZWR1PgoKCSogbGQudGV4aW5mbzogQ2xhcmlmeSBhbmQgZXh0ZW5kIHRoZSBkb2N1bWVudGF0aW9uCglpbiB0aGUgTWFjaGluZSBEZXBlbmRlbnQsIFdJTjMyIHNlY3Rpb24uCgoyMDAyLTEyLTE4ICBSYWxmIEhhYmFja2VyICA8cmFsZi5oYWJhY2tlckBmcmVlbmV0LmRlPgoKCSogbGQudGV4aW5mbzogQWRkIHdpbjMyIG1hY2hpbmUgZGVwZW5kaW5nIHNlY3Rpb24uCgkqIGdlbi1kb2MudGV4aTogRW5hYmxlIHdpbjMyIG1hY2hpbmUgZGVwZW5kaW5nIHNlY3Rpb24uCgoJKiBjb25maWd1cmUuaG9zdDogQWRkIHdpbjMyIGxpYnJhcnkgc2VhcmNoIHBhdGguCgoyMDAyLTEyLTE3ICBSYWxmIEhhYmFja2VyICA8cmFsZi5oYWJhY2tlckBmcmVlbmV0LmRlPgoKCSogbGQvZW11bHRlbXBsL3BlLmVtIChwZV9maW5kX2RhdGFfaW1wb3J0cyk6IERvbid0IHNlYXJjaCBmb3IgZGF0YQoJaW1wb3J0IHdoZW4gYXV0by1pbXBvcnQgaXMgZGlzYWJsZWQuCgoyMDAyLTEyLTE3ICBEYW5ueSBTbWl0aCAgPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZW11bHRlbXBsL3BlLmVtICguLi5fcmVjb2duaXplZF9maWxlKTogVXNlIExEX1BBVEhNQVgrMSB0bwoJYWNjb3VudCBmb3IgdHJhaWxpbmcgJ1wwJy4KCjIwMDItMTItMTcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbXVsdGVtcGwvcGUuZW0gKGxvbmdvcHRzKTogRHVwbGljYXRlIGVudHJ5IGZvciAtLWNvbXBhY3QtaW1wbGliCglzbyB0aGF0IGl0IGlzIG5vdCBjb25mdXNlZCB3aXRoIC1jLgoKMjAwMi0xMi0xMyAgUmFsZiBIYWJhY2tlciAgPFJhbGYuSGFiYWNrZXJAZnJlZW5ldC5kZT4KCSAgICBDaGFybGVzIFdpbHNvbiAgPGN3aWxzb25AZWNlLmdhdGVjaC5lZHU+CgoJKiBjb25maWd1cmUuaW46IEFkZCBjaGVjayBmb3IgcmVhbHBhdGggZnVuY3Rpb24uCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgoJKiBhY2xvY2FsLm00OiBSZWdlbmVyYXRlLgoJKiBkZWZmaWxlLmg6IEFkZCAuZGF0YSBmaWVsZCB0byBkZWZfZmlsZV9pbXBvcnQKCXN0cnVjdHVyZS4KCSogcGUtZGxsLmMgKHBlX3Byb2Nlc19pbXBvcnRfZGVmcyk6IFVzZSAuZGF0YSBmaWVsZCBvZgoJZGVmX2ZpbGVfaW1wb3J0IHN0cnVjdHVyZSB0byBpbml0aWFsaXplIGZsYWdfZGF0YSBmaWVsZCBvZgoJZGVmX2ZpbGVfZXhwb3J0IHN0cnVjdHVyZS4KCShwZV9pbXBsaWVkX2ltcG9ydF9kbGwpOiBOZXcgdmFyaWFibGVzIGV4cF9mdW5jYmFzZSBhbmQKCVtkYXRhfGJzc11fW3N0YXJ0fGVuZF0uICBVc2UgRExMJ3MgaW50ZXJuYWwgbmFtZSB0byBzZXQgZGxsX25hbWUsCglub3QgZmlsZW5hbWUgKHdoaWNoIG1heSBiZSBhIHN5bWxpbmspLglTY2FuIHRoZSBzZWN0aW9ucyBhbmQKCWluaXRpYWxpemUgW2RhdGF8YnNzXV9bc3RhcnR8ZW5kXS4gIFdoZW4gc2Nhbm5pbmcgdGhlIGV4cG9ydAoJdGFibGUsIHNraXAgX25tXyBzeW1ib2xzLCBhbmQgbWFyayBhbnkgc3ltYm9scyB3aG9zZSBydmEgaW5kaWNhdGVzCgl0aGF0IGl0IGlzIGluIHRoZSAuYnNzIG9yIC5kYXRhIHNlY3Rpb25zIGFzIGRhdGEuCgkqIHN5c2RlcC5oOiBJbmNsdWRlIGxpbWl0cy5oIGFuZCBzeXMvcGFyYW0uaCwgYW5kIGRlZmluZQoJTERfUEFUSE1BWCBhcyBhcHByb3ByaWF0ZS4gIEFsc28gZGVmaW5lIFJFQUxQQVRIIGFzIHJlYWxwYXRoIGlmIGl0CglleGlzdHMsIE5VTEwgb3RoZXJ3aXNlLgoJKiBlbXVsdGVtcGwvcGUuZW0gKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9hZnRlcl9vcGVuKTogQ2FsbAoJcGVfcHJvY2Vzc19pbXBvcnRfZGVmcyBiZWZvcmUgcGVfZmluZF9kYXRhX2ltcG9ydHMsIHNvIHRoYXQKCWF1dG8taW1wb3J0IHdpbGwgY2hlY2sgdGhlIHZpcnR1YWwgaW1wbGliIGFzIHdlbGwgYXMgInJlYWwiCglpbXBsaWJzLgoJKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9yZWNvZ25pemVkX2ZpbGUpOiBVc2UgUkVBTFBBVEggdG8gZm9sbG93CglzeW1saW5rcyB0byB0aGVpciB0YXJnZXQ7IGNoZWNrIHRoYXQgdGhlIHRhcmdldCdzIGV4dGVuc2lvbiBpcwoJLmRsbCBiZWZvcmUgY2FsbGluZyBwZV9pbXBsaWVkX2ltcG9ydF9kbGwoKSwgbm90IHRoZSBmaWxlbmFtZQoJaXRzZWxmICh3aGljaCBtYXkgYmUgYSBzeW1saW5rKS4KCjIwMDItMTItMTAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKHN0cnVjdCBvcnBoYW5fc2F2ZSk6IEFkZCBvc190YWlsIGZpZWxkLgoJKGdsZCR7RU1VTEFUSU9OX05BTUV9X3BsYWNlX29ycGhhbik6IFJlLW9yZGVyIG91dHB1dF9zZWN0aW9uX3N0YXRlbWVudAoJbGlzdCB0b28uCgoyMDAyLTEyLTA4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRsYW5nLmg6IEZvcm1hdHRpbmcuCgoyMDAyLTEyLTA3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRsYW5nLmMgKGluaXRfb3MpOiBFbnN1cmUgc2VjdGlvbnMgbWVudGlvbmVkIGluIGxvYWRfYmFzZQoJYXJlIGluaXRpYWxpemVkLgoKMjAwMi0xMi0wNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fcGxhY2Vfb3JwaGFuKTogU2V0Cglsb2FkX2Jhc2UgZm9yIG9ycGhhbnMgdGhhdCBmb2xsb3cgYSBzZWN0aW9uIHdpdGggbG9hZF9iYXNlIHNldC4KCjIwMDItMTItMDEgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogbGQudGV4aW5mbzogUmVtb3ZlIHRoZSBleHRyYSBgOycgaW4gc2FtcGxlIHZlcnNpb24gc2NyaXB0LgoKMjAwMi0xMS0zMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZ3VyZS5ob3N0OiBDb3JyZWN0IGR5bmFtaWMtbGlua2VyIGZvciBwb3dlcnBjNjQgaG9zdHMuCgoJKiBNYWtlZmlsZS5hbSAoZWVsZjMycHBjd2luZGlzcy5jKTogQ29ycmVjdCBkZXBlbmRlbmNpZXMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKCSogbGQuaCwgbGRjcmVmLmMsIGxkY3Rvci5jLCBsZGN0b3IuaCwgbGRlbXVsLmMsIGxkZW11bC5oLCBsZGV4cC5jLAoJbGRleHAuaCwgbGRmaWxlLmMsIGxkZmlsZS5oLCBsZGdyYW0ueSwgbGRsYW5nLmMsIGxkbGFuZy5oLCBsZG1haW4uYywKCWxkbWFpbi5oLCBsZG1pc2MuYywgbGR3cml0ZS5jLCBsZXhzdXAuYywgbXJpLmMsIHBlLWRsbC5jLCBwZS1kbGwuaCwKCWVtdWxwYXJhbXMvZWxmMzJiNDMwMC5zaCwgZW11bHRlbXBsL2FpeC5lbSwgZW11bHRlbXBsL2FybWNvZmYuZW0sCgllbXVsdGVtcGwvYXJtZWxmLmVtLCBlbXVsdGVtcGwvYXJtZWxmX29hYmkuZW0sIGVtdWx0ZW1wbC9iZW9zLmVtLAoJZW11bHRlbXBsL2VsZjMyLmVtLCBlbXVsdGVtcGwvZ2VuZXJpYy5lbSwgZW11bHRlbXBsL2dsZDk2MC5lbSwKCWVtdWx0ZW1wbC9nbGQ5NjBjLmVtLCBlbXVsdGVtcGwvaHBwYWVsZi5lbSwgZW11bHRlbXBsL2xpbnV4LmVtLAoJZW11bHRlbXBsL2xuazk2MC5lbSwgZW11bHRlbXBsL202OGtjb2ZmLmVtLCBlbXVsdGVtcGwvbWlwc2Vjb2ZmLmVtLAoJZW11bHRlbXBsL21taXgtZWxmbm1tby5lbSwgZW11bHRlbXBsL21taXhlbGYuZW0sIGVtdWx0ZW1wbC9tbW8uZW0sCgllbXVsdGVtcGwvbmVlZHJlbGF4LmVtLCBlbXVsdGVtcGwvcGUuZW0sIGVtdWx0ZW1wbC9wcGM2NGVsZi5lbSwKCWVtdWx0ZW1wbC9zaDY0ZWxmLmVtLCBlbXVsdGVtcGwvc3Vub3MuZW0sIGVtdWx0ZW1wbC90aWNvZmYuZW06IFJlcGxhY2UKCWJvb2xlYW4gd2l0aCBiZmRfYm9vbGVhbiwgdHJ1ZSB3aXRoIFRSVUUsIGZhbHNlIHdpdGggRkFMU0UuICBTaW1wbGlmeQoJY29tcGFyaXNvbnMgb2YgYmZkX2Jvb2xlYW4gdmFycyB3aXRoIFRSVUUvRkFMU0UuICBGb3JtYXR0aW5nLgoKMjAwMi0xMS0yNyAgRGF2aWQgTydCcmllbiAgPG9icmllbkBGcmVlQlNELm9yZz4KCgkqIGNvbmZpZ3VyZS5ob3N0OiBGaXggZ2VuZXJpYyBGcmVlQlNEIGNvbmZpZ3VyYXRpb24gZW50cnkuCgoyMDAyLTExLTI3ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGxkLnRleGluZm86IEFkZCB0aGUgbWlzc2luZyBgOycgdG8gc2FtcGxlIHZlcnNpb24gc2NyaXB0cy4KCjIwMDItMTEtMjAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVscGFyYW1zL2VsZjY0cHBjLnNoIChTRUdNRU5UX1NJWkUpOiBEb24ndCBkZWZpbmUuCgoyMDAyLTExLTE0ICBFZ29yIER1ZGEgIDxkZW9AbG9nb3MtbS5ydT4KCgkqIGxkbWFpbi5jIChtYWluKTogTWFrZSBydW50aW1lIHJlbG9jcyBkaXNhYmxlZCBieSBkZWZhdWx0LiBSZW1vdmUKCWFzc2lnbm1lbnQgd2hpY2ggaGFzIG5vIGVmZmVjdC4KCSogcGUtZGxsLmggKHBlX2NyZWF0ZV9pbXBvcnRfZml4dXApOiBDaGFuZ2UgcHJvdG90eXBlLgoJKiBwZS1kbGwuYyAobWFrZV9ydW50aW1lX3BzZXVkb19yZWxvYyk6IE5ldyBmdW5jdGlvbi4KCShwZV9jcmVhdGVfcnVudGltZV9yZWxvY2F0b3JfcmVmZXJlbmNlKTogRGl0dG8uCgkocGVfY3JlYXRlX2ltcG9ydF9maXh1cCk6IEhhbmRsZSByZWxvY2F0aW9ucyB3aXRoIG5vbi16ZXJvIGFkZGVuZHMuCgkqIGVtdWx0ZW1wbC9wZS5lbTogQWRkIG9wdGlvbnMgLS1lbmFibGUtcnVudGltZS1wc2V1ZG8tcmVsb2MgYW5kCgktLWRpc2FibGUtcnVudGltZS1wc2V1ZG8tcmVsb2MuCgkobWFrZV9pbXBvcnRfZml4dXApOiBIYW5kbGUgcmVsb2NhdGlvbnMgd2l0aCBub24temVybyBhZGRlbmRzLiBDcmVhdGUKCWFuIGV4dGVybmFsIHJlZmVyZW5jZSB0byBfcGVpMzg2X3J1bnRpbWVfcmVsb2NhdG9yIHN5bWJvbCBpZiBhdCBsZWFzdAoJb25lIHBzZXVkbyByZWxvYyB3YXMgY3JlYXRlZC4KCSogbGQudGV4aW5mbzogRG9jdW1lbnQgLS1lbmFibGUtcnVudGltZS1wc2V1ZG8tcmVsb2MgYW5kCgktLWRpc2FibGUtcnVudGltZS1wc2V1ZG8tcmVsb2Mgb3B0aW9ucy4KCjIwMDItMTEtMTIgIEVhcmwgQ2hldyA8ZWFybF9jaGV3QGFnaWxlbnQuY29tPgoKCSogbGRsYW5nLmMgKGxhbmdfYWRkX3NlY3Rpb24pOiBEaXNjYXJkIGRlYnVnZ2luZyBzZWN0aW9ucyB0aGF0IGhhdmUKCWJlZW4gbWFya2VkIFNFQ19FWENMVURFLgoKMjAwMi0xMS0xMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoQUxMX0xJTkdVQVMpOiBBZGQgZGEuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogcG8vZGEucG86IE5ldyBEYW5pc2ggdHJhbnNsYXRpb24uCgoyMDAyLTExLTEyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHRlbXBsL3BwYzY0ZWxmLmVtIChwcGNfYmVmb3JlX2FsbG9jYXRpb24pOiBOZXcgZnVuY3Rpb24uCgkoTERFTVVMX0JFRk9SRV9BTExPQ0FUSU9OKTogRGVmaW5lLgoJKGdsZCR7RU1VTEFUSU9OX05BTUV9X2ZpbmlzaCk6IFJ1biBkaXNjYXJkX2luZm8gZm9yIHJlbG9jYXRhYmxlCglsaW5raW5nLgoJKiBlbXVsdGVtcC9ocHBhZWxmLmVtICgoZ2xkJHtFTVVMQVRJT05fTkFNRX1fZmluaXNoKTogTGlrZXdpc2UuCgoyMDAyLTExLTExICBDaHJpc3RvcGhlciBGYXlsb3IgIDxjZ2ZAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS50Z3QgKExJQl9QQVRIKTogRGVmYXVsdCB0byBzZWFyY2hpbmcgdzMyYXBpIGRpcmVjdG9yeSB1bmRlcgoJY3lnd2luLgoKMjAwMi0xMS0xMSAgQ2hhcmxlcyBXaWxzb24gIDxjd2lsc29uQGVjZS5nYXRlY2guZWR1PgoKCSogcGUtZGxsLmMgKGF1dG9maWx0ZXJfbGlibGlzdCk6IGFkZCBsaWJtaW5nd2V4IGFuZCBsaWJnY2ogdG8gdGhlIGxpc3QKCW9mIHJlc3RyaWN0ZWQgYXV0by1leHBvcnQgbGlicy4KCjIwMDItMTEtMTEgIENoYXJsZXMgV2lsc29uICA8Y3dpbHNvbkBlY2UuZ2F0ZWNoLmVkdT4KCgkqIHBlLWRsbC5jIChhdXRvZmlsdGVyX2xpYmxpc3QpOiBHZW5lcmFsaXplIGxpYnJhcnkgbmFtZXMgdG8gY2F0Y2ggbW9yZQoJY3JlYXRpdmUgbGlicmFyeSBuYW1pbmcgaW5zdGFuY2VzIGxpa2UsIGUuZy4sIGxpYnN0ZGMrKy0yLmEuCgoyMDAyLTExLTA2ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVtdWxwYXJhbXMvZWxmMzJidHNtaXBuMzIuc2ggKFRFWFRfRFlOQU1JQyk6IERlZmluZS4KCSogZW11bHBhcmFtcy9lbGY2NGJ0c21pcC5zaCAoVEVYVF9EWU5BTUlDKTogTGlrZXdpc2UuCgoyMDAyLTExLTA3ICBEYW5ueSBTbWl0aCAgPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZGVmZmlsZXAueSAoZGVmX2xleCk6IEhhbmRsZSAnQCcgYXMgZmlyc3QgY2hhcmFjdGVyIG9mIGFuIElELgoJKiBwZS1kbGwuYyAoYXV0by1leHBvcnQpOiBGaWx0ZXIgb24gIl9pbXBfIiBwcmVmaXgsIG5vdCAiX2ltcF9fIi4KCShtYWtlX29uZSk6IERvbid0IHByZWZpeCBkZWNvcmF0ZWQgZmFzdGNhbGwgc3ltYm9scyB3aXRoICdfJy4KCShwZV9wcm9jZXNzX2ltcG9ydF9kZWZzKTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9wZS5lbSAocGVfZml4dXBfc3RkY2FsbHMpOiBEb24ndCBmaXh1cCBmYXN0Y2FsbAoJc3ltYm9scyB0byBjZGVjbCBuYW1lcyBvciB2aXNlLXZlcnNhLgoKMjAwMi0xMC0xMyAgRXJpYyBLb2hsICA8ZWtvaGxAcnotb25saW5lLmRlPgoKCSogcGUtZGxsLmMgKHByb2Nlc3NfZGVmX2ZpbGUpOiBIYW5kbGUgZmFzdGNhbGwgc3ltYm9scyB3aGVuCglnZW5lcmF0aW5nIHVuZGVjb3JhdGVkIGFsaWFzZXMuICBEb24ndCBwcmVmaXggZGVjb3JhdGVkIGZhc3RjYWxsCglzeW1ib2xzIHdpdGggJ18nLgoJKGZpbGxfZXhwb3J0ZWRfb2Zmc2V0cyk6IERvbid0IHByZWZpeCBkZWNvcmF0ZWQgZmFzdGNhbGwgc3ltYm9scwoJd2l0aCAnXycuCgoyMDAyLTEwLTI5ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGVtdWx0ZW1wbC9haXguZW06IFVzZSBpbmNsdWRlIDw+IGZvciBnZW5lcmF0ZWQgaGVhZGVycy4KCSogZW11bHRlbXBsL2Jlb3MuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvZWxmMzIuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvcGUuZW06IExpa2V3aXNlLgoJKiBsZGN0b3IuYzogTGlrZXdpc2UuCgkqIGxkZXhwLmM6IExpa2V3aXNlLgoJKiBsZGZpbGUuYzogTGlrZXdpc2UuCgkqIGxkbGFuZy5jOiBMaWtld2lzZS4KCSogbGRsZXguYzogTGlrZXdpc2UuCgkqIGxkbGV4Lmw6IExpa2V3aXNlLgoJKiBsZG1haW4uYzogTGlrZXdpc2UuCgkqIGxkbWlzYy5jOiBMaWtld2lzZS4KCSogbGR3cml0ZS5jOiBMaWtld2lzZS4KCSogbGV4c3VwLmM6IExpa2V3aXNlLgoJKiBtcmkuYzogTGlrZXdpc2UuCgkqIHBlLWRsbC5jOiBMaWtld2lzZS4KCjIwMDItMTAtMjMgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZW11bHRlbXBsL2VsZjMyLmVtIChwbGFjZV9vcnBoYW4pOiBEb24ndCBwdXQgbm9uLWFsbG9jYXRlZCAucmVsKgoJc2VjdGlvbnMgaW50byAucmVseyxhfS5keW4uCgoyMDAyLTEwLTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogbGV4c3VwLmMgKE9QVElPTl9OT19PTUFHSUMpOiBEZWZpbmUuCgkobGRfb3B0aW9ucyk6IEFkZCAibm8tb21hZ2ljIiBvcHRpb24uCgkocGFyc2VfYXJncyk6IFBhcnNlIC0tbm8tb21hZ2ljLgoJKiBsZC50ZXhpbmZvOiBEb2N1bWVudCAtLW5vLW9tYWdpYy4KCSogTkVXUzogTWVudGlvbiBuZXcgb3B0aW9uLgoKMjAwMi0xMC0yMSAgRGFubnkgU21pdGggIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmVnLm5ldD4KCgkqIHNjcmlwdHRlbXBsL3BlLnNjIChfX1JVTlRJTUVfUFNFVURPX1JFTE9DX0xJU1RfXywKCV9fUlVOVElNRV9QU0VVRE9fUkVMT0NfTElTVF9FTkRfXyk6IEFkZCBvbmx5IHdoZW4gcmVsb2NhdGluZy4KCjIwMDItMTAtMjIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZW11bHBhcmFtcy9lbGYzMmJtaXBuMzItZGVmcy5zaDogU2V0IEVMRlNJWkUgYWNjb3JkaW5nIHRvCgllbXVsYXRpb24gbmFtZS4gIFNldCBMSUJfUEFUSCBvbmx5IGZvciBuYXRpdmUgdG9vbHMsIGFuZAoJc2VhcmNoIHRoZSBBQkktc3BlY2lmaWMgdmVyc2lvbnMgb2YgTkFUSVZFX0xJQl9ESVJTIGJlZm9yZSB0aGUKCS4uLi9saWIgdmFyaWFudHMsIG5vdCBpbnN0ZWFkIG9mIHRoZW0uICBNb3N0bHkgY29waWVkIGZyb20uLi4KCSogZW11bHBhcmFtcy9lbGYzMnBwYy5zaDogLi4uIGhlcmUuICBGaXhlZCB0eXBvLgoJKiBlbXVscGFyYW1zL2VsZjY0Ym1pcC1kZWZzLnNoOiBCYWNrZWQgb3V0LgoJKiBlbXVscGFyYW1zL2VsZjY0Ym1pcC5zaDogSW1wb3J0IGVsZjMyYm1pcG4zMi1kZWZzLnNoIGFnYWluLgoJKiBlbXVscGFyYW1zL2VsZjY0YnRzbWlwLnNoOiBMaWtld2lzZS4KCShEQVRBX0FERFIsIE5PTlBBR0VEX1RFWFRfU1RBUlRfQUREUiwgU0hMSUJfVEVYVF9TVEFSVF9BRERSLAoJVEVYVF9EWU5BTUlDKTogUmVtb3ZlZC4KCjIwMDItMTAtMTcgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZW11bHBhcmFtcy9lbGYzMmJtaXBuMzItZGVmcy5zaCAoTElCX1BBVEgpOiBTZXQgdG8gL3Vzci9saWIzMi4KCShHRU5FUkFURV9TSExJQl9TQ1JJUFQpOiBTZXQgdG8geWVzLgoJKEVYRUNVVEFCTEVfU1lNQk9MUywgV1JJVEFCTEVfUk9EQVRBKTogTW92ZWQgdG8uLi4KCSogZW11bHBhcmFtcy9lbGYzMmJtaXBuMzIuc2g6IGhlcmUuCgkoR0VORVJBVEVfU0hMSUJfU0NSSVBUKTogRGVsZXRlZCBhcyByZWR1bmRhbnQuCgkqIGVtdWxwYXJhbXMvZWxmMzJidHNtaXBuMzIuc2g6IERlbGV0ZSByZWR1bmRhbnQgdW5zZXRzLgoJKiBlbXVscGFyYW1zL2VsZjY0Ym1pcC1kZWZzLnNoOiBOZXcgZmlsZS4gIEV4dGVuZAoJZWxmMzJibWlwbjMyLWRlZnMuc2ggYnkgb3ZlcmlkaW5nIEVMRlNJWkUgYW5kIExJQl9QQVRILgoJKiBlbXVscGFyYW1zL2VsZjY0Ym1pcC5zaDogQnJpbmcgaW4gZGVmaW5pdGlvbnMgZnJvbQoJZWxmNjRibWlwLWRlZnMuc2guCgkoRUxGU0laRSwgR0VORVJBVEVfU0hMSUJfU0NSSVBULCBMSUJfUEFUSCk6IERlbGV0ZSByZWR1bmRhbnQKCXNldHRpbmdzLgoJKFdSSVRBQkxFX1JPREFUQSk6IE1vdmVkIGZyb20gZWxmMzJibWlwbjMyLWRlZnMuc2guCgkqIGVtdWxwYXJhbXMvZWxmNjRidHNtaXAuc2g6IEJyaW5nIGluIGRlZmluaXRpb25zIGZyb20KCWVsZjY0Ym1pcC1kZWZzLnNoLgoJKEVMRlNJWkUsIEdFTkVSQVRFX1NITElCX1NDUklQVCk6IERlbGV0ZSwgcmVkdW5kYW50LgoJKEVYRUNVVEFCTEVfU1lNQk9MUywgV1JJVEFCTEVfUk9EQVRBKTogRGVsZXRlIHJlZHVuZGFudCB1bnNldHMuCgoyMDAyLTEwLTE2ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS50Z3QgKHMzOTB4LSotbGludXgqKTogQWRkIGVsZl9zMzkwIGVtdWxhdGlvbi4KCShzMzkwLSotbGludXgqKTogQWRkIGVsZjY0X3MzOTAgZW11bGF0aW9uIGlmIHdhbnQ2NC4KCSogZW11bHBhcmFtcy9lbGY2NF9zcGFyYy5zaCAoTElCX1BBVEgpOiBVcGRhdGUgdG8gbWF0Y2ggMjAwMi0wNS0yMgoJZ2Vuc2NyaXB0LnNoIGNoYW5nZXMuCgkqIGVtdWxwYXJhbXMvZWxmX3g4Nl82NC5zaCAoTElCX1BBVEgpOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGY2NF9zMzkwLnNoIChMSUJfUEFUSCk6IFNldCB1cCBuYXRpdmUgNjQgYml0IGRpcnMuCgoyMDAyLTEwLTE1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRsYW5nLmMgKGxvYWRfc3ltYm9scyk6IFJldmVydCBsYXN0IGNoYW5nZS4KCjIwMDItMTAtMTQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsZGxhbmcuYyAobG9hZF9zeW1ib2xzKTogRG9uJ3QgY2FsbCBiZmRfbGlua19hZGRfc3ltYm9scyB3aGVuCglqdXN0X3N5bXNfZmxhZy4KCShsYW5nX3JlYXNvbmFibGVfZGVmYXVsdHMpOiBEb24ndCBjb21wYXJlIGFnYWluc3QgZmFsc2UuCgkoc2l6ZV9pbnB1dF9zZWN0aW9uKTogTGlrZXdpc2UuCgkobGFuZ19zaXplX3NlY3Rpb25zXzEpOiBMaWtld2lzZS4KCShsYW5nX2RvX2Fzc2lnbm1lbnRzKTogTGlrZXdpc2UuCgkobGFuZ19hZGRfb3V0cHV0KTogTGlrZXdpc2UuCgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBsZHZlci5jOiAjaW5jbHVkZSAiYmZkdmVyLmgiLgoKMjAwMi0xMC0xMyAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBzY3JpcHR0ZW1wbC9lbGZtNjhoYzExLnNjOiBVc2UgS0VFUCBmb3IgLnZlY3RvcnMsIC5pbnN0YWxsTiwKCS5maW5pTiBzZWN0aW9uLgoJKiBzY3JpcHR0ZW1wbC9lbGZtNjhoYzEyLnNjOiBMaWtld2lzZS4KCjIwMDItMTAtMTEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBwZS1kbGwuYyAobWFrZV9pbXBvcnRfZml4dXBfbWFyayk6IEF2b2lkIHR5cGUtcHVubmVkIHBvaW50ZXIuCgoJKiBsZGdyYW0ueSAobWVtb3J5X3NwZWMpOiBQcm92aWRlIGVtcHR5IGFjdGlvbi4KCShzZWN0aW9uIDxOQU1FPik6IExpa2V3aXNlLgoKMjAwMi0xMC0xMCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBsZGZpbGUuYyAobGRmaWxlX3RyeV9vcGVuX2JmZCk6IFdoZW4gc2VhcmNoaW5nIHNraXAgbGlua2VyIHNjcmlwdHMgaWYKCXRoZXkgaGF2ZSBPVVRQVVRfRk9STUFUIG5vdCBtYXRjaGluZyBhY3R1YWwgb3V0cHV0IGZvcm1hdC4KCSogbGRsYW5nLmMgKGxhbmdfZ2V0X291dHB1dF90YXJnZXQpOiBOZXcgZnVuY3Rpb24uCgkob3Blbl9vdXRwdXQpOiBVc2UgaXQuCgkqIGxkbGFuZy5oIChsYW5nX2dldF9vdXRwdXRfdGFyZ2V0KTogTmV3IHByb3RvdHlwZS4KCjIwMDItMTAtMTAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKG91dHB1dF9yZWxfZmluZCk6IFByZWZlciAucmVsIHNjcmlwdCBzZWN0aW9ucwoJd2hlbiBvcnBoYW4gaXMgLnJlbCwgLnJlbGEgd2hlbiBvcnBoYW4gaXMgLnJlbGEuCgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1fcGxhY2Vfb3JwaGFuKTogSGFuZGxlIGNvbWJyZWxvYyAucmVsKiBjYXNlCglmaXJzdC4gIFJlbW92ZSBvdXRzZWNuYW1lIHZhci4KCjIwMDItMTAtMDkgIFJpY2hhcmQgU2hhbm4gPHJpY2hhcmQuc2hhbm5Ac3VwZXJoLmNvbT4KCSAgICBTdGVwaGVuIENsYXJrZSA8c3RlcGhlbi5jbGFya2VAc3VwZXJoLmNvbT4KCgkqIE1ha2VmaWxlLmFtOiBBZGQgZXNoZWxmMzJfbGludXgubyBhbmQKCWVzaGxlbGYzMl9saW51eC5vLCBuZXcgZW11bGF0aW9ucyBmb3Igc2g2NCBMaW51eC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS50Z3Q6IEFkZCBzaDY0ZWItKi1saW51eCogYW5kIHNoNjQtKi1saW51eCogZW11bGF0aW9ucy4KCSogZW11bHBhcmFtcy9zaGVsZjMyX2xpbnV4LnNoOiBOZXcgZmlsZS4KCSogZW11bHBhcmFtcy9zaGxlbGYzMl9saW51eC5zaDogTmV3IGZpbGUuCgoyMDAyLTEwLTA4ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGxkbGFuZy5jIChsYW5nX2ZpbGVfZXhpc3QpOiBSZW1vdmVkLgoJKG5ld19hZmlsZSk6IFJldmVydCB0aGUgbGFzdCBjaGFuZ2UuCgkqIGxkbGFuZy5oIChsYW5nX2ZpbGVfZXhpc3QpOiBSZW1vdmVkLgoJKiBsZXhzdXAuYyAocGFyc2VfYXJncyk6IFJldmVydCB0aGUgbGFzdCBjaGFuZ2UuCgoyMDAyLTEwLTA3ICBSYWxmIEhhYmFja2VyICA8UmFsZi5IYWJhY2tlckBmcmVlbmV0LmRlPgoKCSogcGUtZGxsLmNjIChhdXRvZmlsdGVyX3N5bWJvbHByZWZpeGxpc3QpOiBEb24ndCByZS1leHBvcnQKCWF1dG8taW1wb3J0IHN5bWJvbHMuCgkobWFrZV9vbmUpOiBDcmVhdGUgX25tXzxzeW1ib2w+IGZvciBkYXRhIG9ubHkuCgoyMDAyLTEwLTA1ICBFbGlhcyBBdGhhbmFzb3BvdWxvcyAgPGVhdGhhbkBvdGVuZXQuZ3I+CgoJKiBsZGxhbmcuYyAobGFuZ19maWxlX2V4aXN0KTogTmV3IGZ1bmN0aW9uLgoJKG5ld19hZmlsZSk6IEFib3J0IGlmIHRoZSBmaWxlbmFtZSB0byBiZSBhZGRlZCBtYXRjaGVzIHRoZSBsaW5rZXIKCW91dHB1dCBmaWxlbmFtZS4KCSogbGRsYW5nLmg6IEFkZCBwcm90b3R5cGUgZm9yIGxhbmdfZmlsZV9leGlzdC4KCSogbGV4c3VwLmMgKHBhcnNlX2FyZ3MpOiBBYm9ydCBpZiB0aGUgb3V0cHV0IGZpbGVuYW1lIG1hdGNoZXMKCW9uZSBvZiB0aGUgaW5wdXQgZmlsZW5hbWVzLgoKMjAwMi0xMC0wMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVtdWxwYXJhbXMvZWxmNjRwcGMuc2ggKE1BWFBBR0VTSVpFKTogU2V0IHRvIDB4MTAwMDAuCgoyMDAyLTA5LTMwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogc2NyaXB0dGVtcGwvZWxmZDMwdi5zYzogT3JkZXIgcmVsb2Mgc2VjdGlvbnMgcGxhY2luZyAucGx0IGxhc3QuCgkqIHNjcmlwdHRlbXBsL2VsZm02OGhjMTEuc2M6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9lbGZtNjhoYzEyLnNjOiBMaWtld2lzZS4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAob3V0cHV0X3JlbF9maW5kKTogQWx3YXlzIHBsYWNlIG9ycGhhbiBsb2FkYWJsZQoJcmVsb2Mgc2VjdGlvbnMganVzdCBiZWZvcmUgLnJlbC5wbHQvLnJlbGEucGx0LgoJKGdsZCR7RU1VTEFUSU9OX05BTUV9X3BsYWNlX29ycGhhbiA8LnJlbD4pOiBSZW1vdmUgY29tYnJlbG9jIGNvZGUuCglPbmx5IHB1dCBsb2FkYWJsZSByZWxvYyBzZWN0aW9ucyBpbiBob2xkX3JlbC4KCjIwMDItMDktMjkgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZW11bHBhcmFtcy9lbGYzMnBwYy5zaCAoT1RIRVJfR09UX1JFTE9DX1NFQ1RJT05TKTogTmV3LgoKMjAwMi0wOS0yNSAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJRnJvbSAiQW5pdGEgS3Vsa2FybmkiIDxBbml0YUtAa3BpdC5jb20+CgkqIHNjcmlwdHRlbXBsL3NoLnNjOiBIYW5kbGUgLmVoX2ZyYW1lKiBhbmQgLmdjY19leGMqCglzZWN0aW9ucy4KCjIwMDItMDktMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBnZW5zY3JpcHRzLnNoIChTRUdNRU5UX1NJWkUpOiBVc2UgTUFYUEFHRVNJWkUgYmVmb3JlCglUQVJHRVRfUEFHRV9TSVpFLgoJKiBzY3JpcHR0ZW1wbC9lbGYuc2MgKERBVEFfU0VHTUVOVF9BTElHTik6IEluY29ycG9yYXRlCglTRUdNRU5UX1NJWkUgYWxpZ25tZW50LgoJKiBlbXVscGFyYW1zL2VsZjY0cHBjLnNoIChEQVRBX0FERFIpOiBEZWxldGUuCgkoU0VHTUVOVF9TSVpFKTogRGVmaW5lLgoKCSogbGRleHAuYyAoZm9sZF91bmFyeSk6IE5ldy4gIFNwbGl0IG91dCBmcm9tIGV4cF9mb2xkX3RyZWUuCgkoZm9sZF9iaW5hcnkpOiBDb3JyZWN0IGFicyAtIG5vbi1hYnMgY2FzZS4KCShmb2xkX3RyaW5hcnkpOiBOZXcuICBTcGxpdCBvdXQgZnJvbSBleHBfZm9sZF90cmVlLgoKMjAwMi0wOS0yNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVtdWxwYXJhbXMvZWxmNjRwcGMuc2ggKERBVEFfQUREUik6IERlZmluZS4KCSogZW11bHBhcmFtcy9lbGY2NF9haXguc2ggKERBVEFfQUREUik6IERvbid0IHVzZSBhIGZpeGVkIGFkZHJlc3MKCWZvciBzdGFydCBvZiAuZGF0YSwgaW5zdGVhZCBhbGlnbiB1cCB0byAyNTZNIGJvdW5kYXJ5LgoJKiBzY3JpcHR0ZW1wbC9haXguc2M6IExpa2V3aXNlLgoKMjAwMi0wOS0yMiAgTWFyayBFbGJyZWNodCAgPHNub3diYWxsM0Bzb2Z0aG9tZS5uZXQ+CgoJKiBzY3JpcHR0ZW1wbC9pMzg2Z28zMi5zYzogSGFuZGxlIGJzcyB1bmlxdWUgc2VjdGlvbnMuCgoyMDAyLTA5LTIxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRtaXNjLmMgKHZmaW5mbyA8JUMsJUQsJUc+KTogQWx3YXlzIG91dHB1dCBiZmQsIHNlY3Rpb24gYW5kIG9mZnNldC4KCjIwMDItMDktMTcgIFN0YW4gQ294ICA8c2NveEByZWRoYXQuY29tPgoKCSogZW11bHBhcmFtcy9lbGYzMmJtaXBuMzItZGVmcy5zaDogTmV3IGZpbGUuCgkqIGVtdWxwYXJhbXMvZWxmMzJibWlwbjMyLnNoOiBVc2UgZWxmMzJibWlwbjMyLWRlZnMuc2guCgkqIGVtdWxwYXJhbXMvZWxmMzJidHNtaXBuMzIuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjY0Ym1pcC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmNjRidHNtaXAuc2g6IExpa2V3aXNlLgoKMjAwMi0wOS0xNiAgQnJ1bm8gSGFpYmxlICA8YnJ1bm9AY2xpc3Aub3JnPgoKCSogZW11bHBhcmFtcy9lbGZfaTM4Nl9mYnNkLnNoOiBTZXQgT1VUUFVUX0ZPUk1BVCB0bwoJZWxmMzItaTM4Ni1mcmVlYnNkLgoJKiBlbXVscGFyYW1zL2VsZjY0YWxwaGFfZmJzZC5zaDogU2V0IE9VVFBVVF9GT1JNQVQgdG8KCWVsZjY0LWFscGhhLWZyZWVic2QuCgoyMDAyLTA5LTExICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogTkVXUzogTmV3IFRJIHBvcnQgc3VwcG9ydHMgYm90aCBDNHggYW5kIEMzeCBzZXJpZXMgb2YgRFNQcy4KCgkqIHBvL3RyLnBvOiBVcGRhdGVkIFR1cmtpc2ggdHJhbnNsYXRpb24uCgoyMDAyLTA5LTA2ICBKZWZmcmV5IEEgTGF3ICAobGF3QHJlZGhhdC5jb20pCgoJKiBjb25maWd1cmUudGd0IChoODMwMC0qLWhtcyosIGg4NTAwLSotaG1zKik6IFJlc3RvcmUuCgoyMDAyLTA5LTAyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogc2NyaXB0dGVtcGwvdjg1MC5zYzogQWRkIEVYVEVSTiByZWZlcmVuY2VzIHRvIF9fY3RicG0gX19ncCBhbmQKCV9fZXAuCgkqIGVtdWxwYXJhbXMvdjg1MC5zaCAoVEVNUExBVEVfTkFNRSk6IERlZmluZS4KCjIwMDItMDgtMzAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBzY3JpcHR0ZW1wbC9lbGZkMTB2LnNjIChNRU1PUlkpOiBSZW1vdmUgVU5JRklFRCwgaXQgaXMgbm90Cgl1c2VkLiAgQ2hhbmdlIElOU04gdG8gc3RhcnQgYXQgMHgwMTAwMDAwMCBhbmQgZXh0ZW5kIGZvcgoJMjU2SyAoaWdub3JpbmcgaG9sZXMpLiAgU3RhcnQgdGhlIFNUQUNLIG9uIGEgd29yZCBhbGlnbmVkCglib3VuZGFyeS4KCSgucm9kYXRhKTogU3RhcnQgaXQgYXQgdGhlIFJFQURPTkxZX1NUQVJUX0FERFIuCgoyMDAyLTA4LTMwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHBhcmFtcy9lbGYzMnBwYy5zaCAoQVJDSCk6IFNldCB0byAicG93ZXJwYzpjb21tb24iLgoKMjAwMi0wOC0yOCAgU3ZlaW4gRS4gU2VsZGFsICA8U3ZlaW4uU2VsZGFsQHNvbGlkYXMuY29tPgoKCSogTWFrZWZpbGUuYW06IEFkZCBldGljNHhjb2ZmLm8gaW4gQUxMX0VNVUxBVElPTlMgbGlzdCBhbmQKCWFkZGVkIG1ha2VmaWxlIHRhcmdldHMgZm9yIHRoaXMgZmlsZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS50Z3Q6IEFkZGVkIHRpYzR4LWNvZmYgYW5kIGM0eC1jb2ZmIGVtdWxhdGlvbnMuCgkqIE5FV1M6IE1lbnRpb24gbmV3IHBvcnQuCgoyMDAyLTA4LTI4ICBNaWNoYWVsIEhheWVzIDxtLmhheWVzQGVsZWMuY2FudGVyYnVyeS5hYy5uej4KCgkqIGVtdWxwYXJhbXMvdGljM3hjb2ZmLnNoOiBOZXcgZmlsZS4KCSogZW11bHBhcmFtcy90aWM0eGNvZmYuc2g6IE5ldyBmaWxlLgoJKiBzY3JpcHR0ZW1wbC90aWMzeGNvZmYuc2M6IE5ldyBmaWxlLgoJKiBzY3JpcHR0ZW1wbC90aWM0eGNvZmYuc2M6IE5ldyBmaWxlLgoKMjAwMi0wOC0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVtdWx0ZW1wbC9haXguZW0gKGdsZCR7RU1VTEFUSU9OX05BTUV9X3BhcnNlX2FyZ3MpOiBSZXBsYWNlIHN0cnRvbGwsCglzdHJ0b3VsIGFuZCBzdHJ0b3VsbCB3aXRoIGJmZF9zY2FuX3ZtYS4KCShnbGQke0VNVUxBVElPTl9OQU1FfV9yZWFkX2ZpbGUpOiBMaWtld2lzZS4KCjIwMDItMDgtMjggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWd1cmUudGd0OiBSZW1vdmUgaDhbMzVdMDAtKi1obXMqLiAgQWRkIGg4NTAwLSotcnRlbXMqLgoKMjAwMi0wOC0yNyAgRWdvciBEdWRhICA8ZGVvQGxvZ29zLW0ucnU+CgoJKiBzY3JpcHR0ZW1wbC9wZS5zYzogSGFuZGxlIC5yZGF0YV9ydW50aW1lX3BzZXVkb19yZWxvYyBzZWN0aW9ucy4KCUFkZCBzeW1ib2xzIGZvciBhcHBsaWNhdGlvbiB0byBhY2Nlc3MgdGhlbS4KCjIwMDItMDgtMjcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbXVsdGVtcGwvYXJtZWxmLmVtOiAgUmV2ZXJ0IHRoaXMgcGF0Y2gsIGl0IGlzIG5vdCBuZWVkZWQuCgoJMjAwMi0wOC0yMiAgQWRhbSBOZW1ldCAgPGFuZW1ldEBsbnh3LmNvbT4KCjIwMDItMDgtMjAgRGFuIEtlZ2VsIDxkYW5rQGtlZ2VsLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogYWRkZWQgLS13aXRoLWxpYi1wYXRoIGFyZ3VtZW50IHRvIGxkJ3MgY29uZmlndXJlCgl0byBzZXQgTElCX1BBVEguCgkqIGxkL05FV1M6IERvY3VtZW50IG5ldyBzd2l0Y2guCgkqIGxkL1JFQURNRTogTWVudGlvbiBuZXcgc3dpdGNoLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKCUJhc2VkIG9uIHRoaXMgcGF0Y2g6CgkyMDAxLTA0LTI1ICBDaHJpc3RvcGhlciBGYXlsb3IgPGNnZkBjeWdudXMuY29tPgoKCSogTWFrZWZpbGUuaW4gKExJQl9QQVRIKTogTWFrZSBjb25maWd1cmFibGUuCgkoR0VOU0NSSVBUUyk6IFNldCBMSUJfUEFUSCBpbiBlbnZpcm9ubWVudC4KCSogY29uZmlndXJlLmluOiBTdWJzdGl0dXRlIExJQl9QQVRILgoKMjAwMi0wOC0yMiAgQWRhbSBOZW1ldCAgPGFuZW1ldEBsbnh3LmNvbT4KCgkqIGVtdWx0ZW1wbC9hcm1lbGYuZW06IEluY2x1ZGUgZWxmLWJmZC5oIGFuZCBlbGYvYXJtLmguCgkoYXJtX2VsZl9maW5pc2gpOiBTZXQgdGhlIGxhc3QgYml0IG9mIERUX0lOSVQgYW5kIERUX0ZJTkkKCWRlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiB0aGUgZnVuY3Rpb24uCgkoYXJtX2VsZl9jb252ZXJ0X3RodW1iX3N5bWJvbF90b19hZGRyZXNzKTogTmV3IGZ1bmN0aW9uLgoKMjAwMi0wOC0yMiAgR3JhZW1lIFBldGVyc29uICA8Z3BAcW54LmNvbT4KCgkqIE1ha2VmaWxlLmFtOiBBZGQgZXNoe2x9ZWxmX250by5vIGZpbGVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLnRndDogQWRkIHN1cHBvcnQgZm9yIHNoLSoqLW50byogdGFyZ2V0cy4KCSogZW11bHBhcmFtcy9zaGVsZl9udG8uc2g6IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL3NobGVsZl9udG8uc2g6IE5ldyBmaWxlLgoKMjAwMi0wOC0yMSAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlQGhpYXVseTEuaGlhLm5yYy5jYT4KCgkqIGxkbGFuZy5jIChvZmZzZXRvZik6IERlZmluZSBpZiBub3QgZGVmaW5lZC4KCjIwMDItMDgtMTQgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogY29uZmlndXJlLnRndDogQWx3YXlzIGVuYWJsZSA2NGJpdCBlbXVsYXRpb25zIGZvciAzMmJpdAoJTGludXgvbWlwcy4KCjIwMDItMDgtMTMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVscGFyYW1zL2VsZjMyX2RseC5zaCAoVEFSR0VUX1BBR0VfU0laRSk6IFNldCB0byAxLgoJKE1BWFBBR0VTSVpFKTogU2V0IHRvIDEuCgoJKiBsZC5oIChBTElHTl9OKTogRGVsZXRlLgoJKiBsZGV4cC5oIChhbGlnbl9uKTogRGVjbGFyZS4KCSogbGRleHAuYyAoYWxpZ25fbik6IE5ldyBmdW5jdGlvbi4KCShmb2xkX2JpbmFyeSk6IFVzZSBhbGlnbl9uIGluc3RlYWQgb2YgQUxJR05fTi4KCShleHBfZm9sZF90cmVlKTogTGlrZXdpc2UuCgkqIGxkbGFuZy5jIChsYW5nX3NpemVfc2VjdGlvbnNfMSk6IExpa2V3aXNlLgoJKGxhbmdfb25lX2NvbW1vbik6IExpa2V3aXNlLgoJKiBsZC50ZXhpbmZvIChBTElHTik6IFJlbW92ZSBwb3dlciBvZiAyIHJlc3RyaWN0aW9uLgoKMjAwMi0wNy0zMSAgR3JhZW1lIFBldGVyc29uICA8Z3BAcW54LmNvbT4KCgkqIGNvbmZpZ3VyZS50Z3Q6IEFkZCBzdXBwb3J0IGZvciBwb3dlcnBje2xlfS0qLW50byogdGFyZ2V0cy4KCSogTWFrZWZpbGUuYW06IEFkZCBlZWxmMzJ7bH1wcGNudG8ubyBmaWxlcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGVtdWxwYXJhbXMvZWxmMzJscHBjbnRvLnNoOiBOZXcgZmlsZS4KCSogZW11bHBhcmFtcy9lbGYzMnBwY250by5zaDogTmV3IGZpbGUuCgoyMDAyLTA4LTA3ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGxkLnRleGluZm86IERvY3VtZW50IC0tbm8tdW5kZWZpbmVkLXZlcnNpb24uCgoJKiBsZGxhbmcuYyAobGFuZ19uZXdfdmVyc19wYXR0ZXJuKTogU2V0IHRoZSBgc3ltdmVyJyBhbmQKCWBzY3JpcHQuJyBmaWVsZHMgdG8gMC4KCgkqIGxkbWFpbi5jIChtYWluKTogSW5pdGlhbGl6ZSB0aGUgYWxsb3dfdW5kZWZpbmVkX3ZlcnNpb24gdG8KCXRydWUuCgoJKiBsZXhzdXAuYyAoT1BUSU9OX05PX1VOREVGSU5FRF9WRVJTSU9OKTogTmV3LgoJKGxkX29wdGlvbnMpOiBBZGQgLS1uby11bmRlZmluZWQtdmVyc2lvbi4KCShwYXJzZV9hcmdzKTogU3VwcG9ydCBPUFRJT05fTk9fVU5ERUZJTkVEX1ZFUlNJT04uCgoyMDAyLTA4LTA3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZW11bHRlbXBsL2FybWVsZi5lbSAoYXJtX2VsZl9iZWZvcmVfYWxsb2NhdGlvbik6IE9ubHkgc2VhcmNoIGZvcgoJYW4gaW50ZXJ3b3JraW5nIGJmZCBpZiB0aGVyZSBhcmUgaW5wdXQgYmZkcy4gKDEwNzUwMSkKCjIwMDItMDgtMDYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvYWl4LmVtIChnbGQqX2JlZm9yZV9wYXJzZSk6IFNldCBkZWZhdWx0IGFyY2guICBSZXZlcnRzCgkyMDAyLTA1LTEwIGNoYW5nZS4KCjIwMDItMDgtMDEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbXVscGFyYW1zL2FybWVsZi5zaDogUmV2ZXJ0IHByZXZpb3VzIGRlbHRhLgoJKiBzY3JpcHR0ZW1wbC9lbGYuc2M6IFJldmVydCBwcmV2aW91cyBkZWx0YS4KCjIwMDItMDctMzEgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogY29uZmlndXJlLnRndCAocG93ZXJwYyotKi1saW51eCopOiBFbmFibGUgZWxmNjRwcGMgZm9yCgktLWVuYWJsZS02NC1iaXQtYmZkLgoKMjAwMi0wNy0zMSAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBjb25maWd1cmUudGd0OiBFbmFibGUgeDg2LTY0IGVtdWxhdGlvbiBmb3IgTGludXgvaTM4NiBpZgoJNjRiaXQgQkZEIGlzIHNlbGVjdGVkLgoKMjAwMi0wNy0zMSAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBjb25maWd1cmUudGd0OiBFbmFibGUgNjRiaXQgZW11bGF0aW9ucyBmb3IgMzJiaXQgTGludXgvbWlwcwoJaWYgNjRiaXQgQkZEIGlzIHNlbGVjdGVkLgoKMjAwMi0wNy0zMSAgSWFuIERhbGwgIDxpYW5Ac2lieWwuYmV3YXJlLmRyb3BiZWFyLmlkLmF1PgoKCSogZW11bHRlbXBsL25ldGJzZC5lbSAoTERFTVVMX0JFRk9SRV9QQVJTRSk6IE5ldyBmaWxlIHRvIGN1c3RvbSBzZXQKCWxpbmtfaW5mby5jb21tb25fc2tpcF9hcl9heW1ib2xzLgoJKiBlbXVscGFyYW1zL25zMzJrbmJzZC5zaCAoRVhUUkFfRU1fRklMRSk6IFJlZmVyIHRvIGV4dHJhIGZpbGUuCgoJKiBsZG1haW4uYyAobWFpbik6IEluaXRpYWxpemUgbmV3IGZpZWxkCglsaW5rX2luZm8uY29tbW9uX3NraXBfYXJfYXltYm9scy4KCjIwMDItMDctMzEgIEFkYW0gTmVtZXQgIDxhbmVtZXRAbG54dy5jb20+CgoJKiBlbXVscGFyYW1zL2FybWVsZi5zaCAoT1RIRVJfUExUX1NFQ1RJT05TKTogTmV3IHZhcmlhYmxlLiAgU2V0IGl0Cgl0byAucGx0LnRodW1iLgoJKiBzY3JpcHR0ZW1wbC9lbGYuc2M6IENvbW1lbnQgaXQuICBVc2UgdGhlIHNhbWUgd2F5IGFzICR7UExUfSBpcwoJdXNlZC4KCjIwMDItMDctMzEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBORVdTOiBSZXRyb2FjdGl2ZWx5IGFkZCBlbnRyeSBmb3IgTGFycyBCcmlua2hvZmYncyBjb250cmlidXRpb24KCW9mIHRoZSBQRFAtMTEgYW5kIDIuMTFCU0QgYS5vdXQgc3VwcG9ydC4KCjIwMDItMDctMzEgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBNYWtlZmlsZS5hbSAoZWVsZjMyYnRzbWlwbjMyLm8sIGVlbGYzMmx0c21pcG4zMi5vKTogTmV3IGVtdWxhdGlvbnMKCWZvciBuMzIgQUJJIHN1cHBvcnQuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmUudGd0IChtaXBzNjQqZWwtKi1saW51eC1nbnUqLG1pcHM2NCotKi1saW51eC1nbnUqKTogQWRkCgluMzIgQUJJIGVtdWxhdGlvbnMgZm9yIHRoZXNlIDY0IGJpdCB0YXJnZXRzLgoJKiBlbXVscGFyYW1zL2VsZjMyYm1pcG4zMi5zaDogRXhwYW5kIGNvbW1lbnQuCgkqIGVtdWxwYXJhbXMvZWxmMzJidHNtaXBuMzIuc2g6IE5ldyBmaWxlLCBmb3IgdHJhZGl0aW9uYWwgYmlnIGVuZGlhbgoJbjMyIEFCSS4KCSogZW11bHBhcmFtcy9lbGYzMmx0c21pcG4zMi5zaDogTGlrZXdpc2UgZm9yIGxpdHRsZSBlbmRpYW4uCgoyMDAyLTA3LTMwICBHcmFlbWUgUGV0ZXJzb24gIDxncEBxbnguY29tPgoKCSogY29uZmlndXJlLnRndDogQWRkIHN1cHBvcnQgZm9yIGFybS0qLW50byB0YXJnZXQuCgkqIE1ha2VmaWxlLmFtOiBBZGQgZWFybW50by5vIGZpbGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBORVdTOiBNZW50aW9uIHBvcnQgb2YgQVJNIHN1cHBvcnQgdG8gUU5YLgoJKiBlbXVscGFyYW1zL2FybW50by5zaDogTmV3IGZpbGUuCgoyMDAyLTA3LTMwICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGxkbGFuZy5jIChsYW5nX2FkZF9zZWN0aW9uKTogRG9uJ3QgdHVybiAudGJzcyBpbnRvIG5vcm1hbCBzZWN0aW9ucwoJZm9yIHJlbG9jYXRhYmxlIGxpbmsuCgkobGFuZ19zaXplX3NlY3Rpb25zXzEpOiBEb24ndCBtYWtlIC50YnNzIHplcm8gc2l6ZSBmb3IgcmVsb2NhdGFibGUKCWxpbmsuCgoyMDAyLTA3LTI2ICBCZXJuZCBTY2htaWR0ICA8YmVybmRzQHJlZGhhdC5jb20+CgoJKiBlbXVscGFyYW1zL2VsZjMyZnJ2LnNoIChPVEhFUl9SRUxPQ0FUSU5HX1NFQ1RJT05TKTogRGVsZXRlLgoJKFNUQUNLX0FERFIpOiBOZXcuCgoyMDAyLTA3LTI1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vc3YucG86IFVwZGF0ZWQgU3dlZGlzaCB0cmFuc2xhdGlvbi4KCSogcG8vZXMucG86IFVwZGF0ZWQgU3BhbmlzaCB0cmFuc2xhdGlvbi4KCSogcG8vZnIucG86IFVwZGF0ZWQgRnJlbmNoIHRyYW5zbGF0aW9uLgoKMjAwMi0wNy0yNCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL3N2LnBvOiBVcGRhdGVkIFN3ZWRpc2ggdHJhbnNsYXRpb24uCgkqIHBvL2VzLnBvOiBVcGRhdGVkIFNwYW5pc2ggdHJhbnNsYXRpb24uCgoyMDAyLTA3LTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vZnIucG86IFVwZGF0ZWQgRnJlbmNoIHRyYW5zbGF0aW9uLgoKMjAwMi0wNy0yMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fcGxhY2Vfb3JwaGFuKTogRG9uJ3QKCWJvbWIgb24gL0RJU0NBUkQvIGlucHV0IHNlY3Rpb24uCgkqIGVtdWx0ZW1wbC9wZS5lbSAoZ2xkXyR7RU1VTEFUSU9OX05BTUV9X3BsYWNlX29ycGhhbik6IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvbW1vLmVtIChtbW9fcGxhY2Vfb3JwaGFuKTogTGlrZXdpc2UuCgoyMDAyLTA3LTE5ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBlbXVsdGVtcGwvbW1vLmVtIChtbW9fcGxhY2Vfb3JwaGFuKTogSGFuZGxlIGNhc2Ugb2Ygbm8gLnRleHQKCW91dHB1dCBzZWN0aW9uLgoKMjAwMi0wNy0xNiAgRGVuaXMgQ2hlcnR5a292ICA8ZGVuaXNjQG92ZXJ0YS5ydT4KCSAgICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoJICAgIEZyYW5rIENoLiBFaWdsZXIgIDxmY2hlQHJlZGhhdC5jb20+CgkgICAgSm9obiBIZWFseSAgPGpoZWFseUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLnRndDogQWRkIHN1cHBvcnQgZm9yIGlwMmstZWxmLgoJKiBNYWtlZmlsZS5hbTogQWRkIHN1cHBvcnQgZm9yIGlwMmstZWxmLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZW11bHBhcmFtcy9lbGYzMmlwMmsuc2g6IE5ldyBmaWxlLgoJKiBzY3JpcHR0ZW1wbC9pcDJrLnNjOiBOZXcgZmlsZQoJKiBORVdTOiBNZW50aW9uIHN1cHBvcnQgZm9yIG5ldyBwb3J0LgoKMjAwMi0wNy0xNiAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBORVdTOiBBZGQgJ0NoYW5nZXMgaW4gMi4xMycuCgoyMDAyLTA3LTE0ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGxkLnRleGluZm86IERvY3VtZW50IGEgLnN5bXZlciB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgYQoJdmVyc2lvbiBzY3JpcHQuCgoyMDAyLTA3LTEyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHBhcmFtcy9lbGY2NHBwYy5zaCAoQVJDSCk6IFNldCB0byBwb3dlcnBjOmNvbW1vbjY0LgoJKENPTU1PTlBBR0VTSVpFKTogRGVmaW5lLgoKMjAwMi0wNy0wOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVtdWxwYXJhbXMvaHBwYW5ic2Quc2g6IFJlbWFyayB0aGF0IGhwcGFvYnNkLnNoIHJlZmVyZW5jZXMgdGhpcyBmaWxlLgoKMjAwMi0wNy0wOSAgRmVkZXJpY28gRy4gU2Nod2luZHQgPGZnc2NoQG9saW1wby5jb20uYnI+CgoJKiBjb25maWd1cmUudGd0OiBBZGQgc3VwcG9ydCBmb3IgYWxwaGEtKi1vcGVuYnNkKiwgaHBwYS0qLW9wZW5ic2QqLAoJcG93ZXJwYy0qLW9wZW5ic2QqIGFuZCBzcGFyYzY0LSotb3BlbmJzZCouCgkqIE1ha2VmaWxlLmFtIChBTExfRU1VTEFUSU9OUyk6IEFkZCBlaHBwYW9ic2Quby4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGVtdWxwYXJhbXMvaHBwYW9ic2Quc2g6IE5ldyBmaWxlLgoKMjAwMi0wNy0wNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbGFuZy5jIChwcmludF93aWxkX3N0YXRlbWVudCk6IEZpeCBvdXRwdXQgZm9ybWF0dGluZy4KCjIwMDItMDctMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsZGxhbmcuYzogKHN0cmlwX2V4Y2x1ZGVkX291dHB1dF9zZWN0aW9ucyk6IE5ldyBmdW5jdGlvbi4KCShsYW5nX3Byb2Nlc3MpOiBDYWxsIGl0LgoJKGxhbmdfc2l6ZV9zZWN0aW9uc18xKTogUmV2ZXJ0IDIwMDItMDYtMTAgY2hhbmdlLgoKMjAwMi0wNy0wMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtIChjaGVjay1ERUpBR05VKTogUmV2ZXJ0IDIwMDItMDYtMjUgY2hhbmdlLgoJUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wNy0wMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkZmlsZS5jIChsZGZpbGVfdHJ5X29wZW5fYmZkKTogRm9ybWF0dGluZy4KCgkqIGxkbWlzYy5jIChkZW1hbmdsZSk6IE1vdmUgc28gdGhhdCBpdCBkb2Vzbid0IGludHJ1ZGUgYmV0d2VlbgoJdmZpbmZvIGNvbW1lbnQgYW5kIGJvZHkuICBBZGQgY29tbWVudC4KCjIwMDItMDctMDEgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZUBoaWF1bHkxLmhpYS5ucmMuY2E+CgoJKiBlbXVscGFyYW1zL3ZheC5zaCAoT1VUUFVUX0ZPUk1BVCk6IFVzZSBhLm91dC12YXgtYnNkIGZvcm1hdC4KCjIwMDItMDctMDEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsZGxhbmcuaCAoZW50cnlfc3ltKTogTWFrZSBpdCBhIHN0cnVjdCBiZmRfc3ltX2NoYWluLgoJKiBsZGxhbmcuYyAoZW50cnlfc3ltKTogTGlrZXdpc2UuCgkobGRsYW5nX3VuZGVmX2NoYWluX2xpc3RfdHlwZSk6IExpa2V3aXNlLgoJKGxhbmdfZmluaXNoKTogQWRqdXN0IHJlZmVyZW5jZXMgdG8gZW50cnlfc3ltYm9sLgoJKGxhbmdfYWRkX2VudHJ5KTogTGlrZXdpc2UuCgkobGFuZ19nY19zZWN0aW9ucyk6IFVzZSBsaW5rX2luZm8uZ2Nfc3ltX2xpc3QuCgkobGFuZ19wcm9jZXNzKTogU2V0IGxpbmtfaW5mby5nY19zeW1fbGlzdC4KCSogbGRsZXgubDogSW5jbHVkZSBiZmRsaW5rLmguCgkqIGxkbWFpbi5jIChtYWluKTogSW5pdCBsaW5rX2luZm8uZ2Nfc3ltX2xpc3QuCgkqIGVtdWx0ZW1wbC9haXguZW06IEFkanVzdCByZWZlcmVuY2VzIHRvIGVudHJ5X3N5bWJvbC4KCSogZW11bHRlbXBsL2FybWNvZmYuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvYXJtZWxmLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3BlLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3BwYzY0ZWxmLmVtIChwcGNfYWZ0ZXJfb3Blbik6IE5ldyBmdW5jdGlvbi4KCShMREVNVUxfQUZURVJfT1BFTik6IERlZmluZS4KCSogZW11bHBhcmFtcy9lbGY2NHBwYy5zaDogS0VFUCAub3BkIHNlY3Rpb25zLgoKMjAwMi0wNi0yOSAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBlbXVscGFyYW1zL202OGhjMTJlbGZiLnNoIChFRVBST01fTUVNT1JZKTogRGVmaW5lLgoJKiBlbXVscGFyYW1zL202OGhjMTFlbGZiLnNoIChFRVBST01fTUVNT1JZKTogRGVmaW5lLgoJKiBlbXVscGFyYW1zL202OGhjMTFlbGYuc2ggKEVFUFJPTV9TSVpFKTogRGVmaW5lLgoJKEVFUFJPTV9TVEFSVF9BRERSKTogRGVmaW5lLgoJKEVFUFJPTV9NRU1PUlkpOiBEZWZpbmUuCgkqIGVtdWxwYXJhbXMvbTY4aGMxMmVsZi5zaDogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2VsZm02OGhjMTEuc2M6IEhhbmRsZSAuZWVwcm9tIHNlY3Rpb247IGhhbmRsZSAuc29mdHJlZ3MKCXNlY3Rpb24gdG8gcHV0IHNvZnQgcmVnaXN0ZXJzIGluIC5wYWdlMC4KCSogc2NyaXB0dGVtcGwvZWxmbTY4aGMxMi5zYzogTGlrZXdpc2UgYnV0IHB1dCBzb2Z0IHJlZ2lzdGVycyBpbiBic3MuCgoyMDAyLTA2LTI2ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogZW11bHBhcmFtcy9ocHBhNjRsaW51eC5zaCAoT1RIRVJfR09UX1JFTE9DX1NFQ1RJT05TKTogQWRkIHJlbGEub3BkCglzZWN0aW9uLiAgQWRkICR7UkVMT0NBVElORy0wfS4KCjIwMDItMDYtMjYgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tPgoKCSogZW11bHBhcmFtcy9zaGVsZi5zaCAoU1RBQ0tfQUREUik6IERvbid0IGRlZmluZS4KCShPVEhFUl9TRUNUSU9OUyk6IERlZmluZS4KCSogZW11bHBhcmFtcy9zaGVsZl9uYnNkLnNoICgoU1RBQ0tfQUREUik6IERvbid0IHVuZGVmLgoJKE9USEVSX1NFQ1RJT05TKTogVW5kZWYuCgoyMDAyLTA2LTI2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRtaXNjLmMgKGRlbWFuZ2xlKTogUmVzdG9yZSBkb3RzIHN0cmlwcGVkIGZyb20gc3ltIG5hbWUuCgoyMDAyLTA2LTI1ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIE1ha2VmaWxlLmFtIChjaGVjay1ERUpBR05VKTogU2V0IExDX0FMTD1DIGFuZCBleHBvcnQgaXQuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KCjIwMDItMDYtMjAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogbGQudGV4aW5mbyAoQnVnIFJlcG9ydGluZyk6IFVwZGF0ZSB0ZXh0IHRvIHN1Z2dlc3QgYSBsaW1pdCBvbgoJdGhlIHNpemUgb2YgYXR0YWNoZWQgb2JqZWN0IGZpbGVzLCB0byBhbGxvdyBtYWtlIHRoZSBvYmplY3QgZmlsZXMKCWF2YWlsYWJsZSB2aWEgRlRQIG9yIEhUVFAgYW5kIHRvIG1lbnRpb24gdGhhdCB0aGUgbWFpbCB3aWxsIGJlCglzZW50IHRvIGEgbWFpbGluZyBsaXN0LgoKMjAwMi0wNi0yMCAgTmF0aGFuYWVsIE5lcm9kZSAgPG5lcm9kZW5AdHdjbnkucnIuY29tPgoKCSogbGQvY29uZmlndXJlLmhvc3QgKHJvbXApOiBEcm9wIHN1cHBvcnQuCgoyMDAyLTA2LTE4ICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogZW11bHRlbXBsL21pcHNlbGYuZW0gKG1pcHNfZWxmJHtFTEZTSVpFfV9jaGVja19zZWN0aW9ucyk6IENoZWNrCglzZWN0aW9uIGZsYWdzIGZvciBTRUNfREFUQSwgcmF0aGVyIHRoYW4gZm9yIFNFQ19DT0RFIGJlaW5nIHVuc2V0LgoKMjAwMi0wNi0xOCAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGVtdWx0ZW1wbC9taXBzZWxmLmVtIChtaXBzX2VsZiR7RUxGU0laRX1fY2hlY2tfc2VjdGlvbnMpOiBGaXgKCWZvcm1hdCBzcGVjaWZpZXIgdXNlZCB0byBwcmludCBCRkQgbmFtZS4KCjIwMDItMDYtMTggIERhdmUgQnJvbGxleSAgPGJyb2xsZXlAcmVkaGF0LmNvbT4KCglGcm9tIENhdGhlcmluZSBNb29yZSwgTWljaGFlbCBNZWlzc25lciwgSmltIEJsYW5keToKCSogZW11bHBhcmFtcy9lbGYzMmZydi5zaDogTmV3IGZpbGUuCgkqIGNvbmZpZ3VyZS50Z3Q6IFN1cHBvcnQgZnJ2LSotKi4KCSogTWFrZWZpbGUuYW0gKEFMTF9FTVVMQVRJT05TKTogQWRkIGVlbGYzMmZydi5vLgoJKGVlbGYzMmZydi5jKTogTmV3IHRhcmdldC4KCjIwMDItMDYtMTcgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW06IGdsZCpfZ2V0X3NjcmlwdDogIENoZWNrIGZvcgoJR0VORVJBVEVfQ09NQlJFTE9DX1NDUklQVC4KCSogc2NyaXB0dGVtcGwvZWxmZDEwdi5zYyA6IEZpeCBTVEFDSyBhbmQgSU5TTi4KCSogZW11bHBhcmFtcy9kMTB2ZWxmLnNoIDogRml4IFRFWFRfU1RBUlRfQUREUi4KCjIwMDItMDYtMTMgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tPgoKCSogY29uZmlndXJlLnRndDogQWRkIHN1cHBvcnQgZm9yIHNoWzEyMzRdKmxlKi0qLWVsZiwgc2hbMTIzNF0qLSotZWxmLgoKMjAwMi0wNi0xMiAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKGdsZCR7RU1VTEFUSU9OX05BTUV9X3RyeV9uZWVkZWQpOiBSZXR1cm4KCWZhbHNlIGlmIHh2ZWMgZG9lc24ndCBtYXRjaC4KCjIwMDItMDYtMTAgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGxkbGFuZy5jIChsYW5nX3NpemVfc2VjdGlvbnNfMSk6IFNraXAgcmVtb3ZlZCBvdXRwdXQgc2VjdGlvbnMuCgoyMDAyLTA2LTA4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRleHAuYzogUmVwbGFjZSBDT05TVCB3aXRoIGNvbnN0LgoJKiBsZGZpbGUuYzogTGlrZXdpc2UuCgkqIGxkZmlsZS5oOiBMaWtld2lzZS4KCSogbGRsZXgubDogTGlrZXdpc2UuCgkqIG1yaS5jOiBMaWtld2lzZS4KCSogcGUtZGxsLmg6IExpa2V3aXNlLgoKMjAwMi0wNi0wNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVtdWx0ZW1wbC9wcGM2NGVsZi5lbSAobmV3X3ZlcnNfcGF0dGVybik6IFdhcm5pbmcgZml4LgoKMjAwMi0wNi0wNyAgQ2hhcmxlcyBXaWxzb24gIDxjd2lsc29uQGVjZS5nYXRlY2guZWR1PgoKCSogbGQvbGRtYWluLmMgKG1haW4pOiBpbml0aWFsaXplIGxpbmtfaW5mby5wZWkzODZfYXV0b19pbXBvcnQKCXRvIC0xID09IGltcGxpY2l0IGVuYWJsZS4KCSogbGQvZW11bHRlbXBsL3BlLmVtIChnbGRfJHtFTVVMQVRJT05fTkFNRX1fYmVmb3JlX3BhcnNlKToKCWluaXRpYWxpemUgbGlua19pbmZvLnBlaTM4Nl9hdXRvX2ltcG9ydCB0byAtMSA9PSBpbXBsaWNpdAoJZW5hYmxlLgoJKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9wYXJzZV9hcmdzKTogV2hlbiBwcm9jZXNzaW5nCgktLWVuYWJsZS1hdXRvLWltcG9ydCBhbmQgLS1kaXNhYmxlLWF1dG8taW1wb3J0IG9wdGlvbnMsIHVzZQoJJzEnIGFuZCAnMCcgaW5zdGVhZCBvZiAndHJ1ZScgYW5kICdmYWxzZScuCgkocGVfZmluZF9kYXRhX2ltcG9ydHMpOiBPbmx5IGlzc3VlIG1lc3NhZ2UgYWJvdXQgYXV0by1pbXBvcnQKCXdoZW4gdGhlIGZlYXR1cmUgaXMgaW1wbGljaXRseSBlbmFibGVkLiAgRG93bmdyYWRlIG1lc3NhZ2UgdG8KCWluZm9ybWF0aW9uYWwgaW5zdGVhZCBvZiB3YXJuaW5nLgoKMjAwMi0wNi0wNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHNjcmlwdHRlbXBsL2VsZi5zYyAoLnRic3MpOiBGaXggbWlzbWF0Y2hlZCBwYXJlbnRoZXNlcy9icmFjZXMuCgoyMDAyLTA2LTA2ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogY29uZmlndXJlLmhvc3QgKGhwcGEqNjQqLSotaHB1eDExKik6IERlZmluZSBOQVRJVkVfTElCX0RJUlMsCglIT1NUSU5HX0NSVDAgYW5kIEhPU1RJTkdfTElCUy4KCjIwMDItMDYtMDUgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tPgoKCSogY29uZmlndXJlLnRndCAoc2hsZSotKi1lbGYqLCBzaDY0bGUtKi1lbGYqKTogTmV3IGNvbmZpZ3VyYXRpb25zLgoKMjAwMi0wNi0wNSAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGVtdWxwYXJhbXMvbnMzMmtuYnNkLnNoIChFWEVDVVRBQkxFX1NZTUJPTFMpOiBTZXQgX0RZTkFNSUMgdG8gMC4KCShOT05QQUdFRF9URVhUX1NUQVJUX0FERFIpOiBTZXQgdG8gMHgxMDAwLgoKMjAwMi0wNi0wNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fcGxhY2Vfb3JwaGFuKTogUGxhY2UKCVNFQ19FWENMVURFIHNlY3Rpb25zIHdoZW4gZG9pbmcgYSByZWxvY2F0YWJsZSBsaW5rLgoKMjAwMi0wNi0wNCAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChBTExfRU1VTEFUSU9OUyk6IEFkZCBlc2hlbGYzMl9uYnNkLm8sCgllc2hsZWxmMzJfbmJzZC5vLCBlc2hlbGY2NF9uYnNkLm8sIGFuZCBlc2hsZWxmNjRfbmJzZC5vLgoJKGVzaGVsZjMyX25ic2QuYywgZXNoZWxmNjRfbmJzZC5jLCBlc2hsZWxmMzJfbmJzZC5jKQoJKGVzaGxlbGY2NF9uYnNkLmMpOiBOZXcgcnVsZXMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmUudGd0IChzaDVsZS0qLW5ldGJzZCosIHNoNS0qLW5ldGJzZCosIHNoNjRsZS0qLW5ldGJzZCopCgkoc2g2NC0qLW5ldGJzZCopOiBOZXcgdGFyZ2V0cy4KCSogZW11bHBhcmFtcy9zaGVsZjMyX25ic2Quc2g6IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL3NoZWxmNjRfbmJzZC5zaDogTmV3IGZpbGUuCgkqIGVtdWxwYXJhbXMvc2hsZWxmMzJfbmJzZC5zaDogTmV3IGZpbGUuCgkqIGVtdWxwYXJhbXMvc2hsZWxmNjRfbmJzZC5zaDogTmV3IGZpbGUuCgoyMDAyLTA2LTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRsYW5nLmMgKHNlY3Rpb25fYWxyZWFkeV9saW5rZWQpOiBDYWxsIGJmZF9kaXNjYXJkX2dyb3VwLiAgVHlwbyBmaXguCgoyMDAyLTA2LTAyICBNYXJlayBNaWNoYWxraWV3aWN6ICA8bWFyZWttQGFtZWxlay5nZGEucGw+CgoJKiBzY3JpcHR0ZW1wbC9hdnIuc2M6IENoYW5nZXMgdG8gc3VwcG9ydCBjdXJyZW50IEdDQyBhbmQgYXZyLWxpYmMsCglDKysgY29uc3RydWN0b3JzL2Rlc3RydWN0b3JzLCBsb29zZWx5IGJhc2VkIG9uIHRoZSBtNjhoYzExIHBvcnQuCgoyMDAyLTA1LTMxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGFjbG9jYWwubTQ6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wNS0zMSAgR3JhZW1lIFBldGVyc29uICA8Z3BAcW54LmNvbT4KCgkqIE1ha2VmaWxlLmFtIChBTExfRU1VTEFUSU9OUyk6IEFkZCBlaTM4Nm50by5vLgoJKGVpMzg2bnRvLmMpOiBBZGQgcnVsZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS50Z3Q6IEFkZCBpWzM0NTZdODYtKi1udG8tcW54Ki4KCSogZW11bHBhcmFtcy9pMzg2bnRvLnNoOiBOZXcgZmlsZS4KCjIwMDItMDUtMjkgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBORVdTOiBBZGQgZW50cnkgZm9yIFZBWCBFTEYgc3VwcG9ydC4KCjIwMDItMDUtMjkgIE1hdHQgVGhvbWFzICA8bWF0dEAzYW0tc29mdHdhcmUuY29tPgoJICAgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQUxMX0VNVUxBVElPTlMpOiBBZGQgZWVsZjMydmF4Lm8gYW5kIGV2YXhuYnNkLm8uCgkoZWVsZjMydmF4LmMpCgkoZXZheG5ic2QuYyk6IE5ldyBydWxlcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS50Z3QgKHZheC0qLW5ldGJzZGVsZiopCgkodmF4LSotbmV0YnNkYW91dCopCgkodmF4LSotbmV0YnNkKik6IE5ldyB0YXJnZXRzLgoJKiBlbXVscGFyYW1zL2VsZjMydmF4LnNoOiBOZXcgZmlsZS4KCSogZW11bHBhcmFtcy92YXhuYnNkLnNoOiBOZXcgZmlsZS4KCjIwMDItMDUtMjkgIEFkYW0gTmVtZXQgIDxhbmVtZXRAbG54dy5jb20+CgoJKiBlbXVsdGVtcGwvYXJtZWxmLmVtIChhcm1fZWxmX2FmdGVyX29wZW4pOiBEb24ndCBkZXRlcm1pbmUKCWJmZF9mb3JfaW50ZXJ3b3JrLCBpbnN0ZWFkIGFkZCBnbHVlIHNlY3Rpb25zIHRvIGVhY2ggaW5wdXQgYmZkLgoJKGJmZF9mb3JfaW50ZXJ3b3JrKTogTmV3IGdsb2JhbC4KCShhcm1fZWxmX3NldF9iZmRfZm9yX2ludGVyd29ya2luZyk6IE5ldyBmdW5jdGlvbi4KCShhcm1fZWxmX2JlZm9yZV9hbGxvY2F0aW9uKTogVXNlIGl0LgoKMjAwMi0wNS0yOCAgS3VhbmcgSHdhIExpbiA8a3VhbmdAc2JjZ2xvYmFsLm5ldD4KCgkqIE1ha2VmaWxlLmFtOiBBZGQgRExYIG1ha2UgdGFyZ2V0LgoJKiBjb25maWd1cmUudGd0OiBBZGQgRExYIGNvbmZpZ3VyYXRpb24uCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBlbXVscGFyYW1zL2VsZjMyX2RseC5zaDogTmV3IGZpbGUKCSogc2NyaXB0dGVtcGwvZGx4LnNjOiBOZXcgZmlsZQoKMjAwMi0wNS0yNyAgUGVyIEx1bmRiZXJnICA8cGVyQGNhbGViLmRuc2FsaWFzLm9yZz4KCgkqIE1ha2VmaWxlLmFtIChlZWxmX2kzODZfY2hhb3MpOiBVc2UgZWxmX2NoYW9zLnNjIHNjcmlwdC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGVtdWxwYXJhbXMvZWxmX2NoYW9zLnNoOiBVc2UgZWxmX2NoYW9zIHNjcmlwdC4KCSogc2NyaXB0dGVtcGwvZWxmX2NoYW9zLnNjOiBOZXcgZmlsZS4KCjIwMDItMDUtMjcgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGxkbGFuZy5jIChsYW5nX3NpemVfc2VjdGlvbnNfMSk6IE1vdmUgY2hlY2sgZm9yIGNvbmZsaWN0aW5nIGxvYWQKCWFkZHJlc3NlcyBhbmQgcmVnaW9ucyBmcm9tIGhlcmUuLi4KCShsYW5nX2dldF9yZWdpb25zKTogLi4udG8gdGhpcyBuZXcgZnVuY3Rpb24uCgkobGFuZ19sZWF2ZV9vdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnQpOiBVc2UgbGFuZ19nZXRfcmVnaW9ucy4KCShsYW5nX2xlYXZlX292ZXJsYXkpOiBMaWtld2lzZS4KCSogbXJpLmMgKG1yaV9kcmF3X3RyZWUpOiBQYXNzIG51bGwgYXMgbGFzdCBhcmd1bWVudCB0bwoJbGFuZ19sZWF2ZV9vdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnQuCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkKl9wbGFjZV9vcnBoYW4pOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL21tby5lbSAobW1vX3BsYWNlX29ycGhhbik6IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvcGUuZW0gKGdsZCpfcGxhY2Vfb3JwaGFuKTogTGlrZXdpc2UuCgoyMDAyLTA1LTI2ICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogY29uZmlndXJlLnRndDogVXNlIG5zMzJrLSotbmV0YnNkKiBpbnN0ZWFkIG9mIG5zMzJrLXBjNTMyLW5ldGJzZCouCgoyMDAyLTA1LTI1ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogbGRlbXVsLmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBsZGZpbGUuYzogTGlrZXdpc2UuCgkqIHBlLWRsbC5jOiBMaWtld2lzZS4KCSogcGUtZGxsLmg6IExpa2V3aXNlLgoKMjAwMi0wNS0yNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbGFuZy5jIChsYW5nX3Byb2Nlc3MpOiBGb3JtYXR0aW5nLCBncmFtbWFyLgoKCSogbGRsZXgubDogVXNlICNpbmNsdWRlICIiIGluc3RlYWQgb2YgPD4gZm9yIGxvY2FsIGhlYWRlciBmaWxlcy4KCjIwMDItMDUtMjQgIFRBTVVSQSBLZW50IDxrZW50QG5ldGJzZC5vcmc+CgoJKiBjb25maWd1cmUudGd0OiBBZGQgYSB0YXJnZXQgZm9yIGkzODYtbmV0YnNkcGUuCgoyMDAyLTA1LTIzICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHNjcmlwdHRlbXBsL2VsZi5zYzogQWRkIC5yZWx7LGF9LnR7YnNzLGRhdGF9LCAudGRhdGEgYW5kIC50YnNzLgoJKiBsZGxhbmcuYyAobGFuZ19hZGRfc2VjdGlvbik6IFNldCBTRUNfVEhSRUFEX0xPQ0FMIGZvcgoJb3V0cHV0IHNlY3Rpb24gaWYgbmVjZXNzYXJ5LiAgSGFuZGxlIC50YnNzLgoJKGxhbmdfc2l6ZV9zZWN0aW9ucyk6IENsZWFyIF9yYXdfc2l6ZSBmb3IgLnRic3Mgc2VjdGlvbgoJKGl0IGFsbG9jYXRlcyBzcGFjZSBpbiBQVF9UTFMgc2VnbWVudCBvbmx5KS4KCSogbGR3cml0ZS5jIChidWlsZF9saW5rX29yZGVyKTogQnVpbGQgbGluayBvcmRlciBmb3IgLnRic3MgdG9vLgoKMjAwMi0wNS0yMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZ3VyZS5pbjogQ29ycmVjdCBzcGVsbGluZyBvZiBBQ19QUkVSRVEuCgoyMDAyLTA1LTIxICBEYW5ueSBTbWl0aCAgPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogcGUtZGxsLmMgKGF1dG9maWx0ZXJfbGlibGlzdCk6IEFkZCBtb3JlIHN5c3RlbSBsaWJzIGV4Y2x1ZGVkIGJ5CglkZWZhdWx0LgoJKGF1dG9maWx0ZXJfb2JqbGlzdCk6IEFkZCBjcnRiZWdpbi5vLCBjcnRlbmQuby4KCjIwMDItMDUtMjEgIERhbm55IFNtaXRoICA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBlbXVsdGVtcGwvcGUuZW0gKE9QVElPTl9FWENMVURFX0xJQlMpOiBBZGQgbmV3IGRlZmluZS4KCShsb25nb3B0cyk6IEFkZCBuZXcgb3B0aW9uIC0tZXhjbHVkZS1saWJzLgoJKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9saXN0X29wdGlvbnMpOiBHaXZlIHF1aWNrIGhlbHAgYWJvdXQgaXQuCgkoZ2xkXyR7RU1VTEFUSU9OX05BTUV9X3BhcnNlX2FyZ3MpOiBVc2UgaXQuCgkqIHBlLWRsbC5oIChwZV9kbGxfYWRkX2V4Y2x1ZGVzKTogQWRkIHNlY29uZCBwYXJhbSB0byBwcm90b3R5cGUuCgkqIHBlLWRsbC5jIChleGNsdWRlX2xpc3Rfc3RydWN0KTogQWRkIGZpZWxkIHR5cGUgdG8gZGlzdGluZ3Vpc2ggc3ltYm9scwoJZnJvbSB3aG9sZSBhcmNoaXZlcy4KCShwZV9kbGxfYWRkX2V4Y2x1ZGVzKTogU2V0IGV4Y2x1ZGVzLT50eXBlLgoJKGF1dG9fZXhwb3J0KTogQWRkIG5ldyB2YXJpYWJsZSBsaWJuYW1lIGFuZCBzZXQgdG8gYXJjaGl2ZSBiYXNlbmFtZSBpZgoJYWJmZC4gIFVzZSBpdCB3aGVuIGZpbHRlcmluZyBkZWZhdWx0IGFuZCB1c2VyLXNwZWNpZmllZCBsaWJhcmFyeQoJZXhjbHVkZXMuICBMZXQgc3RyaW5nICJBTEwiIG1lYW4gYWxsIGxpYnMgd2hlbiBmaWx0ZXJpbmcgdXNlci1zcGVjaWZpZWQKCWxpYnMuCgkqIGxkLnRleGluZm86IERvY3VtZW50IC0tZXhjbHVkZS1saWJzLgoKMjAwMi0wNS0yMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkZW11bC5jIChsZGVtdWxfbmV3X3ZlcnNfcGF0dGVybik6IE5ldyBmdW5jdGlvbi4KCSogbGRlbXVsLmggKGxkZW11bF9uZXdfdmVyc19wYXR0ZXJuKTogRGVjbGFyZS4KCShzdHJ1Y3QgbGRfZW11bGF0aW9uX3hmZXJfc3RydWN0KTogQWRkIG5ld192ZXJzX3BhdHRlcm4uCgkqIGxkbGFuZy5jIChsYW5nX25ld192ZXJzX3BhdHRlcm4pOiBDYWxsIGxkZW11bF9uZXdfdmVyc19wYXR0ZXJuLgoJKiBlbXVsdGVtcGwvcHBjNjRlbGYuZW0gKGRvdHN5bXMpOiBOZXcgc3RhdGljIHZhci4KCShnbGQke0VNVUxBVElPTl9OQU1FfV9uZXdfdmVyc19wYXR0ZXJuKTogTmV3IGZ1bmN0aW9uLgoJKExERU1VTF9ORVdfVkVSU19QQVRURVJOKTogRGVmaW5lLgoJKFBBUlNFX0FORF9MSVNUX1BST0xPR1VFKTogQWRkIE9QVElPTl9ET1RTWU1TLCBPUFRJT05fTk9fRE9UU1lNUy4KCShQQVJTRV9BTkRfTElTVF9MT05HT1BUUyk6IExpa2V3aXNlLgoJKFBBUlNFX0FORF9MSVNUX0FSR1NfQ0FTRVMpOiBIYW5kbGUgdGhlbS4KCSogZW11bHRlbXBsL2FpeC5lbSAobGRfJHtFTVVMQVRJT05fTkFNRX1fZW11bGF0aW9uKTogVXBkYXRlCglpbml0aWFsaXNlci4KCSogZW11bHRlbXBsL2FybWNvZmYuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvYXJtZWxmX29hYmkuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvYmVvcy5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9nZW5lcmljLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2dsZDk2MC5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9nbGQ5NjBjLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2xpbnV4LmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2xuazk2MC5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9tNjhrY29mZi5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9taXBzZWNvZmYuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvcGUuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvc3Vub3MuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvdGljb2ZmLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3ZhbmlsbGEuZW06IExpa2V3aXNlLgoKMjAwMi0wNS0yMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGdlbnNjcmlwdHMuc2ggKExJQl9QQVRIKTogRm9yIG5hdGl2ZSB0YXJnZXRzLCBjb25jYXRlbmF0ZSAkbGliZGlyCglhbmQgJE5BVElWRV9MSUJfRElSUy4gIEFkZCAkdG9vbF9saWIgYmVmb3JlIG90aGVyIGxpYnMuCgkoTElCX1NFQVJDSF9ESVJTKTogTm8gbmVlZCB0byB1c2UgInRyIi4KCShDT01QSUxFX0lOKTogT25seSBzZXQgZm9yIG5hdGl2ZSB0YXJnZXRzLgoJKiBjb25maWd1cmUuaG9zdCAoTkFUSVZFX0xJQl9ESVJTKTogU3BlY2lmeSBhbGwgbmF0aXZlIHNlYXJjaCBkaXJzCgloZXJlLCByYXRoZXIgdGhhbiBhZGRpbmcgbGliOi91c3IvbGliOi91c3IvbG9jYWwvbGliIGluIGdlbnNjcmlwdHMuc2guCgkqIGNvbmZpZ3VyZS50Z3QgKHBvd2VycGMqKTogU2V0IHRkaXJfKi4KCShwb3dlcnBjbGUqKTogQ29ycmVjdCB0YXJnX2V4dHJhX2VtdWxzLgoJKiBlbXVscGFyYW1zL2VsZjMycHBjLnNoIChMSUJfUEFUSCk6IFNldCB1cCBuYXRpdmUgNjQgYml0IGRpcnMuCgkqIGVtdWxwYXJhbXMvZWxmNjRwcGMuc2ggKExJQl9QQVRIKTogTGlrZXdpc2UuCgoyMDAyLTA1LTIyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHRlbXBsL3BlLmVtIChzZXRfcGVfc3Vic3lzdGVtKTogRG9uJ3Qgc2V0ICJjbWRsaW5lIiB3aGVuCgljYWxsaW5nIGxhbmdfYWRkX2VudHJ5LgoKMjAwMi0wNS0yMSAgSC5KLiBMdSAgKGhqbEBnbnUub3JnKQoKCSogZW11bHRlbXBsL2VsZjMyLmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9wYXJzZV9hcmdzKTogSGFuZGxlCgkiLXogbXVsZGVmcyIuCgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1fbGlzdF9vcHRpb25zKTogQWRkICIteiBtdWxkZWZzIi4KCgkqIGxkLnRleGluZm86IFVwZGF0ZWQgZm9yIC0tYWxsb3ctbXVsdGlwbGUtZGVmaW5pdGlvbiBhbmQKCSIteiBtdWxkZWZzIi4KCgkqIGxkbWFpbi5jIChtYWluKTogSW5pdGlhbGl6ZSB0aGUgYWxsb3dfbXVsdGlwbGVfZGVmaW5pdGlvbgoJZmllbGQgdG8gZmFsc2UuCgoJKiBsZXhzdXAuYyAoT1BUSU9OX0FMTE9XX01VTFRJUExFX0RFRklOSVRJT04pOiBOZXcuCgkobGRfb3B0aW9ucyk6IEFkZCAtLWFsbG93LW11bHRpcGxlLWRlZmluaXRpb24uCgkocGFyc2VfYXJncyk6IFN1cHBvcnQgT1BUSU9OX0FMTE9XX01VTFRJUExFX0RFRklOSVRJT04uCgoyMDAyLTA1LTIxICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogTWFrZWZpbGUuYW0gKEFMTF9FTVVMQVRJT05TKTogQWRkIGVhcm1lbGZiX25ic2Quby4KCShlYXJtZWxmYl9uYnNkLmMpOiBOZXcgcnVsZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS50Z3QgKGFybWViLSotbmV0YnNkZWxmKik6IE5ldyB0YXJnZXQuCgkoYXJtLSotbmV0YnNkZWxmKik6IEFkZCBhcm1lbGZiX25ic2QgdG8gdGFyZ19leHRyYV9lbXVscy4KCShhcm0tKi1uZXRic2QqKTogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvYXJtZWxmYl9uYnNkLnNoOiBOZXcgZmlsZS4KCjIwMDItMDUtMTggIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBlbXVsdGVtcGwvYWl4LmVtIChnbGQqX3BhcnNlX2FyZ3MpOiBBZGQgLWJub3J0bCBhbmQgLWJub3J0bGxpYgoJc3VwcG9ydC4KCjIwMDItMDUtMTcgIE1hcmVrIE1pY2hhbGtpZXdpY3ogIDxtYXJla21AYW1lbGVrLmdkYS5wbD4KCgkqIE1ha2VmaWxlLmFtOiBBZGQgbmV3IGVtdWxhdGlvbnMgYXZyMSwgYXZyMiwgYXZyMywgYXZyNCwgYXZyNS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS50Z3QgKGF2ci0qLSopOiBBZGQgYXZyWzEtNV0gdG8gdGFyZ19leHRyYV9lbXVscy4KCjIwMDItMDUtMTYgIE1hcmVrIE1pY2hhbGtpZXdpY3ogIDxtYXJla21AYW1lbGVrLmdkYS5wbD4KCgkqIGVtdWxwYXJhbXMvYXZyMS5zaDogTmV3IGZpbGUuCgkqIGVtdWxwYXJhbXMvYXZyMi5zaDogTmV3IGZpbGUuCgkqIGVtdWxwYXJhbXMvYXZyMy5zaDogTmV3IGZpbGUuCgkqIGVtdWxwYXJhbXMvYXZyNC5zaDogTmV3IGZpbGUuCgkqIGVtdWxwYXJhbXMvYXZyNS5zaDogTmV3IGZpbGUuCgkqIHNjcmlwdHRlbXBsL2F2ci5zYzogTmV3IGZpbGUuCgoyMDAyLTA1LTE1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRsYW5nLmMgKHNlY3Rpb25fYWxyZWFkeV9saW5rZWQpOiBDYWxsIGJmZF9saW5rX2p1c3Rfc3ltcy4KCShsYW5nX3BsYWNlX29ycGhhbnMpOiBBYm9ydCBpZiBqdXN0X3N5bXNfZmxhZy4KCjIwMDItMDUtMTAgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBlbXVsdGVtcGwvYWl4LmVtOiAoZ2xkKl9zZXRfb3V0cHV0X2FyY2gpOiBOZXcgZnVuY3Rpb24uIFVzZQoJYXJjaGl0ZWN0dXJlIGFuZCBtYWNoaW5lIGluZm9ybWF0aW9uIGluIHRoZSBvdXRwdXQgYmZkLgoJKGdsZCpfYmVmb3JlX3BhcnNlKTogUmVtb3ZlIG9sZCBhcmNoIGFuZCBtYWNoaW5lIGNvZGUuCgkoY2hvb3NlX3RhcmdldCk6IFJlbmFtZSB0byBnbGQqX2Nob29zZV90YXJnZXQuCgkocnRsZCk6IENoYW5nZSB0eXBlIHRvIGludC4KCSogbGRmaWxlLmMgKGxkZmlsZV90cnlfb3Blbl9iZmQpOiBEaXNhYmxlIGNvbXBhdGlibGl0eSBjaGVjayBmb3IKCW9iamVjdHMgaW4gWENPRkYgYXJjaGl2ZXMuCgkqIGxkZmlsZS5oOiBVcGRhdGUgY29weXJpZ2h0IGRhdGUuCgoyMDAyLTA1LTEwICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGxkbWFpbi5jIChtYWluKTogRW5hYmxlIC16IGNvbWJyZWxvYyBieSBkZWZhdWx0LgoKMjAwMi0wNS0wNyAgRmVkZXJpY28gRy4gU2Nod2luZHQgPGZnc2NoQG9saW1wby5jb20uYnI+CgoJKiBNYWtlZmlsZS5hbTogSG9ub3VyIERFU1RESVIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wNS0wNyAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogbGRsYW5nLmggKGxhbmdfb3V0cHV0X3NlY3Rpb25fc3RhdGVtZW50X3R5cGUpOiBBZGQgdXBkYXRlX2RvdF90cmVlLgoJKGxhbmdfZW50ZXJfb3ZlcmxheSk6IFJlbW92ZSB0aGUgbGFzdCB0d28gcGFyYW1ldGVycy4KCShsYW5nX2xlYXZlX292ZXJsYXkpOiBUYWtlIHRoZW0gaGVyZSBpbnN0ZWFkLgoJKiBsZGdyYW0ueSAobWVtc3BlY19hdF9vcHQpOiBTZXQgJCQgdG8gbnVsbCBpZiBubyByZWdpb24gaXMgZ2l2ZW4uCgkoc2VjdGlvbik6IFBhc3MgTE1BIGFuZCBjcm9zc3JlZiBmbGFnIHRvIGxhbmdfbGVhdmVfb3ZlcmxheSByYXRoZXIKCXRoYW4gbGFuZ19lbnRlcl9vdmVybGF5LgoJKiBsZGxhbmcuYyAobGFuZ19tZW1vcnlfcmVnaW9uX2xvb2t1cCk6IFJldHVybiBudWxsIGZvciBudWxsIG5hbWVzLgoJKGxhbmdfb3V0cHV0X3NlY3Rpb25fc3RhdGVtZW50X2xvb2t1cCk6IEluaXRpYWxpemUgdXBkYXRlX2RvdF90cmVlLgoJKGxhbmdfc2l6ZV9zZWN0aW9uc18xKTogRXZhbHVhdGUgaXQuCgkobGFuZ19sZWF2ZV9vdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnQpOiBSZXdvcmsgTE1BIGxvb2t1cC4KCShvdmVybGF5X2xtYSwgb3ZlcmxheV9ub2Nyb3NzcmVmcyk6IFJlbW92ZS4KCShsYW5nX2VudGVyX292ZXJsYXkpOiBSZW1vdmUgTE1BIGFuZCBjcm9zc3JlZiBhcmd1bWVudHMuCgkobGFuZ19lbnRlcl9vdmVybGF5X3NlY3Rpb24pOiBEb24ndCBzZXQgdGhlIExNQSBoZXJlLgoJKGxhbmdfbGVhdmVfb3ZlcmxheSk6IFRha2UgTE1BIGFuZCBjcm9zc3JlZiBhcmd1bWVudHMuICBNb3ZlIHRoZSAnLicKCWFzc2lnbm1lbnQgdG8gdGhlIGxhc3Qgc2VjdGlvbidzIHVwZGF0ZV9kb3RfdHJlZS4gIFVuY29uZGl0aW9uYWxseQoJdXNlIHRoZSBsb2FkIGFuZCBydW4tdGltZSByZWdpb25zIHNwZWNpZmllZCBpbiB0aGUgT1ZFUkxBWSBzdGF0ZW1lbnQuCglMaWtld2lzZSB0aGUgZmlyc3Qgc2VjdGlvbidzIExNQS4gIE9ubHkgc2V0IHRoZSBvdGhlciBzZWN0aW9ucycgTE1BcwoJd2hlbiBubyBsb2FkIHJlZ2lvbiBpcyBnaXZlbi4KCjIwMDItMDUtMDYgIE5pY2sgQ2xpZnRvbiA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL3N2LnBvOiBOZXcgdHJhbnNsYXRpb24uCgoyMDAyLTA1LTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHRlbXBsL2hwcGFlbGYuZW0gKGJ1aWxkX3NlY3Rpb25fbGlzdHMpOiBOZXcgZnVuY3Rpb24uCgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1fZmluaXNoKTogQ2FsbCBlbGYzMl9ocHBhX3NldHVwX3NlY3Rpb25fbGlzdHMKCWFuZCBidWlsZF9zZWN0aW9uX2xpc3RzLgoKMjAwMi0wNS0wMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGxkLmg6IEZpeCBmb3JtYXR0aW5nLgoJKiBsZGV4cC5jOiBMaWtld2lzZS4KCSogbGRmaWxlLmM6IExpa2V3aXNlLgoJKiBsZGxhbmcuYzogTGlrZXdpc2UuCgkqIGxkbWFpbi5jOiBMaWtld2lzZS4KCSogbGV4c3VwLmM6IExpa2V3aXNlLgoJKiBwZS1kbGwuYzogTGlrZXdpc2UuCgoyMDAyLTA1LTAyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHRlbXBsL3BwYzY0ZWxmLmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9hZnRlcl9hbGxvY2F0aW9uKToKCUFkanVzdCBmb3IgcHBjNjRfZWxmX3NldF90b2MgY2hhbmdlLiAgI2luY2x1ZGUgbGliYmZkLmguCgkoYnVpbGRfc2VjdGlvbl9saXN0cyk6IERvIG91dHB1dF9zZWN0aW9uIHRlc3RzIGhlcmUuCgoyMDAyLTA0LTMwICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogZW11bHRlbXBsL2FpeC5lbSA6IChnbGQqX3BhcnNlX2FyZ2UpOiBGb3JtYXR0aW5nIGNoYW5nZXMuCgoyMDAyLTA1LTAxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCUxvbmcgYnJhbmNoIHN0dWJzLCBtdWx0aXBsZSBzdHViIHNlY3Rpb25zLgoJKiBlbXVsdGVtcGwvcHBjNjRlbGYuZW06IEluY2x1ZGUgbGRjdG9yLmguCgkoc3R1Yl9maWxlKTogTmV3IHZhci4KCShncm91cF9zaXplKTogTmV3IHZhci4KCShwcGNfY3JlYXRlX291dHB1dF9zZWN0aW9uX3N0YXRlbWVudHMpOiBOZXcgZnVuY3Rpb24uCgkoc3RydWN0IGhvb2tfc3R1Yl9pbmZvKTogTmV3LgoJKGhvb2tfaW5fc3R1Yik6IE5ldyBmdW5jdGlvbi4KCShwcGNfYWRkX3N0dWJfc2VjdGlvbik6IE5ldyBmdW5jdGlvbi4KCShwcGNfbGF5b3V0X3NlY3Rpb25zX2FnYWluKTogTmV3IGZ1bmN0aW9uLgoJKGJ1aWxkX3NlY3Rpb25fbGlzdHMpOiBOZXcgZnVuY3Rpb24uCgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1fZmluaXNoKTogUmV3cml0ZS4KCShyZWFsX2Z1bmMpOiBOZXcgdmFyLgoJKHBwY19mb3JfZWFjaF9pbnB1dF9maWxlX3dyYXBwZXIpOiBOZXcgZnVuY3Rpb24uCgkocHBjX2xhbmdfZm9yX2VhY2hfaW5wdXRfZmlsZSk6IE5ldyBmdW5jdGlvbi4KCShsYW5nX2Zvcl9lYWNoX2lucHV0X2ZpbGUpOiBEZWZpbmUuCgkoUEFSU0VfQU5EX0xJU1RfUFJPTE9HVUUpOiBEZWZpbmUuCgkoUEFSU0VfQU5EX0xJU1RfTE9OR09QVFMpOiBEZWZpbmUuCgkoUEFSU0VfQU5EX0xJU1RfT1BUSU9OUyk6IERlZmluZS4KCShQQVJTRV9BTkRfTElTVF9BUkdTX0NBU0VTKTogRGVmaW5lLgoJKExERU1VTF9DUkVBVEVfT1VUUFVUX1NFQ1RJT05fU1RBVEVNRU5UUyk6IERlZmluZS4KCjIwMDItMDQtMzAgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBlbXVsdGVtcGwvYWl4LmVtIChnbGQqX3BhcnNlX2FyZ2UsIGdsZCpfYmVmb3JlX2FsbG9jYXRpb24pOiBBZGQKCS1ibGlicGF0aCwgLWJub2xpYnBhdGggc3VwcG9ydC4KCjIwMDItMDQtMzAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQUxMX0VNVUxBVElPTlMpOiBBZGQgZWxmMzJwcGN3aW5kaXNzLm8uCgkoZWVsZjMycHBjd2luZGlzcy5jKTogTmV3IHRhcmdldC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGVkLgoJKiBjb25maWd1cmUudGd0OiBBZGQgc3VwcG9ydCBmb3IgcG93ZXJwYy0qLXdpbmRpc3MuCgkqIGVtdWxwYXJhbXMvZWxmMzJwcGN3aW5kaXNzLnNoOiBOZXcgZmlsZS4KCjIwMDItMDQtMzAgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGxkbGFuZy5jIChwcmludF9hc3NpZ25tZW50KTogVXBkYXRlIHByaW50X2RvdCBmb3IgYXNzaWdubWVudHMgdG8gIi4iLgoJKiBsZGV4cC5jIChleHBfcHJpbnRfdG9rZW4pOiBBZGQgImluZml4X3AiIGFyZ3VtZW50LgoJKGV4cF9wcmludF90cmVlKTogVXBkYXRlIGFjY29yZGluZ2x5LgoKMjAwMi0wNC0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtIChtcHcpOiBOZXcgbWFpbnRhaW5lciBtb2RlIHJ1bGUgdG8gbWFrZSBtcHctKi5jIGZpbGVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogbXB3LWVsZm1pcHMuYzogRGVsZXRlLgoJKiBtcHctZXBwY21hYy5jOiBEZWxldGUuCgkqIG1wdy1lc2guYzogRGVsZXRlLgoJKiBtcHctaWR0bWlwcy5jOiBEZWxldGUuCgoyMDAyLTA0LTE3ICBKIm9ybiBSZW5uZWNrZSA8am9lcm4ucmVubmVja2VAc3VwZXJoLmNvbT4KCgkqIGVtdWxwYXJhbXMvc2hlbGYzMi5zaCAoTUFDSElORSk6IE5vdyBzaDUuCgoyMDAyLTA0LTE3ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogbGRncmFtLnk6IEZpeCBzeW50YXggd2FybmluZy4KCjIwMDItMDQtMTEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogZW11bHRlbXBsL2FybWVsZi5lbSAoUEFSU0VfQU5EX0xJU1RfU0hPUlRPUFRTKTogQWRkICduJyBpbiBvcmRlcgoJdG8gcHJldmVudCAiLW4iIGZyb20gYmVpbmcgdGFrZW4gYXMgYW4gYWJicmV2aWF0aW9uIGZvcgoJIi0tbm8tcGlwZWxpbmUta25vd2xlZGdlIi4KCjIwMDItMDQtMDggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsZGxhbmcuYyAobGFuZ19zaXplX3NlY3Rpb25zXzEpOiBEb24ndCBjb21wbGFpbiBhYm91dAoJU0VDX05FVkVSX0xPQUQgc2VjdGlvbnMgaGF2aW5nIG5vIG1lbW9yeSByZWdpb24gc3BlY2lmaWVkLgoKCSogbGQudGV4aW5mbyAoRm9ybWF0IENvbW1hbmRzIDxPVVRQVVRfRk9STUFUPik6IFR5cG8gZml4LgoKMjAwMi0wNC0wNyAgbWF0dGhldyBncmVlbiAgPG1yZ0ByZWRoYXQuY29tPgoKCSogbGQvY29uZmlndXJlLmhvc3QgKCotKi1uZXRic2QqKTogQWRkIHN1cHBvcnQgZm9yIE5ldEJTRC9FTEYuCgoyMDAyLTA0LTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZGVwLWluLnNlZDogQ29wZSB3aXRoIGFic29sdXRlIHBhdGhzLgoJKiBNYWtlZmlsZS5hbSAoZGVwLnNlZCk6IFN1YnN0IFRPUERJUiBhbmQgQkZERElSLgoJUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wNC0wNCAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVtdWxwYXJhbXMvZWxmNjRidHNtaXAuc2g6IG42NCByZXBsYWNlcyAucmVnaW5mbyB3aXRoIC5NSVBTLm9wdGlvbnMuCgoyMDAyLTA0LTAzICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGxkZXhwLmMgKGZvbGRfYmluYXJ5KSBbREFUQV9TRUdNRU5UX0FMSUdOXTogSWYgY29tbW9uIHBhZ2Ugc2l6ZQoJaXMgc21hbGxlciB0aGFuIG1heGltdW0sIHJvdW5kIGRvdCB1cCB0byBjb21tb24gcGFnZSBib3VuZGFyeS4KCjIwMDItMDMtMjggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWd1cmUuaG9zdDogU2V0IHVwIGZvciBnZW5lcmljIGhvc3RzIGZpcnN0LCB0aGVuIHR3ZWFrIGFzCgluZWNlc3NhcnkgaW4gbW9yZSBzcGVjaWZpYyB0YXJnZXRzLgoJKEhPU1RJTkdfTElCUyk6IEluY2x1ZGUgbGliZ2NjX2VoLmEgaWYgZm91bmQuCgoyMDAyLTAzLTIzICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBlbXVscGFyYW1zL2VsZl94ODZfNjQuc2ggKENPTU1PTlBBR0VTSVpFKTogU2V0IGl0LgoKMjAwMi0wMy0yMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTAzLTIxICBBbGJlcnQgQ2hpbi1BLVlvdW5nICA8Y2hpbmFAdGhld3JpdHRlbndvcmQuY29tPgoKCSogZ2Vuc2NyaXB0cy5zaCAoTElCX1NFQVJDSF9ESVJTKTogUXVvdGUgcGF0aC4KCjIwMDItMDMtMjAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsZGxhbmcuYyAobGRsYW5nX2FkZF91bmRlZik6IElmIHRoZSBvdXRwdXQgYmZkIGhhcyBiZWVuIG9wZW5lZCwKCWFkZCB0aGUgc3ltYm9sIHRvIHRoZSBsaW5rZXIgaGFzaCB0YWJsZSBpbW1lZGlhdGVseS4KCShsYW5nX3BsYWNlX3VuZGVmaW5lZHMpOiBTcGxpdCBzeW1ib2wgY3JlYXRpb24gb3V0Li4KCShpbnNlcnRfdW5kZWZpbmVkKTogLi50byBoZXJlLgoKMjAwMi0wMy0xOCAgRGF2aWQgTydCcmllbiAgPG9icmllbkBGcmVlQlNELm9yZz4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbTogVXNlIGxiYXNlbmFtZSB2cy4gYmFzZW5hbWUgdG8gZml4IHByb2JsZW0gd2hlcmUKCXRoZSBjb250ZW50cyBvZiB0aGUgYnVmZmVyIHJldHVybmVkIGZyb20gYmFzZW5hbWUgZnVuY3Rpb24gd2lsbCBhcmUKCWdldHRpbmcgb3ZlcndyaXR0ZW4gd2hpbGUgc3RpbGwgYmVpbmcgdXNlZC4KCjIwMDItMDMtMTggIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCSAgICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgkgICAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIGNvbmZpZ3VyZS50Z3QgKHg4Nl82NC0qLWxpbnV4LWdudSopOiBDb25maWd1cmUgaTM4NiBhcyBuYXRpdmUuCgkqIGVsZl94ODZfNjQuc2ggKEFSQ0gpOiBTZXQgdG8gaTM4Njp4ODYtNjQKCXNldCBsaWJyYXJpZXMgdG8gZGVmYXVsdCB0byBsaWI2NCBwYXRocy4KCjIwMDItMDMtMTggIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBNYWtlZmlsZS5hbSA6IEFkZCBlYWl4NXBwYyBhbmQgZWFpeDVyczYsIEFJWCA1IHN1cHBvcnQuCgkqIGNvbmZpZ3VyZS50Z3QgOiBTYW1lLgoJKiBlbXVscGFybXMvYWl4NXBwYy5zaCA6IE5ldyBmaWxlLiBGb3IgZWFpeDVwcGMuCgkqIGVtdWxwYXJtcy9haXg1cnM2LnNoIDogTmV3IGZpbGUuIEZvciBlYWl4NXJzNi4KCSogZW11bHBhcm1zL2FpeHBwYy5zaCA6IE9VUFVUX0ZPUk1BVF8zMkJJVCBhbmQgT1VUUFVUX0ZPUk1BVF82NEJJVAoJZW11bGF0aW9uIHBhcmFtZXRlcnMgZm9yIGJldHRlciAtYjMyLCAtYjY0IHN1cHBvcnQuCgkqIGVtdWxwYXJtcy9haXhyczYuc2ggOiBTYW1lLgoJKiBlbXVscGFybXMvcHBjbWFjb3Muc2ggOiBTYW1lLgoJKiBlbXVsdGVtcGwvYWl4LmVtIChjaG9vc2VfdGFyZ2V0KSA6IFVzZSBuZXcgZW11bGF0aW9uIHBhcmFtZXRlcnMKCU9VVFBVVF9GT1JNQVRfMzJCSVQgYW5kIE9VVFBVVF9GT1JNQVRfNjRCSVQuCgkqIE1ha2VmaWxlLmluIDogUmVnZW5lcmF0ZS4KCjIwMDItMDMtMTggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcG8vZnIucG86IFVwZGF0ZWQgdmVyc2lvbi4KCjIwMDItMDMtMTggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsZG1haW4uYyAobWFpbik6IE1vdmUgLnRleHQgcmVhZG9ubHkgZmxhZyBmdWRnZXMgZnJvbSBoZXJlLi4KCSogbGRsYW5nLmMgKGxhbmdfcHJvY2Vzcyk6IC4udG8gaGVyZS4KCjIwMDItMDMtMTQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsZGxhbmcuYyAobGFuZ19jaGVjayk6IFJlbW92ZSB0aGUgd29yZCBzaXplIGNoZWNrIGFkZGVkIGluIGxhc3QKCWNoYW5nZS4gIFRyZWF0IGVtaXRyZWxvY2F0aW9ucyBjYXNlIGFzIGZvciByZWxvY2F0YWJsZSBsaW5rcy4KCjIwMDItMDMtMTMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcG8vZnIucG86IFVwZGF0ZWQgdmVyc2lvbi4KCjIwMDItMDMtMTMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsZGxhbmcuYyAobGFuZ19jaGVjayk6IERvIHJlbG9jYXRhYmxlIGxpbmsgY2hlY2tzIGZpcnN0LCBzbyB0aGF0Cgl3YXJuX21pc21hdGNoIGNhbid0IG92ZXJyaWRlLiAgQ2hlY2sgY29tcGF0aWJsZSBhbmQgd29yZCBzaXplIHRvby4KCjIwMDItMDMtMDcgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogbGQudGV4aW5mbzogV3JhcCBAbWVudSBpbiBAaWZub3R0ZXgsIG5vdCBAaWZpbmZvLgoKMjAwMi0wMy0wNSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBzY3JpcHR0ZW1wbC9lbGYuc2M6IE9ubHkgdXNlIERBVEFfU0VHTUVOVF9FTkQoKSB0b2dldGhlciB3aXRoCglEQVRBX1NFR01FTlRfQUxJR04uCgoyMDAyLTAzLTA0ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIHNjcmlwdHRlbXBsL2VsZi5zYzogUHV0IC5wcmVpbml0X2FycmF5LCAuaW5pdF9hcnJheSBhbmQKCS5maW5pX2FycmF5IGluIHRoZSBkYXRhIHNlZ21lbnQuCgoyMDAyLTAzLTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogc2NyaXB0dGVtcGwvZWxmLnNjOiBDb3JyZWN0IHN5bnRheCBlcnJvcnMgaW4gMjAwMi0wMy0wMSBjb21taXQuCgoyMDAyLTAzLTAxICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KCgkqIHNjcmlwdHRlbXBsL2VsZi5zYyAoU0VDVElPTlMpOiBBZGQgZW50cmllcyBmb3IgLnByZWluaXRfYXJyYXksCgkuaW5pdF9hcnJheSwgYW5kIC5maW5pX2FycmF5LgoKMjAwMi0wMi0yMCAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIGVtdWxwYXJhbXMvZWxmNjRfaWE2NC5zaCAoT1RIRVJfUkVBRE9OTFlfU0VDVElPTlMpOiBEb24ndCBmb2xkCgkuSUE2NF91bndpbmQqIGluIGEgcmVsb2NhdGFibGUgbGluay4KCjIwMDItMDItMjAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogTkVXUzogTWFyayAyLjEyIGJyYW5jaC4KCjIwMDItMDItMTkgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBlbXVscGFyYW1zL2VsZjY0X3MzOTAuc2ggKEFSQ0gpOiBDaGFuZ2UgdG8gInMzOTA6NjQtYml0Ii4KCSogZW11bHBhcmFtcy9lbGZfczM5MC5zaCAoQVJDSCk6IENoYW5nZSB0byAiczM5MDozMS1iaXQiLgoKMjAwMi0wMi0xOCAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGVtdWx0ZW1wbC9haXguZW0gKGdsZCpfcGFyc2VfYXJncyk6IEFkZCAtYnJ0bCBzdXBwb3J0LgoJKGdsZCpfYmVmb3JlX2FsbG9jYXRpb24pOiBTYW1lLgoJKGdsZCpfY3JlYXRlX291dHB1dF9zZWN0aW9uX3N0YXRlbWVudHMpOiBHZW5lcmF0ZQoJX19ydGluaXQgaWYgcnVuIHRpbWUgbGlua2luZy4gIEFkZCBsaWJydGwuYSB0byB0aGUgbGluay4KCShnbGQqX3JlYWRfZmlsZSk6IENsZWFuLgoKMjAwMi0wMi0xOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVtdWxwYXJhbXMvZWxmNjRwcGMuc2ggKE9USEVSX1RFWFRfU0VDVElPTlMpOiBEZWZpbmUuCgoyMDAyLTAyLTE4ICBEYXZpZCBPJ0JyaWVuICA8b2JyaWVuQEZyZWVCU0Qub3JnPgoKCSogTWFrZWZpbGUuYW06IEFkZCBuZXcgZmlsZXMgZWFybWVsZl9mYnNkLCBlZWxmMzJwcGNfZmJzZCwKCWVlbGZfaTM4Nl9mYnNkLCBlZWxmNjRfaWE2NF9mYnNkLCBlZWxmX3g4Nl82NF9mYnNkLCBlZWxmNjRfc3BhcmNfZmJzZCwKCWFuZCBlZWxmNjRhbHBoYV9mYnNkLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLnRndChzcGFyYzY0LSotZnJlZWJzZCwgaWE2NC0qLWZyZWVic2QsIGlbMzQ1Nl04Ni0qLWZyZWVic2QsCgl4ODZfNjQtKi1mcmVlYnNkLCBhcm0tKi1mcmVlYnNkLCBhbHBoYSotKi1mcmVlYnNkLCBwb3dlcnBjLSotZnJlZWJzZCk6Cgl1c2UgYSBGcmVlQlNELXNwZWNpZmljIGVtdWxhdGlvbiByYXRoZXIgdGhhbiB0aGUgcHNBQkkgb25lLgoJKiBlbXVscGFyYW1zL2VsZl9mYnNkLnNoIChFTEZfSU5URVJQUkVURVJfTkFNRSk6IFNldCBhcHByb3ByaWF0ZSB2YWx1ZQoJZm9yIGFsbCBGcmVlQlNEIEVMRiBzeXN0ZW1zLgoJKiBlbXVscGFyYW1zL2FybWVsZl9mYnNkLnNoOiBCcmlkZ2UgZWxmX2Zic2Quc2ggYW5kIHRoZSAibmF0aXZlIiBwc0FCSQoJZW11bGF0aW9uLgoJKiBlbXVscGFyYW1zL2VsZjMycHBjX2Zic2Quc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjY0X2lhNjRfZmJzZC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmNjRfc3BhcmNfZmJzZC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmNjRhbHBoYV9mYnNkLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGZfaTM4Nl9mYnNkLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGZfeDg2XzY0X2Zic2Quc2g6IExpa2V3aXNlLgoKMjAwMi0wMi0xOCAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBwby90ci5wbzogVXBkYXRlZCB2ZXJzaW9uLgoKMjAwMi0wMi0xOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkLnRleGluZm8gKE91dHB1dCBTZWN0aW9uIEZpbGwpOiBGaXggYW1hdGV1ciB0ZXhpbmZvLgoJKEZJTEwpOiBMaWtld2lzZS4KCjIwMDItMDItMTcgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGVtdWx0ZW1wbC9tbW8uZW0gKG1tb19hZnRlcl9vcGVuKTogRG9uJ3QgY2FsbAoJX2JmZF9tbWl4X2NoZWNrX2FsbF9yZWxvY3Mgd2hlbiBwcm9kdWNpbmcgRUxGIG91dHB1dC4KCjIwMDItMDItMTUgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbXVscGFyYW1zL2VsZjY0YWxwaGEuc2ggKE5PUCk6IEFkanVzdCBmb3IgYmlnLWVuZGlhbgoJZGVmaW5pdGlvbi4gIEVtaXQgYSB1bm9wK25vcCBwYWlyLgoKMjAwMi0wMi0xNSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogZW11bHRlbXBsL21taXgtZWxmbm1tby5lbSAobW1peF9hZnRlcl9hbGxvY2F0aW9uKTogQWxzbyBjaGVjawoJZm9yIHByZXNlbmNlIG9mIC5NTUlYLnJlZ19jb250ZW50cy5saW5rZXJfYWxsb2NhdGVkIGJlZm9yZSBlYXJseQoJZXhpdC4KCgkqIE5FV1M6IE1lbnRpb24gc3VwcG9ydCBmb3IgTU1JWC4KCjIwMDItMDItMTUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJU3VwcG9ydCBhcmJpdHJhcnkgbGVuZ3RoIGZpbGwgcGF0dGVybnMuCgkqIGxkLnRleGluZm8gKE91dHB1dCBTZWN0aW9uIEZpbGwpOiBEZXNjcmliZSBmaWxsIGV4cHJlc3Npb25zLgoJKEZJTEwpOiBSZWZlciB0byB0aGUgYWJvdmUuCgkqIGxkZXhwLmggKGV0cmVlX3ZhbHVlX3R5cGUpOiBBZGQgInN0ciIgZmllbGQuCgkodW5pb24gZXRyZWVfdW5pb24pOiBBZGQgInN0ciIgdG8gInZhbHVlIiBzdHJ1Y3QuCgkoZXhwX2JpZ2ludG9wKTogRGVjbGFyZS4KCShleHBfZ2V0X2ZpbGwpOiBEZWNsYXJlLgoJKiBsZGV4cC5jOiBJbmNsdWRlICJzYWZlLWN0eXBlLmgiLgoJKGV4cF9pbnRvcCk6IFNldCB2YWx1ZS5zdHIgdG8gTlVMTC4KCShleHBfYmlnaW50b3ApOiBOZXcgZnVuY3Rpb24uCgkobmV3X3JlbCk6IFBhc3MgaW4gInN0ciIsIGFuZCBzZXQgbmV3LnN0ciBmcm9tIGl0LgoJKG5ld19yZWxfZnJvbV9zZWN0aW9uKTogU2V0IG5ldy5zdHIgdG8gTlVMTC4KCShmb2xkX25hbWUpOiBBZGp1c3QgY2FsbHMgdG8gbmV3X3JlbC4KCShleHBfZm9sZF90cmVlKTogTGlrZXdpc2UuCgkoZXhwX2dldF9maWxsKTogTmV3IGZ1bmN0aW9uLgoJKiBsZGdyYW0ueSAoc3RydWN0IGJpZ19pbnQgYmlnaW50LCBmaWxsX3R5cGUgKmZpbGwpOiBOZXcuCgkoSU5UKTogUmV0dXJucyBhICJiaWdpbnQiLiAgQWRqdXN0IGFsbCBjb2RlIGhhbmRsaW5nIElOVHMuCgkoZmlsbF9vcHQpOiBSZXR1cm5zIGEgImZpbGwiLgoJKGZpbGxfZXhwKTogU3BsaXQgb3V0IG9mIGZpbGxfb3B0LCB1c2UgZm9yIEZJTEwuCgkqIGxkbGFuZy5oIChzdHJ1Y3QgX2ZpbGxfdHlwZSk6IE5ldy4KCShmaWxsX3R5cGUpOiBNb3ZlIHR5cGVkZWYgdG8gbGRleHAuaC4KCShsYW5nX291dHB1dF9zZWN0aW9uX3N0YXRlbWVudF90eXBlKTogImZpbGwiIGlzIG5vdyBhIHBvaW50ZXIuCgkobGFuZ19maWxsX3N0YXRlbWVudF90eXBlKTogTGlrZXdpc2UuCgkobGFuZ19wYWRkaW5nX3N0YXRlbWVudF90eXBlKTogTGlrZXdpc2UuCgkobGFuZ19hZGRfZmlsbCk6IE5vdyB0YWtlcyBhICJmaWxsX3R5cGUgKiIgcGFyYW0uCgkobGFuZ19sZWF2ZV9vdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnQpOiBMaWtld2lzZS4KCShsYW5nX2RvX2Fzc2lnbm1lbnRzKTogTGlrZXdpc2UuCgkobGFuZ19zaXplX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkobGFuZ19sZWF2ZV9vdmVybGF5X3NlY3Rpb24pOiBMaWtld2lzZS4KCShsYW5nX2xlYXZlX292ZXJsYXkpOiBMaWtld2lzZS4KCSogbGRsYW5nLmM6IEluY2x1ZGUgbGRncmFtLmggYWZ0ZXIgbGRleHAuaC4KCShsYW5nX291dHB1dF9zZWN0aW9uX3N0YXRlbWVudF9sb29rdXApOiBBZGp1c3QgZm9yIGZpbGxfdHlwZSBjaGFuZ2UuCgkocHJpbnRfZmlsbF9zdGF0ZW1lbnQpOiBMaWtld2lzZS4KCShwcmludF9wYWRkaW5nX3N0YXRlbWVudCk6IExpa2V3aXNlLgoJKGluc2VydF9wYWQpOiBOb3cgdGFrZXMgYSAiZmlsbF90eXBlICoiIGFyZy4KCShzaXplX2lucHV0X3NlY3Rpb24pOiBMaWtld2lzZS4KCShsYW5nX3NpemVfc2VjdGlvbnNfMSk6IExpa2V3aXNlLgoJKGxhbmdfc2l6ZV9zZWN0aW9ucyk6IExpa2V3aXNlLgoJKGxhbmdfZG9fYXNzaWdubWVudHMpOiBMaWtld2lzZS4KCShsYW5nX2FkZF9maWxsKTogTGlrZXdpc2UuCgkobGFuZ19sZWF2ZV9vdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnQpOiBMaWtld2lzZS4KCShsYW5nX2xlYXZlX292ZXJsYXlfc2VjdGlvbik6IExpa2V3aXNlLgoJKGxhbmdfbGVhdmVfb3ZlcmxheSk6IExpa2V3aXNlLgoJQWRqdXN0IGFsbCBjYWxsZXJzIG9mIHRoZSBhYm92ZSBmdW5jdGlvbi4KCSogbGRsZXgubDogSW5jbHVkZSBsZGdyYW0uaCBhZnRlciBsZGV4cC5oLiAgQWxsb3cgaGV4IG51bWJlcnMKCXN0YXJ0aW5nIHdpdGggIjBYIiBhcyB3ZWxsIGFzICIweCIuICBSZXR1cm4gYmlnaW50LnN0ciBmb3IgaGV4CgludW1iZXJzIHN0YXJ0aW5nIHdpdGggIjB4IiBvciAiMFgiLCB6ZXJvIGJpZ2ludC5zdHIgb3RoZXJ3aXNlLgoJQWx3YXlzIHVzZSBiYXNlIDE2IGZvciBudW1iZXJzIHN0YXJ0aW5nIHdpdGggIiQiLgoJKiBsZG1haW4uYzogSW5jbHVkZSBsZGdyYW0uaCBhZnRlciBsZGV4cC5oLgoJKiBsZHdyaXRlLmMgKGJ1aWxkX2xpbmtfb3JkZXIpOiBVc2UgYmZkX2RhdGFfbGlua19vcmRlciBpbiBwbGFjZQoJb2YgYmZkX2ZpbGxfbGlua19vcmRlci4KCSogcGUtZGxsLmM6IEFkanVzdCBsYW5nX2RvX2Fzc2lnbm1lbnRzIGNhbGxzLgoJKiBlbXVsdGVtcGwvZWxmMzIuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvaHBwYWVsZi5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9wcGM2NGVsZi5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9iZW9zLmVtOiBJbmNsdWRlIGxkZ3JhbS5oIGFmdGVyIGxkZXhwLmgsIGFkanVzdAoJbGFuZ19hZGRfYXNzaWdubWVudCBjYWxsLgoJKiBlbXVsdGVtcGwvcGUuZW06IExpa2V3aXNlLgoKMjAwMi0wMi0xNCAgUGhpbCBFZHdhcmRzICA8cG1lQGdjYy5nbnUub3JnPgoKCSogbGQudGV4aW5mbyAoVkVSU0lPTiBzY3JpcHRzKTogIFN5bWJvbCBuYW1lcyBhcmUgZ2xvYmJpbmcgcGF0dGVybnMuCgkqIGxkZ3JhbS55IChsYW5nX25ld192ZXJzX3JlZ2V4KTogIFJlbmFtZSB0byBsYW5nX25ld192ZXJzX3BhdHRlcm47Cgl0aGUgcGF0dGVybiBpbiBxdWVzdGlvbiBpcyBub3QgYSByZWdleHAuCgkqIGxkbGFuZy5jOiAgTGlrZXdpc2UuCgkqIGxkbGFuZy5oOiAgTGlrZXdpc2UuCgkqIGxkbGV4LmwgKFZfSURFTlRJRklFUik6ICBBbGxvdyAnWycsICddJywgJy0nLCAnIScsIGFuZCAnXicgYWxzby4KCjIwMDItMDItMTIgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogbGRsZXgubCAoREFUQV9TRUdNRU5UX0FMSUdOLCBEQVRBX1NFR01FTlRfRU5EKTogTmV3IHRva2Vucy4KCSogbGRncmFtLnkgKERBVEFfU0VHTUVOVF9BTElHTiwgREFUQV9TRUdNRU5UX0VORCk6IE5ldyB0b2tlbnMuCgkoZXhwKTogQWRkIERBVEFfU0VHTUVOVF9BTElHTiAoZXhwLCBleHApIGFuZCBEQVRBX1NFR01FTlRfRU5EIChleHApLgoJKiBsZGV4cC5jIChleHBfZGF0YV9zZWcpOiBOZXcgdmFyaWFibGUuCgkoZXhwX3ByaW50X3Rva2VuKTogSGFuZGxlIERBVEFfU0VHTUVOVF9BTElHTiBhbmQgREFUQV9TRUdNRU5UX0VORC4KCShmb2xkX2JpbmFyeSk6IEhhbmRsZSBEQVRBX1NFR01FTlRfQUxJR04uCgkoZXhwX2ZvbGRfdHJlZSk6IEhhbmRsZSBEQVRBX1NFR01FTlRfRU5ELgoJUGFzcyBhbGxvY2F0aW9uX2RvbmUgd2hlbiByZWN1cnNpbmcgaW5zdGVhZCBvZiBoYXJkY29kaW5nCglsYW5nX2FsbG9jYXRpbmdfcGhhc2VfZW51bS4KCSogbGRleHAuaCAoZXhwX2RhdGFfc2VnKTogTmV3LgoJKiBsZGxhbmcuYyAobGFuZ19zaXplX3NlY3Rpb25zXzEpOiBSZW5hbWVkIGZyb20gbGFuZ19zaXplX3NlY3Rpb25zLgoJKGxhbmdfc2l6ZV9zZWN0aW9ucyk6IE5ldy4KCSogbGQudGV4aW5mbyAoREFUQV9TRUdNRU5UX0FMSUdOLCBEQVRBX1NFR01FTlRfRU5EKTogRG9jdW1lbnQuCgkqIHNjcmlwdHRlbXBsL2VsZi5zYzogVXNlIERBVEFfU0VHTUVOVF9BTElHTiBhbmQgREFUQV9TRUdNRU5UX0VORAoJaWYgQ09NTU9OUEFHRVNJWkUgaXMgZGVmaW5lZC4KCSogZW11bHBhcmFtcy9lbGZfaTM4Ni5zaCAoQ09NTU9OUEFHRVNJWkUpOiBTZXQgdG8gNEsuCgkqIGVtdWxwYXJhbXMvZWxmMzJfc3BhcmMuc2ggKENPTU1PTlBBR0VTSVpFKTogU2V0IHRvIDhLLgoJKiBlbXVscGFyYW1zL2VsZjY0X3NwYXJjLnNoIChDT01NT05QQUdFU0laRSk6IFNldCB0byA4Sy4KCSogZW11bHBhcmFtcy9lbGY2NGFscGhhLnNoIChDT01NT05QQUdFU0laRSk6IFNldCB0byA4Sy4KCSogZW11bHBhcmFtcy9lbGY2NF9pYTY0LnNoIChDT01NT05QQUdFU0laRSk6IFNldCB0byAxNksgZm9yIHNoYXJlZAoJbGlicmFyaWVzIG9ubHkuCgoyMDAyLTAyLTExICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTAyLTEwICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGxleHN1cC5jOiBSZW1vdmUgc3RydG91bCBkZWNsYXJhdGlvbi4KCjIwMDItMDItMTAgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogbGRtYWluLmM6IEFkZCBwcm90b3R5cGUgZm9yIG1haW4gKCkuCgkqIGxleHN1cC5jOiBHdWFyZCBkZWNsYXJhdGlvbiBvZiBzdHJ0b3VsIHdpdGggSEFWRV9TVERMSUJfSC4KCSogZW11bHRlbXBsL2xuazk2MC5lbSAobG5rOTYwX2Nob29zZV90YXJnZXQpOiBGdW5jdGlvbiBzaG91bGQKCXRha2UgdHdvIGFyZ3VtZW50cy4KCjIwMDItMDItMTAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsZGxhbmcuYyAoZW50cnlfc2VjdGlvbik6IE5ldyBpbml0aWFsaXNlZCB2YXJpYWJsZS4KCShsYW5nX2ZpbmlzaCk6IFVzZSBpdC4KCSogbGRsYW5nLmggKGVudHJ5X3NlY3Rpb24pOiBEZWNsYXJlLgoJKiBlbXVsdGVtcGwvcHBjNjRlbGYuZW0gKGdsZCR7RU1VTEFUSU9OX05BTUV9X2ZpbmlzaCk6IFNldAoJZW50cnlfc2VjdGlvbiB0byAiLm9wZCIuCgoyMDAyLTAyLTA5ICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogbGQudGV4aW5mbyAoT3B0aW9ucyk6IEFkZCBiYWNrIGluIC1ub3N0ZGxpYiBkb2N1bWVudGF0aW9uLAoJd2hpY2ggaGFkIGJlZW4gaW5hZHZlcnRlbnRseSByZW1vdmVkLgoKMjAwMi0wMi0wOSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogZW11bHRlbXBsL21taXgtZWxmbm1tby5lbSAobW1peF9hZnRlcl9hbGxvY2F0aW9uKTogQWRqdXN0CglyZWdpc3RlciBzZWN0aW9uIHZtYSB0byBhIHNhbmUgdmFsdWUgYWZ0ZXIgZW1pdHRpbmcgZXJyb3IuICBNYWtlCglmYXRhbCBjb25kaXRpb25zIGNhdXNlIHByb2dyYW0gZXhpdCB3aGVuIGVtaXR0aW5nIG1lc3NhZ2UuCgoyMDAyLTAyLTA4ICBJdmFuIEd1enZpbmVjIDxpdmFuZ0BvcGVuY29yZXMub3JnPgoKCSogY29uZmlndXJlLnRndDogQWRkIG9yMzItKi1ydGVtcyB0YXJnZXQuCgoyMDAyLTAyLTA4ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCglDb250cmlidXRlIHNoNjQtZWxmLgoJMjAwMi0wMS0yNCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGVtdWxwYXJhbXMvc2hlbGYzMi5zaCAoU1RBQ0tfQUREUik6IERlZmluZSBhcyBmb3JtZXJseSBkZWZpbmVkCglpbiBPVEhFUl9SRUxPQ0FUQUJMRV9TRUNUSU9OUy4KCTIwMDItMDEtMTggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBlbXVscGFyYW1zL3NoZWxmMzIuc2ggKFNUQUNLX0FERFIpOiBEZWZpbmUuCgkoT1RIRVJfUkVMT0NBVEFCTEVfU0VDVElPTlMpOiBSZW5hbWVkIHRvLi4uCgkoT1RIRVJfU0VDVElPTlMpOiB0aGlzLgkgUmVtb3ZlZCBzdGFjayBzZXR0aW5ncy4KCSogZW11bHBhcmFtcy9zaGVsZjY0LnNoIChPVEhFUl9SRUxPQ0FUQUJMRV9TRUNUSU9OUyk6IERvIG5vdCBzZXQuCgkoT1RIRVJfU0VDVElPTlMpOiBSZXNldCBhZnRlciBzb3VyY2luZyBzaGVsZjMyLnNoLgoJMjAwMS0wMy0xMiAgREogRGVsb3JpZQk8ZGpAcmVkaGF0LmNvbT4KCSogZW11bHRlbXBsL3NoNjRlbGYuZW0gKHNoNjRfZWxmXyRfYmVmb3JlX2FsbG9jYXRpb24pOiBEaXNhYmxlCglyZWxheGluZyBpZiBhbnkgc2htZWRpYSBvciBtaXhlZCBzZWN0aW9ucyBhcmUgZm91bmQuCgkyMDAxLTAzLTA3ICBESiBEZWxvcmllCTxkakByZWRoYXQuY29tPgoJKiBlbXVsdGVtcGwvc2g2NGVsZi5lbSAoc2g2NF9lbGZfYmVmb3JlX2FsbG9jYXRpb24pOiBQYXNzIGYgdG8KCWVpbmZvLglHcmFjZWZ1bGx5IGRlY2xpbmUgdG8gb3V0cHV0IHRvIG5vbi1lbGYgZm9ybWF0cy4KCTIwMDEtMDMtMDYgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQHJlZGhhdC5jb20+CgkqIGVtdWxwYXJhbXMvc2hlbGY2NC5zaCAoT1RIRVJfUkVMT0NBVElOR19TRUNUSU9OUykgPC5zdGFjaz46CglEZWZhdWx0IHRvIF9lbmQgYWxpZ25lZCB0byBuZXh0IG11bHRpcGxlIG9mIDB4NDAwMDAsIHBsdXMgMHg0MDAwMC4KCSogZW11bHBhcmFtcy9zaGVsZjMyLnNoOiBEaXR0by4KCTIwMDEtMDEtMTQgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CgkqIGVtdWxwYXJhbXMvc2hlbGYzMi5zaCAoT1RIRVJfUkVMT0NBVElOR19TRUNUSU9OUyk6IFR3ZWFrCgljb21tZW50LgoJMjAwMS0wMS0xMCAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgkqIGVtdWxwYXJhbXMvc2hlbGYzMi5zaCAoT1RIRVJfUkVMT0NBVElOR19TRUNUSU9OUyk6IEF2b2lkCglub24tcG9ydGFibGUgc2hlbGwgY29uc3RydWN0cy4gRnJvbSBIYW5zLVBldGVyIE5pbHNzb24uCgkyMDAxLTAxLTA5ICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJKiBlbXVscGFyYW1zL3NoZWxmNjQuc2ggKEVYVFJBX0VNX0ZJTEUpOiBEZWZpbmUgZW1wdHkuCgkqIE1ha2VmaWxlLmFtIChlc2hlbGY2NC5jLCBlc2hsZWxmNjQuYywgZXNobGVsZjMyLmMpOiBBZGp1c3QKCWRlcGVuZGVuY2llcyB0byB0aGUgc2hlbGwgc2NyaXB0IGluY2x1ZGUgY2hhaW4uCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJMjAwMS0wMS0wNiAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCSogZW11bHRlbXBsL3NoNjRlbGYuZW06IFVwZGF0ZSBhbmQgdHdlYWsgY29tbWVudHMuCgkoc2g2NF9lbGZfJHtFTVVMQVRJT05fTkFNRX1fYWZ0ZXJfYWxsb2NhdGlvbik6IEFsd2F5cyBhbGxvY2F0ZSBhbmQKCW1ha2UgYSAuY3JhbmdlcyBzZWN0aW9uIFNFQ19JTl9NRU1PUlkuCgkyMDAwLTEyLTMwICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJKiBlbXVsdGVtcGwvc2g2NGVsZi5lbQoJKHNoNjRfZWxmXyR7RU1VTEFUSU9OX05BTUV9X2JlZm9yZV9hbGxvY2F0aW9uKTogRG9uJ3Qgc3RvcCB3aGVuCgkuY3JhbmdlcyBzZWN0aW9uIGZvdW5kIHRvIGJlIG5lY2Vzc2FyeTsgY29udGludWUgYW5kIHNldCBzdG9yZWQKCXNlY3Rpb24gY29udGVudHMgZmxhZ3MgZm9yIHNlY3Rpb25zIHdpdGggbm9uLW1peGVkIGNvbnRlbnRzLgoJVXNlIGEgc3RydWN0IHNoNjRfc2VjdGlvbl9kYXRhIGNvbnRhaW5lciBhbmQgc2g2NF9lbGZfc2VjdGlvbl9kYXRhCgl0byBzdG9yZSBjb250ZW50cy10eXBlIGZsYWdzLgoJUmVtb3ZlIHVudXNlZCB1cGRhdGUgb2YgImlzZWMiLgoJKHNoNjRfZWxmXyR7RU1VTEFUSU9OX05BTUV9X2FmdGVyX2FsbG9jYXRpb24pOiBPbmx5IHByb2Nlc3MKCXNlY3Rpb25zIG1hcmtlZCBTSEZfU0g1X0lTQTMyX01JWEVELiAgVXNlIHNoNjRfZWxmX3NlY3Rpb25fZGF0YSB0bwoJYWNjZXNzIGNvbnRlbnRzLXR5cGUgZmxhZ3MuICBBc3NlcnQgdGhhdCB0aGUgYXNzb2NpYXRlZCBjb250YWluZXIKCWlzIGluaXRpYWxpemVkLgkgVXNlIHRoYXQgY29udGFpbmVyLCBub3QgZWxmX2dwX3NpemUsIHRvIGhvbGQgc2l6ZQoJb2YgbGlua2VyLWdlbmVyYXRlZCBjcmFuZ2VzIGNvbnRlbnRzLgoJMjAwMC0xMi0xOCAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCSogZW11bHRlbXBsL3NoNjRlbGYuZW0KCShzaDY0X2VsZl8ke0VNVUxBVElPTl9OQU1FfV9iZWZvcmVfYWxsb2NhdGlvbik6IEV4aXQgZWFybHkgaWYKCXRoZXJlJ3MgYWxyZWFkeSBhIC5jcmFuZ2VzIHNlY3Rpb24uICBXaGVuIHNlY3Rpb24gZmxhZyBkaWZmZXJlbmNlCglpcyBmb3VuZCwgZG9uJ3QgTlVMTC1jaGVjayBjcmFuZ2VzIGEgc2Vjb25kIHRpbWUuICBUd2VhayBjb21tZW50cy4KCShzaDY0X2VsZl8ke0VNVUxBVElPTl9OQU1FfV9hZnRlcl9hbGxvY2F0aW9uKTogVXNlIHNpemUgYWZ0ZXIKCW1lcmdpbmcsIG5vdCBtYXggc2l6ZSwgYXMgc2l6ZSBvZiBsZC1nZW5lcmF0ZWQgLmNyYW5nZXMgY29udGVudHMuCglEb24ndCBzZXQgRUxGIHNlY3Rpb24gZmxhZ3MgaW4gb3V0cHV0IHNlY3Rpb24uCVdoZW4gY2hlY2tpbmcgZm9yCgluZWVkZWQgLmNyYW5nZXMgZGVzY3JpcHRvcnMsIGRvbid0IHVzZSBhIHZhcmlhYmxlOyBjb21wYXJlCglpbmNvbWluZyBFTEYgc2VjdGlvbiBmbGFncyBkaXJlY3RseSB0byBTSEZfU0g1X0lTQTMyX01JWEVELiAgVHdlYWsKCWNvbW1lbnRzLgoJMjAwMC0xMi0xOCAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCSogZW11bHRlbXBsL3NoNjRlbGYuZW06IE5ldyBmaWxlLgoJKiBNYWtlZmlsZS5hbSAoZXNoZWxmMzIuYywgZXNobGVsZjMyLmMpOiBBZGp1c3QgZGVwZW5kZW5jaWVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZW11bHBhcmFtcy9zaGVsZjMyLnNoIChPVVRQVVRfRk9STUFUKTogT25seSBzZXQgaWYgbm90IHNldC4KCShPVEhFUl9SRUxPQ0FUSU5HX1NFQ1RJT05TKTogRGl0dG8uCgkoRVhUUkFfRU1fRklMRSk6IE5ldywgc2V0IHRvIHNoNjRlbGYgaWYgbm90IHNldC4KCSogZW11bHBhcmFtcy9zaGxlbGYzMi5zaDogU3R1YiBvdXQgYWxsIHNldHRpbmdzIGV4Y2VwdAoJT1VUUFVUX0ZPUk1BVC4JU291cmNlIHNoZWxmMzIuc2guCgkqIGVtdWxwYXJhbXMvc2hlbGY2NC5zaDogU2ltaWxhciwgYnV0IGFsc28ga2VlcCBFTEZfU0laRSBhbmQKCU9USEVSX1JFTE9DQVRJTkdfU0VDVElPTlMuCgkoT1RIRVJfUkVMT0NBVElOR19TRUNUSU9OUyk6IFJlbW92ZSAuY3Jhbmdlcy4KCSogZW11bHBhcmFtcy9zaGxlbGY2NC5zaDogU3R1YiBvdXQgYWxsIHNldHRpbmdzIGV4Y2VwdAoJT1VUUFVUX0ZPUk1BVC4JU291cmNlIHNoZWxmNjQuc2guCgkyMDAwLTEyLTE1ICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJKiBlbXVscGFyYW1zL3NoZWxmNjQuc2ggKE9USEVSX1JFTE9DQVRJTkdfU0VDVElPTlMpOiBJbmNsdWRlCgkuY3JhbmdlcyBzZWN0aW9uLgoJKERBVEFfU1RBUlRfU1lNQk9MUyk6IERlZmluZSwgcHJvdmlkZSBfX19kYXRhLgoJKE9USEVSX1JFQURPTkxZX1NZTUJPTFMpOiBEZWZpbmUsIHByb3ZpZGUgX19fcm9kYXRhIGFuZCBhbGlnbiB0byA4Cglmb3IgY29uc2VjdXRpdmUgLmRhdGEgc2VjdGlvbi4KCShPVEhFUl9HT1RfU0VDVElPTlMpOiBEZWZpbmUsIGFsaWduIHRvIDggZm9yIGNvbnNlY3V0aXZlIC5ic3MKCXNlY3Rpb24gYWZ0ZXIgLmRhdGEgc2VjdGlvbi4KCSogZW11bHBhcmFtcy9zaGxlbGY2NC5zaDogRGl0dG8uCgkqIGVtdWxwYXJhbXMvc2hlbGYzMi5zaDogRGl0dG8uCgkoQUxJR05NRU5UKTogRGVmaW5lIHRvIDguCgkqIGVtdWxwYXJhbXMvc2hlbGYzMi5zaDogRGl0dG8uCgkyMDAwLTEyLTEyICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJKiBjb25maWd1cmUudGd0IChzaDY0LSotZWxmKik6IEFzc2lnbiB0YXJnX2V4dHJhX2xpYnBhdGggdG8gZ2V0CglidWlsdC1pbiBsaW5rZXIgc2NyaXB0cy4KCTIwMDAtMTEtMzAgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CgkqIGVtdWxwYXJhbXMvc2hsZWxmNjQuc2g6IE5ldy4KCSogZW11bHBhcmFtcy9zaGVsZjY0LnNoOiBOZXcuCgkqIGNvbmZpZ3VyZS50Z3QgKHNoNjQtKi1lbGYqKTogQWRkIHNoZWxmNjQgYW5kIHNobGVsZjY0IHRvCgl0YXJnX2V4dHJhX2VtdWxzLgoJKiBNYWtlZmlsZS5hbTogQWRkIHN1cHBvcnQgZm9yIHNobGVsZjY0IGFuZCBzaGVsZjY0LgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCTIwMDAtMTEtMjkgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CgkqIGNvbmZpZ3VyZS50Z3QgKHNoNjQtKi1lbGYqKTogQWRkIHNoZWxmIGFzIGRlZmF1bHQuCglBZGQgc2hsZWxmIHRvIHRhcmdfZXh0cmFfZW11bHMuCgkyMDAwLTExLTI0ICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJKiBlbXVscGFyYW1zL3NoZWxmMzIuc2g6IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL3NobGVsZjMyLnNoOiBOZXcgZmlsZS4KCSogTWFrZWZpbGUuYW06IEFkZCBzdXBwb3J0IGZvciBzaGxlbGYzMiBhbmQgc2hlbGYzMi4KCSogY29uZmlndXJlLnRndDogTWFwIHNoNjQtKi1lbGYqIHRvIHNobGVsZjMyIGFuZCBzaGVsZjMyLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDItMDUgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogbGRsYW5nLmMgKGxhbmdfcmVzZXRfbWVtb3J5X3JlZ2lvbnMpOiBSZW5hbWUgZnJvbQoJcmVzZXRfbWVtb3J5X3JlZ2lvbnMuICBDaGFuZ2UgYWxsIGNhbGxlcnMuICBNYWtlIHB1YmxpYy4KCSogbGRsYW5nLmggKGxhbmdfcmVzZXRfbWVtb3J5X3JlZ2lvbnMpOiBQcm90b3R5cGUuCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fZmluaXNoKTogQ2FsbAoJbGFuZ19yZXNldF9tZW1vcnlfcmVnaW9ucyBiZWZvcmUgbGFuZ19zaXplX3NlY3Rpb25zLgoJKiBlbXVsdGVtcGwvaHBwYWVsZi5lbSAoaHBwYWVsZl9sYXlvdXRfc2VjdGlvbnNfYWdhaW4pOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3BwYzY0ZWxmLmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9maW5pc2gpOiBMaWtld2lzZS4KCjIwMDItMDItMDQgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGVtdWx0ZW1wbC9tbWl4LWVsZm5tbW8uZW0gKG1taXhfYWZ0ZXJfYWxsb2NhdGlvbik6IFVzZSBzaWduZWQKCWFyaXRobWV0aWMgd2hlbiBjaGVja2luZyBmb3IgdG9vIG1hbnkgZ2xvYmFsIHJlZ2lzdGVycy4KCjIwMDItMDItMDIgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQUxMX0VNVUxBVElPTlMpOiBBZGQgZWhwcGFuYnNkLm8uCgkoZWhwcGFuYnNkLmMpOiBOZXcgcnVsZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS50Z3QgKGhwcGEqLSotbmV0YnNkKik6IE5ldyB0YXJnZXQuCgkqIGVtdWxwYXJhbXMvaHBwYWxpbnV4LnNoOiBBZGQgY29tbWVudCB0byBjaGVjayBvdGhlciBmaWxlcwoJdGhhdCBzb3VyY2UgdGhpcyBmaWxlIGl0IGlzIG1vZGlmaWVkLCBhbmQgbGlzdCB3aGljaAoJZmlsZXMgdGhhdCBkby4KCSogZW11bHBhcmFtcy9ocHBhbmJzZC5zaDogTmV3IGZpbGUuCgoyMDAyLTAyLTAxICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQHJlZGhhdC5jb20+CgoJKiBzY3JpcHR0ZW1wbC94c3Rvcm15MTYuc2M6IERvbid0IGFsbG9jYXRlIGV4dHJhIHNwYWNlIGZvciB0aGUKCXN0YWNrLgoKMjAwMi0wMi0wMSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCVN1cHBvcnQgb24tZGVtYW5kIGdsb2JhbCByZWdpc3RlciBhbGxvY2F0aW9uIGZyb20KCVJfTU1JWF9CQVNFX1BMVVNfT0ZGU0VUIHJlbG9jcy4KCSogZW11bHRlbXBsL21taXgtZWxmbm1tby5lbSAobW1peF9hZnRlcl9hbGxvY2F0aW9uKTogUmVuYW1lIGZyb20KCW1taXhfc2V0X3JlZ19zZWN0aW9uX3ZtYS4gIENhbGwKCV9iZmRfbW1peF9maW5hbGl6ZV9saW5rZXJfYWxsb2NhdGVkX2dyZWdzLgoJKG1taXhfYmVmb3JlX2FsbG9jYXRpb24pOiBOZXcgZnVuY3Rpb24uCgkoTERFTVVMX0FGVEVSX0FMTE9DQVRJT04pOiBTZXQgdG8gbW1peF9hZnRlcl9hbGxvY2F0aW9uLgoJKExERU1VTF9CRUZPUkVfQUxMT0NBVElPTik6IERlZmluZSB0byBtbWl4X2JlZm9yZV9hbGxvY2F0aW9uLgoJKiBzY3JpcHR0ZW1wbC9tbW8uc2MgKC50ZXh0KTogTWFyayAuaW5pdCwgLmZpbmkgYXMgS0VFUC4KCSguTU1JWC5yZWdfY29udGVudHMpOiBBZGQgLk1NSVgucmVnX2NvbnRlbnRzLmxpbmtlcl9hbGxvY2F0ZWQKCWJlZm9yZSAuTU1JWC5yZWdfY29udGVudHMuCgkqIGVtdWx0ZW1wbC9tbW8uZW0gKGdsZG1tb19iZWZvcmVfYWxsb2NhdGlvbik6IERlZmluZSB0byBkZWZhdWx0LgoJKG1tb19hZnRlcl9vcGVuKTogTmV3IGZ1bmN0aW9uLgoJKExERU1VTF9BRlRFUl9PUEVOKTogRGVmaW5lIHRvIG1tb19hZnRlcl9vcGVuLgoJKiBlbXVscGFyYW1zL2VsZjY0bW1peC5zaCAoT1RIRVJfU0VDVElPTlMpOiBUd2VhayBmb3JtYXR0aW5nLiAgQWRkCgkuTU1JWC5yZWdfY29udGVudHMubGlua2VyX2FsbG9jYXRlZCBiZWZvcmUgLk1NSVgucmVnX2NvbnRlbnRzLgoKMjAwMi0wMS0zMSAgSXZhbiBHdXp2aW5lYyAgPGl2YW5nQG9wZW5jb3Jlcy5vcmc+CgoJKiBlbXVscGFyYW1zL29yMzIuc2g6IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL29yMzJlbGYuc2g6IE5ldyBmaWxlLgoJKiBzY3JpcHR0ZW1wbC9vcjMyLnNjOiBOZXcgZmlsZS4KCSogY29uZmlndXJlLnRndCA6IEFkZCBzdXBwb3J0IGZvciBvcjMyLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUKCSogTWFrZWZpbGUuYW06IEFkZCBzdXBwb3J0IGZvciBvcjMyLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogTkVXUzogTWVudGlvbiBzdXBwb3J0IGZvciBvcjMyLgoJKiBwby9sZC5wb3Q6IFJlZ2VuZXJhdGUuCgoyMDAyLTAxLTI5ICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoJICAgIE1pdGNoIExpY2h0ZW5iZXJnICA8bXBsQGJyb2FkY29tLmNvbT4KCgkqIGVtdWxwYXJhbXMvZWxmMzJibWlwLnNoIChFWFRSQV9FTV9GSUxFKTogRGVmaW5lIHRvIGJlIG1pcHNlbGYuCgkqIGVtdWx0ZW1wbC9taXBzZWxmLmVtOiBOZXcgZmlsZSB0byBoYW5kbGUgTUlQUyBFTEYgZW1iZWRkZWQKCXJlbG9jIGNyZWF0aW9uIChsZCAtLWVtYmVkZGVkLXJlbG9jcykuCgoyMDAyLTAxLTI3ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgoyMDAyLTAxLTI2ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBNYWtlZmlsZS5hbSAoaW5zdGFsbCk6IERlcGVuZCBvbiBpbnN0YWxsLWluZm8uCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wMS0yNiAgQ2hyaXN0aWFuIFJvc2UgIDxtZW50aG9zQG1lbnRob3MuY29tPgoKCSogbGRtYWluLmMgKG1haW4pOiBVc2UgZnVsbCBzZW50ZW5jZXMgdG8gZWFzZSB0cmFuc2xhdGlvbi4KCjIwMDItMDEtMjYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcG8vZnIucG86IFVwZGF0ZWQgdmVyc2lvbi4KCjIwMDItMDEtMjUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcG8vZXMucG86IFVwZGF0ZWQgdmVyc2lvbi4KCjIwMDItMDEtMjUgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGxkbGV4LmwgKHl5X2lucHV0KTogQ29ycmVjdCBlcnJvciBjaGVjay4KCjIwMDItMDEtMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsZG1pc2MuYyAoZGVtYW5nbGUpOiBQdXQgYmFjayBkb3RzIHdoZW4gc3RyaW5nIG5vdCBkZW1hbmdsZWQuCgoyMDAyLTAxLTIyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZW11bHBhcmFtcy9lbGY2NGFscGhhLnNoIChOT1ApOiBVc2UgdW5vcC4KCjIwMDItMDEtMjEgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGxkbGV4Lmw6IFVzZSBmcmVhZCBpbnN0ZWFkIG9mIHJlYWQuCgoyMDAyLTAxLTIxICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogY29uZmlndXJlLnRndCAoaWE2NC0qLW5ldGJzZCopOiBOZXcgdGFyZ2V0LgoKMjAwMi0wMS0yMSAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbXVscGFyYW1zL2VsZjMyYnRzbWlwLnNoIChTSExJQl9URVhUX1NUQVJUX0FERFIpOiBDaGFuZ2UgdG8KCTAuCgkqIGVtdWxwYXJhbXMvZWxmNjRidHNtaXAuc2ggKFNITElCX1RFWFRfU1RBUlRfQUREUik6IExpa2V3aXNlLgoKMjAwMi0wMS0xOCAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogbGR2ZXIuYyAobGR2ZXJzaW9uKTogVXBkYXRlIHllYXIuCgoyMDAyLTAxLTE3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIHBvL2xkLnBvdDogUmVnZW5lcmF0ZS4KCjIwMDItMDEtMTYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbSAoZWVsZjY0cHBjLmMsIGVlbGY2NGxwcGMuYyk6IERlcGVuZCBvbiBwcGM2NGVsZi5lbS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGVtdWxwYXJhbXMvZWxmNjRwcGMuc2ggKEVYVFJBX0VNX0ZJTEUpOiBEZWZpbmUuCgkqIGVtdWx0ZW1wbC9wcGM2NGVsZi5lbTogTmV3IGZpbGUuCgoyMDAyLTAxLTE1ICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIHNjcmlwdHRlbXBsL3BlLnNjOiBBZGQgc3VwcG9ydCBmb3IgY29uc3RydWN0b3IgcHJpb3JpdGllcy4KCjIwMDItMDEtMDcgIE1hcmVrIE1pY2hhbGtpZXdpY3ogIDxtYXJla21AYW1lbGVrLmdkYS5wbD4KCgkqIGVtdWxwYXJhbXMvYXZyMTIwMC5zaCAoREFUQV9TVEFSVCk6IERlZmluZSBhcyAweDYwLgoJKiBlbXVscGFyYW1zL2F2cjIzeHguc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2F2cjQ0MzMuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2F2cjQ0eDQuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2F2cjg1eHguc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2F2cm1lZ2ExMDMuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2F2cm1lZ2ExNjEuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2F2cm1lZ2E2MDMuc2g6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9lbGYzMmF2ci5zYzogVXNlIERBVEFfU1RBUlQgaW5zdGVhZCBvZiAweDYwLgoKMjAwMi0wMS0wOCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBsZGxhbmcuYyAod2Fsa193aWxkX3NlY3Rpb24pOiBFeGNsdWRlIG9iamVjdCBmaWxlIGlmIGVuY2xvc2luZwoJYXJjaGl2ZSBpcyBleGNsdWRlZC4KCjIwMDItMDEtMDcgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQUxMX0VNVUxBVElPTlMpOiBBZGQgZXNoZWxmX25ic2QubyBhbmQgZXNobGVsZl9uYnNkLm8uCgkoZXNoZWxmX25ic2QuYyk6IE5ldyBydWxlLgoJKGVzaGxlbGZfbmJzZC5jKTogTmV3IHJ1bGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmUudGd0IChzaCpsZS0qLW5ldGJzZGVsZiopOiBOZXcgdGFyZ2V0LgoJKHNoKi0qLW5ldGJzZGVsZiopOiBOZXcgdGFyZ2V0LgoJKiBlbXVscGFyYW1zL3NoZWxmLnNoOiBEb2N1bWVudCB0aGF0IHNoZWxmX25ic2Quc2ggc291cmNlcyB0aGlzIGZpbGUuCgkqIGxkL2VtdWxwYXJhbXMvc2hlbGZfbmJzZC5zaDogTmV3IGVtdWxhdGlvbi4KCSogbGQvZW11bHBhcmFtcy9zaGxlbGZfbmJzZC5zaDogTmV3IGVtdWxhdGlvbi4KCjIwMDItMDEtMDcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcG8vZXMucG86IE5ldyBmaWxlOiBTcGFuaXNoIHRyYW5zbGF0aW9uLgoJKiBjb25maWd1cmUuaW4gKEFMTF9MSU5HVUFTKTogQWRkIGVzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTAxLTA2ICBKb2huIE1hcnNoYWxsICA8am1hcnNoYWxsQGFjbS5vcmc+CgoJKiBsZC50ZXhpbmZvOiBOb3RlIHRoYXQgLS1lbWl0LXJlbG9jcyBpcyBjdXJyZW50bHkgb25seQoJaW1wbGVtZW50ZWQgZm9yIEVMRi4KCjIwMDItMDEtMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKGdsZCR7RU1VTEFUSU9OX05BTUV9X3BsYWNlX29ycGhhbik6IE1ha2UgdXNlCglvZiBiZmRfc2VjdGlvbl9saXN0X3JlbW92ZSBhbmQgYmZkX3NlY3Rpb25fbGlzdF9pbnNlcnQgbWFjcm9zLgoJKiBlbXVsdGVtcGwvcGUuZW0gKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9wbGFjZV9vcnBoYW4pOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL21tby5lbSAobW1vX3BsYWNlX29ycGhhbik6IExpa2V3aXNlLgoKMjAwMi0wMS0wNCAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZ3VyZS50Z3QgKHg4Nl82NC0qLW5ldGJzZCopOiBOZXcgdGFyZ2V0LgoKMjAwMS0xMi0yMSAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkoZ2xkKl9jcmVhdGVfb3V0cHV0X3NlY3Rpb25fc3RhdGVtZW50cyk6IE5ldyBmdW5jdGlvbi4KCUZvciAtYmluaXRmaW5pIHN1cHBvcnQuCgkqIGVtdWx0ZW1wbC9haXguZW0gKGdsZCpfYmVmb3JlX3BhcnNlKTogRml4IGNvbW1lbnQuCgkqIGVtdWx0ZW1wbC9haXguZW0gKGdsZCpfcGFyc2VfYXJncyk6IEZpeCBjb21tZW50LgoKMjAwMS0xMi0yMCAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZ3VyZS50Z3QgKG1pcHMqLWRlYy1uZXRic2QqKTogRGVsZXRlIGFsaWFzIGZvcgoJbWlwcyplbC0qLW5ldGJzZCouCgkoc3BhcmM2NC0qLW5ldGJzZCopOiBBZGQgZWxmMzJfc3BhcmMgdG8gdGFyZ19leHRyYV9lbXVscy4KCgkqIGNvbmZpZ3VyZS50Z3QgKGFybS0qLW5ldGJzZGVsZiopOiBBZGQgdGFyZ2V0LgoJKGFybS0qLW5ldGJzZCopOiBBZGQgYXJtZWxmIGFuZCBhcm1lbGZfbmJzZCB0byB0YXJnX2V4dHJhX2VtdWxzLgoJKiBlbXVscGFyYW1zL2FybWVsZl9uYnNkLnNoOiBBZGRlZC4KCSogTWFrZWZpbGUuYW06IEFkZCBydWxlcyBmb3IgZWFybWVsZl9uYnNkLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDEtMTItMTkgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4sCgkgICAgU3VzYW5uZSBPYmVyaGF1c2VyIDxmcm9oQHN1c2UuZGU+CgoJKiBjb25maWd1cmUuaG9zdDogQWRkIHJ1bGVzIGZvciB4ODZfNjQtKmxpbnV4LWdudS4gIENoYW5nZQoJczM5MHgtbGludXggZW50cnkgdG8gdXNlIGdjYyB0byByZXBvcnQgY29uZmlndXJhdGlvbiwgcmVwbGFjZSBnY2MKCXdpdGggJENDIGluIHMzOTAtbGludXgKCjIwMDEtMTItMTkgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGxkLnRleGluZm8gKFZFUlNJT04pOiBGaXggbWFya3VwLgoKMjAwMS0xMi0xOCAgbWF0dGhldyBncmVlbiAgPG1yZ0BldGVybmEuY29tLmF1PgoKCSogTWFrZWZpbGUuYW0gKEFMTF9FTVVMQVRJT05TKTogQWRkIG02OGtlbGZuYnNkLm8uCgkobTY4a2VsZm5ic2QuYyk6IE5ldyBydWxlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLnRndCAobTY4Ki1ocC1uZXRic2QqKTogUmVuYW1lZCB0byAuLgoJKG02OCotKi1uZXRic2QqNGsqKTogLi4gdGhpcy4KCShtNjgqLSotbmV0YnNkZWxmKik6IE5ldyB0YXJnZXQuCgkobTY4Ki0qLW5ldGJzZCopOiBBbHNvIGluY2x1ZGUgRUxGIHN1cHBvcnQuCgkobTY4Ki0qLW5ldGJzZGFvdXQqKTogTmV3IGFsaWFzIGZvciBtNjgqLSotbmV0YnNkKi4KCSogZW11bHBhcmFtcy9tNjhrZWxmbmJzZC5zaDogTmV3IGVtdWxhdGlvbi4KCjIwMDEtMTItMTggIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogbGRncmFtLnkgKHZlcnNfbm9kZSk6IFN1cHBvcnQgYW5vbnltb3VzIHZlcnNpb24gdGFncy4KCSogbGRsYW5nLmMgKGxhbmdfcmVnaXN0ZXJfdmVyc19ub2RlKTogRW5zdXJlIGFub255bW91cyB2ZXJzaW9uCgl0YWcgaXMgbm90IGRlZmluZWQgdG9nZXRoZXIgd2l0aCBub24tYW5vbnltb3VzIHZlcnNpb25zLgoJKiBsZC50ZXhpbmZvOiBEb2N1bWVudCBpdC4KCjIwMDEtMTItMTggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcG8vdHIucG86IE5ldyBmaWxlOiBUdXJraXNoIHRyYW5zbGF0aW9uLgoJKiBjb25maWd1cmUuaW4gKEFMTF9MSU5HVUFTKTogQWRkIHRyLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAxLTEyLTE3ICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogTWFrZWZpbGUuYW06IEFkZCBydWxlcyBmb3IgZWVsZjY0YWxwaGFfbmJzZC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS50Z3QgKGFscGhhKi0qLW5ldGJzZCopOiBTZXQKCXRhcmdfZW11bCB0byBlbGY2NGFscGhhX25ic2QuCgkqIGVtdWxwYXJhbXMvZWxmNjRhbHBoYV9uYnNkLnNoOiBBZGRlZC4KCjIwMDEtMTItMTcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKGdsZCR7RU1VTEFUSU9OX05BTUV9X3BsYWNlX29ycGhhbik6IEFkanVzdAoJc2VjdGlvbl90YWlsIHdoZW4gZmlkZGxpbmcgd2l0aCBzZWN0aW9uIGxpc3QuCgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1fbGlzdF9vcHRpb25zKTogRW5zdXJlIHNlbnRlbmNlcyBhcmVuJ3QKCWJyb2tlbiBpbnRvIHNlcGFyYXRlIHN0cmluZ3MgdG8gbWFrZSB0cmFuc2xhdGlvbiBlYXNpZXIuCgkqIGVtdWx0ZW1wbC9tbW8uZW0gKG1tb19wbGFjZV9vcnBoYW4pOiBBZGp1c3Qgc2VjdGlvbl90YWlsIHdoZW4KCWZpZGRsaW5nIHdpdGggc2VjdGlvbiBsaXN0LgoJKiBlbXVsdGVtcGwvcGUuZW0gKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9wbGFjZV9vcnBoYW4pOiBMaWtld2lzZS4KCjIwMDEtMTItMTYgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIHNjcmlwdHRlbXBsL21tby5zYzogQWRkIC5kZWJ1Z19yYW5nZXMgdG8gbGlzdGVkIHNlY3Rpb25zLgoKMjAwMS0xMi0xNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbWFpbi5jIChtYWluKTogSW5pdGlhbGlzZSBsaW5rX2luZm8uZWhfZnJhbWVfaGRyLgoKMjAwMS0xMi0xMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKGZpbmlzaCk6IFN1cHBseSBvdXRwdXRfYmZkCgl0byBiZmRfZWxmKl9kaXNjYXJkX2luZm8uCgkoT1BUSU9OX0VIX0ZSQU1FX0hEUik6IERlZmluZS4KCShsb25nb3B0cyk6IEFkZCAtLWVoLWZyYW1lLWhkci4KCShwYXJzZV9hcmdzKTogSGFuZGxlIGl0LgoJKGxpc3Rfb3B0aW9ucyk6IEFkZCAtLWVoLWZyYW1lLWhkciB0byBoZWxwLgoJKiBlbXVsdGVtcGwvaHBwYWVsZi5lbSAoZmluaXNoKTogU3VwcGx5IG91dHB1dF9iZmQKCXRvIGJmZF9lbGYqX2Rpc2NhcmRfaW5mby4KCSogc2NyaXB0dGVtcGwvZWxmLnNjICguZWhfZnJhbWVfaGRyKTogQWRkLgoKMjAwMS0xMi0xMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxleHN1cC5jIChwYXJzZV9hcmdzKTogRG9uJ3QgcGFzcyBzaG9ydG9wdHMgdG8gc2Vjb25kIGNhbGwgdG8KCWdldG9wdCBmdW5jdGlvbnMuICBSZXN0b3JlIG9wdGluZCByYXRoZXIgdGhhbiBkZWNyZW1lbnRpbmcgYmVmb3JlCglzZWNvbmQgY2FsbC4gIFJlbW92ZSBlcnJpbmQgYXMgaXQgbm93IGR1cGxpY2F0ZXMgbGFzdF9vcHRpbmQuCgoyMDAxLTEyLTExICBDaHJpc3RvcGhlciBGYXlsb3IgIDxjZ2ZAcmVkaGF0LmNvbT4KCgkqIGVtdWx0ZW1wbC9wZS5lbSAoZ2xkXyR7RU1VTEFUSU9OX05BTUV9X2xpc3Rfb3B0aW9ucyk6IEZpeCB0eXBvLgoKMjAwMS0xMi0wNyAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0ByZWRoYXQuY29tPgoJICAgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBNYWtlZmlsZS5hbTogQWRkIHN1cHBvcnQgZm9yIHhzdG9ybXkxNi4KCSogY29uZmlndXJlLnRndDogQWRkIHN1cHBvcnQgZm9yIHhzdG9ybXkxNi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGVtdWxwYXJhbXMvZWxmMzJ4c3Rvcm15MTYuc2g6IE5ldyBmaWxlLgoJKiBzY3JpcHR0ZW1wbC94c3Rvcm15MTYuc2M6IE5ldyBmaWxlLgoKMjAwMS0xMC0wMSAgQ2hyaXN0b3BoZXIgRmF5bG9yIDxjZ2ZAY3lnbnVzLmNvbT4KCgkqIE1ha2VmaWxlLmluIChMSUJfUEFUSCk6IE1ha2UgY29uZmlndXJhYmxlLgoJKEdFTlNDUklQVFMpOiBTZXQgTElCX1BBVEggaW4gZW52aXJvbm1lbnQuCgkqIGNvbmZpZ3VyZS5pbjogU3Vic3RpdHV0ZSBMSUJfUEFUSC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmUudGd0ICgqY3lnd2luKTogU2V0IExJQl9QQVRIIGZvciBjcm9zcyBidWlsZC4KCSogY29uZmlndXJlLmhvc3QgKCpjeWd3aW4pOiBBZGQgL3Vzci9saWIvdzMyYXBpIHRvIE5BVElWRV9MSUJfRElSUy4KCjIwMDEtMTItMDcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogbGV4c3VwLmMgKGxkX29wdGlvbnMpOiBJbnNlcnQgJ1BST0dSQU0nIGludG8gdGhlIHRleHQgc3RyaW5nCglkZXNjcmliaW5nIHRoZSAtTiBvcHRpb24gc28gdGhhdCBpdCBpcyBlYXNpZXIgdG8gdHJhbnNsYXRlIGludG8KCWZvcmVpZ24gbGFuZ3VhZ2VzLgoKMjAwMS0xMi0wNSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBlbXVsdGVtcGwvcGUuZW0gKC4uLl9saXN0X29wdGlvbnMpOiBSZXBsYWNlIG11bHRpcGxlIGZwcmludGYKCXN0YXRlbWVudHMgZGVzY3JpYmluZyBhIHNpbmdsZSBvcHRpb24gd2l0aCBhIHNpbmdsZSwgbmV3bGluZQoJZXNjYXBlZCBmcHJpbnRmLiAgVGhpcyBhbGxvd3MgYmV0dGVyIHRyYW5zbGF0aW9uIGludG8gb3RoZXIKCWxhbmd1YWdlcy4KCgkqIGxkbWFpbi5jIChhZGRfYXJjaGl2ZV9lbGVtZW50KTogQ29tYmluZSBtdWx0aXBsZSBzdHJpbmdzCglpbnRvIGEgc2luZ2xlIHN0cmluZyB0byBwZXJtaXQgYmV0dGVyIHRyYW5zbGF0aW9uIGludG8gb3RoZXIKCWxhbmd1YWdlcy4KCjIwMDEtMTItMDUgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBNYWtlZmlsZS5hbTogUmVtb3ZlIGVhaXhwcGM2NC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAxLTEyLTA0ICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogZW11bHRlbXBsL2FpeC5lbSAoY2hvb3NlX3RhcmdldCk6IENoYW5nZSBkZWZhdWx0IHRhcmdldCB0bwoJT1VUUFVUX0ZPUk1BVCBmb3IgcHBjbWFjb3MuICBBZGQgYnJhY2VzIHRvIHJlbW92ZSBjb21waWxlcgoJd2FybmluZy4KCShnbGQqX3JlYWRfZmlsZSk6ICBGaXggdHlwby4KCShjaGFuZ2Vfc3ltYm9sX21vZGUpOiBBZGQgcHJvdG90eXBlLgoJKGlzX3N5c2NhbGwpOiBTYW1lLgoKCSogZW11bHBhcmFtcy9haXhwcGMuc2ggKFNZU0NBTExfTUFTSywgU1lNQk9MX01PREVfTUFTSyk6IERlbGV0ZS4KCSogZW11bHBhcmFtcy9haXhyczYuc2ggOiBTYW1lLgoJKiBlbXVscGFyYW1zL3BwY21hY29zLnNoIDogU2FtZS4KCSogZW11bHBhcmFtcy9haXhwcGM2NC5zaCA6IERlbGV0ZSBmaWxlLgoJKiBlbXVsdGVtcGwvYWl4LmVtIDogRm9ybWF0dGluZyBjaGFuZ2VzLgoKMjAwMS0xMi0wNCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBlbXVscGFyYW1zL2NyaXNlbGYuc2ggKE5PX1NNQUxMX0RBVEEpOiBTZXQsIHRvIHllcy4KCShPVEhFUl9CU1NfRU5EX1NZTUJPTFMpOiBEb24ndCByZWZlciB0byAuc2JzcyB3aGVuIHNldHRpbmcKCV9fU2Jzcy4KCShPVEhFUl9FTkRfU1lNQk9MUyk6IEZpeCBmb3JtYXR0aW5nLgoJKiBlbXVscGFyYW1zL2NyaXNsaW51eC5zaCAoTk9fU01BTExfREFUQSk6IFNldCwgdG8geWVzLgoJKE9USEVSX0VORF9TWU1CT0xTKTogRml4IGZvcm1hdHRpbmcuCgoyMDAxLTEyLTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRleHAuYyAoZXhwX3ByaW50X3Rva2VuKTogQ29ycmVjdCAidGFibGUiIGVudHJ5IGZvciBSU0hJRlQuCgoyMDAxLTEyLTAyICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLnRndCA6IFJlbW92ZSBlYWl4cHBjNjQgZW11bGF0aW9ucy4KCSogTWFrZWZpbGUuaW4gOiBSZW1vdmUgZWFpeHBwYzY0LmMKCSogbGRlbXVsLmMgKGxkZW11bF9jaG9vc2VfdGFyZ2V0KTogTmV3IHBhcmFtZXRlcnMgYXJnYywgYXJndi4KCShsZGVtdWxfZGVmYXVsdF90YXJnZXQpOiBTYW1lLgoJKiBlbXVsdGVtcGwvZ2xkOTYwLmVtIChnbGQ5NjBfY2hvb3NlX3RhcmdldCk6ICBTYW1lLgoJKiBlbXVsdGVtcGwvZ2xkOTYwYy5lbSAoZ2xkOTYwX2Nob29zZV90YXJnZXQpOiAgU2FtZS4KCSogc2NyaXB0dGVtcGwvYWl4LnNjOiBSZW1vdmUgT1VUUFVUX0ZPUk1BVC4KCSogZW11bHRlbXBsL2FpeC5lbSAoaXNfc3lzY2FsbCk6IHN5c2NhbGxfbWFzayBub3cgYSB2YXJpYWJsZS4KCSogZW11bHRlbXBsL2FpeC5lbSAoZ2xkKl9yZWFkX2ZpbGUpOiBzeW1ib2xfbW9kZV9tYXNrIG5vdyBhIHZhcmlhYmxlLgoJKiBlbXVsdGVtcGwvYWl4LmVtIChnbGQqX3BhcnNlX2FyZ3MpOiBIYW5kbGUgLWIzMiAtYjY0IGVtdWxhdGlvbi4KCSogZW11bHRlbXBsL2FpeC5lbSAoY2hvb3NlX3RhcmdldCk6IE5ldyBmdW5jdGlvbi4gIEhhbmRsZSBlbXVsYXRpb24gb2YKCS1iMzIgYW5kIC1iNjQuCgoyMDAxLTExLTI3ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVtdWxwYXJhbXMvZWxmX2kzODYuc2ggKE5PX1NNQUxMX0RBVEEpOiBTZXQgdG8geWVzLgoJKiBlbXVscGFyYW1zL2VsZl9pMzg2X2JlLnNoIChOT19TTUFMTF9EQVRBKTogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmX2kzODZfY2hhb3Muc2ggKE5PX1NNQUxMX0RBVEEpOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGZfaTM4Nl9sZHNvLnNoIChOT19TTUFMTF9EQVRBKTogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmX3g4Nl82NC5zaCAoTk9fU01BTExfREFUQSk6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL202OGtlbGYuc2ggKE5PX1NNQUxMX0RBVEEpOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGYzMl9zcGFyYy5zaCAoTk9fU01BTExfREFUQSk6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjY0X3NwYXJjLnNoIChOT19TTUFMTF9EQVRBKTogTGlrZXdpc2UuCgoJKiBzY3JpcHR0ZW1wbC9lbGYuc2MgKFNCU1MpOiBOZXcuIERlZmluZSBpZiAke05PX1NNQUxMX0RBVEF9CglpcyBub3QgZW1wdHkuCgkoU0RBVEEpOiBMaWtld2lzZS4KCShSRUxfU0RBVEEpOiBMaWtld2lzZS4KCShSRUxfU0JTUyk6IExpa2V3aXNlLgoJKFJFTF9TREFUQTIpOiBMaWtld2lzZS4KCShSRUxfU0JTUzIpOiBMaWtld2lzZS4KCShTQlNTMik6IERlZmluZSBpZiAke05PX1NNQUxMX0RBVEF9IGlzIG5vdCBlbXB0eS4KCShTREFUQTIpOiBMaWtld2lzZS4KCjIwMDEtMTEtMjUgIFN0ZXBoYW5lIENhcnJleiAgPFN0ZXBoYW5lLkNhcnJlekB3b3JsZG5ldC5mcj4KCgkqIHNjcmlwdHRlbXBsL2VsZm02OGhjMTEuc2MgKENUT1IsIERUT1IpOiBQdXQgY29uc3RydWN0b3IgYW5kCglkZXN0cnVjdG9yIGluIHJvbS4KCSogc2NyaXB0dGVtcGwvZWxmbTY4aGMxMi5zYyAoQ1RPUiwgRFRPUik6IExpa2V3aXNlLgoKMjAwMS0xMS0yMiAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGVkIHdpdGggYXV0b21ha2UgYmFzZWQgb24gYXV0b21ha2UKCTEuNC04IGluIFJlZEhhdCA3LjEuCgoyMDAxLTExLTIyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW0gKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKTogRGVmaW5lLgoJKGNvbmZpZy5zdGF0dXMpOiBEZWxldGUgcnVsZS4KCUFkZCBleHRyYSBkZXBlbmRlbmNpZXMgdG8gY292ZXIgc291cmNlZCBlbXVscGFyYW1zIGZpbGVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCgkqIHNjcmlwdHRlbXBsL2VsZi5zYzogT3JkZXIgPHNlY3Rpb24+LCA8c2VjdGlvbj4uKiBhbmQKCWNvcnJlc3BvbmRpbmcgbGlua29uY2Ugc2VjdGlvbnMgYXMgc2VlbiBpbiBpbnB1dCBmaWxlcy4KCUZvcm1hdHRpbmcgZml4ZXMuICBaZXJvIHZtYSBvZiBhbGwgc2VjdGlvbnMgaWYgbm90IHJlbG9jYXRpbmcuCgkoU1RBQ0spOiBEZWZpbmUgYW5kIGluc2VydCBpZiBTVEFDS19BRERSIGRlZmluZWQuCgkoT1RIRVJfUkVMT0NBVElOR19TRUNUSU9OUyk6IERlbGV0ZS4KCShPVEhFUl9FTkRfU1lNQk9MUyk6IERlZmluZS4KCShPVEhFUl9SRUFET05MWV9TRUNUSU9OUyk6IEFsd2F5cyBpbnNlcnQsIG5vdCBqdXN0IHdoZW4gcmVsb2NhdGluZy4KCShPVEhFUl9SRUFEV1JJVEVfU0VDVElPTlMpOiBMaWtld2lzZS4KCShPVEhFUl9HT1RfU0VDVElPTlMpOiBMaWtld2lzZS4KCShPVEhFUl9TREFUQV9TRUNUSU9OUyk6IExpa2V3aXNlLgoJKE9USEVSX0JTU19TRUNUSU9OUyk6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9lbGZpMzcwLnNjIChPVEhFUl9SRUFET05MWV9TRUNUSU9OUyk6IExpa2V3aXNlLgoJKE9USEVSX1JFQURXUklURV9TRUNUSU9OUyk6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9udy5zYyAoT1RIRVJfUkVBRE9OTFlfU0VDVElPTlMpOiBMaWtld2lzZS4KCShPVEhFUl9SRUFEV1JJVEVfU0VDVElPTlMpOiBMaWtld2lzZQoKCSogZW11bHBhcmFtcy9hcm1lbGYuc2ggKE9USEVSX1JFTE9DQVRJTkdfU0VDVElPTlMpOiBEZWxldGUuCgkoU1RBQ0tfQUREUik6IERlZmluZS4KCSogZW11bHBhcmFtcy9hcm1lbGZfb2FiaS5zaDogQXMgZm9yIGFybWVsZi5zaC4KCSogZW11bHBhcmFtcy9lbGYzMm1jb3JlLnNoOiBBcyBmb3IgYXJtZWxmLnNoLgoJKiBlbXVscGFyYW1zL2g4MzAwZWxmLnNoOiBBcyBmb3IgYXJtZWxmLnNoLgoJKiBlbXVscGFyYW1zL21uMTAyMDAuc2g6IEFzIGZvciBhcm1lbGYuc2guCgkqIGVtdWxwYXJhbXMvc2hlbGYuc2g6IEFzIGZvciBhcm1lbGYuc2guCgoJKiBlbXVscGFyYW1zL2VsZjMyZnIzMC5zaCAoT1RIRVJfUkVMT0NBVElOR19TRUNUSU9OUyk6IERlbGV0ZS4KCShPVEhFUl9FTkRfU1lNQk9MUyk6IERlZmluZS4KCSogZW11bHBhcmFtcy9tMzJyZWxmLnNoOiBBcyBmb3IgZWxmMzJmcjMwLnNoLgoJKiBlbXVscGFyYW1zL2g4MzAwaGVsZi5zaDogQXMgZm9yIGVsZjMyZnIzMC5zaC4KCSogZW11bHBhcmFtcy9oODMwMHNlbGYuc2g6IEFzIGZvciBlbGYzMmZyMzAuc2guCgoJKiBlbXVscGFyYW1zL2NyaXNlbGYuc2ggKE9USEVSX1JFQURPTkxZX1NFQ1RJT05TKTogUHJvdGVjdCBzeW1ib2wKCWRlZmluZXMgd2l0aCBSRUxPQ0FUSU5HIHRlc3QuCgkoT1RIRVJfU0RBVEFfU0VDVElPTlMpOiBMaWtld2lzZS4KCShPVEhFUl9SRUxPQ0FUSU5HX1NFQ1RJT05TKTogRGVsZXRlLCByZXBsYWNpbmcgd2l0aC4uCgkoT1RIRVJfRU5EX1NZTUJPTFMpOiAuLnRoaXMuCgkqIGVtdWxwYXJhbXMvY3Jpc2xpbnV4LnNoOiBBcyBmb3IgY3Jpc2VsZi5zaC4KCgkqIGVtdWxwYXJhbXMvZWxmMzJibWlwbjMyLnNoIChPVEhFUl9TREFUQV9TRUNUSU9OUyk6IFplcm8gdm1hCglpZiBub3QgcmVsb2NhdGluZy4KCShPVEhFUl9SRUxPQ0FUSU5HX1NFQ1RJT05TKTogRGVsZXRlLCByZXBsYWNpbmcgd2l0aC4uCgkoT1RIRVJfU0VDVElPTlMpOiAuLnRoaXMuICBaZXJvIHZtYSBpZiBub3QgcmVsb2NhdGluZy4gIE9yZGVyCglub3JtYWwgYW5kIGxpbmtvbmNlIHNlY3Rpb25zIGFzIHNlZW4gaW4gaW5wdXQgZmlsZXMuCgkqIGVtdWxwYXJhbXMvZWxmMzJibWlwLnNoIChEQVRBX0FERFIpOiBEb24ndCBkZWZpbmUgaWYgRU1CRURERUQuCgkoVEVYVF9EWU5BTUlDKTogTGlrZXdpc2UuCgkoSU5JVElBTF9SRUFET05MWV9TRUNUSU9OUyk6IFplcm8gdm1hIGlmIG5vdCByZWxvY2F0aW5nLgoJKE9USEVSX1NEQVRBX1NFQ1RJT05TKTogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmMzJwcGMuc2ggKE9USEVSX1JFQURXUklURV9TRUNUSU9OUyk6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL3NobGVsZl9saW51eC5zaCAoT1RIRVJfUkVBRFdSSVRFX1NFQ1RJT05TKTogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmNjRhbHBoYS5zaCAoT1RIRVJfUkVBRE9OTFlfU0VDVElPTlMpOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9ocHBhbGludXguc2ggKE9USEVSX1JFQURPTkxZX1NFQ1RJT05TKTogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmNjRfYWl4LnNoIChPVEhFUl9HT1RfU0VDVElPTlMpOiBMaWtld2lzZS4KCShPVEhFUl9QTFRfUkVMT0NfU0VDVElPTlMpOiBMaWtld2lzZS4KCShPVEhFUl9SRUFET05MWV9TRUNUSU9OUyk6IExpa2V3aXNlLiAgT3JkZXIgbm9ybWFsIGFuZCBsaW5rb25jZQoJc2VjdGlvbnMgYXMgc2VlbiBpbiBpbnB1dCBmaWxlcy4KCSogZW11bHBhcmFtcy9lbGY2NF9pYTY0LnNoOiBBcyBmb3IgZW11bHBhcmFtcy9lbGY2NF9haXguc2guCgkqIGVtdWxwYXJhbXMvaHBwYTY0bGludXguc2ggKE9USEVSX1JFQURPTkxZX1NFQ1RJT05TKTogWmVybyB2bWEKCWlmIG5vdCByZWxvY2F0aW5nLgoJKE9USEVSX1JFQURXUklURV9TRUNUSU9OUywgT1RIRVJfQlNTX1NFQ1RJT05TKTogTGlrZXdpc2UuCgkoT1RIRVJfQlNTX0VORF9TWU1CT0xTKTogTWVyZ2UgZnJvbSBlbGY2NGhwcGEuc2guCgkqIGVtdWxwYXJhbXMvZWxmNjRtbWl4LnNoIChPVEhFUl9SRUxPQ0FUSU5HX1NFQ1RJT05TKTogRGVsZXRlLgoJKE9USEVSX1NFQ1RJT05TKTogSW5zdGVhZCwgdXNlIHRoaXMuLgoJKE9USEVSX0VORF9TWU1CT0xTKTogLi5hbmQgdGhpcy4KCgkqIGVtdWxwYXJhbXMvZWxmMzJiNDMwMC5zaDogU291cmNlIGVsZjMyYm1pcC5zaCwgcmVtb3ZlIGR1cGxpY2F0ZXMuCgkqIGVtdWxwYXJhbXMvZWxmMzJic21pcC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmMzJidHNtaXAuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjMyZWJtaXAuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjMybG1pcC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmMzJlbG1pcC5zaDogU291cmNlIGVsZjMybG1pcC5zaCwgcmVtb3ZlIGR1cGxpY2F0ZXMuCgkqIGVtdWxwYXJhbXMvZWxmMzJsc21pcC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmMzJsdHNtaXAuc2g6IFNvdXJjZSBlbGYzMmJ0c21pcC5zaCwgcmVtb3ZlIGR1cGxpY2F0ZXMuCgkqIGVtdWxwYXJhbXMvZWxmMzJsNDMwMC5zaDogU291cmNlIGVsZjMyYjQzMDAuc2gsIHJlbW92ZSBkdXBsaWNhdGVzLgoJKiBlbXVscGFyYW1zL2VsZjY0Ym1pcC5zaDogU291cmNlIGVsZjMyYm1pcG4zMi5zaCwgcmVtb3ZlIGR1cGxpY2F0ZXMuCgkqIGVtdWxwYXJhbXMvZWxmNjRidHNtaXAuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjY0bHRzbWlwLnNoOiBTb3VyY2UgZWxmNjRidHNtaXAuc2gsIHJlbW92ZSBkdXBsaWNhdGVzLgoJKiBlbXVscGFyYW1zL2VsZjMybHBwYy5zaDogU291cmNlIGVsZjMycHBjLnNoLCByZW1vdmUgZHVwbGljYXRlcy4KCSogZW11bHBhcmFtcy9lbGYzMnBwY2xpbnV4LnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGYzMnBwY3NpbS5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmMzJscHBjc2ltLnNoOiBTb3VyY2UgZWxmMzJscHBjLnNoLCByZW1vdmUgZHVwbGljYXRlcy4KCSogZW11bHBhcmFtcy9lbGY2NGhwcGEuc2g6IFNvdXJjZSBocHBhNjRsaW51eC5zaCwgcmVtb3ZlIGR1cGxpY2F0ZXMuCgkqIGVtdWxwYXJhbXMvaDgzMDBoZWxmLnNoOiBTb3VyY2UgaDgzMDBlbGYuc2gsIHJlbW92ZSBkdXBsaWNhdGVzLgoJKiBlbXVscGFyYW1zL2g4MzAwc2VsZi5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvbW4xMDMwMC5zaDogU291cmNlIG1uMTAyMDAuc2gsIHJlbW92ZSBkdXBsaWNhdGVzLgoJKiBlbXVscGFyYW1zL3NoLnNoOiBDb21tZW50LgoJKiBlbXVscGFyYW1zL3NobC5zaDogU291cmNlIHNoLnNoLCByZW1vdmUgZHVwbGljYXRlcy4KCSogZW11bHBhcmFtcy9zaGxlbGYuc2g6IFNvdXJjZSBzaGVsZi5zaCwgcmVtb3ZlIGR1cGxpY2F0ZXMuCgkqIGVtdWxwYXJhbXMvc2hlbGZfbGludXguc2g6IFNvdXJjZSBzaGxlbGZfbGludXguc2gsIHJlbW92ZSBkdXBsaWNhdGVzLgoKMjAwMS0xMS0yMSAgRGF2aWQgSGVpbmUgPGRsaGVpbmVAdGVuc2lsaWNhLmNvbT4KCSAgICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRsYW5nLmMgKG1hcF9pbnB1dF90b19vdXRwdXRfc2VjdGlvbnMpOiBSZXBsYWNlICJicmVhayIKCWFjY2lkZW50YWxseSByZW1vdmVkIHdpdGggMjAwMS0wOC0wMyBjaGFuZ2UuCgkobGFuZ19nY19zZWN0aW9uc18xKTogTGlrZXdpc2UuCgoyMDAxLTExLTIxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRsYW5nLmMgKHdhbGtfd2lsZF9zZWN0aW9uKTogTW92ZSBzZWMgPT0gTlVMTCBjYXNlIG91dCBvZiBsb29wLgoKMjAwMS0xMS0yMCAgQW5nZWxhIE1hcmllIFRob21hcyA8YW5nZWxhQHJlZGhhdC5jb20+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKGdsZCR7RU1VTEFUSU9OX05BTUV9X2ZpbmlzaCk6IFVzZSBOVUxMIGluc3RlYWQKCW9mIGZhbHNlIHdoZW4gY2FsbGluZyBsYW5nX3NpemVfc2VjdGlvbnMuCgkqIGVtdWx0ZW1wbC9ocHBhZWxmLmVtIChocHBhZWxmX2xheW91dF9zZWN0aW9uc19hZ2Fpbik6IExpa2V3aXNlLgoKMjAwMS0xMS0xNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fZmluaXNoKTogT25seSBlbWl0IHRoaXMKCWZ1bmN0aW9uIHdoZW4gTERFTVVMX0ZJTklTSCBpc24ndCBzZXQgdG8gdGhlIHNhbWUgbmFtZS4gIERvbid0CgljYWxsICR7TERFTVVMX0ZJTklTSH0uCgkobGRfJHtFTVVMQVRJT05fTkFNRX1fZW11bGF0aW9uKTogQ2FsbCAkTERFTVVMX0ZJTklTSCBpZiBkZWZpbmVkLgoJKiBlbXVsdGVtcGwvYXJtZWxmLmVtIChhcm1fZWxmX2ZpbmlzaCk6IENhbGwKCWdsZCR7RU1VTEFUSU9OX05BTUV9X2ZpbmlzaC4KCSogZW11bHRlbXBsL2hwcGFlbGYuZW0gKGhwcGFlbGZfZmluaXNoKTogUmVuYW1lIHRvCglnbGQke0VNVUxBVElPTl9OQU1FfV9maW5pc2guICBDYWxsIGJmZF9lbGYzMl9kaXNjYXJkX2luZm8gYW5kCglocHBhZWxmX2xheW91dF9zZWN0aW9uc19hZ2FpbiBpZiBuZWNlc3NhcnkuCgkobmVlZF9sYXlpbmdfb3V0KTogTmV3IHZhci4KCShocHBhZWxmX2xheWFvdXRfc2VjdGlvbnNfYWdhaW4pOiBSZW5hbWUgdG8KCWhwcGFlbGZfbGF5b3V0X3NlY3Rpb25zX2FnYWluLiAgQ2xlYXIgbmVlZF9sYXlpbmdfb3V0LgoJKFBBUlNFX0FORF9MSVNUX09QVElPTlMpOiBGb3JtYXQgdGV4dC4KCjIwMDEtMTEtMTQgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVtdWx0ZW1wbC9hcm1lbGYuZW0gKGFybV9lbGZfZmluaXNoKTogUmVuYW1lZCBmcm9tCglnbGQke0VNVUxBVElPTl9OQU1FfV9maW5pc2guCgkoTERFTVVMX0ZJTklTSCk6IFNldCB0byBhcm1fZWxmX2ZpbmlzaC4KCjIwMDEtMTEtMTQgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogZW11bHRlbXBsL2VsZjMyLmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9maW5pc2gpOiBOZXcuCgkoc3RydWN0IGxkX2VtdWxhdGlvbl94ZmVyX3N0cnVjdCk6IFVzZSBpdC4KCjIwMDEtMTEtMTMgIFJvc3MgQWxleGFuZGVyIDxyb3NzLmFsZXhhbmRlckB1ay5uZWNldXIuY29tPgoKCSogZW11bHBhcmFtcy9lbGY2NGhwcGEuc2ggKE9USEVSX0JTU19FTkRfU1lNQk9MUyk6IEFkZAoJYWRkaXRpb25hbCBzeW1ib2xzIHJlZmVyZW5jZWQgYnkgbmV3ZXIgY3J0MC5vIGZpbGVzIGZyb20gSFAuCgoyMDAxLTExLTEyICBBbnRob255IEdyZWVuICA8Z3JlZW5AcmVkaGF0LmNvbT4KCgkqIGVtdWxwYXJhbXMvYXJtZWxmLnNoIChEQVRBX1NUQVJUX1NZTUJPTFMpOiBOZXcgc3ltYm9sLgoKMjAwMS0xMS0xMiAgQWxmcmVkIE0uIFN6bWlkdCAgPGFtc0BrZW1pc3Rlbi5udT4KCgkqIE1ha2VmaWxlLmFtIChHRU5TQ1JJUFRTKTogUXVvdGUgJHtleGVjX3ByZWZpeH0uCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMS0xMS0wMiAgU3RlcGhhbmUgQ2FycmV6ICA8U3RlcGhhbmUuQ2FycmV6QHdvcmxkbmV0LmZyPgoKCSogbGQudGV4aW5mbzogVXNlIEBjb21tYW5kIGZvciBjb21tYW5kcywgQG9wdGlvbiBmb3Igb3B0aW9ucy4KCSogTWFrZWZpbGUuYW0gKFBPRDJNQU4pOiBVc2UgJ0dOVSBEZXZlbG9wbWVudCBUb29scycgZm9yCgl0aGUgcGFnZSBtYW4gdGl0bGUuCgkqIE1ha2VmaWxlLmluOiBSZWJ1aWxkLgoKMjAwMS0xMS0wNCAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZ3VyZS50Z3QgKG1pcHMqZWwtKi1uZXRic2QqLCBtaXBzKi0qLW5ldGJzZCopOgoJQWRkIHN1cHBvcnQgZm9yIHRhcmdldHMuCgoyMDAxLTExLTAyICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoQUxMX0xJTkdVQVMpOiBBZGQgImZyIiBhbmQgInN2IgoJKiBjb25maWd1cmU6IFJlZ2VybmF0ZS4KCSogcG8vZnIucG86IE5ldyBmaWxlLgoJKiBwby9zdi5wbzogTmV3IGZpbGUuCgoyMDAxLTExLTAxICBOSUlCRSBZdXRha2EgIDxnbmlpYmVAbTE3bi5vcmc+CgoJKiBjb25maWd1cmUudGd0IChzaC0qLWxpbnV4KTogU2V0IHRhcmdfZW11bCwgdGFyZ19leHRyYV9lbXVscwoJYXMgbGl0dGxlIGVuZGlhbiBkZWZhdWx0IGFuZCB0byBzdXBwb3J0IGJpZyBlbmRpYW4uCgoyMDAxLTExLTAxICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogbGQudGV4aW5mbyAoT3B0aW9ucyk6IERvY3VtZW50IG5ldyBvcHRpb24sIC1ub3N0ZGxpYi4KCSogbGV4c3VwLmMgKE9QVElPTl9OT1NURExJQik6IE5ldyBkZWZpbml0aW9uLgoJKGxkX29wdGlvbnMpOiBBZGQgZW50cnkgZm9yICJub3N0ZGxpYiIuCgkocGFyc2VfYXJncyk6IEhhbmRsZSBPUFRJT05TX05PU1RETElCLgoJKiBsZGZpbGUuYyAobGRmaWxlX2FkZF9saWJyYXJ5X3BhdGgpOiBEb24ndCBhZGQgZGlyZWN0b3JpZXMKCXRvIHRoZSBzZWFyY2ggcGF0aCBpZiB0aGV5IHdlcmVuJ3Qgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUKCWFuZCAtbm9zdGRsaWIgd2FzIHNwZWNpZmllZC4KCSogbGQuaCAobGRfY29uZmlnX3R5cGUpOiBOZXcgbWVtYmVyIG9ubHlfY21kX2xpbmVfbGliX2RpcnMuCgoyMDAxLTEwLTMxICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGxleHN1cC5jIChwYXJzZV9hcmdzKTogUHJldmVudCBpbmZpbml0ZSBwYXJzaW5nIGxvb3Agd2hlbgoJIi1ycGF0aC5hIiBpcyBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KCVJlcGxhY2UgY2FsbHMgdG8gZnByaW50ZiB3aXRoIGNhbGxzIHRvIGVpbmZvLgoKMjAwMS0xMC0zMSAgSm9obiBNYXJzaGFsbCAgPGptYXJzaGFsbEBhY20ub3JnPgoKCSogbGQudGV4aW5mbzogQSBoaXN0b3JpY2FsIHJlcXVpcmVtZW50IHRoYXQgTUVNT1JZIGFuZCBTRUNUSU9OUwoJYXBwZWFyIG9ubHkgb25jZSBhY3Jvc3MgYWxsIHRoZSBsaW5rZXIgc2NyaXB0cyBpbnZvbHZlZCBpbiBhIGxpbmsKCWludm9jYXRpb24gbm8gbG9uZ2VyIGFwcGxpZXMuICBNYWtlIHRoZSBkb2N1bWVudGF0aW9uIHJlZmxlY3QKCXRoYXQuCgoyMDAxLTEwLTMxICBOSUlCRSBZdXRha2EgIDxnbmlpYmVAbTE3bi5vcmc+CgoJKiBjb25maWd1cmUudGd0OiBTdXBwb3J0cyBzaDMvc2g0L3NoM2ViL3NoNGViLXVua25vd24tbGludXgtZ251Cgl0YXJnZXRzLgoJKHNoLSotbGludXgqKTogQWRkZWQgdGFyZ19leHRyYV9saWJwYXRoLgoKMjAwMS0xMC0zMSAgRGF2aWQgSGVpbmUgIDxkbGhlaW5lQHRlbnNpbGljYS5jb20+CgoJKiBsZGxhbmcuYyAobGFuZ19zaXplX3NlY3Rpb25zKTogS2VlcCBhIHZhbGlkIG91dHB1dF9vZmZzZXQgZmllbGQKCWZvciBwYWRkaW5nIHN0YXRlbWVudHMuCgoyMDAxLTEwLTMwICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBjb25maWd1cmUudGd0IChtbWl4LSotKik6IE5ldyB0YXJnZXQuCgkqIE1ha2VmaWxlLmFtIChBTExfRU1VTEFUSU9OUyk6IEFkZCBlZWxmNjRtbWl4Lm8gYW5kIGVtbW8uby4KCUFkZCBkZXBlbmRlbmNpZXMgdG8gbWF0Y2guCgkqIGVtdWxwYXJhbXMvbW1vLnNoLCBlbXVscGFyYW1zL2VsZjY0bW1peC5zaCwgZW11bHRlbXBsL21tby5lbSwKCWVtdWx0ZW1wbC9tbWl4LWVsZm5tbW8uZW0sIGVtdWx0ZW1wbC9tbWl4ZWxmLmVtLAoJc2NyaXB0dGVtcGwvbW1vLnNjOiBOZXcgZmlsZXMuCgkqIGdlbi1kb2MudGV4aTogQHNldCBNTUlYLgoJKiBsZC50ZXhpbmZvOiBEaXR0by4KCVtNTUlYXSBBZGQgTU1JWCBub2RlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDEtMTAtMjkgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogbGRsYW5nLmM6IEZpeCBhIGNvbW1lbnQgdHlwby4KCjIwMDEtMTAtMjMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWd1cmUuaG9zdDogTW92ZSBhbHBoYSotKi1saW51eC1nbnUqIGVudHJ5IHRvIGdlbmVyaWMKCWVudHJpZXMsIGFuZCBtYXRjaCAqLSotbGludXgqLgoKMjAwMS0xMC0yMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkZ3JhbS55IChtcmlfc2NyaXB0X2NvbW1hbmQpOiBTdXJyb3VuZCBwcm9jZXNzaW5nIG9mIElOQ0xVREUKCXdpdGggbGRsZXhfc2NyaXB0LCBsZGxleF9wb3BzdGF0ZS4KCShpZmlsZV9wMSk6IExpa2V3aXNlLgoJKiBsZGxleC5sIChFT0YpOiBEb24ndCBCRUdJTihTQ1JJUFQpLiAgUmVzdG9yZSBsaW5lbm8gZnJvbSB0aGUKCWNvcnJlY3Qgc2xvdC4KCShsZXhfcHVzaF9maWxlKTogU2F2ZSBjdXJyZW50IGxpbmVubyB0byBsaW5lbm9fc3RhY2suICBTZXQgbGluZW5vCgl0byAxLiAgRG9uJ3QgQkVHSU4oU0NSSVBUKS4KCShsZXhfcmVkaXJlY3QpOiBTaW1pbGFybHkuCgkqIGxkbWFpbi5jIChtYWluKTogU2V0IHl5ZGVidWcgbm9uLXplcm8gaWYgWVlERUJVRy4KCjIwMDEtMTAtMjAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogc2NyaXB0dGVtcGwvYXJtY29mZi5zYzogRGVmaW5lIF9fRUhfRlJBTUVfQkVHSU5fXyBhbmQKCV9fRUhfRlJBTUVfRU5EX18gYW5kIGFjY2VwdCBlaCBmcmFtZXMgaW50byBkYXRhIHNlY3Rpb24uCglBZGQgY3RvciBhbmQgZHRvciBzZWN0aW9ucy4KCjIwMDEtMTAtMTkgIERhbm55IFNtaXRoICA8ZGFubnlfcl9zbWl0aF8yMDAxQHlhaG9vLmNvLm56PgoKCSogcGUtZGxsLmMgKGF1dG9maWx0ZXJfb2JqZWN0bGlzdCk6IEFkZCBnY3J0MC5vLgoJKGF1dG8tZXhwb3J0KTogRml4IGluZGVudGF0aW9uLgoKMjAwMS0xMC0xOCAgRGFubnkgU21pdGggIDxkYW5ueV9yX3NtaXRoXzIwMDFAeWFob28uY28ubno+CgoJKiBwZS1kbGwuYyAoYXV0b2ZpbHRlcl9vYmplY3RsaXN0KTogIEFkZCBzdGFydHVwIG9iamVjdHMKCWZvciBwcm9maWxpbmcuCgkoYXV0by1leHBvcnQpOiBDb25zdGlmeSBjaGFyICogcC4KCUV4dHJhY3QgZmlsZSBiYXNlbmFtZSBhbmQgdXNlIHN0cmNtcCByYXRoZXIgdGhhbiBzdHN0cgoJZm9yIG9iamVjdCBsb29rdXAuCgoyMDAxLTEwLTE4ICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogbGRtYWluLmMgKGdldF9lbXVsYXRpb24pOiBJbXByb3ZlIGNvbW1lbnQgYWJvdXQgdGhlIGhhbmRsaW5nCglvZiAtbWlwc04gb3B0aW9ucy4KCjIwMDEtMTAtMTcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBwby9QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCjIwMDEtMTAtMTYgIFZhc3NpbGkgS2FycG92ICA8bWFsY0BwdWxzZXNvZnQuY29tPgoKCSogZW11bHRlbXBsL2VsZjMyLmVtIChnbGQqX2xpc3Rfb3B0aW9ucyk6IFJlbW92ZSBleHRyYSAnXHQnIGZyb20KCS16IG5vY29weXJlbG9jIGFuZCAteiBub2NvbWJyZWxvYyB1c2FnZSBzdHJpbmdzLgoKMjAwMS0xMC0xMiAgVmFzc2lsaSBLYXJwb3YgIDxtYWxjQHB1bHNlc29mdC5jb20+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKGdsZCpfbGlzdF9vcHRpb25zKTogSW5jbHVkZSAteiBub2NvcHlyZWxvYwoJaW4gdXNhZ2UuCgoyMDAxLTEwLTExICBBbGVrc2V5IFJvbWFub3YgPGFyb21hbm92QGVubm92YXRlbmV0d29ya3MuY29tPgoKCSogc2NyaXB0dGVtcGwvYXJtYW91dC5zYzogUGxhY2UgLmJzcyBzZWN0aW9uIGFmdGVyIGVuZCBvZiBhbGlnbmVkCglkYXRhIHNlY3Rpb24gdG8gbWF0Y2ggYmVoYXZpb3VyIG9mIGFvdXQgY29kZSBpbiBjb25zdHJ1Y3RyaW9uIG9mCgloZWFkZXIuCgoyMDAxLTEwLTExICBEYW5ueSBTbWl0aCAgPGRhbm55X3Jfc21pdGhfMjAwMUB5YWhvby5jby5uej4KCgkqIHBlLWRsbC5jIChhdXRvZmlsdGVyX2VudHJ5X3R5cGUgYXV0b2ZpbHRlcl9saWJsaXN0OiBBZGQKCXN0YXJ0dXAgZmlsZXMgZm9yIG1pbmd3MzIgZGxscyB0byBsaXN0LgoKMjAwMS0xMC0xMCAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbTogRml4IHNoZWxsICdpZicgdXNhZ2UgZm9yIHBvcnRhYmlsaXR5LgoKMjAwMS0xMC0wOCAgQWxkeSBIZXJuYW5kZXogIDxhbGR5aEByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLnRndCAodGFyZyk6IEFkZCBhcm05ZS0qLWVsZi4KCjIwMDEtMTAtMDUgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGdlbnNjcmlwdHMuc2g6IEZpeCBhIHR5cG8gaW4gdGhlIGxhc3QgY2hhbmdlLgoKMjAwMS0xMC0wNSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKGdsZF8qX2xpc3Rfb3B0aW9ucyk6IEluY2x1ZGUgLXogY29tYnJlbG9jIGFuZAoJLXogbm9jb21icmVsb2MgaW4gdXNhZ2UuCgoyMDAxLTEwLTAzICBKaW0gQmxhbmR5ICA8amltYkByZWRoYXQuY29tPgoKCSogZ2Vuc2NyaXB0cy5zaDogSW5jbHVkZSBhIGNvbW1lbnQgYXQgdGhlIHRvcCBvZiBlYWNoIGdlbmVyYXRlZAoJc2NyaXB0LCBleHBsYWluaW5nIGl0cyBwdXJwb3NlLgoKMjAwMS0xMC0wMyAgVmFzc2lsaSBLYXJwb3YgIDxtYWxjQHB1bHNlc29mdC5jb20+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKHBhcnNlX2FyZ3MpOiBIYW5kbGUgLXogbm9jb3B5cmVsb2MuCgkqIE5FV1M6IE1lbnRpb24gLXogbm9jb3B5cmVsb2MuCgkqIGxkLnRleGluZm8gKE9wdGlvbnMpOiBEZXNjcmliZSBub2NvcHlyZWxvYy4KCjIwMDEtMTAtMDMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAxLTEwLTAyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGR2ZXIuaCAobGRfcHJvZ3JhbV92ZXJzaW9uKTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKiBsZXhzdXAuYyAocGFyc2VfYXJncyk6IE1vdmUgcHJpbnRpbmcgb2YgY29weXJpZ2h0IG1lc3NhZ2UuLgoJKiBsZHZlci5jIChsZHZlcnNpb24pOiAuLiB0byBoZXJlLgoJVXNlIEJGRF9WRVJTSU9OX1NUUklORyBpbiBwbGFjZSBvZiBCRkRfVkVSU0lPTi4KCShsZF9wcm9ncmFtX3ZlcnNpb24pOiBSZW1vdmUuCgkqIE1ha2VmaWxlLmFtIChNYWtlZmlsZSk6IERlcGVuZCBvbiBiZmQvY29uZmlndXJlLmluLgoJUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMS0wOS0zMCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogTWFrZWZpbGUuYW06IFVwZGF0ZSBkZXBlbmRlbmNpZXMgd2l0aCAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDEtMDktMjkgIEpvaG4gUmVpc2VyICA8anJlaXNlckBCaXRXYWdvbi5jb20+CgoJKiBsZGxhbmcuYyAobGFuZ19jb21tb24pOiBDb25kaXRpb25hbGx5IGluaGliaXQgQ29tbW9uIGFsbG9jYXRpb24uCgkqIGxleHN1cC5jOiBBZGQgLS1uby1kZWZpbmUtY29tbW9uIGNvbW1hbmRsaW5lIG9wdGlvbi4KCSogbGRncmFtLnk6IEFkZCBJTkhJQklUX0NPTU1PTl9BTExPQ0FUSU9OIHNjcmlwdCBjb21tYW5kLgoJKiBsZGxleC5sOiBMaWtld2lzZS4KCSogbGQuaDogQWRkIGNvbW1hbmRfbGluZS5pbmhpYml0X2NvbW1vbl9kZWZpbml0aW9uLgoJKiBsZG1haW4uYyAobWFpbik6IEluaXRpYWxpemUuCgkqIGxkLnRleGluZm86IERvY3VtZW50LgoKMjAwMS0wOS0yOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbGFuZy5jIChzZWN0aW9uX2FscmVhZHlfbGlua2VkKTogUmVtb3ZlIGFzc2lnbm1lbnQgdG8ga2VwdF9zZWN0aW9uLgoKMjAwMS0wOS0yNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbWlzYy5jIChVU0VfU1REQVJHKTogUmVtb3ZlLgoJKGluZm9fbXNnKTogRGVmaW5lIHVzaW5nIFZQQVJBTVMsIFZBX09QRU4sIFZBX0ZJWEVEQVJHLCBWQV9DTE9TRS4KCShlaW5mbyk6IExpa2V3aXNlLgoJKG1pbmZvKTogTGlrZXdpc2UuCgkobGZpbmZvKTogTGlrZXdpc2UuCgoJKiBsZG1pc2MuaDogUmVtb3ZlICNpZmRlZiBBTlNJX1BST1RPVFlQRVMgYW5kIG5vbi1hbnNpCglkZWNsYXJhdGlvbnMuICBVcGRhdGUgY29weXJpZ2h0LgoKMjAwMS0wOS0yNCAgQ2hhcmxlcyBXaWxzb24gIDxjd2lsc29uQGVjZS5nYXRlY2guZWR1PgoKCSogcGUtZGxsLmM6IFJlbW92ZSBvYnNvbGV0ZWQgZGVjbGFyYXRpb24gb2YKCXBlX2dldF9kYXRhX2ltcG9ydF9kbGxfbmFtZS4KCShwZV9jcmVhdGVfaW1wb3J0X2ZpeHVwKTogRml4IHRoaW5rby4KCgkqIGxkLnRleGluZm8oZW5hYmxlLWF1dG8taW1wb3J0KTogQ2xhcmlmeSB0aGUgZXhwbGFuYXRpb24uCgoyMDAxLTA5LTI0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIHBlLWRsbC5jIChwZV9jcmVhdGVfaW1wb3J0X2ZpeHVwKTogUmV2ZXJ0IHByZXZpb3VzIHBhdGNoLgoJKiBlbXVsdGVtcC9wZS5lbSAocGVfZGF0YV9pbXBvcnRfZGxsKTogTW92ZSBkZWZpbml0aW9uIG91dHNpZGUgb2YKCURMTF9TVVBQT1JUIGNvbnRyb2xsZWQgY29kZS4KCjIwMDEtMDktMjQgIENoYXJsZXMgV2lsc29uICA8Y3dpbHNvbkBlY2UuZ2F0ZWNoLmVkdT4KCgkqIGVtdWx0ZW1wbC9wZS5lbShwZV9kYXRhX2ltcG9ydF9kbGwpOiBNYWtlIHN0YXRpYy4KCShwZV9nZXRfZGF0YV9pbXBvcnRfZGxsX25hbWUpOiBOZXcgYWNjZXNzb3IgZnVuY3Rpb24uCgkqIHBlLWRsbC5jKHBlX2NyZWF0ZV9pbXBvcnRfZml4dXApOiBjYWxsCglwZV9nZXRfZGF0YV9pbXBvcnRfZGxsX25hbWUoKSBmcm9tIHBlLmVtLCBpbnN0ZWFkIG9mCglkaXJlY3RseSBhY2Nlc3NpbmcgcGVfZGF0YV9pbXBvcnRfZGxsIHZhcmlhYmxlIGZyb20gcGUuZW0uCgoyMDAxLTA5LTE4ICBCcnVubyBIYWlibGUgIDxoYWlibGVAY2xpc3AuY29ucy5vcmc+CgoJKiBkZWZmaWxlcC55OiBJbmNsdWRlICJzYWZlLWN0eXBlLmgiIGluc3RlYWQgb2YgPGN0eXBlLmg+LgoJKGRlZl9maWxlX2FkZF9kaXJlY3RpdmUpOiBVc2UgSVNTUEFDRSBpbnN0ZWFkIG9mIGlzc3BhY2UuCgkoZGVmX2xleCk6IFVzZSBJU0RJR0lUL0lTWERJR0lUL0lTQUxQSEEvSVNBTE5VTSBpbnN0ZWFkIG9mCglpc2RpZ2l0L2lzeGRpZ2l0L2lzYWxwaGEvaXNhbG51bS4KCSogZW11bHRlbXBsL2FpeC5lbTogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCShnbGQke0VNVUxBVElPTl9OQU1FfV9yZWFkX2ZpbGUpOiBVc2UgSVNTUEFDRSBpbnN0ZWFkIG9mIGlzc3BhY2UuCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbTogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCShnbGQke0VNVUxBVElPTl9OQU1FfV9wbGFjZV9vcnBoYW4pOiBVc2UgSVNBTE5VTSBpbnN0ZWFkIG9mCglpc2FsbnVtLgoJKiBlbXVsdGVtcGwvZ2xkOTYwYy5lbTogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCShnbGQ5NjBfc2V0X291dHB1dF9hcmNoKTogVXNlIElTVVBQRVIvVE9MT1dFUiBpbnN0ZWFkIG9mCglpc3VwcGVyL3RvbG93ZXIuCgkqIGVtdWx0ZW1wbC9zdW5vcy5lbTogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCShnbGQke0VNVUxBVElPTl9OQU1FfV9zZWFyY2hfZGlyKTogVXNlIElTRElHSVQgaW5zdGVhZCBvZiBpc2RpZ2l0LgoJKiBsZGN0b3IuYzogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCShjdG9yX3ByaW8pOiBVc2UgSVNESUdJVCBpbnN0ZWFkIG9mIGlzZGlnaXQuCgkqIGxkZmlsZS5jOiBJbmNsdWRlICJzYWZlLWN0eXBlLmgiIGluc3RlYWQgb2YgPGN0eXBlLmg+LgoJKGxkZmlsZV9vcGVuX2ZpbGVfc2VhcmNoKTogVXNlIElTQUxQSEEgaW5zdGVhZCBvZiBpc2FscGhhLgoJKGxkZmlsZV9hZGRfYXJjaCk6IFVzZSBJU1VQUEVSL1RPTE9XRVIgaW5zdGVhZCBvZgoJaXN1cHBlci90b2xvd2VyLgoJKiBsZGxhbmcuYzogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCShzdHJpY3B5KTogVXNlIFRPTE9XRVIgaW5zdGVhZCBvZiBpc3VwcGVyL3RvbG93ZXIuCgkobGFuZ19sZWF2ZV9vdmVybGF5X3NlY3Rpb24pOiBVc2UgSVNBTE5VTSBpbnN0ZWFkIG9mIGlzYWxudW0uCgkqIGxkbGV4Lmw6IEluY2x1ZGUgInNhZmUtY3R5cGUuaCIgaW5zdGVhZCBvZiA8Y3R5cGUuaD4uCgkobGV4X3dhcm5faW52YWxpZCk6IFVzZSBJU1BSSU5UIGluc3RlYWQgb2YgaXNwcmludC4KCSogbGRtYWluLmM6IEluY2x1ZGUgInNhZmUtY3R5cGUuaCIgaW5zdGVhZCBvZiA8Y3R5cGUuaD4uCgkobWFpbik6IEZvciBnZXR0ZXh0LCBhbHNvIHNldCB0aGUgTENfQ1RZUEUgbG9jYXRlIGZhY2V0LgoJKGFkZF9rZWVwc3ltc19maWxlKTogVXNlIElTU1BBQ0UgaW5zdGVhZCBvZiBpc3NwYWNlLgoJKiBsZXhzdXAuYzogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCShpc19udW0sIHBhcnNlX2FyZ3MpOiBVc2UgSVNESUdJVCBpbnN0ZWFkIG9mIGlzZGlnaXQuCgkqIG1wdy1lbGZtaXBzLmM6IEluY2x1ZGUgInNhZmUtY3R5cGUuaCIgaW5zdGVhZCBvZiA8Y3R5cGUuaD4uCgkoZ2xkZWxmMzJlYm1pcF9wbGFjZV9vcnBoYW4pOiBVc2UgSVNBTE5VTSBpbnN0ZWFkIG9mIGlzYWxudW0uCgkqIG1wdy1lcHBjbWFjLmM6IEluY2x1ZGUgInNhZmUtY3R5cGUuaCIgaW5zdGVhZCBvZiA8Y3R5cGUuaD4uCgkoZ2xkcHBjbWFjb3NfcmVhZF9maWxlKTogVXNlIElTU1BBQ0UgaW5zdGVhZCBvZiBpc3NwYWNlLgoJKiBwZS1kbGwuYzogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCShxdW90ZXB1dCk6IFVzZSBJU1NQQUNFIGluc3RlYWQgb2YgaXNzcGFjZS4KCShwZV9kbGxfZ2VuZXJhdGVfaW1wbGliLCBwZV9wcm9jZXNzX2ltcG9ydF9kZWZzKTogVXNlIElTQUxOVU0KCWluc3RlYWQgb2YgaXNhbG51bS4KCjIwMDEtMDktMTggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkZWZmaWxlcC55IChkZWZfc3Rhc2hfbW9kdWxlKTogQ29uc3RpZnkgIm5hbWUiIHBhcmFtLgoKCSogcGUtZGxsLmM6IFJlcGxhY2UgQ09OU1Qgd2l0aCBjb25zdCB0aHJvdWdob3V0LgoJKHF1aWNrX3N5bWJvbCk6IENvbnN0aWZ5ICJuMSIsICJuMiIsICJuMyIgcGFyYW1zLgoJKG1ha2Vfc2luZ2xldG9uX25hbWVfdGh1bmspOiBDb25zdGlmeSAiaW1wb3J0IiBwYXJhbS4gIE1ha2UKCSJidWZmZXJfbGVuIiBhIHNpemVfdC4KCShtYWtlX2ltcG9ydF9maXh1cF9lbnRyeSk6IENvbnN0aWZ5ICJuYW1lIiwgImZpeHVwX25hbWUiLAoJImRsbF9zeW1uYW1lIiBwYXJhbXMuCgkocGVfZ2V0MTYpOiBDYXN0IGFyZ3Mgb2YgYmZkX3NlZWsuICBSZXBsYWNlIGJmZF9yZWFkIHdpdGggYmZkX2JyZWFkLgoJKHBlX2dldDMyKTogTGlrZXdpc2UuCgkocGVfaW1wbGllZF9pbXBvcnRfZGxsKTogTGlrZXdpc2UuCgoJKiBlbXVsdGVtcGwvYmVvcy5lbSAoc29ydF9ieV9maWxlX25hbWUpOiBDb25zdGlmeSAicmEiLCAicmIiLgoJKHNvcnRfYnlfc2VjdGlvbl9uYW1lKTogTGlrZXdpc2UuCgoJKiBlbXVsdGVtcGwvcGUuZW06IE1vdmUgZGVmaW5lcyBmb3IgYXJtX2Vwb2NfcGUgYmVmb3JlIGJmZC5oIGluY2x1ZGVkLgoJKG1ha2VfaW1wb3J0X2ZpeHVwKTogQ2FzdCBwcmludGYgYXJnLCByZWwtPmFkZHJlc3MgdG8gbG9uZyByYXRoZXIKCXRoYW4gaW50LgoJKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9hZnRlcl9vcGVuKTogRG9uJ3QgY29tcGFyZSBOVUxMIGFnYWluc3QgaW50LgoKMjAwMS0wOS0xNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbWFpbi5jIChtYWluKTogUmVuYW1lIEJ1ZmZlclNpemUgdG8gbGRfYnVmc3ogYmVjYXVzZSBIUFVYCglkZWZpbmVzIEJ1ZmZlclNpemUuICBJbmNyZWFzZSBidWZmZXIgc2l6ZSBieSBvbmUuCgoyMDAxLTA5LTE0ICBSYWxmIEhhYmFja2VyIDxSYWxmLkhhYmFja2VyQGZyZWVuZXQuZGU+CgoJKiBwZS1kbGwuYyAocGVfd2Fsa19yZWxvY3Nfb2Zfc3ltYm9sKTogRml4IG1lbW9yeSBsZWFrLgoKMjAwMS0wOS0xNCAgS2V2aW4gTG8gPGtldmxvQG9wZW5ic2Qub3JnPgoKCSogY29uZmlndXJlLnRndDogQWRkIGFybS1vcGVuYnNkIHRhcmdldC4KCjIwMDEtMDktMTIgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIE1ha2VmaWxlLmFtIChBTExfRU1VTEFUSU9OUyk6IE1vdmUgZWVsZjY0cHBjLm8gYW5kCgllZWxmNjRscHBjLm8gdG8gLi4uCgkoQUxMXzY0X0VNVUxBVElPTlMpOiBIZXJlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZWQuCgoyMDAxLTA5LTEyICBQYXVsIFNva29sb3Zza3kgIDxQYXVsLlNva29sb3Zza3lAdGVjaG5vbG9naXN0LmNvbT4KCgkqIGVtdWx0ZW1wbC9wZS5lbShtYWtlX2ltcG9ydF9maXh1cCk6IGNoYW5nZSBzaWduYXR1cmUgdG8KCXRha2UgYXNlY3Rpb24gYXMgd2VsbCBhcyBhcmVsZWM7IHdlIG5lZWQgdGhpcyBmb3IgcHJvcGVyCgllcnJvciByZXBvcnRpbmcuICBPbmx5IGNhbGwgcGVfY3JlYXRlX2ltcG9ydF9maXh1cCgpIGlmCgl0aGVyZSBpcyBubyBhdHRlbXB0IHRvIGFkZCBhIGNvbnN0YW50IGFkZGVuZCB0byB0aGUgcmVsb2M7CglvdGhlcndpc2UsIHJlcG9ydCBlcnJvciBjb25kaXRpb24uCgkqIHBlLWRsbC5jKHBlX3dhbGtfcmVsb2NzX29mX3N5bWJvbCk6IGNoYW5nZSBzaWduYXR1cmUsCglzaW5jZSBmaW5hbCBhcmd1bWVudCBpcyBhIHBvaW50ZXIgdG8gbWFrZV9pbXBvcnRfZml4dXAoKS4KCUNoYW5nZSBjYWxsIHRvIGNiKCkgdG8gbWF0Y2ggbWFrZV9pbXBvcnRfZml4dXAoKSBzaWduYXR1cmUuCgkobWFrZV9pbXBvcnRfZml4dXBfbWFyayk6IG1ha2UgYnVmZmVyX2xlbiB1bnNpZ25lZC4KCSogcGUtZGxsLmg6IGNoYW5nZSBzaWduYXR1cmUgb2YgcGVfd2Fsa19yZWxvY3Nfb2Zfc3ltYm9sLgoKMjAwMS0wOS0xMiAgQ2hhcmxlcyBXaWxzb24gIDxjd2lsc29uQGVjZS5nYXRlY2guZWR1PgoKCSogbGQudGV4aW5mbzogYWRkIHZlcmJvc2UgZG9jdW1lbnRhdGlvbiBmb3IgYXV0by1pbXBvcnQKCWRpcmVjdC1hZGRyZXNzaW5nIHdvcmthcm91bmQsIHRvIGNvbXBsaW1lbnQgdGhlIHRlcnNlCgllcnJvciBtZXNzYWdlLgoKMjAwMS0wOS0xMiAgQW5kcmV3IE1hY0xlb2QgIDxhbWFjbGVvZEByZWRoYXQuY29tPgoKCSogc2NyaXB0dGVtcGwvdjg1MC5zYzogQWRkIGdjY19leGNlcHRfdGFibGUgc2VjdGlvbnMuCgoyMDAxLTA5LTExICBKZWZmcmV5IEEgTGF3ICAobGF3QGN5Z251cy5jb20pCgoJKiBlbXVscGFyYW1zL2g4MzAwaGVsZi5zaDogTW92ZSBzdGFjayB0byBhIG11Y2ggaGlnaGVyIG1lbW9yeSBhZGRyZXNzLgoJKiBlbXVscGFyYW1zL2g4MzAwc2VsZi5zaDogU2ltaWxhcmx5LgoKMjAwMS0wOS0wNSBEYW5ueSBTbWl0aCA8ZGFubnlzbWl0aEB1c2Vycy5zb3VjZWZvcmdlLm5ldD4KCgkqIGxkLnRleGluZm8gKE9wdGlvbnMsIC0tc3RhY2spOiBDb3JyZWN0IGRlZmF1bHQgdmFsdWUgZm9yIHN0YWNrCglyZXNlcnZlLgoKMjAwMS0wOS0wNSAgVG9tIFJpeCA8dHJpeEByZWRoYXQuY29tPgoKCSogZW11bHRlbXBsL2FpeC5lbSA6IEhhbmRsZSBpbXBvcnQgZmlsZSBYTUNfWE8gYW5kIHN5c2NhbGwgc3ltYm9scy4KCjIwMDEtMDktMDMgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGVtdWx0ZW1wbC9iZW9zLmVtOiBEZWNsYXJlIHByb3RvdHlwZXMgZm9yIGNvbXBhcmlvbnMgZnVuY3Rpb25zLAoJYWRqdXN0IGRlZmluaXRpb25zLgoKMjAwMS0wOS0wMiAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogZW11bHRlbXBsL2FpeC5lbTogQWRkIG1pc3NpbmcgcHJvdG90eXBlLgoJKiBlbXVsdGVtcGwvbG5rOTYwLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3ZhbmlsbGEuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvYXJtY29mZi5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9hcm1lbGZfb2FiaS5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9iZW9zLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2dsZDk2MGMuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvZ2xkOTYwLmVtOiBMaWtld2lzZS4KCgkqIGVtdWxwYXJhbXMvZWxmNjRhbHBoYS5zaCAoUEFSU0VfQU5EX0xJU1RfUFJPTE9HVUUpOiBBZGQgcGFyYW1ldGVyCglmb3IgcHJvdG90eXBlIGRlY2xhcmF0aW9uLgoKMjAwMS0wOC0zMSAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgkgICAgSmFzb24gRWNraGFyZHQgIDxqbGVAcmVkaGF0LmNvbT4KCgkqIGxkbWFpbi5jIChnZXRfZW11bGF0aW9uKTogQWRkIHN1cHBvcnQgZm9yIC1taXBzMzIgYW5kIC1taXBzNjQuCgoyMDAxLTA4LTMxICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBlbXVsdGVtcGwvcGUuZW06IEFkZCBtaXNzaW5nIHByb3RvdHlwZXMuCgkoZ2xkXyR7RU1VTEFUSU9OX05BTUV9X2FmdGVyX29wZW4pOiBSZW1vdmUgZXh0cmEgYXJncyB0bwoJcGVfZmluZF9kYXRhX2ltcG9ydHMuCgkocHJfc3ltKTogQWRkIHVudXNlZCBhdHRyaWJ1dGUuCgoyMDAxLTA4LTI5ICBKb2VsIFNoZXJyaWxsIDxqb2VsQE9BUmNvcnAuY29tPgoKCSogY29uZmlndXJlLnRndCAoaVszNDU2XTg2LSotcnRlbXMqLCBtNjgqLSotcnRlbXMqKTogQ2hhbmdlCglkZWZhdWx0IGZyb20gY29mZiB0byBlbGYuCgoyMDAxLTA4LTI5ICBKZWZmIExhdyA8bGF3QHJlZGhhdC5jb20+CgoJKiBlbXVscGFyYW1zL2g4MzAwaGVsZi5zaDogUmVzeW5jIHdpdGggaDgzMDBlbGYuc2guICBVcGRhdGUKCUFSQ0ggc3BlY2lmaWNhdGlvbi4KCSogZW11bHBhcmFtcy9oODMwMHNlbGYuc2g6IFNpbWlsYXJseS4KCjIwMDEtMDgtMjggIEoib3JuIFJlbm5lY2tlIDxhbXlsYWFyQHJlZGhhdC5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQUxMX0VNVUxBVElPTlMpOiBBZGQgZWg4MzAwZWxmLm8sIGVoODMwMGVsZi5vIGFuZAoJZWg4MzAwc2VsZi5vIC4KCShlaDgzMDBlbGYuYywgZWg4MzAwaGVsZi5jLCBlaDgzMDBzZWxmLmMpOiBOZXcgdGFyZ2V0cy4KCSogY29uZmlndXJlLnRndCAoaDgzMDAtKi1lbGYqKTogTmV3IGNhc2UuCgkqIGVtdWxwYXJhbXMvaDgzMDBlbGYuc2gsIGVtdWxwYXJhbXMvaDgzMDBoZWxmLnNoOiBOZXcgZmlsZXMuCgkqIGVtdWxwYXJhbXMvaDgzMDBzZWxmLnNoOiBOZXcgZmlsZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGVkLgoKMjAwMS0wOC0yOCAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBsZG1haW4uYyAobWFpbik6IFJlbmFtZSBCU0laRSB0byBCdWZmZXJTaXplIHRvIGF2b2lkIGNvbGxpc2lvbgoJd2l0aCBtYWNybyBuYW1lLgoKMjAwMS0wOC0yNyAgTGludXMgTm9yZGJlcmcgIDxsaW51c0Bzd294LmNvbT4KCSAgICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW0gKEFMTF9FTVVMQVRJT05TKTogQWRkIGVlbGY2NHBwYy5vIGFuZCBlZWxmNjRscHBjLm8uCgkoZWVsZjY0cHBjLmMsIGVlbGY2NGxwcGMuYyk6IEFkZCBtYWtlIHRhcmdldHMuCglSdW4gIm1ha2UgZGVwLWFtIgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLnRndDogQWRkIHBvd2VycGM2NCBzdXBwb3J0LiAgTW92ZSBwZHAxMSwgcGpsLCBwagoJZW50cmllcyB0byBjb3JyZWN0IGFscGhhYmV0aWNhbCBwb3NpdGlvbi4KCSogZW11bHBhcmFtcy9lbGY2NHBwYy5zaDogTmV3LgoJKiBlbXVscGFyYW1zL2VsZjY0bHBwYy5zaDogTmV3LgoKMjAwMS0wOC0yNyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBsZG1haW4uYyAobWFpbik6IERlY2xhcmUgQlNJWkUgYXMgc3RhdGljLgoKMjAwMS0wOC0yMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKHBsYWNlX29ycGhhbik6IFBsYWNlIG9ycGhhbiAucmVsKiBzZWN0aW9ucwoJaW50byAucmVsLmR5biByZXNwLiAucmVsYS5keW4gaWYgY29tYnJlbG9jLgoJKGdldF9zY3JpcHQpOiBJZiAueCBsaW5rZXIgc2NyaXB0IGlzIGVxdWFsIHRvIC54biwgb25seSBwdXQgaXQKCW9uY2UgaW50byB0aGUgYmluYXJ5LgoJQWRkIC54YyBhbmQgLnhzYyBzY3JpcHRzLgoJKHBhcnNlX2FyZ3MpOiBIYW5kbGUgLXogY29tYnJlbG9jIGFuZCAteiBub2NvbWJyZWxvYy4KCSogc2NyaXB0dGVtcGwvZWxmLnNjICgucmVsYS5zYnNzKTogRml4IGEgdHlwby4KCUZvciAueGMgYW5kIC54c2Mgc2NyaXB0cyBwdXQgYWxsIC5yZWwqIG9yIC5yZWxhKiBpbnB1dCBzZWN0aW9ucwoJYnV0IC5yZWwqLnBsdCBhbmQgUExULWxpa2Ugc2VjdGlvbnMgaW50byAucmVsLmR5biByZXNwLiAucmVsYS5keW4uCgkqIGdlbnNjcmlwdHMuc2ggKEdFTkVSQVRFX0NPTUJSRUxPQ19TQ1JJUFQpOiBTZXQgaWYgU0NSSVBUX05BTUUKCWlzIGVsZi4KCVN0cmlwIHRyYWlsaW5nIHdoaXRlc3BhY2UgZnJvbSBzY3JpcHQuCglHZW5lcmF0ZSAueGMgYW5kIC54c2Mgc2NyaXB0cyBpZiByZXF1ZXN0ZWQuCgkqIGxkbWFpbi5jIChtYWluKTogSW5pdGlhbGl6ZSBsaW5rX2luZm8uY29tYnJlbG9jIGFuZAoJbGlua19pbmZvLnNwYXJlX2R5bmFtaWNfdGFncy4KCSogbGV4c3VwLmMgKE9QVElPTl9TUEFSRV9EWU5BTUlDX1RBR1MpOiBEZWZpbmUuCgkobGRfb3B0aW9ucyk6IEFkZCAtLXNwYXJlLWR5bmFtaWMtdGFncyBvcHRpb24uCgkocGFyc2VfYXJncyk6IExpa2V3aXNlLgoJKiBsZC50ZXhpbmZvOiBEb2N1bWVudCAteiBjb21icmVsb2MgYW5kIC16IG5vY29tYnJlbG9jLgoJKiBsZGludC50ZXhpbmZvOiBEb2N1bWVudCAueGMgYW5kIC54c2MgbGlua2VyIHNjcmlwdHMuCgkqIE5FV1M6IEFkZCBub3RlcyBhYm91dCAteiBjb21icmVsb2MgYW5kIFNIRl9NRVJHRS4KCjIwMDEtMDgtMjIgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVtdWxwYXJhbXMvZWxmMzJmcjMwLnNoOiBBZGQgYSBuZXdsaW5lLgoKMjAwMS0wOC0yMSAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogZGVmZmlsZXAueTogQWRkIG1pc3NpbmcgcHJvdG90eXBlcy4KCSogcGUtZGxsLmM6IExpa2V3aXNlLgoKMjAwMS0wOC0yMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbGFuZy5jIChpbnNlcnRfcGFkKTogRml4IHR5cG9zIGluIGxhc3QgcGF0Y2guCgoJKiBsZGxhbmcuYzogV2hlbiB0cmF2ZXJzaW5nIGxhbmdfc3RhdGVtZW50X3VuaW9uX3R5cGUgbGlzdHMsCgljb25zaXN0ZW50bHkgdXNlICJoZWFkZXIubmV4dCIgcmF0aGVyIHRoYW4gIm5leHQiLgoJKiBtcHctZXBwY21hYy5jOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2Jlb3MuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvaHBwYWVsZi5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9wZS5lbTogTGlrZXdpc2UuCgkqIGxkbGFuZy5oICh1bmlvbiBsYW5nX3N0YXRlbWVudF91bmlvbik6IFJlbW92ZSAibmV4dCIgZmllbGQuCgoJKiBsZGxhbmcuYyAoaW5zZXJ0X3BhZCk6IFVzZSBvZmZzZXRvZiBtYWNyby4KCShsYW5nX3NpemVfc2VjdGlvbnMpOiBBbHdheXMgbmV1dGVyIHBhZGRpbmcgc3RhdGVtZW50cy4KCSogZW11bHRlbXBsL2hwcGFlbGYuZW0gKGhwcGFlbGZfZGVsZXRlX3BhZGRpbmdfc3RhdGVtZW50cyk6IERlbGV0ZS4KCgkqIHBlLWRsbC5jIChwZV9kbGxfZmlsbF9zZWN0aW9ucyk6IENvcnJlY3QgdHlwZSBvZiAicmVsYXgiIHBhcmFtCglwYXNzZWQgdG8gbGFuZ19zaXplX3NlY3Rpb25zLgoJKHBlX2V4ZV9maWxsX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9wZS5lbSAob3V0cHV0X3ByZXZfc2VjX2ZpbmQpOiBDb3BpZWQgZnJvbSBlbGYzMi5lbS4KCShnbGRfJHtFTVVMQVRJT05fTkFNRX1fcGxhY2Vfb3JwaGFuKTogTWVyZ2UgZnJvbSBlbGYzMi5lbS4KCjIwMDEtMDgtMTggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvYWl4LmVtOiBGb3JtYXR0aW5nIGZpeGVzLgoKMjAwMS0wOC0xOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbGFuZy5jIChpbnNlcnRfcGFkKTogTWFrZSB1c2Ugb2YgYW4gZXhpc3RpbmcgcGFkIHN0YXRlbWVudCBpZgoJYXZhaWxhYmxlLiAgTW92ZSBjb2RlIGNhbGN1bGF0aW5nIGFsaWdubWVudCwgYWRqdXN0aW5nIHNlY3Rpb24KCWFsaWdubWVudCBwb3dlciwgYW5kIGFkanVzdGluZyBkb3QgdG8gLi4KCShzaXplX2lucHV0X3NlY3Rpb24pOiAuLiBoZXJlLiAgUmVtb3ZlIHVudXNlZCByZWxheCBwYXJhbS4KCShsYW5nX3NpemVfc2VjdGlvbnMpOiBDaGFuZ2UgYm9vbGVhbiBgcmVsYXgnIHBhcmFtIHRvIGJvb2xlYW4gKi4KCUFkanVzdCBjYWxsIHRvIHNpemVfaW5wdXRfc2VjdGlvbi4gIE1ha2UgdXNlIG9mIGluc2VydF9wYWQgdG8KCXBsYWNlIHBhZCBhZnRlciB0aGUgYXNzaWdubWVudCBzdGF0ZW1lbnQuICBJZiByZWxheGluZywgemFwCglwYWRkaW5nIHN0YXRlbWVudHMuCgkocmVzZXRfbWVtb3J5X3JlZ2lvbnMpOiBSZXNldCBvdXRwdXRfYmZkIHNlY3Rpb24gc2l6ZXMgdG9vLgoJKHJlbGF4X2FnYWluKTogTW92ZSB0by4uCgkobGFuZ19wcm9jZXNzKTogLi5oZXJlLiAgQWRqdXN0IGNhbGwgdG8gbGFuZ19zaXplX3NlY3Rpb25zLCBhbmQKCXJlbW92ZSBkdXBsaWNhdGVkIGNvZGUuCgkqIGxkbGFuZy5oIChsYW5nX3NpemVfc2VjdGlvbnMpOiBDaGFuZ2UgYHJlbGF4JyBwYXJhbSB0byBib29sZWFuICouCgoyMDAxLTA4LTE3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGQudGV4aW5mbzogRG9jdW1lbnQgdGhhdCBmaWxsIHZhbHVlcyBub3cgdXNlIHRoZSBmb3VyIGxlYXN0CglzaWduaWZpY2FudCBieXRlcy4KCSogZW11bHBhcmFtcy9lbGYzMmZyMzAuc2ggKE5PUCk6IFVwZGF0ZS4KCSogZW11bHBhcmFtcy9lbGYzMm1jb3JlLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGY2NF9zMzkwLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGZfaTM4Ni5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmX2kzODZfYmUuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZl9pMzg2X2NoYW9zLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGZfaTM4Nl9sZHNvLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGZfczM5MC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmX3g4Nl82NC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvaTM4Nm1vc3Muc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2kzODZudy5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvbTY4a2VsZi5zaDogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2VsZi5zYzogVXBkYXRlIE5PUCBjb21tZW50LgoJKiBzY3JpcHR0ZW1wbC9lbGZpMzcwLnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvZWxmbTY4aGMxMS5zYzogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2VsZm02OGhjMTIuc2M6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9udy5zYzogTGlrZXdpc2UuCgoyMDAxLTA4LTE1ICBUb20gUml4IDx0cml4QHJlZGhhdC5jb20+CgoJKiBsZGdyYW0ueSAoc2F2ZWRfc2NyaXB0X2hhbmRsZSk6IEluaXRpYWxpemUgdG8gTlVMTC4KCSogbGRtYWluLmMgKG1haW4pOiBDaGFuZ2UgY2hlY2sgb24gc2F2ZWRfc2NyaXB0X2hhbmRsZS4KCjIwMDEtMDgtMTQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW06IEZvcm1hdHRpbmcgZml4ZXMuCgkob3V0cHV0X3ByZXZfc2VjX2ZpbmQpOiBUZXN0IGZvciBiZmRfaW5kX3NlY3Rpb24gdG9vOyAgZG8gc28gYnkKCWxvb2tpbmcgYXQgc2VjLT5vd25lci4KCShvdXRwdXRfcmVsX2ZpbmQpOiBNb3ZlIGZ1bmN0aW9uIGluc2lkZSBMREVNVUxfUExBQ0VfT1JQSEFOIHRlc3QuCgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1fcGxhY2Vfb3JwaGFuKTogQWRkIGEgZmV3IGNvbW1lbnRzLiAgUmVtb3ZlCgl1bnVzZWQgY29kZSwgYW5kIHJlb3JnYW5pemUgb3JwaGFuIHNlY3Rpb24gcGxhY2VtZW50IGNvZGUuCgoJKiBsZGxhbmcuYyAod2lsZF9kb2l0KTogUmVuYW1lIHRvIGxhbmdfYWRkX3NlY3Rpb24uCgkqIGxkbGFuZy5oOiBIZXJlIHRvby4KCSogbXB3LWVsZm1pcHMuYzogQW5kIGhlcmUuCgkqIGVtdWx0ZW1wbC9iZW9zLmVtOiBBbmQgaGVyZS4KCSogZW11bHRlbXBsL2VsZjMyLmVtOiBBbmQgaGVyZS4KCSogZW11bHRlbXBsL2hwcGFlbGYuZW06IEFuZCBoZXJlLgoJKiBlbXVsdGVtcGwvcGUuZW06IEFuZCBoZXJlLgoKMjAwMS0wOC0xMyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVtdWx0ZW1wbC9uZWVkcmVsYXguZW06IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL2VsZjY0X2lhNjQuc2ggKEVYVFJBX0VNX0ZJTEUpOiBSZWZlcmVuY2UgaXQuCgkqIE1ha2VmaWxlLmFtIChlZWxmNjRfaWE2NC5jKTogRGVwZW5kIG9uIGl0LgoJKiBNYWtlZmlsZS5pbjogUmVidWlsZC4KCjIwMDEtMDgtMTMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW06IEZvciBTRUNfRVhDTFVERSBzZWN0aW9ucywgZW5zdXJlIHRoYXQKCW91dHB1dF9zZWN0aW9uIGlzIHNldCBub24tTlVMTC4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fcGxhY2Vfb3JwaGFuKTogUmV0dXJuCglgdHJ1ZScgZm9yIFNFQ19FWENMVURFIHNlY3Rpb25zIHNvIHRoYXQgdGhlIGdlbmVyaWMgY29kZSBkb2Vzbid0CgluZWVkbGVzc2x5IGNyZWF0ZSBhbiBvdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnQuICBUcmVhdCBhIGNvcnJlY3RseQoJbmFtZWQgb3V0cHV0X3NlY3Rpb25fc3RhdGVtZW50IHdpdGggTlVMTCBiZmRfc2VjdGlvbiBhcyBjb21wYXRpYmxlLgoKMjAwMS0wOC0xMyAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogZW11bHRlbXBsL2dlbmVyaWMuZW06IFN1cHBvcnQgRVhUUkFfRU1fRklMRS4KCShsZF8ke0VNVUxBVElPTl9OQU1FfV9lbXVsYXRpb24pOiBTdXBwb3J0IGVtdWxhdGlvbiBwYXJhbWV0ZXJzCglMREVNVUxfQkVGT1JFX1BBUlNFLCBMREVNVUxfU1lTTElCLCBMREVNVUxfSExMLAoJTERFTVVMX0FGVEVSX1BBUlNFLCBMREVNVUxfQUZURVJfT1BFTiwgTERFTVVMX0FGVEVSX0FMTE9DQVRJT04sCglMREVNVUxfU0VUX09VVFBVVF9BUkNILCBMREVNVUxfQ0hPT1NFX1RBUkdFVCwKCUxERU1VTF9CRUZPUkVfQUxMT0NBVElPTiwgTERFTVVMX0dFVF9TQ1JJUFQsIExERU1VTF9GSU5JU0gsCglMREVNVUxfQ1JFQVRFX09VVFBVVF9TRUNUSU9OX1NUQVRFTUVOVFMsCglMREVNVUxfT1BFTl9EWU5BTUlDX0FSQ0hJVkUsIExERU1VTF9QTEFDRV9PUlBIQU4sCglMREVNVUxfU0VUX1NZTUJPTFMsIExERU1VTF9QQVJTRV9BUkdTLCBMREVNVUxfVU5SRUNPR05JWkVEX0ZJTEUsCglMREVNVUxfTElTVF9PUFRJT05TLCBMREVNVUxfUkVDT0dOSVpFRF9GSUxFLAoJTERFTVVMX0ZJTkRfUE9URU5USUFMX0xJQlJBUklFUy4KCjIwMDEtMDgtMTIgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBzY3JpcHR0ZW1wbC9lbGYuc2MsIHNjcmlwdHRlbXBsL2VsZmQzMHYuc2MsCglzY3JpcHR0ZW1wbC9lbGZtNjhoYzExLnNjLCBzY3JpcHR0ZW1wbC9lbGZtNjhoYzEyLnNjLAoJc2NyaXB0dGVtcGwvdjg1MC5zYzogS2VlcCAuamNyIGRhdGEuCgoyMDAxLTA4LTEyICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgkgICAgQW5kcmV3IEhhbGV5ICA8YXBoQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoJICAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBsZGdyYW0ueSAoaGFkX3NjcmlwdCk6IENoYW5nZSBuYW1lIHRvIHNhdmVkX3NjcmlwdF9oYW5kbGUuCglDaGFuZ2UgdHlwZSB0byBmaWxlIGhhbmRsZS4KCSogbGQuaCAoaGFkX3NjcmlwdCk6IFJlbmFtZSBhbmQgcmV0eXBlLgoJKiBsZGZpbGUuYyAobGRmaWxlX29wZW5fY29tbWFuZF9maWxlKTogU2F2ZSB0aGUgZmlsZSBoYW5kbGUKCXVzZWQgaW4gc2F2ZWRfc2NyaXB0X2hhbmRsZS4KCSogbGV4c3VwLmMgKHBhcnNlX2FyZ3MpOiBEbyBub3QgYWxsb3cgLWMgb3B0aW9uIHRvIGFsdGVyCglzYXZlZF9zY3JpcHRfaGFuZGxlLgoJKiBsZG1haW4uYyAobWFpbik6IFByaW50IG91dCB0aGUgbGlua2VyIHNjcmlwdCB1c2VkIGlmCgktLXZlcmJvc2UgaXMgZ2l2ZW4uICBDaGVjayBzYXZlZF9zY3JpcHRfaGFuZGxlIHRvIG9idGFpbiB0aGUKCWV4dGVybmFsIGxpbmtlciBzY3JpcHQgdXNlZCwgb3IgaWYgTlVMTCwgZHVtcCB0aGUgYnVpbHRpbgoJc2NyaXB0LgoJKiBsZC50ZXhpbmZvOiBEb2N1bWVudCB0aGF0IC0tdmVyYm9zZSBub3cgZHVtcHMgdGhlIGxpbmtlcgoJc2NyaXB0IHVzZWQsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCB3YXMgYW4gaW50ZXJuYWwgb3IgYW4KCWV4dGVybmFsIHNjcmlwdC4KCjIwMDEtMDgtMTAgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIC1Xc3RyaWN0LXByb3RvdHlwZXMgYW5kIC1XbWlzc2luZy1wcm90b3R5cGVzCgl0byBidWlsZCB3YXJuaW5ncy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMS0wOC0wOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAob3V0cHV0X3ByZXZfc2VjX2ZpbmQpOiBBZGQgbWlzc2luZyBwcm90b3R5cGUuCgoJKiBzY3JpcHR0ZW1wbC9lbGYuc2M6IE1vdmUgbm9uLXRleHQgLmR5bmFtaWMgc2VjdGlvbiBiZWZvcmUKCS5wbHQvLmdvdC8uc2RhdGEqIGdyb3VwLgoJKE9USEVSX0dPVF9TRUNUSU9OUyk6IE1vdmUgdG8gaW1tZWRpYXRlbHkgYWZ0ZXIgLmdvdC4KCShPVEhFUl9TREFUQV9TRUNUSU9OUyk6IEFkZC4KCSogZW11bHBhcmFtcy9jcmlzZWxmLnNoOiBVc2UgT1RIRVJfU0RBVEFfU0VDVElPTlMgcmF0aGVyIHRoYW4KCU9USEVSX0dPVF9TRUNUSU9OUy4KCSogZW11bHBhcmFtcy9jcmlzbGludXguc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjMyYjQzMDAuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjMyYm1pcC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmMzJibWlwbjMyLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGYzMmJzbWlwLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGYzMmJ0c21pcC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmMzJlYm1pcC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmMzJlbG1pcC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmMzJsNDMwMC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmMzJsbWlwLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGYzMmxzbWlwLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGYzMmx0c21pcC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmNjRibWlwLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGY2NGJ0c21pcC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmNjRsdHNtaXAuc2g6IExpa2V3aXNlLgoKMjAwMS0wOC0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGdlbnNjcmlwdHMuc2g6IFNvdXJjZSB0aGUgZW11bHBhcmFtcyBzY3JpcHQgYmVmb3JlIGVhY2ggb3V0cHV0CglzY3JpcHQgaXMgZ2VuZXJhdGVkIHNvIHRoYXQgdmFyaWFibGVzIGxpa2UgYFJFTE9DQVRJTkcnIG1heSBhZmZlY3QKCXZhcmlhYmxlcyBkZWZpbmVkIGluIHRoZSBlbXVscGFyYW1zIHNjcmlwdC4KCjIwMDEtMDgtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvYWl4LmVtOiBsZGV4cC5oLGxkbGFuZy5oLGxkZmlsZS5oLGxkZW11bC5oIGdvIGluIHRoaXMKCW9yZGVyLgoKCSogZW11bHRlbXBsL2Jlb3MuZW0gKHNvcnRfc2VjdGlvbnMpOiBNb2RpZnkgZm9yIDIwMDEtMDgtMDMgY2hhbmdlLAoJaWUuIGl0ZXJhdGUgb3ZlciB3aWxkX3N0YXRlbWVudC5zZWN0aW9uX2xpc3QuCgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1fcGxhY2Vfb3JwaGFuKTogTGlrZXdpc2UuCgoyMDAxLTA4LTAzICBTdGVwaGFuZSBDYXJyZXogIDxTdGVwaGFuZS5DYXJyZXpAd29ybGRuZXQuZnI+CgoJKiBzY3JpcHR0ZW1wbC9lbGZtNjhoYzEyLnNjIChGSU5JU0hfQ09ERSwgRklOSVNIX1JFTE9DKTogTmV3IHRvIGhhbmRsZQoJLmZpbmlbMC00XSBzZWN0aW9ucyB1c2VkIGJ5IF9leGl0CgkoQ1RPUiwgRFRPUik6IEV4cG9ydCBjdG9yL2R0b3Igc3ltYm9sczsgbW92ZSB0aGVtIHRvIFJPTS4KCSgqLnRleHQsKi5kYXRhLCouYnNzKTogVGFrZSBpbnRvIGFjY291bnQgLnRleHQuKiwgLmRhdGEuKiwgLmJzcy4qLgoJKiBzY3JpcHR0ZW1wbC9lbGZtNjhoYzExLnNjOiBMaWtld2lzZS4KCjIwMDEtMDgtMDMgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVtdWx0ZW1wbC9iZW9zLmVtIChpbml0KTogQWRkIHRoZSBtaXNzaW5nIGluaXRpYWxpemF0aW9uLgoKMjAwMS0wOC0wMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkLnRleGluZm8gKElucHV0IFNlY3Rpb24gQmFzaWNzKTogQ2xhcmlmeSBvcmRlcmluZyBvZiBvdXRwdXQKCXNlY3Rpb25zLgoJKiBsZGxhbmcuYyAoY2FsbGJhY2tfdCk6IEFkZCB3aWxkY2FyZF9saXN0IHBhcmFtLgoJKHdhbGtfd2lsZF9zZWN0aW9uKTogUmVtb3ZlICJzZWN0aW9uIiBwYXJhbS4gIFJld3JpdGUgZm9yCglsYW5nX3dpbGRfc3RhdGVtZW50X3R5cGUgY2hhbmdlLiAgUmVtb3ZlIHVuaXF1ZV9zZWN0aW9uX3AgdGVzdC4KCSh3YWxrX3dpbGRfZmlsZSk6IFJlbW92ZSAic2VjdGlvbiIgcGFyYW0uCgkod2Fsa193aWxkKTogUmVtb3ZlICJzZWN0aW9uIiBhbmQgImZpbGUiIHBhcmFtcy4KCShsYW5nX2djX3dpbGQpOiBMaWtld2lzZS4KCSh3aWxkKTogTGlrZXdpc2UuICBNb2RpZnkgZm9yIGxhbmdfd2lsZF9zdGF0ZW1lbnRfdHlwZSBjaGFuZ2UuCgkod2lsZF9zb3J0KTogTGlrZXdpc2UuICBBZGQgInNlYyIgcGFyYW0uCgkoZ2Nfc2VjdGlvbl9jYWxsYmFjayk6IExpa2V3aXNlLgoJKG91dHB1dF9zZWN0aW9uX2NhbGxiYWNrKTogTGlrZXdpc2UuICBEbyB1bmlxdWVfc2VjdGlvbl9wIHRlc3QuCgkobWFwX2lucHV0X3RvX291dHB1dF9zZWN0aW9ucyk6IE1vZGlmeSBjYWxsIHRvIHdpbGQuCgkobGFuZ19nY19zZWN0aW9uc18xKTogTGlrZXdpc2UuCgkocHJpbnRfd2lsZF9zdGF0ZW1lbnQpOiBNb2RpZnkgZm9yIGxhbmdfd2lsZF9zdGF0ZW1lbnRfdHlwZQoJY2hhbmdlLgoJKGxhbmdfYWRkX3dpbGQpOiBSZXBsYWNlIGZpbGVuYW1lLCBmaWxlbmFtZXNfc29ydGVkIHBhcmFtIHdpdGgKCWZpbGVzcGVjLiAgUmVwbGFjZSBzZWN0aW9uX25hbWUsIHNlY3Rpb25zX3NvcnRlZCwKCWV4Y2x1ZGVfZmlsZW5hbWVfbGlzdCB3aXRoIHNlY3Rpb25fbGlzdC4KCSogbGRsYW5nLmggKGxhbmdfYWRkX3dpbGQpOiBIZXJlIHRvby4KCShsYW5nX3dpbGRfc3RhdGVtZW50X3R5cGUpOiBSZXBsYWNlIHNlY3Rpb25fbmFtZSwgc2VjdGlvbnNfc29ydGVkLAoJYW5kIGV4Y2x1ZGVfZmlsZW5hbWVfbGlzdCB3aXRoIHNlY3Rpb25fbGlzdC4KCSogbGRncmFtLnkgKGN1cnJlbnRfZmlsZSk6IERlbGV0ZS4KCSgldW5pb24pOiBBZGQgd2lsZGNhcmRfbGlzdC4KCShmaWxlX05BTUVfbGlzdCk6IFNldCB0eXBlIHRvIHdpbGRjYXJkX2xpc3QuICBCdWlsZCBhIGxpbmtlZCBsaXN0CglyYXRoZXIgdGhhbiBjYWxsaW5nIGxhbmdfYWRkX3dpbGQgZm9yIGVhY2ggZW50cnkuCgkoaW5wdXRfc2VjdGlvbl9zcGVjX25vX2tlZXApOiBDYWxsIGxhbmdfYWRkX3dpbGQgaGVyZSBpbnN0ZWFkLgoJKiBsZC5oIChzdHJ1Y3Qgd2lsZGNhcmRfbGlzdCk6IERlY2xhcmUuCgkqIG1yaS5jIChtcmlfZHJhd190cmVlKTogTW9kaWZ5IHRvIHN1aXQgbmV3IGxhbmdfYWRkX3dpbGQuCgoyMDAxLTA4LTAyICBDaGFybGVzIFdpbHNvbiAgPGN3aWxzb25AZWNlLmdhdGVjaC5lZHU+CgoJKiBsZG1haW4uYyAobWFpbik6IGluaXRpYWxpemUgbGlua19pbmZvLnBlaTM4Nl9hdXRvX2ltcG9ydAoJKiBwZS1kbGwuYzogbmV3IHRhYmxlcyBmb3IgYXV0by1leHBvcnQgZmlsdGVyaW5nCgkoYXV0b19leHBvcnQpOiBjaGFuZ2UgQVBJLCBwYXNzIGFiZmQgZm9yIGNvbnRleHR1YWwgZmlsdGVyaW5nLgoJTG9vcCB0aHJ1IHRhYmxlcyBvZiBleGNsdWRlZCBzeW1ib2xzIGluc3RlYWQgb2YgY29tcGFyaW5nCgkiYnkgaGFuZCIuCgoyMDAxLTA4LTAyICBQYXVsIFNva29sb3Zza3kgIDxwYXVsLnNva29sb3Zza3lAdGVjaG5vbG9naXN0LmNvbT4KCgkqIHBlLWRsbC5jOiBuZXcgdmFyaWFibGUgcGVfZGxsX2VuYWJsZV9leHRyYV9kZWJ1Zy4gTmV3CglzdGF0aWMgdmFyaWFibGUgY3VycmVudF9zZWMgKHN0YXRpYyBzdHJ1Y3Qgc2VjICopLiBBZGQKCWZvcndhcmQgZGVjbGFyYXRpb24gZm9yIGFkZF9iZmRfdG9fbGluay4KCShwcm9jZXNzX2RlZl9maWxlKTogRG9uJ3QgZXhwb3J0IHVuZGVmaW5lZCBzeW1ib2xzLiBEbyBub3QKCWV4cG9ydCBzeW1ib2xzIHN0YXJ0aW5nIHdpdGggICJfaW1wX18iLiAgQ2FsbCBhdXRvX2V4cG9ydCgpCgl3aXRoIG5ldyBBUEkuCgkocGVfd2Fsa19yZWxvY3Nfb2Zfc3ltYm9sKTogTmV3IGZ1bmN0aW9uLgoJKGdlbmVyYXRlX3JlbG9jKTogYWRkIG9wdGlvbmFsIGV4dHJhIGRlYnVnZ2luZwoJKHBlX2RsbF9nZW5lcmF0ZV9kZWZfZmlsZSk6IGVsaW1pbmF0ZSBleHRyYW5lb3VzIGluaXRpYWwgYmxhbmsKCWxpbmUgaW4gb3V0cHV0CgkobWFrZV9vbmUpOiBlbmxhcmdlIHN5bXRhYiB0byBtYWtlIHJvb20gZm9yIF9fbm1fXyBzeW1ib2xzCgkoREFUQSBhdXRvLWltcG9ydCBzdXBwb3J0KS4KCShtYWtlX3NpbmdsZXRvbl9uYW1lX3RodW5rKTogTmV3IGZ1bmN0aW9uLgoJKG1ha2VfaW1wb3J0X2ZpeHVwX21hcmspOiBOZXcgZnVuY3Rpb24uCgkobWFrZV9pbXBvcnRfZml4dXBfZW50cnkpOiBOZXcgZnVuY3Rpb24uCgkocGVfY3JlYXRlX2ltcG9ydF9maXh1cCk6IE5ldyBmdW5jdGlvbi4KCShhZGRfYmZkX3RvX2xpbmspOiBTcGVjaWZ5IHRoYXQgJ25hbWUnIGFyZ3VtZW50IGlzIGEgQ09OU1QKCWNoYXIgKi4KCSogcGUtZGxsLmg6IGRlY2xhcmUgbmV3IHZhcmlhYmxlIHBlX2RsbF9leHRyYV9wZV9kZWJ1ZzsKCWRlY2xhcmUgbmV3IGZ1bmN0aW9ucyBwZV93YWxrX3JlbG9jc19vZl9zeW1ib2wgYW5kCglwZV9jcmVhdGVfaW1wb3J0X2ZpeHVwLgoJKiBlbXVsdGVtcGwvcGUuZW06IGFkZCBuZXcgb3B0aW9ucyAtLWVuYWJsZS1hdXRvLWltcG9ydCwKCS0tZGlzYWJsZS1hdXRvLWltcG9ydCwgYW5kIC0tZW5hYmxlLWV4dHJhLXBlLWRlYnVnLgoJKG1ha2VfaW1wb3J0X2ZpeHVwKTogTmV3IGZ1bmN0aW9uLgoJKHBlX2ZpbmRfZGF0YV9pbXBvcnRzKTogTmV3IGZ1bmN0aW9uLgoJKHByX3N5bSk6IE5ldyBmdW5jdGlvbi4KCShnbGRfJHtFTVVMQVRJT05fTkFNRX1fYWZ0ZXJfb3Blbik6IEFkZCBvcHRpb25hbCBleHRyYSBwZQoJZGVidWdnaW5nLiBDYWxsIHBlX2ZpbmRfZGF0YV9pbXBvcnRzLiAgTWFyayAuaWRhdGEgYXMgREFUQSwgbm90CglDT0RFLgoKMjAwMS0wOC0wMiAgQ2hhcmxlcyBXaWxzb24gIDxjd2lsc29uQGVjZS5nYXRlY2guZWR1PgoKCSogbGQudGV4aW5mbzogYWRkIGFkZGl0aW9uYWwgZG9jdW1lbnRhdGlvbiBmb3IKCS0tZXhwb3J0LWFsbC1zeW1ib2xzLiAgRG9jdW1lbnQgLS1vdXQtaW1wbGliLAoJLS1lbmFibGUtYXV0by1pbWFnZS1iYXNlLCAtLWRpc2FibGUtYXV0by1pbWFnZS1iYXNlLAoJLS1kbGwtc2VhcmNoLXByZWZpeCwgLS1lbmFibGUtYXV0by1pbXBvcnQsIGFuZAoJLS1kaXNhYmxlLWF1dG8taW1wb3J0LgoJKiBsZGludC50ZXhpbmZvOiBBZGQgZGV0YWlsZWQgZG9jdW1lbnRhdGlvbiBvbiBhdXRvLWltcG9ydAoJaW1wbGVtZW50YXRpb24uCgoyMDAxLTA3LTMwICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGxkLnRleGluZm8gKFNpbXBsZSBBc3NpZ25tZW50cyk6IEZpeCBjb21wdXRhdGlvbiBpbiBTRUNUSU9OUwoJZXhhbXBsZS4KCjIwMDEtMDctMjQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbTogVXBkYXRlIGRlcGVuZGVuY2llcyB3aXRoICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlCgoyMDAxLTA3LTIzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRjcmVmLmMgKGNoZWNrX3NlY3Rpb25fc3ltX3hyZWYpOiBOZXcgZnVuY3Rpb24uCgkoY2hlY2tfbm9jcm9zc3JlZnMpOiBDYWxsIGl0LgoJKGNoZWNrX25vY3Jvc3NyZWYpOiBJbnRlcmF0ZSBvdmVyIGgtPnJlZnMgaGVyZSBpbnN0ZWFkIG9mLi4KCShjaGVja19yZWZzKTogLi5oZXJlLiAgUGFzcyBpbiB0aGUgc3ltYm9sIG5hbWUsIHNlY3Rpb24sIGFuZCBiZmQKCXJhdGhlciB0aGFuIGhhc2hfZW50cnkgcG9pbnRlcnMuCgkoc3RydWN0IGNoZWNrX3JlZnNfaW5mbyk6IEtlZXAgc3ltYm9sIG5hbWUgcmF0aGVyIHRoYW4gaGFzaCBlbnRyeS4KCVJlbW92ZSAic2FtZSIuCgkoY2hlY2tfcmVsb2NfcmVmcyk6IFR3ZWFrIGZvciBhYm92ZSBjaGFuZ2VzIGluIGNoZWNrX3JlZnNfaW5mby4KCU9ubHkgcmVwb3J0IHJlZmVyZW5jZXMgdG8gc2VjdGlvbiBzeW1zIHdoZW4gc3ltbmFtZSBpcyBOVUxMIHRvCglwcmV2ZW50IGR1cGxpY2F0ZSBtZXNzYWdlcyBmb3IgdGhlIHNhbWUgcmVsb2MuCgoyMDAxLTA3LTE5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGxkZXhwLmMgKGV4cF9wcmludF90cmVlKTogVXNlIHN0ZGVyciBpZiBjb25maWcubWFwX2ZpbGUgaXMgbm90CglhdmFpbGFibGUuICBEbyBub3QgcHJpbnQgTlVMTCB0cmVlcy4KCShleHBfcHJpbnRfdG9rZW4pOiBQcmludCB1bmtub3duIHRva2VucyB3aXRoIHZhbHVlcyA+IDEyNiBhcwoJZGVjaW1hbCB2YWx1ZXMgbm90IEFTQ0lJIGNoYXJhY3RlcnMuCgoJKiBsZGxhbmcuYyAobGFuZ19sZWF2ZV9vdmVybGF5KTogSWYgYSByZWdpb24gaXMgc3BlY2lmaWVkIGFzc2lnbgoJaXQgdG8gYWxsIHNlY3Rpb25zIGluc2lkZSB0aGUgb3ZlcmxheSB1bmxlc3MgdGhleSBoYXZlIGJlZW4KCWFzc2lnbmVkIHRvIHRoZSBvd24sIG5vbi1kZWZhdWx0LCBtZW1vcnkgcmVnaW9uLgoKCSogUkVBRE1FOiBBZGQgaGVhZGVyIGZvciBjb25zaXN0ZW5jeSB3aXRoIG90aGVyIFJFQURNRSBmaWxlcy4KCjIwMDEtMDctMTQgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAob3V0cHV0X3ByZXZfc2VjX2ZpbmQpOiBOZXZlciByZXR1cm4KCWJmZF9hYnNfc2VjdGlvbl9wdHIsIGJmZF9jb21fc2VjdGlvbl9wdHIgbm9yCgliZmRfdW5kX3NlY3Rpb25fcHRyLgoKMjAwMS0wNy0xNCAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBNYWtlZmlsZS5hbSAoZW0zMnJlbGYuYyk6IENoYW5nZSBkZXBlbmRlbmN5IGZyb20gZ2VuZXJpYy5lbSB0bwoJZWxmMzIuZW0uCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMS0wNy0xNCAgbWF0dGhldyBncmVlbiAgPG1yZ0BldGVybmEuY29tLmF1PgoKCSogY29uZmlndXJlLnRndCAoaTM4Ni0qLW5ldGJzZGVsZiopOiBOZXcgdGFyZ2V0LgoJKGkzODYtKi1uZXRic2QqKTogU2V0IHRhcmdfZXh0cmFfZW11bHMgdG8gYGVsZl9pMzg2JwoKMjAwMS0wNy0xMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKG91dHB1dF9wcmV2X3NlY19maW5kKTogTmV3LgoJKHBsYWNlX29ycGhhbik6IFVzZSBpdC4KCjIwMDEtMDctMTEgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGxkbWFpbi5jIChtYWluKTogRml4IHR5cG9zIGluIHRoZSBsYXN0IGNoYW5nZS4KCjIwMDEtMDctMTEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogbGRtYWluLmMgKG1haW4pOiBEaXNhbGxvdyAtRiBhbmQgLWYgd2l0aG91dCAtc2hhcmVkLgoKMjAwMS0wNy0xMSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBlbXVsdGVtcGwvcGUuZW0gKGFmdGVyX29wZW4pOiBDaGVjayBmb3IgdGhlIG91dHB1dF9iZmQgbm90CgloYXZpbmcgYW55IGNvZmZfZGF0YSBzdHJ1Y3R1cmUgYWxsb2NhdGVkIHRvIGl0LgoKMjAwMS0wNy0wOSAgRGF2aWQgTydCcmllbiAgPG9icmllbkBGcmVlQlNELm9yZz4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbTogRG8gbm90IGFzc3VtaW5nIHRoYXQgY29udGVudHMgb2YgdGhlIGJ1ZmZlcgoJcmV0dXJuZWQgZnJvbSBiYXNlbmFtZSBmdW5jdGlvbiB3aWxsIHJlbWFpbiB1bmNoYW5nZWQgYWNjcm9zcyBvdGhlcgoJZnVuY3Rpb24gY2FsbHMuCgoyMDAxLTA3LTAzICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBzY3JpcHR0ZW1wbC9lbGYuc2MgKERZTkFNSUNfUEFEKTogUmV2ZXJ0IHRoZSBjaGFuZ2UgbWFkZSBvbgoJMjAwMS0wNy0wMy4gSXQgY3JlYXRlcyBkeW5hbWljIGVudHJpZXMgZXZlbiBmb3Igc3RhdGljIGJpbmFyaWVzLgoKMjAwMS0wNy0wMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBzY3JpcHR0ZW1wbC9lbGYuc2MgKERZTkFNSUNfUEFEKTogTmV3IHZhcmlhYmxlLgoJKERZTkFNSUMpOiBVc2UgaXQgdG8gcmVzZXJ2ZSBmZXcgZHluYW1pYyBlbnRyaWVzIGZvcgoJcG9zdC1saW5raW5nIHRvb2xzLgoKMjAwMS0wNi0yNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVtdWxwYXJhbXMvaHBwYTY0bGludXguc2g6IE5ldyBmaWxlLgoJKiBjb25maWd1cmUudGd0OiBocHBhKjY0Ki0qLWxpbnV4KiB1c2VzIGhwcGE2NGxpbnV4LnNoCgkqIE1ha2VmaWxlLmFtIChBTExfNjRfRU1VTEFUSU9OUyk6IEFkZCBlaHBwYTY0bGludXgubwoJKGVocHBhNjRsaW51eC5jKTogQWRkIHJ1bGUgdG8gbWFrZSBpdC4KCVJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDEtMDYtMjEgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogbGQudGV4aW5mbyAoT3B0aW9ucywgLXIpOiBNZW50aW9uIHJlc3RyaWN0aW9ucyB3aGVuIHVzaW5nCglkaWZmZXJlbnQgb2JqZWN0IGZvcm1hdHMuCgoyMDAxLTA2LTE5ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGxkbGFuZy5jIChsYW5nX2NoZWNrKTogRW1pdCBmYXRhbCBlcnJvciBpZiByZWxvY2F0YWJsZSBsaW5rCgliZXR3ZWVuIGRpZmZlcmVudCBvYmplY3QgZmxhdm91cnMgd2l0aCByZWxvY2F0aW9ucyBpbiBpbnB1dC4KCjIwMDEtMDYtMTkgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGxkLnRleGluZm8gKC1FLCAtLWV4cG9ydC1keW5hbWljKTogTWVudGlvbiAtLXZlcnNpb24tc2NyaXB0LgoJKC0tdmVyc2lvbi1zY3JpcHQpOiBNZW50aW9uIHRoZSBsYW5ndWFnZSBzdXBwb3J0LgoKMjAwMS0wNi0xOSAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBsZGxhbmcuYyAobGFuZ19jaGVjayk6IFJldmVydCB0aGUgY2hhbmdlIG1vZGUgb24gMjAwMS0wNi0xNS4KCjIwMDEtMDYtMTggIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogTWFrZWZpbGUuYW0gKGxkLjEpOiBSZW1vdmUgdGhlIHByZWZpeCBgJChzcmNkaXIpLycuCgkoZGlzdHN0dWZmKTogQWRkICQoTUFOUykuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KCgkqIGxkLjE6IFJlbW92ZWQuCgoyMDAxLTA2LTE4ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fYmVmb3JlX2FsbG9jYXRpb24pOgoJVXBkYXRlIGZvciBBUEkgY2hhbmdlIGluIGJmZF9lbGYke0VMRlNJWkV9X3NpemVfZHluYW1pY19zZWN0aW9ucy4KCSogbXB3LWVsZm1pcHMuYyAoZ2xkZWxmMzJlYm1pcF9iZWZvcmVfYWxsb2NhdGlvbik6IERpdHRvLgoJKiBsZC5oIChhcmdzX3R5cGUpOiBSZW1vdmUgbWVtYmVyIGV4cG9ydF9keW5hbWljLiAgQWxsIHVzZXJzCgljaGFuZ2VkIHRvIHVzZSBzdHJ1Y3QgYmZkX2xpbmtfaW5mbyBtZW1iZXIuCgoJKiBNYWtlZmlsZS5hbSAoZWNyaXNlbGYuYywgZWQxMHZlbGYuYywgZWkzODZtb3NzLmMpOiBEZXBlbmQgb24KCSQoc3JjZGlyKS9lbXVsdGVtcGwvZWxmMzIuZW0sIG5vdCAkKHNyY2RpcikvZW11bHRlbXBsL2dlbmVyaWMuZW0uCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMS0wNi0xOCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogbGRsYW5nLmMgKGluaXRfb3MpOiBBZGQgdGhlIG5ld2xpbmUgdG8gdGhlIGVpbmZvIGNhbGwuCgkobGFuZ19jaGVjayk6IExpa2V3aXNlLgoJKGxhbmdfZG9fdmVyc2lvbl9leHBvcnRzX3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDEtMDYtMTUgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGxleHN1cC5jIChwYXJzZV9hcmdzKTsgU2F2ZSBvcHRpbmQgdG8gcmVwb3J0IHVucmVjb2duaXplZAoJb3B0aW9uLgoKMjAwMS0wNi0xNSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBsZGxhbmcuYyAobGFuZ19jaGVjayk6IEVtaXQgZmF0YWwgZXJyb3IgaWYgcmVsb2NhdGFibGUgbGluawoJYmV0d2VlbiBkaWZmZXJlbnQgb2JqZWN0IGZsYXZvdXJzLgoKCSogbGV4c3VwLmMgKHBhcnNlX2FyZ3MpIDxjYXNlIE9QVElPTl9FWFBPUlRfRFlOQU1JQywgY2FzZSAnRSc+OgoJU2V0IG5ldyBsaW5rX2luZm8gbWVtYmVyIGV4cG9ydF9keW5hbWljLgoJKiBsZG1haW4uYyAobWFpbik6IEluaXRpYWxpemUgbmV3IGxpbmtfaW5mbyBtZW1iZXIgZXhwb3J0X2R5bmFtaWMuCgoyMDAxLTA2LTEyICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGxkbGFuZy5jICh3YWxrX3dpbGQpOiBPbmx5IGNhbGwgd2Fsa193aWxkX2ZpbGUgaWYKCWxvb2t1cF9uYW1lIHJldHVybnMgc29tZXRoaW5nLgoJKGxvb2t1cF9uYW1lKTogSWYgbG9hZF9zeW1ib2xzIGZhaWxzLCByZXR1cm4gTlVMTC4KCShsb2FkX3N5bWJvbHMpOiBDaGFuZ2UgdG8gYSBib29sZWFuIGZ1bmN0aW9uLgoJKG9wZW5faW5wdXRfYmZkcyk6IElmIGxvYWRfc3ltYm9scyBmYWlscyB0aGVuIGRvIG5vdCBtYWtlIHRoZQoJZXhlY3V0YWJsZS4KCjIwMDEtMDYtMDggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsZGxhbmcuYyAocmVjb3JkX2JmZF9lcnJvcnMpOiBSZW1vdmUuCgoJKiBlbXVsdGVtcGwvYWl4LmVtOiBGaXggY29weXJpZ2h0IGRhdGVzLgoKMjAwMS0wNi0wNyAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogZWxmX3g4Nl82NC5zaCAoTk9OUEFHRURfVEVYVF9TVEFSVF9BRERSKTogSW5jcmVhc2UuCgkoVEVYVF9TVEFSVF9BRERSKTogTGlrZXdpc2UuCgoyMDAxLTA2LTA2ICBNYXJ0aW4gU2Nod2lkZWZza3kgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBjb25maWd1cmUuaG9zdDogU2V0IEhPU1RJTkdfQ1JUMC9IT1NUSU5HX0xJQlMgY29ycmVjdGx5IGZvciBzLzM5MC4KCjIwMDEtMDYtMDUgIERhbm55IFNtaXRoICA8ZGFubnlfcl9zbWl0aF8yMDAxQHlhaG9vLmNvLm56PgoKCSogZW11bHRlbXBsL3BlLmVtIChpbml0KTogUmVkdWNlIGRlZmF1bHQgc3RhY2sgcmVzZXJ2ZSB0byAweDIwMDAwMC4KCjIwMDEtMDUtMzEgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGxkbGFuZy5jIChvcGVuX2lucHV0X2JmZHMpOiBEb24ndCBjaGFuZ2UgdGhlIGJmZCBlcnJvcgoJaGFuZGxlciB3aGlsc3QgbG9hZGluZyBzeW1ib2xzLgoKMjAwMS0wNS0yOCAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUudGd0OiBSZW1vdmUgaTM3MC1tdnMgYXJjaGl0ZWN0dXJlLCBpdCBpcyBub3QgY3VycmVudGx5CglzdXBwb3J0ZWQuCgoyMDAxLTA1LTI1ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbXVscGFyYW1zL3BwY21hY29zLnNoOiBBZGQgU1lTQ0FMTF9NQVNLIGFuZCBTWU1CT0xfTU9ERV9NQVNLCglsaWtlIGVtdWxwYXJhbXMvYWl4cHBjLnNoLgoKMjAwMS0wNS0yNSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZW11bHRlbXBsL2Jlb3MuZW0gKGdsZCR7RU1VTEFUSU9OX05BTUV9X2JlZm9yZV9wYXJzZSk6IE1vdmUKCXNldHRpbmcgb2Ygb3V0cHV0X2ZpbGVuYW1lIGFmdGVyIGJmZF9zY2FuX2FyY2guCgkqIGVtdWx0ZW1wbC9wZS5lbTogTGlrZXdpc2UuCgoyMDAxLTA1LTI1ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbXVscGFyYW1zL2FpeHJzNi5zaDogQWRkIFNZU0NBTExfTUFTSyBhbmQgU1lNQk9MX01PREVfTUFTSwoJbGlrZSBlbXVscGFyYW1zL2FpeHBwYy5zaC4KCgkqIGVtdWx0ZW1wbC9haXguZW0gKHNjKTogVXNlICR7c3JjZGlyfS9lbXVsdGVtcGwvb3N0cmluZy5zZWQKCWluc3RlYWQgb2YgJHtzcmNkaXJ9L2VtdWx0ZW1wbC9zdHJpbmdpZnkuc2VkLgoKMjAwMS0wNS0yNSAgVGltb3RoeSBXYWxsICA8dHdhbGxAb2N1bHVzdGVjaC5jb20+CgoJKiBlbXVscGFyYW1zL2VsZjY0X2FpeC5zaDogQ2hhbmdlIHNldHRpbmdzIHRvIG1hdGNoIElCTSBsaW5rZXIKCW91dHB1dC4KCjIwMDEtMDUtMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAb25lLm5ldC5hdT4KCgkqIGNvbmZpZ3VyZS5ob3N0OiBSZXBsYWNlIGxpbnV4b2xkbGQgd2l0aCBsaW51eCpvbGRsZC4KCSogY29uZmlndXJlLnRndDogTGlrZXdpc2UuCgoyMDAxLTA1LTI0ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbXVsdGVtcGwvc3RyaW5naWZ5LnNlZDogUmVtb3ZlZCBhZ2Fpbi4KCjIwMDEtMDUtMjQgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVtdWx0ZW1wbC9haXguZW0gKE9VVFBVVF9BUkNIKTogRGVmaW5lZC4KCShnbGQke0VNVUxBVElPTl9OQU1FfV9iZWZvcmVfcGFyc2UpOiBJbml0aWFsaXplCglsZGZpbGVfb3V0cHV0X2FyY2hpdGVjdHVyZSwgbGRmaWxlX291dHB1dF9tYWNoaW5lIGFuZAoJbGRmaWxlX291dHB1dF9tYWNoaW5lX25hbWUgZnJvbSAke09VVFBVVF9BUkNIfSBpZiBwb3NzaWJsZS4KCSogZW11bHRlbXBsL2Jlb3MuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvZWxmMzIuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvbGludXguZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvbWlwc2Vjb2ZmLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3BlLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3N1bm9zLmVtOiBMaWtld2lzZS4KCjIwMDEtMDUtMjQgVG9tIFJpeCA8dHJpeEByZWRoYXQuY29tPgoKCSogZW11bHRlbXBsL2FpeC5lbSA6IChnbGQke0VNVUxBVElPTl9OQU1FfV9yZWFkX2ZpbGUpCgl1ZGF0ZSBpbXBvcnQgZmlsZSBmb3JtYXQuCgkoY2hhbmdlX3N5bWJvbF9tb2RlKSBOZXcsIHNhbWUKCShpc19zeXNjYWxsKSBOZXcsIHNhbWUKCSogZW11bHBhcmFtcy9haXhwcGMuc2ggOiBhZGQgU1lTQ0FMTF9NQVNLIGFuZCBTWU1CT0xfTU9ERV9NQVNLCgkqIGVtdWxwYXJhbXMvYWl4cHBjNjQuc2ggOiBzYW1lCgkqIGVtdWxwYXJhbXMvYWl4cnM2LnNoIDogc2FtZQoJKiBlbXVscGFyYW1zL3BwY21hY29zLnNoIDogc2FtZQoJKiBlbXVsdGVtcGwvYWl4LmVtIDogdXNlIHN0cnRvdWxsIHRvIHBhcnNlIG9wdGlvbnMKCSogTWFrZWZpbGUuYW0gOiBhZGQgZWFpeHBwYzY0IGVtdWxhdGlvbiBmb3IgeGNvZmY2NAoJKiBNYWtlZmlsZS5pbiA6IHNhbWUKCSogY29uZmlndXJlLnRndCA6IHNhbWUKCgkqIHNjcmlwdHRlbXBsL2FpeC5zYyA6IGRlZmF1bHQgdGV4dCBzZWN0aW9uIG9mZnNldCB0byAweDEwMDAwMDAwCglkZWZhdWx0IGRhdGEgc2VjdGlvbiBvZmZzZXQgdG8gMHgyMDAwMDAwMAoJYWRkIC5zdjMyNjQgYW5kIC5zdjY0IHBzZXVkbyBzZWN0aW9ucwoJbG9hZGVyIGFuZCBkZWJ1ZyBzZWN0aW9ucyB1c2UgdGhlIGN1cnJlY3Qgc2VjdGlvbiBvZmZzZXQuCgoJKiBlbXVsdGVtcGwvYWl4LmVtIDogQWRkIHhjb2ZmNjQgc3VwcG9ydAoJQWRkIC1iaW5pdGZpbmkgc3VwcG9ydAoJKGdsZCR7RU1VTEFUSU9OX05BTUV9X2JlZm9yZV9wYXJzZSkgLWJpbml0ZmluaQoJKGdsZCR7RU1VTEFUSU9OX05BTUV9X3BhcnNlX2FyZ3MpIHNhbWUKCShnbGQke0VNVUxBVElPTl9OQU1FfV9iZWZvcmVfYWxsb2NhdGlvbikgZm9ybWF0IGNoYW5nZSBmb3Igc3BlY2lhbAoJc2VjdGlvbnMKCgkqIGVtdWxwYXJhbXMvYWl4cHBjNjQuc2ggOiBOZXcgZmlsZSBmb3IgeGNvZmY2NCBzdXBwb3J0CgoyMDAxLTA1LTIzICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoRUxGX0lOVEVSUFJFVEVSX1NFVF9ERUZBVUxUKTogVXNlIHRoaXMgbmV3Cgl2YXJpYWJsZSB0byBhdm9pZCBub24tcG9ydGFibGUgc2hlbGwgY29uc3RydWN0LgoKMjAwMS0wNS0yMyAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGxkbWFpbi5jIChnZXRfZW11bGF0aW9uKTogQWRkIC1taXBzNSBjb21tYW5kIGxpbmUgYXJndW1lbnQuCgoyMDAxLTA1LTIyICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVtdWxwYXJhbXMvZWxmX2kzODZfbGRzby5zaDogTmV3LCBjb3BpZWQgZnJvbSBlbGZfaTM4Ni5zaC4KCShFTEZfSU5URVJQUkVURVJfTkFNRSk6IERlZmluZSBpdC4KCSogZW11bHRlbXBsL2VsZjMyLmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9iZWZvcmVfYWxsb2NhdGlvbik6IFVzZQoJaXQuCgkqIGNvbmZpZ3VyZS50Z3QgKHRhcmdfZW11bCwgdGFyZ19leHRyYV9lbXVscykKCVtpWzM0NTZdODYtKi1zb2xhcmlzMiosIGlbMzQ1Nl04Ni0qLXNvbGFyaXMqXTogVXNlIGVsZl9pMzg2X2xkc28KCWFzIHByaW1hcnksIGVsZl9pMzg2IGFzIGV4dHJhLgoJKiBNYWtlZmlsZS5hbSAoQUxMX0VNVUxBVElPTlMpOiBBZGRlZCBlZWxmX2kzODZfbGRzby5vLgoJKGVlbGZfaTM4Nl9sZHNvLmMpOiBOZXcgcnVsZS4KCSogTWFrZWZpbGUuaW46IFJlYnVpbHQuCgoyMDAxLTA1LTIyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogbGV4c3VwLmMgKGxkX29wdGlvbnMpOiAgQWxsb3cgLUkgdG8gYmUgYW4gYWxpYXMgZm9yCgktLWR5bmFtaWMtbGlua2VyLiAgVGhpcyBpcyBmb3IgU29sYXJpcyBjb21wYXRhYmlsaXR5LgoJKiBsZC50ZXhpbmZvOiBEb2N1bWVudCB0aGF0IC1JIGNhbiBiZSB1c2VkLgoJKiBsZC4xOiBSZWdlbmVyYXRlLgoKMjAwMS0wNS0xNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBvbmUubmV0LmF1PgoKCSogbGRsYW5nLmMgKHdpbGRfZG9pdCk6IFVzZSBsaW5rZXJfaGFzX2lucHV0IHRvIHJlbGlhYmx5IGRldGVybWluZQoJd2hldGhlciBhbiBpbnB1dCBzZWN0aW9uIGlzIHRoZSBmaXJzdCBvbmUgYXNzaWduZWQgdG8gYW4gb3V0cHV0CglzZWN0aW9uLgoJQXNzb3J0ZWQgZm9ybWF0dGluZyBmaXhlcy4KCjIwMDEtMDUtMTQgIERKIERlbG9yaWUgIDxkakBkZWxvcmllLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChsZC5kdmkpOiBTZWFyY2ggYmZkL2RvYyBmb3IgdGV4aW5mbyBmaWxlcy4KCSogTWFrZWZpbGUuaW46IERpdHRvLgoKMjAwMS0wNS0xMSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbXVscGFyYW1zL2VsZjY0X2lhNjQuc2ggKE9USEVSX1JFQURPTkxZX1NFQ1RJT05TKTogUHV0CgkuZ251LmxpbmtvbmNlLmlhNjR1bnd7LGl9IHNlY3Rpb25zIGludG8gY29ycmVzcG9uZGluZyAuSUFfNjQudW53aW5kKgoJb3V0cHV0IHNlY3Rpb25zLgoJKiBlbXVscGFyYW1zL2VsZjY0X2FpeC5zaCAoT1RIRVJfUkVBRE9OTFlfU0VDVElPTlMpOiBMaWtld2lzZS4KCjIwMDEtMDUtMTEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogbGRsYW5nLmMgKGxhbmdfcHJvY2Vzcyk6IENhbGwgYmZkX21lcmdlX3NlY3Rpb25zLgoKMjAwMS0wNS0wNyAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGxkZ3JhbS55OiBGaXggdHlwby4KCjIwMDEtMDUtMDMgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbTogSW5jbHVkZSAibGliaWJlcnR5LmgiLgoJKGdsZCR7RU1VTEFUSU9OX05BTUV9X3ZlcmNoZWNrKTogQ2FsbCBiYXNlbmFtZSAoKSB0byBnZXQgdGhlCgliYXNlbmFtZSBvZiB0aGUgYmZkIGZpbGVuYW1lLgoJKGdsZCR7RU1VTEFUSU9OX05BTUV9X3N0YXRfbmVlZGVkKTogTGlrZXdpc2UuCgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1fdHJ5X25lZWRlZCk6IExpa2V3aXNlLgoJKGdsZCR7RU1VTEFUSU9OX05BTUV9X29wZW5fZHluYW1pY19hcmNoaXZlKTogTGlrZXdpc2UuCgoyMDAxLTA1LTAyICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbXVsdGVtcGwvcGUuZW06IEluY2x1ZGUgPGN0eXBlLmg+LgoKMjAwMS0wNS0wMiAgSm9oYW4gUnlkYmVyZyAgPGpyeWRiZXJnQG9wZW5jb3Jlcy5vcmc+CgoJKiBlbXVscGFyYW1zL2VsZjMyb3BlbnJpc2Muc2g6IE5ldyBmaWxlLgoKCSogTWFrZWZpbGUuYW06IEFkZCBPcGVuUklTQyB0YXJnZXQuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KCgkqIGNvbmZpZ3VyZS50Z3Q6IEFkZCBvcGVucmlzYy0qLSogbWFwcGluZy4KCjIwMDEtMDUtMDIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbXVsdGVtcGwvYWl4LmVtOiBSZXBsYWNlIGJ1eXN0cmluZyB3aXRoIHhzdHJkdXAuCgkqIGVtdWx0ZW1wbC9iZW9zLmVtOiBSZXBsYWNlIGJ1eXN0cmluZyB3aXRoIHhzdHJkdXAuCgoyMDAxLTA1LTAyICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBsZGZpbGUuYzogSW5jbHVkZSAibGliaWJlcnR5LmgiLgoJKiBsZGxleC5sOiBMaWtld2lzZS4KCgkqIGxkbWlzYy5jIChidXlzdHJpbmcpOiBSZW1vdmVkLgoJKiBsZG1pc2MuaDogTGlrZXdpc2UuCgoJKiBsZGZpbGUuYzogUmVwbGFjZSBidXlzdHJpbmcgd2l0aCB4c3RyZHVwLgoJKiBsZGxhbmcuYzogTGlrZXdpc2UuCgkqIGxkbGV4Lmw6IExpa2V3aXNlLgoJKiBsZG1haW4uYzogTGlrZXdpc2UuCgkqIGxkbWlzYy5jOiBMaWtld2lzZS4KCSogbGV4c3VwLmM6IExpa2V3aXNlLgoJKiBtcHctZXBwY21hYy5jOiBMaWtld2lzZS4KCjIwMDEtMDQtMzAgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGVtdWxwYXJtcy9lbGZfeDg2XzY0LnNoIChNQVhQQUdFU0laRSk6IEZpeCB2YWx1ZS4KCjIwMDEtMDQtMjggIFBhdWwgU29rb2xvdnNreSAgPFBhdWwuU29rb2xvdnNreUB0ZWNobm9sb2dpc3QuY29tPgoKCSogbGRsYW5nLmMgKGxvYWRfc3ltYm9scyk6IEdpdmUgZW11bGF0aW9uIGEgY2hhbmNlCgl0byBwcm9jZXNzIHVucmVjb2duaXplZCBmaWxlIGJlZm9yZSBmYXRhbCBlcnJvciBpcwoJcmVwb3J0ZWQsIG5vdCBhZnRlci4KCjIwMDEtMDQtMjcgIFNlYW4gTWNOZWlsIDxzZWFuQG1jbmVpbC5jb20+CgoJKiBjb25maWd1cmUudGd0OiBBZGQgYXJtLXZ4d29ya3MgdGFyZ2V0LgoJKiBzY3JpcHR0ZW1wbC9hcm1jb2ZmLnNjOiBTdXBwb3J0IC50ZXh0IG9yIC5kYXRhIGFzIGEgc2VjdGlvbiBuYW1lCglwcmVmaXguCglEZWZpbmUgX2V0ZXh0LgoKMjAwMS0wNC0xMyAgSi5ULiBDb25rbGluICA8anRjQHJlZGJhY2suY29tPgoKCSogbGQudGV4aW5mbzogRG9jdW1lbnQgLS1mYXRhbC13YXJuaW5ncy4KCSogbGQuMTogUmVnZW5lcmF0ZS4KCgkqIGxkbWlzYy5jICh2ZmluZm8pOiBTZXQgZmxhZyB0byBpbmhpYml0IG1ha2luZyBleGVjdXRhYmxlIGlmCgl3YXJuaW5ncyBoYXZlIGJlZW4gdHVybmVkIGludG8gZXJyb3JzLgoJKiBsZXhzdXAuYyAoT1BUSU9OX1dBUk5fRkFUQUwpOiBEZWZpbmUuCgkobGRfb3B0aW9ucyk6IEVudHJ5IGZvciAtLWZhdGFsLXdhcm5pbmdzLgoJKHBhcnNlX2FyZ3MpOiBIYW5kbGUgT1BUSU9OX1dBUk5fRkFUQUwuCgkqIGxkLmggKGxkX2NvbmZpZ190eXBlKTogQWRkIGZhdGFsX3dhcm5pbmdzIGZpZWxkLgoKMjAwMS0wNC0xMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBsZG1haW4uYyAobWFpbik6IERlZmF1bHQgdG8gZGlzY2FyZF9zZWNfbWVyZ2UuCgkqIGxleHN1cC5jIChPUFRJT05fRElTQ0FSRF9OT05FKTogRGVmaW5lLgoJKGxkX29wdGlvbnMpOiBBZGQgLS1kaXNjYXJkLW5vbmUuCgkocGFyc2VfYXJncyk6IEhhbmRsZSBPUFRJT05fRElTQ0FSRF9OT05FLgoJKiBsZGxhbmcuYyAod2lsZF9kb2l0KTogU0VDX01FUkdFIHNob3VsZCBiZSBzZXQgaW4gdGhlIG91dHB1dAoJc2VjdGlvbiBvbmx5IGlmIFNFQ19NRVJHRSBhbmQgU0VDX1NUUklOR1MgZmxhZ3MgYW5kIGVudHNpemUgb2YKCWFsbCBpdHMgaW5wdXQgc2VjdGlvbnMgbWF0Y2guCgoyMDAxLTA0LTA1ICBTdGV2ZW4gSi4gSGlsbCAgPHNqaGlsbEBjb3R3LmNvbT4KCgkqIE1ha2VmaWxlLmFtIChBTExfRU1VTEFUSU9OUyk6IEFkZCBlZWxmMzJsdHNtaXAuby4KCShBTExfNjRfRU1VTEFUSU9OUyk6IEFkZCBlZWxmNjRidHNtaXAubyBhbmQgZWVsZjY0bHRzbWlwLm8uCgkoZWVsZjMybHRzbWlwLmMpOiBOZXcgdGFyZ2V0LgoJKGVlbGY2NGJ0c21pcC5jKTogTGlrZXdpc2UuCgkoZWVsZjY0bHRzbWlwLmMpOiBMaWtld2lzZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGVkLgoKCSogY29uZmlndXJlLnRndCAobWlwcyplbC0qLWxpbnV4LWdudSk6IFVzZXMgdHJhZGl0aW9uYWwgTUlQUwoJdGFyZ2V0LgoJKG1pcHMqLSotbGludXgtZ251Kik6IExpa2V3aXNlLgoKCSogZW11bHBhcmFtcy9lbGYzMmx0c21pcC5zaDogTmV3LiBUcmFkaXRpb25hbCBsaXR0bGUgZW5kaWFuCglNSVBTIHRhZ2V0LgoJKiBlbXVscGFyYW1zL2VsZjY0YnRzbWlwLnNoOiBOZXcuIFRyYWRpdGlvbmFsIDY0Yml0IGJpZyBlbmRpYW4KCXRhcmdldC4KCSogZW11bHBhcmFtcy9lbGY2NGx0c21pcC5zaDogTmV3LiBUcmFkaXRpb25hbCA2NGJpdCBsaXR0bGUKCWVuZGlhbiB0YXJnZXQuCgoyMDAxLTA0LTA1ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGVtdWxwYXJhbXMvY3Jpc2VsZi5zaCAoRVhFQ1VUQUJMRV9TWU1CT0xTKTogQ2Fubm90IHByb3ZpZGUKCWNvcnJlY3QgdmFsdWUgb2YgX19TdGV4dCBoZXJlLgoJKFRFWFRfU1RBUlRfU1lNQk9MUyk6IERlZmluZTsgYWx3YXlzIGRlZmluZSBfX1N0ZXh0LCB0byBzdGFydCBvZgoJLnN0YXJ0dXAgc2VjdGlvbi4KCgkqIGVtdWxwYXJhbXMvY3Jpc2xpbnV4LnNoOiBSZW1vdmUgRklYTUUuCgoyMDAxLTA0LTAyICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogZW11bHBhcmFtcy9ocHBhbGludXguc2ggKE1BWFBBR0VTSVpFKTogU2V0IHRvIDY0ay4KCShURVhUX1NUQVJUX0FERFIsIFRBUkdFVF9QQUdFX1NJWkUpOiBMaWtld2lzZS4KCjIwMDEtMDMtMjcgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogY29uZmlndXJlLnRndCAoY3Jpcy0qLSopOiBDaGFuZ2UgZGVmYXVsdCBlbXVsYXRpb24gdG8gY3Jpc2VsZi4KCShjcmlzLSotKmFvdXQqKTogTmV3IHJ1bGUuCgoyMDAxLTAzLTI3ICBNYXR0aGV3IFdpbGNveCAgPHdpbGx5QGxkbC5mYy5ocC5jb20+CgoJKiBlbXVscGFyYW1zL2hwcGFsaW51eC5zaCAoTUFYUEFHRVNJWkUpOiBTZXQgdG8gMHg0MDAwLgoJKFRFWFRfU1RBUlRfQUREUiwgVEFSR0VUX1BBR0VfU0laRSk6IERpdHRvLgoKMjAwMS0wMy0yNiAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogbGQudGV4aW5mbyAoT3ZlcnZpZXcpOiBGaXggc3ludGF4IGluIHRleGkgY29kZS4KCjIwMDEtMDMtMjUgIFN0ZXBoYW5lIENhcnJleiAgPFN0ZXBoYW5lLkNhcnJlekB3b3JsZG5ldC5mcj4KCgkqIGxkLnRleGluZm86IFB1dCBAYyBtYW4gaW5kaWNhdGlvbnMgdG8gZ2VuZXJhdGUgdGhlIGxkIG1hbiBwYWdlLgoJV2hlbiBnZW5lcmF0aW5nIG1hbiwgZGVmaW5lIGFsbCB0aGUgdmFyaWFibGVzLiAgRGVmaW5lIFNFRUFMU08KCWFuZCBTWU5PUFNJUy4gIFJlLW9yZ2FuaXplIHNvbWUgbGluZXMgdG8gYXZvaWQgdGhlIGNyb3NzIHJlZmVyZW5jZXMuCgkqIE1ha2VmaWxlLmFtIChNQU5DT05GLCBURVhJMlBPRCwgUE9EMk1BTik6IE5ldyB2YXJpYWJsZXMuCgkobGQuMSk6IEdlbmVyYXRlIGZyb20gbGQudGV4aW5mby4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAxLTAzLTIzICBNYXJrIEVsYnJlY2h0IDxzbm93YmFsbDNAYmlnZm9vdC5jb20+CgoJKiBzY3JpcHR0ZW1wbC9pMzg2Z28zMi5zYzogU3VwcG9ydCB0aGUgR0NDIGZsYWdzICctZmZ1bmN0aW9uLXNlY3Rpb25zJwoJYW5kICctZmRhdGEtc2VjdGlvbnMnLiBTZXQgdGhlIFZNQSBvZiBTVEFCUyBzZWN0aW9ucyB0byB6ZXJvLgoKMjAwMS0wMy0xNyAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQHJlZGhhdC5jb20+CgoJKiBlbXVsdG1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fc2VhcmNoX25lZWRlZCk6IElmIE5BTUUKCWlzIGFuIGFic29sdXRlIHBhdGggbG9vayBvbmx5IGZvciB0aGlzIGZpbGUgYW5kIG5vdCBhbG9uZyB0aGUgcGF0aC4KCjIwMDEtMDMtMTcgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckByZWRoYXQuY29tPgoKCSogZW11bHRlbXBsL2VsZjMyLmVtIChPUFRJT05fR1JPVVApOiBOZXcgbWFjcm8uCglBZGQgbmV3IG9wdGlvbiBCZ3JvdXAgdG8gbG9uZ29wdHMuCgkoZ2xkKl9wYXJzZV9hcmdzKTogSGFuZGxlIEdST1VQX09QVElPTiBhbmQgcmVjb2duaXplIC16IGRlZnMuCgkoZ2xkKl9saXN0X29wdGlvbnMpOiBBZGQgLUJncm91cCBhbmQgLXogZGVmcy4KCSogbGQuMTogRG9jdW1lbnQgLUJncm91cCBhbmQgLXogZGVmcy4KCSogbGQudGV4aW5mbzogTGlrZXdpc2UuCgoyMDAxLTAzLTA3ICBNaWNoYWVsIE1laXNzbmVyICA8bWVpc3NuZXJAcmVkaGF0LmNvbT4KCgkqIHNjcmlwdHRlbXBsL2VsZmQxMHYuc2MgKC5yb2RhdGEsLnJvZGF0YTEsLmRhdGExLC5zZGF0YSk6IERlYWwKCXdpdGggc2VjdGlvbnMgY3JlYXRlZCBieSAtZmRhdGEtc2VjdGlvbnMuCgkoLmR5bmJzcywuYnNzKTogRGl0dG8uCgoyMDAxLTAzLTA1ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogZW11bHRlbXBsL202OGtlbGYuZW0gKG02OGtfZWxmX2FmdGVyX2FsbG9jYXRpb24pOiBDYWxsCglhZnRlcl9hbGxvY2F0aW9uX2RlZmF1bHQsIG5vdCBnbGQuLi5fYmVmb3JlX2FsbG9jYXRpb24uCgoyMDAxLTAyLTI3ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogY29uZmlndXJlLmluIChCRkRfVkVSU0lPTik6IE5ldy4KCShBTV9JTklUX0FVVE9NQUtFKTogVXNlICRCRkRfVkVSU0lPTi4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIKCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAxLTAyLTI2ICBUaW1vdGh5IFdhbGwgIDx0d2FsbEBjeWdudXMuY29tPgoKCSogZW11bHBhcmFtcy9lbGY2NF9haXguc2g6IEFkZCBhZGRpdGlvbmFsIHJlYWQtb25seSBzZWN0aW9uczsKCXVuY29tbWVudCBsaW5lcyB3aGljaCBhcmUgbm93IHJlcXVpcmVkLgoKMjAwMS0wMi0yNiAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogbGRsYW5nLmMgKG9wZW5faW5wdXRfYmZkcyk6IFNldCB0aGUgYmZkIGVycm9yIGhhbmRsZXIgc28KCXRoYXQgcHJvYmxlbXMgY2FuIGJlIGNhdWdodCB3aGlsc3QgbG9hZGluZyBzeW1ib2xzLgoJKHJlY29yZF9iZmRfZXJyb3JzKTogTmV3IGZ1bmN0aW9uOiBSZXBvcnQgQkZEIGVycm9ycyBhbmQgbWFyawoJdGhlIGV4ZWN1dGFibGUgb3V0cHV0IGFzIGJlaW5nIGludmFsaWQuCgoyMDAxLTAyLTIyICBUaW1vdGh5IFdhbGwgIDx0d2FsbEBjeWdudXMuY29tPgoKCSogY29uZmlndXJlLmhvc3Q6IEFkZCBjb25maWd1cmF0aW9uIGZvciBpYTY0LSotYWl4Ki4KCSogTWFrZWZpbGUuYW0gKEFMTF82NF9FTVVMQVRJT05TKTogQWRkIGVtdWxhdGlvbiBmb3IgaWE2NC0qLWFpeCouCglBZGQgZGVwZW5kZW5jaWVzIGZvciBlZWxmNjRfYWl4LmMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmUudGd0OiBBZGQgaWE2NC0qLWFpeCogbWFwcGluZy4KCSogZW11bHBhcmFtcy9lbGY2NF9haXguc2g6IEFkZCBzZXR0aW5ncyBmb3IgZWxmNjQgb24gYWl4NS4KCjIwMDEtMDItMjAgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGxkZmlsZS5jIChsZGZpbGVfb3Blbl9maWxlKTogU2V0IGVudHJ5LT5zZWFyY2hfZGlyc19mbGFnIHRvCglmYWxzZSBpZiB3ZSBmb3VuZCB0aGUgZmlsZS4KCjIwMDEtMDItMTggIERhdmlkIE8nQnJpZW4gIDxvYnJpZW5ARnJlZUJTRC5vcmc+CgoJKiBjb25maWd1cmUudGd0OiBBZGQgRnJlZUJTRC9BbHBoYSwgRnJlZUJTRC94ODYtNjQsIEZyZWVCU0QvaWE2NCwKCUZyZWVCU0QvUG93ZXJQQywgRnJlZUJTRC9hcm0sIGFuZCBGcmVlQlNEL3NwYXJjNjQgZW50cmllcy4KCjIwMDEtMDItMTggIGxhcnMgYnJpbmtob2ZmICA8bGFyc0Bub2NyZXcub3JnPgoKCSogTWFrZWZpbGUuYW06IEFkZCBQRFAtMTEgdGFyZ2V0LgoJKiBjb25maWd1cmUudGd0OiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9wZHAxMS5zaDogTmV3IGZpbGUuCgoyMDAxLTAyLTE3ICBEYXZpZCBPJ0JyaWVuICA8b2JyaWVuQEZyZWVCU0Qub3JnPgoKCSogY29uZmlndXJlLmhvc3Q6IEFkZCBhIGdlbmVyaWMgRnJlZUJTRCBjb25maWd1cmF0aW9uIGVudHJ5IHN1Y2ggdGhhdAoJYWxsIFttb2Rlcm5dIEZyZWVCU0Qgc3lzdGVtcyBvbiBhbGwgcGxhdGZvcm1zIHdpbGwgbG9vayB0aGUgc2FtZS4KCjIwMDEtMDItMTQgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZ3VyZS50Z3Q6IFJlbW92ZSBtZW50aW9uIG9mIGVhcm1lbGZfbGludXgyNi4KCjIwMDEtMDItMTMgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbXVscGFyYW1zL2VsZjY0X2lhNjQuc2ggKE9USEVSX0dPVF9TWU1CT0xTKTogUmVtb3ZlLgoKMjAwMS0wMi0xMyAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogbGRleHAuaCAobm9kZV90eXBlKTogQWRkIGV0cmVlX3Byb3ZpZGVkLgoJKiBsZGV4cC5jIChleHBfZm9sZF90cmVlKTogSGFuZGxlIGV0cmVlX3Byb3ZpZGVkLiBTZXQgdGhlIG5vZGUKCXR5cGUgdG8gZXRyZWVfcHJvdmlkZWQgaWYgZGVmaW5lZCBieSBQUk9WSURFLiBBbGxvdyB1cGRhdGluZwoJZm9yIGV0cmVlX3Byb3ZpZGVkLgoJKGV4cF9wcmludF90cmVlKTogSGFuZGxlIGV0cmVlX3Byb3ZpZGVkLgoJKiBtcHctZWxmbWlwcy5jIChnbGRlbGYzMmVibWlwX2ZpbmRfZXhwX2Fzc2lnbm1lbnQpOiBIYW5kbGUKCWV0cmVlX3Byb3ZpZGVkLgoKMjAwMS0wMi0wOSAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+CgoJKiBlbXVscGFyYW1zL2VsZjY0X2lhNjQuc2ggKE9USEVSX1JFQURPTkxZX1NFQ1RJT05TKTogQWRkCgkuSUFfNjQudW53aW5kLiogcGF0dGVybiB0byB1bndpbmQgdGFibGUgc2VjdGlvbiBhbmQKCS5JQV82NC51bndpbmRfaW5mbyogcGF0dGVybiB0byB1bndpbmQgaW5mbyBzZWN0aW9uLgoKMjAwMS0wMi0wOSAgTWFydGluIFNjaHdpZGVmc2t5ICA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KCgkqIE1ha2VmaWxlLmFtOiBBZGQgbGludXggdGFyZ2V0IGZvciBTLzM5MC4KCSogTWFrZWZpbGUuaW46IExpa2V3aXNlLgoJKiBjb25maWd1cmUuaG9zdDogTGlrZXdpc2UuCgkqIGNvbmZpZ3VyZS50Z3Q6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjY0X3MzOTAuc2g6IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL2VsZl9zMzkwLnNoOiBOZXcgZmlsZS4KCjIwMDEtMDItMDkgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLnRndCAoc3BhcmM2NC0qLWxpbnV4LWdudSopOiBBZGQgZWxmMzJfc3BhcmMgaW50bwoJdGFyZ19leHRyYV9saWJwYXRoLgoJKHNwYXJjLSotbGludXgtZ251Kik6IEFkZCBlbGY2NF9zcGFyYyBpbnRvIHRhcmdfZXh0cmFfbGlicGF0aC4KCjIwMDEtMDItMDYgIFBoaWxpcCBCbHVuZGVsbCAgPHBoaWxiQGdudS5vcmc+CgoJKiBNYWtlZmlsZS5hbTogUmVtb3ZlIG1lbnRpb24gb2YgZWFybWVsZl9saW51eDI2LgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDEtMDItMDQgIFBoaWxpcCBCbHVuZGVsbCAgPHBoaWxiQGdudS5vcmc+CgoJKiBlbXVscGFyYW1zL2FybWVsZl9saW51eC5zaCAoVEVYVF9TVEFSVF9BRERSKTogU2V0IHRvIDB4ODAwMC4KCSogZW11bHBhcmFtcy9hcm1lbGZfbGludXgyNi5zaDogRGVsZXRlLgoJKiBjb25maWd1cmUudGd0OiBSZW1vdmUgbWVudGlvbiBvZiBhcm1lbGZfbGludXgyNiBlbXVsYXRpb24uCgoyMDAxLTAyLTAxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogbGQuMTogUmVwbGFjZSBvY2N1cmFuY2VzIG9mIC1vZm9ybWF0IHdpdGggLS1vZm9ybWF0LgoKMjAwMS0wMS0yNSAgSmltIERyaWZ0bXllciA8amRyaWZ0QHN0bnkucnIuY29tPgoKCSogbGRsYW5nLmMgKGxhbmdfbGVhdmVfb3ZlcmxheSk6IERvbid0IHNldCBsbWFfcmVnaW9uIHdoZW4KCWxvYWRfYmFzZSBpcyBzcGVjaWZpZWQuCgoyMDAxLTAxLTI0ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbTogQ29ycmVjdCBzcGVsbGluZyBpbiBjb21tZW50cyBhbmQgbGlzdGVkCglvcHRpb25zLgoKMjAwMS0wMS0yMyAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGxkbGFuZy5jIChsYW5nX2xlYXZlX292ZXJsYXkpOiBPbmx5IHNldCBsbWFfcmVnaW9uIGZyb20gdGhlCglkZWZhdWx0IGZvciB0aGUgZmlyc3Qgc2VjdGlvbiBvZiBhIGdyb3VwIG9mIG92ZXJsYXkgc2VjdGlvbnMuCgoyMDAxLTAxLTIyICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogTWFrZWZpbGUuYW0gKEdFTlNDUklQVFMpOiBQYXNzIGV4ZWNfcHJlZml4LgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZ2Vuc2NyaXB0cy5zaDogVXNlIGV4ZWNfcHJlZml4IHBhcmFtZXRlciB0byBzcGVjaWZ5IHRvb2wgbGliLgoJQ2hlY2sgZm9yIG51bGwgdG9vbF9kaXIuCgoyMDAxLTAxLTE2ICBKaW0gV2lsc29uICA8d2lsc29uQHJlZGhhdC5jb20+CgoJKiBlbXVscGFyYW1zL2VsZjY0X2lhNjQuc2ggKE9USEVSX1JFQURPTkxZX1NFQ1RJT05TKTogQWRkIElBXzY0LnVud2luZAoJYW5kIElBXzY0LnVud2luZC5pbmZvLgoKMjAwMS0wMS0xNiAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogbGRsYW5nLmMgKGxhbmdfY2hlY2spOiBNZXJnZSB0aGUgcHJpdmF0ZSBkYXRhIG9ubHkgaWYgdGhlCglpbnB1dCBmaWxlIGhhcyBjb250ZW50cy4KCjIwMDEtMDEtMTQgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBlbXVscGFyYW1zL2hwcGFsaW51eC5zaCAoT1VUUFVUX0ZPUk1BVCk6IFNldCB0byBlbGYzMi1ocHBhLWxpbnV4LgoKCSogZW11bHRlbXBsL2hwcGFlbGYuZW0gKGhwcGFlbGZfYWZ0ZXJfcGFyc2UpOiBOZXcgZnVuY3Rpb24sCgllbmFibGluZyBzZWFyY2ggZm9yIGxpYm1pbGxpLiAgT24gYSByZWxvY2F0YWJsZSBsaW5rLCBtYWtlIC50ZXh0CglzZWN0aW9ucyB1bmlxdWUuCgkoTERFTVVMX0FGVEVSX1BBUlNFKTogRGVmaW5lLgoJKGhwcGFlbGZfZmluaXNoKTogQ29ycmVjdCBzcGVsbGluZyBvZiByZWxvY2F0YWJsZSBpbiBjb21tZW50cy4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fcGxhY2Vfb3JwaGFuKTogRG9uJ3QKCXJ1bW1hZ2UgdGhyb3VnaCB0aGUgc2NyaXB0IGZvciBzZWN0aW9ucyBvbiB0aGUgdW5pcXVlIGxpc3QuCglDb3JyZWN0IGxlbmd0aCBvZiBzdHJuY21wIGZvciAiLm5vdGUiLgoJKGdsZCR7RU1VTEFUSU9OX05BTUV9X2NoZWNrX25lZWRlZCk6IFJlYXJyYW5nZSBmdW5jdGlvbi4KCgkqIGxkbGFuZy5jICh1bmlxdWVfc2VjdGlvbl9saXN0KTogTmV3IHZhci4KCSh1bmlxdWVfc2VjdGlvbl9wKTogTmV3IGZ1bmN0aW9uLgoJKHdhbGtfd2lsZF9zZWN0aW9uKTogRG9uJ3QgbWF0Y2ggc2VjdGlvbnMgb24gdW5pcXVlX3NlY3Rpb25fbGlzdC4KCShsYW5nX2FkZF91bmlxdWUpOiBOZXcgZnVuY3Rpb24uCglDb3JyZWN0IHNwZWxsaW5nIG9mIHJlbG9jYXRhYmxlIGluIGNvbW1lbnRzLgoKCSogbGRsYW5nLmggKHN0cnVjdCB1bmlxdWVfc2VjdGlvbnMpOiBEZWNsYXJlLgoJKHVuaXF1ZV9zZWN0aW9uX2xpc3QpOiBEZWNsYXJlLgoJKHVuaXF1ZV9zZWN0aW9uX3ApOiBEZWNsYXJlLgoJKGxhbmdfYWRkX3VuaXF1ZSk6IERlY2xhcmUuCgoJKiBsZXhzdXAuYyAobGRfb3B0aW9ucyk6IEFsbG93IC0tdW5pcXVlIHRvIHRha2UgYW4gb3B0aW9uYWwgYXJnLgoJKHBhcnNlX2FyZ3MgW09QVElPTl9VTklRVUVdKTogQ2FsbCBsYW5nX2FkZF91bmlxdWUuCgoJKiBsZC50ZXhpbmZvICgtLXVuaXF1ZSk6IFVwZGF0ZS4KCjIwMDEtMDEtMTMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBsZXhzdXAuYyAocGFyc2VfYXJncyk6IFJlbW92ZSBzcHVyaW91cyB3aGl0ZSBzcGFjZS4KCjIwMDEtMDEtMTIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBsZXhzdXAuYyAocGFyc2VfYXJncyk6IFVwZGF0ZSBjb3B5cmlnaHQgZGF0ZS4KCjIwMDEtMDEtMTIgIFBoaWxpcCBCbHVuZGVsbCAgPHBiQGZ1dHVyZXR2LmNvbT4KCgkqIGNvbmZpZ3VyZS5ob3N0OiBTZXQgSE9TVElOR19MSUJTIGFwcHJvcHJpYXRlbHkgZm9yIGl4ODYtY3lnd2luLgoKMjAwMS0wMS0xMCAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBzY3JpcHR0ZW1wbC9oODMwMC5zYzogRml4IGZvcm1hdHRpbmcuICBGaXggYSBjb21tZW50IHR5cG8uCgkqIHNjcmlwdHRlbXBsL2g4MzAwaC5zYzogRml4IGZvcm1hdHRpbmcuCgkqIHNjcmlwdHRlbXBsL2g4MzAwcy5zYzogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2g4NTAwLnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvaDg1MDBiLnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvaDg1MDBjLnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvaDg1MDBtLnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvaDg1MDBzLnNjOiBMaWtld2lzZS4KCjIwMDAtMDEtMDcgIERhdmlkIE8nQnJpZW4gIDxvYnJpZW5AQlNEaS5jb20+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW06IE9ubHkgcGVyZm9ybSBMaW51eCBsZCBoaW50cyBwcm9jZXNzaW5nIHdoZW4KCXRhcmdldGluZyBMaW51eC4KCjIwMDEtMDEtMDcgIFBoaWxpcCBCbHVuZGVsbCAgPHBoaWxiQGdudS5vcmc+CgoJKiBsZC50ZXhpbmZvIChCdWcgUmVwb3J0aW5nKTogVXBkYXRlIGVtYWlsIGFkZHJlc3MgZm9yIHJlcG9ydHMuCgoyMDAwLTEyLTMxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogbGV4c3VwLmMgKHBhcnNlX2FyZ3MpOiBTZXQgb3B0ZXJyIHRvIDAgYW5kIGRldGVjdCB1bnBhcnNlZCBsb25nCglvcHRpb25zIGJ5IGNoZWNraW5nIGZvciBhIHJldHVybiB2YWx1ZSBvZiAnPycgbm90IC0xLgoKMjAwMC0xMi0yOCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGxleHN1cC5jIChzdHJ1Y3QgbGRfb3B0aW9uKTogQWRkIG5ldyBlbnVtIHZhbHVlOgoJRVhBQ1RMWV9UV09fREFTSEVTLgoJKGxkX29wdGlvbnNbXSk6IENoYW5nZSAtb21hZ2ljLCAtb3V0cHV0IGFuZCAtb2Zvcm1hdCBvcHRpb25zCgl0byBiZSBFWEFDVExZX1RXT19EQVNIRVMuCgkoT1VUUFVUX0NPVU5UKTogVXNlIEFSUkFZX1NJWkUuCgkocGFyc2VfYXJncyk6IENoYW5nZSBwYXJhbWV0ZXIgJ2FyZ2MnIHRvIHVuc2lnbmVkLgoJUGxhY2UgRVhBQ1RMWV9UV09fREFTSEVTIG9wdGlvbnMgaW50byBuZXcgcmVhbGx5X2xvbmdvcHRzCglhcnJheS4KCUlmIGdldG9wdF9sb25nX29ubHkgZmFpbHMsIHRyeSBjYWxsaW5nIGdldG9wdF9sb25nIHVzaW5nIHRoZQoJcmVhbGx5X2xvbmdvcHRzIGFycmF5LgoJKGhlbHApOiBQcmludCBhIGRvdWJsZSBkYXNoIGZvciBib3RoIEVYQUNUTFlfVFdPX0RBU0hFUyBhbmQKCVRXT19EQVNIRVMgb3B0aW9ucy4KCgkqIGxkbGV4Lmg6IEZpeCBwcm90b3R5cGUgb2YgcGFyc2VfYXJncy4KCgkqIGxkLnRleGluZm86IERvY3VtZW50IHRoYXQgbG9uZyBvcHRpb25zIHN0YXJ0aW5nIHdpdGggJ28nCgltdXN0IGJlIHByZWNlZWRlZCBieSB0d28gZGFzaGVzLiAgQ2hhbmdlIGV4YW1wbGUgb2YgYSBzaW5nbGUKCWRhc2hlZCBsb25nIG9wdGlvbiBmcm9tIC1vZm9ybWF0IHRvIC10cmFjZS1zeW1ib2wuCgoyMDAwLTEyLTI2ICBEYW5ueSBTbWl0aCAgPGRhbm55X3Jfc21pdGhfMjAwMUB5YWhvby5jby5uej4KCgkqIGVtdWx0ZW1wbC9wZS5lbSAoT1BUSU9OX05PX0RFRkFVTFRfRVhDTFVERVMpOiBEZWZpbmUuCgkobG9uZ29wdHNbXSk6IE5ldyAtLW5vLWRlZmF1bHQtZXhjbHVkZXMgb3B0aW9uLgoJKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9saXN0X29wdGlvbnMpOiBEb2N1bWVudC4KCShnbGRfJHtFTVVMQVRJT05fTkFNRX1fcGFyc2VfYXJncyk6IEhhbmRsZS4KCjIwMDAtMTItMTMgIE1pY2hhZWwgU29rb2xvdiAgPG1zb2tvbG92QGl2YW4uSGFyaGFuLk9SRz4KCgkqIGxkbGFuZy5jIChuZXdfc3RhdCk6IFJldmVydCB0aGUgbGFzdCBiZWF1dGlmaWNhdGlvbiB3aXRoICJpbm5vY2VudCIKCXdoaXRlc3BhY2UsIGl0IGJyZWFrcyB0aGUgSyZSIEMgcHJlcHJvY2Vzc29yLgoKMjAwMC0xMi0xMSAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBsZC50ZXhpbmZvOiBBZGQgbm90ZXMgYWJvdXQgLS13aG9sZS1hcmNoaXZlIGFuZCBnY2MuCgoyMDAwLTExLTE4ICBGcmVkIEZpc2ggIDxmbmZAYmUuY29tPgoKCSogbGV4c3VwLmMgKE9QVElPTl9BTExPV19TSExJQl9VTkRFRklORUQpOiBEZWZpbmUuCgkobGRfb3B0aW9ucyk6IEVudHJ5IGZvciAtLWFsbG93LXNobGliLXVuZGVmaW5lZC4KCShwYXJzZV9hcmdzKTogSGFuZGxlIE9QVElPTl9BTExPV19TSExJQl9VTkRFRklORUQuCgkqIGxkbWFpbi5jIChtYWluKTogSW5pdGlhbGl6ZSBsaW5rX2luZm8uYWxsb3dfc2hsaWJfdW5kZWZpbmVkCgl0byBmYWxzZS4KCSogbGQudGV4aW5mbzogRG9jdW1lbnQgbmV3IGNvbW1hbmQgbGluZSBzd2l0Y2guCgoyMDAwLTEyLTEyICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQHJlZGhhdC5jb20+CgoJKiBlbXVscGFyYW1zL2VsZjMycHBjLnNoIChPVEhFUl9SRUFEV1JJVEVfU0VDVElPTlMpOgoJLmZpeHVwIGlzIGFjdHVhbGx5IHJlYWQvd3JpdGUuCgkqIGVtdWxwYXJhbXMvZWxmMzJscHBjLnNoIChPVEhFUl9SRUFEV1JJVEVfU0VDVElPTlMpOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGYzMnBwY3NpbS5zaCAoT1RIRVJfUkVBRFdSSVRFX1NFQ1RJT05TKTogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmMzJscHBjc2ltLnNoIChPVEhFUl9SRUFEV1JJVEVfU0VDVElPTlMpOiBMaWtld2lzZS4KCjIwMDAtMTItMTEgIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCgkqIE5FV1M6IEFkZCBub3RlIGFib3V0IHg4Nl82NCBhcmNoaXRlY3R1cmUuCgoyMDAwLTEyLTA2ICBNYXJrIEVsYnJlY2h0ICA8c25vd2JhbGwzQGJpZ2Zvb3QuY29tPgoKCSogc2NyaXB0dGVtcGwvaTM4NmdvMzIuc2M6IFVzZSBQUk9WSURFIHdpdGggX2V0ZXh0LCBfZWRhdGEsIF9lbmQuCglTZXQgRFdBUkYyIHNlY3Rpb25zIHRvIGEgVk1BIG9mIHplcm8uCgoyMDAwLTEyLTAxICBKb2VsIFNoZXJyaWxsICA8am9lbEBPQVJjb3JwLmNvbT4KCgkqIGNvbmZpZ3VyZS50Z3QgKGFybS0qLXJ0ZW1zKiwgYTI5ay0qcnRlbXMqLCBoODMwMC0qLXJ0ZW1zKik6CglOZXcgdGFyZ2V0cy4KCShzcGFyYyotKi1ydGVtc2VsZiosIHNwYXJjKi0qLXJ0ZW1zYW91dCopOiBOZXcgdGFyZ2V0cy4KCShzcGFyYyotKi1ydGVtcyopOiBTd2l0Y2hlZCBmcm9tIGEub3V0IHRvIEVMRi4KCjIwMDAtMTEtMzAgIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCgkqIE1ha2VmaWxlLmFtIChBTExfRU1VTEFUSU9OUyk6IEFkZCBlZWxmX3g4Nl82NC5vCgkoZWVsZl94ODZfNjQuYyk6IE5ldy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS50Z3Q6IEFkZCBzdXBwb3J0IGZvciB4ODZfNjQtKi1saW51eC1nbnUqLgoJKiBlbXVscGFyYW1zL2VsZl94ODZfNjQuc2g6IE5ldy4KCjIwMDAtMTEtMzAgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogZW11bHBhcmFtcy9jcmlzbGludXguc2ggKEVOVFJZKTogQ2hhbmdlIGJhY2sgdG8gX3N0YXJ0LgoJKFRFWFRfU1RBUlRfU1lNQk9MUyk6IFJlbW92ZSBjb25kaXRpb25hbCBzZXR0aW5nIG9mIF9fc3RhcnQuCgoJKiBzY3JpcHR0ZW1wbC9jcmlzYW91dC5zYzogQ2hhbmdlIGFsbCBSRUxPQ0FUSU5HIG5vdCByZWxhdGVkIHRvCgltZXJnaW5nIG5vbi1hLm91dCBzZWN0aW9ucyBpbnRvIENPTlNUUlVDVElORy4KCjIwMDAtMTEtMjggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBsZC4xIChDT1BZSU5HKTogTWVudGlvbiB0aGF0IHRoZSBHTlUgRnJlZSBEb2N1bWVudGF0aW9uCglMaWNlbnNlIGlzIHByZXNlbnQgaW4gdGhlIHNvdXJjZXMsIGJ1dCBub3QgdGhlIG91dHB1dCwgYW5kCglhbHNvIGF2YWlsYWJsZSBmcm9tIHRoZSBHTlUgd2Vic2l0ZS4KCShHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UpOiBDb21tZW50IG91dCB0aGlzIHNlY3Rpb24uCgoyMDAwLTExLTI4ICBEYXZpZCBPJ0JyaWVuICA8b2JyaWVuQGRyYWdvbi5udXhpLmNvbT4KCgkqIGVtdWxwYXJhbXMvZWxmNjRhbHBoYS5zaCAoRU5UUlkpOiBSZW1vdmUgbGVhZGluZyB1bmRlcnNjb3JlIGFzIEVMRgoJZG9lcyBub3QgdXNlIHRoZW0uCgoyMDAwLTExLTI1ICBEYXZpZCBPJ0JyaWVuICA8b2JyaWVuQEZyZWVCU0Qub3JnPgoKCSogbGQuMTogUmVtb3ZlIG9sZCBkYXRlIHNvIGl0IGRvZXMgbm90IGdpdmUgdGhlIGltcHJlc3Npb24gdGhlIG1hbnBhZ2UKCWlzIHdheSBvdXQgb2YgZGF0ZS4KCjIwMDAtMTEtMjQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUudGd0ICh4c2NhbGUtY29mZik6IEFkZCB0YXJnZXQuCgkoeHNjYWxlLWVsZik6IEFkZCB0YXJnZXQuCgoyMDAwLTExLTI0ICBGcmVkIEZpc2ggIDxmbmZAYmUuY29tPgoKCSogbGRtYWluLmMgKG1haW4pOiBSZW1vdmUgcmVkdW5kYW50IGluaXQgb2YgY29uZmlnLm1ha2VfZXhlY3V0YWJsZQoJdG8gdHJ1ZS4KCjIwMDAtMTEtMTUgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbXVscGFyYW1zL2VsZjY0YWxwaGEuc2ggKE1BWFBBR0VTSVpFKTogVHlwbyAtLSA2NGssIG5vdCAxTS4KCjIwMDAtMTEtMTQgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogc2NyaXB0dGVtcGwvaDgzMDAuc2M6IEZpeCBmb3JtYXR0aW5nLgoJKiBzY3JpcHR0ZW1wbC9oODMwMGguc2M6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9oODMwMHMuc2M6IExpa2V3aXNlLgoKMjAwMC0xMS0xNCAgRGVuaXMgQ2hlcnR5a292ICA8ZGVuaXNjQG92ZXJ0YS5ydT4KCgkqIHNjcmlwdHRlbXBsL2VsZjMyYXZyLnNjOiBGaXggYnVnIGluIC5lZXByb20gc2VnbWVudC4KCjIwMDAtMTEtMDkgIFBoaWxpcCBCbHVuZGVsbCAgPHBiQGZ1dHVyZXR2LmNvbT4KCgkqIGVtdWx0ZW1wbC9wZS5lbTogRGVmaW5lIF9fX3N0YXJ0X1NFQ05BTUUgYW5kIF9fX3N0b3BfU0VDTkFNRQoJYXJvdW5kIG9ycGhhbiBzZWN0aW9ucyB3aG9zZSBuYW1lcyBjYW4gYmUgcmVwcmVzZW50ZWQgaW4gQy4KCjIwMDAtMTEtMDcgIEppbSBXaWxzb24gIDx3aWxzb25AcmVkaGF0LmNvbT4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fcGxhY2Vfb3JwaGFuKTogTmV3IGxvY2FsCglob2xkX3NkYXRhLiAgSWYgU0VDX1NNQUxMX0RBVEEgc2V0LCBzZXQgcGxhY2UgdG8gaG9sZF9zZGF0YS4KCjIwMDAtMTEtMDYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBsZC50ZXhpbmZvOiBBZGQgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLgoJKiBsZGludC50ZXhpbmZvOiBBZGQgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLgoJKiBsZC4xOiBBZGQgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLgoKMjAwMC0xMS0wNSAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGxkbGV4LmwgKHl5X2NyZWF0ZV9zdHJpbmdfYnVmZmVyKTogSW5pdCB5eV9pc19vdXJfYnVmZmVyLAoJeXlfaXNfaW50ZXJhY3RpdmUsIHl5X2F0X2JvbCwgYW5kIHl5X2ZpbGxfYnVmZmVyLgoKCSogTWFrZWZpbGUuYW0gKERJU1RDTEVBTkZJTEVTKTogQWRkIHN0cmluZ2lmeS5zZWQuCglNb3ZlIDIwMDAtMTEtMDIgTWFrZWZpbGUuaW4gY2hhbmdlcyB0byB0aGlzIGZpbGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMC0xMS0wMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHNjcmlwdHRlbXBsL2g4MzAwLnNjOiBVc2UgJHtDT05TVFJVQ1RJTkcuLi59IHRvIGVuY2xvc2UKCWNvbnN0cnVjdG9ycyBhbmQgZGVzdHJ1Y3RvcnMuCgkqIHNjcmlwdHRlbXBsL2g4MzAwaC5zYzogRGl0dG8uCgkqIHNjcmlwdHRlbXBsL2g4MzAwcy5zYzogRGl0dG8uCgkqIHNjcmlwdHRlbXBsL2g4NTAwLnNjOiBEaXR0by4KCSogc2NyaXB0dGVtcGwvaDg1MDBiLnNjOiBEaXR0by4KCSogc2NyaXB0dGVtcGwvaDg1MDBjLnNjOiBEaXR0by4KCSogc2NyaXB0dGVtcGwvaDg1MDBtLnNjOiBEaXR0by4KCSogc2NyaXB0dGVtcGwvaDg1MDBzLnNjOiBEaXR0by4KCSogc2NyaXB0dGVtcGwvdjg1MC5zYzogRGl0dG8uCgkqIHNjcmlwdHRlbXBsL3c2NS5zYzogRGl0dG8uCgkqIHNjcmlwdHRlbXBsL3o4MDAwLnNjOiBEaXR0by4KCjIwMDAtMTEtMDIgIFBlciBMdW5kYmVyZyAgPHBsdW5kaXNAY2hhb3NkZXYub3JnPgoKCSogTWFrZWZpbGUuaW4gKGVfaTM4Nl9jaGFvcy5jKTogTmV3IHJ1bGUuCgkoQUxMX0VNVUxBVElPTlMpOiBBZGRlZCBlX2kzODZfY2hhb3Muby4KCSogZW11bHBhcmFtcy9lbGZfaTM4Nl9jaGFvcy5zaDogTmV3IGZpbGUuCgkqIGNvbmZpZ3VyZS50Z3Q6IFJlY29nbmlzZSBpWzM0NTZdODYtY2hhb3NkZXYtc3Rvcm0tY2hhb3MuCgoyMDAwLTEwLTIwICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVtdWxwYXJhbXMvZWxmNjRfc3BhcmMuc2ggKFRFWFRfU1RBUlRfQUREUiwKCU5PTlBBR0VEX1RFWFRfU1RBUlRfQUREUik6IFNldCB0byA0R0IgZm9yIFNvbGFyaXMgdGFyZ2V0cy4KCUZpeCBzZWQgaW52b2NhdGlvbiwgc28gdGhhdCBpdCBjb3BlZCB3aXRoICcvJyBpbiBTb2xhcmlzIDY0Yml0CglsaWJyYXJ5IHBhdGggc3VmZml4LgoJQmFzZWQgb24gcGF0Y2ggYnkgQW5kcmV3IE1hY2xlb2QgPGFtYWNsZW9kQGN5Z251cy5jb20+LgoKMjAwMC0xMC0xOCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBzY3JpcHR0ZW1wbC9jcmlzYW91dC5zYyAoLnRleHQsIC5kYXRhKTogUGFkLCB3aXRoIEFMSUdOICgzMiksCglmb3IgY29uc2VjdXRpdmUgc2VjdGlvbnMuCgoyMDAwLTEwLTE3ICBDaGFuZHJha2FsYSBDaGF2dmEgIDxjY2hhdnZhQHJlZGhhdC5jb20+CgoJKiBsZXhzdXAuYzogTmV3IG9wdGlvbiBPUFRJT05fVEFSR0VUX0hFTFAuIFByaW50cyBhbGwgdGFyZ2V0IHNwZWNpZmljCglvcHRpb25zLgoJKiBsZC50ZXhpbmZvOiBBZGRlZCBub3RlcyBhYm91dCB0aGlzIG5ldyBvcHRpb24uCgoyMDAwLTEwLTE2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZW11bHRlbXBsL3BlLmVtIChfYWZ0ZXJfb3Blbik6IEFkZCB0ZXN0cyBvZiByZXR1cm4gdmFsdWVzIGZyb20KCWJmZCBmdW5jdGlvbnMuICBFbWl0IGFwcHJvcHJpYXRlIGVycm9yIG1lc3NhZ2VzIGlmIG5lY2Vzc2FyeS4KCjIwMDAtMTAtMTMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbXVsdGVtcGwvcGUuZW0gKF9hZnRlcl9vcGVuKTogRGVsZXRlICdpczInIGFuZCAnbnN5bXMnCglsb2NhbCB2YXJpYWJsZXMgLSB0aGV5IGFyZSBub3QgdXNlZCwgYnV0IGxlYXZlIGluIHRoZSBjYWxsIHRvCgliZmRfY2Fub25pY2FsaXplX3N5bXRhYi4KCShfb3Blbl9keW5hbWljX2FyY2hpdmUpOiBBZGQgI2lmZGVmIERMTF9TVVBQT1JUIGFyb3VuZCB1c2Ugb2YKCXBlX2RsbF9zZWFyY2hfcHJlZml4LgoKMjAwMC0xMC0xMiAgQ2hhcmxlcyBXaWxzb24gIDxjd2lsc29uQGVjZS5nYXRlY2guZWR1PgoKCSogZW11bHRlbXBsL3BlLmVtIChwZV9kbGxfc2VhcmNoX3ByZWZpeCk6IE5ldyB2YXJpYWJsZSwKCShsb25nb3B0cyk6IE5ldyAtLWRsbC1zZWFyY2gtcHJlZml4IG9wdGlvbi4KCShnbGRfJHtFTVVMQVRJT05fTkFNRX1fbGlzdF9vcHRpb25zKTogRG9jdW1lbnQuCgkoZ2xkXyR7RU1VTEFUSU9OX05BTUV9X3BhcnNlX2FyZ3MpOiBIYW5kbGUuCgkoZ2xkXyR7RU1VTEFUSU9OX05BTUV9X29wZW5fZHluYW1pY19hcmNoaXZlKTogV2hlbiBsaW5raW5nCglkeW5hbWljYWxseSwgc2VhcmNoIGZvciBhIGRsbCBuYW1lZCAnPHByZWZpeD48YmFzZW5hbWU+LmRsbCcKCWluIHByZWZlcmVuY2UgdG8gJ2xpYjxiYXNlbmFtZT4uZGxsJyBpZiAtLWRsbC1zZWFyY2gtcHJlZml4CglpcyBzcGVjaWZpZWQuCgoyMDAwLTEwLTEyICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogbGRsYW5nLmMgKHNlY3Rpb25fYWxyZWFkeV9saW5rZWQpOiBTZXQga2VwdF9zZWN0aW9uIGluc3RlYWQgb2YKCXNlYy0+Y29tZGF0LT5zZWMuCgoyMDAwLTEwLTEwICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIGRlZmZpbGUuaDogRml4IGZvcm1hdHRpbmcuCgkqIGxleHN1cC5jOiBMaWtld2lzZS4KCSogbXJpLmM6IExpa2V3aXNlLgoKMjAwMC0xMC0wOSAgUGF1bCBTb2tvbG92c2t5ICA8UGF1bC5Tb2tvbG92c2t5QHRlY2hub2xvZ2lzdC5jb20+CgoJKiBwZS1kbGwuYyAobWFrZV9vbmUpOiBEbyBub3QgZ2VuZXJhdGUgY29kZSB0aHVuayBmb3IgREFUQQoJZXhwb3J0cy4KCShwcm9jZXNzX2RlZl9maWxlKTogZGVkdWNlIERBVEEgZmxhZyBmb3IgYXV0by1leHBvcnQgc3VtYm9scy4KCjIwMDAtMTAtMDkgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogbGQuaDogRml4IGZvcm1hdHRpbmcuCgkqIGxkY3JlZi5jOiBMaWtld2lzZS4KCSogbGRjdG9yLmg6IExpa2V3aXNlLgoJKiBsZGVtdWwuYzogTGlrZXdpc2UuCgkqIGxkZW11bC5oOiBMaWtld2lzZS4KCSogbGRleHAuYzogTGlrZXdpc2UuCgkqIGxkZXhwLmg6IExpa2V3aXNlLgoJKiBsZGZpbGUuYzogTGlrZXdpc2UuCgkqIGxkZmlsZS5oOiBMaWtld2lzZS4KCSogbGRsYW5nLmM6IExpa2V3aXNlLgoJKiBsZGxhbmcuaDogTGlrZXdpc2UuCgkqIGxkbWFpbi5jOiBMaWtld2lzZS4KCSogcGUtZGxsLmM6IExpa2V3aXNlLgoKCSogcGUtZGxsLmM6IFJldmVydCBzb21lIGZvcm1hdHRpbmcgZml4ZXMuCgoyMDAwLTEwLTA4ICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIHBlLWRsbC5jOiBGaXggZm9ybWF0dGluZy4KCjIwMDAtMTAtMDUgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogbGRsYW5nLmM6IEZpeCBmb3JtYXR0aW5nLgoKMjAwMC0xMC0wMyAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBwZS1kbGwuYyAoZmlsbF9lZGF0YSk6IGluaXRpYWxpemUgZW50aXJlIGJsb2NrCgkobWFrZV9vbmUpOiBmaWxsIGluIGNvcnJlY3Qgc2VjdGlvbi4KCjIwMDAtMTAtMDMgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogbGRleHAuYzogRml4IGZvcm1hdHRpbmcuCgoyMDAwLTEwLTAyICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIGVtdWx0ZW1wbC9wZS5lbSAoZ2xkXypfYWZ0ZXJfb3Blbik6IGRldGVjdCBjYXNlIHdoZXJlIHRoZXJlIHR3bwoJaW1wb3J0IGxpYnJhcmllcyBmb3Igc2FtZSBkbGw7IHJlbmFtZSBvbmUgdG8gZW5zdXJlIHByb3BlciBsaW5rCglvcmRlci4KCgkqIHBlLWRsbC5jIChwcm9jZXNzX2RlZl9maWxlKTogY29tcGFyZSBvcmRpbmFscyB0byAtMSwgbm90IDA7IGZpeAoJdHlwbwoJKGdlbmVyYXRlX2VkYXRhKTogZml4IHR5cG8KCjIwMDAtMDktMjkgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogc2NyaXB0dGVtcGwvY3Jpc2FvdXQuc2MgKEVOVFJZKTogTm93IF9fc3RhcnQuCgkoLnRleHQpOiBBZGQgZGVmYXVsdCBzZXR0aW5nIGZvciBfX3N0YXJ0LgoJUmVtb3ZlIENPTlNUUlVDVE9SUyBoYW5kbGluZy4KCSgvRElTQ0FSRC8pOiBBZGQgLmdudS53YXJuaW5nLiouCgkqIGVtdWxwYXJhbXMvY3Jpc2xpbnV4LnNoIChFTlRSWSk6IE5vdyBfX3N0YXJ0LgoJKFRFWFRfU1RBUlRfU1lNQk9MUyk6IE5ldzsgcHJvdmlkZSBfX1N0ZXh0IGFuZCBfX3N0YXJ0IGRlZmF1bHQuCgkqIGVtdWxwYXJhbXMvY3Jpc2VsZi5zaCAoT1VUUFVUX0ZPUk1BVCk6IE5vdyBlbGYzMi11cy1jcmlzLgoJKEVOVFJZKTogTm93IF9fc3RhcnQuCgkoSU5JVElBTF9SRUFET05MWV9TRUNUSU9OUyk6IEFkZCBLRUVQIGZvciAuc3RhcnR1cC4KCShFWEVDVVRBQkxFX1NZTUJPTFMpOiBBZGQgZGVmYXVsdCBzZXR0aW5nIGZvciBfX3N0YXJ0LgoKMjAwMC0wOS0yOSAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBkZWZmaWxlLmg6IEZpeCBmb3JtYXR0aW5nLgoJKiBsZC5oOiBMaWtld2lzZS4KCSogbGRjcmVmLmM6IExpa2V3aXNlLgoJKiBsZGN0b3IuYzogTGlrZXdpc2UuCgkqIGxkY3Rvci5oOiBMaWtld2lzZS4KCSogbGRlbXVsLmM6IExpa2V3aXNlLgoJKiBsZGVtdWwuaDogTGlrZXdpc2UuCgkqIGxkZXhwLmM6IExpa2V3aXNlLgoJKiBsZGV4cC5oOiBMaWtld2lzZS4KCSogbGRmaWxlLmM6IExpa2V3aXNlLgoJKiBsZGZpbGUuaDogTGlrZXdpc2UuCgkqIGxkbGFuZy5jOiBMaWtld2lzZS4KCSogbGRsYW5nLmg6IExpa2V3aXNlLgoJKiBsZXhzdXAuYzogTGlrZXdpc2UuCgkqIG1yaS5jOiBMaWtld2lzZS4KCSogcGUtZGxsLmM6IExpa2V3aXNlLgoKMjAwMC0wOS0yOCAgUGF1bCBTb2tvbG92c2t5ICA8UGF1bC5Tb2tvbG92c2t5QHRlY2hub2xvZ2lzdC5jb20+CgoJKiBwZS1kbGwuYyAocHJvY2Vzc19kZWZfZmlsZSk6IFVuaW5pdGlhbGl6ZWQgZGF0YSB3YXNuJ3QKCWV4cG9ydGVkIHdpdGggLS1leHBvcnQtYWxsLXN5bWJvbHMgc3dpdGNoLgoKMjAwMC0wOS0yOCAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBwZS1kbGwuYyAoZmlsbF9lZGF0YSk6IHJlYXJyYW5nZSB0aGUgZGF0YSBzbyB0aGF0IG9yZGluYWxzIGFuZAoJbm9uYW1lIHdvcmsgcHJvcGVybHkuCgoyMDAwLTA5LTI4ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogbGQudGV4aW5mbyAoSFBQQSBFTEYzMik6IE5ldyBzZWN0aW9uLgoKCSogZW11bHRlbXBsL2hwcGFlbGYuZW0gKGdyb3VwX3NpemUpOiBOZXcuCgkoaHBwYWVsZl9maW5pc2gpOiBQYXNzIGdyb3VwX3NpemUgdG8gZWxmMzJfaHBwYV9zaXplX3N0dWJzLgoJKFBBUlNFX0FORF9MSVNUX1BST0xPR1VFKTogQWRkIE9QVElPTl9TVFVCR1JPVVBfU0laRS4KCShQQVJTRV9BTkRfTElTVF9MT05HT1BUUyk6IEFkZCAtLXN0dWItZ3JvdXAtc2l6ZS4gIER1cGxpY2F0ZQoJb3B0aW9ucyB0byBwcmV2ZW50IGFiYnJldmlhdGlvbnMgbWF0Y2hpbmcuCgkoUEFSU0VfQU5EX0xJU1RfT1BUSU9OUyk6IERlc2NyaWJlIHRoZSBhYm92ZS4gIFJlZm9ybWF0LgoJKFBBUlNFX0FORF9MSVNUX0FSR1NfQ0FTRVMpOiBIYW5kbGUgaXQuCgoyMDAwLTA5LTIxICBNaWNoYWVsIFNva29sb3YgIDxtc29rb2xvdkBpdmFuLkhhcmhhbi5PUkc+CgoJKiBlbXVsdGVtcGwvbTY4a2VsZi5lbTogQ29uZGl0aW9uYWxpc2UgdGhlIGVtYmVkZGVkIHJlbG9jcyBmZWF0dXJlCglvbiB0aGUgbTY4Ki0qLWVsZiB0YXJnZXQuICBNYWtlIGl0IHN1cHBvcnQgQ09GRiBpbnB1dCBvYmplY3RzLgoKMjAwMC0wOS0yMSAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBsZG1haW4uYzogRml4IGZvcm1hdHRpbmcuCgkqIGxkbWlzYy5jOiBMaWtld2lzZS4KCSogbGR2ZXIuYzogTGlrZXdpc2UuCgkqIGxkd3JpdGUuYzogTGlrZXdpc2UuCgoyMDAwLTA5LTIxICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogbGR3cml0ZS5jIChjbG9uZV9zZWN0aW9uKTogU2lsZW5jZSBnY2Mgd2FybmluZ3MuCgoyMDAwLTA5LTIwICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogZW11bHRlbXBsL2VsZjMyLmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9wbGFjZV9vcnBoYW4pOiBIYW5kbGUKCW91dCBvZiBtZW1vcnkgZmFpbHVyZS4KCgkqIGxkd3JpdGUuYyAobGR3cml0ZSk6IFJlbW92ZSB1bm5lY2Vzc2FyeSBlaW5mbyBhcmcuCgkoY2xvbmVfc2VjdGlvbik6IEhhbmRsZSBvdXQgb2YgbWVtb3J5IGZhaWx1cmVzLiAgUmVuYW1lIHZhciB0bwoJYXZvaWQgYysrIHJlc2VydmVkIHdvcmQuCgoyMDAwLTA5LTE4ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogZW11bHRlbXBsL2hwcGFlbGYuZW0gKGhwcGFlbGZfYWRkX3N0dWJfc2VjdGlvbik6IFJlbmFtZQoJc3R1Yl9uYW1lIHBhcmFtIHRvIHN0dWJfc2VjX25hbWUuCgkoaHBwYWVsZl9maW5pc2gpOiBNb2RpZnkgY2FsbCB0byBlbGYzMl9ocHBhX3NpemVfc3R1YnMuCgoyMDAwLTA5LTEwICBNaWNoYWVsIFNva29sb3YgIDxtc29rb2xvdkBpdmFuLkhhcmhhbi5PUkc+CgoJKiBlbXVsdGVtcGwvbTY4a2VsZi5lbTogTmV3IGZpbGUuCgkqIGVtdWxwYXJhbXMvbTY4a2VsZi5zaCAoRVhUUkFfRU1fRklMRSk6IFVzZSBpdC4KCSogTWFrZWZpbGUuYW0gKGVtNjhrZWxmLmMpOiBBZGQgZGVwZW5kZW5jeSBvbiBtNjhrZWxmLmVtLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDAtMDktMTUgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBlbXVscGFyYW1zL2hwcGFsaW51eC5zaCAoREFUQV9TVEFSVF9TWU1CT0xTKTogUHJvdmlkZSAkZ2xvYmFsJAoJb25seSBhcyBuZWVkZWQuCgoyMDAwLTA5LTEzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogbGRtYWluLmMgKG11bHRpcGxlX2RlZmluaXRpb24pOiBEaXNhYmxlIHJlbGF4YXRpb24gaWYKCW11bHRpcGxlIHN5bWJvbCBkZWZpbml0aW9ucyBhcmUgZW5jb3VudGVyZWQgLSBvdGhlcndpc2UgdGhlCglsaW5rZXIgY291bGQgYWJvcnQgd2l0aCBhbiBhc3NlcnRpb24gZmFpbHVyZS4KCjIwMDAtMDktMTAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBtcmkuYzogRml4IGZvcm1hdHRpbmcuCgoyMDAwLTA5LTA3ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBjb25maWd1cmUuaW4gKEFDX0lTQ19QT1NJWCk6IFB1dCBhZnRlciBBQ19DQU5PTklDQUxfU1lTVEVNLgoJKiBjb25maWd1cmU6IFJlYnVpbGQuCgoyMDAwLTA5LTA3ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBNYWtlZmlsZS5hbSAobGV4c3VwLm8pOiBBbHNvIGRlcGVuZCBvbiAkKElOQ0RJUikvZGVtYW5nbGUuaC4KCSogTWFrZWZpbGUuaW46IFJlYnVpbGQuCgoyMDAwLTA5LTA3ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogZW11bHRlbXBsL2VsZjMyLmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9wbGFjZV9vcnBoYW4pOiBGaXgKCWJyb2tlbiBsaXN0IGhhbmRsaW5nLiAgQ3JlYXRlIF9fc3RhcnRfU0VDTkFNRSBhbmQgX19zdG9wX1NFQ05BTUUKCXdoZW4gbm8gcGxhY2UtaG9sZGVyLiAgQWRkIHNvbWUgY29tbWVudHMuICBUZXN0IGJvdGggU0VDX0NPREUgYW5kCglTRUNfUkVBRE9OTFkgZm9yIGhvbGRfdGV4dCB0byBwcmV2ZW50IC5yb2RhdGEgb3JwaGFuIHBvaXNvbmluZy4KCUhhbmRsZSBjYXNlIHdoZXJlIG5vIG91dHB1dCBzZWN0aW9uIHN0YXRlbWVudCBjcmVhdGVkLgoKMjAwMC0wOS0wNyAgTmlpYmUgWXV0YWthICA8Z25paWJlQG0xN24ub3JnPiwgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+LCBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS50Z3QgKHNoLSotbGludXgqKTogQWRkZWQuCgkqIE1ha2VmaWxlLmFtOiBBZGRlZCBlc2hlbGZfbGludXggYW5kIGVzaGxlbGZfbGludXguCgkqIE1ha2VmaWxlLmluOiBSZWJ1aWx0LgoJKiBlbXVscGFyYW1zL3NoZWxmX2xpbnV4LnNoOiBOZXcgZmlsZS4KCSogZW11bHBhcmFtcy9zaGxlbGZfbGludXguc2g6IE5ldyBmaWxlLgoKMjAwMC0wOS0wNiAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fcGxhY2Vfb3JwaGFuKTogRG9uJ3QKCXRyeSBzaHVmZmxpbmcgc2VjdGlvbnMgd2hlbiB0aGUgb3JwaGFuIGhhcHBlbnMgdG8gYmUgdGhlIHBsYWNlCglob2xkZXIuICBLZWVwIGNvdW50IG9mIHVuaXF1ZSBzZWN0aW9uIG5hbWVzIGdlbmVyYXRlZCBzbyB3ZSBzcGVlZAoJdGhlIHNlYXJjaCBmb3IgYSBuZXcgbmFtZS4KCjIwMDAtMDktMDYgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlOiBSZWJ1aWx0IHdpdGggbmV3IGxpYnRvb2wubTQuCgoyMDAwLTA5LTA1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGFjbG9jYWwubTQ6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgoJKiBwby9sZC5wb3Q6IFJlZ2VuZXJhdGUuCgoJKiBsZGludC50ZXhpbmZvOiBSZW1vdmUgQ1ZTIHJldmlzaW9uIG1hcmtlciAtIGl0IGZvaWxzIGxvY2FsCgljb21wYXJpc29ucy4KCgkqIGVtdWx0ZW1wbC90aWNvZmYuZW06IFJlbW92ZSBleHRyYW5lb3VzIGNvbW1hLgoKMjAwMC0wOS0wNSAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGVtdWx0ZW1wbC9ocHBhZWxmLmVtIChocHBhZWxmX2FkZF9zdHViX3NlY3Rpb24pOiBBZGQgU0VDX1JFTE9DCgl0byBzdHViIHNlY3Rpb24gZmxhZ3MuCgkoaHBwYV9mb3JfZWFjaF9pbnB1dF9maWxlX3dyYXBwZXIpOiBOZXcuCgkoaHBwYV9sYW5nX2Zvcl9lYWNoX2lucHV0X2ZpbGUpOiBOZXcuCgkobGFuZ19mb3JfZWFjaF9pbnB1dF9maWxlKTogRGVmaW5lIHRvIGNhbGwgYWJvdmUuCgkobXVsdGlfc3Vic3BhY2UpOiBOZXcuCgkoaHBwYWVsZl9maW5pc2gpOiBQYXNzIG11bHRpX3N1YnNwYWNlIHRvIGVsZjMyX2hwcGFfc2l6ZV9zdHVicy4KCShQQVJTRV9BTkRfTElTVF9QUk9MT0dVRSk6IERlZmluZS4KCShQQVJTRV9BTkRfTElTVF9MT05HT1BUUyk6IERlZmluZS4KCShQQVJTRV9BTkRfTElTVF9PUFRJT05TKTogRGVmaW5lLgoJKFBBUlNFX0FORF9MSVNUX0FSR1NfQ0FTRVMpOiBEZWZpbmUuCgkoaHBwYWVsZl9maW5pc2gpOiBDYWxsIGVsZjMyX2hwcGFfc2V0X2dwLgoJKGhwcGFlbGZfc2V0X291dHB1dF9hcmNoKTogUmVtb3ZlLgoJKExERU1VTF9TRVRfT1VUUFVUX0FSQ0gpOiBSZW1vdmUuCgoJKiBlbXVscGFyYW1zL2hwcGFsaW51eC5zaCAoRUxGU0laRSk6IERlZmluZS4KCShNQUNISU5FKTogRGVmaW5lLgoJKE9USEVSX1JFQURPTkxZX1NFQ1RJT05TKTogRGVmaW5lLgoJKERBVEFfUExUKTogRGVmaW5lLgoJKEdFTkVSQVRFX1NITElCX1NDUklQVCk6IERlZmluZS4KCgkqIGxkbGFuZy5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLCBhbmQgdGlkeSBvdGhlcnMuICBDaGFuZ2UgQ09OU1QKCXRvIGNvbnN0IHRocm91Z2hvdXQuICBDaGFuZ2UgYHZvaWQgKicgdG8gYFBUUicgdGhyb3VnaG91dC4KCShsYW5nX21lbW9yeV9kZWZhdWx0KTogRnVuY3Rpb24gaXMgbG9jYWwgdG8gZmlsZSwgYWRkIGBzdGF0aWMnLgoKCSogTWFrZWZpbGUuYW0gKGVocHBhZWxmLmMpOiBEZXBlbmQgb24gZW11bHRlbXBsL2VsZjMyLmVtLgoJKGVocHBhbGludXguYyk6IExpa2V3aXNlLgoJKGVhcm1lbGYuYyk6IExpa2V3aXNlLgoJKGVhcm1lbGZfbGludXguYyk6IExpa2V3aXNlLgoJKGVhcm1lbGZfbGludXgyNi5jKTogTGlrZXdpc2UuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKCSogbGQuaCAobGRfY29uZmlnX3R5cGUpOiBBZGQgdW5pcXVlX29ycGhhbl9zZWN0aW9ucy4KCSogbGV4c3VwLmMgKE9QVElPTl9VTklRVUUpOiBEZWZpbmUuCgkobGRfb3B0aW9ucyk6IEFkZCAiLS11bmlxdWUiLgoJKHBhcnNlX2FyZ3MpOiBIYW5kbGUgaXQuCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fcGxhY2Vfb3JwaGFuKTogRG9uJ3QKCXNlYXJjaCBmb3IgYW4gZXhpc3Rpbmcgb3V0cHV0IHNlY3Rpb24gaWYgdW5pcXVlX29ycGhhbl9zZWN0aW9ucyBpcwoJc2V0LiAgTWFrZSB1c2Ugb2YgYmZkX2dldF91bmlxdWVfc2VjdGlvbl9uYW1lIHJhdGhlciB0aGFuCglkdXBsaWNhdGluZyBjb2RlIGhlcmUuCgkqIGxkLnRleGluZm86IERlc2NyaWJlIC0tdW5pcXVlLgoKCSogbGV4c3VwLmMgKGxkX29wdGlvbnMpOiBNYWtlIHNwbGl0LWJ5LXJlbG9jIGFyZyBvcHRpb25hbC4gQWRkCglvcHRpb25hbCBhcmcgdG8gc3BsaXQtYnktZmlsZS4KCShwYXJzZV9hcmdzKTogSGFuZGxlIHRoZW0uCgkqIGxkLnRleGluZm86IFVwZGF0ZSBkZXNjcmlwdGlvbiBvZiB0aGVzZSBvcHRpb25zLgoJKiBsZHdyaXRlLmMgKGNsb25lX3NlY3Rpb24pOiBQYXNzIGluIHRoZSBzZWN0aW9uIG5hbWUuICBSZXBsYWNlCglsb2NhbCBjb2RlIHdpdGggYmZkX2dldF91bmlxdWVfc2VjdGlvbl9uYW1lLgoJKHNwbGl0X3NlY3Rpb25zKTogVGlkeSBjb2RlIGFuZCBjb21tZW50cy4gIFVzZSBhIGxpc3QgdHJhdmVyc2FsCgltb3JlIGFwcHJvcHJpYXRlIHRvIHRoZSBsaXN0IGNvbnN0cnVjdGlvbi4gIEhhbmRsZSBjb29rZWQgc2VjdGlvbgoJc2l6ZXMuICBTcGxpdCB3aGVuIHNwbGl0X2J5X3JlbG9jIHJlYWNoZWQgcmF0aGVyIHRoYW4gZXhjZWVkZWQuCglUcmFjayBzZWN0aW9uIHNpemUgYW5kIHNwbGl0IHdoZW4gc3BsaXRfYnlfZmlsZSByZWFjaGVkLiAgRml4CglsaW5rX29yZGVyX3RhaWwgKGV2ZW4gdGhvdWdoIGl0J3Mgbm90IHVzZWQpLgoJKGxkd3JpdGUpOiBNb2RpZnkgY29uZGl0aW9uIGZvciBjYWxsaW5nIHNwbGl0X3NlY3Rpb25zIHRvIHN1aXQKCWNoYW5nZWQgc3BsaXRfYnlfcmVsb2MgYW5kIHNwbGl0X2J5X2ZpbGUuCgkqIGxkbWFpbi5jIChtYWluKTogSW5pdCBjb25maWcuc3BsaXRfYnlfcmVsb2MgYW5kCgljb25maWcuc3BsaXRfYnlfZmlsZSB0byAtMS4KCSogbGQuaCAobGRfY29uZmlnX3R5cGUpOiBDaGFuZ2Ugc3BsaXRfYnlfcmVsb2MgdG8gdW5zaWduZWQuCglDaGFuZ2Ugc3BsaXRfYnlfZmlsZSB0byBiZmRfc2l6ZV90eXBlLgoKMjAwMC0wOS0wMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogSW5jcmVhc2UgdmVyc2lvbiBudW1iZXIgdG8gMi4xMC45MS4KCSogTkVXUzogTWVudGlvbiBuZXcgYWJpbGl0eSB0byBzdXBwb3J0IHJlbW92YWwgb2YgZHVwbGljYXRlIERXQVJGMgoJZGVidWcgaW5mb3JtYXRpb24uCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogYWNsb2NhbC5tNDogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgoKMjAwMC0wOS0wMiAgRGFuaWVsIEJlcmxpbiA8ZGJlcmxpbkByZWRoYXQuY29tPgoKCSogc2NyaXB0dGVtcGwvZWxmLnNjOiBBZGQgLmdudS5saW5rb25jZS53aS4qIHRvIC5kZWJ1Z19pbmZvCglzZWN0aW9ucy4KCSogc2NyaXB0dGVtcGwvZWxmMzJhdnIuc2M6IERpdHRvLgoJKiBzY3JpcHR0ZW1wbC9lbGZkMTB2LnNjOiBEaXR0by4KCSogc2NyaXB0dGVtcGwvZWxmZDMwdi5zYzogRGl0dG8uCgkqIHNjcmlwdHRlbXBsL2VsZmkzNzAuc2M6IERpdHRvLgoJKiBzY3JpcHR0ZW1wbC9lbGZtNjhoYzExLnNjOiBEaXR0by4KCSogc2NyaXB0dGVtcGwvZWxmbTY4aGMxMi5zYzogRGl0dG8uCgkqIHNjcmlwdHRlbXBsL2VsZmkzODZiZW9zLnNjOiBEaXR0by4KCSogc2NyaXB0dGVtcGwvdjg1MC5zYzogRGl0dG8uCgoyMDAwLTA4LTMxICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGFjaW5jbHVkZS5tNDogSW5jbHVkZSBsaWJ0b29sIGFuZCBnZXR0ZXh0IG1hY3JvcyBmcm9tIHRoZQoJdG9wIGxldmVsLgoJKiBhY2xvY2FsLm00LCBjb25maWd1cmU6IFJlYnVpbHQuCgoyMDAwLTA4LTI1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogbGRsYW5nLmMgKG9wZW5fb3V0cHV0KTogV2hlbiBjaG9vc2luZyB0aGUgdGFyZ2V0IGZvciBhCglwYXJ0aWN1bGFyIGVuZGlhbm5lc3MsIGRvIG5vdGhpbmcgaWYgdGhlIHRhcmdldCBpcyBub3QKCXN1cHBvcnRlZC4KCjIwMDAtMDgtMjUgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fYWZ0ZXJfb3Blbik6IERvbid0CgljaGVjayAtcnBhdGggbm9yIExEX1JVTl9QQVRIIGZvciBjcm9zcyBsaW5rLgoJKiBsZC50ZXhpbmZvOiBEb2N1bWVudCB0aGUgY2hhbmdlLgoKMjAwMC0wOC0yNCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBORVdTOiBNZW50aW9uIHN1cHBvcnQgZm9yIENSSVMuCgoyMDAwLTA4LTIzICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKGdsZCR7RU1VTEFUSU9OX05BTUV9X2FmdGVyX29wZW4pOiBHZXQKCXRoZSBjdXJyZW50IHJ1bnBhdGggbGlzdCBmcm9tIGJmZF9lbGZfZ2V0X3J1bnBhdGhfbGlzdCAoKQoJYmVmb3JlIHNlYXJjaC4KCjIwMDAtMDgtMjIgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fYWZ0ZXJfb3Blbik6IFNlYXJjaAoJdGhlIERUX1JQQVRIL0RUX1JVTlBBVEggZW50cmllcyBmb3IgRFRfTkVFREVEIGFmdGVyCglMRF9MSUJSQVJZX1BBVEggZm9yIG5hdGl2ZSBsaW5rZXIuIERpc3BsYXkgdGhlIG5lZWRlZCBEU08gaWYKCXRyYWNlX2ZpbGVfdHJpZXMgaXMgbm9uLXplcm8uCgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1fdHJ5X25lZWRlZCk6IFJlcG9ydCB0aGUgbmVlZGVkIERTTyBmb3VuZAoJaWYgdHJhY2VfZmlsZV90cmllcyBpcyBub24temVyby4KCgkqIGxkLnRleGluZm86IERvY3VtZW50IHRoZSB1c2FnZSBvZiBEVF9SUEFUSC9EVF9SVU5QQVRILgoJKiBORVdTOiBNZW50aW9uIGl0LgoKMjAwMC0wOC0xNCAgSmFzb24gRWNraGFyZHQgIDxqbGVAY3lnbnVzLmNvbT4KCgkqIE5FV1M6IE1lbnRpb24gaTg2MCBzdXBwb3J0LgoKMjAwMC0wOC0xNCAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIHNjcmlwdHRlbXBsL2VsZi5zYzogRml4IGxhc3QgY2hhbmdlIHRvIHVzZSBjb3JyZWN0IGNvbW1lbnQKCXN5bnRheC4KCjIwMDAtMDgtMTAgIEdlb2ZmIEtlYXRpbmcgIDxnZW9mZmtAY3lnbnVzLmNvbT4KCgkqIHNjcmlwdHRlbXBsL2VsZi5zYzogQWRkIGEgY29tbWVudCBnaXZpbmcgdGhlIGNvcnJlc3BvbmRlbmNlCgliZXR3ZWVuIHNlY3Rpb25zLCBwZXItZGF0dW0gc2VjdGlvbnMsIGFuZCBsaW5rb25jZSBzZWN0aW9ucy4gIE1ha2UKCXRoZSBjb21tZW50IHRydWUgZXZlbiBmb3IgLmJzcywgLnNkYXRhLCAuc2RhdGEyLCAuc2JzcywgYW5kCgkuc2JzczIuCgoyMDAwLTA4LTEwICBKYXNvbiBFY2toYXJkdCAgPGpsZUBjeWdudXMuY29tPgoKCSogZW11bHBhcmFtcy9lbGYzMl9pODYwLnNoOiBOZXcgZmlsZS4KCSogY29uZmlndXJlLnRndDogUmVjb2duaXplIG5ldyB0YXJnZXQgaTg2MC1zdGFyZGVudC17c3lzdjQqfGVsZip9LgoJKiBNYWtlZmlsZS5hbSAoQUxMX0VNVUxBVElPTlMpOiBBZGQgZWVsZjMyX2k4NjAuby4KCShlZWxmMzJfaTg2MC5jKTogTmV3IHJ1bGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMC0wOC0xMCAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIGVtdWxwYXJhbXMvbWlwc3BlLnNoIChFTlRSWSk6IEFkZCBkZWZpbml0aW9uLgoKMjAwMC0wOC0wOCAgUGV0ZXIgSmVyZW15ICA8cGV0ZXIuamVyZW15QGFsY2F0ZWwuY29tLmF1PgoKCSogZW11bHRlbXBsL2VsZjMyLmVtIChfYWZ0ZXJfY2xvc2UpOiBSZWZlciB0byAtcnBhdGggbm90IC0tcnBhdGgKCWluIGVycm9yIG1lc3NhZ2UuCgoyMDAwLTA4LTA4ICBTdGVwaGFuZSBDYXJyZXogIDxTdGVwaGFuZS5DYXJyZXpAd29ybGRuZXQuZnI+CgoJKiBzY3JpcHR0ZW1wbC9lbGZtNjhoYzExLnNjOiBEZWZpbmUgX19ic3Nfc2l6ZSBzeW1ib2wgdG8gaW5kaWNhdGUKCXRoZSBmaW5hbCBzaXplIG9mIC5ic3Mgc2VjdGlvbi4KCSogc2NyaXB0dGVtcGwvZWxmbTY4aGMxMi5zYzogTGlrZXdpc2UuCgoyMDAwLTA4LTA0ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogZW11bHRlbXBsL2VsZjMyLmVtIChnbGRfJHtFTVVMQVRJT05fTkFNRX1fcGFyc2VfYXJncyk6IFJlbmFtZSB0bwoJZ2xkJHtFTVVMQVRJT05fTkFNRX1fcGFyc2VfYXJncyBmb3IgY29uc2lzdGVuY3kuICBDb21iaW5lCglsYXN0b3B0aW5kIGFuZCBwcmV2b3B0aW5kIHZhcnMsIGFuZCBrZWVwIHRyYWNrIG9mIGxhc3Qgb3B0aW5kLgoJKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9saXN0X29wdGlvbnMpOiBSZW5hbWUgdG8KCWdsZCR7RU1VTEFUSU9OX05BTUV9X2xpc3Rfb3B0aW9ucy4KCjIwMDAtMDgtMDMgIFJvZG5leSBCcm93biAgPFJvZG5leUJyb3duQHBtc2MuY29tPgoKCSogY29uZmlndXJlLnRndDogU2VsZWN0IHRhcmdfZW11bD1lbGZfaTM4NiBmb3IgVW5peHdhcmUgNwoJKGk1ODYtc2NvLXN5c3Y1dXc3LjEuMCkuCgoyMDAwLTA3LTI3ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbXVscGFyYW1zL2VsZjY0YWxwaGEuc2ggKFBBUlNFX0FORF9MSVNUX0FSR1MpOiBSZW1vdmVkLgoJKFBBUlNFX0FORF9MSVNUX1BST0xPR1VFKTogTmV3LgoJKFBBUlNFX0FORF9MSVNUX0xPTkdPUFRTKTogTGlrZXdpc2UuCgkoUEFSU0VfQU5EX0xJU1RfT1BUSU9OUyk6IExpa2V3aXNlLgoJKFBBUlNFX0FORF9MSVNUX0FSR1NfQ0FTRVMpOiBMaWtld2lzZS4KCShQQVJTRV9BTkRfTElTVF9FUElMT0dVRSk6IExpa2V3aXNlLgoKMjAwMC0wNy0yOCAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGVtdWx0ZW1wbC9hcm1lbGYuZW06IEVsaWRlIGZ1bmN0aW9ucyBjb21tb24gdG8gZWxmMzIuZW0sCglpZS4gbW9zdCBvZiB0aGUgZmlsZS4KCShhcm1fZWxmX2FmdGVyX29wZW4pOiBOZXcuICBEbyBhcm0gc3BlY2lmaWMgdGhpbmdzIHRoZW4gY2FsbAoJZ2xkJHtFTVVMQVRJT05fTkFNRX1fYWZ0ZXJfb3Blbi4KCShhcm1fZWxmX2JlZm9yZV9hbGxvY2F0aW9uKTogTmV3LiAgQ2FsbAoJZ2xkJHtFTVVMQVRJT05fTkFNRX1fYmVmb3JlX2FsbG9jYXRpb24gdGhlbiBkbyBhcm0gc3BlY2lmaWNzLgoJKFBBUlNFX0FORF9MSVNUX1BST0xPR1VFKTogRGVmaW5lLgoJKFBBUlNFX0FORF9MSVNUX1NIT1JUT1BUUyk6IERlZmluZS4KCShQQVJTRV9BTkRfTElTVF9MT05HT1BUUyk6IERlZmluZS4KCShQQVJTRV9BTkRfTElTVF9PUFRJT05TKTogRGVmaW5lLgoJKFBBUlNFX0FORF9MSVNUX0FSR1NfQ0FTRVMpOiBEZWZpbmUuCgkoTERFTVVMX0FGVEVSX09QRU4pOiBEZWZpbmUuCgkoTERFTVVMX0JFRk9SRV9BTExPQ0FUSU9OKTogRGVmaW5lLgoJKExERU1VTF9CRUZPUkVfUEFSU0UpOiBEZWZpbmUuCgkoTERFTVVMX0ZJTklTSCk6IERlZmluZS4KCgkqIGVtdWx0ZW1wbC9ocHBhZWxmLmVtOiBTaW1pbGFybHkgemFwIG1vc3Qgb2YgdGhpcyBmaWxlLgoJKGhwcGFlbGZfYWRkX3N0dWJfc2VjdGlvbik6IFByb3RvdHlwZS4KCShocHBhZWxmX2xheWFvdXRfc2VjdGlvbnNfYWdhaW4pOiBQcm90b3R5cGUuCgkoaG9va19pbl9zdHViKTogUHJvdG90eXBlLgoJKExERU1VTF9TRVRfT1VUUFVUX0FSQ0gpOiBEZWZpbmUuCgkoTERFTVVMX0ZJTklTSCk6IERlZmluZS4KCShMREVNVUxfQ1JFQVRFX09VVFBVVF9TRUNUSU9OX1NUQVRFTUVOVFMpOiBEZWZpbmUuCgoJKiBlbXVscGFyYW1zL2FybWVsZi5zaCAoVEVNUExBVEVfTkFNRSk6IFVzZSBlbGYzMi4KCShFWFRSQV9FTV9GSUxFKTogTmV3LgoJKiBlbXVscGFyYW1zL2FybWVsZl9saW51eC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvYXJtZWxmX2xpbnV4MjYuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2hwcGFsaW51eC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvaHBwYWVsZi5zaDogTGlrZXdpc2UuCgkoTk9QKTogRGVmaW5lLgoKCSogZW11bHRlbXBsL2VsZjMyLmVtOiBGaXggZm9ybWF0dGluZy4KCShFWFRSQV9FTV9GSUxFKTogU291cmNlIGl0LgoJKExERU1VTF9CRUZPUkVfUEFSU0UsIExERU1VTF9TWVNMSUIsIExERU1VTF9ITEwsCglMREVNVUxfQUZURVJfUEFSU0UsIExERU1VTF9BRlRFUl9PUEVOLCBMREVNVUxfQUZURVJfQUxMT0NBVElPTiwKCUxERU1VTF9TRVRfT1VUUFVUX0FSQ0gsIExERU1VTF9DSE9PU0VfVEFSR0VULAoJTERFTVVMX0JFRk9SRV9BTExPQ0FUSU9OLCBMREVNVUxfR0VUX1NDUklQVCwgTERFTVVMX0ZJTklTSCwKCUxERU1VTF9DUkVBVEVfT1VUUFVUX1NFQ1RJT05fU1RBVEVNRU5UUywKCUxERU1VTF9PUEVOX0RZTkFNSUNfQVJDSElWRSwgTERFTVVMX1BMQUNFX09SUEhBTiwKCUxERU1VTF9TRVRfU1lNQk9MUywgTERFTVVMX1BBUlNFX0FSR1MsIExERU1VTF9VTlJFQ09HTklaRURfRklMRSwKCUxERU1VTF9MSVNUX09QVElPTlMsIExERU1VTF9SRUNPR05JWkVEX0ZJTEUsCglMREVNVUxfRklORF9QT1RFTlRJQUxfTElCUkFSSUVTKTogTmV3IHNoZWxsIHZhcnMuICBBZGQgY29kZSB0bwoJYWxsb3cgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSB0byBiZSBvdmVycmlkZGVuLgoJKFBBUlNFX0FORF9MSVNUX1NIT1JUT1BUUyk6IEhhbmRsZSBpdC4KCgkqIGVtdWx0ZW1wbC9tNjhrY29mZi5lbTogSW5jbHVkZSBsZGZpbGUuaCBiZWZvcmUgbGRlbXVsLmguCgoJKiBlbXVsdGVtcGwvZWxmMzIuZW06IFJlb3JnYW5pemUgZmlsZS4KCjIwMDAtMDctMjcgIEl2YW4gS29rc2hheXNreSAgPGlua0BqdXJhc3NpYy5wYXJrLm1zdS5ydT4KCgkqIGVtdWxwYXJhbXMvZWxmNjRhbHBoYS5zaDogSW1wbGVtZW50ICItdGFzbyIgZW11bGF0aW9uCglzcGVjaWZpYyBvcHRpb24gdG8gZml0IDY0LWJpdCBleGVjdXRhYmxlIGluIHRoZSBsb3dlcgoJMzEtYml0IGFkZHJlc3MgcmFuZ2UuICBUaGlzIGlzIGRvbmUgYnkgY2hhbmdpbmcgc3RhcnQKCWFkZHJlc3Mgb2YgLmludGVycCAodGhlIHZlcnkgZmlyc3Qgc2VjdGlvbiBvZiBleGVjdXRhYmxlKQoJYW5kIHRoZW4gc2V0dGluZyBFRl9BTFBIQV8zMkJJVCBlbGYgaGVhZGVyIGZsYWcuCgoyMDAwLTA3LTIxICBNaWNoYWVsIFNva29sb3YgIDxtc29rb2xvdkBpdmFuLkhhcmhhbi5PUkc+CgoJKiBlbXVsdGVtcGwvbTY4a2NvZmYuZW06IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL202OGtjb2ZmLnNoIChURU1QTEFURV9OQU1FKTogVXNlIG02OGtjb2ZmIHRlbXBsYXRlLgoJKiBNYWtlZmlsZS5hbSAoZW02OGtjb2ZmLmMpOiBEZXBlbmQgb24gbTY4a2NvZmYuZW0gcmF0aGVyIHRoYW4KCWdlbmVyaWMuZW0uCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMC0wNy0yMCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZW11bHRlbXBsL2VsZjMyLmVtIChsb25nb3B0cyk6IER1cGxpY2F0ZSAiZGlzYWJsZS1uZXctZHRhZ3MiCglhbmQgImRpc2FibGUtbmV3LWR0YWdzIiB0byBzdG9wIGdldG9wdCBmcm9tIHRyZWF0aW5nIC1kLy1lIGFzCglhYmJyZXZpYXRpb25zIGZvciB0aGVzZSBvcHRpb25zLgoKMjAwMC0wNy0yMCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogbGQudGV4aW5mbzogQWRkIGRvY3VtZW50YXRpb24gZm9yIC0tZGlzYWJsZS1uZXctZHRhZ3MgYW5kCgktLWVuYWJsZS1uZXctZHRhZ3MuCgoJKiBsZG1haW4uYyAobWFpbik6IEluaXRpYWxpemUgbGlua19pbmZvLm5ld19kdGFncyB0byBmYWxzZS4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkXyR7RU1VTEFUSU9OX05BTUV9X3BhcnNlX2FyZ3MpOiBBZGQKCS0tZGlzYWJsZS1uZXctZHRhZ3MgYW5kIC0tZW5hYmxlLW5ldy1kdGFncy4KCShnbGRfJHtFTVVMQVRJT05fTkFNRX1fbGlzdF9vcHRpb25zKTogTGlrZXdpc2UuCgoyMDAwLTA3LTA1ICBLZW5uZXRoIEJsb2NrICA8a3JibG9ja0Bjb21wdXRlci5vcmc+CgoJKiBsZXhzdXAuYzogQWRkIG9wdGlvbmFsIHN0eWxlIHRvIGRlbWFuZ2xlIHN3aXRjaAoJKiBsZC50ZXhpbmZvOiBEb2N1bWVudCBvcHRpb25hbCBzdHlsZSB0byBkZW1hbmdsZSBzd2l0Y2guCgoyMDAwLTA3LTIwICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChBTExfRU1VTEFUSU9OUyk6IEFkZCBlY3Jpc2FvdXQubywgZWNyaXNlbGYubywKCWVjcmlzbGludXguby4KCShlY3Jpc2FvdXQuYywgZWNyaXNlbGYuYywgZWNyaXNsaW51eC5jKTogTmV3IHJ1bGVzLgoJUmVnZW5lcmF0ZSBkZXBlbmRlbmNpZXMuCgkqIE1ha2VmaWxlLmluOiBSZWJ1aWxkLgoJKiBjb25maWd1cmUudGd0IChjcmlzLSotKik6IE5ldyB0YXJnZXQuCgkqIGVtdWxwYXJhbXMvY3Jpc2FvdXQuc2gsIGVtdWxwYXJhbXMvY3Jpc2VsZi5zaCwKCWVtdWxwYXJhbXMvY3Jpc2xpbnV4LnNoLCBzY3JpcHR0ZW1wbC9jcmlzYW91dC5zYzogTmV3IGZpbGVzLgoJKiBwby9QT1RGSUxFUy5pbiwgcG8vbGQucG90OiBSZWdlbmVyYXRlLgoKMjAwMC0wNy0yMCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZW11bHRlbXBsL2VsZjMyLmVtIChnbGRfJHtFTVVMQVRJT05fTkFNRX1fbGlzdF9vcHRpb25zKToKCVByaW50IG91dCBpZ25vcmVkIC16IG9wdGlvbnMuCgoyMDAwLTA3LTE5ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbXVscGFyYW1zL2VsZjMybWNvcmUuc2ggKFBBUlNFX0FORF9MSVNUX0FSR1MpOiBSZW1vdmVkLgoJKFBBUlNFX0FORF9MSVNUX1BST0xPR1VFKTogTmV3LgoJKFBBUlNFX0FORF9MSVNUX0xPTkdPUFRTKTogTGlrZXdpc2UuCgkoUEFSU0VfQU5EX0xJU1RfT1BUSU9OUyk6IExpa2V3aXNlLgoJKFBBUlNFX0FORF9MSVNUX0FSR1NfQ0FTRVMpOiBMaWtld2lzZS4KCgkqIGxkbWFpbi5jIChtYWluKTogQ2xlYXIgbGlua19pbmZvLmZsYWdzIGFuZCBsaW5rX2luZm8uZmxhZ3NfMS4KCgkqIGxleHN1cC5jIChsZF9vcHRpb25zKTogQ29tbWVudCBvdXQgJ3onLgoJKHBhcnNlX2FyZ3MpOiBMaWtld2lzZS4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbTogSW5jbHVkZSAiZWxmL2NvbW1vbi5oIi4KCShnbGRfJHtFTVVMQVRJT05fTkFNRX1fcGFyc2VfYXJncyk6IERlZmluZWQuIEhhbmRsZSBzb21lIC16CglvcHRpb25zLgoJKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9saXN0X29wdGlvbnMpOiBMaWtld2lzZS4KCgkqIGxkLnRleGluZm86IEFkZCBkb2N1bWVudGF0aW9uIGZvciB0aGUgcmVjb2duaXplZCAteiBvcHRpb25zLgoKMjAwMC0wNy0xOSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZW11bHRlbXBsL2VsZjMyLmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV90cnlfbmVlZGVkKTogQ2FsbAoJYmZkX2VsZl9zZXRfZHRfbmVlZGVkX3NvbmFtZSAoKS4KCjIwMDAtMDctMTggIERKIERlbG9yaWUgIDxkakBjeWdudXMuY29tPgoKCSogcGUtZGxsLmMgKHBlX2RsbF9pZF90YXJnZXQpOiBjaGVjayBvYmplY3QgdGFyZ2V0IG5hbWUgYWxzbwoKMjAwMC0wNy0xOCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBzY3JpcHR0ZW1wbC9lbGYuc2MgKC5pbml0KTogT25seSBkbyAke0lOSVRfU1RBUlR9IGFuZAoJJHtJTklUX0VORH0gaWYgcmVsb2NhdGluZy4KCSguZmluaSk6IExpa2V3aXNlICR7RklOSV9TVEFSVH0gYW5kICR7RklOSV9FTkR9LgoKMjAwMC0wNy0xNiAgQ2hhcmxlcyBXaWxzb24gIDxjd2lsc29uQGVjZS5nYXRlY2guZWR1PgoKCSogZW11bHRlbXBsL3BlLmVtIChnbGRfKl9vcGVuX2R5bmFtaWNfYXJjaGl2ZSk6IE5ldyBzZWFyY2gKCW9yZGVyIGZvciBkeW5hbWljIGxpYnJhcnkgJy1sZm9vJyBvbiBwZWkzODY6IGxpYmZvby5kbGwuYSwKCWZvby5kbGwuYSwgbGliZm9vLmEsIGxpYmZvby5kbGwsIGZvby5kbGwuIFRoaXMgZml4ZXMgY29tcGF0aWJpbGl0eQoJZXJyb3JzIGludHJvZHVjZWQgYnkgdGhlIG9sZCBkeW5hbWljIGxpYiBzZWFyY2ggb3JkZXIuCgoyMDAwLTA3LTE3ICBESiBEZWxvcmllICA8ZGpAY3lnbnVzLmNvbT4KCgkqIHBlLWRsbC5jIChwcm9jZXNzX2RlZl9maWxlKTogYXV0by1leHBvcnQgZGF0YSBpdGVtcyBhbHNvCgkocGVfcHJvY2Vzc19pbXBvcnRfZGVmcyk6IGFsc28gc2VlIGlmIF9pbXBfIGZvcm0gbmVlZGVkCgoyMDAwLTA3LTEyICBDaGFybGVzIFdpbHNvbiAgPGN3aWxzb25AZWNlLmdhdGVjaC5lZHU+CgoJKiBwZS1kbGwuYyAobWFrZV9vbmUpOiBmaXggYSB0eXBvIGluIHRoZSBfX2ltcF8gbmFtZSBkZWNvcmF0aW9uCglmb3IgZGxsIGltcG9ydCBsaWJyYXJpZXMKCjIwMDAtMDctMTIgIE1hcmsgRWxicmVjaHQgIDxzbm93YmFsbDNAYmlnZm9vdC5jb20+CgoJKiBzY3JpcHR0ZW1wbC9pMzg2Z28zMi5zYzogU3VwcG9ydCB0aGUgZysrIGF0dHJpYnV0ZSBpbml0X3ByaW9yaXR5IGluCglnY2MgMi45NS4yIGFuZCBsYXRlci4KCjIwMDAtMDctMTEgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogbGRmaWxlLmMgKGxkZmlsZV90cnlfb3Blbl9iZmQpOiBPdXRwdXQgJ1xuJyBhZnRlciBhbiBlcnJvcgoJbWVzc2FnZS4KCjIwMDAtMDctMTAgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBsZGVtdWwuaCAoc3RydWN0IGxhbmdfaW5wdXRfc3RhdGVtZW50X3N0cnVjdCk6IFJlbW92ZSBmb3J3YXJkCglkZWNsYXJhdGlvbi4KCShzdHJ1Y3Qgc2VhcmNoX2RpcnMpOiBMaWtld2lzZS4KCSogbGRmaWxlLmggKHN0cnVjdCBsYW5nX2lucHV0X3N0YXRlbWVudF9zdHJ1Y3QpOiBMaWtld2lzZS4KCVByb3RlY3QgZmlsZSBmcm9tIG11bHRpcGxlIGluY2x1c2lvbi4KCSogbGRsYW5nLmggKExBTkdfRk9SX0VBQ0hfSU5QVVRfU1RBVEVNRU5UKTogTW92ZSBmaWxlX2NoYWluCglkZWNsYXJhdGlvbiBmcm9tIG1hY3JvIHRvIGZpbGUgc2NvcGUuCgoJKiBsZGVtdWwuYzogbGRleHAuaCxsZGxhbmcuaCxsZGZpbGUuaCxsZGVtdWwuaCBnbyBpbiB0aGlzIG9yZGVyLgoJKiBsZGdyYW0ueTogTGlrZXdpc2UgaGVyZS4KCSogbGRsYW5nLmM6IEFuZCBoZXJlLgoJKiBsZG1haW4uYzogQW5kIGhlcmUuCgkqIG1wdy1lbGZtaXBzLmM6IEFuZCBoZXJlLgoJKiBtcHctZXBwY21hYy5jOiBBbmQgaGVyZS4KCSogZW11bHRlbXBsL2FpeC5lbTogQW5kIGhlcmUuCgkqIGVtdWx0ZW1wbC9hcm1jb2ZmLmVtOiBBbmQgaGVyZS4KCSogZW11bHRlbXBsL2FybWVsZi5lbTogQW5kIGhlcmUuCgkqIGVtdWx0ZW1wbC9hcm1lbGZfb2FiaS5lbTogQW5kIGhlcmUuCgkqIGVtdWx0ZW1wbC9iZW9zLmVtOiBBbmQgaGVyZS4KCSogZW11bHRlbXBsL2VsZjMyLmVtOiBBbmQgaGVyZS4KCSogZW11bHRlbXBsL2hwcGFlbGYuZW06IEFuZCBoZXJlLgoJKiBlbXVsdGVtcGwvbGludXguZW06IEFuZCBoZXJlLgoJKiBlbXVsdGVtcGwvbG5rOTYwLmVtOiBBbmQgaGVyZS4KCSogZW11bHRlbXBsL3BlLmVtOiBBbmQgaGVyZS4KCSogZW11bHRlbXBsL3N1bm9zLmVtOiBBbmQgaGVyZS4KCSogbXB3LWVzaC5jOiBBbmQgaGVyZS4gSW5jbHVkZSBsZGV4cC5oIGFuZCBsZGxhbmcuaCB0b28uCgkqIG1wdy1pZHRtaXBzLmM6IERpdHRvLgoJKiBlbXVsdGVtcGwvZ2VuZXJpYy5lbTogRGl0dG8uCgkqIGVtdWx0ZW1wbC9nbGQ5NjAuZW06IERpdHRvLgoJKiBlbXVsdGVtcGwvZ2xkOTYwYy5lbTogRGl0dG8uCgkqIGVtdWx0ZW1wbC9taXBzZWNvZmYuZW06IERpdHRvLgoJKiBlbXVsdGVtcGwvdGljb2ZmLmVtOiBEaXR0by4KCSogZW11bHRlbXBsL3ZhbmlsbGEuZW06IERpdHRvLgoKCSogcGUtZGxsLmM6IEluY2x1ZGUgbGRmaWxlLmgKCSogbGR2ZXIuYzogSW5jbHVkZSBsZGV4cC5oLCBsZGxhbmcuaCwgbGRmaWxlLmgKCgkqIG1wdy1lbGZtaXBzLmM6IChnbGRlbGYzMmVibWlwX2JlZm9yZV9hbGxvY2F0aW9uKTogQWRkIG1pc3NpbmcKCWFyZ3VtZW50cyB0byBiZmRfZWxmMzJfc2l6ZV9keW5hbWljX3NlY3Rpb25zIGNhbGwuCgkoZ2xkZWxmMzJlYm1pcF9wbGFjZV9vcnBoYW4pOiBBZGQgbWlzc2luZyBhcmd1bWVudHMgdG8KCWxhbmdfbGVhdmVfb3V0cHV0X3NlY3Rpb25fc3RhdGVtZW50IGNhbGwuCgoyMDAwLTA3LTEwICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbXVsdGVtcGwvcGUuZW0gKHBlX2VuYWJsZV9zdGRjYWxsX2ZpeHVwKTogUHJvdGVjdCB3aXRoCglETExfU1VQUE9SVC4KCShzdHJoYXNoKTogTGlrZXdpc2UuCgkoY29tcHV0ZV9kbGxfaW1hZ2VfYmFzZSk6IExpa2V3aXNlLgoJKHBlX3VuZGVmX2ZvdW5kX3N5bSk6IExpa2V3aXNlLgoJKHBlX3VuZGVmX2NkZWNsX21hdGNoKTogTGlrZXdpc2UuCgkoZ2xkXyR7RU1VTEFUSU9OX05BTUV9X29wZW5fZHluYW1pY19hcmNoaXZlKTogTWFyayB0aGUKCWFyZ3VtZW50ICJhcmNoIiB3aXRoIEFUVFJJQlVURV9VTlVTRUQuCgoyMDAwLTA3LTEwICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogY29uZmlndXJlLnRndDogUmVtb3ZlIGV4dHJhbmVvdXMgaHBwYSotKi1saW51eC1nbnUqLgoKCUZyb20gIFJ5YW4gQnJhZGV0aWNoICA8cmJyYWRldGljaEB1c3dlc3QubmV0PgoJKiBsZHdyaXRlLmMgKFNTSVpFKTogUmVtb3ZlIHRvIGN1cmUgbWFjcm8gcmVkZWZpbml0aW9uIHdhcm5pbmcuCgoyMDAwLTA3LTA5ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCUNoYW5nZXMgdG8gY3JlYXRlIG11bHRpcGxlIGxpbmtlciBzdHVicywgcG9zaXRpb25lZCBpbW1lZGlhdGVseQoJYmVmb3JlIHRoZSBzZWN0aW9uIHdoZXJlIHRoZXkgYXJlIHJlcXVpcmVkLgoJKiBlbXVsdGVtcGwvaHBwYWVsZi5lbTogSW5jbHVkZSBlbGYzMi1ocHBhLmguCgkoc3R1Yl9zZWMsIGZpbGVfY2hhaW4pOiBEZWxldGUuCgkoaHBwYWVsZl9jcmVhdGVfb3V0cHV0X3NlY3Rpb25fc3RhdGVtZW50cyk6IERvbid0IG1ha2UgYSBzdHViCglzZWN0aW9uIGhlcmUuCgkoaG9va19zdHViX2luZm8pOiBOZXcgc3RydWN0LgoJKGhvb2tfaW5fc3R1Yik6IE5ldyBmdW5jdGlvbi4KCShocHBhZWxmX2FkZF9zdHViX3NlY3Rpb24pOiBOZXcgZnVuY3Rpb24uCgkoaHBwYWVsZl9maW5pc2gpOiBEbyBub3RoaW5nIGZvciByZWxvY2F0ZWFibGUgbGlua3MuICBNb2RpZnkgdGhlCgljYWxsIHRvIGVsZjMyX2hwcGFfc2l6ZV9zdHVicy4gIE1vdmUgY29kZSBmb3IgdXBkYXRpbmcgc2VjdGlvbgoJbGF5b3V0IGZyb20gaGVyZS4uLgoJKGhwcGFlbGZfbGF5YW91dF9zZWN0aW9uc19hZ2Fpbik6IC4udG8gaGVyZSwgYSBuZXcgZnVuY3Rpb24uCgoJKiBlbXVsdGVtcGwvaHBwYWVsZi5lbSAoaHBwYWVsZl9kZWxldGVfcGFkZGluZ19zdGF0ZW1lbnRzKTogRml4Cglicm9rZW4gbGlzdCBoYW5kbGluZy4gIFBhc3MgaW4gYSBwb2ludGVyIHRvIHRoZSBsaXN0LgoJKGhwcGFlbGZfZmluaXNoKTogVXBkYXRlIGNhbGwgdG8gaHBwYWVsZl9kZWxldGVfcGFkZGluZ19zdGF0ZW1lbnRzCglmb3IgYWJvdmUgY2hhbmdlcy4KCShocHBhZWxmX2JlZm9yZV9wYXJzZSk6IFByb3RvdHlwZS4KCShocHBhZWxmX3NldF9vdXRwdXRfYXJjaCk6IFByb3RvdHlwZS4KCShocHBhZWxmX2NyZWF0ZV9vdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnRzKTogUHJvdG90eXBlLgoJKGhwcGFlbGZfZGVsZXRlX3BhZGRpbmdfc3RhdGVtZW50cyk6IFByb3RvdHlwZS4KCShocHBhZWxmX2ZpbmlzaCk6IFByb3RvdHlwZS4KCglNZXJnZSBmcm9tIGVsZjMyLmVtCgkqIGVtdWx0ZW1wbC9ocHBhZWxmLmVtOiBJbmNsdWRlIGN0eXBlLmguCgkoc3RydWN0IG9ycGhhbl9zYXZlKTogTmV3LgoJKGdsZCR7RU1VTEFUSU9OX05BTUV9X3BsYWNlX29ycGhhbik6IE5ldy4KCShvdXRwdXRfcmVsX2ZpbmQpOiBOZXcuCgkoaHBwYWVsZl9nZXRfc2NyaXB0KTogVXBkYXRlIGZyb20gZWxmMzIuZW0uCgkobGRfaHBwYWVsZl9lbXVsYXRpb24pOiBSZW5hbWUgdG8gbGRfJHtFTVVMQVRJT05fTkFNRX1fZW11bGF0aW9uLgoJQ2hhbmdlIGVtdWxhdGlvbl9uYW1lIGZpZWxkIHRvICIke0VNVUxBVElPTl9OQU1FfSIuICBBZGQKCWdsZCR7RU1VTEFUSU9OX05BTUV9X3BsYWNlX29ycGhhbi4KCgkqIE1ha2VmaWxlLmFtIChBTExfRU1VTEFUSU9OUyk6IFJlaW5zdGF0ZSBlaHBwYWVsZi5vLCAgYWRkCgllaHBwYWxpbnV4Lm8sIHNvcnQgaXQuICBSZWdlbmVyYXRlIGRlcGVuZGVuY2llcy4KCShlaHBwYWxpbnV4LmMpOiBEZXBlbmQgb24gaHBwYWVsZi5lbQoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCgkqIGNvbmZpZ3VyZS50Z3Q6IHRhcmdfZW11bD1ocHBhbGludXggZm9yIGhwcGEqbGludXgKCgkqIGVtdWxwYXJhbXMvaHBwYWxpbnV4LnNoOiBOZXcuCgkqIGVtdWxwYXJhbXMvaHBwYWVsZi5zaCAoVEFSR0VUX1BBR0VfU0laRSk6IFdyaXRlIGluIGhleC4KCjIwMDAtMDctMDggIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBsZXhzdXAuYyAocGFyc2VfYXJncyk6IENvcHkgc2VjdGlvbiBuYW1lLgoKMjAwMC0wNy0wNyAgQ2hhcmxlcyBXaWxzb24gIDxjd2lsc29uQGVjZS5nYXRlY2guZWR1PgoKCSogZW11bHRlbXBsL3BlLmVtOiBpbnN0aXR1dGUgdGhlIGZvbGxvd2luZyBzZWFyY2ggb3JkZXIgZm9yCglkeW5hbWljIGxpYnJhcmllcyBvbiBwZWkzODY6IGxpYmZvby5kbGwuYSwgZm9vLmRsbC5hIChpbXBvcnQKCWxpYnMpLCBsaWJmb28uZGxsLCBmb28uZGxsIChsaW5rIGRpcmVjdCB0byBkbGwpLiAgRmFsbCBiYWNrIHRvCglzdGF0aWMgbGliIChsaWJmb28uYSkgaWYgbm9uZSBvZiB0aGUgYWJvdmUgYXJlIGZvdW5kLgoKMjAwMC0wNy0wNyAgTXVtaXQgS2hhbiAgPGtoYW5AeHJheWxpdGgud2lzYy5lZHU+CgoJKiBlbXVsdGVtcGwvcGUuZW0gKHBlX2VuYWJsZV9hdXRvX2ltYWdlX2Jhc2UpOiBOZXcgdmFyaWFibGUuCgkobG9uZ29wdHMpOiBOZXcgLS17ZW5hYmxlLGRpc2FibGV9LWF1dG8taW1hZ2UtYmFzZSBvcHRpb25zLgoJKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9saXN0X29wdGlvbnMpOiBEb2N1bWVudC4KCShnbGRfJHtFTVVMQVRJT05fTkFNRX1fcGFyc2UpOiBIYW5kbGUuCgkoc3RyaGFzaCk6IE5ldyBzdGF0aWMgZnVuY3Rpb24uCgkoY29tcHV0ZV9kbGxfaW1hZ2VfYmFzZSk6IE5ldyBzdGF0aWMgZnVuY3Rpb24uCgkoZ2xkXyR7RU1VTEFUSU9OX05BTUV9X3NldF9zeW1ib2xzKTogVXNlLgoKMjAwMC0wNy0wNSAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBNQUlOVEFJTkVSUzogbmV3CgoyMDAwLTA3LTAxICBLb3VuZGlueWEgSyAgPGtrQGRkZW9yZy5zb2Z0Lm5ldD4KCgkqIGNvbmZpZ3VyZS50Z3Q6IEFkZCB0cmFkaXRpb25hbCBtaXBzIChtaXBzKi0qLXN5c3Y0KikgdGFyZ2V0LgoJKiBlbXVscGFyYW1zL2VsZjMyYnRzbWlwLnNoOiBOZXcgZmlsZS4KCSogTWFrZWZpbGUuYW06IEFkZCB0cmFkaXRpb25hbCBtaXBzIHRhcmdldC4KCSogTWFrZWZpbGUuaW46IFJlYnVpbGQuCgoyMDAwLTA3LTAxICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBNYWtlZmlsZS5hbSAoRVhUUkFfbGRfbmV3X1NPVVJDRVMpOiBTZXQgdG8gZGVmZmlsZXAueSBmb3IKCWF1dG9tYWtlIHRvIHVzZSBZTFdSQVAuCgkqIE1ha2VmaWxlLmluOiBSZWJ1aWxkLgoKMjAwMC0wNy0wMSAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIE1ha2VmaWxlLmFtIChERVApOiBGaXggMjAwMC0wNi0yMi4gIGdyZXAgYWZ0ZXIgcnVubmluZyBkZXAuc2VkCgkoQ0xFQU5GSUxFUyk6IEFkZCBERVBBLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDAtMDYtMzAgIFRpbW90aHkgV2FsbCAgPHR3YWxsQHBwYz4KCgkqIHNjcmlwdHRlbXBsL3RpYzU0eGNvZmYuc2M6IFBBR0UgTiBpcyBub3QgaW1wbGVtZW50ZWQsIHNvIGVuY29kZQoJdGhlIHBhZ2UgaW4gdGhlIHVwcGVyIG9jdGV0IG9mIHRoZSBhZGRyZXNzLgoKMjAwMC0wNi0yNiAgTWFyZWsgTWljaGFsa2lld2ljeiAgPG1hcmVrbUBsaW51eC5vcmcucGw+CgoJKiBlbXVscGFyYW1zL2F2cm1lZ2ExNjEuc2ggKEFSQ0gpOiBDaGFuZ2UgdG8gYXZyOjUuCgoyMDAwLTA2LTI0ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogTkVXUzogYXJtLWVsZiBkb2VzIC0tZ2Mtc2VjdGlvbnMgdG9vLgoKMjAwMC0wNi0yMiAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIE1ha2VmaWxlLmFtIChERVApOiBncmVwIGZvciBsZWFkaW5nIGAvJyBpbiBERVAxLCBhbmQgZmFpbCBpZiB3ZQoJZmluZCBvbmUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMC0wNi0yMSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogTWFrZWZpbGUuYW06IFJlYnVpbGQgZGVwZW5kZW5jeS4KCSogTWFrZWZpbGUuaW46IFJlYnVpbGQuCgoyMDAwLTA2LTIwICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBNYWtlZmlsZS5hbTogUmVidWlsZCBkZXBlbmRlbmN5LgoJKiBNYWtlZmlsZS5pbjogUmVidWlsZC4KCjIwMDAtMDYtMjAgIFRpbW90aHkgV2FsbCAgPHR3YWxsQGN5Z251cy5jb20+CgoJKiBzY3JpcHR0ZW1wbC90aWM1NHhjb2ZmLnNjOiBOZXcuCgkqIGxkbGFuZy5jICh3aWxkX2RvaXQpOiBQcm9wYWdhdGUgU0VDX0JMT0NLIGZsYWcuCgkqIGdlbi1kb2MudGV4aTogQWRkIGZsYWcgZm9yIFRJIENPRkYuCgkqIGxkLnRleGluZm86IEFkZCBkb2N1bWVudGF0aW9uIGZvciBUSSBDT0ZGIGhhbmRsaW5nIHN3aXRjaGVzLgoJKiBlbXVsdGVtcGwvdGljb2ZmLmVtOiBOZXcuIFRJIENPRkYgaGFuZGxpbmcuCgkqIGNvbmZpZ3VyZS50Z3Q6IEFkZCB0aWM1NHggdGFyZ2V0LgoJKiBNYWtlZmlsZS5hbTogQWRkIHRpYzU0eCB0YXJnZXQuCgkqIE1ha2VmaWxlLmluOiBEaXR0by4KCjIwMDAtMDYtMjAgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBsZG1haW4uYyAoc2V0X3NjcmlwdHNfZGlyKTogQ29ycmVjdCBwb2ludGVyIGNvbXBhcmlzb24gd2hlbgoJY2hlY2tpbmcgZm9yIGJhY2tzbGFzaGVzLgoKMjAwMC0wNi0xOSAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIE5FV1M6IE1vdmUgZW50cmllcyBub3QgaW4gMi4xMCBhYm92ZSAiQ2hhbmdlcyBpbiB2ZXJzaW9uIDIuMTAiLgoKMjAwMC0wNi0xOCAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIE5FV1M6IFVwZGF0ZSBsaXN0IG9mIHRhcmdldHMgc3VwcG9ydGluZyAtLWdjLXNlY3Rpb25zLgoKCSogc2NyaXB0dGVtcGwvZWxmLnNjOiBLRUVQIC5laF9mcmFtZSBjb250ZW50cy4KCSogc2NyaXB0dGVtcGwvZWxmZDMwdi5zYzogU2FtZSBoZXJlLgoKMjAwMC0wNi0xOCAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAd29ybGRuZXQuZnI+CgoJKiBNYWtlZmlsZS5hbSAoQUxMX0VNVUxBVElPTlMpOiBBZGRlZCBuZXcgZW11bGF0aW9uIGZvciBtNjhoYzEyCglhbmQgbTY4aGMxMSAoZWxmKS4KCSogTWFrZWZpbGUuaW46IFJlYnVpbGQuCgkqIGNvbmZpZ3VyZS50Z3Q6IFJlY29nbml6ZSBtNjhoYzEyIGFuZCBtNjhoYzExLgoJKiBzY3JpcHR0ZW1wbC9lbGZtNjhoYzEyLnNjOiBOZXcgZmlsZS4KCSogZW11bHBhcmFtcy9tNjhoYzEyZWxmYjogTmV3IGVtdWxhdGlvbi4KCSogZW11bHBhcmFtcy9tNjhoYzEyZWxmOiBOZXcgZW11bGF0aW9uLgoJKiBlbXVscGFyYW1zL202OGhjMTFlbGZiLnNoOiBOZXcgZmlsZS4JVXNlciBjb25maWd1cmFibGUgZW11bGF0aW9uCgkoaW5jbHVkZXMgYSBtZW1vcnkueCBzY3JpcHQgdG8gZGVmaW5lIHRoZSBST00gYW5kIFJBTSBiYW5rcykuCgkqIHNjcmlwdHRlbXBsL2VsZm02OGhjMTEuc2MsIGVtdWxwYXJhbXMvbTY4aGMxMWVsZi5zaDoKCU5ldyBjb25maWd1cmF0aW9uIGZpbGVzIGZvciBzdXBwb3J0IG9mIE1vdG9yb2xhIDY4aGMxMQoKMjAwMC0wNi0xNSAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGxkbWFpbi5jIChtYWluKTogT25seSBjaGFuZ2UgU0VDX1JFQURPTkxZIGZvciBmaW5hbCBsaW5rLgoKMjAwMC0wNi0xMyAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMC0wNi0wOCAgRGF2aWQgTydCcmllbiAgPG9icmllbkBGcmVlQlNELm9yZz4KCgkqIGNvbmZpZ3VyZS5pbiAoVkVSU0lPTik6IFVwZGF0ZSB0byBzaG93IHRoaXMgaXMgdGhlIENWUyBtYWlubGluZS4KCjIwMDAtMDYtMDcgIE1pY2hhZWwgU29rb2xvdiAgPG1zb2tvbG92QGl2YW4uSGFyaGFuLk9SRz4KCgkqIGVtdWx0ZW1wbC9taXBzZWNvZmYuZW0gKGdsZHtFTVVMQVRJT05fTkFNRX1fYWZ0ZXJfb3Blbik6IFJlcXVpcmUgYWxsCglpbnB1dCBvYmplY3RzIHRvIGJlIEVDT0ZGLgoJKGNoZWNrX3NlY3Rpb25zKTogZWluZm8gdGFrZXMgJUIsIG5vdCAlUCwgdG8gcHJpbnQgYSBCRkQgbmFtZS4KCjIwMDAtMDYtMDUgIE1pY2hhZWwgTWF0eiA8bWF0ekBpZmguZGU+CgoJKiBsZGdyYW0ueSAodmVyc19kZWZucyk6IEhhbmRsZSAnZXh0ZXJuICJDKysiIHsgLi4uIH0nIGluCgl2ZXJzaW9uIHNjcmlwdHMuCgoJKiBsZGxleC5sIChWX0lERU5USUZJRVIpOiBBY2NlcHQgYDo6JyBpbiBzeW1ib2xzLgoKMjAwMC0wNS0yMyAgTWFyZWsgTWljaGFsa2lld2ljeiAgPG1hcmVrbUBsaW51eC5vcmcucGw+CgoJKiBlbXVscGFyYW1zL2F2cjEyMDAuc2ggKFNUQUNLKTogRGVmaW5lIGFzIDAuCgkqIGVtdWxwYXJhbXMvYXZyMjN4eC5zaCAoU1RBQ0spOiBEZWZpbmUgYXMgbGFzdCBpbnRlcm5hbCBTUkFNIGFkZHJlc3MuCgkqIGVtdWxwYXJhbXMvYXZyNDQzMy5zaCAoU1RBQ0spOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9hdnI0NHg0LnNoIChTVEFDSyk6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2F2cjg1eHguc2ggKFNUQUNLKTogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvYXZybWVnYTEwMy5zaCAoU1RBQ0spOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9hdnJtZWdhMTYxLnNoIChTVEFDSyk6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2F2cm1lZ2E2MDMuc2ggKFNUQUNLKTogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2VsZjMyYXZyLnNjIChfX2RhdGFfc3RhcnQpOiBEZWZpbmUgZm9yIGdjcnQxLgoJKF9fc3RhY2spOiBEZWZpbmUgZnJvbSAke1NUQUNLfSBmb3IgbWFpbigpLgoKMjAwMC0wNS0yNiAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIE1ha2VmaWxlLmFtOiBVcGRhdGUgZGVwZW5kZW5jaWVzIHdpdGggIm1ha2UgZGVwLWFtIgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDAtMDUtMjYgIEVsaSBaYXJldHNraWkgIDxlbGl6QGlzLmVsdGEuY28uaWw+CgoJKiBsZG1haW4uYzogSW5jbHVkZSBmaWxlbmFtZXMuaC4KCShzZXRfc2NyaXB0c19kaXIpOiBTdXBwb3J0IGJhY2tzbGFzaGVzIGluIHByb2dyYW0gbmFtZS4KCjIwMDAtMDUtMjIgIElnb3IgU2hldmx5YWtvdiAgPGlnb3JAd2luZHJpdmVyLmNvbT4KCgkqIGxkbWFpbi5jIChtYWluKTogV2hlbiBkZWNpZGluZyBpZiAiLnRleHQiIHNlY3Rpb24gc2hvdWxkIGJlCglyZWFkLW9ubHksIGRvbid0IGZvcmdldCB0byByZXNldCBTRUNfUkVBRE9OTFkgYmVjYXVzZSBpdAoJY291bGQgYmUgYWxyZWFkeSBzZXQuCgoyMDAwLTA1LTIyICBUaG9tYXMgZGUgTGVsbGlzICA8dGRlbEB3aW5kcml2ZXIuY29tPgoKCSogbGQuMTogQWRkIGRvY3VtZW50YXRpb24gZm9yIG5ldyBjb21tYW5kIGxpbmUgb3B0aW9uOgoJCS0tc2VjdGlvbi1zdGFydCA8c2VjdGlvbm5hbWU+PTxzZWN0aW9ub3JnPgoJVGhpcyBpcyBhIGdlbmVyaWMgdmVyc2lvbiBvZiAtVHRleHQgZXRjLiB3aGljaCBhY2NlcHRzCglhbnkgc2VjdGlvbiBuYW1lIGFzIGEgcGFyYW1ldGVyIGluc3RlYWQgb2YganVzdCB0ZXh0L2RhdGEvCglic3MuCgkqIGxkLnRleGluZm86IE1vcmUgZG9jcy4KCSogTkVXUzogTW9yZSBkb2NzLgoJKiBsZXhzdXAuYzogKHBhcnNlX2FyZ3MpOiBSZWNvZ25pemUgbmV3IGNvbW1hbmQgbGluZSBvcHRpb24uCgkobGRfb3B0aW9ucyk6IEFkZCBuZXcgb3B0aW9uLgoKMjAwMC0wNS0xOCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogbGV4c3VwLmMgKHBhcnNlX2FyZ3MpOiBgaScgPT0gYHInLCBub3QgYHEnLgoKMjAwMC0wNS0xOCAgSmVmZnJleSBBIExhdyAgKGxhd0BjeWdudXMuY29tKQoKCSogY29uZmlndXJlLnRndCAoaHBwYSo2NCotKi0qKTogRW5hYmxlIFBBNjQgdGFyZ2V0LgoKMjAwMC0wNS0xNyBTLiBCaGFyYWR3YWogWWFkYXZhbGxpICA8c2J5QHNjcnVncy5sa2cuZGVjLmNvbT4KCSAgICAgIFJpY2sgR29ydG9uCSAgIDxnb3J0b25Ac2NydWdzLmxrZy5kZWMuY29tPgoKCUFkZCBzdXBwb3J0IGZvciAnLXEnID09ICctLWVtaXQtcmVsb2NzJyBzd2l0Y2guCgkqIGxkbWFpbi5jIChtYWluKTogRGVmYXVsdCB0byBmYWxzZS4KCSogbGV4c3VwLmMgKHBhcnNlX2FyZ3MpOiBUdXJuIG9uIGVtaXRyZWxvY2F0aW9ucyBmbGFnIGlmIHNldC4KCSogTkVXUzogRGVzY3JpYmUgdGhlIGVtaXRyZWxvY2F0aW9ucyBzd2l0Y2guCgkqIGxkLnRleGluZm86IERlc2NyaWJlIHRoZSBlbWl0cmVsb2NhdGlvbnMgc3dpdGNoLgoKMjAwMC0wNS0xNiAgQ2hhcmxlcyBXaWxzb24gPGN3aWxzb25AZWNlLmdhdGVjaC5lZHU+CgoJKiBlbXVsdGVtcGwvcGUuZW0gKF9vcGVuX2R5bmFtaWNfYXJjaGl2ZSk6IE5ldyBmdW5jdGlvbjogU2VhcmNoCgl0aGUgbGlicmFyeSBwYXRoIGZvciAiZm9vLmRsbCIgYW5kICJsaWJmb28uZGxsIiBkeW5hbWljIGxpYnJhcmllcwoJYmVmb3JlIHNlYXJjaGluZyBmb3IgJ2xpYmZvby5hJyBpbiByZXNwb25zZSB0byBhICctQmR5bmFtaWMgLWxmb28nCglsaW5rIG9wdGlvbnMuCgoyMDAwLTA1LTE1ICBEYXZpZCBPJ0JyaWVuICA8b2JyaWVuQEZyZWVCU0Qub3JnPgoKCSogbGV4c3VwLmMgKHBhcnNlX2FyZ3MpOiBVcGRhdGUgdGhlIHllYXIgaW4gdGhlIGNvcHlyaWdodCBub3RpY2UuCgoyMDAwLTA1LTEzICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogbGQuaCAoZ2V0dGV4dCwgZGdldHRleHQsIGRjZ2V0dGV4dCwgdGV4dGRvbWFpbiwgYmluZHRleHRkb21haW4pOgoJUmVwbGFjZSBkZWZpbmVzIHdpdGggdGhvc2UgZnJvbSBpbnRsL2xpYmdldHRleHQuaCB0byBxdWlldGVuIGdjYwoJd2FybmluZ3MuCgoyMDAwLTA1LTEwICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBsZGxhbmcuYyAob3Blbl9pbnB1dF9iZmRzKTogRG9uJ3QgbG9hZCB0aGUgc2FtZSBmaWxlIHdpdGhpbgoJYSBncm91cCBhZ2FpbiBpZiB0aGUgd2hvbGUgYXJjaGl2ZSBoYXMgYmVlbiBsb2FkZWQgYWxyZWFkeS4KCjIwMDAtMDUtMDMgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJRnJvbSBVbGYgQ2FybHNzb24gPHVsZmNAZW5nci5zZ2kuY29tPiBhbmQgQW5kcmVhcyBKYWVnZXIgPGFqQHN1c2UuZGU+CgkqIGxleHN1cC5jIChzZXRfc2VjdGlvbl9zdGFydCk6IFVzZSBiZmRfc2Nhbl92bWEgcmF0aGVyIHRoYW4KCXN0cnRvdWwuCgoyMDAwLTA1LTAxICBKaW0gV2lsc29uICA8d2lsc29uQGN5Z251cy5jb20+CgoJKiBjb25maWd1cmUuaG9zdCAoaWE2NC0qLWxpbnV4LWdudSopOiBDaGFuZ2UgZ2NjIHRvICR7Q0N9LgoKCSogY29uZmlndXJlLmhvc3Q6IEFkZGVkIEhPU1RJTkdfQ1JUMCwgSE9TVElOR19MSUJTIGZvcgoJaG9zdCAiaWE2NC0qLWxpbnV4LWdudSoiLgoKMjAwMC0wNC0yOSAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogbGQuaDogQ29ycmVjdGx5IGNoZWNrIEdDQyB2ZXJzaW9uLgoKMjAwMC0wNC0yNSAgSmVmZnJleSBBIExhdyAgKGxhd0BjeWdudXMuY29tKQoKCSogTWFrZWZpbGUuYW06IEFkZCBQQTY0IHN1cHBvcnQuICBBZGQgbWlzc2luZyBkZXBlbmRlbmNpZXMgZm9yCglQQTMyIGVsZiBzdXBwb3J0LgoJKiBNYWtlZmlsZS5pbjogUmVidWlsdC4KCSogY29uZmlndXJlLnRndDogQWRkIFBBNjQgc3VwcG9ydCAoY3VycmVudGx5IGRpc2FibGVkKS4KCjIwMDAtMDQtMjUgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKGdsZCR7RU1VTEFUSU9OX05BTUV9X3BsYWNlX3NlY3Rpb24pOiBEZWxldGUuCgkob3V0cHV0X3JlbF9maW5kKTogTmV3IGZ1bmN0aW9uLgoJKGhvbGRfc2VjdGlvbiwgaG9sZF91c2UpOiBEZWxldGUuCgkoaG9sZF90ZXh0LCBob2xkX3JvZGF0YSwgaG9sZF9kYXRhLCBob2xkX2JzcywgaG9sZF9yZWwsCglob2xkX2ludGVycCk6IE1ha2UgbG9jYWwgdG8gcGxhY2Vfb3JwaGFuLgoJKGdsZCR7RU1VTEFUSU9OX05BTUV9X3BsYWNlX29ycGhhbik6IFVzZSBsYW5nX291dHB1dF9zZWN0aW9uX2ZpbmQKCXJhdGhlciB0aGFuIHBsYWNlX3NlY3Rpb24gdG8gZmluZCBwb3NzaWJsZSBwcmV2aW91cyB1c2Ugb2Ygb3JwaGFuLgoJU2ltaWxhcmx5IGZpbmQgdGhlIHBsYWNlLWhvbGRlciBvdXRwdXQgc2VjdGlvbnMuICBVc2UgcmV0dXJuZWQKCXZhbHVlIGZyb20gbGFuZ19lbnRlcl9vdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnQgcmF0aGVyIHRoYW4gY2FsbGluZwoJbGFuZ19vdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnRfbG9va3VwLgoJKiBlbXVsdGVtcGwvYXJtZWxmLmVtOiBTYW1lIGhlcmUuCgkqIGVtdWx0ZW1wbC9wZS5lbTogU2ltaWxhciB0byBhYm92ZSwgYnV0IG5vIG5lZWQgZm9yIG91dHB1dF9yZWxfZmluZC4KCgkqIGxkbGFuZy5jIChsYW5nX2VudGVyX291dHB1dF9zZWN0aW9uX3N0YXRlbWVudCk6IFJldHVybiBvdXRwdXQKCXNlY3Rpb24gc3RhdGVtZW50LgoJKiBsZGxhbmcuaCAobGFuZ19lbnRlcl9vdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnQpOiBDaGFuZ2UKCWRlY2xhcmF0aW9uIHRvby4KCgkqIGxkbGFuZy5oIChsYW5nX291dHB1dF9zZWN0aW9uX3N0YXRlbWVudCk6IEV4cG9ydCBpdC4KCSogbGRsYW5nLmMgKGxhbmdfb3V0cHV0X3NlY3Rpb25fc3RhdGVtZW50KTogRGl0dG8uCgoyMDAwLTA0LTI0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogbGQudGV4aW5mbyAoT3V0cHV0IFNlY3Rpb24gRGF0YSk6IEFkZCBub3RlIHRoYXQgc2VjdGlvbiBkYXRhCgljb21tYW5kcyBjYW5ub3QgYXBwZWFyIG91dHNpZGUgb2Ygc2VjdGlvbiBkaXJlY3RpdmVzLgoKMjAwMC0wNC0yICBNYXR0aGV3IEdyZWVuICA8bXJnQGN5Z251cy5jb20+CgoJKiBjb25maWd1cmUudGd0OiBBZGQgTmV0QlNEL3NwYXJjIEVMRiwgYW5kIE5ldEJTRC9zcGFyYzY0IHN1cHBvcnQuCgoyMDAwLTA0LTIxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEBjeWdudXMuY29tPgoJICAgIERhdmlkIE1vc2JlcmdlciAgPGRhdmlkbUBocGwuaHAuY29tPgoKCSogTWFrZWZpbGUuYW0gKEFMTF82NF9FTVVMQVRJT05TKTogQWRkIGVlbGY2NF9pYTY0Lm8uCgkoZWVsZjY0X2lhNjQuYyk6IE5ldyBydWxlLgoJKiBNYWtlZmlsZS5pbjogUmVidWlsZC4KCSogY29uZmlndXJlLnRndCAoaWE2NC0qLWVsZiosIGlhNjQtKi1saW51eCopOiBOZXcgdGFyZ2V0cy4KCSogZW11bHBhcmFtcy9lbGY2NF9pYTY0LnNoOiBOZXcgZmlsZS4KCjIwMDAtMDQtMjEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQGN5Z251cy5jb20+CgoJKiBzY3JpcHR0ZW1wbC9lbGZkMzB2LnNjOiBQbGFjZSAuZ2NjX2V4Y2VwdF90YWJsZS4KCjIwMDAtMDQtMTkgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBkZXAtaW4uc2VkOiBNYXRjaCBzcGFjZSBhdCBzdGFydCBvZiBmaWxlIG5hbWUsIG5vdCBhdCBlbmQuCgoyMDAwLTA0LTE4ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKGdsZCR7RU1VTEFUSU9OX05BTUV9X3BsYWNlX29ycGhhbik6IENhbGwKCWxhbmdfbGVhdmVfb3V0cHV0X3NlY3Rpb25fc3RhdGVtZW50ICgpIGFmdGVyIGNhbGxpbmcKCWxhbmdfZW50ZXJfb3V0cHV0X3NlY3Rpb25fc3RhdGVtZW50ICgpLgoJKiBlbXVsdGVtcGwvYXJtZWxmLmVtOiBMaWtld2lzZS4KCjIwMDAtMDQtMTggIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKHN0cnVjdCBvcnBoYW5fc2F2ZSk6IEFkZCBzZWN0aW9uIGZpZWxkLgoJKGdsZCR7RU1VTEFUSU9OX05BTUV9X3BsYWNlX29ycGhhbik6IFVzZSBhYm92ZSB0byBrZWVwIHNlY3Rpb25zIGluCgliZXR0ZXIgb3JkZXIsIGFuZCBwbGFjZSBmaXJzdCBvcnBoYW4gc2VjdGlvbiBhcyB3ZSBkaWQgYmVmb3JlIHRoZQoJMjAwMC0wNC0xMiBwYXRjaC4gIElnbm9yZSB+U0VDX0FMTE9DIHNlY3Rpb25zIHdoZW4gY2hvb3NpbmcgcGxhY2UuCglEb24ndCBjYWxsIG1ha2VfYmZkX3NlY3Rpb24gaGVyZSwgbGV0IHdpbGRfZG9pdCBkbyB0aGUgam9iIGZvciB1cy4KCURvbid0IGJ1aWxkIGEgc3RhdGVtZW50IGxpc3Qgd2hlbiB3ZSdsbCBvbmx5IHRocm93IGl0IGF3YXkuCgkqIGVtdWx0ZW1wbC9hcm1lbGYuZW06IERpdHRvLgoJKiBlbXVsdGVtcGwvcGUuZW06IFNpbWlsYXJseS4KCjIwMDAtMDQtMTQgIEdlb2ZmIEtlYXRpbmcgIDxnZW9mZmtAY3lnbnVzLmNvbT4KCgkqIHNjcmlwdHRlbXBsL2VsZnBwYy5zYzogUmVtb3ZlLgoJKiBlbXVscGFyYW1zL2VsZjMycHBjLnNoOiBVc2UgZWxmLnNjLgoJKiBlbXVscGFyYW1zL2VsZjMybHBwYy5zaDogVXNlIGVsZi5zYy4KCSogZW11bHBhcmFtcy9lbGYzMnBwY2xpbnV4LnNoOiBVc2UgZWxmLnNjLgoJKiBlbXVscGFyYW1zL2VsZjMycHBjc2ltLnNoOiBOZXcgZmlsZS4KCSogZW11bHBhcmFtcy9lbGYzMmxwcGNzaW0uc2g6IE5ldyBmaWxlLgoJKiBNYWtlZmlsZS5hbTogVXBkYXRlIGRlcGVuZGVuY2llcy4gIEFkZCBlbGYzMnBwY3NpbSBhZCBlbGYzMmxwcGNzaW0uCgkoQUxMX0VNVUxBVElPTlMpOiBBZGQgZWxmMzJwcGNzaW0gYWQgZWxmMzJscHBjc2ltLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLnRndCAocG93ZXJwYy0qKTogQWRkIGVsZjMycHBjc2ltIGFuZCBlbGYzMmxwcGNzaW0uCgoyMDAwLTA0LTE0ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogZW11bHRlbXBsL2VsZjMyLmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9wbGFjZV9vcnBoYW4pOiBQcm9jZXNzCgl+U0VDX0FMTE9DIHNlY3Rpb25zIHRvby4gIEluaXQgc3RhcnQgYWRkcmVzcyBvZiBkZWJ1ZyBzZWN0aW9ucy4KCSogZW11bHRlbXBsL2FybWVsZi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fcGxhY2Vfb3JwaGFuKTogRGl0dG8uCgkqIGVtdWx0ZW1wbC9wZS5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fcGxhY2Vfb3JwaGFuKTogRGl0dG8uCglBbHNvIHNldCBhbGwgcmVsb2NhdGVhYmxlIHNlY3Rpb24gc3RhcnQgYWRkcmVzc2VzLgoKMjAwMC0wNC0xMyAgR2VvZmYgS2VhdGluZyAgPGdlb2Zma0BjeWdudXMuY29tPgoKCSogc2NyaXB0dGVtcGwvZWxmLnNjOiBBZGQgc3VwcG9ydCBmb3IgLnNic3MyIGFuZCAuc2RhdGEyIHNlY3Rpb25zLgoJQWRkIG5ldyBCU1NfUExUIHZhcmlhYmxlIGZvciB3aGVuIC5wbHQgbmVlZCBub3QgYmUgY29udGFpbmVkIGluCgl0aGUgZmlsZS4gIE1vdmUgX2V0ZXh0IHNvIHRoYXQgaXQgaXMgYWxzbyBhZnRlciAuZmluaSwgYW5kIHByb3ZpZGUKCWJvdGggZXRleHQgYW5kIF9ldGV4dCB3aXRoIGEgbGVhZGluZyB1bmRlcnNjb3JlLiAgTWFyayB0aGUgc3RhcnQKCWFuZCBlbmQgb2YgLnNic3MuCgoyMDAwLTA0LTEyICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogZW11bHRlbXBsL2VsZjMyLmVtIChzdHJ1Y3Qgb3JwaGFuX3NhdmUpOiBOZXcuCgkoaG9sZF90ZXh0LCBob2xkX3JvZGF0YSwgaG9sZF9kYXRhLCBob2xkX2JzcywgaG9sZF9yZWwsCglob2xkX2ludGVycCk6IE1ha2UgdGhlbSBzdHJ1Y3Qgb3JwaGFuX3NhdmUuCgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1fcGxhY2Vfc2VjdGlvbik6IE1vZGlmeSBmb3IgbmV3IGhvbGRfKi4KCShnbGQke0VNVUxBVElPTl9OQU1FfV9wbGFjZV9vcnBoYW4pOiBBZGQgbmV3IG9ycGhhbiBzZWN0aW9ucyB0bwoJdGhlIGVuZCBvZiB0aGUgcmVsZXZhbnQgc2VjdGlvbiBsaXN0LiAgQWxzbyBhZGQgYXNzb2NpYXRlZCBzZWN0aW9uCglzdGF0ZW1lbnRzIHRvIHRoZSBlbmQgb2YgYW55IHByZXZpb3VzIG9ycGhhbiBzdGF0ZW1lbnRzLgoJKiBlbXVsdGVtcGwvYXJtZWxmLmVtOiBTaW1pbGFybHkuCgkqIGVtdWx0ZW1wbC9wZS5lbTogU2ltaWxhcmx5LgoKMjAwMC0wNC0xMSAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGxkLnRleGluZm8gKFNpbXBsZSBFeGFtcGxlKTogUmVtb3ZlIGV4dHJhbmVvdXMgcGFyYWdyYXBoLgoKMjAwMC0wNC0wNyAgQW5kcmV3IENhZ25leSAgPGNhZ25leUBiMS5jeWdudXMuY29tPgoKCSogY29uZmlndXJlLmluIChXQVJOX0NGTEFHUyk6IFNldCB0byAtVyAtV2FsbCBieSBkZWZhdWx0LiAgQWRkCgktLWVuYWJsZS1idWlsZC13YXJuaW5ncyBvcHRpb24uCgkqIE1ha2VmaWxlLmFtIChBTV9DRkxBR1MsIFdBUk5fQ0ZMQUdTKTogQWRkIGRlZmluaXRpb25zLgoJKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlOiBSZS1nZW5lcmF0ZS4KCjIwMDAtMDQtMDQgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBwby9sZC5wb3Q6IFJlZ2VuZXJhdGUuCgoJKiBsZXhzdXAuYyAoaGVscCk6IFJlc3RvcmUgdHJhbnNsYXRlZCBwYXJ0IG9mIGJ1ZyBzdHJpbmcuCgoJKiBNYWtlZmlsZS5hbSAoTUtERVApOiBVc2UgZ2NjIC1NTSByYXRoZXIgdGhhbiBta2RlcC4KCShERVApOiBRdW90ZSB3aGVuIHBhc3NpbmcgdmFycyB0byBzdWItbWFrZS4gIEFkZCB3YXJuaW5nIG1lc3NhZ2UKCXRvIGVuZC4KCShERVAxKTogUmV3cml0ZSBmb3IgImdjYyAtTU0iLgoJKENMRUFORklMRVMpOiBBZGQgREVQMi4KCVVwZGF0ZSBkZXBlbmRlbmNpZXMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMC0wNC0wMyAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGxkLmg6ICNpbmNsdWRlICJiaW4tYnVncy5oIgoJKiBsZXhzdXAuYyAoaGVscCk6IFVzZSBSRVBPUlRfQlVHU19UTy4KCjIwMDAtMDMtMjcgIERlbmlzIENoZXJ0eWtvdiAgPGRlbmlzY0BvdmVydGEucnU+CgoJKiBjb25maWd1cmUudGd0IChhdnItKi0qKTogTmV3IHRhcmdldCBzdXBwb3J0LgoJKiBNYWtlZmlsZS5hbTogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2VsZjMyYXZyLnNjOiBOZXcgc2NyaXB0IGZpbGUuCgkqIGVtdWxwYXJhbXMvYXZyMTIwMC5zaDogTmV3IGZpbGUuCgkqIGVtdWxwYXJhbXMvYXZyMjN4eC5zaDogTmV3IGZpbGUuCgkqIGVtdWxwYXJhbXMvYXZyNDQzMy5zaCBOZXcgZmlsZS4KCSogZW11bHBhcmFtcy9hdnI0NHg0LnNoIE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL2F2cjg1eHguc2ggTmV3IGZpbGUuCgkqIGVtdWxwYXJhbXMvYXZybWVnYTEwMy5zaCBOZXcgZmlsZS4KCSogZW11bHBhcmFtcy9hdnJtZWdhMTYxLnNoIE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL2F2cm1lZ2E2MDMuc2ggTmV3IGZpbGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMC0wMy0wOSAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogTWFrZWZpbGUuYW0gKGNoZWNrLURFSkFHTlUpOiBBbHNvIHVuc2V0IExBTkcuCgkqIE1ha2VmaWxlLmluOiBSZWJ1aWxkLgoKMjAwMC0wMy0wNiAgSWFuIExhbmNlIFRheWxvciAgPGlhbkB6ZW1idS5jb20+CgoJKiBsZGZpbGUuYyAobGRmaWxlX3RyeV9vcGVuX2JmZCk6IERvbid0IGNyYXNoIGlmIHdlIHNlZSBhbiBlbXB0eQoJYXJjaGl2ZS4KCjIwMDAtMDMtMDIgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVtdWxwYXJhbXMvZWxmMzJtY29yZS5zaDogSW5jbHVkZSAiZ2V0b3B0LmgiLgoKMjAwMC0wMy0wMSAgSWFuIExhbmNlIFRheWxvciAgPGlhbkB6ZW1idS5jb20+CgoJKiBjb25maWd1cmUudGd0OiBSZW1vdmUgKi0qLWFvdXQsICotKi1jb2ZmLCBhbmQgKi0qLW5ldHdhcmUuCgoyMDAwLTAzLTAxICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbXVscGFyYW1zL21pcHNwZS5zaDogQWRkIFNVQlNZU1RFTSBhbmQgSU5JVElBTF9TWU1CT0xfQ0hBUi4KCSogZW11bHBhcmFtcy9zaHBlLnNoOiBMaWtld2lzZS4KCjIwMDAtMDMtMDEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBwZS1kbGwuYzogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMgYW5kIGFkZCBBVFRSSUJVVEVfVU5VU0VECgl0byB1bnVzZWQgcGFyYW1ldGVycy4KCgkqIGVtdWx0ZW1wbC9wZS5lbTogQWRkICIjaWZkZWYgRExMX1NVUFBPUlQiIGFyb3VuZCBzdGF0aWMKCWZ1bmN0aW9ucyBvbmx5IHVzZWQgYnkgRExMIGNvZGUuCgkoX3BsYWNlX29ycGhhbik6IEluaXRpYWxpc2UgJ2RvbGxhcicuCgoyMDAwLTAzLTAxICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBsZG1haW4uYyAodW5kZWZpbmVkX3N5bWJvbCk6IFRha2Ugb25lIG1vcmUgYXJnLCBmYXRhbCwgdG8KCWluZGljYXRlIGlmIHRoZSB1bmRlZmluZWQgc3ltYm9sIGlzIGEgZmF0YWwgZXJyb3Igb3Igbm90LgoJRG9uJ3QgZGVsZXRlIHRoZSBvdXRwdXQgZmlsZSBpZiAiZmF0YWwiIGlzIGZhbHNlLgoKMjAwMC0wMi0yOSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogTWFrZWZpbGUuYW0gKGNoZWNrLURFSkFHTlUpOiBBbHNvIHBhc3MgTElCUz0iJChMSUJTKSIuCglTZXQgTENfQ09MTEFURSBhbmQgTENfQUxMIHRvIG51bGwgYW5kIGV4cG9ydCB0aGVtLiBJdCBpcyBmb3IKCXNvcnQgd2hpY2ggZXhwZWN0cyB0aGUgQyBsb2NhbGUuCglBZGQgJChMSUJTKSB0byBhbGwgJChIT1NUSU5HX0xJQlMpLgoJKiBNYWtlZmlsZS5pbjogUmVidWlsZC4KCjIwMDAtMDItMjkgIEFsYW4gTW9kcmEgIDxhbGFuQHNwcmkubGV2ZWxzLnVuaXNhLmVkdS5hdT4KCgkqIGVtdWx0ZW1wbC97YWl4LmVtLCBhcm1jb2ZmLmVtLCBhcm1lbGYuZW0sIGFybWVsZl9vYWJpLmVtLAoJYmVvcy5lbSwgZWxmMzIuZW0sIGdlbmVyaWMuZW0sIGdsZDk2MC5lbSwgZ2xkOTYwYy5lbSwgaHBwYWVsZi5lbSwKCWxpbnV4LmVtLCBsbms5NjAuZW0sIG1pcHNlY29mZi5lbSwgc3Vub3MuZW0sIHZhbmlsbGEuZW19CgkobGRfZW11bGF0aW9uX3hmZXJfc3RydWN0KTogQWRkIG1pc3NpbmcgTlVMTCBpbml0aWFsaXNlciBmb3IKCWZpbmRfcG90ZW50aWFsX2xpYnJhcmllcy4KCjIwMDAtMDItMjggIEppbSBCbGFuZHkgIDxqaW1iQHJlZGhhdC5jb20+CgoJKiBsZGdyYW0ueSAoZXhjbHVkZV9uYW1lX2xpc3QpOiBEb24ndCByZXF1aXJlIGEgY29tbWEgdG8gc2VwYXJhdGUKCWxpc3QgZW50cmllczsgdGhlIGxleGVyIGNvbnNpZGVycyBjb21tYXMgdG8gYmUgdmFsaWQgcGFydCBvZiBhCglmaWxlbmFtZSwgc28gaW4gc29tZXRoaW5nIGxpa2UgYGZvbywgYmFyJyB0aGUgY29tbWEgaXMgY29uc2lkZXJlZAoJcGFydCBvZiB0aGUgZmlyc3QgZmlsZW5hbWUsIGBmb28sJy4KCSogbGQudGV4aW5mbzogVXBkYXRlIHNlY3Rpb24gb24gRVhDTFVERV9GSUxFIGxpc3RzLgoKMjAwMC0wMi0yNyAgTG9yZW4gSi4gUml0dGxlICA8bGpyaXR0bGVAYWNtLm9yZz4KCgkqIGNvbmZpZ3VyZS5ob3N0OiBBZGRlZCBIT1NUSU5HX0NSVDAsIEhPU1RJTkdfTElCUyBmb3IKCWhvc3QgImlbMzQ1Nl04Ni0qLWZyZWVic2RlbGYqIi4KCjIwMDAtMDItMjcgIE1hcmsgRWxicmVjaHQgIDxzbm93YmFsbDNAYmlnZm9vdC5jb20+CgoJKiBzY3JpcHR0ZW1wbC9pMzg2Z28zMi5zYzogTW92ZSBtaXNwbGFjZWQgc2VtaWNvbG9ucy4KCjIwMDAtMDItMjUgIElhbiBMYW5jZSBUYXlsb3IgIDxpYW5AemVtYnUuY29tPgoKCSogTWFrZWZpbGUuYW0gKEFMTF9FTVVMQVRJT05TKTogUmVtb3ZlIGVocHBhZWxmLm8uCgkoQUxMXzY0X0VNVUxBVElPTlMpOiBSZW1vdmUgZWVsZjY0aHBwYS5vLgoJKGVlbGY2NGhwcGEuYywgZWhwcGFlbGYuYyk6IFJlbW92ZSB0YXJnZXRzLgoJKiBNYWtlZmlsZS5pbjogUmVidWlsZC4KCjIwMDAtMDItMjUgIEFsZXhhbmRyZSBPbGl2YSAgPG9saXZhQGxzZC5pYy51bmljYW1wLmJyPgoKCSogY29uZmlndXJlLnRndCAodGFyZ19leHRyYV9vZmlsZXMpOiBFbmFibGUgZWxmNjRfc3BhcmMgb24KCUdOVS9MaW51eC9zcGFyYywgYnV0IGtlZXAgdGhlIGRlZmF1bHQgYXMgMzIuCgoJKiBjb25maWd1cmUudGd0OiBFbmFibGUgZWxmNjRfc3BhcmMgb24gU29sYXJpczcrL3NwYXJjLiAgQW5kIG1ha2UKCWl0IGRlZmF1bHQgaWYgc3BhcmN2OSBvciBzcGFyYzY0LgoKMjAwMC0wMi0yNCAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIE1ha2VmaWxlLmFtOiBBZGQgcnVsZXMgdG8gYnVpbGQgZW1pcHNwZS5vIGFuZCBlYXJtcGUuby4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS50Z3Q6IEFkZCB0YXJnZXRzIGZvciBhcm0td2luY2UsIHNoLXBlIGFuZCBtaXBzLXBlLgoKCSogbGRlbXVsLmggKGxkX2VtdWxhdGlvbl94ZmVyX3N0cnVjdCk6IEFkZCBuZXcgZmllbGQ6CglmaW5kX3BvdGVudGlhbF9saWJyYXJpZXMuCgkqIGxkZW11bC5jIChsZGVtdWxfZmluZF9wb3RlbnRpYWxfbGlicmFyaWVzKTogTmV3IGZ1bmN0aW9uLgoKCSogbGRmaWxlLmMgKGxkZmlsZV9vcGVuX2ZpbGVfc2VhcmNoKTogQWxsb3cgZnVuY3Rpb24gdG8gYmUKCWV4cG9ydGVkLgoJKGxkZmlsZV9vcGVuX2ZpbGUpOiBDYWxsIGxkZW11bF9maW5kX3BvdGVudGlhbF9saWJyYXJpZXMuCgkqIGxkZmlsZS5oOiBBZGQgcHJvdG90eXBlIGZvciBsZGZpbGVfb3Blbl9maWxlX3NlYXJjaC4KCgkqIHBlLWRsbC5jOiBBZGQgc3VwcG9ydCBmb3IgQVJNLCBNSVBTIGFuZCBTSCB0YXJnZXRzLgoKCSogZW11bHBhcmFtcy9taXBzcGUuc2g6IE5ldyBmaWxlLiAgUGFyYW1ldGVycyBmb3IgbWlwcy1wZSB0YXJnZXQuCgkqIGVtdWxwYXJhbXMvc2hwZS5zaDogTmV3IGZpbGUuICBQYXJhbWV0ZXJzIGZvciBzaC1wZSB0YXJnZXQuCgoJKiBlbXVsdGVtcGwvcGUuZW06IEFkZCBzdXBwb3J0IGZvciBBUk0sIE1JUFMgYW5kIFNIIERMTHMuCgkoZ2xkX1hfZmluZF9wb3RlbnRpYWxfbGlicmFyaWVzKTogTmV3IGZ1bmN0aW9uLiAgU2VhcmNoIGZvcgoJbGlicmFyaWVzIGNhbGxlZCAiKi5saWIiLgoKCSogc2NyaXB0dGVtcGwvcGUuc2M6IEFkZCAucGRhdGEgc2VjdGlvbi4KCjIwMDAtMDItMjMgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQGN5Z251cy5jb20+CgoJKiBzY3JpcHR0ZW1wbC9lbGZkMTB2LnNjOiBSZW1vdmUgZHluYW1pYyBsaW5raW5nIGhvb2tzLgoJQWRkIGFuZCB1c2UgbWVtb3J5IHJlZ2lvbnMuCgoyMDAwLTAyLTIzICBMaW5hcyBWZXBzdGFzIChsaW5hc0BsaW5hcy5vcmcpCgoJKiBlbXVscGFyYW1zL2VsZjMyaTM3MC5zaCwgc2NyaXB0dGVtcGwvZWxmaTM3MC5zYzogTmV3LgoKCSogTWFrZWZpbGUuYW06IEFkZCBzdXBwb3J0IGZvciBMaW51eC9JQk0gMzcwLgoJKiBjb25maWd1cmUudGd0OiBMaWtld2lzZS4KCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMC0wMi0yMSAgQWxhbiBNb2RyYSAgPGFsYW5Ac3ByaS5sZXZlbHMudW5pc2EuZWR1LmF1PgoKCSogbGRsYW5nLmMgKHByaW50X2lucHV0X3NlY3Rpb24sIHByaW50X2RhdGFfc3RhdGVtZW50LAoJcHJpbnRfcmVsb2Nfc3RhdGVtZW50LCBwcmludF9wYWRkaW5nX3N0YXRlbWVudCwgaW5zZXJ0X3BhZCwKCXNpemVfaW5wdXRfc2VjdGlvbiwgbGFuZ19jaGVja19zZWN0aW9uX2FkZHJlc3NlcywKCWxhbmdfc2l6ZV9zZWN0aW9ucywgbGFuZ19kb19hc3NpZ25tZW50cywgbGFuZ19zZXRfc3RhcnRvZiwKCWxhbmdfb25lX2NvbW1vbik6IENoYW5nZSBgb3BiJyB0byB1bnNpZ25lZC4KCShsYW5nX2RvX2Fzc2lnbm1lbnRzKTogQWxzbyBjaGFuZ2UgYHNpemUnIHRvIHVuc2lnbmVkLgoKMjAwMC0wMi0xNiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAY3lnbnVzLmNvbT4KCgkqIHNjcmlwdHRlbXBsL2VsZi5zYzogUGxhY2UgT1RIRVJfUExUX1JFTE9DX1NFQ1RJT04uCgoyMDAwLTAyLTE2ICBUaW1vdGh5IFdhbGwgIDx0d2FsbEBjeWdudXMuY29tPgoKCSogbXJpLmMgKG1yaV9kcmF3X3RyZWUpOiBBZGQgZGVmYXVsdCBMTUEgcmVnaW9uIGFyZ3VtZW50IHRvIGNhbGwKCXRvIGxhbmdfbGVhdmVfb3V0cHV0X3NlY3Rpb25fc3RhdGVtZW50LgoJKiBsZGxhbmcuaDogVXBkYXRlIHByb3RvdHlwZXMgd2l0aCBMTUEgcmVnaW9uIGFyZ3VtZW50cy4KCSogbGRsYW5nLmMgKGxhbmdfc2l6ZV9zZWN0aW9ucyk6IEVuY2Fwc3VsYXRlIHJlZ2lvbiBib3VuZHMKCWNoZWNraW5nIGluIG9zX2NoZWNrX3JlZ2lvbiBjYWxsLgoJKG9zX2NoZWNrX3JlZ2lvbik6IE5ldyBmdW5jdGlvbi4KCShsYW5nX291dHB1dF9zZWN0aW9uX3N0YXRlbWVudF9sb29rdXApOiBJbml0aWFsaXplIGxtYV9yZWdpb24uCgkobGFuZ19sZWF2ZV9vdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnQpOiBBZGQgTE1BIHJlZ2lvbiBhcmd1bWVudC4KCShsYW5nX2xlYXZlX292ZXJsYXkpOiBEaXR0by4KCSogbGRncmFtLnk6IEhhbmRsZSBMTUEgcmVnaW9uIHN5bnRheC4KCSogbGQudGV4aW5mbyAoT3V0cHV0IFNlY3Rpb24gRGVzY3JpcHRpb24pOiBEZXNjcmliZSBMTUEgcmVnaW9uIHVzYWdlLgoJKiBlbXVsdGVtcGwvYXJtZWxmLmVtIChnbGQkcGxhY2Vfb3JwaGFuKTogQWRkIGRlZmF1bHQgdmFsdWUgZm9yCglsbWEgcmVnaW9uIGluIGNhbGwgdG8gbGFuZ19sZWF2ZV9vdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnQuCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHBsYWNlX29ycGhhbik6IEFkZCBkZWZhdWx0IHZhbHVlIGZvcgoJbG1hIHJlZ2lvbiBpbiBjYWxsIHRvIGxhbmdfbGVhdmVfb3V0cHV0X3NlY3Rpb25fc3RhdGVtZW50LgoJKiBlbXVsdGVtcGwvcGUuZW0gKGdsZCRwbGFjZV9vcnBoYW4pOiBBZGQgZGVmYXVsdCB2YWx1ZSBmb3IKCWxtYSByZWdpb24gaW4gY2FsbCB0byBsYW5nX2xlYXZlX291dHB1dF9zZWN0aW9uX3N0YXRlbWVudC4KCgoyMDAwLTAyLTA0ICBUaW1vdGh5IFdhbGwgIDx0d2FsbEByZWRoYXQuY29tPgoKCSogbGRsYW5nLmMgKGxhbmdfY2hlY2tfc2VjdGlvbl9hZGRyZXNzZXMpOiBVc2UgYnl0ZXMgaW5zdGVhZCBvZgoJb2N0ZXRzIHdoZW4gY2FsY3VsYXRpbmcgc2VjdGlvbiBlbmQgYWRkcmVzc2VzLgoKMjAwMC0wMi0wNCAgVGltb3RoeSBXYWxsICA8dHdhbGxAcmVkaGF0LmNvbT4KCgkqIGxkbGFuZy5jIChsYW5nX3NpemVfc2VjdGlvbnMpOiBGaXggdHlwbyBpbiBBTElHTl9OIGludm9jYXRpb24uCgoyMDAwLTAyLTAzICBUaW1vdGh5IFdhbGwgPHR3YWxsQHJlZGhhdC5jb20+CgoJKiBsZGV4cC5jIChmb2xkX25hbWUpOiBNYWtlIFNJWkVPRiBvcGVyYXRvciByZXR1cm4gYnl0ZSBjb3VudCwgbm90CglvY3RldCBjb3VudC4KCSogbGRsYW5nLmMgKHByaW50X2lucHV0X3NlY3Rpb24sIHByaW50X2RhdGFfc3RhdGVtZW50LAoJcHJpbnRfcmVsb2Nfc3RhdGVtZW50LCBwcmludF9wYWRkaW5nX3N0YXRlbWVudCk6IFByaW50IHRhcmdldAoJYWRkcmVzcyB2YWx1ZXMgYW5kIHNlY3Rpb24gc2l6ZXMgYXMgYnl0ZXMsIG5vdCBvY3RldHMuCgkoaW5zZXJ0X3BhZCkgQ2FsY3VsYXRlIHBhZGRpbmcgc2l6ZSBpbiBvY3RldHMsIGFuZCBhZGp1c3QgImRvdCIKCWJ5IGJ5dGVzLgoJKHNpemVfaW5wdXRfc2VjdGlvbikgQWx3YXlzIGFkanVzdCAiZG90IiBieSBieXRlcywgbm90IG9jdGV0cy4KCShsYW5nX2NoZWNrX3NlY3Rpb25fYWRkcmVzc2VzLCBsYW5nX2RvX2Fzc2lnbm1lbnRzKSBBZGp1c3QKCSJkb3QiIGJ5IGJ5dGVzLCBub3Qgb2N0ZXRzLiAgVXNlIHRoZSBsYXJnZXIgb2YgdGhlIGRpcmVjdGl2ZSBzaXplCglvciBvY3RldHNfcGVyX2J5dGUgZm9yIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGFjdHVhbGx5IGFsbG9jYXRlZCBpbgoJdGhlIG91dHB1dCBzZWN0aW9uLgoJKGxhbmdfc2V0X3N0YXJ0b2YpIE1ha2Ugc3VyZSBTVEFSVE9GIHJldHVybnMgYSB0YXJnZXQgYWRkcmVzcy4KCShsYW5nX29uZV9jb21tb24pIFJlY29yZCBzaXplIGNoYW5nZXMgaW4gb2N0ZXRzLgoJKGxhbmdfYWJzX3N5bWJvbF9hdF9lbmRfb2YpIFNlY3Rpb24gZW5kIHN5bWJvbCdzIHZhbHVlIGlzCglyZWNvcmRlZCBpbiB0YXJnZXQgYnl0ZXMuCgkqIGxkLnRleGluZm86IFVwZGF0ZWQgZGVzY3JpcHRpb24gb2YgQllURSwgU0hPUlQsIExPTkcsIGV0Yy4KCXRvIGJlIGNsZWFyIGFib3V0IGJlaGF2aW9yIHdoZW4gYW4gb2N0ZXQgaXMgc21hbGxlciB0aGFuIG9uZSBieXRlLgoKMjAwMC0wMS0yNyAgQWxhbiBNb2RyYSAgPGFsYW5Ac3ByaS5sZXZlbHMudW5pc2EuZWR1LmF1PgoKCSogbGRjcmVmLmMgKG91dHB1dF9jcmVmKTogRG9uJ3QgcGFzcyBtZXNzYWdlIHN0cmluZ3MgdG8gcHJpbnRmCglhcyBmb3JtYXQgYXJnLgoJVXBkYXRlIGNvcHlyaWdodC4KCgkqIGxkbWlzYy5jICh2ZmluZm8pOiBTYW1lIGhlcmUuCglVcGRhdGUgY29weXJpZ2h0LgoKMjAwMC0wMS0yMyAgQWxhbiBNb2RyYSAgPGFsYW5Ac3ByaS5sZXZlbHMudW5pc2EuZWR1LmF1PgoKCSogZW11bHRlbXBsL3thcm1jb2ZmLmVtLGFybWVsZi5lbSxhcm1lbGZfb2FiaS5lbSxiZW9zLmVtLAoJZ2VuZXJpYy5lbSxnbGQ5NjAuZW0sZ2xkOTYwYy5lbSxocHBhZWxmLmVtLGxpbnV4LmVtLGxuazk2MC5lbSwKCW1pcHNlY29mZi5lbSxzdW5vcy5lbSx2YW5pbGxhLmVtfSAobGRfZW11bGF0aW9uX3hmZXJfc3RydWN0KToKCUFkZCBtaXNzaW5nIE5VTEwgaW5pdGlhbGlzZXJzLCBhbmQgY29tbWVudHMuCgoyMDAwLTAxLTIxICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogbGRsYW5nLmMgKGxhbmdfc2l6ZV9zZWN0aW9ucyk6IEZpeCB0eXBvIGluIGNvbW1lbnQuCgoyMDAwLTAxLTE4ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBsZGxhbmcuYyAobGFuZ19zaXplX3NlY3Rpb25zKTogQWxzbyB1cGRhdGUgdGhlIGN1cnJlbnQKCWFkZHJlc3Mgb2YgYSByZWdpb24gaWYgdGhlIFNFQ19ORVZFUl9MT0FEIGJpdCBpcyBub3Qgc2V0LgoKMjAwMC0wMS0xMCAgUGhpbGlwIEJsdW5kZWxsICA8cGJAZnV0dXJldHYuY29tPgoKCSogY29uZmlndXJlLnRndCAoYXJtKi0qLWNvbml4Kik6IE5ldyB0YXJnZXQuCgoyMDAwLTAxLTA3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogbGQudGV4aW5mbyAoT3B0aW9ucyk6IFJlbWluZCB1c2VycyB0byBwcmVjZWVkIGxpbmtlciBjb21tYW5kCglsaW5lIHN3aXRjaGVzIHdpdGggLVdsLCAob3Igd2hhdGV2ZXIgaXMgYXBwcm9wcmlhdGUpIGlmIGl0IGlzCgliZWluZyBpbnZva2VkIGJ5IGEgY29tbnBpbGVyIGRyaXZlciBwcm9ncmFtLgoJRml4IGRlc2NyaXB0aW9uIG9mIHRoZSBiZWhhdmlvdXIgb2YgdGhlIC1uIGNvbW1hbmQgbGluZSBzd2l0Y2guCgoyMDAwLTAxLTA1ICBDYXRoZXJpbmUgTW9vcmUgIDxjbG1AY3lnbnVzLmNvbT4KCgkqIGxkLmggKHdpbGRjYXJkX3NwZWMpOiAgQ2hhbmdlIGV4Y2x1ZGVfbmFtZSB0byBleGNsdWRlX25hbWVfbGlzdC4KCShuYW1lX2xpc3QpOiBOZXcuCgkqIGxkLnRleGluZm8gKEVYQ0xVREVfRklMRSk6IFVwZGF0ZSBkb2N1bWVudGF0aW9uLgoJKiBsZGdyYW0ueSAod2lsZGNhcmRfc3BlYyk6IFN1cHBvcnQgYSBsaXN0IG9mIGV4Y2x1ZGVkX2ZpbGVzLgoJKGV4Y2x1ZGVfbmFtZV9saXN0KTogTmV3LgoJbGRsYW5nLmMgKHdhbGtfd2lsZF9zZWN0aW9uKTogU3VwcG9ydCBsaXN0IG9mIGV4Y2x1ZGVkIGZpbGVzLgoJKHByaW50X3dpbGRfc3RhdGVtZW50KTogTGlrZXdpc2UuCgkobGFuZ19hZGRfd2lsZCk6IExpa2V3aXNlLgoJKiBsZGxhbmcuaCAobGFuZ193aWxkX3N0YXRlbWVudF90eXBlKTogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2VsZi5zYyAoT1RIRVJfRVhDTFVERV9GSUxFUyk6IFN1cHBvcnQuCgoyMDAwLTAxLTA0ICBNdW1pdCBLaGFuICA8a2hhbkB4cmF5bGl0aC53aXNjLmVkdT4KCgkqIHBlLWRsbC5jIChwZV9kbGxfd2Fybl9kdXBfZXhwb3J0cyk6IE5ldyB2YXJpYWJsZS4KCShwcm9jZXNzX2RlZl9maWxlKTogVXNlLgoJKHBlX2RsbF9jb21wYXRfaW1wbGliKTogTmV3IHZhcmlhYmxlLgoJKG1ha2Vfb25lKTogVXNlLgoKCSogcGUtZGxsLmg6IEFkZCBleHBvcnRzIG9mIHBlX2RsbF93YXJuX2R1cF9leHBvcnRzIGFuZAoJcGVfZGxsX2NvbXBhdF9pbXBsaWIuCgoJKiBlbXVsdGVtcGwvcGUuZW0gKGxvbmdvcHRzKTogQWRkIHdhcm4tZHVwbGljYXRlLWV4cG9ydHMgYW5kCgljb21wYXQtaW1wbGliIG9wdGlvbnMuCgkoZ2xkXyR7RU1VTEFUSU9OX05BTUV9X2xpc3Rfb3B0aW9ucyk6IExpc3QgbmV3IG9wdGlvbnMuCgkoZ2xkXyR7RU1VTEFUSU9OX05BTUV9X3BhcnNlX2FyZ3MpOiBIYW5kbGUuCgoJKiBwZS1kbGwuYyAocGVfZGxsX2dlbmVyYXRlX2ltcGxpYik6IFVzZSB0aGUgY29ycmVjdCBuYW1lIGZvciBvdXRwdXQKCWRsbC4KCgkqIGRlZmZpbGVwLnkgKG9wdF9uYW1lKTogQWxsb3cgIi4iIGluIG5hbWUuCgpGb3Igb2xkZXIgY2hhbmdlcyBzZWUgQ2hhbmdlTG9nLTk4OTkKDApMb2NhbCBWYXJpYWJsZXM6Cm1vZGU6IGNoYW5nZS1sb2cKbGVmdC1tYXJnaW46IDgKZmlsbC1jb2x1bW46IDc0CnZlcnNpb24tY29udHJvbDogbmV2ZXIKRW5kOgo=