MjAwOC0xMi0yMyAgSm9uIEJlbmlzdG9uIDxqb25AYmVuaXN0b24uY29tPgoKCSogTkVXUzogUmVjb3JkIHRoYXQgc3VwcG9ydCBmb3IgTE0zMiBoYXMgYmVlbiBhZGRlZC4KCSogTWFrZWZpbGUuYW06IEFkZCBMTTMyIG9iamVjdCBmaWxlcyBhbmQgZGVwZW5kZW5jaWVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLmluOiBJbmRpY2F0ZSBMTTMyIHVzZXMgY2dlbi4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmUudGd0OiBBZGQgTE0zMiB0YXJnZXQuCgkqIGNvbmZpZy90Yy1sbTMyLmM6IE5ldyBmaWxlLgoJKiBjb25maWcvdGMtbG0zMi5oOiBOZXcgZmlsZS4KCSogZG9jL01ha2VmaWxlLmFtOiBBZGQgYy1sbTMyLnRleGkgdG8gQ1BVX0RPQ1MuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZG9jL2FsbC50ZXhpOiBBZGQgTE0zMiBhcyBDUFUgb2YgaW50ZXJlc3QuCgkqIGRvYy9hcy50ZXhpbmZvOiBBZGQgTE0zMiBkZXBlbmRlbnQgZmVhdHVyZXMgbGluay4KCSogZG9jL2MtbG0zMi50ZXhpOiBOZXcgZmlsZS4KCjIwMDgtMTItMjMgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKG1hdGNoX3RlbXBsYXRlKTogQ2hhbmdlZCB0byByZXR1cm4KCSBjb25zdCB0ZW1wbGF0ZSAqLiAgSGFuZGxlIGkuc3dhcF9vcGVyYW5kIGZvciAzIG9wZXJhbmRzLgoJIChidWlsZF92ZXhfcHJlZml4KTogVGFrZSBjb25zdCB0ZW1wbGF0ZSAqLiAgU3dhcCBvcGVyYW5kIGZvcgoJIDItYnl0ZSBWRVggcHJlZml4IGlmIHBvc3NpYmxlLgoJIChtZF9hc3NlbWJsZSk6IFVwZGF0ZWQuCgkgKGJ1aWxkX21vZHJtX2J5dGUpOiBIYW5kbGUgUmVnTWVtIGJpdCBmb3IgU1NFMkFWWC4KCjIwMDgtMTItMjMgIEFuYXRvbHkgU29rb2xvdiAgPGFlc29rQHBvc3QucnU+CgoJKiBjb25maWcvdGMtYXZyLmMgKG1jdV90eXBlcyk6IEFkZCBhdHRpbnk4NywgYXR0aW55MzI3LCBhdG1lZ2E0aHZkLAoJYXRtZWdhOGh2ZCwgYXRtZWdhMTZodmIsIGF0bWVnYTMyaHZiLCBhdG1lZ2E2NGMxLCBhdG1lZ2ExNm0xLAoJYXRtZWdhNjRtMSwgYXRtZWdhMzJ1NiwgYXRtZWdhMTI4cmZhMSwgIGF0OTBwd204MSwgYXQ5MHNjcjEwMCwKCW0zMDAwZiwgbTMwMDBzIGFuZCBtMzAwMWIgZGV2aWNlcy4KCSogZG9jL2MtYXZyLnRleGk6IExpa2V3aXNlLgoKMjAwOC0xMi0yMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIE5FV1MgOlJlbW92ZSBtZW50aW9uIG9mIFNUVF9JRlVOQyBzdXBwb3J0LgoJKiBjb25maWcvb2JqLWVsZi5jIChvYmpfZWxmX3R5cGUpOiBSZW1vdmUgU1RUX0lGVU5DIHN1cHBvcnQuCgkqIGRvYy9hcy50ZXhpbmZvOiBSZW1vdmUgbWVudGlvbiBvZiBTVFRfSUZVTkMgc3VwcG9ydC4KCjIwMDgtMTItMjEgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogY29uZmlnL3RjLWNyaXMuYyAoc19jcmlzX2R0cG9mZik6IE5ldyBmdW5jdGlvbi4KCShtZF9wc2V1ZG9fdGFibGUpOiBBZGQgImR0cG9mZmQiLgoKMjAwOC0xMi0yMCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAocGFyc2VfaW5zbik6IE9wdGltaXplICIucyIgaGFuZGxpbmcuCgoyMDA4LTEyLTIwICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChfaTM4Nl9pbnNuKTogQWRkIHN3YXBfb3BlcmFuZC4KCShwYXJzZV9pbnNuKTogSGFuZGxlICIucyIuCgkobWF0Y2hfdGVtcGxhdGUpOiBIYW5kbGUgc3dhcF9vcGVyYW5kLgoKCSogZG9jL2MtaTM4Ni50ZXhpOiBEb2N1bWVudCAucyBzdWZmaXguCgoyMDA4LTEyLTIwICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGNvbmZpZy90Yy1jcmlzLmMgKGNyaXNfcHJvY2Vzc19pbnN0cnVjdGlvbik6IEhhbmRsZQoJQkZEX1JFTE9DX0NSSVNfMzJfSUUsIGluIHRoZSB0ZXN0IHdoZXRoZXIgdGhlIHJlbG9jYXRpb24gZml0cy4KCShnZXRfM29wX29yX2RpcF9wcmVmaXhfb3ApOiBIYW5kbGUgVExTL1BJQyBkZWNvcmF0aW9uIGZvciB0aGUKCSJkb3VibGUgaW5kaXJlY3QiIGFkZHJlc3NpbmcgbW9kZS4KCShjcmlzX2dldF9yZWxvY19zdWZmaXgpOiBBZGQgZW50cnkgZm9yIDpJRSBmb3IgQkZEX1JFTE9DX0NSSVNfMzJfSUUuCgkoY3Jpc19udW1iZXJfdG9faW1tLCB0Y19nZW5fcmVsb2MpOiBIYW5kbGUgQkZEX1JFTE9DX0NSSVNfMzJfSUUuCgoyMDA4LTEyLTE4ICBSYWxmIFdpbGRlbmh1ZXMgIDxSYWxmLldpbGRlbmh1ZXNAZ214LmRlPgoKCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwOC0xMi0wOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAoYnVpbGRfbW9kcm1fYnl0ZSk6IFJlbW92ZSBhbiBleHRyYSBibGFuawoJbGluZS4KCjIwMDgtMTItMDQgIEJlbiBFbGxpc3RvbiAgPGJqZUBhdS5pYm0uY29tPgoKCSogY29uZmlnL3RjLXBwYy5jIChwYXJzZV9jcHUpOiBSZW1vdmUgYm9va2U2NCBzdXBwb3J0LiBVcGRhdGUKCXVzYWdlIHN0cmluZ3MuCgkocHBjX3NldHVwX29wY29kZXMpOiBMaWtld2lzZSwgcmVtb3ZlIGJvb2tlNjQgc3VwcG9ydC4KCSogZG9jL2MtcHBjLnRleGkgKFBvd2VyUEMtT3B0cyk6IFJlbW92ZSAtbWJvb2tlMzIgYW5kIC1tYm9va2U2NC4KCSogZG9jL2FzLnRleGluZm8gKE92ZXJ2aWV3KTogTGlrZXdpc2UuCgoyMDA4LTEyLTA0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZG9jL2FzLnRleGluZm8gKFR5cGUpOiBSZXdvcmQgZGVzY3JpcHRpb24gb2YgU1RUX0lGVU5DIHR5cGUuCgoyMDA4LTEyLTAzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL29iai1lbGYuYyAob2JqX2VsZl90eXBlKTogQWRkIHN1cHBvcnQgZm9yIFNUVF9JRlVOQyB0eXBlLgoJKiBkb2MvYXMudGV4aW5mbzogRG9jdW1lbnQgbmV3IGZlYXR1cmUuCgkqIE5FV1M6IE1lbnRpb24gbmV3IGZlYXR1cmUuCgoyMDA4LTExLTI5ICBLYWkgVGlldHogIDxrYWkudGlldHpAb25ldmlzaW9uLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKGkzODZfdGFyZ2V0X2Zvcm1hdCk6IEZvciBjb2ZmIGZsYXZvdXIgaW4gVEVfUEVQCgl1c2UgInBlLWkzODYiIGZvciAzMi1iaXQuCgoyMDA4LTExLTI4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIE1ha2VmaWxlLmFtIChlaG9wdC5vKTogQWRkIHN0cnVjLXN5bWJvbC5oLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZWQuCgkqIGVob3B0LmM6IEluY2x1ZGUgc3RydWMtc3ltYm9sLmguCgkoY2hlY2tfZWhfZnJhbWUpOiBGb3IgdmVyeSBzbWFsbCBPX2NvbnN0YW50IERXX0NGQV9hZHZhbmNlX2xvYzQKCWNyZWF0ZSBjb3JyZWN0IERXX0NGQV9hZHZhbmNlX2xvYy4gIEhhbmRsZSBPX3N1YnRyYWN0IG9ubHkKCWZvciBjb2RlIGFsaWdubWVudCBmYWN0b3IgMSwgb3RoZXJ3aXNlIGhhbmRsZSBPX2RpdmlkZSBvcgoJT19yaWdodF9zaGlmdCBvZiBPX3N1YnRyYWN0IGFuZCBPX2NvbnN0YW50LgoJKGVoX2ZyYW1lX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogQWx3YXlzIGRpdmlkZSBieSBjYS4KCShlaF9mcmFtZV9jb252ZXJ0X2ZyYWcpOiBMaWtld2lzZS4KCjIwMDgtMTEtMjggIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJKiBkdzJnZW5jZmkuYyAob3V0cHV0X2NmaV9pbnNuKTogU2NhbGUgRFdfQ0ZBX2FkdmFuY2VfbG9jMSwKCURXX0NGQV9hZHZhbmNlX2xvYzIgYW5kIERXX0NGQV9hZHZhbmNlX2xvYzQgb3V0cHV0cy4KCjIwMDgtMTEtMjggIEpvc2h1YSBLaW5hcmQgIDxrdW1iYUBnZW50b28ub3JnPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoaGlsb19pbnRlcmxvY2tzKTogSGFuZGxlIENQVV9SMTQwMDAsIENQVV9SMTYwMDAuCgkobWlwc19jcHVfaW5mb190YWJsZSk6IEFkZCByMTQwMDAsIHIxNjAwMC4KCSogZG9jL2MtbWlwcy50ZXhpOiBBZGQgZW50cmllcyBmb3IgMTQwMDAsIDE2MDAwLgoKMjAwOC0xMS0yNyAgTSBSIFN3YW1pIFJlZGR5IDxNUi5Td2FtaS5SZWRkeUBuc2MuY29tPgoKCSogY29uZmlnL3RjLWNyMTYuaCAoR0xPQkFMX09GRlNFVF9UQUJMRV9OQU1FKTogRGVmaW5lZAoJKiBjb25maWcvdGMtY3IxNi5jIChtZF9wc2V1ZG9fdGFibGUpOiBBZGQgIjRieXRlIiBkaXJlY3RpdmUgdG8KCW1kX3BzZXVkb190YWJsZSBhbmQgYWNjZXB0IEBjIHByZWZpeCwgc2FtZSBhcyBsb25nIGRpcmVjdGl2ZS4KCShjcjE2X2NvbnNfZml4X25ldyk6IEluaXRpYWxpemUgcnR5cGUgdG8gQkZEX1JFTE9DX1VOVVNFRC4KCSh0Y19nZW5fcmVsb2MpOiBEZWNsYXJlIGEgdmFyaWFibGUgb2YgdHlwZSBiZmRfcmVsb2NfY29kZV9yZWFsX3R5cGUKCWFuZCBzZXQgaXQgZm9yIEdPVCByZWxhdGVkIHJlbG9jYXRpb25zLgoJKG1kX3VuZGVmaW5lZF9zeW1ib2wpOiBEZWZpbmVkCgkocHJvY2Vzc19sYWJlbF9jb25zdGFudCk6IEFkZGVkIGNoZWNrcyBmb3IgR09UL2dvdCBhbmQgY0dPVC9jR09UCglwcmVmaXhlcyB3aXRoIGNvbnN0YW50IGxhYmVsIGFuZCBzZXQgdGhlIGFwcHJvcHJpYXRlIHJlbG9jYXRpb24gdHlwZS4KCSogZG9jL2MtY3IxNi50ZXhpIChjcjE2LW9wZXJhbmQgc3BlY2lmaWVycyk6IEFkZCBnb3QvR09UIGFuZCBjZ290L2NHT1QuCgoyMDA4LTExLTI2ICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1tMzJjLmMgKG1kX3BzZXVkb190YWJsZSk6IEFkZCBzdXBwb3J0IGZvciAubG9jIGV0IGFsLgoKMjAwOC0xMS0yNSAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbTMyYy5jIChtZF9jb252ZXJ0X2ZyYWcpOiBGaXggQURKTlogcmVsb2MgbWF0aC4KCjIwMDgtMTEtMjEgIFN0ZXJsaW5nIEF1Z3VzdGluZSAgPHN0ZXJsaW5nQHRlbnNpbGljYS5jb20+CgoJKiBjb25maWcvdGMteHRlbnNhLmMgKGNoZWNrX3QxX3QyX3JlYWRzX2FuZF93cml0ZXMpOiBDYWxsCgl4dGVuc2Ffc3RhdGVfaXNfc2hhcmVkX29yIHRvIGFsbG93IG11bHRpcGxlIG9wY29kZXMgd2l0aGluIGEKCXNpbmdsZSBGTElYIGJ1bmRsZSB0byB3cml0ZSB0byB0aGVzZSBzcGVjaWFsIHN0YXRlcy4KCjIwMDgtMTEtMTkgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogY29uZmlnL3RjLWNyaXMuYyAoY3Jpc19udW1iZXJfdG9faW1tKTogQXBwbHkgU19TRVRfVEhSRUFEX0xPQ0FMCglvbiBzeW1ib2xzIGluIFRMUyByZWxvY3MuCgoyMDA4LTExLTE5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZG9jL2ZkbC50ZXhpOiBVcGRhdGUgdG8gdjEuMwoJKiBkb2MvYXMudGV4aW5mbzogQ2hhbmdlIGxpY2Vuc2UgdG8gdjEuMy4KCjIwMDgtMTEtMTggIENhdGhlcmluZSBNb29yZSAgPGNsbUBjbTAwcmUuY29tPgoKCSogY29uZmlnL3RjLWFybS5jIChuZW9uX3R5cGVfbWFzayk6IFJlbnVtYmVyLgoJKHR5cGVfY2hrX29mX2VsX3R5cGUpOiBIYW5kbGUgRl9GMTYuCgkobmVvbl9jdnRfZmxhdm91cik6IFJlY29nbml6ZSBoYWxmLXByZWNpc2lvbiBjb252ZXJzaW9ucy4KCShkb19uZW9uX2N2dCk6IE5ldyBzaGFwZXMgTlNfUUQgYW5kCglOU19EUS4gIEVuY29kZSBoYWxmLXByZWNpc2lvbiBjb252ZXJzaW9ucy4KCShkb19uZW9uX2N2dHQpOiBFbmNvZGUgdGhlIFQgYml0LgoJKGFzbV9vcGNvZGVfaW5zbnMpOiB2Y3Z0LCB2Y3Z0dCBzdXBwb3J0LgoJKGFybV9vcHRpb25fY3B1X3ZhbHVlKTogQWRkIG5lb24tZnAxNiBzdXBwb3J0LgoKMjAwOC0xMS0xNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGFzLmMgKHBhcnNlX2FyZ3MpOiBVcGRhdGUgY29weXJpZ2h0IHllYXIuCgoyMDA4LTExLTE0ICBNYXQgSG9zdGV0dGVyICA8bWF0QGxjcy5taXQuZWR1PgoKCSogcmVhZC5jIChlbWl0X2V4cHIpOiBHcm93IGZyYWcgYmVmb3JlIGZpbGxpbmcgaXQgc28gdGhhdAoJZG90X3ZhbHVlIHJlbWFpbnMgdmFsaWQuCgoyMDA4LTExLTE0ICBQZXRlciBKYW5zZW4gIDxwd2phbnNlbkB5YWhvby5jb20+CgoJUFIgNzAyNgoJKiBjb25maWcvdGMtYXJtLmM6IEVuc3VyZSB0aGF0IGFsbCB1c2VzIG9mIGFzX2JhZCBoYXZlIGEKCWZvcm1hdHRpbmcgc3RyaW5nLgoKMjAwOC0xMS0xMiAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBjb25maWcvdGMtY3Jpcy5jIChjcmlzX251bWJlcl90b19pbW0pOiBFeGNlcHQgZm9yCglCRkRfUkVMT0NfTk9ORSwgYWx3YXlzIHNldCBjb250ZW50cy4gIFdoZXJlIHByZXZpb3VzbHkgdGhpcyB3YXMKCXNraXBwZWQsIHNldCBjb250ZW50cyB0byAwLgoKCVBSIGdhcy83MDI1CgkqIGlucHV0LXNjcnViLmMgKGlucHV0X3NjcnViX2luY2x1ZGVfc2IpOiBNYWtlIHRoZSBwb3NpdGlvbgoJYWZ0ZXIgdGhlIGlucHV0IGhhdmUgZGVmaW5lZCBjb250ZW50cywgYSAwIGNoYXJhY3Rlci4KCgkqIGNvbmZpZy90Yy1jcmlzLmMgKGNyaXNfcmVsYXhfZnJhZyk6IEFkZCBtaXNzaW5nIGNhc2UgZm9yCglFTkNPREVfUkVMQVggKFNUQVRFX0NPTkRfQlJBTkNIX1BJQywgU1RBVEVfRFdPUkQpLgoKCVBSIGdhcy83MDIwCgkqIHJlYWQuYyAocmVhZF9hX3NvdXJjZV9maWxlKTogUmVhcnJhbmdlIGV2YWx1YXRpb24gb3JkZXIgd2hlbgoJbG9va2luZyBmb3IgJz0nIHRvIGF2b2lkIGNvbmRpdGlvbmFsIG9uIHVuZGVmaW5lZCBjb250ZW50cyBvZgoJaW5wdXRfbGluZV9wb2ludGVyWzFdLgoKMjAwOC0xMS0wNiAgQWRhbSBOZW1ldCAgPGFuZW1ldEBjYXZpdW1uZXR3b3Jrcy5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChDT1BfSU5TTik6IENoYW5nZSBsb2dpYyB0byBhbHdheXMgcmV0dXJuIGZhbHNlCglmb3IgRlAgaW5zdHJ1Y3Rpb25zLgoKMjAwOC0xMS0wNiAgQ2hhby15aW5nIEZ1ICA8ZnVAbWlwcy5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jICh2YWxpZGF0ZV9taXBzX2luc24pOiBBZGQgY2FzZSAnMScuCgkobWlwc19pcCk6IEFkZCBjYXNlICcxJyB0byBwcm9jZXNzIHN5bmMgdHlwZS4KCjIwMDgtMTEtMDYgIEpvZWwgU2hlcnJpbGwgPGpvZWwuc2hlcnJpbGxAb2FyY29ycC5jb20+CgoJKiBjb25maWd1cmUudGd0OiBBZGQgbTMyYy0qLXJ0ZW1zKiBhbmQgbTMyci0qLXJ0ZW1zKi4KCjIwMDgtMTEtMDQgIFN0ZXJsaW5nIEF1Z3VzdGluZSAgPHN0ZXJsaW5nQHRlbnNpbGljYS5jb20+CgoJKiBjb25maWcvdGMteHRlbnNhLmMgKHRpbnNuX2NoZWNrX2FyZ3VtZW50cyk6IENoZWNrIGZvciBtdWx0aXBsZQoJd3JpdGVzIHRvIHRoZSBzYW1lIHJlZ2lzdGVyLgoKMjAwOC0xMS0wNCAgU3RlcmxpbmcgQXVndXN0aW5lICA8c3RlcmxpbmdAdGVuc2lsaWNhLmNvbT4KCgkqIGNvbmZpZy90Yy14dGVuc2EuYyAoeHRlbnNhX2pfb3Bjb2RlKTogTmV3LgoJKHhnX2luc3RydWN0aW9uX21hdGNoZXNfb3B0aW9uX3Rlcm0pOiBIYW5kbGUgIkZSRUVSRUciIG9wdGlvbi4KCSh4Z19idWlsZF90b19pbnNuKTogTGlrZXdpc2UuICBVcGRhdGUgcmVuYW1lZCB0bHNfcmVsb2MgcmVmZXJlbmNlLgoJKG1kX2JlZ2luKTogSW5pdGlhbGl6ZSB4dGVuc2Ffal9vcGNvZGUuCgkobWRfYXNzZW1ibGUpOiBVcGRhdGUgcmVuYW1lZCB0bHNfcmVsb2MgcmVmZXJlbmNlLiAgSGFuZGxlICJqLmwiLgoJKHhnX2Fzc2VtYmxlX3ZsaXdfdG9rZW5zKTogU2F2ZSBmcmVlX3JlZyBpbmZvIGluIHRoZSBmcmFnLgoJKHRpbnNuX2ltbWVkX2Zyb21fZnJhZyk6IEdldCBmcmVlX3JlZyBpbmZvIGJhY2sgb3V0IG9mIHRoZSBmcmFnLgoJKHZpbnNuX3RvX2luc25idWYpOiBVcGRhdGUgcmVuYW1lZCB0bHNfcmVsb2MgcmVmZXJlbmNlcy4KCURpc3Rpbmd1aXNoIGV4dHJhIGFyZ3VtZW50IGZvciAiRlJFRVJFRyIgZnJvbSBleHRyYSBUTFMgYXJndW1lbnQuCgkqIGNvbmZpZy90Yy14dGVuc2EuaCAoc3RydWN0IHh0ZW5zYV9mcmFnX3R5cGUpOiBBZGQgZnJlZV9yZWcgZmllbGQuCgkqIGNvbmZpZy94dGVuc2EtaXN0YWNrLmggKHN0cnVjdCB0aW5zbl9zdHJ1Y3QpOiBSZW5hbWUgdGxzX3JlbG9jCglmaWVsZCB0byBleHRyYV9hcmcuCgkqIGNvbmZpZy94dGVuc2EtcmVsYXguYyAod2lkZW5fc3BlY19saXN0KTogQWRkIHJ1bGVzIHRvIHJlbGF4ICJqLmwiLgoJKGJ1aWxkX3RyYW5zaXRpb24pOiBIYW5kbGUgIkZSRUVSRUciIG9wZXJhbmQuCgkqIGNvbmZpZy94dGVuc2EtcmVsYXguaCAoZW51bSBvcF90eXBlKTogQWRkIE9QX0ZSRUVSRUcuCgoyMDA4LTEwLTMxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogcG8vaWQucG86IFVwZGF0ZS4KCjIwMDgtMTAtMjQgIE1hY2llaiBXLiBSb3p5Y2tpICA8bWFjcm9AbGludXgtbWlwcy5vcmc+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzX2NwdV9pbmZvX3RhYmxlKTogTW92ZSB0aGUgTUlQUzY0cjIKCWNvbW1lbnQgc28gdGhhdCBCcm9hZGNvbSBTQi0xIGNvcmVzIGFyZSBpbiB0aGUgTUlQUzY0IHNlY3Rpb24uCgoyMDA4LTEwLTIxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWJmaW4uYyAoZ2VuY29kZSwgYWxsb2NhdGUpOiBSZW1vdmUgdW5uZWNlc3NhcnkgY2FzdC4KCSogY29uZmlnL3RjLW5zMzJrLmMgKGJpdF9maXhfbmV3KTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1tNjhrLmMgKG1kX2JlZ2luKTogTGlrZXdpc2UuCgkqIGhhc2guYyAoaGFzaF9pbnNlcnQsIGhhc2hfamFtKTogTGlrZXdpc2UuCgkqIHN5bWJvbHMuYyAoc3ltYm9sX2NyZWF0ZSwgbG9jYWxfc3ltYm9sX21ha2UpOiBMaWtld2lzZS4KCSogZnJhZ3MuYyAoZnJhZ19hbGxvYyk6IExpa2V3aXNlLgoKMjAwOC0xMC0yMCAgSmF5IEtyZWxsICA8amF5LmtyZWxsQGNvcm5lbGwuZWR1PgoKCSogY29uZmlnL2JmaW4tcGFyc2UueTogVXNlIEMgc3R5bGUgY29tbWVudHMuCgkqIGNvbmZpZy90Yy1iZmluLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbTY4ay5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW1pcHMuYzogTGlrZXdpc2UuCgoyMDA4LTEwLTEyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChwcm9jZXNzb3JfdHlwZSk6IE1vdmVkIHRvIHRjLWkzODYuaC4KCShjcHVfYXJjaF90dW5lKTogTWFrZSBpdCBnbG9iYWwuCgkoY3B1X2FyY2hfaXNhKTogTGlrZXdpc2UuCgkoY3B1X2FyY2hfaXNhX2ZsYWdzKTogTGlrZXdpc2UuCgkoaTM4Nl9hbGlnbl9jb2RlKTogQ2hlY2sgZnJhZ1AtPnRjX2ZyYWdfZGF0YS5pc2EsCglmcmFnUC0+dGNfZnJhZ19kYXRhLmlzYV9mbGFncyBhbmQgY3B1X2FyY2hfdHVuZSBpbnN0ZWFkIG9mCgljcHVfYXJjaF9pc2EsIGNwdV9hcmNoX2lzYV9mbGFncyBhbmQgY3B1X2FyY2hfdHVuZSwKCXJlc3BlY3RpdmVseS4KCgkqIGNvbmZpZy90Yy1pMzg2LmggKHByb2Nlc3Nvcl90eXBlKTogTW92ZWQgZnJvbSB0Yy1pMzg2LmMuCgkoY3B1X2FyY2hfdHVuZSk6IE5ldy4KCShjcHVfYXJjaF9pc2EpOiBMaWtld2lzZS4KCShjcHVfYXJjaF9pc2FfZmxhZ3MpOiBMaWtld2lzZS4KCShpMzg2X3RjX2ZyYWdfZGF0YSk6IExpa2V3aXNlLgoJKFRDX0ZSQUdfVFlQRSk6IExpa2V3aXNlLgoJKFRDX0ZSQUdfSU5JVCk6IExpa2V3aXNlLgoKMjAwOC0xMC0wOSAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIGRvYy9hcy50ZXhpbmZvIChQc2V1ZG8gT3BzKTogU3dhcCBvcmRlciBvZiBDb21tIGFuZCBDRkkgbWVudSBlbnRyaWVzLgoJKEFsdG1hY3JvLCBDb21tLCBMb2MsIExvY19tYXJrX2xhYmVscywgTGlzdCwgTVJJLCBQb3BTZWN0aW9uLCBTbGViMTI4KToKCU1vdmVkIGludG8gYWxwaGFiZXRpY2FsIG9yZGVyLgoKMjAwOC0xMC0wOSAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIGRvYy9hcy50ZXhpbmZvIChEb3QpOiBFeHBhbmQgbm8tc3BhY2UtZGlyIGNvbmRpdGlvbmFsIHRvIGluY2x1ZGUKCWEgY29tcGxldGUgc2VudGVuY2UuCgkoUHNldWRvIE9wcyk6IFB1dCBjb25kaXRpb25hbHMgYXJvdW5kIFNraXAgYW5kIFNwYWNlIG1lbnUgZW50cmllcy4KCShMaW5lKTogUmVtb3ZlIGNvbmRpdGlvbmFsIGRlY2xhcmF0aW9uIG9mIExuIG5vZGUgYW5kIHNlY3Rpb24gaGVyZS4KCVB1dCBhb3V0LWJvdXQgZGVzY3JpcHRpb24gaW5zaWRlIHRoZSBuby1saW5lLWRpciBjb25kaXRpb25hbC4KCShTa2lwLCBTcGFjZSk6IFVzZSBhIHNlcGFyYXRlIGNvbmRpdGlvbmFsIGZvciBlYWNoIG5vZGUuCgoyMDA4LTEwLTA5ICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogZG9jL2FzLnRleGluZm8gKFBzZXVkbyBPcHMpOiBSZW1vdmUgbm8tZmlsZS1kaXIgY29uZGl0aW9uYWwgYXJvdW5kCgltZW51IGVudHJ5IGZvciBGaWxlOyByZW1vdmUgdmVyc2lvbi1zcGVjaWZpYyAuZmlsZSBvcGVyYW5kcyBmcm9tIG1lbnUKCWRlc2NyaXB0aW9uLiAgUmVwbGFjZSAiTE5TIGRpcmVjdGl2ZXMiIG1lbnUgZW50cnkgd2l0aCBuZXcgZW50cmllcwoJZm9yICJMb2MiIGFuZCAiTG9jX21hcmtfbGFiZWxzIi4KCShMTlMgZGlyZWN0aXZlcyk6IFNwbGl0IGludG8gc2VwYXJhdGUgbm9kZXMgZm9yIGVhY2ggZGlyZWN0aXZlLgoJKExvYyk6IE5ldyBub2RlIGZvciAubG9jIGRpcmVjdGl2ZS4gIE1lbnRpb24gdGhhdCB0aGlzIGRpcmVjdGl2ZQoJaXMgZm9yIERXQVJGMiBhbmQgYWRkIGEgbWlzc2luZyBhcnRpY2xlLgoJKExvY19tYXJrX2xhYmVscyk6IExpa2V3aXNlIGZvciAubG9jX21hcmtfbGFiZWxzLgoJKEZpbGUpOiBDaGFuZ2UgdGhpcyBub2RlIHRvIGRlc2NyaWJlIGJvdGggdGhlIGRlZmF1bHQgdmVyc2lvbiBhbmQKCXRoZSBEV0FSRjIgdmVyc2lvbiBvZiAuZmlsZS4gIE1vdmUgdGhlIG5vLWZpbGUtZGlyIGNvbmRpdGlvbmFsIHRvCglpbmNsdWRlIG9ubHkgdGhlIGRlZmF1bHQgdmVyc2lvbi4KCjIwMDgtMTAtMDkgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAYWRhY29yZS5jb20+CgoJKiBkdzJnZW5jZmkuYyAoY2ZpX2ZpbmlzaCk6IERlYWwgd2l0aCBtZF9maXhfdXBfZWhfZnJhbWUuCgkqIGNvbmZpZy90Yy1pMzg2LmggKG1kX2ZpeF91cF9laF9mcmFtZSk6IERlZmluZSBvbiBTb2xhcmlzLgoJKGkzODZfc29sYXJpc19maXhfdXBfZWhfZnJhbWUpOiBEZWNsYXJlLgoJKiBjb25maWcvdGMtaTM4Ni5jIChpMzg2X3NvbGFyaXNfZml4X3VwX2VoX2ZyYW1lKTogTmV3IGZ1bmN0aW9uLgoKMjAwOC0xMC0wOSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCglQUiA2OTQ0CgkqIGRvYy9hcy50ZXhpbmZvIChEb2xsYXIgTG9jYWwgTGFiZWxzKTogQ29ycmVjdCBkZXNjcmlwdGlvbiBvZgoJZG9sbGFyIGxvY2FsIGxhYmVscyB0byBzaG93IHRoYXQgdGhlIGNvbG9uIHN1ZmZpeCBpcyBzdGlsbAoJbmVlZGVkLgoKMjAwOC0xMC0wOCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoQUxMX0xJTkdVQVMpOiBBZGQgImlkIi4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBwby9pZC5wbzogTmV3IEluZG9uZXNpYW4gdHJhbnNsYXRpb24uCgoyMDA4LTEwLTA3ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiByZWFkLmMgKHBzZXVkb19zZXQpOiBEb24ndCBhbGxvdyBnbG9iYWwgcmVnaXN0ZXIgc3ltYm9sIG9ubHkKCWlmIFRDX0dMT0JBTF9SRUdJU1RFUl9TWU1CT0xfT0sgaXMgdW5kZWZpbmVkLgoJKiBzeW1ib2xzLmMgKFNfU0VUX0VYVEVSTkFMKTogTGlrZXdpc2UuCgoJKiBjb25maWcvdGMtbW1peC5oIChUQ19HTE9CQUxfUkVHSVNURVJfU1lNQk9MX09LKTogRGVmaW5lZC4KCgkqIGRvYy9pbnRlcm5hbHMudGV4aTogRG9jdW1lbnQgVENfR0xPQkFMX1JFR0lTVEVSX1NZTUJPTF9PSy4KCjIwMDgtMTAtMDYgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBkb2MvYXMudGV4aW5mbyAoTG9jYWwpOiBOZXcgZGVzY3JpcHRpb24gb2YgRUxGIC5sb2NhbCBkaXJlY3RpdmUuCgoyMDA4LTEwLTA2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCVBSIDY5MjYKCSogcmVhZC5jIChnZXRfbGluZV9zYik6IFJlbmFtZWQgdG8gZ2V0X25vbl9tYWNyb19saW5lX3NiLgoJKF9maW5kX2VuZF9vZl9saW5lKTogQWRkIGV4dHJhIHBhcmFtZXRlciBpbmRpY2F0aW5nIGlmIHRoZSBsaW5lIGlzCglpbnNpZGUgYSBtYWNyby4gIElmIGl0IGlzIHRoZW4gZG8gbm90IGFsbG93IHRoZSBAIGNoYXJhY3RlciB0byBiZQoJdHJlYXRlZCBhcyBhIGxpbmUgc2VwYXJhdG9yIGNoYXJhY3Rlci4KCShyZWFkX2Ffc291cmNlKTogVXBkYXRlIHVzZSBvZiBfZmluZF9lbmRfb2ZfbGluZS4KCShmaW5kX2VuZF9vZl9saW5lKTogTGlrZXdpc2UuCgkoc19pcnApOiBVcGRhdGUgdXNlIG9mIGdldF9saW5lX3NiLgoJKHNfbWFjcm8pOiBMaWtld2lzZS4KCShkb19yZXBlYXQpOiBMaWtld2lzZS4KCShnZXRfbGluZV9zYik6IE5ldyBmdW5jdGlvbi4gIExpa2UgdGhlIG9sZCB2ZXJzaW9uIG9mIGdldF9saW5lX3NiCglleGNlcHQgdGhhdCBpdCB0YWtlcyBhbiBleHRyYSBwYXJhbWV0ZXIgaW5kaWNhdGluZyB3aGV0aGVyIHRoZQoJbGluZSBpcyBpbnNpZGUgYSBtYWNyby4KCShnZXRfbWFjcm9fbGluZV9zYik6IE5ldyBmdW5jdGlvbi4KCjIwMDgtMTAtMDQgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogY29uZmlnL3RjLWNyaXMuYzogVXBkYXRlIGFsbCBjb21tZW50cyByZWdhcmRpbmcgZXhwbGljaXQgcmVsb2NhdGlvbnMKCXRvLCBiZXNpZGVzIFBJQywgYWxzbyBpbXBseSBUTFMgb3IgdG8gc2F5ICJyZWxvY2F0aW9uIHNwZWNpZmllciIgb3IKCXNpbWlsYXIuCgkoUkVMT0NfU1VGRklYX0NIQVIpOiBSZW5hbWUgZnJvbSBQSUNfU1VGRklYX0NIQVIuICBDaGFuZ2UgYWxsIGNhbGxlcnMuCgkoY3Jpc19nZXRfcmVsb2Nfc3VmZml4KTogUmVuYW1lIGZyb20gY3Jpc19nZXRfcGljX3N1ZmZpeC4gIENoYW5nZSBhbGwKCWNhbGxlcnMuICBBbHNvIGhhbmRsZSBUTFMgcmVsb2NzLgoJKGNyaXNfZ2V0X3NwZWNpZmllZF9yZWxvY19zaXplKTogUmVuYW1lIGZyb20gY3Jpc19nZXRfcGljX3JlbG9jX3NpemUuCglDaGFuZ2UgYWxsIGNhbGxlcnMuICBBbHNvIGhhbmRsZSBUTFMgcmVsb2NzLgoJKHRscyk6IE5ldyBjb25zdGFudC4KCShjcmlzX3Byb2Nlc3NfaW5zdHJ1Y3Rpb24pOiBDaGVjayBmb3Igbm9uLVBJQyBUTFMgcmVsb2NhdGlvbnMgYW5kCglhZGp1c3QgbWVzc2FnZSB3aGVuIGVtaXR0aW5nIGVycm9yIG1lc3NhZ2UgYWJvdXQgcmVsb2NhdGlvbiBub3QKCWZpdHRpbmcuCgkoZ2V0X2F1dG9pbmNfcHJlZml4X29yX2luZGlyX29wKTogQWxzbyBjaGVjayBmb3IgcmVsb2NhdGlvbiBzdWZmaXgKCXdoZW4gdGxzIGlzIHRydWUuCgkoZ2V0XzNvcF9vcl9kaXBfcHJlZml4X29wKTogRGl0dG8uCgkoY3Jpc19udW1iZXJfdG9faW1tLCB0Y19nZW5fcmVsb2MpOiBIYW5kbGUgVExTIHJlbG9jcyBsaWtlIFBJQyByZWxvY3MuCgoyMDA4LTEwLTAzICBLYXp1IEhpcmF0YSAgPGthenVAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGxpc3RpbmcuYyAoYnVmZmVyX2xpbmUpOiBPcGVuIHRoZSBzb3VyY2UgZmlsZSB3aXRoIEZPUEVOX1JCLgoJTWFudWFsbHkgcHJvY2VzcyBsaW5lIGVuZHMuCgoyMDA4LTA5LTMwICBXZXNsZXkgVy4gVGVycHN0cmEgIDx3ZXNsZXlAdGVycHN0cmEuY2E+CgkgICAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy10aWM0eC5jICh0aWM0eF9nbG9ibCk6IENhbGwgU19TRVRfRVhURVJOQUwgYXMgd2VsbCBhcwoJU19TRVRfU1RPUkFHRV9DTEFTUy4KCjIwMDgtMDktMzAgIFdlc2xleSBXLiBUZXJwc3RyYSAgPHdlc2xleUB0ZXJwc3RyYS5jYT4KCSAgICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29mZmdlbi5jIChjb2ZmX3dyaXRlX3N5bWJvbHMpOiBDaGVjayB0byBzZWUgaWYgYSBzeW1ib2wncyBmbGFncwoJZG8gbm90IG1hdGNoIGl0IGNsYXNzIGFuZCBpZiBuZWNlc3NhcnkgdXBkYXRlIHRoZSBjbGFzcy4KCShudWxsX2Vycm9yX2hhbmRsZXIpOiBOZXcgZnVuY3Rpb24uICBTdXBwcmVzc2VzIHRoZSBnZW5lcmF0aW9uIG9mCgliZmQgZXJyb3IgbWVzc2FnZXMuCgkqIGNvZmY2NC1yczYwMDAuYyAoYmZkX3hjb2ZmX2JhY2tlbmRfZGF0YSk6IFVwZGF0ZSBjb21tZW50LgoKMjAwOC0wOS0zMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDA4LTA5LTI5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZHcyZ2VuY2ZpLmMgKG91dHB1dF9jZmlfaW5zbik6IEZpeCB0eXBvIGluIGludm9jYXRpb24gb2YKCXRjX2NmaV9lbWl0X3BjcmVsX2V4cHIgbWFjcm8uCgoyMDA4LTA5LTI5ICBQZXRlciBPJ0dvcm1hbiAgPHBvZ21hQHRoZXdyaXR0ZW53b3JkLmNvbT4KCSAgICBTdGV2ZSBFbGxjZXkgIDxzamVAY3VwLmhwLmNvbT4KCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZSBmb3IgbmV3IGxpYnRvb2wuCgkqIGFjbG9jYWwubTQ6IERpdHRvLgoJKiBNYWtlZmlsZS5pbjogRGl0dG8uCgkqIGRvYy9NYWtlZmlsZS5pbjogRGl0dG8uCgoyMDA4LTA5LTI5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCVBSIDY4NzgKCSogYXBwLmMgKGRvX3NjcnViX2NoYXJzKTogT25seSBpc3N1ZSB3YXJuaW5ncyBhYm91dCB0aWNrCgljaGFyYWN0ZXJzIGRldGVjdGVkIGluIHN5bWJvbCBzdHJpbmdzIGlmIGhleCB0aWNrcyBhcmUgc3VwcG9ydGVkLgoKMjAwOC0wOS0yOSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGR3MmdlbmNmaS5jIChvdXRwdXRfY2ZpX2luc24pOiBGaXggdHlwbyBpbiBpbnZvY2F0aW9uIG9mCgl0Y19jZmlfZW1pdF9wY3JlbF9leHByIG1hY3JvLgoKMjAwOC0wOS0yOCAgRGFuaWVsIEphY29ib3dpdHogIDxkYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIE5FV1M6IE1lbnRpb24gLmNmaV92YWxfZW5jb2RlZF9hZGRyLgoKMjAwOC0wOS0yNiAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBhZGFjb3JlLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChUQVJHX0VOVl9IRklMRVMpOiBBZGQgY29uZmlnL3RlLXNvbGFyaXMuaC4KCSogTWFrZWZpbGUuaW4gKFRBUkdfRU5WX0hGSUxFUyk6IExpa2V3aXNlLgoJKiBjb25maWd1cmUudGd0IChTb2xhcmlzIHRhcmdldHMpOiBTZXQgZW09c29sYXJpcy4KCSogY29uZmlnL3RlLXNvbGFyaXMuaDogTmV3IGZpbGUuCgoyMDA4LTA5LTI2ICBKaWUgWmhhbmcgIDxqaWUuemhhbmdAYW5hbG9nLmNvbT4KCgkqIGNvbmZpZy9iZmluLXBhcnNlLnkgKGFzbV8xKTogRml4IHJlZHVjZS9yZWR1Y2UgY29uZmxpY3RzLgoKMjAwOC0wOS0yNCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGR3MmdlbmNmaS5jIChEV0FSRjJfQUREUl9TSVpFKTogUHJvdmlkZSBkZWZhdWx0LgoJKHN0cnVjdCBjZmlfaW5zbl9kYXRhKTogQWRkIGVhIG1lbWJlci4KCShDRklfdmFsX2VuY29kZWRfYWRkciwgZG90X2NmaV92YWxfZW5jb2RlZF9hZGRyKTogTmV3LgoJKG91dHB1dF9jZmlfaW5zbik6IEhhbmRsZSBDRklfdmFsX2VuY29kZWRfYWRkci4KCShzZWxlY3RfY2llX2Zvcl9mZGUpOiBEb24ndCBtYXRjaCBDRklfdmFsX2VuY29kZWRfYWRkci4KCSogZG9jL2FzLnRleGluZm8gKC5jZmlfdmFsX2VuY29kZWRfYWRkcik6IERvY3VtZW50LgoKMjAwOC0wOS0yNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglQUiA2OTEzCgkqIGxpc3RpbmcuYyAocHJpbnRfb3B0aW9ucyk6IERvbid0IGNhbGwgZnByaW50ZiB3aXRob3V0IGZvcm1hdCBzdHJpbmcuCgoyMDA4LTA5LTE5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogd3JpdGUuYyAoVENfRk9SQ0VfUkVMT0NBVElPTl9TVUJfTE9DQUwpOiBIZWVkIG1kX3JlZ2lzdGVyX2FyaXRobWV0aWMuCgkoVENfVkFMSURBVEVfRklYX1NVQik6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtZnJ2LmggKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX0xPQ0FMKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1ocHBhLmggKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX0xPQ0FMKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1tbjEwMzAwLmggKFRDX1ZBTElEQVRFX0ZJWF9TVUIpOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXNoLmggKFRDX1ZBTElEQVRFX0ZJWF9TVUIpOiBMaWtld2lzZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9MT0NBTCk6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtc2g2NC5oIChUQ19WQUxJREFURV9GSVhfU1VCKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy14dGVuc2EuaCAoVENfVkFMSURBVEVfRklYX1NVQik6IExpa2V3aXNlLgoJKiBkb2MvaW50ZXJuYWxzLnRleGkgKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX0FCUywKCVRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX0xPQ0FMLCBUQ19WQUxJREFURV9GSVhfU1VCKTogU2hvdyBuZXcgcGFyYW0uCgoJKiB3cml0ZS5jIChtZF9yZWdpc3Rlcl9hcml0aG1ldGljKTogRGVmaW5lLgoJKGZpeHVwX3NlZ21lbnQpOiBBZGp1c3QgVENfRk9SQ0VfUkVMT0NBVElPTl9TVUJfQUJTIGludm9jYXRpb24uCglNb2RpZnkgZXJyb3IgbWVzc2FnZSB3aGVuIHJlZ2lzdGVycyBpbnZvbHZlZC4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9BQlMpOiBIZWVkIG1kX3JlZ2lzdGVyX2FyaXRobWV0aWMuCgkqIGNvbmZpZy90Yy1zaC5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9BQlMpOiBMaWtld2lzZS4KCjIwMDgtMDktMTUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiB3cml0ZS5jIChpbnN0YWxsX3JlbG9jKTogQ29ycmVjdCBFTUlUX1NFQ1RJT05fU1lNQk9MUyB0ZXN0LgoKMjAwOC0wOS0xNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1mcnYuYyAobWRfYXBwbHlfZml4KTogVXNlIGFic19zZWN0aW9uX3N5bSBmb3IKCXJlbG9jcyB3aXRoIG5vIHN5bWJvbC4KCSogY29uZmlnL3RjLW1taXguYyAobWRfYXNzZW1ibGUpOiBNYXJrIGZha2Ugc3ltYm9sIG9uCglCRkRfUkVMT0NfTU1JWF9CQVNFX1BMVVNfT0ZGU0VUIGFzIE9LIGZvciB1c2UgYnkgcmVsb2NzLgoJKG1taXhfbWRfZW5kKTogTGlrZXdpc2UgbWFyayBtbWl4IHJlZyBjb250ZW50cyBzZWN0aW9uIHN5bWJvbC4KCjIwMDgtMDktMTQgIENocmlzIFNtaXRoIDxjaHJpc0B6eGRlc2lnbi5pbmZvPgoKCSogY29uZmlnL3RjLXo4MC5jOiBPcGNvZGUgZ2VuZXJhdGlvbiBvZiBsZCBhLChiYykgYW5kIGxkIGEsKGRlKSB3YXMKCWJyb2tlbiwgYXMgdGhlIG9wY29kZSBvZiBsZCBhLChkZSkgd2FzIGJlaW5nIGVtaXR0ZWQgZm9yIGJvdGguCgoyMDA4LTA5LTEyICBTdGVybGluZyBBdWd1c3RpbmUgIDxzdGVybGluZ0B0ZW5zaWxpY2EuY29tPgoKCSogY29uZmlnL3RjLXh0ZW5zYS5jIChpbml0X29wX3BsYWNlbWVudF9pbmZvX3RhYmxlKTogQWxsb3cgbnVtYmVyIG9mCglvcGVyYW5kcyBlcXVhbCB0byBNQVhfSU5TTl9BUkdTLgoKMjAwOC0wOS0xMSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmluOiBDYWxsIEFDX1NZU19MQVJHRUZJTEUuCgkqIGNvbmZpZy5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwOC0wOS0wOSAgUGV0ZXIgQmVyZ25lciAgPGJlcmduZXJAdm5ldC5pYm0uY29tPgoKCSogY29uZmlnL3RjLXBwYy5jIChwcGNfc2V0dXBfb3Bjb2Rlcyk6IFNpbXBsaWZ5IFBPV0VSNC9OT1BPV0VSNCB0ZXN0LgoJUmVtb3ZlIFBPV0VSNSBhbmQgUE9XRVI2IHRlc3RzLgoKMjAwOC0wOS0wOCAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlLmFuZ2xpbkBucmMtY25yYy5nYy5jYT4KCgkqIGNvbmZpZy90Yy1ocHBhLmMgKGhwcGFfcmVnbmFtZV90b19kdzJyZWdudW0pOiBBZGQgcmVnaXN0ZXIgbmFtZSB0bwoJbnVtYmVyIHN1cHBvcnQgZm9yIDMyLWJpdCB0YXJnZXRzLgoKMjAwOC0wOS0wOCAgVHJpc3RhbiBHaW5nb2xkICA8Z2luZ29sZEBhZGFjb3JlLmNvbT4KCgkqIE5FV1M6IEFkZCBhIG1hcmtlciBmb3IgdGhlIDIuMTkgZmVhdHVyZXMuCgoyMDA4LTA5LTA3ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhPgoKCSogY29uZmlnL3RjLWhwcGEuaCAoRElGRl9FWFBSX09LKTogRGVmaW5lIGZvciBTT00gdGFyZ2V0LiAgUmV2aXNlCgljb21tZW50IHJlZ2FyZGluZyB1c2Ugb2YgZGlmZmVyZW5jZSBleHByZXNzaW9ucy4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9MT0NBTCk6IERlZmluZSB0byAxLgoKCSogZHcyZ2VuY2ZpLmMgKENGSV9ESUZGX0VYUFJfT0spOiBEZWZpbmUgaWYgbm90IGRlZmluZWQuCgkoZG90X2NmaV9wZXJzb25hbGl0eSk6IFVzZSBDRklfRElGRl9FWFBSX09LIGluc3RlYWQgb2YgRElGRl9FWFBSX09LLgoJKGRvdF9jZmlfbHNkYSwgb3V0cHV0X2NpZSwgb3V0cHV0X2ZkZSk6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaHBwYS5oIChDRklfRElGRl9FWFBSX09LKTogRGVmaW5lLgoKMjAwOC0wOS0wNiAgUmljaGFyZCBTYW5kaWZvcmQgIDxyZHNhbmRpZm9yZEBnb29nbGVtYWlsLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmggKERXQVJGMl9GREVfUkVMT0NfU0laRSk6IERlZmluZS4KCjIwMDgtMDktMDMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChwZV9sY29tbV9pbnRlcm5hbCk6IE5ldyBmdW5jdGlvbi4gIEFsbG93cyB0aGUKCWFsaWdubWVudCBmaWVsZCBvZiB0aGUgLmxjb21tIGRpcmVjdGl2ZSB0byBiZSBvcHRpb25hbC4KCShwZV9sY29tbSk6IE5ldyBmdW5jdGlvbi4gIFBhc3MgcGVfbGNvbW1faW50ZXJuYWwgdG8KCXNfY29tbV9pbnRlcm5hbC4KCShtZF9wc2V1ZG9fdGFibGUpOiBJbXBsZW1lbnQgLmxjb21tIGRpcmVjdGl2ZSBmb3IgQ09GRiBiYXNlZAoJdGFyZ2V0cy4KCSogZG9jL2MtaTM4Ni50ZXhpIChpMzg2LURpcmVjdGl2ZXMpOiBOZXcgbm9kZS4gIFVzZWQgdG8gZG9jdW1lbnQKCXRoZSAubGNvbW0gZGlyZWN0aXZlLgoKMjAwOC0wOC0zMCAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlLmFuZ2xpbkBucmMtY25yYy5nYy5jYT4KCgkqIGNvbmZpZy90Yy1ocHBhLmg6IERvbid0IGRlZmluZSBEV0FSRjJfRUhfRlJBTUVfUkVBRF9PTkxZIG9uIExpbnV4CglhbmQgTmV0QlNELgoKMjAwOC0wOC0yOSAgRXJpYyBCLiBXZWRkaW5ndG9uICA8ZXJpYy53ZWRkaW5ndG9uQGF0bWVsLmNvbT4KCgkqIGNvbmZpZy90Yy1hdnIuYyAobWN1X3R5cGVzKTogQWRkIGF0bWVnYTE2dTQuCgkqIGRvYy9jLWF2ci50ZXhpOiBMaWtld2lzZS4KCjIwMDgtMDgtMjggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy90Yy1pYTY0LmMgKENSX0lJQjApOiBOZXcuCgkoQ1JfSUlCMSk6IExpa2V3aXNlLgoJKGNyKTogQWRkIGNyLmlpYjAgYW5kIGNyLmlpYjEuCgkoc3BlY2lmeV9yZXNvdXJjZSk6IEhhbmRsZSBJQTY0X1JTX0NSX0lJQiBhbmQgQ1JfSUlCMC9DUl9JSUIxLgoKMjAwOC0wOC0yOCAgSmFuIEJldWxpY2ggIDxqYmV1bGljaEBub3ZlbGwuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAobWRfYXNzZW1ibGUpOiBGb3JjZSBudW1iZXIgb2YgZGlzcGxhY2VtZW50CglvcGVyYW5kcyB0byB6ZXJvIHdoZW4gcHJvY2Vzc2luZyBzdHJpbmcgaW5zdHJ1Y3Rpb24uCgkoaTM4Nl9pbmRleF9jaGVjayk6IFNwZWNpYWwtY2FzZSBzdHJpbmcgaW5zdHJ1Y3Rpb24gb3BlcmFuZHMuIERvbid0CglmdWRnZSBhZGRyZXNzIHByZWZpeCBpZiB0aGVyZSBhbHJlYWR5IHdhcyBhIG1lbW9yeSBvcGVyYW5kLiBGaXgKCWVycm9yIG1lc3NhZ2UgdG8gY29ycmVjdGx5IHJlZmxlY3QgdGhlIGFkZHJlc3NpbmcgbW9kZSB1c2VkLgoJKGkzODZfYXR0X29wZXJhbmQpOiBGaXggY29tbWVudC4KCShpMzg2X2ludGVsX29wZXJhbmQpOiBTbmFwc2hvdCwgY2xlYXIsIGFuZCByZXN0b3JlIGJhc2UgYW5kIGluZGV4CglyZWcgZm9yIGVhY2ggb3BlcmFuZCBwcm9jZXNzZWQuIEluY3JlbWVudCBjb3VudCBvZiBtZW1vcnkgb3BlcmFuZHMKCWxhdGVyLgoKMjAwOC0wOC0yNyAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlLmFuZ2xpbkBucmMtY25yYy5nYy5jYT4KCgkqIGNvbmZpZy90Yy1ocHBhLmMgKGlzX1NCX3JlbGF0aXZlKTogTmV3IG1hY3JvLgoJKGZpeF9uZXdfaHBwYSk6IFJlbW92ZSAkc2VncmVsJCBtYXJrZXIuCgkoY29uc19maXhfbmV3X2hwcGEpOiBTZXQgcmVsb2MgdHlwZSBSX1BBUklTQ19TRUdSRUwzMiBpZiBleHByZXNzaW9uIGlzCglzZWdtZW50IHJlbGF0aXZlLgoJKiBjb25maWcvdGMtaHBwYS5oICh0Y19mcm9iX3N5bWJvbCk6IENoZWNrIGZvciAkc2VncmVsJC4KCjIwMDgtMDgtMjcgIEphbiBCZXVsaWNoICA8amJldWxpY2hAbm92ZWxsLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKGNoZWNrX3N0cmluZyk6IFVzZSByZWdpc3Rlcl9wcmVmaXggZm9yIGVycm9yCgltZXNzYWdlLgoJKHByb2Nlc3Nfb3BlcmFuZHMpOiBMaWtld2lzZS4KCjIwMDgtMDgtMjYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjLWFybS50ZXhpOiBBZGQgdHV0b3JpYWwgb24gQVJNIHVud2luZGluZyBwc2V1ZG8gb3BzLgoKMjAwOC0wOC0yNiAgSmllIFpoYW5nICA8amllLnpoYW5nQGFuYWxvZy5jb20+CgoJKiBjb25maWcvYmZpbi1wYXJzZS55IChjaGVja19tYWNmdW5jX29wdGlvbik6IEZpeCBpbnN0cnVjdGlvbgoJbW9kZSBjaGVja2luZy4KCShhc21fMSk6IENoZWNrIG1vZGUgZm9yIDE2LWJpdCBtdWx0aXBseSBpbnN0cnVjdGlvbnMuCgoyMDA4LTA4LTI0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlndXJlLmluOiBVcGRhdGUgYSBudW1iZXIgb2Ygb2Jzb2xldGUgYXV0b2NvbmYgbWFjcm9zLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGFjbG9jYWwubTQ6IFJlZ2VuZXJhdGUuCgoyMDA4LTA4LTIyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1jb3JlLmMgKG1kX2Fzc2VtYmxlKTogSW5jcmVhc2UgbGVuZ3RoIG9mIG5hbWUgYXJyYXkKCXRvIGluY2x1ZGUgdGVybWluYXRpbmcgTlVMLgoKMjAwOC0wOC0yMiAgSmllIFpoYW5nICA8amllLnpoYW5nQGFuYWxvZy5jb20+CgoJKiBjb25maWcvYmZpbi1sZXgubCAoTlVNQkVSKTogUHJvdGVjdCBzcGVjaWFsIGAuJy4KCjIwMDgtMDgtMjIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBzeW1ib2xzLmMgKHN5bWJvbF9jbG9uZSk6IEVuc3VyZSBjbG9uZXMgYXJlIG5vdCBleHRlcm5hbC4KCjIwMDgtMDgtMjIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtaHBwYS5jIChtZF9iZWdpbik6IFNldCBCU0ZfS0VFUCBmb3IgImR1bW15X3N5bWJvbCIuCgoyMDA4LTA4LTIxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZHcyZ2VuY2ZpLmMgKERXQVJGMl9GREVfUkVMT0NfU0laRSk6IE5ldy4KCShvdXRwdXRfY2llLCBvdXRwdXRfZmRlKTogVXNlIGl0LgoJKERXQVJGMl9FSF9GUkFNRV9SRUFEX09OTFkpOiBOZXcuCgkoY2ZpX2ZpbmlzaCk6IFVzZSBpdC4KCgkqIGNvbmZpZy90Yy1ocHBhLmggKERXQVJGMl9GREVfUkVMT0NfU0laRSk6IFNldCB0byA4IGZvciA2NC1iaXQuCgkoRFdBUkYyX0NJRV9EQVRBX0FMSUdOTUVOVCk6IENoYW5nZSBzaWduLgoJKERXQVJGMl9FSF9GUkFNRV9SRUFEX09OTFkpOiBOZXcuCgkqIGNvbmZpZy90Yy1ocHBhLmMgKHRjX2dlbl9yZWxvYyk6IEdlbmVyYXRlIHBjLXJlbGF0aXZlIHJlbG9jYXRpb25zCglmcm9tIHRoZSByZXN1bHRzIG9mIERJRkZfRVhQUl9PSyBtYW5pcHVsYXRpb24uCgoyMDA4LTA4LTIxICBTdGVybGluZyBBdWd1c3RpbmUgIDxzdGVybGluZ0B0ZW5zaWxpY2EuY29tPgoKCSogY29uZmlnL3h0ZW5zYS1pc3RhY2suaCAoTUFYX0lOU05fQVJHUyk6IEluY3JlYXNlIHRvIDY0LgoKMjAwOC0wOC0yMCAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIGNvbmZpZy90Yy14dGVuc2EuYyAoT190bHNmdW5jLCBPX3Rsc2FyZywgT190bHNjYWxsKTogRGVmaW5lLgoJKE9fdHBvZmYsIE9fZHRwb2ZmKTogRGVmaW5lLgoJKHN1ZmZpeF9yZWxvY3MpOiBBZGQgZW50cmllcyBmb3IgVExTIHN1ZmZpeGVzLgoJKHh0ZW5zYV9lbGZfY29ucyk6IENoZWNrIGZvciBpbnZhbGlkIHVzZSBvZiBUTFMgcmVsb2NhdGlvbnMuCgkobWFwX29wZXJhdG9yX3RvX3JlbG9jKTogQWRkIGlzX2xpdGVyYWwgcGFyYW1ldGVyIGFuZCB1c2UgaXQgdG8KCWNvbnRyb2wgdHJhbnNsYXRpbmcgVExTIGluc3RydWN0aW9uIHJlbG9jYXRpb25zIHRvIHRoZSBjb3JyZXNwb25kaW5nCglsaXRlcmFsIHJlbG9jYXRpb25zLgoJKHhnX3ZhbGlkX2xpdGVyYWxfZXhwcmVzc2lvbik6IEFsbG93IFRMUyBvcGVyYXRvcnMuCgkoeGdfYnVpbGRfdG9faW5zbik6IENvcHkgVExTIG9wZXJhdG9ycyBmcm9tIHBzZXVkby1pbnN0cnVjdGlvbgoJb3BlcmFuZHMgdG8gZ2VuZXJhdGVkIGxpdGVyYWxzLgoJKHhnX2Fzc2VtYmxlX2xpdGVyYWwpOiBIYW5kbGUgVExTIG9wZXJhdG9ycy4gIFVwZGF0ZSBjYWxsIHRvCgltYXBfb3BlcmF0b3JfdG9fcmVsb2MuCgkobWRfYXNzZW1ibGUpOiBIYW5kbGUgQ0FMTFhuLlRMUyBwc2V1ZG8taW5zdHJ1Y3Rpb24uCgkobWRfYXBwbHlfZml4KTogSGFuZGxlIFRMUyByZWxvY2F0aW9ucy4KCShlbWl0X3NpbmdsZV9vcCk6IEhhbmRsZSBUTFMgb3BlcmF0b3JzLgoJKGNvbnZlcnRfZnJhZ19pbW1lZCk6IFVwZGF0ZSBjYWxsIHRvIG1hcF9vcGVyYXRvcl90b19yZWxvYy4KCSh2aW5zbl90b19pbnNuYnVmKTogRW1pdCByZWxvY2F0aW9ucyBmb3IgVExTLXJlbGF0ZWQgaW5zdHJ1Y3Rpb25zLgoJKiBjb25maWcveHRlbnNhLWlzdGFjay5oICh0aW5zbl9zdHJ1Y3QpOiBBZGQgdGxzX3JlbG9jIGZpZWxkLgoJKiBjb25maWcveHRlbnNhLXJlbGF4LmMgKGFwcGVuZF9saXRlcmFsX29wKTogQWRkIHNyY19vcCBwYXJhbWV0ZXIKCXRvIGluaXRpYWxpemUgdGhlIG9wX2RhdGEgZmllbGQgb2YgdGhlIEJ1aWxkT3AuCgkoYnVpbGRfdHJhbnNpdGlvbik6IFVzZSBpdCBoZXJlIHRvIHJlY29yZCB0aGUgc291cmNlIG9wZXJhbmQKCWNvcnJlc3BvbmRpbmcgdG8gYSBnZW5lcmF0ZWQgbGl0ZXJhbC4KCSogY29uZmlnL3h0ZW5zYS1yZWxheC5oIChidWlsZF9vcCk6IENvbW1lbnQgb3BfZGF0YSB1c2UgZm9yIGxpdGVyYWxzLgoKMjAwOC0wOC0yMCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCUFWWCBQcm9ncmFtbWluZyBSZWZlcmVuY2UgKEF1Z3VzdCwgMjAwOCkKCSogY29uZmlnL3RjLWkzODYuYyAoQ1BVX0ZMQUdTX0FFU19NQVRDSCk6IE5ldy4KCShDUFVfRkxBR1NfQVZYX01BVENIKTogTGlrZXdpc2UuCgkoQ1BVX0ZMQUdTXzMyQklUX01BVENIKTogVXBkYXRlZC4KCShjcHVfZmxhZ3NfbWF0Y2gpOiBMaWtld2lzZS4KCjIwMDgtMDgtMjAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJUFIgNjg0OAoJKiB3cml0ZS5jIChpbnN0YWxsX3JlbG9jKTogQ2hlY2sgdGhhdCByZWxvYyBzeW1ib2xzIGhhdmUgYmVlbgoJd3JpdHRlbi4KCShzZXRfc3ltdGFiKTogTWFyayBzeW1ib2xzIHdpdGggQlNGX0tFRVAuCgoyMDA4LTA4LTE4ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChpMzg2X2FsaWduX2NvZGUpOiBGaXggYSBjb21tZW50IHR5cG8uCgoyMDA4LTA4LTE1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCVBSIDY1MjYKCSogY29uZmlndXJlLmluOiBJbnZva2UgQUNfVVNFX1NZU1RFTV9FWFRFTlNJT05TLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogYWNsb2NhbC5tNDogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDgtMDgtMTQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtdGljNHguYyAodGljNHhfb3BlcmFuZHNfcGFyc2UpOiBNYWtlIHN0YXRpYy4KCjIwMDgtMDgtMTMgIEJlbiBFbGxpc3RvbiAgPGJqZUBhdS5pYm0uY29tPgoKCSogZG9jL2FzLnRleGluZm8gKEFsaWduKTogRG9jdW1lbnQgdGhlIFBvd2VyUEMgYmVoYXZpb3VyLgoKMjAwOC0wOC0xMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGFzLmMsIGFzLmgsIGVjb2ZmLmMsIGhhc2guYywgbWFjcm8uYywgc3ltYm9scy5jLCBjb25maWcvb2JqLWV2YXguYywKCWNvbmZpZy9vYmotc29tLmMsIGNvbmZpZy90Yy1hbHBoYS5jLCBjb25maWcvdGMtYXJtLmMsIGNvbmZpZy90Yy1iZmluLmMsCgljb25maWcvdGMtYmZpbi5oLCBjb25maWcvdGMtY3J4LmMsIGNvbmZpZy90Yy1mcnYuYywgY29uZmlnL3RjLWZydi5oLAoJY29uZmlnL3RjLWhwcGEuaCwgY29uZmlnL3RjLWkzODYuYywgY29uZmlnL3RjLWk4NjAuYywgY29uZmlnL3RjLWk5NjAuaCwKCWNvbmZpZy90Yy1pYTY0LmMsIGNvbmZpZy90Yy1pYTY0LmgsIGNvbmZpZy90Yy1tMzJjLmMsIGNvbmZpZy90Yy1tMzJjLmgsCgljb25maWcvdGMtbTY4ay5jLCBjb25maWcvdGMtbWF4cS5jLCBjb25maWcvdGMtczM5MC5jLCBjb25maWcvdGMtczM5MC5oLAoJY29uZmlnL3RjLXNwYXJjLmMsIGNvbmZpZy90Yy1zcGFyYy5oLCBjb25maWcvdGMtc3B1LmMsIGNvbmZpZy90Yy1zcHUuaCwKCWNvbmZpZy90Yy10aWM0eC5jLCBjb25maWcvdGMtdGljNHguaCwgY29uZmlnL3RjLXRpYzU0eC5jLAoJY29uZmlnL3RjLXRpYzU0eC5oLCBjb25maWcvdGMtdmF4LmMsIGRvYy9pbnRlcm5hbHMudGV4aTogQmFuaXNoIFBBUkFNUwoJYW5kIFBUUi4gIENvbnZlcnQgdG8gSVNPIEMuICBEZWxldGUgdW5uZWNlc3NhcnkgZm9yd2FyZCBkZWNsYXJhdGlvbnMuCgoyMDA4LTA4LTEyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWFybS5jIChzX3VucmVxKTogQWRqdXN0IGhhc2hfZGVsZXRlIGNhbGwuCgkqIGNvbmZpZy90Yy1pYTY0LmMgKGRvdF9yb3QpOiBMaWtld2lzZS4KCjIwMDgtMDgtMTEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJUFIgNjU3NQoJKiBoYXNoLmM6IEV4cGFuZCBQVFIgdG8gdm9pZCAqLgoJKGhhc2hfZGVsZXRlKTogQWRkICJmcmVlbWUiIHBhcmFtZXRlci4gIENhbGwgb2JzdGFja19mcmVlLgoJKiBoYXNoLmg6IEV4cGFuZCBQVFIgdG8gdm9pZCAqLgoJKGhhc2hfZGVsZXRlKTogVXBkYXRlIHByb3RvdHlwZS4KCSogbWFjcm8uYyAobWFjcm9fZXhwYW5kX2JvZHkpOiBoYXNoX2RlbGV0ZSBMT0NBTHMgZnJvbSBmb3JtYWxfaGFzaC4KCSogY29uZmlnL3RjLXRpYzU0eC5jICh0aWM1NHhfcmVtb3ZlX2xvY2FsX2xhYmVsKTogVXBkYXRlIGhhc2hfZGVsZXRlCgljYWxsLgoJKHN1YnN5bV9zdWJzdGl0dXRlKTogTGlrZXdpc2UuCgkqIGRvYy9pbnRlcm5hbHMudGV4aSAoaGFzaF9kZWxldGUpOiBVcGRhdGUuCgoyMDA4LTA4LTA4ICBBbmF0b2x5IFNva29sb3YgIDxhZXNva0Bwb3N0LnJ1PgoKCSogY29uZmlnL3RjLWF2ci5jIChtY3VfdHlwZXMpOiBBZGQgYXZyMjUsIGF2cjMxLCBhdnIzNSwgYW5kIGF2cjUxCglhcmNoaXRlY3R1cmVzLiBSZW9yZ2FuaXplIGxpc3QgdG8gcHV0IG1jdSB0eXBlcyBpbiBjb3JyZWN0CglhcmNoaXRlY3R1cmVzIGFuZCB0byBvcmRlciBsaXN0IHNhbWUgYXMgaW4gR0NDLiBVc2UgbmV3IElTQQoJZGVmaW5pdGlvbnMgaW4gaW5jbHVkZS9vcGNvZGUvYXZyLmguCgkqIGRvYy9jLWF2ci50ZXhpOiBBZGQgYXZyMjUsIGF2cjMxLCBhdnIzNSwgYW5kIGF2cjUxIGFyY2hpdGVjdHVyZQoJZGVzY3JpcHRpb25zLiBSZW9yZ2FuaXplIGRlc2NyaXB0aW9ucyB0byBwdXQgbWN1IHR5cGVzIGluIGNvcnJlY3QKCWFyY2hpdGVjdHVyZXMgYW5kIHRvIG9yZGVyIGxpc3RzIHNhbWUgYXMgaW4gR0NDLgoKMjAwOC0wOC0wOCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyZHNhbmRpZm9yZEBnb29nbGVtYWlsLmNvbT4KCSAgICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoT1BUSU9OX0NBTExfTk9OUElDKTogTmV3IG1hY3JvLgoJKE9QVElPTl9OT05fU0hBUkVELCBPUFRJT05fWEdPVCwgT1BUSU9OX01BQkksIE9QVElPTl8zMikKCShPUFRJT05fTjMyLCBPUFRJT05fNjQsIE9QVElPTl9NREVCVUcsIE9QVElPTl9OT19NREVCVUcpCgkoT1BUSU9OX1BEUiwgT1BUSU9OX05PX1BEUiwgT1BUSU9OX01WWFdPUktTX1BJQyk6IEJ1bXAgYnkgMS4KCShtZF9sb25nb3B0cyk6IEFkZCAtY2FsbF9ub25waWMuCgkobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlIE9QVElPTl9DQUxMX05PTlBJQy4KCShtZF9zaG93X3VzYWdlKTogQWRkIC1jYWxsX25vbnBpYy4KCjIwMDgtMDgtMDggIFN0ZXJsaW5nIEF1Z3VzdGluZSAgPHN0ZXJsaW5nQHRlbnNpbGljYS5jb20+CgoJKiBjb25maWcvdGMteHRlbnNhLmMgKGV4Y2x1ZGVfc2VjdGlvbl9mcm9tX3Byb3BlcnR5X3RhYmxlcyk6IE5ldy4KCSh4dGVuc2FfY3JlYXRlX3Byb3BlcnR5X3NlZ21lbnRzKTogVXNlIGl0LgoJKHh0ZW5zYV9jcmVhdGVfeHByb3BlcnR5X3NlZ21lbnRzKTogTGlrZXdpc2UuCgoyMDA4LTA4LTA4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZG9jL2ludGVybmFscy50ZXhpIChEV0FSRjJfRk9STUFUKTogVXBkYXRlIGZvciAyMDA4LTA4LTA0IGNoYW5nZS4KCjIwMDgtMDgtMDYgIFJpY2hhcmQgU2FuZGlmb3JkICA8cmRzYW5kaWZvcmRAZ29vZ2xlbWFpbC5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzMTZfcmVsb2NfcCwgZ290MTZfcmVsb2NfcCwgaGkxNl9yZWxvY19wKQoJKGxvMTZfcmVsb2NfcCk6IE5ldyBmdW5jdGlvbnMuCgkocmVsb2NfbmVlZHNfbG9fcCk6IFVzZSBoaTE2X3JlbG9jX3AgYW5kIGdvdDE2X3JlbG9jX3AgdG8KCWdlbmVyYWxpemUgcmVsb2NhdGlvbiBjaGVja3MuCgkobWF0Y2hpbmdfbG9fcmVsb2MpOiBOZXcgZnVuY3Rpb24uCgkoZml4dXBfaGFzX21hdGNoaW5nX2xvX3ApOiBVc2UgaXQuCgkobWlwczE2X21hcmtfbGFiZWxzKTogRG9uJ3QgY2xvYmJlciBhIHN5bWJvbCdzIHZpc2liaWxpdHkuCgkoYXBwZW5kX2luc24pOiBVc2UgaGkxNl9yZWxvY19wIGFuZCBsbzE2X3JlbG9jX3AuCgkobWlwczE2X2lwKTogSGFuZGxlIEJGRF9SRUxPQ19NSVBTMTZfR09UMTYgYW5kIEJGRF9SRUxPQ19NSVBTMTZfQ0FMTDE2LgoJKG1kX2FwcGx5X2ZpeCk6IExpa2V3aXNlLgoJKG1pcHMxNl9wZXJjZW50X29wKTogQWRkICVnb3QgYW5kICVjYWxsMTYuCgkobWlwc19mcm9iX2ZpbGUpOiBVc2UgZ290MTZfcmVsb2NfcCB0byBnZW5lcmFsaXplIHJlbG9jYXRpb24gY2hlY2tzLgoJVXNlIG1hdGNoaW5nX2xvX3JlbG9jLgoJKG1pcHNfZm9yY2VfcmVsb2NhdGlvbik6IFVzZSBoaTE2X3JlbG9jX3AgYW5kIGxvMTZfcmVsb2NfcCB0bwoJZ2VuZXJhbGl6ZSByZWxvY2F0aW9uIGNoZWNrcy4KCShtaXBzX2ZpeF9hZGp1c3RhYmxlKTogVXNlIGxvMTZfcmVsb2NfcCB0byBnZW5lcmFsaXplIHJlbG9jYXRpb24KCWNoZWNrcy4KCjIwMDgtMDgtMDYgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogTkVXUzogTWVudGlvbiB0aGVzZSBjaGFuZ2VzLgoKCSogY29uZmlnL3RjLWg4MzAwLmggKEhfVElDS19IRVgpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1oODMwMC5jIChPUFRJT05fSF9USUNLX0hFWCk6IE5ldy4KCShtZF9sb25nb3B0cyk6IEFkZCAiLWgtdGljay1oZXgiLgoJKG1kX3BhcnNlX29wdGlvbik6IFN1cHBvcnQgaXQuCgkqIGRvYy9jLWg4MzAwLnRleGkgKEg4LzMwMCBPcHRpb25zKTogRG9jdW1lbnQgaXQuCgkqIGRvYy9hcy50ZXhpbmZvIChPdmVydmlldyk6IExpa2V3aXNlLgoKCSogY29uZmlnL3RjLXNoLmggKEhfVElDS19IRVgpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1zaC5jIChPUFRJT05fSF9USUNLX0hFWCk6IE5ldy4KCShtZF9sb25nb3B0cyk6IEFkZCAiLWgtdGljay1oZXgiLgoJKG1kX3BhcnNlX29wdGlvbik6IFN1cHBvcnQgaXQuCgkqIGRvYy9jLXNoLnRleGkgKFNIIE9wdGlvbnMpOiBEb2N1bWVudCBpdC4KCSogZG9jL2Mtc2g2NC50ZXhpIChTSDY0IE9wdGlvbnMpOiBEb2N1bWVudCBpdC4KCSogZG9jL2FzLnRleGluZm8gKE92ZXJ2aWV3KTogTGlrZXdpc2UuCgoyMDA4LTA4LTA1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCVBSIGdhcy82NjU2CgkqIGR3YXJmMmRiZy5jIChkd2FyZjJfZGlyZWN0aXZlX2ZpbGUpOiBEaXNhYmxlIGdhcyBnZW5lcmF0ZWQKCWRlYnVnIGluZm8gaWYgd2Ugc2VlIGNvbXBpbGVyIGdlbmVyYXRlZCBkZWJ1ZyBpbmZvLgoJKGR3YXJmMl9kaXJlY3RpdmVfbG9jKTogTGlrZXdpc2UuICBSZW1vdmUgcmVkdW5kYW50IGRlYnVnX3R5cGUgdGVzdC4KCjIwMDgtMDgtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkd2FyZjJkYmcuYzogUmVtb3ZlIHN1cGVyZmx1b3VzIGZvcndhcmQgZnVuY3Rpb24gZGVjbGFyYXRpb25zLgoJKERXQVJGMl9GT1JNQVQpOiBBZGQgc2VjdGlvbiBhcmcuCgkob3V0X2hlYWRlcik6IE5ldyBmdW5jdGlvbiwgc3BsaXQgb3V0IGZyb20uLgoJKG91dF9kZWJ1Z19saW5lKTogLi5oZXJlLgoJKG91dF9kZWJ1Z19hcmFuZ2VzKTogVXNlIG91dF9oZWFkZXIuCgkob3V0X2RlYnVnX2FiYnJldik6IEFkZCBpbmZvX3NlZyBhbmQgbGluZV9zZWcgYXJncy4gIFVzZQoJRFdfRk9STV9kYXRhOCAoZm9yIERXX0FUX3N0bXRfbGlzdCkgaWYgbGluZV9zZWcgaXMgNjQtYml0LgoJKG91dF9kZWJ1Z19pbmZvKTogVXNlIG91dF9oZWFkZXIuICBPdXRwdXQgOCBieXRlIERXX0FUX3N0bXRfbGlzdAoJaWYgbGluZV9zZWcgaXMgNjQtYml0LgoJKGR3YXJmMl9maW5pc2gpOiBBZGp1c3Qgb3V0X2RlYnVnX2FiYnJldiBjYWxsLgoJKiBjb25maWcvdGMtbWlwcy5oIChEV0FSRjJfRk9STUFULCBtaXBzX2R3YXJmMl9mb3JtYXQpOiBBZGQgc2VjIGFyZy4KCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19kd2FyZjJfZm9ybWF0KTogTGlrZXdpc2UuCgoyMDA4LTA4LTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW0gKFBPVEZJTEVTLmluKTogU2V0IExDX0FMTD1DLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogcG8vUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgoyMDA4LTA4LTAxICBQZXRlciBCZXJnbmVyICA8YmVyZ25lckB2bmV0LmlibS5jb20+CgoJKiBjb25maWcvdGMtcHBjLmMgKHBhcnNlX2NwdSk6IFJlbmFtZSBhbHRpdmVjX29yX3NwZSB0byByZXRhaW5fZmxhZ3MuCglIYW5kbGUgLW12c3ggYW5kIC1tcG93ZXI3LgoJKG1kX3Nob3dfdXNhZ2UpOiBEb2N1bWVudCAtbXBvd2VyNyBhbmQgLW12c3guCgkqIGRvYy9hcy50ZXhpbmZvIChUYXJnZXQgUG93ZXJQQyk6IERvY3VtZW50IC1tdnN4LgoJKiBkb2MvYy1wcGMudGV4aSAoUG93ZXJQQy1PcHRzKTogRG9jdW1lbnQgLW12c3ggYW5kIC1tcG93ZXI3LgoKMjAwOC0wNy0zMSAgUGV0ZXIgQmVyZ25lciAgPGJlcmduZXJAdm5ldC5pYm0uY29tPgoKCSogY29uZmlnL3RjLXBwYy5jIChwYXJzZV9jcHUpIDxwb3dlcjY+OiBBY2NlcHQgQWx0aXZlYyBpbnN0cnVjdGlvbnMuCgk8Y2VsbD46IExpa2V3aXNlLgoKMjAwOC0wNy0zMCAgTWljaGFlbCBKLiBFYWdlciAgPGVhZ2VyQGVhZ2VyY29uLmNvbT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAocGFyc2VfY3B1KTogU2VwYXJhdGUgaGFuZGxpbmcgb2YgLW00MDMvNDA1LgoJKG1kX3Nob3dfdXNhZ2UpOiBMaWtld2lzZS4KCjIwMDgtMDctMzAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBtZXNzYWdlcy5jLCBzeW1ib2xzLmMsIHdyaXRlLmM6IFNpbGVuY2UgZ2NjIHdhcm5pbmdzLgoKMjAwOC0wNy0yOCAgSW5laWV2ICA8aW5laWV2QHlhaG9vLmNvLnVrPgoKCSogY29uZmlnL3RjLWkzODYuYyAob3BlcmFuZF90eXBlX2NoZWNrKTogV2FybmluZyBmaXguCgoyMDA4LTA3LTI2ICBNaWNoYWVsIEVhZ2VyIDxlYWdlckBlYWdlcmNvbi5jb20+CgoJKiBkb2MvYXMudGV4aW5mbzogQWRkIGRlc2NyaXB0aW9uIG9mIHNpbmdsZS1wcmVjaXNpb24gYXR0cmlidXRlLgoKMjAwOC0wNy0yNCAgSmllIFpoYW5nICA8amllLnpoYW5nQGFuYWxvZy5jb20+CgoJKiBjb25maWcvYmZpbi1wYXJzZS55IChhc21fMSk6IEVycm9yIGlmIHBsYWluIHN5bWJvbCBpcyB1c2VkCglhcyBsb2FkL3N0b3JlIG9mZnNldC4KCjIwMDgtMDctMjIgIENoYW8teWluZyBGdSAgPGZ1QG1pcHMuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19pcCk6IFJlc2V0IHMgdG8gYXJnc1N0YXJ0LgoKMjAwOC0wNy0yMiAgSmllIFpoYW5nICA8amllLnpoYW5nQGFuYWxvZy5jb20+CgoJKiBjb25maWcvdGMtYmZpbi5jIChiZmluX2dlbl9sb29wKTogUmVtb3ZlIGxvb3Agc3ltYm9sLgoKMjAwOC0wNy0yMSAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtaDgzMDAuYyAoZml4X29wZXJhbmRfc2l6ZSk6IFVzZSB0aGUgZGVmYXVsdCBzaXplCglzcGVjaWZpZWQgYnkgdGhlIC5sYnJhbmNoLy5zYnJhbmNoIHBzZXVkb3MuCgoyMDA4LTA3LTE4ICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1tMzJjLmggKEhfVElDS19IRVgpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1tMzJjLmMgKE9QVElPTl9IX1RJQ0tfSEVYKTogRGVmaW5lLgoJKG1kX2xvbmdvcHRzKTogQWRkIHN1cHBvcnQgZm9yIGl0LgoJKG1kX3BhcnNlX29wdGlvbik6IExpa2V3aXNlLgoJKiBkb2MvYXMudGV4aW5mbyAoT3ZlcnZpZXcpOiBBZGQgbmV3IG0zMmMgb3B0aW9ucy4KCSogZG9jL2MtbTMyYy50ZXhpIChNMzJDLU1vZGlmaWVycyk6IExpa2V3aXNlCgoJKiBhcy5oOiAoZW5hYmxlX2hfdGlja19oZXgpOiBOZXcuCgkqIGFwcC5jIChlbmFibGVfaF90aWNrX2hleCk6IE5ldy4KCShMRVhfSVNfSCk6IE5ldy4KCShkb19zY3J1Yl9iZWdpbik6IE1hcmsgJ0gnIGFuZCAnaCcgYXMgc3BlY2lhbCBpZiBlbmFibGVfaF90aWNrX2hleC4KCShkb19zY3J1Yl9jaGFycyk6IElmIGVuYWJsZV9oX3RpY2tfaGV4IGFuZCAnaCcsIGNoZWNrIGZvciBIJzAwCglzdHlsZSBoZXggY29uc3RhbnRzIGFuZCBjb252ZXJ0IHRoZSBpbnB1dCBzdHJlYW0gdG8gMHgwMCBzdHlsZS4KCShkb19zY3J1Yl9jaGFycyk6IElmIGEgJ1ggc3R5bGUgY2hhcmFjdGVyIGNvbnN0YW50IGlzIGZvdW5kIGFmdGVyCglhIHN5bWJvbCBjaGFyYWN0ZXIgKGxpa2UgeW91J3JlIG9yIFgnMDApLCB3YXJuIHRoZSB1c2VyLgoKMjAwOC0wNy0xMCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyZHNhbmRpZm9yZEBnb29nbGVtYWlsLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHMxNl9tYXJrX2xhYmVscyk6IFVzZSBFTEZfU1RfU0VUX01JUFMxNi4KCShtaXBzX2ZpeF9hZGp1c3RhYmxlKTogTGlrZXdpc2UuCgkobWlwc19mcm9iX2ZpbGVfYWZ0ZXJfcmVsb2NzKTogTGlrZXdpc2UuCgoyMDA4LTA3LTA4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnL3RjLW02OGsuYyAobTY4a19zZXRfY3B1LCBtNjhrX3NldF9hcmNoKTogRG9uJ3QgY29tcGxhaW4KCWFib3V0IG92ZXJyaWRpbmcgYW4gZWFybGllciBzZXR0aW5nLgoKMjAwOC0wNy0wNyAgQWRhbSBOZW1ldCAgPGFuZW1ldEBjYXZpdW1uZXR3b3Jrcy5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChOT19JU0FfQ09QKTogTmV3IG1hY3JvLgoJKENPUF9JTlNOKTogTmV3IG1hY3JvLgoJKGlzX29wY29kZV92YWxpZCk6IFVzZSB0aGVtLgoJKG1hY3JvKSA8bGRfc3Q+OiBVc2UgdGhlbS4gIERvbid0IGFjY2VwdCBjb3Byb2Nlc3NvciBsb2FkIHN0b3JlCglpbnNucyBiYXNlZCBvbiB0aGUgSVNBIGlmIENQVSBpcyBOT19JU0FfQ09QLgoJPGNvcHo+OiBMaWtld2lzZSBmb3IgY29wcm9jZXNzb3Igb3BlcmF0aW9ucy4KCjIwMDgtMDctMDcgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvdGMtYXJtLmMgKGFybV9maXhfYWRqdXN0YWJsZSk6IERvbid0IGFkanVzdCBNT1ZXL01PVlQKCXJlbG9jYXRpb25zLgoKMjAwOC0wNy0wNyAgUmFsZiBDb3Jzw6lwaXVzICA8cmFsZi5jb3JzZXBpdXNAcnRlbXMub3JnPgoKCSogY29uZmlndXJlLnRndDogQWRkIGJmaW4tKi1ydGVtcyouCgoyMDA4LTA3LTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLXNwdS5jIChtZF9hcHBseV9maXgpOiBIYW5kbGUgZnVsbHkgcmVzb2x2ZWQKCUJGRF9SRUxPQ18zMl9QQ1JFTCwgQkZEX1JFTE9DX1NQVV9ISTE2IGFuZCBCRkRfUkVMT0NfU1BVX0xPMTYuCgoyMDA4LTA2LTI1ICBQZXRlciBCZXJnbmVyICA8YmVyZ25lckB2bmV0LmlibS5jb20+CgoJKiBjb25maWcvdGMtcHBjLmMgKHBhcnNlX2NwdSk6IEhhbmRsZSAtbTQ2NC4KCShtZF9zaG93X3VzYWdlKTogTGlrZXdpc2UuCgoyMDA4LTA2LTI0ICBFcmljIEIuIFdlZGRpbmd0b24gIDxlcmljLndlZGRpbmd0b25AYXRtZWwuY29tPgoKCUFkZCBzdXBwb3J0IGZvciBBVHRpbnkxM0EuCgkqIGNvbmZpZy90Yy1hdnIuYyAobWN1X3R5cGVzKTogQWRkIGF0dGlueTEzYS4KCSogZG9jL2MtYXZyLnRleGk6IExpa2V3aXNlLgoKMjAwOC0wNi0yNCAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCSAgICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogd3JpdGUuYyAocmVsYXhfc2VnbWVudCA8cnNfb3JnPik6IEluY2x1ZGUgY3VycmVudCBzdHJldGNoCgl2YWx1ZSB3aGVuIGNhbGN1bGF0aW5nIHdoZXRoZXIgLm9yZyBpcyBiYWNrd2FyZHMuCgoyMDA4LTA2LTE3ICBSYWxmIFdpbGRlbmh1ZXMgIDxSYWxmLldpbGRlbmh1ZXNAZ214LmRlPgoKCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwOC0wNi0xNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGFwcC5jIChkb19zY3J1Yl9jaGFycyk6IERvIG5vdCBVTkdFVCBhbiBFT0YgdmFsdWUuCgoyMDA4LTA2LTE2ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJUFIgZ2FzLzY2MDcKCSogY29uZmlnL3RjLW1taXguYyAoc19sb2MpOiBBc3N1bWUgIm5lZ2F0aXZlIiBhZGRyZXNzZXMgYmVsb25nIHRvCgl0ZXh0X3NlY3Rpb24uICBEbyB0aGUgInN0ZXBwaW5nIGJhY2t3YXJkcyIgdGVzdCBmb3IgdGV4dF9zZWN0aW9uCgl1c2luZyB1bnNpZ25lZCBvcGVyYW5kcy4KCjIwMDgtMDYtMTMgIFBldGVyIEJlcmduZXIgIDxiZXJnbmVyQHZuZXQuaWJtLmNvbT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAocHBjX2NwdSk6IFVzZSBwcGNfY3B1X3QgdHlwZWRlZi4KCShwcGNfaW5zZXJ0X29wZXJhbmQpOiBMaWtld2lzZS4KCShwcGNfbWFjaGluZSk6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtcHBjLmg6ICNpbmNsdWRlICJvcGNvZGUvcHBjLmgiCgkoc3RydWN0IF9wcGNfZml4X2V4dHJhIDxwcGNfY3B1Pik6IFVzZSBwcGNfY3B1X3QgdHlwZWRlZi4KCShwcGNfY3B1KTogVXBkYXRlIGV4dGVybiBkZWNsLgoKMjAwOC0wNi0xMiAgQWRhbSBOZW1ldCAgPGFuZW1ldEBjYXZpdW1uZXR3b3Jrcy5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jICh2YWxpZGF0ZV9taXBzX2luc24pOiBIYW5kbGUgZmllbGQgZGVzY3JpcHRvcnMKCSt4LCArWCwgK3AsICtQLCArcywgK1MuCgkobWlwc19pcCk6IExpa2V3aXNlLgoKCSogY29uZmlnL3RjLW1pcHMuYyAodmFsaWRhdGVfbWlwc19pbnNuKTogSGFuZGxlIGZpZWxkIGRlc2NyaXB0b3IgK1EuCgkobWlwc19pcCk6IExpa2V3aXNlLgoJKG1hY3JvX2J1aWxkKTogTGlrZXdpc2UuCgkoQ1BVX0hBU19TRVEpOiBOZXcgbWFjcm8uCgkobWFjcm8yKSA8TV9TRVFfSSwgTV9TTkVfST46IFVzZSBpdC4gIEVtaXQgc2VxL3NuZSBhbmQgc2VxaS9zbmVpLgoKMjAwOC0wNi0wOSAgRXJpYyBCLiBXZWRkaW5ndG9uICA8ZXJpYy53ZWRkaW5ndG9uQGF0bWVsLmNvbT4KCgkqIGNvbmZpZy90Yy1hdnIuYyAobWN1X3R5cGVzKTogUmVtb3ZlIHN1cHBvcnQgZm9yIEFUbWVnYTMySFZCIGRldmljZS4KCSogZG9jL2MtYXZyLnRleGk6IExpa2V3aXNlLgoKMjAwOC0wNi0wNCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGFwcC5jIChkb19zY3J1Yl9jaGFycyk6IERvIG5vdCBVTkdFVCBhbiBFT0YgdmFsdWUuCgoyMDA4LTA2LTAzICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChzZXRfc3NlX2NoZWNrKTogTmV3LgoJKG1kX3BzZXVkb190YWJsZSk6IEFkZCAic3NlX2NoZWNrIi4KCjIwMDgtMDYtMDMgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvdGMtYXJtLmMgKGRvX3RfcmJpdCk6IFBvcHVsYXRlIGJvdGggcm0gZmllbGRzLgoKMjAwOC0wNS0zMCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCglQUiA1NTIzCgkqIGNvbmZpZy90Yy1hdnIuYyAoYXZyX2xkaV9leHByZXNzaW9uKTogRG8gbm90IHdhcm4gYWJvdXQgdW5rbm93bgoJcmVsb2NzIGhlcmUuCgoyMDA4LTA1LTI5ICBNYXhpbSBLdXZ5cmtvdiAgPG1heGltQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzX2NwdV9pbmZvX3RhYmxlKTogTW92ZSByZWNvcmRzIGZvcgoJU1QgTG9vbmdzb24tMkUvMkYgcHJvY2Vzc29ycyB0byBhIGJldHRlciBwbGFjZS4KCjIwMDgtMDUtMjMgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCglQUiBnYXMvNjUxOAoJKiBjb25maWcvdGMtaTM4Ni5jIChtYXRjaF90ZW1wbGF0ZSk6IFJlcG9ydCBhbWJpZ3VvdXMgb3BlcmFuZAoJc2l6ZSwgbm90IGludmFsaWQgc3VmZml4IHdoZW4gdGhlcmUgaXMgbm8gbWF0Y2ggaW4gSW50ZWwKCXN5bnRheC4KCjIwMDgtMDUtMjIgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvdGMtYXJtLmMgKHBhcnNlX2NvbmQpOiBDb3ZlcnQgdG8gbG93ZXJjYXNlIGJlZm9yZSBtYXRjaGluZy4KCjIwMDgtMDUtMjEgIEktSnVpIFN1bmcgIDxpanN1bmdAZ21haWwuY29tPgoKCSogY29uZmlnL3RjLWFybS5jIChhcm1fY3B1cyk6IEFkZCBGYXJhZGF5IEFSTXY0IGFuZCBBUk12NVRFCgljb21wYXRpYmxlIGNvcmVzOiBmYTUyNiwgZmE2MjYsIGZhNjI2dGUsIGZhNzI2dGUuCgkqIGRvYy9jLWFybS50ZXhpIChBUk0gT3B0cyk6IEFkZCAtbWNwdT17ZmE1MjYsIGZhNjI2LCBmYTYyNnRlLAoJZmE3MjZ0ZX0gb3B0aW9ucy4KCjIwMDgtMDUtMTQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL1BPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKMjAwOC0wNS0wOSAgQ2F0aGVyaW5lIE1vb3JlICA8Y2xtQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzX2Zyb2JfZmlsZSk6IERvbid0IG1hdGNoIE1JUFMxNiByZWxvY3MKCXdpdGggbm9uLU1JUFMxNiByZWxvY3MuCgoyMDA4LTA1LTA5ICBDaGFvLXlpbmcgRnUgIDxmdUBtaXBzLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1kX2JlZ2luKTogVXNlIHN0cm5jbXAgdG8gY29tcGFyZSBUQVJHRVRfT1MsIGluCgljYXNlIHRoYXQgc29tZSBjaGFyYWN0ZXJzIGFwcGVuZCBhdCB0aGUgZW5kIG9mIHRoZSBuYW1lLgoJKG1pcHNfaXApOiBMaWtld2lzZS4KCShzX2NoYW5nZV9zZWMpOiBMaWtld2lzZS4KCShtZF9zZWN0aW9uX2FsaWduKTogTGlrZXdpc2UuCgoyMDA4LTA1LTA3ICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogY29uZmlnL3RjLXh0ZW5zYS5jICh4dGVuc2FfY3JlYXRlX3Byb3BlcnR5X3NlZ21lbnRzKTogVXNlCgl4dGVuc2FfbWFrZV9wcm9wZXJ0eV9zZWN0aW9uIGluc3RlYWQgb2YgeHRlbnNhX2dldF9wcm9wZXJ0eV9zZWN0aW9uLgoJKHh0ZW5zYV9jcmVhdGVfeHByb3BlcnR5X3NlZ21lbnRzKTogTGlrZXdpc2UuCgoyMDA4LTA1LTAyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBORVdTOiBNZW50aW9uIFhTQVZFLCBFUFQgYW5kIE1PVkJFLgoKCSogY29uZmlnL3RjLWkzODYuYyAoY3B1X2FyY2gpOiBBZGQgLm1vdmJlIGFuZCAuZXB0LgoJKG1kX3Nob3dfdXNhZ2UpOiBBZGQgLm1vdmJlIGFuZCAuZXB0LgoKCSogZG9jL2MtaTM4Ni50ZXhpOiBBZGQgbW92YmUgYW5kIGVwdCB0byAtbWFyY2g9LiAgRG9jdW1lbnQKCS5tb3ZiZSBhbmQgLmVwdC4KCjIwMDgtMDQtMjkgIERhdmlkIFMuIE1pbGxlciAgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+CgoJKiBjb25maWcvdGMtc3BhcmMuYyAodjlhX2Fzcl90YWJsZSk6IEZpeCBvcmRlciBvZiBzb2Z0aW50IGVudHJpZXMuCgoyMDA4LTA0LTI4ICBBZGFtIE5lbWV0ICA8YW5lbWV0QGNhdml1bW5ldHdvcmtzLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKGZpbGVfbWlwc19zb2Z0X2Zsb2F0LCBmaWxlX21pcHNfc2luZ2xlX2Zsb2F0KToKCU5ldyBzdGF0aWNzLgoJKE9QVElPTl9FTEZfQkFTRSk6IE1ha2Ugcm9vbSBmb3IgbmV3IG9wdGlvbiBtYWNyb3MuCgkoT1BUSU9OX1NPRlRfRkxPQVQsIE9QVElPTl9IQVJEX0ZMT0FULCBPUFRJT05fU0lOR0xFX0ZMT0FULAoJT1BUSU9OX0RPVUJMRV9GTE9BVCk6IE5ldyBvcHRpb24gbWFjcm9zLgoJKG1kX2xvbmdvcHRzKTogQWRkIG1zb2Z0LWZsb2F0LCBtaGFyZC1mbG9hdCwgbXNpbmdsZS1mbG9hdCBhbmQKCW1kb3VibGUtZmxvYXQuCgkobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlIE9QVElPTl9TSU5HTEVfRkxPQVQsCglPUFRJT05fRE9VQkxFX0ZMT0FULCBPUFRJT05fU09GVF9GTE9BVCBhbmQgT1BUSU9OX0hBUkRfRkxPQVQuCgkobWRfc2hvd191c2FnZSk6IEFkZCAtbXNvZnQtZmxvYXQsIC1taGFyZC1mbG9hdCwgLW1zaW5nbGUtZmxvYXQKCWFuZCAtbWRvdWJsZS1mbG9hdC4KCShzdHJ1Y3QgbWlwc19zZXRfb3B0aW9ucyk6IE5ldyBmaWVsZHMgc29mdF9mbG9hdCBhbmQgc2luZ2xlX2Zsb2F0LgoJKG1pcHNfb3B0cyk6IEluaXRpYWxpemVkIHRoZW0uICBBZGQgY29tbWVudCBmb3IgZWFjaCBmaWVsZAoJaW5pdGlhbGl6ZXIuCgkobWlwc19hZnRlcl9wYXJzZV9hcmdzKTogU2V0IHRoZW0gYmFzZWQgb24gZmlsZV9taXBzX3NvZnRfZmxvYXQKCWFuZCBmaWxlX21pcHNfc2luZ2xlX2Zsb2F0LgoJKHNfbWlwc3NldCk6IEFkZCBzdXBwb3J0IGZvciBgLnNldCBzb2Z0ZmxvYXQnLCBgLnNldCBoYXJkZmxvYXQnLAoJYC5zZXQgc2luZ2xlZmxvYXQnIGFuZCBgLnNldCBkb3VibGVmbG9hdCcuCgkoaXNfb3Bjb2RlX3ZhbGlkKTogTmV3IGZ1bmN0aW9uIHRvIGludm9rZSBPUENPREVfSVNfTUVNQkVSLgoJSGFuZGxlIHNpbmdsZS1mbG9hdCBhbmQgc29mdC1mbG9hdCBpbnN0cnVjdGlvbnMgaGVyZS4KCShtYWNyb19idWlsZCwgbWlwc19pcCk6IFVzZSBpdCBpbnN0ZWFkIG9mIE9QQ09ERV9JU19NRU1CRVIuCgkoaXNfb3Bjb2RlX3ZhbGlkXzE2KTogTmV3IGZ1bmN0aW9uLgoJKG1pcHMxNl9pcCk6IFVzZSBpdCBpbnN0ZWFkIG9mIE9QQ09ERV9JU19NRU1CRVIuCgkobWFjcm8pIDxNX0xEQzFfQUIsIE1fU0RDMV9BQiwgTV9MX0RPQiwgTV9MX0RBQiwgTV9TX0RBQiwKCU1fU19ET0I+OiBSZW1vdmUgc3BlY2lhbC1jYXNpbmcgb2YgcjQ2NTAuCgkqIGRvYy9jLW1pcHMudGV4aSAoLW1hcmNoPSk6IEFkZCBPY3Rlb24uCgkoTUlQUyBPcHRzKTogRG9jdW1lbnQgLW1zb2Z0LWZsb2F0IGFuZCAtbWhhcmQtZmxvYXQuICBEb2N1bWVudAoJLW1zaW5nbGUtZmxvYXQgYW5kIC1tZG91YmxlLWZsb2F0LgoJKE1JUFMgZmxvYXRpbmctcG9pbnQpOiBOZXcgc2VjdGlvbi4gIERvY3VtZW50IGAuc2V0IHNvZnRmbG9hdCcgYW5kCglgLnNldCBoYXJkZmxvYXQnLiAgRG9jdW1lbnQgYC5zZXQgc2luZ2xlZmxvYXQnIGFuZCBgLnNldAoJZG91YmxlZmxvYXQnLgoKMjAwOC0wNC0yNSAgRGF2aWQgUy4gTWlsbGVyICA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KCgkqIGNvbmZpZy90Yy1zcGFyYy5jOiBBY2NlcHQgJ3NvZnRpbnRfY2xlYXInIGFuZCAnc29mdGludF9zZXQnCgklYXNyIGFsaWFzZXMuCgoJKiBkb2MvYy1zcGFyYy50ZXhpOiBDb25zaXN0ZW50bHkgcmVmZXIgdG8gYXJjaGl0ZWN0dXJlICd2ZXJzaW9ucycsCglyYXRoZXIgdGhhbiBvY2NhaXNpb25hbGx5ICdsZXZlbHMnLiAgQ29uc2lzdGVudGx5IHJlZmVyIHRvIFN1bidzCglVTklYIHZhcmlhbnQgYXMgU3VuT1MsIGV2ZXJ5IHZlcnNpb24gb2YgU29sYXJpcyBpcyBhbHNvIFN1bk9TLgoJRG9jdW1lbnQgbmV3ICdzb2Z0aW50X2NsZWFyJyBhbmQgJ3NvZnRpbnRfc2V0JyBhbGlhc2VzLiAgQ2xhcmlmeQoJd2hpY2ggYXJjaGl0ZWN0dXJlIHZlcnNpb25zIHN1cHBvcnQgJyVkY3InLCAnJWNxJywgYW5kICclZ2wnLiBBZGQKCXNlY3Rpb24gb24gMzItYml0LzY0LWJpdCBvcGNvZGUgdHJhbnNsYXRpb25zLgoKMjAwOC0wNC0yMyAgTWlrZSBGcnlzaW5nZXIgIDx2YXBpZXJAZ2VudG9vLm9yZz4KCgkqIE1ha2VmaWxlLmFtIChPQkpfRk9STUFUX0NGSUxFUyk6IEFkZCBjb25maWcvb2JqLWZkcGljZWxmLmMuCgkoT0JKX0ZPUk1BVF9IRklMRVMpOiBBZGQgY29uZmlnL29iai1mZHBpY2VsZi5oLgoJKG9iai1mZHBpY2VsZi5vKTogRGVmaW5lLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLnRndDogU2V0IGJmZF9nYXMgdG8geWVzIHdoZW4gZm10IGlzIGZkcGljZWxmLgoJKGJmaW4tKi0qKTogRGVsZXRlLgoJKGJmaW4tKi1saW51eC11Y2xpYmMpOiBOZXc7IHNldCBmbXQgdG8gZmRwaWNlbGYgYW5kIGVtIHRvIGxpbnV4LgoJKGJmaW4tKi11Y2xpbnV4Kik6IE5ldzsgc2V0IGZtdCB0byBlbGYgYW5kIGVtIHRvIGxpbnV4LgoJKiBjb25maWcvb2JqLWZkcGljZWxmLmM6IE5ldy4KCSogY29uZmlnL29iai1mZHBpY2VsZi5oOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWJmaW4uYyAoYmZpbl9mbGFncywgYmZpbl9waWNfZmxhZyk6IFNldCBkZWZhdWx0IGJhc2VkIG9uCgl0aGUgT0JKX0ZEUElDX0VMRiBkZWZpbmUuCgkoT1BUSU9OX05PUElDKTogRGVmaW5lLgoJKG1kX2xvbmdvcHRzKTogQWRkIG1ub3BpYyBhbmQgbW5vLWZkcGljLgoJKG1kX3BhcnNlX29wdGlvbik6IEhhbmRsZSBPUFRJT05fTk9QSUMuCgoyMDA4LTA0LTIzICBQYW9sbyBCb256aW5pICA8Ym9uemluaUBnbnUub3JnPgoKCSogYWNsb2NhbC5tNDogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwOC0wNC0yMyAgRGF2aWQgUy4gTWlsbGVyICA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KCgkqIGNvbmZpZy90Yy1zcGFyYy5jICh2OWFfYXNyX3RhYmxlKTogQWRkIG1pc3NpbmcKCSdzdGljaycgYW5kICdzdGlja19jbXByJywgYW5kIGRvY3VtZW50IG9yZGVyaW5nIHJ1bGVzCglvZiB0YWJsZS4KCSh0Y19nZW5fcmVsb2MpOiBBY2NlcHQgQkZEX1JFTE9DX1NQQVJDX1BDMjIgYW5kCglCRkRfUkVMT0NfU1BBUkNfUEMxMC4KCSogZG9jL2Mtc3BhcmMudGV4aTogTmV3IHNlY3Rpb24gb24gU3BhcmMgY29uc3RhbnRzLgoJQWRkIGRvY3VtZW50YXRpb24gZm9yICVzdGljayBhbmQgJXN0aWNrX2NtcHIuCgoyMDA4LTA0LTIyICBEYXZpZCBTLiBNaWxsZXIgIDxkYXZlbUBkYXZlbWxvZnQubmV0PgoKCSogY29uZmlnL29iai1lbGYuYyAob2JqX2VsZl9zZWN0aW9uX3R5cGUpOiBBZGQgcHJvdG90eXBlCgliZWZvcmUgb2JqX2VsZl9zZWN0aW9uX3dvcmQgYW5kIGFkZCAnd2FybicgYXJnLgoJKG9ial9lbGZfc2VjdGlvbl93b3JkKTogQWRkIHR5cGUgcG9pbnRlciBhcmcsIGFuZCBpZiBubyAjU0VDVElPTgoJaXMgbWF0Y2hlZCwgdHJ5IGNoZWNraW5nIGZvciAjU0VDVElPTl9UWVBFLgoJKG9ial9lbGZfc2VjdGlvbik6IEFkanVzdCBmb3IgbmV3IGFyZ3MuCgkob2JqX2VsZl90eXBlX25hbWUpOiBOZXcgZnVuY3Rpb24uCgkob2JqX2VsZl90eXBlKTogQ2FsbCBpdCwgYW5kIGFjY2VwdCBTVFRfZm9vIG51bWJlciBzdHJpbmdzCglpbiAudHlwZSBzdGF0ZW1lbnRzIGFzIG91dHB1dCBieSBTdW5QUk8gY29tcGlsZXIuCgoyMDA4LTA0LTIyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChtZF9hc3NlbWJsZSk6IERvbid0IGNoZWNrIFNTRSBpbnN0cnVjdGlvbnMKCWlmIG5vYXZ4IGlzIDAuCgoyMDA4LTA0LTE4ICBEYXZpZCBTLiBNaWxsZXIgIDxkYXZlbUBkYXZlbWxvZnQubmV0PgoKCSogZG9jL2Mtc3BhcmMudGV4aTogQWRkIHN5bnRheCBzZWN0aW9uLgoKMjAwOC0wNC0xOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAoYnVpbGRfbW9kcm1fYnl0ZSk6IERvbid0IGNoZWNrIEZNQSB0byBzd2FwCglSRUcgYW5kIE5EUyBmb3IgaW5zdHJ1Y3Rpb25zIHdpdGggaW1tZWRpYXRlIG9wZXJhbmQuCgoyMDA4LTA0LTE4ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChidWlsZF9tb2RybV9ieXRlKTogU3dhcCBSRUcgYW5kIE5EUyBmb3IKCUZNQS4KCjIwMDgtMDQtMTYgIERhdmlkIFMuIE1pbGxlciAgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+CgoJKiBjb25maWcvdGMtc3BhcmMuYyAoc3BhcmNfaXApOiBBZGQgc3VwcG9ydCBmb3IgZ290ZGF0YSBtbmVtb25pY3MKCWFuZCByZWxvY2F0aW9uIGdlbmVyYXRpb24uCgkodGNfZ2VuX3JlbG9jKTogTGlrZXdpc2UuCgoyMDA4LTA0LTE1ICBBbmRyZXcgU3R1YmJzICA8YW5kcmV3LnN0dWJic0BzdC5jb20+CgoJKiBjb25maWcvdGMtc2guYyAobWRfYXBwbHlfZml4KTogTWFrZSBzdXJlIEJGRF9SRUxPQ19TSF9QQ1JFTElNTThCWTQKCXJlbG9jYXRpb25zIGFyZSBwcm9wZXJseSBhbGlnbmVkLCBhbmQgbm90IG5lZ2F0aXZlLgoKMjAwOC0wNC0xNSAgS2hlbSBSYWogIDxrcmFqQG12aXN0YS5jb20+CgoJKiBkb2MvdGMtYXJtLnRleGk6IEZpeCBmbnN0YXJ0IGFuZCBmbmVuZCBkaXJlY3RpdmUgbmFtZXMuCgoyMDA4LTA0LTE0ICBFZG1hciBXaWVuc2tvc2tpICA8ZWRtYXJAZnJlZXNjYWxlLmNvbT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAocGFyc2VfY3B1KTogSGFuZGxlICJlNTAwbWMiLiAgRXh0ZW5kICJlNTAwIiB0bwoJYWNjZXB0IGU1MDBtYyBpbnN0cnVjdGlvbnMuCgkobWRfc2hvd191c2FnZSk6IERvY3VtZW50IC1tZTUwMG1jLgoKMjAwOC0wNC0xMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGxpc3RpbmcuYyAocHJpbnRfdGltZXN0YW1wKTogVXNlIGxvY2FsdGltZSByYXRoZXIgdGhhbgoJbG9jYWx0aW1lX3Igc2luY2Ugbm90IGFsbCBidWlsZCBlbnZpcm9ubWVudHMgcHJvdmlkZSB0aGUgbGF0dGVyLgoKMjAwOC0wNC0xMCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogTkVXUzogTWVudGlvbiAtbXNzZS1jaGVjaz1bbm9uZXxlcnJvcnx3YXJuaW5nXS4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKHNzZV9jaGVjayk6IE5ldy4KCShPUFRJT05fTVNTRV9DSEVDSyk6IExpa2V3aXNlLgoJKG1kX2Fzc2VtYmxlKTogQ2hlY2sgU1NFIGluc3RydWN0aW9ucyBpZiBuZWVkZWQuCgkobWRfbG9uZ29wdHMpOiBBZGQgLW1zc2UtY2hlY2suCgkobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlIE9QVElPTl9NU1NFX0NIRUNLLgoJKG1kX3Nob3dfdXNhZ2UpOiBTaG93IC1tc3NlLWNoZWNrPVtub25lfGVycm9yfHdhcm5pbmddLgoKCSogZG9jL2MtaTM4Ni50ZXhpOiBEb2N1bWVudCAtbXNzZS1jaGVjaz1bbm9uZXxlcnJvcnx3YXJuaW5nXS4KCjIwMDgtMDQtMTAgIFNhbnRpYWdvIFVydWXxYSAgPHN1cnVlbmFAZ21haWwuY29tPgoKCSogbGlzdGluZy5jOiBBZGQgLWFnIGxpc3RpbmcgZmxhZyB0byBzaG93IGdlbmVyYWwgaW5mb3JtYXRpb24gaW4KCWxpc3RpbmdzIHN1Y2ggYXMgZ2FzIHZlcnNpb24sIHBhc3NlZCBvcHRpb25zLCBhbmQgdGltZSBzdGFtcC4KCShsaXN0aW5nX2dlbmVyYWxfaW5mbyk6IE5ldyBmdW5jdGlvbi4KCShwcmludF9vcHRpb25zKTogTmV3IGZ1bmN0aW9uLgoJKHByaW50X3NpbmdsZV9vcHRpb24pOiBOZXcgZnVuY3Rpb24uCgkocHJpbnRfdGltZXN0YW1wKTogTmV3IGZ1bmN0aW9uLgoJKE1BWF9EQVRFTEVOKTogRGVmaW5lLgoJKGxpc3RpbmdfcHJpbnQpOiBBZGQgY2FsbCB0byBsaXN0aW5nX2dlbmVyYWxfaW5mby4KCSogbGlzdGluZy5oIChMSVNUSU5HX0dFTkVSQUwpOiBEZWZpbmUuCgkobGlzdGluZ19wcmludCk6IEFkZCBuZXcgcGFyYW1ldGVyLgoJKiBhcy5jIChzaG93X3VzYWdlKTogUHJpbnQgbmV3IHN3aXRjaC4KCShwYXJzZV9hcmdzKTogUGFyc2UgbmV3IHN3aXRjaC4KCShtYWluKTogUGFzcyBjb21tYW5kIGxpbmUgb24gdG8gbGlzdGluZ19wcmludC4KCSogTkVXUzogTWVudGlvbiB0aGlzIG5ldyBmZWF0dXJlLgoJKiBkb2MvYXMudGV4aW5mbzogRG9jdW1lbnQgdGhlIG5ldyBzdWItb3B0aW9uLgoKMjAwOC0wNC0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGR3YXJmMmRiZy5jIChkd2FyZjJfZW1pdF9pbnNuKTogU2ltcGxpZnkgdGVzdCBiZWZvcmUgZHdhcmYyX3doZXJlCgljYWxsLiAgRGVsZXRlIG91dCBvZiBkYXRlIGNvbW1lbnQuCgkoZHdhcmYyX2NvbnN1bWVfbGluZV9pbmZvKTogQWx3YXlzIGNsZWFyIGR3YXJmMl9sb2NfZGlyZWN0aXZlX3NlZW4uCgkoZHdhcmYyX2VtaXRfbGFiZWwpOiBEb24ndCBlbWl0IHVubGVzcyB0aGVyZSBoYXMgYmVlbiBhIHByZXZpb3VzCgkuZmlsZSBvciB3ZSBhcmUgb3V0cHV0dGluZyBhc3NlbWJsZXIgZ2VuZXJhdGVkIGRlYnVnLgoJZHdhcmYyX2NvbnN1bWVfbGluZV9pbmZvIGFmdGVyIGVtaXR0aW5nIGxpbmUgaW5mbywgbm90IGJlZm9yZS4KCShvdXRfZGVidWdfaW5mbyk6IFNpbXBsaWZ5IGZpbGVzX2luX3VzZSB0ZXN0LgoKMjAwOC0wNC0wNyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAocGFyc2VfcmVhbF9yZWdpc3Rlcik6IFJldHVybiBBVlggcmVnaXN0ZXIKCW9ubHkgaWYgQVZYIGlzIGVuYWJsZWQuCgoyMDA4LTA0LTA3ICBLYXogS29qaW1hICA8a2tvamltYUByci5paWo0dS5vci5qcD4KCglQUiBnYXMvNjA0MwoJKiBjb25maWcvdGMtc2g2NC5jIChzaG1lZGlhX21kX3BjcmVsX2Zyb21fc2VjdGlvbik6IFVzZQoJbWRfcGNyZWxfZnJvbV9zZWN0aW9uIGZvciBCRkRfUkVMT0NfNjQgYW5kIEJGRF9SRUxPQ182NF9QQ1JFTC4KCjIwMDgtMDQtMDQgIEFkcmlhbiBCdW5rICA8YnVua0BzdHVzdGEuZGU+CgkgICAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIGNvbmZpZy90Yy14dGVuc2EuYyAoeGdfYXBwbHlfZml4X3ZhbHVlKTogQ2hlY2sgcmV0dXJuIGNvZGUgZnJvbQoJY2FsbCB0byBkZWNvZGVfcmVsb2MuCgoyMDA4LTA0LTA0ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBORVdTOiBNZW50aW9uIFhTQVZFLiAgQ2hhbmdlIENMTVVMIHRvIFBDTE1VTC4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKGNwdV9hcmNoKTogQWRkIC5wY2xtdWwuCgkobWRfc2hvd191c2FnZSk6IFJlcGxhY2UgY2xtdWwgd2l0aCBwY2xtdWwuCgkqIGRvYy9jLWkzODYudGV4aTogTGlrZXdpc2UuCgoyMDA4LTA0LTAzICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBORVdTOiBNZW50aW9uIEFFUywgQ0xNVUwsIEFWWC9GTUEgYW5kIC1tc3NlMmF2eC4KCgkqIGRvYy9jLWkzODYudGV4aTogQWRkIGF2eCwgYWVzLCBjbG11bCBhbmQgZm1hIHRvIC1tYXJjaD0uCglEb2N1bWVudCAtbXNzZTJhdngsIC5hdngsIC5hZXMsIC5jbG11bCBhbmQgLmZtYS4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKFlNTVdPUkRfTU5FTV9TVUZGSVgpOiBOZXcuCgkodmV4X3ByZWZpeCk6IExpa2V3aXNlLgoJKHNzZTJhdngpOiBMaWtld2lzZS4KCShDUFVfRkxBR1NfQVJDSF9NQVRDSCk6IExpa2V3aXNlLgoJKENQVV9GTEFHU182NEJJVF9NQVRDSCk6IExpa2V3aXNlLgoJKENQVV9GTEFHU18zMkJJVF9NQVRDSCk6IExpa2V3aXNlLgoJKENQVV9GTEFHU19QRVJGRUNUX01BVENIKTogTGlrZXdpc2UuCgkocmVneW1tKTogTGlrZXdpc2UuCgkodmV4X2ltbTQpOiBMaWtld2lzZS4KCShmaXRzX2luX2ltbTQpOiBMaWtld2lzZS4KCShidWlsZF92ZXhfcHJlZml4KTogTGlrZXdpc2UuCgkoVkVYX2NoZWNrX29wZXJhbmRzKTogTGlrZXdpc2UuCgkoYmFkX2ltcGxpY2l0X29wZXJhbmQpOiBMaWtld2lzZS4KCShPUFRJT05fTVNTRTJBVlgpOiBMaWtld2lzZS4KCShUX1lNTVdPUkQpOiBMaWtld2lzZS4KCShfaTM4Nl9pbnNuKTogQWRkIHZleC4KCShjcHVfYXJjaCk6IEFkZCAuYXZ4LCAuYWVzLCAuY2xtdWwgYW5kIC5mbWEuCgkoY3B1X2ZsYWdzX21hdGNoKTogQ2hhbmdlZCB0byB0YWtlIGEgcG9pbnRlciB0byBjb25zdCB0ZW1wbGF0ZS4KCUVuYWJsZSBlbmNvZGluZyBTU0UgaW5zdHJ1Y3Rpb25zIHdpdGggVkVYIHByZWZpeCBmb3IgLW1zc2UyYXZ4LgoJKG1hdGNoX21lbV9zaXplKTogQWxzbyBjaGVjayB5bW13b3JkLgoJKG9wZXJhbmRfdHlwZV9tYXRjaCk6IENsZWFyIHltbXdvcmQuCgkobWRfYmVnaW4pOiBBbGxvdyAnXycgaW4gbW5lbW9uaWMuCgkodHlwZV9uYW1lcyk6IEFkZCBPUEVSQU5EX1RZUEVfVkVYX0lNTTQuCgkocHJvY2Vzc19pbW1leHQpOiBVcGRhdGUgYXNzZXJ0LgoJKG1kX2Fzc2VtYmxlKTogRG9uJ3QgY2FsbCBwcm9jZXNzX2ltbWV4dCBpZiBzc2UyYXZ4IGFuZCBpbW1leHQKCWFyZSB0cnVlLiAgQ2FsbCBidWlsZF92ZXhfcHJlZml4IGlmIHZleCBpcyB0cnVlLgoJKHBhcnNlX2luc24pOiBVcGRhdGVkIGZvciBjcHVfZmxhZ3NfbWF0Y2guCgkoc3dhcF9vcGVyYW5kcyk6IEhhbmRsZSA1IG9wZXJhbmRzLgoJKG1hdGNoX3RlbXBsYXRlKTogSGFuZGxlIDUgb3BlcmFuZHMuIFVwZGF0ZWQgZm9yIGNwdV9mbGFnc19tYXRjaC4KCUNoZWNrIHJlZ3ltbS4gIENhbGwgVkVYX2NoZWNrX29wZXJhbmRzLiBIYW5kbGUgWU1NV09SRF9NTkVNX1NVRkZJWC4KCShwcm9jZXNzX3N1ZmZpeCk6IEhhbmRsZSBZTU1XT1JEX01ORU1fU1VGRklYLgoJKGNoZWNrX2J5dGVfcmVnKTogQ2hlY2sgcmVneW1tLgoJKHByb2Nlc3Nfb3BlcmFuZHMpOiBEdXBsaWNhdGUgdGhlIGRlc3RpbmF0aW9uIHJlZ2lzdGVyIGZvcgoJLW1zc2UyYXZ4IGlmIG5lZWRlZC4KCShidWlsZF9tb2RybV9ieXRlKTogVXBkYXRlZCBmb3IgaW5zdHJ1Y3Rpb25zIHdpdGggVkVYIGVuY29kaW5nLgoJKG91dHB1dF9pbnNuKTogT3V0cHV0IFZFWCBwcmVmaXggaWYgbmVlZGVkLgoJKG1kX2xvbmdvcHRzKTogQWRkIG1zc2UyYXZ4LgoJKG1kX3BhcnNlX29wdGlvbik6IEhhbmRsZSBPUFRJT05fTVNTRTJBVlguCgkobWRfc2hvd191c2FnZSk6IEFkZCBhdngsIGFlcywgY2xtdWwsIGZtYSBhbmQgLW1zc2UyYXZ4LgoJKGludGVsX2UwOSk6IFN1cHBvcnQgWU1NV09SRC4KCShpbnRlbF9lMTEpOiBMaWtld2lzZS4KCShpbnRlbF9nZXRfdG9rZW4pOiBMaWtld2lzZS4KCjIwMDgtMDMtMjggIEVyaWMgQi4gV2VkZGluZ3RvbiAgPGVyaWMud2VkZGluZ3RvbkBhdG1lbC5jb20+CgoJKiBjb25maWcvdGMtYXZyLmMgKG1jdV90eXBlcyk6IEFkZCBhdHRpbnkxNjcuCgkqIGRvYy9jLWF2ci50ZXhpOiBMaWtld2lzZS4KCjIwMDgtMDMtMjggIEVyaWMgQi4gV2VkZGluZ3RvbiAgPGVyaWMud2VkZGluZ3RvbkBhdG1lbC5jb20+CgoJKiBjb25maWcvdGMtYXZyLmMgKG1jdV90eXBlcyk6IEFkZCBhdG1lZ2EzMnU0LgoJKiBkb2MvYy1hdnIudGV4aTogTGlrZXdpc2UuCgoyMDA4LTAzLTI4ICBFcmljIEIuIFdlZGRpbmd0b24gIDxlcmljLndlZGRpbmd0b25AYXRtZWwuY29tPgoKCSogY29uZmlnL3RjLWF2ci5jIChtY3VfdHlwZXMpOiBBZGQgYXRtZWdhMzJjMS4KCSogZG9jL2MtYXZyLnRleGk6IExpa2V3aXNlLgoKMjAwOC0wMy0yOCAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYyAocGFyc2VfbmVvbl9tb3YpOiBQYXJzZSByZWdpc3RlciBiZWZvcmUgaW1tZWRpYXRlCgl0byBhdm9pZCBzcHVyaW91cyBzeW1ib2xzLgoKMjAwOC0wMy0yOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy90Yy1tNjhrLmMgKG1kX2NvbnZlcnRfZnJhZ18xKTogUmVwbGFjZSBhc19mYXRhbCB3aXRoCglhc19iYWRfd2hlcmUuCgoyMDA4LTAzLTI3ICBFcmljIEIuIFdlZGRpbmd0b24gIDxlcmljLndlZGRpbmd0b25AYXRtZWwuY29tPgoKCSogY29uZmlnL3RjLWF2ci5jIChtY3VfdHlwZXMpOiBBZGQgYXRtZWdhMzJtMS4KCSogZG9jL2MtYXZyLnRleGk6IExpa2V3aXNlLgoKMjAwOC0wMy0yNyAgSW5laWV2ICA8aW5laWV2QHlhaG9vLmNvLnVrPgoKCSogY29uZmlnL3RjLWFybS5jIChkb19uZW9uX2N2dCk6IE1vdmUgdmFyaWFibGUgZGVjbGFyYXRpb25zIHRvCglzdGFydCBvZiBibG9jay4KCShkb19uZW9uX2V4dCk6IEZpeCBzaWduIG9mIGNvbXBhcmlzb24uCgoyMDA4LTAzLTI2ICBCZXJuZCBTY2htaWR0ICA8YmVybmQuc2NobWlkdEBhbmFsb2cuY29tPgoKCUZyb20gSmllIFpoYW5nICA8amllLnpoYW5nQGFuYWxvZy5jb20+CgkqIGNvbmZpZy9iZmluLXBhcnNlLnkgKGFzbV8xKTogQ2hlY2sgQVJFR1MgaW4gY29tcGFyaXNvbgoJaW5zdHJ1Y3Rpb25zLiBBbmQgY2FsbCB5eWVycm9yIHdoZW4gY29tcGFyaW5nIFBSRUcgd2l0aAoJRFJFRy4KCShjaGVja19tYWNmdW5jX29wdGlvbik6IE5ldy4KCShjaGVja19tYWNmdW5jcyk6IENoZWNrIG9wdGlvbiBieSBjYWxsaW5nIGNoZWNrX21hY2Z1bmNfb3B0aW9uLgoJRml4IGNvbXBhcmlzb24gYWx3YXlzIHRydWUgd2FybmluZ3MuICBCb3RoIHNjYWxhciBpbnN0cnVjdGlvbnMKCW9mIHZlY3RvciBpbnN0cnVjdGlvbiBtdXN0IHNoYXJlIHRoZSBzYW1lIG1vZGUgb3B0aW9uLiAgT25seSBhbGxvdwoJb3B0aW9uIG1vZGUgYXQgdGhlIGVuZCBvZiB0aGUgc2Vjb25kIGluc3RydWN0aW9uIG9mIHRoZSB2ZWN0b3IuCgkoYXNtXzEpOiBDaGVjayBvcHRpb24gYnkgY2FsbGluZyBjaGVja19tYWNmdW5jX29wdGlvbi4KCgkqIGNvbmZpZy9iZmluLXBhcnNlLnkgKGNoZWNrX21hY2Z1bmNfb3B0aW9uKTogQWxsb3cgKElVKQoJb3B0aW9uIGZvciBtdWx0aXBseSBhbmQgbXVsdGlwbHktYWNjdW11bGF0ZSB0byBkYXRhIHJlZ2lzdGVyCglpbnN0cnVjdGlvbi4KCShjaGVja19tYWNmdW5jcyk6IERvbid0IGNoZWNrIGlmIGFjY3VtdWxhdG9yIG1hdGNoZXMgdGhlIGRhdGEgcmVnaXN0ZXIKCWhlcmUuCgkoYXNzaWduX21hY2Z1bmMpOiBDaGVjayBpZiBhY2N1bXVsYXRvciBtYXRjaGVzIHRoZQoJZGF0YSByZWdpc3RlciBpbiBlYWNoIHJ1bGUgdGhhdCBtb3ZlcyB0byB0aGUgZGF0YQoJcmVnaXN0ZXIuCgoJKiBjb25maWcvdGMtYmZpbi5jIChiZmluX3N0YXJ0X2xpbmVfaG9vayk6IExvY2FsaXplIHRoZSBsYWJlbHMKCWdlbmVyYXRlZCBmb3IgTE9PUF9CRUdJTiBhbmQgTE9PUF9FTkQgaW5zdHJ1Y3Rpb25zLgoJKGJmaW5fZ2VuX2xvb3ApOiBMaWtld2lzZS4KCjIwMDgtMDMtMTkgIEFuZHJlYXMgS3JlYmJlbCAgPGtyZWJiZWwxQGRlLmlibS5jb20+CgoJKiBjb25maWcvdGMtczM5MC5jIChtZF9wYXJzZV9vcHRpb24pOiB6MTAgb3B0aW9uIGFkZGVkLgoKMjAwOC0wMy0xNyAgUmFsZiBXaWxkZW5odWVzICA8UmFsZi5XaWxkZW5odWVzQGdteC5kZT4KCgkqIGFjbG9jYWwubTQ6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZTogTGlrZXdpc2UuCgkqIE1ha2VmaWxlLmluOiBMaWtld2lzZS4KCSogZG9jL01ha2VmaWxlLmluOiBMaWtld2lzZS4KCjIwMDgtMDMtMTcgIEFkcmlhbiBCdW5rICA8YnVua0BzdHVzdGEuZGU+CgoJUFIgNTk0NgoJKiBjb25maWcvdGMtaHBwYS5jIChpc19zYW1lX2ZyYWcpOiBEZWxldGUuCgoyMDA4LTAzLTE0ICBTdGVybGluZyBBdWd1c3RpbmUgIDxzdGVybGluZ0B0ZW5zaWxpY2EuY29tPgoKCSogY29uZmlnL3RjLXh0ZW5zYS5oICh4dGVuc2FfcmVsYXhfc3RhdGVzRSk6IFVwZGF0ZSBjb21tZW50IGZvcgoJUkVMQVhfTE9PUF9FTkRfQUREX05PUC4KCjIwMDgtMDMtMTMgIEV2YW5kcm8gTWVuZXplcyAgPGV2YW5kcm9AeWFob28uY29tPgoKCVBSIGdhcy81ODk1CgkqIHJlYWQuYyAoc19tZXhpdCk6IFdhcm4gaWYgYXR0ZW1wdGluZyB0byBleGl0IGEgbWFjcm8gd2hlbiBub3QKCWluc2lkZSBhIG1hY3JvIGRlZmluaXRpb24uCgoyMDA4LTAzLTEzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwOC0wMy0wOSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYyAoYXJtX2NwdV9vcHRpb25fdGFibGUpOiBBZGQgY29ydGV4LWE5LgoJKiBkb2MvYy1hcm0udGV4aTogQWRkIGNvcnRleC1hOS4KCjIwMDgtMDMtMDkgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvdGMtYXJtLmMgKGZwdV92ZnBfZXh0X2QzMik6IE5ldyB2YWlyYWJsZS4KCShwYXJzZV92ZnBfcmVnX2xpc3QsIGVuY29kZV9hcm1fdmZwX3JlZyk6IFVzZSBpdC4KCShhcm1fb3B0aW9uX2NwdV92YWx1ZSk6IEFkZCB2ZnB2My1kMTYsIHZmcHYyIGFuZCB2ZnB2My4KCShhZWFiaV9zZXRfcHVibGljX2F0dHJpYnV0ZXMpOiBIYW5kbGUgVGFnX1ZGUF9hcmNoPVZGUFYzLUQxNi4KCSogZG9jL2MtYXJtLnRleGk6IERvY3VtZW50IG5ldyBBUk0gRlBVIHZhcmlhbnRzLgoKMjAwOC0wMy0wNyAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYyAobWRfYXBwbHlfZml4KTogVXNlIGNvcnJlY3Qgb2Zmc2V0IHJhbmdlLgoKMjAwOC0wMy0wNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAocHBjX3NldHVwX29wY29kZXMpOiBUaWR5LiAgQWRkIGNvZGUgdG8gdGVzdAoJZm9yIHN0cmljdCBvcmRlcmluZyBvZiBwb3dlcnBjX29wY29kZXMsIGJ1dCBkaXNhYmxlIGZvciBub3cuCgoyMDA4LTAzLTA0ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnL3RjLWFybS5jIChhcm1fZXh0X2JhcnJpZXIsIGFybV9leHRfbXNyKTogTmV3LgoJKGFybV9leHRfdjdtKTogUmVuYW1lLi4uCgkoYXJtX2V4dF9tKTogLi4uIHRvIHRoaXMuICBJbmNsdWRlIHY2LU0uCgkoZG9fdF9hZGRfc3ViKTogQWxsb3cgbmFycm93IGxvdy1yZWcgbm9uIGZsYWcgc2V0dGluZyBhZGRzLgoJKGRvX3RfbXJzLCBkb190X21zciwgYWVhYmlfc2V0X3B1YmxpY19hdHRyaWJ1dGVzKTogVXNlIGFybV9leHRfbS4KCShtZF9hc3NlbWJsZSk6IEFsbG93IHdpZGUgbXNyIGluc3RydWN0aW9ucy4KCShpbnNucyk6IEFkZCBjbGFzc2lmaWNhdGlvbnMgZm9yIHY2LW0gaW5zdHJ1Y3Rpb25zLgoJKGFybV9jcHVfb3B0aW9uX3RhYmxlKTogQWRkIGNvcnRleC1tMS4KCShhcm1fYXJjaF9vcHRpb25fdGFibGUpOiBBZGQgYXJtdjYtbS4KCShjcHVfYXJjaCk6IEFkZCBBUk1fQVJDSF9WNk0uICBGaXggbnVtYmVyaW5nIG9mIG90aGVyIHY2IHZhcmlhbnRzLgoKMjAwOC0wMy0wMyAgU3RlcmxpbmcgQXVndXN0aW5lICA8c3RlcmxpbmdAdGVuc2lsaWNhLmNvbT4KCSAgICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogY29uZmlnL3RjLXh0ZW5zYS5jICh4dGVuc2FfbnVtX3BpcGVfc3RhZ2VzKTogTmV3LgoJKG1kX2JlZ2luKTogSW5pdGlhbGl6ZSBpdC4KCShyZXNvdXJjZXNfY29uZmxpY3QpOiBVc2UgaXQuCgoyMDA4LTAzLTAzICBTdGVybGluZyBBdWd1c3RpbmUgIDxzdGVybGluZ0B0ZW5zaWxpY2EuY29tPgoKCSogY29uZmlnL3RjLXh0ZW5zYS5oIChSRUxBWF9YVEVOU0FfTk9ORSk6IE5ldy4KCjIwMDgtMDMtMDMgIERlbnlzIFZsYXNlbmtvIDx2ZGEubGludXhAZ29vZ2xlbWFpbC5jb20+CgkgICAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCVBSIGdhcy81NTQzCgkqIHJlYWQuYyAocHNldWRvX3NldCk6IERvbid0IGFsbG93IGdsb2JhbCByZWdpc3RlciBzeW1ib2wuCgoJKiBzeW1ib2xzLmMgKFNfU0VUX0VYVEVSTkFMKTogRG9uJ3QgYWxsb3cgcmVnaXN0ZXIgc3ltYm9sCglnbG9iYWwuCgoyMDA4LTAzLTAzICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJUFIgZ2FzLzU1NDMKCSogd3JpdGUuYyAod3JpdGVfb2JqZWN0X2ZpbGUpOiBEb24ndCBhbGxvdyBzeW1ib2xzIHdoaWNoIHdlcmUKCWVxdWF0ZWQgdG8gcmVnaXN0ZXIuICBTdG9wIGlmIHRoZXJlIGlzIGFuIGVycm9yLgoKMjAwOC0wMy0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1wcGMuaCAoc3RydWN0IF9wcGNfZml4X2V4dHJhKTogTmV3LgoJKHBwY19jcHUpOiBEZWNsYXJlLgoJKFRDX0ZJWF9UWVBFLCBUQ19JTklUX0ZJWF9EQVRBKTogRGVmaW5lLgoJKiBjb25maWcvdGMtcHBjLmMgKHBwdV9jcHUpOiBNYWtlIGdsb2JhbC4KCShwcGNfaW5zZXJ0X29wZXJhbmQpOiBBZGQgcHB1X2NwdSBwYXJhbWV0ZXIuCgkobWRfYXNzZW1ibGUpOiBBZGp1c3QgZm9yIGFib3ZlIGNoYW5nZS4KCShtZF9hcHBseV9maXgpOiBQYXNzIHRjX2ZpeF9kYXRhLnBwY19jcHUgdG8gcHBjX2luc2VydF9vcGVyYW5kLgoKMjAwOC0wMi0yMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYyAoZG9fYngpOiBPbmx5IHRlc3QgRUZfQVJNX0VBQklfVkVSU0lPTiBvbiBFTEYKCXRhcmdldGVkIEFSTSBwb3J0cywgb3RoZXJ3aXNlIGp1c3Qgc2tpcCBnZW5lcmF0aW5nIHRoZSByZWxvYy4KCjIwMDgtMDItMTggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGRvYy9jLWkzODYudGV4aTogVXBkYXRlIC1tYXJjaD0gYW5kIC5hcmNoLgoKMjAwOC0wMi0xOCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1tbjEwMzAwLmMgKGhhc19rbm93bl9zeW1ib2xfbG9jYXRpb24pOiBOZXcgZnVuY3Rpb24uCglEbyBub3QgcmVnYXJkIHdlYWsgc3ltYm9scyBhcyBoYXZpbmcgYSBrbm93biBsb2NhdGlvbi4KCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IFVzZSBuZXcgZnVuY3Rpb24uCgkobWRfcGNyZWxfZnJvbSk6IERvIG5vdCBjb21wdXRlIGEgcGNyZWwgYWdhaW5zdCBhIHdlYWsgc3ltYm9sLgoKMjAwOC0wMi0xOCAgSmFuIEJldWxpY2ggIDxqYmV1bGljaEBub3ZlbGwuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAobWF0Y2hfdGVtcGxhdGUpOiBEaXNhbGxvdyAnbCcgc3VmZml4IHdoZW4KCWN1cnJlbnRseSBzZWxlY3RlZCBDUFUgaGFzIG5vIDMyLWJpdCBzdXBwb3J0LgoJKHBhcnNlX3JlYWxfcmVnaXN0ZXIpOiBEbyBub3QgcmV0dXJuIHJlZ2lzdGVycyBub3QgYXZhaWxhYmxlIG9uCgljdXJyZW50bHkgc2VsZWN0ZWQgQ1BVLgoKMjAwOC0wMi0xNiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAocHJvY2Vzc19pbW1leHQpOiBGaXggZm9ybWF0LgoKMjAwOC0wMi0xNiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAoaW5vdXRwb3J0cmVnKTogTmV3LgoJKHByb2Nlc3NfaW1tZXh0KTogTmV3LgoJKG1kX2Fzc2VtYmxlKTogVXNlIGl0LgoJKHVwZGF0ZV9pbW0pOiBVc2UgaW1tMTYgYW5kIGltbTMycy4KCShpMzg2X2F0dF9vcGVyYW5kKTogVXNlIGlub3V0cG9ydHJlZy4KCjIwMDgtMDItMTQgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKG9wZXJhbmRfdHlwZV9hbGxfemVybyk6IE5ldy4KCShvcGVyYW5kX3R5cGVfc2V0KTogTGlrZXdpc2UuCgkob3BlcmFuZF90eXBlX2VxdWFsKTogTGlrZXdpc2UuCgkoY3B1X2ZsYWdzX2FsbF96ZXJvKTogTGlrZXdpc2UuCgkoY3B1X2ZsYWdzX3NldCk6IExpa2V3aXNlLgoJKGNwdV9mbGFnc19lcXVhbCk6IExpa2V3aXNlLgoJKFVJTlRTX0FMTF9aRVJPKTogUmVtb3ZlZC4KCShVSU5UU19TRVQpOiBMaWtld2lzZS4KCShVSU5UU19DTEVBUik6IExpa2V3aXNlLgoJKFVJTlRTX0VRVUFMKTogTGlrZXdpc2UuCgkoY3B1X2ZsYWdzX21hdGNoKTogVXBkYXRlZC4KCShzbWFsbGVzdF9pbW1fdHlwZSk6IExpa2V3aXNlLgoJKHNldF9jcHVfYXJjaCk6IExpa2V3aXNlLgoJKG1kX2Fzc2VtYmxlKTogTGlrZXdpc2UuCgkob3B0aW1pemVfaW1tKTogTGlrZXdpc2UuCgkobWF0Y2hfdGVtcGxhdGUpOiBMaWtld2lzZS4KCShwcm9jZXNzX3N1ZmZpeCk6IExpa2V3aXNlLgoJKHVwZGF0ZV9pbW0pOiBMaWtld2lzZS4KCShwcm9jZXNzX2RyZXgpOiBMaWtld2lzZS4KCShwcm9jZXNzX29wZXJhbmRzKTogTGlrZXdpc2UuCgkoYnVpbGRfbW9kcm1fYnl0ZSk6IExpa2V3aXNlLgoJKGkzODZfaW1tZWRpYXRlKTogTGlrZXdpc2UuCgkoaTM4Nl9kaXNwbGFjZW1lbnQpOiBMaWtld2lzZS4KCShpMzg2X2F0dF9vcGVyYW5kKTogTGlrZXdpc2UuCgkocGFyc2VfcmVhbF9yZWdpc3Rlcik6IExpa2V3aXNlLgoJKG1kX3BhcnNlX29wdGlvbik6IExpa2V3aXNlLgoJKGkzODZfdGFyZ2V0X2Zvcm1hdCk6IExpa2V3aXNlLgoKMjAwOC0wMi0xNCAgRGltaXRyeSBBbmRyaWMgIDxkaW1pdHJ5QGFuZHJpYy5jb20+CgoJUFIgZ2FzLzU3MTIKCSogY29uZmlnL3RjLWFybS5jIChzX2FybV91bndpbmRfc2F2ZSk6IEFkdmFuY2UgdGhlIGlucHV0IGxpbmUKCXBvaW50ZXIgcGFzdCB0aGUgY29tbWEgYWZ0ZXIgcGFyc2luZyBhIGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVyCgluYW1lLgoKMjAwOC0wMi0xNCAgSGFrYW4gQXJkbyAgPGhha2FuQGRlYmlhbi5vcmc+CgoJUFIgZ2FzLzI2MjYKCSogY29uZmlnL3RjLWF2ci5jIChtY3VfdHlwZXMpOiBDaGFuZ2UgdGhlIElTQSB0eW9lIG9mIHRoZSBhdHRpbnkyNgoJdG8gQVZSX0lTQV8yeHhlLgoJKGF2cl9vcGVyYW5kKTogRGlzYWxsb3cgcG9zdC1pbmNyZW1lbnQgYWRkcmVzc2luZyBpbiB0aGUgbHBtCglpbnN0cnVjdGlvbiBmb3IgdGhlIGF0dGlueTI2LgoKMjAwOC0wMi0xMyAgSmFuIEJldWxpY2ggIDxqYmV1bGljaEBub3ZlbGwuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAocGFyc2VfcmVhbF9yZWdpc3Rlcik6IERvbid0IHJldHVybiAnRkxBVCcKCWlmIG5vdCBpbiBJbnRlbCBtb2RlLgoJKGkzODZfaW50ZWxfb3BlcmFuZCk6IElnbm9yZSBzZWdtZW50IG92ZXJyaWRlcyBpbiBpbW1lZGlhdGUgYW5kCglvZmZzZXQgb3BlcmFuZHMuCgkoaW50ZWxfZTExKTogUmFuZ2UtY2hlY2sgaS5tZW1fb3BlcmFuZHMgYmVmb3JlIHVzZSBhcyBhcnJheQoJaW5kZXguIEZpbHRlciBvdXQgRkxBVCBmb3IgdXNlcyBvdGhlciB0aGFuIGFzIHNlZ21lbnQgb3ZlcnJpZGUuCgkoaW50ZWxfZ2V0X3Rva2VuKTogUmVtb3ZlIGJyb2tlbiBwcm9tb3Rpb24gb2YgIkZMQVQ6IiB0byBtZWFuCgkib2Zmc2V0IEZMQVQ6Ii4KCjIwMDgtMDItMTMgIEphbiBCZXVsaWNoICA8amJldWxpY2hAbm92ZWxsLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKGludGVsX2UwOSk6IEFsc28gc3BlY2lhbC1jYXNlICdib3VuZCcuCgoyMDA4LTAyLTEzICBKYW4gQmV1bGljaCAgPGpiZXVsaWNoQG5vdmVsbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChhbGxvd19wc2V1ZG9fcmVnKTogTmV3LgoJKHBhcnNlX3JlYWxfcmVnaXN0ZXIpOiBDaGVjayBmb3IgTlVMTCBqdXN0IG9uY2UuIEFsbG93IGFsbAoJcmVnaXN0ZXIgdGFibGUgZW50cmllcyB3aGVuIGFsbG93X3BzZXVkb19yZWcgaXMgbm9uLXplcm8uCglEb24ndCBhbGxvdyBhbnkgcmVnaXN0ZXJzIHdpdGhvdXQgdHlwZSB3aGVuIGFsbG93X3BzZXVkb19yZWcKCWlzIHplcm8uCgkodGNfeDg2X3JlZ25hbWVfdG9fZHcycmVnbnVtKTogUmVwbGFjZSB3aXRoIC4uLgoJKHRjX3g4Nl9wYXJzZV90b19kdzJyZWdudW0pOiAuLi4gdGhpcy4KCSh0Y194ODZfZnJhbWVfaW5pdGlhbF9pbnN0cnVjdGlvbnMpOiBBZGp1c3QgZm9yIGFib3ZlIGNoYW5nZS4KCSogY29uZmlnL3RjLWkzODYuaCAodGNfcmVnbmFtZV90b19kdzJyZWdudW0pOiBSZW1vdmUuCgkodGNfcGFyc2VfdG9fZHcycmVnbnVtKTogTmV3LgoJKHRjX3g4Nl9yZWduYW1lX3RvX2R3MnJlZ251bSk6IFJlcGxhY2Ugd2l0aCAuLi4KCSh0Y194ODZfcGFyc2VfdG9fZHcycmVnbnVtKTogLi4uIHRoaXMuCgkqIGR3MmdlbmNmaS5jICh0Y19wYXJzZV90b19kdzJyZWdudW0pOiBOZXcsIGJyb2tlbiBvdXQgb2YgLi4uCgkoY2ZpX3BhcnNlX3JlZyk6IC4uLiB0aGlzLiBVc2UgdGNfcGFyc2VfdG9fZHcycmVnbnVtLiBBZGp1c3QKCWVycm9yIGhhbmRsaW5nLgoKMjAwOC0wMi0xMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy10aWM0eC5jICh0aWM0eF9pbnNuX2luc2VydCk6IEFkZCBjb25zdCBxdWFsaWZpZXIgdG8KCWFyZ3VtZW50LgoJKHRpYzR4X2luc25fYWRkKTogTGlrZXdpc2UuCgkobWRfYmVnaW4pOiBEcm9wIGNhc3QgdGhhdCB3YXMgZGlzY2FyZGluZyBhIGNvbnN0IHF1YWxpZmllci4KCSogY29uZmlnL3RjLWQzMHYuYyAoZ2V0X3JlbG9jKTogQWRkIGNvbnN0IHF1YWxpZmllciB0byBvcAoJYXJndW1lbnQuCgkoYnVpbGRfaW5zbik6IERyb3AgY2FzdCB0aGF0IHdhcyBkaXNjYXJkaW5nIGEgY29uc3QgcXVhbGlmaWVyLgoKMjAwOC0wMi0xMSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAoY3B1X2FyY2gpOiBBZGQgLnhzYXZlLgoJKG1kX3Nob3dfdXNhZ2UpOiBBZGQgLnhzYXZlLgoKCSogZG9jL2MtaTM4Ni50ZXhpOiBBZGQgeHNhdmUgdG8gLW1hcmNoPS4KCjIwMDgtMDItMDcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiByZWFkLmMgKHNfd2Vha3JlZik6IERvbid0IHBhc3MgdW5hZG9ybmVkIE5VTEwgdG8gY29uY2F0LgoJKiBjb25maWcvdGMtaTM4Ni5jIChzZXRfY3B1X2FyY2gsIG1kX3BhcnNlX29wdGlvbik6IExpa2V3aXNlLgoKMjAwOC0wMi0wNSAgU3RlcmxpbmcgQXVndXN0aW5lICA8c3RlcmxpbmdAdGVuc2lsaWNhLmNvbT4KCgkqIGNvbmZpZy90Yy14dGVuc2EuYyAocmVsYXhfZnJhZ19pbW1lZCk6IENoYW5nZSBpbnRlcm5hbCBjb25zaXN0ZW5jeQoJY2hlY2tzIGludG8gYXNzZXJ0aW9ucy4gIFdoZW4gcmVsYXhhdGlvbiBwcm9kdWNlcyBhbiBvcGVyYXRpb24gdGhhdAoJZG9lcyBub3QgZml0IGluIHRoZSBjdXJyZW50IEZMSVggaW5zdHJ1Y3Rpb24sIG1ha2Ugc3VyZSB0aGF0IHRoZQoJb3BlcmF0aW9uIGlzIHJlbGF4ZWQgYXMgbmVlZGVkIHRvIGFjY291bnQgZm9yIGJlaW5nIHBsYWNlZCBmb2xsb3dpbmcKCXRoZSBjdXJyZW50IGluc3RydWN0aW9uLgoKMjAwOC0wMi0wNCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCVBSIDU3MTUKCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCjIwMDgtMDItMDQgIEFkYW0gTmVtZXQgIDxhbmVtZXRAY2F2aXVtbmV0d29ya3MuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19jcHVfaW5mb190YWJsZSk6IEFkZCBPY3Rlb24uCgoyMDA4LTAxLTMxICBNYXJjIEdhdXRoaWVyICA8bWFyY0B0ZW5zaWxpY2EuY29tPgoKCSogY29uZmlndXJlLnRndCAoeHRlbnNhKi0qLSopOiBSZWNvZ25pemUgcHJvY2Vzc29yIHZhcmlhbnRzLgoKMjAwOC0wMS0yNSAgS2FpIFRpZXR6ICA8a2FpLnRpZXR6QG9uZXZpc2lvbi5jb20+CgoJKiByZWFkLmM6IChlbWl0X2V4cHIpOiBDb3JyZWN0IGZvciBtaW5ndyB1c2Ugb2YgcHJpbnRmIHNpemUKCXNwZWNpZmllci4KCjIwMDgtMDEtMjQgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBkb2MvYy14dGVuc2EudGV4aSAoWHRlbnNhIFN5bnRheCk6IENsYXJpZnkgaGFuZGxpbmcgb2Ygb3Bjb2RlcyB0aGF0CgljYW4gb25seSBiZSBlbmNvZGVkIGluIEZMSVggaW5zdHJ1Y3Rpb25zIGJ1dCBhcmUgbm90IHNwZWNpZmllZCBhcyBzdWNoLgoJKFh0ZW5zYSBBdXRvbWF0aWMgQWxpZ25tZW50KTogUmVtb3ZlIG9ic29sZXRlIGNvbW1lbnQgYWJvdXQgZGVidWdnaW5nCglsYWJlbHMuCgoyMDA4LTAxLTI0ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBORVdTOiBNZW50aW9uIG5ldyBjb21tYW5kIGxpbmUgb3B0aW9ucyBmb3IgeDg2IHRhcmdldHMuCgoyMDA4LTAxLTIzICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChtZF9zaG93X3VzYWdlKTogUmVwbGFjZSB0YWJzIHdpdGggc3BhY2VzLgoKMjAwOC0wMS0yMyAgRXJpYyBCLiBXZWRkaW5ndG9uICA8ZXJpYy53ZWRkaW5ndG9uQGF0bWVsLmNvbT4KCgkqIGNvbmZpZy90Yy1hdnIuYyAobWN1X3R5cGVzKTogQ2hhbmdlIG9wY29kZSBzZXQgZm9yIGF0ODZyZjQwMS4KCjIwMDgtMDEtMjMgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKG1kX3Nob3dfdXNhZ2UpOiBTaG93IG1vcmUgcHJvY2Vzc29ycyBmb3IKCS1tYXJjaD0vLW10dW5lPS4KCjIwMDgtMDEtMjIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKGkzODZfdGFyZ2V0X2Zvcm1hdCk6IFJlbW92ZSBjcHVtbXgyLgoKMjAwOC0wMS0yMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAoWFhYX1BSRUZJWCk6IE1vdmVkIGZyb20gdGMtaTM4Ni5oLgoJKFhYWF9NTkVNX1NVRkZJWCk6IExpa2V3aXNlLgoJKEVORF9PRl9JTlNOKTogTGlrZXdpc2UuCgkodGVtcGxhdGVzKTogTGlrZXdpc2UuCgkobW9kcm1fYnl0ZSk6IExpa2V3aXNlLgoJKHJleF9ieXRlKTogTGlrZXdpc2UuCgkoRFJFWF9YWFgpOiBMaWtld2lzZS4KCShkcmV4X2J5dGUpOiBMaWtld2lzZS4KCShzaWJfYnl0ZSk6IExpa2V3aXNlLgoJKHByb2Nlc3Nvcl90eXBlKTogTGlrZXdpc2UuCgkoYXJjaF9lbnRyeSk6IExpa2V3aXNlLgoJKGNwdV9zdWJfYXJjaF9uYW1lKTogUmVtb3ZlIGNvbnN0LgoJKGNwdV9hcmNoKTogQWRkIC52bXggYW5kIC5zbXguCgkoc2V0X2NwdV9hcmNoKTogQXBwZW5kIGNwdV9zdWJfYXJjaF9uYW1lLgoJKG1kX3BhcnNlX29wdGlvbik6IFN1cHBvcnQgLW1hcmNoPUNQVVssK0VYVEVOU0lPTi4uLl0uCgkobWRfc2hvd191c2FnZSk6IFVwZGF0ZWQuCgoJKiBjb25maWcvdGMtaTM4Ni5oIChYWFhfUFJFRklYKTogTW92ZWQgdG8gdGMtaTM4Ni5jLgoJKFhYWF9NTkVNX1NVRkZJWCk6IExpa2V3aXNlLgoJKEVORF9PRl9JTlNOKTogTGlrZXdpc2UuCgkodGVtcGxhdGVzKTogTGlrZXdpc2UuCgkobW9kcm1fYnl0ZSk6IExpa2V3aXNlLgoJKHJleF9ieXRlKTogTGlrZXdpc2UuCgkoRFJFWF9YWFgpOiBMaWtld2lzZS4KCShkcmV4X2J5dGUpOiBMaWtld2lzZS4KCShzaWJfYnl0ZSk6IExpa2V3aXNlLgoJKHByb2Nlc3Nvcl90eXBlKTogTGlrZXdpc2UuCgkoYXJjaF9lbnRyeSk6IExpa2V3aXNlLgoKCSogZG9jL2FzLnRleGluZm86IFVwZGF0ZSBpMzg2IC1tYXJjaCBvcHRpb24uCgoJKiBkb2MvYy1pMzg2LnRleGk6IFVwZGF0ZSAtbWFyY2g9IGZvciBJU0EuCgoyMDA4LTAxLTE4ICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogY29uZmlnL3RjLXh0ZW5zYS5jICh4dGVuc2FfbGViMTI4KTogTmV3IGZ1bmN0aW9uLgoJKG1kX3BzZXVkb190YWJsZSk6IFVzZSBpdCBmb3Igc2xlYjEyOCBhbmQgdWxlYjEyOC4KCShpc19sZWIxMjhfZXhwcik6IE5ldyBpbnRlcm5hbCBmbGFnLgoJKHh0ZW5zYV9zeW1ib2xfbmV3X2hvb2spOiBDaGVjayBuZXcgZmxhZy4KCjIwMDgtMDEtMTYgIEVyaWMgQi4gV2VkZGluZ3RvbiAgPGVyaWMud2VkZGluZ3RvbkBhdG1lbC5jb20+CgoJKiBjb25maWcvdGMtYXZyLmMgKG1jdV90eXBlcyk6IENoYW5nZSBvcGNvZGUgc2V0IGZvciBhdnIzLAoJYXQ5MHVzYjgyLCBhdDkwdXNiMTYyLgoJKiBkb2MvYy1hdnIudGV4aTogQ2hhbmdlIGFyY2hpdGVjdHVyZSBncm91cGluZyBmb3IgYXQ5MHVzYjgyLAoJYXQ5MHVzYjE2Mi4KCVRoZXNlIGNoYW5nZXMgc3VwcG9ydCB0aGUgbmV3IGF2cjM1IGFyY2hpdGVjdHVyZSBncm91cCBpbiBnY2MuCgoyMDA4LTAxLTE1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChtZF9hc3NlbWJsZSk6IEFsc28gemFwIG1vdnp4IGFuZCBtb3ZzeAoJc3VmZml4IGZvciBBVCZUIHN5bnRheC4KCjIwMDgtMDEtMTQgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKG1hdGNoX3JlZ19zaXplKTogTmV3LgoJKG1hdGNoX21lbV9zaXplKTogTGlrZXdpc2UuCgkob3BlcmFuZF9zaXplX21hdGNoKTogTGlrZXdpc2UuCgkob3BlcmFuZF90eXBlX21hdGNoKTogQWxzbyBjbGVhciBhbGwgc2l6ZSBmaWVsZHMuCgkobWF0Y2hfdGVtcGxhdGUpOiBTa2lwIEludGVsIHN5bnRheCB3aGVuIGluIEFUJlQgc3ludGF4LgoJQ2FsbCBvcGVyYW5kX3NpemVfbWF0Y2ggdG8gY2hlY2sgb3BlcmFuZCBzaXplLgoJKGkzODZfYXR0X29wZXJhbmQpOiBTZXQgdGhlIG1lbSBmaWVsZCB0byAxIGZvciBtZW1vcnkKCW9wZXJhbmQuCgkoaTM4Nl9pbnRlbF9vcGVyYW5kKTogTGlrZXdpc2UuCgoyMDA4LTAxLTEyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJUFIgZ2FzLzU1MzQKCSogY29uZmlnL3RjLWkzODYuYyAoX2kzODZfaW5zbik6IFVwZGF0ZSBjb21tZW50LgoJKG9wZXJhbmRfdHlwZV9tYXRjaCk6IEFsc28gY2xlYXIgdW5zcGVjaWZpZWQuCgkob3BlcmFuZF90eXBlX3JlZ2lzdGVyX21hdGNoKTogTGlrZXdpc2UuCgkocGFyc2Vfb3BlcmFuZHMpOiBJbml0aWFsaXplIHVuc3BlY2lmaWVkLgoJKGkzODZfaW50ZWxfb3BlcmFuZCk6IExpa2V3aXNlLgoJKG1hdGNoX3RlbXBsYXRlKTogQ2hlY2sgbWVtb3J5IGFuZCBhY2N1bXVsYXRvciBvcGVyYW5kIHNpemUuCgkoaTM4Nl9hdHRfb3BlcmFuZCk6IENsZWFyIHVuc3BlY2lmaWVkIG9uIHJlZ2lzdGVyIG9wZXJhbmQuCgkoaW50ZWxfZTExKTogTGlrZXdpc2UuCgkoaW50ZWxfZTA5KTogU2V0IG9wZXJhbmQgc2l6ZSBhbmQgY2xlYW4gdW5zcGVjaWZpZWQgZm9yCgkiWFhYIFBUUiIuCgoyMDA4LTAxLTExICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogcmVhZC5jIChzX3NwYWNlKTogRGVjbGFyZSBgcmVwZWF0JyBhcyBvZmZzZXRULgoKMjAwOC0wMS0xMCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAobWF0Y2hfdGVtcGxhdGUpOiBDaGVjayBwcm9jZXNzb3Igc3VwcG9ydAoJZmlyc3QuCgoyMDA4LTAxLTEwICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChtYXRjaF90ZW1wbGF0ZSk6IENvbnRpbnVlIGlmIHByb2Nlc3NvcgoJZG9lc24ndCBtYXRjaC4KCjIwMDgtMDEtMDkgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWlhNjQuYyAoaWE2NF9jb252ZXJ0X2ZyYWcpOiBaZXJvLWluaXRpYWxpemUgcm9vbSBmb3IKCXVud2luZCBwZXJzb25hbGl0eSBmdW5jdGlvbiBhZGRyZXNzLgoKMjAwOC0wMS0wOSAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIGR3YXJmMmRiZy5jIChvdXRfc2xlYjEyOCk6IERlbGV0ZS4KCShzaXplX2ZpeGVkX2luY19saW5lX2FkZHIsIGVtaXRfZml4ZWRfaW5jX2xpbmVfYWRkcik6IE5ldy4KCShvdXRfZml4ZWRfaW5jX2xpbmVfYWRkcik6IERlbGV0ZS4KCShyZWxheF9pbmNfbGluZV9hZGRyLCBkd2FyZjJkYmdfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiBDYWxsIG5ldwoJc2l6ZV9maXhlZF9pbmNfbGluZV9hZGRyIGlmIERXQVJGMl9VU0VfRklYRURfQURWQU5DRV9QQyBpcyBzZXQuCgkoZHdhcmYyZGJnX2NvbnZlcnRfZnJhZyk6IExpa2V3aXNlIGZvciBlbWl0X2ZpeGVkX2luY19saW5lX2FkZHIuCgkocHJvY2Vzc19lbnRyaWVzKTogUmVtb3ZlIGNhbGxzIHRvIG91dF9maXhlZF9pbmNfbGluZV9hZGRyLiAgV2hlbgoJRFdBUkYyX1VTRV9GSVhFRF9BRFZBTkNFX1BDIGlzIHNldCwgY2FsbCByZWxheF9pbmNfbGluZV9hZGRyLgoJKiByZWFkLmggKGVtaXRfZXhwcl9maXgpOiBOZXcgcHJvdG90eXBlLgoJKiByZWFkLmMgKGVtaXRfZXhwcik6IE1vdmUgY29kZSB0byBlbWl0X2V4cHJfZml4IGFuZCB1c2UgaXQgaGVyZS4KCShlbWl0X2V4cHJfZml4KTogTmV3LgoKMjAwOC0wMS0wOSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAobWF0Y2hfdGVtcGxhdGUpOiBDaGVjayByZWdpc3RlciBzaXplCglvbmx5IHdoZW4gc2l6ZSBvZiBvcGVyYW5kcyBjYW4gYmUgZW5jb2RlZCB0aGUgY2Fub25pY2FsIHdheS4KCjIwMDgtMDEtMDggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKGkzODZfb3BlcmFuZCk6IFJlbmFtZWQgdG8gLi4uCgkoaTM4Nl9hdHRfb3BlcmFuZCk6IFRoaXMuCgkocGFyc2Vfb3BlcmFuZHMpOiBVcGRhdGVkLgoKMjAwOC0wMS0wNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZG9jL2MtaTM4Ni50ZXhpOiBVcGRhdGUgLmF0dF9tbmVtb25pYyBhbmQgLmludGVsX21uZW1vbmljLgoKCSogY29uZmlnL3RjLWkzODYuYyAoc2V0X2ludGVsX21uZW1vbmljKTogU2V0IGludGVsX21uZW1vbmljCglvbmx5LgoJKG1kX2Fzc2VtYmxlKTogUmVtb3ZlIEludGVsIG1vZGUgd29ya2Fyb3VuZC4KCShtYXRjaF90ZW1wbGF0ZSk6IENoZWNrIHN1cHBvcnQgZm9yIG9sZCBnY2MsIEFUJlQgbW5lbW9uaWMKCWFuZCBJbnRlbCBTeW50YXguCgkobWRfcGFyc2Vfb3B0aW9uKTogRG9uJ3Qgc2V0IGludGVsX21uZW1vbmljIHRvIDAgZm9yCglPUFRJT05fTU9MRF9HQ0MuCgoyMDA4LTAxLTA0ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5oOiBVcGRhdGUgY29weXJpZ2h0IHRvIDIwMDguCgoyMDA4LTAxLTA0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXBwYy5jIChwYXJzZV9jcHUpOiBQcmVzZXJ2ZSB0aGUgc2V0dGluZ3Mgb2YgdGhlCglQUENfT1BDT0RFX0FMVElWRUMgYW5kIFBQQ19PUENPREVfU1BFIGZsYWdzLgoKMjAwOC0wMS0wMyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAobWRfYXNzZW1ibGUpOiBVc2UgIWludGVsX21uZW1vbmljIGluc3RlYWQKCW9mIFNZU1YzODZfQ09NUEFULgoKMjAwOC0wMS0wMyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZ2FzL2NvbmZpZy90Yy1pMzg2LmMgKGNwdV9hcmNoX2ZsYWdzX25vdCk6IFJlbW92ZWQuCgkoY3B1X2ZsYWdzX25vdCk6IExpa2V3aXNlLgoJKGNwdV9mbGFnc19tYXRjaCk6IFVwZGF0ZWQgdG8gY2hlY2sgNjRiaXQgYW5kIGFyY2guCgkoc2V0X2NvZGVfZmxhZyk6IFJlbW92ZSBjcHVfYXJjaF9mbGFnc19ub3QuCgkoc2V0XzE2Yml0X2djY19jb2RlX2ZsYWcpOiBMaWtld2lzZS4KCShzZXRfY3B1X2FyY2gpOiBMaWtld2lzZS4KCShtZF9iZWdpbik6IExpa2V3aXNlLgoJKHBhcnNlX2luc24pOiBDYWxsIGNwdV9mbGFnc19tYXRjaCB0byBjaGVjayA2NGJpdCBhbmQgYXJjaC4KCShtYXRjaF90ZW1wbGF0ZSk6IExpa2V3aXNlLgoKMjAwOC0wMS0wMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChwcm9jZXNzX2RyZXgpOiBJbml0aWFsaXplIG1vZHJtX3JlZyBhbmQKCW1vZHJtX3JlZ21lbSB0byAwIGluc3RlYWQgb2YgTm9uZS4KCjIwMDgtMDEtMDMgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKG1hdGNoX3RlbXBsYXRlKTogVXNlIHRoZSB4bW13b3JkIGZpZWxkCglpbnN0ZWFkIG9mIG5vX3hzdWYuCgoyMDA4LTAxLTAyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChwcm9jZXNzX3N1ZmZpeCk6IEZpeCBhIHR5cG8uCgoyMDA4LTAxLTAyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJUFIgZ2FzLzU1MzQKCSogY29uZmlnL3RjLWkzODYuYyAobWF0Y2hfdGVtcGxhdGUpOiBIYW5kbGUgWE1NV09SRF9NTkVNX1NVRkZJWC4KCUNoZWNrIG1lbW9yeSBzaXplIGluIEludGVsIG1vZGUuCgkocHJvY2Vzc19zdWZmaXgpOiBIYW5kbGUgWE1NV09SRF9NTkVNX1NVRkZJWC4KCShpbnRlbF9lMDkpOiBMaWtld2lzZS4KCgkqIGNvbmZpZy90Yy1pMzg2LmggKFhNTVdPUkRfTU5FTV9TVUZGSVgpOiBOZXcuCgoyMDA4LTAxLTAyICBDYXRoZXJpbmUgTW9vcmUgIDxjbG1AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfaXApOiBDaGVjayBvcGVyYW5kcyBvbiBqYWxyIGluc3RydWN0aW9uLgoKRm9yIG9sZGVyIGNoYW5nZXMgc2VlIENoYW5nZUxvZy0yMDA3CgwKQ29weXJpZ2h0IChDKSAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgoKQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlsZSwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0Cm5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4KCkxvY2FsIFZhcmlhYmxlczoKbW9kZTogY2hhbmdlLWxvZwpsZWZ0LW1hcmdpbjogOApmaWxsLWNvbHVtbjogNzQKdmVyc2lvbi1jb250cm9sOiBuZXZlcgpFbmQ6Cg==