<?xml version="1.0" encoding="utf-8" ?>
<otrs_package version="1.1">
    <Name>OAuth2</Name>
    <Version>11.0.3</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-11-04 09:23:50" Version="11.0.3">Backport changes from rel-11_1.</ChangeLog>
    <ChangeLog Date="2026-10-29 14:56:44" Version="11.0.2">Logging improvements; bugfixes; added translations.</ChangeLog>
    <ChangeLog Date="2026-01-28 10:52:14" Version="11.0.1">Initial Release.</ChangeLog>
    <Description Lang="en">OAuth2/OpenIDConnect Token Management.</Description>
    <Framework>11.0.x</Framework>
    <BuildCommitID>33025f2bb9b0e489d38bd01d75b217917332a22c</BuildCommitID>
    <BuildDate>2026-11-04 09:23:56</BuildDate>
    <BuildHost>opms.rother-oss.com</BuildHost>
    <Filelist>
        <File Location="var/httpd/htdocs/js/Core.Agent.Admin.GenericInterfaceTransportHTTPRESTWebserviceTicketInvoker.js" Permission="660" Encode="Base64">Ly8gLS0KLy8gT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgovLyAtLQovLyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAyMCBPVFJTIEFHLCBodHRwczovL290cnMuY29tLwovLyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNiBSb3RoZXIgT1NTIEdtYkgsIGh0dHBzOi8vb3RvYm8uaW8vCi8vIC0tCi8vICRvcmlnaW46IG90b2JvIC0gNmVmZGM3YmYyYTMzMjUyNzdjZDc5YTYwZjBmMjQwN2Y4YWQ1OWU4NyAtIHZhci9odHRwZC9odGRvY3MvanMvQ29yZS5BZ2VudC5BZG1pbi5HZW5lcmljSW50ZXJmYWNlVHJhbnNwb3J0SFRUUFJFU1RXZWJzZXJ2aWNlVGlja2V0SW52b2tlci5qcwovLyAtLQovLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgovLyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQovLyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgovLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKLy8gQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKLy8gRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIENvcmUgPSBDb3JlIHx8IHt9OwpDb3JlLkFnZW50ID0gQ29yZS5BZ2VudCB8fCB7fTsKQ29yZS5BZ2VudC5BZG1pbiA9IENvcmUuQWdlbnQuQWRtaW4gfHwge307CgovKioKICogQG5hbWVzcGFjZSBDb3JlLkFnZW50LkFkbWluLkdlbmVyaWNJbnRlcmZhY2VUcmFuc3BvcnRIVFRQUkVTVFdlYnNlcnZpY2VUaWNrZXRJbnZva2VyCiAqIEBtZW1iZXJvZiBDb3JlLkFnZW50LkFkbWluCiAqIEBhdXRob3IgUm90aGVyIE9TUyBHbWJICiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMgZm9yIHRoZSBHZW5lcmljSW50ZXJmYWNlIFRyYW5zcG9ydCBIVFRQIFJFU1QgbW9kdWxlLgogKi8KQ29yZS5BZ2VudC5BZG1pbi5HZW5lcmljSW50ZXJmYWNlVHJhbnNwb3J0SFRUUFJFU1RXZWJzZXJ2aWNlVGlja2V0SW52b2tlciA9IChmdW5jdGlvbiAoVGFyZ2V0TlMpIHsKCiAgICAvKioKICAgICAqIEBuYW1lIFJlbW92ZVZhbHVlCiAgICAgKiBAbWVtYmVyb2YgQ29yZS5BZ2VudC5BZG1pbi5HZW5lcmljSW50ZXJmYWNlVHJhbnNwb3J0SFRUUFJFU1RXZWJzZXJ2aWNlVGlja2V0SW52b2tlcgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcmV0dXJucyB7Qm9vbGVhbn0gUmV0dXJucyBmYWxzZS4KICAgICAqIEBwYXJhbSB7U3RyaW5nfSBJRFNlbGVjdG9yIC0gSUQgb2YgdGhlIHByZXNzZWQgcmVtb3ZlIHZhbHVlIGJ1dHRvbi4KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIHJlbW92ZXMgYSB2YWx1ZSBmcm9tIGhlYWRlciBsaXN0CiAgICAgKi8KICAgIFRhcmdldE5TLlJlbW92ZVZhbHVlID0gZnVuY3Rpb24gKElEU2VsZWN0b3IpewoKICAgICAgICAvLyByZW1vdmUgZW50cnkKICAgICAgICAkKCcjJyArIElEU2VsZWN0b3IpLnBhcmVudCgpLnJlbW92ZSgpOwoKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9OwoKICAgIC8qKgogICAgICogQG5hbWUgUmVtb3ZlQ29udGFpbmVyCiAgICAgKiBAbWVtYmVyb2YgQ29yZS5BZ2VudC5BZG1pbi5HZW5lcmljSW50ZXJmYWNlVHJhbnNwb3J0SFRUUFJFU1RXZWJzZXJ2aWNlVGlja2V0SW52b2tlcgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcmV0dXJucyB7Qm9vbGVhbn0gUmV0dXJucyBmYWxzZS4KICAgICAqIEBwYXJhbSB7U3RyaW5nfSBJRFNlbGVjdG9yIC0gSUQgb2YgdGhlIHByZXNzZWQgcmVtb3ZlIHZhbHVlIGJ1dHRvbi4KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIHJlbW92ZXMgYSBoZWFkZXIgY29udGFpbmVyCiAgICAgKi8KICAgIFRhcmdldE5TLlJlbW92ZUNvbnRhaW5lciA9IGZ1bmN0aW9uIChJRFNlbGVjdG9yKXsKCiAgICAgICAgLy8gY2xlYW51cCBvcGVyYXRpb24gc2VsZWN0aW9uCiAgICAgICAgdmFyIE9wZXJhdGlvbiA9ICQoJyMnICsgSURTZWxlY3RvcikucGFyZW50KCkucGFyZW50KCkuZmluZCgnW25hbWU9T3BlcmF0aW9uXScpLnZhbCgpOwogICAgICAgICQoJyNPdXRib3VuZEhlYWRlcnNPcGVyYXRpb25TZWxlY3Rpb24gb3B0aW9uW3ZhbHVlPSInICsgT3BlcmF0aW9uICsnIl0nKS5hdHRyKCdzZWxlY3RlZCcsIGZhbHNlKS5hdHRyKCdkaXNhYmxlZCcsIGZhbHNlKTsKICAgICAgICAkKCcjT3V0Ym91bmRIZWFkZXJzT3BlcmF0aW9uU2VsZWN0aW9uJykudHJpZ2dlcigncmVkcmF3LklucHV0RmllbGQnKTsKCgogICAgICAgIC8vIHJlbW92ZSBlbnRyeQogICAgICAgICQoJyNPcGVyYXRpb25PdXRib3VuZEhlYWRlcnMnICsgT3BlcmF0aW9uKS5yZXBsYWNlV2l0aCgnPGRpdiBjbGFzcz0iSGVhZGVyQ29udGFpbmVyIiBpZD0iT3BlcmF0aW9uT3V0Ym91bmRIZWFkZXJzJyArIE9wZXJhdGlvbiArICciPjwvZGl2PicpOwoKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9OwoKICAgIC8qKgogICAgICogQG5hbWUgQWRkQWRkaXRpb25hbFZhbHVlCiAgICAgKiBAbWVtYmVyb2YgQ29yZS5BZ2VudC5BZG1pbi5HZW5lcmljSW50ZXJmYWNlVHJhbnNwb3J0SFRUUFJFU1RXZWJzZXJ2aWNlVGlja2V0SW52b2tlcgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcmV0dXJucyB7Qm9vbGVhbn0gUmV0dXJucyBmYWxzZQogICAgICogQHBhcmFtIHtPYmplY3R9IFZhbHVlSW5zZXJ0IC0gSFRNTCBjb250YWluZXIgb2YgdGhlIHZhbHVlIG1hcHBpbmcgcm93LgogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIFRoaXMgZnVuY3Rpb24gYWRkcyBhIG5ldyB2YWx1ZSB0byB0aGUgcG9zc2libGUgdmFsdWVzIGxpc3QKICAgICAqLwogICAgVGFyZ2V0TlMuQWRkQWRkaXRpb25hbFZhbHVlID0gZnVuY3Rpb24gKFZhbHVlSW5zZXJ0KSB7CgogICAgICAgIC8vIGNsb25lIGtleSBkaWFsb2cKICAgICAgICB2YXIgJENsb25lID0gJCgnLlZhbHVlVGVtcGxhdGUnKS5jbG9uZSgpLAogICAgICAgICAgICBWYWx1ZUNvdW50ZXIgPSAkKCcjVmFsdWVDb3VudGVyJykudmFsKCk7CgogICAgICAgIC8vIGluY3JlbWVudCBrZXkgY291bnRlcgogICAgICAgIFZhbHVlQ291bnRlcisrOwoKICAgICAgICAvLyByZW1vdmUgdW5uZWNlc3NhcnkgY2xhc3NlcwogICAgICAgICRDbG9uZS5yZW1vdmVDbGFzcygnSGlkZGVuIFZhbHVlVGVtcGxhdGUnKTsKCiAgICAgICAgLy8gYWRkIG5lZWRlZCBjbGFzcwogICAgICAgICRDbG9uZS5hZGRDbGFzcygnVmFsdWVSb3cnKTsKCiAgICAgICAgLy8gY29weSB2YWx1ZXMgYW5kIGNoYW5nZSBpZHMgYW5kIG5hbWVzCiAgICAgICAgJENsb25lLmZpbmQoJzppbnB1dCwgYS5SZW1vdmVCdXR0b24nKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIHZhciBJRCA9ICQodGhpcykuYXR0cignaWQnKTsKICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCdpZCcsIElEICsgJ18nICsgVmFsdWVDb3VudGVyKTsKICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCduYW1lJywgSUQgKyAnXycgKyBWYWx1ZUNvdW50ZXIpOwoKICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnVmFsaWRhdGVfUmVxdWlyZWQnKTsKCiAgICAgICAgICAgIC8vIHNldCBlcnJvciBjb250cm9scwogICAgICAgICAgICAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJyMnICsgSUQgKyAnRXJyb3InKS5hdHRyKCdpZCcsIElEICsgJ18nICsgVmFsdWVDb3VudGVyICsgJ0Vycm9yJyk7CiAgICAgICAgICAgICQodGhpcykucGFyZW50KCkuZmluZCgnIycgKyBJRCArICdFcnJvcicpLmF0dHIoJ25hbWUnLCBJRCArICdfJyArIFZhbHVlQ291bnRlciArICdFcnJvcicpOwoKICAgICAgICAgICAgJCh0aGlzKS5wYXJlbnQoKS5maW5kKCcjJyArIElEICsgJ1NlcnZlckVycm9yJykuYXR0cignaWQnLCBJRCArICdfJyArIFZhbHVlQ291bnRlciArICdTZXJ2ZXJFcnJvcicpOwogICAgICAgICAgICAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJyMnICsgSUQgKyAnU2VydmVyRXJyb3InKS5hdHRyKCduYW1lJywgSUQgKyAnXycgKyBWYWx1ZUNvdW50ZXIgKyAnU2VydmVyRXJyb3InKTsKCiAgICAgICAgICAgIC8vIGFkZCBldmVudCBoYW5kbGVyIHRvIHJlbW92ZSBidXR0b24KICAgICAgICAgICAgaWYoJCh0aGlzKS5oYXNDbGFzcygnUmVtb3ZlQnV0dG9uJykpIHsKICAgICAgICAgICAgICAgIC8vIGJpbmQgY2xpY2sgZnVuY3Rpb24gdG8gcmVtb3ZlIGJ1dHRvbgogICAgICAgICAgICAgICAgJCh0aGlzKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgVGFyZ2V0TlMuUmVtb3ZlVmFsdWUoJCh0aGlzKS5hdHRyKCdpZCcpKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICAkQ2xvbmUuZmluZCgnbGFiZWwnKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIHZhciBGT1IgPSAkKHRoaXMpLmF0dHIoJ2ZvcicpOwogICAgICAgICAgICAkKHRoaXMpLmF0dHIoJ2ZvcicsIEZPUiArICdfJyArIFZhbHVlQ291bnRlcik7CiAgICAgICAgfSk7CiAgICAgICAgLy8gcHJlcGVuZCB0byBjb250YWluZXIKICAgICAgICBWYWx1ZUluc2VydC5wcmVwZW5kKCRDbG9uZSk7CgogICAgICAgIC8vIHNldCBuZXcgdmFsdWUgZm9yIEtleU5hbWUKICAgICAgICAkKCcjVmFsdWVDb3VudGVyJykudmFsKFZhbHVlQ291bnRlcik7CgogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH07CgogICAgLyoqCiAgICAgKiBAbmFtZSBBZGRWYWx1ZQogICAgICogQG1lbWJlcm9mIENvcmUuQWdlbnQuQWRtaW4uR2VuZXJpY0ludGVyZmFjZVRyYW5zcG9ydEhUVFBSRVNUV2Vic2VydmljZVRpY2tldEludm9rZXIKICAgICAqIEBmdW5jdGlvbgogICAgICogQHJldHVybnMge0Jvb2xlYW59IFJldHVybnMgZmFsc2UKICAgICAqIEBwYXJhbSB7T2JqZWN0fSBWYWx1ZUluc2VydCAtIEhUTUwgY29udGFpbmVyIG9mIHRoZSB2YWx1ZSBtYXBwaW5nIHJvdy4KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGFkZHMgYSBuZXcgdmFsdWUgdG8gdGhlIGhlYWRlciBsaXN0CiAgICAgKi8KICAgIFRhcmdldE5TLkFkZFZhbHVlID0gZnVuY3Rpb24gKFZhbHVlSW5zZXJ0KSB7CgogICAgICAgIC8vIGNsb25lIGtleSBkaWFsb2cKICAgICAgICB2YXIgJENsb25lID0gVmFsdWVJbnNlcnQucGFyZW50KCkuZmluZCgnLlZhbHVlVGVtcGxhdGUnKS5jbG9uZSgpLAogICAgICAgICAgICBWYWx1ZUNvdW50ZXIgPSBWYWx1ZUluc2VydC5wYXJlbnQoKS5maW5kKCcuVmFsdWVDb3VudGVyJykudmFsKCk7CgogICAgICAgIC8vIGluY3JlbWVudCBrZXkgY291bnRlcgogICAgICAgIFZhbHVlQ291bnRlcisrOwoKICAgICAgICAvLyByZW1vdmUgdW5uZWNlc3NhcnkgY2xhc3NlcwogICAgICAgICRDbG9uZS5yZW1vdmVDbGFzcygnSGlkZGVuIFZhbHVlVGVtcGxhdGUnKTsKCiAgICAgICAgLy8gY29weSB2YWx1ZXMgYW5kIGNoYW5nZSBpZHMgYW5kIG5hbWVzCiAgICAgICAgJENsb25lLmZpbmQoJzppbnB1dCwgYS5SZW1vdmVCdXR0b24nKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIHZhciBJRCA9ICQodGhpcykuYXR0cignaWQnKTsKICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCdpZCcsIElEICsgJ18nICsgVmFsdWVDb3VudGVyKTsKICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCduYW1lJywgSUQgKyAnXycgKyBWYWx1ZUNvdW50ZXIpOwoKICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnVmFsaWRhdGVfUmVxdWlyZWQnKTsKCiAgICAgICAgICAgIC8vIHNldCBlcnJvciBjb250cm9scwogICAgICAgICAgICAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJyMnICsgSUQgKyAnRXJyb3InKS5hdHRyKCdpZCcsIElEICsgJ18nICsgVmFsdWVDb3VudGVyICsgJ0Vycm9yJyk7CiAgICAgICAgICAgICQodGhpcykucGFyZW50KCkuZmluZCgnIycgKyBJRCArICdFcnJvcicpLmF0dHIoJ25hbWUnLCBJRCArICdfJyArIFZhbHVlQ291bnRlciArICdFcnJvcicpOwoKICAgICAgICAgICAgJCh0aGlzKS5wYXJlbnQoKS5maW5kKCcjJyArIElEICsgJ1NlcnZlckVycm9yJykuYXR0cignaWQnLCBJRCArICdfJyArIFZhbHVlQ291bnRlciArICdTZXJ2ZXJFcnJvcicpOwogICAgICAgICAgICAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJyMnICsgSUQgKyAnU2VydmVyRXJyb3InKS5hdHRyKCduYW1lJywgSUQgKyAnXycgKyBWYWx1ZUNvdW50ZXIgKyAnU2VydmVyRXJyb3InKTsKCiAgICAgICAgICAgIC8vIGFkZCBldmVudCBoYW5kbGVyIHRvIHJlbW92ZSBidXR0b24KICAgICAgICAgICAgaWYoJCh0aGlzKS5oYXNDbGFzcygnUmVtb3ZlQnV0dG9uJykpIHsKICAgICAgICAgICAgICAgIC8vIGJpbmQgY2xpY2sgZnVuY3Rpb24gdG8gcmVtb3ZlIGJ1dHRvbgogICAgICAgICAgICAgICAgJCh0aGlzKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgVGFyZ2V0TlMuUmVtb3ZlVmFsdWUoJCh0aGlzKS5hdHRyKCdpZCcpKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICAkQ2xvbmUuZmluZCgnbGFiZWwnKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIHZhciBGT1IgPSAkKHRoaXMpLmF0dHIoJ2ZvcicpOwogICAgICAgICAgICAkKHRoaXMpLmF0dHIoJ2ZvcicsIEZPUiArICdfJyArIFZhbHVlQ291bnRlcik7CiAgICAgICAgfSk7CgogICAgICAgIC8vIGFwcGVuZCB0byBjb250YWluZXIKICAgICAgICBWYWx1ZUluc2VydC5maW5kKCcuVmFsdWVSb3dzJykuYXBwZW5kKCRDbG9uZSk7CgogICAgICAgIC8vIHNldCBuZXcgdmFsdWUgZm9yIEtleU5hbWUKICAgICAgICBWYWx1ZUluc2VydC5wYXJlbnQoKS5maW5kKCcuVmFsdWVDb3VudGVyJykudmFsKFZhbHVlQ291bnRlcik7CgogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH07CgogICAgLyoqCiAgICAgKiBAbmFtZSBBZGRDb250YWluZXIKICAgICAqIEBtZW1iZXJvZiBDb3JlLkFnZW50LkFkbWluLkdlbmVyaWNJbnRlcmZhY2VUcmFuc3BvcnRIVFRQUkVTVFdlYnNlcnZpY2VUaWNrZXRJbnZva2VyCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEByZXR1cm5zIHtCb29sZWFufSBSZXR1cm5zIGZhbHNlCiAgICAgKiBAcGFyYW0ge1N0cmluZ30gT3BlcmF0aW9uIC0gY29udGFpbnMgc2VsZWN0ZWQgb3BlcmF0aW9uIGlkZW50aWZpZXIKICAgICAqIEBwYXJhbSB7U3RyaW5nfSBPcGVyYXRpb25OYW1lIC0gY29udGFpbnMgc2VsZWN0ZWQgb3BlcmF0aW9uIG5hbWUKICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGFkZHMgYSBuZXcgY29udGFpbmVyIGZvciBzcGVjaWZpYyBoZWFkZXJzCiAgICAgKi8KICAgIFRhcmdldE5TLkFkZENvbnRhaW5lciA9IGZ1bmN0aW9uIChPcGVyYXRpb24sIE9wZXJhdGlvbk5hbWUpIHsKCiAgICAgICAgdmFyICRDbG9uZSwgQWN0aXZlSUQsICRJbnB1dExpc3RDb250YWluZXJPYmo7CgogICAgICAgIGlmICghT3BlcmF0aW9uIHx8ICQoJyNPcGVyYXRpb25PdXRib3VuZEhlYWRlcnMnICsgT3BlcmF0aW9uKS5oYXNDbGFzcygnSGVhZGVyQ29udGFpbmVyQWN0aXZlJykpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgLy8gY2xvbmUgYm94CiAgICAgICAgJENsb25lID0gJCgnLkNvbnRhaW5lclZhbHVlVGVtcGxhdGUnKS5jbG9uZSgpOwoKICAgICAgICAvLyByZW1vdmUgdW5uZWNlc3NhcnkgY2xhc3NlcwogICAgICAgICRDbG9uZS5yZW1vdmVDbGFzcygnSGlkZGVuIENvbnRhaW5lclZhbHVlVGVtcGxhdGUnKS5hZGRDbGFzcygnSGVhZGVyQ29udGFpbmVyQWN0aXZlJyk7CgogICAgICAgIC8vIGNoYW5nZSBpZHMgYW5kIG5hbWVzLCBzZXQgdmFsdWVzCiAgICAgICAgJENsb25lLmF0dHIoJ2lkJywgJ09wZXJhdGlvbk91dGJvdW5kSGVhZGVycycgKyBPcGVyYXRpb24pOwoKICAgICAgICBBY3RpdmVJRCA9ICRDbG9uZS5maW5kKCcuT3BlcmF0aW9uT3V0Ym91bmRIZWFkZXJzQWN0aXZlVGVtcGxhdGUnKTsKICAgICAgICBBY3RpdmVJRC5hdHRyKCdpZCcsICdPcGVyYXRpb25PdXRib3VuZEhlYWRlcnNBY3RpdmUnICsgT3BlcmF0aW9uKTsKICAgICAgICBBY3RpdmVJRC5hdHRyKCduYW1lJywgJ09wZXJhdGlvbk91dGJvdW5kSGVhZGVyc0FjdGl2ZScpOwogICAgICAgIEFjdGl2ZUlELnZhbChPcGVyYXRpb24pOwogICAgICAgIEFjdGl2ZUlELnJlbW92ZUNsYXNzKCdPcGVyYXRpb25PdXRib3VuZEhlYWRlcnNBY3RpdmVUZW1wbGF0ZScpOwoKICAgICAgICAkQ2xvbmUuZmluZCgnLlZhbHVlQ291bnRlcicpLnZhbCgnMCcpOwogICAgICAgICRDbG9uZS5maW5kKCcuT3BlcmF0aW9uJykuaHRtbChPcGVyYXRpb25OYW1lKTsKICAgICAgICAkQ2xvbmUuZmluZCgnW25hbWU9T3BlcmF0aW9uXScpLmF0dHIoJ2lkJywgJ09wZXJhdGlvbicgKyBPcGVyYXRpb24pLnZhbChPcGVyYXRpb24pOwoKICAgICAgICAkQ2xvbmUuZmluZCgnZGl2ID4gOmlucHV0LCBkaXYgPiBhLlJlbW92ZUJ1dHRvbiwgZGl2ID4gYS5BZGRWYWx1ZScpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgdmFyIElEID0gJCh0aGlzKS5hdHRyKCdpZCcpOwogICAgICAgICAgICAkKHRoaXMpLmF0dHIoJ2lkJywgJ091dGJvdW5kSGVhZGVycycgKyBPcGVyYXRpb24gKyBJRCk7CiAgICAgICAgICAgICQodGhpcykuYXR0cignbmFtZScsICdPdXRib3VuZEhlYWRlcnMnICsgT3BlcmF0aW9uICsgSUQpOwogICAgICAgIH0pOwoKICAgICAgICAvLyBiaW5kIGNsaWNrIGZ1bmN0aW9uIHRvIGFkZCBidXR0b24KICAgICAgICAkQ2xvbmUuZmluZCgnI091dGJvdW5kSGVhZGVycycgKyBPcGVyYXRpb24gKyAnQWRkVmFsdWUnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIFRhcmdldE5TLkFkZFZhbHVlKAogICAgICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCcuVmFsdWVJbnNlcnQnKQogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CgogICAgICAgIC8vIGJpbmQgY2xpY2sgZnVuY3Rpb24gdG8gcmVtb3ZlIGFsbCBidXR0b24KICAgICAgICAkQ2xvbmUuZmluZCgnI091dGJvdW5kSGVhZGVycycgKyBPcGVyYXRpb24gKyAnVmFsdWVSZW1vdmVBbGwnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIFRhcmdldE5TLlJlbW92ZUNvbnRhaW5lcigkKHRoaXMpLmF0dHIoJ2lkJykpOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CgogICAgICAgIC8vIGFwcGVuZCB0byBjb250YWluZXIKICAgICAgICAkKCcjT3BlcmF0aW9uT3V0Ym91bmRIZWFkZXJzJyArIE9wZXJhdGlvbikucmVwbGFjZVdpdGgoJENsb25lKTsKCiAgICAgICAgLy8gY2xlYW51cCBvcGVyYXRpb24gc2VsZWN0aW9uCiAgICAgICAgJElucHV0TGlzdENvbnRhaW5lck9iaiA9ICQoJ2JvZHkgPiAuSW5wdXRGaWVsZF9MaXN0Q29udGFpbmVyJykuZmlyc3QoKS5maW5kKCcjT3V0Ym91bmRIZWFkZXJzT3BlcmF0aW9uU2VsZWN0aW9uX1NlbGVjdCcpOwogICAgICAgICRJbnB1dExpc3RDb250YWluZXJPYmouanN0cmVlKCdkZXNlbGVjdF9ub2RlJywgJElucHV0TGlzdENvbnRhaW5lck9iai5qc3RyZWUoJ2dldF9zZWxlY3RlZCcpKTsKCiAgICAgICAgJCgnI091dGJvdW5kSGVhZGVyc09wZXJhdGlvblNlbGVjdGlvbiBvcHRpb25bdmFsdWU9IicgKyBPcGVyYXRpb24gKyciXScpLmF0dHIoJ3NlbGVjdGVkJywgZmFsc2UpLmF0dHIoJ2Rpc2FibGVkJywgdHJ1ZSk7CiAgICAgICAgJCgnI091dGJvdW5kSGVhZGVyc09wZXJhdGlvblNlbGVjdGlvbicpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJyk7CgogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH07CgogICAgLyoqCiAgICAgKiBAbmFtZSBJbml0CiAgICAgKiBAbWVtYmVyb2YgQ29yZS5BZ2VudC5BZG1pbi5HZW5lcmljSW50ZXJmYWNlVHJhbnNwb3J0SFRUUFJFU1RXZWJzZXJ2aWNlVGlja2V0SW52b2tlcgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBiaW5kcyBldmVudHMgdG8gY2VydGFpbiBhY3Rpb25zCiAgICAgKi8KICAgIFRhcmdldE5TLkluaXQgPSBmdW5jdGlvbiAoKSB7CgogICAgICAgIC8vIGJpbmQgY2hhbmdlIGZ1bmN0aW9uIHRvIEF1dGhlbnRpY2F0aW9uIGZpZWxkCiAgICAgICAgJCgnI0F1dGhUeXBlJykub24oJ2NoYW5nZScsIGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIGlmICgkKHRoaXMpLnZhbCgpID09PSAnQmFzaWNBdXRoJykgewogICAgICAgICAgICAgICAgJCgnLkJhc2ljQXV0aEZpZWxkJykucmVtb3ZlQ2xhc3MoJ0hpZGRlbicpOwogICAgICAgICAgICAgICAgJCgnLkJhc2ljQXV0aEZpZWxkJykuZmluZCgnI0Jhc2ljQXV0aFVzZXInKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnVmFsaWRhdGVfUmVxdWlyZWQnKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgJCgnLktlcmJlcm9zRmllbGQnKS5hZGRDbGFzcygnSGlkZGVuJyk7CiAgICAgICAgICAgICAgICAkKCcuS2VyYmVyb3NGaWVsZCcpLmZpbmQoJyNLZXJiZXJvc1VzZXInKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnVmFsaWRhdGVfUmVxdWlyZWQnKTsKICAgICAgICAgICAgICAgIH0pOwovLyBSb3RoZXIgT1NTIC8gT0F1dGgyCiAgICAgICAgICAgICAgICAkKCcuT0F1dGhBdXRoRmllbGQnKS5hZGRDbGFzcygnSGlkZGVuJyk7Ci8vIEVPIC8gT0F1dGgyCiAgICAgICAgICAgIH0KICAgICAgICAgICBlbHNlIGlmICgkKHRoaXMpLnZhbCgpID09PSAnS2VyYmVyb3MnKSB7CiAgICAgICAgICAgICAgICAkKCcuS2VyYmVyb3NGaWVsZCcpLnJlbW92ZUNsYXNzKCdIaWRkZW4nKTsKICAgICAgICAgICAgICAgICQoJy5LZXJiZXJvc0ZpZWxkJykuZmluZCgnI0tlcmJlcm9zVXNlcicpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdWYWxpZGF0ZV9SZXF1aXJlZCcpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAkKCcuQmFzaWNBdXRoRmllbGQnKS5hZGRDbGFzcygnSGlkZGVuJyk7CiAgICAgICAgICAgICAgICAkKCcuQmFzaWNBdXRoRmllbGQnKS5maW5kKCcjQmFzaWNBdXRoVXNlcicpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdWYWxpZGF0ZV9SZXF1aXJlZCcpOwogICAgICAgICAgICAgICAgfSk7Ci8vIFJvdGhlciBPU1MgLyBPQXV0aDIKICAgICAgICAgICAgICAgICQoJy5PQXV0aEF1dGhGaWVsZCcpLmFkZENsYXNzKCdIaWRkZW4nKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmICgkKHRoaXMpLnZhbCgpID09PSAnT0F1dGgnKSB7CiAgICAgICAgICAgICAgICAkKCcuT0F1dGhBdXRoRmllbGQnKS5yZW1vdmVDbGFzcygnSGlkZGVuJyk7CgogICAgICAgICAgICAgICAgJCgnLkJhc2ljQXV0aEZpZWxkJykuYWRkQ2xhc3MoJ0hpZGRlbicpOwogICAgICAgICAgICAgICAgJCgnLkJhc2ljQXV0aEZpZWxkJykuZmluZCgnI0Jhc2ljQXV0aFVzZXInKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnVmFsaWRhdGVfUmVxdWlyZWQnKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgJCgnLktlcmJlcm9zRmllbGQnKS5hZGRDbGFzcygnSGlkZGVuJyk7CiAgICAgICAgICAgICAgICAkKCcuS2VyYmVyb3NGaWVsZCcpLmZpbmQoJyNLZXJiZXJvc1VzZXInKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnVmFsaWRhdGVfUmVxdWlyZWQnKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgQ29yZS5VSS5JbnB1dEZpZWxkcy5Jbml0U2VsZWN0KCAkKCcjT0F1dGhBY2NvdW50TmFtZScpICk7Ci8vIEVPIC8gT0F1dGgyCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkKCcuQmFzaWNBdXRoRmllbGQnKS5hZGRDbGFzcygnSGlkZGVuJyk7CiAgICAgICAgICAgICAgICAkKCcuQmFzaWNBdXRoRmllbGQnKS5maW5kKCcjQmFzaWNBdXRoVXNlcicpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdWYWxpZGF0ZV9SZXF1aXJlZCcpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAkKCcuS2VyYmVyb3NGaWVsZCcpLmFkZENsYXNzKCdIaWRkZW4nKTsKICAgICAgICAgICAgICAgICQoJy5LZXJiZXJvc0ZpZWxkJykuZmluZCgnI0tlcmJlcm9zVXNlcicpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdWYWxpZGF0ZV9SZXF1aXJlZCcpOwogICAgICAgICAgICAgICAgfSk7Ci8vIFJvdGhlciBPU1MgLyBPQXV0aDIKICAgICAgICAgICAgICAgICQoJy5PQXV0aEF1dGhGaWVsZCcpLmFkZENsYXNzKCdIaWRkZW4nKTsKLy8gRU8gLyBPQXV0aDIKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICAvLyBiaW5kIGNoYW5nZSBmdW5jdGlvbiB0byBVc2UgUHJveHkgZmllbGQKICAgICAgICAkKCcjVXNlUHJveHknKS5vbignY2hhbmdlJywgZnVuY3Rpb24oKXsKICAgICAgICAgICAgaWYgKCQodGhpcykudmFsKCkgPT09ICdZZXMnKSB7CiAgICAgICAgICAgICAgICAkKCcuUHJveHlGaWVsZCcpLnJlbW92ZUNsYXNzKCdIaWRkZW4nKTsKICAgICAgICAgICAgICAgICQoJyNQcm94eUV4Y2x1ZGUnKS5hZGRDbGFzcygnVmFsaWRhdGVfUmVxdWlyZWQnKTsKICAgICAgICAgICAgICAgIENvcmUuVUkuSW5wdXRGaWVsZHMuQWN0aXZhdGUoJCgnLlByb3h5RmllbGQnKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkKCcuUHJveHlGaWVsZCcpLmFkZENsYXNzKCdIaWRkZW4nKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICAvLyBiaW5kIGNoYW5nZSBmdW5jdGlvbiB0byBVc2UgU1NMIGZpZWxkCiAgICAgICAgJCgnI1VzZVNTTCcpLm9uKCdjaGFuZ2UnLCBmdW5jdGlvbigpewogICAgICAgICAgICBpZiAoJCh0aGlzKS52YWwoKSA9PT0gJ1llcycpIHsKICAgICAgICAgICAgICAgICQoJy5TU0xGaWVsZCcpLnJlbW92ZUNsYXNzKCdIaWRkZW4nKTsKCiAgICAgICAgICAgICAgICAvLyBpbml0aWFsaXplIG1vZGVybml6ZWQgc2VsZWN0aW9ucwogICAgICAgICAgICAgICAgQ29yZS5VSS5JbnB1dEZpZWxkcy5BY3RpdmF0ZSgkKCcuU1NMRmllbGQnKSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJCgnLlNTTEZpZWxkJykuYWRkQ2xhc3MoJ0hpZGRlbicpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIC8vIHNwZWNpYWwgaGFuZGxpbmcgZm9yIHZhbHVlIGNvdW50ZXIKICAgICAgICAkKCcuVmFsdWVSb3cgOmlucHV0W25hbWVePSJLZXkiXScpLmVhY2goZnVuY3Rpb24oaSl7CgogICAgICAgICAgICAvLyBzZXQgdmFsdWUgY291bnRlcgogICAgICAgICAgICAkKCcjVmFsdWVDb3VudGVyJykudmFsKGkgKyAxKTsKICAgICAgICB9KQoKICAgICAgICAvL2JpbmQgY2xpY2sgZnVuY3Rpb24gdG8gYWRkIGJ1dHRvbgogICAgICAgICQoJyNBZGRWYWx1ZScpLm9uKCdjbGljaycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgVGFyZ2V0TlMuQWRkQWRkaXRpb25hbFZhbHVlKAogICAgICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCdmaWVsZHNldCcpLmZpbmQoJy5WYWx1ZUluc2VydCcpCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9KTsKCiAgICAgICAgLy9iaW5kIGNsaWNrIGZ1bmN0aW9uIHRvIHJlbW92ZSBidXR0b24KICAgICAgICAkKCcuVmFsdWVSZW1vdmUnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIFRhcmdldE5TLlJlbW92ZVZhbHVlKCQodGhpcykuYXR0cignaWQnKSk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gYmluZCBjaGFuZ2UgZnVuY3Rpb24gdG8gb3BlcmF0aW9uIHNlbGVjdGlvbiBmaWVsZAogICAgICAgICQoJyNPdXRib3VuZEhlYWRlcnNPcGVyYXRpb25TZWxlY3Rpb24nKS5vbignY2hhbmdlJywgZnVuY3Rpb24oKXsKICAgICAgICAgICAgVGFyZ2V0TlMuQWRkQ29udGFpbmVyKAogICAgICAgICAgICAgICAgJCh0aGlzKS52YWwoKSwKICAgICAgICAgICAgICAgIHRoaXMub3B0aW9uc1t0aGlzLnNlbGVjdGVkSW5kZXhdLnRleHQKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0pOwoKICAgICAgICAvL2JpbmQgY2xpY2sgZnVuY3Rpb24gdG8gYWRkIGJ1dHRvbnMKICAgICAgICAkKCcuQWRkVmFsdWUnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIFRhcmdldE5TLkFkZFZhbHVlKAogICAgICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCcuVmFsdWVJbnNlcnQnKQogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CgogICAgICAgIC8vYmluZCBjbGljayBmdW5jdGlvbiB0byByZW1vdmUgYnV0dG9uCiAgICAgICAgJCgnLlZhbHVlUmVtb3ZlJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICBUYXJnZXROUy5SZW1vdmVWYWx1ZSgkKHRoaXMpLmF0dHIoJ2lkJykpOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CgogICAgICAgIC8vIGJpbmQgY2xpY2sgZnVuY3Rpb24gdG8gcmVtb3ZlIGFsbCBidXR0b24KICAgICAgICAkKCcuVmFsdWVSZW1vdmVBbGwnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIFRhcmdldE5TLlJlbW92ZUNvbnRhaW5lcigkKHRoaXMpLmF0dHIoJ2lkJykpOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CiAgICB9OwoKICAgIENvcmUuSW5pdC5SZWdpc3Rlck5hbWVzcGFjZShUYXJnZXROUywgJ0FQUF9NT0RVTEUnKTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cn0oQ29yZS5BZ2VudC5BZG1pbi5HZW5lcmljSW50ZXJmYWNlVHJhbnNwb3J0SFRUUFJFU1RXZWJzZXJ2aWNlVGlja2V0SW52b2tlciB8fCB7fSkpOwo=</File>
        <File Location="var/httpd/htdocs/js/Core.Agent.Admin.OAuth2Module.js" Permission="660" Encode="Base64">Ly8gLS0KLy8gT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgovLyAtLQovLyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAyMCBPVFJTIEFHLCBodHRwczovL290cnMuY29tLwovLyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNSBSb3RoZXIgT1NTIEdtYkgsIGh0dHBzOi8vb3RvYm8uaW8vCi8vIC0tCi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCi8vIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCi8vIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAovLyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwovLyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgQ29yZSA9IENvcmUgfHwge307CkNvcmUuQWdlbnQgPSBDb3JlLkFnZW50IHx8IHt9OwpDb3JlLkFnZW50LkFkbWluID0gQ29yZS5BZ2VudC5BZG1pbiB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlIG9yZS5BZ2VudC5BZG1pbi5PQXV0aDJNb2R1bGUKICogQG1lbWJlcm9mIENvcmUuQWdlbnQuQWRtaW4KICogQGF1dGhvciBSb3RoZXIgT1NTIEdtYkgKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgdGhlIHNwZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucyBmb3IgdGhlIE9BdXRoMiBUb2tlbiBTdG9yZS4KICovCkNvcmUuQWdlbnQuQWRtaW4uT0F1dGgyTW9kdWxlID0gKGZ1bmN0aW9uIChUYXJnZXROUykgewoKICAgIHZhciBUb2dnbGVHcmFudFR5cGUgPSBmdW5jdGlvbigpIHsKCiAgICAgICAgaWYoICQoJyNHcmFudFR5cGUnKS5sZW5ndGggPT0gMCkgcmV0dXJuOwoKICAgICAgICB2YXIgR3JhbnRUeXBlID0gJCgnI0dyYW50VHlwZScpWzBdLnZhbHVlOwogICAgICAgIGlmKEdyYW50VHlwZSA9PSAncGFzc3dvcmQnKSB7CgogICAgICAgICAgICAkKCJbZm9yfD0nVXNlcm5hbWUnXSIpLnNob3coKTsKICAgICAgICAgICAgJCgiW2Zvcnw9J1Bhc3N3b3JkJ10iKS5zaG93KCk7CiAgICAgICAgICAgICQoJyNVc2VybmFtZUZpZWxkJykuc2hvdygpOwogICAgICAgICAgICAkKCcjUGFzc3dvcmRGaWVsZCcpLnNob3coKTsKCiAgICAgICAgICAgICQoJyNVc2VybmFtZScpLmFkZENsYXNzKCdWYWxpZGF0ZV9SZXF1aXJlZCcpOwogICAgICAgICAgICAkKCcjUGFzc3dvcmQnKS5hZGRDbGFzcygnVmFsaWRhdGVfUmVxdWlyZWQnKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAkKCJbZm9yfD0nVXNlcm5hbWUnXSIpLmhpZGUoKQogICAgICAgICAgICAkKCJbZm9yfD0nUGFzc3dvcmQnXSIpLmhpZGUoKTsKICAgICAgICAgICAgJCgnI1VzZXJuYW1lRmllbGQnKS5oaWRlKCk7CiAgICAgICAgICAgICQoJyNQYXNzd29yZEZpZWxkJykuaGlkZSgpOwoKICAgICAgICAgICAgJCgnI1VzZXJuYW1lJykucmVtb3ZlQ2xhc3MoJ1ZhbGlkYXRlX1JlcXVpcmVkJyk7CiAgICAgICAgICAgICQoJyNQYXNzd29yZCcpLnJlbW92ZUNsYXNzKCdWYWxpZGF0ZV9SZXF1aXJlZCcpOwogICAgICAgIH0KICAgIH07CgogICAgdmFyIENvcHkyQ2xpcGJvYXJkID0gZnVuY3Rpb24odmFsdWUpIHsKCiAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodmFsdWUpLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGFsZXJ0KCJUb2tlbiBjb3BpZWQgdG8gY2xpcGJvYXJkISIpOwogICAgICAgIH0sIGZ1bmN0aW9uKGVycikgewogICAgICAgICAgICBhbGVydCgiRmFpbGVkIHRvIGNvcHkgVG9rZW4gdG8gY2xpcGJvYXJkISIpOwogICAgICAgIH0pOwogICAgfTsKCiAgICAvKioKICAgICAqIEBuYW1lIEluaXQKICAgICAqIEBtZW1iZXJvZiBDb3JlLkFnZW50LkFkbWluLk9BdXRoMk1vZHVsZQogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBiaW5kcyBldmVudHMgdG8gY2VydGFpbiBhY3Rpb25zCiAgICAgKi8KICAgIFRhcmdldE5TLkluaXQgPSBmdW5jdGlvbiAoKSB7CgogICAgICAgIFRvZ2dsZUdyYW50VHlwZSgpOwoKICAgICAgICAkKCcjR3JhbnRUeXBlJykub24oICdjaGFuZ2UnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgVG9nZ2xlR3JhbnRUeXBlKCk7CiAgICAgICAgfSk7CgogICAgICAgICQoJy5Db3B5VG9rZW4nKS5vbiggJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIENvcHkyQ2xpcGJvYXJkKHRoaXMuZ2V0QXR0cmlidXRlKCd0b2tlbicpKTsKICAgICAgICB9KTsKCiAgICB9OwoKICAgIENvcmUuSW5pdC5SZWdpc3Rlck5hbWVzcGFjZShUYXJnZXROUywgJ0FQUF9NT0RVTEUnKTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cn0oQ29yZS5BZ2VudC5BZG1pbi5PQXV0aDJNb2R1bGUgfHwge30pKTsK</File>
        <File Location="Kernel/Language/de_OAuth2.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOeKAkzIwMjEgRWZmbHV4IEdtYkgsIGh0dHBzOi8vZWZmbHV4LmRlLwojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Okxhbmd1YWdlOjpkZV9PQXV0aDI7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIEFkbWluT0F1dGhUb2tlblN0b3JlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50IE5hbWUgaXMgbWlzc2luZyEnfSA9ICdLb250byBOYW1lIGlzdCBlcmZvcmRlcmxpY2ghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJuYW1lIGlzIHJlcXVpcmVkISd9ID0gJ1VzZXJuYW1lIGlzdCBlcmZvcmRlcmxpY2ghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Bhc3N3b3JkIGlzIHJlcXVpcmVkISd9ID0gJ1Bhc3N3b3JkIGlzdCBlcmZvcmRlcmxpY2ghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjY291bnQgTmFtZSBpcyB0YWtlbiEnfSA9ICdLb250byBOYW1lIGlzdCBiZXJlaXRzIHZlcmdlYmVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciBjcmVhdGluZy91cGRhdGluZyAlcyEnfSA9ICdGZWhsZXIgYmVpbSBFcnN0ZWxsZW4vQWt0dWFsaXNpZXJlbiB2b24gJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBnZW5lcmF0ZSBPSURDIFByb3ZpZGVyIEF1dGhlbnRpY2F0aW9uIFVSTCBmb3IgTG9naW4uIEludmFsaWQgT0lDRCBDb25maWd1cmF0aW9uISd9ID0gJ0RlciBPSURDIFByb3ZpZGVyIEF1dGhlbnRpY2F0aW9uIFVSTCB6dW0gTG9naW4ga29ubnRlIG5pY2h0IGdlbmVyaWVydCB3ZXJkZW4uIEludmFsaWRlIE9JQ0QgS29uZmlndXJhdGlvbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWNjb3VudCAlcyBkZWxldGVkISd9ID0gJ0tvbnRvICVzIGdlbMO2c2NodCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9rZW4gJXMgdXBkYXRlZCEnfSA9ICdUb2tlbiAlcyBha3R1YWxpc2llcnQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgT0F1dGggU3RhdGUhJ30gPSAnSW52YWxpZGVyIE9BdXRoIFN0YXRlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIEFjY291bnQgJXMgZm9yIFRva2VuISInfSA9ICdJbnZhbGlkZXMgS29udG8gJXMgZsO8ciBUb2tlbiEiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgSXNzdWVyICVzIGZvciBUb2tlbiAlcyEnfSA9ICdJbnZhbGlkZXIgSXNzdWVyICVzIGbDvHIgVG9rZW4gJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIGZldGNoaW5nIGluaXRpYWwgVG9rZW4gZm9yICVzISd9ID0gJ0ZlaGxlciBiZWltIGJlcmVpdHN0ZWxsZW4gZGVzIGluaXRpYWxlbiBUb2tlbnMgZsO8ciAlcyEnOwoKICAgICMgVG9rZW5Qcm92aWRlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWNjb3VudElEICVzIG5vdCBmb3VuZCEnfSA9ICdLb250byBtaXQgSUQgJXMgbmljaHQgZ2VmdW5kZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZhbGlkIHJlZnJlc2hfdG9rZW4gZm9yIEFjY291bnQgJXMgdXNpbmcgZ3JhbnRfdHB5ZSBcJ2F1dGhvcml6YXRpb24gY29kZVwnICEnfSA9ICdFcyBleGlzaXRpZXIga2VpbiB2YWxpZGVzIHJlZnJlc2hfdG9rZW4gZsO8ciBkYXMgS29udG8gJXMgdW5kIGdyYW50X3RweWUgXCdhdXRob3JpemF0aW9uIGNvZGVcJyAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgZnVuY3Rpb25hbCBhY2NvdW50IEludm9rZXIgc2V0dGluZ3MgaW4gU3lzQ29uZmlnIGZvciAlcy4nfSA9ICdGZWhsZW5kZSBFaW5zdGVsbHVuZ2VuIGbDvHIgZGFzIGZ1bmt0aW9uYWxlIEtvbnRvICVzIGluIGRlciBTeXN0ZW0gS29uZmlndXJhdGlvbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ291bGQgbm90IGdldCB0aGUgT0F1dGgyIHRva2VuX2VuZHBvaW50IGZvciBJbnZva2VyLid9ID0gJ0RlciBPQXV0aDIgdG9rZW5fZW5kcG9pbnQga29ubnRlIG5pY2h0IGJlcmVpdCBnZXN0ZWxsdCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIGZldGNoaW5nIFRva2VuIGZvciBJbnZva2VyOiAlcyd9ID0gJ0ZlaGxlciBiZWltIEFiaG9sZW4gZGVzIE9BdXRoMiBUb2tlbiBmb3IgSW52b2tlcjogJXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGlkIG5vdCByZWNlaXZlIHRoZSBkZXNpcmVkIFRva2VuVHlwZSBcJyVzXCcgaW4gT0lEQyBwcm92aWRlciByZXNwb25zZSBmb3IgSW52b2tlciAlcyEnfSA9ICdEZXIgZXJ3YXJ0ZXRlIFRva2VuIFR5cCBcJyVzXCcgZsO8ciAlcyB3YXIgaW4gZGVyIE9JREMgUHJvdmlkZXIgQW50d29ydCBuaWNodCBlbnRoYWx0ZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgbGVmdCBvbiBmcmVzaCB0b2tlbiBpczogJXMgcyBmb3IgSW52b2tlciAlcyEnfSA9ICdWZXJibGVpYmVuZGUgWmVpdCBmw7xyIGFrdHVlbGxlcyBUb2tlbiBpc3Q6ICVzIHMgZsO8ciBJbnZva2VyICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIENsaWVudElEIGFuZCBDbGllbnRTZWNyZXQhJ30gPSAnQ2xpZW50SUQgYW5kIENsaWVudFNlY3JldCBmZWhsZW4gaW4gZGVyIE9JREMgUHJvZmlsIEtvbmZpZ3VyYXRpb24hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvdCBubyBjb250ZW50IHdoZW4gcmVxdWVzdGluZyBUb2tlbi4gUmVzcG9uc2UgQ29kZTogJXMnfSA9ICdMZWVyZSBBbnR3b3J0IGluIGRlciBUb2tlbiBBbmZyYWdlLiBSZXNwb25zZSBDb2RlOiAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHb3Qgbm8gSlNPTiBvYmplY3Qgd2hlbiByZXF1ZXN0aW5nIFRva2VuLiBSZXNwb25zZTogJXMnfSA9ICdEaWUgQW50d29ydCBpbiBkZXIgVG9rZW4gQWJyYWdlIGVudGhpZWx0IGtlaW4gSlNPTiBPYmpla3QuIFJlc3BvbnNlOiAlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvcjogJXMuIERlc2NyaXB0aW9uOiAlcyd9ID0gJ0ZlaGxlcjogJXMuIEJlc2NocmVpYnVuZzogJXMnOwoKICAgICMgSy9HSS9PL1MvQ29tbW9uLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVuSUQgQ29ubmVjdCBDb25maWcgaXMgSW52YWxpZC4nfSA9ICdPcGVuSUQgQ29ubmVjdCBLb25maWd1cmF0aW9uIGlzdCBpbnZhbGlkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIE9wZW5JRCBDb25uZWN0IENvbmZpZyAtIG1pc3NpbmcgJE5lZWRlZC4nfSA9ICdJbnZhbGlkZSBPcGVuSUQgQ29ubmVjdCBLb25maWd1cmF0aW9uIC0gZXMgZmVobHQgJXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rva2VuIGludmFsaWQ6IGNsYWltICVzIG5vdCBpbmNsdWRlZC4nfSA9ICdUb2tlbiBpbnZhbGlkOiBjbGFpbSAlcyBuaWNodCBlbnRoYWx0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzxpYXQ+IGNsYWltIGludmFsaWQuIFRva2VuIGNyZWF0aW9uIHRpbWUgaXMgaW4gdGhlIGZ1dHVyZS4gVG9rZW46ICVzOyBDdXJyZW50OiAkJXM7J30gPSAnPGlhdD4gY2xhaW0gaW52YWxpZC4gRXJzdGVsbHVuZ3N6ZWl0IGRlcyBUb2tlbnMgaXN0IGluIGRlciBadWt1bmZ0LiBUb2tlbjogJXM7IEpldHp0OiAkJXM7JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzxleHA+IGludmFsaWQuIFRva2VuIGV4cGlyZWQuIEV4cGlyYXRpb24gVGltZTogJXM7IEN1cnJlbnQ6ICVzOyd9ID0gJzxleHA+IGludmFsaWQuIFRva2VuIGFiZ2VsYXVmZW4uIEFibGF1ZnplaXRwdW5rdDogJXM7IEpldHp0OiAlczsnOwoKICAgICMgSy9HSS9UL0gvUkVTVC5wbQoKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIGZldGNoaW5nIHRoZSBPQXV0aDIgVG9rZW4nfSA9ICdGZWhsZXIgYmVpbSBBYmhvbGVuIGRlcyBPQXV0aDIgVG9rZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXR0YWNoZWQgT0F1dGgyIEJlYXJlciBUb2tlbid9ID0gJ09BdXRoMiBCZWFyZXIgVG9rZW4gaGluenVnZWbDvGd0JzsKCiAgICAjIEFkbWluT0F1dGhUb2tlblN0b3JlLnR0CgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT0F1dGgyIFRva2VuIE1hbmFnZW1lbnQgKE9JREMpJ30gPSAnT0F1dGgyIFRva2VuIE1hbmFnZW1lbnQgKE9JREMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09wZW5JRCBDb25uZWN0IEZ1bmN0aW9uYWwgT0F1dGgyIEFjY291bnQgTWFuYWdlbWVudCd9ID0gJ09wZW5JRCBDb25uZWN0IE1hbmFnZW1lbnQgZsO8ciBGdW5rdGlvbmFsZSBLb250ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEFjY291bnQnfSA9ICdLb250byBoaW56dWbDvGhnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBBY2NvdW50ICd9ID0gJ0tvbnRvIGJlYXJiZWl0ZW46ICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBYm91dCBPSURDIEZ1bmN0aW9uYWwgQWNjb3VudHMnfSA9ICdPSURDIEZ1bmt0aW9uYWxlIEtvbnRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHBhZ2UgZGlzcGxheXMgYW4gb3ZlcnZpZXcgb2YgY29uZmlndXJlZCBmdW5jdGlvbmFsIE9BdXRoIEFjY291bnRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIFRva2VuIFN0YXR1cy4nfSA9ICfDnGJlcmJsaWNrIMO8YmVyIGRpZSBrb25maWd1cmllcnRlbiBmdW5rdGlvaW5hbGVuIE9BdXRoMiBLb250ZW4gdW5kIGRlcmVuIGFrdHVlbGxlbSBUb2tlbiBTdGF0dXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IllvdSBjYW4gdGVzdCB5b3VyIENvbmZpZ3VyYXRpb24gd2l0aCBhIGNsaWNrIG9uIHRoZSAnUmVuZXcnIEJ1dHRvbiwgd2hpY2ggd2lsbCB0cnkgdG8gZmV0Y2ggb3IgcmVmcmVzaCBhIG5ldyBUb2tlbi4ifSA9ICdNaXQgZWluZW0gS2xpY2sgYXVmIGRlbiBcJ0FrdHVhbGlzaWVyZW5cJyBCdXR0b24ga2FubiBkaWUgamV3ZWlsaWdlIEtvbmZpZ3VyYXRpdW9uIMO8YmVycHLDvGZ0IHdlcmRlbi4nOwojICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCd9ID0gJ0FkZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQWNjb3VudCd9ID0gJ0tvbnRvIEzDtnNjaGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09BdXRoMiBUb2tlbiBiYWNrZWQgQWNjb3VudHMnfSA9ICdPQXV0aDIgVG9rZW4gYmFzaWVyZW5kZSBmdW5rdGlvbmFsZSBLb250ZW4nOwojICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3RvdGFsJ30gPSAndG90YWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgYXJlIG5vIE9BdXRoMiBhY2NvdW50cyBkZWZpbmVkLid9ID0gJ0VzIHNpbmQgbm9jaCBrZWluZSBmdW5rdGlvbmFsZW4gT0F1dGgyIEtvbnRlbiBkZWZpbmllcnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FjY291bnQgTmFtZSd9ID0gJ0tvbnRvIE5hbWUnOwojICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zsb3cnfSA9ICdGbG93JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hhcyBUb2tlbj8nfSA9ICdUb2tlbiB2b3JoYW5kZW4/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZnJlc2ggVG9rZW4gRXhwaXJlcyd9ID0gJ1JlZnJlc2ggVG9rZW4gR8O8bHRpZyBiaXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVuZXcgVG9rZW4nfSA9ICdBa3R1YWxpc2llcmUgVG9rZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVuZXcnfSA9ICdBa3R1YWxpc2llcmVuJzsKIyAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBtYXRjaGVzIGZvdW5kLid9ID0gJ05vIG1hdGNoZXMgZm91bmQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBJbnZva2VyIEFjY291bnQnfSA9ICdJbnZva2VyIEtvbnRvIGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgSW52b2tlciBBY2NvdW50J30gPSAnSW52b2tlciBLb250byBiZWFyYmVpdGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB1bmlxdWUgbmFtZSBmb3IgdGhpcyBBY2NvdW50Lid9ID0gJ0RlciBlaW5kZXV0aWdlIE5hbWUgZsO8ciBkaWVzZXMgS29udG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBPcGVuSUQgQ29ubmVjdCd9ID0gJ0RlciBPcGVuSUQgQ29ubmVjdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd0byB1c2UgZm9yIHRoaXMgZnVuY3Rpb25hbCBhY2NvdW50Lid9ID0gJ2RlciBmw7xyIGRpZXNlcyBmdW5rdGlvbmFsZSBLb250byBiZW51dHp0IHdlcmRlbiBzb2xsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgT0F1dGgyIGdyYW50X3R5cGUgdG8gdXNlIGZvciBhY3F1aXJpbmcgdG9rZW5zIGZvciB0aGlzIGFjY291bnQuJ30gPSAnRGVyIE9BdXRoMiBncmFudF90eXBlIGbDvHIgZGllc2VzIEtvbnRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJTZWxlY3RpbmcgJ2F1dGhvcml6YXRpb25fY29kZScgd2lsbCByZWRpcmVjdCB5b3UgdG8geW91ciBPcGVuSUQgQ29ubmVjdCBQcm92aWRlcidzIExvZ2luIFBhZ2UgdG8gdmFsaWRhdGUgeW91ciBhY2NvdW50IG9uY2UgeW91IGNsaWNrICdTYXZlJy4ifSA9ICJEaWUgQXVzd2FobCB2b24gJ2F1dGhvcml6YXRpb25fY29kZScgbMO2c3QgZWluZW4gQnJvd3NlciBSZWRpcmVjdCB6dXIgTG9naW4gU2VpdGUgSWhyZXMgT0lEQyBQcm92aWRlcnMuIjsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09JREMgUHJvZmlsZSd9ID0gJ09JREMgUHJvZmlsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW50IFR5cGUnfSA9ICdHcmFudCBUeXBlJzsKIyAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VybmFtZSd9ID0gJ1VzZXJuYW1lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB1c2VybmFtZSBpZiBncmFudCB0eXBlIGlzIFwncGFzc3dvcmQuXCcuJ30gPSAnRGVyIFVzZXJuYW1lIGJlaSBncmFudCB0eXBlIGdsZWljaCBcJ3Bhc3N3b3JkXCcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBwYXNzd29yZCB0byB1c2UgaWYgZ3JhbnQgdHlwZSBpcyBcJ3Bhc3N3b3JkXCcuJ30gPSAnRGFzIFBhc3N3b3J0IGJlaSBncmFudCB0eXBlIGdsZWljaCBcJ3Bhc3N3b3JkXCcuJzsKCiMgICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFzc3dvcmQnfSA9ICdQYXNzd29yZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPQXV0aDIgU2NvcGVzJ30gPSAnT0F1dGgyIFNjb3Blcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGFjZSBzZXBhcmF0ZSBsaXN0IG9mIE9BdXRoMiBzY29wZXMgdG8gdXNlLiBVc3VhbCB2YWx1ZXMgaW5jbHVkZSBvcGVuaWQsIGVtYWlsLCBwcm9maWxlLCBhbmQgcm9sZXMuJ30gPSAnTGVlcnplaWNoZW4gZ2V0cmVubnRlIExpc3RlIHZvbiBPQXV0aDIgc2NvcGVzLiDDnGJsaWNoZSBXZXJ0ZSBzaW5kIG9wZW5pZCwgZW1haWwsIHByb2ZpbGUsIHVuZCByb2xlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWR2YW5jZWQgSW52b2tlciBTZXR0aW5ncyd9ID0gJ0Vyd2VpdGVydGUgSW52b2tlciBFaW5zdGVsbHVuZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc291cmNlcyd9ID0gJ1Jlc291cmNlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcHRpb25hbCAoc3BhY2Ugc2VwZXJhdGVkIGxpc3QpIGZvciB0aGUgcmVzb3VyY2UgcGFyYW1hdGVyIGlmIHJlcXVpcmVkLiBMZWF2ZSBlbXB0eSB1bmxlc3MgaW5zdHJ1Y3RlZCBvdGhlcndpc2UuJ30gPSAnT3B0aW9uYWxlLCBMZWVyemVpY2hlbiBnZXRyZW5udGUgTGlzdGUgZsO8ciBkZW4gUmVzb3VyY2UgUGFyYW1hdGVyLCBzb2Zlcm4gYmVuw7Z0aWd0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXNvdXJjZSBQYXJhbWV0ZXIgTmFtZSd9ID0gJ1Jlc291cmNlIFBhcmFtZXRlciBOYW1lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05hbWUgb2YgdGhlIHJlc291cmNlIHBhcmFtZXRlciB0byB1c2UuIERlZmF1bHRzIHRvIFwncmVzb3VyY2VcJy4gRG8gbm90IGNoYW5nZSB1bmxlc3MgaW5zdHJ1Y3RlZC4nfSA9ICdOYW1lIGRlcyBSZXNvdXJjZSBQYXJhbWV0ZXJzLiBWb3JlaW5nZXN0ZWxsdCBpc3QgXCdyZXNvdXJjZVwnLiDDhG5kZXJuIFNpZSBkaWVzZW4gV2VydCBudXIgYXVmIEFuZnJhZ2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rva2VuIFR5cGUnfSA9ICdUb2tlbiBUeXAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHRva2VuIHR5cGUgdG8gdXNlIGZvciBleHRlcm5hbGwgQVBJIGNhbGxzLiBVc3VhbGx5IFwnYWNjZXNzX3Rva2VuXCcuJ30gPSAnRGVyIFRva2VuIFR5cCBkZXIgZsO8ciBhdXNnZWhlbmRlIFdlYlNlcnZpY2UgQXVmcnVmZSB2ZXJ3ZW5kZXQgd2VyZGVuIHNvbGwuIMOcYmxpY2hlcndlaXNlIFwnYWNjZXNzX3Rva2VuXCcuJzsKCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJZb3UgY2FuIGNyZWF0ZSBPSURDIFByb2ZpbGVzIHRvIGNvbm5lY3QgdG8geW91ciBPSURDIEZ1bmN0aW9uYWwgQWNjb3VudCJ9ID0gJ1VtIG5ldWUgT0lEQyBQcm9maWxlIHp1bSBWZXJrbsO8cGZlbiBtaXQgRnVuY3Rpb25hbCBBY2NvdW50cyB6dSBlcnN0ZWxsZW4sIGtsaWNrZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJoZXJlIn0gPSAnaGllcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJTaW5jZSB5b3UgZG8gbm90IGhhdmUgYW55IE9JREMgUHJvdmlkZXIgcHJvZmlsZXMgY29uZmlndXJlZCwgeW91IGNhbm5vdCBhZGQgYW4gT0F1dGgyIEZ1bmN0aW9uYWwgQWNjb3VudC4gWG91IGhhdmUgdG8gZmlyc3QgY29uZmlndXJlIGF0IGxlYXN0IG9uZSBPSURDIFByb3ZpZGVyIHByb2ZpbGUifSA9ICdEYSBub2NrIGtlaW5lIE9JREMgUHJvZmlsZSBoaW50ZXJsZWd0IHNpbmQsIGthbm4ga2VpbiBuZXVlciBGdW5jdGlvbmFsIEFjY291bnQgYW5nZWxlZ3Qgd2VyZGVuLiBVbSBlaW4gbmV1ZXMgT0lEQyBQcm9maWwgenUgZXJzdGxsZW4sIGtsaWNrZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJQcm9maWxlIE5hbWUifSA9ICdQcm9maWwgTmFtZSc7CgogICAgIyBBZG1pbk9JRENQcm9maWxlcy50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsiT3BlbklEIENvbm5lY3QgUHJvdmlkZXIgUHJvZmlsZXMgTWFuYWdlbWVudCJ9ID0gJ09wZW5JRCBDb25uZWN0IFByb3ZpZGVyIFByb2ZpbCBNYW5hZ2VtZW50JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9maWxlJ30gPSAnUHJvZmlsIGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvZmlsZSd9ID0gJ1Byb2ZpbCBiZWFyYmVpdGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IkFib3V0IE9JREMgUHJvdmlkZXIgUHJvZmlsZXMifSA9ICJPSURDIFByb3ZpZGVyIFByb2ZpbGUiOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsiVGhpcyBwYWdlIGRpc3BsYXlzIGFuIG92ZXJ2aWV3IG9mIGNvbmZpZ3VyZWQgT0lEQyBQcm92aWRlciBQcm9maWxlcy4ifSA9ICfDnGJlcmJsaWNrIMO8YmVyIGRpZSBrb25maWd1cmllcnRlbiBPSURDIFByb3ZpZGVyIFByb2ZpbGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gY29ubmVjdCBPSURDIFByb2ZpbGVzIHdpdGggYSBPSURDIEZ1bmN0aW9uYWwgQWNjb3VudCd9ID0gJ1VtIE9JREMgUHJvZmlsZSBtaXQgZWluZW0gRnVua3Rpb25hbGVuIEFjY291bnQgenUgdmVya27DvHBmZW4sIGtsaWNrZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJEZWxldGUgUHJvZmlsZSJ9ID0gIlByb2ZpbCBsw7ZzY2hlbiI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcGVuSUQgQ29ubmVjdCBQcm92aWRlciBQcm9maWxlcyBmb3Igb3V0Z29pbmcgV2Vic2VydmljZSBjYWxscyAoR2VuZXJpY0ludGVyZmFjZSBJbnZva2VyKSd9ID0gJ09wZW5JRCBDb25uZWN0IFByb3ZpZGVyIFByb2ZpbGUgZsO8ciBhdXNnZWhlbmRlIFdlYnNlcnZpY2VzIChHZW5lcmljSW50ZXJmYWNlIEludm9rZXIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGFyZSBubyBPSURDIFByb3ZpZGVyIHByb2ZpbGVzIGRlZmluZWQuJ30gPSAnRXMgc2luZCBrZWluZSBPSURDIFByb3ZpZGVyIFByb2ZpbGUgZGVmaW5pZXJ0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IlByb2ZpbGUgTmFtZSJ9ID0gJ1Byb2ZpbCBOYW1lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IkNsaWVudCBJRCJ9ID0gIkNsaWVudCBJRCI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJQcm92aWRlciJ9ID0gIlByb3ZpZGVyIjsKIyAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJWYWxpZCJ9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJBZGQgT0lEQyBQcm92aWRlciBQcm9maWxlIn0gPSAnT0lEQyBQcm92aWRlciBQcm9maWwgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsiRWRpdCBPSURDIFByb3ZpZGVyIFByb2ZpbGUifSA9ICdPSURDIFByb3ZpZGVyIFByb2ZpbCBiZWFyYmVpdGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IlNpbmNlIHlvdSBhcmUgdXNpbmcgT0lEQyBhcyBBdXRoZW50aWNhdGlvbiBtb2R1bGUsIHRoZXNlIHZhbHVlcyBoYXZlIGJlZW4gcHJlLXBvcHVsYXRlZCB3aXRoIHRoZSBPSURDIFByb3ZpZGVyIENvbmZpZ3VyYXRpb24gdXNlZCBmb3IgTG9naW4uIn0gPSAnRGEgT0lEQyBmw7xyIGRlbiBMb2dpbiB2ZXJ3ZW5kZXQgd2lyZCwgd3VyZGVuIGVpbmlnZSBQYXJhbWV0ZXIgYmFzaWVyZW5kIGF1ZiBpaHJlciBPSURDIExvZ2luIEtvbmZpZ3VyYXRpb24gdm9yLWF1c2dlZsO8bGx0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJUaGUgdW5pcXVlIG5hbWUgZm9yIHRoaXMgUHJvZmlsZS4ifSA9ICdEZXIgZWluZGV1dGlnZSBOYW1lIGbDvHIgZGllc2VzIFByb2ZpbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsiTWV0YWRhdGEgVXJsLiJ9ID0gIk1ldGFkYXRhIFVybC4iOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsiVGhlIFdlbGwtS25vd24gUHJvdmlkZXIgTWV0YWRhdGEgVXJsLiJ9ID0gIkRlciAnV2VsbC1Lbm93bicgUHJvdmlkZXIgTWV0YWRhdGEgVXJsLiI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJUaGUgQ2xpZW50IElEIG9mIHlvdXIgT0F1dGgyIGFwcGxpY2F0aW9uLiJ9ID0gIkRpZSAnQ2xpZW50IElEJyBJaHJlciBPQXV0aDIgQXBwbGlrYXRpb24uIjsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IlRoZSBDbGllbnQgU2VjcmV0IG9mIHlvdXIgT0F1dGgyIGFwcGxpY2F0aW9uLiJ9ID0gIkRhcyAnQ2xpZW50IFNlY3JldCcgSWhyZXIgT0F1dGgyIEFwcGxpa2F0aW9uLiI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJDYWNoZSBUVEwifSA9ICJDYWNoZSBUVEwiOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsiVGltZSBpbiBzZWNvbmRzIGZvciBjYWNoaW5nIHByb3ZpZGVyIGRhdGEuIn0gPSAnWmVpdCBpbiBTZWt1bmRlbiBmw7xyIGRpZSBQcm92aWRlciBEYXRlbiBnZWNhY2hlZCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IlNTTCBPcHRpb25zIChPcHRpb25hbCkifSA9ICJTU0wgT3B0aW9uZW4gKE9wdGlvbmFsKSI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJTU0wgQ2VydGlmaWNhdGUifSA9ICJTU0wgWmVydGlmaWthdCI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJTU0wgY2VydGlmaWNhdGUgcGF0aC4ifSA9ICJTU0wgWmVydGlmaWthdCBQZmFkLiI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJTU0wgQ2VydGlmaWNhdGUgS2V5In0gPSAiU1NMIFplcnRpZmlrYXQgU2NobMO8c3NlbC4iOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsiU1NMIGNlcnRpZmljYXRlIHByaXZhdGUga2V5IHBhdGguIn0gPSAiUGZhZCB6dW0gU1NMIFplcnRpZmlrYXQgU2NobMO8c3NlbCAocHJpdmF0ZSBrZXkpLiI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJTU0wgUGFzc3dvcmQifSA9ICJTU0wgUGFzc3dvcnQiOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsiVGhlIFNTTCBwYXNzd29yZC4ifSA9ICJEYXMgU1NMIFBhc3N3b3J0LiI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJTU0wgQ0EgRmlsZSJ9ID0gIlNTTCBDQSBEYXRlaSI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJTU0wgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IGZpbGUgcGF0aC4ifSA9ICJQZmFkIHp1ciBTU0wgWmVydGlmaWthdHMgQXV0aG9yaXR5IERhdGVpIChDQSkuIjsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IlNTTCBDQSBEaXJlY3RvcnkifSA9ICJTU0wgQ0EgVmVyemVpY2huaXMiOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsiU1NMIENlcnRpZmljYXRlIEF1dGhvcml0eSBkaXJlY3RvcnkgcGF0aC4ifSA9ICdQZmFkIHp1bSBWZXJ6ZWNobmlzIG1pdCBkZW4gU1NMIFplcnRpZmlrYXRzIEF1dGhvcml0eSBEYXRlaWVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJTU0wgVmVyaWZ5IEhvc3RuYW1lIn0gPSAiU1NMIFZlcmlmaXppZXJ1bmcgZGVzIEhvc3RuYW1lcyI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJFbmFibGUgb3IgZGlzYWJsZSBTU0wgaG9zdG5hbWUgdmVyaWZpY2F0aW9uLiBPbmx5IGRpc2FibGUgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcyEifSA9ICdadW0gVGVzdGVuIG9kZXIgenVyIEZlaGxlcnN1Y2hlIGthbm4gZGllIFZlcmlmaXppZXJ1bmcgdm9uIFNTTCBIb3N0bmFtZW4gZGVha3RpdmllcnQgd2VyZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJTU0wgVmVyaWZ5IE1vZGUifSA9ICdTU0wgVmVyaWZpemllcnVuZ3Ntb2R1cyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJFbmFibGUgb3IgZGlzYWJsZSBTU0wgdmVyaWZpY2F0aW9uLiBPbmx5IGRpc2FibGUgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcyEifSA9ICdadW0gVGVzdGVuIG9kZXIgenVyIEZlaGxlcnN1Y2hlIGthbm4gZGllIFZlcmlmaXppZXJ1bmcgdm9uIFNTTCBaZXJ0aWZpa2F0ZW4gZGVha3RpdmllcnQgd2VyZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJNaXNjIE9wdGlvbnMgKE9wdGlvbmFsKSJ9ID0gJ0Vyd2VpdGVydGUgT3B0aW9uZW4gKE9wdGlvbmFsKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJVc2UgTm9uY2UifSA9ICdCZW51dHplIE5vbmNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IkRvIG5vdCB1c2UgTm9uY2UifSA9ICdLZWluZSBOb25jZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJSYW5kIExlbmd0aCJ9ID0gJ1p1ZmFsbHN6ZWljaGVuZm9sZ2VubMOkbmdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IlJhbmRvbSBzdHJpbmcgbGVuZ3RoIHVzZWQgZm9yIHN0YXRlIGFuZCBub25jZSBwYXJhbWV0ZXJzLiBEZWZhdWx0IGlzICcyMicuIn0gPSAiWnVmYWxsc3plaWNoZW5mb2xnZW5sw6RuZ2UgYmVudXR6IHp1bSBFcnN0ZWxsZW4gdm9uIE5vbmNlIHVuZCBTdGF0ZSBadWZhbGxzZm9sZ2VuLiBEZXIgRGVmYXVsdCBXZXJ0IGlzdCAnMjInLiI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJSYW5kIFRUTCJ9ID0gJ0F1dGhlbnRpZml6aWVydW5ncy1UaW1lb3V0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IlRpbWUtdG8tbGl2ZSBmb3Igc3RhdGUgYW5kIG5vbmNlIGluIHNlY29uZHMuIERlZmF1bHQgaXMgJzMwMCcgKDUgbWluKS4ifSA9ICJMZWJlbnNkYXVlciBmw7xyIFN0YXRlIHVuZCBOb25jZSBadWZhbGxzd2VydGUgYmVpbSBMb2dpbi4gRGVyIERlZmF1bHQgaXMgJzMwMCcgKDUgTWluKS4iOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVld2F5J30gPSAnU3BpZWxyYXVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IlRpbWUgZHJpZnQgYWxsb3dhbmNlIGJldHdlZW4gc2VydmVycyB0byBiZSBhbGxvd2VkLiBEZWZhdWx0ICcyJyBzZWNvbmRzLiJ9ID0gJ1RvbGVyaWVydGUgWmVpdGFid2VpY2h1bmcgYmVpbSBBYmdsZWljaCB2b24gWmVpdHN0ZW1wZWxuIHZvbiB2ZXJzaWVkZW5lbiBTZXJ2ZXJuLiBEZXIgRGVmYXVsdCBXZXJ0IGlzdCAycy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsiU2tpcCJ9ID0gJ0RlYWt0aXZpZXJlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJWZXJpZnkgSG9zdG5hbWUifSA9ICdBa3RpdmllcmVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IlZlcmlmeSBDZXJ0aWZpY2F0ZXMifSA9ICdBa3RpdmllcmVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IlByb2ZpbGUgJXMgY291bGQgbm90IGJlIGRlbGV0ZWQgLSBkbyB5b3UgaGF2ZSBhbnkgRnVuY3Rpb25hbCBBY2NvdW50cyByZWZlcmVuY2luZyB0aGlzIFByb2ZpbGU/In0gPSAiUHJvZmlsICVzIGtvbm50ZSBuaWNodCBnZWzDtnNjaHQgd2VyZGVuLiBTaW5kIG5vY2ggRnVua3Rpb25hbGUgQWNjb3VudHMga29uZmlndXJpZXJ0LCBkaWUgZGllc2VzIFByb2ZpbCB2ZXJ3ZW5kZW4/IjsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57IlByb2ZpbGUgJXMgZGVsZXRlZCEifSA9ICJQcm9maWwgJXMgZ2Vsw7ZzY2h0LiI7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyJFcnJvciBjcmVhdGluZy91cGRhdGluZyBQcm9maWxlICVzISJ9ID0gIkZlaGxlciBiZWltIEVyc3RlbGxlbi9CZWFyYmVpdGVuIGRlcyBQcm9maWxzICVzLiI7CgogICAgIyBBZG1pbk9JRENQcm9maWxlcy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvZmlsZSBOYW1lIGlzIG1pc3NpbmchJ30gPSAnUHJvZmlsIE5hbWUgZmVobHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb3ZpZGVyIG1ldGFkYXRhIHVybCBpcyBtaXNzaW5nJ30gPSAnRGVyIFVSTCB6dSBkZW4gUHJvdmlkZXIgTWV0YWRhdGVuIGZlaGx0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm92aWRlciBjbGllbnQgaWQgaXMgbWlzc2luZyEnfSA9ICdEaWUgQ2xpZW50IElEIGZlaGx0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm92aWRlciBjbGllbnQgc2VjcmV0IGlzIG1pc3NpbmchJ30gPSAnRGFzIENsaWVudCBTZWNyZXQgZmVodGwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2ZpbGUgTmFtZSBpcyB0YWtlbiEnfSA9ICdEZXIgUHJvZmlsIE5hbWUgaXN0IGJlcmVpdHMgdmVyZ2ViZW4uJzsKCiAgICAjIEFkbWluR2VuZXJpY0ludGVyZmFjZVRyYW5zcG9ydEhUVFBSRVNULnR0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPQXV0aDIgRnVuY3Rpb25hbCBBY2NvdW50J30gPSAnT0F1dGgyIEtvbnRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCB0aGUnfSA9ICdBdXN3YWhsIGRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBY2NvdW50IHRvIHVzZSBmb3IgT0F1dGgyIGF1dGhlbnRpY2F0aW9uLid9ID0gJ0tvbnRvcyBmw7xyIGRpZSBPQXV0aDIgQXV0aGVudGlmaXppZXJ1bmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09BdXRoIEZ1bmN0aW9uYWwgQWNjb3VudHMnfSA9ICdPQXV0aCBGdW5rdGlvbmFsZSBBY2NvdW50cyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGdW5jdGlvbmFsIEFjY291bnQgYW5kIFRva2VuIE1hbmFnZW1lbnQuJ30gPSAnRnVua3Rpb25hbGUgQWNjb3VudCB1bmQgT0F1dGggVG9rZW5zIHZlcndhbHRlbi4nOwoKICAgICMgU3lzQ29uZiB4bWwKCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPSURDIFByb2ZpbGUgTWFuYWdlbWVudCd9ID0gJ09JREMgUHJvZmlsIFZlcndhbHR1bmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIE9wZW5kSUQgQ29ubmVjdCBPQXV0aDIgUHJvZmlsZXMuJ30gPSAnT3BlbklEIENvbm5lY3QgUHJvZmlsZSBiZWFyYmVpdGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09BdXRoIEZ1bmN0aW9uYWwgQWNjb3VudHMnfSA9ICdPQXV0aCBGdW5rdGlvbmFsZSBBY2NvdW50cyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGdW5jdGlvbmFsIEFjY291bnQgYW5kIFRva2VuIE1hbmFnZW1lbnQuJ30gPSAnRnVua3Rpb25hbGUgQWNjb3VudHMgdW5kIE9BdXRoMiBUb2tlbnMnOwp9CgoxOwo=</File>
        <File Location="Kernel/Modules/AdminOAuthTokenStore.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWRtaW5PQXV0aFRva2VuU3RvcmU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSAgICAgICAgICAgICAgcXcoVHJhbnNsYXRhYmxlKTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkQ29uZmlnT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICRMYW5ndWFnZU9iamVjdCAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Okxhbmd1YWdlJyk7CiAgICBteSAkTG9nT2JqZWN0ICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJENhY2hlT2JqZWN0ICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpOwogICAgbXkgJFBhcmFtT2JqZWN0ICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRUb2tlblJlcG9zaXRvcnkgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5SZXBvc2l0b3J5Jyk7CiAgICBteSAkVG9rZW5Qcm92aWRlciAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuUHJvdmlkZXInKTsKICAgIG15ICRGdW5jdGlvbmFsQWNjb3VudHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6RnVuY3Rpb25hbEFjY291bnRzJyk7CiAgICBteSAkQ29uZmlndXJhdGlvbiAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkNvbmZpZ3VyYXRpb24nKTsKICAgIG15ICRMYXlvdXRPYmplY3QgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgbXkgJUVycm9ycyA9ICgpOwoKICAgIG15ICRQcm9maWxlcyA9ICRDb25maWd1cmF0aW9uLT5HZXRPQXV0aFByb2ZpbGVzKCk7CgogICAgbXkgJEhhc1Byb2ZpbGVzID0gc2NhbGFyIEAkUHJvZmlsZXM7CgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBBZGRJbnZva2VyCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkSW52b2tlcicgKSB7CgogICAgICAgIG15ICVHZXRQYXJhbSA9ICgpOwoKICAgICAgICAkR2V0UGFyYW17QWNjb3VudE5hbWV9ICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQWNjb3VudE5hbWUnICk7CiAgICAgICAgJEdldFBhcmFte0dyYW50VHlwZX0gICAgID0gJ2NsaWVudF9jcmVkZW50aWFscyc7CiAgICAgICAgJEdldFBhcmFte0ludm9rZXJTY29wZXN9ID0gJ29wZW5pZCBvZmZsaW5lX2FjY2Vzcyc7CiAgICAgICAgJEdldFBhcmFte1Rva2VuVHlwZX0gICAgID0gJ2FjY2Vzc190b2tlbic7CgogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkU2VsZi0+X0VkaXRJbnZva2VyKAogICAgICAgICAgICBBY3Rpb24gPT4gJ0FkZEludm9rZXInLAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pbk9BdXRoVG9rZW5TdG9yZScsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIEVkaXQKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdFZGl0JyApIHsKCiAgICAgICAgbXkgJUdldFBhcmFtID0gKCk7CiAgICAgICAgJEdldFBhcmFte0FjY291bnROYW1lfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdBY2NvdW50TmFtZScgKTsKCiAgICAgICAgbXkgJEFjY291bnQgPSAkRnVuY3Rpb25hbEFjY291bnRzLT5HZXRBY2NvdW50KCBOYW1lID0+ICRHZXRQYXJhbXtBY2NvdW50TmFtZX0gKTsKCiAgICAgICAgJEdldFBhcmFte1Byb3ZpZGVySUR9ID0gJEFjY291bnQtPntPSURDUHJvZmlsZUlEfTsKCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgICAgICAkR2V0UGFyYW17R3JhbnRUeXBlfSA9ICRBY2NvdW50LT57R3JhbnRUeXBlfTsKCiAgICAgICAgaWYgKCAkR2V0UGFyYW17R3JhbnRUeXBlfSBlcSAncGFzc3dvcmQnICkgewoKICAgICAgICAgICAgJEdldFBhcmFte1VzZXJuYW1lfSA9ICRBY2NvdW50LT57VXNlcm5hbWV9OwogICAgICAgICAgICAkR2V0UGFyYW17UGFzc3dvcmR9ID0gJEFjY291bnQtPntQYXNzd29yZH07CiAgICAgICAgfQoKICAgICAgICAkR2V0UGFyYW17SW52b2tlclNjb3Blc30gPSAkQWNjb3VudC0+e1Njb3BlfTsKICAgICAgICAkR2V0UGFyYW17UmVzb3VyY2VzfSAgICAgPSAkQWNjb3VudC0+e1Jlc291cmNlc307CiAgICAgICAgJEdldFBhcmFte1Jlc291cmNlUGFyYW19ID0gJEFjY291bnQtPntSZXNvdXJjZVBhcmFtTmFtZX07CiAgICAgICAgJEdldFBhcmFte1Rva2VuVHlwZX0gICAgID0gJEFjY291bnQtPntUb2tlblR5cGV9OwoKICAgICAgICAkU2VsZi0+X0VkaXRJbnZva2VyKAogICAgICAgICAgICBBY3Rpb24gPT4gJ0VkaXRJbnZva2VyJywKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICk7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdBY3Rpb25EZWxldGUnLAogICAgICAgICAgICBEYXRhID0+IFwlR2V0UGFyYW0KICAgICAgICApOwoKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pbk9BdXRoVG9rZW5TdG9yZScsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIEFkZEludm9rZXJBY3Rpb24gYW5kIEVkaXRJbnZva2VyQWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkSW52b2tlckFjdGlvbicgfHwgJFNlbGYtPntTdWJhY3Rpb259IGVxICdFZGl0SW52b2tlckFjdGlvbicgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgICMgZmV0Y2ggYW5kIHZhbGlkYXRlIHBhcmFtZXRlcnMKICAgICAgICBteSAlR2V0UGFyYW0gPSAoKTsKCiAgICAgICAgJEdldFBhcmFte0FjY291bnROYW1lfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdBY2NvdW50TmFtZScgKTsKCiAgICAgICAgaWYgKCAhJEdldFBhcmFte0FjY291bnROYW1lfSApIHsKICAgICAgICAgICAgJEVycm9yc3tBY2NvdW50TmFtZVNlcnZlckVycm9yfSA9ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCdBY2NvdW50IE5hbWUgaXMgbWlzc2luZyEnKTsKICAgICAgICB9CgogICAgICAgICRHZXRQYXJhbXtQcm92aWRlcklEfSAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdQcm92aWRlcklEJyApOwogICAgICAgICRHZXRQYXJhbXtHcmFudFR5cGV9ICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdHcmFudFR5cGUnICk7CiAgICAgICAgJEdldFBhcmFte1VzZXJuYW1lfSAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1VzZXJuYW1lJyApOwogICAgICAgICRHZXRQYXJhbXtQYXNzd29yZH0gICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdQYXNzd29yZCcgKTsKICAgICAgICAkR2V0UGFyYW17VG9rZW5UeXBlfSAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVG9rZW5UeXBlJyApOwogICAgICAgICRHZXRQYXJhbXtJbnZva2VyU2NvcGVzfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdJbnZva2VyU2NvcGVzJyApOwogICAgICAgICRHZXRQYXJhbXtSZXNvdXJjZXN9ICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdSZXNvdXJjZXMnICk7CiAgICAgICAgJEdldFBhcmFte1Jlc291cmNlUGFyYW19ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Jlc291cmNlUGFyYW0nICk7CgogICAgICAgIGlmICggJEdldFBhcmFte0dyYW50VHlwZX0gZXEgJ3Bhc3N3b3JkJyApIHsKICAgICAgICAgICAgaWYgKCAhJEdldFBhcmFte1VzZXJuYW1lfSAmJiAkR2V0UGFyYW17RW5hYmxlSW52b2tlcn0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3Jze1VzZXJuYW1lU2VydmVyRXJyb3J9ID0gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoJ1VzZXJuYW1lIGlzIHJlcXVpcmVkIScpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggISRHZXRQYXJhbXtQYXNzd29yZH0gJiYgJEdldFBhcmFte0VuYWJsZUludm9rZXJ9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3tQYXNzd29yZFNlcnZlckVycm9yfSA9ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCdQYXNzd29yZCBpcyByZXF1aXJlZCEnKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBwcmV2ZW50IGR1cGxpY2F0ZSBhY2NvdW50IG5hbWVzCiAgICAgICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZEludm9rZXJBY3Rpb24nICkgewoKICAgICAgICAgICAgbXkgJEV4aXN0aW5nQWNjb3VudCA9ICRGdW5jdGlvbmFsQWNjb3VudHMtPkdldEFjY291bnQoIE5hbWUgPT4gJEdldFBhcmFte0FjY291bnROYW1lfSApOwoKICAgICAgICAgICAgaWYgKCRFeGlzdGluZ0FjY291bnQpIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7QWNjb3VudE5hbWVTZXJ2ZXJFcnJvcn0gPSAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSgnQWNjb3VudCBOYW1lIGlzIHRha2VuIScpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHJldHVybiBpZiB3ZSBoYXZlIGZvcm0gdmFsaWRhdGUgZXJyb3JzCiAgICAgICAgaWYgKCBzY2FsYXIga2V5cyAlRXJyb3JzICkgewoKICAgICAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKCiAgICAgICAgICAgICRTZWxmLT5fRWRpdEludm9rZXIoCiAgICAgICAgICAgICAgICBBY3Rpb24gPT4gJFNlbGYtPntTdWJhY3Rpb259IGVxICdBZGRJbnZva2VyQWN0aW9uJyA/ICdBZGRJbnZva2VyJyA6ICdFZGl0SW52b2tlcicsCiAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICAlRXJyb3JzLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluT0F1dGhUb2tlblN0b3JlJywKICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICAgICApOwogICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICAgICAgfQoKICAgICAgICAjIGRvIHNhdmUgY29uZmlnCgogICAgICAgICMgY2xlYW4gY2FjaGUgYW5kIGRhdGFiYXNlCiAgICAgICAgJFRva2VuUmVwb3NpdG9yeS0+RGVsZXRlVG9rZW4oCiAgICAgICAgICAgIEFjY291bnROYW1lID0+ICRHZXRQYXJhbXtBY2NvdW50TmFtZX0sCiAgICAgICAgKTsKCiAgICAgICAgJFRva2VuUHJvdmlkZXItPkVtcHR5Q2FjaGUoCiAgICAgICAgICAgIEFjY291bnROYW1lID0+ICRHZXRQYXJhbXtBY2NvdW50TmFtZX0KICAgICAgICApOwoKICAgICAgICAjIGFjdHVhbGx5IHBlcnNpc3QgdGhlIGRhdGEgaW4gREIKICAgICAgICBteSAkU3VjY2VzcyA9ICRGdW5jdGlvbmFsQWNjb3VudHMtPlNhdmVBY2NvdW50KAogICAgICAgICAgICBOYW1lICAgICAgICAgICAgICA9PiAkR2V0UGFyYW17QWNjb3VudE5hbWV9LAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgIE9JRENQcm9maWxlSUQgICAgID0+ICRHZXRQYXJhbXtQcm92aWRlcklEfSwKICAgICAgICAgICAgU2NvcGUgICAgICAgICAgICAgPT4gJEdldFBhcmFte0ludm9rZXJTY29wZXN9LAogICAgICAgICAgICBSZXNvdXJjZVBhcmFtTmFtZSA9PiAkR2V0UGFyYW17UmVzb3VyY2VQYXJhbX0sCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICApOwoKICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKCiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJFcnJvciBjcmVhdGluZy91cGRhdGluZyBPQXV0aDIgQWNjb3VudCAiIC4gJEdldFBhcmFte0FjY291bnROYW1lfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgSW5mbyAgICAgPT4gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoICJFcnJvciBjcmVhdGluZy91cGRhdGluZyAlcyEiLCAkR2V0UGFyYW17QWNjb3VudE5hbWV9ICksCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHBvc3Qgc2F2ZSBhY3Rpb25zIC0gYXR0ZW1wdCB0byByZWZyZXNoIHRva2VuCiAgICAgICAgaWYgKCAkR2V0UGFyYW17R3JhbnRUeXBlfSBlcSAnYXV0aG9yaXphdGlvbl9jb2RlJyApIHsKCiAgICAgICAgICAgICMgZm9yIGF1dGhvcml6YXRpb25fY29kZSByZWRpcmVjdCB0aGUgYnJvd3NlcgogICAgICAgICAgICBteSAkQXV0aFVSTCA9ICRUb2tlblByb3ZpZGVyLT5HZXRBdXRoVVJMKAogICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgQWNjb3VudE5hbWUgPT4gJEdldFBhcmFte0FjY291bnROYW1lfSwKICAgICAgICAgICAgICAgIFByb21wdCAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBTdWJhY3Rpb24gICA9PiAkU2VsZi0+e1N1YmFjdGlvbn0sCiAgICAgICAgICAgICAgICBSZWRpcmVjdFVSSSA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0h0dHBUeXBlJykKICAgICAgICAgICAgICAgICAgICAuICc6Ly8nCiAgICAgICAgICAgICAgICAgICAgLiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZRRE4nKQogICAgICAgICAgICAgICAgICAgIC4gJy8nCiAgICAgICAgICAgICAgICAgICAgLiAkQ29uZmlnT2JqZWN0LT5HZXQoJ1NjcmlwdEFsaWFzJykKICAgICAgICAgICAgICAgICAgICAuICdpbmRleC5wbD9BY3Rpb249QWRtaW5PQXV0aFRva2VuU3RvcmUmU3ViYWN0aW9uPU9BdXRoJwogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCRBdXRoVVJMKSB7CgogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgICAgIEV4dFVSTCA9PiAkQXV0aFVSTAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICMgb2ggYm95LCB3ZSBjYW5ub3QgZXZlbnQgZ2VuZXJhdGUgYSB2YWxpZCByZWRpcmVjdCB1cmwuIGludmFsaWQgdXNzZXIgY29uZmlnIQoKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlVuYWJsZSB0byBnZW5lcmF0ZSBPSURDIFByb3ZpZGVyIEF1dGhlbnRpY2F0aW9uIFVSTCBmb3IgTG9naW4uIEludmFsaWQgT0lDRCBDb25maWd1cmF0aW9uISIsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgICAgIEluZm8gICAgID0+ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCdVbmFibGUgdG8gZ2VuZXJhdGUgT0lEQyBQcm92aWRlciBBdXRoZW50aWNhdGlvbiBVUkwgZm9yIExvZ2luLiBJbnZhbGlkIE9JQ0QgQ29uZmlndXJhdGlvbiEnKSwKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRTZWxmLT5fRWRpdEludm9rZXIoCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uID0+ICdFZGl0SW52b2tlcicsCiAgICAgICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgICAgIFRva2VuRXJyb3IgPT4gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoJ1VuYWJsZSB0byBnZW5lcmF0ZSBPSURDIFByb3ZpZGVyIEF1dGhlbnRpY2F0aW9uIFVSTCBmb3IgTG9naW4uIEludmFsaWQgT0lDRCBDT25maWd1cmF0aW9uIScpLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdBY3Rpb25EZWxldGUnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gXCVHZXRQYXJhbQogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluT0F1dGhUb2tlblN0b3JlJywKICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgICAgICAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgcG9zdCBzYXZlIGFjdGlvbiBpZiBncmFudF90eXBlIGlzIG5vdCAnYXV0aG9yaXphdGlvbl9jb2RlJwogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBqdXN0IGZldGNoIHRoZSB0b2tlbgogICAgICAgICAgICBteSAkVG9rZW5SZXN1bHQgPSAkVG9rZW5Qcm92aWRlci0+RmV0Y2goIEFjY291bnROYW1lID0+ICRHZXRQYXJhbXtBY2NvdW50TmFtZX0gKTsKCiAgICAgICAgICAgICMgb2ggZ2lybCwgZmV0Y2ggdG9rZW4gZmFpbGVkLCBpbnZhbGlkIHVzZXIgY29uZmlnIQogICAgICAgICAgICBpZiAoICEkVG9rZW5SZXN1bHQtPntTdWNjZXNzfSApIHsKCiAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICRUb2tlblJlc3VsdC0+e0Vycm9yfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbXkgJE5vdGlmaWNhdGlvbiA9ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgICAgICAgICBJbmZvICAgICA9PiAkVG9rZW5SZXN1bHQtPntFcnJvcn0sCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJwogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICROb3RpZmljYXRpb247CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uRGVsZXRlJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IFwlR2V0UGFyYW0KICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgJFNlbGYtPl9FZGl0SW52b2tlcigKICAgICAgICAgICAgICAgICAgICBBY3Rpb24gPT4gJ0VkaXRJbnZva2VyJywKICAgICAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICAgICAgVG9rZW5FcnJvciA9PiAkVG9rZW5SZXN1bHQtPntFcnJvcn0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5PQXV0aFRva2VuU3RvcmUnLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgICAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBEZWxldGUKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdEZWxldGUnICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAkQWNjb3VudE5hbWUgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQWNjb3VudE5hbWUnICkgfHwgJyc7CgogICAgICAgIG15ICRTdWNjZXNzID0gJEZ1bmN0aW9uYWxBY2NvdW50cy0+RGVsZXRlQWNjb3VudCgKICAgICAgICAgICAgTmFtZSAgID0+ICRBY2NvdW50TmFtZSwKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoJFN1Y2Nlc3MpIHsKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgICAgICBJbmZvICAgICA9PiAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSggIkFjY291bnQgJXMgZGVsZXRlZCEiLCAkQWNjb3VudE5hbWUgKSwKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdTdWNjZXNzJwogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJGYWlsZWQgdG8gZGVsZXRlIE9BdXRoMiBBY2NvdW50ICIgLiAkQWNjb3VudE5hbWUsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgUmVmcmVzaAogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1JlZnJlc2gnICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAkQWNjb3VudE5hbWUgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQWNjb3VudE5hbWUnICkgfHwgJyc7CgogICAgICAgIG15ICRBY2NvdW50ID0gJEZ1bmN0aW9uYWxBY2NvdW50cy0+R2V0QWNjb3VudCggTmFtZSA9PiAkQWNjb3VudE5hbWUgKTsKCiAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSgkQWNjb3VudCkgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEdyYW50VHlwZSA9ICRBY2NvdW50LT57R3JhbnRUeXBlfTsKCiAgICAgICAgICAgICMgY2xlYW4gY2FjaGUgYW5kIGRhdGFiYXNlCiAgICAgICAgICAgICRUb2tlblJlcG9zaXRvcnktPkRlbGV0ZVRva2VuKAogICAgICAgICAgICAgICAgQWNjb3VudE5hbWUgPT4gJEFjY291bnROYW1lLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJFRva2VuUHJvdmlkZXItPkVtcHR5Q2FjaGUoCiAgICAgICAgICAgICAgICBBY2NvdW50TmFtZSA9PiAkQWNjb3VudE5hbWUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGF1dGhvcml6YXRpb25fY29kZSB1c2VzIGJyb3dzZXIgYmFzZWQgZmxvdwogICAgICAgICAgICAjIHJlZGlyZWN0IHRoZSBicm93c2VyIHRvIHRoZSBpZGVudGl0eSBwcm92aWRlcgogICAgICAgICAgICAjIGxvZ2luIHBhZ2UKICAgICAgICAgICAgaWYgKCAkR3JhbnRUeXBlIGVxICdhdXRob3JpemF0aW9uX2NvZGUnICkgewoKICAgICAgICAgICAgICAgIG15ICRBdXRoVVJMID0gJFRva2VuUHJvdmlkZXItPkdldEF1dGhVUkwoCiAgICAgICAgICAgICAgICAgICAgQWNjb3VudE5hbWUgPT4gJEFjY291bnROYW1lLAogICAgICAgICAgICAgICAgICAgIFByb21wdCAgICAgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgU3ViYWN0aW9uICAgPT4gJ1JlZnJlc2gnLAogICAgICAgICAgICAgICAgICAgIFJlZGlyZWN0VVJJID0+ICRDb25maWdPYmplY3QtPkdldCgnSHR0cFR5cGUnKQogICAgICAgICAgICAgICAgICAgICAgICAuICc6Ly8nCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJENvbmZpZ09iamVjdC0+R2V0KCdGUUROJykKICAgICAgICAgICAgICAgICAgICAgICAgLiAnLycKICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ29uZmlnT2JqZWN0LT5HZXQoJ1NjcmlwdEFsaWFzJykKICAgICAgICAgICAgICAgICAgICAgICAgLiAnaW5kZXgucGw/QWN0aW9uPUFkbWluT0F1dGhUb2tlblN0b3JlJlN1YmFjdGlvbj1PQXV0aCcKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgICAgIEV4dFVSTCA9PiAkQXV0aFVSTAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBmb3IgY2xpZW50X2NyZWRlbnRpYWxzIGFuZCBwYXNzd29yZCBmbG93cywKICAgICAgICAgICAgIyB3ZSBjYW4ganVzdCBmZXRjaCBhbiBuZXcgdG9rZW4gcmlnaHQgbm93CiAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgIG15ICRUb2tlblJlc3VsdCA9ICRUb2tlblByb3ZpZGVyLT5GZXRjaCggQWNjb3VudE5hbWUgPT4gJEFjY291bnROYW1lICk7CgogICAgICAgICAgICAgICAgaWYgKCAkVG9rZW5SZXN1bHQtPntTdWNjZXNzfSApIHsKCiAgICAgICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgICAgICAgICAgICAgIEluZm8gICAgID0+ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCAiVG9rZW4gJXMgdXBkYXRlZCEiLCAkQWNjb3VudE5hbWUgKSwKICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ1N1Y2Nlc3MnCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgICAgICAkVG9rZW5SZXBvc2l0b3J5LT5EZWxldGVUb2tlbigKICAgICAgICAgICAgICAgICAgICAgICAgQWNjb3VudE5hbWUgPT4gJEFjY291bnROYW1lLAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiRmFpbGVkIHRvIHJlZnJlc2ggT0F1dGgyIFRva2VuIGZvciBBY2NvdW50ICIgLiAkQWNjb3VudE5hbWUsCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgICAgICAgICAgICAgIEluZm8gICAgID0+ICRUb2tlblJlc3VsdC0+e0Vycm9yfSwKICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJwogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBvYXV0aCBhY3Rpb24gLSBjYWxsYmFjayB3aGVuIHVzaW5nIGF1dGhvcml6YXRpb25fY29kZQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ09BdXRoJyApIHsKCiAgICAgICAgbXkgJFN0YXRlICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdzdGF0ZScgKTsKICAgICAgICBteSAkQ29kZSAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ2NvZGUnICk7CiAgICAgICAgbXkgJElzc3VlciA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdpc3MnICk7CgogICAgICAgIG15ICRDYWNoZWRTdGF0ZSA9ICRDYWNoZU9iamVjdC0+R2V0KAogICAgICAgICAgICBUeXBlID0+ICdUb2tlblByb3ZpZGVyJywKICAgICAgICAgICAgS2V5ICA9PiAiVG9rZW5Qcm92aWRlcjo6T0F1dGgyU3RhdGU6OiRTdGF0ZSIsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhJENhY2hlZFN0YXRlICkgewoKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkludmFsaWQgT0F1dGggU3RhdGUgJFN0YXRlIGZyb20gJElzc3VlciIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm4gam9pbiAnJywKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkhlYWRlciggVGl0bGUgPT4gJ0Vycm9yJyApLAogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+V2FybmluZygKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCdJbnZhbGlkIE9BdXRoIFN0YXRlIScpCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICAgICAgfQoKICAgICAgICBteSAkQWNjb3VudE5hbWUgPSAkQ2FjaGVkU3RhdGUtPntBY2NvdW50TmFtZX07CiAgICAgICAgbXkgJFJlZGlyZWN0VVJMID0gJENhY2hlZFN0YXRlLT57UmVkaXJlY3RVUkx9OwogICAgICAgIG15ICRTdWJhY3Rpb24gICA9ICRDYWNoZWRTdGF0ZS0+e1N1YmFjdGlvbn07CgogICAgICAgIG15ICRBY2NvdW50ID0gJEZ1bmN0aW9uYWxBY2NvdW50cy0+R2V0QWNjb3VudCggTmFtZSA9PiAkQWNjb3VudE5hbWUgKTsKCiAgICAgICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJEFjY291bnQpICkKICAgICAgICB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJJbnZhbGlkIEFjY291bnQgZm9yIFRva2VuOiAiIC4gJEFjY291bnROYW1lLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuIGpvaW4gJycsCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoIFRpdGxlID0+ICdFcnJvcicgKSwKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPldhcm5pbmcoCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSggIkludmFsaWQgQWNjb3VudCAlcyBmb3IgVG9rZW4hIiwgJEFjY291bnROYW1lICkKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgICAgICB9CgogICAgICAgICMgdmFsaWRhdGUgdGhlIGlzc3VlcgogICAgICAgIGlmICgkSXNzdWVyKSB7CiAgICAgICAgICAgIG15ICRQcm92aWRlcklzc3VlciA9ICRGdW5jdGlvbmFsQWNjb3VudHMtPkdldElzc3VlcigKICAgICAgICAgICAgICAgIE5hbWUgPT4gJEFjY291bnROYW1lLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAkSXNzdWVyIG5lICRQcm92aWRlcklzc3VlciApIHsKCiAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJJbnZhbGlkIElzc3VlciAkSXNzdWVyIGZvciBBY2NvdW50ICRBY2NvdW50TmFtZSIsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIHJldHVybiBqb2luICcnLAogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkhlYWRlciggVGl0bGUgPT4gJ0Vycm9yJyApLAogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPldhcm5pbmcoCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoICJJbnZhbGlkIElzc3VlciAlcyBmb3IgVG9rZW4gJXMhIiwgJElzc3VlciwgJEFjY291bnROYW1lICkKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBteSAkVG9rZW5SZXN1bHQgPSAkVG9rZW5Qcm92aWRlci0+RmV0Y2hUb2tlbigKICAgICAgICAgICAgQWNjb3VudE5hbWUgPT4gJEFjY291bnROYW1lLAogICAgICAgICAgICBDb2RlICAgICAgICA9PiAkQ29kZSwKICAgICAgICAgICAgUmVkaXJlY3RVUkwgPT4gJFJlZGlyZWN0VVJMLAogICAgICAgICk7CgogICAgICAgIGlmICggJFRva2VuUmVzdWx0LT57U3VjY2Vzc30gKSB7CgogICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgICAgIEluZm8gICAgID0+ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCAiVG9rZW4gJXMgdXBkYXRlZCEiLCAkQWNjb3VudE5hbWUgKSwKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdTdWNjZXNzJwogICAgICAgICAgICApOwoKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiRXJyb3IgZmV0Y2hpbmcgaW5pdGlhbCBUb2tlbiBmb3IgJEFjY291bnROYW1lISIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgSW5mbyAgICAgPT4gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoIkVycm9yIGZldGNoaW5nIGluaXRpYWwgVG9rZW4gZm9yICRBY2NvdW50TmFtZSEiKSwKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uRGVsZXRlJywKICAgICAgICAgICAgICAgIERhdGEgPT4gXCUkQ2FjaGVkU3RhdGUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkU2VsZi0+X0VkaXRJbnZva2VyKAogICAgICAgICAgICAgICAgJSRDYWNoZWRTdGF0ZSwKICAgICAgICAgICAgICAgIFRva2VuRXJyb3IgPT4gJFRva2VuUmVzdWx0LT57RXJyb3J9LAogICAgICAgICAgICAgICAgQWN0aW9uICAgICA9PiAnRWRpdEludm9rZXInLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluT0F1dGhUb2tlblN0b3JlJywKICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJSRDYWNoZWRTdGF0ZSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgICAgIH0KICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHNob3cgb3ZlcnZpZXcgYWN0aW9ucyAtIGFzc2VtYmxlIEFjY291bnQgT3ZlcnZpZXcgZGF0YQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3JywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgSGFzUHJvZmlsZXMgPT4gJEhhc1Byb2ZpbGVzLAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgfQogICAgKTsKCiAgICBpZiAoJEhhc1Byb2ZpbGVzKSB7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdBY3Rpb25BZGRJbnZva2VyJyApOwogICAgfQoKICAgICMgR2V0IExpc3Qgb2YgcmVmcmVzaGFibGUgVG9rZW5zIGZyb20gREIKICAgIG15ICRHZW5lcmljSW50ZXJmYWNlVG9rZW5zID0gJFRva2VuUmVwb3NpdG9yeS0+R2V0TGlzdCggVG9rZW5UeXBlID0+ICdhbGwnICk7CgogICAgIyBCdWlsZCBhIGxvb2t1cCBpbmRleCBhcyB3ZSBtYXAgVG9rZW5zIHRvIHRoZWlyCiAgICAjIGNvbmZpZ3VyZWQgRnVuY3Rpb25hbCBBY2NvdW50cwogICAgbXkgJUdlbmVyaWNJbnRlcmZhY2VUb2tlbkxvb2t1cCA9ICgpOwoKICAgIGZvciBteSAkR2VuZXJpY0ludGVyZmFjZVRva2VuIChAJEdlbmVyaWNJbnRlcmZhY2VUb2tlbnMpIHsKCiAgICAgICAgaWYgKCAhZXhpc3RzICRHZW5lcmljSW50ZXJmYWNlVG9rZW5Mb29rdXB7ICRHZW5lcmljSW50ZXJmYWNlVG9rZW4tPntBY2NvdW50SUR9IH0gKQogICAgICAgIHsKICAgICAgICAgICAgJEdlbmVyaWNJbnRlcmZhY2VUb2tlbkxvb2t1cHsgJEdlbmVyaWNJbnRlcmZhY2VUb2tlbi0+e0FjY291bnRJRH0gfSA9IHt9OwogICAgICAgIH0KCiAgICAgICAgJEdlbmVyaWNJbnRlcmZhY2VUb2tlbkxvb2t1cHsgJEdlbmVyaWNJbnRlcmZhY2VUb2tlbi0+e0FjY291bnRJRH0gfS0+eyAkR2VuZXJpY0ludGVyZmFjZVRva2VuLT57VG9rZW5UeXBlfSB9ID0gJEdlbmVyaWNJbnRlcmZhY2VUb2tlbjsKICAgIH0KCiAgICAjIFByZXBhcmUgdmlldyBkYXRhCiAgICBteSBAQWNjb3VudHNGb3JEaXNwbGF5OwoKICAgICMgR2V0IE9BdXRoIEludm9rZXIgYWNjb3VudHMgZnJvbSBDb25maWcKICAgIG15ICRJbnZva2VyQWNjb3VudHMgPSAkRnVuY3Rpb25hbEFjY291bnRzLT5HZXRBY2NvdW50cygpOwoKICAgIE9BVVRIQUNDT1VOVDoKICAgIGZvciBteSAkQWNjb3VudCAoQCRJbnZva2VyQWNjb3VudHMpIHsKCiAgICAgICAgbXkgJEFjY291bnROYW1lID0gJEFjY291bnQtPntOYW1lfTsKICAgICAgICBteSAkQWNjb3VudElEICAgPSAkQWNjb3VudC0+e0FjY291bnRJRH07CgogICAgICAgIG15ICRHcmFudFR5cGUgPSAkQWNjb3VudC0+e0dyYW50VHlwZX07CiAgICAgICAgbXkgJEhhc1Rva2VuICA9IGV4aXN0cyAkR2VuZXJpY0ludGVyZmFjZVRva2VuTG9va3VweyRBY2NvdW50SUR9OwogICAgICAgIG15ICRDb3B5VG9rZW4gPSAkSGFzVG9rZW4gPyAnQ29weVRva2VuJyA6ICcnOwoKICAgICAgICBteSAkVG9rZW4gPSAkR2VuZXJpY0ludGVyZmFjZVRva2VuTG9va3VweyRBY2NvdW50SUR9LT57cmVmcmVzaF90b2tlbn07CiAgICAgICAgbXkgJFRpbWUgID0gIiI7CgogICAgICAgIGlmICggJFRva2VuICYmICRUb2tlbi0+e0V4cGlyZXNBdH0gKSB7CgogICAgICAgICAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgICAgIEVwb2NoID0+ICRUb2tlbi0+e0V4cGlyZXNBdH0sCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICk7CgogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREYXRlVGltZU9iamVjdC0+VG9UaW1lWm9uZSgKICAgICAgICAgICAgICAgIFRpbWVab25lID0+ICRTZWxmLT57VXNlclRpbWVab25lfQogICAgICAgICAgICApOwoKICAgICAgICAgICAgJFRpbWUgPSAkRGF0ZVRpbWVPYmplY3QtPkZvcm1hdCggRm9ybWF0ID0+ICclWS0lbS0lZCAlSDolTTolUycgKTsKICAgICAgICB9CgogICAgICAgICRIYXNUb2tlbiA9ICRIYXNUb2tlbiA/ICdZZXMnIDogJ05vJzsKCiAgICAgICAgbXkgJEFjY291bnREYXRhID0gewogICAgICAgICAgICBBY2NvdW50TmFtZSA9PiAkQWNjb3VudE5hbWUsCiAgICAgICAgICAgIFByb2ZpbGVOYW1lID0+ICRBY2NvdW50LT57T0lEQ1Byb2ZpbGV9LT57UHJvdmlkZXJTZXR0aW5nc30tPntOYW1lfSwKICAgICAgICAgICAgRmxvdyAgICAgICAgPT4gJEdyYW50VHlwZSwKICAgICAgICAgICAgVG9rZW5JRCAgICAgPT4gJFRva2VuLT57VG9rZW5JRH0sCiAgICAgICAgICAgIFRva2VuICAgICAgID0+ICRUb2tlbi0+e1Rva2VufSwKICAgICAgICAgICAgSGFzVG9rZW4gICAgPT4gJEhhc1Rva2VuLAogICAgICAgICAgICBDb3B5VG9rZW4gICA9PiAkQ29weVRva2VuLAogICAgICAgICAgICBOZWVkVG9rZW4gICA9PiAkR3JhbnRUeXBlIGVxICdhdXRob3JpemF0aW9uX2NvZGUnICYmICEkSGFzVG9rZW4gPyAnRXJyb3InIDogJycsCiAgICAgICAgICAgIEV4cGlyZXNBdCAgID0+ICRUaW1lLAogICAgICAgICAgICBJc0ludm9rZXIgICA9PiAxLAogICAgICAgIH07CgogICAgICAgIHB1c2ggQEFjY291bnRzRm9yRGlzcGxheSwgJEFjY291bnREYXRhOwogICAgfQoKICAgIG15ICRMaXN0U2l6ZSA9IGtleXMgQEFjY291bnRzRm9yRGlzcGxheTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlld0hlYWRlcicsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIEFsbEl0ZW1zQ291bnQgPT4gJExpc3RTaXplLAogICAgICAgICAgICBIYXNQcm9maWxlcyAgID0+ICRIYXNQcm9maWxlcywKICAgICAgICAgICAgJUVycm9ycywKICAgICAgICB9LAogICAgKTsKCiAgICAjIGlmIHRoZXJlIGlzIGRhdGEgYXZhaWxhYmxlLCBpdCBpcyBzaG93bgogICAgaWYgKCRMaXN0U2l6ZSkgewoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdSZXN1bHQnLAogICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgKTsKCiAgICAgICAgZm9yIG15ICRBY2NvdW50IChAQWNjb3VudHNGb3JEaXNwbGF5KSB7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0Um93JywKICAgICAgICAgICAgICAgIERhdGEgPT4gJEFjY291bnQsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgb3RoZXJ3aXNlLCBhIG1lc3NhZ2UgaXMgZGlzcGxheWVkCiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9BY2NvdW50c0RlZmluZWQnLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pbk9BdXRoVG9rZW5TdG9yZScsCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKc3ViIF9FZGl0SW52b2tlciB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRPSURDQ29uZmlndXJhdGlvbiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpDb25maWd1cmF0aW9uJyk7CiAgICBteSAkT0lEQ1Byb2ZpbGVzICAgICAgPSAkT0lEQ0NvbmZpZ3VyYXRpb24tPkdldE9BdXRoUHJvZmlsZXMoKTsKCiAgICBteSAlUHJvZmlsZXM7CiAgICBmb3IgbXkgJFByb2ZpbGUgKEAkT0lEQ1Byb2ZpbGVzKSB7CgogICAgICAgICRQcm9maWxlc3sgJFByb2ZpbGUtPntQcm9maWxlSUR9IH0gPSAkUHJvZmlsZS0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57TmFtZX07CiAgICB9CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXcnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgJFBhcmFte1Byb3ZpZGVyTmFtZXN9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiBcJVByb2ZpbGVzLAogICAgICAgIE5hbWUgICAgICAgPT4gJ1Byb3ZpZGVySUQnLAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17UHJvdmlkZXJJRH0sCiAgICApOwoKICAgICRQYXJhbXtHcmFudFR5cGVzfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgPT4gWyAnY2xpZW50X2NyZWRlbnRpYWxzJywgJ3Bhc3N3b3JkJywgJ2F1dGhvcml6YXRpb25fY29kZScgXSwKICAgICAgICBOYW1lICAgICAgID0+ICdHcmFudFR5cGUnLAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17R3JhbnRUeXBlfSB8fCAnY2xpZW50X2NyZWRlbnRpYWxzJywKICAgICk7CgogICAgJFBhcmFte1Rva2VuVHlwZX0gICAgID0gJFBhcmFte1Rva2VuVHlwZX0gICAgIHx8ICdhY2Nlc3NfdG9rZW4nOwogICAgJFBhcmFte1Jlc291cmNlUGFyYW19ID0gJFBhcmFte1Jlc291cmNlUGFyYW19IHx8ICdyZXNvdXJjZSc7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdVcGRhdGVJbnZva2VyJywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgIHJldHVybiAxOwp9CgoxOwo=</File>
        <File Location="Kernel/Modules/AdminOIDCProfiles.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWRtaW5PSURDUHJvZmlsZXM7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSAgICAgICAgICAgICAgcXcoVHJhbnNsYXRhYmxlKTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkQ29uZmlnT2JqZWN0ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJExhbmd1YWdlT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpMYW5ndWFnZScpOwogICAgbXkgJExvZ09iamVjdCAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJENhY2hlT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyk7CiAgICBteSAkUGFyYW1PYmplY3QgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CiAgICBteSAkUHJvZmlsZVJlcG9zaXRvcnkgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6UHJvZmlsZVJlcG9zaXRvcnknKTsKICAgIG15ICRDb25maWd1cmF0aW9uICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpDb25maWd1cmF0aW9uJyk7CiAgICBteSAkTGF5b3V0T2JqZWN0ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgbXkgJUVycm9ycyA9ICgpOwoKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgQWRkUHJvZmlsZQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZFByb2ZpbGUnICkgewoKICAgICAgICBteSAlR2V0UGFyYW0gPSAkU2VsZi0+X0dldERlZmF1bHRzKCktPiUqOwoKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJFNlbGYtPl9FZGl0UHJvZmlsZSgKICAgICAgICAgICAgQWN0aW9uID0+ICdBZGRQcm9maWxlJywKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5PSURDUHJvZmlsZXMnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBFZGl0CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRWRpdCcgKSB7CgogICAgICAgIG15ICVHZXRQYXJhbSA9ICgpOwoKICAgICAgICAkR2V0UGFyYW17UHJvZmlsZU5hbWV9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Byb2ZpbGVOYW1lJyApOwogICAgICAgIG15ICRQcm9maWxlID0gJFByb2ZpbGVSZXBvc2l0b3J5LT5HZXRQcm9maWxlKCBOYW1lID0+ICRHZXRQYXJhbXtQcm9maWxlTmFtZX0gKTsKCiAgICAgICAgJEdldFBhcmFte1ZhbGlkSUR9ICAgICAgICAgICAgID0gJFByb2ZpbGUtPntWYWxpZH07CiAgICAgICAgJEdldFBhcmFte0NsaWVudElEfSAgICAgICAgICAgID0gJFByb2ZpbGUtPntDbGllbnRTZXR0aW5nc30tPntDbGllbnRJRH07CiAgICAgICAgJEdldFBhcmFte0NsaWVudFNlY3JldH0gICAgICAgID0gJFByb2ZpbGUtPntDbGllbnRTZXR0aW5nc30tPntDbGllbnRTZWNyZXR9OwogICAgICAgICRHZXRQYXJhbXtSZWRpcmVjdFVSSX0gICAgICAgICA9ICRQcm9maWxlLT57Q2xpZW50U2V0dGluZ3N9LT57UmVkaXJlY3RVUkl9OwogICAgICAgICRHZXRQYXJhbXtQcm92aWRlck1ldGFkYXRhVXJsfSA9ICRQcm9maWxlLT57UHJvdmlkZXJTZXR0aW5nc30tPntPcGVuSURDb25maWd1cmF0aW9ufTsKICAgICAgICAkR2V0UGFyYW17Q2FjaGVUVEx9ICAgICAgICAgICAgPSAkUHJvZmlsZS0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57VFRMfTsKICAgICAgICAkR2V0UGFyYW17U1NMQ2VydGlmaWNhdGV9ICAgICAgPSAkUHJvZmlsZS0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57U1NMT3B0aW9uc30tPntTU0xDZXJ0aWZpY2F0ZX07CiAgICAgICAgJEdldFBhcmFte1NTTEtleX0gICAgICAgICAgICAgID0gJFByb2ZpbGUtPntQcm92aWRlclNldHRpbmdzfS0+e1NTTE9wdGlvbnN9LT57U1NMS2V5fTsKICAgICAgICAkR2V0UGFyYW17U1NMUGFzc3dvcmR9ICAgICAgICAgPSAkUHJvZmlsZS0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57U1NMT3B0aW9uc30tPntTU0xQYXNzd29yZH07CiAgICAgICAgJEdldFBhcmFte1NTTENBRmlsZX0gICAgICAgICAgID0gJFByb2ZpbGUtPntQcm92aWRlclNldHRpbmdzfS0+e1NTTE9wdGlvbnN9LT57U1NMQ0FGaWxlfTsKICAgICAgICAkR2V0UGFyYW17U1NMQ0FEaXJ9ICAgICAgICAgICAgPSAkUHJvZmlsZS0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57U1NMT3B0aW9uc30tPntTU0xDQURpcn07CiAgICAgICAgJEdldFBhcmFte1NTTFZlcmlmeUhvc3RuYW1lfSAgID0gJFByb2ZpbGUtPntQcm92aWRlclNldHRpbmdzfS0+e1NTTE9wdGlvbnN9LT57U1NMVmVyaWZ5SG9zdG5hbWV9OwogICAgICAgICRHZXRQYXJhbXtTU0xWZXJpZnlNb2RlfSAgICAgICA9ICRQcm9maWxlLT57UHJvdmlkZXJTZXR0aW5nc30tPntTU0xPcHRpb25zfS0+e1NTTFZlcmlmeU1vZGV9OwogICAgICAgICRHZXRQYXJhbXtVc2VOb25jZX0gICAgICAgICAgICA9ICRQcm9maWxlLT57TWlzY30tPntVc2VOb25jZX07CiAgICAgICAgJEdldFBhcmFte1JhbmRMZW5ndGh9ICAgICAgICAgID0gJFByb2ZpbGUtPntNaXNjfS0+e1JhbmRMZW5ndGh9OwogICAgICAgICRHZXRQYXJhbXtSYW5kVFRMfSAgICAgICAgICAgICA9ICRQcm9maWxlLT57TWlzY30tPntSYW5kVFRMfTsKICAgICAgICAkR2V0UGFyYW17TGVld2F5fSAgICAgICAgICAgICAgPSAkUHJvZmlsZS0+e01pc2N9LT57TGVld2F5fTsKCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgICAgICAkU2VsZi0+X0VkaXRQcm9maWxlKAogICAgICAgICAgICBBY3Rpb24gPT4gJ0VkaXRQcm9maWxlJywKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICk7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdBY3Rpb25EZWxldGUnLAogICAgICAgICAgICBEYXRhID0+IFwlR2V0UGFyYW0KICAgICAgICApOwoKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pbk9JRENQcm9maWxlcycsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIEFkZFByb2ZpbGVBY3Rpb24gYW5kIEVkaXRQcm9maWxlQWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkUHJvZmlsZUFjdGlvbicgfHwgJFNlbGYtPntTdWJhY3Rpb259IGVxICdFZGl0UHJvZmlsZUFjdGlvbicgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgICMgZmV0Y2ggYW5kIHZhbGlkYXRlIHBhcmFtZXRlcnMKICAgICAgICBteSAlR2V0UGFyYW0gPSAoKTsKCiAgICAgICAgJEdldFBhcmFte1Byb2ZpbGVOYW1lfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdQcm9maWxlTmFtZScgKTsKICAgICAgICBpZiAoICEkR2V0UGFyYW17UHJvZmlsZU5hbWV9ICkgewogICAgICAgICAgICAkRXJyb3Jze1Byb2ZpbGVOYW1lU2VydmVyRXJyb3J9ID0gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoJ1Byb2ZpbGUgTmFtZSBpcyBtaXNzaW5nIScpOwogICAgICAgIH0KCiAgICAgICAgJEdldFBhcmFte1Byb3ZpZGVyTWV0YWRhdGFVcmx9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Byb3ZpZGVyTWV0YWRhdGFVcmwnICk7CiAgICAgICAgaWYgKCAhJEdldFBhcmFte1Byb3ZpZGVyTWV0YWRhdGFVcmx9ICkgewogICAgICAgICAgICAkRXJyb3Jze1Byb3ZpZGVyTWV0YWRhdGFVcmxTZXJ2ZXJFcnJvcn0gPSAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSgnUHJvdmlkZXIgbWV0YWRhdGEgdXJsIGlzIG1pc3NpbmchJyk7CiAgICAgICAgfQoKICAgICAgICAkR2V0UGFyYW17Q2xpZW50SUR9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0NsaWVudElEJyApOwogICAgICAgIGlmICggISRHZXRQYXJhbXtDbGllbnRJRH0gKSB7CiAgICAgICAgICAgICRFcnJvcnN7Q2xpZW50SURTZXJ2ZXJFcnJvcn0gPSAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSgnUHJvdmlkZXIgY2xpZW50IGlkIGlzIG1pc3NpbmchJyk7CiAgICAgICAgfQoKICAgICAgICAkR2V0UGFyYW17Q2xpZW50U2VjcmV0fSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdDbGllbnRTZWNyZXQnICk7CiAgICAgICAgaWYgKCAhJEdldFBhcmFte0NsaWVudFNlY3JldH0gKSB7CiAgICAgICAgICAgICRFcnJvcnN7Q2xpZW50U2VjcmV0U2VydmVyRXJyb3J9ID0gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoJ1Byb3ZpZGVyIGNsaWVudCBzZWNyZXQgaXMgbWlzc2luZyEnKTsKICAgICAgICB9CgogICAgICAgICMgdGhlIHJlbWFpbmluZyBvbmVzIGhhdmUgcmVhc29uYWJsZSBkZWZhdWx0cywgbm8gdmFsaWRhdGlvbgogICAgICAgICRHZXRQYXJhbXtDYWNoZVRUTH0gICAgICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQ2FjaGVUVEwnICkgfHwgNjAgKiAzMDsKICAgICAgICAkR2V0UGFyYW17U1NMQ2VydGlmaWNhdGV9ICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1NTTENlcnRpZmljYXRlJyApOwogICAgICAgICRHZXRQYXJhbXtTU0xLZXl9ICAgICAgICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU1NMS2V5JyApOwogICAgICAgICRHZXRQYXJhbXtTU0xQYXNzd29yZH0gICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU1NMUGFzc3dvcmQnICk7CiAgICAgICAgJEdldFBhcmFte1NTTENBRmlsZX0gICAgICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdTU0xDQUZpbGUnICk7CiAgICAgICAgJEdldFBhcmFte1NTTENBRGlyfSAgICAgICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdTU0xDQURpcicgKTsKICAgICAgICAkR2V0UGFyYW17U1NMVmVyaWZ5SG9zdG5hbWV9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1NTTFZlcmlmeUhvc3RuYW1lJyApOwogICAgICAgICRHZXRQYXJhbXtTU0xWZXJpZnlNb2RlfSAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU1NMVmVyaWZ5TW9kZScgKTsKICAgICAgICAkR2V0UGFyYW17VXNlTm9uY2V9ICAgICAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1VzZU5vbmNlJyApOwogICAgICAgICRHZXRQYXJhbXtSYW5kTGVuZ3RofSAgICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnUmFuZExlbmd0aCcgKSB8fCAyMjsKICAgICAgICAkR2V0UGFyYW17UmFuZFRUTH0gICAgICAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1JhbmRUVEwnICkgICAgfHwgNjAgKiA1OwogICAgICAgICRHZXRQYXJhbXtMZWV3YXl9ICAgICAgICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnTGVld2F5JyApICAgICB8fCAyOwogICAgICAgICRHZXRQYXJhbXtWYWxpZElEfSAgICAgICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVmFsaWRJRCcgKSAgICAvLyAxOwoKICAgICAgICAjIHByZXZlbnQgZHVwbGljYXRlIGFjY291bnQgbmFtZXMKICAgICAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkUHJvZmlsZUFjdGlvbicgKSB7CgogICAgICAgICAgICBteSAkRXhpc3RpbmcgPSAkUHJvZmlsZVJlcG9zaXRvcnktPkV4aXN0cyggTmFtZSA9PiAkR2V0UGFyYW17UHJvZmlsZU5hbWV9ICk7CgogICAgICAgICAgICBpZiAoJEV4aXN0aW5nKSB7CiAgICAgICAgICAgICAgICAkRXJyb3Jze1Byb2ZpbGVOYW1lU2VydmVyRXJyb3J9ID0gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoJ1Byb2ZpbGUgTmFtZSBpcyB0YWtlbiEnKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyByZXR1cm4gaWYgd2UgaGF2ZSBmb3JtIHZhbGlkYXRlIGVycm9ycwogICAgICAgIGlmICggc2NhbGFyIGtleXMgJUVycm9ycyApIHsKCiAgICAgICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CgogICAgICAgICAgICAkU2VsZi0+X0VkaXRQcm9maWxlKAogICAgICAgICAgICAgICAgQWN0aW9uID0+ICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkUHJvZmlsZUFjdGlvbicgPyAnQWRkUHJvZmlsZScgOiAnRWRpdFByb2ZpbGUnLAogICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgJUVycm9ycywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pbk9JRENQcm9maWxlcycsCiAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgICAgIH0KCiAgICAgICAgIyBkbyBzYXZlIGNvbmZpZwoKICAgICAgICBteSAkUHJvZmlsZSA9IHsKCiAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICRHZXRQYXJhbXtQcm9maWxlTmFtZX0sCiAgICAgICAgICAgIENsaWVudFNldHRpbmdzID0+IHsKICAgICAgICAgICAgICAgIENsaWVudFNlY3JldCA9PiAkR2V0UGFyYW17Q2xpZW50U2VjcmV0fSwKICAgICAgICAgICAgICAgIENsaWVudElEICAgICA9PiAkR2V0UGFyYW17Q2xpZW50SUR9LAogICAgICAgICAgICAgICAgUmVkaXJlY3RVUkkgID0+ICRHZXRQYXJhbXtSZWRpcmVjdFVSSX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFByb3ZpZGVyU2V0dGluZ3MgPT4gewogICAgICAgICAgICAgICAgT3BlbklEQ29uZmlndXJhdGlvbiA9PiAkR2V0UGFyYW17UHJvdmlkZXJNZXRhZGF0YVVybH0sCiAgICAgICAgICAgICAgICBUVEwgICAgICAgICAgICAgICAgID0+ICRHZXRQYXJhbXtDYWNoZVRUTH0sCiAgICAgICAgICAgICAgICBTU0xPcHRpb25zICAgICAgICAgID0+IHsKICAgICAgICAgICAgICAgICAgICBTU0xDZXJ0aWZpY2F0ZSAgICA9PiAkR2V0UGFyYW17U1NMQ2VydGlmaWNhdGV9LAogICAgICAgICAgICAgICAgICAgIFNTTEtleSAgICAgICAgICAgID0+ICRHZXRQYXJhbXtTU0xLZXl9LAogICAgICAgICAgICAgICAgICAgIFNTTFBhc3N3b3JkICAgICAgID0+ICRHZXRQYXJhbXtTU0xQYXNzd29yZH0sCiAgICAgICAgICAgICAgICAgICAgU1NMQ0FGaWxlICAgICAgICAgPT4gJEdldFBhcmFte1NTTENBRmlsZX0sCiAgICAgICAgICAgICAgICAgICAgU1NMQ0FEaXIgICAgICAgICAgPT4gJEdldFBhcmFte1NTTENBRGlyfSwKICAgICAgICAgICAgICAgICAgICBTU0xWZXJpZnlIb3N0bmFtZSA9PiAkR2V0UGFyYW17U1NMVmVyaWZ5SG9zdG5hbWV9LAogICAgICAgICAgICAgICAgICAgIFNTTFZlcmlmeU1vZGUgICAgID0+ICRHZXRQYXJhbXtTU0xWZXJpZnlNb2RlfSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWlzYyA9PiB7CiAgICAgICAgICAgICAgICBVc2VOb25jZSAgID0+ICRHZXRQYXJhbXtVc2VOb25jZX0sCiAgICAgICAgICAgICAgICBSYW5kTGVuZ3RoID0+ICRHZXRQYXJhbXtSYW5kTGVuZ3RofSwKICAgICAgICAgICAgICAgIFJhbmRUVEwgICAgPT4gJEdldFBhcmFte1JhbmRUVEx9LAogICAgICAgICAgICAgICAgTGVld2F5ICAgICA9PiAkR2V0UGFyYW17TGVld2F5fSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgVmFsaWQgID0+ICRHZXRQYXJhbXtWYWxpZElEfSwKICAgICAgICB9OwoKICAgICAgICBteSAkU3VjY2VzczsKICAgICAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkUHJvZmlsZUFjdGlvbicgKSB7CgogICAgICAgICAgICAkU3VjY2VzcyA9ICRQcm9maWxlUmVwb3NpdG9yeS0+QWRkUHJvZmlsZSglJFByb2ZpbGUpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICRTdWNjZXNzID0gJFByb2ZpbGVSZXBvc2l0b3J5LT5VcGRhdGVQcm9maWxlKCUkUHJvZmlsZSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgICAgICBJbmZvICAgICA9PiAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSggIkVycm9yIGNyZWF0aW5nL3VwZGF0aW5nIFByb2ZpbGUgJXMhIiwgJEdldFBhcmFte1Byb2ZpbGVOYW1lfSApLAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJwogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIERlbGV0ZQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0RlbGV0ZScgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIG15ICRQcm9maWxlTmFtZSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdQcm9maWxlTmFtZScgKSB8fCAnJzsKCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkUHJvZmlsZVJlcG9zaXRvcnktPkRlbGV0ZVByb2ZpbGUoIE5hbWUgPT4gJFByb2ZpbGVOYW1lICk7CgogICAgICAgIGlmICgkU3VjY2VzcykgewogICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgICAgIEluZm8gICAgID0+ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCAiUHJvZmlsZSAlcyBkZWxldGVkISIsICRQcm9maWxlTmFtZSApLAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ1N1Y2Nlc3MnCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgICAgIEluZm8gICAgID0+ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCAiUHJvZmlsZSAlcyBjb3VsZCBub3QgYmUgZGVsZXRlZCAtIGRvIHlvdSBoYXZlIGFueSBGdW5jdGlvbmFsIEFjY291bnRzIHJlZmVyZW5jaW5nIHRoaXMgUHJvZmlsZT8iLCAkUHJvZmlsZU5hbWUgKSwKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicsCiAgICAgICAgICAgICAgICBMaW5rICAgICA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0h0dHBUeXBlJykKICAgICAgICAgICAgICAgICAgICAuICc6Ly8nCiAgICAgICAgICAgICAgICAgICAgLiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZRRE4nKQogICAgICAgICAgICAgICAgICAgIC4gJy8nCiAgICAgICAgICAgICAgICAgICAgLiAkQ29uZmlnT2JqZWN0LT5HZXQoJ1NjcmlwdEFsaWFzJykKICAgICAgICAgICAgICAgICAgICAuICdpbmRleC5wbD9BY3Rpb249QWRtaW5PQXV0aFRva2VuU3RvcmUnLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHNob3cgb3ZlcnZpZXcgYWN0aW9ucyAtIGFzc2VtYmxlIFByb2ZpbGUgT3ZlcnZpZXcgZGF0YQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKICAgICMgUHJlcGFyZSB2aWV3IGRhdGEKCiAgICBteSAkUHJvZmlsZXMgPSAkQ29uZmlndXJhdGlvbi0+R2V0T0F1dGhQcm9maWxlcygpOwoKICAgIG15IEBWaWV3RGF0YTsKCiAgICBQUk9GSUxFOgogICAgZm9yIG15ICRQcm9maWxlIChAJFByb2ZpbGVzKSB7CgogICAgICAgIG15ICRQcm9maWxlTmFtZSA9ICRQcm9maWxlLT57UHJvdmlkZXJTZXR0aW5nc30tPntOYW1lfTsKICAgICAgICBteSAkQ2xpZW50SUQgICAgPSAkUHJvZmlsZS0+e0NsaWVudFNldHRpbmdzfS0+e0NsaWVudElEfTsKICAgICAgICBteSAkTWV0YWRhdGFVcmwgPSAkUHJvZmlsZS0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57T3BlbklEQ29uZmlndXJhdGlvbn07CiAgICAgICAgbXkgJFZhbGlkICAgICAgID0gJFByb2ZpbGUtPntWYWxpZH0gPT0gMSA/ICdWYWxpZCcgOiAnSW52YWxpZCc7CgogICAgICAgIHB1c2ggQFZpZXdEYXRhLCB7CiAgICAgICAgICAgIFByb2ZpbGVOYW1lID0+ICRQcm9maWxlTmFtZSwKICAgICAgICAgICAgQ2xpZW50SUQgICAgPT4gJENsaWVudElELAogICAgICAgICAgICBNZXRhZGF0YVVybCA9PiAkTWV0YWRhdGFVcmwsCiAgICAgICAgICAgIFZhbGlkICAgICAgID0+ICRWYWxpZCwKICAgICAgICB9OwogICAgfQoKICAgIG15ICRMaXN0U2l6ZSA9IHNjYWxhciBAVmlld0RhdGE7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXcnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBBbGxJdGVtc0NvdW50ID0+ICRMaXN0U2l6ZSwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgIH0sCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdBY3Rpb25BZGRQcm9maWxlJyApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3SGVhZGVyJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgQWxsSXRlbXNDb3VudCA9PiAkTGlzdFNpemUsCiAgICAgICAgICAgICVFcnJvcnMsCiAgICAgICAgfSwKICAgICk7CgogICAgIyBpZiB0aGVyZSBpcyBkYXRhIGF2YWlsYWJsZSwgaXQgaXMgc2hvd24KICAgIGlmICgkTGlzdFNpemUpIHsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0JywKICAgICAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgICAgICk7CgogICAgICAgIGZvciBteSAkRGF0YSAoQFZpZXdEYXRhKSB7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0Um93JywKICAgICAgICAgICAgICAgIERhdGEgPT4gJERhdGEsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgb3RoZXJ3aXNlLCBhIG1lc3NhZ2UgaXMgZGlzcGxheWVkCiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9BY2NvdW50c0RlZmluZWQnLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pbk9JRENQcm9maWxlcycsCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKc3ViIF9FZGl0UHJvZmlsZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRPSURDQ29uZmlndXJhdGlvbiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpDb25maWd1cmF0aW9uJyk7CiAgICBteSAkT0lEQ1Byb2ZpbGVzICAgICAgPSAkT0lEQ0NvbmZpZ3VyYXRpb24tPkdldE9BdXRoUHJvZmlsZXMoKTsKCiAgICBteSAlUHJvZmlsZXM7CiAgICBmb3IgbXkgJFByb2ZpbGUgKEAkT0lEQ1Byb2ZpbGVzKSB7CgogICAgICAgICRQcm9maWxlc3sgJFByb2ZpbGUtPntQcm9maWxlSUR9IH0gPSAkUHJvZmlsZS0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57TmFtZX07CiAgICB9CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXcnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgIyBnZXQgdmFsaWQgbGlzdAogICAgbXkgJVZhbGlkTGlzdCAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKS0+VmFsaWRMaXN0KCk7CiAgICBteSAlVmFsaWRMaXN0UmV2ZXJzZSA9IHJldmVyc2UgJVZhbGlkTGlzdDsKCiAgICAkUGFyYW17VmFsaWRPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiBcJVZhbGlkTGlzdCwKICAgICAgICBOYW1lICAgICAgID0+ICdWYWxpZElEJywKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFBhcmFte1ZhbGlkSUR9IHx8ICRWYWxpZExpc3RSZXZlcnNle3ZhbGlkfSwKICAgICk7CgogICAgJFBhcmFte1NTTFZlcmlmeUhvc3RuYW1lT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAxID0+ICdWZXJpZnkgSG9zdG5hbWUnLAogICAgICAgICAgICAwID0+ICdTa2lwJywKICAgICAgICB9LAogICAgICAgIE5hbWUgICAgICAgPT4gJ1NTTFZlcmlmeUhvc3RuYW1lJywKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFBhcmFte1NTTFZlcmlmeUhvc3RuYW1lfSAvLyAxLAogICAgKTsKCiAgICAkUGFyYW17U1NMVmVyaWZ5TW9kZU9wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgMSA9PiAnVmVyaWZ5IENlcnRpZmljYXRlcycsCiAgICAgICAgICAgIDAgPT4gJ1NraXAnLAogICAgICAgIH0sCiAgICAgICAgTmFtZSAgICAgICA9PiAnU1NMVmVyaWZ5TW9kZScsCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtTU0xWZXJpZnlNb2RlfSAvLyAxLAogICAgKTsKCiAgICAkUGFyYW17VXNlTm9uY2VPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIDEgPT4gJ1VzZSBOb25jZScsCiAgICAgICAgICAgIDAgPT4gJ0RvIG5vdCB1c2UgTm9uY2UnLAogICAgICAgIH0sCiAgICAgICAgTmFtZSAgICAgICA9PiAnVXNlTm9uY2UnLAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17VXNlTm9uY2V9IC8vIDEsCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3VXBkYXRlUHJvZmlsZScsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKc3ViIF9HZXREZWZhdWx0cyB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkRGVmYXVsdHMgPSB7CiAgICAgICAgQ2xpZW50SUQgICAgID0+ICcnLAogICAgICAgIENsaWVudFNlY3JldCA9PiAnJywKCiAgICAgICAgIyAgICAgICAgJEdldFBhcmFte1JlZGlyZWN0VVJJfSAgICAgICAgID0gJFByb2ZpbGUtPntDbGllbnRTZXR0aW5nc30tPntSZWRpcmVjdFVSSX07CiAgICAgICAgUHJvdmlkZXJNZXRhZGF0YVVybCA9PiAnJywKICAgICAgICBDYWNoZVRUTCAgICAgICAgICAgID0+IDYwICogMzAsCiAgICAgICAgVXNlTm9uY2UgICAgICAgICAgICA9PiAxLAogICAgICAgIFJhbmRMZW5ndGggICAgICAgICAgPT4gMjIsCiAgICAgICAgUmFuZFRUTCAgICAgICAgICAgICA9PiAzMDAsCiAgICAgICAgTGVld2F5ICAgICAgICAgICAgICA9PiAyLAogICAgICAgIFNTTFZlcmlmeUhvc3RuYW1lICAgPT4gMSwKICAgICAgICBTU0xWZXJpZnlNb2RlICAgICAgID0+IDEsCiAgICAgICAgU1NMQ2VydGlmaWNhdGUgICAgICA9PiAnJywKICAgICAgICBTU0xLZXkgICAgICAgICAgICAgID0+ICcnLAogICAgICAgIFNTTFBhc3N3b3JkICAgICAgICAgPT4gJycsCiAgICAgICAgU1NMQ0FGaWxlICAgICAgICAgICA9PiAnJywKICAgICAgICBTU0xDQURpciAgICAgICAgICAgID0+ICcnLAogICAgfTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICRPcGVuSURDb25maWcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0F1dGhNb2R1bGU6Ok9wZW5JRENvbm5lY3Q6OkNvbmZpZycpOwoKICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCRPcGVuSURDb25maWcpICkgewogICAgICAgIHJldHVybiAkRGVmYXVsdHM7CiAgICB9CgogICAgJERlZmF1bHRzID0gewogICAgICAgIENsaWVudElEID0+ICRPcGVuSURDb25maWctPntDbGllbnRTZXR0aW5nc30tPntDbGllbnRJRH0sCgogICAgICAgICMgd291bGQgYmUgY29udmluaWVudCwgYnV0IHdlIGRvIG5vdCBkbyBpdCBmb3Igc2VjdXJpdHkgcHVycG9zZXMKICAgICAgICAjIENsaWVudFNlY3JldCA9PiAkT3BlbklEQ29uZmlnLT57Q2xpZW50U2V0dGluZ3N9LT57Q2xpZW50U2VjcmV0fSwKCiAgICAgICAgUHJvdmlkZXJNZXRhZGF0YVVybCA9PiAkT3BlbklEQ29uZmlnLT57UHJvdmlkZXJTZXR0aW5nc30tPntPcGVuSURDb25maWd1cmF0aW9ufSwKICAgICAgICBDYWNoZVRUTCAgICAgICAgICAgID0+ICRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e1RUTH0gfHwgNjAgKiAzMCwKICAgICAgICBVc2VOb25jZSAgICAgICAgICAgID0+ICRPcGVuSURDb25maWctPntNaXNjfS0+e1VzZU5vbmNlfSAvLyAxLAogICAgICAgIFJhbmRMZW5ndGggICAgICAgICAgPT4gJE9wZW5JRENvbmZpZy0+e01pc2N9LT57UmFuZExlbmd0aH0gfHwgMjIsCiAgICAgICAgUmFuZFRUTCAgICAgICAgICAgICA9PiAkT3BlbklEQ29uZmlnLT57TWlzY30tPntSYW5kVFRMfSAgICB8fCAzMDAsCiAgICAgICAgTGVld2F5ICAgICAgICAgICAgICA9PiAkT3BlbklEQ29uZmlnLT57TWlzY30tPntMZWV3YXl9ICAgICB8fCAyLAogICAgICAgIFNTTFZlcmlmeUhvc3RuYW1lICAgPT4gJE9wZW5JRENvbmZpZy0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57U1NMT3B0aW9uc30tPntTU0xWZXJpZnlIb3N0bmFtZX0gLy8gMSwKICAgICAgICBTU0xWZXJpZnlNb2RlICAgICAgID0+ICRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e1NTTE9wdGlvbnN9LT57U1NMVmVyaWZ5TW9kZX0gICAgIC8vIDEsCiAgICAgICAgU1NMQ2VydGlmaWNhdGUgICAgICA9PiAkT3BlbklEQ29uZmlnLT57UHJvdmlkZXJTZXR0aW5nc30tPntTU0xPcHRpb25zfS0+e1NTTENlcnRpZmljYXRlfSB8fCAnJywKICAgICAgICBTU0xLZXkgICAgICAgICAgICAgID0+ICRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e1NTTE9wdGlvbnN9LT57U1NMS2V5fSAgICAgICAgIHx8ICcnLAogICAgICAgIFNTTFBhc3N3b3JkICAgICAgICAgPT4gJE9wZW5JRENvbmZpZy0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57U1NMT3B0aW9uc30tPntTU0xQYXNzd29yZH0gICAgfHwgJycsCiAgICAgICAgU1NMQ0FGaWxlICAgICAgICAgICA9PiAkT3BlbklEQ29uZmlnLT57UHJvdmlkZXJTZXR0aW5nc30tPntTU0xPcHRpb25zfS0+e1NTTENBRmlsZX0gICAgICB8fCAnJywKICAgICAgICBTU0xDQURpciAgICAgICAgICAgID0+ICRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e1NTTE9wdGlvbnN9LT57U1NMQ0FEaXJ9ICAgICAgIHx8ICcnLAogICAgICAgIEhhc0RlZmF1bHQgICAgICAgICAgPT4gMSwKICAgIH07CgogICAgcmV0dXJuICREZWZhdWx0czsKfQoKMTsK</File>
        <File Location="Kernel/Config/Files/XML/OAuth2.xml" Permission="660" Encode="Base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxvdG9ib19jb25maWcgdmVyc2lvbj0iMi4wIiBpbml0PSJBcHBsaWNhdGlvbiI+CgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FkbWluT0F1dGhUb2tlblN0b3JlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+YWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPkFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+T0F1dGggVG9rZW5zPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+QWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFkbWluT0F1dGhUb2tlblN0b3JlIyMjMDAxLUZyYW1ld29yayIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Mb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZG1pbjo6TW9kdWxlUmVnaXN0cmF0aW9uOjpMb2FkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSmF2YVNjcmlwdCI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5Db3JlLkFnZW50LkFkbWluLk9BdXRoMk1vZHVsZS5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWRtaW5PQXV0aFRva2VuU3RvcmUjIyMwMDEtRnJhbWV3b3JrIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1haW4gbWVudSBpdGVtIHJlZ2lzdHJhdGlvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZG1pbjo6TW9kdWxlUmVnaXN0cmF0aW9uOjpNYWluTWVudTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kTmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgoKICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uTW9kdWxlIyMjQWRtaW5PQXV0aFRva2VuU3RvcmUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+QWRtaW4gYXJlYSBuYXZpZ2F0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFkbWluOjpNb2R1bGVSZWdpc3RyYXRpb246OkFkbWluT3ZlcnZpZXc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+YWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6Ok5hdkJhcjo6TW9kdWxlQWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+T0F1dGggRnVuY3Rpb25hbCBBY2NvdW50czwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPkFkbWluaXN0cmF0aW9uPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5GdW5jdGlvbmFsIEFjY291bnQgYW5kIFRva2VuIE1hbmFnZW1lbnQuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJJY29uQmlnIj5mYS1jaXJjbGUtbzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSWNvblNtYWxsIj48L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgoKCgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FkbWluT0lEQ1Byb2ZpbGVzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+YWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPkFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+T0lEQyBQcm9maWxlczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPkFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KCiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0FkbWluT0lEQ1Byb2ZpbGVzIyMjMDAxLUZyYW1ld29yayIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYWluIG1lbnUgaXRlbSByZWdpc3RyYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZE5hdmlnYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KCgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok5hdmlnYXRpb25Nb2R1bGUjIyNBZG1pbk9JRENQcm9maWxlcyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BZG1pbiBhcmVhIG5hdmlnYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6QWRtaW5PdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5hZG1pbjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6TmF2QmFyOjpNb2R1bGVBZG1pbjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5PSURDIFByb2ZpbGUgTWFuYWdlbWVudDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPkFkbWluaXN0cmF0aW9uPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5NYW5hZ2UgT3BlbmRJRCBDb25uZWN0IE9BdXRoMiBQcm9maWxlcy48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikljb25CaWciPmZhLWNpcmNsZS1vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJJY29uU21hbGwiPjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CgogICAgIDxTZXR0aW5nIE5hbWU9IkRhZW1vbjo6U2NoZWR1bGVyQ3JvblRhc2tNYW5hZ2VyOjpUYXNrIyMjVG9rZW5TdG9yZVVwZGF0ZXIiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSIgQ29uZmlnTGV2ZWw9IjEwMCI+CiAgICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkV4ZWN1dGVzIGEgY3VzdG9tIGNvbW1hbmQgb3IgbW9kdWxlLiBOb3RlOiBpZiBtb2R1bGUgaXMgdXNlZCwgZnVuY3Rpb24gaXMgcmVxdWlyZWQuPC9EZXNjcmlwdGlvbj4KICAgICAgICAgPE5hdmlnYXRpb24+RGFlbW9uOjpTY2hlZHVsZXJDcm9uVGFza01hbmFnZXI6OlRhc2s8L05hdmlnYXRpb24+CiAgICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGFza05hbWUiPlRva2VuU3RvcmVVcGRhdGVyPC9JdGVtPgogICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iU2NoZWR1bGUiPjAgKiAqICogKjwvSXRlbT4KICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuU3RvcmVVcGRhdGVyPC9JdGVtPgogICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRnVuY3Rpb24iPlJ1bjwvSXRlbT4KICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1heGltdW1QYXJhbGxlbEluc3RhbmNlcyI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBhcmFtcyI+CiAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+SW50ZXJ2YWw8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPjM2MDA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICA8L1ZhbHVlPgogICAgIDwvU2V0dGluZz4KCjwvb3RvYm9fY29uZmlnPgo=</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AdminOAuthTokenStore.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlldyIpICVdCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIk9BdXRoMiBUb2tlbiBNYW5hZ2VtZW50IChPSURDKSIpIHwgaHRtbCAlXTwvaDE+CgogICAgWyUgQnJlYWRjcnVtYlBhdGggPSBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgPT4gVHJhbnNsYXRlKCdPcGVuSUQgQ29ubmVjdCBGdW5jdGlvbmFsIE9BdXRoMiBBY2NvdW50IE1hbmFnZW1lbnQnKSwKICAgICAgICAgICAgICAgIExpbmsgPT4gRW52KCJBY3Rpb24iKSwKICAgICAgICAgICAgfSwKICAgICAgICBdCiAgICAlXQoKICAgIFslIFNXSVRDSCBEYXRhLkFjdGlvbiAlXQogICAgICAgIFslIENBU0UgJ0FkZCcgJV0KICAgICAgICAgICAgWyUgQnJlYWRjcnVtYlBhdGgucHVzaCh7IE5hbWUgPT4gVHJhbnNsYXRlKCdBZGQgQWNjb3VudCcpLH0pICVdCiAgICAgICAgWyUgQ0FTRSAnRWRpdCcgJV0KICAgICAgICAgICAgWyUgVVNFIEVkaXRUaXRsZSA9IFN0cmluZyhUcmFuc2xhdGUoIkVkaXQgQWNjb3VudCAiKSkgJV0KICAgICAgICAgICAgWyUgQnJlYWRjcnVtYlBhdGgucHVzaCh7IE5hbWUgPT4gRWRpdFRpdGxlLmFwcGVuZCggJzogJywgRGF0YS5BY2NvdW50TmFtZSApIH0pICVdCiAgICBbJSBFTkQgJV0KCiAgICBbJSBJTkNMVURFICJCcmVhZGNydW1iLnR0IiBQYXRoID0gQnJlYWRjcnVtYlBhdGggJV0KCiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPjxiPlslIFRyYW5zbGF0ZSgiQWJvdXQgT0lEQyBGdW5jdGlvbmFsIEFjY291bnRzIikgfCBodG1sICVdPC9iPjwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50IEZhdm91cml0ZUxpc3QiPgogICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGlzIHBhZ2UgZGlzcGxheXMgYW4gb3ZlcnZpZXcgb2YgY29uZmlndXJlZCBmdW5jdGlvbmFsIE9BdXRoIEFjY291bnRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIFRva2VuIFN0YXR1cy4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiWW91IGNhbiB0ZXN0IHlvdXIgQ29uZmlndXJhdGlvbiB3aXRoIGEgY2xpY2sgb24gdGhlICdSZW5ldycgQnV0dG9uLCB3aGljaCB3aWxsIHRyeSB0byBmZXRjaCBvciByZWZyZXNoIGEgbmV3IFRva2VuLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPGJyPgogICAgICAgICAgICAgICAgPGJyPgogICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJZb3UgY2FuIGNyZWF0ZSBPSURDIFByb2ZpbGVzIHRvIGNvbm5lY3QgdG8geW91ciBPSURDIEZ1bmN0aW9uYWwgQWNjb3VudCIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9BY3Rpb249QWRtaW5PSURDUHJvZmlsZXMiPlslIFRyYW5zbGF0ZSgiaGVyZSIpIHwgaHRtbCAlXTwvYT4uCiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICA8YnI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25BZGRJbnZva2VyIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1BZGRJbnZva2VyIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1wbHVzLXNxdWFyZSI+PC9pPlslIFRyYW5zbGF0ZSgiQWRkIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uQWRkSW52b2tlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbkRlbGV0ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgY2xhc3M9IlByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iRGVsZXRlIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY2NvdW50TmFtZSIgdmFsdWU9IlslIERhdGEuQWNjb3VudE5hbWUgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIFByaW1hcnkiIGlkPSJTdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiRGVsZXRlIEFjY291bnQiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiRGVsZXRlIEFjY291bnQiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25EZWxldGUiKSAlXQoKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+ClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3SGVhZGVyIikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIk9JREMgRnVuY3Rpb25hbCBBY2NvdW50cyBhbmQgdGhlaXIgYWN0aXZlIE9BdXRoMiBUb2tlbnMiKSB8IGh0bWwgJV0gKFslIERhdGEuQWxsSXRlbXNDb3VudCB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKCJ0b3RhbCIpIHwgaHRtbCAlXSk8L2gyPgogICAgICAgICAgICAgICAgWyUgSUYgRGF0YS5IYXNQcm9maWxlcyA9PSAwICVdCiAgICAgICAgICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlNpbmNlIHlvdSBkbyBub3QgaGF2ZSBhbnkgT0lEQyBQcm92aWRlciBwcm9maWxlcyBjb25maWd1cmVkLCB5b3UgY2Fubm90IGFkZCBhbiBPQXV0aDIgRnVuY3Rpb25hbCBBY2NvdW50LiBYb3UgaGF2ZSB0byBmaXJzdCBjb25maWd1cmUgYXQgbGVhc3Qgb25lIE9JREMgUHJvdmlkZXIgcHJvZmlsZSIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9BY3Rpb249QWRtaW5PSURDUHJvZmlsZXMiPmhlcmU8L2E+LgogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb1Rva2Vuc0RlZmluZWQiKSAlXQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhlcmUgYXJlIG5vIE9BdXRoMiBhY2NvdW50cyBkZWZpbmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb1Rva2Vuc0RlZmluZWQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdCIpICVdCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiIGlkPSJUb2tlbnMiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQWNjb3VudCBOYW1lIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlByb2ZpbGUgTmFtZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJGbG93IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkhhcyBUb2tlbj8iKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiUmVmcmVzaCBUb2tlbiBFeHBpcmVzIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlJlbmV3IFRva2VuKHMpIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGEgY2xhc3M9IkFzQmxvY2siIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1FZGl0O0FjY291bnROYW1lPVslIERhdGEuQWNjb3VudE5hbWUgfCB1cmkgJV0iPlslIERhdGEuQWNjb3VudE5hbWUgfCBodG1sICVdPC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9J1slIERhdGEuTmVlZFRva2VuIHwgdXJpICVdJz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSc/QWN0aW9uPUFkbWluT0lEQ1Byb2ZpbGVzJlN1YmFjdGlvbj1FZGl0JlByb2ZpbGVOYW1lPVslIERhdGEuUHJvZmlsZU5hbWUgfCB1cmkgJV0nPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUHJvZmlsZU5hbWUgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0nWyUgRGF0YS5OZWVkVG9rZW4gfCB1cmkgJV0nPlslIERhdGEuRmxvdyB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSdbJSBEYXRhLk5lZWRUb2tlbiB8IHVyaSAlXSc+WyUgVHJhbnNsYXRlKCBEYXRhLkhhc1Rva2VuICkgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLkV4cGlyZXNBdCB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXT9BY3Rpb249QWRtaW5PQXV0aFRva2VuU3RvcmUiIG1ldGhvZD0icG9zdCIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjBweDsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgfCB1cmkgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJSZWZyZXNoIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWNjb3VudE5hbWUiIHZhbHVlPSJbJSBEYXRhLkFjY291bnROYW1lIHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLklzSW52b2tlciAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9IlN1Ym1pdFslIERhdGEuQWNjb3VudE5hbWUgfCB1cmkgJV0iIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiUmVuZXciKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiUmVuZXciKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IkZpbHRlck1lc3NhZ2UgSGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI1Ij5bJSBUcmFuc2xhdGUoIk5vIG1hdGNoZXMgZm91bmQuIikgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1VwZGF0ZUludm9rZXIiKSAlXQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgWyUgSUYgRGF0YS5BY3Rpb24gPT0gJ0FkZEludm9rZXInICVdCiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWRkIEludm9rZXIgQWNjb3VudCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICBbJSBFTFNFICVdCiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRWRpdCBJbnZva2VyIEFjY291bnQiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIERhdGEuQWN0aW9uIHwgdXJpICVdQWN0aW9uIi8+CiAgICAgICAgICAgICAgICAgICAgWyUgSUYgRGF0YS5BY3Rpb24gPT0gJ0NoYW5nZScgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQ29udGludWVBZnRlclNhdmUiIGlkPSJDb250aW51ZUFmdGVyU2F2ZSIgdmFsdWU9IiIvPgogICAgICAgICAgICAgICAgICAgIFslIEVORCAlXQogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJFcnJvciI+WyUgRGF0YS5Ub2tlbkVycm9yIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJBY2NvdW50TmFtZSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJBY2NvdW50IE5hbWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLkFjdGlvbiA9PSAnQWRkSW52b2tlcicgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJBY2NvdW50TmFtZSIgdmFsdWU9IlslIERhdGEuQWNjb3VudE5hbWUgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMgVmFsaWRhdGVfUmVxdWlyZWQiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRXJyb3IiPlslIERhdGEuQWNjb3VudE5hbWVTZXJ2ZXJFcnJvciAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRoZSB1bmlxdWUgbmFtZSBmb3IgdGhpcyBBY2NvdW50LiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgICAgICAgICAgICAgWyUgRUxTRSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IkFjY291bnROYW1lIiB2YWx1ZT0iWyUgRGF0YS5BY2NvdW50TmFtZSB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyIgcmVhZG9ubHk9InJlYWRvbmx5IiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGhlIHVuaXF1ZSBuYW1lIGZvciB0aGlzIEFjY291bnQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIEVORCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iUHJvdmlkZXJJRCI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJPSURDIFByb2ZpbGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Qcm92aWRlck5hbWVzICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGUgT3BlbklEIENvbm5lY3QiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9J19ibGFuaycgaHJlZj0iP0FjdGlvbj1BZG1pblN5c3RlbUNvbmZpZ3VyYXRpb25Hcm91cDtSb290TmF2aWdhdGlvbj1Db3JlOjpBdXRoOjpPcGVuSURDb25uZWN0Ij5Qcm92aWRlcjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoInRvIHVzZSBmb3IgdGhpcyBmdW5jdGlvbmFsIGFjY291bnQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJHcmFudFR5cGUiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiR3JhbnQgVHlwZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkdyYW50VHlwZXMgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRoZSBPQXV0aDIgZ3JhbnRfdHlwZSB0byB1c2UgZm9yIGFjcXVpcmluZyB0b2tlbnMgZm9yIHRoaXMgYWNjb3VudC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTZWxlY3RpbmcgJ2F1dGhvcml6YXRpb25fY29kZScgd2lsbCByZWRpcmVjdCB5b3UgdG8geW91ciBPcGVuSUQgQ29ubmVjdCBQcm92aWRlcidzIExvZ2luIFBhZ2UgdG8gdmFsaWRhdGUgeW91ciBhY2NvdW50IG9uY2UgeW91IGNsaWNrICdTYXZlJy4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlVzZXJuYW1lIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlVzZXJuYW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIiBpZD0iVXNlcm5hbWVGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iVXNlcm5hbWUiIGlkPSJVc2VybmFtZSIgdmFsdWU9IlslIERhdGEuVXNlcm5hbWUgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5Vc2VybmFtZUludmFsaWQgfCBodG1sICVdIiBtYXhsZW5ndGg9IjIwMCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkVycm9yIj5bJSBEYXRhLlVzZXJuYW1lU2VydmVyRXJyb3IgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGUgdXNlcm5hbWUgaWYgZ3JhbnQgdHlwZSBpcyAncGFzc3dvcmQnLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iUGFzc3dvcmQiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiUGFzc3dvcmQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiIGlkPSJQYXNzd29yZEZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgbmFtZT0iUGFzc3dvcmQiIGlkPSJQYXNzd29yZCIgdmFsdWU9IlslIERhdGEuUGFzc3dvcmQgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5QYXNzd29yZEludmFsaWQgfCBodG1sICVdIiBtYXhsZW5ndGg9IjIwMCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkVycm9yIj5bJSBEYXRhLlBhc3N3b3JkU2VydmVyRXJyb3IgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGUgcGFzc3dvcmQgdG8gdXNlIGlmIGdyYW50IHR5cGUgaXMgJ3Bhc3N3b3JkJy4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ikludm9rZXJTY29wZXMiPlslIFRyYW5zbGF0ZSgiT0F1dGgyIFNjb3BlcyIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iSW52b2tlclNjb3BlcyIgaWQ9Ikludm9rZXJTY29wZXMiIHZhbHVlPSJbJSBEYXRhLkludm9rZXJTY29wZXMgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMiIG1heGxlbmd0aD0iMjUwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTcGFjZSBzZXBhcmF0ZSBsaXN0IG9mIE9BdXRoMiBzY29wZXMgdG8gdXNlLiBVc3VhbCB2YWx1ZXMgaW5jbHVkZSBvcGVuaWQsIGVtYWlsLCBwcm9maWxlLCBhbmQgcm9sZXMuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBZHZhbmNlZCBJbnZva2VyIFNldHRpbmdzIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iUmVzb3VyY2VzIj5bJSBUcmFuc2xhdGUoIlJlc291cmNlcyIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iUmVzb3VyY2VzIiBpZD0iUmVzb3VyY2VzIiB2YWx1ZT0iWyUgRGF0YS5SZXNvdXJjZXMgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMiIG1heGxlbmd0aD0iMjUwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJPcHRpb25hbCAoc3BhY2Ugc2VwZXJhdGVkIGxpc3QpIGZvciB0aGUgcmVzb3VyY2UgcGFyYW1hdGVyIGlmIHJlcXVpcmVkLiBMZWF2ZSBlbXB0eSB1bmxlc3MgaW5zdHJ1Y3RlZCBvdGhlcndpc2UuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJSZXNvdXJjZVBhcmFtIj5bJSBUcmFuc2xhdGUoIlJlc291cmNlIFBhcmFtZXRlciBOYW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJSZXNvdXJjZVBhcmFtIiBpZD0iUmVzb3VyY2VQYXJhbSIgdmFsdWU9IlslIERhdGEuUmVzb3VyY2VQYXJhbSB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyIgbWF4bGVuZ3RoPSIyNTAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5hbWUgb2YgdGhlIHJlc291cmNlIHBhcmFtZXRlciB0byB1c2UuIERlZmF1bHRzIHRvICdyZXNvdXJjZScuIERvIG5vdCBjaGFuZ2UgdW5sZXNzIGluc3RydWN0ZWQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJUb2tlblR5cGUiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiVG9rZW4gVHlwZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iVG9rZW5UeXBlIiBpZD0iVG9rZW5UeXBlIiB2YWx1ZT0iWyUgRGF0YS5Ub2tlblR5cGUgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMiIG1heGxlbmd0aD0iMjUwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGUgdG9rZW4gdHlwZSB0byB1c2UgZm9yIGV4dGVybmFsbCBBUEkgY2FsbHMuIFVzdWFsbHkgJ2FjY2Vzc190b2tlbicuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQcmltYXJ5IiBpZD0iU3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3VXBkYXRlSW52b2tlciIpICVdCgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXciKSAlXQo=</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AdminOIDCProfiles.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlldyIpICVdCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIk9wZW5JRCBDb25uZWN0IFByb2ZpbGVzICIpIHwgaHRtbCAlXTwvaDE+CgogICAgWyUgQnJlYWRjcnVtYlBhdGggPSBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgPT4gVHJhbnNsYXRlKCdPcGVuSUQgQ29ubmVjdCBQcm92aWRlciBQcm9maWxlcyBNYW5hZ2VtZW50JyksCiAgICAgICAgICAgICAgICBMaW5rID0+IEVudigiQWN0aW9uIiksCiAgICAgICAgICAgIH0sCiAgICAgICAgXQogICAgJV0KCiAgICBbJSBTV0lUQ0ggRGF0YS5BY3Rpb24gJV0KICAgICAgICBbJSBDQVNFICdBZGQnICVdCiAgICAgICAgICAgIFslIEJyZWFkY3J1bWJQYXRoLnB1c2goeyBOYW1lID0+IFRyYW5zbGF0ZSgnQWRkIFByb2ZpbGUnKSx9KSAlXQogICAgICAgIFslIENBU0UgJ0VkaXQnICVdCiAgICAgICAgICAgIFslIFVTRSBFZGl0VGl0bGUgPSBTdHJpbmcoVHJhbnNsYXRlKCJFZGl0IFByb2ZpbGUgIikpICVdCiAgICAgICAgICAgIFslIEJyZWFkY3J1bWJQYXRoLnB1c2goeyBOYW1lID0+IEVkaXRUaXRsZS5hcHBlbmQoICc6ICcsIERhdGEuUHJvZmlsZU5hbWUgKSB9KSAlXQogICAgWyUgRU5EICVdCgogICAgWyUgSU5DTFVERSAiQnJlYWRjcnVtYi50dCIgUGF0aCA9IEJyZWFkY3J1bWJQYXRoICVdCgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj48Yj5bJSBUcmFuc2xhdGUoIkFib3V0IE9JREMgUHJvdmlkZXIgUHJvZmlsZXMiKSB8IGh0bWwgJV08L2I+PC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQgRmF2b3VyaXRlTGlzdCI+CiAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRoaXMgcGFnZSBkaXNwbGF5cyBhbiBvdmVydmlldyBvZiBjb25maWd1cmVkIE9JREMgUHJvdmlkZXIgUHJvZmlsZXMuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIFslIElGIERhdGEuQWxsSXRlbXNDb3VudCAhPSAwICVdCiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJZb3UgY2FuIGNvbm5lY3QgT0lEQyBQcm9maWxlcyB3aXRoIGEgT0lEQyBGdW5jdGlvbmFsIEFjY291bnQiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/QWN0aW9uPUFkbWluT0F1dGhUb2tlblN0b3JlIj5bJSBUcmFuc2xhdGUoImhlcmUiKSB8IGh0bWwgJV08L2E+LgogICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICA8YnI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbkFkZFByb2ZpbGUiKSAlXQogICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPUFkZFByb2ZpbGUiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+WyUgVHJhbnNsYXRlKCJBZGQiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uQWRkUHJvZmlsZSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbkRlbGV0ZSIpICVdCiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgY2xhc3M9IlByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJEZWxldGUiLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJQcm9maWxlTmFtZSIgdmFsdWU9IlslIERhdGEuUHJvZmlsZU5hbWUgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9IlN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJEZWxldGUgUHJvZmlsZSIpIHwgaHRtbCAlXSI+PHNwYW4+WyUgVHJhbnNsYXRlKCJEZWxldGUgUHJvZmlsZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Zvcm0+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25EZWxldGUiKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdIZWFkZXIiKSAlXQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiT3BlbklEIENvbm5lY3QgUHJvdmlkZXIgUHJvZmlsZXMgZm9yIG91dGdvaW5nIFdlYnNlcnZpY2UgY2FsbHMgKEdlbmVyaWNJbnRlcmZhY2UgSW52b2tlcikiKSB8IGh0bWwgJV0gKFslIERhdGEuQWxsSXRlbXNDb3VudCB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKCJ0b3RhbCIpIHwgaHRtbCAlXSk8L2gyPgogICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3SGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9Ub2tlbnNEZWZpbmVkIikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoZXJlIGFyZSBubyBPSURDIFByb3ZpZGVyIHByb2ZpbGVzIGRlZmluZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vVG9rZW5zRGVmaW5lZCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0IikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSIgaWQ9IlRva2VucyI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJQcm9maWxlIE5hbWUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQ2xpZW50IElEIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlByb3ZpZGVyIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlZhbGlkIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGEgY2xhc3M9IkFzQmxvY2siIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1FZGl0O1Byb2ZpbGVOYW1lPVslIERhdGEuUHJvZmlsZU5hbWUgfCB1cmkgJV0iPlslIERhdGEuUHJvZmlsZU5hbWUgfCBodG1sICVdPC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9Jyc+WyUgRGF0YS5DbGllbnRJRCB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPScnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJbJSBEYXRhLk1ldGFkYXRhVXJsIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCAiUHJvdmlkZXIiICkgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBUcmFuc2xhdGUoRGF0YS5WYWxpZCkgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0Um93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJGaWx0ZXJNZXNzYWdlIEhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNSI+WyUgVHJhbnNsYXRlKCJObyBtYXRjaGVzIGZvdW5kLiIpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHQiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdVcGRhdGVQcm9maWxlIikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIFslIElGIERhdGEuQWN0aW9uID09ICdBZGRQcm9maWxlJyAlXQogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFkZCBPSURDIFByb3ZpZGVyIFByb2ZpbGUiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgWyUgRUxTRSAlXQogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkVkaXQgT0lEQyBQcm92aWRlciBQcm9maWxlIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIFslIEVORCAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJbJSBEYXRhLkFjdGlvbiB8IHVyaSAlXUFjdGlvbiIvPgogICAgICAgICAgICAgICAgICAgIFslIElGIERhdGEuQWN0aW9uID09ICdDaGFuZ2UnICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkNvbnRpbnVlQWZ0ZXJTYXZlIiBpZD0iQ29udGludWVBZnRlclNhdmUiIHZhbHVlPSIiLz4KICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CgogICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLkhhc0RlZmF1bHQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGI+WyUgVHJhbnNsYXRlKCJOb3RlIikgfCBodG1sICVdOjwvYj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTaW5jZSB5b3UgYXJlIHVzaW5nIE9JREMgYXMgQXV0aGVudGljYXRpb24gbW9kdWxlLCB0aGVzZSB2YWx1ZXMgaGF2ZSBiZWVuIHByZS1wb3B1bGF0ZWQgd2l0aCB0aGUgT0lEQyBQcm92aWRlciBDb25maWd1cmF0aW9uIHVzZWQgZm9yIExvZ2luLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlByb2ZpbGVOYW1lIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlByb2ZpbGUgTmFtZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIElGIERhdGEuQWN0aW9uID09ICdBZGRQcm9maWxlJyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlByb2ZpbGVOYW1lIiB2YWx1ZT0iWyUgRGF0YS5Qcm9maWxlTmFtZSB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyBWYWxpZGF0ZV9SZXF1aXJlZCIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJFcnJvciI+WyUgRGF0YS5Qcm9maWxlTmFtZVNlcnZlckVycm9yICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGhlIHVuaXF1ZSBuYW1lIGZvciB0aGlzIFByb2ZpbGUuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CgogICAgICAgICAgICAgICAgICAgICAgICBbJSBFTFNFICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iUHJvZmlsZU5hbWUiIHZhbHVlPSJbJSBEYXRhLlByb2ZpbGVOYW1lIHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIiByZWFkb25seT0icmVhZG9ubHkiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGUgdW5pcXVlIG5hbWUgZm9yIHRoaXMgUHJvZmlsZS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJQcm92aWRlck1ldGFkYXRhVXJsIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIk1ldGFkYXRhIFVybC4iKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiIGlkPSJQcm92aWRlck1ldGFkYXRhVXJsRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlByb3ZpZGVyTWV0YWRhdGFVcmwiIGlkPSJQcm92aWRlck1ldGFkYXRhVXJsIiB2YWx1ZT0iWyUgRGF0YS5Qcm92aWRlck1ldGFkYXRhVXJsIHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuUHJvdmlkZXJNZXRhZGF0YVVybEludmFsaWQgfCBodG1sICVdIiBtYXhsZW5ndGg9IjQwOTYiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJFcnJvciI+WyUgRGF0YS5Qcm92aWRlck1ldGFkYXRhVXJsU2VydmVyRXJyb3IgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGUgV2VsbC1Lbm93biBQcm92aWRlciBNZXRhZGF0YSBVcmwuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJDbGllbnRJRCI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJDbGllbnQgSUQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiIGlkPSJDbGllbnRJREZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJDbGllbnRJRCIgaWQ9IkNsaWVudElEIiB2YWx1ZT0iWyUgRGF0YS5DbGllbnRJRCB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLkNsaWVudElESW52YWxpZCB8IGh0bWwgJV0iIG1heGxlbmd0aD0iNDA5NiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkVycm9yIj5bJSBEYXRhLkNsaWVudElEU2VydmVyRXJyb3IgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGUgQ2xpZW50IElEIG9mIHlvdXIgT0F1dGgyIGFwcGxpY2F0aW9uLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iQ2xpZW50U2VjcmV0Ij48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIkNsaWVudCBTZWNyZXQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiIGlkPSJDbGllbnRTZWNyZXRGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5hbWU9IkNsaWVudFNlY3JldCIgaWQ9IkNsaWVudFNlY3JldCIgdmFsdWU9IlslIERhdGEuQ2xpZW50U2VjcmV0IHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuQ2xpZW50U2VjcmV0SW52YWxpZCB8IGh0bWwgJV0iIG1heGxlbmd0aD0iNDA5NiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkVycm9yIj5bJSBEYXRhLkNsaWVudFNlY3JldFNlcnZlckVycm9yICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGhlIENsaWVudCBTZWNyZXQgb2YgeW91ciBPQXV0aDIgYXBwbGljYXRpb24uIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJDYWNoZVRUTCI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJDYWNoZSBUVEwiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiIGlkPSJDYWNoZVRUTEZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJDYWNoZVRUTCIgaWQ9IkNhY2hlVFRMIiB2YWx1ZT0iWyUgRGF0YS5DYWNoZVRUTCB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLkNhY2hlVFRMSW52YWxpZCB8IGh0bWwgJV0iIG1heGxlbmd0aD0iNDA5NiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkVycm9yIj5bJSBEYXRhLkNhY2hlVFRMU2VydmVyRXJyb3IgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaW1lIGluIHNlY29uZHMgZm9yIGNhY2hpbmcgcHJvdmlkZXIgZGF0YS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KCgogICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIG5hbWU9ImRldGFpbHMiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3VtbWFyeT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlNTTCBPcHRpb25zIChPcHRpb25hbCkiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdW1tYXJ5PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iU1NMQ2VydGlmaWNhdGUiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiU1NMIENlcnRpZmljYXRlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiIGlkPSJTU0xDZXJ0aWZpY2F0ZUZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlNTTENlcnRpZmljYXRlIiBpZD0iU1NMQ2VydGlmaWNhdGUiIHZhbHVlPSJbJSBEYXRhLlNTTENlcnRpZmljYXRlIHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIiBtYXhsZW5ndGg9IjIwNDgiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTU0wgY2VydGlmaWNhdGUgcGF0aC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iU1NMS2V5Ij48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlNTTCBDZXJ0aWZpY2F0ZSBLZXkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCIgaWQ9IlNTTEtleUZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlNTTEtleSIgaWQ9IlNTTEtleSIgdmFsdWU9IlslIERhdGEuU1NMS2V5IHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIiBtYXhsZW5ndGg9IjIwNDgiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTU0wgY2VydGlmaWNhdGUgcHJpdmF0ZSBrZXkgcGF0aC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iU1NMUGFzc3dvcmQiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiU1NMIFBhc3N3b3JkIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiIGlkPSJTU0xQYXNzd29yZEZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlNTTFBhc3N3b3JkIiBpZD0iU1NMUGFzc3dvcmQiIHZhbHVlPSJbJSBEYXRhLlNTTFBhc3N3b3JkIHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIiBtYXhsZW5ndGg9IjIwNDgiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGUgU1NMIHBhc3N3b3JkLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJTU0xDQUZpbGUiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiU1NMIENBIEZpbGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCIgaWQ9IlNTTENBRmlsZUZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlNTTENBRmlsZSIgaWQ9IlNTTENBRmlsZSIgdmFsdWU9IlslIERhdGEuU1NMQ0FGaWxlIHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIiBtYXhsZW5ndGg9IjIwNDgiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTU0wgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IGZpbGUgcGF0aC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iU1NMQ0FEaXIiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiU1NMIENBIERpcmVjdG9yeSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIiBpZD0iU1NMQ0FEaXJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJTU0xDQURpciIgaWQ9IlNTTENBRGlyIiB2YWx1ZT0iWyUgRGF0YS5TU0xDQURpciB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyIgbWF4bGVuZ3RoPSIyMDQ4Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiU1NMIENlcnRpZmljYXRlIEF1dGhvcml0eSBkaXJlY3RvcnkgcGF0aC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iU1NMVmVyaWZ5SG9zdG5hbWUiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiU1NMIFZlcmlmeSBIb3N0bmFtZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIiBpZD0iU1NMVmVyaWZ5SG9zdG5hbWVGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuU1NMVmVyaWZ5SG9zdG5hbWVPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJFbmFibGUgb3IgZGlzYWJsZSBTU0wgaG9zdG5hbWUgdmVyaWZpY2F0aW9uLiBPbmx5IGRpc2FibGUgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcyEiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iU1NMVmVyaWZ5TW9kZSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJTU0wgVmVyaWZ5IE1vZGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCIgaWQ9IlNTTFZlcmlmeU1vZGVGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuU1NMVmVyaWZ5TW9kZU9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkVuYWJsZSBvciBkaXNhYmxlIFNTTCB2ZXJpZmljYXRpb24uIE9ubHkgZGlzYWJsZSBmb3IgZGVidWdnaW5nIHB1cnBvc2VzISIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICAgICAgPC9kZXRhaWxzPgoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGJyPgogICAgICAgICAgICAgICAgICAgIDxicj4KCiAgICAgICAgICAgICAgICAgICAgPGRldGFpbHMgbmFtZT0iZGV0YWlscyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk1pc2MgT3B0aW9ucyAoT3B0aW9uYWwpIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3VtbWFyeT4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJVc2VOb25jZSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJVc2UgTm9uY2UiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlVzZU5vbmNlT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJSYW5kTGVuZ3RoIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlJhbmQgTGVuZ3RoIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCIgaWQ9IlJhbmRMZW5ndGhGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlJhbmRMZW5ndGgiIGlkPSJSYW5kTGVuZ3RoIiB2YWx1ZT0iWyUgRGF0YS5SYW5kTGVuZ3RoIHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIiBtYXhsZW5ndGg9IjEwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlJhbmRvbSBzdHJpbmcgbGVuZ3RoIHVzZWQgZm9yIHN0YXRlIGFuZCBub25jZSBwYXJhbWV0ZXJzLiBEZWZhdWx0IGlzICcyMicuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iUmFuZFRUTCI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJSYW5kIFRUTCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiIGlkPSJSYW5kVFRMRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJSYW5kVFRMIiBpZD0iUmFuZFRUTCIgdmFsdWU9IlslIERhdGEuUmFuZFRUTCB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyIgbWF4bGVuZ3RoPSIxMCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaW1lLXRvLWxpdmUgZm9yIHN0YXRlIGFuZCBub25jZSBpbiBzZWNvbmRzLiBEZWZhdWx0IGlzICczMDAnICg1IG1pbikuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iTGVld2F5Ij48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIkxlZXdheSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiIGlkPSJMZWV3YXlGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IkxlZXdheSIgaWQ9IkxlZXdheSIgdmFsdWU9IlslIERhdGEuTGVld2F5IHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIiBtYXhsZW5ndGg9IjEwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRpbWUgZHJpZnQgYWxsb3dhbmNlIGJldHdlZW4gc2VydmVycyB0byBiZSBhbGxvd2VkLiBEZWZhdWx0ICcyJyBzZWNvbmRzLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgICAgICA8L2RldGFpbHM+CgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQcmltYXJ5IiBpZD0iU3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3VXBkYXRlUHJvZmlsZSIpICVdCgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXciKSAlXQo=</File>
        <File Location="Kernel/System/Console/Command/Admin/OAuth2/ImportUser.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpDb25zb2xlOjpDb21tYW5kOjpBZG1pbjo6T0F1dGgyOjpJbXBvcnRVc2VyOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgSlNPTjsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCnVzZSBwYXJlbnQgcXcoS2VybmVsOjpTeXN0ZW06OkNvbnNvbGU6OkJhc2VDb21tYW5kKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TWFpbicsCiAgICAnS2VybmVsOjpTeXN0ZW06OlVzZXInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkNvbmZpZ3VyYXRpb24nLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlbicsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuUHJvdmlkZXInLAopOwoKc3ViIENvbmZpZ3VyZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRTZWxmLT5EZXNjcmlwdGlvbignSW1wb3J0IGEgRnVuY3Rpb25hbCBVc2VyIEFjY291bnQgZnJvbSBhbiBPcGVuSUQgQ29ubmVjdCBQcm92aWRlci4nKTsKICAgICRTZWxmLT5BZGRPcHRpb24oCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ29wZW5pZC1jb25maWcnLAogICAgICAgIERlc2NyaXB0aW9uID0+CiAgICAgICAgICAgICJUaGUgbmFtZSBvZiBPcGVuSUQgQ29uZmlnIHRvIHVzZS4gRGVmYXVsdHMgdG8gJ0F1dGhNb2R1bGU6Ok9wZW5JRENvbm5lY3QnIGZvciB1c2luZyB0aGUgZGVmYXVsdCBPSURDIGxvZ2luIHByb3ZpZGVyIGlmIHRoaXMgc3lzdGVtIHVzZXMgT0lEQyBmb3IgbG9naW4gcHVycG9zZXMuIE90aGVyd2lzZSB1c2Ugb25lIG9mICdPcGVuSURDb25uZWN0OjpVc2VyTWFwcGluZyMjI0N1c3RvbTEnIC4uLiBDdXN0b21OIEtleXMuICIsCiAgICAgICAgUmVxdWlyZWQgICA9PiAwLAogICAgICAgIEhhc1ZhbHVlICAgPT4gMSwKICAgICAgICBWYWx1ZVJlZ2V4ID0+IHFyLy4qL3NteCwKICAgICk7CiAgICAkU2VsZi0+QWRkT3B0aW9uKAogICAgICAgIE5hbWUgICAgICAgID0+ICdncmFudC10eXBlJywKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiU3BlY2lmeSB0aGUgT0F1dGgyIGdyYW50LXR5cGUgKG9uZSBvZiBwYXNzd29yZHxjbGllbnRfY3JlZGVudGlhbHMpLiIsCiAgICAgICAgUmVxdWlyZWQgICAgPT4gMSwKICAgICAgICBIYXNWYWx1ZSAgICA9PiAxLAogICAgICAgIFZhbHVlUmVnZXggID0+IHFyL14ocGFzc3dvcmQpfChjbGllbnRfY3JlZGVudGlhbHMpJC9zbXgsCiAgICApOwoKICAgICRTZWxmLT5BZGRPcHRpb24oCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ3VzZXJuYW1lJywKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiU3BlY2lmeSB0aGUgT0F1dGgyIHVzZXJuYW1lIGlmIGdyYW50LXR5cGUgaXMgJ3Bhc3N3b3JkJy4iLAogICAgICAgIFJlcXVpcmVkICAgID0+IDAsCiAgICAgICAgSGFzVmFsdWUgICAgPT4gMSwKICAgICAgICBWYWx1ZVJlZ2V4ICA9PiBxci8uKi9zbXgsCiAgICApOwoKICAgICRTZWxmLT5BZGRPcHRpb24oCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ3Bhc3N3b3JkJywKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiU3BlY2lmeSB0aGUgT0F1dGgyIHBhc3N3b3JkIGlmIGdyYW50LXR5cGUgaXMgJ3Bhc3N3b3JkJy4iLAogICAgICAgIFJlcXVpcmVkICAgID0+IDAsCiAgICAgICAgSGFzVmFsdWUgICAgPT4gMSwKICAgICAgICBWYWx1ZVJlZ2V4ICA9PiBxci8vc214LAogICAgKTsKCiAgICAkU2VsZi0+QWRkT3B0aW9uKAogICAgICAgIE5hbWUgICAgICAgID0+ICdzY29wZScsCiAgICAgICAgRGVzY3JpcHRpb24gPT4gIlNwZWNpZnkgdGhlIE9BdXRoMiBzY29wZShzKSBhcyBhIHNwYWNlIHNlcGFyYXRlZCBsaXN0LiBvcHRpb25hbC4iLAogICAgICAgIFJlcXVpcmVkICAgID0+IDAsCiAgICAgICAgSGFzVmFsdWUgICAgPT4gMSwKICAgICAgICBWYWx1ZVJlZ2V4ICA9PiBxci8uKi9zbXgsCiAgICApOwoKICAgICRTZWxmLT5BZGRPcHRpb24oCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ3Jlc291cmNlJywKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiU3BlY2lmeSB0aGUgT0F1dGgyIHJlc291cmNlIHBhcmFtZXRlciBhcyBhIHNwYWNlIHNlcGFyYXRlZCBsaXN0LiBvcHRpb25hbC4iLAogICAgICAgIFJlcXVpcmVkICAgID0+IDAsCiAgICAgICAgSGFzVmFsdWUgICAgPT4gMSwKICAgICAgICBWYWx1ZVJlZ2V4ICA9PiBxci8uKi9zbXgsCiAgICApOwoKICAgICRTZWxmLT5BZGRPcHRpb24oCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ3Jlc291cmNlLXBhcmFtLW5hbWUnLAogICAgICAgIERlc2NyaXB0aW9uID0+ICJTcGVjaWZ5IHRoZSBPQXV0aDIgcmVzb3VyY2UgcGFyYW1ldGVyIG5hbWUsIHRoYXQgaXMgdGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlciBpdHNlbGYuIG9wdGlvbmFsLCBkZWZhdWx0cyB0byAncmVzb3VyY2UnIiwKICAgICAgICBSZXF1aXJlZCAgICA9PiAwLAogICAgICAgIEhhc1ZhbHVlICAgID0+IDEsCiAgICAgICAgVmFsdWVSZWdleCAgPT4gcXIvLiovc214LAogICAgKTsKCiAgICAkU2VsZi0+QWRkT3B0aW9uKAogICAgICAgIE5hbWUgICAgICAgID0+ICd0b2tlbi10eXBlJywKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiU3BlY2lmeSB0aGUgT0F1dGgyIHRva2VuIHR5cGUsIGNhbiBiZSAnYWNjZXNzX3Rva2VuJyBvciAnaWRfdG9rZW4nLiBkZWZhdWx0cyB0byAnaWRfdG9rZW4nLiIsCiAgICAgICAgUmVxdWlyZWQgICAgPT4gMCwKICAgICAgICBIYXNWYWx1ZSAgICA9PiAxLAogICAgICAgIFZhbHVlUmVnZXggID0+IHFyL14oYWNjZXNzX3Rva2VuKXwoaWRfdG9rZW4pJC9zbXgsCiAgICApOwoKICAgICRTZWxmLT5BZGRPcHRpb24oCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ3VzZXItbWFwJywKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiU3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgVXNlck1hcCBzeXN0ZW0gY29uZmlndXJhdGlvbiBzZXR0aW5nLiBkZWZhdWx0cyB0byAnQXV0aE1vZHVsZTo6T3BlbklEQ29ubmVjdDo6VXNlck1hcCcuIiwKICAgICAgICBSZXF1aXJlZCAgICA9PiAwLAogICAgICAgIEhhc1ZhbHVlICAgID0+IDEsCiAgICAgICAgVmFsdWVSZWdleCAgPT4gcXIvLiovc214LAogICAgKTsKCiAgICAkU2VsZi0+QWRkT3B0aW9uKAogICAgICAgIE5hbWUgICAgICAgID0+ICdyb2xlLW1hcCcsCiAgICAgICAgRGVzY3JpcHRpb24gPT4gIlNwZWNpZnkgdGhlIG5hbWUgb2YgdGhlIFJvbGVNYXAgc3lzdGVtIGNvbmZpZ3VyYXRpb24gc2V0dGluZy4gZGVmYXVsdHMgdG8gJ0F1dGhNb2R1bGU6Ok9wZW5JRENvbm5lY3Q6OlJvbGVNYXAnLiIsCiAgICAgICAgUmVxdWlyZWQgICAgPT4gMCwKICAgICAgICBIYXNWYWx1ZSAgICA9PiAxLAogICAgICAgIFZhbHVlUmVnZXggID0+IHFyLy4qL3NteCwKICAgICk7CgogICAgJFNlbGYtPkFkZE9wdGlvbigKICAgICAgICBOYW1lICAgICAgICA9PiAndWlkJywKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiU3BlY2lmeSB0aGUgbmFtZSBvZiBqd3QgdG9rZW4gY2xhaW0gdG8gYmUgbWFwcGVkIHRvIHRoZSBPdG9ibyBVc2VyTG9naW4uIERlZmF1bHRzIHRvICdzdWInIiwKICAgICAgICBSZXF1aXJlZCAgICA9PiAwLAogICAgICAgIEhhc1ZhbHVlICAgID0+IDEsCiAgICAgICAgVmFsdWVSZWdleCAgPT4gcXIvLiovc214LAogICAgKTsKCiAgICAkU2VsZi0+QWRkT3B0aW9uKAogICAgICAgIE5hbWUgICAgICAgID0+ICdkcnktcnVuJywKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiU2ltdWxhdGUgYWN0aW9ucywgZG8gbm90IGFjdHVhbGx5IGFkZCB1c2VyIiwKICAgICAgICBSZXF1aXJlZCAgICA9PiAwLAogICAgICAgIEhhc1ZhbHVlICAgID0+IDAsCiAgICAgICAgVmFsdWVSZWdleCAgPT4gcXIvL3NteCwKICAgICk7CgogICAgcmV0dXJuOwp9CgpzdWIgUHJlUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgJFNlbGYtPlByaW50KCI8Z3JlZW4+SW1wb3J0aW5nIEZ1bmN0aW9uYWwgQWNjb3VudC4uLjwvZ3JlZW4+XG4iKTsKCiAgICBpZiAoICRTZWxmLT5HZXRPcHRpb24oJ2RyeS1ydW4nKSApIHsKCiAgICAgICAgJFNlbGYtPlByaW50KCI8eWVsbG93PmRyeS1ydW4gbW9kZTogbm90IHBlcmZvcm1pbmcgYW55IGFjdHVhbCBjaGFuZ2VzLjwveWVsbG93PlxuIik7CiAgICB9CgogICAgIyBnYXRoZXIgcGFyYW1ldGVyIHZhbHVlcwogICAgbXkgJE9wZW5JRFByb2ZpbGVOYW1lID0gJFNlbGYtPkdldE9wdGlvbignb3BlbmlkLWNvbmZpZycpIHx8ICdBdXRoTW9kdWxlOjpPcGVuSURDb25uZWN0JzsKICAgIG15ICRPcGVuSURDb25maWdOYW1lICA9ICRPcGVuSURQcm9maWxlTmFtZSAuICc6OkNvbmZpZyc7CgogICAgIyAgICBteSAkT0lEQ0NvbmZpZ3VyYXRpb25PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6Q29uZmlndXJhdGlvbicpOwogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJE9wZW5JRENvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgkT3BlbklEQ29uZmlnTmFtZSk7CiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkT3BlbklEQ29uZmlnKSApIHsKCiAgICAgICAgJFNlbGYtPlByaW50RXJyb3IoJ0ludmFsaWQgT3BlbklEQ29uZmlnIScpOwogICAgICAgIHJldHVybiAkU2VsZi0+RXhpdENvZGVFcnJvcigpOwogICAgfQoKICAgIG15ICRHcmFudFR5cGUgPSAkU2VsZi0+R2V0T3B0aW9uKCdncmFudC10eXBlJyk7CiAgICBpZiAoICRHcmFudFR5cGUgZXEgJ3Bhc3N3b3JkJyApIHsKICAgICAgICBpZiAoICEkU2VsZi0+R2V0T3B0aW9uKCd1c2VybmFtZScpICkgewoKICAgICAgICAgICAgJFNlbGYtPlByaW50RXJyb3IoIk5lZWQgLS11c2VybmFtZSAoYW5kIHByb2JhYmx5IC0tcGFzc3dvcmQpIGZvciBncmFudC10eXBlICdwYXNzd29yZCcuIik7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+RXhpdENvZGVFcnJvcigpOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkVG9rZW5UeXBlID0gJFNlbGYtPkdldE9wdGlvbigndG9rZW4tdHlwZScpIHx8ICdpZF90b2tlbic7CiAgICBteSAkVUlEICAgICAgID0gJFNlbGYtPkdldE9wdGlvbigndWlkJykgICAgICAgIHx8ICdzdWInOwogICAgbXkgJFVzZXJNYXAgICA9ICRDb25maWdPYmplY3QtPkdldCggJFNlbGYtPkdldE9wdGlvbigndXNlci1tYXAnKSB8fCAkT3BlbklEUHJvZmlsZU5hbWUgLiAnOjpVc2VyTWFwJyApOwogICAgbXkgJFJvbGVNYXAgICA9ICRDb25maWdPYmplY3QtPkdldCggJFNlbGYtPkdldE9wdGlvbigncm9sZS1tYXAnKSB8fCAkT3BlbklEUHJvZmlsZU5hbWUgLiAnOjpSb2xlTWFwJyApOwoKICAgICMgbm93IHVzZSBUb2tlblByb3ZpZGVyIHRvIGRvIHRoZSBUb2tlbiBmZXRjaGluZyBmb3IgdXMKICAgIG15ICRUb2tlblByb3ZpZGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuUHJvdmlkZXInKTsKCiAgICBteSAkUmVzdWx0ID0gJFRva2VuUHJvdmlkZXItPkZldGNoVG9rZW5Gcm9tQ29uZmlnKAogICAgICAgIFRva2VuVHlwZSAgICAgICAgID0+ICRTZWxmLT5HZXRPcHRpb24oJ3Rva2VuLXR5cGUnKSAgICAgICAgICB8fCAnYWNjZXNzX3Rva2VuJywKICAgICAgICBSZXNvdXJjZVBhcmFtTmFtZSA9PiAkU2VsZi0+R2V0T3B0aW9uKCdyZXNvdXJjZS1wYXJhbS1uYW1lJykgfHwgJ3Jlc291cmNlJywKICAgICAgICBSZXNvdXJjZXMgICAgICAgICA9PiAkU2VsZi0+R2V0T3B0aW9uKCdyZXNvdXJjZScpLAogICAgICAgIFNjb3BlICAgICAgICAgICAgID0+ICRTZWxmLT5HZXRPcHRpb24oJ3Njb3BlJyksCiAgICAgICAgT3BlbklEQ29uZmlnICAgICAgPT4gJE9wZW5JRENvbmZpZywKICAgICAgICBHcmFudFR5cGUgICAgICAgICA9PiAkR3JhbnRUeXBlLAogICAgICAgIFVzZXJuYW1lICAgICAgICAgID0+ICRTZWxmLT5HZXRPcHRpb24oJ3VzZXJuYW1lJyksCiAgICAgICAgUGFzc3dvcmQgICAgICAgICAgPT4gJFNlbGYtPkdldE9wdGlvbigncGFzc3dvcmQnKSwKICAgICk7CgogICAgaWYgKCAhJFJlc3VsdC0+e1N1Y2Nlc3N9ICkgewogICAgICAgICRTZWxmLT5QcmludEVycm9yKCAnRXJyb3IgRmV0Y2hpbmcgVG9rZW46ICcgLiAkUmVzdWx0LT57RXJyb3J9ICk7CiAgICAgICAgcmV0dXJuICRTZWxmLT5FeGl0Q29kZUVycm9yKCk7CiAgICB9CgogICAgbXkgJFRva2VuID0gJFJlc3VsdC0+e0RlY29kZWRDb250ZW50fS0+eyRUb2tlblR5cGV9OwogICAgaWYgKCAhJFRva2VuICkgewoKICAgICAgICAkU2VsZi0+UHJpbnRFcnJvcigiRGlkIG5vdCByZWNlaXZlIGRlc2lyZWQgdG9rZW4gdHlwZSAnJFRva2VuVHlwZScuIik7CiAgICAgICAgcmV0dXJuICRTZWxmLT5FeGl0Q29kZUVycm9yKCk7CiAgICB9CgogICAgIyBpbnNwZWN0IHRoZSBUb2tlbiBwYXlsb2FkCiAgICBteSAkVG9rZW5PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW4nKTsKICAgIG15ICRUb2tlbkRhdGEgICA9ICRUb2tlbk9iamVjdC0+SW5zcGVjdCggVG9rZW4gPT4gJFRva2VuICk7CgogICAgJFNlbGYtPlByaW50KCBlbmNvZGVfanNvbigkVG9rZW5EYXRhKSAuICJcbiIgKTsKCiAgICAjIGRldGVybWluZSBqd3QgY2xhaW4gdG8gb3RvYm8gVXNlckxvZ2luIG1hcHBpbmcKICAgIG15ICRVc2VyTG9naW4gPSAkVG9rZW5EYXRhLT57JFVJRH07CiAgICBpZiAoICEkVXNlckxvZ2luICkgewoKICAgICAgICAkU2VsZi0+UHJpbnRFcnJvcigiVG9rZW4gcmVjZWl2ZWQgYnV0IFVJRCB3YXMgbm90IHByb3ZpZGVkIGluICckVUlEJy4iKTsKICAgICAgICByZXR1cm4gJFNlbGYtPkV4aXRDb2RlRXJyb3IoKTsKICAgIH0KCiAgICAjIFJvbGVzCiAgICBteSAlUm9sZXM7CiAgICBpZiAoJFJvbGVNYXApIHsKICAgICAgICAlUm9sZXMgPSAkU2VsZi0+X0V4dHJhY3RNYXAoCiAgICAgICAgICAgIE1hcCAgPT4gJFJvbGVNYXAsCiAgICAgICAgICAgIERhdGEgPT4gJFRva2VuRGF0YSwKICAgICAgICApOwogICAgfQoKICAgICMgaWYgT3BlbklEQ29ubmVjdCBpcyBjb25maWd1cmVkIHRvIHByb3ZpZGUgYXV0aG9yaXphdGlvbiBidXQgdGhlIHVzZXIgaGFzIG5vIHJpZ2h0cyByZXR1cm4KICAgIGlmICggJFJvbGVNYXAgJiYgISVSb2xlcyApIHsKCiAgICAgICAgJFNlbGYtPlByaW50RXJyb3IoIlVuYXV0aG9yaXplZCBhcyBwZXIgUm9sZU1hcC4iKTsKICAgICAgICByZXR1cm4gJFNlbGYtPkV4aXRDb2RlRXJyb3IoKTsKICAgIH0KCiAgICBteSAkVXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CiAgICBteSAlVXNlciAgICAgICA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSggVXNlciA9PiAkVXNlckxvZ2luICk7CiAgICBteSAkVXNlcklEOwoKICAgICMgY3JlYXRlIGFuZCBlZGl0IHVzZXJzCiAgICBpZiAoJFVzZXJNYXApIHsKCiAgICAgICAgbXkgJVVzZXJEYXRhID0gbWFwIHsgJFVzZXJNYXAtPnskX30gPT4gJFRva2VuRGF0YS0+eyRffSB9IGtleXMgJXskVXNlck1hcH07CgogICAgICAgICMgZG9uJ3QgbWVzcyB3aXRoIHNvbWUgZGF0YSBoZXJlCiAgICAgICAgZGVsZXRlICRVc2VyRGF0YXtVc2VySUR9OwogICAgICAgIGRlbGV0ZSAkVXNlckRhdGF7VXNlclB3fTsKCiAgICAgICAgJFVzZXJEYXRhe1VzZXJGaXJzdG5hbWV9ID0gJFVzZXJEYXRhe1VzZXJGaXJzdG5hbWV9IHx8ICRUb2tlbkRhdGEtPnthenB9ICAgICAgICAgICAgICAgIHx8ICdvdG9ibyc7CiAgICAgICAgJFVzZXJEYXRhe1VzZXJMYXN0bmFtZX0gID0gJFVzZXJEYXRhe1VzZXJMYXN0bmFtZX0gIHx8ICRUb2tlbkRhdGEtPntwcmVmZXJyZWRfdXNlcm5hbWV9IHx8ICdib3QnOwogICAgICAgICRVc2VyRGF0YXtVc2VyRW1haWx9ICAgICA9ICRUb2tlbkRhdGEtPntlbWFpbH0gICAgICB8fCAkVXNlckRhdGF7VXNlckVtYWlsfSAgICAgICAgICAgICB8fCAnc3lzdGVtdXNlckBvdG9iby5sb2NhbCc7CgogICAgICAgIGlmICggISVVc2VyICkgewoKICAgICAgICAgICAgJFNlbGYtPlByaW50KCI8eWVsbG93PkFkZGluZyBVc2VyICAkVXNlckxvZ2luIDwveWVsbG93PlxuIik7CgogICAgICAgICAgICBmb3IgbXkgJEtleSAoIGtleXMgJVVzZXJEYXRhICkgewogICAgICAgICAgICAgICAgJFNlbGYtPlByaW50KCAiICAgIDx5ZWxsb3c+JEtleSA6ICIgLiAkVXNlckRhdGF7JEtleX0gLiAiPC95ZWxsb3c+XG4iICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICggISRTZWxmLT5HZXRPcHRpb24oJ2RyeS1ydW4nKSApIHsKICAgICAgICAgICAgICAgICRVc2VySUQgPSAkVXNlck9iamVjdC0+VXNlckFkZCgKICAgICAgICAgICAgICAgICAgICBVc2VyRmlyc3RuYW1lID0+ICctJywKICAgICAgICAgICAgICAgICAgICBVc2VyTGFzdG5hbWUgID0+ICctJywKICAgICAgICAgICAgICAgICAgICAlVXNlckRhdGEsCiAgICAgICAgICAgICAgICAgICAgVXNlckxvZ2luICAgID0+ICRVc2VyTG9naW4sCiAgICAgICAgICAgICAgICAgICAgVmFsaWRJRCAgICAgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgQ2hhbmdlVXNlcklEID0+IDEsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICRTZWxmLT5QcmludCgiPHllbGxvdz5VcGRhdGluZyBVc2VyICAkVXNlckxvZ2luIDwveWVsbG93PlxuIik7CgogICAgICAgICAgICBmb3IgbXkgJEtleSAoIGtleXMgJVVzZXJEYXRhICkgewogICAgICAgICAgICAgICAgJFNlbGYtPlByaW50KCAiICAgIDx5ZWxsb3c+JEtleSA6ICIgLiAkVXNlckRhdGF7JEtleX0gLiAiPC95ZWxsb3c+XG4iICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRVcGRhdGU7CiAgICAgICAgICAgIEtFWToKICAgICAgICAgICAgZm9yIG15ICRLZXkgKCBrZXlzICVVc2VyRGF0YSApIHsKICAgICAgICAgICAgICAgIGlmICggJFVzZXJEYXRheyRLZXl9IG5lICRVc2VyeyRLZXl9ICkgewogICAgICAgICAgICAgICAgICAgICRVcGRhdGUgPSAxOwoKICAgICAgICAgICAgICAgICAgICBsYXN0IEtFWTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCAkVXBkYXRlICYmICEkU2VsZi0+R2V0T3B0aW9uKCdkcnktcnVuJykgKSB7CiAgICAgICAgICAgICAgICAkVXNlck9iamVjdC0+VXNlclVwZGF0ZSgKICAgICAgICAgICAgICAgICAgICAlVXNlciwKICAgICAgICAgICAgICAgICAgICAlVXNlckRhdGEsCiAgICAgICAgICAgICAgICAgICAgQ2hhbmdlVXNlcklEID0+IDEsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICRVc2VySUQgLy89ICRVc2Vye1VzZXJJRH07CgogICAgaWYgKCAhJFVzZXJJRCAmJiAkU2VsZi0+R2V0T3B0aW9uKCdkcnktcnVuJykgIT0gMSApIHsKCiAgICAgICAgJFNlbGYtPlByaW50RXJyb3IoIk5vIFVzZXJJZCBmb3IgJFVzZXJMb2dpbi4gQWJvcnRpbmcuIik7CiAgICAgICAgcmV0dXJuICRTZWxmLT5FeGl0Q29kZUVycm9yKCk7CiAgICB9CiAgICBpZiAoJFVzZXJJRCkgewogICAgICAgICRTZWxmLT5QcmludCgiPHllbGxvdz5cblVzZXJJRDogJFVzZXJJRFxuPC95ZWxsb3c+XG4iKTsKICAgIH0KCiAgICAjIHN1Y2Nlc3NmdWwgcmV0dXJuIGlmIG5vIGF1dGhvcml6YXRpb24gaGFzIHRvIGJlIGRvbmUKCiAgICByZXR1cm4gJFVzZXJMb2dpbiBpZiAhJFJvbGVNYXA7CgogICAgbXkgJEdyb3VwT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7CgogICAgaWYgKCRSb2xlTWFwKSB7CiAgICAgICAgbXkgJUFsbFJvbGVzID0gcmV2ZXJzZSAkR3JvdXBPYmplY3QtPlJvbGVMaXN0KAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgdXBkYXRlIHVzZXIgcm9sZXMKICAgICAgICBmb3IgbXkgJFJvbGVOYW1lICgga2V5cyAlQWxsUm9sZXMgKSB7CgogICAgICAgICAgICAkU2VsZi0+UHJpbnQoIjx5ZWxsb3c+ICBDaGVjayBSb2xlOiAkUm9sZU5hbWU8L3llbGxvdz5cbiIpOwoKICAgICAgICAgICAgaWYgKCAhJFNlbGYtPkdldE9wdGlvbignZHJ5LXJ1bicpICkgewogICAgICAgICAgICAgICAgJEdyb3VwT2JqZWN0LT5QZXJtaXNzaW9uUm9sZVVzZXJBZGQoCiAgICAgICAgICAgICAgICAgICAgVUlEICAgID0+ICRVc2VySUQsCiAgICAgICAgICAgICAgICAgICAgUklEICAgID0+ICRBbGxSb2xlc3skUm9sZU5hbWV9LAogICAgICAgICAgICAgICAgICAgIEFjdGl2ZSA9PiAkUm9sZXN7JFJvbGVOYW1lfSB8fCAwLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAkU2VsZi0+UHJpbnQoIjxncmVlbj5Eb25lLjwvZ3JlZW4+XG4iKTsKICAgIHJldHVybiAkU2VsZi0+RXhpdENvZGVPaygpOwp9CgpzdWIgX0V4dHJhY3RNYXAgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKICAgIG15ICVSZXR1cm4gPSAoKTsKCiAgICBLRVk6CiAgICBmb3IgbXkgJEtleSAoIGtleXMgJXsgJFBhcmFte01hcH0gfSApIHsKICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkUGFyYW17TWFwfXskS2V5fSApICkgewogICAgICAgICAgICBuZXh0IEtFWSB1bmxlc3MgZGVmaW5lZCAkUGFyYW17RGF0YX17JEtleX07CgogICAgICAgICAgICAlUmV0dXJuID0gKAogICAgICAgICAgICAgICAgJVJldHVybiwKICAgICAgICAgICAgICAgICRTZWxmLT5fRXh0cmFjdE1hcCgKICAgICAgICAgICAgICAgICAgICBNYXAgID0+ICRQYXJhbXtNYXB9eyRLZXl9LAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gJFBhcmFte0RhdGF9eyRLZXl9LAogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIG5leHQgS0VZIGlmIHJlZiAkUGFyYW17TWFwfXskS2V5fTsKCiAgICAgICAgbXkgQERhdGEgPSBJc0FycmF5UmVmV2l0aERhdGEoICRQYXJhbXtEYXRhfSApID8gQHsgJFBhcmFte0RhdGF9IH0gOgogICAgICAgICAgICAhcmVmICRQYXJhbXtEYXRhfSA/ICggJFBhcmFte0RhdGF9ICkgOiAoKTsKCiAgICAgICAgZm9yIG15ICRPcGVuSURBdHRyaWJ1dGUgKEBEYXRhKSB7CiAgICAgICAgICAgIG15ICRPVE9CT0F0dHJpYnV0ZSA9ICRQYXJhbXtNYXB9eyRPcGVuSURBdHRyaWJ1dGV9OwoKICAgICAgICAgICAgaWYgKCRPVE9CT0F0dHJpYnV0ZSkgewogICAgICAgICAgICAgICAgJFJldHVybnskT1RPQk9BdHRyaWJ1dGV9ID0gMTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJVJldHVybjsKfQoKMTsK</File>
        <File Location="Kernel/System/OpenIDConnect/Authenticator.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6QXV0aGVudGljYXRvcjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCnVzZSBuYW1lc3BhY2U6OmF1dG9jbGVhbjsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VXNlcicsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuJywKICAgICdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VXNlckltcG9ydCcsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkF1dGhlbnRpY2F0b3IKCj1mb3Igc3RvcHdvcmRzIE9JREMKCmF1dGhlbnRpY2F0ZSBpbmNvbWluZyBPSURDIE9BdXRoMiBUb2tlbnMKCj1oZWFkMSBTWU5PUFNJUwoKYXV0aGVudGljYXRlIGluY29taW5nIE9JREMgT0F1dGgyIFRva2VucyBiYXNlZCBvbiB0aGUgT3RvYm8gQXV0aE1vZHVsZXMKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRBdXRoZW50aWNhdG9yT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkF1dGhlbnRpY2F0b3InKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgQXV0aGVudGljYXRlKCkKCiAgICBBdXRoZW50aWNhdGVzIGFuIGluY29taW5nIEJlYXJlciBUb2tlbgoKICAgIG15ICRSZXN1bHQgPSAkQXV0aGVudGljYXRvck9iamVjdC0+QXV0aGVudGljYXRlKAogICAgICAgIFRva2VuICA9PiAkVG9rZW4sCiAgICAgICAgTGVld2F5ID0+ICRBbGxvd2VkU2Vjb25kc1RpbWVEcmlmdCwgICAgIyBvcHRpb25hbAogICAgKTsKCiAgICB3aGVyZQoKICAgIG15ICRSZXN1bHQgPSB7CiAgICAgICAgICAgIFN1Y2Nlc3MgICA9PiAxLAogICAgICAgICAgICBUb2tlbkRhdGEgPT4gJFRva2VuRGF0YSwKICAgICAgICAgICAgVXNlckRhdGEgID0+IFwlVXNlckRhdGEsCiAgICB9OwoKPWN1dAoKc3ViIEF1dGhlbnRpY2F0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRCZWFyZXJUb2tlbiA9ICRQYXJhbXtUb2tlbn07CgogICAgbXkgJFJlc3VsdCA9IHsgU3VjY2VzcyA9PiAwIH07CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBsb2FkIGF1dGggbW9kdWxlcwogICAgQ09VTlQ6CiAgICBmb3IgbXkgJENvdW50ICggJycsIDEgLi4gMTAgKSB7CgogICAgICAgIG15ICRHZW5lcmljTW9kdWxlID0gJENvbmZpZ09iamVjdC0+R2V0KCJBdXRoTW9kdWxlJENvdW50Iik7CgogICAgICAgIG5leHQgQ09VTlQgaWYgISRHZW5lcmljTW9kdWxlOwoKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkF1dGhlbnRpY2F0ZSBPQXV0aDIgVG9rZW4gd2l0aCBBdXRoTW9kdWxlICdBdXRoTW9kdWxlJENvdW50JyIsCiAgICAgICAgKTsKCiAgICAgICAgJEdlbmVyaWNNb2R1bGUgPX4gcy9eS2VybmVsOjpTeXN0ZW06OkF1dGg6Oi8vOwoKICAgICAgICBteSAkT3BlbklEQ29uZmlnID0gJENvbmZpZ09iamVjdC0+R2V0KCAiQXV0aE1vZHVsZSRDb3VudCIgLiAiOjoiIC4gJEdlbmVyaWNNb2R1bGUgLiAiOjpDb25maWciICk7CgogICAgICAgIG5leHQgQ09VTlQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCRPcGVuSURDb25maWcpOwoKICAgICAgICAjIHZhbGlkYXRlIHRoZSB0b2tlbgogICAgICAgIG15ICRUb2tlblJlc3VsdCA9ICRTZWxmLT5fVmFsaWRhdGVUb2tlbigKICAgICAgICAgICAgQWNjb3VudE5hbWUgID0+ICJBdXRoTW9kdWxlJENvdW50IiAuICI6OiIgLiAkR2VuZXJpY01vZHVsZSwKICAgICAgICAgICAgT3BlbklEQ29uZmlnID0+ICRPcGVuSURDb25maWcsCiAgICAgICAgICAgIFRva2VuICAgICAgICA9PiAkQmVhcmVyVG9rZW4sCiAgICAgICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgKTsKCiAgICAgICAgIyBpZiB0b2tlbiBub3QgdmFsaWRhdGVkLCB0cnkgbmV4dCB0b2tlbgogICAgICAgIGlmICggISRUb2tlblJlc3VsdC0+e1N1Y2Nlc3N9ICkgewoKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkZhaWxlZCB0byBhdXRoZW50aWNhdGUgT0F1dGgyIFRva2VuIHdpdGggQXV0aE1vZHVsZSAnQXV0aE1vZHVsZSRDb3VudDogJFRva2VuUmVzdWx0LT57RXJyb3J9ICIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IENPVU5UOwogICAgICAgIH0KCiAgICAgICAgIyBsb29rdXAgdGhlIFVzZXJMb2dpbiBmcm9tIHRoZSBUb2tlbiBkYXRhCiAgICAgICAgbXkgJElES2V5ID0gJENvbmZpZ09iamVjdC0+R2V0KCAiQXV0aE1vZHVsZSRDb3VudCIgLiAiOjoiIC4gJEdlbmVyaWNNb2R1bGUgLiAiOjpVSUQiICkgfHwgJ3N1Yic7CgogICAgICAgIG15ICRVc2VyTG9naW4gPSAkVG9rZW5SZXN1bHQtPntUb2tlbkRhdGF9LT57JElES2V5fTsKCiAgICAgICAgaWYgKCAhSXNTdHJpbmdXaXRoRGF0YSgkVXNlckxvZ2luKSApIHsKCiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJGYWlsZWQgdG8gYXV0aGVudGljYXRlIE9BdXRoMiBUb2tlbiB3aXRoIEF1dGhNb2R1bGUgJ0F1dGhNb2R1bGUkQ291bnQnIC0gbm8gVXNlckxvZ2luIGZvdW5kLiIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IENPVU5UOwogICAgICAgIH0KCiAgICAgICAgIyBzZWUgaWYgdGhlIHVzZXIgbG9naW4gbWF0Y2hlcyB0aGUgZXhwZWN0ZWQgbG9naW4KICAgICAgICBteSAkV2Vic2VydmljZVJlc3RyaWN0aW9ucyA9ICRDb25maWdPYmplY3QtPkdldCggIkF1dGhNb2R1bGUkQ291bnQiIC4gIjo6IiAuICRHZW5lcmljTW9kdWxlIC4gJzo6V2Vic2VydmljZTo6UmVzdHJpY3Rpb25zJyApIHx8IHt9OwoKICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCRXZWJzZXJ2aWNlUmVzdHJpY3Rpb25zKSAmJiAkV2Vic2VydmljZVJlc3RyaWN0aW9ucy0+e1VzZXJMb2dpbn0gKSB7CiAgICAgICAgICAgIGlmICggJFdlYnNlcnZpY2VSZXN0cmljdGlvbnMtPntVc2VyTG9naW59IG5lICRVc2VyTG9naW4gKSB7CgogICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiRmFpbGVkIHRvIGF1dGhlbnRpY2F0ZSBPQXV0aDIgVG9rZW4gd2l0aCBBdXRoTW9kdWxlICdBdXRoTW9kdWxlJENvdW50JyBkdWUgdG8gV2Vic2VydmljZVJlc3RyaWN0aW9uLiIsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG5leHQgQ09VTlQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgcmVzb2x2ZSBVc2VyTG9naW4gZnJvbSBvdG9ibyB1c2VyIGRiIHRhYmxlCiAgICAgICAgbXkgJVVzZXJEYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgIFVzZXIgID0+ICRVc2VyTG9naW4sCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBhc3NlcnQgdGhlIHVzZXIgYWN0dWFsbHkgZXhpc3RzIGluIGRhdGFiYXNlCiAgICAgICAgaWYgKCAhJFVzZXJEYXRhe1VzZXJJRH0gKSB7CgogICAgICAgICAgICAjIHRyeSBvbi10aGUtZmx5IGltcG9ydAogICAgICAgICAgICBteSAkVXNlckltcG9ydE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpVc2VySW1wb3J0Jyk7CiAgICAgICAgICAgIG15ICRSZXN1bHQgICAgICAgICAgID0gJFVzZXJJbXBvcnRPYmplY3QtPkltcG9ydFVzZXIoCiAgICAgICAgICAgICAgICBUb2tlbkRhdGEgICAgICAgID0+ICRUb2tlblJlc3VsdC0+e1Rva2VuRGF0YX0sCiAgICAgICAgICAgICAgICBPcGVuSURDb25maWdOYW1lID0+ICRHZW5lcmljTW9kdWxlLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAhJFJlc3VsdC0+e1N1Y2Nlc3N9ICkgewoKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkZhaWxlZCB0byBpbXBvcnQgVXNlciBiYXNlZCBvbiBmcmVzaCBPQXV0aDIgVG9rZW4gd2l0aCBBdXRoTW9kdWxlICdBdXRoTW9kdWxlJENvdW50JzogIiAuICRSZXN1bHQtPntFcnJvcn0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG5leHQgQ09VTlQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICVVc2VyRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPkdldFVzZXJEYXRhKAogICAgICAgICAgICAgICAgVXNlciAgPT4gJFVzZXJMb2dpbiwKICAgICAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHJlcG9ydCBzdWNjZXNzIQogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgICA9PiAxLAogICAgICAgICAgICBUb2tlbkRhdGEgPT4gJFRva2VuUmVzdWx0LT57VG9rZW5EYXRhfSwKICAgICAgICAgICAgVXNlckRhdGEgID0+IFwlVXNlckRhdGEsCiAgICAgICAgfTsKICAgIH0KCiAgICByZXR1cm4gJFJlc3VsdDsKfQoKIyB2YWxpZGF0ZQoKc3ViIF9WYWxpZGF0ZVRva2VuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFJldHVybiA9IHsgU3VjY2VzcyA9PiAwIH07CgogICAgZm9yIG15ICROZWVkZWQgKHF3L1Rva2VuIE9wZW5JRENvbmZpZyBBY2NvdW50TmFtZS8pIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybiAkUmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkT3BlbklEQ29uZmlnICAgPSAkUGFyYW17T3BlbklEQ29uZmlnfTsKICAgIG15ICRBY2NvdW50TmFtZSAgICA9ICRQYXJhbXtBY2NvdW50TmFtZX07CiAgICBteSAkQ29uZmlnT2JqZWN0ICAgPSAkUGFyYW17Q29uZmlnT2JqZWN0fTsKICAgIG15ICRDbGllbnRTZXR0aW5ncyA9ICRPcGVuSURDb25maWctPntDbGllbnRTZXR0aW5nc307CiAgICBteSAkVmFsaWRhdGVUb2tlbiAgPSAkT3BlbklEQ29uZmlnLT57TWlzY30tPntWYWxpZGF0ZVRva2VufSAvLyAxOwoKICAgIG15ICRXZWJzZXJ2aWNlUmVzdHJpY3Rpb25zID0gJENvbmZpZ09iamVjdC0+R2V0KCAkQWNjb3VudE5hbWUgLiAnOjpXZWJzZXJ2aWNlOjpSZXN0cmljdGlvbnMnICkgfHwge307CgogICAgbXkgJEV4cGVjdGVkQXVkaWVuY2UgPSAkV2Vic2VydmljZVJlc3RyaWN0aW9ucy0+e0F1ZGllbmNlfSAvLyAkQ2xpZW50U2V0dGluZ3MtPntDbGllbnRJRH07CiAgICBteSAkQXV0aG9yaXplZFBhcnR5ICA9ICRXZWJzZXJ2aWNlUmVzdHJpY3Rpb25zLT57QXV0aG9yaXplZFBhcnR5fTsKICAgIG15ICRFeHBlY3RlZFNjb3BlcyAgID0gJFdlYnNlcnZpY2VSZXN0cmljdGlvbnMtPntTY29wZX07CgogICAgbXkgJFRva2VuT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuJyk7CgogICAgaWYgKCRWYWxpZGF0ZVRva2VuKSB7CgogICAgICAgIG15ICRSZXN1bHQgPSAkVG9rZW5PYmplY3QtPlZhbGlkYXRlKAogICAgICAgICAgICBUb2tlbiAgICAgICAgICAgID0+ICRQYXJhbXtUb2tlbn0sCiAgICAgICAgICAgIE9wZW5JRENvbmZpZyAgICAgPT4gJE9wZW5JRENvbmZpZywKICAgICAgICAgICAgRXhwZWN0ZWRBdWRpZW5jZSA9PiAkRXhwZWN0ZWRBdWRpZW5jZSwKICAgICAgICAgICAgQXV0aG9yaXplZFBhcnR5ICA9PiAkQXV0aG9yaXplZFBhcnR5LAogICAgICAgICAgICBFeHBlY3RlZFNjb3BlcyAgID0+ICRFeHBlY3RlZFNjb3BlcywKICAgICAgICAgICAgTGVld2F5ICAgICAgICAgICA9PiAkUGFyYW17TGVld2F5fSAvLyAkT3BlbklEQ29uZmlnLT57TWlzY30tPntMZWV3YXl9IC8vIDIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICRSZXN1bHQ7CiAgICB9CgogICAgbXkgJFRva2VuRGF0YSA9ICRUb2tlbk9iamVjdC0+SW5zcGVjdCgKICAgICAgICBUb2tlbiAgPT4gJFBhcmFte1Rva2VufSwKICAgICAgICBMZWV3YXkgPT4gJFBhcmFte0xlZXdheX0gLy8gJE9wZW5JRENvbmZpZy0+e01pc2N9LT57TGVld2F5fSAvLyAyLAogICAgKTsKCiAgICByZXR1cm4gewogICAgICAgIFN1Y2Nlc3MgICA9PiBkZWZpbmVkICRUb2tlbkRhdGEgPyAxIDogMCwKICAgICAgICBUb2tlbkRhdGEgPT4gJFRva2VuRGF0YSwKICAgIH07Cn0KCjE7Cg==</File>
        <File Location="Kernel/System/OpenIDConnect/Configuration.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6Q29uZmlndXJhdGlvbjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwoKdXNlIExXUDo6U2ltcGxlOwp1c2UgTFdQOjpVc2VyQWdlbnQ7CnVzZSBIVFRQOjpSZXF1ZXN0OjpDb21tb247CnVzZSBVUkk6OkVzY2FwZSBxdyh1cmlfZXNjYXBlX3V0ZjgpOwp1c2UgQ3J5cHQ6OkpXVCAgcXcoZGVjb2RlX2p3dCk7CnVzZSBKU09OOwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCnVzZSBuYW1lc3BhY2U6OmF1dG9jbGVhbjsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpKU09OJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6UHJvZmlsZVJlcG9zaXRvcnknLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpDb25maWd1cmF0aW9uCgo9Zm9yIHN0b3B3b3JkcyBPSURDCm1hbmFnZSBPSURDIENvbmZpZ3VyYXRpb24gYW5kIFByb2ZpbGVzCgo9aGVhZDEgU1lOT1BTSVMKCkNvbmZpZ3VyYXRpb24gUHJvZmlsZXMgZm9yIE9wZW5JRCBDb25uZWN0CgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyOwogICAgbG9jYWwgJEtlcm5lbDo6T00gPSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlci0+bmV3KCk7CiAgICBteSAkT0lEQ0NvbmZpZ3VyYXRpb25PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6Q29uZmlndXJhdGlvbicpOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7CiAgICAgICAgU1NMT3B0aW9uTWFwID0+IHsKICAgICAgICAgICAgU1NMQ2VydGlmaWNhdGUgICAgPT4gJ1NTTF9jZXJ0X2ZpbGUnLAogICAgICAgICAgICBTU0xLZXkgICAgICAgICAgICA9PiAnU1NMX2tleV9maWxlJywKICAgICAgICAgICAgU1NMUGFzc3dvcmQgICAgICAgPT4gJ1NTTF9wYXNzd2RfY2InLAogICAgICAgICAgICBTU0xDQUZpbGUgICAgICAgICA9PiAnU1NMX2NhX2ZpbGUnLAogICAgICAgICAgICBTU0xDQURpciAgICAgICAgICA9PiAnU1NMX2NhX3BhdGgnLAogICAgICAgICAgICBTU0xWZXJpZnlIb3N0bmFtZSA9PiAndmVyaWZ5X2hvc3RuYW1lJywKICAgICAgICAgICAgU1NMVmVyaWZ5TW9kZSAgICAgPT4gJ1NTTF92ZXJpZnlfbW9kZScsCiAgICAgICAgfSwKICAgIH07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgR2V0T0F1dGhQcm9maWxlcygpCgpSZXR1cm5zIGEgbGlzdCBvZiB0aGUgTmFtZSBvZiB0aGUgT3BlbklEIENvbm5lY3QgUHJvZmlsZXMKdXNlZCBmb3IgKm91dGdvaW5nKiBjYWxscyAoSW52b2tlcikgZnJvbSBkYXRhYmFzZQp3aXRoIHRoZWlyIE9BdXRoMiBQcm92aWRlciBhbmQgQ2xpZW50IFNldHRpbmdzLgoKVGhlc2UgJ1Byb2ZpbGVzJyBtaXJyb3IgdGhlIGRhdGEgc3RydWN0dXJlIHVzZWQgZm9yIHRoZQpPcGVuSURDb25uZWN0IEF1dGggTW9kdWxlIHVzZWQgYnkgQXV0aGVudGljYXRvci4KCiAgICBteSAkUHJvZmlsZXMgPSAkT0lEQ0NvbmZpZ3VyYXRpb25PYmplY3QtPkdldE9BdXRoUHJvZmlsZXMoKTsKCj1jdXQKCnN1YiBHZXRPQXV0aFByb2ZpbGVzIHsKCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRQcm9maWxlUmVwb3NpdG9yeSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpQcm9maWxlUmVwb3NpdG9yeScpOwoKICAgIHJldHVybiAkUHJvZmlsZVJlcG9zaXRvcnktPkdldExpc3QoKTsKfQoKPWhlYWQyIEdldFByb3ZpZGVyRGF0YSgpCgpSZXR1cm5zIHRoZSBPcGVuSWQgZHluYW1pYyBQcm92aWRlciBEYXRhIGZvciBhIG5hbWVkIE9BdXRoIEZ1bmN0aW9uYWwgYWNjb3VudHMgY29uZmlndXJlZCBpbiBTeXNDb25maWcuCgogICAgbXkgJE9wZW5JRFByb3ZpZGVyRGF0YSA9ICRPSURDQ29uZmlndXJhdGlvbk9iamVjdC0+R2V0UHJvdmlkZXJEYXRhKAogICAgICAgIE9wZW5JRENvbmZpZyA9PiB7CiAgICAgICAgICAgIC4uLiBmcm9tIENvbmZpZy5wbSBhdXRobW9kdWxlLCBlZyAnQXV0aE1vZHVsZTo6T3BlbklEQ29ubmVjdDo6Q29uZmlnJwogICAgICAgICAgICAuLi4gb3IgZm9yIEludm9rZXJzIGZyb20gdGhlIERCIFByb2ZpbGVSZXBvc2l0b3J5LT5HZXRQcm9maWxlKC4uLikKICAgICAgICB9LAogICAgKTsKCj1jdXQKCnN1YiBHZXRQcm92aWRlckRhdGEgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICROZWVkZWQgKHF3L09wZW5JRENvbmZpZy8pIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJE9wZW5JRENvbmZpZyA9ICRQYXJhbXtPcGVuSURDb25maWd9OwogICAgcmV0dXJuIHVubGVzcyBJc0hhc2hSZWZXaXRoRGF0YSgkT3BlbklEQ29uZmlnKTsKCiAgICBteSAkUHJvdmlkZXJLZXkgPSAnUHJvdmlkZXJEYXRhJyAuICggJE9wZW5JRENvbmZpZy0+e1Byb3ZpZGVyU2V0dGluZ3N9e05hbWV9IC8vICcnICk7CgogICAgbXkgJE9wZW5JRFByb3ZpZGVyRGF0YTsKCiAgICBpZiAoICEkUGFyYW17Tm9DYWNoZX0gKSB7CiAgICAgICAgJE9wZW5JRFByb3ZpZGVyRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5HZXQoCiAgICAgICAgICAgIFR5cGUgPT4gJ09wZW5JRENvbm5lY3QnLAogICAgICAgICAgICBLZXkgID0+ICRQcm92aWRlcktleSwKICAgICAgICApOwogICAgfQoKICAgICMgaWYgbm90aGluZyBpcyBjYWNoZWQsIGdldCB0aGUgZGF0YQogICAgaWYgKCAhJE9wZW5JRFByb3ZpZGVyRGF0YSApIHsKCiAgICAgICAgJE9wZW5JRFByb3ZpZGVyRGF0YSA9ICRTZWxmLT5fUHJvdmlkZXJEYXRhR2V0KAogICAgICAgICAgICBPcGVuSURDb25maWcgPT4gJE9wZW5JRENvbmZpZywKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAkT3BlbklEUHJvdmlkZXJEYXRhOwp9Cgo9aGVhZDIgR2V0SXNzdWVyKCkKCj1mb3Igc3RvcHdvcmRzIGlzcwoKUmV0dXJucyB0aGUgT3BlbklkIGR5bmFtaWMgUHJvdmlkZXIgSXNzdWVyIHZhbHVlIGZvciBhIG5hbWVkIE9BdXRoIEZ1bmN0aW9uYWwgYWNjb3VudHMgY29uZmlndXJlZCBpbiBTeXNDb25maWcuClRoaXMgY2FuIGJlIHVzZWQgdG8gdmFsaWRhdGUgYW4gJ2lzcycgcmVxdWVzdCBwYXJhbWV0ZXIgZm9yIGluY29taW5nIE9BdXRoIGF1dGhvcml6YXRpb25fY29kZSBjYWxsYmFja3MuCgogICAgbXkgJElzc3VlciA9ICRPSURDQ29uZmlndXJhdGlvbk9iamVjdC0+R2V0SXNzdWVyKAogICAgICAgIE9wZW5JRENvbmZpZyA9PiB7CiAgICAgICAgICAgIC4uLiBmcm9tIENvbmZpZy5wbSBhdXRobW9kdWxlLCBlZyAnQXV0aE1vZHVsZTo6T3BlbklEQ29ubmVjdDo6Q29uZmlnJwogICAgICAgICAgICAuLi4gb3IgZm9yIEludm9rZXJzIGZyb20gdGhlIERCIFByb2ZpbGVSZXBvc2l0b3J5LT5HZXRQcm9maWxlKC4uLikKICAgICAgICB9LAogICAgKTsKCiAgICB0aGlzIG1ldGhvZCByZXR1cm5zIGEgc2ltcGxlIHN0cmluZy4KCj1jdXQKCnN1YiBHZXRJc3N1ZXIgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICROZWVkZWQgKHF3L09wZW5JRENvbmZpZy8pIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJE9wZW5JRFByb3ZpZGVyRGF0YSA9ICRTZWxmLT5HZXRQcm92aWRlckRhdGEoJVBhcmFtKTsKICAgIHJldHVybiB1bmxlc3MgSXNIYXNoUmVmV2l0aERhdGEoJE9wZW5JRFByb3ZpZGVyRGF0YSk7CgogICAgcmV0dXJuICRPcGVuSURQcm92aWRlckRhdGEtPntPcGVuSURDb25maWd1cmF0aW9ufS0+e2lzc3Vlcn07Cn0KCj1oZWFkMiBHZXRUb2tlbkVuZHBvaW50KCkKCgpSZXR1cm5zIHRoZSB0b2tlbiBlbmRwb2ludCBmb3IgdGhpcyBPcGVuSURDb25maWcuCgogICAgbXkgJElzc3VlciA9ICRPSURDQ29uZmlndXJhdGlvbk9iamVjdC0+R2V0VG9rZW5FbmRwb2ludCgKICAgICAgICBPcGVuSURDb25maWcgPT4gewogICAgICAgICAgICAuLi4gZnJvbSBDb25maWcucG0gYXV0aG1vZHVsZSwgZWcgJ0F1dGhNb2R1bGU6Ok9wZW5JRENvbm5lY3Q6OkNvbmZpZycKICAgICAgICAgICAgLi4uIG9yIGZvciBJbnZva2VycyBmcm9tIHRoZSBEQiBQcm9maWxlUmVwb3NpdG9yeS0+R2V0UHJvZmlsZSguLi4pCiAgICAgICAgfSwKICAgICk7CgogICAgdGhpcyBtZXRob2QgcmV0dXJucyBhIHNpbXBsZSBzdHJpbmcuCgo9Y3V0CgpzdWIgR2V0VG9rZW5FbmRwb2ludCB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkT3BlbklEQ29uZmlnICAgICA9ICRQYXJhbXtPcGVuSURDb25maWd9OwogICAgbXkgJENsaWVudFNldHRpbmdzICAgPSAkT3BlbklEQ29uZmlnLT57Q2xpZW50U2V0dGluZ3N9OwogICAgbXkgJFByb3ZpZGVyU2V0dGluZ3MgPSAkT3BlbklEQ29uZmlnLT57UHJvdmlkZXJTZXR0aW5nc307CgogICAgbXkgJE9wZW5JRFByb3ZpZGVyRGF0YSA9ICRTZWxmLT5HZXRQcm92aWRlckRhdGEoCiAgICAgICAgT3BlbklEQ29uZmlnID0+ICRPcGVuSURDb25maWcsCiAgICApOwoKICAgICMgZmV0Y2ggb3BlbmlkIHRva2VuIGVuZHBvaW50CgogICAgcmV0dXJuICRPcGVuSURQcm92aWRlckRhdGEtPntPcGVuSURDb25maWd1cmF0aW9ufS0+e3Rva2VuX2VuZHBvaW50fTsKfQoKPWhlYWQyIEdldEF1dGhvcml6YXRpb25FbmRwb2ludCgpCgoKUmV0dXJucyB0aGUgYXV0aG9yaXphdGlvbiAoYWthIGxvZ2luKSBlbmRwb2ludCBmb3IgdGhpcyBPcGVuSURDb25maWcuCgogICAgbXkgJElzc3VlciA9ICRPSURDQ29uZmlndXJhdGlvbk9iamVjdC0+R2V0QXV0aG9yaXphdGlvbkVuZHBvaW50KAogICAgICAgIE9wZW5JRENvbmZpZyA9PiB7CiAgICAgICAgICAgIC4uLiBmcm9tIENvbmZpZy5wbSBhdXRobW9kdWxlLCBlZyAnQXV0aE1vZHVsZTo6T3BlbklEQ29ubmVjdDo6Q29uZmlnJwogICAgICAgICAgICAuLi4gb3IgZm9yIEludm9rZXJzIGZyb20gdGhlIERCIFByb2ZpbGVSZXBvc2l0b3J5LT5HZXRQcm9maWxlKC4uLikKICAgICAgICB9LAogICAgKTsKCiAgICB0aGlzIG1ldGhvZCByZXR1cm5zIGEgc2ltcGxlIHN0cmluZy4KCj1jdXQKCnN1YiBHZXRBdXRob3JpemF0aW9uRW5kcG9pbnQgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJE9wZW5JRENvbmZpZyAgICAgPSAkUGFyYW17T3BlbklEQ29uZmlnfTsKICAgIG15ICRDbGllbnRTZXR0aW5ncyAgID0gJE9wZW5JRENvbmZpZy0+e0NsaWVudFNldHRpbmdzfTsKICAgIG15ICRQcm92aWRlclNldHRpbmdzID0gJE9wZW5JRENvbmZpZy0+e1Byb3ZpZGVyU2V0dGluZ3N9OwoKICAgIG15ICRPcGVuSURQcm92aWRlckRhdGEgPSAkU2VsZi0+R2V0UHJvdmlkZXJEYXRhKAogICAgICAgIE9wZW5JRENvbmZpZyA9PiAkT3BlbklEQ29uZmlnLAogICAgKTsKCiAgICByZXR1cm4gJE9wZW5JRFByb3ZpZGVyRGF0YS0+e09wZW5JRENvbmZpZ3VyYXRpb259LT57YXV0aG9yaXphdGlvbl9lbmRwb2ludH07Cn0KCnN1YiBfUHJvdmlkZXJEYXRhR2V0IHsKCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRPcGVuSURDb25maWcgICAgID0gJFBhcmFte09wZW5JRENvbmZpZ307CiAgICBteSAkQ2xpZW50U2V0dGluZ3MgICA9ICRPcGVuSURDb25maWctPntDbGllbnRTZXR0aW5nc307CiAgICBteSAkUHJvdmlkZXJTZXR0aW5ncyA9ICRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfTsKCiAgICBteSAkSlNPTk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpKU09OJyk7CgogICAgaWYgKCAhJFByb3ZpZGVyU2V0dGluZ3MtPntPcGVuSURDb25maWd1cmF0aW9ufSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgT3BlbklEQ29uZmlndXJhdGlvbiBpbiBwcm92aWRlciBzZXR0aW5ncyEnLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkVXNlckFnZW50ID0gTFdQOjpVc2VyQWdlbnQtPm5ldygpOwoKICAgIGlmICggJFByb3ZpZGVyU2V0dGluZ3MtPntTU0xPcHRpb25zfSApIHsKICAgICAgICBPUFRJT046CiAgICAgICAgZm9yIG15ICRLZXkgKCBrZXlzICRQcm92aWRlclNldHRpbmdzLT57U1NMT3B0aW9uc30tPiUqICkgewogICAgICAgICAgICBuZXh0IE9QVElPTiBpZiAhJFNlbGYtPntTU0xPcHRpb25NYXB9eyRLZXl9OwoKICAgICAgICAgICAgaWYgKCAkS2V5IGVxICdTU0xQYXNzd29yZCcgKSB7CiAgICAgICAgICAgICAgICAkVXNlckFnZW50LT5zc2xfb3B0cygKICAgICAgICAgICAgICAgICAgICAkU2VsZi0+e1NTTE9wdGlvbk1hcH17JEtleX0gPT4gc3ViIHsgJFByb3ZpZGVyU2V0dGluZ3MtPntTU0xPcHRpb25zfXskS2V5fSB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBuZXh0IE9QVElPTjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJFVzZXJBZ2VudC0+c3NsX29wdHMoCiAgICAgICAgICAgICAgICAkU2VsZi0+e1NTTE9wdGlvbk1hcH17JEtleX0gPT4gJFByb3ZpZGVyU2V0dGluZ3MtPntTU0xPcHRpb25zfXskS2V5fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJFJlc3BvbnNlID0gJFVzZXJBZ2VudC0+Z2V0KCAkUHJvdmlkZXJTZXR0aW5ncy0+e09wZW5JRENvbmZpZ3VyYXRpb259ICk7CiAgICBteSAkQ29udGVudCAgPSAkUmVzcG9uc2UtPmNvbnRlbnQ7CgogICAgaWYgKCAhJFJlc3BvbnNlLT5pc19zdWNjZXNzIHx8ICEkQ29udGVudCApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVycm9yIGluIHJldHJpZXZpbmcgT3BlbklEQ29uZmlndXJhdGlvbjogIiAuICRSZXNwb25zZS0+c3RhdHVzX2xpbmUsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRPcGVuSURDb25maWd1cmF0aW9uID0gJEpTT05PYmplY3QtPkRlY29kZSgKICAgICAgICBEYXRhID0+ICRDb250ZW50LAogICAgKTsKCiAgICBpZiAoICEkT3BlbklEQ29uZmlndXJhdGlvbiB8fCAhJE9wZW5JRENvbmZpZ3VyYXRpb24tPntqd2tzX3VyaX0gfHwgISRPcGVuSURDb25maWd1cmF0aW9uLT57aXNzdWVyfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0Vycm9uZW91cyBPcGVuSURDb25maWd1cmF0aW9uIScsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICRSZXNwb25zZSA9ICRVc2VyQWdlbnQtPmdldCggJE9wZW5JRENvbmZpZ3VyYXRpb24tPntqd2tzX3VyaX0gKTsKICAgICRDb250ZW50ICA9ICRSZXNwb25zZS0+Y29udGVudDsKCiAgICBpZiAoICEkUmVzcG9uc2UtPmlzX3N1Y2Nlc3MgfHwgISRDb250ZW50ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiRXJyb3IgaW4gcmV0cmlldmluZyBqd2tzOiAiIC4gJFJlc3BvbnNlLT5zdGF0dXNfbGluZSwKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJEtleURhdGEgPSAkSlNPTk9iamVjdC0+RGVjb2RlKAogICAgICAgIERhdGEgPT4gJENvbnRlbnQsCiAgICApOwoKICAgIGlmICggISRLZXlEYXRhICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnRXJyb3IgaW4gcmV0cmlldmluZyBrZXkgZGF0YSEnLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkUmV0dXJuID0gewogICAgICAgIE9wZW5JRENvbmZpZ3VyYXRpb24gPT4gJE9wZW5JRENvbmZpZ3VyYXRpb24sCiAgICAgICAgS2V5RGF0YSAgICAgICAgICAgICA9PiAkS2V5RGF0YSwKICAgIH07CgogICAgIyBzdG9yZSBpbiAkU2VsZgogICAgbXkgJFByb3ZpZGVyS2V5ID0gJ1Byb3ZpZGVyRGF0YScgLiAoICRQcm92aWRlclNldHRpbmdzLT57TmFtZX0gLy8gJycgKTsKICAgICRTZWxmLT57T3BlbklEUHJvdmlkZXJEYXRhfXskUHJvdmlkZXJLZXl9ID0gJFJldHVybjsKCiAgICAjIHNldCBjYWNoZSBmb3IgMzAgbWludXRlcyBvciBjb25maWd1cmVkIHRpbWUKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5TZXQoCiAgICAgICAgVHlwZSAgPT4gJ09wZW5JRENvbm5lY3QnLAogICAgICAgIEtleSAgID0+ICdQcm92aWRlckRhdGEnIC4gKCAkUHJvdmlkZXJTZXR0aW5ncy0+e05hbWV9IC8vICcnICksCiAgICAgICAgVmFsdWUgPT4gJFJldHVybiwKICAgICAgICBUVEwgICA9PiAkUHJvdmlkZXJTZXR0aW5ncy0+e1RUTH0gLy8gMTgwMCwKICAgICk7CgogICAgcmV0dXJuICRSZXR1cm47Cn0KCjE7Cg==</File>
        <File Location="Kernel/System/OpenIDConnect/FunctionalAccounts.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6RnVuY3Rpb25hbEFjY291bnRzOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKIyBjb3JlIG1vZHVsZXMKCiMgQ1BBTiBtb2R1bGVzCgojIE9UT0JPIG1vZHVsZXMKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKdXNlIG5hbWVzcGFjZTo6YXV0b2NsZWFuOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkNvbmZpZ3VyYXRpb24nLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpQcm9maWxlUmVwb3NpdG9yeScsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkZ1bmN0aW9uYWxBY2NvdW50UmVwb3NpdG9yeScsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuUmVwb3NpdG9yeScsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkZ1bmN0aW9uYWxBY2NvdW50cwoKPWZvciBzdG9wd29yZHMgT0lEQwoKbWFuYWdlIE9BdXRoMi9PSURDIGJhY2tlZCBGdW5jdGlvbmFsIEFjY291bnRzLgpDdXJyZW50bHkgaW1wbGVtZW50ZWQgYXJlIGFjY291bnRzIGZvcgpJbnZva2VycyBhbmQgUHJvdmlkZXJzLiBNYWlsQWNjb3VudHMgbmV4dC4KCj1oZWFkMSBTWU5PUFNJUwoKRnVuY3Rpb25hbCBhY2NvdW50IGZ1bmN0aW9ucyBmb3IgT3BlbklEIENvbm5lY3QKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRGdW5jdGlvbmFsQWNjb3VudHNPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6RnVuY3Rpb25hbEFjY291bnRzJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIEdldEFjY291bnRzKCkKClJldHVybnMgdGhlIE9BdXRoIEZ1bmN0aW9uYWwgYWNjb3VudHMgZm9yIEludm9rZXJzIGZyb20gREIKCiAgICBteSAkQWNjb3VudHMgPSAkRnVuY3Rpb25hbEFjY291bnRzT2JqZWN0LT5HZXRBY2NvdW50cygKICAgICAgICBWYWxpZCA9PiAxICMgb3B0aW9uYWwKICAgICk7CgogICAgcmV0dXJucyBbCiAgICAgICAgewogICAgICAgICAgICBBY2NvdW50SUQgPT4gZGF0YWJhc2UgaWQsCiAgICAgICAgICAgIE5hbWUgPT4gJE5hbWUsCiAgICAgICAgICAgIE9JRENQcm9maWxlSUQsCiAgICAgICAgICAgIE9wZW5JRENvbmZpZywKICAgICAgICAgICAgT0lEQ1Byb2ZpbGUgPT4gewogICAgICAgICAgICAgICAgUHJvZmlsZUlEID0+ICRJRCwKICAgICAgICAgICAgICAgIFVJRCA9PiAkVUlELAogICAgICAgICAgICAgICAgVmFsaWQgPT4gJFZhbGlkLAogICAgICAgICAgICAgICAgQ2xpZW50U2V0dGluZ3MgPT4gewoKICAgICAgICAgICAgICAgICAgICBDbGllbnRJRCAgPT4gJENsaWVudElELAogICAgICAgICAgICAgICAgICAgIENsaWVudFNlY3JldCA9PiAkQ2xpZW50U2VjcmV0LAogICAgICAgICAgICAgICAgICAgIFJlZGlyZWN0VVJJID0+ICRSZWRpcmVjdFVSSSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBQcm92aWRlclNldHRpbmdzID0+IHsKICAgICAgICAgICAgICAgICAgICBPcGVuSURDb25maWd1cmF0aW9uID0+ICRPcGVuSURDb25maWcsCiAgICAgICAgICAgICAgICAgICAgVFRMID0+ICRUVEwsCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAkTmFtZSwKICAgICAgICAgICAgICAgICAgICBTU0xPcHRpb25zID0+ICRZQU1MT2JqZWN0LT5Mb2FkKCBEYXRhID0+ICRTU0xPcHRpb25zIHx8IHt9ICksCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgTWlzYyA9PiAkWUFNTE9iamVjdC0+TG9hZCggRGF0YSA9PiAkTWlzYyB8fCB7fSApLAogICAgICAgICAgICB9LAogICAgICAgICAgICBHcmFudFR5cGUsCiAgICAgICAgICAgIFNjb3BlLAogICAgICAgICAgICBSZXNvdXJjZXMsCiAgICAgICAgICAgIFJlc291cmNlUGFyYW1OYW1lLAogICAgICAgICAgICBUb2tlblR5cGUsCiAgICAgICAgICAgIFZhbGlkCiAgICAgICAgfSwgLi4uCiAgICBdOwo9Y3V0CgpzdWIgR2V0QWNjb3VudHMgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEZ1bmN0aW9uYWxBY2NvdW50UmVwb3NpdG9yeSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpGdW5jdGlvbmFsQWNjb3VudFJlcG9zaXRvcnknKTsKICAgIG15ICRQcm9maWxlUmVwb3NpdG9yeSAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6UHJvZmlsZVJlcG9zaXRvcnknKTsKCiAgICBteSAkVmFsaWQgPSAkUGFyYW17VmFsaWR9OwoKICAgIG15ICRBY2NvdW50cyA9ICRGdW5jdGlvbmFsQWNjb3VudFJlcG9zaXRvcnktPkdldExpc3QoKTsKCiAgICBteSBAUmVzdWx0OwoKICAgIGZvciBteSAkQWNjb3VudCAoQCRBY2NvdW50cykgewogICAgICAgIGlmICggKCAhZGVmaW5lZCAkVmFsaWQgKSB8fCAoICRBY2NvdW50LT57VmFsaWR9ID09ICRWYWxpZCApICkgewoKICAgICAgICAgICAgbXkgJE9JRENQcm9maWxlID0gJFByb2ZpbGVSZXBvc2l0b3J5LT5HZXRQcm9maWxlKCBQcm9maWxlSUQgPT4gJEFjY291bnQtPntPSURDUHJvZmlsZUlEfSApOwoKICAgICAgICAgICAgJEFjY291bnQtPntPSURDUHJvZmlsZX0gPSAkT0lEQ1Byb2ZpbGU7CgogICAgICAgICAgICBwdXNoIEBSZXN1bHQsICRBY2NvdW50OwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gXEBSZXN1bHQ7Cn0KCj1oZWFkMiBHZXRBY2NvdW50KCkKClJldHVybnMgYSBuYW1lZCBPQXV0aCBGdW5jdGlvbmFsIGFjY291bnRzIGZvciBJbnZva2VycyBmcm9tIERCCgogICAgbXkgJEFjY291bnQgPSAkRnVuY3Rpb25hbEFjY291bnRzT2JqZWN0LT5HZXRBY2NvdW50KAogICAgICAgIE5hbWUgID0+ICc8U29tZUFjY291bnROYW1lPicsCiAgICApOwoKICAgIHJldHVybnMKICAgIHsKICAgICAgICBBY2NvdW50SUQgPT4gJElELAogICAgICAgIFZhbGlkID0+ICRWYWxpZCwKICAgICAgICBOYW1lID0+ICROYW1lLAogICAgICAgIE9JRENQcm9maWxlSUQgPT4gJE9JRENQcm9maWxlSUQsCiAgICAgICAgT0lEQ1Byb2ZpbGUgPT4gewogICAgICAgICAgICBQcm9maWxlSUQgPT4gJElELAogICAgICAgICAgICBVSUQgPT4gJFVJRCwKICAgICAgICAgICAgVmFsaWQgPT4gJFZhbGlkLAogICAgICAgICAgICBDbGllbnRTZXR0aW5ncyA9PiB7CgogICAgICAgICAgICAgICAgQ2xpZW50SUQgID0+ICRDbGllbnRJRCwKICAgICAgICAgICAgICAgIENsaWVudFNlY3JldCA9PiAkQ2xpZW50U2VjcmV0LAogICAgICAgICAgICAgICAgUmVkaXJlY3RVUkkgPT4gJFJlZGlyZWN0VVJJLAogICAgICAgICAgICB9LAogICAgICAgICAgICBQcm92aWRlclNldHRpbmdzID0+IHsKICAgICAgICAgICAgICAgIE9wZW5JRENvbmZpZ3VyYXRpb24gPT4gJE9wZW5JRENvbmZpZywKICAgICAgICAgICAgICAgIFRUTCA9PiAkVFRMLAogICAgICAgICAgICAgICAgTmFtZSA9PiAkTmFtZSwKICAgICAgICAgICAgICAgIFNTTE9wdGlvbnMgPT4gJFlBTUxPYmplY3QtPkxvYWQoIERhdGEgPT4gJFNTTE9wdGlvbnMgfHwge30gKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWlzYyA9PiAkWUFNTE9iamVjdC0+TG9hZCggRGF0YSA9PiAkTWlzYyB8fCB7fSApLAogICAgICAgIH0sCiAgICAgICAgR3JhbnRUeXBlID0+ICRHcmFudFR5cGUsCiAgICAgICAgU2NvcGUgPT4gJFNjb3BlLAogICAgICAgIFJlc291cmNlcyA9PiAkUmVzb3VyY2VzLAogICAgICAgIFJlc291cmNlUGFyYW1OYW1lID0+ICRSZXNvdXJjZVBhcmFtTmFtZSwKICAgICAgICBUb2tlblR5cGUgPT4gJFRva2VuVHlwZSwKICAgIH07Cgo9Y3V0CgpzdWIgR2V0QWNjb3VudCB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcvTmFtZS8pIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJEZ1bmN0aW9uYWxBY2NvdW50UmVwb3NpdG9yeSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpGdW5jdGlvbmFsQWNjb3VudFJlcG9zaXRvcnknKTsKCiAgICBteSAkQWNjb3VudCA9ICRGdW5jdGlvbmFsQWNjb3VudFJlcG9zaXRvcnktPkdldEFjY291bnQoIE5hbWUgPT4gJFBhcmFte05hbWV9ICk7CiAgICByZXR1cm4gaWYgISRBY2NvdW50OwoKICAgIG15ICRQcm9maWxlUmVwb3NpdG9yeSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpQcm9maWxlUmVwb3NpdG9yeScpOwogICAgbXkgJE9JRENQcm9maWxlICAgICAgID0gJFByb2ZpbGVSZXBvc2l0b3J5LT5HZXRQcm9maWxlKCBQcm9maWxlSUQgPT4gJEFjY291bnQtPntPSURDUHJvZmlsZUlEfSApOwoKICAgICRBY2NvdW50LT57T0lEQ1Byb2ZpbGV9ID0gJE9JRENQcm9maWxlOwogICAgcmV0dXJuICRBY2NvdW50Owp9Cgo9aGVhZDIgU2F2ZUFjY291bnQoKQoKUGVyc2lzdHMgYSBGdW5jdGlvbmFsIEFjY291bnQgaW4gREIuIFRoaXMgaW1wbGVtZW50cyBTYXZlLW9yLVVwZGF0ZS4KCiAgICBteSAkU3VjY2VzcyA9ICRGdW5jdGlvbmFsQWNjb3VudHNPYmplY3QtPlNhdmVBY2NvdW50KAogICAgICAgIE5hbWUgICAgICAgICAgICAgID0+ICc8U29tZUFjY291bnROYW1lPicsCiAgICAgICAgT0lEQ1Byb2ZpbGVJRCAgICAgPT4gJFBhcmFte1Byb3ZpZGVyTmFtZX0sCiAgICAgICAgR3JhbnRUeXBlICAgICAgICAgPT4gJFBhcmFte0dyYW50VHlwZX0sCiAgICAgICAgU2NvcGUgICAgICAgICAgICAgPT4gJFBhcmFte0ludm9rZXJTY29wZXN9LAogICAgICAgIFJlc291cmNlcyAgICAgICAgID0+ICRQYXJhbXtSZXNvdXJjZXN9LAogICAgICAgIFJlc291cmNlUGFyYW1OYW1lID0+ICRQYXJhbXtSZXNvdXJjZVBhcmFtfSwKICAgICAgICBUb2tlbiAgICAgICAgICAgICA9PiAkUGFyYW17VG9rZW5UeXBlfSwKICAgICAgICBVc2VybmFtZSAgICAgICAgICA9PiAkUGFyYW17VXNlcm5hbWV9LAogICAgICAgIFBhc3N3b3JkICAgICAgICAgID0+ICRQYXJhbXtQYXNzd29yZH0sCiAgICAgICAgVmFsaWQgICAgICAgICAgICAgPT4gMSwKICAgICAgICBVc2VySUQgICAgICAgICAgICA9PiAjIHVzZXJpZCBtYWtpbmcgY2hhbmdlcwogICAgKTsKCj1jdXQKCnN1YiBTYXZlQWNjb3VudCB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcvTmFtZSBPSURDUHJvZmlsZUlEIEdyYW50VHlwZSBVc2VySUQvKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICROYW1lID0gJFBhcmFte05hbWV9OwoKICAgIG15ICRGdW5jdGlvbmFsQWNjb3VudFJlcG9zaXRvcnkgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6RnVuY3Rpb25hbEFjY291bnRSZXBvc2l0b3J5Jyk7CgogICAgbXkgJEV4aXN0cyA9ICRGdW5jdGlvbmFsQWNjb3VudFJlcG9zaXRvcnktPkV4aXN0cyggTmFtZSA9PiAkTmFtZSApOwogICAgaWYgKCRFeGlzdHMpIHsKCiAgICAgICAgcmV0dXJuICRGdW5jdGlvbmFsQWNjb3VudFJlcG9zaXRvcnktPlVwZGF0ZUFjY291bnQoJVBhcmFtKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIHJldHVybiAkRnVuY3Rpb25hbEFjY291bnRSZXBvc2l0b3J5LT5BZGRBY2NvdW50KCVQYXJhbSk7CiAgICB9Cn0KCj1oZWFkMiBEZWxldGVBY2NvdW50KCkKCkRlbGV0ZXMgYW4gRnVuY3Rpb25hbCBhY2NvdW50cyBmcm9tIERCLiBEZWxldGluZyBhbiBBY2NvdW50IHdpbGwgcmVtb3ZlCmFuZCBhc3NvY2lhdGVkIFRva2VucyEKCiAgICBteSAkQWNjb3VudCA9ICRGdW5jdGlvbmFsQWNjb3VudHNPYmplY3QtPkRlbGV0ZUFjY291bnQoCiAgICAgICAgTmFtZSAgPT4gJzxTb21lQWNjb3VudE5hbWU+JywKICAgICAgICBVc2VySUQgICAgID0+ICMgVXNlcklEIG1ha2luZyBjaGFuZ2VzCiAgICApOwoKPWN1dAoKc3ViIERlbGV0ZUFjY291bnQgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICROZWVkZWQgKHF3L05hbWUgVXNlcklELykgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkTmFtZSA9ICRQYXJhbXtOYW1lfTsKCiAgICBteSAkVG9rZW5SZXBvc2l0b3J5ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuUmVwb3NpdG9yeScpOwoKICAgICRUb2tlblJlcG9zaXRvcnktPkRlbGV0ZVRva2VuKAogICAgICAgIEFjY291bnROYW1lID0+ICROYW1lLAogICAgKTsKCiAgICBteSAkRnVuY3Rpb25hbEFjY291bnRSZXBvc2l0b3J5ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkZ1bmN0aW9uYWxBY2NvdW50UmVwb3NpdG9yeScpOwoKICAgIHJldHVybiAkRnVuY3Rpb25hbEFjY291bnRSZXBvc2l0b3J5LT5EZWxldGVBY2NvdW50KCBOYW1lID0+ICROYW1lICk7Cn0KCj1oZWFkMiBHZXRQcm92aWRlckRhdGEoKQoKUmV0dXJucyB0aGUgT3BlbklkIGR5bmFtaWMgUHJvdmlkZXIgRGF0YSBmb3IgYSBGdW5jdGlvbmFsIGFjY291bnQgZm9yIEludm9rZXJzCgogICAgbXkgJE9wZW5JRFByb3ZpZGVyRGF0YSA9ICRGdW5jdGlvbmFsQWNjb3VudHNPYmplY3QtPkdldFByb3ZpZGVyRGF0YSgKICAgICAgICBOYW1lICA9PiAnPFNvbWVBY2NvdW50TmFtZT4nLAogICAgKTsKCj1jdXQKCnN1YiBHZXRQcm92aWRlckRhdGEgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEFjY291bnQgPSAkU2VsZi0+R2V0QWNjb3VudCglUGFyYW0pOwoKICAgIG15ICRPSURDUHJvZmlsZSA9ICRBY2NvdW50LT57T0lEQ1Byb2ZpbGV9OwoKICAgIG15ICRPSURDQ29uZmlndXJhdGlvbiAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6Q29uZmlndXJhdGlvbicpOwogICAgbXkgJE9wZW5JRFByb3ZpZGVyRGF0YSA9ICRPSURDQ29uZmlndXJhdGlvbi0+R2V0UHJvdmlkZXJEYXRhKAogICAgICAgIE9wZW5JRENvbmZpZyA9PiAkT0lEQ1Byb2ZpbGUKICAgICk7CgogICAgcmV0dXJuICRPcGVuSURQcm92aWRlckRhdGE7Cn0KCj1oZWFkMiBHZXRJc3N1ZXIoKQoKPWZvciBzdG9wd29yZHMgaXNzCgpSZXR1cm5zIHRoZSBPcGVuSWQgZHluYW1pYyBQcm92aWRlciBJc3N1ZXIgdmFsdWUgZm9yIGEgRnVuY3Rpb25hbCBhY2NvdW50IGZvciBJbnZva2Vycy4KVGhpcyBjYW4gYmUgdXNlZCB0byB2YWxpZGF0ZSBhbiAnaXNzJyByZXF1ZXN0IHBhcmFtZXRlciBmb3IgaW5jb21pbmcgT0F1dGggYXV0aG9yaXphdGlvbl9jb2RlIGNhbGxiYWNrcy4KCiAgICBteSAkSXNzdWVyID0gJEZ1bmN0aW9uYWxBY2NvdW50c09iamVjdC0+R2V0SXNzdWVyKAogICAgICAgIE5hbWUgID0+ICc8U29tZUFjY291bnROYW1lPicsCiAgICApOwoKICAgIHRoaXMgbWV0aG9kIHJldHVybnMgYSBzaW1wbGUgc3RyaW5nLgoKPWN1dAoKc3ViIEdldElzc3VlciB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkT3BlbklEUHJvdmlkZXJEYXRhID0gJFNlbGYtPkdldFByb3ZpZGVyRGF0YSglUGFyYW0pOwogICAgcmV0dXJuIHVubGVzcyBJc0hhc2hSZWZXaXRoRGF0YSgkT3BlbklEUHJvdmlkZXJEYXRhKTsKCiAgICByZXR1cm4gJE9wZW5JRFByb3ZpZGVyRGF0YS0+e09wZW5JRENvbmZpZ3VyYXRpb259LT57aXNzdWVyfTsKfQoKPWhlYWQyIEdldFRva2VuRW5kcG9pbnQoKQoKUmV0dXJucyB0aGUgdG9rZW4gZW5kcG9pbnQgZm9yIHRoaXMgRnVuY3Rpb25hbCBBY2NvdW50LgoKICAgIG15ICRJc3N1ZXIgPSAkRnVuY3Rpb25hbEFjY291bnRzT2JqZWN0LT5HZXRUb2tlbkVuZHBvaW50KAogICAgICAgIE5hbWUgID0+ICc8U29tZUFjY291bnROYW1lPicsCiAgICAgKTsKCiAgICB0aGlzIG1ldGhvZCByZXR1cm5zIGEgc2ltcGxlIHN0cmluZy4KCj1jdXQKCnN1YiBHZXRUb2tlbkVuZHBvaW50IHsKCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRPcGVuSURQcm92aWRlckRhdGEgPSAkU2VsZi0+R2V0UHJvdmlkZXJEYXRhKCVQYXJhbSk7CgogICAgcmV0dXJuICRPcGVuSURQcm92aWRlckRhdGEtPntPcGVuSURDb25maWd1cmF0aW9ufS0+e3Rva2VuX2VuZHBvaW50fTsKfQoKPWhlYWQyIEdldEF1dGhvcml6YXRpb25FbmRwb2ludCgpCgpSZXR1cm5zIHRoZSBhdXRob3JpemF0aW9uIChsb2dpbikgZW5kcG9pbnQgZm9yIHRoaXMgRnVuY3Rpb25hbCBBY2NvdW50LgoKICAgIG15ICRJc3N1ZXIgPSAkRnVuY3Rpb25hbEFjY291bnRzT2JqZWN0LT5HZXRBdXRob3JpemF0aW9uRW5kcG9pbnQoCiAgICAgICAgTmFtZSAgPT4gJzxTb21lQWNjb3VudE5hbWU+JywKICAgICApOwoKICAgIHRoaXMgbWV0aG9kIHJldHVybnMgYSBzaW1wbGUgc3RyaW5nLgoKPWN1dAoKc3ViIEdldEF1dGhvcml6YXRpb25FbmRwb2ludCB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkT3BlbklEUHJvdmlkZXJEYXRhID0gJFNlbGYtPkdldFByb3ZpZGVyRGF0YSglUGFyYW0pOwoKICAgIHJldHVybiAkT3BlbklEUHJvdmlkZXJEYXRhLT57T3BlbklEQ29uZmlndXJhdGlvbn0tPnthdXRob3JpemF0aW9uX2VuZHBvaW50fTsKfQoKPWhlYWQyIENsZWFyQ2FjaGUoKQoKQ2xlYXJzIHRoZSBjYWNoZWQgT0lEQyBQcm92aWRlZXIgZGF0YSBmb3IgdGhpcyBmdW5jdGlvbmFsIGFjY291bnQKCiAgICAkRnVuY3Rpb25hbEFjY291bnRzT2JqZWN0LT5DbGVhckNhY2hlKAogICAgICAgIE5hbWUgID0+ICc8U29tZUFjY291bnROYW1lPicsCiAgICAgKTsKCj1jdXQKCnN1YiBDbGVhckNhY2hlIHsKCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRBY2NvdW50ID0gJFNlbGYtPkdldEFjY291bnQoJVBhcmFtKTsKCiAgICBteSAkT0lEQ1Byb2ZpbGUgPSAkQWNjb3VudC0+e09JRENQcm9maWxlfTsKCiAgICAjICAgIG15ICRPcGVuSURDb25maWcgPSAkU2VsZi0+R2V0T3BlbklEQ29uZmlnKCVQYXJhbSk7CgogICAgbXkgJFByb3ZpZGVyS2V5ID0gJ1Byb3ZpZGVyRGF0YScgLiAoICRPSURDUHJvZmlsZS0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57TmFtZX0gLy8gJycgKTsKCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+RGVsZXRlKAogICAgICAgIFR5cGUgPT4gJ09wZW5JRENvbm5lY3QnLAogICAgICAgIEtleSAgPT4gJFByb3ZpZGVyS2V5LAogICAgKTsKCiAgICByZXR1cm47Cn0KCjE7Cg==</File>
        <File Location="Kernel/System/OpenIDConnect/FunctionalAccountRepository.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6RnVuY3Rpb25hbEFjY291bnRSZXBvc2l0b3J5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKIyBjb3JlIG1vZHVsZXMKCiMgQ1BBTiBtb2R1bGVzCgojIE9UT0JPIG1vZHVsZXMKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKdXNlIG5hbWVzcGFjZTo6YXV0b2NsZWFuOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEQicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OllBTUwnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCgogICAgIyAgICAnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6RnVuY3Rpb25hbEFjY291bnRSZXBvc2l0b3J5IC0gREIgYmFja2VuZCBmb3IgT0lEQyBGdW5jdGlvbmFsIEFjY291bnQgZm9yIEludm9rZXJzIChvdXRnb2luZyBjYWxscykKCj1mb3Igc3RvcHdvcmRzIE9JREMKCj1oZWFkMSBTWU5PUFNJUwoKRnVuY3Rpb25hIEFjY291bnRzIERCIGFic3RyYWN0aW9uIGZvciBPcGVuSUQgQ29ubmVjdAoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJEZ1bmN0aW9uYWxBY2NvdW50UmVwb3NpdG9yeU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpGdW5jdGlvbmFsQWNjb3VudFJlcG9zaXRvcnknKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CgogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIEdldExpc3QoKQoKUmV0dXJucyBhIGxpc3Qgb2YgT0lEQyBGdW5jdGlvbmFsIEFjY291bnRzLiBVc2FnZToKCiAgICBteSAkTGlzdCA9ICRGdW5jdGlvbmFsQWNjb3VudFJlcG9zaXRvcnlPYmplY3QtPkdldExpc3QoKTsKCiAgICB3aGVyZQoKICAgIG15ICRMaXN0ID0gWwogICAgICAgIHsKICAgICAgICAgICAgQWNjb3VudElEID0+IGRhdGFiYXNlIGlkLAogICAgICAgICAgICBOYW1lID0+ICROYW1lLAogICAgICAgICAgICBPSURDUHJvZmlsZUlELAogICAgICAgICAgICBHcmFudFR5cGUsCiAgICAgICAgICAgIFNjb3BlLAogICAgICAgICAgICBSZXNvdXJjZXMsCiAgICAgICAgICAgIFJlc291cmNlUGFyYW1OYW1lLAogICAgICAgICAgICBUb2tlblR5cGUsCiAgICAgICAgICAgIFZhbGlkCiAgICAgICAgfSwKICAgICAgICAuLi4KICAgIF07Cgo9Y3V0CgpzdWIgR2V0TGlzdCB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkREJPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwogICAgbXkgJFlBTUxPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6WUFNTCcpOwoKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIlNFTEVDVCBpZCwgdmFsaWRfaWQsIG5hbWUsIG9pZGNfcHJvZmlsZV9pZCwgZ3JhbnRfdHlwZSwKICAgICAgICAgICAgICAgICAgICBzY29wZXMsIHJlc291cmNlcywgcmVzb3VyY2VfcGFyYW1fbmFtZSwgdG9rZW5fdHlwZSwKICAgICAgICAgICAgICAgICAgICB1c2VybmFtZSwgcGFzc3dkCiAgICAgICAgICAgICAgICAgICAgRlJPTSBvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudHMgIiwKICAgICk7CgogICAgbXkgQFJlc3VsdDsKICAgIHdoaWxlICgKICAgICAgICBteSAoCiAgICAgICAgICAgICRJRCwgICAgICAgJFZhbGlkLCAgICAgJE5hbWUsICRPSURDUHJvZmlsZUlELCAkR3JhbnRUeXBlLAogICAgICAgICAgICAkU2NvcGUsICAgICRSZXNvdXJjZXMsICRSZXNvdXJjZVBhcmFtTmFtZSwgJFRva2VuVHlwZSwKICAgICAgICAgICAgJFVzZXJuYW1lLCAkUGFzc3dvcmQKICAgICAgICApID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5CiAgICAgICAgKQogICAgewoKICAgICAgICBteSAkSXRlbSA9IHsKICAgICAgICAgICAgQWNjb3VudElEICAgICAgICAgPT4gJElELAogICAgICAgICAgICBWYWxpZCAgICAgICAgICAgICA9PiAkVmFsaWQsCiAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgID0+ICROYW1lLAogICAgICAgICAgICBPSURDUHJvZmlsZUlEICAgICA9PiAkT0lEQ1Byb2ZpbGVJRCwKICAgICAgICAgICAgR3JhbnRUeXBlICAgICAgICAgPT4gJEdyYW50VHlwZSwKICAgICAgICAgICAgU2NvcGUgICAgICAgICAgICAgPT4gJFNjb3BlLAogICAgICAgICAgICBSZXNvdXJjZXMgICAgICAgICA9PiAkUmVzb3VyY2VzLAogICAgICAgICAgICBSZXNvdXJjZVBhcmFtTmFtZSA9PiAkUmVzb3VyY2VQYXJhbU5hbWUsCiAgICAgICAgICAgIFRva2VuVHlwZSAgICAgICAgID0+ICRUb2tlblR5cGUsCiAgICAgICAgICAgIFVzZXJuYW1lICAgICAgICAgID0+ICRVc2VybmFtZSwKICAgICAgICAgICAgUGFzc3dvcmQgICAgICAgICAgPT4gJFBhc3N3b3JkLAogICAgICAgIH07CgogICAgICAgIHB1c2ggQFJlc3VsdCwgJEl0ZW07CiAgICB9CgogICAgcmV0dXJuIFxAUmVzdWx0Owp9Cgo9aGVhZDIgR2V0QWNjb3VudCgpCgpSZXR1cm5zIGEgc3BlY2lmaWMgT0lEQyBGdW5jdGlvbmFsIEFjY291bnQgYnkgbmFtZS4gVXNhZ2U6CgogICAgbXkgJFByb2ZpbGUgPSAkRnVuY3Rpb25hbEFjY291bnRSZXBvc2l0b3J5T2JqZWN0LT5HZXRBY2NvdW50KCBOYW1lID0+ICc8RnVuY3Rpb25hbEFjY291bnROYW1lPicgKTsKCiAgICB3aGVyZQoKICAgIG15ICRQcm9maWxlID0gewogICAgICAgIEFjY291bnRJRCA9PiBkYXRhYmFzZSBpZCwKICAgICAgICBOYW1lID0+ICROYW1lLAogICAgICAgIE9JRENQcm9maWxlSUQsCiAgICAgICAgR3JhbnRUeXBlLAogICAgICAgIFNjb3BlLAogICAgICAgIFJlc291cmNlcywKICAgICAgICBSZXNvdXJjZVBhcmFtTmFtZSwKICAgICAgICBUb2tlblR5cGUsCiAgICAgICAgVmFsaWQKICAgIH07Cgo9Y3V0CgpzdWIgR2V0QWNjb3VudCB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcvTmFtZS8pIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJE5hbWUgPSAkUGFyYW17TmFtZX07CgogICAgbXkgJERCT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKICAgIG15ICRZQU1MT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OllBTUwnKTsKCiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICJTRUxFQ1QgaWQsIHZhbGlkX2lkLCBuYW1lLCBvaWRjX3Byb2ZpbGVfaWQsCiAgICAgICAgICAgICAgICAgICAgZ3JhbnRfdHlwZSwgc2NvcGVzLCByZXNvdXJjZXMsIHJlc291cmNlX3BhcmFtX25hbWUsCiAgICAgICAgICAgICAgICAgICAgdG9rZW5fdHlwZSwgdXNlcm5hbWUsIHBhc3N3ZAogICAgICAgICAgICAgICAgICAgIEZST00gb2lkY19mdW5jdGlvbmFsX2FjY291bnRzIFdIRVJFIG5hbWUgPSA/ICIsCiAgICAgICAgQmluZCA9PiBbIFwkTmFtZSBdLAogICAgKTsKCiAgICBpZiAoCiAgICAgICAgbXkgKAogICAgICAgICAgICAkSUQsICAgICAgICRWYWxpZCwgICAgICROYW1lLCAkT0lEQ1Byb2ZpbGVJRCwgJEdyYW50VHlwZSwKICAgICAgICAgICAgJFNjb3BlLCAgICAkUmVzb3VyY2VzLCAkUmVzb3VyY2VQYXJhbU5hbWUsICRUb2tlblR5cGUsCiAgICAgICAgICAgICRVc2VybmFtZSwgJFBhc3N3b3JkCiAgICAgICAgKSA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpCiAgICAgICAgKQogICAgewoKICAgICAgICBteSAkSXRlbSA9IHsKICAgICAgICAgICAgQWNjb3VudElEICAgICAgICAgPT4gJElELAogICAgICAgICAgICBWYWxpZCAgICAgICAgICAgICA9PiAkVmFsaWQsCiAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgID0+ICROYW1lLAogICAgICAgICAgICBPSURDUHJvZmlsZUlEICAgICA9PiAkT0lEQ1Byb2ZpbGVJRCwKICAgICAgICAgICAgR3JhbnRUeXBlICAgICAgICAgPT4gJEdyYW50VHlwZSwKICAgICAgICAgICAgU2NvcGUgICAgICAgICAgICAgPT4gJFNjb3BlLAogICAgICAgICAgICBSZXNvdXJjZXMgICAgICAgICA9PiAkUmVzb3VyY2VzLAogICAgICAgICAgICBSZXNvdXJjZVBhcmFtTmFtZSA9PiAkUmVzb3VyY2VQYXJhbU5hbWUsCiAgICAgICAgICAgIFRva2VuVHlwZSAgICAgICAgID0+ICRUb2tlblR5cGUsCiAgICAgICAgICAgIFVzZXJuYW1lICAgICAgICAgID0+ICRVc2VybmFtZSwKICAgICAgICAgICAgUGFzc3dvcmQgICAgICAgICAgPT4gJFBhc3N3b3JkLAogICAgICAgIH07CgogICAgICAgIHJldHVybiAkSXRlbTsKICAgIH0KCiAgICByZXR1cm47Cn0KCj1oZWFkMiBHZXRCeUlEKCkKClJldHVybnMgYSBzcGVjaWZpYyBPSURDIEZ1bmN0aW9uYWwgQWNjb3VudCBieSBBY2NvdW50SUQuIFVzYWdlOgoKICAgIG15ICRQcm9maWxlID0gJEZ1bmN0aW9uYWxBY2NvdW50UmVwb3NpdG9yeU9iamVjdC0+R2V0QnlJRCggQWNjb3VudElEID0+IDxGdW5jdGlvbmFsQWNjb3VudElEPiApOwoKICAgIHdoZXJlCgogICAgbXkgJFByb2ZpbGUgPSB7CiAgICAgICAgQWNjb3VudElEID0+IGRhdGFiYXNlIGlkLAogICAgICAgIE5hbWUgPT4gJE5hbWUsCiAgICAgICAgT0lEQ1Byb2ZpbGVJRCwKICAgICAgICBHcmFudFR5cGUsCiAgICAgICAgU2NvcGUsCiAgICAgICAgUmVzb3VyY2VzLAogICAgICAgIFJlc291cmNlUGFyYW1OYW1lLAogICAgICAgIFRva2VuVHlwZSwKICAgICAgICBWYWxpZAogICAgfTsKCj1jdXQKCnN1YiBHZXRCeUlEIHsKCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdy9BY2NvdW50SUQvKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICRBY2NvdW50SUQgPSAkUGFyYW17QWNjb3VudElEfTsKCiAgICBteSAkREJPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwogICAgbXkgJFlBTUxPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6WUFNTCcpOwoKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIlNFTEVDVCBpZCwgdmFsaWRfaWQsIG5hbWUsIG9pZGNfcHJvZmlsZV9pZCwKICAgICAgICAgICAgICAgICAgICBncmFudF90eXBlLCBzY29wZXMsIHJlc291cmNlcywgcmVzb3VyY2VfcGFyYW1fbmFtZSwKICAgICAgICAgICAgICAgICAgICB0b2tlbl90eXBlLCB1c2VybmFtZSwgcGFzc3dkCiAgICAgICAgICAgICAgICAgICAgRlJPTSBvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudHMgV0hFUkUgaWQgPSA/ICIsCiAgICAgICAgQmluZCA9PiBbIFwkQWNjb3VudElEIF0sCgogICAgICAgICMgICAgICAgICAgICBMaW1pdCA9PiAxCiAgICApOwoKICAgIGlmICgKICAgICAgICBteSAoCiAgICAgICAgICAgICRJRCwgICAgICAgJFZhbGlkLCAgICAgJE5hbWUsICRPSURDUHJvZmlsZUlELCAkR3JhbnRUeXBlLAogICAgICAgICAgICAkU2NvcGUsICAgICRSZXNvdXJjZXMsICRSZXNvdXJjZVBhcmFtTmFtZSwgJFRva2VuVHlwZSwKICAgICAgICAgICAgJFVzZXJuYW1lLCAkUGFzc3dvcmQKICAgICAgICApID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5CiAgICAgICAgKQogICAgewoKICAgICAgICBteSAkSXRlbSA9IHsKICAgICAgICAgICAgQWNjb3VudElEICAgICAgICAgPT4gJElELAogICAgICAgICAgICBWYWxpZCAgICAgICAgICAgICA9PiAkVmFsaWQsCiAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgID0+ICROYW1lLAogICAgICAgICAgICBPSURDUHJvZmlsZUlEICAgICA9PiAkT0lEQ1Byb2ZpbGVJRCwKICAgICAgICAgICAgR3JhbnRUeXBlICAgICAgICAgPT4gJEdyYW50VHlwZSwKICAgICAgICAgICAgU2NvcGUgICAgICAgICAgICAgPT4gJFNjb3BlLAogICAgICAgICAgICBSZXNvdXJjZXMgICAgICAgICA9PiAkUmVzb3VyY2VzLAogICAgICAgICAgICBSZXNvdXJjZVBhcmFtTmFtZSA9PiAkUmVzb3VyY2VQYXJhbU5hbWUsCiAgICAgICAgICAgIFRva2VuVHlwZSAgICAgICAgID0+ICRUb2tlblR5cGUsCiAgICAgICAgICAgIFVzZXJuYW1lICAgICAgICAgID0+ICRVc2VybmFtZSwKICAgICAgICAgICAgUGFzc3dvcmQgICAgICAgICAgPT4gJFBhc3N3b3JkLAogICAgICAgIH07CgogICAgICAgIHJldHVybiAkSXRlbTsKICAgIH0KCiAgICByZXR1cm47Cn0KCj1oZWFkMiBFeGlzdHMoKQoKICAgIENoZWNrcyB3aGV0aGVyIGEgbmFtZWQgRnVuY3Rpb25hbCBBY2NvdW50IGV4aXN0cy4KCiAgICBteSAkRXhpc3RzID0gJEZ1bmN0aW9uYWxBY2NvdW50UmVwb3NpdG9yeU9iamVjdC0+RXhpc3RzKCBOYW1lID0+ICROYW1lICk7CgogICAgcmV0dXJucyBhIGJvb2xlYW4KCj1jdXQKCnN1YiBFeGlzdHMgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgZm9yIG15ICROZWVkZWQgKHF3L05hbWUvKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICROYW1lID0gJFBhcmFte05hbWV9OwoKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgID0+ICJTRUxFQ1QgaWQgRlJPTSBvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudHMgV0hFUkUgbmFtZSA9ID8gIiwKICAgICAgICBCaW5kID0+IFsgXCROYW1lIF0sCgogICAgICAgICMgICAgICAgICAgICBMaW1pdCA9PiAxCiAgICApOwoKICAgIGlmICggbXkgKCRJRCkgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkgKSB7CiAgICAgICAgcmV0dXJuICRJRDsKICAgIH0KCiAgICByZXR1cm47Cn0KCj1oZWFkMiBBZGRBY2NvdW50KCkKCiAgICBJbnNlcnQgYSBuZXcgRnVuY3Rpb25hbCBBY2NvdW50IGludG8gREIuCgogICAgTm90ZSB5b3UgbmVlZCB0byBnaXZlIHRoZSBPSURDUHJvZmlsZUlEIGFzIHBhcmFtZXRlci4KCiAgICBteSAkU3VjY2VzcyA9ICRGdW5jdGlvbmFsQWNjb3VudFJlcG9zaXRvcnlPYmplY3QtPkFkZEFjY291bnQoCgogICAgICAgIE5hbWUgPT4gJE5hbWUsCiAgICAgICAgT0lEQ1Byb2ZpbGVJRCwKICAgICAgICBHcmFudFR5cGUsCiAgICAgICAgU2NvcGUsCiAgICAgICAgUmVzb3VyY2VzLAogICAgICAgIFJlc291cmNlUGFyYW1OYW1lLAogICAgICAgIFRva2VuVHlwZSwKICAgICAgICBWYWxpZCwKICAgICAgICBVc2VySUQsCiAgICAgICAgVXNlcm5hbWUsICMgb3B0aW9uYWwsIGdyYW50X3R5cGUgcGFzc3dvcmQgb25seQogICAgICAgIFBhc3N3b3JkLCAjIG9wdGlvbmFsLCBncmFudF90eXBlIHBhc3N3b3JkIG9ubHkKICAgICk7Cgo9Y3V0CgpzdWIgQWRkQWNjb3VudCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICREQk9iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CiAgICBteSAkWUFNTE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpZQU1MJyk7CgogICAgZm9yIG15ICROZWVkZWQgKHF3L05hbWUgT0lEQ1Byb2ZpbGVJRCBHcmFudFR5cGUgVXNlcklELykgewogICAgICAgIGlmICggIWRlZmluZWQgJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICROYW1lICAgICAgICAgICAgICA9ICRQYXJhbXtOYW1lfTsKICAgIG15ICRPSURDUHJvZmlsZUlEICAgICA9ICRQYXJhbXtPSURDUHJvZmlsZUlEfTsKICAgIG15ICRHcmFudFR5cGUgICAgICAgICA9ICRQYXJhbXtHcmFudFR5cGV9OwogICAgbXkgJFNjb3BlICAgICAgICAgICAgID0gJFBhcmFte1Njb3BlfSAgICAgICAgICAgICB8fCAnJzsKICAgIG15ICRSZXNvdXJjZXMgICAgICAgICA9ICRQYXJhbXtSZXNvdXJjZXN9ICAgICAgICAgfHwgJyc7CiAgICBteSAkUmVzb3VyY2VQYXJhbU5hbWUgPSAkUGFyYW17UmVzb3VyY2VQYXJhbU5hbWV9IHx8ICdyZXNvdXJjZSc7CiAgICBteSAkVG9rZW5UeXBlICAgICAgICAgPSAkUGFyYW17VG9rZW5UeXBlfSAgICAgICAgIHx8ICdhY2Nlc3NfdG9rZW4nOwogICAgbXkgJFZhbGlkICAgICAgICAgICAgID0gJFBhcmFte1ZhbGlkfSAgICAgICAgICAgICB8fCAxOwogICAgbXkgJFVzZXJuYW1lICAgICAgICAgID0gJFBhcmFte1VzZXJuYW1lfTsKICAgIG15ICRQYXNzd29yZCAgICAgICAgICA9ICRQYXJhbXtQYXNzd29yZH07CiAgICBteSAkVXNlcklEICAgICAgICAgICAgPSAkUGFyYW17VXNlcklEfTsKCiAgICBteSBAQmluZCA9ICgKICAgICAgICBcJE5hbWUsICAgICAgXCRPSURDUHJvZmlsZUlELCAgICAgXCRHcmFudFR5cGUsIFwkU2NvcGUsCiAgICAgICAgXCRSZXNvdXJjZXMsIFwkUmVzb3VyY2VQYXJhbU5hbWUsIFwkVG9rZW5UeXBlLCBcJFZhbGlkLAogICAgICAgIFwkVXNlcklELCAgICBcJFVzZXJJRAogICAgKTsKCiAgICBteSAkU1FMID0gIklOU0VSVCBJTlRPIG9pZGNfZnVuY3Rpb25hbF9hY2NvdW50cwogICAgICAgICggbmFtZSwgb2lkY19wcm9maWxlX2lkLCBncmFudF90eXBlLCBzY29wZXMsIHJlc291cmNlcywgcmVzb3VyY2VfcGFyYW1fbmFtZSwKICAgICAgICAgIHRva2VuX3R5cGUsIHZhbGlkX2lkLCBjcmVhdGVfdGltZSwgY3JlYXRlX2J5LCBjaGFuZ2VfdGltZSwgY2hhbmdlX2J5ICI7CgogICAgaWYgKCRVc2VybmFtZSkgewogICAgICAgICRTUUwgLj0gIiwgdXNlcm5hbWUsIHBhc3N3ZCAiOwogICAgfQoKICAgICRTUUwgLj0gIiApIFZBTFVFUyAoPywgPywgPywgPywgPywgPywgPywgPywgY3VycmVudF90aW1lc3RhbXAsID8sIGN1cnJlbnRfdGltZXN0YW1wLCA/ICI7CgogICAgaWYgKCRVc2VybmFtZSkgewogICAgICAgICRTUUwgLj0gIiwgPywgPyAiOwogICAgICAgIHB1c2ggQEJpbmQsIFwkVXNlcm5hbWU7CiAgICAgICAgcHVzaCBAQmluZCwgXCRQYXNzd29yZDsKICAgIH0KCiAgICAkU1FMIC49ICIpICI7CgogICAgbXkgJEluc2VydFN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCAgPT4gJFNRTCwKICAgICAgICBCaW5kID0+IFxAQmluZCwKICAgICk7CgogICAgcmV0dXJuICRJbnNlcnRTdWNjZXNzOwp9Cgo9aGVhZDIgVXBkYXRlQWNjb3VudCgpCgogICAgVXBkYXRlIGEgRnVuY3Rpb25hbCBBY2NvdW50IGluIHRoZSBEQi4KCiAgICBOb3RlIHlvdSBuZWVkIHRvIGdpdmUgdGhlIE9JRENQcm9maWxlSUQgYXMgcGFyYW1ldGVyLgoKICAgIG15ICRTdWNjZXNzID0gJEZ1bmN0aW9uYWxBY2NvdW50UmVwb3NpdG9yeU9iamVjdC0+VXBkYXRlQWNjb3VudCgKCiAgICAgICAgTmFtZSA9PiAkTmFtZSwKICAgICAgICBPSURDUHJvZmlsZUlELAogICAgICAgIEdyYW50VHlwZSwKICAgICAgICBTY29wZSwKICAgICAgICBSZXNvdXJjZXMsCiAgICAgICAgUmVzb3VyY2VQYXJhbU5hbWUsCiAgICAgICAgVG9rZW5UeXBlLAogICAgICAgIFZhbGlkLAogICAgICAgIFVzZXJJRCwKICAgICAgICBVc2VybmFtZSwgIyBvcHRpb25hbCwgZ3JhbnRfdHlwZSBwYXNzd29yZCBvbmx5CiAgICAgICAgUGFzc3dvcmQsICMgb3B0aW9uYWwsIGdyYW50X3R5cGUgcGFzc3dvcmQgb25seQogICAgKTsKCj1jdXQKCnN1YiBVcGRhdGVBY2NvdW50IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJERCT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKICAgIG15ICRZQU1MT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OllBTUwnKTsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcvTmFtZSBPSURDUHJvZmlsZUlEIEdyYW50VHlwZSBVc2VySUQvKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICROYW1lICAgICAgICAgICAgICA9ICRQYXJhbXtOYW1lfTsKICAgIG15ICRPSURDUHJvZmlsZUlEICAgICA9ICRQYXJhbXtPSURDUHJvZmlsZUlEfTsKICAgIG15ICRHcmFudFR5cGUgICAgICAgICA9ICRQYXJhbXtHcmFudFR5cGV9OwogICAgbXkgJFNjb3BlICAgICAgICAgICAgID0gJFBhcmFte1Njb3BlfSAgICAgICAgICAgICB8fCAnJzsKICAgIG15ICRSZXNvdXJjZXMgICAgICAgICA9ICRQYXJhbXtSZXNvdXJjZXN9ICAgICAgICAgfHwgJyc7CiAgICBteSAkUmVzb3VyY2VQYXJhbU5hbWUgPSAkUGFyYW17UmVzb3VyY2VQYXJhbU5hbWV9IHx8ICdyZXNvdXJjZSc7CiAgICBteSAkVG9rZW5UeXBlICAgICAgICAgPSAkUGFyYW17VG9rZW5UeXBlfSAgICAgICAgIHx8ICdhY2Nlc3NfdG9rZW4nOwogICAgbXkgJFZhbGlkICAgICAgICAgICAgID0gJFBhcmFte1ZhbGlkfSAgICAgICAgICAgICB8fCAxOwogICAgbXkgJFVzZXJuYW1lICAgICAgICAgID0gJFBhcmFte1VzZXJuYW1lfTsKICAgIG15ICRQYXNzd29yZCAgICAgICAgICA9ICRQYXJhbXtQYXNzd29yZH07CgogICAgbXkgJFVzZXJJRCA9ICRQYXJhbXtVc2VySUR9OwoKICAgIG15IEBCaW5kID0gKAogICAgICAgIFwkT0lEQ1Byb2ZpbGVJRCwgXCRHcmFudFR5cGUsIFwkU2NvcGUsCiAgICAgICAgXCRSZXNvdXJjZXMsICAgICBcJFJlc291cmNlUGFyYW1OYW1lLCBcJFRva2VuVHlwZSwgXCRWYWxpZCwKICAgICAgICBcJFVzZXJJRAogICAgKTsKCiAgICBteSAkU1FMID0gIlVQREFURSBvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudHMgU0VUIG9pZGNfcHJvZmlsZV9pZCA9ID8sCiAgICAgICAgZ3JhbnRfdHlwZSA9ID8sIHNjb3BlcyA9ID8sIHJlc291cmNlcyA9ID8sIHJlc291cmNlX3BhcmFtX25hbWUgPSA/LAogICAgICAgIHRva2VuX3R5cGUgPSA/LCB2YWxpZF9pZCA9ID8sIGNoYW5nZV90aW1lID0gY3VycmVudF90aW1lc3RhbXAsCiAgICAgICAgY2hhbmdlX2J5ID0gPyAiOwoKICAgIGlmICgkVXNlcm5hbWUpIHsKICAgICAgICAkU1FMIC49ICIsIHVzZXJuYW1lID0gPywgcGFzc3dkID0gPyAiOwogICAgICAgIHB1c2ggQEJpbmQsIFwkVXNlcm5hbWU7CiAgICAgICAgcHVzaCBAQmluZCwgXCRQYXNzd29yZDsKICAgIH0KCiAgICBwdXNoIEBCaW5kLCBcJE5hbWU7CiAgICAkU1FMIC49ICIgV0hFUkUgbmFtZSA9ID8gIjsKCiAgICBteSAkVXBkYXRlU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMICA9PiAkU1FMLAogICAgICAgIEJpbmQgPT4gXEBCaW5kLAogICAgKTsKCiAgICByZXR1cm4gJFVwZGF0ZVN1Y2Nlc3M7Cn0KCj1oZWFkMiBEZWxldGVBY2NvdW50KCkKCiAgICBEZWxldGUgYSBGdW5jdGlvbmFsIEFjY291bnQgZnJvbSBEQi4KCiAgICBteSAkU3VjY2VzcyA9ICRGdW5jdGlvbmFsQWNjb3VudFJlcG9zaXRvcnlPYmplY3QtPkRlbGV0ZUFjY291bnQoIE5hbWUgPT4gJE5hbWUgKTsKCj1jdXQKCnN1YiBEZWxldGVBY2NvdW50IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgZm9yIG15ICROZWVkZWQgKHF3L05hbWUvKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICROYW1lID0gJFBhcmFte05hbWV9OwoKICAgIG15ICRTUUwgID0gIkRFTEVURSBGUk9NIG9pZGNfZnVuY3Rpb25hbF9hY2NvdW50cyBXSEVSRSBuYW1lID0gPyAiOwogICAgbXkgJEJpbmQgPSBbIFwkTmFtZSwgXTsKCiAgICBteSAkRGVsZXRlU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMICA9PiAkU1FMLAogICAgICAgIEJpbmQgPT4gJEJpbmQsCiAgICApOwoKICAgIHJldHVybiAkRGVsZXRlU3VjY2VzczsKfQoKMTsK</File>
        <File Location="Kernel/System/OpenIDConnect/OAuth2.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6T0F1dGgyOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKIyBjb3JlIG1vZHVsZXMKCiMgQ1BBTiBtb2R1bGVzCgp1c2UgTFdQOjpTaW1wbGU7CnVzZSBMV1A6OlVzZXJBZ2VudDsKdXNlIEhUVFA6OlJlcXVlc3Q6OkNvbW1vbjsKdXNlIFVSSTo6RXNjYXBlIHF3KHVyaV9lc2NhcGVfdXRmOCk7CnVzZSBDcnlwdDo6SldUICBxdyhkZWNvZGVfand0KTsKdXNlIEpTT047CgojIE9UT0JPIG1vZHVsZXMKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKdXNlIG5hbWVzcGFjZTo6YXV0b2NsZWFuOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6TGFuZ3VhZ2UnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpNYWluJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SlNPTicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkNhY2hlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlbicsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6Ok9BdXRoMiAtIG1ldGhvZHMgZm9yIE9wZW5JRENvbm5lY3Q6Ok9BdXRoMgoKPWhlYWQxIFNZTk9QU0lTCgpPQXV0aDIgYmFzaWMgZnVuY3Rpb25hbGl0eQotIG1ha2UgZW5kcG9pbnQgUE9TVCBjYWxscwotIGJ1aWxkIGxvZ2luIHJlZGlyZWN0IHVybCBmb3IgYXV0aG9yaXphdGlvbl9jb2RlIGZsb3cKLSBidWlsZCBsb2dvdXQgdXJsCgo9Zm9yIHN0b3B3b3JkcyBPSURDCgp0aGlzIGlzIGEgbG93IGxldmVsIGludGVyZmFjZSB0aGF0IG9ubHkga25vd3MgYWJvdXQgT0F1dGgyLApidXQgaXMgY29tcGxldGVseSBpZ25vcmFudCBvZiBPSURDIHN0dWZmLiBhbGwgbmVjZXNzYXJ5IHBhcmFtcwpoYXZlIHRvIGJlIHBhc3NlZCBpbi4KCmNyZWF0ZSBhbiBvYmplY3QKCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRPQXV0aDJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6T0F1dGgyJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHsKICAgICAgICBTU0xPcHRpb25NYXAgPT4gewogICAgICAgICAgICBTU0xDZXJ0aWZpY2F0ZSAgICA9PiAnU1NMX2NlcnRfZmlsZScsCiAgICAgICAgICAgIFNTTEtleSAgICAgICAgICAgID0+ICdTU0xfa2V5X2ZpbGUnLAogICAgICAgICAgICBTU0xQYXNzd29yZCAgICAgICA9PiAnU1NMX3Bhc3N3ZF9jYicsCiAgICAgICAgICAgIFNTTENBRmlsZSAgICAgICAgID0+ICdTU0xfY2FfZmlsZScsCiAgICAgICAgICAgIFNTTENBRGlyICAgICAgICAgID0+ICdTU0xfY2FfcGF0aCcsCiAgICAgICAgICAgIFNTTFZlcmlmeUhvc3RuYW1lID0+ICd2ZXJpZnlfaG9zdG5hbWUnLAogICAgICAgICAgICBTU0xWZXJpZnlNb2RlICAgICA9PiAnU1NMX3ZlcmlmeV9tb2RlJywKICAgICAgICB9LAogICAgfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBSZXF1ZXN0VG9rZW4oKQoKUmVxdWVzdCBhIFRva2VuIGZyb20gdG9rZW4gZW5kcG9pbnQKCiAgICBteSAkVG9rZW5SZXN1bHQgPSAkT0F1dGgyT2JqZWN0LT5SZXF1ZXN0VG9rZW4oCiAgICAgICAgVG9rZW5FbmRwb2ludCAgICAgPT4gJEVuZHBvaW50LCAgICAgICAgICAgICAgICAgICAgICAgICAgICMgdXN1YWxseSBmcm9tIE9wZW5JRENvbmZpZwogICAgICAgIENsaWVudElEICAgICAgICAgID0+ICc8b2F1dGggY2xpZW50IGlkPicsCiAgICAgICAgQ2xpZW50U2VjcmV0ICAgICAgPT4gJzxhb3V0aCBjbGllbnQgc2VjcmV0PicsCiAgICAgICAgU2NvcGUgICAgICAgICAgICAgPT4gPHNwYWNlIHNlcGFyYXRlIGxpc3Q+LAogICAgICAgIFJlc291cmNlcyAgICAgICAgID0+ICc8c3BhY2Ugc2VwYXJhdGVkIGxpc3Q+JywgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgUmVzb3VyY2VQYXJhbU5hbWUgPT4gJ3Jlc291cmNlJywgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwKICAgICAgICBHcmFudFR5cGUgICAgICAgICA9PiAnY2xpZW50X2NyZWRlbnRpYWxzJyB8ICdhdXRob3JpemF0aW9uX2NvZGUnIHwgJ3Bhc3N3b3JkJyB8ICdyZWZyZXNoX3Rva2VuJywKICAgICAgICBVc2VybmFtZSAgICAgICAgICA9PiAnJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBmb3IgcGFzc3dvcmQgZ3JhbnQKICAgICAgICBQYXNzd29yZCAgICAgICAgICA9PiAnJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBmb3IgcGFzc3dvcmQgZ3JhbnQKICAgICAgICBSZWZyZXNoVG9rZW4gICAgICA9PiAkUmVmcmVzaFRva2VuLCAgICAgICAgICAgICAgICAgICAgICAgIyB0aGUgcmVmcmVzaF90b2tlbiB0byB1c2UgZm9yICdyZWZyZXNoX3Rva2VuJyBncmFudAogICAgICAgIENvZGUgICAgICAgICAgICAgID0+ICc8Y29kZSBmcm9tIGF1dGhvcml6YXRpb24gY2FsbGJhY2s+LCAjIGZvciBhdXRob3JpemF0aW9uX2NvZGUgIGdyYW50JywKICAgICAgICBSZWRpcmVjdFVSTCAgICAgICA9PiAnPHRoZSByZWRpcmVjdCB1c2VkJywgICAgICAgICAgICAgICAgIyAtLi0KICAgICAgICBTU0xPcHRpb25zICAgICAgICA9PiB7XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI29wdGlvbmFsCiAgICApOwoKPWN1dAoKc3ViIFJlcXVlc3RUb2tlbiB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcvVG9rZW5FbmRwb2ludCBDbGllbnRJRCBDbGllbnRTZWNyZXQgR3JhbnRUeXBlLykgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9yICAgPT4gIkludmFsaWQgUGFyYW1ldGVycyAhIiwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJExhbmd1YWdlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpMYW5ndWFnZScpOwogICAgbXkgJFRva2VuT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuJyk7CgogICAgbXkgJFNjb3BlICAgICAgICAgICAgID0gJFBhcmFte1Njb3BlfTsKICAgIG15ICRSZXNvdXJjZUlkcyAgICAgICA9ICRQYXJhbXtSZXNvdXJjZXN9OwogICAgbXkgJFJlc291cmNlUGFyYW1OYW1lID0gJFBhcmFte1Jlc291cmNlUGFyYW1OYW1lfSB8fCAncmVzb3VyY2UnOwoKICAgICMgcHJlcGFyZSB0aGUgZmV0Y2ggdG9rZW4gcmVxdWVzdAogICAgbXkgJFVzZXJBZ2VudCA9ICRTZWxmLT5fR2V0VXNlckFnZW50KCBTU0xPcHRpb25zID0+ICRQYXJhbXtTU0xPcHRpb25zfSApOwoKICAgICMgcHJlcGFyZSBwb3N0IGRhdGEKICAgIG15ICRQb3N0RGF0YTsKCiAgICBpZiAoICRQYXJhbXtSZWZyZXNoVG9rZW59ICkgewoKICAgICAgICAjIHJlZnJlc2hfdG9rZW4gZmxvdwogICAgICAgICRQb3N0RGF0YSA9IFsKICAgICAgICAgICAgZ3JhbnRfdHlwZSAgICA9PiAncmVmcmVzaF90b2tlbicsCiAgICAgICAgICAgIHJlZnJlc2hfdG9rZW4gPT4gJFBhcmFte1JlZnJlc2hUb2tlbn0sCiAgICAgICAgXTsKICAgIH0KICAgIGVsc2lmICgKICAgICAgICAkUGFyYW17R3JhbnRUeXBlfSBlcSAncGFzc3dvcmQnCiAgICAgICAgJiYKICAgICAgICBJc1N0cmluZ1dpdGhEYXRhKCAkUGFyYW17VXNlcm5hbWV9ICkgJiYKICAgICAgICBJc1N0cmluZ1dpdGhEYXRhKCAkUGFyYW17UGFzc3dvcmR9ICkKICAgICAgICApCiAgICB7CgogICAgICAgICMgcGFzc3dvcmQgZmxvdwogICAgICAgICRQb3N0RGF0YSA9IFsKICAgICAgICAgICAgZ3JhbnRfdHlwZSA9PiAncGFzc3dvcmQnLAogICAgICAgICAgICB1c2VybmFtZSAgID0+ICRQYXJhbXtVc2VybmFtZX0sCiAgICAgICAgICAgIHBhc3N3b3JkICAgPT4gJFBhcmFte1Bhc3N3b3JkfSwKICAgICAgICBdOwogICAgfQogICAgZWxzaWYgKCAkUGFyYW17R3JhbnRUeXBlfSBlcSAnY2xpZW50X2NyZWRlbnRpYWxzJyApIHsKCiAgICAgICAgIyBjbGllbnRfY3JlZGVudGlhbHMgZmxvdwogICAgICAgICRQb3N0RGF0YSA9IFsKICAgICAgICAgICAgZ3JhbnRfdHlwZSA9PiAnY2xpZW50X2NyZWRlbnRpYWxzJywKICAgICAgICBdOwogICAgfQogICAgZWxzaWYgKCAkUGFyYW17Q29kZX0gJiYgJFBhcmFte0dyYW50VHlwZX0gZXEgJ2F1dGhvcml6YXRpb25fY29kZScgKSB7CgogICAgICAgICMgYXV0aG9yaXphdGlvbiBjb2RlCiAgICAgICAgJFBvc3REYXRhID0gWwogICAgICAgICAgICBncmFudF90eXBlICAgPT4gJ2F1dGhvcml6YXRpb25fY29kZScsCiAgICAgICAgICAgIGNvZGUgICAgICAgICA9PiAkUGFyYW17Q29kZX0sCiAgICAgICAgICAgIHJlZGlyZWN0X3VyaSA9PiAkUGFyYW17UmVkaXJlY3RVUkx9LAogICAgICAgIF07CiAgICB9CgogICAgaWYgKCAhJFBhcmFte1JlZnJlc2hUb2tlbn0gJiYgJFJlc291cmNlSWRzICYmICRSZXNvdXJjZUlkcyBuZSAnJyApIHsKCiAgICAgICAgcHVzaCBAJFBvc3REYXRhLCAiJFJlc291cmNlUGFyYW1OYW1lIiA9PiAkUmVzb3VyY2VJZHM7CiAgICB9CgogICAgaWYgKCAhJFBhcmFte1JlZnJlc2hUb2tlbn0gJiYgJFNjb3BlICYmICRTY29wZSBuZSAnJyApIHsKCiAgICAgICAgcHVzaCBAJFBvc3REYXRhLCBzY29wZSA9PiAkU2NvcGU7CiAgICB9CgogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICBNZXNzYWdlICA9PiAiVXNpbmcgVG9rZW5FbmRwb2ludCAkUGFyYW17VG9rZW5FbmRwb2ludH0gISIsCiAgICApOwoKICAgICMgYWN0dWFsbHkgc2VuZCB0aGUgcmVxdWVzdAogICAgbXkgJFJlc3BvbnNlID0gJFNlbGYtPl9TZW5kUmVxdWVzdCgKICAgICAgICBDbGllbnRJRCAgICAgPT4gJFBhcmFte0NsaWVudElEfSwKICAgICAgICBDbGllbnRTZWNyZXQgPT4gJFBhcmFte0NsaWVudFNlY3JldH0sCiAgICAgICAgVXNlckFnZW50ICAgID0+ICRVc2VyQWdlbnQsCiAgICAgICAgRW5kcG9pbnQgICAgID0+ICRQYXJhbXtUb2tlbkVuZHBvaW50fSwKICAgICAgICBQb3N0RGF0YSAgICAgPT4gJFBvc3REYXRhLAogICAgKTsKCiAgICBpZiAoICEkUmVzcG9uc2UtPntTdWNjZXNzfSApIHsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgICAgICAgICBFcnJvciAgID0+ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCAiRXJyb3IgZmV0Y2hpbmcgVG9rZW46ICVzIiwgJFJlc3BvbnNlLT57RXJyb3J9ICksCiAgICAgICAgfTsKICAgIH0KCiAgICByZXR1cm4gewogICAgICAgIFN1Y2Nlc3MgICAgICAgID0+IDEsCiAgICAgICAgRGVjb2RlZENvbnRlbnQgPT4gJFJlc3BvbnNlLT57Q29udGVudH0KICAgIH07Cn0KCj1oZWFkMiBHZXRBdXRoVVJMKCkKCkJ1aWxkIHRoZSBVUkwgdG8gcmVxdWVzdCBhbiBhdXRob3JpemF0aW9uIGNvZGUuCgpFeGFtcGxlOgogICAgbXkgJEF1dGhVUkwgPSAkT0F1dGgyT2JqZWN0LT5HZXRBdXRoVVJMKAoKICAgICAgICBBdXRob3JpemF0aW9uRW5kcG9pbnQgPT4gJEVuZHBvaW50LCAgICAgICAgICAgICAgICAgICAgICAgIyB1c3VhbGx5IGZyb20gT3BlbklEQ29uZmlnCiAgICAgICAgQ2xpZW50SUQgICAgICAgICAgPT4gJzxvYXV0aCBjbGllbnQgaWQ+JywKICAgICAgICBSZXNwb25zZVR5cGUgICAgICA9PiAnY29kZScsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCwgZGVmYXVsdHMgdG8gY29kZQogICAgICAgIFNjb3BlICAgICAgICAgICAgID0+IDxzcGFjZSBzZXBhcmF0ZSBsaXN0PiwKICAgICAgICBSZXNvdXJjZXMgICAgICAgICA9PiAnPHNwYWNlIHNlcGFyYXRlZCBsaXN0PicsICAgICAgICAgICAgIyBvcHRpb25hbAogICAgICAgIFJlc291cmNlUGFyYW1OYW1lID0+ICdyZXNvdXJjZScsICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgTG9naW4gICAgICAgICAgICAgPT4gJzxsb2dpbl9oaW50PicsICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwKICAgICAgICBQcm9tcHQgICAgICAgICAgICA9PiAnPHByb21wdD1sb2dpbj4nLCAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCwgZm9yY2VzIGxvZ2luCiAgICAgICAgTm9uY2UgICAgICAgICAgICAgPT4gJzxub25jZT4nLCAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwKICAgICAgICBSYW5kTGVuZ3RoICAgICAgICA9PiA8bGVuZ3RoIGZvciByYW5kb20gc3RhdGUgYW5kIG5vbmNlcz4gIyBvcHRpb25hbAogICAgICAgIFJhbmRUVEwgICAgICAgICAgID0+IDx0aW1lb3V0IGZvciBsb2dpbiBwdXJwb3Nlcz4gICAgICAgICAjIG9wdGlvbmFsCgogICAgICAgIFJlZGlyZWN0VVJMID0+ICdodHRwczovL3lvdXIub3RvYm8udXJsL290b2JvL2luZGV4LnBsP0FjdGlvbj1BZG1pbk9BdXRoVG9rZW5TdG9yZSZTdWJhY3Rpb249T0F1dGgnCgogICAgICAgIFN0YXRlICAgICAgICAgICAgID0+ICc8dXNlIHRoaXMgdmFsZSBmb3Igc3RhdGUgaW5zdGVhZCBvZiByYW5kb20gc3RyaW5nPicsICMgb3B0aW9uYWwKICAgICk7CgpSZXR1cm5zOgogICAgJEF1dGhVUkwgPSBodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vY29tbW9uL29hdXRoMi92Mi4wL2F1dGhvcml6ZT9jbGllbnRfaWQ9MDc3ZDIwNTktMjE5Li4uCgo9Y3V0CgpzdWIgR2V0QXV0aFVSTCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdy9BdXRob3JpemF0aW9uRW5kcG9pbnQgQ2xpZW50SUQgLykgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIENyZWF0ZSBhIHJhbmRvbSBzdHJpbmcgdG8gcHJldmVudCBjcm9zcy1zaXRlIHJlcXVlc3RzLgogICAgbXkgJFJhbmRvbVN0cmluZyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyktPkdlbmVyYXRlUmFuZG9tU3RyaW5nKAogICAgICAgIExlbmd0aCA9PiAkUGFyYW17UmFuZExlbmd0aH0gfHwgMjIKICAgICk7CgogICAgbXkgJFJlc291cmNlUGFyYW1OYW1lID0gJFBhcmFte1Jlc291cmNlUGFyYW1OYW1lfSB8fCAncmVzb3VyY2UnOwogICAgbXkgJFN0YXRlICAgICAgICAgICAgID0gJFBhcmFte1N0YXRlfSAgICAgICAgICAgICB8fCAkUmFuZG9tU3RyaW5nOwoKICAgIG15ICRSZXNwb25zZVR5cGUgPSAkUGFyYW17UmVzcG9uc2VUeXBlfSB8fCBbJ2NvZGUnXTsKICAgIGlmICggcmVmICRSZXNwb25zZVR5cGUgbmUgJ0FSUkFZJyApIHsKICAgICAgICAkUmVzcG9uc2VUeXBlID0gWyRSZXNwb25zZVR5cGVdOwogICAgfQoKICAgIG15ICRSZWRpcmVjdFVSTCA9ICRQYXJhbXtBdXRob3JpemF0aW9uRW5kcG9pbnR9OwogICAgJFJlZGlyZWN0VVJMIC49ICc/cmVzcG9uc2VfdHlwZT0nIC4gam9pbiggJyUyMCcsIEB7JFJlc3BvbnNlVHlwZX0gKTsKCiAgICBpZiAoICRQYXJhbXtTY29wZX0gKSB7CiAgICAgICAgJFJlZGlyZWN0VVJMIC49ICcmc2NvcGU9JyAuIHVyaV9lc2NhcGVfdXRmOCggJFBhcmFte1Njb3BlfSApOwogICAgfQoKICAgICRSZWRpcmVjdFVSTCAuPSAnJmNsaWVudF9pZD0nIC4gdXJpX2VzY2FwZV91dGY4KCAkUGFyYW17Q2xpZW50SUR9ICk7CgogICAgaWYgKCAkUGFyYW17UmVzb3VyY2VzfSApIHsKICAgICAgICAkUmVkaXJlY3RVUkwgLj0gIiYiIC4gdXJpX2VzY2FwZV91dGY4KCRSZXNvdXJjZVBhcmFtTmFtZSkKICAgICAgICAgICAgLiAiPSIgLiB1cmlfZXNjYXBlX3V0ZjgoICRQYXJhbXtSZXNvdXJjZXN9ICk7CiAgICB9CgogICAgaWYgKCAkUGFyYW17Tm9uY2V9ICkgewogICAgICAgICRSZWRpcmVjdFVSTCAuPSAnJm5vbmNlPScgLiB1cmlfZXNjYXBlX3V0ZjgoICRQYXJhbXtOb25jZX0gKTsKICAgIH0KCiAgICAjIGh5YnJpZCBtb2RlCiAgICAjIGlmICggZ3JlcCB7ICRfIGVxICdpZF90b2tlbicgfSBAeyRSZXNwb25zZVR5cGV9ICkgewogICAgIyAgICAkUmVkaXJlY3RVUkwgLj0gJyZyZXNwb25zZV9tb2RlPWZvcm1fcG9zdCc7CiAgICAjIH0KCiAgICBpZiAoICRQYXJhbXtMb2dpbn0gKSB7CiAgICAgICAgJFJlZGlyZWN0VVJMIC49ICcmbG9naW5faGludD0nIC4gdXJpX2VzY2FwZV91dGY4KCAkUGFyYW17TG9naW59ICk7CiAgICB9CgogICAgaWYgKCAkUGFyYW17UHJvbXB0fSApIHsKICAgICAgICAkUmVkaXJlY3RVUkwgLj0gJyZwcm9tcHQ9bG9naW4nOwogICAgfQoKICAgICRSZWRpcmVjdFVSTCAuPSAnJnN0YXRlPScgLiB1cmlfZXNjYXBlX3V0ZjgoJFN0YXRlKTsKICAgICRSZWRpcmVjdFVSTCAuPSAnJnJlZGlyZWN0X3VyaT0nIC4gdXJpX2VzY2FwZV91dGY4KCAkUGFyYW17UmVkaXJlY3RVUkx9ICk7CgogICAgIyBTYXZlIGFsbCBwYXJhbWV0ZXJzIHRvIHVzZSBhZnRlciBzdWNjZXNzZnVsIGF1dGhvcml6YXRpb24uCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+U2V0KAogICAgICAgIFR5cGUgID0+ICdUb2tlblByb3ZpZGVyJywKICAgICAgICBUVEwgICA9PiAkUGFyYW17UmFuZFRUTH0gfHwgNjAgKiAxNSwKICAgICAgICBLZXkgICA9PiAiVG9rZW5Qcm92aWRlcjo6T0F1dGgyU3RhdGU6OiRTdGF0ZSIsCiAgICAgICAgVmFsdWUgPT4gXCVQYXJhbSwKICAgICk7CgogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICBNZXNzYWdlICA9PiAiT0F1dGgyIGF1dGhlbnRpY2F0aW9uIHJlZGlyZWN0IFVSTDogJFJlZGlyZWN0VVJMICEiLAogICAgKTsKCiMgVE9ETzogZW5kc2Vzc2lvbl9lbmRwb2ludCBpbiBwcm92aWRlciBpbmZvID8KIyBteSAkTG9nb3V0VVJMID0gImh0dHBzOi8va2V5Y2xvYWs6ODQ0My9yZWFsbXMvbWFzdGVyL3Byb3RvY29sL29wZW5pZC1jb25uZWN0L2xvZ291dD9jbGllbnRfaWQ9b3RvYm8mcG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpPSI7CiMgJExvZ291dFVSTCAuPSB1cmlfZXNjYXBlX3V0ZjgoJFJlZGlyZWN0VVJMKTsKIyBodHRwczovL2F1dGgtc2VydmVyL2F1dGgvcmVhbG1zL3tyZWFsbS1uYW1lfS9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC9sb2dvdXQ/cmVkaXJlY3RfdXJpPWh0dHBzOi8vYXV0aC1zZXJ2ZXIvYXV0aC9yZWFsbXMve3JlYWxtLW5hbWV9L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L2F1dGg/Y2xpZW50X2lkPWNsaWVudF9pZCZyZWRpcmVjdF91cmkKIyBwcmludCBTVERFUlIgIldSQVBQRUQ6ICRMb2dvdXRVUkxcbiI7CgogICAgcmV0dXJuICRSZWRpcmVjdFVSTDsKfQoKc3ViIF9HZXRVc2VyQWdlbnQgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFNTTE9wdGlvbnMgPSAkUGFyYW17U1NMT3B0aW9uc307CgogICAgIyBwcmVwYXJlIHRoZSBmZXRjaCB0b2tlbiByZXF1ZXN0CiAgICBteSAkVXNlckFnZW50ID0gTFdQOjpVc2VyQWdlbnQtPm5ldygpOwoKICAgICMgU1NMIG9wdGlvbnMKICAgIGlmICgkU1NMT3B0aW9ucykgewogICAgICAgIE9QVElPTjoKICAgICAgICBmb3IgbXkgJEtleSAoIGtleXMgJFNTTE9wdGlvbnMtPiUqICkgewogICAgICAgICAgICBuZXh0IE9QVElPTiBpZiAhJFNlbGYtPntTU0xPcHRpb25NYXB9eyRLZXl9OwoKICAgICAgICAgICAgaWYgKCAkS2V5IGVxICdTU0xQYXNzd29yZCcgKSB7CiAgICAgICAgICAgICAgICAkVXNlckFnZW50LT5zc2xfb3B0cygKICAgICAgICAgICAgICAgICAgICAkU2VsZi0+e1NTTE9wdGlvbk1hcH17JEtleX0gPT4gc3ViIHsgJFNTTE9wdGlvbnMtPnskS2V5fSB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBuZXh0IE9QVElPTjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJFVzZXJBZ2VudC0+c3NsX29wdHMoCiAgICAgICAgICAgICAgICAkU2VsZi0+e1NTTE9wdGlvbk1hcH17JEtleX0gPT4gJFNTTE9wdGlvbnMtPnskS2V5fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICRVc2VyQWdlbnQ7Cn0KCnN1YiBfU2VuZFJlcXVlc3QgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEVuZHBvaW50ICAgICA9ICRQYXJhbXtFbmRwb2ludH07CiAgICBteSAkQ2xpZW50SUQgICAgID0gJFBhcmFte0NsaWVudElEfTsKICAgIG15ICRDbGllbnRTZWNyZXQgPSAkUGFyYW17Q2xpZW50U2VjcmV0fTsKICAgIG15ICRVc2VyQWdlbnQgICAgPSAkUGFyYW17VXNlckFnZW50fTsKICAgIG15ICRQb3N0RGF0YSAgICAgPSAkUGFyYW17UG9zdERhdGF9OwoKICAgICMgc2VuZCB0aGUgZGF0YSBmb3JtLWVuY29kZWQKICAgIG15ICRSZXF1ZXN0ID0gUE9TVCgKICAgICAgICAkRW5kcG9pbnQsCiAgICAgICAgJFBvc3REYXRhCiAgICApOwoKICAgIG15ICRMYW5ndWFnZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6TGFuZ3VhZ2UnKTsKCiAgICAjIGFkZCBjbGllbnRfaWQgYW5kIGNsaWVudF9zZWNyZXQgdG8gYXV0aGVudGljYXRlIHRoZSBjbGllbnQKICAgIGlmICggISRDbGllbnRJRCB8fCAhJENsaWVudFNlY3JldCApIHsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgICAgICAgICBFcnJvciAgID0+ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCdOZWVkIENsaWVudElEIGFuZCBDbGllbnRTZWNyZXQhJyksCiAgICAgICAgfTsKICAgIH0KCiAgICAkUmVxdWVzdC0+YXV0aG9yaXphdGlvbl9iYXNpYyggJENsaWVudElELCAkQ2xpZW50U2VjcmV0ICk7CgogICAgIyBleGVjdXRlIHJlcXVlc3QKICAgIG15ICRSZXNwb25zZSA9ICRVc2VyQWdlbnQtPnJlcXVlc3QoJFJlcXVlc3QpOwogICAgbXkgJENvbnRlbnQgID0gJFJlc3BvbnNlLT5jb250ZW50KCk7CgogICAgaWYgKCAhJENvbnRlbnQgKSB7CgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgICAgICAgICAgRXJyb3IgICA9PiAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSggIkdvdCBubyBjb250ZW50IHdoZW4gcmVxdWVzdGluZyBUb2tlbi4gUmVzcG9uc2UgQ29kZTogJXMiLCAkUmVzcG9uc2UtPmNvZGUoKSApLAogICAgICAgIH07CiAgICB9CgogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICBNZXNzYWdlICA9PiAiUmVjZWl2ZWQgQ29udGVudDogJENvbnRlbnQiLAogICAgKTsKCiAgICAjIGRlY29kZSBjb250ZW50CiAgICBteSAkRGVjb2RlZENvbnRlbnQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SlNPTicpLT5EZWNvZGUoCiAgICAgICAgRGF0YSA9PiAkQ29udGVudCwKICAgICk7CgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJERlY29kZWRDb250ZW50KSApIHsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgICAgICAgICBFcnJvciAgID0+ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCAiR290IG5vIEpTT04gb2JqZWN0IHdoZW4gcmVxdWVzdGluZyBUb2tlbi4gUmVzcG9uc2U6ICVzIiwgJENvbnRlbnQgKSwKICAgICAgICB9OwogICAgfQoKICAgICMgZmV0Y2ggdGhlIGRlc2lyZWQgdG9rZW4gKGFjY2Vzc190b2tlbiAoZGVmYXVsdCkgb3IgaWRfdG9rZW4pCiAgICBpZiAoICREZWNvZGVkQ29udGVudC0+e2Vycm9yfSApIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgIEVycm9yICAgPT4gIkVycm9yOiAiIC4gJERlY29kZWRDb250ZW50LT57ZXJyb3J9IC4gIi4gRGVzY3JpcHRpb246ICIgLiAkRGVjb2RlZENvbnRlbnQtPntlcnJvcl9kZXNjcmlwdGlvbn0sCiAgICAgICAgfTsKICAgIH0KCiAgICByZXR1cm4gewogICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgICAgICBDb250ZW50ID0+ICREZWNvZGVkQ29udGVudCwKICAgIH07Cn0KCjE7Cg==</File>
        <File Location="Kernel/System/OpenIDConnect/ProfileRepository.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6UHJvZmlsZVJlcG9zaXRvcnk7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgojIGNvcmUgbW9kdWxlcwoKIyBDUEFOIG1vZHVsZXMKCiMgT1RPQk8gbW9kdWxlcwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgp1c2UgbmFtZXNwYWNlOjphdXRvY2xlYW47CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkRCJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6WUFNTCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6UHJvZmlsZVJlcG9zaXRvcnkgLSBEQiBiYWNrZW5kIGZvciBPSURDIFByb2ZpbGVzIGZvciBJbnZva2VycyAob3V0Z29pbmcgY2FsbHMpCgo9aGVhZDEgU1lOT1BTSVMKClByb2ZpbGVzIERCIGFic3RyYWN0aW9uIGZvciBPcGVuSUQgQ29ubmVjdAoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJFByb2ZpbGVSZXBvc2l0b3J5T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlByb2ZpbGVSZXBvc2l0b3J5Jyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwoKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBHZXRMaXN0KCkKCnJldHVybiBhIExpc3Qgb2YgUHJvZmlsZXMKCj1mb3Igc3RvcHdvcmRzIG9wZW5pZCBUVEwgc3NsCgpteSAkQXJyYXlSZWYgPSAkUHJvZmlsZVJlcG9zaXRvcnlPYmplY3QtPkdldExpc3QoKTsKCnJldHVybnMKCm15ICRBcnJheVJlZiA9IFsKewogICBQcm9maWxlSUQgPT4gZGF0YWJhc2UgaWQsCiAgICBDbGllbnRTZXR0aW5ncyA9PiB7CiAgICAgIENsaWVudFNlY3JldCA9PiAnJywKICAgICAgQ2xpZW50SUQgPT4gJycsCiAgICAgIFJlZGlyZWN0VVJJID0+ICcnLAogICAgfSwKICAgIFByb3ZpZGVyU2V0dGluZ3MgPT4gewogICAgICAgT3BlbklEQ29uZmlndXJhdGlvbiA9PiAnaHR0cHM6Ly9rZXljbG9hazo4MDgwL2F1dGgvcmVhbG1zL015UmVhbG0vLndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb24nLAogICAgICAgVFRMICAgICAgICAgICAgICAgICA9PiA2MCAqIDMwLCAgICAgICMgb3B0aW9uYWw6IHRpbWUgcGVyaW9kIHRoZSBleHRyYWN0ZWQgb3BlbmlkLWNvbmZpZ3VyYXRpb24gaXMgY2FjaGVkCiAgICAgICBOYW1lICAgICAgICAgICAgICAgID0+ICdJbnRlcm40JywgICAgIyBvcHRpb25hbDogbmVjZXNzYXJ5IG9ubHkgaWYgb25lIG5lZWRzIHRvIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBVc2VyIGFuZCBDdXN0b21lclVzZXIgY29uZmlndXJhdGlvbiBlLmcuCiAgICAgICBTU0xPcHRpb25zICAgICAgICAgID0+IHsgICAgICAgICAgICAgIyBpZiBzcGVjaWFsIHNzbCBvcHRpb25zIGFyZSBuZWVkZWQ7IFNTTFZlcmlmeUhvc3RuYW1lID0+IDAgYW5kIFNTTFZlcmlmeU1vZGUgPT4gMCBhcmUgYWxzbyBwb3NzaWJsZSBidXQgc2hvdWxkIG9ubHkgYmUgdXNlZCBmb3IgdGVzdGluZyBwdXJwb3NlcwogICAgICAgICAgIFNTTENlcnRpZmljYXRlID0+ICdTU0xfY2VydF9maWxlJywgICAgICMgY2xpZW50IGNlcnRpZmljYXRlCiAgICAgICAgICAgU1NMS2V5ICAgICAgICAgPT4gJ1NTTF9rZXlfZmlsZScsICAgICAgIyBjbGllbnQgY2VydCBrZXkKICAgICAgICAgICBTU0xQYXNzd29yZCAgICA9PiAnU1NMX3Bhc3N3ZF9jYicsICAgICAjIHBhc3N3b3JkIGZvciBjbGllbnQgY2VydCBrZXkKICAgICAgICAgICBTU0xDQUZpbGUgICAgICA9PiAnU1NMX2NhX2ZpbGUnLCAgICAgICAjIENBIGNlcnRpZmljYXRlCiAgICAgICAgICAgU1NMQ0FEaXIgICAgICAgPT4gJ1NTTF9jYV9wYXRoJywgICAgICAgIyBDQSBjZXJ0IGRpcmVjdG9yeQogICAgICAgICAgIFNTTFZlcmlmeUhvc3RuYW1lID0+IDAsCiAgICAgICAgICAgU1NMVmVyaWZ5TW9kZSA9PiAwCiAgICAgICB9CiAgICB9LAogICAgTWlzYyA9PiB7CiAgICAgICAgVXNlTm9uY2UgICA9PiAxLCAgICAgICMgYWRkIGEgbm9uY2UgdG8gcmVxdWVzdCBhbmQgdG9rZW4gKHRoaXMgaXMgcHJpbWFyaWx5IGltcG9ydGFudCBmb3IgdGhlIGltcGxpY2l0IGZsb3cgd2hlcmUgaXQgaXMgZW5hYmxlZCBieSBkZWZhdWx0KQogICAgICAgIFJhbmRMZW5ndGggPT4gMjIsICAgICAjIGxlbmd0aCBmb3Igc3RhdGUgYW5kIG5vbmNlIHJhbmRvbSBzdHJpbmdzIC0gZGVmYXVsdDogMjIKICAgICAgICBSYW5kVFRMICAgID0+IDYwICogNSwgIyB2YWxpZCB0aW1lIHBlcmlvZCBmb3Igc3RhdGUgYW5kIG5vbmNlIChyb3VnaGx5IHRoZSB0aW1lIGEgdXNlciBjYW4gdGFrZSB0byBhdXRoZW50aWNhdGUpIC0gZGVmYXVsdDogMzAwIHMKICAgICAgICBMZWV3YXkgICAgID0+IDIsICAgICAgIyBsZWV3YXkgZm9yIHNtYWxsIHRpbWUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgT1RPQk8gc2VydmVyIGFuZCB0aGUgT3BlbklEIHByb3ZpZGVyIC0gZGVmYXVsdDogMiBzCiAgICB9LAp9LAouLi4KXTsKCj1jdXQKCnN1YiBHZXRMaXN0IHsKCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICREQk9iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CiAgICBteSAkWUFNTE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpZQU1MJyk7CgogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiU0VMRUNUIGlkLCB2YWxpZF9pZCwgbmFtZSwgY2xpZW50X2lkLCBjbGllbnRfc2VjcmV0LAogICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0X3VyaSwgb3BlbmlkX2NvbmZpZywgdHRsLCBzc2xfb3B0aW9ucywgbWlzYwogICAgICAgICAgICAgICAgRlJPTSBvaWRjX3Byb2ZpbGVzICIsCiAgICApOwoKICAgIG15IEBSZXN1bHQ7CiAgICB3aGlsZSAoIG15ICggJElELCAkVmFsaWQsICROYW1lLCAkQ2xpZW50SUQsICRDbGllbnRTZWNyZXQsICRSZWRpcmVjdFVSSSwgJE9wZW5JRENvbmZpZywgJFRUTCwgJFNTTE9wdGlvbnMsICRNaXNjICkgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkgKSB7CgogICAgICAgIG15ICRJdGVtID0gewogICAgICAgICAgICBQcm9maWxlSUQgICAgICA9PiAkSUQsCiAgICAgICAgICAgIFZhbGlkICAgICAgICAgID0+ICRWYWxpZCwKICAgICAgICAgICAgQ2xpZW50U2V0dGluZ3MgPT4gewoKICAgICAgICAgICAgICAgIENsaWVudElEICAgICA9PiAkQ2xpZW50SUQsCiAgICAgICAgICAgICAgICBDbGllbnRTZWNyZXQgPT4gJENsaWVudFNlY3JldCwKICAgICAgICAgICAgICAgIFJlZGlyZWN0VVJJICA9PiAkUmVkaXJlY3RVUkksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFByb3ZpZGVyU2V0dGluZ3MgPT4gewogICAgICAgICAgICAgICAgT3BlbklEQ29uZmlndXJhdGlvbiA9PiAkT3BlbklEQ29uZmlnLAogICAgICAgICAgICAgICAgVFRMICAgICAgICAgICAgICAgICA9PiAkVFRMLAogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICA9PiAkTmFtZSwKICAgICAgICAgICAgICAgIFNTTE9wdGlvbnMgICAgICAgICAgPT4gJFlBTUxPYmplY3QtPkxvYWQoIERhdGEgPT4gJFNTTE9wdGlvbnMgfHwge30gKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWlzYyA9PiAkWUFNTE9iamVjdC0+TG9hZCggRGF0YSA9PiAkTWlzYyB8fCB7fSApLAogICAgICAgIH07CgogICAgICAgIHB1c2ggQFJlc3VsdCwgJEl0ZW07CiAgICB9CgogICAgcmV0dXJuIFxAUmVzdWx0Owp9Cgo9aGVhZDIgR2V0UHJvZmlsZSgpCgogICAgUmV0dXJuIGFuIE9JREMgUHJvZmlsZSBmcm9tIERCIG55IE5hbWUgb3IgUHJvZmlsZUlECgogICAgbXkgJFByb2ZpbGUgPSAkUHJvZmlsZVJlcG9zaXRvcnlPYmplY3QtPkdldFByb2ZpbGUoIE5hbWUgPT4gJE5hbWUgKTsKCiAgICBvcgoKICAgIG15ICRQcm9maWxlID0gJFByb2ZpbGVSZXBvc2l0b3J5T2JqZWN0LT5HZXRQcm9maWxlKCBQcm9maWxlSUQgPT4gJElEICk7CgogICAgc2VlIEdldExpc3QoKSBhYm92ZSBmb3IgcmVzcG9uc2UgZm9ybWFudCAoc2luZ2xlIGVudGl0eSkuCgo9Y3V0CgpzdWIgR2V0UHJvZmlsZSB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkTmFtZSAgICAgID0gJFBhcmFte05hbWV9OwogICAgbXkgJFByb2ZpbGVJRCA9ICRQYXJhbXtQcm9maWxlSUR9OwoKICAgIGlmICggJE5hbWUgJiYgJFByb2ZpbGVJRCApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgZWl0aGVyIE5hbWUgb3IgUHJvZmlsZUlEIGJ1dCBnb3QgYm90aCEiLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpZiAoICEkTmFtZSAmJiAhJFByb2ZpbGVJRCApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgZWl0aGVyIE5hbWUgb3IgUHJvZmlsZUlEISIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICREQk9iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CiAgICBteSAkWUFNTE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpZQU1MJyk7CgogICAgbXkgJFNRTCA9ICJTRUxFQ1QgaWQsIHZhbGlkX2lkLCBuYW1lLCBjbGllbnRfaWQsIGNsaWVudF9zZWNyZXQsIHJlZGlyZWN0X3VyaSwgb3BlbmlkX2NvbmZpZywgdHRsLCBzc2xfb3B0aW9ucywgbWlzYwogICAgICAgICAgICAgICAgRlJPTSBvaWRjX3Byb2ZpbGVzIFdIRVJFIDE9MSBBTkQgIjsKCiAgICBteSBAQmluZDsKCiAgICBpZiAoJE5hbWUpIHsKICAgICAgICAkU1FMIC49ICJuYW1lID0gPyAiOwogICAgICAgIHB1c2ggQEJpbmQsIFwkTmFtZTsKICAgIH0KICAgIGVsc2lmICgkUHJvZmlsZUlEKSB7CiAgICAgICAgJFNRTCAuPSAiaWQgPSA/ICI7CiAgICAgICAgcHVzaCBAQmluZCwgXCRQcm9maWxlSUQ7CiAgICB9CgogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCAgPT4gJFNRTCwKICAgICAgICBCaW5kID0+IFxAQmluZCwKCiAgICAgICAgIyAgICAgICAgICAgIExpbWl0ID0+IDEKICAgICk7CgogICAgaWYgKCBteSAoICRJRCwgJFZhbGlkLCAkTmFtZSwgJENsaWVudElELCAkQ2xpZW50U2VjcmV0LCAkUmVkaXJlY3RVUkksICRPcGVuSURDb25maWcsICRUVEwsICRTU0xPcHRpb25zLCAkTWlzYyApID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5ICkgewoKICAgICAgICBteSAkSXRlbSA9IHsKICAgICAgICAgICAgUHJvZmlsZUlEICAgICAgPT4gJElELAogICAgICAgICAgICBWYWxpZCAgICAgICAgICA9PiAkVmFsaWQsCiAgICAgICAgICAgIENsaWVudFNldHRpbmdzID0+IHsKCiAgICAgICAgICAgICAgICBDbGllbnRJRCAgICAgPT4gJENsaWVudElELAogICAgICAgICAgICAgICAgQ2xpZW50U2VjcmV0ID0+ICRDbGllbnRTZWNyZXQsCiAgICAgICAgICAgICAgICBSZWRpcmVjdFVSSSAgPT4gJFJlZGlyZWN0VVJJLAogICAgICAgICAgICB9LAogICAgICAgICAgICBQcm92aWRlclNldHRpbmdzID0+IHsKICAgICAgICAgICAgICAgIE9wZW5JRENvbmZpZ3VyYXRpb24gPT4gJE9wZW5JRENvbmZpZywKICAgICAgICAgICAgICAgIFRUTCAgICAgICAgICAgICAgICAgPT4gJFRUTCwKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgPT4gJE5hbWUsCiAgICAgICAgICAgICAgICBTU0xPcHRpb25zICAgICAgICAgID0+ICRZQU1MT2JqZWN0LT5Mb2FkKCBEYXRhID0+ICRTU0xPcHRpb25zIHx8IHt9ICksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE1pc2MgPT4gJFlBTUxPYmplY3QtPkxvYWQoIERhdGEgPT4gJE1pc2MgfHwge30gKSwKICAgICAgICB9OwoKICAgICAgICByZXR1cm4gJEl0ZW07CiAgICB9CgogICAgcmV0dXJuOwp9Cgo9aGVhZDIgRXhpc3RzKCkKCiAgICBDaGVja3Mgd2hldGhlciBhIG5hbWVkIE9JREMgUHJvZmlsZSBhbHJlYWR5IGV4aXN0cy4KCiAgICBteSAkRXhpc3RzID0gJFByb2ZpbGVSZXBvc2l0b3J5T2JqZWN0LT5FeGlzdHMoIE5hbWUgPT4gJE5hbWUgKTsKCj1jdXQKCnN1YiBFeGlzdHMgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgZm9yIG15ICROZWVkZWQgKHF3L05hbWUvKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICROYW1lID0gJFBhcmFte05hbWV9OwoKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgID0+ICJTRUxFQ1QgaWQgRlJPTSBvaWRjX3Byb2ZpbGVzIFdIRVJFIG5hbWUgPSA/ICIsCiAgICAgICAgQmluZCA9PiBbIFwkTmFtZSBdLAoKICAgICAgICAjICAgICAgICAgICAgTGltaXQgPT4gMQogICAgKTsKCiAgICBpZiAoIG15ICgkSUQpID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5ICkgewogICAgICAgIHJldHVybiAkSUQ7CiAgICB9CgogICAgcmV0dXJuOwp9Cgo9aGVhZDIgQWRkUHJvZmlsZSgpCgogICAgSW5zZXJ0IGEgbmV3IE9JREMgUHJvZmlsZSByZWNvcmQgaW50byBEQi4KCiAgICBteSAkU3VjY2VzcyA9ICRQcm9maWxlUmVwb3NpdG9yeU9iamVjdC0+QWRkUHJvZmlsZSgKCiAgICAgICAgTmFtZSA9PiAnPFVuaXF1ZSBOYW1lPicsCiAgICAgICAgQ2xpZW50U2V0dGluZ3MgPT4gewogICAgICAgICAgICBDbGllbnRTZWNyZXQgPT4gJycsCiAgICAgICAgICAgIENsaWVudElEID0+ICcnLAogICAgICAgICAgICBSZWRpcmVjdFVSSSA9PiAnJywKICAgICAgICB9LAogICAgICAgIFByb3ZpZGVyU2V0dGluZ3MgPT4gewogICAgICAgICAgICBPcGVuSURDb25maWd1cmF0aW9uID0+ICdodHRwczovL2tleWNsb2FrOjgwODAvYXV0aC9yZWFsbXMvTXlSZWFsbS8ud2VsbC1rbm93bi9vcGVuaWQtY29uZmlndXJhdGlvbicsCiAgICAgICAgICAgIFRUTCAgICAgICAgICAgICAgICAgPT4gNjAgKiAzMCwgICAgICAjIG9wdGlvbmFsOiB0aW1lIHBlcmlvZCB0aGUgZXh0cmFjdGVkIG9wZW5pZC1jb25maWd1cmF0aW9uIGlzIGNhY2hlZAogICAgICAgICAgICBTU0xPcHRpb25zICAgICAgICAgID0+IHsgICAgICAgICAgICAgIyBpZiBzcGVjaWFsIHNzbCBvcHRpb25zIGFyZSBuZWVkZWQ7IFNTTFZlcmlmeUhvc3RuYW1lID0+IDAgYW5kIFNTTFZlcmlmeU1vZGUgPT4gMCBhcmUgYWxzbyBwb3NzaWJsZSBidXQgc2hvdWxkIG9ubHkgYmUgdXNlZCBmb3IgdGVzdGluZyBwdXJwb3NlcwogICAgICAgICAgICAgICAgU1NMQ2VydGlmaWNhdGUgPT4gJ1NTTF9jZXJ0X2ZpbGUnLCAgICAgIyBjbGllbnQgY2VydGlmaWNhdGUKICAgICAgICAgICAgICAgIFNTTEtleSAgICAgICAgID0+ICdTU0xfa2V5X2ZpbGUnLCAgICAgICMgY2xpZW50IGNlcnQga2V5CiAgICAgICAgICAgICAgICBTU0xQYXNzd29yZCAgICA9PiAnU1NMX3Bhc3N3ZF9jYicsICAgICAjIHBhc3N3b3JkIGZvciBjbGllbnQgY2VydCBrZXkKICAgICAgICAgICAgICAgIFNTTENBRmlsZSAgICAgID0+ICdTU0xfY2FfZmlsZScsICAgICAgICMgQ0EgY2VydGlmaWNhdGUKICAgICAgICAgICAgICAgIFNTTENBRGlyICAgICAgID0+ICdTU0xfY2FfcGF0aCcsICAgICAgICMgQ0EgY2VydCBkaXJlY3RvcnkKICAgICAgICAgICAgICAgIFNTTFZlcmlmeUhvc3RuYW1lID0+IDAsCiAgICAgICAgICAgICAgICBTU0xWZXJpZnlNb2RlID0+IDAKICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgTWlzYyA9PiB7CiAgICAgICAgICAgICAgICAgICAgVXNlTm9uY2UgICA9PiAxLCAgICAgICMgYWRkIGEgbm9uY2UgdG8gcmVxdWVzdCBhbmQgdG9rZW4gKHRoaXMgaXMgcHJpbWFyaWx5IGltcG9ydGFudCBmb3IgdGhlIGltcGxpY2l0IGZsb3cgd2hlcmUgaXQgaXMgZW5hYmxlZCBieSBkZWZhdWx0KQogICAgICAgICAgICAgICAgICAgIFJhbmRMZW5ndGggPT4gMjIsICAgICAjIGxlbmd0aCBmb3Igc3RhdGUgYW5kIG5vbmNlIHJhbmRvbSBzdHJpbmdzIC0gZGVmYXVsdDogMjIKICAgICAgICAgICAgICAgICAgICBSYW5kVFRMICAgID0+IDYwICogNSwgIyB2YWxpZCB0aW1lIHBlcmlvZCBmb3Igc3RhdGUgYW5kIG5vbmNlIChyb3VnaGx5IHRoZSB0aW1lIGEgdXNlciBjYW4gdGFrZSB0byBhdXRoZW50aWNhdGUpIC0gZGVmYXVsdDogMzAwIHMKICAgICAgICAgICAgICAgICAgICBMZWV3YXkgICAgID0+IDIsICAgICAgIyBsZWV3YXkgZm9yIHNtYWxsIHRpbWUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgT1RPQk8gc2VydmVyIGFuZCB0aGUgT3BlbklEIHByb3ZpZXIgLSBkZWZhdWx0OiAyIHMKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAkVXNlcklECiAgICApOwoKPWN1dAoKc3ViIEFkZFByb2ZpbGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkREJPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwogICAgbXkgJFlBTUxPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6WUFNTCcpOwoKICAgIGZvciBteSAkTmVlZGVkIChxdy9OYW1lIENsaWVudFNldHRpbmdzIFByb3ZpZGVyU2V0dGluZ3MvKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICROYW1lICAgPSAkUGFyYW17TmFtZX07CiAgICBteSAkVmFsaWQgID0gJFBhcmFte1ZhbGlkfTsKICAgIG15ICRVc2VySUQgPSAkUGFyYW17VXNlcklEfTsKCiAgICBteSAkQ2xpZW50U2V0dGluZ3MgICA9ICRQYXJhbXtDbGllbnRTZXR0aW5nc30gICAvLyB7fTsKICAgIG15ICRQcm92aWRlclNldHRpbmdzID0gJFBhcmFte1Byb3ZpZGVyU2V0dGluZ3N9IC8vIHt9OwoKICAgIG15ICRDbGllbnRJRCAgICAgPSAkQ2xpZW50U2V0dGluZ3MtPntDbGllbnRJRH07CiAgICBteSAkQ2xpZW50U2VjcmV0ID0gJENsaWVudFNldHRpbmdzLT57Q2xpZW50U2VjcmV0fTsKICAgIG15ICRSZWRpcmVjdFVSSSAgPSAkQ2xpZW50U2V0dGluZ3MtPntSZWRpcmVjdFVSSX0gLy8gJyc7CgogICAgbXkgJE9wZW5JRENvbmZpZ3VyYXRpb24gPSAkUHJvdmlkZXJTZXR0aW5ncy0+e09wZW5JRENvbmZpZ3VyYXRpb259OwogICAgbXkgJFRUTCAgICAgICAgICAgICAgICAgPSAkUHJvdmlkZXJTZXR0aW5ncy0+e1RUTH0gLy8gNjAgKiAzMDsKICAgIG15ICRTU0xPcHRpb25zICAgICAgICAgID0gJFlBTUxPYmplY3QtPkR1bXAoIERhdGEgPT4gJFByb3ZpZGVyU2V0dGluZ3MtPntTU0xPcHRpb25zfSAvLyB7fSApOwoKICAgIG15ICRNaXNjID0gJFlBTUxPYmplY3QtPkR1bXAoIERhdGEgPT4gJFBhcmFte01pc2N9IC8vIHt9ICk7CgogICAgbXkgJFNRTCA9ICJJTlNFUlQgSU5UTyBvaWRjX3Byb2ZpbGVzCiAgICAgICAgKCBuYW1lLCBjbGllbnRfaWQsIGNsaWVudF9zZWNyZXQsIHJlZGlyZWN0X3VyaSwgb3BlbmlkX2NvbmZpZywgdHRsLAogICAgICAgICAgc3NsX29wdGlvbnMsIG1pc2MsIHZhbGlkX2lkLCBjcmVhdGVfdGltZSwgY3JlYXRlX2J5LCBjaGFuZ2VfdGltZSwgY2hhbmdlX2J5ICkKICAgICAgICBWQUxVRVMgKD8sID8sID8sID8sID8sID8sID8sID8sID8sIGN1cnJlbnRfdGltZXN0YW1wLCA/LCBjdXJyZW50X3RpbWVzdGFtcCwgPyApICI7CgogICAgbXkgJEluc2VydFN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCAgPT4gJFNRTCwKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCROYW1lLCAgICAgICAgICAgICAgICBcJENsaWVudElELCBcJENsaWVudFNlY3JldCwgXCRSZWRpcmVjdFVSSSwKICAgICAgICAgICAgXCRPcGVuSURDb25maWd1cmF0aW9uLCBcJFRUTCwgICAgICBcJFNTTE9wdGlvbnMsCiAgICAgICAgICAgIFwkTWlzYywgICAgICAgICAgICAgICAgXCRWYWxpZCwgICAgXCRVc2VySUQsIFwkVXNlcklELAogICAgICAgIF0sCiAgICApOwoKICAgIHJldHVybiAkSW5zZXJ0U3VjY2VzczsKfQoKPWhlYWQyIFVwZGF0ZVByb2ZpbGUoKQoKICAgIFVwZGF0ZSBhbiBleGlzdGluZyBPSURDIFByb2ZpbGUgcmVjb3JkIGluIERCLgoKICAgIG15ICRTdWNjZXNzID0gJFByb2ZpbGVSZXBvc2l0b3J5T2JqZWN0LT5VcGRhdGVQcm9maWxlKAoKICAgICAgICBOYW1lID0+ICc8VW5pcXVlIE5hbWU+JywKICAgICAgICBDbGllbnRTZXR0aW5ncyA9PiB7CiAgICAgICAgICAgIENsaWVudFNlY3JldCA9PiAnJywKICAgICAgICAgICAgQ2xpZW50SUQgPT4gJycsCiAgICAgICAgICAgIFJlZGlyZWN0VVJJID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgUHJvdmlkZXJTZXR0aW5ncyA9PiB7CiAgICAgICAgICAgIE9wZW5JRENvbmZpZ3VyYXRpb24gPT4gJ2h0dHBzOi8va2V5Y2xvYWs6ODA4MC9hdXRoL3JlYWxtcy9NeVJlYWxtLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uJywKICAgICAgICAgICAgVFRMICAgICAgICAgICAgICAgICA9PiA2MCAqIDMwLCAgICAgICMgb3B0aW9uYWw6IHRpbWUgcGVyaW9kIHRoZSBleHRyYWN0ZWQgb3BlbmlkLWNvbmZpZ3VyYXRpb24gaXMgY2FjaGVkCiAgICAgICAgICAgIFNTTE9wdGlvbnMgICAgICAgICAgPT4geyAgICAgICAgICAgICAjIGlmIHNwZWNpYWwgc3NsIG9wdGlvbnMgYXJlIG5lZWRlZDsgU1NMVmVyaWZ5SG9zdG5hbWUgPT4gMCBhbmQgU1NMVmVyaWZ5TW9kZSA9PiAwIGFyZSBhbHNvIHBvc3NpYmxlIGJ1dCBzaG91bGQgb25seSBiZSB1c2VkIGZvciB0ZXN0aW5nIHB1cnBvc2VzCiAgICAgICAgICAgICAgICBTU0xDZXJ0aWZpY2F0ZSA9PiAnU1NMX2NlcnRfZmlsZScsICAgICAjIGNsaWVudCBjZXJ0aWZpY2F0ZQogICAgICAgICAgICAgICAgU1NMS2V5ICAgICAgICAgPT4gJ1NTTF9rZXlfZmlsZScsICAgICAgIyBjbGllbnQgY2VydCBrZXkKICAgICAgICAgICAgICAgIFNTTFBhc3N3b3JkICAgID0+ICdTU0xfcGFzc3dkX2NiJywgICAgICMgcGFzc3dvcmQgZm9yIGNsaWVudCBjZXJ0IGtleQogICAgICAgICAgICAgICAgU1NMQ0FGaWxlICAgICAgPT4gJ1NTTF9jYV9maWxlJywgICAgICAgIyBDQSBjZXJ0aWZpY2F0ZQogICAgICAgICAgICAgICAgU1NMQ0FEaXIgICAgICAgPT4gJ1NTTF9jYV9wYXRoJywgICAgICAgIyBDQSBjZXJ0IGRpcmVjdG9yeQogICAgICAgICAgICAgICAgU1NMVmVyaWZ5SG9zdG5hbWUgPT4gMCwKICAgICAgICAgICAgICAgIFNTTFZlcmlmeU1vZGUgPT4gMAogICAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBNaXNjID0+IHsKICAgICAgICAgICAgICAgICAgICBVc2VOb25jZSAgID0+IDEsICAgICAgIyBhZGQgYSBub25jZSB0byByZXF1ZXN0IGFuZCB0b2tlbiAodGhpcyBpcyBwcmltYXJpbHkgaW1wb3J0YW50IGZvciB0aGUgaW1wbGljaXQgZmxvdyB3aGVyZSBpdCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQpCiAgICAgICAgICAgICAgICAgICAgUmFuZExlbmd0aCA9PiAyMiwgICAgICMgbGVuZ3RoIGZvciBzdGF0ZSBhbmQgbm9uY2UgcmFuZG9tIHN0cmluZ3MgLSBkZWZhdWx0OiAyMgogICAgICAgICAgICAgICAgICAgIFJhbmRUVEwgICAgPT4gNjAgKiA1LCAjIHZhbGlkIHRpbWUgcGVyaW9kIGZvciBzdGF0ZSBhbmQgbm9uY2UgKHJvdWdobHkgdGhlIHRpbWUgYSB1c2VyIGNhbiB0YWtlIHRvIGF1dGhlbnRpY2F0ZSkgLSBkZWZhdWx0OiAzMDAgcwogICAgICAgICAgICAgICAgICAgIExlZXdheSAgICAgPT4gMiwgICAgICAjIGxlZXdheSBmb3Igc21hbGwgdGltZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSBPVE9CTyBzZXJ2ZXIgYW5kIHRoZSBPcGVuSUQgcHJvdmllciAtIGRlZmF1bHQ6IDIgcwogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRVc2VySUQKICAgICk7Cgo9Y3V0CgpzdWIgVXBkYXRlUHJvZmlsZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICREQk9iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CiAgICBteSAkWUFNTE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpZQU1MJyk7CgogICAgZm9yIG15ICROZWVkZWQgKHF3L05hbWUgQ2xpZW50U2V0dGluZ3MgUHJvdmlkZXJTZXR0aW5ncy8pIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJE5hbWUgICA9ICRQYXJhbXtOYW1lfTsKICAgIG15ICRWYWxpZCAgPSAkUGFyYW17VmFsaWR9OwogICAgbXkgJFVzZXJJRCA9ICRQYXJhbXtVc2VySUR9OwoKICAgIG15ICRDbGllbnRTZXR0aW5ncyAgID0gJFBhcmFte0NsaWVudFNldHRpbmdzfSAgIC8vIHt9OwogICAgbXkgJFByb3ZpZGVyU2V0dGluZ3MgPSAkUGFyYW17UHJvdmlkZXJTZXR0aW5nc30gLy8ge307CgogICAgbXkgJENsaWVudElEICAgICA9ICRDbGllbnRTZXR0aW5ncy0+e0NsaWVudElEfTsKICAgIG15ICRDbGllbnRTZWNyZXQgPSAkQ2xpZW50U2V0dGluZ3MtPntDbGllbnRTZWNyZXR9OwogICAgbXkgJFJlZGlyZWN0VVJJICA9ICRDbGllbnRTZXR0aW5ncy0+e1JlZGlyZWN0VVJJfSAvLyAnJzsKCiAgICBteSAkT3BlbklEQ29uZmlndXJhdGlvbiA9ICRQcm92aWRlclNldHRpbmdzLT57T3BlbklEQ29uZmlndXJhdGlvbn07CiAgICBteSAkVFRMICAgICAgICAgICAgICAgICA9ICRQcm92aWRlclNldHRpbmdzLT57VFRMfSAvLyA2MCAqIDMwOwogICAgbXkgJFNTTE9wdGlvbnMgICAgICAgICAgPSAkWUFNTE9iamVjdC0+RHVtcCggRGF0YSA9PiAkUHJvdmlkZXJTZXR0aW5ncy0+e1NTTE9wdGlvbnN9IC8vIHt9ICk7CgogICAgbXkgJE1pc2MgPSAkWUFNTE9iamVjdC0+RHVtcCggRGF0YSA9PiAkUGFyYW17TWlzY30gLy8ge30gKTsKCiAgICBteSAkU1FMID0gIlVQREFURSBvaWRjX3Byb2ZpbGVzIFNFVCBjbGllbnRfaWQgPSA/LCBjbGllbnRfc2VjcmV0ID0gPywgcmVkaXJlY3RfdXJpID0gPywgb3BlbmlkX2NvbmZpZyA9ID8sCiAgICAgICAgdHRsID0gPywgc3NsX29wdGlvbnMgPSA/LCBtaXNjID0gPywgdmFsaWRfaWQgPSA/LCBjaGFuZ2VfdGltZSA9IGN1cnJlbnRfdGltZXN0YW1wLCBjaGFuZ2VfYnkgPSA/CiAgICAgICAgV0hFUkUgbmFtZSA9ID8gIjsKCiAgICBteSAkVXBkYXRlU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMICA9PiAkU1FMLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJENsaWVudElELCAgICAgICAgICAgIFwkQ2xpZW50U2VjcmV0LCBcJFJlZGlyZWN0VVJJLAogICAgICAgICAgICBcJE9wZW5JRENvbmZpZ3VyYXRpb24sIFwkVFRMLCAgICAgICAgICBcJFNTTE9wdGlvbnMsCiAgICAgICAgICAgIFwkTWlzYywgICAgICAgICAgICAgICAgXCRWYWxpZCwgICAgICAgIFwkVXNlcklELCBcJE5hbWUKICAgICAgICBdLAogICAgKTsKCiAgICByZXR1cm4gJFVwZGF0ZVN1Y2Nlc3M7Cn0KCj1oZWFkMiBEZWxldGVQcm9maWxlKCkKCiAgICBSZW1vdmVzIGFuIG5hbWVkIE9JREMgUHJvZmlsZSByZWNvcmQgZnJvbSBEQi4KCiAgICBUaGlzIHdpbGwgZXJyb3Igb3V0IGVhcmx5IGlmIHRoZXJlIGFyZSBhbnkgcmVmZXJlbmNlcyB0byB0aGlzIFByb2ZpbGUKICAgIGZyb20gRnVuY3Rpb25hbCBBY2NvdW50cy4gVGhlIFByb2ZpbGUgd2lsbCAqbm90KiBiZSBkZWxldGVkIGluIHRoYXQgY2FzZS4KCiAgICBteSAkU3VjY2VzcyA9ICRQcm9maWxlUmVwb3NpdG9yeU9iamVjdC0+RGVsZXRlUHJvZmlsZSggTmFtZSA9PiAkTmFtZSApOwoKPWN1dAoKc3ViIERlbGV0ZVByb2ZpbGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcvTmFtZS8pIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJE5hbWUgPSAkUGFyYW17TmFtZX07CgogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiU0VMRUNUIENPVU5UKG9wLmlkKQogICAgICAgICAgICAgICAgRlJPTSBvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudHMgb2ZhCiAgICAgICAgICAgICAgICBMRUZUIEpPSU4gb2lkY19wcm9maWxlcyBvcAogICAgICAgICAgICAgICAgT04gb3AuaWQgPSBvZmEub2lkY19wcm9maWxlX2lkCiAgICAgICAgICAgICAgICBXSEVSRSBvcC5uYW1lID0gPyAiLAogICAgICAgIEJpbmQgPT4gWyBcJE5hbWUgXSwKICAgICk7CgogICAgbXkgKCRDT1VOVCkgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKTsKCiAgICBpZiAoICRDT1VOVCA+IDAgKSB7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRTUUwgID0gIkRFTEVURSBGUk9NIG9pZGNfcHJvZmlsZXMgV0hFUkUgbmFtZSA9ID8gIjsKICAgIG15ICRCaW5kID0gWyBcJE5hbWUsIF07CgogICAgbXkgJERlbGV0ZVN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCAgPT4gJFNRTCwKICAgICAgICBCaW5kID0+ICRCaW5kLAogICAgKTsKCiAgICByZXR1cm4gJERlbGV0ZVN1Y2Nlc3M7Cn0KCjE7Cg==</File>
        <File Location="Kernel/System/OpenIDConnect/Token.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW47Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgojIGNvcmUgbW9kdWxlcwoKIyBDUEFOIG1vZHVsZXMKCnVzZSBDcnlwdDo6SldUIHF3KGRlY29kZV9qd3QpOwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCnVzZSBuYW1lc3BhY2U6OmF1dG9jbGVhbjsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkNvbmZpZ3VyYXRpb24nLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlbgoKSW5zcGVjdCBhbmQgVmFsaWRhdGUgT0F1dGgyIFRva2VucwoKPWhlYWQxIFNZTk9QU0lTCgpPQXV0aDIgVG9rZW5zIGZvciBPcGVuSUQgQ29ubmVjdAoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJFRva2VuT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIEluc3BlY3QoKQoKICAgIEluc3BlY3QgVG9rZW4gcGF5bG9hZCB3aXRob3V0IHZhbGlkYXRpbmcgdGhlIHNpZ25hdHVyZS4KCiAgICBteSAkVG9rZW5EYXRhID0gJFRva2VuT2JqZWN0LT5JbnNwZWN0KAogICAgICAgIFRva2VuID0+ICRUb2tlbiwKICAgICAgICBMZWV3YXkgPT4gJEFsbG93ZWRTZWNvbmRzVGltZURyaWZ0LCAgICAgICAjIG9wdGlvbmFsCiAgICApOwoKPWN1dAoKc3ViIEluc3BlY3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcvVG9rZW4vKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICRUb2tlbkRhdGE7CiAgICBldmFsIHsKICAgICAgICAkVG9rZW5EYXRhID0gZGVjb2RlX2p3dCgKICAgICAgICAgICAgdG9rZW4gICAgICAgICAgICA9PiAkUGFyYW17VG9rZW59LAogICAgICAgICAgICBpZ25vcmVfc2lnbmF0dXJlID0+IDEsCiAgICAgICAgICAgIGlnbm9yZV9jbGFpbXMgICAgPT4gMSwKICAgICAgICAgICAgbGVld2F5ICAgICAgICAgICA9PiAkUGFyYW17TGVld2F5fSAvLyAyLAogICAgICAgICk7CiAgICB9OwogICAgaWYgKCRAKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJEZWNvZGluZyBKV1QgZmFpbGVkOiAkQCIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIHJldHVybiAkVG9rZW5EYXRhOwp9Cgo9aGVhZDIgc3ViIElzVG9rZW5TdGlsbFZhbGlkKCkKCiAgICBSZXR1cm4gdHJ1ZSBpZiBhIFRva2VuIGlzIHN0aWxsIHZhbGlkCgogICAgbXkgJEJvb2xlYW4gPSAkVG9rZW5PYmplY3QtPklzVG9rZW5TdGlsbFZhbGlkKCBUb2tlbiA9PiAkVG9rZW4gKTsKCj1jdXQKCnN1YiBJc1Rva2VuU3RpbGxWYWxpZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdy9Ub2tlbi8pIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJE1pblRpbWVUaWxsRXhwaXJlZCA9ICRQYXJhbXtNaW5UaW1lVGlsbEV4cGlyZWR9IHx8IDMwOwogICAgbXkgJFRva2VuICAgICAgICAgICAgICA9ICRQYXJhbXtUb2tlbn07CgogICAgbXkgJFRpbWVMZWZ0ID0gJFNlbGYtPlRpbWVMZWZ0KAogICAgICAgIFRva2VuID0+ICRUb2tlbiwKICAgICk7CgogICAgaWYgKCAkVGltZUxlZnQgPiAkTWluVGltZVRpbGxFeHBpcmVkICkgewogICAgICAgIHJldHVybiAkVG9rZW4gaWYgJFRpbWVMZWZ0ID4gJE1pblRpbWVUaWxsRXhwaXJlZDsKICAgIH0KCiAgICByZXR1cm47Cn0KCj1oZWFkMiBUaW1lTGVmdCgpCgpSZXR1cm5zIHRoZSB0aW1lIGluIHNlY29uZHMgYSB0b2tlbiBpcyBzdGlsbCB2YWxpZAoKICAgIG15ICRUaW1lTGVmdCA9ICRUb2tlblByb3ZpZGVyT2JqZWN0LT5UaW1lTGVmdCgKICAgICAgICBUb2tlbiAgICAgICAgICA9PiAkVG9rZW4sCiAgICApOwoKPWN1dAoKc3ViIFRpbWVMZWZ0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICROZWVkZWQgKHF3L1Rva2VuLykgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICRUb2tlbkRhdGEgPSAkU2VsZi0+SW5zcGVjdCglUGFyYW0pOwogICAgaWYgKCAhJFRva2VuRGF0YSApIHsKICAgICAgICByZXR1cm4gMDsKICAgIH0KCiAgICBpZiAoICEkVG9rZW5EYXRhLT57ZXhwfSApIHsKICAgICAgICByZXR1cm4gNjAwOyAgICAjIG9mZmxpbmVfdG9rZW4gaGFzIG5vdCBleHBpcnkKICAgIH0KCiAgICAjIHRpbWUgd2luZG93CiAgICBteSAkQ3VycmVudFRpbWUgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKS0+VG9FcG9jaCgpOwoKICAgIHJldHVybiAkVG9rZW5EYXRhLT57ZXhwfSAtICRDdXJyZW50VGltZTsKfQoKPWhlYWQyIFZhbGlkYXRlKCkKCiAgICBWYWxpZGF0ZXMgYSBUb2tlbgoKICAgIG15ICRSZXN1bHQgPSAkVG9rZW5PYmplY3QtPlZhbGlkYXRlKAogICAgICAgIFRva2VuICAgICAgICAgICAgID0+ICRUb2tlbiwKICAgICAgICBPcGVuSURDb25maWcgICAgICA9PiAkT3BlbklEQ29uZmlnLAogICAgICAgIEV4cGVjdGVkU2NvcGVzICAgID0+IDxzcGFjZSBzZXBhcmF0ZWQgbGlzdD4sICMgb3B0aW9uYWwKICAgICAgICBFeHBlY3RlZEF1ZGllbmNlICA9PiA8c3BhY2Ugc2VwYXJhdGVkIGxpc3Q+LCAjIG9wdGlvbmFsCiAgICAgICAgQXV0aG9yaXplZFBhcnR5ICAgPT4gJzxpZGVudGlmaWVyPicsICAgICAgICAgIyBvcHRpb25hbAogICAgKTsKCiAgICByZXR1cm5zCgogICAgeyBTdWNjZXNzID0+IDAsIEVycm9yID0+ICdtc2cnIH0KCiAgICBvcgoKICAgIHsgU3VjY2VzcyA9PiAxLCBUb2tlbkRhdGEgPT4gey4uLn0gfQoKPWN1dAoKc3ViIFZhbGlkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFJldHVybiA9IHsgU3VjY2VzcyA9PiAwIH07CiAgICBmb3IgbXkgJE5lZWRlZCAocXcvVG9rZW4gT3BlbklEQ29uZmlnLykgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKCiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvciAgID0+ICJOZWVkICROZWVkZWQhIgogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICBteSAkT3BlbklEQ29uZmlnICAgICA9ICRQYXJhbXtPcGVuSURDb25maWd9OwogICAgbXkgJENsaWVudFNldHRpbmdzICAgPSAkT3BlbklEQ29uZmlnLT57Q2xpZW50U2V0dGluZ3N9OwogICAgbXkgJEV4cGVjdGVkQXVkaWVuY2UgPSAkUGFyYW17RXhwZWN0ZWRBdWRpZW5jZX07CiAgICBteSAkQXV0aG9yaXplZFBhcnR5ICA9ICRQYXJhbXtBdXRob3JpemVkUGFydHl9OwogICAgbXkgJEV4cGVjdGVkU2NvcGVzICAgPSAkUGFyYW17RXhwZWN0ZWRTY29wZXN9OwogICAgbXkgJExlZXdheSAgICAgICAgICAgPSAkUGFyYW17TGVld2F5fSAvLyAkT3BlbklEQ29uZmlnLT57TWlzY30tPntMZWV3YXl9IC8vIDI7CgogICAgbXkgJFRva2VuRGF0YSA9ICRTZWxmLT5EZWNvZGVUb2tlbigKICAgICAgICBUb2tlbiAgICAgICAgPT4gJFBhcmFte1Rva2VufSwKICAgICAgICBPcGVuSURDb25maWcgPT4gJE9wZW5JRENvbmZpZywKICAgICAgICBMZWV3YXkgICAgICAgPT4gJExlZXdheSwKICAgICk7CgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJFRva2VuRGF0YSkgKSB7CgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgICAgICAgICAgRXJyb3IgICA9PiAiRGVjb2RlIFRva2VuIGZhaWxlZCEuIgogICAgICAgIH07CiAgICB9CgogICAgZm9yIG15ICROZWVkZWQgKHF3L2lzcyBzdWIgYXVkIGV4cCBpYXQvKSB7CgogICAgICAgIGlmICggISRUb2tlbkRhdGEtPnskTmVlZGVkfSApIHsKCiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvciAgID0+ICJUb2tlbiBpbnZhbGlkOiA8JE5lZWRlZD4gbm90IGluY2x1ZGVkLiIKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJE9JRENDb25maWd1cmF0aW9uT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkNvbmZpZ3VyYXRpb24nKTsKICAgIG15ICRPcGVuSURQcm92aWRlckRhdGEgICAgICA9ICRPSURDQ29uZmlndXJhdGlvbk9iamVjdC0+R2V0UHJvdmlkZXJEYXRhKAogICAgICAgIE9wZW5JRENvbmZpZyA9PiAkT3BlbklEQ29uZmlnLAogICAgKTsKCiAgICBteSAkSXNzdWVyID0gJE9wZW5JRFByb3ZpZGVyRGF0YS0+e09wZW5JRENvbmZpZ3VyYXRpb259e2lzc3Vlcn07CgogICAgIyBkbyB0aGUgdmFsaWRhdGlvbgogICAgaWYgKCAkVG9rZW5EYXRhLT57aXNzfSBuZSAkSXNzdWVyICkgewoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgIEVycm9yICAgPT4gIjxpc3M+IHdyb25nLiBUb2tlbiBpcyBpc3N1ZWQgYnkgJyRUb2tlbkRhdGEtPntpc3N9JywgYnV0ICckSXNzdWVyJyBpcyByZXF1aXJlZC4iCiAgICAgICAgfTsKICAgIH0KCiAgICBteSBAQXVkaWVuY2UgPSByZWYgJFRva2VuRGF0YS0+e2F1ZH0gPyBAeyAkVG9rZW5EYXRhLT57YXVkfSB9IDogKCAkVG9rZW5EYXRhLT57YXVkfSApOwoKICAgIGlmICgkRXhwZWN0ZWRBdWRpZW5jZSkgewoKICAgICAgICBpZiAoICFncmVwIHsgJF8gPX4gbS8kRXhwZWN0ZWRBdWRpZW5jZS8gfSBAQXVkaWVuY2UgKSB7CgogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgICAgICAgICAgICAgRXJyb3IgICA9PiAiPGF1ZD4gd3JvbmcuIFRva2VuIGlzIGFkZHJlc3NlZCB0byAnQEF1ZGllbmNlJyB3aGljaCBkb2VzIG5vdCBjb250YWluICckRXhwZWN0ZWRBdWRpZW5jZScuIgogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoIHJlZiAkVG9rZW5EYXRhLT57YXVkfSAmJiAhJFRva2VuRGF0YS0+e2F6cH0gKSB7CgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgICAgICAgICAgRXJyb3IgICA9PiAiPGF1ZD4gaXMgYW4gYXJyYXkgYnV0IDxhenA+IG5vdCBwcmVzZW50LiIKICAgICAgICB9OwogICAgfQoKICAgIGlmICggJEF1dGhvcml6ZWRQYXJ0eSAmJiAkVG9rZW5EYXRhLT57YXpwfSAmJiAkQXV0aG9yaXplZFBhcnR5ICF+ICRUb2tlbkRhdGEtPnthenB9ICkgewoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgIEVycm9yICAgPT4gIjxhenA+IHByZXNlbnQgYW5kIHdyb25nLiBBdXRob3JpemVkIHBhcnR5IGlzIHNwZWNpZmllZCBhcyAnJFRva2VuRGF0YS0+e2F6cH0nLCB3ZSBhcmUgJyRDbGllbnRTZXR0aW5ncy0+e0NsaWVudElEfScuIgogICAgICAgIH07CiAgICB9CgogICAgaWYgKCAkRXhwZWN0ZWRTY29wZXMgJiYgJFRva2VuRGF0YS0+e3Njb3BlfSApIHsKCiAgICAgICAgbXkgQFNjb3BlcyA9IHNwbGl0IC8gKy8sICRFeHBlY3RlZFNjb3BlczsKICAgICAgICBmb3IgbXkgJFNjb3BlIChAU2NvcGVzKSB7CiAgICAgICAgICAgIG15ICRSZWdleCA9IHFyL1xiJFNjb3BlXGIvOwogICAgICAgICAgICBpZiAoICRUb2tlbkRhdGEtPntzY29wZX0gIX4gLyRSZWdleC8gKSB7CgogICAgICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgICAgICAgICAgRXJyb3IgICA9PiAiPHNjb3BlPiBpbnZhbGlkLiAnIiAuICRUb2tlbkRhdGEtPntzY29wZX0gLiAiJyBkb2VzIG5vdCBpbmNsdWRlICRTY29wZSIKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbXkgJEN1cnJlbnRUaW1lID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyktPlRvRXBvY2goKTsKICAgIGlmICggJFRva2VuRGF0YS0+e2lhdH0gLSAkTGVld2F5ID4gJEN1cnJlbnRUaW1lICkgewoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgIEVycm9yICAgPT4gIjxpYXQ+IGludmFsaWQuIFRva2VuIGNyZWF0aW9uIHRpbWUgaXMgaW4gdGhlIGZ1dHVyZS4gVG9rZW46ICRUb2tlbkRhdGEtPntpYXR9OyBDdXJyZW50OiAkQ3VycmVudFRpbWU7IgogICAgICAgIH07CiAgICB9CgogICAgaWYgKCAkVG9rZW5EYXRhLT57ZXhwfSArICRMZWV3YXkgPD0gJEN1cnJlbnRUaW1lICkgewoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgIEVycm9yICAgPT4gIjxleHA+IGludmFsaWQuIFRva2VuIGV4cGlyZWQuIEV4cGlyYXRpb24gVGltZTogJFRva2VuRGF0YS0+e2V4cH07IEN1cnJlbnQ6ICRDdXJyZW50VGltZTsiCiAgICAgICAgfTsKICAgIH0KCiAgICBpZiAoICRQYXJhbXtVc2VOb25jZX0gKSB7CiAgICAgICAgaWYgKCAhJFRva2VuRGF0YS0+e25vbmNlfSApIHsKCiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvciAgID0+ICJObyBub25jZSBpbiBUb2tlbi4iCiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICBteSAkQ2FjaGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKTsKICAgICAgICBteSAlTm9uY2UgICAgICAgPSAoCiAgICAgICAgICAgIFR5cGUgPT4gJ09wZW5JRENvbm5lY3RfTm9uY2UnLAogICAgICAgICAgICBLZXkgID0+ICRUb2tlbkRhdGEtPntub25jZX0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAkQ2FjaGVPYmplY3QtPkdldCglTm9uY2UpICkgewogICAgICAgICAgICAkQ2FjaGVPYmplY3QtPkRlbGV0ZSglTm9uY2UpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvciAgID0+ICI8bm9uY2U+IGludmFsaWQuIgogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gewogICAgICAgIFN1Y2Nlc3MgICA9PiAxLAogICAgICAgIFRva2VuRGF0YSA9PiAkVG9rZW5EYXRhLAogICAgfTsKfQoKPWhlYWQyIERlY29kZVRva2VuKCkKClJldHVybnMgdGhlIGRlY29kZWQgdG9rZW4KCiAgICBteSAkVG9rZW5EYXRhID0gJFRva2VuT2JqZWN0LT5EZWNvZGVUb2tlbigKICAgICAgICBUb2tlbiAgICAgICAgICA9PiAkVG9rZW4sCiAgICAgICAgT3BlbklEQ29uZmlnICAgPT4gJE9wZW5JRENvbmZpZywKICAgICk7Cgo9Y3V0CgpzdWIgRGVjb2RlVG9rZW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcvVG9rZW4gT3BlbklEQ29uZmlnLykgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICRPSURDQ29uZmlndXJhdGlvbk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpDb25maWd1cmF0aW9uJyk7CiAgICBteSAkTGVld2F5ICAgICAgICAgICAgICAgICAgPSAkUGFyYW17T3BlbklEQ29uZmlnfS0+e01pc2N9LT57TGVld2F5fSAvLyAyOwogICAgbXkgJE9wZW5JRFByb3ZpZGVyRGF0YSAgICAgID0gJE9JRENDb25maWd1cmF0aW9uT2JqZWN0LT5HZXRQcm92aWRlckRhdGEoCiAgICAgICAgT3BlbklEQ29uZmlnID0+ICRQYXJhbXtPcGVuSURDb25maWd9LAogICAgKTsKCiAgICAjIGdldCB0aGUgT3BlbklEQ29uZmlndXJhdGlvbiBhbmQgS2V5cwogICAgbXkgJFRyeSA9IDA7CgogICAgIyBkZWNvZGUgdGhlIHRva2VuOyByZXRyeSBvbmNlIGlmIGl0IGRvZXNuJ3Qgd29yayBmb3IgY2FjaGVkIGNvbmZpZwogICAgbXkgJFRva2VuRGF0YTsKICAgIHdoaWxlICggJFRyeSsrIDwgMiApIHsKICAgICAgICBteSAkRXJyb3I7CgogICAgICAgICMgZGVjb2RlIGlkX3Rva2VuLCBjaGVjayBrZXkKICAgICAgICBldmFsIHsKICAgICAgICAgICAgJFRva2VuRGF0YSA9IGRlY29kZV9qd3QoCiAgICAgICAgICAgICAgICB0b2tlbiAgICA9PiAkUGFyYW17VG9rZW59LAogICAgICAgICAgICAgICAga2lkX2tleXMgPT4gJE9wZW5JRFByb3ZpZGVyRGF0YS0+e0tleURhdGF9LAogICAgICAgICAgICAgICAgbGVld2F5ICAgPT4gJExlZXdheSwKICAgICAgICAgICAgKSAvLyB7fTsKICAgICAgICB9OwogICAgICAgIGlmICgkQCkgewogICAgICAgICAgICAkVG9rZW5EYXRhID0gdW5kZWY7CiAgICAgICAgICAgICRFcnJvciAgICAgPSAkQDsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgd2hldGhlciB0aGUgdG9rZW4gY291bGQgYmUgZGVjb2RlZCBhbmQgdGhlIGlzc3VlciBpcyBjb3JyZWN0IC0gaWYgbm90IHRoZSBjYWNoZWQgZGF0YSBtaWdodCBqdXN0IGJlIG91dGRhdGVkCiAgICAgICAgaWYgKCAkVG9rZW5EYXRhICYmICRUb2tlbkRhdGEtPntpc3N9ICYmICRUb2tlbkRhdGEtPntpc3N9IGVxICRPcGVuSURQcm92aWRlckRhdGEtPntPcGVuSURDb25maWd1cmF0aW9ufXtpc3N1ZXJ9ICkgewogICAgICAgICAgICAkVHJ5ID0gMTAwOwogICAgICAgIH0KCiAgICAgICAgIyByZW5ldyB0aGUgcHJvdmlkZXIgZGF0YSBvbmNlCiAgICAgICAgZWxzaWYgKCAkVHJ5IDwgMiApIHsKICAgICAgICAgICAgJE9wZW5JRFByb3ZpZGVyRGF0YSA9ICRPSURDQ29uZmlndXJhdGlvbk9iamVjdC0+R2V0UHJvdmlkZXJEYXRhKAogICAgICAgICAgICAgICAgT3BlbklEQ29uZmlnID0+ICRQYXJhbXtPcGVuSURDb25maWd9LAogICAgICAgICAgICAgICAgTm9DYWNoZSAgICAgID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFRva2VuRGF0YSA9IHVuZGVmOwogICAgICAgICAgICAkRXJyb3IgLy89ICRUb2tlbkRhdGEtPntpc3N9CiAgICAgICAgICAgICAgICA/ICJXcm9uZyBpc3N1ZXIhICRUb2tlbkRhdGEtPntpc3N9IChUb2tlbik7ICRPcGVuSURQcm92aWRlckRhdGEtPntPcGVuSURDb25maWd1cmF0aW9ufXtpc3N1ZXJ9IChQcm92aWRlciBDb25maWcpOyIKICAgICAgICAgICAgICAgIDogJ1Vua25vd24gRXJyb3IuJzsKCiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJEZWNvZGluZyBKV1QgZmFpbGVkOiAkQCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAkVG9rZW5EYXRhOwp9CgoxOwo=</File>
        <File Location="Kernel/System/OpenIDConnect/TokenProvider.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5Qcm92aWRlcjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCnVzZSBuYW1lc3BhY2U6OmF1dG9jbGVhbjsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6Okxhbmd1YWdlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TWFpbicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkpTT04nLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW4nLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpPQXV0aDInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpDb25maWd1cmF0aW9uJywKICAgICdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5SZXBvc2l0b3J5JywKICAgICdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6RnVuY3Rpb25hbEFjY291bnRzJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5Qcm92aWRlciAtIG1ldGhvZHMgZm9yIE9wZW5JRENvbm5lY3Q6OlRva2VuUHJvdmlkZXIKCj1oZWFkMSBTWU5PUFNJUwoKSGlnaCBsZXZlbCBpbnRlcmZhY2UgZm9yIEludm9rZXIgYW5kIG91dGdvaW5nIGNhbGxzIHRvIGZldGNoIGEgdmFsaWQgYWNjZXNzX3Rva2VuCihvciBpZF90b2tlbikgdG8gcGFzcyBhbG9uZy4KCmNyZWF0ZSBhbiBvYmplY3QKCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRUb2tlblByb3ZpZGVyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuUHJvdmlkZXInKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgRmV0Y2goKQoKTWFpbiBpbnRlcmZhY2UgZm9yIGNsaWVudCBjb2RlLiBKdXN0IHVzZSBmZXRjaCB0byBnZXQgYSB2YWxpZCB0b2tlbiBmcm9tIGNhY2hlLCBmcm9tIERCLCB2aWEgcmVmcmVzaF90b2tlbiwKb3IgZnJvbSBzY3JhdGNoIGlmIGNyZWRlbnRpYWxzIGFyZSBrbm93biAobGlrZSBmb3IgcGFzc3dvcmQgYW5kIGNsaWVudF9jcmVkZW50aWFsIGdyYW50cykuCgpBY2NvdW50cyB1c2luZyBhaHRvcml6YXRpb25fY29kZSBncmFudCBtaWdodCBnZXQgdW5kZWYgYW5kIHRoZW4gaGF2ZSB0byBpbml0aWF0ZSBhIGJyb3dzZXIgYmFzZWQgZmxvdyByZWRpcmVjdGluZwp0aGUgY2xpZW50cyBicm93c2VyIHRvIHRoZSByZXN1bHQgZnJvbSBHZXRBdXRoVVJMKCkKCkZPciBub3cgb25seSBQcm92aWRlciBhbmQgSW52b2tlciAgYWNjb3VudHMgYXJlIGFsbG93ZWQuCgogICAgbXkgJFRva2VuUmVzdWx0ID0gJFRva2VuUHJvdmlkZXJPYmplY3QtPkZldGNoKAogICAgICAgIEFjY291bnROYW1lICA9PiAnPFNvbWVBY2NvdW50TmFtZT4nLAogICAgKTsKCiAgICB3aGVyZSBUb2tlblJlc3VsdDoKCiAgICBteSAkVG9rZW5SZXN1bHQgPSB7CiAgICAgICAgU3VjY2VzcyA9PiAwfDEsCiAgICAgICAgVG9rZW4gICA9PiA8dG9rZW4gdmFsdWUgb24gc3VjY2Vzcz4sCiAgICAgICAgRXJyb3IgICA9PiA8RXJyb3IgbXNnIG9uIGVycm9yPgogICAgfTsKPWN1dAoKc3ViIEZldGNoIHsKCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdy9BY2NvdW50TmFtZS8pIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvciAgID0+ICJJbnZhbGlkIFBhcmFtZXRlcnMiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICBteSAkQWNjb3VudE5hbWUgPSAkUGFyYW17QWNjb3VudE5hbWV9OwoKICAgIG15ICRMYW5ndWFnZU9iamVjdCAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Okxhbmd1YWdlJyk7CiAgICBteSAkRnVuY3Rpb25hbEFjY291bnRzT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkZ1bmN0aW9uYWxBY2NvdW50cycpOwogICAgbXkgJFRva2VuT2JqZWN0ICAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlbicpOwogICAgbXkgJEFjY291bnQgICAgICAgICAgICAgICAgICA9ICRGdW5jdGlvbmFsQWNjb3VudHNPYmplY3QtPkdldEFjY291bnQoIE5hbWUgPT4gJEFjY291bnROYW1lICk7CgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJEFjY291bnQpICkgewoKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkludm9rZXIgQWNjb3VudE5hbWUgJEFjY291bnROYW1lIG5vdCBmb3VuZCEiLAogICAgICAgICk7CgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgICAgICAgICAgRXJyb3IgICA9PiAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSggIkFjY291bnROYW1lICVzIG5vdCBmb3VuZCEiLCAkQWNjb3VudE5hbWUgKSwKICAgICAgICB9OwogICAgfQoKICAgIG15ICRUb2tlblR5cGUgPSAkUGFyYW17VG9rZW5UeXBlfSB8fCAkQWNjb3VudC0+e1Rva2VuVHlwZX0gfHwgJ2FjY2Vzc190b2tlbic7CgogICAgIyAxKSB0cnkgZmV0Y2ggZnJvbSBDYWNoZQoKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgTWVzc2FnZSAgPT4gIlRyeSBmZXRjaCBPQXV0aDIgVG9rZW4gZnJvbSBDYWNoZSBmb3IgQWNjb3VudCAkQWNjb3VudE5hbWUiLAogICAgKTsKCiAgICBteSAkVG9rZW4gPSAkU2VsZi0+X0ZldGNoVG9rZW5Gcm9tQ2FjaGUoCiAgICAgICAgQWNjb3VudE5hbWUgPT4gJEFjY291bnROYW1lLAogICAgICAgIFRva2VuVHlwZSAgID0+ICRUb2tlblR5cGUsCiAgICApOwoKICAgIGlmICgkVG9rZW4pIHsKCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJGb3VuZCBPQXV0aDIgVG9rZW4gaW4gQ2FjaGUgZm9yIEFjY291bnQgJEFjY291bnROYW1lIiwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTdWNjZXNzID0+IDEsCiAgICAgICAgICAgIFRva2VuICAgPT4gJFRva2VuLAogICAgICAgICAgICBPcmlnaW4gID0+ICdjYWNoZScsCiAgICAgICAgfTsKICAgIH0KCiAgICAjIDIpIHRyeSBmZXRjaCBmcm9tIERCCgogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICBNZXNzYWdlICA9PiAiVHJ5IGZldGNoIE9BdXRoMiBUb2tlbiBmcm9tIERCIGZvciBBY2NvdW50ICRBY2NvdW50TmFtZSIsCiAgICApOwoKICAgIG15ICRUb2tlblJlcG9zaXRvcnkgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5SZXBvc2l0b3J5Jyk7CgogICAgbXkgJFRva2VuRGF0YSA9ICRUb2tlblJlcG9zaXRvcnktPkdldFRva2VuKAogICAgICAgIEFjY291bnROYW1lID0+ICRBY2NvdW50TmFtZSwKICAgICAgICBUb2tlblR5cGUgICA9PiAkVG9rZW5UeXBlLAogICAgKTsKCiAgICBpZiAoICRUb2tlbkRhdGEgJiYgJFRva2VuRGF0YS0+e1Rva2VufSApIHsKCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJGb3VuZCBPQXV0aDIgVG9rZW4gaW4gREIgZm9yIEFjY291bnQgJEFjY291bnROYW1lIiwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTdWNjZXNzID0+IDEsCiAgICAgICAgICAgIFRva2VuICAgPT4gJFRva2VuRGF0YS0+e1Rva2VufSwKICAgICAgICAgICAgT3JpZ2luICA9PiAnZGInLAogICAgICAgIH07CiAgICB9CgogICAgIyAzKSB0cnkgcmVmcmVzaF90b2tlbiwgaWYgYW55CgogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICBNZXNzYWdlICA9PiAiVHJ5IGZldGNoIE9BdXRoMiBUb2tlbiB2aWEgcmVmcmVzaF90b2tlbiBmb3IgQWNjb3VudCAkQWNjb3VudE5hbWUiLAogICAgKTsKCiAgICBteSAkUmVmcmVzaFRva2VuID0gJFRva2VuUmVwb3NpdG9yeS0+R2V0VG9rZW4oCiAgICAgICAgQWNjb3VudE5hbWUgPT4gJEFjY291bnROYW1lLAogICAgICAgIFRva2VuVHlwZSAgID0+ICdyZWZyZXNoX3Rva2VuJywKICAgICk7CgogICAgaWYgKCAkUmVmcmVzaFRva2VuICYmICRSZWZyZXNoVG9rZW4tPntUb2tlbn0gKSB7CgogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiVHJhZGluZyBpbiByZWZyZXNoX3Rva2VuIGZvciBBY2NvdW50ICRBY2NvdW50TmFtZSIsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFJlc3VsdCA9ICRTZWxmLT5GZXRjaFRva2VuKAogICAgICAgICAgICBBY2NvdW50TmFtZSAgPT4gJEFjY291bnROYW1lLAogICAgICAgICAgICBUb2tlblR5cGUgICAgPT4gJFRva2VuVHlwZSwKICAgICAgICAgICAgUmVmcmVzaFRva2VuID0+ICRSZWZyZXNoVG9rZW4tPntUb2tlbn0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAkUmVzdWx0LT57U3VjY2Vzc30gJiYgJFJlc3VsdC0+e1Rva2VufSApIHsKCiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJHb3QgT0F1dGgyIFRva2VuIHZpYSByZWZyZXNoX3Rva2VuIGZvciBBY2NvdW50ICRBY2NvdW50TmFtZSIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU3VjY2VzcyA9PiAxLAogICAgICAgICAgICAgICAgVG9rZW4gICA9PiAkUmVzdWx0LT57VG9rZW59LAogICAgICAgICAgICAgICAgT3JpZ2luICA9PiAncmVmcmVzaF90b2tlbicKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyA0KSBpZiBncmFudF90eXBlIGlzIG5vdCAnYXV0aG9yaXphdGlvbl9jb2RlJyB0cnkgZmV0Y2ggZnJlc2ggdG9rZW4KICAgICMgdXNpbmcgY29uZmlndXJlZCBjcmVkZW50aWFscwoKICAgIGlmICggJEFjY291bnQtPntHcmFudFR5cGV9IGVxICdhdXRob3JpemF0aW9uX2NvZGUnICkgewoKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5vIHZhbGlkIHJlZnJlc2hfdG9rZW4gZm9yIEFjY291bnQgJEFjY291bnROYW1lIHVzaW5nIGdyYW50X3RweWUgJ2F1dGhvcml6YXRpb24gY29kZScgISIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgICAgICAgICBFcnJvciAgID0+ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCAiTm8gdmFsaWQgcmVmcmVzaF90b2tlbiBmb3IgQWNjb3VudCAlcyB1c2luZyBncmFudF90cHllICdhdXRob3JpemF0aW9uIGNvZGUnICEiLCAkQWNjb3VudE5hbWUgKSwKICAgICAgICB9OwogICAgfQoKICAgIHJldHVybiAkU2VsZi0+RmV0Y2hUb2tlbigKICAgICAgICBBY2NvdW50TmFtZSA9PiAkQWNjb3VudE5hbWUsCiAgICAgICAgVG9rZW5UeXBlICAgPT4gJFRva2VuVHlwZSwKICAgICk7Cn0KCj1oZWFkMiBzdWIgRmV0Y2hUb2tlbigpCgogICAgQ2FsbGVkIGludGVybmFseSB3aGVuIHBhc3N3b3JkIG9yIGNsaWVudF9jcmVkZW50aWFsIGdyYW50IGFyZSBjb25maWd1cmVkLgogICAgQWxzbyBjYWxsZWQgaW50ZXJuYWx5IHdoZW4gcmVmcmVzaGluZyB2aWEgcmVmcmVzaF90b2tlbi4KCiAgICBDYWxsbGVkIGRpcmVjdGx5IGZyb20gY2xpZW50IGNvZGUgd2hlbiBjb21wbGV0aW5nIHRoZSBhdXRob3JpemF0aW9uX2NvZGUKICAgIGJyb3dzZXIgZmxvdywgcGFzc2luZyB0aGUgcmVjZWl2ZWQgQ29kZSBwYXJhbWV0ZXIuCgogICAgbXkgJFRva2VuUmVzdWx0ID0gJFRva2VuUHJvdmlkZXJPYmplY3QtPkZldGNoVG9rZW4oCiAgICAgICAgQWNjb3VudE5hbWUgID0+ICc8U29tZUFjY291bnROYW1lPicsCiAgICApOwoKICAgIG9yCgogICAgbXkgJFRva2VuUmVzdWx0ID0gJFRva2VuUHJvdmlkZXJPYmplY3QtPkZldGNoVG9rZW4oCiAgICAgICAgQWNjb3VudE5hbWUgID0+ICc8U29tZUFjY291bnROYW1lPicsCiAgICAgICAgUmVmcmVzaFRva2VuID0+ICRUb2tlbiwKICAgICk7CgogICAgb3IKCiAgICBteSAkVG9rZW5SZXN1bHQgPSAkVG9rZW5Qcm92aWRlck9iamVjdC0+RmV0Y2hUb2tlbigKICAgICAgICBBY2NvdW50TmFtZSAgID0+ICc8U29tZUFjY291bnROYW1lPicsCiAgICAgICAgQ29kZSAgICAgICAgPT4gJzxhdXRob3JpemF0aW9uX2NvZGUgImNvZGUiIHF1ZXJ5IHBhcmFtZXRlciB2YWx1ZT4nLAogICAgICAgIFJlZGlyZWN0VVJMID0+ICRSZWRpcmVjdFVSTCwgIyByZWRpcmVjdCB1cmwgdXNlZCB3aGVuIGluaXRpYXRpbmcgdGhlIGJyb3dzZXIgZmxvdwogICAgKTsKCgogICAgd2hlcmUgVG9rZW5SZXN1bHQ6CgogICAgbXkgJFRva2VuUmVzdWx0ID0gewogICAgICAgIFN1Y2Nlc3MgPT4gMHwxLAogICAgICAgIFRva2VuICAgPT4gPHRva2VuIHZhbHVlIG9uIHN1Y2Nlc3M+LAogICAgICAgIEVycm9yICAgPT4gPEVycm9yIG1zZyBvbiBlcnJvcj4KICAgIH07Cgo9Y3V0CgpzdWIgRmV0Y2hUb2tlbiB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcvQWNjb3VudE5hbWUvKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgICAgICAgICAgICAgRXJyb3IgICA9PiAiSW52YWxpZCBQYXJhbWV0ZXJzICEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICBteSAkTGFuZ3VhZ2VPYmplY3QgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpMYW5ndWFnZScpOwogICAgbXkgJFRva2VuT2JqZWN0ICAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlbicpOwogICAgbXkgJEZ1bmN0aW9uYWxBY2NvdW50c09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpGdW5jdGlvbmFsQWNjb3VudHMnKTsKCiAgICAjIEZldGNoIGNvbmZpZyBkYXRhIGZyb20gYWNjb3VudAogICAgbXkgJEFjY291bnROYW1lID0gJFBhcmFte0FjY291bnROYW1lfTsKICAgIG15ICRBY2NvdW50ICAgICA9ICRGdW5jdGlvbmFsQWNjb3VudHNPYmplY3QtPkdldEFjY291bnQoIE5hbWUgPT4gJEFjY291bnROYW1lICk7CgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJEFjY291bnQpICkgewoKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgZnVuY3Rpb25hbCBhY2NvdW50IEludm9rZXIgc2V0dGluZ3MgaW4gU3lzQ29uZmlnIGZvciAkQWNjb3VudE5hbWUuIiwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgIEVycm9yICAgPT4gJExhbmd1YWdlT2JqZWN0LT5UcmFuc2xhdGUoICJOZWVkIGZ1bmN0aW9uYWwgYWNjb3VudCBJbnZva2VyIHNldHRpbmdzIGluIFN5c0NvbmZpZyBmb3IgJXMuIiwgJEFjY291bnROYW1lICksCiAgICAgICAgfTsKICAgIH0KCiAgICBteSAkVG9rZW5UeXBlID0gJEFjY291bnQtPntUb2tlblR5cGV9IHx8ICdhY2Nlc3NfdG9rZW4nOwoKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgIFByaW9yaXR5ID0+ICdkZWJ1ZycsCiAgICAgICAgTWVzc2FnZSAgPT4gIlJldHJpZXZlIE9BdXRoMiBUb2tlbiAkVG9rZW5UeXBlIGZvciBBY2NvdW50ICRBY2NvdW50TmFtZSIsCiAgICApOwoKICAgIG15ICRPcGVuSURDb25maWcgPSAkQWNjb3VudC0+e09JRENQcm9maWxlfTsKCiAgICAjIGZldGNoIHRoZSB0b2tlbgogICAgbXkgJFJlc3VsdCA9ICRTZWxmLT5GZXRjaFRva2VuRnJvbUNvbmZpZygKICAgICAgICBUb2tlblR5cGUgICAgICAgICA9PiAkVG9rZW5UeXBlLAogICAgICAgIE9wZW5JRENvbmZpZyAgICAgID0+ICRPcGVuSURDb25maWcsCiAgICAgICAgUmVzb3VyY2VQYXJhbU5hbWUgPT4gJEFjY291bnQtPntSZXNvdXJjZVBhcmFtTmFtZX0gfHwgJ3Jlc291cmNlJywKICAgICAgICBSZXNvdXJjZXMgICAgICAgICA9PiAkQWNjb3VudC0+e1Jlc291cmNlc30sCiAgICAgICAgU2NvcGUgICAgICAgICAgICAgPT4gJEFjY291bnQtPntTY29wZX0sCiAgICAgICAgR3JhbnRUeXBlICAgICAgICAgPT4gJEFjY291bnQtPntHcmFudFR5cGV9LAogICAgICAgIFVzZXJuYW1lICAgICAgICAgID0+ICRBY2NvdW50LT57VXNlcm5hbWV9LAogICAgICAgIFBhc3N3b3JkICAgICAgICAgID0+ICRBY2NvdW50LT57UGFzc3dvcmR9LAogICAgICAgIFJlZnJlc2hUb2tlbiAgICAgID0+ICRQYXJhbXtSZWZyZXNoVG9rZW59LAogICAgICAgIENvZGUgICAgICAgICAgICAgID0+ICRQYXJhbXtDb2RlfSwKICAgICAgICBSZWRpcmVjdFVSTCAgICAgICA9PiAkUGFyYW17UmVkaXJlY3RVUkx9LAogICAgKTsKCiAgICBpZiAoICEkUmVzdWx0LT57U3VjY2Vzc30gKSB7CgogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiRmFpbGVkIHRvIHRldHJpZXZlIE9BdXRoMiBUb2tlbiBmcm9tIFByb3ZpZGVyIGZvciBBY2NvdW50ICRBY2NvdW50TmFtZSIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICRSZXN1bHQ7CiAgICB9CgogICAgbXkgJERlY29kZWRDb250ZW50ID0gJFJlc3VsdC0+e0RlY29kZWRDb250ZW50fTsKCiAgICBteSAkVG9rZW4gPSAkRGVjb2RlZENvbnRlbnQtPnskVG9rZW5UeXBlfTsKICAgIGlmICggISRUb2tlbiApIHsKCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJEaWQgbm90IHJlY2VpdmUgdGhlIGRlc2lyZWQgVG9rZW5UeXBlICckVG9rZW5UeXBlJyBpbiBwcm92aWRlciByZXNwb25zZSEiLAogICAgICAgICk7CgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgICAgICAgICAgRXJyb3IgICA9PiAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSggIkRpZCBub3QgcmVjZWl2ZSB0aGUgZGVzaXJlZCBUb2tlblR5cGUgJyVzJyBpbiBPSURDIHByb3ZpZGVyIHJlc3BvbnNlIGZvciBJbnZva2VyICVzISIsICRUb2tlblR5cGUsICRBY2NvdW50TmFtZSApLAogICAgICAgIH07CiAgICB9CgogICAgIyBjaGVjayB0aW1lIGxlZnQKICAgIG15ICRUaW1lTGVmdCA9ICRUb2tlbk9iamVjdC0+VGltZUxlZnQoCiAgICAgICAgVG9rZW4gPT4gJFRva2VuLAogICAgKTsKCiAgICBpZiAoICEkVGltZUxlZnQgfHwgJFRpbWVMZWZ0IDwgMSApIHsKCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaW1lIGxlZnQgb24gZnJlc2ggdG9rZW4gaXM6ICRUaW1lTGVmdCBzISIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgICAgICAgICBFcnJvciAgID0+ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCAiVGltZSBsZWZ0IG9uIGZyZXNoIHRva2VuIGlzOiAlcyBzIGZvciBJbnZva2VyICVzISIsICRUaW1lTGVmdCwgJEFjY291bnROYW1lICksCiAgICAgICAgfTsKICAgIH0KCiAgICAjIHByb2Nlc3MgYW5kIHBlcnNpc3QgdGhlIFRva2VucwogICAgaWYgKCAkRGVjb2RlZENvbnRlbnQtPntpZF90b2tlbn0gKSB7CgogICAgICAgIG15ICRSZXN1bHQgPSAkU2VsZi0+X1Byb2Nlc3NOZXdUb2tlbigKICAgICAgICAgICAgT3BlbklEQ29uZmlnID0+ICRPcGVuSURDb25maWcsCiAgICAgICAgICAgIEFjY291bnROYW1lICA9PiAkQWNjb3VudE5hbWUsCiAgICAgICAgICAgIEFjY291bnQgICAgICA9PiAkQWNjb3VudCwKICAgICAgICAgICAgVG9rZW5UeXBlICAgID0+ICdpZF90b2tlbicsCiAgICAgICAgICAgIFRva2VuICAgICAgICA9PiAkRGVjb2RlZENvbnRlbnQtPntpZF90b2tlbn0sCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgICAgICAgICBFcnJvciAgID0+ICJDb3VsZCBub3QgcHJvY2VzcyB0b2tlbi4gUGxlYXNlIGNoZWNrIHRoZSBsb2dzLiIsCiAgICAgICAgfSBpZiAhJFJlc3VsdDsKICAgIH0KCiAgICBpZiAoICREZWNvZGVkQ29udGVudC0+e2FjY2Vzc190b2tlbn0gKSB7CgogICAgICAgICRTZWxmLT5fUHJvY2Vzc05ld1Rva2VuKAogICAgICAgICAgICBPcGVuSURDb25maWcgPT4gJE9wZW5JRENvbmZpZywKICAgICAgICAgICAgQWNjb3VudE5hbWUgID0+ICRBY2NvdW50TmFtZSwKICAgICAgICAgICAgQWNjb3VudCAgICAgID0+ICRBY2NvdW50LAogICAgICAgICAgICBUb2tlblR5cGUgICAgPT4gJ2FjY2Vzc190b2tlbicsCiAgICAgICAgICAgIFRva2VuICAgICAgICA9PiAkRGVjb2RlZENvbnRlbnQtPnthY2Nlc3NfdG9rZW59LAogICAgICAgICk7CiAgICB9CgogICAgaWYgKCAkRGVjb2RlZENvbnRlbnQtPntyZWZyZXNoX3Rva2VufSApIHsKCiAgICAgICAgJFNlbGYtPl9Qcm9jZXNzTmV3VG9rZW4oCiAgICAgICAgICAgIE9wZW5JRENvbmZpZyA9PiAkT3BlbklEQ29uZmlnLAogICAgICAgICAgICBBY2NvdW50TmFtZSAgPT4gJEFjY291bnROYW1lLAogICAgICAgICAgICBBY2NvdW50ICAgICAgPT4gJEFjY291bnQsCiAgICAgICAgICAgIFRva2VuVHlwZSAgICA9PiAncmVmcmVzaF90b2tlbicsCiAgICAgICAgICAgIFRva2VuICAgICAgICA9PiAkRGVjb2RlZENvbnRlbnQtPntyZWZyZXNoX3Rva2VufSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiB7CiAgICAgICAgU3VjY2VzcyA9PiAxLAogICAgICAgIFRva2VuICAgPT4gJFRva2VuLAogICAgICAgIE9yaWdpbiAgPT4gJ2ZyZXNoX3Rva2VuJywKICAgIH07Cn0KCj1oZWFkMiBzdWIgRmV0Y2hUb2tlbkZyb21Db25maWcoKQoKTG93IGxldmVsIEZldGNoVG9rZW4gaGVscGVyCgpUaGlzIGZldGNoZXMgdG9rZW4gb25seSBiYXNlZCBvbiBPcGVuSURDb25maWcgKyBQYXJhbWV0ZXJzLApubyBkZXBlbmRlbmN5IG9uIEZ1bmN0aW9uYWwgQWNjb3VudHMuCgpVc2VkIGludGVybmFsbHkgYnkgRmV0Y2hUb2tlbigpIGFib3ZlLCBidXQgYWxzbyBmcm9tCktlcm5lbDo6U3lzdGVtOjpDb25zb2xlOjpDb21tYW5kOjpBZG1pbjo6T0F1dGgyOjpJbXBvcnRVc2VyLnBtCgpyZXR1cm5zIHRoZSBKU09OIHJlc3BvbnNlIGRlY29kZWQgYXMgYSBQZXJsIGRhdGEgc3RydWN0dXJlLAphbnkgZnVydGhlciB2YWxpZGF0aW9uIGlzIHN1cHBvc2VkIHRvIGhhcHBlbiBieSB0aGUgY2FsbGVyLgoKCiAgICBteSAkUmVzdWx0ID0gJFRva2VuUHJvdmlkZXJPYmplY3QtPkZldGNoVG9rZW5Gcm9tQ29uZmlnKAoKICAgICAgICBPcGVuSURDb25maWcgICAgICA9PiAkT3BlbklEQ29uZmlnLCAjIGZyb20gU3lzU2V0dGluZwogICAgICAgIEdyYW50VHlwZSAgICAgICAgID0+ICdjbGllbnRfY3JlZGVudGlhbCcgfCAnYXV0aG9yaXphdGlvbl9jb2RlJyB8ICdwYXNzd29yZCcgfCAncmVmcmVzaF90b2tlbicKICAgICAgICBUb2tlblR5cGUgICAgICAgICA9PiAnYWNjZXNzX3Rva2VuJyB8ICdpZF90b2tlbicsCiAgICAgICAgUmVzb3VyY2VQYXJhbU5hbWUgPT4gJ3Jlc291cmNlJywgICAgICAgICAgICAgICAgICMgZGVmYXVsdHMKICAgICAgICBSZXNvdXJjZXMgICAgICAgICA9PiAnPHNwYWNlIHNlcGFyYXRlZCBsaXN0PicsCiAgICAgICAgU2NvcGUgICAgICAgICAgICAgPT4gJzxzcGFjZSBzZXBhcmF0ZWQgbGlzdD4nLAogICAgICAgIFVzZXJuYW1lICAgICAgICAgID0+ICcnLAogICAgICAgIFBhc3N3b3JkICAgICAgICAgID0+ICcnLAogICAgICAgIFJlZnJlc2hUb2tlbiAgICAgID0+ICRSZWZyZXNoVG9rZW4sICMgb3B0aW9uYWwKICAgICAgICBDb2RlICAgICAgICAgICAgICA9PiAnPHRoZSBjb2RlIGZyb20gb2F1dGggY2FsbGJhY2s+JywKICAgICAgICBSZWRpcmVjdFVSTCAgICAgICA9PiAndGhlIHJlZGlyZWN0IHVybCB1c2VkIHdpdGggYXV0b3JpemF0aW9uIGVuZHBvaW50JywKICAgICk7CgogICAgd2l0aDoKCiAgICBteSAkUmVzdWx0ID0gewogICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgICAgICBEZWNvZGVkQ29udGVudCA9PiB7fSAjIEpTT04gcmVzdWx0IGZyb20gdG9rZW4gcmVxdWVzdCwgZGVjb2RlZCB0byBQZXJsCiAgICB9OwoKPWN1dAoKc3ViIEZldGNoVG9rZW5Gcm9tQ29uZmlnIHsKCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdy9PcGVuSURDb25maWcgR3JhbnRUeXBlLykgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9yICAgPT4gIkludmFsaWQgUGFyYW1ldGVycyAhIiwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJExhbmd1YWdlT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpMYW5ndWFnZScpOwogICAgbXkgJE9JRENDb25maWd1cmF0aW9uID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkNvbmZpZ3VyYXRpb24nKTsKCiAgICBteSAkUmVzb3VyY2VQYXJhbU5hbWUgPSAkUGFyYW17UmVzb3VyY2VQYXJhbU5hbWV9IHx8ICdyZXNvdXJjZSc7CiAgICBteSAkT3BlbklEQ29uZmlnICAgICAgPSAkUGFyYW17T3BlbklEQ29uZmlnfTsKCiAgICBteSAkVG9rZW5FbmRwb2ludCA9ICRPSURDQ29uZmlndXJhdGlvbi0+R2V0VG9rZW5FbmRwb2ludCgKICAgICAgICBPcGVuSURDb25maWcgPT4gJE9wZW5JRENvbmZpZywKICAgICk7CiAgICBpZiAoICEkVG9rZW5FbmRwb2ludCApIHsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgICAgICAgICBFcnJvciAgID0+ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCJDb3VsZCBub3QgZ2V0IHRoZSBPQXV0aDIgdG9rZW5fZW5kcG9pbnQgZm9yIEludm9rZXIgIiksCiAgICAgICAgfTsKICAgIH0KCiAgICBteSAkT0F1dGgyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6Ok9BdXRoMicpOwoKICAgIHJldHVybiAkT0F1dGgyT2JqZWN0LT5SZXF1ZXN0VG9rZW4oCiAgICAgICAgVG9rZW5FbmRwb2ludCAgICAgPT4gJFRva2VuRW5kcG9pbnQsCiAgICAgICAgQ2xpZW50SUQgICAgICAgICAgPT4gJE9wZW5JRENvbmZpZy0+e0NsaWVudFNldHRpbmdzfXtDbGllbnRJRH0sCiAgICAgICAgQ2xpZW50U2VjcmV0ICAgICAgPT4gJE9wZW5JRENvbmZpZy0+e0NsaWVudFNldHRpbmdzfXtDbGllbnRTZWNyZXR9LAogICAgICAgIFNjb3BlICAgICAgICAgICAgID0+ICRQYXJhbXtTY29wZX0sCiAgICAgICAgUmVzb3VyY2VzICAgICAgICAgPT4gJFBhcmFte1Jlc291cmNlc30sCiAgICAgICAgUmVzb3VyY2VQYXJhbU5hbWUgPT4gJFJlc291cmNlUGFyYW1OYW1lLAogICAgICAgIEdyYW50VHlwZSAgICAgICAgID0+ICRQYXJhbXtHcmFudFR5cGV9LAogICAgICAgIFVzZXJuYW1lICAgICAgICAgID0+ICRQYXJhbXtVc2VybmFtZX0sCiAgICAgICAgUGFzc3dvcmQgICAgICAgICAgPT4gJFBhcmFte1Bhc3N3b3JkfSwKICAgICAgICBSZWZyZXNoVG9rZW4gICAgICA9PiAkUGFyYW17UmVmcmVzaFRva2VufSwKICAgICAgICBDb2RlICAgICAgICAgICAgICA9PiAkUGFyYW17Q29kZX0sCiAgICAgICAgUmVkaXJlY3RVUkwgICAgICAgPT4gJFBhcmFte1JlZGlyZWN0VVJMfSwKICAgICAgICBTU0xPcHRpb25zICAgICAgICA9PiAkT3BlbklEQ29uZmlnLT57UHJvdmlkZXJTZXR0aW5nc317U1NMT3B0aW9uc30sCiAgICApOwp9Cgo9aGVhZDIgR2V0QXV0aFVSTCgpCgpCdWlsZCB0aGUgVVJMIHRvIHJlcXVlc3QgYW4gYXV0aG9yaXphdGlvbiBjb2RlLgoKRXhhbXBsZToKICAgIG15ICRBdXRoVVJMID0gJFRva2VuUHJvdmlkZXJPYmplY3QtPkdldEF1dGhVUkwoCiAgICAgICAgQWNjb3VudE5hbWUgPT4gJzxGdW5jdGlvbmFsQWNjb3VudE5hbWU+JywKICAgICAgICBSZWRpcmVjdFVSSSA9PiAnaHR0cHM6Ly95b3VyLm90b2JvLnVybC9vdG9iby9pbmRleC5wbD9BY3Rpb249QWRtaW5PQXV0aFRva2VuU3RvcmUmU3ViYWN0aW9uPU9BdXRoJywKICAgICAgICBOb25jZSA9PiAkTm9uY2UsICMgb3B0aW9uYWwKICAgICAgICBTdGF0ZSA9PiAkU3RhdGUsICMgb3B0aW9uYWwsIHVzZXMgdGhpcyBzdGF0ZSBpbnN0ZWFkIG9mIHJhbmRvbSBzdHJpbmcgKGZvciB0ZXN0aW5nKQogICAgKTsKClJldHVybnM6CiAgICAkQXV0aFVSTCA9IGh0dHBzOi8vbG9naW4ubWljcm9zb2Z0b25saW5lLmNvbS9jb21tb24vb2F1dGgyL3YyLjAvYXV0aG9yaXplP2NsaWVudF9pZD0wNzdkMjA1OS0yMTkuLi4KCj1jdXQKCnN1YiBHZXRBdXRoVVJMIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICROZWVkZWQgKHF3L0FjY291bnROYW1lLykgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkQWNjb3VudE5hbWUgPSAkUGFyYW17QWNjb3VudE5hbWV9OwoKICAgIG15ICRGdW5jdGlvbmFsQWNjb3VudHNPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6RnVuY3Rpb25hbEFjY291bnRzJyk7CiAgICBteSAkQWNjb3VudCAgICAgICAgICAgICAgICAgID0gJEZ1bmN0aW9uYWxBY2NvdW50c09iamVjdC0+R2V0QWNjb3VudCggTmFtZSA9PiAkQWNjb3VudE5hbWUgKTsKCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkQWNjb3VudCkgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIGZ1bmN0aW9uYWwgYWNjb3VudCBJbnZva2VyIHNldHRpbmdzIGluIFN5c0NvbmZpZy4nLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkUmVzb3VyY2VQYXJhbU5hbWUgPSAkQWNjb3VudC0+e1Jlc291cmNlUGFyYW1OYW1lfSB8fCAncmVzb3VyY2UnOwogICAgbXkgJE9wZW5JRENvbmZpZyAgICAgID0gJEFjY291bnQtPntPSURDUHJvZmlsZX07CiAgICBteSAkVXNlTm9uY2UgICAgICAgICAgPSAkUGFyYW17Tm9uY2V9IC8vICRPcGVuSURDb25maWctPntNaXNjfS0+e1VzZU5vbmNlfTsKCiAgICBteSAkQXV0aEVuZHBvaW50ID0gJEZ1bmN0aW9uYWxBY2NvdW50c09iamVjdC0+R2V0QXV0aG9yaXphdGlvbkVuZHBvaW50KAogICAgICAgIE5hbWUgPT4gJEFjY291bnROYW1lLAogICAgKTsKCiAgICBteSAkT0F1dGgyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6Ok9BdXRoMicpOwoKICAgIHJldHVybiAkT0F1dGgyT2JqZWN0LT5HZXRBdXRoVVJMKAogICAgICAgICVQYXJhbSwKICAgICAgICBBdXRob3JpemF0aW9uRW5kcG9pbnQgPT4gJEF1dGhFbmRwb2ludCwKICAgICAgICBDbGllbnRJRCAgICAgICAgICAgICAgPT4gJE9wZW5JRENvbmZpZy0+e0NsaWVudFNldHRpbmdzfXtDbGllbnRJRH0sCiAgICAgICAgUmVzcG9uc2VUeXBlICAgICAgICAgID0+ICdjb2RlJywKICAgICAgICBTY29wZSAgICAgICAgICAgICAgICAgPT4gJEFjY291bnQtPntTY29wZX0sCiAgICAgICAgUmVzb3VyY2VzICAgICAgICAgICAgID0+ICRBY2NvdW50LT57UmVzb3VyY2VzfSwKICAgICAgICBSZXNvdXJjZVBhcmFtTmFtZSAgICAgPT4gJFJlc291cmNlUGFyYW1OYW1lLAogICAgICAgIExvZ2luICAgICAgICAgICAgICAgICA9PiAkUGFyYW17TG9naW59LAogICAgICAgIFByb21wdCAgICAgICAgICAgICAgICA9PiAkUGFyYW17UHJvbXB0fSwKICAgICAgICBOb25jZSAgICAgICAgICAgICAgICAgPT4gJFVzZU5vbmNlLAogICAgICAgIFJhbmRMZW5ndGggICAgICAgICAgICA9PiAkT3BlbklEQ29uZmlnLT57TWlzY30tPntSYW5kTGVuZ3RofSwKICAgICAgICBSYW5kVFRMICAgICAgICAgICAgICAgPT4gJE9wZW5JRENvbmZpZy0+e01pc2N9LT57UmFuZFRUTH0sCiAgICAgICAgUmVkaXJlY3RVUkwgICAgICAgICAgID0+ICRQYXJhbXtSZWRpcmVjdFVSSX0sCiAgICAgICAgU3RhdGUgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtTdGF0ZX0sCiAgICApOwp9Cgo9aGVhZDIgRW1wdHlDYWNoZSgpCgpFbXB0eSBjYWNoZWQgdG9rZW5zIGFuZCBwcm92aWRlciBkYXRhIGluIGNhc2Ugb2YgcmUtY29uZmlndXJhdGlvbgoKRXhhbXBsZToKICAgICRUb2tlblByb3ZpZGVyT2JqZWN0LT5FbXB0eUNhY2hlKAogICAgICAgIEFjY291bnROYW1lICAgPT4gJzxGdW5jdGlvbmFsQWNjb3VudE5hbWU+JywKICAgICk7CgoKPWN1dAoKc3ViIEVtcHR5Q2FjaGUgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICROZWVkZWQgKHF3L0FjY291bnROYW1lLykgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkQWNjb3VudE5hbWUgPSAkUGFyYW17QWNjb3VudE5hbWV9OwoKICAgIG15ICRDYWNoZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpOwoKICAgIGZvciBteSAkVG9rZW5UeXBlIChxdy9hY2Nlc3NfdG9rZW4gaWRfdG9rZW4gcmVmcmVzaF90b2tlbi8pIHsKCiAgICAgICAgbXkgJENhY2hlVHlwZSA9ICJUb2tlblByb3ZpZGVyIjsKICAgICAgICBteSAkQ2FjaGVLZXkgID0gam9pbiggJywnLCAnSW52b2tlcicsICRBY2NvdW50TmFtZSwgJFRva2VuVHlwZSApOwoKICAgICAgICBteSAkVG9rZW4gPSAkQ2FjaGVPYmplY3QtPkRlbGV0ZSgKICAgICAgICAgICAgVHlwZSA9PiAkQ2FjaGVUeXBlLAogICAgICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKICAgICAgICApOwogICAgfQoKICAgICMgY2xlYXIgcHJvdmlkZXIgZGF0YSBjYWNoZSBhcyB3ZWxsCiAgICBteSAkRnVuY3Rpb25hbEFjY291bnRzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkZ1bmN0aW9uYWxBY2NvdW50cycpOwogICAgJEZ1bmN0aW9uYWxBY2NvdW50cy0+Q2xlYXJDYWNoZSgKICAgICAgICBOYW1lID0+ICRBY2NvdW50TmFtZSwKICAgICk7CgogICAgcmV0dXJuOwp9CgojIGhlbHBlcnMKCnN1YiBfRmV0Y2hUb2tlbkZyb21DYWNoZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdy9BY2NvdW50TmFtZSBUb2tlblR5cGUvKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICRBY2NvdW50TmFtZSA9ICRQYXJhbXtBY2NvdW50TmFtZX07CiAgICBteSAkVG9rZW5UeXBlICAgPSAkUGFyYW17VG9rZW5UeXBlfTsKCiAgICBteSAkQ2FjaGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKTsKCiAgICBteSAkQ2FjaGVUeXBlID0gIlRva2VuUHJvdmlkZXIiOwogICAgbXkgJENhY2hlS2V5ICA9IGpvaW4oICcsJywgJ0ludm9rZXInLCAkQWNjb3VudE5hbWUsICRUb2tlblR5cGUgKTsKCiAgICBteSAkVG9rZW4gPSAkQ2FjaGVPYmplY3QtPkdldCgKICAgICAgICBUeXBlID0+ICRDYWNoZVR5cGUsCiAgICAgICAgS2V5ICA9PiAkQ2FjaGVLZXksCiAgICApOwoKICAgIGlmICggISRUb2tlbiApIHsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJFRva2VuT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuJyk7CiAgICBpZiAoICRUb2tlbk9iamVjdC0+SXNUb2tlblN0aWxsVmFsaWQoIFRva2VuID0+ICRUb2tlbiApICkgewoKICAgICAgICByZXR1cm4gJFRva2VuOwogICAgfQoKICAgICRDYWNoZU9iamVjdC0+RGVsZXRlKAogICAgICAgIFR5cGUgPT4gJENhY2hlVHlwZSwKICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKICAgICk7CgogICAgcmV0dXJuOwp9CgpzdWIgX1BvcHVsYXRlQ2FjaGUgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICROZWVkZWQgKHF3L0FjY291bnROYW1lIFRva2VuVHlwZSBUb2tlbi8pIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJEFjY291bnROYW1lID0gJFBhcmFte0FjY291bnROYW1lfTsKICAgIG15ICRUb2tlblR5cGUgICA9ICRQYXJhbXtUb2tlblR5cGV9OwogICAgbXkgJFRva2VuICAgICAgID0gJFBhcmFte1Rva2VufTsKICAgIG15ICRFeHBpcmVzQXQgICA9ICRQYXJhbXtFeHBpcmVzQXR9IHx8IDYwMDsgICAgIyAxMCBtaW5zCgogICAgbXkgJENhY2hlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyk7CiAgICBteSAkVG9rZW5PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW4nKTsKCiAgICBteSAkQ2FjaGVUeXBlID0gIlRva2VuUHJvdmlkZXIiOwogICAgbXkgJENhY2hlS2V5ICA9IGpvaW4oICcsJywgJ0ludm9rZXInLCAkQWNjb3VudE5hbWUsICRUb2tlblR5cGUgKTsKCiAgICAjIGNoZWNrIHRpbWUgbGVmdAogICAgbXkgJFRpbWVMZWZ0ID0gJFRva2VuT2JqZWN0LT5UaW1lTGVmdCgKICAgICAgICBUb2tlbiA9PiAkVG9rZW4sCiAgICApOwoKICAgIGlmICggISRUaW1lTGVmdCB8fCAkVGltZUxlZnQgPCAxICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiVGltZSBsZWZ0IG9uIGZyZXNoIHRva2VuIGlzOiAkVGltZUxlZnQgcyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICRDYWNoZU9iamVjdC0+U2V0KAogICAgICAgIFR5cGUgID0+ICRDYWNoZVR5cGUsCiAgICAgICAgS2V5ICAgPT4gJENhY2hlS2V5LAogICAgICAgIFZhbHVlID0+ICRUb2tlbiwKICAgICAgICBUVEwgICA9PiAkVGltZUxlZnQsCiAgICApOwoKICAgIHJldHVybiAkVG9rZW47Cn0KCnN1YiBfUHJvY2Vzc05ld1Rva2VuIHsKCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRBY2NvdW50ICAgICAgPSAkUGFyYW17QWNjb3VudH07CiAgICBteSAkQWNjb3VudE5hbWUgID0gJFBhcmFte0FjY291bnROYW1lfTsKICAgIG15ICRPcGVuSURDb25maWcgPSAkUGFyYW17T3BlbklEQ29uZmlnfTsKICAgIG15ICRUb2tlblR5cGUgICAgPSAkUGFyYW17VG9rZW5UeXBlfTsKICAgIG15ICRUb2tlbiAgICAgICAgPSAkUGFyYW17VG9rZW59OwoKICAgIG15ICRUb2tlbk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlbicpOwoKICAgIG15ICRUb2tlbkRhdGE7CgogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICBNZXNzYWdlICA9PiAiUHJvY2VzcyBuZXcgT0F1dGgyIFRva2VuICRUb2tlblR5cGUgZm9yIEFjY291bnQgJEFjY291bnROYW1lIiwKICAgICk7CgogICAgaWYgKCAkVG9rZW5UeXBlIGVxICdyZWZyZXNoX3Rva2VuJyApIHsKCiAgICAgICAgIyBza2lwCiAgICB9CiAgICBlbHNpZiAoICRUb2tlblR5cGUgZXEgJ2FjY2Vzc190b2tlbicgKSB7CgogICAgICAgICRUb2tlbkRhdGEgPSAkVG9rZW5PYmplY3QtPkluc3BlY3QoCiAgICAgICAgICAgIFRva2VuICA9PiAkVG9rZW4sCiAgICAgICAgICAgIExlZXdheSA9PiAkQWNjb3VudC0+e01pc2N9LT57TGVld2F5fQogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgbXkgJFJlc3VsdCA9ICRUb2tlbk9iamVjdC0+VmFsaWRhdGUoCiAgICAgICAgICAgIFRva2VuICAgICAgICAgICAgPT4gJFRva2VuLAogICAgICAgICAgICBPcGVuSURDb25maWcgICAgID0+ICRPcGVuSURDb25maWcsCiAgICAgICAgICAgIEV4cGVjdGVkQXVkaWVuY2UgPT4gJFRva2VuVHlwZSBlcSAnaWRfdG9rZW4nID8gJE9wZW5JRENvbmZpZy0+e0NsaWVudFNldHRpbmdzfS0+e0NsaWVudElEfSA6IHVuZGVmLAogICAgICAgICAgICBBdXRob3JpemVkUGFydHkgID0+ICRPcGVuSURDb25maWctPntDbGllbnRTZXR0aW5nc30tPntDbGllbnRJRH0sCiAgICAgICAgICAgIEV4cGVjdGVkU2NvcGVzICAgPT4gJEFjY291bnQtPntTY29wZX0sCiAgICAgICAgICAgIExlZXdheSAgICAgICAgICAgPT4gJEFjY291bnQtPntNaXNjfS0+e0xlZXdheX0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAkUmVzdWx0LT57U3VjY2Vzc30gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2RlYnVnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJWYWxpZGF0ZWQgSURUb2tlbiBmb3IgQWNjb3VudCAkQWNjb3VudE5hbWUuIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIG15ICRNZXNzYWdlID0gIkludmFsaWQgSURUb2tlbiBmb3IgQWNjb3VudCAkQWNjb3VudE5hbWUhIjsKCiAgICAgICAgICAgIGlmICggJFJlc3VsdC0+e0Vycm9yfSApIHsKICAgICAgICAgICAgICAgICRNZXNzYWdlIC49ICcgJyAuICRSZXN1bHQtPntFcnJvcn07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ25vdGljZScsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAkTWVzc2FnZSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiB1bmxlc3MgJFJlc3VsdC0+e1N1Y2Nlc3N9OwoKICAgICAgICAkVG9rZW5EYXRhID0gJFJlc3VsdC0+e1Rva2VuRGF0YX07CiAgICB9CgogICAgbXkgJEV4cGlyZXNBdCA9ICRUb2tlbkRhdGEtPntleHB9OwoKICAgIG15ICRUb2tlblJlcG9zaXRvcnkgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5SZXBvc2l0b3J5Jyk7CgogICAgbXkgJFN1Y2Nlc3MgPSAkVG9rZW5SZXBvc2l0b3J5LT5TYXZlVG9rZW4oCiAgICAgICAgQWNjb3VudE5hbWUgPT4gJEFjY291bnROYW1lLAogICAgICAgIEFjY291bnRJRCAgID0+ICRBY2NvdW50LT57QWNjb3VudElEfSwKICAgICAgICBUb2tlblR5cGUgICA9PiAkVG9rZW5UeXBlLAogICAgICAgIFRva2VuICAgICAgID0+ICRUb2tlbiwKICAgICAgICBFeHBpcmVzQXQgICA9PiAkRXhwaXJlc0F0LAogICAgKTsKCiAgICByZXR1cm4gdW5sZXNzICRTdWNjZXNzOwoKICAgIGlmICggJFRva2VuVHlwZSBuZSAncmVmcmVzaF90b2tlbicgKSB7CiAgICAgICAgJFNlbGYtPl9Qb3B1bGF0ZUNhY2hlKAogICAgICAgICAgICBBY2NvdW50TmFtZSA9PiAkQWNjb3VudE5hbWUsCiAgICAgICAgICAgIFRva2VuVHlwZSAgID0+ICRUb2tlblR5cGUsCiAgICAgICAgICAgIFRva2VuICAgICAgID0+ICRUb2tlbiwKICAgICAgICAgICAgRXhwaXJlc0F0ICAgPT4gJEV4cGlyZXNBdCwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwo=</File>
        <File Location="Kernel/System/OpenIDConnect/TokenRepository.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5SZXBvc2l0b3J5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKIyBjb3JlIG1vZHVsZXMKCiMgQ1BBTiBtb2R1bGVzCgojIE9UT0JPIG1vZHVsZXMKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKdXNlIG5hbWVzcGFjZTo6YXV0b2NsZWFuOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEQicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW4nLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlblJlcG9zaXRvcnkgLSBEQiBiYWNrZW5kIGZvciBUb2tlblN0b3JhZ2UKCj1oZWFkMSBTWU5PUFNJUwoKRnVuY3Rpb25hbCBhY2NvdW50IGZ1bmN0aW9ucyBmb3IgT3BlbklEIENvbm5lY3QKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRUb2tlblJlcG9zaXRvcnlPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5SZXBvc2l0b3J5Jyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwoKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBTYXZlVG9rZW4oKQoKICAgIFBlcnNpc3QgYSBUb2tlbiBpbiBEQgoKICAgIG15ICRTdWNjZXNzID0gJFRva2VuUmVwb3NpdG9yeU9iamVjdC0+U2F2ZVRva2VuKAogICAgICAgIEFjY291bnRJRCAgPT4gPEZ1bmN0aW9uYWxBY2NvdW50SUQ+LCAgICAjIEZ1bmN0aW9uYWxBY2NvdW50IGlkCiAgICAgICAgVG9rZW5UeXBlICA9PiAncmVmcmVzaCcsICAgICAgICAgICAgICAgICMgYWNjZXNzX3Rva2VufGlkX3Rva2VufHJlZnJlc2hfdG9rZW4KICAgICAgICBUb2tlbiAgICAgID0+ICc8VG9rZW4+JywgICAgICAgICAgICAgICAgIyBhcyByZWNlaXZlZCBmcm9tIHRva2VuIGVuZHBvaW50CiAgICAgICAgRXhwaXJlc0F0ICA9PiAnPHNlY29uZHMgZXBvY2g+JywgICAgICAgICMgZXhwaXJlcyBhdCBVTklYIGVwb2NoIHRpbWVzdGFtcC4gY2FuIGJlIG51bGwgZm9yIG9mZmxpbmVfYWNjZXNzIHRva2VucwogICAgKTsKCj1jdXQKCnN1YiBTYXZlVG9rZW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcvQWNjb3VudElEIFRva2VuVHlwZSBUb2tlbi8pIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgJFNlbGYtPkRlbGV0ZVRva2VuKCVQYXJhbSk7CgogICAgbXkgJEFjY291bnRJRCA9ICRQYXJhbXtBY2NvdW50SUR9OwogICAgbXkgJFRva2VuVHlwZSA9ICRQYXJhbXtUb2tlblR5cGV9OwogICAgbXkgJFRva2VuICAgICA9ICRQYXJhbXtUb2tlbn07CiAgICBteSAkRXhwaXJlc0F0ID0gJFBhcmFte0V4cGlyZXNBdH07CgogICAgbXkgJEluc2VydFN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCAgPT4gIklOU0VSVCBJTlRPIG9hdXRoMl90b2tlbl9zdG9yYWdlIChvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudF9pZCwgdG9rZW5fdHlwZSwgdG9rZW4sIGV4cGlyZXNfYXQpIFZBTFVFUyAoPywgPywgPywgPykiLAogICAgICAgIEJpbmQgPT4gWyBcJEFjY291bnRJRCwgXCRUb2tlblR5cGUsIFwkVG9rZW4sIFwkRXhwaXJlc0F0IF0sCiAgICApOwoKICAgIHJldHVybiAkSW5zZXJ0U3VjY2VzczsKfQoKPWhlYWQyIERlbGV0ZVRva2VuKCkKCiAgICBEZWxldGUgYSBUb2tlbiByZWNvcmQgaW4gREIuCgogICAgbXkgJFN1Y2Nlc3MgPSAkVG9rZW5SZXBvc2l0b3J5T2JqZWN0LT5EZWxldGVUb2tlbigKICAgICAgICBBY2NvdW50SUQgICA9PiA8RnVuY3Rpb25hbEFjY291bnRJRD4sCiAgICAgICAgVG9rZW5UeXBlICAgPT4gJ3JlZnJlc2gnLCAgICAgICAgICAgICAgIyBvcHRpb25hbAogICAgKTsKCiAgICBvcgoKICAgIG15ICRTdWNjZXNzID0gJFRva2VuUmVwb3NpdG9yeU9iamVjdC0+RGVsZXRlVG9rZW4oCiAgICAgICAgQWNjb3VudE5hbWUgPT4gPEZ1bmN0aW9uYWxBY2NvdW50SUQ+LAogICAgICAgIFRva2VuVHlwZSAgID0+ICdyZWZyZXNoJywgICAgICAgICAgICAgICMgb3B0aW9uYWwKICAgICk7CgogICAgb3IKCiAgICBteSAkU3VjY2VzcyA9ICRUb2tlblJlcG9zaXRvcnlPYmplY3QtPkRlbGV0ZVRva2VuKAogICAgICAgIFRva2VuSUQgPT4gPGlkPgogICAgKTsKCj1jdXQKCnN1YiBEZWxldGVUb2tlbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgIGlmICggJFBhcmFte1Rva2VuSUR9ICkgewoKICAgICAgICBteSAkVG9rZW5JRCA9ICRQYXJhbXtUb2tlbklEfTsKCiAgICAgICAgbXkgJERlbGV0ZVN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgICAgICBTUUwgID0+ICJERUxFVEUgRlJPTSBvYXV0aDJfdG9rZW5fc3RvcmFnZSBXSEVSRSBpZCA9ID8iLAogICAgICAgICAgICBCaW5kID0+IFsgXCRUb2tlbklEIF0sCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICREZWxldGVTdWNjZXNzOwogICAgfQoKICAgIGlmICggJFBhcmFte0FjY291bnROYW1lfSApIHsKCiAgICAgICAgbXkgJEFjY291bnROYW1lID0gJFBhcmFte0FjY291bnROYW1lfTsKCiAgICAgICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgICAgICBTUUwgICA9PiAiU0VMRUNUIGlkIEZST00gb2lkY19mdW5jdGlvbmFsX2FjY291bnRzIFdIRVJFIG5hbWUgPSA/ICAiLAogICAgICAgICAgICBCaW5kICA9PiBbIFwkQWNjb3VudE5hbWUgXSwKICAgICAgICAgICAgTGltaXQgPT4gMQogICAgICAgICk7CgogICAgICAgIGlmICggbXkgKCRBY2NvdW50SUQpID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5ICkgewoKICAgICAgICAgICAgbXkgJFNRTCAgPSAiREVMRVRFIEZST00gb2F1dGgyX3Rva2VuX3N0b3JhZ2UgV0hFUkUgb2lkY19mdW5jdGlvbmFsX2FjY291bnRfaWQgPSA/ICI7CiAgICAgICAgICAgIG15ICRCaW5kID0gWyBcJEFjY291bnRJRCBdOwoKICAgICAgICAgICAgbXkgJFRva2VuVHlwZSA9ICRQYXJhbXtUb2tlblR5cGV9OwogICAgICAgICAgICBpZiAoJFRva2VuVHlwZSkgewogICAgICAgICAgICAgICAgJFNRTCAuPSAiIEFORCB0b2tlbl90eXBlID0gPyAiOwogICAgICAgICAgICAgICAgcHVzaCBAJEJpbmQsIFwkVG9rZW5UeXBlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkRGVsZXRlU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgICAgICAgICBTUUwgID0+ICRTUUwsCiAgICAgICAgICAgICAgICBCaW5kID0+ICRCaW5kLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuICREZWxldGVTdWNjZXNzOwogICAgICAgIH0KICAgICAgICByZXR1cm47CiAgICB9CgogICAgZm9yIG15ICROZWVkZWQgKHF3L0FjY291bnRJRC8pIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJFRva2VuVHlwZSA9ICRQYXJhbXtUb2tlblR5cGV9OwoKICAgIGlmICggJFRva2VuVHlwZSAmJiAhJFNlbGYtPlZhbGlkYXRlVG9rZW5UeXBlKCVQYXJhbSkgKSB7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRBY2NvdW50SUQgPSAkUGFyYW17QWNjb3VudElEfTsKCiAgICBteSAkU1FMICA9ICJERUxFVEUgRlJPTSBvYXV0aDJfdG9rZW5fc3RvcmFnZSBXSEVSRSBvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudF9pZCA9ID8gIjsKICAgIG15ICRCaW5kID0gWyBcJEFjY291bnRJRCwgXTsKCiAgICBpZiAoJFRva2VuVHlwZSkgewogICAgICAgICRTUUwgLj0gIkFORCB0b2tlbl90eXBlID0gPyAiOwogICAgICAgIHB1c2ggQCRCaW5kLCBcJFRva2VuVHlwZTsKICAgIH0KCiAgICBteSAkRGVsZXRlU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMICA9PiAkU1FMLAogICAgICAgIEJpbmQgPT4gJEJpbmQsCiAgICApOwoKICAgIHJldHVybiAkRGVsZXRlU3VjY2VzczsKfQoKPWhlYWQyIENsZWFudXAoKQoKICAgIFRoaXMgcHVyZ2VzIGFueSBleHBpcmVkIFRva2VucyBmcm9tIERCLgoKICAgIG15ICRTdWNjZXNzID0gJFRva2VuUmVwb3NpdG9yeU9iamVjdC0+Q2xlYW51cCgpOwoKPWN1dAoKc3ViIENsZWFudXAgewoKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJwogICAgKTsKCiAgICAkRGF0ZVRpbWVPYmplY3QtPlRvVGltZVpvbmUoCiAgICAgICAgVGltZVpvbmUgPT4gJ1VUQycKICAgICk7CgogICAgbXkgJEVwb2NoID0gJERhdGVUaW1lT2JqZWN0LT5Ub0Vwb2NoKCk7CgogICAgbXkgJFNRTCAgPSAiREVMRVRFIEZST00gb2F1dGgyX3Rva2VuX3N0b3JhZ2UgV0hFUkUgZXhwaXJlc19hdCBJUyBOT1QgTlVMTCBhbmQgZXhwaXJlc19hdCAhPSAwIEFORCBleHBpcmVzX2F0IDwgPyAiOwogICAgbXkgJEJpbmQgPSBbIFwkRXBvY2ggXTsKCiAgICBteSAkRGVsZXRlU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMICA9PiAkU1FMLAogICAgICAgIEJpbmQgPT4gJEJpbmQsCiAgICApOwoKICAgIHJldHVybiAkRGVsZXRlU3VjY2VzczsKfQoKPWhlYWQyIEdldFRva2VuKCkKCiAgICBSZXRyaXZlIGEgVG9rZW4gcmVjb3JkIGZyb20gREIuCgogICAgbXkgJFRva2VuRGF0YSA9ICRUb2tlblJlcG9zaXRvcnlPYmplY3QtPkdldFRva2VuKAogICAgICAgIEFjY291bnRJRCAgPT4gPEZ1bmN0aW9uYWxBY2NvdW50SUQ+LAogICAgICAgIFRva2VuVHlwZSAgPT4gJ3JlZnJlc2gnLAogICAgKTsKCiAgICBvcgoKICAgIG15ICRUb2tlbkRhdGEgPSAkVG9rZW5SZXBvc2l0b3J5T2JqZWN0LT5HZXRUb2tlbigKICAgICAgICBBY2NvdW50TmFtZSAgPT4gPEZ1bmN0aW9uYWxBY2NvdW50SUQ+LAogICAgICAgIFRva2VuVHlwZSAgICA9PiAncmVmcmVzaCcsCiAgICApOwoKICAgIG9yCgogICAgbXkgJFRva2VuRGF0YSA9ICRUb2tlblJlcG9zaXRvcnlPYmplY3QtPkdldFRva2VuKAogICAgICAgIFRva2VuSUQgPT4gPGlkPgogICAgKTsKCiAgICB3aGVyZToKCiAgICAkVG9rZW5EYXRhID0gewogICAgICAgIFRva2VuSUQgPT4gPGlkPiwKICAgICAgICBBY2NvdW50SUQgPT4gJzxBY2NvdW50SUQ+JywKICAgICAgICBUb2tlblR5cGUgPT4gJ3JlZnJlc2hfdG9rZW4nLAogICAgICAgIFRva2VuID0+ICc8VG9rZW4+JywKICAgICAgICBFeHBpcmVzQXQgPT4gMTIzNCwgIyB1bml4IGVwb2NoIHRzCiAgICB9OwoKPWN1dAoKc3ViIEdldFRva2VuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgJFNlbGYtPkNsZWFudXAoKTsKCiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICBpZiAoICRQYXJhbXtUb2tlbklEfSApIHsKCiAgICAgICAgbXkgJFRva2VuSUQgPSAkUGFyYW17VG9rZW5JRH07CgogICAgICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICJTRUxFQ1QgaWQsIG9pZGNfZnVuY3Rpb25hbF9hY2NvdW50X2lkLCB0b2tlbl90eXBlLCB0b2tlbiwgZXhwaXJlc19hdAogICAgICAgICAgICAgICAgICAgICAgRlJPTSBvYXV0aDJfdG9rZW5fc3RvcmFnZSBXSEVSRSBpZCA9ID8gICIsCiAgICAgICAgICAgIEJpbmQgID0+IFsgXCRUb2tlbklEIF0sCiAgICAgICAgICAgIExpbWl0ID0+IDEKICAgICAgICApOwogICAgfQogICAgZWxzaWYgKCAkUGFyYW17QWNjb3VudE5hbWV9ICkgewoKICAgICAgICBteSAkQWNjb3VudE5hbWUgPSAkUGFyYW17QWNjb3VudE5hbWV9OwogICAgICAgIG15ICRUb2tlblR5cGUgICA9ICRQYXJhbXtUb2tlblR5cGV9OwoKICAgICAgICBteSAkU1FMID0gIlNFTEVDVCBvdHMuaWQsIG90cy5vaWRjX2Z1bmN0aW9uYWxfYWNjb3VudF9pZCwgb3RzLnRva2VuX3R5cGUsIG90cy50b2tlbiwgb3RzLmV4cGlyZXNfYXQKICAgICAgICAgICAgICAgICAgICBGUk9NIG9hdXRoMl90b2tlbl9zdG9yYWdlIG90cwogICAgICAgICAgICAgICAgICAgIExFRlQgSk9JTiBvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudHMgb2ZhCiAgICAgICAgICAgICAgICAgICAgT04gb3RzLm9pZGNfZnVuY3Rpb25hbF9hY2NvdW50X2lkID0gb2ZhLmlkCiAgICAgICAgICAgICAgICAgICAgV0hFUkUgb2ZhLm5hbWUgPSA/ICAiOwoKICAgICAgICBteSAkQmluZCA9IFsgXCRBY2NvdW50TmFtZSBdOwoKICAgICAgICBpZiAoJFRva2VuVHlwZSkgewogICAgICAgICAgICAkU1FMIC49ICIgQU5EIG90cy50b2tlbl90eXBlID0gPyAiOwogICAgICAgICAgICBwdXNoIEAkQmluZCwgXCRUb2tlblR5cGU7CiAgICAgICAgfQoKICAgICAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCAgID0+ICRTUUwsCiAgICAgICAgICAgIEJpbmQgID0+ICRCaW5kLAogICAgICAgICAgICBMaW1pdCA9PiAxCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICBmb3IgbXkgJE5lZWRlZCAocXcvQWNjb3VudElEIFRva2VuVHlwZS8pIHsKICAgICAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJFNlbGYtPlZhbGlkYXRlVG9rZW5UeXBlKCVQYXJhbSkgKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIG15ICRBY2NvdW50SUQgPSAkUGFyYW17QWNjb3VudElEfTsKICAgICAgICBteSAkVG9rZW5UeXBlID0gJFBhcmFte1Rva2VuVHlwZX07CgogICAgICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICJTRUxFQ1QgaWQsIG9pZGNfZnVuY3Rpb25hbF9hY2NvdW50X2lkLCB0b2tlbl90eXBlLCB0b2tlbiwgZXhwaXJlc19hdAogICAgICAgICAgICAgICAgICAgICAgRlJPTSBvYXV0aDJfdG9rZW5fc3RvcmFnZQogICAgICAgICAgICAgICAgICAgICAgV0hFUkUgb2lkY19mdW5jdGlvbmFsX2FjY291bnRfaWQgPSA/IEFORCB0b2tlbl90eXBlID0gPyAiLAogICAgICAgICAgICBCaW5kICA9PiBbIFwkQWNjb3VudElELCBcJFRva2VuVHlwZSBdLAogICAgICAgICAgICBMaW1pdCA9PiAxCiAgICAgICAgKTsKICAgIH0KCiAgICBpZiAoIG15ICggJFRva2VuSUQsICRBY2NvdW50SUQsICRUb2tlblR5cGUsICRUb2tlbiwgJEV4cGlyZXNBdCApID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5ICkgewoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBUb2tlbklEICAgPT4gJFRva2VuSUQsCiAgICAgICAgICAgIEFjY291bnRJRCA9PiAkQWNjb3VudElELAogICAgICAgICAgICBUb2tlblR5cGUgPT4gJFRva2VuVHlwZSwKICAgICAgICAgICAgVG9rZW4gICAgID0+ICRUb2tlbiwKICAgICAgICAgICAgRXhwaXJlc0F0ID0+ICRFeHBpcmVzQXQsCiAgICAgICAgfTsKICAgIH0KCiAgICByZXR1cm47Cn0KCj1oZWFkMiBHZXRMaXN0KCkKCiAgICBHZXQgYSBsaXN0IG9mIFRva2VucyBmb3IgRGlzcGxheS4KCiAgICBteSAkVG9rZW5zID0gJFRva2VuUmVwb3NpdG9yeU9iamVjdC0+R2V0TGlzdCgKICAgICAgICBFeHBpcmVzQWZ0ZXIgPT4gVW5peCBlcG9jaCB0aW1lc3RhbXAsICMgb3B0aW9uYWwKICAgICAgICBUb2tlblR5cGUgICAgPT4gJ3JlZnJlc2hfdG9rZW4nLCAgICAgICMgb3B0aW9uYWwsIGRlZmF1bHRzIHRvICdyZWZyZXNoX3Rva2VuJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgY2FuIGJlICdyZWZyZXNoX3Rva2VuJyBvciAnYWNjZXNzX3Rva2VuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvciAnaWRfdG9rZW4nIG9yICdhbGwnCiAgICApOwoKICAgIHdoZXJlOgoKICAgIG15ICRUb2tlbnMgPSBbCiAgICAgICAgewogICAgICAgICAgICBUb2tlbklEICAgID0+IDEsCiAgICAgICAgICAgIEFjY291bnRJRCAgPT4gPEZ1bmN0aW9uYWxBY2NvdW5ndElEPiwKICAgICAgICAgICAgVG9rZW5UeXBlICA9PiAncmVmcmVzaF90b2tlbicsCiAgICAgICAgICAgIFRva2VuICAgICAgPT4gPFRva2VuRGF0YT4sCiAgICAgICAgICAgIEV4cGlyZXNBdCAgPT4gVU5JWCBlcG9jaCB0aW1lc3RhbXAsCiAgICAgICAgfSwKICAgICAgICAuLi4KICAgIF07Cgo9Y3V0CgpzdWIgR2V0TGlzdCB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAkU2VsZi0+Q2xlYW51cCgpOwoKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgIG15ICRFeHBpcmVzQWZ0ZXIgPSAkUGFyYW17RXhwaXJlc0FmdGVyfTsKICAgIG15ICRUb2tlblR5cGUgICAgPSAkUGFyYW17VG9rZW5UeXBlfSB8fCAncmVmcmVzaF90b2tlbic7CgogICAgbXkgJFNRTCAgPSAiU0VMRUNUIGlkLCBvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudF9pZCwgdG9rZW5fdHlwZSwgdG9rZW4sIGV4cGlyZXNfYXQgRlJPTSBvYXV0aDJfdG9rZW5fc3RvcmFnZSBXSEVSRSAxPTEgIjsKICAgIG15ICRCaW5kID0gW107CgogICAgaWYgKCAkVG9rZW5UeXBlIG5lICdhbGwnICkgewogICAgICAgICRTUUwgLj0gIkFORCB0b2tlbl90eXBlID0gPyAiOwogICAgICAgIHB1c2ggQCRCaW5kLCBcJFRva2VuVHlwZTsKICAgIH0KCiAgICBpZiAoJEV4cGlyZXNBZnRlcikgewoKICAgICAgICAkU1FMIC49ICJBTkQgZXhwaXJlc19hdCBJUyBOVUxMIE9SIGV4cGlyZXNfYXQgPSAwIE9SIGV4cGlyZXNfYXQgPCA/ICI7CiAgICAgICAgcHVzaCBAJEJpbmQsIFwkRXhwaXJlc0FmdGVyOwogICAgfQoKICAgICRTUUwgLj0gIk9SREVSIEJZIG9pZGNfZnVuY3Rpb25hbF9hY2NvdW50X2lkLCBleHBpcmVzX2F0ICI7CgogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCAgPT4gJFNRTCwKICAgICAgICBCaW5kID0+ICRCaW5kLAogICAgKTsKCiAgICBteSBAUmVzdWx0OwogICAgd2hpbGUgKCBteSAoICRUb2tlbklELCAkQWNjb3VudElELCAkVG9rZW5UeXBlLCAkVG9rZW4sICRFeHBpcmVzQXQgKSA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSApIHsKCiAgICAgICAgcHVzaCBAUmVzdWx0LCB7CiAgICAgICAgICAgIFRva2VuSUQgICA9PiAkVG9rZW5JRCwKICAgICAgICAgICAgQWNjb3VudElEID0+ICRBY2NvdW50SUQsCiAgICAgICAgICAgIFRva2VuVHlwZSA9PiAkVG9rZW5UeXBlLAogICAgICAgICAgICBUb2tlbiAgICAgPT4gJFRva2VuLAogICAgICAgICAgICBFeHBpcmVzQXQgPT4gJEV4cGlyZXNBdCwKICAgICAgICB9OwogICAgfQoKICAgIHJldHVybiBcQFJlc3VsdDsKfQoKPWhlYWQyIFZhbGlkYXRlVG9rZW5UeXBlKCkKCiAgICBWYWxpZGF0ZSBUb2tlblR5cGUgdmFsdWUuCgogICAgbXkgJEJvb2xlYW4gPSAkVG9rZW5SZXBvc2l0b3J5T2JqZWN0LT5WYWxpZGF0ZVRva2VuVHlwZSggVG9rZW5UeXBlID0+ICdyZWZyZXNoX3Rva2VuJyApOwoKICAgIHJldHVybnMgdHJ1ZSBpZiBUb2tlblR5cGUgaXMgb25lIG9mIGFjY2Vzc190b2tlbnxpZF90b2tlbnxyZWZyZXNoX3Rva2VuLCBmYWxzZSBvdGhlcndpc2UuCgo9Y3V0CgpzdWIgVmFsaWRhdGVUb2tlblR5cGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoCiAgICAgICAgJFBhcmFte1Rva2VuVHlwZX0gbmUgJ2FjY2Vzc190b2tlbicgJiYKICAgICAgICAkUGFyYW17VG9rZW5UeXBlfSBuZSAnaWRfdG9rZW4nICAgICAmJgogICAgICAgICRQYXJhbXtUb2tlblR5cGV9IG5lICdyZWZyZXNoX3Rva2VuJwogICAgICAgICkKICAgIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRva2VuVHlwZSBtdXN0IGJlIG9uZSBvZiAnYWNjZXNzX3Rva2VuLGlkX3Rva2VuLHJlZnJlc2hfdG9rZW4nLCBidXQgd2FzICckUGFyYW17VG9rZW5UeXBlfScuXG4iLAogICAgICAgICk7CgogICAgICAgIHJldHVybiAwOwogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwo=</File>
        <File Location="Kernel/System/OpenIDConnect/TokenStoreUpdater.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlblN0b3JlVXBkYXRlcjsKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpNYWluJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlblByb3ZpZGVyJywKICAgICdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5SZXBvc2l0b3J5JywKICAgICdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6RnVuY3Rpb25hbEFjY291bnRSZXBvc2l0b3J5JywKCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuU3RvcmVVcGRhdGVyIC0gcmVmcmVzaCBPQXV0aCBUb2tlbnMgdmlhIGNyb24gc2NoZWR1bGVyCgo9aGVhZDEgREVTQ1JJUFRJT04KClJlZnJlc2hlcyBPQXV0aCBUb2tlbnMgdmlhIGNyb24gc2NoZWR1bGVyCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKPWhlYWQyIG5ldygpCgpjcmVhdGUgYSBUb2tlblNUb3JlVXBkYXRlciBvYmplY3QuIERvIG5vdCB1c2UgaXQgZGlyZWN0bHksIGluc3RlYWQgdXNlOgoKICAgICBteSAkVG9rZW5TdG9yZVVwZGF0ZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5TdG9yZVVwZGF0ZXInKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRNYWluT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpOwogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkTG9nRGlyICAgICAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdIb21lJykgLiAnL3Zhci9sb2cvJzsKCiAgICBteSAkTG9nID0gIlRva2VuU3RvcmFnZVVwZGF0ZXIgaGFzIGJlZW4gY2FsbGVkIHdpdGg6XG4iOwoKICAgICRMb2cgLj0gJE1haW5PYmplY3QtPkR1bXAoIFwlUGFyYW0gKTsKCiAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgKTsKCiAgICBteSAkU3VjY2VzcyA9ICREYXRlVGltZU9iamVjdC0+VG9UaW1lWm9uZSgKICAgICAgICBUaW1lWm9uZSA9PiAnVVRDJwogICAgKTsKCiAgICBteSAkVGltZSA9ICREYXRlVGltZU9iamVjdC0+Rm9ybWF0KCBGb3JtYXQgPT4gJyVZLSVtLSVkICVIOiVNOiVTJyApOwoKICAgICRMb2cgLj0gImF0ICRUaW1lLlxuIjsKCiAgICBteSAkVG9rZW5zOwogICAgZXZhbCB7CgogICAgICAgICRUb2tlbnMgPSAkU2VsZi0+UmVuZXdUb2tlbnMoJVBhcmFtKTsKICAgIH07CiAgICBpZiAoJEApIHsKCiAgICAgICAgJExvZyAuPSAkTWFpbk9iamVjdC0+RHVtcCgkQCk7CiAgICB9CgogICAgaWYgKCRUb2tlbnMpIHsKICAgICAgICAkTG9nIC49ICRNYWluT2JqZWN0LT5EdW1wKCRUb2tlbnMpOwogICAgfQoKICAgIG15ICRGaWxlTG9jYXRpb24gPSAkTWFpbk9iamVjdC0+RmlsZVdyaXRlKAogICAgICAgIERpcmVjdG9yeSA9PiAkTG9nRGlyLAogICAgICAgIEZpbGVuYW1lICA9PiAndG9rZW51cGRhdGVyLmxvZycsCiAgICAgICAgQ29udGVudCAgID0+IFwkTG9nLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKIyBoZWxwZXIKCnN1YiBSZW5ld1Rva2VucyB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkSW50ZXJ2YWwgPSAkUGFyYW17SW50ZXJ2YWx9OwoKICAgIG15ICRUb2tlblByb3ZpZGVyICAgICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5Qcm92aWRlcicpOwogICAgbXkgJFRva2VuUmVwb3NpdG9yeSAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlblJlcG9zaXRvcnknKTsKICAgIG15ICRGdW5jdGlvbmFsQWNjb3VudFJlcG9zaXRvcnkgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6RnVuY3Rpb25hbEFjY291bnRSZXBvc2l0b3J5Jyk7CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICk7CgogICAgbXkgJFN1Y2Nlc3MgPSAkRGF0ZVRpbWVPYmplY3QtPlRvVGltZVpvbmUoCiAgICAgICAgVGltZVpvbmUgPT4gJ1VUQycKICAgICk7CgogICAgbXkgJEVwb2NoID0gJERhdGVUaW1lT2JqZWN0LT5Ub0Vwb2NoKCkgKyAkSW50ZXJ2YWw7CgogICAgbXkgJFRva2VucyA9ICRUb2tlblJlcG9zaXRvcnktPkdldExpc3QoCiAgICAgICAgRXhwaXJlc0FmdGVyID0+ICRFcG9jaAogICAgKTsKCiAgICBUT0tFTjoKICAgIGZvciBteSAkVG9rZW4gKEAkVG9rZW5zKSB7CgogICAgICAgIG15ICRBY2NvdW50ID0gJEZ1bmN0aW9uYWxBY2NvdW50UmVwb3NpdG9yeS0+R2V0QnlJRCggQWNjb3VudElEID0+ICRUb2tlbi0+e0FjY291bnRJRH0gKTsKCiAgICAgICAgbXkgJFJlc3VsdCA9ICRUb2tlblByb3ZpZGVyLT5GZXRjaFRva2VuKAoKICAgICAgICAgICAgQWNjb3VudE5hbWUgID0+ICRBY2NvdW50LT57TmFtZX0sCiAgICAgICAgICAgIFJlZnJlc2hUb2tlbiA9PiAkVG9rZW4tPntUb2tlbn0sCiAgICAgICAgKTsKCiAgICAgICAgJFRva2VuLT57UmVzdWx0fSA9IHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAkUmVzdWx0LT57U3VjY2Vzc30sCiAgICAgICAgICAgIEVycm9yICAgPT4gJFJlc3VsdC0+e0Vycm9yfSwKICAgICAgICB9OwogICAgfQoKICAgIHJldHVybiAkVG9rZW5zOwp9CgoxOwo=</File>
        <File Location="Kernel/System/OpenIDConnect/UserImport.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VXNlckltcG9ydDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCnVzZSBuYW1lc3BhY2U6OmF1dG9jbGVhbjsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VXNlcicsCiAgICAnS2VybmVsOjpTeXN0ZW06Okdyb3VwJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VXNlckltcG9ydAoKPWZvciBzdG9wd29yZHMgT0lEQwoKSW1wb3J0IHVzZXJzIGludG8gT3RvYm8gYmFzZWQgb24gdmFsaWQgT3BlbklEIENvbm5lY3QgVG9rZW4uCgo9aGVhZDEgU1lOT1BTSVMKCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyOwogICAgbG9jYWwgJEtlcm5lbDo6T00gPSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlci0+bmV3KCk7CiAgICBteSAkVXNlckltcG9ydE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpVc2VySW1wb3J0Jyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIEltcG9ydFVzZXIoKQoKSW1wb3J0IGFuIFVzZXIgaW50byBPdG9ibyBiYXNlZCBvbiB2YWxpZCBPSURDIFRva2VuCgogICAgbXkgJFN1Y2Nlc3MgPSAkVXNlckltcG9ydE9iamVjdC0+SW1wb3J0VXNlcigKICAgICAgICBUb2tlbiA9PiAkVG9rZW4sICAgICAgICAgICAgICAgICAgICAgICAgIyBUb2tlbiB3aXRoIHVzZXIgZGV0YWlscyB0byBtYXAKICAgICAgICBPcGVuSURDb25maWdOYW1lID0+ICRPcGVuSURDb25maWdOYW1lLCAgIyBPcGVuSURDb25maWdOYW1lIHRvIGxvb2t1cCBPSURDIEF1dGggTW9kdWxlIGZyb20gQ29uZmlnLnBtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb2Z0ZW4gJ0F1dGhNb2R1bGU6Ok9wZW5JRENvbm5lY3Q6OkNvbmZpZycKICAgICk7Cgo9Y3V0CgpzdWIgSW1wb3J0VXNlciB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkVG9rZW5EYXRhICAgICAgICA9ICRQYXJhbXtUb2tlbkRhdGF9OwogICAgbXkgJE9wZW5JRENvbmZpZ05hbWUgPSAkUGFyYW17T3BlbklEQ29uZmlnTmFtZX07CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBjaGVjayBpZiB0aGVyZSBpcyBhIHNwZWNpZmljIFVzZXIgYW5kIFJvbGVNYXAgZm9yIHRoaXMgT0lEQyBjb25maWcsCiAgICAjIG90aGVyd2lzZSBzZWUgaWYgdGhlcmUgaXMgYSBkZWZhdWx0IG9uZQogICAgbXkgJFVJRCAgICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoICRPcGVuSURDb25maWdOYW1lIC4gJzo6VUlEJyApICAgICB8fCAnc3ViJzsKICAgIG15ICRVc2VyTWFwID0gJENvbmZpZ09iamVjdC0+R2V0KCAkT3BlbklEQ29uZmlnTmFtZSAuICc6OlVzZXJNYXAnICkgfHwgJENvbmZpZ09iamVjdC0+R2V0KCdBdXRoTW9kdWxlOjpPcGVuSURDb25uZWN0OjpVc2VyTWFwJyk7CiAgICBteSAkUm9sZU1hcCA9ICRDb25maWdPYmplY3QtPkdldCggJE9wZW5JRENvbmZpZ05hbWUgLiAnOjpSb2xlTWFwJyApIHx8ICRDb25maWdPYmplY3QtPkdldCgnQXV0aE1vZHVsZTo6T3BlbklEQ29ubmVjdDo6Um9sZU1hcCcpOwoKICAgICMgZGV0ZXJtaW5lIGp3dCBjbGFpbiB0byBvdG9ibyBVc2VyTG9naW4gbWFwcGluZwogICAgbXkgJFVzZXJMb2dpbiA9ICRUb2tlbkRhdGEtPnskVUlEfTsKICAgIGlmICggISRVc2VyTG9naW4gKSB7CgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgICAgICAgICAgRXJyb3IgICA9PiAiVG9rZW4gcmVjZWl2ZWQgYnV0IFVJRCB3YXMgbm90IHByb3ZpZGVkIGluICckVUlEJy4iLAogICAgICAgIH07CiAgICB9CgogICAgIyBSb2xlcwogICAgbXkgJVJvbGVzOwogICAgaWYgKCRSb2xlTWFwKSB7CiAgICAgICAgJVJvbGVzID0gJFNlbGYtPl9FeHRyYWN0TWFwKAogICAgICAgICAgICBNYXAgID0+ICRSb2xlTWFwLAogICAgICAgICAgICBEYXRhID0+ICRUb2tlbkRhdGEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGlmIE9wZW5JRENvbm5lY3QgaXMgY29uZmlndXJlZCB0byBwcm92aWRlIGF1dGhvcml6YXRpb24gYnV0IHRoZSB1c2VyIGhhcyBubyByaWdodHMgcmV0dXJuCiAgICBpZiAoICRSb2xlTWFwICYmICElUm9sZXMgKSB7CgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgICAgICAgICAgRXJyb3IgICA9PiAiVW5hdXRob3JpemVkIGFzIHBlciBSb2xlTWFwLiIsCiAgICAgICAgfTsKICAgIH0KCiAgICBteSAkVXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgbXkgJVVzZXIgPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoIFVzZXIgPT4gJFVzZXJMb2dpbiApOwogICAgbXkgJFVzZXJJRDsKCiAgICAjIGNyZWF0ZSBhbmQgZWRpdCB1c2VycwogICAgaWYgKCRVc2VyTWFwKSB7CgogICAgICAgIG15ICVVc2VyRGF0YSA9IG1hcCB7ICRVc2VyTWFwLT57JF99ID0+ICRUb2tlbkRhdGEtPnskX30gfSBrZXlzICV7JFVzZXJNYXB9OwoKICAgICAgICAjIGRvbid0IG1lc3Mgd2l0aCBzb21lIGRhdGEgaGVyZQogICAgICAgIGRlbGV0ZSAkVXNlckRhdGF7VXNlcklEfTsKICAgICAgICBkZWxldGUgJFVzZXJEYXRhe1VzZXJQd307CgogICAgICAgICMgdXNlcmRhdGEsIHdpdGggcmVhc29uYWJsZSBkZWZhdWx0cwogICAgICAgICRVc2VyRGF0YXtVc2VyRmlyc3RuYW1lfSA9ICRVc2VyRGF0YXtVc2VyRmlyc3RuYW1lfSB8fCAkVG9rZW5EYXRhLT57YXpwfSAgICAgICAgICAgICAgICB8fCAnb3RvYm8nOwogICAgICAgICRVc2VyRGF0YXtVc2VyTGFzdG5hbWV9ICA9ICRVc2VyRGF0YXtVc2VyTGFzdG5hbWV9ICB8fCAkVG9rZW5EYXRhLT57cHJlZmVycmVkX3VzZXJuYW1lfSB8fCAnYm90JzsKICAgICAgICAkVXNlckRhdGF7VXNlckVtYWlsfSAgICAgPSAkVG9rZW5EYXRhLT57ZW1haWx9ICAgICAgfHwgJFVzZXJEYXRhe1VzZXJFbWFpbH0gICAgICAgICAgICAgfHwgJ3N5c3RlbXVzZXJAb3RvYm8ubG9jYWwnOwoKICAgICAgICBpZiAoICElVXNlciApIHsKCiAgICAgICAgICAgICMgYWRkdXNlcgogICAgICAgICAgICAkVXNlcklEID0gJFVzZXJPYmplY3QtPlVzZXJBZGQoCiAgICAgICAgICAgICAgICBVc2VyRmlyc3RuYW1lID0+ICctJywKICAgICAgICAgICAgICAgIFVzZXJMYXN0bmFtZSAgPT4gJy0nLAogICAgICAgICAgICAgICAgJVVzZXJEYXRhLAogICAgICAgICAgICAgICAgVXNlckxvZ2luICAgID0+ICRVc2VyTG9naW4sCiAgICAgICAgICAgICAgICBWYWxpZElEICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIENoYW5nZVVzZXJJRCA9PiAxLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIHVwZGF0ZSBleGlzdGluZyB1c2VyCiAgICAgICAgICAgIG15ICRVcGRhdGU7CiAgICAgICAgICAgIEtFWToKICAgICAgICAgICAgZm9yIG15ICRLZXkgKCBrZXlzICVVc2VyRGF0YSApIHsKICAgICAgICAgICAgICAgIGlmICggJFVzZXJEYXRheyRLZXl9IG5lICRVc2VyeyRLZXl9ICkgewogICAgICAgICAgICAgICAgICAgICRVcGRhdGUgPSAxOwoKICAgICAgICAgICAgICAgICAgICBsYXN0IEtFWTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCRVcGRhdGUpIHsKICAgICAgICAgICAgICAgICRVc2VyT2JqZWN0LT5Vc2VyVXBkYXRlKAogICAgICAgICAgICAgICAgICAgICVVc2VyLAogICAgICAgICAgICAgICAgICAgICVVc2VyRGF0YSwKICAgICAgICAgICAgICAgICAgICBDaGFuZ2VVc2VySUQgPT4gMSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgJFVzZXJJRCAvLz0gJFVzZXJ7VXNlcklEfTsKCiAgICBpZiAoICEkVXNlcklEICkgewoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgIEVycm9yICAgPT4gIk5vIFVzZXJJRCBmb3IgJFVzZXJMb2dpbi4gQWJvcnRpbmcuIiwKICAgICAgICB9OwoKICAgIH0KCiAgICAjIHN1Y2Nlc3NmdWwgcmV0dXJuIGlmIG5vIGF1dGhvcml6YXRpb24gaGFzIHRvIGJlIGRvbmUKCiAgICByZXR1cm4gcmV0dXJuIHsKICAgICAgICBTdWNjZXNzICAgPT4gMSwKICAgICAgICBVc2VySUQgICAgPT4gJFVzZXJJRCwKICAgICAgICBVc2VyTG9naW4gPT4gJFVzZXJMb2dpbiwKICAgIH0gaWYgISRSb2xlTWFwOwoKICAgIG15ICRHcm91cE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpOwoKICAgIGlmICgkUm9sZU1hcCkgewoKICAgICAgICBteSAlQWxsUm9sZXMgPSByZXZlcnNlICRHcm91cE9iamVjdC0+Um9sZUxpc3QoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyB1cGRhdGUgdXNlciByb2xlcwogICAgICAgIGZvciBteSAkUm9sZU5hbWUgKCBrZXlzICVBbGxSb2xlcyApIHsKCiAgICAgICAgICAgICRHcm91cE9iamVjdC0+UGVybWlzc2lvblJvbGVVc2VyQWRkKAogICAgICAgICAgICAgICAgVUlEICAgID0+ICRVc2VySUQsCiAgICAgICAgICAgICAgICBSSUQgICAgPT4gJEFsbFJvbGVzeyRSb2xlTmFtZX0sCiAgICAgICAgICAgICAgICBBY3RpdmUgPT4gJFJvbGVzeyRSb2xlTmFtZX0gfHwgMCwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gewogICAgICAgIFN1Y2Nlc3MgICA9PiAxLAogICAgICAgIFVzZXJJRCAgICA9PiAkVXNlcklELAogICAgICAgIFVzZXJMb2dpbiA9PiAkVXNlckxvZ2luLAogICAgfTsKfQoKc3ViIF9FeHRyYWN0TWFwIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CiAgICBteSAlUmV0dXJuID0gKCk7CgogICAgS0VZOgogICAgZm9yIG15ICRLZXkgKCBrZXlzICV7ICRQYXJhbXtNYXB9IH0gKSB7CiAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJFBhcmFte01hcH17JEtleX0gKSApIHsKICAgICAgICAgICAgbmV4dCBLRVkgdW5sZXNzIGRlZmluZWQgJFBhcmFte0RhdGF9eyRLZXl9OwoKICAgICAgICAgICAgJVJldHVybiA9ICgKICAgICAgICAgICAgICAgICVSZXR1cm4sCiAgICAgICAgICAgICAgICAkU2VsZi0+X0V4dHJhY3RNYXAoCiAgICAgICAgICAgICAgICAgICAgTWFwICA9PiAkUGFyYW17TWFwfXskS2V5fSwKICAgICAgICAgICAgICAgICAgICBEYXRhID0+ICRQYXJhbXtEYXRhfXskS2V5fSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBuZXh0IEtFWSBpZiByZWYgJFBhcmFte01hcH17JEtleX07CgogICAgICAgIG15IEBEYXRhID0gSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17RGF0YX0gKSA/IEB7ICRQYXJhbXtEYXRhfSB9IDoKICAgICAgICAgICAgIXJlZiAkUGFyYW17RGF0YX0gPyAoICRQYXJhbXtEYXRhfSApIDogKCk7CgogICAgICAgIGZvciBteSAkT3BlbklEQXR0cmlidXRlIChARGF0YSkgewogICAgICAgICAgICBteSAkT1RPQk9BdHRyaWJ1dGUgPSAkUGFyYW17TWFwfXskT3BlbklEQXR0cmlidXRlfTsKCiAgICAgICAgICAgIGlmICgkT1RPQk9BdHRyaWJ1dGUpIHsKICAgICAgICAgICAgICAgICRSZXR1cm57JE9UT0JPQXR0cmlidXRlfSA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVSZXR1cm47Cn0KCjE7Cg==</File>
        <File Location="Custom/Kernel/Modules/AdminGenericInterfaceTransportHTTPREST.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL01vZHVsZXMvQWRtaW5HZW5lcmljSW50ZXJmYWNlVHJhbnNwb3J0SFRUUFJFU1QucG0KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFkbWluR2VuZXJpY0ludGVyZmFjZVRyYW5zcG9ydEhUVFBSRVNUOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwp1c2UgS2VybmVsOjpMYW5ndWFnZSAgICAgICAgICAgICAgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgU2V0IHBvc3NpYmxlIHZhbHVlcyBoYW5kbGluZyBzdHJpbmdzLgogICAgJFNlbGYtPntFbXB0eVN0cmluZ30gICAgID0gJ19BZGRpdGlvbmFsSGVhZGVyc19FbXB0eVN0cmluZ19Eb250X1VzZV9JdF9TdHJpbmdfUGxlYXNlJzsKICAgICRTZWxmLT57RHVwbGljYXRlU3RyaW5nfSA9ICdfQWRkaXRpb25hbEhlYWRlcnNfRHVwbGljYXRlZFN0cmluZ19Eb250X1VzZV9JdF9TdHJpbmdfUGxlYXNlJzsKICAgICRTZWxmLT57RGVsZXRlZFN0cmluZ30gICA9ICdfQWRkaXRpb25hbEhlYWRlcnNfRGVsZXRlZFN0cmluZ19Eb250X1VzZV9JdF9TdHJpbmdfUGxlYXNlJzsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkUGFyYW1PYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRMYXlvdXRPYmplY3QgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFdlYnNlcnZpY2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJpY0ludGVyZmFjZTo6V2Vic2VydmljZScpOwoKIyBSb3RoZXIgT1NTIC8gT0F1dGgyCiAgICBteSAkQ29uZmlnT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkVG9rZW5Qcm92aWRlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlblByb3ZpZGVyJyk7CiMgRU8gT0F1dGgyCgogICAgbXkgJFdlYnNlcnZpY2VJRCAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1dlYnNlcnZpY2VJRCcgKSAgICAgIHx8ICcnOwogICAgbXkgJENvbW11bmljYXRpb25UeXBlID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0NvbW11bmljYXRpb25UeXBlJyApIHx8ICcnOwoKIyBSb3RoZXIgT1NTIC8gT0F1dGgyCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKIyBFTyBPQXV0aDIKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHN1Yi1hY3Rpb24gQ2hhbmdlOiBsb2FkIHdlYiBzZXJ2aWNlIGFuZCBzaG93IGVkaXQgc2NyZWVuCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkJyB8fCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0NoYW5nZScgKSB7CgogICAgICAgICMgQ2hlY2sgZm9yIFdlYnNlcnZpY2VJRC4KICAgICAgICBpZiAoICEkV2Vic2VydmljZUlEICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTmVlZCBXZWJzZXJ2aWNlSUQhJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIEdldCB3ZWIgc2VydmljZSBjb25maWd1cmF0aW9uLgogICAgICAgIG15ICRXZWJzZXJ2aWNlRGF0YSA9ICRXZWJzZXJ2aWNlT2JqZWN0LT5XZWJzZXJ2aWNlR2V0KCBJRCA9PiAkV2Vic2VydmljZUlEICk7CgogICAgICAgICMgQ2hlY2sgZm9yIHZhbGlkIHdlYiBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24uCiAgICAgICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJFdlYnNlcnZpY2VEYXRhKSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdDb3VsZCBub3QgZ2V0IGRhdGEgZm9yIFdlYnNlcnZpY2VJRCAlcycsICRXZWJzZXJ2aWNlSUQgKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkU2VsZi0+X1Nob3dFZGl0KAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIFdlYnNlcnZpY2VJRCAgICAgID0+ICRXZWJzZXJ2aWNlSUQsCiAgICAgICAgICAgIFdlYnNlcnZpY2VEYXRhICAgID0+ICRXZWJzZXJ2aWNlRGF0YSwKICAgICAgICAgICAgQ29tbXVuaWNhdGlvblR5cGUgPT4gJENvbW11bmljYXRpb25UeXBlLAogICAgICAgICAgICBBY3Rpb24gICAgICAgICAgICA9PiAnQ2hhbmdlJywKCiMgUm90aGVyIE9TUyAvIE9BdXRoMgogICAgICAgICAgICBPdXRwdXQgICAgICAgPT4gJE91dHB1dCwKICAgICAgICAgICAgTGF5b3V0T2JqZWN0ID0+ICRMYXlvdXRPYmplY3QsCiAgICAgICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAojIEVPIC8gT0F1dGgyCiAgICAgICAgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGludmFsaWQgc3ViLWFjdGlvbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gbmUgJ0NoYW5nZUFjdGlvbicgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTmVlZCB2YWxpZCBTdWJhY3Rpb24hJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHN1Yi1hY3Rpb24gQ2hhbmdlQWN0aW9uOiB3cml0ZSBjb25maWcgYW5kIHJldHVybiB0byBvdmVydmlldwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKICAgICMgQ2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24uCiAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgIyBDaGVjayBmb3IgV2Vic2VydmljZUlELgogICAgaWYgKCAhJFdlYnNlcnZpY2VJRCApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdOZWVkIFdlYnNlcnZpY2VJRCEnKSwKICAgICAgICApOwogICAgfQoKICAgICMgR2V0IHdlYiBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24uCiAgICBteSAkV2Vic2VydmljZURhdGEgPSAkV2Vic2VydmljZU9iamVjdC0+V2Vic2VydmljZUdldCgKICAgICAgICBJRCA9PiAkV2Vic2VydmljZUlELAogICAgKTsKCiAgICAjIENoZWNrIGZvciB2YWxpZCB3ZWIgc2VydmljZSBjb25maWd1cmF0aW9uLgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJFdlYnNlcnZpY2VEYXRhKSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ0NvdWxkIG5vdCBnZXQgZGF0YSBmb3IgV2Vic2VydmljZUlEICVzJywgJFdlYnNlcnZpY2VJRCApLAogICAgICAgICk7CiAgICB9CgogICAgIyBHZXQgcGFyYW1ldGVyIGZyb20gd2ViIGJyb3dzZXIuCiAgICBteSAkR2V0UGFyYW0gPSAkU2VsZi0+X0dldFBhcmFtcygpOwoKICAgICMgQ2hlY2sgcmVxdWlyZWQgcGFyYW1ldGVycy4KICAgIG15ICVFcnJvcjsKCiAgICAjIFRvIHN0b3JlIHRoZSBjbGVhbiBuZXcgY29uZmlndXJhdGlvbiBsb2NhbGx5LgogICAgbXkgJFRyYW5zcG9ydENvbmZpZzsKCiAgICAjIEdldCByZXF1ZXN0ZXIgc3BlY2lmaWMgc2V0dGluZ3MuCiAgICBpZiAoICRDb21tdW5pY2F0aW9uVHlwZSBlcSAnUmVxdWVzdGVyJyApIHsKCiAgICAgICAgTkVFREVEOgogICAgICAgIGZvciBteSAkTmVlZGVkIChxdyggSG9zdCBEZWZhdWx0Q29tbWFuZCBUaW1lb3V0ICkpIHsKICAgICAgICAgICAgJFRyYW5zcG9ydENvbmZpZy0+eyROZWVkZWR9ID0gJEdldFBhcmFtLT57JE5lZWRlZH07CiAgICAgICAgICAgIG5leHQgTkVFREVEIGlmIGRlZmluZWQgJEdldFBhcmFtLT57JE5lZWRlZH07CgogICAgICAgICAgICAkRXJyb3J7ICROZWVkZWQgLiAnU2VydmVyRXJyb3InIH0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yeyAkTmVlZGVkIC4gJ1NlcnZlckVycm9yTWVzc2FnZScgfSA9IFRyYW5zbGF0YWJsZSgnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCcpOwogICAgICAgIH0KCiAgICAgICAgIyBTZXQgZXJyb3IgZm9yIG5vbiBpbnRlZ2VyIGNvbnRlbnQuCiAgICAgICAgaWYgKCAkR2V0UGFyYW0tPntUaW1lb3V0fSAmJiAhSXNJbnRlZ2VyKCAkR2V0UGFyYW0tPntUaW1lb3V0fSApICkgewogICAgICAgICAgICAkRXJyb3J7VGltZW91dFNlcnZlckVycm9yfSAgICAgICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3J7VGltZW91dFNlcnZlckVycm9yTWVzc2FnZX0gPSBUcmFuc2xhdGFibGUoJ1RoaXMgZmllbGQgc2hvdWxkIGJlIGFuIGludGVnZXIuJyk7CiAgICAgICAgfQoKICAgICAgICAjIENoZWNrIGF1dGhlbnRpY2F0aW9uIG9wdGlvbnMuCiAgICAgICAgaWYgKCAkR2V0UGFyYW0tPntBdXRoVHlwZX0gJiYgJEdldFBhcmFtLT57QXV0aFR5cGV9IGVxICdCYXNpY0F1dGgnICkgewoKICAgICAgICAgICAgIyBHZXQgQmFzaWNBdXRoIHNldHRpbmdzLgogICAgICAgICAgICBmb3IgbXkgJFBhcmFtTmFtZSAocXcoIEF1dGhUeXBlIEJhc2ljQXV0aFVzZXIgQmFzaWNBdXRoUGFzc3dvcmQgKSkgewogICAgICAgICAgICAgICAgJFRyYW5zcG9ydENvbmZpZy0+e0F1dGhlbnRpY2F0aW9ufS0+eyRQYXJhbU5hbWV9ID0gJEdldFBhcmFtLT57JFBhcmFtTmFtZX07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgTkVFREVEOgogICAgICAgICAgICBmb3IgbXkgJE5lZWRlZCAocXcoIEJhc2ljQXV0aFVzZXIgQmFzaWNBdXRoUGFzc3dvcmQgKSkgewogICAgICAgICAgICAgICAgbmV4dCBORUVERUQgaWYgZGVmaW5lZCAkR2V0UGFyYW0tPnskTmVlZGVkfSAmJiBsZW5ndGggJEdldFBhcmFtLT57JE5lZWRlZH07CgogICAgICAgICAgICAgICAgJEVycm9yeyAkTmVlZGVkIC4gJ1NlcnZlckVycm9yJyB9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3J7ICROZWVkZWQgLiAnU2VydmVyRXJyb3JNZXNzYWdlJyB9ID0gVHJhbnNsYXRhYmxlKCdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzaWYgKCAkR2V0UGFyYW0tPntBdXRoVHlwZX0gJiYgJEdldFBhcmFtLT57QXV0aFR5cGV9IGVxICdLZXJiZXJvcycgKSB7CgogICAgICAgICAgICAjIEdldCBCYXNpY0F1dGggc2V0dGluZ3MuCiAgICAgICAgICAgIGZvciBteSAkUGFyYW1OYW1lIChxdyggQXV0aFR5cGUgS2VyYmVyb3NVc2VyIEtlcmJlcm9zS2V5dGFiICkpIHsKICAgICAgICAgICAgICAgICRUcmFuc3BvcnRDb25maWctPntBdXRoZW50aWNhdGlvbn0tPnskUGFyYW1OYW1lfSA9ICRHZXRQYXJhbS0+eyRQYXJhbU5hbWV9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIE5FRURFRDoKICAgICAgICAgICAgZm9yIG15ICROZWVkZWQgKHF3KCBLZXJiZXJvc1VzZXIgS2VyYmVyb3NLZXl0YWIgKSkgewogICAgICAgICAgICAgICAgbmV4dCBORUVERUQgaWYgZGVmaW5lZCAkR2V0UGFyYW0tPnskTmVlZGVkfSAmJiBsZW5ndGggJEdldFBhcmFtLT57JE5lZWRlZH07CgogICAgICAgICAgICAgICAgJEVycm9yeyAkTmVlZGVkIC4gJ1NlcnZlckVycm9yJyB9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3J7ICROZWVkZWQgLiAnU2VydmVyRXJyb3JNZXNzYWdlJyB9ID0gVHJhbnNsYXRhYmxlKCdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgojIFJvdGhlciBPU1MgLyBPQXV0aDIKICAgICAgICBlbHNpZiAoICRHZXRQYXJhbS0+e0F1dGhUeXBlfSAmJiAkR2V0UGFyYW0tPntBdXRoVHlwZX0gZXEgJ09BdXRoJyApIHsKCiAgICAgICAgICAgICMgR2V0IE9BdXRoIHNldHRpbmdzLgogICAgICAgICAgICBmb3IgbXkgJFBhcmFtTmFtZSAocXcoIEF1dGhUeXBlIE9BdXRoQWNjb3VudE5hbWUgKSkgewogICAgICAgICAgICAgICAgJFRyYW5zcG9ydENvbmZpZy0+e0F1dGhlbnRpY2F0aW9ufS0+eyRQYXJhbU5hbWV9ID0gJEdldFBhcmFtLT57JFBhcmFtTmFtZX07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRUb2tlbiA9ICRUb2tlblByb3ZpZGVyLT5GZXRjaCggQWNjb3VudE5hbWUgPT4gJEdldFBhcmFtLT57T0F1dGhBY2NvdW50TmFtZX0gKTsKCiAgICAgICAgICAgIGlmICggISRUb2tlbi0+e1N1Y2Nlc3N9ICkgewogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgICAgICAgICAgSW5mbyAgICA9PiAkVG9rZW4tPntFcnJvcn0sCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJywKICAgICAgICAgICAgICAgICAgICBMaW5rICAgICA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0h0dHBUeXBlJykKICAgICAgICAgICAgICAgICAgICAgICAgLiAnOi8vJwogICAgICAgICAgICAgICAgICAgICAgICAuICRDb25maWdPYmplY3QtPkdldCgnRlFETicpCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJy8nCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJENvbmZpZ09iamVjdC0+R2V0KCdTY3JpcHRBbGlhcycpCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJ2luZGV4LnBsP0FjdGlvbj1BZG1pbk9BdXRoVG9rZW5TdG9yZScsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRFcnJvcntPQXV0aEVycm9yfSA9ICRUb2tlbi0+e0Vycm9yfTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiMgRU8gT0F1dGgyCgogICAgICAgICMgQ2hlY2sgcHJveHkgb3B0aW9ucy4KICAgICAgICBpZiAoICRHZXRQYXJhbS0+e1VzZVByb3h5fSAmJiAkR2V0UGFyYW0tPntVc2VQcm94eX0gZXEgJ1llcycgKSB7CgogICAgICAgICAgICAjIEdldCBQcm94eSBzZXR0aW5ncy4KICAgICAgICAgICAgZm9yIG15ICRQYXJhbU5hbWUgKHF3KCBVc2VQcm94eSBQcm94eUhvc3QgUHJveHlVc2VyIFByb3h5UGFzc3dvcmQgUHJveHlFeGNsdWRlICkpIHsKICAgICAgICAgICAgICAgICRUcmFuc3BvcnRDb25maWctPntQcm94eX0tPnskUGFyYW1OYW1lfSA9ICRHZXRQYXJhbS0+eyRQYXJhbU5hbWV9OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIENoZWNrIFNTTCBvcHRpb25zLgogICAgICAgIGlmICggJEdldFBhcmFtLT57VXNlU1NMfSAmJiAkR2V0UGFyYW0tPntVc2VTU0x9IGVxICdZZXMnICkgewoKICAgICAgICAgICAgIyBHZXQgU1NMIGF1dGhlbnRpY2F0aW9uIHNldHRpbmdzLgogICAgICAgICAgICBmb3IgbXkgJFBhcmFtTmFtZSAocXcoIFVzZVNTTCBTU0xQYXNzd29yZCBTU0xWZXJpZnlIb3N0bmFtZSBTU0xWZXJpZnlNb2RlICkpIHsKICAgICAgICAgICAgICAgICRUcmFuc3BvcnRDb25maWctPntTU0x9LT57JFBhcmFtTmFtZX0gPSAkR2V0UGFyYW0tPnskUGFyYW1OYW1lfTsKICAgICAgICAgICAgfQogICAgICAgICAgICBQQVJBTU5BTUU6CiAgICAgICAgICAgIGZvciBteSAkUGFyYW1OYW1lIChxdyggU1NMQ2VydGlmaWNhdGUgU1NMS2V5IFNTTENBRmlsZSBTU0xDQURpciApKSB7CiAgICAgICAgICAgICAgICAkVHJhbnNwb3J0Q29uZmlnLT57U1NMfS0+eyRQYXJhbU5hbWV9ID0gJEdldFBhcmFtLT57JFBhcmFtTmFtZX07CgogICAgICAgICAgICAgICAgIyBDaGVjayBpZiBmaWxlL2RpcmVjdG9yeSBleGlzdHMgYW5kIGlzIGFjY2Vzc2libGUuCiAgICAgICAgICAgICAgICBuZXh0IFBBUkFNTkFNRSBpZiAhJEdldFBhcmFtLT57JFBhcmFtTmFtZX07CiAgICAgICAgICAgICAgICBpZiAoICRQYXJhbU5hbWUgZXEgJ1NTTENBRGlyJyApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IFBBUkFNTkFNRSBpZiAtZCAkR2V0UGFyYW0tPnskUGFyYW1OYW1lfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIG5leHQgUEFSQU1OQU1FIGlmIC1mICRHZXRQYXJhbS0+eyRQYXJhbU5hbWV9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJEVycm9yeyAkUGFyYW1OYW1lIC4gJ1NlcnZlckVycm9yJyB9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3J7ICRQYXJhbU5hbWUgLiAnU2VydmVyRXJyb3JNZXNzYWdlJyB9ID0gVHJhbnNsYXRhYmxlKCdGaWxlIG9yIERpcmVjdG9yeSBub3QgZm91bmQuJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG15ICRJbnZva2VycyA9ICRXZWJzZXJ2aWNlRGF0YS0+e0NvbmZpZ30tPnskQ29tbXVuaWNhdGlvblR5cGV9LT57SW52b2tlcn07CgogICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoJEludm9rZXJzKSApIHsKCiAgICAgICAgICAgIElOVk9LRVI6CiAgICAgICAgICAgIGZvciBteSAkQ3VycmVudEludm9rZXIgKCBzb3J0IGtleXMgJXskSW52b2tlcnN9ICkgewoKICAgICAgICAgICAgICAgIG15ICRDb250cm9sbGVyID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSgKICAgICAgICAgICAgICAgICAgICBQYXJhbSA9PiAnSW52b2tlckNvbnRyb2xsZXJNYXBwaW5nJyAuICRDdXJyZW50SW52b2tlciwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgaWYgKCAhJENvbnRyb2xsZXIgKSB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yeyAnSW52b2tlckNvbnRyb2xsZXJNYXBwaW5nJyAuICRDdXJyZW50SW52b2tlciAuICdTZXJ2ZXJFcnJvcicgfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yewogICAgICAgICAgICAgICAgICAgICAgICAnSW52b2tlckNvbnRyb2xsZXJNYXBwaW5nJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ3VycmVudEludm9rZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJ1NlcnZlckVycm9yTWVzc2FnZScKICAgICAgICAgICAgICAgICAgICB9ID0gVHJhbnNsYXRhYmxlKCdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJyk7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBJTlZPS0VSOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRUcmFuc3BvcnRDb25maWctPntJbnZva2VyQ29udHJvbGxlck1hcHBpbmd9LT57JEN1cnJlbnRJbnZva2VyfS0+e0NvbnRyb2xsZXJ9ID0gJENvbnRyb2xsZXI7CgogICAgICAgICAgICAgICAgbXkgJENvbW1hbmQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKAogICAgICAgICAgICAgICAgICAgIFBhcmFtID0+ICdDb21tYW5kJyAuICRDdXJyZW50SW52b2tlcgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIG5leHQgSU5WT0tFUiBpZiAhJENvbW1hbmQ7CgogICAgICAgICAgICAgICAgJFRyYW5zcG9ydENvbmZpZy0+e0ludm9rZXJDb250cm9sbGVyTWFwcGluZ30tPnskQ3VycmVudEludm9rZXJ9LT57Q29tbWFuZH0gPSAkQ29tbWFuZDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIEdldCBwcm92aWRlciBzcGVjaWZpYyBzZXR0aW5ncy4KICAgIGVsc2UgewoKICAgICAgICBORUVERUQ6CiAgICAgICAgZm9yIG15ICROZWVkZWQgKHF3KCBNYXhMZW5ndGggS2VlcEFsaXZlICkpIHsKICAgICAgICAgICAgJFRyYW5zcG9ydENvbmZpZy0+eyROZWVkZWR9ID0gJEdldFBhcmFtLT57JE5lZWRlZH07CiAgICAgICAgICAgIG5leHQgTkVFREVEIGlmIGRlZmluZWQgJEdldFBhcmFtLT57JE5lZWRlZH07CgogICAgICAgICAgICAkRXJyb3J7ICROZWVkZWQgLiAnU2VydmVyRXJyb3InIH0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yeyAkTmVlZGVkIC4gJ1NlcnZlckVycm9yTWVzc2FnZScgfSA9IFRyYW5zbGF0YWJsZSgnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCcpOwogICAgICAgIH0KCiAgICAgICAgIyBTZXQgZXJyb3IgZm9yIG5vbiBpbnRlZ2VyIGNvbnRlbnQuCiAgICAgICAgaWYgKCAkR2V0UGFyYW0tPntNYXhMZW5ndGh9ICYmICFJc0ludGVnZXIoICRHZXRQYXJhbS0+e01heExlbmd0aH0gKSApIHsKICAgICAgICAgICAgJEVycm9ye01heExlbmd0aFNlcnZlckVycm9yfSAgICAgICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3J7TWF4TGVuZ3RoU2VydmVyRXJyb3JNZXNzYWdlfSA9IFRyYW5zbGF0YWJsZSgnVGhpcyBmaWVsZCBzaG91bGQgYmUgYW4gaW50ZWdlci4nKTsKICAgICAgICB9CgogICAgICAgIG15ICRPcGVyYXRpb25zID0gJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfS0+eyRDb21tdW5pY2F0aW9uVHlwZX0tPntPcGVyYXRpb259OwoKICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCRPcGVyYXRpb25zKSApIHsKCiAgICAgICAgICAgIE9QRVJBVElPTjoKICAgICAgICAgICAgZm9yIG15ICRDdXJyZW50T3BlcmF0aW9uICggc29ydCBrZXlzICV7JE9wZXJhdGlvbnN9ICkgewoKICAgICAgICAgICAgICAgIG15ICRSb3V0ZSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oCiAgICAgICAgICAgICAgICAgICAgUGFyYW0gPT4gJ1JvdXRlT3BlcmF0aW9uTWFwcGluZycgLiAkQ3VycmVudE9wZXJhdGlvbiwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgaWYgKCAhJFJvdXRlICkgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnsgJ1JvdXRlT3BlcmF0aW9uTWFwcGluZycgLiAkQ3VycmVudE9wZXJhdGlvbiAuICdTZXJ2ZXJFcnJvcicgfSAgICAgICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgICRFcnJvcnsgJ1JvdXRlT3BlcmF0aW9uTWFwcGluZycgLiAkQ3VycmVudE9wZXJhdGlvbiAuICdTZXJ2ZXJFcnJvck1lc3NhZ2UnIH0gPSBUcmFuc2xhdGFibGUoJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQnKTsKICAgICAgICAgICAgICAgICAgICBuZXh0IE9QRVJBVElPTjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkVHJhbnNwb3J0Q29uZmlnLT57Um91dGVPcGVyYXRpb25NYXBwaW5nfS0+eyRDdXJyZW50T3BlcmF0aW9ufS0+e1JvdXRlfSA9ICRSb3V0ZTsKCiAgICAgICAgICAgICAgICBteSBAUmVxdWVzdE1ldGhvZCA9ICRQYXJhbU9iamVjdC0+R2V0QXJyYXkoCiAgICAgICAgICAgICAgICAgICAgUGFyYW0gPT4gJ1JlcXVlc3RNZXRob2QnIC4gJEN1cnJlbnRPcGVyYXRpb24sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgbmV4dCBPUEVSQVRJT04gaWYgIXNjYWxhciBAUmVxdWVzdE1ldGhvZDsKCiAgICAgICAgICAgICAgICAkVHJhbnNwb3J0Q29uZmlnLT57Um91dGVPcGVyYXRpb25NYXBwaW5nfS0+eyRDdXJyZW50T3BlcmF0aW9ufS0+e1JlcXVlc3RNZXRob2R9ID0gXEBSZXF1ZXN0TWV0aG9kOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIEdldCBhZGRpdGlvbmFsIGhlYWRlcnMuCiAgICAgICAgJFRyYW5zcG9ydENvbmZpZy0+e0FkZGl0aW9uYWxIZWFkZXJzfSA9ICRTZWxmLT5fR2V0QWRkaXRpb25hbEhlYWRlcnMoKTsKICAgIH0KCiAgICBteSAkT3BlcmF0aW9uVHlwZSA9ICRDb21tdW5pY2F0aW9uVHlwZSBlcSAnUmVxdWVzdGVyJyA/ICdJbnZva2VyJyA6ICdPcGVyYXRpb24nOwoKICAgICMgR2V0IG9wZXJhdGlvbnMgd2l0aCAocG90ZW50aWFsKSBzcGVjaWZpYyBoZWFkZXJzLgogICAgbXkgQE9wZXJhdGlvbk91dGJvdW5kSGVhZGVycyA9ICRQYXJhbU9iamVjdC0+R2V0QXJyYXkoIFBhcmFtID0+ICdPcGVyYXRpb25PdXRib3VuZEhlYWRlcnNBY3RpdmUnICk7CgogICAgIyBDcmVhdGUgbG9va3VwIGZvciBNRDUgb3BlcmF0aW9uIG5hbWVzLgogICAgbXkgJU9wZXJhdGlvbk1ENUxvb2t1cDsKICAgIG15ICRNYWluT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKTsKICAgIGZvciBteSAkT3BlcmF0aW9uICggc29ydCBrZXlzICV7ICRXZWJzZXJ2aWNlRGF0YS0+e0NvbmZpZ317JENvbW11bmljYXRpb25UeXBlfXskT3BlcmF0aW9uVHlwZX0gLy8ge30gfSApIHsKICAgICAgICBteSAkT3BlcmF0aW9uTUQ1ID0gJE1haW5PYmplY3QtPk1ENXN1bSgKICAgICAgICAgICAgU3RyaW5nID0+IFwkT3BlcmF0aW9uLAogICAgICAgICk7CiAgICAgICAgJE9wZXJhdGlvbk1ENUxvb2t1cHskT3BlcmF0aW9uTUQ1fSA9ICRPcGVyYXRpb247CiAgICB9CgogICAgIyBHZXQgY29tbW9uIGFuZCBvcGVyYXRpb24gc3BlY2lmaWMgaGVhZGVycy4KICAgIG15IEBIZWFkZXJCbGFja2xpc3QgPSBAeyAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoICdHZW5lcmljSW50ZXJmYWNlOjonIC4gJE9wZXJhdGlvblR5cGUgLiAnOjpPdXRib3VuZEhlYWRlckJsYWNrbGlzdCcgKSAvLyBbXSB9OwoKICAgIG15ICVFcnJvckhlYWRlcnM7CiAgICBteSAlSGVhZGVyczsKICAgIE9QRVJBVElPTjoKICAgIGZvciBteSAkT3BlcmF0aW9uICggJycsIEBPcGVyYXRpb25PdXRib3VuZEhlYWRlcnMgKSB7CgogICAgICAgIG15ICRWYWx1ZUNvdW50ZXIgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKAogICAgICAgICAgICBQYXJhbSA9PiAnT3V0Ym91bmRIZWFkZXJzJyAuICRPcGVyYXRpb24gLiAnVmFsdWVDb3VudGVyJwogICAgICAgICk7CgogICAgICAgIG5leHQgT1BFUkFUSU9OIGlmICEkVmFsdWVDb3VudGVyOwoKICAgICAgICBteSAlVXNlZEtleXM7CiAgICAgICAgbXkgJEVycm9yVmFsdWVDb3VudGVyID0gMDsKICAgICAgICBJTkRFWDoKICAgICAgICBmb3IgbXkgJEluZGV4ICggMSAuLiAkVmFsdWVDb3VudGVyICkgewoKICAgICAgICAgICAgbXkgJEtleVBhcmFtICAgPSAnT3V0Ym91bmRIZWFkZXJzJyAuICRPcGVyYXRpb24gLiAnS2V5XycgLiAkSW5kZXg7CiAgICAgICAgICAgIG15ICRWYWx1ZVBhcmFtID0gJ091dGJvdW5kSGVhZGVycycgLiAkT3BlcmF0aW9uIC4gJ1ZhbHVlXycgLiAkSW5kZXg7CgogICAgICAgICAgICAjIFNraXAgZGVsZXRlZCBlbnRyaWVzLgogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAhZGVmaW5lZCAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkS2V5UGFyYW0gKQogICAgICAgICAgICAgICAgJiYgIWRlZmluZWQgJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFZhbHVlUGFyYW0gKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuZXh0IElOREVYOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgKyskRXJyb3JWYWx1ZUNvdW50ZXI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRLZXlFcnJvclBhcmFtICAgPSAnT3V0Ym91bmRIZWFkZXJzJyAuICRPcGVyYXRpb24gLiAnS2V5XycgLiAkRXJyb3JWYWx1ZUNvdW50ZXI7CiAgICAgICAgICAgIG15ICRWYWx1ZUVycm9yUGFyYW0gPSAnT3V0Ym91bmRIZWFkZXJzJyAuICRPcGVyYXRpb24gLiAnVmFsdWVfJyAuICRFcnJvclZhbHVlQ291bnRlcjsKICAgICAgICAgICAgbXkgJEtleSAgICAgICAgICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRLZXlQYXJhbSApICAgLy8gJyc7CiAgICAgICAgICAgIG15ICRWYWx1ZSAgICAgICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkVmFsdWVQYXJhbSApIC8vICcnOwoKICAgICAgICAgICAgIyBSZW1lbWJlciB2YWx1ZXMgZm9yIGVkaXQgc2NyZWVuIChpbiBjYXNlIG9mIGVycm9ycykuCiAgICAgICAgICAgIGlmICgkT3BlcmF0aW9uKSB7CiAgICAgICAgICAgICAgICBwdXNoIEB7ICRFcnJvckhlYWRlcnN7U3BlY2lmaWN9eyRPcGVyYXRpb259IH0sCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBLZXkgICA9PiAkS2V5LAogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVmFsdWUsCiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHB1c2ggQHsgJEVycm9ySGVhZGVyc3tDb21tb259IH0sCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBLZXkgICA9PiAkS2V5LAogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVmFsdWUsCiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBEdXBsaWNhdGUga2V5IGRldGVjdGlvbi4KICAgICAgICAgICAgaWYgKCRLZXkpIHsKICAgICAgICAgICAgICAgIGlmICggJFVzZWRLZXlzeyRLZXl9ICkgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnsgJEtleUVycm9yUGFyYW0gLiAnU2VydmVyRXJyb3InIH0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICAkRXJyb3J7ICRLZXlFcnJvclBhcmFtIC4gJ1NlcnZlckVycm9yTWVzc2FnZScgfSA9IFRyYW5zbGF0YWJsZSgnVGhpcyBrZXkgaXMgYWxyZWFkeSB1c2VkJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoIGdyZXAgeyAkXyBlcSAkS2V5IH0gQEhlYWRlckJsYWNrbGlzdCApIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3J7ICRLZXlFcnJvclBhcmFtIC4gJ1NlcnZlckVycm9yJyB9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yeyAkS2V5RXJyb3JQYXJhbSAuICdTZXJ2ZXJFcnJvck1lc3NhZ2UnIH0gPSBUcmFuc2xhdGFibGUoJ1RoaXMga2V5IGlzIG5vdCBhbGxvd2VkJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkVXNlZEtleXN7JEtleX0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIEVtcHR5IGtleS4KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkRXJyb3J7ICRLZXlFcnJvclBhcmFtIC4gJ1NlcnZlckVycm9yJyB9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3J7ICRLZXlFcnJvclBhcmFtIC4gJ1NlcnZlckVycm9yTWVzc2FnZScgfSA9IFRyYW5zbGF0YWJsZSgnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCcpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoICFJc1N0cmluZ1dpdGhEYXRhKCRWYWx1ZSkgKSB7CiAgICAgICAgICAgICAgICAkRXJyb3J7ICRWYWx1ZUVycm9yUGFyYW0gLiAnU2VydmVyRXJyb3InIH0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICRFcnJvcnsgJFZhbHVlRXJyb3JQYXJhbSAuICdTZXJ2ZXJFcnJvck1lc3NhZ2UnIH0gPSBUcmFuc2xhdGFibGUoJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQnKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbmV4dCBJTkRFWAogICAgICAgICAgICAgICAgaWYgJEVycm9yeyAkS2V5RXJyb3JQYXJhbSAuICdTZXJ2ZXJFcnJvcicgfQogICAgICAgICAgICAgICAgfHwgJEVycm9yeyAkVmFsdWVFcnJvclBhcmFtIC4gJ1NlcnZlckVycm9yJyB9OwoKICAgICAgICAgICAgIyBPcGVyYXRpb24gc3BlY2lmaWMgaGVhZGVyCiAgICAgICAgICAgIGlmICgkT3BlcmF0aW9uKSB7CiAgICAgICAgICAgICAgICAkSGVhZGVyc3tTcGVjaWZpY317ICRPcGVyYXRpb25NRDVMb29rdXB7JE9wZXJhdGlvbn0gfS0+eyRLZXl9ID0gJFZhbHVlOwogICAgICAgICAgICAgICAgbmV4dCBJTkRFWDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBDb21tb24gaGVhZGVycwogICAgICAgICAgICAkSGVhZGVyc3tDb21tb259eyRLZXl9ID0gJFZhbHVlOwogICAgICAgIH0KICAgIH0KICAgICRUcmFuc3BvcnRDb25maWctPntPdXRib3VuZEhlYWRlcnN9ID0gXCVIZWFkZXJzOwoKICAgICMgU2V0IG5ldyBjb25maWd1cmF0aW9uLgogICAgJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfXskQ29tbXVuaWNhdGlvblR5cGV9e1RyYW5zcG9ydH17Q29uZmlnfSA9ICRUcmFuc3BvcnRDb25maWc7CgogICAgIyBJZiB0aGVyZSBpcyBhbiBlcnJvciByZXR1cm4gdG8gZWRpdCBzY3JlZW4uCiAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCBcJUVycm9yICkgKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT5fU2hvd0VkaXQoCiAgICAgICAgICAgICVFcnJvciwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBXZWJzZXJ2aWNlSUQgICAgICA9PiAkV2Vic2VydmljZUlELAogICAgICAgICAgICBXZWJzZXJ2aWNlRGF0YSAgICA9PiAkV2Vic2VydmljZURhdGEsCiAgICAgICAgICAgIENvbW11bmljYXRpb25UeXBlID0+ICRDb21tdW5pY2F0aW9uVHlwZSwKICAgICAgICAgICAgQWN0aW9uICAgICAgICAgICAgPT4gJ0NoYW5nZScsCgojIFJvdGhlciBPU1MgLyBPQXV0aDIKICAgICAgICAgICAgT3V0cHV0ICAgICAgID0+ICRPdXRwdXQsCiAgICAgICAgICAgIExheW91dE9iamVjdCA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKCiMgRU8gLyBPQXV0aDIKICAgICAgICApOwogICAgfQoKICAgICMgT3RoZXJ3aXNlIHNhdmUgY29uZmlndXJhdGlvbiBhbmQgcmV0dXJuIHRvIG92ZXJ2aWV3IHNjcmVlbi4KICAgIG15ICRTdWNjZXNzID0gJFdlYnNlcnZpY2VPYmplY3QtPldlYnNlcnZpY2VVcGRhdGUoCiAgICAgICAgSUQgICAgICA9PiAkV2Vic2VydmljZUlELAogICAgICAgIE5hbWUgICAgPT4gJFdlYnNlcnZpY2VEYXRhLT57TmFtZX0sCiAgICAgICAgQ29uZmlnICA9PiAkV2Vic2VydmljZURhdGEtPntDb25maWd9LAogICAgICAgIFZhbGlkSUQgPT4gJFdlYnNlcnZpY2VEYXRhLT57VmFsaWRJRH0sCiAgICAgICAgVXNlcklEICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgSWYgdGhlIHVzZXIgd291bGQgbGlrZSB0byBjb250aW51ZSBlZGl0aW5nIHRoZSB0cmFuc3BvcnQgY29uZmlnLCBqdXN0IHJlZGlyZWN0IHRvIHRoZSBlZGl0IHNjcmVlbi4KICAgIGlmICgKICAgICAgICBkZWZpbmVkICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdDb250aW51ZUFmdGVyU2F2ZScgKQogICAgICAgICYmICggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0NvbnRpbnVlQWZ0ZXJTYXZlJyApIGVxICcxJyApCiAgICAgICAgKQogICAgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4KICAgICAgICAgICAgICAgICJBY3Rpb249JFNlbGYtPntBY3Rpb259O1N1YmFjdGlvbj1DaGFuZ2U7V2Vic2VydmljZUlEPSRXZWJzZXJ2aWNlSUQ7Q29tbXVuaWNhdGlvblR5cGU9JENvbW11bmljYXRpb25UeXBlOyIsCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIE90aGVyd2lzZSByZXR1cm4gdG8gb3ZlcnZpZXcuCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICBPUCA9PiAiQWN0aW9uPUFkbWluR2VuZXJpY0ludGVyZmFjZVdlYnNlcnZpY2U7U3ViYWN0aW9uPUNoYW5nZTtXZWJzZXJ2aWNlSUQ9JFdlYnNlcnZpY2VJRDsiLAogICAgICAgICk7CiAgICB9Cn0KCnN1YiBfU2hvd0VkaXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiMgUm90aGVyIE9TUyAvIE9BdXRoMgojICAgIG15ICRMYXlvdXRPYmplY3QgPSAkUGFyYW17TGF5b3V0T2JqZWN0fTsKIwojICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKIyAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKCiAgICBteSAkT3V0cHV0ICAgICAgID0gJFBhcmFte091dHB1dH07CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJFBhcmFte0NvbmZpZ09iamVjdH07CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJFBhcmFte0xheW91dE9iamVjdH07CiMgRU8gLyBPQXV0aDIKCiAgICAkUGFyYW17VHlwZX0gICAgICAgICAgID0gJ0hUVFA6OlJFU1QnOwogICAgJFBhcmFte1dlYnNlcnZpY2VOYW1lfSA9ICRQYXJhbXtXZWJzZXJ2aWNlRGF0YX0tPntOYW1lfTsKICAgIG15ICRUcmFuc3BvcnRDb25maWcgPSAkUGFyYW17V2Vic2VydmljZURhdGF9LT57Q29uZmlnfS0+eyAkUGFyYW17Q29tbXVuaWNhdGlvblR5cGV9IH0tPntUcmFuc3BvcnR9LT57Q29uZmlnfTsKCiAgICAjIEV4dHJhY3QgZGlzcGxheSBwYXJhbWV0ZXJzIGZyb20gdHJhbnNwb3J0IGNvbmZpZy4KICAgIGZvciBteSAkUGFyYW1OYW1lICgKICAgICAgICBxdygKICAgICAgICAgICAgSG9zdCBEZWZhdWx0Q29tbWFuZCBLZWVwQWxpdmUgTWF4TGVuZ3RoIFRpbWVvdXQKICAgICAgICAgICAgQWRkaXRpb25hbEhlYWRlcnMKICAgICAgICApCiAgICAgICAgKQogICAgewogICAgICAgICRQYXJhbXskUGFyYW1OYW1lfSA9ICRUcmFuc3BvcnRDb25maWctPnskUGFyYW1OYW1lfTsKICAgIH0KCiMgUm90aGVyIE9TUyAvIE9BdXRoMgojICAgIGZvciBteSAkUGFyYW1OYW1lIChxdyggQXV0aFR5cGUgQmFzaWNBdXRoVXNlciBCYXNpY0F1dGhQYXNzd29yZCBLZXJiZXJvc1VzZXIgS2VyYmVyb3NLZXl0YWIpKSB7CiAgICBmb3IgbXkgJFBhcmFtTmFtZSAocXcoIEF1dGhUeXBlIEJhc2ljQXV0aFVzZXIgQmFzaWNBdXRoUGFzc3dvcmQgS2VyYmVyb3NVc2VyIEtlcmJlcm9zS2V5dGFiIE9BdXRoQWNjb3VudE5hbWUpKSB7CiMgRU8gLyBPQXV0aDIKICAgICAgICAkUGFyYW17JFBhcmFtTmFtZX0gPSAkVHJhbnNwb3J0Q29uZmlnLT57QXV0aGVudGljYXRpb259LT57JFBhcmFtTmFtZX07CiAgICB9CiAgICBmb3IgbXkgJFBhcmFtTmFtZSAocXcoIFVzZVNTTCBTU0xDZXJ0aWZpY2F0ZSBTU0xLZXkgU1NMUGFzc3dvcmQgU1NMQ0FGaWxlIFNTTENBRGlyIFNTTFZlcmlmeUhvc3RuYW1lIFNTTFZlcmlmeU1vZGUgKSkgewogICAgICAgICRQYXJhbXskUGFyYW1OYW1lfSA9ICRUcmFuc3BvcnRDb25maWctPntTU0x9LT57JFBhcmFtTmFtZX07CiAgICB9CiAgICBmb3IgbXkgJFBhcmFtTmFtZSAocXcoIFVzZVByb3h5IFByb3h5SG9zdCBQcm94eVVzZXIgUHJveHlQYXNzd29yZCBQcm94eUV4Y2x1ZGUgKSkgewogICAgICAgICRQYXJhbXskUGFyYW1OYW1lfSA9ICRUcmFuc3BvcnRDb25maWctPntQcm94eX0tPnskUGFyYW1OYW1lfTsKICAgIH0KCiAgICBteSBAUG9zc2libGVSZXF1ZXN0TWV0aG9kcyA9IHF3KEdFVCBQT1NUIFBVVCBQQVRDSCBERUxFVEUgSEVBRCBPUFRJT05TIENPTk5FQ1QgVFJBQ0UpOwoKICAgICMgQ2hlY2sgaWYgY29tbXVuaWNhdGlvbiB0eXBlIGlzIHJlcXVlc3Rlci4KICAgIGlmICggJFBhcmFte0NvbW11bmljYXRpb25UeXBlfSBlcSAnUmVxdWVzdGVyJyApIHsKCiAgICAgICAgIyBjcmVhdGUgZGVmYXVsdCBjb21tYW5kIHR5cGVzIHNlbGVjdAogICAgICAgICRQYXJhbXtEZWZhdWx0Q29tbWFuZFN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgIERhdGEgICAgICAgICAgPT4gXEBQb3NzaWJsZVJlcXVlc3RNZXRob2RzLAogICAgICAgICAgICBOYW1lICAgICAgICAgID0+ICdEZWZhdWx0Q29tbWFuZCcsCiAgICAgICAgICAgIFNlbGVjdGVkVmFsdWUgPT4gJFBhcmFte0RlZmF1bHRDb21tYW5kfSB8fCAnR0VUJywKICAgICAgICAgICAgU29ydCAgICAgICAgICA9PiAnQWxwaGFudW1lcmljVmFsdWUnLAogICAgICAgICAgICBDbGFzcyAgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIFRpbWVvdXQgc2VsZWN0LgogICAgICAgICRQYXJhbXtUaW1lb3V0U3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSAgICAgICAgICA9PiBbICczMCcsICc2MCcsICc5MCcsICcxMjAnLCAnMTUwJywgJzE4MCcsICcyMTAnLCAnMjQwJywgJzI3MCcsICczMDAnIF0sCiAgICAgICAgICAgIE5hbWUgICAgICAgICAgPT4gJ1RpbWVvdXQnLAogICAgICAgICAgICBTZWxlY3RlZFZhbHVlID0+ICRQYXJhbXtUaW1lb3V0fSB8fCAnMTIwJywKICAgICAgICAgICAgU29ydCAgICAgICAgICA9PiAnTnVtZXJpY1ZhbHVlJywKICAgICAgICAgICAgQ2xhc3MgICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICApOwoKIyBSb3RoZXIgT1NTIC8gT0F1dGgyCiAgICAgICAgbXkgJEZ1bmN0aW9uYWxBY2NvdW50cyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpGdW5jdGlvbmFsQWNjb3VudHMnKTsKCiAgICAgICAgbXkgQE9BdXRoQWNjb3VudE5hbWVzOwogICAgICAgIG15ICRPQXV0aEFjY291bnRzID0gJEZ1bmN0aW9uYWxBY2NvdW50cy0+R2V0QWNjb3VudHMoKTsKCiAgICAgICAgZm9yIG15ICRBY2NvdW50IChAJE9BdXRoQWNjb3VudHMpIHsKICAgICAgICAgICAgcHVzaCBAT0F1dGhBY2NvdW50TmFtZXMsICRBY2NvdW50LT57TmFtZX07CiAgICAgICAgfQojIEVPIC8gT0F1dGgyCgogICAgICAgICMgQ3JlYXRlIEF1dGhlbnRpY2F0aW9uIHR5cGVzIHNlbGVjdC4KICAgICAgICAkUGFyYW17QXV0aGVudGljYXRpb25TdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAoKIyBSb3RoZXIgT1NTIC8gT0F1dGgyCiMgICAgICAgICAgICBEYXRhICAgICAgICAgID0+IFsgJ0Jhc2ljQXV0aCcsICdLZXJiZXJvcycgXSwKICAgICAgICAgICAgRGF0YSA9PiBbICdCYXNpY0F1dGgnLCAnS2VyYmVyb3MnLCAnT0F1dGgnIF0sCiMgRU8gLyBPQXV0aDIKICAgICAgICAgICAgTmFtZSAgICAgICAgICA9PiAnQXV0aFR5cGUnLAogICAgICAgICAgICBTZWxlY3RlZFZhbHVlID0+ICRQYXJhbXtBdXRoVHlwZX0gfHwgJy0nLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgID0+IDEsCiAgICAgICAgICAgIFNvcnQgICAgICAgICAgPT4gJ0FscGhhbnVtZXJpY1ZhbHVlJywKICAgICAgICAgICAgQ2xhc3MgICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICApOwoKIyBSb3RoZXIgT1NTIC8gT0F1dGgyCiAgICAgICAgJFBhcmFte09BdXRoQWNjb3VudE5hbWVzU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSAgICAgICAgICA9PiBcQE9BdXRoQWNjb3VudE5hbWVzLAogICAgICAgICAgICBOYW1lICAgICAgICAgID0+ICdPQXV0aEFjY291bnROYW1lJywKICAgICAgICAgICAgU2VsZWN0ZWRWYWx1ZSA9PiAkUGFyYW17T0F1dGhBY2NvdW50TmFtZX0gfHwgJE9BdXRoQWNjb3VudE5hbWVzWzBdLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgID0+IDAsCiAgICAgICAgICAgIFNvcnQgICAgICAgICAgPT4gJ0FscGhhbnVtZXJpY1ZhbHVlJywKICAgICAgICAgICAgQ2xhc3MgICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICApOwojIEVPIC8gT0F1dGgyCgogICAgICAgICMgSGlkZSBhbmQgZGlzYWJsZSBhdXRoZW50aWNhdGlvbiBtZXRob2RzIGlmIHRoZXkgYXJlIG5vdCBzZWxlY3RlZC4KICAgICAgICAkUGFyYW17QmFzaWNBdXRoSGlkZGVufSA9ICdIaWRkZW4nOwogICAgICAgICRQYXJhbXtLZXJiZXJvc0hpZGRlbn0gID0gJ0hpZGRlbic7CgojIFJvdGhlciBPU1MgLyBPQXV0aDIKICAgICAgICAkUGFyYW17T0F1dGhIaWRkZW59ID0gJ0hpZGRlbic7CiMgRU8gLyBPQXV0aDIKCiAgICAgICAgaWYgKCAkUGFyYW17QXV0aFR5cGV9ICYmICRQYXJhbXtBdXRoVHlwZX0gZXEgJ0Jhc2ljQXV0aCcgKSB7CiAgICAgICAgICAgICRQYXJhbXtCYXNpY0F1dGhIaWRkZW59ICAgICAgICAgICAgICAgICAgID0gJyc7CiAgICAgICAgICAgICRQYXJhbXtCYXNpY0F1dGhVc2VyU2VydmVyRXJyb3J9ICAgICAgICAgID0gJ1ZhbGlkYXRlX1JlcXVpcmVkJzsKICAgICAgICAgICAgJFBhcmFte0Jhc2ljQXV0aFBhc3N3b3JkVmFsaWRhdGVSZXF1aXJlZH0gPSAnVmFsaWRhdGVfUmVxdWlyZWQnOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRQYXJhbXtBdXRoVHlwZX0gJiYgJFBhcmFte0F1dGhUeXBlfSBlcSAnS2VyYmVyb3MnICkgewogICAgICAgICAgICAkUGFyYW17S2VyYmVyb3NIaWRkZW59ICAgICAgICAgICAgICAgICA9ICcnOwogICAgICAgICAgICAkUGFyYW17S2VyYmVyb3NVc2VyU2VydmVyRXJyb3J9ICAgICAgICA9ICdWYWxpZGF0ZV9SZXF1aXJlZCc7CiAgICAgICAgICAgICRQYXJhbXtLZXJiZXJvc0tleXRhYlZhbGlkYXRlUmVxdWlyZWR9ID0gJ1ZhbGlkYXRlX1JlcXVpcmVkJzsKICAgICAgICB9CgojIFJvdGhlciBPU1MgLyBPQXV0aDIKICAgICAgICBlbHNpZiAoICRQYXJhbXtBdXRoVHlwZX0gJiYgJFBhcmFte0F1dGhUeXBlfSBlcSAnT0F1dGgnICkgewogICAgICAgICAgICAkUGFyYW17T0F1dGhIaWRkZW59ID0gJyc7CiAgICAgICAgfQojIEVPIC8gT0F1dGgyCgogICAgICAgICMgQ3JlYXRlIHVzZSBQcm94eSBzZWxlY3QuCiAgICAgICAgJFBhcmFte1VzZVByb3h5U3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAnTm8nICA9PiBUcmFuc2xhdGFibGUoJ05vJyksCiAgICAgICAgICAgICAgICAnWWVzJyA9PiBUcmFuc2xhdGFibGUoJ1llcycpLAogICAgICAgICAgICB9LAogICAgICAgICAgICBOYW1lICAgICAgICAgID0+ICdVc2VQcm94eScsCiAgICAgICAgICAgIFNlbGVjdGVkVmFsdWUgPT4gJFBhcmFte1VzZVByb3h5fSB8fCBUcmFuc2xhdGFibGUoJ05vJyksCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSAgPT4gMCwKICAgICAgICAgICAgU29ydCAgICAgICAgICA9PiAnQWxwaGFudW1lcmljVmFsdWUnLAogICAgICAgICAgICBDbGFzcyAgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIFByb3h5IGV4Y2x1ZGUgc2VsZWN0LgogICAgICAgICRQYXJhbXtQcm94eUV4Y2x1ZGVTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICdObycgID0+IFRyYW5zbGF0YWJsZSgnTm8nKSwKICAgICAgICAgICAgICAgICdZZXMnID0+IFRyYW5zbGF0YWJsZSgnWWVzJyksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE5hbWUgICAgICAgICAgPT4gJ1Byb3h5RXhjbHVkZScsCiAgICAgICAgICAgIFNlbGVjdGVkVmFsdWUgPT4gJFBhcmFte1Byb3h5RXhjbHVkZX0gfHwgVHJhbnNsYXRhYmxlKCdObycpLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgID0+IDAsCiAgICAgICAgICAgIFNvcnQgICAgICAgICAgPT4gJ0FscGhhbnVtZXJpY1ZhbHVlJywKICAgICAgICAgICAgQ2xhc3MgICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICApOwoKICAgICAgICAjIEhpZGUgYW5kIGRpc2FibGUgUHJveHkgb3B0aW9ucyBpZiB0aGV5IGFyZSBub3Qgc2VsZWN0ZWQuCiAgICAgICAgJFBhcmFte1Byb3h5SGlkZGVufSA9ICdIaWRkZW4nOwogICAgICAgIGlmICggJFBhcmFte1VzZVByb3h5fSAmJiAkUGFyYW17VXNlUHJveHl9IGVxICdZZXMnICkKICAgICAgICB7CiAgICAgICAgICAgICRQYXJhbXtQcm94eUhpZGRlbn0gPSAnJzsKICAgICAgICB9CgogICAgICAgICMgQ3JlYXRlIHVzZSBTU0wgc2VsZWN0LgogICAgICAgICRQYXJhbXtVc2VTU0xTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICdObycgID0+IFRyYW5zbGF0YWJsZSgnTm8nKSwKICAgICAgICAgICAgICAgICdZZXMnID0+IFRyYW5zbGF0YWJsZSgnWWVzJyksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE5hbWUgICAgICAgICAgPT4gJ1VzZVNTTCcsCiAgICAgICAgICAgIFNlbGVjdGVkVmFsdWUgPT4gJFBhcmFte1VzZVNTTH0gfHwgVHJhbnNsYXRhYmxlKCdObycpLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgID0+IDAsCiAgICAgICAgICAgIFNvcnQgICAgICAgICAgPT4gJ0FscGhhbnVtZXJpY1ZhbHVlJywKICAgICAgICAgICAgQ2xhc3MgICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSBub3ZlcmlmeV9ob3N0bmFtZSBzZWxlY3Rpb24uCiAgICAgICAgJFBhcmFte1NTTFZlcmlmeUhvc3RTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICdZZXMnID0+IFRyYW5zbGF0YWJsZSgnWWVzJyksCiAgICAgICAgICAgICAgICAnTm8nICA9PiBUcmFuc2xhdGFibGUoJ05vJyksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE5hbWUgICAgICAgICAgPT4gJ1NTTFZlcmlmeUhvc3RuYW1lJywKICAgICAgICAgICAgU2VsZWN0ZWRWYWx1ZSA9PiAkUGFyYW17U1NMVmVyaWZ5SG9zdG5hbWV9IHx8IFRyYW5zbGF0YWJsZSgnWWVzJyksCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSAgPT4gMCwKICAgICAgICAgICAgU29ydCAgICAgICAgICA9PiAnQWxwaGFudW1lcmljVmFsdWUnLAogICAgICAgICAgICBDbGFzcyAgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIG5vdmVyaWZ5X21vZGUgc2VsZWN0aW9uLgogICAgICAgICRQYXJhbXtTU0xWZXJpZnlNb2RlU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAnWWVzJyA9PiBUcmFuc2xhdGFibGUoJ1llcycpLAogICAgICAgICAgICAgICAgJ05vJyAgPT4gVHJhbnNsYXRhYmxlKCdObycpLAogICAgICAgICAgICB9LAogICAgICAgICAgICBOYW1lICAgICAgICAgID0+ICdTU0xWZXJpZnlNb2RlJywKICAgICAgICAgICAgU2VsZWN0ZWRWYWx1ZSA9PiAkUGFyYW17U1NMVmVyaWZ5TW9kZX0gfHwgVHJhbnNsYXRhYmxlKCdZZXMnKSwKICAgICAgICAgICAgUG9zc2libGVOb25lICA9PiAwLAogICAgICAgICAgICBTb3J0ICAgICAgICAgID0+ICdBbHBoYW51bWVyaWNWYWx1ZScsCiAgICAgICAgICAgIENsYXNzICAgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgKTsKCiAgICAgICAgIyBIaWRlIGFuZCBkaXNhYmxlIFNTTCBvcHRpb25zIGlmIHRoZXkgYXJlIG5vdCBzZWxlY3RlZC4KICAgICAgICAkUGFyYW17U1NMSGlkZGVufSA9ICdIaWRkZW4nOwogICAgICAgIGlmICggJFBhcmFte1VzZVNTTH0gJiYgJFBhcmFte1VzZVNTTH0gZXEgJ1llcycgKQogICAgICAgIHsKICAgICAgICAgICAgJFBhcmFte1NTTEhpZGRlbn0gPSAnJzsKICAgICAgICB9CgogICAgICAgIG15ICRJbnZva2VycyA9ICRQYXJhbXtXZWJzZXJ2aWNlRGF0YX0tPntDb25maWd9LT57ICRQYXJhbXtDb21tdW5pY2F0aW9uVHlwZX0gfS0+e0ludm9rZXJ9OwogICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoJEludm9rZXJzKSApIHsKCiAgICAgICAgICAgIGZvciBteSAkQ3VycmVudEludm9rZXIgKCBzb3J0IGtleXMgJXskSW52b2tlcnN9ICkgewoKICAgICAgICAgICAgICAgIG15ICRDb21tYW5kU3RyZyA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgICAgPT4gXEBQb3NzaWJsZVJlcXVlc3RNZXRob2RzLAogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0NvbW1hbmQnIC4gJEN1cnJlbnRJbnZva2VyLAogICAgICAgICAgICAgICAgICAgIFNlbGVjdGVkVmFsdWUgPT4KICAgICAgICAgICAgICAgICAgICAgICAgJFRyYW5zcG9ydENvbmZpZy0+e0ludm9rZXJDb250cm9sbGVyTWFwcGluZ30tPnskQ3VycmVudEludm9rZXJ9LT57Q29tbWFuZH0KICAgICAgICAgICAgICAgICAgICAgICAgfHwgJy0nLAogICAgICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICAgICAgICAgIFNvcnQgICAgICAgICA9PiAnQWxwaGFudW1lcmljVmFsdWUnLAogICAgICAgICAgICAgICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnSW52b2tlckNvbnRyb2xsZXJNYXBwaW5nJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgSW52b2tlciAgICAgICAgICAgID0+ICRDdXJyZW50SW52b2tlciwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbGxlciAgICAgICAgID0+ICRUcmFuc3BvcnRDb25maWctPntJbnZva2VyQ29udHJvbGxlck1hcHBpbmd9LT57JEN1cnJlbnRJbnZva2VyfS0+e0NvbnRyb2xsZXJ9LAogICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kU3RyZyAgICAgICAgPT4gJENvbW1hbmRTdHJnLAogICAgICAgICAgICAgICAgICAgICAgICBTZXJ2ZXJFcnJvciAgICAgICAgPT4gJFBhcmFteyAnSW52b2tlckNvbnRyb2xsZXJNYXBwaW5nJyAuICRDdXJyZW50SW52b2tlciAuICdTZXJ2ZXJFcnJvcicgfSB8fCAnJywKICAgICAgICAgICAgICAgICAgICAgICAgU2VydmVyRXJyb3JNZXNzYWdlID0+ICRQYXJhbXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdJbnZva2VyQ29udHJvbGxlck1hcHBpbmcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ3VycmVudEludm9rZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICdTZXJ2ZXJFcnJvck1lc3NhZ2UnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAnJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIENoZWNrIGlmIGNvbW11bmljYXRpb24gdHlwZSBpcyByZXF1ZXN0ZXIuCiAgICBlbHNpZiAoICRQYXJhbXtDb21tdW5pY2F0aW9uVHlwZX0gZXEgJ1Byb3ZpZGVyJyApIHsKICAgICAgICBteSAkT3BlcmF0aW9ucyA9ICRQYXJhbXtXZWJzZXJ2aWNlRGF0YX0tPntDb25maWd9LT57ICRQYXJhbXtDb21tdW5pY2F0aW9uVHlwZX0gfS0+e09wZXJhdGlvbn07CiAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSgkT3BlcmF0aW9ucykgKSB7CgogICAgICAgICAgICBmb3IgbXkgJEN1cnJlbnRPcGVyYXRpb24gKCBzb3J0IGtleXMgJXskT3BlcmF0aW9uc30gKSB7CgogICAgICAgICAgICAgICAgbXkgJFJlcXVlc3RNZXRob2RTdHJnID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgICA9PiBcQFBvc3NpYmxlUmVxdWVzdE1ldGhvZHMsCiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICA9PiAnUmVxdWVzdE1ldGhvZCcgLiAkQ3VycmVudE9wZXJhdGlvbiwKICAgICAgICAgICAgICAgICAgICBTZWxlY3RlZFZhbHVlID0+ICRUcmFuc3BvcnRDb25maWctPntSb3V0ZU9wZXJhdGlvbk1hcHBpbmd9LT57JEN1cnJlbnRPcGVyYXRpb259LT57UmVxdWVzdE1ldGhvZH0KICAgICAgICAgICAgICAgICAgICAgICAgfHwgWyctJ10sCiAgICAgICAgICAgICAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgICAgICAgICAgICAgTXVsdGlwbGUgICAgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgU29ydCAgICAgICAgID0+ICdBbHBoYW51bWVyaWNWYWx1ZScsCiAgICAgICAgICAgICAgICAgICAgQ2xhc3MgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSb3V0ZU9wZXJhdGlvbk1hcHBpbmcnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb24gICAgICAgICAgPT4gJEN1cnJlbnRPcGVyYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgIFJvdXRlICAgICAgICAgICAgICA9PiAkVHJhbnNwb3J0Q29uZmlnLT57Um91dGVPcGVyYXRpb25NYXBwaW5nfS0+eyRDdXJyZW50T3BlcmF0aW9ufS0+e1JvdXRlfSwKICAgICAgICAgICAgICAgICAgICAgICAgUmVxdWVzdE1ldGhvZFN0cmcgID0+ICRSZXF1ZXN0TWV0aG9kU3RyZywKICAgICAgICAgICAgICAgICAgICAgICAgU2VydmVyRXJyb3IgICAgICAgID0+ICRQYXJhbXsgJ1JvdXRlT3BlcmF0aW9uTWFwcGluZycgLiAkQ3VycmVudE9wZXJhdGlvbiAuICdTZXJ2ZXJFcnJvcicgfSB8fCAnJywKICAgICAgICAgICAgICAgICAgICAgICAgU2VydmVyRXJyb3JNZXNzYWdlID0+ICRQYXJhbXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSb3V0ZU9wZXJhdGlvbk1hcHBpbmcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkQ3VycmVudE9wZXJhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJ1NlcnZlckVycm9yTWVzc2FnZScKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICcnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkUGFyYW17S2VlcEFsaXZlU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAwID0+IFRyYW5zbGF0YWJsZSgnTm8nKSwKICAgICAgICAgICAgICAgIDEgPT4gVHJhbnNsYXRhYmxlKCdZZXMnKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdLZWVwQWxpdmUnLAogICAgICAgICAgICBTZWxlY3RlZElEICAgPT4gJFBhcmFte0tlZXBBbGl2ZX0gfHwgMCwKICAgICAgICAgICAgUG9zc2libGVOb25lID0+IDAsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uICA9PiAxLAogICAgICAgICAgICBDbGFzcyAgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIENvbW1vbiBwYXJhbXMgZmlyc3QuCiAgICBteSBAQ29tbW9uSGVhZGVyczsKICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17RXJyb3JIZWFkZXJzfXtDb21tb259ICkgKSB7CiAgICAgICAgQENvbW1vbkhlYWRlcnMgPSBAeyAkUGFyYW17RXJyb3JIZWFkZXJzfXtDb21tb259IH07CiAgICB9CgogICAgIyBGYWxsYmFjayBmb3IgcHJldmlvdXNseSB1c2VkICdhZGRpdGlvbmFsIHJlc3BvbnNlIGhlYWRlcnMnLgogICAgZWxzaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJFRyYW5zcG9ydENvbmZpZy0+e0FkZGl0aW9uYWxIZWFkZXJzfSApICkgewogICAgICAgIEBDb21tb25IZWFkZXJzID0gbWFwIHsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJF8sCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVHJhbnNwb3J0Q29uZmlnLT57QWRkaXRpb25hbEhlYWRlcnN9eyRffQogICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc29ydCBrZXlzICV7ICRUcmFuc3BvcnRDb25maWctPntBZGRpdGlvbmFsSGVhZGVyc30gfTsKICAgIH0KICAgIGVsc2lmICgKICAgICAgICBJc0hhc2hSZWZXaXRoRGF0YSggJFRyYW5zcG9ydENvbmZpZy0+e091dGJvdW5kSGVhZGVyc317Q29tbW9ufSApCiAgICAgICAgKQogICAgewogICAgICAgIEBDb21tb25IZWFkZXJzID0gbWFwIHsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJF8sCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVHJhbnNwb3J0Q29uZmlnLT57T3V0Ym91bmRIZWFkZXJzfXtDb21tb259eyRffQogICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc29ydCBrZXlzICV7ICRUcmFuc3BvcnRDb25maWctPntPdXRib3VuZEhlYWRlcnN9e0NvbW1vbn0gfTsKICAgIH0KCiAgICAkUGFyYW17T3V0Ym91bmRIZWFkZXJzVmFsdWVDb3VudGVyfSA9CiAgICAgICAgQENvbW1vbkhlYWRlcnMgPyBzY2FsYXIgQENvbW1vbkhlYWRlcnMgOiAwOwoKICAgICMgR2VuZXJhdGUgcGFyYW1zIGZvciBvdXRib3VuZCBoZWFkZXJzLgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3V0Ym91bmRIZWFkZXJzJywKICAgICAgICBEYXRhID0+IHsgJVBhcmFtLCB9LAogICAgKTsKCiAgICBpZiAoQENvbW1vbkhlYWRlcnMpIHsKICAgICAgICBteSAkVmFsdWVDb3VudGVyID0gMDsKCiAgICAgICAgZm9yIG15ICRSb3cgKEBDb21tb25IZWFkZXJzKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnT3V0Ym91bmRIZWFkZXJzVmFsdWVSb3cnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgIEtleSAgICAgICAgICA9PiAkUm93LT57S2V5fSwKICAgICAgICAgICAgICAgICAgICBWYWx1ZUNvdW50ZXIgPT4gKyskVmFsdWVDb3VudGVyLAogICAgICAgICAgICAgICAgICAgIFZhbHVlICAgICAgICA9PiAkUm93LT57VmFsdWV9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgfQoKICAgICMgTm93IG9wZXJhdGlvbiBzcGVjaWZpYyBoZWFkZXJzLgogICAgbXkgJE9wZXJhdGlvbnNGb3JPdXRib3VuZEhlYWRlcnM7CiAgICBpZiAoICRQYXJhbXtDb21tdW5pY2F0aW9uVHlwZX0gZXEgJ1JlcXVlc3RlcicgKSB7CiAgICAgICAgJE9wZXJhdGlvbnNGb3JPdXRib3VuZEhlYWRlcnMgPQogICAgICAgICAgICAkUGFyYW17V2Vic2VydmljZURhdGF9e0NvbmZpZ317UmVxdWVzdGVyfXtJbnZva2VyfTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRPcGVyYXRpb25zRm9yT3V0Ym91bmRIZWFkZXJzID0KICAgICAgICAgICAgJFBhcmFte1dlYnNlcnZpY2VEYXRhfXtDb25maWd9e1Byb3ZpZGVyfXtPcGVyYXRpb259OwogICAgfQoKICAgIG15ICVTcGVjaWZpY0hlYWRlcnM7CiAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkUGFyYW17RXJyb3JIZWFkZXJzfXtTcGVjaWZpY30gKSApIHsKICAgICAgICAlU3BlY2lmaWNIZWFkZXJzID0gJXsgJFBhcmFte0Vycm9ySGVhZGVyc317U3BlY2lmaWN9IH07CiAgICB9CiAgICBlbHNpZiAoCiAgICAgICAgSXNIYXNoUmVmV2l0aERhdGEoICRUcmFuc3BvcnRDb25maWctPntPdXRib3VuZEhlYWRlcnN9e1NwZWNpZmljfSApCiAgICAgICAgKQogICAgewogICAgICAgIGZvciBteSAkT3BlcmF0aW9uICgKICAgICAgICAgICAgc29ydCBrZXlzICV7ICRUcmFuc3BvcnRDb25maWctPntPdXRib3VuZEhlYWRlcnN9e1NwZWNpZmljfSB9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRTcGVjaWZpY0hlYWRlcnN7JE9wZXJhdGlvbn0gPSBbCiAgICAgICAgICAgICAgICBtYXAgewogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgS2V5ICAgPT4gJF8sCiAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICRUcmFuc3BvcnRDb25maWctPntPdXRib3VuZEhlYWRlcnN9e1NwZWNpZmljfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeyRPcGVyYXRpb259eyRffQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBzb3J0IGtleXMgJXsKICAgICAgICAgICAgICAgICAgICAgICAgJFRyYW5zcG9ydENvbmZpZy0+e091dGJvdW5kSGVhZGVyc317U3BlY2lmaWN9CiAgICAgICAgICAgICAgICAgICAgICAgIHskT3BlcmF0aW9ufQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXTsKICAgICAgICB9CiAgICB9CgogICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSgkT3BlcmF0aW9uc0Zvck91dGJvdW5kSGVhZGVycykgKSB7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdXRib3VuZEhlYWRlcnNPcGVyYXRpb25TcGVjaWZpYycsCiAgICAgICAgICAgIERhdGEgPT4geyAlUGFyYW0sIH0sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJE1haW5PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpOwogICAgICAgIG15IEBTZWxlY3Rpb25EYXRhOwogICAgICAgIE9QRVJBVElPTjoKICAgICAgICBmb3IgbXkgJE9wZXJhdGlvbiAoIHNvcnQga2V5cyAleyRPcGVyYXRpb25zRm9yT3V0Ym91bmRIZWFkZXJzfSApIHsKICAgICAgICAgICAgbXkgJE9wZXJhdGlvbk1ENSA9ICRNYWluT2JqZWN0LT5NRDVzdW0oCiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gXCRPcGVyYXRpb24sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBteSAkSGF2ZU9wZXJhdGlvbkNvbmZpZyA9CiAgICAgICAgICAgICAgICBJc0FycmF5UmVmV2l0aERhdGEoICRTcGVjaWZpY0hlYWRlcnN7JE9wZXJhdGlvbn0gKSA/IDEgOiAwOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdPdXRib3VuZEhlYWRlcnNPcGVyYXRpb25TcGVjaWZpY0VudHJ5JywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvbiA9PiAkT3BlcmF0aW9uTUQ1LAogICAgICAgICAgICAgICAgICAgIEFjdGl2ZSAgICA9PiAkSGF2ZU9wZXJhdGlvbkNvbmZpZwogICAgICAgICAgICAgICAgICAgID8gJ0hlYWRlckNvbnRhaW5lckFjdGl2ZScKICAgICAgICAgICAgICAgICAgICA6ICcnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICggISRIYXZlT3BlcmF0aW9uQ29uZmlnICkgewogICAgICAgICAgICAgICAgcHVzaCBAU2VsZWN0aW9uRGF0YSwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEtleSAgID0+ICRPcGVyYXRpb25NRDUsCiAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICRPcGVyYXRpb24sCiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIG5leHQgT1BFUkFUSU9OOwogICAgICAgICAgICB9CgogICAgICAgICAgICBwdXNoIEBTZWxlY3Rpb25EYXRhLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEtleSAgICAgID0+ICRPcGVyYXRpb25NRDUsCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgICAgPT4gJE9wZXJhdGlvbiwKICAgICAgICAgICAgICAgICAgICBEaXNhYmxlZCA9PiAxLAogICAgICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIG15ICRWYWx1ZXNVc2VkQ291bnQgPSBAeyAkU3BlY2lmaWNIZWFkZXJzeyRPcGVyYXRpb259IH07CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnT3V0Ym91bmRIZWFkZXJzT3BlcmF0aW9uU3BlY2lmaWNFbnRyeVZhbHVlJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvbiAgICAgPT4gJE9wZXJhdGlvbk1ENSwKICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25OYW1lID0+ICRPcGVyYXRpb24sCiAgICAgICAgICAgICAgICAgICAgVmFsdWVDb3VudGVyICA9PiAkVmFsdWVzVXNlZENvdW50LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG15ICRWYWx1ZUNvdW50ZXIgPSAwOwogICAgICAgICAgICBmb3IgbXkgJFJvdyAoIEB7ICRTcGVjaWZpY0hlYWRlcnN7JE9wZXJhdGlvbn0gfSApIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ091dGJvdW5kSGVhZGVyc09wZXJhdGlvblNwZWNpZmljRW50cnlWYWx1ZVJvdycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uICAgID0+ICRPcGVyYXRpb25NRDUsCiAgICAgICAgICAgICAgICAgICAgICAgIEtleSAgICAgICAgICA9PiAkUm93LT57S2V5fSwKICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVDb3VudGVyID0+ICsrJFZhbHVlQ291bnRlciwKICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWUgICAgICAgID0+ICRSb3ctPntWYWx1ZX0sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgR2VuZXJhdGUgbGlzdCBvZiBhdmFpbGFibGUgKHVudXNlZCkgb3BlcmF0aW9ucyBmb3Igb3V0Ym91bmQgaGVhZGVyIHNlbGVjdGlvbi4KICAgICAgICAkUGFyYW17T3V0Ym91bmRIZWFkZXJzT3BlcmF0aW9uU2VsZWN0aW9uU3RyZ30gPQogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcQFNlbGVjdGlvbkRhdGEsCiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJ091dGJvdW5kSGVhZGVyc09wZXJhdGlvblNlbGVjdGlvbicsCiAgICAgICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICAgICAgKTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3V0Ym91bmRIZWFkZXJzT3BlcmF0aW9uU2VsZWN0aW9uJywKICAgICAgICAgICAgRGF0YSA9PiB7ICVQYXJhbSwgfSwKICAgICAgICApOwogICAgfQoKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5HZW5lcmljSW50ZXJmYWNlVHJhbnNwb3J0SFRUUFJFU1QnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7ICVQYXJhbSwgfSwKICAgICk7CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgIHJldHVybiAkT3V0cHV0Owp9CgpzdWIgX0dldFBhcmFtcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICBteSAkR2V0UGFyYW07CgogICAgIyBHZXQgcGFyYW1ldGVycyBmcm9tIHdlYiBicm93c2VyLgogICAgZm9yIG15ICRQYXJhbU5hbWUgKAoKIyBSb3RoZXIgT1NTIC8gT0F1dGgyCiMgICAgICAgIHF3KAojICAgICAgICAgICAgSG9zdCBEZWZhdWx0Q29tbWFuZCBNYXhMZW5ndGggS2VlcEFsaXZlIFRpbWVvdXQKIyAgICAgICAgICAgIEF1dGhUeXBlIENyZWRlbnRpYWxJRCBCYXNpY0F1dGhVc2VyIEJhc2ljQXV0aFBhc3N3b3JkCiMgICAgICAgICAgICBLZXJiZXJvc1VzZXIgS2VyYmVyb3NLZXl0YWIgQmVhcmVyQXV0aFRva2VuIFVzZVByb3h5CiMgICAgICAgICAgICBQcm94eUhvc3QgUHJveHlVc2VyIFByb3h5UGFzc3dvcmQgUHJveHlFeGNsdWRlIFVzZVNTTAojICAgICAgICAgICAgU1NMQ2VydGlmaWNhdGUgU1NMS2V5IFNTTFBhc3N3b3JkIFNTTENBRmlsZSBTU0xDQURpcgojICAgICAgICAgICAgU1NMVmVyaWZ5SG9zdG5hbWUgU1NMVmVyaWZ5TW9kZQojICAgICAgICApCiAgICAgICAgcXcoCiAgICAgICAgICAgIEhvc3QgRGVmYXVsdENvbW1hbmQgTWF4TGVuZ3RoIEtlZXBBbGl2ZSBUaW1lb3V0CiAgICAgICAgICAgIEF1dGhUeXBlIENyZWRlbnRpYWxJRCBCYXNpY0F1dGhVc2VyIEJhc2ljQXV0aFBhc3N3b3JkCiAgICAgICAgICAgIEtlcmJlcm9zVXNlciBLZXJiZXJvc0tleXRhYiBCZWFyZXJBdXRoVG9rZW4gVXNlUHJveHkKICAgICAgICAgICAgUHJveHlIb3N0IFByb3h5VXNlciBQcm94eVBhc3N3b3JkIFByb3h5RXhjbHVkZSBVc2VTU0wKICAgICAgICAgICAgU1NMQ2VydGlmaWNhdGUgU1NMS2V5IFNTTFBhc3N3b3JkIFNTTENBRmlsZSBTU0xDQURpcgogICAgICAgICAgICBTU0xWZXJpZnlIb3N0bmFtZSBTU0xWZXJpZnlNb2RlIE9BdXRoQWNjb3VudE5hbWUKICAgICAgICApCiMgRU8gLyBPQXV0aDIKICAgICAgICApCiAgICB7CiAgICAgICAgJEdldFBhcmFtLT57JFBhcmFtTmFtZX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1OYW1lICkgfHwgJyc7CiAgICB9CiAgICByZXR1cm4gJEdldFBhcmFtOwp9CgpzdWIgX0dldEFkZGl0aW9uYWxIZWFkZXJzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgICMgR2V0IFZhbHVlQ291bnRlcnMuCiAgICBteSAkVmFsdWVDb3VudGVyID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1ZhbHVlQ291bnRlcicgKSB8fCAwOwoKICAgICMgR2V0IHBvc3NpYmxlIHZhbHVlcy4KICAgIG15ICRBZGRpdGlvbmFsSGVhZGVyQ29uZmlnOwogICAgVkFMVUVJTkRFWDoKICAgIGZvciBteSAkVmFsdWVJbmRleCAoIDEgLi4gJFZhbHVlQ291bnRlciApIHsKICAgICAgICBteSAkS2V5ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0tleScgLiAnXycgLiAkVmFsdWVJbmRleCApIC8vICcnOwoKICAgICAgICAjIENoZWNrIGlmIGtleSB3YXMgZGVsZXRlZCBieSB0aGUgdXNlciBhbmQgc2tpcCBpdC4KICAgICAgICBuZXh0IFZBTFVFSU5ERVggaWYgJEtleSBlcSAkU2VsZi0+e0RlbGV0ZWRTdHJpbmd9OwoKICAgICAgICAjIFNraXAgZW1wdHkga2V5LgogICAgICAgIG5leHQgVkFMVUVJTkRFWCBpZiAkS2V5IGVxICcnOwoKICAgICAgICBteSAkVmFsdWUgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVmFsdWUnIC4gJ18nIC4gJFZhbHVlSW5kZXggKSAvLyAnJzsKICAgICAgICAkQWRkaXRpb25hbEhlYWRlckNvbmZpZy0+eyRLZXl9ID0gJFZhbHVlOwogICAgfQoKICAgIHJldHVybiAkQWRkaXRpb25hbEhlYWRlckNvbmZpZzsKfQoKMTsK</File>
        <File Location="Custom/Kernel/Output/HTML/Templates/Standard/AdminGenericInterfaceTransportHTTPREST.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSBkY2ZiMDhjNDQ0MTQzM2Y5OTkyY2QwYTBjNmNhNmUyNDBhYTU2YTQ2IC0gS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbkdlbmVyaWNJbnRlcmZhY2VUcmFuc3BvcnRIVFRQUkVTVC50dAojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QgQWRtaW5HZW5lcmljSW50ZXJmYWNlVHJhbnNwb3J0SFRUUFJFU1QiPgogICAgPGgxIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoICJHZW5lcmljSW50ZXJmYWNlIFdlYiBTZXJ2aWNlIE1hbmFnZW1lbnQiICkgfCBodG1sICVdPC9oMT4KCiAgICBbJSBVU0UgQnJlYWRjcnVtYkxpbmsgPSBTdHJpbmcoICJBZG1pbkdlbmVyaWNJbnRlcmZhY2VXZWJzZXJ2aWNlIiApICVdCiAgICBbJSBVU0UgSFRUUFJFU1ROYW1lICAgPSBTdHJpbmcoIERhdGEuQ29tbXVuaWNhdGlvblR5cGUgKSAlXQoKICAgIFslIEJyZWFkY3J1bWJQYXRoID0gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lID0+IFRyYW5zbGF0ZSggJ1dlYiBTZXJ2aWNlIE1hbmFnZW1lbnQnICksCiAgICAgICAgICAgICAgICBMaW5rID0+IEJyZWFkY3J1bWJMaW5rLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lID0+IERhdGEuV2Vic2VydmljZU5hbWUsCiAgICAgICAgICAgICAgICBMaW5rID0+IEJyZWFkY3J1bWJMaW5rLmNvcHkuYXBwZW5kKCAiO1N1YmFjdGlvbj0iLCBEYXRhLkFjdGlvbiwgIjtXZWJzZXJ2aWNlSUQ9IiwgRGF0YS5XZWJzZXJ2aWNlSUQgKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSA9PiBIVFRQUkVTVE5hbWUuYXBwZW5kKCAiIFRyYW5zcG9ydCAiLCBEYXRhLlR5cGUgKSwKICAgICAgICAgICAgfQogICAgICAgIF0KICAgICVdCgogICAgWyUgSU5DTFVERSAiQnJlYWRjcnVtYi50dCIgUGF0aCA9IEJyZWFkY3J1bWJQYXRoICVdCgogICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbkxpc3QiPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFkbWluR2VuZXJpY0ludGVyZmFjZVdlYnNlcnZpY2U7U3ViYWN0aW9uPUNoYW5nZTtXZWJzZXJ2aWNlSUQ9WyUgRGF0YS5XZWJzZXJ2aWNlSUQgfCB1cmkgJV0iIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT4gWyUgVHJhbnNsYXRlKCJHbyBiYWNrIHRvIHdlYiBzZXJ2aWNlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgoKICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiTmV0d29yayBUcmFuc3BvcnQiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8aDM+WyUgVHJhbnNsYXRlKCJQcm9wZXJ0aWVzIikgfCBodG1sICVdPC9oMz4KICAgICAgICAgICAgICAgIDxmb3JtIGlkPSJUcmFuc3BvcnRDb25maWdGb3JtIiBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJbJSBEYXRhLkFjdGlvbiB8IGh0bWwgJV1BY3Rpb24iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJXZWJzZXJ2aWNlSUQiIHZhbHVlPSJbJSBEYXRhLldlYnNlcnZpY2VJRCB8IGh0bWwgJV0iIGlkPSJXZWJzZXJ2aWNlSUQiLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJDb21tdW5pY2F0aW9uVHlwZSIgdmFsdWU9IlslIERhdGEuQ29tbXVuaWNhdGlvblR5cGUgfCBodG1sICVdIiBpZD0iQ29tbXVuaWNhdGlvblR5cGUiLz4KICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLkFjdGlvbiA9PSAnQ2hhbmdlJyAlXQogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJDb250aW51ZUFmdGVyU2F2ZSIgaWQ9IkNvbnRpbnVlQWZ0ZXJTYXZlIiB2YWx1ZT0iIi8+CiAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iTGF5b3V0R3JpZCBDb2x1bW5zV2l0aFNwYWNpbmciPgogICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiVHlwZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPlslIERhdGEuVHlwZSB8IGh0bWwgJV08L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KClslIElGIERhdGEuQ29tbXVuaWNhdGlvblR5cGUgPT0gJ1Byb3ZpZGVyJyAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUm91dGVPcGVyYXRpb25NYXBwaW5nIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlJvdXRlT3BlcmF0aW9uTWFwcGluZ1slIERhdGEuT3BlcmF0aW9uIHwgaHRtbCAlXSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj5bJSBUcmFuc2xhdGUoIlJvdXRlIG1hcHBpbmcgZm9yIE9wZXJhdGlvbiIpIHwgaHRtbCAlXSAnWyUgRGF0YS5PcGVyYXRpb24gfCBodG1sICVdJzo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iUm91dGVPcGVyYXRpb25NYXBwaW5nWyUgRGF0YS5PcGVyYXRpb24gfCBodG1sICVdIiBjbGFzcz0iVzUwcGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5TZXJ2ZXJFcnJvciB8IGh0bWwgJV0iIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMjUwIiB2YWx1ZT0iWyUgRGF0YS5Sb3V0ZSB8IGh0bWwgJV0iIG5hbWU9IlJvdXRlT3BlcmF0aW9uTWFwcGluZ1slIERhdGEuT3BlcmF0aW9uIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlJvdXRlT3BlcmF0aW9uTWFwcGluZ1slIERhdGEuT3BlcmF0aW9uIHwgaHRtbCAlXUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJSb3V0ZU9wZXJhdGlvbk1hcHBpbmdbJSBEYXRhLk9wZXJhdGlvbiB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZShEYXRhLlNlcnZlckVycm9yTWVzc2FnZSkgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJEZWZpbmUgdGhlIHJvdXRlIHRoYXQgc2hvdWxkIGdldCBtYXBwZWQgdG8gdGhpcyBvcGVyYXRpb24uIFZhcmlhYmxlcyBtYXJrZWQgYnkgYSAnOicgd2lsbCBnZXQgbWFwcGVkIHRvIHRoZSBlbnRlcmVkIG5hbWUgYW5kIHBhc3NlZCBhbG9uZyB3aXRoIHRoZSBvdGhlcnMgdG8gdGhlIG1hcHBpbmcuIChlLmcuIC9UaWNrZXQvOlRpY2tldElEKS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlJlcXVlc3RNZXRob2RbJSBEYXRhLk9wZXJhdGlvbiB8IGh0bWwgJV0iPlslIFRyYW5zbGF0ZSgiVmFsaWQgcmVxdWVzdCBtZXRob2RzIGZvciBPcGVyYXRpb24iKSB8IGh0bWwgJV0gJ1slIERhdGEuT3BlcmF0aW9uIHwgaHRtbCAlXSc6PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlJlcXVlc3RNZXRob2RTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkxpbWl0IHRoaXMgT3BlcmF0aW9uIHRvIHNwZWNpZmljIHJlcXVlc3QgbWV0aG9kcy4gSWYgbm8gbWV0aG9kIGlzIHNlbGVjdGVkIGFsbCByZXF1ZXN0cyB3aWxsIGJlIGFjY2VwdGVkLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUm91dGVPcGVyYXRpb25NYXBwaW5nIikgJV0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJNYXhMZW5ndGgiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+WyUgVHJhbnNsYXRlKCJNYXhpbXVtIG1lc3NhZ2UgbGVuZ3RoIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJNYXhMZW5ndGgiIGNsYXNzPSJXMjVwYyBWYWxpZGF0ZV9SZXF1aXJlZCBWYWxpZGF0ZV9OdW1iZXIgWyUgRGF0YS5NYXhMZW5ndGhTZXJ2ZXJFcnJvciB8IGh0bWwgJV0iIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMTAiIHZhbHVlPSJbJSBEYXRhLk1heExlbmd0aCB8IGh0bWwgJV0iIG5hbWU9Ik1heExlbmd0aCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik1heExlbmd0aEVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIHNob3VsZCBiZSBhbiBpbnRlZ2VyIG51bWJlci4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTWF4TGVuZ3RoU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoRGF0YS5NYXhMZW5ndGhTZXJ2ZXJFcnJvck1lc3NhZ2UpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiSGVyZSB5b3UgY2FuIHNwZWNpZnkgdGhlIG1heGltdW0gc2l6ZSAoaW4gYnl0ZXMpIG9mIFJFU1QgbWVzc2FnZXMgdGhhdCBPVE9CTyB3aWxsIHByb2Nlc3MuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iS2VlcEFsaXZlIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPlslIFRyYW5zbGF0ZSgiU2VuZCBLZWVwLUFsaXZlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5LZWVwQWxpdmVTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iS2VlcEFsaXZlRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgc2hvdWxkIGJlIGFuIGludGVnZXIgbnVtYmVyLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJLZWVwQWxpdmVTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZShEYXRhLk1heExlbmd0aFNlcnZlckVycm9yTWVzc2FnZSkgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGlzIGNvbmZpZ3VyYXRpb24gZGVmaW5lcyBpZiBpbmNvbWluZyBjb25uZWN0aW9ucyBzaG91bGQgZ2V0IGNsb3NlZCBvciBrZXB0IGFsaXZlLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBFTkQgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkFkZGl0aW9uYWxIZWFkZXJzIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiQWRkaXRpb25hbCByZXNwb25zZSBoZWFkZXJzIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFZhbHVlSW5zZXJ0Ij4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJWYWx1ZUNvdW50ZXIiIHZhbHVlPSJbJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iIGlkPSJWYWx1ZUNvdW50ZXIiIGNsYXNzPSJWYWx1ZUNvdW50ZXIiIC8+ClslIFJlbmRlckJsb2NrU3RhcnQoIlZhbHVlUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlZhbHVlUm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbmFtZT0iS2V5X1slIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXSIgaWQ9IktleV9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iIGNsYXNzPSJEZWZhdWx0VmFsdWVLZXlJdGVtIFZhbGlkYXRlX1JlcXVpcmVkIFcyMHBjIFslIERhdGEuS2V5RXJyb3IgfCBodG1sICVdIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjE1MCIgdmFsdWU9IlslIERhdGEuS2V5IHwgaHRtbCAlXSIgc3R5bGU9IndpZHRoOjI1MHB4Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iS2V5X1slIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJLZXlfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoRGF0YS5LZXlFcnJvclN0cmcpIHwgaHRtbCAlXTwvcD48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iVmFsdWVfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPlslIFRyYW5zbGF0ZSgiVmFsdWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbmFtZT0iVmFsdWVfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIiBpZD0iVmFsdWVfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIiBjbGFzcz0iRGVmYXVsdFZhbHVlSXRlbSBWYWxpZGF0ZV9SZXF1aXJlZCBXMjBwYyBbJSBEYXRhLlZhbHVlRXJyb3IgfCBodG1sICVdIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjE1MCIgdmFsdWU9IlslIERhdGEuVmFsdWUgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVmFsdWVfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlZhbHVlX1slIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgaWQ9IlJlbW92ZVZhbHVlX1slIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXSIgY2xhc3M9IlJlbW92ZUJ1dHRvbiBWYWx1ZVJlbW92ZSI+PGkgY2xhc3M9ImZhIGZhLW1pbnVzLXNxdWFyZS1vIj48L2k+PHNwYW4gY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHZhbHVlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTcGFjaW5nVG9wTWluaSIgPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJWYWx1ZVJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJBZGRWYWx1ZSIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gQWRkQnV0dG9uIElubGluZSI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlLW8iPiZuYnNwOzwvaT5bJSBUcmFuc2xhdGUoIkFkZCByZXNwb25zZSBoZWFkZXIiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVmFsdWVUZW1wbGF0ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJWYWx1ZVRlbXBsYXRlIEhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9IktleV9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iIGlkPSJLZXkiIGNsYXNzPSJEZWZhdWx0VmFsdWVLZXlJdGVtIFcyMHBjIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjE1MCIgdmFsdWU9IlslIERhdGEuS2V5IHwgaHRtbCAlXSIgc3R5bGU9IndpZHRoOjI1MHB4Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iS2V5RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IktleVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKERhdGEuS2V5RXJyb3JTdHJnKSB8IGh0bWwgJV08L3A+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlZhbHVlIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPlslIFRyYW5zbGF0ZSgiVmFsdWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbmFtZT0iVmFsdWVfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIiBpZD0iVmFsdWUiIGNsYXNzPSJEZWZhdWx0VmFsdWVJdGVtIFcyMHBjIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjE1MCIgdmFsdWU9IlslIERhdGEuVmFsdWUgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVmFsdWVFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVmFsdWVTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJSZW1vdmVWYWx1ZV9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iIGNsYXNzPSJSZW1vdmVCdXR0b24gVmFsdWVSZW1vdmUiPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSB2YWx1ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcE1pbmkiID48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiVmFsdWVUZW1wbGF0ZSIpICVdCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iRGVsZXRlZFZhbHVlIiB2YWx1ZT0iWyUgRGF0YS5EZWxldGVkU3RyaW5nIHwgaHRtbCAlXSIgaWQ9IkRlbGV0ZWRWYWx1ZSIgY2xhc3M9IkRlbGV0ZWRWYWx1ZSIgLz4KCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJBZGRpdGlvbmFsSGVhZGVycyIpICVdCgojIHJlcXVlc3RlciBzcGVjaWZpYyBjb25maWd1cmF0aW9uClslIElGIERhdGEuQ29tbXVuaWNhdGlvblR5cGUgPT0gJ1JlcXVlc3RlcicgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9Ikhvc3QiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+WyUgVHJhbnNsYXRlKCJFbmRwb2ludCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iSG9zdCIgY2xhc3M9Ilc1MHBjIFslIERhdGEuSG9zdFNlcnZlckVycm9yIHwgaHRtbCAlXSBWYWxpZGF0ZV9SZXF1aXJlZCIgdHlwZT0idGV4dCIgdmFsdWU9IlslIERhdGEuSG9zdCB8IGh0bWwgJV0iIG5hbWU9Ikhvc3QiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJIb3N0RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ikhvc3RTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZShEYXRhLkhvc3RTZXJ2ZXJFcnJvck1lc3NhZ2UpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVVJJIHRvIGluZGljYXRlIHNwZWNpZmljIGxvY2F0aW9uIGZvciBhY2Nlc3NpbmcgYSB3ZWIgc2VydmljZS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJlLmcuIGh0dHBzOi8vd3d3Lm90b2JvLmRlOjEwNzQ1L2FwaS92MS4wICh3aXRob3V0IHRyYWlsaW5nIGJhY2tzbGFzaCkiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJUaW1lb3V0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlRpbWVvdXQiKSB8IGh0bWwgJV06CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuVGltZW91dFN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUaW1lb3V0RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRpbWVvdXRTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZShEYXRhLlRpbWVvdXRTZXJ2ZXJFcnJvck1lc3NhZ2UpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGltZW91dCB2YWx1ZSBmb3IgcmVxdWVzdHMuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsICBmb3I9IkF1dGhUeXBlIj5bJSBUcmFuc2xhdGUoIkF1dGhlbnRpY2F0aW9uIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5BdXRoZW50aWNhdGlvblN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQW4gb3B0aW9uYWwgYXV0aGVudGljYXRpb24gbWVjaGFuaXNtIHRvIGFjY2VzcyB0aGUgcmVtb3RlIHN5c3RlbS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJCYXNpY0F1dGhGaWVsZCBbJSBEYXRhLkJhc2ljQXV0aEhpZGRlbiB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IkJhc2ljQXV0aFVzZXIiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiQmFzaWNBdXRoIFVzZXIiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJCYXNpY0F1dGhVc2VyIiBjbGFzcz0iVzUwcGMgWyUgRGF0YS5CYXNpY0F1dGhVc2VyVmFsaWRhdGVSZXF1aXJlZCB8IGh0bWwgJV0gWyUgRGF0YS5CYXNpY0F1dGhVc2VyU2VydmVyRXJyb3IgfCBodG1sICVdIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjI1MCIgdmFsdWU9IlslIERhdGEuQmFzaWNBdXRoVXNlciB8IGh0bWwgJV0iIG5hbWU9IkJhc2ljQXV0aFVzZXIiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkJhc2ljQXV0aFVzZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJCYXNpY0F1dGhVc2VyU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoRGF0YS5CYXNpY0F1dGhVc2VyU2VydmVyRXJyb3JNZXNzYWdlKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGUgdXNlciBuYW1lIHRvIGJlIHVzZWQgdG8gYWNjZXNzIHRoZSByZW1vdGUgc3lzdGVtLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iQmFzaWNBdXRoUGFzc3dvcmQiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+WyUgVHJhbnNsYXRlKCJCYXNpY0F1dGggUGFzc3dvcmQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJCYXNpY0F1dGhQYXNzd29yZCIgY2xhc3M9Ilc1MHBjIFslIERhdGEuQmFzaWNBdXRoUGFzc3dvcmRWYWxpZGF0ZVJlcXVpcmVkIHwgaHRtbCAlXSBbJSBEYXRhLkJhc2ljQXV0aFBhc3N3b3JkU2VydmVyRXJyb3IgfCBodG1sICVdIiB0eXBlPSJwYXNzd29yZCIgbWF4bGVuZ3RoPSIyNTAiIHZhbHVlPSJbJSBEYXRhLkJhc2ljQXV0aFBhc3N3b3JkIHwgaHRtbCAlXSIgbmFtZT0iQmFzaWNBdXRoUGFzc3dvcmQiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkJhc2ljQXV0aFBhc3N3b3JkRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQmFzaWNBdXRoUGFzc3dvcmRTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZShEYXRhLkJhc2ljQXV0aFBhc3N3b3JkU2VydmVyRXJyb3JNZXNzYWdlKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGUgcGFzc3dvcmQgZm9yIHRoZSBwcml2aWxlZ2VkIHVzZXIuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iS2VyYmVyb3NGaWVsZCBbJSBEYXRhLktlcmJlcm9zSGlkZGVuIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iS2VyYmVyb3NVc2VyIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIktlcmJlcm9zIFVzZXIiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJLZXJiZXJvc1VzZXIiIGNsYXNzPSJXNTBwYyBbJSBEYXRhLktlcmJlcm9zVXNlclZhbGlkYXRlUmVxdWlyZWQgfCBodG1sICVdIFslIERhdGEuS2VyYmVyb3NVc2VyU2VydmVyRXJyb3IgfCBodG1sICVdIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjI1MCIgdmFsdWU9IlslIERhdGEuS2VyYmVyb3NVc2VyIHwgaHRtbCAlXSIgbmFtZT0iS2VyYmVyb3NVc2VyIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJLZXJiZXJvc1VzZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJLZXJiZXJvc1VzZXJTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZShEYXRhLktlcmJlcm9zVXNlclNlcnZlckVycm9yTWVzc2FnZSkgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGhlIHVzZXIgbmFtZSB0byBiZSB1c2VkIHRvIGFjY2VzcyB0aGUgcmVtb3RlIHN5c3RlbS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IktlcmJlcm9zS2V5dGFiIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPlslIFRyYW5zbGF0ZSgiS2VyYmVyb3Mga2V5dGFiIGZpbGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJLZXJiZXJvc0tleXRhYiIgY2xhc3M9Ilc1MHBjIFslIERhdGEuS2VyYmVyb3NLZXl0YWJWYWxpZGF0ZVJlcXVpcmVkIHwgaHRtbCAlXSBbJSBEYXRhLktlcmJlcm9zS2V5dGFiU2VydmVyRXJyb3IgfCBodG1sICVdIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjI1MCIgdmFsdWU9IlslIERhdGEuS2VyYmVyb3NLZXl0YWIgfCBodG1sICVdIiBuYW1lPSJLZXJiZXJvc0tleXRhYiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iS2VyYmVyb3NLZXl0YWJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJLZXJiZXJvc0tleXRhYlNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKERhdGEuS2VyYmVyb3NLZXl0YWJTZXJ2ZXJFcnJvck1lc3NhZ2UpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRoZSBLZXJiZXJvcyBrZXl0YWIgZmlsZSBmb3IgdGhlIHByaXZpbGVnZWQgdXNlci4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiMgUm90aGVyIE9TUyAvIE9hdXRoMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iT0F1dGhBdXRoRmllbGQgWyUgRGF0YS5PQXV0aEhpZGRlbiB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9Ik9BdXRoQWNjb3VudE5hbWUiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiT0F1dGgyIEZ1bmN0aW9uYWwgQWNjb3VudCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk9BdXRoQWNjb3VudE5hbWVzU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTZWxlY3QgdGhlIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iP0FjdGlvbj1BZG1pbk9BdXRoVG9rZW5TdG9yZSI+T0lEQzwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQWNjb3VudCB0byB1c2UgZm9yIE9BdXRoMiBhdXRoZW50aWNhdGlvbi4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiMgRU8gLyBPQXV0aDIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlVzZVByb3h5Ij48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPlslIFRyYW5zbGF0ZSgiVXNlIFByb3h5IE9wdGlvbnMiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlVzZVByb3h5U3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTaG93IG9yIGhpZGUgUHJveHkgb3B0aW9ucyB0byBjb25uZWN0IHRvIHRoZSByZW1vdGUgc3lzdGVtLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlByb3h5RmllbGQgWyUgRGF0YS5Qcm94eUhpZGRlbiB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlByb3h5SG9zdCI+WyUgVHJhbnNsYXRlKCJQcm94eSBTZXJ2ZXIiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJQcm94eUhvc3QiIGNsYXNzPSJXNTBwYyIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIyNTAiIHZhbHVlPSJbJSBEYXRhLlByb3h5SG9zdCB8IGh0bWwgJV0iIG5hbWU9IlByb3h5SG9zdCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVVJJIG9mIGEgcHJveHkgc2VydmVyIHRvIGJlIHVzZWQgKGlmIG5lZWRlZCkuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoImUuZy4gaHR0cDovL3Byb3h5X2hvc3RuYW1lOjgwODAiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iUHJveHlVc2VyIj5bJSBUcmFuc2xhdGUoIlByb3h5IFVzZXIiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJQcm94eVVzZXIiIGNsYXNzPSJXNTBwYyIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIyNTAiIHZhbHVlPSJbJSBEYXRhLlByb3h5VXNlciB8IGh0bWwgJV0iIG5hbWU9IlByb3h5VXNlciIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGhlIHVzZXIgbmFtZSB0byBiZSB1c2VkIHRvIGFjY2VzcyB0aGUgcHJveHkgc2VydmVyLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iUHJveHlQYXNzd29yZCI+WyUgVHJhbnNsYXRlKCJQcm94eSBQYXNzd29yZCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IlByb3h5UGFzc3dvcmQiIGNsYXNzPSJXNTBwYyIgdHlwZT0icGFzc3dvcmQiIG1heGxlbmd0aD0iMjUwIiB2YWx1ZT0iWyUgRGF0YS5Qcm94eVBhc3N3b3JkIHwgaHRtbCAlXSIgbmFtZT0iUHJveHlQYXNzd29yZCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGhlIHBhc3N3b3JkIGZvciB0aGUgcHJveHkgdXNlci4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iUHJveHlFeGNsdWRlIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPlslIFRyYW5zbGF0ZSgiU2tpcCBQcm94eSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlByb3h5RXhjbHVkZVN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlNraXAgcHJveHkgc2VydmVycyB0aGF0IG1pZ2h0IGJlIGNvbmZpZ3VyZWQgZ2xvYmFsbHk/IikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJVc2VTU0wiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+WyUgVHJhbnNsYXRlKCJVc2UgU1NMIE9wdGlvbnMiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlVzZVNTTFN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiU2hvdyBvciBoaWRlIFNTTCBvcHRpb25zIHRvIGNvbm5lY3QgdG8gdGhlIHJlbW90ZSBzeXN0ZW0uIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU1NMRmllbGQgWyUgRGF0YS5TU0xIaWRkZW4gfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJTU0xDZXJ0aWZpY2F0ZSI+WyUgVHJhbnNsYXRlKCJDbGllbnQgQ2VydGlmaWNhdGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJTU0xDZXJ0aWZpY2F0ZSIgY2xhc3M9Ilc1MHBjIFslIERhdGEuU1NMQ2VydGlmaWNhdGVTZXJ2ZXJFcnJvciB8IGh0bWwgJV0iIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMjUwIiB2YWx1ZT0iWyUgRGF0YS5TU0xDZXJ0aWZpY2F0ZSB8IGh0bWwgJV0iIG5hbWU9IlNTTENlcnRpZmljYXRlIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJTU0xDZXJ0aWZpY2F0ZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKERhdGEuU1NMQ2VydGlmaWNhdGVTZXJ2ZXJFcnJvck1lc3NhZ2UpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRoZSBmdWxsIHBhdGggYW5kIG5hbWUgb2YgdGhlIFNTTCBjbGllbnQgY2VydGlmaWNhdGUgZmlsZSAobXVzdCBiZSBpbiBQRU0sIERFUiBvciBQS0NTIzEyIGZvcm1hdCkuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoImUuZy4gL29wdC9vdG9iby92YXIvY2VydGlmaWNhdGVzL1NPQVAvY2VydGlmaWNhdGUucGVtIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJTU0xLZXkiPlslIFRyYW5zbGF0ZSgiQ2xpZW50IENlcnRpZmljYXRlIEtleSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IlNTTEtleSIgY2xhc3M9Ilc1MHBjIFslIERhdGEuU1NMS2V5U2VydmVyRXJyb3IgfCBodG1sICVdIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjI1MCIgdmFsdWU9IlslIERhdGEuU1NMS2V5IHwgaHRtbCAlXSIgbmFtZT0iU1NMS2V5Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJTU0xLZXlTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZShEYXRhLlNTTEtleVNlcnZlckVycm9yTWVzc2FnZSkgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGhlIGZ1bGwgcGF0aCBhbmQgbmFtZSBvZiB0aGUgU1NMIGNsaWVudCBjZXJ0aWZpY2F0ZSBrZXkgZmlsZSAoaWYgbm90IGFscmVhZHkgaW5jbHVkZWQgaW4gY2VydGlmaWNhdGUgZmlsZSkuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoImUuZy4gL29wdC9vdG9iby92YXIvY2VydGlmaWNhdGVzL1NPQVAva2V5LnBlbSIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iU1NMUGFzc3dvcmQiPlslIFRyYW5zbGF0ZSgiQ2xpZW50IENlcnRpZmljYXRlIEtleSBQYXNzd29yZCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IlNTTFBhc3N3b3JkIiBjbGFzcz0iVzUwcGMiIHR5cGU9InBhc3N3b3JkIiBtYXhsZW5ndGg9IjI1MCIgdmFsdWU9IlslIERhdGEuU1NMUGFzc3dvcmQgfCBodG1sICVdIiBuYW1lPSJTU0xQYXNzd29yZCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGhlIHBhc3N3b3JkIHRvIG9wZW4gdGhlIFNTTCBjZXJ0aWZpY2F0ZSBpZiB0aGUga2V5IGlzIGVuY3J5cHRlZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlNTTENBRmlsZSI+WyUgVHJhbnNsYXRlKCJDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAoQ0EpIENlcnRpZmljYXRlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iU1NMQ0FGaWxlIiBjbGFzcz0iVzUwcGMgWyUgRGF0YS5TU0xDQUZpbGVTZXJ2ZXJFcnJvciB8IGh0bWwgJV0iIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMjUwIiB2YWx1ZT0iWyUgRGF0YS5TU0xDQUZpbGUgfCBodG1sICVdIiBuYW1lPSJTU0xDQUZpbGUiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlNTTENBRmlsZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKERhdGEuU1NMQ0FGaWxlU2VydmVyRXJyb3JNZXNzYWdlKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGUgZnVsbCBwYXRoIGFuZCBuYW1lIG9mIHRoZSBjZXJ0aWZpY2F0aW9uIGF1dGhvcml0eSBjZXJ0aWZpY2F0ZSBmaWxlIHRoYXQgdmFsaWRhdGVzIFNTTCBjZXJ0aWZpY2F0ZS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiZS5nLiAvb3B0L290b2JvL3Zhci9jZXJ0aWZpY2F0ZXMvU09BUC9DQS9jYS5wZW0iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlNTTENBRGlyIj5bJSBUcmFuc2xhdGUoIkNlcnRpZmljYXRpb24gQXV0aG9yaXR5IChDQSkgRGlyZWN0b3J5IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iU1NMQ0FEaXIiIGNsYXNzPSJXNTBwYyBbJSBEYXRhLlNTTENBRGlyU2VydmVyRXJyb3IgfCBodG1sICVdIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjI1MCIgdmFsdWU9IlslIERhdGEuU1NMQ0FEaXIgfCBodG1sICVdIiBuYW1lPSJTU0xDQURpciIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iU1NMQ0FEaXJTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZShEYXRhLlNTTENBRGlyU2VydmVyRXJyb3JNZXNzYWdlKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGUgZnVsbCBwYXRoIG9mIHRoZSBjZXJ0aWZpY2F0aW9uIGF1dGhvcml0eSBkaXJlY3Rvcnkgd2hlcmUgdGhlIENBIGNlcnRpZmljYXRlcyBhcmUgc3RvcmVkIGluIHRoZSBmaWxlIHN5c3RlbS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiZS5nLiAvb3B0L290b2JvL3Zhci9jZXJ0aWZpY2F0ZXMvU09BUC9DQSIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iU1NMVmVyaWZ5SG9zdG5hbWUiPlslIFRyYW5zbGF0ZSgiU1NMIGhvc3RuYW1lIHZlcmlmaWNhdGlvbiIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlNTTFZlcmlmeUhvc3RTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJBYm9ydCB0aGUgcmVxdWVzdCBpZiB0aGUgaG9zdG5hbWUgY2Fubm90IGJlIHZlcmlmaWVkLiBEaXNhYmxlIHdpdGggY2F1dGlvbiEgU2tpcHBpbmcgdmVyaWZpY2F0aW9uIGlzIGEgc2VjdXJpdHkgcmlzayEgTWFpbmx5IGZvciB0ZXN0aW5nIHB1cnBvc2VzIGluIGNhc2Ugb2Ygc2VsZi1zaWduZWQgU1NMIGNlcnRpZmljYXRlcywgb3IgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iU1NMVmVyaWZ5TW9kZSI+WyUgVHJhbnNsYXRlKCJTU0wgdmVyaWZ5IG1vZGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TU0xWZXJpZnlNb2RlU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQWJvcnQgdGhlIHJlcXVlc3QgaWYgU1NMIHZlcmlmaWNhdGlvbiBmYWlscy4gRGlzYWJsaW5nIHNraXBzIFNTTCB2ZXJpZmljYXRpb24gZW50aXJlbHkuIERpc2FibGUgd2l0aCBjYXV0aW9uISBTa2lwcGluZyB2ZXJpZmljYXRpb24gaXMgYSBzZWN1cml0eSByaXNrISBNYWlubHkgZm9yIHRlc3RpbmcgcHVycG9zZXMgaW4gY2FzZSBvZiBzZWxmLXNpZ25lZCBTU0wgY2VydGlmaWNhdGVzLCBvciBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiSW52b2tlckNvbnRyb2xsZXJNYXBwaW5nIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9Ikludm9rZXJDb250cm9sbGVyTWFwcGluZ1slIERhdGEuSW52b2tlciB8IGh0bWwgJV0iPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+WyUgVHJhbnNsYXRlKCJDb250cm9sbGVyIG1hcHBpbmcgZm9yIEludm9rZXIiKSB8IGh0bWwgJV0gJ1slIERhdGEuSW52b2tlciB8IGh0bWwgJV0nOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJJbnZva2VyQ29udHJvbGxlck1hcHBpbmdbJSBEYXRhLkludm9rZXIgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5TZXJ2ZXJFcnJvciB8IGh0bWwgJV0iIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMjUwIiB2YWx1ZT0iWyUgRGF0YS5Db250cm9sbGVyIHwgaHRtbCAlXSIgbmFtZT0iSW52b2tlckNvbnRyb2xsZXJNYXBwaW5nWyUgRGF0YS5JbnZva2VyIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ikludm9rZXJDb250cm9sbGVyTWFwcGluZ1slIERhdGEuSW52b2tlciB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iSW52b2tlckNvbnRyb2xsZXJNYXBwaW5nWyUgRGF0YS5JbnZva2VyIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKERhdGEuU2VydmVyRXJyb3JNZXNzYWdlKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRoZSBjb250cm9sbGVyIHRoYXQgdGhlIGludm9rZXIgc2hvdWxkIHNlbmQgcmVxdWVzdHMgdG8uIFZhcmlhYmxlcyBtYXJrZWQgYnkgYSAnOicgd2lsbCBnZXQgcmVwbGFjZWQgYnkgdGhlIGRhdGEgdmFsdWUgYW5kIHBhc3NlZCBhbG9uZyB3aXRoIHRoZSByZXF1ZXN0LiAoZS5nLiAvVGlja2V0LzpUaWNrZXRJRD9Vc2VyTG9naW49OlVzZXJMb2dpbiZQYXNzd29yZD06UGFzc3dvcmQpLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iQ29tbWFuZFslIERhdGEuSW52b2tlciB8IGh0bWwgJV0iPlslIFRyYW5zbGF0ZSgiVmFsaWQgcmVxdWVzdCBjb21tYW5kIGZvciBJbnZva2VyIikgfCBodG1sICVdICdbJSBEYXRhLkludm9rZXIgfCBodG1sICVdJzo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQ29tbWFuZFN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQSBzcGVjaWZpYyBIVFRQIGNvbW1hbmQgdG8gdXNlIGZvciB0aGUgcmVxdWVzdHMgd2l0aCB0aGlzIEludm9rZXIgKG9wdGlvbmFsKS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkludm9rZXJDb250cm9sbGVyTWFwcGluZyIpICVdCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iRGVmYXVsdENvbW1hbmQiPlslIFRyYW5zbGF0ZSgiRGVmYXVsdCBjb21tYW5kIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5EZWZhdWx0Q29tbWFuZFN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGhlIGRlZmF1bHQgSFRUUCBjb21tYW5kIHRvIHVzZSBmb3IgdGhlIHJlcXVlc3RzLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKWyUgRU5EICVdCgojIGFkZGVkIGZvciBPVE9CT1RpY2tldEludm9rZXIKClslIElGIERhdGEuQ29tbXVuaWNhdGlvblR5cGUgPT0gJ1JlcXVlc3RlcicgJV0KWyUgVVNFIEhlYWRlcnNUaXRsZUNvbW1vbiAgICA9IFN0cmluZyhUcmFuc2xhdGUoIkFkZGl0aW9uYWwgcmVxdWVzdCBoZWFkZXJzIChhbGwgaW52b2tlcnMpIikpICVdClslIFVTRSBIZWFkZXJzVGl0bGVTcGVjaWZpYyAgPSBTdHJpbmcoVHJhbnNsYXRlKCJBZGRpdGlvbmFsIHJlcXVlc3QgaGVhZGVycyAoaW52b2tlciBzcGVjaWZpYykiKSkgJV0KWyUgVVNFIEhlYWRlcnNSZW1vdmVTcGVjaWZpYyA9IFN0cmluZyhUcmFuc2xhdGUoIlJlbW92ZSBhbGwgaGVhZGVycyBmb3IgdGhpcyBpbnZva2VyIikpICVdClslIFVTRSBIZWFkZXJzSW5mb1NwZWNpZmljICAgPSBTdHJpbmcoVHJhbnNsYXRlKCJIZWFkZXJzIGZvciBpbnZva2VyIikpICVdClslIEVMU0UgJV0KWyUgVVNFIEhlYWRlcnNUaXRsZUNvbW1vbiAgICA9IFN0cmluZyhUcmFuc2xhdGUoIkFkZGl0aW9uYWwgcmVzcG9uc2UgaGVhZGVycyAoYWxsIG9wZXJhdGlvbnMpIikpICVdClslIFVTRSBIZWFkZXJzVGl0bGVTcGVjaWZpYyAgPSBTdHJpbmcoVHJhbnNsYXRlKCJBZGRpdGlvbmFsIHJlc3BvbnNlIGhlYWRlcnMgKG9wZXJhdGlvbiBzcGVjaWZpYykiKSkgJV0KWyUgVVNFIEhlYWRlcnNSZW1vdmVTcGVjaWZpYyA9IFN0cmluZyhUcmFuc2xhdGUoIlJlbW92ZSBhbGwgaGVhZGVycyBmb3IgdGhpcyBvcGVyYXRpb24iKSkgJV0KWyUgVVNFIEhlYWRlcnNJbmZvU3BlY2lmaWMgICA9IFN0cmluZyhUcmFuc2xhdGUoIkhlYWRlcnMgZm9yIG9wZXJhdGlvbiIpKSAlXQpbJSBFTkQgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk91dGJvdW5kSGVhZGVycyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgSGVhZGVyc1RpdGxlQ29tbW9uIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXJDb250YWluZXIiPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSXRlbSBWYWx1ZUluc2VydCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJPdXRib3VuZEhlYWRlcnNWYWx1ZUNvdW50ZXIiIHZhbHVlPSJbJSBEYXRhLk91dGJvdW5kSGVhZGVyc1ZhbHVlQ291bnRlciB8IGh0bWwgJV0iIGlkPSJPdXRib3VuZEhlYWRlcnNWYWx1ZUNvdW50ZXIiIGNsYXNzPSJWYWx1ZUNvdW50ZXIiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPlslIFRyYW5zbGF0ZSgiQ29tbW9uIGhlYWRlcnMiKSB8IGh0bWwgJV08L3N0cm9uZz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJWYWx1ZVJvd3MiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdXRib3VuZEhlYWRlcnNWYWx1ZVJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9Ik91dGJvdW5kSGVhZGVyc0tleV9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iIGlkPSJPdXRib3VuZEhlYWRlcnNLZXlfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIiBjbGFzcz0iVmFsaWRhdGVfUmVxdWlyZWQgT3V0Ym91bmRIZWFkZXJLZXkgWyUgRGF0YS5pdGVtKCAnT3V0Ym91bmRIZWFkZXJzS2V5XycgXyBEYXRhLlZhbHVlQ291bnRlciBfICdTZXJ2ZXJFcnJvcicgKSB8IGh0bWwgJV0iIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMTUwIiB2YWx1ZT0iWyUgRGF0YS5LZXkgfCBodG1sICVdIiBwbGFjZWhvbGRlcj0iWyUgVHJhbnNsYXRlKCJIZWFkZXIgTmFtZSIpIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJPdXRib3VuZEhlYWRlcnNLZXlfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJPdXRib3VuZEhlYWRlcnNLZXlfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBEYXRhLml0ZW0oICdPdXRib3VuZEhlYWRlcnNLZXlfJyBfIERhdGEuVmFsdWVDb3VudGVyIF8gJ1NlcnZlckVycm9yTWVzc2FnZScgKSB8IFRyYW5zbGF0ZSB8IGh0bWwgJV08L3A+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbmFtZT0iT3V0Ym91bmRIZWFkZXJzVmFsdWVfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIiBpZD0iT3V0Ym91bmRIZWFkZXJzVmFsdWVfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIiBjbGFzcz0iVmFsaWRhdGVfUmVxdWlyZWQgT3V0Ym91bmRIZWFkZXJWYWx1ZSBbJSBEYXRhLml0ZW0oICdPdXRib3VuZEhlYWRlcnNWYWx1ZV8nIF8gRGF0YS5WYWx1ZUNvdW50ZXIgXyAnU2VydmVyRXJyb3InICkgfCBodG1sICVdIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjE1MzYiIHZhbHVlPSJbJSBEYXRhLlZhbHVlIHwgaHRtbCAlXSIgcGxhY2Vob2xkZXI9IlslIFRyYW5zbGF0ZSgiVmFsdWUiKSB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iT3V0Ym91bmRIZWFkZXJzVmFsdWVfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJPdXRib3VuZEhlYWRlcnNWYWx1ZV9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBpZD0iT3V0Ym91bmRIZWFkZXJzVmFsdWVSZW1vdmVfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIiBjbGFzcz0iUmVtb3ZlQnV0dG9uIFZhbHVlUmVtb3ZlIFNwYWNpbmdMZWZ0Ij48aSBjbGFzcz0iZmEgZmEtbWludXMtc3F1YXJlLW8iPjwvaT48c3BhbiBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJSZW1vdmUgaGVhZGVyIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcE1pbmkiID48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk91dGJvdW5kSGVhZGVyc1ZhbHVlUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJPdXRib3VuZEhlYWRlcnNBZGRWYWx1ZSIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gQWRkVmFsdWUiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1wbHVzLXNxdWFyZSI+Jm5ic3A7PC9pPlslIFRyYW5zbGF0ZSgiQWRkIGhlYWRlciIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlZhbHVlVGVtcGxhdGUgSGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iT3V0Ym91bmRIZWFkZXJzS2V5IiBjbGFzcz0iT3V0Ym91bmRIZWFkZXJLZXkiIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMTUwIiB2YWx1ZT0iWyUgRGF0YS5LZXkgfCBodG1sICVdIiBwbGFjZWhvbGRlcj0iWyUgVHJhbnNsYXRlKCJIZWFkZXIgTmFtZSIpIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iS2V5RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iS2V5U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iT3V0Ym91bmRIZWFkZXJzVmFsdWUiIGNsYXNzPSJPdXRib3VuZEhlYWRlclZhbHVlIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjE1MzYiIHZhbHVlPSJbJSBEYXRhLlZhbHVlIHwgaHRtbCAlXSIgcGxhY2Vob2xkZXI9IlslIFRyYW5zbGF0ZSgiVmFsdWUiKSB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik91dGJvdW5kSGVhZGVyc1ZhbHVlRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iT3V0Ym91bmRIZWFkZXJzVmFsdWVTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgaWQ9Ik91dGJvdW5kSGVhZGVyc1ZhbHVlUmVtb3ZlIiBjbGFzcz0iUmVtb3ZlQnV0dG9uIFZhbHVlUmVtb3ZlIFNwYWNpbmdMZWZ0Ij48aSBjbGFzcz0iZmEgZmEtbWludXMtc3F1YXJlLW8iPjwvaT48c3BhbiBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJSZW1vdmUgdmFsdWUiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcE1pbmkiID48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIFNwYWNpbmdCb3R0b20iPjwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3V0Ym91bmRIZWFkZXJzT3BlcmF0aW9uU3BlY2lmaWMiKSAlXQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBIZWFkZXJzVGl0bGVTcGVjaWZpYyB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIE1ldGFIZWFkZXJDb250YWluZXIiPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3V0Ym91bmRIZWFkZXJzT3BlcmF0aW9uU2VsZWN0aW9uIikgJV0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5PdXRib3VuZEhlYWRlcnNPcGVyYXRpb25TZWxlY3Rpb25TdHJnICVdCgpbJSBSZW5kZXJCbG9ja0VuZCgiT3V0Ym91bmRIZWFkZXJzT3BlcmF0aW9uU2VsZWN0aW9uIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk91dGJvdW5kSGVhZGVyc09wZXJhdGlvblNwZWNpZmljRW50cnkiKSAlXQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXJDb250YWluZXIgWyUgRGF0YS5BY3RpdmUgfCBodG1sICVdIiBpZD0iT3BlcmF0aW9uT3V0Ym91bmRIZWFkZXJzWyUgRGF0YS5PcGVyYXRpb24gfCBodG1sICVdIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3V0Ym91bmRIZWFkZXJzT3BlcmF0aW9uU3BlY2lmaWNFbnRyeVZhbHVlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iT3BlcmF0aW9uIiB2YWx1ZT0iWyUgRGF0YS5PcGVyYXRpb24gJV0iIGlkPSJPcGVyYXRpb25bJSBEYXRhLk9wZXJhdGlvbiAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJPcGVyYXRpb25PdXRib3VuZEhlYWRlcnNBY3RpdmUiIHZhbHVlPSJbJSBEYXRhLk9wZXJhdGlvbiB8IGh0bWwgJV0iIGlkPSJPcGVyYXRpb25PdXRib3VuZEhlYWRlcnNBY3RpdmVbJSBEYXRhLk9wZXJhdGlvbiB8IGh0bWwgJV0iLz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Ikl0ZW0gVmFsdWVJbnNlcnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iT3V0Ym91bmRIZWFkZXJzWyUgRGF0YS5PcGVyYXRpb24gfCBodG1sICVdVmFsdWVDb3VudGVyIiB2YWx1ZT0iWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIiBpZD0iT3V0Ym91bmRIZWFkZXJzWyUgRGF0YS5PcGVyYXRpb24gfCBodG1sICVdVmFsdWVDb3VudGVyIiBjbGFzcz0iVmFsdWVDb3VudGVyIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgaWQ9Ik91dGJvdW5kSGVhZGVyc1slIERhdGEuT3BlcmF0aW9uIHwgaHRtbCAlXVZhbHVlUmVtb3ZlQWxsIiBjbGFzcz0iUmVtb3ZlQnV0dG9uIFZhbHVlUmVtb3ZlQWxsIFNwYWNpbmdMZWZ0Ij48aSBjbGFzcz0iZmEgZmEtbWludXMtc3F1YXJlLW8iPjwvaT48c3BhbiBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgSGVhZGVyc1JlbW92ZVNwZWNpZmljIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBIZWFkZXJzSW5mb1NwZWNpZmljIHwgaHRtbCAlXSAnPHN0cm9uZyBjbGFzcz0iT3BlcmF0aW9uIj5bJSBEYXRhLk9wZXJhdGlvbk5hbWUgfCBodG1sICVdPC9zdHJvbmc+JwoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJWYWx1ZVJvd3MiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdXRib3VuZEhlYWRlcnNPcGVyYXRpb25TcGVjaWZpY0VudHJ5VmFsdWVSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBuYW1lPSJPdXRib3VuZEhlYWRlcnNbJSBEYXRhLk9wZXJhdGlvbiB8IGh0bWwgJV1LZXlfWyUgRGF0YS5WYWx1ZUNvdW50ZXIgfCBodG1sICVdIiBpZD0iT3V0Ym91bmRIZWFkZXJzWyUgRGF0YS5PcGVyYXRpb24gfCBodG1sICVdS2V5X1slIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXSIgY2xhc3M9IlZhbGlkYXRlX1JlcXVpcmVkIE91dGJvdW5kSGVhZGVyS2V5IFslIERhdGEuaXRlbSggJ091dGJvdW5kSGVhZGVycycgXyBEYXRhLk9wZXJhdGlvbiBfICdLZXlfJyBfIERhdGEuVmFsdWVDb3VudGVyIF8gJ1NlcnZlckVycm9yJyApIHwgaHRtbCAlXSIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIxNTAiIHZhbHVlPSJbJSBEYXRhLktleSB8IGh0bWwgJV0iIHBsYWNlaG9sZGVyPSJbJSBUcmFuc2xhdGUoIkhlYWRlciBOYW1lIikgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik91dGJvdW5kSGVhZGVyc1slIERhdGEuT3BlcmF0aW9uIHwgaHRtbCAlXUtleV9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik91dGJvdW5kSGVhZGVyc1slIERhdGEuT3BlcmF0aW9uIHwgaHRtbCAlXUtleV9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIERhdGEuaXRlbSggICdPdXRib3VuZEhlYWRlcnMnIF8gRGF0YS5PcGVyYXRpb24gXyAnS2V5XycgXyBEYXRhLlZhbHVlQ291bnRlciBfICdTZXJ2ZXJFcnJvck1lc3NhZ2UnICkgfCBUcmFuc2xhdGUgfCBodG1sICVdPC9wPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9Ik91dGJvdW5kSGVhZGVyc1slIERhdGEuT3BlcmF0aW9uIHwgaHRtbCAlXVZhbHVlX1slIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXSIgaWQ9Ik91dGJvdW5kSGVhZGVyc1slIERhdGEuT3BlcmF0aW9uIHwgaHRtbCAlXVZhbHVlX1slIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXSIgY2xhc3M9IlZhbGlkYXRlX1JlcXVpcmVkIE91dGJvdW5kSGVhZGVyVmFsdWUgWyUgRGF0YS5pdGVtKCAnT3V0Ym91bmRIZWFkZXJzJyBfIERhdGEuT3BlcmF0aW9uIF8gJ1ZhbHVlXycgXyBEYXRhLlZhbHVlQ291bnRlciBfICdTZXJ2ZXJFcnJvcicgKSB8IGh0bWwgJV0iIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMTUzNiIgdmFsdWU9IlslIERhdGEuVmFsdWUgfCBodG1sICVdIiBwbGFjZWhvbGRlcj0iWyUgVHJhbnNsYXRlKCJWYWx1ZSIpIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJPdXRib3VuZEhlYWRlcnNbJSBEYXRhLk9wZXJhdGlvbiB8IGh0bWwgJV1WYWx1ZV9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik91dGJvdW5kSGVhZGVyc1slIERhdGEuT3BlcmF0aW9uIHwgaHRtbCAlXVZhbHVlX1slIERhdGEuVmFsdWVDb3VudGVyIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJPdXRib3VuZEhlYWRlcnNbJSBEYXRhLk9wZXJhdGlvbiB8IGh0bWwgJV1WYWx1ZVJlbW92ZV9bJSBEYXRhLlZhbHVlQ291bnRlciB8IGh0bWwgJV0iIGNsYXNzPSJSZW1vdmVCdXR0b24gVmFsdWVSZW1vdmUgU3BhY2luZ0xlZnQiPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSBoZWFkZXIiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTcGFjaW5nVG9wTWluaSIgPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3V0Ym91bmRIZWFkZXJzT3BlcmF0aW9uU3BlY2lmaWNFbnRyeVZhbHVlUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJPdXRib3VuZEhlYWRlcnNbJSBEYXRhLk9wZXJhdGlvbiB8IGh0bWwgJV1BZGRWYWx1ZSIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gQWRkVmFsdWUiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1wbHVzLXNxdWFyZSI+Jm5ic3A7PC9pPlslIFRyYW5zbGF0ZSgiQWRkIGhlYWRlciIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlZhbHVlVGVtcGxhdGUgSGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iT3V0Ym91bmRIZWFkZXJzWyUgRGF0YS5PcGVyYXRpb24gfCBodG1sICVdS2V5IiBjbGFzcz0iT3V0Ym91bmRIZWFkZXJLZXkiIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMTUwIiBwbGFjZWhvbGRlcj0iWyUgVHJhbnNsYXRlKCJIZWFkZXIgTmFtZSIpIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iS2V5RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iS2V5U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iT3V0Ym91bmRIZWFkZXJzWyUgRGF0YS5PcGVyYXRpb24gfCBodG1sICVdVmFsdWUiIGNsYXNzPSJPdXRib3VuZEhlYWRlclZhbHVlIiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjE1MzYiIHBsYWNlaG9sZGVyPSJbJSBUcmFuc2xhdGUoIlZhbHVlIikgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJWYWx1ZUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlZhbHVlU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJPdXRib3VuZEhlYWRlcnNbJSBEYXRhLk9wZXJhdGlvbiB8IGh0bWwgJV1WYWx1ZVJlbW92ZSIgY2xhc3M9IlJlbW92ZUJ1dHRvbiBWYWx1ZVJlbW92ZSBTcGFjaW5nTGVmdCI+PGkgY2xhc3M9ImZhIGZhLW1pbnVzLXNxdWFyZS1vIj48L2k+PHNwYW4gY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHZhbHVlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNwYWNpbmdUb3BNaW5pIiA+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKWyUgUmVuZGVyQmxvY2tFbmQoIk91dGJvdW5kSGVhZGVyc09wZXJhdGlvblNwZWNpZmljRW50cnlWYWx1ZSIpICVdCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKWyUgUmVuZGVyQmxvY2tFbmQoIk91dGJvdW5kSGVhZGVyc09wZXJhdGlvblNwZWNpZmljRW50cnkiKSAlXQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXJDb250YWluZXIgSGlkZGVuIENvbnRhaW5lclZhbHVlVGVtcGxhdGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJPcGVyYXRpb24iIHZhbHVlPSIiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgY2xhc3M9Ik9wZXJhdGlvbk91dGJvdW5kSGVhZGVyc0FjdGl2ZVRlbXBsYXRlIi8+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJJdGVtIFZhbHVlSW5zZXJ0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJWYWx1ZUNvdW50ZXIiIGNsYXNzPSJWYWx1ZUNvdW50ZXIiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBpZD0iVmFsdWVSZW1vdmVBbGwiIGNsYXNzPSJSZW1vdmVCdXR0b24gVmFsdWVSZW1vdmVBbGwgU3BhY2luZ0xlZnQiPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBIZWFkZXJzUmVtb3ZlU3BlY2lmaWMgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIEhlYWRlcnNJbmZvU3BlY2lmaWMgfCBodG1sICVdICc8c3Ryb25nIGNsYXNzPSJPcGVyYXRpb24iPjwvc3Ryb25nPicKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJWYWx1ZVJvd3MiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJBZGRWYWx1ZSIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gQWRkVmFsdWUiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1wbHVzLXNxdWFyZSI+Jm5ic3A7PC9pPlslIFRyYW5zbGF0ZSgiQWRkIGhlYWRlciIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlZhbHVlVGVtcGxhdGUgSGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iS2V5IiBjbGFzcz0iT3V0Ym91bmRIZWFkZXJLZXkiIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMTUwIiBwbGFjZWhvbGRlcj0iWyUgVHJhbnNsYXRlKCJIZWFkZXIgTmFtZSIpIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iS2V5RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iS2V5U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoRGF0YS5LZXlFcnJvclN0cmcpIHwgaHRtbCAlXTwvcD48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IlZhbHVlIiBjbGFzcz0iT3V0Ym91bmRIZWFkZXJWYWx1ZSIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIxNTM2IiBwbGFjZWhvbGRlcj0iWyUgVHJhbnNsYXRlKCJWYWx1ZSIpIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVmFsdWVFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJWYWx1ZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBpZD0iVmFsdWVSZW1vdmUiIGNsYXNzPSJSZW1vdmVCdXR0b24gVmFsdWVSZW1vdmUgU3BhY2luZ0xlZnQiPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSB2YWx1ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTcGFjaW5nVG9wTWluaSIgPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgpbJSBSZW5kZXJCbG9ja0VuZCgiT3V0Ym91bmRIZWFkZXJzT3BlcmF0aW9uU3BlY2lmaWMiKSAlXQoKWyUgUmVuZGVyQmxvY2tFbmQoIk91dGJvdW5kSGVhZGVycyIpICVdCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgSUYgRGF0YS5BY3Rpb24gPT0gJ0NoYW5nZScgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQcmltYXJ5IiBpZD0iU3VibWl0QW5kQ29udGludWUiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXSI+PHNwYW4+WyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9IlN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIlNhdmUgYW5kIGZpbmlzaCIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBFTFNFICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9IlN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJvciIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pbkdlbmVyaWNJbnRlcmZhY2VXZWJzZXJ2aWNlO1N1YmFjdGlvbj1DaGFuZ2U7V2Vic2VydmljZUlEPVslIERhdGEuV2Vic2VydmljZUlEIHwgdXJpICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgo8L2Rpdj4K</File>
        <File Location="Custom/Kernel/GenericInterface/Operation/Ticket/TicketUpdate.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSAxZWNmYTMwMTY2OGFiODJhYjBlOWI1ODhjOTIzMTdkYjEwYjU0MTIzIC0gS2VybmVsL0dlbmVyaWNJbnRlcmZhY2UvT3BlcmF0aW9uL1RpY2tldC9UaWNrZXRVcGRhdGUucG0KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6VGlja2V0OjpUaWNrZXRVcGRhdGU7Cgp1c2UgdjUuMjQ7CnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBwYXJlbnQgcXcoCiAgICBLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6Q29tbW9uCiAgICBLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6VGlja2V0OjpDb21tb24KKTsKCiMgY29yZSBtb2R1bGVzCnVzZSBTY2FsYXI6OlV0aWwgcXcocmVmdHlwZSk7CnVzZSBNSU1FOjpCYXNlNjQgcXcoZW5jb2RlX2Jhc2U2NCk7CgojIENQQU4gbW9kdWxlcwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyhJc0FycmF5UmVmV2l0aERhdGEgSXNIYXNoUmVmV2l0aERhdGEgSXNTdHJpbmcgSXNTdHJpbmdXaXRoRGF0YSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OlRpY2tldDo6VGlja2V0VXBkYXRlIC0gR2VuZXJpY0ludGVyZmFjZSBUaWNrZXQgVGlja2V0VXBkYXRlIE9wZXJhdGlvbiBiYWNrZW5kCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKPWhlYWQyIG5ldygpCgp1c3VhbGx5LCB5b3Ugd2FudCB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgdGhpcwpieSB1c2luZyBDPEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uLT5uZXcoKTs+LgoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRTZWxmID0gYmxlc3Mge30sICRUeXBlOwoKICAgICMgY2hlY2sgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkTmVlZGVkIChxdyggRGVidWdnZXJPYmplY3QgV2Vic2VydmljZUlEICkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiR290IG5vICROZWVkZWQhIiwKICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgICRTZWxmLT57JE5lZWRlZH0gPSAkUGFyYW17JE5lZWRlZH07CiAgICB9CgogICAgJFNlbGYtPntDb25maWd9ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OlRpY2tldFVwZGF0ZScpOwogICAgJFNlbGYtPntPcGVyYXRpb259ID0gJFBhcmFte09wZXJhdGlvbn07CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgUnVuKCkKCnBlcmZvcm0gVGlja2V0VXBkYXRlIE9wZXJhdGlvbi4gVGhpcyB3aWxsIHJldHVybiB0aGUgdXBkYXRlZCBUaWNrZXRJRCBhbmQKaWYgYXBwbGljYWJsZSB0aGUgY3JlYXRlZCBBcnRpY2xlSUQuCgogICAgbXkgJFJlc3VsdCA9ICRPcGVyYXRpb25PYmplY3QtPlJ1bigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgVXNlckxvZ2luICAgICAgICAgPT4gJ3NvbWUgYWdlbnQgbG9naW4nLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFVzZXJMb2dpbiBvciBDdXN0b21lclVzZXJMb2dpbiBvciBTZXNzaW9uSUQgaXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgcmVxdWlyZWQKICAgICAgICAgICAgQ3VzdG9tZXJVc2VyTG9naW4gPT4gJ3NvbWUgY3VzdG9tZXIgbG9naW4nLAogICAgICAgICAgICBTZXNzaW9uSUQgICAgICAgICA9PiAxMjMsCgogICAgICAgICAgICBQYXNzd29yZCAgPT4gJ3NvbWUgcGFzc3dvcmQnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaWYgVXNlckxvZ2luIG9yIGN1c3RvbWVyVXNlckxvZ2luIGlzIHNlbnQgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICBQYXNzd29yZCBpcyByZXF1aXJlZAoKICAgICAgICAgICAgVGlja2V0SUQgICAgID0+IDEyMywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFRpY2tldElEIG9yIFRpY2tldE51bWJlciBpcyByZXF1aXJlZAogICAgICAgICAgICBUaWNrZXROdW1iZXIgPT4gJzIwMDQwNDA1MTA0NDA0ODUnLAoKICAgICAgICAgICAgVGlja2V0IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgID0+ICdzb21lIHRpY2tldCB0aXRsZScsCgogICAgICAgICAgICAgICAgUXVldWVJRCAgICAgICA9PiAxMjMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgT3B0aW9uYWwKICAgICAgICAgICAgICAgIFF1ZXVlICAgICAgICAgPT4gJ3NvbWUgcXVldWUgbmFtZScsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIE9wdGlvbmFsCiAgICAgICAgICAgICAgICBMb2NrSUQgICAgICAgID0+IDEyMywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbAogICAgICAgICAgICAgICAgTG9jayAgICAgICAgICA9PiAnc29tZSBsb2NrIG5hbWUnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwKICAgICAgICAgICAgICAgIFR5cGVJRCAgICAgICAgPT4gMTIzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgICAgICAgICBUeXBlICAgICAgICAgID0+ICdzb21lIHR5cGUgbmFtZScsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbAogICAgICAgICAgICAgICAgU2VydmljZUlEICAgICA9PiAxMjMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwKICAgICAgICAgICAgICAgIFNlcnZpY2UgICAgICAgPT4gJ3NvbWUgc2VydmljZSBuYW1lJywgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgICAgICAgICBTTEFJRCAgICAgICAgID0+IDEyMywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbAogICAgICAgICAgICAgICAgU0xBICAgICAgICAgICA9PiAnc29tZSBTTEEgbmFtZScsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwKICAgICAgICAgICAgICAgIFN0YXRlSUQgICAgICAgPT4gMTIzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgICAgICAgICBTdGF0ZSAgICAgICAgID0+ICdzb21lIHN0YXRlIG5hbWUnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbAogICAgICAgICAgICAgICAgUHJpb3JpdHlJRCAgICA9PiAxMjMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwKICAgICAgICAgICAgICAgIFByaW9yaXR5ICAgICAgPT4gJ3NvbWUgcHJpb3JpdHkgbmFtZScsICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgICAgICAgICBPd25lcklEICAgICAgID0+IDEyMywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbAogICAgICAgICAgICAgICAgT3duZXIgICAgICAgICA9PiAnc29tZSB1c2VyIGxvZ2luJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwKICAgICAgICAgICAgICAgIFJlc3BvbnNpYmxlSUQgPT4gMTIzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgICAgICAgICBSZXNwb25zaWJsZSAgID0+ICdzb21lIHVzZXIgbG9naW4nLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbAogICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VyICA9PiAnc29tZSBjdXN0b21lciB1c2VyIGxvZ2luJywKCiAgICAgICAgICAgICAgICBQZW5kaW5nVGltZSB7ICAgICAgICMgb3B0aW9uYWwKICAgICAgICAgICAgICAgICAgICBZZWFyICAgPT4gMjAxMSwKICAgICAgICAgICAgICAgICAgICBNb250aCAgPT4gMTIKICAgICAgICAgICAgICAgICAgICBEYXkgICAgPT4gMDMsCiAgICAgICAgICAgICAgICAgICAgSG91ciAgID0+IDIzLAogICAgICAgICAgICAgICAgICAgIE1pbnV0ZSA9PiAwNSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAjIG9yCiAgICAgICAgICAgICAgICAjIFBlbmRpbmdUaW1lIHsKICAgICAgICAgICAgICAgICMgICAgIERpZmYgPT4gMTAwODAsICMgUGVuZGluZyB0aW1lIGluIG1pbnV0ZXMKICAgICAgICAgICAgICAgICN9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBBcnRpY2xlID0+IHsKICAgICAgICAgICAgICAgIENvbW11bmljYXRpb25DaGFubmVsICAgICAgICAgICAgPT4gJ0VtYWlsJywgICAgICAgICAgICAgICAgICAgICMgQ29tbXVuaWNhdGlvbkNoYW5uZWwgb3IgQ29tbXVuaWNhdGlvbkNoYW5uZWxJRCBtdXN0IGJlIHByb3ZpZGVkLgogICAgICAgICAgICAgICAgQ29tbXVuaWNhdGlvbkNoYW5uZWxJRCAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgSXNWaXNpYmxlRm9yQ3VzdG9tZXIgICAgICAgICAgICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbAogICAgICAgICAgICAgICAgU2VuZGVyVHlwZUlEICAgICAgICAgICAgICAgICAgICA9PiAxMjMsICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbAogICAgICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAnc29tZSBzZW5kZXIgdHlwZSBuYW1lJywgICAgIyBvcHRpb25hbAogICAgICAgICAgICAgICAgQXV0b1Jlc3BvbnNlVHlwZSAgICAgICAgICAgICAgICA9PiAnc29tZSBhdXRvIHJlc3BvbnNlIHR5cGUnLCAgIyBvcHRpb25hbAogICAgICAgICAgICAgICAgRnJvbSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAnc29tZSBmcm9tIHN0cmluZycsICAgICAgICAgIyBvcHRpb25hbAogICAgICAgICAgICAgICAgU3ViamVjdCAgICAgICAgICAgICAgICAgICAgICAgICA9PiAnc29tZSBzdWJqZWN0JywKICAgICAgICAgICAgICAgIEJvZHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gJ3NvbWUgYm9keScsCgogICAgICAgICAgICAgICAgQ29udGVudFR5cGUgICAgICAgICAgICAgICAgICAgICA9PiAnc29tZSBjb250ZW50IHR5cGUnLCAgICAgICAgIyBDb250ZW50VHlwZSBvciBNaW1lVHlwZSBhbmQgQ2hhcnNldCBpcyByZXF1aXJlZAogICAgICAgICAgICAgICAgTWltZVR5cGUgICAgICAgICAgICAgICAgICAgICAgICA9PiAnc29tZSBtaW1lIHR5cGUnLAogICAgICAgICAgICAgICAgQ2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICA9PiAnc29tZSBjaGFyc2V0JywKCiAgICAgICAgICAgICAgICBIaXN0b3J5VHlwZSAgICAgICAgICAgICAgICAgICAgID0+ICdzb21lIGhpc3RvcnkgdHlwZScsICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgICAgICAgICBIaXN0b3J5Q29tbWVudCAgICAgICAgICAgICAgICAgID0+ICdTb21lICBoaXN0b3J5IGNvbW1lbnQnLCAgICAjIG9wdGlvbmFsCiAgICAgICAgICAgICAgICBUaW1lVW5pdCAgICAgICAgICAgICAgICAgICAgICAgID0+IDEyMywgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgICAgICAgICBOb0FnZW50Tm90aWZ5ICAgICAgICAgICAgICAgICAgID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgICAgICAgICBGb3JjZU5vdGlmaWNhdGlvblRvVXNlcklEICAgICAgID0+IFsxLCAyLCAzXSAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgICAgICAgICBFeGNsdWRlTm90aWZpY2F0aW9uVG9Vc2VySUQgICAgID0+IFsxLCAyLCAzXSAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgICAgICAgICBFeGNsdWRlTXV0ZU5vdGlmaWNhdGlvblRvVXNlcklEID0+IFsxLCAyLCAzXSAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiMgUm90aGVyIE9TUyAvIE9BdXRoMgogICAgICAgICAgICAgICAgU2VuZEVtYWlsICAgICAgICAgICAgICAgICAgICAgICA9PiAxICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCwgZGVmYXVsdHMgdG8gMC4KICAgICAgICAgICAgICAgIEVtYWlsU2VjdXJpdHkgMD4geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCB0byBlbmFibGUgc2lnbmluZy9lbmNyeXB0aW9uCiAgICAgICAgICAgICAgICAgICAgQmFja2VuZCA9PiAnU01JTUUnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEJhY2tlbmQsIG9ubHkgU01JTUUgc3VwcG9ydGVkIGZvciBub3cKICAgICAgICAgICAgICAgICAgICBTaWduID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCwgd2hldGhlciB0byB0aGUgc2lnbiB0aGUgZW1haWwuIG5lZWRzIHZhbGlkIFNNSU1FIGNlcnQgZm9yIHRoZSBxdWV1ZQogICAgICAgICAgICAgICAgICAgIEVuY3J5cHQgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwsd2hldGhlciB0byBlbmNyeXB0IHRoZSBlbWFpbC4gbmVlZHMgdmFsaWQgY3VzdG9tZXIgU01JTUUgY2VydCAoZm9yIHRoZSBUTyBhZGRyKQogICAgICAgICAgICAgICAgfQojIEVPIE9BdXRoMgogICAgICAgICAgICB9LAoKICAgICAgICAgICAgRHluYW1pY0ZpZWxkID0+IFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgPT4gJ3NvbWUgbmFtZScsCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgID0+ICRWYWx1ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHZhbHVlIHR5cGUgZGVwZW5kcyBvbiB0aGUgZHluYW1pYyBmaWVsZAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICMgLi4uCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICMgb3IKICAgICAgICAgICAgIyBEeW5hbWljRmllbGQgewogICAgICAgICAgICAjICAgIE5hbWUgICA9PiAnc29tZSBuYW1lJywKICAgICAgICAgICAgIyAgICBWYWx1ZSAgPT4gJFZhbHVlLAogICAgICAgICAgICAjfSwKCiAgICAgICAgICAgIEF0dGFjaG1lbnQgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICdjb250ZW50JyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYmFzZTY0IGVuY29kZWQKICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAnc29tZSBjb250ZW50IHR5cGUnCiAgICAgICAgICAgICAgICAgICAgRmlsZW5hbWUgICAgPT4gJ3NvbWUgZmluZSBuYW1lJwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICMgLi4uCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICNvcgogICAgICAgICAgICAjQXR0YWNobWVudCA9PiB7CiAgICAgICAgICAgICMgICAgQ29udGVudCAgICAgPT4gJ2NvbnRlbnQnCiAgICAgICAgICAgICMgICAgQ29udGVudFR5cGUgPT4gJ3NvbWUgY29udGVudCB0eXBlJwogICAgICAgICAgICAjICAgIEZpbGVuYW1lICAgID0+ICdzb21lIGZpbmUgbmFtZScKICAgICAgICAgICAgI30sCiAgICAgICAgfSwKICAgICk7CgogICAgJFJlc3VsdCA9IHsKICAgICAgICBTdWNjZXNzICAgICAgICAgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICMgMCBvciAxCiAgICAgICAgRXJyb3JNZXNzYWdlICAgID0+ICcnLCAgICAgICAgICAgICAgICAgICAgICAjIGluIGNhc2Ugb2YgZXJyb3IKICAgICAgICBEYXRhICAgICAgICAgICAgPT4geyAgICAgICAgICAgICAgICAgICAgICAgICMgcmVzdWx0IGRhdGEgcGF5bG9hZCBhZnRlciBPcGVyYXRpb24KICAgICAgICAgICAgVGlja2V0SUQgICAgPT4gMTIzLCAgICAgICAgICAgICAgICAgICAgICMgVGlja2V0ICBJRCBudW1iZXIgaW4gT1RPQk8gKGhlbHAgZGVzayBzeXN0ZW0pCiAgICAgICAgICAgIEFydGljbGVJRCAgID0+IDQzLCAgICAgICAgICAgICAgICAgICAgICAjIEFydGljbGUgSUQgbnVtYmVyIGluIE9UT0JPIChoZWxwIGRlc2sgc3lzdGVtKQogICAgICAgICAgICBFcnJvciA9PiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBzaG91bGQgbm90IHJldHVybiBlcnJvcnMKICAgICAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5FcnJvckNvZGUnCiAgICAgICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICdFcnJvciBEZXNjcmlwdGlvbicKICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICMgSWYgSW5jbHVkZVRpY2tldERhdGEgaXMgZW5hYmxlZAogICAgICAgICAgICBUaWNrZXQgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFRpY2tldE51bWJlciAgICAgICA9PiAnMjAxMDEwMjcwMDAwMDEnLAogICAgICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICA9PiAnc29tZSB0aXRsZScsCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICAgICAgID0+IDEyMywKICAgICAgICAgICAgICAgICAgICBTdGF0ZSAgICAgICAgICAgICAgPT4gJ3NvbWUgc3RhdGUnLAogICAgICAgICAgICAgICAgICAgIFN0YXRlSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgID0+ICdzb21lIHN0YXRlIHR5cGUnLAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ICAgICAgICAgICA9PiAnc29tZSBwcmlvcml0eScsCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHlJRCAgICAgICAgID0+IDEyMywKICAgICAgICAgICAgICAgICAgICBMb2NrICAgICAgICAgICAgICAgPT4gJ2xvY2snLAogICAgICAgICAgICAgICAgICAgIExvY2tJRCAgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgICAgICAgICAgICAgUXVldWUgICAgICAgICAgICAgID0+ICdzb21lIHF1ZXVlJywKICAgICAgICAgICAgICAgICAgICBRdWV1ZUlEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgICAgICAgICAgICAgIEN1c3RvbWVySUQgICAgICAgICA9PiAnY3VzdG9tZXJfaWRfMTIzJywKICAgICAgICAgICAgICAgICAgICBDdXN0b21lclVzZXJJRCAgICAgPT4gJ2N1c3RvbWVyX3VzZXJfaWRfMTIzJywKICAgICAgICAgICAgICAgICAgICBPd25lciAgICAgICAgICAgICAgPT4gJ3NvbWVfb3duZXJfbG9naW4nLAogICAgICAgICAgICAgICAgICAgIE93bmVySUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgICAgICAgICAgICAgVHlwZSAgICAgICAgICAgICAgID0+ICdzb21lIHRpY2tldCB0eXBlJywKICAgICAgICAgICAgICAgICAgICBUeXBlSUQgICAgICAgICAgICAgPT4gMTIzLAogICAgICAgICAgICAgICAgICAgIFNMQSAgICAgICAgICAgICAgICA9PiAnc29tZSBzbGEnLAogICAgICAgICAgICAgICAgICAgIFNMQUlEICAgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgICAgICAgICAgICAgU2VydmljZSAgICAgICAgICAgID0+ICdzb21lIHNlcnZpY2UnLAogICAgICAgICAgICAgICAgICAgIFNlcnZpY2VJRCAgICAgICAgICA9PiAxMjMsCiAgICAgICAgICAgICAgICAgICAgUmVzcG9uc2libGUgICAgICAgID0+ICdzb21lX3Jlc3BvbnNpYmxlX2xvZ2luJywKICAgICAgICAgICAgICAgICAgICBSZXNwb25zaWJsZUlEICAgICAgPT4gMTIzLAogICAgICAgICAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICA9PiAzNDU2LAogICAgICAgICAgICAgICAgICAgIENyZWF0ZWQgICAgICAgICAgICA9PiAnMjAxMC0xMC0yNyAyMDoxNTowMCcKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeSAgICAgICAgICAgPT4gMTIzLAogICAgICAgICAgICAgICAgICAgIENoYW5nZWQgICAgICAgICAgICA9PiAnMjAxMC0xMC0yNyAyMDoxNToxNScsCiAgICAgICAgICAgICAgICAgICAgQ2hhbmdlQnkgICAgICAgICAgID0+IDEyMywKICAgICAgICAgICAgICAgICAgICBBcmNoaXZlRmxhZyAgICAgICAgPT4gJ3knLAoKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGQgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lICA9PiAnc29tZSBuYW1lJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICdzb21lIHZhbHVlJywKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBdLAoKICAgICAgICAgICAgICAgICAgICAjICh0aW1lIHN0YW1wcyBvZiBleHBlY3RlZCBlc2NhbGF0aW9ucykKICAgICAgICAgICAgICAgICAgICBFc2NhbGF0aW9uUmVzcG9uc2VUaW1lICAgICAgICAgICAodW5peCB0aW1lIHN0YW1wIG9mIHJlc3BvbnNlIHRpbWUgZXNjYWxhdGlvbikKICAgICAgICAgICAgICAgICAgICBFc2NhbGF0aW9uVXBkYXRlVGltZSAgICAgICAgICAgICAodW5peCB0aW1lIHN0YW1wIG9mIHVwZGF0ZSB0aW1lIGVzY2FsYXRpb24pCiAgICAgICAgICAgICAgICAgICAgRXNjYWxhdGlvblNvbHV0aW9uVGltZSAgICAgICAgICAgKHVuaXggdGltZSBzdGFtcCBvZiBzb2x1dGlvbiB0aW1lIGVzY2FsYXRpb24pCgogICAgICAgICAgICAgICAgICAgICMgKGdlbmVyYWwgZXNjYWxhdGlvbiBpbmZvIG9mIG5lYXJlc3QgZXNjYWxhdGlvbiB0eXBlKQogICAgICAgICAgICAgICAgICAgIEVzY2FsYXRpb25EZXN0aW5hdGlvbkluICAgICAgICAgIChlc2NhbGF0aW9uIGluIGUuIGcuIDFoIDRtKQogICAgICAgICAgICAgICAgICAgIEVzY2FsYXRpb25EZXN0aW5hdGlvblRpbWUgICAgICAgIChkYXRlIG9mIGVzY2FsYXRpb24gaW4gdW5peCB0aW1lLCBlLiBnLiA3MjE5MzI5MikKICAgICAgICAgICAgICAgICAgICBFc2NhbGF0aW9uRGVzdGluYXRpb25EYXRlICAgICAgICAoZGF0ZSBvZiBlc2NhbGF0aW9uLCBlLiBnLiAiMjAwOS0wMi0xNCAxODowMDowMCIpCiAgICAgICAgICAgICAgICAgICAgRXNjYWxhdGlvblRpbWVXb3JraW5nVGltZSAgICAgICAgKHNlY29uZHMgb2Ygd29ya2luZy9zZXJ2aWNlIHRpbWUgdGlsbCBlc2NhbGF0aW9uLCBlLiBnLiAiMTgwMCIpCiAgICAgICAgICAgICAgICAgICAgRXNjYWxhdGlvblRpbWUgICAgICAgICAgICAgICAgICAgKHNlY29uZHMgdG90YWwgdGlsbCBlc2NhbGF0aW9uIG9mIG5lYXJlc3QgZXNjYWxhdGlvbiB0aW1lIHR5cGUgLSByZXNwb25zZSwgdXBkYXRlIG9yIHNvbHV0aW9uIHRpbWUsIGUuIGcuICIzNjAwIikKCiAgICAgICAgICAgICAgICAgICAgIyAoZGV0YWlsZWQgZXNjYWxhdGlvbiBpbmZvIGFib3V0IGZpcnN0IHJlc3BvbnNlLCB1cGRhdGUgYW5kIHNvbHV0aW9uIHRpbWUpCiAgICAgICAgICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVFc2NhbGF0aW9uICAgICAgKGlmIHRydWUsIHRpY2tldCBpcyBlc2NhbGF0ZWQpCiAgICAgICAgICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVOb3RpZmljYXRpb24gICAgKGlmIHRydWUsIG5vdGlmeSAtIHglIG9mIGVzY2FsYXRpb24gaGFzIHJlYWNoZWQpCiAgICAgICAgICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVEZXN0aW5hdGlvblRpbWUgKGRhdGUgb2YgZXNjYWxhdGlvbiBpbiB1bml4IHRpbWUsIGUuIGcuIDcyMTkzMjkyKQogICAgICAgICAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25EYXRlIChkYXRlIG9mIGVzY2FsYXRpb24sIGUuIGcuICIyMDA5LTAyLTE0IDE4OjAwOjAwIikKICAgICAgICAgICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZVdvcmtpbmdUaW1lICAgICAoc2Vjb25kcyBvZiB3b3JraW5nL3NlcnZpY2UgdGltZSB0aWxsIGVzY2FsYXRpb24sIGUuIGcuICIxODAwIikKICAgICAgICAgICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZSAgICAgICAgICAgICAgICAoc2Vjb25kcyB0b3RhbCB0aWxsIGVzY2FsYXRpb24sIGUuIGcuICIzNjAwIikKCiAgICAgICAgICAgICAgICAgICAgVXBkYXRlVGltZUVzY2FsYXRpb24gICAgICAgICAgICAgKGlmIHRydWUsIHRpY2tldCBpcyBlc2NhbGF0ZWQpCiAgICAgICAgICAgICAgICAgICAgVXBkYXRlVGltZU5vdGlmaWNhdGlvbiAgICAgICAgICAgKGlmIHRydWUsIG5vdGlmeSAtIHglIG9mIGVzY2FsYXRpb24gaGFzIHJlYWNoZWQpCiAgICAgICAgICAgICAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uVGltZSAgICAgICAgKGRhdGUgb2YgZXNjYWxhdGlvbiBpbiB1bml4IHRpbWUsIGUuIGcuIDcyMTkzMjkyKQogICAgICAgICAgICAgICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvbkRhdGUgICAgICAgIChkYXRlIG9mIGVzY2FsYXRpb24sIGUuIGcuICIyMDA5LTAyLTE0IDE4OjAwOjAwIikKICAgICAgICAgICAgICAgICAgICBVcGRhdGVUaW1lV29ya2luZ1RpbWUgICAgICAgICAgICAoc2Vjb25kcyBvZiB3b3JraW5nL3NlcnZpY2UgdGltZSB0aWxsIGVzY2FsYXRpb24sIGUuIGcuICIxODAwIikKICAgICAgICAgICAgICAgICAgICBVcGRhdGVUaW1lICAgICAgICAgICAgICAgICAgICAgICAoc2Vjb25kcyB0b3RhbCB0aWxsIGVzY2FsYXRpb24sIGUuIGcuICIzNjAwIikKCiAgICAgICAgICAgICAgICAgICAgU29sdXRpb25UaW1lRXNjYWxhdGlvbiAgICAgICAgICAgKGlmIHRydWUsIHRpY2tldCBpcyBlc2NhbGF0ZWQpCiAgICAgICAgICAgICAgICAgICAgU29sdXRpb25UaW1lTm90aWZpY2F0aW9uICAgICAgICAgKGlmIHRydWUsIG5vdGlmeSAtIHglIG9mIGVzY2FsYXRpb24gaGFzIHJlYWNoZWQpCiAgICAgICAgICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25UaW1lICAgICAgKGRhdGUgb2YgZXNjYWxhdGlvbiBpbiB1bml4IHRpbWUsIGUuIGcuIDcyMTkzMjkyKQogICAgICAgICAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgIChkYXRlIG9mIGVzY2FsYXRpb24sIGUuIGcuICIyMDA5LTAyLTE0IDE4OjAwOjAwIikKICAgICAgICAgICAgICAgICAgICBTb2x1dGlvblRpbWVXb3JraW5nVGltZSAgICAgICAgICAoc2Vjb25kcyBvZiB3b3JraW5nL3NlcnZpY2UgdGltZSB0aWxsIGVzY2FsYXRpb24sIGUuIGcuICIxODAwIikKICAgICAgICAgICAgICAgICAgICBTb2x1dGlvblRpbWUgICAgICAgICAgICAgICAgICAgICAoc2Vjb25kcyB0b3RhbCB0aWxsIGVzY2FsYXRpb24sIGUuIGcuICIzNjAwIikKCiAgICAgICAgICAgICAgICAgICAgQXJ0aWNsZSA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFydGljbGVJRAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJvbQogICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENjCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCb2R5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXBseVRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlSUQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluUmVwbHlUbwogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVmZXJlbmNlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VuZGVyVHlwZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VuZGVyVHlwZUlECiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tdW5pY2F0aW9uQ2hhbm5lbElECiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJc1Zpc2libGVGb3JDdXN0b21lcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJzZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pbWVUeXBlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmNvbWluZ1RpbWUKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGQgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAgPT4gJ3NvbWUgbmFtZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICdzb21lIHZhbHVlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRhY2htZW50ID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgICAgICAgICAgICA9PiAieHh4eCIsICAgICAjIGFjdHVhbCBhdHRhY2htZW50IGNvbnRlbnRzLCBiYXNlNjQgZW5jb25kZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudEFsdGVybmF0aXZlID0+ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50SUQgICAgICAgICAgPT4gIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlICAgICAgICA9PiAiYXBwbGljYXRpb24vcGRmIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsZW5hbWUgICAgICAgICAgID0+ICJTdGRBdHRhY2htZW50LVRlc3QxLnBkZiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVzaXplICAgICAgICAgICA9PiAiNC42IEtCeXRlcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVzaXplUmF3ICAgICAgICA9PiA0NzIyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICB9OwoKPWN1dAoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRSZXN1bHQgPSAkU2VsZi0+SW5pdCgKICAgICAgICBXZWJzZXJ2aWNlSUQgPT4gJFNlbGYtPntXZWJzZXJ2aWNlSUR9LAogICAgKTsKCiAgICBpZiAoICEkUmVzdWx0LT57U3VjY2Vzc30gKSB7CiAgICAgICAgJFNlbGYtPlJldHVybkVycm9yKAogICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1dlYnNlcnZpY2UuSW52YWxpZENvbmZpZ3VyYXRpb24nLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJFJlc3VsdC0+e0Vycm9yTWVzc2FnZX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoICRQYXJhbXtEYXRhfSApICkgewogICAgICAgIHJldHVybiAkU2VsZi0+UmV0dXJuRXJyb3IoCiAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkVtcHR5UmVxdWVzdCcsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBUaGUgcmVxdWVzdCBkYXRhIGlzIGludmFsaWQhIiwKICAgICAgICApOwogICAgfQoKICAgIGlmICggISRQYXJhbXtEYXRhfS0+e1RpY2tldElEfSAmJiAhJFBhcmFte0RhdGF9LT57VGlja2V0TnVtYmVyfSApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPlJldHVybkVycm9yKAogICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5NaXNzaW5nUGFyYW1ldGVyJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IFRpY2tldElEIG9yIFRpY2tldE51bWJlciBpcyByZXF1aXJlZCEiLAogICAgICAgICk7CiAgICB9CgogICAgaWYgKAogICAgICAgICEkUGFyYW17RGF0YX0tPntVc2VyTG9naW59CiAgICAgICAgJiYgISRQYXJhbXtEYXRhfS0+e0N1c3RvbWVyVXNlckxvZ2lufQogICAgICAgICYmICEkUGFyYW17RGF0YX0tPntTZXNzaW9uSUR9CiAgICAgICAgKQogICAgewogICAgICAgIHJldHVybiAkU2VsZi0+UmV0dXJuRXJyb3IoCiAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLk1pc3NpbmdQYXJhbWV0ZXInLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogVXNlckxvZ2luLCBDdXN0b21lclVzZXJMb2dpbiBvciBTZXNzaW9uSUQgaXMgcmVxdWlyZWQhIiwKICAgICAgICApOwogICAgfQoKICAgIGlmICggJFBhcmFte0RhdGF9LT57VXNlckxvZ2lufSB8fCAkUGFyYW17RGF0YX0tPntDdXN0b21lclVzZXJMb2dpbn0gKSB7CiAgICAgICAgaWYgKCAhJFBhcmFte0RhdGF9LT57UGFzc3dvcmR9ICkgewogICAgICAgICAgICByZXR1cm4gJFNlbGYtPlJldHVybkVycm9yKAogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuTWlzc2luZ1BhcmFtZXRlcicsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogUGFzc3dvcmQgb3IgU2Vzc2lvbklEIGlzIHJlcXVpcmVkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgYXV0aGVudGljYXRlIHVzZXIKICAgIG15ICggJFVzZXJJRCwgJFVzZXJUeXBlICkgPSAkU2VsZi0+QXV0aCgKICAgICAgICAlUGFyYW0sCiAgICApOwoKICAgIGlmICggISRVc2VySUQgKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT5SZXR1cm5FcnJvcigKICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuQXV0aEZhaWwnLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogVXNlciBjb3VsZCBub3QgYmUgYXV0aGVudGljYXRlZCEiLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJFBlcm1pc3Npb25Vc2VySUQgPSAkVXNlcklEOwoKICAgIGlmICggJFVzZXJUeXBlIGVxICdDdXN0b21lcicgKSB7CiAgICAgICAgJFVzZXJJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnQ3VzdG9tZXJQYW5lbFVzZXJJRCcpOwogICAgfQoKICAgICMgZ2V0IHRpY2tldCBvYmplY3QKICAgIG15ICRUaWNrZXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CgogICAgIyBjaGVjayBUaWNrZXRJRAogICAgbXkgJFRpY2tldElEOwogICAgaWYgKCAkUGFyYW17RGF0YX0tPntUaWNrZXROdW1iZXJ9ICkgewogICAgICAgICRUaWNrZXRJRCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldElETG9va3VwKAogICAgICAgICAgICBUaWNrZXROdW1iZXIgPT4gJFBhcmFte0RhdGF9LT57VGlja2V0TnVtYmVyfSwKICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRVc2VySUQsCiAgICAgICAgKTsKCiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkVGlja2V0SUQgPSAkUGFyYW17RGF0YX0tPntUaWNrZXRJRH07CiAgICB9CgogICAgaWYgKCAhKCRUaWNrZXRJRCkgKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT5SZXR1cm5FcnJvcigKICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuQWNjZXNzRGVuaWVkJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IFVzZXIgZG9lcyBub3QgaGF2ZSBhY2Nlc3MgdG8gdGhlIHRpY2tldCEiLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJVRpY2tldERhdGEgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRHZXQoCiAgICAgICAgVGlja2V0SUQgICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgRHluYW1pY0ZpZWxkcyA9PiAwLAogICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFVzZXJJRCwKICAgICk7CgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoIFwlVGlja2V0RGF0YSApICkgewogICAgICAgIHJldHVybiAkU2VsZi0+UmV0dXJuRXJyb3IoCiAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkFjY2Vzc0RlbmllZCcsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBVc2VyIGRvZXMgbm90IGhhdmUgYWNjZXNzIHRvIHRoZSB0aWNrZXQhIiwKICAgICAgICApOwogICAgfQoKICAgICMgY2hlY2sgYmFzaWMgbmVlZGVkIHBlcm1pc3Npb25zCiAgICBteSAkQWNjZXNzID0gJFNlbGYtPkNoZWNrQWNjZXNzUGVybWlzc2lvbnMoCiAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgIFVzZXJJRCAgID0+ICRQZXJtaXNzaW9uVXNlcklELAogICAgICAgIFVzZXJUeXBlID0+ICRVc2VyVHlwZSwKICAgICk7CgogICAgaWYgKCAhJEFjY2VzcyApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPlJldHVybkVycm9yKAogICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5BY2Nlc3NEZW5pZWQnLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogVXNlciBkb2VzIG5vdCBoYXZlIGFjY2VzcyB0byB0aGUgdGlja2V0ISIsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNoZWNrIG9wdGlvbmFsIGhhc2hlcwogICAgZm9yIG15ICRPcHRpb25hbCAocXcoVGlja2V0IEFydGljbGUpKSB7CiAgICAgICAgaWYgKAogICAgICAgICAgICBkZWZpbmVkICRQYXJhbXtEYXRhfS0+eyRPcHRpb25hbH0KICAgICAgICAgICAgJiYgIUlzSGFzaFJlZldpdGhEYXRhKCAkUGFyYW17RGF0YX0tPnskT3B0aW9uYWx9ICkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT5SZXR1cm5FcnJvcigKICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkludmFsaWRQYXJhbWV0ZXInLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6ICRPcHRpb25hbCBwYXJhbWV0ZXIgaXMgbm90IHZhbGlkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgb3B0aW9uYWwgYXJyYXkvaGFzaGVzCiAgICBmb3IgbXkgJE9wdGlvbmFsIChxdyhEeW5hbWljRmllbGQgQXR0YWNobWVudCkpIHsKICAgICAgICBpZiAoCiAgICAgICAgICAgIGRlZmluZWQgJFBhcmFte0RhdGF9LT57JE9wdGlvbmFsfQogICAgICAgICAgICAmJiAhSXNIYXNoUmVmV2l0aERhdGEoICRQYXJhbXtEYXRhfS0+eyRPcHRpb25hbH0gKQogICAgICAgICAgICAmJiAhSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17RGF0YX0tPnskT3B0aW9uYWx9ICkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT5SZXR1cm5FcnJvcigKICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLk1pc3NpbmdQYXJhbWV0ZXInLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6ICRPcHRpb25hbCBwYXJhbWV0ZXIgaXMgbWlzc2luZyBvciBub3QgdmFsaWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJFRpY2tldDsKICAgIGlmICggZGVmaW5lZCAkUGFyYW17RGF0YX0tPntUaWNrZXR9ICkgewoKICAgICAgICAjIGlzb2xhdGUgdGlja2V0IHBhcmFtZXRlcgogICAgICAgICRUaWNrZXQgPSAkUGFyYW17RGF0YX0tPntUaWNrZXR9OwoKICAgICAgICAkVGlja2V0LT57VXNlcklEfSA9ICRVc2VySUQ7CgogICAgICAgICMgcmVtb3ZlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHNwYWNlcwogICAgICAgIGZvciBteSAkQXR0cmlidXRlICggc29ydCBrZXlzICRUaWNrZXQtPiUqICkgewogICAgICAgICAgICBpZiAoICFyZWZ0eXBlICRUaWNrZXQtPnskQXR0cmlidXRlfSApIHsKCiAgICAgICAgICAgICAgICAjcmVtb3ZlIGxlYWRpbmcgc3BhY2VzCiAgICAgICAgICAgICAgICAkVGlja2V0LT57JEF0dHJpYnV0ZX0gPX4gc3tcQVxzK317fTsKCiAgICAgICAgICAgICAgICAjcmVtb3ZlIHRyYWlsaW5nIHNwYWNlcwogICAgICAgICAgICAgICAgJFRpY2tldC0+eyRBdHRyaWJ1dGV9ID1+IHN7XHMrXHp9e307CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJFRpY2tldC0+e1BlbmRpbmdUaW1lfSApICkgewogICAgICAgICAgICBmb3IgbXkgJEF0dHJpYnV0ZSAoIHNvcnQga2V5cyAkVGlja2V0LT57UGVuZGluZ1RpbWV9LT4lKiApIHsKICAgICAgICAgICAgICAgIGlmICggIXJlZnR5cGUgJFRpY2tldC0+e1BlbmRpbmdUaW1lfS0+eyRBdHRyaWJ1dGV9ICkgewoKICAgICAgICAgICAgICAgICAgICAjcmVtb3ZlIGxlYWRpbmcgc3BhY2VzCiAgICAgICAgICAgICAgICAgICAgJFRpY2tldC0+e1BlbmRpbmdUaW1lfS0+eyRBdHRyaWJ1dGV9ID1+IHN7XEFccyt9e307CgogICAgICAgICAgICAgICAgICAgICNyZW1vdmUgdHJhaWxpbmcgc3BhY2VzCiAgICAgICAgICAgICAgICAgICAgJFRpY2tldC0+e1BlbmRpbmdUaW1lfS0+eyRBdHRyaWJ1dGV9ID1+IHN7XHMrXHp9e307CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgY2hlY2sgVGlja2V0IGF0dHJpYnV0ZSB2YWx1ZXMKICAgICAgICBteSAkVGlja2V0Q2hlY2sgPSAkU2VsZi0+X0NoZWNrVGlja2V0KAogICAgICAgICAgICBUaWNrZXQgICAgPT4gJFRpY2tldCwKICAgICAgICAgICAgT2xkVGlja2V0ID0+IFwlVGlja2V0RGF0YSwKICAgICAgICApOwoKICAgICAgICBpZiAoICEkVGlja2V0Q2hlY2stPntTdWNjZXNzfSApIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT5SZXR1cm5FcnJvciggJXskVGlja2V0Q2hlY2t9ICk7CiAgICAgICAgfQogICAgfQoKICAgIG15ICRBcnRpY2xlOwogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtEYXRhfS0+e0FydGljbGV9ICkgewoKICAgICAgICAkQXJ0aWNsZSA9ICRQYXJhbXtEYXRhfS0+e0FydGljbGV9OwogICAgICAgICRBcnRpY2xlLT57VXNlclR5cGV9ID0gJFVzZXJUeXBlOwoKICAgICAgICAjIHJlbW92ZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBzcGFjZXMKICAgICAgICBmb3IgbXkgJEF0dHJpYnV0ZSAoIHNvcnQga2V5cyAkQXJ0aWNsZS0+JSogKSB7CiAgICAgICAgICAgIGlmICggIXJlZnR5cGUgJEFydGljbGUtPnskQXR0cmlidXRlfSApIHsKCiAgICAgICAgICAgICAgICAjcmVtb3ZlIGxlYWRpbmcgc3BhY2VzCiAgICAgICAgICAgICAgICAkQXJ0aWNsZS0+eyRBdHRyaWJ1dGV9ID1+IHN7XEFccyt9e307CgogICAgICAgICAgICAgICAgI3JlbW92ZSB0cmFpbGluZyBzcGFjZXMKICAgICAgICAgICAgICAgICRBcnRpY2xlLT57JEF0dHJpYnV0ZX0gPX4gc3tccytcen17fTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkQXJ0aWNsZS0+e09yaWdIZWFkZXJ9ICkgKSB7CiAgICAgICAgICAgIGZvciBteSAkQXR0cmlidXRlICggc29ydCBrZXlzICRBcnRpY2xlLT57T3JpZ0hlYWRlcn0tPiUqICkgewogICAgICAgICAgICAgICAgaWYgKCAhcmVmdHlwZSAkQXJ0aWNsZS0+e09yaWdIZWFkZXJ9LT57JEF0dHJpYnV0ZX0gKSB7CgogICAgICAgICAgICAgICAgICAgICNyZW1vdmUgbGVhZGluZyBzcGFjZXMKICAgICAgICAgICAgICAgICAgICAkQXJ0aWNsZS0+e09yaWdIZWFkZXJ9LT57JEF0dHJpYnV0ZX0gPX4gc3tcQVxzK317fTsKCiAgICAgICAgICAgICAgICAgICAgI3JlbW92ZSB0cmFpbGluZyBzcGFjZXMKICAgICAgICAgICAgICAgICAgICAkQXJ0aWNsZS0+e09yaWdIZWFkZXJ9LT57JEF0dHJpYnV0ZX0gPX4gc3tccytcen17fTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBDaGVjayBhdHRyaWJ1dGVzIHRoYXQgY2FuIGJlIHNldCBieSBzeXNjb25maWcuCiAgICAgICAgaWYgKCAhJEFydGljbGUtPntBdXRvUmVzcG9uc2VUeXBlfSApIHsKICAgICAgICAgICAgJEFydGljbGUtPntBdXRvUmVzcG9uc2VUeXBlfSA9ICRTZWxmLT57Q29uZmlnfS0+e0F1dG9SZXNwb25zZVR5cGV9IHx8ICcnOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJEFydGljbGUtPntDb21tdW5pY2F0aW9uQ2hhbm5lbElEfSAmJiAhJEFydGljbGUtPntDb21tdW5pY2F0aW9uQ2hhbm5lbH0gKSB7CiAgICAgICAgICAgICRBcnRpY2xlLT57Q29tbXVuaWNhdGlvbkNoYW5uZWx9ID0gJ0ludGVybmFsJzsKICAgICAgICB9CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkQXJ0aWNsZS0+e0lzVmlzaWJsZUZvckN1c3RvbWVyfSApIHsKICAgICAgICAgICAgJEFydGljbGUtPntJc1Zpc2libGVGb3JDdXN0b21lcn0gPSAkU2VsZi0+e0NvbmZpZ30tPntJc1Zpc2libGVGb3JDdXN0b21lcn0gLy8gMTsKICAgICAgICB9CiAgICAgICAgaWYgKCAhJEFydGljbGUtPntTZW5kZXJUeXBlSUR9ICYmICEkQXJ0aWNsZS0+e1NlbmRlclR5cGV9ICkgewogICAgICAgICAgICAkQXJ0aWNsZS0+e1NlbmRlclR5cGV9ID0gJFVzZXJUeXBlIGVxICdVc2VyJyA/ICdhZ2VudCcgOiAnY3VzdG9tZXInOwogICAgICAgIH0KICAgICAgICBpZiAoICEkQXJ0aWNsZS0+e0hpc3RvcnlUeXBlfSApIHsKICAgICAgICAgICAgJEFydGljbGUtPntIaXN0b3J5VHlwZX0gPSAkU2VsZi0+e0NvbmZpZ30tPntIaXN0b3J5VHlwZX0gfHwgJyc7CiAgICAgICAgfQogICAgICAgIGlmICggISRBcnRpY2xlLT57SGlzdG9yeUNvbW1lbnR9ICkgewogICAgICAgICAgICAkQXJ0aWNsZS0+e0hpc3RvcnlDb21tZW50fSA9ICRTZWxmLT57Q29uZmlnfS0+e0hpc3RvcnlDb21tZW50fSB8fCAnJzsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgQXJ0aWNsZSBhdHRyaWJ1dGUgdmFsdWVzCiAgICAgICAgbXkgJEFydGljbGVDaGVjayA9ICRTZWxmLT5fQ2hlY2tBcnRpY2xlKCBBcnRpY2xlID0+ICRBcnRpY2xlICk7CgogICAgICAgIGlmICggISRBcnRpY2xlQ2hlY2stPntTdWNjZXNzfSApIHsKICAgICAgICAgICAgaWYgKCAhJEFydGljbGVDaGVjay0+e0Vycm9yQ29kZX0gKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgICAgICAgICAgICAgICAgICAleyRBcnRpY2xlQ2hlY2t9LAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gJFNlbGYtPlJldHVybkVycm9yKCAleyRBcnRpY2xlQ2hlY2t9ICk7CiAgICAgICAgfQogICAgfQoKICAgIG15IEBEeW5hbWljRmllbGRMaXN0OwogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtEYXRhfS0+e0R5bmFtaWNGaWVsZH0gKSB7CgogICAgICAgICMgaXNvbGF0ZSBEeW5hbWljRmllbGQgcGFyYW1ldGVyCiAgICAgICAgbXkgJER5bmFtaWNGaWVsZCA9ICRQYXJhbXtEYXRhfS0+e0R5bmFtaWNGaWVsZH07CgogICAgICAgICMgaG9tb2dlbmF0ZSBpbnB1dCB0byBhcnJheQogICAgICAgIGlmICggcmVmICREeW5hbWljRmllbGQgZXEgJ0hBU0gnICkgewogICAgICAgICAgICBwdXNoIEBEeW5hbWljRmllbGRMaXN0LCAkRHluYW1pY0ZpZWxkOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgQER5bmFtaWNGaWVsZExpc3QgPSAkRHluYW1pY0ZpZWxkLT5AKjsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgRHluYW1pY0ZpZWxkIGludGVybmFsIHN0cnVjdHVyZQogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkSXRlbSAoQER5bmFtaWNGaWVsZExpc3QpIHsKICAgICAgICAgICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZEl0ZW0pICkgewogICAgICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5JbnZhbGlkUGFyYW1ldGVyJywKICAgICAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAgICAgIlRpY2tldFVwZGF0ZTogVGlja2V0LT5EeW5hbWljRmllbGQgcGFyYW1ldGVyIGlzIGludmFsaWQhIiwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgcmVtb3ZlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHNwYWNlcwogICAgICAgICAgICBBVFRSSUJVVEU6CiAgICAgICAgICAgIGZvciBteSAkQXR0cmlidXRlICggc29ydCBrZXlzICV7JER5bmFtaWNGaWVsZEl0ZW19ICkgewogICAgICAgICAgICAgICAgbmV4dCBBVFRSSUJVVEUgaWYgcmVmdHlwZSAkRHluYW1pY0ZpZWxkSXRlbS0+eyRBdHRyaWJ1dGV9OwoKICAgICAgICAgICAgICAgICMgVE9ETzogdGhpcyBtaWdodCBiZSBhIGNhc2Ugd2hlcmUgaW5wdXQgZGF0YSBpcyBtb2RpZmllZAogICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZEl0ZW0tPnskQXR0cmlidXRlfSA9fiBze1xBXHMrfXt9OwogICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZEl0ZW0tPnskQXR0cmlidXRlfSA9fiBze1xzK1x6fXt9OwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGNoZWNrIER5bmFtaWNGaWVsZCBhdHRyaWJ1dGUgdmFsdWVzCiAgICAgICAgICAgIG15ICREeW5hbWljRmllbGRDaGVjayA9ICRTZWxmLT5fQ2hlY2tEeW5hbWljRmllbGQoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGQgPT4gJER5bmFtaWNGaWVsZEl0ZW0sCiAgICAgICAgICAgICAgICBBcnRpY2xlICAgICAgPT4gJEFydGljbGUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoICEkRHluYW1pY0ZpZWxkQ2hlY2stPntTdWNjZXNzfSApIHsKICAgICAgICAgICAgICAgIHJldHVybiAkU2VsZi0+UmV0dXJuRXJyb3IoICV7JER5bmFtaWNGaWVsZENoZWNrfSApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIG15IEBBdHRhY2htZW50TGlzdDsKICAgIGlmICggZGVmaW5lZCAkUGFyYW17RGF0YX0tPntBdHRhY2htZW50fSApIHsKCiAgICAgICAgIyBpc29sYXRlIEF0dGFjaG1lbnQgcGFyYW1ldGVyCiAgICAgICAgbXkgJEF0dGFjaG1lbnQgPSAkUGFyYW17RGF0YX0tPntBdHRhY2htZW50fTsKCiAgICAgICAgIyBob21vZ2VuYXRlIGlucHV0IHRvIGFycmF5CiAgICAgICAgaWYgKCByZWYgJEF0dGFjaG1lbnQgZXEgJ0hBU0gnICkgewogICAgICAgICAgICBwdXNoIEBBdHRhY2htZW50TGlzdCwgJEF0dGFjaG1lbnQ7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBAQXR0YWNobWVudExpc3QgPSBAeyRBdHRhY2htZW50fTsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgQXR0YWNobWVudCBpbnRlcm5hbCBzdHJ1Y3R1cmUKICAgICAgICBmb3IgbXkgJEF0dGFjaG1lbnRJdGVtIChAQXR0YWNobWVudExpc3QpIHsKICAgICAgICAgICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJEF0dGFjaG1lbnRJdGVtKSApIHsKICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuSW52YWxpZFBhcmFtZXRlcicsCiAgICAgICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAgICAgICAgICJUaWNrZXRVcGRhdGU6IFRpY2tldC0+QXR0YWNobWVudCBwYXJhbWV0ZXIgaXMgaW52YWxpZCEiLAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyByZW1vdmUgbGVhZGluZyBhbmQgdHJhaWxpbmcgc3BhY2VzCiAgICAgICAgICAgIGZvciBteSAkQXR0cmlidXRlICggc29ydCBrZXlzICRBdHRhY2htZW50SXRlbS0+JSogKSB7CiAgICAgICAgICAgICAgICBpZiAoICFyZWZ0eXBlICRBdHRhY2htZW50SXRlbS0+eyRBdHRyaWJ1dGV9ICkgewoKICAgICAgICAgICAgICAgICAgICAjcmVtb3ZlIGxlYWRpbmcgc3BhY2VzCiAgICAgICAgICAgICAgICAgICAgJEF0dGFjaG1lbnRJdGVtLT57JEF0dHJpYnV0ZX0gPX4gc3tcQVxzK317fTsKCiAgICAgICAgICAgICAgICAgICAgI3JlbW92ZSB0cmFpbGluZyBzcGFjZXMKICAgICAgICAgICAgICAgICAgICAkQXR0YWNobWVudEl0ZW0tPnskQXR0cmlidXRlfSA9fiBze1xzK1x6fXt9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGNoZWNrIEF0dGFjaG1lbnQgYXR0cmlidXRlIHZhbHVlcwogICAgICAgICAgICBteSAkQXR0YWNobWVudENoZWNrID0gJFNlbGYtPl9DaGVja0F0dGFjaG1lbnQoCiAgICAgICAgICAgICAgICBBdHRhY2htZW50ID0+ICRBdHRhY2htZW50SXRlbSwKICAgICAgICAgICAgICAgIEFydGljbGUgICAgPT4gJEFydGljbGUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoICEkQXR0YWNobWVudENoZWNrLT57U3VjY2Vzc30gKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJFNlbGYtPlJldHVybkVycm9yKCAleyRBdHRhY2htZW50Q2hlY2t9ICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICRTZWxmLT5fVGlja2V0VXBkYXRlKAogICAgICAgIFRpY2tldElEICAgICAgICAgPT4gJFRpY2tldElELAogICAgICAgIFRpY2tldCAgICAgICAgICAgPT4gJFRpY2tldCwKICAgICAgICBBcnRpY2xlICAgICAgICAgID0+ICRBcnRpY2xlLAogICAgICAgIER5bmFtaWNGaWVsZExpc3QgPT4gXEBEeW5hbWljRmllbGRMaXN0LAogICAgICAgIEF0dGFjaG1lbnRMaXN0ICAgPT4gXEBBdHRhY2htZW50TGlzdCwKICAgICAgICBVc2VySUQgICAgICAgICAgID0+ICRVc2VySUQsCiAgICAgICAgVXNlclR5cGUgICAgICAgICA9PiAkVXNlclR5cGUsCiAgICApOwp9Cgo9YmVnaW4gSW50ZXJuYWw6Cgo9aGVhZDIgX0NoZWNrVGlja2V0KCkKCmNoZWNrcyBpZiB0aGUgZ2l2ZW4gdGlja2V0IHBhcmFtZXRlcnMgYXJlIHZhbGlkLgoKICAgIG15ICRUaWNrZXRDaGVjayA9ICRPcGVyYXRpb25PYmplY3QtPl9DaGVja1RpY2tldCgKICAgICAgICBUaWNrZXQgPT4gJFRpY2tldCwgICAgICAgICAgICAgICAgICAgICAgICAgICMgYWxsIHRpY2tldCBwYXJhbWV0ZXJzCiAgICApOwoKcmV0dXJuczoKCiAgICAkVGlja2V0Q2hlY2sgPSB7CiAgICAgICAgU3VjY2VzcyA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGlmIGV2ZXJ5dGhpbmcgaXMgT0sKICAgIH0KCm9yCgogICAgJFRpY2tldENoZWNrID0gewogICAgICAgIEVycm9yQ29kZSAgICA9PiAnRnVuY3Rpb24uRXJyb3InLCAgICAgICAgICAgIyBpZiBlcnJvcgogICAgICAgIEVycm9yTWVzc2FnZSA9PiAnRXJyb3IgZGVzY3JpcHRpb24nLAogICAgfQoKPWN1dAoKc3ViIF9DaGVja1RpY2tldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRUaWNrZXQgICAgPSAkUGFyYW17VGlja2V0fTsKICAgIG15ICRPbGRUaWNrZXQgPSAkUGFyYW17T2xkVGlja2V0fTsKCiAgICAjIGNoZWNrIFRpY2tldC0+Q3VzdG9tZXJVc2VyCiAgICBpZiAoCiAgICAgICAgJFRpY2tldC0+e0N1c3RvbWVyVXNlcn0KICAgICAgICAmJiAhJFNlbGYtPlZhbGlkYXRlQ3VzdG9tZXIoICV7JFRpY2tldH0gKQogICAgICAgICkKICAgIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5JbnZhbGlkUGFyYW1ldGVyJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAiVGlja2V0VXBkYXRlOiBUaWNrZXQtPkN1c3RvbWVyVXNlciBwYXJhbWV0ZXIgaXMgaW52YWxpZCEiLAogICAgICAgIH07CiAgICB9CgogICAgIyBjaGVjayBUaWNrZXQtPlF1ZXVlCiAgICBpZiAoICRUaWNrZXQtPntRdWV1ZUlEfSB8fCAkVGlja2V0LT57UXVldWV9ICkgewogICAgICAgIGlmICggISRTZWxmLT5WYWxpZGF0ZVF1ZXVlKCAleyRUaWNrZXR9ICkgKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5JbnZhbGlkUGFyYW1ldGVyJywKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBUaWNrZXQtPlF1ZXVlSUQgb3IgVGlja2V0LT5RdWV1ZSBwYXJhbWV0ZXIgaXMiCiAgICAgICAgICAgICAgICAgICAgLiAiIGludmFsaWQhIiwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBUaWNrZXQtPkxvY2sKICAgIGlmICggJFRpY2tldC0+e0xvY2tJRH0gfHwgJFRpY2tldC0+e0xvY2t9ICkgewogICAgICAgIGlmICggISRTZWxmLT5WYWxpZGF0ZUxvY2soICV7JFRpY2tldH0gKSApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkludmFsaWRQYXJhbWV0ZXInLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IFRpY2tldC0+TG9ja0lEIG9yIFRpY2tldC0+TG9jayBwYXJhbWV0ZXIgaXMiCiAgICAgICAgICAgICAgICAgICAgLiAiIGludmFsaWQhIiwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBUaWNrZXQtPlR5cGUKICAgIGlmICggJFRpY2tldC0+e1R5cGVJRH0gfHwgJFRpY2tldC0+e1R5cGV9ICkgewogICAgICAgIGlmICggISRTZWxmLT5WYWxpZGF0ZVR5cGUoICV7JFRpY2tldH0gKSApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkludmFsaWRQYXJhbWV0ZXInLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAgICAgIlRpY2tldFVwZGF0ZTogVGlja2V0LT5UeXBlSUQgb3IgVGlja2V0LT5UeXBlIHBhcmFtZXRlciBpcyBpbnZhbGlkISIsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgVGlja2V0LT5TZXJ2aWNlCiAgICBpZiAoICRUaWNrZXQtPntTZXJ2aWNlSUR9IHx8ICRUaWNrZXQtPntTZXJ2aWNlfSApIHsKCiAgICAgICAgIyBzZXQgY3VzdG9tZXIgdXNlciBmcm9tIG9sZCB0aWNrZXQgaWYgbm8gbmV3IGN1c3RvbWVyIHVzZXIgaXMgdG8gYmUgc2V0CiAgICAgICAgbXkgJEN1c3RvbWVyVXNlciA9ICRUaWNrZXQtPntDdXN0b21lclVzZXJ9IHx8ICcnOwogICAgICAgIGlmICggISRDdXN0b21lclVzZXIgKSB7CiAgICAgICAgICAgICRDdXN0b21lclVzZXIgPSAkT2xkVGlja2V0LT57Q3VzdG9tZXJVc2VySUR9OwogICAgICAgIH0KICAgICAgICBpZiAoCiAgICAgICAgICAgICEkU2VsZi0+VmFsaWRhdGVTZXJ2aWNlKAogICAgICAgICAgICAgICAgJXskVGlja2V0fSwKICAgICAgICAgICAgICAgIEN1c3RvbWVyVXNlciA9PiAkQ3VzdG9tZXJVc2VyLAogICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5JbnZhbGlkUGFyYW1ldGVyJywKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgICAgICJUaWNrZXRVcGRhdGU6IFRpY2tldC0+U2VydmljZUlEIG9yIFRpY2tldC0+U2VydmljZSBwYXJhbWV0ZXIgaXMgaW52YWxpZCEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIFRpY2tldC0+U0xBCiAgICBpZiAoICRUaWNrZXQtPntTTEFJRH0gfHwgJFRpY2tldC0+e1NMQX0gKSB7CgogICAgICAgICMgc2V0IFNlcnZpY2VJRCBmcm9tIG9sZCB0aWNrZXQgaWYgbm8gbmV3IFNlcnZpY2VJRCBvciBTZXJ2aWNlIGlzIHRvIGJlIHNldAogICAgICAgIG15ICRTZXJ2aWNlICAgPSAkVGlja2V0LT57U2VydmljZX0gICB8fCAnJzsKICAgICAgICBteSAkU2VydmljZUlEID0gJFRpY2tldC0+e1NlcnZpY2VJRH0gfHwgJyc7CiAgICAgICAgaWYgKCAhJFNlcnZpY2VJRCAmJiAhJFNlcnZpY2UgKSB7CiAgICAgICAgICAgICRTZXJ2aWNlSUQgPSAkT2xkVGlja2V0LT57U2VydmljZUlEfTsKICAgICAgICB9CgogICAgICAgIGlmICgKICAgICAgICAgICAgISRTZWxmLT5WYWxpZGF0ZVNMQSgKICAgICAgICAgICAgICAgICV7JFRpY2tldH0sCiAgICAgICAgICAgICAgICBTZXJ2aWNlICAgPT4gJFNlcnZpY2UsCiAgICAgICAgICAgICAgICBTZXJ2aWNlSUQgPT4gJFNlcnZpY2VJRCwKICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuSW52YWxpZFBhcmFtZXRlcicsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAiVGlja2V0VXBkYXRlOiBUaWNrZXQtPlNMQUlEIG9yIFRpY2tldC0+U0xBIHBhcmFtZXRlciBpcyBpbnZhbGlkISIsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgVGlja2V0LT5TdGF0ZQogICAgaWYgKCAkVGlja2V0LT57U3RhdGVJRH0gfHwgJFRpY2tldC0+e1N0YXRlfSApIHsKICAgICAgICBpZiAoICEkU2VsZi0+VmFsaWRhdGVTdGF0ZSggJXskVGlja2V0fSApICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuSW52YWxpZFBhcmFtZXRlcicsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogVGlja2V0LT5TdGF0ZUlEIG9yIFRpY2tldC0+U3RhdGUgcGFyYW1ldGVyIGlzIgogICAgICAgICAgICAgICAgICAgIC4gIiBpbnZhbGlkISIsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgVGlja2V0LT5Qcmlvcml0eQogICAgaWYgKCAkVGlja2V0LT57UHJpb3JpdHlJRH0gfHwgJFRpY2tldC0+e1ByaW9yaXR5fSApIHsKICAgICAgICBpZiAoICEkU2VsZi0+VmFsaWRhdGVQcmlvcml0eSggJXskVGlja2V0fSApICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuSW52YWxpZFBhcmFtZXRlcicsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogVGlja2V0LT5Qcmlvcml0eUlEIG9yIFRpY2tldC0+UHJpb3JpdHkgcGFyYW1ldGVyIGlzIgogICAgICAgICAgICAgICAgICAgIC4gIiBpbnZhbGlkISIsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgVGlja2V0LT5Pd25lcgogICAgaWYgKCAkVGlja2V0LT57T3duZXJJRH0gfHwgJFRpY2tldC0+e093bmVyfSApIHsKICAgICAgICBpZiAoICEkU2VsZi0+VmFsaWRhdGVPd25lciggJXskVGlja2V0fSApICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuSW52YWxpZFBhcmFtZXRlcicsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAiVGlja2V0VXBkYXRlOiBUaWNrZXQtPk93bmVySUQgb3IgVGlja2V0LT5Pd25lciBwYXJhbWV0ZXIgaXMgaW52YWxpZCEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIFRpY2tldC0+UmVzcG9uc2libGUKICAgIGlmICggJFRpY2tldC0+e1Jlc3BvbnNpYmxlSUR9IHx8ICRUaWNrZXQtPntSZXNwb25zaWJsZX0gKSB7CiAgICAgICAgaWYgKCAhJFNlbGYtPlZhbGlkYXRlUmVzcG9uc2libGUoICV7JFRpY2tldH0gKSApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkludmFsaWRQYXJhbWV0ZXInLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IFRpY2tldC0+UmVzcG9uc2libGVJRCBvciBUaWNrZXQtPlJlc3BvbnNpYmxlIgogICAgICAgICAgICAgICAgICAgIC4gIiBwYXJhbWV0ZXIgaXMgaW52YWxpZCEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIFRpY2tldC0+UGVuZGluZ1RpbWUKICAgIGlmICggJFRpY2tldC0+e1BlbmRpbmdUaW1lfSApIHsKICAgICAgICBpZiAoICEkU2VsZi0+VmFsaWRhdGVQZW5kaW5nVGltZSggJXskVGlja2V0fSApICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuSW52YWxpZFBhcmFtZXRlcicsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogVGlja2V0LT5QZW5kaW5nVGltZSBwYXJhbWV0ZXIgaXMgaW52YWxpZCEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGlmIGV2ZXJ5dGhpbmcgaXMgT0sgdGhlbiByZXR1cm4gU3VjY2VzcwogICAgcmV0dXJuIHsKICAgICAgICBTdWNjZXNzID0+IDEsCiAgICB9Owp9Cgo9aGVhZDIgX0NoZWNrQXJ0aWNsZSgpCgpjaGVja3MgaWYgdGhlIGdpdmVuIGFydGljbGUgcGFyYW1ldGVyIGlzIHZhbGlkLgoKICAgIG15ICRBcnRpY2xlQ2hlY2sgPSAkT3BlcmF0aW9uT2JqZWN0LT5fQ2hlY2tBcnRpY2xlKAogICAgICAgIEFydGljbGUgPT4gJEFydGljbGUsICAgICAgICAgICAgICAgICAgICAgICAgIyBhbGwgYXJ0aWNsZSBwYXJhbWV0ZXJzCiAgICApOwoKICAgIHJldHVybnM6CgogICAgJEFydGljbGVDaGVjayA9IHsKICAgICAgICBTdWNjZXNzID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaWYgZXZlcnl0aGluZyBpcyBPSwogICAgfQoKICAgICRBcnRpY2xlQ2hlY2sgPSB7CiAgICAgICAgRXJyb3JDb2RlICAgID0+ICdGdW5jdGlvbi5FcnJvcicsICAgICAgICAgICAjIGlmIGVycm9yCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICdFcnJvciBkZXNjcmlwdGlvbicsCiAgICB9Cgo9Y3V0CgpzdWIgX0NoZWNrQXJ0aWNsZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRBcnRpY2xlID0gJFBhcmFte0FydGljbGV9OwoKICAgICMgY2hlY2sgdGlja2V0IGludGVybmFsbHkKICAgIGZvciBteSAkTmVlZGVkIChxdyhTdWJqZWN0IEJvZHkgQXV0b1Jlc3BvbnNlVHlwZSkpIHsKICAgICAgICBpZiAoICEkQXJ0aWNsZS0+eyROZWVkZWR9ICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuTWlzc2luZ1BhcmFtZXRlcicsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogQXJ0aWNsZS0+JE5lZWRlZCBwYXJhbWV0ZXIgaXMgbWlzc2luZyEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIEFydGljbGUtPkF1dG9SZXNwb25zZVR5cGUKICAgIGlmICggISRBcnRpY2xlLT57QXV0b1Jlc3BvbnNlVHlwZX0gKSB7CgogICAgICAgICMgcmV0dXJuIGludGVybmFsIHNlcnZlciBlcnJvcgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBBcnRpY2xlLT5BdXRvUmVzcG9uc2VUeXBlIHBhcmFtZXRlciBpcyByZXF1aXJlZCBhbmQiLAogICAgICAgIH07CiAgICB9CgogICAgaWYgKCAhJFNlbGYtPlZhbGlkYXRlQXV0b1Jlc3BvbnNlVHlwZSggJXskQXJ0aWNsZX0gKSApIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5JbnZhbGlkUGFyYW1ldGVyJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IEFydGljbGUtPkF1dG9SZXNwb25zZVR5cGUgcGFyYW1ldGVyIGlzIGludmFsaWQhIiwKICAgICAgICB9OwogICAgfQoKICAgICMgY2hlY2sgQXJ0aWNsZS0+Q29tbXVuaWNhdGlvbkNoYW5uZWwKICAgIGlmICggISRBcnRpY2xlLT57Q29tbXVuaWNhdGlvbkNoYW5uZWx9ICYmICEkQXJ0aWNsZS0+e0NvbW11bmljYXRpb25DaGFubmVsSUR9ICkgewoKICAgICAgICAjIHJldHVybiBpbnRlcm5hbCBzZXJ2ZXIgZXJyb3IKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogQXJ0aWNsZS0+Q29tbXVuaWNhdGlvbkNoYW5uZWxJRCBvciBBcnRpY2xlLT5Db21tdW5pY2F0aW9uQ2hhbm5lbCBwYXJhbWV0ZXIiCiAgICAgICAgICAgICAgICAuICIgaXMgcmVxdWlyZWQgYW5kIFN5c2NvbmZpZyBDb21tdW5pY2F0aW9uQ2hhbm5lbElEIHNldHRpbmcgY291bGQgbm90IGJlIHJlYWQhIgogICAgICAgIH07CiAgICB9CiAgICBpZiAoICEkU2VsZi0+VmFsaWRhdGVBcnRpY2xlQ29tbXVuaWNhdGlvbkNoYW5uZWwoICV7JEFydGljbGV9ICkgKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuSW52YWxpZFBhcmFtZXRlcicsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBBcnRpY2xlLT5Db21tdW5pY2F0aW9uQ2hhbm5lbCBvciBBcnRpY2xlLT5Db21tdW5pY2F0aW9uQ2hhbm5lbElEIHBhcmFtZXRlciIKICAgICAgICAgICAgICAgIC4gIiBpcyBpbnZhbGlkIG9yIG5vdCBzdXBwb3J0ZWQhIiwKICAgICAgICB9OwogICAgfQoKICAgICMgY2hlY2sgQXJ0aWNsZS0+U2VuZGVyVHlwZQogICAgaWYgKCAhJEFydGljbGUtPntTZW5kZXJUeXBlSUR9ICYmICEkQXJ0aWNsZS0+e1NlbmRlclR5cGV9ICkgewoKICAgICAgICAjIHJldHVybiBpbnRlcm5hbCBzZXJ2ZXIgZXJyb3IKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogQXJ0aWNsZS0+U2VuZGVyVHlwZUlEIG9yIEFydGljbGUtPlNlbmRlclR5cGUgcGFyYW1ldGVyIgogICAgICAgICAgICAgICAgLiAiIGlzIHJlcXVpcmVkIGFuZCBTeXNjb25maWcgU2VuZGVyVHlwZUlEIHNldHRpbmcgY291bGQgbm90IGJlIHJlYWQhIgogICAgICAgIH07CiAgICB9CiAgICBpZiAoICEkU2VsZi0+VmFsaWRhdGVTZW5kZXJUeXBlKCAleyRBcnRpY2xlfSApICkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkludmFsaWRQYXJhbWV0ZXInLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogQXJ0aWNsZS0+U2VuZGVyVHlwZUlEIG9yIFRpY2tldC0+U2VuZGVyVHlwZSBwYXJhbWV0ZXIiCiAgICAgICAgICAgICAgICAuICIgaXMgaW52YWxpZCEiLAogICAgICAgIH07CiAgICB9CgogICAgIyBjaGVjayBBcnRpY2xlLT5Gcm9tCiAgICBpZiAoICRBcnRpY2xlLT57RnJvbX0gKSB7CiAgICAgICAgaWYgKCAhJFNlbGYtPlZhbGlkYXRlRnJvbSggJXskQXJ0aWNsZX0gKSApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkludmFsaWRQYXJhbWV0ZXInLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IEFydGljbGUtPkZyb20gcGFyYW1ldGVyIGlzIGludmFsaWQhIiwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBBcnRpY2xlLT5Db250ZW50VHlwZSB2cyBBcnRpY2xlLT5NaW1lVHlwZSBhbmQgQXJ0aWNsZS0+Q2hhcnNldAogICAgaWYgKCAhJEFydGljbGUtPntDb250ZW50VHlwZX0gJiYgISRBcnRpY2xlLT57TWltZVR5cGV9ICYmICEkQXJ0aWNsZS0+e0NoYXJzZXR9ICkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLk1pc3NpbmdQYXJhbWV0ZXInLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogQXJ0aWNsZS0+Q29udGVudFR5cGUgb3IgVGlja2V0LT5NaW1lVHlwZSBhbmQiCiAgICAgICAgICAgICAgICAuICIgQXJ0aWNsZS0+Q2hhcnNldCBwYXJhbWV0ZXJzIGFyZSByZXF1aXJlZCEiLAogICAgICAgIH07CiAgICB9CgogICAgaWYgKCAkQXJ0aWNsZS0+e01pbWVUeXBlfSAmJiAhJEFydGljbGUtPntDaGFyc2V0fSApIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5NaXNzaW5nUGFyYW1ldGVyJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IEFydGljbGUtPkNoYXJzZXQgaXMgcmVxdWlyZWQhIiwKICAgICAgICB9OwogICAgfQoKICAgIGlmICggJEFydGljbGUtPntDaGFyc2V0fSAmJiAhJEFydGljbGUtPntNaW1lVHlwZX0gKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuTWlzc2luZ1BhcmFtZXRlcicsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBBcnRpY2xlLT5NaW1lVHlwZSBpcyByZXF1aXJlZCEiLAogICAgICAgIH07CiAgICB9CgogICAgIyBjaGVjayBBcnRpY2xlLT5NaW1lVHlwZQogICAgaWYgKCAkQXJ0aWNsZS0+e01pbWVUeXBlfSApIHsKCiAgICAgICAgJEFydGljbGUtPntNaW1lVHlwZX0gPSBsYyAkQXJ0aWNsZS0+e01pbWVUeXBlfTsKCiAgICAgICAgaWYgKCAhJFNlbGYtPlZhbGlkYXRlTWltZVR5cGUoICRBcnRpY2xlLT4lKiApICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuSW52YWxpZFBhcmFtZXRlcicsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogQXJ0aWNsZS0+TWltZVR5cGUgaXMgaW52YWxpZCEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIEFydGljbGUtPk1pbWVUeXBlCiAgICBpZiAoICRBcnRpY2xlLT57Q2hhcnNldH0gKSB7CgogICAgICAgICRBcnRpY2xlLT57Q2hhcnNldH0gPSBsYyAkQXJ0aWNsZS0+e0NoYXJzZXR9OwoKICAgICAgICBpZiAoICEkU2VsZi0+VmFsaWRhdGVDaGFyc2V0KCAkQXJ0aWNsZS0+JSogKSApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkludmFsaWRQYXJhbWV0ZXInLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IEFydGljbGUtPkNoYXJzZXQgaXMgaW52YWxpZCEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIEFydGljbGUtPkNvbnRlbnRUeXBlCiAgICBpZiAoICRBcnRpY2xlLT57Q29udGVudFR5cGV9ICkgewoKICAgICAgICAjIFRoZSBNSU1FIGhlYWRlciBmaWVsZCBDb250ZW50LVR5cGUgaXMgb25seSBpbiBzb21lIHBhcnRzIGNhc2UgaW5zZW5zaXRpdmUsCiAgICAgICAgIyBidXQgbG93ZXJjYXNpbmcgdGhlIHdob2xlIHN0cmluZyBzaW1wbGlmaWVzIHRoZSBoYW5kbGluZyBpbiBPVE9CTy4KICAgICAgICAkQXJ0aWNsZS0+e0NvbnRlbnRUeXBlfSA9IGxjICRBcnRpY2xlLT57Q29udGVudFR5cGV9OwoKICAgICAgICBpZiAoICEkU2VsZi0+VmFsaWRhdGVDb250ZW50VHlwZSggQ29udGVudFR5cGUgPT4gJEFydGljbGUtPntDb250ZW50VHlwZX0gKSApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkludmFsaWRQYXJhbWV0ZXInLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IEFydGljbGUtPkNvbnRlbnRUeXBlIGlzIGludmFsaWQhIiwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBBcnRpY2xlLT5IaXN0b3J5VHlwZQogICAgaWYgKCAhJEFydGljbGUtPntIaXN0b3J5VHlwZX0gKSB7CgogICAgICAgICMgcmV0dXJuIGludGVybmFsIHNlcnZlciBlcnJvcgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBBcnRpY2xlLT4gSGlzdG9yeVR5cGUgaXMgcmVxdWlyZWQgYW5kIFN5c2NvbmZpZyIKICAgICAgICAgICAgICAgIC4gIiBIaXN0b3J5VHlwZSBzZXR0aW5nIGNvdWxkIG5vdCBiZSByZWFkISIKICAgICAgICB9OwogICAgfQogICAgaWYgKCAhJFNlbGYtPlZhbGlkYXRlSGlzdG9yeVR5cGUoICV7JEFydGljbGV9ICkgKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuSW52YWxpZFBhcmFtZXRlcicsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBBcnRpY2xlLT5IaXN0b3J5VHlwZSBwYXJhbWV0ZXIgaXMgaW52YWxpZCEiLAogICAgICAgIH07CiAgICB9CgogICAgIyBjaGVjayBBcnRpY2xlLT5IaXN0b3J5Q29tbWVudAogICAgaWYgKCAhJEFydGljbGUtPntIaXN0b3J5Q29tbWVudH0gKSB7CgogICAgICAgICMgcmV0dXJuIGludGVybmFsIHNlcnZlciBlcnJvcgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBBcnRpY2xlLT5IaXN0b3J5Q29tbWVudCBpcyByZXF1aXJlZCBhbmQgU3lzY29uZmlnIgogICAgICAgICAgICAgICAgLiAiIEhpc3RvcnlDb21tZW50IHNldHRpbmcgY291bGQgbm90IGJlIHJlYWQhIgogICAgICAgIH07CiAgICB9CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBjaGVjayBBcnRpY2xlLT5UaW1lVW5pdAogICAgIyBUaW1lVW5pdCBjb3VsZCBiZSByZXF1aXJlZCBvciBub3QgZGVwZW5kaW5nIG9uIHN5c2NvbmZpZyBvcHRpb24KICAgIGlmICgKICAgICAgICAoICFkZWZpbmVkICRBcnRpY2xlLT57VGltZVVuaXR9IHx8ICFJc1N0cmluZ1dpdGhEYXRhKCAkQXJ0aWNsZS0+e1RpbWVVbml0fSApICkKICAgICAgICAmJiAkQ29uZmlnT2JqZWN0LT57J1RpY2tldDo6RnJvbnRlbmQ6OkFjY291bnRUaW1lJ30KICAgICAgICAmJiAkQ29uZmlnT2JqZWN0LT57J1RpY2tldDo6RnJvbnRlbmQ6Ok5lZWRBY2NvdW50ZWRUaW1lJ30KICAgICAgICApCiAgICB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuTWlzc2luZ1BhcmFtZXRlcicsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBBcnRpY2xlLT5UaW1lVW5pdCBpcyByZXF1aXJlZCBieSBzeXNjb25maWcgb3B0aW9uISIsCiAgICAgICAgfTsKICAgIH0KICAgIGlmICggJEFydGljbGUtPntUaW1lVW5pdH0gKSB7CiAgICAgICAgaWYgKCAhJFNlbGYtPlZhbGlkYXRlVGltZVVuaXQoICV7JEFydGljbGV9ICkgKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5JbnZhbGlkUGFyYW1ldGVyJywKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBBcnRpY2xlLT5UaW1lVW5pdCBwYXJhbWV0ZXIgaXMgaW52YWxpZCEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIEFydGljbGUtPk5vQWdlbnROb3RpZnkKICAgIGlmICggJEFydGljbGUtPntOb0FnZW50Tm90aWZ5fSAmJiAkQXJ0aWNsZS0+e05vQWdlbnROb3RpZnl9IG5lICcxJyApIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5JbnZhbGlkUGFyYW1ldGVyJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IEFydGljbGUtPk5vQWdlbnQgcGFyYW1ldGVyIGlzIGludmFsaWQhIiwKICAgICAgICB9OwogICAgfQoKICAgICMgY2hlY2sgQXJ0aWNsZSBhcnJheSBwYXJhbWV0ZXJzCiAgICBmb3IgbXkgJEF0dHJpYnV0ZSAoCiAgICAgICAgcXcoIEZvcmNlTm90aWZpY2F0aW9uVG9Vc2VySUQgRXhjbHVkZU5vdGlmaWNhdGlvblRvVXNlcklEIEV4Y2x1ZGVNdXRlTm90aWZpY2F0aW9uVG9Vc2VySUQgKQogICAgICAgICkKICAgIHsKICAgICAgICBpZiAoIGRlZmluZWQgJEFydGljbGUtPnskQXR0cmlidXRlfSApIHsKCiAgICAgICAgICAgICMgY2hlY2sgc3RydWN0dXJlCiAgICAgICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRBcnRpY2xlLT57JEF0dHJpYnV0ZX0gKSApIHsKICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuSW52YWxpZFBhcmFtZXRlcicsCiAgICAgICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IEFydGljbGUtPiRBdHRyaWJ1dGUgcGFyYW1ldGVyIGlzIGludmFsaWQhIiwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBpZiAoICFJc0FycmF5UmVmV2l0aERhdGEoICRBcnRpY2xlLT57JEF0dHJpYnV0ZX0gKSApIHsKICAgICAgICAgICAgICAgICAgICAkQXJ0aWNsZS0+eyRBdHRyaWJ1dGV9ID0gWyAkQXJ0aWNsZS0+eyRBdHRyaWJ1dGV9IF07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmb3IgbXkgJFVzZXJJRCAoIEB7ICRBcnRpY2xlLT57JEF0dHJpYnV0ZX0gfSApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoICEkU2VsZi0+VmFsaWRhdGVVc2VySUQoIFVzZXJJRCA9PiAkVXNlcklEICkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5JbnZhbGlkUGFyYW1ldGVyJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBBcnRpY2xlLT4kQXR0cmlidXRlIFVzZXJJRD0kVXNlcklEIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIiBwYXJhbWV0ZXIgaXMgaW52YWxpZCEiLAogICAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGlmIGV2ZXJ5dGhpbmcgaXMgT0sgdGhlbiByZXR1cm4gU3VjY2VzcwogICAgcmV0dXJuIHsKICAgICAgICBTdWNjZXNzID0+IDEsCiAgICB9Owp9Cgo9aGVhZDIgX0NoZWNrRHluYW1pY0ZpZWxkKCkKCmNoZWNrcyBpZiB0aGUgZ2l2ZW4gZHluYW1pYyBmaWVsZCBwYXJhbWV0ZXIgaXMgdmFsaWQuCgogICAgbXkgJER5bmFtaWNGaWVsZENoZWNrID0gJE9wZXJhdGlvbk9iamVjdC0+X0NoZWNrRHluYW1pY0ZpZWxkKAogICAgICAgIER5bmFtaWNGaWVsZCA9PiAkRHluYW1pY0ZpZWxkLCAgICAgICAgICAgICAgIyBhbGwgZHluYW1pYyBmaWVsZCBwYXJhbWV0ZXJzCiAgICApOwoKICAgIHJldHVybnM6CgogICAgJER5bmFtaWNGaWVsZENoZWNrID0gewogICAgICAgIFN1Y2Nlc3MgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpZiBldmVyeXRoaW5nIGlzIE9LCiAgICB9CgogICAgJER5bmFtaWNGaWVsZENoZWNrID0gewogICAgICAgIEVycm9yQ29kZSAgICA9PiAnRnVuY3Rpb24uRXJyb3InLCAgICAgICAgICAgIyBpZiBlcnJvcgogICAgICAgIEVycm9yTWVzc2FnZSA9PiAnRXJyb3IgZGVzY3JpcHRpb24nLAogICAgfQoKPWN1dAoKc3ViIF9DaGVja0R5bmFtaWNGaWVsZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICREeW5hbWljRmllbGQgPSAkUGFyYW17RHluYW1pY0ZpZWxkfTsKICAgIG15ICRBcnRpY2xlRGF0YSAgPSAkUGFyYW17QXJ0aWNsZX07CgogICAgbXkgJEFydGljbGU7CiAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCRBcnRpY2xlRGF0YSkgKSB7CiAgICAgICAgJEFydGljbGUgPSAxOwogICAgfQoKICAgICMgY2hlY2sgRHluYW1pY0ZpZWxkIGl0ZW0gaW50ZXJuYWxseQogICAgZm9yIG15ICROZWVkZWQgKHF3KE5hbWUgVmFsdWUpKSB7CiAgICAgICAgaWYgKAogICAgICAgICAgICAhZGVmaW5lZCAkRHluYW1pY0ZpZWxkLT57JE5lZWRlZH0KICAgICAgICAgICAgfHwgKCAhSXNTdHJpbmcoICREeW5hbWljRmllbGQtPnskTmVlZGVkfSApICYmIHJlZiAkRHluYW1pY0ZpZWxkLT57JE5lZWRlZH0gbmUgJ0FSUkFZJyApCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5NaXNzaW5nUGFyYW1ldGVyJywKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBEeW5hbWljRmllbGQtPiROZWVkZWQgcGFyYW1ldGVyIGlzIG1pc3NpbmchIiwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBEeW5hbWljRmllbGQtPk5hbWUKICAgIGlmICggISRTZWxmLT5WYWxpZGF0ZUR5bmFtaWNGaWVsZE5hbWUoICV7JER5bmFtaWNGaWVsZH0gKSApIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5JbnZhbGlkUGFyYW1ldGVyJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IER5bmFtaWNGaWVsZC0+TmFtZSBwYXJhbWV0ZXIgaXMgaW52YWxpZCEiLAogICAgICAgIH07CiAgICB9CgogICAgIyBjaGVjayBvYmplY3RUeXBlIGZvciBkeW5hbWljIGZpZWxkCiAgICBpZiAoCiAgICAgICAgISRTZWxmLT5WYWxpZGF0ZUR5bmFtaWNGaWVsZE9iamVjdFR5cGUoCiAgICAgICAgICAgICV7JER5bmFtaWNGaWVsZH0sCiAgICAgICAgICAgIEFydGljbGUgPT4gJEFydGljbGUsCiAgICAgICAgKQogICAgICAgICkKICAgIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5NaXNzaW5nUGFyYW1ldGVyJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAiVGlja2V0VXBkYXRlOiBUbyBjcmVhdGUgYW4gYXJ0aWNsZSBEeW5hbWljRmllbGQgYW4gYXJ0aWNsZSBpcyByZXF1aXJlZCEiLAogICAgICAgIH07CiAgICB9CgogICAgIyBjaGVjayBEeW5hbWljRmllbGQtPlZhbHVlCiAgICBpZiAoICEkU2VsZi0+VmFsaWRhdGVEeW5hbWljRmllbGRWYWx1ZSggJXskRHluYW1pY0ZpZWxkfSApICkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkludmFsaWRQYXJhbWV0ZXInLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogRHluYW1pY0ZpZWxkLT5WYWx1ZSBwYXJhbWV0ZXIgaXMgaW52YWxpZCEiLAogICAgICAgIH07CiAgICB9CgogICAgIyBpZiBldmVyeXRoaW5nIGlzIE9LIHRoZW4gcmV0dXJuIFN1Y2Nlc3MKICAgIHJldHVybiB7CiAgICAgICAgU3VjY2VzcyA9PiAxLAogICAgfTsKfQoKPWhlYWQyIF9DaGVja0F0dGFjaG1lbnQoKQoKY2hlY2tzIGlmIHRoZSBnaXZlbiBhdHRhY2htZW50IHBhcmFtZXRlciBpcyB2YWxpZC4KCiAgICBteSAkQXR0YWNobWVudENoZWNrID0gJE9wZXJhdGlvbk9iamVjdC0+X0NoZWNrQXR0YWNobWVudCgKICAgICAgICBBdHRhY2htZW50ID0+ICRBdHRhY2htZW50LCAgICAgICAgICAgICAgICAgICMgYWxsIGF0dGFjaG1lbnQgcGFyYW1ldGVycwogICAgKTsKCiAgICByZXR1cm5zOgoKICAgICRBdHRhY2htZW50Q2hlY2sgPSB7CiAgICAgICAgU3VjY2VzcyA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGlmIGV2ZXJ5dGhpbmcgaXMgT0sKICAgIH0KCiAgICAkQXR0YWNobWVudENoZWNrID0gewogICAgICAgIEVycm9yQ29kZSAgICA9PiAnRnVuY3Rpb24uRXJyb3InLCAgICAgICAgICAgIyBpZiBlcnJvcgogICAgICAgIEVycm9yTWVzc2FnZSA9PiAnRXJyb3IgZGVzY3JpcHRpb24nLAogICAgfQoKPWN1dAoKc3ViIF9DaGVja0F0dGFjaG1lbnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkQXR0YWNobWVudCA9ICRQYXJhbXtBdHRhY2htZW50fTsKICAgIG15ICRBcnRpY2xlICAgID0gJFBhcmFte0FydGljbGV9OwoKICAgICMgY2hlY2sgaWYgYXJ0aWNsZSBpcyBnb2luZyB0byBiZSBjcmVhdGVkCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkQXJ0aWNsZSkgKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuTWlzc2luZ1BhcmFtZXRlcicsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBUbyBjcmVhdGUgYW4gYXR0YWNobWVudCBhbiBhcnRpY2xlIGlzIG5lZWRlZCEiLAogICAgICAgIH07CiAgICB9CgogICAgIyBjaGVjayBhdHRhY2htZW50IGl0ZW0gaW50ZXJuYWxseQogICAgZm9yIG15ICROZWVkZWQgKHF3KENvbnRlbnQgQ29udGVudFR5cGUgRmlsZW5hbWUpKSB7CiAgICAgICAgaWYgKCAhSXNTdHJpbmdXaXRoRGF0YSggJEF0dGFjaG1lbnQtPnskTmVlZGVkfSApICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuTWlzc2luZ1BhcmFtZXRlcicsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogQXR0YWNobWVudC0+JE5lZWRlZCBwYXJhbWV0ZXIgaXMgbWlzc2luZyEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIEF0dGFjaG1lbnQtPkNvbnRlbnRUeXBlCiAgICBpZiAoICRBdHRhY2htZW50LT57Q29udGVudFR5cGV9ICkgewoKICAgICAgICAjIFRoZSBNSU1FIGhlYWRlciBmaWVsZCBDb250ZW50LVR5cGUgaXMgb25seSBpbiBzb21lIHBhcnRzIGNhc2UgaW5zZW5zaXRpdmUsCiAgICAgICAgIyBidXQgbG93ZXJjYXNpbmcgdGhlIHdob2xlIHN0cmluZyBzaW1wbGlmaWVzIHRoZSBoYW5kbGluZyBpbiBPVE9CTy4KICAgICAgICAkQXR0YWNobWVudC0+e0NvbnRlbnRUeXBlfSA9IGxjICRBdHRhY2htZW50LT57Q29udGVudFR5cGV9OwoKICAgICAgICBpZiAoICEkU2VsZi0+VmFsaWRhdGVDb250ZW50VHlwZSggQ29udGVudFR5cGUgPT4gJEF0dGFjaG1lbnQtPntDb250ZW50VHlwZX0gKSApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkludmFsaWRQYXJhbWV0ZXInLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IEF0dGFjaG1lbnQtPkNvbnRlbnRUeXBlIGlzIGludmFsaWQhIiwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBpZiBldmVyeXRoaW5nIGlzIE9LIHRoZW4gcmV0dXJuIFN1Y2Nlc3MKICAgIHJldHVybiB7CiAgICAgICAgU3VjY2VzcyA9PiAxLAogICAgfTsKfQoKPWhlYWQyIF9DaGVja1VwZGF0ZVBlcm1pc3Npb25zKCkKCmNoZWNrIGlmIHVzZXIgaGFzIHBlcm1pc3Npb25zIHRvIHVwZGF0ZSB0aWNrZXQgYXR0cmlidXRlcy4KCiAgICBteSAkUmVzcG9uc2UgPSAkT3BlcmF0aW9uT2JqZWN0LT5fQ2hlY2tVcGRhdGVQZXJtaXNzaW9ucygKICAgICAgICBUaWNrZXRJRCAgICAgPT4gMTIzCiAgICAgICAgVGlja2V0ICAgICAgID0+ICRUaWNrZXQsICAgICAgICAgICAgICAgICAgIyBhbGwgdGlja2V0IHBhcmFtZXRlcnMKICAgICAgICBBcnRpY2xlICAgICAgPT4gJFRpY2tldCwgICAgICAgICAgICAgICAgICAjIGFsbCBhdHRhY2htZW50IHBhcmFtZXRlcnMKICAgICAgICBEeW5hbWljRmllbGQgPT4gJFRpY2tldCwgICAgICAgICAgICAgICAgICAjIGFsbCBkeW5hbWljIGZpZWxkIHBhcmFtZXRlcnMKICAgICAgICBBdHRhY2htZW50ICAgPT4gJFRpY2tldCwgICAgICAgICAgICAgICAgICAjIGFsbCBhdHRhY2htZW50IHBhcmFtZXRlcnMKICAgICAgICBVc2VySUQgICAgICAgPT4gMTIzLAogICAgKTsKCnJldHVybnM6CgogICAgJFJlc3BvbnNlID0gewogICAgICAgIFN1Y2Nlc3MgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpZiBldmVyeXRoaW5nIGlzIE9LCiAgICB9CgpvcgoKICAgICRSZXNwb25zZSA9IHsKICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICBFcnJvckNvZGUgICAgPT4gImZ1bmN0aW9uLmVycm9yIiwgICAgICAgICAgICMgaWYgZXJyb3IKICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIkVycm9yIGRlc2NyaXB0aW9uIgogICAgfQoKPWN1dAoKc3ViIF9DaGVja1VwZGF0ZVBlcm1pc3Npb25zIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFRpY2tldElEICAgICAgICAgPSAkUGFyYW17VGlja2V0SUR9OwogICAgbXkgJFRpY2tldCAgICAgICAgICAgPSAkUGFyYW17VGlja2V0fTsKICAgIG15ICRBcnRpY2xlICAgICAgICAgID0gJFBhcmFte0FydGljbGV9OwogICAgbXkgJER5bmFtaWNGaWVsZExpc3QgPSAkUGFyYW17RHluYW1pY0ZpZWxkTGlzdH07CgogICAgIyBnZXQgdGlja2V0IG9iamVjdAogICAgbXkgJFRpY2tldE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKTsKCiAgICAjIGNoZWNrIEFydGljbGUgcGVybWlzc2lvbnMKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoJEFydGljbGUpICkgewogICAgICAgIG15ICRBY2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRQZXJtaXNzaW9uKAogICAgICAgICAgICBUeXBlICAgICA9PiAnbm90ZScsCiAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuQWNjZXNzRGVuaWVkJywKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBEb2VzIG5vdCBoYXZlIHBlcm1pc3Npb25zIHRvIGNyZWF0ZSBuZXcgYXJ0aWNsZXMhIiwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBkeW5hbWljIGZpZWxkIHBlcm1pc3Npb25zCiAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkTGlzdCkgKSB7CiAgICAgICAgbXkgJEFjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFBlcm1pc3Npb24oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdydycsCiAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuQWNjZXNzRGVuaWVkJywKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBEb2VzIG5vdCBoYXZlIHBlcm1pc3Npb25zIHRvIHVwZGF0ZSBkeW5hbWljIGZpZWxkcyEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIHF1ZXVlIHBlcm1pc3Npb25zCiAgICBpZiAoICRUaWNrZXQtPntRdWV1ZX0gfHwgJFRpY2tldC0+e1F1ZXVlSUR9ICkgewogICAgICAgIG15ICRBY2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRQZXJtaXNzaW9uKAogICAgICAgICAgICBUeXBlICAgICA9PiAnbW92ZScsCiAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuQWNjZXNzRGVuaWVkJywKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVGlja2V0VXBkYXRlOiBEb2VzIG5vdCBoYXZlIHBlcm1pc3Npb25zIHRvIHVwZGF0ZSBxdWV1ZSEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIG93bmVyIHBlcm1pc3Npb25zCiAgICBpZiAoICRUaWNrZXQtPntPd25lcn0gfHwgJFRpY2tldC0+e093bmVySUR9ICkgewogICAgICAgIG15ICRBY2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRQZXJtaXNzaW9uKAogICAgICAgICAgICBUeXBlICAgICA9PiAnb3duZXInLAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJEFjY2VzcyApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnVGlja2V0VXBkYXRlLkFjY2Vzc0RlbmllZCcsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlRpY2tldFVwZGF0ZTogRG9lcyBub3QgaGF2ZSBwZXJtaXNzaW9ucyB0byB1cGRhdGUgb3duZXIhIiwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayByZXNwb25zaWJsZSBwZXJtaXNzaW9ucwogICAgaWYgKCAkVGlja2V0LT57UmVzcG9uc2libGV9IHx8ICRUaWNrZXQtPntSZXNwb25zaWJsZUlEfSApIHsKICAgICAgICBteSAkQWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0UGVybWlzc2lvbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ3Jlc3BvbnNpYmxlJywKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5BY2Nlc3NEZW5pZWQnLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IERvZXMgbm90IGhhdmUgcGVybWlzc2lvbnMgdG8gdXBkYXRlIHJlc3BvbnNpYmUhIiwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBwcmlvcml0eSBwZXJtaXNzaW9ucwogICAgaWYgKCAkVGlja2V0LT57UHJpb3JpdHl9IHx8ICRUaWNrZXQtPntQcmlvcml0eUlEfSApIHsKICAgICAgICBteSAkQWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0UGVybWlzc2lvbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ3ByaW9yaXR5JywKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5BY2Nlc3NEZW5pZWQnLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IERvZXMgbm90IGhhdmUgcGVybWlzc2lvbnMgdG8gdXBkYXRlIHByaW9yaXR5ISIsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgc3RhdGUgcGVybWlzc2lvbnMKICAgIGlmICggJFRpY2tldC0+e1N0YXRlfSB8fCAkVGlja2V0LT57U3RhdGVJRH0gKSB7CgogICAgICAgICMgZ2V0IFN0YXRlIERhdGEKICAgICAgICBteSAlU3RhdGVEYXRhOwogICAgICAgIG15ICRTdGF0ZUlEOwoKICAgICAgICAjIGdldCBzdGF0ZSBvYmplY3QKICAgICAgICBteSAkU3RhdGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3RhdGUnKTsKCiAgICAgICAgaWYgKCAkVGlja2V0LT57U3RhdGVJRH0gKSB7CiAgICAgICAgICAgICRTdGF0ZUlEID0gJFRpY2tldC0+e1N0YXRlSUR9OwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFN0YXRlSUQgPSAkU3RhdGVPYmplY3QtPlN0YXRlTG9va3VwKAogICAgICAgICAgICAgICAgU3RhdGUgPT4gJFRpY2tldC0+e1N0YXRlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICVTdGF0ZURhdGEgPSAkU3RhdGVPYmplY3QtPlN0YXRlR2V0KAogICAgICAgICAgICBJRCA9PiAkU3RhdGVJRCwKICAgICAgICApOwoKICAgICAgICBteSAkQWNjZXNzID0gMTsKCiAgICAgICAgaWYgKCAkU3RhdGVEYXRhe1R5cGVOYW1lfSA9fiAvXmNsb3NlL2kgKSB7CiAgICAgICAgICAgICRBY2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRQZXJtaXNzaW9uKAogICAgICAgICAgICAgICAgVHlwZSAgICAgPT4gJ2Nsb3NlJywKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgcGVuZGluZyB0aW1lCiAgICAgICAgZWxzaWYgKCAkU3RhdGVEYXRhe1R5cGVOYW1lfSA9fiAvXnBlbmRpbmcvaSApIHsKICAgICAgICAgICAgJEFjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFBlcm1pc3Npb24oCiAgICAgICAgICAgICAgICBUeXBlICAgICA9PiAnY2xvc2UnLAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldFVwZGF0ZS5BY2Nlc3NEZW5pZWQnLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRVcGRhdGU6IERvZXMgbm90IGhhdmUgcGVybWlzc2lvbnMgdG8gdXBkYXRlIHN0YXRlISIsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiB7CiAgICAgICAgU3VjY2VzcyA9PiAxLAogICAgfTsKfQoKPWhlYWQyIF9UaWNrZXRVcGRhdGUoKQoKdXBkYXRlcyBhIHRpY2tldCBhbmQgY3JlYXRlcyBhbiBhcnRpY2xlIGFuZCBzZXRzIGR5bmFtaWMgZmllbGRzIGFuZCBhdHRhY2htZW50cyBpZiBzcGVjaWZpZWQuCgogICAgbXkgJFJlc3BvbnNlID0gJE9wZXJhdGlvbk9iamVjdC0+X1RpY2tldFVwZGF0ZSgKICAgICAgICBUaWNrZXRJRCAgICAgPT4gMTIzCiAgICAgICAgVGlja2V0ICAgICAgID0+ICRUaWNrZXQsICAgICAgICAgICAgICAgICAgIyBhbGwgdGlja2V0IHBhcmFtZXRlcnMKICAgICAgICBBcnRpY2xlICAgICAgPT4gJEFydGljbGUsICAgICAgICAgICAgICAgICAjIGFsbCBhdHRhY2htZW50IHBhcmFtZXRlcnMKICAgICAgICBEeW5hbWljRmllbGQgPT4gJER5bmFtaWNGaWVsZCwgICAgICAgICAgICAjIGFsbCBkeW5hbWljIGZpZWxkIHBhcmFtZXRlcnMKICAgICAgICBBdHRhY2htZW50ICAgPT4gJEF0dGFjaG1lbnQsICAgICAgICAgICAgICAjIGFsbCBhdHRhY2htZW50IHBhcmFtZXRlcnMKICAgICAgICBVc2VySUQgICAgICAgPT4gMTIzLAogICAgICAgIFVzZXJUeXBlICAgICA9PiAnQWdlbnQnICAgICAgICAgICAgICAgICAgICMgfHwgJ0N1c3RvbWVyCiAgICApOwoKICAgIHJldHVybnM6CgogICAgJFJlc3BvbnNlID0gewogICAgICAgIFN1Y2Nlc3MgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpZiBldmVyeXRoaW5nIGlzIE9LCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIFRpY2tldElEICAgICA9PiAxMjMsCiAgICAgICAgICAgIFRpY2tldE51bWJlciA9PiAnVE4zNDIyMzMyJywKICAgICAgICAgICAgQXJ0aWNsZUlEICAgID0+IDEyMywgICAgICAgICAgICAgICAgICAgICMgaWYgbmV3IGFydGljbGUgd2FzIGNyZWF0ZWQKICAgICAgICB9CiAgICB9CgogICAgJFJlc3BvbnNlID0gewogICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLCAgICAgICAgICAgICAgICAgICAgICAgICAjIGlmIHVuZXhwZWN0ZWQgZXJyb3IKICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIiRQYXJhbXtFcnJvckNvZGV9OiAkUGFyYW17RXJyb3JNZXNzYWdlfSIsCiAgICB9Cgo9Y3V0CgpzdWIgX1RpY2tldFVwZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRUaWNrZXRJRCAgICAgICAgID0gJFBhcmFte1RpY2tldElEfTsKICAgIG15ICRUaWNrZXQgICAgICAgICAgID0gJFBhcmFte1RpY2tldH07CiAgICBteSAkQXJ0aWNsZSAgICAgICAgICA9ICRQYXJhbXtBcnRpY2xlfTsKICAgIG15ICREeW5hbWljRmllbGRMaXN0ID0gJFBhcmFte0R5bmFtaWNGaWVsZExpc3R9OwogICAgbXkgJEF0dGFjaG1lbnRMaXN0ICAgPSAkUGFyYW17QXR0YWNobWVudExpc3R9OwoKICAgIG15ICRBY2Nlc3MgPSAkU2VsZi0+X0NoZWNrVXBkYXRlUGVybWlzc2lvbnMoJVBhcmFtKTsKCiAgICAjIGlmIG5vIHBlcm1pc3Npb25zIHJldHVybiBlcnJvcgogICAgaWYgKCAhJEFjY2Vzcy0+e1N1Y2Nlc3N9ICkgewogICAgICAgIHJldHVybiAkU2VsZi0+UmV0dXJuRXJyb3IoICV7JEFjY2Vzc30gKTsKICAgIH0KCiAgICBteSAlQ3VzdG9tZXJVc2VyRGF0YTsKCiAgICAjIGdldCBjdXN0b21lciBpbmZvcm1hdGlvbgogICAgaWYgKCAkVGlja2V0LT57Q3VzdG9tZXJVc2VyfSApIHsKICAgICAgICAlQ3VzdG9tZXJVc2VyRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDdXN0b21lclVzZXInKS0+Q3VzdG9tZXJVc2VyRGF0YUdldCgKICAgICAgICAgICAgVXNlciA9PiAkVGlja2V0LT57Q3VzdG9tZXJVc2VyfSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHRpY2tldCBvYmplY3QKICAgIG15ICRUaWNrZXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CgogICAgIyBnZXQgY3VycmVudCB0aWNrZXQgZGF0YQogICAgbXkgJVRpY2tldERhdGEgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRHZXQoCiAgICAgICAgVGlja2V0SUQgICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgRHluYW1pY0ZpZWxkcyA9PiAwLAogICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgdXBkYXRlIHRpY2tldCBwYXJhbWV0ZXJzCiAgICAjIHVwZGF0ZSBUaWNrZXQtPlRpdGxlCiAgICBpZiAoCiAgICAgICAgZGVmaW5lZCAkVGlja2V0LT57VGl0bGV9CiAgICAgICAgJiYgJFRpY2tldC0+e1RpdGxlfSBuZSAnJwogICAgICAgICYmICRUaWNrZXQtPntUaXRsZX0gbmUgJFRpY2tldERhdGF7VGl0bGV9CiAgICAgICAgKQogICAgewogICAgICAgIG15ICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0VGl0bGVVcGRhdGUoCiAgICAgICAgICAgIFRpdGxlICAgID0+ICRUaWNrZXQtPntUaXRsZX0sCiAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgRXJyb3JtZXNzYWdlID0+CiAgICAgICAgICAgICAgICAgICAgJ1RpY2tldCB0aXRsZSBjb3VsZCBub3QgYmUgdXBkYXRlZCwgcGxlYXNlIGNvbnRhY3Qgc3lzdGVtIGFkbWluaXN0cmF0b3IhJywKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyB1cGRhdGUgVGlja2V0LT5RdWV1ZQogICAgaWYgKCAkVGlja2V0LT57UXVldWV9IHx8ICRUaWNrZXQtPntRdWV1ZUlEfSApIHsKICAgICAgICBteSAkU3VjY2VzczsKICAgICAgICBpZiAoIGRlZmluZWQgJFRpY2tldC0+e1F1ZXVlfSAmJiAkVGlja2V0LT57UXVldWV9IG5lICRUaWNrZXREYXRhe1F1ZXVlfSApIHsKICAgICAgICAgICAgJFN1Y2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRRdWV1ZVNldCgKICAgICAgICAgICAgICAgIFF1ZXVlICAgID0+ICRUaWNrZXQtPntRdWV1ZX0sCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCBkZWZpbmVkICRUaWNrZXQtPntRdWV1ZUlEfSAmJiAkVGlja2V0LT57UXVldWVJRH0gbmUgJFRpY2tldERhdGF7UXVldWVJRH0gKSB7CiAgICAgICAgICAgICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0UXVldWVTZXQoCiAgICAgICAgICAgICAgICBRdWV1ZUlEICA9PiAkVGlja2V0LT57UXVldWVJRH0sCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGRhdGEgaXMgdGhlIHNhbWUgYXMgaW4gdGlja2V0IG5vdGhpbmcgdG8gZG8KICAgICAgICAgICAgJFN1Y2Nlc3MgPSAxOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgICAgICdUaWNrZXQgcXVldWUgY291bGQgbm90IGJlIHVwZGF0ZWQsIHBsZWFzZSBjb250YWN0IHN5c3RlbSBhZG1pbmlzdHJhdG9yIScsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgdXBkYXRlIFRpY2tldC0+TG9jawogICAgaWYgKCAkVGlja2V0LT57TG9ja30gfHwgJFRpY2tldC0+e0xvY2tJRH0gKSB7CiAgICAgICAgbXkgJFN1Y2Nlc3M7CiAgICAgICAgaWYgKCBkZWZpbmVkICRUaWNrZXQtPntMb2NrfSAmJiAkVGlja2V0LT57TG9ja30gbmUgJFRpY2tldERhdGF7TG9ja30gKSB7CiAgICAgICAgICAgICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICRUaWNrZXQtPntMb2NrfSwKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoIGRlZmluZWQgJFRpY2tldC0+e0xvY2tJRH0gJiYgJFRpY2tldC0+e0xvY2tJRH0gbmUgJFRpY2tldERhdGF7TG9ja0lEfSApIHsKICAgICAgICAgICAgJFN1Y2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICAgICAgTG9ja0lEICAgPT4gJFRpY2tldC0+e0xvY2tJRH0sCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGRhdGEgaXMgdGhlIHNhbWUgYXMgaW4gdGlja2V0IG5vdGhpbmcgdG8gZG8KICAgICAgICAgICAgJFN1Y2Nlc3MgPSAxOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9ybWVzc2FnZSA9PgogICAgICAgICAgICAgICAgICAgICdUaWNrZXQgbG9jayBjb3VsZCBub3QgYmUgdXBkYXRlZCwgcGxlYXNlIGNvbnRhY3Qgc3lzdGVtIGFkbWluaXN0cmF0b3IhJywKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyB1cGRhdGUgVGlja2V0LT5UeXBlCiAgICBpZiAoICRUaWNrZXQtPntUeXBlfSB8fCAkVGlja2V0LT57VHlwZUlEfSApIHsKICAgICAgICBteSAkU3VjY2VzczsKICAgICAgICBpZiAoIGRlZmluZWQgJFRpY2tldC0+e1R5cGV9ICYmICRUaWNrZXQtPntUeXBlfSBuZSAkVGlja2V0RGF0YXtUeXBlfSApIHsKICAgICAgICAgICAgJFN1Y2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRUeXBlU2V0KAogICAgICAgICAgICAgICAgVHlwZSAgICAgPT4gJFRpY2tldC0+e1R5cGV9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2lmICggZGVmaW5lZCAkVGlja2V0LT57VHlwZUlEfSAmJiAkVGlja2V0LT57VHlwZUlEfSBuZSAkVGlja2V0RGF0YXtUeXBlSUR9ICkKICAgICAgICB7CiAgICAgICAgICAgICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0VHlwZVNldCgKICAgICAgICAgICAgICAgIFR5cGVJRCAgID0+ICRUaWNrZXQtPntUeXBlSUR9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBkYXRhIGlzIHRoZSBzYW1lIGFzIGluIHRpY2tldCBub3RoaW5nIHRvIGRvCiAgICAgICAgICAgICRTdWNjZXNzID0gMTsKICAgICAgICB9CgogICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvcm1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAnVGlja2V0IHR5cGUgY291bGQgbm90IGJlIHVwZGF0ZWQsIHBsZWFzZSBjb250YWN0IHN5c3RlbSBhZG1pbmlzdHJhdG9yIScsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgdXBkYXRlIFRpY2tldD5TdGF0ZQogICAgIyBkZXBlbmRpbmcgb24gdGhlIHN0YXRlLCBtaWdodCByZXF1aXJlIHRvIHVubG9jayB0aWNrZXQgb3IgZW5hYmxlcyBwZW5kaW5nIHRpbWUgc2V0CiAgICBpZiAoICRUaWNrZXQtPntTdGF0ZX0gfHwgJFRpY2tldC0+e1N0YXRlSUR9ICkgewoKICAgICAgICAjIGdldCBTdGF0ZSBEYXRhCiAgICAgICAgbXkgJVN0YXRlRGF0YTsKICAgICAgICBteSAkU3RhdGVJRDsKCiAgICAgICAgIyBnZXQgc3RhdGUgb2JqZWN0CiAgICAgICAgbXkgJFN0YXRlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN0YXRlJyk7CgogICAgICAgIGlmICggJFRpY2tldC0+e1N0YXRlSUR9ICkgewogICAgICAgICAgICAkU3RhdGVJRCA9ICRUaWNrZXQtPntTdGF0ZUlEfTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRTdGF0ZUlEID0gJFN0YXRlT2JqZWN0LT5TdGF0ZUxvb2t1cCgKICAgICAgICAgICAgICAgIFN0YXRlID0+ICRUaWNrZXQtPntTdGF0ZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAlU3RhdGVEYXRhID0gJFN0YXRlT2JqZWN0LT5TdGF0ZUdldCgKICAgICAgICAgICAgSUQgPT4gJFN0YXRlSUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBmb3JjZSB1bmxvY2sgaWYgc3RhdGUgdHlwZSBpcyBjbG9zZQogICAgICAgIGlmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15jbG9zZS9pICkgewoKICAgICAgICAgICAgIyBzZXQgbG9jawogICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgTG9jayAgICAgPT4gJ3VubG9jaycsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2V0IHBlbmRpbmcgdGltZQogICAgICAgIGVsc2lmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15wZW5kaW5nL2kgKSB7CgogICAgICAgICAgICAjIHNldCBwZW5kaW5nIHRpbWUKICAgICAgICAgICAgaWYgKCBkZWZpbmVkICRUaWNrZXQtPntQZW5kaW5nVGltZX0gKSB7CiAgICAgICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFBlbmRpbmdUaW1lU2V0KAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgICAgICAleyAkVGlja2V0LT57UGVuZGluZ1RpbWV9IH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBFcnJvcm1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUaWNrZXQgcGVuZGlnIHRpbWUgY291bGQgbm90IGJlIHVwZGF0ZWQsIHBsZWFzZSBjb250YWN0IHN5c3RlbScKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJyBhZG1pbmlzdHJhdG9yIScsCiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHJldHVybiAkU2VsZi0+UmV0dXJuRXJyb3IoCiAgICAgICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdUaWNrZXRVcGRhdGUuTWlzc2luZ1BhcmFtZXRlcicsCiAgICAgICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICdDYW5cJ3Qgc2V0IGEgdGlja2V0IG9uIGEgcGVuZGluZyBzdGF0ZSB3aXRob3V0IHBlbmRpZyB0aW1lIScKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG15ICRTdWNjZXNzOwogICAgICAgIGlmICggZGVmaW5lZCAkVGlja2V0LT57U3RhdGV9ICYmICRUaWNrZXQtPntTdGF0ZX0gbmUgJFRpY2tldERhdGF7U3RhdGV9ICkgewogICAgICAgICAgICAkU3VjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFN0YXRlU2V0KAogICAgICAgICAgICAgICAgU3RhdGUgICAgPT4gJFRpY2tldC0+e1N0YXRlfSwKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoIGRlZmluZWQgJFRpY2tldC0+e1N0YXRlSUR9ICYmICRUaWNrZXQtPntTdGF0ZUlEfSBuZSAkVGlja2V0RGF0YXtTdGF0ZUlEfSApCiAgICAgICAgewogICAgICAgICAgICAkU3VjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFN0YXRlU2V0KAogICAgICAgICAgICAgICAgU3RhdGVJRCAgPT4gJFRpY2tldC0+e1N0YXRlSUR9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBkYXRhIGlzIHRoZSBzYW1lIGFzIGluIHRpY2tldCBub3RoaW5nIHRvIGRvCiAgICAgICAgICAgICRTdWNjZXNzID0gMTsKICAgICAgICB9CgogICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvcm1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAnVGlja2V0IHN0YXRlIGNvdWxkIG5vdCBiZSB1cGRhdGVkLCBwbGVhc2UgY29udGFjdCBzeXN0ZW0gYWRtaW5pc3RyYXRvciEnLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIHVwZGF0ZSBUaWNrZXQtPlNlcnZpY2UKICAgICMgdGhpcyBtaWdodCByZXNldCBTTEEgaWYgY3VycmVudCBTTEEgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIG5ldyBzZXJ2aWNlCiAgICBpZiAoICRUaWNrZXQtPntTZXJ2aWNlfSB8fCAkVGlja2V0LT57U2VydmljZUlEfSApIHsKCiAgICAgICAgIyBjaGVjayBpZiB0aWNrZXQgaGFzIGEgU0xBIGFzc2lnbmVkCiAgICAgICAgaWYgKCAkVGlja2V0RGF0YXtTTEFJRH0gKSB7CgogICAgICAgICAgICAjIGNoZWNrIGlmIG9sZCBTTEEgaXMgc3RpbGwgdmFsaWQKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgISRTZWxmLT5WYWxpZGF0ZVNMQSgKICAgICAgICAgICAgICAgICAgICBTTEFJRCAgICAgPT4gJFRpY2tldERhdGF7U0xBSUR9LAogICAgICAgICAgICAgICAgICAgIFNlcnZpY2UgICA9PiAkVGlja2V0LT57U2VydmljZX0gICB8fCAnJywKICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlSUQgPT4gJFRpY2tldC0+e1NlcnZpY2VJRH0gfHwgJycsCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAjIHJlbW92ZSBjdXJyZW50IFNMQSBpZiBpcyBub3QgY29tcGF0aWJsZSB3aXRoIG5ldyBzZXJ2aWNlCiAgICAgICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFNMQVNldCgKICAgICAgICAgICAgICAgICAgICBTTEFJRCAgICA9PiAnJywKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBteSAkU3VjY2VzczsKCiAgICAgICAgIyBwcmV2ZW50IGNvbXBhcmlzb24gZXJyb3JzIG9uIHVuZGVmaW5lZCB2YWx1ZXMKICAgICAgICBpZiAoICFkZWZpbmVkICRUaWNrZXREYXRhe1NlcnZpY2V9ICkgewogICAgICAgICAgICAkVGlja2V0RGF0YXtTZXJ2aWNlfSA9ICcnOwogICAgICAgIH0KICAgICAgICBpZiAoICFkZWZpbmVkICRUaWNrZXREYXRhe1NlcnZpY2VJRH0gKSB7CiAgICAgICAgICAgICRUaWNrZXREYXRhe1NlcnZpY2VJRH0gPSAnJzsKICAgICAgICB9CgogICAgICAgIGlmICggZGVmaW5lZCAkVGlja2V0LT57U2VydmljZX0gJiYgJFRpY2tldC0+e1NlcnZpY2V9IG5lICRUaWNrZXREYXRhe1NlcnZpY2V9ICkgewogICAgICAgICAgICAkU3VjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFNlcnZpY2VTZXQoCiAgICAgICAgICAgICAgICBTZXJ2aWNlICA9PiAkVGlja2V0LT57U2VydmljZX0sCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCBkZWZpbmVkICRUaWNrZXQtPntTZXJ2aWNlSUR9ICYmICRUaWNrZXQtPntTZXJ2aWNlSUR9IG5lICRUaWNrZXREYXRhe1NlcnZpY2VJRH0gKQogICAgICAgIHsKICAgICAgICAgICAgJFN1Y2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRTZXJ2aWNlU2V0KAogICAgICAgICAgICAgICAgU2VydmljZUlEID0+ICRUaWNrZXQtPntTZXJ2aWNlSUR9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGRhdGEgaXMgdGhlIHNhbWUgYXMgaW4gdGlja2V0IG5vdGhpbmcgdG8gZG8KICAgICAgICAgICAgJFN1Y2Nlc3MgPSAxOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9ybWVzc2FnZSA9PgogICAgICAgICAgICAgICAgICAgICdUaWNrZXQgc2VydmljZSBjb3VsZCBub3QgYmUgdXBkYXRlZCwgcGxlYXNlIGNvbnRhY3Qgc3lzdGVtIGFkbWluaXN0cmF0b3IhJywKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyB1cGRhdGUgVGlja2V0LT5TTEEKICAgIGlmICggJFRpY2tldC0+e1NMQX0gfHwgJFRpY2tldC0+e1NMQUlEfSApIHsKICAgICAgICBteSAkU3VjY2VzczsKCiAgICAgICAgIyBwcmV2ZW50IGNvbXBhcmlzb24gZXJyb3JzIG9uIHVuZGVmaW5lZCB2YWx1ZXMKICAgICAgICBpZiAoICFkZWZpbmVkICRUaWNrZXREYXRhe1NMQX0gKSB7CiAgICAgICAgICAgICRUaWNrZXREYXRhe1NMQX0gPSAnJzsKICAgICAgICB9CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkVGlja2V0RGF0YXtTTEFJRH0gKSB7CiAgICAgICAgICAgICRUaWNrZXREYXRhe1NMQUlEfSA9ICcnOwogICAgICAgIH0KCiAgICAgICAgaWYgKCBkZWZpbmVkICRUaWNrZXQtPntTTEF9ICYmICRUaWNrZXQtPntTTEF9IG5lICRUaWNrZXREYXRhe1NMQX0gKSB7CiAgICAgICAgICAgICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0U0xBU2V0KAogICAgICAgICAgICAgICAgU0xBICAgICAgPT4gJFRpY2tldC0+e1NMQX0sCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCBkZWZpbmVkICRUaWNrZXQtPntTTEFJRH0gJiYgJFRpY2tldC0+e1NMQUlEfSBuZSAkVGlja2V0RGF0YXtTTEFJRH0gKQogICAgICAgIHsKICAgICAgICAgICAgJFN1Y2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRTTEFTZXQoCiAgICAgICAgICAgICAgICBTTEFJRCAgICA9PiAkVGlja2V0LT57U0xBSUR9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBkYXRhIGlzIHRoZSBzYW1lIGFzIGluIHRpY2tldCBub3RoaW5nIHRvIGRvCiAgICAgICAgICAgICRTdWNjZXNzID0gMTsKICAgICAgICB9CgogICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvcm1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAnVGlja2V0IFNMQSBjb3VsZCBub3QgYmUgdXBkYXRlZCwgcGxlYXNlIGNvbnRhY3Qgc3lzdGVtIGFkbWluaXN0cmF0b3IhJywKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyB1cGRhdGUgVGlja2V0LT5DdXN0b21lclVzZXIgJiYgVGlja2V0LT5DdXN0b21lcklECiAgICBpZiAoICRUaWNrZXQtPntDdXN0b21lclVzZXJ9IHx8ICRUaWNrZXQtPntDdXN0b21lcklEfSApIHsKCiAgICAgICAgIyBzZXQgdmFsdWVzIHRvIGVtcHR5IGlmIHRoZXkgYXJlIG5vdCBkZWZpbmVkCiAgICAgICAgJFRpY2tldERhdGF7Q3VzdG9tZXJVc2VySUR9ID0gJFRpY2tldERhdGF7Q3VzdG9tZXJVc2VySUR9IHx8ICcnOwogICAgICAgICRUaWNrZXREYXRhe0N1c3RvbWVySUR9ICAgICA9ICRUaWNrZXREYXRhe0N1c3RvbWVySUR9ICAgICB8fCAnJzsKICAgICAgICAkVGlja2V0LT57Q3VzdG9tZXJVc2VyfSAgICAgPSAkVGlja2V0LT57Q3VzdG9tZXJVc2VyfSAgICAgfHwgJyc7CiAgICAgICAgJFRpY2tldC0+e0N1c3RvbWVySUR9ICAgICAgID0gJFRpY2tldC0+e0N1c3RvbWVySUR9ICAgICAgIHx8ICcnOwoKICAgICAgICBteSAkU3VjY2VzczsKICAgICAgICBpZiAoCiAgICAgICAgICAgICRUaWNrZXQtPntDdXN0b21lclVzZXJ9IG5lICRUaWNrZXREYXRhe0N1c3RvbWVyVXNlcklEfQogICAgICAgICAgICB8fCAkVGlja2V0LT57Q3VzdG9tZXJJRH0gbmUgJFRpY2tldERhdGF7Q3VzdG9tZXJJRH0KICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEN1c3RvbWVySUQgPSAkQ3VzdG9tZXJVc2VyRGF0YXtVc2VyQ3VzdG9tZXJJRH0gfHwgJyc7CgogICAgICAgICAgICAjIHVzZSB1c2VyIGRlZmluZWQgQ3VzdG9tZXJJRCBpZiBkZWZpbmVkCiAgICAgICAgICAgIGlmICggZGVmaW5lZCAkVGlja2V0LT57Q3VzdG9tZXJJRH0gJiYgJFRpY2tldC0+e0N1c3RvbWVySUR9IG5lICcnICkgewogICAgICAgICAgICAgICAgJEN1c3RvbWVySUQgPSAkVGlja2V0LT57Q3VzdG9tZXJJRH07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0Q3VzdG9tZXJTZXQoCiAgICAgICAgICAgICAgICBObyAgICAgICA9PiAkQ3VzdG9tZXJJRCwKICAgICAgICAgICAgICAgIFVzZXIgICAgID0+ICRUaWNrZXQtPntDdXN0b21lclVzZXJ9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBkYXRhIGlzIHRoZSBzYW1lIGFzIGluIHRpY2tldCBub3RoaW5nIHRvIGRvCiAgICAgICAgICAgICRTdWNjZXNzID0gMTsKICAgICAgICB9CgogICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvcm1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAnVGlja2V0IGN1c3RvbWVyIHVzZXIgY291bGQgbm90IGJlIHVwZGF0ZWQsIHBsZWFzZSBjb250YWN0IHN5c3RlbSBhZG1pbmlzdHJhdG9yIScsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgdXBkYXRlIFRpY2tldC0+UHJpb3JpdHkKICAgIGlmICggJFRpY2tldC0+e1ByaW9yaXR5fSB8fCAkVGlja2V0LT57UHJpb3JpdHlJRH0gKSB7CiAgICAgICAgbXkgJFN1Y2Nlc3M7CiAgICAgICAgaWYgKCBkZWZpbmVkICRUaWNrZXQtPntQcmlvcml0eX0gJiYgJFRpY2tldC0+e1ByaW9yaXR5fSBuZSAkVGlja2V0RGF0YXtQcmlvcml0eX0gKSB7CiAgICAgICAgICAgICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0UHJpb3JpdHlTZXQoCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAkVGlja2V0LT57UHJpb3JpdHl9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2lmICggZGVmaW5lZCAkVGlja2V0LT57UHJpb3JpdHlJRH0gJiYgJFRpY2tldC0+e1ByaW9yaXR5SUR9IG5lICRUaWNrZXREYXRhe1ByaW9yaXR5SUR9ICkKICAgICAgICB7CiAgICAgICAgICAgICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0UHJpb3JpdHlTZXQoCiAgICAgICAgICAgICAgICBQcmlvcml0eUlEID0+ICRUaWNrZXQtPntQcmlvcml0eUlEfSwKICAgICAgICAgICAgICAgIFRpY2tldElEICAgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGRhdGEgaXMgdGhlIHNhbWUgYXMgaW4gdGlja2V0IG5vdGhpbmcgdG8gZG8KICAgICAgICAgICAgJFN1Y2Nlc3MgPSAxOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9ybWVzc2FnZSA9PgogICAgICAgICAgICAgICAgICAgICdUaWNrZXQgcHJpb3JpdHkgY291bGQgbm90IGJlIHVwZGF0ZWQsIHBsZWFzZSBjb250YWN0IHN5c3RlbSBhZG1pbmlzdHJhdG9yIScsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgIG15ICRVbmxvY2tPbkF3YXkgPSAxOwoKICAgICMgdXBkYXRlIFRpY2tldC0+T3duZXIKICAgIGlmICggJFRpY2tldC0+e093bmVyfSB8fCAkVGlja2V0LT57T3duZXJJRH0gKSB7CiAgICAgICAgbXkgJFN1Y2Nlc3M7CiAgICAgICAgaWYgKCBkZWZpbmVkICRUaWNrZXQtPntPd25lcn0gJiYgJFRpY2tldC0+e093bmVyfSBuZSAkVGlja2V0RGF0YXtPd25lcn0gKSB7CiAgICAgICAgICAgICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0T3duZXJTZXQoCiAgICAgICAgICAgICAgICBOZXdVc2VyICA9PiAkVGlja2V0LT57T3duZXJ9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRVbmxvY2tPbkF3YXkgPSAwOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoIGRlZmluZWQgJFRpY2tldC0+e093bmVySUR9ICYmICRUaWNrZXQtPntPd25lcklEfSBuZSAkVGlja2V0RGF0YXtPd25lcklEfSApCiAgICAgICAgewogICAgICAgICAgICAkU3VjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldE93bmVyU2V0KAogICAgICAgICAgICAgICAgTmV3VXNlcklEID0+ICRUaWNrZXQtPntPd25lcklEfSwKICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRVbmxvY2tPbkF3YXkgPSAwOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgZGF0YSBpcyB0aGUgc2FtZSBhcyBpbiB0aWNrZXQgbm90aGluZyB0byBkbwogICAgICAgICAgICAkU3VjY2VzcyA9IDE7CiAgICAgICAgfQoKICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgRXJyb3JtZXNzYWdlID0+CiAgICAgICAgICAgICAgICAgICAgJ1RpY2tldCBvd25lciBjb3VsZCBub3QgYmUgdXBkYXRlZCwgcGxlYXNlIGNvbnRhY3Qgc3lzdGVtIGFkbWluaXN0cmF0b3IhJywKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyB1cGRhdGUgVGlja2V0LT5SZXNwb25zaWJsZQogICAgaWYgKCAkVGlja2V0LT57UmVzcG9uc2libGV9IHx8ICRUaWNrZXQtPntSZXNwb25zaWJsZUlEfSApIHsKICAgICAgICBteSAkU3VjY2VzczsKICAgICAgICBpZiAoCiAgICAgICAgICAgIGRlZmluZWQgJFRpY2tldC0+e1Jlc3BvbnNpYmxlfQogICAgICAgICAgICAmJiAkVGlja2V0LT57UmVzcG9uc2libGV9IG5lICRUaWNrZXREYXRhe1Jlc3BvbnNpYmxlfQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkU3VjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFJlc3BvbnNpYmxlU2V0KAogICAgICAgICAgICAgICAgTmV3VXNlciAgPT4gJFRpY2tldC0+e1Jlc3BvbnNpYmxlfSwKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoCiAgICAgICAgICAgIGRlZmluZWQgJFRpY2tldC0+e1Jlc3BvbnNpYmxlSUR9CiAgICAgICAgICAgICYmICRUaWNrZXQtPntSZXNwb25zaWJsZUlEfSBuZSAkVGlja2V0RGF0YXtSZXNwb25zaWJsZUlEfQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkU3VjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFJlc3BvbnNpYmxlU2V0KAogICAgICAgICAgICAgICAgTmV3VXNlcklEID0+ICRUaWNrZXQtPntSZXNwb25zaWJsZUlEfSwKICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBkYXRhIGlzIHRoZSBzYW1lIGFzIGluIHRpY2tldCBub3RoaW5nIHRvIGRvCiAgICAgICAgICAgICRTdWNjZXNzID0gMTsKICAgICAgICB9CgogICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvcm1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAnVGlja2V0IHJlc3BvbnNpYmxlIGNvdWxkIG5vdCBiZSB1cGRhdGVkLCBwbGVhc2UgY29udGFjdCBzeXN0ZW0gYWRtaW5pc3RyYXRvciEnLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICBteSAkQXJ0aWNsZUlEOwogICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSgkQXJ0aWNsZSkgKSB7CgogICAgICAgICMgc2V0IEFydGljbGUgRnJvbQogICAgICAgIG15ICRGcm9tOwogICAgICAgIGlmICggJEFydGljbGUtPntGcm9tfSApIHsKICAgICAgICAgICAgJEZyb20gPSAkQXJ0aWNsZS0+e0Zyb219OwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRQYXJhbXtVc2VyVHlwZX0gZXEgJ0N1c3RvbWVyJyApIHsKCiAgICAgICAgICAgICMgdXNlIGRhdGEgZnJvbSBjdXN0b21lciB1c2VyIChpZiBjdXN0b21lciB1c2VyIGlzIGluIGRhdGFiYXNlKQogICAgICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCBcJUN1c3RvbWVyVXNlckRhdGEgKSApIHsKICAgICAgICAgICAgICAgICRGcm9tID0gJyInCiAgICAgICAgICAgICAgICAgICAgLiAkQ3VzdG9tZXJVc2VyRGF0YXtVc2VyRnVsbG5hbWV9IC4gJyInCiAgICAgICAgICAgICAgICAgICAgLiAnIDwnIC4gJEN1c3RvbWVyVXNlckRhdGF7VXNlckVtYWlsfSAuICc+JzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBvdGhlcndpc2UgdXNlIGN1c3RvbWVyIHVzZXIgYXMgc2VudCBmcm9tIHRoZSByZXF1ZXN0IChpdCBzaG91bGQgYmUgYW4gZW1haWwpCiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJEZyb20gPSAkVGlja2V0LT57Q3VzdG9tZXJVc2VyfTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbXkgJVVzZXJEYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CgojIFJvdGhlciBPU1MgLyBPQXV0aDIKIyAgICAgICAgICAgJEZyb20gPSAkVXNlckRhdGF7VXNlckZ1bGxuYW1lfTsKCiAgICAgICAgICAgIGlmICggJEFydGljbGUtPntTZW5kRW1haWx9ICkgewoKICAgICAgICAgICAgICAgIGlmICggJEFydGljbGUtPntGcm9tfSApIHsKICAgICAgICAgICAgICAgICAgICAkRnJvbSA9ICRBcnRpY2xlLT57RnJvbX07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBteSAlVGlja2V0RGF0YSA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEdldCgKICAgICAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZHMgPT4gMCwKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICAgICAgU2lsZW50ICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgIG15ICVBZGRyZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlF1ZXVlJyktPkdldFN5c3RlbUFkZHJlc3MoCiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlSUQgPT4gJFRpY2tldERhdGF7UXVldWVJRH0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgJEZyb20gPSAkQWRkcmVzc3tFbWFpbH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkRnJvbSA9ICRVc2VyRGF0YXtVc2VyRnVsbG5hbWV9OwogICAgICAgICAgICB9CiMgRU8gLyBPQXV0aDIKICAgICAgICB9CgogICAgICAgICMgU2V0IEFydGljbGUgVG8sIENjLCBCY2MuCiAgICAgICAgbXkgKCAkVG8sICRDYywgJEJjYyApOwogICAgICAgIGlmICggJEFydGljbGUtPntUb30gKSB7CiAgICAgICAgICAgICRUbyA9ICRBcnRpY2xlLT57VG99OwogICAgICAgIH0KICAgICAgICBpZiAoICRBcnRpY2xlLT57Q2N9ICkgewogICAgICAgICAgICAkQ2MgPSAkQXJ0aWNsZS0+e0NjfTsKICAgICAgICB9CiAgICAgICAgaWYgKCAkQXJ0aWNsZS0+e0JjY30gKSB7CiAgICAgICAgICAgICRCY2MgPSAkQXJ0aWNsZS0+e0JjY307CiAgICAgICAgfQoKICAgICAgICAjIEZhbGxiYWNrIGZvciBUbwogICAgICAgIGlmICggISRUbyAmJiAkQXJ0aWNsZS0+e0NvbW11bmljYXRpb25DaGFubmVsfSBlcSAnRW1haWwnICkgewoKICAgICAgICAgICAgIyBVc2UgZGF0YSBmcm9tIGN1c3RvbWVyIHVzZXIgKGlmIGN1c3RvbWVyIHVzZXIgaXMgaW4gZGF0YWJhc2UpLgogICAgICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCBcJUN1c3RvbWVyVXNlckRhdGEgKSApIHsKICAgICAgICAgICAgICAgICRUbyA9ICciJyAuICRDdXN0b21lclVzZXJEYXRhe1VzZXJGdWxsbmFtZX0gLiAnIicKICAgICAgICAgICAgICAgICAgICAuICcgPCcgLiAkQ3VzdG9tZXJVc2VyRGF0YXtVc2VyRW1haWx9IC4gJz4nOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIE90aGVyd2lzZSB1c2UgY3VzdG9tZXIgdXNlciBhcyBzZW50IGZyb20gdGhlIHJlcXVlc3QgKGl0IHNob3VsZCBiZSBhbiBlbWFpbCkuCiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFRvID0gJFRpY2tldC0+e0N1c3RvbWVyVXNlcn0gLy8gJFRpY2tldERhdGF7Q3VzdG9tZXJVc2VySUR9OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoICEkQXJ0aWNsZS0+e0NvbW11bmljYXRpb25DaGFubmVsfSApIHsKCiAgICAgICAgICAgIG15ICVDb21tdW5pY2F0aW9uQ2hhbm5lbCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDb21tdW5pY2F0aW9uQ2hhbm5lbCcpLT5DaGFubmVsR2V0KAogICAgICAgICAgICAgICAgQ2hhbm5lbElEID0+ICRBcnRpY2xlLT57Q29tbXVuaWNhdGlvbkNoYW5uZWxJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRBcnRpY2xlLT57Q29tbXVuaWNhdGlvbkNoYW5uZWx9ID0gJENvbW11bmljYXRpb25DaGFubmVse0NoYW5uZWxOYW1lfTsKICAgICAgICB9CgogICAgICAgIG15ICRBcnRpY2xlQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQ6OkFydGljbGUnKS0+QmFja2VuZEZvckNoYW5uZWwoCiAgICAgICAgICAgIENoYW5uZWxOYW1lID0+ICRBcnRpY2xlLT57Q29tbXVuaWNhdGlvbkNoYW5uZWx9LAogICAgICAgICk7CgogICAgICAgIG15ICRQbGFpbkJvZHkgPSAkQXJ0aWNsZS0+e0JvZHl9OwoKICAgICAgICAjIENvbnZlcnQgYXJ0aWNsZSBib2R5IHRvIHBsYWluIHRleHQsIGlmIEhUTUwgY29udGVudCB3YXMgc3VwcGxpZWQuIFRoaXMgaXMgbmVjZXNzYXJ5IHNpbmNlIGF1dG8gcmVzcG9uc2UgY29kZQogICAgICAgICMgICBleHBlY3RzIHBsYWluIHRleHQgY29udGVudC4gUGxlYXNlIHNlZSBidWcjMTMzOTcgZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAgICAgICAgaWYgKAogICAgICAgICAgICAoICRBcnRpY2xlLT57Q29udGVudFR5cGV9IC8vICcnICkgPX4gL3RleHRcL2h0bWwvaQogICAgICAgICAgICB8fAogICAgICAgICAgICAoICRBcnRpY2xlLT57TWltZVR5cGV9IC8vICcnICkgPX4gL3RleHRcL2h0bWwvaQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkUGxhaW5Cb2R5ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkhUTUxVdGlscycpLT5Ub0FzY2lpKAogICAgICAgICAgICAgICAgU3RyaW5nID0+ICRBcnRpY2xlLT57Qm9keX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKIyBSb3RoZXIgT1NTIC8gT0F1dGgyCiMgICAgICAgICMgQ3JlYXRlIGFydGljbGUuCiMgICAgICAgICRBcnRpY2xlSUQgPSAkQXJ0aWNsZUJhY2tlbmRPYmplY3QtPkFydGljbGVDcmVhdGUoCgogICAgICAgICMgQ3JlYXRlIGFydGljbGUgYW5kIG9wdGlvbmFsbHkgc2VuZCBlbWFpbC4KICAgICAgICBteSAkU2hhbGxTZW5kRW1haWwgPSAkQXJ0aWNsZS0+e1NlbmRFbWFpbH0gJiYKICAgICAgICAgICAgJEFydGljbGUtPntTZW5kZXJUeXBlfSBlcSAnYWdlbnQnICYmCiAgICAgICAgICAgICRBcnRpY2xlLT57Q29tbXVuaWNhdGlvbkNoYW5uZWx9IGVxICdFbWFpbCc7CgogICAgICAgIG15ICRBcnRpY2xlTWV0aG9kUmVmID0gJFNoYWxsU2VuZEVtYWlsCiAgICAgICAgICAgID8KICAgICAgICAgICAgJEFydGljbGVCYWNrZW5kT2JqZWN0LT5jYW4oJ0FydGljbGVTZW5kJykKICAgICAgICAgICAgOgogICAgICAgICAgICAkQXJ0aWNsZUJhY2tlbmRPYmplY3QtPmNhbignQXJ0aWNsZUNyZWF0ZScpOwoKICAgICAgICBteSAkVG4gICAgICA9ICRUaWNrZXRPYmplY3QtPlRpY2tldE51bWJlckxvb2t1cCggVGlja2V0SUQgPT4gJFRpY2tldElEICk7CiAgICAgICAgbXkgJFN1YmplY3QgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRTdWJqZWN0QnVpbGQoCiAgICAgICAgICAgIFRpY2tldE51bWJlciA9PiAkVG4sCiAgICAgICAgICAgIFN1YmplY3QgICAgICA9PiAkQXJ0aWNsZS0+e1N1YmplY3R9IHx8ICcnLAogICAgICAgICk7CgogICAgICAgICMgc3VwcG9ydCBmb3IgU01JTUUgZW5jcnlwdGlvbiBhbmQgc2lnbmluZwogICAgICAgIG15ICVFbWFpbFNlY3VyaXR5T3B0aW9uczsKCiAgICAgICAgaWYgKAogICAgICAgICAgICAkU2hhbGxTZW5kRW1haWwKICAgICAgICAgICAgJiYgJEFydGljbGUtPntFbWFpbFNlY3VyaXR5fQogICAgICAgICAgICAmJgogICAgICAgICAgICAkQXJ0aWNsZS0+e0VtYWlsU2VjdXJpdHl9LT57QmFja2VuZH0gZXEgJ1NNSU1FJwogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgbXkgJEVtYWlsU2VjdXJpdHkgPSB7CiAgICAgICAgICAgICAgICBCYWNrZW5kICAgICA9PiAnU01JTUUnLAogICAgICAgICAgICAgICAgU2lnbktleSAgICAgPT4gdW5kZWYsCiAgICAgICAgICAgICAgICBFbmNyeXB0S2V5cyA9PiB1bmRlZiwKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIG15ICRTTUlNRU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDcnlwdDo6U01JTUUnKTsKCiAgICAgICAgICAgIGlmICggJEFydGljbGUtPntFbWFpbFNlY3VyaXR5fS0+e1NpZ259ICkgewoKICAgICAgICAgICAgICAgIG15IEBSZXN1bHQgPSAkU01JTUVPYmplY3QtPkNlcnRpZmljYXRlU2VhcmNoKAogICAgICAgICAgICAgICAgICAgIFNlYXJjaCA9PiAkRnJvbSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgaWYgKCBzY2FsYXIgQFJlc3VsdCA9PSAxICkgewoKICAgICAgICAgICAgICAgICAgICAkRW1haWxTZWN1cml0eS0+e1NpZ25LZXl9ID0gJFJlc3VsdFswXS0+e0ZpbGVuYW1lfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICdBcnRpY2xlIGNvdWxkIG5vdCBiZSBzZW5kLCBTTUlNRSBTaWduaW5nIHdhcyByZXF1ZXN0ZWQgYnV0IG5vIFNNSU1FIHNpZ25pbmcgY2VydGlmaWNhdGUgaXMgYXZhaWwuJwogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAkQXJ0aWNsZS0+e0VtYWlsU2VjdXJpdHl9LT57RW5jcnlwdH0gKSB7CgogICAgICAgICAgICAgICAgbXkgQFJlc3VsdCA9ICRTTUlNRU9iamVjdC0+Q2VydGlmaWNhdGVTZWFyY2goCiAgICAgICAgICAgICAgICAgICAgU2VhcmNoID0+ICRUbywKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgaWYgKCBzY2FsYXIgQFJlc3VsdCA9PSAxICkgewoKICAgICAgICAgICAgICAgICAgICAkRW1haWxTZWN1cml0eS0+e0VuY3J5cHRLZXlzfSA9IFsgJFJlc3VsdFswXS0+e0ZpbGVuYW1lfSBdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJ0FydGljbGUgY291bGQgbm90IGJlIHNlbmQsIFNNSU1FIEVuY3J5cHRpb24gd2FzIHJlcXVlc3RlZCBidXQgbm8gdW5pcXVlIFNNSU1FIGNlcnRpZmljYXRlIGZvciBlbmNyeXB0aW9uIGNvdWxkIGJlIGlkZW50aWZpZWQuJwogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRFbWFpbFNlY3VyaXR5T3B0aW9uc3tFbWFpbFNlY3VyaXR5fSA9ICRFbWFpbFNlY3VyaXR5OwogICAgICAgIH0KCiAgICAgICAgIyBwcmV0dGlmeSBGUk9NCiAgICAgICAgaWYgKCRTaGFsbFNlbmRFbWFpbCkgewogICAgICAgICAgICAkRnJvbSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUZW1wbGF0ZUdlbmVyYXRvcicpLT5TZW5kZXIoCiAgICAgICAgICAgICAgICBRdWV1ZUlEID0+ICRUaWNrZXREYXRhe1F1ZXVlSUR9LAogICAgICAgICAgICAgICAgVXNlcklEICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICRBcnRpY2xlSUQgPSAkQXJ0aWNsZU1ldGhvZFJlZi0+KAogICAgICAgICAgICAkQXJ0aWNsZUJhY2tlbmRPYmplY3QsCiMgRU8gT0F1dGgyCgogICAgICAgICAgICBOb0FnZW50Tm90aWZ5ICAgICAgICA9PiAkQXJ0aWNsZS0+e05vQWdlbnROb3RpZnl9IHx8IDAsCiAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgICAgID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgU2VuZGVyVHlwZUlEICAgICAgICAgPT4gJEFydGljbGUtPntTZW5kZXJUeXBlSUR9IHx8ICcnLAogICAgICAgICAgICBTZW5kZXJUeXBlICAgICAgICAgICA9PiAkQXJ0aWNsZS0+e1NlbmRlclR5cGV9ICAgfHwgJycsCiAgICAgICAgICAgIElzVmlzaWJsZUZvckN1c3RvbWVyID0+ICRBcnRpY2xlLT57SXNWaXNpYmxlRm9yQ3VzdG9tZXJ9LAogICAgICAgICAgICBGcm9tICAgICAgICAgICAgICAgICA9PiAkRnJvbSwKICAgICAgICAgICAgVG8gICAgICAgICAgICAgICAgICAgPT4gJFRvLAogICAgICAgICAgICBDYyAgICAgICAgICAgICAgICAgICA9PiAkQ2MsCiAgICAgICAgICAgIEJjYyAgICAgICAgICAgICAgICAgID0+ICRCY2MsCiMgUm90aGVyIE9TUyAvIE9BdXRoMgojICAgICAgICAgICBTdWJqZWN0ICAgICAgICAgICAgICA9PiAkQXJ0aWNsZS0+e1N1YmplY3R9LAogICAgICAgICAgICBTdWJqZWN0ID0+ICRTdWJqZWN0LAojIEVPIE9BdXRoMgogICAgICAgICAgICBCb2R5ICAgICAgICAgICAgID0+ICRBcnRpY2xlLT57Qm9keX0sCiAgICAgICAgICAgIE1pbWVUeXBlICAgICAgICAgPT4gJEFydGljbGUtPntNaW1lVHlwZX0gICAgfHwgJycsCiAgICAgICAgICAgIENoYXJzZXQgICAgICAgICAgPT4gJEFydGljbGUtPntDaGFyc2V0fSAgICAgfHwgJycsCiAgICAgICAgICAgIENvbnRlbnRUeXBlICAgICAgPT4gJEFydGljbGUtPntDb250ZW50VHlwZX0gfHwgJycsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICAgICAgPT4gJEFydGljbGUtPntIaXN0b3J5VHlwZX0sCiAgICAgICAgICAgIEhpc3RvcnlDb21tZW50ICAgPT4gJEFydGljbGUtPntIaXN0b3J5Q29tbWVudH0gfHwgJyUlJywKICAgICAgICAgICAgQXV0b1Jlc3BvbnNlVHlwZSA9PiAkQXJ0aWNsZS0+e0F1dG9SZXNwb25zZVR5cGV9LAogICAgICAgICAgICBVbmxvY2tPbkF3YXkgICAgID0+ICRVbmxvY2tPbkF3YXksCiAgICAgICAgICAgIE9yaWdIZWFkZXIgICAgICAgPT4gewogICAgICAgICAgICAgICAgRnJvbSAgICA9PiAkRnJvbSwKICAgICAgICAgICAgICAgIFRvICAgICAgPT4gJFRvLAogICAgICAgICAgICAgICAgU3ViamVjdCA9PiAkQXJ0aWNsZS0+e1N1YmplY3R9LAogICAgICAgICAgICAgICAgQm9keSAgICA9PiAkUGxhaW5Cb2R5LAogICAgICAgICAgICB9LAojIFJvdGhlciBPU1MgLyBPQXV0aDIKICAgICAgICAgICAgJUVtYWlsU2VjdXJpdHlPcHRpb25zCiMgRU8gT0F1dGgyCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhJEFydGljbGVJRCApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAgICAgJ0FydGljbGUgY291bGQgbm90IGJlIGNyZWF0ZWQsIHBsZWFzZSBjb250YWN0IHRoZSBzeXN0ZW0gYWRtaW5pc3RyYXRvcicKICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgICMgdGltZSBhY2NvdW50aW5nCiAgICAgICAgaWYgKCAkQXJ0aWNsZS0+e1RpbWVVbml0fSApIHsKICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0QWNjb3VudFRpbWUoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgQXJ0aWNsZUlEID0+ICRBcnRpY2xlSUQsCiAgICAgICAgICAgICAgICBUaW1lVW5pdCAgPT4gJEFydGljbGUtPntUaW1lVW5pdH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IGR5bmFtaWMgZmllbGRzCiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZCAoIEB7JER5bmFtaWNGaWVsZExpc3R9ICkgewogICAgICAgIG15ICRSZXN1bHQgPSAkU2VsZi0+U2V0RHluYW1pY0ZpZWxkVmFsdWUoCiAgICAgICAgICAgICV7JER5bmFtaWNGaWVsZH0sCiAgICAgICAgICAgIFRpY2tldElEICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgIEFydGljbGVJRCA9PiAkQXJ0aWNsZUlEIHx8ICcnLAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhJFJlc3VsdC0+e1N1Y2Nlc3N9ICkgewogICAgICAgICAgICBteSAkRXJyb3JNZXNzYWdlID0KICAgICAgICAgICAgICAgICRSZXN1bHQtPntFcnJvck1lc3NhZ2V9IHx8ICJEeW5hbWljIEZpZWxkICREeW5hbWljRmllbGQtPntOYW1lfSBjb3VsZCBub3QgYmUgc2V0LCIKICAgICAgICAgICAgICAgIC4gIiBwbGVhc2UgY29udGFjdCB0aGUgc3lzdGVtIGFkbWluaXN0cmF0b3IiOwoKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRFcnJvck1lc3NhZ2UsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IGF0dGFjaG1lbnRzCgogICAgZm9yIG15ICRBdHRhY2htZW50ICggQHskQXR0YWNobWVudExpc3R9ICkgewogICAgICAgIG15ICRSZXN1bHQgPSAkU2VsZi0+Q3JlYXRlQXR0YWNobWVudCgKICAgICAgICAgICAgQXR0YWNobWVudCA9PiAkQXR0YWNobWVudCwKICAgICAgICAgICAgVGlja2V0SUQgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgIEFydGljbGVJRCAgPT4gJEFydGljbGVJRCB8fCAnJywKICAgICAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfQogICAgICAgICk7CgogICAgICAgIGlmICggISRSZXN1bHQtPntTdWNjZXNzfSApIHsKICAgICAgICAgICAgbXkgJEVycm9yTWVzc2FnZSA9CiAgICAgICAgICAgICAgICAkUmVzdWx0LT57RXJyb3JNZXNzYWdlfSB8fCAiQXR0YWNobWVudCBjb3VsZCBub3QgYmUgY3JlYXRlZCwgcGxlYXNlIGNvbnRhY3QgdGhlICIKICAgICAgICAgICAgICAgIC4gIiBzeXN0ZW0gYWRtaW5pc3RyYXRvciI7CgogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJEVycm9yTWVzc2FnZSwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgd2ViIHNlcnZpY2UgY29uZmlndXJhdGlvbgogICAgbXkgJFdlYnNlcnZpY2UgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJpY0ludGVyZmFjZTo6V2Vic2VydmljZScpLT5XZWJzZXJ2aWNlR2V0KAogICAgICAgIElEID0+ICRTZWxmLT57V2Vic2VydmljZUlEfSwKICAgICk7CgogICAgbXkgJEluY2x1ZGVUaWNrZXREYXRhOwoKICAgICMgR2V0IG9wZXJhdGlvbiBjb25maWcsIGlmIG9wZXJhdGlvbiBuYW1lIHdhcyBzdXBwbGllZC4KICAgIGlmICggJFNlbGYtPntPcGVyYXRpb259ICkgewogICAgICAgIG15ICRPcGVyYXRpb25Db25maWcgPSAkV2Vic2VydmljZS0+e0NvbmZpZ30tPntQcm92aWRlcn0tPntPcGVyYXRpb259LT57ICRTZWxmLT57T3BlcmF0aW9ufSB9OwogICAgICAgICRJbmNsdWRlVGlja2V0RGF0YSA9ICRPcGVyYXRpb25Db25maWctPntJbmNsdWRlVGlja2V0RGF0YX07CiAgICB9CgogICAgaWYgKCAhJEluY2x1ZGVUaWNrZXREYXRhICkgewogICAgICAgIGlmICgkQXJ0aWNsZUlEKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzID0+IDEsCiAgICAgICAgICAgICAgICBEYXRhICAgID0+IHsKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgICAgIFRpY2tldE51bWJlciA9PiAkVGlja2V0RGF0YXtUaWNrZXROdW1iZXJ9LAogICAgICAgICAgICAgICAgICAgIEFydGljbGVJRCAgICA9PiAkQXJ0aWNsZUlELAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAxLAogICAgICAgICAgICBEYXRhICAgID0+IHsKICAgICAgICAgICAgICAgIFRpY2tldElEICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBUaWNrZXROdW1iZXIgPT4gJFRpY2tldERhdGF7VGlja2V0TnVtYmVyfSwKICAgICAgICAgICAgfSwKICAgICAgICB9OwogICAgfQoKICAgICMgZ2V0IHVwZGF0ZWQgVGlja2V0RGF0YQogICAgJVRpY2tldERhdGEgPSAoKTsKICAgICVUaWNrZXREYXRhID0gJFRpY2tldE9iamVjdC0+VGlja2V0R2V0KAogICAgICAgIFRpY2tldElEICAgICAgPT4gJFRpY2tldElELAogICAgICAgIER5bmFtaWNGaWVsZHMgPT4gMSwKICAgICAgICBVc2VySUQgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGV4dHJhY3QgYWxsIGR5bmFtaWMgZmllbGRzIGZyb20gbWFpbiB0aWNrZXQgaGFzaC4KICAgIG15ICVUaWNrZXREeW5hbWljRmllbGRzOwogICAgVElDS0VUQVRUUklCVVRFOgogICAgZm9yIG15ICRUaWNrZXRBdHRyaWJ1dGUgKCBzb3J0IGtleXMgJVRpY2tldERhdGEgKSB7CiAgICAgICAgaWYgKCAkVGlja2V0QXR0cmlidXRlID1+IG17XEEgRHluYW1pY0ZpZWxkXyguKikgXHp9bXN4ICkgewogICAgICAgICAgICAkVGlja2V0RHluYW1pY0ZpZWxkc3skMX0gPSB7CiAgICAgICAgICAgICAgICBOYW1lICA9PiAkMSwKICAgICAgICAgICAgICAgIFZhbHVlID0+ICRUaWNrZXREYXRheyRUaWNrZXRBdHRyaWJ1dGV9LAogICAgICAgICAgICB9OwogICAgICAgICAgICBkZWxldGUgJFRpY2tldERhdGF7JFRpY2tldEF0dHJpYnV0ZX07CiAgICAgICAgfQogICAgfQoKICAgICMgYWRkIGR5bmFtaWMgZmllbGRzIGFzIGFycmF5IGludG8gJ0R5bmFtaWNGaWVsZCcgaGFzaCBrZXkgaWYgYW55CiAgICBpZiAoJVRpY2tldER5bmFtaWNGaWVsZHMpIHsKICAgICAgICAkVGlja2V0RGF0YXtEeW5hbWljRmllbGR9ID0gWyBzb3J0IHsgJGEtPntOYW1lfSBjbXAgJGItPntOYW1lfSB9IHZhbHVlcyAlVGlja2V0RHluYW1pY0ZpZWxkcyBdOwogICAgfQoKICAgICMgZ2V0IGxhc3QgQXJ0aWNsZUlECiAgICBteSAkQXJ0aWNsZU9iamVjdCAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpBcnRpY2xlJyk7CiAgICBteSAkQXJ0aWNsZUJhY2tlbmRPYmplY3QgPSAkQXJ0aWNsZU9iamVjdC0+QmFja2VuZEZvckFydGljbGUoCiAgICAgICAgQXJ0aWNsZUlEID0+ICRBcnRpY2xlSUQsCiAgICAgICAgVGlja2V0SUQgID0+ICRUaWNrZXRJRAogICAgKTsKCiAgICBteSBAQXJ0aWNsZXMgPSAkQXJ0aWNsZU9iamVjdC0+QXJ0aWNsZUxpc3QoCiAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgIE9ubHlMYXN0ID0+IDEsCiAgICApOwoKICAgIG15ICRMYXN0QXJ0aWNsZUlEID0gJEFydGljbGVzWzBdLT57QXJ0aWNsZUlEfTsKCiAgICAjIHJldHVybiB0aWNrZXQgZGF0YSBpZiB3ZSBoYXZlIG5vIGFydGljbGUgZGF0YQogICAgaWYgKCAhJEFydGljbGVJRCAmJiAhJExhc3RBcnRpY2xlSUQgKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAxLAogICAgICAgICAgICBEYXRhICAgID0+IHsKICAgICAgICAgICAgICAgIFRpY2tldElEICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBUaWNrZXROdW1iZXIgPT4gJFRpY2tldERhdGF7VGlja2V0TnVtYmVyfSwKICAgICAgICAgICAgICAgIFRpY2tldCAgICAgICA9PiBcJVRpY2tldERhdGEsCiAgICAgICAgICAgIH0sCiAgICAgICAgfTsKICAgIH0KCiAgICAjIGdldCBBcnRpY2xlIGFuZCBBcnRpY2xlQXR0YWNoZW1lbnQKICAgIG15ICVBcnRpY2xlRGF0YSA9ICRBcnRpY2xlQmFja2VuZE9iamVjdC0+QXJ0aWNsZUdldCgKICAgICAgICBBcnRpY2xlSUQgICAgID0+ICRBcnRpY2xlSUQgfHwgJExhc3RBcnRpY2xlSUQsCiAgICAgICAgRHluYW1pY0ZpZWxkcyA9PiAxLAogICAgICAgIFRpY2tldElEICAgICAgPT4gJFRpY2tldElELAogICAgKTsKCiAgICAjIHByZXBhcmUgQXJ0aWNsZSBEeW5hbWljRmllbGRzCiAgICBteSBAQXJ0aWNsZUR5bmFtaWNGaWVsZHM7CgogICAgIyByZW1vdmUgYWxsIGR5bmFtaWMgZmllbGRzIGZyb20gbWFpbiB0aWNrZXQgaGFzaCBhbmQgc2V0IHRoZW0gaW50byBhbiBhcnJheS4KICAgIEFSVElDTEVBVFRSSUJVVEU6CiAgICBmb3IgbXkgJEFydGljbGVBdHRyaWJ1dGUgKCBzb3J0IGtleXMgJUFydGljbGVEYXRhICkgewogICAgICAgIGlmICggJEFydGljbGVBdHRyaWJ1dGUgPX4gbXtcQSBEeW5hbWljRmllbGRfKC4qKSBcen1tc3ggKSB7CiAgICAgICAgICAgIGlmICggIWV4aXN0cyAkVGlja2V0RHluYW1pY0ZpZWxkc3skMX0gKSB7CiAgICAgICAgICAgICAgICBwdXNoIEBBcnRpY2xlRHluYW1pY0ZpZWxkcywgewogICAgICAgICAgICAgICAgICAgIE5hbWUgID0+ICQxLAogICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICRBcnRpY2xlRGF0YXskQXJ0aWNsZUF0dHJpYnV0ZX0sCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CgogICAgICAgICAgICBkZWxldGUgJEFydGljbGVEYXRheyRBcnRpY2xlQXR0cmlidXRlfTsKICAgICAgICB9CiAgICB9CgogICAgIyBhZGQgZHluYW1pYyBmaWVsZHMgYXJyYXkgaW50byAnRHluYW1pY0ZpZWxkJyBoYXNoIGtleSBpZiBhbnkKICAgIGlmIChAQXJ0aWNsZUR5bmFtaWNGaWVsZHMpIHsKICAgICAgICAkQXJ0aWNsZURhdGF7RHluYW1pY0ZpZWxkfSA9IFxAQXJ0aWNsZUR5bmFtaWNGaWVsZHM7CiAgICB9CgogICAgIyBhZGQgYXR0YWNobWVudCBpZiB0aGUgcmVxdWVzdCBpbmNsdWRlcyBhdHRhY2htZW50cwogICAgaWYgKCBJc0FycmF5UmVmV2l0aERhdGEoJEF0dGFjaG1lbnRMaXN0KSApIHsKICAgICAgICBteSAlQXR0YWNobWVudEluZGV4ID0gJEFydGljbGVCYWNrZW5kT2JqZWN0LT5BcnRpY2xlQXR0YWNobWVudEluZGV4KAogICAgICAgICAgICBBcnRpY2xlSUQgPT4gJEFydGljbGVEYXRhe0FydGljbGVJRH0sCiAgICAgICAgKTsKCiAgICAgICAgbXkgQEF0dGFjaG1lbnRzOwogICAgICAgIEFUVEFDSE1FTlQ6CiAgICAgICAgZm9yIG15ICRGaWxlSUQgKCBzb3J0IGtleXMgJUF0dGFjaG1lbnRJbmRleCApIHsKICAgICAgICAgICAgbmV4dCBBVFRBQ0hNRU5UIGlmICEkRmlsZUlEOwogICAgICAgICAgICBteSAlQXR0YWNobWVudCA9ICRBcnRpY2xlQmFja2VuZE9iamVjdC0+QXJ0aWNsZUF0dGFjaG1lbnQoCiAgICAgICAgICAgICAgICBBcnRpY2xlSUQgPT4gJEFydGljbGVEYXRhe0FydGljbGVJRH0sCiAgICAgICAgICAgICAgICBGaWxlSUQgICAgPT4gJEZpbGVJRCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgQVRUQUNITUVOVCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoIFwlQXR0YWNobWVudCApOwoKICAgICAgICAgICAgIyBjb252ZXJ0IGNvbnRlbnQgdG8gYmFzZTY0LCBidXQgcHJldmVudCA3NiBjaGFycyBicmFrZSwgc2VlIGJ1ZyMxNDUwMC4KICAgICAgICAgICAgJEF0dGFjaG1lbnR7Q29udGVudH0gPSBlbmNvZGVfYmFzZTY0KCAkQXR0YWNobWVudHtDb250ZW50fSwgJycgKTsKICAgICAgICAgICAgcHVzaCBAQXR0YWNobWVudHMsIHslQXR0YWNobWVudH07CiAgICAgICAgfQoKICAgICAgICAjIHNldCBBdHRhY2htZW50cyBkYXRhCiAgICAgICAgaWYgKEBBdHRhY2htZW50cykgewogICAgICAgICAgICAkQXJ0aWNsZURhdGF7QXR0YWNobWVudH0gPSBcQEF0dGFjaG1lbnRzOwogICAgICAgIH0KICAgIH0KCiAgICAkVGlja2V0RGF0YXtBcnRpY2xlfSA9IFwlQXJ0aWNsZURhdGE7CgogICAgIyByZXR1cm4gdGlja2V0IGRhdGEgYW5kIGFydGljbGUgZGF0YQogICAgcmV0dXJuIHsKICAgICAgICBTdWNjZXNzID0+IDEsCiAgICAgICAgRGF0YSAgICA9PiB7CiAgICAgICAgICAgIFRpY2tldElEICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgIFRpY2tldE51bWJlciA9PiAkVGlja2V0RGF0YXtUaWNrZXROdW1iZXJ9LAogICAgICAgICAgICBBcnRpY2xlSUQgICAgPT4gJEFydGljbGVEYXRhe0FydGljbGVJRH0sCiAgICAgICAgICAgIFRpY2tldCAgICAgICA9PiBcJVRpY2tldERhdGEsCiAgICAgICAgfSwKICAgIH07Cn0KCj1lbmQgSW50ZXJuYWw6Cgo9Y3V0CgoxOwo=</File>
        <File Location="Custom/Kernel/GenericInterface/Operation/Session/SessionCreate.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSBmZjllMjk3YmFmMjg3ZTE2MDcxZDNhYzZhZDdmNmMxM2YxMWFjN2ZhIC0gS2VybmVsL0dlbmVyaWNJbnRlcmZhY2UvT3BlcmF0aW9uL1Nlc3Npb24vU2Vzc2lvbkNyZWF0ZS5wbQojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpTZXNzaW9uOjpTZXNzaW9uQ3JlYXRlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KElzU3RyaW5nV2l0aERhdGEgSXNIYXNoUmVmV2l0aERhdGEpOwoKdXNlIHBhcmVudCBxdygKICAgIEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpDb21tb24KICAgIEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpTZXNzaW9uOjpDb21tb24KKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6U2Vzc2lvbjo6U2Vzc2lvbkNyZWF0ZSAtIEdlbmVyaWNJbnRlcmZhY2UgU2Vzc2lvbiBDcmVhdGUgT3BlcmF0aW9uIGJhY2tlbmQKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9aGVhZDIgbmV3KCkKCnVzdWFsbHksIHlvdSB3YW50IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiB0aGlzCmJ5IHVzaW5nIEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uLT5uZXcoKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgY2hlY2sgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkTmVlZGVkICgKICAgICAgICBxdyhEZWJ1Z2dlck9iamVjdCBXZWJzZXJ2aWNlSUQpCiAgICAgICAgKQogICAgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKCiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiR290IG5vICROZWVkZWQhIgogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgJFNlbGYtPnskTmVlZGVkfSA9ICRQYXJhbXskTmVlZGVkfTsKICAgIH0KCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBSdW4oKQoKUmV0cmlldmUgYSBuZXcgc2Vzc2lvbiBpZCB2YWx1ZS4KCiAgICBteSAkUmVzdWx0ID0gJE9wZXJhdGlvbk9iamVjdC0+UnVuKAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBVc2VyTG9naW4gICAgICAgICA9PiAnQWdlbnQxJywKICAgICAgICAgICAgQ3VzdG9tZXJVc2VyTG9naW4gPT4gJ0N1c3RvbWVyMScsICAgICAgICMgb3B0aW9uYWwsIHByb3ZpZGUgVXNlckxvZ2luIG9yIEN1c3RvbWVyVXNlckxvZ2luCiAgICAgICAgICAgIFBhc3N3b3JkICAgICAgICAgID0+ICdzb21lIHBhc3N3b3JkJywgICAjIHBsYWluIHRleHQgcGFzc3dvcmQKICAgICAgICB9LAogICAgKTsKCiAgICAkUmVzdWx0ID0gewogICAgICAgIFN1Y2Nlc3MgICAgICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAwIG9yIDEKICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJycsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgSW4gY2FzZSBvZiBhbiBlcnJvcgogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgIFNlc3Npb25JRCA9PiAkU2Vzc2lvbklELAogICAgICAgIH0sCiAgICB9OwoKPWN1dAoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSggJFBhcmFte0RhdGF9ICkgKSB7CgogICAgICAgIHJldHVybiAkU2VsZi0+UmV0dXJuRXJyb3IoCiAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnU2Vzc2lvbkNyZWF0ZS5NaXNzaW5nUGFyYW1ldGVyJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJTZXNzaW9uQ3JlYXRlOiBUaGUgcmVxdWVzdCBpcyBlbXB0eSEiLAogICAgICAgICk7CiAgICB9CgogICAgZm9yIG15ICROZWVkZWQgKHF3KCBQYXNzd29yZCApKSB7CiAgICAgICAgaWYgKCAhJFBhcmFte0RhdGF9LT57JE5lZWRlZH0gKSB7CgojIFJvdGhlciBPU1MgLyBPQXV0aDIKIyAgICAgICAgICAgcmV0dXJuICRTZWxmLT5SZXR1cm5FcnJvcigKIyAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnU2Vzc2lvbkNyZWF0ZS5NaXNzaW5nUGFyYW1ldGVyJywKIyAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiU2Vzc2lvbkNyZWF0ZTogJE5lZWRlZCBwYXJhbWV0ZXIgaXMgbWlzc2luZyEiLAojICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAhJFBhcmFte0RhdGF9LT57QmVhcmVyVG9rZW59ICkgewogICAgICAgICAgICAgICAgcmV0dXJuICRTZWxmLT5SZXR1cm5FcnJvcigKICAgICAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1Nlc3Npb25DcmVhdGUuTWlzc2luZ1BhcmFtZXRlcicsCiAgICAgICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJTZXNzaW9uQ3JlYXRlOiAkTmVlZGVkIHBhcmFtZXRlciBpcyBtaXNzaW5nISIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgojIEVPIE9BdXRoMgogICAgICAgIH0KICAgIH0KCiAgICBteSAkU2Vzc2lvbklEID0gJFNlbGYtPkNyZWF0ZVNlc3Npb25JRCgKICAgICAgICAlUGFyYW0sCiMgUm90aGVyIE9TUyAvIE9BdXRoMgogICAgICAgIERlYnVnZ2VyT2JqZWN0ID0+ICRTZWxmLT57RGVidWdnZXJPYmplY3R9CiMgRU8gT0F1dGgyCiAgICApOwoKICAgIGlmICggISRTZXNzaW9uSUQgKSB7CgogICAgICAgIHJldHVybiAkU2VsZi0+UmV0dXJuRXJyb3IoCiAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnU2Vzc2lvbkNyZWF0ZS5BdXRoRmFpbCcsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiU2Vzc2lvbkNyZWF0ZTogQXV0aG9yaXphdGlvbiBmYWlsaW5nISIsCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gewogICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgICAgICBEYXRhICAgID0+IHsKICAgICAgICAgICAgU2Vzc2lvbklEID0+ICRTZXNzaW9uSUQsCiAgICAgICAgfSwKICAgIH07Cn0KCjE7Cg==</File>
        <File Location="Custom/Kernel/GenericInterface/Operation/Session/Common.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSBmZjllMjk3YmFmMjg3ZTE2MDcxZDNhYzZhZDdmNmMxM2YxMWFjN2ZhIC0gS2VybmVsL0dlbmVyaWNJbnRlcmZhY2UvT3BlcmF0aW9uL1Nlc3Npb24vQ29tbW9uLnBtCiMgLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgojIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKIyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwojIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OlNlc3Npb246OkNvbW1vbjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgICAgICAgICAgICAgIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OlNlc3Npb246OkNvbW1vbiAtIEJhc2UgY2xhc3MgZm9yIFNlc3Npb24gT3BlcmF0aW9ucwoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBDcmVhdGVTZXNzaW9uSUQoKQoKcGVyZm9ybXMgdXNlciBhdXRoZW50aWNhdGlvbiBhbmQgcmV0dXJuIGEgbmV3IFNlc3Npb25JRCB2YWx1ZQoKICAgIG15ICRTZXNzaW9uSUQgPSAkQ29tbW9uT2JqZWN0LT5DcmVhdGVTZXNzaW9uSUQoCiAgICAgICAgRGF0YSB7CiAgICAgICAgICAgIFVzZXJMb2dpbiAgICAgICAgID0+ICdBZ2VudDEnLAogICAgICAgICAgICBDdXN0b21lclVzZXJMb2dpbiA9PiAnQ3VzdG9tZXIxJywgICAgICAgIyBvcHRpb25hbCwgcHJvdmlkZSBVc2VyTG9naW4gb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICBDdXN0b21lclVzZXJMb2dpbgogICAgICAgICAgICBQYXNzd29yZCAgICAgICAgICA9PiAnc29tZSBwYXNzd29yZCcsICAgIyBwbGFpbiB0ZXh0IHBhc3N3b3JkCiAgICAgICAgfQogICAgKTsKClJldHVybnMgdW5kZWYgb24gZmFpbHVyZSBvcgoKICAgICRTZXNzaW9uSUQgPSAnQVZhbGlkU2Vzc2lvbklEVmFsdWUnOyAgICAgICAgICMgdGhlIG5ldyBzZXNzaW9uIGlkIHZhbHVlCgo9Y3V0CgpzdWIgQ3JlYXRlU2Vzc2lvbklEIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFVzZXI7CiAgICBteSAlVXNlckRhdGE7CiAgICBteSAkVXNlclR5cGU7CgojIFJvdGhlciBPU1MgLyBPQXV0aDIKICAgICMgc3BlY2lhbCBjYXNlIGZvciBzZXNzaW9uIGNyZWF0aW9uIGJhc2VkIG9uIE9BdXRoIEJlYXJlciB0b2tlbgogICAgaWYgKCAkUGFyYW17RGF0YX0tPntCZWFyZXJUb2tlbn0gKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT5fQ3JlYXRlU2Vzc2lvbklERnJvbUJlYXJlclRva2VuKCVQYXJhbSk7CiAgICB9CiMgRU8gLyBPQXV0aDIKCiAgICAjIGdldCBwYXJhbXMKICAgIG15ICRQb3N0UHcgPSAkUGFyYW17RGF0YX0tPntQYXNzd29yZH0gfHwgJyc7CgogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtEYXRhfS0+e1VzZXJMb2dpbn0gJiYgJFBhcmFte0RhdGF9LT57VXNlckxvZ2lufSApIHsKCiAgICAgICAgIyBpZiBVc2VyTG9naW4KICAgICAgICBteSAkUG9zdFVzZXIgPSAkUGFyYW17RGF0YX0tPntVc2VyTG9naW59IHx8ICcnOwoKICAgICAgICAjIGNoZWNrIHN1Ym1pdHRlZCBkYXRhCiAgICAgICAgJFVzZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aCcpLT5BdXRoKAogICAgICAgICAgICBVc2VyID0+ICRQb3N0VXNlciwKICAgICAgICAgICAgUHcgICA9PiAkUG9zdFB3LAogICAgICAgICk7CiAgICAgICAgJVVzZXJEYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgIFVzZXIgID0+ICRVc2VyLAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFVzZXJUeXBlID0gJ1VzZXInOwogICAgfQogICAgZWxzaWYgKCBkZWZpbmVkICRQYXJhbXtEYXRhfS0+e0N1c3RvbWVyVXNlckxvZ2lufSAmJiAkUGFyYW17RGF0YX0tPntDdXN0b21lclVzZXJMb2dpbn0gKSB7CgogICAgICAgICMgaWYgVXNlckN1c3RvbWVyTG9naW4KICAgICAgICBteSAkUG9zdFVzZXIgPSAkUGFyYW17RGF0YX0tPntDdXN0b21lclVzZXJMb2dpbn0gfHwgJyc7CgogICAgICAgICMgY2hlY2sgc3VibWl0dGVkIGRhdGEKICAgICAgICAkVXNlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDdXN0b21lckF1dGgnKS0+QXV0aCgKICAgICAgICAgICAgVXNlciA9PiAkUG9zdFVzZXIsCiAgICAgICAgICAgIFB3ICAgPT4gJFBvc3RQdywKICAgICAgICApOwogICAgICAgICVVc2VyRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDdXN0b21lclVzZXInKS0+Q3VzdG9tZXJVc2VyRGF0YUdldCgKICAgICAgICAgICAgVXNlciAgPT4gJFBvc3RVc2VyLAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFVzZXJUeXBlID0gJ0N1c3RvbWVyJzsKICAgIH0KCiAgICAjIGxvZ2luIGlzIGludmFsaWQKICAgIHJldHVybiBpZiAhJFVzZXI7CgogICAgIyBjcmVhdGUgbmV3IHNlc3Npb24gaWQKICAgIG15ICROZXdTZXNzaW9uSUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+Q3JlYXRlU2Vzc2lvbklEKAogICAgICAgICVVc2VyRGF0YSwKICAgICAgICBVc2VyTGFzdFJlcXVlc3QgPT4gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyktPlRvRXBvY2goKSwKICAgICAgICBVc2VyVHlwZSAgICAgICAgPT4gJFVzZXJUeXBlLAogICAgICAgIFNlc3Npb25Tb3VyY2UgICA9PiAnR2VuZXJpY0ludGVyZmFjZScsCiAgICApOwoKICAgIHJldHVybiAkTmV3U2Vzc2lvbklEIGlmICgkTmV3U2Vzc2lvbklEKTsKCiAgICByZXR1cm47Cn0KCiMgUm90aGVyIE9TUyAvIE9BdXRoMgpzdWIgX0NyZWF0ZVNlc3Npb25JREZyb21CZWFyZXJUb2tlbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRBdXRoZW50aWNhdG9yID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkF1dGhlbnRpY2F0b3InKTsKICAgIG15ICRSZXN1bHQgICAgICAgID0gJEF1dGhlbnRpY2F0b3ItPkF1dGhlbnRpY2F0ZSgKICAgICAgICBUb2tlbiA9PiAkUGFyYW17RGF0YX0tPntCZWFyZXJUb2tlbn0sCiAgICApOwoKICAgIGlmICggJFJlc3VsdC0+e1N1Y2Nlc3N9ICkgewoKICAgICAgICAjIHJlcG9ydCBzdWNjZXNzIQogICAgICAgICRQYXJhbXtEZWJ1Z2dlck9iamVjdH0tPkRlYnVnKAogICAgICAgICAgICBTdW1tYXJ5ID0+ICdCZWFyZXIgVG9rZW4gZGVjb2RlZDonLAogICAgICAgICAgICBEYXRhICAgID0+ICRSZXN1bHQtPntUb2tlbkRhdGF9LAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIG5ldyBzZXNzaW9uIGlkCiAgICAgICAgbXkgJE5ld1Nlc3Npb25JRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpBdXRoU2Vzc2lvbicpLT5DcmVhdGVTZXNzaW9uSUQoCiAgICAgICAgICAgICRSZXN1bHQtPntVc2VyRGF0YX0tPiUqLAogICAgICAgICAgICBVc2VyTGFzdFJlcXVlc3QgPT4gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyktPlRvRXBvY2goKSwKICAgICAgICAgICAgVXNlclR5cGUgICAgICAgID0+ICdVc2VyJywKICAgICAgICAgICAgU2Vzc2lvblNvdXJjZSAgID0+ICdHZW5lcmljSW50ZXJmYWNlJywKICAgICAgICApOwoKICAgICAgICAjIGlmIHdlIGhhdmUgYSB2YWxpcyBzZXNzaW9uLCB3ZSBhcmUgZG9uZS4KICAgICAgICByZXR1cm4gJE5ld1Nlc3Npb25JRCBpZiAoJE5ld1Nlc3Npb25JRCk7CgogICAgICAgICMgb3RoZXJ3aXNlIHRyeSBuZXh0IGFjY291bnQKICAgICAgICBuZXh0IEFDQ09VTlROQU1FOwogICAgfQoKICAgIHJldHVybjsKfQojIEVPIC8gT0F1dGgyCgoxOwo=</File>
        <File Location="Custom/Kernel/GenericInterface/Transport/HTTP/REST.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL0dlbmVyaWNJbnRlcmZhY2UvVHJhbnNwb3J0L0hUVFAvUkVTVC5wbQojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6VHJhbnNwb3J0OjpIVFRQOjpSRVNUOwoKdXNlIHY1LjI0Owp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSBuYW1lc3BhY2U6OmF1dG9jbGVhbjsKCiMgY29yZSBtb2R1bGVzCnVzZSBNSU1FOjpCYXNlNjQgcXcoZW5jb2RlX2Jhc2U2NCk7CgojIENQQU4gbW9kdWxlcwp1c2UgSFRUUDo6U3RhdHVzICAgIHF3KHN0YXR1c19tZXNzYWdlKTsKdXNlIFJFU1Q6OkNsaWVudCAgICAoKTsKdXNlIFVSSTo6RXNjYXBlICAgICBxdyh1cmlfZXNjYXBlX3V0ZjggdXJpX3VuZXNjYXBlKTsKdXNlIFBsYWNrOjpSZXNwb25zZSAoKTsKCiMgT1RPQk8gbW9kdWxlcwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgIHF3KDphbGwpOwp1c2UgS2VybmVsOjpTeXN0ZW06OldlYjo6RXhjZXB0aW9uICgpOwoKIyBSb3RoZXIgT1NTIC8gT0F1dGgyCnVzZSBLZXJuZWw6Okxhbmd1YWdlICAgICAgICAgICAgICAgcXcoVHJhbnNsYXRhYmxlKTsKIyBFTyBPQXV0aDIKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6OlRyYW5zcG9ydDo6SFRUUDo6UkVTVCAtIEdlbmVyaWNJbnRlcmZhY2UgbmV0d29yayB0cmFuc3BvcnQgaW50ZXJmYWNlIGZvciBIVFRQOjpSRVNUCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKPWhlYWQyIG5ldygpCgp1c3VhbGx5LCB5b3Ugd2FudCB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgdGhpcwpieSB1c2luZyBLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6OlRyYW5zcG9ydC0+bmV3KCk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBBbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0LgogICAgbXkgJFNlbGYgPSBibGVzcyB7fSwgJFR5cGU7CgogICAgIyBDaGVjayBuZWVkZWQgb2JqZWN0cy4KICAgIGZvciBteSAkTmVlZGVkIChxdyhEZWJ1Z2dlck9iamVjdCBUcmFuc3BvcnRDb25maWcpKSB7CiAgICAgICAgJFNlbGYtPnskTmVlZGVkfSA9ICRQYXJhbXskTmVlZGVkfSB8fCBkaWUgIkdvdCBubyAkTmVlZGVkISI7CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgUHJvdmlkZXJQcm9jZXNzUmVxdWVzdCgpCgpQcm9jZXNzIGFuIGluY29taW5nIHdlYiBzZXJ2aWNlIHJlcXVlc3QuIFRoaXMgZnVuY3Rpb24gaGFzIHRvIHJlYWQgdGhlIHJlcXVlc3QgZGF0YQpmcm9tIGZyb20gdGhlIHdlYiBzZXJ2ZXIgcHJvY2Vzcy4KCkJhc2VkIG9uIHRoZSByZXF1ZXN0IHRoZSBPcGVyYXRpb24gdG8gYmUgdXNlZCBpcyBkZXRlcm1pbmVkLgoKTm8gb3V0LWJvdW5kIGNvbW11bmljYXRpb24gaXMgZG9uZSBoZXJlLCBleGNlcHQgZnJvbSBjb250aW51ZSByZXF1ZXN0cy4KCkluIGNhc2Ugb2YgYW4gZXJyb3IsIHRoZSByZXN1bHRpbmcgaHR0cCBlcnJvciBjb2RlIGFuZCBtZXNzYWdlIGFyZSByZW1lbWJlcmVkIGZvciB0aGUgcmVzcG9uc2UuCgogICAgbXkgJFJlc3VsdCA9ICRUcmFuc3BvcnRPYmplY3QtPlByb3ZpZGVyUHJvY2Vzc1JlcXVlc3QoKTsKCiAgICAkUmVzdWx0ID0gewogICAgICAgIFN1Y2Nlc3MgICAgICA9PiAxLCAgICAgICAgICAgICAgICAgICMgMCBvciAxCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICcnLCAgICAgICAgICAgICAgICAgIyBpbiBjYXNlIG9mIGVycm9yCiAgICAgICAgT3BlcmF0aW9uICAgID0+ICdEZXNpcmVkT3BlcmF0aW9uJywgIyBuYW1lIG9mIHRoZSBvcGVyYXRpb24gdG8gcGVyZm9ybQogICAgICAgIERhdGEgICAgICAgICA9PiB7ICAgICAgICAgICAgICAgICAgICMgZGF0YSBwYXlsb2FkIG9mIHJlcXVlc3QKICAgICAgICAgICAgLi4uCiAgICAgICAgfSwKICAgIH07Cgo9Y3V0CgpzdWIgUHJvdmlkZXJQcm9jZXNzUmVxdWVzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgQ2hlY2sgdHJhbnNwb3J0IGNvbmZpZy4KICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCAkU2VsZi0+e1RyYW5zcG9ydENvbmZpZ30gKSApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPl9FcnJvcigKICAgICAgICAgICAgU3VtbWFyeSAgID0+ICdSRVNUIFRyYW5zcG9ydDogSGF2ZSBubyBUcmFuc3BvcnRDb25maWcnLAogICAgICAgICAgICBIVFRQRXJyb3IgPT4gNTAwLAogICAgICAgICk7CiAgICB9CiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSggJFNlbGYtPntUcmFuc3BvcnRDb25maWd9LT57Q29uZmlnfSApICkgewogICAgICAgIHJldHVybiAkU2VsZi0+X0Vycm9yKAogICAgICAgICAgICBTdW1tYXJ5ICAgPT4gJ1Jlc3QgVHJhbnNwb3J0OiBIYXZlIG5vIENvbmZpZycsCiAgICAgICAgICAgIEhUVFBFcnJvciA9PiA1MDAsCiAgICAgICAgKTsKICAgIH0KICAgIG15ICRDb25maWcgPSAkU2VsZi0+e1RyYW5zcG9ydENvbmZpZ30tPntDb25maWd9OwogICAgJFNlbGYtPntLZWVwQWxpdmV9ID0gJENvbmZpZy0+e0tlZXBBbGl2ZX0gfHwgMDsKCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSggJENvbmZpZy0+e1JvdXRlT3BlcmF0aW9uTWFwcGluZ30gKSApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPl9FcnJvcigKICAgICAgICAgICAgU3VtbWFyeSAgID0+ICJIVFRQOjpSRVNUIENhbid0IGZpbmQgUm91dGVPcGVyYXRpb25NYXBwaW5nIGluIENvbmZpZyIsCiAgICAgICAgICAgIEhUVFBFcnJvciA9PiA1MDAsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIFRoZSBIVFRQOjpSRVNUIHN1cHBvcnQgd29ya3Mgd2l0aCBhIHJlcXVlc3Qgb2JqZWN0LgogICAgIyBKdXN0IGxpa2UgS2VybmVsOjpTeXN0ZW06OldlYjo6SW50ZXJmYWNlQWdlbnQuCiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgbXkgJEVuY29kZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpFbmNvZGUnKTsKCiAgICBteSAkUmVxdWVzdFVSSSA9ICRQYXJhbU9iamVjdC0+UmVxdWVzdFVSSTsKICAgICRSZXF1ZXN0VVJJID1+IHN7LipXZWJzZXJ2aWNlKD86SUQpP1wvW15cL10rKFwvLiopJH17JDF9eG1zOwoKICAgICMgUmVtb3ZlIGFueSBxdWVyeSBwYXJhbWV0ZXIgZnJvbSB0aGUgVVJMCiAgICAjICAgZS5nLiBmcm9tIC9UaWNrZXQvMS8yP1VzZXJMb2dpbj11c2VyJlBhc3N3b3JkPXNlY3JldAogICAgIyAgIHRvIC9UaWNrZXQvMS8yPy4KICAgIG15ICRRdWVyeVBhcmFtc1N0ciA9ICcnOwogICAgaWYgKCAkUmVxdWVzdFVSSSA9fiBzeyhbXj9dKykoLispP317JDF9ICkgewoKICAgICAgICAjIFJlbWVtYmVyIHRoZSBxdWVyeSBwYXJhbWV0ZXJzIGUuZy4gP1VzZXJMb2dpbj11c2VyJlBhc3N3b3JkPXNlY3JldC4KICAgICAgICAjIEl0IGlzIGZpbmUgd2hlbiAkMiBpcyBub3QgZGVmaW5lZCwgdGhhdCBpcyB3aGVuIHRoZXJlIGlzIG5vICc/JyBpbiAkUmVxdWVzdFVSSQogICAgICAgICRRdWVyeVBhcmFtc1N0ciA9ICQyOwogICAgfQoKICAgIG15ICVRdWVyeVBhcmFtczsKCiMgUm90aGVyIE9TUyAvIE9BdXRoMgogICAgIyBBdXRoZW50aGVudGljYXRpb24gaGVhZGVyCiAgICBteSAkQXV0aGVudGljYXRpb25IZWFkZXIgPSAkUGFyYW1PYmplY3QtPkhlYWRlcignQXV0aG9yaXphdGlvbicpIC8vICcnOwogICAgJEF1dGhlbnRpY2F0aW9uSGVhZGVyID1+IHMvXlxzK3xccyskLy9nOyAjIHRyaW0gd2hpdGVzcGFjZQoKICAgIGlmICggJEF1dGhlbnRpY2F0aW9uSGVhZGVyICYmIGxjKCRBdXRoZW50aWNhdGlvbkhlYWRlcikgPX4gL15iZWFyZXIgLyApIHsKCiAgICAgICAgbXkgJFRva2VuID0gc3Vic3RyKCAkQXV0aGVudGljYXRpb25IZWFkZXIsIDcgKTsKICAgICAgICAkVG9rZW4gPX4gcy9eXHMrfFxzKyQvL2c7ICMgdHJpbSB3aGl0ZXNwYWNlCgogICAgICAgIG15ICRBdXRoZW50aWNhdG9yT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkF1dGhlbnRpY2F0b3InKTsKICAgICAgICBteSAkUmVzdWx0ICAgICAgICAgICAgICA9ICRBdXRoZW50aWNhdG9yT2JqZWN0LT5BdXRoZW50aWNhdGUoIFRva2VuID0+ICRUb2tlbiApOwoKICAgICAgICBpZiAoICRSZXN1bHQtPntTdWNjZXNzfSApIHsKCiAgICAgICAgICAgICMgcmVwb3J0IHN1Y2Nlc3MhCiAgICAgICAgICAgICRTZWxmLT57RGVidWdnZXJPYmplY3R9LT5EZWJ1ZygKICAgICAgICAgICAgICAgIFN1bW1hcnkgPT4gJ0JlYXJlciBUb2tlbiBkZWNvZGVkOicsCiAgICAgICAgICAgICAgICBEYXRhICAgID0+ICRSZXN1bHQtPntUb2tlbkRhdGF9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBjcmVhdGUgbmV3IHNlc3Npb24gaWQKICAgICAgICAgICAgbXkgJE5ld1Nlc3Npb25JRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpBdXRoU2Vzc2lvbicpLT5DcmVhdGVTZXNzaW9uSUQoCiAgICAgICAgICAgICAgICAkUmVzdWx0LT57VXNlckRhdGF9LT4lKiwKICAgICAgICAgICAgICAgIFVzZXJMYXN0UmVxdWVzdCA9PiAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKS0+VG9FcG9jaCgpLAogICAgICAgICAgICAgICAgVXNlclR5cGUgICAgICAgID0+ICdVc2VyJywKICAgICAgICAgICAgICAgIFNlc3Npb25Tb3VyY2UgICA9PiAnR2VuZXJpY0ludGVyZmFjZScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkUXVlcnlQYXJhbXN7U2Vzc2lvbklEfSA9ICROZXdTZXNzaW9uSUQ7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyByZXBvcnQgZmFpbHVyZSEKICAgICAgICAgICAgJFNlbGYtPntEZWJ1Z2dlck9iamVjdH0tPkRlYnVnKAogICAgICAgICAgICAgICAgU3VtbWFyeSA9PiAnQXV0aG9yaXphdGlvbiBCZWFyZXIgVG9rZW4gcHJlc2VudCBidXQgaW52YWxpZCEnLAogICAgICAgICAgICAgICAgRGF0YSAgICA9PiAkVG9rZW4sCiAgICAgICAgICAgICk7CgogICAgICAgIH0KICAgIH0KIyBFTyBPQXV0aDIKCiAgICBpZiAoJFF1ZXJ5UGFyYW1zU3RyKSB7CgogICAgICAgICMgUmVtb3ZlIHF1ZXN0aW9uIG1hcmsgJz8nIGluIHRoZSBiZWdpbm5pbmcuCiAgICAgICAgc3Vic3RyICRRdWVyeVBhcmFtc1N0ciwgMCwgMSwgJyc7CgogICAgICAgICMgQ29udmVydCBxdWVyeSBwYXJhbWV0ZXJzIGludG8gYSBoYXNoCiAgICAgICAgIyAgIGUuZy4gZnJvbSBVc2VyTG9naW49dXNlciZQYXNzd29yZD1zZWNyZXQKICAgICAgICAjICAgdG8gKAogICAgICAgICMgICAgICAgIFVzZXJMb2dpbiA9PiAndXNlcicsCiAgICAgICAgIyAgICAgICAgUGFzc3dvcmQgID0+ICdzZWNyZXQnLAogICAgICAgICMgICAgICApOwogICAgICAgIGZvciBteSAkUXVlcnlQYXJhbSAoIHNwbGl0IC9bOyZdLywgJFF1ZXJ5UGFyYW1zU3RyICkgewogICAgICAgICAgICBteSAoICRLZXksICRWYWx1ZSApID0gc3BsaXQgLz0vLCAkUXVlcnlQYXJhbTsKCiAgICAgICAgICAgICMgQ29udmVydCArIGNoYXJhY3RlcnMgdG8gaXRzIGVuY29kZWQgcmVwcmVzZW50YXRpb24sIHNlZSBidWcjMTE5MTcuCiAgICAgICAgICAgICRWYWx1ZSA9fiBze1wrfXslMjB9ZzsKCiAgICAgICAgICAgICMgVW5lc2NhcGUgVVJJIHN0cmluZ3MgaW4gcXVlcnkgcGFyYW1ldGVycy4KICAgICAgICAgICAgJEtleSAgID0gdXJpX3VuZXNjYXBlKCRLZXkpOwogICAgICAgICAgICAkVmFsdWUgPSB1cmlfdW5lc2NhcGUoJFZhbHVlKTsKCiAgICAgICAgICAgICMgRW5jb2RlIHZhcmlhYmxlcy4KICAgICAgICAgICAgJEVuY29kZU9iamVjdC0+RW5jb2RlSW5wdXQoIFwkS2V5ICk7CiAgICAgICAgICAgICRFbmNvZGVPYmplY3QtPkVuY29kZUlucHV0KCBcJFZhbHVlICk7CgogICAgICAgICAgICBpZiAoICFkZWZpbmVkICRRdWVyeVBhcmFtc3skS2V5fSApIHsKICAgICAgICAgICAgICAgICRRdWVyeVBhcmFtc3skS2V5fSA9ICRWYWx1ZSB8fCAnJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBFbGVtZW50cyBzcGVjaWZpZWQgbXVsdGlwbGUgdGltZXMgd2lsbCBiZSBhZGRlZCBhcyBhcnJheSByZWZlcmVuY2UuCiAgICAgICAgICAgIGVsc2lmICggcmVmICRRdWVyeVBhcmFtc3skS2V5fSBlcSAnJyApIHsKICAgICAgICAgICAgICAgICRRdWVyeVBhcmFtc3skS2V5fSA9IFsgJFF1ZXJ5UGFyYW1zeyRLZXl9LCAkVmFsdWUgXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHB1c2ggQHsgJFF1ZXJ5UGFyYW1zeyRLZXl9IH0sICRWYWx1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBteSAkT3BlcmF0aW9uOwogICAgbXkgJVVSSURhdGE7CiAgICBteSAkUmVxdWVzdE1ldGhvZCA9ICRQYXJhbU9iamVjdC0+UmVxdWVzdE1ldGhvZCgpIHx8ICdHRVQnOwogICAgUk9VVEU6CiAgICBmb3IgbXkgJEN1cnJlbnRPcGVyYXRpb24gKCBzb3J0IGtleXMgJXsgJENvbmZpZy0+e1JvdXRlT3BlcmF0aW9uTWFwcGluZ30gfSApIHsKCiAgICAgICAgbmV4dCBST1VURSBpZiAhSXNIYXNoUmVmV2l0aERhdGEoICRDb25maWctPntSb3V0ZU9wZXJhdGlvbk1hcHBpbmd9LT57JEN1cnJlbnRPcGVyYXRpb259ICk7CgogICAgICAgIG15ICVSb3V0ZU1hcHBpbmcgPSAleyAkQ29uZmlnLT57Um91dGVPcGVyYXRpb25NYXBwaW5nfS0+eyRDdXJyZW50T3BlcmF0aW9ufSB9OwoKICAgICAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSggJFJvdXRlTWFwcGluZ3tSZXF1ZXN0TWV0aG9kfSApICkgewogICAgICAgICAgICBuZXh0IFJPVVRFIGlmICFncmVwIHsgJFJlcXVlc3RNZXRob2QgZXEgJF8gfSBAeyAkUm91dGVNYXBwaW5ne1JlcXVlc3RNZXRob2R9IH07CiAgICAgICAgfQoKICAgICAgICAjIENvbnZlcnQgdGhlIGNvbmZpZ3VyZWQgcm91dGUgd2l0aCB0aGUgaGVscCBvZiBleHRlbmRlZCByZWdleHAgcGF0dGVybnMKICAgICAgICAjICAgdG8gYSByZWdleHAuIFRoaXMgZ2VuZXJhdGVkIHJlZ2V4cCBpcyB1c2VkIHRvOgogICAgICAgICMgICAxLikgRGV0ZXJtaW5lIHRoZSBPcGVyYXRpb24gZm9yIHRoZSByZXF1ZXN0CiAgICAgICAgIyAgIDIuKSBFeHRyYWN0IGFkZGl0aW9uYWwgcGFyYW1ldGVycyBmcm9tIHRoZSBSZXF1ZXN0VVJJCiAgICAgICAgIyAgIEZvciBmdXJ0aGVyIGluZm9ybWF0aW9uOiBodHRwOi8vcGVybGRvYy5wZXJsLm9yZy9wZXJscmUuaHRtbCNFeHRlbmRlZC1QYXR0ZXJucwogICAgICAgICMKICAgICAgICAjICAgRm9yIGV4YW1wbGUsIGZyb20gdGhlIFJlcXVlc3RVUkk6IC9UaWNrZXQvMS8yCiAgICAgICAgIyAgICAgICBhbmQgdGhlIHJvdXRlIHNldHRpbmc6ICAgICAgICAvVGlja2V0LzpUaWNrZXRJRC86T3RoZXIKICAgICAgICAjICAgICAgICVVUklEYXRhIHdpbGwgdGhlbiBjb250YWluOgogICAgICAgICMgICAgICAgKAogICAgICAgICMgICAgICAgICAgIFRpY2tldElEID0+IDEsCiAgICAgICAgIyAgICAgICAgICAgT3RoZXIgICAgPT4gMiwKICAgICAgICAjICAgICAgICk7CiAgICAgICAgbXkgJFJvdXRlUmVnRXggPSAkUm91dGVNYXBwaW5ne1JvdXRlfTsKICAgICAgICAkUm91dGVSZWdFeCA9fiBzezooW15cL10rKX17KD88JDE+W15cL10rKX14bXNnOwoKICAgICAgICBuZXh0IFJPVVRFIGlmICEoICRSZXF1ZXN0VVJJID1+IG17XiAkUm91dGVSZWdFeCAkfXhtcyApOwoKICAgICAgICAjIEltcG9ydCBVUkkgcGFyYW1zLgogICAgICAgIGZvciBteSAkVVJJS2V5ICggc29ydCBrZXlzICUrICkgewogICAgICAgICAgICBteSAkVVJJVmFsdWUgPSAkK3skVVJJS2V5fTsKCiAgICAgICAgICAgICMgVW5lc2NhcGUgdmFsdWUKICAgICAgICAgICAgJFVSSVZhbHVlID0gdXJpX3VuZXNjYXBlKCRVUklWYWx1ZSk7CgogICAgICAgICAgICAjIEVuY29kZSB2YWx1ZS4KICAgICAgICAgICAgJEVuY29kZU9iamVjdC0+RW5jb2RlSW5wdXQoIFwkVVJJVmFsdWUgKTsKCiAgICAgICAgICAgICMgQWRkIHRvIFVSSSBkYXRhLgogICAgICAgICAgICAkVVJJRGF0YXskVVJJS2V5fSA9ICRVUklWYWx1ZTsKICAgICAgICB9CgogICAgICAgICRPcGVyYXRpb24gPSAkQ3VycmVudE9wZXJhdGlvbjsKCiAgICAgICAgIyBMZWF2ZSB3aXRoIHRoZSBmaXJzdCBtYXRjaGluZyByZWdleHAuCiAgICAgICAgbGFzdCBST1VURTsKICAgIH0KCiAgICAjIENvbWJpbmUgcXVlcnkgcGFyYW1zIHdpdGggVVJJRGF0YSBwYXJhbXMsIFVSSURhdGEgaGFzIG1vcmUgcHJlY2VkZW5jZS4KICAgIGlmICglUXVlcnlQYXJhbXMpIHsKICAgICAgICAlVVJJRGF0YSA9ICggJVF1ZXJ5UGFyYW1zLCAlVVJJRGF0YSwgKTsKICAgIH0KCiAgICBpZiAoICEkT3BlcmF0aW9uICkgewogICAgICAgIHJldHVybiAkU2VsZi0+X0Vycm9yKAogICAgICAgICAgICBTdW1tYXJ5ICAgPT4gIkhUVFA6OlJFU1QgRXJyb3Igd2hpbGUgZGV0ZXJtaW5lIE9wZXJhdGlvbiBmb3IgcmVxdWVzdCBVUkkgJyRSZXF1ZXN0VVJJJy4iLAogICAgICAgICAgICBIVFRQRXJyb3IgPT4gNTAwLAogICAgICAgICk7CiAgICB9CgogICAgIyBUaGUgYm9keSBzdXBwbGllZCBieSBQT1NULCBQVVQsIGFuZCBQQVRDSCBoYXMgYWxyZWFkeSBiZWVuIHJlYWQgaW4uIFRoaXMgc2hvdWxkIGJlIHNhZmUKICAgICMgYXMgJENHSTo6UE9TVF9NQVggaGFzIGJlZW4gc2V0IGFzIGFuIGVtZXJnZW5jeSBicmFrZS4KICAgICMgRm9yIENoZWNraW5nIHRoZSBsZW5ndGggd2UgY2FuIHRoZXJlZm9yIHVzZSB0aGUgYWN0dWFsIGxlbmd0aC4KICAgIG15ICRDb250ZW50ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gdWMoJFJlcXVlc3RNZXRob2QpIC4gJ0RBVEEnICk7CiAgICBteSAkTGVuZ3RoICA9IGxlbmd0aCAkQ29udGVudDsKCiAgICAjIE5vIGxlbmd0aCBwcm92aWRlZCwgcmV0dXJuIHRoZSBpbmZvcm1hdGlvbiB3ZSBoYXZlLgogICAgIyBBbHNvIHJldHVybiBmb3IgJ0dFVCcgbWV0aG9kIGJlY2F1c2UgaXQgZG9lcyBub3QgYWxsb3cgc2VuZGluZyBhbiBlbnRpdHktYm9keSBpbiByZXF1ZXN0cy4KICAgICMgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwczovL2J1Z3Mub3Rycy5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjAzLgogICAgaWYgKCAhJExlbmd0aCB8fCAkUmVxdWVzdE1ldGhvZCBlcSAnR0VUJyApIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTdWNjZXNzICAgPT4gMSwKICAgICAgICAgICAgT3BlcmF0aW9uID0+ICRPcGVyYXRpb24sCiAgICAgICAgICAgIERhdGEgICAgICA9PiB7CiAgICAgICAgICAgICAgICAlVVJJRGF0YSwKICAgICAgICAgICAgICAgIFJlcXVlc3RNZXRob2QgPT4gJFJlcXVlc3RNZXRob2QsCiAgICAgICAgICAgIH0sCiAgICAgICAgfTsKICAgIH0KCiAgICAjIFJlcXVlc3QgYmlnZ2VyIHRoYW4gYWxsb3dlZC4KICAgIGlmICggSXNJbnRlZ2VyKCAkQ29uZmlnLT57TWF4TGVuZ3RofSApICYmICRMZW5ndGggPiAkQ29uZmlnLT57TWF4TGVuZ3RofSApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPl9FcnJvcigKICAgICAgICAgICAgU3VtbWFyeSAgID0+IHN0YXR1c19tZXNzYWdlKDQxMyksCiAgICAgICAgICAgIEhUVFBFcnJvciA9PiA0MTMsICAgICAgICAgICAgICAgICAgICMgSFRUUF9QQVlMT0FEX1RPT19MQVJHRQogICAgICAgICk7CiAgICB9CgogICAgIyBUaGVyZSBtaWdodCBiZSBhIGRpZmZlcmVudCByZXF1ZXN0IG1ldGhvZC4KICAgICMgTk9URTogdGhpcyBpcyByZWR1bmRhbnQgYW5kIGtlcHQgb25seSBmb3IgY29tcGF0YWJpbGl0eSB3aXRoIG9sZGVyIHZlcnNpb25zCiAgICBpZiAoICFJc1N0cmluZ1dpdGhEYXRhKCRDb250ZW50KSAmJiAkUmVxdWVzdE1ldGhvZCBuZSAnR0VUJyApIHsKICAgICAgICBteSAkUGFyYW1OYW1lID0gJFJlcXVlc3RNZXRob2QgLiAnREFUQSc7CiAgICAgICAgJENvbnRlbnQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKAogICAgICAgICAgICBQYXJhbSA9PiAkUGFyYW1OYW1lLAogICAgICAgICk7CiAgICB9CgogICAgIyBDaGVjayBpZiB3ZSBoYXZlIGNvbnRlbnQuCiAgICBpZiAoICFJc1N0cmluZ1dpdGhEYXRhKCRDb250ZW50KSApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPl9FcnJvcigKICAgICAgICAgICAgU3VtbWFyeSAgID0+ICdDb3VsZCBub3QgcmVhZCBpbnB1dCBkYXRhJywKICAgICAgICAgICAgSFRUUEVycm9yID0+IDUwMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEhUVFBfSU5URVJOQUxfU0VSVkVSX0VSUk9SCiAgICAgICAgKTsKICAgIH0KCiAgICAjIENvbnZlcnQgY2hhcnNldCBpZiBuZWNlc3NhcnkuCiAgICB7CiAgICAgICAgbXkgJENvbnRlbnRUeXBlID0gJFBhcmFtT2JqZWN0LT5Db250ZW50VHlwZSgpOwogICAgICAgIG15ICgkQ29udGVudENoYXJzZXQpID0gJENvbnRlbnRUeXBlID1+IG17IFxBIC4qIGNoYXJzZXQ9IFsiJ10/ICggW14iJ10rICkgWyInXT8gXHogfXhtc2k7CiAgICAgICAgaWYgKCAkQ29udGVudENoYXJzZXQgJiYgJENvbnRlbnRDaGFyc2V0ICF+IG17IFxBIHV0ZiBbLV0/IDggXHogfXhtc2kgKSB7CiAgICAgICAgICAgICRDb250ZW50ID0gJEVuY29kZU9iamVjdC0+Q29udmVydDJDaGFyc2V0SW50ZXJuYWwoCiAgICAgICAgICAgICAgICBUZXh0ID0+ICRDb250ZW50LAogICAgICAgICAgICAgICAgRnJvbSA9PiAkQ29udGVudENoYXJzZXQsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAjIHRoaXMgc2V0cyB0aGUgVVRGLTggZmxhZwogICAgICAgICAgICAkRW5jb2RlT2JqZWN0LT5FbmNvZGVJbnB1dCggXCRDb250ZW50ICk7CiAgICAgICAgfQogICAgfQoKICAgICMgU2VuZCByZWNlaXZlZCBkYXRhIHRvIGRlYnVnZ2VyLgogICAgJFNlbGYtPntEZWJ1Z2dlck9iamVjdH0tPkRlYnVnKAogICAgICAgIFN1bW1hcnkgPT4gJ1JlY2VpdmVkIGRhdGEgYnkgcHJvdmlkZXIgZnJvbSByZW1vdGUgc3lzdGVtJywKICAgICAgICBEYXRhICAgID0+ICRDb250ZW50LAogICAgKTsKCiAgICBteSAkQ29udGVudERlY29kZWQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SlNPTicpLT5EZWNvZGUoCiAgICAgICAgRGF0YSA9PiAkQ29udGVudCwKICAgICk7CgogICAgaWYgKCAhJENvbnRlbnREZWNvZGVkICkgewogICAgICAgIHJldHVybiAkU2VsZi0+X0Vycm9yKAogICAgICAgICAgICBTdW1tYXJ5ICAgPT4gJ0Vycm9yIHdoaWxlIGRlY29kaW5nIHJlcXVlc3QgY29udGVudC4nLAogICAgICAgICAgICBIVFRQRXJyb3IgPT4gNTAwLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJFJldHVybkRhdGE7CiAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCRDb250ZW50RGVjb2RlZCkgKSB7CgogICAgICAgICRSZXR1cm5EYXRhID0gJENvbnRlbnREZWNvZGVkOwogICAgICAgIEB7JFJldHVybkRhdGF9eyBrZXlzICVVUklEYXRhIH0gPSB2YWx1ZXMgJVVSSURhdGE7CiAgICB9CiAgICBlbHNpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSgkQ29udGVudERlY29kZWQpICkgewoKICAgICAgICBFTEVNRU5UOgogICAgICAgIGZvciBteSAkQ3VycmVudEVsZW1lbnQgKCBAeyRDb250ZW50RGVjb2RlZH0gKSB7CgogICAgICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCRDdXJyZW50RWxlbWVudCkgKSB7CiAgICAgICAgICAgICAgICBAeyRDdXJyZW50RWxlbWVudH17IGtleXMgJVVSSURhdGEgfSA9IHZhbHVlcyAlVVJJRGF0YTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcHVzaCBAeyRSZXR1cm5EYXRhfSwgJEN1cnJlbnRFbGVtZW50OwogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICAgIHJldHVybiAkU2VsZi0+X0Vycm9yKAogICAgICAgICAgICBTdW1tYXJ5ICAgPT4gJ1Vuc3VwcG9ydGVkIHJlcXVlc3QgY29udGVudCBzdHJ1Y3R1cmUuJywKICAgICAgICAgICAgSFRUUEVycm9yID0+IDUwMCwKICAgICAgICApOwogICAgfQoKICAgICMgQWxsIE9LIC0gcmV0dXJuIGRhdGEKICAgIHJldHVybiB7CiAgICAgICAgU3VjY2VzcyAgID0+IDEsCiAgICAgICAgT3BlcmF0aW9uID0+ICRPcGVyYXRpb24sCiAgICAgICAgRGF0YSAgICAgID0+ICRSZXR1cm5EYXRhLAogICAgfTsKfQoKPWhlYWQyIFByb3ZpZGVyR2VuZXJhdGVSZXNwb25zZSgpCgpHZW5lcmF0ZXMgcmVzcG9uc2UgZm9yIGFuIGluY29taW5nIHdlYiBzZXJ2aWNlIHJlcXVlc3QuCgpUaHJvd3MgYSBMPEtlcm5lbDo6U3lzdGVtOjpXZWI6OkV4Y2VwdGlvbj4gd2hpY2ggY29udGFpbnMgYSBQbGFjayByZXNwb25zZSBvYmplY3QuCgpUaGUgSFRUUCBjb2RlIG9mIHRoZSByZXNwb25zZSBvYmplY3QgaXMgc2V0IGFjY29yZGluZ2x5Ci0gQzwyMDA+IGZvciAoc3ludGFjdGljYWxseSkgY29ycmVjdCBtZXNzYWdlcwotIEM8NHh4PiBmb3IgaHR0cCBlcnJvcnMKLSBDPDUwMD4gZm9yIGNvbnRlbnQgc3ludGF4IGVycm9ycwoKICAgICRUcmFuc3BvcnRPYmplY3QtPlByb3ZpZGVyR2VuZXJhdGVSZXNwb25zZSgKICAgICAgICBTdWNjZXNzID0+IDEKICAgICAgICBPcGVyYXRpb24gPT4gJ1RpY2tldFVwZGF0ZScsICMgbmVlZGVkIGZvciBkZXRlcm1pbmluZyBvdXRib3VuZCBoZWFkZXJzCiAgICAgICAgRGF0YSAgICAgID0+IHsgIyBkYXRhIHBheWxvYWQgZm9yIHJlc3BvbnNlLCBvcHRpb25hbAogICAgICAgICAgICAuLi4KICAgICAgICB9LAogICAgKTsKCj1jdXQKCnN1YiBQcm92aWRlckdlbmVyYXRlUmVzcG9uc2UgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIERvIHdlIGhhdmUgYSBodHRwIGVycm9yIG1lc3NhZ2UgdG8gcmV0dXJuLgogICAgaWYgKCBJc1N0cmluZ1dpdGhEYXRhKCAkU2VsZi0+e0hUVFBFcnJvcn0gKSAmJiBJc1N0cmluZ1dpdGhEYXRhKCAkU2VsZi0+e0hUVFBNZXNzYWdlfSApICkgewogICAgICAgICRTZWxmLT5fVGhyb3dXZWJFeGNlcHRpb24oCiAgICAgICAgICAgIEhUVFBDb2RlID0+ICRTZWxmLT57SFRUUEVycm9yfSwKICAgICAgICAgICAgQ29udGVudCAgPT4gJFNlbGYtPntIVFRQTWVzc2FnZX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIENoZWNrIGRhdGEgcGFyYW0uCiAgICBpZiAoIGRlZmluZWQgJFBhcmFte0RhdGF9ICYmIHJlZiAkUGFyYW17RGF0YX0gbmUgJ0hBU0gnICYmIHJlZiAkUGFyYW17RGF0YX0gbmUgJ0FSUkFZJyApIHsKICAgICAgICAkU2VsZi0+X1Rocm93V2ViRXhjZXB0aW9uKAogICAgICAgICAgICBIVFRQQ29kZSA9PiA1MDAsCiAgICAgICAgICAgIENvbnRlbnQgID0+ICdJbnZhbGlkIGRhdGEnLAogICAgICAgICk7CiAgICB9CgogICAgIyBDaGVjayBzdWNjZXNzIHBhcmFtLgogICAgbXkgJEhUVFBDb2RlID0gMjAwOwogICAgaWYgKCAhJFBhcmFte1N1Y2Nlc3N9ICkgewoKICAgICAgICAjIENyZWF0ZSBGYXVsdCBzdHJ1Y3R1cmUuCiAgICAgICAgbXkgJEZhdWx0U3RyaW5nID0gJFBhcmFte0Vycm9yTWVzc2FnZX0gfHwgJ1Vua25vd24nOwogICAgICAgICRQYXJhbXtEYXRhfSA9IHsKICAgICAgICAgICAgZmF1bHRjb2RlICAgPT4gJ1NlcnZlcicsCiAgICAgICAgICAgIGZhdWx0c3RyaW5nID0+ICRGYXVsdFN0cmluZywKICAgICAgICB9OwoKICAgICAgICAjIE92ZXJyaWRlIEhUVFBDb2RlIHRvIDUwMC4KICAgICAgICAkSFRUUENvZGUgPSA1MDA7CiAgICB9CgogICAgIyBQcmVwYXJlIGRhdGEuCiAgICBteSAkSlNPTlN0cmluZyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpKU09OJyktPkVuY29kZSgKICAgICAgICBEYXRhID0+ICRQYXJhbXtEYXRhfSwKICAgICk7CgogICAgaWYgKCAhJEpTT05TdHJpbmcgKSB7CiAgICAgICAgJFNlbGYtPl9UaHJvd1dlYkV4Y2VwdGlvbigKICAgICAgICAgICAgSFRUUENvZGUgPT4gNTAwLAogICAgICAgICAgICBDb250ZW50ICA9PiAnRXJyb3Igd2hpbGUgZW5jb2RpbmcgcmV0dXJuIEpTT04gc3RydWN0dXJlLicsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGFkZGVkIGZvciBPVE9CT1RpY2tldEludm9rZXIKICAgICMgR2F0aGVyIGFkZGl0aW9uYWwgaGVhZGVycy4KICAgIG15ICVSZXNwb25zZUhlYWRlcnMgPSAkU2VsZi0+X0hlYWRlcnNHZXQoCiAgICAgICAgVHlwZSAgICAgID0+ICdPcGVyYXRpb24nLAogICAgICAgIE9wZXJhdGlvbiA9PiAkUGFyYW17T3BlcmF0aW9ufSwKICAgICk7CgogICAgIyBNaXJyb3Igc29tZSBIVFRQIGhlYWRlcnMgd2hlbiB0aGUgcmVxdWVzdCBjb21lcyBmcm9tIGEgdGVzdCBzY3JpcHQKICAgICMgdGhhdCBoYXMgdGVtcG9yYXJpbHkgc2V0IEdlbmVyaWNJbnRlcmZhY2U6OlRyYW5zcG9ydDo6VW5pdFRlc3RIZWFkZXJzLgogICAgIyBUaGlzIGZlYXR1cmUgYWxsb3dzIHRvIGNoZWNrIG91dGdvaW5nIEhUVFAgaGVhZGVycyBvZiB0aGUgZ2VuZXJpYyBpbnRlcmZhY2UuCiAgICAjIEl0IHdhcyBpbnRyb2R1Y2VkIGJ5IE9UT0JPVGlja2V0SW52b2tlci4KICAgIGlmICggJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdHZW5lcmljSW50ZXJmYWNlOjpUcmFuc3BvcnQ6Ok1pcnJvclVuaXRUZXN0SFRUUEhlYWRlcnMnKSApIHsKCiAgICAgICAgIyBUaGUgSFRUUDo6UkVTVCBzdXBwb3J0IHdvcmtzIHdpdGggYSByZXF1ZXN0IG9iamVjdC4KICAgICAgICAjIEp1c3QgbGlrZSBLZXJuZWw6OlN5c3RlbTo6V2ViOjpJbnRlcmZhY2VBZ2VudC4KICAgICAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgICAgICMgVGhlIEhUVFA6OkhlYWRlcnM6OkZhc3QgYWxzbyBpbmNsdWRlcyBDb250ZW50LVR5cGUgYW5kIENvbnRlbnQtTGVuZ3RoLAogICAgICAgICMgd2hpY2ggc2hvdWxkIG5vdCBiZSBtaXJyb3JlZC4KICAgICAgICBteSAlUmVxdWVzdEhlYWRlcnM7CiAgICAgICAgRklFTERfTkFNRToKICAgICAgICBmb3IgbXkgJEZpZWxkTmFtZSAoIHNvcnQgJFBhcmFtT2JqZWN0LT5IZWFkZXJzLT5oZWFkZXJfZmllbGRfbmFtZXMgKSB7CiAgICAgICAgICAgIG5leHQgRklFTERfTkFNRSBpZiAkRmllbGROYW1lIGVxICdDb250ZW50LVR5cGUnOwogICAgICAgICAgICBuZXh0IEZJRUxEX05BTUUgaWYgJEZpZWxkTmFtZSBlcSAnQ29udGVudC1MZW5ndGgnOwoKICAgICAgICAgICAgIyBub3JtYWxpemUgdG8gdXBwZXJjYXNlIHNlcGFyYXRlZCBieSAnLScsIGUuZy4gRlVOTlktRklFTEQKICAgICAgICAgICAgbXkgJEhlYWRlcktleSA9IHVjICRGaWVsZE5hbWU7CiAgICAgICAgICAgICRIZWFkZXJLZXkgPX4gc3tffXstfXhtc2c7CiAgICAgICAgICAgICRSZXF1ZXN0SGVhZGVyc3skSGVhZGVyS2V5fSA9ICRQYXJhbU9iamVjdC0+SGVhZGVyKCRGaWVsZE5hbWUpOwogICAgICAgIH0KCiAgICAgICAgIyBJZiB3ZSBhcmUgaW4gVW5pdFRlc3QgaGVhZGVyIGNoZWNrIG1vZGUsIG1pcnJvciBhbGwgcmVxdWVzdCBoZWFkZXJzIGluIHJlc3BvbnNlLgogICAgICAgICMgVGhlIGJsYWNrbGlzdCBpcyBub3QgY29uc2lkZXJlZCBoZXJlLCBhcyB3ZSB3YW50IHRvIHZlcmlmeSB0aGF0IHRoZSBibGFja2xpc3RlZCBoZWFkZXJzCiAgICAgICAgIyB3ZXJlIG5vdCBzZW50IGluIHRoZSBmaXJzdCBwbGFjZS4KICAgICAgICBpZiAoIG15ICRNaXJyb3JIZWFkZXJQcmVmaXggPSBkZWxldGUgJFJlcXVlc3RIZWFkZXJze1VOSVRURVNUSEVBREVSU30gKSB7CgogICAgICAgICAgICAjIEF0dGVudGlvbjogQ0dJOjpQU0dJIGFuZCBDR0kgdXNlIGFsbC11cHBlcmNhc2UgbmFtZXMgZm9yIGhlYWRlcnMuCiAgICAgICAgICAgICMgQXR0ZW50aW9uOiBub3Qgc3VyZSB3aGV0ZXIgVW50ZXN0SGVhZGVyQmxhY2tMaXN0IGlzIHNldCBpbiBhbnkgdGVzdCBzY3JpcHQKICAgICAgICAgICAgbXkgJUlzQmxhY2tsaXN0ZWQ7CiAgICAgICAgICAgIGlmICggZGVmaW5lZCAkUmVxdWVzdEhlYWRlcnN7VU5JVFRFU1RIRUFERVJCTEFDS0xJU1R9ICkgewogICAgICAgICAgICAgICAgJUlzQmxhY2tsaXN0ZWQgPSBtYXAgeyB1YygkXykgPT4gMSB9IHNwbGl0IC86LywgZGVsZXRlICRSZXF1ZXN0SGVhZGVyc3tVTklUVEVTVEhFQURFUkJMQUNLTElTVH07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIEhFQURFUjoKICAgICAgICAgICAgZm9yIG15ICRIZWFkZXIgKCBzb3J0IGtleXMgJVJlcXVlc3RIZWFkZXJzICkgewoKICAgICAgICAgICAgICAgIG5leHQgSEVBREVSIGlmICRJc0JsYWNrbGlzdGVkeyRIZWFkZXJ9OwoKICAgICAgICAgICAgICAgICMgdGhlIG1pcnJvcmVkIGhlYWRlciBhcmUgbWFya2VkIHdpdGggYSByYW5kb20gcHJlZml4CiAgICAgICAgICAgICAgICAkUmVzcG9uc2VIZWFkZXJzeyAkTWlycm9ySGVhZGVyUHJlZml4IC4gJEhlYWRlciB9ID0gJFJlcXVlc3RIZWFkZXJzeyRIZWFkZXJ9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgTm8gZXJyb3IsIHN0aWxsIHRocm93IGFuIGV4Y2VwdGlvbgogICAgJFNlbGYtPl9UaHJvd1dlYkV4Y2VwdGlvbigKICAgICAgICBIVFRQQ29kZSA9PiAkSFRUUENvZGUsCiAgICAgICAgQ29udGVudCAgPT4gJEpTT05TdHJpbmcsCiAgICAgICAgSGVhZGVycyAgPT4gXCVSZXNwb25zZUhlYWRlcnMsICAgICMgYWRkZWQgYnkgT1RPQk9UaWNrZXRJbnZva2VyCiAgICApOwoKICAgIHJldHVybjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBhY3R1YWxseSBub3QgcmVhY2hlZAp9Cgo9aGVhZDIgUmVxdWVzdGVyUGVyZm9ybVJlcXVlc3QoKQoKRW1pdCBhbiBvdXRnb2luZyB3ZWIgc2VydmljZSByZXF1ZXN0IGFuZCByZWNlaXZlIHRoZSByZXNwb25zZS4gVGhlIHN1cHBsaWVkIGRhdGEgaXMgZWl0aGVyIHNlbnQKYXMgSlNPTiBpbiB0aGUgYm9keSBvciBpcyBhZGRlZCB0byB0aGUgcmVxdWVzdGVkIFVSTCBhcyBhIGxpc3Qgb2YgcGFyYW1ldGVycy4KSW5zcGVjdCB0aGUgcmVzcG9uc2UgYW5kIHJlcG9ydCB0aGUgcmVzdWx0IGFzIG5vdCBzdWNjZXNzZnVsIHdoZW4gdGhlcmUgYXJlIHByb2JsZW1zLgpSZXR1cm4gdGhlIHJlY2VpdmVkIGRhdGEgb3RoZXJ3aXNlLgoKICAgIG15ICRSZXN1bHQgPSAkVHJhbnNwb3J0T2JqZWN0LT5SZXF1ZXN0ZXJQZXJmb3JtUmVxdWVzdCgKICAgICAgICBPcGVyYXRpb24gPT4gJ3JlbW90ZV9vcCcsICMgbmFtZSBvZiByZW1vdGUgb3BlcmF0aW9uIHRvIHBlcmZvcm0KICAgICAgICBEYXRhICAgICAgPT4geyAgICAgICAgICAgICMgZGF0YSBwYXlsb2FkIGZvciByZXF1ZXN0CiAgICAgICAgICAgIC4uLgogICAgICAgIH0sCiAgICApOwoKaW4gY2FzZSBvZiBzdWNjZXNzOgoKICAgICRSZXN1bHQgPSB7CiAgICAgICAgU3VjY2VzcyAgICAgICA9PiAxLAogICAgICAgIFNpemVFeGNlZWRlZCAgPT4gMCwgICMgZWl0aGVyIDAgb3IgMSBkZXBlbmRpbmcgb24gdGhlIGxlbmd0aCBvZiB0aGUgcmVzcG9uc2UKICAgICAgICBEYXRhICAgICAgICAgID0+IHsKICAgICAgICAgICAgLi4uCiAgICAgICAgfSwKICAgIH07CgppbiBjYXNlIG9mIGZhaWx1cmU6CgogICAgJFJlc3VsdCA9IHsKICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJ3NvbWUgbWVzc2FnZScsCiAgICB9OwoKPWN1dAoKc3ViIFJlcXVlc3RlclBlcmZvcm1SZXF1ZXN0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBDaGVjayB0cmFuc3BvcnQgY29uZmlnLgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoICRTZWxmLT57VHJhbnNwb3J0Q29uZmlnfSApICkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJ1JFU1QgVHJhbnNwb3J0OiBIYXZlIG5vIFRyYW5zcG9ydENvbmZpZycsCiAgICAgICAgfTsKICAgIH0KCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSggJFNlbGYtPntUcmFuc3BvcnRDb25maWd9LT57Q29uZmlnfSApICkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJ1JFU1QgVHJhbnNwb3J0OiBIYXZlIG5vIENvbmZpZycsCiAgICAgICAgfTsKICAgIH0KICAgIG15ICRDb25maWcgPSAkU2VsZi0+e1RyYW5zcG9ydENvbmZpZ30tPntDb25maWd9OwoKICAgICMgQ2hlY2sgcmVxdWlyZWQgY29uZmlnLgogICAgTkVFREVEOgogICAgZm9yIG15ICROZWVkZWQgKHF3KEhvc3QgRGVmYXVsdENvbW1hbmQgVGltZW91dCkpIHsKICAgICAgICBuZXh0IE5FRURFRCBpZiBJc1N0cmluZ1dpdGhEYXRhKCAkQ29uZmlnLT57JE5lZWRlZH0gKTsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiUkVTVCBUcmFuc3BvcnQ6IEhhdmUgbm8gJE5lZWRlZCBpbiBjb25maWciLAogICAgICAgIH07CiAgICB9CgogICAgIyBDaGVjayBkYXRhIHBhcmFtLgogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtEYXRhfSAmJiByZWYgJFBhcmFte0RhdGF9IG5lICdIQVNIJyAmJiByZWYgJFBhcmFte0RhdGF9IG5lICdBUlJBWScgKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAnUkVTVCBUcmFuc3BvcnQ6IEludmFsaWQgRGF0YScsCiAgICAgICAgfTsKICAgIH0KCiAgICAjIENoZWNrIG9wZXJhdGlvbiBwYXJhbS4KICAgIGlmICggIUlzU3RyaW5nV2l0aERhdGEoICRQYXJhbXtPcGVyYXRpb259ICkgKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAnUkVTVCBUcmFuc3BvcnQ6IE5lZWQgT3BlcmF0aW9uJywKICAgICAgICB9OwogICAgfQoKICAgICMgQ3JlYXRlIGhlYWRlciBjb250YWluZXIgYW5kIGFkZCBwcm9wZXIgY29udGVudCB0eXBlLgogICAgIyBUaGVzZSBoZWFkZXJzIHdpbGwgYmUgdXNlZCBmb3IgY2FsbGluZyB0aGUgcmVtb3RlIHNlcnZlci4KICAgIG15ICVIZWFkZXJzID0gKCAnQ29udGVudC1UeXBlJyA9PiAnYXBwbGljYXRpb24vanNvbicgKTsKCiAgICAjIEFkZCBBZGRpdGlvbmFsSGVhZGVycywgYnV0IGRvIG5vdCBvdmVyd3JpdGUgZXhpc3RpbmcgaGVhZGVycwogICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJFNlbGYtPntUcmFuc3BvcnRDb25maWd9LT57Q29uZmlnfS0+e0FkZGl0aW9uYWxIZWFkZXJzfSApICkgewogICAgICAgIG15ICVBZGRpdGlvbmFsSGVhZGVycyA9ICRTZWxmLT57VHJhbnNwb3J0Q29uZmlnfS0+e0NvbmZpZ30tPntBZGRpdGlvbmFsSGVhZGVyc30tPiUqOwogICAgICAgIGZvciBteSAkQWRkaXRpb25hbEhlYWRlciAoIHNvcnQga2V5cyAlQWRkaXRpb25hbEhlYWRlcnMgKSB7CiAgICAgICAgICAgIGlmICggIUlzU3RyaW5nV2l0aERhdGEoICRIZWFkZXJzeyRBZGRpdGlvbmFsSGVhZGVyfSApICkgewogICAgICAgICAgICAgICAgJEhlYWRlcnN7JEFkZGl0aW9uYWxIZWFkZXJ9ID0gJEFkZGl0aW9uYWxIZWFkZXJzeyRBZGRpdGlvbmFsSGVhZGVyfTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCB1cCBhIFJFU1Qgc2Vzc2lvbgogICAgbXkgJFJlc3RDbGllbnQgPSBSRVNUOjpDbGllbnQtPm5ldygKICAgICAgICB7CiAgICAgICAgICAgIGhvc3QgICAgPT4gJENvbmZpZy0+e0hvc3R9LAogICAgICAgICAgICB0aW1lb3V0ID0+ICRDb25maWctPntUaW1lb3V0fSwKICAgICAgICB9CiAgICApOwoKICAgIGlmICggISRSZXN0Q2xpZW50ICkgewoKICAgICAgICBteSAkRXJyb3JNZXNzYWdlID0gIkVycm9yIHdoaWxlIGNyZWF0aW5nIFJFU1QgY2xpZW50IGZyb20gJ1JFU1Q6OkNsaWVudCcuIjsKCiAgICAgICAgIyBMb2cgdG8gZGVidWdnZXIuCiAgICAgICAgJFNlbGYtPntEZWJ1Z2dlck9iamVjdH0tPkVycm9yKAogICAgICAgICAgICBTdW1tYXJ5ID0+ICRFcnJvck1lc3NhZ2UsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgIH07CiAgICB9CgogICAgIyBBZGQgU1NMIG9wdGlvbnMgaWYgY29uZmlndXJlZC4KICAgIGlmICgKICAgICAgICBJc0hhc2hSZWZXaXRoRGF0YSggJENvbmZpZy0+e1NTTH0gKQogICAgICAgICYmIElzU3RyaW5nV2l0aERhdGEoICRDb25maWctPntTU0x9LT57VXNlU1NMfSApCiAgICAgICAgJiYgJENvbmZpZy0+e1NTTH0tPntVc2VTU0x9IGVxICdZZXMnCiAgICAgICAgKQogICAgewogICAgICAgIG15ICVTU0xPcHRpb25zTWFwID0gKAogICAgICAgICAgICBTU0xDZXJ0aWZpY2F0ZSA9PiAnU1NMX2NlcnRfZmlsZScsCiAgICAgICAgICAgIFNTTEtleSAgICAgICAgID0+ICdTU0xfa2V5X2ZpbGUnLAogICAgICAgICAgICBTU0xQYXNzd29yZCAgICA9PiAnU1NMX3Bhc3N3ZF9jYicsCiAgICAgICAgICAgIFNTTENBRmlsZSAgICAgID0+ICdTU0xfY2FfZmlsZScsCiAgICAgICAgICAgIFNTTENBRGlyICAgICAgID0+ICdTU0xfY2FfcGF0aCcsCiAgICAgICAgKTsKICAgICAgICBTU0xPUFRJT046CiAgICAgICAgZm9yIG15ICRTU0xPcHRpb24gKCBzb3J0IGtleXMgJVNTTE9wdGlvbnNNYXAgKSB7CiAgICAgICAgICAgIG5leHQgU1NMT1BUSU9OIGlmICFJc1N0cmluZ1dpdGhEYXRhKCAkQ29uZmlnLT57U1NMfS0+eyRTU0xPcHRpb259ICk7CgogICAgICAgICAgICBpZiAoICRTU0xPcHRpb24gbmUgJ1NTTFBhc3N3b3JkJyApIHsKICAgICAgICAgICAgICAgICRSZXN0Q2xpZW50LT5nZXRVc2VyYWdlbnQoKS0+c3NsX29wdHMoCiAgICAgICAgICAgICAgICAgICAgJFNTTE9wdGlvbnNNYXB7JFNTTE9wdGlvbn0gPT4gJENvbmZpZy0+e1NTTH0tPnskU1NMT3B0aW9ufSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBuZXh0IFNTTE9QVElPTjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBQYXNzd29yZHMgbmVlZHMgYSBzcGVjaWFsIHRyZWF0bWVudC4KICAgICAgICAgICAgJFJlc3RDbGllbnQtPmdldFVzZXJhZ2VudCgpLT5zc2xfb3B0cygKICAgICAgICAgICAgICAgICRTU0xPcHRpb25zTWFweyRTU0xPcHRpb259ID0+IHN1YiB7ICRDb25maWctPntTU0x9LT57JFNTTE9wdGlvbn0gfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2tpcCBob3N0bmFtZSB2ZXJpZmljYXRpb24KICAgICAgICBpZiAoCiAgICAgICAgICAgIElzU3RyaW5nV2l0aERhdGEoICRDb25maWctPntTU0x9e1NTTFZlcmlmeUhvc3RuYW1lfSApCiAgICAgICAgICAgICYmICRDb25maWctPntTU0x9e1NTTFZlcmlmeUhvc3RuYW1lfSBlcSAnTm8nCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRSZXN0Q2xpZW50LT5nZXRVc2VyYWdlbnQoKS0+c3NsX29wdHMoIHZlcmlmeV9ob3N0bmFtZSA9PiAwICk7CiAgICAgICAgfQoKICAgICAgICAjIHNraXAgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uCiAgICAgICAgaWYgKAogICAgICAgICAgICBJc1N0cmluZ1dpdGhEYXRhKCAkQ29uZmlnLT57U1NMfXtTU0xWZXJpZnlNb2RlfSApCiAgICAgICAgICAgICYmICRDb25maWctPntTU0x9e1NTTFZlcmlmeU1vZGV9IGVxICdObycKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFJlc3RDbGllbnQtPmdldFVzZXJhZ2VudCgpLT5zc2xfb3B0cyggU1NMX3ZlcmlmeV9tb2RlID0+IDAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBBZGQgcHJveHkgb3B0aW9ucyBpZiBjb25maWd1cmVkLgogICAgaWYgKAogICAgICAgIElzSGFzaFJlZldpdGhEYXRhKCAkQ29uZmlnLT57UHJveHl9ICkKICAgICAgICAmJiBJc1N0cmluZ1dpdGhEYXRhKCAkQ29uZmlnLT57UHJveHl9LT57VXNlUHJveHl9ICkKICAgICAgICAmJiAkQ29uZmlnLT57UHJveHl9LT57VXNlUHJveHl9IGVxICdZZXMnCiAgICAgICAgKQogICAgewoKICAgICAgICAjIEV4cGxpY2l0bHkgdXNlIG5vIHByb3h5IChldmVuIGlmIGNvbmZpZ3VyZWQgc3lzdGVtIHdpZGUpLgogICAgICAgIGlmICgKICAgICAgICAgICAgSXNTdHJpbmdXaXRoRGF0YSggJENvbmZpZy0+e1Byb3h5fS0+e1Byb3h5RXhjbHVkZX0gKQogICAgICAgICAgICAmJiAkQ29uZmlnLT57UHJveHl9LT57UHJveHlFeGNsdWRlfSBlcSAnWWVzJwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkUmVzdENsaWVudC0+Z2V0VXNlcmFnZW50KCktPm5vX3Byb3h5KCk7CiAgICAgICAgfQoKICAgICAgICAjIFVzZSBwcm94eS4KICAgICAgICBlbHNpZiAoIElzU3RyaW5nV2l0aERhdGEoICRDb25maWctPntQcm94eX0tPntQcm94eUhvc3R9ICkgKSB7CgogICAgICAgICAgICAjIFNldCBob3N0LgogICAgICAgICAgICAkUmVzdENsaWVudC0+Z2V0VXNlcmFnZW50KCktPnByb3h5KAogICAgICAgICAgICAgICAgWyAnaHR0cCcsICdodHRwcycsIF0sCiAgICAgICAgICAgICAgICAkQ29uZmlnLT57UHJveHl9LT57UHJveHlIb3N0fSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgQWRkIHByb3h5IGF1dGhlbnRpY2F0aW9uLgogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICBJc1N0cmluZ1dpdGhEYXRhKCAkQ29uZmlnLT57UHJveHl9LT57UHJveHlVc2VyfSApCiAgICAgICAgICAgICAgICAmJiBJc1N0cmluZ1dpdGhEYXRhKCAkQ29uZmlnLT57UHJveHl9LT57UHJveHlQYXNzd29yZH0gKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkSGVhZGVyc3snUHJveHktQXV0aG9yaXphdGlvbid9ID0gJ0Jhc2ljICcgLiBlbmNvZGVfYmFzZTY0KAogICAgICAgICAgICAgICAgICAgICRDb25maWctPntQcm94eX0tPntQcm94eVVzZXJ9IC4gJzonIC4gJENvbmZpZy0+e1Byb3h5fS0+e1Byb3h5UGFzc3dvcmR9CiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgQWRkIGF1dGhlbnRpY2F0aW9uIG9wdGlvbnMgaWYgY29uZmlndXJlZC4KICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRDb25maWctPntBdXRoZW50aWNhdGlvbn0gKSAmJiBJc1N0cmluZ1dpdGhEYXRhKCAkQ29uZmlnLT57QXV0aGVudGljYXRpb259LT57QXV0aFR5cGV9ICkgKSB7CgogICAgICAgICMgYmFzaWMgYXV0aAogICAgICAgIGlmICgKICAgICAgICAgICAgJENvbmZpZy0+e0F1dGhlbnRpY2F0aW9ufS0+e0F1dGhUeXBlfSBlcSAnQmFzaWNBdXRoJwogICAgICAgICAgICAmJiBJc1N0cmluZ1dpdGhEYXRhKCAkQ29uZmlnLT57QXV0aGVudGljYXRpb259LT57QmFzaWNBdXRoVXNlcn0gKQogICAgICAgICAgICAmJiBJc1N0cmluZ1dpdGhEYXRhKCAkQ29uZmlnLT57QXV0aGVudGljYXRpb259LT57QmFzaWNBdXRoUGFzc3dvcmR9ICkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJEhlYWRlcnN7QXV0aG9yaXphdGlvbn0gPSAnQmFzaWMgJyAuIGVuY29kZV9iYXNlNjQoCiAgICAgICAgICAgICAgICAkQ29uZmlnLT57QXV0aGVudGljYXRpb259LT57QmFzaWNBdXRoVXNlcn0gLiAnOicgLiAkQ29uZmlnLT57QXV0aGVudGljYXRpb259LT57QmFzaWNBdXRoUGFzc3dvcmR9CiAgICAgICAgICAgICk7CiAgICAgICAgfQoKIyBSb3RoZXIgT1NTIC8gT0F1dGgyCiAgICAgICAgIyBvYXV0aAogICAgICAgIGVsc2lmICgKICAgICAgICAgICAgJENvbmZpZy0+e0F1dGhlbnRpY2F0aW9ufS0+e0F1dGhUeXBlfSBlcSAnT0F1dGgnCiAgICAgICAgICAgICYmIElzU3RyaW5nV2l0aERhdGEoICRDb25maWctPntBdXRoZW50aWNhdGlvbn0tPntPQXV0aEFjY291bnROYW1lfSApCiAgICAgICAgICAgICkKICAgICAgICB7CgogICAgICAgICAgICBteSAkQWNjb3VudE5hbWUgPSAkQ29uZmlnLT57QXV0aGVudGljYXRpb259LT57T0F1dGhBY2NvdW50TmFtZX07CgogICAgICAgICAgICBteSAkVG9rZW5SZXN1bHQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5Qcm92aWRlcicpLT5GZXRjaCgKICAgICAgICAgICAgICAgIEFjY291bnROYW1lID0+ICRBY2NvdW50TmFtZSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICggISRUb2tlblJlc3VsdC0+e1N1Y2Nlc3N9ICkgewoKICAgICAgICAgICAgICAgICRTZWxmLT57RGVidWdnZXJPYmplY3R9LT5EZWJ1ZygKICAgICAgICAgICAgICAgICAgICBTdW1tYXJ5ID0+IFRyYW5zbGF0YWJsZSgiRXJyb3IgZmV0Y2hpbmcgdGhlIE9BdXRoMiBUb2tlbiIpLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgPT4gJFRva2VuUmVzdWx0LT57RXJyb3J9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkVG9rZW5SZXN1bHQtPntFcnJvcn0sCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkVG9rZW4gPSAkVG9rZW5SZXN1bHQtPntUb2tlbn07CgogICAgICAgICAgICAkU2VsZi0+e0RlYnVnZ2VyT2JqZWN0fS0+RGVidWcoCiAgICAgICAgICAgICAgICBTdW1tYXJ5ID0+IFRyYW5zbGF0YWJsZSgiQXR0YWNoZWQgT0F1dGgyIEJlYXJlciBUb2tlbiIpLAogICAgICAgICAgICAgICAgRGF0YSAgICA9PiAkVG9rZW4sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkSGVhZGVyc3tBdXRob3JpemF0aW9ufSA9ICJCZWFyZXIgJFRva2VuIjsKICAgICAgICB9CiMgRU8gT0F1dGgyCgogICAgICAgICMga2VyYmVyb3MKICAgICAgICBlbHNpZiAoCiAgICAgICAgICAgICRDb25maWctPntBdXRoZW50aWNhdGlvbn0tPntBdXRoVHlwZX0gZXEgJ0tlcmJlcm9zJwogICAgICAgICAgICAmJiBJc1N0cmluZ1dpdGhEYXRhKCAkQ29uZmlnLT57QXV0aGVudGljYXRpb259LT57S2VyYmVyb3NVc2VyfSApCiAgICAgICAgICAgICYmIElzU3RyaW5nV2l0aERhdGEoICRDb25maWctPntBdXRoZW50aWNhdGlvbn0tPntLZXJiZXJvc0tleXRhYn0gKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBpZiAoICEtZSAkQ29uZmlnLT57QXV0aGVudGljYXRpb259LT57S2VyYmVyb3NLZXl0YWJ9ICkgewogICAgICAgICAgICAgICAgJFNlbGYtPntEZWJ1Z2dlck9iamVjdH0tPkVycm9yKAogICAgICAgICAgICAgICAgICAgIFN1bW1hcnkgPT4gIickQ29uZmlnLT57QXV0aGVudGljYXRpb259LT57S2VyYmVyb3NLZXl0YWJ9JyBkb2VzIG5vdCBleGlzdC4iLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiJyRDb25maWctPntBdXRoZW50aWNhdGlvbn0tPntLZXJiZXJvc0tleXRhYn0nIGRvZXMgbm90IGV4aXN0LiIsCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggJENvbmZpZy0+e0F1dGhlbnRpY2F0aW9ufS0+e0tlcmJlcm9zVXNlcn0gPX4gL1teXHdcZFwtXC5fQF0vICkgewogICAgICAgICAgICAgICAgJFNlbGYtPntEZWJ1Z2dlck9iamVjdH0tPkVycm9yKAogICAgICAgICAgICAgICAgICAgIFN1bW1hcnkgPT4gIkludmFsaWQgdXNlciBmb3JtYXQgJyRDb25maWctPntBdXRoZW50aWNhdGlvbn0tPntLZXJiZXJvc1VzZXJ9Jy4iLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiSW52YWxpZCB1c2VyIGZvcm1hdCAnJENvbmZpZy0+e0F1dGhlbnRpY2F0aW9ufS0+e0tlcmJlcm9zVXNlcn0nLiIsCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkS2luaXRTdHJpbmcgPSAna2luaXQgLWsgLXQgJyAuICRDb25maWctPntBdXRoZW50aWNhdGlvbn0tPntLZXJiZXJvc0tleXRhYn0gLiAnICcgLiAkQ29uZmlnLT57QXV0aGVudGljYXRpb259LT57S2VyYmVyb3NVc2VyfTsKICAgICAgICAgICAgbXkgJExvZ01lc3NhZ2UgID0gcXh7JEtpbml0U3RyaW5nIDI+JjF9OwoKICAgICAgICAgICAgaWYgKCBJc1N0cmluZ1dpdGhEYXRhKCRMb2dNZXNzYWdlKSApIHsKICAgICAgICAgICAgICAgICRTZWxmLT57RGVidWdnZXJPYmplY3R9LT5FcnJvcigKICAgICAgICAgICAgICAgICAgICBTdW1tYXJ5ID0+ICdraW5pdDogJyAuICRMb2dNZXNzYWdlLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAna2luaXQ6ICcgLiAkTG9nTWVzc2FnZSwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgaWYgKCAkUGFyYW17Q3VzdG9tSGVhZGVyfSApIHsKICAgICAgICAlSGVhZGVycyA9ICgKICAgICAgICAgICAgJUhlYWRlcnMsCiAgICAgICAgICAgICV7ICRQYXJhbXtDdXN0b21IZWFkZXJ9IH0sCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGYtPntEZWJ1Z2dlck9iamVjdH0tPkRlYnVnKAogICAgICAgICAgICBTdW1tYXJ5ID0+ICJDdXN0b20gaGVhZGVycyB1c2VkIChtaWdodCBvdmVyd3JpdGUgYXV0aG9yaXphdGlvbikiLAogICAgICAgICAgICBEYXRhICAgID0+IGpvaW4oICc7ICcsIGtleXMgJFBhcmFte0N1c3RvbUhlYWRlcn0tPiUqICksCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkUmVzdENvbW1hbmQgPSAkQ29uZmlnLT57RGVmYXVsdENvbW1hbmR9OwogICAgaWYgKCBJc1N0cmluZ1dpdGhEYXRhKCAkQ29uZmlnLT57SW52b2tlckNvbnRyb2xsZXJNYXBwaW5nfS0+eyAkUGFyYW17T3BlcmF0aW9ufSB9LT57Q29tbWFuZH0gKSApCiAgICB7CiAgICAgICAgJFJlc3RDb21tYW5kID0gJENvbmZpZy0+e0ludm9rZXJDb250cm9sbGVyTWFwcGluZ30tPnsgJFBhcmFte09wZXJhdGlvbn0gfS0+e0NvbW1hbmR9OwogICAgfQoKICAgICRSZXN0Q29tbWFuZCA9IHVjICRSZXN0Q29tbWFuZDsKCiAgICBpZiAoICFncmVwIHsgJF8gZXEgJFJlc3RDb21tYW5kIH0gcXcoR0VUIFBPU1QgUFVUIFBBVENIIERFTEVURSBIRUFEIE9QVElPTlMgQ09OTkVDVCBUUkFDRSkgKSB7CgogICAgICAgIG15ICRFcnJvck1lc3NhZ2UgPSAiJyRSZXN0Q29tbWFuZCcgaXMgbm90IGEgdmFsaWQgUkVTVCBjb21tYW5kLiI7CgogICAgICAgICMgTG9nIHRvIGRlYnVnZ2VyLgogICAgICAgICRTZWxmLT57RGVidWdnZXJPYmplY3R9LT5FcnJvcigKICAgICAgICAgICAgU3VtbWFyeSA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgICk7CgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJEVycm9yTWVzc2FnZSwKICAgICAgICB9OwogICAgfQoKICAgIGlmICgKICAgICAgICAhSXNIYXNoUmVmV2l0aERhdGEoICRDb25maWctPntJbnZva2VyQ29udHJvbGxlck1hcHBpbmd9ICkKICAgICAgICB8fCAhSXNIYXNoUmVmV2l0aERhdGEoICRDb25maWctPntJbnZva2VyQ29udHJvbGxlck1hcHBpbmd9LT57ICRQYXJhbXtPcGVyYXRpb259IH0gKQogICAgICAgIHx8ICFJc1N0cmluZ1dpdGhEYXRhKAogICAgICAgICAgICAkQ29uZmlnLT57SW52b2tlckNvbnRyb2xsZXJNYXBwaW5nfS0+eyAkUGFyYW17T3BlcmF0aW9ufSB9LT57Q29udHJvbGxlcn0KICAgICAgICApCiAgICAgICAgKQogICAgewogICAgICAgIG15ICRFcnJvck1lc3NhZ2UgPSAiUkVTVCBUcmFuc3BvcnQ6IEhhdmUgbm8gSW52b2tlciA8LT4gQ29udHJvbGxlciBtYXBwaW5nIGZvciBJbnZva2VyICckUGFyYW17T3BlcmF0aW9ufScuIjsKCiAgICAgICAgIyBMb2cgdG8gZGVidWdnZXIuCiAgICAgICAgJFNlbGYtPntEZWJ1Z2dlck9iamVjdH0tPkVycm9yKAogICAgICAgICAgICBTdW1tYXJ5ID0+ICRFcnJvck1lc3NhZ2UsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgIH07CiAgICB9CgogICAgbXkgJENvbnRyb2xsZXIgPSAkQ29uZmlnLT57SW52b2tlckNvbnRyb2xsZXJNYXBwaW5nfS0+eyAkUGFyYW17T3BlcmF0aW9ufSB9LT57Q29udHJvbGxlcn07CgogICAgIyBSZW1vdmUgYW55IHF1ZXJ5IHBhcmFtZXRlcnMgdGhhdCBtaWdodCBiZSBpbiB0aGUgY29uZmlnLAogICAgIyAgIEZvciBleGFtcGxlLCBmcm9tIHRoZSBjb250cm9sbGVyOiAvVGlja2V0LzpUaWNrZXRJRC8/OlVzZXJMb2dpbiY6UGFzc3dvcmQKICAgICMgICBjb250cm9sbGVyIG11c3QgcmVtYWluICAvVGlja2V0LzpUaWNrZXRJRC8KICAgIG15ICRRdWVyeVBhcmFtc1N0ciA9ICcnOwogICAgaWYgKCAkQ29udHJvbGxlciA9fiBzeyhbXj9dKykoLispP317JDF9ICkgewoKICAgICAgICAjIFJlbWVtYmVyIHRoZSBxdWVyeSBwYXJhbWV0ZXJzIGUuZy4gPzpVc2VyTG9naW4mOlBhc3N3b3JkLgogICAgICAgICMgSXQgaXMgZmluZSB3aGVuICQyIGlzIG5vdCBkZWZpbmVkLCB0aGF0IGlzIHdoZW4gdGhlcmUgaXMgbm8gJz8nIGluICRSZXF1ZXN0VVJJCiAgICAgICAgJFF1ZXJ5UGFyYW1zU3RyID0gJDI7CiAgICB9CgogICAgIyBSZXBsYWNlIGFueSBVUkkgcGFyYW1zIHdpdGggdGhlaXIgYWN0dWFsIHZhbHVlLgogICAgIyAgICBmb3IgZXhhbXBsZTogZnJvbSAvVGlja2V0LzpUaWNrZXRJRC86T3RoZXIKICAgICMgICAgdG8gL1RpY2tldC8xLzIgKGNvbnNpZGVyaW5nIHRoYXQgJFBhcmFte0RhdGF9IGNvbnRhaW5zIFRpY2tldElEID0gMSBhbmQgT3RoZXIgPSAyKS4KICAgIG15IEBQYXJhbXNUb0RlbGV0ZTsKICAgIGlmICggcmVmICRQYXJhbXtEYXRhfSBlcSAnSEFTSCcgKSB7CiAgICAgICAgZm9yIG15ICRQYXJhbU5hbWUgKCBzb3J0IGtleXMgJXsgJFBhcmFte0RhdGF9IH0gKSB7CiAgICAgICAgICAgIGlmICggJENvbnRyb2xsZXIgPX4gbXs6JFBhcmFtTmFtZSg/PS98XD98JCl9bXN4ICkgewogICAgICAgICAgICAgICAgbXkgJFBhcmFtVmFsdWUgPSAkUGFyYW17RGF0YX0tPnskUGFyYW1OYW1lfTsKICAgICAgICAgICAgICAgICRQYXJhbVZhbHVlID0gdXJpX2VzY2FwZV91dGY4KCRQYXJhbVZhbHVlKTsKICAgICAgICAgICAgICAgICRDb250cm9sbGVyID1+IHN7OiRQYXJhbU5hbWUoPz0vfFw/fCQpfXskUGFyYW1WYWx1ZX1tc3hnOwogICAgICAgICAgICAgICAgcHVzaCBAUGFyYW1zVG9EZWxldGUsICRQYXJhbU5hbWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBlbHNpZiAoIHJlZiAkUGFyYW17RGF0YX0gZXEgJ0FSUkFZJyApIHsKICAgICAgICBmb3IgbXkgJERhdGEgKCAkUGFyYW17RGF0YX0tPkAqICkgewoKICAgICAgICAgICAgZm9yIG15ICRQYXJhbU5hbWUgKCBzb3J0IGtleXMgJXskRGF0YX0gKSB7CiAgICAgICAgICAgICAgICBpZiAoICRDb250cm9sbGVyID1+IG17OiRQYXJhbU5hbWUoPz0vfFw/fCQpfW1zeCApIHsKICAgICAgICAgICAgICAgICAgICBteSAkUGFyYW1WYWx1ZSA9ICREYXRhLT57JFBhcmFtTmFtZX07CiAgICAgICAgICAgICAgICAgICAgJFBhcmFtVmFsdWUgPSB1cmlfZXNjYXBlX3V0ZjgoJFBhcmFtVmFsdWUpOwogICAgICAgICAgICAgICAgICAgICRDb250cm9sbGVyID1+IHN7OiRQYXJhbU5hbWUoPz0vfFw/fCQpfXskUGFyYW1WYWx1ZX1tc3hnOwogICAgICAgICAgICAgICAgICAgIHB1c2ggQFBhcmFtc1RvRGVsZXRlLCAkUGFyYW1OYW1lOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICRTZWxmLT57RGVidWdnZXJPYmplY3R9LT5EZWJ1ZygKICAgICAgICBTdW1tYXJ5ID0+ICdVUkkgYWZ0ZXIgaW50ZXJwb2xhdGluZyBVUkkgcGFyYW1zIGZyb20gb3V0Z29pbmcgZGF0YScsCiAgICAgICAgRGF0YSAgICA9PiAiJFJlc3RDb21tYW5kICRDb250cm9sbGVyIiwKICAgICk7CgogICAgaWYgKCRRdWVyeVBhcmFtc1N0cikgewoKICAgICAgICAjIFJlcGxhY2UgYW55IHF1ZXJ5IHBhcmFtcyB3aXRoIHRoZWlyIGFjdHVhbCB2YWx1ZQogICAgICAgICMgICAgZm9yIGV4YW1wbGU6IGZyb20gP1VzZXJMb2dpbjpVc2VyTG9naW4mUGFzc3dvcmQ9OlBhc3N3b3JkCiAgICAgICAgIyAgICB0byA/VXNlckxvZ2luPXVzZXImUGFzc3dvcmQ9c2VjcmV0CiAgICAgICAgIyAgICAoY29uc2lkZXJpbmcgdGhhdCAkUGFyYW17RGF0YX0gY29udGFpbnMgVXNlckxvZ2luID0gJ3VzZXInIGFuZCBQYXNzd29yZCA9ICdzZWNyZXQnKS4KICAgICAgICBteSAkUmVwbGFjZUZsYWc7CiAgICAgICAgZm9yIG15ICRQYXJhbU5hbWUgKCBzb3J0IGtleXMgJXsgJFBhcmFte0RhdGF9IH0gKSB7CiAgICAgICAgICAgIGlmICggJFF1ZXJ5UGFyYW1zU3RyID1+IG17OiRQYXJhbU5hbWUoPz0mfCQpfW1zeCApIHsKICAgICAgICAgICAgICAgIG15ICRQYXJhbVZhbHVlID0gJFBhcmFte0RhdGF9LT57JFBhcmFtTmFtZX07CiAgICAgICAgICAgICAgICAkUGFyYW1WYWx1ZSA9IHVyaV9lc2NhcGVfdXRmOCgkUGFyYW1WYWx1ZSk7CiAgICAgICAgICAgICAgICAkUXVlcnlQYXJhbXNTdHIgPX4gc3s6JFBhcmFtTmFtZSg/PSZ8JCl9eyRQYXJhbVZhbHVlfW1zeGc7CiAgICAgICAgICAgICAgICBwdXNoIEBQYXJhbXNUb0RlbGV0ZSwgJFBhcmFtTmFtZTsKICAgICAgICAgICAgICAgICRSZXBsYWNlRmxhZyA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgQXBwZW5kIHF1ZXJ5IHBhcmFtcyBpbiB0aGUgVVJJLgogICAgICAgIGlmICgkUmVwbGFjZUZsYWcpIHsKICAgICAgICAgICAgJENvbnRyb2xsZXIgLj0gJFF1ZXJ5UGFyYW1zU3RyOwoKICAgICAgICAgICAgJFNlbGYtPntEZWJ1Z2dlck9iamVjdH0tPkRlYnVnKAogICAgICAgICAgICAgICAgU3VtbWFyeSA9PiAnVVJJIGFmdGVyIGludGVycG9sYXRpbmcgUXVlcnkgcGFyYW1zIGZyb20gb3V0Z29pbmcgZGF0YScsCiAgICAgICAgICAgICAgICBEYXRhICAgID0+ICIkUmVzdENvbW1hbmQgJENvbnRyb2xsZXIiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIFJlbW92ZSBhbHJlYWR5IHVzZWQgcGFyYW1zLgogICAgZm9yIG15ICRQYXJhbU5hbWUgKEBQYXJhbXNUb0RlbGV0ZSkgewogICAgICAgIGRlbGV0ZSAkUGFyYW17RGF0YX0tPnskUGFyYW1OYW1lfTsKICAgIH0KCiAgICAjIEdldCBKU09OIGFuZCBFbmNvZGUgb2JqZWN0LgogICAgbXkgJEpTT05PYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpKU09OJyk7CiAgICBteSAkRW5jb2RlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkVuY29kZScpOwoKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRQYXJhbXtEYXRhfSApIHx8IElzQXJyYXlSZWZXaXRoRGF0YSggJFBhcmFte0RhdGF9ICkgKSB7CgogICAgICAgICMgUE9TVCwgUFVUIGFuZCBQQVRDSCBjYW4gaGF2ZSBEYXRhIGluIHRoZSBCb2R5LgogICAgICAgIGlmICgKICAgICAgICAgICAgJFJlc3RDb21tYW5kIGVxICdQT1NUJwogICAgICAgICAgICB8fCAkUmVzdENvbW1hbmQgZXEgJ1BVVCcKICAgICAgICAgICAgfHwgJFJlc3RDb21tYW5kIGVxICdQQVRDSCcKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFNlbGYtPntEZWJ1Z2dlck9iamVjdH0tPkRlYnVnKAogICAgICAgICAgICAgICAgU3VtbWFyeSA9PiAiUmVtYWluaW5nIG91dGdvaW5nIGRhdGEgdG8gYmUgc2VudCIsCiAgICAgICAgICAgICAgICBEYXRhICAgID0+ICRQYXJhbXtEYXRhfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRQYXJhbXtEYXRhfSA9ICRKU09OT2JqZWN0LT5FbmNvZGUoCiAgICAgICAgICAgICAgICBEYXRhID0+ICRQYXJhbXtEYXRhfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgTWFrZSBzdXJlIGRhdGEgaXMgY29ycmVjdGx5IGVuY29kZWQuCiAgICAgICAgICAgICRFbmNvZGVPYmplY3QtPkVuY29kZU91dHB1dCggXCRQYXJhbXtEYXRhfSApOwogICAgICAgIH0KCiAgICAgICAgIyBXaGVyZWFzIEdFVCBhbmQgdGhlIG90aGVycyBqdXN0IGhhdmUgYSB0aGUgZGF0YSBhZGRlZCB0byB0aGUgUXVlcnkgVVJJLgogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgbXkgJFF1ZXJ5UGFyYW1zID0gJFNlbGYtPl9CdWlsZFF1ZXJ5UGFyYW1zKAogICAgICAgICAgICAgICAgRGF0YSAgICAgICA9PiAkUGFyYW17RGF0YX0sCiAgICAgICAgICAgICAgICBSZXN0Q2xpZW50ID0+ICRSZXN0Q2xpZW50LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBDaGVjayBpZiBjb250cm9sbGVyIGFscmVhZHkgaGF2ZSBhICBxdWVzdGlvbiBtYXJrICc/Jy4KICAgICAgICAgICAgaWYgKCAkQ29udHJvbGxlciA9fiBte1w/fW1zeCApIHsKCiAgICAgICAgICAgICAgICAjIFJlcGxhY2UgcXVlc3Rpb24gbWFyayAnPycgYnkgYW4gYW1wZXJzYW5kICcmJy4KICAgICAgICAgICAgICAgICRRdWVyeVBhcmFtcyA9fiBze1xBXD99eyZ9OwogICAgICAgICAgICB9CgogICAgICAgICAgICAkQ29udHJvbGxlciAuPSAkUXVlcnlQYXJhbXM7CgogICAgICAgICAgICAkU2VsZi0+e0RlYnVnZ2VyT2JqZWN0fS0+RGVidWcoCiAgICAgICAgICAgICAgICBTdW1tYXJ5ID0+ICJVUkkgYWZ0ZXIgYWRkaW5nIFF1ZXJ5IHBhcmFtcyBmcm9tIG91dGdvaW5nIGRhdGEiLAogICAgICAgICAgICAgICAgRGF0YSAgICA9PiAkQ29udHJvbGxlciwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRTZWxmLT57RGVidWdnZXJPYmplY3R9LT5EZWJ1ZygKICAgICAgICAgICAgICAgIFN1bW1hcnkgPT4gIlJlbWFpbmluZyBvdXRnb2luZyBkYXRhIHRvIGJlIHNlbnQiLAogICAgICAgICAgICAgICAgRGF0YSAgICA9PiAiTm8gZGF0YSBpcyBzZW50IGluIHRoZSByZXF1ZXN0IGJvZHkgYXMgJFJlc3RDb21tYW5kIGNvbW1hbmQgc2V0cyBhbGwiCiAgICAgICAgICAgICAgICAgICAgLiAiIERhdGEgYXMgcXVlcnkgcGFyYW1zIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgbXkgQFJlcXVlc3RQYXJhbSA9ICgkQ29udHJvbGxlcik7CgogICAgIyBPbmx5IFBPU1QsIFBVVCBvciBQQVRDSCBoYXZlIGEgYm9keS4gSWYgaXQgaXMgZW1wdHkKICAgICMgKGkuIGUuICRQYXJhbXtEYXRhfSA9IHt9KSwgdW5kZWYgaXMgcGFzc2VkIHRvIFJFU1Q6OkNsaWVudC4KICAgIGlmICgKICAgICAgICAkUmVzdENvbW1hbmQgZXEgJ1BPU1QnCiAgICAgICAgfHwgJFJlc3RDb21tYW5kIGVxICdQVVQnCiAgICAgICAgfHwgJFJlc3RDb21tYW5kIGVxICdQQVRDSCcKICAgICAgICApCiAgICB7CiAgICAgICAgbXkgJEJvZHk7CiAgICAgICAgaWYgKCBJc1N0cmluZ1dpdGhEYXRhKCAkUGFyYW17RGF0YX0gKSApIHsKICAgICAgICAgICAgJEJvZHkgPSAkUGFyYW17RGF0YX07CiAgICAgICAgfQoKICAgICAgICBwdXNoIEBSZXF1ZXN0UGFyYW0sICRCb2R5OwogICAgfQoKICAgICMgYWRkZWQgZm9yIE9UT0JPVGlja2V0SW52b2tlcgoKICAgICMgR2F0aGVyIGFkZGl0aW9uYWwgaGVhZGVycy4KICAgICVIZWFkZXJzID0gKAogICAgICAgICVIZWFkZXJzLAogICAgICAgICRTZWxmLT5fSGVhZGVyc0dldCgKICAgICAgICAgICAgVHlwZSAgICAgID0+ICdJbnZva2VyJywKICAgICAgICAgICAgT3BlcmF0aW9uID0+ICRQYXJhbXtPcGVyYXRpb259LAogICAgICAgICksCiAgICApOwoKICAgICMgVHJpZ2dlciBtaXJyb3IgbW9kZSBmb3IgaGVhZGVycyAodW5kb2N1bWVudGVkIC0gb25seSBmb3IgVW5pdFRlc3RzKQogICAgaWYgKCAkQ29uZmlnLT57VW5pdFRlc3RIZWFkZXJzfSApIHsKICAgICAgICAkSGVhZGVyc3tVbml0dGVzdGhlYWRlcnN9ID0gJENvbmZpZy0+e1VuaXRUZXN0SGVhZGVyc307CiAgICB9CgogICAgIyBBZGQgaGVhZGVycyB0byByZXF1ZXN0CiAgICBwdXNoIEBSZXF1ZXN0UGFyYW0sIFwlSGVhZGVyczsKCiAgICAjIHRoZSBhY3R1YWwgcmVxdWVzdCB0byB0aGUgcmVtb3RlIHNlcnZpY2UKICAgICRSZXN0Q2xpZW50LT4kUmVzdENvbW1hbmQoQFJlcXVlc3RQYXJhbSk7CgogICAgbXkgJEVycm9yTWVzc2FnZSA9ICJFcnJvciB3aGlsZSBwZXJmb3JtaW5nIFJFU1QgJyRSZXN0Q29tbWFuZCcgcmVxdWVzdCB0byBDb250cm9sbGVyICckQ29udHJvbGxlcicgb24gSG9zdCAnJENvbmZpZy0+e0hvc3R9Jy4iOwogICAgbXkgJFJlc3BvbnNlRXJyb3I7CiAgICBpZiAoICRQYXJhbXtDdXN0b21SZXNwb25zZUFzc2Vzc29yfSApIHsKICAgICAgICAkUmVzcG9uc2VFcnJvciA9ICRQYXJhbXtDdXN0b21SZXNwb25zZUFzc2Vzc29yfS0+KAogICAgICAgICAgICBSZXN0Q2xpZW50ICAgPT4gJFJlc3RDbGllbnQsCiAgICAgICAgICAgIFJlc3RDb21tYW5kICA9PiAkUmVzdENvbW1hbmQsCiAgICAgICAgICAgIENvbnRyb2xsZXIgICA9PiAkQ29udHJvbGxlciwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRFcnJvck1lc3NhZ2UsCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRSZXNwb25zZUVycm9yID0gX0Fzc2Vzc1Jlc3BvbnNlKAogICAgICAgICAgICBSZXN0Q2xpZW50ICAgPT4gJFJlc3RDbGllbnQsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJFJlc3BvbnNlQ29kZSAgICA9ICRSZXN0Q2xpZW50LT5yZXNwb25zZUNvZGUoKTsKICAgIG15ICRSZXNwb25zZUNvbnRlbnQgPSAkUmVzdENsaWVudC0+cmVzcG9uc2VDb250ZW50KCk7CgogICAgIyBSZXR1cm4gZWFybHkgaW4gY2FzZSBhbiBlcnJvciBvbiByZXNwb25zZS4KICAgIGlmICgkUmVzcG9uc2VFcnJvcikgewogICAgICAgIG15ICRSZXNwb25zZURhdGEgPSBJc1N0cmluZ1dpdGhEYXRhKCRSZXNwb25zZUNvbnRlbnQpCiAgICAgICAgICAgID8KICAgICAgICAgICAgIlJlc3BvbnNlIGNvbnRlbnQ6ICckUmVzcG9uc2VDb250ZW50JyIKICAgICAgICAgICAgOgogICAgICAgICAgICAnTm8gY29udGVudCBwcm92aWRlZC4nOwoKICAgICAgICAjIGxvZyB0byBkZWJ1Z2dlciBhbmQgcmV0dXJuIGFzIHVuc3VjY2Vzc2Z1bGwKICAgICAgICByZXR1cm4gJFNlbGYtPntEZWJ1Z2dlck9iamVjdH0tPkVycm9yKAogICAgICAgICAgICBTdW1tYXJ5ID0+ICRSZXNwb25zZUVycm9yLAogICAgICAgICAgICBEYXRhICAgID0+ICRSZXNwb25zZURhdGEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIFNlbmQgcHJvY2Vzc2VkIGRhdGEgdG8gZGVidWdnZXIuCiAgICBteSAkU2l6ZUV4Y2VlZGVkID0gMDsKICAgIHsKICAgICAgICBteSAkTWF4U2l6ZUtpbG9CeXRlcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnR2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpSZXNwb25zZUxvZ2dpbmdNYXhTaXplJykKICAgICAgICAgICAgfHwgMjAwOwogICAgICAgIG15ICRNYXhTaXplQnl0ZXMgPSAkTWF4U2l6ZUtpbG9CeXRlcyAqIDEwMjQ7CiAgICAgICAgbXkgJFNpemVCeXRlcyAgICA9IGJ5dGVzOjpsZW5ndGgoJFJlc3BvbnNlQ29udGVudCk7CgogICAgICAgIGlmICggJFNpemVCeXRlcyA8ICRNYXhTaXplQnl0ZXMgKSB7CiAgICAgICAgICAgICRTZWxmLT57RGVidWdnZXJPYmplY3R9LT5EZWJ1ZygKICAgICAgICAgICAgICAgIFN1bW1hcnkgPT4gJ0pTT04gZGF0YSByZWNlaXZlZCBmcm9tIHJlbW90ZSBzeXN0ZW0nLAogICAgICAgICAgICAgICAgRGF0YSAgICA9PiAkUmVzcG9uc2VDb250ZW50LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFNpemVFeGNlZWRlZCA9IDE7CiAgICAgICAgICAgICRTZWxmLT57RGVidWdnZXJPYmplY3R9LT5EZWJ1ZygKICAgICAgICAgICAgICAgIFN1bW1hcnkgPT4gIkpTT04gZGF0YSByZWNlaXZlZCBmcm9tIHJlbW90ZSBzeXN0ZW0gd2FzIHRvbyBsYXJnZSBmb3IgbG9nZ2luZyIsCiAgICAgICAgICAgICAgICBEYXRhICAgID0+ICdTZWUgU3lzQ29uZmlnIG9wdGlvbiBHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OlJlc3BvbnNlTG9nZ2luZ01heFNpemUgdG8gY2hhbmdlIHRoZSBtYXhpbXVtLicsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICRSZXNwb25zZUNvbnRlbnQgPSAkRW5jb2RlT2JqZWN0LT5Db252ZXJ0MkNoYXJzZXRJbnRlcm5hbCgKICAgICAgICBUZXh0ID0+ICRSZXNwb25zZUNvbnRlbnQsCiAgICAgICAgRnJvbSA9PiAndXRmLTgnLAogICAgKTsKCiAgICAjIFRvIGNvbnZlcnQgdGhlIGRhdGEgaW50byBhIGhhc2gsIHVzZSB0aGUgSlNPTiBtb2R1bGUuCiAgICBteSAkUmVzdWx0OwoKICAgIGlmICggJFJlc3BvbnNlQ29kZSBuZSAnMjA0JyApIHsKCiAgICAgICAgJFJlc3VsdCA9ICRKU09OT2JqZWN0LT5EZWNvZGUoCiAgICAgICAgICAgIERhdGEgPT4gJFJlc3BvbnNlQ29udGVudCwKICAgICAgICApOwoKICAgICAgICBpZiAoICEkUmVzdWx0ICkgewogICAgICAgICAgICBteSAkUmVzcG9uc2VFcnJvciA9ICRFcnJvck1lc3NhZ2UgLiAnIEVycm9yIHdoaWxlIHBhcnNpbmcgSlNPTiBkYXRhLic7CgogICAgICAgICAgICAjIExvZyB0byBkZWJ1Z2dlci4KICAgICAgICAgICAgJFNlbGYtPntEZWJ1Z2dlck9iamVjdH0tPkVycm9yKAogICAgICAgICAgICAgICAgU3VtbWFyeSA9PiAkUmVzcG9uc2VFcnJvciwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkUmVzcG9uc2VFcnJvciwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBpbnRyb2R1Y2VkIGZvciBPVE9CT1RpY2tldEludm9rZXIKCiAgICAjIFJlcG9ydCBtaXJyb3JlZCBoZWFkZXJzLCBvbmx5IHVzZWQgZm9yIFVuaXRUZXN0cwogICAgbXkgJVVuaXRUZXN0SGVhZGVyczsKICAgIGlmICggJENvbmZpZy0+e1VuaXRUZXN0SGVhZGVyc30gKSB7CiAgICAgICAgSEVBREVSOgogICAgICAgIGZvciBteSAkSGVhZGVyICggJFJlc3RDbGllbnQtPnJlc3BvbnNlSGVhZGVycyApIHsKICAgICAgICAgICAgbmV4dCBIRUFERVIgaWYgbGVuZ3RoKCRIZWFkZXIpIDwgMjU7CiAgICAgICAgICAgIG5leHQgSEVBREVSIGlmIHN1YnN0ciggJEhlYWRlciwgMCwgMjUgKSBuZSAkQ29uZmlnLT57VW5pdFRlc3RIZWFkZXJzfTsKCiAgICAgICAgICAgICRVbml0VGVzdEhlYWRlcnN7IHN1YnN0ciggJEhlYWRlciwgMjUgKSB9ID0gJFJlc3RDbGllbnQtPnJlc3BvbnNlSGVhZGVyKCRIZWFkZXIpOwogICAgICAgIH0KICAgIH0KCiAgICAjIEFsbCBPSyAtIHJldHVybiByZXN1bHQuCiAgICByZXR1cm4gewogICAgICAgIFN1Y2Nlc3MgICAgICAgICA9PiAxLAogICAgICAgIERhdGEgICAgICAgICAgICA9PiAkUmVzdWx0IHx8IHVuZGVmLAogICAgICAgIFNpemVFeGNlZWRlZCAgICA9PiAkU2l6ZUV4Y2VlZGVkLAogICAgICAgIFVuaXRUZXN0SGVhZGVycyA9PiBcJVVuaXRUZXN0SGVhZGVycywgICAgIyBhZGRlZCBieSBPVE9CT1RpY2tldEludm9rZXIKICAgIH07Cn0KCj1iZWdpbiBJbnRlcm5hbDoKCj1oZWFkMiBfQXNzZXNzUmVzcG9uc2UoKQoKSW5zcGVjdCB0aGUgcmVzcG9uc2UgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIHJlcXVlc3QuCgo9Y3V0CgpzdWIgX0Fzc2Vzc1Jlc3BvbnNlIHsKICAgIG15ICVQYXJhbSA9IEBfOwoKICAgIG15ICggJFJlc3RDbGllbnQsICRFcnJvck1lc3NhZ2UgKSA9IEBQYXJhbXtxdyhSZXN0Q2xpZW50IEVycm9yTWVzc2FnZSl9OwoKICAgIG15ICRSZXNwb25zZUNvZGUgICAgPSAkUmVzdENsaWVudC0+cmVzcG9uc2VDb2RlOwogICAgbXkgJFJlc3BvbnNlQ29udGVudCA9ICRSZXN0Q2xpZW50LT5yZXNwb25zZUNvbnRlbnQ7CgogICAgbXkgJFJlc3BvbnNlRXJyb3I7ICAgICMgd2lsbCBiZSByZXR1cm5lZAoKICAgIGlmICggIUlzU3RyaW5nV2l0aERhdGEoJFJlc3BvbnNlQ29kZSkgKSB7CiAgICAgICAgJFJlc3BvbnNlRXJyb3IgPSAkRXJyb3JNZXNzYWdlOwogICAgfQoKICAgIGlmICggJFJlc3BvbnNlQ29kZSAhfiBteyBcQSAyMCBcZCBceiB9eG1zICkgewogICAgICAgICRSZXNwb25zZUVycm9yID0gJEVycm9yTWVzc2FnZSAuICIgUmVzcG9uc2UgY29kZSAnJFJlc3BvbnNlQ29kZScuIjsKICAgIH0KCiAgICBpZiAoICRSZXNwb25zZUNvZGUgbmUgJzIwNCcgJiYgIUlzU3RyaW5nV2l0aERhdGEoJFJlc3BvbnNlQ29udGVudCkgKSB7CiAgICAgICAgJFJlc3BvbnNlRXJyb3IgLj0gJyBObyBjb250ZW50IHByb3ZpZGVkLic7CiAgICB9CgogICAgcmV0dXJuICRSZXNwb25zZUVycm9yOwp9Cgo9aGVhZDIgX1Rocm93V2ViRXhjZXB0aW9uKCkKCmNyZWF0ZXMgYSBNPFBsYWNrOjpSZXNwb25zZT4gb2JqZWN0LCB3cmFwIGl0IGludG8gYSBNPEtlcm5lbDo6U3lzdGVtOjpXZWI6OkV4Y2VwdGlvbj4KYW5kIHRocm93IHRoYXQgb2JqZWN0IGFzIGFuIGV4Y2VwdGlvbi4KCiAgICAjIHRoZSBzdWIgZGllcwogICAgJFRyYW5zcG9ydE9iamVjdC0+X1Rocm93V2ViRXhjZXB0aW9uKAogICAgICAgIEhUVFBDb2RlID0+IDUwMCwgICAgICAgICAgICAgICAjIGh0dHAgY29kZSB0byBiZSByZXR1cm5lZCwgb3B0aW9uYWwKICAgICAgICBDb250ZW50ICA9PiAnZXJyb3IgbWVzc2FnZScsICAgIyBtZXNzYWdlIGNvbnRlbnQKICAgICAgICBIZWFkZXJzICA9PiB7IEtleSA9PiAnVmFsJyB9ICAgIyBhZGRpdGlvbmFsIGhlYWRlcnMsIG9wdGlvbmFsCiAgICApOwoKPWN1dAoKc3ViIF9UaHJvd1dlYkV4Y2VwdGlvbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgQ2hlY2sgcGFyYW1zLgogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtIVFRQQ29kZX0gJiYgIUlzSW50ZWdlciggJFBhcmFte0hUVFBDb2RlfSApICkgewogICAgICAgICRQYXJhbXtIVFRQQ29kZX0gPSA1MDA7CiAgICAgICAgJFBhcmFte0NvbnRlbnR9ICA9ICdJbnZhbGlkIGludGVybmFsIEhUVFBDb2RlJzsKICAgIH0KICAgIGVsc2lmICggZGVmaW5lZCAkUGFyYW17Q29udGVudH0gJiYgIUlzU3RyaW5nKCAkUGFyYW17Q29udGVudH0gKSApIHsKICAgICAgICAkUGFyYW17SFRUUENvZGV9ID0gNTAwOwogICAgICAgICRQYXJhbXtDb250ZW50fSAgPSAnSW52YWxpZCBDb250ZW50JzsKICAgIH0KCiAgICAjIEZJWE1FOiBhY2NvcmRpbmcgdG8gU09BUDo6VHJhbnNwb3J0OjpIVFRQIHRoZSBwcmV2aW91cyBzaG91bGQgbm90IGJlIHVzZWQKICAgICMgICBmb3IgYWxsIHN1cHBvcnRlZCBicm93c2VycyAnU3RhdHVzOicgc2hvdWxkIGJlIHVzZWQgaGVyZQogICAgIyAgIHRoaXMgYnJlYWtzIGFwYWNoZSB0aG91Z2gKCiAgICAjIHByZXBhcmUgZGF0YQogICAgJFBhcmFte0NvbnRlbnR9ICB8fD0gJyc7CiAgICAkUGFyYW17SFRUUENvZGV9IHx8PSA1MDA7CgogICAgbXkgJENvbnRlbnRUeXBlID0gJFBhcmFte0hUVFBDb2RlfSBlcSAyMDAgPyAnYXBwbGljYXRpb24vanNvbicgOiAndGV4dC9wbGFpbic7CgogICAgIyBMb2cgdG8gZGVidWdnZXIuCiAgICBteSAkRGVidWdMZXZlbCA9ICRQYXJhbXtIVFRQQ29kZX0gZXEgMjAwID8gJ2RlYnVnJyA6ICdlcnJvcic7CiAgICAkU2VsZi0+e0RlYnVnZ2VyT2JqZWN0fS0+RGVidWdMb2coCiAgICAgICAgRGVidWdMZXZlbCA9PiAkRGVidWdMZXZlbCwKICAgICAgICBTdW1tYXJ5ICAgID0+ICJSZXR1cm5pbmcgcHJvdmlkZXIgZGF0YSB0byByZW1vdGUgc3lzdGVtIChIVFRQIENvZGU6ICRQYXJhbXtIVFRQQ29kZX0pIiwKICAgICAgICBEYXRhICAgICAgID0+ICRQYXJhbXtDb250ZW50fSwKICAgICk7CgogICAgIyBoZWFkZXIgZm9yIHRoZSByZXNwb25zZSB0aGF0IHdpbGwgYmUgdGhyb3duCiAgICBteSBASGVhZGVyczsKICAgIHB1c2ggQEhlYWRlcnMsICdDb250ZW50LVR5cGUnID0+ICIkQ29udGVudFR5cGU7IGNoYXJzZXQ9VVRGLTgiOwogICAgcHVzaCBASGVhZGVycywgJ0Nvbm5lY3Rpb24nICAgPT4gKCAkU2VsZi0+e0tlZXBBbGl2ZX0gPyAnS2VlcC1BbGl2ZScgOiAnY2xvc2UnICk7CgogICAgIyBUaGUgQ29udGVudC1MZW5ndGggd2lsbCBiZSBzZXQgbGF0ZXIgaW4gdGhlIG1pZGRsZXdhcmUgUGxhY2s6Ok1pZGRsZXdhcmU6OkNvbnRlbnRMZW5ndGguIFRoaXMgcmVxdWlyZXMgdGhhdAogICAgIyB0aGVyZSBhcmUgbm8gbXVsdGktYnl0ZSBjaGFyYWN0ZXJzIGluIHRoZSBkZWxpdmVyZWQgY29udGVudC4gVGhpcyBpcyBiZWNhdXNlIHRoZSBtaWRkbGV3YXJlCiAgICAjIHVzZXMgY29yZTo6bGVuZ3RoKCkgZm9yIGRldGVybWluaW5nIHRoZSBjb250ZW50IGxlbmd0aC4KICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpFbmNvZGUnKS0+RW5jb2RlT3V0cHV0KCBcJFBhcmFte0NvbnRlbnR9ICk7CgogICAgIyBQcmVwYXJlIGFkZGl0aW9uYWwgaGVhZGVycy4KICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRTZWxmLT57VHJhbnNwb3J0Q29uZmlnfS0+e0NvbmZpZ30tPntBZGRpdGlvbmFsSGVhZGVyc30gKSApIHsKICAgICAgICBteSAlQWRkaXRpb25hbEhlYWRlcnMgPSAkU2VsZi0+e1RyYW5zcG9ydENvbmZpZ30tPntDb25maWd9LT57QWRkaXRpb25hbEhlYWRlcnN9LT4lKjsKICAgICAgICBmb3IgbXkgJEFkZGl0aW9uYWxIZWFkZXIgKCBzb3J0IGtleXMgJUFkZGl0aW9uYWxIZWFkZXJzICkgewogICAgICAgICAgICBwdXNoIEBIZWFkZXJzLCAkQWRkaXRpb25hbEhlYWRlciA9PiAoICRBZGRpdGlvbmFsSGVhZGVyc3skQWRkaXRpb25hbEhlYWRlcn0gfHwgJycgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBpbnRyb2R1Y2VkIGJ5IE9UT0JPVGlja2V0SW52b2tlcgogICAgIyBTZXQgYWRkaXRpb25hbCBoZWFkZXJzLgogICAgaWYgKCAkUGFyYW17SGVhZGVyc30gKSB7CiAgICAgICAgZm9yIG15ICRIZWFkZXIgKCBzb3J0IGtleXMgJFBhcmFte0hlYWRlcnN9LT4lKiApIHsKICAgICAgICAgICAgcHVzaCBASGVhZGVycywgJEhlYWRlciA9PiAkUGFyYW17SGVhZGVyc30tPnskSGVhZGVyfTsKICAgICAgICB9CiAgICB9CgogICAgIyBjcmVhdGUgdGhlIHJlc3BvbnNlCiAgICBteSAkUGxhY2tSZXNwb25zZSA9IFBsYWNrOjpSZXNwb25zZS0+bmV3KAogICAgICAgICRQYXJhbXtIVFRQQ29kZX0sCiAgICAgICAgXEBIZWFkZXJzLAogICAgICAgICRQYXJhbXtDb250ZW50fQogICAgKTsKCiAgICAjIFRoZSBleGNlcHRpb24gaXMgY2F1Z2h0IGJlIFBsYWNrOjpNaWRkbGV3YXJlOjpIVFRQRXhjZXB0aW9ucwogICAgZGllIEtlcm5lbDo6U3lzdGVtOjpXZWI6OkV4Y2VwdGlvbi0+bmV3KAogICAgICAgIFBsYWNrUmVzcG9uc2UgPT4gJFBsYWNrUmVzcG9uc2UKICAgICk7Cn0KCj1oZWFkMiBfRXJyb3IoKQoKVGFrZSBlcnJvciBwYXJhbWV0ZXJzIGZyb20gcmVxdWVzdCBwcm9jZXNzaW5nLgpFcnJvciBtZXNzYWdlIGlzIHdyaXR0ZW4gdG8gZGVidWdnZXIsIHdyaXR0ZW4gdG8gZW52aXJvbm1lbnQgZm9yIHJlc3BvbnNlLgpFcnJvciBpcyBnZW5lcmF0ZWQgdG8gYmUgcGFzc2VkIHRvIHByb3ZpZGVyL3JlcXVlc3Rlci4KCiAgICBteSAkUmVzdWx0ID0gJFRyYW5zcG9ydE9iamVjdC0+X0Vycm9yKAogICAgICAgIFN1bW1hcnkgICA9PiAnTWVzc2FnZScsICAgICMgZXJyb3IgbWVzc2FnZQogICAgICAgIEhUVFBFcnJvciA9PiA1MDAsICAgICAgICAgICMgaHR0cCBlcnJvciBjb2RlLCBvcHRpb25hbAogICAgKTsKCiAgICAkUmVzdWx0ID0gewogICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgIEVycm9yTWVzc2FnZSA9PiAnTWVzc2FnZScsICMgZXJyb3IgbWVzc2FnZSBmcm9tIGdpdmVuIHN1bW1hcnkKICAgIH07Cgo9Y3V0CgpzdWIgX0Vycm9yIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgcGFyYW1zCiAgICBpZiAoICFJc1N0cmluZyggJFBhcmFte1N1bW1hcnl9ICkgKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT5fRXJyb3IoCiAgICAgICAgICAgIFN1bW1hcnkgICA9PiAnTmVlZCBTdW1tYXJ5IScsCiAgICAgICAgICAgIEhUVFBFcnJvciA9PiA1MDAsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIExvZyB0byBkZWJ1Z2dlci4KICAgICRTZWxmLT57RGVidWdnZXJPYmplY3R9LT5FcnJvcigKICAgICAgICBTdW1tYXJ5ID0+ICRQYXJhbXtTdW1tYXJ5fSwKICAgICk7CgogICAgIyBSZW1lbWJlciBkYXRhIGZvciByZXNwb25zZS4KICAgIGlmICggSXNTdHJpbmdXaXRoRGF0YSggJFBhcmFte0hUVFBFcnJvcn0gKSApIHsKICAgICAgICAkU2VsZi0+e0hUVFBFcnJvcn0gICA9ICRQYXJhbXtIVFRQRXJyb3J9OwogICAgICAgICRTZWxmLT57SFRUUE1lc3NhZ2V9ID0gJFBhcmFte1N1bW1hcnl9OwogICAgfQoKICAgICMgUmV0dXJuIHRvIHByb3ZpZGVyL3JlcXVlc3Rlci4KICAgIHJldHVybiB7CiAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRQYXJhbXtTdW1tYXJ5fSwKICAgIH07Cn0KCiMgaW50cm9kdWNlZCBmb3IgT1RPQk9UaWNrZXRJbnZva2VyCnN1YiBfSGVhZGVyc0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRDb25maWcgPSAkU2VsZi0+e1RyYW5zcG9ydENvbmZpZ30tPntDb25maWd9LT57T3V0Ym91bmRIZWFkZXJzfTsKCiAgICAjIEZhbGxiYWNrIGZvciBwcmV2aW91c2x5IHVzZWQgJ2FkZGl0aW9uYWwgcmVzcG9uc2UgaGVhZGVycycuCiAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkU2VsZi0+e1RyYW5zcG9ydENvbmZpZ30tPntDb25maWd9LT57QWRkaXRpb25hbEhlYWRlcnN9ICkgKSB7CiAgICAgICAgJENvbmZpZyA9IHsKICAgICAgICAgICAgQ29tbW9uID0+ICRTZWxmLT57VHJhbnNwb3J0Q29uZmlnfS0+e0NvbmZpZ30tPntBZGRpdGlvbmFsSGVhZGVyc30sCiAgICAgICAgfTsKICAgIH0KCiAgICByZXR1cm4gdW5sZXNzIElzSGFzaFJlZldpdGhEYXRhKCRDb25maWcpOwoKICAgICMgdGhlIGJsYWNrbGlzdGVkIGhlYWRlcnMgYXJlIG5vdCBzZW50CiAgICBteSAlSXNCbGFja2xpc3RlZCA9IG1hcAogICAgICAgIHsgdWMoJF8pID0+IDEgfQogICAgICAgIEB7ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCggJ0dlbmVyaWNJbnRlcmZhY2U6OicgLiAkUGFyYW17VHlwZX0gLiAnOjpPdXRib3VuZEhlYWRlckJsYWNrbGlzdCcgKSAvLyBbXSB9OwoKICAgICMgQ29tbW9uIGhlYWRlcnMuCiAgICAjIFRoZXNlIGNvbWUgZmlyc3QgYXMgc3BlY2lmaWMgaGVhZGVycyBtaWdodCBvdmVycmlkZSB0aGVtLgogICAgbXkgJUhlYWRlcnM7CiAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkQ29uZmlnLT57Q29tbW9ufSApICkgewogICAgICAgIEhFQURFUjoKICAgICAgICBmb3IgbXkgJEhlYWRlciAoIHNvcnQga2V5cyAkQ29uZmlnLT57Q29tbW9ufS0+JSogKSB7CiAgICAgICAgICAgIG5leHQgSEVBREVSIGlmICRJc0JsYWNrbGlzdGVkeyB1YyAkSGVhZGVyIH07CgogICAgICAgICAgICAkSGVhZGVyc3skSGVhZGVyfSA9ICRDb25maWctPntDb21tb259LT57JEhlYWRlcn07CiAgICAgICAgfQogICAgfQoKICAgICMgT3BlcmF0aW9uL0ludm9rZXIgc3BlY2lmaWMgaGVhZGVycy4KICAgIHJldHVybiAlSGVhZGVycyB1bmxlc3MgJFBhcmFte09wZXJhdGlvbn07CiAgICByZXR1cm4gJUhlYWRlcnMgdW5sZXNzIHJlZiAkQ29uZmlnLT57U3BlY2lmaWN9IGVxICdIQVNIJzsKICAgIHJldHVybiAlSGVhZGVycyB1bmxlc3MgSXNIYXNoUmVmV2l0aERhdGEoICRDb25maWctPntTcGVjaWZpY30tPnsgJFBhcmFte09wZXJhdGlvbn0gfSApOwoKICAgIEhFQURFUjoKICAgIGZvciBteSAkSGVhZGVyICggc29ydCBrZXlzICRDb25maWctPntTcGVjaWZpY30tPnsgJFBhcmFte09wZXJhdGlvbn0gfS0+JSogKSB7CiAgICAgICAgbmV4dCBIRUFERVIgaWYgJElzQmxhY2tsaXN0ZWR7IHVjICRIZWFkZXIgfTsKCiAgICAgICAgJEhlYWRlcnN7JEhlYWRlcn0gPSAkQ29uZmlnLT57U3BlY2lmaWN9LT57ICRQYXJhbXtPcGVyYXRpb259IH0tPnskSGVhZGVyfTsKICAgIH0KCiAgICByZXR1cm4gJUhlYWRlcnM7Cn0KCnN1YiBfQnVpbGRRdWVyeVBhcmFtcyB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoIHJlZiAkUGFyYW17RGF0YX0gZXEgJ0hBU0gnICkgewogICAgICAgIHJldHVybiAkUGFyYW17UmVzdENsaWVudH0tPmJ1aWxkUXVlcnkoICRQYXJhbXtEYXRhfS0+JSogKTsKICAgIH0KCiAgICBteSBAUXVlcnlQYXJhbXM7CgogICAgZm9yIG15ICREYXRhICggJFBhcmFte0RhdGF9LT5AKiApIHsKICAgICAgICBwdXNoIEBRdWVyeVBhcmFtcywgJFBhcmFte1Jlc3RDbGllbnR9LT5idWlsZFF1ZXJ5KCAkRGF0YS0+JSogKTsKICAgIH0KCiAgICByZXR1cm4gam9pbiggJyYnLCBAUXVlcnlQYXJhbXMgKTsKfQoKPWVuZCBJbnRlcm5hbDoKCj1jdXQKCjE7Cg==</File>
        <File Location="Custom/Kernel/System/WebUserAgent.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL1N5c3RlbS9XZWJVc2VyQWdlbnQucG0KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6V2ViVXNlckFnZW50OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKIyBjb3JlIG1vZHVsZXMKdXNlIExpc3Q6OlV0aWwgcXcoZmlyc3QpOwoKIyBDUEFOIG1vZHVsZXMKdXNlIEhUVFA6OkhlYWRlcnMgICgpOwp1c2UgTFdQOjpVc2VyQWdlbnQgKCk7CgojIE9UT0JPIG1vZHVsZXMKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpFbmNvZGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpNYWluJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6V2ViVXNlckFnZW50IC0gYSB3ZWIgdXNlciBhZ2VudCBsaWIKCj1oZWFkMSBERVNDUklQVElPTgoKQWxsIHdlYiB1c2VyIGFnZW50IGZ1bmN0aW9ucy4KCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9aGVhZDIgbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OldlYlVzZXJBZ2VudDsKCiAgICBteSAkV2ViVXNlckFnZW50T2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OldlYlVzZXJBZ2VudC0+bmV3KAogICAgICAgIFRpbWVvdXQgPT4gMTUsICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCwgdGltZW91dAogICAgICAgIFByb3h5ICAgPT4gJ3Byb3h5LmV4YW1wbGUuY29tJywgIyBvcHRpb25hbCwgcHJveHkKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IGJsZXNzIHt9LCAkVHlwZTsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICRTZWxmLT57VGltZW91dH0gPSAkUGFyYW17VGltZW91dH0gfHwgJENvbmZpZ09iamVjdC0+R2V0KCdXZWJVc2VyQWdlbnQ6OlRpbWVvdXQnKSB8fCAxNTsKICAgICRTZWxmLT57UHJveHl9ICAgPSAkUGFyYW17UHJveHl9ICAgfHwgJENvbmZpZ09iamVjdC0+R2V0KCdXZWJVc2VyQWdlbnQ6OlByb3h5JykgICB8fCAnJzsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBSZXF1ZXN0KCkKCnJldHVybiB0aGUgY29udGVudCBvZiByZXF1ZXN0ZWQgVVJMLgoKU2ltcGxlIEdFVCByZXF1ZXN0OgoKICAgIG15ICVSZXNwb25zZSA9ICRXZWJVc2VyQWdlbnRPYmplY3QtPlJlcXVlc3QoCiAgICAgICAgVVJMID0+ICdodHRwOi8vZXhhbXBsZS5jb20vc29tZWRhdGEueG1sJywKICAgICAgICBTa2lwU1NMVmVyaWZpY2F0aW9uID0+IDEsICMgKG9wdGlvbmFsKQogICAgICAgIE5vTG9nICAgICAgICAgICAgICAgPT4gMSwgIyAob3B0aW9uYWwpCiAgICApOwoKT3IgYSBQT1NUIHJlcXVlc3Q7IGF0dHJpYnV0ZXMgY2FuIGJlIGEgaGFzaHJlZiBsaWtlIHRoaXM6CgogICAgbXkgJVJlc3BvbnNlID0gJFdlYlVzZXJBZ2VudE9iamVjdC0+UmVxdWVzdCgKICAgICAgICBVUkwgID0+ICdodHRwOi8vZXhhbXBsZS5jb20vc29tZXVybCcsCiAgICAgICAgVHlwZSA9PiAnUE9TVCcsCiAgICAgICAgRGF0YSA9PiB7IEF0dHJpYnV0ZTEgPT4gJ1ZhbHVlJywgQXR0cmlidXRlMiA9PiAnVmFsdWUyJyB9LAogICAgICAgIFNraXBTU0xWZXJpZmljYXRpb24gPT4gMSwgIyAob3B0aW9uYWwpCiAgICAgICAgTm9Mb2cgICAgICAgICAgICAgICA9PiAxLCAjIChvcHRpb25hbCkKICAgICk7CgphbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHVzZSBhbiBhcnJheXJlZiBsaWtlIHRoaXM6CgogICAgbXkgJVJlc3BvbnNlID0gJFdlYlVzZXJBZ2VudE9iamVjdC0+UmVxdWVzdCgKICAgICAgICBVUkwgID0+ICdodHRwOi8vZXhhbXBsZS5jb20vc29tZXVybCcsCiAgICAgICAgVHlwZSA9PiAnUE9TVCcsCiAgICAgICAgRGF0YSA9PiBbIEF0dHJpYnV0ZSA9PiAnVmFsdWUnLCBBdHRyaWJ1dGUgPT4gJ090aGVyVmFsdWUnIF0sCiAgICAgICAgU2tpcFNTTFZlcmlmaWNhdGlvbiA9PiAxLCAjIChvcHRpb25hbCkKICAgICAgICBOb0xvZyAgICAgICAgICAgICAgID0+IDEsICMgKG9wdGlvbmFsKQogICAgKTsKCnJldHVybnMKCiAgICAlUmVzcG9uc2UgPSAoCiAgICAgICAgU3RhdHVzICA9PiAnMjAwIE9LJywgICAgIyBodHRwIHN0YXR1cwogICAgICAgIENvbnRlbnQgPT4gJENvbnRlbnRSZWYsICMgY29udGVudCBvZiByZXF1ZXN0ZWQgVVJMCiAgICApOwoKWW91IGNhbiBldmVuIHBhc3Mgc29tZSBoZWFkZXJzCgogICAgbXkgJVJlc3BvbnNlID0gJFdlYlVzZXJBZ2VudE9iamVjdC0+UmVxdWVzdCgKICAgICAgICBVUkwgICAgPT4gJ2h0dHA6Ly9leGFtcGxlLmNvbS9zb21ldXJsJywKICAgICAgICBUeXBlICAgPT4gJ1BPU1QnLAogICAgICAgIERhdGEgICA9PiBbIEF0dHJpYnV0ZSA9PiAnVmFsdWUnLCBBdHRyaWJ1dGUgPT4gJ090aGVyVmFsdWUnIF0sCiAgICAgICAgSGVhZGVyID0+IHsKICAgICAgICAgICAgQXV0aG9yaXphdGlvbiA9PiAnQmFzaWMgeHh4eCcsCiAgICAgICAgICAgIENvbnRlbnRfVHlwZSAgPT4gJ3RleHQvanNvbicsCiAgICAgICAgfSwKICAgICAgICBTa2lwU1NMVmVyaWZpY2F0aW9uID0+IDEsICMgKG9wdGlvbmFsKQogICAgICAgIE5vTG9nICAgICAgICAgICAgICAgPT4gMSwgIyAob3B0aW9uYWwpCiAgICApOwoKSWYgeW91IG5lZWQgdG8gc2V0IGNyZWRlbnRpYWxzCgogICAgbXkgJVJlc3BvbnNlID0gJFdlYlVzZXJBZ2VudE9iamVjdC0+UmVxdWVzdCgKICAgICAgICBVUkwgICAgICAgICAgPT4gJ2h0dHA6Ly9leGFtcGxlLmNvbS9zb21ldXJsJywKICAgICAgICBUeXBlICAgICAgICAgPT4gJ1BPU1QnLAogICAgICAgIERhdGEgICAgICAgICA9PiBbIEF0dHJpYnV0ZSA9PiAnVmFsdWUnLCBBdHRyaWJ1dGUgPT4gJ090aGVyVmFsdWUnIF0sCiAgICAgICAgQ3JlZGVudGlhbHMgID0+IHsKICAgICAgICAgICAgVXNlciAgICAgPT4gJ290b2JvX3VzZXInLAogICAgICAgICAgICBQYXNzd29yZCA9PiAnb3RvYm9fcGFzc3dvcmQnLAogICAgICAgICAgICBSZWFsbSAgICA9PiAnT1RPQk8gVW5pdHRlc3RzJywKICAgICAgICAgICAgTG9jYXRpb24gPT4gJ2Z0cC5vdG9iby5vcmc6ODAnLAogICAgICAgIH0sCiAgICAgICAgU2tpcFNTTFZlcmlmaWNhdGlvbiA9PiAxLCAjIChvcHRpb25hbCkKIyBSb3RoZXIgT1NTIC8gT0F1dGgyCiAgICAgICAgU2tpcFNTTEhvc3RuYW1lVmVyaWZpY2F0aW9uID0+IDEsICMgKE9wdGlvbmFsKQojIEVPIC8gT0F1dGgyCiAgICAgICAgTm9Mb2cgICAgICAgICAgICAgICA9PiAxLCAjIChvcHRpb25hbCkKICAgICk7Cgo9Y3V0CgpzdWIgUmVxdWVzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZGVmaW5lIG1ldGhvZCAtIGRlZmF1bHQgdG8gR0VUCiAgICAkUGFyYW17VHlwZX0gfHw9ICdHRVQnOwoKICAgIG15ICRSZXNwb25zZTsKCiAgICAjIGluaXQgYWdlbnQKICAgIG15ICRVc2VyQWdlbnQgPSBMV1A6OlVzZXJBZ2VudC0+bmV3KCk7CgogICAgIyBJbiBzb21lIHNjZW5hcmlvcyBsaWtlIHRyYW5zcGFyZW50IEhUVFBTIHByb3hpZXMsIGl0IGNhbiBiZSBuZWNjZXNzYXJ5IHRvIHR1cm4gb2ZmCiAgICAjICAgU1NMIGNlcnRpZmljYXRlIHZhbGlkYXRpb24uCiAgICBpZiAoCiAgICAgICAgJFBhcmFte1NraXBTU0xWZXJpZmljYXRpb259CgojIFJvdGhlciBPU1MgLyBPQXV0aDIKICAgICAgICB8fCAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1dlYlVzZXJBZ2VudDo6RGlzYWJsZVNTTFZlcmlmaWNhdGlvbicpCiAgICAgICAgKQogICAgewogICAgICAgICRVc2VyQWdlbnQtPnNzbF9vcHRzKAogICAgICAgICAgICBTU0xfdmVyaWZ5X21vZGUgPT4gMCwKICAgICAgICApOwogICAgfQoKICAgIGlmICgKICAgICAgICAkUGFyYW17U2tpcFNTTEhvc3RuYW1lVmVyaWZpY2F0aW9ufQoKIyBFTyAvIE9BdXRoMgogICAgICAgIHx8ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnV2ViVXNlckFnZW50OjpEaXNhYmxlU1NMVmVyaWZpY2F0aW9uJykKICAgICAgICApCiAgICB7CiAgICAgICAgJFVzZXJBZ2VudC0+c3NsX29wdHMoCiAgICAgICAgICAgIHZlcmlmeV9ob3N0bmFtZSA9PiAwLAogICAgICAgICk7CiAgICB9CgogICAgIyBzZXQgY3JlZGVudGlhbHMKICAgIGlmICggJFBhcmFte0NyZWRlbnRpYWxzfSApIHsKICAgICAgICBteSAlQ3JlZGVudGlhbFBhcmFtcyAgICA9ICV7ICRQYXJhbXtDcmVkZW50aWFsc30gfHwge30gfTsKICAgICAgICBteSBAS2V5cyAgICAgICAgICAgICAgICA9IHF3KExvY2F0aW9uIFJlYWxtIFVzZXIgUGFzc3dvcmQpOwogICAgICAgIG15ICRBbGxDcmVkZW50aWFsUGFyYW1zID0gIWZpcnN0IHsgIWRlZmluZWQgJF8gfSBAQ3JlZGVudGlhbFBhcmFtc3tAS2V5c307CgogICAgICAgIGlmICgkQWxsQ3JlZGVudGlhbFBhcmFtcykgewogICAgICAgICAgICAkVXNlckFnZW50LT5jcmVkZW50aWFscygKICAgICAgICAgICAgICAgIEBDcmVkZW50aWFsUGFyYW1ze0BLZXlzfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgaGVhZGVycwogICAgaWYgKCAkUGFyYW17SGVhZGVyfSApIHsKICAgICAgICAkVXNlckFnZW50LT5kZWZhdWx0X2hlYWRlcnMoCiAgICAgICAgICAgIEhUVFA6OkhlYWRlcnMtPm5ldyggJXsgJFBhcmFte0hlYWRlcn0gfSApLAogICAgICAgICk7CiAgICB9CgogICAgIyBzZXQgdGltZW91dAogICAgJFVzZXJBZ2VudC0+dGltZW91dCggJFNlbGYtPntUaW1lb3V0fSApOwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBzZXQgdXNlciBhZ2VudAogICAgJFVzZXJBZ2VudC0+YWdlbnQoCiAgICAgICAgJENvbmZpZ09iamVjdC0+R2V0KCdQcm9kdWN0JykgLiAnICcgLiAkQ29uZmlnT2JqZWN0LT5HZXQoJ1ZlcnNpb24nKQogICAgKTsKCiAgICAjIHNldCBwcm94eQogICAgaWYgKCAkU2VsZi0+e1Byb3h5fSApIHsKICAgICAgICAkVXNlckFnZW50LT5wcm94eSggWyAnaHR0cCcsICdodHRwcycsICdmdHAnIF0sICRTZWxmLT57UHJveHl9ICk7CiAgICB9CgogICAgaWYgKCAkUGFyYW17VHlwZX0gZXEgJ0dFVCcgKSB7CgogICAgICAgICMgcGVyZm9ybSBnZXQgcmVxdWVzdCBvbiBVUkwKICAgICAgICAkUmVzcG9uc2UgPSAkVXNlckFnZW50LT5nZXQoICRQYXJhbXtVUkx9ICk7CiAgICB9CgogICAgZWxzZSB7CgogICAgICAgICMgY2hlY2sgZm9yIERhdGEgcGFyYW0KICAgICAgICBpZiAoICFJc0FycmF5UmVmV2l0aERhdGEoICRQYXJhbXtEYXRhfSApICYmICFJc0hhc2hSZWZXaXRoRGF0YSggJFBhcmFte0RhdGF9ICkgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+CiAgICAgICAgICAgICAgICAgICAgJ1dlYlVzZXJBZ2VudCBQT1NUOiBOZWVkIERhdGEgcGFyYW0gY29udGFpbmluZyBhIGhhc2hyZWYgb3IgYXJyYXlyZWYgd2l0aCBkYXRhLicsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiAoIFN0YXR1cyA9PiAwICk7CiAgICAgICAgfQoKICAgICAgICAjIHBlcmZvcm0gcG9zdCByZXF1ZXN0IHBsdXMgZGF0YQogICAgICAgICRSZXNwb25zZSA9ICRVc2VyQWdlbnQtPnBvc3QoICRQYXJhbXtVUkx9LCAkUGFyYW17RGF0YX0gKTsKICAgIH0KCiAgICBpZiAoICEkUmVzcG9uc2UtPmlzX3N1Y2Nlc3MoKSApIHsKCiAgICAgICAgaWYgKCAhJFBhcmFte05vTG9nfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNhbid0IHBlcmZvcm0gJFBhcmFte1R5cGV9IG9uICRQYXJhbXtVUkx9OiAiIC4gJFJlc3BvbnNlLT5zdGF0dXNfbGluZSgpLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgU3RhdHVzID0+ICRSZXNwb25zZS0+c3RhdHVzX2xpbmUoKSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHRoZSBjb250ZW50IHRvIGNvbnZlcnQgaW50ZXJuYWwgdXNlZCBjaGFyc2V0CiAgICBteSAkUmVzcG9uc2VDb250ZW50ID0gJFJlc3BvbnNlLT5kZWNvZGVkX2NvbnRlbnQoKTsKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpFbmNvZGUnKS0+RW5jb2RlSW5wdXQoIFwkUmVzcG9uc2VDb250ZW50ICk7CgogICAgaWYgKCAkUGFyYW17UmV0dXJufSAmJiAkUGFyYW17UmV0dXJufSBlcSAnUkVRVUVTVCcgKSB7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgU3RhdHVzICA9PiAkUmVzcG9uc2UtPnN0YXR1c19saW5lKCksCiAgICAgICAgICAgIENvbnRlbnQgPT4gXCRSZXNwb25zZS0+cmVxdWVzdCgpLT5hc19zdHJpbmcoKSwKICAgICAgICApOwogICAgfQoKICAgICMgcmV0dXJuIHJlcXVlc3QKICAgIHJldHVybiAoCiAgICAgICAgU3RhdHVzICA9PiAkUmVzcG9uc2UtPnN0YXR1c19saW5lKCksCiAgICAgICAgQ29udGVudCA9PiBcJFJlc3BvbnNlQ29udGVudCwKICAgICk7Cn0KCjE7Cg==</File>
        <File Location="scripts/test/OAuthGrantTypes.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2UgdjUuMjQ7CnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgojIGNvcmUgbW9kdWxlcwp1c2UgRmluZEJpbiBxdygkQmluKTsKCiMgQ1BBTiBtb2R1bGVzCnVzZSBUZXN0Mjo6VjA7CnVzZSBDcnlwdDo6SldUIHF3KGVuY29kZV9qd3QgZGVjb2RlX2p3dCk7CnVzZSBDcnlwdDo6UEs6OlJTQTsKdXNlIFBsYWNrOjpSdW5uZXI7CnVzZSBQbGFjazo6UmVxdWVzdDsKdXNlIFRyeTo6VGlueSBxdyh0cnkgY2F0Y2gpOwp1c2UgSlNPTjsKdXNlIFVSSTo6RXNjYXBlIHF3KHVyaV9lc2NhcGVfdXRmOCk7CgojIE9UT0JPIG1vZHVsZXMKdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJPTTsgICAgIyBzZXQgdXAgJEtlcm5lbDo6T00KCm15ICRDdXJyZW50VGltZSA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpLT5Ub0Vwb2NoKCk7CgpteSAkTWFpbk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyk7CiRNYWluT2JqZWN0LT5SZXF1aXJlKCIkQmluL09BdXRoUHJvdmlkZXJNb2NrIik7CgpteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKJERCT2JqZWN0LT5Db25uZWN0KCk7CiREQk9iamVjdC0+QmVnaW5Xb3JrKCk7CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIG1haW4gdGVzdAojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIyB3YWl0IGZvciB0aGUgZmFrZSBhdXRob3JpemF0aW9uIHNlcnZlciB0byBjb21lIHVwCnNsZWVwIDE7CgpteSAkQ29uZmlnT2JqZWN0ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwpteSAkVG9rZW5Qcm92aWRlciAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5Qcm92aWRlcicpOwpteSAkVG9rZW5SZXBvc2l0b3J5ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6T3BlbklEQ29ubmVjdDo6VG9rZW5SZXBvc2l0b3J5Jyk7Cm15ICRPSURDQ29uZmlndXJhdGlvbiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpDb25maWd1cmF0aW9uJyk7CgojIHRoZSBPcGVuSURDb25maWcgd2Ugd2lsbCB1c2UuIFRoaXMgd291bGQgbm9ybWFsbHkgY29tZSBmcm9tIFN5c0NvbmZpZwpteSAkT3BlbklEQ29uZmlnID0gT0F1dGhQcm92aWRlck1vY2s6OkdldFRlc3RPcGVuSURDb25maWcoKTsKCiMgVGVzdCBQZXJtdXRhdGlvbnMKbXkgQFRlc3RTY29wZXMgPSAoCiAgICAnJywKICAgICdvcGVuaWQnLAogICAgJ29wZW5pZCBlbWFpbCBwcm9maWxlcycsCiAgICAnb3BlbmlkIGh0dHA6Ly93aWxkLnNjb3BlLm9yZycsCik7CgpteSBAVGVzdFJlc291cmNlcyA9ICgKICAgICcnLAogICAgJ3NvbWVhcGknLAogICAgJ3NvbWVhcGkgb3RoZXJhcGknLAogICAgJ3NvbWVhcGkgaHR0cDovL3dpbGQucmVzb3VyY2Uub3JnLycsCik7CgpteSBAVGVzdFJlc291cmNlUGFyYW1OYW1lcyA9ICgKICAgICcnLAogICAgJ3Jlc291cmNlJywKICAgICdyZXNvdXJjZXMnLAogICAgJ3Jlc291cmNlSWRzJywKKTsKCm15IEBUb2tlblR5cGUgPSAoCiAgICAnYWNjZXNzX3Rva2VuJywKICAgICdpZF90b2tlbicsCik7CgojIE1haW4gVGVzdCBDYXNlcwpteSAkVGVzdENhc2VzID0gWwogICAgewogICAgICAgIEdyYW50VHlwZSA9PiAnY2xpZW50X2NyZWRlbnRpYWxzJywKICAgICAgICBFeHBlY3RlZCAgPT4gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZW5kcG9pbnQiID0+ICJvcGVuaWQiLAogICAgICAgICAgICAgICAgImNvbnRlbnQiICA9PiAiIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZW5kcG9pbnQiID0+ICJqd2tzIiwKICAgICAgICAgICAgICAgICJjb250ZW50IiAgPT4gIiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAidG9rZW4iLAogICAgICAgICAgICAgICAgImNvbnRlbnQiICA9PiAiZ3JhbnRfdHlwZT1jbGllbnRfY3JlZGVudGlhbHMiCiAgICAgICAgICAgIH0sCiAgICAgICAgXQogICAgfSwKICAgIHsKICAgICAgICBHcmFudFR5cGUgPT4gJ3Bhc3N3b3JkJywKICAgICAgICBVc2VybmFtZSAgPT4gJ3Rlc3QxQGV4YW1wbGUuY29tJywKICAgICAgICBQYXNzd29yZCAgPT4gJ3Rlc3QnLAogICAgICAgIEV4cGVjdGVkICA9PiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJlbmRwb2ludCIgPT4gIm9wZW5pZCIsCiAgICAgICAgICAgICAgICAiY29udGVudCIgID0+ICIiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJlbmRwb2ludCIgPT4gImp3a3MiLAogICAgICAgICAgICAgICAgImNvbnRlbnQiICA9PiAiIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZW5kcG9pbnQiID0+ICJ0b2tlbiIsCiAgICAgICAgICAgICAgICAiY29udGVudCIgID0+ICJncmFudF90eXBlPXBhc3N3b3JkJnVzZXJuYW1lPXRlc3QxJTQwZXhhbXBsZS5jb20mcGFzc3dvcmQ9dGVzdCIKICAgICAgICAgICAgfSwKICAgICAgICBdCiAgICB9LAogICAgewogICAgICAgIEdyYW50VHlwZSA9PiAnYXV0aG9yaXphdGlvbl9jb2RlJywKICAgICAgICBFeHBlY3RlZCAgPT4gWwoKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAib3BlbmlkIiwKICAgICAgICAgICAgICAgICJjb250ZW50IiAgPT4gIiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAiandrcyIsCiAgICAgICAgICAgICAgICAiY29udGVudCIgID0+ICIiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJlbmRwb2ludCIgPT4gInRva2VuIiwKICAgICAgICAgICAgICAgICJjb250ZW50IiAgPT4gImdyYW50X3R5cGU9YXV0aG9yaXphdGlvbl9jb2RlJmNvZGU9Q09GRkZFRUJBQkVDT0ZGRUUmcmVkaXJlY3RfdXJpPWh0dHAlM0ElMkYlMkZzb21ld2hlcmUuY29tJTJGIgogICAgICAgICAgICB9LAogICAgICAgIF0KICAgIH0sCl07CgpldmFsIHsKCiAgICAjIG1ha2Ugc3VyZSBjYWNoZSBpcyBjbGVhbiBmb3IgdGVzdGluZwogICAgJE9JRENDb25maWd1cmF0aW9uLT5HZXRQcm92aWRlckRhdGEoCiAgICAgICAgT3BlbklEQ29uZmlnID0+ICRPcGVuSURDb25maWcsCiAgICAgICAgTm9DYWNoZSAgICAgID0+IDEsCiAgICApOwoKICAgICMgT0F1dGhQcm92aWRlck1vY2s6OkFzc2VydEh0dHBDYWxsTG9nKCBFeHBlY3RlZCA9PiBbCgogICAgIyAgICAgICAgIHsKICAgICMgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAib3BlbmlkIiwKICAgICMgICAgICAgICAgICAgImNvbnRlbnQiICA9PiAiIgogICAgIyAgICAgICAgIH0sCiAgICAjICAgICAgICAgewogICAgIyAgICAgICAgICAgICAiZW5kcG9pbnQiID0+ICJqd2tzIiwKICAgICMgICAgICAgICAgICAgImNvbnRlbnQiICA9PiAiIgogICAgIyAgICAgICAgIH0sCiAgICAjIF0pOwoKICAgICMgaXRlcmF0ZSEKICAgIGZvciBteSAkVGVzdENhc2UgKEAkVGVzdENhc2VzKSB7CiAgICAgICAgZm9yIG15ICRSZXNvdXJjZXMgKEBUZXN0UmVzb3VyY2VzKSB7CiAgICAgICAgICAgIGZvciBteSAkUmVzb3VyY2VQYXJhbU5hbWUgKEBUZXN0UmVzb3VyY2VQYXJhbU5hbWVzKSB7CiAgICAgICAgICAgICAgICBmb3IgbXkgJFNjb3BlIChAVGVzdFNjb3BlcykgewogICAgICAgICAgICAgICAgICAgIGZvciBteSAkVG9rZW5UeXBlIChAVG9rZW5UeXBlKSB7CgogICAgICAgICAgICAgICAgICAgICAgICBDbGVhbnVwKCk7CgogICAgICAgICAgICAgICAgICAgICAgICAjIHBhdGNoIHN5c2NvbmZpZyBqdXN0IGZvciB0aGlzIHByb2Nlc3MgLyByZXF1ZXN0CiAgICAgICAgICAgICAgICAgICAgICAgIFByZXBhcmVUZXN0U3lzQ29uZmlnKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJSRUZXN0Q2FzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNjb3BlICAgICAgICAgICAgID0+ICRTY29wZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlcyAgICAgICAgID0+ICRSZXNvdXJjZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVBhcmFtTmFtZSA9PiAkUmVzb3VyY2VQYXJhbU5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlbiAgICAgICAgICAgICA9PiAkVG9rZW5UeXBlLAogICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAgICAgIyB1c2UgVG9rZW5Qcm92aWRlciB0byBmZXRjaCBhIFRva2VuIGZvciB0aGUgY29uZmlndXJlZCB1bml0IHRlc3QgYWNjb3VudAoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkVGVzdENhc2UtPntHcmFudFR5cGV9IG5lICdhdXRob3JpemF0aW9uX2NvZGUnICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJFJlc3VsdCA9ICRUb2tlblByb3ZpZGVyLT5GZXRjaCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY2NvdW50TmFtZSA9PiAnX1VuaXRUZXN0MScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgb2soICRSZXN1bHQtPntTdWNjZXNzfSwgICAgICAgICAgICAgICAgICJSZXN1bHQgaXMgU3VjY2Vzcy4iICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvayggJFJlc3VsdC0+e09yaWdpbn0gZXEgJ2ZyZXNoX3Rva2VuJywgIk9yaWdpbiBpcyBmcmVzaF90b2tlbi4iICk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB0aGlzIGlzIGF1dGhvcml6YXRpb25fZmxvdywgaW5pdGlhbCB0b2tlbiBjYW4gb25seSBiZSBmZXRjaGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHdpdGggdGhlICdjb2RlJyByZWNlaXZlZCB0aHJvdWdoIHRoZSBicndvc2VyIGZsb3cKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRSZXN1bHQgPSAkVG9rZW5Qcm92aWRlci0+RmV0Y2hUb2tlbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY2NvdW50TmFtZSA9PiAnX1VuaXRUZXN0MScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZSAgICAgICAgPT4gJ0NPRkZGRUVCQUJFQ09GRkVFJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWRpcmVjdFVSTCA9PiAnaHR0cDovL3NvbWV3aGVyZS5jb20vJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvayggJFJlc3VsdC0+e1N1Y2Nlc3N9ICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvayggJFJlc3VsdC0+e09yaWdpbn0gZXEgJ2ZyZXNoX3Rva2VuJyApOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb25jZSB3ZSBoYXZlIGl0LCBpdCBjYW4gYmUgcmV0cmVpdmVkIGZyb20gY2FjaGUgYXMgdXN1YWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRSZXN1bHQgPSAkVG9rZW5Qcm92aWRlci0+RmV0Y2goCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNjb3VudE5hbWUgPT4gJ19Vbml0VGVzdDEnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9rKCAkUmVzdWx0LT57U3VjY2Vzc30sICAgICAgICAgICAiUmVzdWx0IGlzIFN1Y2Nlc3MuIiApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgb2soICRSZXN1bHQtPntPcmlnaW59IGVxICdjYWNoZScsICJPcmlnaW4gaXMgY2FjaGUiICk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICMgcGF0Y2ggdXAgRXhwZWN0ZWQgQ29udGVudCBkeW5hbWljYWxseSB3aXRoCiAgICAgICAgICAgICAgICAgICAgICAgICMgc2NvcGUsIHJlc291cmNlIHBhcmFtZXRlcnMsIGZvciB2YXJpb3VzCiAgICAgICAgICAgICAgICAgICAgICAgICMgJ3Jlc291cmNlIHBhcmFtZXRlciBuYW1lcycKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJEV4cGVjdGVkQ29udGVudCA9ICcnOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRSZXNvdXJjZXMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRSZXNvdXJjZVBhcmFtID0gJFJlc291cmNlUGFyYW1OYW1lIHx8ICdyZXNvdXJjZSc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkRXhwZWN0ZWRDb250ZW50IC49ICImJFJlc291cmNlUGFyYW09IiAuIHVyaV9lc2NhcGVfdXRmOCgkUmVzb3VyY2VzKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFNjb3BlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkRXhwZWN0ZWRDb250ZW50IC49ICImc2NvcGU9IiAuIHVyaV9lc2NhcGVfdXRmOCgkU2NvcGUpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJEV4cGVjdGVkQ29udGVudCAuPSAiJnNjb3BlPW9wZW5pZCI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICMgaW1wbCBhY3R1YWxseSBwcm9kdWNlcyAnKyogaW5zdGVhZCBvZiAnJTIwJywgZml4IHRoYXQKICAgICAgICAgICAgICAgICAgICAgICAgJEV4cGVjdGVkQ29udGVudCA9fiBzLyUyMC8rL2c7CgogICAgICAgICAgICAgICAgICAgICAgICAjIGJ1aWxkIGFuIEV4cGVjdGF0aW9uIGFycmF5IGZyb20gdGhlIFRlc3RDYXNlIHRlbXBsYXRlCiAgICAgICAgICAgICAgICAgICAgICAgICMgZm9yIHRoaXMgcGVybXV0YXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgbXkgQEV4cGVjdGVkOwogICAgICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJEV4cGVjdGF0aW9uICggJFRlc3RDYXNlLT57RXhwZWN0ZWR9LT5AKiApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQEV4cGVjdGVkLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbnRlbnQnID0+ICRFeHBlY3RhdGlvbi0+e2VuZHBvaW50fSBlcSAndG9rZW4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkRXhwZWN0YXRpb24tPntjb250ZW50fSAuICRFeHBlY3RlZENvbnRlbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRFeHBlY3RhdGlvbi0+e2NvbnRlbnR9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlbmRwb2ludCcgPT4gJEV4cGVjdGF0aW9uLT57ZW5kcG9pbnR9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcGVyYXRvcicgPT4gJEV4cGVjdGF0aW9uLT57b3BlcmF0b3J9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgT0F1dGhQcm92aWRlck1vY2s6OkFzc2VydEh0dHBDYWxsTG9nKCBFeHBlY3RlZCA9PiBcQEV4cGVjdGVkICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9OwppZiAoJEApIHsKICAgIHByaW50IFNUREVSUiAkQCAuICJcbiI7CiAgICBvayggMCwgInNob3VsZCBub3QgdGhyb3cuIiApOwp9CgojIG92ZXIgYW5kIG91dApkb25lX3Rlc3Rpbmc7CgpDbGVhbnVwKCk7CgokREJPYmplY3QtPlJvbGxiYWNrKCk7CgojIHRlYXIgZG93biBmYWtlIHNlcnZlcgpraWxsKCAnVEVSTScsICRPQXV0aFByb3ZpZGVyTW9jazo6Q2hpbGRQSUQgKTsKd2FpdHBpZCggJE9BdXRoUHJvdmlkZXJNb2NrOjpDaGlsZFBJRCwgMCApOwoKIyBwYXRjaCBzeXNjb25maWcganVzdCBmb3IgdGhpcyBwcm9jZXNzIC8gcmVxdWVzdAoKc3ViIFByZXBhcmVUZXN0U3lzQ29uZmlnIHsKCiAgICBteSAlUGFyYW0gPSBAXzsKCiAgICAjIGNyZWF0ZSBwcm9maWxlCgogICAgbXkgJFlBTUxPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6WUFNTCcpOwoKICAgIG15ICRWYWxpZCA9IDE7CgogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiU0VMRUNUIGlkIEZST00gb2lkY19mdW5jdGlvbmFsX2FjY291bnRzIFdIRVJFIG5hbWUgPSAnX1VuaXRUZXN0MScgIiwKCiAgICAgICAgIyAgICAgICAgICAgIEJpbmQgID0+IFsgXCRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e05hbWV9IF0sCiAgICAgICAgIyAgICAgICAgICAgIExpbWl0ID0+IDEKICAgICk7CgogICAgbXkgKCRJRCkgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKTsKCiAgICBpZiAoJElEKSB7CiAgICAgICAgJERCT2JqZWN0LT5EbyggU1FMID0+ICJERUxFVEUgRlJPTSBvYXV0aDJfdG9rZW5fc3RvcmFnZSBXSEVSRSBvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudF9pZCA9ICIgLiAkSUQgKTsKICAgIH0KICAgICREQk9iamVjdC0+RG8oIFNRTCA9PiAiREVMRVRFIEZST00gb2lkY19mdW5jdGlvbmFsX2FjY291bnRzIFdIRVJFIG5hbWUgPSAnX1VuaXRUZXN0MScgIiApOwogICAgJERCT2JqZWN0LT5EbyggU1FMID0+ICJERUxFVEUgRlJPTSBvaWRjX3Byb2ZpbGVzIFdIRVJFIG5hbWUgPSAnIiAuICRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e05hbWV9IC4gIiciICk7CgogICAgJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgPT4gIklOU0VSVCBJTlRPIG9pZGNfcHJvZmlsZXMKICAgICAgICAgICAgICAgICggbmFtZSxjbGllbnRfaWQsY2xpZW50X1NlY3JldCxyZWRpcmVjdF91cmksb3BlbmlkX2NvbmZpZywKICAgICAgICAgICAgICAgIHNzbF9vcHRpb25zLG1pc2MsdHRsLHZhbGlkX2lkLAogICAgICAgICAgICAgICAgY3JlYXRlX3RpbWUsY3JlYXRlX2J5LGNoYW5nZV90aW1lLGNoYW5nZV9ieSApCiAgICAgICAgICAgICAgICBWQUxVRVMgKD8sID8sID8sID8sPywgPywgPywgPywgPywgY3VycmVudF90aW1lc3RhbXAsIDEsIGN1cnJlbnRfdGltZXN0YW1wLCAxKSIsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkT3BlbklEQ29uZmlnLT57UHJvdmlkZXJTZXR0aW5nc30tPntOYW1lfSwKICAgICAgICAgICAgXCRPcGVuSURDb25maWctPntDbGllbnRTZXR0aW5nc30tPntDbGllbnRJRH0sCiAgICAgICAgICAgIFwkT3BlbklEQ29uZmlnLT57Q2xpZW50U2V0dGluZ3N9LT57Q2xpZW50U2VjcmV0fSwKICAgICAgICAgICAgXCRPcGVuSURDb25maWctPntDbGllbnRTZXR0aW5nc30tPntSZWRpcmVjdFVSSX0gLy8gJycsCiAgICAgICAgICAgIFwkT3BlbklEQ29uZmlnLT57UHJvdmlkZXJTZXR0aW5nc30tPntPcGVuSURDb25maWd1cmF0aW9ufSwKICAgICAgICAgICAgXCRZQU1MT2JqZWN0LT5EdW1wKCBEYXRhID0+ICRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e1NTTE9wdGlvbnN9ICksCiAgICAgICAgICAgIFwkWUFNTE9iamVjdC0+RHVtcCggRGF0YSA9PiAkT3BlbklEQ29uZmlnLT57TWlzY30gLy8ge30gKSwKICAgICAgICAgICAgXCRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e1RUTH0sCiAgICAgICAgICAgIFwkVmFsaWQsCiAgICAgICAgXSwKICAgICk7CgogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCAgPT4gIlNFTEVDVCBpZCBGUk9NIG9pZGNfcHJvZmlsZXMgV0hFUkUgbmFtZSA9ID8gIiwKICAgICAgICBCaW5kID0+IFsgXCRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e05hbWV9IF0sCgogICAgICAgICMgICAgICAgICAgICBMaW1pdCA9PiAxCiAgICApOwoKICAgICgkSUQpID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCk7CgogICAgIyBjcmVhdGUgZnVuY3Rpb25hbCBhY2NvdW50CgogICAgbXkgJEdyYW50VHlwZSAgICAgICAgID0gJFBhcmFte0dyYW50VHlwZX0gICAgICAgICB8fCAnY2xpZW50X2NyZWRlbnRpYWxzJzsKICAgIG15ICRTY29wZSAgICAgICAgICAgICA9ICRQYXJhbXtTY29wZX0gICAgICAgICAgICAgfHwgJ29wZW5pZCc7CiAgICBteSAkUmVzb3VyY2VzICAgICAgICAgPSAkUGFyYW17UmVzb3VyY2VzfSAgICAgICAgIHx8ICcnOwogICAgbXkgJFJlc291cmNlUGFyYW1OYW1lID0gJFBhcmFte1Jlc291cmNlUGFyYW1OYW1lfSB8fCAncmVzb3VyY2UnOwogICAgbXkgJFRva2VuVHlwZSAgICAgICAgID0gJFBhcmFte1Rva2VufSAgICAgICAgICAgICB8fCAnYWNjZXNzX3Rva2VuJzsKCiAgICAkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCA9PiAiSU5TRVJUIElOVE8gb2lkY19mdW5jdGlvbmFsX2FjY291bnRzCiAgICAgICAgICAgICAgICAobmFtZSwgb2lkY19wcm9maWxlX2lkLGdyYW50X3R5cGUsc2NvcGVzLHJlc291cmNlcywKICAgICAgICAgICAgICAgIHJlc291cmNlX3BhcmFtX25hbWUsdXNlcm5hbWUscGFzc3dkLCB0b2tlbl90eXBlLCB2YWxpZF9pZCwKICAgICAgICAgICAgICAgIGNyZWF0ZV90aW1lLGNyZWF0ZV9ieSxjaGFuZ2VfdGltZSxjaGFuZ2VfYnkgKQogICAgICAgICAgICAgICAgVkFMVUVTICggJ19Vbml0VGVzdDEnLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCBjdXJyZW50X3RpbWVzdGFtcCwgMSwgY3VycmVudF90aW1lc3RhbXAsIDEpIiwKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRJRCwKICAgICAgICAgICAgXCRHcmFudFR5cGUsCiAgICAgICAgICAgIFwkU2NvcGUsCiAgICAgICAgICAgIFwkUmVzb3VyY2VzLAogICAgICAgICAgICBcJFJlc291cmNlUGFyYW1OYW1lLAogICAgICAgICAgICBcJFBhcmFte1VzZXJuYW1lfSwKICAgICAgICAgICAgXCRQYXJhbXtQYXNzd29yZH0sCiAgICAgICAgICAgIFwkVG9rZW5UeXBlLAogICAgICAgICAgICBcJFZhbGlkLAogICAgICAgIF0sCiAgICApOwoKICAgICMgIyBjb25maWd1cmUgYW4gT0lEQyBQcm9maWxlIGZvciB0aGUgdW5pdCB0ZXN0CiAgICAjICRDb25maWdPYmplY3QtPlNldCgKICAgICMgICAgIEtleSAgID0+ICdPcGVuSURDb25uZWN0OjpPSUNEUHJvdmlkZXI6Ol9Vbml0VGVzdDEnLAogICAgIyAgICAgVmFsdWUgPT4gJE9wZW5JRENvbmZpZywKICAgICMgKTsKCiAgICAjICMgY29uZmlndXJlIGEgZnVuY3Rpb25hbCBhY2NvdW50IHRoYXQgdXNlcyBhYm92ZSBjb25maWcKICAgICMgJENvbmZpZ09iamVjdC0+U2V0KAogICAgIyAgICAgS2V5ICAgPT4gJ09wZW5JRENvbm5lY3Q6OkZ1bmN0aW9uYWxBY2NvdW50cycsCiAgICAjICAgICBWYWx1ZSA9PiB7CiAgICAjICAgICAgICAgJ19Vbml0VGVzdDEnID0+IHsKCiAgICAjICAgICAgICAgICAgIE9wZW5JRENvbmZpZyAgICAgID0+ICdPcGVuSURDb25uZWN0OjpPSUNEUHJvdmlkZXI6Ol9Vbml0VGVzdDEnLAogICAgIyAgICAgICAgICAgICBHcmFudFR5cGUgICAgICAgICA9PiAkUGFyYW17R3JhbnRUeXBlfSB8fCAnY2xpZW50X2NyZWRlbnRpYWxzJywKICAgICMgICAgICAgICAgICAgU2NvcGUgICAgICAgICAgICAgPT4gJFBhcmFte1Njb3BlfSAgICAgfHwgJ29wZW5pZCcsCiAgICAjICAgICAgICAgICAgIFJlc291cmNlcyAgICAgICAgID0+ICRQYXJhbXtSZXNvdXJjZXN9LAogICAgIyAgICAgICAgICAgICBSZXNvdXJjZVBhcmFtTmFtZSA9PiAkUGFyYW17UmVzb3VyY2VQYXJhbU5hbWV9IHx8ICdyZXNvdXJjZScsCiAgICAjICAgICAgICAgICAgIFRva2VuICAgICAgICAgICAgID0+ICRQYXJhbXtUb2tlbn0gICAgICAgICAgICAgfHwgJ2FjY2Vzc190b2tlbicsCiAgICAjICAgICAgICAgICAgIFVzZXJuYW1lICAgICAgICAgID0+ICRQYXJhbXtVc2VybmFtZX0sCiAgICAjICAgICAgICAgICAgIFBhc3N3b3JkICAgICAgICAgID0+ICRQYXJhbXtQYXNzd29yZH0sCiAgICAjICAgICAgICAgfQogICAgIyAgICAgfSwKICAgICMgKTsKCiAgICByZXR1cm47Cn0KCnN1YiBDbGVhbnVwIHsKCiAgICAjIGNsZWFudXAgY2FjaGUgYW5kIGRiCiAgICAkVG9rZW5SZXBvc2l0b3J5LT5EZWxldGVUb2tlbigKICAgICAgICBBY2NvdW50TmFtZSA9PiAnX1VuaXRUZXN0MScsCiAgICApOwoKICAgIENsZWFudXBDYWNoZSgpOwoKICAgIHJldHVybjsKfQoKc3ViIENsZWFudXBDYWNoZSB7CgogICAgJFRva2VuUHJvdmlkZXItPkVtcHR5Q2FjaGUoCiAgICAgICAgQWNjb3VudE5hbWUgPT4gJ19Vbml0VGVzdDEnLAogICAgKTsKCiAgICByZXR1cm47Cn0K</File>
        <File Location="scripts/test/OAuthToken.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2UgdjUuMjQ7CnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgojIGNvcmUgbW9kdWxlcwp1c2UgRmluZEJpbiBxdygkQmluKTsKCiMgQ1BBTiBtb2R1bGVzCnVzZSBUZXN0Mjo6VjA7CnVzZSBDcnlwdDo6SldUIHF3KGVuY29kZV9qd3QgZGVjb2RlX2p3dCk7CnVzZSBDcnlwdDo6UEs6OlJTQTsKdXNlIFBsYWNrOjpSdW5uZXI7CnVzZSBQbGFjazo6UmVxdWVzdDsKdXNlIFRyeTo6VGlueSBxdyh0cnkgY2F0Y2gpOwp1c2UgSlNPTjsKCiMgT1RPQk8gbW9kdWxlcwp1c2UgS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpSZWdpc3Rlck9NOyAgICAjIHNldCB1cCAkS2VybmVsOjpPTQoKbXkgJEN1cnJlbnRUaW1lID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyktPlRvRXBvY2goKTsKCm15ICRNYWluT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKTsKJE1haW5PYmplY3QtPlJlcXVpcmUoIiRCaW4vT0F1dGhQcm92aWRlck1vY2siKTsKCiRPQXV0aFByb3ZpZGVyTW9jazo6S2lkSUQgfHwgJE9BdXRoUHJvdmlkZXJNb2NrOjpQcml2YXRlS2V5IHx8IDA7ICAgICMgcHJldmVudCB3YXJuaW5ncwoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBtYWluIHRlc3QKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMgd2FpdCBmb3IgdGhlIGZha2UgYXV0aG9yaXphdGlvbiBzZXJ2ZXIgdG8gY29tZSB1cApzbGVlcCAxOwoKbXkgJENvbmZpZ09iamVjdCAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKbXkgJE9JRENDb25maWd1cmF0aW9uID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkNvbmZpZ3VyYXRpb24nKTsKbXkgJFRva2VuT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuJyk7CgojIHRoZSBPcGVuSURDb25maWcgd2Ugd2lsbCB1c2UuIFRoaXMgd291bGQgbm9ybWFsbHkgY29tZSBmcm9tIFN5c0NvbmZpZwpteSAkT3BlbklEQ29uZmlnID0gT0F1dGhQcm92aWRlck1vY2s6OkdldFRlc3RPcGVuSURDb25maWcoKTsKCiMgbWFrZSBzdXJlIGNhY2hlIGlzIGNsZWFuIGZvciB0ZXN0aW5nCiRPSURDQ29uZmlndXJhdGlvbi0+R2V0UHJvdmlkZXJEYXRhKAogICAgT3BlbklEQ29uZmlnID0+ICRPcGVuSURDb25maWcsCiAgICBOb0NhY2hlICAgICAgPT4gMSwKKTsKCm15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwokREJPYmplY3QtPkNvbm5lY3QoKTsKJERCT2JqZWN0LT5CZWdpbldvcmsoKTsKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgY3JlYXRlIGEgSldUIHRvIHRlc3QsIHNpZ24gdXNpbmcgb3VyIHByaXZhdGUgUlNBIGtleSBmcm9tIGFib3ZlCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpteSAkVG9rZW4gPSBlbmNvZGVfand0KAogICAgcGF5bG9hZCAgICAgICA9PiBPQXV0aFByb3ZpZGVyTW9jazo6UGF5bG9hZCgpLAogICAgYWxnICAgICAgICAgICA9PiAnUlMyNTYnLAogICAga2V5ICAgICAgICAgICA9PiAkT0F1dGhQcm92aWRlck1vY2s6OlByaXZhdGVLZXksCiAgICBleHRyYV9oZWFkZXJzID0+IHsga2lkID0+ICRPQXV0aFByb3ZpZGVyTW9jazo6S2lkSUQgfSwKKTsKCiMgbm93IHZhbGlkYXRlIHRoaXMgdG9rZW4sIHdoaWNoIHdpbGwgdGFsayB0byBvdXIgZmFrZSBhdXRob3JpemF0aW9uIHNlcnZlcgojIGFuZCBmZXRjaCB0aGUgcHVibGljIGtleSB0byB2YWxpZGF0ZSB0aGUgc2lnbmF0dXJlCgpteSAkUmVzdWx0ID0gJFRva2VuT2JqZWN0LT5WYWxpZGF0ZSgKICAgIFRva2VuICAgICAgICA9PiAkVG9rZW4sCiAgICBPcGVuSURDb25maWcgPT4gJE9wZW5JRENvbmZpZywKKTsKCm9rKCAkUmVzdWx0LT57U3VjY2Vzc30sICdUb2tlbiB2YWxpZC4nICk7CgokUmVzdWx0ID0gJFRva2VuT2JqZWN0LT5WYWxpZGF0ZSgKICAgIFRva2VuICAgICAgICAgID0+ICRUb2tlbiwKICAgIE9wZW5JRENvbmZpZyAgID0+ICRPcGVuSURDb25maWcsCiAgICBFeHBlY3RlZFNjb3BlcyA9PiAnb3BlbmlkJywKKTsKCm9rKCAkUmVzdWx0LT57U3VjY2Vzc30sICdUb2tlbiBzY29wZSBpbmNsdWRlcyBvcGVuaWQnICk7CgokUmVzdWx0ID0gJFRva2VuT2JqZWN0LT5WYWxpZGF0ZSgKICAgIFRva2VuICAgICAgICAgID0+ICRUb2tlbiwKICAgIE9wZW5JRENvbmZpZyAgID0+ICRPcGVuSURDb25maWcsCiAgICBFeHBlY3RlZFNjb3BlcyA9PiAnb3BlbmlkIHJvbGVzJywKKTsKCm9rKCAkUmVzdWx0LT57U3VjY2Vzc30sICdUb2tlbiBzY29wZSBpbmNsdWRlcyBvcGVuaWQgYW5kIHJvbGVzJyApOwoKJFJlc3VsdCA9ICRUb2tlbk9iamVjdC0+VmFsaWRhdGUoCiAgICBUb2tlbiAgICAgICAgICA9PiAkVG9rZW4sCiAgICBPcGVuSURDb25maWcgICA9PiAkT3BlbklEQ29uZmlnLAogICAgRXhwZWN0ZWRTY29wZXMgPT4gJ29wZW5pZDInLAopOwoKb2soICEkUmVzdWx0LT57U3VjY2Vzc30sICdUb2tlbiBzY29wZSBkb2VzIG5vdCBpbmNsdWRlIG9wZW5pZDInICk7CgokUmVzdWx0ID0gJFRva2VuT2JqZWN0LT5WYWxpZGF0ZSgKICAgIFRva2VuICAgICAgICAgICA9PiAkVG9rZW4sCiAgICBPcGVuSURDb25maWcgICAgPT4gJE9wZW5JRENvbmZpZywKICAgIEF1dGhvcml6ZWRQYXJ0eSA9PiAnb3RvYm8nLAopOwoKb2soICRSZXN1bHQtPntTdWNjZXNzfSwgJ0F1dGhvcml6ZWQgcGFydHkgaXMgb3RvYm8nICk7CgokUmVzdWx0ID0gJFRva2VuT2JqZWN0LT5WYWxpZGF0ZSgKICAgIFRva2VuICAgICAgICAgICA9PiAkVG9rZW4sCiAgICBPcGVuSURDb25maWcgICAgPT4gJE9wZW5JRENvbmZpZywKICAgIEF1dGhvcml6ZWRQYXJ0eSA9PiAndW5rbm93bicsCik7Cm9rKCAhJFJlc3VsdC0+e1N1Y2Nlc3N9LCAnQXVyaG9yaXplZCBwYXJ0eSBpcyBub3QgdW5rbm93bi4nICk7CgokUmVzdWx0ID0gJFRva2VuT2JqZWN0LT5WYWxpZGF0ZSgKICAgIFRva2VuICAgICAgICAgICAgPT4gJFRva2VuLAogICAgT3BlbklEQ29uZmlnICAgICA9PiAkT3BlbklEQ29uZmlnLAogICAgRXhwZWN0ZWRBdWRpZW5jZSA9PiAnb3RvYm8nLAopOwpvayggJFJlc3VsdC0+e1N1Y2Nlc3N9LCAnQUF1ZGllbmNlIGluY2x1ZGVzIG90b2JvJyApOwoKJFJlc3VsdCA9ICRUb2tlbk9iamVjdC0+VmFsaWRhdGUoCiAgICBUb2tlbiAgICAgICAgICAgID0+ICRUb2tlbiwKICAgIE9wZW5JRENvbmZpZyAgICAgPT4gJE9wZW5JRENvbmZpZywKICAgIEV4cGVjdGVkQXVkaWVuY2UgPT4gJ290b2JvMicsCik7Cm9rKCAhJFJlc3VsdC0+e1N1Y2Nlc3N9LCAnQUF1ZGllbmNlIGRvZXMgbm90IGluY2x1ZGUgb3RvYm8yJyApOwoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBhc3NlcnQgb24gdGhlIHNweSBsb2cKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCk9BdXRoUHJvdmlkZXJNb2NrOjpBc3NlcnRIdHRwQ2FsbExvZygKICAgIEV4cGVjdGVkID0+IFsKICAgICAgICB7CiAgICAgICAgICAgICJlbmRwb2ludCIgPT4gIm9wZW5pZCIsCiAgICAgICAgICAgICJjb250ZW50IiAgPT4gIiIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgImVuZHBvaW50IiA9PiAiandrcyIsCiAgICAgICAgICAgICJjb250ZW50IiAgPT4gIiIKICAgICAgICB9LAogICAgXQopOwoKIyBvdmVyIGFuZCBvdXQKZG9uZV90ZXN0aW5nOwoKJERCT2JqZWN0LT5Sb2xsYmFjaygpOwoKIyB0ZWFyIGRvd24gZmFrZSBzZXJ2ZXIKa2lsbCggJ1RFUk0nLCAkT0F1dGhQcm92aWRlck1vY2s6OkNoaWxkUElEICk7CndhaXRwaWQoICRPQXV0aFByb3ZpZGVyTW9jazo6Q2hpbGRQSUQsIDAgKTsKCiMgcGF0Y2ggc3lzY29uZmlnIGp1c3QgZm9yIHRoaXMgcHJvY2VzcyAvIHJlcXVlc3QKCnN1YiBQcmVwYXJlVGVzdFN5c0NvbmZpZyB7CgogICAgIyBubyBvcAogICAgcmV0dXJuOwp9Cg==</File>
        <File Location="scripts/test/OAuthAuthUrl.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2UgdjUuMjQ7CnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgojIGNvcmUgbW9kdWxlcwp1c2UgRmluZEJpbiBxdygkQmluKTsKCiMgQ1BBTiBtb2R1bGVzCnVzZSBUZXN0Mjo6VjA7CnVzZSBDcnlwdDo6SldUIHF3KGVuY29kZV9qd3QgZGVjb2RlX2p3dCk7CnVzZSBDcnlwdDo6UEs6OlJTQTsKdXNlIFBsYWNrOjpSdW5uZXI7CnVzZSBQbGFjazo6UmVxdWVzdDsKdXNlIFRyeTo6VGlueSBxdyh0cnkgY2F0Y2gpOwp1c2UgSlNPTjsKdXNlIFVSSTo6RXNjYXBlIHF3KHVyaV9lc2NhcGVfdXRmOCk7CgojIE9UT0JPIG1vZHVsZXMKdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJPTTsgICAgIyBzZXQgdXAgJEtlcm5lbDo6T00KCm15ICRNYWluT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKTsKJE1haW5PYmplY3QtPlJlcXVpcmUoIiRCaW4vT0F1dGhQcm92aWRlck1vY2siKTsKCm15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwokREJPYmplY3QtPkNvbm5lY3QoKTsKCm15ICRDb25maWdPYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7Cm15ICRUb2tlblByb3ZpZGVyICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlblByb3ZpZGVyJyk7Cm15ICRPSURDQ29uZmlndXJhdGlvbiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpDb25maWd1cmF0aW9uJyk7CgokREJPYmplY3QtPkJlZ2luV29yaygpOwoKbXkgJEJhc2VVUkwgICAgID0gJ2h0dHA6Ly9sb2NhbGhvc3Q6MjAwNy9yZWFsbXMvbWFzdGVyL3Byb3RvY29sL29wZW5pZC1jb25uZWN0L2F1dGgnOwpteSAkUmVkaXJlY3RVUkkgPSAnaHR0cHM6Ly95b3VyLm90b2JvLnVybC9vdG9iby9pbmRleC5wbD9BY3Rpb249QWRtaW5PQXV0aFRva2VuU3RvcmUmU3ViYWN0aW9uPU9BdXRoJzsKCm15ICRUZXN0Q2FzZXMgPSBbCiAgICB7CiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICB9LAogICAgICAgIEV4cGVjdGF0aW9uID0+ICc/cmVzcG9uc2VfdHlwZT1jb2RlJnNjb3BlPW9wZW5pZCZjbGllbnRfaWQ9b3RvYm8mc3RhdGU9JywKICAgIH0sCiAgICB7CiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgU2NvcGUgPT4gJ29wZW5pZCBlbWFpbCBwcm9maWxlIGh0dHA6Ly93ZWlyZHNjb3BlLmNvbScsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RhdGlvbiA9PiAnP3Jlc3BvbnNlX3R5cGU9Y29kZSZzY29wZT1vcGVuaWQlMjBlbWFpbCUyMHByb2ZpbGUlMjBodHRwJTNBJTJGJTJGd2VpcmRzY29wZS5jb20mY2xpZW50X2lkPW90b2JvJnN0YXRlPScsCiAgICB9LAogICAgewogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIFJlc291cmNlcyA9PiAnc29tZWFwaSBodHRwOi8vd2VpcmRyZXNvdXJjZS5jb20nLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0YXRpb24gPT4gJz9yZXNwb25zZV90eXBlPWNvZGUmc2NvcGU9b3BlbmlkJmNsaWVudF9pZD1vdG9ibyZyZXNvdXJjZT1zb21lYXBpJTIwaHR0cCUzQSUyRiUyRndlaXJkcmVzb3VyY2UuY29tJnN0YXRlPScsCiAgICB9LAogICAgewogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIFRva2VuID0+ICdpZF90b2tlbicsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RhdGlvbiA9PiAnP3Jlc3BvbnNlX3R5cGU9Y29kZSZzY29wZT1vcGVuaWQmY2xpZW50X2lkPW90b2JvJnN0YXRlPScsCiAgICB9LAogICAgewogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIExvZ2luID0+ICdzb21lb25lQHNvbWVkb21haW4uY29tJywKICAgICAgICB9LAogICAgICAgIEV4cGVjdGF0aW9uID0+ICc/cmVzcG9uc2VfdHlwZT1jb2RlJnNjb3BlPW9wZW5pZCZjbGllbnRfaWQ9b3RvYm8mbG9naW5faGludD1zb21lb25lJTQwc29tZWRvbWFpbi5jb20mc3RhdGU9JywKICAgIH0sCiAgICB7CiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgUHJvbXB0ID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RhdGlvbiA9PiAnP3Jlc3BvbnNlX3R5cGU9Y29kZSZzY29wZT1vcGVuaWQmY2xpZW50X2lkPW90b2JvJnByb21wdD1sb2dpbiZzdGF0ZT0nLAogICAgfSwKXTsKCm15ICRPcGVuSURDb25maWcgPSBPQXV0aFByb3ZpZGVyTW9jazo6R2V0VGVzdE9wZW5JRENvbmZpZygpOwoKZXZhbCB7CgogICAgZm9yIG15ICRUZXN0Q2FzZSAoQCRUZXN0Q2FzZXMpIHsKCiAgICAgICAgUHJlcGFyZVRlc3RTeXNDb25maWcoICRUZXN0Q2FzZS0+e0NvbmZpZ30tPiUqICk7CgogICAgICAgIG15ICRSYW5kb21TdHJpbmcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpLT5HZW5lcmF0ZVJhbmRvbVN0cmluZygKICAgICAgICAgICAgTGVuZ3RoID0+IDIyCiAgICAgICAgKTsKCiAgICAgICAgbXkgJEV4cGVjdGVkID0gJEJhc2VVUkwgLiAkVGVzdENhc2UtPntFeHBlY3RhdGlvbn07CiAgICAgICAgJEV4cGVjdGVkIC49ICRSYW5kb21TdHJpbmc7CiAgICAgICAgJEV4cGVjdGVkIC49ICcmcmVkaXJlY3RfdXJpPSc7CiAgICAgICAgJEV4cGVjdGVkIC49IHVyaV9lc2NhcGVfdXRmOCgkUmVkaXJlY3RVUkkpOwoKICAgICAgICBteSAkQXV0aFVSTCA9ICRUb2tlblByb3ZpZGVyLT5HZXRBdXRoVVJMKAogICAgICAgICAgICBBY2NvdW50TmFtZSA9PiAnX1VuaXRUZXN0MScsCiAgICAgICAgICAgIFJlZGlyZWN0VVJJID0+ICRSZWRpcmVjdFVSSSwKICAgICAgICAgICAgU3RhdGUgICAgICAgPT4gJFJhbmRvbVN0cmluZywKICAgICAgICAgICAgTG9naW4gICAgICAgPT4gJFRlc3RDYXNlLT57Q29uZmlnfS0+e0xvZ2lufSwKICAgICAgICAgICAgUHJvbXB0ICAgICAgPT4gJFRlc3RDYXNlLT57Q29uZmlnfS0+e1Byb21wdH0sCiAgICAgICAgKTsKCiAgICAgICAgb2soICRBdXRoVVJMIGVxICRFeHBlY3RlZCwgIiRBdXRoVVJMIGVxICRFeHBlY3RlZCIgKTsKCiAgICB9Cn07CmlmICgkQCkgewogICAgcHJpbnQgU1RERVJSICRAIC4gIlxuIjsKICAgIG9rKCAwLCAnc2hvdWxkIG5vdCB0aHJvdycgKTsKfQoKJERCT2JqZWN0LT5Sb2xsYmFjaygpOwoKZG9uZV90ZXN0aW5nOwoKIyB0ZWFyIGRvd24gZmFrZSBzZXJ2ZXIKa2lsbCggJ1RFUk0nLCAkT0F1dGhQcm92aWRlck1vY2s6OkNoaWxkUElEICk7CndhaXRwaWQoICRPQXV0aFByb3ZpZGVyTW9jazo6Q2hpbGRQSUQsIDAgKTsKCiMgcGF0Y2ggc3lzY29uZmlnIGp1c3QgZm9yIHRoaXMgcHJvY2VzcyAvIHJlcXVlc3QKCnN1YiBQcmVwYXJlVGVzdFN5c0NvbmZpZyB7CgogICAgbXkgJVBhcmFtID0gQF87CgogICAgIyBjcmVhdGUgcHJvZmlsZQoKICAgIG15ICRZQU1MT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OllBTUwnKTsKCiAgICBteSAkVmFsaWQgPSAxOwoKICAgICREQk9iamVjdC0+RG8oIFNRTCA9PiAiREVMRVRFIEZST00gb2lkY19mdW5jdGlvbmFsX2FjY291bnRzIFdIRVJFIG5hbWUgPSAnX1VuaXRUZXN0MScgIiApOwogICAgJERCT2JqZWN0LT5EbyggU1FMID0+ICJERUxFVEUgRlJPTSBvaWRjX3Byb2ZpbGVzIFdIRVJFIG5hbWUgPSAnIiAuICRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e05hbWV9IC4gIiciICk7CgogICAgJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgPT4gIklOU0VSVCBJTlRPIG9pZGNfcHJvZmlsZXMKICAgICAgICAgICAgICAgICggbmFtZSxjbGllbnRfaWQsY2xpZW50X1NlY3JldCxyZWRpcmVjdF91cmksb3BlbmlkX2NvbmZpZywKICAgICAgICAgICAgICAgIHNzbF9vcHRpb25zLG1pc2MsdHRsLHZhbGlkX2lkLAogICAgICAgICAgICAgICAgY3JlYXRlX3RpbWUsY3JlYXRlX2J5LGNoYW5nZV90aW1lLGNoYW5nZV9ieSApCiAgICAgICAgICAgICAgICBWQUxVRVMgKD8sID8sID8sID8sPywgPywgPywgPywgPywgY3VycmVudF90aW1lc3RhbXAsIDEsIGN1cnJlbnRfdGltZXN0YW1wLCAxKSIsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkT3BlbklEQ29uZmlnLT57UHJvdmlkZXJTZXR0aW5nc30tPntOYW1lfSwKICAgICAgICAgICAgXCRPcGVuSURDb25maWctPntDbGllbnRTZXR0aW5nc30tPntDbGllbnRJRH0sCiAgICAgICAgICAgIFwkT3BlbklEQ29uZmlnLT57Q2xpZW50U2V0dGluZ3N9LT57Q2xpZW50U2VjcmV0fSwKICAgICAgICAgICAgXCRPcGVuSURDb25maWctPntDbGllbnRTZXR0aW5nc30tPntSZWRpcmVjdFVSSX0gLy8gJycsCiAgICAgICAgICAgIFwkT3BlbklEQ29uZmlnLT57UHJvdmlkZXJTZXR0aW5nc30tPntPcGVuSURDb25maWd1cmF0aW9ufSwKICAgICAgICAgICAgXCRZQU1MT2JqZWN0LT5EdW1wKCBEYXRhID0+ICRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e1NTTE9wdGlvbnN9ICksCiAgICAgICAgICAgIFwkWUFNTE9iamVjdC0+RHVtcCggRGF0YSA9PiAkT3BlbklEQ29uZmlnLT57TWlzY30gLy8ge30gKSwKICAgICAgICAgICAgXCRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e1RUTH0sCiAgICAgICAgICAgIFwkVmFsaWQsCiAgICAgICAgXSwKICAgICk7CgogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCAgPT4gIlNFTEVDVCBpZCBGUk9NIG9pZGNfcHJvZmlsZXMgV0hFUkUgbmFtZSA9ID8gIiwKICAgICAgICBCaW5kID0+IFsgXCRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e05hbWV9IF0sCgogICAgICAgICMgICAgICAgICAgICBMaW1pdCA9PiAxCiAgICApOwoKICAgIG15ICgkSUQpID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCk7CgogICAgIyBjcmVhdGUgZnVuY3Rpb25hbCBhY2NvdW50CgogICAgbXkgJEdyYW50VHlwZSAgICAgICAgID0gJFBhcmFte0dyYW50VHlwZX0gICAgICAgICB8fCAnYXV0aG9yaXphdGlvbl9jb2RlJzsKICAgIG15ICRTY29wZSAgICAgICAgICAgICA9ICRQYXJhbXtTY29wZX0gICAgICAgICAgICAgfHwgJ29wZW5pZCc7CiAgICBteSAkUmVzb3VyY2VzICAgICAgICAgPSAkUGFyYW17UmVzb3VyY2VzfSAgICAgICAgIHx8ICcnOwogICAgbXkgJFJlc291cmNlUGFyYW1OYW1lID0gJFBhcmFte1Jlc291cmNlUGFyYW1OYW1lfSB8fCAncmVzb3VyY2UnOwogICAgbXkgJFRva2VuVHlwZSAgICAgICAgID0gJFBhcmFte1Rva2VufSAgICAgICAgICAgICB8fCAnYWNjZXNzX3Rva2VuJzsKCiAgICBwcmludCBTVERFUlIgIlRPS0VOVFlQRTogJFRva2VuVHlwZVxuIjsKCiAgICAkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCA9PiAiSU5TRVJUIElOVE8gb2lkY19mdW5jdGlvbmFsX2FjY291bnRzCiAgICAgICAgICAgICAgICAobmFtZSwgb2lkY19wcm9maWxlX2lkLGdyYW50X3R5cGUsc2NvcGVzLHJlc291cmNlcywKICAgICAgICAgICAgICAgIHJlc291cmNlX3BhcmFtX25hbWUsdXNlcm5hbWUscGFzc3dkLCB0b2tlbl90eXBlLCB2YWxpZF9pZCwKICAgICAgICAgICAgICAgIGNyZWF0ZV90aW1lLGNyZWF0ZV9ieSxjaGFuZ2VfdGltZSxjaGFuZ2VfYnkgKQogICAgICAgICAgICAgICAgVkFMVUVTICggJ19Vbml0VGVzdDEnLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCBjdXJyZW50X3RpbWVzdGFtcCwgMSwgY3VycmVudF90aW1lc3RhbXAsIDEpIiwKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRJRCwKICAgICAgICAgICAgXCRHcmFudFR5cGUsCiAgICAgICAgICAgIFwkU2NvcGUsCiAgICAgICAgICAgIFwkUmVzb3VyY2VzLAogICAgICAgICAgICBcJFJlc291cmNlUGFyYW1OYW1lLAogICAgICAgICAgICBcJFBhcmFte1VzZXJuYW1lfSwKICAgICAgICAgICAgXCRQYXJhbXtQYXNzd29yZH0sCiAgICAgICAgICAgIFwkVG9rZW5UeXBlLAogICAgICAgICAgICBcJFZhbGlkLAogICAgICAgIF0sCiAgICApOwoKICAgICMgIyBjb25maWd1cmUgYW4gT0lEQyBQcm9maWxlIGZvciB0aGUgdW5pdCB0ZXN0CiAgICAjICRDb25maWdPYmplY3QtPlNldCgKICAgICMgICAgIEtleSAgID0+ICdPcGVuSURDb25uZWN0OjpPSUNEUHJvdmlkZXI6Ol9Vbml0VGVzdDEnLAogICAgIyAgICAgVmFsdWUgPT4gJE9wZW5JRENvbmZpZywKICAgICMgKTsKCiAgICAjICMgY29uZmlndXJlIGEgZnVuY3Rpb25hbCBhY2NvdW50IHRoYXQgdXNlcyBhYm92ZSBjb25maWcKICAgICMgJENvbmZpZ09iamVjdC0+U2V0KAogICAgIyAgICAgS2V5ICAgPT4gJ09wZW5JRENvbm5lY3Q6OkZ1bmN0aW9uYWxBY2NvdW50cycsCiAgICAjICAgICBWYWx1ZSA9PiB7CiAgICAjICAgICAgICAgJ19Vbml0VGVzdDEnID0+IHsKCiAgICAjICAgICAgICAgICAgIE9wZW5JRENvbmZpZyAgICAgID0+ICdPcGVuSURDb25uZWN0OjpPSUNEUHJvdmlkZXI6Ol9Vbml0VGVzdDEnLAogICAgIyAgICAgICAgICAgICBHcmFudFR5cGUgICAgICAgICA9PiAkUGFyYW17R3JhbnRUeXBlfSAgICAgICAgIHx8ICdhdXRob3JpemF0aW9uX2NvZGUnLAogICAgIyAgICAgICAgICAgICBTY29wZSAgICAgICAgICAgICA9PiAkUGFyYW17U2NvcGV9ICAgICAgICAgICAgIHx8ICdvcGVuaWQnLAogICAgIyAgICAgICAgICAgICBSZXNvdXJjZXMgICAgICAgICA9PiAkUGFyYW17UmVzb3VyY2VzfSAgICAgICAgIHx8ICcnLAogICAgIyAgICAgICAgICAgICBSZXNvdXJjZVBhcmFtTmFtZSA9PiAkUGFyYW17UmVzb3VyY2VQYXJhbU5hbWV9IHx8ICdyZXNvdXJjZScsCiAgICAjICAgICAgICAgICAgIFRva2VuICAgICAgICAgICAgID0+ICRQYXJhbXtUb2tlbn0gICAgICAgICAgICAgfHwgJ2FjY2Vzc190b2tlbicsCiAgICAjICAgICAgICAgICAgIFVzZXJuYW1lICAgICAgICAgID0+ICRQYXJhbXtVc2VybmFtZX0sCiAgICAjICAgICAgICAgICAgIFBhc3N3b3JkICAgICAgICAgID0+ICRQYXJhbXtQYXNzd29yZH0sCiAgICAjICAgICAgICAgfQogICAgIyAgICAgfSwKICAgICMgKTsKCiAgICByZXR1cm47Cn0K</File>
        <File Location="scripts/test/OAuthTokenCaching.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2UgdjUuMjQ7CnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgojIGNvcmUgbW9kdWxlcwp1c2UgRmluZEJpbiBxdygkQmluKTsKCiMgQ1BBTiBtb2R1bGVzCnVzZSBUZXN0Mjo6VjA7CnVzZSBDcnlwdDo6SldUIHF3KGVuY29kZV9qd3QgZGVjb2RlX2p3dCk7CnVzZSBDcnlwdDo6UEs6OlJTQTsKdXNlIFBsYWNrOjpSdW5uZXI7CnVzZSBQbGFjazo6UmVxdWVzdDsKdXNlIFRyeTo6VGlueSBxdyh0cnkgY2F0Y2gpOwp1c2UgSlNPTjsKCiMgT1RPQk8gbW9kdWxlcwp1c2UgS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpSZWdpc3Rlck9NOyAgICAjIHNldCB1cCAkS2VybmVsOjpPTQoKbXkgJEN1cnJlbnRUaW1lID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyktPlRvRXBvY2goKTsKCm15ICRNYWluT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKTsKJE1haW5PYmplY3QtPlJlcXVpcmUoIiRCaW4vT0F1dGhQcm92aWRlck1vY2siKTsKCm15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwokREJPYmplY3QtPkNvbm5lY3QoKTsKJERCT2JqZWN0LT5CZWdpbldvcmsoKTsKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgbWFpbiB0ZXN0CiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojIHdhaXQgZm9yIHRoZSBmYWtlIGF1dGhvcml6YXRpb24gc2VydmVyIHRvIGNvbWUgdXAKc2xlZXAgMTsKCm15ICRDb25maWdPYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7Cm15ICRUb2tlblByb3ZpZGVyICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlblByb3ZpZGVyJyk7Cm15ICRUb2tlblJlcG9zaXRvcnkgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpPcGVuSURDb25uZWN0OjpUb2tlblJlcG9zaXRvcnknKTsKbXkgJE9JRENDb25maWd1cmF0aW9uID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkNvbmZpZ3VyYXRpb24nKTsKbXkgJFRva2VuT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OlRva2VuJyk7CgojIHRoZSBPcGVuSURDb25maWcgd2Ugd2lsbCB1c2UuIFRoaXMgd291bGQgbm9ybWFsbHkgY29tZSBmcm9tIFN5c0NvbmZpZwpteSAkT3BlbklEQ29uZmlnID0gT0F1dGhQcm92aWRlck1vY2s6OkdldFRlc3RPcGVuSURDb25maWcoKTsKCmV2YWwgewoKICAgICMgbWFrZSBzdXJlIGNhY2hlIGlzIGNsZWFuIGZvciB0ZXN0aW5nCiAgICAkT0lEQ0NvbmZpZ3VyYXRpb24tPkdldFByb3ZpZGVyRGF0YSgKICAgICAgICBPcGVuSURDb25maWcgPT4gJE9wZW5JRENvbmZpZywKICAgICAgICBOb0NhY2hlICAgICAgPT4gMSwKICAgICk7CiAgICBDbGVhbnVwKCk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICMgRmV0Y2ggYSBUb2tlbiBmcm9tIHRva2VuX2VuZHBvaW50IGFuZCB2YWxpZGF0ZSBpdAogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAjIHBhdGNoIHN5c2NvbmZpZyBqdXN0IGZvciB0aGlzIHByb2Nlc3MgLyByZXF1ZXN0CiAgICBQcmVwYXJlVGVzdFN5c0NvbmZpZygKICAgICAgICBSZXNvdXJjZXMgPT4gJ3NvbWVfYXBpJywKCiAgICAgICAgIyAgICAgICAgR3JhbnRUeXBlID0+ICdwYXNzd29yZCcsCiAgICAgICAgIyAgICAgICAgVXNlcm5hbWUgPT4gJ3Rlc3QnCiAgICApOwoKICAgICMgdXNlIFRva2VuUHJvdmlkZXIgdG8gZmV0Y2ggYSBUb2tlbiBmb3IgdGhlIGNvbmZpZ3VyZWQgdW5pdCB0ZXN0IGFjY291bnQKCiAgICAjIDEpIGZldGNoIGEgZnJlc2ggdG9rZW4KICAgIG15ICRSZXN1bHQgPSAkVG9rZW5Qcm92aWRlci0+RmV0Y2goCiAgICAgICAgQWNjb3VudE5hbWUgPT4gJ19Vbml0VGVzdDEnLAogICAgKTsKCiAgICBvayggJFJlc3VsdC0+e1N1Y2Nlc3N9LCAgICAgICAgICAgICAgICAgIlJlc3VsdCBpcyBTdWNjZXNzIiApOwogICAgb2soICRSZXN1bHQtPntPcmlnaW59IGVxICdmcmVzaF90b2tlbicsICdPcmlnaW4gaXMgZnJlc2hfdG9rZW4uJyApOwoKICAgIG15ICRUb2tlbiA9ICRSZXN1bHQtPntUb2tlbn07CgogICAgIyB2YWxpZGF0ZSBpdCwgb25lIGxhc3QgdGltZQogICAgJFJlc3VsdCA9ICRUb2tlbk9iamVjdC0+VmFsaWRhdGUoCiAgICAgICAgVG9rZW4gICAgICAgID0+ICRUb2tlbiwKICAgICAgICBPcGVuSURDb25maWcgPT4gJE9wZW5JRENvbmZpZywKICAgICk7CiAgICBvayggJFJlc3VsdC0+e1N1Y2Nlc3N9LCAiUmVzdWx0IGlzIFN1Y2Nlc3MiICk7CgogICAgIyAyKSBmZXRjaCBhZ2Fpbiwgbm93IGNvbWVzIGZyb20gY2FjaGUKICAgICRSZXN1bHQgPSAkVG9rZW5Qcm92aWRlci0+RmV0Y2goCiAgICAgICAgQWNjb3VudE5hbWUgPT4gJ19Vbml0VGVzdDEnLAogICAgKTsKCiAgICBvayggJFJlc3VsdC0+e1N1Y2Nlc3N9LCAgICAgICAgICAgIlJlc3VsdCBpcyBTdWNjZXNzIiApOwogICAgb2soICRSZXN1bHQtPntPcmlnaW59IGVxICdjYWNoZScsICdPcmlnaW4gaXMgY2FjaGUnICk7CgogICAgIyAzKSBjbGVhbiBjYWNoZSwgbm93IGNvbWVzIGZyb20gREIKICAgIENsZWFudXBDYWNoZSgpOwoKICAgICRSZXN1bHQgPSAkVG9rZW5Qcm92aWRlci0+RmV0Y2goCiAgICAgICAgQWNjb3VudE5hbWUgPT4gJ19Vbml0VGVzdDEnLAogICAgKTsKCiAgICBvayggJFJlc3VsdC0+e1N1Y2Nlc3N9LCAgICAgICAgIlJlc3VsdCBpcyBTdWNjZXNzIiApOwogICAgb2soICRSZXN1bHQtPntPcmlnaW59IGVxICdkYicsICdPcmlnaW4gaXMgZGIuJyApOwoKICAgICMgMykgY2xlYW4gY2FjaGUgYW5kIERCLCBub3cgdXNpbmcgcmVmcmVzaF90b2tlbgogICAgQ2xlYW51cENhY2hlKCk7CiAgICBteSAkRGVsZXRlU3VjY2VzcyA9ICRUb2tlblJlcG9zaXRvcnktPkRlbGV0ZVRva2VuKAogICAgICAgIEFjY291bnROYW1lID0+ICdfVW5pdFRlc3QxJywKICAgICAgICBUb2tlblR5cGUgICA9PiAnYWNjZXNzX3Rva2VuJywKICAgICk7CiAgICBvayggJERlbGV0ZVN1Y2Nlc3MsICdERUxFVEUgRkFJTEVEJyApOwoKICAgICRSZXN1bHQgPSAkVG9rZW5Qcm92aWRlci0+RmV0Y2goCiAgICAgICAgQWNjb3VudE5hbWUgPT4gJ19Vbml0VGVzdDEnLAogICAgKTsKCiAgICBvayggJFJlc3VsdC0+e1N1Y2Nlc3N9LCAgICAgICAgICAgICAgICAgICAiUmVzdWx0IGlzIFN1Y2Nlc3MiICk7CiAgICBvayggJFJlc3VsdC0+e09yaWdpbn0gZXEgJ3JlZnJlc2hfdG9rZW4nLCAnT3JpZ2luIGlzIHJlZnJlc2hfdG9rZW4nICk7CgogICAgIyA0KSBjbGVhbiBjYWNoZSxEQiBhbmQgcmVmcmVzaF90b2tlbiAtCgogICAgQ2xlYW51cCgpOwogICAgJFJlc3VsdCA9ICRUb2tlblByb3ZpZGVyLT5GZXRjaCgKICAgICAgICBBY2NvdW50TmFtZSA9PiAnX1VuaXRUZXN0MScsCiAgICApOwoKICAgIG9rKCAkUmVzdWx0LT57U3VjY2Vzc30sICAgICAgICAgICAgICAgICAiUmVzdWx0IGlzIFN1Y2Nlc3MiICk7CiAgICBvayggJFJlc3VsdC0+e09yaWdpbn0gZXEgJ2ZyZXNoX3Rva2VuJywgJ09yaWdpbiBpcyBmcmVzaF90b2tlbicgKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIyBpbnZhbGlkIGNyZWRlbnRpYWxzCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgIENsZWFudXAoKTsKICAgICRPcGVuSURDb25maWctPntDbGllbnRTZXR0aW5nc30tPntDbGllbnRTZWNyZXR9ID0gJ211cmtzJzsKICAgIFByZXBhcmVUZXN0U3lzQ29uZmlnKAogICAgICAgIFJlc291cmNlcyA9PiAnc29tZV9hcGknLAogICAgKTsKCiAgICAkUmVzdWx0ID0gJFRva2VuUHJvdmlkZXItPkZldGNoKAogICAgICAgIEFjY291bnROYW1lID0+ICdfVW5pdFRlc3QxJywKICAgICk7CgogICAgb2soICEkUmVzdWx0LT57U3VjY2Vzc30gKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIyBUZXN0IDQpIC0gQXNzZXJ0IG9uIHRoZSBzcGllZCBMb2cgb2Ygb3VyIGZha2Ugc2VydmVyCiAgICAjIGhlcmUgd2UgY2FuIGFzc2VydCB0aGF0IHBhcmFtZXRlcnMgaGF2ZSBiZWVuIHBhc3NlZCBhcwogICAgIyBleHBlY3RlZCB0byB0aGUgdG9rZW5fZW5kcG9pbnQKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgT0F1dGhQcm92aWRlck1vY2s6OkFzc2VydEh0dHBDYWxsTG9nKAogICAgICAgIEV4cGVjdGVkID0+IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAib3BlbmlkIiwKICAgICAgICAgICAgICAgICJjb250ZW50IiAgPT4gIiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAiandrcyIsCiAgICAgICAgICAgICAgICAiY29udGVudCIgID0+ICIiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJlbmRwb2ludCIgPT4gInRva2VuIiwKICAgICAgICAgICAgICAgICJjb250ZW50IiAgPT4gImdyYW50X3R5cGU9Y2xpZW50X2NyZWRlbnRpYWxzJnJlc291cmNlPXNvbWVfYXBpJnNjb3BlPW9wZW5pZCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAib3BlbmlkIiwKICAgICAgICAgICAgICAgICJjb250ZW50IiAgPT4gIiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAiandrcyIsCiAgICAgICAgICAgICAgICAiY29udGVudCIgID0+ICIiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJjb250ZW50IiAgPT4gImdyYW50X3R5cGU9cmVmcmVzaF90b2tlbiZyZWZyZXNoX3Rva2VuPSIsCiAgICAgICAgICAgICAgICAiZW5kcG9pbnQiID0+ICJ0b2tlbiIsCiAgICAgICAgICAgICAgICBvcGVyYXRvciAgID0+ICdtYXRjaCcKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAib3BlbmlkIiwKICAgICAgICAgICAgICAgICJjb250ZW50IiAgPT4gIiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAiandrcyIsCiAgICAgICAgICAgICAgICAiY29udGVudCIgID0+ICIiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJlbmRwb2ludCIgPT4gInRva2VuIiwKICAgICAgICAgICAgICAgICJjb250ZW50IiAgPT4gImdyYW50X3R5cGU9Y2xpZW50X2NyZWRlbnRpYWxzJnJlc291cmNlPXNvbWVfYXBpJnNjb3BlPW9wZW5pZCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAib3BlbmlkIiwKICAgICAgICAgICAgICAgICJjb250ZW50IiAgPT4gIiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAiandrcyIsCiAgICAgICAgICAgICAgICAiY29udGVudCIgID0+ICIiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJjb250ZW50IiAgPT4gImdyYW50X3R5cGU9Y2xpZW50X2NyZWRlbnRpYWxzJnJlc291cmNlPXNvbWVfYXBpJnNjb3BlPW9wZW5pZCIsCiAgICAgICAgICAgICAgICAiZW5kcG9pbnQiID0+ICJ0b2tlbiIKICAgICAgICAgICAgfSwKICAgICAgICBdCiAgICApOwp9OwppZiAoJEApIHsKICAgIHByaW50IFNUREVSUiAiJEBcbiI7CiAgICBvayggMCwgInNob3VsZCBub3QgaHRvdy4iICk7Cn0KCiMgb3ZlciBhbmQgb3V0CmRvbmVfdGVzdGluZzsKCkNsZWFudXAoKTsKCiREQk9iamVjdC0+Um9sbGJhY2soKTsKCiMgdGVhciBkb3duIGZha2Ugc2VydmVyCmtpbGwoICdURVJNJywgJE9BdXRoUHJvdmlkZXJNb2NrOjpDaGlsZFBJRCApOwp3YWl0cGlkKCAkT0F1dGhQcm92aWRlck1vY2s6OkNoaWxkUElELCAwICk7CgojIHBhdGNoIHN5c2NvbmZpZyBqdXN0IGZvciB0aGlzIHByb2Nlc3MgLyByZXF1ZXN0CgpzdWIgUHJlcGFyZVRlc3RTeXNDb25maWcgewoKICAgIG15ICVQYXJhbSA9IEBfOwoKICAgICMgY3JlYXRlIHByb2ZpbGUKCiAgICBteSAkWUFNTE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpZQU1MJyk7CgogICAgbXkgJFZhbGlkID0gMTsKCiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICJTRUxFQ1QgaWQgRlJPTSBvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudHMgV0hFUkUgbmFtZSA9ICdfVW5pdFRlc3QxJyAiLAoKICAgICAgICAjICAgICAgICAgICAgQmluZCAgPT4gWyBcJE9wZW5JRENvbmZpZy0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57TmFtZX0gXSwKICAgICAgICAjICAgICAgICAgICAgTGltaXQgPT4gMQogICAgKTsKCiAgICBteSAoJElEKSA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpOwoKICAgIGlmICgkSUQpIHsKICAgICAgICAkREJPYmplY3QtPkRvKCBTUUwgPT4gIkRFTEVURSBGUk9NIG9hdXRoMl90b2tlbl9zdG9yYWdlIFdIRVJFIG9pZGNfZnVuY3Rpb25hbF9hY2NvdW50X2lkID0gIiAuICRJRCApOwogICAgfQogICAgJERCT2JqZWN0LT5EbyggU1FMID0+ICJERUxFVEUgRlJPTSBvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudHMgV0hFUkUgbmFtZSA9ICdfVW5pdFRlc3QxJyAiICk7CiAgICAkREJPYmplY3QtPkRvKCBTUUwgPT4gIkRFTEVURSBGUk9NIG9pZGNfcHJvZmlsZXMgV0hFUkUgbmFtZSA9ICciIC4gJE9wZW5JRENvbmZpZy0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57TmFtZX0gLiAiJyIgKTsKCiAgICAkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCA9PiAiSU5TRVJUIElOVE8gb2lkY19wcm9maWxlcwogICAgICAgICAgICAgICAgKCBuYW1lLGNsaWVudF9pZCxjbGllbnRfU2VjcmV0LHJlZGlyZWN0X3VyaSxvcGVuaWRfY29uZmlnLAogICAgICAgICAgICAgICAgc3NsX29wdGlvbnMsbWlzYyx0dGwsdmFsaWRfaWQsCiAgICAgICAgICAgICAgICBjcmVhdGVfdGltZSxjcmVhdGVfYnksY2hhbmdlX3RpbWUsY2hhbmdlX2J5ICkKICAgICAgICAgICAgICAgIFZBTFVFUyAoPywgPywgPywgPyw/LCA/LCA/LCA/LCA/LCBjdXJyZW50X3RpbWVzdGFtcCwgMSwgY3VycmVudF90aW1lc3RhbXAsIDEpIiwKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e05hbWV9LAogICAgICAgICAgICBcJE9wZW5JRENvbmZpZy0+e0NsaWVudFNldHRpbmdzfS0+e0NsaWVudElEfSwKICAgICAgICAgICAgXCRPcGVuSURDb25maWctPntDbGllbnRTZXR0aW5nc30tPntDbGllbnRTZWNyZXR9LAogICAgICAgICAgICBcJE9wZW5JRENvbmZpZy0+e0NsaWVudFNldHRpbmdzfS0+e1JlZGlyZWN0VVJJfSAvLyAnJywKICAgICAgICAgICAgXCRPcGVuSURDb25maWctPntQcm92aWRlclNldHRpbmdzfS0+e09wZW5JRENvbmZpZ3VyYXRpb259LAogICAgICAgICAgICBcJFlBTUxPYmplY3QtPkR1bXAoIERhdGEgPT4gJE9wZW5JRENvbmZpZy0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57U1NMT3B0aW9uc30gKSwKICAgICAgICAgICAgXCRZQU1MT2JqZWN0LT5EdW1wKCBEYXRhID0+ICRPcGVuSURDb25maWctPntNaXNjfSAvLyB7fSApLAogICAgICAgICAgICBcJE9wZW5JRENvbmZpZy0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57VFRMfSwKICAgICAgICAgICAgXCRWYWxpZCwKICAgICAgICBdLAogICAgKTsKCiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMICA9PiAiU0VMRUNUIGlkIEZST00gb2lkY19wcm9maWxlcyBXSEVSRSBuYW1lID0gPyAiLAogICAgICAgIEJpbmQgPT4gWyBcJE9wZW5JRENvbmZpZy0+e1Byb3ZpZGVyU2V0dGluZ3N9LT57TmFtZX0gXSwKCiAgICAgICAgIyAgICAgICAgICAgIExpbWl0ID0+IDEKICAgICk7CgogICAgKCRJRCkgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKTsKCiAgICAjIGNyZWF0ZSBmdW5jdGlvbmFsIGFjY291bnQKCiAgICBteSAkR3JhbnRUeXBlICAgICAgICAgPSAkUGFyYW17R3JhbnRUeXBlfSAgICAgICAgIHx8ICdjbGllbnRfY3JlZGVudGlhbHMnOwogICAgbXkgJFNjb3BlICAgICAgICAgICAgID0gJFBhcmFte1Njb3BlfSAgICAgICAgICAgICB8fCAnb3BlbmlkJzsKICAgIG15ICRSZXNvdXJjZXMgICAgICAgICA9ICRQYXJhbXtSZXNvdXJjZXN9ICAgICAgICAgfHwgJyc7CiAgICBteSAkUmVzb3VyY2VQYXJhbU5hbWUgPSAkUGFyYW17UmVzb3VyY2VQYXJhbU5hbWV9IHx8ICdyZXNvdXJjZSc7CiAgICBteSAkVG9rZW5UeXBlICAgICAgICAgPSAkUGFyYW17VG9rZW59ICAgICAgICAgICAgIHx8ICdhY2Nlc3NfdG9rZW4nOwoKICAgIHByaW50IFNUREVSUiAiVE9LRU5UWVBFOiAkVG9rZW5UeXBlXG4iOwoKICAgICREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMID0+ICJJTlNFUlQgSU5UTyBvaWRjX2Z1bmN0aW9uYWxfYWNjb3VudHMKICAgICAgICAgICAgICAgIChuYW1lLCBvaWRjX3Byb2ZpbGVfaWQsZ3JhbnRfdHlwZSxzY29wZXMscmVzb3VyY2VzLAogICAgICAgICAgICAgICAgcmVzb3VyY2VfcGFyYW1fbmFtZSx1c2VybmFtZSxwYXNzd2QsIHRva2VuX3R5cGUsIHZhbGlkX2lkLAogICAgICAgICAgICAgICAgY3JlYXRlX3RpbWUsY3JlYXRlX2J5LGNoYW5nZV90aW1lLGNoYW5nZV9ieSApCiAgICAgICAgICAgICAgICBWQUxVRVMgKCAnX1VuaXRUZXN0MScsID8sID8sID8sID8sID8sID8sID8sID8sID8sIGN1cnJlbnRfdGltZXN0YW1wLCAxLCBjdXJyZW50X3RpbWVzdGFtcCwgMSkiLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJElELAogICAgICAgICAgICBcJEdyYW50VHlwZSwKICAgICAgICAgICAgXCRTY29wZSwKICAgICAgICAgICAgXCRSZXNvdXJjZXMsCiAgICAgICAgICAgIFwkUmVzb3VyY2VQYXJhbU5hbWUsCiAgICAgICAgICAgIFwkUGFyYW17VXNlcm5hbWV9LAogICAgICAgICAgICBcJFBhcmFte1Bhc3N3b3JkfSwKICAgICAgICAgICAgXCRUb2tlblR5cGUsCiAgICAgICAgICAgIFwkVmFsaWQsCiAgICAgICAgXSwKICAgICk7CgogICAgcmV0dXJuOwp9CgpzdWIgQ2xlYW51cCB7CgogICAgIyBjbGVhbnVwIGNhY2hlIGFuZCBkYgogICAgJFRva2VuUmVwb3NpdG9yeS0+RGVsZXRlVG9rZW4oCiAgICAgICAgQWNjb3VudE5hbWUgPT4gJ19Vbml0VGVzdDEnLAogICAgKTsKCiAgICBDbGVhbnVwQ2FjaGUoKTsKCiAgICByZXR1cm47Cn0KCnN1YiBDbGVhbnVwQ2FjaGUgewoKICAgICRUb2tlblByb3ZpZGVyLT5FbXB0eUNhY2hlKAogICAgICAgIEFjY291bnROYW1lID0+ICdfVW5pdFRlc3QxJywKICAgICk7CgogICAgcmV0dXJuOwp9Cg==</File>
        <File Location="scripts/test/OAuthAuthenticator.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2UgdjUuMjQ7CnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgojIGNvcmUgbW9kdWxlcwp1c2UgRmluZEJpbiBxdygkQmluKTsKCiMgQ1BBTiBtb2R1bGVzCnVzZSBUZXN0Mjo6VjA7CnVzZSBDcnlwdDo6SldUIHF3KGVuY29kZV9qd3QgZGVjb2RlX2p3dCk7CnVzZSBDcnlwdDo6UEs6OlJTQTsKdXNlIFBsYWNrOjpSdW5uZXI7CnVzZSBQbGFjazo6UmVxdWVzdDsKdXNlIFRyeTo6VGlueSBxdyh0cnkgY2F0Y2gpOwp1c2UgSlNPTjsKCiMgT1RPQk8gbW9kdWxlcwp1c2UgS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpSZWdpc3Rlck9NOyAgICAjIHNldCB1cCAkS2VybmVsOjpPTQoKbXkgJEN1cnJlbnRUaW1lID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyktPlRvRXBvY2goKTsKbXkgJE1haW5PYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKTsKJE1haW5PYmplY3QtPlJlcXVpcmUoIiRCaW4vT0F1dGhQcm92aWRlck1vY2siKTsKCm15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwokREJPYmplY3QtPkNvbm5lY3QoKTsKCiMkT0F1dGhQcm92aWRlck1vY2s6OktpZElEIHx8ICRPQXV0aFByb3ZpZGVyTW9jazo6UHJpdmF0ZUtleSB8fCAwOyAgICAgICMgcHJldmVudCB3YXJuaW5ncwoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBtYWluIHRlc3QKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMgd2FpdCBmb3IgdGhlIGZha2UgYXV0aG9yaXphdGlvbiBzZXJ2ZXIgdG8gY29tZSB1cApzbGVlcCAxOwoKbXkgJENvbmZpZ09iamVjdCAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKbXkgJE9JRENDb25maWd1cmF0aW9uID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkNvbmZpZ3VyYXRpb24nKTsKbXkgJEF1dGhlbnRpY2F0b3IgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok9wZW5JRENvbm5lY3Q6OkF1dGhlbnRpY2F0b3InKTsKCiMgdGhlIE9wZW5JRENvbmZpZyB3ZSB3aWxsIHVzZS4gVGhpcyB3b3VsZCBub3JtYWxseSBjb21lIGZyb20gU3lzQ29uZmlnCm15ICRPcGVuSURDb25maWcgPSBPQXV0aFByb3ZpZGVyTW9jazo6R2V0VGVzdE9wZW5JRENvbmZpZygpOwoKJERCT2JqZWN0LT5CZWdpbldvcmsoKTsKCmV2YWwgewoKICAgIFByZXBhcmVUZXN0U3lzQ29uZmlnKCk7CgogICAgbXkgJFVzZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKICAgIG15ICRVc2VySUQgPSAkVXNlck9iamVjdC0+VXNlckxvb2t1cCgKICAgICAgICBVc2VyTG9naW4gPT4gJzljM2UxODM5LWI0NjgtNGNkYS1hMzlhLWQ5NjllYWQ0NWE0MCcsCiAgICAgICAgU2lsZW50ICAgID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwsIGRvbid0IGdlbmVyYXRlIGxvZyBlbnRyeSBpZiB1c2VyIHdhcyBub3QgZm91bmQKICAgICk7CgogICAgaWYgKCAhJFVzZXJJRCApCiAgICB7CiAgICAgICAgIyBhZGQgdXNlcgogICAgICAgICRVc2VySUQgPSAkVXNlck9iamVjdC0+VXNlckFkZCgKICAgICAgICAgICAgVXNlckZpcnN0bmFtZSA9PiAndGVzdHkgMScsCiAgICAgICAgICAgIFVzZXJMYXN0bmFtZSAgPT4gJ3Rlc3RlciAxJywKICAgICAgICAgICAgVXNlckxvZ2luICAgICA9PiAnOWMzZTE4MzktYjQ2OC00Y2RhLWEzOWEtZDk2OWVhZDQ1YTQwJywKICAgICAgICAgICAgVXNlckVtYWlsICAgICA9PiAndGVzdDFAZXhhbXBsZS5jb20nLAogICAgICAgICAgICBVc2VyQ29tbWVudCAgID0+ICd1bml0ZXN0JywKICAgICAgICAgICAgVmFsaWRJRCAgICAgICA9PiAxLAogICAgICAgICAgICBDaGFuZ2VVc2VySUQgID0+IDEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIG1ha2Ugc3VyZSBjYWNoZSBpcyBjbGVhbiBmb3IgdGVzdGluZwogICAgJE9JRENDb25maWd1cmF0aW9uLT5HZXRQcm92aWRlckRhdGEoCiAgICAgICAgT3BlbklEQ29uZmlnID0+ICRPcGVuSURDb25maWcsCiAgICAgICAgTm9DYWNoZSAgICAgID0+IDEsCiAgICApOwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAjIDEpIFNpbXBsZSBKV1QKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgbXkgJFRva2VuID0gZW5jb2RlX2p3dCgKICAgICAgICBwYXlsb2FkICAgICAgID0+IE9BdXRoUHJvdmlkZXJNb2NrOjpQYXlsb2FkKCksCiAgICAgICAgYWxnICAgICAgICAgICA9PiAnUlMyNTYnLAogICAgICAgIGtleSAgICAgICAgICAgPT4gJE9BdXRoUHJvdmlkZXJNb2NrOjpQcml2YXRlS2V5LAogICAgICAgIGV4dHJhX2hlYWRlcnMgPT4geyBraWQgPT4gJE9BdXRoUHJvdmlkZXJNb2NrOjpLaWRJRCB9LAogICAgKTsKCiAgICAjIG5vdyB2YWxpZGF0ZSB0aGlzIHRva2VuLCB3aGljaCB3aWxsIHRhbGsgdG8gb3VyIGZha2UgYXV0aG9yaXphdGlvbiBzZXJ2ZXIKICAgICMgYW5kIGZldGNoIHRoZSBwdWJsaWMga2V5IHRvIHZhbGlkYXRlIHRoZSBzaWduYXR1cmUKCiAgICBteSAkUmVzdWx0ID0gJEF1dGhlbnRpY2F0b3ItPkF1dGhlbnRpY2F0ZSgKICAgICAgICBUb2tlbiA9PiAkVG9rZW4sCiAgICApOwoKICAgIG9rKCAkUmVzdWx0LT57U3VjY2Vzc30sICdBdXRoZW50aWNhdGVkJyApOwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAjIDIpIFNpbXBsZSBKV1Qgd2l0aCBkZWRpY2F0ZWQgc2NvcGVzCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgIFByZXBhcmVUZXN0U3lzQ29uZmlnKAogICAgICAgIFNjb3BlID0+ICdvcGVuaWQgc3VwZXJkdXBlcicsCiAgICApOwoKICAgICRUb2tlbiA9IGVuY29kZV9qd3QoCiAgICAgICAgcGF5bG9hZCAgICAgICA9PiBPQXV0aFByb3ZpZGVyTW9jazo6UGF5bG9hZCggU2NvcGUgPT4gJ29wZW5pZCBzdXBlcmR1cGVyJyApLAogICAgICAgIGFsZyAgICAgICAgICAgPT4gJ1JTMjU2JywKICAgICAgICBrZXkgICAgICAgICAgID0+ICRPQXV0aFByb3ZpZGVyTW9jazo6UHJpdmF0ZUtleSwKICAgICAgICBleHRyYV9oZWFkZXJzID0+IHsga2lkID0+ICRPQXV0aFByb3ZpZGVyTW9jazo6S2lkSUQgfSwKICAgICk7CgogICAgIyBub3cgdmFsaWRhdGUgdGhpcyB0b2tlbiwgd2hpY2ggd2lsbCB0YWxrIHRvIG91ciBmYWtlIGF1dGhvcml6YXRpb24gc2VydmVyCiAgICAjIGFuZCBmZXRjaCB0aGUgcHVibGljIGtleSB0byB2YWxpZGF0ZSB0aGUgc2lnbmF0dXJlCgogICAgJFJlc3VsdCA9ICRBdXRoZW50aWNhdG9yLT5BdXRoZW50aWNhdGUoCiAgICAgICAgVG9rZW4gPT4gJFRva2VuLAogICAgKTsKCiAgICBvayggJFJlc3VsdC0+e1N1Y2Nlc3N9LCAnQXV0aGVudGljYXRlZCcgKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIyAzKSBTaW1wbGUgSldUIHdpdGggZGVkaWNhdGVkIGF1ZGllbmNlIGNoZWNrCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgIFByZXBhcmVUZXN0U3lzQ29uZmlnKAogICAgICAgIEF1ZGllbmNlID0+ICdvdG9ibycsCiAgICApOwoKICAgICRUb2tlbiA9IGVuY29kZV9qd3QoCiAgICAgICAgcGF5bG9hZCAgICAgICA9PiBPQXV0aFByb3ZpZGVyTW9jazo6UGF5bG9hZCggQXVkaWVuY2UgPT4gWyAnb3RvYm8nLCAnbWFtbWFtaWEnIF0gKSwKICAgICAgICBhbGcgICAgICAgICAgID0+ICdSUzI1NicsCiAgICAgICAga2V5ICAgICAgICAgICA9PiAkT0F1dGhQcm92aWRlck1vY2s6OlByaXZhdGVLZXksCiAgICAgICAgZXh0cmFfaGVhZGVycyA9PiB7IGtpZCA9PiAkT0F1dGhQcm92aWRlck1vY2s6OktpZElEIH0sCiAgICApOwoKICAgICMgbm93IHZhbGlkYXRlIHRoaXMgdG9rZW4sIHdoaWNoIHdpbGwgdGFsayB0byBvdXIgZmFrZSBhdXRob3JpemF0aW9uIHNlcnZlcgogICAgIyBhbmQgZmV0Y2ggdGhlIHB1YmxpYyBrZXkgdG8gdmFsaWRhdGUgdGhlIHNpZ25hdHVyZQoKICAgICRSZXN1bHQgPSAkQXV0aGVudGljYXRvci0+QXV0aGVudGljYXRlKAogICAgICAgIFRva2VuID0+ICRUb2tlbiwKICAgICk7CgogICAgb2soICRSZXN1bHQtPntTdWNjZXNzfSwgJ0F1dGhlbnRpY2F0ZWQnICk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICMgNCkgU2ltcGxlIEpXVCB3aXRoIEF1dGhvcml6ZWQgUGFydHkgY2hlY2sKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgUHJlcGFyZVRlc3RTeXNDb25maWcoCiAgICAgICAgQXV0aG9yaXplZFBhcnR5ID0+ICdvdG9ibycsCiAgICApOwoKICAgICRUb2tlbiA9IGVuY29kZV9qd3QoCiAgICAgICAgcGF5bG9hZCAgICAgICA9PiBPQXV0aFByb3ZpZGVyTW9jazo6UGF5bG9hZCgpLAogICAgICAgIGFsZyAgICAgICAgICAgPT4gJ1JTMjU2JywKICAgICAgICBrZXkgICAgICAgICAgID0+ICRPQXV0aFByb3ZpZGVyTW9jazo6UHJpdmF0ZUtleSwKICAgICAgICBleHRyYV9oZWFkZXJzID0+IHsga2lkID0+ICRPQXV0aFByb3ZpZGVyTW9jazo6S2lkSUQgfSwKICAgICk7CgogICAgIyBub3cgdmFsaWRhdGUgdGhpcyB0b2tlbiwgd2hpY2ggd2lsbCB0YWxrIHRvIG91ciBmYWtlIGF1dGhvcml6YXRpb24gc2VydmVyCiAgICAjIGFuZCBmZXRjaCB0aGUgcHVibGljIGtleSB0byB2YWxpZGF0ZSB0aGUgc2lnbmF0dXJlCgogICAgJFJlc3VsdCA9ICRBdXRoZW50aWNhdG9yLT5BdXRoZW50aWNhdGUoCiAgICAgICAgVG9rZW4gPT4gJFRva2VuLAogICAgKTsKCiAgICBvayggJFJlc3VsdC0+e1N1Y2Nlc3N9LCAnQXV0aGVudGljYXRlZCcgKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIyBhc3NlcnQgb24gdGhlIHNweSBsb2cKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgT0F1dGhQcm92aWRlck1vY2s6OkFzc2VydEh0dHBDYWxsTG9nKAogICAgICAgIEV4cGVjdGVkID0+IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAib3BlbmlkIiwKICAgICAgICAgICAgICAgICJjb250ZW50IiAgPT4gIiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImVuZHBvaW50IiA9PiAiandrcyIsCiAgICAgICAgICAgICAgICAiY29udGVudCIgID0+ICIiCiAgICAgICAgICAgIH0sCiAgICAgICAgXQogICAgKTsKfTsKaWYgKCRAKSB7CiAgICBwcmludCBTVERFUlIgIiRAXG4iOwogICAgb2soIDAsICJzaG91bGQgbm90IHRocm93LiIgKTsKfQoKJERCT2JqZWN0LT5Sb2xsYmFjaygpOwoKIyBvdmVyIGFuZCBvdXQKZG9uZV90ZXN0aW5nOwoKIyB0ZWFyIGRvd24gZmFrZSBzZXJ2ZXIKa2lsbCggJ1RFUk0nLCAkT0F1dGhQcm92aWRlck1vY2s6OkNoaWxkUElEICk7CndhaXRwaWQoICRPQXV0aFByb3ZpZGVyTW9jazo6Q2hpbGRQSUQsIDAgKTsKCiMgcGF0Y2ggc3lzY29uZmlnIGp1c3QgZm9yIHRoaXMgcHJvY2VzcyAvIHJlcXVlc3QKCnN1YiBQcmVwYXJlVGVzdFN5c0NvbmZpZyB7CgogICAgbXkgJVBhcmFtID0gQF87CgogICAgIyBjb25maWd1cmUgYW4gT0lEQyBQcm9maWxlIGZvciB0aGUgdW5pdCB0ZXN0CiAgICAkQ29uZmlnT2JqZWN0LT5TZXQoCiAgICAgICAgS2V5ICAgPT4gJ0F1dGhNb2R1bGU6Ol9Vbml0VGVzdDE6OkNvbmZpZycsCiAgICAgICAgVmFsdWUgPT4gJE9wZW5JRENvbmZpZywKICAgICk7CgogICAgJENvbmZpZ09iamVjdC0+U2V0KAogICAgICAgIEtleSAgID0+ICdBdXRoTW9kdWxlJywKICAgICAgICBWYWx1ZSA9PiAnS2VybmVsOjpTeXN0ZW06OkF1dGg6Ol9Vbml0VGVzdDEnLAogICAgKTsKCiAgICAkQ29uZmlnT2JqZWN0LT5TZXQoCiAgICAgICAgS2V5ICAgPT4gJ0NoZWNrRW1haWxBZGRyZXNzZXMnLAogICAgICAgIFZhbHVlID0+IDAsCiAgICApOwoKICAgIHJldHVybjsKfQo=</File>
        <File Location="scripts/test/OAuthProviderMock.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIE9BdXRoUHJvdmlkZXJNb2NrOwp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSBUZXN0Mjo6VjA7CnVzZSBDcnlwdDo6SldUIHF3KGVuY29kZV9qd3QgZGVjb2RlX2p3dCk7CnVzZSBDcnlwdDo6UEs6OlJTQTsKdXNlIFBsYWNrOjpSdW5uZXI7CnVzZSBQbGFjazo6UmVxdWVzdDsKdXNlIFRyeTo6VGlueSBxdyh0cnkgY2F0Y2gpOwp1c2UgSlNPTjsKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgT0F1dGggUHJvdmlkZXIgTW9jayBTZXJ2ZXIKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCm15ICRDdXJyZW50VGltZSA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpLT5Ub0Vwb2NoKCk7CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIHByZXBhcmUgc2hhcmVkIFJTQSBrZXkKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiRPQXV0aFByb3ZpZGVyTW9jazo6UHJpdmF0ZUtleSA9IENyeXB0OjpQSzo6UlNBLT5uZXcoKTsKJE9BdXRoUHJvdmlkZXJNb2NrOjpQcml2YXRlS2V5LT5nZW5lcmF0ZV9rZXkoIDI1NiwgNjU1MzcgKTsKCiMgcHJlcGFyZSBraWQgZGF0YSB0byBiZSBzZXJ2ZWQgZnJvbSBmYWtlIGF1dGhvcml6YXRpb24gc2VydmVyCm15ICRLaWREYXRhICAgICAgID0gZGVjb2RlX2pzb24oICRPQXV0aFByb3ZpZGVyTW9jazo6UHJpdmF0ZUtleS0+ZXhwb3J0X2tleV9qd2soJ3B1YmxpYycpICk7Cm15ICRLaWRUaHVtYnByaW50ID0gJE9BdXRoUHJvdmlkZXJNb2NrOjpQcml2YXRlS2V5LT5leHBvcnRfa2V5X2p3a190aHVtYnByaW50KCk7CiRPQXV0aFByb3ZpZGVyTW9jazo6S2lkSUQgPSAnMlFxUm1LRmtmcEJIb080Y2oteVZmckhKeWtJQkxPTWJiZTdxQnZVNVVuayc7CgojIGhlbHBlciB0byBnZXQgYW4gT3BlbklEQ29uZmlnCnN1YiBHZXRUZXN0T3BlbklEQ29uZmlnIHsKCiAgICBteSAkT3BlbklEQ29uZmlnID0gewogICAgICAgICdDbGllbnRTZXR0aW5ncycgPT4gewogICAgICAgICAgICAnQ2xpZW50U2VjcmV0JyA9PiAnMTIzNDU2Nzg5ODc2NTQzMjEnLAogICAgICAgICAgICAnQ2xpZW50SUQnICAgICA9PiAnb3RvYm8nLAogICAgICAgICAgICAnUmVkaXJlY3RVUkknICA9PiAnaHR0cDovL2xvY2FsaG9zdC9vdG9iby9pbmRleC5wbD9BY3Rpb249TG9naW4nLAogICAgICAgIH0sCiAgICAgICAgJ1Byb3ZpZGVyU2V0dGluZ3MnID0+IHsKICAgICAgICAgICAgJ1RUTCcgICAgICAgICAgICAgICAgID0+IDE4MDAsCiAgICAgICAgICAgICdPcGVuSURDb25maWd1cmF0aW9uJyA9PiAnaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvLndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb24nLAogICAgICAgICAgICAnTmFtZScgICAgICAgICAgICAgICAgPT4gJ1VuaXRUZXN0JywKICAgICAgICAgICAgJ1NTTE9wdGlvbnMnICAgICAgICAgID0+IHsKICAgICAgICAgICAgICAgICdTU0xWZXJpZnlNb2RlJyAgICAgPT4gMCwKICAgICAgICAgICAgICAgICdTU0xWZXJpZnlIb3N0bmFtZScgPT4gMCwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfTsKICAgIHJldHVybiAkT3BlbklEQ29uZmlnOwp9CgojIGhlbHBlciBmb3IgY3JlYXRpbmcgdGVzdCBKV1QgcGF5bG9hZHMKc3ViIFBheWxvYWQgewoKICAgIG15ICVQYXJhbSA9IEBfOwoKICAgIG15ICRTY29wZSAgICA9ICRQYXJhbXtTY29wZX0gICAgfHwgIm9wZW5pZCBlbWFpbCBwcm9maWxlIHJvbGVzIjsKICAgIG15ICRBdWRpZW5jZSA9ICRQYXJhbXtBdWRpZW5jZX0gfHwgWwogICAgICAgICJvdG9ibyIsCiAgICAgICAgImFjY291bnQiCiAgICBdOwoKICAgIHJldHVybiB7CiAgICAgICAgImV4cCIgPT4gJEN1cnJlbnRUaW1lICsgNjAwLAogICAgICAgICJpYXQiID0+ICRDdXJyZW50VGltZSwKCiAgICAgICAgIyAgImp0aSIgICAgICAgICAgICAgICAgPT4gIjI5YTJmNGJhLTZiZmEtNDU3Yi1hZmExLTQ2OWU2ZjRkYzJjMCIsCiAgICAgICAgImlzcyIgPT4gImh0dHA6Ly9sb2NhbGhvc3Q6MjAwNy9yZWFsbXMvbWFzdGVyIiwKICAgICAgICAiYXVkIiA9PiAkQXVkaWVuY2UsCiAgICAgICAgInN1YiIgPT4gIjljM2UxODM5LWI0NjgtNGNkYS1hMzlhLWQ5NjllYWQ0NWE0MCIsCiAgICAgICAgInR5cCIgPT4gIkJlYXJlciIsCiAgICAgICAgImF6cCIgPT4gIm90b2JvIiwKCiAgICAgICAgIyAgInNpZCIgICAgICAgICAgICAgICAgPT4gImJhYzYyZDgyLTQwZjctNDU1Yy05ZjNmLThlMDMxNmU2MWY1YiIsCiAgICAgICAgImFjciIgICAgICAgICAgICAgICAgPT4gIjEiLAogICAgICAgICJzY29wZSIgICAgICAgICAgICAgID0+ICRTY29wZSwKICAgICAgICAiZW1haWxfdmVyaWZpZWQiICAgICA9PiAxLAogICAgICAgICJuYW1lIiAgICAgICAgICAgICAgID0+ICJ0ZXN0eSAxIHRlc3RlciAxIiwKICAgICAgICAicHJlZmVycmVkX3VzZXJuYW1lIiA9PiAndGVzdDFAZXhhbXBsZS5jb20nLAogICAgICAgICJnaXZlbl9uYW1lIiAgICAgICAgID0+ICJ0ZXN0eSAxIiwKICAgICAgICAiZmFtaWx5X25hbWUiICAgICAgICA9PiAidGVzdGVyIDEiLAogICAgICAgICJlbWFpbCIgICAgICAgICAgICAgID0+ICd0ZXN0MUBleGFtcGxlLmNvbScsCiAgICAgICAgInJlc291cmNlX2FjY2VzcyIgICAgPT4gewogICAgICAgICAgICAib3RvYm8iID0+IHsKICAgICAgICAgICAgICAgICJyb2xlcyIgPT4gWwogICAgICAgICAgICAgICAgICAgICJhZ2VudHMiCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH07Cn0KCnN1YiBBc3NlcnRIdHRwQ2FsbExvZyB7CgogICAgbXkgJVBhcmFtID0gQF87CgogICAgbXkgJEV4cGVjdGVkID0gJFBhcmFte0V4cGVjdGVkfTsKCiAgICBteSAkVUEgICAgICAgPSBMV1A6OlVzZXJBZ2VudC0+bmV3KCB0aW1lb3V0ID0+IDEwICk7CiAgICBteSAkUmVzcG9uc2UgPSAkVUEtPmdldCgnaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvbG9nJyk7CiAgICBpZiAoICRSZXNwb25zZS0+aXNfc3VjY2VzcyApIHsKCiAgICAgICAgbXkgJExvZyA9IGRlY29kZV9qc29uKCAkUmVzcG9uc2UtPmRlY29kZWRfY29udGVudCApOwoKICAgICAgICBvayggc2NhbGFyIEAkTG9nID09IHNjYWxhciBAJEV4cGVjdGVkLCAibnVtYmVyIG9mIGxvZ2dlZCBjYWxscyBtYXRjaGVzIGV4cGVjdGVkICgiIC4gKCBzY2FsYXIgQCRMb2cgKSAuICIgPT0gIiAuICggc2NhbGFyIEAkRXhwZWN0ZWQgKSAuICIpLiIgKTsKCiAgICAgICAgbXkgJEluZGV4ID0gMDsKICAgICAgICBmb3IgbXkgJEV4cGVjdGF0aW9uIChAJEV4cGVjdGVkKSB7CgogICAgICAgICAgICBteSAkQWN0dWFsICAgICAgICAgID0gJExvZy0+WyRJbmRleF07CiAgICAgICAgICAgIG15ICRFeHBlY3RlZENvbnRlbnQgPSAkRXhwZWN0YXRpb24tPntjb250ZW50fTsKICAgICAgICAgICAgbXkgJE9wICAgICAgICAgICAgICA9ICRFeHBlY3RhdGlvbi0+e29wZXJhdG9yfSB8fCAnZXF1YWwnOwoKICAgICAgICAgICAgb2soICRBY3R1YWwtPntlbmRwb2ludH0gZXEgJEV4cGVjdGF0aW9uLT57ZW5kcG9pbnR9LCAkQWN0dWFsLT57ZW5kcG9pbnR9IC4gIiBlcXVhbHMgIiAuICRFeHBlY3RhdGlvbi0+e2VuZHBvaW50fSApOwoKICAgICAgICAgICAgaWYgKCRFeHBlY3RlZENvbnRlbnQpIHsKICAgICAgICAgICAgICAgIGlmICggJE9wIGVxICdtYXRjaCcgKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJFJlZ2V4ID0gcXIvJEV4cGVjdGVkQ29udGVudC87CiAgICAgICAgICAgICAgICAgICAgb2soICRBY3R1YWwtPntjb250ZW50fSA9fiAkUmVnZXgsICRBY3R1YWwtPntjb250ZW50fSAuICcgbWF0Y2hlcyAnIC4gJEV4cGVjdGVkQ29udGVudCApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgb2soICRBY3R1YWwtPntjb250ZW50fSBlcSAkRXhwZWN0ZWRDb250ZW50LCAkQWN0dWFsLT57Y29udGVudH0gLiAnIGVxdWFscyAnIC4gJEV4cGVjdGVkQ29udGVudCApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICRJbmRleCsrOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybjsKfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBzdGFydCB0ZXN0IGF1dGhvcml6YXRpb24gc2VydmVyCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgokT0F1dGhQcm92aWRlck1vY2s6OkNoaWxkUElEID0gZm9yaygpOwoKaWYgKCAhJE9BdXRoUHJvdmlkZXJNb2NrOjpDaGlsZFBJRCApIHsKCiAgICAjIGkgYW0gdGhlIGZvcmtlZCBjaGlsZAogICAgIyBydW4gdGhlIHRlc3Qgc2VydmVyCgogICAgdHJ5IHsKCiAgICAgICAgbXkgQExvZzsKICAgICAgICBteSAkQXBwID0gc3ViIHsKCiAgICAgICAgICAgIG15ICRFbnYgPSBzaGlmdDsgICAgICAgICAgICAgICAgICAgICAgICMgUFNHSSBlbnYKICAgICAgICAgICAgbXkgJFJlcSA9IFBsYWNrOjpSZXF1ZXN0LT5uZXcoJEVudik7CgogICAgICAgICAgICAjIHByaW50IFNUREVSUiAiXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cbiI7CiAgICAgICAgICAgICMgcHJpbnQgU1RERVJSICRyZXEtPnBhdGgoKS4iXG4iOwogICAgICAgICAgICAjIHByaW50IFNUREVSUiAkcmVxLT5jb250ZW50KCkuIlxuIjsKICAgICAgICAgICAgIyBwcmludCBTVERFUlIgRHVtcGVyKCRyZXEtPmhlYWRlcnMoKSkuIlxuIjsKCiAgICAgICAgICAgIGlmICggJFJlcS0+cGF0aCgpIGVxICcvcmVhbG1zL21hc3Rlci8ud2VsbC1rbm93bi9vcGVuaWQtY29uZmlndXJhdGlvbicgKSB7CgogICAgICAgICAgICAgICAgcHVzaCBATG9nLCB7CiAgICAgICAgICAgICAgICAgICAgJ2VuZHBvaW50JyA9PiAnb3BlbmlkJywKICAgICAgICAgICAgICAgICAgICAnY29udGVudCcgID0+ICcnLAogICAgICAgICAgICAgICAgfTsKCiAgICAgICAgICAgICAgICAjIHRoZSB0ZXN0IGZpeHR1cmUgZnJvbSBoZWxsCiAgICAgICAgICAgICAgICAjIHJlY29yZGVkIGZyb20gY29udmVyc2F0aW9ucyB3aXRoIGtleWNsb2FrCiAgICAgICAgICAgICAgICBteSAkRGF0YSA9IHsKICAgICAgICAgICAgICAgICAgICAiaXNzdWVyIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gImh0dHA6Ly9sb2NhbGhvc3Q6MjAwNy9yZWFsbXMvbWFzdGVyIiwKICAgICAgICAgICAgICAgICAgICAiYXV0aG9yaXphdGlvbl9lbmRwb2ludCIgICAgICAgICAgICAgICAgPT4gImh0dHA6Ly9sb2NhbGhvc3Q6MjAwNy9yZWFsbXMvbWFzdGVyL3Byb3RvY29sL29wZW5pZC1jb25uZWN0L2F1dGgiLAogICAgICAgICAgICAgICAgICAgICJ0b2tlbl9lbmRwb2ludCIgICAgICAgICAgICAgICAgICAgICAgICA9PiAiaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW4iLAogICAgICAgICAgICAgICAgICAgICJpbnRyb3NwZWN0aW9uX2VuZHBvaW50IiAgICAgICAgICAgICAgICA9PiAiaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW4vaW50cm9zcGVjdCIsCiAgICAgICAgICAgICAgICAgICAgInVzZXJpbmZvX2VuZHBvaW50IiAgICAgICAgICAgICAgICAgICAgID0+ICJodHRwOi8vbG9jYWxob3N0OjIwMDcvcmVhbG1zL21hc3Rlci9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC91c2VyaW5mbyIsCiAgICAgICAgICAgICAgICAgICAgImVuZF9zZXNzaW9uX2VuZHBvaW50IiAgICAgICAgICAgICAgICAgID0+ICJodHRwOi8vbG9jYWxob3N0OjIwMDcvcmVhbG1zL21hc3Rlci9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC9sb2dvdXQiLAogICAgICAgICAgICAgICAgICAgICJmcm9udGNoYW5uZWxfbG9nb3V0X3Nlc3Npb25fc3VwcG9ydGVkIiA9PiAxLAogICAgICAgICAgICAgICAgICAgICJmcm9udGNoYW5uZWxfbG9nb3V0X3N1cHBvcnRlZCIgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgICAgICJqd2tzX3VyaSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvY2VydHMiLAogICAgICAgICAgICAgICAgICAgICJjaGVja19zZXNzaW9uX2lmcmFtZSIgICAgICAgICAgICAgICAgICA9PiAiaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvbG9naW4tc3RhdHVzLWlmcmFtZS5odG1sIiwKICAgICAgICAgICAgICAgICAgICAiZ3JhbnRfdHlwZXNfc3VwcG9ydGVkIiAgICAgICAgICAgICAgICAgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAiYXV0aG9yaXphdGlvbl9jb2RlIiwgImltcGxpY2l0IiwgInJlZnJlc2hfdG9rZW4iLCAicGFzc3dvcmQiLCAiY2xpZW50X2NyZWRlbnRpYWxzIiwKICAgICAgICAgICAgICAgICAgICAgICAgInVybjpvcGVuaWQ6cGFyYW1zOmdyYW50LXR5cGU6Y2liYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ1cm46aWV0ZjpwYXJhbXM6b2F1dGg6Z3JhbnQtdHlwZTpkZXZpY2VfY29kZSIKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICJhY3JfdmFsdWVzX3N1cHBvcnRlZCIgICAgICAgICAgICAgICAgICA9PiBbICIwIiwgICAgICAiMSIgXSwKICAgICAgICAgICAgICAgICAgICAicmVzcG9uc2VfdHlwZXNfc3VwcG9ydGVkIiAgICAgICAgICAgICAgPT4gWyAiY29kZSIsICAgIm5vbmUiLCAiaWRfdG9rZW4iLCAidG9rZW4iLCAiaWRfdG9rZW4gdG9rZW4iLCAiY29kZSBpZF90b2tlbiIsICJjb2RlIHRva2VuIiwgImNvZGUgaWRfdG9rZW4gdG9rZW4iIF0sCiAgICAgICAgICAgICAgICAgICAgInN1YmplY3RfdHlwZXNfc3VwcG9ydGVkIiAgICAgICAgICAgICAgID0+IFsgInB1YmxpYyIsICJwYWlyd2lzZSIgXSwKICAgICAgICAgICAgICAgICAgICAicHJvbXB0X3ZhbHVlc19zdXBwb3J0ZWQiICAgICAgICAgICAgICAgPT4gWyAibm9uZSIsICAgImxvZ2luIiwgImNvbnNlbnQiIF0sCiAgICAgICAgICAgICAgICAgICAgImlkX3Rva2VuX3NpZ25pbmdfYWxnX3ZhbHVlc19zdXBwb3J0ZWQiID0+CiAgICAgICAgICAgICAgICAgICAgICAgIFsgIlBTMzg0IiwgIlJTMzg0IiwgIkVkRFNBIiwgIkVTMzg0IiwgIkhTMjU2IiwgIkhTNTEyIiwgIkVTMjU2IiwgIlJTMjU2IiwgIkhTMzg0IiwgIkVTNTEyIiwgIlBTMjU2IiwgIlBTNTEyIiwgIlJTNTEyIiBdLAogICAgICAgICAgICAgICAgICAgICJpZF90b2tlbl9lbmNyeXB0aW9uX2FsZ192YWx1ZXNfc3VwcG9ydGVkIiA9PiBbICJFQ0RILUVTK0EyNTZLVyIsICJFQ0RILUVTK0ExOTJLVyIsICJFQ0RILUVTK0ExMjhLVyIsICJSU0EtT0FFUCIsICJSU0EtT0FFUC0yNTYiLCAiUlNBMV81IiwgIkVDREgtRVMiIF0sCiAgICAgICAgICAgICAgICAgICAgImlkX3Rva2VuX2VuY3J5cHRpb25fZW5jX3ZhbHVlc19zdXBwb3J0ZWQiID0+IFsgIkEyNTZHQ00iLCAiQTE5MkdDTSIsICJBMTI4R0NNIiwgIkExMjhDQkMtSFMyNTYiLCAiQTE5MkNCQy1IUzM4NCIsICJBMjU2Q0JDLUhTNTEyIiBdLAogICAgICAgICAgICAgICAgICAgICJ1c2VyaW5mb19zaWduaW5nX2FsZ192YWx1ZXNfc3VwcG9ydGVkIiAgICA9PgogICAgICAgICAgICAgICAgICAgICAgICBbICJQUzM4NCIsICJSUzM4NCIsICJFZERTQSIsICJFUzM4NCIsICJIUzI1NiIsICJIUzUxMiIsICJFUzI1NiIsICJSUzI1NiIsICJIUzM4NCIsICJFUzUxMiIsICJQUzI1NiIsICJQUzUxMiIsICJSUzUxMiIsICJub25lIiBdLAogICAgICAgICAgICAgICAgICAgICJ1c2VyaW5mb19lbmNyeXB0aW9uX2FsZ192YWx1ZXNfc3VwcG9ydGVkIiAgICA9PiBbICJFQ0RILUVTK0EyNTZLVyIsICJFQ0RILUVTK0ExOTJLVyIsICJFQ0RILUVTK0ExMjhLVyIsICJSU0EtT0FFUCIsICJSU0EtT0FFUC0yNTYiLCAiUlNBMV81IiwgIkVDREgtRVMiIF0sCiAgICAgICAgICAgICAgICAgICAgInVzZXJpbmZvX2VuY3J5cHRpb25fZW5jX3ZhbHVlc19zdXBwb3J0ZWQiICAgID0+IFsgIkEyNTZHQ00iLCAiQTE5MkdDTSIsICJBMTI4R0NNIiwgIkExMjhDQkMtSFMyNTYiLCAiQTE5MkNCQy1IUzM4NCIsICJBMjU2Q0JDLUhTNTEyIiBdLAogICAgICAgICAgICAgICAgICAgICJyZXF1ZXN0X29iamVjdF9zaWduaW5nX2FsZ192YWx1ZXNfc3VwcG9ydGVkIiA9PgogICAgICAgICAgICAgICAgICAgICAgICBbICJQUzM4NCIsICJSUzM4NCIsICJFZERTQSIsICJFUzM4NCIsICJIUzI1NiIsICJIUzUxMiIsICJFUzI1NiIsICJSUzI1NiIsICJIUzM4NCIsICJFUzUxMiIsICJQUzI1NiIsICJQUzUxMiIsICJSUzUxMiIsICJub25lIiBdLAogICAgICAgICAgICAgICAgICAgICJyZXF1ZXN0X29iamVjdF9lbmNyeXB0aW9uX2FsZ192YWx1ZXNfc3VwcG9ydGVkIiA9PgogICAgICAgICAgICAgICAgICAgICAgICBbICJFQ0RILUVTK0EyNTZLVyIsICJFQ0RILUVTK0ExOTJLVyIsICJFQ0RILUVTK0ExMjhLVyIsICJSU0EtT0FFUCIsICJSU0EtT0FFUC0yNTYiLCAiUlNBMV81IiwgIkVDREgtRVMiIF0sCiAgICAgICAgICAgICAgICAgICAgInJlcXVlc3Rfb2JqZWN0X2VuY3J5cHRpb25fZW5jX3ZhbHVlc19zdXBwb3J0ZWQiID0+IFsgIkEyNTZHQ00iLCAiQTE5MkdDTSIsICAiQTEyOEdDTSIsICAgIkExMjhDQkMtSFMyNTYiLCAiQTE5MkNCQy1IUzM4NCIsICJBMjU2Q0JDLUhTNTEyIiBdLAogICAgICAgICAgICAgICAgICAgICJyZXNwb25zZV9tb2Rlc19zdXBwb3J0ZWQiICAgICAgICAgICAgICAgICAgICAgICA9PiBbICJxdWVyeSIsICAgImZyYWdtZW50IiwgImZvcm1fcG9zdCIsICJxdWVyeS5qd3QiLCAgICAgImZyYWdtZW50Lmp3dCIsICAiZm9ybV9wb3N0Lmp3dCIsICJqd3QiIF0sCiAgICAgICAgICAgICAgICAgICAgInJlZ2lzdHJhdGlvbl9lbmRwb2ludCIgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJodHRwOi8vbG9jYWxob3N0OjIwMDcvcmVhbG1zL21hc3Rlci9jbGllbnRzLXJlZ2lzdHJhdGlvbnMvb3BlbmlkLWNvbm5lY3QiLAogICAgICAgICAgICAgICAgICAgICJ0b2tlbl9lbmRwb2ludF9hdXRoX21ldGhvZHNfc3VwcG9ydGVkIiAgICAgICAgICA9PiBbICJwcml2YXRlX2tleV9qd3QiLCAiY2xpZW50X3NlY3JldF9iYXNpYyIsICJjbGllbnRfc2VjcmV0X3Bvc3QiLCAidGxzX2NsaWVudF9hdXRoIiwgImNsaWVudF9zZWNyZXRfand0IiBdLAogICAgICAgICAgICAgICAgICAgICJ0b2tlbl9lbmRwb2ludF9hdXRoX3NpZ25pbmdfYWxnX3ZhbHVlc19zdXBwb3J0ZWQiID0+CiAgICAgICAgICAgICAgICAgICAgICAgIFsgIlBTMzg0IiwgIlJTMzg0IiwgIkVkRFNBIiwgIkVTMzg0IiwgIkhTMjU2IiwgIkhTNTEyIiwgIkVTMjU2IiwgIlJTMjU2IiwgIkhTMzg0IiwgIkVTNTEyIiwgIlBTMjU2IiwgIlBTNTEyIiwgIlJTNTEyIiBdLAogICAgICAgICAgICAgICAgICAgICJpbnRyb3NwZWN0aW9uX2VuZHBvaW50X2F1dGhfbWV0aG9kc19zdXBwb3J0ZWQiID0+CiAgICAgICAgICAgICAgICAgICAgICAgIFsgInByaXZhdGVfa2V5X2p3dCIsICJjbGllbnRfc2VjcmV0X2Jhc2ljIiwgImNsaWVudF9zZWNyZXRfcG9zdCIsICJ0bHNfY2xpZW50X2F1dGgiLCAiY2xpZW50X3NlY3JldF9qd3QiIF0sCiAgICAgICAgICAgICAgICAgICAgImludHJvc3BlY3Rpb25fZW5kcG9pbnRfYXV0aF9zaWduaW5nX2FsZ192YWx1ZXNfc3VwcG9ydGVkIiA9PgogICAgICAgICAgICAgICAgICAgICAgICBbICJQUzM4NCIsICJSUzM4NCIsICJFZERTQSIsICJFUzM4NCIsICJIUzI1NiIsICJIUzUxMiIsICJFUzI1NiIsICJSUzI1NiIsICJIUzM4NCIsICJFUzUxMiIsICJQUzI1NiIsICJQUzUxMiIsICJSUzUxMiIgXSwKICAgICAgICAgICAgICAgICAgICAiYXV0aG9yaXphdGlvbl9zaWduaW5nX2FsZ192YWx1ZXNfc3VwcG9ydGVkIiA9PgogICAgICAgICAgICAgICAgICAgICAgICBbICJQUzM4NCIsICJSUzM4NCIsICJFZERTQSIsICJFUzM4NCIsICJIUzI1NiIsICJIUzUxMiIsICJFUzI1NiIsICJSUzI1NiIsICJIUzM4NCIsICJFUzUxMiIsICJQUzI1NiIsICJQUzUxMiIsICJSUzUxMiIgXSwKICAgICAgICAgICAgICAgICAgICAiYXV0aG9yaXphdGlvbl9lbmNyeXB0aW9uX2FsZ192YWx1ZXNfc3VwcG9ydGVkIiA9PgogICAgICAgICAgICAgICAgICAgICAgICBbICJFQ0RILUVTK0EyNTZLVyIsICJFQ0RILUVTK0ExOTJLVyIsICJFQ0RILUVTK0ExMjhLVyIsICJSU0EtT0FFUCIsICJSU0EtT0FFUC0yNTYiLCAiUlNBMV81IiwgIkVDREgtRVMiIF0sCiAgICAgICAgICAgICAgICAgICAgImF1dGhvcml6YXRpb25fZW5jcnlwdGlvbl9lbmNfdmFsdWVzX3N1cHBvcnRlZCIgPT4gWyAiQTI1NkdDTSIsICJBMTkyR0NNIiwgIkExMjhHQ00iLCAiQTEyOENCQy1IUzI1NiIsICJBMTkyQ0JDLUhTMzg0IiwgIkEyNTZDQkMtSFM1MTIiIF0sCiAgICAgICAgICAgICAgICAgICAgImNsYWltc19zdXBwb3J0ZWQiICAgICAgICAgICA9PiBbICJhdWQiLCAic3ViIiwgImlzcyIsICJhdXRoX3RpbWUiLCAibmFtZSIsICJnaXZlbl9uYW1lIiwgImZhbWlseV9uYW1lIiwgInByZWZlcnJlZF91c2VybmFtZSIsICJlbWFpbCIsICJhY3IiIF0sCiAgICAgICAgICAgICAgICAgICAgImNsYWltX3R5cGVzX3N1cHBvcnRlZCIgICAgICA9PiBbIm5vcm1hbCJdLAogICAgICAgICAgICAgICAgICAgICJjbGFpbXNfcGFyYW1ldGVyX3N1cHBvcnRlZCIgPT4gMSwKICAgICAgICAgICAgICAgICAgICAic2NvcGVzX3N1cHBvcnRlZCIgICAgICAgICAgID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgIm9wZW5pZCIsICAgICAgICAgICJvcmdhbml6YXRpb24iLCAicGhvbmUiLCAib2ZmbGluZV9hY2Nlc3MiLCAicHJvZmlsZSIsICJ3ZWItb3JpZ2lucyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzZXJ2aWNlX2FjY291bnQiLCAiYmFzaWMiLCAgICAgICAgImVtYWlsIiwgImFjciIsICAgICAgICAgICAgImFkZHJlc3MiLCAibWljcm9wcm9maWxlLWp3dCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJpbWFwIiwgICAgICAgICAgICAicm9sZXMiCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAicmVxdWVzdF9wYXJhbWV0ZXJfc3VwcG9ydGVkIiAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgICAgICJyZXF1ZXN0X3VyaV9wYXJhbWV0ZXJfc3VwcG9ydGVkIiAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgInJlcXVpcmVfcmVxdWVzdF91cmlfcmVnaXN0cmF0aW9uIiAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgICAgICAiY29kZV9jaGFsbGVuZ2VfbWV0aG9kc19zdXBwb3J0ZWQiICAgICAgICAgICA9PiBbICJwbGFpbiIsICJTMjU2IiBdLAogICAgICAgICAgICAgICAgICAgICJ0bHNfY2xpZW50X2NlcnRpZmljYXRlX2JvdW5kX2FjY2Vzc190b2tlbnMiID0+IDEsCiAgICAgICAgICAgICAgICAgICAgInJldm9jYXRpb25fZW5kcG9pbnQiICAgICAgICAgICAgICAgICAgICAgICAgPT4gImh0dHA6Ly9sb2NhbGhvc3Q6MjAwNy9yZWFsbXMvbWFzdGVyL3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Jldm9rZSIsCiAgICAgICAgICAgICAgICAgICAgInJldm9jYXRpb25fZW5kcG9pbnRfYXV0aF9tZXRob2RzX3N1cHBvcnRlZCIgPT4gWyAicHJpdmF0ZV9rZXlfand0IiwgImNsaWVudF9zZWNyZXRfYmFzaWMiLCAiY2xpZW50X3NlY3JldF9wb3N0IiwgInRsc19jbGllbnRfYXV0aCIsICJjbGllbnRfc2VjcmV0X2p3dCIgXSwKICAgICAgICAgICAgICAgICAgICAicmV2b2NhdGlvbl9lbmRwb2ludF9hdXRoX3NpZ25pbmdfYWxnX3ZhbHVlc19zdXBwb3J0ZWQiID0+CiAgICAgICAgICAgICAgICAgICAgICAgIFsgIlBTMzg0IiwgIlJTMzg0IiwgIkVkRFNBIiwgIkVTMzg0IiwgIkhTMjU2IiwgIkhTNTEyIiwgIkVTMjU2IiwgIlJTMjU2IiwgIkhTMzg0IiwgIkVTNTEyIiwgIlBTMjU2IiwgIlBTNTEyIiwgIlJTNTEyIiBdLAogICAgICAgICAgICAgICAgICAgICJiYWNrY2hhbm5lbF9sb2dvdXRfc3VwcG9ydGVkIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgImJhY2tjaGFubmVsX2xvZ291dF9zZXNzaW9uX3N1cHBvcnRlZCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgICAgICAiZGV2aWNlX2F1dGhvcml6YXRpb25fZW5kcG9pbnQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvYXV0aC9kZXZpY2UiLAogICAgICAgICAgICAgICAgICAgICJiYWNrY2hhbm5lbF90b2tlbl9kZWxpdmVyeV9tb2Rlc19zdXBwb3J0ZWQiICAgICAgICAgICAgICAgICAgICAgID0+IFsgInBvbGwiLCAicGluZyIgXSwKICAgICAgICAgICAgICAgICAgICAiYmFja2NoYW5uZWxfYXV0aGVudGljYXRpb25fZW5kcG9pbnQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvZXh0L2NpYmEvYXV0aCIsCiAgICAgICAgICAgICAgICAgICAgImJhY2tjaGFubmVsX2F1dGhlbnRpY2F0aW9uX3JlcXVlc3Rfc2lnbmluZ19hbGdfdmFsdWVzX3N1cHBvcnRlZCIgPT4KICAgICAgICAgICAgICAgICAgICAgICAgWyAiUFMzODQiLCAiUlMzODQiLCAiRWREU0EiLCAiRVMzODQiLCAiRVMyNTYiLCAiUlMyNTYiLCAiRVM1MTIiLCAiUFMyNTYiLCAiUFM1MTIiLCAiUlM1MTIiIF0sCiAgICAgICAgICAgICAgICAgICAgInJlcXVpcmVfcHVzaGVkX2F1dGhvcml6YXRpb25fcmVxdWVzdHMiID0+IDAsCiAgICAgICAgICAgICAgICAgICAgInB1c2hlZF9hdXRob3JpemF0aW9uX3JlcXVlc3RfZW5kcG9pbnQiID0+ICJodHRwOi8vbG9jYWxob3N0OjIwMDcvcmVhbG1zL21hc3Rlci9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC9leHQvcGFyL3JlcXVlc3QiLAogICAgICAgICAgICAgICAgICAgICJtdGxzX2VuZHBvaW50X2FsaWFzZXMiICAgICAgICAgICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ0b2tlbl9lbmRwb2ludCIgICAgICAgICAgICAgICAgICAgICAgICA9PiAiaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW4iLAogICAgICAgICAgICAgICAgICAgICAgICAicmV2b2NhdGlvbl9lbmRwb2ludCIgICAgICAgICAgICAgICAgICAgPT4gImh0dHA6Ly9sb2NhbGhvc3Q6MjAwNy9yZWFsbXMvbWFzdGVyL3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Jldm9rZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJpbnRyb3NwZWN0aW9uX2VuZHBvaW50IiAgICAgICAgICAgICAgICA9PiAiaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW4vaW50cm9zcGVjdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJkZXZpY2VfYXV0aG9yaXphdGlvbl9lbmRwb2ludCIgICAgICAgICA9PiAiaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvYXV0aC9kZXZpY2UiLAogICAgICAgICAgICAgICAgICAgICAgICAicmVnaXN0cmF0aW9uX2VuZHBvaW50IiAgICAgICAgICAgICAgICAgPT4gImh0dHA6Ly9sb2NhbGhvc3Q6MjAwNy9yZWFsbXMvbWFzdGVyL2NsaWVudHMtcmVnaXN0cmF0aW9ucy9vcGVuaWQtY29ubmVjdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ1c2VyaW5mb19lbmRwb2ludCIgICAgICAgICAgICAgICAgICAgICA9PiAiaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdXNlcmluZm8iLAogICAgICAgICAgICAgICAgICAgICAgICAicHVzaGVkX2F1dGhvcml6YXRpb25fcmVxdWVzdF9lbmRwb2ludCIgPT4gImh0dHA6Ly9sb2NhbGhvc3Q6MjAwNy9yZWFsbXMvbWFzdGVyL3Byb3RvY29sL29wZW5pZC1jb25uZWN0L2V4dC9wYXIvcmVxdWVzdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJiYWNrY2hhbm5lbF9hdXRoZW50aWNhdGlvbl9lbmRwb2ludCIgICA9PiAiaHR0cDovL2xvY2FsaG9zdDoyMDA3L3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvZXh0L2NpYmEvYXV0aCIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJhdXRob3JpemF0aW9uX3Jlc3BvbnNlX2lzc19wYXJhbWV0ZXJfc3VwcG9ydGVkIiA9PiAxCiAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgIHJldHVybiBbCiAgICAgICAgICAgICAgICAgICAgMjAwLAogICAgICAgICAgICAgICAgICAgIFsgIkNvbnRlbnQtVHlwZSIgPT4gJ2FwcGxpY2F0aW9uL2pzb24nIF0sCiAgICAgICAgICAgICAgICAgICAgWyBlbmNvZGVfanNvbigkRGF0YSkgXQogICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRSZXEtPnBhdGgoKSBlcSAnL3JlYWxtcy9tYXN0ZXIvcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvY2VydHMnICkgewoKICAgICAgICAgICAgICAgIHB1c2ggQExvZywgewogICAgICAgICAgICAgICAgICAgICdlbmRwb2ludCcgPT4gJ2p3a3MnLAogICAgICAgICAgICAgICAgICAgICdjb250ZW50JyAgPT4gJycsCiAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgICMgdGhpcyBpcyB0aGUgandrcyB1cmwgZW5kcG9pbnQsIGhlcmUgd2UgcmV0dXJuIHRoZSBtYWdpYyBrZXkgZGF0YQogICAgICAgICAgICAgICAgbXkgJERhdGEgPSB7CgogICAgICAgICAgICAgICAgICAgICJrZXlzIiA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJraWQiID0+ICRPQXV0aFByb3ZpZGVyTW9jazo6S2lkSUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAia3R5IiA9PiAkS2lkRGF0YS0+e2t0eX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWxnIiA9PiAiUlMyNTYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInVzZSIgPT4gInNpZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAibiIgICA9PiAkS2lkRGF0YS0+e259LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgImUiICAgPT4gJEtpZERhdGEtPntlfSwKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICAgICAgICAyMDAsCiAgICAgICAgICAgICAgICAgICAgWyAiQ29udGVudC1UeXBlIiA9PiAnYXBwbGljYXRpb24vanNvbicgXSwKICAgICAgICAgICAgICAgICAgICBbIGVuY29kZV9qc29uKCREYXRhKSBdCiAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJFJlcS0+cGF0aCgpIGVxICcvcmVhbG1zL21hc3Rlci9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC90b2tlbicgKSB7CgogICAgICAgICAgICAgICAgIyB0aGlzIGlzIHRoZSB0b2tlbiBlbmRwb2ludCwgZ2VuZXJhdGUgYSBmcmVzaCBKV1QgdG9rZW4gYW5kIHJldHVybiBpdAogICAgICAgICAgICAgICAgbXkgJFBhcmFtcyA9ICRSZXEtPnBhcmFtZXRlcnMoKTsKICAgICAgICAgICAgICAgIG15ICRTY29wZSAgPSAkUGFyYW1zLT57c2NvcGV9OyAgICAgIyBhbHdheXMgcmV0dXJuIEpXVCB3aXRoIHNjb3BlcyBhcyByZXF1ZXN0ZWQKCiAgICAgICAgICAgICAgICBwdXNoIEBMb2csIHsKICAgICAgICAgICAgICAgICAgICAnZW5kcG9pbnQnID0+ICd0b2tlbicsCiAgICAgICAgICAgICAgICAgICAgJ2NvbnRlbnQnICA9PiAkUmVxLT5jb250ZW50KCksCiAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgICMgdmFsaWRhdGUgY3JlZGVudGlhbHMgLSB0aGlzIGV4cGVjdHMgY2xpZW50X2NyZWRlbnRpYWxzIGZsb3cgc28gYmFzaWMgYXV0aAogICAgICAgICAgICAgICAgIyBoYXMgY2xpZW50X2lkIGFuZCBjbGllbnRfc2VjcmV0IGZyb20gR2V0VGVzdE9wZW5JRENvbmZpZygpIGluIHRoZSBCYXNlNjQKICAgICAgICAgICAgICAgIGlmICggJFJlcS0+aGVhZGVycygpLT57YXV0aG9yaXphdGlvbn0gbmUgJ0Jhc2ljIGIzUnZZbTg2TVRJek5EVTJOemc1T0RjMk5UUXpNakU9JyApIHsKCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICAgICAgICAgICAgNDAxLAogICAgICAgICAgICAgICAgICAgICAgICBbXSwKICAgICAgICAgICAgICAgICAgICAgICAgW10KICAgICAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIG15ICRBY2Nlc3NUb2tlblBheWxvYWQgPSBQYXlsb2FkKCk7CiAgICAgICAgICAgICAgICAkQWNjZXNzVG9rZW5QYXlsb2FkLT57c2NvcGV9ID0gJFNjb3BlOwoKICAgICAgICAgICAgICAgIG15ICRBY2Nlc3NUb2tlbiA9IGVuY29kZV9qd3QoCiAgICAgICAgICAgICAgICAgICAgcGF5bG9hZCAgICAgICA9PiAkQWNjZXNzVG9rZW5QYXlsb2FkLAogICAgICAgICAgICAgICAgICAgIGFsZyAgICAgICAgICAgPT4gJ1JTMjU2JywKICAgICAgICAgICAgICAgICAgICBrZXkgICAgICAgICAgID0+ICRPQXV0aFByb3ZpZGVyTW9jazo6UHJpdmF0ZUtleSwKICAgICAgICAgICAgICAgICAgICBleHRyYV9oZWFkZXJzID0+IHsga2lkID0+ICRPQXV0aFByb3ZpZGVyTW9jazo6S2lkSUQgfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbXkgJElEVG9rZW5QYXlsb2FkID0gUGF5bG9hZCgpOwogICAgICAgICAgICAgICAgJElEVG9rZW5QYXlsb2FkLT57dHlwfSAgID0gJ0lEJzsKICAgICAgICAgICAgICAgICRJRFRva2VuUGF5bG9hZC0+e3Njb3BlfSA9ICRTY29wZTsKCiAgICAgICAgICAgICAgICBteSAkSURUb2tlbiA9IGVuY29kZV9qd3QoCiAgICAgICAgICAgICAgICAgICAgcGF5bG9hZCAgICAgICA9PiAkSURUb2tlblBheWxvYWQsCiAgICAgICAgICAgICAgICAgICAgYWxnICAgICAgICAgICA9PiAnUlMyNTYnLAogICAgICAgICAgICAgICAgICAgIGtleSAgICAgICAgICAgPT4gJE9BdXRoUHJvdmlkZXJNb2NrOjpQcml2YXRlS2V5LAogICAgICAgICAgICAgICAgICAgIGV4dHJhX2hlYWRlcnMgPT4geyBraWQgPT4gJE9BdXRoUHJvdmlkZXJNb2NrOjpLaWRJRCB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBteSAkRGF0YSA9IHsKICAgICAgICAgICAgICAgICAgICBhY2Nlc3NfdG9rZW4gID0+ICRBY2Nlc3NUb2tlbiwKICAgICAgICAgICAgICAgICAgICBpZF90b2tlbiAgICAgID0+ICRJRFRva2VuLAogICAgICAgICAgICAgICAgICAgIHJlZnJlc2hfdG9rZW4gPT4gJEFjY2Vzc1Rva2VuLAogICAgICAgICAgICAgICAgfTsKCiAgICAgICAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAgICAgICAgIDIwMCwKICAgICAgICAgICAgICAgICAgICBbICJDb250ZW50LVR5cGUiID0+ICdhcHBsaWNhdGlvbi9qc29uJyBdLAogICAgICAgICAgICAgICAgICAgIFsgZW5jb2RlX2pzb24oJERhdGEpIF0KICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkUmVxLT5wYXRoKCkgZXEgJy9yZWFsbXMvbWFzdGVyL3Byb3RvY29sL29wZW5pZC1jb25uZWN0L2xvZycgKSB7CgogICAgICAgICAgICAgICAgbXkgJEpzb24gPSBlbmNvZGVfanNvbiggXEBMb2cgKTsKICAgICAgICAgICAgICAgIEBMb2cgPSAoKTsgICAgIyByZXNldCBsb2cKCiAgICAgICAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAgICAgICAgIDIwMCwKICAgICAgICAgICAgICAgICAgICBbICJDb250ZW50LVR5cGUiID0+ICdhcHBsaWNhdGlvbi9qc29uJyBdLAogICAgICAgICAgICAgICAgICAgIFskSnNvbl0KICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiBbCiAgICAgICAgICAgICAgICA0MDQsCiAgICAgICAgICAgICAgICBbXSwKICAgICAgICAgICAgICAgIFsiTm90IEZvdW5kISJdCiAgICAgICAgICAgIF07CiAgICAgICAgfTsKCiAgICAgICAgbXkgJFJ1bm5lciA9IFBsYWNrOjpSdW5uZXItPm5ldzsKICAgICAgICAkUnVubmVyLT5wYXJzZV9vcHRpb25zKHF3Jy0tbm8tZGVmYXVsdC1taWRkbGV3YXJlIC0taG9zdCAxMjcuMC4wLjEgLS1wb3J0IDIwMDcnKTsKICAgICAgICAkUnVubmVyLT5ydW4oJEFwcCk7CiAgICB9CiAgICBjYXRjaCB7CiAgICAgICAgcHJpbnQgU1RERVJSICRfIC4gIlxuIjsKICAgICAgICBleGl0IDE7CiAgICB9OwogICAgZXhpdCAwOwp9CgoxOwo=</File>
        <File Location="doc/en/OAuth2.pdf" Permission="644" Encode="Base64">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+oD1AesD1gesD1gfsD5gfcD6gPUB6wPWB+tLANYHrA9YH7A+YH3A+oD1AesD1gesD1gfsD5gfcD6gPUB6wPWB6wPWB+sD1gfsD5gfcD6gPUB6wPWB6wPWB+wPmB9wPqA9QHrA9YHrA9YH7A+YH2wPmB9wPqA9QHrA9YHrA9YH7A+YH3A+oD1AesD1gesD1gfsD5gfcD6gPXB+oD1AesD1gesD1gfsD5gfcD6gPUB6wPWB6wPWB+wPmB9wPqA9QHrA9YH6wPWB6wPWB+wPmB9wPqA9QHrA9YHrA9YH7A+YH3A+oD1AesD1gesD1gfrA9YH7A+YH3A+oD1AesD1gesD1gfsD5gfcD6gPUB6wPWB6wPWB+wPmB9sD5gfcD6gPUB6wPWB6wPWB+wPmB9wPqA9QHrA9YHrA9YH7A+YH3A+mB9wPqA9QHrA9YHrA9YH7A+YH3A+oD1AesD1gesD1gfsD5gfcD6gPUB64P1AesD1gesD1gfsD5gfcD6gPUB6wPWB6wPWB+wPmB9wPqA9QHrA9YHrA/WB6wPWB+wPmB9wPqA9QHrA9YHrA9YH7A+YH3A+oD1AesD1gesD1gfsD5YH7A+YH3A+oD1AesD1gesD1gfsD5gfcD6gPUB6wPWB6wPWB+wPmB9wPpgfcD6gPUB6wPWB6wPWB+wPmB9wPqA9QHrA9YHrA9YH7A+YH3A+oD1AeuD9QHrA9YHrA9YH7A+YH3A+oD1AesD1gesD1gfsD5gfcD6gPUB6wPWB+tLANYHrA9YH7A+YH3A+oD1AesD1gesD1gfsD5gfcD6gPUB6wPWB6wPWB+sD1gfsD5gfcD6gPUB6wPWB6wPWB+wPmB9wPqA9QHrA9YHrA9YH7A+YH2wPmB9wPqA9QHrA9YHrA9YH7A+YH3A+oD1AesD1gesD1gfsD5gfcD6gPXB+oD1AesD1gesD1gfsD5gfcD6gPUB6wPWB6wPWB+wPmB9wPqA9QHrA9YH6wPWB6wPWB+wPmB9wPqA9QHrA9YHrA9YH7A+YH3A+oD1AesD1gesD1gfrA9YH7A+YH3A+oD1AesD1gesD1gfsD5gfcD6gPUB6wPWB6wPWB+wPmB9sD5gfcD6gPUB6wPWB6wPWB+wPmB9wPqA9QHrA9YHrA9YH7A+YH3A+mB9wPqA9QHrA9YHrA9YH7A+YH3A+oD1AesD1gesD1gfsD5g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CgbFoGBQMCgGBYNiUDAoGBSDgkExKBgUDIpBwaBgUAwKBsWgYFAwKAYFg2JQMCgYFIOCQTEoGBQMikHBoBgUDAoGxaBgUDAoBgWDYlAwKBgUg4JBMSgYFAyKQcGgGBQMCgbFoGBQDAoGBYNiUDAoGBSDgkExKBgUDIpBwaAYFAwKBsWgYFAMCgYFg2JQMCgGBYOCQTEoGBQMikHBoBgUDAoGxaBgUAwKBgWDYlAwKAYFg4JBMSgYFIOCQcGgGBQMCgbFoGBQDAoGBYNiUDAoBgWDgkExKBgUg4JBwaAYFAyKQcGgYFAMCgYFg2JQMCgGBYOCQTEoGBSDgkHBoBgUDIpBwaBgUAwKBsWgYFAwKAYFg2JQCTAoGBSDgkHBoBgUDIpBwaBgUAwKBsWgYFAwKAYFg2JQMCgYFIOCQTEoGBQMikHBoGBQDAoGxaBgUDAoBgWDYlAwKBgUg4JBMSgYFAyKQcGgGBQMCgbFoGBQMCgGBYNiUDAoGBSDgkExKBgUDIpBwaAYFAwKBsWgYFAMCgYFg2JQMCgYFIOCQTEoGBQMikHBoBgUDAoGxaBgUAwKBgWDYlAwKAYFg4JBMSgYFAyKQcGgGBQMCgbFoGBQDAoGBYNiUDAoBgWDgkExKBgUg4JBwaAYFAwKBsWgYFAMCgYFg2JQMCgGBYOCQTEoGBSDgkHBoBgUDIpBwaBgUAwKBgWDYlAwKAYFg4JBMSgYFIOCQcGgGBQMikHBoGBQDAoGxaBgUDAoBgWDgkExKBgUg4JBwaAYFAyKQcGgYFAMCgbFoGBQMCgGBYNiUDAoGBSDgkHBoBgUDIpBwaBgUAwKBsWgYFAwKAYFg2JQMCgYFIOCQTEoGBQMikHBoGBQDAoGxaBgUDAoBgWDYlAwKBgUg4JBMSgYFAyKQcGgGBQMCgbFoGBQMCgGBYNiUDAoGBSDgkExKBgUDIpBwaAYFAwKBsWgYFAMCgYFg2JQMCgGlQCDgkExKBgUDIpBwaAYFAwKBsWgYFAMCgYFg2JQMCgGBYOCQTEoGBSDgkHBoBgUDAoGxaBgUAwKBgWDYlAwKAYFg4JBMSgYFIOCQcGgGBQMikHBoGBQDAoGBYNiUDAoBgWDgkExKBgUg4JBwaAYFAyKQcGgYFAMCgbFoGBQMCgGBYOCQTEoGBSDgkHBoBgUDIpBwaBgUAwKBsWgYFAwKAYFg2JQ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</File>
    </Filelist>
    <DatabaseInstall Type="post">
        <TableCreate Type="post" Name="oidc_profiles">
            <Column AutoIncrement="true" Name="id" PrimaryKey="true" Required="true" Type="INTEGER"></Column>
            <Column Name="name" Required="true" Size="256" Type="VARCHAR"></Column>
            <Column Name="client_id" Required="true" Size="1024" Type="VARCHAR"></Column>
            <Column Name="client_secret" Required="true" Size="2048" Type="VARCHAR"></Column>
            <Column Name="redirect_uri" Required="true" Size="4096" Type="VARCHAR"></Column>
            <Column Name="openid_config" Required="true" Size="4096" Type="VARCHAR"></Column>
            <Column Name="ssl_options" Required="true" Size="2048" Type="VARCHAR"></Column>
            <Column Name="misc" Required="true" Size="4096" Type="VARCHAR"></Column>
            <Column Name="ttl" Required="true" Type="INTEGER"></Column>
            <Column Name="create_time" Required="true" Type="DATE"></Column>
            <Column Name="create_by" Required="true" Type="INTEGER"></Column>
            <Column Name="change_time" Required="true" Type="DATE"></Column>
            <Column Name="change_by" Required="true" Type="INTEGER"></Column>
            <Column Name="valid_id" Required="true" Type="SMALLINT"></Column>
            <Unique Name="oidc_profiles_name">
                                <UniqueColumn Name="name"></UniqueColumn>
</Unique>
            <ForeignKey ForeignTable="users">
                <Reference Foreign="id" Local="create_by">
                </Reference>
            </ForeignKey>
            <ForeignKey ForeignTable="users">
                <Reference Foreign="id" Local="change_by">
                </Reference>
            </ForeignKey>
            <ForeignKey ForeignTable="valid">
                <Reference Foreign="id" Local="valid_id">
                </Reference>
            </ForeignKey>
        </TableCreate>
        <TableCreate Type="post" Name="oidc_functional_accounts">
            <Column AutoIncrement="true" Name="id" PrimaryKey="true" Required="true" Type="INTEGER"></Column>
            <Column Name="name" Required="true" Size="256" Type="VARCHAR"></Column>
            <Column Name="oidc_profile_id" Required="true" Type="INTEGER"></Column>
            <Column Name="grant_type" Required="true" Size="128" Type="VARCHAR"></Column>
            <Column Name="scopes" Required="true" Size="4096" Type="VARCHAR"></Column>
            <Column Name="resources" Required="true" Size="4096" Type="VARCHAR"></Column>
            <Column Name="resource_param_name" Required="true" Size="128" Type="VARCHAR"></Column>
            <Column Name="username" Required="false" Size="256" Type="VARCHAR"></Column>
            <Column Name="passwd" Required="false" Size="256" Type="VARCHAR"></Column>
            <Column Name="token_type" Required="true" Size="64" Type="VARCHAR"></Column>
            <Column Name="create_time" Required="true" Type="DATE"></Column>
            <Column Name="create_by" Required="true" Type="INTEGER"></Column>
            <Column Name="change_time" Required="true" Type="DATE"></Column>
            <Column Name="change_by" Required="true" Type="INTEGER"></Column>
            <Column Name="valid_id" Required="true" Type="SMALLINT"></Column>
            <Unique Name="oidc_functional_accounts_name">
                                <UniqueColumn Name="name"></UniqueColumn>
</Unique>
            <ForeignKey ForeignTable="oidc_profiles">
                <Reference Foreign="id" Local="oidc_profile_id">
                </Reference>
            </ForeignKey>
            <ForeignKey ForeignTable="users">
                <Reference Foreign="id" Local="create_by">
                </Reference>
            </ForeignKey>
            <ForeignKey ForeignTable="users">
                <Reference Foreign="id" Local="change_by">
                </Reference>
            </ForeignKey>
            <ForeignKey ForeignTable="valid">
                <Reference Foreign="id" Local="valid_id">
                </Reference>
            </ForeignKey>
        </TableCreate>
        <TableCreate Type="post" Name="oauth2_token_storage">
            <Column AutoIncrement="true" Name="id" PrimaryKey="true" Required="true" Type="INTEGER"></Column>
            <Column Name="oidc_functional_account_id" Required="true" Type="INTEGER"></Column>
            <Column Name="token_type" Required="true" Size="20" Type="VARCHAR"></Column>
            <Column Name="token" Required="true" Size="4096" Type="VARCHAR"></Column>
            <Column Name="expires_at" Required="false" Type="INTEGER"></Column>
            <ForeignKey ForeignTable="oidc_functional_accounts">
                <Reference Foreign="id" Local="oidc_functional_account_id">
                </Reference>
            </ForeignKey>
        </TableCreate>
    </DatabaseInstall>
    <DatabaseUninstall Type="pre">
        <TableDrop Type="pre" Name="oauth2_token_storage">
        </TableDrop>
        <TableDrop Type="pre" Name="oidc_functional_accounts">
        </TableDrop>
        <TableDrop Type="pre" Name="oidc_profiles">
        </TableDrop>
    </DatabaseUninstall>
</otrs_package>