ZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3Bhc2NhbC52aW0gYi9ydW50aW1lL3N5bnRheC9wYXNjYWwudmltCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiYTE5OGYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3N5bnRheC9wYXNjYWwudmltCkBAIC0wLDAgKzEsMzU3IEBACisiIFZpbSBzeW50YXggZmlsZQorIiBMYW5ndWFnZToJUGFzY2FsCisiIFZlcnNpb246IDIuNworIiBMYXN0IENoYW5nZToJMjAwMyBNYXkgMTEKKyIgTWFpbnRhaW5lcjogIFhhdmllciBDculndXQgPHhhdmllci5jcmVndXRAZW5zZWVpaHQuZnI+CisiIFByZXZpb3VzIE1haW50YWluZXI6CU1hcmlvIEV1c2ViaW8gPGJpb0BkcS5mY3QudW5sLnB0PgorCisiIENvbnRyaWJ1dG9yczogVGltIENoYXNlIDx0Y2hhc2VAY3NjLmNvbT4sIFN0YXMgR3JhYm9pcyA8c3RzaUB2dHJhaWxzLmNvbT4sCisiCU1hemVuIE5FSUZFUiA8bWF6ZW4ubmVpZmVyLjIwMDFAc3VwYWVyby5mcj4sCisiCUtsYXVzIEhhc3QgPEtsYXVzLkhhc3RAYXJjb3IubmV0PgorCisiIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcworIiBGb3IgdmVyc2lvbiA2Lng6IFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZAoraWYgdmVyc2lvbiA8IDYwMAorICBzeW50YXggY2xlYXIKK2Vsc2VpZiBleGlzdHMoImI6Y3VycmVudF9zeW50YXgiKQorICBmaW5pc2gKK2VuZGlmCisKKworc3luIGNhc2UgaWdub3JlCitzeW4gc3luYyBsaW5lcz0yNTAKKworc3luIGtleXdvcmQgcGFzY2FsQm9vbGVhbgl0cnVlIGZhbHNlCitzeW4ga2V5d29yZCBwYXNjYWxDb25kaXRpb25hbAlpZiBlbHNlIHRoZW4KK3N5biBrZXl3b3JkIHBhc2NhbENvbnN0YW50CW5pbCBtYXhpbnQKK3N5biBrZXl3b3JkIHBhc2NhbExhYmVsCQljYXNlIGdvdG8gbGFiZWwKK3N5biBrZXl3b3JkIHBhc2NhbE9wZXJhdG9yCWFuZCBkaXYgZG93bnRvIGluIG1vZCBub3Qgb2Ygb3IgcGFja2VkIHdpdGgKK3N5biBrZXl3b3JkIHBhc2NhbFJlcGVhdAlkbyBmb3IgZG8gcmVwZWF0IHdoaWxlIHRvIHVudGlsCitzeW4ga2V5d29yZCBwYXNjYWxTdGF0ZW1lbnQJcHJvY2VkdXJlIGZ1bmN0aW9uCitzeW4ga2V5d29yZCBwYXNjYWxTdGF0ZW1lbnQJcHJvZ3JhbSBiZWdpbiBlbmQgY29uc3QgdmFyIHR5cGUKK3N5biBrZXl3b3JkIHBhc2NhbFN0cnVjdAlyZWNvcmQKK3N5biBrZXl3b3JkIHBhc2NhbFR5cGUJCWFycmF5IGJvb2xlYW4gY2hhciBpbnRlZ2VyIGZpbGUgcG9pbnRlciByZWFsIHNldAorc3luIGtleXdvcmQgcGFzY2FsVHlwZQkJc3RyaW5nIHRleHQgdmFyaWFudAorCisKK3N5biBrZXl3b3JkIHBhc2NhbFRvZG8gY29udGFpbmVkCVRPRE8KKworCisiIFN0cmluZworaWYgIWV4aXN0cygicGFzY2FsX29uZV9saW5lX3N0cmluZyIpCisgIHN5biByZWdpb24gIHBhc2NhbFN0cmluZyBtYXRjaGdyb3VwPXBhc2NhbFN0cmluZyBzdGFydD0rJysgZW5kPSsnKyBjb250YWlucz1wYXNjYWxTdHJpbmdFc2NhcGUKKyAgaWYgZXhpc3RzKCJwYXNjYWxfZ3BjIikKKyAgICBzeW4gcmVnaW9uICBwYXNjYWxTdHJpbmcgbWF0Y2hncm91cD1wYXNjYWxTdHJpbmcgc3RhcnQ9KyIrIGVuZD0rIisgY29udGFpbnM9cGFzY2FsU3RyaW5nRXNjYXBlR1BDCisgIGVsc2UKKyAgICBzeW4gcmVnaW9uICBwYXNjYWxTdHJpbmdFcnJvciBtYXRjaGdyb3VwPXBhc2NhbFN0cmluZ0Vycm9yIHN0YXJ0PSsiKyBlbmQ9KyIrIGNvbnRhaW5zPXBhc2NhbFN0cmluZ0VzY2FwZQorICBlbmRpZgorZWxzZQorICAid3Jvbmcgc3RyaW5ncworICBzeW4gcmVnaW9uICBwYXNjYWxTdHJpbmdFcnJvciBtYXRjaGdyb3VwPXBhc2NhbFN0cmluZ0Vycm9yIHN0YXJ0PSsnKyBlbmQ9KycrIGVuZD0rJCsgY29udGFpbnM9cGFzY2FsU3RyaW5nRXNjYXBlCisgIGlmIGV4aXN0cygicGFzY2FsX2dwYyIpCisgICAgc3luIHJlZ2lvbiAgcGFzY2FsU3RyaW5nRXJyb3IgbWF0Y2hncm91cD1wYXNjYWxTdHJpbmdFcnJvciBzdGFydD0rIisgZW5kPSsiKyBlbmQ9KyQrIGNvbnRhaW5zPXBhc2NhbFN0cmluZ0VzY2FwZUdQQworICBlbHNlCisgICAgc3luIHJlZ2lvbiAgcGFzY2FsU3RyaW5nRXJyb3IgbWF0Y2hncm91cD1wYXNjYWxTdHJpbmdFcnJvciBzdGFydD0rIisgZW5kPSsiKyBlbmQ9KyQrIGNvbnRhaW5zPXBhc2NhbFN0cmluZ0VzY2FwZQorICBlbmRpZgorCisgICJyaWdodCBzdHJpbmdzCisgIHN5biByZWdpb24gIHBhc2NhbFN0cmluZyBtYXRjaGdyb3VwPXBhc2NhbFN0cmluZyBzdGFydD0rJysgZW5kPSsnKyBvbmVsaW5lIGNvbnRhaW5zPXBhc2NhbFN0cmluZ0VzY2FwZQorICAiIFRvIHNlZSB0aGUgc3RhcnQgYW5kIGVuZCBvZiBzdHJpbmdzOgorICAiIHN5biByZWdpb24gIHBhc2NhbFN0cmluZyBtYXRjaGdyb3VwPXBhc2NhbFN0cmluZ0Vycm9yIHN0YXJ0PSsnKyBlbmQ9KycrIG9uZWxpbmUgY29udGFpbnM9cGFzY2FsU3RyaW5nRXNjYXBlCisgIGlmIGV4aXN0cygicGFzY2FsX2dwYyIpCisgICAgc3luIHJlZ2lvbiAgcGFzY2FsU3RyaW5nIG1hdGNoZ3JvdXA9cGFzY2FsU3RyaW5nIHN0YXJ0PSsiKyBlbmQ9KyIrIG9uZWxpbmUgY29udGFpbnM9cGFzY2FsU3RyaW5nRXNjYXBlR1BDCisgIGVsc2UKKyAgICBzeW4gcmVnaW9uICBwYXNjYWxTdHJpbmdFcnJvciBtYXRjaGdyb3VwPXBhc2NhbFN0cmluZ0Vycm9yIHN0YXJ0PSsiKyBlbmQ9KyIrIG9uZWxpbmUgY29udGFpbnM9cGFzY2FsU3RyaW5nRXNjYXBlCisgIGVuZGlmCitlbmQKK3N5biBtYXRjaCAgIHBhc2NhbFN0cmluZ0VzY2FwZQkJY29udGFpbmVkICInJyIKK3N5biBtYXRjaCAgIHBhc2NhbFN0cmluZ0VzY2FwZUdQQwljb250YWluZWQgJyIiJworCisKKyIgc3luIG1hdGNoICAgcGFzY2FsSWRlbnRpZmllcgkJIlw8W2EtekEtWl9dW2EtekEtWjAtOV9dKlw+IgorCisKK2lmIGV4aXN0cygicGFzY2FsX3N5bWJvbF9vcGVyYXRvciIpCisgIHN5biBtYXRjaCAgIHBhc2NhbFN5bWJvbE9wZXJhdG9yICAgICAgIlsrXC0vKj1dIgorICBzeW4gbWF0Y2ggICBwYXNjYWxTeW1ib2xPcGVyYXRvciAgICAgICJbPD5dPVw9IgorICBzeW4gbWF0Y2ggICBwYXNjYWxTeW1ib2xPcGVyYXRvciAgICAgICI8PiIKKyAgc3luIG1hdGNoICAgcGFzY2FsU3ltYm9sT3BlcmF0b3IgICAgICAiOj0iCisgIHN5biBtYXRjaCAgIHBhc2NhbFN5bWJvbE9wZXJhdG9yICAgICAgIlsoKV0iCisgIHN5biBtYXRjaCAgIHBhc2NhbFN5bWJvbE9wZXJhdG9yICAgICAgIlwuXC4iCisgIHN5biBtYXRjaCAgIHBhc2NhbFN5bWJvbE9wZXJhdG9yICAgICAgICJbXF4uXSIKKyAgc3luIG1hdGNoICAgcGFzY2FsTWF0cml4RGVsaW1pdGVyCSJbXVtdIgorICAiaWYgeW91IHByZWZlciB5b3UgY2FuIGhpZ2hsaWdodCB0aGUgcmFuZ2UKKyAgInN5biBtYXRjaCAgcGFzY2FsTWF0cml4RGVsaW1pdGVyCSJbXGRcK1wuXC5cZFwrXSIKK2VuZGlmCisKK3N5biBtYXRjaCAgcGFzY2FsTnVtYmVyCQkiLVw9XDxcZFwrXD4iCitzeW4gbWF0Y2ggIHBhc2NhbEZsb2F0CQkiLVw9XDxcZFwrXC5cZFwrXD4iCitzeW4gbWF0Y2ggIHBhc2NhbEZsb2F0CQkiLVw9XDxcZFwrXC5cZFwrW2VFXS1cPVxkXCtcPiIKK3N5biBtYXRjaCAgcGFzY2FsSGV4TnVtYmVyCSJcJFswLTlhLWZBLUZdXCtcPiIKKworaWYgZXhpc3RzKCJwYXNjYWxfbm9fdGFicyIpCisgIHN5biBtYXRjaCBwYXNjYWxTaG93VGFiICJcdCIKK2VuZGlmCisKK3N5biByZWdpb24gcGFzY2FsQ29tbWVudAlzdGFydD0iKFwqIiAgZW5kPSJcKikiIGNvbnRhaW5zPXBhc2NhbFRvZG8KK3N5biByZWdpb24gcGFzY2FsQ29tbWVudAlzdGFydD0ieyIgIGVuZD0ifSIgY29udGFpbnM9cGFzY2FsVG9kbworCisKK2lmICFleGlzdHMoInBhc2NhbF9ub19mdW5jdGlvbnMiKQorICAiIGFycmF5IGZ1bmN0aW9ucworICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglwYWNrIHVucGFjaworCisgICIgbWVtb3J5IGZ1bmN0aW9uCisgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCURpc3Bvc2UgTmV3CisKKyAgIiBtYXRoIGZ1bmN0aW9ucworICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglBYnMgQXJjdGFuIENvcyBFeHAgTG4gU2luIFNxciBTcXJ0CisKKyAgIiBmaWxlIGZ1bmN0aW9ucworICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglFb2YgRW9sbiBXcml0ZSBXcml0ZWxuCisgIHN5biBrZXl3b3JkIHBhc2NhbFByZWRlZmluZWQJSW5wdXQgT3V0cHV0CisKKyAgaWYgZXhpc3RzKCJwYXNjYWxfdHJhZGl0aW9uYWwiKQorICAgICIgVGhlc2UgZnVuY3Rpb25zIGRvIG5vdCBzZWVtIHRvIGJlIGRlZmluZWQgaW4gVHVyYm8gUGFzY2FsCisgICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JR2V0IFBhZ2UgUHV0CisgIGVuZGlmCisKKyAgIiBvcmRpbmFsIGZ1bmN0aW9ucworICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglPZGQgUHJlZCBTdWNjCisKKyAgIiB0cmFuc2ZlcnQgZnVuY3Rpb25zCisgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCUNociBPcmQgUm91bmQgVHJ1bmMKK2VuZGlmCisKKworaWYgIWV4aXN0cygicGFzY2FsX3RyYWRpdGlvbmFsIikKKworICBzeW4ga2V5d29yZCBwYXNjYWxTdGF0ZW1lbnQJY29uc3RydWN0b3IgZGVzdHJ1Y3RvciBpbXBsZW1lbnRhdGlvbiBpbmhlcml0ZWQKKyAgc3luIGtleXdvcmQgcGFzY2FsU3RhdGVtZW50CWludGVyZmFjZSB1bml0IHVzZXMKKyAgc3luIGtleXdvcmQgcGFzY2FsTW9kaWZpZXIJYWJzb2x1dGUgYXNzZW1ibGVyIGV4dGVybmFsIGZhciBmb3J3YXJkIGlubGluZQorICBzeW4ga2V5d29yZCBwYXNjYWxNb2RpZmllcglpbnRlcnJ1cHQgbmVhciB2aXJ0dWFsCisgIHN5biBrZXl3b3JkIHBhc2NhbEFjY2VzCXByaXZhdGUgcHVibGljCisgIHN5biBrZXl3b3JkIHBhc2NhbFN0cnVjdAlvYmplY3QKKyAgc3luIGtleXdvcmQgcGFzY2FsT3BlcmF0b3IJc2hsIHNociB4b3IKKworICBzeW4gcmVnaW9uIHBhc2NhbFByZVByb2MJc3RhcnQ9IihcKlwkIiAgZW5kPSJcKikiIGNvbnRhaW5zPXBhc2NhbFRvZG8KKyAgc3luIHJlZ2lvbiBwYXNjYWxQcmVQcm9jCXN0YXJ0PSJ7XCQiICBlbmQ9In0iCisKKyAgc3luIHJlZ2lvbiAgcGFzY2FsQXNtCQltYXRjaGdyb3VwPXBhc2NhbEFzbUtleSBzdGFydD0iXDxhc21cPiIgZW5kPSJcPGVuZFw+IiBjb250YWlucz1wYXNjYWxDb21tZW50LHBhc2NhbFByZVByb2MKKworICBzeW4ga2V5d29yZCBwYXNjYWxUeXBlCVNob3J0SW50IExvbmdJbnQgQnl0ZSBXb3JkCisgIHN5biBrZXl3b3JkIHBhc2NhbFR5cGUJQnl0ZUJvb2wgV29yZEJvb2wgTG9uZ0Jvb2wKKyAgc3luIGtleXdvcmQgcGFzY2FsVHlwZQlDYXJkaW5hbCBMb25nV29yZAorICBzeW4ga2V5d29yZCBwYXNjYWxUeXBlCVNpbmdsZSBEb3VibGUgRXh0ZW5kZWQgQ29tcAorICBzeW4ga2V5d29yZCBwYXNjYWxUeXBlCVBDaGFyCisKKworICBpZiAhZXhpc3RzICgicGFzY2FsX2ZwYyIpCisgICAgc3luIGtleXdvcmQgcGFzY2FsUHJlZGVmaW5lZAlSZXN1bHQKKyAgZW5kaWYKKworICBpZiBleGlzdHMoInBhc2NhbF9mcGMiKQorICAgIHN5biByZWdpb24gcGFzY2FsQ29tbWVudAlzdGFydD0iLy8iIGVuZD0iJCIKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxTdGF0ZW1lbnQJZmFpbCBvdGhlcndpc2Ugb3BlcmF0b3IKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxEaXJlY3RpdmUJcG9wc3RhY2sKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxQcmVkZWZpbmVkIHNlbGYKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxUeXBlCVNob3J0U3RyaW5nIEFuc2lTdHJpbmcgV2lkZVN0cmluZworICBlbmRpZgorCisgIGlmIGV4aXN0cygicGFzY2FsX2dwYyIpCisgICAgc3luIGtleXdvcmQgcGFzY2FsVHlwZQlTbWFsbEludAorICAgIHN5biBrZXl3b3JkIHBhc2NhbFR5cGUJQW5zaUNoYXIKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxUeXBlCVBBbnNpQ2hhcgorICBlbmRpZgorCisgIGlmIGV4aXN0cygicGFzY2FsX2RlbHBoaSIpCisgICAgc3luIHJlZ2lvbiBwYXNjYWxDb21tZW50CXN0YXJ0PSIvLyIgIGVuZD0iJCIgY29udGFpbnM9cGFzY2FsVG9kbworICAgIHN5biBrZXl3b3JkIHBhc2NhbFR5cGUJU21hbGxJbnQgSW50NjQKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxUeXBlCVJlYWw0OCBDdXJyZW5jeQorICAgIHN5biBrZXl3b3JkIHBhc2NhbFR5cGUJQW5zaUNoYXIgV2lkZUNoYXIKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxUeXBlCVNob3J0U3RyaW5nIEFuc2lTdHJpbmcgV2lkZVN0cmluZworICAgIHN5biBrZXl3b3JkIHBhc2NhbFR5cGUJUEFuc2lDaGFyIFBXaWRlQ2hhcgorICAgIHN5biBtYXRjaCAgcGFzY2FsRmxvYXQJIi1cPVw8XGRcK1wuXGRcK1tkRF0tXD1cZFwrXD4iCisgICAgc3luIG1hdGNoICBwYXNjYWxTdHJpbmdFc2NhcGUJY29udGFpbmVkICIjWzEyXVswLTldXD1bMC05XVw9IgorICAgIHN5biBrZXl3b3JkIHBhc2NhbFN0cnVjdAljbGFzcyBkaXNwaW50ZXJmYWNlCisgICAgc3luIGtleXdvcmQgcGFzY2FsRXhjZXB0aW9uCXRyeSBleGNlcHQgcmFpc2UgYXQgb24gZmluYWxseQorICAgIHN5biBrZXl3b3JkIHBhc2NhbFN0YXRlbWVudAlvdXQKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxTdGF0ZW1lbnQJbGlicmFyeSBwYWNrYWdlCisgICAgc3luIGtleXdvcmQgcGFzY2FsU3RhdGVtZW50CWluaXRpYWxpemF0aW9uIGZpbmFsaXphdGlvbiB1c2VzIGV4cG9ydHMKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxTdGF0ZW1lbnQJcHJvcGVydHkgb3V0IHJlc291cmNlc3RyaW5nIHRocmVhZHZhcgorICAgIHN5biBrZXl3b3JkIHBhc2NhbE1vZGlmaWVyCWNvbnRhaW5zCisgICAgc3luIGtleXdvcmQgcGFzY2FsTW9kaWZpZXIJb3ZlcnJpZGRlbiByZWludHJvZHVjZSBhYnN0cmFjdAorICAgIHN5biBrZXl3b3JkIHBhc2NhbE1vZGlmaWVyCW92ZXJyaWRlIGV4cG9ydCBkeW5hbWljIG5hbWUgbWVzc2FnZQorICAgIHN5biBrZXl3b3JkIHBhc2NhbE1vZGlmaWVyCWRpc3BpZCBpbmRleCBzdG9yZWQgZGVmYXVsdCBub2RlZmF1bHQgcmVhZG9ubHkKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxNb2RpZmllcgl3cml0ZW9ubHkgaW1wbGVtZW50cyBvdmVybG9hZCByZXF1aXJlcyByZXNpZGVudAorICAgIHN5biBrZXl3b3JkIHBhc2NhbEFjY2VzCXByb3RlY3RlZCBwdWJsaXNoZWQgYXV0b21hdGVkCisgICAgc3luIGtleXdvcmQgcGFzY2FsRGlyZWN0aXZlCXJlZ2lzdGVyIHBhc2NhbCBjdmFyIGNkZWNsIHN0ZGNhbGwgc2FmZWNhbGwKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxPcGVyYXRvcglhcyBpcworICBlbmRpZgorCisgIGlmIGV4aXN0cygicGFzY2FsX25vX2Z1bmN0aW9ucyIpCisgICAgInN5biBrZXl3b3JkIHBhc2NhbE1vZGlmaWVyCXJlYWQgd3JpdGUKKyAgICAibWF5IGNvbmZ1c2Ugd2l0aCBSZWFkIGFuZCBXcml0ZSBmdW5jdGlvbnMuICBOb3QgZWFzeSB0byBoYW5kbGUuCisgIGVsc2UKKyAgICAiIGNvbnRyb2wgZmxvdyBmdW5jdGlvbnMKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglCcmVhayBDb250aW51ZSBFeGl0IEhhbHQgUnVuRXJyb3IKKworICAgICIgb3JkaW5hbCBmdW5jdGlvbnMKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglEZWMgSW5jIEhpZ2ggTG93CisKKyAgICAiIG1hdGggZnVuY3Rpb25zCisgICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JRnJhYyBJbnQgUGkKKworICAgICIgc3RyaW5nIGZ1bmN0aW9ucworICAgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCUNvbmNhdCBDb3B5IERlbGV0ZSBJbnNlcnQgTGVuZ3RoIFBvcyBTdHIgVmFsCisKKyAgICAiIG1lbW9yeSBmdW5jdGlvbgorICAgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCUZyZWVNZW0gR2V0TWVtIE1heEF2YWlsIE1lbUF2YWlsCisKKyAgICAiIHBvaW50ZXIgYW5kIGFkZHJlc3MgZnVuY3Rpb25zCisgICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JQWRkciBBc3NpZ25lZCBDU2VnIERTZWcgT2ZzIFB0ciBTZWcgU1B0ciBTU2VnCisKKyAgICAiIG1pc2MgZnVuY3Rpb25zCisgICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JRXhjbHVkZSBGaWxsQ2hhciBIaSBJbmNsdWRlIExvIE1vdmUgUGFyYW1Db3VudAorICAgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCVBhcmFtU3RyIFJhbmRvbSBSYW5kb21pemUgU2l6ZU9mIFN3YXAgVHlwZU9mCisgICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JVXBDYXNlCisKKyAgICAiIHByZWRlZmluZWQgdmFyaWFibGVzCisgICAgc3luIGtleXdvcmQgcGFzY2FsUHJlZGVmaW5lZCBFcnJvckFkZHIgRXhpdENvZGUgRXhpdFByb2MgRmlsZU1vZGUgRnJlZUxpc3QKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxQcmVkZWZpbmVkIEZyZWVaZXJvIEhlYXBFbmQgSGVhcEVycm9yIEhlYXBPcmcgSGVhcFB0cgorICAgIHN5biBrZXl3b3JkIHBhc2NhbFByZWRlZmluZWQgSW5PdXRSZXMgT3ZyQ29kZUxpc3QgT3ZyRGVidWdQdHIgT3ZyRG9zSGFuZGxlCisgICAgc3luIGtleXdvcmQgcGFzY2FsUHJlZGVmaW5lZCBPdnJFbXNIYW5kbGUgT3ZySGVhcEVuZCBPdnJIZWFwT3JnIE92ckhlYXBQdHIKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxQcmVkZWZpbmVkIE92ckhlYXBTaXplIE92ckxvYWRMaXN0IFByZWZpeFNlZyBSYW5kU2VlZAorICAgIHN5biBrZXl3b3JkIHBhc2NhbFByZWRlZmluZWQgU2F2ZUludDAwIFNhdmVJbnQwMiBTYXZlSW50MUIgU2F2ZUludDIxCisgICAgc3luIGtleXdvcmQgcGFzY2FsUHJlZGVmaW5lZCBTYXZlSW50MjMgU2F2ZUludDI0IFNhdmVJbnQzNCBTYXZlSW50MzUKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxQcmVkZWZpbmVkIFNhdmVJbnQzNiBTYXZlSW50MzcgU2F2ZUludDM4IFNhdmVJbnQzOQorICAgIHN5biBrZXl3b3JkIHBhc2NhbFByZWRlZmluZWQgU2F2ZUludDNBIFNhdmVJbnQzQiBTYXZlSW50M0MgU2F2ZUludDNECisgICAgc3luIGtleXdvcmQgcGFzY2FsUHJlZGVmaW5lZCBTYXZlSW50M0UgU2F2ZUludDNGIFNhdmVJbnQ3NSBTZWdBMDAwIFNlZ0IwMDAKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxQcmVkZWZpbmVkIFNlZ0I4MDAgU2VsZWN0b3JJbmMgU3RhY2tMaW1pdCBUZXN0ODA4NworCisgICAgIiBmaWxlIGZ1bmN0aW9ucworICAgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCUFwcGVuZCBBc3NpZ24gQmxvY2tSZWFkIEJsb2NrV3JpdGUgQ2hEaXIgQ2xvc2UKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglFcmFzZSBGaWxlUG9zIEZpbGVTaXplIEZsdXNoIEdldERpciBJT1Jlc3VsdAorICAgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCU1rRGlyIFJlYWQgUmVhZGxuIFJlbmFtZSBSZXNldCBSZXdyaXRlIFJtRGlyCisgICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JU2VlayBTZWVrRW9mIFNlZWtFb2xuIFNldFRleHRCdWYgVHJ1bmNhdGUKKworICAgICIgY3J0IHVuaXQKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglBc3NpZ25DcnQgQ2xyRW9sIENsclNjciBEZWxheSBEZWxMaW5lIEdvdG9YWQorICAgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCUhpZ2hWaWRlbyBJbnNMaW5lIEtleVByZXNzZWQgTG93VmlkZW8gTm9ybVZpZGVvCisgICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JTm9Tb3VuZCBSZWFkS2V5IFNvdW5kIFRleHRCYWNrZ3JvdW5kIFRleHRDb2xvcgorICAgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCVRleHRNb2RlIFdoZXJlWCBXaGVyZVkgV2luZG93CisgICAgc3luIGtleXdvcmQgcGFzY2FsUHJlZGVmaW5lZCBDaGVja0JyZWFrIENoZWNrRU9GIENoZWNrU25vdyBEaXJlY3RWaWRlbworICAgIHN5biBrZXl3b3JkIHBhc2NhbFByZWRlZmluZWQgTGFzdE1vZGUgVGV4dEF0dHIgV2luZE1pbiBXaW5kTWF4CisgICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24gQmlnQ3Vyc29yIEN1cnNvck9mZiBDdXJzb3JPbgorICAgIHN5biBrZXl3b3JkIHBhc2NhbENvbnN0YW50IEJsYWNrIEJsdWUgR3JlZW4gQ3lhbiBSZWQgTWFnZW50YSBCcm93bgorICAgIHN5biBrZXl3b3JkIHBhc2NhbENvbnN0YW50IExpZ2h0R3JheSBEYXJrR3JheSBMaWdodEJsdWUgTGlnaHRHcmVlbgorICAgIHN5biBrZXl3b3JkIHBhc2NhbENvbnN0YW50IExpZ2h0Q3lhbiBMaWdodFJlZCBMaWdodE1hZ2VudGEgWWVsbG93IFdoaXRlCisgICAgc3luIGtleXdvcmQgcGFzY2FsQ29uc3RhbnQgQmxpbmsgU2NyZWVuV2lkdGggU2NyZWVuSGVpZ2h0IGJ3NDAKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxDb25zdGFudCBjbzQwIGJ3ODAgY284MCBtb25vCisgICAgc3luIGtleXdvcmQgcGFzY2FsUHJlZGVmaW5lZCBUZXh0Q2hhcgorCisgICAgIiBET1MgdW5pdAorICAgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCUFkZERpc2sgRGlza0ZyZWUgRGlza1NpemUgRG9zRXhpdENvZGUgRG9zVmVyc2lvbgorICAgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCUVudkNvdW50IEVudlN0ciBFeGVjIEV4cGFuZCBGaW5kQ2xvc2UgRmluZEZpcnN0CisgICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JRmluZE5leHQgRlNlYXJjaCBGU3BsaXQgR2V0Q0JyZWFrIEdldERhdGUKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglHZXRFbnYgR2V0RkF0dHIgR2V0RlRpbWUgR2V0SW50VmVjIEdldFRpbWUKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglHZXRWZXJpZnkgSW50ciBLZWVwIE1TRG9zIFBhY2tUaW1lIFNldENCcmVhaworICAgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCVNldERhdGUgU2V0RkF0dHIgU2V0RlRpbWUgU2V0SW50VmVjIFNldFRpbWUKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglTZXRWZXJpZnkgU3dhcFZlY3RvcnMgVW5QYWNrVGltZQorICAgIHN5biBrZXl3b3JkIHBhc2NhbENvbnN0YW50CUZDYXJyeSBGUGFyaXR5IEZBdXhpbGlhcnkgRlplcm8gRlNpZ24gRk92ZXJmbG93CisgICAgc3luIGtleXdvcmQgcGFzY2FsQ29uc3RhbnQJSGlkZGVuIFN5c2ZpbGUgVm9sdW1lSWQgRGlyZWN0b3J5IEFyY2hpdmUKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxDb25zdGFudAlBbnlGaWxlIGZtQ2xvc2VkIGZtSW5wdXQgZm1PdXRwdXQgZm1Jbm91dAorICAgIHN5biBrZXl3b3JkIHBhc2NhbENvbnN0YW50CVRleHRSZWNOYW1lTGVuZ3RoIFRleHRSZWNCdWZTaXplCisgICAgc3luIGtleXdvcmQgcGFzY2FsVHlwZQlDb21TdHIgUGF0aFN0ciBEaXJTdHIgTmFtZVN0ciBFeHRTdHIgU2VhcmNoUmVjCisgICAgc3luIGtleXdvcmQgcGFzY2FsVHlwZQlGaWxlUmVjIFRleHRCdWYgVGV4dFJlYyBSZWdpc3RlcnMgRGF0ZVRpbWUKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxQcmVkZWZpbmVkIERvc0Vycm9yCisKKyAgICAiR3JhcGggVW5pdAorICAgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCUFyYyBCYXIgQmFyM0QgQ2lyY2xlIENsZWFyRGV2aWNlIENsZWFyVmlld1BvcnQKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglDbG9zZUdyYXBoIERldGVjdEdyYXBoIERyYXdQb2x5IEVsbGlwc2UKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglGaWxsRWxsaXBzZSBGaWxsUG9seSBGbG9vZEZpbGwgR2V0QXJjQ29vcmRzCisgICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JR2V0QXNwZWN0UmF0aW8gR2V0QmtDb2xvciBHZXRDb2xvcgorICAgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCUdldERlZmF1bHRQYWxldHRlIEdldERyaXZlck5hbWUgR2V0RmlsbFBhdHRlcm4KKyAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglHZXRGaWxsU2V0dGluZ3MgR2V0R3JhcGhNb2RlIEdldEltYWdlCisgICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JR2V0TGluZVNldHRpbmdzIEdldE1heENvbG9yIEdldE1heE1vZGUgR2V0TWF4WAorICAgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCUdldE1heFkgR2V0TW9kZU5hbWUgR2V0TW9kZVJhbmdlIEdldFBhbGV0dGUKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglHZXRQYWxldHRlU2l6ZSBHZXRQaXhlbCBHZXRUZXh0U2V0dGluZ3MKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglHZXRWaWV3U2V0dGluZ3MgR2V0WCBHZXRZIEdyYXBoRGVmYXVsdHMKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglHcmFwaEVycm9yTXNnIEdyYXBoUmVzdWx0IEltYWdlU2l6ZSBJbml0R3JhcGgKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglJbnN0YWxsVXNlckRyaXZlciBJbnN0YWxsVXNlckZvbnQgTGluZSBMaW5lUmVsCisgICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JTGluZVRvIE1vdmVSZWwgTW92ZVRvIE91dFRleHQgT3V0VGV4dFhZCisgICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JUGllU2xpY2UgUHV0SW1hZ2UgUHV0UGl4ZWwgUmVjdGFuZ2xlCisgICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JUmVnaXN0ZXJCR0lEcml2ZXIgUmVnaXN0ZXJCR0lGb250CisgICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JUmVzdG9yZUNSVE1vZGUgU2VjdG9yIFNldEFjdGl2ZVBhZ2UKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglTZXRBbGxQYWxsZXR0ZSBTZXRBc3BlY3RSYXRpbyBTZXRCa0NvbG9yCisgICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JU2V0Q29sb3IgU2V0RmlsbFBhdHRlcm4gU2V0RmlsbFN0eWxlCisgICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JU2V0R3JhcGhCdWZTaXplIFNldEdyYXBoTW9kZSBTZXRMaW5lU3R5bGUKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglTZXRQYWxldHRlIFNldFJHQlBhbGV0dGUgU2V0VGV4dEp1c3RpZnkKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglTZXRUZXh0U3R5bGUgU2V0VXNlckNoYXJTaXplIFNldFZpZXdQb3J0CisgICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JU2V0VmlzdWFsUGFnZSBTZXRXcml0ZU1vZGUgVGV4dEhlaWdodCBUZXh0V2lkdGgKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxUeXBlCUFyY0Nvb3Jkc1R5cGUgRmlsbFBhdHRlcm5UeXBlIEZpbGxTZXR0aW5nc1R5cGUKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxUeXBlCUxpbmVTZXR0aW5nc1R5cGUgUGFsZXR0ZVR5cGUgUG9pbnRUeXBlCisgICAgc3luIGtleXdvcmQgcGFzY2FsVHlwZQlUZXh0U2V0dGluZ3NUeXBlIFZpZXdQb3J0VHlwZQorCisgICAgIiBzdHJpbmcgZnVuY3Rpb25zCisgICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JU3RyQWxsb2MgU3RyQnVmU2l6ZSBTdHJDYXQgU3RyQ29tcCBTdHJDb3B5CisgICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JU3RyRGlzcG9zZSBTdHJFQ29weSBTdHJFbmQgU3RyRm10IFN0cklDb21wCisgICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JU3RyTENhdCBTdHJMQ29tcCBTdHJMQ29weSBTdHJMZW4gU3RyTEZtdAorICAgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCVN0ckxJQ29tcCBTdHJMb3dlciBTdHJNb3ZlIFN0ck5ldyBTdHJQYXMKKyAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglTdHJQQ29weSBTdHJQTENvcHkgU3RyUG9zIFN0clJTY2FuIFN0clNjYW4KKyAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglTdHJVcHBlcgorICBlbmRpZgorCitlbmRpZgorCisiIERlZmluZSB0aGUgZGVmYXVsdCBoaWdobGlnaHRpbmcuCisiIEZvciB2ZXJzaW9uIDUuNyBhbmQgZWFybGllcjogb25seSB3aGVuIG5vdCBkb25lIGFscmVhZHkKKyIgRm9yIHZlcnNpb24gNS44IGFuZCBsYXRlcjogb25seSB3aGVuIGFuIGl0ZW0gZG9lc24ndCBoYXZlIGhpZ2hsaWdodGluZyB5ZXQKK2lmIHZlcnNpb24gPj0gNTA4IHx8ICFleGlzdHMoImRpZF9wYXNjYWxfc3luX2luaXRzIikKKyAgaWYgdmVyc2lvbiA8IDUwOAorICAgIGxldCBkaWRfcGFzY2FsX3N5bl9pbml0cyA9IDEKKyAgICBjb21tYW5kIC1uYXJncz0rIEhpTGluayBoaSBsaW5rIDxhcmdzPgorICBlbHNlCisgICAgY29tbWFuZCAtbmFyZ3M9KyBIaUxpbmsgaGkgZGVmIGxpbmsgPGFyZ3M+CisgIGVuZGlmCisKKyAgSGlMaW5rIHBhc2NhbEFjY2VzCQlwYXNjYWxTdGF0ZW1lbnQKKyAgSGlMaW5rIHBhc2NhbEJvb2xlYW4JCUJvb2xlYW4KKyAgSGlMaW5rIHBhc2NhbENvbW1lbnQJCUNvbW1lbnQKKyAgSGlMaW5rIHBhc2NhbENvbmRpdGlvbmFsCUNvbmRpdGlvbmFsCisgIEhpTGluayBwYXNjYWxDb25zdGFudAkJQ29uc3RhbnQKKyAgSGlMaW5rIHBhc2NhbERlbGltaXRlcglJZGVudGlmaWVyCisgIEhpTGluayBwYXNjYWxEaXJlY3RpdmUJcGFzY2FsU3RhdGVtZW50CisgIEhpTGluayBwYXNjYWxFeGNlcHRpb24JRXhjZXB0aW9uCisgIEhpTGluayBwYXNjYWxGbG9hdAkJRmxvYXQKKyAgSGlMaW5rIHBhc2NhbEZ1bmN0aW9uCQlGdW5jdGlvbgorICBIaUxpbmsgcGFzY2FsTGFiZWwJCUxhYmVsCisgIEhpTGluayBwYXNjYWxNYXRyaXhEZWxpbWl0ZXIJSWRlbnRpZmllcgorICBIaUxpbmsgcGFzY2FsTW9kaWZpZXIJCVR5cGUKKyAgSGlMaW5rIHBhc2NhbE51bWJlcgkJTnVtYmVyCisgIEhpTGluayBwYXNjYWxPcGVyYXRvcgkJT3BlcmF0b3IKKyAgSGlMaW5rIHBhc2NhbFByZWRlZmluZWQJcGFzY2FsU3RhdGVtZW50CisgIEhpTGluayBwYXNjYWxQcmVQcm9jCQlQcmVQcm9jCisgIEhpTGluayBwYXNjYWxSZXBlYXQJCVJlcGVhdAorICBIaUxpbmsgcGFzY2FsU3RhdGVtZW50CVN0YXRlbWVudAorICBIaUxpbmsgcGFzY2FsU3RyaW5nCQlTdHJpbmcKKyAgSGlMaW5rIHBhc2NhbFN0cmluZ0VzY2FwZQlTcGVjaWFsCisgIEhpTGluayBwYXNjYWxTdHJpbmdFc2NhcGVHUEMJU3BlY2lhbAorICBIaUxpbmsgcGFzY2FsU3RyaW5nRXJyb3IJRXJyb3IKKyAgSGlMaW5rIHBhc2NhbFN0cnVjdAkJcGFzY2FsU3RhdGVtZW50CisgIEhpTGluayBwYXNjYWxTeW1ib2xPcGVyYXRvcglwYXNjYWxPcGVyYXRvcgorICBIaUxpbmsgcGFzY2FsVG9kbwkJVG9kbworICBIaUxpbmsgcGFzY2FsVHlwZQkJVHlwZQorICBIaUxpbmsgcGFzY2FsVW5jbGFzc2lmaWVkCXBhc2NhbFN0YXRlbWVudAorICAiICBIaUxpbmsgcGFzY2FsQXNtCQlBc3NlbWJsZXIKKyAgSGlMaW5rIHBhc2NhbEVycm9yCQlFcnJvcgorICBIaUxpbmsgcGFzY2FsQXNtS2V5CQlwYXNjYWxTdGF0ZW1lbnQKKyAgSGlMaW5rIHBhc2NhbFNob3dUYWIJCUVycm9yCisKKyAgZGVsY29tbWFuZCBIaUxpbmsKK2VuZGlmCisKKworbGV0IGI6Y3VycmVudF9zeW50YXggPSAicGFzY2FsIgorCisiIHZpbTogdHM9OCBzdz0yCg==