<?xml version="1.0" encoding="utf-8"?>
<otrs_package version="1.0">
    <Name>Znuny-PrimarySecondary</Name>
    <Version>7.3.4</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.4" Date="2026-04-30 11:10:03 +0200">Fixed packagesetup - MigrateToPrimarySecondary is broken. Fixed Assignment of DF MasterSlave to views is not migrated after installing Znuny-PrimarySecondary.</ChangeLog>
    <ChangeLog Version="7.3.3" Date="2026-04-29 21:18:01 +0200">Added StatsFieldParameterBuild function to overwrite base function StatsFieldParameterBuild in Kernel::System::DynamicField::Driver::BaseSelect. Ignore SysConfig DynamicFields::Driver::BaseSelect::EnableHistoricalValues. The historical values should always be retrieved.</ChangeLog>
    <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-30 09:10:03 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+IDEsCiAgICApOwoKICAgICMgY2FsbCBFZGl0TGFiZWxSZW5kZXIgb24gdGhlIGNvbW1vbiBEcml2ZXIKICAgIG15ICRMYWJlbFN0cmluZyA9ICRTZWxmLT5FZGl0TGFiZWxSZW5kZXIoCiAgICAgICAgJVBhcmFtLAogICAgICAgIEZpZWxkTmFtZSA9PiAkRmllbGROYW1lLAogICAgKTsKCiAgICBteSAkRGF0YSA9IHsKICAgICAgICBGaWVsZCA9PiAkSFRNTFN0cmluZywKICAgICAgICBMYWJlbCA9PiAkTGFiZWxTdHJpbmcsCiAgICB9OwoKICAgIHJldHVybiAkRGF0YTsKfQoKc3ViIFN0YXRzRmllbGRQYXJhbWV0ZXJCdWlsZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgc2V0IFBvc3NpYmxlVmFsdWVzCiAgICBteSAkVmFsdWVzID0gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntDb25maWd9LT57UG9zc2libGVWYWx1ZXN9OwoKICAgIG15ICRIaXN0b3JpY2FsVmFsdWVzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZFZhbHVlJyktPkhpc3RvcmljYWxWYWx1ZUdldCgKICAgICAgICBGaWVsZElEICAgPT4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntJRH0sCiAgICAgICAgVmFsdWVUeXBlID0+ICdUZXh0LCcsCiAgICApOwoKICAgICMgYWRkIGhpc3RvcmljIHZhbHVlcyB0byBjdXJyZW50IHZhbHVlcyAoaWYgdGhleSBkb24ndCBleGlzdCBhbnltb3JlKQogICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJXskSGlzdG9yaWNhbFZhbHVlc30gKSB7CiAgICAgICAgaWYgKCAhJFZhbHVlcy0+eyRLZXl9ICkgewogICAgICAgICAgICAkVmFsdWVzLT57JEtleX0gPSAkSGlzdG9yaWNhbFZhbHVlcy0+eyRLZXl9OwogICAgICAgIH0KICAgIH0KCiAgICAjIHVzZSBQb3NzaWJsZVZhbHVlc0ZpbHRlciBpZiBkZWZpbmVkCiAgICAkVmFsdWVzID0gJFBhcmFte1Bvc3NpYmxlVmFsdWVzRmlsdGVyfSAvLyAkVmFsdWVzOwoKICAgIHJldHVybiB7CiAgICAgICAgVmFsdWVzICAgICAgICAgICAgID0+ICRWYWx1ZXMsCiAgICAgICAgTmFtZSAgICAgICAgICAgICAgID0+ICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TGFiZWx9LAogICAgICAgIEVsZW1lbnQgICAgICAgICAgICA9PiAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9LAogICAgICAgIFRyYW5zbGF0YWJsZVZhbHVlcyA9PiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ30tPntUcmFuc2xhdGFibGVWYWx1ZXN9LAogICAgICAgIEJsb2NrICAgICAgICAgICAgICA9PiAnTXVsdGlTZWxlY3RGaWVsZCcsCiAgICB9Owp9CgoxOwoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=</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+bmV3KCk7CiAgICBteSAkQ29kZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ3Zhcjo6cGFja2FnZXNldHVwOjpabnVueVByaW1hcnlTZWNvbmRhcnknKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgbXkgJFpudW55SGVscGVyT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpabnVueUhlbHBlcicpOwogICAgbXkgJER5bmFtaWNGaWVsZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKTsKCiAgICAjIEZvcmNlIGEgcmVsb2FkIG9mIFpaWkF1dG8ucG0gdG8gZ2V0IHRoZSBmcmVzaCBjb25maWd1cmF0aW9uIHZhbHVlcy4KICAgIG15ICRTdWNjZXNzID0gJFpudW55SGVscGVyT2JqZWN0LT5fUmVidWlsZENvbmZpZygpOwoKICAgICMgZ2V0IGR5bmFtaWMgZmllbGRzIGxpc3QKICAgICRTZWxmLT57RHluYW1pY0ZpZWxkc0xpc3R9ID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgID0+IDAsCiAgICAgICAgT2JqZWN0VHlwZSA9PiBbJ1RpY2tldCddLAogICAgKTsKCiAgICBpZiAoICFJc0FycmF5UmVmV2l0aERhdGEoICRTZWxmLT57RHluYW1pY0ZpZWxkc0xpc3R9ICkgKSB7CiAgICAgICAgJFNlbGYtPntEeW5hbWljRmllbGRzTGlzdH0gPSBbXTsKICAgIH0KCiAgICAjIGNyZWF0ZSBhIGR5bmFtaWMgZmllbGQgbG9va3VwIHRhYmxlIChieSBuYW1lKQogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGQgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZHNMaXN0fSB9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkRHluYW1pY0ZpZWxkOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZC0+e05hbWV9OwogICAgICAgICRTZWxmLT57RHluYW1pY0ZpZWxkTG9va3VwfS0+eyAkRHluYW1pY0ZpZWxkLT57TmFtZX0gfSA9ICREeW5hbWljRmllbGQ7CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBDb2RlSW5zdGFsbCgpCgpydW4gdGhlIGNvZGUgaW5zdGFsbCBwYXJ0CgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlSW5zdGFsbCgpOwoKPWN1dAoKc3ViIENvZGVJbnN0YWxsIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJENvbmZpZ09iamVjdCAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkRHluYW1pY0ZpZWxkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpOwoKICAgIG15ICRNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZCA9ICRDb25maWdPYmplY3QtPkdldCgnTWFzdGVyU2xhdmU6OkR5bmFtaWNGaWVsZCcpIHx8ICdNYXN0ZXJTbGF2ZSc7CiAgICBteSAkT2xkRHluYW1pY0ZpZWxkICAgICAgICAgPSAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGRHZXQoCiAgICAgICAgTmFtZSA9PiAkTWFzdGVyU2xhdmVEeW5hbWljRmllbGQsCiAgICApOwoKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoJE9sZER5bmFtaWNGaWVsZCkgKSB7CgogICAgICAgICMgTWlncmF0ZSBEeW5hbWljRmllbGRDb25maWcuCiAgICAgICAgJFNlbGYtPl9NaWdyYXRlVG9QcmltYXJ5U2Vjb25kYXJ5KCVQYXJhbSk7CgogICAgICAgICMgTWlncmF0ZSBEeW5hbWljRmllbGRTY3JlZW4KICAgICAgICAkU2VsZi0+X01pZ3JhdGVEeW5hbWljRmllbGRTY3JlZW4oJVBhcmFtKTsKCiAgICAgICAgIyBNaWdyYXRlIFN5c0NvbmZpZwogICAgICAgICRTZWxmLT5fTWlncmF0ZVByaW1hcnlTZWNvbmRhcnlTeXNDb25maWdTZXR0aW5ncyglUGFyYW0pOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgIyBDcmVhdGUgRHluYW1pY0ZpZWxkcwogICAgICAgICRTZWxmLT5fU2V0RHluYW1pY0ZpZWxkcyglUGFyYW0pOwogICAgfQoKICAgICMgU2V0IGRhc2hib2FyZCBjb25maWcgaWYgbmVlZGVkCiAgICAkU2VsZi0+X1NldERhc2hib2FyZENvbmZpZyglUGFyYW0pOwoKICAgICMgU2V0IGR5bmFtaWMgZmllbGQgc2NyZWVuIGlmIG5lZWRlZAogICAgJFNlbGYtPl9TZXREeW5hbWljRmllbGRTY3JlZW4oJVBhcmFtKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQ29kZVJlaW5zdGFsbCgpCgpydW4gdGhlIGNvZGUgcmVpbnN0YWxsIHBhcnQKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVSZWluc3RhbGwoKTsKCj1jdXQKCnN1YiBDb2RlUmVpbnN0YWxsIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuIGlmICEkU2VsZi0+Q29kZUluc3RhbGwoKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQ29kZVVwZ3JhZGUoKQoKcnVuIHRoZSBjb2RlIHVwZ3JhZGUgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVVwZ3JhZGUoKTsKCj1jdXQKCnN1YiBDb2RlVXBncmFkZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiBpZiAhJFNlbGYtPkNvZGVJbnN0YWxsKCk7CgogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIENvZGVVbmluc3RhbGwoKQoKcnVuIHRoZSBjb2RlIHVuaW5zdGFsbCBwYXJ0CgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlVW5pbnN0YWxsKCk7Cgo9Y3V0CgpzdWIgQ29kZVVuaW5zdGFsbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRTZWxmLT5fUmVtb3ZlRHluYW1pY0ZpZWxkcygpOwogICAgJFNlbGYtPl9SZW1vdmVEeW5hbWljRmllbGRTY3JlZW4oKTsKCiAgICByZXR1cm4gMTsKfQoKc3ViIF9TZXREeW5hbWljRmllbGRzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJENhY2hlT2JqZWN0ICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpOwogICAgbXkgJENvbmZpZ09iamVjdCAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkREJPYmplY3QgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CiAgICBteSAkTG9nT2JqZWN0ICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJER5bmFtaWNGaWVsZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKTsKCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIG5hbWVzIGZyb20gU3lzQ29uZmlnCiAgICBteSAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCA9ICRDb25maWdPYmplY3QtPkdldCgnUHJpbWFyeVNlY29uZGFyeTo6RHluYW1pY0ZpZWxkJykgfHwgJ1ByaW1hcnlTZWNvbmRhcnknOwoKICAgICMgc2V0IGF0dHJpYnV0ZXMgb2YgbmV3IGR5bmFtaWMgZmllbGRzCiAgICBteSAlTmV3RHluYW1pY0ZpZWxkcyA9ICgKICAgICAgICAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICAgPT4gJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGQsCiAgICAgICAgICAgIExhYmVsICAgICAgPT4gJ1ByaW1hcnkgVGlja2V0JywKICAgICAgICAgICAgRmllbGRUeXBlICA9PiAnUHJpbWFyeVNlY29uZGFyeScsCiAgICAgICAgICAgIE9iamVjdFR5cGUgPT4gJ1RpY2tldCcsCiAgICAgICAgICAgIENvbmZpZyAgICAgPT4gewogICAgICAgICAgICAgICAgRGVmYXVsdFZhbHVlICAgICAgID0+ICcnLAogICAgICAgICAgICAgICAgUG9zc2libGVOb25lICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBUcmFuc2xhdGFibGVWYWx1ZXMgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAxLAogICAgICAgIH0sCiAgICApOwoKICAgICMgc2V0IE1heEZpZWxkT3JkZXIgKG5lZWRlZCBmb3IgYWRkaW5nIG5ldyBkeW5hbWljIGZpZWxkcykKICAgIG15ICRNYXhGaWVsZE9yZGVyID0gMDsKICAgIGlmICggIUlzQXJyYXlSZWZXaXRoRGF0YSggJFNlbGYtPntEeW5hbWljRmllbGRzTGlzdH0gKSApIHsKICAgICAgICAkTWF4RmllbGRPcmRlciA9IDE7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZHNMaXN0fSB9ICkgewogICAgICAgICAgICBpZiAoIGludCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57RmllbGRPcmRlcn0gPiBpbnQgJE1heEZpZWxkT3JkZXIgKSB7CiAgICAgICAgICAgICAgICAkTWF4RmllbGRPcmRlciA9ICREeW5hbWljRmllbGRDb25maWctPntGaWVsZE9yZGVyfTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBmb3IgbXkgJE5ld0ZpZWxkTmFtZSAoIHNvcnQga2V5cyAlTmV3RHluYW1pY0ZpZWxkcyApIHsKCiAgICAgICAgIyBjaGVjayBpZiBkeW5hbWljIGZpZWxkIGFscmVhZHkgZXhpc3RzCiAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJFNlbGYtPntEeW5hbWljRmllbGRMb29rdXB9LT57JE5ld0ZpZWxkTmFtZX0gKSApIHsKCiAgICAgICAgICAgICMgZ2V0IHRoZSBkeW5hbWljIGZpZWxkIGNvbmZpZ3VyYXRpb24KICAgICAgICAgICAgbXkgJER5bmFtaWNGaWVsZENvbmZpZyA9ICRTZWxmLT57RHluYW1pY0ZpZWxkTG9va3VwfS0+eyROZXdGaWVsZE5hbWV9OwoKICAgICAgICAgICAgbXkgJFVwZGF0ZTsKCiAgICAgICAgICAgICMgdXBkYXRlIGZpZWxkIGNvbmZpZ3VyYXRpb24gaWYgaXQgd2FzIG90aGVyIHRoYW4gUHJpbWFyeVNlY29uZGFyeSAoZS5nLiBEcm9wZG93bikKICAgICAgICAgICAgaWYgKCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57RmllbGRUeXBlfSBuZSAnUHJpbWFyeVNlY29uZGFyeScgKSB7CiAgICAgICAgICAgICAgICBteSAkSUQgPSAkRHluYW1pY0ZpZWxkQ29uZmlnLT57SUR9OwogICAgICAgICAgICAgICAgJXskRHluYW1pY0ZpZWxkQ29uZmlnfSA9ICggJXskRHluYW1pY0ZpZWxkQ29uZmlnfSwgJXsgJE5ld0R5bmFtaWNGaWVsZHN7JE5ld0ZpZWxkTmFtZX0gfSApOwogICAgICAgICAgICAgICAgJFVwZGF0ZSA9IDE7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgaWYgZHluYW1pYyBmaWVsZCBleGlzdHMgbWFrZSBzdXJlIGlzIHZhbGlkCiAgICAgICAgICAgIGlmICggJER5bmFtaWNGaWVsZENvbmZpZy0+e1ZhbGlkSUR9IG5lICcxJyApIHsKICAgICAgICAgICAgICAgICRVcGRhdGUgPSAxOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoJFVwZGF0ZSkgewogICAgICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGRVcGRhdGUoCiAgICAgICAgICAgICAgICAgICAgJXskRHluYW1pY0ZpZWxkQ29uZmlnfSwKICAgICAgICAgICAgICAgICAgICBWYWxpZElEID0+IDEsCiAgICAgICAgICAgICAgICAgICAgUmVvcmRlciA9PiAwLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiQ291bGQgbm90IHNldCBkeW5hbWljIGZpZWxkICckTmV3RmllbGROYW1lJyB0byB2YWxpZCEiLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICggJER5bmFtaWNGaWVsZENvbmZpZy0+e0ludGVybmFsRmllbGR9IG5lICcxJyApIHsKCiAgICAgICAgICAgICAgICAjIHVwZGF0ZSBJbnRlcm5hbEZpZWxkIHZhbHVlIG1hbnVhbGx5IHNpbmNlIEFQSSBkb2VzIG5vdCBzdXBwb3J0CiAgICAgICAgICAgICAgICAjIGludGVybmFsX2ZpZWxkIHVwZGF0ZQogICAgICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgICAgICAgICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgICAgICAgICAgICAgIFVQREFURSBkeW5hbWljX2ZpZWxkCiAgICAgICAgICAgICAgICAgICAgICAgIFNFVCBpbnRlcm5hbF9maWVsZCA9IDEKICAgICAgICAgICAgICAgICAgICAgICAgV0hFUkUgaWQgPSA/JywKICAgICAgICAgICAgICAgICAgICBCaW5kID0+IFsgXCREeW5hbWljRmllbGRDb25maWctPntJRH0gXSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDb3VsZCBub3Qgc2V0IGR5bmFtaWMgZmllbGQgJyROZXdGaWVsZE5hbWUnIGFzIGludGVybmFsISIsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGNsZWFuIGR5bmFtaWMgZmllbGQgY2FjaGUKICAgICAgICAgICAgICAgICRDYWNoZU9iamVjdC0+Q2xlYW5VcCgKICAgICAgICAgICAgICAgICAgICBUeXBlID0+ICdEeW5hbWljRmllbGQnLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBvdGhlcndpc2UgY3JlYXRlIGl0CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRNYXhGaWVsZE9yZGVyKys7CiAgICAgICAgICAgIG15ICRJRCA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZEFkZCgKICAgICAgICAgICAgICAgICV7ICROZXdEeW5hbWljRmllbGRzeyROZXdGaWVsZE5hbWV9IH0sCiAgICAgICAgICAgICAgICBGaWVsZE9yZGVyID0+ICRNYXhGaWVsZE9yZGVyLAogICAgICAgICAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAhJElEICkgewogICAgICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvdWxkIG5vdCBhZGQgZHluYW1pYyBmaWVsZCAnJE5ld0ZpZWxkTmFtZSchIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCnN1YiBfUmVtb3ZlRHluYW1pY0ZpZWxkcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRDb25maWdPYmplY3QgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkRHluYW1pY0ZpZWxkT2JqZWN0ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyk7CiAgICBteSAkRHluYW1pY0ZpZWxkVmFsdWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkVmFsdWUnKTsKICAgIG15ICRMb2dPYmplY3QgICAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKTsKCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIG5hbWVzIGZyb20gU3lzQ29uZmlnCiAgICBteSAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCA9ICRDb25maWdPYmplY3QtPkdldCgnUHJpbWFyeVNlY29uZGFyeTo6RHluYW1pY0ZpZWxkJykgfHwgJ1ByaW1hcnlTZWNvbmRhcnknOwoKICAgICMgY2hlY2sgaWYgZHluYW1pYyBmaWVsZCBhbHJlYWR5IGV4aXN0cwogICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJFNlbGYtPntEeW5hbWljRmllbGRMb29rdXB9LT57JFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGR9ICkgKSB7CgogICAgICAgICMgZ2V0IHRoZSBmaWVsZCBJRAogICAgICAgIG15ICREeW5hbWljRmllbGRJRCA9ICRTZWxmLT57RHluYW1pY0ZpZWxkTG9va3VwfS0+eyRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkfS0+e0lEfTsKCiAgICAgICAgIyBkZWxldGUgYWxsIGZpZWxkIHZhbHVlcwogICAgICAgIG15ICRWYWx1ZXNEZWxldGVTdWNjZXNzID0gJER5bmFtaWNGaWVsZFZhbHVlT2JqZWN0LT5BbGxWYWx1ZXNEZWxldGUoCiAgICAgICAgICAgIEZpZWxkSUQgPT4gJER5bmFtaWNGaWVsZElELAogICAgICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCRWYWx1ZXNEZWxldGVTdWNjZXNzKSB7CgogICAgICAgICAgICAjIGRlbGV0ZSBmaWVsZAogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZERlbGV0ZSgKICAgICAgICAgICAgICAgIElEICAgICAgPT4gJER5bmFtaWNGaWVsZElELAogICAgICAgICAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgICAgICAgICAgUmVvcmRlciA9PiAxLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiQ291bGQgbm90IGRlbGV0ZSBkeW5hbWljIGZpZWxkICckUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCchIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiQ291bGQgbm90IGRlbGV0ZSB2YWx1ZXMgZm9yIGR5bmFtaWMgZmllbGQgJyRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkJyEiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkU3lzQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpOwoKICAgICMgZGlzYWJsZSBTeXNDb25maWcgc2V0dGluZ3MKICAgIHJldHVybiBpZiAhJFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ3NTZXQoCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICBDb21tZW50cyA9PiAnWm51bnlQcmltYXJ5U2Vjb25kYXJ5IC0gIyBkaXNhYmxlIFN5c0NvbmZpZyBzZXR0aW5ncy4nLAogICAgICAgIFNldHRpbmdzID0+IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ0R5bmFtaWNGaWVsZHM6OkRyaXZlciMjI1ByaW1hcnlTZWNvbmRhcnknLAogICAgICAgICAgICAgICAgRWZmZWN0aXZlVmFsdWUgPT4gewogICAgICAgICAgICAgICAgICAgIERpc3BsYXlOYW1lICA9PiAnUHJpbWFyeSAvIFNlY29uZGFyeScsCiAgICAgICAgICAgICAgICAgICAgTW9kdWxlICAgICAgID0+ICdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OlByaW1hcnlTZWNvbmRhcnknLAogICAgICAgICAgICAgICAgICAgIENvbmZpZ0RpYWxvZyA9PiAnQWRtaW5EeW5hbWljRmllbGRQcmltYXJ5U2Vjb25kYXJ5JywKICAgICAgICAgICAgICAgICAgICBEaXNhYmxlZEFkZCAgPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBJc1ZhbGlkID0+IDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdQcmVBcHBsaWNhdGlvbk1vZHVsZSMjI0FnZW50UHJlUHJpbWFyeVNlY29uZGFyeScsCiAgICAgICAgICAgICAgICBFZmZlY3RpdmVWYWx1ZSA9PiAnS2VybmVsOjpNb2R1bGVzOjpBZ2VudFByZVByaW1hcnlTZWNvbmRhcnknLAogICAgICAgICAgICAgICAgSXNWYWxpZCAgICAgICAgPT4gMCwKICAgICAgICAgICAgfSwKICAgICAgICBdLAogICAgKTsKCiAgICAjIGRpc2NhcmQgY29uZmlnIG9iamVjdCBhbmQgZHluYW1pYyBmaWVsZCBiYWNrZW5kIHRvIHByZXZlbnQgZXJyb3IgbWVzc2FnZXMgZHVlIG1pc3NpbmcgZHJpdmVyCiAgICAkS2VybmVsOjpPTS0+T2JqZWN0c0Rpc2NhcmQoCiAgICAgICAgT2JqZWN0cyA9PiBbICdLZXJuZWw6OkNvbmZpZycsICdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyBdLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKc3ViIF9TZXREYXNoYm9hcmRDb25maWcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkQ29uZmlnT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICRTeXNDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyk7CgogICAgbXkgJERhc2hib2FyZENvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgnRGFzaGJvYXJkQmFja2VuZCcpIC8vIHt9OwogICAgcmV0dXJuIDEgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREYXNoYm9hcmRDb25maWcpOwoKICAgICMKICAgICMgUmVwbGFjZSBkeW5hbWljIGZpZWxkIG5hbWUgKHdoaWNoIGlzIGNvbmZpZ3VyYWJsZSkgaW4gYXR0cmlidXRlcyBvZiBkYXNoYm9hcmQgc2V0dGluZ3MuCiAgICAjCgogICAgbXkgJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGQgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1ByaW1hcnlTZWNvbmRhcnk6OkR5bmFtaWNGaWVsZCcpIHx8ICdQcmltYXJ5U2Vjb25kYXJ5JzsKCiAgICBteSAkUHJpbWFyeUNvbmZpZyAgID0gJERhc2hib2FyZENvbmZpZy0+eycwOTAwLVRpY2tldFByaW1hcnknfSAgIC8vIHt9OwogICAgbXkgJFNlY29uZGFyeUNvbmZpZyA9ICREYXNoYm9hcmRDb25maWctPnsnMDkxMC1UaWNrZXRTZWNvbmRhcnknfSAvLyB7fTsKCiAgICBDT05GSUc6CiAgICBmb3IgbXkgJENvbmZpZyAoICRQcmltYXJ5Q29uZmlnLCAkU2Vjb25kYXJ5Q29uZmlnICkgewogICAgICAgIG5leHQgQ09ORklHIGlmICFJc1N0cmluZ1dpdGhEYXRhKCAkUHJpbWFyeUNvbmZpZy0+e0F0dHJpYnV0ZXN9ICk7CgogICAgICAgICRDb25maWctPntBdHRyaWJ1dGVzfSA9fiBze0R5bmFtaWNGaWVsZF9QcmltYXJ5U2Vjb25kYXJ5fXtEeW5hbWljRmllbGRfJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGR9ZzsKICAgIH0KCiAgICByZXR1cm4gaWYgISRTeXNDb25maWdPYmplY3QtPlNldHRpbmdzU2V0KAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgQ29tbWVudHMgPT4gJ1pudW55UHJpbWFyeVNlY29uZGFyeSAtIGRlcGxveSBkeW5hbWljIGZpZWxkcyBmb3IgZGFzaGJvYXJkLicsCiAgICAgICAgU2V0dGluZ3MgPT4gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAnRGFzaGJvYXJkQmFja2VuZCMjIzA5MDAtVGlja2V0UHJpbWFyeScsCiAgICAgICAgICAgICAgICBFZmZlY3RpdmVWYWx1ZSA9PiAkUHJpbWFyeUNvbmZpZywKICAgICAgICAgICAgICAgIElzVmFsaWQgICAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdEYXNoYm9hcmRCYWNrZW5kIyMjMDkxMC1UaWNrZXRTZWNvbmRhcnknLAogICAgICAgICAgICAgICAgRWZmZWN0aXZlVmFsdWUgPT4gJFNlY29uZGFyeUNvbmZpZywKICAgICAgICAgICAgICAgIElzVmFsaWQgICAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgXSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCnN1YiBfU2V0RHluYW1pY0ZpZWxkU2NyZWVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJENvbmZpZ09iamVjdCAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICRabnVueUhlbHBlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpabnVueUhlbHBlcicpOwoKICAgIG15ICRQcmltYXJ5U2Vjb25kYXJ5RHluYW1pY0ZpZWxkID0gJENvbmZpZ09iamVjdC0+R2V0KCdQcmltYXJ5U2Vjb25kYXJ5OjpEeW5hbWljRmllbGQnKSB8fCAnUHJpbWFyeVNlY29uZGFyeSc7CgogICAgbXkgJVNjcmVlbnMgPSAoCiAgICAgICAgQWdlbnRUaWNrZXRab29tID0+IHsKICAgICAgICAgICAgJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGQgPT4gMSwKICAgICAgICB9LAogICAgKTsKCiAgICBteSAkU3VjY2VzcyA9ICRabnVueUhlbHBlck9iamVjdC0+X0R5bmFtaWNGaWVsZHNTY3JlZW5FbmFibGUoJVNjcmVlbnMpOwogICAgcmV0dXJuICRTdWNjZXNzOwoKfQoKc3ViIF9SZW1vdmVEeW5hbWljRmllbGRTY3JlZW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkQ29uZmlnT2JqZWN0ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJFpudW55SGVscGVyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlpudW55SGVscGVyJyk7CgogICAgbXkgJFByaW1hcnlTZWNvbmRhcnlEeW5hbWljRmllbGQgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1ByaW1hcnlTZWNvbmRhcnk6OkR5bmFtaWNGaWVsZCcpIHx8ICdQcmltYXJ5U2Vjb25kYXJ5JzsKCiAgICBteSAlU2NyZWVucyA9ICgKICAgICAgICBBZ2VudFRpY2tldFpvb20gPT4gewogICAgICAgICAgICAkUHJpbWFyeVNlY29uZGFyeUR5bmFtaWNGaWVsZCA9PiAxLAogICAgICAgIH0sCiAgICApOwoKICAgIG15ICRTdWNjZXNzID0gJFpudW55SGVscGVyT2JqZWN0LT5fRHluYW1pY0ZpZWxkc1NjcmVlbkRpc2FibGUoJVNjcmVlbnMpOwogICAgcmV0dXJuICRTdWNjZXNzOwoKfQoKc3ViIF9NaWdyYXRlVG9QcmltYXJ5U2Vjb25kYXJ5IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJENhY2hlT2JqZWN0ICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpOwogICAgbXkgJENvbmZpZ09iamVjdCAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkREJPYmplY3QgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CiAgICBteSAkRHluYW1pY0ZpZWxkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpOwogICAgbXkgJExvZ09iamVjdCAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKTsKICAgIG15ICRTeXNDb25maWdPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyk7CiAgICBteSAkWm51bnlIZWxwZXJPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlpudW55SGVscGVyJyk7CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBuYW1lcyBmcm9tIFN5c0NvbmZpZwogICAgbXkgJE1hc3RlclNsYXZlRHluYW1pY0ZpZWxkID0gJENvbmZpZ09iamVjdC0+R2V0KCdNYXN0ZXJTbGF2ZTo6RHluYW1pY0ZpZWxkJykgfHwgJ01hc3RlclNsYXZlJzsKCiAgICBteSAkTmV3RHluYW1pY0ZpZWxkID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkR2V0KAogICAgICAgIE5hbWUgPT4gJ1ByaW1hcnlTZWNvbmRhcnknLAogICAgKTsKICAgIHJldHVybiAxIGlmIElzSGFzaFJlZldpdGhEYXRhKCROZXdEeW5hbWljRmllbGQpOwoKICAgIG15ICRPbGREeW5hbWljRmllbGQgPSAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGRHZXQoCiAgICAgICAgTmFtZSA9PiAkTWFzdGVyU2xhdmVEeW5hbWljRmllbGQsCiAgICApOwogICAgcmV0dXJuIDEgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCRPbGREeW5hbWljRmllbGQpOwoKICAgICMgdXBkYXRlIHRoZSBMYWJlbCBhbmQgRmllbGRUeXBlIG9mIHRoZSBkeW5hbWljIGZpZWxkIHRvIFByaW1hcnlTZWNvbmRhcnkKICAgIHJldHVybiAxIGlmICEkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGRVcGRhdGUoCiAgICAgICAgJXskT2xkRHluYW1pY0ZpZWxkfSwKICAgICAgICBJRCAgICAgICAgID0+ICRPbGREeW5hbWljRmllbGQtPntJRH0sCiAgICAgICAgTmFtZSAgICAgICA9PiAnUHJpbWFyeVNlY29uZGFyeScsCiAgICAgICAgTGFiZWwgICAgICA9PiAnUHJpbWFyeSBUaWNrZXQnLAogICAgICAgIEZpZWxkVHlwZSAgPT4gJ1ByaW1hcnlTZWNvbmRhcnknLAogICAgICAgIE9iamVjdFR5cGUgPT4gJ1RpY2tldCcsCiAgICAgICAgQ29uZmlnICAgICA9PiB7CiAgICAgICAgICAgIERlZmF1bHRWYWx1ZSAgICAgICA9PiAnJywKICAgICAgICAgICAgUG9zc2libGVOb25lICAgICAgID0+IDEsCiAgICAgICAgICAgIFRyYW5zbGF0YWJsZVZhbHVlcyA9PiAxLAogICAgICAgIH0sCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAxLAogICAgICAgIFZhbGlkSUQgICAgICAgPT4gMSwKICAgICAgICBSZW9yZGVyICAgICAgID0+IDAsCiAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgKTsKCiAgICAjIHVwZGF0ZSBJbnRlcm5hbEZpZWxkIHZhbHVlIG1hbnVhbGx5IHNpbmNlIEFQSSBkb2VzIG5vdCBzdXBwb3J0IGludGVybmFsX2ZpZWxkIHVwZGF0ZQogICAgbXkgJFN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFVQREFURSBkeW5hbWljX2ZpZWxkCiAgICAgICAgICAgIFNFVCBpbnRlcm5hbF9maWVsZCA9IDEKICAgICAgICAgICAgV0hFUkUgaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCRPbGREeW5hbWljRmllbGQtPntJRH0gXSwKICAgICk7CiAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDb3VsZCBub3Qgc2V0IGR5bmFtaWMgZmllbGQgJyRNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZCcgYXMgaW50ZXJuYWwhIiwKICAgICAgICApOwogICAgfQoKICAgICMgY2xlYW4gZHluYW1pYyBmaWVsZCBjYWNoZQogICAgJENhY2hlT2JqZWN0LT5DbGVhblVwKAogICAgICAgIFR5cGUgPT4gJ0R5bmFtaWNGaWVsZCcsCiAgICApOwoKICAgIHJldHVybiAxOwp9CgpzdWIgX01pZ3JhdGVEeW5hbWljRmllbGRTY3JlZW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkWm51bnlIZWxwZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Wm51bnlIZWxwZXInKTsKCiAgICBteSAlQ29uZmlncyA9ICRabnVueUhlbHBlck9iamVjdC0+X0R5bmFtaWNGaWVsZHNTY3JlZW5Db25maWdFeHBvcnQoCiAgICAgICAgRHluYW1pY0ZpZWxkcyA9PiBbCiAgICAgICAgICAgICdNYXN0ZXJTbGF2ZScsCiAgICAgICAgXSwKICAgICk7CgogICAgcmV0dXJuIDEgaWYgISVDb25maWdzOwogICAgcmV0dXJuIDEgaWYgISRDb25maWdze01hc3RlclNsYXZlfTsKCiAgICBteSAlRGlzYWJsZVNjcmVlbnMgPSAoKTsKICAgIG15ICVFbmFibGVTY3JlZW5zICA9ICgpOwoKICAgIGZvciBteSAkU2NyZWVuICggc29ydCBrZXlzICV7ICRDb25maWdze01hc3RlclNsYXZlfSB9ICkgewoKICAgICAgICBteSAkT3B0aW9uID0gJENvbmZpZ3N7TWFzdGVyU2xhdmV9LT57JFNjcmVlbn07CiAgICAgICAgJERpc2FibGVTY3JlZW5zeyRTY3JlZW59ID0gewogICAgICAgICAgICAnTWFzdGVyU2xhdmUnID0+ICRPcHRpb24sCiAgICAgICAgfTsKICAgICAgICAkRW5hYmxlU2NyZWVuc3skU2NyZWVufSA9IHsKICAgICAgICAgICAgJ1ByaW1hcnlTZWNvbmRhcnknID0+ICRPcHRpb24sCiAgICAgICAgfTsKICAgIH0KCiAgICAkWm51bnlIZWxwZXJPYmplY3QtPl9EeW5hbWljRmllbGRzU2NyZWVuRGlzYWJsZSgKICAgICAgICAlRGlzYWJsZVNjcmVlbnMsCiAgICApOwoKICAgICRabnVueUhlbHBlck9iamVjdC0+X0R5bmFtaWNGaWVsZHNTY3JlZW5FbmFibGUoCiAgICAgICAgJUVuYWJsZVNjcmVlbnMsCiAgICApOwoKICAgIHJldHVybiAxOwp9CgpzdWIgX01pZ3JhdGVQcmltYXJ5U2Vjb25kYXJ5U3lzQ29uZmlnU2V0dGluZ3MgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkQ29uZmlnT2JqZWN0ICAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICRTeXNDb25maWdPYmplY3QgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyk7CiAgICBteSAkU3lzQ29uZmlnTWlncmF0aW9uT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZzo6TWlncmF0aW9uJyk7CiAgICBteSAkWm51bnlIZWxwZXJPYmplY3QgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlpudW55SGVscGVyJyk7CiAgICBteSAkTG9nT2JqZWN0ICAgICAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwoKICAgIG15ICRVc2VySUQgPSAxOwoKICAgIG15ICVSZW5hbWVkU3lzQ29uZmlnT3B0aW9ucyA9ICgKICAgICAgICAnTWFzdGVyU2xhdmU6OktlZXBQYXJlbnRDaGlsZEFmdGVyVXBkYXRlJyA9PiBbJ1ByaW1hcnlTZWNvbmRhcnk6OktlZXBQYXJlbnRDaGlsZEFmdGVyVXBkYXRlJ10sCiAgICAgICAgJ1JlcGxhY2VDdXN0b21lclJlYWxOYW1lT25TbGF2ZUFydGljbGVDb21tdW5pY2F0aW9uQ2hhbm5lbHMnID0+CiAgICAgICAgICAgIFsnUmVwbGFjZUN1c3RvbWVyUmVhbE5hbWVPblNlY29uZGFyeUFydGljbGVDb21tdW5pY2F0aW9uQ2hhbm5lbHMnXSwKICAgICAgICAnRGFzaGJvYXJkQmFja2VuZCMjIzA5MTAtVGlja2V0U2xhdmUnICA9PiBbJ0Rhc2hib2FyZEJhY2tlbmQjIyMwOTEwLVRpY2tldFNlY29uZGFyeSddLAogICAgICAgICdEYXNoYm9hcmRCYWNrZW5kIyMjMDkwMC1UaWNrZXRNYXN0ZXInID0+IFsnRGFzaGJvYXJkQmFja2VuZCMjIzA5MDAtVGlja2V0UHJpbWFyeSddLAogICAgICAgICdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjTWFzdGVyU2xhdmVNYW5kYXRvcnknID0+CiAgICAgICAgICAgIFsnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjUHJpbWFyeVNlY29uZGFyeU1hbmRhdG9yeSddLAogICAgICAgICdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjSGlzdG9yeUNvbW1lbnQnID0+CiAgICAgICAgICAgIFsnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjSGlzdG9yeUNvbW1lbnQnXSwKICAgICAgICAnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSMjI0hpc3RvcnlUeXBlJyA9PgogICAgICAgICAgICBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI0hpc3RvcnlUeXBlJ10sCiAgICAgICAgJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TWFzdGVyU2xhdmUjIyNUaXRsZScgPT4gWydUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkjIyNUaXRsZSddLAogICAgICAgICdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjUHJpb3JpdHlEZWZhdWx0JyA9PgogICAgICAgICAgICBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI1ByaW9yaXR5RGVmYXVsdCddLAogICAgICAgICdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjUHJpb3JpdHknID0+CiAgICAgICAgICAgIFsnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjUHJpb3JpdHknXSwKICAgICAgICAnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSMjI0lzVmlzaWJsZUZvckN1c3RvbWVyRGVmYXVsdCcgPT4KICAgICAgICAgICAgWydUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkjIyNJc1Zpc2libGVGb3JDdXN0b21lckRlZmF1bHQnXSwKICAgICAgICAnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSMjI0luZm9ybUFnZW50JyA9PgogICAgICAgICAgICBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI0luZm9ybUFnZW50J10sCiAgICAgICAgJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TWFzdGVyU2xhdmUjIyNJbnZvbHZlZEFnZW50JyA9PgogICAgICAgICAgICBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI0ludm9sdmVkQWdlbnQnXSwKICAgICAgICAnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSMjI1JpY2hUZXh0SGVpZ2h0JyA9PgogICAgICAgICAgICBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI1JpY2hUZXh0SGVpZ2h0J10sCiAgICAgICAgJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TWFzdGVyU2xhdmUjIyNSaWNoVGV4dFdpZHRoJyA9PgogICAgICAgICAgICBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI1JpY2hUZXh0V2lkdGgnXSwKICAgICAgICAnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSMjI0JvZHknID0+IFsnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjQm9keSddLAogICAgICAgICdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjU3ViamVjdCcgPT4KICAgICAgICAgICAgWydUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkjIyNTdWJqZWN0J10sCiAgICAgICAgJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TWFzdGVyU2xhdmUjIyNOb3RlTWFuZGF0b3J5JyA9PgogICAgICAgICAgICBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI05vdGVNYW5kYXRvcnknXSwKICAgICAgICAnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSMjI05vdGUnID0+IFsnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjTm90ZSddLAogICAgICAgICdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjU3RhdGVEZWZhdWx0JyA9PgogICAgICAgICAgICBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI1N0YXRlRGVmYXVsdCddLAogICAgICAgICdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjU3RhdGVUeXBlJyA9PgogICAgICAgICAgICBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI1N0YXRlVHlwZSddLAogICAgICAgICdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjU3RhdGUnID0+IFsnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjU3RhdGUnXSwKICAgICAgICAnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSMjI1Jlc3BvbnNpYmxlTWFuZGF0b3J5JyA9PgogICAgICAgICAgICBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI1Jlc3BvbnNpYmxlTWFuZGF0b3J5J10sCiAgICAgICAgJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TWFzdGVyU2xhdmUjIyNSZXNwb25zaWJsZScgPT4KICAgICAgICAgICAgWydUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkjIyNSZXNwb25zaWJsZSddLAogICAgICAgICdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjT3duZXJNYW5kYXRvcnknID0+CiAgICAgICAgICAgIFsnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjT3duZXJNYW5kYXRvcnknXSwKICAgICAgICAnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSMjI093bmVyJyA9PiBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI093bmVyJ10sCiAgICAgICAgJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TWFzdGVyU2xhdmUjIyNTZXJ2aWNlJyA9PgogICAgICAgICAgICBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI1NlcnZpY2UnXSwKICAgICAgICAnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSMjI1RpY2tldFR5cGUnID0+CiAgICAgICAgICAgIFsnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQcmltYXJ5U2Vjb25kYXJ5IyMjVGlja2V0VHlwZSddLAogICAgICAgICdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjUmVxdWlyZWRMb2NrJyA9PgogICAgICAgICAgICBbJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UHJpbWFyeVNlY29uZGFyeSMjI1JlcXVpcmVkTG9jayddLAogICAgICAgICdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjUGVybWlzc2lvbicgPT4KICAgICAgICAgICAgWydUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFByaW1hcnlTZWNvbmRhcnkjIyNQZXJtaXNzaW9uJ10sCiAgICAgICAgJ01hc3RlclNsYXZlOjpLZWVwUGFyZW50Q2hpbGRBZnRlclVuc2V0JyA9PiBbJ1ByaW1hcnlTZWNvbmRhcnk6OktlZXBQYXJlbnRDaGlsZEFmdGVyVW5zZXQnXSwKICAgICAgICAnTWFzdGVyU2xhdmU6OkZvcndhcmRTbGF2ZScgICAgICAgICAgICAgID0+IFsnUHJpbWFyeVNlY29uZGFyeTo6Rm9yd2FyZFNlY29uZGFyeSddLAogICAgICAgICdNYXN0ZXJTbGF2ZTo6QWR2YW5jZWRFbmFibGVkJyAgICAgICAgICAgPT4gWydQcmltYXJ5U2Vjb25kYXJ5OjpBZHZhbmNlZEVuYWJsZWQnXSwKICAgICAgICAnTWFzdGVyU2xhdmU6OlVuc2V0TWFzdGVyU2xhdmUnICAgICAgICAgID0+IFsnUHJpbWFyeVNlY29uZGFyeTo6VW5zZXRQcmltYXJ5U2Vjb25kYXJ5J10sCiAgICAgICAgJ01hc3RlclNsYXZlOjpVcGRhdGVNYXN0ZXJTbGF2ZScgICAgICAgICA9PiBbJ1ByaW1hcnlTZWNvbmRhcnk6OlVwZGF0ZVByaW1hcnlTZWNvbmRhcnknXSwKICAgICAgICAnTWFzdGVyU2xhdmU6OkZvbGxvd1VwZGF0ZWRNYXN0ZXInICAgICAgID0+IFsnUHJpbWFyeVNlY29uZGFyeTo6Rm9sbG93VXBkYXRlZFByaW1hcnknXSwKICAgICk7CgogICAgT1JJR0lOQUxTWVNDT05GSUdPUFRJT05OQU1FOgogICAgZm9yIG15ICRPcmlnaW5hbFN5c0NvbmZpZ09wdGlvbk5hbWUgKCBzb3J0IGtleXMgJVJlbmFtZWRTeXNDb25maWdPcHRpb25zICkgewoKICAgICAgICAjIEZldGNoIG9yaWdpbmFsIFN5c0NvbmZpZyBvcHRpb24gdmFsdWUuCiAgICAgICAgbXkgKCAkT3JpZ2luYWxTeXNDb25maWdPcHRpb25CYXNlTmFtZSwgQE9yaWdpbmFsU3lzQ29uZmlnT3B0aW9uSGFzaEtleXMgKSA9IHNwbGl0ICcjIyMnLAogICAgICAgICAgICAkT3JpZ2luYWxTeXNDb25maWdPcHRpb25OYW1lOwoKICAgICAgICBteSAkT3JpZ2luYWxTeXNDb25maWdPcHRpb25WYWx1ZSA9ICRDb25maWdPYmplY3QtPkdldCgkT3JpZ2luYWxTeXNDb25maWdPcHRpb25CYXNlTmFtZSk7CiAgICAgICAgbmV4dCBPUklHSU5BTFNZU0NPTkZJR09QVElPTk5BTUUgaWYgIWRlZmluZWQgJE9yaWdpbmFsU3lzQ29uZmlnT3B0aW9uVmFsdWU7CgogICAgICAgIGlmIChAT3JpZ2luYWxTeXNDb25maWdPcHRpb25IYXNoS2V5cykgewogICAgICAgICAgICBmb3IgbXkgJE9yaWdpbmFsU3lzQ29uZmlnT3B0aW9uSGFzaEtleSAoQE9yaWdpbmFsU3lzQ29uZmlnT3B0aW9uSGFzaEtleXMpIHsKICAgICAgICAgICAgICAgIG5leHQgT1JJR0lOQUxTWVNDT05GSUdPUFRJT05OQU1FIGlmIHJlZiAkT3JpZ2luYWxTeXNDb25maWdPcHRpb25WYWx1ZSBuZSAnSEFTSCc7CiAgICAgICAgICAgICAgICBuZXh0IE9SSUdJTkFMU1lTQ09ORklHT1BUSU9OTkFNRQogICAgICAgICAgICAgICAgICAgIGlmICFleGlzdHMgJE9yaWdpbmFsU3lzQ29uZmlnT3B0aW9uVmFsdWUtPnskT3JpZ2luYWxTeXNDb25maWdPcHRpb25IYXNoS2V5fTsKCiAgICAgICAgICAgICAgICAkT3JpZ2luYWxTeXNDb25maWdPcHRpb25WYWx1ZSA9ICRPcmlnaW5hbFN5c0NvbmZpZ09wdGlvblZhbHVlLT57JE9yaWdpbmFsU3lzQ29uZmlnT3B0aW9uSGFzaEtleX07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgbmV4dCBPUklHSU5BTFNZU0NPTkZJR09QVElPTk5BTUUgaWYgIWRlZmluZWQgJE9yaWdpbmFsU3lzQ29uZmlnT3B0aW9uVmFsdWU7CgogICAgICAgIG15ICROZXdTeXNDb25maWdPcHRpb25OYW1lcyA9ICRSZW5hbWVkU3lzQ29uZmlnT3B0aW9uc3skT3JpZ2luYWxTeXNDb25maWdPcHRpb25OYW1lfTsKICAgICAgICBmb3IgbXkgJE5ld1N5c0NvbmZpZ09wdGlvbk5hbWUgKCBAeyROZXdTeXNDb25maWdPcHRpb25OYW1lc30gKSB7CiAgICAgICAgICAgIG15ICRTZXR0aW5nVXBkYXRlZCA9ICRTeXNDb25maWdPYmplY3QtPlNldHRpbmdzU2V0KAogICAgICAgICAgICAgICAgU2V0dGluZ3MgPT4gWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJE5ld1N5c0NvbmZpZ09wdGlvbk5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIElzVmFsaWQgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAgIEVmZmVjdGl2ZVZhbHVlID0+ICRPcmlnaW5hbFN5c0NvbmZpZ09wdGlvblZhbHVlLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IE9SSUdJTkFMU1lTQ09ORklHT1BUSU9OTkFNRSBpZiAkU2V0dGluZ1VwZGF0ZWQ7CgogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4KICAgICAgICAgICAgICAgICAgICAiRXJyb3I6IFVuYWJsZSB0byBtaWdyYXRlIHZhbHVlIG9mIFN5c0NvbmZpZyBvcHRpb24gJE9yaWdpbmFsU3lzQ29uZmlnT3B0aW9uTmFtZSB0byBvcHRpb24gJE5ld1N5c0NvbmZpZ09wdGlvbk5hbWUiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAkWm51bnlIZWxwZXJPYmplY3QtPl9SZWJ1aWxkQ29uZmlnKCk7CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+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">JVBERi0xLjUKJeTw7fgKNCAwIG9iago8PC9UeXBlL1hPYmplY3QvU3VidHlwZS9JbWFnZS9XaWR0aCA2NTAvSGVpZ2h0IDIwMC9Db2xvclNwYWNlL0RldmljZUdyYXkvQml0c1BlckNvbXBvbmVudAo4L0RlY29kZVBhcm1zPDwvQml0c1BlckNvbXBvbmVudCA4L0NvbG9ycyAxL0NvbHVtbnMgNjUwL1ByZWRpY3RvciAyPj4vRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aAo0MTg4Pj4Kc3RyZWFtCnja7V1/rBxVFZ7XmkKD8W1pahqIdKo1NUp5SyQlGqEjJCIV6LYpMWkjfbUiSkQfKkQhylZJIBrjFk0NQtItCQQF8ZU0aVMQ96WmTbWGfRRUSNVdCCmkCm+1SizWZ/v62u7ec+7Mndm5v3a/75/2zczuzpnzzf3uOffce4MAAAAAAAAAAADAbVSKOr99pI4nDKihtkznt3+8hicMgIkAmAgmAmAiACaCiQCYCICJYCIAJgJgIpgIgIkAmAgmAmAiACZmRqvYwBMGHGDixjIeMKCI4TCnLyoNkUPjRTxfwDSKz9JjF6M6ETCO+hC0GXAA5bugzf2B+Ztvfg3aDFjH7NrSl685IBwcGFp66QcWFM4J/nm4+cLe/S9BmwHtePTTQfDWDY93HFu+5vL3tP35x6ce3QttBvRi47en/vnmvWcODd2+vCBcdegX974KbQY0Ys3D0/+p3nR0Wpg3fHc+c+GBW39l4/6Y7Di0uRextDb71H/Hrj984p+zy7fNYC9tff1B8/c38kNoc1/g/P1tzd9U3HLW92+RXXz0tvtM319YH4Q290XYvG9J+59Hrt951rfulF9+9MaHoM2ABsx84rrOA8dGXtoxI+YDr680G0JDm/sE93yDHHr4gsviPvH06ha0Gcgbw1uYg3tfWxn3mc8/YFebN43Abz2HZbtmcYf/MvaZd8g/9NwnXrepzc3iBBzXa1i0Zx5/4o2t686Vf2ydsaCF02bMGOg9DO75oDRE3nJVKP3czlVvQZuBHMPm7Z+MOfuz910iO3XkI89Dm4H88KMvxZ4e+9dy2akbzYy0GNHmsFgMw3BBm91BfaLWaPS2752y+oubEy74w/61M/kzlVt7Q5vDKIoW8KdatVqtR5NFrll9xa6ZSZe88cgN72JPbL/WfW2ebP9j6zC9oFAaGYr/iuZoNYtbJoW/M48IiW/iWOSO1aRitFXIaOXifYPJFx396arzuOO/W2qAiIVGV9o8Ge/D4sg6lW9plqv+MlGn1TQRvXI0k5Hz9ixSum7LJUuYo88vMcDE0RVdaXMnHwY6T0Zl5WnYrXLFVybqtJq2E9tKWWycteMKtQvffvFC5qiJgd/SL7uLmzt90jFAGFZWpLmT5nDNUybqtLpKWteFWeKdBzcoXvj8hWxYHWknYpfaLPqkXTpGyoMpb2bryISXTNRpdfhX8citlfQmfvUHihc+dxH/Pqx3XZtFn5xhQ1jNsD7K+HDdRyZqtZpkNpph6l+47omZahf+afEAe/yOe1zXZtEnpzsx0ehglvtplWoeMlGr1TRmSZ3rXbJb8bZemXc2b+5VT7muzaJPTr2vbO2REtZX/WOiXqsnRB9xWaPYsHn/BWoXThyby5946WOHzWtz2tBM4MNAly5J8Sa4w0S9Vle+IjahYSrVmrVbMRn49ivvlZz53h3HjGtzSiuJT6aeaDcuCVpR3TsmarWaxizqunECD69RvPCFD8lu7srfm9fm1HnTSRrYdeWS4x34aMI3Juq1msQsqbJ7d96tegfSQaEHbpp0XpuJT44H3twE/lRQDN4dYqJeqynHU6QUVz+meOGLi2VnDn3qWb1EzEObiU/GIq6lDVr1WqNxpgQlDIvF4lCXXUWHmKjZahKzqCfaPrx7ttqFL58nnT6gO4WTizZTPgzQlna8yhaehKVhiVvU1MchJmq2msYsqmUQ5+87X+3Cv82QTh54fP0RD7SZ+mST8NSa1apcSorlFdlTOS4xUa/VNGZRbTJmP7Ra6br/HAplp55Zo3k6VT7aTH0ieCSp2iSqcC1EM/SMiZqtJjGLepvBTG9m8LUvvF9yZtdnNS8XVqgvyEObE3yysZLI7UJlXcaeorNMzN/qbmKW4ftnJV5z13eG7rucO/Hfn3/573qJSLseWcuNYnzSLCllBplKXaVhBEeZqMVqErOkKINYum1+whWPrA2Cc29f/25y4s+bNmtOaQfRr/PR5jifqOYFuQVEgzkTnjJRj9Wk4VDqv0zjgu3xda6/jabmkC773LWdfH9l9P4XNPMwP22O8UmK0VEmeFKIWZxkoiaracySpjzgnY/FzS599eLpQeWZS6++8uJTSZ9/7Nvx9IFAO3LTZrlP0tRWMi+Gwu24yERtVpOYJVUZxMyKfH7pW5e2EW7ueRctmnvO/468dvDA6yaWZcpPm6U+URYpSSCvkDFzkIn6rCYxS0qHbdgsiVuOrXoysAZOm9MNqif6RLmMQfbKKyxU5h4TdVpNYpaUHls2yrO8fdF342C0Ofs8Bd4naSvcaSud/A3uMVGn1cRpaSc53c2uG2tgWkA6bc6+bS7rkzSR3Uk0FqTuKDrHRK1W05gl5cyqBrcKwG+uPOqWNmeZpBPnk/RrmZD0WvIr7xwT9VpNpDzdfCO2VujgRw/bI2K+2sz7JMP30Qc14BsTNVtNY5ZCl24PWpcdsEjEfLWZ90mW8IeIR2LI4hoTdVtNYpZUGeAJWnl17JqdFomYszazPsm0dAuZYZ6odY4xUbvVpFVLkwJmCl6CW35skYh5azPrk0wLjZEuU+L74RgTtVvdVcxCl5IIfnKzTSLmrc2sTzLtWUDuLJFYjjFRv9UkZlEXM6Ys+pmrj9pkIrNtblfazPkkfTJj6lm96TcTDVhNYhb136RlZQcvadkkIlP/0e3aO9QnaSeGS74osRfkFhNNWE2iDuV2mFRb/HvooE0iMjmlLrWZ80nGgUMxjEzkg1tMNGE16eSr0p92Mdc+YpOIGrSZ88nChhk+uMVEE1YTQqmWQZDA6MkVVomoQZsZn2TrMPnORDNWk5hFsSUmTVDGYlSHtZnxSVZy+81EM1aTwEPtZ2lbWrBJRE6bc9g2dzKv7/SbiYasJjGLUqeA9C/tbvvEaHMeqydP5tR195yJhqzOxqn0I6mGtTmXGyI+ybqnkN9MNGQ10VmV/ilxvd2Nu/VoM+OTORP9yERTVpPEoELsQUb6uk6YOKjNjE8Ggn5koimrSSWDQhkE6VzOsbgnoy5tpj7Jms7wm4nmrCZ9vkRaZSGvf9pMfZI5Q+k1E81ZTcQtUWqzCLp/2gwmmrY6dcxCiixsJhPpsGN+gTyYaNZq2sQleJJkw20mE5ltc3PSZmYlwZF+ZKI5q2m3L6EMgjjfYjKRWZYqv4ySPT64xESTvy3GLPFlEEQPLSYTuS3t83svwETTv006/bHjO6QZyrzah9vaDCaa/23SysV+hmRN7CUTtWozmGj+t2nMElMGQRLJGWvLNWlz1kFSMNEJJpKYJSZeIiUT9pKJjDbnGsaDicaZSGKWZpjHpea1OeW2uWCic0wkMYu0oSOzWK0lE3VrM5hog4kkZpGOJJMynIzTbdzXZjDRBhNpzCILiMUyHGvJRO3aDCZaYSKJWSRlEOQ6W8lE/doMJlphomogotx2+q/NYKIdJpKYhR00I2U4tpKJzN7XeWszmGiHiSRmYTlGCGApmchtm5u3NvcEE8UBMQ+YSHSXLYMQL5JouHYweyBpyCb1ABMzFBtaZ6JKLEIazhzLDdKAWUU0f20GEy0xkcQsTEqRZE7sJBPNaDOYaIuJJGahNMvQ6/BXm3uBiemqrFxhIrlrklIkV9hJJhrS5l5gIhmb9YKJpKkhwydiq5l5a8bctVlPCO8/E8lL6wcTyW2LKUWxJ2knmchos6b51v4zkfS4/GAiYZrQ+SI1sjqihCzarKtt9p+JpJjUEyaKb1AzjDVLON1r2twLTCRjop4wkUQknfIsNplWkonmtLkXmEgWMPKEicTNHR1BEofZSCYa1OYeYCJdIMMXJop+7lhmRKyRtZFMNKnNLjExY7NP31tfmEgEuN3LYktvI5loUptdYmLGt57uZOgNE8WYpU2eY9tLQ+C25tOY0/SeiXRBP2+YKHYs2ugmirOFZCK3ba7OsjR3mJjttWfWUfOGiUT+zjhaFGcLyzIx2+ZqXUPUnk9IY5ZphWGmnNgfJor6d7rlE8W5Gfa6Ntv0CckDZhpEYGZY+MNEMWY5LQuiOJtf4920Ntv0CYnMsjxubpFTj5goliCe8rUozuaTiaa12aZPyHhxFkuZdZ99YqI4Z2p67FkUZ/NrvBvXZps+IT28DCELl3v1iYmiDE/3B0VxNp5M5LRZdw/Bnk/oa5e+H8I1iV4xUXwIJ2NkQZzNJxMZbdY+yGPRJ2R7ntRJM7ZJ9IqJYswydSPSkNqmNne/ba67PiFpnNQ9EebV9Y2JQswyVbktmmU6mWhDm636hCyElfbHmVfXOyaKMcuJ9UaEdnK689jb2mzVJzQpna5R5LXZMyaK7+Px4ESs1jadTLSizVZ9QpZ9SdcjKtSGgh5gouD3409ADMMML8tkR5vt+oTZjTBF+MzULPnIREGLj0ux8FhMJxPtaLNdnzDLQ7Yixd65tEX0jonCU1g48WbmlzMPMNvmmtBmuz5h5FmVisWqlIi+MVF4CuuDzu6z6WQiI1RmOqpWfUKj5+NPvlRTaEfKg0GvMFF4CpsKnQ/F8BrvzFiBoYkLVn3Cp2ESbyGqDMWd9o2JkmTUNMwmE7kt7fOFtOLKrk+Ymq4TvfZyNeYzw8PCh8aH/GYimc/SYZzZNd7rQ33KRFlz0KyM8p3kUqkk6vK28rOeM5GJ3Az30aQPpm+YyPYUpxuDWq3ewcZiWIyYJrRZnJj0nIlc5HYKhpOJ/ctE2TjJKZqd5mJxUN6PEiTFOybGvI+mk4n9y0RumYFUOFG6J+S4/WOiPGYxvcZ7HzNRUk+jiqnbFTIP/jFRGrMYr0zsZybGSFMyTo5TC+2qh0yUxSzGN4zsaybKB5ATMR1YCuLmIRNlMYvxmVT9zcSsrWJrpMoa4SETJY/A/IaRfc5EfjpKEsaH63w3y0cm8jGL+WWZ+p2JQVRdkPb3NpUnJL/tIxP5mMX8hpF9z8SgUE4XQo+N1KVtqpdM5GIWC8sygYlBEJbVe4vj5c40W+c8BC+ZyMUsFjaMBBNPcrE0qHLdtkottpflJROZmKUZBmCiJZ8USqWkjM54lauNmPSfiTRmMZ5MBDrIGEWRrDKpVatJSnR6AWTl+oUN0ME2ojAsFgpthGw2Go16vac9Q2pUzScTAYDrJ9rZMBLoe4jibGfDSKDvQRbEsLNhJND3yGetZwDoEmSV5maIhwJYAKkXtrJhJAAgmQg4ATKbx8aGkQBAy9aRTASciFeQTASsgNSsI5kIWAEp2EYyEXAiXmmGeCiABZDiByQTARugEweQTASciFfMbxgJAFy8YmEmFQDQejDEK4AbTSLGVwAbIFPuMb4CWAmcyaK6SOEANkBqH9AkAjZAF3dGkwhYQLE2iCYRcKCTSLfBRJMIOEFENImAE0Q0vr89ALAbA2MtHMA42I2BUSELGEZU5nZxxYqJgAs8PLEZJp4NoAnDUaPWaLTHKVFUkmy0YHZTcaC/cLIMtnWaY0X5UuKImwHtTFQBZpYCTjBxPEInEXCAiSAi4AQTQUTACSaCiIATTBwrgYiAA0zE0ArgAhObwzU8JsA+EzdWoMyAfSZuLTfwjADbTGxWq+AhYAjRSMSPNDdHa1j+BjCKQrFYiNpLH8aCWo9vzAoAAAAAAAD0EP4PudtXiAplbmRzdHJlYW0KZW5kb2JqCjUgMCBvYmoKPDwvQ29sb3JTcGFjZS9EZXZpY2VSR0IvU01hc2sgNCAwIFIvVHlwZS9YT2JqZWN0L1N1YnR5cGUvSW1hZ2UvV2lkdGggNjUwL0hlaWdodCAyMDAvQml0c1BlckNvbXBvbmVudAo4L0RlY29kZVBhcm1zPDwvQml0c1BlckNvbXBvbmVudCA4L0NvbG9ycyAzL0NvbHVtbnMgNjUwL1ByZWRpY3RvciAxNT4+L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGgKMjI1Nj4+CnN0cmVhbQp42u3dfYwcZR3A8eeZ2b2X3h3tcdIetQWBaEtEsRoUIzEhsURM0ASNojFKiP+JgRheFUMM4Q9DoonBGIwvxJBARBsVocSiBoIRARUpFQoUWvr+em2vey+7OzPuXIEgGoHdhTuOzyebSy+9bDrP/fHtb+aZnVgURQAA5pLEEgCAPAMA8gwA8gwAdKjy0m9Wn3u+FQHgzWXd2jWmZwBAngFAngEAeQYA5BkA5BkAkGcAkGcAQJ4BQJ4BAHkGAHm2BAAgzwCAPAOAPAMA8gwA803FEgDQLevWrrEIpmcAMD0DwJtHduC2ML6vCEVRO1hM7C+masX0kaI5HUKM1d7YN5T0DcXBkVjpC9W+YvJwGBwJk4di30Cs9heNqZkZthLSSuwZeH6iXfQZeQaADtq895Z837P53k35vs15K9LTR0JWb5U6hGLm72NI0lDpib2DycLR5LhT0pF3mJ4B4PWS7/15tntTtmNDtmtjMXEgZFmZ5Ji0Zuby9fxV3dZQnYf6ZDFdax7eHXc+kR1zXDJ6auWEVfIMAF2dmLffFLJG87lHsy0P5Yd3hzwPSRLStJyVXy6+8CWNrZE6b+Rj2/NDe7I9T1dPPrNy4uxHWp4BmBdD89gvi/pU44l7sm2PhcZ0md701TWuHKnT8ueLrNi/pV47kNcOVN/5EXkGgE7bnB94rr7+d/nOJ1vflUNzG8oT4CFMjTefvC9M16qnnTOLR+TGKgDe3IrxdcWh7Y1Wm3c8XrY5dpa2JA1Zvbn5wcaGdfIMAO3mebpZX39HtnPjzOavbnSt9SZ5s7nl4ebTf5ZnAGirZCOri2KwaNReuGmqG2IaGlPNTQ9ku56UZwBoI6WVBef9Kl364ZBnIa//r33abRa6qB3InnmgqO0vN4G3XvIMAK8ppQs+fVf1g5fHtDdk090p9Mx90tneZ7LykrbpGQDaqmnvGZf3fvQ7sdIbmpPdKXSShvpEc9v6MHEw5A15BoB2VE79Qv9n74mDS0Oz1q0Zuhjbmo1tNT0DQAdhG14x8MW/JsMrQ/1wKLKO85wU9Yls37Mzn9ctzwDQ/hDdv+CCP1VO/NjMZrGsozE6xtY75Id2FVOH5RkAOpP29n3y9p4PXFLu5S43i7Xdu5m0T4wVU0fkGQA6FpOeM7/Ze/b3YnWgo0vRMRSNqXzioDwDQHdU3/2l/s/9IfaPzGznbrfPWSM4uQ0A3UzdwpMXXHBfHDx+5jp0W4q8LLQ8A0AXxYHR9LjTywdmtD1Ad+vDyOQZAI5qbLi58cydIam2W8sk9A7IMwB0Tbbnkal7Lo6V/jYn4KKI1b5kwbA8A0B3FONbJ25fHatD5UOo2nykVRH6hmLfoDwDQDc0p2q3nxNjUn56dnttLj8sLEkG3xb7jpFnAOh8cM4n15wXJve3f8m5lIdqTzqyPPT2yzMAdGry7ouy3Q+HtLejd8nzZGAkOfakUNi5DQCdqf/zpuZTa0J1oN3rzc/P3yFJk9EVcWjxG/zvl2cA5pts6731ey8rt4N1eLNynsWhJZVlp4eevpBW5BkA2p14j+yY+PWnQrlVO3Y2Omeh0lM54X3JoqVv/FHIMwDzqM2NWu3Ws8pbnGNngSuKVtnTJe+qnHTGrBxIxe8SgHkizyZuPSvUj4S0p8PKhyKPw8uqK86OA8fOvHPT9AwA7TR1+v6r8oObO21zOTcXcXhp9bSPJ4tPma2DkWcA5kecd4WeWrJoWcjzcsd1m++StSblOLy8+p5PVN5+2iwejpPbAMwHsff46kkfShYMNzfem+3fXD7/MUlf9RXo8mx2+Ur70qWnVleeHfsXzu7hyDMA80Sy5MuhcmsytLi5+cHmtkeLI/vKSLcKHePMLu7/usmq/MDOF8PcUw7NJ6yqLF8VevqKxpQ8A0CXCj3y+TASYv9P09EVzR3/yvduysf3heZUyLKZETv+Z5tDOWH3DKQLR9PjVyajK+PQSKjX58KByDMA8y7SoxeFeHPPomX5xMH84LZ8bHvemqQnx4tWp/PsaJVj70DsH4qDi5PhZenwsljtbf3w3DkEeQZgPhZ6yYVhZv9zc+sPKstPL+qTeW1sZmgud43FJC1iTAdHivpU0clHl8gzALTTueVfPfqH9BWLPqf+e+E3B8AbqSgKiyDPAMwtV19z3Y4dO62DPAMwh/zt749cfOmVj67fYCnkGYA5YfW557e+jo8fufIb377jzrstiDwDMIc0m83v3/ijG3/44zzPrYY8AzCH/Oa3d11z7fWTk1OWQp4BmB1Hz2y/zEMP/+OSr1+9Z88+6yPPAMwhz27e8rVLr3hsw+OWQp4BmP3R+UUHxg5eftW1v1/3RwslzwDMIc1m84bv3viTn91iKeQZgLnltl+sue76G6ZnHhtVrzfkGQBeL///zPbL3Hf/Xy674lu7du1+K1+NlmcA5pwnNj514Vcufv+q98ozAMwhWZa9lQ/fAyUB6JrXdBK7W++2bu0a0zMAIM8AIM8AgDwDAPIMAPIMAMgzAMgzACDPACDPAIA8A4A8WwIAkGcAQJ4BQJ4BAHkGAHkGAOQZAOQZAJBnAECeAUCeAQB5BgB5BgDkGQDkGQCQZwCQZwBAngEAeQYAeQYA5BkA5BkAkGcAkGcAQJ4BAHkGAHkGAOQZAOQZAJBnAJBnAECeAUCeAQB5BgDkGQDkGQCQZwCQZwBAngFAngEAeQYA5BkA5BkAkGcAkGcAQJ4BQJ4BAHkGAHkGAOQZAJBnAJBnAECeAUCeAQB5BgB5BgDkGQCQZwCQZwBAngFAngEAeQYAeQYA5BkA5BkAkGcAQJ4BQJ4BAHkGAHkGAOQZAOQZAJBnAECeAUCeAQB5BgB5BgDkGQDkGQCQZwCQZwBAngEAeQYAeQYA5BkA5BkAkGcAkGcAQJ4BAHkGAHkGAOQZAOQZAJBnAJBnAECeAUCeAQB5BgDkGQDkGQCQZwCQZwBAngFAngEAeQYA5BkA5BkAeGWVl36zbu0aKwIApmcAQJ4BQJ4BgNfq343Ab1gKZW5kc3RyZWFtCmVuZG9iagoxNSAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDMxOT4+CnN0cmVhbQp42rVSsU4DMQzd+Qr/wLmOkzixVHVAUARbxW2Iob0KFirExO/z7nqpKlpGdMo5Tt6z/ezQFwUSfIGKUjHn6jQccPCA9U64tshRSvAJloU11Viw7aywhzCiF48HobtP2tBtT4t1oMqiAPVvFDPoJ2y/f1mKxL1IDlh1toMIjMSIfRZJ8GEkpaM/3keDD3yCzXrkpXKOWXWaHdFlh2hbLCCCzRZIGVav/RPd9xDF7hbpe1RRlFNJdKBkxrnG08kHPTdBkVShKI2CPLGGQp1WYYnpfyWNBS/WmZxN65Qeaji4UhcxKtWW3lcqy2O4iWpzyils68xlV652xKyyI/RZS9rRWU8yhlxq9rGojjVnoKqym881BcgI2jJccPAg/Don/clJomw5/mbZrim8HANubOyMbucB4Ke7lmFz8wOkAaP0CmVuZHN0cmVhbQplbmRvYmoKNDMgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAxMjgwPj4Kc3RyZWFtCnja7VrJjuM2EL3nK/QD5nCpKpLAwIcgC5LbIL4FOajddi5pBDnl91OkuImyLDcCJD3dwoxbskyyHqnHYtUjh78GNUj+pwarB0teOD+cX/jBj/z5feCfyQgjrfKxGEqhwRnLtweywisVSn/66UUO3/05fBm+PQ2fflCDE1JzodN1MMjVS9nT86+fpTTPUqLij0vXs5R8kcbwPUoJ/J0vEmD6Hn43xN+5PPAV9VQPbFvmeNDouXX5xK2N/OESitKVS8rz8bfTz8P3J+6U8J7M8HfohdUCLAwvAxAJdKY8+WP4JXfIDEoJo4lCj7iOkiSMSd0xnhKcpwkOXPk7G0Q/QY7wnhP889SFUDbWCV2lCCyYcYKU9sEKAArtYThoEIYgjxzVZoIJcLlPCWdtIMDksZcmVVVwPPg4QNrXoYdLaujcDGvqQzYyhv7ZVUNAShAPTWeOZhWQK1iHsYIyQlnP5cOA803Gl14V43SkQ2ftUQW84fWjyWNVx28a2/zadSIC4HyIYg1Iz6+JMOF3fwcgCuWXCNXxQFqWO/Xg3etrqN3agzWYNeZBtjkplHY925g/zss8tWByPNH5uMqX5Sxh1lFEozP/THZYlDiXZ1jm4xo/Y7l1+E4Jj7DA/5+9r51PC7+qJa8QVDwdZscaKITJSU3eOdHJJ9rg5NCyC5pRxU6LRHHM47bD7XDYzTmgFQmmbAHeeNw4B+LK0IKM8+AYxwnH3IkwH1ZNOScAYGFqJ9+7spanyQOU014gLShX3a7JLjbRzt2MbNqmCYUku2h694gfyBoTUD9IQOCbknoUAlLxedg44JR8xPUZq4NeOvV1sxI491na3d/+R+AakghJ4pxqtiY0KXE5N8usLQGkabJZ22a0JuW84NMvYy6ZfeY6MuU5boAe2s6Pr8La7WW2j0atE95jzbunaLTIEsVx5bQ+J8HzhGY72pzbcduzwWuBAAVYE22iSxl7kHBilHmewPL/CtxW/SRQP3aA7tO9eN+57Z2BX7333eabkZxyeNPzrYSa+pLILht5McmIqI9RampluutjVOvM7i//I1AtLKuwoBq1ri26MNm4sMssu08CUlCrqyTUxgJ5dY8rfxYvXdOmajXtJVR0Ai0tsO6M+R+s3WZWt5AbUMJbV+WcrNdfijavTVgDx0SkVql55WLe2fLbjEcUqG0B10tHpoky5nszOc5tZE81T6dyVFJnR2b4tkTf4dr59mYl1Qc4Rl5ISz3HZlrRv9ofjB63Feqr6rQODjSHvXqBbpeb3oi1V/DLaUEae34VKcjoaaNxdUPUZQ5tbqFueC9tBUi7QLRz6g1byzwbt3nmiW8WPIs6UOSZb7Ru7Da1s/xomy1EVw4J3DLL1sJhi97sTqZ3tHiO9wJHUBzqqyrMpLjRUbMMZqo1IVak3bWeq9g4UFJix7m5p7vIQAoHWMPMvFPapt/nJO/kHdEHjpp07Z7vYiCeliXSHW9E1VUeu9w3jyR4fnUtQgyDt3wCWK6ry1GScbH16qZRCVcNm3tfXXP7XP9A1pyRr+Cdl0LXRG9sYuqiVGTeGdzm3by5nXc7727zDqURrubl4yLWbmIeHBtt4Hm1aatFuOub3t/xu7fmjFowb3aIl8gJr3V7ijc/ao7xtmQKlTj58uTb7Vq9fq5JcJrWV7k/FUBycoemr0VPReVdnIMu+eWYFA7+o0uE9eWbfwDwI3GcCmVuZHN0cmVhbQplbmRvYmoKNDggMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAxNjc1Pj4Kc3RyZWFtCnjatVlLjxs3DL73V8wf8EQjUS/A2EPRpGhvQfdW9DD2xrk0KHrq368eJEXJ4/Fs0CLYjD2iKD4/UvT097RMKv1bJq8n7+Ic4nT9ll78nP6+TmnZmdkov8RCZtWsIRifPp6cn+OyZOoPv3xT009/TZ+nH1+nD5+WKcxKJ6LX22Rs2s60r2+/n5Uyb0rZJf0FfF6VSg9lTPpslYL0PT0UQP2e141L3xM9pKfVdR94SfNy0jYm7uqSuK3pL1EsDp+JUl1f/nj9dfr4mpSaY3Rm+idr4fUMHqZvEzg322D4zZ/Tb6SQmZZlNtq5rFHeo2bIX4o2C7ycsvTpo45NKfiSnh6VIYGTsHDDd2ltzcr4ItaHTzZZzQcb8QwNs0ky1jM0MsoWsI6eSWPt8yqgLXy1Yz0ur4Yz0tpq0Uu24NqEyNaESxECeQGfxPuJPgx73to7UrTQBuYFgxmi5Ku/oKQK/8hw17qreLYzIPG95FVLmhG/EjEBZbMvS2TdX7Q608kux58XmnwRlF5aNfMpZ+cIXZF3eqpbojBwbm8LBUvHNuk8wJzIajfUtnoyh0By+mJmCxGdbod0KNHCylRRjbK7CmWKLCqZi9KFv5PzmNqRYldhxhxYSR0IOp8WWzDWwCA5ciAWpaLYCxQWdS2bzyxOynSlc8E3uvokzhBb8Bd51+E7yXIb9bCh1yNTVhnsWUCII3uWfa4lAZ4vXFjfurOQQg1OdshVSR6GEhFXKZEShXC/Re+XFRCBjrbTEFHCnBTSsgAUimSTTO3PDTJKMoYGnhhRGC+ZuqSHaW/LGbYBAGnaJKF4u4R2Ovmu8iMbV10xZYtc0otsjRumuxNQt7AmK/PoPNqsE7YSs7xtvmZu2xn2LnuwlmuLwgtHJmt6bbGaMmkr3e8xnioao6Frn0FSS7Sjusi7GWcxLDpVbi2FK3XGaEZbpw6GQ6G2YRM6WAs/JGNxuFzdrHBFhocVzsbDFY4Nf5pBQSqwKpV0oJZkrbi6Oi4gDWeXUQ2O4mqgnXICIufvcIp452blrYi2hNQmRZQNi7/Oce2KNHqHG7uhyiQQrL7pylJ5sx/9aP7i1D0N+2i2QmbroVqW6SkLWsjETVkP41Xdv1P9qvzsM3VYd5YuF+wsAwVPcpFdbO8ipUUpexQm+kkJbuHAQj7IxVFs0X896mis7AS5tNxEkPIZ3KTe3u+Szq27MsmQb/aEu5Dv+tEq34N+tNdCw2AZIUHenU7YAOHx4N4whw42lJsg3OrGA+1/dh6FFfUsJV7vgq+57P9SO2503CCqzoqxTD65bXF7kGaM0qKv4p7rtnHR0EMf8qi0PU2bhgD3OCowpdIdxpRjeNojDAIyeH0eCoDwBXhDAq8NkXAPCRxqNlVaLRrgwslilYe+ySoZm+/oWN9BNuGeZFsEYObgq2f0sVGb+XKHW/siWIqGthSuiiSXGIBS3/qWqq1I3EW9D7gFKUWxb3Y+inp1x5OQ2mr0od0MyxniXi3bewyMj680k4gzmBBwXGAszCYCzyRw7tFmE8bXpMzDlGwSrsVu6Mxr0/ioSDlxK8HMKwEVN6YYp1nbmsJO6UEyleIyOouRTY0JOH+wMQH37OJbKbb60bqy25rhhTe63NovVsrsqB8VNRLKW/ago9EOerPDOqJ+dj7HVbHJM6gS2m5ej6TWI3yh9EfyxLlDVufuokZ8jYN+uLGfWSfdYQnngR5QaemA82RC3kVTv+wvE3qUY87Prn6Fare1rHyE9yqyUo0jirt+quDE+6dfhMHEQaKVfoo93I74pnfB+iCGBV6NnWvDX7j3RoaNSxD8GK2251n7Lhf3rcMt5C4kgllEAWVItA0S39VOkFCL5vZByeGRuCwe6vS/AzCN8aIV0MY8SXmkuJvX0RAzyhvvstWUEY+nnZLRByHVmDBAKmolG/0yXtUrchOxYh/P0KQ9xgFEWeGwjT3PwVoyreo+eXMuku3CQrHEthRaFgnFY+TnwFtAVKk4ZNQgR8ugPAEFlRv79aUfkdzNCVM2xEx4qe6xIQwIWt/ocQAK35NBddeWcerK9oyod13pHC/tJlGGubUBR7M2XuM8zcAzVDcmPqiSKPuBKom2eX5Kq5LEfR8iay0FNwKr6Bxtq5J8n2tXIQmZ3a9gzoU5ai1/BqNX4new4ScqF/QcHUlRYkZ3gCzpQ8K2uy1QWtRHW0Dp2Vkz7nI8NLz/IZFvxSsGZPpPX+iEzz/8C4XYIXAKZW5kc3RyZWFtCmVuZG9iago1MyAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDY0OD4+CnN0cmVhbQp42rVWwY4bIQy99yv4gRBjsAEpyqFqt2pvq+ZW9TCZJHtpVPXU369hgCETJduuUq2yBDD283s2RP1SRoH8GeVReY46RDWeZeGTfF6UbLPVFryJ2YxAowvWy9cVex2NSdbrz2dQH36qZ/V+p9ZPRgUNKEa7k7Ikx5vt7vBtA2APAGTkE8o4AsgA1sp3AnAylwGcm+Zp37LMxd7JSDidc7632a6QoniHvXgb5CMWhssoljBuv+++qI87SUrHyFb9Tll41M47dVaOWVOwbeWH+loTssoYbZE5ZZTOgHZpkrMxtF0l9JsJZAJLafQT4JQIxQKatpjsMuhQ7EpiyZ4OMyluqHALhKidDaEgiKQRQ0NQsnQNCcZFtERnmOY0VDSydsxR1k8kmvlAsfhH0AxY/GOB704JVoFb+Q+V92tVZYc7MCa+Dqb6isU6FHW5VEVVPseo1lQx1Ri+twibDpO/9Jnm+2NHvozmkCkxQZOhzIRFOzGBcNquKJrNdYXR/p5chknbgEu9usqxEzVCwaRZqGAfp88cYub2wuI+j3mFZu/7en6cot7iznXccU4Oj6WXx6rmPe7QkibLS+54rnXqOqhcH9k9zR123ZUP4/Vt4YuH3B+turPvupq1OqXd1keuKCA33MD1mpgV6JXN/nyr/3yxNM8FcY7Ak7+GzPwfFS2Q5miWKvq5A/wEJLurN5dfFm9uXN9fLrY8CC6WnaFaVjIe10Gvh+o7aew7qe3UKx6aqjfrp3Vd1aZVwu1eLlZv7lb7DzpfvKPMQUfE/iGtS91L2ouw0kgSlgPqyLFWRsKFF5XUn5GfEfH6jMtv360zDlAz2eUp3v/FyzWUXpV/2G7453d/ACnd9yMKZW5kc3RyZWFtCmVuZG9iago2MCAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDEzMzg+PgpzdHJlYW0KeNqlWEtv5DYMvvdX+A/EkUi9DAzmULQp2tuiuRU92J6ZvTQo9rR/v6JESrTnkWyDxLAsUXzzEzXDt8EOJv/ZIcIQwzSmaVjf8sRv+fk65OWAI5pop0LmzQguYczDpxDHyVqifv79zQy//Dt8GX5+HZ5f7JBGA5no9TKgz9sb7evpr4MxeDLG2/wkfq/G5JdBzGNvjMvf+WWcq9+0jiF/Z3qX3x7qPhc1zfEJ/JS5myVzm/OTKWzgd6Y06/Hv1z+GX1+zUeM0BRy+kxURRhfd8Da4EEafsM38M/wpBuFg7YgQAllEe8zo6KNYY8PxibQ/GJwCG0RvVs5d+HE8t4oBRZ3nF5+9FZOfmDe4EbNulTfwBpeyjJjyjJvq9sJyrj5pvihjprxSpniJPHjeK7LbafyJfb1qGW111jqRx1usGk2LTJAZim1xx/loaU/hGWk1HliXe45bmdrXNZulYOEBSSQUjqKXF86JZ8Vy8RNJmcUrJyWFcmzRXvCzeKLZQQmWWNpm39a2YlHs8alaJ9HasnThL5S+JEVOA4ujdxOnwXKuZjEJJ7p2MgRDrB0baLpL839PhdhdSYlU3BxqKCuHklpRSSqzD+SvejecOaWMTgrWCY7TPrcudWytVCZX2zQ6TIkLwmIcg4mt2riinVTdZ6y+XYEmywOWN+1Nj1em15mHdSlUmGcxc4NL23fubqL6UfwltMk8qB8oWbnc11K4lJlPJUjl+eFKFc2db4H389HRFBWDM3joBbA1n76W1GHKzY2ZYxDjUmWlXIe1suq6QqTolWJVCrxbeLL8Q1aX4miGeY6Xwud+TjnfkcLHTSFyPpVILPuC9HxSlrhPe87FsEZ7Xc7gldOTwsEN1ZWrfY//A963M8yAxmGsT7dWAuXLOd0QoRYjgpNwLN1VhQmBQVbcQn0oHMX4oEK0sCOZPdH5Ww0IdIW5aEvg/FIBpyic+QGwkeH6GAVz2wGteEMveAEJ1Dip5jkj74AiQG5I7B4TfcfE/4PE78NhBYpQEx2TEyAK8lVkqCOx0/m7B2fjpOCqznwGrlgqRbp9uUeJT57LsOysvwHL9zS8B8uY8EYJ1T17sFa8V637OzFMt2Mooj+OWBT1pxEdVvDznFX3EazV5/NLHKwZJzNZSpbKo1SsNLAh649ZJAIrShl/Oj55IC8DeY9WshmBYxpyHPOw7CTfFeCwTKPaVeR176rZlaNd6HBlyGTOsNaHKtjSeKkRoTEulZPQOCWJNLGr6C0Sip6urhAFWUdzNC7653GMzOVU35Hib6oGZFvRbGEepq4Hy5os3V6yRNMQj8A5Feb6xknhmCt59gA30Pgx90574AibZqqwMqq0zqp/nq/OL+6PK5LXOxxDJzAF93mNp223scfNFwbVVF36EYm4QR6kuDQFJbFndTmU1G37/YdUJUo8KGyWOi779eFXZn70/rfnE8Sy26iiKeSU0IhG6IW+eabmG6BjykV8eMd/YYfJW92atjirS47nfeLzSXukeS4xBlc5FZFvdVvabZuwkXBAyblVz+CkXORVRyVAqfIWAQ7qMCFHgBxNrRkE6U2Y30UkXR0JdVacWL42Xdu5p1aD8I01/TjRPEAn8P4mqW+y855f4YOiAfvF9aOlhErCW31x67iGTYJdFI+ttAcdbuVuzf2meu2uU40ldxbcFO6v063Bvf4B6aPwo5rL/Q9BIaRxAtC/BMmU+iloB1chwTgFsczSZRY2+Kvp0wj+aosrd9l7W5yBMXjc7wrL+64oB6epLoB2KHz56T+OQTVWCmVuZHN0cmVhbQplbmRvYmoKNjUgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAxNzA2Pj4Kc3RyZWFtCnjatVnJjiM3DL3nK+oHrNGuEmD0IUgmSG6D9C3IodpLLhkEOeX3Q0mkRKnKZfeGRsG2iqK4PD1S6unfSU0S/tQU9BR8FHOcTt9h4Bd4/prgtTfCyKBiFnNSaDubAF8PPoioVJL+8ut3Of30z/Rt+vF5+vJVTbOQGoSer5NxML3KPp//OEppzlI6Bc+Mnycp4UMaA9+dlBZ+w4e0tvxO742H3yBv4dPpMs8GLvN00C6CdvkC2hZ4QEJ5/ARJeXr68/m36edncErE6M30X/IiaGGDnb5P1nvhZlNH/p5+J4fMpJQw2vvkUZojhU0/sjcqPB2S9fBVX6px2oBhdkEn3ZNO77OxAR3MctmkL18dRCzMLqJ+bYUB+z43WiYE0O4W1OCeVIqeDfQmy6Y1fXmSLguxtdcyI+lfFPud39PsFwiFdUUKdMPofEQb8lwaSZYmi/MqAeWTN5diz+vCiZa2dYvcPFroyZbsH9mibRnN658wasy2GqM3rZtXSumGBCsjnI2YYHA1i2+72oKdExcSoJ8OXqUZRqExEaUWLo3GZtiAizZguGsCbHLanXElSSNG0qyURpyp5WkzQFrCmvKaQggWFduvLJWOVp83V6+gVFwuRaKmx9VRBCF5lqWu+FQvfbcOs23wsuqvq35I+q9ol895LbvbwO72StPuTsl3tLlvw38HE69gkwhkZhPFI9b4pqbMg96Fb27MvSr6DqAiaA2sJIEDiZU0KrIRwifdcUhYGbmyQF4GOEp7ZDx1IvfTG39s8i/EempzLoGpWcDBJP3IOVluh6b3E7wgoJOsKU/Raj+Tp4tvPHE3EpahrgKH+jC3i8lcISOkVz0uM6MQ/0Sk8wUxbtfsot38jsDm72b9rmmPA2FrL9mOTU/yv+kkiYJx1HCDnSrSoTXAch+FNfNM+3V20M7EWu6xpbC17BvavHbMIG7UwFCu+s1OBEaoyUGed1oDKbzUtAlpoZRYl0Foyki33VJJd+bI2YzkHVaQWhrzaLeV04iJfjDdMu5d8xBp11j4FG6UMnpuUF6IW89jI8Fn6NcHj/mX39Iarm2uXEd1RP0thhUZstBP1jrY1iKoLV+XYYs2ZGmmqgfVsoEWFj/sqtIsHKDf9kPDYAIz5tJ6jWSUlRz25Vd1aCN0FC6cNxTeNp+Mt1KtLeihFuOx56ieLLDHjPG4tdZtzft+NAiQprEDRV/YlikjOvYtxZhEZi3Rh6c4OOLvC7MgbCYTddyPHGcKBoQNHNyAUMNDo06ic7bd3NwQwAGMZCix4NuyGDJAx8WnprT0LUhZilGW1UIbV/sPTfvPMzaSDXiuOdxTn4WvjvUxl77UM6ss5/+9cOOcUymVKI/2ZdjKmxXIkXwKbO1DFw4aNrfVqstOjWP1Ci3Ka97liWrdA75SRb8Ui4sulCjrL8PpIayAcaNK6hkyPeuxSrpWJT/kdG8kA1B18sFa2XXPWPF0Y3GenXj7JKX7Guk3UD97EUJsqCfiWsZ2t53qeu3mkT0RrLDS0ir5hPa+IEO+zuWpZ6HI2hqaH9Aj6h0cI5KQToQ1RjtNPPrJmnhdqy8VG+3cXVybDaov8zo22NCUesZSY5VXQqWrn/5cTn3DcB7Ga6aYno0Tng3QLYaa+3fCfp31WQmr5u5ER0VplzEYY/FSsFMCDkrPcHp0fSUoXWfNWXxT37/BqOtIRimU/rxAhigUK035rLbNLni8WRUdL9npqhKK55cN+IvRSQl4TdYmJfCV472uKLDvFuU6QNi79PMK+j8oJ0WwPSZ06nRd1HdMNQFvNU718LxxIZaVeS3Z/UC2MjLFdyfq4kxlHPfqCQwNHE0BEdZQtaPUsb1mhsuEE2dOrsi9Q89HGM1Ps+HBJPUTcqZLQ/2aTI9KNPX4ke2yfHy/p0yhv+GB2HayHxW/GZNyZrx0z+rUG9eaf2eVdiBnDShd2uQCvTqWPqiQOlo6Ae8rctt64DGxdfgjRjVbQ3t2sUVxlm0Tvh0EvF5o9j08ksTdyW+yqqfHVnpfY8kbOroH8XxQs3BqLPUG7xGc0sOVuVPmTRcz5VLElUsR1kgUfRUsWEvL6Fhhy+jY9KFs07luKMBlocJntxR+r6XAw3kNKbtGXzlAQY4skJd1J9UHiS6Iyz/11hfvuO7NzjwnKCNCgzdGzmNXTE3EC87uLhzS6WHz36zezyJqzf/PSkPsH63DAc7DmTL6evMKcVC6O4N2fbHQbjXF5ovaW1Os1MI7M87yL7XvWt3p1+P8gpBJFPVCK3z74X/olKUkCmVuZHN0cmVhbQplbmRvYmoKNzAgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAxNDc0Pj4Kc3RyZWFtCnjatVlLj+M2DL73V/gPjFei3kAwh6IPtLdF51b04GQme+mg6Kl/vxJFSrRiJxlMFguvJzLFNz+K9vTvpCeV/+kpwBR8mmOaTu954dd8fZvyY29mo4JOSObUDDaakP988mFOWhfqL7+9q+mnf6av048v05df9BRnBZno5TwZl7c32pfXPw9KmVelnM5XpPtJqXxTxuS/nVI2/843ZW39XZ4bn39nepvvDuo+GyTN8xO4lLmrY+a25CtTaE/3TKlOz3+9/D79/JKNmlPyZvqvWBFgtsFO75P1fnbRtJW/pz/YIJcNCtGlYtCTni0UKjXnHdUiUKfPap91fK2XYa/QHhc+zRvUwt5Bn6v8y6uDoPO8ArZKxIskWkf7AlO5QZ/F198aut72rUe4yKk0rAdKjlU6UgbilkhmRGqNtMilWVCyJzYL3irNkb2mmb5EHiNOAQM1G7CUghBYTGML1VBcXehJdUkk1SgojlU/16sZuTT3KFr10rXXTSX3Vl3YhSRVnRvndfgc07UVsYtcSDwxTSzppoQFo1ZAzkZ+hv3ku6s5KdEyl7akquuJshXWfUmFIrbAizsIXmEz9E8zRE2hNxz66xkHaqWaZ9e1ZPGcvbzH85NQaIGMHt1Z9j0eJ4x4Tmn5GKwIMtm6zYwV+PwmVuC+z2FFkBWP/PBZCbHCENcIazM7RwFmaEGDei5k4EcwN1OarYmxgHnGf50bVEzcmkqjqI3j+akU3m5EqXDOEkIgCSveNnbUrCrKrHuKwhT1CiQ6Ua0ig+LMGA9CKAuOK7zYduO62pDPzbqu0rbqGp/cVdcxyuDFXaSoNvBKlBzS3bLCLQypFiVC+jOjvEDYhOmaRPYIipZVTa8VLMS0ggVeudY7KIFVzV6bOH3HllJy66HIAdIJRRpUVxVz91DFXj+FZNRohaa2eu2YzRaKB5ceo/qk+75meF/vLhFxsJqzn6N+ZN4osexPbUVGB1c+VDco62bdIBXLxogvZIMbdjSe+NQLv3yXYLd8tuuueXdLqL7mam4+Lr7byeTbHXY3Zwxhgw1xOOfYgLWXhCcdRTCzO75R+qbtjLEhDK2s8ruNMXc1rNXhoep+q0lWKvZr1abZazmrRW3oprPEk+MoV2Z7pb//HDtI+lA+7uXCrTR9IxaEP0UcpeoqX4rSQC5B886VJ57q0hpCNiapcRJCjeiw+tiy27dnlVQftucSm6VNfDR27QA/FkqqRVKCLAO+V4cSs7VGJz37jfN6D1IQToiin5KxhSM2H8J0xnl0PPTMVL5fDznSaj3UTDtpOEJjDauuTqcC0Id+EkBtOVyR98AwrPIMibowuvOYoPXYnfT9vahQ3zWXVSncNw1pfqopMkyddVIy1ow1uwxzuDwC1ZHMr08SA6pXnpvAroO5A3bvh9zCEe5wTKXCCnB9RK7aSMisKx8dmnWwAsyJqwBztNVtHHh0oxaHgT2tPvJCAndg0cZ7izZ1v3JBdT2rPo3WiSJ+2y9uWcw6E2lL9+1m8cDXXe3084xNcZEzu2ybt8ZE42AO3oxjYuhjYhLudCRCAnuUBcRqbAyD/Z2FGAjHsc+4Q+0x5AIwVmA6V5C9nEG5YjcnWq7twh05Xgw+xm9BZD/GSnp1Sc+at2MkPkfrghgQmqSsmIKVXHcaQFz1Ot/xBahNXzRdaJZvp9TlyhvIukOeHFCzmqj83Gxx3InFxVuMPge6yxOzHHOMGcccWgkd12jlLKIzjCDG6IMoqoZJ5YnZ5PbYKMjmOMrXA/pV+bBQgVFjw+bW9P1e3xbW3ubBbuECP0uPwqGjIPluc9DnpGnvZ10UmJEEqPcX71pOBYQeWqBHgNmkmGVRC79itrtt9iU6BTOD7+xHpS+wdPWtxfs4JwD5sYWX9r62zOBcpoowJ8+Ow687sELrlYpZ4uWe0nHs7h6rYPbOjLv8sYXnIq/a54GFXJv/gyNL+PrD/7NtwpEKZW5kc3RyZWFtCmVuZG9iago3NSAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDE4MTY+PgpzdHJlYW0KeNrVWsmOJDUQvfMV+QOV432RWnVAMAhuI/qGOFRWd3FhhDjx+9iOCDvsXKqmhxlArVIuDjsiXqx29vTnJCeR/uTk1eRdnEOcrh/Tix/S77cpDTs9a+FlLGRWzMoE7dPtyfk5Spmp3/34UUzf/TF9mL59nt69l1OYhUpEz7dJ2zS90j6//PIkhH4Rwsr0C3i9CpEuQut0b4Uw6TldhDHwnMe1S8+J3qSrVTDPeE5zPikb0+piSatd0i9RSIfXRCmu51+ff5q+f05KzTE6Pf2VtfBqNt5MHyfj3GyDrm9+n34mhfQk5ayVc1mjPEfMJj8UbWQ4n7L06TY4JlhAwVBJk0SyWYkbKphpC10R6917m1DzwcbM4zQra6eTMrNOciKflU7nUzJMHlH5LuS7xFBqvEZAtTx7vM9zdaU2+HvBq8b7fHVEJV7ZmprPVxFVWc4yI1/sU6Ry6clqsI5JK8k8+orPFwQHLZpBKCDpqo8gDloAhwKeRS6GgEvj/uwz8NkjPtd7gDeYhvgb2/jmeeb1rARqmteQ8nwyUdzFQhk0uGP6SJSTosAXRwDLSz1bE9HyhXMk/1Y+c0tPThBChrsTaKTJ1fJYLG6GMwreqj6h3GkctLyA/soGhgbSSkTP1zd37JMRAKmL5SOXsY5ccWXSwKDktzZmLlXfL5M7dJYkWTNbgIJPpJA3e8GXQPFFoBx8eHcv+PL7a6aWRM2Db2HBZ2jNreCD+dmlihIMapijGZDF2K65Z6G8wSytCQJmONGCklxJYRYr82/ICUwXWX4jrlcCmSQlhwPp0h04WmQ58sKMBzkRqXMAknuzt8d8d8LoDbhAsH8CLiGa6tL5yWZLvTJNZeNVrP2Ccl2HEBZtPAe8pUAwLOh25O/mEaoM7TreYcvC5MbCxUOSU8qqJ6GjY7lLMdcJpDpXRrV4U9pAFCMkByql7J8NKMB6Fo23pWjm8Y8rS/ShSVecEOnU0pdvQKFJT9lLxxZU+bk4Cla9DKg2GQedzb3w7GweWp9yZ9F0xaFmZwfrlTVCc1LkRPMuiEyX64vOrWbYVtUsQzpRKMGC2fjNLLrbwtQiIGtBuptFNWRRpOYtjGZZNECOVrtZFPjqgI2K3yhcwEEChRVdAeU5U7LOzqyzYOEEAXDrnADd/LjQmE+AyPL7DiLq7BwC+YLUfgWRGSAqMV8i4dpUq1648o4aTyxpq1YsFFb+nVpede1QOAbKtoqctiYElIkjUAHBIY+hirzUeYaBw++zEBdacxMoc9QOwyh4Sn26toYQApfWL+FIUC8dvewDvhjC13ncCNhmFs++di0mrWeRkjdYZaS15XVlahj7ccm5U80qsl3ROYATNzus98hWDnh5lvhehxTkMM2IEMZ++UJZlQUg1qyu7x2BrOG9zbR6Mhqty9Fi7Gst3+NUnx86arYHQj8HfY5dPa0mg0RXl0Edubpmrm4qtcE35N6BpdBIVFtpE0a2XT2vQfuoUj+HWsadDdbpevxXekv7HdDxEXfBeQeWw7UUBVazC5u7tDBtby0FUsC3Slw2mucaYtD3UB3HXkWJpcpwYSO3ioRlHFpTf+vbTrO7R6wB3cINd6rVazust/ZWkHZ29om8UwH/3t1xPR5Jq2QHcgxegbSDLQrtm23B1qw61nkU36y7hf2w3WoXVjhWrPpYH6vkqlV4bAdqH2wMAmsGln4HutEYeHZPVfG4d/p3GwN7vzEwrMk0pjYGdgTKs2zJO6hQqc3QNUWWOTVRbTcGdmerDhJVT9P4w24fiq9dlU/LcgPE31D0xxY2c1HatpO34o/lbYmczdOj88nIJwyTIiZ1uYbEgsmrI6b0DlM3xOZCMrcWgjTY3v3R8qVZ5jsWQKvPABApzg3lv6aEzzkMNCS/hrgfOgp865hLkyVYvqGsoK0fLKnvZlDgwIEfeB6dZNr7zRPsQp2RuBuvYbngqaca9PJ4LgprQy8Fe7/LfTy2MQhP+x6obez1L3Uvpq3kcKhzVIXY+eJmHXNi82ShpqEjJ9o5d30kg5sHMzjf8V5YBo+7GfzKElP8j2dwcz+D6weBcvxogAEVVtRjBjf/g1Kn295gw6kiUoUHj1TchlMZflhSUaRjlMCwCl8Rq60vBuvTqKGG0Ke2wbX0Hlyf4lqWuZbuYtAzuBYWj+FtxyvtM8gXdK8Oie04jO3r6UNg2Z2EtX1cZ4bjOv023/qqYPn7YD16tsnBcruepTc26R5NcexZ++dRTf3Vlx8q6ezg+bU7bKbvGG71xeUuIOYNgHT5uctMlgHi+HnnPiC667DHg95+L9ikP1bu0d2Y2Th91Lu7sTHtfinl7Oa/RKSWOnVaiv9PBL1i/xTB/18hTwpqjo7ashLYilZf0YdUyVZTCjS7U4xQs7N6nOXqXn4zeqHDu6B75492C3H48M3f+ZJLdQplbmRzdHJlYW0KZW5kb2JqCjgwIDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMTI0OT4+CnN0cmVhbQp42t2azW7jNhCA730KvYAn5PzwB1j4ULRbtLdFcyt6sJ14Lw2Knvr6JamhxDhxYjcOLRiGIInmUJyPwyE55PDPYAeTfnbwOHgXIcRh95QSfknX9yH97QjIeBtLNjGAHMinx5XzEK3Nue9+fTLDT38P34Yf74e7r3YIYDBlut8PJEl8ynv/8McXY+jBGLHpCnrfGZNuhig9izGc3tPNMI/v+X9y6T3l53QXHOXYt3nWK5SYSjfbVNomXSmHdXpPOc1u/ef9b8PP90kpiNHR8G/WwiOw5+FpYOdAAk0pfw2/V4VosBYIncsaZRkDnF+KNjauV7n2WbFaaTsqwXGstORK+/L5u6+S6PggUctCBkp1GctCr4IqNN6rZu8Uv0KXK5FTt4/pvlUy8z9Jlvd6hSm10J6+QZrvcW3zeynf139ZSgoSNy2w19q48ZtFwtbSsbaR1/bbqSRrGz/LXVJ27RdJ5nYvGvlDmVJSGPW2trZxabcWtQ0gVoaVtQJWFDia/XrFyNVsol5UzGXl0GYVHvWTolUPo9I2mSHO5lig8EbTo0LZz02U02k7NiOq/Gtd4YPdgDK2bPSyVfn9+1AwpRm8FJR9Y6cbbR2Fk/PlPEWBrMxnQ6Bi3e8CYAQU2xNA7RALASACwXQFEBoLMGPXWAqMNA6SXIvFAvQPmOYBsSeAqAouBEB0wBx6AtjoYLEMAGhimiP5ngC2mr4QAEgg3BXATiu9EADkwUTXGYAsCEBa6zjuOgo8aNpCADgGG7kjgKzUgoZB9B48U08AtKxRIFrA2BtA9QGpA47Lv2XAIMMQGK8EYwkA0gPFnkuEIrecOQGRhb7+0M2z4hJp2On7clwEsQCHeC0o+zm6VGQWAkUiGAq9ocTlAPAIEroD2CwHQHBgqefyoQwUNYSSnnE54RSKEVzouZSQhxlGdpy0HN/AlgAvFlzKGUWjiRJexpuR9T8zh95zSF4Ow/AawJ/i1rUs3x8QupTGPQFt6p7C2I1Ghef9jw8CYHMmADZAdFUAvtnSebYR1B+GEIRwqSUIofZ9rxXQ5wJiOyr+bHvGr92kvGnWZ82O1rS14zSNDxVfY9mn8ovpknMj+Glj8s1GcB6Y8NYa4W2rH/Nf2upPBB4MxGCvBvx490dp3Mij5u/sEiLDxTZwqS6rXGNMRtmc2Ssnmcoizt+9AKdzB1IxAUzowOkteylMQsPCzumd7UbQgsNzlqolFumaSmpApnqb1vuI//9G8zEQM2T2cxT91WFD5kao+8/FOO1JXklIwPpwowApquXqKZni5cIsX+p3IihOaeg/GdSk2L5p1Z26d3N8nDs2CSnpTd5qHRP8I2V9FP6hHlxdzG6WORW8Q0Dvlg7+jOl2CfvJPBlpJz2Xm5S8D9YLBLwlsD3hhQjk5ZbgndqtG18q7UnA87u2MwgReQEQ35pOX23qfAJA64A9fTbAa88FTwBBBgziTYLQMuo8r1kps8qWAaWpq2BzEFeaA7fadengsO6pkJlA/GmQJbovCoPn1VI97Vu7WZ3rTaeAtfL1JGk9QTEFtiqkJpKXK/+qD7RHpkRXjM2Murx6Zt25kHwhtofWa1Jzav3goLkLyYG6WE+tF1M52owBUF6IcL6OinBy0E7oUMptp6PcL4Lv0yHxjaKSHJCoX/j2w3+SGDiDCmVuZHN0cmVhbQplbmRvYmoKODUgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAzOTk+PgpzdHJlYW0KeNqlUz1vGzEM3fMr+AdOoSiSkoDghqJtkGxBbwsy+CPuUqPo1L9f8iTFRmovCQyaovhI3nvHgz8QAe0XIRNkraFU2B3t4t7sJ1haU0iYY11hgoG4pGzHSXOoMTr69uGI8PU3PMGXBW6/RygByUDLAZJY+Rt22T/fIaY9okSz0v0O0RymZGdBZIvNIXOLPZ/UYsOzeaFWx/kcM08k1brj1rptzAwRtXtD4m5+WR7h22KkQq2a4K+zyBQ4MxyBVYOU9HbzC34MQmKEcpHqhGIJEsVQGKyiMSI8zBMTj+m1W1qnTlLVMlJPTxuNARtScrfU2Jzfe+xMV8bac/vTmYYSMkfn7eo4V7IZvGnxqq73jXNGVz43db0nv86Evc4xn1SfvZfPb884tL6qX+GA5j+u36oZDy79PHjride6ZanVXNq8T/JOtfP2GYIXd0y1hEp0vmTj6sqWTYHERNJCoWrt303kpkmk6+omU7VcLOSrRYwUVNL7Kt2OT+p/2Syj/sJp00WzP9qOCU83/wATi+sXCmVuZHN0cmVhbQplbmRvYmoKOTYgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCA3ODY+PgpzdHJlYW0KeNqtVs2OEzEMvvMUeYFmEyd2Egn1gGAR3Fb0hjhMp1suVIgTr4+dn5lMd6bqalGVZpKxnc/2Z2fUH2WV4Z9VAVSgpGNS44U3PvP4qfg1Oe1MsCmLodHgowv8uKOgk7Ui/fDlYtTH3+pJfTioh0erojbAQoezcsjqk+zh9P29Me5kDFoesc6jMTwZ5/gZjfG85sl4X9by3hGvWd7zjFD0fOhl9jvAxNbNka0NPFjCUp1Z0oz7H4ev6tOBndIpkVN/xYsA2gevLsoTaYxu2vmlvjWHnLJWOyASj0THaC+L7I0d9jtBz4/wPIPDCs7LXmhHV3NJexdjtZZQA8TJWkXsZ6vsNkcmz+CzpYdH5BiHiKnaAKPJwGZ8W2xgqJHlPzhmU6xsnUafmnIXeEmEb0ao+IS4B0ElMoMkITbjlndsMbrTgHhlOL92dfYlbhUV1mNkPtf822xoxY740KQnlhQvV/1xi9j3cQsamfQ7JgfTtaXTPBe62ClomUSOVyR+27RYjdnntoqiu4xHobbdRiGAIyMODQGkico9lnLCPVjK6Q1LeddjWU88xBuBspRYPPEDYJUvWeI5FdKDVO9aZduuas2tQgAgzf3iuhJwrgQ/V4LDt1SCS1TR5w5xm7RDKcdKVmoxFTSYugqJ5dmcm4Q0rbw71n4QJ126oneLKrRI1TKbep0v/U7W+YCSZIkvdjV1nA+YmsWLiqh4Z1Riupl0NPeu9hZpo7T4xNMmaxK3fLVzxmqL0FeXX8Bf8jvW3ZnVxzpS5vONKnLW62Ds3XReyv9/OjvvdHrBZprYnK80Gewd1qaWUZze1ONzAodqinLyGide1/1z9se5+4ta3hecQxlrt0I5dHEzSJHF1QNLsit70zUJuTI77LkGznXE6Y544UMfgFCyuLhefPt86NXx7vvCW96CdH1fzKxu/WJm9HFxS7hCg66jj7d47R1oCPFuXi/lX8trf1z9TCKKOgH030ltq/tQ6tHUdkoRdKJFP5UBm15wMjho64qbSt6AJnTXWjRdh6v1slUVfMLTu38zSGU3CmVuZHN0cmVhbQplbmRvYmoKMTMgMCBvYmoKPDwvVHlwZS9PYmpTdG0vTiAyMDAvRmlyc3QgMTgyNy9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDM4NzA+PgpzdHJlYW0KeNrtW1tvHLcZfe+v4GPUIrO8X4Jg0SSGW6NBatgpkFbwgyyvE7W2FFjrJumv7zkkZ4c7O9x1DSloAAGWZ3j7Lue7kBxylRZSKCsU/7zQ1gsVhXGoTMJ6J7QULiahlQjKCK1F1FZoI5KN6C2UDFpoh/EJfTHYYJwOIGnQLQrlHPol0I5aGFCN0gujQB0UDYZK64QBYXQQHKIT6kHKKtRDIIdBJoA0+4FU8CiDRYxWWLxKGYXFEAViFiw0+lkLkiFAfpCMStgAkgn9E0hBSIf+EXQd+id0diQVUE9SEfVQXScjPIZaKOeNsA5MvSUkWngPkuAPkW2MUfgknJQaCIE0lAgGpCFsAGkDZiRtoxEhCsARRED/IKWAaC5CbjS5BGVJUgL66MEaeJG0hh6RrGUQSQrvQBcQeQ/bJIgSkhcUNUFOqBikQ9lBlCBFAisDuRRlswBeAazglMrmDp52gH1DoLlp4Rj4QgEBpYJZYC3UQPVIXBSwBW58obDwFwXtoo2wv4OYUAaGxiifYHmgEiN5gWhMsJUCDkmyBroleAZeoIyhG0H0ZKEH3Sh5D+7UK8CyKeEZ6aEYFPGfggVTJD38pQgjKNgwRQxQsHRKpAfvTAmmUrB5SpSdOkp6iwJ8eAPecEK+efI3fGM5QCxJWBSQxxsoKRgObxBfwXRAU1qR8ZAa1lOR9DSBcqQC18QbQ8MoSsoXy+giYQMfUZRLGiiWMZCWceNoHcthjiMsIFKOzJwCYRKXNL3yZObggYogSbq1ogLSa4pCATxVjbmOgtM6MmTrk0ow7EMqIdNiKURy4oioqDRHRMv/s8+E3Ad/KY9j38SYpmQywfJK5XpyQpJAff6fJWnpbJ5vniPYVyb+HzmqZA6+ETpqoDKcmuM1OelseRor99XUNZIeE4WKpMSUo6gBYg9lRAneAnFhP8sA8OxnmX/oLvBjGjWHAWkF8nXMgCHLTefneDg144EjHO2YdfY5y5GHp8wm60eZ6QrwdfQzHBsos6HMCDS8UZZAmU3WnvrTnjAU/ZZUInmSN1Sg51KWRE4Zr8RESguiiHxIS2gGpKIfaWOZqomhk+xnGSZwYk1batpc05Y6BrYyuCWzbZZWG/ZLDHggpmlVTADkESh3ZHbmiIhg17SsZRBr4mUZwZqWtgZ+oOkHlvlA0+ZIlqzjbBAS3xLjMU8jOSAhm9aMB3qSJiIuUyXWziByNa0Pt0feZkjl/sw1lt4dGDRwYU1ncchveGNdwHDi4qLifEJaEeHNoHBJkigDL0UmY0aWZC/Gk6SmtKdn1mB4eQbt55+vvv3lx83qi+vrm+3q+fuXW5a+vrr+1+rLm3evNu/OJeZQ+WL159WT1VfnqhS+wLDnqz/dfHuzevTJjxffbwalztbr1bPN5fY8pAHZCZlzoMcmOSAHIO0NRqkX6/Xv/keOUEyokePfnj3h3yc/bLc/3n62Wv3000/Df67fX/8yXN68Xe0ksMEO9N8qAjAemL33ZPjury//ib54e/IWkyJYPsPwxzfXrHqMOYg1q8cgUl6YL2qnp+9uLp9vtuerp48er77d/LwFCWDwVXl8WR5PPkLXJXRvIeTVzfXQ4IuJUUEzk11vQB6EOT2e/q5Yvn+549rwjW7gDAGfGoLJQTpwqvRKD0Hq++Ct57yxvhhyUNo4eMOFRRoQVncMtW6hdt4Oibknr2s82N6DqvoQZufUYMgXT86XzptB+3gfvA9hNmEInK2NHpiZnU1DUOk+eJsD3toOOa/7OFjMK8541N8Ha3vAWkmkDe4RkC/oXVoPXqs79i7TehdW2ENeNRk7cB7DtDFggXH36ppDD2OWDOQd1CA5rUQPGfx98D7wMOsR3VwRgXfAxGYDBIzhPngfeJhF0vQhz9MD11nWJUR1vGMz2z0zazdwosfyAawhAgIMS6K7V9cumFkBYvJOCGruK7VhcN8H7wMzmxQH7qgl0jTWHhYBhtXbfbA+sLLB5M9FeYJYhlthpG7n7oP1QR5BQA950YupgykM23EEtb9jB3OtgxlMiJF7FSe5EBDGSyx57pql32OJNYdjCMOftOF3Dtja3XW2DHsspR3KrghLTKzajXJ43kPGCodhpBMRDdxlwJEUZNGDc/o+eB+EkQ5Y5nE/Bd4J+xEd0yDlvfA+iCONdYflph8pK2ZZ3GCduSPe871DRIJotw4aO6uHrcMDuP//4D7seh9c9yPBXT0GQf8A80OG+O2gO/luxfnBdR/S7wO4HwWuG6SKO3Rd3sD91vPCfYK6qOJ28wYK/sEmIz0P63jW3aZex2+5CZsrfgrBxlzxODrBre1dSfD24urN9uazq+vXN3/cgdyKwENjF+SQz2j5ESoKF/WgnL9jEFSyySUZo2++TaiB37q8H/KJqsUO0vKgf8Cm8ldFwDo9+Hy8lhGwsIUL6a7dQAXlYpTGpLkT8FNJ3sjjmaItn0o+aiP/oRj8MIfAGFf28wYiJQORsL+X5iG//ArZ++urt1fb2/NPHt1cfvp8e/Fue/bJk+3mLQF7sfrm4u1mry1lbrXHWUpNSZ7xysFUVme8eIDyjFFp1SMbP7EZW3hNYaJjznhZYSrbM15ZmMrujBcXprI/4/WFHt9Q+Wo55xvOeNlhohPPlGr1SWe8+LArQ0ylmyLUV6bHVquRrZuxRQvvTkx0SLdRR0N9FZoy1FeNEUCQdyoO+c7tmTn/5erV7TkvCKF/vh+Un8qWp5Zd+X2lYubiA23dwgAUdWM9DRR1Yz0NFHWjLrTTvsfVyJGrnbFFC29qTGSAom6MZ4CiaYxnwMc0xgNB3uDo8XUj3zTnC7RNo46B+qZVB+qbxnoG6pvGeiDIeyAdvraynfsIhLWNMhbK20YZC+VtYwML5W1jA8hs7UnLTu6hQ3EHY+ozlad1PSIjjTlcQMc22gMc2xgN2NjGZoDGLTlgSd9n5dn4X63n/SrSKEVA40xTZrudykDGuakIr3C+x9JWlnHGEtZwcaIBdF2ailDZy6kIlb2ailDZ6x7DdNacie7zBDa+qFF7/J6ae9dW5Rq/VwN1fdirgcY+HjFjK0DxBqeK9V31Cl+9wi8lnemwb35pYqfP1IV3slrZgGTQezUAM5i9GuAZKhD79HmTb0Ge/dsT8/PuSaj9frwMOOOhM494WM3e6bAaQEd5WA2tozouKE+m58eIS4KyH68AznjwcJn3AQ+qKZGbV9tMxB9Wk0g4LigPGeeHJUuC2sw6HfIAGOkAIx41cUNwUA2Jkj6sBu1kPtgVQ+PZwRdPjnU6jHU6TG2yrCmxBoGtQ4KsXXdOd15cZvXd3/8heCHJYyPhxfX7N29eHLRxwW86bVgBY1pebtNucL1xCtuZzjiXeHOk04YlaOyNCwoTZ6fN8fB8bIv7smBJjTlksc157u+W26zlzmdsK7PNrs3AU9Vym3GpwbrMIZMswLrXBjwnmvttztkBq9vFNkvM7E4HPbUpERwPf5f0m7eZlmRQEmuFsUmF/TY4rV8YNqeojnBrEZu3tdodtB0Z549o7o/IEo6MC+HDZClRNHnufpvzyCJpuc3y8kHHqa3tiII2I7k7X26DhVRvnDTY2y232fzNu9MW/GBTpw1BlHrjbMIqs9OGbXbsjdOYynrjZBxCZ5xBsKvOOBPV4HvjkCBlbxyCz/XGWdkE5qxNh8G6TpsyQ2+YRPB1hunoh7jk8HBAWNaG5TYnPXZyS8HAFO8Hv9xEA01A76cB7UDSL2dADaBlJ8tZKO5UJxaka9KOnxkhtLPUnnraYyZySxmQv1Gx3RlMB8Pv5sttyOKh02R9M2nM2oweOvOsVphLe8OgeacJi48h9doCptJOk8es0JGEd1ZNJ+nwHknwy1juTwsznFOYaGKh8mhzu73NP6TJH4HyZ6yr7ZvN5683r19L6ayUIeFPSun5hNd7/kXJn5DIoKXEP2lVefe61Oe+tvZXtf6yvAe2+/Wpy9JPL95trrf5pwuU/5vNz9v8i4ZlOUc+r+qfm/j5l0UWyuTR12+KzPp1lf1VlctUeV3ps9Olp1vutz518Xqmx9N3m3/n32gs6mH9SHdZ7qzP5STDhnLY9ZG77o+v3t1uR4arry9udyiuvrp5D8E+1ZOIsYVaHxFRN3DTDUIRMde/XJ+6oF35VRYjP9sxrZzMmHkRErc+dRF7xqPCblqGrqOgnhhlhVK1u558JNRYKMIQiPWp29nLAtlWoCNBmAMuVYFscdwRGdaFGqi53lSH8bU+NE58FDnbF9T1A+8QDLz7xiNq0LcBluW6aJw9rI/8imB0YtM6sW+d2M6dOIs9Sx6hY3BVMM3enGqCwLut76NeWRdfvdEcx9LMPD20cqSOHC+r3cYkpio2tmJ5MSWgnASO8tcL/Kst2zBX8ggomybEdc1IO4PVLBr3M+PomLn/6ybzuyYzE+C0PnXbfFn4HnijsUZHHDPlOOvsZdL1kR8VjM4WG2ertzSqs5lFZ9tPZ+rITLWTbzSumgJ7Z+DNLKiqLi3+/sQMZPedsIg0ymf66XaX9V41CSbVxOKq878+lH9MQO2MWtL2+tR195mMBVC1B2hnfrCvy/KkO1W6KtSpqfUkmKYvaDuvqF6q9FMk7a2jxvnFNmuPnC7Xp67LLwtjT6SXTU1jqXhRcE2a/pAosU2UVBPVKHGnU/J+KlSdKe/SNt41YtZ4fsbvclqTLi8K2iv+i7LsR0RvemhTcarYjdNZb+3l+zx9yzN2eLrCNz/V+tQN+50ftJldH8nsI22n16du0M9oVyXaeVUfW5RXJw+hWTxfrE9dnV9k2lWocexdan15xDihdeDUOLBWH5DmWz8pRMZlRo2C2BAJ/Mir6qfi8oWY455tbm/ev7vc3IrqDvnuwNOL7zc71ct5KMhcb1HmkUoeXS4Y3OafPRcxztX4BTo/Ckqifnsup6yiEBNljChHqaIcoYp6cFcORkU5DxXlGFSU009RDj1FPdorR5minGCKcnApynmlKMeUoh7+lfNHUY4dRTltnOlfzhg/QP9yNtno36bZcfRthV1PZEqCyh/k6xnU7oDivH6YL6eNc8FSTzA/EyzOBBv947wegrklvZ39QPJurnfckS9Yl3PEGflyfPgB5MuxY0M+HYHVLMJaviqJ8gFJuOlwox76+SW/9z2/N3Im4MzvzZht/gvh7kYBCmVuZHN0cmVhbQplbmRvYmoKMjM5IDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMzUxPj4Kc3RyZWFtCnjaXZJPb4JAEMXvfIo92jSGvwuaGBIqteFQbYr2jstgSXTZLHjw2xfmqYduAslvdnbe29lx10Ve6HYQ7pftVEmDaFpdW+q7q1UkjnRqteMHom7VcCf+q0tlHHf9WZltdSHh7j7y7U/2ujOky0r382Kozq2aH/YbPxY1Ncjd3wyJ4M5FXt76gS6FbjqxWjlCuN9j6X6wNzHL6u5IL1NsZ2uyrT6J2WFdcqS8GnOmC+lBeE6acjkf5lRXU28qRbbSJ3JW3rhSsdqMK3VI1//2/QTHjo36rSynv43pnhcsUqY1aMnke6Ac5IPeQTFTGIISUATKQAlTIJmiALQASaYQChEUxmITSQ8EBQmFMAdlTFHEFPsguI7hWkI9gbrEXrLkdtzvHT668OxaBLEI7mJoSu/hgIMwKXEdicwkuNdFpanj06A850RdrR3fjaeJJ2J6vFbTc+BMZ6ZT/P0BNoCz5AplbmRzdHJlYW0KZW5kb2JqCjI0MCAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDM4MT4+CnN0cmVhbQp42l2SUW+CMBSF3/kVfdyyGKBQlMSQKGjmw3Qb+gMQro5ES1PwwX8/uIeZxSYl+drbyzntcdNNttF1J9xP25Q5deJU68pS29xsSeJI51o7vhRVXXYj8be8FsZx04/CbIsrCfdrtc3fs7edIZ0Xup0sm0s1OezXfiQqOqFyfzck5MibLL+3HV03+tSI+dwRwv3uG7edvYuXRdUc6XVY29mKbK3P4uWQ5ryS34y50JV0JzwnSbidD2llU1FripJsoc/kzL1+JGK+7kfikK6e9nttfOx4Kn8Ky+XLvtzz5CxhSkExkwyZQh+kQBI0AylQDIpAK9CSKfBAGUiC1qCASXkgdFHoEmSgBZOCsimUKexNsTeLmNKQaQFahXwBo9OH78c9+ZDlQ4+EOh+OffwsgPEAxoMp9MB/ON4NKiNUhjCu4CqCf6X+fLBkOcqCEPn0HjJA3yjqJ3sNYvgJ4/9+hqcd8viIY3mztg8Ih5ajN6Sk1vTItWnMcIrnL2Hwy7UKZW5kc3RyZWFtCmVuZG9iagoyNDEgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAzOTQ+PgpzdHJlYW0KeNpdk9tqg0AQhu99ir1MKcXd9dAIQfAQwUKTUBN6bXSSCs26rOYib1+dyaFxYZVv/OfIaCd5mqumZ/bGtFUBPTs0qjbQtWdTAdvDsVGWkKxuqv5K+KxOpbbs5LPUq/IEzM43H6vs+3WtQRWl6t5220z4rIYDibYXDUxeOU+LS9fDKVeHli0WFmP21xCz682FzaK63cPLaFubGkyjjmy2Swq0FGetf+EEqmfcCkMMJ6iqqq2h02UFplRHsBZ8OCFbZMMJLVD15PvQEbrtD9VPaVDuD3LOpRMiBUQ+UUw0J0qIAiQnRfIiJFcSZUg++UWkDJZIaYIUCSJSRpR96SLFc6SMssfklyXYyLVi/1b/o1+SCapHxugr+Y0Y1YpGUjoOvlxSOh4ZSelJasclIqUv0OiR0qNE7/JaFhXiTOYqeTbIJJcYUDoU0PeHG5DFe1ieOhTTDiWPRqnE+UsukqfEYpLYCWikbvA/6LgJ4+beF7c6GzPsE643buq4VI2C+x+gWz164f0DR3XcKgplbmRzdHJlYW0KZW5kb2JqCjI0MiAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDM4OD4+CnN0cmVhbQp42l2SX2uDMBTF3/0UeewYxf9JCyK0OqEwtzFbWB+t3jqhRon2od9+mhP6sIDCL7nn3JubayeH9CDbidlfqq8Kmti1lbWisb+ritiFmlZarsfqtpoM6X/VlYNlJ3k5fJQdMfv8k+Rf59f3PO9l7zrrb2rut1KtT8fM5aymK4KPj4GYZ/iQFo9xou4grz2LIosxe5a146QebLWr+wu9LHufqibVyoatTkmhd4r7MNyoIzkxx4pjbeeiuqqvaRzKilQpG7IiZ14xi7J5xRbJ+t+570N2uVa/pVrC3f0c7jiBG2tKNHGQ54M80A6RPgg6bgg6fwfKcBZo8j1QCNoi0pwZFwFKcfYGMi4bTYGjyUtBLmrZgkwGQxy0B21ACcjkMy7Ix5EvhCfPQLh76IACTcIQPD3oOCoT6BKHS4i+cFQmDMHFx2056vSQj6MvAn3h6LVvdKhToIMCOoHbCoF8O/3c5l2Xh18G9jmv1V2peXz0VOvBXGaolfQc/KEfFpX+/gACqcpECmVuZHN0cmVhbQplbmRvYmoKMjQ1IDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMTI+PgpzdHJlYW0KeNqr/w8HPwBHtwtuCmVuZHN0cmVhbQplbmRvYmoKMjQ2IDAgb2JqCjw8L0xlbmd0aDEgODExNy9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDUzMzU+PgpzdHJlYW0KeNqdOAl0E9e1782MFsuyJUuWbCOMRx5sQ+RdXoAQrNiWLC8Y44VoDHEkS8ISeMOWY0xCMKEEIodAgaylZCMp2cgYiL9pKZ+QtL9JTtomDflt2ia0SX+XkOVnOykg+d83GoNNyD89neeZue++u7977zwZYYRQPBpFNCpc0VJQ/Njy+28AzEm43d5bQ2zi6ZQ0hPBcmD+6tr+r5w7PRBLMYV1xvKt7ZK0x+kQQobh+hNSPBvwe3zc1//QiZNQCfVkAEFo24SGYO2E+P9AT2jjUrsiEeTfIGOju83o6E/3fIJRyjujs8Wzsx1/jRxFKPQBzttfT428JZf4S5qBP9kn/gL+/dev9+xCa9xzwxyGaWY/3IBlSyh6WWQGTEXvTb6K1FAig4uVyWsZQFHMOUZ/aELsakAvgRkU3tlQhjNipiDwjmoy+p9xFuViEHyFrjFM2QbQjWp6MUlAjzFLQkGxC9gaadTFOlIy+j9DUeTK78owmkyfhurR/6qPo9mhH9PDUR8gYPYn+rUsZe42hreiP6EG0G92LHkI70VassdWsbuddba0tzSubVjQub6ivq3XWOOzVVZU32iqW3bD0+iWLF5WXlRYVFuTn5S7Iyc6az2WaM1KTk7SaxIR4VZxSIZcxNIVRLitgt12gs9gkh4ezcx5nXi5rTw1U5+XaOYdbYD2sAC8mm3M6RRTnEVg3K2TDyzMD7RZsQLn2KkpbjNJ2mRJr2aVoKVHBscIb1Rw7idtXugDeVc3xrPCxCC8XYSZbnCTAxGwGDtEqYi1rFxy3BsJ2N9iIx+NVVVyVX5WXi8ZV8QDGAyQs4PrH8YJlWASoBfYl4xRSJhC14Knd4xOaVrrs1Sazmc/LrRUSuWpxCVWJIgV5laAQRbJBYjoaY8dzT4fvmdSiTrdF7eN8njUugfYAb5i2h8M7hCSLsJCrFhZu+jAVPPcLuVy1XbAQqfXNl/XUX1GJBVmWlmPDXyFwh/v4/GyMR8LIs7RfIQIKVJWAm11mcpkcEOtw2MGxjrA77JmcGu3kWC0XHlerw/12CDdqcoGIyakfj5kExz28oHUH8BJect3RXC/oV652CVSWgw14AAN/FZx5kcmcdJmm6buWEYQFggMRNptJGMYmbagTJsLoSldszqJO01FkK7DwAuUmK6enVwxtZGV0euUyu5uDva1vcYUFJqvWx9kh4mMeYbQTsmsd2RhOKyR+bTJzYV0Su7iAF2lZsKrWF2QFWTYECbhmMkDeEJawVpwkfh17fWwCBdlJOnYxB2KIHDtnd0t/twZSQQALgXZaYonQ6hJs1QDYPNKO2ccLC4DD44YNC1aLmykUcP1CMld5eXeJWfZgi0tkkdiE5CoBuqnEJRTYxbpi7WF3dcwEIotb6TqBrFPnxktY0zErKkF8NSE2VkGWZdvDLt9aIcNt8kHdrWVdJrNg42GHec7l50naQYQWnjOJycGLudLqqm/h6le2uxZJhsQWiDgmy36VGM5liomBBBSUWUrWRZloHgi1gGAdAHCVS+EpKLKUcGsh4CKWJG7lUtaFTWiaGswQFrJ2f7VER+azhMpIOlU5p6XJyRTkVDlNZt4cu/JyKVhmJcXAoSRBdU4vQZuCBSXkZ5VTRJFYppKkZ12cn+O5ACvYmlzENxIeMcpSMMSYS3vVOms2I1gQJmSG5ekJCabgsJhmBleoEeeXp86rlmunl9mwkqtvCRPhnCQQgeW1AiIpbFuUZBJ7ASloDnovq4WSFgs6PG6zkWIOLCFCuFpfmGtxLRWpoZ9sNm0iunSoHte3VublQmurHOfwzpXjNryzpd11Aj7A7M5W11EKU1XuSn58Pqy5TrAI2UQsRbAESSYsmRBJzTBRivSmEzaERsVVRkSIc+8kRiJOOY3DyDtJxXDamKJsUZENUbDCxFZs09QM4JQx3KiIE69xREJmU8lsSlucTU0lUKZxTFBHAfNjOJ/EYXRMjROwaRy4mkX0JB4dj7OZYhSjQGGLWbiz7YrqtnbXMTUCNvEJiirJBemSGoDNhs+KnfWRRLmdD4TdPCk2ZIStgT8sYG4ZbBO3DAyRqwUV568U4rlKgq8g+IoYXk7wCkhRbMTAPgp73yRgkgGrXWYoSXbOq6aw9mOyUzw0lbD2L3lg3EtwdlDB+YBGCqQ+xtAKhAqKC6xFhXpzkrkc7pfo2kv/EaBGIjtkExfqAsz/kO8/Rs3Rk9RfgS8eqY7RtCoHVVQAj1aHrRSVpNVzVPNnWPnDry8ObNuHtbiFsmF99PPI4eiZ6PPRCFYRGVPu6En8JchQgQwlzcRkYC2FOZSkpa06/OUX0YsH8Gcbtu2l3dFnI/8Z/ZzKoTbjNoyjX4AN5fgstZgaBNuV4zAVrS43K8o5/H4mPnvwILHTMvUBiPsc7FS/GEev4OOMqMJSVFheUmYtNhqS5VxmtmVljaW0qTq/rG756pLSmltKCF/B1HmmSPY6nNDybCl0alpaaj2flhafnc3W89mK+KR6Pj4NJKHUCkuSDi1OLRBfYH6yXGEwEskgOqfUaLQWl5WWZHNcuQRkyhU5RDdT9Nqx2++9/ZNDb73Q8Vbb48cP7tqWMfbkuyFv08OdTS//5dgrzI4Dv2PjUn60efvrAysOFZU+Et62Y/eRe9Z0l1XeuucIHCgRlBXTIDsF8dOjLJtOrtcosEwva+Dj9HpaIadTIaC6xQVWSxKyJsEA6zia05vLsZW2mst0ek4uV2DG8nfnobpIfzpd+cqv/hYdyre1KpO8KZGPcGP0KG48SL91aeEfcDGen74jPbKbxAaUMyOwb3JkhEKhUCpNNfC0PBYOosaKIXUU+AiNIkUZ9G2mCCMz3zd24Szs1CrgPQq8iXCOZUlsZaxGw9bxGk1CYmJKHZ9IJ6TW8Qm6a8aWTZqOLsOZsX46tLR5GqCwcOTg4G3RX09Fi3BpzjcHfrx9928uYNWLZ+6757xsIirsOpOuYn/Y+/b/yiYi9+69I9B1sfexfaHbYjlNbFsn5nS2LVkeV8vL5ZiiZLU8RWNVLY+vMqqo0GzGZoWZFm+6NGLGpdT7bOS1TkqTHvl0gCqVTTwUtTwY+RvIbkVIPgmyk1GaTa2iYH/UShppFCDTaq2w6lLAPzNNNoTmsFUPEcScTgepTB16SqmwaE89jku/vC+O2odV0TeP3HGXSR6xyrTOi3WXNssmLjYwxy/UUY3U8PILnxBfKNGXHWJt6VG6TRPP1PHx8Qq5TqGv4xV0zBHIDQvJWGSGtMDmYiOejiizIzoZfXnHbc/gUlz3zh8i+u2/PTe25wnmhm+iFyIvySZ+GvnthLC5D/zKgTrhoE6yEWvTZqgNtGFuLW9gaIgerZ8RL7E0GKg2qImYlpzs7NKS+VAJKYpsUhaGZKMxZR5Ffz/616l1j9U8fvTxU8HdDwxh5X97n72lsvKQ/a4nMuuC+7pK8eHf/D0985nWB77XOLyy7ZnQTz7Kzr8/O3dsuGx59Q0u34jYWz4D//eB/3HELgVDKWVMLS+jsXLmPiKxKMxQEGK+mumhS7fNpQ9ENrB0+5xLPurE3czeH4xd7IN4doKfbmYN0kHW5tiSVYwayTRKA5rj4JFWrXfwaqMkFe6KJJ3oMPhmLbfSXDlH+kxpia6MLi7TxboABf5SW9bsWRBfteXv2+coj/187OC9FxZ6Tm/sXx04traDWeO9+bmLk2/+5efP/Rr7XrtkOoEX3te16bnou08MbIjlK9hEPwM2paIUm1qhdvAKLQJL0LQlRYUyUSsEGWIs6YTglxvk+MKZd/Zj2RN3byvY6O0/Edw+5BxddnvyOy//Ajf/1LrL+lD000dH711g2l0h+f4y/P6ERCG+0/GJUPpxBjSX+J5ocPCJ1/I9xVpWDnlMnL+m99SWMzepkuY2PhWdGDMq/ULH2IE9X2V3/GKou8v/fJBpP/WDYbz2n+ff3Bx45cg72HfmUvpPMPdAX+jJ6NknPxBznPh/XPQ/k1Ts3EQHP3cuUijSxEjoZkTicsXGAhLr/YyZU0zHQ66HvhzLS3x+8q37vt7/0MPR49HXzcxtWyu2ezv2lHS9WKj+8Iva5HdfOon509uHj7/RtG3f/MK9uRz9p5M/Gt5Q6hBtuh4eGbL3odMlosQX1QpKgw3Qhl8phq7I6a00+e7EPjsfHP7H4RGb1VWVu6CEceLURTXt5Q1FZF9BhnwH+JUL0dYbNWp9ggaZ1YYcuV7u4OfotdAySO6mks4Ri7ZZL31bSPvQWxXWMuJiSuxlSCbIKwTU5H7dsvrWR0bM/sP/GDOqbnp+zYZN8cpVZ7xbxox7ntmfbK9beXA4Yz11vGOho3Hj+z+MZjHO14cDd4Y2j+y8s7o34qaOB65bVh86uzeqluxlFoK9adBpEmPmqg3EVmIqib9o5ndZScyjfrc/uaaRf3qrZJL7mHvLvpTdoGdBRcPG9w6KFmzyj21e4Y+4pb3/jElnVqEEZCLZj5JILipSYeevZD8mwqnp5MMlM0pAR2079Yc9X//g9Lt7v8HbNq/vef6WLcOBp25mVv3pZyejRyf+/MopvOJYdMPg7v3Rfz62bfdenCD21amz0WRmMdOODJBzUAvQBjQqTZxJY3TwGi1Kn5FzV2oBki6HU8jlpLOD09aYWforxpSWUGbP3gUqhtasfwo3jUE3eOnug+EvWfd/DfUFvc8Gkn3t2WntUVpe8uYHLwtvRw/+jP7gVPTcA71Dj2PL4Q9ie0AHxP5ksiUkwmlHE29AMhIUdNkUsSoVMzdgGUV9ZrfOLy1Z/cjw3PVi6J0dXcyaxPsTNp69M6qCqN/Skkf2WAm1Vg3y55N+qp5HGwwmB2/Q0nEOnjZe3ednHX3EPl9GWlCO1Oahy1Pv//HVp3c6HrffMeoI3dn92pPPPlK2yD9887qavvU35+PyAy/YD16X72tc3Fhde487/HTd3WmWm+yLmiqWrvKKva996jz1e1k1mkNqRKuzqQ0anc5Qw+s0cuTg5caZLX5OqvaNosKsYlLnYjKU67kKyqog321iDx4r5zN98zZv1215LvHE5s5yrJsT/XSrbsnQnK2JycO3VrZS7bWNH17aEjl0U96ipaL+DdATOxgn9B6It0anStUkGHQQb52kGT7pJBREPoSBdEL6Sics1+OX79ftcz1zZ6bvqb+OGdWdR28Z3WvcyzgjtXzx7o3nDuLfX5x8fXPn2NZlvdQhom8IeoIc9GWQ84NMk0bHpetVGtKFobqs0+eH7NJSTqGAU55VD2UFDRiOEkaDASA4mGO6gmXiiluif3zNckinlBe045yJLDkln9uL1Uejcqq9o/HArT+NfB/MOOLat+n2n1NDkSOHO0qvW4XjKNfFSfJdvR7yXyf6nWqLl2lUSKNJhtQ3SYVOnNaDTp0Bihu0Y+kYTLpseefhOpVezgXSsP1oxHnzxKizuqK6eai8ARS+b49+0XzTny2U50L0ubsMO3R+707iN9xpD5PSu0Wz9CsUF/v/46te52nx/bf6X15iIr+P+52yE3pCHKKkf1MCn3JX5DD8Whu5xETnwjrCx2b9I3MN8wb57fOvXZQTNVPOKfcs3BZUTsmR5WpaJoAK4NbOmB/5V/Uwr5JzmwSnXIGvdcmPkjOlRLtjBh+Dcr5TfgU5F33H2nbUSd70w6iTOYg66c9j88v+KkmPmaH/Aroe6K5nNhP6qbMirwVdT/cgJfUgaoc18ZgiO4mG6KMITcW4515zLEMd0uhH91we7+E54lh0zXGXOI5fNc6TQbHi6J419s8a71Hv0Tq6gz4sjddig8lk1jAPMh8yH8qSZWtkB2Rvy96Wp8JoEnPxZhSG/n4Tkom/vgrQGki1RLQLvvZkdQ5eJr7JtTiWheIzDmYxmIKDU6UE0ygLOSWYAWktEixDatQjwXKkQSMSrEDNaKcEK+Es9q4Ex0P8PpFgNcqH39YxOAHgRRKciK7Da4mVTBzMBvAeCcZIR1ESTCE1lSzBNKqjWAlmEEuVSbAMpVLrJFiO5lF3SrACHaIelWAlWkBXS3A8WkR3S7AaraEPSXAC1B+S4ETUyqypDnYFQ8FNfh/r84Q8rLevf2Qg2BUIsU+zxYVFhXnwKMpla/r6urr9bFXfQH/fgCcU7OvNX9Hv72VbPL2DtSFPd9B746DX3+vzD7B57OUVNrbEVg4Fu31sUWHhKv/AIPCyRflFhYSKEOXFiK4wBQdZDxsa8Pj8PZ6B9Wzf2mntnl4f2+MZYTv97IC/KzgY8g+A2cFe1usfCHngvW5oIDjoC3qJfYP5ly2aYXUgFOpfUlAwPDyc75GWvbCa7+3rKfj/1kIj/X6ffzDY1Qse5AdCPd0NQSAZBP1Doo5QwM/e2O/xwktayWWnvS3OL5wpW6TK7xvoKuiOUQ4WNNRW2Rtb7HlAiapREHXBHYJ7E/IjH/zu8SEPzD0AeVEfVOoIGhCpAoBl0dNwF6NCVAR3ngQVwRmWRTVA3Qd03SCHRVUADwA3eXpE+X2oF+WjFYDzA8RCJXjgPYhqRW3dQOFFN8LcK6774DlA/ncA97d52FlcLFTbEEDdov3EskLolIR/UNJLsPniyrSsaUl5syRdS1NQfJJ4hERfiGU98B5A6wHXh9Z+y3ePaD8rUo3Au1PEDsCzS5QWEm2LRTsoavOKGGJHbL4O/BkQaX2iXdPxGwQvvh2ja8ea7FcIsEuggxWgYXHkw/psbq/Emy9CPUD57/KFwNd+0Su/GPcuoI3tQb4oswei0yB64xc9ifk/NMOPENCRSN0IcjxAF5vN5iGZdvXeFoOGwu+0+4qsfNHmLljtniVzEDANkAdVyI4aYeftYmYTmcj2UJzZybaxeF5bhpNuy5iHNfMq5r0wj15en53RUG/NqHdkZWSXaNuyrPPb0vRTGQpmKkNOT2XU1VozamFNb9W1yTDdxliBm8YauoJ+gaZrHGkZHzkwl2nNmGs1tRmthrYkrGnTWjVtGs0KDZWh+ZWG0mimNJScwqgNW1FbH9qCXkCfIkaL8KgRy/Ak3jPe2mKx1E8qpprrhbim1QLeKWS1kKdtZbsg3ymgtvbVrnGM7+W379qFKtPrheIWl8Cm8/WCDwBt+rgRVfKDgxZLx2BoyEKukGUwZJl5idPUjv8DWJKMRAplbmRzdHJlYW0KZW5kb2JqCjI0OSAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDEzPj4Kc3RyZWFtCnjaq/9Pb/APALxbcg0KZW5kc3RyZWFtCmVuZG9iagoyNTAgMCBvYmoKPDwvTGVuZ3RoMSAxNjM3Mi9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDgxMzY+PgpzdHJlYW0KeNrtegt0VNW58N5nn3PmnXnPJEweZ3KSCTHvDEkMAhnyJgkhDxJngKYZMoEECQl5lAbkCiqiwYgFtRR7exGRptSrE+XS4OXXokXFqlSty3qtlV7rG9FapRTI4f/2OTNJUHtX1/3/tf7/rsXZc8759vP79vfeJ0EYIaRDWxBBuUuac/L3Dz0QCy3H4G7v+N6gYM2adQ9COB7qh1b1re7594EDQ1B/HiHV6dVrh1eR69/NR0gzhlB8bldnMPTXPz4Xg1Dq72B8YRc0xKSr30PIY4J6SlfP4PfxD+0boT4HkO5d29sRHNXdA7jyfgPr5fYEv9/HJTNJCBXDcCSsC/Z0Hlu1KRnqAkLc7/v6O/ue11y6AaEFl6D/PCKckTmGOKTm9nJeoCpJeZNX0Cp8Sc0wOjVPOJZh2NOI+cyHhOUwazZdOm9hcxkSkHB5kk+SbOhW9SjjFxD+F9rHtnFHKHZEeBtyAt4j8BzijnAvoSsutg3aNyF0+QytTT8lG33CLPuley5/Iu28fFo6Bi0WqRX9ty618noPncMIZ6DX0GOYARhu9Cl6Bz0G+16KkK9q+bKAv2Vpc1Njw5L6xXW1NYuqqyorystKF/pKFsyfd93c4muLCgvycnOyszJnp3lSU8Rkd1KszWwyxhh0Wo1axXMsYTDKFMK4vSJMUgVzZVCsEIPVWZlCRWxXeVZmhVjZHhaCQhherEesrpabxGBYaBfCHngFZzS3h30wctXXRvqUkb6pkdgkzEPzKApRCL9ULgoTeFmjH+DRcjEghD+V4cUyzHrkigEqbjfMkKmi1AoV4crvdY1UtAONeFynLRPLOrVZmWhcqwNQB1B4ttg3jmcvwDLAzK6YO84gtYGihZ1WBEPhhkZ/RbnL7Q5kZS4Kx4jlchcqk5cM82Vhlbyk0E1JRzuE8cxfjtw5YUIr2zP0ITEUXOEPkyDMHSEVIyPbw+aMcLpYHk7f+KdY2HlnOFMsrwhn0FVrm6bw1E6jxGEu1SQKI18h2I746ZkrW4KRFj7V9BWiYJgpC+Mmv5terkrg9chIpShUjrSPBCcub1kpCiZxZFyvH+mrAHajBj8sMXH5iR2ucOWdgbCpvQvPDUS2XtlUG7Y2LveHmdRKoSsILfArEd3XutzmqTENf68bAVuAOcBht5uyYceED62ESnhLo1+pC2il6zHky8kIhJl22vPLaI+9hfZsifZMTW8XQba1zf6RMJu6KCRWAMd3BMNbVoJ2raGCEU3hmHMutzhiMQvFOQF5rABULQp1C2HOA0yCWTMngN7QKSMmuRJzTnl96gIEHrNFKBZhGbpOhVjRHvl9rysWFhCA0dUZiiIs9Yd95QD4ghGJVYzn5sCMYDsIrLtcFmY4R+wL28TSKelSsiq6m/3ylMi0sK0sDJ41MiucUyHblVAxQjXtHxXlFhDl1jsDXXMBjdjoP4q8l0+PzxFcj3vRHBQopws7ykAjPRUj/tCqcFK7KwQ2ukrwu9xhXwCWCIj+zgBVUeBm+mmXrEgBWa+W+mubxdrGZf5rI0QrHXQ5NrXia8uIfpeyDChrWJ2qFvyMiwRgoAkahEoAxNJ58AyrUtVwm0A4citV8tJ5gh+7UHQ0kBFOFyo6yyPjaP2KRTmqemXV0dV4WoV1yqpd7oBbubIyGegWIohhhpoKoDraBS4NOtSgy2XVchPleyzlquAXO8WA2CWEfQ1+ujfKHlkiEWbI8onIdekVtRnMAjYhN3RHK5SZ4coM10zmhqvk+lS1+mvdi6LdwoharG0eoYuLkQURUL4ojKi6+641u2S/QTVGBD8tmEBnZI0ZGff5qLZQ5RBGxEWhEbHZP08eDb5ns2sjxWVBtbh2aWlWJrjB0nER39447sO3Ny/zH4VALdy+1P8Yg5my9tLAeAr0+Y9C+PXJrQxtpY20ItAKXakJKmp5vOuoD6Etci8rN8j1jgmM5DZ1tA2jjglGaTMpiDwyIh9ioIdVenzR0Sy0qZW2LXKbfI0jyjKflvOpfRqfnjEwrnFMmx6Dlicgr9Fg9LgeG7BrHGY1yc0TeMu4xudSRmyBET6FwttbplG3LPM/rkcwTX4ColJ6gbrEdoGwIQRVCCGqKDcGukbaA9TYkANEAz8cxuICEJO4AAjh9WGt2Fka1omltL2Etpco7TxtV4GKYgeG6VtA9g1hTDVgud8NJinMOukaMX1KJRUABzRiei8LiDsOOYcW8gqCVCjRp2cJxxBGrWGJCqGc/Byv2YKLi81eszcv1+o2u4vgPk4WXfpFFzM8uZ07cqGmi30fIQY72fPkBM9C1udEgs9g0SMeodg4IyF2DcrxwgJ0JbPX9GJ+Xi6eU+jNd9htvJjsSZ0BY2etr7S2bqGvFu9unLdwcb1vXiO3eWFlzfx5iypLKhdWl8yvXkjzFoyapGPMMNBtAGwxOq2WsCxSqYy6FEJQSYkZA0LlB3SbLEVenrHbLE7RwzTdv+vC6N27bz+/ey+ThzX45UeOS/lffiUVHT2En1XWng9rh6Jrw8KwPKwdAzhSvr42NjEqsdBSMIdJ8zosTOj+Xee333P36AW6uPQ3ae7YBD557kv88vFHpTxlbTzGtDL7gd/mfyMcKCEG7shLAqEFbvt8Jg6PXbggjx26/B5+DRcDTx0+LbBTryFLAxorKsmITCiawbuhZa3Ny1c0LV2xc2mrv2nJ8oCyF8ibSbks33ifHjMERM5yhDAWupNp2WLsxqR88h3pE8ZNpQozMBqGufUAadE1PquGhawRY51erVJhltXwOBaWAKkWR0XrtRQX5+W63eaiIl6lSsNeUi/9mnCLE8fuxW9IpH7HnsWx25/AG2S66kHvGrhfowQ035cYH4NVyIEdiUkOlYrRWrT1AYuKwfE4vj5A0WSYLag4VnmZoypJRUDRFeAFTMEcj5jMq9IWMMAPyhAgwO5mGy4xuPfBUGawsWXf9WNr7xrruuPVwap7jx1jNr+BB366dd11/tb66udW1KWHDg92jj/x8HiMTNvlM2wp0OZBy305yU6D1aoi8XBYURlUabPdiSmJSwIk1hnrbAjoY7GBxMZqU1QGk9a0JKCNo8Qib2yJpTjnu23fkSmmDVOslovMKGzjVXZKLOtOTjM7HN78QroNsUAG5O0UuvNZ1nnwvvEj0svSn85OtLwY+tGusYne9Yf++TfV9y7f+Ty2v4tVbO8dv0zhHT//wWufLMGqjMKugdWtnwbWHsy97vW7J8A2kQi8Xi/L0YoqfclGFdHAMYaA+iG7leNsvBVzVq4BVMtKjCqeyIKFDXgp5SBfHKVaZrpCvGgGT1CA3Wavu2BOYZHIg1KsD0uvTt7NbMUJYSlZS9Spc6QvcY70Cs55g4QvdZ9fcMbaVC/dIMs/BDwuAJpcqNWXEWu3O0mczRajjiFqEp9gs2qsehMChsYhxNvtsfUBO8/rlwR4yl8U0YRYSiC8p1VCJtFCIaCQGgaKsFYomOOmDKUujBQVMqt+e1F6Vfrgy/uWvNqGXdJbBVtmbyoicZPnXOJ8cvDsqa+k80uw7pqCD9+260uZj6QL0h9VoBrAy2qgu4F7DsWiFLTQ5+Yten1yMoq3IEuqx5jUEDAa7cQetyRgjyNqUBPVFfRmTKkBEGoppq4JufOddqq8vMqrGDMCY2Y4RRmSebvNUY178brNVYHr/+VkSGPo+I9f/UE6//H+P9/CmDrWdITatm1mevBjeMz4V1v7sX89dO7Nj6XP7sPCU9s23bBpY+OGA4ofKJLt7TB45Wyfg6ceG3MMp1JzBPx9fYDwiEpdsbAZzMzL9YKM3Xb8LpM6mcPGTb7BhjH79EXqVmRe1HAnweMno2zU7Eu38PZMQmI1sR673ZiYqDFqcnJ5i8XtTk/XI72rMaCPQ2JjAM3kisyLKwSYHxUjFSILxqySrURMTqGa5vEUzEkhtoi5pPFWmUfOQlpjal7F+MaRAzul99//XDq7bffmdZi1fr9roH/9Ta//55Lg4s6V9SHu5FP7+x6t8D/Vf/itF/9989M1Sw7f8M9PXzzW2t7RWDZUupJ5sbF83nfzs9tLKhqQLPNSeZ/PoTiUikp8QgJn1etFEYzJk2YSGgImE3E4Zi0JOFRE3RAgcd8qclngNPSZqE4WUPKp1VDPXTAHgeAtqfJGlG2xNdI90s6by5auuP/5NWr93D39T/0e697f/5ebJz9rX7sy1HbbZlIpNUitMefty5/5eVvdV//xCTbvkd45fuuNa27c1EClzlDiuW3cMWC3AZX53IyBqDHiOZ2OIBorIbLFGJi6gMFAdBxBBEKCV7b7jKjFR2weRKG4dgIFAgVmgO+ELVoz+ckaCXIyvInhJ6XdqWr3j/EK6QB37EI5047fvDFli6SiegJOiP0SbN0IOiaAvWeqbDaWnZWo0yWbZs0yGt1qU5wpbnFAbwJvajIZkXFWXcBoQbF1AZg9k5tRlzpNoFfRFZqdCLKuKC5VdOOoPzWbZcg9gZ/DRThu06odm6R3zk++jQsP/9P6TdsefGHLRukSd2T8+C1jZm3SodHnT5OB+mVLF02ekG5Z2UnjIKWfAfp1qMKXooY4aOC1Woz1vKYuoOeBZp7HDMPVBRiCtXUBbPkmzdP0yjELLCpys8ylI6Rm8gz+TDIzNu6IJD0lSdsVmwW8RAK8GjTHN0tNiA7sFmMtRTsDoyVqt7EzBXcFGvyRdIpUTn6CP5dMFMX2yej6XAOsr0elviQ9w2h1OkhwY9SE4wxQJTodT9RqjieYk3XDUjylEzKifLOSBhUr2LCKxgRzEWgI1yDtk7beIr2ACzfiO7FfYpiutslz3JHJjofxnyeHp/bHvwb4bWiuL96GNDoNoI6JMRgcHG+3MBqG16lIDOIpclkzFcT5ChXOYoWZWLTYKWIseyrznEKriIko7dNYpU/wQbyMB/d5UHqH6DXSdnaTtH9o0s8dubifbbtQwxzO24JtF7eDrWy4fIb7gHsJZGxHs302M0JOPc87NNa6ACTDxroAsUaliqc4TI1ZQGb5icF2BbMJwgz3gbRHCkPZg7txI5TOi68/cRQPSDuPHmPelu6VNuLbcA+UrdKN0j1fncef4rN/o/ZK9ewQ8EMNrgUkzmo0dhQTYzTaDIhaqdFkUtcFTMT4dyU+pfMcJBVyhBZYfHbVzrs23DTKHJPelD7fBiJ5DWuxnfDr1/Z0vXDmwuR57sh7ip+j+lAt43eiep/H6nSyWtZk0jrscUgLyhFr1eiRZjFkljq9HkjRE4dOVoxpXzdlmqbYX+Wbp6PIDGuUqaKWipzgSs6Gdt+58742IOsQvgYn3nUzrglJY9KDJGtld5d/cnjyFHfkzbe3niyWrHczeYretIE/dkJ+lgb2mOyaNcuN3JxND2o0O93mRnq3PlHjTKwLOFmimSm3SKownYtNEUeDy3QK5knLhoQyBXyyU+WJxGCH0+FgndK70seH73mpZVVP7nd23nZbA1Z92H9qfWjoRzX+Nk/z/S/twfc9+yc/FkoL6xdnlC0oLxncu/rpPxTm/TnX01SaPr+4ZuUJSn86yJmeXVTI47OATROM1RoVYUldgI3aM4om1VFLpoU5I70gDbANcB/GjCQhLPt4r+ybIEcnjEbDgYswcCyrR7D9iE+fVhLFZrBbLrCrwiJyARdLRukRyYSLsdWZx+t8ygHg0t7FL81e8T7gyIvkjxp0nS9BzWKiUkGrVqdiOY6tC0AKgdVYHXF8M1P16aQ3kqnLqYSbXX/xl8z/mmxlZ02WM6dOkk8xev6SRdHBVpDtdewQRIpkVOPzWPRqPZOcHBubkqBWi/q42oBez9lsxsqAzcQkcUmVAc4BFlsSybq/YRUQc+VEy50WjbWFRUU0u4bkmmZbZqziQb5U8GTVderFD97ywNG/XXz6kdv+rfP4J3/8XHrle9tuvmfNTXuCtROHHvuZhs871Phy56+en3QyPMv6l23d2Ak07wOaD/M2ZEFJ4EndCYS4NSZdjNOp0wl6pLNrTDziZ1UFeAeyVgWQaaZCxkYOlJG8VclcLWYTAxopqqgN2yAxdELyOpUckJhnT3/w3Ik+u/cjnKfX39C3vou5YbCtt48dkH4t/UX6RPrNzk28TbqvYs/BL3fscx/+8b8+9NBDILEVl8+Qt9kB4Nc1PrvVoFI5DQzj4HRVAc6EjECZ42sujnKOE8xykiqbgtkEJBSZeZ5ZNXkOzmeap/cuq75xwdmz/vtqa35oY+bjBJxVdyYhFfRpIidfupiTAvwBvOz6CH98PrfGYYLQEhNDGSUY7Xpk1iBe5o9J5o/j2/kDHHJSepIZs8nizXd6PQXAHREEmwY0TWXLDHPij++dfK1X68T5H19n6Foz1MP1bl61vt+G87ERW7H3wOaVeNXfzvzgob/c/mCUObLuUTpXAn94OJVU+kRiYdk4sznBotXGx9otxFITIERlMKCagMGkslcGVI6vp3ozMhOFexgE5/Z4iBwlvPnIbnfLbqYIzjNMb3CdGj/M9BdKX0i/wXHnP8XqyRzu7ps7D69sOEL2blq/ftOlJvCKZhyHvdIXZ++5edc12Wdmp0V8CBnik0CW83yJNoZRwaHe4TRA2OKwDQNtNqPOVBXQISJbB1Apn+YU8uSsTtE16lfEAmAfmAPImPLQ7iZa6bx0amzs2KmfbKpfUb9wLlaT4UvbyfDupqanwjmnExbPq4TMjJdsbA/wKx0VIh/a4ivXJSTMn8/mms1MukpgRcyypbOuucbpLBLFhbMMyIANvGGOam5tQCOw4EQ8c9KZmkB6usdTUhvwmGxZNQGbK8pSMOccgHIgH3XKR2jIoyJn0encz1k85dZgL3aV/C0kLY1atHyWgqO1J3poiDypW8e2qdN2Mm+NVMRktufR3IvvFGXljD05cVw6Kr388V//aWNOZU2lf/XZt3O2WqS04Z4DT6wb+MnS9b3NLa0NB8fYtvuzar9z+CThUjJLf/KjX/3uwd2dtyfYlnt9Lemesf5fPG9mL7Il1cvqS3KXkMXL16xZ/gLIbh/40zGwBzsq8M0CF+40avRqtUbjMLIWC1sVsJi0CEPsB9ddMlOpLMVTiR39PiBnPeAeIgdHdkw6dXhLv3QK56lUplV/OPEiM/rFI89MfgGu4JnUO5Yd+O2zoOO7QXneAdxqyPpSfGbIMSC0G3RGrZ1RLQrAmUFm/9RHLsir53jz5S9MVFV2HzzY3HwQL6BIuJvuvbdqyUUn24YiezoH68agRT6RVanUDCE8x5litAaDWq3VGnWItqpjYgivtROj8olBEV3JzC8MkW8MskBpKomjeaUKn9gGIcovleM3ILt88hZKhIlpP4SXSq7J7fhEt3SAt03WSChCD34F6CHI+guIiCyDsD368U4JqPgVugAMiY5XlYIui2ixz2OzWuVMOz7e5Uo1aDRabYrVYDALnJmrCjjNJp0xHmvtclZaEv1IopjWjBTZUhyVlSciLK/TW0jNTH46aIvSxd4hnWq8fmiNdOqjdHPWoXUXA66sR9c9+Yz0cuP1fb3M6PDwwycmv2Dbdi6+/kB96zNvTKbRtn2PRPk+BnTbUJ4vFnTJIZNrN3BmSislVaF0pibN1KOv0aaoUWsb1SMgxvt4/zMvUGQ/f1YmoLH5teemfeUewKuDUzHky7xe70JW6yyHpirgMBlJVcDo+JZ8ecruIEumB2EPU0CDi8OCd/ds2njD2k0b1xJOOi1dfuDcrTgRE3gxeQcP/eynBw8+9FPpM+nFUawOYwvOvVO6oNCxD3zQYaDDCrGlzJccy/MqLXjpBJPKJIAfQwaDrQrctdqociHXdHApieaDV3yX89LwkiY6ogzxQiS2MTyJRl9gF+FP9JlM0qnzGTE3vPrs6e6n35aj70udtp13OqTr+JofHJRelj5/XDo/QnbLwRc3KfFFlhXZALSaUKrPzFhkSZmp6Rk4jmYFkDBHNDSi//lOcoV8iGlBujO1YNeD0qkPsoxzxtkBjfSf2vu2Tz7Hth1rG0CRGP8w4KBfKpL4OEiLUVqSzeZBeluSPkmb4EyoDDhNRFsZII5vJMbTWZPyfRISprQCGq+msmIlSgBR9JtLIkMe/uzsxodrW15vPJi5dtnW4aIPfvvCUyuW7qrbfv3uWzbOxXUPH3YLl2YXtqdkFXsKV2y4/t4H/b9PyV6UPu+6ghXfp/TmAL1FXB34wvm+RL3aaLRatWrGrDY7nFqL0VIZMOiNRg5V0TxPCWPHr/ieGk1TUvMhpNIEj0azIq+dnnwhGdjQ0Nd/8Bc/3TXmfwbS3OcWvSO+6z16lHFtXXXm7HuT7y1cQGnYC7oM50GwoXxfLGM222wOnVptt2iMDBfDxVRN55hybjuTTzMyS+qLZfUGgEykm/IOD5x4HudRW8J5O+tbXnuWeXNygJoSE3NxP1Jyd3YU8OpQps+mQxzHUI0wMBjrNRg2DTjzZybvluiJ1211gDoUWcE7HpJaccnvUjQ8N/sNXCK1sm2Ttwyvbd/GbFZwgHvjTwCOBMimUzhWC7aZgJxOoiUqlys+PgnS30SnVks4o9HFGxEn+wo5eSk2z0TtLI7+0YNSQIhIpsgAOqyJhOonpYgtah1UvShNSE/j3K1JAs8mmUZwwy2s2WTAvCZbexvOkJ7E2/HZSzvYNsm87eO6h1qY2MkPHa3B78RXX8zEnwHhmP7Hi8wbB6rzpepsNhOcv1hMo2SsiYZMaLKwDrvJYrCAfbvUyEiZpZwCpt3xjLCimJR5mnVUasqHuKIiXP+aS8vrhFO4Skpb+OcHltQVLWwcTrYAN3c09a1ezgxdtD76iPkLQ0eoaOp7KjkE9Gmo3hIVqwKidGqIGfKhCI4lRgZq6soADTtXHIqmYl0kPsCpqICeisihS6MML8WRUknNaA8zxz96drIRocuXle94qlbGg1IANT17teImpD1MGJHzoIyCAhgjn5t4FsaUwxie/uQR15rlEfI69Nx5HnJGD1oES6pQHYmLfofBZ+W/EZmPIJbDBEX/OpSX6wVtnsCF9EiIFJ3FcXspRd81zvsKaZT/IzpZ6twnvz+seeCifnJMO6oehbEa5RukMk89OjkGJI1e1EvD2lFF+6cvppB9CR1n38LOf+S/l5gjqAnu+Ve07UbzmWo0ROrp37xgpz9Aw3DXR24R7hDc1XAXRd6l/xUObhvc7ZQ3kf/M2oQm2NB0fWpcg9Km2qG8+Ta0geMVmKuGOV2ojd1PeU9P6l/7b6/9KO/v4WdfR60QI/exCWgFvFewT6AVIK90dhviuVK0j1lPczmadcnwPtVbaB9tZ7+Ux8vyIPvRPnIB5g2jHOjby44CfW8im+J5oP8DVIT+P7+oHP5fXlQO6Op19bp6Xb2uXlevfzRu3YHSmYNX+XD1+h9+KRlvClrxLWUEepXyMvocx0CZh0fwF8w8Zg/zJUkku8jZKwubz+6Sy8usFC3cAii3QnmWp9cy/gn+NH9aZYmU6ivKftU5db76NvXvNYmaJzTntSlQ1mpv1Z7WxevadUegfKj36W/WP6n/3FAH5ceGV/+vlz/9H5ZzV8vVcrV8W4lhrpar5X94iaVft8gPITo6kB9xiEEmlAPREpqxDhH529csvGDqG1hx5Msakr+ZFUdgBrGoNAITJKLKCMyiGNQYgTmkR90RmEcGNBSBVagJ3RyB1ciGfhuBdSgefRiB9SgbsxHYAHB+BI5B1+B2SiWrgVo/HonAGFnwpQjMIDUTE4EJqmQcEZhF8UxmBOZQLLMiAvNoFjMYgVXoAHNXBFaj2SQ/AuvQtWRZBNajFWRXBDYAfDYCx6ClbE159+ruwe6NnSEhFBwMCh29fcP93au7BoWfCfm5eblZ8MjLFKp6e1ev7RTKevv7evuDg92967KX9HWuE5qD6wZKe9eGFg50dK4LdfYLWcJUu0A7hNKhbnjm5ea2dvYPwDwhLzsvl46hQ7LokOkJ3QNCUBjsD4Y6e4L9Nwi9q6J4g+tCQk9wWFjZKfR3ru4eGOzsB4K71wkdnf2DQXivGervHgh1d1DKBrKnqJlBb9fgYN/cnJwNGzZkByPdHdCb3dHbk/Nf9Q0O93WGOge6V68D+rO7BnvW1nXDkAHAPyTjGOzqFBb2BTvgFenJFKJ7zc/Onbm2PCq7t391zlpl5EBO3aKyivrmiiwYicpB+1bDPQj3RtSJQkiAOwj1IEAdqBf1oWHUL4/qglYB/QzufJSL8uDOikB5KBNaq2B0L4xbC+sIqAzgfphNn0F5/V60DmWjJdDWCZCAmqF9HRoAG+mFOSG0EOAOuS8Ez34YkQX3N8cLUzMoNAQrKzClKBe1ynMHIvhoa7bcE10nukrW1CrfhqFbflIeDMr0U4p64N2PboC2XrTqG/sNynQL8qhheK+UW/vhuVpebVCmS+Fwt4ytQ26hnFbqa2Av/fLYEDw7png2ADv4Jm++nb9URoPQOhf8VQ7aIJds6L9ydkdkbrYM9cDI/+68Qdhrn7yrTpnnq2Gswv9sec0e4E6dvJtOeSfK/odm7GMQxlFOLYR1gjBOqV05h2rX1+WaDxhy/y7d02tlyzSvht61V6w5AC11aBHwsQLVg+QrZG2GNX07NO5qoUXApCWpmrQkkstJDXWOpCWLQ0n1daEkzxxTS6o3pSXOejlJxV5O4qF/cV1iUqgO11UakqxeSwsHU1kvTCfYSErIo4TwtZW/rnyrkoje5JZ4r6vF4bW3mLGxxeQ1tjxqPGVkco0Ye1FLL7oJPYo+Q6wJ4S0OzOEJfPf40uaMjNoJ1eWm2rCmYXkY3x5ObaZPX+OyMH97GLUsW+4fx/iuwLbRUVSaUBvOb/aHhYRAbTgEgClh3IFKAwMDGfCj10DbwCB9y4+pK7btfwPFgacDCmVuZHN0cmVhbQplbmRvYmoKMjUzIDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMTM+PgpzdHJlYW0KeNqr/09v8A8AvFtyDQplbmRzdHJlYW0KZW5kb2JqCjI1NCAwIG9iago8PC9MZW5ndGgxIDE5NDc3L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMTA1Mjk+PgpzdHJlYW0KeNrtewlYFMe6aFUvMz37PgOOwAztgLLDsLqEkR1RQQTDoDGgoOCGAmrUY9yOUdHEqAlxjzFejiHGDAQVjUlckqhJjDGbWY8n+0lizHKyncg076+eGYTk5Lz73fe+9937vnTT01XVVX/99e9/dYMwQkiBViIaJRRPjE966Ja9F6DlJFxV0xc12zTjgg4ghAdDff+M+TPn3ll9VAf1UwhJu2bOWTIj2f5cKEKyZoSGrq+rra75adGHbQgl9kD/1DpoUL3ESRFKSob6kLq5zXesmuP4AuoVMOnuOQ3Tq6vPzb4XoVHfA7yEudV3zGcTKDlCuUOgv21e9dzaJs/6tVDPQYg9N7+xdn72sVbAp0gJOMgQzRzF9yIWcexO1gktYb47fRnNwN9yFKWQSGiWoSjmb4j62oVskwHqULhQ4uiJ2Qgaer2SMMGI/szdTVXYEH6QPGMK2KNkdkRLjMiCxkPNghayR9mLaMDBFCAj2oJQ7zVSu/krGMkvjDL03Nf7lbC29wvhEWgJEk6i/9LB+W4b0Sr0PtqONqN70A60Hq3CGtSCkCt/cqW7orxsYumEkuLx48YWjSksyM/LzcnOGu3KvGXUyBHDM9LTUlMSE+LjYmOGRkY4hvDh9rAgo06rUasUchknlbAMTWEUY/PgqlwP7bDp8qr5XL66IDbGlhtUlxMbk8vnVXls1TYP3JgIvqBAbOKrPbYqmycCbtX9mqs8Lug541c9Xb6err6eWGsbiUaSKXib52IOb+vGlRMqoHx3Du+2eb4Sy+PEMhMhVlRQsdthhIgVwdaW68lbVNeSWwU44g6FPJvPrpXHxqAOuQKKCih5hvLzO/DQW7BYoIbmDu+gEKci08JKc6trPCUTKnJzrHa7Ozam0KPmc8RHKFsE6ZFke6QiSFs9QR1ttHXEnGrZ1K1F06qilTV8TfWUCg9dDWNb6NyWlnUeXbRnGJ/jGbb04yBYea0nhs/J9UQTqEWlffMU3ZwSe1iHlre1/IBgOfxX1wa2VPtbJA7tD4gUPVS2B5dW2MlhzQNat7Tk8ba8lqqW6u7eldN4m5Zv6VAqW+bnArlRSQWA6O49sdHqydvk9mir6vBwt3/peaVFHsOEyRUeypFnq6uGFvjL5O3pVruur0/J7z1GQBYgDlDYbidk2NjtQtOg4lk5ocJXt6Fp1k7kio92e6gq8uRU4ImpnDxZGXjSN7yKB94WTaxo8TCOwho+Fyi+sdqzchpI1yzCGF7rUf9otfMtep0tI94t9rUBVoU19TYPGwFEglH9B4DckCEtWrGi/tF3+8oKE0To9LYMHsAQOLl8bpX/b1FdEACwAaELon2CUFbhceVAwVXt51huR0I8jKiuAobV54jM9MTz8z1GPquPuwSt3PqJFeIQ/zCPMdsDFtU/yhOfK+qVLbelKseHAoHFT6g4jpy9f+tItlmfcKJk5M4hnc3ZIGURuS0VNTM8YVXWGtC7GbYKq93jcgOH3XxFrZuIHVBo2N+sonC4RVkpqyiayBdNqKxI9yPie0DAMY7cX4HhK6w+MCCAHs7B2SooK+2GjlposOVBgc8aCb8eqYODSwsEF1uJ4GaNtFVgKwr0BjQ8w2y5tTn+fqQ+AChLxCm7IABNQqoAJ7vAanfbfUdsDAWPbf6JYQRHiFoQeARmCh5wIJ/ZBWIToWUQEXpbBV/Lu/k6m8dVUkHWRsgjUtlPDJHmfl6VDaj1IxaQCdnhcaBCiOnJi7b2J64nX6z3VQt+9bgw8NjWwvFFE1sIcN4PEAHmhR5ERNiVrrOKtoAoNA+216YFlRYVuqXD5SLKXDecAOELa1r4iRUjxd5gT5Zbl5K59KgIF5VlxcaAacvq4PH6CR0uvH5iZcVxLXix9WUVnRSmsquy3B1D4FnFcRs4DbGVIq2kkVRspEIglUKFE/tbj7sQWik+ZcQGsT69GyOxjQu0YTS9m/K1aX0TRYgTuRAFTxjfE1egNwNtnK9tpdgmHh2IkMwlZ12cS+ZSUirK2oFJUye0nIAYRYbRE0qswtYOGFUqNnfjlR0yl9XXYyX0cPkwXF9+c+ryyoonlAiGib8wURY5QFyC6oDZ4FZybTVEUP7krmupchNlQ2ZgDfxhD+ZvATbxtwAiEqVHztdmeRR8FmnPJO2ZvnYJaZeCiGIzhuErgfclHkwkYHKFHVTSNuiCtUX7FeGUG4xKi/aTWEDuNMQPcogRaCRFpmMMzVIMDXFSfFK8E8c7452JCQa7zp4G12m6sOdYHbXEu449+suYOuZTiAUonMKq6Tr2NYjcLCjUpZQgpR7pg4I1tEmG4p0Xk3R6nJGhc+oAEE5OdSaZTUYJHx7h6FfGKSmOiLS0CEcKXp7icKSlORwp7ILkuLjkpMTEJP8d5kIQUTE/Aq5WFIZ2uMq5sMEmxijTKZUyvUatYOQGg9EcEiplJBYGo2AmiGUlRoncTg+y0EHyIJudY5Qq5Xj3YKwKQ1qddrw72KQrVuFiHVbpVDrWYqDlLCCd6dRngEW+7Tad0xmtQ05n311ciwXu4pL0lgzxEktJSb47LJO2m+w0bxCvFLt4OWnxMmGo0m9kYatwsWxDmXC5dH2J8AsOyxG+xNGlG0txYtldZZjr+QTHZwmX6TXCoVVCKT5MrlW4bAXuEsaSa4VwCJcBxxb0XmNfg2hQgUwoBU1wJRjMKETCR0XHRcfy6ojgELMsNc2pLHQ7DZrIWHUCG08HR9BRUbZ4vU02xm1jUGY0CsrUZ8RbMgD1zGhYoLgep59hRrMlNTUlOYIPlxiS0rCaMhnNwLm0OColwD8pToU5KCnmIyUiM/cW3LqqduYkd8Oubx8UihqmxOwSjm/sKh815NnH959Yvwc/kJ5tOZizAUd/cnzR961XvmK25S6vKFoxcVx11Y09O/HBHPeM0Qs3/LL6/Izbp83KaD34l/tnH7lNWHLLX6YLH94nvN85a8rrEGCjUuEkZQdZUKHBLqUUyRnEqDWKSJpGmZn9ZM6g1ac5JYC33sJHUKW7tu6/d8t9G/dt20klYhl++fBpIen7b4TUp9rx8yS2xWgUwFUG4DJygIzUGjnNRA6Ei7WUlE/VpyRTkU6znlLu2rpv431b7t1PAAv/FIYfPIlf/OZ7/PLpx4VEEW4d+ogZxpwFXg11GRDDyFhWqaKlnLTEjTQc5lD8baKQkTl0Tt8cIEc6Xgfyo3NSd+PdQs1GYQbeuZG2tAiTcHsLPgRwM4Wf8Vx0HYJz3REWyUCAUfxFEdHEBIdFImKZhqdqBk1LWW4drbpuqRF+aqzDSVNgbBl+m8qkFoAk6Y5QiGWgKd7pH2tIsZvK8Jf47e3bRfy3936EN6DvAP8gl0KCkFIlo4vdMjMSpSaD4JvWT6e3j8oYPjorw5k9Kzs3N3t0XiaBYQQlfle0NYZjFGJYmqb0AbLCcjGPqXe9V9sIX38ZI+Y+FJrRe42JFWXcApQz6hGYGElwkMxU5JZJaU2Rmw72SXH0QO7w4ZROq3cm6bH4qxNbmNivf7z24/Xvr//U80Hrgbb772870Eq9L6wVWvAK3IjvxI3CncJW4bTwPo7EI+B0CFcBb8iXqBcBHzka4tLKEOawQsnIpFIsk+AgWAAokD7DPz3Mbud1yWkSiTQSO6kX93Om5Ncr8JpNjH51synuUCOOFulZA7bMwb6IglG0yxKEpQZkUGNmkFUrL3JrpThorJuADizM4l+Y3Z6Cb6F8GimN9JEbdM9kZxw9mXiVZ376PXdOfrim4oXrL3+x+03hFPXNZrymc/u9ExduGFm84OBrnRuFb14RznE+WZ8KtLUCDpEo2zXEigxSKaLN4SrJ0GG0xWwxF7ktFrnDEVrkdkjluiK3/CalUUZQvHjrhxsGY2AyA0KMPTwiMsVsdtp0Wjuf4kxK7UOYYExf33Ovp134q/BD8+nJt1+pwsuEqfduffT8tjur2ueWVX65+o1rzNRNnaGcuWvr5Q/4mL3xiXgYlm9+4K7ZS5Pz5udPOEvkAqjIzGKfBp7o0UhXqJ6VQZYtpRHN0gYjZvXsWLdMI9XraamE7uNRQMMIys6AkeNFHcNQsQPfeLBozKy3H/RmUEc9bwvr5VxClJCGSwQPLtlCv98zDH+6uasq07sI6LcW6BcCcjEIDXeFaehgI2e00MxgKwJiISQxmYCLJolEWeSW/IZ0N8mWxJiMiA8XKQak0trDpZEG4kJSqdjPsEy4Kvy0Ou+VWs9ZYcPtD05Ko654jzma6OWfnPtIEIr3xTrb9uCkkDTq0A6h0IJEnVkIeMUDX81oCMpx8YN0Crsd8NHREQ6lQh0yzq1Qq4200VLkNgbT3Dg3OPz+2GX0o1LAiiJ7ksUETKRop1/q+HDEBjgrAb9gXoiLccGC0eOmf/mzUjnv+nMf/fP1j4Qf8Zf37Nm6pbLVXbKNWoAfx48aNgcL7wrPH7r+0sfCDVx+/olHtrSNWZ03s7POJ5PA12igqQSFubSYZREFRpKmxrppCSJ8DJAOdAGDZTRhHEJN7fmIvuhtZ0N2rP3lEliXOlj/MHH94SgOjXMNs2gijDF0iExGS3RGjSQ+QaIbZhtmK3IPG6ZEykHj3MpgxI9zI+lvBTzj1z7R5/XMfjuXkuyIgJ9U2mj2yTl4QRxO6OHznFTB+S/u2tbZKrz/RQ9Oarnjy8V/eeD+tt1n7r8LD19+z6IHNy/ewr544sCczsLyJ5cdffviyRubxh+Z/+BTN9ruuGvT0uoH8l276Jl31Ez5c9bIlim1i338nQXrI7bDghxotCvcqguXy4FswN9IdShw16hWU0ZjELBXSknHuamBwqfPiB7AXAwSB8IHRtLAS3xrAotp1vuWAasi64hgHN665pySGd/8oFCmHW0883HvK/dfvUMwbt5977bJOypKt9F5PW3GzYNAVZ0Tb/37Kx9jbofwLk7oPnDvf4xZmVffOcOHu+hHmBoxZgF7rgX1QMhsURuK3Wptn0sJ2HO/J+zvWXTJzqRf+ZhFy/p7GvrJdeuIw6HQYnyaCaY/EmPbKJdJSjHQKOMYtsQNAWKJW4MxeLzbYLb4/t6DuD4M12J6f89Uej9duWGDMHPDBuT349+BH38b5NPkkrEY3JiUk9AoPl6kKQzGOAWbcB2t6fmWPg1GeQPOwwvvF+zThEqyfmvvR3QG8M6KIlCGK8QO1kJqMKDBaiZyKEJDtENCi91DzFp5oVvLDGDbQJ6ByKWlpg50BOByQBNNdPLNyNpeMG19/pplxa3VI556+ZnXI8feWTu6847hma6M5By8LXXhA2VNzaUzGhyJ66affLSwYfq8SY2324Ur6/OyXPmZIr+W9OZJutkuiC8zUa4rnI9LVY+QGq0IDTOq41jX6KD0dGYUp1PAGR2WREdE3wyg9RlJopENIN4XVYpSFhkQNoK8hTYZRf2hhvDhDGUi9ibNJOFtCJz4EHsSo8fw3GAQjU13xb66SYsU3ND7Z7Q+cu1UzqHc4LWTG+8Tvu64Khw9jLNw/KsfnvpeuF9oeBNvwugKLj5248ezl/TqgvLV26i377m2um7CrdMuel7qDTYLUebOK4eOYO2248IjHwiXhO5Ja8vwZjwDM7j16hHhCeGAgDMwa+wCWsDBatmTIE1q4F0opVZwmCXSRTNSRqtRU4VuBatWQ2CDGAhsnD6nc1O0fPmBnYbMADsxBnWVwNCqo96jXYeorM1UplDbbufNww7hy0I8e/KXHGoWfm7S8qomYQRMTaMLoORPg21Ug+bbUKErwsCEyDXBwWo5I1WD1+U0QZqgMW6NRo3UwWPcaj2yjHHDuN/32n6Bt9sYYtRMjM7I8JCi+Ow6r9P5SxfwHgjOmC0b8Tjhp+sC1Y6DuvZ6Tv2CEzueOPYke/TwydWPBMszhHeffY/OWXDXsrneLd73N2xdv9KnM8vBXl0S7XGEy0irjTI1bQnSo0K3nlFIgGaGgYEOiEg48B05AyKQrB/iTLJII+gR3wqfY9U/dzy7/arwlPDQIzjzrU8PFbSxTuEZ4XPhA+Fc2v0ZeD2u/xCXdZdtHU/kF2jGVgDNID4m9kbNyCDx1xtY1Rg3SzPqMW7Cqd/Gj8gOGa8N0VDgdU4bwBAWC5uF2fgULsdLu2CuT366hMEbUJ8LrcIq9qhwl/AXHIrDb8wnAR4m89I/w7wKEhtI5HLMIA5D/imRFbrBRVAUW+imaAx6jvW/GxsQJEz+i/655zId711GTfXup9ayRx8QhrV6P0X955KhJNcgiM0xzWFarvjVVHqf9/zNHHxgDtzUHpgAwHs/f8DPO3aUaK9gHUYumKLUVo4ZHIKshRDjsEqlrtCtZFhLoZs1/H6MY9dJBnBSVGyi47Cusfjb5m/2Cl3CPcdwxWdfvJD1/DHhB+F1bMdB27cIxynBm+GIwBtxzcf41iOTWsuEM8KnwlvCyzw+41s7GybS2ekKloE95xiGRaxKydGFbo5j5RIaokGijGCU+pn5m4uH8M8Jv042rL1HaG+nqXbK4y1hj3q3UvNQgL7M5+Ic4EUIfJZSyMkcFMfK+sPPGEBXLBVBg6ozn5/3frmjvZ164IK3i3puvfcsgI+m3vCuHcA/FmIeNQ2TQQwKkSwQ2C8afqwTEwjadtOFdiIAv3y80zdWsoC84wHeB3EsK4HYTiVRGU1YrqMlEBGrkYSgR/CzZPx6+Zg3m0j4Czg6dSRt4TFdImg59R6M8CUOvya0qzlByWp3vt4zlT16YwwDmRl9eP/Tv3znp30mzK1FcS6TDNwP1mjAOOr0Clqq4Wgs7U+XgWT3TwzTRlBpQPvMMz0fcNo9p+gQjlJTDzIvvtXVcxomHG7Fjkw63xc7EFl8+l/lgoVuGUNrCt204V/rsk/abKh/Lsg+LewRniVmBFfhHMj1pt1o8n77j59/+u4fXsgJHxLmgczV4Vq8QZgv7BOuCBdxEo6CvDBRuOizK0ydqHN6lOwaJAfKA6WRwShnxrjlcolUqh/jltKSX2ldxk0XDnmSmHrYsD9D4pk64bLw6aF2vIwa4lXs+PCFpy88zSj/+rUXKOG1bn1oyz0+OpC5L8HcSoihClwOFcaUUqaTKuRyqYxizBaZCqnQGLdKRdE00IamFZTIid91ASI+Ii6MScuCqXcEUAKbgLdgmEF4B999QdgrXPq86+CjT71PVXn3sUdfviT8dYa3garaunnzlpWiLJPYlAJ7MQSoYg01QHAXZGAZR4QylDabwWaYGVo2gFEoY2ASyfC2QCoEYWdkhC9CIDZDjEchLzUzlPD3b4SeTZWv17UfGrV560uPC5ffOZZy5NF129PXbvj0Mbz29FvZByJiVjWNrS5NLjz/0CPnS+4b2zxzbPWExNKTPp3WAw0rgYZSyOn1CLOYpjkZeGPQOiZgK/uyIJ+hgJDQTm1sFxKZAiGRDXtAtI8nQCaDAY4OOVw6LZZLIZXX6ziaUQEg/yqd/cVRZySSmAI1X8qgY4OFV4Wf4bzafv7M8fPs0Z7xvwgfYlsPfbgn79izz3XT3QiL73nPinsQg1wKcCQKDoIMmiaIOv2bDwDciUlkAblHGqM85v32oPf7LlwyPHzIcN+OSs/4h3fuf0hcP0Rw0rEAL5jsaQTLrYNMajUrC9LJaSzzqa3Tv8spQgaNjSDhCoFvIPD90xic7HMHhbdNydicIHx4UFjW9VmC2ZqCJV3YkGA3pHzaRb82+nnjn/f0OGH6JU/vPPY4vaRnxa6z97xEryV4cLCuVtG28i49I2HBsEqIYWWIYWUGGlYRDcCABE9gVFtPg0+e34U/FUacxLPxvCPCCGqNdznVQ53wPkVle8eK+4QAP1PU02iXBdyiFEkZzMgVLAMei8bcAP87YJ9FzC7tTGaPgea8WvqZnp/p0LXM9h1rb9Qj3NsjPEfv7C0Q984QC9EiRfbOsN/dpdjpnT3T6L3Cc2tAX6f2XqMvMpWE1ijf5QjnFKGhwcF6jga/RilC892UAtIhkybPDdo3KM/NmkGxM/99Sm4PxM9aR5qYBvh3V0w6BwhVilTMyelSO1f68NKHj1OGEw1LNzzmnHC6+tmnBPWujrbnH5+7e2bhwV14rFaSs2pZ2YqYpMOnvMaF7TumS6VzmyqnAt4e0OWFEiP4ljCU4wqXWywajTKEVtI2uwopTXqdXAcGGBCWmJExzw1+oL9SO4P67ZgGkmef8YXgX0pco1HqTLUE0kySLR9+6+tv35zdMVLJL27juOaX2lt3tu9obWUqhbeF7+B8o7j0bolRuGtF7YGNZz/77NzVy2++6tPnJqDxRmaKL8bUgN2T0UEWiQpw0yI94Gb+dYzJ+mNMM5gWiEdEbYR4k5pxXbiBZT8U7411pq1OEjof3rfh3nlG7MBKbMAx4Za7zSHCpBfeGrEtQ7TFMC+TBjTSA42yXPYQiQWp1TqJzmbXmzSAGFbSMhmQSKalDXlu2vz7JBIp5OAlgZ1LizMyEtp5kZ/JfvNH75Q1fXLl62/evLpYJWXa1gl723fsat+6a+e2v+AIrIEzZn/xOPz0P68tPv4y//m5jy69+mYfnnqgjwENQiNcYUFyi4KmQdsHWy2KPLfFgiQSo0gs9QBi9Y/knP3JpjeZ7GYfySQ05KB24N6KfwifYfa9l7/xqtjjBzseq9iz+8971NSoTUY8FEuxDKcL3/61/vT5MfdF2OlPDm3f8xcf70Ig/lFLwpCRZMRGpdJAUVKapU1mOaiEHIyzlM1zG6QammiFuId308UTwukzxBATvGlKWorWHnAWYK33Cp+3Pfssrr51YXRVztRKbKHP9WTQ54pGjsL38WvDlrfkk7wqUjAyiUCbKJSGRqN5rluig9MdyrBRbKIBG1gqKnxwmCNYnpU9WJOiSclzcyPy3fJwLkrDaThzVBSV747SDM3Mdw/VmuPy3Warn3h9bA4imwMZGdG/43dNgc2kSFERxOSdbKGSFD/i5i8IBA7oCU9eyJBKSjKUmMQXB8e8dyoxetaYyjOdzwjvCX+/8vnK5qgMV2757Leen5Qr6Fo3Xb4wb/u5BXdWrm7+x48L72QK6oP4BfkPneLSy2OjWzcffWbf1pqtgwwlKSMro/iDc7rOGm8g95Tls925c+iRTYuu/XQn8MkDtjQHZN1MYm21kuNkyCwzW4LUMr2eyXPrtXKEZCZisjMDaw1oP7FYOp8Q6wKa7zNX9N6lqx97sK2Nkyceab5wgXrurj+ffNN7FrR8WHl68eRnXvGmEPndD4Iyg70K3NKAp9CR/S6MtTqVtMCtojSYSMbL/beMSNpG93/JOKmtrSs9aujw4UOj0pkCPCwjJTU9PS0NYPduEYwibCUKQjEus0GhUHFc8CCztsBtdsk0CKQP+bk6aMAkBt/GWSrx5tr+s0XfPiI3e3zhzRkFY/A6Y/mtTM8NrXBSeltgch9NQ4CmWpTqsmrVcrlCwUkYlmN0eoidtFqOo6UKE63x+fl4mDnTJ0IZfrJi0RfjQLZhlOKy6Ao87TkhB797QVi+/MABjkocNR0vFmK9GynJHGGGxNhzLq3JNzeeBHPTCJYJpophKSRSMvBGhxCREA76IF9/yYugJzzKc/EmnU4PAsDL9Dw9xDHYbDLpgxlVMFjcsGCtQQNxsUlMOzL9m+6gBk7nrzYe+onETdmwEMmwWQLyIXHMX7Trvrb5i3dvaVtn5eIfnYVxMZd4YvGJ49SFNWs6j3t3k/uTb3hPMwWtJZUnJtU88yqRGb+8Ar5GlOgKQkYisEaZ2aSUabUgrlqtXPN74jpQWi39ZfXQPoKGs3vB8+eJrJ54U5x3gluc1Gdnp8GcRJYgRzEgFUQcg4LlZrBkWlo7wAX0z1FAaKgUYljRTS0H1Z4mfHd928d/wsrrn2JNz1MHH374kUf+4+E2yiF8L7zWgqnHwC1FCy8LN159793XLr/ts/UesGcLxXXbUabLFqxgpFIuTM/pw3lGgTQaU55bo5VpOCsafNPYZ94MxvuUVrT34KzN/chAPDgx+P2cNnHYyrZ1Fs7VPu+dr769frCV2tl+z0MPGYtLqyYJoyTJrZUlwpvCP4gDpz868aLjs3OfvnDx3YBM0ZGAqxZya6NKJpPLKcgfNSokN4l6pw28ox7w9jVg4gNoUQcKh1tyktc+1bbBwI06xExR7tS89ZC3iyl4cXZzIC+hm2CeIaBng315CWvoy0vy3GathJb1cSf+X2UmkpsvaZIjIv3vwAckJnTTxy+/s7T4SNnqTQ0P7ViV+c7THY+M+I+7Ft0RW3PP2Q04ekdb7s6hcRPLXZNvySifU3TXroJ1OWNGx9ySnpJ/L+AY1nuNOsjmAUcgd9IajTKFTE8zQRa5QWvId6tdWo0U5bmlfoYNujggKITYISmVeGOIZYgjTHOayL6O0UzpY0qDrPVRwpk9e/Kq8C3CmakLVdIVKh0upjaV5H4hrPIumz6L0OgAyG6G+DVpsisYG6RKpdwgN5mVKpWWM2pEnTErApEpyTqcAzPaQEYDQUsgOtXhsaAyD7ZtCJI5jzSfP8cUeDPAwL9BuW50b5sw6enL1EVfDEDyGwrmJu+X5ViuVLEyrBHDYGcgu7GLqYczVW8Ae7dPqOq8VqLmFAtf6hSqAOyij3NS8Dgq4Ua3CM8CtooHeIPBohtl1pBQi1mtgqyM4QbpwaRzpv45jtPZl+fQZGNaSjZo9XoiWZDhiJOmwqRM/AVDMjc09NIp4Y3Dsxo4TpGov9D1bLqRY/hnDgmXqTUjLj9+u3cF5IfThZKijCMp1ELvxkMLh7RS74loAV6RsE5OXGe4SydlJRDdkFfpmFOYGFjwwHTHn+lgMevpFtY8he3Y9qSwBm85KVwUXjhJJVIWYQo+4P3cewmfFHIAPgW6LwH4JpLXwkJps4VRIRWEwCorB74zMynzZhwCHuzm6iQ++YaQLo3q/KbYwKkmftopDMt7cv3YMWk5jxaOAiJvfvN250/Un27Yju/SrVWe2u1bE+RY9FyY87c5Vr6b1WAu3028yu/nWPTcnk+oSd5L1GfeTuq2BfSkVat6ToBXqum9Jsnx7RujVPA5kZEWWhMfFmaUaSxsWrpEifQaZZiSQnqtnlLqlXprNG9wWpkAFX3f8OgGJk6B11qiqoT37S5gcWuS0ZuMFMOHD6HSjHrGmTREH3glQS9fvm7FmknLE2rzzrzy/jMrFw2f0/PAeTz1BXKdEfa/cknYf7b+MI49dBhHPX5YuOI5LLz5OMMf3nlwf+yfjIO/fevyjyMXOYVucYyw/4XnhLZXLuHK5x8TXnvsMB7m8Q9Dvb2+PQWpg4pA6UBeKfn6ApcieReFI9kIFJ2SQuwm6OpuiJkTyBvAYVFsCI8sSiUK0UWxiUl6fVRcXESeOw5FmURrH7Dxv32X5DNtvnSRmDDTTTNHrJwvAPW9abKJfpp4QiZ4c0W6NX/8phlnnjg5O3N3wZWJ81ZU5eYXudavEK61vffXlz9gvlvXlJdtt0VlOG/fU7vv0dydkfFHi2bnlS4ry5yVklGZUlJ+9cZYprPzyT2IrFnMkdnXYM05sGZQiw8RrJimhut8KyZ9RN8q9in19bH6+sT16yPaMLFPha+PHYmUiwr0Af8YTJ+musS9Hw0a5FIyWCVjtDrEQWYLoiN+syZqXySohYSS2iNTyUdEUtyqSV+6LHSEyntFaZ6WvizLQZ82X8Fck3C12lyJlUuEn9Cv4GsJfJkKsxDOqVitlMB/vg+++HmOPs3e95lOCvlMZ2mejYpUB1WlLx+UpWKPmskHOzjkLfNk4celNTj5NiSuM1j4J9WFrmMppUDoRjqyHcNI6lKpCqTdvaeeUCp9d5msQIp00dE+mTmAv6em0h+B7TEc9X/C4/9YSAxm+8WvBxbMqW9umjW7kbq25M4/LVu8ag2ZE/I0ZjDIXAQqBCSkaCx1FAXalf3ai0m7b38YN4nf++iOIobFNAp87uPbyb7QTralAvYfB+8kxds1I39AMt//GlxISdwo3v8+duyNnd43ZPu5aVCV+d7F+cZxd3sPQtOhGzuFZbL9Pk9y86DSmIvoNLMXp/z6vxnYaPI9ob98BS0Qe09FpXCNEr3RNlSHf0SZ1DZURtnRduobZIS2GXCdhKsGrqlwRcO1Fq6F/nodXLNI/77/ztiGFpN2ugFZpYloCauF+eLRBVaJlrNvoAtME1x2qL8G9c8IzfzjPof2SHRBmoEuSDi4RqDlzGXfc+Y7eFaDZjFzkR7GnWDOAtnrkJXZ6/snDWYL0ZCBB93a2yM+awI8P0Me+hJqgnsTsxw1Ab9CmGkoEub0UBK0n5L0bmGcYtkjXYA8pJ15Q+zvEWHlwPjLsM7XUBg8O8AAPyQZyMIkAgwOUfTTv53/P3NIDpLvov7/OAhf+nj5i49uA/5rp4l86/J/fhC+/Mt24Av64/jj+OP44/jj+N8ekIgGk4sehYL7fCb138+GMifBV8NFjfiDZ38c/6OPC+J/N0/qO/9KTjwFzvW4C86/YYEyUqlUCbWVOkkJ9BR6L/0FU8DMYt5h09l54rmd7ZZoJa2SN6VJ0vnSQ9IPOS1XxW0VzzPc32Shskmy3bJ3ZO/Ih8r/JN8nf13eo3Ap5sO5u+/sVHQq1coa5T7l96os1Wq1WV2mXq0+pRY0Zs08zUHNF1oXnM3a53USXY5ujq5b93d9uH78vzlf+H9yvkdOQ07fOek/cdb1O5f+cf5x/jc82w3vGX4kp9H8f+0MN8b9cf5x/o8+yf4+oh9ALcgM3pJFFNKieDQFIaxGPyNa3PsahG/p2wPLCLxZgV8Z1HxlCklRlr9Mo1BU6C8z/fqwSIlm+ssSxKEmf1mKStEyf5lDRnTRX1agwegDf1mJ4pDXX1ahOBztL6tRFCZfo2NGBrVGvMZfxkiPf/CXKaSmpP4yjUZSJn+Z6deHRUHUBH9ZgrRUvb8sRQeoJf4yh4bSIf6yAqXTuf6yEk2hl/vLKii/7S+rURmTklM/s765fmltja2murnaNr1h/pLG+pl1zbZHbEkJiQmx8JMYY8tvaJg5p9aW3dA4v6Gxurm+YV5c8fzaebaJ1fOaSmtnLpxT3Ti6aXrtvJraRlusre+RLWth/ZwaW2JCwqTaxiYYZUuMS0wgj8nTm93qm2zVtubG6praudWNs20NMwITVs+rsc2tXmKbVmtrrJ1Z39Rc2wiY1s+zTa9tbK6G+6yFjfVNNfXTCUpNcX049EO0rrl5/vD4+MWLF8dV+x9Ph6dx0xvmxv+7Z81L5tfW1DbVz5wHqMfVNc+dM7YeujTB/AvFOZrram2j51dPh5v/SYwtsMykuIT+sMVecQ2NM+Pn+Ho2xY8tzM4dPzE3FnqiHFQPglePmuFaimpRDQSINaga6tVQmo4a0Hy0BDWKveqg1YYegSsJJaBEuGL9pUQUA6350LsB+s0BODaUDeVGGE1+q0X4DWgeiGoxtNVCyYYmQvs8EPVSqM9EC2FcNfQdDS3TxR418NsI/WLh+u0oGyjVQoA6R8SZYJMASkpGNPnnIq1x4pPA6MDYfwWtXvwlq24WMSazzxUxmg1tDWjGb1ZYLeJoE3stgfs0sbVRXA2B1ixi46NpvTjbdLGF0NZXnwUraBT71sDv9D4qNQHev6XDv6Yo4UoztA4H0xSPFotnHDwfOHq6f2ycWJoLPf+r45phrfPFVdWKlJ4JfX1UjxNhzgXqjBVXUyuuxLf+hf3W0Qz9CKVGA5xq6OerDRwTIyYqA7mZBDMk/C7eN2HFiTjPhKdzBsBsgpaxYH6zUS4aD5zPFeWXwHTtkNkLbOU2HFoeVkCXh4ViTWhm6OOh9LiiiLCxRc6wojxHWESyttzhHFIebOgNkzK9YRK6N2xMoTOsEJ4ZnPpyFtPljBNG01hDZ9KP03R+XnDYl3mYd4aXD3Zay81OU7kOa8q1Tk25RlOsocI0lzSURtOroSQURuXYicob0Ar0OPoaMVqEV5oxi7vxvR1lE6Oji7qlvaVFHlnJZA9e73FMJL+uCZUeyXoPKq+cXNGB8T3utXffjbJCijxJEys8thB3kacGCtqQDjPKcjc1RUdPbWpeGE2O5uim5uj+h1gNmvq/AOGikywKZW5kc3RyZWFtCmVuZG9iagoyNTYgMCBvYmoKPDwvU3VidHlwZS9DSURGb250VHlwZTBDL0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMzIzMT4+CnN0cmVhbQp42oVXC1xT1xm/AXKDELFwjWOJPTeldl2rBEqta6l2gBWRAq6C1qoFQUISSAjkYcIjvEHghKfhEV4BQcOjUqivTmm19UGYrkbErf2tunbFtat9rKvdud1x++2GoNh13e4vuck5v++e853/9/++/3c5hJcXweFw/OPi49XZ6idCg7dIZXplqsY1GcMsZx6EfMAAgqE5jNiDeciTCfIy8zn4Wb6nk+915yXs/E79DzP3QYLgVCxx3S/7Iz4/iP235DR/hWtikv8I4e1BcAgfYgnxE2I5cYvAHE/Oons7Raar06Sb0qXZOoUuL0wSGrp6vTonT6OQyXXisNDQJ1e57s+IoyTi2NQ9WWqDNkshTs1OF8dKxPEScYLawM4qxD9XZ4vTpPJUZYZYnSFOkm4X67VSjVYs06j1OdrHJOIkuUIrNqg1WWL2VyNVSlO10nSxPjtdqhHr5FLxxq2JSeJodbZOHKfYI83WSsXBwWKxVioVy3W6nPCQEJ1eJlFrZCEZrI02ROk20oa4nguO3pyQFBy3af2GhMQNEp1RJ85Qa8TpUl2qQqmV/Ce0d8cJao0qVUmwl4iF5WHicWIlsYoIIcKIZ4hniXXEL4kIIpKIIqKJGOIFIp54kUgkkojtxG4ilUgj0okMQkFkEipiL2HwZPFlryAiyIW0F1FA/IuTynnXg/Z4yeOKp8Szwwt6ObnRXAV3nFxC9pAf8qp4//Re692xSLBo9aJunwifSd/lvnG+dv5q/qHFmxYPokg/6PjGwTxk4BxCm2+hzZ5M5ZCgvaqluBHUV+phoQgvZmzc8TKTWSnKLoDSMhovvtPLNelgTSVdUllZWiRUHYRd4Guyux8ODRugjD7wDRetIQ88zJUZoFLVD7vpr8mug3CIxuvQdgEOJH+L3uX6VTqSHGjaEfCmExU4KSPTOSwY0sDC1NLG+nKAlLzprX/EK3Y/AqNUvQX9HXbLmBnsN5ttdcBsbYcW0e9PK5+n8YZqvOTllUKqJPo3sV+PTTUPnwRUhLLvVO24yN4Hh9kd/ybQwb3peYBqz5clw3JRfNrh1yc+GkOPNNCsC+iaA3EdnM+dqMnpyRQipQAtCfvioZ3JeUoFQLG84coWBYgiCzTsQQ5CK/3GnSbSAPeOHoa2AZB69HjZiAhxPv8MUXT0spUbYjesk398CszwLpw/85tr56NWA78SB7PfwTniRBfY9Y1oreBVLSwp08HsGvBYRbg2TRT61LfocfTYn76dnXznlXArnV9fVzAkGoW9NhrRvE44oMqrKq2oAjX7YE2Rxtue+YptuwgLsBcW4lj8AmJ/0TLk/dHszbnzvOfgzDiRdtaTyUAcgT0bVhaU1hgqQFGlcVekaM36K38+ZUc8JOp9HZbRcnOPqV/U39s1OPMwTMYRm/HyJzH/L4+gAEQf/qKL9oPIH21C/hy0C/l7ovcZL8GY6mCWVKNUZgzljowPDA8DfMHrB3Pu2F52QRuADiJJtDMaSZb6UUWMhQ1yLjSBZKaJ/AG2OIwczEzr3C3CnJWrMEVT9fiBm49/e/bYoUE7oBJk0HQEzJCdA664StAvBNRoYvLTzz2/eXr21pVLVy5OJCa5doaTv59ESx0BVA6TPg9BXnm1sQJs128tU4siIt78qIBGb5G9PXAMkS98gZdh35WP4iU0NYb9/vozJECBJ28OgOdRkAD3kDPWC+9cEZ2e0qywsHA4EOFgHjRw0LWzU2c9mXK0UzCshQVgHbpNvlqxXwHUpLaq1lBEYyP+B7esCNYYhJmWimGAGjERTxZo2aMOwA4axZAdA2y2sM/S8Yh4f25E46hhAdaQSIO+5vrhvEkUee6dSfTLSdVkwOB5o3OLE8U4c8/vc754nnqAYJqYQMEB4/DWkh21ilcA5UO0Fsh7XhEFPx+xZndXZoeRpjhESUGZXiWUWzWWYkBVPBCZDDeWCJ+6nYCWoqW3pz4EVKR4LO/N7YdAc1Fq3xOiDWR5EawrpwsrobWYpoJKSqy1fVDYUGdtaAE19eO6CdEnM1dnaSosYqhsMN8Oetv6G9rN3jlNBypaRF0H2gZpHIM9BVtSUl7amnryDKAuNZ47ceL028d2bQOIwFiQErH70Ucjjp/otoyM2EDngAXOiGYRFz5F+zFydEHQXt5a2gzwR0jKtZiqzWWiAmOxzsjOVtDoCN6E2S+3pKKo3CjU9RR3WurNFitA19EerqWpfX+P0BWhy3czOonNOMuQYFjDBigFFZJ/3X58bUyywmgEKOG/JLYpZWGEniStbMFyPUqnoA3kV9fG3zpjVW8G2JDOm7M65LIKnrOi/VD/Fc6c+6NyWAzwNFksh3L5KGyj0TTZNgpHXdRhTA4OMrI+bWF9yoWFABOMCRFkh2sjdkzjcbIwF6qUB10EIe6YMHHfeHzObo6CU45rXwUgxVdRTsrB7JxfLAhddycUDrrvKS6ewovvHosdn3KvQoXiIKZPYNf3qdV6vVrdp7fb+/rswL068mUdDUc7E88mop1LlzON81soSfwY2oaWIB539D6vJQu0HiPxGryKi2674Y0lCzWsJ/2wk564Y9qxMEKSBfrv+ID8wzXki0PcajGXHT73DnsPNNmQO9PwsruVg60WC/FaxsIluG983Z1R7gMlOQLOnEW+rs/S5dQE086utRfKAKri2SAiw1RpRelqcLhQ3Z0pylKZ9Fqa+mCoxgDzRFluLHvhazSe4sn2zgf+Y/fx2TVotJFHTcwePXn0gDU/FmATz3iXHb/7ntH/MFnwco601Bs/wlrKOQI79ny/Yk79D9JSg/+Htm65OOdEAy6AXdrnL/mSFRYvyc+xP6Y+W4U8kMdnt1AAiG4WSOIjIiPjf/fpny9dmr56MTZ0jixxDlQ9l2s17Ao6JkLwaeRNzANYt8DBoTsm1X0MFCwwR4XikD+JvGdufsqq57bd0SvBQ6j6W/LW8ehttB/WOFCIK5vncDnhRGInFfifCk19OVhjlX4/j+0/Ckka+eOKTQUsaDZcULypHwrevWihYCfydMIPqVCmgPEV2IqPPb39hby4JHCYR73npqjHAuc/wFPh92WA9b4M8mRhoFb85cIttBhozV2GAVGfrfMQ7e4dAk5finWedCLaKb1EKRklChdclB0rbgdpR3Ka13WHdwemtklHTwrfmjg1jXw6gpVNQF/fWmmbbyEC51oIbVW+qhyMpm1tSxZhz4i1a2J+vemGlka8HC7VYa+8YVgtfGn3r9aqdzQc2gNSD+07Vtvt3VVb250lksO9BhoH8gqgZqivyTpiAaojjoKLIuR99ePZuxS66kDdDk8mBfkLvsGC3qxGsLGNm92wse114cGR4c9uWFW59SDfXJc/7PbK6XZqn6miBvSmpECjCD+re0YWcjv/ExM9Uf6Hom3CjIzM0F2Jre9rQHfVvtZctx+Pz7lh6TSPtQHZxJkauwiFjdw4Rfu17GXOOzgnnOfmaPjefKm4QXZW5rEtnwLqjXQqzwj1h0dhjx2gLhJH4jgFzsEeQhPMHO3qah0EjWgMBaMoxwVvW3ddnVXox2R896igu7DLoK8oLKpkl/tnNLeioBaWC/M68m19zR3tTQDd+C6a29xphvuFLiwus9WKZUUY68ZWFCDohr3yzNq9+SC+dkupTvQcPD1AozL0NO9e9cNPXyd7YJ/CdTzwzGp3krpq4Me4mlx5WTZz7YPjs64uEtVdRDscASdmN8+2zyIf5x4nlc3oUJRgeteFTUPg7Gv2c28Lr0W9i3mYv2FndOaAydZ7oMturWyprgfDw9Nsx3z5TVmyqlCeo6ezcjU1shrvLfsKYbbQxUfwa5Jq+fKtmBcTEuNC9zzXejKXbmxsbrIJ+402jU5fmBX2+Yts4f/Jh598Ot/cTd3f2S2nChc6u7tC9L06pSCpiSfCi7PWwldHADrwQ/nFFnKlUztz9GiLfQxQu7LMvbBbNN/s+WGjIwEFpLBq5wg4iF7GMddRNHqZEjLVzIr5WC9ayC07uR4rijIq8yqUP60lq3rKeit6JKgicGBBdFjze6I1TKIg/B23oRRWQyHU/KJIw7ZK2UmymsJab9hoaRdSEQN53ezk8Zz8vNzUw3smvnoDBbY20CiE2ckduic0LqmadKLX2Njrjwo+4d0L63ps56HrTB63pQM2tQgP66ER4D+RmeXlmXTUPCt7beAMauXh63fyuKWFsLJUqOiDPcDVVjZbRmg/11v6A4yI/zP2TZsId711Xw0oaWXWt6J1rQ2tJPDxSlLzF0G+r8PH6Tve2WR2XY22hiY+f7S3rqHZ3GNuefvVFv5ipm/p3wX/Bs3db3gKZW5kc3RyZWFtCmVuZG9iagoyNTggMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAyMz4+CnN0cmVhbQp42mtgYJAQsFQIfTQlouFVCjMAIEgE9gplbmRzdHJlYW0KZW5kb2JqCjIzMyAwIG9iago8PC9UeXBlL09ialN0bS9OIDMxL0ZpcnN0IDIzOS9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDE2NjY+PgpzdHJlYW0KeNq9WG1PGzkQ/n6/wt8OVKVrj99PCAma0nJXWq7Q0mrrDylZYKU0i5LQK//+nrGTNEDogYQusHj9NvPMzOMZE9IkpHBeKCdIGxGt8CSUUuhJoaJEixnrhPeCMEXaC22VCCQ0tpEOwhgnghdWGnStsEELIhLOREHCG4gRMQZBxkAwLzJBKHIQbaHKSuiyABAclAiSrMSwCIhn1coKCHLQSwZPAK4gtPQR0oRWMfIaoTUgKAlQBAjA6A3LtUJHmAb8Rjklahdg7nvhIjfpt62t6n0z7a4mp81UeMWD1fH1ZVMdDs75z6QZz7IneOJFN56hP6197qdqZzzuZlPMsw/fb2//VnudxXuzTrx7qHh7S7yZi4e45e4p1l9ht16KoYyi+qsdTmtHxUxf4OReygCL/X6d/eFe++1NgOG2/W5hfyj2h3X2B/dQ8bft90vxBX3I6EWUpVGlKSbHgiCa0tg1QKJ/IJDobgEJjw6ELxEIBVzwi0Csk6BU2UNUbMAJKG0hyAJfqg6aYTvY7X7UPG6jfU4BLlfPQ5yLfjFpBrNusvFmcNx8Ev+0swtxAW2TSXO2WR23s1GzddacnUlpB1K6Rkpv522UkoYYl3gnjKHv0Heq9HneavR5PbdnZZ8zq2u2q52r2UU3+ZUSKDB+LhwdE7arw0k3vDptJhs/ht/by+HZtx/iywZJQjZS/svmZjGr7cb9wazZ6P+BKScNUEQlle1J+Tt+N4sH3l02451TXlxnZ1Z77Sxlbx90w6b6MG3eXc1G7RjOfzv4BlKoOSsWwxjI0S4RWgY1B+3FYDYYdefMSKVqAl/xJOVqrZC7rE5EtUVOwpPI8WvSvrYxJCNrq1QyASfFJ6tq61yypraSkkNPq+QCBm3ysjZWJk+1iTp5V5M1Kcg6eEoB4p1KwdYaFDWIviaToqy98ilih6OUMjatIzJjzNhgAUM1SiftakQW6YEyIqRia2IyGHWGwUWjk4U4SHcUktWYkCKb5GOyvkb8M170gBdREE5rYdW8xZHkdAw7hONcLGEPlpHkVxFxGnjYqcjL2Q5jjTCIgEGu4ymLBB2sY2P41YSQlDYMGqY4Vpis4z6lqALMVGwwJgz2IAtjGQID+HiSsjUZFAJ2AGoMylaiWOM1QaQhaIoZCCpWQKuQLyOMRdVA5fDwrtchOwfmWWCOUgsPwB5Z1CFw7B4V2IXYpfMOHEokJEjwvvgJcXW1MSGHF6Kd0sL40iKWHCQIgHroAIPyY1HJuI04/zye3ayKvyTKrudKrPMUF1GP3G7J5DpsHBwmPVhGMD/UwATHKYSAsgMBIalgsiNR5Nm0ZMFabREiPAYRs+Rr7V12tEV2tXNnE4IOZ2OWAeJJ2vJrMrQYyaMmL2Ae5Wbei7lhn3CjV3fkXb4s91SaItmXzaHsCstdKYQ8Et0NzUhEdWlp3tr651xBoFRYjqVlOt5D6q+Orr7O8jHf73OfJ6jaHUybPPvuVf/tx51nnGCOBuNpbx+5oD3NO/vN9HTSXiLz5htMriX7/aPr6az5tj8+63IVOm+ns8n1xs6w+9psVu8mw2bSjs839oeoHe3sehPqLy9HzTcuJXJ7u+qfMIuqk3x/mos87l7t9w8Gl9Vi10pFuQmk2pmesiTvbMWj/N4jI6sjYPqIgoRkdvm6ac8vypqd7+cn7RD1wlrKona5zvQMkmGPHN/bcD5wiQupKobvjM9HjegprB4NznHLYdHXKDBbyJzjbtpsSf6Q/CodfnD+pUGPpNmGcayB8+99XmX3NSipplRmXr7Xjhq+IbpbtfhG6HhE/mfMXo5PuyGcv3Rj7/XcScMBFHX5MlZK7nH3YdxidYMqHH+leT1p/n759uh1/yeA3W40vEsZ/5SUUZky4ckpozB8D2ecXuUMp/ce4T6mcEkHZ1y8yRk5Zww5UibcYU3ILPmK9n7WrHXrkjPxNmesfARn1sp+CGPiHcYY+XjG7B/++XbvZKn+DlmsekqyEJPF0v+ZX0Jc4YpFaHqEf8AUQrwmvyy4Yu6lya+Sy21fLhhi9R2GmEcw5LbYh5BDqbvsUA9kx4rqz59eHBx+fvbm4KAbd0r2EPar0WDyBHS4w7OSecESCjKzxK+Bu4YQPqwQgmhOCBdXCYE1Pwkh5WrBAb97mu9fud4ot54Pfm2x4Y+VUa58bvDhPu8tiKDzFx6L45WZEh7Bi3vE91Zo8RCq2Lulxyy+aPgXOdPtJQplbmRzdHJlYW0KZW5kb2JqCjI1OSAwIG9iago8PC9UeXBlL1hSZWYvSURbPDIzMzZkYzkyMjBjMzdkNjdhZGJjY2E5NjdiZTFjOGUzPjwyMzM2ZGM5MjIwYzM3ZDY3YWRiY2NhOTY3YmUxYzhlMz5dL1Jvb3QKMSAwIFIvSW5mbyAyIDAgUi9TaXplIDI2MC9XWzEgMiAyXS9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDU2NT4+CnN0cmVhbQp42iXUx1dTQRTH8blRhBiTELokRLEgggUrNqyggiAWrKggYuyCYo+KBXvBXiB2xd57FxXducDjxq0rj+78A/B9ZzafM+f+7rwz7573RinV0mJTv5ULnDblVK9FuZUST4FS1GIhGhIgDrzQnmYlhfX0OZWI12FWNngLraA1hEEbCIcIsENbcEA70CdwgRsiwQNREA0xEAtxEA8JoA+UCF7x1Zqz+OADJIFfkn+YoAN8hI6QLKkNJugEn3lBP+gHdIYukl5lWrrCV0iBbpLxzwSp7BBW3SFNMn+ZIJ1AT6MH9JSsPyboRaDn0hsyJCfXBH0I9Jj6Qj/JqzRBfwI9tQEwEDJhEAyGITAUhkl+ttmWBYtgKqyFdTAc1sMG2AibIAgjYDNsga1QBNUwErbBdtgBO6EGRsFo2AW7YQ/shWkwBk7ASTgFp+EMZMNZqIN6CME5yIHpcB4uwEWYAWNhHMyEWTAbimE8LIGFEIClsAxyYTmsgJVQAZWQB6tgMRyCw1ALEyAfjsBROAbHoQQKoBTmQxksgHKYCKuhCtbAPtgPhXAADsIcmAvzYBJMhilwCV7CVbgMV+AmXIMGuA434C7cgttwBx7BPbgPD+AhPIYn8AKewjN4zieqf+d38AreQBO8h0b4RJ++Hr6wUvI9zdw5NnBAGISDXUp8Vktpo0VZjUV5kWmOAbcE/FYtUGFq8RApwTqrFvxraongkZDdqoWKTS1JmprNKkqav1nBT5dS/wGEh5FjCmVuZHN0cmVhbQplbmRvYmoKc3RhcnR4cmVmCjU1ODIyCiUlRU9GCg==</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>
