OwlFTUFDUy5SQyAvIC5lbWFzY3JjCjsKOwlTdGFydHVwIGZpbGUgZm9yIE1pY3JvRU1BQ1MgMy45IGFuZCB1RW1hY3MvUEsgNC4wCjsJVGhpcyBmaWxlIGlzIGV4ZWN1dGVkIGV2ZXJ5IHRpbWUgdGhlIGVkaXRvciBpcyBlbnRlcmVkLgo7CjsJTW9kaWZpZWQgYnkgUGV0cmkgS3V0dm9uZW4sIGxhc3QgZWRpdGVkIFNlcHRlbWJlciAxOTkxLgoKc2V0ICRkaXNjbWQgIkZBTFNFIgoKOwlGaXJzdCwgdHJ5IHRvIHJlc29sdmUgaWYgd2UgYXJlIG9uIGEgUEMgLi4uIHllcywgdGhpcyBpcyBhIGtsdWRnZQoKIWlmICZzZXEgJHNyZXMgIk5PUk1BTCIKCXNldCAlc3lzdGVtICJPVEhFUiIKIWVsc2UKCXNldCAlc3lzdGVtICJQQyIKIWVuZGlmCgohaWYgJnNlcSAlc3lzdGVtICJQQyIKCjsJUEMgc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24KCndyaXRlLW1lc3NhZ2UgIihTZXR0aW5nIHVwKSIKCjsJQ29tbWVudCBvdXQgb3IgY2hhbmdlIHRoaXMgbGluZSBpZiB5b3Ugd2FudCBtb3JlIHRoYW4gMjUgbGluZXMsCjsJb3RoZXIgcG9zc2libGUgJHNyZXMgdmFsdWVzIGluY2x1ZGUgRUdBIGFuZCBWR0EKCnNldCAkc3JlcyAiQ0dBIgoKOwlVbmNvbW1lbnQgbmV4dCBsaW5lIGlmIHlvdXIgb2xkIHNjcmVlbiAic25vd3MiCgo7c2V0ICRmbGlja2VyICJUUlVFIgoKOwlJZiB5b3VyIHNjcmVlbiAic25vd3MiIHlvdSdsbCBub3QgbGlrZSBzY3JvbGxpbmcKCiFpZiAmc2VxICRmbGlja2VyICJUUlVFIgoJc2V0ICRzY3JvbGwgIkZBTFNFIgohZW5kaWYKCjsJRnVuY3Rpb24ga2V5cyAodW5zaGlmdGVkKQo7CWYxICBmMiAgZjMgIGY0ICBmNSAgZjYgIGY3ICBmOCAgZjkgIGYxMAo7CUZOOyBGTjwgRk49IEZOPiBGTj8gRk5AIEZOQSBGTkIgRk5DIEZORAoKYmluZC10by1rZXkgaGVscAkJCUZOOwkKYmluZC10by1rZXkgZXhpdC1lbWFjcwkJCUZORAoKOwlGdW5jdGlvbiBrZXlzIChzaGlmdGVkKQo7CUYxICBGMiAgRjMgIEY0ICBGNSAgRjYgIEY3ICBGOCAgRjkgIEYxMAo7CUZOVCBGTlUgRk5WIEZOVyBGTlggRk5ZIEZOWiBGTlsgRk5cIEZOXQoKOwlPdGhlciBzcGVjaWFsIGtleXMgKHVuc2hpZnRlZCkKOwlIb21lIEVuZCAgSW5zICBEZWwgIFBnVXAgUGdEbiAgCjsJRk5HICBGTk8gIEZOUiAgRk5TICBGTkkgIEZOUQoKOyAgICAgICBTb21lIGNvbW1vbiBBbHQta2V5cwo7CUFsdC1YIEFsdC1aIEFsdC1DIEFsdC1GIEFsdC1PCjsJRk4tICAgRk4sICAgRk4uICAgRk4hICAgRk5eWAoKYmluZC10by1rZXkgZXhpdC1lbWFjcwkJCUZOLQpiaW5kLXRvLWtleSBxdWljay1leGl0CQkJRk4sCmJpbmQtdG8ta2V5IGktc2hlbGwJCQlGTi4KYmluZC10by1rZXkgZmluZC1maWxlCQkJRk4hCmJpbmQtdG8ta2V5IHZpZXctZmlsZQkJCUZOLwpiaW5kLXRvLWtleSBuZXh0LXdpbmRvdwkJCUZOXlgKCjsJU2V0IHNjcmVlbiBjb2xvcnMKCjsJWW91IGNhbiBkZWZpbmUgYSBET1MgZW52aXJvbm1lbnQgdmFyaWFibGUgRU1BQ1NfQlcgKGFueSB2YWx1ZSkKOwlpZiB5b3UgZG9uJ3QgbGlrZSBjb2xvcnMsIGUuZy4gaWYgeW91IGhhdmUgYSBMQ0Qgc2NyZWVuCgohaWYgJnNlcSAmZW52ICJFTUFDU19CVyIgIiIKCWFkZC1nbG9iYWwtbW9kZSAiYmx1ZSIKCWFkZC1nbG9iYWwtbW9kZSAiSElHSCIKIWVuZGlmCgohZW5kaWYKCjsJSGVscCBmYWNpbGl0eQoKNDAgCXN0b3JlLW1hY3JvCglzZXQgJGRpc2NtZCAiRkFMU0UiCgkhaWYgJm5vdCAmc2VxICRjYnVmbmFtZSAiZW1hY3MuaGxwIgoJCXdyaXRlLW1lc3NhZ2UgIihMb2FkaW5nIEhlbHApIgoJCSFmb3JjZSBoZWxwCgkJIWZvcmNlIDggcmVzaXplLXdpbmRvdwoJCSFpZiAmc2VxICVzeXN0ZW0gIlBDIgoJCQkhaWYgJnNlcSAmZW52ICJFTUFDU19CVyIgIiIKCQkJCWFkZC1tb2RlICJyZWQiCgkJCSFlbmRpZgoJCQliaW5kLXRvLWtleSBleGVjdXRlLW1hY3JvLTM4IEZOSQoJCQliaW5kLXRvLWtleSBleGVjdXRlLW1hY3JvLTM3IEZOUQoJCSFlbHNlCgkJCWJpbmQtdG8ta2V5IGV4ZWN1dGUtbWFjcm8tMzggRk41CgkJCWJpbmQtdG8ta2V5IGV4ZWN1dGUtbWFjcm8tMzcgRk42CgkJIWVuZGlmCgkJYmVnaW5uaW5nLW9mLWxpbmUKCQkyIGZvcndhcmQtY2hhcmFjdGVyCgkJMSByZWRyYXctZGlzcGxheQoJCXNhdmUtd2luZG93CgkJIWlmICZzZXEgJXN5c3RlbSAiUEMiCgkJCXNldCAlaGxwdXBkbiAiPFBnVXA+IC8gPFBnRG4+IgoJCQlzZXQgJWhscGhlbHAgIjxGMT4iCgkJIWVsc2UKCQkJc2V0ICVobHB1cGRuICI8UHJldiBTY3JuPiAvIDxOZXh0IFNjcm4+IgoJCQlzZXQgJWhscGhlbHAgIjxIZWxwPiIKCQkhZW5kaWYKCQlleGVjdXRlLW1hY3JvLTM5CgkhZWxzZQoJCXNldCAlaGxwY29kZSAmbGVmICRsaW5lIDIgCgkJIWlmICZzZXEgJWhscGNvZGUgIi4uIgoJCQlzZXQgJWhscHRvcGljICZtaWQgJGxpbmUgNCA5OQoJCQllbmQtb2YtbGluZQoJCQkhZm9yY2Ugc2VhcmNoLWZvcndhcmQgJWhscHRvcGljCgkJCWJlZ2lubmluZy1vZi1saW5lCgkJCTIgZm9yd2FyZC1jaGFyYWN0ZXIKCQkJMSByZWRyYXctZGlzcGxheQoJCQlleGVjdXRlLW1hY3JvLTM5CgkJIWVsc2UKCQkJIWlmICZzZXEgJXN5c3RlbSAiUEMiCgkJCQliaW5kLXRvLWtleSBwcmV2aW91cy1wYWdlIEZOSQoJCQkJYmluZC10by1rZXkgbmV4dC1wYWdlIEZOUQoJCQkhZWxzZQoJCQkJYmluZC10by1rZXkgcHJldmlvdXMtcGFnZSBGTjUKCQkJCWJpbmQtdG8ta2V5IG5leHQtcGFnZSBGTjYKCQkJIWVuZGlmCgkJCSFmb3JjZSByZXN0b3JlLXdpbmRvdwoJCQkhZm9yY2UgZGVsZXRlLXdpbmRvdwoJCQljbGVhci1tZXNzYWdlLWxpbmUKCQkhZW5kaWYKCSFlbmRpZgoJc2V0ICRkaXNjbWQgIlRSVUUiCiFlbmRtCgpiaW5kLXRvLWtleSBleGVjdXRlLW1hY3JvLTQwIE0tPwohaWYgJnNlcSAlc3lzdGVtICJQQyIKCWJpbmQtdG8ta2V5IGV4ZWN1dGUtbWFjcm8tNDAgRk47CiFlbHNlCgliaW5kLXRvLWtleSBleGVjdXRlLW1hY3JvLTQwIEZOaAohZW5kaWYKCjsJSGVscCBvbiBIZWxwCgozOQlzdG9yZS1tYWNybwoJIWlmICZzZXEgJnJpZyAkbGluZSA1ICJJTkRFWCIKCQl3cml0ZS1tZXNzYWdlICZjYXQgIlNlbGVjdCB0b3BpYyBmcm9tIGxpc3QgYW5kIHByZXNzICIgJWhscGhlbHAKCSFlbHNlCgkJd3JpdGUtbWVzc2FnZSAmY2F0ICJVc2UgIiAmY2F0ICVobHB1cGRuICZjYXQgIiB0byBzY2FuIGhlbHAgZmlsZSAtLSAiICZjYXQgJWhscGhlbHAgIiB0byB0b2dnbGUgaGVscCB3aW5kb3ciCgkhZW5kaWYKIWVuZG0KCjsJUHJldmlvdXMgaGVscCBwYWdlCgozOCAJc3RvcmUtbWFjcm8KCSFpZiAmc2VxICRjYnVmbmFtZSAiZW1hY3MuaGxwIgoJCWJlZ2lubmluZy1vZi1saW5lCgkJIWZvcmNlIHNlYXJjaC1yZXZlcnNlICI9PiIKCQkyIGZvcndhcmQtY2hhcmFjdGVyCgkJMSByZWRyYXctZGlzcGxheQoJCWV4ZWN1dGUtbWFjcm8tMzkKCSFlbHNlCgkJcHJldmlvdXMtcGFnZQoJIWVuZGlmCiFlbmRtCgo7CU5leHQgaGVscCBwYWdlCgozNyAJc3RvcmUtbWFjcm8KCSFpZiAmc2VxICRjYnVmbmFtZSAiZW1hY3MuaGxwIgoJCWJlZ2lubmluZy1vZi1saW5lCgkJMiBmb3J3YXJkLWNoYXJhY3RlcgoJCSFmb3JjZSBzZWFyY2gtZm9yd2FyZCAiPT4iCgkJMSByZWRyYXctZGlzcGxheQoJCWV4ZWN1dGUtbWFjcm8tMzkKCSFlbHNlCgkJbmV4dC1wYWdlCgkhZW5kaWYKIWVuZG0KCjsJU2V0IHVwIGF1dG8gQ01PREUKCjM2CXN0b3JlLW1hY3JvCgkhaWYgJnNlcSAmbWlkICRjZm5hbWUgMSA3ICIvdG1wL1JlIgoJCWFkZC1tb2RlICJ3cmFwIgoJCSFyZXR1cm4KCSFlbmRpZgoJIWlmICZncmUgJnNpbiAkY2ZuYW1lICIvLmVkIiAwCgkJYWRkLW1vZGUgIndyYXAiCgkJIXJldHVybgoJIWVuZGlmCgkhaWYgJmdyZSAmc2luICRjZm5hbWUgIi8ubGV0IiAwCgkJYWRkLW1vZGUgIndyYXAiCgkJIXJldHVybgoJIWVuZGlmCgkhaWYgJmdyZSAmc2luICRjZm5hbWUgIi8uYXJ0IiAwCgkJYWRkLW1vZGUgIndyYXAiCgkJIXJldHVybgoJIWVuZGlmCgkhaWYgJmdyZSAmc2luICRjZm5hbWUgIi9ubi4iIDAKCQlhZGQtbW9kZSAid3JhcCIKCQkhcmV0dXJuCgkhZW5kaWYKCXNldCAlcmN0bXAgJnNpbiAkY2ZuYW1lICIuIgoJIWlmICZlcXUgJXJjdG1wIDAKCQkhcmV0dXJuCgkhZW5kaWYKCXNldCAlcmN0bXAgJm1pZCAkY2ZuYW1lICZhZGQgJXJjdG1wIDEgNQoJIWlmICZvciAmc2VxICVyY3RtcCAiYyIgJnNlcSAlcmN0bXAgImgiCgkJYWRkLW1vZGUgImNtb2RlIgoJIWVuZGlmCgkhaWYgJm9yICZzZXEgJXJjdG1wICJ0eHQiICZvciAmc2VxICVyY3RtcCAiZG9jIiAmb3IgJnNlcSAlcmN0bXAgInRtcCIgJnNlcSAlcmN0bXAgInRleCIKCQlhZGQtbW9kZSAid3JhcCIKCSFlbmRpZgoKIWVuZG0KCQpiaW5kLXRvLWtleSBleGVjdXRlLW1hY3JvLTM2CU0tRk5SCgo7CVNldHVwIGZvciBBU0NJSSB7fH1bXF0gdG8gSVNPIExhdGluLTEgdHJhbnNsYXRpb24KCjIxCXN0b3JlLW1hY3JvCglpbnNlcnQtc3RyaW5nICLkIgohZW5kbQoyMglzdG9yZS1tYWNybwoJaW5zZXJ0LXN0cmluZyAi9iIKIWVuZG0KMjMJc3RvcmUtbWFjcm8KCWluc2VydC1zdHJpbmcgIuUiCiFlbmRtCjI0CXN0b3JlLW1hY3JvCglpbnNlcnQtc3RyaW5nICLEIgohZW5kbQoyNQlzdG9yZS1tYWNybwoJaW5zZXJ0LXN0cmluZyAi1iIKIWVuZG0KMjYJc3RvcmUtbWFjcm8KCWluc2VydC1zdHJpbmcgIsUiCiFlbmRtCgoyNwlzdG9yZS1tYWNybwoJYmluZC10by1rZXkgZXhlY3V0ZS1tYWNyby0yMSB7CgliaW5kLXRvLWtleSBleGVjdXRlLW1hY3JvLTIyIHwKCWJpbmQtdG8ta2V5IGV4ZWN1dGUtbWFjcm8tMjMgfQoJYmluZC10by1rZXkgZXhlY3V0ZS1tYWNyby0yNCBbCgliaW5kLXRvLWtleSBleGVjdXRlLW1hY3JvLTI1IFwKCWJpbmQtdG8ta2V5IGV4ZWN1dGUtbWFjcm8tMjYgXQoJd3JpdGUtbWVzc2FnZSAiSVNPIExhdGluLTEg5PblxNbFIgohZW5kbQoKMjgJc3RvcmUtbWFjcm8KCXVuYmluZC1rZXkgewoJdW5iaW5kLWtleSB8Cgl1bmJpbmQta2V5IH0KCXVuYmluZC1rZXkgWwoJdW5iaW5kLWtleSBcCgl1bmJpbmQta2V5IF0KCXdyaXRlLW1lc3NhZ2UgIkFTQ0lJIHt8fVtcXSIKIWVuZG0KCmJpbmQtdG8ta2V5IGV4ZWN1dGUtbWFjcm8tMjcgXlhbCmJpbmQtdG8ta2V5IGV4ZWN1dGUtbWFjcm8tMjggXlhdCgo7CU1ha2UgY3V0LXBhc3RlIGVhc2llciBpbiB3aW5kb3cgc3lzdGVtcwoKYmluZC10by1rZXkJbmV3bGluZQleSgoKOwl1RW1hY3MvUEsgc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24KCiFpZiAmc2VxICRwcm9nbmFtZSAidUVtYWNzL1BLIgoKOwlEb24ndCBzY3JvbGwgb24gYSBTdW4KCgkhaWYgJm9yICZzZXEgJFRFUk0gInN1biIgJnNlcSAkVEVSTSAic3VuLWNtZCIKCQlzZXQgJHNjcm9sbCAiRkFMU0UiCgkhZW5kaWYKCjsJRXhlY3V0ZSBsb2NhbCBpbml0aWFsaXphdGlvbiBmaWxlcwoKCSFpZiAmc2VxICVzeXN0ZW0gIlBDIgoJCSFmb3JjZSBleGVjdXRlLWZpbGUgIkVNLlJDIgoJIWVsc2UKCQkhZm9yY2UgZXhlY3V0ZS1maWxlICZjYXQgJEhPTUUgIi8uZW1yYyIKCQkhZm9yY2UgZXhlY3V0ZS1maWxlICIuZW1yYyIKCSFlbmRpZgohZW5kaWYKCiFpZiAmZ3JlICZzaW4gJExBTkcgIlVURi04IiAwCglhZGQtZ2xvYmFsLW1vZGUgInV0Zi04IgohZW5kaWYKCiFpZiAmZ3JlICZzaW4gJExBTkcgInV0ZjgiIDAKCWFkZC1nbG9iYWwtbW9kZSAidXRmLTgiCiFlbmRpZgphZGQtZ2xvYmFsLW1vZGUgInV0Zi04IgoKc2V0ICRkaXNjbWQgIlRSVUUiCg==