<?xml version="1.0" encoding="utf-8"?>
<otrs_package version="1.0">
    <Name>Znuny-PrimarySecondary</Name>
    <Version>7.3.2</Version>
    <Framework>7.3.x</Framework>
    <Vendor>Znuny GmbH</Vendor>
    <URL>https://www.znuny.org/</URL>
    <License>GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007</License>
    <Description Lang="en">Includes "Ticket Primary/Secondary" feature.</Description>
    <Description Lang="de">Enthält "Ticket Primary/Secondary" Funktionalität.</Description>
    <ChangeLog Version="7.3.2" Date="2026-04-09 11:08:53 +0200">Updated .pm translation files.</ChangeLog>
    <ChangeLog Version="7.3.1" Date="2026-02-02 10:34:24 +0100">Initial release for Znuny 7.3.</ChangeLog>
    <ChangeLog Version="7.2.3" Date="2025-11-28 14:14:37 +0100">Fixed an issue with invalid recipient being set to send email for secondary tickets when no valid ticket customer user is set.</ChangeLog>
    <ChangeLog Version="7.2.2" Date="2025-10-21 12:35:06 +0200">Fixed: Existing link of secondary ticket other than type "ParentChild" will be deleted before linking it to the primary ticket with link type "ParentChild" to ensure updating this relation.</ChangeLog>
    <ChangeLog Version="7.2.1" Date="2025-08-29 10:40:28 +0200">Initial release for Znuny 7.2.</ChangeLog>
    <ChangeLog Version="7.1.2" Date="2024-12-05 14:26:30 +0100">Added support for deprecated flags "Master" and "SlaveOf" to dynamic field type "PrimarySecondary" when searching for primary and secondary tickets. Dashboards now search for Master and Primary in the Field PrimaryMaster.</ChangeLog>
    <ChangeLog Version="7.1.1" Date="2024-07-26 10:49:36 +0200">Initial release for Znuny 7.1.</ChangeLog>
    <ChangeLog Version="7.0.1" Date="2023-09-25 20:26:18 +0200">Initial release for Znuny 7.0.</ChangeLog>
    <ChangeLog Version="6.5.2" Date="2023-07-13 09:55:15 +0200">Initial release after renaming.</ChangeLog>
    <ChangeLog Version="6.5.1" Date="2023-02-20 14:58:45 +0100">Initital release for Znuny 6.5.</ChangeLog>
    <ChangeLog Version="6.4.1" Date="2022-07-29 11:18:50 +0200">Initital release for Znuny 6.4.</ChangeLog>
    <ChangeLog Version="6.3.2" Date="2022-03-20 10:35:41 +0100">Fixed framework version</ChangeLog>
    <ChangeLog Version="6.3.1" Date="2022-03-18 09:25:32 +0100">Ported to 6.3</ChangeLog>
    <ChangeLog Version="6.2.1" Date="2021-11-09 10:55:12 +0100">Ported to 6.2</ChangeLog>
    <BuildHost>build.znuny.com</BuildHost>
    <BuildDate>2026-04-09 09:08:53 UTC</BuildDate>
    <Filelist>
        <File Permission="660" Location="Kernel/Config/Files/XML/ZnunyPrimarySecondary.xml" Encode="Base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxvdHJzX2NvbmZpZyB2ZXJzaW9uPSIyLjAiIGluaXQ9IkNoYW5nZXMiPgogICAgPFNldHRpbmcgTmFtZT0iUHJpbWFyeVNlY29uZGFyeTo6RHluYW1pY0ZpZWxkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgZHluYW1pYyBmaWVsZCBuYW1lIGZvciBwcmltYXJ5IHRpY2tldCBmZWF0dXJlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6UHJpbWFyeVNlY29uZGFyeTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIj5QcmltYXJ5U2Vjb25kYXJ5PC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJQcmltYXJ5U2Vjb25kYXJ5OjpBZHZhbmNlZEVuYWJsZWQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RW5hYmxlcyB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBwYXJ0IG9mIHRoZSBmZWF0dXJlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6UHJpbWFyeVNlY29uZGFyeTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU2VsZWN0IiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj5EaXNhYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj5FbmFibGVkPC9JdGVtPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlByaW1hcnlTZWNvbmRhcnk6OlVuc2V0UHJpbWFyeVNlY29uZGFyeSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5FbmFibGVzIHRoZSBmZWF0dXJlIHRvIHVuc2V0IHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIG9mIGEgdGlja2V0IGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpQcmltYXJ5U2Vjb25kYXJ5PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIwIiBUcmFuc2xhdGFibGU9IjEiPkRpc2FibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIxIiBUcmFuc2xhdGFibGU9IjEiPkVuYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iUHJpbWFyeVNlY29uZGFyeTo6VXBkYXRlUHJpbWFyeVNlY29uZGFyeSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5FbmFibGVzIHRoZSBmZWF0dXJlIHRvIGNoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6UHJpbWFyeVNlY29uZGFyeTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU2VsZWN0IiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj5EaXNhYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj5FbmFibGVkPC9JdGVtPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlByaW1hcnlTZWNvbmRhcnk6OkZvbGxvd1VwZGF0ZWRQcmltYXJ5IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkVuYWJsZXMgdGhlIGZlYXR1cmUgdGhhdCBzZWNvbmRhcnkgdGlja2V0cyBmb2xsb3cgdGhlIHByaW1hcnkgdGlja2V0IHRvIGEgbmV3IHByaW1hcnkgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OlByaW1hcnlTZWNvbmRhcnk8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCIgU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAiIFRyYW5zbGF0YWJsZT0iMSI+RGlzYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjEiIFRyYW5zbGF0YWJsZT0iMSI+RW5hYmxlZDwvSXRlbT4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJQcmltYXJ5U2Vjb25kYXJ5OjpGb3J3YXJkU2Vjb25kYXJ5IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkVuYWJsZXMgdGhlIGZlYXR1cmUgdG8gZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgJ2ZvcndhcmQnIG9mIGEgcHJpbWFyeSB0aWNrZXQgdG8gdGhlIGN1c3RvbWVycyBvZiB0aGUgc2Vjb25kYXJ5IHRpY2tldHMuIEJ5IGRlZmF1bHQgKGRpc2FibGVkKSBpdCB3aWxsIG5vdCBmb3J3YXJkIGFydGljbGVzIGZyb20gdHlwZSAnZm9yd2FyZCcgdG8gdGhlIHNlY29uZGFyeSB0aWNrZXRzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6UHJpbWFyeVNlY29uZGFyeTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU2VsZWN0IiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj5EaXNhYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj5FbmFibGVkPC9JdGVtPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlByaW1hcnlTZWNvbmRhcnk6OktlZXBQYXJlbnRDaGlsZEFmdGVyVW5zZXQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RW5hYmxlcyB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIHVuc2V0IG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpQcmltYXJ5U2Vjb25kYXJ5PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiIFNlbGVjdGVkSUQ9IjAiPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIwIiBUcmFuc2xhdGFibGU9IjEiPkRpc2FibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIxIiBUcmFuc2xhdGFibGU9IjEiPkVuYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iUHJpbWFyeVNlY29uZGFyeTo6S2VlcFBhcmVudENoaWxkQWZ0ZXJVcGRhdGUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RW5hYmxlcyB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIGNoYW5nZSBvZiB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6UHJpbWFyeVNlY29uZGFyeTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU2VsZWN0IiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj5EaXNhYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj5FbmFibGVkPC9JdGVtPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpY2tldDo6RXZlbnRNb2R1bGVQb3N0IyMjUHJpbWFyeVNlY29uZGFyeSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5SZWdpc3RyYXRpb24gb2YgdGhlIHRpY2tldCBldmVudCBtb2R1bGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpFdmVudDo6UHJpbWFyeVNlY29uZGFyeTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpUaWNrZXQ6OkV2ZW50OjpQcmltYXJ5U2Vjb25kYXJ5PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFdmVudCI+QXJ0aWNsZUNyZWF0ZXxBcnRpY2xlU2VuZHxUaWNrZXRTdGF0ZVVwZGF0ZXxUaWNrZXRQcmlvcml0eVVwZGF0ZXxUaWNrZXRQZW5kaW5nVGltZVVwZGF0ZXxUaWNrZXRMb2NrVXBkYXRlfFRpY2tldE93bmVyVXBkYXRlfFRpY2tldFJlc3BvbnNpYmxlVXBkYXRlPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlByZUFwcGxpY2F0aW9uTW9kdWxlIyMjQWdlbnRQcmVQcmltYXJ5U2Vjb25kYXJ5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRoaXMgbW9kdWxlIGFjdGl2YXRlcyBQcmltYXJ5L1NlY29uZGFyeSBmaWVsZCBpbiBuZXcgZW1haWwgYW5kIHBob25lIHRpY2tldCBzY3JlZW5zLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6UHJpbWFyeVNlY29uZGFyeTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSIiPktlcm5lbDo6TW9kdWxlczo6QWdlbnRQcmVQcmltYXJ5U2Vjb25kYXJ5PC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5LjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPlByaW1hcnlTZWNvbmRhcnk8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5UaWNrZXQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjIzAwNC1abnVueVByaW1hcnlTZWNvbmRhcnkiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkphdmFTY3JpcHQiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5BZ2VudC5UaWNrZXRBY3Rpb24uanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPkNvcmUuQWdlbnQuVGlja2V0UHJpbWFyeVNlY29uZGFyeS5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjMDA0LVpudW55UHJpbWFyeVNlY29uZGFyeSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYWluIG1lbnUgaXRlbSByZWdpc3RyYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZE5hdmlnYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpY2tldDo6RnJvbnRlbmQ6Ok1lbnVNb2R1bGUjIyM0ODAtUHJpbWFyeVNlY29uZGFyeSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gY2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXR1cyBvZiBhIHRpY2tldCBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaWNrZXRab29tOjpNZW51TW9kdWxlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OlRpY2tldE1lbnU6OkdlbmVyaWM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+UHJpbWFyeSBTZWNvbmRhcnk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkNoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiB0aGUgdGlja2V0LjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aW9uIj5BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnk7VGlja2V0SUQ9WyUgRGF0YS5UaWNrZXRJRCB8IGh0bWwgJV08L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRhcmdldCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQb3B1cFR5cGUiPlRpY2tldEFjdGlvbjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkjIyNQZXJtaXNzaW9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlcXVpcmVkIHBlcm1pc3Npb25zIHRvIHVzZSB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9IiI+UHJpbWFyeVNlY29uZGFyeTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjUmVxdWlyZWRMb2NrIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgaWYgYSB0aWNrZXQgbG9jayBpcyByZXF1aXJlZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChpZiB0aGUgdGlja2V0IGlzbid0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGlja2V0UHJpbWFyeVNlY29uZGFyeTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjE8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI1RpY2tldFR5cGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgdGlja2V0IHR5cGUgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZSAoVGlja2V0OjpUeXBlIG5lZWRzIHRvIGJlIGFjdGl2YXRlZCkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpY2tldFByaW1hcnlTZWNvbmRhcnk8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4wPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkjIyNTZXJ2aWNlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHNlcnZpY2UgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZSAoVGlja2V0OjpTZXJ2aWNlIG5lZWRzIHRvIGJlIGFjdGl2YXRlZCkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpY2tldFByaW1hcnlTZWNvbmRhcnk8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4wPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkjIyNPd25lciIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGlja2V0UHJpbWFyeVNlY29uZGFyeTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI093bmVyTWFuZGF0b3J5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgaWYgdGlja2V0IG93bmVyIG11c3QgYmUgc2VsZWN0ZWQgYnkgdGhlIGFnZW50LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjUmVzcG9uc2libGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgcmVzcG9uc2libGUgYWdlbnQgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjUmVzcG9uc2libGVNYW5kYXRvcnkiIFVzZXJQcmVmZXJlbmNlc0dyb3VwPSJBZHZhbmNlZCIgVXNlck1vZGlmaWNhdGlvblBvc3NpYmxlPSIxIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgaWYgdGlja2V0IHJlc3BvbnNpYmxlIG11c3QgYmUgc2VsZWN0ZWQgYnkgdGhlIGFnZW50LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjU3RhdGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+SWYgYSBub3RlIGlzIGFkZGVkIGJ5IGFuIGFnZW50LCBzZXRzIHRoZSBzdGF0ZSBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpY2tldFByaW1hcnlTZWNvbmRhcnk8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4wPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkjIyNTdGF0ZVR5cGUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgbmV4dCBzdGF0ZSBvZiBhIHRpY2tldCBhZnRlciBhZGRpbmcgYSBub3RlLCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0+b3BlbjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPmNsb3NlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPnBlbmRpbmcgcmVtaW5kZXI8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5wZW5kaW5nIGF1dG88L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI1N0YXRlRGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGlja2V0UHJpbWFyeVNlY29uZGFyeTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRW50aXR5IiBWYWx1ZUVudGl0eVR5cGU9IlN0YXRlIiBWYWx1ZVJlZ2V4PSIiPnBlbmRpbmcgcmVtaW5kZXI8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI05vdGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+QWxsb3dzIGFkZGluZyBub3RlcyBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjTm90ZU1hbmRhdG9yeSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIGlmIG5vdGUgbXVzdCBiZSBmaWxsZWQgaW4gYnkgdGhlIGFnZW50LiBDYW4gYmUgb3ZlcndyaXR0ZW4gYnkgVGlja2V0OjpGcm9udGVuZDo6TmVlZEFjY291bnRlZFRpbWUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpY2tldFByaW1hcnlTZWNvbmRhcnk8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4xPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkjIyNTdWJqZWN0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGlja2V0UHJpbWFyeVNlY29uZGFyeTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSIiPjwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjQm9keSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSBkZWZhdWx0IGJvZHkgdGV4dCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGlja2V0UHJpbWFyeVNlY29uZGFyeTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iVGV4dGFyZWEiPjwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjUmljaFRleHRXaWR0aCIgVXNlclByZWZlcmVuY2VzR3JvdXA9IkFkdmFuY2VkIiBVc2VyTW9kaWZpY2F0aW9uUG9zc2libGU9IjEiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgd2lkdGggZm9yIHRoZSByaWNoIHRleHQgZWRpdG9yIGNvbXBvbmVudCBmb3IgdGhpcyBzY3JlZW4uIEVudGVyIG51bWJlciAocGl4ZWxzKSBvciBwZXJjZW50IHZhbHVlIChyZWxhdGl2ZSkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpY2tldFByaW1hcnlTZWNvbmRhcnk8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXlxkKyU/JCI+NjIwPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkjIyNSaWNoVGV4dEhlaWdodCIgVXNlclByZWZlcmVuY2VzR3JvdXA9IkFkdmFuY2VkIiBVc2VyTW9kaWZpY2F0aW9uUG9zc2libGU9IjEiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgaGVpZ2h0IGZvciB0aGUgcmljaCB0ZXh0IGVkaXRvciBjb21wb25lbnQgZm9yIHRoaXMgc2NyZWVuLiBFbnRlciBudW1iZXIgKHBpeGVscykgb3IgcGVyY2VudCB2YWx1ZSAocmVsYXRpdmUpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5cZCslPyQiPjEwMDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjSW52b2x2ZWRBZ2VudCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93cyBhIGxpc3Qgb2YgYWxsIHRoZSBpbnZvbHZlZCBhZ2VudHMgb24gdGhpcyB0aWNrZXQsIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpY2tldFByaW1hcnlTZWNvbmRhcnk8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4wPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkjIyNJbmZvcm1BZ2VudCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93cyBhIGxpc3Qgb2YgYWxsIHRoZSBwb3NzaWJsZSBhZ2VudHMgKGFsbCBhZ2VudHMgd2l0aCBub3RlIHBlcm1pc3Npb25zIG9uIHRoZSBxdWV1ZS90aWNrZXQpIHRvIGRldGVybWluZSB3aG8gc2hvdWxkIGJlIGluZm9ybWVkIGFib3V0IHRoaXMgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGlja2V0UHJpbWFyeVNlY29uZGFyeTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI0lzVmlzaWJsZUZvckN1c3RvbWVyRGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIGlmIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IG5vdGUgaXMgdmlzaWJsZSBmb3IgdGhlIGN1c3RvbWVyIGJ5IGRlZmF1bHQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpY2tldFByaW1hcnlTZWNvbmRhcnk8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjUHJpb3JpdHkiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvd3MgdGhlIHRpY2tldCBwcmlvcml0eSBvcHRpb25zIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpY2tldFByaW1hcnlTZWNvbmRhcnk8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4wPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkjIyNQcmlvcml0eURlZmF1bHQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCB0aWNrZXQgcHJpb3JpdHkgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGlja2V0UHJpbWFyeVNlY29uZGFyeTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRW50aXR5IiBWYWx1ZUVudGl0eVR5cGU9IlByaW9yaXR5IiBWYWx1ZVJlZ2V4PSIiPjMgbm9ybWFsPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkjIyNUaXRsZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93cyB0aGUgdGl0bGUgZmllbGQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGlja2V0UHJpbWFyeVNlY29uZGFyeTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI0hpc3RvcnlUeXBlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGhpc3RvcnkgdHlwZSBmb3IgdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBhY3Rpb24sIHdoaWNoIGdldHMgdXNlZCBmb3IgdGlja2V0IGhpc3RvcnkgaW4gdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGlja2V0UHJpbWFyeVNlY29uZGFyeTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSIiPkFkZE5vdGU8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI0hpc3RvcnlDb21tZW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGhpc3RvcnkgY29tbWVudCBmb3IgdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBhY3Rpb24sIHdoaWNoIGdldHMgdXNlZCBmb3IgdGlja2V0IGhpc3RvcnkgaW4gdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGlja2V0UHJpbWFyeVNlY29uZGFyeTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSIiPiUlUHJpbWFyeVNlY29uZGFyeTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjUHJpbWFyeVNlY29uZGFyeU1hbmRhdG9yeSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIGlmIFByaW1hcnkgLyBTZWNvbmRhcnkgZmllbGQgbXVzdCBiZSBzZWxlY3RlZCBieSB0aGUgYWdlbnQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpY2tldFByaW1hcnlTZWNvbmRhcnk8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4wPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJEYXNoYm9hcmRCYWNrZW5kIyMjMDkwMC1UaWNrZXRQcmltYXJ5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlBhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgcHJpbWFyeSB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OkRhc2hib2FyZDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpEYXNoYm9hcmQ6OlRpY2tldEdlbmVyaWM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPlByaW1hcnkgVGlja2V0czwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+QWxsIHByaW1hcnkgdGlja2V0czwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQXR0cmlidXRlcyI+RHluYW1pY0ZpZWxkX1ByaW1hcnlTZWNvbmRhcnlfRXF1YWxzPVByaW1hcnk7RHluYW1pY0ZpZWxkX1ByaW1hcnlTZWNvbmRhcnlfRXF1YWxzPU1hc3RlcjtTdGF0ZVR5cGU9b3BlbjtTdGF0ZVR5cGU9bmV3OzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRmlsdGVyIj5BbGw8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpbWUiPkFnZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGltaXQiPjEwPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQZXJtaXNzaW9uIj5ydzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPkNvbnRlbnRMYXJnZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVmYXVsdCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2FjaGVUVExMb2NhbCI+MC41PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZWZhdWx0Q29sdW1ucyI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWdlIj4yPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZWQiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3VzdG9tZXJJRCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDdXN0b21lck5hbWUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3VzdG9tZXJVc2VySUQiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXNjYWxhdGlvblJlc3BvbnNlVGltZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFc2NhbGF0aW9uU29sdXRpb25UaW1lIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkVzY2FsYXRpb25UaW1lIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkVzY2FsYXRpb25VcGRhdGVUaW1lIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpY2tldE51bWJlciI+MjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMb2NrIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik93bmVyIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBlbmRpbmdUaW1lIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlF1ZXVlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlJlc3BvbnNpYmxlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW9yaXR5Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlNlcnZpY2UiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iU3RhdGUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iU0xBIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIj4yPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlR5cGUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNYW5kYXRvcnkiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRGFzaGJvYXJkQmFja2VuZCMjIzA5MTAtVGlja2V0U2Vjb25kYXJ5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlBhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgc2Vjb25kYXJ5IHRpY2tldHMgb3ZlcnZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4gIkxpbWl0IiBpcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgc2hvd24gYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IHRoZSBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGRldGVybWluZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhlIHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5LiAiQ2FjaGVUVExMb2NhbCIgaXMgdGhlIGNhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIHBsdWdpbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RGFzaGJvYXJkPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OkRhc2hib2FyZDo6VGlja2V0R2VuZXJpYzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+U2Vjb25kYXJ5IFRpY2tldHM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkFsbCBzZWNvbmRhcnkgdGlja2V0czwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQXR0cmlidXRlcyI+RHluYW1pY0ZpZWxkX1ByaW1hcnlTZWNvbmRhcnlfTGlrZT1TZWNvbmRhcnkqO0R5bmFtaWNGaWVsZF9QcmltYXJ5U2Vjb25kYXJ5X0xpa2U9U2xhdmUqO1N0YXRlVHlwZT1vcGVuO1N0YXRlVHlwZT1uZXc7PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJGaWx0ZXIiPkFsbDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGltZSI+QWdlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW1pdCI+MTA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBlcm1pc3Npb24iPnJ3PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCbG9jayI+Q29udGVudExhcmdlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZWZhdWx0Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDYWNoZVRUTExvY2FsIj4wLjU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlZmF1bHRDb2x1bW5zIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBZ2UiPjI8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlZCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDdXN0b21lcklEIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkN1c3RvbWVyTmFtZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDdXN0b21lclVzZXJJRCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFc2NhbGF0aW9uUmVzcG9uc2VUaW1lIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkVzY2FsYXRpb25Tb2x1dGlvblRpbWUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXNjYWxhdGlvblRpbWUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXNjYWxhdGlvblVwZGF0ZVRpbWUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGlja2V0TnVtYmVyIj4yPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxvY2siPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iT3duZXIiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGVuZGluZ1RpbWUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUXVldWUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUmVzcG9uc2libGUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJpb3JpdHkiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iU2VydmljZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJTdGF0ZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJTTEEiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiPjI8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHlwZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1hbmRhdG9yeSI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJSZXBsYWNlQ3VzdG9tZXJSZWFsTmFtZU9uU2Vjb25kYXJ5QXJ0aWNsZVR5cGVzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRoaXMgc2V0dGluZyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnVydGhlciB2ZXJzaW9ucyBvZiBabnVueVByaW1hcnlTZWNvbmRhcnkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpY2tldFByaW1hcnlTZWNvbmRhcnk8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iZW1haWwtZXh0ZXJuYWwiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImVtYWlsLWludGVybmFsIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJlbWFpbC1ub3RpZmljYXRpb24tZXh0Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJlbWFpbC1ub3RpZmljYXRpb24taW50Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJwaG9uZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iZmF4Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJzbXMiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IndlYnJlcXVlc3QiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Im5vdGUtaW50ZXJuYWwiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Im5vdGUtZXh0ZXJuYWwiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Im5vdGUtcmVwb3J0Ij4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KCiAgICA8U2V0dGluZyBOYW1lPSJSZXBsYWNlQ3VzdG9tZXJSZWFsTmFtZU9uU2Vjb25kYXJ5QXJ0aWNsZUNvbW11bmljYXRpb25DaGFubmVscyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBhcnRpY2xlIGNvbW11bmljYXRpb24gY2hhbm5lbHMgd2hlcmUgdGhlIHJlYWwgbmFtZSBmcm9tIFByaW1hcnkgdGlja2V0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgb25lIGluIHRoZSBTZWNvbmRhcnkgdGlja2V0LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkVtYWlsIj4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KCiAgICA8U2V0dGluZyBOYW1lPSJBQ0xLZXlzTGV2ZWwzOjpBY3Rpb25zIyMjODg4LVpudW55UHJpbWFyeVNlY29uZGFyeSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHdoaWNoIGl0ZW1zIGFyZSBhdmFpbGFibGUgZm9yICdBY3Rpb24nIGluIHRoaXJkIGxldmVsIG9mIHRoZSBBQ0wgc3RydWN0dXJlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6VGlja2V0OjpBQ0w8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8SXRlbT5BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnk8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkR5bmFtaWNGaWVsZHM6OkRyaXZlciMjI1ByaW1hcnlTZWNvbmRhcnkiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pY0ZpZWxkIGJhY2tlbmQgcmVnaXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RHluYW1pY0ZpZWxkczo6RHJpdmVyUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRpc3BsYXlOYW1lIiBUcmFuc2xhdGFibGU9IjEiPlByaW1hcnkgLyBTZWNvbmRhcnk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjpQcmltYXJ5U2Vjb25kYXJ5PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDb25maWdEaWFsb2ciPkFkbWluRHluYW1pY0ZpZWxkUHJpbWFyeVNlY29uZGFyeTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGlzYWJsZWRBZGQiPjE8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FkbWluRHluYW1pY0ZpZWxkUHJpbWFyeVNlY29uZGFyeSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFkbWluOjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPmFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIj5BZG1pbjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgRmllbGRzIERyb3AtZG93biBCYWNrZW5kIEdVSTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWRtaW5EeW5hbWljRmllbGRQcmltYXJ5U2Vjb25kYXJ5IyMjMDA0LVpudW55UHJpbWFyeVNlY29uZGFyeSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Mb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZG1pbjo6TW9kdWxlUmVnaXN0cmF0aW9uOjpMb2FkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ1NTIj4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPkNvcmUuQWdlbnQuQWRtaW4uRHluYW1pY0ZpZWxkLmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJKYXZhU2NyaXB0Ij4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPkNvcmUuQWdlbnQuQWRtaW4uRHluYW1pY0ZpZWxkLmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5Db3JlLkFnZW50LkFkbWluLkR5bmFtaWNGaWVsZFByaW1hcnlTZWNvbmRhcnkuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0FkbWluRHluYW1pY0ZpZWxkUHJpbWFyeVNlY29uZGFyeSMjIzAwNC1abnVueVByaW1hcnlTZWNvbmRhcnkiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWFpbiBtZW51IGl0ZW0gcmVnaXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFkbWluOjpNb2R1bGVSZWdpc3RyYXRpb246Ok1haW5NZW51PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmROYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICAgPFNldHRpbmcgTmFtZT0iVGlja2V0OjpGcm9udGVuZDo6QnVsa01vZHVsZSMjIzAxMC1QcmltYXJ5U2Vjb25kYXJ5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlByaW1hcnlTZWNvbmRhcnkgbW9kdWxlIGZvciBUaWNrZXQgQnVsayBmZWF0dXJlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaWNrZXRCdWxrOjpNb2R1bGU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6VGlja2V0QnVsazo6UHJpbWFyeVNlY29uZGFyeTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+Cjwvb3Ryc19jb25maWc+Cg==</File>
        <File Permission="660" Location="Kernel/Language/cs_ZnunyPrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6Y3NfWm51bnlQcmltYXJ5U2Vjb25kYXJ5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBQcmltYXJ5L1NlY29uZGFyeSBzdGF0dXMgZm9yICVzJXMlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgU2Vjb25kYXJ5IFRpY2tldCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1RpY2tldEJ1bGsvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IFNlY29uZGFyeSBUaWNrZXRzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgVGlja2V0J30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHByaW1hcnkgdGlja2V0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgc2Vjb25kYXJ5IHRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3dzIGFkZGluZyBub3RlcyBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiB0aGUgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGR5bmFtaWMgZmllbGQgbmFtZSBmb3IgcHJpbWFyeSB0aWNrZXQgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBhIHRpY2tldCBsb2NrIGlzIHJlcXVpcmVkIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKGlmIHRoZSB0aWNrZXQgaXNuXCd0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IG5vdGUgaXMgdmlzaWJsZSBmb3IgdGhlIGN1c3RvbWVyIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB0aWNrZXQgcHJpb3JpdHkgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGlzdG9yeSB0eXBlIGZvciB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IHBhcnQgb2YgdGhlIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdGhhdCBzZWNvbmRhcnkgdGlja2V0cyBmb2xsb3cgdGhlIHByaW1hcnkgdGlja2V0IHRvIGEgbmV3IHByaW1hcnkgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGNoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8gZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgb2YgYSBwcmltYXJ5IHRpY2tldCB0byB0aGUgY3VzdG9tZXJzIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4gQnkgZGVmYXVsdCAoZGlzYWJsZWQpIGl0IHdpbGwgbm90IGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIHRvIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgY2hhbmdlIG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIHVuc2V0IG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byB1bnNldCB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgcHJpbWFyeSB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgLyBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnlTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeVNlY29uZGFyeSBtb2R1bGUgZm9yIFRpY2tldCBCdWxrIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ2lzdHJhdGlvbiBvZiB0aGUgdGlja2V0IGV2ZW50IG1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gdXNlIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2Vjb25kYXJ5IFRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyBpZiBQcmltYXJ5IC8gU2Vjb25kYXJ5IGZpZWxkIG11c3QgYmUgc2VsZWN0ZWQgYnkgdGhlIGFnZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSByZXNwb25zaWJsZSBhZ2VudCBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgc2VydmljZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlNlcnZpY2UgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlR5cGUgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gY2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXR1cyBvZiBhIHRpY2tldCBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIGludm9sdmVkIGFnZW50cyBvbiB0aGlzIHRpY2tldCwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpc3Qgb2YgYWxsIHRoZSBwb3NzaWJsZSBhZ2VudHMgKGFsbCBhZ2VudHMgd2l0aCBub3RlIHBlcm1pc3Npb25zIG9uIHRoZSBxdWV1ZS90aWNrZXQpIHRvIGRldGVybWluZSB3aG8gc2hvdWxkIGJlIGluZm9ybWVkIGFib3V0IHRoaXMgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGl0bGUgZmllbGQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBhcnRpY2xlIGNvbW11bmljYXRpb24gY2hhbm5lbHMgd2hlcmUgdGhlIHJlYWwgbmFtZSBmcm9tIFByaW1hcnkgdGlja2V0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgb25lIGluIHRoZSBTZWNvbmRhcnkgdGlja2V0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGFjdGl2YXRlcyBQcmltYXJ5L1NlY29uZGFyeSBmaWVsZCBpbiBuZXcgZW1haWwgYW5kIHBob25lIHRpY2tldCBzY3JlZW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnVydGhlciB2ZXJzaW9ucyBvZiBabnVueVByaW1hcnlTZWNvbmRhcnkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IFByaW1hcnlTZWNvbmRhcnkuJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/de_ZnunyPrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZGVfWm51bnlQcmltYXJ5U2Vjb25kYXJ5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBQcmltYXJ5L1NlY29uZGFyeSBzdGF0dXMgZm9yICVzJXMlcyd9ID0gJ1ByaW1hcnkvU2Vjb25kYXJ5LVN0YXR1cyB2ZXJ3YWx0ZW4gZsO8ciAlcyVzJXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFByaW1hcnkgVGlja2V0J30gPSAnTmV1ZXMgUHJpbWFyeS1UaWNrZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXQnfSA9ICdBdWZoZWJlbiBkZXMgUHJpbWFyeS1UaWNrZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgU2Vjb25kYXJ5IFRpY2tldCd9ID0gJ0F1ZmhlYmVuIGRlcyBTZWNvbmRhcnktVGlja2V0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlY29uZGFyeSBvZiAlcyVzJXM6ICVzJ30gPSAnU2Vjb25kYXJ5IHZvbiAlcyVzJXM6ICVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGlja2V0QnVsay9QcmltYXJ5U2Vjb25kYXJ5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbnNldCBQcmltYXJ5IFRpY2tldHMnfSA9ICdBdWZoZWJlbiBkZXIgUHJpbWFyeS1UaWNrZXRzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IFNlY29uZGFyeSBUaWNrZXRzJ30gPSAnQXVmaGViZW4gZGVyIFNlY29uZGFyeS1UaWNrZXRzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSd9ID0gJ1ByaW1hcnknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2Vjb25kYXJ5IG9mICVzJXMlcyd9ID0gJ1NlY29uZGFyeSB2b24gJXMlcyVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgVGlja2V0J30gPSAnUHJpbWFyeSBUaWNrZXQnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgcHJpbWFyeSB0aWNrZXRzJ30gPSAnQWxsZSBQcmltYXJ5IFRpY2tldHMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHNlY29uZGFyeSB0aWNrZXRzJ30gPSAnQWxsZSBTZWNvbmRhcnktVGlja2V0cyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvd3MgYWRkaW5nIG5vdGVzIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdFcmxhdWJ0IGRhcyBoaW56dWbDvGdlbiB2b24gTm90aXplbiBpbiBkZXIgUHJpbWFyeVNlY29uZGFyeS1BbnNpY2h0IGVpbmVzIGF1ZmdlcnVmZW5lbiBUaWNrZXRzIGluIGRlciBBZ2VudGVuLU9iZXJmbMOkY2hlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGhlIFByaW1hcnlTZWNvbmRhcnkgc3RhdGUgb2YgdGhlIHRpY2tldC4nfSA9ICdEZW4gUHJpbWFyeVNlY29uZGFyeS1TdGF0dXMgZGVzIFRpY2tldHMgw6RuZGVybi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBkeW5hbWljIGZpZWxkIG5hbWUgZm9yIHByaW1hcnkgdGlja2V0IGZlYXR1cmUuJ30gPSAnRHluYW1pc2NoZXMgRmVsZCBmw7xyIGRhcyBQcmltYXJ5LVRpY2tldC1GZWF0dXJlIGRlZmluaWVyZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgYSB0aWNrZXQgbG9jayBpcyByZXF1aXJlZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChpZiB0aGUgdGlja2V0IGlzblwndCBsb2NrZWQgeWV0LCB0aGUgdGlja2V0IGdldHMgbG9ja2VkIGFuZCB0aGUgY3VycmVudCBhZ2VudCB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IGFzIGl0cyBvd25lcikuJ30gPQogICAgICAgICdCZXN0aW1tdCwgb2IgZGllc2VyIFNjcmVlbiBpbSBBZ2VudGVuLUludGVyZmFjZSBkYXMgU3BlcnJlbiBkZXMgVGlja2V0cyB2b3JhdXNzZXR6dC4gRGFzIFRpY2tldCB3aXJkIChmYWxscyBuw7Z0aWcpIGdlc3BlcnJ0IHVuZCBkZXIgYWt0dWVsbGUgQWdlbnQgd2lyZCBhbHMgQmVzaXR6ZXIgZ2VzZXR6dC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiB0aGUgUHJpbWFyeVNlY29uZGFyeSBub3RlIGlzIHZpc2libGUgZm9yIHRoZSBjdXN0b21lciBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnRGVmaW5pZXJ0LCBvYiBkaWUgUHJpbWFyeVNlY29uZGFyeS1Ob3RpeiBzdGFuZGFyZG3DpMOfaWcgZsO8ciBLdW5kZW4gc2ljaHRiYXIgaXN0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0Jlc3RpbW10IGRlbiBGb2xnZXN0YXR1cyBmw7xyIFRpY2tldHMsIGbDvHIgZGllIGltIFByaW1hcnlTZWNvbmRhcnktQmlsZHNjaGlybSBkZXMgQWdlbnRlbi1JbnRlcmZhY2UgZWluZSBOb3RpeiBoaW56dWdlZsO8Z3Qgd3VyZGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdGlja2V0IHByaW9yaXR5IGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdCZXN0aW1tdCBkaWUgc3RhbmRhcmRtw6TDn2lnZSBUaWNrZXQtUHJpb3JpdMOkdCBmw7xyIFRpY2tldHMgaW0gUHJpbWFyeVNlY29uZGFyeS1CaWxkc2NoaXJtIGRlcyBBZ2VudGVuLUludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGlzdG9yeSBjb21tZW50IGZvciB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQmVzdGltbXQgZGVuIEhpc3Rvcmllbi1Lb21tZW50YXIgdm9uIFRpY2tldC1Ba3Rpb25lbiBpbSBQcmltYXJ5U2Vjb25kYXJ5LUJpbGRzY2hpcm0sIHdlbGNoZXIgZsO8ciBkaWUgVGlja2V0LUhpc3RvcmllIGltIEFnZW50ZW4tSW50ZXJmYWNlIHZlcndlbmRldCB3aXJkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IHR5cGUgZm9yIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdCZXN0aW1tdCBkZW4gSGlzdG9yaWVuLVR5cCB2b24gVGlja2V0LUFrdGlvbmVuIGltIFByaW1hcnlTZWNvbmRhcnktQmlsZHNjaGlybSwgd2VsY2hlciBmw7xyIGRpZSBUaWNrZXQtSGlzdG9yaWUgaW0gQWdlbnRlbi1JbnRlcmZhY2UgdmVyd2VuZGV0IHdpcmQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0Jlc3RpbW10IGRlbiBGb2xnZXN0YXR1cyBmw7xyIFRpY2tldHMsIGbDvHIgZGllIGltIFByaW1hcnlTZWNvbmRhcnktQmlsZHNjaGlybSBkZXMgQWdlbnRlbi1JbnRlcmZhY2UgZWluZSBOb3RpeiBoaW56dWdlZsO8Z3Qgd3VyZGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgcGFydCBvZiB0aGUgZmVhdHVyZS4nfSA9ICdEYXMgZXJ3ZWl0ZXJ0ZSBWZXJoYWx0ZW4gZGVzIFByaW1hcnlTZWNvbmRhcnktRmVhdHVyZXMgYWt0aXZpZXJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0aGF0IHNlY29uZGFyeSB0aWNrZXRzIGZvbGxvdyB0aGUgcHJpbWFyeSB0aWNrZXQgdG8gYSBuZXcgcHJpbWFyeSBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnQWt0aXZpZXJ0IGRpZSBGdW5rdGlvbmFsaXTDpHQsIGRhc3MgU2Vjb25kYXJ5LVRpY2tldHMgZGVtIFByaW1hcnktVGlja2V0IGltIGVyd2VpdGVydGVuIFByaW1hcnlTZWNvbmRhcnktVmVyaGFsdGVuIHp1bSBuZXVlbiBQcmltYXJ5IGZvbGdlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byBjaGFuZ2UgdGhlIFByaW1hcnlTZWNvbmRhcnkgc3RhdGUgb2YgYSB0aWNrZXQgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJ0FrdGl2aWVydCBkaWUgRnVua3Rpb25hbGl0w6R0IHp1bSDDhG5kZXJuIGRlcyBQcmltYXJ5U2Vjb25kYXJ5LVN0YXR1cyBlaW5lcyBUaWNrZXRzIGltIGVyd2VpdGVydGVuIFByaW1hcnlTZWNvbmRhcnktTW9kdXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8gZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgb2YgYSBwcmltYXJ5IHRpY2tldCB0byB0aGUgY3VzdG9tZXJzIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4gQnkgZGVmYXVsdCAoZGlzYWJsZWQpIGl0IHdpbGwgbm90IGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIHRvIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4nfSA9CiAgICAgICAgJ0FrdGl2aWVydCBkaWUgRnVua3Rpb24genVtIFdlaXRlcmxlaXRlbiB2b24gQXJ0aWtlbG4gZGVzIFR5cHMgXCdXZWl0ZXJsZWl0ZW5cJyB6dSBkZW4gS3VuZGVuIGRlcyBTZWNvbmRhcnktVGlja2V0cy4gU3RhbmRhcmRtw6TDn2lnIChkZWFrdGl2aWVydCkgd2VyZGVuIGtlaW5lIEFydGlrZWwgZGVzIFR5cHMgXCdXZWl0ZXJsZWl0ZW5cJyBhbiBkaWUgU2Vjb25kYXJ5LVRpY2tldHMgd2VpdGVyZ2VsZWl0ZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8ga2VlcCBwYXJlbnQtY2hpbGQgbGluayBhZnRlciBjaGFuZ2Ugb2YgdGhlIFByaW1hcnlTZWNvbmRhcnkgc3RhdGUgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJ0FrdGl2aWVydCBpbSBkaWUgRnVua3Rpb24sIGltIGVyd2VpdGVydGVuIFByaW1hcnlTZWNvbmRhcnktVmVyaGFsdGVuIGVpbmUgRWx0ZXJuLUtpbmQtQmV6aWVodW5nIG5hY2ggZGVtIMOEbmRlcm4gZGVzIFByaW1hcnlTZWNvbmRhcnktU3RhdHVzIHp1IGJlaGFsdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgdW5zZXQgb2YgdGhlIFByaW1hcnlTZWNvbmRhcnkgc3RhdGUgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJ0FrdGl2aWVydCBpbSBkaWUgRnVua3Rpb24sIGltIGVyd2VpdGVydGVuIFByaW1hcnlTZWNvbmRhcnktVmVyaGFsdGVuIGVpbmUgRWx0ZXJuLUtpbmQtQmV6aWVodW5nIG5hY2ggZGVtIEF1ZmzDtnNlbiBkZXMgUHJpbWFyeVNlY29uZGFyeS1TdGF0dXMgenUgYmVoYWx0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8gdW5zZXQgdGhlIFByaW1hcnlTZWNvbmRhcnkgc3RhdGUgb2YgYSB0aWNrZXQgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJ0FrdGl2aWVydCBkaWUgRnVua3Rpb24genVtIEF1ZmhlYmVuIGRlcyBQcmltYXJ5U2Vjb25kYXJ5LVN0YXR1cyBlaW5lcyBUaWNrZXRzIGltIGVyd2VpdGVydGVuIFByaW1hcnlTZWNvbmRhcnktVmVyaGFsdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBhIG5vdGUgaXMgYWRkZWQgYnkgYW4gYWdlbnQsIHNldHMgdGhlIHN0YXRlIG9mIHRoZSB0aWNrZXQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0VybcO2Z2xpY2h0IGRhcyDDhG5kZXJuIGRlcyBUSWNrZXQtU3RhdHVzIGJlaW0gSGluenVmw7xnZW4gZWluZXIgTm90aXogaW5uZXJoYWxiIGRlcyBQcmltYXJ5U2Vjb25kYXJ5LUJpbGRzY2hpcm1zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQgb2YgdGhlIHByaW1hcnkgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnRWluc3RlbGx1bmcgZGVyIMOcYmVyc2ljaHRzc2VpdGVucGFyYW1ldGVyIGbDvHIgUHJpbWFyeSBUaWNrZXRzIGluIGRlciBBZ2VudGVub2JlcmZsw6RjaGUuICJMaW1pdCIgZ2lidCBkaWUgQW56YWhsIGRlciBzdGFuZGFyZG3DpMOfaWcgZGFyZ2VzdGVsbHRlbiBFaW50csOkZ2UgYW4uICJHcm91cCIgd2lyZCB2ZXJ3ZW5kZXQsIHVtIGRlbiBadWdyaWZmIGF1ZiBkYXMgUGx1Z2luIHp1IGJlZ3JlbnplbiAoYnNwdy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGJlc3RpbW10LCBvYiBkYXMgUGx1Z2luIHN0YW5kYXJkbcOkw59pZyBha3RpdmllcnQgaXN0IG9kZXIgb2IgZGVyIEJlbnV0emVyIGVzIHNlbGJzdCBha3RpdmllcmVuIG11c3MuICJDYWNoZVRUTExvY2FsIiBpc3QgZGllIENhY2hpbmctWmVpdCBkZXMgUGx1Z2lucywgYW5nZWdlYmVuIGluIE1pbnV0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgc2Vjb25kYXJ5IHRpY2tldHMgb3ZlcnZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4gIkxpbWl0IiBpcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgc2hvd24gYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IHRoZSBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGRldGVybWluZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhlIHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5LiAiQ2FjaGVUVExMb2NhbCIgaXMgdGhlIGNhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIHBsdWdpbi4nfSA9CiAgICAgICAgJ0VpbnN0ZWxsdW5nIGRlciDDnGJlcnNpY2h0c3NlaXRlbnBhcmFtZXRlciBmw7xyIFNlY29uZGFyeSBUaWNrZXRzIGluIGRlciBBZ2VudGVub2JlcmZsw6RjaGUuICJMaW1pdCIgZ2lidCBkaWUgQW56YWhsIGRlciBzdGFuZGFyZG3DpMOfaWcgZGFyZ2VzdGVsbHRlbiBFaW50csOkZ2UgYW4uICJHcm91cCIgd2lyZCB2ZXJ3ZW5kZXQsIHVtIGRlbiBadWdyaWZmIGF1ZiBkYXMgUGx1Z2luIHp1IGJlZ3JlbnplbiAoYnNwdy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGJlc3RpbW10LCBvYiBkYXMgUGx1Z2luIHN0YW5kYXJkbcOkw59pZyBha3RpdmllcnQgaXN0IG9kZXIgb2IgZGVyIEJlbnV0emVyIGVzIHNlbGJzdCBha3RpdmllcmVuIG11c3MuICJDYWNoZVRUTExvY2FsIiBpc3QgZGllIENhY2hpbmctWmVpdCBkZXMgUGx1Z2lucywgYW5nZWdlYmVuIGluIE1pbnV0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgLyBTZWNvbmRhcnknfSA9ICdQcmltYXJ5IC8gU2Vjb25kYXJ5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgU2Vjb25kYXJ5J30gPSAnUHJpbcOkciBTZWt1bmTDpHInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBUaWNrZXRzJ30gPSAnUHJpbWFyeS1UaWNrZXRzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnlTZWNvbmRhcnknfSA9ICdQcmltYXJ5U2Vjb25kYXJ5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnlTZWNvbmRhcnkgbW9kdWxlIGZvciBUaWNrZXQgQnVsayBmZWF0dXJlLid9ID0gJ1ByaW1hcnlTZWNvbmRhcnktTW9kdWwgZsO8ciBUaWNrZXQtU2FtbWVsYWt0aW9uZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ2lzdHJhdGlvbiBvZiB0aGUgdGlja2V0IGV2ZW50IG1vZHVsZS4nfSA9ICdSZWdpc3RyaWVydW5nIGRlcyBUaWNrZXQtRXZlbnQtTW9kdWxzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwZXJtaXNzaW9ucyB0byB1c2UgdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0JlbsO2dGlndGUgQmVyZWNodGlndW5nZW4gZsO8ciBkaWUgQW56ZWlnZSBkZXMgUHJpbWFyeVNlY29uZGFyeS1EaWFsb2dzIGltIFRpY2tldC1ab29tLURpYWxvZyBkZXMgQWdlbnRlbmludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2Vjb25kYXJ5IFRpY2tldHMnfSA9ICdTZWNvbmRhcnktVGlja2V0cyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIGlmIFByaW1hcnkgLyBTZWNvbmRhcnkgZmllbGQgbXVzdCBiZSBzZWxlY3RlZCBieSB0aGUgYWdlbnQuJ30gPQogICAgICAgICdMZWd0IGZlc3QsIG9iIFByaW1hcnkgLyBTZWNvbmRhcnkgRmVsZCBkdXJjaCBlaW5lbiBBZ2VudGVuIGF1c2dld8OkaGx0IHNlaW4gbXVzcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgZGVmYXVsdCBib2R5IHRleHQgZm9yIG5vdGVzIGFkZGVkIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdCZXN0aW1tdCBkZW4gc3RhbmRhcmRtw6TDn2lnZW4gVGV4dCBlaW5lciBOb3RpeiBmw7xyIFRpY2tldHMgaW0gUHJpbWFyeVNlY29uZGFyeS1CaWxkc2NoaXJtIGRlcyBBZ2VudGVuLUludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgZGVmYXVsdCBzdWJqZWN0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQmVzdGltbXQgZGVuIHN0YW5kYXJkbcOkw59pZ2VuIEJldHJlZmYgZWluZXIgTm90aXogZsO8ciBUaWNrZXRzIGltIFByaW1hcnlTZWNvbmRhcnktQmlsZHNjaGlybSBkZXMgQWdlbnRlbi1JbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIHJlc3BvbnNpYmxlIGFnZW50IG9mIHRoZSB0aWNrZXQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0Jlc3RpbW10IGRlbiB2ZXJhbnR3b3J0bGljaGVuIEFnZW50ZW4gZWluZXMgVGlja2V0cyBpbSBQcmltYXJ5U2Vjb25kYXJ5IEJpbGRzY2hpcm0gZGVzIEFnZW50ZW4tSW50ZXJmYWNlIGbDvHIgZWluIGF1ZmdlcnVmZW5lcyBUaWNrZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIHNlcnZpY2UgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZSAoVGlja2V0OjpTZXJ2aWNlIG5lZWRzIHRvIGJlIGFjdGl2YXRlZCkuJ30gPQogICAgICAgICdCZXN0aW1tdCBkZW4gU2VydmljZSBlaW5lcyBUaWNrZXRzIGltIFByaW1hcnlTZWNvbmRhcnktQmlsZHNjaGlybSBkZXMgQWdlbnRlbi1JbnRlcmZhY2UgZsO8ciBlaW4gYXVmZ2VydWZlbmVzIFRpY2tldCAoVGlja2V0OjpTZXJ2aWNlIG11c3MgYWt0aXZpZXJ0IHNlaW4pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0Jlc3RpbW10IGRlbiBCZXNpdHplciBlaW5lcyBUaWNrZXRzIGltIFByaW1hcnlTZWNvbmRhcnktQmlsZHNjaGlybSBkZXMgQWdlbnRlbi1JbnRlcmZhY2UgZsO8ciBlaW4gYXVmZ2VydWZlbmVzIFRpY2tldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgdGlja2V0IHR5cGUgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZSAoVGlja2V0OjpUeXBlIG5lZWRzIHRvIGJlIGFjdGl2YXRlZCkuJ30gPQogICAgICAgICdCZXN0aW1tdCBkZW4gVGlja2V0LVR5cCBlaW5lcyBUaWNrZXRzIGltIFByaW1hcnlTZWNvbmRhcnktQmlsZHNjaGlybSBkZXMgQWdlbnRlbi1JbnRlcmZhY2UgZsO8ciBlaW4gYXVmZ2VydWZlbmVzIFRpY2tldCAoVGlja2V0OjpUeXBlIG11c3MgYWt0aXZpZXJ0IHNlaW4pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gY2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXR1cyBvZiBhIHRpY2tldCBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnWmVpZ3QgZWluZW4gTGluayB6dW0gw4RuZGVybiBkZXMgUHJpbWFyeVNlY29uZGFyeS1TdGF0dXMgZWluZXMgVGlja2V0cyBpbSBNZW7DvCBkZXIgVGlja2V0LVpvb20tQW5zaWNodCBkZXMgQWdlbnRlbiBhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaXN0IG9mIGFsbCB0aGUgaW52b2x2ZWQgYWdlbnRzIG9uIHRoaXMgdGlja2V0LCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnWmVpZ3QgZWluZSBMaXN0ZSBhbGxlciBpbnZvbHZpZXJ0ZW4gQWdlbnRlbiBmw7xyIGRhcyBnZXfDpGhsdGUgVGlja2V0IGltIFByaW1hcnlTZWNvbmRhcnktQmlsZHNjaGlybSBkZXMgQWdlbnRlbi1JbnRlcmZhY2UgYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIHBvc3NpYmxlIGFnZW50cyAoYWxsIGFnZW50cyB3aXRoIG5vdGUgcGVybWlzc2lvbnMgb24gdGhlIHF1ZXVlL3RpY2tldCkgdG8gZGV0ZXJtaW5lIHdobyBzaG91bGQgYmUgaW5mb3JtZWQgYWJvdXQgdGhpcyBub3RlLCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnWmVpZ3QgZWluZSBMaXN0ZSBhbGxlciBtw7ZnbGljaGVuIEFnZW50ZW4gKGFsbGUgQWdlbnRlbiBtaXQgTm90aXogQmVyZWNodGlndW5nIGF1ZiBkZXIgUXVldWUvZGVtIFRpY2tldCkgZsO8ciBkYXMgZ2V3w6RobHRlIFRpY2tldCBpbSBQcmltYXJ5U2Vjb25kYXJ5LUJpbGRzY2hpcm0gZGVzIEFnZW50ZW4tSW50ZXJmYWNlIGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1plaWd0IGRpZSBQcmlvcml0w6R0IGVpbmVzIFRpY2tldHMgaW0gUHJpbWFyeVNlY29uZGFyeS1CaWxkc2NoaXJtIGRlcyBBZ2VudGVuLUludGVyZmFjZSBmw7xyIGVpbiBhdWZnZXJ1ZmVuZXMgVGlja2V0IGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGl0bGUgZmllbGQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1plaWd0IGRhcyBUaXRlbC1GZWxkIGluIGRlciBQcmltYXJ5U2Vjb25kYXJ5LU9iZXJmbMOkY2hlIGVpbmVzIGF1ZmdlcnVmZW5lbiBUaWNrZXRzIGltIEFnZW50ZW4tSW50ZXJmYWNlIGFuLiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIHRoZSBkaWZmZXJlbnQgYXJ0aWNsZSBjb21tdW5pY2F0aW9uIGNoYW5uZWxzIHdoZXJlIHRoZSByZWFsIG5hbWUgZnJvbSBQcmltYXJ5IHRpY2tldCB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhlIG9uZSBpbiB0aGUgU2Vjb25kYXJ5IHRpY2tldC4nfSA9CiAgICAgICAgJ0dpYnQgZGllIHZlcnNjaGllZGVuZW4gQXJ0aWtlbC1Lb21tdW5pa2F0aW9uc2thbsOkbGUgYW4sIGJlaSBkZW5lbiBkZXIgZWNodGUgTmFtZSB2b20gUHJpbWFyeS1UaWNrZXQgZHVyY2ggZGVuIGltIFNlY29uZGFyeS1UaWNrZXQgZXJzZXR6dCB3aXJkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBhY3RpdmF0ZXMgUHJpbWFyeS9TZWNvbmRhcnkgZmllbGQgaW4gbmV3IGVtYWlsIGFuZCBwaG9uZSB0aWNrZXQgc2NyZWVucy4nfSA9CiAgICAgICAgJ0RpZXNlcyBNb2R1bCBha3RpdmllcnQgZGFzIFByaW1hcnkvU2Vjb25kYXJ5LUZlbGQgaW4gZGVyIEFuemVpZ2UgZsO8ciBlaW4gbmV1ZXMgRW1haWwtIG9kZXIgVGVsZWZvbi1UaWNrZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnVydGhlciB2ZXJzaW9ucyBvZiBabnVueVByaW1hcnlTZWNvbmRhcnkuJ30gPQogICAgICAgICdEaWVzZSBFaW5zdGVsbHVuZyBpc3QgdmVyYWx0ZXQgdW5kIHdpcmQgaW4gd2VpdGVyZW4gVmVyc2lvbmVuIHZvbiBabnVueVByaW1hcnlTZWNvbmRhcnkgZW50ZmVybnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBQcmltYXJ5U2Vjb25kYXJ5Lid9ID0gJ1RpY2tldCBQcmltYXJ5U2Vjb25kYXJ5Lic7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy89IFtdIH0sICgKICAgICk7Cgp9CgoxOwo=</File>
        <File Permission="660" Location="Kernel/Language/es_MX_ZnunyPrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZXNfTVhfWm51bnlQcmltYXJ5U2Vjb25kYXJ5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBQcmltYXJ5L1NlY29uZGFyeSBzdGF0dXMgZm9yICVzJXMlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgU2Vjb25kYXJ5IFRpY2tldCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1RpY2tldEJ1bGsvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IFNlY29uZGFyeSBUaWNrZXRzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgVGlja2V0J30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHByaW1hcnkgdGlja2V0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgc2Vjb25kYXJ5IHRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3dzIGFkZGluZyBub3RlcyBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiB0aGUgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGR5bmFtaWMgZmllbGQgbmFtZSBmb3IgcHJpbWFyeSB0aWNrZXQgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBhIHRpY2tldCBsb2NrIGlzIHJlcXVpcmVkIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKGlmIHRoZSB0aWNrZXQgaXNuXCd0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IG5vdGUgaXMgdmlzaWJsZSBmb3IgdGhlIGN1c3RvbWVyIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB0aWNrZXQgcHJpb3JpdHkgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGlzdG9yeSB0eXBlIGZvciB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IHBhcnQgb2YgdGhlIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdGhhdCBzZWNvbmRhcnkgdGlja2V0cyBmb2xsb3cgdGhlIHByaW1hcnkgdGlja2V0IHRvIGEgbmV3IHByaW1hcnkgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGNoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8gZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgb2YgYSBwcmltYXJ5IHRpY2tldCB0byB0aGUgY3VzdG9tZXJzIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4gQnkgZGVmYXVsdCAoZGlzYWJsZWQpIGl0IHdpbGwgbm90IGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIHRvIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgY2hhbmdlIG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIHVuc2V0IG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byB1bnNldCB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgcHJpbWFyeSB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgLyBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnlTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeVNlY29uZGFyeSBtb2R1bGUgZm9yIFRpY2tldCBCdWxrIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ2lzdHJhdGlvbiBvZiB0aGUgdGlja2V0IGV2ZW50IG1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gdXNlIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2Vjb25kYXJ5IFRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyBpZiBQcmltYXJ5IC8gU2Vjb25kYXJ5IGZpZWxkIG11c3QgYmUgc2VsZWN0ZWQgYnkgdGhlIGFnZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSByZXNwb25zaWJsZSBhZ2VudCBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgc2VydmljZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlNlcnZpY2UgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlR5cGUgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gY2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXR1cyBvZiBhIHRpY2tldCBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIGludm9sdmVkIGFnZW50cyBvbiB0aGlzIHRpY2tldCwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpc3Qgb2YgYWxsIHRoZSBwb3NzaWJsZSBhZ2VudHMgKGFsbCBhZ2VudHMgd2l0aCBub3RlIHBlcm1pc3Npb25zIG9uIHRoZSBxdWV1ZS90aWNrZXQpIHRvIGRldGVybWluZSB3aG8gc2hvdWxkIGJlIGluZm9ybWVkIGFib3V0IHRoaXMgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGl0bGUgZmllbGQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBhcnRpY2xlIGNvbW11bmljYXRpb24gY2hhbm5lbHMgd2hlcmUgdGhlIHJlYWwgbmFtZSBmcm9tIFByaW1hcnkgdGlja2V0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgb25lIGluIHRoZSBTZWNvbmRhcnkgdGlja2V0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGFjdGl2YXRlcyBQcmltYXJ5L1NlY29uZGFyeSBmaWVsZCBpbiBuZXcgZW1haWwgYW5kIHBob25lIHRpY2tldCBzY3JlZW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnVydGhlciB2ZXJzaW9ucyBvZiBabnVueVByaW1hcnlTZWNvbmRhcnkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IFByaW1hcnlTZWNvbmRhcnkuJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/es_ZnunyPrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZXNfWm51bnlQcmltYXJ5U2Vjb25kYXJ5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBQcmltYXJ5L1NlY29uZGFyeSBzdGF0dXMgZm9yICVzJXMlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgU2Vjb25kYXJ5IFRpY2tldCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1RpY2tldEJ1bGsvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IFNlY29uZGFyeSBUaWNrZXRzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgVGlja2V0J30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHByaW1hcnkgdGlja2V0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgc2Vjb25kYXJ5IHRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3dzIGFkZGluZyBub3RlcyBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiB0aGUgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGR5bmFtaWMgZmllbGQgbmFtZSBmb3IgcHJpbWFyeSB0aWNrZXQgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBhIHRpY2tldCBsb2NrIGlzIHJlcXVpcmVkIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKGlmIHRoZSB0aWNrZXQgaXNuXCd0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IG5vdGUgaXMgdmlzaWJsZSBmb3IgdGhlIGN1c3RvbWVyIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB0aWNrZXQgcHJpb3JpdHkgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGlzdG9yeSB0eXBlIGZvciB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IHBhcnQgb2YgdGhlIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdGhhdCBzZWNvbmRhcnkgdGlja2V0cyBmb2xsb3cgdGhlIHByaW1hcnkgdGlja2V0IHRvIGEgbmV3IHByaW1hcnkgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGNoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8gZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgb2YgYSBwcmltYXJ5IHRpY2tldCB0byB0aGUgY3VzdG9tZXJzIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4gQnkgZGVmYXVsdCAoZGlzYWJsZWQpIGl0IHdpbGwgbm90IGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIHRvIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgY2hhbmdlIG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIHVuc2V0IG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byB1bnNldCB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgcHJpbWFyeSB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgLyBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnlTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeVNlY29uZGFyeSBtb2R1bGUgZm9yIFRpY2tldCBCdWxrIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ2lzdHJhdGlvbiBvZiB0aGUgdGlja2V0IGV2ZW50IG1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gdXNlIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2Vjb25kYXJ5IFRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyBpZiBQcmltYXJ5IC8gU2Vjb25kYXJ5IGZpZWxkIG11c3QgYmUgc2VsZWN0ZWQgYnkgdGhlIGFnZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSByZXNwb25zaWJsZSBhZ2VudCBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgc2VydmljZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlNlcnZpY2UgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlR5cGUgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gY2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXR1cyBvZiBhIHRpY2tldCBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIGludm9sdmVkIGFnZW50cyBvbiB0aGlzIHRpY2tldCwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpc3Qgb2YgYWxsIHRoZSBwb3NzaWJsZSBhZ2VudHMgKGFsbCBhZ2VudHMgd2l0aCBub3RlIHBlcm1pc3Npb25zIG9uIHRoZSBxdWV1ZS90aWNrZXQpIHRvIGRldGVybWluZSB3aG8gc2hvdWxkIGJlIGluZm9ybWVkIGFib3V0IHRoaXMgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGl0bGUgZmllbGQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBhcnRpY2xlIGNvbW11bmljYXRpb24gY2hhbm5lbHMgd2hlcmUgdGhlIHJlYWwgbmFtZSBmcm9tIFByaW1hcnkgdGlja2V0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgb25lIGluIHRoZSBTZWNvbmRhcnkgdGlja2V0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGFjdGl2YXRlcyBQcmltYXJ5L1NlY29uZGFyeSBmaWVsZCBpbiBuZXcgZW1haWwgYW5kIHBob25lIHRpY2tldCBzY3JlZW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnVydGhlciB2ZXJzaW9ucyBvZiBabnVueVByaW1hcnlTZWNvbmRhcnkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IFByaW1hcnlTZWNvbmRhcnkuJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/fr_ZnunyPrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZnJfWm51bnlQcmltYXJ5U2Vjb25kYXJ5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBQcmltYXJ5L1NlY29uZGFyeSBzdGF0dXMgZm9yICVzJXMlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgU2Vjb25kYXJ5IFRpY2tldCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1RpY2tldEJ1bGsvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IFNlY29uZGFyeSBUaWNrZXRzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgVGlja2V0J30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHByaW1hcnkgdGlja2V0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgc2Vjb25kYXJ5IHRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3dzIGFkZGluZyBub3RlcyBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiB0aGUgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGR5bmFtaWMgZmllbGQgbmFtZSBmb3IgcHJpbWFyeSB0aWNrZXQgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBhIHRpY2tldCBsb2NrIGlzIHJlcXVpcmVkIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKGlmIHRoZSB0aWNrZXQgaXNuXCd0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IG5vdGUgaXMgdmlzaWJsZSBmb3IgdGhlIGN1c3RvbWVyIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB0aWNrZXQgcHJpb3JpdHkgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGlzdG9yeSB0eXBlIGZvciB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IHBhcnQgb2YgdGhlIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdGhhdCBzZWNvbmRhcnkgdGlja2V0cyBmb2xsb3cgdGhlIHByaW1hcnkgdGlja2V0IHRvIGEgbmV3IHByaW1hcnkgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGNoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8gZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgb2YgYSBwcmltYXJ5IHRpY2tldCB0byB0aGUgY3VzdG9tZXJzIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4gQnkgZGVmYXVsdCAoZGlzYWJsZWQpIGl0IHdpbGwgbm90IGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIHRvIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgY2hhbmdlIG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIHVuc2V0IG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byB1bnNldCB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgcHJpbWFyeSB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgLyBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnlTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeVNlY29uZGFyeSBtb2R1bGUgZm9yIFRpY2tldCBCdWxrIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ2lzdHJhdGlvbiBvZiB0aGUgdGlja2V0IGV2ZW50IG1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gdXNlIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2Vjb25kYXJ5IFRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyBpZiBQcmltYXJ5IC8gU2Vjb25kYXJ5IGZpZWxkIG11c3QgYmUgc2VsZWN0ZWQgYnkgdGhlIGFnZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSByZXNwb25zaWJsZSBhZ2VudCBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgc2VydmljZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlNlcnZpY2UgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlR5cGUgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gY2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXR1cyBvZiBhIHRpY2tldCBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIGludm9sdmVkIGFnZW50cyBvbiB0aGlzIHRpY2tldCwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpc3Qgb2YgYWxsIHRoZSBwb3NzaWJsZSBhZ2VudHMgKGFsbCBhZ2VudHMgd2l0aCBub3RlIHBlcm1pc3Npb25zIG9uIHRoZSBxdWV1ZS90aWNrZXQpIHRvIGRldGVybWluZSB3aG8gc2hvdWxkIGJlIGluZm9ybWVkIGFib3V0IHRoaXMgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGl0bGUgZmllbGQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBhcnRpY2xlIGNvbW11bmljYXRpb24gY2hhbm5lbHMgd2hlcmUgdGhlIHJlYWwgbmFtZSBmcm9tIFByaW1hcnkgdGlja2V0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgb25lIGluIHRoZSBTZWNvbmRhcnkgdGlja2V0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGFjdGl2YXRlcyBQcmltYXJ5L1NlY29uZGFyeSBmaWVsZCBpbiBuZXcgZW1haWwgYW5kIHBob25lIHRpY2tldCBzY3JlZW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnVydGhlciB2ZXJzaW9ucyBvZiBabnVueVByaW1hcnlTZWNvbmRhcnkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IFByaW1hcnlTZWNvbmRhcnkuJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/gl_ZnunyPrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6Z2xfWm51bnlQcmltYXJ5U2Vjb25kYXJ5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBQcmltYXJ5L1NlY29uZGFyeSBzdGF0dXMgZm9yICVzJXMlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgU2Vjb25kYXJ5IFRpY2tldCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1RpY2tldEJ1bGsvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IFNlY29uZGFyeSBUaWNrZXRzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgVGlja2V0J30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHByaW1hcnkgdGlja2V0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgc2Vjb25kYXJ5IHRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3dzIGFkZGluZyBub3RlcyBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiB0aGUgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGR5bmFtaWMgZmllbGQgbmFtZSBmb3IgcHJpbWFyeSB0aWNrZXQgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBhIHRpY2tldCBsb2NrIGlzIHJlcXVpcmVkIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKGlmIHRoZSB0aWNrZXQgaXNuXCd0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IG5vdGUgaXMgdmlzaWJsZSBmb3IgdGhlIGN1c3RvbWVyIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB0aWNrZXQgcHJpb3JpdHkgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGlzdG9yeSB0eXBlIGZvciB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IHBhcnQgb2YgdGhlIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdGhhdCBzZWNvbmRhcnkgdGlja2V0cyBmb2xsb3cgdGhlIHByaW1hcnkgdGlja2V0IHRvIGEgbmV3IHByaW1hcnkgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGNoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8gZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgb2YgYSBwcmltYXJ5IHRpY2tldCB0byB0aGUgY3VzdG9tZXJzIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4gQnkgZGVmYXVsdCAoZGlzYWJsZWQpIGl0IHdpbGwgbm90IGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIHRvIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgY2hhbmdlIG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIHVuc2V0IG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byB1bnNldCB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgcHJpbWFyeSB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgLyBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnlTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeVNlY29uZGFyeSBtb2R1bGUgZm9yIFRpY2tldCBCdWxrIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ2lzdHJhdGlvbiBvZiB0aGUgdGlja2V0IGV2ZW50IG1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gdXNlIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2Vjb25kYXJ5IFRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyBpZiBQcmltYXJ5IC8gU2Vjb25kYXJ5IGZpZWxkIG11c3QgYmUgc2VsZWN0ZWQgYnkgdGhlIGFnZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSByZXNwb25zaWJsZSBhZ2VudCBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgc2VydmljZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlNlcnZpY2UgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlR5cGUgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gY2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXR1cyBvZiBhIHRpY2tldCBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIGludm9sdmVkIGFnZW50cyBvbiB0aGlzIHRpY2tldCwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpc3Qgb2YgYWxsIHRoZSBwb3NzaWJsZSBhZ2VudHMgKGFsbCBhZ2VudHMgd2l0aCBub3RlIHBlcm1pc3Npb25zIG9uIHRoZSBxdWV1ZS90aWNrZXQpIHRvIGRldGVybWluZSB3aG8gc2hvdWxkIGJlIGluZm9ybWVkIGFib3V0IHRoaXMgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGl0bGUgZmllbGQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBhcnRpY2xlIGNvbW11bmljYXRpb24gY2hhbm5lbHMgd2hlcmUgdGhlIHJlYWwgbmFtZSBmcm9tIFByaW1hcnkgdGlja2V0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgb25lIGluIHRoZSBTZWNvbmRhcnkgdGlja2V0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGFjdGl2YXRlcyBQcmltYXJ5L1NlY29uZGFyeSBmaWVsZCBpbiBuZXcgZW1haWwgYW5kIHBob25lIHRpY2tldCBzY3JlZW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnVydGhlciB2ZXJzaW9ucyBvZiBabnVueVByaW1hcnlTZWNvbmRhcnkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IFByaW1hcnlTZWNvbmRhcnkuJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/hu_ZnunyPrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6aHVfWm51bnlQcmltYXJ5U2Vjb25kYXJ5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBQcmltYXJ5L1NlY29uZGFyeSBzdGF0dXMgZm9yICVzJXMlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgU2Vjb25kYXJ5IFRpY2tldCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1RpY2tldEJ1bGsvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IFNlY29uZGFyeSBUaWNrZXRzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgVGlja2V0J30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHByaW1hcnkgdGlja2V0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgc2Vjb25kYXJ5IHRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3dzIGFkZGluZyBub3RlcyBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiB0aGUgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGR5bmFtaWMgZmllbGQgbmFtZSBmb3IgcHJpbWFyeSB0aWNrZXQgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBhIHRpY2tldCBsb2NrIGlzIHJlcXVpcmVkIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKGlmIHRoZSB0aWNrZXQgaXNuXCd0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IG5vdGUgaXMgdmlzaWJsZSBmb3IgdGhlIGN1c3RvbWVyIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB0aWNrZXQgcHJpb3JpdHkgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGlzdG9yeSB0eXBlIGZvciB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IHBhcnQgb2YgdGhlIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdGhhdCBzZWNvbmRhcnkgdGlja2V0cyBmb2xsb3cgdGhlIHByaW1hcnkgdGlja2V0IHRvIGEgbmV3IHByaW1hcnkgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGNoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8gZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgb2YgYSBwcmltYXJ5IHRpY2tldCB0byB0aGUgY3VzdG9tZXJzIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4gQnkgZGVmYXVsdCAoZGlzYWJsZWQpIGl0IHdpbGwgbm90IGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIHRvIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgY2hhbmdlIG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIHVuc2V0IG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byB1bnNldCB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgcHJpbWFyeSB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgLyBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnlTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeVNlY29uZGFyeSBtb2R1bGUgZm9yIFRpY2tldCBCdWxrIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ2lzdHJhdGlvbiBvZiB0aGUgdGlja2V0IGV2ZW50IG1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gdXNlIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2Vjb25kYXJ5IFRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyBpZiBQcmltYXJ5IC8gU2Vjb25kYXJ5IGZpZWxkIG11c3QgYmUgc2VsZWN0ZWQgYnkgdGhlIGFnZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSByZXNwb25zaWJsZSBhZ2VudCBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgc2VydmljZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlNlcnZpY2UgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlR5cGUgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gY2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXR1cyBvZiBhIHRpY2tldCBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIGludm9sdmVkIGFnZW50cyBvbiB0aGlzIHRpY2tldCwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpc3Qgb2YgYWxsIHRoZSBwb3NzaWJsZSBhZ2VudHMgKGFsbCBhZ2VudHMgd2l0aCBub3RlIHBlcm1pc3Npb25zIG9uIHRoZSBxdWV1ZS90aWNrZXQpIHRvIGRldGVybWluZSB3aG8gc2hvdWxkIGJlIGluZm9ybWVkIGFib3V0IHRoaXMgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGl0bGUgZmllbGQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBhcnRpY2xlIGNvbW11bmljYXRpb24gY2hhbm5lbHMgd2hlcmUgdGhlIHJlYWwgbmFtZSBmcm9tIFByaW1hcnkgdGlja2V0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgb25lIGluIHRoZSBTZWNvbmRhcnkgdGlja2V0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGFjdGl2YXRlcyBQcmltYXJ5L1NlY29uZGFyeSBmaWVsZCBpbiBuZXcgZW1haWwgYW5kIHBob25lIHRpY2tldCBzY3JlZW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnVydGhlciB2ZXJzaW9ucyBvZiBabnVueVByaW1hcnlTZWNvbmRhcnkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IFByaW1hcnlTZWNvbmRhcnkuJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/id_ZnunyPrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6aWRfWm51bnlQcmltYXJ5U2Vjb25kYXJ5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBQcmltYXJ5L1NlY29uZGFyeSBzdGF0dXMgZm9yICVzJXMlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgU2Vjb25kYXJ5IFRpY2tldCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1RpY2tldEJ1bGsvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IFNlY29uZGFyeSBUaWNrZXRzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgVGlja2V0J30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHByaW1hcnkgdGlja2V0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgc2Vjb25kYXJ5IHRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3dzIGFkZGluZyBub3RlcyBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiB0aGUgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGR5bmFtaWMgZmllbGQgbmFtZSBmb3IgcHJpbWFyeSB0aWNrZXQgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBhIHRpY2tldCBsb2NrIGlzIHJlcXVpcmVkIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKGlmIHRoZSB0aWNrZXQgaXNuXCd0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IG5vdGUgaXMgdmlzaWJsZSBmb3IgdGhlIGN1c3RvbWVyIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB0aWNrZXQgcHJpb3JpdHkgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGlzdG9yeSB0eXBlIGZvciB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IHBhcnQgb2YgdGhlIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdGhhdCBzZWNvbmRhcnkgdGlja2V0cyBmb2xsb3cgdGhlIHByaW1hcnkgdGlja2V0IHRvIGEgbmV3IHByaW1hcnkgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGNoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8gZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgb2YgYSBwcmltYXJ5IHRpY2tldCB0byB0aGUgY3VzdG9tZXJzIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4gQnkgZGVmYXVsdCAoZGlzYWJsZWQpIGl0IHdpbGwgbm90IGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIHRvIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgY2hhbmdlIG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIHVuc2V0IG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byB1bnNldCB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgcHJpbWFyeSB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgLyBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnlTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeVNlY29uZGFyeSBtb2R1bGUgZm9yIFRpY2tldCBCdWxrIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ2lzdHJhdGlvbiBvZiB0aGUgdGlja2V0IGV2ZW50IG1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gdXNlIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2Vjb25kYXJ5IFRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyBpZiBQcmltYXJ5IC8gU2Vjb25kYXJ5IGZpZWxkIG11c3QgYmUgc2VsZWN0ZWQgYnkgdGhlIGFnZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSByZXNwb25zaWJsZSBhZ2VudCBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgc2VydmljZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlNlcnZpY2UgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlR5cGUgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gY2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXR1cyBvZiBhIHRpY2tldCBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIGludm9sdmVkIGFnZW50cyBvbiB0aGlzIHRpY2tldCwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpc3Qgb2YgYWxsIHRoZSBwb3NzaWJsZSBhZ2VudHMgKGFsbCBhZ2VudHMgd2l0aCBub3RlIHBlcm1pc3Npb25zIG9uIHRoZSBxdWV1ZS90aWNrZXQpIHRvIGRldGVybWluZSB3aG8gc2hvdWxkIGJlIGluZm9ybWVkIGFib3V0IHRoaXMgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGl0bGUgZmllbGQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBhcnRpY2xlIGNvbW11bmljYXRpb24gY2hhbm5lbHMgd2hlcmUgdGhlIHJlYWwgbmFtZSBmcm9tIFByaW1hcnkgdGlja2V0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgb25lIGluIHRoZSBTZWNvbmRhcnkgdGlja2V0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGFjdGl2YXRlcyBQcmltYXJ5L1NlY29uZGFyeSBmaWVsZCBpbiBuZXcgZW1haWwgYW5kIHBob25lIHRpY2tldCBzY3JlZW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnVydGhlciB2ZXJzaW9ucyBvZiBabnVueVByaW1hcnlTZWNvbmRhcnkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IFByaW1hcnlTZWNvbmRhcnkuJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/it_ZnunyPrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6aXRfWm51bnlQcmltYXJ5U2Vjb25kYXJ5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBQcmltYXJ5L1NlY29uZGFyeSBzdGF0dXMgZm9yICVzJXMlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgU2Vjb25kYXJ5IFRpY2tldCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1RpY2tldEJ1bGsvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IFNlY29uZGFyeSBUaWNrZXRzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgVGlja2V0J30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHByaW1hcnkgdGlja2V0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgc2Vjb25kYXJ5IHRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3dzIGFkZGluZyBub3RlcyBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiB0aGUgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGR5bmFtaWMgZmllbGQgbmFtZSBmb3IgcHJpbWFyeSB0aWNrZXQgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBhIHRpY2tldCBsb2NrIGlzIHJlcXVpcmVkIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKGlmIHRoZSB0aWNrZXQgaXNuXCd0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IG5vdGUgaXMgdmlzaWJsZSBmb3IgdGhlIGN1c3RvbWVyIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB0aWNrZXQgcHJpb3JpdHkgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGlzdG9yeSB0eXBlIGZvciB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IHBhcnQgb2YgdGhlIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdGhhdCBzZWNvbmRhcnkgdGlja2V0cyBmb2xsb3cgdGhlIHByaW1hcnkgdGlja2V0IHRvIGEgbmV3IHByaW1hcnkgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGNoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8gZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgb2YgYSBwcmltYXJ5IHRpY2tldCB0byB0aGUgY3VzdG9tZXJzIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4gQnkgZGVmYXVsdCAoZGlzYWJsZWQpIGl0IHdpbGwgbm90IGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIHRvIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgY2hhbmdlIG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIHVuc2V0IG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byB1bnNldCB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgcHJpbWFyeSB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgLyBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnlTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeVNlY29uZGFyeSBtb2R1bGUgZm9yIFRpY2tldCBCdWxrIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ2lzdHJhdGlvbiBvZiB0aGUgdGlja2V0IGV2ZW50IG1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gdXNlIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2Vjb25kYXJ5IFRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyBpZiBQcmltYXJ5IC8gU2Vjb25kYXJ5IGZpZWxkIG11c3QgYmUgc2VsZWN0ZWQgYnkgdGhlIGFnZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSByZXNwb25zaWJsZSBhZ2VudCBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgc2VydmljZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlNlcnZpY2UgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlR5cGUgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gY2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXR1cyBvZiBhIHRpY2tldCBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIGludm9sdmVkIGFnZW50cyBvbiB0aGlzIHRpY2tldCwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpc3Qgb2YgYWxsIHRoZSBwb3NzaWJsZSBhZ2VudHMgKGFsbCBhZ2VudHMgd2l0aCBub3RlIHBlcm1pc3Npb25zIG9uIHRoZSBxdWV1ZS90aWNrZXQpIHRvIGRldGVybWluZSB3aG8gc2hvdWxkIGJlIGluZm9ybWVkIGFib3V0IHRoaXMgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGl0bGUgZmllbGQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBhcnRpY2xlIGNvbW11bmljYXRpb24gY2hhbm5lbHMgd2hlcmUgdGhlIHJlYWwgbmFtZSBmcm9tIFByaW1hcnkgdGlja2V0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgb25lIGluIHRoZSBTZWNvbmRhcnkgdGlja2V0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGFjdGl2YXRlcyBQcmltYXJ5L1NlY29uZGFyeSBmaWVsZCBpbiBuZXcgZW1haWwgYW5kIHBob25lIHRpY2tldCBzY3JlZW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnVydGhlciB2ZXJzaW9ucyBvZiBabnVueVByaW1hcnlTZWNvbmRhcnkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IFByaW1hcnlTZWNvbmRhcnkuJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/ja_ZnunyPrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6amFfWm51bnlQcmltYXJ5U2Vjb25kYXJ5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBQcmltYXJ5L1NlY29uZGFyeSBzdGF0dXMgZm9yICVzJXMlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgU2Vjb25kYXJ5IFRpY2tldCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1RpY2tldEJ1bGsvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IFNlY29uZGFyeSBUaWNrZXRzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgVGlja2V0J30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHByaW1hcnkgdGlja2V0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgc2Vjb25kYXJ5IHRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3dzIGFkZGluZyBub3RlcyBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiB0aGUgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGR5bmFtaWMgZmllbGQgbmFtZSBmb3IgcHJpbWFyeSB0aWNrZXQgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBhIHRpY2tldCBsb2NrIGlzIHJlcXVpcmVkIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKGlmIHRoZSB0aWNrZXQgaXNuXCd0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IG5vdGUgaXMgdmlzaWJsZSBmb3IgdGhlIGN1c3RvbWVyIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB0aWNrZXQgcHJpb3JpdHkgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGlzdG9yeSB0eXBlIGZvciB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IHBhcnQgb2YgdGhlIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdGhhdCBzZWNvbmRhcnkgdGlja2V0cyBmb2xsb3cgdGhlIHByaW1hcnkgdGlja2V0IHRvIGEgbmV3IHByaW1hcnkgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGNoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8gZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgb2YgYSBwcmltYXJ5IHRpY2tldCB0byB0aGUgY3VzdG9tZXJzIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4gQnkgZGVmYXVsdCAoZGlzYWJsZWQpIGl0IHdpbGwgbm90IGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIHRvIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgY2hhbmdlIG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIHVuc2V0IG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byB1bnNldCB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgcHJpbWFyeSB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgLyBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnlTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeVNlY29uZGFyeSBtb2R1bGUgZm9yIFRpY2tldCBCdWxrIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ2lzdHJhdGlvbiBvZiB0aGUgdGlja2V0IGV2ZW50IG1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gdXNlIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2Vjb25kYXJ5IFRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyBpZiBQcmltYXJ5IC8gU2Vjb25kYXJ5IGZpZWxkIG11c3QgYmUgc2VsZWN0ZWQgYnkgdGhlIGFnZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSByZXNwb25zaWJsZSBhZ2VudCBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgc2VydmljZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlNlcnZpY2UgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlR5cGUgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gY2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXR1cyBvZiBhIHRpY2tldCBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIGludm9sdmVkIGFnZW50cyBvbiB0aGlzIHRpY2tldCwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpc3Qgb2YgYWxsIHRoZSBwb3NzaWJsZSBhZ2VudHMgKGFsbCBhZ2VudHMgd2l0aCBub3RlIHBlcm1pc3Npb25zIG9uIHRoZSBxdWV1ZS90aWNrZXQpIHRvIGRldGVybWluZSB3aG8gc2hvdWxkIGJlIGluZm9ybWVkIGFib3V0IHRoaXMgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGl0bGUgZmllbGQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBhcnRpY2xlIGNvbW11bmljYXRpb24gY2hhbm5lbHMgd2hlcmUgdGhlIHJlYWwgbmFtZSBmcm9tIFByaW1hcnkgdGlja2V0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgb25lIGluIHRoZSBTZWNvbmRhcnkgdGlja2V0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGFjdGl2YXRlcyBQcmltYXJ5L1NlY29uZGFyeSBmaWVsZCBpbiBuZXcgZW1haWwgYW5kIHBob25lIHRpY2tldCBzY3JlZW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnVydGhlciB2ZXJzaW9ucyBvZiBabnVueVByaW1hcnlTZWNvbmRhcnkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IFByaW1hcnlTZWNvbmRhcnkuJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/ms_ZnunyPrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6bXNfWm51bnlQcmltYXJ5U2Vjb25kYXJ5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBQcmltYXJ5L1NlY29uZGFyeSBzdGF0dXMgZm9yICVzJXMlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgU2Vjb25kYXJ5IFRpY2tldCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1RpY2tldEJ1bGsvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IFNlY29uZGFyeSBUaWNrZXRzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgVGlja2V0J30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHByaW1hcnkgdGlja2V0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgc2Vjb25kYXJ5IHRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3dzIGFkZGluZyBub3RlcyBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiB0aGUgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGR5bmFtaWMgZmllbGQgbmFtZSBmb3IgcHJpbWFyeSB0aWNrZXQgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBhIHRpY2tldCBsb2NrIGlzIHJlcXVpcmVkIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKGlmIHRoZSB0aWNrZXQgaXNuXCd0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IG5vdGUgaXMgdmlzaWJsZSBmb3IgdGhlIGN1c3RvbWVyIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB0aWNrZXQgcHJpb3JpdHkgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGlzdG9yeSB0eXBlIGZvciB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IHBhcnQgb2YgdGhlIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdGhhdCBzZWNvbmRhcnkgdGlja2V0cyBmb2xsb3cgdGhlIHByaW1hcnkgdGlja2V0IHRvIGEgbmV3IHByaW1hcnkgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGNoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8gZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgb2YgYSBwcmltYXJ5IHRpY2tldCB0byB0aGUgY3VzdG9tZXJzIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4gQnkgZGVmYXVsdCAoZGlzYWJsZWQpIGl0IHdpbGwgbm90IGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIHRvIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgY2hhbmdlIG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIHVuc2V0IG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byB1bnNldCB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgcHJpbWFyeSB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgLyBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnlTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeVNlY29uZGFyeSBtb2R1bGUgZm9yIFRpY2tldCBCdWxrIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ2lzdHJhdGlvbiBvZiB0aGUgdGlja2V0IGV2ZW50IG1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gdXNlIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2Vjb25kYXJ5IFRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyBpZiBQcmltYXJ5IC8gU2Vjb25kYXJ5IGZpZWxkIG11c3QgYmUgc2VsZWN0ZWQgYnkgdGhlIGFnZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSByZXNwb25zaWJsZSBhZ2VudCBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgc2VydmljZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlNlcnZpY2UgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlR5cGUgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gY2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXR1cyBvZiBhIHRpY2tldCBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIGludm9sdmVkIGFnZW50cyBvbiB0aGlzIHRpY2tldCwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpc3Qgb2YgYWxsIHRoZSBwb3NzaWJsZSBhZ2VudHMgKGFsbCBhZ2VudHMgd2l0aCBub3RlIHBlcm1pc3Npb25zIG9uIHRoZSBxdWV1ZS90aWNrZXQpIHRvIGRldGVybWluZSB3aG8gc2hvdWxkIGJlIGluZm9ybWVkIGFib3V0IHRoaXMgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGl0bGUgZmllbGQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBhcnRpY2xlIGNvbW11bmljYXRpb24gY2hhbm5lbHMgd2hlcmUgdGhlIHJlYWwgbmFtZSBmcm9tIFByaW1hcnkgdGlja2V0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgb25lIGluIHRoZSBTZWNvbmRhcnkgdGlja2V0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGFjdGl2YXRlcyBQcmltYXJ5L1NlY29uZGFyeSBmaWVsZCBpbiBuZXcgZW1haWwgYW5kIHBob25lIHRpY2tldCBzY3JlZW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnVydGhlciB2ZXJzaW9ucyBvZiBabnVueVByaW1hcnlTZWNvbmRhcnkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IFByaW1hcnlTZWNvbmRhcnkuJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/pl_ZnunyPrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cGxfWm51bnlQcmltYXJ5U2Vjb25kYXJ5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBQcmltYXJ5L1NlY29uZGFyeSBzdGF0dXMgZm9yICVzJXMlcyd9ID0gJ1phcnrEhWR6YWogc3RhdHVzZW0gTmFkcnrEmWRueS9Qb2RyesSZZG55IGRsYSAlcyVzJXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFByaW1hcnkgVGlja2V0J30gPSAnTm93ZSB6Z8WCb3N6ZW5pZSBuYWRyesSZZG5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IFByaW1hcnkgVGlja2V0J30gPSAnVW5pZXdhxbxuaWogbmFkcnrEmWRub8WbxIcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgU2Vjb25kYXJ5IFRpY2tldCd9ID0gJ1VuaWV3YcW8bmlqIHBvZHJ6xJlkbm/Fm8SHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlY29uZGFyeSBvZiAlcyVzJXM6ICVzJ30gPSAnUG9kcnrEmWRueSBkbyAlcyVzJXM6ICVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGlja2V0QnVsay9QcmltYXJ5U2Vjb25kYXJ5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbnNldCBQcmltYXJ5IFRpY2tldHMnfSA9ICdVbmlld2HFvG5paiBuYWRyesSZZG5vxZvEhyB6Z8WCb3N6ZcWEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IFNlY29uZGFyeSBUaWNrZXRzJ30gPSAnVW5pZXdhxbxuaWogcG9kcnrEmWRub8WbxIcgemfFgm9zemXFhCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9EeW5hbWljRmllbGQvRHJpdmVyL1ByaW1hcnlTZWNvbmRhcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnknfSA9ICdOYWRyesSZZG55JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlY29uZGFyeSBvZiAlcyVzJXMnfSA9ICdQb2RyesSZZG55IGRvICVzJXMlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmltYXJ5IFRpY2tldCd9ID0gJ1pnxYJvc3plbmllIG5hZHJ6xJlkbmUnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgcHJpbWFyeSB0aWNrZXRzJ30gPSAnV3N6eXN0a2llIHpnxYJvc3plbmlhIG5hZHJ6xJlkbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHNlY29uZGFyeSB0aWNrZXRzJ30gPSAnV3N6eXN0a2llIHpnxYJvc3plbmlhIHBvZHJ6xJlkbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3dzIGFkZGluZyBub3RlcyBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnUG96d2FsYSBuYSBkb2Rhd2FuaWUgbm90YXRlayB3IG9rbmllIE5hZHJ6xJlkbnlQb2RyesSZZG55IHcgc3pjemVnw7PFgmFjaCB6Z8WCb3N6ZW5pYSBpbnRlcmZlanN1IGFnZW50YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIG9mIHRoZSB0aWNrZXQuJ30gPSAnWm1pZcWEIHN0YW4gTmFkcnrEmWRueVBvZHJ6xJlkbnkgemfFgm9zemVuaWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgZHluYW1pYyBmaWVsZCBuYW1lIGZvciBwcmltYXJ5IHRpY2tldCBmZWF0dXJlLid9ID0gJ09rcmXFm2xhIG5henfEmSBwb2xhIGR5bmFtaWN6bmVnbyBkbyBmdW5rY2pvbmFsbm/Fm2NpIG5hZHJ6xJlkbm/Fm2NpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGEgdGlja2V0IGxvY2sgaXMgcmVxdWlyZWQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZSAoaWYgdGhlIHRpY2tldCBpc25cJ3QgbG9ja2VkIHlldCwgdGhlIHRpY2tldCBnZXRzIGxvY2tlZCBhbmQgdGhlIGN1cnJlbnQgYWdlbnQgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSBhcyBpdHMgb3duZXIpLid9ID0KICAgICAgICAnT2tyZcWbbGEgY3p5IGplc3QgcG90cnplYm5hIGJsb2thZGEgbmEgemfFgm9zemVuaXUgdyBva25pZSBOYWR6cnrEmWRueVBvZHJ6xJlkbnkgdyBzemN6ZWfDs8WCYWNoIHpnxYJvc3plbmlhIGludGVyZmVqc3UgYWdlbnRhLiBaZ8WCb3N6ZW5pZSB6b3N0YW5pZSB6YWJsb2tvd2FuZSwgYSBiaWXFvMSFY3kgYWdlbnQgc3RhbmllIHNpZSBhdXRvbWF0eWN6bmllIHfFgmHFm2NpY2llbGVtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IG5vdGUgaXMgdmlzaWJsZSBmb3IgdGhlIGN1c3RvbWVyIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICdPa3JlxZtsYSBjenkgbm90YXRrYSB6IG9rbmEgTmFkcnrEmWRueVBvZHJ6xJlkbnkgamVzdCBkb215xZtsbmllIHdpZG9jem5hIGRsYSBrbGllbnRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ09rcmXFm2xhIGRvbXnFm2xueSBuYXN0xJlwbnkgc3RhbiB6Z8WCb3N6ZW5pYSBwbyBkb2Rhbml1IG5vdGF0a2kgdyBva25pZSBOYWRyesSZZG55UG9kcnrEmWRueSB3IHN6Y3plZ8OzxYJhY2ggemfFgm9zemVuaWEgaW50ZXJmZWpzdSBhZ2VudGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdGlja2V0IHByaW9yaXR5IGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdPa3JlxZtsYSBkb215xZtsbnkgcHJpb3J5dGV0IHpnxYJvc3plbmlhIHcgb2tuaWUgTmFkcnrEmWRueVBvZHJ6xJlkbnkgdyBzemN6ZWfDs8WCYWNoIHpnxYJvc3plbmlhIGludGVyZmVqc3UgYWdlbnRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdPa3JlxZtsYSBrb21lbnRhcnogaGlzdG9yaWkgcG8gYWtjamkgdyBva25pZSBOYWRyesSZZG55UG9kcnrEmWRueSwgamFraSB6b3N0YW5pZSB6YXBpc2FueSB3IGhpc3RvcmlpIHpnxYJvc3plbmlhIHogaW50ZXJmZWpzdSBhZ2VudGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGhpc3RvcnkgdHlwZSBmb3IgdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBhY3Rpb24sIHdoaWNoIGdldHMgdXNlZCBmb3IgdGlja2V0IGhpc3RvcnkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ09rcmXFm2xhIHR5cCBoaXN0b3JpaSBwbyBha2NqaSB3IG9rbmllIE5hZHJ6xJlkbnlQb2RyesSZZG55LCBqYWtpIHpvc3RhbmllIHphcGlzYW55IHcgaGlzdG9yaWkgemfFgm9zemVuaWEgeiBpbnRlcmZlanN1IGFnZW50YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgbmV4dCBzdGF0ZSBvZiBhIHRpY2tldCBhZnRlciBhZGRpbmcgYSBub3RlLCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnT2tyZcWbbGEgbmFzdMSZcG55IHN0YW4gemfFgm9zemVuaWEgcG8gZG9kYW5pdSBub3RhdGtpIHcgb2tuaWUgTmFkcnrEmWRueVBvZHJ6xJlkbnkgdyBzemN6ZWfDs8WCYWNoIHpnxYJvc3plbmlhIGludGVyZmVqc3UgYWdlbnRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IHBhcnQgb2YgdGhlIGZlYXR1cmUuJ30gPSAnV8WCxIVjemEgdXN0YXdpZW5pYSB6YWF3YW5zb3dhbmUgZnVua2Nqb25hbG5vxZtjaSBOYWRyesSZZG55UG9kcnrEmWRueS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0aGF0IHNlY29uZGFyeSB0aWNrZXRzIGZvbGxvdyB0aGUgcHJpbWFyeSB0aWNrZXQgdG8gYSBuZXcgcHJpbWFyeSBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnV8WCxIVjemEgZnVua2Nqb25hbG5vxZvEhyB6YWF3YW5zb3dhbsSFIHBvZMSFxbxhbmlhIHpnxYJvc3plxYQgcG9kcnrEmWRueWNoIHphIHpnxYJvc3plbmllbSBuYWRyesSZZG55bSBkbyBub3dlZ28gemfFgm9zemVuaWEgbmFkcnrEmWRuZWdvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGNoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnV8WCxIVjemEgZnVua2Nqb25hbG5vxZvEhyB6YWF3YW5zb3dhbsSFIHptaWFueSBzdGFudSBuYWRyesSZZG5vxZtjaSB6Z8WCb3N6ZW5pYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byBmb3J3YXJkIGFydGljbGVzIGZyb20gdHlwZSBcJ2ZvcndhcmRcJyBvZiBhIHByaW1hcnkgdGlja2V0IHRvIHRoZSBjdXN0b21lcnMgb2YgdGhlIHNlY29uZGFyeSB0aWNrZXRzLiBCeSBkZWZhdWx0IChkaXNhYmxlZCkgaXQgd2lsbCBub3QgZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgdG8gdGhlIHNlY29uZGFyeSB0aWNrZXRzLid9ID0KICAgICAgICAnV8WCxIVjemEgZnVua2Nqb25hbG5vxZvEhyBwcnpla2F6eXdhbmlhIGFydHlrdcWCw7N3IHR5cHUgXCdwcnpla2HFvFwnIHplIHpnxYJvc3plbmlhIG5hZHJ6xJlkbmVnbyBkbyBrbGllbnTDs3cgemfFgm9zemXFhCBwb2RyesSZZG55Y2guIERvbXnFm2xuaWUgKHd5xYLEhWN6b25lKSBhcnR5a3XFgnkgdHlwdSBcJ3ByemVrYcW8XCcgbmllIHPEhSBwcnpla2F6eXdhbmUgZG8gemfFgm9zemXFhCBwb2RyesSZZG55Y2guJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8ga2VlcCBwYXJlbnQtY2hpbGQgbGluayBhZnRlciBjaGFuZ2Ugb2YgdGhlIFByaW1hcnlTZWNvbmRhcnkgc3RhdGUgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJ1fFgsSFY3phIGZ1bmtjam9uYWxub8WbxIcgemFhd2Fuc293YW7EhSB1dHJ6eW15d2FuaWEgxYLEhWN6YSByb2R6aWMtcG90b21layBwbyB6bWlhbmllIHN0YW51IG5hZHJ6xJlkbm/Fm2NpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgdW5zZXQgb2YgdGhlIFByaW1hcnlTZWNvbmRhcnkgc3RhdGUgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJ1fFgsSFY3phIGZ1bmtjam9uYWxub8WbxIcgemFhd2Fuc293YW7EhSB1dHJ6eW15d2FuaWEgxYLEhWN6YSByb2R6aWMtcG90b21layBwbyB1c3VuacSZY2l1IHN0YW51IG5hZHJ6xJlkbm/Fm2NpIGx1YiBwb2RyesSZZG5vxZtjaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byB1bnNldCB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnV8WCxIVjemEgZnVua2Nqb25hbG5vxZvEhyB6YWF3YW5zb3dhbsSFIHVzdW5pxJljaWEgc3RhbnUgbmFkcnrEmWRub8WbY2kgbHViIHBvZHJ6xJlkbm/Fm2NpIHpnxYJvc3plbmlhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBhIG5vdGUgaXMgYWRkZWQgYnkgYW4gYWdlbnQsIHNldHMgdGhlIHN0YXRlIG9mIHRoZSB0aWNrZXQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1Vtb8W8bGl3aWEgem1pYW7EmSBzdGFudSB6Z8WCb3N6ZW5pYSBuYSBla3JhbmllIE5hZHJ6xJlkbnlQb2RyesSZZG55IHcgaW50ZXJmZWpzaWUgYWdlbnRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQgb2YgdGhlIHByaW1hcnkgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnVXN0YXdpZW5pZSBwYXJhbWV0csOzdyBwcnplZ2zEhWR1IG5hIHB1bHBpY2llIGRsYSB6Z8WCb3N6ZcWEIG5hZHJ6xJlkbnljaCB3IGludGVyZmVqc2llIGFnZW50YS4g4oCeTGltaXTigJ0gb2tyZcWbbGEgbGljemLEmSB3cGlzw7N3IHd5xZt3aWV0bGFueWNoIGRvbXnFm2xuaWUuIOKAnkdydXBh4oCdIHPFgnXFvHkgZG8gb2dyYW5pY3phbmlhIGRvc3TEmXB1IGRvIHd0eWN6a2kgKG5wLiBHcnVwYTogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiDigJ5Eb215xZtsbmll4oCdIG9rcmXFm2xhLCBjenkgd3R5Y3prYSBqZXN0IGRvbXnFm2xuaWUgYWt0eXdvd2FuYSwgY3p5IHRlxbwgdcW8eXRrb3duaWsgbXVzaSBqxIUgYWt0eXdvd2HEhyBzYW1vZHppZWxuaWUuIOKAnkNhY2hlVFRMTG9jYWzigJ0gdG8gY3phcyBidWZvcm93YW5pYSB3dHljemtpLCBva3JlxZtsb255IHcgbWludXRhY2guJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgc2Vjb25kYXJ5IHRpY2tldHMgb3ZlcnZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4gIkxpbWl0IiBpcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgc2hvd24gYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IHRoZSBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGRldGVybWluZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhlIHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5LiAiQ2FjaGVUVExMb2NhbCIgaXMgdGhlIGNhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIHBsdWdpbi4nfSA9CiAgICAgICAgJ1VzdGF3aWVuaWUgcGFyYW1ldHLDs3cgcHJ6ZWdsxIVkdSBuYSBwdWxwaWNpZSBkbGEgemfFgm9zemXFhCBwb2RyesSZZG55Y2ggdyBpbnRlcmZlanNpZSBhZ2VudGEuIOKAnkxpbWl04oCdIG9rcmXFm2xhIGxpY3pixJkgd3Bpc8OzdyB3ecWbd2lldGxhbnljaCBkb215xZtsbmllLiDigJ5HcnVwYeKAnSBzxYJ1xbx5IGRvIG9ncmFuaWN6YW5pYSBkb3N0xJlwdSBkbyB3dHljemtpIChucC4gR3J1cGE6IGFkbWluO2dyb3VwMTtncm91cDI7KS4g4oCeRHBtecWbbG5pZeKAnSBva3JlxZtsYSwgY3p5IHd0eWN6a2EgamVzdCBkb215xZtsbmllIGFrdHl3b3dhbmEsIGN6eSB0ZcW8IHXFvHl0a293bmlrIG11c2kgasSFIGFrdHl3b3dhxIcgc2Ftb2R6aWVsbmllLiDigJ5DYWNoZVRUTExvY2Fs4oCdIHRvIGN6YXMgYnVmb3Jvd2FuaWEgd3R5Y3praSBva3JlxZtsb255IHcgbWludXRhY2guJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgLyBTZWNvbmRhcnknfSA9ICdOYWRyesSZZG55IC8gUG9kcnrEmWRueSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmltYXJ5IFNlY29uZGFyeSd9ID0gJ05hZHJ6xJlkbmUgUG9kcnrEmWRuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmltYXJ5IFRpY2tldHMnfSA9ICdaZ8WCb3N6ZW5pYSBuYWRyesSZZG5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnlTZWNvbmRhcnknfSA9ICdOYWRyesSZZG55UG9kcnrEmWRueSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmltYXJ5U2Vjb25kYXJ5IG1vZHVsZSBmb3IgVGlja2V0IEJ1bGsgZmVhdHVyZS4nfSA9ICdNb2R1xYIgTmFkcnrEmWRueVBvZHJ6xJlkbnkgZGxhIG9wZXJhY2ppIHpiaW9yY3p5Y2ggbmEgemfFgm9zemVuaXUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ2lzdHJhdGlvbiBvZiB0aGUgdGlja2V0IGV2ZW50IG1vZHVsZS4nfSA9ICdSZWplc3RyYWNqYSBtb2R1xYJ1IHpkYXJ6ZcWEIGRsYSB6Z8WCb3N6ZW5pYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gdXNlIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdVcHJhd25pZW5pYSB3eW1hZ2FuZSBkbyB1xbx5d2FuaWEgb2tuYSBOYWRyesSZZG55UG9kcnrEmWRueSB3IHN6Y3plZ8OzxYJhY2ggemfFgm9zemVuaWEgaW50ZXJmZWpzdSBhZ2VudGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlY29uZGFyeSBUaWNrZXRzJ30gPSAnWmfFgm9zemVuaWEgcG9kcnrEmWRuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIGlmIFByaW1hcnkgLyBTZWNvbmRhcnkgZmllbGQgbXVzdCBiZSBzZWxlY3RlZCBieSB0aGUgYWdlbnQuJ30gPQogICAgICAgICdVc3Rhd2lhIHBvbGUgTmFkcnrEmWRueSAvIFBvZHJ6xJlkbnkgamFrbyB3eW1hZ2FuZSBvZCBhZ2VudGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVXN0YXdpYSBkb215xZtsbsSFIHRyZcWbxIcgbm90YXRraSBkb2Rhd2FuZWogdyBva25pZSBOYWRyesSZZG55UG9kcnrEmWRueSB3IHN6Y3plZ8OzxYJhY2ggemfFgm9zemVuaWEgaW50ZXJmZWpzdSBhZ2VudGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1VzdGF3aWEgZG9tecWbbG55IHRlbWF0IG5vdGF0a2kgZG9kYXdhbmVqIHcgb2tuaWUgTmFkcnrEmWRueVBvZHJ6xJlkbnkgdyBzemN6ZWfDs8WCYWNoIHpnxYJvc3plbmlhIGludGVyZmVqc3UgYWdlbnRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSByZXNwb25zaWJsZSBhZ2VudCBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdVc3Rhd2lhIGFnZW50YSBvZHBvd2llZHppYWxuZWdvIHphIHpnxYJvc3plbmllIHcgb2tuaWUgTmFkcnrEmWRueVBvZHJ6xJlkbnkgdyBzemN6ZWfDs8WCYWNoIHpnxYJvc3plbmlhIGludGVyZmVqc3UgYWdlbnRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBzZXJ2aWNlIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKFRpY2tldDo6U2VydmljZSBuZWVkcyB0byBiZSBhY3RpdmF0ZWQpLid9ID0KICAgICAgICAnVXN0YXdpYSB1c8WCdWfEmSB3IG9rbmllIE5hZHJ6xJlkbnlQb2RyesSZZG55IHcgc3pjemVnw7PFgmFjaCB6Z8WCb3N6ZW5pYSBpbnRlcmZlanN1IGFnZW50YSAoVGlja2V0OjpTZXJ2aWNlIG11c2kgYnnEhyBha3R5d293YW5lKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgdGlja2V0IG93bmVyIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdVc3Rhd2lhIHfFgmHFm2NpY2llbGEgemfFgm9zemVuaWEgdyBva25pZSBOYWRyesSZZG55UG9kcnrEmWRueSB3IHN6Y3plZ8OzxYJhY2ggemfFgm9zemVuaWEgaW50ZXJmZWpzdSBhZ2VudGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIHRpY2tldCB0eXBlIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKFRpY2tldDo6VHlwZSBuZWVkcyB0byBiZSBhY3RpdmF0ZWQpLid9ID0KICAgICAgICAnVXN0YXdpYSB0eXAgemfFgm9zemVuaWEgdyBva25pZSBOYWRyesSZZG55UG9kcnrEmWRueSB3IHN6Y3plZ8OzxYJhY2ggemfFgm9zemVuaWEgaW50ZXJmZWpzdSBhZ2VudGEgKFRpY2tldDo6VHlwZSBtdXNpIGJ5xIcgd8WCxIVjem9uZSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBjaGFuZ2UgdGhlIFByaW1hcnlTZWNvbmRhcnkgc3RhdHVzIG9mIGEgdGlja2V0IGluIHRoZSB0aWNrZXQgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdQb2thenVqZSBsaW5rIHcgbWVudSBzemN6ZWfDs8WCw7N3IHpnxYJvc3plbmlhIGRvIHptaWFueSBzdGFudSBuYWRyesSZZG5vxZtjaSB6Z8WCb3N6ZW5pYSB3IGludGVyZmVqc2llIGFnZW50YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaXN0IG9mIGFsbCB0aGUgaW52b2x2ZWQgYWdlbnRzIG9uIHRoaXMgdGlja2V0LCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnUG9rYXp1amUgbGlzdMSZIHdzenlzdGtpY2ggYWdlbnTDs3cgemFhbmdhxbxvd2FueWNoIHcgemfFgm9zemVuaWUgdyBva25pZSBOYWRyesSZZG55UG9kcnrEmWRueSB3IHN6Y3plZ8OzxYJhY2ggemfFgm9zemVuaWEgaW50ZXJmZWpzdSBhZ2VudGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIHBvc3NpYmxlIGFnZW50cyAoYWxsIGFnZW50cyB3aXRoIG5vdGUgcGVybWlzc2lvbnMgb24gdGhlIHF1ZXVlL3RpY2tldCkgdG8gZGV0ZXJtaW5lIHdobyBzaG91bGQgYmUgaW5mb3JtZWQgYWJvdXQgdGhpcyBub3RlLCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnUG9rYXp1amUgbGlzdMSZIHdzenlzdGtpY2ggbW/FvGxpd3ljaCBhZ2VudMOzdyAod3N6eXN0a2ljaCB6IHVwcmF3bmllbmlhbWkgZG8gbm90YXRlayB3IGtvbGVqY2UgbHViIHpnxYJvc3plbml1KSB3IGNlbHUgb2tyZcWbbGVuaWEga3RvIHBvd2luaWVuIGJ5xIcgcG9pbmZvcm1vd2FueSBvIHRlaiBub3RhdGNlLCB3IG9rbmllIE5hZHJ6xJlkbnlQb2RyesSZZG55IHcgc3pjemVnw7PFgmFjaCB6Z8WCb3N6ZW5pYSBpbnRlcmZlanN1IGFnZW50YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgdGhlIHRpY2tldCBwcmlvcml0eSBvcHRpb25zIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdQb2thenVqZSBvcGNqxJkgcHJpb3J5dGV0dSB6Z8WCb3N6ZW5pYSB3IG9rbmllIE5hZHJ6xJlkbnlQb2RyesSZZG55IHcgc3pjemVnw7PFgmFjaCB6Z8WCb3N6ZW5pYSBpbnRlcmZlanN1IGFnZW50YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgdGhlIHRpdGxlIGZpZWxkIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdQb2thenVqZSBwb2xlIHR5dHXFgnUgdyBva25pZSBOYWRyesSZZG55UG9kcnrEmWRueSB3IHN6Y3plZ8OzxYJhY2ggemfFgm9zemVuaWEgaW50ZXJmZWpzdSBhZ2VudGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyB0aGUgZGlmZmVyZW50IGFydGljbGUgY29tbXVuaWNhdGlvbiBjaGFubmVscyB3aGVyZSB0aGUgcmVhbCBuYW1lIGZyb20gUHJpbWFyeSB0aWNrZXQgd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRoZSBvbmUgaW4gdGhlIFNlY29uZGFyeSB0aWNrZXQuJ30gPQogICAgICAgICdPa3JlxZtsYSByw7PFvG5lIGthbmHFgnkga29tdW5pa2FjamkgYXJ0eWt1xYJ1LCBnZHppZSBwcmF3ZHppd2EgbmF6d2EgemUgemfFgm9zemVuaWEgbmFkcnrEmWRuZWdvIHpvc3RhbmllIHphc3TEhXBpb25hIHcgemfFgm9zemVuaWFjaCBwb2RyesSZZG55Y2guJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGFjdGl2YXRlcyBQcmltYXJ5L1NlY29uZGFyeSBmaWVsZCBpbiBuZXcgZW1haWwgYW5kIHBob25lIHRpY2tldCBzY3JlZW5zLid9ID0KICAgICAgICAnVGVuIG1vZHXFgiBha3R5d3VqZSBwb2xlIE5hZHJ6xJlkbnQvUG9kcnrEmWRueSBuYSBla3JhbmFjaCBub3dlZ28gemfFgm9zemVuaWEgZW1haWwgaSB0ZWxlZm9uaWN6bmVnby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBmdXJ0aGVyIHZlcnNpb25zIG9mIFpudW55UHJpbWFyeVNlY29uZGFyeS4nfSA9CiAgICAgICAgJ1RvIHVzdGF3aWVuaWUgamVzdCBqdcW8IG5pZWFrdHVhbG5lIGkgem9zdGFuaWUgdXN1bmnEmXRlIHcgbmFzdMSZcG55Y2ggd2Vyc2phY2ggWm51bnlQcmltYXJ5U2Vjb25kYXJ5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgUHJpbWFyeVNlY29uZGFyeS4nfSA9ICdaZ8WCb3N6ZW5pZSBOYWRyesSZZG5lUG9kcnrEmWRuZS4nOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vPSBbXSB9LCAoCiAgICApOwoKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Language/pt_BR_ZnunyPrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cHRfQlJfWm51bnlQcmltYXJ5U2Vjb25kYXJ5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBQcmltYXJ5L1NlY29uZGFyeSBzdGF0dXMgZm9yICVzJXMlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgU2Vjb25kYXJ5IFRpY2tldCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1RpY2tldEJ1bGsvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IFNlY29uZGFyeSBUaWNrZXRzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgVGlja2V0J30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHByaW1hcnkgdGlja2V0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgc2Vjb25kYXJ5IHRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3dzIGFkZGluZyBub3RlcyBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiB0aGUgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGR5bmFtaWMgZmllbGQgbmFtZSBmb3IgcHJpbWFyeSB0aWNrZXQgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBhIHRpY2tldCBsb2NrIGlzIHJlcXVpcmVkIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKGlmIHRoZSB0aWNrZXQgaXNuXCd0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IG5vdGUgaXMgdmlzaWJsZSBmb3IgdGhlIGN1c3RvbWVyIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB0aWNrZXQgcHJpb3JpdHkgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGlzdG9yeSB0eXBlIGZvciB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IHBhcnQgb2YgdGhlIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdGhhdCBzZWNvbmRhcnkgdGlja2V0cyBmb2xsb3cgdGhlIHByaW1hcnkgdGlja2V0IHRvIGEgbmV3IHByaW1hcnkgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGNoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8gZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgb2YgYSBwcmltYXJ5IHRpY2tldCB0byB0aGUgY3VzdG9tZXJzIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4gQnkgZGVmYXVsdCAoZGlzYWJsZWQpIGl0IHdpbGwgbm90IGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIHRvIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgY2hhbmdlIG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIHVuc2V0IG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byB1bnNldCB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgcHJpbWFyeSB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgLyBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnlTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeVNlY29uZGFyeSBtb2R1bGUgZm9yIFRpY2tldCBCdWxrIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ2lzdHJhdGlvbiBvZiB0aGUgdGlja2V0IGV2ZW50IG1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gdXNlIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2Vjb25kYXJ5IFRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyBpZiBQcmltYXJ5IC8gU2Vjb25kYXJ5IGZpZWxkIG11c3QgYmUgc2VsZWN0ZWQgYnkgdGhlIGFnZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSByZXNwb25zaWJsZSBhZ2VudCBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgc2VydmljZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlNlcnZpY2UgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlR5cGUgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gY2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXR1cyBvZiBhIHRpY2tldCBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIGludm9sdmVkIGFnZW50cyBvbiB0aGlzIHRpY2tldCwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpc3Qgb2YgYWxsIHRoZSBwb3NzaWJsZSBhZ2VudHMgKGFsbCBhZ2VudHMgd2l0aCBub3RlIHBlcm1pc3Npb25zIG9uIHRoZSBxdWV1ZS90aWNrZXQpIHRvIGRldGVybWluZSB3aG8gc2hvdWxkIGJlIGluZm9ybWVkIGFib3V0IHRoaXMgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGl0bGUgZmllbGQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBhcnRpY2xlIGNvbW11bmljYXRpb24gY2hhbm5lbHMgd2hlcmUgdGhlIHJlYWwgbmFtZSBmcm9tIFByaW1hcnkgdGlja2V0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgb25lIGluIHRoZSBTZWNvbmRhcnkgdGlja2V0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGFjdGl2YXRlcyBQcmltYXJ5L1NlY29uZGFyeSBmaWVsZCBpbiBuZXcgZW1haWwgYW5kIHBob25lIHRpY2tldCBzY3JlZW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnVydGhlciB2ZXJzaW9ucyBvZiBabnVueVByaW1hcnlTZWNvbmRhcnkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IFByaW1hcnlTZWNvbmRhcnkuJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/pt_ZnunyPrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cHRfWm51bnlQcmltYXJ5U2Vjb25kYXJ5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBQcmltYXJ5L1NlY29uZGFyeSBzdGF0dXMgZm9yICVzJXMlcyd9ID0gJ0dlcmlyIFByaW3DoXJpby9Fc3RhZG8gU2VjdW5kw6FyaW8gcGFyYSAlcyVzJXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFByaW1hcnkgVGlja2V0J30gPSAnTm92byBUaWNrZXQgUHJpbcOhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IFByaW1hcnkgVGlja2V0J30gPSAnVGlja2V0IFByaW3DoXJpbyBuw6NvIERlZmluaWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IFNlY29uZGFyeSBUaWNrZXQnfSA9ICdUaWNrZXQgU2VjdW5kw6FyaW8gTsOjbyBEZWZpbmlkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1RpY2tldEJ1bGsvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXRzJ30gPSAnVGlja2V0cyBQcmltw6FyaW9zIE7Do28gRGVmaW5pZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IFNlY29uZGFyeSBUaWNrZXRzJ30gPSAnVGlja2V0cyBTZWN1bmTDoXJpb3MgTsOjbyBEZWZpbmlkb3MnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9QcmltYXJ5U2Vjb25kYXJ5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmltYXJ5J30gPSAnUHJpbcOhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlY29uZGFyeSBvZiAlcyVzJXMnfSA9ICdTZWN1bmTDoXJpbyBkZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmltYXJ5IFRpY2tldCd9ID0gJ1RpY2tldCBQcmltw6FyaW8nOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgcHJpbWFyeSB0aWNrZXRzJ30gPSAnVG9kb3Mgb3MgVGlja2V0cyBQcmltw6FyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBzZWNvbmRhcnkgdGlja2V0cyd9ID0gJ1RvZG9zIG9zIFRpY2tldHMgU2VjdW5kw6FyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93cyBhZGRpbmcgbm90ZXMgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1Blcm1pdGUgYWRpY2lvbmFyIG5vdGFzIG5vIGVjcsOjIFByaW3DoXJpbyBTZWN1bmTDoXJpbyBkZSB1bSBiaWxoZXRlIGFtcGxpYWRvIG5hIGludGVyZmFjZSBkbyBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiB0aGUgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGR5bmFtaWMgZmllbGQgbmFtZSBmb3IgcHJpbWFyeSB0aWNrZXQgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBhIHRpY2tldCBsb2NrIGlzIHJlcXVpcmVkIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKGlmIHRoZSB0aWNrZXQgaXNuXCd0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IG5vdGUgaXMgdmlzaWJsZSBmb3IgdGhlIGN1c3RvbWVyIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB0aWNrZXQgcHJpb3JpdHkgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGlzdG9yeSB0eXBlIGZvciB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IHBhcnQgb2YgdGhlIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdGhhdCBzZWNvbmRhcnkgdGlja2V0cyBmb2xsb3cgdGhlIHByaW1hcnkgdGlja2V0IHRvIGEgbmV3IHByaW1hcnkgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGNoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8gZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgb2YgYSBwcmltYXJ5IHRpY2tldCB0byB0aGUgY3VzdG9tZXJzIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4gQnkgZGVmYXVsdCAoZGlzYWJsZWQpIGl0IHdpbGwgbm90IGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIHRvIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgY2hhbmdlIG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIHVuc2V0IG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byB1bnNldCB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgcHJpbWFyeSB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgLyBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnlTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeVNlY29uZGFyeSBtb2R1bGUgZm9yIFRpY2tldCBCdWxrIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ2lzdHJhdGlvbiBvZiB0aGUgdGlja2V0IGV2ZW50IG1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gdXNlIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2Vjb25kYXJ5IFRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyBpZiBQcmltYXJ5IC8gU2Vjb25kYXJ5IGZpZWxkIG11c3QgYmUgc2VsZWN0ZWQgYnkgdGhlIGFnZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSByZXNwb25zaWJsZSBhZ2VudCBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgc2VydmljZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlNlcnZpY2UgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlR5cGUgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gY2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXR1cyBvZiBhIHRpY2tldCBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIGludm9sdmVkIGFnZW50cyBvbiB0aGlzIHRpY2tldCwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpc3Qgb2YgYWxsIHRoZSBwb3NzaWJsZSBhZ2VudHMgKGFsbCBhZ2VudHMgd2l0aCBub3RlIHBlcm1pc3Npb25zIG9uIHRoZSBxdWV1ZS90aWNrZXQpIHRvIGRldGVybWluZSB3aG8gc2hvdWxkIGJlIGluZm9ybWVkIGFib3V0IHRoaXMgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGl0bGUgZmllbGQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBhcnRpY2xlIGNvbW11bmljYXRpb24gY2hhbm5lbHMgd2hlcmUgdGhlIHJlYWwgbmFtZSBmcm9tIFByaW1hcnkgdGlja2V0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgb25lIGluIHRoZSBTZWNvbmRhcnkgdGlja2V0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGFjdGl2YXRlcyBQcmltYXJ5L1NlY29uZGFyeSBmaWVsZCBpbiBuZXcgZW1haWwgYW5kIHBob25lIHRpY2tldCBzY3JlZW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnVydGhlciB2ZXJzaW9ucyBvZiBabnVueVByaW1hcnlTZWNvbmRhcnkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IFByaW1hcnlTZWNvbmRhcnkuJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/ru_ZnunyPrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cnVfWm51bnlQcmltYXJ5U2Vjb25kYXJ5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBQcmltYXJ5L1NlY29uZGFyeSBzdGF0dXMgZm9yICVzJXMlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgU2Vjb25kYXJ5IFRpY2tldCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1RpY2tldEJ1bGsvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IFNlY29uZGFyeSBUaWNrZXRzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgVGlja2V0J30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHByaW1hcnkgdGlja2V0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgc2Vjb25kYXJ5IHRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3dzIGFkZGluZyBub3RlcyBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiB0aGUgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGR5bmFtaWMgZmllbGQgbmFtZSBmb3IgcHJpbWFyeSB0aWNrZXQgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBhIHRpY2tldCBsb2NrIGlzIHJlcXVpcmVkIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKGlmIHRoZSB0aWNrZXQgaXNuXCd0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IG5vdGUgaXMgdmlzaWJsZSBmb3IgdGhlIGN1c3RvbWVyIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB0aWNrZXQgcHJpb3JpdHkgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGlzdG9yeSB0eXBlIGZvciB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IHBhcnQgb2YgdGhlIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdGhhdCBzZWNvbmRhcnkgdGlja2V0cyBmb2xsb3cgdGhlIHByaW1hcnkgdGlja2V0IHRvIGEgbmV3IHByaW1hcnkgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGNoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8gZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgb2YgYSBwcmltYXJ5IHRpY2tldCB0byB0aGUgY3VzdG9tZXJzIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4gQnkgZGVmYXVsdCAoZGlzYWJsZWQpIGl0IHdpbGwgbm90IGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIHRvIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgY2hhbmdlIG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIHVuc2V0IG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byB1bnNldCB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgcHJpbWFyeSB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgLyBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnlTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeVNlY29uZGFyeSBtb2R1bGUgZm9yIFRpY2tldCBCdWxrIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ2lzdHJhdGlvbiBvZiB0aGUgdGlja2V0IGV2ZW50IG1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gdXNlIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2Vjb25kYXJ5IFRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyBpZiBQcmltYXJ5IC8gU2Vjb25kYXJ5IGZpZWxkIG11c3QgYmUgc2VsZWN0ZWQgYnkgdGhlIGFnZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSByZXNwb25zaWJsZSBhZ2VudCBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgc2VydmljZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlNlcnZpY2UgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlR5cGUgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gY2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXR1cyBvZiBhIHRpY2tldCBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIGludm9sdmVkIGFnZW50cyBvbiB0aGlzIHRpY2tldCwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpc3Qgb2YgYWxsIHRoZSBwb3NzaWJsZSBhZ2VudHMgKGFsbCBhZ2VudHMgd2l0aCBub3RlIHBlcm1pc3Npb25zIG9uIHRoZSBxdWV1ZS90aWNrZXQpIHRvIGRldGVybWluZSB3aG8gc2hvdWxkIGJlIGluZm9ybWVkIGFib3V0IHRoaXMgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGl0bGUgZmllbGQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBhcnRpY2xlIGNvbW11bmljYXRpb24gY2hhbm5lbHMgd2hlcmUgdGhlIHJlYWwgbmFtZSBmcm9tIFByaW1hcnkgdGlja2V0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgb25lIGluIHRoZSBTZWNvbmRhcnkgdGlja2V0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGFjdGl2YXRlcyBQcmltYXJ5L1NlY29uZGFyeSBmaWVsZCBpbiBuZXcgZW1haWwgYW5kIHBob25lIHRpY2tldCBzY3JlZW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnVydGhlciB2ZXJzaW9ucyBvZiBabnVueVByaW1hcnlTZWNvbmRhcnkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IFByaW1hcnlTZWNvbmRhcnkuJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/sr_Cyrl_ZnunyPrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c3JfQ3lybF9abnVueVByaW1hcnlTZWNvbmRhcnk7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIFByaW1hcnkvU2Vjb25kYXJ5IHN0YXR1cyBmb3IgJXMlcyVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBQcmltYXJ5IFRpY2tldCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbnNldCBQcmltYXJ5IFRpY2tldCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbnNldCBTZWNvbmRhcnkgVGlja2V0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlY29uZGFyeSBvZiAlcyVzJXM6ICVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGlja2V0QnVsay9QcmltYXJ5U2Vjb25kYXJ5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbnNldCBQcmltYXJ5IFRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgU2Vjb25kYXJ5IFRpY2tldHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9QcmltYXJ5U2Vjb25kYXJ5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmltYXJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlY29uZGFyeSBvZiAlcyVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgcHJpbWFyeSB0aWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBzZWNvbmRhcnkgdGlja2V0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvd3MgYWRkaW5nIG5vdGVzIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIG9mIHRoZSB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgZHluYW1pYyBmaWVsZCBuYW1lIGZvciBwcmltYXJ5IHRpY2tldCBmZWF0dXJlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGEgdGlja2V0IGxvY2sgaXMgcmVxdWlyZWQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZSAoaWYgdGhlIHRpY2tldCBpc25cJ3QgbG9ja2VkIHlldCwgdGhlIHRpY2tldCBnZXRzIGxvY2tlZCBhbmQgdGhlIGN1cnJlbnQgYWdlbnQgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSBhcyBpdHMgb3duZXIpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIFByaW1hcnlTZWNvbmRhcnkgbm90ZSBpcyB2aXNpYmxlIGZvciB0aGUgY3VzdG9tZXIgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHRpY2tldCBwcmlvcml0eSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGhpc3RvcnkgY29tbWVudCBmb3IgdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBhY3Rpb24sIHdoaWNoIGdldHMgdXNlZCBmb3IgdGlja2V0IGhpc3RvcnkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IHR5cGUgZm9yIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgbmV4dCBzdGF0ZSBvZiBhIHRpY2tldCBhZnRlciBhZGRpbmcgYSBub3RlLCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgcGFydCBvZiB0aGUgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0aGF0IHNlY29uZGFyeSB0aWNrZXRzIGZvbGxvdyB0aGUgcHJpbWFyeSB0aWNrZXQgdG8gYSBuZXcgcHJpbWFyeSBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8gY2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIG9mIGEgdGlja2V0IGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byBmb3J3YXJkIGFydGljbGVzIGZyb20gdHlwZSBcJ2ZvcndhcmRcJyBvZiBhIHByaW1hcnkgdGlja2V0IHRvIHRoZSBjdXN0b21lcnMgb2YgdGhlIHNlY29uZGFyeSB0aWNrZXRzLiBCeSBkZWZhdWx0IChkaXNhYmxlZCkgaXQgd2lsbCBub3QgZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgdG8gdGhlIHNlY29uZGFyeSB0aWNrZXRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8ga2VlcCBwYXJlbnQtY2hpbGQgbGluayBhZnRlciBjaGFuZ2Ugb2YgdGhlIFByaW1hcnlTZWNvbmRhcnkgc3RhdGUgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgdW5zZXQgb2YgdGhlIFByaW1hcnlTZWNvbmRhcnkgc3RhdGUgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIHVuc2V0IHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIG9mIGEgdGlja2V0IGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgYSBub3RlIGlzIGFkZGVkIGJ5IGFuIGFnZW50LCBzZXRzIHRoZSBzdGF0ZSBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBwcmltYXJ5IHRpY2tldHMgb3ZlcnZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4gIkxpbWl0IiBpcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgc2hvd24gYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IHRoZSBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGRldGVybWluZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhlIHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5LiAiQ2FjaGVUVExMb2NhbCIgaXMgdGhlIGNhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIHBsdWdpbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQgb2YgdGhlIHNlY29uZGFyeSB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSAvIFNlY29uZGFyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmltYXJ5IFNlY29uZGFyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmltYXJ5IFRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeVNlY29uZGFyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmltYXJ5U2Vjb25kYXJ5IG1vZHVsZSBmb3IgVGlja2V0IEJ1bGsgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVnaXN0cmF0aW9uIG9mIHRoZSB0aWNrZXQgZXZlbnQgbW9kdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwZXJtaXNzaW9ucyB0byB1c2UgdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgVGlja2V0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIGlmIFByaW1hcnkgLyBTZWNvbmRhcnkgZmllbGQgbXVzdCBiZSBzZWxlY3RlZCBieSB0aGUgYWdlbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgZGVmYXVsdCBib2R5IHRleHQgZm9yIG5vdGVzIGFkZGVkIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgZGVmYXVsdCBzdWJqZWN0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIHJlc3BvbnNpYmxlIGFnZW50IG9mIHRoZSB0aWNrZXQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBzZXJ2aWNlIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKFRpY2tldDo6U2VydmljZSBuZWVkcyB0byBiZSBhY3RpdmF0ZWQpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIHRpY2tldCBvd25lciBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIHRpY2tldCB0eXBlIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKFRpY2tldDo6VHlwZSBuZWVkcyB0byBiZSBhY3RpdmF0ZWQpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBjaGFuZ2UgdGhlIFByaW1hcnlTZWNvbmRhcnkgc3RhdHVzIG9mIGEgdGlja2V0IGluIHRoZSB0aWNrZXQgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaXN0IG9mIGFsbCB0aGUgaW52b2x2ZWQgYWdlbnRzIG9uIHRoaXMgdGlja2V0LCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIHBvc3NpYmxlIGFnZW50cyAoYWxsIGFnZW50cyB3aXRoIG5vdGUgcGVybWlzc2lvbnMgb24gdGhlIHF1ZXVlL3RpY2tldCkgdG8gZGV0ZXJtaW5lIHdobyBzaG91bGQgYmUgaW5mb3JtZWQgYWJvdXQgdGhpcyBub3RlLCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSB0aWNrZXQgcHJpb3JpdHkgb3B0aW9ucyBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSB0aXRsZSBmaWVsZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyB0aGUgZGlmZmVyZW50IGFydGljbGUgY29tbXVuaWNhdGlvbiBjaGFubmVscyB3aGVyZSB0aGUgcmVhbCBuYW1lIGZyb20gUHJpbWFyeSB0aWNrZXQgd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRoZSBvbmUgaW4gdGhlIFNlY29uZGFyeSB0aWNrZXQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgYWN0aXZhdGVzIFByaW1hcnkvU2Vjb25kYXJ5IGZpZWxkIGluIG5ldyBlbWFpbCBhbmQgcGhvbmUgdGlja2V0IHNjcmVlbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBmdXJ0aGVyIHZlcnNpb25zIG9mIFpudW55UHJpbWFyeVNlY29uZGFyeS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgUHJpbWFyeVNlY29uZGFyeS4nfSA9ICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vPSBbXSB9LCAoCiAgICApOwoKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Language/sr_Latn_ZnunyPrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c3JfTGF0bl9abnVueVByaW1hcnlTZWNvbmRhcnk7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRUIFRlbXBsYXRlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeS50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIFByaW1hcnkvU2Vjb25kYXJ5IHN0YXR1cyBmb3IgJXMlcyVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBQcmltYXJ5IFRpY2tldCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbnNldCBQcmltYXJ5IFRpY2tldCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbnNldCBTZWNvbmRhcnkgVGlja2V0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlY29uZGFyeSBvZiAlcyVzJXM6ICVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVGlja2V0QnVsay9QcmltYXJ5U2Vjb25kYXJ5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbnNldCBQcmltYXJ5IFRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgU2Vjb25kYXJ5IFRpY2tldHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9QcmltYXJ5U2Vjb25kYXJ5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmltYXJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlY29uZGFyeSBvZiAlcyVzJXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgcHJpbWFyeSB0aWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBzZWNvbmRhcnkgdGlja2V0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvd3MgYWRkaW5nIG5vdGVzIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIG9mIHRoZSB0aWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgZHluYW1pYyBmaWVsZCBuYW1lIGZvciBwcmltYXJ5IHRpY2tldCBmZWF0dXJlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGEgdGlja2V0IGxvY2sgaXMgcmVxdWlyZWQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZSAoaWYgdGhlIHRpY2tldCBpc25cJ3QgbG9ja2VkIHlldCwgdGhlIHRpY2tldCBnZXRzIGxvY2tlZCBhbmQgdGhlIGN1cnJlbnQgYWdlbnQgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSBhcyBpdHMgb3duZXIpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgdGhlIFByaW1hcnlTZWNvbmRhcnkgbm90ZSBpcyB2aXNpYmxlIGZvciB0aGUgY3VzdG9tZXIgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHRpY2tldCBwcmlvcml0eSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGhpc3RvcnkgY29tbWVudCBmb3IgdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBhY3Rpb24sIHdoaWNoIGdldHMgdXNlZCBmb3IgdGlja2V0IGhpc3RvcnkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IHR5cGUgZm9yIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgbmV4dCBzdGF0ZSBvZiBhIHRpY2tldCBhZnRlciBhZGRpbmcgYSBub3RlLCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgcGFydCBvZiB0aGUgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0aGF0IHNlY29uZGFyeSB0aWNrZXRzIGZvbGxvdyB0aGUgcHJpbWFyeSB0aWNrZXQgdG8gYSBuZXcgcHJpbWFyeSBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8gY2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIG9mIGEgdGlja2V0IGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byBmb3J3YXJkIGFydGljbGVzIGZyb20gdHlwZSBcJ2ZvcndhcmRcJyBvZiBhIHByaW1hcnkgdGlja2V0IHRvIHRoZSBjdXN0b21lcnMgb2YgdGhlIHNlY29uZGFyeSB0aWNrZXRzLiBCeSBkZWZhdWx0IChkaXNhYmxlZCkgaXQgd2lsbCBub3QgZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgdG8gdGhlIHNlY29uZGFyeSB0aWNrZXRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8ga2VlcCBwYXJlbnQtY2hpbGQgbGluayBhZnRlciBjaGFuZ2Ugb2YgdGhlIFByaW1hcnlTZWNvbmRhcnkgc3RhdGUgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgdW5zZXQgb2YgdGhlIFByaW1hcnlTZWNvbmRhcnkgc3RhdGUgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIHVuc2V0IHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIG9mIGEgdGlja2V0IGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgYSBub3RlIGlzIGFkZGVkIGJ5IGFuIGFnZW50LCBzZXRzIHRoZSBzdGF0ZSBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBwcmltYXJ5IHRpY2tldHMgb3ZlcnZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4gIkxpbWl0IiBpcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgc2hvd24gYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IHRoZSBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGRldGVybWluZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhlIHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5LiAiQ2FjaGVUVExMb2NhbCIgaXMgdGhlIGNhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIHBsdWdpbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQgb2YgdGhlIHNlY29uZGFyeSB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSAvIFNlY29uZGFyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmltYXJ5IFNlY29uZGFyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmltYXJ5IFRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeVNlY29uZGFyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmltYXJ5U2Vjb25kYXJ5IG1vZHVsZSBmb3IgVGlja2V0IEJ1bGsgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVnaXN0cmF0aW9uIG9mIHRoZSB0aWNrZXQgZXZlbnQgbW9kdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwZXJtaXNzaW9ucyB0byB1c2UgdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgVGlja2V0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIGlmIFByaW1hcnkgLyBTZWNvbmRhcnkgZmllbGQgbXVzdCBiZSBzZWxlY3RlZCBieSB0aGUgYWdlbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgZGVmYXVsdCBib2R5IHRleHQgZm9yIG5vdGVzIGFkZGVkIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgZGVmYXVsdCBzdWJqZWN0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIHJlc3BvbnNpYmxlIGFnZW50IG9mIHRoZSB0aWNrZXQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBzZXJ2aWNlIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKFRpY2tldDo6U2VydmljZSBuZWVkcyB0byBiZSBhY3RpdmF0ZWQpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIHRpY2tldCBvd25lciBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIHRpY2tldCB0eXBlIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKFRpY2tldDo6VHlwZSBuZWVkcyB0byBiZSBhY3RpdmF0ZWQpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBjaGFuZ2UgdGhlIFByaW1hcnlTZWNvbmRhcnkgc3RhdHVzIG9mIGEgdGlja2V0IGluIHRoZSB0aWNrZXQgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaXN0IG9mIGFsbCB0aGUgaW52b2x2ZWQgYWdlbnRzIG9uIHRoaXMgdGlja2V0LCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIHBvc3NpYmxlIGFnZW50cyAoYWxsIGFnZW50cyB3aXRoIG5vdGUgcGVybWlzc2lvbnMgb24gdGhlIHF1ZXVlL3RpY2tldCkgdG8gZGV0ZXJtaW5lIHdobyBzaG91bGQgYmUgaW5mb3JtZWQgYWJvdXQgdGhpcyBub3RlLCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSB0aWNrZXQgcHJpb3JpdHkgb3B0aW9ucyBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSB0aXRsZSBmaWVsZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyB0aGUgZGlmZmVyZW50IGFydGljbGUgY29tbXVuaWNhdGlvbiBjaGFubmVscyB3aGVyZSB0aGUgcmVhbCBuYW1lIGZyb20gUHJpbWFyeSB0aWNrZXQgd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRoZSBvbmUgaW4gdGhlIFNlY29uZGFyeSB0aWNrZXQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgYWN0aXZhdGVzIFByaW1hcnkvU2Vjb25kYXJ5IGZpZWxkIGluIG5ldyBlbWFpbCBhbmQgcGhvbmUgdGlja2V0IHNjcmVlbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBmdXJ0aGVyIHZlcnNpb25zIG9mIFpudW55UHJpbWFyeVNlY29uZGFyeS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgUHJpbWFyeVNlY29uZGFyeS4nfSA9ICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vPSBbXSB9LCAoCiAgICApOwoKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Language/sv_ZnunyPrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c3ZfWm51bnlQcmltYXJ5U2Vjb25kYXJ5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBQcmltYXJ5L1NlY29uZGFyeSBzdGF0dXMgZm9yICVzJXMlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgU2Vjb25kYXJ5IFRpY2tldCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1RpY2tldEJ1bGsvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IFNlY29uZGFyeSBUaWNrZXRzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgVGlja2V0J30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHByaW1hcnkgdGlja2V0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgc2Vjb25kYXJ5IHRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3dzIGFkZGluZyBub3RlcyBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiB0aGUgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGR5bmFtaWMgZmllbGQgbmFtZSBmb3IgcHJpbWFyeSB0aWNrZXQgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBhIHRpY2tldCBsb2NrIGlzIHJlcXVpcmVkIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKGlmIHRoZSB0aWNrZXQgaXNuXCd0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IG5vdGUgaXMgdmlzaWJsZSBmb3IgdGhlIGN1c3RvbWVyIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB0aWNrZXQgcHJpb3JpdHkgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGlzdG9yeSB0eXBlIGZvciB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IHBhcnQgb2YgdGhlIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdGhhdCBzZWNvbmRhcnkgdGlja2V0cyBmb2xsb3cgdGhlIHByaW1hcnkgdGlja2V0IHRvIGEgbmV3IHByaW1hcnkgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGNoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8gZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgb2YgYSBwcmltYXJ5IHRpY2tldCB0byB0aGUgY3VzdG9tZXJzIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4gQnkgZGVmYXVsdCAoZGlzYWJsZWQpIGl0IHdpbGwgbm90IGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIHRvIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgY2hhbmdlIG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIHVuc2V0IG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byB1bnNldCB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgcHJpbWFyeSB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgLyBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnlTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeVNlY29uZGFyeSBtb2R1bGUgZm9yIFRpY2tldCBCdWxrIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ2lzdHJhdGlvbiBvZiB0aGUgdGlja2V0IGV2ZW50IG1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gdXNlIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2Vjb25kYXJ5IFRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyBpZiBQcmltYXJ5IC8gU2Vjb25kYXJ5IGZpZWxkIG11c3QgYmUgc2VsZWN0ZWQgYnkgdGhlIGFnZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSByZXNwb25zaWJsZSBhZ2VudCBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgc2VydmljZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlNlcnZpY2UgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlR5cGUgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gY2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXR1cyBvZiBhIHRpY2tldCBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIGludm9sdmVkIGFnZW50cyBvbiB0aGlzIHRpY2tldCwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpc3Qgb2YgYWxsIHRoZSBwb3NzaWJsZSBhZ2VudHMgKGFsbCBhZ2VudHMgd2l0aCBub3RlIHBlcm1pc3Npb25zIG9uIHRoZSBxdWV1ZS90aWNrZXQpIHRvIGRldGVybWluZSB3aG8gc2hvdWxkIGJlIGluZm9ybWVkIGFib3V0IHRoaXMgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGl0bGUgZmllbGQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBhcnRpY2xlIGNvbW11bmljYXRpb24gY2hhbm5lbHMgd2hlcmUgdGhlIHJlYWwgbmFtZSBmcm9tIFByaW1hcnkgdGlja2V0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgb25lIGluIHRoZSBTZWNvbmRhcnkgdGlja2V0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGFjdGl2YXRlcyBQcmltYXJ5L1NlY29uZGFyeSBmaWVsZCBpbiBuZXcgZW1haWwgYW5kIHBob25lIHRpY2tldCBzY3JlZW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnVydGhlciB2ZXJzaW9ucyBvZiBabnVueVByaW1hcnlTZWNvbmRhcnkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IFByaW1hcnlTZWNvbmRhcnkuJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/sw_ZnunyPrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c3dfWm51bnlQcmltYXJ5U2Vjb25kYXJ5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBQcmltYXJ5L1NlY29uZGFyeSBzdGF0dXMgZm9yICVzJXMlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgU2Vjb25kYXJ5IFRpY2tldCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1RpY2tldEJ1bGsvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IFNlY29uZGFyeSBUaWNrZXRzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgVGlja2V0J30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHByaW1hcnkgdGlja2V0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgc2Vjb25kYXJ5IHRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3dzIGFkZGluZyBub3RlcyBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiB0aGUgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGR5bmFtaWMgZmllbGQgbmFtZSBmb3IgcHJpbWFyeSB0aWNrZXQgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBhIHRpY2tldCBsb2NrIGlzIHJlcXVpcmVkIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKGlmIHRoZSB0aWNrZXQgaXNuXCd0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IG5vdGUgaXMgdmlzaWJsZSBmb3IgdGhlIGN1c3RvbWVyIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB0aWNrZXQgcHJpb3JpdHkgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGlzdG9yeSB0eXBlIGZvciB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IHBhcnQgb2YgdGhlIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdGhhdCBzZWNvbmRhcnkgdGlja2V0cyBmb2xsb3cgdGhlIHByaW1hcnkgdGlja2V0IHRvIGEgbmV3IHByaW1hcnkgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGNoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8gZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgb2YgYSBwcmltYXJ5IHRpY2tldCB0byB0aGUgY3VzdG9tZXJzIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4gQnkgZGVmYXVsdCAoZGlzYWJsZWQpIGl0IHdpbGwgbm90IGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIHRvIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgY2hhbmdlIG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIHVuc2V0IG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byB1bnNldCB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgcHJpbWFyeSB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgLyBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnlTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeVNlY29uZGFyeSBtb2R1bGUgZm9yIFRpY2tldCBCdWxrIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ2lzdHJhdGlvbiBvZiB0aGUgdGlja2V0IGV2ZW50IG1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gdXNlIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2Vjb25kYXJ5IFRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyBpZiBQcmltYXJ5IC8gU2Vjb25kYXJ5IGZpZWxkIG11c3QgYmUgc2VsZWN0ZWQgYnkgdGhlIGFnZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSByZXNwb25zaWJsZSBhZ2VudCBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgc2VydmljZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlNlcnZpY2UgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlR5cGUgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gY2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXR1cyBvZiBhIHRpY2tldCBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIGludm9sdmVkIGFnZW50cyBvbiB0aGlzIHRpY2tldCwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpc3Qgb2YgYWxsIHRoZSBwb3NzaWJsZSBhZ2VudHMgKGFsbCBhZ2VudHMgd2l0aCBub3RlIHBlcm1pc3Npb25zIG9uIHRoZSBxdWV1ZS90aWNrZXQpIHRvIGRldGVybWluZSB3aG8gc2hvdWxkIGJlIGluZm9ybWVkIGFib3V0IHRoaXMgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGl0bGUgZmllbGQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBhcnRpY2xlIGNvbW11bmljYXRpb24gY2hhbm5lbHMgd2hlcmUgdGhlIHJlYWwgbmFtZSBmcm9tIFByaW1hcnkgdGlja2V0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgb25lIGluIHRoZSBTZWNvbmRhcnkgdGlja2V0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGFjdGl2YXRlcyBQcmltYXJ5L1NlY29uZGFyeSBmaWVsZCBpbiBuZXcgZW1haWwgYW5kIHBob25lIHRpY2tldCBzY3JlZW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnVydGhlciB2ZXJzaW9ucyBvZiBabnVueVByaW1hcnlTZWNvbmRhcnkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IFByaW1hcnlTZWNvbmRhcnkuJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/th_TH_ZnunyPrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6dGhfVEhfWm51bnlQcmltYXJ5U2Vjb25kYXJ5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBQcmltYXJ5L1NlY29uZGFyeSBzdGF0dXMgZm9yICVzJXMlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgU2Vjb25kYXJ5IFRpY2tldCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1RpY2tldEJ1bGsvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IFNlY29uZGFyeSBUaWNrZXRzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgVGlja2V0J30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHByaW1hcnkgdGlja2V0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgc2Vjb25kYXJ5IHRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3dzIGFkZGluZyBub3RlcyBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiB0aGUgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGR5bmFtaWMgZmllbGQgbmFtZSBmb3IgcHJpbWFyeSB0aWNrZXQgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBhIHRpY2tldCBsb2NrIGlzIHJlcXVpcmVkIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKGlmIHRoZSB0aWNrZXQgaXNuXCd0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IG5vdGUgaXMgdmlzaWJsZSBmb3IgdGhlIGN1c3RvbWVyIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB0aWNrZXQgcHJpb3JpdHkgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGlzdG9yeSB0eXBlIGZvciB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IHBhcnQgb2YgdGhlIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdGhhdCBzZWNvbmRhcnkgdGlja2V0cyBmb2xsb3cgdGhlIHByaW1hcnkgdGlja2V0IHRvIGEgbmV3IHByaW1hcnkgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGNoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8gZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgb2YgYSBwcmltYXJ5IHRpY2tldCB0byB0aGUgY3VzdG9tZXJzIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4gQnkgZGVmYXVsdCAoZGlzYWJsZWQpIGl0IHdpbGwgbm90IGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIHRvIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgY2hhbmdlIG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIHVuc2V0IG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byB1bnNldCB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgcHJpbWFyeSB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgLyBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnlTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeVNlY29uZGFyeSBtb2R1bGUgZm9yIFRpY2tldCBCdWxrIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ2lzdHJhdGlvbiBvZiB0aGUgdGlja2V0IGV2ZW50IG1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gdXNlIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2Vjb25kYXJ5IFRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyBpZiBQcmltYXJ5IC8gU2Vjb25kYXJ5IGZpZWxkIG11c3QgYmUgc2VsZWN0ZWQgYnkgdGhlIGFnZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSByZXNwb25zaWJsZSBhZ2VudCBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgc2VydmljZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlNlcnZpY2UgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlR5cGUgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gY2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXR1cyBvZiBhIHRpY2tldCBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIGludm9sdmVkIGFnZW50cyBvbiB0aGlzIHRpY2tldCwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpc3Qgb2YgYWxsIHRoZSBwb3NzaWJsZSBhZ2VudHMgKGFsbCBhZ2VudHMgd2l0aCBub3RlIHBlcm1pc3Npb25zIG9uIHRoZSBxdWV1ZS90aWNrZXQpIHRvIGRldGVybWluZSB3aG8gc2hvdWxkIGJlIGluZm9ybWVkIGFib3V0IHRoaXMgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGl0bGUgZmllbGQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBhcnRpY2xlIGNvbW11bmljYXRpb24gY2hhbm5lbHMgd2hlcmUgdGhlIHJlYWwgbmFtZSBmcm9tIFByaW1hcnkgdGlja2V0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgb25lIGluIHRoZSBTZWNvbmRhcnkgdGlja2V0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGFjdGl2YXRlcyBQcmltYXJ5L1NlY29uZGFyeSBmaWVsZCBpbiBuZXcgZW1haWwgYW5kIHBob25lIHRpY2tldCBzY3JlZW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnVydGhlciB2ZXJzaW9ucyBvZiBabnVueVByaW1hcnlTZWNvbmRhcnkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IFByaW1hcnlTZWNvbmRhcnkuJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Language/zh_CN_ZnunyPrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAyMSBabnVueSBHbWJILCBodHRwczovL3pudW55Lm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6emhfQ05fWm51bnlQcmltYXJ5U2Vjb25kYXJ5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUVCBUZW1wbGF0ZTogS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBQcmltYXJ5L1NlY29uZGFyeSBzdGF0dXMgZm9yICVzJXMlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgU2Vjb25kYXJ5IFRpY2tldCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzOiAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1RpY2tldEJ1bGsvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IFNlY29uZGFyeSBUaWNrZXRzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvUHJpbWFyeVNlY29uZGFyeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWNvbmRhcnkgb2YgJXMlcyVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgVGlja2V0J30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHByaW1hcnkgdGlja2V0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgc2Vjb25kYXJ5IHRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3dzIGFkZGluZyBub3RlcyBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiB0aGUgdGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGR5bmFtaWMgZmllbGQgbmFtZSBmb3IgcHJpbWFyeSB0aWNrZXQgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBhIHRpY2tldCBsb2NrIGlzIHJlcXVpcmVkIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKGlmIHRoZSB0aWNrZXQgaXNuXCd0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IG5vdGUgaXMgdmlzaWJsZSBmb3IgdGhlIGN1c3RvbWVyIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB0aWNrZXQgcHJpb3JpdHkgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGlzdG9yeSB0eXBlIGZvciB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IHBhcnQgb2YgdGhlIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdGhhdCBzZWNvbmRhcnkgdGlja2V0cyBmb2xsb3cgdGhlIHByaW1hcnkgdGlja2V0IHRvIGEgbmV3IHByaW1hcnkgaW4gdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkgbW9kZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGNoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZXMgdGhlIGZlYXR1cmUgdG8gZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgb2YgYSBwcmltYXJ5IHRpY2tldCB0byB0aGUgY3VzdG9tZXJzIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4gQnkgZGVmYXVsdCAoZGlzYWJsZWQpIGl0IHdpbGwgbm90IGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIHRvIHRoZSBzZWNvbmRhcnkgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGVzIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgY2hhbmdlIG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIHVuc2V0IG9mIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIGluIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5IG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlcyB0aGUgZmVhdHVyZSB0byB1bnNldCB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgUHJpbWFyeVNlY29uZGFyeSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgcHJpbWFyeSB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBzZWNvbmRhcnkgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnkgLyBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeSBUaWNrZXRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW1hcnlTZWNvbmRhcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbWFyeVNlY29uZGFyeSBtb2R1bGUgZm9yIFRpY2tldCBCdWxrIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ2lzdHJhdGlvbiBvZiB0aGUgdGlja2V0IGV2ZW50IG1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gdXNlIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2Vjb25kYXJ5IFRpY2tldHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyBpZiBQcmltYXJ5IC8gU2Vjb25kYXJ5IGZpZWxkIG11c3QgYmUgc2VsZWN0ZWQgYnkgdGhlIGFnZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSByZXNwb25zaWJsZSBhZ2VudCBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgUHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgc2VydmljZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlNlcnZpY2UgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgdGlja2V0IFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlR5cGUgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gY2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXR1cyBvZiBhIHRpY2tldCBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIGludm9sdmVkIGFnZW50cyBvbiB0aGlzIHRpY2tldCwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpc3Qgb2YgYWxsIHRoZSBwb3NzaWJsZSBhZ2VudHMgKGFsbCBhZ2VudHMgd2l0aCBub3RlIHBlcm1pc3Npb25zIG9uIHRoZSBxdWV1ZS90aWNrZXQpIHRvIGRldGVybWluZSB3aG8gc2hvdWxkIGJlIGluZm9ybWVkIGFib3V0IHRoaXMgbm90ZSwgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGl0bGUgZmllbGQgaW4gdGhlIHRpY2tldCBQcmltYXJ5U2Vjb25kYXJ5IHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBhcnRpY2xlIGNvbW11bmljYXRpb24gY2hhbm5lbHMgd2hlcmUgdGhlIHJlYWwgbmFtZSBmcm9tIFByaW1hcnkgdGlja2V0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgb25lIGluIHRoZSBTZWNvbmRhcnkgdGlja2V0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGFjdGl2YXRlcyBQcmltYXJ5L1NlY29uZGFyeSBmaWVsZCBpbiBuZXcgZW1haWwgYW5kIHBob25lIHRpY2tldCBzY3JlZW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnVydGhlciB2ZXJzaW9ucyBvZiBabnVueVByaW1hcnlTZWNvbmRhcnkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IFByaW1hcnlTZWNvbmRhcnkuJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLz0gW10gfSwgKAogICAgKTsKCn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Modules/AdminDynamicFieldPrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFkbWluRHluYW1pY0ZpZWxkUHJpbWFyeVNlY29uZGFyeTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CnVzZSBLZXJuZWw6Okxhbmd1YWdlICAgICAgICAgICAgICBxdyhUcmFuc2xhdGFibGUpOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkJyApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPl9BZGQoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICApOwogICAgfQogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZEFjdGlvbicgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIHJldHVybiAkU2VsZi0+X0FkZEFjdGlvbigKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICk7CiAgICB9CiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQ2hhbmdlJyApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPl9DaGFuZ2UoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICApOwogICAgfQogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0NoYW5nZUFjdGlvbicgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIHJldHVybiAkU2VsZi0+X0NoYW5nZUFjdGlvbigKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICk7CiAgICB9CiAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1VuZGVmaW5lZCBzdWJhY3Rpb24uJyksCiAgICApOwp9CgpzdWIgX0FkZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkUGFyYW1PYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgIG15ICVHZXRQYXJhbTsKCiAgICBORUVERUQ6CiAgICBmb3IgbXkgJE5lZWRlZCAocXcoT2JqZWN0VHlwZSBGaWVsZFR5cGUgRmllbGRPcmRlcikpIHsKICAgICAgICAkR2V0UGFyYW17JE5lZWRlZH0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkTmVlZGVkICk7CiAgICAgICAgbmV4dCBORUVERUQgaWYgZGVmaW5lZCAkR2V0UGFyYW17JE5lZWRlZH07CgogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdOZWVkICVzJywgJE5lZWRlZCApLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgdGhlIG9iamVjdCB0eXBlIGFuZCBmaWVsZCB0eXBlIGRpc3BsYXkgbmFtZQogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJE9iamVjdFR5cGVOYW1lCiAgICAgICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0R5bmFtaWNGaWVsZHM6Ok9iamVjdFR5cGUnKS0+eyAkR2V0UGFyYW17T2JqZWN0VHlwZX0gfS0+e0Rpc3BsYXlOYW1lfSB8fCAnJzsKICAgIG15ICRGaWVsZFR5cGVOYW1lID0gJENvbmZpZ09iamVjdC0+R2V0KCdEeW5hbWljRmllbGRzOjpEcml2ZXInKS0+eyAkR2V0UGFyYW17RmllbGRUeXBlfSB9LT57RGlzcGxheU5hbWV9IHx8ICcnOwoKICAgIHJldHVybiAkU2VsZi0+X1Nob3dTY3JlZW4oCiAgICAgICAgJVBhcmFtLAogICAgICAgICVHZXRQYXJhbSwKICAgICAgICBNb2RlICAgICAgICAgICA9PiAnQWRkJywKICAgICAgICBCcmVhZGNydW1iVGV4dCA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9CiAgICAgICAgICAgIC0+VHJhbnNsYXRlKCAnQWRkICVzIGZpZWxkJywgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRGaWVsZFR5cGVOYW1lKSApLAogICAgICAgIE9iamVjdFR5cGVOYW1lID0+ICRPYmplY3RUeXBlTmFtZSwKICAgICAgICBGaWVsZFR5cGVOYW1lICA9PiAkRmllbGRUeXBlTmFtZSwKICAgICk7Cn0KCnN1YiBfQWRkQWN0aW9uIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CiAgICBteSAlRXJyb3JzOwogICAgbXkgJUdldFBhcmFtOwoKICAgIG15ICRQYXJhbU9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgIE5FRURFRDoKICAgIGZvciBteSAkTmVlZGVkIChxdyhOYW1lIExhYmVsIEZpZWxkT3JkZXIpKSB7CiAgICAgICAgJEdldFBhcmFteyROZWVkZWR9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJE5lZWRlZCApOwogICAgICAgIG5leHQgTkVFREVEIGlmIGRlZmluZWQgJEdldFBhcmFteyROZWVkZWR9OwoKICAgICAgICAkRXJyb3JzeyAkTmVlZGVkIC4gJ1NlcnZlckVycm9yJyB9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgJEVycm9yc3sgJE5lZWRlZCAuICdTZXJ2ZXJFcnJvck1lc3NhZ2UnIH0gPSBUcmFuc2xhdGFibGUoJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQuJyk7CiAgICB9CgogICAgbXkgJER5bmFtaWNGaWVsZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKTsKCiAgICBpZiAoICRHZXRQYXJhbXtOYW1lfSApIHsKCiAgICAgICAgIyBjaGVjayBpZiBuYW1lIGlzIGFscGhhbnVtZXJpYwogICAgICAgIGlmICggJEdldFBhcmFte05hbWV9ICF+IG17XEEgKD86IFthLXpBLVpdIHwgXGQgKSsgXHp9eG1zICkgewoKICAgICAgICAgICAgIyBhZGQgc2VydmVyIGVycm9yIGVycm9yIGNsYXNzCiAgICAgICAgICAgICRFcnJvcnN7TmFtZVNlcnZlckVycm9yfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7TmFtZVNlcnZlckVycm9yTWVzc2FnZX0gPQogICAgICAgICAgICAgICAgVHJhbnNsYXRhYmxlKCdUaGUgZmllbGQgZG9lcyBub3QgY29udGFpbiBvbmx5IEFTQ0lJIGxldHRlcnMgYW5kIG51bWJlcnMuJyk7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGlmIG5hbWUgaXMgZHVwbGljYXRlZAogICAgICAgIG15ICVEeW5hbWljRmllbGRzTGlzdCA9ICV7CiAgICAgICAgICAgICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZExpc3QoCiAgICAgICAgICAgICAgICBWYWxpZCAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBSZXN1bHRUeXBlID0+ICdIQVNIJywKICAgICAgICAgICAgKQogICAgICAgIH07CgogICAgICAgICVEeW5hbWljRmllbGRzTGlzdCA9IHJldmVyc2UgJUR5bmFtaWNGaWVsZHNMaXN0OwoKICAgICAgICBpZiAoICREeW5hbWljRmllbGRzTGlzdHsgJEdldFBhcmFte05hbWV9IH0gKSB7CgogICAgICAgICAgICAjIGFkZCBzZXJ2ZXIgZXJyb3IgZXJyb3IgY2xhc3MKICAgICAgICAgICAgJEVycm9yc3tOYW1lU2VydmVyRXJyb3J9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7TmFtZVNlcnZlckVycm9yTWVzc2FnZX0gPSBUcmFuc2xhdGFibGUoJ1RoZXJlIGlzIGFub3RoZXIgZmllbGQgd2l0aCB0aGUgc2FtZSBuYW1lLicpOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICRHZXRQYXJhbXtGaWVsZE9yZGVyfSApIHsKCiAgICAgICAgIyBjaGVjayBpZiBmaWVsZCBvcmRlciBpcyBudW1lcmljIGFuZCBwb3NpdGl2ZQogICAgICAgIGlmICggJEdldFBhcmFte0ZpZWxkT3JkZXJ9ICF+IG17XEEgKD86IFxkICkrIFx6fXhtcyApIHsKCiAgICAgICAgICAgICMgYWRkIHNlcnZlciBlcnJvciBlcnJvciBjbGFzcwogICAgICAgICAgICAkRXJyb3Jze0ZpZWxkT3JkZXJTZXJ2ZXJFcnJvcn0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3tGaWVsZE9yZGVyU2VydmVyRXJyb3JNZXNzYWdlfSA9IFRyYW5zbGF0YWJsZSgnVGhlIGZpZWxkIG11c3QgYmUgbnVtZXJpYy4nKTsKICAgICAgICB9CiAgICB9CgogICAgZm9yIG15ICRDb25maWdQYXJhbSAocXcoIE9iamVjdFR5cGUgT2JqZWN0VHlwZU5hbWUgRmllbGRUeXBlIEZpZWxkVHlwZU5hbWUgVmFsaWRJRCApKSB7CiAgICAgICAgJEdldFBhcmFteyRDb25maWdQYXJhbX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkQ29uZmlnUGFyYW0gKTsKICAgIH0KCiAgICAjIHVuY29ycmVjdGFibGUgZXJyb3JzCiAgICBpZiAoICEkR2V0UGFyYW17VmFsaWRJRH0gKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTmVlZCBWYWxpZElEJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHJldHVybiB0byBhZGQgc2NyZWVuIGlmIGVycm9ycwogICAgaWYgKCVFcnJvcnMpIHsKICAgICAgICByZXR1cm4gJFNlbGYtPl9TaG93U2NyZWVuKAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICVFcnJvcnMsCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgTW9kZSA9PiAnQWRkJywKICAgICAgICApOwogICAgfQoKICAgICMgc2V0IHNwZWNpZmljIGNvbmZpZwogICAgbXkgJEZpZWxkQ29uZmlnID0gewogICAgICAgIERlZmF1bHRWYWx1ZSAgICAgICA9PiAnJywKICAgICAgICBQb3NzaWJsZU5vbmUgICAgICAgPT4gMSwKICAgICAgICBUcmFuc2xhdGFibGVWYWx1ZXMgPT4gMSwKICAgIH07CgogICAgIyBjcmVhdGUgYSBuZXcgZmllbGQKICAgIG15ICRGaWVsZElEID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkQWRkKAogICAgICAgIE5hbWUgICAgICAgPT4gJEdldFBhcmFte05hbWV9LAogICAgICAgIExhYmVsICAgICAgPT4gJEdldFBhcmFte0xhYmVsfSwKICAgICAgICBGaWVsZE9yZGVyID0+ICRHZXRQYXJhbXtGaWVsZE9yZGVyfSwKICAgICAgICBGaWVsZFR5cGUgID0+ICRHZXRQYXJhbXtGaWVsZFR5cGV9LAogICAgICAgIE9iamVjdFR5cGUgPT4gJEdldFBhcmFte09iamVjdFR5cGV9LAogICAgICAgIENvbmZpZyAgICAgPT4gJEZpZWxkQ29uZmlnLAogICAgICAgIFZhbGlkSUQgICAgPT4gJEdldFBhcmFte1ZhbGlkSUR9LAogICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICBpZiAoICEkRmllbGRJRCApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdDb3VsZCBub3QgY3JlYXRlIHRoZSBuZXcgZmllbGQnKSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICBPUCA9PiAiQWN0aW9uPUFkbWluRHluYW1pY0ZpZWxkIiwKICAgICk7Cn0KCnN1YiBfQ2hhbmdlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFBhcmFtT2JqZWN0ICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRMYXlvdXRPYmplY3QgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkRHluYW1pY0ZpZWxkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpOwoKICAgIG15ICVHZXRQYXJhbTsKCiAgICBORUVERUQ6CiAgICBmb3IgbXkgJE5lZWRlZCAocXcoT2JqZWN0VHlwZSBGaWVsZFR5cGUpKSB7CiAgICAgICAgJEdldFBhcmFteyROZWVkZWR9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJE5lZWRlZCApOwogICAgICAgIG5leHQgTkVFREVEIGlmIGRlZmluZWQgJEdldFBhcmFteyROZWVkZWR9OwoKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnTmVlZCAlcycsICROZWVkZWQgKSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHRoZSBvYmplY3QgdHlwZSBhbmQgZmllbGQgdHlwZSBkaXNwbGF5IG5hbWUKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgIG15ICRPYmplY3RUeXBlTmFtZQogICAgICAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdEeW5hbWljRmllbGRzOjpPYmplY3RUeXBlJyktPnsgJEdldFBhcmFte09iamVjdFR5cGV9IH0tPntEaXNwbGF5TmFtZX0gfHwgJyc7CiAgICBteSAkRmllbGRUeXBlTmFtZSA9ICRDb25maWdPYmplY3QtPkdldCgnRHluYW1pY0ZpZWxkczo6RHJpdmVyJyktPnsgJEdldFBhcmFte0ZpZWxkVHlwZX0gfS0+e0Rpc3BsYXlOYW1lfSB8fCAnJzsKCiAgICBteSAkRmllbGRJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdJRCcgKTsKCiAgICBpZiAoICEkRmllbGRJRCApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdOZWVkIElEJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIGRhdGEKICAgIG15ICREeW5hbWljRmllbGREYXRhID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkR2V0KAogICAgICAgIElEID0+ICRGaWVsZElELAogICAgKTsKCiAgICAjIGNoZWNrIGZvciB2YWxpZCBkeW5hbWljIGZpZWxkIGNvbmZpZ3VyYXRpb24KICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGREYXRhKSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ0NvdWxkIG5vdCBnZXQgZGF0YSBmb3IgZHluYW1pYyBmaWVsZCAlcycsICRGaWVsZElEICksCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gJFNlbGYtPl9TaG93U2NyZWVuKAogICAgICAgICVQYXJhbSwKICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgJSR7RHluYW1pY0ZpZWxkRGF0YX0sCiAgICAgICAgSUQgICAgICAgICAgICAgPT4gJEZpZWxkSUQsCiAgICAgICAgTW9kZSAgICAgICAgICAgPT4gJ0NoYW5nZScsCiAgICAgICAgQnJlYWRjcnVtYlRleHQgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fQogICAgICAgICAgICAtPlRyYW5zbGF0ZSggJ0NoYW5nZSAlcyBmaWVsZCcsICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgkRmllbGRUeXBlTmFtZSkgKSwKICAgICAgICBPYmplY3RUeXBlTmFtZSA9PiAkT2JqZWN0VHlwZU5hbWUsCiAgICAgICAgRmllbGRUeXBlTmFtZSAgPT4gJEZpZWxkVHlwZU5hbWUsCiAgICApOwp9CgpzdWIgX0NoYW5nZUFjdGlvbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwogICAgbXkgJUVycm9yczsKICAgIG15ICVHZXRQYXJhbTsKCiAgICBteSAkUGFyYW1PYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICBORUVERUQ6CiAgICBmb3IgbXkgJE5lZWRlZCAocXcoTmFtZSBMYWJlbCBGaWVsZE9yZGVyKSkgewogICAgICAgICRHZXRQYXJhbXskTmVlZGVkfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICROZWVkZWQgKTsKICAgICAgICBuZXh0IE5FRURFRCBpZiBkZWZpbmVkICRHZXRQYXJhbXskTmVlZGVkfTsKCiAgICAgICAgJEVycm9yc3sgJE5lZWRlZCAuICdTZXJ2ZXJFcnJvcicgfSAgICAgICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICRFcnJvcnN7ICROZWVkZWQgLiAnU2VydmVyRXJyb3JNZXNzYWdlJyB9ID0gVHJhbnNsYXRhYmxlKCdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLicpOwogICAgfQoKICAgIG15ICRGaWVsZElEID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0lEJyApOwogICAgaWYgKCAhJEZpZWxkSUQgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTmVlZCBJRCcpLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJER5bmFtaWNGaWVsZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKTsKCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIGRhdGEKICAgIG15ICREeW5hbWljRmllbGREYXRhID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkR2V0KAogICAgICAgIElEID0+ICRGaWVsZElELAogICAgKTsKCiAgICAjIGNoZWNrIGZvciB2YWxpZCBkeW5hbWljIGZpZWxkIGNvbmZpZ3VyYXRpb24KICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGREYXRhKSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ0NvdWxkIG5vdCBnZXQgZGF0YSBmb3IgZHluYW1pYyBmaWVsZCAlcycsICRGaWVsZElEICksCiAgICAgICAgKTsKICAgIH0KCiAgICBpZiAoICRHZXRQYXJhbXtOYW1lfSApIHsKCiAgICAgICAgIyBjaGVjayBpZiBuYW1lIGlzIGxvd2VyY2FzZQogICAgICAgIGlmICggJEdldFBhcmFte05hbWV9ICF+IG17XEEgKD86IFthLXpBLVpdIHwgXGQgKSsgXHp9eG1zICkgewoKICAgICAgICAgICAgIyBhZGQgc2VydmVyIGVycm9yIGVycm9yIGNsYXNzCiAgICAgICAgICAgICRFcnJvcnN7TmFtZVNlcnZlckVycm9yfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7TmFtZVNlcnZlckVycm9yTWVzc2FnZX0gPQogICAgICAgICAgICAgICAgVHJhbnNsYXRhYmxlKCdUaGUgZmllbGQgZG9lcyBub3QgY29udGFpbiBvbmx5IEFTQ0lJIGxldHRlcnMgYW5kIG51bWJlcnMuJyk7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGlmIG5hbWUgaXMgZHVwbGljYXRlZAogICAgICAgIG15ICVEeW5hbWljRmllbGRzTGlzdCA9ICV7CiAgICAgICAgICAgICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZExpc3QoCiAgICAgICAgICAgICAgICBWYWxpZCAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBSZXN1bHRUeXBlID0+ICdIQVNIJywKICAgICAgICAgICAgKQogICAgICAgIH07CgogICAgICAgICVEeW5hbWljRmllbGRzTGlzdCA9IHJldmVyc2UgJUR5bmFtaWNGaWVsZHNMaXN0OwoKICAgICAgICBpZiAoCiAgICAgICAgICAgICREeW5hbWljRmllbGRzTGlzdHsgJEdldFBhcmFte05hbWV9IH0gJiYKICAgICAgICAgICAgJER5bmFtaWNGaWVsZHNMaXN0eyAkR2V0UGFyYW17TmFtZX0gfSBuZSAkRmllbGRJRAogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgIyBhZGQgc2VydmVyIGVycm9yIGNsYXNzCiAgICAgICAgICAgICRFcnJvcnN7TmFtZVNlcnZlckVycm9yfSAgICAgICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3Jze05hbWVTZXJ2ZXJFcnJvck1lc3NhZ2V9ID0gVHJhbnNsYXRhYmxlKCdUaGVyZSBpcyBhbm90aGVyIGZpZWxkIHdpdGggdGhlIHNhbWUgbmFtZS4nKTsKICAgICAgICB9CgogICAgICAgICMgaWYgaXQncyBhbiBpbnRlcm5hbCBmaWVsZCwgaXQncyBuYW1lIHNob3VsZCBub3QgY2hhbmdlCiAgICAgICAgaWYgKAogICAgICAgICAgICAkRHluYW1pY0ZpZWxkRGF0YS0+e0ludGVybmFsRmllbGR9ICYmCiAgICAgICAgICAgICREeW5hbWljRmllbGRzTGlzdHsgJEdldFBhcmFte05hbWV9IH0gbmUgJEZpZWxkSUQKICAgICAgICAgICAgKQogICAgICAgIHsKCiAgICAgICAgICAgICMgYWRkIHNlcnZlciBlcnJvciBjbGFzcwogICAgICAgICAgICAkRXJyb3Jze05hbWVTZXJ2ZXJFcnJvcn0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3tOYW1lU2VydmVyRXJyb3JNZXNzYWdlfSA9IFRyYW5zbGF0YWJsZSgnVGhlIG5hbWUgZm9yIHRoaXMgZmllbGQgc2hvdWxkIG5vdCBjaGFuZ2UuJyk7CiAgICAgICAgICAgICRQYXJhbXtJbnRlcm5hbEZpZWxkfSAgICAgICAgICAgPSAkRHluYW1pY0ZpZWxkRGF0YS0+e0ludGVybmFsRmllbGR9OwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICRHZXRQYXJhbXtGaWVsZE9yZGVyfSApIHsKCiAgICAgICAgIyBjaGVjayBpZiBmaWVsZCBvcmRlciBpcyBudW1lcmljIGFuZCBwb3NpdGl2ZQogICAgICAgIGlmICggJEdldFBhcmFte0ZpZWxkT3JkZXJ9ICF+IG17XEEgKD86IFxkICkrIFx6fXhtcyApIHsKCiAgICAgICAgICAgICMgYWRkIHNlcnZlciBlcnJvciBlcnJvciBjbGFzcwogICAgICAgICAgICAkRXJyb3Jze0ZpZWxkT3JkZXJTZXJ2ZXJFcnJvcn0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3tGaWVsZE9yZGVyU2VydmVyRXJyb3JNZXNzYWdlfSA9IFRyYW5zbGF0YWJsZSgnVGhlIGZpZWxkIG11c3QgYmUgbnVtZXJpYy4nKTsKICAgICAgICB9CiAgICB9CgogICAgZm9yIG15ICRDb25maWdQYXJhbSAocXcoIE9iamVjdFR5cGUgT2JqZWN0VHlwZU5hbWUgRmllbGRUeXBlIEZpZWxkVHlwZU5hbWUgVmFsaWRJRCApKSB7CiAgICAgICAgJEdldFBhcmFteyRDb25maWdQYXJhbX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkQ29uZmlnUGFyYW0gKTsKICAgIH0KCiAgICAjIHVuY29ycmVjdGFibGUgZXJyb3JzCiAgICBpZiAoICEkR2V0UGFyYW17VmFsaWRJRH0gKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTmVlZCBWYWxpZElEJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHJldHVybiB0byBjaGFuZ2Ugc2NyZWVuIGlmIGVycm9ycwogICAgaWYgKCVFcnJvcnMpIHsKICAgICAgICByZXR1cm4gJFNlbGYtPl9TaG93U2NyZWVuKAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICVFcnJvcnMsCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgSUQgICA9PiAkRmllbGRJRCwKICAgICAgICAgICAgTW9kZSA9PiAnQ2hhbmdlJywKICAgICAgICApOwogICAgfQoKICAgICMgc2V0IHNwZWNpZmljIGNvbmZpZwogICAgbXkgJEZpZWxkQ29uZmlnID0gewogICAgICAgIERlZmF1bHRWYWx1ZSAgICAgICA9PiAnJywKICAgICAgICBQb3NzaWJsZU5vbmUgICAgICAgPT4gMSwKICAgICAgICBUcmFuc2xhdGFibGVWYWx1ZXMgPT4gMSwKICAgIH07CgogICAgIyB1cGRhdGUgZHluYW1pYyBmaWVsZCAoRmllbGRUeXBlIGFuZCBPYmplY3RUeXBlIGNhbm5vdCBiZSBjaGFuZ2VkOyB1c2Ugb2xkIHZhbHVlcykKICAgIG15ICRVcGRhdGVTdWNjZXNzID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkVXBkYXRlKAogICAgICAgIElEICAgICAgICAgPT4gJEZpZWxkSUQsCiAgICAgICAgTmFtZSAgICAgICA9PiAkR2V0UGFyYW17TmFtZX0sCiAgICAgICAgTGFiZWwgICAgICA9PiAkR2V0UGFyYW17TGFiZWx9LAogICAgICAgIEZpZWxkT3JkZXIgPT4gJEdldFBhcmFte0ZpZWxkT3JkZXJ9LAogICAgICAgIEZpZWxkVHlwZSAgPT4gJER5bmFtaWNGaWVsZERhdGEtPntGaWVsZFR5cGV9LAogICAgICAgIE9iamVjdFR5cGUgPT4gJER5bmFtaWNGaWVsZERhdGEtPntPYmplY3RUeXBlfSwKICAgICAgICBDb25maWcgICAgID0+ICRGaWVsZENvbmZpZywKICAgICAgICBWYWxpZElEICAgID0+ICRHZXRQYXJhbXtWYWxpZElEfSwKICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgaWYgKCAhJFVwZGF0ZVN1Y2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ0NvdWxkIG5vdCB1cGRhdGUgdGhlIGZpZWxkICVzJywgJEdldFBhcmFte05hbWV9ICksCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgT1AgPT4gIkFjdGlvbj1BZG1pbkR5bmFtaWNGaWVsZCIsCiAgICApOwp9CgpzdWIgX1Nob3dTY3JlZW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAkUGFyYW17RGlzcGxheUZpZWxkTmFtZX0gPSAnTmV3JzsKCiAgICBpZiAoICRQYXJhbXtNb2RlfSBlcSAnQ2hhbmdlJyApIHsKICAgICAgICAkUGFyYW17U2hvd1dhcm5pbmd9ICAgICAgPSAnU2hvd1dhcm5pbmcnOwogICAgICAgICRQYXJhbXtEaXNwbGF5RmllbGROYW1lfSA9ICRQYXJhbXtOYW1lfTsKICAgIH0KCiAgICBteSAkTGF5b3V0T2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJER5bmFtaWNGaWVsZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKTsKICAgIG15ICRWYWxpZE9iamVjdCAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKTsKCiAgICAjIGhlYWRlcgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CgogICAgIyBnZXQgYWxsIGZpZWxkcwogICAgbXkgJER5bmFtaWNGaWVsZExpc3QgPSAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkID0+IDAsCiAgICApOwoKICAgICMgZ2V0IHRoZSBsaXN0IG9mIG9yZGVyIG51bWJlcnMgKGlzIGFscmVhZHkgc29ydGVkKS4KICAgIG15IEBEeW5hbWljZmllbGRPcmRlckxpc3Q7CiAgICBteSAlRHluYW1pY2ZpZWxkTmFtZXNMaXN0OwogICAgZm9yIG15ICREeW5hbWljZmllbGQgKCBAeyREeW5hbWljRmllbGRMaXN0fSApIHsKICAgICAgICBwdXNoIEBEeW5hbWljZmllbGRPcmRlckxpc3QsICREeW5hbWljZmllbGQtPntGaWVsZE9yZGVyfTsKICAgICAgICAkRHluYW1pY2ZpZWxkTmFtZXNMaXN0eyAkRHluYW1pY2ZpZWxkLT57RmllbGRPcmRlcn0gfSA9ICREeW5hbWljZmllbGQtPntMYWJlbH07CiAgICB9CgogICAgIyB3aGVuIGFkZGluZyB3ZSBuZWVkIHRvIGNyZWF0ZSBhbiBleHRyYSBvcmRlciBudW1iZXIgZm9yIHRoZSBuZXcgZmllbGQKICAgIGlmICggJFBhcmFte01vZGV9IGVxICdBZGQnICkgewoKICAgICAgICAjIGdldCB0aGUgbGFzdCBlbGVtZW50IGZvcm0gdGhlIG9yZGVyIGxpc3QgYW5kIGFkZCAxCiAgICAgICAgbXkgJExhc3RPcmRlck51bWJlciA9ICREeW5hbWljZmllbGRPcmRlckxpc3RbLTFdOwogICAgICAgICRMYXN0T3JkZXJOdW1iZXIrKzsKCiAgICAgICAgIyBhZGQgdGhpcyBuZXcgb3JkZXIgbnVtYmVyIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QKICAgICAgICBwdXNoIEBEeW5hbWljZmllbGRPcmRlckxpc3QsICRMYXN0T3JkZXJOdW1iZXI7CiAgICB9CgogICAgIyBzaG93IHRoZSBuYW1lcyBvZiB0aGUgb3RoZXIgZmllbGRzIHRvIGVhc2Ugb3JkZXJpbmcKICAgIG15ICVPcmRlck5hbWVzTGlzdDsKICAgIG15ICRDdXJyZW50bHlUZXh0ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdDdXJyZW50bHknKSAuICc6ICc7CiAgICBmb3IgbXkgJE9yZGVyTnVtYmVyICggc29ydCBARHluYW1pY2ZpZWxkT3JkZXJMaXN0ICkgewogICAgICAgICRPcmRlck5hbWVzTGlzdHskT3JkZXJOdW1iZXJ9ID0gJE9yZGVyTnVtYmVyOwogICAgICAgIGlmICggJER5bmFtaWNmaWVsZE5hbWVzTGlzdHskT3JkZXJOdW1iZXJ9ICYmICRPcmRlck51bWJlciBuZSAkUGFyYW17RmllbGRPcmRlcn0gKSB7CiAgICAgICAgICAgICRPcmRlck5hbWVzTGlzdHskT3JkZXJOdW1iZXJ9ID0gJE9yZGVyTnVtYmVyIC4gJyAtICcKICAgICAgICAgICAgICAgIC4gJEN1cnJlbnRseVRleHQKICAgICAgICAgICAgICAgIC4gJER5bmFtaWNmaWVsZE5hbWVzTGlzdHskT3JkZXJOdW1iZXJ9OwogICAgICAgIH0KICAgIH0KCiAgICBteSAkRHluYW1pY0ZpZWxkT3JkZXJTdHJnID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgICA9PiBcJU9yZGVyTmFtZXNMaXN0LAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0ZpZWxkT3JkZXInLAogICAgICAgIFNlbGVjdGVkVmFsdWUgPT4gJFBhcmFte0ZpZWxkT3JkZXJ9IHx8IDEsCiAgICAgICAgUG9zc2libGVOb25lICA9PiAwLAogICAgICAgIFRyYW5zbGF0aW9uICAgPT4gMCwKICAgICAgICBTb3J0ICAgICAgICAgID0+ICdOdW1lcmljS2V5JywKICAgICAgICBDbGFzcyAgICAgICAgID0+ICdXNzVwYyBWYWxpZGF0ZV9OdW1iZXIgTW9kZXJuaXplJywKICAgICk7CgogICAgbXkgJVZhbGlkTGlzdCA9ICRWYWxpZE9iamVjdC0+VmFsaWRMaXN0KCk7CgogICAgIyBjcmVhdGUgdGhlIFZhbGlkaXR5IHNlbGVjdAogICAgbXkgJFZhbGlkaXR5U3RyZyA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVZhbGlkTGlzdCwKICAgICAgICBOYW1lICAgICAgICAgPT4gJ1ZhbGlkSUQnLAogICAgICAgIFNlbGVjdGVkSUQgICA9PiAkUGFyYW17VmFsaWRJRH0gfHwgMSwKICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMCwKICAgICAgICBUcmFuc2xhdGlvbiAgPT4gMSwKICAgICAgICBDbGFzcyAgICAgICAgPT4gJ1c1MHBjIE1vZGVybml6ZScsCiAgICApOwoKICAgICMgY3JlYXRlIHRoZSBwb3NzaWJsZSB2YWx1ZXMgdGVtcGxhdGUKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1ZhbHVlVGVtcGxhdGUnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgJFJlYWRvbmx5SW50ZXJuYWxGaWVsZCA9ICcnOwoKICAgICMgSW50ZXJuYWwgZmllbGRzIGNhbiBub3QgYmUgZGVsZXRlZCBhbmQgbmFtZSBzaG91bGQgbm90IGNoYW5nZS4KICAgIGlmICggJFBhcmFte0ludGVybmFsRmllbGR9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdJbnRlcm5hbEZpZWxkJywKICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICApOwogICAgICAgICRSZWFkb25seUludGVybmFsRmllbGQgPSAncmVhZG9ubHk9InJlYWRvbmx5Iic7CiAgICB9CgogICAgIyBnZW5lcmF0ZSBvdXRwdXQKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5EeW5hbWljRmllbGRQcmltYXJ5U2Vjb25kYXJ5JywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIFZhbGlkaXR5U3RyZyAgICAgICAgICA9PiAkVmFsaWRpdHlTdHJnLAogICAgICAgICAgICBEeW5hbWljRmllbGRPcmRlclN0cmcgPT4gJER5bmFtaWNGaWVsZE9yZGVyU3RyZywKICAgICAgICAgICAgUmVhZG9ubHlJbnRlcm5hbEZpZWxkID0+ICRSZWFkb25seUludGVybmFsRmllbGQsCiAgICAgICAgfSwKICAgICk7CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK</File>
        <File Permission="660" Location="Kernel/Modules/AgentPrePrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50UHJlUHJpbWFyeVNlY29uZGFyeTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgojIHByZXZlbnQgdXNlZCBvbmNlIHdhcm5pbmcKdXNlIEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBQcmVSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGRvIG9ubHkgdXNlIHRoaXMgaW4gcGhvbmUgYW5kIGVtYWlsIHRpY2tldAogICAgcmV0dXJuIGlmICggJFNlbGYtPntBY3Rpb259ICF+IC9eQWdlbnRUaWNrZXQoRW1haWx8UGhvbmUpJC8gKTsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGdldCBwcmltYXJ5L3NlY29uZGFyeSBkeW5hbWljIGZpZWxkCiAgICBteSAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCA9ICRDb25maWdPYmplY3QtPkdldCgnUHJpbWFyeVNlY29uZGFyeTo6RHluYW1pY0ZpZWxkJykgfHwgJyc7CgogICAgIyByZXR1cm4gaWYgbm8gY29uZmlnIG9wdGlvbiBpcyB1c2VkCiAgICByZXR1cm4gaWYgISRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkOwoKICAgICMgc2V0IGR5bmFtaWMgZmllbGQgYXMgc2hvd24KICAgICRDb25maWdPYmplY3QtPnsiVGlja2V0OjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259In0tPntEeW5hbWljRmllbGR9LT57JFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGR9ID0gMTsKCiAgICByZXR1cm47Cn0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Modules/AgentTicketPrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgJG9yaWdpbjogem51bnkgLSBkZWQ5Yzc0MWMwOWZlMWRiY2RhZDBjNjViMjkzZjRjOGZkNDcwYTliIC0gS2VybmVsL01vZHVsZXMvQWdlbnRUaWNrZXRBY3Rpb25Db21tb24ucG0KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQuCiMgLS0KCiMgLS0tCiMgWm51bnktUHJpbWFyeVNlY29uZGFyeQojIC0tLQojcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50VGlja2V0QWN0aW9uQ29tbW9uOwoKIyBUaGlzIG1vZHVsZSB1c2VzIEFnZW50VGlja2V0QWN0aW9uQ29tbW9uIGFzIGEgYmFzZSwgZm9yIGVhc3kgdXBkYXRlIGFuZCBmcmFtZXdvcmsgY29tcGF0aWJpbGl0eQojIHNwZWNpYWwgbWFya2VycyBoYXMgYmVlbiBzZXQgYWxvbmcgdGhlIGZpbGUgdG8gZWFzeSBzcG90IHRoZSBkaWZmZXJlbmNlcyBpbnRyb2R1Y2VkIGJ5IFpudW55UHJpbWFyeVNlY29uZGFyeSBwYWNrYWdlCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnk7CiMgLS0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpFbWFpbFBhcnNlcjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwp1c2UgS2VybmVsOjpMYW5ndWFnZSAgICAgICAgICAgICAgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBUcnkgdG8gbG9hZCBkcmFmdCBpZiByZXF1ZXN0ZWQuCiAgICBpZiAoCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCJUaWNrZXQ6OkZyb250ZW5kOjokU2VsZi0+e0FjdGlvbn0iKS0+e0Zvcm1EcmFmdH0KICAgICAgICAmJiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKCBQYXJhbSA9PiAnTG9hZEZvcm1EcmFmdCcgKQogICAgICAgICYmICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKS0+R2V0UGFyYW0oIFBhcmFtID0+ICdGb3JtRHJhZnRJRCcgKQogICAgICAgICkKICAgIHsKICAgICAgICAkU2VsZi0+e0xvYWRlZEZvcm1EcmFmdElEfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKS0+TG9hZEZvcm1EcmFmdCgKICAgICAgICAgICAgRm9ybURyYWZ0SUQgPT4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLT5HZXRQYXJhbSggUGFyYW0gPT4gJ0Zvcm1EcmFmdElEJyApLAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBhcnRpY2xlIGZvciB3aG9tIHRoaXMgc2hvdWxkIGJlIGEgcmVwbHksIGlmIGF2YWlsYWJsZQogICAgbXkgJFJlcGx5VG9BcnRpY2xlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLT5HZXRQYXJhbSggUGFyYW0gPT4gJ1JlcGx5VG9BcnRpY2xlJyApIHx8ICcnOwogICAgbXkgJFRpY2tldElEICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLT5HZXRQYXJhbSggUGFyYW0gPT4gJ1RpY2tldElEJyApICAgICAgIHx8ICcnOwoKICAgICMgY2hlY2sgaWYgUmVwbHlUb0FydGljbGUgcmVhbGx5IGJlbG9uZ3MgdG8gdGhlIHRpY2tldAogICAgbXkgJVJlcGx5VG9BcnRpY2xlQ29udGVudDsKICAgIG15IEBSZXBseVRvQWRyZXNzZXM7CiAgICBpZiAoJFJlcGx5VG9BcnRpY2xlKSB7CgogICAgICAgIG15ICRBcnRpY2xlQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQ6OkFydGljbGUnKS0+QmFja2VuZEZvckFydGljbGUoCiAgICAgICAgICAgIFRpY2tldElEICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgIEFydGljbGVJRCA9PiAkUmVwbHlUb0FydGljbGUsCiAgICAgICAgKTsKICAgICAgICAlUmVwbHlUb0FydGljbGVDb250ZW50ID0gJEFydGljbGVCYWNrZW5kT2JqZWN0LT5BcnRpY2xlR2V0KAogICAgICAgICAgICBUaWNrZXRJRCAgICAgID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgQXJ0aWNsZUlEICAgICA9PiAkUmVwbHlUb0FydGljbGUsCiAgICAgICAgICAgIER5bmFtaWNGaWVsZHMgPT4gMCwKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+e1JlcGx5VG9BcnRpY2xlfSAgICAgICAgPSAkUmVwbHlUb0FydGljbGU7CiAgICAgICAgJFNlbGYtPntSZXBseVRvQXJ0aWNsZUNvbnRlbnR9ID0gXCVSZXBseVRvQXJ0aWNsZUNvbnRlbnQ7CgogICAgICAgICMgZ2V0IHNlbmRlciBvZiBvcmlnaW5hbCBub3RlICh0byBpbmZvcm0gc2VuZGVyIGFib3V0IGFuc3dlcikKICAgICAgICBpZiAoICRSZXBseVRvQXJ0aWNsZUNvbnRlbnR7Q3JlYXRlQnl9ICkgewogICAgICAgICAgICBteSBAUmVwbHlUb1NlbmRlcklEID0gKCAkUmVwbHlUb0FydGljbGVDb250ZW50e0NyZWF0ZUJ5fSApOwogICAgICAgICAgICAkU2VsZi0+e1JlcGx5VG9TZW5kZXJVc2VySUR9ID0gXEBSZXBseVRvU2VuZGVySUQ7CiAgICAgICAgfQoKICAgICAgICAjIGlmIGFydGljbGUgYmVsb25ncyB0byBvdGhlciB0aWNrZXQsIGRvbid0IHVzZSBpdCBhcyByZXBseQogICAgICAgIGlmICggJFJlcGx5VG9BcnRpY2xlQ29udGVudHtUaWNrZXRJRH0gbmUgJFNlbGYtPntUaWNrZXRJRH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57UmVwbHlUb0FydGljbGV9ID0gIiI7CiAgICAgICAgfQoKICAgICAgICAjIGlmIGFydGljbGUgaXMgbm90IG9mIHR5cGUgbm90ZS1pbnRlcm5hbCwgZG9uJ3QgdXNlIGl0IGFzIHJlcGx5CiAgICAgICAgaWYgKAogICAgICAgICAgICAkQXJ0aWNsZUJhY2tlbmRPYmplY3QtPkNoYW5uZWxOYW1lR2V0KCkgbmUgJ0ludGVybmFsJwogICAgICAgICAgICB8fCAoCiAgICAgICAgICAgICAgICAkQXJ0aWNsZUJhY2tlbmRPYmplY3QtPkNoYW5uZWxOYW1lR2V0KCkgZXEgJ0ludGVybmFsJwogICAgICAgICAgICAgICAgJiYgJFJlcGx5VG9BcnRpY2xlQ29udGVudHtTZW5kZXJUeXBlfSBuZSAnYWdlbnQnCiAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFNlbGYtPntSZXBseVRvQXJ0aWNsZX0gPSAiIjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgZm9ybSBpZAogICAgJFNlbGYtPntGb3JtSUR9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLT5HZXRQYXJhbSggUGFyYW0gPT4gJ0Zvcm1JRCcgKTsKCiAgICAjIGNyZWF0ZSBmb3JtIGlkCiAgICBpZiAoICEkU2VsZi0+e0Zvcm1JRH0gKSB7CiAgICAgICAgJFNlbGYtPntGb3JtSUR9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6VXBsb2FkQ2FjaGUnKS0+Rm9ybUlEQ3JlYXRlKCk7CiAgICB9CgogICAgJFNlbGYtPntJc0lUU01JbmNpZGVudFByb2JsZW1NYW5hZ2VtZW50SW5zdGFsbGVkfQogICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlV0aWwnKS0+SXNJVFNNSW5jaWRlbnRQcm9ibGVtTWFuYWdlbWVudEluc3RhbGxlZCgpOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkTGF5b3V0T2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFRpY2tldE9iamVjdCAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKTsKICAgIG15ICRDb25maWdPYmplY3QgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJFBhcmFtT2JqZWN0ICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRGb3JtRHJhZnRPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Rm9ybURyYWZ0Jyk7CiAgICBteSAkQ3VzdG9tZXJVc2VyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkN1c3RvbWVyVXNlcicpOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkU2VsZi0+e1RpY2tldElEfSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdObyBUaWNrZXRJRCBpcyBnaXZlbiEnKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgY29uZmlnIG9mIGZyb250ZW5kIG1vZHVsZQogICAgbXkgJENvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgiVGlja2V0OjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259Iik7CgogICAgIyBjaGVjayBwZXJtaXNzaW9ucwogICAgbXkgJEFjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFBlcm1pc3Npb24oCiAgICAgICAgVHlwZSAgICAgPT4gJENvbmZpZy0+e1Blcm1pc3Npb259LAogICAgICAgIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfQogICAgKTsKCiAgICAjIGVycm9yIHNjcmVlbiwgZG9uJ3Qgc2hvdyB0aWNrZXQKICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdZb3UgbmVlZCAlcyBwZXJtaXNzaW9ucyEnLCAkQ29uZmlnLT57UGVybWlzc2lvbn0gKSwKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IEFDTCByZXN0cmljdGlvbnMKICAgIG15ICVQb3NzaWJsZUFjdGlvbnMgPSAoIDEgPT4gJFNlbGYtPntBY3Rpb259ICk7CgogICAgbXkgJEFDTCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEFjbCgKICAgICAgICBEYXRhICAgICAgICAgID0+IFwlUG9zc2libGVBY3Rpb25zLAogICAgICAgIEFjdGlvbiAgICAgICAgPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgIFRpY2tldElEICAgICAgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgUmV0dXJuVHlwZSAgICA9PiAnQWN0aW9uJywKICAgICAgICBSZXR1cm5TdWJUeXBlID0+ICctJywKICAgICAgICBVc2VySUQgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CiAgICBteSAlQWNsQWN0aW9uID0gJFRpY2tldE9iamVjdC0+VGlja2V0QWNsQWN0aW9uRGF0YSgpOwoKICAgICMgY2hlY2sgaWYgQUNMIHJlc3RyaWN0aW9ucyBleGlzdAogICAgaWYgKCAkQUNMIHx8IElzSGFzaFJlZldpdGhEYXRhKCBcJUFjbEFjdGlvbiApICkgewoKICAgICAgICBteSAlQWNsQWN0aW9uTG9va3VwID0gcmV2ZXJzZSAlQWNsQWN0aW9uOwoKICAgICAgICAjIHNob3cgZXJyb3Igc2NyZWVuIGlmIEFDTCBwcm9oaWJpdHMgdGhpcyBhY3Rpb24KICAgICAgICBpZiAoICEkQWNsQWN0aW9uTG9va3VweyAkU2VsZi0+e0FjdGlvbn0gfSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbiggV2l0aEhlYWRlciA9PiAneWVzJyApOwogICAgICAgIH0KICAgIH0KCiAgICAjIENoZWNrIGZvciBmYWlsZWQgZHJhZnQgbG9hZGluZyByZXF1ZXN0LgogICAgaWYgKAogICAgICAgICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdMb2FkRm9ybURyYWZ0JyApCiAgICAgICAgJiYgISRTZWxmLT57TG9hZGVkRm9ybURyYWZ0SUR9CiAgICAgICAgKQogICAgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ0xvYWRpbmcgZHJhZnQgZmFpbGVkIScpLAogICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAlVGlja2V0ID0gJFRpY2tldE9iamVjdC0+VGlja2V0R2V0KAogICAgICAgIFRpY2tldElEICAgICAgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgRHluYW1pY0ZpZWxkcyA9PiAxLAogICAgKTsKCiAgICAjIENoZWNrIGlmIHRoZSB1c2VyIGhhcyBhbHJlYWR5IGFueSBmb3JtIGRyYWZ0IGZvciB0aGlzIGFjdGlvbgogICAgbXkgJEZvcm1EcmFmdExpc3QgPSAkRm9ybURyYWZ0T2JqZWN0LT5Gb3JtRHJhZnRMaXN0R2V0KAogICAgICAgIE9iamVjdFR5cGUgPT4gJ1RpY2tldCcsCiAgICAgICAgT2JqZWN0SUQgICA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICBBY3Rpb24gICAgID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICkgLy8gW107CgogICAgbXkgJExvYWRlZEZvcm1EcmFmdDsKICAgIGlmICggJFNlbGYtPntMb2FkZWRGb3JtRHJhZnRJRH0gKSB7CiAgICAgICAgJExvYWRlZEZvcm1EcmFmdCA9ICRGb3JtRHJhZnRPYmplY3QtPkZvcm1EcmFmdEdldCgKICAgICAgICAgICAgRm9ybURyYWZ0SUQgPT4gJFNlbGYtPntMb2FkZWRGb3JtRHJhZnRJRH0sCiAgICAgICAgICAgIEdldENvbnRlbnQgID0+IDAsCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBteSBAQXJ0aWNsZXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpBcnRpY2xlJyktPkFydGljbGVMaXN0KAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICAgICAgT25seUxhc3QgPT4gMSwKICAgICAgICApOwoKICAgICAgICBpZiAoQEFydGljbGVzKSB7CiAgICAgICAgICAgIG15ICRMYXN0QXJ0aWNsZSA9ICRBcnRpY2xlc1swXTsKCiAgICAgICAgICAgIG15ICRMYXN0QXJ0aWNsZVN5c3RlbVRpbWU7CiAgICAgICAgICAgIGlmICggJExhc3RBcnRpY2xlLT57Q3JlYXRlVGltZX0gKSB7CiAgICAgICAgICAgICAgICBteSAkTGFzdEFydGljbGVTeXN0ZW1UaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJExhc3RBcnRpY2xlLT57Q3JlYXRlVGltZX0sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkTGFzdEFydGljbGVTeXN0ZW1UaW1lID0gJExhc3RBcnRpY2xlU3lzdGVtVGltZU9iamVjdC0+VG9FcG9jaCgpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkRm9ybURyYWZ0U3lzdGVtVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgICAgICAgICAgU3RyaW5nID0+ICRMb2FkZWRGb3JtRHJhZnQtPntDaGFuZ2VUaW1lfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15ICRGb3JtRHJhZnRTeXN0ZW1UaW1lID0gJEZvcm1EcmFmdFN5c3RlbVRpbWVPYmplY3QtPlRvRXBvY2goKTsKCiAgICAgICAgICAgIGlmICggISRMYXN0QXJ0aWNsZVN5c3RlbVRpbWUgfHwgJEZvcm1EcmFmdFN5c3RlbVRpbWUgPD0gJExhc3RBcnRpY2xlU3lzdGVtVGltZSApIHsKICAgICAgICAgICAgICAgICRQYXJhbXtGb3JtRHJhZnRPdXRkYXRlZH0gPSAxOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoJExvYWRlZEZvcm1EcmFmdCkgKSB7CgogICAgICAgICRMb2FkZWRGb3JtRHJhZnQtPntDaGFuZ2VCeU5hbWV9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlck5hbWUoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkTG9hZGVkRm9ybURyYWZ0LT57Q2hhbmdlQnl9LAogICAgICAgICk7CiAgICB9CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnUHJvcGVydGllcycsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIEZvcm1EcmFmdCAgICAgICAgICA9PiAkQ29uZmlnLT57Rm9ybURyYWZ0fSwKICAgICAgICAgICAgRm9ybURyYWZ0SUQgICAgICAgID0+ICRTZWxmLT57TG9hZGVkRm9ybURyYWZ0SUR9LAogICAgICAgICAgICBGb3JtRHJhZnRUaXRsZSAgICAgPT4gJExvYWRlZEZvcm1EcmFmdCA/ICRMb2FkZWRGb3JtRHJhZnQtPntUaXRsZX0gOiAnJywKICAgICAgICAgICAgRm9ybURyYWZ0TWV0YSAgICAgID0+ICRMb2FkZWRGb3JtRHJhZnQsCiAgICAgICAgICAgIEZvcm1EcmFmdEZvckFjdGlvbiA9PiBzY2FsYXIgQHskRm9ybURyYWZ0TGlzdH0sCiAgICAgICAgICAgIEZvcm1JRCAgICAgICAgICAgICA9PiAkU2VsZi0+e0Zvcm1JRH0sCiAgICAgICAgICAgIFJlcGx5VG9BcnRpY2xlICAgICA9PiAkU2VsZi0+e1JlcGx5VG9BcnRpY2xlfSwKICAgICAgICAgICAgJVRpY2tldCwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgIH0sCiAgICApOwoKICAgICMgR2V0IGFsbCB2YWxpZCBXaWRnZXRzCiAgICBteSAlV2lkZ2V0cyA9ICRTZWxmLT5fR2V0V2lkZ2V0cygKICAgICAgICBDb25maWcgICA9PiAkQ29uZmlnLAogICAgICAgIFRpY2tldCAgID0+IFwlVGlja2V0LAogICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICBUaWNrZXRJRCA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICBBY3Rpb24gICA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICApOwoKICAgICMgR3JlcCBhbGwgU2lkZWJhcldpZGdldHMKICAgIG15ICVTaWRlYmFyV2lkZ2V0czsKICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICVXaWRnZXRzICkgewogICAgICAgIGlmICggJFdpZGdldHN7JEtleX0tPntMb2NhdGlvbn0gZXEgJ1NpZGViYXInICkgewogICAgICAgICAgICAkU2lkZWJhcldpZGdldHN7JEtleX0gPSAkV2lkZ2V0c3skS2V5fTsKICAgICAgICB9CiAgICB9CgogICAgaWYgKCVTaWRlYmFyV2lkZ2V0cykgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdTaWRlYmFyJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlVGlja2V0LAogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgJVNpZGViYXJXaWRnZXRzLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgU29ydCBieSBQcmlvCiAgICAgICAgZm9yIG15ICRLZXkgKCBzb3J0IHsgJFNpZGViYXJXaWRnZXRzeyRhfS0+e1ByaW99IDw9PiAkU2lkZWJhcldpZGdldHN7JGJ9LT57UHJpb30gfSBrZXlzICVTaWRlYmFyV2lkZ2V0cyApIHsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnU2lkZWJhcldpZGdldCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAlVGlja2V0LAogICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICBTaWRlYmFyICAgICAgID0+ICRLZXksCiAgICAgICAgICAgICAgICAgICAgU2lkZWJhcldpZGdldCA9PiAkU2lkZWJhcldpZGdldHN7JEtleX0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBsb2NrIHN0YXRlCiAgICBpZiAoICRDb25maWctPntSZXF1aXJlZExvY2t9ICkgewogICAgICAgIGlmICggISRUaWNrZXRPYmplY3QtPlRpY2tldExvY2tHZXQoIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9ICkgKSB7CgogICAgICAgICAgICBteSAkTG9jayA9ICRUaWNrZXRPYmplY3QtPlRpY2tldExvY2tTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICdsb2NrJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfQogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCRMb2NrKSB7CgogICAgICAgICAgICAgICAgIyBTZXQgbmV3IG93bmVyIGlmIHRpY2tldCBvd25lciBpcyBkaWZmZXJlbnQgdGhlbiBsb2dnZWQgdXNlci4KICAgICAgICAgICAgICAgIGlmICggJFRpY2tldHtPd25lcklEfSAhPSAkU2VsZi0+e1VzZXJJRH0gKSB7CgogICAgICAgICAgICAgICAgICAgICMgUmVtZW1iZXIgcHJldmlvdXMgb3duZXIsIHdoaWNoIHdpbGwgYmUgdXNlZCB0byByZXN0b3JlIHRpY2tldCBvd25lciBvbiB1bmRvIGFjdGlvbi4KICAgICAgICAgICAgICAgICAgICAkUGFyYW17UHJldmlvdXNPd25lcn0gPSAkVGlja2V0e093bmVySUR9OwoKICAgICAgICAgICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5UaWNrZXRPd25lclNldCgKICAgICAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICAgICBOZXdVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBTaG93IGxvY2sgc3RhdGUuCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdQcm9wZXJ0aWVzTG9jaycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUHJvcGVydGllc0xvY2tOb3RpZnknLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBteSAkQWNjZXNzT2sgPSAkVGlja2V0T2JqZWN0LT5Pd25lckNoZWNrKAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBPd25lcklEICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICggISRBY2Nlc3NPayApIHsKICAgICAgICAgICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgICAgICAgICAgICAgVHlwZSAgICAgID0+ICdTbWFsbCcsCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgICAgID0+ICRUaWNrZXR7TnVtYmVyfSwKICAgICAgICAgICAgICAgICAgICBCb2R5Q2xhc3MgPT4gJ1BvcHVwJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPldhcm5pbmcoCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1NvcnJ5LCB5b3UgbmVlZCB0byBiZSB0aGUgdGlja2V0IG93bmVyIHRvIHBlcmZvcm0gdGhpcyBhY3Rpb24uJyksCiAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjaGFuZ2UgdGhlIG93bmVyIGZpcnN0LicpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKAogICAgICAgICAgICAgICAgICAgIFR5cGUgPT4gJ1NtYWxsJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzaG93IGJhY2sgbGluawogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1RpY2tldEJhY2snLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVGlja2V0QmFjaycsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgJVRpY2tldCwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHBhcmFtcwogICAgbXkgJUdldFBhcmFtOwogICAgZm9yIG15ICRLZXkgKAogICAgICAgIHF3KAogICAgICAgIE5ld1N0YXRlSUQgTmV3UHJpb3JpdHlJRCBUaW1lVW5pdHMgSXNWaXNpYmxlRm9yQ3VzdG9tZXIgVGl0bGUgQm9keSBTdWJqZWN0IE5ld1F1ZXVlSUQKICAgICAgICBZZWFyIE1vbnRoIERheSBIb3VyIE1pbnV0ZSBOZXdPd25lcklEIE5ld1Jlc3BvbnNpYmxlSUQgVHlwZUlEIFNlcnZpY2VJRCBTTEFJRAogICAgICAgIEV4cGFuZCBSZXBseVRvQXJ0aWNsZSBTdGFuZGFyZFRlbXBsYXRlSUQgQ3JlYXRlQXJ0aWNsZSBGb3JtRHJhZnRJRCBUaXRsZQogICAgICAgICkKICAgICAgICApCiAgICB7CiAgICAgICAgJEdldFBhcmFteyRLZXl9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJEtleSApOwogICAgfQoKICAgIGlmICggJENvbmZpZy0+e0N1c3RvbWVyVXNlcn0gKSB7CiAgICAgICAgZm9yIG15ICRLZXkgKHF3KEN1c3RvbWVySUQgU2VsZWN0ZWRDdXN0b21lclVzZXIgQ3VzdG9tZXJVc2VySUQpKSB7CiAgICAgICAgICAgICRHZXRQYXJhbXskS2V5fSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRLZXkgKSB8fCAnJzsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyBkbyBub3Qgc2V0IEN1c3RvbWVyVXNlcklEIGFzIGl0IGlzIG5vdCBuZWVkZWQKICAgICAgICAjIHdoZW4gQ3VzdG9tZXJVc2VyIGlzIGRpc2FibGVkIGluIG1vZHVsZSBjb25maWcKICAgICAgICAkR2V0UGFyYW17Q3VzdG9tZXJJRH0gICAgICAgICAgID0gJFRpY2tldHtDdXN0b21lcklEfSAgICAgfHwgJyc7CiAgICAgICAgJEdldFBhcmFte1NlbGVjdGVkQ3VzdG9tZXJVc2VyfSA9ICRUaWNrZXR7Q3VzdG9tZXJVc2VySUR9IHx8ICcnOwogICAgfQoKICAgICMgQUNMIGNvbXBhdGliaWxpdHkgdHJhbnNsYXRpb24KICAgIG15ICVBQ0xDb21wYXRHZXRQYXJhbSA9ICgKICAgICAgICBTdGF0ZUlEICAgICAgID0+ICRHZXRQYXJhbXtOZXdTdGF0ZUlEfSwKICAgICAgICBQcmlvcml0eUlEICAgID0+ICRHZXRQYXJhbXtOZXdQcmlvcml0eUlEfSwKICAgICAgICBRdWV1ZUlEICAgICAgID0+ICRHZXRQYXJhbXtOZXdRdWV1ZUlEfSwKICAgICAgICBPd25lcklEICAgICAgID0+ICRHZXRQYXJhbXtOZXdPd25lcklEfSwKICAgICAgICBSZXNwb25zaWJsZUlEID0+ICRHZXRQYXJhbXtOZXdSZXNwb25zaWJsZUlEfSwKICAgICk7CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCB2YWx1ZXMgZm9ybSBodHRwIHJlcXVlc3QKICAgIG15ICVEeW5hbWljRmllbGRWYWx1ZXM7CgogICAgIyB0byBzdG9yZSB0aGUgcmVmZXJlbmNlIHRvIHRoZSBkeW5hbWljIGZpZWxkIGZvciB0aGUgaW1wYWN0CiAgICBteSAkSW1wYWN0RHluYW1pY0ZpZWxkQ29uZmlnOwoKICAgICMgZGVmaW5lIHRoZSBkeW5hbWljIGZpZWxkcyB0byBzaG93IGJhc2VkIG9uIHRoZSBvYmplY3QgdHlwZQogICAgbXkgJE9iamVjdFR5cGUgPSBbJ1RpY2tldCddOwojIC0tLQojIFpudW55LVByaW1hcnlTZWNvbmRhcnkKIyAtLS0KICAgICMgZ2V0IFByaW1hcnkvU2Vjb25kYXJ5IGR5bmFtaWMgZmllbGQKICAgIG15ICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkID0gJENvbmZpZ09iamVjdC0+R2V0KCdQcmltYXJ5U2Vjb25kYXJ5OjpEeW5hbWljRmllbGQnKSB8fCAnJzsKICAgIG15ICRQcmltYXJ5U2Vjb25kYXJ5QWR2YW5jZWRFbmFibGVkID0gJENvbmZpZ09iamVjdC0+R2V0KCdQcmltYXJ5U2Vjb25kYXJ5OjpBZHZhbmNlZEVuYWJsZWQnKSB8fCAwOwojIC0tLQoKICAgICMgb25seSBzY3JlZW5zIHRoYXQgYWRkIG5vdGVzIGNhbiBtb2RpZnkgQXJ0aWNsZSBkeW5hbWljIGZpZWxkcwogICAgaWYgKCAkQ29uZmlnLT57Tm90ZX0gKSB7CiAgICAgICAgJE9iamVjdFR5cGUgPSBbICdUaWNrZXQnLCAnQXJ0aWNsZScgXTsKICAgIH0KIyAtLS0KIyBabnVueS1QcmltYXJ5U2Vjb25kYXJ5CiMgLS0tCiAgICBpZiAoJFByaW1hcnlTZWNvbmRhcnlBZHZhbmNlZEVuYWJsZWQpIHsKICAgICAgICBteSAkRGlzcGxheSA9ICRDb25maWctPntQcmltYXJ5U2Vjb25kYXJ5TWFuZGF0b3J5fSA/IDIgOiAxOwogICAgICAgICRDb25maWctPntEeW5hbWljRmllbGR9LT57JFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGR9ID0gJERpc3BsYXk7CiAgICB9CiMgLS0tCgogICAgIyBnZXQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgbXkgJER5bmFtaWNGaWVsZCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgICA9PiAxLAogICAgICAgIE9iamVjdFR5cGUgID0+ICRPYmplY3RUeXBlLAogICAgICAgIEZpZWxkRmlsdGVyID0+ICRDb25maWctPntEeW5hbWljRmllbGR9IHx8IHt9LAogICAgKTsKCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIGJhY2tlbmQgb2JqZWN0CiAgICBteSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKCiAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyREeW5hbWljRmllbGR9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgIyBleHRyYWN0IHRoZSBkeW5hbWljIGZpZWxkIHZhbHVlIGZyb20gdGhlIHdlYiByZXF1ZXN0CiAgICAgICAgJER5bmFtaWNGaWVsZFZhbHVlc3sgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+RWRpdEZpZWxkVmFsdWVHZXQoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBQYXJhbU9iamVjdCAgICAgICAgPT4gJFBhcmFtT2JqZWN0LAogICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICApOwoKICAgICAgICAjIGltcGFjdCBmaWVsZCB3YXMgZm91bmQKICAgICAgICBpZiAoICRTZWxmLT57SXNJVFNNSW5jaWRlbnRQcm9ibGVtTWFuYWdlbWVudEluc3RhbGxlZH0gJiYgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IGVxICdJVFNNSW1wYWN0JyApIHsKCiAgICAgICAgICAgICMgc3RvcmUgdGhlIHJlZmVyZW5jZSB0byB0aGUgaW1wYWN0IGZpZWxkCiAgICAgICAgICAgICRJbXBhY3REeW5hbWljRmllbGRDb25maWcgPSAkRHluYW1pY0ZpZWxkQ29uZmlnOwogICAgICAgIH0KICAgIH0KCiAgICBteSAlU2VydmljZTsKICAgIGlmICggJFNlbGYtPntJc0lUU01JbmNpZGVudFByb2JsZW1NYW5hZ2VtZW50SW5zdGFsbGVkfSApIHsKCiAgICAgICAgIyBnZXQgbmVlZGVkIHN0dWZmCiAgICAgICAgJEdldFBhcmFte0R5bmFtaWNGaWVsZF9JVFNNQ3JpdGljYWxpdHl9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0R5bmFtaWNGaWVsZF9JVFNNQ3JpdGljYWxpdHknICk7CiAgICAgICAgJEdldFBhcmFte0R5bmFtaWNGaWVsZF9JVFNNSW1wYWN0fSAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0R5bmFtaWNGaWVsZF9JVFNNSW1wYWN0JyApOwogICAgICAgICRHZXRQYXJhbXtQcmlvcml0eVJDfSAgICAgICAgICAgICAgICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdQcmlvcml0eVJDJyApOwogICAgICAgICRHZXRQYXJhbXtFbGVtZW50Q2hhbmdlZH0gICAgICAgICAgICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdFbGVtZW50Q2hhbmdlZCcgKSB8fCAnJzsKCiAgICAgICAgIyBjaGVjayBpZiBwcmlvcml0eSBuZWVkcyB0byBiZSByZWNhbGN1bGF0ZWQKICAgICAgICBpZiAoCiAgICAgICAgICAgICRHZXRQYXJhbXtFbGVtZW50Q2hhbmdlZH0gZXEgJ1NlcnZpY2VJRCcKICAgICAgICAgICAgfHwgJEdldFBhcmFte0VsZW1lbnRDaGFuZ2VkfSBlcSAnRHluYW1pY0ZpZWxkX0lUU01JbXBhY3QnCiAgICAgICAgICAgIHx8ICRHZXRQYXJhbXtFbGVtZW50Q2hhbmdlZH0gZXEgJ0R5bmFtaWNGaWVsZF9JVFNNQ3JpdGljYWxpdHknCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRHZXRQYXJhbXtQcmlvcml0eVJDfSA9IDE7CiAgICAgICAgfQoKICAgICAgICAjIHNldCBzZXJ2aWNlIGlkIGZyb20gdGlja2V0CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkR2V0UGFyYW17U2VydmljZUlEfSAmJiAkVGlja2V0e1NlcnZpY2VJRH0gKSB7CiAgICAgICAgICAgICRHZXRQYXJhbXtTZXJ2aWNlSUR9ID0gJFRpY2tldHtTZXJ2aWNlSUR9OwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgaW1wYWN0IGZyb20gdGlja2V0CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkR2V0UGFyYW17RHluYW1pY0ZpZWxkX0lUU01JbXBhY3R9ICkgewogICAgICAgICAgICAkR2V0UGFyYW17RHluYW1pY0ZpZWxkX0lUU01JbXBhY3R9ID0gJFRpY2tldHtEeW5hbWljRmllbGRfSVRTTUltcGFjdH07CiAgICAgICAgfQoKICAgICAgICAjIHNldCBjcml0aWNhbGl0eSBmcm9tIHRpY2tldAogICAgICAgIGlmICggIWRlZmluZWQgJEdldFBhcmFte0R5bmFtaWNGaWVsZF9JVFNNQ3JpdGljYWxpdHl9ICkgewogICAgICAgICAgICAkR2V0UGFyYW17RHluYW1pY0ZpZWxkX0lUU01Dcml0aWNhbGl0eX0gPSAkVGlja2V0e0R5bmFtaWNGaWVsZF9JVFNNQ3JpdGljYWxpdHl9OwogICAgICAgIH0KCiAgICAgICAgaWYgKCAkR2V0UGFyYW17U2VydmljZUlEfSApIHsKCiAgICAgICAgICAgICMgZ2V0IHNlcnZpY2UKICAgICAgICAgICAgJVNlcnZpY2UgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U2VydmljZScpLT5TZXJ2aWNlR2V0KAogICAgICAgICAgICAgICAgU2VydmljZUlEICAgICA9PiAkR2V0UGFyYW17U2VydmljZUlEfSwKICAgICAgICAgICAgICAgIEluY2lkZW50U3RhdGUgPT4gJENvbmZpZy0+e1Nob3dJbmNpZGVudFN0YXRlfSB8fCAwLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoICRHZXRQYXJhbXtFbGVtZW50Q2hhbmdlZH0gZXEgJ1NlcnZpY2VJRCcgKSB7CiAgICAgICAgICAgICAgICAkR2V0UGFyYW17RHluYW1pY0ZpZWxkX0lUU01Dcml0aWNhbGl0eX0gPSAkU2VydmljZXtDcml0aWNhbGl0eX07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgcmVjYWxjdWxhdGUgaW1wYWN0IGlmIGltcGFjdCBpcyBub3Qgc2V0IHVudGlsIG5vdwogICAgICAgICAgICBpZiAoICEkR2V0UGFyYW17RHluYW1pY0ZpZWxkX0lUU01JbXBhY3R9ICYmICRHZXRQYXJhbXtFbGVtZW50Q2hhbmdlZH0gbmUgJ0R5bmFtaWNGaWVsZF9JVFNNSW1wYWN0JyApIHsKCiAgICAgICAgICAgICAgICAjIGdldCBkZWZhdWx0IHNlbGVjdGlvbgogICAgICAgICAgICAgICAgbXkgJERlZmF1bHRTZWxlY3Rpb24gPSAkSW1wYWN0RHluYW1pY0ZpZWxkQ29uZmlnLT57Q29uZmlnfS0+e0RlZmF1bHRWYWx1ZX07CgogICAgICAgICAgICAgICAgaWYgKCREZWZhdWx0U2VsZWN0aW9uKSB7CgogICAgICAgICAgICAgICAgICAgICMgZ2V0IGRlZmF1bHQgaW1wYWN0CiAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFte0R5bmFtaWNGaWVsZF9JVFNNSW1wYWN0fSA9ICREZWZhdWx0U2VsZWN0aW9uOwogICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXtQcmlvcml0eVJDfSAgICAgICAgICAgICAgPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHJlY2FsY3VsYXRlIHByaW9yaXR5CiAgICAgICAgICAgIGlmICggJEdldFBhcmFte1ByaW9yaXR5UkN9ICYmICRHZXRQYXJhbXtEeW5hbWljRmllbGRfSVRTTUltcGFjdH0gJiYgJENvbmZpZy0+e1ByaW9yaXR5fSApIHsKCiAgICAgICAgICAgICAgICBpZiAoICRHZXRQYXJhbXtEeW5hbWljRmllbGRfSVRTTUltcGFjdH0gKSB7CgogICAgICAgICAgICAgICAgICAgICMgZ2V0IHByaW9yaXR5CiAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFte05ld1ByaW9yaXR5SUR9CiAgICAgICAgICAgICAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OklUU01DSVBBbGxvY2F0ZScpLT5Qcmlvcml0eUFsbG9jYXRpb25HZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIENyaXRpY2FsaXR5ID0+ICRHZXRQYXJhbXtEeW5hbWljRmllbGRfSVRTTUNyaXRpY2FsaXR5fSB8fCAkU2VydmljZXtDcml0aWNhbGl0eX0sCiAgICAgICAgICAgICAgICAgICAgICAgIEltcGFjdCAgICAgID0+ICRHZXRQYXJhbXtEeW5hbWljRmllbGRfSVRTTUltcGFjdH0sCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17TmV3UHJpb3JpdHlJRH0gPSAnJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBubyBzZXJ2aWNlIHdhcyBzZWxlY3RlZAogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBkbyBub3Qgc2hvdyB0aGUgZGVmYXVsdCBzZWxlY3Rpb24KICAgICAgICAgICAgJEltcGFjdER5bmFtaWNGaWVsZENvbmZpZy0+e0NvbmZpZ30tPntEZWZhdWx0VmFsdWV9ID0gJyc7CgogICAgICAgICAgICAjIHNob3cgb25seSB0aGUgZW1wdHkgc2VsZWN0aW9uCiAgICAgICAgICAgICRJbXBhY3REeW5hbWljRmllbGRDb25maWctPntDb25maWd9LT57UG9zc2libGVWYWx1ZXN9ID0ge307CiAgICAgICAgICAgICRHZXRQYXJhbXtEeW5hbWljRmllbGRfSVRTTUltcGFjdH0gPSAnJzsKICAgICAgICB9CgogICAgICAgICMgc2V0IHRoZSBzZWxlY3RlZCBpbXBhY3QgYW5kIGNyaXRpY2FsaXR5CiAgICAgICAgJER5bmFtaWNGaWVsZFZhbHVlc3tJVFNNQ3JpdGljYWxpdHl9ID0gJEdldFBhcmFte0R5bmFtaWNGaWVsZF9JVFNNQ3JpdGljYWxpdHl9IHx8ICRTZXJ2aWNle0NyaXRpY2FsaXR5fTsKICAgICAgICAkRHluYW1pY0ZpZWxkVmFsdWVze0lUU01JbXBhY3R9ICAgICAgPSAkR2V0UGFyYW17RHluYW1pY0ZpZWxkX0lUU01JbXBhY3R9OwoKICAgICAgICAjIFNlbmQgY29uZmlnIGRhdGEgdG8gSlMuCiAgICAgICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgICAgICBLZXkgICA9PiAkU2VsZi0+e0FjdGlvbn0gLiAnU2hvd0luY2lkZW50U3RhdGUnLAogICAgICAgICAgICBWYWx1ZSA9PiAkQ29uZmlnLT57U2hvd0luY2lkZW50U3RhdGV9LAogICAgICAgICk7CiAgICB9CgogICAgIyBjb252ZXJ0IGR5bmFtaWMgZmllbGQgdmFsdWVzIGludG8gYSBzdHJ1Y3R1cmUgZm9yIEFDTHMKICAgIG15ICVEeW5hbWljRmllbGRBQ0xQYXJhbWV0ZXJzOwogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRJdGVtICggc29ydCBrZXlzICVEeW5hbWljRmllbGRWYWx1ZXMgKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISREeW5hbWljRmllbGRJdGVtOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFkZWZpbmVkICREeW5hbWljRmllbGRWYWx1ZXN7JER5bmFtaWNGaWVsZEl0ZW19OwoKICAgICAgICAkRHluYW1pY0ZpZWxkQUNMUGFyYW1ldGVyc3sgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZEl0ZW0gfSA9ICREeW5hbWljRmllbGRWYWx1ZXN7JER5bmFtaWNGaWVsZEl0ZW19OwogICAgfQogICAgJEdldFBhcmFte0R5bmFtaWNGaWVsZH0gPSBcJUR5bmFtaWNGaWVsZEFDTFBhcmFtZXRlcnM7CgogICAgIyB0cmFuc2Zvcm0gcGVuZGluZyB0aW1lLCB0aW1lIHN0YW1wIGJhc2VkIG9uIHVzZXIgdGltZSB6b25lCiAgICBpZiAoCiAgICAgICAgZGVmaW5lZCAkR2V0UGFyYW17WWVhcn0KICAgICAgICAmJiBkZWZpbmVkICRHZXRQYXJhbXtNb250aH0KICAgICAgICAmJiBkZWZpbmVkICRHZXRQYXJhbXtEYXl9CiAgICAgICAgJiYgZGVmaW5lZCAkR2V0UGFyYW17SG91cn0KICAgICAgICAmJiBkZWZpbmVkICRHZXRQYXJhbXtNaW51dGV9CiAgICAgICAgKQogICAgewogICAgICAgICVHZXRQYXJhbSA9ICRMYXlvdXRPYmplY3QtPlRyYW5zZm9ybURhdGVTZWxlY3Rpb24oCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICApOwogICAgfQoKICAgICMgcmV3cmFwIGJvZHkgaWYgbm8gcmljaCB0ZXh0IGlzIHVzZWQKICAgIGlmICggJEdldFBhcmFte0JvZHl9ICYmICEkTGF5b3V0T2JqZWN0LT57QnJvd3NlclJpY2hUZXh0fSApIHsKICAgICAgICAkR2V0UGFyYW17Qm9keX0gPSAkTGF5b3V0T2JqZWN0LT5XcmFwUGxhaW5UZXh0KAogICAgICAgICAgICBNYXhDaGFyYWN0ZXJzID0+ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpGcm9udGVuZDo6VGV4dEFyZWFOb3RlJyksCiAgICAgICAgICAgIFBsYWluVGV4dCAgICAgPT4gJEdldFBhcmFte0JvZHl9LAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgdXBsb2FkIGNhY2hlIG9iamVjdAogICAgbXkgJFVwbG9hZENhY2hlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6VXBsb2FkQ2FjaGUnKTsKCiAgICBpZiAoCiAgICAgICAgJFNlbGYtPntTdWJhY3Rpb259IGVxICdTdG9yZScKICAgICAgICB8fCAkU2VsZi0+e0xvYWRlZEZvcm1EcmFmdElEfQogICAgICAgICkKICAgIHsKCiAgICAgICAgIyBjaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbgogICAgICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdTdG9yZScgKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKICAgICAgICB9CgogICAgICAgICRHZXRQYXJhbXtJc1Zpc2libGVGb3JDdXN0b21lcn0gLy89IDA7CgogICAgICAgICMgc3RvcmUgYWN0aW9uCiAgICAgICAgbXkgJUVycm9yOwoKICAgICAgICAjIGdldCBhbGwgYXR0YWNobWVudHMgbWV0YSBkYXRhCiAgICAgICAgbXkgQEF0dGFjaG1lbnRzID0gJFVwbG9hZENhY2hlT2JqZWN0LT5Gb3JtSURHZXRBbGxGaWxlc01ldGEoCiAgICAgICAgICAgIEZvcm1JRCA9PiAkU2VsZi0+e0Zvcm1JRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBHZXQgYW5kIHZhbGlkYXRlIGRyYWZ0IGFjdGlvbi4KICAgICAgICBteSAkRm9ybURyYWZ0QWN0aW9uID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0Zvcm1EcmFmdEFjdGlvbicgKTsKICAgICAgICBpZiAoICRGb3JtRHJhZnRBY3Rpb24gJiYgISRDb25maWctPntGb3JtRHJhZnR9ICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnRm9ybURyYWZ0IGZ1bmN0aW9uYWxpdHkgZGlzYWJsZWQhJyksCiAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBteSAlRm9ybURyYWZ0UmVzcG9uc2U7CgogICAgICAgICMgQ2hlY2sgZHJhZnQgbmFtZS4KICAgICAgICBpZiAoCiAgICAgICAgICAgICRGb3JtRHJhZnRBY3Rpb24KICAgICAgICAgICAgJiYgKCAkRm9ybURyYWZ0QWN0aW9uIGVxICdBZGQnIHx8ICRGb3JtRHJhZnRBY3Rpb24gZXEgJ1VwZGF0ZScgKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBteSAkVGl0bGUgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnRm9ybURyYWZ0VGl0bGUnICk7CgogICAgICAgICAgICAjIEEgZHJhZnQgbmFtZSBpcyByZXF1aXJlZC4KICAgICAgICAgICAgaWYgKCAhJFRpdGxlICkgewoKICAgICAgICAgICAgICAgICVGb3JtRHJhZnRSZXNwb25zZSA9ICgKICAgICAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpMYW5ndWFnZScpLT5UcmFuc2xhdGUoIkRyYWZ0IG5hbWUgaXMgcmVxdWlyZWQhIiksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIENob3NlbiBkcmFmdCBuYW1lIG11c3QgYmUgdW5pcXVlLgogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIG15ICRGb3JtRHJhZnRMaXN0ID0gJEZvcm1EcmFmdE9iamVjdC0+Rm9ybURyYWZ0TGlzdEdldCgKICAgICAgICAgICAgICAgICAgICBPYmplY3RUeXBlID0+ICdUaWNrZXQnLAogICAgICAgICAgICAgICAgICAgIE9iamVjdElEICAgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uICAgICA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICApIC8vIFtdOwoKICAgICAgICAgICAgICAgIERSQUZUOgogICAgICAgICAgICAgICAgZm9yIG15ICRGb3JtRHJhZnQgKCBAeyRGb3JtRHJhZnRMaXN0fSApIHsKCiAgICAgICAgICAgICAgICAgICAgIyBObyBleGlzdGluZyBkcmFmdCB3aXRoIHNhbWUgbmFtZS4KICAgICAgICAgICAgICAgICAgICBuZXh0IERSQUZUIGlmICRUaXRsZSBuZSAkRm9ybURyYWZ0LT57VGl0bGV9OwoKICAgICAgICAgICAgICAgICAgICAjIFNhbWUgbmFtZSBmb3IgdXBkYXRlIG9uIGV4aXN0aW5nIGRyYWZ0LgogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFte0Zvcm1EcmFmdElEfQogICAgICAgICAgICAgICAgICAgICAgICAmJiAkRm9ybURyYWZ0QWN0aW9uIGVxICdVcGRhdGUnCiAgICAgICAgICAgICAgICAgICAgICAgICYmICRHZXRQYXJhbXtGb3JtRHJhZnRJRH0gZXEgJEZvcm1EcmFmdC0+e0Zvcm1EcmFmdElEfQogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBuZXh0IERSQUZUOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgIyBBbm90aGVyIGRyYWZ0IHdpdGggdGhlIGNob3NlbiBuYW1lIGFscmVhZHkgZXhpc3RzLgogICAgICAgICAgICAgICAgICAgICVGb3JtRHJhZnRSZXNwb25zZSA9ICgKICAgICAgICAgICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Okxhbmd1YWdlJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+VHJhbnNsYXRlKCAiRm9ybURyYWZ0IG5hbWUgJXMgaXMgYWxyZWFkeSBpbiB1c2UhIiwgJFRpdGxlICksCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBsYXN0IERSQUZUOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIFBlcmZvcm0gZHJhZnQgYWN0aW9uIGluc3RlYWQgb2Ygc2F2aW5nIGZvcm0gZGF0YSBpbiB0aWNrZXQvYXJ0aWNsZS4KICAgICAgICBpZiAoICRGb3JtRHJhZnRBY3Rpb24gJiYgISVGb3JtRHJhZnRSZXNwb25zZSApIHsKCiAgICAgICAgICAgICMgUmVzZXQgRm9ybURyYWZ0SUQgdG8gcHJldmVudCB1cGRhdGluZyBleGlzdGluZyBkcmFmdC4KICAgICAgICAgICAgaWYgKCAkRm9ybURyYWZ0QWN0aW9uIGVxICdBZGQnICYmICRHZXRQYXJhbXtGb3JtRHJhZnRJRH0gKSB7CiAgICAgICAgICAgICAgICAkUGFyYW1PYmplY3QtPntRdWVyeX0tPnBhcmFtKAogICAgICAgICAgICAgICAgICAgIC1uYW1lICA9PiAnRm9ybURyYWZ0SUQnLAogICAgICAgICAgICAgICAgICAgIC12YWx1ZSA9PiAnJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRGb3JtRHJhZnRBY3Rpb25PazsKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJEZvcm1EcmFmdEFjdGlvbiBlcSAnQWRkJwogICAgICAgICAgICAgICAgfHwKICAgICAgICAgICAgICAgICggJEZvcm1EcmFmdEFjdGlvbiBlcSAnVXBkYXRlJyAmJiAkR2V0UGFyYW17Rm9ybURyYWZ0SUR9ICkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJEZvcm1EcmFmdEFjdGlvbk9rID0gJFBhcmFtT2JqZWN0LT5TYXZlRm9ybURyYWZ0KAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICBPYmplY3RUeXBlICAgICA9PiAnVGlja2V0JywKICAgICAgICAgICAgICAgICAgICBPYmplY3RJRCAgICAgICA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBPdmVycmlkZVBhcmFtcyA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJlcGx5VG9BcnRpY2xlID0+IHVuZGVmLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoJEZvcm1EcmFmdEFjdGlvbk9rKSB7CiAgICAgICAgICAgICAgICAkRm9ybURyYWZ0UmVzcG9uc2V7U3VjY2Vzc30gPSAxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJUZvcm1EcmFmdFJlc3BvbnNlID0gKAogICAgICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAnQ291bGQgbm90IHBlcmZvcm0gcmVxdWVzdGVkIGRyYWZ0IGFjdGlvbiEnLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCVGb3JtRHJhZnRSZXNwb25zZSkgewoKICAgICAgICAgICAgIyBidWlsZCBKU09OIG91dHB1dAogICAgICAgICAgICBteSAkSlNPTiA9ICRMYXlvdXRPYmplY3QtPkpTT05FbmNvZGUoCiAgICAgICAgICAgICAgICBEYXRhID0+IFwlRm9ybURyYWZ0UmVzcG9uc2UsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNlbmQgSlNPTiByZXNwb25zZQogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PScgLiAkTGF5b3V0T2JqZWN0LT57Q2hhcnNldH0sCiAgICAgICAgICAgICAgICBDb250ZW50ICAgICA9PiAkSlNPTiwKICAgICAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgICAgICAgICAgICAgTm9DYWNoZSAgICAgPT4gMSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IHN0YXRlIG9iamVjdAogICAgICAgIG15ICRTdGF0ZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTdGF0ZScpOwoKICAgICAgICAjIGNoZWNrIHBlbmRpbmcgdGltZQogICAgICAgIGlmICggJEdldFBhcmFte05ld1N0YXRlSUR9ICkgewogICAgICAgICAgICBteSAlU3RhdGVEYXRhID0gJFN0YXRlT2JqZWN0LT5TdGF0ZUdldCgKICAgICAgICAgICAgICAgIElEID0+ICRHZXRQYXJhbXtOZXdTdGF0ZUlEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgY2hlY2sgc3RhdGUgdHlwZQogICAgICAgICAgICBpZiAoICRTdGF0ZURhdGF7VHlwZU5hbWV9ID1+IC9ecGVuZGluZy9pICkgewoKICAgICAgICAgICAgICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICAgICAgICAgICAgICBmb3IgbXkgJE5lZWRlZCAocXcoWWVhciBNb250aCBEYXkgSG91ciBNaW51dGUpKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAhZGVmaW5lZCAkR2V0UGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRFcnJvcnsnRGF0ZUludmFsaWQnfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgY3JlYXRlIGRhdGV0aW1lIG9iamVjdAogICAgICAgICAgICAgICAgbXkgJFBlbmRpbmdEYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICBTZWNvbmQgPT4gMCwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIGdldCBjdXJyZW50IHN5c3RlbSBlcG9jaAogICAgICAgICAgICAgICAgbXkgJEN1clN5c3RlbURhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CgogICAgICAgICAgICAgICAgIyBjaGVjayBkYXRlCiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgISRQZW5kaW5nRGF0ZVRpbWVPYmplY3QKICAgICAgICAgICAgICAgICAgICB8fCAkUGVuZGluZ0RhdGVUaW1lT2JqZWN0IDwgJEN1clN5c3RlbURhdGVUaW1lT2JqZWN0CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnsnRGF0ZUludmFsaWQnfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICggJENvbmZpZy0+e05vdGV9ICYmICRDb25maWctPntOb3RlTWFuZGF0b3J5fSApIHsKCiAgICAgICAgICAgICMgY2hlY2sgc3ViamVjdAogICAgICAgICAgICBpZiAoICEkR2V0UGFyYW17U3ViamVjdH0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3J7J1N1YmplY3RJbnZhbGlkJ30gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGNoZWNrIGJvZHkKICAgICAgICAgICAgaWYgKCAhJEdldFBhcmFte0JvZHl9ICkgewogICAgICAgICAgICAgICAgJEVycm9yeydCb2R5SW52YWxpZCd9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBvd25lcgogICAgICAgIGlmICggJENvbmZpZy0+e093bmVyfSAmJiAkQ29uZmlnLT57T3duZXJNYW5kYXRvcnl9ICkgewogICAgICAgICAgICBpZiAoICEkR2V0UGFyYW17TmV3T3duZXJJRH0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3J7J05ld093bmVySW52YWxpZCd9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayByZXNwb25zaWJsZQogICAgICAgIGlmICggJENvbmZpZy0+e1Jlc3BvbnNpYmxlfSAmJiAkQ29uZmlnLT57UmVzcG9uc2libGVNYW5kYXRvcnl9ICkgewogICAgICAgICAgICBpZiAoICEkR2V0UGFyYW17TmV3UmVzcG9uc2libGVJRH0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3J7J05ld1Jlc3BvbnNpYmxlSW52YWxpZCd9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayB0aXRsZQogICAgICAgIGlmICggJENvbmZpZy0+e1RpdGxlfSAmJiAhJEdldFBhcmFte1RpdGxlfSApIHsKICAgICAgICAgICAgJEVycm9yeydUaXRsZUludmFsaWQnfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIHR5cGUKICAgICAgICBpZiAoCiAgICAgICAgICAgICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OlR5cGUnKSApCiAgICAgICAgICAgICYmCiAgICAgICAgICAgICggJENvbmZpZy0+e1RpY2tldFR5cGV9ICkgJiYKICAgICAgICAgICAgKCAhJEdldFBhcmFte1R5cGVJRH0gKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkRXJyb3J7J1R5cGVJREludmFsaWQnfSA9ICcgU2VydmVyRXJyb3InOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBzZXJ2aWNlCiAgICAgICAgaWYgKAogICAgICAgICAgICAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6U2VydmljZScpCiAgICAgICAgICAgICYmICRDb25maWctPntTZXJ2aWNlfQogICAgICAgICAgICAmJiAkR2V0UGFyYW17U0xBSUR9CiAgICAgICAgICAgICYmICEkR2V0UGFyYW17U2VydmljZUlEfQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkRXJyb3J7J1NlcnZpY2VJbnZhbGlkJ30gPSAnIFNlcnZlckVycm9yJzsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgbWFuZGF0b3J5IHNlcnZpY2UKICAgICAgICBpZiAoCiAgICAgICAgICAgICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpTZXJ2aWNlJykKICAgICAgICAgICAgJiYgJENvbmZpZy0+e1NlcnZpY2V9CiAgICAgICAgICAgICYmICRDb25maWctPntTZXJ2aWNlTWFuZGF0b3J5fQogICAgICAgICAgICAmJiAhJEdldFBhcmFte1NlcnZpY2VJRH0KICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJEVycm9yeydTZXJ2aWNlSW52YWxpZCd9ID0gJyBTZXJ2ZXJFcnJvcic7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIG1hbmRhdG9yeSBzbGEKICAgICAgICBpZiAoCiAgICAgICAgICAgICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpTZXJ2aWNlJykKICAgICAgICAgICAgJiYgJENvbmZpZy0+e1NlcnZpY2V9CiAgICAgICAgICAgICYmICRDb25maWctPntTTEFNYW5kYXRvcnl9CiAgICAgICAgICAgICYmICEkR2V0UGFyYW17U0xBSUR9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRFcnJvcnsnU0xBSW52YWxpZCd9ID0gJyBTZXJ2ZXJFcnJvcic7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIG1hbmRhdG9yeSBxdWV1ZQogICAgICAgIGlmICggJENvbmZpZy0+e1F1ZXVlfSAmJiAkQ29uZmlnLT57UXVldWVNYW5kYXRvcnl9ICkgewogICAgICAgICAgICBpZiAoICEkR2V0UGFyYW17TmV3UXVldWVJRH0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3J7J05ld1F1ZXVlSW52YWxpZCd9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBtYW5kYXRvcnkgc3RhdGUKICAgICAgICBpZiAoICRDb25maWctPntTdGF0ZX0gJiYgJENvbmZpZy0+e1N0YXRlTWFuZGF0b3J5fSApIHsKICAgICAgICAgICAgaWYgKCAhJEdldFBhcmFte05ld1N0YXRlSUR9ICkgewogICAgICAgICAgICAgICAgJEVycm9yeydOZXdTdGF0ZUludmFsaWQnfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgY2hlY2sgdGltZSB1bml0cywgYnV0IG9ubHkgaWYgdGhlIGN1cnJlbnQgc2NyZWVuIGhhcyBhIG5vdGUKICAgICAgICAjICAgKGFjY291bnRlZCB0aW1lIGNhbiBvbmx5IGJlIHN0b3JlZCBpZiBhbmQgYXJ0aWNsZSBpcyBnZW5lcmF0ZWQpCiAgICAgICAgaWYgKAogICAgICAgICAgICAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6Ok5lZWRBY2NvdW50ZWRUaW1lJykKICAgICAgICAgICAgJiYgJENvbmZpZy0+e05vdGV9CiAgICAgICAgICAgICYmICRHZXRQYXJhbXtUaW1lVW5pdHN9IGVxICcnCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRFcnJvcnsnVGltZVVuaXRzSW52YWxpZCd9ID0gJyBTZXJ2ZXJFcnJvcic7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGV4cGFuZAogICAgICAgIGlmICggJEdldFBhcmFte0V4cGFuZH0gKSB7CiAgICAgICAgICAgICVFcnJvciA9ICgpOwogICAgICAgICAgICAkRXJyb3J7RXhwYW5kfSA9IDE7CiAgICAgICAgfQoKICAgICAgICBpZiAoICRDb25maWctPntDdXN0b21lclVzZXJ9ICYmICRDb25maWctPntDdXN0b21lclVzZXJNYW5kYXRvcnl9ICkgewoKICAgICAgICAgICAgIyBjaGVjayBpZiBlaXRoZXIgZGlzcGxheSBuYW1lIG9mIGN1c3RvbWVyIHVzZXIgb3IgY3VzdG9tZXIgdXNlciBsb2dpbiB2YWx1ZSB3YXMgZm91bmQKICAgICAgICAgICAgaWYgKCAhJEdldFBhcmFte0N1c3RvbWVyVXNlcklEfSB8fCAhJEdldFBhcmFte1NlbGVjdGVkQ3VzdG9tZXJVc2VyfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnsnQ3VzdG9tZXJVc2VySURJbnZhbGlkJ30gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGNyZWF0ZSBodG1sIHN0cmluZ3MgZm9yIGFsbCBkeW5hbWljIGZpZWxkcwogICAgICAgIG15IEBUaWNrZXRUeXBlRHluYW1pY0ZpZWxkczsKICAgICAgICBteSBAQXJ0aWNsZVR5cGVEeW5hbWljRmllbGRzOwoKICAgICAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgICAgIERZTkFNSUNGSUVMRDoKICAgICAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7JER5bmFtaWNGaWVsZH0gKSB7CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKIyAtLS0KIyBabnVueS1QcmltYXJ5U2Vjb25kYXJ5CiMgLS0tCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICEkUHJpbWFyeVNlY29uZGFyeUFkdmFuY2VkRW5hYmxlZAogICAgICAgICAgICAgICAgJiYgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IGVxICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEOwogICAgICAgICAgICB9CiMgLS0tCgogICAgICAgICAgICBteSAkUG9zc2libGVWYWx1ZXNGaWx0ZXI7CgogICAgICAgICAgICBteSAkSXNBQ0xSZWR1Y2libGUgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIEJlaGF2aW9yICAgICAgICAgICA9PiAnSXNBQ0xSZWR1Y2libGUnLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCRJc0FDTFJlZHVjaWJsZSkgewoKICAgICAgICAgICAgICAgICMgZ2V0IFBvc3NpYmxlVmFsdWVzCiAgICAgICAgICAgICAgICBteSAkUG9zc2libGVWYWx1ZXMgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+UG9zc2libGVWYWx1ZXNHZXQoCiAgICAgICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgY2hlY2sgaWYgZmllbGQgaGFzIFBvc3NpYmxlVmFsdWVzIHByb3BlcnR5IGluIGl0cyBjb25maWd1cmF0aW9uCiAgICAgICAgICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCRQb3NzaWJsZVZhbHVlcykgKSB7CgogICAgICAgICAgICAgICAgICAgICMgY29udmVydCBwb3NzaWJsZSB2YWx1ZXMga2V5ID0+IHZhbHVlIHRvIGtleSA9PiBrZXkgZm9yIEFDTHMgdXNpbmcgYSBIYXNoIHNsaWNlCiAgICAgICAgICAgICAgICAgICAgbXkgJUFjbERhdGEgPSAleyRQb3NzaWJsZVZhbHVlc307CiAgICAgICAgICAgICAgICAgICAgQEFjbERhdGF7IGtleXMgJUFjbERhdGEgfSA9IGtleXMgJUFjbERhdGE7CgogICAgICAgICAgICAgICAgICAgICMgc2V0IHBvc3NpYmxlIHZhbHVlcyBmaWx0ZXIgZnJvbSBBQ0xzCiAgICAgICAgICAgICAgICAgICAgbXkgJEFDTCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEFjbCgKICAgICAgICAgICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICBBY3Rpb24gICAgICAgID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuVHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuU3ViVHlwZSA9PiAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0sCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgICAgPT4gXCVBY2xEYXRhLAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGlmICgkQUNMKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG15ICVGaWx0ZXIgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRBY2xEYXRhKCk7CgogICAgICAgICAgICAgICAgICAgICAgICAjIGNvbnZlcnQgRmlsZXIga2V5ID0+IGtleSBiYWNrIHRvIGtleSA9PiB2YWx1ZSB1c2luZyBtYXAKICAgICAgICAgICAgICAgICAgICAgICAgJXskUG9zc2libGVWYWx1ZXNGaWx0ZXJ9ID0gbWFwIHsgJF8gPT4gJFBvc3NpYmxlVmFsdWVzLT57JF99IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleXMgJUZpbHRlcjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRWYWxpZGF0aW9uUmVzdWx0OwojIC0tLQojIFpudW55LVByaW1hcnlTZWNvbmRhcnkKIyAtLS0KICAgICAgICAgICAgaWYgKCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gZXEgJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGQgKSB7CiAgICAgICAgICAgICAgICRQb3NzaWJsZVZhbHVlc0ZpbHRlciA9ICRTZWxmLT5fR2V0UHJpbWFyeVNlY29uZGFyeURhdGEoCiAgICAgICAgICAgICAgICBUaWNrZXQgPT4gXCVUaWNrZXQsCiAgICAgICAgICAgICAgICBQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkID0+ICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkLAogICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiMgLS0tCgogICAgICAgICAgICAjIERvIG5vdCB2YWxpZGF0ZSBvbmx5IGlmIG9iamVjdCB0eXBlIGlzIEFydGljbGUgYW5kIENyZWF0ZUFydGljbGUgdmFsdWUgaXMgbm90IGRlZmluZWQuCiAgICAgICAgICAgIGlmICggISggJER5bmFtaWNGaWVsZENvbmZpZy0+e09iamVjdFR5cGV9IGVxICdBcnRpY2xlJyAmJiAhJEdldFBhcmFte0NyZWF0ZUFydGljbGV9ICkgKSB7CgogICAgICAgICAgICAgICAgJFZhbGlkYXRpb25SZXN1bHQgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+RWRpdEZpZWxkVmFsdWVWYWxpZGF0ZSgKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgICAgIFBvc3NpYmxlVmFsdWVzRmlsdGVyID0+ICRQb3NzaWJsZVZhbHVlc0ZpbHRlciwKICAgICAgICAgICAgICAgICAgICBQYXJhbU9iamVjdCAgICAgICAgICA9PiAkUGFyYW1PYmplY3QsCiAgICAgICAgICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4KICAgICAgICAgICAgICAgICAgICAgICAgJENvbmZpZy0+e0R5bmFtaWNGaWVsZH0tPnsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gPT0gMiwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJFZhbGlkYXRpb25SZXN1bHQpICkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NvdWxkIG5vdCBwZXJmb3JtIHZhbGlkYXRpb24gb24gZmllbGQgJXMhJywgJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBQcm9wYWdhdGUgdmFsaWRhdGlvbiBlcnJvciB0byB0aGUgRXJyb3IgdmFyaWFibGUgdG8gYmUgZGV0ZWN0ZWQgYnkgdGhlIGZyb250ZW5kLgogICAgICAgICAgICAgICAgaWYgKCAkVmFsaWRhdGlvblJlc3VsdC0+e1NlcnZlckVycm9yfSApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9ICcgU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoICREeW5hbWljRmllbGRDb25maWctPntPYmplY3RUeXBlfSBlcSAnVGlja2V0JyApIHsKCiAgICAgICAgICAgICAgICAjIEdldCBmaWVsZCBodG1sLgogICAgICAgICAgICAgICAgbXkgJER5bmFtaWNGaWVsZEhUTUwgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+RWRpdEZpZWxkUmVuZGVyKAogICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICAgICAgUG9zc2libGVWYWx1ZXNGaWx0ZXIgPT4gJFBvc3NpYmxlVmFsdWVzRmlsdGVyLAogICAgICAgICAgICAgICAgICAgIFNlcnZlckVycm9yICAgICAgICAgID0+ICRWYWxpZGF0aW9uUmVzdWx0LT57U2VydmVyRXJyb3J9ICB8fCAnJywKICAgICAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgICAgICAgICA9PiAkVmFsaWRhdGlvblJlc3VsdC0+e0Vycm9yTWVzc2FnZX0gfHwgJycsCiAgICAgICAgICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gJENvbmZpZy0+e0R5bmFtaWNGaWVsZH0tPnsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gPT0gMiwKICAgICAgICAgICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgICA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICAgICAgICAgICAgIFBhcmFtT2JqZWN0ICAgICAgICAgID0+ICRQYXJhbU9iamVjdCwKICAgICAgICAgICAgICAgICAgICBBSkFYVXBkYXRlICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgICAgIFVwZGF0YWJsZUZpZWxkcyAgICAgID0+ICRTZWxmLT5fR2V0RmllbGRzVG9VcGRhdGUoKSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgcHVzaCBAVGlja2V0VHlwZUR5bmFtaWNGaWVsZHMsIHsKICAgICAgICAgICAgICAgICAgICBOYW1lICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0sCiAgICAgICAgICAgICAgICAgICAgTGFiZWwgPT4gJER5bmFtaWNGaWVsZEhUTUwtPntMYWJlbH0sCiAgICAgICAgICAgICAgICAgICAgRmllbGQgPT4gJER5bmFtaWNGaWVsZEhUTUwtPntGaWVsZH0sCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJER5bmFtaWNGaWVsZENvbmZpZy0+e09iamVjdFR5cGV9IGVxICdBcnRpY2xlJyApIHsKICAgICAgICAgICAgICAgIG15ICRDbGFzcyAgICAgICAgICAgID0gJyc7CiAgICAgICAgICAgICAgICBteSAkTWFuZGF0b3J5VG9vbHRpcCA9IDA7CgogICAgICAgICAgICAgICAgaWYgKCAkQ29uZmlnLT57RHluYW1pY0ZpZWxkfS0+eyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9PSAyICkgewogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgJENvbmZpZy0+e05vdGVNYW5kYXRvcnl9IHx8CiAgICAgICAgICAgICAgICAgICAgICAgICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpGcm9udGVuZDo6TmVlZEFjY291bnRlZFRpbWUnKQogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAkQ2xhc3MgPSAnVmFsaWRhdGVfUmVxdWlyZWQnOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJENsYXNzICAgICAgICAgICAgPSAnVmFsaWRhdGVfRGVwZW5kaW5nUmVxdWlyZWRBTkQgVmFsaWRhdGVfRGVwZW5kaW5nX0NyZWF0ZUFydGljbGUnOwogICAgICAgICAgICAgICAgICAgICAgICAkTWFuZGF0b3J5VG9vbHRpcCA9IDE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgR2V0IGZpZWxkIGh0bWwuCiAgICAgICAgICAgICAgICBteSAkRHluYW1pY0ZpZWxkSFRNTCA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5FZGl0RmllbGRSZW5kZXIoCiAgICAgICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICAgICBQb3NzaWJsZVZhbHVlc0ZpbHRlciA9PiAkUG9zc2libGVWYWx1ZXNGaWx0ZXIsCiAgICAgICAgICAgICAgICAgICAgU2VydmVyRXJyb3IgICAgICAgICAgPT4gJFZhbGlkYXRpb25SZXN1bHQtPntTZXJ2ZXJFcnJvcn0gIHx8ICcnLAogICAgICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSAgICAgICAgID0+ICRWYWxpZGF0aW9uUmVzdWx0LT57RXJyb3JNZXNzYWdlfSB8fCAnJywKICAgICAgICAgICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAoICRDbGFzcyBlcSAnVmFsaWRhdGVfUmVxdWlyZWQnICkgPyAxIDogMCwKICAgICAgICAgICAgICAgICAgICBDbGFzcyAgICAgICAgICAgICAgICA9PiAkQ2xhc3MsCiAgICAgICAgICAgICAgICAgICAgTGF5b3V0T2JqZWN0ICAgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICAgICAgICAgICAgICBQYXJhbU9iamVjdCAgICAgICAgICA9PiAkUGFyYW1PYmplY3QsCiAgICAgICAgICAgICAgICAgICAgQUpBWFVwZGF0ZSAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgICAgICBVcGRhdGFibGVGaWVsZHMgICAgICA9PiAkU2VsZi0+X0dldEZpZWxkc1RvVXBkYXRlKCksCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIHB1c2ggQEFydGljbGVUeXBlRHluYW1pY0ZpZWxkcywgewogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgIExhYmVsICAgICAgICAgICAgPT4gJER5bmFtaWNGaWVsZEhUTUwtPntMYWJlbH0sCiAgICAgICAgICAgICAgICAgICAgRmllbGQgICAgICAgICAgICA9PiAkRHluYW1pY0ZpZWxkSFRNTC0+e0ZpZWxkfSwKICAgICAgICAgICAgICAgICAgICBNYW5kYXRvcnlUb29sdGlwID0+ICRNYW5kYXRvcnlUb29sdGlwLAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBNYWtlIHN1cmUgd2UgZG9uJ3Qgc2F2ZSBmb3JtIGlmIGEgZHJhZnQgd2FzIGxvYWRlZC4KICAgICAgICBpZiAoICRTZWxmLT57TG9hZGVkRm9ybURyYWZ0SUR9ICkgewogICAgICAgICAgICAlRXJyb3IgPSAoIExvYWRlZEZvcm1EcmFmdCA9PiAxICk7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGVycm9ycwogICAgICAgIGlmICglRXJyb3IpIHsKCiAgICAgICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgICAgICAgICBUeXBlICAgICAgPT4gJ1NtYWxsJywKICAgICAgICAgICAgICAgIFZhbHVlICAgICA9PiAkVGlja2V0e1RpY2tldE51bWJlcn0sCiAgICAgICAgICAgICAgICBCb2R5Q2xhc3MgPT4gJ1BvcHVwJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+X01hc2soCiAgICAgICAgICAgICAgICBBdHRhY2htZW50cyAgICAgICA9PiBcQEF0dGFjaG1lbnRzLAogICAgICAgICAgICAgICAgVGltZVVuaXRzUmVxdWlyZWQgPT4gKAogICAgICAgICAgICAgICAgICAgICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpGcm9udGVuZDo6TmVlZEFjY291bnRlZFRpbWUnKQogICAgICAgICAgICAgICAgICAgID8gJ1ZhbGlkYXRlX1JlcXVpcmVkJwogICAgICAgICAgICAgICAgICAgIDogJycKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAlVGlja2V0LAogICAgICAgICAgICAgICAgVGlja2V0VHlwZUR5bmFtaWNGaWVsZHMgID0+IFxAVGlja2V0VHlwZUR5bmFtaWNGaWVsZHMsCiAgICAgICAgICAgICAgICBBcnRpY2xlVHlwZUR5bmFtaWNGaWVsZHMgPT4gXEBBcnRpY2xlVHlwZUR5bmFtaWNGaWVsZHMsCgogICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgJUVycm9yLAogICAgICAgICAgICApOwogICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigKICAgICAgICAgICAgICAgIFR5cGUgPT4gJ1NtYWxsJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICAgICAgfQoKICAgICAgICAjIEN1c3RvbWVyVXNlcklEIGluIGZvcm0gaXMgYWN0dWFsbHkgZGlzcGxheSBuYW1lCiAgICAgICAgIyBidXQgbG9naW4gdmFsdWUgbmVlZHMgdG8gYmUgc2F2ZWQgaW5zdGVhZAogICAgICAgICRHZXRQYXJhbXtDdXN0b21lclVzZXJJRH0gPSAkR2V0UGFyYW17U2VsZWN0ZWRDdXN0b21lclVzZXJ9OwoKICAgICAgICBpZiAoCiAgICAgICAgICAgICRDb25maWctPntDdXN0b21lclVzZXJ9CiAgICAgICAgICAgICYmICgKICAgICAgICAgICAgICAgICggJFRpY2tldHtDdXN0b21lclVzZXJJRH0gfHwgJycgKSBuZSAkR2V0UGFyYW17Q3VzdG9tZXJVc2VySUR9CiAgICAgICAgICAgICAgICB8fCAoICRUaWNrZXR7Q3VzdG9tZXJJRH0gfHwgJycgKSBuZSAkR2V0UGFyYW17Q3VzdG9tZXJJRH0KICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5UaWNrZXRDdXN0b21lclNldCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICAgICAgTm8gICAgICAgPT4gJEdldFBhcmFte0N1c3RvbWVySUR9LAogICAgICAgICAgICAgICAgVXNlciAgICAgPT4gJEdldFBhcmFte0N1c3RvbWVyVXNlcklEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2V0IG5ldyB0aXRsZQogICAgICAgIGlmICggJENvbmZpZy0+e1RpdGxlfSApIHsKICAgICAgICAgICAgaWYgKCBkZWZpbmVkICRHZXRQYXJhbXtUaXRsZX0gKSB7CiAgICAgICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5UaWNrZXRUaXRsZVVwZGF0ZSgKICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICA9PiAkR2V0UGFyYW17VGl0bGV9LAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgc2V0IG5ldyB0eXBlCiAgICAgICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6VHlwZScpICYmICRDb25maWctPntUaWNrZXRUeXBlfSApIHsKICAgICAgICAgICAgaWYgKCAkR2V0UGFyYW17VHlwZUlEfSApIHsKICAgICAgICAgICAgICAgICRUaWNrZXRPYmplY3QtPlRpY2tldFR5cGVTZXQoCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uICAgPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgICAgICAgICAgICAgIFR5cGVJRCAgID0+ICRHZXRQYXJhbXtUeXBlSUR9LAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgc2V0IG5ldyBzZXJ2aWNlCiAgICAgICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6U2VydmljZScpICYmICRDb25maWctPntTZXJ2aWNlfSApIHsKICAgICAgICAgICAgaWYgKCBkZWZpbmVkICRHZXRQYXJhbXtTZXJ2aWNlSUR9ICkgewogICAgICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0U2VydmljZVNldCgKICAgICAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICAgICAgJUFDTENvbXBhdEdldFBhcmFtLAogICAgICAgICAgICAgICAgICAgIEFjdGlvbiAgICA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgICAgICAgICAgICAgU2VydmljZUlEID0+ICRHZXRQYXJhbXtTZXJ2aWNlSUR9LAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIGRlZmluZWQgJEdldFBhcmFte1NMQUlEfSApIHsKICAgICAgICAgICAgICAgICRUaWNrZXRPYmplY3QtPlRpY2tldFNMQVNldCgKICAgICAgICAgICAgICAgICAgICBBY3Rpb24gICA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgICAgICAgICAgICAgU0xBSUQgICAgPT4gJEdldFBhcmFte1NMQUlEfSwKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBteSAkVW5sb2NrT25Bd2F5ID0gMTsKCiAgICAgICAgIyBtb3ZlIHRpY2tldCB0byBhIG5ldyBxdWV1ZSwgYnV0IG9ubHkgaWYgdGhlIHF1ZXVlIHdhcyBjaGFuZ2VkCiAgICAgICAgaWYgKAogICAgICAgICAgICAkQ29uZmlnLT57UXVldWV9CiAgICAgICAgICAgICYmICRHZXRQYXJhbXtOZXdRdWV1ZUlEfQogICAgICAgICAgICAmJiAkR2V0UGFyYW17TmV3UXVldWVJRH0gbmUgJFRpY2tldHtRdWV1ZUlEfQogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgIyBtb3ZlIHRpY2tldCAoc2VuZCBub3RpZmljYXRpb24gaWYgbm8gbmV3IG93bmVyIGlzIHNlbGVjdGVkKQogICAgICAgICAgICBteSAkQm9keUFzVGV4dCA9ICcnOwogICAgICAgICAgICBpZiAoICRMYXlvdXRPYmplY3QtPntCcm93c2VyUmljaFRleHR9ICkgewogICAgICAgICAgICAgICAgJEJvZHlBc1RleHQgPSAkTGF5b3V0T2JqZWN0LT5SaWNoVGV4dDJBc2NpaSgKICAgICAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJEdldFBhcmFte0JvZHl9IHx8IDAsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJEJvZHlBc1RleHQgPSAkR2V0UGFyYW17Qm9keX0gfHwgMDsKICAgICAgICAgICAgfQogICAgICAgICAgICBteSAkTW92ZSA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFF1ZXVlU2V0KAogICAgICAgICAgICAgICAgUXVldWVJRCAgICAgICAgICAgID0+ICRHZXRQYXJhbXtOZXdRdWV1ZUlEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBTZW5kTm9Ob3RpZmljYXRpb24gPT4gJEdldFBhcmFte05ld1VzZXJJRH0sCiAgICAgICAgICAgICAgICBDb21tZW50ICAgICAgICAgICAgPT4gJEJvZHlBc1RleHQsCiAgICAgICAgICAgICAgICBBY3Rpb24gICAgICAgICAgICAgPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoICEkTW92ZSApIHsKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHNldCBuZXcgb3duZXIKICAgICAgICBteSBATm90aWZ5RG9uZTsKICAgICAgICBpZiAoICRDb25maWctPntPd25lcn0gKSB7CiAgICAgICAgICAgIG15ICRCb2R5VGV4dCA9ICRMYXlvdXRPYmplY3QtPlJpY2hUZXh0MkFzY2lpKAogICAgICAgICAgICAgICAgU3RyaW5nID0+ICRHZXRQYXJhbXtCb2R5fSB8fCAnJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCAkR2V0UGFyYW17TmV3T3duZXJJRH0gKSB7CiAgICAgICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICdsb2NrJywKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRPd25lclNldCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICBOZXdVc2VySUQgPT4gJEdldFBhcmFte05ld093bmVySUR9LAogICAgICAgICAgICAgICAgICAgIENvbW1lbnQgICA9PiAkQm9keVRleHQsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJFVubG9ja09uQXdheSA9IDA7CgogICAgICAgICAgICAgICAgIyByZW1lbWJlciB0byBub3Qgbm90aWZ5IG93bmVyIHR3aWNlCiAgICAgICAgICAgICAgICBpZiAoICRTdWNjZXNzICYmICRTdWNjZXNzIGVxIDEgKSB7CiAgICAgICAgICAgICAgICAgICAgcHVzaCBATm90aWZ5RG9uZSwgJEdldFBhcmFte05ld093bmVySUR9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHNldCBuZXcgcmVzcG9uc2libGUKICAgICAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpSZXNwb25zaWJsZScpICYmICRDb25maWctPntSZXNwb25zaWJsZX0gKSB7CiAgICAgICAgICAgIGlmICggJEdldFBhcmFte05ld1Jlc3BvbnNpYmxlSUR9ICkgewogICAgICAgICAgICAgICAgbXkgJEJvZHlUZXh0ID0gJExheW91dE9iamVjdC0+UmljaFRleHQyQXNjaWkoCiAgICAgICAgICAgICAgICAgICAgU3RyaW5nID0+ICRHZXRQYXJhbXtCb2R5fSB8fCAnJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFJlc3BvbnNpYmxlU2V0KAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgIE5ld1VzZXJJRCA9PiAkR2V0UGFyYW17TmV3UmVzcG9uc2libGVJRH0sCiAgICAgICAgICAgICAgICAgICAgQ29tbWVudCAgID0+ICRCb2R5VGV4dCwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyByZW1lbWJlciB0byBub3Qgbm90aWZ5IHJlc3BvbnNpYmxlIHR3aWNlCiAgICAgICAgICAgICAgICBpZiAoICRTdWNjZXNzICYmICRTdWNjZXNzIGVxIDEgKSB7CiAgICAgICAgICAgICAgICAgICAgcHVzaCBATm90aWZ5RG9uZSwgJEdldFBhcmFte05ld1Jlc3BvbnNpYmxlSUR9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGFkZCBub3RlCiAgICAgICAgbXkgJEFydGljbGVJRCA9ICcnOwogICAgICAgIG15ICRSZXR1cm5VUkw7CgogICAgICAgICMgc2V0IHByaW9yaXR5CiAgICAgICAgaWYgKCAkQ29uZmlnLT57UHJpb3JpdHl9ICYmICRHZXRQYXJhbXtOZXdQcmlvcml0eUlEfSApIHsKICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0UHJpb3JpdHlTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICAgICAgUHJpb3JpdHlJRCA9PiAkR2V0UGFyYW17TmV3UHJpb3JpdHlJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2V0IHN0YXRlCiAgICAgICAgaWYgKCAkQ29uZmlnLT57U3RhdGV9ICYmICRHZXRQYXJhbXtOZXdTdGF0ZUlEfSApIHsKICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0U3RhdGVTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBTdGF0ZUlEICAgICAgPT4gJEdldFBhcmFte05ld1N0YXRlSUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZCA9PiAkR2V0UGFyYW17RHluYW1pY0ZpZWxkfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgdW5sb2NrIHRoZSB0aWNrZXQgYWZ0ZXIgY2xvc2UKICAgICAgICAgICAgbXkgJVN0YXRlRGF0YSA9ICRTdGF0ZU9iamVjdC0+U3RhdGVHZXQoCiAgICAgICAgICAgICAgICBJRCA9PiAkR2V0UGFyYW17TmV3U3RhdGVJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNldCB1bmxvY2sgb24gY2xvc2Ugc3RhdGUKICAgICAgICAgICAgaWYgKCAkU3RhdGVEYXRhe1R5cGVOYW1lfSA9fiAvXmNsb3NlL2kgKSB7CiAgICAgICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICd1bmxvY2snLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgc2V0IHBlbmRpbmcgdGltZSBvbiBwZW5kaW5nIHN0YXRlCiAgICAgICAgICAgIGVsc2lmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15wZW5kaW5nL2kgKSB7CgogICAgICAgICAgICAgICAgIyBzZXQgcGVuZGluZyB0aW1lCiAgICAgICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5UaWNrZXRQZW5kaW5nVGltZVNldCgKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyByZWRpcmVjdCBwYXJlbnQgd2luZG93IHRvIGxhc3Qgc2NyZWVuIG92ZXJ2aWV3IG9uIGNsb3NlZCB0aWNrZXRzCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRTdGF0ZURhdGF7VHlwZU5hbWV9ID1+IC9eY2xvc2UvaQogICAgICAgICAgICAgICAgJiYgISRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpGcm9udGVuZDo6UmVkaXJlY3RBZnRlckNsb3NlRGlzYWJsZWQnKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkUmV0dXJuVVJMID0gJFNlbGYtPntMYXN0U2NyZWVuT3ZlcnZpZXd9IHx8ICdBY3Rpb249QWdlbnREYXNoYm9hcmQnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoCiAgICAgICAgICAgICRHZXRQYXJhbXtDcmVhdGVBcnRpY2xlfQogICAgICAgICAgICAmJiAkQ29uZmlnLT57Tm90ZX0KICAgICAgICAgICAgJiYgKCAkR2V0UGFyYW17U3ViamVjdH0gfHwgJEdldFBhcmFte0JvZHl9ICkKICAgICAgICAgICAgKQogICAgICAgIHsKCiAgICAgICAgICAgIGlmICggISRHZXRQYXJhbXtTdWJqZWN0fSApIHsKICAgICAgICAgICAgICAgIGlmICggJENvbmZpZy0+e1N1YmplY3R9ICkgewogICAgICAgICAgICAgICAgICAgIG15ICRTdWJqZWN0ID0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICAgICAgICAgICAgICBUZW1wbGF0ZSA9PiAkQ29uZmlnLT57U3ViamVjdH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17U3ViamVjdH0gPSAkU3ViamVjdDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRHZXRQYXJhbXtTdWJqZWN0fSA9ICRHZXRQYXJhbXtTdWJqZWN0fQogICAgICAgICAgICAgICAgICAgIHx8ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnTm8gc3ViamVjdCcpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGdldCBwcmUgbG9hZGVkIGF0dGFjaG1lbnQKICAgICAgICAgICAgbXkgQEF0dGFjaG1lbnRzID0gJFVwbG9hZENhY2hlT2JqZWN0LT5Gb3JtSURHZXRBbGxGaWxlc0RhdGEoCiAgICAgICAgICAgICAgICBGb3JtSUQgPT4gJFNlbGYtPntGb3JtSUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBnZXQgc3VibWl0IGF0dGFjaG1lbnQKICAgICAgICAgICAgbXkgJVVwbG9hZFN0dWZmID0gJFBhcmFtT2JqZWN0LT5HZXRVcGxvYWRBbGwoCiAgICAgICAgICAgICAgICBQYXJhbSA9PiAnRmlsZVVwbG9hZCcsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICglVXBsb2FkU3R1ZmYpIHsKICAgICAgICAgICAgICAgIHB1c2ggQEF0dGFjaG1lbnRzLCBcJVVwbG9hZFN0dWZmOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkTWltZVR5cGUgPSAndGV4dC9wbGFpbic7CiAgICAgICAgICAgIGlmICggJExheW91dE9iamVjdC0+e0Jyb3dzZXJSaWNoVGV4dH0gKSB7CiAgICAgICAgICAgICAgICAkTWltZVR5cGUgPSAndGV4dC9odG1sJzsKCiAgICAgICAgICAgICAgICAjIHJlbW92ZSB1bnVzZWQgaW5saW5lIGltYWdlcwogICAgICAgICAgICAgICAgbXkgQE5ld0F0dGFjaG1lbnREYXRhOwogICAgICAgICAgICAgICAgQVRUQUNITUVOVDoKICAgICAgICAgICAgICAgIGZvciBteSAkQXR0YWNobWVudCAoQEF0dGFjaG1lbnRzKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJENvbnRlbnRJRCA9ICRBdHRhY2htZW50LT57Q29udGVudElEfTsKICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICRDb250ZW50SUQKICAgICAgICAgICAgICAgICAgICAgICAgJiYgKCAkQXR0YWNobWVudC0+e0NvbnRlbnRUeXBlfSA9fiAvaW1hZ2UvaSApCiAgICAgICAgICAgICAgICAgICAgICAgICYmICggJEF0dGFjaG1lbnQtPntEaXNwb3NpdGlvbn0gZXEgJ2lubGluZScgKQogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBteSAkQ29udGVudElESFRNTFF1b3RlID0gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHQgPT4gJENvbnRlbnRJRCwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgd29ya2Fyb3VuZCBmb3IgbGluayBlbmNvZGUgb2YgcmljaCB0ZXh0IGVkaXRvciwgc2VlIGJ1ZyM1MDUzCiAgICAgICAgICAgICAgICAgICAgICAgIG15ICRDb250ZW50SURMaW5rRW5jb2RlID0gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkQ29udGVudElEKTsKICAgICAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFte0JvZHl9ID1+IHMvKENvbnRlbnRJRD0pJENvbnRlbnRJRExpbmtFbmNvZGUvJDEkQ29udGVudElEL2c7CgogICAgICAgICAgICAgICAgICAgICAgICAjIGlnbm9yZSBhdHRhY2htZW50IGlmIG5vdCBsaW5rZWQgaW4gYm9keQogICAgICAgICAgICAgICAgICAgICAgICBuZXh0IEFUVEFDSE1FTlQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICRHZXRQYXJhbXtCb2R5fSAhfiAvKFxRJENvbnRlbnRJREhUTUxRdW90ZVxFfFxRJENvbnRlbnRJRFxFKS9pOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgIyByZW1lbWJlciBpbmxpbmUgaW1hZ2VzIGFuZCBub3JtYWwgYXR0YWNobWVudHMKICAgICAgICAgICAgICAgICAgICBwdXNoIEBOZXdBdHRhY2htZW50RGF0YSwgXCV7JEF0dGFjaG1lbnR9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgQEF0dGFjaG1lbnRzID0gQE5ld0F0dGFjaG1lbnREYXRhOwoKICAgICAgICAgICAgICAgICMgdmVyaWZ5IGh0bWwgZG9jdW1lbnQKICAgICAgICAgICAgICAgICRHZXRQYXJhbXtCb2R5fSA9ICRMYXlvdXRPYmplY3QtPlJpY2hUZXh0RG9jdW1lbnRDb21wbGV0ZSgKICAgICAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJEdldFBhcmFte0JvZHl9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbXkgJEZyb20gPSAiXCIkU2VsZi0+e1VzZXJGdWxsbmFtZX1cIiA8JFNlbGYtPntVc2VyRW1haWx9PiI7CiAgICAgICAgICAgIG15IEBOb3RpZnlVc2VySURzOwoKICAgICAgICAgICAgIyBnZXQgbGlzdCBvZiB1c2VycyB0aGF0IHdpbGwgYmUgaW5mb3JtZWQgd2l0aG91dCBzZWxlY3Rpb24gaW4gaW5mb3JtZWQvaW52b2x2ZWQgbGlzdAogICAgICAgICAgICBteSBAVXNlckxpc3RXaXRob3V0U2VsZWN0aW9uCiAgICAgICAgICAgICAgICA9IHNwbGl0KCAnLCcsICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdVc2VyTGlzdFdpdGhvdXRTZWxlY3Rpb24nICkgfHwgIiIgKTsKCiAgICAgICAgICAgICMgZ2V0IGluZm9ybSB1c2VyIGxpc3QKICAgICAgICAgICAgbXkgQEluZm9ybVVzZXJJRCA9ICRQYXJhbU9iamVjdC0+R2V0QXJyYXkoIFBhcmFtID0+ICdJbmZvcm1Vc2VySUQnICk7CgogICAgICAgICAgICAjIGdldCBpbnZvbHZlZCB1c2VyIGxpc3QKICAgICAgICAgICAgbXkgQEludm9sdmVkVXNlcklEID0gJFBhcmFtT2JqZWN0LT5HZXRBcnJheSggUGFyYW0gPT4gJ0ludm9sdmVkVXNlcklEJyApOwoKICAgICAgICAgICAgaWYgKCAkQ29uZmlnLT57SW5mb3JtQWdlbnR9ICkgewogICAgICAgICAgICAgICAgcHVzaCBATm90aWZ5VXNlcklEcywgQEluZm9ybVVzZXJJRDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCAkQ29uZmlnLT57SW52b2x2ZWRBZ2VudH0gKSB7CiAgICAgICAgICAgICAgICBwdXNoIEBOb3RpZnlVc2VySURzLCBASW52b2x2ZWRVc2VySUQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICggJFNlbGYtPntSZXBseVRvQXJ0aWNsZX0gKSB7CiAgICAgICAgICAgICAgICBwdXNoIEBOb3RpZnlVc2VySURzLCBAVXNlckxpc3RXaXRob3V0U2VsZWN0aW9uOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoICRTZWxmLT57QWN0aW9ufSBlcSAnQWdlbnRUaWNrZXRFbWFpbE91dGJvdW5kJyApIHsKICAgICAgICAgICAgICAgICRBcnRpY2xlSUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpBcnRpY2xlOjpCYWNrZW5kOjpFbWFpbCcpLT5BcnRpY2xlU2VuZCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgICAgICAgICAgICAgID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIFNlbmRlclR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gJ2FnZW50JywKICAgICAgICAgICAgICAgICAgICBGcm9tICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICRGcm9tLAogICAgICAgICAgICAgICAgICAgIE1pbWVUeXBlICAgICAgICAgICAgICAgICAgICAgICAgPT4gJE1pbWVUeXBlLAogICAgICAgICAgICAgICAgICAgIENoYXJzZXQgICAgICAgICAgICAgICAgICAgICAgICAgPT4gJExheW91dE9iamVjdC0+e1VzZXJDaGFyc2V0fSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICBIaXN0b3J5VHlwZSAgICAgICAgICAgICAgICAgICAgID0+ICRDb25maWctPntIaXN0b3J5VHlwZX0sCiAgICAgICAgICAgICAgICAgICAgSGlzdG9yeUNvbW1lbnQgICAgICAgICAgICAgICAgICA9PiAkQ29uZmlnLT57SGlzdG9yeUNvbW1lbnR9LAogICAgICAgICAgICAgICAgICAgIEZvcmNlTm90aWZpY2F0aW9uVG9Vc2VySUQgICAgICAgPT4gXEBOb3RpZnlVc2VySURzLAogICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVNdXRlTm90aWZpY2F0aW9uVG9Vc2VySUQgPT4gXEBOb3RpZnlEb25lLAogICAgICAgICAgICAgICAgICAgIFVubG9ja09uQXdheSAgICAgICAgICAgICAgICAgICAgPT4gJFVubG9ja09uQXdheSwKICAgICAgICAgICAgICAgICAgICBBdHRhY2htZW50ICAgICAgICAgICAgICAgICAgICAgID0+IFxAQXR0YWNobWVudHMsCiAgICAgICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRBcnRpY2xlSUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpBcnRpY2xlOjpCYWNrZW5kOjpJbnRlcm5hbCcpLT5BcnRpY2xlQ3JlYXRlKAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAnYWdlbnQnLAogICAgICAgICAgICAgICAgICAgIEZyb20gICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gJEZyb20sCiAgICAgICAgICAgICAgICAgICAgTWltZVR5cGUgICAgICAgICAgICAgICAgICAgICAgICA9PiAkTWltZVR5cGUsCiAgICAgICAgICAgICAgICAgICAgQ2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICA9PiAkTGF5b3V0T2JqZWN0LT57VXNlckNoYXJzZXR9LAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgIEhpc3RvcnlUeXBlICAgICAgICAgICAgICAgICAgICAgPT4gJENvbmZpZy0+e0hpc3RvcnlUeXBlfSwKICAgICAgICAgICAgICAgICAgICBIaXN0b3J5Q29tbWVudCAgICAgICAgICAgICAgICAgID0+ICRDb25maWctPntIaXN0b3J5Q29tbWVudH0sCiAgICAgICAgICAgICAgICAgICAgRm9yY2VOb3RpZmljYXRpb25Ub1VzZXJJRCAgICAgICA9PiBcQE5vdGlmeVVzZXJJRHMsCiAgICAgICAgICAgICAgICAgICAgRXhjbHVkZU11dGVOb3RpZmljYXRpb25Ub1VzZXJJRCA9PiBcQE5vdGlmeURvbmUsCiAgICAgICAgICAgICAgICAgICAgVW5sb2NrT25Bd2F5ICAgICAgICAgICAgICAgICAgICA9PiAkVW5sb2NrT25Bd2F5LAogICAgICAgICAgICAgICAgICAgIEF0dGFjaG1lbnQgICAgICAgICAgICAgICAgICAgICAgPT4gXEBBdHRhY2htZW50cywKICAgICAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoICEkQXJ0aWNsZUlEICkgewogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgdGltZSBhY2NvdW50aW5nCiAgICAgICAgICAgIGlmICggJEdldFBhcmFte1RpbWVVbml0c30gKSB7CiAgICAgICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5UaWNrZXRBY2NvdW50VGltZSgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgQXJ0aWNsZUlEID0+ICRBcnRpY2xlSUQsCiAgICAgICAgICAgICAgICAgICAgVGltZVVuaXQgID0+ICRHZXRQYXJhbXtUaW1lVW5pdHN9LAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHJlbW92ZSBwcmUgc3VibWl0dGVkIGF0dGFjaG1lbnRzCiAgICAgICAgICAgICRVcGxvYWRDYWNoZU9iamVjdC0+Rm9ybUlEUmVtb3ZlKCBGb3JtSUQgPT4gJFNlbGYtPntGb3JtSUR9ICk7CiAgICAgICAgfQoKICAgICAgICAjIHNldCBkeW5hbWljIGZpZWxkcwogICAgICAgICMgY3ljbGUgdGhyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgICAgIERZTkFNSUNGSUVMRENPTkZJRzoKICAgICAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7JER5bmFtaWNGaWVsZH0gKSB7CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEQ09ORklHIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKIyAtLS0KIyBabnVueS1QcmltYXJ5U2Vjb25kYXJ5CiMgLS0tCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICEkUHJpbWFyeVNlY29uZGFyeUFkdmFuY2VkRW5hYmxlZAogICAgICAgICAgICAgICAgJiYgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IGVxICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEQ09ORklHOwogICAgICAgICAgICB9CiMgLS0tCgogICAgICAgICAgICAjIHNldCB0aGUgb2JqZWN0IElEIChUaWNrZXRJRCBvciBBcnRpY2xlSUQpIGRlcGVuZGluZyBvbiB0aGUgZmllbGQgY29uZmlndXJhdGlvbgogICAgICAgICAgICBteSAkT2JqZWN0SUQgPSAkRHluYW1pY0ZpZWxkQ29uZmlnLT57T2JqZWN0VHlwZX0gZXEgJ0FydGljbGUnID8gJEFydGljbGVJRCA6ICRTZWxmLT57VGlja2V0SUR9OwogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRENPTkZJRyBpZiAhJE9iamVjdElEOwoKICAgICAgICAgICAgIyBzZXQgdGhlIHZhbHVlCiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlZhbHVlU2V0KAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJE9iamVjdElELAogICAgICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgSWYgZm9ybSB3YXMgY2FsbGVkIGJhc2VkIG9uIGEgZHJhZnQsCiAgICAgICAgIyAgIGRlbGV0ZSBkcmFmdCBzaW5jZSBpdHMgY29udGVudCBoYXMgbm93IGJlZW4gdXNlZC4KICAgICAgICBpZiAoCiAgICAgICAgICAgICRHZXRQYXJhbXtGb3JtRHJhZnRJRH0KICAgICAgICAgICAgJiYgISRGb3JtRHJhZnRPYmplY3QtPkZvcm1EcmFmdERlbGV0ZSgKICAgICAgICAgICAgICAgIEZvcm1EcmFmdElEID0+ICRHZXRQYXJhbXtGb3JtRHJhZnRJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ0NvdWxkIG5vdCBkZWxldGUgZHJhZnQhJyksCiAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57SXNJVFNNSW5jaWRlbnRQcm9ibGVtTWFuYWdlbWVudEluc3RhbGxlZH0KICAgICAgICAgICAgJiYgKCAkR2V0UGFyYW17RHluYW1pY0ZpZWxkX0lUU01Dcml0aWNhbGl0eX0gfHwgJFNlcnZpY2V7Q3JpdGljYWxpdHl9ICkKICAgICAgICAgICAgKQogICAgICAgIHsKCiAgICAgICAgICAgICMgZ2V0IGNvbmZpZyBmb3IgY3JpdGljYWxpdHkgZHluYW1pYyBmaWVsZAogICAgICAgICAgICBteSAkQ3JpdGljYWxpdHlEeW5hbWljRmllbGRDb25maWcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyktPkR5bmFtaWNGaWVsZEdldCgKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0lUU01Dcml0aWNhbGl0eScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGdldCBwb3NzaWJsZSB2YWx1ZXMgZm9yIGNyaXRpY2FsaXR5CiAgICAgICAgICAgIG15ICRDcml0aWNhbGl0eVBvc3NpYmxlVmFsdWVzID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlBvc3NpYmxlVmFsdWVzR2V0KAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICRDcml0aWNhbGl0eUR5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgcmV2ZXJzZSB0aGUgbGlzdCB0byBmaW5kIG91dCB0aGUga2V5CiAgICAgICAgICAgIG15ICVSZXZlcnNlQ3JpdGljYWxpdHlQb3NzaWJsZVZhbHVlcyA9IHJldmVyc2UgJXskQ3JpdGljYWxpdHlQb3NzaWJsZVZhbHVlc307CgogICAgICAgICAgICBteSAkQ3JpdGljYWxpdHkgPSAkU2VydmljZXtDcml0aWNhbGl0eX0gfHwgJyc7CiAgICAgICAgICAgIGlmICggJENvbmZpZy0+e0R5bmFtaWNGaWVsZH0tPntJVFNNQ3JpdGljYWxpdHl9ICkgewogICAgICAgICAgICAgICAgJENyaXRpY2FsaXR5ID0gJEdldFBhcmFte0R5bmFtaWNGaWVsZF9JVFNNQ3JpdGljYWxpdHl9IHx8ICcnOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHNldCB0aGUgY3JpdGljYWxpdHkKICAgICAgICAgICAgJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlZhbHVlU2V0KAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICRDcml0aWNhbGl0eUR5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkUmV2ZXJzZUNyaXRpY2FsaXR5UG9zc2libGVWYWx1ZXN7JENyaXRpY2FsaXR5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGxvYWQgbmV3IFVSTCBpbiBwYXJlbnQgd2luZG93IGFuZCBjbG9zZSBwb3B1cAogICAgICAgICRSZXR1cm5VUkwgfHw9ICJBY3Rpb249QWdlbnRUaWNrZXRab29tO1RpY2tldElEPSRTZWxmLT57VGlja2V0SUR9O0FydGljbGVJRD0kQXJ0aWNsZUlEIjsKCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlBvcHVwQ2xvc2UoCiAgICAgICAgICAgIFVSTCA9PiAkUmV0dXJuVVJMLAogICAgICAgICk7CiAgICB9CiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQUpBWFVwZGF0ZScgKSB7CiAgICAgICAgbXkgJVRpY2tldCAgICAgICAgID0gJFRpY2tldE9iamVjdC0+VGlja2V0R2V0KCBUaWNrZXRJRCA9PiAkU2VsZi0+e1RpY2tldElEfSApOwogICAgICAgIG15ICRFbGVtZW50Q2hhbmdlZCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdFbGVtZW50Q2hhbmdlZCcgKSB8fCAnJzsKCiAgICAgICAgJEdldFBhcmFte0N1c3RvbWVyVXNlcklEfSA9ICRHZXRQYXJhbXtTZWxlY3RlZEN1c3RvbWVyVXNlcn07CgogICAgICAgIG15ICRTZXJ2aWNlSUQ7CgogICAgICAgICMgZ2V0IHNlcnZpY2UgdmFsdWUgZnJvbSBwYXJhbSBpZiBmaWVsZCBpcyB2aXNpYmxlIGluIHRoZSBzY3JlZW4KICAgICAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpTZXJ2aWNlJykgJiYgJENvbmZpZy0+e1NlcnZpY2V9ICkgewogICAgICAgICAgICAkU2VydmljZUlEID0gJEdldFBhcmFte1NlcnZpY2VJRH0gfHwgJyc7CiAgICAgICAgfQoKICAgICAgICAjIG90aGVyd2lzZSB1c2UgdGlja2V0IHNlcnZpY2UgdmFsdWUgc2luY2UgaXQgY2FuJ3QgYmUgY2hhbmdlZAogICAgICAgIGVsc2lmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OlNlcnZpY2UnKSApIHsKICAgICAgICAgICAgJFNlcnZpY2VJRCA9ICRUaWNrZXR7U2VydmljZUlEfSB8fCAnJzsKICAgICAgICB9CgogICAgICAgIG15ICRRdWV1ZUlEID0gJEdldFBhcmFte05ld1F1ZXVlSUR9IHx8ICRUaWNrZXR7UXVldWVJRH07CiAgICAgICAgbXkgJFN0YXRlSUQgPSAkR2V0UGFyYW17TmV3U3RhdGVJRH0gfHwgJFRpY2tldHtTdGF0ZUlEfTsKCiAgICAgICAgIyBnZXQgbGlzdCB0eXBlCiAgICAgICAgbXkgJFRyZWVWaWV3ID0gMDsKICAgICAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpGcm9udGVuZDo6TGlzdFR5cGUnKSBlcSAndHJlZScgKSB7CiAgICAgICAgICAgICRUcmVlVmlldyA9IDE7CiAgICAgICAgfQoKICAgICAgICBteSAkT3duZXJzID0gJFNlbGYtPl9HZXRPd25lcnMoCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgUXVldWVJRCAgPT4gJFF1ZXVlSUQsCiAgICAgICAgICAgIFN0YXRlSUQgID0+ICRTdGF0ZUlELAogICAgICAgICAgICBBbGxVc2VycyA9PiAkR2V0UGFyYW17T3duZXJBbGx9LAogICAgICAgICk7CiAgICAgICAgbXkgJE9sZE93bmVycyA9ICRTZWxmLT5fR2V0T2xkT3duZXJzKAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgIFF1ZXVlSUQgID0+ICRRdWV1ZUlELAogICAgICAgICAgICBTdGF0ZUlEICA9PiAkU3RhdGVJRCwKICAgICAgICAgICAgQWxsVXNlcnMgPT4gJEdldFBhcmFte093bmVyQWxsfSwKICAgICAgICApOwogICAgICAgIG15ICRSZXNwb25zaWJsZVVzZXJzID0gJFNlbGYtPl9HZXRSZXNwb25zaWJsZSgKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICBRdWV1ZUlEICA9PiAkUXVldWVJRCwKICAgICAgICAgICAgU3RhdGVJRCAgPT4gJFN0YXRlSUQsCiAgICAgICAgICAgIEFsbFVzZXJzID0+ICRHZXRQYXJhbXtPd25lckFsbH0sCiAgICAgICAgKTsKICAgICAgICBteSAkUHJpb3JpdGllcyA9ICRTZWxmLT5fR2V0UHJpb3JpdGllcygKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICk7CiAgICAgICAgbXkgJFNlcnZpY2VzID0gJFNlbGYtPl9HZXRTZXJ2aWNlcygKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICBRdWV1ZUlEID0+ICRRdWV1ZUlELAogICAgICAgICAgICBTdGF0ZUlEID0+ICRTdGF0ZUlELAogICAgICAgICk7CiAgICAgICAgbXkgJFR5cGVzID0gJFNlbGYtPl9HZXRUeXBlcygKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICBRdWV1ZUlEID0+ICRRdWV1ZUlELAogICAgICAgICAgICBTdGF0ZUlEID0+ICRTdGF0ZUlELAogICAgICAgICk7CiAgICAgICAgbXkgJE5ld1F1ZXVlcyA9ICRTZWxmLT5fR2V0UXVldWVzKAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgKTsKCiAgICAgICAgIyByZXNldCBwcmV2aW91cyBTZXJ2aWNlSUQgdG8gcmVzZXQgU0xBLUxpc3QgaWYgbm8gc2VydmljZSBpcyBzZWxlY3RlZAogICAgICAgIGlmICggIWRlZmluZWQgJFNlcnZpY2VJRCB8fCAhJFNlcnZpY2VzLT57JFNlcnZpY2VJRH0gKSB7CiAgICAgICAgICAgICRTZXJ2aWNlSUQgPSAnJzsKICAgICAgICB9CiAgICAgICAgbXkgJFNMQXMgPSAkU2VsZi0+X0dldFNMQXMoCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgUXVldWVJRCAgID0+ICRRdWV1ZUlELAogICAgICAgICAgICBTdGF0ZUlEICAgPT4gJFN0YXRlSUQsCiAgICAgICAgICAgIFNlcnZpY2VJRCA9PiAkU2VydmljZUlELAogICAgICAgICk7CiAgICAgICAgbXkgJE5leHRTdGF0ZXMgPSAkU2VsZi0+X0dldE5leHRTdGF0ZXMoCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgUXVldWVJRCA9PiAkUXVldWVJRCwKICAgICAgICAgICAgU3RhdGVJRCA9PiAkU3RhdGVJRCwKICAgICAgICApOwoKICAgICAgICAjIHVwZGF0ZSBEeW5hbWljIEZpZWxkcyBQb3NzaWJsZSBWYWx1ZXMgdmlhIEFKQVgKICAgICAgICBteSBARHluYW1pY0ZpZWxkQUpBWDsKCiAgICAgICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyREeW5hbWljRmllbGR9ICkgewogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgICAgICBteSAkSXNBQ0xSZWR1Y2libGUgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIEJlaGF2aW9yICAgICAgICAgICA9PiAnSXNBQ0xSZWR1Y2libGUnLAogICAgICAgICAgICApOwogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJElzQUNMUmVkdWNpYmxlOwoKICAgICAgICAgICAgbXkgJFBvc3NpYmxlVmFsdWVzID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlBvc3NpYmxlVmFsdWVzR2V0KAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGNvbnZlcnQgcG9zc2libGUgdmFsdWVzIGtleSA9PiB2YWx1ZSB0byBrZXkgPT4ga2V5IGZvciBBQ0xzIHVzaW5nIGEgSGFzaCBzbGljZQogICAgICAgICAgICBteSAlQWNsRGF0YSA9ICV7JFBvc3NpYmxlVmFsdWVzfTsKICAgICAgICAgICAgQEFjbERhdGF7IGtleXMgJUFjbERhdGEgfSA9IGtleXMgJUFjbERhdGE7CgogICAgICAgICAgICAjIHNldCBwb3NzaWJsZSB2YWx1ZXMgZmlsdGVyIGZyb20gQUNMcwogICAgICAgICAgICBteSAkQUNMID0gJFRpY2tldE9iamVjdC0+VGlja2V0QWNsKAogICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgQWN0aW9uICAgICAgICA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICAgICAgUXVldWVJRCAgICAgICA9PiAkUXVldWVJRCwKICAgICAgICAgICAgICAgIFJldHVyblR5cGUgICAgPT4gJ1RpY2tldCcsCiAgICAgICAgICAgICAgICBSZXR1cm5TdWJUeXBlID0+ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSwKICAgICAgICAgICAgICAgIERhdGEgICAgICAgICAgPT4gXCVBY2xEYXRhLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICgkQUNMKSB7CiAgICAgICAgICAgICAgICBteSAlRmlsdGVyID0gJFRpY2tldE9iamVjdC0+VGlja2V0QWNsRGF0YSgpOwoKICAgICAgICAgICAgICAgICMgY29udmVydCBGaWxlciBrZXkgPT4ga2V5IGJhY2sgdG8ga2V5ID0+IHZhbHVlIHVzaW5nIG1hcAogICAgICAgICAgICAgICAgJXskUG9zc2libGVWYWx1ZXN9ID0gbWFwIHsgJF8gPT4gJFBvc3NpYmxlVmFsdWVzLT57JF99IH0ga2V5cyAlRmlsdGVyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkRGF0YVZhbHVlcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5CdWlsZFNlbGVjdGlvbkRhdGFHZXQoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIFBvc3NpYmxlVmFsdWVzICAgICA9PiAkUG9zc2libGVWYWx1ZXMsCiAgICAgICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJER5bmFtaWNGaWVsZFZhbHVlc3sgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0sCiAgICAgICAgICAgICkgfHwgJFBvc3NpYmxlVmFsdWVzOwoKICAgICAgICAgICAgIyBhZGQgZHluYW1pYyBmaWVsZCB0byB0aGUgbGlzdCBvZiBmaWVsZHMgdG8gdXBkYXRlCiAgICAgICAgICAgIHB1c2goCiAgICAgICAgICAgICAgICBARHluYW1pY0ZpZWxkQUpBWCwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICA9PiAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0sCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgPT4gJERhdGFWYWx1ZXMsCiAgICAgICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJER5bmFtaWNGaWVsZFZhbHVlc3sgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0sCiAgICAgICAgICAgICAgICAgICAgVHJhbnNsYXRpb24gPT4gJER5bmFtaWNGaWVsZENvbmZpZy0+e0NvbmZpZ30tPntUcmFuc2xhdGFibGVWYWx1ZXN9IHx8IDAsCiAgICAgICAgICAgICAgICAgICAgTWF4ICAgICAgICAgPT4gMTAwLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJFN0YW5kYXJkVGVtcGxhdGVzID0gJFNlbGYtPl9HZXRTdGFuZGFyZFRlbXBsYXRlcygKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICBRdWV1ZUlEID0+ICRRdWV1ZUlEIHx8ICcnLAogICAgICAgICk7CgogICAgICAgIG15IEBUZW1wbGF0ZUFKQVg7CgogICAgICAgICMgdXBkYXRlIHRpY2tldCBib2R5IGFuZCBhdHRhY2hlbWVudHMgaWYgbmVlZGVkLgogICAgICAgIGlmICggJEVsZW1lbnRDaGFuZ2VkIGVxICdTdGFuZGFyZFRlbXBsYXRlSUQnICkgewogICAgICAgICAgICBteSBAVGlja2V0QXR0YWNobWVudHM7CiAgICAgICAgICAgIG15ICRUZW1wbGF0ZVRleHQ7CgogICAgICAgICAgICAjIHJlbW92ZSBhbGwgYXR0YWNobWVudHMgZnJvbSB0aGUgVXBsb2FkIGNhY2hlCiAgICAgICAgICAgIG15ICRSZW1vdmVTdWNjZXNzID0gJFVwbG9hZENhY2hlT2JqZWN0LT5Gb3JtSURSZW1vdmUoCiAgICAgICAgICAgICAgICBGb3JtSUQgPT4gJFNlbGYtPntGb3JtSUR9LAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoICEkUmVtb3ZlU3VjY2VzcyApIHsKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkZvcm0gYXR0YWNobWVudHMgY291bGQgbm90IGJlIGRlbGV0ZWQhIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgZ2V0IHRoZSB0ZW1wbGF0ZSB0ZXh0IGFuZCBzZXQgbmV3IGF0dGFjaG1lbnRzIGlmIGEgdGVtcGxhdGUgaXMgc2VsZWN0ZWQKICAgICAgICAgICAgaWYgKCBJc1Bvc2l0aXZlSW50ZWdlciggJEdldFBhcmFte1N0YW5kYXJkVGVtcGxhdGVJRH0gKSApIHsKICAgICAgICAgICAgICAgIG15ICRUZW1wbGF0ZUdlbmVyYXRvciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUZW1wbGF0ZUdlbmVyYXRvcicpOwoKICAgICAgICAgICAgICAgICMgc2V0IHRlbXBsYXRlIHRleHQsIHJlcGxhY2Ugc21hcnQgdGFncyAobGltaXRlZCBhcyB0aWNrZXQgaXMgbm90IGNyZWF0ZWQpCiAgICAgICAgICAgICAgICAkVGVtcGxhdGVUZXh0ID0gJFRlbXBsYXRlR2VuZXJhdG9yLT5UZW1wbGF0ZSgKICAgICAgICAgICAgICAgICAgICBUZW1wbGF0ZUlEID0+ICRHZXRQYXJhbXtTdGFuZGFyZFRlbXBsYXRlSUR9LAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEICAgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgaWYgUmVwbHlUb0FydGljbGUgaXMgZ2l2ZW4sIGdldCB0aGlzIGFydGljbGUgdG8gZ2VuZXJhdGUKICAgICAgICAgICAgICAgICMgdGhlIHF1b3RlZCBhcnRpY2xlIGNvbnRlbnQKICAgICAgICAgICAgICAgIGlmICggJFNlbGYtPntSZXBseVRvQXJ0aWNsZX0gKSB7CgogICAgICAgICAgICAgICAgICAgICMgZ2V0IGFydGljbGUgdG8gcXVvdGUKICAgICAgICAgICAgICAgICAgICBteSAkQm9keSA9ICRMYXlvdXRPYmplY3QtPkFydGljbGVRdW90ZSgKICAgICAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICAgICAgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgICAgIEFydGljbGVJRCAgICAgICAgID0+ICRTZWxmLT57UmVwbHlUb0FydGljbGV9LAogICAgICAgICAgICAgICAgICAgICAgICBGb3JtSUQgICAgICAgICAgICA9PiAkU2VsZi0+e0Zvcm1JRH0sCiAgICAgICAgICAgICAgICAgICAgICAgIFVwbG9hZENhY2hlT2JqZWN0ID0+ICRVcGxvYWRDYWNoZU9iamVjdCwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAjIHByZXBhcmUgcXVvdGVkIGJvZHkgY29udGVudAogICAgICAgICAgICAgICAgICAgICRCb2R5ID0gJFNlbGYtPl9HZXRRdW90ZWRSZXBseUJvZHkoCiAgICAgICAgICAgICAgICAgICAgICAgICV7ICRTZWxmLT57UmVwbHlUb0FydGljbGVDb250ZW50fSB9LAogICAgICAgICAgICAgICAgICAgICAgICBCb2R5ID0+ICRCb2R5LAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgIGlmICggJExheW91dE9iamVjdC0+e0Jyb3dzZXJSaWNoVGV4dH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRUZW1wbGF0ZVRleHQgPSAkVGVtcGxhdGVUZXh0IC4gJzxwPjwvcD48cD48L3A+JyAuICRCb2R5OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJFRlbXBsYXRlVGV4dCA9ICRUZW1wbGF0ZVRleHQgLiAiXG5cbiIgLiAkQm9keTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBjcmVhdGUgU3RkQXR0YWNobWVudE9iamVjdAogICAgICAgICAgICAgICAgbXkgJFN0ZEF0dGFjaG1lbnRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3RkQXR0YWNobWVudCcpOwoKICAgICAgICAgICAgICAgICMgYWRkIHN0ZC4gYXR0YWNobWVudHMgdG8gdGlja2V0CiAgICAgICAgICAgICAgICBteSAlQWxsU3RkQXR0YWNobWVudHMgPSAkU3RkQXR0YWNobWVudE9iamVjdC0+U3RkQXR0YWNobWVudFN0YW5kYXJkVGVtcGxhdGVNZW1iZXJMaXN0KAogICAgICAgICAgICAgICAgICAgIFN0YW5kYXJkVGVtcGxhdGVJRCA9PiAkR2V0UGFyYW17U3RhbmRhcmRUZW1wbGF0ZUlEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBmb3IgbXkgJElEICggc29ydCBrZXlzICVBbGxTdGRBdHRhY2htZW50cyApIHsKICAgICAgICAgICAgICAgICAgICBteSAlQXR0YWNobWVudHNEYXRhID0gJFN0ZEF0dGFjaG1lbnRPYmplY3QtPlN0ZEF0dGFjaG1lbnRHZXQoIElEID0+ICRJRCApOwogICAgICAgICAgICAgICAgICAgICRVcGxvYWRDYWNoZU9iamVjdC0+Rm9ybUlEQWRkRmlsZSgKICAgICAgICAgICAgICAgICAgICAgICAgRm9ybUlEICAgICAgPT4gJFNlbGYtPntGb3JtSUR9LAogICAgICAgICAgICAgICAgICAgICAgICBEaXNwb3NpdGlvbiA9PiAnYXR0YWNobWVudCcsCiAgICAgICAgICAgICAgICAgICAgICAgICVBdHRhY2htZW50c0RhdGEsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIHNlbmQgYSBsaXN0IG9mIGF0dGFjaG1lbnRzIGluIHRoZSB1cGxvYWQgY2FjaGUgYmFjayB0byB0aGUgY2xpZW50c2lkZSBKYXZhU2NyaXB0CiAgICAgICAgICAgICAgICAjIHdoaWNoIHJlbmRlcnMgdGhlbiB0aGUgbGlzdCBvZiBjdXJyZW50bHkgdXBsb2FkZWQgYXR0YWNobWVudHMKICAgICAgICAgICAgICAgIEBUaWNrZXRBdHRhY2htZW50cyA9ICRVcGxvYWRDYWNoZU9iamVjdC0+Rm9ybUlER2V0QWxsRmlsZXNNZXRhKAogICAgICAgICAgICAgICAgICAgIEZvcm1JRCA9PiAkU2VsZi0+e0Zvcm1JRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIGZvciBteSAkQXR0YWNobWVudCAoQFRpY2tldEF0dGFjaG1lbnRzKSB7CiAgICAgICAgICAgICAgICAgICAgJEF0dGFjaG1lbnQtPntGaWxlc2l6ZX0gPSAkTGF5b3V0T2JqZWN0LT5IdW1hblJlYWRhYmxlRGF0YVNpemUoCiAgICAgICAgICAgICAgICAgICAgICAgIFNpemUgPT4gJEF0dGFjaG1lbnQtPntGaWxlc2l6ZX0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgQFRlbXBsYXRlQUpBWCA9ICgKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdVc2VUZW1wbGF0ZU5vdGUnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gJzAnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSaWNoVGV4dCcsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiAkVGVtcGxhdGVUZXh0IHx8ICcnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICA9PiAnVGlja2V0QXR0YWNobWVudHMnLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgID0+IFxAVGlja2V0QXR0YWNobWVudHMsCiAgICAgICAgICAgICAgICAgICAgS2VlcERhdGEgPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBteSAkSlNPTiA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uSlNPTigKICAgICAgICAgICAgWwoKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJ05ld093bmVySUQnLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiAkT3duZXJzLAogICAgICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgICA9PiAkR2V0UGFyYW17TmV3T3duZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgVHJhbnNsYXRpb24gID0+IDAsCiAgICAgICAgICAgICAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgICAgICAgICAgICAgTWF4ICAgICAgICAgID0+IDEwMCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdOZXdSZXNwb25zaWJsZUlEJywKICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gJFJlc3BvbnNpYmxlVXNlcnMsCiAgICAgICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRHZXRQYXJhbXtOZXdSZXNwb25zaWJsZUlEfSwKICAgICAgICAgICAgICAgICAgICBUcmFuc2xhdGlvbiAgPT4gMCwKICAgICAgICAgICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgICAgICAgICBNYXggICAgICAgICAgPT4gMTAwLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJ05ld1N0YXRlSUQnLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiAkTmV4dFN0YXRlcywKICAgICAgICAgICAgICAgICAgICBTZWxlY3RlZElEICAgPT4gJEdldFBhcmFte05ld1N0YXRlSUR9LAogICAgICAgICAgICAgICAgICAgIFRyYW5zbGF0aW9uICA9PiAxLAogICAgICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAkQ29uZmlnLT57U3RhdGVEZWZhdWx0fSA/IDAgOiAxLAogICAgICAgICAgICAgICAgICAgIE1heCAgICAgICAgICA9PiAxMDAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnTmV3UHJpb3JpdHlJRCcsCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+ICRQcmlvcml0aWVzLAogICAgICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgICA9PiAkR2V0UGFyYW17TmV3UHJpb3JpdHlJRH0sCiAgICAgICAgICAgICAgICAgICAgUG9zc2libGVOb25lID0+IDAsCiAgICAgICAgICAgICAgICAgICAgVHJhbnNsYXRpb24gID0+IDEsCiAgICAgICAgICAgICAgICAgICAgTWF4ICAgICAgICAgID0+IDEwMCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdTZXJ2aWNlSUQnLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiAkU2VydmljZXMsCiAgICAgICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRHZXRQYXJhbXtTZXJ2aWNlSUR9LAogICAgICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICAgICAgICAgIFRyYW5zbGF0aW9uICA9PiAwLAogICAgICAgICAgICAgICAgICAgIFRyZWVWaWV3ICAgICA9PiAkVHJlZVZpZXcsCiAgICAgICAgICAgICAgICAgICAgTWF4ICAgICAgICAgID0+IDEwMCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdTTEFJRCcsCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+ICRTTEFzLAogICAgICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgICA9PiAkR2V0UGFyYW17U0xBSUR9LAogICAgICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICAgICAgICAgIFRyYW5zbGF0aW9uICA9PiAwLAogICAgICAgICAgICAgICAgICAgIE1heCAgICAgICAgICA9PiAxMDAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnU3RhbmRhcmRUZW1wbGF0ZUlEJywKICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gJFN0YW5kYXJkVGVtcGxhdGVzLAogICAgICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgICA9PiAkR2V0UGFyYW17U3RhbmRhcmRUZW1wbGF0ZUlEfSwKICAgICAgICAgICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgICAgICAgICBUcmFuc2xhdGlvbiAgPT4gMSwKICAgICAgICAgICAgICAgICAgICBNYXggICAgICAgICAgPT4gMTAwLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJ1R5cGVJRCcsCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+ICRUeXBlcywKICAgICAgICAgICAgICAgICAgICBTZWxlY3RlZElEICAgPT4gJEdldFBhcmFte1R5cGVJRH0sCiAgICAgICAgICAgICAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgICAgICAgICAgICAgVHJhbnNsYXRpb24gID0+IDAsCiAgICAgICAgICAgICAgICAgICAgTWF4ICAgICAgICAgID0+IDEwMCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdOZXdRdWV1ZUlEJywKICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gJE5ld1F1ZXVlcywKICAgICAgICAgICAgICAgICAgICBTZWxlY3RlZElEICAgPT4gJEdldFBhcmFte05ld1F1ZXVlSUR9LAogICAgICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICAgICAgICAgIFRyYW5zbGF0aW9uICA9PiAwLAogICAgICAgICAgICAgICAgICAgIFRyZWVWaWV3ICAgICA9PiAkVHJlZVZpZXcsCiAgICAgICAgICAgICAgICAgICAgTWF4ICAgICAgICAgID0+IDEwMCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBARHluYW1pY0ZpZWxkQUpBWCwKICAgICAgICAgICAgICAgIEBUZW1wbGF0ZUFKQVgsCiAgICAgICAgICAgIF0sCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9JyAuICRMYXlvdXRPYmplY3QtPntDaGFyc2V0fSwKICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJEpTT04sCiAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyBvdmVyd3JpdGUgcGFyYW1zIHZhcmlhYmxlIG9mIGN1c3RvbWVyIHVzZXIgZmllbGRzIHRvIHVzZSB0aWNrZXQgdmFsdWVzCiAgICAgICAgJEdldFBhcmFte0N1c3RvbWVySUR9ICAgICAgICAgICA9ICRUaWNrZXR7Q3VzdG9tZXJJRH07CiAgICAgICAgJEdldFBhcmFte1NlbGVjdGVkQ3VzdG9tZXJVc2VyfSA9ICRUaWNrZXR7Q3VzdG9tZXJVc2VySUR9OwoKICAgICAgICBteSAlQ3VzdG9tZXJVc2VyID0gJEN1c3RvbWVyVXNlck9iamVjdC0+Q3VzdG9tZXJVc2VyRGF0YUdldCgKICAgICAgICAgICAgVXNlciA9PiAkR2V0UGFyYW17U2VsZWN0ZWRDdXN0b21lclVzZXJ9LAogICAgICAgICk7CgogICAgICAgICRHZXRQYXJhbXtDdXN0b21lclVzZXJJRH0gPSAkQ3VzdG9tZXJVc2Vye1VzZXJNYWlsU3RyaW5nfSAvLyAnJzsKCiAgICAgICAgbXkgJEJvZHkgPSAnJzsKCiAgICAgICAgIyBpZiBSZXBseVRvQXJ0aWNsZSBpcyBnaXZlbiwgZ2V0IHRoaXMgYXJ0aWNsZSB0byBnZW5lcmF0ZQogICAgICAgICMgdGhlIHF1b3RlZCBhcnRpY2xlIGNvbnRlbnQKICAgICAgICBpZiAoICRTZWxmLT57UmVwbHlUb0FydGljbGV9ICkgewoKICAgICAgICAgICAgIyBnZXQgYXJ0aWNsZSB0byBxdW90ZQogICAgICAgICAgICAkQm9keSA9ICRMYXlvdXRPYmplY3QtPkFydGljbGVRdW90ZSgKICAgICAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICAgICAgQXJ0aWNsZUlEICAgICAgICAgPT4gJFNlbGYtPntSZXBseVRvQXJ0aWNsZX0sCiAgICAgICAgICAgICAgICBGb3JtSUQgICAgICAgICAgICA9PiAkU2VsZi0+e0Zvcm1JRH0sCiAgICAgICAgICAgICAgICBVcGxvYWRDYWNoZU9iamVjdCA9PiAkVXBsb2FkQ2FjaGVPYmplY3QsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHByZXBhcmUgcXVvdGVkIGJvZHkgY29udGVudAogICAgICAgICAgICAkQm9keSA9ICRTZWxmLT5fR2V0UXVvdGVkUmVwbHlCb2R5KAogICAgICAgICAgICAgICAgJXsgJFNlbGYtPntSZXBseVRvQXJ0aWNsZUNvbnRlbnR9IH0sCiAgICAgICAgICAgICAgICBCb2R5ID0+ICRCb2R5LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBpZiBhIGJvZHkgY29udGVudCB3YXMgcHJlIGRlZmluZWQsIGFkZCB0aGlzIGJlZm9yZSB0aGUgcXVvdGVkIGFydGljbGUgY29udGVudAogICAgICAgIGlmICggJEdldFBhcmFte0JvZHl9ICkgewoKICAgICAgICAgICAgIyBtYWtlIHN1cmUgYm9keSBpcyByaWNoIHRleHQKICAgICAgICAgICAgaWYgKCAkTGF5b3V0T2JqZWN0LT57QnJvd3NlclJpY2hUZXh0fSApIHsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXtCb2R5fSA9ICRMYXlvdXRPYmplY3QtPkFzY2lpMlJpY2hUZXh0KAogICAgICAgICAgICAgICAgICAgIFN0cmluZyA9PiAkR2V0UGFyYW17Qm9keX0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkQm9keSA9ICRHZXRQYXJhbXtCb2R5fSAuICRCb2R5OwogICAgICAgIH0KCiAgICAgICAgIyBmaWxsdXAgY29uZmlndXJlZCBkZWZhdWx0IHZhcnMKICAgICAgICBpZiAoICRCb2R5IGVxICcnICYmICRDb25maWctPntCb2R5fSApIHsKICAgICAgICAgICAgJEJvZHkgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgICAgICBUZW1wbGF0ZSA9PiAkQ29uZmlnLT57Qm9keX0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIG1ha2Ugc3VyZSBib2R5IGlzIHJpY2ggdGV4dAogICAgICAgICAgICBpZiAoICRMYXlvdXRPYmplY3QtPntCcm93c2VyUmljaFRleHR9ICkgewogICAgICAgICAgICAgICAgJEJvZHkgPSAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJSaWNoVGV4dCgKICAgICAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJEJvZHksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHNldCBCb2R5IHZhciB0byBjYWxjdWxhdGVkIGNvbnRlbnQKICAgICAgICAkR2V0UGFyYW17Qm9keX0gPSAkQm9keTsKCiAgICAgICAgbXkgJVNhZmV0eUNoZWNrUmVzdWx0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkhUTUxVdGlscycpLT5TYWZldHkoCiAgICAgICAgICAgIFN0cmluZyA9PiAkR2V0UGFyYW17Qm9keX0sCgogICAgICAgICAgICAjIFN0cmlwIG91dCBleHRlcm5hbCBjb250ZW50IGlmIEJsb2NrTG9hZGluZ1JlbW90ZUNvbnRlbnQgaXMgZW5hYmxlZC4KICAgICAgICAgICAgTm9FeHRTcmNMb2FkID0+ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpGcm9udGVuZDo6QmxvY2tMb2FkaW5nUmVtb3RlQ29udGVudCcpLAoKICAgICAgICAgICAgIyBEaXNhbGxvdyBwb3RlbnRpYWxseSB1bnNhZmUgY29udGVudC4KICAgICAgICAgICAgTm9BcHBsZXQgICAgID0+IDEsCiAgICAgICAgICAgIE5vT2JqZWN0ICAgICA9PiAxLAogICAgICAgICAgICBOb0VtYmVkICAgICAgPT4gMSwKICAgICAgICAgICAgTm9TVkcgICAgICAgID0+IDEsCiAgICAgICAgICAgIE5vSmF2YVNjcmlwdCA9PiAxLAogICAgICAgICk7CiAgICAgICAgJEdldFBhcmFte0JvZHl9ID0gJFNhZmV0eUNoZWNrUmVzdWx0e1N0cmluZ307CgogICAgICAgIGlmICggJFNlbGYtPntSZXBseVRvQXJ0aWNsZX0gKSB7CiAgICAgICAgICAgIG15ICRUaWNrZXRTdWJqZWN0UmUgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6U3ViamVjdFJlJykgfHwgJ1JlJzsKICAgICAgICAgICAgJEdldFBhcmFte1N1YmplY3R9ID0gJFRpY2tldFN1YmplY3RSZSAuICc6ICcgLiAkU2VsZi0+e1JlcGx5VG9BcnRpY2xlQ29udGVudH17U3ViamVjdH07CiAgICAgICAgfQogICAgICAgIGVsc2lmICggIWRlZmluZWQgJEdldFBhcmFte1N1YmplY3R9ICYmICRDb25maWctPntTdWJqZWN0fSApIHsKICAgICAgICAgICAgJEdldFBhcmFte1N1YmplY3R9ID0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICAgICAgVGVtcGxhdGUgPT4gJENvbmZpZy0+e1N1YmplY3R9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgQFRpY2tldFR5cGVEeW5hbWljRmllbGRzOwogICAgICAgIG15IEBBcnRpY2xlVHlwZUR5bmFtaWNGaWVsZHM7CgogICAgICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHskRHluYW1pY0ZpZWxkfSApIHsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwojIC0tLQojIFpudW55LVByaW1hcnlTZWNvbmRhcnkKIyAtLS0KICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgISRQcmltYXJ5U2Vjb25kYXJ5QWR2YW5jZWRFbmFibGVkCiAgICAgICAgICAgICAgICAmJiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gZXEgJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGQKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQ7CiAgICAgICAgICAgIH0KIyAtLS0KCiAgICAgICAgICAgIG15ICRQb3NzaWJsZVZhbHVlc0ZpbHRlcjsKCiAgICAgICAgICAgIG15ICRJc0FDTFJlZHVjaWJsZSA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5IYXNCZWhhdmlvcigKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgQmVoYXZpb3IgICAgICAgICAgID0+ICdJc0FDTFJlZHVjaWJsZScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoJElzQUNMUmVkdWNpYmxlKSB7CgogICAgICAgICAgICAgICAgIyBnZXQgUG9zc2libGVWYWx1ZXMKICAgICAgICAgICAgICAgIG15ICRQb3NzaWJsZVZhbHVlcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5Qb3NzaWJsZVZhbHVlc0dldCgKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBjaGVjayBpZiBmaWVsZCBoYXMgUG9zc2libGVWYWx1ZXMgcHJvcGVydHkgaW4gaXRzIGNvbmZpZ3VyYXRpb24KICAgICAgICAgICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoJFBvc3NpYmxlVmFsdWVzKSApIHsKCiAgICAgICAgICAgICAgICAgICAgIyBjb252ZXJ0IHBvc3NpYmxlIHZhbHVlcyBrZXkgPT4gdmFsdWUgdG8ga2V5ID0+IGtleSBmb3IgQUNMcyB1c2luZyBhIEhhc2ggc2xpY2UKICAgICAgICAgICAgICAgICAgICBteSAlQWNsRGF0YSA9ICV7JFBvc3NpYmxlVmFsdWVzfTsKICAgICAgICAgICAgICAgICAgICBAQWNsRGF0YXsga2V5cyAlQWNsRGF0YSB9ID0ga2V5cyAlQWNsRGF0YTsKCiAgICAgICAgICAgICAgICAgICAgIyBzZXQgcG9zc2libGUgdmFsdWVzIGZpbHRlciBmcm9tIEFDTHMKICAgICAgICAgICAgICAgICAgICBteSAkQUNMID0gJFRpY2tldE9iamVjdC0+VGlja2V0QWNsKAogICAgICAgICAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbiAgICAgICAgPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm5UeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm5TdWJUeXBlID0+ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgICA9PiBcJUFjbERhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCRBQ0wpIHsKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJUZpbHRlciA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEFjbERhdGEoKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgY29udmVydCBGaWxlciBrZXkgPT4ga2V5IGJhY2sgdG8ga2V5ID0+IHZhbHVlIHVzaW5nIG1hcAogICAgICAgICAgICAgICAgICAgICAgICAleyRQb3NzaWJsZVZhbHVlc0ZpbHRlcn0gPSBtYXAgeyAkXyA9PiAkUG9zc2libGVWYWx1ZXMtPnskX30gfQogICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5cyAlRmlsdGVyOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQojIC0tLQojIFpudW55LVByaW1hcnlTZWNvbmRhcnkKIyAtLS0KICAgICAgICAgICAgaWYgKCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gZXEgJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGQgKSB7CiAgICAgICAgICAgICAgICRQb3NzaWJsZVZhbHVlc0ZpbHRlciA9ICAkU2VsZi0+X0dldFByaW1hcnlTZWNvbmRhcnlEYXRhKAogICAgICAgICAgICAgICAgVGlja2V0ID0+IFwlVGlja2V0LAogICAgICAgICAgICAgICAgUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCA9PiAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCwKICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQojIC0tLQoKICAgICAgICAgICAgIyB0byBzdG9yZSBkeW5hbWljIGZpZWxkIHZhbHVlIGZyb20gZGF0YWJhc2UgKG9yIHVuZGVmaW5lZCkKICAgICAgICAgICAgbXkgJFZhbHVlOwoKICAgICAgICAgICAgaWYgKCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57T2JqZWN0VHlwZX0gZXEgJ1RpY2tldCcgKSB7CgogICAgICAgICAgICAgICAgIyBPbmx5IGdldCB2YWx1ZXMgZm9yIFRpY2tldCBmaWVsZHMgKGFsbCBzY3JlZW5zIGJhc2VkIG9uIEFnZW50VGlja2VBY3Rpb25Db21tb24KICAgICAgICAgICAgICAgICMgZ2VuZXJhdGVzIGEgbmV3IGFydGljbGUsIHRoZW4gYXJ0aWNsZSBmaWVsZHMgd2lsbCBiZSBhbHdheXMgZW1wdHkgYXQgdGhlIGJlZ2lubmluZykuCiAgICAgICAgICAgICAgICAjIFZhbHVlIGlzIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UgZnJvbSBUaWNrZXQuCiAgICAgICAgICAgICAgICAkVmFsdWUgPSAkVGlja2V0eyAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfTsKCiAgICAgICAgICAgICAgICAjIEdldCBmaWVsZCBodG1sLgogICAgICAgICAgICAgICAgbXkgJER5bmFtaWNGaWVsZEhUTUwgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+RWRpdEZpZWxkUmVuZGVyKAogICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICAgICAgUG9zc2libGVWYWx1ZXNGaWx0ZXIgPT4gJFBvc3NpYmxlVmFsdWVzRmlsdGVyLAogICAgICAgICAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICAgID0+ICRWYWx1ZSwKICAgICAgICAgICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAkQ29uZmlnLT57RHluYW1pY0ZpZWxkfS0+eyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9PSAyLAogICAgICAgICAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICAgID0+ICRMYXlvdXRPYmplY3QsCiAgICAgICAgICAgICAgICAgICAgUGFyYW1PYmplY3QgICAgICAgICAgPT4gJFBhcmFtT2JqZWN0LAogICAgICAgICAgICAgICAgICAgIEFKQVhVcGRhdGUgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgVXBkYXRhYmxlRmllbGRzICAgICAgPT4gJFNlbGYtPl9HZXRGaWVsZHNUb1VwZGF0ZSgpLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBwdXNoIEBUaWNrZXRUeXBlRHluYW1pY0ZpZWxkcywgewogICAgICAgICAgICAgICAgICAgIE5hbWUgID0+ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICBMYWJlbCA9PiAkRHluYW1pY0ZpZWxkSFRNTC0+e0xhYmVsfSwKICAgICAgICAgICAgICAgICAgICBGaWVsZCA9PiAkRHluYW1pY0ZpZWxkSFRNTC0+e0ZpZWxkfSwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57T2JqZWN0VHlwZX0gZXEgJ0FydGljbGUnICkgewogICAgICAgICAgICAgICAgbXkgJENsYXNzICAgICAgICAgICAgPSAnJzsKICAgICAgICAgICAgICAgIG15ICRNYW5kYXRvcnlUb29sdGlwID0gMDsKCiAgICAgICAgICAgICAgICBpZiAoICRDb25maWctPntEeW5hbWljRmllbGR9LT57ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID09IDIgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAkQ29uZmlnLT57Tm90ZU1hbmRhdG9yeX0gfHwKICAgICAgICAgICAgICAgICAgICAgICAgJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpOZWVkQWNjb3VudGVkVGltZScpCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICRDbGFzcyA9ICdWYWxpZGF0ZV9SZXF1aXJlZCc7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkQ2xhc3MgICAgICAgICAgICA9ICdWYWxpZGF0ZV9EZXBlbmRpbmdSZXF1aXJlZEFORCBWYWxpZGF0ZV9EZXBlbmRpbmdfQ3JlYXRlQXJ0aWNsZSc7CiAgICAgICAgICAgICAgICAgICAgICAgICRNYW5kYXRvcnlUb29sdGlwID0gMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBHZXQgZmllbGQgaHRtbC4KICAgICAgICAgICAgICAgIG15ICREeW5hbWljRmllbGRIVE1MID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPkVkaXRGaWVsZFJlbmRlcigKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgICAgIFBvc3NpYmxlVmFsdWVzRmlsdGVyID0+ICRQb3NzaWJsZVZhbHVlc0ZpbHRlciwKICAgICAgICAgICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgICA9PiAkVmFsdWUsCiAgICAgICAgICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gKCAkQ2xhc3MgZXEgJ1ZhbGlkYXRlX1JlcXVpcmVkJyApID8gMSA6IDAsCiAgICAgICAgICAgICAgICAgICAgQ2xhc3MgICAgICAgICAgICAgICAgPT4gJENsYXNzLAogICAgICAgICAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICAgID0+ICRMYXlvdXRPYmplY3QsCiAgICAgICAgICAgICAgICAgICAgUGFyYW1PYmplY3QgICAgICAgICAgPT4gJFBhcmFtT2JqZWN0LAogICAgICAgICAgICAgICAgICAgIEFKQVhVcGRhdGUgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgVXBkYXRhYmxlRmllbGRzICAgICAgPT4gJFNlbGYtPl9HZXRGaWVsZHNUb1VwZGF0ZSgpLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBwdXNoIEBBcnRpY2xlVHlwZUR5bmFtaWNGaWVsZHMsIHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICBMYWJlbCAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRIVE1MLT57TGFiZWx9LAogICAgICAgICAgICAgICAgICAgIEZpZWxkICAgICAgICAgICAgPT4gJER5bmFtaWNGaWVsZEhUTUwtPntGaWVsZH0sCiAgICAgICAgICAgICAgICAgICAgTWFuZGF0b3J5VG9vbHRpcCA9PiAkTWFuZGF0b3J5VG9vbHRpcCwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgcHJpbnQgZm9ybSAuLi4KICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgICAgICBUeXBlICAgICAgPT4gJ1NtYWxsJywKICAgICAgICAgICAgVmFsdWUgICAgID0+ICRUaWNrZXR7VGlja2V0TnVtYmVyfSwKICAgICAgICAgICAgQm9keUNsYXNzID0+ICdQb3B1cCcsCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT5fTWFzaygKICAgICAgICAgICAgVGltZVVuaXRzUmVxdWlyZWQgPT4gKAogICAgICAgICAgICAgICAgJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpOZWVkQWNjb3VudGVkVGltZScpCiAgICAgICAgICAgICAgICA/ICdWYWxpZGF0ZV9SZXF1aXJlZCcKICAgICAgICAgICAgICAgIDogJycKICAgICAgICAgICAgKSwKICAgICAgICAgICAgVGlja2V0VHlwZUR5bmFtaWNGaWVsZHMgID0+IFxAVGlja2V0VHlwZUR5bmFtaWNGaWVsZHMsCiAgICAgICAgICAgIEFydGljbGVUeXBlRHluYW1pY0ZpZWxkcyA9PiBcQEFydGljbGVUeXBlRHluYW1pY0ZpZWxkcywKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAlVGlja2V0LAogICAgICAgICAgICBDdXN0b21lclVzZXJJRCA9PiAkR2V0UGFyYW17Q3VzdG9tZXJVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoCiAgICAgICAgICAgIFR5cGUgPT4gJ1NtYWxsJywKICAgICAgICApOwogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQp9CgpzdWIgX01hc2sgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBsaXN0IHR5cGUKICAgIG15ICRUcmVlVmlldyA9IDA7CiAgICBteSAlU2VsZWN0ZWQ7CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6Okxpc3RUeXBlJykgZXEgJ3RyZWUnICkgewogICAgICAgICRUcmVlVmlldyA9IDE7CiAgICB9CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIG15ICRUaWNrZXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CgogICAgbXkgJVRpY2tldCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEdldCggVGlja2V0SUQgPT4gJFNlbGYtPntUaWNrZXRJRH0gKTsKCiAgICAjIGdldCBjb25maWcgb2YgZnJvbnRlbmQgbW9kdWxlCiAgICBteSAkQ29uZmlnID0gJENvbmZpZ09iamVjdC0+R2V0KCJUaWNrZXQ6OkZyb250ZW5kOjokU2VsZi0+e0FjdGlvbn0iKTsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgIG15ICRDdXN0b21lclVzZXJNYWlsU3RyaW5nID0gZGVsZXRlICRQYXJhbXtDdXN0b21lclVzZXJJRH07CiAgICAkUGFyYW17Q3VzdG9tZXJVc2VySUR9ICA9ICRQYXJhbXtTZWxlY3RlZEN1c3RvbWVyVXNlcn0gfHwgJyc7CiAgICAkVGlja2V0e0N1c3RvbWVyVXNlcklEfSA9ICRQYXJhbXtTZWxlY3RlZEN1c3RvbWVyVXNlcn0gfHwgJyc7CgogICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgIEtleSAgID0+ICdDdXN0b21lck1haWxTdHJpbmcnLAogICAgICAgIFZhbHVlID0+ICRDdXN0b21lclVzZXJNYWlsU3RyaW5nLAogICAgKTsKCiAgICAjIERlZmluZSB0aGUgZHluYW1pYyBmaWVsZHMgdG8gc2hvdyBiYXNlZCBvbiB0aGUgb2JqZWN0IHR5cGUuCiAgICBteSAkT2JqZWN0VHlwZSA9IFsnVGlja2V0J107CgogICAgIyBPbmx5IHNjcmVlbnMgdGhhdCBhZGQgbm90ZXMgY2FuIG1vZGlmeSBBcnRpY2xlIGR5bmFtaWMgZmllbGRzLgogICAgaWYgKCAkQ29uZmlnLT57Tm90ZX0gKSB7CiAgICAgICAgJE9iamVjdFR5cGUgPSBbICdUaWNrZXQnLCAnQXJ0aWNsZScgXTsKICAgIH0KCiAgICAjIEdldCBkeW5hbWljIGZpZWxkcyBmb3IgdGhpcyBzY3JlZW4uCiAgICBteSAkRHluYW1pY0ZpZWxkID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0VHlwZSAgPT4gJE9iamVjdFR5cGUsCiAgICAgICAgRmllbGRGaWx0ZXIgPT4gJENvbmZpZy0+e0R5bmFtaWNGaWVsZH0gfHwge30sCiAgICApOwoKICAgIGlmICggJENvbmZpZy0+e1RpdGxlfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVGl0bGUnLAogICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkRHluYW1pY0ZpZWxkTmFtZXMgPSAkU2VsZi0+X0dldEZpZWxkc1RvVXBkYXRlKAogICAgICAgIE9ubHlEeW5hbWljRmllbGRzID0+IDEsCiAgICApOwoKICAgICMgc2VuZCBkYXRhIHRvIEpTCiAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgS2V5ICAgPT4gJ0R5bmFtaWNGaWVsZE5hbWVzJywKICAgICAgICBWYWx1ZSA9PiAkRHluYW1pY0ZpZWxkTmFtZXMsCiAgICApOwoKICAgICMgdHlwZXMKICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OlR5cGUnKSAmJiAkQ29uZmlnLT57VGlja2V0VHlwZX0gKSB7CiAgICAgICAgbXkgJVR5cGUgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRUeXBlTGlzdCgKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBBY3Rpb24gPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICRTZWxlY3RlZHtUeXBlSUR9ID0gJFBhcmFte05ld1R5cGVJRH0gfHwgJFBhcmFte1R5cGVJRH0gfHwgJyc7CgogICAgICAgICRQYXJhbXtUeXBlU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgQ2xhc3MgICAgICAgID0+ICdWYWxpZGF0ZV9SZXF1aXJlZCBNb2Rlcm5pemUgJyAuICggJFBhcmFte0Vycm9yc30tPntUeXBlSURJbnZhbGlkfSB8fCAnJyApLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVUeXBlLAogICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJ1R5cGVJRCcsCiAgICAgICAgICAgIFNlbGVjdGVkSUQgICA9PiAkU2VsZWN0ZWR7VHlwZUlEfSwKICAgICAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgICAgIFNvcnQgICAgICAgICA9PiAnQWxwaGFudW1lcmljVmFsdWUnLAogICAgICAgICAgICBUcmFuc2xhdGlvbiAgPT4gMCwKICAgICAgICApOwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdUeXBlJywKICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICApOwogICAgfQoKICAgIGlmICggJENvbmZpZy0+e0N1c3RvbWVyVXNlcn0gKSB7CiAgICAgICAgJFBhcmFte0N1c3RvbWVyVXNlck1hbmRhdG9yeX0gPSAkQ29uZmlnLT57Q3VzdG9tZXJVc2VyTWFuZGF0b3J5fTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0N1c3RvbWVyVXNlcicsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gJEN1c3RvbWVyVXNlck1haWxTdHJpbmcsCiAgICAgICAgICAgIH0KICAgICAgICApOwoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnQ3VzdG9tZXJJRCcsCiAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNlcnZpY2VzCiAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpTZXJ2aWNlJykgJiYgJENvbmZpZy0+e1NlcnZpY2V9ICkgewogICAgICAgIG15ICRTZXJ2aWNlcyA9ICRTZWxmLT5fR2V0U2VydmljZXMoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgQWN0aW9uID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIHJlc2V0IHByZXZpb3VzIFNlcnZpY2VJRCB0byByZXNldCBTTEEtTGlzdCBpZiBubyBzZXJ2aWNlIGlzIHNlbGVjdGVkCiAgICAgICAgaWYgKCAhJFBhcmFte1NlcnZpY2VJRH0gfHwgISRTZXJ2aWNlcy0+eyAkUGFyYW17U2VydmljZUlEfSB9ICkgewogICAgICAgICAgICAkUGFyYW17U2VydmljZUlEfSA9ICcnOwogICAgICAgIH0KCiAgICAgICAgJFNlbGVjdGVke1NlcnZpY2VJRH0gPSAkUGFyYW17TmV3U2VydmljZUlEfSB8fCAkUGFyYW17U2VydmljZUlEfSB8fCAnJzsKCiAgICAgICAgJFBhcmFte1NlcnZpY2VTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICBEYXRhICAgICAgID0+ICRTZXJ2aWNlcywKICAgICAgICAgICAgTmFtZSAgICAgICA9PiAnU2VydmljZUlEJywKICAgICAgICAgICAgU2VsZWN0ZWRJRCA9PiAkU2VsZWN0ZWR7U2VydmljZUlEfSwKICAgICAgICAgICAgQ2xhc3MgICAgICA9PiAiTW9kZXJuaXplICIKICAgICAgICAgICAgICAgIC4gKCAkQ29uZmlnLT57U2VydmljZU1hbmRhdG9yeX0gPyAnVmFsaWRhdGVfUmVxdWlyZWQgJyA6ICcnICkKICAgICAgICAgICAgICAgIC4gKCAkUGFyYW17U2VydmljZUludmFsaWR9IHx8ICcnICksCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICBUcmVlVmlldyAgICAgPT4gJFRyZWVWaWV3LAogICAgICAgICAgICBTb3J0ICAgICAgICAgPT4gJ1RyZWVWaWV3JywKICAgICAgICAgICAgVHJhbnNsYXRpb24gID0+IDAsCiAgICAgICAgICAgIE1heCAgICAgICAgICA9PiAyMDAsCiAgICAgICAgKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1NlcnZpY2UnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFNlcnZpY2VNYW5kYXRvcnkgPT4gJENvbmZpZy0+e1NlcnZpY2VNYW5kYXRvcnl9IHx8IDAsCiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJVNMQSA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFNMQUxpc3QoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgQWN0aW9uID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAkU2VsZWN0ZWR7U0xBSUR9ID0gJFBhcmFte05ld1NMQUlEfSB8fCAkUGFyYW17U0xBSUR9IHx8ICcnOwoKICAgICAgICAkUGFyYW17U0xBU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSAgICAgICA9PiBcJVNMQSwKICAgICAgICAgICAgTmFtZSAgICAgICA9PiAnU0xBSUQnLAogICAgICAgICAgICBTZWxlY3RlZElEID0+ICRTZWxlY3RlZHtTTEFJRH0sCiAgICAgICAgICAgIENsYXNzICAgICAgPT4gIk1vZGVybml6ZSAiCiAgICAgICAgICAgICAgICAuICggJENvbmZpZy0+e1NMQU1hbmRhdG9yeX0gPyAnVmFsaWRhdGVfUmVxdWlyZWQgJyA6ICcnICkKICAgICAgICAgICAgICAgIC4gKCAkUGFyYW17U2VydmljZUludmFsaWR9IHx8ICcnICksCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICBTb3J0ICAgICAgICAgPT4gJ0FscGhhbnVtZXJpY1ZhbHVlJywKICAgICAgICAgICAgVHJhbnNsYXRpb24gID0+IDAsCiAgICAgICAgICAgIE1heCAgICAgICAgICA9PiAyMDAsCiAgICAgICAgKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1NMQScsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgU0xBTWFuZGF0b3J5ID0+ICRDb25maWctPntTTEFNYW5kYXRvcnl9LAogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgaWYgKCAkQ29uZmlnLT57UXVldWV9ICkgewoKICAgICAgICAjIGZldGNoIGFsbCBxdWV1ZXMKICAgICAgICBteSAlTW92ZVF1ZXVlcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldE1vdmVMaXN0KAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBBY3Rpb24gICA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdtb3ZlX2ludG8nLAogICAgICAgICk7CgogICAgICAgICRTZWxlY3RlZHtRdWV1ZUlEfSA9ICRQYXJhbXtOZXdRdWV1ZUlEfSB8fCAkUGFyYW17UXVldWVJRH07CgogICAgICAgICMgc2V0IG1vdmUgcXVldWVzCiAgICAgICAgJFBhcmFte1F1ZXVlc1N0cmd9ID0gJExheW91dE9iamVjdC0+QWdlbnRRdWV1ZUxpc3RPcHRpb24oCiAgICAgICAgICAgIERhdGEgICAgID0+IHsgJU1vdmVRdWV1ZXMsICcnID0+ICctJyB9LAogICAgICAgICAgICBNdWx0aXBsZSA9PiAwLAogICAgICAgICAgICBTaXplICAgICA9PiAwLAogICAgICAgICAgICBDbGFzcyAgICA9PiAnTmV3UXVldWVJRCBNb2Rlcm5pemUgJwogICAgICAgICAgICAgICAgLiAoICRDb25maWctPntRdWV1ZU1hbmRhdG9yeX0gPyAnVmFsaWRhdGVfUmVxdWlyZWQgJyA6ICcnICkKICAgICAgICAgICAgICAgIC4gKCAkUGFyYW17TmV3UXVldWVJbnZhbGlkfSB8fCAnJyApLAogICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAnTmV3UXVldWVJRCcsCiAgICAgICAgICAgIFNlbGVjdGVkSUQgICAgID0+ICRTZWxlY3RlZHtRdWV1ZUlEfSwKICAgICAgICAgICAgVHJlZVZpZXcgICAgICAgPT4gJFRyZWVWaWV3LAogICAgICAgICAgICBDdXJyZW50UXVldWVJRCA9PiAkUGFyYW17UXVldWVJRH0sCiAgICAgICAgICAgIE9uQ2hhbmdlU3VibWl0ID0+IDAsCiAgICAgICAgKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1F1ZXVlJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBRdWV1ZU1hbmRhdG9yeSA9PiAkQ29uZmlnLT57UXVldWVNYW5kYXRvcnl9IHx8IDAsCiAgICAgICAgICAgICAgICAlUGFyYW0KICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkUXVldWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UXVldWUnKTsKICAgIG15ICRVc2VyT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CiAgICBteSAkR3JvdXBPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKCiAgICBpZiAoICRDb25maWctPntPd25lcn0gKSB7CgogICAgICAgICMgZ2V0IHVzZXIgb2Ygb3duIGdyb3VwcwogICAgICAgIG15ICVTaG93blVzZXJzOwogICAgICAgIG15ICVBbGxHcm91cHNNZW1iZXJzID0gJFVzZXJPYmplY3QtPlVzZXJMaXN0KAogICAgICAgICAgICBUeXBlICA9PiAnU2hvcnQnLAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICk7CiAgICAgICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6Q2hhbmdlT3duZXJUb0V2ZXJ5b25lJykgKSB7CiAgICAgICAgICAgICVTaG93blVzZXJzID0gJUFsbEdyb3Vwc01lbWJlcnM7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBteSAkR0lEICAgICAgICA9ICRRdWV1ZU9iamVjdC0+R2V0UXVldWVHcm91cElEKCBRdWV1ZUlEID0+ICRUaWNrZXR7UXVldWVJRH0gKTsKICAgICAgICAgICAgbXkgJU1lbWJlckxpc3QgPSAkR3JvdXBPYmplY3QtPlBlcm1pc3Npb25Hcm91cEdldCgKICAgICAgICAgICAgICAgIEdyb3VwSUQgPT4gJEdJRCwKICAgICAgICAgICAgICAgIFR5cGUgICAgPT4gJ293bmVyJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgZm9yIG15ICRVc2VySUQgKCBzb3J0IGtleXMgJU1lbWJlckxpc3QgKSB7CiAgICAgICAgICAgICAgICAkU2hvd25Vc2Vyc3skVXNlcklEfSA9ICRBbGxHcm91cHNNZW1iZXJzeyRVc2VySUR9OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBteSAkQUNMID0gJFRpY2tldE9iamVjdC0+VGlja2V0QWNsKAogICAgICAgICAgICAlVGlja2V0LAogICAgICAgICAgICBBY3Rpb24gICAgICAgID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICAgICAgUmV0dXJuVHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICAgICAgUmV0dXJuU3ViVHlwZSA9PiAnTmV3T3duZXInLAogICAgICAgICAgICBEYXRhICAgICAgICAgID0+IFwlU2hvd25Vc2VycywKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCRBQ0wpIHsKICAgICAgICAgICAgJVNob3duVXNlcnMgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRBY2xEYXRhKCk7CiAgICAgICAgfQoKICAgICAgICBteSAlQWxsR3JvdXBzTWVtYmVyc0Z1bGxuYW1lcyA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICk7CgogICAgICAgIEBTaG93blVzZXJzeyBrZXlzICVTaG93blVzZXJzIH0gPSBAQWxsR3JvdXBzTWVtYmVyc0Z1bGxuYW1lc3sga2V5cyAlU2hvd25Vc2VycyB9OwoKICAgICAgICAjIGdldCBvbGQgb3duZXIKICAgICAgICBteSBAT2xkVXNlckluZm8gPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRPd25lckxpc3QoIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9ICk7CiAgICAgICAgbXkgQE9sZE93bmVyczsKICAgICAgICBteSAlT2xkT3duZXJzU2hvd247CiAgICAgICAgbXkgJVNlZW5PbGRPd25lcjsKICAgICAgICBpZiAoQE9sZFVzZXJJbmZvKSB7CiAgICAgICAgICAgIG15ICRDb3VudGVyID0gMTsKICAgICAgICAgICAgVVNFUjoKICAgICAgICAgICAgZm9yIG15ICRVc2VyICggcmV2ZXJzZSBAT2xkVXNlckluZm8gKSB7CgogICAgICAgICAgICAgICAgIyBza2lwIGlmIG9sZCBvd25lciBpcyBhbHJlYWR5IGluIHRoZSBsaXN0CiAgICAgICAgICAgICAgICBuZXh0IFVTRVIgaWYgJFNlZW5PbGRPd25lcnsgJFVzZXItPntVc2VySUR9IH07CiAgICAgICAgICAgICAgICAkU2Vlbk9sZE93bmVyeyAkVXNlci0+e1VzZXJJRH0gfSA9IDE7CiAgICAgICAgICAgICAgICBteSAkS2V5ICAgPSAkVXNlci0+e1VzZXJJRH07CiAgICAgICAgICAgICAgICBteSAkVmFsdWUgPSAiJENvdW50ZXI6ICRVc2VyLT57VXNlckZ1bGxuYW1lfSI7CiAgICAgICAgICAgICAgICBwdXNoIEBPbGRPd25lcnMsIHsKICAgICAgICAgICAgICAgICAgICBLZXkgICA9PiAkS2V5LAogICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICRWYWx1ZSwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAkT2xkT3duZXJzU2hvd257JEtleX0gPSAkVmFsdWU7CiAgICAgICAgICAgICAgICAkQ291bnRlcisrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBteSAkT2xkT3duZXJTZWxlY3RlZElEID0gJyc7CiAgICAgICAgaWYgKCAkUGFyYW17T2xkT3duZXJJRH0gKSB7CiAgICAgICAgICAgICRPbGRPd25lclNlbGVjdGVkSUQgPSAkUGFyYW17T2xkT3duZXJJRH07CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJE9sZFVzZXJJbmZvWzBdLT57VXNlcklEfSApIHsKICAgICAgICAgICAgJE9sZE93bmVyU2VsZWN0ZWRJRCA9ICRPbGRVc2VySW5mb1swXS0+e1VzZXJJRH0gLiAnMSc7CiAgICAgICAgfQoKICAgICAgICBteSAkT2xkT3duZXJBQ0wgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRBY2woCiAgICAgICAgICAgICVUaWNrZXQsCiAgICAgICAgICAgIEFjdGlvbiAgICAgICAgPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgICAgICBSZXR1cm5UeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgICAgICBSZXR1cm5TdWJUeXBlID0+ICdPbGRPd25lcicsCiAgICAgICAgICAgIERhdGEgICAgICAgICAgPT4gXCVPbGRPd25lcnNTaG93biwKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCRPbGRPd25lckFDTCkgewogICAgICAgICAgICAlT2xkT3duZXJzU2hvd24gPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRBY2xEYXRhKCk7CiAgICAgICAgfQoKICAgICAgICAkU2VsZWN0ZWR7T3duZXJJRH0gPSAkUGFyYW17TmV3T3duZXJJRH0gfHwgJFBhcmFte093bmVySUR9IHx8ICcnOwoKICAgICAgICAjIGJ1aWxkIHN0cmluZwogICAgICAgICRQYXJhbXtPd25lclN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgIERhdGEgICAgICAgPT4gXCVTaG93blVzZXJzLAogICAgICAgICAgICBTZWxlY3RlZElEID0+ICRTZWxlY3RlZHtPd25lcklEfSwKICAgICAgICAgICAgTmFtZSAgICAgICA9PiAnTmV3T3duZXJJRCcsCiAgICAgICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZSAnCiAgICAgICAgICAgICAgICAuICggJENvbmZpZy0+e093bmVyTWFuZGF0b3J5fSA/ICdWYWxpZGF0ZV9SZXF1aXJlZCAnIDogJycgKQogICAgICAgICAgICAgICAgLiAoICRQYXJhbXtOZXdPd25lckludmFsaWR9IHx8ICcnICksCiAgICAgICAgICAgIFNpemUgICAgICAgICA9PiAxLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgRmlsdGVycyAgICAgID0+IHsKICAgICAgICAgICAgICAgIE9sZE93bmVycyA9PiB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAgID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnUHJldmlvdXMgT3duZXInKSwKICAgICAgICAgICAgICAgICAgICBWYWx1ZXMgPT4gXCVPbGRPd25lcnNTaG93biwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ093bmVyJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBPd25lck1hbmRhdG9yeSA9PiAkQ29uZmlnLT57T3duZXJNYW5kYXRvcnl9IHx8IDAsCiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpSZXNwb25zaWJsZScpICYmICRDb25maWctPntSZXNwb25zaWJsZX0gKSB7CgogICAgICAgICMgZ2V0IHVzZXIgb2Ygb3duIGdyb3VwcwogICAgICAgIG15ICVTaG93blVzZXJzOwogICAgICAgIG15ICVBbGxHcm91cHNNZW1iZXJzID0gJFVzZXJPYmplY3QtPlVzZXJMaXN0KAogICAgICAgICAgICBUeXBlICA9PiAnU2hvcnQnLAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICk7CiAgICAgICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6Q2hhbmdlT3duZXJUb0V2ZXJ5b25lJykgKSB7CiAgICAgICAgICAgICVTaG93blVzZXJzID0gJUFsbEdyb3Vwc01lbWJlcnM7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBteSAkR0lEICAgICAgICA9ICRRdWV1ZU9iamVjdC0+R2V0UXVldWVHcm91cElEKCBRdWV1ZUlEID0+ICRUaWNrZXR7UXVldWVJRH0gKTsKICAgICAgICAgICAgbXkgJU1lbWJlckxpc3QgPSAkR3JvdXBPYmplY3QtPlBlcm1pc3Npb25Hcm91cEdldCgKICAgICAgICAgICAgICAgIEdyb3VwSUQgPT4gJEdJRCwKICAgICAgICAgICAgICAgIFR5cGUgICAgPT4gJ3Jlc3BvbnNpYmxlJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgZm9yIG15ICRVc2VySUQgKCBzb3J0IGtleXMgJU1lbWJlckxpc3QgKSB7CiAgICAgICAgICAgICAgICAkU2hvd25Vc2Vyc3skVXNlcklEfSA9ICRBbGxHcm91cHNNZW1iZXJzeyRVc2VySUR9OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBteSAkQUNMID0gJFRpY2tldE9iamVjdC0+VGlja2V0QWNsKAogICAgICAgICAgICAlVGlja2V0LAogICAgICAgICAgICBBY3Rpb24gICAgICAgID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICAgICAgUmV0dXJuVHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICAgICAgUmV0dXJuU3ViVHlwZSA9PiAnTmV3UmVzcG9uc2libGUnLAogICAgICAgICAgICBEYXRhICAgICAgICAgID0+IFwlU2hvd25Vc2VycywKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCRBQ0wpIHsKICAgICAgICAgICAgJVNob3duVXNlcnMgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRBY2xEYXRhKCk7CiAgICAgICAgfQoKICAgICAgICBteSAlQWxsR3JvdXBzTWVtYmVyc0Z1bGxuYW1lcyA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICk7CgogICAgICAgIEBTaG93blVzZXJzeyBrZXlzICVTaG93blVzZXJzIH0gPSBAQWxsR3JvdXBzTWVtYmVyc0Z1bGxuYW1lc3sga2V5cyAlU2hvd25Vc2VycyB9OwoKICAgICAgICAkU2VsZWN0ZWR7UmVzcG9uc2libGVJRH0gPSAkUGFyYW17TmV3UmVzcG9uc2libGVJRH0gfHwgJFBhcmFte1Jlc3BvbnNpYmxlSUR9IHx8ICcnOwoKICAgICAgICAjIGdldCByZXNwb25zaWJsZQogICAgICAgICRQYXJhbXtSZXNwb25zaWJsZVN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgIERhdGEgICAgICAgPT4gXCVTaG93blVzZXJzLAogICAgICAgICAgICBTZWxlY3RlZElEID0+ICRTZWxlY3RlZHtSZXNwb25zaWJsZUlEfSwKICAgICAgICAgICAgTmFtZSAgICAgICA9PiAnTmV3UmVzcG9uc2libGVJRCcsCiAgICAgICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZSAnCiAgICAgICAgICAgICAgICAuICggJENvbmZpZy0+e1Jlc3BvbnNpYmxlTWFuZGF0b3J5fSA/ICdWYWxpZGF0ZV9SZXF1aXJlZCAnIDogJycgKQogICAgICAgICAgICAgICAgLiAoICRQYXJhbXtOZXdSZXNwb25zaWJsZUludmFsaWR9IHx8ICcnICksCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICBTaXplICAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdSZXNwb25zaWJsZScsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgUmVzcG9uc2libGVNYW5kYXRvcnkgPT4gJENvbmZpZy0+e1Jlc3BvbnNpYmxlTWFuZGF0b3J5fSB8fCAwLAogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgfQoKICAgIGlmICggJENvbmZpZy0+e1N0YXRlfSApIHsKCiAgICAgICAgbXkgJVN0YXRlOwogICAgICAgIG15ICVTdGF0ZUxpc3QgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRTdGF0ZUxpc3QoCiAgICAgICAgICAgIEFjdGlvbiAgID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICEkUGFyYW17TmV3U3RhdGVJRH0gKSB7CiAgICAgICAgICAgIGlmICggJENvbmZpZy0+e1N0YXRlRGVmYXVsdH0gKSB7CiAgICAgICAgICAgICAgICBteSAlU3RhdGVMaXN0UmV2ZXJzZWQgPSByZXZlcnNlICVTdGF0ZUxpc3Q7CiAgICAgICAgICAgICAgICAkU2VsZWN0ZWR7U3RhdGVJRH0gPSAkU3RhdGVMaXN0UmV2ZXJzZWR7ICRDb25maWctPntTdGF0ZURlZmF1bHR9IH07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkU2VsZWN0ZWR7U3RhdGVJRH0gPSAkUGFyYW17U3RhdGVJRH0gfHwgJyc7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRTZWxlY3RlZHtTdGF0ZUlEfSA9ICRQYXJhbXtOZXdTdGF0ZUlEfSB8fCAkUGFyYW17U3RhdGVJRH0gfHwgJyc7CiAgICAgICAgfQoKICAgICAgICAkUGFyYW17U3RhdGVTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICBEYXRhICA9PiBcJVN0YXRlTGlzdCwKICAgICAgICAgICAgTmFtZSAgPT4gJ05ld1N0YXRlSUQnLAogICAgICAgICAgICBDbGFzcyA9PiAnTW9kZXJuaXplICcKICAgICAgICAgICAgICAgIC4gKCAkQ29uZmlnLT57U3RhdGVNYW5kYXRvcnl9ID8gJ1ZhbGlkYXRlX1JlcXVpcmVkICcgOiAnJyApCiAgICAgICAgICAgICAgICAuICggJFBhcmFte05ld1N0YXRlSW52YWxpZH0gfHwgJycgKSwKICAgICAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgICAgIFNlbGVjdGVkSUQgICA9PiAkU2VsZWN0ZWR7U3RhdGVJRH0sCiAgICAgICAgKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1N0YXRlJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBTdGF0ZU1hbmRhdG9yeSA9PiAkQ29uZmlnLT57U3RhdGVNYW5kYXRvcnl9IHx8IDAsCiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCBJc0FycmF5UmVmV2l0aERhdGEoICRDb25maWctPntTdGF0ZVR5cGV9ICkgKSB7CgogICAgICAgICAgICBTVEFURVRZUEU6CiAgICAgICAgICAgIGZvciBteSAkU3RhdGVUeXBlICggQHsgJENvbmZpZy0+e1N0YXRlVHlwZX0gfSApIHsKCiAgICAgICAgICAgICAgICBuZXh0IFNUQVRFVFlQRSBpZiAhJFN0YXRlVHlwZTsKICAgICAgICAgICAgICAgIG5leHQgU1RBVEVUWVBFIGlmICRTdGF0ZVR5cGUgIX4gL3BlbmRpbmcvaTsKCiAgICAgICAgICAgICAgICAjIGdldCB1c2VkIGNhbGVuZGFyCiAgICAgICAgICAgICAgICBteSAkQ2FsZW5kYXIgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRDYWxlbmRhckdldCgKICAgICAgICAgICAgICAgICAgICAlVGlja2V0LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkUGFyYW17RGF0ZVN0cmluZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZERhdGVTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgIEZvcm1hdCAgICAgICAgICAgPT4gJ0RhdGVJbnB1dEZvcm1hdExvbmcnLAogICAgICAgICAgICAgICAgICAgIFllYXJQZXJpb2RQYXN0ICAgPT4gMCwKICAgICAgICAgICAgICAgICAgICBZZWFyUGVyaW9kRnV0dXJlID0+IDUsCiAgICAgICAgICAgICAgICAgICAgRGlmZlRpbWUgICAgICAgICA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6OlBlbmRpbmdEaWZmVGltZScpCiAgICAgICAgICAgICAgICAgICAgICAgIHx8IDAsCiAgICAgICAgICAgICAgICAgICAgQ2xhc3MgICAgICAgICAgICAgICAgPT4gJFBhcmFte0RhdGVJbnZhbGlkfSB8fCAnICcsCiAgICAgICAgICAgICAgICAgICAgVmFsaWRhdGUgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgICAgICBWYWxpZGF0ZURhdGVJbkZ1dHVyZSA9PiAxLAogICAgICAgICAgICAgICAgICAgIENhbGVuZGFyICAgICAgICAgICAgID0+ICRDYWxlbmRhciwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnU3RhdGVQZW5kaW5nJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIGxhc3QgU1RBVEVUWVBFOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IHByaW9yaXR5CiAgICBpZiAoICRDb25maWctPntQcmlvcml0eX0gKSB7CgogICAgICAgIG15ICVQcmlvcml0eTsKICAgICAgICBteSAlUHJpb3JpdHlMaXN0ID0gJFRpY2tldE9iamVjdC0+VGlja2V0UHJpb3JpdHlMaXN0KAogICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICBBY3Rpb24gICA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkQ29uZmlnLT57UHJpb3JpdHlEZWZhdWx0fSApIHsKICAgICAgICAgICAgJFByaW9yaXR5TGlzdHsnJ30gPSAnLSc7CiAgICAgICAgfQogICAgICAgIGlmICggISRQYXJhbXtOZXdQcmlvcml0eUlEfSApIHsKICAgICAgICAgICAgaWYgKCAkQ29uZmlnLT57UHJpb3JpdHlEZWZhdWx0fSApIHsKICAgICAgICAgICAgICAgIG15ICVQcmlvcml0eUxpc3RSZXZlcnNlZCA9IHJldmVyc2UgJVByaW9yaXR5TGlzdDsKICAgICAgICAgICAgICAgICRTZWxlY3RlZHtQcmlvcml0eUlEfSA9ICRQcmlvcml0eUxpc3RSZXZlcnNlZHsgJENvbmZpZy0+e1ByaW9yaXR5RGVmYXVsdH0gfTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRTZWxlY3RlZHtQcmlvcml0eUlEfSA9ICRQYXJhbXtQcmlvcml0eUlEfSB8fCAnJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFByaW9yaXR5e1NlbGVjdGVkSUR9ID0gJFBhcmFte05ld1ByaW9yaXR5SUR9OwogICAgICAgIH0KCiAgICAgICAgJFBhcmFte1ByaW9yaXR5U3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSAgPT4gXCVQcmlvcml0eUxpc3QsCiAgICAgICAgICAgIE5hbWUgID0+ICdOZXdQcmlvcml0eUlEJywKICAgICAgICAgICAgQ2xhc3MgPT4gJ01vZGVybml6ZSAnCiAgICAgICAgICAgICAgICAuICggJENvbmZpZy0+e1ByaW9yaXR5TWFuZGF0b3J5fSA/ICdWYWxpZGF0ZV9SZXF1aXJlZCAnIDogJycgKSwKICAgICAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgICAgIFNlbGVjdGVkSUQgICA9PiAkU2VsZWN0ZWR7UHJpb3JpdHlJRH0sCiAgICAgICAgKTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnUHJpb3JpdHknLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgIFByaW9yaXR5TWFuZGF0b3J5ID0+ICRDb25maWctPntQcmlvcml0eU1hbmRhdG9yeX0gfHwgMCwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17VGlja2V0VHlwZUR5bmFtaWNGaWVsZHN9ICkgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1RpY2tldFR5cGVEeW5hbWljRmllbGRzJywKICAgICAgICApOwogICAgfQoKICAgICMgR2V0IFRpY2tldCB0eXBlIGR5bmFtaWMgZmllbGRzLgogICAgZm9yIG15ICRUaWNrZXRUeXBlRHluYW1pY0ZpZWxkICggQHsgJFBhcmFte1RpY2tldFR5cGVEeW5hbWljRmllbGRzfSB9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdUaWNrZXRUeXBlRHluYW1pY0ZpZWxkJywKICAgICAgICAgICAgRGF0YSA9PiAkVGlja2V0VHlwZUR5bmFtaWNGaWVsZCwKICAgICAgICApOwoKICAgICAgICAjIE91dHB1dCBjdXN0b21pemF0aW9uIGJsb2NrIHRvbywgaWYgaXQgZXhpc3RzLgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdUaWNrZXRUeXBlRHluYW1pY0ZpZWxkXycgLiAkVGlja2V0VHlwZUR5bmFtaWNGaWVsZC0+e05hbWV9LAogICAgICAgICAgICBEYXRhID0+ICRUaWNrZXRUeXBlRHluYW1pY0ZpZWxkLAogICAgICAgICk7CiAgICB9CgogICAgIyBFbmQgV2lkZ2V0IFRpY2tldCBBY3Rpb25zCgogICAgIyBXaWRnZXQgQXJ0aWNsZQogICAgaWYgKCAkQ29uZmlnLT57Tm90ZX0gKSB7CgogICAgICAgICRQYXJhbXtDYXJkU3RhdHVzfSA9ICdjYXJkQ2xvc2VkJzsKCiAgICAgICAgaWYgKAogICAgICAgICAgICAkQ29uZmlnLT57Tm90ZU1hbmRhdG9yeX0KICAgICAgICAgICAgfHwgJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpOZWVkQWNjb3VudGVkVGltZScpCiAgICAgICAgICAgIHx8ICRTZWxmLT57UmVwbHlUb0FydGljbGV9CiAgICAgICAgICAgIHx8ICRQYXJhbXtDcmVhdGVBcnRpY2xlfQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkUGFyYW17Q2FyZFN0YXR1c30gPSAnJzsKICAgICAgICB9CgogICAgICAgIGlmICgKICAgICAgICAgICAgJENvbmZpZy0+e05vdGVNYW5kYXRvcnl9CiAgICAgICAgICAgIHx8ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpGcm9udGVuZDo6TmVlZEFjY291bnRlZFRpbWUnKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkUGFyYW17U3ViamVjdFJlcXVpcmVkfSA9ICdWYWxpZGF0ZV9SZXF1aXJlZCc7CiAgICAgICAgICAgICRQYXJhbXtCb2R5UmVxdWlyZWR9ICAgID0gJ1ZhbGlkYXRlX1JlcXVpcmVkJzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRQYXJhbXtTdWJqZWN0UmVxdWlyZWR9ID0gJ1ZhbGlkYXRlX0RlcGVuZGluZ1JlcXVpcmVkQU5EIFZhbGlkYXRlX0RlcGVuZGluZ19DcmVhdGVBcnRpY2xlJzsKICAgICAgICAgICAgJFBhcmFte0JvZHlSZXF1aXJlZH0gICAgPSAnVmFsaWRhdGVfRGVwZW5kaW5nUmVxdWlyZWRBTkQgVmFsaWRhdGVfRGVwZW5kaW5nX0NyZWF0ZUFydGljbGUnOwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgY3VzdG9tZXIgdmlzaWJpbGl0eSBvZiB0aGlzIG5vdGUgdG8gdGhlIHNhbWUgdmFsdWUgYXMgdGhlIGFydGljbGUgZm9yIHdob20gdGhpcyBpcyB0aGUgcmVwbHkKICAgICAgICBpZiAoICRTZWxmLT57UmVwbHlUb0FydGljbGV9ICYmICFkZWZpbmVkICRQYXJhbXtJc1Zpc2libGVGb3JDdXN0b21lcn0gKSB7CiAgICAgICAgICAgICRQYXJhbXtJc1Zpc2libGVGb3JDdXN0b21lcn0gPSAkU2VsZi0+e1JlcGx5VG9BcnRpY2xlQ29udGVudH0tPntJc1Zpc2libGVGb3JDdXN0b21lcn07CiAgICAgICAgfQogICAgICAgIGVsc2lmICggIWRlZmluZWQgJFBhcmFte0lzVmlzaWJsZUZvckN1c3RvbWVyfSApIHsKICAgICAgICAgICAgJFBhcmFte0lzVmlzaWJsZUZvckN1c3RvbWVyfSA9ICRDb25maWctPntJc1Zpc2libGVGb3JDdXN0b21lckRlZmF1bHR9OwogICAgICAgIH0KCiAgICAgICAgbXkgJFByZXZpZXdDb250ZW50VHlwZXMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0F0dGFjaG1lbnQnKS0+e1ByZXZpZXdDb250ZW50VHlwZXN9IHx8IHt9OwoKICAgICAgICAjIHNob3cgYXR0YWNobWVudHMKICAgICAgICBBVFRBQ0hNRU5UOgogICAgICAgIGZvciBteSAkQXR0YWNobWVudCAoIEB7ICRQYXJhbXtBdHRhY2htZW50c30gfSApIHsKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJEF0dGFjaG1lbnQtPntDb250ZW50SUR9CiAgICAgICAgICAgICAgICAmJiAkTGF5b3V0T2JqZWN0LT57QnJvd3NlclJpY2hUZXh0fQogICAgICAgICAgICAgICAgJiYgKCAkQXR0YWNobWVudC0+e0NvbnRlbnRUeXBlfSA9fiAvaW1hZ2UvaSApCiAgICAgICAgICAgICAgICAmJiAoICRBdHRhY2htZW50LT57RGlzcG9zaXRpb259IGVxICdpbmxpbmUnICkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbmV4dCBBVFRBQ0hNRU5UOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIEFkZCBwcmV2aWV3IGZsYWcgaWYgY29udGVudCB0eXBlIGlzIGluIHRoZSBwcmV2aWV3IGNvbnRlbnQgdHlwZXMgbGlzdC4KICAgICAgICAgICAgIyBUaGlzIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZSBhdHRhY2htZW50IGNhbiBiZSBwcmV2aWV3ZWQgaW4gdGhlIFVJLgogICAgICAgICAgICBpZiAoICRBdHRhY2htZW50LT57Q29udGVudFR5cGV9ICYmICRQcmV2aWV3Q29udGVudFR5cGVzLT57ICRBdHRhY2htZW50LT57Q29udGVudFR5cGV9IH0gKSB7CiAgICAgICAgICAgICAgICAkQXR0YWNobWVudC0+e1ByZXZpZXd9ID0gMTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcHVzaCBAeyAkUGFyYW17QXR0YWNobWVudExpc3R9IH0sICRBdHRhY2htZW50OwogICAgICAgIH0KCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1dpZGdldEFydGljbGUnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgIEZvcm1JRCA9PiAkU2VsZi0+e0Zvcm1JRH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgYWxsIHVzZXIgaWRzIG9mIGFnZW50cywgdGhhdCBjYW4gYmUgc2hvd24gaW4gdGhpcyBkaWFsb2cKICAgICAgICAjIGJhc2VkIG9uIHF1ZXVlIHJpZ2h0cwogICAgICAgIG15ICVTaG93blVzZXJzOwogICAgICAgIG15ICVBbGxHcm91cHNNZW1iZXJzID0gJFVzZXJPYmplY3QtPlVzZXJMaXN0KAogICAgICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgKTsKICAgICAgICBteSAkR0lEICAgICAgICA9ICRRdWV1ZU9iamVjdC0+R2V0UXVldWVHcm91cElEKCBRdWV1ZUlEID0+ICRUaWNrZXR7UXVldWVJRH0gKTsKICAgICAgICBteSAlTWVtYmVyTGlzdCA9ICRHcm91cE9iamVjdC0+UGVybWlzc2lvbkdyb3VwR2V0KAogICAgICAgICAgICBHcm91cElEID0+ICRHSUQsCiAgICAgICAgICAgIFR5cGUgICAgPT4gJ25vdGUnLAogICAgICAgICk7CiAgICAgICAgZm9yIG15ICRVc2VySUQgKCBzb3J0IGtleXMgJU1lbWJlckxpc3QgKSB7CiAgICAgICAgICAgICRTaG93blVzZXJzeyRVc2VySUR9ID0gJEFsbEdyb3Vwc01lbWJlcnN7JFVzZXJJRH07CiAgICAgICAgfQoKICAgICAgICAjIGNyZWF0ZSBlbWFpbCBwYXJzZXIgb2JqZWN0CiAgICAgICAgbXkgJEVtYWlsUGFyc2VyT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkVtYWlsUGFyc2VyLT5uZXcoCiAgICAgICAgICAgIE1vZGUgID0+ICdTdGFuZGFsb25lJywKICAgICAgICAgICAgRGVidWcgPT4gMCwKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIGFuZCByZXRyaWV2ZSBpbnZvbHZlZCBhbmQgaW5mb3JtZWQgYWdlbnRzIG9mIFJlcGx5VG8gTm90ZQogICAgICAgIG15IEBSZXBseVRvVXNlcnM7CiAgICAgICAgbXkgJVJlcGx5VG9Vc2Vyc0hhc2g7CiAgICAgICAgbXkgJVJlcGx5VG9Vc2VySURzOwogICAgICAgIGlmICggJFNlbGYtPntSZXBseVRvQXJ0aWNsZX0gKSB7CiAgICAgICAgICAgIG15IEBSZXBseVRvUGFydHMgPSAkRW1haWxQYXJzZXJPYmplY3QtPlNwbGl0QWRkcmVzc0xpbmUoCiAgICAgICAgICAgICAgICBMaW5lID0+ICRTZWxmLT57UmVwbHlUb0FydGljbGVDb250ZW50fS0+e1RvfSB8fCAnJywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIFJFUExZVE9QQVJUOgogICAgICAgICAgICBmb3IgbXkgJFNpbmdsZVJlcGx5VG9QYXJ0IChAUmVwbHlUb1BhcnRzKSB7CiAgICAgICAgICAgICAgICBteSAkUmVwbHlUb0FkZHJlc3MgPSAkRW1haWxQYXJzZXJPYmplY3QtPkdldEVtYWlsQWRkcmVzcygKICAgICAgICAgICAgICAgICAgICBFbWFpbCA9PiAkU2luZ2xlUmVwbHlUb1BhcnQsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG5leHQgUkVQTFlUT1BBUlQgaWYgISRSZXBseVRvQWRkcmVzczsKICAgICAgICAgICAgICAgIHB1c2ggQFJlcGx5VG9Vc2VycywgJFJlcGx5VG9BZGRyZXNzOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkUmVwbHlUb1VzZXJzSGFzaHskX30rKyBmb3IgQFJlcGx5VG9Vc2VyczsKCiAgICAgICAgICAgICMgZ2V0IHVzZXIgaWRzIG9mIGF2YWlsYWJsZSB1c2VycwogICAgICAgICAgICBmb3IgbXkgJFVzZXJJRCAoIHNvcnQga2V5cyAlU2hvd25Vc2VycyApIHsKICAgICAgICAgICAgICAgIG15ICVVc2VyRGF0YSA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbXkgJFVzZXJFbWFpbCA9ICRVc2VyRGF0YXtVc2VyRW1haWx9OwogICAgICAgICAgICAgICAgaWYgKCAkUmVwbHlUb1VzZXJzSGFzaHskVXNlckVtYWlsfSApIHsKICAgICAgICAgICAgICAgICAgICAkUmVwbHlUb1VzZXJJRHN7JFVzZXJJRH0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGFkZCBvcmlnaW5hbCBub3RlIHNlbmRlciB0byBsaXN0IG9mIHVzZXIgaWRzCiAgICAgICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCBAeyAkU2VsZi0+e1JlcGx5VG9TZW5kZXJVc2VySUR9IH0gKSB7CgogICAgICAgICAgICAgICAgIyBpZiBzZW5kZXIgcmVwbGllcyB0byBoaW1zZWxmLCBkbyBub3QgaW5jbHVkZSBzZW5kZXIgaW4gbGlzdAogICAgICAgICAgICAgICAgaWYgKCAkVXNlcklEIG5lICRTZWxmLT57VXNlcklEfSApIHsKICAgICAgICAgICAgICAgICAgICAkUmVwbHlUb1VzZXJJRHN7JFVzZXJJRH0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHJlbW92ZSB1c2VyIGlkIG9mIGFjdGl2ZSB1c2VyCiAgICAgICAgICAgIGRlbGV0ZSAkUmVwbHlUb1VzZXJJRHN7ICRTZWxmLT57VXNlcklEfSB9OwogICAgICAgIH0KCiAgICAgICAgaWYgKCAkQ29uZmlnLT57SW5mb3JtQWdlbnR9IHx8ICRDb25maWctPntJbnZvbHZlZEFnZW50fSApIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdJbmZvcm1BZGRpdGlvbmFsQWdlbnRzJywKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IHBhcmFtIG9iamVjdAogICAgICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICAgICAgIyBnZXQgYWxsIGFnZW50cyBmb3IgImludm9sdmVkIGFnZW50cyIKICAgICAgICBpZiAoICRDb25maWctPntJbnZvbHZlZEFnZW50fSApIHsKCiAgICAgICAgICAgIG15IEBVc2VySURzID0gJFRpY2tldE9iamVjdC0+VGlja2V0SW52b2x2ZWRBZ2VudHNMaXN0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBteSBASW52b2x2ZWRBZ2VudHM7CiAgICAgICAgICAgIG15ICRDb3VudGVyID0gMTsKCiAgICAgICAgICAgIG15IEBJbnZvbHZlZFVzZXJJRCA9ICRQYXJhbU9iamVjdC0+R2V0QXJyYXkoIFBhcmFtID0+ICdJbnZvbHZlZFVzZXJJRCcgKTsKCiAgICAgICAgICAgIG15ICVBZ2VudFdpdGhQZXJtaXNzaW9uID0gJEdyb3VwT2JqZWN0LT5QZXJtaXNzaW9uR3JvdXBHZXQoCiAgICAgICAgICAgICAgICBHcm91cElEID0+ICRHSUQsCiAgICAgICAgICAgICAgICBUeXBlICAgID0+ICdybycsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBVU0VSOgogICAgICAgICAgICBmb3IgbXkgJFVzZXIgKCByZXZlcnNlIEBVc2VySURzICkgewoKICAgICAgICAgICAgICAgIG5leHQgVVNFUiBpZiAhZGVmaW5lZCAkQWdlbnRXaXRoUGVybWlzc2lvbnsgJFVzZXItPntVc2VySUR9IH07CgogICAgICAgICAgICAgICAgbXkgJFZhbHVlID0gIiRDb3VudGVyOiAkVXNlci0+e1VzZXJGdWxsbmFtZX0iOwogICAgICAgICAgICAgICAgaWYgKCAkVXNlci0+e091dE9mT2ZmaWNlTWVzc2FnZX0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFZhbHVlIC49ICIgJFVzZXItPntPdXRPZk9mZmljZU1lc3NhZ2V9IjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBwdXNoIEBJbnZvbHZlZEFnZW50cywgewogICAgICAgICAgICAgICAgICAgIEtleSAgID0+ICRVc2VyLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVmFsdWUsCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgJENvdW50ZXIrKzsKCiAgICAgICAgICAgICAgICAjIGFkZCBpbnZvbHZlZCB1c2VyIGFzIHNlbGVjdGVkIGVudHJpZXMsIGlmIGF2YWlsYWJsZSBpbiBSZXBseVRvQWRkcmVzc2VzIGxpc3QKICAgICAgICAgICAgICAgIGlmICggJFNlbGYtPntSZXBseVRvQXJ0aWNsZX0gJiYgJFJlcGx5VG9Vc2VySURzeyAkVXNlci0+e1VzZXJJRH0gfSApIHsKICAgICAgICAgICAgICAgICAgICBwdXNoIEBJbnZvbHZlZFVzZXJJRCwgJFVzZXItPntVc2VySUR9OwogICAgICAgICAgICAgICAgICAgIGRlbGV0ZSAkUmVwbHlUb1VzZXJJRHN7ICRVc2VyLT57VXNlcklEfSB9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkSW52b2x2ZWRBZ2VudFNpemUgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6Okludm9sdmVkQWdlbnRNYXhTaXplJykgfHwgMzsKICAgICAgICAgICAgJFBhcmFte0ludm9sdmVkQWdlbnRTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgRGF0YSAgICAgICA9PiBcQEludm9sdmVkQWdlbnRzLAogICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCA9PiBcQEludm9sdmVkVXNlcklELAogICAgICAgICAgICAgICAgTmFtZSAgICAgICA9PiAnSW52b2x2ZWRVc2VySUQnLAogICAgICAgICAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICAgICAgICAgIE11bHRpcGxlICAgPT4gMSwKICAgICAgICAgICAgICAgIFNpemUgICAgICAgPT4gJEludm9sdmVkQWdlbnRTaXplLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBibG9jayBpcyBjYWxsZWQgYmVsb3cgImluZm9ybSBhZ2VudHMiCiAgICAgICAgfQoKICAgICAgICAjIGFnZW50IGxpc3QKICAgICAgICBpZiAoICRDb25maWctPntJbmZvcm1BZ2VudH0gKSB7CgogICAgICAgICAgICAjIGdldCBpbmZvcm0gdXNlciBsaXN0CiAgICAgICAgICAgIG15ICVJbmZvcm1BZ2VudHM7CiAgICAgICAgICAgIG15IEBJbmZvcm1Vc2VySUQgICAgPSAkUGFyYW1PYmplY3QtPkdldEFycmF5KCBQYXJhbSA9PiAnSW5mb3JtVXNlcklEJyApOwogICAgICAgICAgICBteSAlSW5mb3JtQWdlbnRMaXN0ID0gJEdyb3VwT2JqZWN0LT5QZXJtaXNzaW9uR3JvdXBHZXQoCiAgICAgICAgICAgICAgICBHcm91cElEID0+ICRHSUQsCiAgICAgICAgICAgICAgICBUeXBlICAgID0+ICdybycsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCBrZXlzICVJbmZvcm1BZ2VudExpc3QgKSB7CiAgICAgICAgICAgICAgICAkSW5mb3JtQWdlbnRzeyRVc2VySUR9ID0gJEFsbEdyb3Vwc01lbWJlcnN7JFVzZXJJRH07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICggJFNlbGYtPntSZXBseVRvQXJ0aWNsZX0gKSB7CgogICAgICAgICAgICAgICAgIyBnZXQgZW1haWwgYWRkcmVzcyBvZiBhbGwgdXNlcnMgYW5kIGNvbXBhcmUgdG8gcmVwbHl0by1hZGRyZXNzZXMKICAgICAgICAgICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCBrZXlzICVJbmZvcm1BZ2VudHMgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAkUmVwbHlUb1VzZXJJRHN7JFVzZXJJRH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQEluZm9ybVVzZXJJRCwgJFVzZXJJRDsKICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlICRSZXBseVRvVXNlcklEc3skVXNlcklEfTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRJbmZvcm1BZ2VudFNpemUgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6OkluZm9ybUFnZW50TWF4U2l6ZScpCiAgICAgICAgICAgICAgICB8fCAzOwogICAgICAgICAgICAkUGFyYW17T3B0aW9uU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgICAgIERhdGEgICAgICAgPT4gXCVJbmZvcm1BZ2VudHMsCiAgICAgICAgICAgICAgICBTZWxlY3RlZElEID0+IFxASW5mb3JtVXNlcklELAogICAgICAgICAgICAgICAgTmFtZSAgICAgICA9PiAnSW5mb3JtVXNlcklEJywKICAgICAgICAgICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgICAgICAgICBNdWx0aXBsZSAgID0+IDEsCiAgICAgICAgICAgICAgICBTaXplICAgICAgID0+ICRJbmZvcm1BZ2VudFNpemUsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnSW5mb3JtQWdlbnQnLAogICAgICAgICAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgaW52b2x2ZWQKICAgICAgICBpZiAoICRDb25maWctPntJbnZvbHZlZEFnZW50fSApIHsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnSW52b2x2ZWRBZ2VudCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHNob3cgbGlzdCBvZiBhZ2VudHMsIHRoYXQgcmVjZWl2ZSB0aGlzIG5vdGUgKFJlcGx5VG9Ob3RlKQogICAgICAgICMgYXQgbGVhc3Qgc2VuZGVyIG9mIG9yaWdpbmFsIG5vdGUgYW5kIGFsbCByZWNlcGllbnRzIG9mIHRoZSBvcmlnaW5hbCBub3RlCiAgICAgICAgIyB0aGF0IGNvdWxkbid0IGJlIHNlbGVjdGVkIHdpdGggaW52b2x2ZWQvaW5mb3JtIGFnZW50cwogICAgICAgIGlmICggJFNlbGYtPntSZXBseVRvQXJ0aWNsZX0gKSB7CgogICAgICAgICAgICBteSAkVXNlcnNIYXNoU2l6ZSA9IGtleXMgJVJlcGx5VG9Vc2VySURzOwogICAgICAgICAgICBteSAkQ291bnRlciAgICAgICA9IDA7CiAgICAgICAgICAgICRQYXJhbXtVc2VyTGlzdFdpdGhvdXRTZWxlY3Rpb259ID0gam9pbiggJywnLCBrZXlzICVSZXBseVRvVXNlcklEcyApOwoKICAgICAgICAgICAgaWYgKCAkVXNlcnNIYXNoU2l6ZSA+IDAgKSB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJbmZvcm1BZ2VudHNXaXRob3V0U2VsZWN0aW9uJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCBrZXlzICVSZXBseVRvVXNlcklEcyApIHsKICAgICAgICAgICAgICAgICAgICAkQ291bnRlcisrOwoKICAgICAgICAgICAgICAgICAgICBteSAlVXNlckRhdGEgPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJbmZvcm1BZ2VudHNXaXRob3V0U2VsZWN0aW9uU2luZ2xlVXNlcicsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gXCVVc2VyRGF0YSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAjIG91dHB1dCBhIHNlcGFyYXRvciAoSW5mb3JtQWdlbnRzV2l0aG91dFNlbGVjdGlvblNpbmdsZVVzZXJTZXBhcmF0b3IpLAogICAgICAgICAgICAgICAgICAgICMgaWYgbm90IGxhc3QgZW50cnkKICAgICAgICAgICAgICAgICAgICBpZiAoICRDb3VudGVyIDwgJFVzZXJzSGFzaFNpemUgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnSW5mb3JtQWdlbnRzV2l0aG91dFNlbGVjdGlvblNpbmdsZVVzZXJTZXBhcmF0b3InLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiBcJVVzZXJEYXRhLAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBhZGQgcmljaCB0ZXh0IGVkaXRvcgogICAgICAgIGlmICggJExheW91dE9iamVjdC0+e0Jyb3dzZXJSaWNoVGV4dH0gKSB7CgogICAgICAgICAgICAjIHVzZSBoZWlnaHQvd2lkdGggZGVmaW5lZCBmb3IgdGhpcyBzY3JlZW4KICAgICAgICAgICAgJFBhcmFte1JpY2hUZXh0SGVpZ2h0fSA9ICRDb25maWctPntSaWNoVGV4dEhlaWdodH0gfHwgMDsKICAgICAgICAgICAgJFBhcmFte1JpY2hUZXh0V2lkdGh9ICA9ICRDb25maWctPntSaWNoVGV4dFdpZHRofSAgfHwgMDsKCiAgICAgICAgICAgICMgc2V0IHVwIHJpY2ggdGV4dCBlZGl0b3IKICAgICAgICAgICAgJExheW91dE9iamVjdC0+U2V0UmljaFRleHRQYXJhbWV0ZXJzKAogICAgICAgICAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKAogICAgICAgICAgICAkQ29uZmlnLT57Tm90ZU1hbmRhdG9yeX0KICAgICAgICAgICAgfHwgJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpOZWVkQWNjb3VudGVkVGltZScpCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnU3ViamVjdExhYmVsTWFuZGF0b3J5JywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdSaWNoVGV4dExhYmVsTWFuZGF0b3J5JywKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnU3ViamVjdExhYmVsJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdSaWNoVGV4dExhYmVsJywKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgYnVpbGQgdGV4dCB0ZW1wbGF0ZSBzdHJpbmcKICAgICAgICBteSAlU3RhbmRhcmRUZW1wbGF0ZXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3RhbmRhcmRUZW1wbGF0ZScpLT5TdGFuZGFyZFRlbXBsYXRlTGlzdCgKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgVHlwZSAgPT4gJ05vdGUnLAogICAgICAgICk7CgogICAgICAgIG15ICRRdWV1ZVN0YW5kYXJkVGVtcGxhdGVzID0gJFNlbGYtPl9HZXRTdGFuZGFyZFRlbXBsYXRlcygKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkU2VsZi0+e1RpY2tldElEfSB8fCAnJywKICAgICAgICApOwoKICAgICAgICBpZiAoCiAgICAgICAgICAgIElzSGFzaFJlZldpdGhEYXRhKCRRdWV1ZVN0YW5kYXJkVGVtcGxhdGVzKQogICAgICAgICAgICB8fCAoICRDb25maWctPntRdWV1ZX0gJiYgJVN0YW5kYXJkVGVtcGxhdGVzICkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFBhcmFte1N0YW5kYXJkVGVtcGxhdGVTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+ICRRdWV1ZVN0YW5kYXJkVGVtcGxhdGVzIHx8IHt9LAogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdTdGFuZGFyZFRlbXBsYXRlSUQnLAogICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRQYXJhbXtTdGFuZGFyZFRlbXBsYXRlSUR9IHx8ICcnLAogICAgICAgICAgICAgICAgQ2xhc3MgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgICAgICAgICBTb3J0ICAgICAgICAgPT4gJ0FscGhhbnVtZXJpY1ZhbHVlJywKICAgICAgICAgICAgICAgIFRyYW5zbGF0aW9uICA9PiAxLAogICAgICAgICAgICAgICAgTWF4ICAgICAgICAgID0+IDIwMCwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdTdGFuZGFyZFRlbXBsYXRlJywKICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHNob3cgdGltZSBhY2NvdW50aW5nIGJveAogICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpBY2NvdW50VGltZScpICkgewogICAgICAgICAgICAkUGFyYW17VGltZVVuaXRzQmxvY2t9ID0gJExheW91dE9iamVjdC0+VGltZVVuaXRzKAogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICApOwogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1RpbWVVbml0cycsCiAgICAgICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSggJFBhcmFte0FydGljbGVUeXBlRHluYW1pY0ZpZWxkc30gKSApIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdBcnRpY2xlVHlwZUR5bmFtaWNGaWVsZHMnLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBHZXQgQXJ0aWNsZSB0eXBlIGR5bmFtaWMgZmllbGRzLgogICAgICAgIGZvciBteSAkQXJ0aWNsZVR5cGVEeW5hbWljRmllbGQgKCBAeyAkUGFyYW17QXJ0aWNsZVR5cGVEeW5hbWljRmllbGRzfSB9ICkgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0FydGljbGVUeXBlRHluYW1pY0ZpZWxkJywKICAgICAgICAgICAgICAgIERhdGEgPT4gJEFydGljbGVUeXBlRHluYW1pY0ZpZWxkLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAkQXJ0aWNsZVR5cGVEeW5hbWljRmllbGQtPntNYW5kYXRvcnlUb29sdGlwfSApIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0FydGljbGVUeXBlRHluYW1pY0ZpZWxkRXJyb3InLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gJEFydGljbGVUeXBlRHluYW1pY0ZpZWxkLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBPdXRwdXQgY3VzdG9taXphdGlvbiBibG9jayB0b28sIGlmIGl0IGV4aXN0cy4KICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdBcnRpY2xlVHlwZUR5bmFtaWNGaWVsZF8nIC4gJEFydGljbGVUeXBlRHluYW1pY0ZpZWxkLT57TmFtZX0sCiAgICAgICAgICAgICAgICBEYXRhID0+ICRBcnRpY2xlVHlwZUR5bmFtaWNGaWVsZCwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBFbmQgV2lkZ2V0IEFydGljbGUKCiAgICAjIGdldCBvdXRwdXQgYmFjawogICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtCiAgICApOwp9CgpzdWIgX0dldE5leHRTdGF0ZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlTmV4dFN0YXRlcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKS0+VGlja2V0U3RhdGVMaXN0KAogICAgICAgIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgIEFjdGlvbiAgID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgJVBhcmFtLAogICAgKTsKCiAgICByZXR1cm4gXCVOZXh0U3RhdGVzOwp9CgpzdWIgX0dldFJlc3BvbnNpYmxlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFVzZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKICAgIG15ICVTaG93blVzZXJzOwogICAgbXkgJUFsbEdyb3Vwc01lbWJlcnMgPSAkVXNlck9iamVjdC0+VXNlckxpc3QoCiAgICAgICAgVHlwZSAgPT4gJ1Nob3J0JywKICAgICAgICBWYWxpZCA9PiAxLAogICAgKTsKCiAgICAjIHNob3cgYWxsIHVzZXJzCiAgICBpZiAoICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnVGlja2V0OjpDaGFuZ2VPd25lclRvRXZlcnlvbmUnKSApIHsKICAgICAgICAlU2hvd25Vc2VycyA9ICVBbGxHcm91cHNNZW1iZXJzOwogICAgfQoKICAgICMgc2hvdyBvbmx5IHVzZXJzIHdpdGggcmVzcG9uc2libGUgb3IgcncgcGVtaXNzaW9ucyBpbiB0aGUgcXVldWUKICAgIGVsc2lmICggJFBhcmFte1F1ZXVlSUR9ICYmICEkUGFyYW17QWxsVXNlcnN9ICkgewogICAgICAgIG15ICRHSUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UXVldWUnKS0+R2V0UXVldWVHcm91cElEKAogICAgICAgICAgICBRdWV1ZUlEID0+ICRQYXJhbXtOZXdRdWV1ZUlEfSB8fCAkUGFyYW17UXVldWVJRH0KICAgICAgICApOwogICAgICAgIG15ICVNZW1iZXJMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyktPlBlcm1pc3Npb25Hcm91cEdldCgKICAgICAgICAgICAgR3JvdXBJRCA9PiAkR0lELAogICAgICAgICAgICBUeXBlICAgID0+ICdyZXNwb25zaWJsZScsCiAgICAgICAgKTsKICAgICAgICBmb3IgbXkgJFVzZXJJRCAoIHNvcnQga2V5cyAlTWVtYmVyTGlzdCApIHsKICAgICAgICAgICAgJFNob3duVXNlcnN7JFVzZXJJRH0gPSAkQWxsR3JvdXBzTWVtYmVyc3skVXNlcklEfTsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgdGlja2V0IG9iamVjdAogICAgbXkgJFRpY2tldE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKTsKCiAgICAjIHdvcmtmbG93CiAgICBteSAkQUNMID0gJFRpY2tldE9iamVjdC0+VGlja2V0QWNsKAogICAgICAgICVQYXJhbSwKICAgICAgICBBY3Rpb24gICAgICAgID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICBSZXR1cm5UeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIFJldHVyblN1YlR5cGUgPT4gJ05ld1Jlc3BvbnNpYmxlJywKICAgICAgICBEYXRhICAgICAgICAgID0+IFwlU2hvd25Vc2VycywKICAgICAgICBVc2VySUQgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgaWYgKCRBQ0wpIHsKICAgICAgICAlU2hvd25Vc2VycyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEFjbERhdGEoKTsKICAgIH0KCiAgICBteSAlQWxsR3JvdXBzTWVtYmVyc0Z1bGxuYW1lcyA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgVmFsaWQgPT4gMSwKICAgICk7CgogICAgQFNob3duVXNlcnN7IGtleXMgJVNob3duVXNlcnMgfSA9IEBBbGxHcm91cHNNZW1iZXJzRnVsbG5hbWVzeyBrZXlzICVTaG93blVzZXJzIH07CgogICAgcmV0dXJuIFwlU2hvd25Vc2VyczsKfQoKc3ViIF9HZXRPd25lcnMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkVXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgbXkgJVNob3duVXNlcnM7CiAgICBteSAlQWxsR3JvdXBzTWVtYmVycyA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICBUeXBlICA9PiAnU2hvcnQnLAogICAgICAgIFZhbGlkID0+IDEsCiAgICApOwoKICAgICMgc2hvdyBhbGwgdXNlcnMKICAgIGlmICggJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdUaWNrZXQ6OkNoYW5nZU93bmVyVG9FdmVyeW9uZScpICkgewogICAgICAgICVTaG93blVzZXJzID0gJUFsbEdyb3Vwc01lbWJlcnM7CiAgICB9CgogICAgIyBzaG93IG9ubHkgdXNlcnMgd2l0aCBvd25lciBvciBydyBwZW1pc3Npb25zIGluIHRoZSBxdWV1ZQogICAgZWxzaWYgKCAkUGFyYW17UXVldWVJRH0gJiYgISRQYXJhbXtBbGxVc2Vyc30gKSB7CiAgICAgICAgbXkgJEdJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpRdWV1ZScpLT5HZXRRdWV1ZUdyb3VwSUQoCiAgICAgICAgICAgIFF1ZXVlSUQgPT4gJFBhcmFte05ld1F1ZXVlSUR9IHx8ICRQYXJhbXtRdWV1ZUlEfQogICAgICAgICk7CiAgICAgICAgbXkgJU1lbWJlckxpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKS0+UGVybWlzc2lvbkdyb3VwR2V0KAogICAgICAgICAgICBHcm91cElEID0+ICRHSUQsCiAgICAgICAgICAgIFR5cGUgICAgPT4gJ293bmVyJywKICAgICAgICApOwogICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCBrZXlzICVNZW1iZXJMaXN0ICkgewogICAgICAgICAgICAkU2hvd25Vc2Vyc3skVXNlcklEfSA9ICRBbGxHcm91cHNNZW1iZXJzeyRVc2VySUR9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCB0aWNrZXQgb2JqZWN0CiAgICBteSAkVGlja2V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwoKICAgICMgd29ya2Zsb3cKICAgIG15ICRBQ0wgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRBY2woCiAgICAgICAgJVBhcmFtLAogICAgICAgIEFjdGlvbiAgICAgICAgPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgIFJldHVyblR5cGUgICAgPT4gJ1RpY2tldCcsCiAgICAgICAgUmV0dXJuU3ViVHlwZSA9PiAnTmV3T3duZXInLAogICAgICAgIERhdGEgICAgICAgICAgPT4gXCVTaG93blVzZXJzLAogICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICBpZiAoJEFDTCkgewogICAgICAgICVTaG93blVzZXJzID0gJFRpY2tldE9iamVjdC0+VGlja2V0QWNsRGF0YSgpOwogICAgfQoKICAgIG15ICVBbGxHcm91cHNNZW1iZXJzRnVsbG5hbWVzID0gJFVzZXJPYmplY3QtPlVzZXJMaXN0KAogICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICBWYWxpZCA9PiAxLAogICAgKTsKCiAgICBAU2hvd25Vc2Vyc3sga2V5cyAlU2hvd25Vc2VycyB9ID0gQEFsbEdyb3Vwc01lbWJlcnNGdWxsbmFtZXN7IGtleXMgJVNob3duVXNlcnMgfTsKCiAgICByZXR1cm4gXCVTaG93blVzZXJzOwp9CgpzdWIgX0dldE9sZE93bmVycyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHRpY2tldCBvYmplY3QKICAgIG15ICRUaWNrZXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CgogICAgbXkgQE9sZFVzZXJJbmZvID0gJFRpY2tldE9iamVjdC0+VGlja2V0T3duZXJMaXN0KCBUaWNrZXRJRCA9PiAkU2VsZi0+e1RpY2tldElEfSApOwogICAgbXkgJVVzZXJIYXNoOwogICAgaWYgKEBPbGRVc2VySW5mbykgewogICAgICAgIG15ICRDb3VudGVyID0gMTsKICAgICAgICBVU0VSOgogICAgICAgIGZvciBteSAkVXNlciAoIHJldmVyc2UgQE9sZFVzZXJJbmZvICkgewoKICAgICAgICAgICAgbmV4dCBVU0VSIGlmICRVc2VySGFzaHsgJFVzZXItPntVc2VySUR9IH07CgogICAgICAgICAgICAkVXNlckhhc2h7ICRVc2VyLT57VXNlcklEfSB9ID0gIiRDb3VudGVyOiAkVXNlci0+e1VzZXJGdWxsbmFtZX0iOwogICAgICAgICAgICAkQ291bnRlcisrOwogICAgICAgIH0KICAgIH0KCiAgICAjIHdvcmtmbG93CiAgICBteSAkQUNMID0gJFRpY2tldE9iamVjdC0+VGlja2V0QWNsKAogICAgICAgICVQYXJhbSwKICAgICAgICBBY3Rpb24gICAgICAgID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICBSZXR1cm5UeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIFJldHVyblN1YlR5cGUgPT4gJ09sZE93bmVyJywKICAgICAgICBEYXRhICAgICAgICAgID0+IFwlVXNlckhhc2gsCiAgICAgICAgVXNlcklEICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgIHJldHVybiB7ICRUaWNrZXRPYmplY3QtPlRpY2tldEFjbERhdGEoKSB9IGlmICRBQ0w7CgogICAgcmV0dXJuIFwlVXNlckhhc2g7Cn0KCnN1YiBfR2V0U2VydmljZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBzZXJ2aWNlCiAgICBteSAlU2VydmljZTsKCiAgICAjIGdldCBvcHRpb25zIGZvciBkZWZhdWx0IHNlcnZpY2VzIGZvciB1bmtub3duIGN1c3RvbWVycwogICAgbXkgJERlZmF1bHRTZXJ2aWNlVW5rbm93bkN1c3RvbWVyCiAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1RpY2tldDo6U2VydmljZTo6RGVmYXVsdDo6VW5rbm93bkN1c3RvbWVyJyk7CgogICAgIyBjaGVjayBpZiBubyBDdXN0b21lclVzZXJJRCBpcyBzZWxlY3RlZAogICAgIyBpZiAkRGVmYXVsdFNlcnZpY2VVbmtub3duQ3VzdG9tZXIgPSAwIGxlYXZlIEN1c3RvbWVyVXNlcklEIGVtcHR5LCBpdCB3aWxsIG5vdCBnZXQgYW55IHNlcnZpY2VzCiAgICAjIGlmICREZWZhdWx0U2VydmljZVVua25vd25DdXN0b21lciA9IDEgc2V0IEN1c3RvbWVyVXNlcklEIHRvIGdldCBkZWZhdWx0IHNlcnZpY2VzCiAgICBpZiAoICEkUGFyYW17Q3VzdG9tZXJVc2VySUR9ICYmICREZWZhdWx0U2VydmljZVVua25vd25DdXN0b21lciApIHsKICAgICAgICAkUGFyYW17Q3VzdG9tZXJVc2VySUR9ID0gJzxERUZBVUxUPic7CiAgICB9CgogICAgIyBnZXQgc2VydmljZSBsaXN0CiAgICBpZiAoICRQYXJhbXtDdXN0b21lclVzZXJJRH0gKSB7CiAgICAgICAgJVNlcnZpY2UgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0JyktPlRpY2tldFNlcnZpY2VMaXN0KAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICBBY3Rpb24gICA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwogICAgfQogICAgcmV0dXJuIFwlU2VydmljZTsKfQoKc3ViIF9HZXRTTEFzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBpZiBub24gc2V0IGN1c3RvbWVycyBjYW4gZ2V0IGRlZmF1bHQgc2VydmljZXMgdGhlbiB0aGV5IHNob3VsZCBhbHNvIGJlIGFibGUgdG8gZ2V0IHRoZSBTTEFzCiAgICAjICBmb3IgdGhvc2Ugc2VydmljZXMgKHRoaXMgd29ya3MgZHVyaW5nIHRpY2tldCBjcmVhdGlvbikuCiAgICAjIGlmIG5vIEN1c3RvbWVyVXNlcklEIGlzIHNldCwgVGlja2V0U0xBTGlzdCB3aWxsIGNvbXBsYWluIGR1cmluZyBBSkFYIHVwZGF0ZXMgYXMgVXNlcklEIGlzIG5vdAogICAgIyAgcGFzc2VkLiBTZWUgYnVnIDExMTQ3LgoKICAgICMgZ2V0IG9wdGlvbnMgZm9yIGRlZmF1bHQgc2VydmljZXMgZm9yIHVua25vd24gY3VzdG9tZXJzCiAgICBteSAkRGVmYXVsdFNlcnZpY2VVbmtub3duQ3VzdG9tZXIKICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnVGlja2V0OjpTZXJ2aWNlOjpEZWZhdWx0OjpVbmtub3duQ3VzdG9tZXInKTsKCiAgICAjIGNoZWNrIGlmIG5vIEN1c3RvbWVyVXNlcklEIGlzIHNlbGVjdGVkCiAgICAjIGlmICREZWZhdWx0U2VydmljZVVua25vd25DdXN0b21lciA9IDAgbGVhdmUgQ3VzdG9tZXJVc2VySUQgZW1wdHksIGl0IHdpbGwgbm90IGdldCBhbnkgc2VydmljZXMKICAgICMgaWYgJERlZmF1bHRTZXJ2aWNlVW5rbm93bkN1c3RvbWVyID0gMSBzZXQgQ3VzdG9tZXJVc2VySUQgdG8gZ2V0IGRlZmF1bHQgc2VydmljZXMKICAgIGlmICggISRQYXJhbXtDdXN0b21lclVzZXJJRH0gJiYgJERlZmF1bHRTZXJ2aWNlVW5rbm93bkN1c3RvbWVyICkgewogICAgICAgICRQYXJhbXtDdXN0b21lclVzZXJJRH0gPSAnPERFRkFVTFQ+JzsKICAgIH0KCiAgICBteSAlU0xBOwogICAgaWYgKCAkUGFyYW17U2VydmljZUlEfSApIHsKICAgICAgICAlU0xBID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpLT5UaWNrZXRTTEFMaXN0KAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICBBY3Rpb24gICA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwogICAgfQogICAgcmV0dXJuIFwlU0xBOwp9CgpzdWIgX0dldFByaW9yaXRpZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlUHJpb3JpdGllcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKS0+VGlja2V0UHJpb3JpdHlMaXN0KAogICAgICAgICVQYXJhbSwKICAgICAgICBBY3Rpb24gICA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgKTsKCiAgICAjIGdldCBjb25maWcgb2YgZnJvbnRlbmQgbW9kdWxlCiAgICBteSAkQ29uZmlnID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCJUaWNrZXQ6OkZyb250ZW5kOjokU2VsZi0+e0FjdGlvbn0iKTsKCiAgICBpZiAoICEkQ29uZmlnLT57UHJpb3JpdHlEZWZhdWx0fSApIHsKICAgICAgICAkUHJpb3JpdGllc3snJ30gPSAnLSc7CiAgICB9CiAgICByZXR1cm4gXCVQcmlvcml0aWVzOwp9CgpzdWIgX0dldEZpZWxkc1RvVXBkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQFVwZGF0YWJsZUZpZWxkczsKCiAgICAjIHNldCB0aGUgZmllbGRzIHRoYXQgY2FuIGJlIHVwZGF0ZWFibGUgdmlhIEFKQVhVcGRhdGUKICAgIGlmICggISRQYXJhbXtPbmx5RHluYW1pY0ZpZWxkc30gKSB7CiAgICAgICAgQFVwZGF0YWJsZUZpZWxkcyA9IHF3KAogICAgICAgICAgICBUeXBlSUQgU2VydmljZUlEIFNMQUlEIE5ld093bmVySUQgTmV3UmVzcG9uc2libGVJRCBOZXdTdGF0ZUlECiAgICAgICAgICAgIE5ld1ByaW9yaXR5SUQKICAgICAgICApOwogICAgfQoKICAgICMgZGVmaW5lIHRoZSBkeW5hbWljIGZpZWxkcyB0byBzaG93IGJhc2VkIG9uIHRoZSBvYmplY3QgdHlwZQogICAgbXkgJE9iamVjdFR5cGUgPSBbJ1RpY2tldCddOwoKICAgICMgZ2V0IGNvbmZpZyBvZiBmcm9udGVuZCBtb2R1bGUKICAgIG15ICRDb25maWcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoIlRpY2tldDo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwojIC0tLQojIFpudW55LVByaW1hcnlTZWNvbmRhcnkKIyAtLS0KICAgICMgZ2V0IFByaW1hcnkvU2Vjb25kYXJ5IGR5bmFtaWMgZmllbGQKICAgIG15ICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdQcmltYXJ5U2Vjb25kYXJ5OjpEeW5hbWljRmllbGQnKSB8fCAnJzsKICAgIG15ICRQcmltYXJ5U2Vjb25kYXJ5QWR2YW5jZWRFbmFibGVkID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdQcmltYXJ5U2Vjb25kYXJ5OjpBZHZhbmNlZEVuYWJsZWQnKSB8fCAwOwoKICAgIGlmICgkUHJpbWFyeVNlY29uZGFyeUFkdmFuY2VkRW5hYmxlZCkgewogICAgICAgICRDb25maWctPntEeW5hbWljRmllbGR9LT57JFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGR9ID0gMTsKICAgIH0KIyAtLS0KCiAgICAjIG9ubHkgc2NyZWVucyB0aGF0IGFkZCBub3RlcyBjYW4gbW9kaWZ5IEFydGljbGUgZHluYW1pYyBmaWVsZHMKICAgIGlmICggJENvbmZpZy0+e05vdGV9ICkgewogICAgICAgICRPYmplY3RUeXBlID0gWyAnVGlja2V0JywgJ0FydGljbGUnIF07CiAgICB9CgogICAgIyBnZXQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgbXkgJER5bmFtaWNGaWVsZCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgICA9PiAxLAogICAgICAgIE9iamVjdFR5cGUgID0+ICRPYmplY3RUeXBlLAogICAgICAgIEZpZWxkRmlsdGVyID0+ICRDb25maWctPntEeW5hbWljRmllbGR9IHx8IHt9LAogICAgKTsKCiAgICAjIGN5Y2xlIHRocm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHskRHluYW1pY0ZpZWxkfSApIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgIG15ICRJc0FDTFJlZHVjaWJsZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKS0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBCZWhhdmlvciAgICAgICAgICAgPT4gJ0lzQUNMUmVkdWNpYmxlJywKICAgICAgICApOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkSXNBQ0xSZWR1Y2libGU7CgogICAgICAgIHB1c2ggQFVwZGF0YWJsZUZpZWxkcywgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwogICAgfQoKICAgIHJldHVybiBcQFVwZGF0YWJsZUZpZWxkczsKfQoKc3ViIF9HZXRRdW90ZWRSZXBseUJvZHkgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgIGlmICggJExheW91dE9iamVjdC0+e0Jyb3dzZXJSaWNoVGV4dH0gKSB7CgogICAgICAgICMgcmV3cmFwIGJvZHkgaWYgZXhpc3RzCiAgICAgICAgaWYgKCAkUGFyYW17Qm9keX0gKSB7CiAgICAgICAgICAgICRQYXJhbXtCb2R5fSA9fiBzL1x0LyAvZzsKICAgICAgICAgICAgbXkgJFF1b3RlID0gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCgKICAgICAgICAgICAgICAgIFRleHQgICAgICAgICAgID0+ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpGcm9udGVuZDo6UXVvdGUnKSB8fCAnJywKICAgICAgICAgICAgICAgIEhUTUxSZXN1bHRNb2RlID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICgkUXVvdGUpIHsKCiAgICAgICAgICAgICAgICAjIHF1b3RlIHRleHQKICAgICAgICAgICAgICAgICRQYXJhbXtCb2R5fSA9ICI8YmxvY2txdW90ZSB0eXBlPVwiY2l0ZVwiPiRQYXJhbXtCb2R5fTwvYmxvY2txdW90ZT5cbiI7CgogICAgICAgICAgICAgICAgIyBjbGVhbnVwIG5vdCBjb21wYXQuIHRhZ3MKICAgICAgICAgICAgICAgICRQYXJhbXtCb2R5fSA9ICRMYXlvdXRPYmplY3QtPlJpY2hUZXh0RG9jdW1lbnRDbGVhbnVwKAogICAgICAgICAgICAgICAgICAgIFN0cmluZyA9PiAkUGFyYW17Qm9keX0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG15ICRSZXNwb25zZUZvcm1hdCA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0KICAgICAgICAgICAgICAgICAgICAtPkZvcm1hdFRpbWVTdHJpbmcoICRQYXJhbXtDcmVhdGVUaW1lfSwgJ0RhdGVGb3JtYXQnLCAnTm9TZWNvbmRzJyApOwogICAgICAgICAgICAgICAgJFJlc3BvbnNlRm9ybWF0IC49ICcgLSAnIC4gJFBhcmFte0Zyb219IC4gJyAnOwogICAgICAgICAgICAgICAgJFJlc3BvbnNlRm9ybWF0CiAgICAgICAgICAgICAgICAgICAgLj0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCd3cm90ZScpIC4gJzonOwoKICAgICAgICAgICAgICAgICRQYXJhbXtCb2R5fSA9ICRSZXNwb25zZUZvcm1hdCAuICRQYXJhbXtCb2R5fTsKCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkUGFyYW17Qm9keX0gPSAiPHA+PC9wPlxuIiAuICRQYXJhbXtCb2R5fTsKCiAgICAgICAgICAgICAgICBpZiAoICRQYXJhbXtDcmVhdGVUaW1lfSApIHsKICAgICAgICAgICAgICAgICAgICAkUGFyYW17Qm9keX0gPSAnPHA+JyAuICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnRGF0ZScpIC4KICAgICAgICAgICAgICAgICAgICAgICAgIjogJFBhcmFte0NyZWF0ZVRpbWV9PC9wPiIgLiAkUGFyYW17Qm9keX07CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgZm9yIG15ICRLZXkgKHF3KFN1YmplY3QgUmVwbHlUbyBSZXBseS1UbyBDYyBUbyBGcm9tKSkgewogICAgICAgICAgICAgICAgICAgIGlmICggJFBhcmFteyRLZXl9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAkUGFyYW17Qm9keX0gPSAnPHA+JyAuICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgkS2V5KSAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOiAkUGFyYW17JEtleX08L3A+IiAuICRQYXJhbXtCb2R5fTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgbXkgJEZyb20gPSAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJSaWNoVGV4dCgKICAgICAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJFBhcmFte0Zyb219LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBteSAkTWVzc2FnZUZyb20gPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ01lc3NhZ2UgZnJvbScpOwogICAgICAgICAgICAgICAgbXkgJEVuZE1lc3NhZ2UgID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdFbmQgbWVzc2FnZScpOwoKICAgICAgICAgICAgICAgICRQYXJhbXtCb2R5fSA9ICI8cD4tLS0tICRNZXNzYWdlRnJvbSAkRnJvbSAtLS08L3A+PHA+PC9wPiIgLiAkUGFyYW17Qm9keX07CiAgICAgICAgICAgICAgICAkUGFyYW17Qm9keX0gLj0gIlxuPHA+LS0tLSAkRW5kTWVzc2FnZSAtLS08L3A+IjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIHByZXBhcmUgYm9keSwgc3ViamVjdCwgUmVwbHlUbyAuLi4KICAgICAgICAjIHJld3JhcCBib2R5IGlmIGV4aXN0cwogICAgICAgIGlmICggJFBhcmFte0JvZHl9ICkgewogICAgICAgICAgICAkUGFyYW17Qm9keX0gPX4gcy9cdC8gL2c7CiAgICAgICAgICAgIG15ICRRdW90ZSA9ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpGcm9udGVuZDo6UXVvdGUnKTsKICAgICAgICAgICAgaWYgKCRRdW90ZSkgewogICAgICAgICAgICAgICAgJFBhcmFte0JvZHl9ID1+IHMvXG4vXG4kUXVvdGUgL2c7CiAgICAgICAgICAgICAgICAkUGFyYW17Qm9keX0gPSAiXG4kUXVvdGUgIiAuICRQYXJhbXtCb2R5fTsKCiAgICAgICAgICAgICAgICBteSAkUmVzcG9uc2VGb3JtYXQgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9CiAgICAgICAgICAgICAgICAgICAgLT5Gb3JtYXRUaW1lU3RyaW5nKCAkUGFyYW17Q3JlYXRlVGltZX0sICdEYXRlRm9ybWF0JywgJ05vU2Vjb25kcycgKTsKICAgICAgICAgICAgICAgICRSZXNwb25zZUZvcm1hdCAuPSAnIC0gJyAuICRQYXJhbXtGcm9tfSAuICcgJzsKICAgICAgICAgICAgICAgICRSZXNwb25zZUZvcm1hdAogICAgICAgICAgICAgICAgICAgIC49ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnd3JvdGUnKSAuICI6XG4iOwoKICAgICAgICAgICAgICAgICRQYXJhbXtCb2R5fSA9ICRSZXNwb25zZUZvcm1hdCAuICRQYXJhbXtCb2R5fTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRQYXJhbXtCb2R5fSA9ICJcbiIgLiAkUGFyYW17Qm9keX07CiAgICAgICAgICAgICAgICBpZiAoICRQYXJhbXtDcmVhdGVUaW1lfSApIHsKICAgICAgICAgICAgICAgICAgICAkUGFyYW17Qm9keX0gPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0RhdGUnKSAuCiAgICAgICAgICAgICAgICAgICAgICAgICI6ICRQYXJhbXtDcmVhdGVUaW1lfVxuIiAuICRQYXJhbXtCb2R5fTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBmb3IgbXkgJEtleSAocXcoU3ViamVjdCBSZXBseVRvIFJlcGx5LVRvIENjIFRvIEZyb20pKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAkUGFyYW17JEtleX0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRQYXJhbXtCb2R5fSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgkS2V5KSAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOiAkUGFyYW17JEtleX1cbiIgLiAkUGFyYW17Qm9keX07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIG15ICRNZXNzYWdlRnJvbSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnTWVzc2FnZSBmcm9tJyk7CiAgICAgICAgICAgICAgICBteSAkRW5kTWVzc2FnZSAgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0VuZCBtZXNzYWdlJyk7CgogICAgICAgICAgICAgICAgJFBhcmFte0JvZHl9ID0gIlxuLS0tLSAkTWVzc2FnZUZyb20gJFBhcmFte0Zyb219IC0tLVxuXG4iIC4gJFBhcmFte0JvZHl9OwogICAgICAgICAgICAgICAgJFBhcmFte0JvZHl9IC49ICJcbi0tLS0gJEVuZE1lc3NhZ2UgLS0tXG4iOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAkUGFyYW17Qm9keX07Cn0KCnN1YiBfR2V0U3RhbmRhcmRUZW1wbGF0ZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBjcmVhdGUgdGVtcGxhdGVzCiAgICBteSAlVGVtcGxhdGVzOwoKICAgICMgY2hlY2sgbmVlZGVkCiAgICByZXR1cm4gXCVUZW1wbGF0ZXMgaWYgISRQYXJhbXtRdWV1ZUlEfSAmJiAhJFBhcmFte1RpY2tldElEfTsKCiAgICBteSAkUXVldWVJRCA9ICRQYXJhbXtRdWV1ZUlEfSB8fCAnJzsKICAgIGlmICggISRQYXJhbXtRdWV1ZUlEfSAmJiAkUGFyYW17VGlja2V0SUR9ICkgewoKICAgICAgICAjIGdldCBRdWV1ZUlEIGZyb20gdGhlIHRpY2tldAogICAgICAgIG15ICVUaWNrZXQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0JyktPlRpY2tldEdldCgKICAgICAgICAgICAgVGlja2V0SUQgICAgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBEeW5hbWljRmllbGRzID0+IDAsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgJFF1ZXVlSUQgPSAkVGlja2V0e1F1ZXVlSUR9IHx8ICcnOwogICAgfQoKICAgICMgZmV0Y2ggYWxsIHN0ZC4gdGVtcGxhdGVzCiAgICBteSAlU3RhbmRhcmRUZW1wbGF0ZXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UXVldWUnKS0+UXVldWVTdGFuZGFyZFRlbXBsYXRlTWVtYmVyTGlzdCgKICAgICAgICBRdWV1ZUlEICAgICAgID0+ICRRdWV1ZUlELAogICAgICAgIFRlbXBsYXRlVHlwZXMgPT4gMSwKICAgICk7CgogICAgIyByZXR1cm4gZW1wdHkgaGFzaCBpZiB0aGVyZSBhcmUgbm8gdGVtcGxhdGVzIGZvciB0aGlzIHNjcmVlbgogICAgcmV0dXJuIFwlVGVtcGxhdGVzIGlmICFJc0hhc2hSZWZXaXRoRGF0YSggJFN0YW5kYXJkVGVtcGxhdGVze05vdGV9ICk7CgogICAgIyByZXR1cm4ganVzdCB0aGUgdGVtcGxhdGVzIGZvciB0aGlzIHNjcmVlbgogICAgcmV0dXJuICRTdGFuZGFyZFRlbXBsYXRlc3tOb3RlfTsKfQoKc3ViIF9HZXRUeXBlcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHR5cGUKICAgIG15ICVUeXBlOwogICAgaWYgKCAkUGFyYW17UXVldWVJRH0gfHwgJFBhcmFte1RpY2tldElEfSApIHsKICAgICAgICAlVHlwZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKS0+VGlja2V0VHlwZUxpc3QoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgICAgIEFjdGlvbiAgID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CiAgICB9CiAgICByZXR1cm4gXCVUeXBlOwp9CgpzdWIgX0dldFF1ZXVlcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgR2V0IFF1ZXVlcy4KICAgIG15ICVRdWV1ZXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0JyktPlRpY2tldE1vdmVMaXN0KAogICAgICAgICVQYXJhbSwKICAgICAgICBUaWNrZXRJRCA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgQWN0aW9uICAgPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgIFR5cGUgICAgID0+ICdtb3ZlX2ludG8nLAogICAgKTsKICAgIHJldHVybiBcJVF1ZXVlczsKfQoKc3ViIF9HZXRXaWRnZXRzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJE1haW5PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpOwogICAgbXkgJExvZ09iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CgogICAgbXkgJENvbmZpZyA9ICRQYXJhbXtDb25maWd9OwoKICAgIG15ICVXaWRnZXRzOwogICAgbXkgJFByaW8gPSAwOwoKICAgICMgbXkgJUFzeW5jU2lkZWJhckFjdGlvbnM7CiAgICBXSURHRVQ6CiAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAleyAkQ29uZmlnLT57V2lkZ2V0c30gLy8ge30gfSApIHsKICAgICAgICBteSAkV2lkZ2V0Q29uZmlnID0gJENvbmZpZy0+e1dpZGdldHN9LT57JEtleX07CgogICAgICAgIG5leHQgV0lER0VUIGlmICEkV2lkZ2V0Q29uZmlnLT57QWN0aXZlfTsKCiAgICAgICAgaWYgKCAkV2lkZ2V0Q29uZmlnLT57UHJpb30gKSB7CiAgICAgICAgICAgICRQcmlvID0gJFdpZGdldENvbmZpZy0+e1ByaW99OwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFByaW8rKzsKICAgICAgICB9CgogICAgICAgICRXaWRnZXRzeyRLZXl9LT57UHJpb30gICAgID0gJFByaW87CiAgICAgICAgJFdpZGdldHN7JEtleX0tPntMb2NhdGlvbn0gPSAkV2lkZ2V0Q29uZmlnLT57TG9jYXRpb259OwoKICAgICAgICBteSAkU3VjY2VzcyA9IGV2YWwgeyAkTWFpbk9iamVjdC0+UmVxdWlyZSggJFdpZGdldENvbmZpZy0+e01vZHVsZX0gKSB9OwogICAgICAgIG5leHQgV0lER0VUIGlmICEkU3VjY2VzczsKCiAgICAgICAgbXkgJE1vZHVsZSA9IGV2YWwgeyAkV2lkZ2V0Q29uZmlnLT57TW9kdWxlfS0+bmV3KCUkU2VsZikgfTsKICAgICAgICBpZiAoICEkTW9kdWxlICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIm5ldygpIG9mIFNpZGViYXIgbW9kdWxlICRXaWRnZXRDb25maWctPntNb2R1bGV9IG5vdCBzdWNjZXNzZnVsISIsCgogICAgICAgICAgICApOwogICAgICAgICAgICBuZXh0IFdJREdFVDsKICAgICAgICB9CgogICAgICAgIG15ICRXaWRnZXRPdXRwdXRSZWYgPSAkTW9kdWxlLT5SdW4oCiAgICAgICAgICAgIFRpY2tldCAgICAgICA9PiAkUGFyYW17VGlja2V0fSwKICAgICAgICAgICAgQ29uZmlnICAgICAgID0+ICRDb25maWcsCiAgICAgICAgICAgIFdpZGdldENvbmZpZyA9PiAkV2lkZ2V0Q29uZmlnLAogICAgICAgICk7CgogICAgICAgIG15ICVXaWRnZXRPdXRwdXQ7CiAgICAgICAgaWYgKCByZWYgJFdpZGdldE91dHB1dFJlZiBlcSAnSEFTSCcgKSB7CiAgICAgICAgICAgICVXaWRnZXRPdXRwdXQgPSAleyRXaWRnZXRPdXRwdXRSZWZ9OwogICAgICAgIH0KCiAgICAgICAgbmV4dCBXSURHRVQgaWYgISVXaWRnZXRPdXRwdXQ7CgogICAgICAgICMgTWVyZ2UgdGhlIFdpZGdldE91dHB1dCBpbnRvIHRoZSBXaWRnZXRzIGhhc2gKICAgICAgICAleyAkV2lkZ2V0c3skS2V5fSB9ID0gKCAleyAkV2lkZ2V0c3skS2V5fSAvLyB7fSB9LCAlV2lkZ2V0T3V0cHV0ICk7CgogICAgICAgICMgcwogICAgfQoKICAgIHJldHVybiAlV2lkZ2V0czsKfQoKIyAtLS0KIyBabnVueS1QcmltYXJ5U2Vjb25kYXJ5CiMgLS0tCnN1YiBfR2V0UHJpbWFyeVNlY29uZGFyeURhdGEgewogICAgbXkgKCRTZWxmLCAlUGFyYW0pID0gQF87CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJFVuc2V0UHJpbWFyeVNlY29uZGFyeSAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1ByaW1hcnlTZWNvbmRhcnk6OlVuc2V0UHJpbWFyeVNlY29uZGFyeScpIHx8IDA7CiAgICBteSAkVXBkYXRlUHJpbWFyeVNlY29uZGFyeSA9ICRDb25maWdPYmplY3QtPkdldCgnUHJpbWFyeVNlY29uZGFyeTo6VXBkYXRlUHJpbWFyeVNlY29uZGFyeScpIHx8IDA7CgogICAgbXkgJVRpY2tldCA9ICV7ICRQYXJhbXtUaWNrZXR9IH07CiAgICBteSAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCA9ICRQYXJhbXtQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkfTsKCiAgICBteSAkRmllbGRWYWx1ZSA9ICRUaWNrZXR7ICdEeW5hbWljRmllbGRfJyAuICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkIH0gfHwgJyc7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICBteSAlRGF0YSA9ICgKICAgICAgICAnJyA9PiAnLScsCiAgICApOwoKICAgIGlmICggJEZpZWxkVmFsdWUgIX4gbXteKFByaW1hcnl8TWFzdGVyKSR9eG1zICkgewogICAgICAgICREYXRhe1ByaW1hcnl9ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdOZXcgUHJpbWFyeSBUaWNrZXQnKTsKICAgIH0KCiAgICBpZiAoICRVbnNldFByaW1hcnlTZWNvbmRhcnkgJiYgJEZpZWxkVmFsdWUgPX4gbXteKFByaW1hcnl8TWFzdGVyKSR9eG1zICkgewogICAgICAgICREYXRhe1Vuc2V0UHJpbWFyeX0gPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ1Vuc2V0IFByaW1hcnkgVGlja2V0Jyk7CiAgICB9CiAgICBpZiAoICRVbnNldFByaW1hcnlTZWNvbmRhcnkgJiYgJEZpZWxkVmFsdWUgPX4gbXteKFNlY29uZGFyeU9mfFNsYXZlT2YpOiguKj8pJH14bXMgKSB7CiAgICAgICAgJERhdGF7VW5zZXRTZWNvbmRhcnl9ICA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnVW5zZXQgU2Vjb25kYXJ5IFRpY2tldCcpOwogICAgfQoKICAgICMgZ2V0IHRpY2tldCBvYmplY3QKICAgIG15ICRUaWNrZXRPYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKTsKICAgIG15ICRUaWNrZXRIb29rICAgICAgICA9ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpIb29rJyk7CiAgICBteSAkVGlja2V0SG9va0RpdmlkZXIgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6SG9va0RpdmlkZXInKTsKCiAgICBpZiAoICRVcGRhdGVQcmltYXJ5U2Vjb25kYXJ5ICkgewoKICAgICAgICAjIGZpbmQgYWxsIGN1cnJlbnQgb3BlbiBwcmltYXJ5IHNlY29uZGFyeSB0aWNrZXRzIGFuZCB0aGUgbGVnYWN5IG1hc3RlciBzbGF2ZSB0aWNrZXRzCiAgICAgICAgbXkgQFRpY2tldElEcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgUmVzdWx0ID0+ICdBUlJBWScsCgogICAgICAgICAgICAjIFByaW1hcnkvU2Vjb25kYXJ5IGR5bmFtaWMgZmllbGQKICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGQgPT4gewogICAgICAgICAgICAgICAgRXF1YWxzID0+IFsgJ1ByaW1hcnknLCAnTWFzdGVyJywgXSwKICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIFN0YXRlVHlwZSAgPT4gJ09wZW4nLAogICAgICAgICAgICBMaW1pdCAgICAgID0+IDYwLAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgUGVybWlzc2lvbiA9PiAncm8nLAogICAgICAgICk7CgogICAgICAgIFRJQ0tFVElEOgogICAgICAgIGZvciBteSAkVGlja2V0SUQgKEBUaWNrZXRJRHMpIHsKICAgICAgICAgICAgbXkgJUN1cnJlbnRUaWNrZXQgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRHZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IFRJQ0tFVElEIGlmICElQ3VycmVudFRpY2tldDsKICAgICAgICAgICAgbmV4dCBUSUNLRVRJRCBpZiAkRmllbGRWYWx1ZSBlcSAiU2Vjb25kYXJ5T2Y6JEN1cnJlbnRUaWNrZXR7VGlja2V0TnVtYmVyfSIgfHwgJEZpZWxkVmFsdWUgZXEgIlNsYXZlT2Y6JEN1cnJlbnRUaWNrZXR7VGlja2V0TnVtYmVyfSI7CiAgICAgICAgICAgIG5leHQgVElDS0VUSUQgaWYgJEZpZWxkVmFsdWUgJiYgJFRpY2tldHtUaWNrZXRJRH0gZXEgJEN1cnJlbnRUaWNrZXR7VGlja2V0SUR9OwoKICAgICAgICAgICAgJERhdGF7IlNlY29uZGFyeU9mOiRDdXJyZW50VGlja2V0e1RpY2tldE51bWJlcn0ifSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICdTZWNvbmRhcnkgb2YgJXMlcyVzOiAlcycsCiAgICAgICAgICAgICAgICAkVGlja2V0SG9vaywKICAgICAgICAgICAgICAgICRUaWNrZXRIb29rRGl2aWRlciwKICAgICAgICAgICAgICAgICRDdXJyZW50VGlja2V0e1RpY2tldE51bWJlcn0sCiAgICAgICAgICAgICAgICAkQ3VycmVudFRpY2tldHtUaXRsZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBcJURhdGE7Cn0KIyAtLS0KCjE7Cg==</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AdminDynamicFieldPrimarySecondary.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKPGRpdiBjbGFzcz0iTWFpbkJveCBBUklBUm9sZU1haW4gTGF5b3V0Rml4ZWRTaWRlYmFyIFNpZGViYXJGaXJzdCBBY3Rpb25zU2lkZUJhciI+CiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIEFjdGlvbnNTaWRlQmFyQ29tcCI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbkxpc3QiPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFkbWluRHluYW1pY0ZpZWxkIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1sZWZ0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyBiYWNrIHRvIG92ZXJ2aWV3IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KICAgICAgICA8aDEgY2xhc3M9IkludmlzaWJsZVRleHQiPgogICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkR5bmFtaWMgRmllbGRzIikgfCBodG1sICVdIC0gWyUgVHJhbnNsYXRlKERhdGEuT2JqZWN0VHlwZU5hbWUpIHwgaHRtbCAlXToKICAgICAgICAgICAgWyUgVVNFIFRpdGxlID0gU3RyaW5nKERhdGEuQnJlYWRjcnVtYlRleHQpICVdCiAgICAgICAgICAgIFslIFRpdGxlIHwgaHRtbCAlXQogICAgICAgIDwvaDE+CgogICAgICAgIFslIEJyZWFkY3J1bWJQYXRoID0gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gVHJhbnNsYXRlKCdEeW5hbWljIEZpZWxkcyBNYW5hZ2VtZW50JyksCiAgICAgICAgICAgICAgICAgICAgTGluayA9PiAnQWRtaW5EeW5hbWljRmllbGQnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXQogICAgICAgICVdCgogICAgICAgIFslIFVTRSBCcmVhZGNydW1iTmFtZSA9IFN0cmluZyhUcmFuc2xhdGUoRGF0YS5PYmplY3RUeXBlTmFtZSkpICVdCgogICAgICAgIFslIFNXSVRDSCBEYXRhLk1vZGUgJV0KICAgICAgICAgICAgWyUgQ0FTRSAnQWRkJyAlXQogICAgICAgICAgICAgICAgWyUgQnJlYWRjcnVtYlBhdGgucHVzaCh7IE5hbWUgPT4gQnJlYWRjcnVtYk5hbWUuYXBwZW5kKCAnOiAnLCBUaXRsZSApIH0pICVdCiAgICAgICAgICAgIFslIENBU0UgJ0NoYW5nZScgJV0KICAgICAgICAgICAgICAgIFslIEJyZWFkY3J1bWJQYXRoLnB1c2goeyBOYW1lID0+IEJyZWFkY3J1bWJOYW1lLmFwcGVuZCggJzogJywgVGl0bGUsICcgLSAnLCBEYXRhLk5hbWUgKSB9KSAlXQogICAgICAgIFslIEVORCAlXQoKICAgICAgICBbJSBJTkNMVURFICJCcmVhZGNydW1iLnR0IiBQYXRoID0gQnJlYWRjcnVtYlBhdGggJV0KCiAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGNsYXNzPSJWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzIj4KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iQWRtaW5EeW5hbWljRmllbGRQcmltYXJ5U2Vjb25kYXJ5IiAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJbJSBEYXRhLk1vZGUgfCBodG1sICVdQWN0aW9uIiAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJPYmplY3RUeXBlIiB2YWx1ZT0iWyUgRGF0YS5PYmplY3RUeXBlIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iRmllbGRUeXBlIiB2YWx1ZT0iWyUgRGF0YS5GaWVsZFR5cGUgfCBodG1sICVdIiAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJJRCIgdmFsdWU9IlslIERhdGEuSUQgfCBodG1sICVdIiAvPgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiR2VuZXJhbCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkxheW91dEdyaWQgQ29sdW1uc1dpdGhTcGFjaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU2l6ZTFvZjIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9Ik5hbWUiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiTmFtZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJOYW1lIiBjbGFzcz0iVzUwcGMgWyUgRGF0YS5OYW1lU2VydmVyRXJyb3IgfCBodG1sICVdIFslIERhdGEuU2hvd1dhcm5pbmcgfCBodG1sICVdICBWYWxpZGF0ZV9BbHBoYW51bWVyaWMiIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMjAwIiB2YWx1ZT0iWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgbmFtZT0iTmFtZSIgWyUgRGF0YS5SZWFkb25seUludGVybmFsRmllbGQgfCBodG1sICVdIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik5hbWVFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZCwgYW5kIHRoZSB2YWx1ZSBzaG91bGQgYmUgYWxwaGFiZXRpYyBhbmQgbnVtZXJpYyBjaGFyYWN0ZXJzIG9ubHkuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJOYW1lU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoRGF0YS5OYW1lU2VydmVyRXJyb3JNZXNzYWdlKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj5bJSBUcmFuc2xhdGUoIk11c3QgYmUgdW5pcXVlIGFuZCBvbmx5IGFjY2VwdCBhbHBoYWJldGljIGFuZCBudW1lcmljIGNoYXJhY3RlcnMuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iV2FybmluZyBIaWRkZW4iPlslIFRyYW5zbGF0ZSgiQ2hhbmdpbmcgdGhpcyB2YWx1ZSB3aWxsIHJlcXVpcmUgbWFudWFsIGNoYW5nZXMgaW4gdGhlIHN5c3RlbS4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IkxhYmVsIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIkxhYmVsIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IkxhYmVsIiBjbGFzcz0iVzUwcGMgWyUgRGF0YS5MYWJlbFNlcnZlckVycm9yIHwgaHRtbCAlXSBWYWxpZGF0ZV9SZXF1aXJlZCIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIyMDAiIHZhbHVlPSJbJSBEYXRhLkxhYmVsIHwgaHRtbCAlXSIgbmFtZT0iTGFiZWwiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTGFiZWxFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkxhYmVsU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoRGF0YS5MYWJlbFNlcnZlckVycm9yTWVzc2FnZSkgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+WyUgVHJhbnNsYXRlKCJUaGlzIGlzIHRoZSBuYW1lIHRvIGJlIHNob3duIG9uIHRoZSBzY3JlZW5zIHdoZXJlIHRoZSBmaWVsZCBpcyBhY3RpdmUuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJGaWVsZE9yZGVyIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIkZpZWxkIG9yZGVyIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkR5bmFtaWNGaWVsZE9yZGVyU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJGaWVsZE9yZGVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgbnVtZXJpYy4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkZpZWxkT3JkZXJTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZShEYXRhLkZpZWxkT3JkZXJTZXJ2ZXJFcnJvck1lc3NhZ2UpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPlslIFRyYW5zbGF0ZSgiVGhpcyBpcyB0aGUgb3JkZXIgaW4gd2hpY2ggdGhpcyBmaWVsZCB3aWxsIGJlIHNob3duIG9uIHRoZSBzY3JlZW5zIHdoZXJlIGlzIGFjdGl2ZS4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTaXplMW9mMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iVmFsaWRJRCI+WyUgVHJhbnNsYXRlKCJWYWxpZGl0eSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5WYWxpZGl0eVN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iRmllbGRUeXBlTmFtZSI+WyUgVHJhbnNsYXRlKCJGaWVsZCB0eXBlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IkZpZWxkVHlwZU5hbWUiIHJlYWRvbmx5IGNsYXNzPSJXNTBwYyIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIyMDAiIHZhbHVlPSJbJSBUcmFuc2xhdGUoRGF0YS5GaWVsZFR5cGVOYW1lKSB8IGh0bWwgJV0iIG5hbWU9IkZpZWxkVHlwZU5hbWUiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iT2JqZWN0VHlwZU5hbWUiPlslIFRyYW5zbGF0ZSgiT2JqZWN0IHR5cGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iT2JqZWN0VHlwZU5hbWUiIHJlYWRvbmx5IGNsYXNzPSJXNTBwYyIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIyMDAiIHZhbHVlPSJbJSBUcmFuc2xhdGUoRGF0YS5PYmplY3RUeXBlTmFtZSkgfCBodG1sICVdIiBuYW1lPSJPYmplY3RUeXBlTmFtZSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiSW50ZXJuYWxGaWVsZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iSW50ZXJuYWxGaWVsZCI+WyUgVHJhbnNsYXRlKCJJbnRlcm5hbCBmaWVsZCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJJbnRlcm5hbEZpZWxkIiByZWFkb25seSBjbGFzcz0iVzUwcGMiIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMSIgdmFsdWU9IlslIERhdGEuSW50ZXJuYWxGaWVsZCB8IGh0bWwgJV0iIG5hbWU9IkludGVybmFsRmllbGQiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHByb3RlY3RlZCBhbmQgY2FuJ3QgYmUgZGVsZXRlZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiSW50ZXJuYWxGaWVsZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQtd3JhcHBlciBmb3JtLWJ1dHRvbi1hY3Rpb25zIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCBidXR0b25zLWZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iIGNsYXNzPSJidG4tY2FuY2VsLWdob3N0IGJ0bi1tYWluIGJ0bi13aWR0aC1tZCI+PHNwYW4+WyUgVHJhbnNsYXRlKCJDYW5jZWwiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQcmltYXJ5IGJ0bi1wcmltYXJ5IGJ0bi1tYWluIGJ0bi13aWR0aC1tZCIgaWQ9IlN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICA8L2Zvcm0+CiAgICA8L2Rpdj4KPC9kaXY+Cg==</File>
        <File Permission="660" Location="Kernel/Output/HTML/Templates/Standard/AgentTicketPrimarySecondary.tt" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgJG9yaWdpbjogem51bnkgLSBkZWQ5Yzc0MWMwOWZlMWRiY2RhZDBjNjViMjkzZjRjOGZkNDcwYTliIC0gS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZ2VudFRpY2tldEFjdGlvbkNvbW1vbi50dAojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQojIC0tLQojIFpudW55LVByaW1hcnlTZWNvbmRhcnkKIyAtLS0KIyBUaGlzIG1vZHVsZSB1c2VzIEFnZW50VGlja2V0QWN0aW9uQ29tbW9uIGFzIGEgYmFzZSwgZm9yIGVhc3kgdXBkYXRlIGFuZCBmcmFtZXdvcmsgY29tcGF0aWJpbGl0eQojIHNwZWNpYWwgbWFya2VycyBoYXMgYmVlbiBzZXQgYWxvbmcgdGhlIGZpbGUgdG8gZWFzeSBzcG90IHRoZSBkaWZmZXJlbmNlcyBpbnRyb2R1Y2VkIGJ5CiMgWm51bnlQcmltYXJ5U2Vjb25kYXJ5IHBhY2thZ2UKIyAtLS0KWyUgVGlja2V0RnJvbnRlbmRDb25maWcgPSBDb25maWcoIlRpY2tldDo6RnJvbnRlbmQ6OiIgXyBFbnYoIkFjdGlvbiIpICkgJV0KCjxkaXYgY2xhc3M9ImxheW91dFBvcFVwU2lkZWJhciI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlByb3BlcnRpZXMiKSAlXQogICAgPG1haW4gY2xhc3M9InNlY3Rpb25Db250ZW50Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXItZmx1aWQgQVJJQVJvbGVNYWluIiByb2xlPSJtYWluIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiSGVhZGVyQWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW9kIG1vZFBhZ2VIZWFkbGluZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlubmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMT5bJSBUcmFuc2xhdGUoIk1hbmFnZSBQcmltYXJ5L1NlY29uZGFyeSBzdGF0dXMgZm9yICVzJXMlcyIsIENvbmZpZygnVGlja2V0OjpIb29rJyksIENvbmZpZygnVGlja2V0OjpIb29rRGl2aWRlcicpLCBEYXRhLlRpY2tldE51bWJlcikgfCBodG1sICVdPC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJIZWFkZXJBZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkiKSAlXQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTEyIG9yZGVyLTEiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vZCBtb2RGb3JtIiA+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlubmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBuYW1lPSJjb21wb3NlIiBpZD0iQ29tcG9zZSIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMgQWdlbnRUaWNrZXRBY3Rpb25Db21tb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJTdG9yZSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlRpY2tldElEIiB2YWx1ZT0iWyUgRGF0YS5UaWNrZXRJRCB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJSZXBseVRvQXJ0aWNsZSIgdmFsdWU9IlslIERhdGEuUmVwbHlUb0FydGljbGUgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iRXhwYW5kIiBpZD0iRXhwYW5kIiB2YWx1ZT0iIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iRm9ybUlEIiB2YWx1ZT0iWyUgRGF0YS5Gb3JtSUQgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iRm9ybURyYWZ0VGl0bGUiIHZhbHVlPSJbJSBEYXRhLkZvcm1EcmFmdFRpdGxlIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkZvcm1EcmFmdElEIiB2YWx1ZT0iWyUgRGF0YS5Gb3JtRHJhZnRJRCB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJGb3JtRHJhZnRBY3Rpb24iIGlkPSJGb3JtRHJhZnRBY3Rpb24iIC8+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9wZXJ0aWVzTG9ja05vdGlmeSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIElOQ0xVREUgIk1vZHVsZXMvQWxlcnQudHQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgICA9IFRyYW5zbGF0ZSgiVGhlIHRpY2tldCBoYXMgYmVlbiBsb2NrZWQiKSBfICIuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlICAgICAgPSAid2FybmluZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZUFmdGVyID0gMTAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9ucyAgID0gIlsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ1cmxcIjogXCIiIF8gRW52KCJCYXNlbGluayIpIF8gIkFjdGlvbj1BZ2VudFRpY2tldExvY2s7U3ViYWN0aW9uPVVubG9jaztUaWNrZXRJRD0iIF8gRGF0YS5UaWNrZXRJRCBfICIiIF8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEYXRhLlByZXZpb3VzT3duZXIgPyAiO1ByZXZpb3VzT3duZXI9IiBfIERhdGEuUHJldmlvdXNPd25lciA6ICIiKSBfICI7IiBfIEVudigiQ2hhbGxlbmdlVG9rZW5QYXJhbSIpIF8gIlwiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0ZXh0XCI6IFwiIiBfIFRyYW5zbGF0ZSgiVW5sb2NrIGFuZCBjbG9zZSBwb3B1cCIpIF8gIlwiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjbGFzc1wiOiBcIlVuZG9DbG9zZVBvcHVwXCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJjYW5jZWxcIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIlByb3BlcnRpZXNMb2NrTm90aWZ5IikgJV0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLTEyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIElOQ0xVREUgIkZvcm1FbGVtZW50cy9EcmFmdE5vdGlmaWNhdGlvbnMudHQiICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKWyUgSUYgVGlja2V0RnJvbnRlbmRDb25maWcuQ3VzdG9tZXJVc2VyICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb2QgbW9kQ2FyZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkVGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQ3VzdG9tZXIiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmRUaXRsZVRyaWdnZXIiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyByb3ctY29scy0xIHJvdy1jb2xzLWxnLTIgcm93LWNvbHMteGwtMiAgZ3ktMiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkN1c3RvbWVyVXNlciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLTEyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU2VsZWN0ZWRDdXN0b21lclVzZXIiIGlkPSJTZWxlY3RlZEN1c3RvbWVyVXNlciIgdmFsdWU9IlslIERhdGEuU2VsZWN0ZWRDdXN0b21lclVzZXIgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLkN1c3RvbWVyVXNlck1hbmRhdG9yeSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJDdXN0b21lckF1dG9Db21wbGV0ZSIgY2xhc3M9Ik1hbmRhdG9yeSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJDdXN0b21lciB1c2VyIikgfCBodG1sICVdOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBFTFNFICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkN1c3RvbWVyQXV0b0NvbXBsZXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQ3VzdG9tZXIgdXNlciIpIHwgaHRtbCAlXToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iQ3VzdG9tZXJBdXRvQ29tcGxldGUiIHR5cGU9InRleHQiIG5hbWU9IkN1c3RvbWVyVXNlcklEIiB2YWx1ZT0iWyUgRGF0YS5DdXN0b21lclVzZXJJRCB8IGh0bWwgJV0iIGNsYXNzPSJXNzVwY1slIElGIERhdGEuQ3VzdG9tZXJVc2VyTWFuZGF0b3J5ICVdIFZhbGlkYXRlX1JlcXVpcmVkWyUgRU5EICVdIFslIERhdGEuQ3VzdG9tZXJVc2VySURJbnZhbGlkIHwgaHRtbCAlXSIgYXV0b2NvbXBsZXRlPSJvZmYiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLkN1c3RvbWVyVXNlck1hbmRhdG9yeSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQ3VzdG9tZXJBdXRvQ29tcGxldGVFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkN1c3RvbWVyQXV0b0NvbXBsZXRlU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJDdXN0b21lclVzZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDdXN0b21lcklEIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBJTkNMVURFICJDdXN0b21lckNvbXBhbnkvVGlja2V0Q3VzdG9tZXJJRFNlbGVjdGlvbi50dCIgUmVxdWlyZWQgPSAwIFJlYWRvbmx5ID0gVGlja2V0RnJvbnRlbmRDb25maWcuQ3VzdG9tZXJJRFJlYWRPbmx5ICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJDdXN0b21lcklEIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgRU5EICVdCgpbJSBJRiBDb25maWcoJ1RpY2tldDo6U2VydmljZScpICYmIFRpY2tldEZyb250ZW5kQ29uZmlnLlNlcnZpY2UgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLTEyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vZCBtb2RDYXJkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbm5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRUaXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJTZXJ2aWNlcyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZFRpdGxlVHJpZ2dlciI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZENvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93IHJvdy1jb2xzLTEgcm93LWNvbHMtbGctMiByb3ctY29scy14bC0yIGd5LTMiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTZXJ2aWNlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLlNlcnZpY2VNYW5kYXRvcnkgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iU2VydmljZUlEIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlNlcnZpY2UiKSB8IGh0bWwgJV06CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIEVMU0UgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iU2VydmljZUlEIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiU2VydmljZSIpIHwgaHRtbCAlXToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuU2VydmljZVN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIElGIERhdGEuU2VydmljZU1hbmRhdG9yeSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iU2VydmljZUlERXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIiA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJTZXJ2aWNlSURTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiU2VydmljZSBpbnZhbGlkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlNlcnZpY2UiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTTEEiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIElGIERhdGEuU0xBTWFuZGF0b3J5ICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlNMQUlEIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlNlcnZpY2UgTGV2ZWwgQWdyZWVtZW50IikgfCBodG1sICVdOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBFTFNFICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlNMQUlEIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiU2VydmljZSBMZXZlbCBBZ3JlZW1lbnQiKSB8IGh0bWwgJV06CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIEVORCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlNMQVN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIElGIERhdGEuU0xBTWFuZGF0b3J5ICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJTTEFJREVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSIgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlNMQUlEU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJTTEEiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBFTkQgJV0KClslIElGIFRpY2tldEZyb250ZW5kQ29uZmlnLlF1ZXVlIHx8IFRpY2tldEZyb250ZW5kQ29uZmlnLk93bmVyIHx8IFRpY2tldEZyb250ZW5kQ29uZmlnLlJlc3BvbnNpYmxlICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb2QgbW9kQ2FyZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkVGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiVGVhbSBEYXRhIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkVGl0bGVUcmlnZ2VyIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3cgcm93LWNvbHMtMSByb3ctY29scy1sZy0yIHJvdy1jb2xzLXhsLTMgZ3ktMyI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlF1ZXVlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLlF1ZXVlTWFuZGF0b3J5ICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9Ik5ld1F1ZXVlSUQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiUXVldWUiKSB8IGh0bWwgJV06CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIEVMU0UgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTmV3UXVldWVJRCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlF1ZXVlIikgfCBodG1sICVdOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5RdWV1ZXNTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLlF1ZXVlTWFuZGF0b3J5ICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJOZXdRdWV1ZUlERXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik5ld1F1ZXVlSURTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiUXVldWUgaW52YWxpZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJRdWV1ZSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIk93bmVyIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLk93bmVyTWFuZGF0b3J5ICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9Ik5ld093bmVySUQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiT3duZXIiKSB8IGh0bWwgJV06CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIEVMU0UgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTmV3T3duZXJJRCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk93bmVyIikgfCBodG1sICVdOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Pd25lclN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIElGIERhdGEuT3duZXJNYW5kYXRvcnkgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik5ld093bmVySURFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiUGxlYXNlIHNldCBhIG5ldyBvd25lciEiKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIEVORCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTmV3T3duZXJJRFNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJPd25lciBpbnZhbGlkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk93bmVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVzcG9uc2libGUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIElGIERhdGEuUmVzcG9uc2libGVNYW5kYXRvcnkgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iTmV3UmVzcG9uc2libGVJRCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJSZXNwb25zaWJsZSIpIHwgaHRtbCAlXToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRUxTRSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJOZXdSZXNwb25zaWJsZUlEIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiUmVzcG9uc2libGUiKSB8IGh0bWwgJV06CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIEVORCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlJlc3BvbnNpYmxlU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgSUYgRGF0YS5SZXNwb25zaWJsZU1hbmRhdG9yeSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTmV3UmVzcG9uc2libGVJREVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJQbGVhc2Ugc2V0IGEgbmV3IHJlc3BvbnNpYmxlISIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTmV3UmVzcG9uc2libGVJRFNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJSZXNwb25zaWJsZSBpbnZhbGlkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVzcG9uc2libGUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBFTkQgJV0KClslIElGIFRpY2tldEZyb250ZW5kQ29uZmlnLlRpdGxlIHx8IFRpY2tldEZyb250ZW5kQ29uZmlnLlRpY2tldFR5cGUgfHwgVGlja2V0RnJvbnRlbmRDb25maWcuU3RhdGUgfHwgVGlja2V0RnJvbnRlbmRDb25maWcuUHJpb3JpdHkgJV0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb2QgbW9kQ2FyZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkVGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiVGlja2V0IERhdGEiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmRUaXRsZVRyaWdnZXIiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyByb3ctY29scy0xIHJvdy1jb2xzLWxnLTIgcm93LWNvbHMteGwtMyBneS0zIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVGl0bGUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRpdGxlIikgfCBodG1sICVdOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9IlRpdGxlIiBuYW1lPSJUaXRsZSIgdmFsdWU9IlslIERhdGEuVGl0bGUgfCBodG1sICVdIiBjbGFzcz0iVzc1cGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5UaXRsZUludmFsaWQgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVGl0bGVFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRpdGxlU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiVGl0bGUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJUeXBlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLlR5cGVNYW5kYXRvcnkgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iVHlwZUlEIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+WyUgVHJhbnNsYXRlKCJUeXBlIikgfCBodG1sICVdOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBFTFNFICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlR5cGVJRCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlR5cGUiKSB8IGh0bWwgJV06CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIEVORCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlR5cGVTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLlR5cGVNYW5kYXRvcnkgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlR5cGVJREVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVHlwZUlEU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJUeXBlIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RhdGUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIElGIERhdGEuU3RhdGVNYW5kYXRvcnkgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iTmV3U3RhdGVJRCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTdGF0ZSIpIHwgaHRtbCAlXToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRUxTRSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJOZXdTdGF0ZUlEIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiU3RhdGUiKSB8IGh0bWwgJV06CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIEVORCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlN0YXRlU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgSUYgRGF0YS5TdGF0ZU1hbmRhdG9yeSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTmV3U3RhdGVJREVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTmV3U3RhdGVJRFNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJTdGF0ZSBpbnZhbGlkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiU3RhdGUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTdGF0ZVBlbmRpbmciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiUGVuZGluZyBkYXRlIikgfCBodG1sICVdOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWxlY3QtZmllbGQtd3JhcHBlciI+WyUgRGF0YS5EYXRlU3RyaW5nICVdPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJEYXlTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiRGF0ZSBpbnZhbGlkISIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iSG91clNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJEYXRlIGludmFsaWQhIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+WyUgVHJhbnNsYXRlKCJGb3IgYWxsIHBlbmRpbmcqIHN0YXRlcy4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiU3RhdGVQZW5kaW5nIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJpb3JpdHkiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIElGIERhdGEuUHJpb3JpdHlNYW5kYXRvcnkgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iTmV3UHJpb3JpdHlJRCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJQcmlvcml0eSIpIHwgaHRtbCAlXToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRUxTRSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJOZXdQcmlvcml0eUlEIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiUHJpb3JpdHkiKSB8IGh0bWwgJV06CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIEVORCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlByaW9yaXR5U3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlByaW9yaXR5IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgRU5EICVdCgpbJSBJRiAhVGlja2V0RnJvbnRlbmRDb25maWcuRHluYW1pY0ZpZWxkLmVtcHR5ICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlRpY2tldFR5cGVEeW5hbWljRmllbGRzIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLTEyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vZCBtb2RDYXJkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbm5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRUaXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJEeW5hbWljIEZpZWxkcyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZFRpdGxlVHJpZ2dlciI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZENvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93IHJvdy1jb2xzLTEgcm93LWNvbHMtbGctMiByb3ctY29scy14bC0zIGd5LTMiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJUaWNrZXRUeXBlRHluYW1pY0ZpZWxkIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb2QgbW9kRHluYW1pY0ZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlubmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJSb3dfRHluYW1pY0ZpZWxkX1slIERhdGEuTmFtZSB8IGh0bWwgJV0gZHluYW1pY0ZpZWxkIGR5bmFtaWNGaWVsZFslIERhdGEuTmFtZSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkeW5hbWljRmllbGRMYWJlbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkxhYmVsICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkeW5hbWljRmllbGRGb3JtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuRmllbGQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJUaWNrZXRUeXBlRHluYW1pY0ZpZWxkIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlRpY2tldFR5cGVEeW5hbWljRmllbGRzIikgJV0KWyUgRU5EICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJXaWRnZXRBcnRpY2xlIikgJV0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb2QgbW9kQ2FyZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXIgWyUgRGF0YS5DYXJkU3RhdHVzIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRUaXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJDb21tdW5pY2F0aW9ucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZFRpdGxlVHJpZ2dlciI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZENvbnRlbnQiPgoKWyUgSUYgVGlja2V0RnJvbnRlbmRDb25maWcuSW5mb3JtQWdlbnQgfHwgVGlja2V0RnJvbnRlbmRDb25maWcuSW52b2x2ZWRBZ2VudCAlXQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0iY2FyZC10aXRsZSI+WyUgVHJhbnNsYXRlKCJJbmZvcm0iKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93IHJvdy1jb2xzLTEgcm93LWNvbHMtbGctMiByb3ctY29scy14bC0yIGd5LTMiPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiSW5mb3JtQWRkaXRpb25hbEFnZW50cyIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkluZm9ybUFnZW50IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJJbmZvcm1Vc2VySUQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJJbmZvcm0gYWdlbnRzIikgfCBodG1sICVdOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk9wdGlvblN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJJbmZvcm1BZ2VudCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkludm9sdmVkQWdlbnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ikludm9sdmVkVXNlcklEIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiSW5mb3JtIGludm9sdmVkIGFnZW50cyIpIHwgaHRtbCAlXToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5JbnZvbHZlZEFnZW50U3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJIZXJlIHlvdSBjYW4gc2VsZWN0IGFkZGl0aW9uYWwgYWdlbnRzIHdoaWNoIHNob3VsZCByZWNlaXZlIGEgbm90aWZpY2F0aW9uIHJlZ2FyZGluZyB0aGUgbmV3IGFydGljbGUuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkludm9sdmVkQWdlbnQiKSAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiSW5mb3JtQWRkaXRpb25hbEFnZW50cyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbmZvcm1BZ2VudHNXaXRob3V0U2VsZWN0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRleHQgd2lsbCBhbHNvIGJlIHJlY2VpdmVkIGJ5IikgfCBodG1sICVdOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJVc2VyTGlzdFdpdGhvdXRTZWxlY3Rpb24iIHZhbHVlPSJbJSBEYXRhLlVzZXJMaXN0V2l0aG91dFNlbGVjdGlvbiAgfCBodG1sICVdIiAvPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbmZvcm1BZ2VudHNXaXRob3V0U2VsZWN0aW9uU2luZ2xlVXNlciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiB0aXRsZT0iWyUgRGF0YS5Vc2VyRW1haWwgfCBodG1sICVdIj5bJSBEYXRhLlVzZXJGdWxsbmFtZSB8IGh0bWwgJV08L3NwYW4+ClslIFJlbmRlckJsb2NrU3RhcnQoIkluZm9ybUFnZW50c1dpdGhvdXRTZWxlY3Rpb25TaW5nbGVVc2VyU2VwYXJhdG9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwKWyUgUmVuZGVyQmxvY2tFbmQoIkluZm9ybUFnZW50c1dpdGhvdXRTZWxlY3Rpb25TaW5nbGVVc2VyU2VwYXJhdG9yIikgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkluZm9ybUFnZW50c1dpdGhvdXRTZWxlY3Rpb25TaW5nbGVVc2VyIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJJbmZvcm1BZ2VudHNXaXRob3V0U2VsZWN0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyBneS0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9ImNhcmQtdGl0bGUiPlslIFRyYW5zbGF0ZSgiQ3JlYXRlIGFuIEFydGljbGUiKSB8IGh0bWwgJV08L2gyPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLkNhcmRTdGF0dXMgIT0gJ2NhcmRDbG9zZWQnICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkNyZWF0ZUFydGljbGUiIG5hbWU9IkNyZWF0ZUFydGljbGUiIHZhbHVlPSIxIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIEVMU0UgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQgQ2hlY2tib3hDb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9IkNyZWF0ZUFydGljbGUiIG5hbWU9IkNyZWF0ZUFydGljbGUiIHZhbHVlPSIxIiBbJSBJRiBEYXRhLkNyZWF0ZUFydGljbGUgJV0gY2hlY2tlZD0iY2hlY2tlZCJbJSBFTkQgJV0gLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJDcmVhdGVBcnRpY2xlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJDcmVhdGUgYW4gQXJ0aWNsZSIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlN1YmplY3RMYWJlbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlN1YmplY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTdWJqZWN0IikgfCBodG1sICVdOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgpbJSBSZW5kZXJCbG9ja0VuZCgiU3ViamVjdExhYmVsIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiU3ViamVjdExhYmVsTWFuZGF0b3J5IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iU3ViamVjdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTdWJqZWN0IikgfCBodG1sICVdOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgpbJSBSZW5kZXJCbG9ja0VuZCgiU3ViamVjdExhYmVsTWFuZGF0b3J5IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJTdWJqZWN0IiBuYW1lPSJTdWJqZWN0IiB2YWx1ZT0iWyUgRGF0YS5TdWJqZWN0IHwgaHRtbCAlXSIgY2xhc3M9Ilc3NXBjIFZhbGlkYXRlIFslIERhdGEuU3ViamVjdEludmFsaWQgJV0gWyUgRGF0YS5TdWJqZWN0UmVxdWlyZWQgJV0iLz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJTdWJqZWN0RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iU3ViamVjdFNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVGlja2V0T3B0aW9ucyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLTEyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlja2V0LWZvcm0tb3B0aW9ucyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJPcHRpb25zIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gT3V0cHV0RmlsdGVySG9va19UaWNrZXRPcHRpb25zQmVnaW4gLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgUmVuZGVyQmxvY2tTdGFydCgiT3B0aW9uQ3VzdG9tZXIiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJPcHRpb25DdXN0b21lciI+WyUgVHJhbnNsYXRlKCJDdXN0b21lciB1c2VyIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFJlbmRlckJsb2NrRW5kKCJPcHRpb25DdXN0b21lciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBPdXRwdXRGaWx0ZXJIb29rX1RpY2tldE9wdGlvbnNFbmQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJUaWNrZXRPcHRpb25zIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIE91dHB1dEZpbHRlckhvb2tfTm9UaWNrZXRPcHRpb25zRmFsbGJhY2sgLS0+ClslIFJlbmRlckJsb2NrU3RhcnQoIlN0YW5kYXJkVGVtcGxhdGUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlN0YW5kYXJkVGVtcGxhdGVJRCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRleHQgVGVtcGxhdGUiKSB8IGh0bWwgJV06CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIG5vLWJhY2tncm91bmQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TdGFuZGFyZFRlbXBsYXRlU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPlslIFRyYW5zbGF0ZSgiU2V0dGluZyBhIHRlbXBsYXRlIHdpbGwgb3ZlcndyaXRlIGFueSB0ZXh0IG9yIGF0dGFjaG1lbnQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlN0YW5kYXJkVGVtcGxhdGUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlJpY2hUZXh0TGFiZWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJSaWNoVGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRleHQiKSB8IGh0bWwgJV06CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+ClslIFJlbmRlckJsb2NrRW5kKCJSaWNoVGV4dExhYmVsIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmljaFRleHRMYWJlbE1hbmRhdG9yeSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlJpY2hUZXh0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRleHQiKSB8IGh0bWwgJV06CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+ClslIFJlbmRlckJsb2NrRW5kKCJSaWNoVGV4dExhYmVsTWFuZGF0b3J5IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUmljaFRleHRGaWVsZCIgY2xhc3M9IlJpY2hUZXh0RmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIGlkPSJSaWNoVGV4dCIgY2xhc3M9IlJpY2hUZXh0IFZhbGlkYXRlIFslIERhdGEuQm9keUludmFsaWQgJV0gWyUgRGF0YS5Cb2R5UmVxdWlyZWQgJV0iIG5hbWU9IkJvZHkiIHJvd3M9IjE1IiBjb2xzPSJbJSBDb25maWcoIlRpY2tldDo6RnJvbnRlbmQ6OlRleHRBcmVhTm90ZSIpICVdIj5bJSBEYXRhLkJvZHkgfCBodG1sICVdPC90ZXh0YXJlYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlJpY2hUZXh0RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJSaWNoVGV4dFNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLTEyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW9kIG1vZEF0dGFjaG1lbnRzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlubmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJBdHRhY2htZW50cyIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIGNvbXBvbmVudC1hdHRhY2htZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgSU5DTFVERSAiRm9ybUVsZW1lbnRzL0F0dGFjaG1lbnRMaXN0LnR0IiAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCBuby1iYWNrZ3JvdW5kIENoZWNrYm94Q29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iSXNWaXNpYmxlRm9yQ3VzdG9tZXIiIGlkPSJJc1Zpc2libGVGb3JDdXN0b21lciIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLklzVmlzaWJsZUZvckN1c3RvbWVyICVdY2hlY2tlZD0iY2hlY2tlZCIgWyUgRU5EICVdLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IklzVmlzaWJsZUZvckN1c3RvbWVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIklzIHZpc2libGUgZm9yIGN1c3RvbWVyIikgfCBodG1sICVdOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrU3RhcnQoIlRpbWVVbml0cyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLTEyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5UaW1lVW5pdHNCbG9jayAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiVGltZVVuaXRzIikgJV0KClslIElGICFUaWNrZXRGcm9udGVuZENvbmZpZy5EeW5hbWljRmllbGQuZW1wdHkgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQXJ0aWNsZVR5cGVEeW5hbWljRmllbGRzIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb2QgbW9kQ2FyZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbm5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZFRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQXJ0aWNsZSIpIHwgaHRtbCAlXSBbJSBUcmFuc2xhdGUoIkR5bmFtaWMgRmllbGRzIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmRUaXRsZVRyaWdnZXIiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyByb3ctY29scy0xIHJvdy1jb2xzLWxnLTIgcm93LWNvbHMteGwtMyBneS0zIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQXJ0aWNsZVR5cGVEeW5hbWljRmllbGQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLTEyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb2QgbW9kRHluYW1pY0ZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iUm93X0R5bmFtaWNGaWVsZF9bJSBEYXRhLk5hbWUgfCBodG1sICVdIGR5bmFtaWNGaWVsZCBkeW5hbWljRmllbGRbJSBEYXRhLk5hbWUgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkeW5hbWljRmllbGRMYWJlbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTGFiZWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkeW5hbWljRmllbGRGb3JtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5GaWVsZCAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBcnRpY2xlVHlwZUR5bmFtaWNGaWVsZEVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRHluYW1pY0ZpZWxkX1slIERhdGEuTmFtZSAlXUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFydGljbGVUeXBlRHluYW1pY0ZpZWxkRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJBcnRpY2xlVHlwZUR5bmFtaWNGaWVsZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiQXJ0aWNsZVR5cGVEeW5hbWljRmllbGRzIikgJV0KWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJXaWRnZXRBcnRpY2xlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLTEyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb2QgbW9kRm9ybVN1Ym1pdEFyZWEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbm5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtU3VibWl0QXJlYSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybVN1Ym1pdEFyZWFDYW5jZWwiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJUaWNrZXRCYWNrIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IkNhbmNlbENsb3NlUG9wdXAgYnRuLWNhbmNlbC1naG9zdCBidG4tbWFpbiBidG4td2lkdGgtbWQiIGhyZWY9IiMiPlslIFRyYW5zbGF0ZSgiVW5kbyAmIGNsb3NlIikgfCBodG1sICVdPC9hPgpbJSBSZW5kZXJCbG9ja0VuZCgiVGlja2V0QmFjayIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlByb3BlcnRpZXNMb2NrIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlja2V0LWxvY2tlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iVW5kb0Nsb3NlUG9wdXAgYnRuLWNhbmNlbC1naG9zdCBidG4tbWFpbiBidG4td2lkdGgtbWQiIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudFRpY2tldExvY2s7U3ViYWN0aW9uPVVubG9jaztUaWNrZXRJRD1bJSBEYXRhLlRpY2tldElEICVdWyUgSUYgRGF0YS5QcmV2aW91c093bmVyICVdO1ByZXZpb3VzT3duZXI9WyUgRGF0YS5QcmV2aW91c093bmVyICVdWyUgRU5EICVdO1slIEVudigiQ2hhbGxlbmdlVG9rZW5QYXJhbSIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJVbmxvY2sgYW5kIGNsb3NlIHBvcHVwIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvcGVydGllc0xvY2siKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm1TdWJtaXRBcmVhU3VibWl0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgSU5DTFVERSAiRm9ybUVsZW1lbnRzL0RyYWZ0QnV0dG9ucy50dCIgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQcmltYXJ5IGJ0bi1wcmltYXJ5IGJ0bi1tYWluIGJ0bi13aWR0aC1tZCIgaWQ9InN1Ym1pdFJpY2hUZXh0IiBhY2Nlc3NrZXk9ImciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXSAoZykiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L21haW4+ClslIFJlbmRlckJsb2NrRW5kKCJQcm9wZXJ0aWVzIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlNpZGViYXIiKSAlXQogICAgPGFzaWRlIGNsYXNzPSJzZWN0aW9uU2lkZWJhciI+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kIG1vZFNpZGViYXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbm5lciBzaWRlYmFyQWN0aXZlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXJUaXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkluZm9ybWF0aW9uIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyQ29udGVudCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlNpZGViYXJXaWRnZXQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlNpZGViYXJXaWRnZXQuT3V0cHV0ICVdClslIFJlbmRlckJsb2NrRW5kKCJTaWRlYmFyV2lkZ2V0IikgJV0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhclRyaWdnZXIiPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9hc2lkZT4KWyUgUmVuZGVyQmxvY2tFbmQoIlNpZGViYXIiKSAlXQoKPC9kaXY+Cg==</File>
        <File Permission="660" Location="Kernel/Output/HTML/TicketBulk/PrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6VGlja2V0QnVsazo6UHJpbWFyeVNlY29uZGFyeTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnLAopOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICREeW5hbWljRmllbGRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyk7CgogICAgIyBnZXQgUHJpbWFyeS9TZWNvbmRhcnkgZHluYW1pYyBmaWVsZAogICAgJFNlbGYtPntQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkfSAgICA9ICRDb25maWdPYmplY3QtPkdldCgnUHJpbWFyeVNlY29uZGFyeTo6RHluYW1pY0ZpZWxkJykgICAgfHwgJyc7CiAgICAkU2VsZi0+e1ByaW1hcnlTZWNvbmRhcnlBZHZhbmNlZEVuYWJsZWR9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdQcmltYXJ5U2Vjb25kYXJ5OjpBZHZhbmNlZEVuYWJsZWQnKSB8fCAwOwoKICAgIGlmICggJFNlbGYtPntQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkfSApIHsKICAgICAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZENvbmZpZ30gPSAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGRHZXQoCiAgICAgICAgICAgIE5hbWUgPT4gJFNlbGYtPntQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkfSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIERpc3BsYXkgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGlmIHRoZXJlIGlzIG5vIGNvbmZpZ3VyZWQgZHluYW1pYyBmaWVsZCBvciBpZiBhZHZhbmNlZCBtb2RlIGlzIG5vdCBlbmFibGUsIHRoZXJlIGlzIG5vdGhpbmcgdG8gZG8KICAgIHJldHVybiBpZiAhJFNlbGYtPntQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkfTsKICAgIHJldHVybiBpZiAhJFNlbGYtPntQcmltYXJ5U2Vjb25kYXJ5QWR2YW5jZWRFbmFibGVkfTsKCiAgICBteSAkU2VydmVyRXJyb3I7CiAgICBteSAkRXJyb3JNZXNzYWdlOwogICAgaWYgKCBleGlzdHMgJFBhcmFte0Vycm9yc30tPnsgJFNlbGYtPntEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX0gfSApIHsKICAgICAgICAkU2VydmVyRXJyb3IgID0gMTsKICAgICAgICAkRXJyb3JNZXNzYWdlID0gJFBhcmFte0Vycm9yc30tPnsgJFNlbGYtPntEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX0gfTsKICAgIH0KCiAgICBteSAkUG9zc2libGVWYWx1ZXNGaWx0ZXIgPSAkU2VsZi0+X0dldFByaW1hcnlTZWNvbmRhcnlEYXRhKAogICAgICAgICVQYXJhbSwKICAgICAgICBQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkID0+ICRTZWxmLT57UHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZH0sCiAgICApOwoKICAgIG15ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpOwogICAgbXkgJExheW91dE9iamVjdCAgICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkUGFyYW1PYmplY3QgICAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICAjIGdldCBmaWVsZCBIVE1MCiAgICBteSAkRHluYW1pY0ZpZWxkSFRNTCA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5FZGl0RmllbGRSZW5kZXIoCiAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJFNlbGYtPntEeW5hbWljRmllbGRDb25maWd9LAogICAgICAgIFBvc3NpYmxlVmFsdWVzRmlsdGVyID0+ICRQb3NzaWJsZVZhbHVlc0ZpbHRlciwKICAgICAgICBTZXJ2ZXJFcnJvciAgICAgICAgICA9PiAkU2VydmVyRXJyb3IgIHx8ICcnLAogICAgICAgIEVycm9yTWVzc2FnZSAgICAgICAgID0+ICRFcnJvck1lc3NhZ2UgfHwgJycsCiAgICAgICAgTGF5b3V0T2JqZWN0ICAgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICBQYXJhbU9iamVjdCAgICAgICAgICA9PiAkUGFyYW1PYmplY3QsCiAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMCwKICAgICk7CgogICAgIyBpbmRlbnRhdGlvbiBoZXJlIGlzIG9uIHB1cnBvc2Ugc28gdGhlIEhUTUwgd2lsbCBsb29rIGFjY29yZGluZyB0byB0aGUgZnJhbWV3b3JrCiAgICBteSAkSFRNTFN0cmluZyA9IDw8IkVPRiI7CiAgICAgICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZEhUTUwtPntMYWJlbH0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICREeW5hbWljRmllbGRIVE1MLT57RmllbGR9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CkVPRgoKICAgIHJldHVybiAkSFRNTFN0cmluZzsKfQoKc3ViIFZhbGlkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBpZiB0aGVyZSBpcyBubyBjb25maWd1cmVkIGR5bmFtaWMgZmllbGQgb3IgaWYgYWR2YW5jZWQgbW9kZSBpcyBub3QgZW5hYmxlLCB0aGVyZSBpcyBub3RoaW5nIHRvIGRvCiAgICByZXR1cm4gaWYgISRTZWxmLT57UHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZH07CiAgICByZXR1cm4gaWYgISRTZWxmLT57UHJpbWFyeVNlY29uZGFyeUFkdmFuY2VkRW5hYmxlZH07CgogICAgbXkgJFBvc3NpYmxlVmFsdWVzRmlsdGVyID0gJFNlbGYtPl9HZXRQcmltYXJ5U2Vjb25kYXJ5RGF0YSgKICAgICAgICAlUGFyYW0sCiAgICAgICAgUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCA9PiAkU2VsZi0+e1ByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGR9LAogICAgKTsKCiAgICBteSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKCiAgICBteSAkVmFsaWRhdGlvblJlc3VsdCA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5FZGl0RmllbGRWYWx1ZVZhbGlkYXRlKAogICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICRTZWxmLT57RHluYW1pY0ZpZWxkQ29uZmlnfSwKICAgICAgICBQb3NzaWJsZVZhbHVlc0ZpbHRlciA9PiAkUG9zc2libGVWYWx1ZXNGaWx0ZXIsCiAgICAgICAgUGFyYW1PYmplY3QgICAgICAgICAgPT4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLAogICAgICAgIE1hbmRhdG9yeSAgICAgICAgICAgID0+IDAsCiAgICApOwoKICAgIGlmICggJFZhbGlkYXRpb25SZXN1bHQtPntTZXJ2ZXJFcnJvcn0gKSB7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRXJyb3JLZXkgICA9PiAkU2VsZi0+e0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfSwKICAgICAgICAgICAgICAgIEVycm9yVmFsdWUgPT4gJFZhbGlkYXRpb25SZXN1bHQtPntFcnJvck1lc3NhZ2V9LAogICAgICAgICAgICB9CiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm47Cn0KCnN1YiBTdG9yZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgaWYgdGhlcmUgaXMgbm8gY29uZmlndXJlZCBkeW5hbWljIGZpZWxkIG9yIGlmIGFkdmFuY2VkIG1vZGUgaXMgbm90IGVuYWJsZSwgdGhlcmUgaXMgbm90aGluZyB0byBkbwogICAgcmV0dXJuIDEgaWYgISRTZWxmLT57UHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZH07CiAgICByZXR1cm4gMSBpZiAhJFNlbGYtPntQcmltYXJ5U2Vjb25kYXJ5QWR2YW5jZWRFbmFibGVkfTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7CgogICAgIyBleHRyYWN0IHRoZSBkeW5hbWljIGZpZWxkIHZhbHVlIGZvcm0gdGhlIHdlYiByZXF1ZXN0CiAgICBteSAkRHluYW1pY0ZpZWxkVmFsdWUgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+RWRpdEZpZWxkVmFsdWVHZXQoCiAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICRTZWxmLT57RHluYW1pY0ZpZWxkQ29uZmlnfSwKICAgICAgICBQYXJhbU9iamVjdCAgICAgICAgPT4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLAogICAgICAgIExheW91dE9iamVjdCAgICAgICA9PiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JyksCiAgICApOwoKICAgICMgc2V0IHRoZSB2YWx1ZQogICAgbXkgJFN1Y2Nlc3MgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+VmFsdWVTZXQoCiAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICRTZWxmLT57RHluYW1pY0ZpZWxkQ29uZmlnfSwKICAgICAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJER5bmFtaWNGaWVsZFZhbHVlLAogICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCnN1YiBfR2V0UHJpbWFyeVNlY29uZGFyeURhdGEgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBnZXQgcHJpbWFyeSBzZWNvbmRhcnkgY29uZmlnCiAgICBteSAkVW5zZXRQcmltYXJ5U2Vjb25kYXJ5ICA9ICRDb25maWdPYmplY3QtPkdldCgnUHJpbWFyeVNlY29uZGFyeTo6VW5zZXRQcmltYXJ5U2Vjb25kYXJ5JykgIHx8IDA7CiAgICBteSAkVXBkYXRlUHJpbWFyeVNlY29uZGFyeSA9ICRDb25maWdPYmplY3QtPkdldCgnUHJpbWFyeVNlY29uZGFyeTo6VXBkYXRlUHJpbWFyeVNlY29uZGFyeScpIHx8IDA7CgogICAgbXkgJURhdGEgPSAoCiAgICAgICAgJycgICAgICA9PiAnLScsCiAgICAgICAgUHJpbWFyeSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ05ldyBQcmltYXJ5IFRpY2tldCcpLAogICAgKTsKCiAgICBpZiAoJFVuc2V0UHJpbWFyeVNlY29uZGFyeSkgewogICAgICAgICREYXRhe1Vuc2V0UHJpbWFyeX0gICA9IFRyYW5zbGF0YWJsZSgnVW5zZXQgUHJpbWFyeSBUaWNrZXRzJyk7CiAgICAgICAgJERhdGF7VW5zZXRTZWNvbmRhcnl9ID0gVHJhbnNsYXRhYmxlKCdVbnNldCBTZWNvbmRhcnkgVGlja2V0cycpOwogICAgfQoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkVGlja2V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwoKICAgIGlmICgkVXBkYXRlUHJpbWFyeVNlY29uZGFyeSkgewoKICAgICAgICAjIGZpbmQgYWxsIGN1cnJlbnQgb3BlbiBwcmltYXJ5IHNlY29uZGFyeSB0aWNrZXRzIGFuZCB0aGUgbGVnYWN5IG1hc3RlciBzbGF2ZSB0aWNrZXRzCiAgICAgICAgbXkgQFRpY2tldElEcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgUmVzdWx0ID0+ICdBUlJBWScsCgogICAgICAgICAgICAjIHByaW1hcnkgc2Vjb25kYXJ5IGR5bmFtaWMgZmllbGQKICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFBhcmFte1ByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGR9ID0+IHsKICAgICAgICAgICAgICAgIEVxdWFscyA9PiBbICdQcmltYXJ5JywgJ01hc3RlcicsIF0sCiAgICAgICAgICAgIH0sCgogICAgICAgICAgICBTdGF0ZVR5cGUgID0+ICdPcGVuJywKICAgICAgICAgICAgTGltaXQgICAgICA9PiA2MCwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgUGVybWlzc2lvbiA9PiAncm8nLAogICAgICAgICk7CgogICAgICAgIG15ICRUaWNrZXRIb29rICAgICAgICA9ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpIb29rJyk7CiAgICAgICAgbXkgJFRpY2tldEhvb2tEaXZpZGVyID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6Okhvb2tEaXZpZGVyJyk7CgogICAgICAgIFRJQ0tFVElEOgogICAgICAgIGZvciBteSAkVGlja2V0SUQgKEBUaWNrZXRJRHMpIHsKCiAgICAgICAgICAgICMgZ2V0IGVhY2ggdGlja2V0IGZyb20gdGhlIHNlYXJjaCByZXN1bHRzCiAgICAgICAgICAgIG15ICVDdXJyZW50VGlja2V0ID0gJFRpY2tldE9iamVjdC0+VGlja2V0R2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElECiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG5leHQgVElDS0VUSUQgaWYgISVDdXJyZW50VGlja2V0OwoKICAgICAgICAgICAgJERhdGF7IlNlY29uZGFyeU9mOiRDdXJyZW50VGlja2V0e1RpY2tldE51bWJlcn0ifSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICdTZWNvbmRhcnkgb2YgJXMlcyVzOiAlcycsCiAgICAgICAgICAgICAgICAkVGlja2V0SG9vaywKICAgICAgICAgICAgICAgICRUaWNrZXRIb29rRGl2aWRlciwKICAgICAgICAgICAgICAgICRDdXJyZW50VGlja2V0e1RpY2tldE51bWJlcn0sCiAgICAgICAgICAgICAgICAkQ3VycmVudFRpY2tldHtUaXRsZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIFwlRGF0YTsKCn0KMTsK</File>
        <File Permission="660" Location="Kernel/System/DynamicField/Driver/PrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OlByaW1hcnlTZWNvbmRhcnk7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKdXNlIHBhcmVudCBxdyhLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OkJhc2VTZWxlY3QpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6TGFuZ3VhZ2UnLAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEQicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZFZhbHVlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok1haW4nLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6UHJpbWFyeVNlY29uZGFyeQoKPWhlYWQxIFNZTk9QU0lTCgpEeW5hbWljRmllbGRzIFByaW1hcnlTZWNvbmRhcnkgRHJpdmVyIGRlbGVnYXRlCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKVGhpcyBtb2R1bGUgaW1wbGVtZW50cyB0aGUgcHVibGljIGludGVyZmFjZSBvZiBMPEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQ+LgpQbGVhc2UgbG9vayB0aGVyZSBmb3IgYSBkZXRhaWxlZCByZWZlcmVuY2Ugb2YgdGhlIGZ1bmN0aW9ucy4KCj1oZWFkMiBuZXcoKQoKdXN1YWxseSwgeW91IHdhbnQgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoaXMKYnkgdXNpbmcgS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZC0+bmV3KCk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgc2V0IGZpZWxkIGJlaGF2aW9ycwogICAgJFNlbGYtPntCZWhhdmlvcnN9ID0gewogICAgICAgICdJc0FDTFJlZHVjaWJsZScgICAgICAgICAgICAgICA9PiAwLAogICAgICAgICdJc05vdGlmaWNhdGlvbkV2ZW50Q29uZGl0aW9uJyA9PiAxLAogICAgICAgICdJc1NvcnRhYmxlJyAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICdJc0ZpbHRyYWJsZScgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICdJc1N0YXRzQ29uZGl0aW9uJyAgICAgICAgICAgICA9PiAxLAogICAgICAgICdJc0N1c3RvbWVySW50ZXJmYWNlQ2FwYWJsZScgICA9PiAwLAogICAgfTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICRNYWluT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpOwoKICAgICMgZ2V0IHRoZSBEeW5hbWljIEZpZWxkIEJhY2tlbmQgY3VzdG9tIGV4dGVuc2lvbnMKICAgIG15ICREeW5hbWljRmllbGREcml2ZXJFeHRlbnNpb25zID0gJENvbmZpZ09iamVjdC0+R2V0KCdEeW5hbWljRmllbGRzOjpFeHRlbnNpb246OkRyaXZlcjo6UHJpbWFyeVNlY29uZGFyeScpOwoKICAgIEVYVEVOU0lPTjoKICAgIGZvciBteSAkRXh0ZW5zaW9uS2V5ICggc29ydCBrZXlzICV7JER5bmFtaWNGaWVsZERyaXZlckV4dGVuc2lvbnN9ICkgewoKICAgICAgICAjIHNraXAgaW52YWxpZCBleHRlbnNpb25zCiAgICAgICAgbmV4dCBFWFRFTlNJT04gaWYgIUlzSGFzaFJlZldpdGhEYXRhKCAkRHluYW1pY0ZpZWxkRHJpdmVyRXh0ZW5zaW9ucy0+eyRFeHRlbnNpb25LZXl9ICk7CgogICAgICAgICMgY3JlYXRlIGEgZXh0ZW5zaW9uIGNvbmZpZyBzaG9ydGN1dAogICAgICAgIG15ICRFeHRlbnNpb24gPSAkRHluYW1pY0ZpZWxkRHJpdmVyRXh0ZW5zaW9ucy0+eyRFeHRlbnNpb25LZXl9OwoKICAgICAgICAjIGNoZWNrIGlmIGV4dGVuc2lvbiBoYXMgYSBuZXcgbW9kdWxlCiAgICAgICAgaWYgKCAkRXh0ZW5zaW9uLT57TW9kdWxlfSApIHsKCiAgICAgICAgICAgICMgY2hlY2sgaWYgbW9kdWxlIGNhbiBiZSBsb2FkZWQKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgISRNYWluT2JqZWN0LT5SZXF1aXJlQmFzZUNsYXNzKCAkRXh0ZW5zaW9uLT57TW9kdWxlfSApCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRpZSAiQ2FuJ3QgbG9hZCBkeW5hbWljIGZpZWxkcyBiYWNrZW5kIG1vZHVsZSIgICAgIyMgbm8gY3JpdGljCiAgICAgICAgICAgICAgICAgICAgLiAiICRFeHRlbnNpb24tPntNb2R1bGV9ISAkQCI7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgY2hlY2sgaWYgZXh0ZW5zaW9uIGNvbnRhaW5zIG1vcmUgYmVoYXZpb3JzCiAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJEV4dGVuc2lvbi0+e0JlaGF2aW9yc30gKSApIHsKCiAgICAgICAgICAgICV7ICRTZWxmLT57QmVoYXZpb3JzfSB9ID0gKAogICAgICAgICAgICAgICAgJXsgJFNlbGYtPntCZWhhdmlvcnN9IH0sCiAgICAgICAgICAgICAgICAleyAkRXh0ZW5zaW9uLT57QmVoYXZpb3JzfSB9CiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFNlYXJjaFNRTEdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggJFBhcmFte09wZXJhdG9yfSBlcSAnTGlrZScgKSB7CiAgICAgICAgbXkgJFNRTCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5RdWVyeUNvbmRpdGlvbigKICAgICAgICAgICAgS2V5ICAgPT4gIiRQYXJhbXtUYWJsZUFsaWFzfS52YWx1ZV90ZXh0IiwKICAgICAgICAgICAgVmFsdWUgPT4gJFBhcmFte1NlYXJjaFRlcm19LAogICAgICAgICk7CgogICAgICAgIHJldHVybiAkU1FMOwogICAgfQoKICAgIG15ICVPcGVyYXRvcnMgPSAoCiAgICAgICAgRXF1YWxzICAgICAgICAgICAgPT4gJz0nLAogICAgICAgIEdyZWF0ZXJUaGFuICAgICAgID0+ICc+JywKICAgICAgICBHcmVhdGVyVGhhbkVxdWFscyA9PiAnPj0nLAogICAgICAgIFNtYWxsZXJUaGFuICAgICAgID0+ICc8JywKICAgICAgICBTbWFsbGVyVGhhbkVxdWFscyA9PiAnPD0nLAogICAgKTsKCiAgICBpZiAoICRQYXJhbXtPcGVyYXRvcn0gZXEgJ0VtcHR5JyApIHsKICAgICAgICBpZiAoICRQYXJhbXtTZWFyY2hUZXJtfSApIHsKICAgICAgICAgICAgcmV0dXJuICIgJFBhcmFte1RhYmxlQWxpYXN9LnZhbHVlX3RleHQgSVMgTlVMTCBPUiAkUGFyYW17VGFibGVBbGlhc30udmFsdWVfdGV4dCA9ICcnICI7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBteSAkRGF0YWJhc2VUeXBlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPnsnREI6OlR5cGUnfTsKICAgICAgICAgICAgaWYgKCAkRGF0YWJhc2VUeXBlIGVxICdvcmFjbGUnICkgewogICAgICAgICAgICAgICAgcmV0dXJuICIgJFBhcmFte1RhYmxlQWxpYXN9LnZhbHVlX3RleHQgSVMgTk9UIE5VTEwgIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHJldHVybiAiICRQYXJhbXtUYWJsZUFsaWFzfS52YWx1ZV90ZXh0IDw+ICcnICI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBlbHNpZiAoICEkT3BlcmF0b3JzeyAkUGFyYW17T3BlcmF0b3J9IH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICdQcmlvcml0eScgPT4gJ2Vycm9yJywKICAgICAgICAgICAgJ01lc3NhZ2UnICA9PiAiVW5zdXBwb3J0ZWQgT3BlcmF0b3IgJFBhcmFte09wZXJhdG9yfSIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJFF1b3RlZFNlYXJjaFRlcm0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UXVvdGUoICRQYXJhbXtTZWFyY2hUZXJtfSApOwogICAgbXkgJFNRTCAgICAgICAgICAgICAgPSAiICRQYXJhbXtUYWJsZUFsaWFzfS52YWx1ZV90ZXh0ICRPcGVyYXRvcnN7ICRQYXJhbXtPcGVyYXRvcn0gfSAnJFF1b3RlZFNlYXJjaFRlcm0nICI7CgogICAgIwogICAgIyBBZGQgc3VwcG9ydCBmb3IgZGVwcmVjYXRlZCB0ZXJtcyAnTWFzdGVyJyBhbmQgJ1NsYXZlJy4KICAgICMgVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgZGVwcmVjYXRlZCBzdG9yZWQgdmFsdWVzICdNYXN0ZXInIGFuZCAnU2xhdmVPZicgd2lsbCBub3QgYmUKICAgICMgbWlncmF0ZWQgdG8gJ1ByaW1hcnknIGFuZCAnU2Vjb25kYXJ5JyBvbiBwYWNrYWdlIHVwZ3JhZGUuCiAgICAjCiAgICBteSAkRGVwcmVjYXRlZFF1b3RlZFNlYXJjaFRlcm0gPSAkUXVvdGVkU2VhcmNoVGVybTsKICAgICREZXByZWNhdGVkUXVvdGVkU2VhcmNoVGVybSA9fiBze1ByaW1hcnl9e01hc3Rlcn1naTsKICAgICREZXByZWNhdGVkUXVvdGVkU2VhcmNoVGVybSA9fiBze1NlY29uZGFyeX17U2xhdmV9Z2k7ICAgICMgQWxzbyBoYW5kbGVzICJTZWNvbmRhcnlPZiIKCiAgICAkU1FMIC49ICJPUiAkUGFyYW17VGFibGVBbGlhc30udmFsdWVfdGV4dCAkT3BlcmF0b3JzeyAkUGFyYW17T3BlcmF0b3J9IH0gJyREZXByZWNhdGVkUXVvdGVkU2VhcmNoVGVybScgIjsKCiAgICByZXR1cm4gJFNRTDsKfQoKc3ViIFZhbHVlSXNEaWZmZXJlbnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIFNwZWNpYWwgY2FzZXMgd2hlcmUgdGhlIHZhbHVlcyBhcmUgZGlmZmVyZW50IGJ1dCB0aGV5IHNob3VsZCBiZSByZXBvcnRlZCBhcyBlcXVhbHMuCiAgICByZXR1cm4KICAgICAgICBpZiAhZGVmaW5lZCAkUGFyYW17VmFsdWUxfQogICAgICAgICYmICgKICAgICAgICBkZWZpbmVkICRQYXJhbXtWYWx1ZTJ9CiAgICAgICAgJiYgKAogICAgICAgICAgICAkUGFyYW17VmFsdWUyfSBlcSAnVW5zZXRQcmltYXJ5JwogICAgICAgICAgICB8fCAkUGFyYW17VmFsdWUyfSBlcSAnVW5zZXRTZWNvbmRhcnknCiAgICAgICAgICAgIHx8ICRQYXJhbXtWYWx1ZTJ9IGVxICcnCiAgICAgICAgKQogICAgICAgICk7CgogICAgIyBDb21wYXJlIHRoZSByZXN1bHRzLgogICAgcmV0dXJuIERhdGFJc0RpZmZlcmVudCgKICAgICAgICBEYXRhMSA9PiBcJFBhcmFte1ZhbHVlMX0sCiAgICAgICAgRGF0YTIgPT4gXCRQYXJhbXtWYWx1ZTJ9CiAgICApOwp9CgpzdWIgVmFsdWVTZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkTG9nT2JqZWN0ICAgICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CiAgICBteSAkRHluYW1pY0ZpZWxkVmFsdWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkVmFsdWUnKTsKCiAgICBteSAkU3VjY2VzcyA9ICRTZWxmLT5fSGFuZGxlTGlua3MoCiAgICAgICAgRmllbGROYW1lICA9PiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9LAogICAgICAgIEZpZWxkVmFsdWUgPT4gJFBhcmFte1ZhbHVlfSwKICAgICAgICBUaWNrZXRJRCAgID0+ICRQYXJhbXtPYmplY3RJRH0sCiAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlcmUgd2FzIGFuIGVycm9yIGhhbmRsaW5nIHRoZSBsaW5rcyBmb3IgcHJpbWFyeS9zZWNvbmRhcnksIHZhbHVlIGNvdWxkIG5vdCBiZSBzZXQiLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkVmFsdWUgPSAkUGFyYW17VmFsdWV9ICF+IC9eKD86VW5zZXRQcmltYXJ5fFVuc2V0U2Vjb25kYXJ5KSQvID8gJFBhcmFte1ZhbHVlfSA6ICcnOwoKICAgICRTdWNjZXNzID0gJER5bmFtaWNGaWVsZFZhbHVlT2JqZWN0LT5WYWx1ZVNldCgKICAgICAgICBGaWVsZElEICA9PiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0lEfSwKICAgICAgICBPYmplY3RJRCA9PiAkUGFyYW17T2JqZWN0SUR9LAogICAgICAgIFZhbHVlICAgID0+IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVmFsdWVUZXh0ID0+ICRWYWx1ZSwKICAgICAgICAgICAgfSwKICAgICAgICBdLAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgcmV0dXJuICRTdWNjZXNzOwp9CgpzdWIgRWRpdEZpZWxkVmFsdWVWYWxpZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHRoZSBmaWVsZCB2YWx1ZSBmcm9tIHRoZSBodHRwIHJlcXVlc3QKICAgIG15ICRWYWx1ZSA9ICRTZWxmLT5FZGl0RmllbGRWYWx1ZUdldCgKICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30sCiAgICAgICAgUGFyYW1PYmplY3QgICAgICAgID0+ICRQYXJhbXtQYXJhbU9iamVjdH0sCgogICAgICAgICMgbm90IG5lY2Vzc2FyeSBmb3IgdGhpcyBEcml2ZXIgYnV0IHBsYWNlIGl0IGZvciBjb25zaXN0ZW5jeSByZWFzb25zCiAgICAgICAgUmV0dXJuVmFsdWVTdHJ1Y3R1cmUgPT4gMSwKICAgICk7CgogICAgbXkgJFNlcnZlckVycm9yOwogICAgbXkgJEVycm9yTWVzc2FnZTsKCiAgICAjIHBlcmZvcm0gbmVjZXNzYXJ5IHZhbGlkYXRpb25zCiAgICBpZiAoICRQYXJhbXtNYW5kYXRvcnl9ICYmICEkVmFsdWUgKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgPT4gMSwKICAgICAgICB9OwogICAgfQogICAgZWxzZSB7CgogICAgICAgIG15ICRQb3NzaWJsZVZhbHVlczsKCiAgICAgICAgIyB1c2UgUG9zc2libGVWYWx1ZXNGaWx0ZXIgaWYgc2VudAogICAgICAgIGlmICggZGVmaW5lZCAkUGFyYW17UG9zc2libGVWYWx1ZXNGaWx0ZXJ9ICkgewogICAgICAgICAgICAkUG9zc2libGVWYWx1ZXMgPSAkUGFyYW17UG9zc2libGVWYWx1ZXNGaWx0ZXJ9OwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgZ2V0IHBvc3NpYmxlIHZhbHVlcyBsaXN0CiAgICAgICAgICAgICRQb3NzaWJsZVZhbHVlcyA9ICRTZWxmLT5Qb3NzaWJsZVZhbHVlc0dldCgKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgdmFsaWRhdGUgaWYgdmFsdWUgaXMgaW4gcG9zc2libGUgdmFsdWVzIGxpc3QgKGJ1dCBsZXQgcGFzcyBlbXB0eSB2YWx1ZXMpCiAgICAgICAgaWYgKCAkVmFsdWUgJiYgISRQb3NzaWJsZVZhbHVlcy0+eyRWYWx1ZX0gKSB7CiAgICAgICAgICAgICRTZXJ2ZXJFcnJvciAgPSAxOwogICAgICAgICAgICAkRXJyb3JNZXNzYWdlID0gJ1RoZSBmaWVsZCBjb250ZW50IGlzIGludmFsaWQnOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNyZWF0ZSByZXN1bHRpbmcgc3RydWN0dXJlCiAgICBteSAkUmVzdWx0ID0gewogICAgICAgIFNlcnZlckVycm9yICA9PiAkU2VydmVyRXJyb3IsCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRFcnJvck1lc3NhZ2UsCiAgICB9OwoKICAgIHJldHVybiAkUmVzdWx0Owp9CgpzdWIgRGlzcGxheVZhbHVlUmVuZGVyIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBzZXQgSFRNTE91dHB1dCBhcyBkZWZhdWx0IGlmIG5vdCBzcGVjaWZpZWQKICAgIGlmICggIWRlZmluZWQgJFBhcmFte0hUTUxPdXRwdXR9ICkgewogICAgICAgICRQYXJhbXtIVE1MT3V0cHV0fSA9IDE7CiAgICB9CgogICAgIyBnZXQgcmF3IFZhbHVlIHN0cmluZ3MgZnJvbSBmaWVsZCB2YWx1ZQogICAgbXkgJFZhbHVlID0gZGVmaW5lZCAkUGFyYW17VmFsdWV9ID8gJFBhcmFte1ZhbHVlfSA6ICcnOwoKICAgICMgZ2V0IHJlYWwgdmFsdWUKICAgIGlmICggJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntDb25maWd9LT57UG9zc2libGVWYWx1ZXN9LT57JFZhbHVlfSApIHsKCiAgICAgICAgIyBnZXQgcmVhZGFibGUgdmFsdWUKICAgICAgICAkVmFsdWUgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ30tPntQb3NzaWJsZVZhbHVlc30tPnskVmFsdWV9OwogICAgfQoKICAgIGlmICggJFZhbHVlID1+IG17KFByaW1hcnl8TWFzdGVyKX0gKSB7CiAgICAgICAgJFZhbHVlID0gJFBhcmFte0xheW91dE9iamVjdH0tPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnUHJpbWFyeScpOwogICAgfQogICAgZWxzaWYgKCAkVmFsdWUgPX4gbXsoU2Vjb25kYXJ5T2Z8U2xhdmVPZik6KFxkKyl9bXN4ICkgewoKICAgICAgICBteSAkVGlja2V0TnVtYmVyID0gJDI7CiAgICAgICAgaWYgKCRUaWNrZXROdW1iZXIpIHsKICAgICAgICAgICAgbXkgJENvbmZpZ09iamVjdCAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgICAgICAgICAgbXkgJFRpY2tldEhvb2sgICAgICAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6Okhvb2snKTsKICAgICAgICAgICAgbXkgJFRpY2tldEhvb2tEaXZpZGVyID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6Okhvb2tEaXZpZGVyJyk7CiAgICAgICAgICAgICRWYWx1ZSA9ICRQYXJhbXtMYXlvdXRPYmplY3R9LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICAgICAnU2Vjb25kYXJ5IG9mICVzJXMlcycsCiAgICAgICAgICAgICAgICAkVGlja2V0SG9vaywKICAgICAgICAgICAgICAgICRUaWNrZXRIb29rRGl2aWRlciwKICAgICAgICAgICAgICAgICRUaWNrZXROdW1iZXIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IHRpdGxlIGFzIHZhbHVlIGFmdGVyIHVwZGF0ZSBhbmQgYmVmb3JlIGxpbWl0CiAgICBteSAkVGl0bGUgPSAkVmFsdWU7CgogICAgIyBIVE1MT3V0cHV0IHRyYW5zZm9ybWF0aW9ucwogICAgaWYgKCAkUGFyYW17SFRNTE91dHB1dH0gKSB7CiAgICAgICAgJFZhbHVlID0gJFBhcmFte0xheW91dE9iamVjdH0tPkFzY2lpMkh0bWwoCiAgICAgICAgICAgIFRleHQgPT4gJFZhbHVlLAogICAgICAgICAgICBNYXggID0+ICRQYXJhbXtWYWx1ZU1heENoYXJzfSB8fCAnJywKICAgICAgICApOwoKICAgICAgICAkVGl0bGUgPSAkUGFyYW17TGF5b3V0T2JqZWN0fS0+QXNjaWkySHRtbCgKICAgICAgICAgICAgVGV4dCA9PiAkVGl0bGUsCiAgICAgICAgICAgIE1heCAgPT4gJFBhcmFte1RpdGxlTWF4Q2hhcnN9IHx8ICcnLAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBpZiAoICRQYXJhbXtWYWx1ZU1heENoYXJzfSAmJiBsZW5ndGgoJFZhbHVlKSA+ICRQYXJhbXtWYWx1ZU1heENoYXJzfSApIHsKICAgICAgICAgICAgJFZhbHVlID0gc3Vic3RyKCAkVmFsdWUsIDAsICRQYXJhbXtWYWx1ZU1heENoYXJzfSApIC4gJy4uLic7CiAgICAgICAgfQogICAgICAgIGlmICggJFBhcmFte1RpdGxlTWF4Q2hhcnN9ICYmIGxlbmd0aCgkVGl0bGUpID4gJFBhcmFte1RpdGxlTWF4Q2hhcnN9ICkgewogICAgICAgICAgICAkVGl0bGUgPSBzdWJzdHIoICRUaXRsZSwgMCwgJFBhcmFte1RpdGxlTWF4Q2hhcnN9ICkgLiAnLi4uJzsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgZmllbGQgbGluayBmcm9tIGNvbmZpZwogICAgbXkgJExpbmsgICAgICAgID0gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntDb25maWd9LT57TGlua30gICAgICAgIHx8ICcnOwogICAgbXkgJExpbmtQcmV2aWV3ID0gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntDb25maWd9LT57TGlua1ByZXZpZXd9IHx8ICcnOwoKICAgIG15ICREYXRhID0gewogICAgICAgIFZhbHVlICAgICAgID0+ICRWYWx1ZSwKICAgICAgICBUaXRsZSAgICAgICA9PiAkVGl0bGUsCiAgICAgICAgTGluayAgICAgICAgPT4gJExpbmssCiAgICAgICAgTGlua1ByZXZpZXcgPT4gJExpbmtQcmV2aWV3LAogICAgfTsKCiAgICByZXR1cm4gJERhdGE7Cn0KCnN1YiBQb3NzaWJsZVZhbHVlc0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgdG8gc3RvcmUgdGhlIHBvc3NpYmxlIHZhbHVlcwogICAgbXkgJVBvc3NpYmxlVmFsdWVzID0gKAogICAgICAgICcnID0+ICctJywKICAgICk7CgogICAgbXkgJFRpY2tldE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKTsKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGZpbmQgYWxsIGN1cnJlbnQgb3BlbiBwcmltYXJ5IHNlY29uZGFyeSB0aWNrZXRzIGFuZCB0aGUgbGVnYWN5IG1hc3RlciBzbGF2ZSB0aWNrZXRzCiAgICBteSBAVGlja2V0SURzID0gJFRpY2tldE9iamVjdC0+VGlja2V0U2VhcmNoKAogICAgICAgIFJlc3VsdCA9PiAnQVJSQVknLAoKICAgICAgICAjIHByaW1hcnkgc2Vjb25kYXJ5IGR5bmFtaWMgZmllbGQKICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9ID0+IHsKICAgICAgICAgICAgRXF1YWxzID0+IFsgJ1ByaW1hcnknLCAnTWFzdGVyJywgXSwKICAgICAgICB9LAoKICAgICAgICBTdGF0ZVR5cGUgID0+ICdPcGVuJywKICAgICAgICBMaW1pdCAgICAgID0+IDYwLAogICAgICAgIFVzZXJJRCAgICAgPT4gJExheW91dE9iamVjdC0+e1VzZXJJRH0sCiAgICAgICAgUGVybWlzc2lvbiA9PiAncm8nLAogICAgKTsKCiAgICAjIHNldCBkeW5hbWljIGZpZWxkIHBvc3NpYmxlIHZhbHVlcwogICAgJFBvc3NpYmxlVmFsdWVze1ByaW1hcnl9ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdOZXcgUHJpbWFyeSBUaWNrZXQnKTsKCiAgICBteSAkVGlja2V0SG9vayAgICAgICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6SG9vaycpOwogICAgbXkgJFRpY2tldEhvb2tEaXZpZGVyID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6Okhvb2tEaXZpZGVyJyk7CgogICAgVElDS0VUOgogICAgZm9yIG15ICRUaWNrZXRJRCAoQFRpY2tldElEcykgewogICAgICAgIG15ICVDdXJyZW50VGlja2V0ID0gJFRpY2tldE9iamVjdC0+VGlja2V0R2V0KAogICAgICAgICAgICBUaWNrZXRJRCAgICAgID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgRHluYW1pY0ZpZWxkcyA9PiAxLAogICAgICAgICk7CgogICAgICAgIG5leHQgVElDS0VUIGlmICElQ3VycmVudFRpY2tldDsKCiAgICAgICAgIyBzZXQgZHluYW1pYyBmaWVsZCBwb3NzaWJsZSB2YWx1ZXMKICAgICAgICAkUG9zc2libGVWYWx1ZXN7IlNlY29uZGFyeU9mOiRDdXJyZW50VGlja2V0e1RpY2tldE51bWJlcn0ifSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgJ1NlY29uZGFyeSBvZiAlcyVzJXM6ICVzJywKICAgICAgICAgICAgJFRpY2tldEhvb2ssCiAgICAgICAgICAgICRUaWNrZXRIb29rRGl2aWRlciwKICAgICAgICAgICAgJEN1cnJlbnRUaWNrZXR7VGlja2V0TnVtYmVyfSwKICAgICAgICAgICAgJEN1cnJlbnRUaWNrZXR7VGl0bGV9LAogICAgICAgICk7CiAgICB9CgogICAjIElmIGNvbmZpZyBVbnNldFByaW1hcnlTZWNvbmRhcnkgaXMgZW5hYmxlZCBhbmQgd2UgYXJlIHJlcXVlc3RpbmcgdmFsdWVzIGZyb20gQWRtaW5HZW5lcmljQWdlbnQsCiAgICMgICBhZGQgVW5zZXRQcmltYXJ5IGFuZCBVbnNldFNlY29uZGFyeSBwb3NzaWJsZSB2YWx1ZXMuIFNlZSBidWcjMTQ3NzggKGh0dHBzOi8vYnVncy5vdHJzLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NzgpLgogICAgaWYgKAogICAgICAgICRDb25maWdPYmplY3QtPkdldCgnUHJpbWFyeVNlY29uZGFyeTo6VW5zZXRQcmltYXJ5U2Vjb25kYXJ5JykKICAgICAgICAmJiAkTGF5b3V0T2JqZWN0LT57QWN0aW9ufSBlcSAnQWRtaW5HZW5lcmljQWdlbnQnCiAgICAgICAgKQogICAgewogICAgICAgICRQb3NzaWJsZVZhbHVlc3tVbnNldFByaW1hcnl9ICAgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ1Vuc2V0IFByaW1hcnkgVGlja2V0Jyk7CiAgICAgICAgJFBvc3NpYmxlVmFsdWVze1Vuc2V0U2Vjb25kYXJ5fSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnVW5zZXQgU2Vjb25kYXJ5IFRpY2tldCcpOwogICAgfQoKICAgICMgcmV0dXJuIHRoZSBwb3NzaWJsZSB2YWx1ZXMgaGFzaCBhcyBhIHJlZmVyZW5jZQogICAgcmV0dXJuIFwlUG9zc2libGVWYWx1ZXM7Cn0KCnN1YiBfSGFuZGxlTGlua3MgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkTG9nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwoKICAgIGZvciBteSAkTmVlZGVkIChxdyhGaWVsZE5hbWUgRmllbGRWYWx1ZSBUaWNrZXRJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IHRpY2tldCBvYmplY3QKICAgIG15ICRUaWNrZXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CgogICAgbXkgJEZpZWxkTmFtZSA9ICRQYXJhbXtGaWVsZE5hbWV9OwoKICAgIG15ICVUaWNrZXQgPSAkUGFyYW17VGlja2V0fQogICAgICAgID8gJXsgJFBhcmFte1RpY2tldH0gfQogICAgICAgIDogJFRpY2tldE9iamVjdC0+VGlja2V0R2V0KAogICAgICAgIFRpY2tldElEICAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICBEeW5hbWljRmllbGRzID0+IDEsCiAgICAgICAgKTsKCiAgICBteSAkT2xkVmFsdWUgPSAkVGlja2V0eyAnRHluYW1pY0ZpZWxkXycgLiAkRmllbGROYW1lIH07CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBnZXQgcHJpbWFyeSBzZWNvbmRhcnkgY29uZmlnCiAgICBteSAkUHJpbWFyeVNlY29uZGFyeUtlZXBQYXJlbnRDaGlsZEFmdGVyVW5zZXQKICAgICAgICA9ICRDb25maWdPYmplY3QtPkdldCgnUHJpbWFyeVNlY29uZGFyeTo6S2VlcFBhcmVudENoaWxkQWZ0ZXJVbnNldCcpIHx8IDA7CiAgICBteSAkUHJpbWFyeVNlY29uZGFyeUZvbGxvd1VwZGF0ZWRQcmltYXJ5ID0gJENvbmZpZ09iamVjdC0+R2V0KCdQcmltYXJ5U2Vjb25kYXJ5OjpGb2xsb3dVcGRhdGVkUHJpbWFyeScpIHx8IDA7CiAgICBteSAkUHJpbWFyeVNlY29uZGFyeUtlZXBQYXJlbnRDaGlsZEFmdGVyVXBkYXRlCiAgICAgICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1ByaW1hcnlTZWNvbmRhcnk6OktlZXBQYXJlbnRDaGlsZEFmdGVyVXBkYXRlJykgfHwgMDsKCiAgICBteSAkTmV3VmFsdWUgPSAkUGFyYW17RmllbGRWYWx1ZX07CgogICAgIyBnZXQgbGluayBvYmplY3QKICAgIG15ICRMaW5rT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3QnKTsKCiAgICAjIHNldCBhIG5ldyBwcmltYXJ5IHRpY2tldAogICAgIyBjaGVjayBpZiBpdCBpcyBhbHJlYWR5IGEgcHJpbWFyeSB0aWNrZXQKICAgIGlmICgKICAgICAgICAkTmV3VmFsdWUgZXEgJ1ByaW1hcnknCiAgICAgICAgJiYgKCAhJE9sZFZhbHVlIHx8ICRPbGRWYWx1ZSBuZSAkTmV3VmFsdWUgKQogICAgICAgICkKICAgIHsKCiAgICAgICAgIyBjaGVjayBpZiBpdCB3YXMgYSBzZWNvbmRhcnkgdGlja2V0IGJlZm9yZSBhbmQgaWYgd2UgaGF2ZSB0byBkZWxldGUKICAgICAgICAjIHRoZSBvbGQgcGFyZW50IGNoaWxkIGxpbmsgKFByaW1hcnlTZWNvbmRhcnlLZWVwUGFyZW50Q2hpbGRBZnRlclVuc2V0KQogICAgICAgIGlmICgKICAgICAgICAgICAgJE9sZFZhbHVlCiAgICAgICAgICAgICYmICRPbGRWYWx1ZSA9fiAvXihTZWNvbmRhcnlPZnxTbGF2ZU9mKTooLio/KSQvCiAgICAgICAgICAgICYmICEkUHJpbWFyeVNlY29uZGFyeUtlZXBQYXJlbnRDaGlsZEFmdGVyVW5zZXQKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJFNvdXJjZUtleSA9ICRUaWNrZXRPYmplY3QtPlRpY2tldElETG9va3VwKAogICAgICAgICAgICAgICAgVGlja2V0TnVtYmVyID0+ICQyLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJExpbmtPYmplY3QtPkxpbmtEZWxldGUoCiAgICAgICAgICAgICAgICBPYmplY3QxID0+ICdUaWNrZXQnLAogICAgICAgICAgICAgICAgS2V5MSAgICA9PiAkU291cmNlS2V5LAogICAgICAgICAgICAgICAgT2JqZWN0MiA9PiAnVGlja2V0JywKICAgICAgICAgICAgICAgIEtleTIgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFR5cGUgICAgPT4gJ1BhcmVudENoaWxkJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IGEgbmV3IHNlY29uZGFyeSB0aWNrZXQKICAgICMgY2hlY2sgaWYgaXQncyBhbHJlYWR5IHRoZSBzZWNvbmRhcnkgb2YgdGhlIHdpc2hlZCBwcmltYXJ5IHRpY2tldAogICAgZWxzaWYgKAogICAgICAgICROZXdWYWx1ZSA9fiAvXihTZWNvbmRhcnlPZnxTbGF2ZU9mKTooLio/KSQvCiAgICAgICAgJiYgKCAhJE9sZFZhbHVlIHx8ICRPbGRWYWx1ZSBuZSAkTmV3VmFsdWUgKQogICAgICAgICkKICAgIHsKICAgICAgICBteSAkU291cmNlS2V5ID0gJFRpY2tldE9iamVjdC0+VGlja2V0SURMb29rdXAoCiAgICAgICAgICAgIFRpY2tldE51bWJlciA9PiAkMiwKICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIG15ICRMaW5rTGlzdCA9ICRMaW5rT2JqZWN0LT5MaW5rTGlzdCgKICAgICAgICAgICAgT2JqZWN0ICAgID0+ICdUaWNrZXQnLAogICAgICAgICAgICBLZXkgICAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgT2JqZWN0MiAgID0+ICdUaWNrZXQnLAogICAgICAgICAgICBTdGF0ZSAgICAgPT4gJ1ZhbGlkJywKICAgICAgICAgICAgRGlyZWN0aW9uID0+ICdCb3RoJywKICAgICAgICAgICAgVXNlcklEICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBpZiBhbnkgb3RoZXIgbGluayB0eXBlIHRoYW4gIlBhcmVudENoaWxkIgogICAgICAgICMgaXMgbGlua2VkIHRvIHRoZSBzYW1lIG1hc3RlciB0aWNrZXQKCiAgICAgICAgIyBnZXQgYWxsIGxpbmtzIG9mIHNlY29uZGFyeSB0aWNrZXQKICAgICAgICBteSAlRXhpc3RpbmdUaWNrZXRMaW5rcyA9ICV7ICRMaW5rTGlzdC0+e1RpY2tldH0gLy8ge30gfTsKCiAgICAgICAgIyByZW1vdmUgcGFyZW50IGNoaWxkIHJlbGF0aW9uIGZyb20gZGF0YQogICAgICAgIGRlbGV0ZSAkRXhpc3RpbmdUaWNrZXRMaW5rc3tQYXJlbnRDaGlsZH07CiAgICAgICAgTElOS1RZUEU6CiAgICAgICAgZm9yIG15ICRMaW5rVHlwZSAoIHNvcnQga2V5cyAlRXhpc3RpbmdUaWNrZXRMaW5rcyApIHsKICAgICAgICAgICAgbmV4dCBMSU5LVFlQRSBpZiAhSXNIYXNoUmVmV2l0aERhdGEoICRFeGlzdGluZ1RpY2tldExpbmtzeyRMaW5rVHlwZX0gKTsKICAgICAgICAgICAgZm9yIG15ICREaXJlY3Rpb24gKCBzb3J0IGtleXMgJXsgJEV4aXN0aW5nVGlja2V0TGlua3N7JExpbmtUeXBlfSB9ICkgewogICAgICAgICAgICAgICAgbXkgJExpbmtIYXNoUmVmVmFsdWUgICAgID0gJEV4aXN0aW5nVGlja2V0TGlua3N7JExpbmtUeXBlfS0+eyREaXJlY3Rpb259OwogICAgICAgICAgICAgICAgbXkgJUxpbmtIYXNoUmV2ZXJzZVZhbHVlID0gcmV2ZXJzZSAleyAkTGlua0hhc2hSZWZWYWx1ZSAvLyAoKSB9OwogICAgICAgICAgICAgICAgbXkgJExpbmtWYWx1ZSAgICAgICAgICAgID0gJExpbmtIYXNoUmV2ZXJzZVZhbHVlezF9OwoKICAgICAgICAgICAgICAgICMgcmVsYXRpb24gb3RoZXIgdGhhbiBQYXJlbnRDaGlsZCBmb3VuZCwgZGVsZXRlIGl0CiAgICAgICAgICAgICAgICBpZiAoICRMaW5rVmFsdWUgJiYgJExpbmtWYWx1ZSBlcSAkU291cmNlS2V5ICkgewogICAgICAgICAgICAgICAgICAgICRMaW5rT2JqZWN0LT5MaW5rRGVsZXRlKAogICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QxID0+ICdUaWNrZXQnLAogICAgICAgICAgICAgICAgICAgICAgICBLZXkxICAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdDIgPT4gJ1RpY2tldCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEtleTIgICAgPT4gJFNvdXJjZUtleSwKICAgICAgICAgICAgICAgICAgICAgICAgVHlwZSAgICA9PiAkTGlua1R5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAjIG9ubHkgc2lnbmxlIGxpbmsgdHlwZSBpcyBhbGxvd2VkLCB0aGVyZWZvcmUgZW5kIHN0YXRlbWVudAogICAgICAgICAgICAgICAgICAgIGxhc3QgTElOS1RZUEU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG15ICRTdWNjZXNzID0gJExpbmtPYmplY3QtPkxpbmtBZGQoCiAgICAgICAgICAgIFNvdXJjZU9iamVjdCA9PiAnVGlja2V0JywKICAgICAgICAgICAgU291cmNlS2V5ICAgID0+ICRTb3VyY2VLZXksCiAgICAgICAgICAgIFRhcmdldE9iamVjdCA9PiAnVGlja2V0JywKICAgICAgICAgICAgVGFyZ2V0S2V5ICAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgIFR5cGUgICAgICAgICA9PiAnUGFyZW50Q2hpbGQnLAogICAgICAgICAgICBTdGF0ZSAgICAgICAgPT4gJ1ZhbGlkJywKICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIG15ICVMaW5rcyA9ICRMaW5rT2JqZWN0LT5MaW5rS2V5TGlzdCgKICAgICAgICAgICAgT2JqZWN0MSAgID0+ICdUaWNrZXQnLAogICAgICAgICAgICBLZXkxICAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgT2JqZWN0MiAgID0+ICdUaWNrZXQnLAogICAgICAgICAgICBTdGF0ZSAgICAgPT4gJ1ZhbGlkJywKICAgICAgICAgICAgVHlwZSAgICAgID0+ICdQYXJlbnRDaGlsZCcsICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgICAgIERpcmVjdGlvbiA9PiAnVGFyZ2V0JywgICAgICAgICAgICMgKG9wdGlvbmFsKSBkZWZhdWx0IEJvdGggKFNvdXJjZXxUYXJnZXR8Qm90aCkKICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIG15IEBTZWNvbmRhcnlUaWNrZXRJRHM7CgogICAgICAgIExJTktFRFRJQ0tFVElEOgogICAgICAgIGZvciBteSAkTGlua2VkVGlja2V0SUQgKCBzb3J0IGtleXMgJUxpbmtzICkgewogICAgICAgICAgICBuZXh0IExJTktFRFRJQ0tFVElEIGlmICEkTGlua3N7JExpbmtlZFRpY2tldElEfTsKCiAgICAgICAgICAgICMganVzdCB0YWtlIHRpY2tldCB3aXRoIHNlY29uZGFyeSBhdHRyaWJ1dGVzIGZvciBhY3Rpb24KICAgICAgICAgICAgbXkgJUxpbmtlZFRpY2tldCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEdldCgKICAgICAgICAgICAgICAgIFRpY2tldElEICAgICAgPT4gJExpbmtlZFRpY2tldElELAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkcyA9PiAxLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbXkgJExpbmtlZFRpY2tldFZhbHVlID0gJExpbmtlZFRpY2tldHsgJ0R5bmFtaWNGaWVsZF8nIC4gJEZpZWxkTmFtZSB9OwoKICAgICAgICAgICAgbmV4dCBMSU5LRURUSUNLRVRJRCBpZiAhJExpbmtlZFRpY2tldFZhbHVlOwogICAgICAgICAgICBuZXh0IExJTktFRFRJQ0tFVElEIGlmICRMaW5rZWRUaWNrZXRWYWx1ZSAhfiAvXihTZWNvbmRhcnlPZnxTbGF2ZU9mKTooLio/KSQvOwoKICAgICAgICAgICAgIyByZW1lbWJlciBsaW5rZWQgdGlja2V0IGlkCiAgICAgICAgICAgIHB1c2ggQFNlY29uZGFyeVRpY2tldElEcywgJExpbmtlZFRpY2tldElEOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAkT2xkVmFsdWUgJiYgJE9sZFZhbHVlID1+IC9eKFByaW1hcnl8TWFzdGVyKSQvICkgewoKICAgICAgICAgICAgaWYgKCAkUHJpbWFyeVNlY29uZGFyeUZvbGxvd1VwZGF0ZWRQcmltYXJ5ICYmIEBTZWNvbmRhcnlUaWNrZXRJRHMgKSB7CiAgICAgICAgICAgICAgICBmb3IgbXkgJExpbmtlZFRpY2tldElEIChAU2Vjb25kYXJ5VGlja2V0SURzKSB7CiAgICAgICAgICAgICAgICAgICAgJExpbmtPYmplY3QtPkxpbmtBZGQoCiAgICAgICAgICAgICAgICAgICAgICAgIFNvdXJjZU9iamVjdCA9PiAnVGlja2V0JywKICAgICAgICAgICAgICAgICAgICAgICAgU291cmNlS2V5ICAgID0+ICRTb3VyY2VLZXksCiAgICAgICAgICAgICAgICAgICAgICAgIFRhcmdldE9iamVjdCA9PiAnVGlja2V0JywKICAgICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0S2V5ICAgID0+ICRMaW5rZWRUaWNrZXRJRCwKICAgICAgICAgICAgICAgICAgICAgICAgVHlwZSAgICAgICAgID0+ICdQYXJlbnRDaGlsZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIFN0YXRlICAgICAgICA9PiAnVmFsaWQnLAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCAhJFByaW1hcnlTZWNvbmRhcnlLZWVwUGFyZW50Q2hpbGRBZnRlclVuc2V0ICkgewogICAgICAgICAgICAgICAgZm9yIG15ICRMaW5rZWRUaWNrZXRJRCAoQFNlY29uZGFyeVRpY2tldElEcykgewogICAgICAgICAgICAgICAgICAgICRMaW5rT2JqZWN0LT5MaW5rRGVsZXRlKAogICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QxID0+ICdUaWNrZXQnLAogICAgICAgICAgICAgICAgICAgICAgICBLZXkxICAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdDIgPT4gJ1RpY2tldCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEtleTIgICAgPT4gJExpbmtlZFRpY2tldElELAogICAgICAgICAgICAgICAgICAgICAgICBUeXBlICAgID0+ICdQYXJlbnRDaGlsZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNpZiAoCiAgICAgICAgICAgICRPbGRWYWx1ZQogICAgICAgICAgICAmJiAkT2xkVmFsdWUgPX4gL14oU2Vjb25kYXJ5T2Z8U2xhdmVPZik6KC4qPykkLwogICAgICAgICAgICAmJiAhJFByaW1hcnlTZWNvbmRhcnlLZWVwUGFyZW50Q2hpbGRBZnRlclVwZGF0ZQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBteSAkU291cmNlS2V5ID0gJFRpY2tldE9iamVjdC0+VGlja2V0SURMb29rdXAoCiAgICAgICAgICAgICAgICBUaWNrZXROdW1iZXIgPT4gJDIsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkTGlua09iamVjdC0+TGlua0RlbGV0ZSgKICAgICAgICAgICAgICAgIE9iamVjdDEgPT4gJ1RpY2tldCcsCiAgICAgICAgICAgICAgICBLZXkxICAgID0+ICRTb3VyY2VLZXksCiAgICAgICAgICAgICAgICBPYmplY3QyID0+ICdUaWNrZXQnLAogICAgICAgICAgICAgICAgS2V5MiAgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgVHlwZSAgICA9PiAnUGFyZW50Q2hpbGQnLAogICAgICAgICAgICAgICAgVXNlcklEICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNpZiAoICROZXdWYWx1ZSA9fiAvXig/OlVuc2V0UHJpbWFyeXxVbnNldFNlY29uZGFyeSkkLyAmJiAkT2xkVmFsdWUgKSB7CgogICAgICAgIGlmICggJE5ld1ZhbHVlIGVxICdVbnNldFByaW1hcnknICYmICEkUHJpbWFyeVNlY29uZGFyeUtlZXBQYXJlbnRDaGlsZEFmdGVyVW5zZXQgKSB7CiAgICAgICAgICAgIG15ICVMaW5rcyA9ICRMaW5rT2JqZWN0LT5MaW5rS2V5TGlzdCgKICAgICAgICAgICAgICAgIE9iamVjdDEgICA9PiAnVGlja2V0JywKICAgICAgICAgICAgICAgIEtleTEgICAgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgT2JqZWN0MiAgID0+ICdUaWNrZXQnLAogICAgICAgICAgICAgICAgU3RhdGUgICAgID0+ICdWYWxpZCcsCiAgICAgICAgICAgICAgICBUeXBlICAgICAgPT4gJ1BhcmVudENoaWxkJywgICAgICAjIChvcHRpb25hbCkKICAgICAgICAgICAgICAgIERpcmVjdGlvbiA9PiAnVGFyZ2V0JywgICAgICAgICAgICMgKG9wdGlvbmFsKSBkZWZhdWx0IEJvdGggKFNvdXJjZXxUYXJnZXR8Qm90aCkKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG15IEBTZWNvbmRhcnlUaWNrZXRJRHM7CgogICAgICAgICAgICBMSU5LRURUSUNLRVRJRDoKICAgICAgICAgICAgZm9yIG15ICRMaW5rZWRUaWNrZXRJRCAoIHNvcnQga2V5cyAlTGlua3MgKSB7CiAgICAgICAgICAgICAgICBuZXh0IExJTktFRFRJQ0tFVElEIGlmICEkTGlua3N7JExpbmtlZFRpY2tldElEfTsKCiAgICAgICAgICAgICAgICAjIGp1c3QgdGFrZSB0aWNrZXQgd2l0aCBzZWNvbmRhcnkgYXR0cmlidXRlcyBmb3IgYWN0aW9uCiAgICAgICAgICAgICAgICBteSAlTGlua2VkVGlja2V0ID0gJFRpY2tldE9iamVjdC0+VGlja2V0R2V0KAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEICAgICAgPT4gJExpbmtlZFRpY2tldElELAogICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZHMgPT4gMSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbXkgJExpbmtlZFRpY2tldFZhbHVlID0gJExpbmtlZFRpY2tldHsgJ0R5bmFtaWNGaWVsZF8nIC4gJEZpZWxkTmFtZSB9OwogICAgICAgICAgICAgICAgbmV4dCBMSU5LRURUSUNLRVRJRCBpZiAhJExpbmtlZFRpY2tldFZhbHVlOwogICAgICAgICAgICAgICAgbmV4dCBMSU5LRURUSUNLRVRJRCBpZiAkTGlua2VkVGlja2V0VmFsdWUgIX4gL14oU2Vjb25kYXJ5T2Z8U2xhdmVPZik6KC4qPykkLzsKCiAgICAgICAgICAgICAgICAjIHJlbWVtYmVyIHRpY2tldCBpZAogICAgICAgICAgICAgICAgcHVzaCBAU2Vjb25kYXJ5VGlja2V0SURzLCAkTGlua2VkVGlja2V0SUQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRQcmltYXJ5U2Vjb25kYXJ5REYgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyktPkR5bmFtaWNGaWVsZEdldCgKICAgICAgICAgICAgICAgIE5hbWUgPT4gJEZpZWxkTmFtZSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbXkgJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7CgogICAgICAgICAgICBmb3IgbXkgJExpbmtlZFRpY2tldElEIChAU2Vjb25kYXJ5VGlja2V0SURzKSB7CiAgICAgICAgICAgICAgICAkTGlua09iamVjdC0+TGlua0RlbGV0ZSgKICAgICAgICAgICAgICAgICAgICBPYmplY3QxID0+ICdUaWNrZXQnLAogICAgICAgICAgICAgICAgICAgIEtleTEgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBPYmplY3QyID0+ICdUaWNrZXQnLAogICAgICAgICAgICAgICAgICAgIEtleTIgICAgPT4gJExpbmtlZFRpY2tldElELAogICAgICAgICAgICAgICAgICAgIFR5cGUgICAgPT4gJ1BhcmVudENoaWxkJywKICAgICAgICAgICAgICAgICAgICBVc2VySUQgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIFVuc2V0U2Vjb25kYXJ5IER5bmFtaWNGaWVsZCB2YWx1ZSBmcm9tIGFmZmVjdGVkIHNlY29uZGFyeSB0aWNrZXRzLgogICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlZhbHVlU2V0KAogICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkUHJpbWFyeVNlY29uZGFyeURGLAogICAgICAgICAgICAgICAgICAgIEZpZWxkSUQgICAgICAgICAgICA9PiAkUHJpbWFyeVNlY29uZGFyeURGLT57SUR9LAogICAgICAgICAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkTGlua2VkVGlja2V0SUQsCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICdVbnNldFNlY29uZGFyeScsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNpZiAoCiAgICAgICAgICAgICROZXdWYWx1ZSBlcSAnVW5zZXRTZWNvbmRhcnknCiAgICAgICAgICAgICYmICEkUHJpbWFyeVNlY29uZGFyeUtlZXBQYXJlbnRDaGlsZEFmdGVyVW5zZXQKICAgICAgICAgICAgJiYgJE9sZFZhbHVlID1+IC9eKFNlY29uZGFyeU9mfFNsYXZlT2YpOiguKj8pJC8KICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJFNvdXJjZUtleSA9ICRUaWNrZXRPYmplY3QtPlRpY2tldElETG9va3VwKAogICAgICAgICAgICAgICAgVGlja2V0TnVtYmVyID0+ICQyLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJExpbmtPYmplY3QtPkxpbmtEZWxldGUoCiAgICAgICAgICAgICAgICBPYmplY3QxID0+ICdUaWNrZXQnLAogICAgICAgICAgICAgICAgS2V5MSAgICA9PiAkU291cmNlS2V5LAogICAgICAgICAgICAgICAgT2JqZWN0MiA9PiAnVGlja2V0JywKICAgICAgICAgICAgICAgIEtleTIgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFR5cGUgICAgPT4gJ1BhcmVudENoaWxkJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAxOwp9CgpzdWIgU2VhcmNoRmllbGRSZW5kZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHRha2UgY29uZmlnIGZyb20gZmllbGQgY29uZmlnCiAgICBteSAkRmllbGRDb25maWcgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ307CiAgICBteSAkRmllbGROYW1lICAgPSAnU2VhcmNoX0R5bmFtaWNGaWVsZF8nIC4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfTsKICAgIG15ICRGaWVsZExhYmVsICA9ICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TGFiZWx9OwoKICAgIG15ICRWYWx1ZTsKCiAgICBteSBARGVmYXVsdFZhbHVlOwoKICAgIGlmICggZGVmaW5lZCAkUGFyYW17RGVmYXVsdFZhbHVlfSApIHsKICAgICAgICBARGVmYXVsdFZhbHVlID0gc3BsaXQgLzsvLCAkUGFyYW17RGVmYXVsdFZhbHVlfTsKICAgIH0KCiAgICAjIHNldCB0aGUgZmllbGQgdmFsdWUKICAgIGlmIChARGVmYXVsdFZhbHVlKSB7CiAgICAgICAgJFZhbHVlID0gXEBEZWZhdWx0VmFsdWU7CiAgICB9CgogICAgIyBnZXQgdGhlIGZpZWxkIHZhbHVlLCB0aGlzIGZ1bmN0aW9uIGlzIGFsd2F5cyBjYWxsZWQgYWZ0ZXIgdGhlIHByb2ZpbGUgaXMgbG9hZGVkCiAgICBteSAkRmllbGRWYWx1ZXMgPSAkU2VsZi0+U2VhcmNoRmllbGRWYWx1ZUdldCgKICAgICAgICAlUGFyYW0sCiAgICApOwoKICAgIGlmICggZGVmaW5lZCAkRmllbGRWYWx1ZXMgKSB7CiAgICAgICAgJFZhbHVlID0gJEZpZWxkVmFsdWVzOwogICAgfQoKICAgICMgY2hlY2sgYW5kIHNldCBjbGFzcyBpZiBuZWNlc3NhcnkKICAgIG15ICRGaWVsZENsYXNzID0gJ0R5bmFtaWNGaWVsZE11bHRpU2VsZWN0IE1vZGVybml6ZSc7CgogICAgIyBzZXQgVHJlZVZpZXcgY2xhc3MKICAgIGlmICggJEZpZWxkQ29uZmlnLT57VHJlZVZpZXd9ICkgewogICAgICAgICRGaWVsZENsYXNzIC49ICcgRHluYW1pY0ZpZWxkV2l0aFRyZWVWaWV3JzsKICAgIH0KCiAgICBteSAkTGFuZ3VhZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Okxhbmd1YWdlJyk7CgogICAgIyBzZXQgUG9zc2libGVWYWx1ZXMgKHByaW1hcnkgc2hvdWxkIGJlIGFsd2F5cyBhbiBvcHRpb24pCiAgICBteSAkU2VsZWN0aW9uRGF0YSA9IHsKICAgICAgICBQcmltYXJ5ID0+ICRMYW5ndWFnZU9iamVjdC0+VHJhbnNsYXRlKCdQcmltYXJ5IFRpY2tldCcpLAogICAgfTsKCiAgICAjIGdldCBoaXN0b3JpY2FsIHZhbHVlcyBmcm9tIGRhdGFiYXNlCiAgICBteSAkSGlzdG9yaWNhbFZhbHVlcyA9ICRTZWxmLT5IaXN0b3JpY2FsVmFsdWVzR2V0KCVQYXJhbSk7CgogICAgbXkgJFRpY2tldE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKTsKCiAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCRIaXN0b3JpY2FsVmFsdWVzKSApIHsKCiAgICAgICAgbXkgJENvbmZpZ09iamVjdCAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgICAgICBteSAkVGlja2V0SG9vayAgICAgICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6SG9vaycpOwogICAgICAgIG15ICRUaWNrZXRIb29rRGl2aWRlciA9ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpIb29rRGl2aWRlcicpOwoKICAgICAgICAjIFJlY3JlYXRlIHRoZSBkaXNwbGF5IHZhbHVlIGZyb20gdGhlIGFscmVhZHkgc2V0IHRpY2tldHMuCiAgICAgICAgVkFMVUU6CiAgICAgICAgZm9yIG15ICRWYWx1ZUtleSAoIHNvcnQga2V5cyAleyRIaXN0b3JpY2FsVmFsdWVzfSApIHsKCiAgICAgICAgICAgIGlmICggJFZhbHVlS2V5ID1+IG17KFNlY29uZGFyeU9mfFNsYXZlT2YpOiguKil9Z214ICkgewogICAgICAgICAgICAgICAgbXkgJFRpY2tldE51bWJlciA9ICQyOwoKICAgICAgICAgICAgICAgIG15ICRUaWNrZXRJRCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldElETG9va3VwKAogICAgICAgICAgICAgICAgICAgIFRpY2tldE51bWJlciA9PiAkVGlja2V0TnVtYmVyLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBteSAlVGlja2V0OwogICAgICAgICAgICAgICAgaWYgKCRUaWNrZXRJRCkgewogICAgICAgICAgICAgICAgICAgICVUaWNrZXQgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRHZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgbmV4dCBWQUxVRSBpZiAhJVRpY2tldDsKCiAgICAgICAgICAgICAgICAkU2VsZWN0aW9uRGF0YS0+eyRWYWx1ZUtleX0gPSAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICAgICAnU2Vjb25kYXJ5IG9mICVzJXMlczogJXMnLAogICAgICAgICAgICAgICAgICAgICRUaWNrZXRIb29rLAogICAgICAgICAgICAgICAgICAgICRUaWNrZXRIb29rRGl2aWRlciwKICAgICAgICAgICAgICAgICAgICAkVGlja2V0e1RpY2tldE51bWJlcn0sCiAgICAgICAgICAgICAgICAgICAgJFRpY2tldHtUaXRsZX0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgdXNlIFBvc3NpYmxlVmFsdWVzRmlsdGVyIGlmIGRlZmluZWQKICAgICRTZWxlY3Rpb25EYXRhID0gJFBhcmFte1Bvc3NpYmxlVmFsdWVzRmlsdGVyfSAvLyAkU2VsZWN0aW9uRGF0YTsKCiAgICBteSAkSFRNTFN0cmluZyA9ICRQYXJhbXtMYXlvdXRPYmplY3R9LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgICAgPT4gJFNlbGVjdGlvbkRhdGEsCiAgICAgICAgTmFtZSAgICAgICAgID0+ICRGaWVsZE5hbWUsCiAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRWYWx1ZSwKICAgICAgICBUcmFuc2xhdGlvbiAgPT4gMCwKICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMCwKICAgICAgICBDbGFzcyAgICAgICAgPT4gJEZpZWxkQ2xhc3MsCiAgICAgICAgTXVsdGlwbGUgICAgID0+IDEsCiAgICAgICAgSFRNTFF1b3RlICAgID0+IDEsCiAgICApOwoKICAgICMgY2FsbCBFZGl0TGFiZWxSZW5kZXIgb24gdGhlIGNvbW1vbiBEcml2ZXIKICAgIG15ICRMYWJlbFN0cmluZyA9ICRTZWxmLT5FZGl0TGFiZWxSZW5kZXIoCiAgICAgICAgJVBhcmFtLAogICAgICAgIEZpZWxkTmFtZSA9PiAkRmllbGROYW1lLAogICAgKTsKCiAgICBteSAkRGF0YSA9IHsKICAgICAgICBGaWVsZCA9PiAkSFRNTFN0cmluZywKICAgICAgICBMYWJlbCA9PiAkTGFiZWxTdHJpbmcsCiAgICB9OwoKICAgIHJldHVybiAkRGF0YTsKfQoKMTsKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cHM6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0Pi4KCj1jdXQK</File>
        <File Permission="660" Location="Kernel/System/Ticket/Event/PrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpFdmVudDo6UHJpbWFyeVNlY29uZGFyeTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkNoZWNrSXRlbScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkNvbW11bmljYXRpb25DaGFubmVsJywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMaW5rT2JqZWN0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VGlja2V0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpBcnRpY2xlJywKKTsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhEYXRhIEV2ZW50IENvbmZpZykpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KICAgIGlmICggISRQYXJhbXtEYXRhfS0+e1RpY2tldElEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgRGF0YS0+e1RpY2tldElEfSEiCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IHRpY2tldCBvYmplY3QKICAgIG15ICRUaWNrZXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CgogICAgIyBnZXQgdGlja2V0IGF0dHJpYnV0ZXMKICAgIG15ICVUaWNrZXQgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRHZXQoCiAgICAgICAgVGlja2V0SUQgICAgICA9PiAkUGFyYW17RGF0YX0tPntUaWNrZXRJRH0sCiAgICAgICAgRHluYW1pY0ZpZWxkcyA9PiAxLAogICAgKTsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGdldCBQcmltYXJ5L1NlY29uZGFyeSBkeW5hbWljIGZpZWxkCiAgICBteSAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCA9ICRDb25maWdPYmplY3QtPkdldCgnUHJpbWFyeVNlY29uZGFyeTo6RHluYW1pY0ZpZWxkJyk7CgogICAgIyBjaGVjayBpZiBpdCdzIGEgUHJpbWFyeS9TZWNvbmRhcnkgdGlja2V0CiAgICByZXR1cm4gMSBpZiAhJFRpY2tldHsgJ0R5bmFtaWNGaWVsZF8nIC4gJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGQgfTsKICAgIHJldHVybiAxIGlmICRUaWNrZXR7ICdEeW5hbWljRmllbGRfJyAuICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkIH0gIX4gL14ocHJpbWFyeXxtYXN0ZXJ8eWVzKSQvaTsKCiAgICAjIGdldCBsaW5rIG9iamVjdAogICAgbXkgJExpbmtPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdCcpOwoKICAgICMgZmluZCBzZWNvbmRhcnlzCiAgICBteSAlTGlua3MgPSAkTGlua09iamVjdC0+TGlua0tleUxpc3QoCiAgICAgICAgT2JqZWN0MSAgID0+ICdUaWNrZXQnLAogICAgICAgIEtleTEgICAgICA9PiAkUGFyYW17RGF0YX0tPntUaWNrZXRJRH0sCiAgICAgICAgT2JqZWN0MiAgID0+ICdUaWNrZXQnLAogICAgICAgIFN0YXRlICAgICA9PiAnVmFsaWQnLAogICAgICAgIFR5cGUgICAgICA9PiAnUGFyZW50Q2hpbGQnLAogICAgICAgIERpcmVjdGlvbiA9PiAnVGFyZ2V0JywKICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIG15IEBUaWNrZXRJRHM7CiAgICBUSUNLRVRJRDoKICAgIGZvciBteSAkVGlja2V0SUQgKCBzb3J0IGtleXMgJUxpbmtzICkgewogICAgICAgIG5leHQgVElDS0VUSUQgaWYgISRMaW5rc3skVGlja2V0SUR9OwoKICAgICAgICAjIGp1c3QgdGFrZSB0aWNrZXQgd2l0aCBzZWNvbmRhcnkgYXR0cmlidXRlcyBmb3IgYWN0aW9uCiAgICAgICAgbXkgJVRpY2tldCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEdldCgKICAgICAgICAgICAgVGlja2V0SUQgICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgIER5bmFtaWNGaWVsZHMgPT4gMSwKICAgICAgICApOwoKICAgICAgICBteSAkVGlja2V0VmFsdWUgPSAkVGlja2V0eyAnRHluYW1pY0ZpZWxkXycgLiAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCB9OwoKICAgICAgICBuZXh0IFRJQ0tFVElEIGlmICEkVGlja2V0VmFsdWU7CiAgICAgICAgbmV4dCBUSUNLRVRJRCBpZiAkVGlja2V0VmFsdWUgIX4gL14oU2Vjb25kYXJ5T2Z8U2xhdmVPZik6KC4qPykkLzsKCiAgICAgICAgIyByZW1lbWJlciB0aWNrZXQgaWQKICAgICAgICBwdXNoIEBUaWNrZXRJRHMsICRUaWNrZXRJRDsKICAgIH0KCiAgICAjIG5vIHNlY29uZGFyeXMKICAgIGlmICggIUBUaWNrZXRJRHMgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdub3RpY2UnLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTm8gU2Vjb25kYXJ5cyBvZiB0aWNrZXQgJFRpY2tldHtUaWNrZXRJRH0hIiwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAjIGdldCB0aWNrZXQgb2JqZWN0CiAgICBteSAkQ3VzdG9tZXJVc2VyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkN1c3RvbWVyVXNlcicpOwoKICAgICMgYXV0byByZXNwb25zZSBhY3Rpb24KICAgIGlmICggJFBhcmFte0V2ZW50fSBlcSAnQXJ0aWNsZVNlbmQnICkgewogICAgICAgIG15IEBBcnRpY2xlcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQ6OkFydGljbGUnKS0+QXJ0aWNsZUxpc3QoCiAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtEYXRhfS0+e1RpY2tldElEfSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gMSBpZiAhQEFydGljbGVzOwoKICAgICAgICBteSAkQXJ0aWNsZUJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpBcnRpY2xlJyktPkJhY2tlbmRGb3JBcnRpY2xlKAogICAgICAgICAgICBUaWNrZXRJRCAgPT4gJEFydGljbGVzWy0xXS0+e1RpY2tldElEfSwKICAgICAgICAgICAgQXJ0aWNsZUlEID0+ICRBcnRpY2xlc1stMV0tPntBcnRpY2xlSUR9LAogICAgICAgICk7CiAgICAgICAgbXkgJUFydGljbGUgPSAkQXJ0aWNsZUJhY2tlbmRPYmplY3QtPkFydGljbGVHZXQoCiAgICAgICAgICAgIFRpY2tldElEICA9PiAkQXJ0aWNsZXNbLTFdLT57VGlja2V0SUR9LAogICAgICAgICAgICBBcnRpY2xlSUQgPT4gJEFydGljbGVzWy0xXS0+e0FydGljbGVJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBpZiB0aGUgc2VuZCBtYWlsIGlzIG9mIHR5cGUgZm9yd2FyZAogICAgICAgIG15ICRJc0ZvcndhcmQgPSAkU2VsZi0+X0FydGljbGVIaXN0b3J5VHlwZUdpdmVuKAogICAgICAgICAgICBUaWNrZXRJRCAgICA9PiAkUGFyYW17RGF0YX0tPntUaWNrZXRJRH0sCiAgICAgICAgICAgIEFydGljbGVJRCAgID0+ICRBcnRpY2xle0FydGljbGVJRH0sCiAgICAgICAgICAgIEhpc3RvcnlUeXBlID0+ICdGb3J3YXJkJywKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBpZiB0aGUgU3lzQ29uZmlnIGlzIGRpc2FibGVkIGFuZCB0aGUgbmV3IGFydGljbGUgaXMgYW4gZm9yd2FyZCBhcnRpY2xlCiAgICAgICAgIyB0aGVuIHdlIGRvbid0IHdhbnQgdG8gaGF2ZSB0aGUgZm9yd2FyZCBmb3IgdGhlIHNlY29uZGFyeSB0aWNrZXRzCiAgICAgICAgbXkgJEZvcndhcmRTZWNvbmRhcnkgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1ByaW1hcnlTZWNvbmRhcnk6OkZvcndhcmRTZWNvbmRhcnknKTsKCiAgICAgICAgcmV0dXJuIDEgaWYgJElzRm9yd2FyZCAmJiAhJEZvcndhcmRTZWNvbmRhcnk7CgogICAgICAgICMgZG8gbm90IHNlbmQgaW50ZXJuYWwgY29tbXVuaWNhdGlvbnMgdG8gZW5kIGN1c3RvbWVycyBvZiBzZWNvbmRhcnkgdGlja2V0cwogICAgICAgIHJldHVybiAxIGlmICEkQXJ0aWNsZXtJc1Zpc2libGVGb3JDdXN0b21lcn07CgogICAgICAgICMgbWFyayB0aWNrZXQgdG8gcHJldmVudCBhIGxvb3AKICAgICAgICAkVGlja2V0T2JqZWN0LT5IaXN0b3J5QWRkKAogICAgICAgICAgICBUaWNrZXRJRCAgICAgPT4gJFBhcmFte0RhdGF9LT57VGlja2V0SUR9LAogICAgICAgICAgICBDcmVhdGVVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICA9PiAnTWlzYycsCiAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnUHJpbWFyeVRpY2tldEFjdGlvbjogQXJ0aWNsZVNlbmQnLAogICAgICAgICk7CgogICAgICAgICMganVzdCBhIGZsYWcgZm9yIGtub3cgd2hlbiB0aGUgZmlyc3Qgc2Vjb25kYXJ5IHRpY2tldCBpcyBwcmVzZW50CiAgICAgICAgbXkgJEZpcnN0U2Vjb25kYXJ5VGlja2V0ID0gMTsKICAgICAgICBteSAkVG1wQXJ0aWNsZUJvZHk7CgogICAgICAgICMgR2V0IGF0dGFjaG1lbnRzIGluIHByaW1hcnkgZm9yIHVzYWdlIGluIHNlY29uZGFyeSB0aWNrZXRzIChzZWUgYnVnIzE0OTgzKS4KICAgICAgICBteSAlQXR0YWNobWVudEluZGV4ID0gJEFydGljbGVCYWNrZW5kT2JqZWN0LT5BcnRpY2xlQXR0YWNobWVudEluZGV4KAogICAgICAgICAgICBBcnRpY2xlSUQgPT4gJEFydGljbGVzWy0xXS0+e0FydGljbGVJRH0sCiAgICAgICAgKTsKCiAgICAgICAgbXkgQEF0dGFjaG1lbnRzOwogICAgICAgIEFUVEFDSE1FTlQ6CiAgICAgICAgZm9yIG15ICRGaWxlSUQgKCBzb3J0IGtleXMgJUF0dGFjaG1lbnRJbmRleCApIHsKICAgICAgICAgICAgbmV4dCBBVFRBQ0hNRU5UIGlmICEkRmlsZUlEOwogICAgICAgICAgICBteSAlQXR0YWNobWVudCA9ICRBcnRpY2xlQmFja2VuZE9iamVjdC0+QXJ0aWNsZUF0dGFjaG1lbnQoCiAgICAgICAgICAgICAgICBBcnRpY2xlSUQgPT4gJEFydGljbGVzWy0xXS0+e0FydGljbGVJRH0sCiAgICAgICAgICAgICAgICBGaWxlSUQgICAgPT4gJEZpbGVJRCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgQVRUQUNITUVOVCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoIFwlQXR0YWNobWVudCApOwogICAgICAgICAgICBwdXNoIEBBdHRhY2htZW50cywgeyVBdHRhY2htZW50fTsKICAgICAgICB9CgogICAgICAgICMgcGVyZm9ybSBhY3Rpb24gb24gbGlua2VkIHRpY2tldHMKICAgICAgICBUSUNLRVRJRDoKICAgICAgICBmb3IgbXkgJFRpY2tldElEIChAVGlja2V0SURzKSB7CiAgICAgICAgICAgIG15ICRDaGVja1N1Y2Nlc3MgPSAkU2VsZi0+X0xvb3BDaGVjaygKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgU3RyaW5nICAgPT4gJ1ByaW1hcnlUaWNrZXRBY3Rpb246IEFydGljbGVTZW5kJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbmV4dCBUSUNLRVRJRCBpZiAhJENoZWNrU3VjY2VzczsKCiAgICAgICAgICAgIG15ICVUaWNrZXRTZWNvbmRhcnkgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRHZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHRyeSB0byBnZXQgdGhlIGN1c3RvbWVyIGRhdGEgb2YgdGhlIHNlY29uZGFyeSB0aWNrZXQKICAgICAgICAgICAgbXkgJUN1c3RvbWVyOwogICAgICAgICAgICBpZiAoICRUaWNrZXRTZWNvbmRhcnl7Q3VzdG9tZXJVc2VySUR9ICkgewogICAgICAgICAgICAgICAgJUN1c3RvbWVyID0gJEN1c3RvbWVyVXNlck9iamVjdC0+Q3VzdG9tZXJVc2VyRGF0YUdldCgKICAgICAgICAgICAgICAgICAgICBVc2VyID0+ICRUaWNrZXRTZWNvbmRhcnl7Q3VzdG9tZXJVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbXkgJENoZWNrSXRlbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDaGVja0l0ZW0nKTsKCiAgICAgICAgICAgICMgY2hlY2sgaWYgY3VzdG9tZXIgZW1haWwgaXMgdmFsaWQKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJEN1c3RvbWVye1VzZXJFbWFpbH0KICAgICAgICAgICAgICAgICYmICEkQ2hlY2tJdGVtT2JqZWN0LT5DaGVja0VtYWlsKCBBZGRyZXNzID0+ICRDdXN0b21lcntVc2VyRW1haWx9ICkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJEN1c3RvbWVye1VzZXJFbWFpbH0gPSAnJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBpZiB3ZSBjYW4ndCBmaW5kIGEgdmFsaWQgVXNlckVtYWlsIGluIEN1c3RvbWVyRGF0YQogICAgICAgICAgICAjIHdlIGhhdmUgdG8gZ2V0IHRoZSBsYXN0IEFydGljbGUgd2l0aCBTZW5kZXJUeXBlICdjdXN0b21lcicKICAgICAgICAgICAgIyBhbmQgZ2V0IHRoZSBVc2VyRW1haWwKICAgICAgICAgICAgaWYgKCAhJEN1c3RvbWVye1VzZXJFbWFpbH0gKSB7CiAgICAgICAgICAgICAgICBteSAkQXJ0aWNsZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQ6OkFydGljbGUnKTsKCiAgICAgICAgICAgICAgICBteSBAQXJ0aWNsZXMgPSAkQXJ0aWNsZU9iamVjdC0+QXJ0aWNsZUxpc3QoCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICAgICAgU2VuZGVyVHlwZSA9PiAnY3VzdG9tZXInLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBteSAkQ29tbXVuaWNhdGlvbkNoYW5uZWxPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q29tbXVuaWNhdGlvbkNoYW5uZWwnKTsKCiAgICAgICAgICAgICAgICBteSBATUlNRUJhc2VDaGFubmVsczsKICAgICAgICAgICAgICAgIGZvciBteSAkQ2hhbm5lbCAocXcoRW1haWwgSW50ZXJuYWwgUGhvbmUpKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJUNvbW11bmljYXRpb25DaGFubmVsID0gJENvbW11bmljYXRpb25DaGFubmVsT2JqZWN0LT5DaGFubmVsR2V0KAogICAgICAgICAgICAgICAgICAgICAgICBDaGFubmVsTmFtZSA9PiAkQ2hhbm5lbCwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICBwdXNoIEBNSU1FQmFzZUNoYW5uZWxzLCAkQ29tbXVuaWNhdGlvbkNoYW5uZWx7Q2hhbm5lbElEfTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBBUlRJQ0xFOgogICAgICAgICAgICAgICAgZm9yIG15ICRBcnRpY2xlICggcmV2ZXJzZSBAQXJ0aWNsZXMgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCBncmVwIHsgJEFydGljbGUtPntDb21tdW5pY2F0aW9uQ2hhbm5lbElEfSA9PSAkXyB9IEBNSU1FQmFzZUNoYW5uZWxzICkgewogICAgICAgICAgICAgICAgICAgICAgICBteSAkQXJ0aWNsZUJhY2tlbmRPYmplY3QgPSAkQXJ0aWNsZU9iamVjdC0+QmFja2VuZEZvckFydGljbGUoICV7JEFydGljbGV9ICk7CgogICAgICAgICAgICAgICAgICAgICAgICBteSAlQXJ0aWNsZURhdGEgPSAkQXJ0aWNsZUJhY2tlbmRPYmplY3QtPkFydGljbGVHZXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAleyRBcnRpY2xlfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICggJEFydGljbGVEYXRhe0Zyb219ICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJEN1c3RvbWVye1VzZXJFbWFpbH0gPSAkQXJ0aWNsZURhdGF7RnJvbX07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0IEFSVElDTEU7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgY2hlY2sgaWYgY3VzdG9tZXIgZW1haWwgaXMgdmFsaWQKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJEN1c3RvbWVye1VzZXJFbWFpbH0KICAgICAgICAgICAgICAgICYmICEkQ2hlY2tJdGVtT2JqZWN0LT5DaGVja0VtYWlsKCBBZGRyZXNzID0+ICRDdXN0b21lcntVc2VyRW1haWx9ICkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJEN1c3RvbWVye1VzZXJFbWFpbH0gPSAnJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBpZiB3ZSBzdGlsbCBoYXZlIG5vIFVzZXJFbWFpbCwgZHJvcCBhbiBlcnJvcgogICAgICAgICAgICBpZiAoICEkQ3VzdG9tZXJ7VXNlckVtYWlsfSApIHsKICAgICAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+SGlzdG9yeUFkZCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgICAgIENyZWF0ZVVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICBIaXN0b3J5VHlwZSAgPT4gJ01pc2MnLAogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PgogICAgICAgICAgICAgICAgICAgICAgICAiUHJpbWFyeVRpY2tldDogbm8gY3VzdG9tZXIgZW1haWwgZm91bmQsIHNlbmQgbm8gcHJpbWFyeSBtZXNzYWdlIHRvIGN1c3RvbWVyLiIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdTeXN0ZW0gd2FzIHVuYWJsZSB0byBhZGQgYSBuZXcgaGlzdG9yeSBlbnRyeSAobm8gY3VzdG9tZXIgZW1haWwgZm91bmQnLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBuZXh0IFRJQ0tFVElEOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHNldCB0aGUgbmV3IFRvIGZvciBBcnRpY2xlU2VuZAogICAgICAgICAgICAkQXJ0aWNsZXtUb30gPSAkQ3VzdG9tZXJ7VXNlckVtYWlsfTsKCiAgICAgICAgICAgICMgcmVidWlsZCBzdWJqZWN0CiAgICAgICAgICAgICRDb25maWdPYmplY3QtPlNldCgKICAgICAgICAgICAgICAgIEtleSAgID0+ICdUaWNrZXQ6OlN1YmplY3RDbGVhbkFsbE51bWJlcnMnLAogICAgICAgICAgICAgICAgVmFsdWUgPT4gMSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbXkgJFN1YmplY3QgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRTdWJqZWN0QnVpbGQoCiAgICAgICAgICAgICAgICBUaWNrZXROdW1iZXIgPT4gJFRpY2tldFNlY29uZGFyeXtUaWNrZXROdW1iZXJ9LAogICAgICAgICAgICAgICAgU3ViamVjdCAgICAgID0+ICRBcnRpY2xle1N1YmplY3R9IHx8ICcnLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBleGNoYW5nZSBDdXN0b21lciBmcm9tIFByaW1hcnlUaWNrZXQgZm9yIHRoZSBvbmUgaW50byB0aGUgU2Vjb25kYXJ5VGlja2V0CiAgICAgICAgICAgIG15ICRSZXBsYWNlT25Db21tdW5pY2F0aW9uQ2hhbm5lbHMKICAgICAgICAgICAgICAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdSZXBsYWNlQ3VzdG9tZXJSZWFsTmFtZU9uU2Vjb25kYXJ5QXJ0aWNsZUNvbW11bmljYXRpb25DaGFubmVscycpOwogICAgICAgICAgICBteSAkQ2hhbm5lbE5hbWUgPSAkQXJ0aWNsZUJhY2tlbmRPYmplY3QtPkNoYW5uZWxOYW1lR2V0KCk7CgogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICBkZWZpbmVkICRSZXBsYWNlT25Db21tdW5pY2F0aW9uQ2hhbm5lbHMtPnskQ2hhbm5lbE5hbWV9ICYmCiAgICAgICAgICAgICAgICAkUmVwbGFjZU9uQ29tbXVuaWNhdGlvbkNoYW5uZWxzLT57JENoYW5uZWxOYW1lfSBlcSAnMScKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKCRGaXJzdFNlY29uZGFyeVRpY2tldCkgewogICAgICAgICAgICAgICAgICAgICRGaXJzdFNlY29uZGFyeVRpY2tldCA9IDA7CiAgICAgICAgICAgICAgICAgICAgJFRtcEFydGljbGVCb2R5ICAgICAgID0gJEFydGljbGV7Qm9keX07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAjIGdldCBib2R5IGZyb20gdGVtcG9yYWwgaW4gb2RlciB0byBnZXQgaXQKICAgICAgICAgICAgICAgICAgICAjIHdpdGhvdXQgY2hhbmdlcyBmcm9tIHByZXZpb3VzIHNlY29uZGFyeSB0aWNrZXRzCiAgICAgICAgICAgICAgICAgICAgJEFydGljbGV7Qm9keX0gPSAkVG1wQXJ0aWNsZUJvZHk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgbXkgJFNlYXJjaCA9ICRDdXN0b21lclVzZXJPYmplY3QtPkN1c3RvbWVyTmFtZSgKICAgICAgICAgICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRpY2tldHtDdXN0b21lclVzZXJJRH0sCiAgICAgICAgICAgICAgICApIHx8ICcnOwogICAgICAgICAgICAgICAgbXkgJFJlcGxhY2UgPSAkQ3VzdG9tZXJVc2VyT2JqZWN0LT5DdXN0b21lck5hbWUoCiAgICAgICAgICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUaWNrZXRTZWNvbmRhcnl7Q3VzdG9tZXJVc2VySUR9LAogICAgICAgICAgICAgICAgKSB8fCAnJzsKICAgICAgICAgICAgICAgIGlmICggJFNlYXJjaCAmJiAkUmVwbGFjZSApIHsKICAgICAgICAgICAgICAgICAgICAkQXJ0aWNsZXtCb2R5fSA9fiBzeyBcUSRTZWFyY2hcRSB9eyRSZXBsYWNlfXhtc2c7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgc2VuZCBhcnRpY2xlIGFnYWluCiAgICAgICAgICAgICRBcnRpY2xlQmFja2VuZE9iamVjdC0+QXJ0aWNsZVNlbmQoCiAgICAgICAgICAgICAgICAlQXJ0aWNsZSwKICAgICAgICAgICAgICAgIFN1YmplY3QgICAgICAgID0+ICRTdWJqZWN0LAogICAgICAgICAgICAgICAgQ2MgICAgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgICAgICBCY2MgICAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgICAgIEhpc3RvcnlUeXBlICAgID0+ICdTZW5kQW5zd2VyJywKICAgICAgICAgICAgICAgIEhpc3RvcnlDb21tZW50ID0+ICJTZW50IGFuc3dlciB0byAnJEFydGljbGV7VG99JyBiYXNlZCBvbiBwcmltYXJ5IHRpY2tldC4iLAogICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICAgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBBdHRhY2htZW50ICAgICA9PiBcQEF0dGFjaG1lbnRzLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAjIGFydGljbGUgY3JlYXRlCiAgICBlbHNpZiAoICRQYXJhbXtFdmVudH0gZXEgJ0FydGljbGVDcmVhdGUnICkgewoKICAgICAgICBteSAkQXJ0aWNsZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQ6OkFydGljbGUnKTsKICAgICAgICBteSBAQXJ0aWNsZXMgICAgICA9ICRBcnRpY2xlT2JqZWN0LT5BcnRpY2xlTGlzdCgKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte0RhdGF9LT57VGlja2V0SUR9LAogICAgICAgICk7CgogICAgICAgIHJldHVybiAxIGlmICFAQXJ0aWNsZXM7CgogICAgICAgIG15ICRBcnRpY2xlQmFja2VuZE9iamVjdCA9ICRBcnRpY2xlT2JqZWN0LT5CYWNrZW5kRm9yQXJ0aWNsZSgKICAgICAgICAgICAgVGlja2V0SUQgID0+ICRBcnRpY2xlc1stMV0tPntUaWNrZXRJRH0sCiAgICAgICAgICAgIEFydGljbGVJRCA9PiAkQXJ0aWNsZXNbLTFdLT57QXJ0aWNsZUlEfSwKICAgICAgICApOwogICAgICAgIG15ICVBcnRpY2xlID0gJEFydGljbGVCYWNrZW5kT2JqZWN0LT5BcnRpY2xlR2V0KAogICAgICAgICAgICBUaWNrZXRJRCAgPT4gJEFydGljbGVzWy0xXS0+e1RpY2tldElEfSwKICAgICAgICAgICAgQXJ0aWNsZUlEID0+ICRBcnRpY2xlc1stMV0tPntBcnRpY2xlSUR9LAogICAgICAgICk7CgogICAgICAgICMgbWFyayB0aWNrZXQgdG8gcHJldmVudCBhIGxvb3AKICAgICAgICAkVGlja2V0T2JqZWN0LT5IaXN0b3J5QWRkKAogICAgICAgICAgICBUaWNrZXRJRCAgICAgPT4gJFBhcmFte0RhdGF9LT57VGlja2V0SUR9LAogICAgICAgICAgICBDcmVhdGVVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICA9PiAnTWlzYycsCiAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAiUHJpbWFyeVRpY2tldEFjdGlvbjogQXJ0aWNsZUNyZWF0ZSIsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJENoYW5uZWxOYW1lID0gJEFydGljbGVCYWNrZW5kT2JqZWN0LT5DaGFubmVsTmFtZUdldCgpOwoKICAgICAgICAjIGRvIG5vdCBwcm9jZXNzIGVtYWlsIGFydGljbGVzIChhbHJlYWR5IGRvbmUgaW4gQXJ0aWNsZVNlbmQgZXZlbnQhKQogICAgICAgIGlmICgKICAgICAgICAgICAgJEFydGljbGV7U2VuZGVyVHlwZX0gZXEgJ2FnZW50JwogICAgICAgICAgICAmJiAkQXJ0aWNsZXtJc1Zpc2libGVGb3JDdXN0b21lcn0KICAgICAgICAgICAgJiYgJENoYW5uZWxOYW1lIGVxICdFbWFpbCcKICAgICAgICAgICAgKQogICAgICAgIHsKCiAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgdGhlIHNhbWUgc3RhdGUsIGJ1dCBvbmx5IGZvciBub3RlcwogICAgICAgIGlmICggJENoYW5uZWxOYW1lIG5lICdJbnRlcm5hbCcgKSB7CgogICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICB9CgogICAgICAgICMgcGVyZm9ybSBhY3Rpb24gb24gbGlua2VkIHRpY2tldHMKICAgICAgICBUSUNLRVRJRDoKICAgICAgICBmb3IgbXkgJFRpY2tldElEIChAVGlja2V0SURzKSB7CiAgICAgICAgICAgIG15ICRDaGVja1N1Y2Nlc3MgPSAkU2VsZi0+X0xvb3BDaGVjaygKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgU3RyaW5nICAgPT4gJ1ByaW1hcnlUaWNrZXRBY3Rpb246IEFydGljbGVDcmVhdGUnLAogICAgICAgICAgICApOwogICAgICAgICAgICBuZXh0IFRJQ0tFVElEIGlmICEkQ2hlY2tTdWNjZXNzOwoKICAgICAgICAgICAgIyBhcnRpY2xlIGNyZWF0ZQogICAgICAgICAgICAkQXJ0aWNsZUJhY2tlbmRPYmplY3QtPkFydGljbGVDcmVhdGUoCiAgICAgICAgICAgICAgICAlQXJ0aWNsZSwKICAgICAgICAgICAgICAgIEhpc3RvcnlUeXBlICAgID0+ICdBZGROb3RlJywKICAgICAgICAgICAgICAgIEhpc3RvcnlDb21tZW50ID0+ICdBZGRlZCBhcnRpY2xlIGJhc2VkIG9uIHByaW1hcnkgdGlja2V0LicsCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgICMgc3RhdGUgYWN0aW9uCiAgICBlbHNpZiAoICRQYXJhbXtFdmVudH0gZXEgJ1RpY2tldFN0YXRlVXBkYXRlJyApIHsKCiAgICAgICAgIyBtYXJrIHRpY2tldCB0byBwcmV2ZW50IGEgbG9vcAogICAgICAgICRUaWNrZXRPYmplY3QtPkhpc3RvcnlBZGQoCiAgICAgICAgICAgIFRpY2tldElEICAgICA9PiAkUGFyYW17RGF0YX0tPntUaWNrZXRJRH0sCiAgICAgICAgICAgIENyZWF0ZVVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgSGlzdG9yeVR5cGUgID0+ICdNaXNjJywKICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICJQcmltYXJ5VGlja2V0QWN0aW9uOiBUaWNrZXRTdGF0ZVVwZGF0ZSIsCiAgICAgICAgKTsKCiAgICAgICAgIyBwZXJmb3JtIGFjdGlvbiBvbiBsaW5rZWQgdGlja2V0cwogICAgICAgIFRJQ0tFVElEOgogICAgICAgIGZvciBteSAkVGlja2V0SUQgKEBUaWNrZXRJRHMpIHsKICAgICAgICAgICAgbXkgJENoZWNrU3VjY2VzcyA9ICRTZWxmLT5fTG9vcENoZWNrKAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBTdHJpbmcgICA9PiAnUHJpbWFyeVRpY2tldEFjdGlvbjogVGlja2V0U3RhdGVVcGRhdGUnLAogICAgICAgICAgICApOwogICAgICAgICAgICBuZXh0IFRJQ0tFVElEIGlmICEkQ2hlY2tTdWNjZXNzOwoKICAgICAgICAgICAgIyBzZXQgdGhlIHNhbWUgc3RhdGUKICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0U3RhdGVTZXQoCiAgICAgICAgICAgICAgICBTdGF0ZUlEICA9PiAkVGlja2V0e1N0YXRlSUR9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAjIHNldCBwZW5kaW5nIHRpbWUKICAgIGVsc2lmICggJFBhcmFte0V2ZW50fSBlcSAnVGlja2V0UGVuZGluZ1RpbWVVcGRhdGUnICkgewoKICAgICAgICAjIG1hcmsgdGlja2V0IHRvIHByZXZlbnQgYSBsb29wCiAgICAgICAgJFRpY2tldE9iamVjdC0+SGlzdG9yeUFkZCgKICAgICAgICAgICAgVGlja2V0SUQgICAgID0+ICRQYXJhbXtEYXRhfS0+e1RpY2tldElEfSwKICAgICAgICAgICAgQ3JlYXRlVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBIaXN0b3J5VHlwZSAgPT4gJ01pc2MnLAogICAgICAgICAgICBOYW1lICAgICAgICAgPT4gIlByaW1hcnlUaWNrZXRBY3Rpb246IFRpY2tldFBlbmRpbmdUaW1lVXBkYXRlIiwKICAgICAgICApOwoKICAgICAgICAjIHBlcmZvcm0gYWN0aW9uIG9uIGxpbmtlZCB0aWNrZXRzCiAgICAgICAgVElDS0VUSUQ6CiAgICAgICAgZm9yIG15ICRUaWNrZXRJRCAoQFRpY2tldElEcykgewogICAgICAgICAgICBteSAkQ2hlY2tTdWNjZXNzID0gJFNlbGYtPl9Mb29wQ2hlY2soCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIFN0cmluZyAgID0+ICdQcmltYXJ5VGlja2V0QWN0aW9uOiBUaWNrZXRQZW5kaW5nVGltZVVwZGF0ZScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IFRJQ0tFVElEIGlmICEkQ2hlY2tTdWNjZXNzOwoKICAgICAgICAgICAgIyBzZXQgdGhlIHNhbWUgcGVuZGluZyB0aW1lCiAgICAgICAgICAgIG15ICRUaW1lU3RhbXAgPSAnMDAwMC0wMC0wMCAwMDowMDowMCc7CiAgICAgICAgICAgIGlmICggJFRpY2tldHtSZWFsVGlsbFRpbWVOb3RVc2VkfSApIHsKICAgICAgICAgICAgICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgRXBvY2ggPT4gJFRpY2tldHtSZWFsVGlsbFRpbWVOb3RVc2VkfSwKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRUaW1lU3RhbXAgPSAkRGF0ZVRpbWVPYmplY3QtPlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0UGVuZGluZ1RpbWVTZXQoCiAgICAgICAgICAgICAgICBTdHJpbmcgICA9PiAkVGltZVN0YW1wLAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgICMgcHJpb3JpdHkgYWN0aW9uCiAgICBlbHNpZiAoICRQYXJhbXtFdmVudH0gZXEgJ1RpY2tldFByaW9yaXR5VXBkYXRlJyApIHsKCiAgICAgICAgIyBtYXJrIHRpY2tldCB0byBwcmV2ZW50IGEgbG9vcAogICAgICAgICRUaWNrZXRPYmplY3QtPkhpc3RvcnlBZGQoCiAgICAgICAgICAgIFRpY2tldElEICAgICA9PiAkUGFyYW17RGF0YX0tPntUaWNrZXRJRH0sCiAgICAgICAgICAgIENyZWF0ZVVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgSGlzdG9yeVR5cGUgID0+ICdNaXNjJywKICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICJQcmltYXJ5VGlja2V0QWN0aW9uOiBUaWNrZXRQcmlvcml0eVVwZGF0ZSIsCiAgICAgICAgKTsKCiAgICAgICAgIyBwZXJmb3JtIGFjdGlvbiBvbiBsaW5rZWQgdGlja2V0cwogICAgICAgIFRJQ0tFVElEOgogICAgICAgIGZvciBteSAkVGlja2V0SUQgKEBUaWNrZXRJRHMpIHsKICAgICAgICAgICAgbXkgJENoZWNrU3VjY2VzcyA9ICRTZWxmLT5fTG9vcENoZWNrKAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBTdHJpbmcgICA9PiAnUHJpbWFyeVRpY2tldEFjdGlvbjogVGlja2V0UHJpb3JpdHlVcGRhdGUnLAogICAgICAgICAgICApOwogICAgICAgICAgICBuZXh0IFRJQ0tFVElEIGlmICEkQ2hlY2tTdWNjZXNzOwoKICAgICAgICAgICAgIyBzZXQgdGhlIHNhbWUgc3RhdGUKICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0UHJpb3JpdHlTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFByaW9yaXR5SUQgPT4gJFRpY2tldHtQcmlvcml0eUlEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgICMgb3duZXIgYWN0aW9uCiAgICBlbHNpZiAoICRQYXJhbXtFdmVudH0gZXEgJ1RpY2tldE93bmVyVXBkYXRlJyApIHsKCiAgICAgICAgIyBtYXJrIHRpY2tldCB0byBwcmV2ZW50IGEgbG9vcAogICAgICAgICRUaWNrZXRPYmplY3QtPkhpc3RvcnlBZGQoCiAgICAgICAgICAgIFRpY2tldElEICAgICA9PiAkUGFyYW17RGF0YX0tPntUaWNrZXRJRH0sCiAgICAgICAgICAgIENyZWF0ZVVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgSGlzdG9yeVR5cGUgID0+ICdNaXNjJywKICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICJQcmltYXJ5VGlja2V0QWN0aW9uOiBUaWNrZXRPd25lclVwZGF0ZSIsCiAgICAgICAgKTsKCiAgICAgICAgIyBwZXJmb3JtIGFjdGlvbiBvbiBsaW5rZWQgdGlja2V0cwogICAgICAgIFRJQ0tFVElEOgogICAgICAgIGZvciBteSAkVGlja2V0SUQgKEBUaWNrZXRJRHMpIHsKICAgICAgICAgICAgbXkgJENoZWNrU3VjY2VzcyA9ICRTZWxmLT5fTG9vcENoZWNrKAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBTdHJpbmcgICA9PiAnUHJpbWFyeVRpY2tldEFjdGlvbjogVGlja2V0T3duZXJVcGRhdGUnLAogICAgICAgICAgICApOwogICAgICAgICAgICBuZXh0IFRJQ0tFVElEIGlmICEkQ2hlY2tTdWNjZXNzOwoKICAgICAgICAgICAgIyBzZXQgdGhlIHNhbWUgc3RhdGUKICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0T3duZXJTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgTmV3VXNlcklEICAgICAgICAgID0+ICRUaWNrZXR7T3duZXJJRH0sCiAgICAgICAgICAgICAgICBTZW5kTm9Ob3RpZmljYXRpb24gPT4gMCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgIyByZXNwb25zaWJsZSBhY3Rpb24KICAgIGVsc2lmICggJFBhcmFte0V2ZW50fSBlcSAnVGlja2V0UmVzcG9uc2libGVVcGRhdGUnICkgewoKICAgICAgICAjIG1hcmsgdGlja2V0IHRvIHByZXZlbnQgYSBsb29wCiAgICAgICAgJFRpY2tldE9iamVjdC0+SGlzdG9yeUFkZCgKICAgICAgICAgICAgVGlja2V0SUQgICAgID0+ICRQYXJhbXtEYXRhfS0+e1RpY2tldElEfSwKICAgICAgICAgICAgQ3JlYXRlVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBIaXN0b3J5VHlwZSAgPT4gJ01pc2MnLAogICAgICAgICAgICBOYW1lICAgICAgICAgPT4gIlByaW1hcnlUaWNrZXRBY3Rpb246IFRpY2tldFJlc3BvbnNpYmxlVXBkYXRlIiwKICAgICAgICApOwoKICAgICAgICAjIHBlcmZvcm0gYWN0aW9uIG9uIGxpbmtlZCB0aWNrZXRzCiAgICAgICAgVElDS0VUSUQ6CiAgICAgICAgZm9yIG15ICRUaWNrZXRJRCAoQFRpY2tldElEcykgewogICAgICAgICAgICBteSAkQ2hlY2tTdWNjZXNzID0gJFNlbGYtPl9Mb29wQ2hlY2soCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIFN0cmluZyAgID0+ICdQcmltYXJ5VGlja2V0QWN0aW9uOiBUaWNrZXRSZXNwb25zaWJsZVVwZGF0ZScsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG5leHQgVElDS0VUSUQgaWYgISRDaGVja1N1Y2Nlc3M7CgogICAgICAgICAgICAjIHNldCB0aGUgc2FtZSBzdGF0ZQogICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5UaWNrZXRSZXNwb25zaWJsZVNldCgKICAgICAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBOZXdVc2VySUQgICAgICAgICAgPT4gJFRpY2tldHtSZXNwb25zaWJsZUlEfSwKICAgICAgICAgICAgICAgIFNlbmROb05vdGlmaWNhdGlvbiA9PiAwLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAjIHVubG9jay9sb2NrIGFjdGlvbgogICAgZWxzaWYgKCAkUGFyYW17RXZlbnR9IGVxICdUaWNrZXRMb2NrVXBkYXRlJyApIHsKCiAgICAgICAgIyBtYXJrIHRpY2tldCB0byBwcmV2ZW50IGEgbG9vcAogICAgICAgICRUaWNrZXRPYmplY3QtPkhpc3RvcnlBZGQoCiAgICAgICAgICAgIFRpY2tldElEICAgICA9PiAkUGFyYW17RGF0YX0tPntUaWNrZXRJRH0sCiAgICAgICAgICAgIENyZWF0ZVVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgSGlzdG9yeVR5cGUgID0+ICdNaXNjJywKICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICJQcmltYXJ5VGlja2V0QWN0aW9uOiBUaWNrZXRMb2NrVXBkYXRlIiwKICAgICAgICApOwoKICAgICAgICAjIHBlcmZvcm0gYWN0aW9uIG9uIGxpbmtlZCB0aWNrZXRzCiAgICAgICAgVElDS0VUSUQ6CiAgICAgICAgZm9yIG15ICRUaWNrZXRJRCAoQFRpY2tldElEcykgewogICAgICAgICAgICBteSAkQ2hlY2tTdWNjZXNzID0gJFNlbGYtPl9Mb29wQ2hlY2soCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIFN0cmluZyAgID0+ICdQcmltYXJ5VGlja2V0QWN0aW9uOiBUaWNrZXRMb2NrVXBkYXRlJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbmV4dCBUSUNLRVRJRCBpZiAhJENoZWNrU3VjY2VzczsKCiAgICAgICAgICAgICMgc2V0IHRoZSBzYW1lIHN0YXRlCiAgICAgICAgICAgICRUaWNrZXRPYmplY3QtPlRpY2tldExvY2tTZXQoCiAgICAgICAgICAgICAgICBMb2NrICAgICAgICAgICAgICAgPT4gJFRpY2tldHtMb2NrfSwKICAgICAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBTZW5kTm9Ob3RpZmljYXRpb24gPT4gMSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CiAgICByZXR1cm4gMTsKfQoKc3ViIF9Mb29wQ2hlY2sgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KFRpY2tldElEIFN0cmluZyBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgdGlja2V0IG9iamVjdAogICAgbXkgJFRpY2tldE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKTsKCiAgICBteSBATGluZXMgPSAkVGlja2V0T2JqZWN0LT5IaXN0b3J5R2V0KAogICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICBteSAkQ3VycmVudERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CgogICAgZm9yIG15ICREYXRhICggcmV2ZXJzZSBATGluZXMgKSB7CiAgICAgICAgaWYgKCAkRGF0YS0+e0hpc3RvcnlUeXBlfSBlcSAnTWlzYycgJiYgJERhdGEtPntOYW1lfSBlcSAkUGFyYW17U3RyaW5nfSApIHsKICAgICAgICAgICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJERhdGEtPntDcmVhdGVUaW1lfSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgJERhdGVUaW1lT2JqZWN0LT5BZGQoCiAgICAgICAgICAgICAgICBTZWNvbmRzID0+IDE1LAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoICREYXRlVGltZU9iamVjdCA+ICRDdXJyZW50RGF0ZVRpbWVPYmplY3QgKSB7CiAgICAgICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5IaXN0b3J5QWRkKAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEICAgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIENyZWF0ZVVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICBIaXN0b3J5VHlwZSAgPT4gJ01pc2MnLAogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAiUHJpbWFyeVRpY2tldExvb3A6IHN0b3BwZWQiLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIF9BcnRpY2xlSGlzdG9yeVR5cGVHaXZlbigpCgpDaGVjayBpZiBoaXN0b3J5IHR5cGUgZm9yIGFydGljbGUgaXMgZ2l2ZW4KCiAgICBteSAkSXNIaXN0b3J5VHlwZSA9ICRFdmVudE9iamVjdC0+X0FydGljbGVIaXN0b3J5VHlwZUdpdmVuKAogICAgICAgIFRpY2tldElEICAgID0+ICRUaWNrZXRJRCwKICAgICAgICBBcnRpY2xlSUQgICA9PiAkQXJ0aWNsZUlELAogICAgICAgIEhpc3RvcnlUeXBlID0+ICdGb3J3YXJkJywKICAgICAgICBVc2VySUQgICAgICA9PiAkVXNlcklELAogICAgKTsKClJldHVybnMKCiAgIG15ICRJc0hpc3RvcnlUeXBlID0gMTsKCj1jdXQKCnN1YiBfQXJ0aWNsZUhpc3RvcnlUeXBlR2l2ZW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KFRpY2tldElEIEFydGljbGVJRCBIaXN0b3J5VHlwZSBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCB0aWNrZXQgb2JqZWN0CiAgICBteSAkVGlja2V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwoKICAgIG15ICRUaWNrZXRJRCAgICA9ICRQYXJhbXtUaWNrZXRJRH07CiAgICBteSAkQXJ0aWNsZUlEICAgPSAkUGFyYW17QXJ0aWNsZUlEfTsKICAgIG15ICRIaXN0b3J5VHlwZSA9ICRQYXJhbXtIaXN0b3J5VHlwZX07CiAgICBteSAkVXNlcklEICAgICAgPSAkUGFyYW17VXNlcklEfTsKCiAgICBteSBATGluZXMgPSAkVGlja2V0T2JqZWN0LT5IaXN0b3J5R2V0KAogICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICBVc2VySUQgICA9PiAkVXNlcklELAogICAgKTsKCiAgICBteSAkTWF0Y2hlZCA9IDA7CgogICAgcmV0dXJuICRNYXRjaGVkIGlmICFJc0FycmF5UmVmV2l0aERhdGEoIFxATGluZXMgKTsKCiAgICBISVNUT1JZREFUQToKICAgIGZvciBteSAkSGlzdG9yeURhdGEgKCByZXZlcnNlIEBMaW5lcyApIHsKICAgICAgICBuZXh0IEhJU1RPUllEQVRBIGlmICRIaXN0b3J5RGF0YS0+e0FydGljbGVJRH0gIT0gJEFydGljbGVJRDsKICAgICAgICBuZXh0IEhJU1RPUllEQVRBIGlmICRIaXN0b3J5RGF0YS0+e0hpc3RvcnlUeXBlfSBuZSAkSGlzdG9yeVR5cGU7CgogICAgICAgICRNYXRjaGVkID0gMTsKCiAgICAgICAgbGFzdCBISVNUT1JZREFUQTsKICAgIH0KCiAgICByZXR1cm4gJE1hdGNoZWQ7Cn0KCjE7Cg==</File>
        <File Permission="660" Location="scripts/test/DynamicField/PrimarySecondary/EditFieldRender.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKIyBnZXQgbmVlZGVkIG9iamVjdHMKbXkgJER5bmFtaWNGaWVsZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKTsKbXkgJFBhcmFtT2JqZWN0ICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiRLZXJuZWw6Ok9NLT5PYmplY3RQYXJhbUFkZCgKICAgICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JyA9PiB7CiAgICAgICAgVXNlcklEID0+IDEsCiAgICB9LAopOwoKbG9jYWwgJEtlcm5lbDo6T00gPSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlci0+bmV3KAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnID0+IHsKICAgICAgICBMYW5nID0+ICdlbicsCiAgICB9LAopOwpteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwpteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiRMYXlvdXRPYmplY3QtPntVc2VySUR9ID0gMTsKdXNlIERhdGE6OkR1bXBlcjsKcHJpbnQgU1RERVJSICdEZWJ1ZyBEdW1wIC0gIC0gJExheW91dE9iamVjdC0+e1VzZXJMYW5ndWFnZX0gPSAnIC4gRHVtcGVyKCBcJExheW91dE9iamVjdC0+e1VzZXJMYW5ndWFnZX0gKSAuICJcbiI7CgojIGdldCBoZWxwZXIgb2JqZWN0CiRLZXJuZWw6Ok9NLT5PYmplY3RQYXJhbUFkZCgKICAgICdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicgPT4gewogICAgICAgIFJlc3RvcmVEYXRhYmFzZSA9PiAxLAogICAgfSwKKTsKbXkgJEhlbHBlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgbWFrZSBwcmVwYXJhdGlvbnMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKIyBnZXQgUHJpbWFyeS9TZWNvbmRhcnkgZHluYW1pYyBmaWVsZCBkYXRhCm15ICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkICAgICA9ICRDb25maWdPYmplY3QtPkdldCgnUHJpbWFyeVNlY29uZGFyeTo6RHluYW1pY0ZpZWxkJyk7Cm15ICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkRGF0YSA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZEdldCgKICAgIE5hbWUgPT4gJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGQsCik7CgpteSAkVGlja2V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwoKIyBmaW5kIGFsbCBjdXJyZW50IG9wZW4gcHJpbWFyeSBzZWNvbmRhcnkgdGlja2V0cwpteSBAVGlja2V0SURzID0gJFRpY2tldE9iamVjdC0+VGlja2V0U2VhcmNoKAogICAgUmVzdWx0ID0+ICdBUlJBWScsCgogICAgIyBwcmltYXJ5IHNlY29uZGFyeSBkeW5hbWljIGZpZWxkCiAgICAnRHluYW1pY0ZpZWxkXycgLiAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCA9PiB7CiAgICAgICAgRXF1YWxzID0+ICdQcmltYXJ5JywKICAgIH0sCgogICAgU3RhdGVUeXBlICA9PiAnT3BlbicsCiAgICBVc2VySUQgICAgID0+IDEsCiAgICBQZXJtaXNzaW9uID0+ICdybycsCik7CgojIHNldCB0aWNrZXRzIHRvIHJlbW92ZWQgc28gdGhleSBhcmUgbm90IGZvbmQgbGF0ZXIgaW4gdGhlIHRlc3QgY2FzZXMKIyAgICB0aGUgdGlja2V0cyB3aWxsIGJlIHJlc3RvcmVkIGF1dG9tYXRpY2FsbHkgYXQgdGhlIGVuZCBvZiB0aGUgdGVzdAojICAgIGR1ZSB0byB0aGUgUmVzdG9yZURhdGFiYXNlIG9wdGlvbiBpbiBoZWxwZXIgb2JqZWN0CmZvciBteSAkVGlja2V0SUQgKEBUaWNrZXRJRHMpIHsKICAgIG15ICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0U3RhdGVTZXQoCiAgICAgICAgU3RhdGUgICAgPT4gJ3JlbW92ZWQnLAogICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRTdWNjZXNzLAogICAgICAgICJUZW1wb3Jhcnkgc2V0IFByaW1hcnkgVGlja2V0OiAkVGlja2V0SUQgdG8gcmVtb3ZlZCIsCiAgICApOwp9CgojIGRlZmluZSB0ZXN0cwpteSBAVGVzdHMgPSAoCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdQcmltYXJ5U2Vjb25kYXJ5IC0gUG9zc2libGUgVmFsdWVzIEZpbHRlcicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGREYXRhLAogICAgICAgICAgICBQb3NzaWJsZVZhbHVlc0ZpbHRlciA9PiB7CiAgICAgICAgICAgICAgICBQcmltYXJ5ID0+ICdOZXcgUHJpbWFyeSBUaWNrZXQnLAogICAgICAgICAgICB9LAogICAgICAgICAgICBMYXlvdXRPYmplY3QgPT4gJExheW91dE9iamVjdCwKICAgICAgICAgICAgUGFyYW1PYmplY3QgID0+ICRQYXJhbU9iamVjdCwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIEZpZWxkID0+CiAgICAgICAgICAgICAgICAnPHNlbGVjdCBjbGFzcz0iRHluYW1pY0ZpZWxkVGV4dCBNb2Rlcm5pemUiIGlkPSJEeW5hbWljRmllbGRfUHJpbWFyeVNlY29uZGFyeSIgbmFtZT0iRHluYW1pY0ZpZWxkX1ByaW1hcnlTZWNvbmRhcnkiIHNpemU9IjEiPgogIDxvcHRpb24gdmFsdWU9IlByaW1hcnkiPk5ldyBQcmltYXJ5IFRpY2tldDwvb3B0aW9uPgo8L3NlbGVjdD4KPGRpdiBpZD0iRHluYW1pY0ZpZWxkX1ByaW1hcnlTZWNvbmRhcnlFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgPHA+CiAgICAgICAgVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4KICAgIDwvcD4KPC9kaXY+Cgo8ZGl2IGlkPSJEeW5hbWljRmllbGRfUHJpbWFyeVNlY29uZGFyeVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICA8cD4KICAgICAgICBUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLgogICAgPC9wPgo8L2Rpdj4KJywKICAgICAgICAgICAgTGFiZWwgPT4KICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPVwnbGFiZWwtd3JhcHBlclwnPjxsYWJlbCBpZD1cJ0xhYmVsRHluYW1pY0ZpZWxkX1ByaW1hcnlTZWNvbmRhcnlcJyBmb3I9XCdEeW5hbWljRmllbGRfUHJpbWFyeVNlY29uZGFyeVwnPlByaW1hcnkgVGlja2V0PC9sYWJlbD48L2Rpdj4nCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdVbnNldFByaW1hcnlTZWNvbmRhcnkgLSBQb3NzaWJsZSBWYWx1ZXMgRmlsdGVyJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZERhdGEsCiAgICAgICAgICAgIFBvc3NpYmxlVmFsdWVzRmlsdGVyID0+IHsKICAgICAgICAgICAgICAgIFByaW1hcnkgICAgICAgID0+ICdOZXcgUHJpbWFyeSBUaWNrZXQnLAogICAgICAgICAgICAgICAgVW5zZXRQcmltYXJ5ICAgPT4gJ1Vuc2V0IFByaW1hcnkgVGlja2V0cycsCiAgICAgICAgICAgICAgICBVbnNldFNlY29uZGFyeSA9PiAnVW5zZXQgU2Vjb25kYXJ5IFRpY2tldHMnLAogICAgICAgICAgICB9LAogICAgICAgICAgICBMYXlvdXRPYmplY3QgPT4gJExheW91dE9iamVjdCwKICAgICAgICAgICAgUGFyYW1PYmplY3QgID0+ICRQYXJhbU9iamVjdCwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIEZpZWxkID0+CiAgICAgICAgICAgICAgICAnPHNlbGVjdCBjbGFzcz0iRHluYW1pY0ZpZWxkVGV4dCBNb2Rlcm5pemUiIGlkPSJEeW5hbWljRmllbGRfUHJpbWFyeVNlY29uZGFyeSIgbmFtZT0iRHluYW1pY0ZpZWxkX1ByaW1hcnlTZWNvbmRhcnkiIHNpemU9IjEiPgogIDxvcHRpb24gdmFsdWU9IlByaW1hcnkiPk5ldyBQcmltYXJ5IFRpY2tldDwvb3B0aW9uPgogIDxvcHRpb24gdmFsdWU9IlVuc2V0UHJpbWFyeSI+VW5zZXQgUHJpbWFyeSBUaWNrZXRzPC9vcHRpb24+CiAgPG9wdGlvbiB2YWx1ZT0iVW5zZXRTZWNvbmRhcnkiPlVuc2V0IFNlY29uZGFyeSBUaWNrZXRzPC9vcHRpb24+Cjwvc2VsZWN0Pgo8ZGl2IGlkPSJEeW5hbWljRmllbGRfUHJpbWFyeVNlY29uZGFyeUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICA8cD4KICAgICAgICBUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLgogICAgPC9wPgo8L2Rpdj4KCjxkaXYgaWQ9IkR5bmFtaWNGaWVsZF9QcmltYXJ5U2Vjb25kYXJ5U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgIDxwPgogICAgICAgIFRoaXMgZmllbGQgaXMgcmVxdWlyZWQuCiAgICA8L3A+CjwvZGl2PgonLAogICAgICAgICAgICBMYWJlbCA9PgogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9XCdsYWJlbC13cmFwcGVyXCc+PGxhYmVsIGlkPVwnTGFiZWxEeW5hbWljRmllbGRfUHJpbWFyeVNlY29uZGFyeVwnIGZvcj1cJ0R5bmFtaWNGaWVsZF9QcmltYXJ5U2Vjb25kYXJ5XCc+UHJpbWFyeSBUaWNrZXQ8L2xhYmVsPjwvZGl2PicKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1ByaW1hcnlTZWNvbmRhcnk6IE5vIHZhbHVlICcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkRGF0YSwKICAgICAgICAgICAgTGF5b3V0T2JqZWN0ICAgICAgID0+ICRMYXlvdXRPYmplY3QsCiAgICAgICAgICAgIFBhcmFtT2JqZWN0ICAgICAgICA9PiAkUGFyYW1PYmplY3QsCiAgICAgICAgICAgIENsYXNzICAgICAgICAgICAgICA9PiAnTXlDbGFzcycsCiAgICAgICAgICAgIFVzZURlZmF1bHRWYWx1ZSAgICA9PiAwLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgRmllbGQgPT4gPDwiRU9GIiwKPHNlbGVjdCBjbGFzcz0iRHluYW1pY0ZpZWxkVGV4dCBNb2Rlcm5pemUgTXlDbGFzcyIgaWQ9IkR5bmFtaWNGaWVsZF9QcmltYXJ5U2Vjb25kYXJ5IiBuYW1lPSJEeW5hbWljRmllbGRfUHJpbWFyeVNlY29uZGFyeSIgc2l6ZT0iMSI+CiAgPG9wdGlvbiB2YWx1ZT0iIj4tPC9vcHRpb24+CiAgPG9wdGlvbiB2YWx1ZT0iUHJpbWFyeSI+TmV3IFByaW1hcnkgVGlja2V0PC9vcHRpb24+Cjwvc2VsZWN0Pgo8ZGl2IGlkPSJEeW5hbWljRmllbGRfUHJpbWFyeVNlY29uZGFyeUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICA8cD4KICAgICAgICBUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLgogICAgPC9wPgo8L2Rpdj4KCjxkaXYgaWQ9IkR5bmFtaWNGaWVsZF9QcmltYXJ5U2Vjb25kYXJ5U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgIDxwPgogICAgICAgIFRoaXMgZmllbGQgaXMgcmVxdWlyZWQuCiAgICA8L3A+CjwvZGl2PgpFT0YKICAgICAgICAgICAgTGFiZWwgPT4KICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPVwnbGFiZWwtd3JhcHBlclwnPjxsYWJlbCBpZD1cJ0xhYmVsRHluYW1pY0ZpZWxkX1ByaW1hcnlTZWNvbmRhcnlcJyBmb3I9XCdEeW5hbWljRmllbGRfUHJpbWFyeVNlY29uZGFyeVwnPlByaW1hcnkgVGlja2V0PC9sYWJlbD48L2Rpdj4nCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdQcmltYXJ5U2Vjb25kYXJ5OiBObyB2YWx1ZSAvIERlZmF1bHQnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZERhdGEsCiAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICAgICBQYXJhbU9iamVjdCAgICAgICAgPT4gJFBhcmFtT2JqZWN0LAogICAgICAgICAgICBDbGFzcyAgICAgICAgICAgICAgPT4gJ015Q2xhc3MnLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgRmllbGQgPT4gPDwiRU9GIiwKPHNlbGVjdCBjbGFzcz0iRHluYW1pY0ZpZWxkVGV4dCBNb2Rlcm5pemUgTXlDbGFzcyIgaWQ9IkR5bmFtaWNGaWVsZF9QcmltYXJ5U2Vjb25kYXJ5IiBuYW1lPSJEeW5hbWljRmllbGRfUHJpbWFyeVNlY29uZGFyeSIgc2l6ZT0iMSI+CiAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZD0ic2VsZWN0ZWQiPi08L29wdGlvbj4KICA8b3B0aW9uIHZhbHVlPSJQcmltYXJ5Ij5OZXcgUHJpbWFyeSBUaWNrZXQ8L29wdGlvbj4KPC9zZWxlY3Q+CjxkaXYgaWQ9IkR5bmFtaWNGaWVsZF9QcmltYXJ5U2Vjb25kYXJ5RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgIDxwPgogICAgICAgIFRoaXMgZmllbGQgaXMgcmVxdWlyZWQuCiAgICA8L3A+CjwvZGl2PgoKPGRpdiBpZD0iRHluYW1pY0ZpZWxkX1ByaW1hcnlTZWNvbmRhcnlTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgPHA+CiAgICAgICAgVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4KICAgIDwvcD4KPC9kaXY+CkVPRgogICAgICAgICAgICBMYWJlbCA9PgogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9XCdsYWJlbC13cmFwcGVyXCc+PGxhYmVsIGlkPVwnTGFiZWxEeW5hbWljRmllbGRfUHJpbWFyeVNlY29uZGFyeVwnIGZvcj1cJ0R5bmFtaWNGaWVsZF9QcmltYXJ5U2Vjb25kYXJ5XCc+UHJpbWFyeSBUaWNrZXQ8L2xhYmVsPjwvZGl2PicKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1ByaW1hcnlTZWNvbmRhcnk6IFZhbHVlIGRpcmVjdCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkRGF0YSwKICAgICAgICAgICAgTGF5b3V0T2JqZWN0ICAgICAgID0+ICRMYXlvdXRPYmplY3QsCiAgICAgICAgICAgIFBhcmFtT2JqZWN0ICAgICAgICA9PiAkUGFyYW1PYmplY3QsCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnUHJpbWFyeScsCiAgICAgICAgICAgIENsYXNzICAgICAgICAgICAgICA9PiAnTXlDbGFzcycsCiAgICAgICAgICAgIFVzZURlZmF1bHRWYWx1ZSAgICA9PiAwLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgRmllbGQgPT4gPDwiRU9GIiwKPHNlbGVjdCBjbGFzcz0iRHluYW1pY0ZpZWxkVGV4dCBNb2Rlcm5pemUgTXlDbGFzcyIgaWQ9IkR5bmFtaWNGaWVsZF9QcmltYXJ5U2Vjb25kYXJ5IiBuYW1lPSJEeW5hbWljRmllbGRfUHJpbWFyeVNlY29uZGFyeSIgc2l6ZT0iMSI+CiAgPG9wdGlvbiB2YWx1ZT0iIj4tPC9vcHRpb24+CiAgPG9wdGlvbiB2YWx1ZT0iUHJpbWFyeSIgc2VsZWN0ZWQ9InNlbGVjdGVkIj5OZXcgUHJpbWFyeSBUaWNrZXQ8L29wdGlvbj4KPC9zZWxlY3Q+CjxkaXYgaWQ9IkR5bmFtaWNGaWVsZF9QcmltYXJ5U2Vjb25kYXJ5RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgIDxwPgogICAgICAgIFRoaXMgZmllbGQgaXMgcmVxdWlyZWQuCiAgICA8L3A+CjwvZGl2PgoKPGRpdiBpZD0iRHluYW1pY0ZpZWxkX1ByaW1hcnlTZWNvbmRhcnlTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgPHA+CiAgICAgICAgVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4KICAgIDwvcD4KPC9kaXY+CkVPRgogICAgICAgICAgICBMYWJlbCA9PgogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9XCdsYWJlbC13cmFwcGVyXCc+PGxhYmVsIGlkPVwnTGFiZWxEeW5hbWljRmllbGRfUHJpbWFyeVNlY29uZGFyeVwnIGZvcj1cJ0R5bmFtaWNGaWVsZF9QcmltYXJ5U2Vjb25kYXJ5XCc+UHJpbWFyeSBUaWNrZXQ8L2xhYmVsPjwvZGl2PicKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1ByaW1hcnlTZWNvbmRhcnk6IE1hbmRhdG9yeScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkRGF0YSwKICAgICAgICAgICAgTGF5b3V0T2JqZWN0ICAgICAgID0+ICRMYXlvdXRPYmplY3QsCiAgICAgICAgICAgIFBhcmFtT2JqZWN0ICAgICAgICA9PiAkUGFyYW1PYmplY3QsCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnUHJpbWFyeScsCiAgICAgICAgICAgIENsYXNzICAgICAgICAgICAgICA9PiAnTXlDbGFzcycsCiAgICAgICAgICAgIFVzZURlZmF1bHRWYWx1ZSAgICA9PiAwLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIEZpZWxkID0+CiAgICAgICAgICAgICAgICAnPHNlbGVjdCBjbGFzcz0iRHluYW1pY0ZpZWxkVGV4dCBNb2Rlcm5pemUgTXlDbGFzcyBWYWxpZGF0ZV9SZXF1aXJlZCIgaWQ9IkR5bmFtaWNGaWVsZF9QcmltYXJ5U2Vjb25kYXJ5IiBuYW1lPSJEeW5hbWljRmllbGRfUHJpbWFyeVNlY29uZGFyeSIgc2l6ZT0iMSI+CiAgPG9wdGlvbiB2YWx1ZT0iIj4tPC9vcHRpb24+CiAgPG9wdGlvbiB2YWx1ZT0iUHJpbWFyeSIgc2VsZWN0ZWQ9InNlbGVjdGVkIj5OZXcgUHJpbWFyeSBUaWNrZXQ8L29wdGlvbj4KPC9zZWxlY3Q+CjxkaXYgaWQ9IkR5bmFtaWNGaWVsZF9QcmltYXJ5U2Vjb25kYXJ5RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgIDxwPgogICAgICAgIFRoaXMgZmllbGQgaXMgcmVxdWlyZWQuCiAgICA8L3A+CjwvZGl2PgoKPGRpdiBpZD0iRHluYW1pY0ZpZWxkX1ByaW1hcnlTZWNvbmRhcnlTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgPHA+CiAgICAgICAgVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4KICAgIDwvcD4KPC9kaXY+CicsCiAgICAgICAgICAgIExhYmVsID0+CiAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz1cJ2xhYmVsLXdyYXBwZXJcJz48bGFiZWwgaWQ9XCdMYWJlbER5bmFtaWNGaWVsZF9QcmltYXJ5U2Vjb25kYXJ5XCcgZm9yPVwnRHluYW1pY0ZpZWxkX1ByaW1hcnlTZWNvbmRhcnlcJyBjbGFzcz1cJ01hbmRhdG9yeVwnPjxzcGFuIGNsYXNzPVwnTWFya2VyXCc+Kjwvc3Bhbj5QcmltYXJ5IFRpY2tldDwvbGFiZWw+PC9kaXY+JwogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnUHJpbWFyeVNlY29uZGFyeTogU2VydmVyIEVycm9yJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGREYXRhLAogICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICAgICAgUGFyYW1PYmplY3QgICAgICAgID0+ICRQYXJhbU9iamVjdCwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICdQcmltYXJ5JywKICAgICAgICAgICAgQ2xhc3MgICAgICAgICAgICAgID0+ICdNeUNsYXNzJywKICAgICAgICAgICAgVXNlRGVmYXVsdFZhbHVlICAgID0+IDAsCiAgICAgICAgICAgIFNlcnZlckVycm9yICAgICAgICA9PiAxLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgICAgICAgPT4gJ1RoaXMgaXMgYW4gZXJyb3IuJwogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgRmllbGQgPT4KICAgICAgICAgICAgICAgICc8c2VsZWN0IGNsYXNzPSJEeW5hbWljRmllbGRUZXh0IE1vZGVybml6ZSBNeUNsYXNzIFNlcnZlckVycm9yIiBpZD0iRHluYW1pY0ZpZWxkX1ByaW1hcnlTZWNvbmRhcnkiIG5hbWU9IkR5bmFtaWNGaWVsZF9QcmltYXJ5U2Vjb25kYXJ5IiBzaXplPSIxIj4KICA8b3B0aW9uIHZhbHVlPSIiPi08L29wdGlvbj4KICA8b3B0aW9uIHZhbHVlPSJQcmltYXJ5IiBzZWxlY3RlZD0ic2VsZWN0ZWQiPk5ldyBQcmltYXJ5IFRpY2tldDwvb3B0aW9uPgo8L3NlbGVjdD4KPGRpdiBpZD0iRHluYW1pY0ZpZWxkX1ByaW1hcnlTZWNvbmRhcnlFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgPHA+CiAgICAgICAgVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4KICAgIDwvcD4KPC9kaXY+Cgo8ZGl2IGlkPSJEeW5hbWljRmllbGRfUHJpbWFyeVNlY29uZGFyeVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICA8cD4KICAgICAgICBUaGlzIGlzIGFuIGVycm9yLgogICAgPC9wPgo8L2Rpdj4KJywKICAgICAgICAgICAgTGFiZWwgPT4KICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPVwnbGFiZWwtd3JhcHBlclwnPjxsYWJlbCBpZD1cJ0xhYmVsRHluYW1pY0ZpZWxkX1ByaW1hcnlTZWNvbmRhcnlcJyBmb3I9XCdEeW5hbWljRmllbGRfUHJpbWFyeVNlY29uZGFyeVwnPlByaW1hcnkgVGlja2V0PC9sYWJlbD48L2Rpdj4nCiAgICAgICAgfSwKICAgIH0sCik7CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgZXhlY3V0ZSB0ZXN0cwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCm15ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpOwoKZm9yIG15ICRUZXN0IChAVGVzdHMpIHsKCiAgICBteSAkRmllbGRIVE1MID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPkVkaXRGaWVsZFJlbmRlciggJXsgJFRlc3QtPntDb25maWd9IH0gKTsKCiAgICAjIGhlcmVkb2NzIGFsd2F5cyBoYXZlIHRoZSBuZXdsaW5lLCBldmVuIGlmIGl0IGlzIG5vdCBleHBlY3RlZAogICAgaWYgKCAkRmllbGRIVE1MLT57RmllbGR9ICF+IG17XG4kfSApIHsKICAgICAgICBjaG9tcCAkVGVzdC0+e0V4cGVjdGVkUmVzdWx0c30tPntGaWVsZH07CiAgICB9CgogICAgJFNlbGYtPklzRGVlcGx5KAogICAgICAgICRGaWVsZEhUTUwsCiAgICAgICAgJFRlc3QtPntFeHBlY3RlZFJlc3VsdHN9LAogICAgICAgICIkVGVzdC0+e05hbWV9IHwgRWRpdEZpZWxkUmVuZGVyKCkiLAogICAgKTsKfQoKIyBDbGVhbnVwIGlzIGRvbmUgYnkgUmVzdG9yZURhdGFiYXNlLgoKMTsK</File>
        <File Permission="660" Location="scripts/test/DynamicField/PrimarySecondary/ValueSet.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoSXNIYXNoUmVmV2l0aERhdGEpOwoKIyBnZXQgbmVlZGVkIG9iamVjdHMKbXkgJFRpY2tldE9iamVjdCAgICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7Cm15ICRMaW5rT2JqZWN0ICAgICAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3QnKTsKbXkgJER5bmFtaWNGaWVsZE9iamVjdCAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyk7Cm15ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpOwpteSAkQ29uZmlnT2JqZWN0ICAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgojIGdldCBoZWxwZXIgb2JqZWN0CiRLZXJuZWw6Ok9NLT5PYmplY3RQYXJhbUFkZCgKICAgICdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicgPT4gewogICAgICAgIFJlc3RvcmVEYXRhYmFzZSA9PiAxLAogICAgfSwKKTsKbXkgJEhlbHBlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgbWFrZSBwcmVwYXJhdGlvbnMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKIyBnZXQgUHJpbWFyeS9TZWNvbmRhcnkgZHluYW1pYyBmaWVsZCBkYXRhCm15ICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkICAgICA9ICRDb25maWdPYmplY3QtPkdldCgnUHJpbWFyeVNlY29uZGFyeTo6RHluYW1pY0ZpZWxkJyk7Cm15ICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkRGF0YSA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZEdldCgKICAgIE5hbWUgPT4gJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGQsCik7CgojIGdldCByYW5kb20gSUQKbXkgJFJhbmRvbUlEID0gJEhlbHBlck9iamVjdC0+R2V0UmFuZG9tSUQoKTsKCiMgY3JlYXRlIHRlc3QgdGlja2V0cwpteSBAVGlja2V0SURzOwpteSBAVGlja2V0TnVtYmVyczsKZm9yIG15ICRUaWNrZXQgKCAxIC4uIDUgKSB7CiAgICBteSAkVGlja2V0TnVtYmVyID0gJFRpY2tldE9iamVjdC0+VGlja2V0Q3JlYXRlTnVtYmVyKCk7CiAgICBteSAkVGlja2V0SUQgICAgID0gJFRpY2tldE9iamVjdC0+VGlja2V0Q3JlYXRlKAogICAgICAgIFROICAgICAgICAgICA9PiAkVGlja2V0TnVtYmVyLAogICAgICAgIFRpdGxlICAgICAgICA9PiAnVW5pdCB0ZXN0IHRpY2tldCAnIC4gJFJhbmRvbUlEIC4gJyAnIC4gJFRpY2tldCwKICAgICAgICBRdWV1ZSAgICAgICAgPT4gJ1JhdycsCiAgICAgICAgTG9jayAgICAgICAgID0+ICd1bmxvY2snLAogICAgICAgIFByaW9yaXR5ICAgICA9PiAnMyBub3JtYWwnLAogICAgICAgIFN0YXRlICAgICAgICA9PiAnbmV3JywKICAgICAgICBDdXN0b21lck5vICAgPT4gJzEyMzQ2NScsCiAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICdjdXN0b21lckBleGFtcGxlLmNvbScsCiAgICAgICAgT3duZXJJRCAgICAgID0+IDEsCiAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICApOwogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJFRpY2tldElELAogICAgICAgICJUaWNrZXRDcmVhdGUoKSBUaWNrZXQgSUQgJFRpY2tldElEIC0gVE46ICRUaWNrZXROdW1iZXIiLAogICAgKTsKICAgIHB1c2ggQFRpY2tldElEcywgICAgICRUaWNrZXRJRDsKICAgIHB1c2ggQFRpY2tldE51bWJlcnMsICRUaWNrZXROdW1iZXI7Cn0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyB0ZXN0IFByaW1hcnkvU2Vjb25kYXJ5IHRpY2tldCB2YWx1ZSBzZXQKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKIyBzZXQgZmlyc3QgdGVzdCB0aWNrZXQgYXMgcHJpbWFyeSB0aWNrZXQKbXkgJFN1Y2Nlc3MgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+VmFsdWVTZXQoCiAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGREYXRhLAogICAgRmllbGRJRCAgICAgICAgICAgID0+ICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkRGF0YS0+e0lEfSwKICAgIE9iamVjdElEICAgICAgICAgICA9PiAkVGlja2V0SURzWzBdLAogICAgVmFsdWUgICAgICAgICAgICAgID0+ICdQcmltYXJ5JywKICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgIlZhbHVlU2V0KCkgVGlja2V0IElEICRUaWNrZXRJRHNbMF0gRHluYW1pY0ZpZWxkICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkIHVwZGF0ZWQgYXMgUHJpbWFyeVRpY2tldCIsCik7CgojIHNldCBzZWNvbmQgdGVzdCB0aWNrZXQgYXMgc2Vjb25kYXJ5IHRpY2tldAokU3VjY2VzcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5WYWx1ZVNldCgKICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZERhdGEsCiAgICBGaWVsZElEICAgICAgICAgICAgPT4gJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGREYXRhLT57SUR9LAogICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRUaWNrZXRJRHNbMV0sCiAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gIlNlY29uZGFyeU9mOiRUaWNrZXROdW1iZXJzWzBdIiwKICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgIlZhbHVlU2V0KCkgVGlja2V0IElEICRUaWNrZXRJRHNbMV0gRHluYW1pY0ZpZWxkICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkIHVwZGF0ZWQgYXMgU2Vjb25kYXJ5T2Y6JFRpY2tldE51bWJlcnNbMF0iLAopOwoKIyB2ZXJpZnkgdGhlcmUgaXMgcGFyZW50LWNoaWxkIGxpbmsgYmV0d2VlbiBQcmltYXJ5L1NlY29uZGFyeSB0aWNrZXRzCm15ICVMaW5rS2V5TGlzdCA9ICRMaW5rT2JqZWN0LT5MaW5rS2V5TGlzdCgKICAgIE9iamVjdDEgICA9PiAnVGlja2V0JywKICAgIEtleTEgICAgICA9PiAkVGlja2V0SURzWzBdLAogICAgT2JqZWN0MiAgID0+ICdUaWNrZXQnLAogICAgU3RhdGUgICAgID0+ICdWYWxpZCcsCiAgICBUeXBlICAgICAgPT4gJ1BhcmVudENoaWxkJywKICAgIERpcmVjdGlvbiA9PiAnQm90aCcsCiAgICBVc2VySUQgICAgPT4gMSwKKTsKCiRTZWxmLT5UcnVlKAogICAgSXNIYXNoUmVmV2l0aERhdGEoIFwlTGlua0tleUxpc3QgKSA/IDEgOiAwLAogICAgIkxpbmtLZXlMaXN0KCkgUHJpbWFyeS9TZWNvbmRhcnkgbGluayBmb3VuZCAtIFRpY2tldCBJRCAkVGlja2V0SURzWzBdIGFuZCAkVGlja2V0SURzWzFdIiwKKTsKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyB0ZXN0IFVuc2V0UHJpbWFyeXxVbnNldFNlY29uZGFyeQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgojIGVuYWJsZSB0aGUgUHJpbWFyeVNlY29uZGFyeTo6S2VlcFBhcmVudENoaWxkQWZ0ZXJVbnNldCBzeXNjb25maWcKJFN1Y2Nlc3MgPSAkQ29uZmlnT2JqZWN0LT5TZXQoCiAgICBLZXkgICA9PiAnUHJpbWFyeVNlY29uZGFyeTo6S2VlcFBhcmVudENoaWxkQWZ0ZXJVbnNldCcsCiAgICBWYWx1ZSA9PiAxCik7CiRTZWxmLT5UcnVlKAogICAgJFN1Y2Nlc3MsCiAgICAiU2V0KCkgc3lzY29uZmlnIEtlZXBQYXJlbnRDaGlsZEFmdGVyVW5zZXQgLSBlbmFibGVkIiwKKTsKCiMgc2V0IHNlY29uZCB0aWNrZXQgYXMgc2Vjb25kYXJ5IHRpY2tldCBhZ2FpbgokU3VjY2VzcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5WYWx1ZVNldCgKICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZERhdGEsCiAgICBGaWVsZElEICAgICAgICAgICAgPT4gJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGREYXRhLT57SUR9LAogICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRUaWNrZXRJRHNbMV0sCiAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gIlNlY29uZGFyeU9mOiRUaWNrZXROdW1iZXJzWzBdIiwKICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgIlZhbHVlU2V0KCkgVGlja2V0IElEICRUaWNrZXRJRHNbMV0gRHluYW1pY0ZpZWxkICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkIHVwZGF0ZWQgYWdhaW4gYXMgU2Vjb25kYXJ5T2Y6JFRpY2tldE51bWJlcnNbMF0iLAopOwoKIyB2ZXJpZnkgdGhlcmUgaXMgcGFyZW50LWNoaWxkIGxpbmsgYmV0d2VlbiBQcmltYXJ5L1NlY29uZGFyeSB0aWNrZXRzCiVMaW5rS2V5TGlzdCA9ICRMaW5rT2JqZWN0LT5MaW5rS2V5TGlzdCgKICAgIE9iamVjdDEgICA9PiAnVGlja2V0JywKICAgIEtleTEgICAgICA9PiAkVGlja2V0SURzWzBdLAogICAgT2JqZWN0MiAgID0+ICdUaWNrZXQnLAogICAgU3RhdGUgICAgID0+ICdWYWxpZCcsCiAgICBUeXBlICAgICAgPT4gJ1BhcmVudENoaWxkJywKICAgIERpcmVjdGlvbiA9PiAnVGFyZ2V0JywKICAgIFVzZXJJRCAgICA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgIElzSGFzaFJlZldpdGhEYXRhKCBcJUxpbmtLZXlMaXN0ICkgPyAxIDogMCwKICAgICJMaW5rS2V5TGlzdCgpIFByaW1hcnkvU2Vjb25kYXJ5IGxpbmsgZm91bmQgLSBUaWNrZXQgSUQgJFRpY2tldElEc1swXSBhbmQgJFRpY2tldElEc1sxXSIsCik7CgojIFVuc2V0UHJpbWFyeSB2YWx1ZSBmcm9tIGZpcnN0IHRpY2tldAokU3VjY2VzcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5WYWx1ZVNldCgKICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZERhdGEsCiAgICBGaWVsZElEICAgICAgICAgICAgPT4gJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGREYXRhLT57SUR9LAogICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRUaWNrZXRJRHNbMF0sCiAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJ1Vuc2V0UHJpbWFyeScsCiAgICBVc2VySUQgICAgICAgICAgICAgPT4gMSwKKTsKJFNlbGYtPlRydWUoCiAgICAkU3VjY2VzcywKICAgICJWYWx1ZVNldCgpIFRpY2tldCBJRCAkVGlja2V0SURzWzBdIER5bmFtaWNGaWVsZCAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCB1cGRhdGVkIGFzIFVuc2V0UHJpbWFyeSIsCik7CgojIFVuc2V0U2Vjb25kYXJ5IHZhbHVlIGZyb20gc2Vjb25kIHRpY2tldAokU3VjY2VzcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5WYWx1ZVNldCgKICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZERhdGEsCiAgICBGaWVsZElEICAgICAgICAgICAgPT4gJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGREYXRhLT57SUR9LAogICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRUaWNrZXRJRHNbMV0sCiAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJ1Vuc2V0U2Vjb25kYXJ5JywKICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgIlZhbHVlU2V0KCkgVGlja2V0IElEICRUaWNrZXRJRHNbMV0gRHluYW1pY0ZpZWxkICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkIHVwZGF0ZWQgYXMgVW5zZXRTZWNvbmRhcnkiLAopOwoKIyB2ZXJpZnkgdGhlcmUgaXMgc3RpbGwgcGFyZW50LWNoaWxkIGxpbmsgYmV0d2VlbiB0d28gdGlja2V0cwolTGlua0tleUxpc3QgPSAkTGlua09iamVjdC0+TGlua0tleUxpc3QoCiAgICBPYmplY3QxICAgPT4gJ1RpY2tldCcsCiAgICBLZXkxICAgICAgPT4gJFRpY2tldElEc1swXSwKICAgIE9iamVjdDIgICA9PiAnVGlja2V0JywKICAgIFN0YXRlICAgICA9PiAnVmFsaWQnLAogICAgVHlwZSAgICAgID0+ICdQYXJlbnRDaGlsZCcsCiAgICBEaXJlY3Rpb24gPT4gJ1RhcmdldCcsCiAgICBVc2VySUQgICAgPT4gMSwKKTsKJFNlbGYtPlRydWUoCiAgICBJc0hhc2hSZWZXaXRoRGF0YSggXCVMaW5rS2V5TGlzdCApID8gMSA6IDAsCiAgICAiTGlua0tleUxpc3QoKSBQcmltYXJ5L1NlY29uZGFyeSBsaW5rIGZvdW5kIC0gVGlja2V0IElEICRUaWNrZXRJRHNbMF0gYW5kICRUaWNrZXRJRHNbMV0gLSBLZWVwUGFyZW50Q2hpbGRBZnRlclVuc2V0IHN5c2NvbmZpZyBlbmFibGVkIiwKKTsKCiMgZGlzYWJsZSB0aGUgUHJpbWFyeVNlY29uZGFyeTo6S2VlcFBhcmVudENoaWxkQWZ0ZXJVbnNldCBzeXNjb25maWcKJFN1Y2Nlc3MgPSAkQ29uZmlnT2JqZWN0LT5TZXQoCiAgICBLZXkgICA9PiAnUHJpbWFyeVNlY29uZGFyeTo6S2VlcFBhcmVudENoaWxkQWZ0ZXJVbnNldCcsCiAgICBWYWx1ZSA9PiAwCik7CiRTZWxmLT5UcnVlKAogICAgJFN1Y2Nlc3MsCiAgICAiU2V0KCkgc3lzY29uZmlnIEtlZXBQYXJlbnRDaGlsZEFmdGVyVW5zZXQgLSBkaXNhYmxlZCIsCik7CgojIHJlbW92ZSBwYXJlbnQtY2hpbGQgbGluayBiZXR3ZWVuIHR3byB0aWNrZXRzCiRTdWNjZXNzID0gJExpbmtPYmplY3QtPkxpbmtEZWxldGVBbGwoCiAgICBPYmplY3QgPT4gJ1RpY2tldCcsCiAgICBLZXkgICAgPT4gJFRpY2tldElEc1swXSwKICAgIFVzZXJJRCA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgIkxpbmtEZWxldGVBbGwoKSBwYXJlbnQtY2hpbGQgbGluayBmb3IgdGlja2V0IElEICRUaWNrZXRJRHNbMF0gLSByZW1vdmVkIiwKKTsKCiMgc2V0IGZpcnN0IHRlc3QgdGlja2V0IGFzIHByaW1hcnkgdGlja2V0CiRTdWNjZXNzID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlZhbHVlU2V0KAogICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkRGF0YSwKICAgIEZpZWxkSUQgICAgICAgICAgICA9PiAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZERhdGEtPntJRH0sCiAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJFRpY2tldElEc1swXSwKICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnUHJpbWFyeScsCiAgICBVc2VySUQgICAgICAgICAgICAgPT4gMSwKKTsKJFNlbGYtPlRydWUoCiAgICAkU3VjY2VzcywKICAgICJWYWx1ZVNldCgpIFRpY2tldCBJRCAkVGlja2V0SURzWzBdIER5bmFtaWNGaWVsZCAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCB1cGRhdGVkIGFzIFByaW1hcnlUaWNrZXQiLAopOwoKIyBzZXQgc2Vjb25kIHRlc3QgdGlja2V0IGFzIHNlY29uZGFyeSB0aWNrZXQKJFN1Y2Nlc3MgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+VmFsdWVTZXQoCiAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGREYXRhLAogICAgRmllbGRJRCAgICAgICAgICAgID0+ICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkRGF0YS0+e0lEfSwKICAgIE9iamVjdElEICAgICAgICAgICA9PiAkVGlja2V0SURzWzFdLAogICAgVmFsdWUgICAgICAgICAgICAgID0+ICJTZWNvbmRhcnlPZjokVGlja2V0TnVtYmVyc1swXSIsCiAgICBVc2VySUQgICAgICAgICAgICAgPT4gMSwKKTsKJFNlbGYtPlRydWUoCiAgICAkU3VjY2VzcywKICAgICJWYWx1ZVNldCgpIFRpY2tldCBJRCAkVGlja2V0SURzWzFdIER5bmFtaWNGaWVsZCAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCB1cGRhdGVkIGFzIFNlY29uZGFyeU9mOiRUaWNrZXROdW1iZXJzWzBdIiwKKTsKCiMgdmVyaWZ5IHRoZXJlIGlzIHN0aWxsIHBhcmVudC1jaGlsZCBsaW5rIGJldHdlZW4gdHdvIHRpY2tldHMKJUxpbmtLZXlMaXN0ID0gJExpbmtPYmplY3QtPkxpbmtLZXlMaXN0KAogICAgT2JqZWN0MSAgID0+ICdUaWNrZXQnLAogICAgS2V5MSAgICAgID0+ICRUaWNrZXRJRHNbMF0sCiAgICBPYmplY3QyICAgPT4gJ1RpY2tldCcsCiAgICBTdGF0ZSAgICAgPT4gJ1ZhbGlkJywKICAgIFR5cGUgICAgICA9PiAnUGFyZW50Q2hpbGQnLAogICAgRGlyZWN0aW9uID0+ICdUYXJnZXQnLAogICAgVXNlcklEICAgID0+IDEsCik7CiRTZWxmLT5UcnVlKAogICAgSXNIYXNoUmVmV2l0aERhdGEoIFwlTGlua0tleUxpc3QgKSA/IDEgOiAwLAogICAgIkxpbmtLZXlMaXN0KCkgUHJpbWFyeS9TZWNvbmRhcnkgbGluayBmb3VuZCAtIFRpY2tldCBJRCAkVGlja2V0SURzWzBdIGFuZCAkVGlja2V0SURzWzFdIiwKKTsKCiMgVW5zZXRQcmltYXJ5IHZhbHVlIGZyb20gZmlyc3QgdGlja2V0CiRTdWNjZXNzID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlZhbHVlU2V0KAogICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkRGF0YSwKICAgIEZpZWxkSUQgICAgICAgICAgICA9PiAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZERhdGEtPntJRH0sCiAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJFRpY2tldElEc1swXSwKICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnVW5zZXRQcmltYXJ5JywKICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgIlZhbHVlU2V0KCkgVGlja2V0IElEICRUaWNrZXRJRHNbMF0gRHluYW1pY0ZpZWxkICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkIHVwZGF0ZWQgYXMgVW5zZXRQcmltYXJ5IiwKKTsKCiMgVW5zZXRTZWNvbmRhcnkgdmFsdWUgZnJvbSBzZWNvbmQgdGlja2V0CiRTdWNjZXNzID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlZhbHVlU2V0KAogICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkRGF0YSwKICAgIEZpZWxkSUQgICAgICAgICAgICA9PiAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZERhdGEtPntJRH0sCiAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJFRpY2tldElEc1sxXSwKICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnVW5zZXRTZWNvbmRhcnknLAogICAgVXNlcklEICAgICAgICAgICAgID0+IDEsCik7CiRTZWxmLT5UcnVlKAogICAgJFN1Y2Nlc3MsCiAgICAiVmFsdWVTZXQoKSBUaWNrZXQgSUQgJFRpY2tldElEc1sxXSBEeW5hbWljRmllbGQgJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGQgdXBkYXRlZCBhcyBVbnNldFNlY29uZGFyeSIsCik7CgojIHZlcmlmeSB0aGVyZSBpcyBubyBtb3JlIHBhcmVudC1jaGlsZCBsaW5rIGJldHdlZW4gdHdvIHRpY2tldHMKJUxpbmtLZXlMaXN0ID0gJExpbmtPYmplY3QtPkxpbmtLZXlMaXN0KAogICAgT2JqZWN0MSAgID0+ICdUaWNrZXQnLAogICAgS2V5MSAgICAgID0+ICRUaWNrZXRJRHNbMF0sCiAgICBPYmplY3QyICAgPT4gJ1RpY2tldCcsCiAgICBTdGF0ZSAgICAgPT4gJ1ZhbGlkJywKICAgIFR5cGUgICAgICA9PiAnUGFyZW50Q2hpbGQnLAogICAgRGlyZWN0aW9uID0+ICdUYXJnZXQnLAogICAgVXNlcklEICAgID0+IDEsCik7CiRTZWxmLT5UcnVlKAogICAgIUlzSGFzaFJlZldpdGhEYXRhKCBcJUxpbmtLZXlMaXN0ICksCiAgICAiTGlua0tleUxpc3QoKSBQcmltYXJ5L1NlY29uZGFyeSBsaW5rIHJlbW92ZWQgLSBUaWNrZXQgSUQgJFRpY2tldElEc1swXSBhbmQgJFRpY2tldElEc1sxXSAtIEtlZXBQYXJlbnRDaGlsZEFmdGVyVW5zZXQgc3lzY29uZmlnIGRpc2FibGVkIiwKKTsKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyB0ZXN0IHVwZGF0ZSBQcmltYXJ5L1NlY29uZGFyeSBmaWVsZAojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgojIGVuYWJsZSB0aGUgUHJpbWFyeVNlY29uZGFyeTo6S2VlcFBhcmVudENoaWxkQWZ0ZXJVcGRhdGUgc3lzY29uZmlnCiRTdWNjZXNzID0gJENvbmZpZ09iamVjdC0+U2V0KAogICAgS2V5ICAgPT4gJ1ByaW1hcnlTZWNvbmRhcnk6OktlZXBQYXJlbnRDaGlsZEFmdGVyVXBkYXRlJywKICAgIFZhbHVlID0+IDEKKTsKJFNlbGYtPlRydWUoCiAgICAkU3VjY2VzcywKICAgICJTZXQoKSBzeXNjb25maWcgS2VlcFBhcmVudENoaWxkQWZ0ZXJVcGRhdGUgLSBlbmFibGVkIiwKKTsKCiMgc2V0IGZpcnN0IHRlc3QgdGlja2V0IGFzIHByaW1hcnkgdGlja2V0CiRTdWNjZXNzID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlZhbHVlU2V0KAogICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkRGF0YSwKICAgIEZpZWxkSUQgICAgICAgICAgICA9PiAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZERhdGEtPntJRH0sCiAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJFRpY2tldElEc1swXSwKICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnUHJpbWFyeScsCiAgICBVc2VySUQgICAgICAgICAgICAgPT4gMSwKKTsKJFNlbGYtPlRydWUoCiAgICAkU3VjY2VzcywKICAgICJWYWx1ZVNldCgpIFRpY2tldCBJRCAkVGlja2V0SURzWzBdIER5bmFtaWNGaWVsZCAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCB1cGRhdGVkIGFzIFByaW1hcnlUaWNrZXQiLAopOwoKIyBzZXQgc2Vjb25kIHRlc3QgdGlja2V0IGFzIHByaW1hcnkgdGlja2V0CiRTdWNjZXNzID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlZhbHVlU2V0KAogICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkRGF0YSwKICAgIEZpZWxkSUQgICAgICAgICAgICA9PiAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZERhdGEtPntJRH0sCiAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJFRpY2tldElEc1sxXSwKICAgIFZhbHVlICAgICAgICAgICAgICA9PiAiUHJpbWFyeSIsCiAgICBVc2VySUQgICAgICAgICAgICAgPT4gMSwKKTsKJFNlbGYtPlRydWUoCiAgICAkU3VjY2VzcywKICAgICJWYWx1ZVNldCgpIFRpY2tldCBJRCAkVGlja2V0SURzWzFdIER5bmFtaWNGaWVsZCAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCB1cGRhdGVkIGFzIFByaW1hcnlUaWNrZXQiLAopOwoKIyBzZXQgdGhpcmQgdGVzdCB0aWNrZXQgYXMgc2Vjb25kYXJ5IG9mIHNlY29uZCB0aWNrZXQKJFN1Y2Nlc3MgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+VmFsdWVTZXQoCiAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGREYXRhLAogICAgRmllbGRJRCAgICAgICAgICAgID0+ICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkRGF0YS0+e0lEfSwKICAgIE9iamVjdElEICAgICAgICAgICA9PiAkVGlja2V0SURzWzJdLAogICAgVmFsdWUgICAgICAgICAgICAgID0+ICJTZWNvbmRhcnlPZjokVGlja2V0TnVtYmVyc1sxXSIsCiAgICBVc2VySUQgICAgICAgICAgICAgPT4gMSwKKTsKJFNlbGYtPlRydWUoCiAgICAkU3VjY2VzcywKICAgICJWYWx1ZVNldCgpIFRpY2tldCBJRCAkVGlja2V0SURzWzJdIER5bmFtaWNGaWVsZCAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCB1cGRhdGVkIGFzIFNlY29uZGFyeU9mOiRUaWNrZXROdW1iZXJzWzFdIiwKKTsKCiMgdmVyaWZ5IHRoZXJlIGlzIHBhcmVudC1jaGlsZCBsaW5rIGJldHdlZW4gdHdvIHRpY2tldHMKJUxpbmtLZXlMaXN0ID0gJExpbmtPYmplY3QtPkxpbmtLZXlMaXN0KAogICAgT2JqZWN0MSAgID0+ICdUaWNrZXQnLAogICAgS2V5MSAgICAgID0+ICRUaWNrZXRJRHNbMV0sCiAgICBPYmplY3QyICAgPT4gJ1RpY2tldCcsCiAgICBTdGF0ZSAgICAgPT4gJ1ZhbGlkJywKICAgIFR5cGUgICAgICA9PiAnUGFyZW50Q2hpbGQnLAogICAgRGlyZWN0aW9uID0+ICdUYXJnZXQnLAogICAgVXNlcklEICAgID0+IDEsCik7CiRTZWxmLT5UcnVlKAogICAgSXNIYXNoUmVmV2l0aERhdGEoIFwlTGlua0tleUxpc3QgKSA/IDEgOiAwLAogICAgIkxpbmtLZXlMaXN0KCkgUHJpbWFyeS9TZWNvbmRhcnkgbGluayBmb3VuZCAtIFRpY2tldCBJRCAkVGlja2V0SURzWzFdIGFuZCAkVGlja2V0SURzWzJdIiwKKTsKCiMgc2V0IHNlY29uZCB0aWNrZXQgYXMgc2Vjb25kYXJ5IG9mIGZpcnN0IHRpY2tldAokU3VjY2VzcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5WYWx1ZVNldCgKICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZERhdGEsCiAgICBGaWVsZElEICAgICAgICAgICAgPT4gJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGREYXRhLT57SUR9LAogICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRUaWNrZXRJRHNbMV0sCiAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gIlNlY29uZGFyeU9mOiRUaWNrZXROdW1iZXJzWzBdIiwKICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgIlZhbHVlU2V0KCkgVGlja2V0IElEICRUaWNrZXRJRHNbMV0gRHluYW1pY0ZpZWxkICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkIHVwZGF0ZWQgYXMgU2Vjb25kYXJ5T2Y6JFRpY2tldE51bWJlcnNbMF0iLAopOwoKIyB2ZXJpZnkgdGhlcmUgcGFyZW50LWNoaWxkLXBhcmVudCBsaW5rIGJldHdlZW4gdGhyZWUgdGlja2V0cwolTGlua0tleUxpc3QgPSAkTGlua09iamVjdC0+TGlua0tleUxpc3QoCiAgICBPYmplY3QxICAgPT4gJ1RpY2tldCcsCiAgICBLZXkxICAgICAgPT4gJFRpY2tldElEc1sxXSwKICAgIE9iamVjdDIgICA9PiAnVGlja2V0JywKICAgIFN0YXRlICAgICA9PiAnVmFsaWQnLAogICAgVHlwZSAgICAgID0+ICdQYXJlbnRDaGlsZCcsCiAgICBEaXJlY3Rpb24gPT4gJ0JvdGgnLAogICAgVXNlcklEICAgID0+IDEsCik7CiRTZWxmLT5UcnVlKAogICAgSXNIYXNoUmVmV2l0aERhdGEoIFwlTGlua0tleUxpc3QgKSwKICAgICJMaW5rS2V5TGlzdCgpIFByaW1hcnkvU2Vjb25kYXJ5IGxpbmsgZm91bmQgLSBUaWNrZXQgSUQgJFRpY2tldElEc1swXSwgJFRpY2tldElEc1sxXSBhbmQgJFRpY2tldElEc1syXSAtIEtlZXBQYXJlbnRDaGlsZEFmdGVyVXBkYXRlIHN5c2NvbmZpZyBlbmFibGVkIiwKKTsKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyB0ZXN0IFNlY29uZGFyeSB0aWNrZXQgdmFsdWUgc2V0IGFmdGVyIGFwcGx5aW5nIGRpZmZlcmVudCBsaW5rIHR5cGUgdG8gc2Vjb25kYXJ5IHRpY2tldAojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgojIGFkZCBsaW5rIGZvciBmaWZ0aCAoc2Vjb25kYXJ5KSB0byBmb3VydGggKHByaW1hcnkpIHRpY2tldCB0aGF0IGlzIG90aGVyIHRoYW4gIlBhcmVudENoaWxkIgokU3VjY2VzcyA9ICRMaW5rT2JqZWN0LT5MaW5rQWRkKAogICAgU291cmNlT2JqZWN0ID0+ICdUaWNrZXQnLAogICAgU291cmNlS2V5ICAgID0+ICRUaWNrZXRJRHNbNF0sCiAgICBUYXJnZXRPYmplY3QgPT4gJ1RpY2tldCcsCiAgICBUYXJnZXRLZXkgICAgPT4gJFRpY2tldElEc1szXSwKICAgIFR5cGUgICAgICAgICA9PiAnTm9ybWFsJywKICAgIFN0YXRlICAgICAgICA9PiAnVmFsaWQnLAogICAgVXNlcklEICAgICAgID0+IDEsCik7CgokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgIkxpbmtBZGQoKSBUaWNrZXQgSUQgJFRpY2tldElEc1s0XSAoc2Vjb25kYXJ5KSBsaW5rIE5vcm1hbCBhZGRlZCB0byBUaWNrZXQgSUQ6JFRpY2tldElEc1szXSAocHJpbWFyeSkiLAopOwoKIyBzZXQgZm91cnRoIHRlc3QgdGlja2V0IGFzIHByaW1hcnkgdGlja2V0CiRTdWNjZXNzID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlZhbHVlU2V0KAogICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkRGF0YSwKICAgIEZpZWxkSUQgICAgICAgICAgICA9PiAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZERhdGEtPntJRH0sCiAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJFRpY2tldElEc1szXSwKICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnUHJpbWFyeScsCiAgICBVc2VySUQgICAgICAgICAgICAgPT4gMSwKKTsKJFNlbGYtPlRydWUoCiAgICAkU3VjY2VzcywKICAgICJWYWx1ZVNldCgpIFRpY2tldCBJRCAkVGlja2V0SURzWzNdIER5bmFtaWNGaWVsZCAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCB1cGRhdGVkIGFzIFByaW1hcnlUaWNrZXQiLAopOwoKIyBzZXQgZmlmdGggdGVzdCB0aWNrZXQgYXMgc2Vjb25kYXJ5IHRpY2tldAokU3VjY2VzcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5WYWx1ZVNldCgKICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZERhdGEsCiAgICBGaWVsZElEICAgICAgICAgICAgPT4gJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGREYXRhLT57SUR9LAogICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRUaWNrZXRJRHNbNF0sCiAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gIlNlY29uZGFyeU9mOiRUaWNrZXROdW1iZXJzWzNdIiwKICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgIlZhbHVlU2V0KCkgVGlja2V0IElEICRUaWNrZXRJRHNbNF0gRHluYW1pY0ZpZWxkICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkIHVwZGF0ZWQgYXMgU2Vjb25kYXJ5T2Y6JFRpY2tldE51bWJlcnNbM10iLAopOwoKIyB2ZXJpZnkgdGhlcmUgaXMgcGFyZW50LWNoaWxkIGxpbmsgYmV0d2VlbiBQcmltYXJ5L1NlY29uZGFyeSB0aWNrZXRzCm15ICRMaW5rTGlzdCA9ICRMaW5rT2JqZWN0LT5MaW5rTGlzdCgKICAgIE9iamVjdCAgICA9PiAnVGlja2V0JywKICAgIEtleSAgICAgICA9PiAkVGlja2V0SURzWzRdLAogICAgT2JqZWN0MiAgID0+ICdUaWNrZXQnLAogICAgU3RhdGUgICAgID0+ICdWYWxpZCcsCiAgICBEaXJlY3Rpb24gPT4gJ0JvdGgnLAogICAgVXNlcklEICAgID0+IDEsCik7CgokU2VsZi0+VHJ1ZSgKICAgIElzSGFzaFJlZldpdGhEYXRhKCRMaW5rTGlzdCkgJiYgJExpbmtMaXN0LT57VGlja2V0fSAmJiAkTGlua0xpc3QtPntUaWNrZXR9LT57UGFyZW50Q2hpbGR9ICYmCiAgICAgICAgJExpbmtMaXN0LT57VGlja2V0fS0+e1BhcmVudENoaWxkfS0+e1NvdXJjZX0KICAgICAgICAmJiAkTGlua0xpc3QtPntUaWNrZXR9LT57UGFyZW50Q2hpbGR9LT57U291cmNlfS0+eyAkVGlja2V0SURzWzNdIH0gPyAxIDogMCwKICAgICJMaW5rS2V5TGlzdCgpIFZhbGlkIFNlY29uZGFyeSBsaW5rIGZvdW5kIC0gVGlja2V0IElEICRUaWNrZXRJRHNbM10gYW5kICRUaWNrZXRJRHNbNF0iLAopOwoKIyBDbGVhbnVwIGlzIGRvbmUgYnkgUmVzdG9yZURhdGFiYXNlLgoKMTsK</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/Admin/GenericAgent/PrimarySecondarySelection.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKIyMgbm8gY3JpdGljIChNb2R1bGVzOjpSZXF1aXJlRXhwbGljaXRQYWNrYWdlKQp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKdXNlIHZhcnMgKHF3KCRTZWxmKSk7CgpteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICBteSAkSGVscGVyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKICAgICAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAgICAgIyBFbmFibGUgdGhlIFVuc2V0UHJpbWFyeVNlY29uZGFyeSBjb25maWcuCiAgICAgICAgJEhlbHBlck9iamVjdC0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1ByaW1hcnlTZWNvbmRhcnk6OlVuc2V0UHJpbWFyeVNlY29uZGFyeScsCiAgICAgICAgICAgIFZhbHVlID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2cgaW4uCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyT2JqZWN0LT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOyAgICAjIyBubyBjcml0aWMKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRDb25maWdPYmplY3QtPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBOYXZpZ2F0ZSB0byBBZG1pbkdlbmVyaWNBZ2VudCBzY3JlZW4gZm9yIG5ldyBqb2IgYWRkaW5nLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFkbWluR2VuZXJpY0FnZW50O1N1YmFjdGlvbj1VcGRhdGUiKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gdHlwZW9mKFwkKSA9PT0gJ2Z1bmN0aW9uJzsiICk7CgogICAgICAgICMgRXhwYW5kIGFwcHJvcHJpYXRlIHdpZGdldC4KICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJy5XaWRnZXRTaW1wbGUuQ29sbGFwc2VkOmNvbnRhaW5zKFwiVXBkYXRlL0FkZCBUaWNrZXQgQXR0cmlidXRlc1wiKSAuV2lkZ2V0QWN0aW9uLlRvZ2dsZSBhJykudHJpZ2dlcignY2xpY2snKTsiCiAgICAgICAgKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4gInJldHVybiBcJCgnLldpZGdldFNpbXBsZS5FeHBhbmRlZCcpLmxlbmd0aDsiCiAgICAgICAgKTsKCiAgICAgICAgIyBBZGQgYXBwcm9wcmlhdGUgZHluYW1pYyBmaWVsZC4KICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJyNBZGROZXdEeW5hbWljRmllbGRzJykudmFsKCdEeW5hbWljRmllbGRfUHJpbWFyeVNlY29uZGFyeScpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7IgogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gXCQoJyNTZWxlY3RlZE5ld0R5bmFtaWNGaWVsZHMgI0R5bmFtaWNGaWVsZF9QcmltYXJ5U2Vjb25kYXJ5JykubGVuZ3RoOyIKICAgICAgICApOwoKICMgVmVyaWZ5IHBvc3NpYmxlIFByaW1hcnlTZWNvbmRhcnkgdmFsdWVzICdVbnNldFByaW1hcnknIGFuZCAnVW5zZXRTZWNvbmRhcnknIGluICdVcGRhdGUvQWRkIFRpY2tldCBBdHRyaWJ1dGVzJyB3aWRnZXQuCiAjIFNlZSBidWcjMTQ3NzggKGh0dHBzOi8vYnVncy5vdHJzLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NzgpLgogICAgICAgIGZvciBteSAkT3B0aW9uIChxdyhVbnNldFByaW1hcnkgVW5zZXRTZWNvbmRhcnkpKSB7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgicmV0dXJuIFwkKCcjRHluYW1pY0ZpZWxkX1ByaW1hcnlTZWNvbmRhcnkgb3B0aW9uW3ZhbHVlPSRPcHRpb25dJykubGVuZ3RoOyIpLAogICAgICAgICAgICAgICAgIlByaW1hcnlTZWNvbmRhcnkgb3B0aW9uICckT3B0aW9uJyBpcyBhdmFpbGFibGUuIgogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBEaXNhYmxlIHRoZSBVbnNldFByaW1hcnlTZWNvbmRhcnkgY29uZmlnLgogICAgICAgICRIZWxwZXJPYmplY3QtPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIEtleSAgID0+ICdQcmltYXJ5U2Vjb25kYXJ5OjpVbnNldFByaW1hcnlTZWNvbmRhcnknLAogICAgICAgICAgICBWYWx1ZSA9PiAwLAogICAgICAgICk7CgogICAgICAgICMgUmVmcmVzaCBzY3JlZW4uCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZFJlZnJlc2goKTsKCiAgICAgICAgIyBFeHBhbmQgYXBwcm9wcmlhdGUgd2lkZ2V0LgogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICJcJCgnLldpZGdldFNpbXBsZS5Db2xsYXBzZWQ6Y29udGFpbnMoXCJVcGRhdGUvQWRkIFRpY2tldCBBdHRyaWJ1dGVzXCIpIC5XaWRnZXRBY3Rpb24uVG9nZ2xlIGEnKS50cmlnZ2VyKCdjbGljaycpOyIKICAgICAgICApOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAicmV0dXJuIFwkKCcuV2lkZ2V0U2ltcGxlLkV4cGFuZGVkJykubGVuZ3RoOyIKICAgICAgICApOwoKICAgICAgICAjIEFkZCBhcHByb3ByaWF0ZSBkeW5hbWljIGZpZWxkLgogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICJcJCgnI0FkZE5ld0R5bmFtaWNGaWVsZHMnKS52YWwoJ0R5bmFtaWNGaWVsZF9QcmltYXJ5U2Vjb25kYXJ5JykudHJpZ2dlcigncmVkcmF3LklucHV0RmllbGQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsiCiAgICAgICAgKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4gInJldHVybiBcJCgnI1NlbGVjdGVkTmV3RHluYW1pY0ZpZWxkcyAjRHluYW1pY0ZpZWxkX1ByaW1hcnlTZWNvbmRhcnknKS5sZW5ndGg7IgogICAgICAgICk7CgogICAgICAgICMgVmVyaWZ5IHBvc3NpYmxlIFByaW1hcnlTZWNvbmRhcnkgdmFsdWVzICdVbnNldFByaW1hcnknIGFuZCAnVW5zZXRTZWNvbmRhcnknIGFyZSBub3QgYXZhaWxhYmxlCiAgICAgICAgIyAgIGluICdVcGRhdGUvQWRkIFRpY2tldCBBdHRyaWJ1dGVzJyB3aWRnZXQuCiAgICAgICAgZm9yIG15ICRPcHRpb24gKHF3KFVuc2V0UHJpbWFyeSBVbnNldFNlY29uZGFyeSkpIHsKICAgICAgICAgICAgJFNlbGYtPkZhbHNlKAogICAgICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgicmV0dXJuIFwkKCcjRHluYW1pY0ZpZWxkX1ByaW1hcnlTZWNvbmRhcnkgb3B0aW9uW3ZhbHVlPSRPcHRpb25dJykubGVuZ3RoOyIpLAogICAgICAgICAgICAgICAgIlByaW1hcnlTZWNvbmRhcnkgb3B0aW9uICckT3B0aW9uJyBpcyBub3QgYXZhaWxhYmxlLiIKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9Cik7CgoxOwo=</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentTicketCreatePrimarySecondary.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKIyMgbm8gY3JpdGljIChNb2R1bGVzOjpSZXF1aXJlRXhwbGljaXRQYWNrYWdlKQp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKdXNlIHZhcnMgKHF3KCRTZWxmKSk7CgpteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgojIENyZWF0ZSBsb2NhbCBmdW5jdGlvbiBmb3Igd2FpdCBvbiBBSkFYIHVwZGF0ZS4KbXkgJFdhaXRGb3JBSkFYID0gc3ViIHsKCiAgICBUaW1lOjpIaVJlczo6c2xlZXAoMC4yKTsKCiAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgSmF2YVNjcmlwdCA9PgogICAgICAgICAgICAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAhJCgic3Bhbi5BSkFYTG9hZGVyOnZpc2libGUiKS5sZW5ndGg7JwogICAgKTsKfTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgIG15ICRIZWxwZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwogICAgICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgICAgIG15ICRDYWNoZU9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKTsKCiAgICAgICAgIyBFbmFibGUgdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkuCiAgICAgICAgJEhlbHBlck9iamVjdC0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1ByaW1hcnlTZWNvbmRhcnk6OkFkdmFuY2VkRW5hYmxlZCcsCiAgICAgICAgICAgIFZhbHVlID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBEbyBub3QgY2hlY2sgUmljaFRleHQuCiAgICAgICAgJEhlbHBlck9iamVjdC0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ0Zyb250ZW5kOjpSaWNoVGV4dCcsCiAgICAgICAgICAgIFZhbHVlID0+IDAsCiAgICAgICAgKTsKCiAgICAgICAgIyBEbyBub3QgY2hlY2sgc2VydmljZSBhbmQgdHlwZS4KICAgICAgICAkSGVscGVyT2JqZWN0LT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGlja2V0OjpTZXJ2aWNlJywKICAgICAgICAgICAgVmFsdWUgPT4gMAogICAgICAgICk7CiAgICAgICAgJEhlbHBlck9iamVjdC0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpY2tldDo6VHlwZScsCiAgICAgICAgICAgIFZhbHVlID0+IDAsCiAgICAgICAgKTsKICAgICAgICAkSGVscGVyT2JqZWN0LT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnQ2hlY2tFbWFpbEFkZHJlc3NlcycsCiAgICAgICAgICAgIFZhbHVlID0+IDAsCiAgICAgICAgKTsKCiAgICAgICAgIyBEbyBub3Qgc2VuZCBlbWFpbHMuCiAgICAgICAgJEhlbHBlck9iamVjdC0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1NlbmRtYWlsTW9kdWxlJywKICAgICAgICAgICAgVmFsdWUgPT4gJ0tlcm5lbDo6U3lzdGVtOjpFbWFpbDo6VGVzdCcsCiAgICAgICAgKTsKCiAgICAgICAgIyBBZGQgdGVzdCBjdXN0b21lciBmb3IgdGVzdGluZy4KICAgICAgICBteSAkVGVzdEN1c3RvbWVyTG9naW5QaG9uZSA9ICRIZWxwZXJPYmplY3QtPlRlc3RDdXN0b21lclVzZXJDcmVhdGUoKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbi4KICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXJPYmplY3QtPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAndXNlcnMnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7ICAgICMjIG5vIGNyaXRpYwoKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJENvbmZpZ09iamVjdC0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50VGlja2V0UGhvbmUgc2NyZWVuLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50VGlja2V0UGhvbmUiKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yalF1ZXJ5RXZlbnRCb3VuZCgKICAgICAgICAgICAgQ1NTU2VsZWN0b3IgPT4gJyNEZXN0JywKICAgICAgICAgICAgRXZlbnQgICAgICAgPT4gJ2NoYW5nZScsCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgiXCQoJyNEZXN0JykudmFsKCcyfHxSYXcnKS50cmlnZ2VyKCdyZWRyYXcuSW5wdXRGaWVsZCcpLnRyaWdnZXIoJ2NoYW5nZScpOyIpOwoKICAgICAgICAjIFdhaXQgZm9yIEFKQVggdG8gZmluaXNoLgogICAgICAgICRXYWl0Rm9yQUpBWC0+KCk7CgogICAgICAgIG15ICRQcmltYXJ5VGlja2V0U3ViamVjdCA9ICJQcmltYXJ5IFRpY2tldCI7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRnJvbUN1c3RvbWVyIiwgJ2NzcycgKS0+c2VuZF9rZXlzKCRUZXN0Q3VzdG9tZXJMb2dpblBob25lKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4KICAgICAgICAgICAgICAgICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoIiNGcm9tQ3VzdG9tZXIiKS5jbG9zZXN0KCIubW9kQ3VzdG9tZXJTZWxlY3RvciIpLmZpbmQoIi5jdXN0b21lclNlbGVjdG9yRmllbGRTdWdnZXN0SXRlbTp2aXNpYmxlIikubGVuZ3RoOycKICAgICAgICApOwogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICJ2YXIgXCRpdGVtID0galF1ZXJ5KCcjRnJvbUN1c3RvbWVyJykuY2xvc2VzdCgnLm1vZEN1c3RvbWVyU2VsZWN0b3InKSIKICAgICAgICAgICAgICAgIC4gIi5maW5kKCcuY3VzdG9tZXJTZWxlY3RvckZpZWxkU3VnZ2VzdEl0ZW06dmlzaWJsZScpLmZpcnN0KCk7IgogICAgICAgICAgICAgICAgLiAiaWYgKFwkaXRlbS5sZW5ndGgpIHsgXCRpdGVtLnRyaWdnZXIoJ2NsaWNrJyk7IH0iCiAgICAgICAgKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4KICAgICAgICAgICAgICAgICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoIiNGcm9tQ3VzdG9tZXIiKS5jbG9zZXN0KCIubW9kQ3VzdG9tZXJTZWxlY3RvciIpLmZpbmQoIi5jdXN0b21lclNlbGVjdG9yRmllbGRJbnB1dFNlbGVjdGVkQ3VzdG9tZXIiKS5sZW5ndGg7JwogICAgICAgICk7CgogICAgICAgICMgV2FpdCBmb3IgQUpBWCB0byBmaW5pc2guCiAgICAgICAgJFdhaXRGb3JBSkFYLT4oKTsKCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU3ViamVjdCIsICAnY3NzJyApLT5zZW5kX2tleXMoJFByaW1hcnlUaWNrZXRTdWJqZWN0KTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNSaWNoVGV4dCIsICdjc3MnICktPnNlbmRfa2V5cygnU2VsZW5pdW0gYm9keSB0ZXN0Jyk7CiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgIlwkKCcjRHluYW1pY0ZpZWxkX1ByaW1hcnlTZWNvbmRhcnknKS52YWwoJ1ByaW1hcnknKS50cmlnZ2VyKCdyZWRyYXcuSW5wdXRGaWVsZCcpLnRyaWdnZXIoJ2NoYW5nZScpOyIKICAgICAgICApOwoKICAgICAgICAjIFdhaXQgZm9yIEFKQVggdG8gZmluaXNoLgogICAgICAgICRXYWl0Rm9yQUpBWC0+KCk7CgogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICJcJCgnI3N1Ym1pdFJpY2hUZXh0JylbMF0uc2Nyb2xsSW50b1ZpZXcodHJ1ZSk7IiwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAgICAgInJldHVybiBcJCgnI3N1Ym1pdFJpY2hUZXh0JykubGVuZ3RoOyIKICAgICAgICAgICAgKSwKICAgICAgICAgICAgIkVsZW1lbnQgJyNzdWJtaXRSaWNoVGV4dCcgaXMgZm91bmQgaW4gdGhlIHNjcmVlbiIKICAgICAgICApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI3N1Ym1pdFJpY2hUZXh0IiwgJ2NzcycgKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICBteSAkVGlja2V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwoKICAgICAgICAjIEdldCBwcmltYXJ5IHRlc3QgcGhvbmUgdGlja2V0IGRhdGEuCiAgICAgICAgbXkgKCAkUHJpbWFyeVRpY2tldElELCAkUHJpbWFyeVRpY2tldE51bWJlciApID0gJFRpY2tldE9iamVjdC0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICBSZXN1bHQgICAgICAgICAgICA9PiAnSEFTSCcsCiAgICAgICAgICAgIExpbWl0ICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIEN1c3RvbWVyVXNlckxvZ2luID0+ICRUZXN0Q3VzdG9tZXJMb2dpblBob25lLAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkUHJpbWFyeVRpY2tldElELAogICAgICAgICAgICAiUHJpbWFyeSBUaWNrZXRJRCAtICRQcmltYXJ5VGlja2V0SUQiLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRQcmltYXJ5VGlja2V0TnVtYmVyLAogICAgICAgICAgICAiUHJpbWFyeSBUaWNrZXROdW1iZXIgLSAkUHJpbWFyeVRpY2tldE51bWJlciIsCiAgICAgICAgKTsKCiAgICAgICAgIyBBZGQgbmV3IHRlc3QgY3VzdG9tZXIgZm9yIHRlc3RpbmcuCiAgICAgICAgbXkgJFRlc3RDdXN0b21lckxvZ2luc0VtYWlsID0gJEhlbHBlck9iamVjdC0+VGVzdEN1c3RvbWVyVXNlckNyZWF0ZSgpOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50VGlja2V0RW1haWwgc2NyZWVuLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50VGlja2V0RW1haWwiKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yalF1ZXJ5RXZlbnRCb3VuZCgKICAgICAgICAgICAgQ1NTU2VsZWN0b3IgPT4gJyNEZXN0JywKICAgICAgICAgICAgRXZlbnQgICAgICAgPT4gJ2NoYW5nZScsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgc2Vjb25kYXJ5IHRlc3QgZW1haWwgdGlja2V0LgogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoIlwkKCcjRGVzdCcpLnZhbCgnMnx8UmF3JykudHJpZ2dlcigncmVkcmF3LklucHV0RmllbGQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsiKTsKCiAgICAgICAgIyBXYWl0IGZvciBBSkFYIHRvIGZpbmlzaC4KICAgICAgICAkV2FpdEZvckFKQVgtPigpOwoKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNjdXN0b21lclNlbGVjdG9ySW5wdXQiLCAnY3NzJyApLT5zZW5kX2tleXMoJFRlc3RDdXN0b21lckxvZ2luc0VtYWlsKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4KICAgICAgICAgICAgICAgICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoIiNjdXN0b21lclNlbGVjdG9ySW5wdXQiKS5jbG9zZXN0KCIubW9kQ3VzdG9tZXJTZWxlY3RvciIpLmZpbmQoIi5jdXN0b21lclNlbGVjdG9yRmllbGRTdWdnZXN0SXRlbTp2aXNpYmxlIikubGVuZ3RoOycKICAgICAgICApOwogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICJ2YXIgXCRpdGVtID0galF1ZXJ5KCcjY3VzdG9tZXJTZWxlY3RvcklucHV0JykuY2xvc2VzdCgnLm1vZEN1c3RvbWVyU2VsZWN0b3InKSIKICAgICAgICAgICAgICAgIC4gIi5maW5kKCcuY3VzdG9tZXJTZWxlY3RvckZpZWxkU3VnZ2VzdEl0ZW06dmlzaWJsZScpLmZpcnN0KCk7IgogICAgICAgICAgICAgICAgLiAiaWYgKFwkaXRlbS5sZW5ndGgpIHsgXCRpdGVtLnRyaWdnZXIoJ2NsaWNrJyk7IH0iCiAgICAgICAgKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4KICAgICAgICAgICAgICAgICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoIiNjdXN0b21lclNlbGVjdG9ySW5wdXQiKS5jbG9zZXN0KCIubW9kQ3VzdG9tZXJTZWxlY3RvciIpLmZpbmQoIi5jdXN0b21lclNlbGVjdG9yRmllbGRJbnB1dFNlbGVjdGVkQ3VzdG9tZXIiKS5sZW5ndGg7JwogICAgICAgICk7CgogICAgICAgICMgV2FpdCBmb3IgQUpBWCB0byBmaW5pc2guCiAgICAgICAgJFdhaXRGb3JBSkFYLT4oKTsKCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU3ViamVjdCIsICAnY3NzJyApLT5zZW5kX2tleXMoJ1NlY29uZGFyeSBUaWNrZXQnKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNSaWNoVGV4dCIsICdjc3MnICktPnNlbmRfa2V5cygnU2VsZW5pdW0gYm9keSB0ZXN0Jyk7CiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgIlwkKCcjRHluYW1pY0ZpZWxkX1ByaW1hcnlTZWNvbmRhcnknKS52YWwoJ1NlY29uZGFyeU9mOiRQcmltYXJ5VGlja2V0TnVtYmVyJykudHJpZ2dlcigncmVkcmF3LklucHV0RmllbGQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsiCiAgICAgICAgKTsKCiAgICAgICAgIyBXYWl0IGZvciBBSkFYIHRvIGZpbmlzaC4KICAgICAgICAkV2FpdEZvckFKQVgtPigpOwoKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJyNzdWJtaXRSaWNoVGV4dCcpWzBdLnNjcm9sbEludG9WaWV3KHRydWUpOyIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgICAgICJyZXR1cm4gXCQoJyNzdWJtaXRSaWNoVGV4dCcpLmxlbmd0aDsiCiAgICAgICAgICAgICksCiAgICAgICAgICAgICJFbGVtZW50ICcjc3VibWl0UmljaFRleHQnIGlzIGZvdW5kIGluIHRoZSBzY3JlZW4iCiAgICAgICAgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNzdWJtaXRSaWNoVGV4dCIsICdjc3MnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBnZXQgc2Vjb25kYXJ5IHRlc3QgZW1haWwgdGlja2V0IGRhdGEKICAgICAgICBteSAoICRTZWNvbmRhcnlUaWNrZXRJRCwgJFNlY29uZGFyeVRpY2tldE51bWJlciApID0gJFRpY2tldE9iamVjdC0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICBSZXN1bHQgICAgICAgICAgICA9PiAnSEFTSCcsCiAgICAgICAgICAgIExpbWl0ICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIEN1c3RvbWVyVXNlckxvZ2luID0+ICRUZXN0Q3VzdG9tZXJMb2dpbnNFbWFpbCwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFNlY29uZGFyeVRpY2tldElELAogICAgICAgICAgICAiU2Vjb25kYXJ5IFRpY2tldElEIC0gJFNlY29uZGFyeVRpY2tldElEIiwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU2Vjb25kYXJ5VGlja2V0TnVtYmVyLAogICAgICAgICAgICAiU2Vjb25kYXJ5IFRpY2tldE51bWJlciAtICRTZWNvbmRhcnlUaWNrZXROdW1iZXIiLAogICAgICAgICk7CgogICAgICAgICMgTmF2aWdhdGUgdG8gdGlja2V0IHpvb20gcGFnZSBvZiBjcmVhdGVkIHByaW1hcnkgdGVzdCB0aWNrZXQuCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRUaWNrZXRab29tO1RpY2tldElEPSRQcmltYXJ5VGlja2V0SUQiKTsKCiAgICAgICAgIyBWZXJpZnkgUHJpbWFyeS9TZWNvbmRhcnkgdGlja2V0IGxpbmsuCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkU2Vjb25kYXJ5VGlja2V0TnVtYmVyICkgPiAtMSwKICAgICAgICAgICAgIlNlY29uZGFyeSB0aWNrZXQgbnVtYmVyOiAkU2Vjb25kYXJ5VGlja2V0TnVtYmVyIC0gZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgTmF2aWdhdGUgdG8gaGlzdG9yeSB2aWV3IG9mIGNyZWF0ZWQgcHJpbWFyeSB0ZXN0IHRpY2tldC4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpY2tldEhpc3Rvcnk7VGlja2V0SUQ9JFByaW1hcnlUaWNrZXRJRCIpOwoKICAgICAgICAjIFZlcmlmeSBkeW5hbWljIGZpZWxkIHByaW1hcnkgdGlja2V0IHVwZGF0ZS4KICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICdDaGFuZ2VkIGR5bmFtaWMgZmllbGQgUHJpbWFyeVNlY29uZGFyeSBmcm9tICIiIHRvICJQcmltYXJ5Ii4nICkgPiAtMSwKICAgICAgICAgICAgIlByaW1hcnkgZHluYW1pYyBmaWVsZCB1cGRhdGUgdmFsdWUgLSBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBOYXZpZ2F0ZSB0byB0aWNrZXQgem9vbSBwYWdlIG9mIGNyZWF0ZWQgc2Vjb25kYXJ5IHRlc3QgdGlja2V0LgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50VGlja2V0Wm9vbTtUaWNrZXRJRD0kU2Vjb25kYXJ5VGlja2V0SUQiKTsKCiAgICAgICAgIyBWZXJpZnkgc2Vjb25kYXJ5LXByaW1hcnkgdGlja2V0IGxpbmsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRQcmltYXJ5VGlja2V0TnVtYmVyICkgPiAtMSwKICAgICAgICAgICAgIlByaW1hcnkgdGlja2V0IG51bWJlcjogJFByaW1hcnlUaWNrZXROdW1iZXIgLSBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBOYXZpZ2F0ZSB0byBoaXN0b3J5IHZpZXcgb2YgY3JlYXRlZCBzZWNvbmRhcnkgdGVzdCB0aWNrZXQuCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRUaWNrZXRIaXN0b3J5O1RpY2tldElEPSRTZWNvbmRhcnlUaWNrZXRJRCIpOwoKICAgICAgICAjIFZlcmlmeSBkeW5hbWljIGZpZWxkIHNlY29uZGFyeSB0aWNrZXQgdXBkYXRlLgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJ0NoYW5nZWQgZHluYW1pYyBmaWVsZCBQcmltYXJ5U2Vjb25kYXJ5IGZyb20gIiIgdG8gIlNlY29uZGFyeU9mOicgKQogICAgICAgICAgICAgICAgPiAtMSwKICAgICAgICAgICAgIlNlY29uZGFyeSBkeW5hbWljIGZpZWxkIHVwZGF0ZSB2YWx1ZSAtIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIERlbGV0ZSB0ZXN0IHRpY2tldHMuCiAgICAgICAgZm9yIG15ICRUaWNrZXRJRCAoICRQcmltYXJ5VGlja2V0SUQsICRTZWNvbmRhcnlUaWNrZXRJRCApIHsKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXREZWxldGUoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBUaWNrZXQgZGVsZXRpb24gY291bGQgZmFpbCBpZiBhcGFjaGUgc3RpbGwgd3JpdGVzIHRvIHRpY2tldCBoaXN0b3J5LiBUcnkgYWdhaW4gaW4gdGhpcyBjYXNlLgogICAgICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgICAgIHNsZWVwIDM7CiAgICAgICAgICAgICAgICAkU3VjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldERlbGV0ZSgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAiVGlja2V0IElEICRUaWNrZXRJRCAtIGRlbGV0ZWQiCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIE1ha2Ugc3VyZSB0aGUgY2FjaGUgaXMgY29ycmVjdC4KICAgICAgICAkQ2FjaGVPYmplY3QtPkNsZWFuVXAoCiAgICAgICAgICAgIFR5cGUgPT4gJ1RpY2tldCcsCiAgICAgICAgKTsKICAgIH0KKTsKCjE7Cg==</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentTicketPrimarySecondary.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKIyMgbm8gY3JpdGljIChNb2R1bGVzOjpSZXF1aXJlRXhwbGljaXRQYWNrYWdlKQp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKdXNlIHZhcnMgKHF3KCRTZWxmKSk7CgpteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICBteSAkSGVscGVyT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKICAgICAgICBteSAkVGlja2V0T2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwogICAgICAgIG15ICRVc2VyT2JqZWN0ICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwogICAgICAgIG15ICRDb25maWdPYmplY3QgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgICAgIG15ICREeW5hbWljRmllbGRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyk7CgogICAgICAgICMgRW5hYmxlIHRoZSBhZHZhbmNlZCBQcmltYXJ5U2Vjb25kYXJ5LgogICAgICAgICRIZWxwZXJPYmplY3QtPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIEtleSAgID0+ICdQcmltYXJ5U2Vjb25kYXJ5OjpBZHZhbmNlZEVuYWJsZWQnLAogICAgICAgICAgICBWYWx1ZSA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgRW5hYmxlIGNoYW5nZSB0aGUgUHJpbWFyeVNlY29uZGFyeSBzdGF0ZSBvZiBhIHRpY2tldC4KICAgICAgICAkSGVscGVyT2JqZWN0LT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnUHJpbWFyeVNlY29uZGFyeTo6VXBkYXRlUHJpbWFyeVNlY29uZGFyeScsCiAgICAgICAgICAgIFZhbHVlID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBEbyBub3QgY2hlY2sgUmljaFRleHQuCiAgICAgICAgJEhlbHBlck9iamVjdC0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ0Zyb250ZW5kOjpSaWNoVGV4dCcsCiAgICAgICAgICAgIFZhbHVlID0+IDAsCiAgICAgICAgKTsKCiAgICAgICAgIyBEbyBub3Qgc2VuZCBlbWFpbHMuCiAgICAgICAgJEhlbHBlck9iamVjdC0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1NlbmRtYWlsTW9kdWxlJywKICAgICAgICAgICAgVmFsdWUgPT4gJ0tlcm5lbDo6U3lzdGVtOjpFbWFpbDo6VGVzdCcsCiAgICAgICAgKTsKCiAgICAgICAgIyBEaXNhYmxlIFR5cGUgZmVhdHVyZS4KICAgICAgICAkSGVscGVyT2JqZWN0LT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGlja2V0OjpUeXBlJywKICAgICAgICAgICAgVmFsdWUgPT4gMCwKICAgICAgICApOwoKICAgICAgICAjIE1ha2Ugc3VyZSBJbnZvdmVkQWdlbnQgYW5kIEluZm9ybUFnZW50IGFyZSBkaXNhYmxlZCwgb3RoZXJ3aXNlIGl0IHVzZXMgcGFydCBvZiB0aGUgdmlzaWJsZQogICAgICAgICMgU2NyZWVuIG1ha2luZyB0aGUgc3VibWl0IGJ1dHRvbiBub3QgdmlzaWJsZSBhbmQgdGhlbiBub3QgY2xpY2stYWJsZS4KICAgICAgICAkSGVscGVyT2JqZWN0LT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjSW52b2x2ZWRBZ2VudCcsCiAgICAgICAgICAgIFZhbHVlID0+IDAsCiAgICAgICAgKTsKICAgICAgICAkSGVscGVyT2JqZWN0LT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjSW5mb3JtQWdlbnQnLAogICAgICAgICAgICBWYWx1ZSA9PiAwLAogICAgICAgICk7CgogICAgICAgICMgTWFrZSBzdXJlIE5vdGUgaXMgZW5hYmxlZCBpbiBBZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuLgogICAgICAgICRIZWxwZXJPYmplY3QtPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIEtleSAgID0+ICdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkjIyNOb3RlJywKICAgICAgICAgICAgVmFsdWUgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IHVzZXIuCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyT2JqZWN0LT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOyAgICAjIyBubyBjcml0aWMKCiAgICAgICAgIyBHZXQgdGVzdCB1c2VyIElELgogICAgICAgIG15ICRUZXN0VXNlcklEID0gJFVzZXJPYmplY3QtPlVzZXJMb29rdXAoCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSB0d28gdGVzdCB0aWNrZXRzLgogICAgICAgIG15IEBUaWNrZXRJRHM7CiAgICAgICAgbXkgQFRpY2tldE51bWJlcnM7CiAgICAgICAgZm9yIG15ICRUaWNrZXRDcmVhdGUgKCAxIC4uIDIgKSB7CiAgICAgICAgICAgIG15ICRUaWNrZXROdW1iZXIgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRDcmVhdGVOdW1iZXIoKTsKICAgICAgICAgICAgbXkgJFRpY2tldElEICAgICA9ICRUaWNrZXRPYmplY3QtPlRpY2tldENyZWF0ZSgKICAgICAgICAgICAgICAgIFROICAgICAgICAgICA9PiAkVGlja2V0TnVtYmVyLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgID0+ICdTZWxlbml1bSB0ZXN0IFRpY2tldCcsCiAgICAgICAgICAgICAgICBRdWV1ZSAgICAgICAgPT4gJ1JhdycsCiAgICAgICAgICAgICAgICBMb2NrICAgICAgICAgPT4gJ3VubG9jaycsCiAgICAgICAgICAgICAgICBQcmlvcml0eSAgICAgPT4gJzMgbm9ybWFsJywKICAgICAgICAgICAgICAgIFN0YXRlSUQgICAgICA9PiAxLAogICAgICAgICAgICAgICAgVHlwZUlEICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBDdXN0b21lcklEICAgPT4gJ1NlbGVuaXVtQ3VzdG9tZXInLAogICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICdTZWxlbml1bUN1c3RvbWVyQGxvY2FsaG9zdC5jb20nLAogICAgICAgICAgICAgICAgT3duZXJJRCAgICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgICJUaWNrZXQgSUQgJFRpY2tldElEIC0gY3JlYXRlZCIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBwdXNoIEBUaWNrZXRJRHMsICAgICAkVGlja2V0SUQ7CiAgICAgICAgICAgIHB1c2ggQFRpY2tldE51bWJlcnMsICRUaWNrZXROdW1iZXI7CiAgICAgICAgfQoKICAgICAgICAjIExvZ2luIGFzIHRlc3QgdXNlci4KICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJENvbmZpZ09iamVjdC0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIHRpY2tldCB6b29tIHBhZ2Ugb2YgZmlyc3QgY3JlYXRlZCB0ZXN0IHRpY2tldC4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpY2tldFpvb207VGlja2V0SUQ9JFRpY2tldElEc1swXSIpOwoKICAgICAgICAjIENsaWNrIG9uIFByaW1hcnlTZWNvbmRhcnkgYW5kIHN3aXRjaCB3aW5kb3cuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPUFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeTtUaWNrZXRJRD0kVGlja2V0SURzWzBdJyApXSIpCiAgICAgICAgICAgIC0+Y2xpY2soKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAyICk7CiAgICAgICAgbXkgJEhhbmRsZXMgPSAkU2VsZW5pdW0tPmdldF93aW5kb3dfaGFuZGxlcygpOwogICAgICAgICRTZWxlbml1bS0+c3dpdGNoX3RvX3dpbmRvdyggJEhhbmRsZXMtPlsxXSApOwoKICAgICAgICAjIFdhaXQgdW50aWwgZm9ybSBoYXMgbG9hZGVkLCBpZiBuZWNlc3NhcnkuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+CiAgICAgICAgICAgICAgICAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIjQ29tcG9zZSIpLmxlbmd0aDsnCiAgICAgICAgKTsKCiAgICAgICAgIyBDaGVjayBwYWdlLgogICAgICAgIGZvciBteSAkSUQgKAogICAgICAgICAgICBxdyhEeW5hbWljRmllbGRfUHJpbWFyeVNlY29uZGFyeSBTdWJqZWN0IFJpY2hUZXh0IEZpbGVVcGxvYWQgSXNWaXNpYmxlRm9yQ3VzdG9tZXIgc3VibWl0UmljaFRleHQpCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJElEIiwgJ2NzcycgKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgIyBTZXQgZmlyc3QgdGVzdCB0aWNrZXQgYXMgcHJpbWFyeSB0aWNrZXQuCiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgIlwkKCcjRHluYW1pY0ZpZWxkX1ByaW1hcnlTZWNvbmRhcnknKS52YWwoJ1ByaW1hcnknKS50cmlnZ2VyKCdyZWRyYXcuSW5wdXRGaWVsZCcpLnRyaWdnZXIoJ2NoYW5nZScpOyIKICAgICAgICApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1N1YmplY3QiLCAgJ2NzcycgKS0+c2VuZF9rZXlzKCdTZWxlbml1bSBQcmltYXJ5IFRpY2tldCcpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1JpY2hUZXh0IiwgJ2NzcycgKS0+c2VuZF9rZXlzKCdTZWxlbml1bSBQcmltYXJ5IFRpY2tldCcpOwoKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJyNzdWJtaXRSaWNoVGV4dCcpWzBdLnNjcm9sbEludG9WaWV3KHRydWUpOyIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNzdWJtaXRSaWNoVGV4dCIsICdjc3MnICktPmNsaWNrKCk7CgogICAgICAgICMgU3dpdGNoIHdpbmRvdyBiYWNrIHRvIGFnZW50IHRpY2tldCB6b29tIHZpZXcgb2YgdGhlIGZpcnN0IGNyZWF0ZWQgdGVzdCB0aWNrZXQuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAxICk7CiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzBdICk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PgogICAgICAgICAgICAgICAgJ3JldHVybiB0eXBlb2YoQ29yZSkgPT0gIm9iamVjdCIgJiYgdHlwZW9mKENvcmUuQXBwKSA9PSAib2JqZWN0IiAmJiBDb3JlLkFwcC5QYWdlTG9hZENvbXBsZXRlOycKICAgICAgICApOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIHRpY2tldCBoaXN0b3J5IHBhZ2Ugb2YgZmlyc3QgY3JlYXRlZCB0ZXN0IHRpY2tldC4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpY2tldEhpc3Rvcnk7VGlja2V0SUQ9JFRpY2tldElEc1swXSIpOwoKICAgICAgICAjIFdhaXQgdW50aWwgcGFnZSBoYXMgbG9hZGVkLCBpZiBuZWNlc3NhcnkuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+CiAgICAgICAgICAgICAgICAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIuV2lkZ2V0U2ltcGxlIikubGVuZ3RoOycKICAgICAgICApOwoKICAgICAgICAjIFZlcmlmeSBkeW5hbWljIGZpZWxkIHByaW1hcnkgdGlja2V0IHVwZGF0ZS4KICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICdDaGFuZ2VkIGR5bmFtaWMgZmllbGQgUHJpbWFyeVNlY29uZGFyeSBmcm9tICIiIHRvICJQcmltYXJ5Ii4nICkgPiAtMSwKICAgICAgICAgICAgIlByaW1hcnkgZHluYW1pYyBmaWVsZCB1cGRhdGUgdmFsdWUgLSBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBOYXZpZ2F0ZSB0byB0aWNrZXQgem9vbSBwYWdlIG9mIHNlY29uZCBjcmVhdGVkIHRlc3QgdGlja2V0LgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50VGlja2V0Wm9vbTtUaWNrZXRJRD0kVGlja2V0SURzWzFdIik7CgogICAgICAgICMgQ2xpY2sgb24gUHJpbWFyeVNlY29uZGFyeSBhbmQgc3dpdGNoIHdpbmRvdy4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9hW2NvbnRhaW5zKFxAaHJlZiwgXCdBY3Rpb249QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5O1RpY2tldElEPSRUaWNrZXRJRHNbMV0nICldIikKICAgICAgICAgICAgLT5jbGljaygpOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIFdpbmRvd0NvdW50ID0+IDIgKTsKICAgICAgICAkSGFuZGxlcyA9ICRTZWxlbml1bS0+Z2V0X3dpbmRvd19oYW5kbGVzKCk7CiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzFdICk7CgogICAgICAgICMgV2FpdCB1bnRpbCBmb3JtIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeS4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4gInJldHVybiB0eXBlb2YoXCQpID09PSAnZnVuY3Rpb24nICYmIFwkKCcjc3VibWl0UmljaFRleHQnKS5sZW5ndGgiCiAgICAgICAgKTsKCiAgICAgICAgc2xlZXAgMTsKICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkUmVmcmVzaCgpOwoKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJyNEeW5hbWljRmllbGRfUHJpbWFyeVNlY29uZGFyeScpLnZhbCgnU2Vjb25kYXJ5T2Y6JFRpY2tldE51bWJlcnNbMF0nKS50cmlnZ2VyKCdyZWRyYXcuSW5wdXRGaWVsZCcpLnRyaWdnZXIoJ2NoYW5nZScpOyIKICAgICAgICApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1N1YmplY3QiLCAgJ2NzcycgKS0+c2VuZF9rZXlzKCdTZWxlbml1bSBTZWNvbmRhcnkgVGlja2V0Jyk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjUmljaFRleHQiLCAnY3NzJyApLT5zZW5kX2tleXMoJ1NlbGVuaXVtIFNlY29uZGFyeSBUaWNrZXQnKTsKCiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgIlwkKCcjc3VibWl0UmljaFRleHQnKVswXS5zY3JvbGxJbnRvVmlldyh0cnVlKTsiLAogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjc3VibWl0UmljaFRleHQiLCAnY3NzJyApLT5jbGljaygpOwoKICAgICAgICAkU2VsZW5pdW0tPnN3aXRjaF90b193aW5kb3coICRIYW5kbGVzLT5bMF0gKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIFdpbmRvd0NvdW50ID0+IDEgKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+CiAgICAgICAgICAgICAgICAncmV0dXJuIHR5cGVvZihDb3JlKSA9PSAib2JqZWN0IiAmJiB0eXBlb2YoQ29yZS5BcHApID09ICJvYmplY3QiICYmIENvcmUuQXBwLlBhZ2VMb2FkQ29tcGxldGU7JwogICAgICAgICk7CgogICAgICAgICMgTmF2aWdhdGUgdG8gdGlja2V0IGhpc3RvcnkgcGFnZSBvZiBmaXJzdCBjcmVhdGVkIHRlc3QgdGlja2V0LgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50VGlja2V0SGlzdG9yeTtUaWNrZXRJRD0kVGlja2V0SURzWzFdIik7CgogICAgICAgICMgV2FpdCB1bnRpbCBwYWdlIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeS4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4KICAgICAgICAgICAgICAgICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoIi5XaWRnZXRTaW1wbGUiKS5sZW5ndGg7JwogICAgICAgICk7CgogICAgICAgICMgVmVyaWZ5IGR5bmFtaWMgZmllbGQgc2Vjb25kYXJ5IHRpY2tldCB1cGRhdGUuCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KAogICAgICAgICAgICAgICAgJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwKICAgICAgICAgICAgICAgICdDaGFuZ2VkIGR5bmFtaWMgZmllbGQgUHJpbWFyeVNlY29uZGFyeSBmcm9tICIiIHRvICJTZWNvbmRhcnlPZjonIC4gJFRpY2tldE51bWJlcnNbMF0KICAgICAgICAgICAgKSA+IC0xLAogICAgICAgICAgICAiU2Vjb25kYXJ5IGR5bmFtaWMgZmllbGQgdXBkYXRlIHZhbHVlIC0gZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgRGlzYWJsZSBOb3RlIGluIEFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSBzY3JlZW4gYW5kCiAgICAgICAgIyBjaGVjayBpZiBQcmltYXJ5U2Vjb25kYXJ5IGR5bmFtaWMgZmllbGQgaXMgc2hvd24gaW4gdGhlIHNjcmVlbiAoc2VlIGJ1ZyMxNDc4MCkuCiAgICAgICAgJEhlbHBlck9iamVjdC0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI05vdGUnLAogICAgICAgICAgICBWYWx1ZSA9PiAwLAogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeTtUaWNrZXRJRD0kVGlja2V0SURzWzFdIik7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PgogICAgICAgICAgICAgICAgJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgiI0R5bmFtaWNGaWVsZF9QcmltYXJ5U2Vjb25kYXJ5IikubGVuZ3RoOycKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgncmV0dXJuICQoIiNEeW5hbWljRmllbGRfUHJpbWFyeVNlY29uZGFyeSIpLmxlbmd0aDsnKSwKICAgICAgICAgICAgIlByaW1hcnlTZWNvbmRhcnkgZHluYW1pYyBmaWVsZCBpcyBmb3VuZCIKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSB0d28gbW9yZSB0ZXN0IHRpY2tldHMuCiAgICAgICAgZm9yIG15ICRUaWNrZXRDcmVhdGUgKCAxIC4uIDIgKSB7CiAgICAgICAgICAgIG15ICRUaWNrZXROdW1iZXIgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRDcmVhdGVOdW1iZXIoKTsKICAgICAgICAgICAgbXkgJFRpY2tldElEICAgICA9ICRUaWNrZXRPYmplY3QtPlRpY2tldENyZWF0ZSgKICAgICAgICAgICAgICAgIFROICAgICAgICAgICA9PiAkVGlja2V0TnVtYmVyLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgID0+ICdTZWxlbml1bSB0ZXN0IFRpY2tldCcsCiAgICAgICAgICAgICAgICBRdWV1ZSAgICAgICAgPT4gJ1JhdycsCiAgICAgICAgICAgICAgICBMb2NrICAgICAgICAgPT4gJ3VubG9jaycsCiAgICAgICAgICAgICAgICBQcmlvcml0eSAgICAgPT4gJzMgbm9ybWFsJywKICAgICAgICAgICAgICAgIFN0YXRlSUQgICAgICA9PiAxLAogICAgICAgICAgICAgICAgVHlwZUlEICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBDdXN0b21lcklEICAgPT4gJ1NlbGVuaXVtQ3VzdG9tZXInLAogICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICdTZWxlbml1bUN1c3RvbWVyQGxvY2FsaG9zdC5jb20nLAogICAgICAgICAgICAgICAgT3duZXJJRCAgICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgICJUaWNrZXQgSUQgJFRpY2tldElEIGlzIGNyZWF0ZWQuIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHB1c2ggQFRpY2tldElEcywgICAgICRUaWNrZXRJRDsKICAgICAgICAgICAgcHVzaCBAVGlja2V0TnVtYmVycywgJFRpY2tldE51bWJlcjsKICAgICAgICB9CgogICAgICAgICMgU2V0IFByaW1hcnkvU2Vjb25kYXJ5IHJlbGF0aW9uIGZvciB0ZXN0IFRpY2tldHMuCiAgICAgICAgbXkgQFRlc3RDYXNlID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SURzWzJdLAogICAgICAgICAgICAgICAgVmFsdWUgICAgPT4gIlByaW1hcnkiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SURzWzNdLAogICAgICAgICAgICAgICAgVmFsdWUgICAgPT4gIlNlY29uZGFyeU9mOiRUaWNrZXROdW1iZXJzWzJdIiwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICBteSAkUHJpbWFyeVNlY29uZGFyeURGTmFtZSA9ICRDb25maWdPYmplY3QtPkdldCgnUHJpbWFyeVNlY29uZGFyeTo6RHluYW1pY0ZpZWxkJykgfHwgJyc7CiAgICAgICAgbXkgJER5bmFtaWNGaWVsZCAgICAgICAgICAgPSAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGRHZXQoCiAgICAgICAgICAgIE5hbWUgPT4gJFByaW1hcnlTZWNvbmRhcnlERk5hbWUsCiAgICAgICAgKTsKICAgICAgICBteSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKICAgICAgICBteSAkU3VjY2VzczsKICAgICAgICBmb3IgbXkgJFRlc3QgKEBUZXN0Q2FzZSkgewogICAgICAgICAgICAkU3VjY2VzcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5WYWx1ZVNldCgKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkLAogICAgICAgICAgICAgICAgRmllbGRJRCAgICAgICAgICAgID0+ICREeW5hbWljRmllbGQtPntJRH0sCiAgICAgICAgICAgICAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJFRlc3QtPntUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJFRlc3QtPntWYWx1ZX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICJWYWx1ZSAnJFRlc3QtPntWYWx1ZX0nIGlzIHNldCBmb3IgVGlja2V0SUQgJFRlc3QtPntUaWNrZXRJRH0uIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgVmVyaWZ5IFByaW1hcnkgU2Vjb25kYXJ5IGR5bmFtaWMgZmllbGQgdmFsdWUgZm9yIFNlY29uZGFyeSB0aWNrZXQuCiAgICAgICAgbXkgJER5bmFtaWNGaWVsZFZhbHVlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZFZhbHVlJyk7CgogICAgICAgIG15ICRWYWx1ZSA9ICREeW5hbWljRmllbGRWYWx1ZU9iamVjdC0+VmFsdWVHZXQoCiAgICAgICAgICAgIEZpZWxkSUQgID0+ICREeW5hbWljRmllbGQtPntJRH0sCiAgICAgICAgICAgIE9iamVjdElEID0+ICRUaWNrZXRJRHNbM10sCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRWYWx1ZS0+WzBdLT57VmFsdWVUZXh0fSwKICAgICAgICAgICAgIlNlY29uZGFyeU9mOiRUaWNrZXROdW1iZXJzWzJdIiwKICAgICAgICAgICAgIlByaW1hcnkgU2Vjb25kYXJ5IGR5bmFtaWMgZmllbGQgdmFsdWUgZm9yIFNlY29uZGFyeSB0aWNrZXQiCiAgICAgICAgKTsKCiAgICAgICAgIyBWZXJpZnkgdGhlcmUgaXMgUHJpbWFyeS9TZWNvbmRhcnkgcmVsYXRpb24gYmV0d2VlbiB0d28gdGVzdCBUaWNrZXRzLgogICAgICAgIG15ICRMaW5rT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3QnKTsKICAgICAgICBteSAkTGlua0xpc3QgICA9ICRMaW5rT2JqZWN0LT5MaW5rTGlzdCgKICAgICAgICAgICAgT2JqZWN0ID0+ICdUaWNrZXQnLAogICAgICAgICAgICBLZXkgICAgPT4gJFRpY2tldElEc1syXSwKICAgICAgICAgICAgU3RhdGUgID0+ICdWYWxpZCcsCiAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIElzSGFzaFJlZldpdGhEYXRhKCRMaW5rTGlzdCksCiAgICAgICAgICAgICJQcmltYXJ5U2Vjb25kYXJ5IGxpbmsgZXhpc3RzLiIKICAgICAgICApOwoKICAgICAgICAjIEVuYWJsZSBjb25maWcgIlByaW1hcnlTZWNvbmRhcnk6OlVuc2V0UHJpbWFyeVNlY29uZGFyeSIuCiAgICAgICAgJEhlbHBlck9iamVjdC0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1ByaW1hcnlTZWNvbmRhcnk6OlVuc2V0UHJpbWFyeVNlY29uZGFyeScsCiAgICAgICAgICAgIFZhbHVlID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBOYXZpZ2F0ZSB0byBBZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkgc2NyZWVuIG9mIFByaW1hcnkgVGlja2V0LgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoCiAgICAgICAgICAgICIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnk7VGlja2V0SUQ9JFRpY2tldElEc1syXSIKICAgICAgICApOwoKICAgICAgICAjIFVuc2V0UHJpbWFyeSBzdGF0dXMgb2YgUHJpbWFyeSBUaWNrZXQuCiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgIlwkKCcjRHluYW1pY0ZpZWxkX1ByaW1hcnlTZWNvbmRhcnknKS52YWwoJ1Vuc2V0UHJpbWFyeScpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7IgogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgIlwkKCcjc3VibWl0UmljaFRleHQnKVswXS5zY3JvbGxJbnRvVmlldyh0cnVlKTsiLAogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjc3VibWl0UmljaFRleHQiLCAnY3NzJyApLT5jbGljaygpOwoKICAgICAgICAjIE1ha2Ugc3VyZSB0aGUgY2FjaGUgaXMgY29ycmVjdC4KICAgICAgICBteSAkQ2FjaGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKTsKICAgICAgICBmb3IgbXkgJENhY2hlIChxdyggRHluYW1pY0ZpZWxkVmFsdWUgTGlua09iamVjdCApKSB7CiAgICAgICAgICAgICRDYWNoZU9iamVjdC0+Q2xlYW5VcCggVHlwZSA9PiAkQ2FjaGUgKTsKICAgICAgICB9CgogICAgICAgICMgQ2hlY2sgaWYgbGluayB0byBTZWNvbmRhcnkgdGlja2V0IGlzIGRlbGV0ZWQuIFNlZSBidWcjMTQ3ODEuCiAgICAgICAgJExpbmtMaXN0ID0gJExpbmtPYmplY3QtPkxpbmtMaXN0KAogICAgICAgICAgICBPYmplY3QgPT4gJ1RpY2tldCcsCiAgICAgICAgICAgIEtleSAgICA9PiAkVGlja2V0SURzWzJdLAogICAgICAgICAgICBTdGF0ZSAgPT4gJ1ZhbGlkJywKICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgIUlzSGFzaFJlZldpdGhEYXRhKCRMaW5rTGlzdCksCiAgICAgICAgICAgICJQcmltYXJ5U2Vjb25kYXJ5IGxpbmsgZGVsZXRlZC4iCiAgICAgICAgKTsKCiAgICAgICAgIyBDaGVjayBpZiBTZWNvbmRhcnkgdmFsdWUgZm9yIFByaW1hcnkgU2Vjb25kYXJ5IGZpZWxkIGlzIGRlbGV0ZWQgZnJvbSBTZWNvbmRhcnkgdGlja2V0IGFmdGVyIFVuc2V0UHJpbWFyeS4KICAgICAgICAkVmFsdWUgPSAkRHluYW1pY0ZpZWxkVmFsdWVPYmplY3QtPlZhbHVlR2V0KAogICAgICAgICAgICBGaWVsZElEICA9PiAkRHluYW1pY0ZpZWxkLT57SUR9LAogICAgICAgICAgICBPYmplY3RJRCA9PiAkVGlja2V0SURzWzNdLAogICAgICAgICk7CgogICAgICAgICRTZWxmLT5Jc0RlZXBseSgKICAgICAgICAgICAgJFZhbHVlLAogICAgICAgICAgICBbXSwKICAgICAgICAgICAgIlByaW1hcnkgU2Vjb25kYXJ5IGR5bmFtaWMgZmllbGQgdmFsdWUgZm9yIFNlY29uZGFyeSB0aWNrZXQiCiAgICAgICAgKTsKCiAgICAgICAgIyBDaGVjayBpZiB0aGVyZSBpcyBQcmltYXJ5U2Vjb25kYXJ5IGVycm9yIGxvZyBkdXJpbmcgdGlja2V0IGNyZWF0aW9uLiBTZWUgYnVnIzE0ODk5LgogICAgICAgIG15ICRSYW5kb21JRCA9ICRIZWxwZXJPYmplY3QtPkdldFJhbmRvbUlEKCk7CgogICAgICAgICMgTmF2aWdhdGUgdG8gQWdlbnRUaWNrZXRQaG9uZSBhbmQgY3JlYXRlIHRlc3QgdGlja2V0LgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50VGlja2V0UGhvbmUiKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoIiNGcm9tQ3VzdG9tZXIiKS5sZW5ndGg7JyApOwoKICAgICAgICBteSAkVGVzdEN1c3RvbWVyID0gJ2N1c3RvbWVyJyAuICRSYW5kb21JRCAuICdAZ21haWwuY29tJzsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNGcm9tQ3VzdG9tZXIiLCAnY3NzJyApLT5zZW5kX2tleXMoJFRlc3RDdXN0b21lcik7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gISQoIi5BSkFYTG9hZGVyOnZpc2libGUiKS5sZW5ndGg7JyApOwoKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiaWYgKHR5cGVvZihqUXVlcnkpID09PSAnZnVuY3Rpb24nKSB7IgogICAgICAgICAgICAgICAgLiAiIHZhciBlID0galF1ZXJ5LkV2ZW50KCdrZXlkb3duJyk7IgogICAgICAgICAgICAgICAgLiAiIGUud2hpY2ggPSAxMzsiCiAgICAgICAgICAgICAgICAuICIgalF1ZXJ5KCcjRnJvbUN1c3RvbWVyJykudHJpZ2dlcihlKTsiCiAgICAgICAgICAgICAgICAuICJ9IgogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+CiAgICAgICAgICAgICAgICAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIjRnJvbUN1c3RvbWVyIikuY2xvc2VzdCgiLm1vZEN1c3RvbWVyU2VsZWN0b3IiKS5maW5kKCJpbnB1dFtuYW1lXj1DdXN0b21lclRpY2tldFRleHRfXSIpLmxlbmd0aDsnCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yalF1ZXJ5RXZlbnRCb3VuZCgKICAgICAgICAgICAgQ1NTU2VsZWN0b3IgPT4gJyNEZXN0JywKICAgICAgICAgICAgRXZlbnQgICAgICAgPT4gJ2NoYW5nZScsCiAgICAgICAgKTsKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJcJCgnI0Rlc3QnKS52YWwoJzJ8fFJhdycpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7Iik7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gISQoIi5BSkFYTG9hZGVyOnZpc2libGUiKS5sZW5ndGg7JyApOwoKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTdWJqZWN0IiwgICdjc3MnICktPmNsZWFyKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU3ViamVjdCIsICAnY3NzJyApLT5zZW5kX2tleXMoIlN1YmplY3QkUmFuZG9tSUQiKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNSaWNoVGV4dCIsICdjc3MnICktPmNsZWFyKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjUmljaFRleHQiLCAnY3NzJyApLT5zZW5kX2tleXMoIlRleHQkUmFuZG9tSUQiKTsKCiAgICAgICAgIyBTdWJtaXQgZm9ybS4KICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJyNzdWJtaXRSaWNoVGV4dCcpWzBdLnNjcm9sbEludG9WaWV3KHRydWUpOyIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgicmV0dXJuIFwkKCcjc3VibWl0UmljaFRleHQnKS5sZW5ndGg7IiksCiAgICAgICAgICAgICJFbGVtZW50ICcjc3VibWl0UmljaFRleHQnIGlzIGZvdW5kIGluIHNjcmVlbiIKICAgICAgICApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAnI3N1Ym1pdFJpY2hUZXh0JywgJ2NzcycgKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4KICAgICAgICAgICAgICAgICdyZXR1cm4gd2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiQWN0aW9uPUFnZW50VGlja2V0UGhvbmU7U3ViYWN0aW9uPUNyZWF0ZWQ7VGlja2V0SUQ9IikgPiAtMTsnCiAgICAgICAgKTsKCiAgICAgICAgbXkgQFRpY2tldCAgID0gc3BsaXQoICdUaWNrZXRJRD0nLCAkU2VsZW5pdW0tPmdldF9jdXJyZW50X3VybCgpICk7CiAgICAgICAgbXkgJFRpY2tldElEID0gJFRpY2tldFsxXTsKCiAgICAgICAgcHVzaCBAVGlja2V0SURzLCAkVGlja2V0SUQ7CgogICAgICAgICMgTmF2aWdhdGUgdG8gQWRtaW5Mb2cuCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWRtaW5Mb2ciKTsKCiAgICAgICAgIyBDaGVjayBpZiBQcmltYXJ5U2Vjb25kYXJ5IGVycm9yIGxvZyBpcyBjcmVhdGVkLgogICAgICAgIG15ICRNZXNzYWdlID0gIkNvdWxkIG5vdCB1cGRhdGUgZmllbGQgUHJpbWFyeVNlY29uZGFyeSBmb3IgVGlja2V0IElEICRUaWNrZXRJRCI7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoInJldHVybiBcJCgnI0xvZ0VudHJpZXMgLkVycm9yOmVxKDApJykudGV4dCgpLmluZGV4T2YoJyRNZXNzYWdlJykgPT0gLTE7IiksCiAgICAgICAgICAgICJFcnJvciBtZXNzYWdlIGlzIG5vdCBjcmVhdGVkIGZvciB1cGRhdGUgZmllbGQgUHJpbWFyeVNlY29uZGFyeSBmb3IgVGlja2V0IElEICRUaWNrZXRJRCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBEZWxldGUgY3JlYXRlZCB0ZXN0IHRpY2tldHMuCiAgICAgICAgZm9yIG15ICRUaWNrZXRJRCAoQFRpY2tldElEcykgewogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldERlbGV0ZSgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAiVGlja2V0IElEICRUaWNrZXRJRCBpcyBkZWxldGVkLiIKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgTWFrZSBzdXJlIHRoZSBjYWNoZSBpcyBjb3JyZWN0LgogICAgICAgICRDYWNoZU9iamVjdC0+Q2xlYW5VcCgKICAgICAgICAgICAgVHlwZSA9PiAnVGlja2V0JywKICAgICAgICApOwogICAgfQopOwoKMTsK</File>
        <File Permission="660" Location="scripts/test/Selenium/Agent/AgentTicketSecondarySalutation.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKIyMgbm8gY3JpdGljIChNb2R1bGVzOjpSZXF1aXJlRXhwbGljaXRQYWNrYWdlKQp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKdXNlIHZhcnMgKHF3KCRTZWxmKSk7CgpteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewogICAgICAgIG15ICRIZWxwZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICBteSAkVGlja2V0T2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwogICAgICAgIG15ICRBcnRpY2xlT2JqZWN0ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpBcnRpY2xlJyk7CiAgICAgICAgbXkgJFF1ZXVlT2JqZWN0ICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpRdWV1ZScpOwogICAgICAgIG15ICREeW5hbWljRmllbGRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyk7CiAgICAgICAgbXkgJFNhbHV0YXRpb25PYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTYWx1dGF0aW9uJyk7CiAgICAgICAgbXkgJEN1c3RvbWVyVXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDdXN0b21lclVzZXInKTsKICAgICAgICBteSAkQ29uZmlnT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgICAgICBteSAkVXNlck9iamVjdCAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAgICAgJEhlbHBlck9iamVjdC0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgS2V5ICAgPT4gJ0NoZWNrTVhSZWNvcmQnLAogICAgICAgICAgICBWYWx1ZSA9PiAwLAogICAgICAgICk7CiAgICAgICAgJEhlbHBlck9iamVjdC0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgS2V5ICAgPT4gJ0NoZWNrRW1haWxBZGRyZXNzZXMnLAogICAgICAgICAgICBWYWx1ZSA9PiAwLAogICAgICAgICk7CiAgICAgICAgJEhlbHBlck9iamVjdC0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1NlbmRtYWlsTW9kdWxlJywKICAgICAgICAgICAgVmFsdWUgPT4gJ0tlcm5lbDo6U3lzdGVtOjpFbWFpbDo6VGVzdCcsCiAgICAgICAgKTsKICAgICAgICAkSGVscGVyT2JqZWN0LT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnUHJpbWFyeVNlY29uZGFyeTo6Rm9yd2FyZFNlY29uZGFyeScsCiAgICAgICAgICAgIFZhbHVlID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFJhbmRvbUlEID0gJEhlbHBlck9iamVjdC0+R2V0UmFuZG9tSUQoKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCBzYWx1dGF0aW9uIHVzaW5nIHJpY2ggdGV4dC4KICAgICAgICBteSAkU2FsdXRhdGlvblRleHQgPSAiPHN0cm9uZz5UZXN0IEJvbGQgJHtSYW5kb21JRH0gPC9zdHJvbmc+IjsKICAgICAgICBteSAkU2FsdXRhdGlvbklEICAgPSAkU2FsdXRhdGlvbk9iamVjdC0+U2FsdXRhdGlvbkFkZCgKICAgICAgICAgICAgTmFtZSAgICAgICAgPT4gIk5ldyBTYWx1dGF0aW9uICRSYW5kb21JRCIsCiAgICAgICAgICAgIFRleHQgICAgICAgID0+ICRTYWx1dGF0aW9uVGV4dCwKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgICAgIENvbW1lbnQgICAgID0+ICdzb21lIGNvbW1lbnQnLAogICAgICAgICAgICBWYWxpZElEICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTYWx1dGF0aW9uSUQsCiAgICAgICAgICAgICJTYWx1dGF0aW9uSUQgJFNhbHV0YXRpb25JRCBpcyBjcmVhdGVkLiIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCBxdWV1ZS4KICAgICAgICBteSAkUXVldWVOYW1lID0gIlNhbHV0YXRpb24gJFJhbmRvbUlEIjsKICAgICAgICBteSAkUXVldWVJRCAgID0gJFF1ZXVlT2JqZWN0LT5RdWV1ZUFkZCgKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgID0+ICRRdWV1ZU5hbWUsCiAgICAgICAgICAgIEdyb3VwICAgICAgICAgICA9PiAnYWRtaW4nLAogICAgICAgICAgICBWYWxpZElEICAgICAgICAgPT4gMSwKICAgICAgICAgICAgR3JvdXBJRCAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFN5c3RlbUFkZHJlc3NJRCA9PiAxLAogICAgICAgICAgICBTYWx1dGF0aW9uSUQgICAgPT4gJFNhbHV0YXRpb25JRCwKICAgICAgICAgICAgU2lnbmF0dXJlSUQgICAgID0+IDEsCiAgICAgICAgICAgIENvbW1lbnQgICAgICAgICA9PiAnU29tZSBjb21tZW50JywKICAgICAgICAgICAgVXNlcklEICAgICAgICAgID0+IDEKCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFF1ZXVlSUQsCiAgICAgICAgICAgICJRdWV1ZUlEICRRdWV1ZUlEIGlzIGNyZWF0ZWQuIiwKICAgICAgICApOwoKICAgICAgICAjIEFzc2lnbiBhbnN3ZXIgdGVtcGxhdGVzIHRvIHF1ZXVlLgogICAgICAgIGZvciBteSAkVGVtcGxhdGVJRCAoIDEgLi4gMiApIHsKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkUXVldWVPYmplY3QtPlF1ZXVlU3RhbmRhcmRUZW1wbGF0ZU1lbWJlckFkZCgKICAgICAgICAgICAgICAgIFF1ZXVlSUQgICAgICAgICAgICA9PiAkUXVldWVJRCwKICAgICAgICAgICAgICAgIFN0YW5kYXJkVGVtcGxhdGVJRCA9PiAkVGVtcGxhdGVJRCwKICAgICAgICAgICAgICAgIEFjdGl2ZSAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAiVGVtcGxhdGVJRCAnJFRlbXBsYXRlSUQnIGlzIGFzc2lnbmVkIHRvIFF1ZXVlSUQgJyRRdWV1ZUlEJy4iLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJFRlc3RDdXN0b21lclVzZXJMb2dpbiA9ICRIZWxwZXJPYmplY3QtPlRlc3RDdXN0b21lclVzZXJDcmVhdGUoKTsKICAgICAgICBteSAlVGVzdEN1c3RvbWVyVXNlciAgICAgID0gJEN1c3RvbWVyVXNlck9iamVjdC0+Q3VzdG9tZXJVc2VyRGF0YUdldCgKICAgICAgICAgICAgVXNlciA9PiAkVGVzdEN1c3RvbWVyVXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIHByaW1hcnkgdGlja2V0LgogICAgICAgIG15ICRQcmltYXJ5VGlja2V0TnVtYmVyID0gJFRpY2tldE9iamVjdC0+VGlja2V0Q3JlYXRlTnVtYmVyKCk7CiAgICAgICAgbXkgJFByaW1hcnlUaWNrZXRJRCAgICAgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRDcmVhdGUoCiAgICAgICAgICAgIFROICAgICAgICAgICA9PiAkUHJpbWFyeVRpY2tldE51bWJlciwKICAgICAgICAgICAgVGl0bGUgICAgICAgID0+ICJQcmltYXJ5ICRSYW5kb21JRCIsCiAgICAgICAgICAgIFF1ZXVlSUQgICAgICA9PiAkUXVldWVJRCwKICAgICAgICAgICAgTG9jayAgICAgICAgID0+ICd1bmxvY2snLAogICAgICAgICAgICBQcmlvcml0eSAgICAgPT4gJzMgbm9ybWFsJywKICAgICAgICAgICAgU3RhdGUgICAgICAgID0+ICduZXcnLAogICAgICAgICAgICBDdXN0b21lck5vICAgPT4gJFRlc3RDdXN0b21lclVzZXJMb2dpbiwKICAgICAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICRUZXN0Q3VzdG9tZXJVc2VyTG9naW4sCiAgICAgICAgICAgIE93bmVySUQgICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkUHJpbWFyeVRpY2tldElELAogICAgICAgICAgICAiVGlja2V0SUQgJFByaW1hcnlUaWNrZXRJRCBpcyBjcmVhdGVkIChwcmltYXJ5KS4iLAogICAgICAgICk7CgogICAgICAgIG15ICRBcnRpY2xlSUQgPSAkQXJ0aWNsZU9iamVjdC0+QmFja2VuZEZvckNoYW5uZWwoIENoYW5uZWxOYW1lID0+ICdQaG9uZScgKS0+QXJ0aWNsZUNyZWF0ZSgKICAgICAgICAgICAgVGlja2V0SUQgICAgICAgICAgICAgPT4gJFByaW1hcnlUaWNrZXRJRCwKICAgICAgICAgICAgSXNWaXNpYmxlRm9yQ3VzdG9tZXIgPT4gMSwKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgICAgICAgPT4gJ2FnZW50JywKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgICAgICAgPT4gJ1ByaW1hcnkgQXJ0aWNsZScsCiAgICAgICAgICAgIEJvZHkgICAgICAgICAgICAgICAgID0+ICdVbml0IHRlc3QgUHJpbWFyeVRpY2tldCcsCiAgICAgICAgICAgIENvbnRlbnRUeXBlICAgICAgICAgID0+ICd0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTE1JywKICAgICAgICAgICAgSGlzdG9yeVR5cGUgICAgICAgICAgPT4gJ1Bob25lQ2FsbEN1c3RvbWVyJywKICAgICAgICAgICAgSGlzdG9yeUNvbW1lbnQgICAgICAgPT4gJ1VuaXQgdGVzdCBhcnRpY2xlJywKICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQXJ0aWNsZUlELAogICAgICAgICAgICAiQXJ0aWNsZUlEICRBcnRpY2xlSUQgaXMgY3JlYXRlZC4iLAogICAgICAgICk7CgogICAgICAgICMgR2V0IFByaW1hcnkvU2Vjb25kYXJ5IGR5bmFtaWMgZmllbGQgZGF0YS4KICAgICAgICBteSAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCAgICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1ByaW1hcnlTZWNvbmRhcnk6OkR5bmFtaWNGaWVsZCcpOwogICAgICAgIG15ICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkRGF0YSA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZEdldCgKICAgICAgICAgICAgTmFtZSA9PiAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCwKICAgICAgICApOwoKICAgICAgICBteSAkRHluYW1pY0ZpZWxkID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkR2V0KAogICAgICAgICAgICBJRCA9PiAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZERhdGEtPntJRH0sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7CgogICAgICAgICMgU2V0IHRlc3QgdGlja2V0IGFzIHByaW1hcnkgdGlja2V0LgogICAgICAgIG15ICRTdWNjZXNzID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlZhbHVlU2V0KAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZCwKICAgICAgICAgICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRQcmltYXJ5VGlja2V0SUQsCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnUHJpbWFyeScsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiVGlja2V0SUQgJFByaW1hcnlUaWNrZXRJRCwgRHluYW1pY0ZpZWxkICckUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCcgaXMgdXBkYXRlZCBhcyBQcmltYXJ5VGlja2V0LiIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgc2Vjb25kYXJ5IHRpY2tldC4KICAgICAgICBteSAkU2Vjb25kYXJ5VGlja2V0SUQgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRDcmVhdGUoCiAgICAgICAgICAgIFRpdGxlICAgICAgICA9PiAiU2Vjb25kYXJ5ICRSYW5kb21JRCIsCiAgICAgICAgICAgIFF1ZXVlSUQgICAgICA9PiAkUXVldWVJRCwKICAgICAgICAgICAgTG9jayAgICAgICAgID0+ICd1bmxvY2snLAogICAgICAgICAgICBQcmlvcml0eSAgICAgPT4gJzMgbm9ybWFsJywKICAgICAgICAgICAgU3RhdGUgICAgICAgID0+ICduZXcnLAogICAgICAgICAgICBDdXN0b21lcklEICAgPT4gJFRlc3RDdXN0b21lclVzZXJMb2dpbiwKICAgICAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICRUZXN0Q3VzdG9tZXJVc2VyTG9naW4sCiAgICAgICAgICAgIE93bmVySUQgICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU2Vjb25kYXJ5VGlja2V0SUQsCiAgICAgICAgICAgICJUaWNrZXRJRCAkU2Vjb25kYXJ5VGlja2V0SUQgaXMgY3JlYXRlZCAoc2Vjb25kYXJ5KS4iLAogICAgICAgICk7CgogICAgICAgICMgU2V0IHRlc3QgdGlja2V0IHRvIHNlY29uZGFyeS4KICAgICAgICAkU3VjY2VzcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5WYWx1ZVNldCgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGQsCiAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkU2Vjb25kYXJ5VGlja2V0SUQsCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAiU2Vjb25kYXJ5T2Y6JFByaW1hcnlUaWNrZXROdW1iZXIiLAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIlRpY2tldElEICRTZWNvbmRhcnlUaWNrZXRJRCwgRHluYW1pY0ZpZWxkICckUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCcgaXMgdXBkYXRlZCBhcyBTZWNvbmRhcnlUaWNrZXQuIiwKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IHVzZXIuCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyT2JqZWN0LT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJyBdLAogICAgICAgICk7CgogICAgICAgICMgR2V0IHRlc3QgdXNlciBJRC4KICAgICAgICBteSAkVGVzdFVzZXJJRCA9ICRVc2VyT2JqZWN0LT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBMb2dpbiBhcyB0ZXN0IHVzZXIuCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRDb25maWdPYmplY3QtPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBTZW5kIGFydGljbGUgdmlhIGJhY2tlbmQgdG8gYXZvaWQgVUkgZGVwZW5kZW5jaWVzLgogICAgICAgIG15ICRFbWFpbEJhY2tlbmRPYmplY3QgPSAkQXJ0aWNsZU9iamVjdC0+QmFja2VuZEZvckNoYW5uZWwoIENoYW5uZWxOYW1lID0+ICdFbWFpbCcgKTsKICAgICAgICBteSAkU2VudEFydGljbGVJRCAgICAgID0gJEVtYWlsQmFja2VuZE9iamVjdC0+QXJ0aWNsZVNlbmQoCiAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgICAgID0+ICRQcmltYXJ5VGlja2V0SUQsCiAgICAgICAgICAgIFNlbmRlclR5cGUgICAgICAgICAgID0+ICdhZ2VudCcsCiAgICAgICAgICAgIElzVmlzaWJsZUZvckN1c3RvbWVyID0+IDEsCiAgICAgICAgICAgIEZyb20gICAgICAgICAgICAgICAgID0+ICdTb21lIEFnZW50IDxhZ2VudEBleGFtcGxlLmNvbT4nLAogICAgICAgICAgICBUbyAgICAgICAgICAgICAgICAgICA9PiAkVGVzdEN1c3RvbWVyVXNlcntVc2VyRW1haWx9LAogICAgICAgICAgICBTdWJqZWN0ICAgICAgICAgICAgICA9PiAnUHJpbWFyeSBBcnRpY2xlJywKICAgICAgICAgICAgQm9keSAgICAgICAgICAgICAgICAgPT4gJFNhbHV0YXRpb25UZXh0LAogICAgICAgICAgICBDaGFyc2V0ICAgICAgICAgICAgICA9PiAndXRmLTgnLAogICAgICAgICAgICBNaW1lVHlwZSAgICAgICAgICAgICA9PiAndGV4dC9odG1sJywKICAgICAgICAgICAgTG9vcCAgICAgICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgSGlzdG9yeVR5cGUgICAgICAgICAgPT4gJ1NlbmRBbnN3ZXInLAogICAgICAgICAgICBIaXN0b3J5Q29tbWVudCAgICAgICA9PiAnVW5pdCB0ZXN0IHNlbmQgYW5zd2VyJywKICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU2VudEFydGljbGVJRCwKICAgICAgICAgICAgIlByaW1hcnkgZW1haWwgYXJ0aWNsZSBzZW50IChBcnRpY2xlSUQgJFNlbnRBcnRpY2xlSUQpLiIsCiAgICAgICAgKTsKCiAgICAgICAgIyBGb3JjZSBlbWFpbCBxdWV1ZSBoYW5kbGluZyBmb3IgdGhpcyBhcnRpY2xlLgogICAgICAgIG15ICRNYWlsUXVldWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbFF1ZXVlJyk7CiAgICAgICAgaWYgKCBteSAkSXRlbSA9ICRNYWlsUXVldWVPYmplY3QtPkdldCggQXJ0aWNsZUlEID0+ICRTZW50QXJ0aWNsZUlEICkgKSB7CiAgICAgICAgICAgICRNYWlsUXVldWVPYmplY3QtPlNlbmQoICV7JEl0ZW19ICk7CiAgICAgICAgfQoKICAgICAgICBteSBAU2Vjb25kYXJ5QXJ0aWNsZXMgPSAkQXJ0aWNsZU9iamVjdC0+QXJ0aWNsZUxpc3QoCiAgICAgICAgICAgIFRpY2tldElEID0+ICRTZWNvbmRhcnlUaWNrZXRJRCwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBzY2FsYXIgQFNlY29uZGFyeUFydGljbGVzLAogICAgICAgICAgICAiU2Vjb25kYXJ5IHRpY2tldCBoYXMgYXJ0aWNsZXMuIiwKICAgICAgICApOwoKICAgICAgICBteSAkU2Vjb25kYXJ5QXJ0aWNsZUlEICAgICA9ICRTZWNvbmRhcnlBcnRpY2xlc1stMV0tPntBcnRpY2xlSUR9OwogICAgICAgIG15ICRTZWNvbmRhcnlCYWNrZW5kT2JqZWN0ID0gJEFydGljbGVPYmplY3QtPkJhY2tlbmRGb3JBcnRpY2xlKAogICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFNlY29uZGFyeVRpY2tldElELAogICAgICAgICAgICBBcnRpY2xlSUQgPT4gJFNlY29uZGFyeUFydGljbGVJRCwKICAgICAgICApOwogICAgICAgIG15ICVTZWNvbmRhcnlBcnRpY2xlID0gJFNlY29uZGFyeUJhY2tlbmRPYmplY3QtPkFydGljbGVHZXQoCiAgICAgICAgICAgIFRpY2tldElEICA9PiAkU2Vjb25kYXJ5VGlja2V0SUQsCiAgICAgICAgICAgIEFydGljbGVJRCA9PiAkU2Vjb25kYXJ5QXJ0aWNsZUlELAogICAgICAgICk7CgogICAgICAgIG15ICRTZWNvbmRhcnlIVE1MOwogICAgICAgIG15ICVBdHRhY2htZW50SW5kZXggPSAkU2Vjb25kYXJ5QmFja2VuZE9iamVjdC0+QXJ0aWNsZUF0dGFjaG1lbnRJbmRleCgKICAgICAgICAgICAgQXJ0aWNsZUlEID0+ICRTZWNvbmRhcnlBcnRpY2xlSUQsCiAgICAgICAgKTsKICAgICAgICBGSUxFSUQ6CiAgICAgICAgZm9yIG15ICRGaWxlSUQgKCBzb3J0IGtleXMgJUF0dGFjaG1lbnRJbmRleCApIHsKICAgICAgICAgICAgbmV4dCBGSUxFSUQgaWYgISRGaWxlSUQ7CiAgICAgICAgICAgIG5leHQgRklMRUlEIGlmICRBdHRhY2htZW50SW5kZXh7JEZpbGVJRH0tPntDb250ZW50VHlwZX0gIX4gbXt0ZXh0L2h0bWx9aTsKICAgICAgICAgICAgbXkgJUF0dGFjaG1lbnQgPSAkU2Vjb25kYXJ5QmFja2VuZE9iamVjdC0+QXJ0aWNsZUF0dGFjaG1lbnQoCiAgICAgICAgICAgICAgICBBcnRpY2xlSUQgPT4gJFNlY29uZGFyeUFydGljbGVJRCwKICAgICAgICAgICAgICAgIEZpbGVJRCAgICA9PiAkRmlsZUlELAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2Vjb25kYXJ5SFRNTCA9ICRBdHRhY2htZW50e0NvbnRlbnR9OwogICAgICAgICAgICBsYXN0IEZJTEVJRDsKICAgICAgICB9CgogICAgICAgIG15ICRDb250ZW50VG9DaGVjayA9IGRlZmluZWQgJFNlY29uZGFyeUhUTUwgJiYgbGVuZ3RoICRTZWNvbmRhcnlIVE1MCiAgICAgICAgICAgID8gJFNlY29uZGFyeUhUTUwKICAgICAgICAgICAgOiAoICRTZWNvbmRhcnlBcnRpY2xle0JvZHl9IHx8ICcnICk7CgogICAgICAgICMgQ2hlY2sgaWYgc2Vjb25kYXJ5IHRpY2tldCBhcnRpY2xlIGhhcyBzYWx1dGF0aW9uIGluIHJpY2ggdGV4dCBmb3JtYXQuIFNlZSBidWcjMTQ5ODMuCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkQ29udGVudFRvQ2hlY2ssICRTYWx1dGF0aW9uVGV4dCApID4gLTEsCiAgICAgICAgICAgICJTZWNvbmRhcnkgYXJ0aWNsZSBjb250YWlucyByaWNoIHRleHQgJyRTYWx1dGF0aW9uVGV4dCcuICIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDbGVhbnVwLgogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIERlbGV0ZSB0ZXN0IGNyZWF0ZWQgdGlja2V0cy4KICAgICAgICBmb3IgbXkgJFRpY2tldElEICggJFByaW1hcnlUaWNrZXRJRCwgJFNlY29uZGFyeVRpY2tldElEICkgewogICAgICAgICAgICAkU3VjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldERlbGV0ZSgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIFRpY2tldCBkZWxldGlvbiBjb3VsZCBmYWlsIGlmIGFwYWNoZSBzdGlsbCB3cml0ZXMgdG8gdGlja2V0IGhpc3RvcnkuIFRyeSBhZ2FpbiBpbiB0aGlzIGNhc2UuCiAgICAgICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICAgICAgc2xlZXAgMzsKICAgICAgICAgICAgICAgICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0RGVsZXRlKAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgIlRpY2tldElEICRUaWNrZXRJRCBpcyBkZWxldGVkLiIKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgU1FMICA9PiAiREVMRVRFIEZST00gcXVldWVfc3RhbmRhcmRfdGVtcGxhdGUgV0hFUkUgcXVldWVfaWQgPSA/IiwKICAgICAgICAgICAgQmluZCA9PiBbIFwkUXVldWVJRCwgXSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIlN0YW5kYXJkX3RlbXBsYXRlX3F1ZXVlIHJlbGF0aW9uIGZvciBRdWV1ZUlEICRRdWV1ZUlEIGlzIGRlbGV0ZWQuIgogICAgICAgICk7CgogICAgICAgICMgRGVsZXRlIHF1ZXVlcy4KICAgICAgICAkU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgICAgIFNRTCAgPT4gIkRFTEVURSBGUk9NIHF1ZXVlIFdIRVJFIGlkID0gPyIsCiAgICAgICAgICAgIEJpbmQgPT4gWyBcJFF1ZXVlSUQsIF0sCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICJRdWV1ZUlEICRRdWV1ZUlEIGlzIGRlbGV0ZWQuIiwKICAgICAgICApOwoKICAgICAgICAjIERlbGV0ZSBzYWx1dGF0aW9uLgogICAgICAgICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgU1FMICA9PiAiREVMRVRFIEZST00gc2FsdXRhdGlvbiBXSEVSRSBpZCA9ID8iLAogICAgICAgICAgICBCaW5kID0+IFsgXCRTYWx1dGF0aW9uSUQsIF0sCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICJTYWx1dGF0aW9uSUQgJFNhbHV0YXRpb25JRCBpcyBkZWxldGVkLiIsCiAgICAgICAgKTsKCiAgICB9Cik7CgoxOwo=</File>
        <File Permission="660" Location="scripts/test/Selenium/Output/TicketBulk/PrimarySecondary.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKIyMgbm8gY3JpdGljIChNb2R1bGVzOjpSZXF1aXJlRXhwbGljaXRQYWNrYWdlKQp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKdXNlIHZhcnMgKHF3KCRTZWxmKSk7CgpteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICBteSAkSGVscGVyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKICAgICAgICBteSAkVGlja2V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwogICAgICAgIG15ICRVc2VyT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwogICAgICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgICAgIG15ICRDYWNoZU9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKTsKCiAgICAgICAgIyBFbmFibGUgdGhlIGFkdmFuY2VkIFByaW1hcnlTZWNvbmRhcnkuCiAgICAgICAgJEhlbHBlck9iamVjdC0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1ByaW1hcnlTZWNvbmRhcnk6OkFkdmFuY2VkRW5hYmxlZCcsCiAgICAgICAgICAgIFZhbHVlID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBFbmFibGUgY2hhbmdlIHRoZSBQcmltYXJ5U2Vjb25kYXJ5IHN0YXRlIG9mIGEgdGlja2V0LgogICAgICAgICRIZWxwZXJPYmplY3QtPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIEtleSAgID0+ICdQcmltYXJ5U2Vjb25kYXJ5OjpVcGRhdGVQcmltYXJ5U2Vjb25kYXJ5JywKICAgICAgICAgICAgVmFsdWUgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIERvIG5vdCBzZW5kIGVtYWlscy4KICAgICAgICAkSGVscGVyT2JqZWN0LT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnU2VuZG1haWxNb2R1bGUnLAogICAgICAgICAgICBWYWx1ZSA9PiAnS2VybmVsOjpTeXN0ZW06OkVtYWlsOjpUZXN0JywKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IHVzZXIuCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyT2JqZWN0LT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOyAgICAjIyBubyBjcml0aWMKCiAgICAgICAgIyBHZXQgdGVzdCB1c2VyIElELgogICAgICAgIG15ICRUZXN0VXNlcklEID0gJFVzZXJPYmplY3QtPlVzZXJMb29rdXAoCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSB0aHJlZSB0ZXN0IHRpY2tldHMuCiAgICAgICAgbXkgQFRpY2tldElEczsKICAgICAgICBteSBAVGlja2V0TnVtYmVyczsKICAgICAgICBteSAkVGlja2V0VGl0bGUgPSAnUHJpbWFyeVNlY29uZGFyeSAnIC4gJEhlbHBlck9iamVjdC0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBmb3IgbXkgJFRpY2tldENyZWF0ZSAoIDEgLi4gMyApIHsKICAgICAgICAgICAgbXkgJFRpY2tldE51bWJlciA9ICRUaWNrZXRPYmplY3QtPlRpY2tldENyZWF0ZU51bWJlcigpOwogICAgICAgICAgICBteSAkVGlja2V0SUQgICAgID0gJFRpY2tldE9iamVjdC0+VGlja2V0Q3JlYXRlKAogICAgICAgICAgICAgICAgVE4gICAgICAgICAgID0+ICRUaWNrZXROdW1iZXIsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgPT4gJFRpY2tldFRpdGxlLAogICAgICAgICAgICAgICAgUXVldWUgICAgICAgID0+ICdSYXcnLAogICAgICAgICAgICAgICAgTG9jayAgICAgICAgID0+ICd1bmxvY2snLAogICAgICAgICAgICAgICAgUHJpb3JpdHkgICAgID0+ICczIG5vcm1hbCcsCiAgICAgICAgICAgICAgICBTdGF0ZUlEICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFR5cGVJRCAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQ3VzdG9tZXJJRCAgID0+ICdTZWxlbml1bUN1c3RvbWVyJywKICAgICAgICAgICAgICAgIEN1c3RvbWVyVXNlciA9PiAnY3VzdG9tZXJAZXhhbXBsZS5jb20nLAogICAgICAgICAgICAgICAgT3duZXJJRCAgICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgICJUaWNrZXQgSUQgJFRpY2tldElEIC0gY3JlYXRlZCIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBwdXNoIEBUaWNrZXRJRHMsICAgICAkVGlja2V0SUQ7CiAgICAgICAgICAgIHB1c2ggQFRpY2tldE51bWJlcnMsICRUaWNrZXROdW1iZXI7CiAgICAgICAgfQoKICAgICAgICAjIExvZ2luIGFzIHRlc3QgdXNlci4KICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJENvbmZpZ09iamVjdC0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50VGlja2V0U2VhcmNoLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50VGlja2V0U2VhcmNoIik7CgogICAgICAgICMgV2FpdCB1bnRpbCBmb3JtIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeS4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gInJldHVybiB0eXBlb2YoXCQpID09PSAnZnVuY3Rpb24nICYmIFwkKCcjQXR0cmlidXRlJykubGVuZ3RoOyIgKTsKCiAgICAgICAgIyBTZWFyY2ggdGVzdCBjcmVhdGVkIHRpY2tldHMgYnkgdGl0bGUuCiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgiXCQoJyNBdHRyaWJ1dGUnKS52YWwoJ1RpdGxlJykudHJpZ2dlcigncmVkcmF3LklucHV0RmllbGQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsiKTsKCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJUaXRsZSIsICduYW1lJyApLT5zZW5kX2tleXMoJFRpY2tldFRpdGxlKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEBpZD0nU2VhcmNoRm9ybVN1Ym1pdCddW1xAdmFsdWU9J1NlYXJjaCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gdHlwZW9mKFwkKSA9PT0gJ2Z1bmN0aW9uJyAmJiBcJCgnLkNoZWNrYm94W3ZhbHVlPSRUaWNrZXRJRHNbMF1dJykubGVuZ3RoOyIKICAgICAgICApOwoKICAgICAgICAjIFNlbGVjdCBmaXJzdCB0ZXN0IGNyZWF0ZWQgdGlja2V0LgogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoIlwkKCcuQ2hlY2tib3hbdmFsdWU9JFRpY2tldElEc1swXV0nKS5jbGljaygpOyIpOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAicmV0dXJuIHR5cGVvZihcJCkgPT09ICdmdW5jdGlvbicgJiYgXCQoJy5DaGVja2JveFt2YWx1ZT0kVGlja2V0SURzWzBdXTpjaGVja2VkJykubGVuZ3RoOyIKICAgICAgICApOwoKICAgICAgICAjIENsaWNrIG9uIGJ1bGsgYW5kIHN3aXRjaCBzY3JlZW4uCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJCdWxrIiwgJ2xpbmtfdGV4dCcgKS0+Y2xpY2soKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAyICk7CiAgICAgICAgbXkgJEhhbmRsZXMgPSAkU2VsZW5pdW0tPmdldF93aW5kb3dfaGFuZGxlcygpOwogICAgICAgICRTZWxlbml1bS0+c3dpdGNoX3RvX3dpbmRvdyggJEhhbmRsZXMtPlsxXSApOwoKICAgICAgICAjIFdhaXQgdW50aWwgcG9wdXAgaXMgY29tcGxldGVseSBsb2FkZWQuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+CiAgICAgICAgICAgICAgICAncmV0dXJuIHR5cGVvZihDb3JlKSA9PSAib2JqZWN0IiAmJiB0eXBlb2YoQ29yZS5BcHApID09ICJvYmplY3QiICYmIENvcmUuQXBwLlBhZ2VMb2FkQ29tcGxldGU7JywKICAgICAgICApOwoKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJyNzdWJtaXRSaWNoVGV4dCcpWzBdLnNjcm9sbEludG9WaWV3KHRydWUpOyIsCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+CiAgICAgICAgICAgICAgICAicmV0dXJuIHR5cGVvZihcJCkgPT09ICdmdW5jdGlvbicgJiYgXCQoJyNEeW5hbWljRmllbGRfUHJpbWFyeVNlY29uZGFyeScpLmxlbmd0aCAmJiBcJCgnI3N1Ym1pdFJpY2hUZXh0JykubGVuZ3RoOyIKICAgICAgICApOwoKICAgICAgICAjIFNldCB0ZXN0IHRpY2tldCBhcyBwcmltYXJ5IHRpY2tldC4KICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJyNEeW5hbWljRmllbGRfUHJpbWFyeVNlY29uZGFyeScpLnZhbCgnUHJpbWFyeScpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7IgogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjc3VibWl0UmljaFRleHQiLCAnY3NzJyApLT5jbGljaygpOwoKICAgICAgICAkU2VsZW5pdW0tPnN3aXRjaF90b193aW5kb3coICRIYW5kbGVzLT5bMF0gKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIFdpbmRvd0NvdW50ID0+IDEgKTsKCiAgICAgICAgIyBXYWl0IHVudGlsIHBvcHVwIGlzIGNvbXBsZXRlbHkgbG9hZGVkLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRSZWZyZXNoKCk7CgogICAgICAgICMgU2VsZWN0IHNlY29uZCBhbmQgdGhpcmQgdGVzdCBjcmVhdGVkIHRpY2tldC4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4gInJldHVybiB0eXBlb2YoXCQpID09PSAnZnVuY3Rpb24nICYmIFwkKCcuQ2hlY2tib3hbdmFsdWU9JFRpY2tldElEc1sxXV0nKS5sZW5ndGg7IgogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgiXCQoJy5DaGVja2JveFt2YWx1ZT0kVGlja2V0SURzWzFdXScpLmNsaWNrKCk7Iik7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gdHlwZW9mKFwkKSA9PT0gJ2Z1bmN0aW9uJyAmJiBcJCgnaW5wdXRbdmFsdWU9JFRpY2tldElEc1sxXV06Y2hlY2tlZCcpLmxlbmd0aDsiCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gdHlwZW9mKFwkKSA9PT0gJ2Z1bmN0aW9uJyAmJiBcJCgnLkNoZWNrYm94W3ZhbHVlPSRUaWNrZXRJRHNbMl1dJykubGVuZ3RoOyIKICAgICAgICApOwogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoIlwkKCcuQ2hlY2tib3hbdmFsdWU9JFRpY2tldElEc1syXV0nKS5jbGljaygpOyIpOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAicmV0dXJuIHR5cGVvZihcJCkgPT09ICdmdW5jdGlvbicgJiYgXCQoJ2lucHV0W3ZhbHVlPSRUaWNrZXRJRHNbMl1dOmNoZWNrZWQnKS5sZW5ndGg7IgogICAgICAgICk7CgogICAgICAgICMgQ2xpY2sgb24gYnVsayBhbmQgc3dpdGNoIHNjcmVlbi4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIkJ1bGsiLCAnbGlua190ZXh0JyApLT5jbGljaygpOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIFdpbmRvd0NvdW50ID0+IDIgKTsKICAgICAgICAkSGFuZGxlcyA9ICRTZWxlbml1bS0+Z2V0X3dpbmRvd19oYW5kbGVzKCk7CiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzFdICk7CgogICAgICAgICMgV2FpdCB1bnRpbCBwb3B1cCBpcyBjb21wbGV0ZWx5IGxvYWRlZC4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4KICAgICAgICAgICAgICAgICdyZXR1cm4gdHlwZW9mKENvcmUpID09ICJvYmplY3QiICYmIHR5cGVvZihDb3JlLkFwcCkgPT0gIm9iamVjdCIgJiYgQ29yZS5BcHAuUGFnZUxvYWRDb21wbGV0ZTsnLAogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PgogICAgICAgICAgICAgICAgInJldHVybiB0eXBlb2YoXCQpID09PSAnZnVuY3Rpb24nICYmIFwkKCcjRHluYW1pY0ZpZWxkX1ByaW1hcnlTZWNvbmRhcnknKS5sZW5ndGggJiYgXCQoJyNzdWJtaXRSaWNoVGV4dCcpLmxlbmd0aDsiCiAgICAgICAgKTsKCiAgICAgICAgIyBTZXQgdGVzdCB0aWNrZXRzIGFzIHNlY29uZGFyeSB0aWNrZXRzLgogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICJcJCgnI0R5bmFtaWNGaWVsZF9QcmltYXJ5U2Vjb25kYXJ5JykudmFsKCdTZWNvbmRhcnlPZjokVGlja2V0TnVtYmVyc1swXScpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7IgogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI3N1Ym1pdFJpY2hUZXh0IiwgJ2NzcycgKS0+Y2xpY2soKTsKCiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzBdICk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAxICk7CgogICAgICAgICMgTmF2aWdhdGUgdG8gcHJpbWFyeSB0aWNrZXQgem9vbSB2aWV3LgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50VGlja2V0Wm9vbTtUaWNrZXRJRD0kVGlja2V0SURzWzBdIik7CgogICAgICAgICMgVmVyaWZ5IFByaW1hcnkvU2Vjb25kYXJ5IHRpY2tldCBsaW5rLgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJFRpY2tldE51bWJlcnNbMV0gKSA+IC0xLAogICAgICAgICAgICAiU2Vjb25kYXJ5IHRpY2tldCBudW1iZXI6ICRUaWNrZXROdW1iZXJzWzFdIC0gZm91bmQiLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkVGlja2V0TnVtYmVyc1syXSApID4gLTEsCiAgICAgICAgICAgICJTZWNvbmRhcnkgdGlja2V0IG51bWJlcjogJFRpY2tldE51bWJlcnNbMl0gLSBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBEZWxldGUgY3JlYXRlZCB0ZXN0IHRpY2tldHMuCiAgICAgICAgZm9yIG15ICRUaWNrZXRJRCAoQFRpY2tldElEcykgewogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldERlbGV0ZSgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAiVGlja2V0IElEICRUaWNrZXRJRCAtIGRlbGV0ZWQiCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIE1ha2Ugc3VyZSB0aGUgY2FjaGUgaXMgY29ycmVjdC4KICAgICAgICAkQ2FjaGVPYmplY3QtPkNsZWFuVXAoCiAgICAgICAgICAgIFR5cGUgPT4gJ1RpY2tldCcsCiAgICAgICAgKTsKICAgIH0KKTsKCjE7Cg==</File>
        <File Permission="660" Location="scripts/test/Ticket/Event/PrimarySecondary.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKIyMgbm8gY3JpdGljIChNb2R1bGVzOjpSZXF1aXJlRXhwbGljaXRQYWNrYWdlKQp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKdXNlIHZhcnMgKHF3KCRTZWxmKSk7CgojIGdldCBuZWVkZWQgb2JqZWN0cwpteSAkVGlja2V0T2JqZWN0ICAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKTsKbXkgJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7Cm15ICRMaW5rT2JqZWN0ICAgICAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3QnKTsKbXkgJER5bmFtaWNGaWVsZE9iamVjdCAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyk7Cm15ICRVc2VyT2JqZWN0ICAgICAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKbXkgJEN1c3RvbWVyVXNlck9iamVjdCAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyJyk7Cm15ICRDb25maWdPYmplY3QgICAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiMgc3RhcnQgUmVzdG9yZURhdGFic2UKJEtlcm5lbDo6T00tPk9iamVjdFBhcmFtQWRkKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyA9PiB7CiAgICAgICAgUmVzdG9yZURhdGFiYXNlID0+IDEsCiAgICB9LAopOwpteSAkSGVscGVyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyBtYWtlIHByZXBhcmF0aW9ucwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgojIGVuYWJsZSBjb25maWcgUHJpbWFyeVNlY29uZGFyeTo6Rm9yd2FyZFNlY29uZGFyeQokQ29uZmlnT2JqZWN0LT5TZXQoCiAgICBLZXkgICA9PiAnUHJpbWFyeVNlY29uZGFyeTo6Rm9yd2FyZFNlY29uZGFyeScsCiAgICBWYWx1ZSA9PiAxLAopOwokQ29uZmlnT2JqZWN0LT5TZXQoCiAgICBLZXkgICA9PiAnQ2hlY2tNWFJlY29yZCcsCiAgICBWYWx1ZSA9PiAwLAopOwokQ29uZmlnT2JqZWN0LT5TZXQoCiAgICBLZXkgICA9PiAnQ2hlY2tFbWFpbEFkZHJlc3NlcycsCiAgICBWYWx1ZSA9PiAwLAopOwoKIyBnZXQgcmFuZG9tIElECm15ICRSYW5kb21JRCA9ICRIZWxwZXJPYmplY3QtPkdldFJhbmRvbUlEKCk7CgojIGdldCBQcmltYXJ5L1NlY29uZGFyeSBkeW5hbWljIGZpZWxkIGRhdGEKbXkgJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGQgICAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdQcmltYXJ5U2Vjb25kYXJ5OjpEeW5hbWljRmllbGQnKTsKbXkgJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGREYXRhID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkR2V0KAogICAgTmFtZSA9PiAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCwKKTsKCiMgY3JlYXRlIG5ldyB1c2VyCm15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlck9iamVjdC0+VGVzdFVzZXJDcmVhdGUoCiAgICBHcm91cHMgICA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgIExhbmd1YWdlID0+ICdlbicKKTsKJFNlbGYtPlRydWUoCiAgICAkVGVzdFVzZXJMb2dpbiwKICAgICJVc2VyQWRkKCkgJFRlc3RVc2VyTG9naW4iLAopOwoKIyBjcmVhdGUgbmV3IGN1c3RvbWVyIHVzZXIKbXkgJFRlc3RDdXN0b21lclVzZXJMb2dpbiA9ICRIZWxwZXJPYmplY3QtPlRlc3RDdXN0b21lclVzZXJDcmVhdGUoCiAgICBMYW5ndWFnZSA9PiAnZW4nLAopOwokU2VsZi0+VHJ1ZSgKICAgICRUZXN0Q3VzdG9tZXJVc2VyTG9naW4sCiAgICAiQ3VzdG9tZXJVc2VyQWRkKCkgJFRlc3RDdXN0b21lclVzZXJMb2dpbiIsCik7CgojIGNyZWF0ZSBmaXJzdCB0ZXN0IHRpY2tldApteSAkUHJpbWFyeVRpY2tldE51bWJlciA9ICRUaWNrZXRPYmplY3QtPlRpY2tldENyZWF0ZU51bWJlcigpOwpteSAkUHJpbWFyeVRpY2tldElEICAgICA9ICRUaWNrZXRPYmplY3QtPlRpY2tldENyZWF0ZSgKICAgIFROICAgICAgICAgICA9PiAkUHJpbWFyeVRpY2tldE51bWJlciwKICAgIFRpdGxlICAgICAgICA9PiAnUHJpbWFyeSB1bml0IHRlc3QgdGlja2V0ICcgLiAkUmFuZG9tSUQsCiAgICBRdWV1ZSAgICAgICAgPT4gJ1JhdycsCiAgICBMb2NrICAgICAgICAgPT4gJ3VubG9jaycsCiAgICBQcmlvcml0eSAgICAgPT4gJzMgbm9ybWFsJywKICAgIFN0YXRlICAgICAgICA9PiAnbmV3JywKICAgIEN1c3RvbWVyTm8gICA9PiAkVGVzdEN1c3RvbWVyVXNlckxvZ2luLAogICAgQ3VzdG9tZXJVc2VyID0+ICRUZXN0Q3VzdG9tZXJVc2VyTG9naW4sCgogICAgT3duZXJJRCA9PiAxLAogICAgVXNlcklEICA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRQcmltYXJ5VGlja2V0SUQsCiAgICAiVGlja2V0Q3JlYXRlKCkgVGlja2V0IElEICRQcmltYXJ5VGlja2V0SUQiLAopOwoKbXkgJEFydGljbGVPYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQ6OkFydGljbGUnKTsKbXkgJEVtYWlsQmFja2VuZE9iamVjdCA9ICRBcnRpY2xlT2JqZWN0LT5CYWNrZW5kRm9yQ2hhbm5lbCgKICAgIENoYW5uZWxOYW1lID0+ICdFbWFpbCcsCik7CgojIGNyZWF0ZSBhcnRpY2xlIGZvciB0ZXN0IHRpY2tldApteSAkQXJ0aWNsZUlEID0gJEVtYWlsQmFja2VuZE9iamVjdC0+QXJ0aWNsZUNyZWF0ZSgKICAgIFRpY2tldElEICAgICAgICAgICAgID0+ICRQcmltYXJ5VGlja2V0SUQsCiAgICBJc1Zpc2libGVGb3JDdXN0b21lciA9PiAxLAogICAgU2VuZGVyVHlwZSAgICAgICAgICAgPT4gJ2FnZW50JywKICAgIFN1YmplY3QgICAgICAgICAgICAgID0+ICdQcmltYXJ5IEFydGljbGUnLAogICAgQm9keSAgICAgICAgICAgICAgICAgPT4gJ1VuaXQgdGVzdCBQcmltYXJ5VGlja2V0JywKICAgIENvbnRlbnRUeXBlICAgICAgICAgID0+ICd0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTE1JywKICAgIEhpc3RvcnlUeXBlICAgICAgICAgID0+ICdFbWFpbEN1c3RvbWVyJywKICAgIEhpc3RvcnlDb21tZW50ICAgICAgID0+ICdVbml0IHRlc3QgYXJ0aWNsZScsCiAgICBVc2VySUQgICAgICAgICAgICAgICA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRBcnRpY2xlSUQsCiAgICAiQXJ0aWNsZUNyZWF0ZSgpIEFydGljbGUgSUQgJEFydGljbGVJRCIsCik7CgpteSAkRHluYW1pY0ZpZWxkID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkR2V0KAogICAgSUQgPT4gJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGREYXRhLT57SUR9LAopOwoKIyBzZXQgdGVzdCB0aWNrZXQgYXMgUHJpbWFyeSB0aWNrZXQKbXkgJFN1Y2Nlc3MgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+VmFsdWVTZXQoCiAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZCwKICAgIE9iamVjdElEICAgICAgICAgICA9PiAkUHJpbWFyeVRpY2tldElELAogICAgVmFsdWUgICAgICAgICAgICAgID0+ICdQcmltYXJ5JywKICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgIlZhbHVlU2V0KCkgVGlja2V0IElEICRQcmltYXJ5VGlja2V0SUQgRHluYW1pY0ZpZWxkICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkIHVwZGF0ZWQgYXMgUHJpbWFyeVRpY2tldCIsCik7CgojIGNyZWF0ZSBzZWNvbmQgdGVzdCB0aWNrZXQKbXkgJFNlY29uZGFyeVRpY2tldE51bWJlciA9ICRUaWNrZXRPYmplY3QtPlRpY2tldENyZWF0ZU51bWJlcigpOwpteSAkU2Vjb25kYXJ5VGlja2V0SUQgICAgID0gJFRpY2tldE9iamVjdC0+VGlja2V0Q3JlYXRlKAogICAgVE4gICAgICAgICAgID0+ICRTZWNvbmRhcnlUaWNrZXROdW1iZXIsCiAgICBUaXRsZSAgICAgICAgPT4gJ1NlY29uZGFyeSB1bml0IHRlc3QgdGlja2V0ICcgLiAkUmFuZG9tSUQsCiAgICBRdWV1ZSAgICAgICAgPT4gJ1JhdycsCiAgICBMb2NrICAgICAgICAgPT4gJ3VubG9jaycsCiAgICBQcmlvcml0eSAgICAgPT4gJzMgbm9ybWFsJywKICAgIFN0YXRlICAgICAgICA9PiAnbmV3JywKICAgIEN1c3RvbWVySUQgICA9PiAkVGVzdEN1c3RvbWVyVXNlckxvZ2luLAogICAgQ3VzdG9tZXJVc2VyID0+ICRUZXN0Q3VzdG9tZXJVc2VyTG9naW4gLiAnQGxvY2FsdW5pdHRlc3QuY29tJywKICAgIE93bmVySUQgICAgICA9PiAxLAogICAgVXNlcklEICAgICAgID0+IDEsCik7CiRTZWxmLT5UcnVlKAogICAgJFNlY29uZGFyeVRpY2tldElELAogICAgIlRpY2tldENyZWF0ZSgpIFRpY2tldCBJRCAkU2Vjb25kYXJ5VGlja2V0SUQiLAopOwokU3VjY2VzcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5WYWx1ZVNldCgKICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkLAogICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRTZWNvbmRhcnlUaWNrZXRJRCwKICAgIFZhbHVlICAgICAgICAgICAgICA9PiAiU2Vjb25kYXJ5T2Y6JFByaW1hcnlUaWNrZXROdW1iZXIiLAogICAgVXNlcklEICAgICAgICAgICAgID0+IDEsCik7CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgdGVzdCBldmVudCBBcnRpY2xlU2VuZAojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgojIGNyZWF0ZSBQcmltYXJ5IHRpY2tldCBhcnRpY2xlIGFuZCBmb3J3YXJkIGl0Cm15ICRQcmltYXJ5TmV3U3ViamVjdCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFN1YmplY3RCdWlsZCgKICAgIFRpY2tldE51bWJlciA9PiAkUHJpbWFyeVRpY2tldE51bWJlciwKICAgIFN1YmplY3QgICAgICA9PiAnUHJpbWFyeSBBcnRpY2xlJywKICAgIEFjdGlvbiAgICAgICA9PiAnRm9yd2FyZCcsCik7Cm15ICRGb3J3YXJkQXJ0aWNsZUlEID0gJEVtYWlsQmFja2VuZE9iamVjdC0+QXJ0aWNsZVNlbmQoCiAgICBUaWNrZXRJRCAgICAgICAgICAgICA9PiAkUHJpbWFyeVRpY2tldElELAogICAgSXNWaXNpYmxlRm9yQ3VzdG9tZXIgPT4gMSwKICAgIFNlbmRlclR5cGUgICAgICAgICAgID0+ICdhZ2VudCcsCiAgICBGcm9tICAgICAgICAgICAgICAgICA9PiAnU29tZSBBZ2VudCA8ZW1haWxAZXhhbXBsZS5jb20+JywKICAgIFRvICAgICAgICAgICAgICAgICAgID0+ICdTb21lIEN1c3RvbWVyIEEgPGN1c3RvbWVyLWFAZXhhbXBsZS5jb20+JywKICAgIFN1YmplY3QgICAgICAgICAgICAgID0+ICRQcmltYXJ5TmV3U3ViamVjdCwKICAgIEJvZHkgICAgICAgICAgICAgICAgID0+ICdVbml0IHRlc3QgZm9yd2FyZGVkIGFydGljbGUnLAogICAgQ2hhcnNldCAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTE1JywKICAgIE1pbWVUeXBlICAgICAgICAgICAgID0+ICd0ZXh0L3BsYWluJywKICAgIEhpc3RvcnlUeXBlICAgICAgICAgID0+ICdGb3J3YXJkJywKICAgIEhpc3RvcnlDb21tZW50ICAgICAgID0+ICdGb3J3YXJkZWQgYXJ0aWNsZScsCiAgICBOb0FnZW50Tm90aWZ5ICAgICAgICA9PiAwLAogICAgVXNlcklEICAgICAgICAgICAgICAgPT4gMSwKKTsKJFNlbGYtPlRydWUoCiAgICAkU3VjY2VzcywKICAgICJBcnRpY2xlU2VuZCgpIEZvcndhcmRlZCBQcmltYXJ5VGlja2V0IEFydGljbGUgSUQgJEZvcndhcmRBcnRpY2xlSUQiLAopOwoKIyBnZXQgUHJpbWFyeSB0aWNrZXQgaGlzdG9yeQpteSBAUHJpbWFyeUhpc3RvcnlMaW5lcyA9ICRUaWNrZXRPYmplY3QtPkhpc3RvcnlHZXQoCiAgICBUaWNrZXRJRCA9PiAkUHJpbWFyeVRpY2tldElELAogICAgVXNlcklEICAgPT4gMSwKKTsKCm15ICRQcmltYXJ5TGFzdEhpc3RvcnlFbnRyeSA9ICRQcmltYXJ5SGlzdG9yeUxpbmVzWy0xXTsKCiMgdmVyaWZ5IFByaW1hcnkgdGlja2V0IGFydGljbGUgaXMgY3JlYXRlZAokU2VsZi0+SXNEZWVwbHkoCiAgICAkUHJpbWFyeUxhc3RIaXN0b3J5RW50cnktPntOYW1lfSwKICAgICdQcmltYXJ5VGlja2V0QWN0aW9uOiBBcnRpY2xlU2VuZCcsCiAgICAiUHJpbWFyeVRpY2tldCBBcnRpY2xlU2VuZCBldmVudCAtICIsCik7CgojIGdldCBzZWNvbmRhcnkgdGlja2V0IGhpc3RvcnkKbXkgQFNlY29uZGFyeUhpc3RvcnlMaW5lcyA9ICRUaWNrZXRPYmplY3QtPkhpc3RvcnlHZXQoCiAgICBUaWNrZXRJRCA9PiAkU2Vjb25kYXJ5VGlja2V0SUQsCiAgICBVc2VySUQgICA9PiAxLAopOwpteSAkU2Vjb25kYXJ5TGFzdEhpc3RvcnlFbnRyeSA9ICRTZWNvbmRhcnlIaXN0b3J5TGluZXNbLTFdOwoKIyB2ZXJpZnkgc2Vjb25kYXJ5IHRpY2tldCBhcnRpY2xlIHRyaWVkIHRvIHNlbmQKJFNlbGYtPklzRGVlcGx5KAogICAgJFNlY29uZGFyeUxhc3RIaXN0b3J5RW50cnktPntOYW1lfSwKICAgICdQcmltYXJ5VGlja2V0OiBubyBjdXN0b21lciBlbWFpbCBmb3VuZCwgc2VuZCBubyBwcmltYXJ5IG1lc3NhZ2UgdG8gY3VzdG9tZXIuJywKICAgICJTZWNvbmRhcnlUaWNrZXQgQXJ0aWNsZVNlbmQgZXZlbnQgLSAiLAopOwoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIHRlc3QgZXZlbnQgQXJ0aWNsZUNyZWF0ZQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCm15ICRJbnRlcm5hbEJhY2tlbmRPYmplY3QgPSAkQXJ0aWNsZU9iamVjdC0+QmFja2VuZEZvckNoYW5uZWwoCiAgICBDaGFubmVsTmFtZSA9PiAnSW50ZXJuYWwnLAopOwoKIyBjcmVhdGUgbm90ZSBhcnRpY2xlIGZvciBQcmltYXJ5IHRpY2tldApteSAkQXJ0aWNsZUlEQ3JlYXRlID0gJEludGVybmFsQmFja2VuZE9iamVjdC0+QXJ0aWNsZUNyZWF0ZSgKICAgIFRpY2tldElEICAgICAgICAgICAgID0+ICRQcmltYXJ5VGlja2V0SUQsCiAgICBJc1Zpc2libGVGb3JDdXN0b21lciA9PiAwLAogICAgU2VuZGVyVHlwZSAgICAgICAgICAgPT4gJ2FnZW50JywKICAgIFN1YmplY3QgICAgICAgICAgICAgID0+ICdOb3RlIGFydGljbGUnLAogICAgQm9keSAgICAgICAgICAgICAgICAgPT4gJ1VuaXQgdGVzdCBQcmltYXJ5VGlja2V0JywKICAgIENvbnRlbnRUeXBlICAgICAgICAgID0+ICd0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTE1JywKICAgIEhpc3RvcnlUeXBlICAgICAgICAgID0+ICdBZGROb3RlJywKICAgIEhpc3RvcnlDb21tZW50ICAgICAgID0+ICdVbml0IHRlc3QgYXJ0aWNsZScsCiAgICBVc2VySUQgICAgICAgICAgICAgICA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRBcnRpY2xlSURDcmVhdGUsCiAgICAiQXJ0aWNsZUNyZWF0ZSgpIE5vdGUgQXJ0aWNsZSBJRCAkQXJ0aWNsZUlEQ3JlYXRlIGNyZWF0ZWQgZm9yIFByaW1hcnlUaWNrZXQgSUQgJFByaW1hcnlUaWNrZXRJRCIsCik7CgojIGdldCBQcmltYXJ5IHRpY2tldCBoaXN0b3J5CkBQcmltYXJ5SGlzdG9yeUxpbmVzID0gJFRpY2tldE9iamVjdC0+SGlzdG9yeUdldCgKICAgIFRpY2tldElEID0+ICRQcmltYXJ5VGlja2V0SUQsCiAgICBVc2VySUQgICA9PiAxLAopOwooJFByaW1hcnlMYXN0SGlzdG9yeUVudHJ5KSA9IGdyZXAgeyAkXy0+e05hbWV9IGVxICdQcmltYXJ5VGlja2V0QWN0aW9uOiBBcnRpY2xlQ3JlYXRlJyB9IEBQcmltYXJ5SGlzdG9yeUxpbmVzOwoKIyB2ZXJpZnkgUHJpbWFyeSB0aWNrZXQgYXJ0aWNsZSBpcyBjcmVhdGVkCiRTZWxmLT5Jc0RlZXBseSgKICAgICRQcmltYXJ5TGFzdEhpc3RvcnlFbnRyeS0+e05hbWV9LAogICAgJ1ByaW1hcnlUaWNrZXRBY3Rpb246IEFydGljbGVDcmVhdGUnLAogICAgIlByaW1hcnlUaWNrZXQgQXJ0aWNsZUNyZWF0ZSBldmVudCAtICIsCik7CgojIGdldCBzZWNvbmRhcnkgdGlja2V0IGhpc3RvcnkKQFNlY29uZGFyeUhpc3RvcnlMaW5lcyA9ICRUaWNrZXRPYmplY3QtPkhpc3RvcnlHZXQoCiAgICBUaWNrZXRJRCA9PiAkU2Vjb25kYXJ5VGlja2V0SUQsCiAgICBVc2VySUQgICA9PiAxLAopOwoKKCRTZWNvbmRhcnlMYXN0SGlzdG9yeUVudHJ5KSA9IGdyZXAgeyAkXy0+e05hbWV9IGVxICdBZGRlZCBhcnRpY2xlIGJhc2VkIG9uIHByaW1hcnkgdGlja2V0LicgfSBAU2Vjb25kYXJ5SGlzdG9yeUxpbmVzOwoKIyB2ZXJpZnkgc2Vjb25kYXJ5IHRpY2tldCBhcnRpY2xlIGlzIGNyZWF0ZWQKJFNlbGYtPklzRGVlcGx5KAogICAgJFNlY29uZGFyeUxhc3RIaXN0b3J5RW50cnktPntOYW1lfSwKICAgICdBZGRlZCBhcnRpY2xlIGJhc2VkIG9uIHByaW1hcnkgdGlja2V0LicsCiAgICAiU2Vjb25kYXJ5VGlja2V0IEFydGljbGVDcmVhdGUgZXZlbnQgLSAiLAopOwoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIHRlc3QgZXZlbnQgVGlja2V0U3RhdGVVcGRhdGUKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKIyBjaGFuZ2UgUHJpbWFyeSB0aWNrZXQgc3RhdGUgdG8gJ29wZW4nCiRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0U3RhdGVTZXQoCiAgICBTdGF0ZSAgICA9PiAnb3BlbicsCiAgICBUaWNrZXRJRCA9PiAkUHJpbWFyeVRpY2tldElELAogICAgVXNlcklEICAgPT4gMSwKKTsKJFNlbGYtPlRydWUoCiAgICAkU3VjY2VzcywKICAgICJUaWNrZXRTdGF0ZVNldCgpIFByaW1hcnlUaWNrZXQgc3RhdGUgdXBkYXRlZCAtICdvcGVuJyIsCik7CgojIGdldCBQcmltYXJ5IHRpY2tldCBoaXN0b3J5CkBQcmltYXJ5SGlzdG9yeUxpbmVzID0gJFRpY2tldE9iamVjdC0+SGlzdG9yeUdldCgKICAgIFRpY2tldElEID0+ICRQcmltYXJ5VGlja2V0SUQsCiAgICBVc2VySUQgICA9PiAxLAopOwokUHJpbWFyeUxhc3RIaXN0b3J5RW50cnkgPSAkUHJpbWFyeUhpc3RvcnlMaW5lc1stMV07CgojIHZlcmlmeSBQcmltYXJ5IHRpY2tldCBzdGF0ZSBpcyB1cGRhdGVkCiRTZWxmLT5Jc0RlZXBseSgKICAgICRQcmltYXJ5TGFzdEhpc3RvcnlFbnRyeS0+e05hbWV9LAogICAgJ1ByaW1hcnlUaWNrZXRBY3Rpb246IFRpY2tldFN0YXRlVXBkYXRlJywKICAgICJQcmltYXJ5VGlja2V0IFRpY2tldFN0YXRlVXBkYXRlIGV2ZW50IC0gIiwKKTsKCiMgdmVyaWZ5IHNlY29uZGFyeSB0aWNrZXQgc3RhdGUgaXMgdXBkYXRlZApteSAlU2Vjb25kYXJ5VGlja2V0RGF0YSA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEdldCgKICAgIFRpY2tldElEID0+ICRTZWNvbmRhcnlUaWNrZXRJRCwKICAgIFVzZXJJRCAgID0+IDEsCik7CgokU2VsZi0+SXNEZWVwbHkoCiAgICAkU2Vjb25kYXJ5VGlja2V0RGF0YXtTdGF0ZX0sCiAgICAnb3BlbicsCiAgICAiU2Vjb25kYXJ5VGlja2V0IHN0YXRlIHVwZGF0ZWQgLSAnb3BlbicgLSAiLAopOwoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIHRlc3QgZXZlbnQgVGlja2V0UGVuZGluZ1RpbWVVcGRhdGUKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKIyBjaGFuZ2UgcGVuZGluZyB0aW1lIGZvciBQcmltYXJ5IHRpY2tldAokU3VjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFBlbmRpbmdUaW1lU2V0KAogICAgWWVhciAgICAgPT4gMDAwMCwKICAgIE1vbnRoICAgID0+IDAwLAogICAgRGF5ICAgICAgPT4gMDAsCiAgICBIb3VyICAgICA9PiAwMCwKICAgIE1pbnV0ZSAgID0+IDAwLAogICAgVGlja2V0SUQgPT4gJFByaW1hcnlUaWNrZXRJRCwKICAgIFVzZXJJRCAgID0+IDEsCik7CiRTZWxmLT5UcnVlKAogICAgJFN1Y2Nlc3MsCiAgICAiVGlja2V0UGVuZGluZ1RpbWVTZXQoKSBQcmltYXJ5VGlja2V0IHBlbmRpbmcgdGltZSB1cGRhdGVkIiwKKTsKCiMgZ2V0IFByaW1hcnkgdGlja2V0IGhpc3RvcnkKQFByaW1hcnlIaXN0b3J5TGluZXMgPSAkVGlja2V0T2JqZWN0LT5IaXN0b3J5R2V0KAogICAgVGlja2V0SUQgPT4gJFByaW1hcnlUaWNrZXRJRCwKICAgIFVzZXJJRCAgID0+IDEsCik7CiRQcmltYXJ5TGFzdEhpc3RvcnlFbnRyeSA9ICRQcmltYXJ5SGlzdG9yeUxpbmVzWy0xXTsKCiMgdmVyaWZ5IFByaW1hcnkgdGlja2V0IHBlbmRpbmcgdGltZSBpcyB1cGRhdGVkCiRTZWxmLT5Jc0RlZXBseSgKICAgICRQcmltYXJ5TGFzdEhpc3RvcnlFbnRyeS0+e05hbWV9LAogICAgJ1ByaW1hcnlUaWNrZXRBY3Rpb246IFRpY2tldFBlbmRpbmdUaW1lVXBkYXRlJywKICAgICJQcmltYXJ5VGlja2V0IFRpY2tldFBlbmRpbmdUaW1lVXBkYXRlIGV2ZW50IC0gIiwKKTsKCiMgZ2V0IHNlY29uZGFyeSB0aWNrZXQgaGlzdG9yeQpAU2Vjb25kYXJ5SGlzdG9yeUxpbmVzID0gJFRpY2tldE9iamVjdC0+SGlzdG9yeUdldCgKICAgIFRpY2tldElEID0+ICRTZWNvbmRhcnlUaWNrZXRJRCwKICAgIFVzZXJJRCAgID0+IDEsCik7CiRTZWNvbmRhcnlMYXN0SGlzdG9yeUVudHJ5ID0gJFNlY29uZGFyeUhpc3RvcnlMaW5lc1stMV07CgojIHZlcmlmeSBzZWNvbmRhcnkgdGlja2V0IHBlbmRpbmcgdGltZSBpcyB1cGRhdGVkCiRTZWxmLT5Jc0RlZXBseSgKICAgICRTZWNvbmRhcnlMYXN0SGlzdG9yeUVudHJ5LT57TmFtZX0sCiAgICAnJSUwMC0wMC0wMCAwMDowMCcsCiAgICAiU2Vjb25kYXJ5VGlja2V0IHBlbmRpbmcgdGltZSB1cGRhdGUgLSAiLAopOwoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIHRlc3QgZXZlbnQgVGlja2V0UHJpb3JpdHlVcGRhdGUKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKIyBjaGFuZ2UgUHJpbWFyeSB0aWNrZXQgcHJpb3JpdHkgdG8gJzIgbG93JwokU3VjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFByaW9yaXR5U2V0KAogICAgVGlja2V0SUQgPT4gJFByaW1hcnlUaWNrZXRJRCwKICAgIFByaW9yaXR5ID0+ICcyIGxvdycsCiAgICBVc2VySUQgICA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgIlRpY2tldFByaW9yaXR5U2V0KCkgUHJpbWFyeVRpY2tldCBwcmlvcml0eSB1cGRhdGVkIC0gJzIgbG93JyIsCik7CgojIGdldCBQcmltYXJ5IHRpY2tldCBoaXN0b3J5CkBQcmltYXJ5SGlzdG9yeUxpbmVzID0gJFRpY2tldE9iamVjdC0+SGlzdG9yeUdldCgKICAgIFRpY2tldElEID0+ICRQcmltYXJ5VGlja2V0SUQsCiAgICBVc2VySUQgICA9PiAxLAopOwokUHJpbWFyeUxhc3RIaXN0b3J5RW50cnkgPSAkUHJpbWFyeUhpc3RvcnlMaW5lc1stMV07CgojIHZlcmlmeSBQcmltYXJ5IHRpY2tldCBwcmlvcml0eSBpcyB1cGRhdGVkCiRTZWxmLT5Jc0RlZXBseSgKICAgICRQcmltYXJ5TGFzdEhpc3RvcnlFbnRyeS0+e05hbWV9LAogICAgJ1ByaW1hcnlUaWNrZXRBY3Rpb246IFRpY2tldFByaW9yaXR5VXBkYXRlJywKICAgICJQcmltYXJ5VGlja2V0IFRpY2tldFByaW9yaXR5VXBkYXRlIGV2ZW50IC0gIiwKKTsKCiMgdmVyaWZ5IHNlY29uZGFyeSB0aWNrZXQgcHJpb3JpdHkgaXMgdXBkYXRlZAolU2Vjb25kYXJ5VGlja2V0RGF0YSA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEdldCgKICAgIFRpY2tldElEID0+ICRTZWNvbmRhcnlUaWNrZXRJRCwKICAgIFVzZXJJRCAgID0+IDEsCik7CiRTZWxmLT5Jc0RlZXBseSgKICAgICRTZWNvbmRhcnlUaWNrZXREYXRhe1ByaW9yaXR5fSwKICAgICcyIGxvdycsCiAgICAiU2Vjb25kYXJ5VGlja2V0IHByaW9yaXR5IHVwZGF0ZWQgLSAnMiBsb3cnIC0gIiwKKTsKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKIyB0ZXN0IGV2ZW50IFRpY2tldE93bmVyVXBkYXRlCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiMgY2hhbmdlIFByaW1hcnkgdGlja2V0IG93bmVyCiRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0T3duZXJTZXQoCiAgICBUaWNrZXRJRCA9PiAkUHJpbWFyeVRpY2tldElELAogICAgTmV3VXNlciAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICBVc2VySUQgICA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgIlRpY2tldE93bmVyU2V0KCkgUHJpbWFyeVRpY2tldCBvd25lciB1cGRhdGVkIC0gJFRlc3RVc2VyTG9naW4iLAopOwoKIyBnZXQgUHJpbWFyeSB0aWNrZXQgaGlzdG9yeQpAUHJpbWFyeUhpc3RvcnlMaW5lcyA9ICRUaWNrZXRPYmplY3QtPkhpc3RvcnlHZXQoCiAgICBUaWNrZXRJRCA9PiAkUHJpbWFyeVRpY2tldElELAogICAgVXNlcklEICAgPT4gMSwKKTsKJFByaW1hcnlMYXN0SGlzdG9yeUVudHJ5ID0gJFByaW1hcnlIaXN0b3J5TGluZXNbLTFdOwoKIyB2ZXJpZnkgUHJpbWFyeSB0aWNrZXQgb3duZXIgaXMgdXBkYXRlZAokU2VsZi0+SXNEZWVwbHkoCiAgICAkUHJpbWFyeUxhc3RIaXN0b3J5RW50cnktPntOYW1lfSwKICAgICdQcmltYXJ5VGlja2V0QWN0aW9uOiBUaWNrZXRPd25lclVwZGF0ZScsCiAgICAiUHJpbWFyeVRpY2tldCBUaWNrZXRPd25lclVwZGF0ZSBldmVudCAtICIsCik7CgojIHZlcmlmeSBzZWNvbmRhcnkgdGlja2V0IG93bmVyIGlzIHVwZGF0ZWQKJVNlY29uZGFyeVRpY2tldERhdGEgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRHZXQoCiAgICBUaWNrZXRJRCA9PiAkU2Vjb25kYXJ5VGlja2V0SUQsCiAgICBVc2VySUQgICA9PiAxLAopOwokU2VsZi0+SXNEZWVwbHkoCiAgICAkU2Vjb25kYXJ5VGlja2V0RGF0YXtPd25lcn0sCiAgICAkVGVzdFVzZXJMb2dpbiwKICAgICJTZWNvbmRhcnlUaWNrZXQgb3duZXIgdXBkYXRlZCAtICIsCik7CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgdGVzdCBldmVudCBUaWNrZXRSZXNwb25zaWJsZVVwZGF0ZQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgojIHNldCBuZXcgcmVzcG9uc2libGUgdXNlciBmb3IgUHJpbWFyeSB0aWNrZXQKJFN1Y2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRSZXNwb25zaWJsZVNldCgKICAgIFRpY2tldElEID0+ICRQcmltYXJ5VGlja2V0SUQsCiAgICBOZXdVc2VyICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgIFVzZXJJRCAgID0+IDEsCik7CiRTZWxmLT5UcnVlKAogICAgJFN1Y2Nlc3MsCiAgICAiVGlja2V0UmVzcG9uc2libGVTZXQoKSBQcmltYXJ5VGlja2V0IHJlc3BvbnNpYmxlIHVwZGF0ZWQgLSAkVGVzdFVzZXJMb2dpbiIsCik7CgojIGdldCBQcmltYXJ5IHRpY2tldCBoaXN0b3J5CkBQcmltYXJ5SGlzdG9yeUxpbmVzID0gJFRpY2tldE9iamVjdC0+SGlzdG9yeUdldCgKICAgIFRpY2tldElEID0+ICRQcmltYXJ5VGlja2V0SUQsCiAgICBVc2VySUQgICA9PiAxLAopOwokUHJpbWFyeUxhc3RIaXN0b3J5RW50cnkgPSAkUHJpbWFyeUhpc3RvcnlMaW5lc1stMV07CgojIHZlcmlmeSBQcmltYXJ5IHRpY2tldCByZXNwb25zaWJsZSB1c2VyIGlzIHVwZGF0ZWQKJFNlbGYtPklzRGVlcGx5KAogICAgJFByaW1hcnlMYXN0SGlzdG9yeUVudHJ5LT57TmFtZX0sCiAgICAnUHJpbWFyeVRpY2tldEFjdGlvbjogVGlja2V0UmVzcG9uc2libGVVcGRhdGUnLAogICAgIlByaW1hcnlUaWNrZXQgVGlja2V0UmVzcG9uc2libGVVcGRhdGUgZXZlbnQgLSAiLAopOwoKIyB2ZXJpZnkgc2Vjb25kYXJ5IHRpY2tldCBvd25lciBpcyB1cGRhdGVkCiVTZWNvbmRhcnlUaWNrZXREYXRhID0gJFRpY2tldE9iamVjdC0+VGlja2V0R2V0KAogICAgVGlja2V0SUQgPT4gJFNlY29uZGFyeVRpY2tldElELAogICAgVXNlcklEICAgPT4gMSwKKTsKJFNlbGYtPklzRGVlcGx5KAogICAgJFNlY29uZGFyeVRpY2tldERhdGF7UmVzcG9uc2libGV9LAogICAgJFRlc3RVc2VyTG9naW4sCiAgICAiU2Vjb25kYXJ5VGlja2V0IHJlc3BvbnNpYmxlIHVwZGF0ZWQgLSAiLAopOwoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwojIHRlc3QgZXZlbnQgVGlja2V0TG9ja1VwZGF0ZQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgojIGxvY2sgUHJpbWFyeSB0aWNrZXQKJFN1Y2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRMb2NrU2V0KAogICAgTG9jayAgICAgPT4gJ2xvY2snLAogICAgVGlja2V0SUQgPT4gJFByaW1hcnlUaWNrZXRJRCwKICAgIFVzZXJJRCAgID0+IDEsCik7CiRTZWxmLT5UcnVlKAogICAgJFN1Y2Nlc3MsCiAgICAiVGlja2V0TG9ja1NldCgpIFByaW1hcnlUaWNrZXQgaXMgbG9ja2VkIiwKKTsKCiMgZ2V0IFByaW1hcnkgdGlja2V0IGhpc3RvcnkKQFByaW1hcnlIaXN0b3J5TGluZXMgPSAkVGlja2V0T2JqZWN0LT5IaXN0b3J5R2V0KAogICAgVGlja2V0SUQgPT4gJFByaW1hcnlUaWNrZXRJRCwKICAgIFVzZXJJRCAgID0+IDEsCik7CiRQcmltYXJ5TGFzdEhpc3RvcnlFbnRyeSA9ICRQcmltYXJ5SGlzdG9yeUxpbmVzWy0xXTsKCiMgdmVyaWZ5IFByaW1hcnkgdGlja2V0IGlzIGxvY2tlZAokU2VsZi0+SXNEZWVwbHkoCiAgICAkUHJpbWFyeUxhc3RIaXN0b3J5RW50cnktPntOYW1lfSwKICAgICdQcmltYXJ5VGlja2V0QWN0aW9uOiBUaWNrZXRMb2NrVXBkYXRlJywKICAgICJQcmltYXJ5VGlja2V0IFRpY2tldExvY2tVcGRhdGUgZXZlbnQgLSAiLAopOwoKIyB2ZXJpZnkgc2Vjb25kYXJ5IHRpY2tldCBpcyBsb2NrZWQKJVNlY29uZGFyeVRpY2tldERhdGEgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRHZXQoCiAgICBUaWNrZXRJRCA9PiAkU2Vjb25kYXJ5VGlja2V0SUQsCiAgICBVc2VySUQgICA9PiAxLAopOwokU2VsZi0+SXNEZWVwbHkoCiAgICAkU2Vjb25kYXJ5VGlja2V0RGF0YXtMb2NrfSwKICAgICdsb2NrJywKICAgICJTZWNvbmRhcnlUaWNrZXQgbG9jayB1cGRhdGVkIC0gIiwKKTsKCiMgY2xlYW51cCBpcyBkb25lIGJ5IFJlc3RvcmVEYXRhYmFzZQoKMTsK</File>
        <File Permission="660" Location="scripts/test/Ticket/Event/PrimarySecondary/ReplaceCustomerRealName.t" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKIyMgbm8gY3JpdGljIChNb2R1bGVzOjpSZXF1aXJlRXhwbGljaXRQYWNrYWdlKQp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKdXNlIHZhcnMgKHF3KCRTZWxmKSk7CgojIHN0YXJ0IFJlc3RvcmVEYXRhYnNlCiRLZXJuZWw6Ok9NLT5PYmplY3RQYXJhbUFkZCgKICAgICdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicgPT4gewogICAgICAgIFJlc3RvcmVEYXRhYmFzZSA9PiAxLAogICAgfSwKKTsKbXkgJEhlbHBlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiMgbWFrZSBwcmVwYXJhdGlvbnMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgojIGVuYWJsZSBjb25maWcgUHJpbWFyeVNlY29uZGFyeTo6Rm9yd2FyZFNlY29uZGFyeQokQ29uZmlnT2JqZWN0LT5TZXQoCiAgICBLZXkgICA9PiAnUHJpbWFyeVNlY29uZGFyeTo6Rm9yd2FyZFNlY29uZGFyeScsCiAgICBWYWx1ZSA9PiAxLAopOwokQ29uZmlnT2JqZWN0LT5TZXQoCiAgICBLZXkgICA9PiAnQ2hlY2tNWFJlY29yZCcsCiAgICBWYWx1ZSA9PiAwLAopOwokQ29uZmlnT2JqZWN0LT5TZXQoCiAgICBLZXkgICA9PiAnQ2hlY2tFbWFpbEFkZHJlc3NlcycsCiAgICBWYWx1ZSA9PiAwLAopOwokQ29uZmlnT2JqZWN0LT5TZXQoCiAgICBLZXkgICA9PiAnU2VuZG1haWxNb2R1bGUnLAogICAgVmFsdWUgPT4gJ0tlcm5lbDo6U3lzdGVtOjpFbWFpbDo6RG9Ob3RTZW5kRW1haWwnLAopOwoKbXkgJFJhbmRvbUlEID0gJEhlbHBlck9iamVjdC0+R2V0UmFuZG9tSUQoKTsKCm15ICREeW5hbWljRmllbGRPYmplY3QgICAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKTsKbXkgJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGQgICAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdQcmltYXJ5U2Vjb25kYXJ5OjpEeW5hbWljRmllbGQnKTsKbXkgJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGREYXRhID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkR2V0KAogICAgTmFtZSA9PiAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCwKKTsKCiMgQ3JlYXRlIG5ldyB1c2VyLgpteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXJPYmplY3QtPlRlc3RVc2VyQ3JlYXRlKAogICAgR3JvdXBzICAgPT4gWyAnYWRtaW4nLCAndXNlcnMnIF0sCiAgICBMYW5ndWFnZSA9PiAnZW4nCik7CiRTZWxmLT5UcnVlKAogICAgJFRlc3RVc2VyTG9naW4sCiAgICAiVXNlckFkZCgpICRUZXN0VXNlckxvZ2luIiwKKTsKCiMgQ3JlYXRlIG5ldyBjdXN0b21lciB1c2Vycy4KbXkgJFRlc3RDdXN0b21lclVzZXJMb2dpbjEgPSAkSGVscGVyT2JqZWN0LT5UZXN0Q3VzdG9tZXJVc2VyQ3JlYXRlKAogICAgTGFuZ3VhZ2UgPT4gJ2VuJywKKTsKJFNlbGYtPlRydWUoCiAgICAkVGVzdEN1c3RvbWVyVXNlckxvZ2luMSwKICAgICJDdXN0b21lclVzZXJBZGQoKSAkVGVzdEN1c3RvbWVyVXNlckxvZ2luMSIsCik7CgpteSAkVGVzdEN1c3RvbWVyVXNlckxvZ2luMiA9ICRIZWxwZXJPYmplY3QtPlRlc3RDdXN0b21lclVzZXJDcmVhdGUoCiAgICBMYW5ndWFnZSA9PiAnZW4nLAopOwokU2VsZi0+VHJ1ZSgKICAgICRUZXN0Q3VzdG9tZXJVc2VyTG9naW4yLAogICAgIkN1c3RvbWVyVXNlckFkZCgpICRUZXN0Q3VzdG9tZXJVc2VyTG9naW4yIiwKKTsKCm15ICRUaWNrZXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CgojIENyZWF0ZSBmaXJzdCB0ZXN0IHRpY2tldC4KbXkgJFByaW1hcnlUaWNrZXROdW1iZXIgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRDcmVhdGVOdW1iZXIoKTsKbXkgJFByaW1hcnlUaWNrZXRJRCAgICAgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRDcmVhdGUoCiAgICBUTiAgICAgICAgICAgPT4gJFByaW1hcnlUaWNrZXROdW1iZXIsCiAgICBUaXRsZSAgICAgICAgPT4gJ1ByaW1hcnkgdW5pdCB0ZXN0IHRpY2tldCAnIC4gJFJhbmRvbUlELAogICAgUXVldWUgICAgICAgID0+ICdSYXcnLAogICAgTG9jayAgICAgICAgID0+ICd1bmxvY2snLAogICAgUHJpb3JpdHkgICAgID0+ICczIG5vcm1hbCcsCiAgICBTdGF0ZSAgICAgICAgPT4gJ25ldycsCiAgICBDdXN0b21lck5vICAgPT4gJFRlc3RDdXN0b21lclVzZXJMb2dpbjEsCiAgICBDdXN0b21lclVzZXIgPT4gJFRlc3RDdXN0b21lclVzZXJMb2dpbjEsCgogICAgT3duZXJJRCA9PiAxLAogICAgVXNlcklEICA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRQcmltYXJ5VGlja2V0SUQsCiAgICAiVGlja2V0Q3JlYXRlKCkgVGlja2V0IElEICRQcmltYXJ5VGlja2V0SUQiLAopOwoKbXkgJEFydGljbGVPYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQ6OkFydGljbGUnKTsKbXkgJEVtYWlsQmFja2VuZE9iamVjdCA9ICRBcnRpY2xlT2JqZWN0LT5CYWNrZW5kRm9yQ2hhbm5lbCgKICAgIENoYW5uZWxOYW1lID0+ICdFbWFpbCcsCik7CgojIENyZWF0ZSBhcnRpY2xlIGZvciB0ZXN0IHRpY2tldC4KbXkgJEFydGljbGVJRCA9ICRFbWFpbEJhY2tlbmRPYmplY3QtPkFydGljbGVDcmVhdGUoCiAgICBUaWNrZXRJRCAgICAgICAgICAgICA9PiAkUHJpbWFyeVRpY2tldElELAogICAgRnJvbSAgICAgICAgICAgICAgICAgPT4gJ3Jvb3RAbG9jYWxob3N0JywKICAgIFRvICAgICAgICAgICAgICAgICAgID0+ICd0ZXN0QGV4YW1wbGVzLmNvbScsCiAgICBJc1Zpc2libGVGb3JDdXN0b21lciA9PiAxLAogICAgU2VuZGVyVHlwZSAgICAgICAgICAgPT4gJ2FnZW50JywKICAgIFN1YmplY3QgICAgICAgICAgICAgID0+ICdQcmltYXJ5IEFydGljbGUnLAogICAgQm9keSAgICAgICAgICAgICAgICAgPT4gIlVuaXQgdGVzdCBQcmltYXJ5VGlja2V0ICRUZXN0Q3VzdG9tZXJVc2VyTG9naW4xICRUZXN0Q3VzdG9tZXJVc2VyTG9naW4xIiwKICAgIENvbnRlbnRUeXBlICAgICAgICAgID0+ICd0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTE1JywKICAgIEhpc3RvcnlUeXBlICAgICAgICAgID0+ICdFbWFpbEN1c3RvbWVyJywKICAgIEhpc3RvcnlDb21tZW50ICAgICAgID0+ICdVbml0IHRlc3QgYXJ0aWNsZScsCiAgICBVc2VySUQgICAgICAgICAgICAgICA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRBcnRpY2xlSUQsCiAgICAiQXJ0aWNsZUNyZWF0ZSgpIEFydGljbGUgSUQgJEFydGljbGVJRCIsCik7CgpteSAkRHluYW1pY0ZpZWxkID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkR2V0KAogICAgSUQgPT4gJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGREYXRhLT57SUR9LAopOwoKbXkgJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7CgojIFNldCB0ZXN0IHRpY2tldCBhcyBwcmltYXJ5IHRpY2tldC4KbXkgJFN1Y2Nlc3MgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+VmFsdWVTZXQoCiAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZCwKICAgIE9iamVjdElEICAgICAgICAgICA9PiAkUHJpbWFyeVRpY2tldElELAogICAgVmFsdWUgICAgICAgICAgICAgID0+ICdQcmltYXJ5JywKICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgIlZhbHVlU2V0KCkgVGlja2V0IElEICRQcmltYXJ5VGlja2V0SUQgRHluYW1pY0ZpZWxkICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkIHVwZGF0ZWQgYXMgUHJpbWFyeVRpY2tldCIsCik7CgojIENyZWF0ZSBzZWNvbmQgdGVzdCB0aWNrZXQuCm15ICRTZWNvbmRhcnlUaWNrZXROdW1iZXIgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRDcmVhdGVOdW1iZXIoKTsKbXkgJFNlY29uZGFyeVRpY2tldElEICAgICA9ICRUaWNrZXRPYmplY3QtPlRpY2tldENyZWF0ZSgKICAgIFROICAgICAgICAgICA9PiAkU2Vjb25kYXJ5VGlja2V0TnVtYmVyLAogICAgVGl0bGUgICAgICAgID0+ICdTZWNvbmRhcnkgdW5pdCB0ZXN0IHRpY2tldCAnIC4gJFJhbmRvbUlELAogICAgUXVldWUgICAgICAgID0+ICdSYXcnLAogICAgTG9jayAgICAgICAgID0+ICd1bmxvY2snLAogICAgUHJpb3JpdHkgICAgID0+ICczIG5vcm1hbCcsCiAgICBTdGF0ZSAgICAgICAgPT4gJ25ldycsCiAgICBDdXN0b21lcklEICAgPT4gJFRlc3RDdXN0b21lclVzZXJMb2dpbjIsCiAgICBDdXN0b21lclVzZXIgPT4gJFRlc3RDdXN0b21lclVzZXJMb2dpbjIsCiAgICBPd25lcklEICAgICAgPT4gMSwKICAgIFVzZXJJRCAgICAgICA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRTZWNvbmRhcnlUaWNrZXRJRCwKICAgICJUaWNrZXRDcmVhdGUoKSBUaWNrZXQgSUQgJFNlY29uZGFyeVRpY2tldElEIiwKKTsKCiMgU2V0IHRlc3QgdGlja2V0IGFzIHNlY29uZGFyeSBvZiBQcmltYXJ5IHRpY2tldC4KJFN1Y2Nlc3MgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+VmFsdWVTZXQoCiAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZCwKICAgIE9iamVjdElEICAgICAgICAgICA9PiAkU2Vjb25kYXJ5VGlja2V0SUQsCiAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gIlNlY29uZGFyeU9mOiRQcmltYXJ5VGlja2V0TnVtYmVyIiwKICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgIlZhbHVlU2V0KCkgVGlja2V0IElEICRTZWNvbmRhcnlUaWNrZXRJRCBEeW5hbWljRmllbGQgJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGQgdXBkYXRlZCBhcyBTZWNvbmRhcnlUaWNrZXQiLAopOwoKbXkgJEV2ZW50T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldDo6RXZlbnQ6OlByaW1hcnlTZWNvbmRhcnknKTsKCm15IEBUZXN0cyA9ICgKICAgIHsKICAgICAgICBOYW1lICAgICAgICAgICA9PiAnRG8gbm90IHJlcGxhY2UnLAogICAgICAgIEVmZmVjdGl2ZVZhbHVlID0+IHsKICAgICAgICAgICAgRW1haWwgPT4gMCwKICAgICAgICB9LAogICAgICAgIE1hdGNoID0+ICIkVGVzdEN1c3RvbWVyVXNlckxvZ2luMSAkVGVzdEN1c3RvbWVyVXNlckxvZ2luMSIsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgICAgID0+ICdDdXN0b21lciByZXBsYWNlJywKICAgICAgICBFZmZlY3RpdmVWYWx1ZSA9PiB7CiAgICAgICAgICAgIEVtYWlsID0+IDEsCiAgICAgICAgfSwKICAgICAgICBNYXRjaCA9PiAiJFRlc3RDdXN0b21lclVzZXJMb2dpbjIgJFRlc3RDdXN0b21lclVzZXJMb2dpbjIiLAogICAgfSwKKTsKClRFU1Q6CmZvciBteSAkVGVzdCAoQFRlc3RzKSB7CiAgICAkQ29uZmlnT2JqZWN0LT5TZXQoCiAgICAgICAgS2V5ICAgPT4gJ1JlcGxhY2VDdXN0b21lclJlYWxOYW1lT25TZWNvbmRhcnlBcnRpY2xlQ29tbXVuaWNhdGlvbkNoYW5uZWxzJywKICAgICAgICBWYWx1ZSA9PiAkVGVzdC0+e0VmZmVjdGl2ZVZhbHVlfSwKICAgICk7CiAgICBteSAkU3VjY2VzcyA9ICRFdmVudE9iamVjdC0+UnVuKAogICAgICAgIEV2ZW50ID0+ICdBcnRpY2xlU2VuZCcsCiAgICAgICAgRGF0YSAgPT4gewogICAgICAgICAgICBUaWNrZXRJRCA9PiAkUHJpbWFyeVRpY2tldElELAogICAgICAgIH0sCiAgICAgICAgQ29uZmlnID0+IHt9LAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRTdWNjZXNzLAogICAgICAgICIkVGVzdC0+e05hbWV9IC0gQXJ0aWNsZVNlbmQgZXZlbnQgZXhlY3V0ZWQgY29ycmVjdGx5IiwKICAgICk7CgogICAgbXkgQEFydGljbGVzID0gJEFydGljbGVPYmplY3QtPkFydGljbGVMaXN0KAogICAgICAgIFRpY2tldElEID0+ICRTZWNvbmRhcnlUaWNrZXRJRCwKICAgICk7CgogICAgbXkgJEFydGljbGVCYWNrZW5kT2JqZWN0ID0gJEFydGljbGVPYmplY3QtPkJhY2tlbmRGb3JBcnRpY2xlKAogICAgICAgIFRpY2tldElEICA9PiAkQXJ0aWNsZXNbLTFdLT57VGlja2V0SUR9LAogICAgICAgIEFydGljbGVJRCA9PiAkQXJ0aWNsZXNbLTFdLT57QXJ0aWNsZUlEfSwKICAgICk7CgogICAgbXkgJUFydGljbGUgPSAkQXJ0aWNsZUJhY2tlbmRPYmplY3QtPkFydGljbGVHZXQoCiAgICAgICAgVGlja2V0SUQgID0+ICRBcnRpY2xlc1stMV0tPntUaWNrZXRJRH0sCiAgICAgICAgQXJ0aWNsZUlEID0+ICRBcnRpY2xlc1stMV0tPntBcnRpY2xlSUR9LAogICAgKTsKCiAgICBteSAkTWF0Y2hTdWNjZXNzID0gJEFydGljbGV7Qm9keX0gPX4gbXskVGVzdC0+e01hdGNofX0gLy8gMDsKCiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkTWF0Y2hTdWNjZXNzLAogICAgICAgICIkVGVzdC0+e05hbWV9IC0gTmV3IGFydGljbGUgYm9keSBtYXRjaGVkIGN1c3RvbWVyIHJlYWwgbmFtZTogJyRUZXN0LT57TWF0Y2h9JyIsCiAgICApOwp9CgoxOwo=</File>
        <File Permission="660" Location="var/httpd/htdocs/js/Core.Agent.Admin.DynamicFieldPrimarySecondary.js" Encode="Base64">Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjEgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKLy8gZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgQ29yZSA9IENvcmUgfHwge307CkNvcmUuQWdlbnQgPSBDb3JlLkFnZW50IHx8IHt9OwpDb3JlLkFnZW50LkFkbWluID0gQ29yZS5BZ2VudC5BZG1pbiB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlIENvcmUuQWdlbnQuQWRtaW4uRHluYW1pY0ZpZWxkUHJpbWFyeVNlY29uZGFyeQogKiBAbWVtYmVyb2YgQ29yZS5BZ2VudC5BZG1pbgogKiBAYXV0aG9yIE9UUlMgQUcKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgdGhlIHNwZWNpYWwgZnVuY3Rpb25zIGZvciBTeXN0ZW1Db25maWd1cmF0aW9uIG1vZHVsZS4KICovCiBDb3JlLkFnZW50LkFkbWluLkR5bmFtaWNGaWVsZFByaW1hcnlTZWNvbmRhcnkgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgJCgnLlNob3dXYXJuaW5nJykuYmluZCgnY2hhbmdlIGtleXVwJywgZnVuY3Rpb24gKCkgewogICAgICAgICQoJ3AuV2FybmluZycpLnJlbW92ZUNsYXNzKCdIaWRkZW4nKTsKICAgIH0pOwogICAgQ29yZS5BZ2VudC5BZG1pbi5EeW5hbWljRmllbGQuVmFsaWRhdGlvbkluaXQoKTsKCiAgICBDb3JlLkluaXQuUmVnaXN0ZXJOYW1lc3BhY2UoVGFyZ2V0TlMsICdBUFBfTU9EVUxFJyk7CgogICAgcmV0dXJuIFRhcmdldE5TOwp9KENvcmUuQWdlbnQuQWRtaW4uRHluYW1pY0ZpZWxkUHJpbWFyeVNlY29uZGFyeSB8fCB7fSkpOwo=</File>
        <File Permission="660" Location="var/httpd/htdocs/js/Core.Agent.TicketPrimarySecondary.js" Encode="Base64">Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjEgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwovLyAtLQovLyAkb3JpZ2luOiB6bnVueSAtIDRlODRlYTRiYjE5YWRhZTE5M2ZlMDhhYjE4MTIxMWQwZmM0YjhhMGEgLSB2YXIvaHR0cGQvaHRkb2NzL2pzL0NvcmUuQWdlbnQuVGlja2V0QWN0aW9uQ29tbW9uLmpzCi8vIC0tCi8vIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCi8vIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQovLyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KLy8gLS0KCiJ1c2Ugc3RyaWN0IjsKCnZhciBDb3JlID0gQ29yZSB8fCB7fTsKQ29yZS5BZ2VudCA9IENvcmUuQWdlbnQgfHwge307CgovLyAtLS0KLy8gWm51bnktUHJpbWFyeVNlY29uZGFyeQovLyAtLS0KLy8vKioKLy8gKiBAbmFtZXNwYWNlIENvcmUuQWdlbnQuVGlja2V0QWN0aW9uQ29tbW9uCi8vICogQG1lbWJlcm9mIENvcmUuQWdlbnQKLy8gKiBAYXV0aG9yIE9UUlMgQUcKLy8gKiBAZGVzY3JpcHRpb24KLy8gKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIHNwZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucyBmb3IgQWdlbnRUaWNrZXRBY3Rpb25Db21tb24uCi8vICovCi8vQ29yZS5BZ2VudC5UaWNrZXRBY3Rpb25Db21tb24gPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7Ci8qKgogKiBAbmFtZXNwYWNlIENvcmUuQWdlbnQuVGlja2V0UHJpbWFyeVNlY29uZGFyeQogKiBAbWVtYmVyb2YgQ29yZS5BZ2VudAogKiBAYXV0aG9yIE9UUlMgQUcKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciBUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5LgogKi8KQ29yZS5BZ2VudC5UaWNrZXRQcmltYXJ5U2Vjb25kYXJ5ID0gKGZ1bmN0aW9uIChUYXJnZXROUykgewovLyAtLS0KCiAgICAvKioKICAgICAqIEBuYW1lIEluaXQKICAgICAqIEBtZW1iZXJvZiBDb3JlLkFnZW50LlRpY2tldEFjdGlvbkNvbW1vbgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyB0aGUgbW9kdWxlIGZ1bmN0aW9uYWxpdHkuCiAgICAgKi8KICAgIFRhcmdldE5TLkluaXQgPSBmdW5jdGlvbiAoKSB7CgogICAgICAgIHZhciBEeW5hbWljRmllbGROYW1lcyA9IENvcmUuQ29uZmlnLkdldCgnRHluYW1pY0ZpZWxkTmFtZXMnKSwKICAgICAgICAgICAgRmllbGRzID0gWydUeXBlSUQnLCAnU2VydmljZUlEJywgJ1NMQUlEJywgJ05ld093bmVySUQnLCAnTmV3UmVzcG9uc2libGVJRCcsICdOZXdTdGF0ZUlEJywgJ05ld1ByaW9yaXR5SUQnXSwKICAgICAgICAgICAgTW9kaWZpZWRGaWVsZHM7CgogICAgICAgIC8vIEJpbmQgZXZlbnRzIHRvIHNwZWNpZmljIGZpZWxkcwogICAgICAgICQuZWFjaChGaWVsZHMsIGZ1bmN0aW9uKEluZGV4LCBWYWx1ZSkgewogICAgICAgICAgICBNb2RpZmllZEZpZWxkcyA9IENvcmUuRGF0YS5Db3B5T2JqZWN0KEZpZWxkcykuY29uY2F0KER5bmFtaWNGaWVsZE5hbWVzKTsKICAgICAgICAgICAgTW9kaWZpZWRGaWVsZHMuc3BsaWNlKEluZGV4LCAxKTsKCiAgICAgICAgICAgIEZpZWxkVXBkYXRlKFZhbHVlLCBNb2RpZmllZEZpZWxkcyk7CiAgICAgICAgfSk7CgogICAgICAgIC8vIEJpbmQgZXZlbnQgdG8gUXVldWUgZmllbGQuCiAgICAgICAgJCgnI05ld1F1ZXVlSUQnKS5vbignY2hhbmdlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICBDb3JlLkFKQVguRm9ybVVwZGF0ZSgkKCcjQ29tcG9zZScpLCAnQUpBWFVwZGF0ZScsICdOZXdRdWV1ZUlEJywgWydUeXBlSUQnLCAnU2VydmljZUlEJywgJ05ld093bmVySUQnLCAnTmV3UmVzcG9uc2libGVJRCcsICdOZXdTdGF0ZUlEJywgJ05ld1ByaW9yaXR5SUQnLCAnU3RhbmRhcmRUZW1wbGF0ZUlEJ10uY29uY2F0KER5bmFtaWNGaWVsZE5hbWVzKSk7CiAgICAgICAgfSk7CgogICAgICAgIC8vIEJpbmQgZXZlbnQgdG8gU3RhbmRhcmRUZW1wbGF0ZSBmaWVsZC4KICAgICAgICAkKCcjU3RhbmRhcmRUZW1wbGF0ZUlEJykub24oJ2NoYW5nZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgQ29yZS5BZ2VudC5UaWNrZXRBY3Rpb24uQ29uZmlybVRlbXBsYXRlT3ZlcndyaXRlKCdSaWNoVGV4dCcsICQodGhpcyksIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIENvcmUuQUpBWC5Gb3JtVXBkYXRlKCQoJyNDb21wb3NlJyksICdBSkFYVXBkYXRlJywgJ1N0YW5kYXJkVGVtcGxhdGVJRCcsIFsnUmljaFRleHRGaWVsZCddKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gQmluZCBjbGljayBldmVudCB0byBDcmVhdGVBcnRpY2xlIGNoZWNrYm94IGFuZCB0b2dnbGUgd2lkZ2V0LgogICAgICAgICQoJyNDcmVhdGVBcnRpY2xlLCAjV2lkZ2V0QXJ0aWNsZSAuV2lkZ2V0QWN0aW9uLlRvZ2dsZScpLm9uKCdjbGljaycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgJCgnI1dpZGdldEFydGljbGUgLlZhbGlkYXRlX0RlcGVuZGluZ1JlcXVpcmVkQU5ELlZhbGlkYXRlX0RlcGVuZGluZ19DcmVhdGVBcnRpY2xlJykuZWFjaChmdW5jdGlvbiAoSW5kZXgsIEVsZW1lbnQpIHsKICAgICAgICAgICAgICAgIHZhciAkRWxlbWVudCA9ICQoRWxlbWVudCk7CiAgICAgICAgICAgICAgICB2YXIgQ2xvc2VzdENsYXNzID0gJ0ZpZWxkJzsKICAgICAgICAgICAgICAgIGlmICgkRWxlbWVudC5hdHRyKCdpZCcpID09PSAnUmljaFRleHQnKSB7CiAgICAgICAgICAgICAgICAgICAgQ2xvc2VzdENsYXNzID0gJ1JpY2hUZXh0RmllbGQnOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCQoJyNDcmVhdGVBcnRpY2xlJykucHJvcCgnY2hlY2tlZCcpICYmICQoJyNXaWRnZXRBcnRpY2xlJykuaGFzQ2xhc3MoJ0V4cGFuZGVkJykpIHsKICAgICAgICAgICAgICAgICAgICAkRWxlbWVudC5jbG9zZXN0KCcuJyArIENsb3Nlc3RDbGFzcykKICAgICAgICAgICAgICAgICAgICAgICAgLnByZXYoJ2xhYmVsJykKICAgICAgICAgICAgICAgICAgICAgICAgLmFkZENsYXNzKCdNYW5kYXRvcnknKQogICAgICAgICAgICAgICAgICAgICAgICAucHJlcGVuZCgnPHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4nKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRFbGVtZW50LmNsb3Nlc3QoJy4nICsgQ2xvc2VzdENsYXNzKQogICAgICAgICAgICAgICAgICAgICAgICAucHJldignbGFiZWwnKQogICAgICAgICAgICAgICAgICAgICAgICAucmVtb3ZlQ2xhc3MoJ01hbmRhdG9yeScpCiAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKCdzcGFuJykKICAgICAgICAgICAgICAgICAgICAgICAgLnJlbW92ZSgpOwogICAgICAgICAgICAgICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5VbkhpZ2hsaWdodEVycm9yKEVsZW1lbnQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgIH07CgogICAgLyoqCiAgICAgKiBAcHJpdmF0ZQogICAgICogQG5hbWUgRmllbGRVcGRhdGUKICAgICAqIEBtZW1iZXJvZiBDb3JlLkFnZW50LlRpY2tldEFjdGlvbkNvbW1vbgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0ge1N0cmluZ30gVmFsdWUgLSBGaWVsZElECiAgICAgKiBAcGFyYW0ge0FycmF5fSBNb2RpZmllZEZpZWxkcyAtIEZpZWxkcwogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIENyZWF0ZSBvbiBjaGFuZ2UgZXZlbnQgaGFuZGxlcgogICAgICovCiAgICBmdW5jdGlvbiBGaWVsZFVwZGF0ZSAoVmFsdWUsIE1vZGlmaWVkRmllbGRzKSB7CiAgICAgICAgJCgnIycgKyBWYWx1ZSkub24oJ2NoYW5nZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgQ29yZS5BSkFYLkZvcm1VcGRhdGUoJCgnI0NvbXBvc2UnKSwgJ0FKQVhVcGRhdGUnLCBWYWx1ZSwgTW9kaWZpZWRGaWVsZHMpOwogICAgICAgIH0pOwogICAgfQoKICAgIENvcmUuSW5pdC5SZWdpc3Rlck5hbWVzcGFjZShUYXJnZXROUywgJ0FQUF9NT0RVTEUnKTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Ci8vIC0tLQovLyBabnVueS1QcmltYXJ5U2Vjb25kYXJ5Ci8vIC0tLQovL30oQ29yZS5BZ2VudC5UaWNrZXRBY3Rpb25Db21tb24gfHwge30pKTsKfShDb3JlLkFnZW50LlRpY2tldFByaW1hcnlTZWNvbmRhcnkgfHwge30pKTsKLy8gLS0tCg==</File>
        <File Permission="660" Location="var/packagesetup/ZnunyPrimarySecondary.pm" Encode="Base64">IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIxIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDIxIFpudW55IEdtYkgsIGh0dHBzOi8vem51bnkub3JnLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKcGFja2FnZSB2YXI6OnBhY2thZ2VzZXR1cDo6Wm51bnlQcmltYXJ5U2Vjb25kYXJ5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEQicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZFZhbHVlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnOjpNaWdyYXRpb24nLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpabnVueUhlbHBlcicsCik7Cgo9aGVhZDEgTkFNRQoKdmFyOjpwYWNrYWdlc2V0dXA6OlpudW55UHJpbWFyeVNlY29uZGFyeSAtIGNvZGUgdG8gZXhlY3V0ZSBkdXJpbmcgcGFja2FnZSBpbnN0YWxsYXRpb24KCj1oZWFkMSBTWU5PUFNJUwoKRnVuY3Rpb25zIGZvciBpbnN0YWxsaW5nIHRoZSBabnVueVByaW1hcnlTZWNvbmRhcnkgcGFja2FnZS4KCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdC4gRG8gbm90IHVzZSBpdCBkaXJlY3RseSwgaW5zdGVhZCB1c2U6CgogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyOwogICAgbG9jYWwgJEtlcm5lbDo6T00gPSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlci0+bmV3KCk7CiAgICBteSAkQ29kZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ3Zhcjo6cGFja2FnZXNldHVwOjpabnVueVByaW1hcnlTZWNvbmRhcnknKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBGb3JjZSBhIHJlbG9hZCBvZiBaWlpBdXRvLnBtIHRvIGdldCB0aGUgZnJlc2ggY29uZmlndXJhdGlvbiB2YWx1ZXMuCiAgICBNT0RVTEU6CiAgICBmb3IgbXkgJE1vZHVsZSAoIHNvcnQga2V5cyAlSU5DICkgewogICAgICAgIG5leHQgTU9EVUxFIGlmICRNb2R1bGUgIX4gbS9aWlpBQT91dG9cLnBtJC87CiAgICAgICAgZGVsZXRlICRJTkN7JE1vZHVsZX07CiAgICB9CgogICAgJEtlcm5lbDo6T00tPk9iamVjdHNEaXNjYXJkKAogICAgICAgIE9iamVjdHMgPT4gWydLZXJuZWw6OkNvbmZpZyddLAogICAgKTsKCiAgICBteSAkRHluYW1pY0ZpZWxkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpOwoKICAgICMgZ2V0IGR5bmFtaWMgZmllbGRzIGxpc3QKICAgICRTZWxmLT57RHluYW1pY0ZpZWxkc0xpc3R9ID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgID0+IDAsCiAgICAgICAgT2JqZWN0VHlwZSA9PiBbJ1RpY2tldCddLAogICAgKTsKCiAgICBpZiAoICFJc0FycmF5UmVmV2l0aERhdGEoICRTZWxmLT57RHluYW1pY0ZpZWxkc0xpc3R9ICkgKSB7CiAgICAgICAgJFNlbGYtPntEeW5hbWljRmllbGRzTGlzdH0gPSBbXTsKICAgIH0KCiAgICAjIGNyZWF0ZSBhIGR5bmFtaWMgZmllbGQgbG9va3VwIHRhYmxlIChieSBuYW1lKQogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGQgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZHNMaXN0fSB9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkRHluYW1pY0ZpZWxkOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZC0+e05hbWV9OwogICAgICAgICRTZWxmLT57RHluYW1pY0ZpZWxkTG9va3VwfS0+eyAkRHluYW1pY0ZpZWxkLT57TmFtZX0gfSA9ICREeW5hbWljRmllbGQ7CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBDb2RlSW5zdGFsbCgpCgpydW4gdGhlIGNvZGUgaW5zdGFsbCBwYXJ0CgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlSW5zdGFsbCgpOwoKPWN1dAoKc3ViIENvZGVJbnN0YWxsIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyAgICAgbXkgJE1hc3RlclNsYXZlRHluYW1pY0ZpZWxkSUQgPSAkU2VsZi0+X0NoZWNrTWFzdGVyU2xhdmVEYXRhKCk7CgogICAgbXkgJENvbmZpZ09iamVjdCAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkRHluYW1pY0ZpZWxkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpOwoKICAgIG15ICRNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZCA9ICRDb25maWdPYmplY3QtPkdldCgnTWFzdGVyU2xhdmU6OkR5bmFtaWNGaWVsZCcpIHx8ICdNYXN0ZXJTbGF2ZSc7CiAgICBteSAkT2xkRHluYW1pY0ZpZWxkICAgICAgICAgPSAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGRHZXQoCiAgICAgICAgTmFtZSA9PiAkTWFzdGVyU2xhdmVEeW5hbWljRmllbGQsCiAgICApOwoKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoJE9sZER5bmFtaWNGaWVsZCkgKSB7CgogICAgICAgICMgTWlncmF0ZSBEeW5hbWljRmllbGRDb25maWcuCiAgICAgICAgJFNlbGYtPl9NaWdyYXRlVG9QcmltYXJ5U2Vjb25kYXJ5KCVQYXJhbSk7CgogICAgICAgICMgTWlncmF0ZSBTeXNDb25maWcKICAgICAgICAkU2VsZi0+X01pZ3JhdGVQcmltYXJ5U2Vjb25kYXJ5U3lzQ29uZmlnU2V0dGluZ3MoJVBhcmFtKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICMgQ3JlYXRlIER5bmFtaWNGaWVsZHMKICAgICAgICAkU2VsZi0+X1NldER5bmFtaWNGaWVsZHMoJVBhcmFtKTsKICAgIH0KCiAgICAjIFNldCBkYXNoYm9hcmQgY29uZmlnIGlmIG5lZWRlZAogICAgJFNlbGYtPl9TZXREYXNoYm9hcmRDb25maWcoJVBhcmFtKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQ29kZVJlaW5zdGFsbCgpCgpydW4gdGhlIGNvZGUgcmVpbnN0YWxsIHBhcnQKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVSZWluc3RhbGwoKTsKCj1jdXQKCnN1YiBDb2RlUmVpbnN0YWxsIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuIGlmICEkU2VsZi0+Q29kZUluc3RhbGwoKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQ29kZVVwZ3JhZGUoKQoKcnVuIHRoZSBjb2RlIHVwZ3JhZGUgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVVwZ3JhZGUoKTsKCj1jdXQKCnN1YiBDb2RlVXBncmFkZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiBpZiAhJFNlbGYtPkNvZGVJbnN0YWxsKCk7CgogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIENvZGVVbmluc3RhbGwoKQoKcnVuIHRoZSBjb2RlIHVuaW5zdGFsbCBwYXJ0CgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlVW5pbnN0YWxsKCk7Cgo9Y3V0CgpzdWIgQ29kZVVuaW5zdGFsbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRTZWxmLT5fUmVtb3ZlRHluYW1pY0ZpZWxkcygpOwoKICAgIHJldHVybiAxOwp9CgpzdWIgX1NldER5bmFtaWNGaWVsZHMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ2FjaGVPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyk7CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICREQk9iamVjdCAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKICAgIG15ICRMb2dPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBuYW1lcyBmcm9tIFN5c0NvbmZpZwogICAgbXkgJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGQgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1ByaW1hcnlTZWNvbmRhcnk6OkR5bmFtaWNGaWVsZCcpIHx8ICdQcmltYXJ5U2Vjb25kYXJ5JzsKCiAgICAjIHNldCBhdHRyaWJ1dGVzIG9mIG5ldyBkeW5hbWljIGZpZWxkcwogICAgbXkgJU5ld0R5bmFtaWNGaWVsZHMgPSAoCiAgICAgICAgJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGQgPT4gewogICAgICAgICAgICBOYW1lICAgICAgID0+ICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkLAogICAgICAgICAgICBMYWJlbCAgICAgID0+ICdQcmltYXJ5IFRpY2tldCcsCiAgICAgICAgICAgIEZpZWxkVHlwZSAgPT4gJ1ByaW1hcnlTZWNvbmRhcnknLAogICAgICAgICAgICBPYmplY3RUeXBlID0+ICdUaWNrZXQnLAogICAgICAgICAgICBDb25maWcgICAgID0+IHsKICAgICAgICAgICAgICAgIERlZmF1bHRWYWx1ZSAgICAgICA9PiAnJywKICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgVHJhbnNsYXRhYmxlVmFsdWVzID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIEludGVybmFsRmllbGQgPT4gMSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIHNldCBNYXhGaWVsZE9yZGVyIChuZWVkZWQgZm9yIGFkZGluZyBuZXcgZHluYW1pYyBmaWVsZHMpCiAgICBteSAkTWF4RmllbGRPcmRlciA9IDA7CiAgICBpZiAoICFJc0FycmF5UmVmV2l0aERhdGEoICRTZWxmLT57RHluYW1pY0ZpZWxkc0xpc3R9ICkgKSB7CiAgICAgICAgJE1heEZpZWxkT3JkZXIgPSAxOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGRzTGlzdH0gfSApIHsKICAgICAgICAgICAgaWYgKCBpbnQgJER5bmFtaWNGaWVsZENvbmZpZy0+e0ZpZWxkT3JkZXJ9ID4gaW50ICRNYXhGaWVsZE9yZGVyICkgewogICAgICAgICAgICAgICAgJE1heEZpZWxkT3JkZXIgPSAkRHluYW1pY0ZpZWxkQ29uZmlnLT57RmllbGRPcmRlcn07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBvYmplY3QKICAgIG15ICREeW5hbWljRmllbGRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyk7CgogICAgZm9yIG15ICROZXdGaWVsZE5hbWUgKCBzb3J0IGtleXMgJU5ld0R5bmFtaWNGaWVsZHMgKSB7CgogICAgICAgICMgY2hlY2sgaWYgZHluYW1pYyBmaWVsZCBhbHJlYWR5IGV4aXN0cwogICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRTZWxmLT57RHluYW1pY0ZpZWxkTG9va3VwfS0+eyROZXdGaWVsZE5hbWV9ICkgKSB7CgogICAgICAgICAgICAjIGdldCB0aGUgZHluYW1pYyBmaWVsZCBjb25maWd1cmF0aW9uCiAgICAgICAgICAgIG15ICREeW5hbWljRmllbGRDb25maWcgPSAkU2VsZi0+e0R5bmFtaWNGaWVsZExvb2t1cH0tPnskTmV3RmllbGROYW1lfTsKCiAgICAgICAgICAgIG15ICRVcGRhdGU7CgogICAgICAgICAgICAjIHVwZGF0ZSBmaWVsZCBjb25maWd1cmF0aW9uIGlmIGl0IHdhcyBvdGhlciB0aGFuIFByaW1hcnlTZWNvbmRhcnkgKGUuZy4gRHJvcGRvd24pCiAgICAgICAgICAgIGlmICggJER5bmFtaWNGaWVsZENvbmZpZy0+e0ZpZWxkVHlwZX0gbmUgJ1ByaW1hcnlTZWNvbmRhcnknICkgewogICAgICAgICAgICAgICAgbXkgJElEID0gJER5bmFtaWNGaWVsZENvbmZpZy0+e0lEfTsKICAgICAgICAgICAgICAgICV7JER5bmFtaWNGaWVsZENvbmZpZ30gPSAoICV7JER5bmFtaWNGaWVsZENvbmZpZ30sICV7ICROZXdEeW5hbWljRmllbGRzeyROZXdGaWVsZE5hbWV9IH0gKTsKICAgICAgICAgICAgICAgICRVcGRhdGUgPSAxOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGlmIGR5bmFtaWMgZmllbGQgZXhpc3RzIG1ha2Ugc3VyZSBpcyB2YWxpZAogICAgICAgICAgICBpZiAoICREeW5hbWljRmllbGRDb25maWctPntWYWxpZElEfSBuZSAnMScgKSB7CiAgICAgICAgICAgICAgICAkVXBkYXRlID0gMTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCRVcGRhdGUpIHsKCiAgICAgICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZFVwZGF0ZSgKICAgICAgICAgICAgICAgICAgICAleyREeW5hbWljRmllbGRDb25maWd9LAogICAgICAgICAgICAgICAgICAgIFZhbGlkSUQgPT4gMSwKICAgICAgICAgICAgICAgICAgICBSZW9yZGVyID0+IDAsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDb3VsZCBub3Qgc2V0IGR5bmFtaWMgZmllbGQgJyROZXdGaWVsZE5hbWUnIHRvIHZhbGlkISIsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICREeW5hbWljRmllbGRDb25maWctPntJbnRlcm5hbEZpZWxkfSBuZSAnMScgKSB7CgogICAgICAgICAgICAgICAgIyB1cGRhdGUgSW50ZXJuYWxGaWVsZCB2YWx1ZSBtYW51YWxseSBzaW5jZSBBUEkgZG9lcyBub3Qgc3VwcG9ydAogICAgICAgICAgICAgICAgIyBpbnRlcm5hbF9maWVsZCB1cGRhdGUKICAgICAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICAgICAgICAgICAgICBVUERBVEUgZHluYW1pY19maWVsZAogICAgICAgICAgICAgICAgICAgICAgICBTRVQgaW50ZXJuYWxfZmllbGQgPSAxCiAgICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIGlkID0gPycsCiAgICAgICAgICAgICAgICAgICAgQmluZCA9PiBbIFwkRHluYW1pY0ZpZWxkQ29uZmlnLT57SUR9IF0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiQ291bGQgbm90IHNldCBkeW5hbWljIGZpZWxkICckTmV3RmllbGROYW1lJyBhcyBpbnRlcm5hbCEiLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBjbGVhbiBkeW5hbWljIGZpZWxkIGNhY2hlCiAgICAgICAgICAgICAgICAkQ2FjaGVPYmplY3QtPkNsZWFuVXAoCiAgICAgICAgICAgICAgICAgICAgVHlwZSA9PiAnRHluYW1pY0ZpZWxkJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgb3RoZXJ3aXNlIGNyZWF0ZSBpdAogICAgICAgIGVsc2UgewogICAgICAgICAgICAkTWF4RmllbGRPcmRlcisrOwogICAgICAgICAgICBteSAkSUQgPSAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGRBZGQoCiAgICAgICAgICAgICAgICAleyAkTmV3RHluYW1pY0ZpZWxkc3skTmV3RmllbGROYW1lfSB9LAogICAgICAgICAgICAgICAgRmllbGRPcmRlciA9PiAkTWF4RmllbGRPcmRlciwKICAgICAgICAgICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICggISRJRCApIHsKICAgICAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDb3VsZCBub3QgYWRkIGR5bmFtaWMgZmllbGQgJyROZXdGaWVsZE5hbWUnISIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgZW5hYmxlIGR5bmFtaWMgZmllbGQgZm9yIHRpY2tldCB6b29tCiAgICAjIGdldCBvbGQgY29uZmlndXJhdGlvbgogICAgbXkgJFdpbmRvd0NvbmZpZyAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Wm9vbScpOwogICAgbXkgJUR5bmFtaWNGaWVsZHMgPSAleyAkV2luZG93Q29uZmlnLT57RHluYW1pY0ZpZWxkfSB8fCB7fSB9OwoKICAgICREeW5hbWljRmllbGRzeyRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkfSA9CiAgICAgICAgZGVmaW5lZCAkRHluYW1pY0ZpZWxkc3skUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZH0KICAgICAgICA/ICREeW5hbWljRmllbGRzeyRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkfQogICAgICAgIDogMTsKCiAgICBteSAkU3lzQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpOwogICAgcmV0dXJuIDAgaWYgISRTeXNDb25maWdPYmplY3QtPlNldHRpbmdzU2V0KAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgQ29tbWVudHMgPT4gJ1pudW55UHJpbWFyeVNlY29uZGFyeSAtIGRlcGxveSBBZ2VudFRpY2tldFpvb20gZHluYW1pYyBmaWVsZHMnLAogICAgICAgIFNldHRpbmdzID0+IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Wm9vbSMjI0R5bmFtaWNGaWVsZCcsCiAgICAgICAgICAgICAgICBFZmZlY3RpdmVWYWx1ZSA9PiBcJUR5bmFtaWNGaWVsZHMsCiAgICAgICAgICAgICAgICBJc1ZhbGlkICAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIF0sCiAgICApOwoKICAgIHJldHVybiAxOwp9CgpzdWIgX1JlbW92ZUR5bmFtaWNGaWVsZHMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJER5bmFtaWNGaWVsZE9iamVjdCAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpOwogICAgbXkgJER5bmFtaWNGaWVsZFZhbHVlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZFZhbHVlJyk7CiAgICBteSAkTG9nT2JqZWN0ICAgICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBuYW1lcyBmcm9tIFN5c0NvbmZpZwogICAgbXkgJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGQgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1ByaW1hcnlTZWNvbmRhcnk6OkR5bmFtaWNGaWVsZCcpIHx8ICdQcmltYXJ5U2Vjb25kYXJ5JzsKCiAgICAjIGNoZWNrIGlmIGR5bmFtaWMgZmllbGQgYWxyZWFkeSBleGlzdHMKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRTZWxmLT57RHluYW1pY0ZpZWxkTG9va3VwfS0+eyRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkfSApICkgewoKICAgICAgICAjIGdldCB0aGUgZmllbGQgSUQKICAgICAgICBteSAkRHluYW1pY0ZpZWxkSUQgPSAkU2VsZi0+e0R5bmFtaWNGaWVsZExvb2t1cH0tPnskUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZH0tPntJRH07CgogICAgICAgICMgZGVsZXRlIGFsbCBmaWVsZCB2YWx1ZXMKICAgICAgICBteSAkVmFsdWVzRGVsZXRlU3VjY2VzcyA9ICREeW5hbWljRmllbGRWYWx1ZU9iamVjdC0+QWxsVmFsdWVzRGVsZXRlKAogICAgICAgICAgICBGaWVsZElEID0+ICREeW5hbWljRmllbGRJRCwKICAgICAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgICk7CgogICAgICAgIGlmICgkVmFsdWVzRGVsZXRlU3VjY2VzcykgewoKICAgICAgICAgICAgIyBkZWxldGUgZmllbGQKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGREZWxldGUoCiAgICAgICAgICAgICAgICBJRCAgICAgID0+ICREeW5hbWljRmllbGRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICAgICAgICAgICAgIFJlb3JkZXIgPT4gMSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvdWxkIG5vdCBkZWxldGUgZHluYW1pYyBmaWVsZCAnJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGQnISIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvdWxkIG5vdCBkZWxldGUgdmFsdWVzIGZvciBkeW5hbWljIGZpZWxkICckUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCchIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJFN5c0NvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKTsKCiAgICAjIGRpc2FibGUgU3lzQ29uZmlnIHNldHRpbmdzCiAgICByZXR1cm4gaWYgISRTeXNDb25maWdPYmplY3QtPlNldHRpbmdzU2V0KAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgQ29tbWVudHMgPT4gJ1pudW55UHJpbWFyeVNlY29uZGFyeSAtICMgZGlzYWJsZSBTeXNDb25maWcgc2V0dGluZ3MuJywKICAgICAgICBTZXR0aW5ncyA9PiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdEeW5hbWljRmllbGRzOjpEcml2ZXIjIyNQcmltYXJ5U2Vjb25kYXJ5JywKICAgICAgICAgICAgICAgIEVmZmVjdGl2ZVZhbHVlID0+IHsKICAgICAgICAgICAgICAgICAgICBEaXNwbGF5TmFtZSAgPT4gJ1ByaW1hcnkgLyBTZWNvbmRhcnknLAogICAgICAgICAgICAgICAgICAgIE1vZHVsZSAgICAgICA9PiAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjpQcmltYXJ5U2Vjb25kYXJ5JywKICAgICAgICAgICAgICAgICAgICBDb25maWdEaWFsb2cgPT4gJ0FkbWluRHluYW1pY0ZpZWxkUHJpbWFyeVNlY29uZGFyeScsCiAgICAgICAgICAgICAgICAgICAgRGlzYWJsZWRBZGQgID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgSXNWYWxpZCA9PiAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAnUHJlQXBwbGljYXRpb25Nb2R1bGUjIyNBZ2VudFByZVByaW1hcnlTZWNvbmRhcnknLAogICAgICAgICAgICAgICAgRWZmZWN0aXZlVmFsdWUgPT4gJ0tlcm5lbDo6TW9kdWxlczo6QWdlbnRQcmVQcmltYXJ5U2Vjb25kYXJ5JywKICAgICAgICAgICAgICAgIElzVmFsaWQgICAgICAgID0+IDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgXSwKICAgICk7CgogICAgIyBkaXNjYXJkIGNvbmZpZyBvYmplY3QgYW5kIGR5bmFtaWMgZmllbGQgYmFja2VuZCB0byBwcmV2ZW50IGVycm9yIG1lc3NhZ2VzIGR1ZSBtaXNzaW5nIGRyaXZlcgogICAgJEtlcm5lbDo6T00tPk9iamVjdHNEaXNjYXJkKAogICAgICAgIE9iamVjdHMgPT4gWyAnS2VybmVsOjpDb25maWcnLCAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcgXSwKICAgICk7CgogICAgIyBkaXNhYmxlIGR5bmFtaWMgZmllbGQgZm9yIHRpY2tldCB6b29tCiAgICAjIGdldCBvbGQgY29uZmlndXJhdGlvbgogICAgbXkgJFdpbmRvd0NvbmZpZyAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Wm9vbScpOwogICAgbXkgJUR5bmFtaWNGaWVsZHMgPSAleyAkV2luZG93Q29uZmlnLT57RHluYW1pY0ZpZWxkfSB8fCB7fSB9OwoKICAgIGlmICggZGVmaW5lZCAkRHluYW1pY0ZpZWxkc3skUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZH0gKSB7CiAgICAgICAgJER5bmFtaWNGaWVsZHN7JFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGR9ID0gMDsKICAgIH0KCiAgICByZXR1cm4gaWYgISRTeXNDb25maWdPYmplY3QtPlNldHRpbmdzU2V0KAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgQ29tbWVudHMgPT4gJ1pudW55UHJpbWFyeVNlY29uZGFyeSAtIGRlcGxveSBkeW5hbWljIGZpZWxkcy4nLAogICAgICAgIFNldHRpbmdzID0+IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Wm9vbSMjI0R5bmFtaWNGaWVsZCcsCiAgICAgICAgICAgICAgICBFZmZlY3RpdmVWYWx1ZSA9PiBcJUR5bmFtaWNGaWVsZHMsCiAgICAgICAgICAgICAgICBJc1ZhbGlkICAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIF0sCiAgICApOwoKICAgIHJldHVybiAxOwp9CgpzdWIgX1NldERhc2hib2FyZENvbmZpZyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRDb25maWdPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJFN5c0NvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKTsKCiAgICBteSAkRGFzaGJvYXJkQ29uZmlnID0gJENvbmZpZ09iamVjdC0+R2V0KCdEYXNoYm9hcmRCYWNrZW5kJykgLy8ge307CiAgICByZXR1cm4gMSBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJERhc2hib2FyZENvbmZpZyk7CgogICAgIwogICAgIyBSZXBsYWNlIGR5bmFtaWMgZmllbGQgbmFtZSAod2hpY2ggaXMgY29uZmlndXJhYmxlKSBpbiBhdHRyaWJ1dGVzIG9mIGRhc2hib2FyZCBzZXR0aW5ncy4KICAgICMKCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIG5hbWUgZnJvbSBTeXNDb25maWcKICAgIG15ICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkID0gJENvbmZpZ09iamVjdC0+R2V0KCdQcmltYXJ5U2Vjb25kYXJ5OjpEeW5hbWljRmllbGQnKSB8fCAnUHJpbWFyeVNlY29uZGFyeSc7CgogICAgbXkgJFByaW1hcnlDb25maWcgICA9ICREYXNoYm9hcmRDb25maWctPnsnMDkwMC1UaWNrZXRQcmltYXJ5J30gICAvLyB7fTsKICAgIG15ICRTZWNvbmRhcnlDb25maWcgPSAkRGFzaGJvYXJkQ29uZmlnLT57JzA5MTAtVGlja2V0U2Vjb25kYXJ5J30gLy8ge307CgogICAgQ09ORklHOgogICAgZm9yIG15ICRDb25maWcgKCAkUHJpbWFyeUNvbmZpZywgJFNlY29uZGFyeUNvbmZpZyApIHsKICAgICAgICBuZXh0IENPTkZJRyBpZiAhSXNTdHJpbmdXaXRoRGF0YSggJFByaW1hcnlDb25maWctPntBdHRyaWJ1dGVzfSApOwoKICAgICAgICAkQ29uZmlnLT57QXR0cmlidXRlc30gPX4gc3tEeW5hbWljRmllbGRfUHJpbWFyeVNlY29uZGFyeX17RHluYW1pY0ZpZWxkXyRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkfWc7CiAgICB9CgogICAgcmV0dXJuIGlmICEkU3lzQ29uZmlnT2JqZWN0LT5TZXR0aW5nc1NldCgKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgIENvbW1lbnRzID0+ICdabnVueVByaW1hcnlTZWNvbmRhcnkgLSBkZXBsb3kgZHluYW1pYyBmaWVsZHMgZm9yIGRhc2hib2FyZC4nLAogICAgICAgIFNldHRpbmdzID0+IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ0Rhc2hib2FyZEJhY2tlbmQjIyMwOTAwLVRpY2tldFByaW1hcnknLAogICAgICAgICAgICAgICAgRWZmZWN0aXZlVmFsdWUgPT4gJFByaW1hcnlDb25maWcsCiAgICAgICAgICAgICAgICBJc1ZhbGlkICAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAnRGFzaGJvYXJkQmFja2VuZCMjIzA5MTAtVGlja2V0U2Vjb25kYXJ5JywKICAgICAgICAgICAgICAgIEVmZmVjdGl2ZVZhbHVlID0+ICRTZWNvbmRhcnlDb25maWcsCiAgICAgICAgICAgICAgICBJc1ZhbGlkICAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgIF0sCiAgICApOwoKICAgIHJldHVybiAxOwp9CgpzdWIgX01pZ3JhdGVQcmltYXJ5U2Vjb25kYXJ5U3lzQ29uZmlnU2V0dGluZ3MgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkQ29uZmlnT2JqZWN0ICAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICRTeXNDb25maWdPYmplY3QgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyk7CiAgICBteSAkU3lzQ29uZmlnTWlncmF0aW9uT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZzo6TWlncmF0aW9uJyk7CiAgICBteSAkWm51bnlIZWxwZXJPYmplY3QgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlpudW55SGVscGVyJyk7CiAgICBteSAkTG9nT2JqZWN0ICAgICAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwoKICAgIG15ICRVc2VySUQgPSAxOwoKICAgIG15ICVSZW5hbWVkU3lzQ29uZmlnT3B0aW9ucyA9ICgKICAgICAgICAnTWFzdGVyU2xhdmU6OktlZXBQYXJlbnRDaGlsZEFmdGVyVXBkYXRlJyA9PiBbJ1ByaW1hcnlTZWNvbmRhcnk6OktlZXBQYXJlbnRDaGlsZEFmdGVyVXBkYXRlJ10sCiAgICAgICAgJ1JlcGxhY2VDdXN0b21lclJlYWxOYW1lT25TbGF2ZUFydGljbGVDb21tdW5pY2F0aW9uQ2hhbm5lbHMnID0+CiAgICAgICAgICAgIFsnUmVwbGFjZUN1c3RvbWVyUmVhbE5hbWVPblNlY29uZGFyeUFydGljbGVDb21tdW5pY2F0aW9uQ2hhbm5lbHMnXSwKICAgICAgICAnRGFzaGJvYXJkQmFja2VuZCMjIzA5MTAtVGlja2V0U2xhdmUnICA9PiBbJ0Rhc2hib2FyZEJhY2tlbmQjIyMwOTEwLVRpY2tldFNlY29uZGFyeSddLAogICAgICAgICdEYXNoYm9hcmRCYWNrZW5kIyMjMDkwMC1UaWNrZXRNYXN0ZXInID0+IFsnRGFzaGJvYXJkQmFja2VuZCMjIzA5MDAtVGlja2V0UHJpbWFyeSddLAogICAgICAgICdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjTWFzdGVyU2xhdmVNYW5kYXRvcnknID0+CiAgICAgICAgICAgIFsnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjUHJpbWFyeVNlY29uZGFyeU1hbmRhdG9yeSddLAogICAgICAgICdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjSGlzdG9yeUNvbW1lbnQnID0+CiAgICAgICAgICAgIFsnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjSGlzdG9yeUNvbW1lbnQnXSwKICAgICAgICAnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSMjI0hpc3RvcnlUeXBlJyA9PgogICAgICAgICAgICBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI0hpc3RvcnlUeXBlJ10sCiAgICAgICAgJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TWFzdGVyU2xhdmUjIyNUaXRsZScgPT4gWydUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkjIyNUaXRsZSddLAogICAgICAgICdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjUHJpb3JpdHlEZWZhdWx0JyA9PgogICAgICAgICAgICBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI1ByaW9yaXR5RGVmYXVsdCddLAogICAgICAgICdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjUHJpb3JpdHknID0+CiAgICAgICAgICAgIFsnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjUHJpb3JpdHknXSwKICAgICAgICAnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSMjI0lzVmlzaWJsZUZvckN1c3RvbWVyRGVmYXVsdCcgPT4KICAgICAgICAgICAgWydUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkjIyNJc1Zpc2libGVGb3JDdXN0b21lckRlZmF1bHQnXSwKICAgICAgICAnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSMjI0luZm9ybUFnZW50JyA9PgogICAgICAgICAgICBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI0luZm9ybUFnZW50J10sCiAgICAgICAgJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TWFzdGVyU2xhdmUjIyNJbnZvbHZlZEFnZW50JyA9PgogICAgICAgICAgICBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI0ludm9sdmVkQWdlbnQnXSwKICAgICAgICAnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSMjI1JpY2hUZXh0SGVpZ2h0JyA9PgogICAgICAgICAgICBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI1JpY2hUZXh0SGVpZ2h0J10sCiAgICAgICAgJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TWFzdGVyU2xhdmUjIyNSaWNoVGV4dFdpZHRoJyA9PgogICAgICAgICAgICBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI1JpY2hUZXh0V2lkdGgnXSwKICAgICAgICAnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSMjI0JvZHknID0+IFsnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjQm9keSddLAogICAgICAgICdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjU3ViamVjdCcgPT4KICAgICAgICAgICAgWydUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkjIyNTdWJqZWN0J10sCiAgICAgICAgJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TWFzdGVyU2xhdmUjIyNOb3RlTWFuZGF0b3J5JyA9PgogICAgICAgICAgICBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI05vdGVNYW5kYXRvcnknXSwKICAgICAgICAnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSMjI05vdGUnID0+IFsnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjTm90ZSddLAogICAgICAgICdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjU3RhdGVEZWZhdWx0JyA9PgogICAgICAgICAgICBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI1N0YXRlRGVmYXVsdCddLAogICAgICAgICdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjU3RhdGVUeXBlJyA9PgogICAgICAgICAgICBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI1N0YXRlVHlwZSddLAogICAgICAgICdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjU3RhdGUnID0+IFsnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjU3RhdGUnXSwKICAgICAgICAnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSMjI1Jlc3BvbnNpYmxlTWFuZGF0b3J5JyA9PgogICAgICAgICAgICBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI1Jlc3BvbnNpYmxlTWFuZGF0b3J5J10sCiAgICAgICAgJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TWFzdGVyU2xhdmUjIyNSZXNwb25zaWJsZScgPT4KICAgICAgICAgICAgWydUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkjIyNSZXNwb25zaWJsZSddLAogICAgICAgICdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjT3duZXJNYW5kYXRvcnknID0+CiAgICAgICAgICAgIFsnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjT3duZXJNYW5kYXRvcnknXSwKICAgICAgICAnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSMjI093bmVyJyA9PiBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI093bmVyJ10sCiAgICAgICAgJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TWFzdGVyU2xhdmUjIyNTZXJ2aWNlJyA9PgogICAgICAgICAgICBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI1NlcnZpY2UnXSwKICAgICAgICAnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSMjI1RpY2tldFR5cGUnID0+CiAgICAgICAgICAgIFsnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjVGlja2V0VHlwZSddLAogICAgICAgICdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjUmVxdWlyZWRMb2NrJyA9PgogICAgICAgICAgICBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI1JlcXVpcmVkTG9jayddLAogICAgICAgICdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjUGVybWlzc2lvbicgPT4KICAgICAgICAgICAgWydUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkjIyNQZXJtaXNzaW9uJ10sCiAgICAgICAgJ01hc3RlclNsYXZlOjpLZWVwUGFyZW50Q2hpbGRBZnRlclVuc2V0JyA9PiBbJ1ByaW1hcnlTZWNvbmRhcnk6OktlZXBQYXJlbnRDaGlsZEFmdGVyVW5zZXQnXSwKICAgICAgICAnTWFzdGVyU2xhdmU6OkZvcndhcmRTbGF2ZScgICAgICAgICAgICAgID0+IFsnUHJpbWFyeVNlY29uZGFyeTo6Rm9yd2FyZFNlY29uZGFyeSddLAogICAgICAgICdNYXN0ZXJTbGF2ZTo6QWR2YW5jZWRFbmFibGVkJyAgICAgICAgICAgPT4gWydQcmltYXJ5U2Vjb25kYXJ5OjpBZHZhbmNlZEVuYWJsZWQnXSwKICAgICAgICAnTWFzdGVyU2xhdmU6OlVuc2V0TWFzdGVyU2xhdmUnICAgICAgICAgID0+IFsnUHJpbWFyeVNlY29uZGFyeTo6VW5zZXRQcmltYXJ5U2Vjb25kYXJ5J10sCiAgICAgICAgJ01hc3RlclNsYXZlOjpVcGRhdGVNYXN0ZXJTbGF2ZScgICAgICAgICA9PiBbJ1ByaW1hcnlTZWNvbmRhcnk6OlVwZGF0ZVByaW1hcnlTZWNvbmRhcnknXSwKICAgICAgICAnTWFzdGVyU2xhdmU6OkZvbGxvd1VwZGF0ZWRNYXN0ZXInICAgICAgID0+IFsnUHJpbWFyeVNlY29uZGFyeTo6Rm9sbG93VXBkYXRlZFByaW1hcnknXSwKICAgICk7CgogICAgT1JJR0lOQUxTWVNDT05GSUdPUFRJT05OQU1FOgogICAgZm9yIG15ICRPcmlnaW5hbFN5c0NvbmZpZ09wdGlvbk5hbWUgKCBzb3J0IGtleXMgJVJlbmFtZWRTeXNDb25maWdPcHRpb25zICkgewoKICAgICAgICAjIEZldGNoIG9yaWdpbmFsIFN5c0NvbmZpZyBvcHRpb24gdmFsdWUuCiAgICAgICAgbXkgKCAkT3JpZ2luYWxTeXNDb25maWdPcHRpb25CYXNlTmFtZSwgQE9yaWdpbmFsU3lzQ29uZmlnT3B0aW9uSGFzaEtleXMgKSA9IHNwbGl0ICcjIyMnLAogICAgICAgICAgICAkT3JpZ2luYWxTeXNDb25maWdPcHRpb25OYW1lOwoKICAgICAgICBteSAkT3JpZ2luYWxTeXNDb25maWdPcHRpb25WYWx1ZSA9ICRDb25maWdPYmplY3QtPkdldCgkT3JpZ2luYWxTeXNDb25maWdPcHRpb25CYXNlTmFtZSk7CiAgICAgICAgbmV4dCBPUklHSU5BTFNZU0NPTkZJR09QVElPTk5BTUUgaWYgIWRlZmluZWQgJE9yaWdpbmFsU3lzQ29uZmlnT3B0aW9uVmFsdWU7CgogICAgICAgIGlmIChAT3JpZ2luYWxTeXNDb25maWdPcHRpb25IYXNoS2V5cykgewogICAgICAgICAgICBmb3IgbXkgJE9yaWdpbmFsU3lzQ29uZmlnT3B0aW9uSGFzaEtleSAoQE9yaWdpbmFsU3lzQ29uZmlnT3B0aW9uSGFzaEtleXMpIHsKICAgICAgICAgICAgICAgIG5leHQgT1JJR0lOQUxTWVNDT05GSUdPUFRJT05OQU1FIGlmIHJlZiAkT3JpZ2luYWxTeXNDb25maWdPcHRpb25WYWx1ZSBuZSAnSEFTSCc7CiAgICAgICAgICAgICAgICBuZXh0IE9SSUdJTkFMU1lTQ09ORklHT1BUSU9OTkFNRQogICAgICAgICAgICAgICAgICAgIGlmICFleGlzdHMgJE9yaWdpbmFsU3lzQ29uZmlnT3B0aW9uVmFsdWUtPnskT3JpZ2luYWxTeXNDb25maWdPcHRpb25IYXNoS2V5fTsKCiAgICAgICAgICAgICAgICAkT3JpZ2luYWxTeXNDb25maWdPcHRpb25WYWx1ZSA9ICRPcmlnaW5hbFN5c0NvbmZpZ09wdGlvblZhbHVlLT57JE9yaWdpbmFsU3lzQ29uZmlnT3B0aW9uSGFzaEtleX07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgbmV4dCBPUklHSU5BTFNZU0NPTkZJR09QVElPTk5BTUUgaWYgIWRlZmluZWQgJE9yaWdpbmFsU3lzQ29uZmlnT3B0aW9uVmFsdWU7CgogICAgICAgIG15ICROZXdTeXNDb25maWdPcHRpb25OYW1lcyA9ICRSZW5hbWVkU3lzQ29uZmlnT3B0aW9uc3skT3JpZ2luYWxTeXNDb25maWdPcHRpb25OYW1lfTsKICAgICAgICBmb3IgbXkgJE5ld1N5c0NvbmZpZ09wdGlvbk5hbWUgKCBAeyROZXdTeXNDb25maWdPcHRpb25OYW1lc30gKSB7CiAgICAgICAgICAgIG15ICRTZXR0aW5nVXBkYXRlZCA9ICRTeXNDb25maWdPYmplY3QtPlNldHRpbmdzU2V0KAogICAgICAgICAgICAgICAgU2V0dGluZ3MgPT4gWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJE5ld1N5c0NvbmZpZ09wdGlvbk5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIElzVmFsaWQgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAgIEVmZmVjdGl2ZVZhbHVlID0+ICRPcmlnaW5hbFN5c0NvbmZpZ09wdGlvblZhbHVlLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IE9SSUdJTkFMU1lTQ09ORklHT1BUSU9OTkFNRSBpZiAkU2V0dGluZ1VwZGF0ZWQ7CgogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4KICAgICAgICAgICAgICAgICAgICAiRXJyb3I6IFVuYWJsZSB0byBtaWdyYXRlIHZhbHVlIG9mIFN5c0NvbmZpZyBvcHRpb24gJE9yaWdpbmFsU3lzQ29uZmlnT3B0aW9uTmFtZSB0byBvcHRpb24gJE5ld1N5c0NvbmZpZ09wdGlvbk5hbWUiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAkWm51bnlIZWxwZXJPYmplY3QtPl9SZWJ1aWxkQ29uZmlnKCk7CgogICAgcmV0dXJuIDE7Cn0KCnN1YiBfTWlncmF0ZVRvUHJpbWFyeVNlY29uZGFyeSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRDYWNoZU9iamVjdCAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKTsKICAgIG15ICRDb25maWdPYmplY3QgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJERCT2JqZWN0ICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwogICAgbXkgJER5bmFtaWNGaWVsZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKTsKICAgIG15ICRMb2dPYmplY3QgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CiAgICBteSAkU3lzQ29uZmlnT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpOwoKICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgbmFtZXMgZnJvbSBTeXNDb25maWcKICAgIG15ICRNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZCA9ICRDb25maWdPYmplY3QtPkdldCgnTWFzdGVyU2xhdmU6OkR5bmFtaWNGaWVsZCcpIHx8ICdNYXN0ZXJTbGF2ZSc7CgogICAgbXkgJE9sZER5bmFtaWNGaWVsZCA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZEdldCgKICAgICAgICBOYW1lID0+ICRNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZCwKICAgICk7CiAgICByZXR1cm4gMCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJE9sZER5bmFtaWNGaWVsZCk7CgogICAgIyB1cGRhdGUgdGhlIExhYmVsIGFuZCBGaWVsZFR5cGUgb2YgdGhlIGR5bmFtaWMgZmllbGQgdG8gUHJpbWFyeVNlY29uZGFyeQogICAgcmV0dXJuIDAgaWYgISREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZFVwZGF0ZSgKICAgICAgICAleyRPbGREeW5hbWljRmllbGR9LAogICAgICAgIElEICAgICAgICAgPT4gJE9sZER5bmFtaWNGaWVsZC0+e0lEfSwKICAgICAgICBOYW1lICAgICAgID0+ICdQcmltYXJ5U2Vjb25kYXJ5JywKICAgICAgICBMYWJlbCAgICAgID0+ICdQcmltYXJ5IFRpY2tldCcsCiAgICAgICAgRmllbGRUeXBlICA9PiAnUHJpbWFyeVNlY29uZGFyeScsCiAgICAgICAgT2JqZWN0VHlwZSA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlICAgICAgID0+ICcnLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgICAgICAgPT4gMSwKICAgICAgICAgICAgVHJhbnNsYXRhYmxlVmFsdWVzID0+IDEsCiAgICAgICAgfSwKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDEsCiAgICAgICAgVmFsaWRJRCAgICAgICA9PiAxLAogICAgICAgIFJlb3JkZXIgICAgICAgPT4gMCwKICAgICAgICBVc2VySUQgICAgICAgID0+IDEsCiAgICApOwoKICAgICMgdXBkYXRlIEludGVybmFsRmllbGQgdmFsdWUgbWFudWFsbHkgc2luY2UgQVBJIGRvZXMgbm90IHN1cHBvcnQgaW50ZXJuYWxfZmllbGQgdXBkYXRlCiAgICBteSAkU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgVVBEQVRFIGR5bmFtaWNfZmllbGQKICAgICAgICAgICAgU0VUIGludGVybmFsX2ZpZWxkID0gMQogICAgICAgICAgICBXSEVSRSBpZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJE9sZER5bmFtaWNGaWVsZC0+e0lEfSBdLAogICAgKTsKICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvdWxkIG5vdCBzZXQgZHluYW1pYyBmaWVsZCAnJE1hc3RlclNsYXZlRHluYW1pY0ZpZWxkJyBhcyBpbnRlcm5hbCEiLAogICAgICAgICk7CiAgICB9CgogICAgIyBjbGVhbiBkeW5hbWljIGZpZWxkIGNhY2hlCiAgICAkQ2FjaGVPYmplY3QtPkNsZWFuVXAoCiAgICAgICAgVHlwZSA9PiAnRHluYW1pY0ZpZWxkJywKICAgICk7CgogICAgIyBhY3RpdmF0ZSB0aGUgRHluYW1pY0ZpZWxkIGluIHRpY2tldCBkZXRhaWxzIGJsb2NrCiAgICBteSAkS2V5U3RyaW5nICAgICAgID0gIlRpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Wm9vbSI7CiAgICBteSAkRXhpc3RpbmdTZXR0aW5nID0gJENvbmZpZ09iamVjdC0+R2V0KCRLZXlTdHJpbmcpIHx8IHt9OwogICAgbXkgJVZhbHVlc1RvU2V0ICAgICA9ICV7ICRFeGlzdGluZ1NldHRpbmctPntEeW5hbWljRmllbGR9IHx8IHt9IH07CiAgICAkVmFsdWVzVG9TZXR7UHJpbWFyeVNlY29uZGFyeX0gPSAxOwoKICAgIHJldHVybiBpZiAhJFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ3NTZXQoCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICBDb21tZW50cyA9PiAnWm51bnktUHJpbWFyeVNlY29uZGFyeSAtIGRlcGxveSBkeW5hbWljIGZpZWxkcy4nLAogICAgICAgIFNldHRpbmdzID0+IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJEtleVN0cmluZyAuICIjIyNEeW5hbWljRmllbGQiLAogICAgICAgICAgICAgICAgRWZmZWN0aXZlVmFsdWUgPT4gXCVWYWx1ZXNUb1NldCwKICAgICAgICAgICAgICAgIElzVmFsaWQgICAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgXSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=</File>
        <File Permission="660" Location="doc/en/Znuny-PrimarySecondary_en.pdf" Encode="Base64">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</File>
        <File Permission="660" Location="doc/de/Znuny-PrimarySecondary_de.pdf" Encode="Base64">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</File>
    </Filelist>
    <CodeInstall Type="post"><![CDATA[
        $Kernel::OM->Get('var::packagesetup::ZnunyPrimarySecondary')->CodeInstall();
    ]]></CodeInstall>
    <CodeUpgrade Type="post"><![CDATA[
        $Kernel::OM->Get('var::packagesetup::ZnunyPrimarySecondary')->CodeUpgrade();
    ]]></CodeUpgrade>
    <CodeReinstall Type="post"><![CDATA[
        $Kernel::OM->Get('var::packagesetup::ZnunyPrimarySecondary')->CodeReinstall();
    ]]></CodeReinstall>
    <CodeUninstall Type="pre"><![CDATA[
        $Kernel::OM->Get('var::packagesetup::ZnunyPrimarySecondary')->CodeUninstall();
    ]]></CodeUninstall>
    <PackageMerge Name="OTRSMasterSlave" TargetVersion="6.5.1"/>
</otrs_package>
