ZGlmZiAtLWdpdCBhL3JlZGhhdC9xdWFnZ2Euc3BlYy5pbiBiL3JlZGhhdC9xdWFnZ2Euc3BlYy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMGFjMTg4Ci0tLSAvZGV2L251bGwKKysrIGIvcmVkaGF0L3F1YWdnYS5zcGVjLmluCkBAIC0wLDAgKzEsMzgzIEBACisjIGNvbmZpZ3VyZSBvcHRpb25zCislZGVmaW5lIAl3aXRoX3NubXAJMAorJWRlZmluZQkJd2l0aF92dHlzaAkxCislZGVmaW5lCQl3aXRoX29zcGZfdGUJMQorJWRlZmluZQkJd2l0aF9uc3NhCTEKKyVkZWZpbmUJCXdpdGhfb3BhcXVlX2xzYSAxCislZGVmaW5lCQl3aXRoX3RjcF96ZWJyYQkwCislZGVmaW5lCQl3aXRoX3Z0eXNoCTEKKyVkZWZpbmUJCXdpdGhfcGFtCTEKKyVkZWZpbmUJCXdpdGhfaXB2NgkxCislZGVmaW5lCQl3aXRoX29zcGZjbGllbnQgMQorJWRlZmluZQkJd2l0aF9vc3BmYXBpCTEKKyVkZWZpbmUJCXdpdGhfbXVsdGlwYXRoCTY0CislZGVmaW5lCQlxdWFnZ2FfdXNlcglxdWFnZ2EKKyVkZWZpbmUJCXZ0eV9ncm91cAl6ZWJyYXZ0eQorCisjIHBhdGggZGVmaW5lcworJWRlZmluZQkJX3N5c2NvbmZkaXIJL2V0Yy9xdWFnZ2EKKyVkZWZpbmUJCXplYl9zcmMJCSV7X2J1aWxkZGlyfS8le25hbWV9LSV7dmVyc2lvbn0KKyVkZWZpbmUJCXplYl9yaF9zcmMJJXt6ZWJfc3JjfS9yZWRoYXQKKyVkZWZpbmUJCXplYl9kb2NzCSV7emViX3NyY30vZG9jCisKKyMgZGVmaW5lcyBmb3IgY29uZmlndXJlCislZGVmaW5lCQlfbGliZXhlY2Rpcgkle19leGVjX3ByZWZpeH0vbGliZXhlYy9xdWFnZ2EKKyVkZWZpbmUJCV9pbmNsdWRlZGlyCSV7X3ByZWZpeH0vaW5jbHVkZS9xdWFnZ2EKKyVkZWZpbmUJCV9saWJkaXIJCSV7X2V4ZWNfcHJlZml4fS8le19saWJ9L3F1YWdnYQorJWRlZmluZQkJX2xvY2Fsc3RhdGVkaXIJL3Zhci9ydW4vcXVhZ2dhCisKK1N1bW1hcnk6IFJvdXRpbmcgZGFlbW9uCitOYW1lOgkJcXVhZ2dhCitWZXJzaW9uOglAVkVSU0lPTkAKK1JlbGVhc2U6CUBDT05GREFURUAwMQorTGljZW5zZToJR1BMCitHcm91cDogU3lzdGVtIEVudmlyb25tZW50L0RhZW1vbnMKK1NvdXJjZTA6CWh0dHA6Ly93d3cucXVhZ2dhLm5ldC9zbmFwc2hvdHMvY3ZzLyV7bmFtZX0tJXt2ZXJzaW9ufS50YXIuZ3oKK1VSTDoJCWh0dHA6Ly93d3cucXVhZ2dhLm5ldAorJWlmICV3aXRoX3NubXAKKyNCdWlsZFJlcXVpcmVzOgl1Y2Qtc25tcC1kZXZlbAorUHJlcmVxOgkJdWNkLXNubXAKKyVlbmRpZgorJWlmICV3aXRoX3Z0eXNoCitCdWlsZFJlcXVpcmVzOglyZWFkbGluZSByZWFkbGluZS1kZXZlbCBuY3Vyc2VzIG5jdXJzZXMtZGV2ZWwKK1ByZXJlcToJCXJlYWRsaW5lIG5jdXJzZXMKKyVlbmRpZgorQnVpbGRSZXF1aXJlczoJdGV4aW5mbyB0ZXRleCBhdXRvY29uZiBwYW0tZGV2ZWwgcGF0Y2gKKyMgSW5pdHNjcmlwdHMgPiA1LjYwIGlzIHJlcXVpcmVkIGZvciBJUHY2IHN1cHBvcnQKK1ByZXJlcToJCWluaXRzY3JpcHRzID49IDUuNjAKK1ByZXJlcToJCW9wZW5zc2wgbmN1cnNlcyByZWFkbGluZSBwYW0KK1ByZXJlcToJCS9zYmluL2luc3RhbGwtaW5mbworUHJvdmlkZXM6CXJvdXRpbmdkYWVtb24KK0J1aWxkUm9vdDoJJXtfdG1wcGF0aH0vJXtuYW1lfS0le3ZlcnNpb259LXJvb3QKK09ic29sZXRlczoJYmlyZCBnYXRlZCBtcnQgemVicmEKKworJWRlc2NyaXB0aW9uCitRdWFnZ2EgaXMgYSBmcmVlIHNvZnR3YXJlIHRoYXQgbWFuYWdlcyBUQ1AvSVAgYmFzZWQgcm91dGluZworcHJvdG9jb2wuIEl0IHRha2VzIG11bHRpLXNlcnZlciBhbmQgbXVsdGktdGhyZWFkIGFwcHJvYWNoIHRvIHJlc29sdmUKK3RoZSBjdXJyZW50IGNvbXBsZXhpdHkgb2YgdGhlIEludGVybmV0LgorCitRdWFnZ2Egc3VwcG9ydHMgQkdQNCwgQkdQNCssIE9TUEZ2MiwgT1NQRnYzLCBSSVB2MSwgUklQdjIsIGFuZCBSSVBuZy4KKworUXVhZ2dhIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgYXMgYSBSb3V0ZSBTZXJ2ZXIgYW5kIGEgUm91dGUgUmVmbGVjdG9yLiBJdCBpcworbm90IGEgdG9vbGtpdCwgaXQgcHJvdmlkZXMgZnVsbCByb3V0aW5nIHBvd2VyIHVuZGVyIGEgbmV3IGFyY2hpdGVjdHVyZS4KK1F1YWdnYSBieSBkZXNpZ24gaGFzIGEgcHJvY2VzcyBmb3IgZWFjaCBwcm90b2NvbC4KKworUXVhZ2dhIGlzIGEgZm9yayBvZiBHTlUgWmVicmEuCisKKyVwYWNrYWdlIGNvbnRyaWIKK1N1bW1hcnk6IGNvbnRyaWIgdG9vbHMgZm9yIHF1YWdnYQorR3JvdXA6IFN5c3RlbSBFbnZpcm9ubWVudC9EYWVtb25zCisKKyVkZXNjcmlwdGlvbiBjb250cmliCitDb250cmlidXRlZC8zcmQgcGFydHkgdG9vbHMgd2hpY2ggbWF5IGJlIG9mIHVzZSB3aXRoIHF1YWdnYS4KKworJXBhY2thZ2UgZGV2ZWwKK1N1bW1hcnk6IEhlYWRlciBhbmQgb2JqZWN0IGZpbGVzIGZvciBxdWFnZ2EgZGV2ZWxvcG1lbnQKK0dyb3VwOiBTeXN0ZW0gRW52aXJvbm1lbnQvRGFlbW9ucworCislZGVzY3JpcHRpb24gZGV2ZWwKK1RoZSBxdWFnZ2EtZGV2ZWwgcGFja2FnZSBjb250YWlucyB0aGUgaGVhZGVyIGFuZCBvYmplY3QgZmlsZXMgbmVjY2Vzc2FyeSBmb3IKK2RldmVsb3BpbmcgT1NQRi1BUEkgYW5kIHF1YWdnYSBhcHBsaWNhdGlvbnMuCisKKyVwcmVwCislc2V0dXAgIC1xCisKKyVidWlsZAorJWNvbmZpZ3VyZSBcCislaWYgJXdpdGhfaXB2NgorCS0tZW5hYmxlLWlwdjYgXAorJWVuZGlmCislaWYgJXdpdGhfc25tcAorCS0tZW5hYmxlLXNubXAgXAorJWVuZGlmCislaWYgJXdpdGhfbXVsdGlwYXRoCisJLS1lbmFibGUtbXVsdGlwYXRoPSV3aXRoX211bHRpcGF0aCBcCislZW5kaWYKKyVpZiAld2l0aF90Y3BfemVicmEKKwktLWVuYWJsZS10Y3AtemVicmEgXAorJWVuZGlmCislaWYgJXdpdGhfbnNzYQorCS0tZW5hYmxlLW5zc2EgXAorJWVuZGlmCislaWYgJXdpdGhfb3BhcXVlX2xzYQorCS0tZW5hYmxlLW9wYXF1ZS1sc2EgXAorJWVuZGlmCislaWYgJXdpdGhfb3NwZl90ZQorCS0tZW5hYmxlLW9zcGYtdGUgXAorJWVuZGlmCislaWYgJXdpdGhfdnR5c2gKKwktLWVuYWJsZS12dHlzaCBcCislZW5kaWYKKyVpZiAld2l0aF9vc3BmY2xpZW50IAorCS0tZW5hYmxlLW9zcGZjbGllbnQ9eWVzIFwKKyVlbHNlCisJLS1lbmFibGUtb3NwZmNsaWVudD1ub1wKKyVlbmRpZgorJWlmICV3aXRoX29zcGZhcGkKKwktLWVuYWJsZS1vc3BmYXBpPXllcyBcCislZWxzZQorCS0tZW5hYmxlLW9zcGZhcGk9bm8gXAorJWVuZGlmCislaWYgJXdpdGhfcGFtCisJLS13aXRoLWxpYnBhbSBcCislZW5kaWYKKyVpZiAlcXVhZ2dhX3VzZXIKKwktLWVuYWJsZS11c2VyPSVxdWFnZ2FfdXNlciBcCisJLS1lbmFibGUtZ3JvdXA9JXF1YWdnYV91c2VyIFwKKyVlbmRpZgorJWlmICV2dHlfZ3JvdXAKKwktLWVuYWJsZS12dHktZ3JvdXA9JXZ0eV9ncm91cCBcCislZW5kaWYKKy0td2l0aC1jZmxhZ3M9Ii1PMiIgXAorLS1lbmFibGUtbmV0bGluaworCittYWtlICV7P19zbXBfbWZsYWdzfSBNQUtFSU5GTz0ibWFrZWluZm8gLS1uby1zcGxpdCIKKworcHVzaGQgZG9jCit0ZXhpMmh0bWwgcXVhZ2dhLnRleGkKK3BvcGQKKworJWluc3RhbGwKK3JtIC1yZiAkUlBNX0JVSUxEX1JPT1QKKworaW5zdGFsbCAtZCAkUlBNX0JVSUxEX1JPT1QvZXRjL3tyYy5kL2luaXQuZCxzeXNjb25maWcsbG9ncm90YXRlLmQscGFtLmR9IFwKKwkkUlBNX0JVSUxEX1JPT1QvdmFyL2xvZy9xdWFnZ2EgJFJQTV9CVUlMRF9ST09UJXtfaW5mb2Rpcn0KKworbWFrZSBpbnN0YWxsIFwKKwlERVNURElSPSRSUE1fQlVJTERfUk9PVAorCisjIFJlbW92ZSB0aGlzIGZpbGUsIGFzIGl0IGlzIHVuaW5zdGFsbGVkIGFuZCBjYXVzZXMgZXJyb3JzIHdoZW4gYnVpbGRpbmcgb24gUkg5CitybSAtcmYgJFJQTV9CVUlMRF9ST09UL3Vzci9zaGFyZS9pbmZvL2RpcgorCitpbnN0YWxsICV7emViX3JoX3NyY30vemVicmEuaW5pdCAkUlBNX0JVSUxEX1JPT1QvZXRjL3JjLmQvaW5pdC5kL3plYnJhCitpbnN0YWxsICV7emViX3JoX3NyY30vYmdwZC5pbml0ICRSUE1fQlVJTERfUk9PVC9ldGMvcmMuZC9pbml0LmQvYmdwZAorJWlmICV3aXRoX2lwdjYKK2luc3RhbGwgJXt6ZWJfcmhfc3JjfS9vc3BmNmQuaW5pdCAkUlBNX0JVSUxEX1JPT1QvZXRjL3JjLmQvaW5pdC5kL29zcGY2ZAoraW5zdGFsbCAle3plYl9yaF9zcmN9L3JpcG5nZC5pbml0ICRSUE1fQlVJTERfUk9PVC9ldGMvcmMuZC9pbml0LmQvcmlwbmdkCislZW5kaWYKK2luc3RhbGwgJXt6ZWJfcmhfc3JjfS9vc3BmZC5pbml0ICRSUE1fQlVJTERfUk9PVC9ldGMvcmMuZC9pbml0LmQvb3NwZmQKK2luc3RhbGwgJXt6ZWJfcmhfc3JjfS9yaXBkLmluaXQgJFJQTV9CVUlMRF9ST09UL2V0Yy9yYy5kL2luaXQuZC9yaXBkCitpbnN0YWxsIC1tNjQ0ICV7emViX3JoX3NyY30vcXVhZ2dhLnBhbSAkUlBNX0JVSUxEX1JPT1QvZXRjL3BhbS5kL3F1YWdnYQoraW5zdGFsbCAtbTY0NCAle3plYl9yaF9zcmN9L3F1YWdnYS5sb2dyb3RhdGUgJFJQTV9CVUlMRF9ST09UL2V0Yy9sb2dyb3RhdGUuZC9xdWFnZ2EKK2luc3RhbGwgLWQgLW03NTAgICRSUE1fQlVJTERfUk9PVC92YXIvcnVuL3F1YWdnYQorCislcHJlCisjIGFkZCB2dHlfZ3JvdXAKKyVpZiAldnR5X2dyb3VwCitncm91cGFkZCAtciAldnR5X2dyb3VwIDI+IC9kZXYvbnVsbCB8fCA6CislZW5kaWYKKyMgYWRkIHF1YWdnYSB1c2VyIGFuZCBncm91cAorJWlmICVxdWFnZ2FfdXNlcgorL3Vzci9zYmluL3VzZXJhZGQgLU0gLXIgLXMgL2Jpbi9mYWxzZSAtYyAiUXVhZ2dhIHJvdXRpbmcgc3VpdGUiIFwKKyAtZCAlX2xvY2Fsc3RhdGVkaXIgJXF1YWdnYV91c2VyIDI+IC9kZXYvbnVsbCB8fCA6CislZW5kaWYKKworJXBvc3QKKyMgemVicmFfc3BlY19hZGRfc2VydmljZSA8c2VydmljZSBuYW1lPiA8cG9ydC9wcm90bz4gPGNvbW1lbnQ+CisjIGUuZy4gemVicmFfc3BlY19hZGRfc2VydmljZSB6ZWJyYXNydiAyNjAwL3RjcCAiemVicmEgc2VydmljZSIKKworemVicmFfc3BlY19hZGRfc2VydmljZSAoKQoreworICAjIEFkZCBwb3J0IC9ldGMvc2VydmljZXMgZW50cnkgaWYgaXQgaXNuJ3QgYWxyZWFkeSB0aGVyZSAKKyAgaWYgWyAtZiAvZXRjL3NlcnZpY2VzIF0gJiYgISBncmVwIC1xICJeJDFbXmEtekEtWjAtOV0iIC9ldGMvc2VydmljZXMgOyB0aGVuCisgICAgZWNobyAiJDEJCSQyCQkJIyAkMyIgID4+IC9ldGMvc2VydmljZXMKKyAgZmkKK30KKworemVicmFfc3BlY19hZGRfc2VydmljZSB6ZWJyYXNydiAyNjAwL3RjcCAiemVicmEgc2VydmljZSIKK3plYnJhX3NwZWNfYWRkX3NlcnZpY2UgemVicmEgICAgMjYwMS90Y3AgInplYnJhIHZ0eSIKK3plYnJhX3NwZWNfYWRkX3NlcnZpY2UgcmlwZCAgICAgMjYwMi90Y3AgIlJJUGQgdnR5IgorJWlmICV3aXRoX2lwdjYKK3plYnJhX3NwZWNfYWRkX3NlcnZpY2UgcmlwbmdkICAgMjYwMy90Y3AgIlJJUG5nZCB2dHkiCislZW5kaWYKK3plYnJhX3NwZWNfYWRkX3NlcnZpY2Ugb3NwZmQgICAgMjYwNC90Y3AgIk9TUEZkIHZ0eSIKK3plYnJhX3NwZWNfYWRkX3NlcnZpY2UgYmdwZCAgICAgMjYwNS90Y3AgIkJHUGQgdnR5IgorJWlmICV3aXRoX2lwdjYKK3plYnJhX3NwZWNfYWRkX3NlcnZpY2Ugb3NwZjZkICAgMjYwNi90Y3AgIk9TUEY2ZCB2dHkiCislZW5kaWYKKyVpZiAld2l0aF9vc3BmYXBpCit6ZWJyYV9zcGVjX2FkZF9zZXJ2aWNlIG9zcGZhcGkgIDI2MDcvdGNwICJPU1BGLUFQSSIKKyVlbmRpZgorCisvc2Jpbi9jaGtjb25maWcgLS1hZGQgemVicmEgCisvc2Jpbi9jaGtjb25maWcgLS1hZGQgcmlwZAorJWlmICV3aXRoX2lwdjYKKy9zYmluL2Noa2NvbmZpZyAtLWFkZCByaXBuZ2QKKy9zYmluL2Noa2NvbmZpZyAtLWFkZCBvc3BmNmQKKyVlbmRpZgorL3NiaW4vY2hrY29uZmlnIC0tYWRkIG9zcGZkCisvc2Jpbi9jaGtjb25maWcgLS1hZGQgYmdwZAorCisvc2Jpbi9pbnN0YWxsLWluZm8gJXtfaW5mb2Rpcn0vcXVhZ2dhLmluZm8uZ3ogJXtfaW5mb2Rpcn0vZGlyCisKKyMgQ3JlYXRlIGR1bW15IGZpbGVzIGlmIHRoZXkgZG9uJ3QgZXhpc3Qgc28gYmFzaWMgZnVuY3Rpb25zIGNhbiBiZSB1c2VkLgoraWYgWyAhIC1lICV7X3N5c2NvbmZkaXJ9L3plYnJhLmNvbmYgXTsgdGhlbgorCWVjaG8gImhvc3RuYW1lIGBob3N0bmFtZWAiID4gJXtfc3lzY29uZmRpcn0vemVicmEuY29uZgorCWNobW9kIDY0MCAle19zeXNjb25mZGlyfS96ZWJyYS5jb25mCitmaQoraWYgWyAhIC1lICV7X3N5c2NvbmZkaXJ9L3Z0eXNoLmNvbmYgXTsgdGhlbgorCXRvdWNoICV7X3N5c2NvbmZkaXJ9L3Z0eXNoLmNvbmYKKwljaG1vZCA2NDAgJXtfc3lzY29uZmRpcn0vdnR5c2guY29uZgorZmkKKworJXBvc3R1bgoraWYgWyAiJDEiIC1nZSAgIjEiIF07IHRoZW4KKwkvZXRjL3JjLmQvaW5pdC5kL3plYnJhICBjb25kcmVzdGFydCA+L2Rldi9udWxsIDI+JjEKKwkvZXRjL3JjLmQvaW5pdC5kL3JpcGQgICBjb25kcmVzdGFydCA+L2Rldi9udWxsIDI+JjEKKyVpZiAld2l0aF9pcHY2CisJL2V0Yy9yYy5kL2luaXQuZC9yaXBuZ2QgY29uZHJlc3RhcnQgPi9kZXYvbnVsbCAyPiYxCislZW5kaWYKKwkvZXRjL3JjLmQvaW5pdC5kL29zcGZkICBjb25kcmVzdGFydCA+L2Rldi9udWxsIDI+JjEKKyVpZiAld2l0aF9pcHY2CisJL2V0Yy9yYy5kL2luaXQuZC9vc3BmNmQgY29uZHJlc3RhcnQgPi9kZXYvbnVsbCAyPiYxCislZW5kaWYKKwkvZXRjL3JjLmQvaW5pdC5kL2JncGQgICBjb25kcmVzdGFydCA+L2Rldi9udWxsIDI+JjEKK2ZpCisvc2Jpbi9pbnN0YWxsLWluZm8gLS1kZWxldGUgJXtfaW5mb2Rpcn0vcXVhZ2dhLmluZm8uZ3ogJXtfaW5mb2Rpcn0vZGlyCisKKyVwcmV1bgoraWYgWyAiJDEiID0gIjAiIF07IHRoZW4KKyAgICAgICAgL3NiaW4vY2hrY29uZmlnIC0tZGVsIHplYnJhCisJL3NiaW4vY2hrY29uZmlnIC0tZGVsIHJpcGQKKyVpZiAld2l0aF9pcHY2CisJL3NiaW4vY2hrY29uZmlnIC0tZGVsIHJpcG5nZAorJWVuZGlmCisJL3NiaW4vY2hrY29uZmlnIC0tZGVsIG9zcGZkCislaWYgJXdpdGhfaXB2NgorCS9zYmluL2Noa2NvbmZpZyAtLWRlbCBvc3BmNmQKKyVlbmRpZgorCS9zYmluL2Noa2NvbmZpZyAtLWRlbCBiZ3BkCitmaQorCislY2xlYW4KKyNybSAtcmYgJFJQTV9CVUlMRF9ST09UCisKKyVmaWxlcworJWRlZmF0dHIoLSxyb290LHJvb3QpCislZG9jICovKi5zYW1wbGUqIEFVVEhPUlMgQ09QWUlORworJWRvYyBkb2MvcXVhZ2dhLmh0bWwKKyVkb2MgZG9jL21wbHMKKyVkb2MgQ2hhbmdlTG9nIElOU1RBTEwgTkVXUyBSRUFETUUgUkVQT1JUSU5HLUJVR1MgU0VSVklDRVMgVE9ETworJWlmICVxdWFnZ2FfdXNlcgorJWRpciAlYXR0cig3NTEsJXF1YWdnYV91c2VyLCVxdWFnZ2FfdXNlcikgJXtfc3lzY29uZmRpcn0KKyVkaXIgJWF0dHIoNzUwLCVxdWFnZ2FfdXNlciwlcXVhZ2dhX3VzZXIpIC92YXIvbG9nL3F1YWdnYSAKKyVkaXIgJWF0dHIoNzUxLCVxdWFnZ2FfdXNlciwlcXVhZ2dhX3VzZXIpIC92YXIvcnVuL3F1YWdnYQorJWVsc2UKKyVkaXIgJWF0dHIoNzUwLHJvb3Qscm9vdCkgJXtfc3lzY29uZmRpcn0KKyVkaXIgJWF0dHIoNzUwLHJvb3Qscm9vdCkgL3Zhci9sb2cvcXVhZ2dhCislZGlyICVhdHRyKDc1NSxyb290LHJvb3QpIC91c3Ivc2hhcmUvaW5mbworJWRpciAlYXR0cig3NTAscm9vdCxyb290KSAvdmFyL3J1bi9xdWFnZ2EKKyVlbmRpZgorJWlmICV2dHlfZ3JvdXAKKyVhdHRyKDc1MCwlcXVhZ2dhX3VzZXIsJXZ0eV9ncm91cCkgJXtfc3lzY29uZmRpcn0vdnR5c2guY29uZi5zYW1wbGUKKyVlbmRpZgorJXtfaW5mb2Rpcn0vKmluZm8qCisle19tYW5kaXJ9L21hbiovKgorJXtfc2JpbmRpcn0vKgorJWlmICV3aXRoX3Z0eXNoCisle19iaW5kaXJ9LyoKKyVlbmRpZgorJWNvbmZpZyAvZXRjL3F1YWdnYS9bIXZdKgorJWNvbmZpZyAvZXRjL3JjLmQvaW5pdC5kLyoKKyVjb25maWcobm9yZXBsYWNlKSAvZXRjL3BhbS5kL3F1YWdnYQorJWNvbmZpZyhub3JlcGxhY2UpICVhdHRyKDY0MCxyb290LHJvb3QpIC9ldGMvbG9ncm90YXRlLmQvKgorCislZmlsZXMgY29udHJpYgorJWRlZmF0dHIoLSxyb290LHJvb3QpCislZG9jIHRvb2xzCisKKyVmaWxlcyBkZXZlbAorJWRlZmF0dHIoLSxyb290LHJvb3QpCislZGlyICV7X2xpYmRpcn0vKgorJWRpciAle19pbmNsdWRlZGlyfS9vc3BmZC8qCislaWYgJXdpdGhfb3NwZmFwaQorJWRpciAle19pbmNsdWRlZGlyfS9vc3BmYXBpLyoKKyVlbmRpZgorCislY2hhbmdlbG9nCisqIFR1ZSBBdWcgMTIgMjAwMyBQYXVsIEpha21hIDxwYXVsQGRpc2hvbmUuc3Q+CistIFJlbmFtZWQgdG8gUXVhZ2dhCistIFN5bmMgdG8gUXVhZ2dhIHJlbGVhc2UgMC45NgorCisqIFR1ZSBNYXIgMjAgMjAwMyBQYXVsIEpha21hIDxwYXVsQGRpc2hvbmUuc3Q+CistIHplYnJhIHByaXZpbGVnZXMgc3VwcG9ydAorCisqIE1vbiBNYXIgMTggMjAwMyBQYXVsIEpha21hIDxwYXVsQGRpc2hvbmUuc3Q+CistIEZpeCBtZW0gbGVhayBpbiAnc2hvdyB0aHJlYWQgY3B1JworLSBSYWxwaCBLZWxsZXIncyBPU1BGLUFQSQorLSBBbWlyOiBGaXggY29uZmlndXJlLmFjIGZvciBuZXQtc25tcAorCisqIFNhdCBNYXIgMSAyMDAzIFBhdWwgSmFrbWEgPHBhdWxAZGlzaG9uZS5zdD4KKy0gb3NwZmQgSU9TIHByZWZpeCB0byBpbnRlcmZhY2UgbWF0Y2hpbmcgZm9yICduZXR3b3JrJyBzdGF0ZW1lbnQKKy0gdGVtcG9yYXJ5IGZpeCBmb3IgUHRQIGFuZCBJUHY2CistIHN5bmMgdG8gemVicmEub3JnIENWUworCisqIE1vbiBKYW4gMjAgMjAwMyBQYXVsIEpha21hIDxwYXVsQGRpc2hvbmUuc3Q+CistIHVwZGF0ZSB0byBsYXRlc3QgY3ZzCistIFlvbidzICJzaG93IHRocmVhZCBjcHUiIHBhdGNoIC0gMTcyMTcKKy0gd2FsayB1cCB0cmVlIC0gMTcyMTgKKy0gb3NwZmQgTlNTQSBmaXhlcyAtIDE2NjgxCistIG9zcGZkIG5zbSBmaXhlcyAtIDE2ODI0CistIG9zcGZkIE9MU0EgZml4ZXMgYW5kIG5ldyBmZWF0dXJlIC0gMTY4MjMgCistIEtBTUUgYW5kIGlmaW5kZXggZml4ZXMgLSAxNjUyNQorLSBzcGVjIGZpbGUgY2hhbmdlcyB0byBhbGxvdyByZWRoYXQgZmlsZXMgdG8gYmUgaW4gdHJlZQorCisqIFNhdCBEZWMgMjggMjAwMiBBbGV4YW5kZXIgSG9vZ2VyaHVpcyA8YWxleGhAaWhhdGVudC5jb20+CistIEFkZGVkIGNvbmRpdGlvbmFscyBmb3IgYnVpbGRpbmcgd2l0aChvdXQpIElQdjYsIHZ0eXNoLCBSSVAsIEJHUAorLSBGaXhlZCB1cCBzb21lIGJ1aWxkIHJlcXVpcmVtZW50cyAocGF0Y2gpCistIEFkZGVkIGNvbmRpdGlvbmFsIGJ1aWxkIHJlcXVpcmVtZW50cyBmb3IgdnR5c2ggLyBzbm1wCistIEFkZGVkIGNvbmRpdGlvbmFsIHRvICVmaWxlcyBmb3IgJV9iaW5kaXIgZGVwZW5kaW5nIG9uIHZ0eXNoCisKKyogTW9uIE5vdiAxMSAyMDAyIFBhdWwgSmFrbWEgPHBhdWxqQGFscGh5cmEuaWU+CistIHVwZGF0ZSB0byBsYXRlc3QgQ1ZTCistIGFkZCBHcmVnIFRyb3hlbCdzIG1kNSBidWZmZXIgY29weS9kdXAgZml4CistIGFkZCBSSVB2MSBmaXgKKy0gYWRkIEZyYW5rJ3MgbXVsdGljYXN0IGZsYWcgZml4CisKKyogV2VkIE9jdCAwOSAyMDAyIFBhdWwgSmFrbWEgPHBhdWxqQGFscGh5cmEuaWU+CistIHVwZGF0ZSB0byBsYXRlc3QgQ1ZTCistIHRpbWVzdGFtcGVkIGNyeXB0X3NlcW51bSBwYXRjaAorLSBvaS0+b25fd3JpdGVfcSBmaXgKKworKiBNb24gU2VwIDMwIDIwMDIgUGF1bCBKYWttYSA8cGF1bGpAYWxwaHlyYS5pZT4KKy0gdXBkYXRlIHRvIGxhdGVzdCBDVlMKKy0gYWRkIHZ0eXNoICd3cml0ZS1jb25maWcgKGludGVncmF0ZWR8ZGFlbW9uKScgcGF0Y2gKKy0gYWx3YXlzICdtYWtlIHJlYnVpbGQnIGluIHZ0eXNoLyB0byBjYXRjaCBuZXcgY29tbWFuZHMKKworKiBGcmkgU2VwIDEzIDIwMDIgUGF1bCBKYWttYSA8cGF1bGpAYWxwaHlyYS5pZT4KKy0gdXBkYXRlIHRvIDAuOTNiCisKKyogV2VkIFNlcCAxMSAyMDAyIFBhdWwgSmFrbWEgPHBhdWxqQGFscGh5cmEuaWU+CistIHVwZGF0ZSB0byBsYXRlc3QgQ1ZTCistIGFkZCAiL3NiaW4vaXAgcm91dGUgZmx1c2ggcHJvdG8gemVicmEiIHRvIHplYnJhIFJIIGluaXQgb24gc3RhcnR1cAorCisqIFNhdCBBdWcgMjQgMjAwMiBQYXVsIEpha21hIDxwYXVsakBhbHBoeXJhLmllPgorLSB1cGRhdGUgdG8gY3VycmVudCBDVlMKKy0gYWRkIE9TUEYgcG9pbnQgdG8gbXVsdGlwb2ludCBwYXRjaAorLSBhZGQgT1NQRiBidWdmaXhlcworLSBhZGQgQkdQIGhhc2ggb3B0aW1pc2F0aW9uIHBhdGNoCisKKyogRnJpIEp1biAxNCAyMDAyIFBhdWwgSmFrbWEgPHBhdWxqQGFscGh5cmEuaWU+CistIHVwZGF0ZSB0byAwLjkzLXByZTEgLyBDVlMKKy0gYWRkIGxpbmsgc3RhdGUgZGV0ZWN0aW9uIHN1cHBvcnQKKy0gYWRkIGdlbmVyaWMgUHRQIGFuZCBSRkMzMDIxIHN1cHBvcnQKKy0gdmFyaW91cyBidWcgZml4ZXMKKworKiBUaHUgQXVnIDA5IDIwMDEgRWxsaW90IExlZSA8c29wd2l0aEByZWRoYXQuY29tPiAwLjkxYS02CistIEZpeCBidWcgIzUxMzM2CisKKyogV2VkIEF1ZyAgMSAyMDAxIFRyb25kIEVpdmluZCBHbG9tc3L4ZCA8dGVnQHJlZGhhdC5jb20+IDAuOTFhLTUKKy0gVXNlIGdlbmVyaWMgaW5pdHNjcmlwdCBzdHJpbmdzIGluc3RlYWQgb2YgaW5pdHNjcmlwdCBzcGVjaWZpYworICAoICJTdGFydGluZyBmb286ICIgLT4gIlN0YXJ0aW5nICRwcm9nOiIgKQorCisqIEZyaSBKdWwgMjcgMjAwMSBFbGxpb3QgTGVlIDxzb3B3aXRoQHJlZGhhdC5jb20+IDAuOTFhLTQKKy0gQnVtcCB0aGUgcmVsZWFzZSB3aGVuIHJlYnVpbGRpbmcgaW50byB0aGUgZGlzdC4KKworKiBUdWUgRmViICA2IDIwMDEgVGltIFBvd2VycyA8dGltcEByZWRoYXQuY29tPgorLSBidWlsdCBmb3IgUG93ZXJ0b29scworCisqIFN1biBGZWIgIDQgMjAwMSBQZWtrYSBTYXZvbGEgPHBla2thc0BuZXRjb3JlLmZpPiAKKy0gSGFja2VkIHVwIGZyb20gUExEIExpbnV4IDAuOTAtMSwgTWFuZHJha2UgMC45MC0xbWRrIGFuZCBvbmUgZnJvbSB6ZWJyYS5vcmcuCistIFVwZGF0ZSB0byAwLjkxYQorLSBWZXJ5IGhlYXZ5IG1vZGlmaWNhdGlvbnMgdG8gaW5pdC5kLyosIC5zcGVjLCBwYW0sIGkxOG4sIGxvZ3JvdGF0ZSwgZXRjLgorLSBTaG91bGQgYmUgcXVpdGUgUmVkIEhhdCdpc3F1ZSBub3cuCg==