<?xml version="1.0" encoding="utf-8" ?>
<otrs_package version="1.1">
    <Name>PreOutOfOfficeMessage</Name>
    <Version>11.1.1</Version>
    <Vendor>Rother OSS GmbH</Vendor>
    <URL>https://otobo.io/</URL>
    <License>GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007</License>
    <ChangeLog Date="2026-06-26 16:14:32" Version="11.1.1">Initial Release on OTOBO 11.1.</ChangeLog>
    <Description Lang="en">Provides a feature to inform with a given number of days in advance about a user going out of office.</Description>
    <Framework>11.1.x</Framework>
    <BuildCommitID>cf635c540abf88af578277862af0155c7408ef1e</BuildCommitID>
    <BuildDate>2026-06-26 16:14:35</BuildDate>
    <BuildHost>opms.rother-oss.com</BuildHost>
    <Filelist>
        <File Location="Custom/Kernel/System/User.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSBkZWI5OWQ2MGRhZjIxMmFlNzNlYzdmZWI3ODA3NGYzZjdhZTU2M2Y4IC0gS2VybmVsL1N5c3RlbS9Vc2VyLnBtCiMgLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgojIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKIyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwojIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OlVzZXI7Cgp1c2UgdjUuMjQ7CnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgY29yZSBtb2R1bGVzCnVzZSBEaWdlc3Q6OlNIQSAoKTsKCiMgQ1BBTiBtb2R1bGVzCnVzZSBDcnlwdDo6UGFzc3dkTUQ1IHF3KGFwYWNoZV9tZDVfY3J5cHQgdW5peF9tZDVfY3J5cHQpOwoKIyBPVE9CTyBtb2R1bGVzCgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkNhY2hlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q2hlY2tJdGVtJywKICAgICdLZXJuZWw6OlN5c3RlbTo6REInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpFbmNvZGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpNYWluJywKICAgICdLZXJuZWw6OlN5c3RlbTo6U2VhcmNoUHJvZmlsZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpVc2VyIC0gdXNlciBsaWIKCj1oZWFkMSBERVNDUklQVElPTgoKQWxsIHVzZXIgZnVuY3Rpb25zLiBFLiBnLiB0byBhZGQgYW5kIHVwZGF0ZWQgdXNlciBhbmQgb3RoZXIgZnVuY3Rpb25zLgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKRG9uJ3QgdXNlIHRoZSBjb25zdHJ1Y3RvciBkaXJlY3RseSwgdXNlIHRoZSBPYmplY3RNYW5hZ2VyIGluc3RlYWQ6CgogICAgbXkgJFVzZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSBibGVzcyB7fSwgJFR5cGU7CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBnZXQgdXNlciB0YWJsZQogICAgJFNlbGYtPntVc2VyVGFibGV9ICAgICAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdEYXRhYmFzZVVzZXJUYWJsZScpICAgICAgIHx8ICd1c2VyJzsKICAgICRTZWxmLT57VXNlclRhYmxlVXNlcklEfSA9ICRDb25maWdPYmplY3QtPkdldCgnRGF0YWJhc2VVc2VyVGFibGVVc2VySUQnKSB8fCAnaWQnOwogICAgJFNlbGYtPntVc2VyVGFibGVVc2VyUFd9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdEYXRhYmFzZVVzZXJUYWJsZVVzZXJQVycpIHx8ICdwdyc7CiAgICAkU2VsZi0+e1VzZXJUYWJsZVVzZXJ9ICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0RhdGFiYXNlVXNlclRhYmxlVXNlcicpICAgfHwgJ2xvZ2luJzsKCiAgICAkU2VsZi0+e0NhY2hlVHlwZX0gPSAnVXNlcic7CiAgICAkU2VsZi0+e0NhY2hlVFRMfSAgPSA2MCAqIDYwICogMjQgKiAyMDsKCiAgICAjIHNldCBsb3dlciBpZiBkYXRhYmFzZSBpcyBjYXNlIHNlbnNpdGl2ZQogICAgJFNlbGYtPntMb3dlcn0gPSAnJzsKICAgIGlmICggJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkdldERhdGFiYXNlRnVuY3Rpb24oJ0Nhc2VTZW5zaXRpdmUnKSApIHsKICAgICAgICAkU2VsZi0+e0xvd2VyfSA9ICdMT1dFUic7CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgR2V0VXNlckRhdGEoKQoKZ2V0IHVzZXIgZGF0YSAoVXNlckxvZ2luLCBVc2VyRmlyc3RuYW1lLCBVc2VyTGFzdG5hbWUsIFVzZXJFbWFpbCwgLi4uKQoKICAgIG15ICVVc2VyID0gJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgIFVzZXJJRCA9PiAxMjMsCiAgICApOwoKb3IKCiAgICBteSAlVXNlciA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICBVc2VyICAgICAgICAgID0+ICdmcmFueicsCiAgICAgICAgVmFsaWQgICAgICAgICA9PiAxLCAgICAgICAjIG5vdCByZXF1aXJlZCAtPiAwfDEgKGRlZmF1bHQgMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcmV0dXJucyBvbmx5IGRhdGEgaWYgdXNlciBpcyB2YWxpZAogICAgICAgIE5vT3V0T2ZPZmZpY2UgPT4gMSwgICAgICAgIyBub3QgcmVxdWlyZWQgLT4gMHwxIChkZWZhdWx0IDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHJldHVybnMgZGF0YSB3aXRob3V0IG91dCBvZiBvZmZpY2UgaW5mb3MKICAgICk7Cgo9Y3V0CgpzdWIgR2V0VXNlckRhdGEgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1VzZXJ9ICYmICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgVXNlciBvciBVc2VySUQhJywKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBnZXQgY29uZmlndXJhdGlvbiBmb3IgdGhlIGZ1bGwgbmFtZSBvcmRlcgogICAgbXkgJEZpcnN0bmFtZUxhc3ROYW1lT3JkZXIgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZpcnN0bmFtZUxhc3RuYW1lT3JkZXInKSB8fCAwOwoKICAgICMgbm9ybWFsaXplIGlucHV0CiAgICBteSAkUmVxdWlyZVZhbGlkaXR5ID0gJFBhcmFte1ZhbGlkfSAgICAgICAgID8gMSA6IDA7CiAgICBteSAkTm9PdXRPZk9mZmljZSAgID0gJFBhcmFte05vT3V0T2ZPZmZpY2V9ID8gMSA6IDA7CgogICAgIyBjaGVjayBpZiByZXN1bHQgaXMgY2FjaGVkCiAgICBteSAkQ2FjaGVLZXk7CiAgICBpZiAoICRQYXJhbXtVc2VyfSApIHsKICAgICAgICAkQ2FjaGVLZXkgPSBqb2luICc6OicsICdHZXRVc2VyRGF0YScsICdVc2VyJywKICAgICAgICAgICAgJFBhcmFte1VzZXJ9LAogICAgICAgICAgICAkUmVxdWlyZVZhbGlkaXR5LAogICAgICAgICAgICAkRmlyc3RuYW1lTGFzdE5hbWVPcmRlciwKICAgICAgICAgICAgJE5vT3V0T2ZPZmZpY2U7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkQ2FjaGVLZXkgPSBqb2luICc6OicsICdHZXRVc2VyRGF0YScsICdVc2VySUQnLAogICAgICAgICAgICAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgJFJlcXVpcmVWYWxpZGl0eSwKICAgICAgICAgICAgJEZpcnN0bmFtZUxhc3ROYW1lT3JkZXIsCiAgICAgICAgICAgICROb091dE9mT2ZmaWNlOwogICAgfQoKICAgICMgY2hlY2sgY2FjaGUKICAgIHsKICAgICAgICBteSAkQ2FjaGUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+R2V0KAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgS2V5ICA9PiAkQ2FjaGVLZXksCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICRDYWNoZS0+JSogaWYgJENhY2hlOwogICAgfQoKICAgICMgZ2V0IGluaXRpYWwgZGF0YQogICAgbXkgQEJpbmQ7CiAgICBteSAkU1FMID0gIlNFTEVDVCAkU2VsZi0+e1VzZXJUYWJsZVVzZXJJRH0sICRTZWxmLT57VXNlclRhYmxlVXNlcn0sICIKICAgICAgICAuICIgdGl0bGUsIGZpcnN0X25hbWUsIGxhc3RfbmFtZSwgJFNlbGYtPntVc2VyVGFibGVVc2VyUFd9LCB2YWxpZF9pZCwgIgogICAgICAgIC4gIiBjcmVhdGVfdGltZSwgY2hhbmdlX3RpbWUgRlJPTSAkU2VsZi0+e1VzZXJUYWJsZX0gV0hFUkUgIjsKCiAgICBpZiAoICRQYXJhbXtVc2VyfSApIHsKICAgICAgICBteSAkVXNlciA9IGxjICRQYXJhbXtVc2VyfTsKICAgICAgICAkU1FMIC49ICIgJFNlbGYtPntMb3dlcn0oJFNlbGYtPntVc2VyVGFibGVVc2VyfSkgPSA/IjsKICAgICAgICBwdXNoIEBCaW5kLCBcJFVzZXI7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkU1FMIC49ICIgJFNlbGYtPntVc2VyVGFibGVVc2VySUR9ID0gPyI7CiAgICAgICAgcHVzaCBAQmluZCwgXCRQYXJhbXtVc2VySUR9OwogICAgfQoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgcmV0dXJuIHVubGVzcyAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMICAgPT4gJFNRTCwKICAgICAgICBCaW5kICA9PiBcQEJpbmQsCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgbXkgJURhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkRGF0YXtVc2VySUR9ICAgICAgICA9ICRSb3dbMF07CiAgICAgICAgJERhdGF7VXNlckxvZ2lufSAgICAgPSAkUm93WzFdOwogICAgICAgICREYXRhe1VzZXJUaXRsZX0gICAgID0gJFJvd1syXTsKICAgICAgICAkRGF0YXtVc2VyRmlyc3RuYW1lfSA9ICRSb3dbM107CiAgICAgICAgJERhdGF7VXNlckxhc3RuYW1lfSAgPSAkUm93WzRdOwogICAgICAgICREYXRhe1VzZXJQd30gICAgICAgID0gJFJvd1s1XTsKICAgICAgICAkRGF0YXtWYWxpZElEfSAgICAgICA9ICRSb3dbNl07CiAgICAgICAgJERhdGF7Q3JlYXRlVGltZX0gICAgPSAkUm93WzddOwogICAgICAgICREYXRhe0NoYW5nZVRpbWV9ICAgID0gJFJvd1s4XTsKICAgIH0KCiAgICAjIGNoZWNrIGRhdGEKICAgIGlmICggISREYXRhe1VzZXJJRH0gKSB7CiAgICAgICAgaWYgKCAkUGFyYW17VXNlcn0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ25vdGljZScsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTm8gVXNlckRhdGEgZm9yIHVzZXI6ICckUGFyYW17VXNlcn0nLiIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdub3RpY2UnLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5vIFVzZXJEYXRhIGZvciB1c2VyIGlkOiAnJFBhcmFte1VzZXJJRH0nLiIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgU3RvcmUgQ2FjaGVUVEwgbG9jYWxseSBzbyB0aGF0IHdlIGNhbiByZWR1Y2UgaXQgZm9yIHVzZXJzIHRoYXQgYXJlIG91dCBvZiBvZmZpY2UuCiAgICBteSAkQ2FjaGVUVEwgPSAkU2VsZi0+e0NhY2hlVFRMfTsKCiAgICAjIGNoZWNrIHZhbGlkLCByZXR1cm4gaWYgdGhlcmUgaXMgbG9ja2VkIGZvciB2YWxpZCB1c2VycwogICAgaWYgKCRSZXF1aXJlVmFsaWRpdHkpIHsKCiAgICAgICAgbXkgJElzVmFsaWQgPSAwOwogICAgICAgIFZBTElEX0lEOgogICAgICAgIGZvciBteSAkVmFsaWRJRCAoICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZElEc0dldCgpICkgewogICAgICAgICAgICBuZXh0IFZBTElEX0lEIHVubGVzcyAkRGF0YXtWYWxpZElEfSBlcSAkVmFsaWRJRDsKCiAgICAgICAgICAgICRJc1ZhbGlkID0gMTsgICAgIyBnb3QgYSBoaXQKCiAgICAgICAgICAgIGxhc3QgVkFMSURfSUQ7CiAgICAgICAgfQoKICAgICAgICBpZiAoICEkSXNWYWxpZCApIHsKCiAgICAgICAgICAgICMgc2V0IGNhY2hlCiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5TZXQoCiAgICAgICAgICAgICAgICBUeXBlICA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgICAgICAgICBUVEwgICA9PiAkQ2FjaGVUVEwsCiAgICAgICAgICAgICAgICBLZXkgICA9PiAkQ2FjaGVLZXksCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiB7fSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZW5lcmF0ZSB0aGUgZnVsbCBuYW1lIGFuZCBzYXZlIGl0IGluIHRoZSBoYXNoCiAgICBteSAkVXNlckZ1bGxuYW1lID0gJFNlbGYtPl9Vc2VyRnVsbG5hbWUoCiAgICAgICAgJURhdGEsCiAgICAgICAgTmFtZU9yZGVyID0+ICRGaXJzdG5hbWVMYXN0TmFtZU9yZGVyLAogICAgKTsKCiAgICAjIHNhdmUgdGhlIGdlbmVyYXRlZCBmdWxsbmFtZSBpbiB0aGUgaGFzaC4KICAgICREYXRhe1VzZXJGdWxsbmFtZX0gPSAkVXNlckZ1bGxuYW1lOwoKICAgICMgZ2V0IHByZWZlcmVuY2VzCiAgICBteSAlUHJlZmVyZW5jZXMgPSAkU2VsZi0+R2V0UHJlZmVyZW5jZXMoIFVzZXJJRCA9PiAkRGF0YXtVc2VySUR9ICk7CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CgogICAgIyBhZGQgbGFzdCBsb2dpbiB0aW1lc3RhbXAKICAgIGlmICggJFByZWZlcmVuY2Vze1VzZXJMYXN0TG9naW59ICkgewoKICAgICAgICBteSAkVXNlckxhc3RMb2dpblRpbWVPYmogPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgIEVwb2NoID0+ICRQcmVmZXJlbmNlc3tVc2VyTGFzdExvZ2lufQogICAgICAgICAgICB9CiAgICAgICAgKTsKCiAgICAgICAgJFByZWZlcmVuY2Vze1VzZXJMYXN0TG9naW5UaW1lc3RhbXB9ID0gJFVzZXJMYXN0TG9naW5UaW1lT2JqLT5Ub1N0cmluZygpOwogICAgfQoKICAgICMgY2hlY2sgY29tcGF0IHN0dWZmIC0gdGhpcyBpcyBhIHZlcnkgb2xkIHNvbHV0aW9uIHRvIGEgdmVyeSBvbGQgY2hhbmdlIGFuZCBzaG91bGQgYmUgdGFrZW4gb3V0IHdpdGggMTAuMSBvciBwcm9iYWJseSAxMQogICAgaWYgKCAhJFByZWZlcmVuY2Vze1VzZXJFbWFpbH0gKSB7CiAgICAgICAgJFByZWZlcmVuY2Vze1VzZXJFbWFpbH0gPSAkRGF0YXtVc2VyTG9naW59OwoKICAgICAgICAjICJyZXBhaXIiIHNwZWNpYWwgY2FzZXMgd2hlcmUgVXNlckVtYWlsIHJlYWxseSBlcXVhbHMgVXNlckxvZ2luIC0gc2VlIGlzc3VlICMxMTEzCiAgICAgICAgbXkgJEdlbmVyYXRvck1vZHVsZSA9ICRDb25maWdPYmplY3QtPkdldCgnVXNlcjo6UHJlZmVyZW5jZXNNb2R1bGUnKSB8fCAnS2VybmVsOjpTeXN0ZW06OlVzZXI6OlByZWZlcmVuY2VzOjpEQic7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgkR2VuZXJhdG9yTW9kdWxlKS0+U2V0UHJlZmVyZW5jZXMoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkRGF0YXtVc2VySUR9LAogICAgICAgICAgICBLZXkgICAgPT4gJ1VzZXJFbWFpbCcsCiAgICAgICAgICAgIFZhbHVlICA9PiAkRGF0YXtVc2VyTG9naW59LAogICAgICAgICk7CiAgICB9CgogICAgIyBvdXQgb2Ygb2ZmaWNlIGNoZWNrCiAgICBpZiAoICEkTm9PdXRPZk9mZmljZSApIHsKICAgICAgICBpZiAoICRQcmVmZXJlbmNlc3tPdXRPZk9mZmljZX0gKSB7CgogICAgICAgICAgICBteSAkQ3VycmVudFRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKICAgICAgICAgICAgbXkgJENyZWF0ZURUT2JqZWN0ICAgID0gc3ViIHsKICAgICAgICAgICAgICAgIG15ICVQYXJhbSA9IEBfOwoKICAgICAgICAgICAgICAgIHJldHVybiAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgICAgICAgICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyA9PiBzcHJpbnRmKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyVkLSUwMmQtJTAyZCAlcycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGFyYW17TW9udGh9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBhcmFte0RheX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGFyYW17VGltZX0KICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIG15ICRUaW1lU3RhcnRPYmogPSAkQ3JlYXRlRFRPYmplY3QtPigKICAgICAgICAgICAgICAgIFllYXIgID0+ICRQcmVmZXJlbmNlc3tPdXRPZk9mZmljZVN0YXJ0WWVhcn0sCiAgICAgICAgICAgICAgICBNb250aCA9PiAkUHJlZmVyZW5jZXN7T3V0T2ZPZmZpY2VTdGFydE1vbnRofSwKICAgICAgICAgICAgICAgIERheSAgID0+ICRQcmVmZXJlbmNlc3tPdXRPZk9mZmljZVN0YXJ0RGF5fSwKICAgICAgICAgICAgICAgIFRpbWUgID0+ICcwMDowMDowMCcsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBteSAkVGltZUVuZE9iaiA9ICRDcmVhdGVEVE9iamVjdC0+KAogICAgICAgICAgICAgICAgWWVhciAgPT4gJFByZWZlcmVuY2Vze091dE9mT2ZmaWNlRW5kWWVhcn0sCiAgICAgICAgICAgICAgICBNb250aCA9PiAkUHJlZmVyZW5jZXN7T3V0T2ZPZmZpY2VFbmRNb250aH0sCiAgICAgICAgICAgICAgICBEYXkgICA9PiAkUHJlZmVyZW5jZXN7T3V0T2ZPZmZpY2VFbmREYXl9LAogICAgICAgICAgICAgICAgVGltZSAgPT4gJzIzOjU5OjU5JywKICAgICAgICAgICAgKTsKIyBSb3RoZXIgT1NTIC8gUHJlT3V0T2ZPZmZpY2VNZXNzYWdlCiMgICAgICAgICAgICBpZiAoICRUaW1lU3RhcnRPYmogPCAkQ3VycmVudFRpbWVPYmplY3QgJiYgJFRpbWVFbmRPYmogPiAkQ3VycmVudFRpbWVPYmplY3QgKSB7CiMgICAgICAgICAgICAgICAgbXkgJE91dE9mT2ZmaWNlTWVzc2FnZVRlbXBsYXRlID0KIyAgICAgICAgICAgICAgICAgICAgJENvbmZpZ09iamVjdC0+R2V0KCdPdXRPZk9mZmljZU1lc3NhZ2VUZW1wbGF0ZScpIHx8ICcqKiogb3V0IG9mIG9mZmljZSB1bnRpbCAlcyAoJXMgZCBsZWZ0KSAqKionOwojICAgICAgICAgICAgICAgIG15ICRUaWxsRGF0ZSA9IHNwcmludGYoCiMgICAgICAgICAgICAgICAgICAgICclMDRkLSUwMmQtJTAyZCcsCiMgICAgICAgICAgICAgICAgICAgICRQcmVmZXJlbmNlc3tPdXRPZk9mZmljZUVuZFllYXJ9LAojICAgICAgICAgICAgICAgICAgICAkUHJlZmVyZW5jZXN7T3V0T2ZPZmZpY2VFbmRNb250aH0sCiMgICAgICAgICAgICAgICAgICAgICRQcmVmZXJlbmNlc3tPdXRPZk9mZmljZUVuZERheX0KIyAgICAgICAgICAgICAgICApOwojICAgICAgICAgICAgICAgIG15ICRUaWxsID0gaW50KCAoICRUaW1lRW5kT2JqLT5Ub0Vwb2NoKCkgLSAkQ3VycmVudFRpbWVPYmplY3QtPlRvRXBvY2goKSApIC8gNjAgLyA2MCAvIDI0ICk7CiMgICAgICAgICAgICAgICAgJFByZWZlcmVuY2Vze091dE9mT2ZmaWNlTWVzc2FnZX0gPSBzcHJpbnRmKCAkT3V0T2ZPZmZpY2VNZXNzYWdlVGVtcGxhdGUsICRUaWxsRGF0ZSwgJFRpbGwgKTsKIyAgICAgICAgICAgICAgICAkRGF0YXtVc2VyRnVsbG5hbWV9IC49ICcgJyAuICRQcmVmZXJlbmNlc3tPdXRPZk9mZmljZU1lc3NhZ2V9OwojICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICRUaW1lRW5kT2JqID4gJEN1cnJlbnRUaW1lT2JqZWN0ICkgewogICAgICAgICAgICAgICAgaWYgKCAkVGltZVN0YXJ0T2JqIDwgJEN1cnJlbnRUaW1lT2JqZWN0ICkgewogICAgICAgICAgICAgICAgICAgIG15ICRPdXRPZk9mZmljZU1lc3NhZ2VUZW1wbGF0ZSA9CiAgICAgICAgICAgICAgICAgICAgICAgICRDb25maWdPYmplY3QtPkdldCgnT3V0T2ZPZmZpY2VNZXNzYWdlVGVtcGxhdGUnKSB8fCAnKioqIG91dCBvZiBvZmZpY2UgdW50aWwgJXMgKCVzIGQgbGVmdCkgKioqJzsKICAgICAgICAgICAgICAgICAgICBteSAkVGlsbERhdGUgPSBzcHJpbnRmKAogICAgICAgICAgICAgICAgICAgICAgICAnJTA0ZC0lMDJkLSUwMmQnLAogICAgICAgICAgICAgICAgICAgICAgICAkUHJlZmVyZW5jZXN7T3V0T2ZPZmZpY2VFbmRZZWFyfSwKICAgICAgICAgICAgICAgICAgICAgICAgJFByZWZlcmVuY2Vze091dE9mT2ZmaWNlRW5kTW9udGh9LAogICAgICAgICAgICAgICAgICAgICAgICAkUHJlZmVyZW5jZXN7T3V0T2ZPZmZpY2VFbmREYXl9CiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBteSAkVGlsbCA9IGludCggKCAkVGltZUVuZE9iai0+VG9FcG9jaCgpIC0gJEN1cnJlbnRUaW1lT2JqZWN0LT5Ub0Vwb2NoKCkgKSAvIDYwIC8gNjAgLyAyNCApOwogICAgICAgICAgICAgICAgICAgICRQcmVmZXJlbmNlc3tPdXRPZk9mZmljZU1lc3NhZ2V9ID0gc3ByaW50ZiggJE91dE9mT2ZmaWNlTWVzc2FnZVRlbXBsYXRlLCAkVGlsbERhdGUsICRUaWxsICk7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7VXNlckZ1bGxuYW1lfSAuPSAnICcgLiAkUHJlZmVyZW5jZXN7T3V0T2ZPZmZpY2VNZXNzYWdlfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIG15ICRQcmVPdXRPZk9mZmljZURheXNJbkFkdmFuY2UgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1ByZU91dE9mT2ZmaWNlRGF5c0luQWR2YW5jZScpIHx8IDA7CiAgICAgICAgICAgICAgICAgICAgbXkgJFRpbWVTdGFydFByZU9iaiAgICAgICAgICAgICA9ICRUaW1lU3RhcnRPYmo7CiAgICAgICAgICAgICAgICAgICAgJFRpbWVTdGFydFByZU9iai0+U3VidHJhY3QoCiAgICAgICAgICAgICAgICAgICAgICAgIERheXMgPT4gJFByZU91dE9mT2ZmaWNlRGF5c0luQWR2YW5jZSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGlmICggJFRpbWVTdGFydFByZU9iaiA8ICRDdXJyZW50VGltZU9iamVjdCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJFByZU91dE9mT2ZmaWNlTWVzc2FnZVRlbXBsYXRlID0gJENvbmZpZ09iamVjdC0+R2V0KCdQcmVPdXRPZk9mZmljZU1lc3NhZ2VUZW1wbGF0ZScpIHx8ICcqKiogb3V0IG9mIG9mZmljZSBmcm9tICVzIHRpbGwgJXMgKioqJzsKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJEZyb21EYXRlICAgICAgICAgICAgICAgICAgICAgID0gc3ByaW50ZigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICclMDRkLSUwMmQtJTAyZCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUHJlZmVyZW5jZXN7T3V0T2ZPZmZpY2VTdGFydFllYXJ9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFByZWZlcmVuY2Vze091dE9mT2ZmaWNlU3RhcnRNb250aH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUHJlZmVyZW5jZXN7T3V0T2ZPZmZpY2VTdGFydERheX0KICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJFRpbGxEYXRlID0gc3ByaW50ZigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICclMDRkLSUwMmQtJTAyZCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUHJlZmVyZW5jZXN7T3V0T2ZPZmZpY2VFbmRZZWFyfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQcmVmZXJlbmNlc3tPdXRPZk9mZmljZUVuZE1vbnRofSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQcmVmZXJlbmNlc3tPdXRPZk9mZmljZUVuZERheX0KICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgJFByZWZlcmVuY2Vze1ByZU91dE9mT2ZmaWNlTWVzc2FnZX0gPSBzcHJpbnRmKCAkUHJlT3V0T2ZPZmZpY2VNZXNzYWdlVGVtcGxhdGUsICRGcm9tRGF0ZSwgJFRpbGxEYXRlICk7CiAgICAgICAgICAgICAgICAgICAgICAgICREYXRhe1VzZXJGdWxsbmFtZX0gLj0gJyAnIC4gJFByZWZlcmVuY2Vze1ByZU91dE9mT2ZmaWNlTWVzc2FnZX07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiMgRU8gUHJlT3V0T2ZPZmZpY2VNZXNzYWdlCiAgICAgICAgICAgICMgUmVkdWNlIENhY2hlVFRMIHRvIG9uZSBob3VyIGZvciB1c2VycyB0aGF0IGFyZSBvdXQgb2Ygb2ZmaWNlIHRvIG1ha2Ugc3VyZSB0aGUgY2FjaGUgZXhwaXJlcyB0aW1lbHkKICAgICAgICAgICAgIyAgIGV2ZW4gaWYgdGhlcmUgaXMgbm8gdXBkYXRlIGFjdGlvbi4KICAgICAgICAgICAgJENhY2hlVFRMID0gNjAgKiA2MCAqIDE7CiAgICAgICAgfQogICAgfQoKICAgICMgbWVyZ2UgaGFzaCwgdGhpcyBhZGRzIFVzZXJFbWFpbCB0byAlRGF0YQogICAgJURhdGEgPSAoICVEYXRhLCAlUHJlZmVyZW5jZXMgKTsKCiAgICAjIGFkZCBwcmVmZXJlbmNlcyBkZWZhdWx0cwogICAgbXkgJENvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgnUHJlZmVyZW5jZXNHcm91cHMnKTsKICAgIGlmICggJENvbmZpZyAmJiByZWYgJENvbmZpZyBlcSAnSEFTSCcgKSB7CgogICAgICAgIEtFWToKICAgICAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAleyRDb25maWd9ICkgewoKICAgICAgICAgICAgbmV4dCBLRVkgdW5sZXNzIGRlZmluZWQgJENvbmZpZy0+eyRLZXl9LT57RGF0YVNlbGVjdGVkfTsKCiAgICAgICAgICAgICMgY2hlY2sgaWYgZGF0YSBpcyBkZWZpbmVkCiAgICAgICAgICAgIG5leHQgS0VZIGlmIGRlZmluZWQgJERhdGF7ICRDb25maWctPnskS2V5fS0+e1ByZWZLZXl9IH07CgogICAgICAgICAgICAjIHNldCBkZWZhdWx0IGRhdGEKICAgICAgICAgICAgJERhdGF7ICRDb25maWctPnskS2V5fS0+e1ByZWZLZXl9IH0gPSAkQ29uZmlnLT57JEtleX0tPntEYXRhU2VsZWN0ZWR9OwogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCBjYWNoZQogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPlNldCgKICAgICAgICBUeXBlICA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgVFRMICAgPT4gJENhY2hlVFRMLAogICAgICAgIEtleSAgID0+ICRDYWNoZUtleSwKICAgICAgICBWYWx1ZSA9PiBcJURhdGEsCiAgICApOwoKICAgIHJldHVybiAlRGF0YTsKfQoKPWhlYWQyIFVzZXJBZGQoKQoKYWRkcyBhIG5ldyB1c2VyLiBBZGRpdGlvbmFsIHBhcmFtZXRlcnMgc3RhcnRpbmcgd2l0aCAnVXNlcicsIGxpa2UgJ1VzZXJNb2JpbGUnLCB3aWxsIGJlIGFkZGVkCnRvIHRoZSBVc2VyIHByZWZlcmVuY2VzLgoKICAgIG15ICRVc2VySUQgPSAkVXNlck9iamVjdC0+VXNlckFkZCgKICAgICAgICBVc2VyRmlyc3RuYW1lID0+ICdIdWJlcicsCiAgICAgICAgVXNlckxhc3RuYW1lICA9PiAnTWFuZnJlZCcsCiAgICAgICAgVXNlclRpdGxlICAgICA9PiAnUHJvZi4nLCAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgVXNlckxvZ2luICAgICA9PiAnbWh1YmVyJywgICAgICAgICAgICAgICAjIHJlcXVpcmVkLCBtdXN0IGJlIHVuaXF1ZSBkaXNyZWdhcmRpbmcgY2FzZQogICAgICAgIFVzZXJQdyAgICAgICAgPT4gJ3NvbWUtcGFzcycsICAgICAgICAgICAgIyBvcHRpb25hbAogICAgICAgIFVzZXJFbWFpbCAgICAgPT4gJ2VtYWlsQGV4YW1wbGUuY29tJywgICAgIyByZXF1aXJlZCwgd2lsbCBiZSBjaGVja2VkLCBhZGRlZCBhcyB1c2VyIHByZWZlcmVuY2UKICAgICAgICBVc2VyTW9iaWxlICAgID0+ICcxMjM0NTY3ODkwJywgICAgICAgICAgICMgb3B0aW9uYWwsIGFkZGVkIGFzIHVzZXIgcHJlZmVyZW5jZQogICAgICAgIENoYW5nZVVzZXJJRCAgPT4gMTIzLCAgICAgICAgICAgICAgICAgICAgIyBJRCBvZiB0aGUgdXNlciB0aGF0IGNyZWF0ZXMgdGhlIG5ldyB1c2VyCiAgICAgICAgVmFsaWRJRCAgICAgICA9PiAxLAogICAgKTsKClJldHVybnMgdGhlIGlkIG9mIHRoZSBhZGRlZCB1c2VyIHdoZW4gdGhlIHVzZXIgY291bGQgYmUgYWRkZWQuCgo9Y3V0CgpzdWIgVXNlckFkZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgKHF3KFVzZXJGaXJzdG5hbWUgVXNlckxhc3RuYW1lIFVzZXJMb2dpbiBVc2VyRW1haWwgVmFsaWRJRCBDaGFuZ2VVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRffSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJF8hIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGlmIGEgdXNlciB3aXRoIHRoaXMgbG9naW4gKHVzZXJuYW1lKSBhbHJlYWR5IGV4aXN0cwogICAgaWYgKCAkU2VsZi0+VXNlckxvZ2luRXhpc3RzQ2hlY2soIFVzZXJMb2dpbiA9PiAkUGFyYW17VXNlckxvZ2lufSApICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiQSB1c2VyIHdpdGggdGhlIHVzZXJuYW1lICckUGFyYW17VXNlckxvZ2lufScgYWxyZWFkeSBleGlzdHMuIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIGVtYWlsIGFkZHJlc3MKICAgIGlmICgKICAgICAgICAkUGFyYW17VXNlckVtYWlsfQogICAgICAgICYmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2hlY2tJdGVtJyktPkNoZWNrRW1haWwoIEFkZHJlc3MgPT4gJFBhcmFte1VzZXJFbWFpbH0gKQogICAgICAgICYmIGdyZXAgeyAkXyBlcSAkUGFyYW17VmFsaWRJRH0gfSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKS0+VmFsaWRJRHNHZXQoKQogICAgICAgICkKICAgIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVtYWlsIGFkZHJlc3MgKCRQYXJhbXtVc2VyRW1haWx9KSBub3QgdmFsaWQgKCIKICAgICAgICAgICAgICAgIC4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNoZWNrSXRlbScpLT5DaGVja0Vycm9yKCkgLiAiKSEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgcGFzc3dvcmQKICAgIGlmICggISRQYXJhbXtVc2VyUHd9ICkgewogICAgICAgICRQYXJhbXtVc2VyUHd9ID0gJFNlbGYtPkdlbmVyYXRlUmFuZG9tUGFzc3dvcmQoKTsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgRG9uJ3Qgc3RvcmUgdGhlIHVzZXIncyBwYXNzd29yZCBpbiBwbGFpbnRleHQgaW5pdGlhbGx5LiBJdCB3aWxsIGJlIHN0b3JlZCBpbiBhCiAgICAjICAgaGFzaGVkIHZlcnNpb24gbGF0ZXIgd2l0aCBTZXRQYXNzd29yZCgpLgogICAgbXkgJFJhbmRvbVBhc3N3b3JkID0gJFNlbGYtPkdlbmVyYXRlUmFuZG9tUGFzc3dvcmQoKTsKCiAgICAjIHNxbAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCA9PiAiSU5TRVJUIElOVE8gJFNlbGYtPntVc2VyVGFibGV9ICIKICAgICAgICAgICAgLiAiKHRpdGxlLCBmaXJzdF9uYW1lLCBsYXN0X25hbWUsICIKICAgICAgICAgICAgLiAiICRTZWxmLT57VXNlclRhYmxlVXNlcn0sICRTZWxmLT57VXNlclRhYmxlVXNlclBXfSwgIgogICAgICAgICAgICAuICIgdmFsaWRfaWQsIGNyZWF0ZV90aW1lLCBjcmVhdGVfYnksIGNoYW5nZV90aW1lLCBjaGFuZ2VfYnkpIgogICAgICAgICAgICAuICIgVkFMVUVTICIKICAgICAgICAgICAgLiAiICg/LCA/LCA/LCA/LCA/LCA/LCBjdXJyZW50X3RpbWVzdGFtcCwgPywgY3VycmVudF90aW1lc3RhbXAsID8pIiwKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRQYXJhbXtVc2VyVGl0bGV9LCAgICBcJFBhcmFte1VzZXJGaXJzdG5hbWV9LCBcJFBhcmFte1VzZXJMYXN0bmFtZX0sCiAgICAgICAgICAgIFwkUGFyYW17VXNlckxvZ2lufSwgICAgXCRSYW5kb21QYXNzd29yZCwgICAgICAgXCRQYXJhbXtWYWxpZElEfSwKICAgICAgICAgICAgXCRQYXJhbXtDaGFuZ2VVc2VySUR9LCBcJFBhcmFte0NoYW5nZVVzZXJJRH0sCiAgICAgICAgXSwKICAgICk7CgogICAgIyBnZXQgbmV3IHVzZXIgaWQKICAgIG15ICRVc2VyTG9naW4gPSBsYyAkUGFyYW17VXNlckxvZ2lufTsKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiU0VMRUNUICRTZWxmLT57VXNlclRhYmxlVXNlcklEfSBGUk9NICRTZWxmLT57VXNlclRhYmxlfSAiCiAgICAgICAgICAgIC4gIiBXSEVSRSAkU2VsZi0+e0xvd2VyfSgkU2VsZi0+e1VzZXJUYWJsZVVzZXJ9KSA9ID8iLAogICAgICAgIEJpbmQgID0+IFsgXCRVc2VyTG9naW4gXSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRVc2VySUQ7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkVXNlcklEID0gJFJvd1swXTsKICAgIH0KCiAgICAjIGNoZWNrIGlmIHVzZXIgZXhpc3RzCiAgICBpZiAoICEkVXNlcklEICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlVuYWJsZSB0byBjcmVhdGUgVXNlcjogJyRQYXJhbXtVc2VyTG9naW59JyAoJFBhcmFte0NoYW5nZVVzZXJJRH0pISIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgbG9nIG5vdGljZQogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgUHJpb3JpdHkgPT4gJ25vdGljZScsCiAgICAgICAgTWVzc2FnZSAgPT4gIlVzZXI6ICckUGFyYW17VXNlckxvZ2lufScgSUQ6ICckVXNlcklEJyBjcmVhdGVkIHN1Y2Nlc3NmdWxseSAoJFBhcmFte0NoYW5nZVVzZXJJRH0pISIsCiAgICApOwoKICAgICMgc2V0IHBhc3N3b3JkCiAgICAkU2VsZi0+U2V0UGFzc3dvcmQoCiAgICAgICAgVXNlckxvZ2luID0+ICRQYXJhbXtVc2VyTG9naW59LAogICAgICAgIFBXICAgICAgICA9PiAkUGFyYW17VXNlclB3fQogICAgKTsKCiAgICBteSBAVXNlclByZWZlcmVuY2VzID0gZ3JlcCB7ICRfID1+IG17XlVzZXJ9eHNpIH0gc29ydCBrZXlzICVQYXJhbTsKCiAgICBVU0VSUFJFRkVSRU5DRToKICAgIGZvciBteSAkVXNlclByZWZlcmVuY2UgKEBVc2VyUHJlZmVyZW5jZXMpIHsKCiAgICAgICAgIyBVc2VyRW1haWwgaXMgcmVxdWlyZWQuCiAgICAgICAgbmV4dCBVU0VSUFJFRkVSRU5DRSBpZiAkVXNlclByZWZlcmVuY2UgZXEgJ1VzZXJFbWFpbCcgJiYgISRQYXJhbXtVc2VyRW1haWx9OwoKICAgICAgICAjIFNldCB1c2VyIHByZWZlcmVuY2VzLgogICAgICAgICMgTmF0aXZlIHVzZXIgZGF0YSB3aWxsIG5vdCBiZSBvdmVyd3JpdGVuLiBUaGlzIGlzIGhhbmRsZWQgYnkgYSBibGFjayBsaXN0IGluIFNldFByZWZlcmVuY2VzKCkuCiAgICAgICAgJFNlbGYtPlNldFByZWZlcmVuY2VzKAogICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgS2V5ICAgID0+ICRVc2VyUHJlZmVyZW5jZSwKICAgICAgICAgICAgVmFsdWUgID0+ICRQYXJhbXskVXNlclByZWZlcmVuY2V9IHx8ICcnLAogICAgICAgICk7CiAgICB9CgogICAgIyBkZWxldGUgY2FjaGUKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKAogICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgKTsKCiAgICByZXR1cm4gJFVzZXJJRDsKfQoKPWhlYWQyIFVzZXJVcGRhdGUoKQoKdG8gdXBkYXRlIHVzZXJzCgogICAgJFVzZXJPYmplY3QtPlVzZXJVcGRhdGUoCiAgICAgICAgVXNlcklEICAgICAgICA9PiA0MzIxLAogICAgICAgIFVzZXJGaXJzdG5hbWUgPT4gJ0h1YmVyJywKICAgICAgICBVc2VyTGFzdG5hbWUgID0+ICdNYW5mcmVkJywKICAgICAgICBVc2VyTG9naW4gICAgID0+ICdtaHViZXInLAogICAgICAgIFVzZXJQdyAgICAgICAgPT4gJ3NvbWUtcGFzcycsICMgbm90IHJlcXVpcmVkCiAgICAgICAgVXNlckVtYWlsICAgICA9PiAnZW1haWxAZXhhbXBsZS5jb20nLAogICAgICAgIFVzZXJNb2JpbGUgICAgPT4gJzEyMzQ1Njc4OTAnLCAjIG5vdCByZXF1aXJlZAogICAgICAgIFZhbGlkSUQgICAgICAgPT4gMSwKICAgICAgICBDaGFuZ2VVc2VySUQgID0+IDEyMywKICAgICk7Cgo9Y3V0CgpzdWIgVXNlclVwZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgKHF3KFVzZXJJRCBVc2VyRmlyc3RuYW1lIFVzZXJMYXN0bmFtZSBVc2VyTG9naW4gVmFsaWRJRCBDaGFuZ2VVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRffSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJF8hIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHN0b3JlIG9sZCB1c2VyIGxvZ2luIGZvciBsYXRlciB1c2UKICAgIG15ICRPbGRVc2VyTG9naW4gPSAkU2VsZi0+VXNlckxvb2t1cCgKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgaWYgYSB1c2VyIHdpdGggdGhpcyBsb2dpbiAodXNlcm5hbWUpIGFscmVhZHkgZXhpc3RzCiAgICBpZiAoCiAgICAgICAgJFNlbGYtPlVzZXJMb2dpbkV4aXN0c0NoZWNrKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFBhcmFte1VzZXJMb2dpbn0sCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfQogICAgICAgICkKICAgICAgICApCiAgICB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJBIHVzZXIgd2l0aCB0aGUgdXNlcm5hbWUgJyRQYXJhbXtVc2VyTG9naW59JyBhbHJlYWR5IGV4aXN0cy4iLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgZW1haWwgYWRkcmVzcwogICAgaWYgKAogICAgICAgICRQYXJhbXtVc2VyRW1haWx9CiAgICAgICAgJiYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDaGVja0l0ZW0nKS0+Q2hlY2tFbWFpbCggQWRkcmVzcyA9PiAkUGFyYW17VXNlckVtYWlsfSApCiAgICAgICAgJiYgZ3JlcCB7ICRfIGVxICRQYXJhbXtWYWxpZElEfSB9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZElEc0dldCgpCiAgICAgICAgKQogICAgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiRW1haWwgYWRkcmVzcyAoJFBhcmFte1VzZXJFbWFpbH0pIG5vdCB2YWxpZCAoIgogICAgICAgICAgICAgICAgLiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2hlY2tJdGVtJyktPkNoZWNrRXJyb3IoKSAuICIpISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyB1cGRhdGUgZGIKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAiVVBEQVRFICRTZWxmLT57VXNlclRhYmxlfSBTRVQgdGl0bGUgPSA/LCBmaXJzdF9uYW1lID0gPywgbGFzdF9uYW1lID0gPywgIgogICAgICAgICAgICAuICIgJFNlbGYtPntVc2VyVGFibGVVc2VyfSA9ID8sIHZhbGlkX2lkID0gPywgIgogICAgICAgICAgICAuICIgY2hhbmdlX3RpbWUgPSBjdXJyZW50X3RpbWVzdGFtcCwgY2hhbmdlX2J5ID0gPyAiCiAgICAgICAgICAgIC4gIiBXSEVSRSAkU2VsZi0+e1VzZXJUYWJsZVVzZXJJRH0gPSA/IiwKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRQYXJhbXtVc2VyVGl0bGV9LCBcJFBhcmFte1VzZXJGaXJzdG5hbWV9LCBcJFBhcmFte1VzZXJMYXN0bmFtZX0sCiAgICAgICAgICAgIFwkUGFyYW17VXNlckxvZ2lufSwgXCRQYXJhbXtWYWxpZElEfSwgXCRQYXJhbXtDaGFuZ2VVc2VySUR9LCBcJFBhcmFte1VzZXJJRH0sCiAgICAgICAgXSwKICAgICk7CgogICAgIyBjaGVjayBwdwogICAgaWYgKCAkUGFyYW17VXNlclB3fSApIHsKICAgICAgICAkU2VsZi0+U2V0UGFzc3dvcmQoCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkUGFyYW17VXNlckxvZ2lufSwKICAgICAgICAgICAgUFcgICAgICAgID0+ICRQYXJhbXtVc2VyUHd9CiAgICAgICAgKTsKICAgIH0KCiAgICBteSBAVXNlclByZWZlcmVuY2VzID0gZ3JlcCB7ICRfID1+IG17XlVzZXJ9eHNpIH0gc29ydCBrZXlzICVQYXJhbTsKCiAgICBVU0VSUFJFRkVSRU5DRToKICAgIGZvciBteSAkVXNlclByZWZlcmVuY2UgKEBVc2VyUHJlZmVyZW5jZXMpIHsKCiAgICAgICAgIyBVc2VyRW1haWwgaXMgcmVxdWlyZWQuCiAgICAgICAgbmV4dCBVU0VSUFJFRkVSRU5DRSBpZiAkVXNlclByZWZlcmVuY2UgZXEgJ1VzZXJFbWFpbCcgJiYgISRQYXJhbXtVc2VyRW1haWx9OwoKICAgICAgICAjIFNldCB1c2VyIHByZWZlcmVuY2VzLgogICAgICAgICMgTmF0aXZlIHVzZXIgZGF0YSB3aWxsIG5vdCBiZSBvdmVyd3JpdGVuIChoYW5kZWxlZCBieSBTZXRQcmVmZXJlbmNlcygpKS4KICAgICAgICAkU2VsZi0+U2V0UHJlZmVyZW5jZXMoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgS2V5ICAgID0+ICRVc2VyUHJlZmVyZW5jZSwKICAgICAgICAgICAgVmFsdWUgID0+ICRQYXJhbXskVXNlclByZWZlcmVuY2V9IHx8ICcnLAogICAgICAgICk7CiAgICB9CgogICAgIyB1cGRhdGUgc2VhcmNoIHByb2ZpbGVzIGlmIHRoZSBVc2VyTG9naW4gY2hhbmdlZAogICAgaWYgKCBsYyAkT2xkVXNlckxvZ2luIG5lIGxjICRQYXJhbXtVc2VyTG9naW59ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTZWFyY2hQcm9maWxlJyktPlNlYXJjaFByb2ZpbGVVcGRhdGVVc2VyTG9naW4oCiAgICAgICAgICAgIEJhc2UgICAgICAgICA9PiAnVGlja2V0U2VhcmNoJywKICAgICAgICAgICAgVXNlckxvZ2luICAgID0+ICRPbGRVc2VyTG9naW4sCiAgICAgICAgICAgIE5ld1VzZXJMb2dpbiA9PiAkUGFyYW17VXNlckxvZ2lufSwKICAgICAgICApOwogICAgfQoKICAgICRTZWxmLT5fVXNlckNhY2hlQ2xlYXIoIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSApOwoKICAgICMgVE9ETyBOb3QgbmVlZGVkIHRvIGRlbGV0ZSB0aGUgY2FjaGUgaWYgVmFsaWRJRCBvciBOYW1lIHdhcyBub3QgY2hhbmdlZAoKICAgIG15ICRDYWNoZU9iamVjdCAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyk7CiAgICBteSAkU3lzdGVtUGVybWlzc2lvbkNvbmZpZyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU3lzdGVtOjpQZXJtaXNzaW9uJykgfHwgW107CgogICAgZm9yIG15ICRUeXBlICggQHskU3lzdGVtUGVybWlzc2lvbkNvbmZpZ30sICdydycgKSB7CgogICAgICAgICRDYWNoZU9iamVjdC0+RGVsZXRlKAogICAgICAgICAgICBUeXBlID0+ICdHcm91cFBlcm1pc3Npb25Vc2VyR2V0JywKICAgICAgICAgICAgS2V5ICA9PiAnUGVybWlzc2lvblVzZXJHZXQ6OicgLiAkUGFyYW17VXNlcklEfSAuICc6OicgLiAkVHlwZSwKICAgICAgICApOwogICAgfQoKICAgICRDYWNoZU9iamVjdC0+Q2xlYW5VcCgKICAgICAgICBUeXBlID0+ICdHcm91cFBlcm1pc3Npb25Hcm91cEdldCcsCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgVXNlclNlYXJjaCgpCgp0byBzZWFyY2ggdXNlcnMKCiAgICBteSAlTGlzdCA9ICRVc2VyT2JqZWN0LT5Vc2VyU2VhcmNoKAogICAgICAgIFNlYXJjaCA9PiAnKnNvbWUqJywgIyBhbHNvICdoYW5zK2h1YmVyJyBwb3NzaWJsZQogICAgICAgIFZhbGlkICA9PiAxLCAjIG5vdCByZXF1aXJlZAogICAgKTsKCiAgICBteSAlTGlzdCA9ICRVc2VyT2JqZWN0LT5Vc2VyU2VhcmNoKAogICAgICAgIFVzZXJMb2dpbiA9PiAnKnNvbWUqJywKICAgICAgICBMaW1pdCAgICAgPT4gNTAsCiAgICAgICAgVmFsaWQgICAgID0+IDEsICMgbm90IHJlcXVpcmVkCiAgICApOwoKICAgIG15ICVMaXN0ID0gJFVzZXJPYmplY3QtPlVzZXJTZWFyY2goCiAgICAgICAgUG9zdE1hc3RlclNlYXJjaCA9PiAnZW1haWxAZXhhbXBsZS5jb20nLAogICAgICAgIFZhbGlkICAgICAgICAgICAgPT4gMSwgIyBub3QgcmVxdWlyZWQKICAgICk7CgpSZXR1cm5zIGhhc2ggb2YgVXNlcklELCBMb2dpbiBwYWlyczoKCiAgICBteSAlTGlzdCA9ICgKICAgICAgICAxID0+ICdyb290QGxvY2Fob3N0JywKICAgICAgICA0ID0+ICdhZG1pbicsCiAgICAgICAgOSA9PiAnam9lJywKICAgICk7CgpGb3IgUG9zdE1hc3RlclNlYXJjaCwgaXQgcmV0dXJucyBoYXNoIG9mIFVzZXJJRCwgRW1haWwgcGFpcnM6CgogICAgbXkgJUxpc3QgPSAoCiAgICAgICAgNCA9PiAnam9obkBleGFtcGxlLmNvbScsCiAgICAgICAgOSA9PiAnam9lQGV4YW1wbGUuY29tJywKICAgICk7Cgo9Y3V0CgpzdWIgVXNlclNlYXJjaCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVVc2VyczsKICAgIG15ICRWYWxpZCA9ICRQYXJhbXtWYWxpZH0gLy8gMTsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1NlYXJjaH0gJiYgISRQYXJhbXtVc2VyTG9naW59ICYmICEkUGFyYW17UG9zdE1hc3RlclNlYXJjaH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFNlYXJjaCwgVXNlckxvZ2luIG9yIFBvc3RNYXN0ZXJTZWFyY2ghJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZ2V0IGxpa2UgZXNjYXBlIHN0cmluZyBuZWVkZWQgZm9yIHNvbWUgZGF0YWJhc2VzIChlLmcuIG9yYWNsZSkKICAgIG15ICRMaWtlRXNjYXBlU3RyaW5nID0gJERCT2JqZWN0LT5HZXREYXRhYmFzZUZ1bmN0aW9uKCdMaWtlRXNjYXBlU3RyaW5nJyk7CgogICAgIyBidWlsZCBTUUwgc3RyaW5nCiAgICBteSAkU1FMID0gIlNFTEVDVCAkU2VsZi0+e1VzZXJUYWJsZVVzZXJJRH0sIGxvZ2luCiAgICAgICAgICAgICAgICAgICBGUk9NICRTZWxmLT57VXNlclRhYmxlfSBXSEVSRSAiOwogICAgbXkgQEJpbmQ7CgogICAgaWYgKCAkUGFyYW17U2VhcmNofSApIHsKCiAgICAgICAgbXkgJVF1ZXJ5Q29uZGl0aW9uID0gJERCT2JqZWN0LT5RdWVyeUNvbmRpdGlvbigKICAgICAgICAgICAgS2V5ICAgICAgPT4gW3F3KGxvZ2luIGZpcnN0X25hbWUgbGFzdF9uYW1lKV0sCiAgICAgICAgICAgIFZhbHVlICAgID0+ICRQYXJhbXtTZWFyY2h9LAogICAgICAgICAgICBCaW5kTW9kZSA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNRTCAuPSAkUXVlcnlDb25kaXRpb257U1FMfSAuICcgJzsKICAgICAgICBwdXNoIEBCaW5kLCBAeyAkUXVlcnlDb25kaXRpb257VmFsdWVzfSB9OwogICAgfQogICAgZWxzaWYgKCAkUGFyYW17UG9zdE1hc3RlclNlYXJjaH0gKSB7CgogICAgICAgIG15ICVVc2VySUQgPSAkU2VsZi0+U2VhcmNoUHJlZmVyZW5jZXMoCiAgICAgICAgICAgIEtleSAgID0+ICdVc2VyRW1haWwnLAogICAgICAgICAgICBWYWx1ZSA9PiAkUGFyYW17UG9zdE1hc3RlclNlYXJjaH0sCiAgICAgICAgKTsKCiAgICAgICAgZm9yICggc29ydCBrZXlzICVVc2VySUQgKSB7CiAgICAgICAgICAgIG15ICVVc2VyID0gJFNlbGYtPkdldFVzZXJEYXRhKAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRfLAogICAgICAgICAgICAgICAgVmFsaWQgID0+ICRQYXJhbXtWYWxpZH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICglVXNlcikgewogICAgICAgICAgICAgICAgcmV0dXJuICVVc2VySUQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybjsKICAgIH0KICAgIGVsc2lmICggJFBhcmFte1VzZXJMb2dpbn0gKSB7CgogICAgICAgIG15ICRVc2VyTG9naW4gPSBsYyAkUGFyYW17VXNlckxvZ2lufTsKICAgICAgICAkU1FMIC49ICIgJFNlbGYtPntMb3dlcn0oJFNlbGYtPntVc2VyVGFibGVVc2VyfSkgTElLRSA/ICRMaWtlRXNjYXBlU3RyaW5nIjsKICAgICAgICAkVXNlckxvZ2luID1+IHMvXCovJS9nOwogICAgICAgICRVc2VyTG9naW4gPSAkREJPYmplY3QtPlF1b3RlKCAkVXNlckxvZ2luLCAnTGlrZScgKTsKICAgICAgICBwdXNoIEBCaW5kLCBcJFVzZXJMb2dpbjsKICAgIH0KCiAgICAjIGFkZCB2YWxpZCBvcHRpb24KICAgIGlmICgkVmFsaWQpIHsKICAgICAgICAkU1FMIC49ICJBTkQgdmFsaWRfaWQgSU4gKCIKICAgICAgICAgICAgLiBqb2luKCAnLCAnLCAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKS0+VmFsaWRJRHNHZXQoKSApIC4gIikiOwogICAgfQoKICAgICMgZ2V0IGRhdGEKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCAgID0+ICRTUUwsCiAgICAgICAgQmluZCAgPT4gXEBCaW5kLAogICAgICAgIExpbWl0ID0+ICRTZWxmLT57VXNlclNlYXJjaExpc3RMaW1pdH0gfHwgJFBhcmFte0xpbWl0fSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkVXNlcnN7ICRSb3dbMF0gfSA9ICRSb3dbMV07CiAgICB9CgogICAgcmV0dXJuICVVc2VyczsKfQoKPWhlYWQyIFNldFBhc3N3b3JkKCkKCnRvIHNldCB1c2VycyBwYXNzd29yZHMKCiAgICAkVXNlck9iamVjdC0+U2V0UGFzc3dvcmQoCiAgICAgICAgVXNlckxvZ2luID0+ICdzb21lLWxvZ2luJywKICAgICAgICBQVyAgICAgICAgPT4gJ3NvbWUtbmV3LXBhc3N3b3JkJwogICAgKTsKCj1jdXQKCnN1YiBTZXRQYXNzd29yZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgVGhpcyBtZXRob2QgaXMgc2ltaWxhciB0byBLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyOjpEQjo6U2V0UGFzc3dvcmQoKQoKICAgIG15ICRMb2dpbiA9ICRQYXJhbXtVc2VyTG9naW59OwogICAgbXkgJFB3ICAgID0gJFBhcmFte1BXfSB8fCAnJzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJExvZ2luICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBVc2VyTG9naW4hJywKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgb2xkIHVzZXIgZGF0YQogICAgbXkgJVVzZXIgPSAkU2VsZi0+R2V0VXNlckRhdGEoIFVzZXIgPT4gJExvZ2luICk7CiAgICBpZiAoICEkVXNlcntVc2VyTG9naW59ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTm8gc3VjaCBVc2VyIScsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRDcnlwdGVkUHcgPSAnJzsKCiAgICBteSAkQ29uZmlnT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkQ29uZmlnU2VjdGlvbiA9ICdBdXRoTW9kdWxlOjpEQic7CgogICAgbXkgJENyeXB0VHlwZSA9ICRDb25maWdPYmplY3QtPkdldCgiJHtDb25maWdTZWN0aW9ufTo6Q3J5cHRUeXBlIikgfHwgJ3NoYTInOwoKICAgIG15ICRFbmNvZGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RW5jb2RlJyk7CgogICAgIyBjcnlwdCBwbGFpbiAobm8gY3J5cHQgYXQgYWxsKQogICAgaWYgKCAkQ3J5cHRUeXBlIGVxICdwbGFpbicgKSB7CiAgICAgICAgJENyeXB0ZWRQdyA9ICRQdzsKICAgIH0KCiAgICAjIGNyeXB0IHdpdGggVU5JWCBjcnlwdAogICAgZWxzaWYgKCAkQ3J5cHRUeXBlIGVxICdjcnlwdCcgKSB7CgogICAgICAgICMgZW5jb2RlIG91dHB1dCwgbmVlZGVkIGJ5IGNyeXB0KCkgb25seSBub24gdXRmOCBzaWducwogICAgICAgICRFbmNvZGVPYmplY3QtPkVuY29kZU91dHB1dCggXCRQdyApOwogICAgICAgICRFbmNvZGVPYmplY3QtPkVuY29kZU91dHB1dCggXCRMb2dpbiApOwoKICAgICAgICAkQ3J5cHRlZFB3ID0gY3J5cHQoICRQdywgJExvZ2luICk7CiAgICB9CgogICAgIyBjcnlwdCB3aXRoIHVuaXhfbWQ1X2NyeXB0CiAgICBlbHNpZiAoICRDcnlwdFR5cGUgZXEgJ21kNScgfHwgISRDcnlwdFR5cGUgKSB7CgogICAgICAgICMgZW5jb2RlIG91dHB1dCwgbmVlZGVkIGJ5IHVuaXhfbWQ1X2NyeXB0KCkgb25seSBub24gdXRmOCBzaWducwogICAgICAgICRFbmNvZGVPYmplY3QtPkVuY29kZU91dHB1dCggXCRQdyApOwogICAgICAgICRFbmNvZGVPYmplY3QtPkVuY29kZU91dHB1dCggXCRMb2dpbiApOwoKICAgICAgICAkQ3J5cHRlZFB3ID0gdW5peF9tZDVfY3J5cHQoICRQdywgJExvZ2luICk7CiAgICB9CgogICAgIyBjcnlwdCB3aXRoIG1kNSAoY29tcGF0aWJsZSB3aXRoIEFwYWNoZSdzIC5odHBhc3N3ZCBmaWxlcykKICAgIGVsc2lmICggJENyeXB0VHlwZSBlcSAnYXByMScgKSB7CgogICAgICAgICMgZW5jb2RlIG91dHB1dCwgbmVlZGVkIGJ5IGFwYWNoZV9tZDVfY3J5cHQoKSBvbmx5IG5vbiB1dGY4IHNpZ25zCiAgICAgICAgJEVuY29kZU9iamVjdC0+RW5jb2RlT3V0cHV0KCBcJFB3ICk7CiAgICAgICAgJEVuY29kZU9iamVjdC0+RW5jb2RlT3V0cHV0KCBcJExvZ2luICk7CgogICAgICAgICRDcnlwdGVkUHcgPSBhcGFjaGVfbWQ1X2NyeXB0KCAkUHcsICRMb2dpbiApOwogICAgfQoKICAgICMgY3J5cHQgd2l0aCBzaGExCiAgICBlbHNpZiAoICRDcnlwdFR5cGUgZXEgJ3NoYTEnICkgewoKICAgICAgICBteSAkU0hBT2JqZWN0ID0gRGlnZXN0OjpTSEEtPm5ldygnc2hhMScpOwogICAgICAgICRFbmNvZGVPYmplY3QtPkVuY29kZU91dHB1dCggXCRQdyApOwogICAgICAgICRTSEFPYmplY3QtPmFkZCgkUHcpOwogICAgICAgICRDcnlwdGVkUHcgPSAkU0hBT2JqZWN0LT5oZXhkaWdlc3QoKTsKICAgIH0KCiAgICAjIGNyeXB0IHdpdGggc2hhNTEyCiAgICBlbHNpZiAoICRDcnlwdFR5cGUgZXEgJ3NoYTUxMicgKSB7CgogICAgICAgIG15ICRTSEFPYmplY3QgPSBEaWdlc3Q6OlNIQS0+bmV3KCdzaGE1MTInKTsKICAgICAgICAkRW5jb2RlT2JqZWN0LT5FbmNvZGVPdXRwdXQoIFwkUHcgKTsKICAgICAgICAkU0hBT2JqZWN0LT5hZGQoJFB3KTsKICAgICAgICAkQ3J5cHRlZFB3ID0gJFNIQU9iamVjdC0+aGV4ZGlnZXN0KCk7CiAgICB9CgogICAgIyBiY3J5cHQKICAgIGVsc2lmICggJENyeXB0VHlwZSBlcSAnYmNyeXB0JyApIHsKCiAgICAgICAgbXkgJE1haW5PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpOwoKICAgICAgICBpZiAoICEkTWFpbk9iamVjdC0+UmVxdWlyZSgnQ3J5cHQ6OkVrc2Jsb3dmaXNoOjpCY3J5cHQnKSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlVzZXI6ICckTG9naW4nIHRyaWVkIHRvIHN0b3JlIHBhc3N3b3JkIHdpdGggYmNyeXB0IGJ1dCAnQ3J5cHQ6OkVrc2Jsb3dmaXNoOjpCY3J5cHQnIGlzIG5vdCBpbnN0YWxsZWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgbXkgJENvc3QgPSAkQ29uZmlnT2JqZWN0LT5HZXQoIiR7Q29uZmlnU2VjdGlvbn06OmJjcnlwdENvc3QiKSAvLyAxMjsKCiAgICAgICAgIyBEb24ndCBhbGxvdyB2YWx1ZXMgc21hbGxlciB0aGFuIDkgZm9yIHNlY3VyaXR5LgogICAgICAgICRDb3N0ID0gOSBpZiAkQ29zdCA8IDk7CgogICAgICAgICMgQ3VycmVudCBDcnlwdDo6RWtzYmxvd2Zpc2g6OkJjcnlwdCBsaW1pdCBpcyAzMS4KICAgICAgICAkQ29zdCA9IDMxIGlmICRDb3N0ID4gMzE7CgogICAgICAgIG15ICRTYWx0ID0gJE1haW5PYmplY3QtPkdlbmVyYXRlUmFuZG9tU3RyaW5nKCBMZW5ndGggPT4gMTYgKTsKCiAgICAgICAgIyByZW1vdmUgVVRGOCBmbGFnLCByZXF1aXJlZCBieSBDcnlwdDo6RWtzYmxvd2Zpc2g6OkJjcnlwdAogICAgICAgICRFbmNvZGVPYmplY3QtPkVuY29kZU91dHB1dCggXCRQdyApOwoKICAgICAgICAjIGNhbGN1bGF0ZSBwYXNzd29yZCBoYXNoCiAgICAgICAgbXkgJE9jdGV0cyA9IENyeXB0OjpFa3NibG93ZmlzaDo6QmNyeXB0OjpiY3J5cHRfaGFzaCgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAga2V5X251bCA9PiAxLAogICAgICAgICAgICAgICAgY29zdCAgICA9PiAkQ29zdCwKICAgICAgICAgICAgICAgIHNhbHQgICAgPT4gJFNhbHQsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICRQdwogICAgICAgICk7CgogICAgICAgICMgV2Ugd2lsbCBzdG9yZSBjb3N0IGFuZCBzYWx0IGluIHRoZSBwYXNzd29yZCBzdHJpbmcgc28gdGhhdCBpdCBjYW4gYmUgZGVjb2RlZAogICAgICAgICMgICBpbiBmdXR1cmUgZXZlbiBpZiB3ZSB1c2UgYSBoaWdoZXIgY29zdCBieSBkZWZhdWx0LgogICAgICAgICRDcnlwdGVkUHcgPSAiQkNSWVBUOiRDb3N0OiRTYWx0OiIgLiBDcnlwdDo6RWtzYmxvd2Zpc2g6OkJjcnlwdDo6ZW5fYmFzZTY0KCRPY3RldHMpOwogICAgfQoKICAgICMgY3J5cHQgd2l0aCBzaGEyNTYgYXMgZmFsbGJhY2sKICAgIGVsc2UgewoKICAgICAgICBteSAkU0hBT2JqZWN0ID0gRGlnZXN0OjpTSEEtPm5ldygnc2hhMjU2Jyk7CgogICAgICAgICMgZW5jb2RlIG91dHB1dCwgbmVlZGVkIGJ5IHNoYTI1Nl9oZXgoKSBvbmx5IG5vbiB1dGY4IHNpZ25zCiAgICAgICAgJEVuY29kZU9iamVjdC0+RW5jb2RlT3V0cHV0KCBcJFB3ICk7CgogICAgICAgICRTSEFPYmplY3QtPmFkZCgkUHcpOwogICAgICAgICRDcnlwdGVkUHcgPSAkU0hBT2JqZWN0LT5oZXhkaWdlc3QoKTsKICAgIH0KCiAgICAjIHVwZGF0ZSBkYgogICAgbXkgJFVzZXJMb2dpbiA9IGxjICRQYXJhbXtVc2VyTG9naW59OwoKICAgIHJldHVybiB1bmxlc3MgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAiVVBEQVRFICRTZWxmLT57VXNlclRhYmxlfSBTRVQgJFNlbGYtPntVc2VyVGFibGVVc2VyUFd9ID0gPyAiCiAgICAgICAgICAgIC4gIiBXSEVSRSAkU2VsZi0+e0xvd2VyfSgkU2VsZi0+e1VzZXJUYWJsZVVzZXJ9KSA9ID8iLAogICAgICAgIEJpbmQgPT4gWyBcJENyeXB0ZWRQdywgXCRVc2VyTG9naW4gXSwKICAgICk7CgogICAgIyBsb2cgbm90aWNlCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywKICAgICAgICBNZXNzYWdlICA9PiAiVXNlcjogJyRQYXJhbXtVc2VyTG9naW59JyBjaGFuZ2VkIHBhc3N3b3JkIHN1Y2Nlc3NmdWxseSEiLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIFVzZXJMb29rdXAoKQoKdXNlciBsb2dpbiBvciBpZCBsb29rdXAKCiAgICBteSAkVXNlckxvZ2luID0gJFVzZXJPYmplY3QtPlVzZXJMb29rdXAoCiAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgU2lsZW50ID0+IDEsICMgb3B0aW9uYWwsIGRvbid0IGdlbmVyYXRlIGxvZyBlbnRyeSBpZiB1c2VyIHdhcyBub3QgZm91bmQKICAgICk7CgogICAgbXkgJFVzZXJJRCA9ICRVc2VyT2JqZWN0LT5Vc2VyTG9va3VwKAogICAgICAgIFVzZXJMb2dpbiA9PiAnc29tZV91c2VyX2xvZ2luJywKICAgICAgICBTaWxlbnQgICAgPT4gMSwgIyBvcHRpb25hbCwgZG9uJ3QgZ2VuZXJhdGUgbG9nIGVudHJ5IGlmIHVzZXIgd2FzIG5vdCBmb3VuZAogICAgKTsKCj1jdXQKCnN1YiBVc2VyTG9va3VwIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtVc2VyTG9naW59ICYmICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgVXNlckxvZ2luIG9yIFVzZXJJRCEnCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICBpZiAoICRQYXJhbXtVc2VyTG9naW59ICkgewoKICAgICAgICAjIGNoZWNrIGNhY2hlCiAgICAgICAgbXkgJENhY2hlS2V5ID0gJ1VzZXJMb29rdXA6OklEOjonIC4gJFBhcmFte1VzZXJMb2dpbn07CiAgICAgICAgbXkgJENhY2hlICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkdldCgKICAgICAgICAgICAgVHlwZSA9PiAkU2VsZi0+e0NhY2hlVHlwZX0sCiAgICAgICAgICAgIEtleSAgPT4gJENhY2hlS2V5LAogICAgICAgICk7CiAgICAgICAgcmV0dXJuICRDYWNoZSBpZiAkQ2FjaGU7CgogICAgICAgICMgYnVpbGQgc3FsIHF1ZXJ5CiAgICAgICAgbXkgJFVzZXJMb2dpbiA9IGxjICRQYXJhbXtVc2VyTG9naW59OwoKICAgICAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICJTRUxFQ1QgJFNlbGYtPntVc2VyVGFibGVVc2VySUR9IEZST00gJFNlbGYtPntVc2VyVGFibGV9ICIKICAgICAgICAgICAgICAgIC4gIiBXSEVSRSAkU2VsZi0+e0xvd2VyfSgkU2VsZi0+e1VzZXJUYWJsZVVzZXJ9KSA9ID8iLAogICAgICAgICAgICBCaW5kICA9PiBbIFwkVXNlckxvZ2luIF0sCiAgICAgICAgICAgIExpbWl0ID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICAgICAgbXkgJElEOwogICAgICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICAkSUQgPSAkUm93WzBdOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJElEICkgewogICAgICAgICAgICBpZiAoICEkUGFyYW17U2lsZW50fSApIHsKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5vIFVzZXJJRCBmb3VuZCBmb3IgJyRQYXJhbXtVc2VyTG9naW59JyEiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIHNldCBjYWNoZQogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5TZXQoCiAgICAgICAgICAgIFR5cGUgID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDYWNoZVRUTH0sCiAgICAgICAgICAgIEtleSAgID0+ICRDYWNoZUtleSwKICAgICAgICAgICAgVmFsdWUgPT4gJElELAogICAgICAgICk7CgogICAgICAgIHJldHVybiAkSUQ7CiAgICB9CgogICAgZWxzZSB7CgogICAgICAgICMgY2hlY2sgY2FjaGUKICAgICAgICBteSAkQ2FjaGVLZXkgPSAnVXNlckxvb2t1cDo6TG9naW46OicgLiAkUGFyYW17VXNlcklEfTsKICAgICAgICBteSAkQ2FjaGUgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+R2V0KAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgS2V5ICA9PiAkQ2FjaGVLZXksCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gJENhY2hlIGlmICRDYWNoZTsKCiAgICAgICAgIyBidWlsZCBzcWwgcXVlcnkKICAgICAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICJTRUxFQ1QgJFNlbGYtPntVc2VyVGFibGVVc2VyfSBGUk9NICRTZWxmLT57VXNlclRhYmxlfSAiCiAgICAgICAgICAgICAgICAuICIgV0hFUkUgJFNlbGYtPntVc2VyVGFibGVVc2VySUR9ID0gPyIsCiAgICAgICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgIExpbWl0ID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICAgICAgbXkgJExvZ2luOwogICAgICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICAkTG9naW4gPSAkUm93WzBdOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJExvZ2luICkgewogICAgICAgICAgICBpZiAoICEkUGFyYW17U2lsZW50fSApIHsKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5vIFVzZXJMb2dpbiBmb3VuZCBmb3IgJyRQYXJhbXtVc2VySUR9JyEiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIHNldCBjYWNoZQogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5TZXQoCiAgICAgICAgICAgIFR5cGUgID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDYWNoZVRUTH0sCiAgICAgICAgICAgIEtleSAgID0+ICRDYWNoZUtleSwKICAgICAgICAgICAgVmFsdWUgPT4gJExvZ2luLAogICAgICAgICk7CgogICAgICAgIHJldHVybiAkTG9naW47CiAgICB9Cn0KCj1oZWFkMiBVc2VyTmFtZSgpCgpnZXQgdXNlciBuYW1lCgogICAgbXkgJE5hbWUgPSAkVXNlck9iamVjdC0+VXNlck5hbWUoCiAgICAgICAgVXNlciA9PiAnc29tZS1sb2dpbicsCiAgICApOwoKb3IKCiAgICBteSAkTmFtZSA9ICRVc2VyT2JqZWN0LT5Vc2VyTmFtZSgKICAgICAgICBVc2VySUQgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBVc2VyTmFtZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVVc2VyID0gJFNlbGYtPkdldFVzZXJEYXRhKCVQYXJhbSk7CgogICAgcmV0dXJuIGlmICElVXNlcjsKICAgIHJldHVybiAkVXNlcntVc2VyRnVsbG5hbWV9Owp9Cgo9aGVhZDIgVXNlckxpc3QoKQoKcmV0dXJuIGEgaGFzaCB3aXRoIHVzZXIgaW5mb3JtYXRpb24uCgogICAgbXkgJUxpc3QgPSAkVXNlck9iamVjdC0+VXNlckxpc3QoCiAgICAgICAgVHlwZSAgICAgICAgICA9PiAnU2hvcnQnLCAjIFNob3J0fExvbmcsIGRlZmF1bHQgU2hvcnQKICAgICAgICBWYWxpZCAgICAgICAgID0+IDEsICAgICAgICMgZGVmYXVsdCAxCiAgICAgICAgTm9PdXRPZk9mZmljZSA9PiAxLCAgICAgICAjIChvcHRpb25hbCkgZGVmYXVsdCAwCiAgICApOwoKUGVyIGRlZmF1bHQgb25seSB2YWxpZCB1c2VycyBhcmUgcmVwb3J0ZWQuIFdoZW4gdGhlIHBhcmFtZXRlciBWYWxpZCBpcyBwYXNzZWQgd2l0aCB0aGUgdmFsdWUgMCwKdGhlbiBpbnZhbGlkIHVzZXJzIGFyZSByZXBvcnRlZCBhcyB3ZWxsLgoKPWN1dAoKc3ViIFVzZXJMaXN0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFR5cGUgPSAkUGFyYW17VHlwZX0gfHwgJ1Nob3J0JzsKCiAgICAjIHNldCB2YWxpZCBvcHRpb24KICAgIG15ICRWYWxpZCA9ICRQYXJhbXtWYWxpZH0gLy8gMTsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGdldCBjb25maWd1cmF0aW9uIGZvciB0aGUgZnVsbCBuYW1lIG9yZGVyCiAgICBteSAkRmlyc3RuYW1lTGFzdE5hbWVPcmRlciA9ICRDb25maWdPYmplY3QtPkdldCgnRmlyc3RuYW1lTGFzdG5hbWVPcmRlcicpIHx8IDA7CiAgICBteSAkTm9PdXRPZk9mZmljZSAgICAgICAgICA9ICRQYXJhbXtOb091dE9mT2ZmaWNlfSAgICAgICAgICAgICAgICAgICAgICAgIHx8IDA7CgogICAgIyBjaGVjayBjYWNoZQogICAgbXkgJENhY2hlS2V5ID0gam9pbiAnOjonLCAnVXNlckxpc3QnLCAkVHlwZSwgJFZhbGlkLCAkRmlyc3RuYW1lTGFzdE5hbWVPcmRlciwgJE5vT3V0T2ZPZmZpY2U7CiAgICBteSAkQ2FjaGUgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+R2V0KAogICAgICAgIFR5cGUgPT4gJFNlbGYtPntDYWNoZVR5cGV9LAogICAgICAgIEtleSAgPT4gJENhY2hlS2V5LAogICAgKTsKICAgIHJldHVybiAleyRDYWNoZX0gaWYgJENhY2hlOwoKICAgIG15ICRTZWxlY3RTdHI7CiAgICBpZiAoICRUeXBlIGVxICdTaG9ydCcgKSB7CiAgICAgICAgJFNlbGVjdFN0ciA9ICIkQ29uZmlnT2JqZWN0LT57RGF0YWJhc2VVc2VyVGFibGVVc2VySUR9LCAiCiAgICAgICAgICAgIC4gIiAkQ29uZmlnT2JqZWN0LT57RGF0YWJhc2VVc2VyVGFibGVVc2VyfSI7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkU2VsZWN0U3RyID0gIiRDb25maWdPYmplY3QtPntEYXRhYmFzZVVzZXJUYWJsZVVzZXJJRH0sICIKICAgICAgICAgICAgLiAiIGxhc3RfbmFtZSwgZmlyc3RfbmFtZSwgIgogICAgICAgICAgICAuICIgJENvbmZpZ09iamVjdC0+e0RhdGFiYXNlVXNlclRhYmxlVXNlcn0iOwogICAgfQoKICAgIG15ICRTUUwgPSAiU0VMRUNUICRTZWxlY3RTdHIgRlJPTSAkQ29uZmlnT2JqZWN0LT57RGF0YWJhc2VVc2VyVGFibGV9IjsKCiAgICAjIHNxbCBxdWVyeQogICAgaWYgKCRWYWxpZCkgewogICAgICAgICRTUUwKICAgICAgICAgICAgLj0gIiBXSEVSRSB2YWxpZF9pZCBJTiAoICR7XChqb2luICcsICcsICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZElEc0dldCgpKX0gKSI7CiAgICB9CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSggU1FMID0+ICRTUUwgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICVVc2Vyc1JhdzsKICAgIG15ICVVc2VyczsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRVc2Vyc1Jhd3sgJFJvd1swXSB9ID0gXEBSb3c7CiAgICB9CgogICAgaWYgKCAkVHlwZSBlcSAnU2hvcnQnICkgewogICAgICAgIGZvciBteSAkQ3VycmVudFVzZXJJRCAoIHNvcnQga2V5cyAlVXNlcnNSYXcgKSB7CiAgICAgICAgICAgICRVc2Vyc3skQ3VycmVudFVzZXJJRH0gPSAkVXNlcnNSYXd7JEN1cnJlbnRVc2VySUR9LT5bMV07CiAgICAgICAgfQogICAgfQogICAgZWxzZSB7CiAgICAgICAgZm9yIG15ICRDdXJyZW50VXNlcklEICggc29ydCBrZXlzICVVc2Vyc1JhdyApIHsKICAgICAgICAgICAgbXkgQERhdGEgICAgICAgICA9IEB7ICRVc2Vyc1Jhd3skQ3VycmVudFVzZXJJRH0gfTsKICAgICAgICAgICAgbXkgJFVzZXJGdWxsbmFtZSA9ICRTZWxmLT5fVXNlckZ1bGxuYW1lKAogICAgICAgICAgICAgICAgVXNlckZpcnN0bmFtZSA9PiAkRGF0YVsyXSwKICAgICAgICAgICAgICAgIFVzZXJMYXN0bmFtZSAgPT4gJERhdGFbMV0sCiAgICAgICAgICAgICAgICBVc2VyTG9naW4gICAgID0+ICREYXRhWzNdLAogICAgICAgICAgICAgICAgTmFtZU9yZGVyICAgICA9PiAkRmlyc3RuYW1lTGFzdE5hbWVPcmRlciwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRVc2Vyc3skQ3VycmVudFVzZXJJRH0gPSAkVXNlckZ1bGxuYW1lOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIHZhY2F0aW9uIG9wdGlvbgogICAgaWYgKCAhJE5vT3V0T2ZPZmZpY2UgKSB7CgogICAgICAgIFVTRVJJRDoKICAgICAgICBmb3IgbXkgJFVzZXJJRCAoIHNvcnQga2V5cyAlVXNlcnMgKSB7CiAgICAgICAgICAgIG5leHQgVVNFUklEIGlmICEkVXNlcklEOwoKICAgICAgICAgICAgbXkgJVVzZXIgPSAkU2VsZi0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCAkVXNlcntPdXRPZk9mZmljZU1lc3NhZ2V9ICkgewogICAgICAgICAgICAgICAgJFVzZXJzeyRVc2VySUR9IC49ICcgJyAuICRVc2Vye091dE9mT2ZmaWNlTWVzc2FnZX07CiAgICAgICAgICAgIH0KIyBSb3RoZXIgT1NTIC8gUHJlT3V0T2ZPZmZpY2VNZXNzYWdlCiAgICAgICAgICAgIGVsc2lmICggJFVzZXJ7UHJlT3V0T2ZPZmZpY2VNZXNzYWdlfSApIHsKICAgICAgICAgICAgICAgICRVc2Vyc3skVXNlcklEfSAuPSAnICcgLiAkVXNlcntQcmVPdXRPZk9mZmljZU1lc3NhZ2V9OwogICAgICAgICAgICB9CiMgRU8gUHJlT3V0T2ZPZmZpY2VNZXNzYWdlCiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IGNhY2hlCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+U2V0KAogICAgICAgIFR5cGUgID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICBUVEwgICA9PiAkU2VsZi0+e0NhY2hlVFRMfSwKICAgICAgICBLZXkgICA9PiAkQ2FjaGVLZXksCiAgICAgICAgVmFsdWUgPT4gXCVVc2VycywKICAgICk7CgogICAgcmV0dXJuICVVc2VyczsKfQoKPWhlYWQyIEdlbmVyYXRlUmFuZG9tUGFzc3dvcmQoKQoKZ2VuZXJhdGUgYSByYW5kb20gcGFzc3dvcmQKCiAgICBteSAkUGFzc3dvcmQgPSAkVXNlck9iamVjdC0+R2VuZXJhdGVSYW5kb21QYXNzd29yZCgpOwoKb3IKCiAgICBteSAkUGFzc3dvcmQgPSAkVXNlck9iamVjdC0+R2VuZXJhdGVSYW5kb21QYXNzd29yZCgKICAgICAgICBTaXplID0+IDE2LAogICAgKTsKCj1jdXQKCnN1YiBHZW5lcmF0ZVJhbmRvbVBhc3N3b3JkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZW5lcmF0ZWQgcGFzc3dvcmRzIGFyZSBlaWdodCBjaGFyYWN0ZXJzIGxvbmcgYnkgZGVmYXVsdAogICAgbXkgJFNpemUgPSAkUGFyYW17U2l6ZX0gfHwgODsKCiAgICBteSAkUGFzc3dvcmQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpLT5HZW5lcmF0ZVJhbmRvbVN0cmluZygKICAgICAgICBMZW5ndGggPT4gJFNpemUsCiAgICApOwoKICAgIHJldHVybiAkUGFzc3dvcmQ7Cn0KCj1oZWFkMiBTZXRQcmVmZXJlbmNlcygpCgpzZXQgdXNlciBwcmVmZXJlbmNlcwoKICAgICRVc2VyT2JqZWN0LT5TZXRQcmVmZXJlbmNlcygKICAgICAgICBLZXkgICAgPT4gJ1VzZXJDb21tZW50JywKICAgICAgICBWYWx1ZSAgPT4gJ3NvbWUgY29tbWVudCcsCiAgICAgICAgVXNlcklEID0+IDEyMywKICAgICk7Cgo9Y3V0CgpzdWIgU2V0UHJlZmVyZW5jZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIChxdyhLZXkgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskX30gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRfISIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIERvbid0IGFsbG93IG92ZXJ3cml0aW5nIG9mIG5hdGl2ZSB1c2VyIGRhdGEuCiAgICBteSAlQmxhY2tsaXN0ZWQgPSAoCiAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgICAgIFVzZXJMb2dpbiAgICAgPT4gMSwKICAgICAgICBVc2VyUHcgICAgICAgID0+IDEsCiAgICAgICAgVXNlckZpcnN0bmFtZSA9PiAxLAogICAgICAgIFVzZXJMYXN0bmFtZSAgPT4gMSwKICAgICAgICBVc2VyRnVsbG5hbWUgID0+IDEsCiAgICAgICAgVXNlclRpdGxlICAgICA9PiAxLAogICAgICAgIENoYW5nZVRpbWUgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lICAgID0+IDEsCiAgICAgICAgVmFsaWRJRCAgICAgICA9PiAxLAogICAgKTsKCiAgICByZXR1cm4gMCBpZiAkQmxhY2tsaXN0ZWR7ICRQYXJhbXtLZXl9IH07CgogICAgIyBnZXQgY3VycmVudCBzZXR0aW5nCiAgICBteSAlVXNlciA9ICRTZWxmLT5HZXRVc2VyRGF0YSgKICAgICAgICBVc2VySUQgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgIE5vT3V0T2ZPZmZpY2UgPT4gMSwKICAgICk7CgogICAgIyBubyB1cGRhdGVkIG5lZWRlZAogICAgcmV0dXJuIDEKICAgICAgICBpZiBkZWZpbmVkICRVc2VyeyAkUGFyYW17S2V5fSB9CiAgICAgICAgJiYgZGVmaW5lZCAkUGFyYW17VmFsdWV9CiAgICAgICAgJiYgJFVzZXJ7ICRQYXJhbXtLZXl9IH0gZXEgJFBhcmFte1ZhbHVlfTsKCiAgICAkU2VsZi0+X1VzZXJDYWNoZUNsZWFyKCBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0gKTsKCiAgICAjIGdldCB1c2VyIHByZWZlcmVuY2VzIGNvbmZpZwogICAgbXkgJEdlbmVyYXRvck1vZHVsZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnVXNlcjo6UHJlZmVyZW5jZXNNb2R1bGUnKQogICAgICAgIHx8ICdLZXJuZWw6OlN5c3RlbTo6VXNlcjo6UHJlZmVyZW5jZXM6OkRCJzsKCiAgICAjIGdldCBnZW5lcmF0b3IgcHJlZmVyZW5jZXMgbW9kdWxlCiAgICBteSAkUHJlZmVyZW5jZXNPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCRHZW5lcmF0b3JNb2R1bGUpOwoKICAgICMgc2V0IHByZWZlcmVuY2VzCiAgICByZXR1cm4gJFByZWZlcmVuY2VzT2JqZWN0LT5TZXRQcmVmZXJlbmNlcyglUGFyYW0pOwp9Cgo9aGVhZDIgT2JqZWN0QXR0cmlidXRlc0dldCgpCgpyZXR1cm5zIHRoZSBhdHRyaWJ1dGVzIGFuIGFnZW50IGNhbiBoYXZlIG9uIHRoZSBzeXN0ZW0uCgogICAgbXkgJUF0dHJpYnV0ZXMgPSAkVXNlck9iamVjdC0+T2JqZWN0QXR0cmlidXRlc0dldCgpOwoKPWN1dAoKc3ViIE9iamVjdEF0dHJpYnV0ZXNHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlVXNlckF0dHJpYnV0ZXMgPSAoCiAgICAgICAgQ2hhbmdlVGltZSAgICAgICAgICAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgICAgICAgICAgICAgPT4gMSwKICAgICAgICBVc2VyRW1haWwgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgVXNlckZpcnN0bmFtZSAgICAgICAgICA9PiAxLAogICAgICAgIFVzZXJGdWxsbmFtZSAgICAgICAgICAgPT4gMSwKICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgVXNlckxhc3RMb2dpbiAgICAgICAgICA9PiAxLAogICAgICAgIFVzZXJMYXN0TG9naW5UaW1lc3RhbXAgPT4gMSwKICAgICAgICBVc2VyTGFzdG5hbWUgICAgICAgICAgID0+IDEsCiAgICAgICAgVXNlckxvZ2luICAgICAgICAgICAgICA9PiAxLAogICAgICAgIFVzZXJMb2dpbkZhaWxlZCAgICAgICAgPT4gMSwKICAgICAgICBVc2VyTW9iaWxlICAgICAgICAgICAgID0+IDEsCiAgICAgICAgVXNlclRpbWVab25lICAgICAgICAgICA9PiAxLAogICAgICAgIFVzZXJUaXRsZSAgICAgICAgICAgICAgPT4gMSwKICAgICAgICBWYWxpZElEICAgICAgICAgICAgICAgID0+IDEsCiAgICApOwoKICAgIHJldHVybiAlVXNlckF0dHJpYnV0ZXM7Cn0KCnN1YiBfVXNlckNhY2hlQ2xlYXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgVXNlcklEISIKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkTG9naW4gPSAkU2VsZi0+VXNlckxvb2t1cCggVXNlcklEID0+ICRQYXJhbXtVc2VySUR9ICk7CgogICAgbXkgQENhY2hlS2V5czsKCiAgICAjIERlbGV0ZSBjYWNoZSBmb3IgYWxsIHBvc3NpYmxlIEZpcnN0bmFtZUxhc3ROYW1lT3JkZXIgc2V0dGluZ3MgYXMgdGhpcyBtaWdodCBiZSBvdmVycmlkZGVuIGJ5IHVzZXJzLgogICAgIyBTZWUgX1VzZXJGdWxsbmFtZSgpIGZvciB0aGUgbnVtYmVyIG9mIHZhcmlhbnRzLgogICAgZm9yIG15ICRGaXJzdG5hbWVMYXN0TmFtZU9yZGVyICggMCAuLiA5ICkgewogICAgICAgIGZvciBteSAkQWN0aXZlTGV2ZWwxICggMCAuLiAxICkgewogICAgICAgICAgICBmb3IgbXkgJEFjdGl2ZUxldmVsMiAoIDAgLi4gMSApIHsKICAgICAgICAgICAgICAgIHB1c2ggQENhY2hlS2V5cywgKAogICAgICAgICAgICAgICAgICAgICJHZXRVc2VyRGF0YTo6VXNlcjo6JHtMb2dpbn06OiR7QWN0aXZlTGV2ZWwxfTo6JHtGaXJzdG5hbWVMYXN0TmFtZU9yZGVyfTo6JHtBY3RpdmVMZXZlbDJ9IiwKICAgICAgICAgICAgICAgICAgICAiR2V0VXNlckRhdGE6OlVzZXJJRDo6JFBhcmFte1VzZXJJRH06OiR7QWN0aXZlTGV2ZWwxfTo6JHtGaXJzdG5hbWVMYXN0TmFtZU9yZGVyfTo6JHtBY3RpdmVMZXZlbDJ9IiwKICAgICAgICAgICAgICAgICAgICAiVXNlckxpc3Q6OlNob3J0Ojoke0FjdGl2ZUxldmVsMX06OiR7Rmlyc3RuYW1lTGFzdE5hbWVPcmRlcn06OiR7QWN0aXZlTGV2ZWwyfSIsCiAgICAgICAgICAgICAgICAgICAgIlVzZXJMaXN0OjpMb25nOjoke0FjdGl2ZUxldmVsMX06OiR7Rmlyc3RuYW1lTGFzdE5hbWVPcmRlcn06OiR7QWN0aXZlTGV2ZWwyfSIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHB1c2ggQENhY2hlS2V5cywgKAogICAgICAgICAgICAnVXNlckxvb2t1cDo6SUQ6OicgLiAkTG9naW4sCiAgICAgICAgICAgICdVc2VyTG9va3VwOjpMb2dpbjo6JyAuICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CgogICAgbXkgJENhY2hlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyk7CgogICAgZm9yIG15ICRDYWNoZUtleSAoQENhY2hlS2V5cykgewogICAgICAgICRDYWNoZU9iamVjdC0+RGVsZXRlKAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57Q2FjaGVUeXBlfSwKICAgICAgICAgICAgS2V5ICA9PiAkQ2FjaGVLZXksCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIEdldFByZWZlcmVuY2VzKCkKCmdldCB1c2VyIHByZWZlcmVuY2VzCgogICAgbXkgJVByZWZlcmVuY2VzID0gJFVzZXJPYmplY3QtPkdldFByZWZlcmVuY2VzKAogICAgICAgIFVzZXJJRCA9PiAxMjMsCiAgICApOwoKPWN1dAoKc3ViIEdldFByZWZlcmVuY2VzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgdXNlciBwcmVmZXJlbmNlcyBjb25maWcKICAgIG15ICRHZW5lcmF0b3JNb2R1bGUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1VzZXI6OlByZWZlcmVuY2VzTW9kdWxlJykKICAgICAgICB8fCAnS2VybmVsOjpTeXN0ZW06OlVzZXI6OlByZWZlcmVuY2VzOjpEQic7CgogICAgIyBnZXQgZ2VuZXJhdG9yIHByZWZlcmVuY2VzIG1vZHVsZQogICAgbXkgJFByZWZlcmVuY2VzT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgkR2VuZXJhdG9yTW9kdWxlKTsKCiAgICByZXR1cm4gJFByZWZlcmVuY2VzT2JqZWN0LT5HZXRQcmVmZXJlbmNlcyglUGFyYW0pOwp9Cgo9aGVhZDIgU2VhcmNoUHJlZmVyZW5jZXMoKQoKc2VhcmNoIGluIHVzZXIgcHJlZmVyZW5jZXMKCiAgICBteSAlVXNlckxpc3QgPSAkVXNlck9iamVjdC0+U2VhcmNoUHJlZmVyZW5jZXMoCiAgICAgICAgS2V5ICAgPT4gJ1VzZXJFbWFpbCcsCiAgICAgICAgVmFsdWUgPT4gJ2VtYWlsQGV4YW1wbGUuY29tJywgICAjIG9wdGlvbmFsLCBsaW1pdCB0byBhIGNlcnRhaW4gdmFsdWUvcGF0dGVybgogICAgKTsKCj1jdXQKCnN1YiBTZWFyY2hQcmVmZXJlbmNlcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHVzZXIgcHJlZmVyZW5jZXMgY29uZmlnCiAgICBteSAkR2VuZXJhdG9yTW9kdWxlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdVc2VyOjpQcmVmZXJlbmNlc01vZHVsZScpCiAgICAgICAgfHwgJ0tlcm5lbDo6U3lzdGVtOjpVc2VyOjpQcmVmZXJlbmNlczo6REInOwoKICAgICMgZ2V0IGdlbmVyYXRvciBwcmVmZXJlbmNlcyBtb2R1bGUKICAgIG15ICRQcmVmZXJlbmNlc09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJEdlbmVyYXRvck1vZHVsZSk7CgogICAgcmV0dXJuICRQcmVmZXJlbmNlc09iamVjdC0+U2VhcmNoUHJlZmVyZW5jZXMoJVBhcmFtKTsKfQoKPWhlYWQyIFRva2VuR2VuZXJhdGUoKQoKZ2VuZXJhdGUgYSByYW5kb20gdG9rZW4KCiAgICBteSAkVG9rZW4gPSAkVXNlck9iamVjdC0+VG9rZW5HZW5lcmF0ZSgKICAgICAgICBVc2VySUQgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBUb2tlbkdlbmVyYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBVc2VySUQhIgogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgbXkgJFRva2VuID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKS0+R2VuZXJhdGVSYW5kb21TdHJpbmcoCiAgICAgICAgTGVuZ3RoID0+IDE1LAogICAgKTsKCiAgICAjIHNhdmUgdG9rZW4gaW4gcHJlZmVyZW5jZXMKICAgICRTZWxmLT5TZXRQcmVmZXJlbmNlcygKICAgICAgICBLZXkgICAgPT4gJ1VzZXJUb2tlbicsCiAgICAgICAgVmFsdWUgID0+ICRUb2tlbiwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIHJldHVybiAkVG9rZW47Cn0KCj1oZWFkMiBUb2tlbkNoZWNrKCkKCmNoZWNrIHBhc3N3b3JkIHRva2VuCgogICAgbXkgJFZhbGlkID0gJFVzZXJPYmplY3QtPlRva2VuQ2hlY2soCiAgICAgICAgVG9rZW4gID0+ICRUb2tlbiwKICAgICAgICBVc2VySUQgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBUb2tlbkNoZWNrIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtUb2tlbn0gfHwgISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBUb2tlbiBhbmQgVXNlcklEIScKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBwcmVmZXJlbmNlcyB0b2tlbgogICAgbXkgJVByZWZlcmVuY2VzID0gJFNlbGYtPkdldFByZWZlcmVuY2VzKAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayByZXF1ZXN0ZWQgdnMuIHN0b3JlZCB0b2tlbgogICAgaWYgKCAkUHJlZmVyZW5jZXN7VXNlclRva2VufSAmJiAkUHJlZmVyZW5jZXN7VXNlclRva2VufSBlcSAkUGFyYW17VG9rZW59ICkgewoKICAgICAgICAjIHJlc2V0IHBhc3N3b3JkIHRva2VuCiAgICAgICAgJFNlbGYtPlNldFByZWZlcmVuY2VzKAogICAgICAgICAgICBLZXkgICAgPT4gJ1VzZXJUb2tlbicsCiAgICAgICAgICAgIFZhbHVlICA9PiAnJywKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgcmV0dXJuIHRydWUgaWYgdG9rZW4gaXMgdmFsaWQKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAjIHJldHVybiBmYWxzZSBpZiB0b2tlbiBpcyBpbnZhbGlkCiAgICByZXR1cm47Cn0KCj1iZWdpbiBJbnRlcm5hbDoKCj1oZWFkMiBfVXNlckZ1bGxuYW1lKCkKCkJ1aWxkcyB0aGUgdXNlciBmdWxsbmFtZSBiYXNlZCBvbiBmaXJzdG5hbWUsIGxhc3RuYW1lIGFuZCBsb2dpbi4gVGhlIG9yZGVyCmNhbiBiZSBjb25maWd1cmVkLgoKICAgIG15ICRGdWxsbmFtZSA9ICRPYmplY3QtPl9Vc2VyRnVsbG5hbWUoCiAgICAgICAgVXNlckZpcnN0bmFtZSA9PiAnVGVzdCcsCiAgICAgICAgVXNlckxhc3RuYW1lICA9PiAnUGVyc29uJywKICAgICAgICBVc2VyTG9naW4gICAgID0+ICd0cCcsCiAgICAgICAgTmFtZU9yZGVyICAgICA9PiAwLCAgICAgICAgICMgb3B0aW9uYWwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOQogICAgKTsKCj1jdXQKCnN1YiBfVXNlckZ1bGxuYW1lIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICROZWVkZWQgKHF3KFVzZXJGaXJzdG5hbWUgVXNlckxhc3RuYW1lIFVzZXJMb2dpbikpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJEZpcnN0bmFtZUxhc3ROYW1lT3JkZXIgPSAkUGFyYW17TmFtZU9yZGVyfSB8fCAwOwoKICAgIG15ICRVc2VyRnVsbG5hbWU7CiAgICBpZiAoICRGaXJzdG5hbWVMYXN0TmFtZU9yZGVyIGVxICcwJyApIHsKICAgICAgICAkVXNlckZ1bGxuYW1lID0gJFBhcmFte1VzZXJGaXJzdG5hbWV9IC4gJyAnCiAgICAgICAgICAgIC4gJFBhcmFte1VzZXJMYXN0bmFtZX07CiAgICB9CiAgICBlbHNpZiAoICRGaXJzdG5hbWVMYXN0TmFtZU9yZGVyIGVxICcxJyApIHsKICAgICAgICAkVXNlckZ1bGxuYW1lID0gJFBhcmFte1VzZXJMYXN0bmFtZX0gLiAnLCAnCiAgICAgICAgICAgIC4gJFBhcmFte1VzZXJGaXJzdG5hbWV9OwogICAgfQogICAgZWxzaWYgKCAkRmlyc3RuYW1lTGFzdE5hbWVPcmRlciBlcSAnMicgKSB7CiAgICAgICAgJFVzZXJGdWxsbmFtZSA9ICRQYXJhbXtVc2VyRmlyc3RuYW1lfSAuICcgJwogICAgICAgICAgICAuICRQYXJhbXtVc2VyTGFzdG5hbWV9IC4gJyAoJwogICAgICAgICAgICAuICRQYXJhbXtVc2VyTG9naW59IC4gJyknOwogICAgfQogICAgZWxzaWYgKCAkRmlyc3RuYW1lTGFzdE5hbWVPcmRlciBlcSAnMycgKSB7CiAgICAgICAgJFVzZXJGdWxsbmFtZSA9ICRQYXJhbXtVc2VyTGFzdG5hbWV9IC4gJywgJwogICAgICAgICAgICAuICRQYXJhbXtVc2VyRmlyc3RuYW1lfSAuICcgKCcKICAgICAgICAgICAgLiAkUGFyYW17VXNlckxvZ2lufSAuICcpJzsKICAgIH0KICAgIGVsc2lmICggJEZpcnN0bmFtZUxhc3ROYW1lT3JkZXIgZXEgJzQnICkgewogICAgICAgICRVc2VyRnVsbG5hbWUgPSAnKCcgLiAkUGFyYW17VXNlckxvZ2lufQogICAgICAgICAgICAuICcpICcgLiAkUGFyYW17VXNlckZpcnN0bmFtZX0KICAgICAgICAgICAgLiAnICcgLiAkUGFyYW17VXNlckxhc3RuYW1lfTsKICAgIH0KICAgIGVsc2lmICggJEZpcnN0bmFtZUxhc3ROYW1lT3JkZXIgZXEgJzUnICkgewogICAgICAgICRVc2VyRnVsbG5hbWUgPSAnKCcgLiAkUGFyYW17VXNlckxvZ2lufQogICAgICAgICAgICAuICcpICcgLiAkUGFyYW17VXNlckxhc3RuYW1lfQogICAgICAgICAgICAuICcsICcgLiAkUGFyYW17VXNlckZpcnN0bmFtZX07CiAgICB9CiAgICBlbHNpZiAoICRGaXJzdG5hbWVMYXN0TmFtZU9yZGVyIGVxICc2JyApIHsKICAgICAgICAkVXNlckZ1bGxuYW1lID0gJFBhcmFte1VzZXJMYXN0bmFtZX0gLiAnICcKICAgICAgICAgICAgLiAkUGFyYW17VXNlckZpcnN0bmFtZX07CiAgICB9CiAgICBlbHNpZiAoICRGaXJzdG5hbWVMYXN0TmFtZU9yZGVyIGVxICc3JyApIHsKICAgICAgICAkVXNlckZ1bGxuYW1lID0gJFBhcmFte1VzZXJMYXN0bmFtZX0gLiAnICcKICAgICAgICAgICAgLiAkUGFyYW17VXNlckZpcnN0bmFtZX0gLiAnICgnCiAgICAgICAgICAgIC4gJFBhcmFte1VzZXJMb2dpbn0gLiAnKSc7CiAgICB9CiAgICBlbHNpZiAoICRGaXJzdG5hbWVMYXN0TmFtZU9yZGVyIGVxICc4JyApIHsKICAgICAgICAkVXNlckZ1bGxuYW1lID0gJygnIC4gJFBhcmFte1VzZXJMb2dpbn0KICAgICAgICAgICAgLiAnKSAnIC4gJFBhcmFte1VzZXJMYXN0bmFtZX0KICAgICAgICAgICAgLiAnICcgLiAkUGFyYW17VXNlckZpcnN0bmFtZX07CiAgICB9CiAgICBlbHNpZiAoICRGaXJzdG5hbWVMYXN0TmFtZU9yZGVyIGVxICc5JyApIHsKICAgICAgICAkVXNlckZ1bGxuYW1lID0gJFBhcmFte1VzZXJMYXN0bmFtZX0gLiAkUGFyYW17VXNlckZpcnN0bmFtZX07CiAgICB9CgogICAgIyBOb3RlOiB3aGVuIGFkZGluZyBuYW1lIG9yZGVyIHZhcmlhbnRzLCB0aGFuIF9Vc2VyQ2FjaGVDbGVhcigpIG11c3QgYmUgYWRhcHRlZCB0b28KCiAgICByZXR1cm4gJFVzZXJGdWxsbmFtZTsKfQoKPWVuZCBJbnRlcm5hbDoKCj1oZWFkMiBVc2VyTG9naW5FeGlzdHNDaGVjaygpCgpyZXR1cm4gMSBpZiBhbm90aGVyIHVzZXIgd2l0aCB0aGlzIGxvZ2luICh1c2VybmFtZSkgYWxyZWFkeSBleGlzdHMKCiAgICAkRXhpc3QgPSAkVXNlck9iamVjdC0+VXNlckxvZ2luRXhpc3RzQ2hlY2soCiAgICAgICAgVXNlckxvZ2luID0+ICdTb21lOjpVc2VyTG9naW4nLAogICAgICAgIFVzZXJJRCA9PiAxLCAjIG9wdGlvbmFsCiAgICApOwoKPWN1dAoKc3ViIFVzZXJMb2dpbkV4aXN0c0NoZWNrIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4KICAgICAgICAgICAgIlNFTEVDVCAkU2VsZi0+e1VzZXJUYWJsZVVzZXJJRH0gRlJPTSAkU2VsZi0+e1VzZXJUYWJsZX0gV0hFUkUgJFNlbGYtPntVc2VyVGFibGVVc2VyfSA9ID8iLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte1VzZXJMb2dpbn0gXSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAkRmxhZzsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIGlmICggISRQYXJhbXtVc2VySUR9IHx8ICRQYXJhbXtVc2VySUR9IG5lICRSb3dbMF0gKSB7CiAgICAgICAgICAgICRGbGFnID0gMTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDEgaWYgJEZsYWc7CiAgICByZXR1cm4gMDsKfQoKMTsK</File>
        <File Location="Kernel/Config/Files/XML/PreOutOfOfficeMessage.xml" Permission="660" Encode="Base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPG90b2JvX2NvbmZpZyB2ZXJzaW9uPSIyLjAiIGluaXQ9IkFwcGxpY2F0aW9uIj4KICAgIDxTZXR0aW5nIE5hbWU9IlByZU91dE9mT2ZmaWNlTWVzc2FnZVRlbXBsYXRlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgYW4gb3V0IG9mIG9mZmljZSBtZXNzYWdlIHRlbXBsYXRlIHRvIGRpc3BsYXkgc29tZSBkYXlzIGluIGFkdmFuY2UgdG8gZ2V0dGluZyBvdXQgb2Ygb2ZmaWNlLiBUd28gc3RyaW5nIHBhcmFtZXRlcnMgKCVzKSBhdmFpbGFibGU6IHN0YXJ0IGRhdGUgYW5kIGVuZCBkYXRlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkJhc2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVHJhbnNsYXRhYmxlPSIxIj4qKiogb3V0IG9mIG9mZmljZSBmcm9tICVzIHRpbGwgJXMgKioqPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJQcmVPdXRPZk9mZmljZURheXNJbkFkdmFuY2UiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TnVtYmVyIG9mIGRheXMgaW4gYWR2YW5jZSB0byBkaXNwbGF5IHRoZSBwcmV2aW91cyBvdXQgb2Ygb2ZmaWNlIG1lc3NhZ2UsIHZhbHVlIDAgZGlzYWJsZXMgdGhlIG1lc3NhZ2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QmFzZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeWzAtOV0rJCI+NzwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgo8L290b2JvX2NvbmZpZz4K</File>
        <File Location="doc/en/PreOutOfOfficeMessage.pdf" Permission="644" Encode="Base64">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</File>
    </Filelist>
</otrs_package>