-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDynamicFieldSegesTextArray-1.0.0.opm
More file actions
50 lines (47 loc) · 80.3 KB
/
DynamicFieldSegesTextArray-1.0.0.opm
File metadata and controls
50 lines (47 loc) · 80.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?xml version="1.0" encoding="utf-8" ?>
<otrs_package version="1.1">
<Name>DynamicFieldSegesTextArray</Name>
<Version>1.0.0</Version>
<Vendor>Seges</Vendor>
<URL>http://www.camara.leg.br/</URL>
<License>GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007</License>
<ChangeLog Date="2016-08-22 16:12:00" Version="1.0.0">First version.</ChangeLog>
<Description Lang="en">DynamicField backend to provide text array for OTRS</Description>
<Framework>4.0.x</Framework>
<IntroInstall Lang="en" Title="Install Information" Type="pre">You are about to install DynamicFieldSegesTextArray for OTRS.</IntroInstall>
<IntroInstall Lang="en" Title="Install Information" Type="post">The package has been installed.</IntroInstall>
<IntroUninstall Lang="en" Title="Uninstall Information" Type="pre">You are about to UNINSTALL DynamicFieldSegesTextArray for OTRS.</IntroUninstall>
<IntroUninstall Lang="en" Title="Uninstall Information" Type="post">The package has been uninstalled.</IntroUninstall>
<IntroUpgrade Lang="en" Title="Upgrade Information" Type="pre">You are about to upgrade DynamicFieldSegesTextArray for OTRS.</IntroUpgrade>
<IntroUpgrade Lang="en" Title="Upgrade Information" Type="post">The package has been upgraded.</IntroUpgrade>
<CodeInstall Type="post">
$Kernel::OM->Get('var::packagesetup::DynamicFieldRemoteDB')->CodeInstall();
</CodeInstall>
<CodeUpgrade Type="post">
$Kernel::OM->Get('var::packagesetup::DynamicFieldRemoteDB')->CodeUpgrade();
</CodeUpgrade>
<CodeUninstall Type="pre">
$Kernel::OM->Get('var::packagesetup::DynamicFieldRemoteDB')->CodeUninstall();
</CodeUninstall>
<CodeReinstall Type="post">
$Kernel::OM->Get('var::packagesetup::DynamicFieldRemoteDB')->CodeReinstall();
</CodeReinstall>
<BuildDate>2016-08-29 16:09:32</BuildDate>
<BuildHost>yourhost.example.com</BuildHost>
<Filelist>
<File Location="Kernel/Config/Files/DynamicFieldSegesTextArray.xml" Permission="664" Encode="Base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPG90cnNfY29uZmlnIHZlcnNpb249IjEuMCIgaW5pdD0iQXBwbGljYXRpb24iPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FkbWluRHluYW1pY0ZpZWxkU2VnZXNUZXh0QXJyYXkiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5EeW5hbWljRmllbGRzPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFkbWluOjpNb2R1bGVSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8RnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgICAgICAgICA8R3JvdXA+YWRtaW48L0dyb3VwPgogICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uPkFkbWluPC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgIDxUaXRsZSBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgRmllbGRzIFNlZ2VzVGV4dEFycmF5IEJhY2tlbmQgR1VJPC9UaXRsZT4KICAgICAgICAgICAgICAgIDxMb2FkZXI+CiAgICAgICAgICAgICAgICAgICAgPEphdmFTY3JpcHQ+Q29yZS5BZ2VudC5BZG1pbi5EeW5hbWljRmllbGQuanM8L0phdmFTY3JpcHQ+CiAgICAgICAgICAgICAgICA8L0xvYWRlcj4KICAgICAgICAgICAgPC9Gcm9udGVuZE1vZHVsZVJlZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRHluYW1pY0ZpZWxkczo6RHJpdmVyIyMjU2VnZXNUZXh0QXJyYXkiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pY0ZpZWxkIGJhY2tlbmQgcmVnaXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkR5bmFtaWNGaWVsZHM8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5EeW5hbWljRmllbGRzOjpEcml2ZXI6OlJlZ2lzdHJhdGlvbjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEaXNwbGF5TmFtZSI+U2VnZXNUZXh0QXJyYXk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjpTZWdlc1RleHRBcnJheTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ29uZmlnRGlhbG9nIj5BZG1pbkR5bmFtaWNGaWVsZFNlZ2VzVGV4dEFycmF5PC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgoKPC9vdHJzX2NvbmZpZz4K</File>
<File Location="Kernel/Modules/AdminDynamicFieldSegesTextArray.pm" Permission="664" Encode="Base64">IyAtLQojIEtlcm5lbC9Nb2R1bGVzL0FkbWluRHluYW1pY0ZpZWxkU2VnZXNUZXh0QXJyYXkucG0gLSBCYXNlZCBvbiBBZG1pbkR5bmFtaWNGaWVsZFRleHQucG0gLSBwcm92aWRlcyBhIGR5bmFtaWMgZmllbGRzIFNlZ2VzVGV4dEFycmF5IGNvbmZpZyB2aWV3IGZvciBhZG1pbnMKIyBDb3B5cmlnaHQgKEMpIDIwMTYgc2FtdWVsZGMsIGh0dHA6Ly93d3cuY2FtYXJhLmxlZy5icg0KIw0KIyB3cml0dGVuL2VkaXRlZCBieToNCiMgKiBuZWRtYWooYXQpeWFob28oZG90KWNvbQ0KIw0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQ0KIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91DQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuDQojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWRtaW5EeW5hbWljRmllbGRTZWdlc1RleHRBcnJheTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcsCiAgICAnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNyZWF0ZSBhZGRpdGlvbmFsIG9iamVjdHMKICAgICRTZWxmLT57Q29uZmlnT2JqZWN0fSAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgJFNlbGYtPntMb2dPYmplY3R9ICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKTsKICAgICRTZWxmLT57UGFyYW1PYmplY3R9ICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgICRTZWxmLT57VmFsaWRPYmplY3R9ICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKTsKICAgICRTZWxmLT57RHluYW1pY0ZpZWxkT2JqZWN0fSAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyk7CiAgICAkU2VsZi0+e0xheW91dE9iamVjdH0gID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgZ2V0IGNvbmZpZ3VyZWQgb2JqZWN0IHR5cGVzCiAgICAkU2VsZi0+e09iamVjdFR5cGVDb25maWd9ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0R5bmFtaWNGaWVsZHM6Ok9iamVjdFR5cGUnKTsKCiAgICAjIGdldCB0aGUgZmllbGRzIGNvbmZpZwogICAgJFNlbGYtPntGaWVsZFR5cGVDb25maWd9ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0R5bmFtaWNGaWVsZHM6OkRyaXZlcicpIHx8IHt9OwoKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBZGQnICkgewogICAgICAgIHJldHVybiAkU2VsZi0+X0FkZCgKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICk7CiAgICB9CiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkQWN0aW9uJyApIHsKCiAgICAgICAgIyBjaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbgogICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICByZXR1cm4gJFNlbGYtPl9BZGRBY3Rpb24oCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICApOwogICAgfQogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0NoYW5nZScgKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT5fQ2hhbmdlKAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdDaGFuZ2VBY3Rpb24nICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIHJldHVybiAkU2VsZi0+X0NoYW5nZUFjdGlvbigKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICk7CiAgICB9CiAgICByZXR1cm4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5FcnJvclNjcmVlbigKICAgICAgICBNZXNzYWdlID0+ICJVbmRlZmluZWQgc3ViYWN0aW9uLiIsCiAgICApOwp9CgpzdWIgX0FkZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVHZXRQYXJhbTsKICAgIGZvciBteSAkTmVlZGVkIChxdyhPYmplY3RUeXBlIEZpZWxkVHlwZSBGaWVsZE9yZGVyKSkgewogICAgICAgICRHZXRQYXJhbXskTmVlZGVkfSA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJE5lZWRlZCApOwogICAgICAgIGlmICggISRHZXRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJOZWVkICROZWVkZWQiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCB0aGUgb2JqZWN0IHR5cGUgYW5kIGZpZWxkIHR5cGUgZGlzcGxheSBuYW1lCiAgICBteSAkT2JqZWN0VHlwZU5hbWUgPSAkU2VsZi0+e09iamVjdFR5cGVDb25maWd9LT57ICRHZXRQYXJhbXtPYmplY3RUeXBlfSB9LT57RGlzcGxheU5hbWV9IHx8ICcnOwogICAgbXkgJEZpZWxkVHlwZU5hbWUgID0gJFNlbGYtPntGaWVsZFR5cGVDb25maWd9LT57ICRHZXRQYXJhbXtGaWVsZFR5cGV9IH0tPntEaXNwbGF5TmFtZX0gICB8fCAnJzsKCiAgICByZXR1cm4gJFNlbGYtPl9TaG93U2NyZWVuKAogICAgICAgICVQYXJhbSwKICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgTW9kZSAgICAgICAgICAgPT4gJ0FkZCcsCiAgICAgICAgT2JqZWN0VHlwZU5hbWUgPT4gJE9iamVjdFR5cGVOYW1lLAogICAgICAgIEZpZWxkVHlwZU5hbWUgID0+ICRGaWVsZFR5cGVOYW1lLAogICAgKTsKfQoKc3ViIF9BZGRBY3Rpb24gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlRXJyb3JzOwogICAgbXkgJUdldFBhcmFtOwoKICAgIGZvciBteSAkTmVlZGVkICgKICAgICAgICBxdyhOYW1lIExhYmVsIEZpZWxkT3JkZXIgTWF4QXJyYXlTaXplKQogICAgICAgICkKICAgIHsKICAgICAgICAkR2V0UGFyYW17JE5lZWRlZH0gPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICROZWVkZWQgKTsKICAgICAgICBpZiAoICEkR2V0UGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRFcnJvcnN7ICROZWVkZWQgLiAnU2VydmVyRXJyb3InIH0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3sgJE5lZWRlZCAuICdTZXJ2ZXJFcnJvck1lc3NhZ2UnIH0gPSAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICRHZXRQYXJhbXtOYW1lfSApIHsKCiAgICAgICAgIyBjaGVjayBpZiBuYW1lIGlzIGFscGhhbnVtZXJpYwogICAgICAgIGlmICggJEdldFBhcmFte05hbWV9ICF+IG17XEEgKD86IFthLXpBLVpdIHwgXGQgKSsgXHp9eG1zICkgewoKICAgICAgICAgICAgIyBhZGQgc2VydmVyIGVycm9yIGVycm9yIGNsYXNzCiAgICAgICAgICAgICRFcnJvcnN7TmFtZVNlcnZlckVycm9yfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7TmFtZVNlcnZlckVycm9yTWVzc2FnZX0gPQogICAgICAgICAgICAgICAgJ1RoZSBmaWVsZCBkb2VzIG5vdCBjb250YWluIG9ubHkgQVNDSUkgbGV0dGVycyBhbmQgbnVtYmVycy4nOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBpZiBuYW1lIGlzIGR1cGxpY2F0ZWQKICAgICAgICBteSAlRHluYW1pY0ZpZWxkc0xpc3QgPSAlewogICAgICAgICAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZE9iamVjdH0tPkR5bmFtaWNGaWVsZExpc3QoCiAgICAgICAgICAgICAgICBWYWxpZCAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBSZXN1bHRUeXBlID0+ICdIQVNIJywKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfTsKCiAgICAgICAgJUR5bmFtaWNGaWVsZHNMaXN0ID0gcmV2ZXJzZSAlRHluYW1pY0ZpZWxkc0xpc3Q7CgogICAgICAgIGlmICggJER5bmFtaWNGaWVsZHNMaXN0eyAkR2V0UGFyYW17TmFtZX0gfSApIHsKCiAgICAgICAgICAgICMgYWRkIHNlcnZlciBlcnJvciBlcnJvciBjbGFzcwogICAgICAgICAgICAkRXJyb3Jze05hbWVTZXJ2ZXJFcnJvcn0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3tOYW1lU2VydmVyRXJyb3JNZXNzYWdlfSA9ICdUaGVyZSBpcyBhbm90aGVyIGZpZWxkIHdpdGggdGhlIHNhbWUgbmFtZS4nOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICRHZXRQYXJhbXtGaWVsZE9yZGVyfSApIHsKCiAgICAgICAgIyBjaGVjayBpZiBmaWVsZCBvcmRlciBpcyBudW1lcmljIGFuZCBwb3NpdGl2ZQogICAgICAgIGlmICggJEdldFBhcmFte0ZpZWxkT3JkZXJ9ICF+IG17XEEgKD86IFxkICkrIFx6fXhtcyApIHsKCiAgICAgICAgICAgICMgYWRkIHNlcnZlciBlcnJvciBlcnJvciBjbGFzcwogICAgICAgICAgICAkRXJyb3Jze0ZpZWxkT3JkZXJTZXJ2ZXJFcnJvcn0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3tGaWVsZE9yZGVyU2VydmVyRXJyb3JNZXNzYWdlfSA9ICdUaGUgZmllbGQgbXVzdCBiZSBudW1lcmljLic7CiAgICAgICAgfQogICAgfQoKICAgIGZvciBteSAkQ29uZmlnUGFyYW0gKAogICAgICAgIHF3KAogICAgICAgICAgICBPYmplY3RUeXBlIE9iamVjdFR5cGVOYW1lIEZpZWxkVHlwZSBGaWVsZFR5cGVOYW1lIFZhbGlkSUQKICAgICAgICAgICAgKQogICAgICAgICkKICAgIHsKICAgICAgICAkR2V0UGFyYW17JENvbmZpZ1BhcmFtfSA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJENvbmZpZ1BhcmFtLCApOwogICAgfQoKICAgIGZvciBteSAkQ29uZmlnUGFyYW0gKHF3KEl0ZW1TZXBhcmF0b3IpKSB7CiAgICAgICAgJEdldFBhcmFteyRDb25maWdQYXJhbX0KICAgICAgICAgICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICRDb25maWdQYXJhbSwgUmF3ID0+IDEsICk7CiAgICB9CgogICAgIyBzZXQgc3BlY2lmaWMgY29uZmlnCiAgICBteSAkRmllbGRDb25maWc7CiAgICAkRmllbGRDb25maWctPntNYXhBcnJheVNpemV9ICAgICAgICA9ICRHZXRQYXJhbXtNYXhBcnJheVNpemV9OwogICAgJEZpZWxkQ29uZmlnLT57SXRlbVNlcGFyYXRvcn0gICAgICAgPSAkR2V0UGFyYW17SXRlbVNlcGFyYXRvcn0gICAgICAgfHwgJywgJzsKCiAgICAjIGNoZWNrIGlmIGZpZWxkcyBhcmUgbnVtZXJpYyBhbmQgcG9zaXRpdmUKICAgIGZvciBteSAkTnVtZXJpYyAoCiAgICAgICAgcXcoTWF4QXJyYXlTaXplKQogICAgICAgICkKICAgIHsKICAgICAgICBpZiAoICRGaWVsZENvbmZpZy0+eyROdW1lcmljfSAhfiBte1xBICg/OiBcZCApKyBcen14bXMgKSB7CgogICAgICAgICAgICAjIGFkZCBzZXJ2ZXIgZXJyb3IgZXJyb3IgY2xhc3MKICAgICAgICAgICAgJEVycm9yc3skTnVtZXJpYyAuICdTZXJ2ZXJFcnJvcid9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7JE51bWVyaWMgLiAnU2VydmVyRXJyb3JNZXNzYWdlJ30gPSAnVGhlIGZpZWxkIG11c3QgYmUgbnVtZXJpYy4nOwoKICAgICAgICB9CiAgICB9CgogICAgIyB1bmNvcnJlY3RhYmxlIGVycm9ycwogICAgaWYgKCAhJEdldFBhcmFte1ZhbGlkSUR9ICkgewogICAgICAgIHJldHVybiAkU2VsZi0+e0xheW91dE9iamVjdH0tPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+ICJOZWVkIFZhbGlkSUQiLAogICAgICAgICk7CiAgICB9CgogICAgIyByZXR1cm4gdG8gYWRkIHNjcmVlbiBpZiBlcnJvcnMKICAgIGlmICglRXJyb3JzKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT5fU2hvd1NjcmVlbigKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAlRXJyb3JzLAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgIE1vZGUgPT4gJ0FkZCcsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNyZWF0ZSBhIG5ldyBmaWVsZAogICAgbXkgJEZpZWxkSUQgPSAkU2VsZi0+e0R5bmFtaWNGaWVsZE9iamVjdH0tPkR5bmFtaWNGaWVsZEFkZCgKICAgICAgICBOYW1lICAgICAgID0+ICRHZXRQYXJhbXtOYW1lfSwKICAgICAgICBMYWJlbCAgICAgID0+ICRHZXRQYXJhbXtMYWJlbH0sCiAgICAgICAgRmllbGRPcmRlciA9PiAkR2V0UGFyYW17RmllbGRPcmRlcn0sCiAgICAgICAgRmllbGRUeXBlICA9PiAkR2V0UGFyYW17RmllbGRUeXBlfSwKICAgICAgICBPYmplY3RUeXBlID0+ICRHZXRQYXJhbXtPYmplY3RUeXBlfSwKICAgICAgICBDb25maWcgICAgID0+ICRGaWVsZENvbmZpZywKICAgICAgICBWYWxpZElEICAgID0+ICRHZXRQYXJhbXtWYWxpZElEfSwKICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgaWYgKCAhJEZpZWxkSUQgKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gIkNvdWxkIG5vdCBjcmVhdGUgdGhlIG5ldyBmaWVsZCIsCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5SZWRpcmVjdCgKICAgICAgICBPUCA9PiAiQWN0aW9uPUFkbWluRHluYW1pY0ZpZWxkIiwKICAgICk7Cn0KCnN1YiBfQ2hhbmdlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJUdldFBhcmFtOwogICAgZm9yIG15ICROZWVkZWQgKHF3KE9iamVjdFR5cGUgRmllbGRUeXBlKSkgewogICAgICAgICRHZXRQYXJhbXskTmVlZGVkfSA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJE5lZWRlZCApOwogICAgICAgIGlmICggISRHZXRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJOZWVkICROZWVkZWQiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCB0aGUgb2JqZWN0IHR5cGUgYW5kIGZpZWxkIHR5cGUgZGlzcGxheSBuYW1lCiAgICBteSAkT2JqZWN0VHlwZU5hbWUgPSAkU2VsZi0+e09iamVjdFR5cGVDb25maWd9LT57ICRHZXRQYXJhbXtPYmplY3RUeXBlfSB9LT57RGlzcGxheU5hbWV9IHx8ICcnOwogICAgbXkgJEZpZWxkVHlwZU5hbWUgID0gJFNlbGYtPntGaWVsZFR5cGVDb25maWd9LT57ICRHZXRQYXJhbXtGaWVsZFR5cGV9IH0tPntEaXNwbGF5TmFtZX0gICB8fCAnJzsKCiAgICBteSAkRmllbGRJRCA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0lEJyApOwoKICAgIGlmICggISRGaWVsZElEICkgewogICAgICAgIHJldHVybiAkU2VsZi0+e0xheW91dE9iamVjdH0tPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+ICJOZWVkIElEIiwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgZGF0YQogICAgbXkgJER5bmFtaWNGaWVsZERhdGEgPSAkU2VsZi0+e0R5bmFtaWNGaWVsZE9iamVjdH0tPkR5bmFtaWNGaWVsZEdldCgKICAgICAgICBJRCA9PiAkRmllbGRJRCwKICAgICk7CgogICAgIyBjaGVjayBmb3IgdmFsaWQgZHluYW1pYyBmaWVsZCBjb25maWd1cmF0aW9uCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkRGF0YSkgKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gIkNvdWxkIG5vdCBnZXQgZGF0YSBmb3IgZHluYW1pYyBmaWVsZCAkRmllbGRJRCIsCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAlQ29uZmlnID0gKCk7CgogICAgIyBleHRyYWN0IGNvbmZpZ3VyYXRpb24KICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICREeW5hbWljRmllbGREYXRhLT57Q29uZmlnfSApICkgewogICAgICAgICVDb25maWcgPSAleyAkRHluYW1pY0ZpZWxkRGF0YS0+e0NvbmZpZ30gfTsKICAgIH0KCiAgICByZXR1cm4gJFNlbGYtPl9TaG93U2NyZWVuKAogICAgICAgICVQYXJhbSwKICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgJSR7RHluYW1pY0ZpZWxkRGF0YX0sCiAgICAgICAgJUNvbmZpZywKICAgICAgICBJRCAgICAgICAgICAgICA9PiAkRmllbGRJRCwKICAgICAgICBNb2RlICAgICAgICAgICA9PiAnQ2hhbmdlJywKICAgICAgICBPYmplY3RUeXBlTmFtZSA9PiAkT2JqZWN0VHlwZU5hbWUsCiAgICAgICAgRmllbGRUeXBlTmFtZSAgPT4gJEZpZWxkVHlwZU5hbWUsCiAgICApOwp9CgpzdWIgX0NoYW5nZUFjdGlvbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVFcnJvcnM7CiAgICBteSAlR2V0UGFyYW07CgogICAgZm9yIG15ICROZWVkZWQgKAogICAgICAgIHF3KE5hbWUgTGFiZWwgRmllbGRPcmRlciBNYXhBcnJheVNpemUpCiAgICAgICAgKQogICAgewogICAgICAgICRHZXRQYXJhbXskTmVlZGVkfSA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJE5lZWRlZCApOwogICAgICAgIGlmICggISRHZXRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEVycm9yc3sgJE5lZWRlZCAuICdTZXJ2ZXJFcnJvcicgfSAgICAgICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3JzeyAkTmVlZGVkIC4gJ1NlcnZlckVycm9yTWVzc2FnZScgfSA9ICdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLic7CiAgICAgICAgfQogICAgfQoKICAgIG15ICRGaWVsZElEID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAnSUQnICk7CiAgICBpZiAoICEkRmllbGRJRCApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiAiTmVlZCBJRCIsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIGRhdGEKICAgIG15ICREeW5hbWljRmllbGREYXRhID0gJFNlbGYtPntEeW5hbWljRmllbGRPYmplY3R9LT5EeW5hbWljRmllbGRHZXQoCiAgICAgICAgSUQgPT4gJEZpZWxkSUQsCiAgICApOwoKICAgICMgY2hlY2sgZm9yIHZhbGlkIGR5bmFtaWMgZmllbGQgY29uZmlndXJhdGlvbgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZERhdGEpICkgewogICAgICAgIHJldHVybiAkU2VsZi0+e0xheW91dE9iamVjdH0tPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+ICJDb3VsZCBub3QgZ2V0IGRhdGEgZm9yIGR5bmFtaWMgZmllbGQgJEZpZWxkSUQiLAogICAgICAgICk7CiAgICB9CgogICAgaWYgKCAkR2V0UGFyYW17TmFtZX0gKSB7CgogICAgICAgICMgY2hlY2sgaWYgbmFtZSBpcyBsb3dlcmNhc2UKICAgICAgICBpZiAoICRHZXRQYXJhbXtOYW1lfSAhfiBte1xBICg/OiBbYS16QS1aXSB8IFxkICkrIFx6fXhtcyApIHsKCiAgICAgICAgICAgICMgYWRkIHNlcnZlciBlcnJvciBlcnJvciBjbGFzcwogICAgICAgICAgICAkRXJyb3Jze05hbWVTZXJ2ZXJFcnJvcn0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3Jze05hbWVTZXJ2ZXJFcnJvck1lc3NhZ2V9ID0KICAgICAgICAgICAgICAgICdUaGUgZmllbGQgZG9lcyBub3QgY29udGFpbiBvbmx5IEFTQ0lJIGxldHRlcnMgYW5kIG51bWJlcnMuJzsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgaWYgbmFtZSBpcyBkdXBsaWNhdGVkCiAgICAgICAgbXkgJUR5bmFtaWNGaWVsZHNMaXN0ID0gJXsKICAgICAgICAgICAgJFNlbGYtPntEeW5hbWljRmllbGRPYmplY3R9LT5EeW5hbWljRmllbGRMaXN0KAogICAgICAgICAgICAgICAgVmFsaWQgICAgICA9PiAwLAogICAgICAgICAgICAgICAgUmVzdWx0VHlwZSA9PiAnSEFTSCcsCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH07CgogICAgICAgICVEeW5hbWljRmllbGRzTGlzdCA9IHJldmVyc2UgJUR5bmFtaWNGaWVsZHNMaXN0OwoKICAgICAgICBpZiAoCiAgICAgICAgICAgICREeW5hbWljRmllbGRzTGlzdHsgJEdldFBhcmFte05hbWV9IH0gJiYKICAgICAgICAgICAgJER5bmFtaWNGaWVsZHNMaXN0eyAkR2V0UGFyYW17TmFtZX0gfSBuZSAkRmllbGRJRAogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgIyBhZGQgc2VydmVyIGVycm9yIGNsYXNzCiAgICAgICAgICAgICRFcnJvcnN7TmFtZVNlcnZlckVycm9yfSAgICAgICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3Jze05hbWVTZXJ2ZXJFcnJvck1lc3NhZ2V9ID0gJ1RoZXJlIGlzIGFub3RoZXIgZmllbGQgd2l0aCB0aGUgc2FtZSBuYW1lLic7CiAgICAgICAgfQoKICAgICAgICAjIGlmIGl0J3MgYW4gaW50ZXJuYWwgZmllbGQsIGl0J3MgbmFtZSBzaG91bGQgbm90IGNoYW5nZQogICAgICAgIGlmICgKICAgICAgICAgICAgJER5bmFtaWNGaWVsZERhdGEtPntJbnRlcm5hbEZpZWxkfSAmJgogICAgICAgICAgICAkRHluYW1pY0ZpZWxkc0xpc3R7ICRHZXRQYXJhbXtOYW1lfSB9IG5lICRGaWVsZElECiAgICAgICAgICAgICkKICAgICAgICB7CgogICAgICAgICAgICAjIGFkZCBzZXJ2ZXIgZXJyb3IgY2xhc3MKICAgICAgICAgICAgJEVycm9yc3tOYW1lU2VydmVyRXJyb3J9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7TmFtZVNlcnZlckVycm9yTWVzc2FnZX0gPSAnVGhlIG5hbWUgZm9yIHRoaXMgZmllbGQgc2hvdWxkIG5vdCBjaGFuZ2UuJzsKICAgICAgICAgICAgJFBhcmFte0ludGVybmFsRmllbGR9ICAgICAgICAgICA9ICREeW5hbWljRmllbGREYXRhLT57SW50ZXJuYWxGaWVsZH07CiAgICAgICAgfQogICAgfQoKICAgIGlmICggJEdldFBhcmFte0ZpZWxkT3JkZXJ9ICkgewoKICAgICAgICAjIGNoZWNrIGlmIGZpZWxkIG9yZGVyIGlzIG51bWVyaWMgYW5kIHBvc2l0aXZlCiAgICAgICAgaWYgKCAkR2V0UGFyYW17RmllbGRPcmRlcn0gIX4gbXtcQSAoPzogXGQgKSsgXHp9eG1zICkgewoKICAgICAgICAgICAgIyBhZGQgc2VydmVyIGVycm9yIGVycm9yIGNsYXNzCiAgICAgICAgICAgICRFcnJvcnN7RmllbGRPcmRlclNlcnZlckVycm9yfSAgICAgICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3Jze0ZpZWxkT3JkZXJTZXJ2ZXJFcnJvck1lc3NhZ2V9ID0gJ1RoZSBmaWVsZCBtdXN0IGJlIG51bWVyaWMuJzsKICAgICAgICB9CiAgICB9CgogICAgZm9yIG15ICRDb25maWdQYXJhbSAoCiAgICAgICAgcXcoCiAgICAgICAgICAgIE9iamVjdFR5cGUgT2JqZWN0VHlwZU5hbWUgRmllbGRUeXBlIEZpZWxkVHlwZU5hbWUgVmFsaWRJRAogICAgICAgICAgICApCiAgICAgICAgKQogICAgewogICAgICAgICRHZXRQYXJhbXskQ29uZmlnUGFyYW19ID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAkQ29uZmlnUGFyYW0sICk7CiAgICB9CgogICAgZm9yIG15ICRDb25maWdQYXJhbSAocXcoSXRlbVNlcGFyYXRvcikpIHsKICAgICAgICAkR2V0UGFyYW17JENvbmZpZ1BhcmFtfQogICAgICAgICAgICA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJENvbmZpZ1BhcmFtLCBSYXcgPT4gMSwgKTsKICAgIH0KCiAgICAjIHNldCBzcGVjaWZpYyBjb25maWcKICAgIG15ICRGaWVsZENvbmZpZzsKICAgICRGaWVsZENvbmZpZy0+e01heEFycmF5U2l6ZX0gICAgICAgID0gJEdldFBhcmFte01heEFycmF5U2l6ZX07CiAgICAkRmllbGRDb25maWctPntJdGVtU2VwYXJhdG9yfSAgICAgICA9ICRHZXRQYXJhbXtJdGVtU2VwYXJhdG9yfSAgICAgICB8fCAnLCAnOwoKICAgICMgY2hlY2sgaWYgZmllbGRzIGFyZSBudW1lcmljIGFuZCBwb3NpdGl2ZQogICAgZm9yIG15ICROdW1lcmljICgKICAgICAgICBxdyhNYXhBcnJheVNpemUpCiAgICAgICAgKQogICAgewogICAgICAgIGlmICggJEZpZWxkQ29uZmlnLT57JE51bWVyaWN9ICF+IG17XEEgKD86IFxkICkrIFx6fXhtcyApIHsKCiAgICAgICAgICAgICMgYWRkIHNlcnZlciBlcnJvciBlcnJvciBjbGFzcwogICAgICAgICAgICAkRXJyb3JzeyROdW1lcmljIC4gJ1NlcnZlckVycm9yJ30gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3skTnVtZXJpYyAuICdTZXJ2ZXJFcnJvck1lc3NhZ2UnfSA9ICdUaGUgZmllbGQgbXVzdCBiZSBudW1lcmljLic7CgogICAgICAgIH0KICAgIH0KCiAgICAjIHVuY29ycmVjdGFibGUgZXJyb3JzCiAgICBpZiAoICEkR2V0UGFyYW17VmFsaWRJRH0gKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gIk5lZWQgVmFsaWRJRCIsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHJldHVybiB0byBjaGFuZ2Ugc2NyZWVuIGlmIGVycm9ycwogICAgaWYgKCVFcnJvcnMpIHsKICAgICAgICByZXR1cm4gJFNlbGYtPl9TaG93U2NyZWVuKAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICVFcnJvcnMsCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgSUQgICA9PiAkRmllbGRJRCwKICAgICAgICAgICAgTW9kZSA9PiAnQ2hhbmdlJywKICAgICAgICApOwogICAgfQoKICAgICMgdXBkYXRlIGR5bmFtaWMgZmllbGQgKEZpZWxkVHlwZSBhbmQgT2JqZWN0VHlwZSBjYW5ub3QgYmUgY2hhbmdlZDsgdXNlIG9sZCB2YWx1ZXMpCiAgICBteSAkVXBkYXRlU3VjY2VzcyA9ICRTZWxmLT57RHluYW1pY0ZpZWxkT2JqZWN0fS0+RHluYW1pY0ZpZWxkVXBkYXRlKAogICAgICAgIElEICAgICAgICAgPT4gJEZpZWxkSUQsCiAgICAgICAgTmFtZSAgICAgICA9PiAkR2V0UGFyYW17TmFtZX0sCiAgICAgICAgTGFiZWwgICAgICA9PiAkR2V0UGFyYW17TGFiZWx9LAogICAgICAgIEZpZWxkT3JkZXIgPT4gJEdldFBhcmFte0ZpZWxkT3JkZXJ9LAogICAgICAgIEZpZWxkVHlwZSAgPT4gJER5bmFtaWNGaWVsZERhdGEtPntGaWVsZFR5cGV9LAogICAgICAgIE9iamVjdFR5cGUgPT4gJER5bmFtaWNGaWVsZERhdGEtPntPYmplY3RUeXBlfSwKICAgICAgICBDb25maWcgICAgID0+ICRGaWVsZENvbmZpZywKICAgICAgICBWYWxpZElEICAgID0+ICRHZXRQYXJhbXtWYWxpZElEfSwKICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgaWYgKCAhJFVwZGF0ZVN1Y2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gIkNvdWxkIG5vdCB1cGRhdGUgdGhlIGZpZWxkICRHZXRQYXJhbXtOYW1lfSIsCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5SZWRpcmVjdCgKICAgICAgICBPUCA9PiAiQWN0aW9uPUFkbWluRHluYW1pY0ZpZWxkIiwKICAgICk7Cn0KCnN1YiBfU2hvd1NjcmVlbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRQYXJhbXtEaXNwbGF5RmllbGROYW1lfSA9ICdOZXcnOwoKICAgIGlmICggJFBhcmFte01vZGV9IGVxICdDaGFuZ2UnICkgewogICAgICAgICRQYXJhbXtTaG93V2FybmluZ30gICAgICA9ICdTaG93V2FybmluZyc7CiAgICAgICAgJFBhcmFte0Rpc3BsYXlGaWVsZE5hbWV9ID0gJFBhcmFte05hbWV9OwogICAgfQogICAgJFBhcmFte01heEFycmF5U2l6ZX0gICAgICAgID0gJFBhcmFte01heEFycmF5U2l6ZX0gICAgICAgIHx8ICc1JzsKICAgICRQYXJhbXtJdGVtU2VwYXJhdG9yfSAgICAgICA9ICRQYXJhbXtJdGVtU2VwYXJhdG9yfSAgICAgICB8fCAnLCAnOwoKICAgICMgaGVhZGVyCiAgICBteSAkT3V0cHV0ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5IZWFkZXIoKTsKICAgICRPdXRwdXQgLj0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5OYXZpZ2F0aW9uQmFyKCk7CgogICAgIyBnZXQgYWxsIGZpZWxkcwogICAgbXkgJER5bmFtaWNGaWVsZExpc3QgPSAkU2VsZi0+e0R5bmFtaWNGaWVsZE9iamVjdH0tPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgVmFsaWQgPT4gMCwKICAgICk7CgogICAgIyBnZXQgdGhlIGxpc3Qgb2Ygb3JkZXIgbnVtYmVycyAoaXMgYWxyZWFkeSBzb3J0ZWQpLgogICAgbXkgQER5bmFtaWNmaWVsZE9yZGVyTGlzdDsKICAgIGZvciBteSAkRHluYW1pY2ZpZWxkICggQHskRHluYW1pY0ZpZWxkTGlzdH0gKSB7CiAgICAgICAgcHVzaCBARHluYW1pY2ZpZWxkT3JkZXJMaXN0LCAkRHluYW1pY2ZpZWxkLT57RmllbGRPcmRlcn07CiAgICB9CgogICAgIyB3aGVuIGFkZGluZyB3ZSBuZWVkIHRvIGNyZWF0ZSBhbiBleHRyYSBvcmRlciBudW1iZXIgZm9yIHRoZSBuZXcgZmllbGQKICAgIGlmICggJFBhcmFte01vZGV9IGVxICdBZGQnICkgewoKICAgICAgICAjIGdldCB0aGUgbGFzdCBlbGVtZW50IGZvcm0gdGhlIG9yZGVyIGxpc3QgYW5kIGFkZCAxCiAgICAgICAgbXkgJExhc3RPcmRlck51bWJlciA9ICREeW5hbWljZmllbGRPcmRlckxpc3RbLTFdOwogICAgICAgICRMYXN0T3JkZXJOdW1iZXIrKzsKCiAgICAgICAgIyBhZGQgdGhpcyBuZXcgb3JkZXIgbnVtYmVyIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QKICAgICAgICBwdXNoIEBEeW5hbWljZmllbGRPcmRlckxpc3QsICRMYXN0T3JkZXJOdW1iZXI7CiAgICB9CgogICAgbXkgJER5bmFtaWNGaWVsZE9yZGVyU3RyZyA9ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgICA9PiBcQER5bmFtaWNmaWVsZE9yZGVyTGlzdCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdGaWVsZE9yZGVyJywKICAgICAgICBTZWxlY3RlZFZhbHVlID0+ICRQYXJhbXtGaWVsZE9yZGVyfSB8fCAxLAogICAgICAgIFRyYW5zbGF0aW9uICAgPT4gMCwKICAgICAgICBDbGFzcyAgICAgICAgID0+ICdXNTBwYyBWYWxpZGF0ZV9OdW1iZXInLAogICAgKTsKCiAgICBteSAlVmFsaWRMaXN0ID0gJFNlbGYtPntWYWxpZE9iamVjdH0tPlZhbGlkTGlzdCgpOwoKICAgICMgY3JlYXRlIHRoZSBWYWxpZGl0eSBzZWxlY3QKICAgIG15ICRWYWxpZGl0eVN0cmcgPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVZhbGlkTGlzdCwKICAgICAgICBOYW1lICAgICAgICAgPT4gJ1ZhbGlkSUQnLAogICAgICAgIFNlbGVjdGVkSUQgICA9PiAkUGFyYW17VmFsaWRJRH0gfHwgMSwKICAgICAgICBUcmFuc2xhdGlvbiAgPT4gMSwKICAgICAgICBDbGFzcyAgICAgICAgPT4gJ1c1MHBjJywKICAgICk7CgogICAgbXkgJFJlYWRvbmx5SW50ZXJuYWxGaWVsZCA9ICcnOwoKICAgICMgSW50ZXJuYWwgZmllbGRzIGNhbiBub3QgYmUgZGVsZXRlZCBhbmQgbmFtZSBzaG91bGQgbm90IGNoYW5nZS4KICAgIGlmICggJFBhcmFte0ludGVybmFsRmllbGR9ICkgewogICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0ludGVybmFsRmllbGQnLAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CiAgICAgICAgJFJlYWRvbmx5SW50ZXJuYWxGaWVsZCA9ICdyZWFkb25seT0icmVhZG9ubHkiJzsKICAgIH0KCiAgICAjIGdlbmVyYXRlIG91dHB1dAogICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluRHluYW1pY0ZpZWxkU2VnZXNUZXh0QXJyYXknLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgVmFsaWRpdHlTdHJnICAgICAgICAgICAgPT4gJFZhbGlkaXR5U3RyZywKICAgICAgICAgICAgRHluYW1pY0ZpZWxkT3JkZXJTdHJnICAgPT4gJER5bmFtaWNGaWVsZE9yZGVyU3RyZywKICAgICAgICAgICAgUmVhZG9ubHlJbnRlcm5hbEZpZWxkICAgPT4gJFJlYWRvbmx5SW50ZXJuYWxGaWVsZCwKICAgICAgICB9CiAgICApOwoKICAgICRPdXRwdXQgLj0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Gb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoxOwo=</File>
<File Location="Kernel/Output/HTML/Standard/AdminDynamicFieldSegesTextArray.tt" Permission="664" Encode="Base64">IyAtLQojIEFkbWluRHluYW1pY0ZpZWxkU2VnZXNUZXh0QXJyYXkuZHRsIC0gQmFzZWQgb24gQWRtaW5EeW5hbWljRmllbGRUZXh0LnR0IC0gcHJvdmlkZXMgSFRNTCBmb3JtIGZvciBBZG1pbkR5bmFtaWNGaWVsZHNTZWdlc1RleHRBcnJheQojIENvcHlyaWdodCAoQykgMjAwNi0yMDE2IGMuYS5wLmUuIElUIEdtYkgsIGh0dHA6Ly93d3cuY2FwZS1pdC5kZQojCiMgd3JpdHRlbi9lZGl0ZWQgYnk6CiMgKiBNYXJpbyhkb3QpSWxsaW5nZXIoYXQpY2FwZShkYXNoKWl0KGRvdClkZQojICogU3RlZmFuKGRvdClNZWhsaWcoYXQpY2FwZShkYXNoKWl0KGRvdClkZQojIC0tCiMgJElkOiBBZG1pbkR5bmFtaWNGaWVsZFNlZ2VzVGV4dEFycmF5LmR0bCx2IDEuNiAyMDE0LzAyLzE4IDExOjAzOjM3IHNtZWhsaWcgRXhwICQKIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxPlslIFRyYW5zbGF0ZSgiRHluYW1pYyBGaWVsZHMiKSB8IGh0bWwgJV0gLSBbJSBUcmFuc2xhdGUoRGF0YS5PYmplY3RUeXBlTmFtZSkgfCBodG1sICVdOiBbJSBUcmFuc2xhdGUoRGF0YS5Nb2RlKSB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKERhdGEuRmllbGRUeXBlTmFtZSkgfCBodG1sICVdIFslIFRyYW5zbGF0ZSgiRmllbGQiKSB8IGh0bWwgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWN0aW9ucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9uTGlzdCI+CiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWRtaW5EeW5hbWljRmllbGQiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIGJhY2sgdG8gb3ZlcnZpZXciKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgogICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IkFkbWluRHluYW1pY0ZpZWxkU2VnZXNUZXh0QXJyYXkiIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIERhdGEuTW9kZSB8IGh0bWwgJV1BY3Rpb24iIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik9iamVjdFR5cGUiIHZhbHVlPSJbJSBEYXRhLk9iamVjdFR5cGUgfCBodG1sICVdIiAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJGaWVsZFR5cGUiIHZhbHVlPSJbJSBEYXRhLkZpZWxkVHlwZSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IklEIiB2YWx1ZT0iWyUgRGF0YS5JRCB8IGh0bWwgJV0iIC8+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJHZW5lcmFsIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iTGF5b3V0R3JpZCBDb2x1bW5zV2l0aFNwYWNpbmciPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTaXplMW9mMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iTmFtZSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJOYW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9Ik5hbWUiIGNsYXNzPSJXNTBwYyBbJSBEYXRhLk5hbWVTZXJ2ZXJFcnJvciB8IGh0bWwgJV0gWyUgRGF0YS5TaG93V2FybmluZyB8IGh0bWwgJV0gIFZhbGlkYXRlX0FscGhhbnVtZXJpYyIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIyMDAiIHZhbHVlPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIiBuYW1lPSJOYW1lIiBbJSBEYXRhLlJlYWRvbmx5SW50ZXJuYWxGaWVsZCB8IGh0bWwgJV0gLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTmFtZUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLCBhbmQgdGhlIHZhbHVlIHNob3VsZCBiZSBhbHBoYWJldGljIGFuZCBudW1lcmljIGNoYXJhY3RlcnMgb25seS4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik5hbWVTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZShEYXRhLk5hbWVTZXJ2ZXJFcnJvck1lc3NhZ2UpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPlslIFRyYW5zbGF0ZSgiTXVzdCBiZSB1bmlxdWUgYW5kIG9ubHkgYWNjZXB0IGFscGhhYmV0aWMgYW5kIG51bWVyaWMgY2hhcmFjdGVycy4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJXYXJuaW5nIEhpZGRlbiI+WyUgVHJhbnNsYXRlKCJDaGFuZ2luZyB0aGlzIHZhbHVlIHdpbGwgcmVxdWlyZSBtYW51YWwgY2hhbmdlcyBpbiB0aGUgc3lzdGVtLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IkxhYmVsIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIkxhYmVsIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IkxhYmVsIiBjbGFzcz0iVzUwcGMgWyUgRGF0YS5MYWJlbFNlcnZlckVycm9yIHwgaHRtbCAlXSBWYWxpZGF0ZV9SZXF1aXJlZCIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIyMDAiIHZhbHVlPSJbJSBEYXRhLkxhYmVsIHwgaHRtbCAlXSIgbmFtZT0iTGFiZWwiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTGFiZWxFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkxhYmVsU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoRGF0YS5MYWJlbFNlcnZlckVycm9yTWVzc2FnZSkgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+WyUgVHJhbnNsYXRlKCJUaGlzIGlzIHRoZSBuYW1lIHRvIGJlIHNob3duIG9uIHRoZSBzY3JlZW5zIHdoZXJlIHRoZSBmaWVsZCBpcyBhY3RpdmUuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iRmllbGRPcmRlciI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJGaWVsZCBvcmRlciIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5EeW5hbWljRmllbGRPcmRlclN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRmllbGRPcmRlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIG51bWVyaWMuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJGaWVsZE9yZGVyU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoRGF0YS5GaWVsZE9yZGVyU2VydmVyRXJyb3JNZXNzYWdlKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj5bJSBUcmFuc2xhdGUoIlRoaXMgaXMgdGhlIG9yZGVyIGluIHdoaWNoIHRoaXMgZmllbGQgd2lsbCBiZSBzaG93biBvbiB0aGUgc2NyZWVucyB3aGVyZSBpcyBhY3RpdmUuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTaXplMW9mMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iVmFsaWRJRCI+WyUgVHJhbnNsYXRlKCJWYWxpZGl0eSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5WYWxpZGl0eVN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNwYWNpbmdUb3AiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkZpZWxkVHlwZU5hbWUiPlslIFRyYW5zbGF0ZSgiRmllbGQgdHlwZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJGaWVsZFR5cGVOYW1lIiByZWFkb25seSBjbGFzcz0iVzUwcGMiIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMjAwIiB2YWx1ZT0iWyUgVHJhbnNsYXRlKERhdGEuRmllbGRUeXBlTmFtZSkgfCBodG1sICVdIiBuYW1lPSJGaWVsZFR5cGVOYW1lIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iT2JqZWN0VHlwZU5hbWUiPlslIFRyYW5zbGF0ZSgiT2JqZWN0IHR5cGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iT2JqZWN0VHlwZU5hbWUiIHJlYWRvbmx5IGNsYXNzPSJXNTBwYyIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIyMDAiIHZhbHVlPSJbJSBUcmFuc2xhdGUoRGF0YS5PYmplY3RUeXBlTmFtZSkgfCBodG1sICVdIiBuYW1lPSJPYmplY3RUeXBlTmFtZSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZShEYXRhLkZpZWxkVHlwZU5hbWUpIHwgaHRtbCAlXSBbJSBUcmFuc2xhdGUoIkZpZWxkIFNldHRpbmdzIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iTWF4QXJyYXlTaXplIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIk1heEFycmF5U2l6ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9Ik1heEFycmF5U2l6ZSIgY2xhc3M9IlcyNXBjIFZhbGlkYXRlX1JlcXVpcmVkIFZhbGlkYXRlX051bWJlciBbJSBEYXRhLk1heEFycmF5U2l6ZVNlcnZlckVycm9yIHwgaHRtbCAlXSIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIzIiB2YWx1ZT0iWyUgRGF0YS5NYXhBcnJheVNpemUgfCBodG1sICVdIiBuYW1lPSJNYXhBcnJheVNpemUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTWF4QXJyYXlTaXplRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgbXVzdCBiZSBudW1lcmljLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik1heEFycmF5U2l6ZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKERhdGEuTWF4QXJyYXlTaXplU2VydmVyRXJyb3JNZXNzYWdlKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+WyUgVHJhbnNsYXRlKCJTcGVjaWZ5IHRoZSBtYXhpbXVtIG51bWJlciBvZiBlbnRyaWVzLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ikl0ZW1TZXBhcmF0b3IiPlslIFRyYW5zbGF0ZSgiSXRlbVNlcGFyYXRvciIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9Ikl0ZW1TZXBhcmF0b3IiIGNsYXNzPSJXMjVwYyBbJSBEYXRhLkl0ZW1TZXBhcmF0b3JTZXJ2ZXJFcnJvciB8IGh0bWwgJV0iIHR5cGU9InRleHQiICB2YWx1ZT0iWyUgRGF0YS5JdGVtU2VwYXJhdG9yIHwgaHRtbCAlXSIgbmFtZT0iSXRlbVNlcGFyYXRvciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJJdGVtU2VwYXJhdG9yU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoRGF0YS5JdGVtU2VwYXJhdG9yU2VydmVyRXJyb3JNZXNzYWdlKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+WyUgVHJhbnNsYXRlKCJTcGVjaWZ5IHRoZSBzZXBhcmF0b3Igb2YgZGlzcGxheWVkIHZhbHVlcyBmb3IgdGhpcyBmaWVsZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWRtaW5EeW5hbWljRmllbGQiPlslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgPC9mb3JtPgogICAgPC9kaXY+CjwvZGl2PgpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwokKCcuU2hvd1dhcm5pbmcnKS5iaW5kKCdjaGFuZ2Uga2V5dXAnLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgICQoJ3AuV2FybmluZycpLnJlbW92ZUNsYXNzKCdIaWRkZW4nKTsKfSk7CgpDb3JlLkFnZW50LkFkbWluLkR5bmFtaWNGaWVsZC5WYWxpZGF0aW9uSW5pdCgpOwovL11dPjwvc2NyaXB0PgpbJSBFTkQgJV0K</File>
<File Location="Kernel/System/DynamicField/Driver/BaseSegesTextArray.pm" Permission="664" Encode="Base64">IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9CYXNlU2VnZXNUZXh0QXJyYXkucG0gLSBEeW5hbWljIGZpZWxkIERyaXZlciBmdW5jdGlvbnMKIyBDb3B5cmlnaHQgKEMpIDIwMTYgc2FtdWVsZGMsIGh0dHA6Ly93d3cuY2FtYXJhLmxlZy5icg0KIw0KIyB3cml0dGVuL2VkaXRlZCBieToNCiMgKiBuZWRtYWooYXQpeWFob28oZG90KWNvbQ0KIw0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQ0KIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91DQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuDQojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6QmFzZVNlZ2VzVGV4dEFycmF5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKdXNlIGJhc2UgcXcoS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjpCYXNlKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEQicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZFZhbHVlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpDb2x1bW5GaWx0ZXInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjpCYXNlU2VnZXNUZXh0QXJyYXkgLSBzdWIgbW9kdWxlIG9mCktlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6U2VnZXNUZXh0QXJyYXkKCj1oZWFkMSBTWU5PUFNJUwoKUmVtb3RlREIgY29tbW9uIGZ1bmN0aW9ucy4KCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9b3ZlciA0Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgc2V0IGZpZWxkIGJlaGF2aW9ycwogICAgJFNlbGYtPntCZWhhdmlvcnN9ID0gewogICAgICAgICdJc0FDTFJlZHVjaWJsZScgICAgICAgICAgICAgICA9PiAwLAogICAgICAgICdJc05vdGlmaWNhdGlvbkV2ZW50Q29uZGl0aW9uJyA9PiAxLAogICAgICAgICdJc1NvcnRhYmxlJyAgICAgICAgICAgICAgICAgICA9PiAwLAogICAgICAgICdJc0ZpbHRyYWJsZScgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICdJc1N0YXRzQ29uZGl0aW9uJyAgICAgICAgICAgICA9PiAxLAogICAgICAgICdJc0N1c3RvbWVySW50ZXJmYWNlQ2FwYWJsZScgICA9PiAxLAogICAgfTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBTZWFyY2hTUUxHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlT3BlcmF0b3JzID0gKAogICAgICAgIEVxdWFscyAgICAgICAgICAgID0+ICc9JywKICAgICAgICBHcmVhdGVyVGhhbiAgICAgICA9PiAnPicsCiAgICAgICAgR3JlYXRlclRoYW5FcXVhbHMgPT4gJz49JywKICAgICAgICBTbWFsbGVyVGhhbiAgICAgICA9PiAnPCcsCiAgICAgICAgU21hbGxlclRoYW5FcXVhbHMgPT4gJzw9JywKICAgICk7CgogICAgaWYgKCAkT3BlcmF0b3JzeyAkUGFyYW17T3BlcmF0b3J9IH0gKSB7CiAgICAgICAgbXkgJFNRTCA9ICIgJFBhcmFte1RhYmxlQWxpYXN9LnZhbHVlX3RleHQgJE9wZXJhdG9yc3skUGFyYW17T3BlcmF0b3J9fSAnIjsKICAgICAgICAkU1FMIC49ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5RdW90ZSggJFBhcmFte1NlYXJjaFRlcm19ICkgLiAiJyAiOwogICAgICAgIHJldHVybiAkU1FMOwogICAgfQoKICAgIGlmICggJFBhcmFte09wZXJhdG9yfSBlcSAnTGlrZScgKSB7CgogICAgICAgIG15ICRTUUwgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+UXVlcnlDb25kaXRpb24oCiAgICAgICAgICAgIEtleSAgID0+ICIkUGFyYW17VGFibGVBbGlhc30udmFsdWVfdGV4dCIsCiAgICAgICAgICAgIFZhbHVlID0+ICRQYXJhbXtTZWFyY2hUZXJtfSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJFNRTDsKICAgIH0KCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAnUHJpb3JpdHknID0+ICdlcnJvcicsCiAgICAgICAgJ01lc3NhZ2UnICA9PiAiVW5zdXBwb3J0ZWQgT3BlcmF0b3IgJFBhcmFte09wZXJhdG9yfSIsCiAgICApOwoKICAgIHJldHVybjsKfQoKc3ViIFNlYXJjaFNRTE9yZGVyRmllbGRHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gIiRQYXJhbXtUYWJsZUFsaWFzfS52YWx1ZV90ZXh0IjsKfQoKc3ViIFNlYXJjaEZpZWxkUmVuZGVyIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyB0YWtlIGNvbmZpZyBmcm9tIGZpZWxkIGNvbmZpZwogICAgbXkgJEZpZWxkQ29uZmlnID0gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntDb25maWd9OwogICAgbXkgJEZpZWxkTmFtZSAgID0gJ1NlYXJjaF9EeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX07CiAgICBteSAkRmllbGRMYWJlbCAgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0xhYmVsfTsKCiAgICBteSAkVmFsdWU7CgogICAgbXkgQERlZmF1bHRWYWx1ZTsKCiAgICBpZiAoIGRlZmluZWQgJFBhcmFte0RlZmF1bHRWYWx1ZX0gKSB7CiAgICAgICAgbXkgQERlZmF1bHRWYWx1ZSA9IHNwbGl0IC87LywgJFBhcmFte0RlZmF1bHRWYWx1ZX07CiAgICB9CgogICAgIyBzZXQgdGhlIGZpZWxkIHZhbHVlCiAgICBpZiAoQERlZmF1bHRWYWx1ZSkgewogICAgICAgICRWYWx1ZSA9IFxARGVmYXVsdFZhbHVlOwogICAgfQoKICAgICMgZ2V0IHRoZSBmaWVsZCB2YWx1ZSwgdGhpcyBmdWN0aW9uIGlzIGFsd2F5cyBjYWxsZWQgYWZ0ZXIgdGhlIHByb2ZpbGUgaXMgbG9hZGVkCiAgICBteSAkRmllbGRWYWx1ZXMgPSAkU2VsZi0+U2VhcmNoRmllbGRWYWx1ZUdldCgKICAgICAgICAlUGFyYW0sCiAgICApOwoKICAgIGlmICggZGVmaW5lZCAkRmllbGRWYWx1ZXMgKSB7CiAgICAgICAgJFZhbHVlID0gJEZpZWxkVmFsdWVzOwogICAgfQoKICAgICMgY2hlY2sgYW5kIHNldCBjbGFzcyBpZiBuZWNlc3NhcnkKICAgIG15ICRGaWVsZENsYXNzID0gJ0R5bmFtaWNGaWVsZE11bHRpU2VsZWN0JzsKCiAgICBteSAkU2VsZWN0aW9uRGF0YSA9ICRTZWxmLT5fR2V0UG9zc2libGVWYWx1ZXMoJVBhcmFtKTsKCiAgICAjIGdldCBoaXN0b3JpY2FsIHZhbHVlcyBmcm9tIGRhdGFiYXNlCiAgICBteSAkSGlzdG9yaWNhbFZhbHVlcyA9ICRTZWxmLT5IaXN0b3JpY2FsVmFsdWVzR2V0KCVQYXJhbSk7CgogICAgIyBhZGQgaGlzdG9yaWMgdmFsdWVzIHRvIGN1cnJlbnQgdmFsdWVzIChpZiB0aGV5IGRvbid0IGV4aXN0IGFueW1vcmUpCiAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCRIaXN0b3JpY2FsVmFsdWVzKSApIHsKICAgICAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAleyRIaXN0b3JpY2FsVmFsdWVzfSApIHsKICAgICAgICAgICAgaWYgKCAhJFNlbGVjdGlvbkRhdGEtPnskS2V5fSApIHsKICAgICAgICAgICAgICAgICRTZWxlY3Rpb25EYXRhLT57JEtleX0gPSAkSGlzdG9yaWNhbFZhbHVlcy0+eyRLZXl9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyB1c2UgUG9zc2libGVWYWx1ZXNGaWx0ZXIgaWYgZGVmaW5lZAogICAgJFNlbGVjdGlvbkRhdGEgPSAkUGFyYW17UG9zc2libGVWYWx1ZXNGaWx0ZXJ9CiAgICAgICAgaWYgZGVmaW5lZCAkUGFyYW17UG9zc2libGVWYWx1ZXNGaWx0ZXJ9OwoKICAgIGlmICggJEZpZWxkQ29uZmlnLT57U2hvd0tleUluU2VhcmNofSB8fCAwICkgewogICAgICAgIGZvciBteSAkS2V5ICgga2V5cyAleyRTZWxlY3Rpb25EYXRhfSApIHsKICAgICAgICAgICAgJFNlbGVjdGlvbkRhdGEtPnskS2V5fSAuPSAnICgnIC4gJEtleSAuICcpJzsKICAgICAgICB9CiAgICB9CgogICAgbXkgJEhUTUxTdHJpbmcgPSAkUGFyYW17TGF5b3V0T2JqZWN0fS0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgID0+ICRTZWxlY3Rpb25EYXRhLAogICAgICAgIE5hbWUgICAgICAgICA9PiAkRmllbGROYW1lLAogICAgICAgIFNlbGVjdGVkSUQgICA9PiAkVmFsdWUsCiAgICAgICAgVHJhbnNsYXRpb24gID0+IDAsCiAgICAgICAgUG9zc2libGVOb25lID0+IDAsCiAgICAgICAgQ2xhc3MgICAgICAgID0+ICRGaWVsZENsYXNzLAogICAgICAgIE11bHRpcGxlICAgICA9PiAxLAogICAgICAgIEhUTUxRdW90ZSAgICA9PiAxLAogICAgKTsKCiAgICAjIGNhbGwgRWRpdExhYmVsUmVuZGVyIG9uIHRoZSBjb21tb24gYmFja2VuZAogICAgbXkgJExhYmVsU3RyaW5nID0gJFNlbGYtPkVkaXRMYWJlbFJlbmRlcigKICAgICAgICAlUGFyYW0sCiAgICAgICAgRmllbGROYW1lICAgICAgICAgID0+ICRGaWVsZE5hbWUsCiAgICApOwoKICAgIG15ICREYXRhID0gewogICAgICAgIEZpZWxkID0+ICRIVE1MU3RyaW5nLAogICAgICAgIExhYmVsID0+ICRMYWJlbFN0cmluZywKICAgIH07CgogICAgcmV0dXJuICREYXRhOwp9CgpzdWIgU2VhcmNoRmllbGRWYWx1ZUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRWYWx1ZTsKCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIHZhbHVlIGZvcm0gcGFyYW0gb2JqZWN0CiAgICBpZiAoIGRlZmluZWQgJFBhcmFte1BhcmFtT2JqZWN0fSApIHsKICAgICAgICBteSBARmllbGRWYWx1ZXMgPSAkUGFyYW17UGFyYW1PYmplY3R9LT5HZXRBcnJheSgKICAgICAgICAgICAgUGFyYW0gPT4gJ1NlYXJjaF9EeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX0KICAgICAgICApOwoKICAgICAgICAkVmFsdWUgPSBcQEZpZWxkVmFsdWVzOwogICAgfQoKICAgICMgb3RoZXJ3aXNlIGdldCB0aGUgdmFsdWUgZnJvbSB0aGUgcHJvZmlsZQogICAgZWxzaWYgKCBkZWZpbmVkICRQYXJhbXtQcm9maWxlfSApIHsKICAgICAgICAkVmFsdWUgPSAkUGFyYW17UHJvZmlsZX0tPnsgJ1NlYXJjaF9EeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX0gfTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpZiAoIGRlZmluZWQgJFBhcmFte1JldHVyblByb2ZpbGVTdHJ1Y3R1cmV9ICYmICRQYXJhbXtSZXR1cm5Qcm9maWxlU3RydWN0dXJlfSBlcSAxICkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICdTZWFyY2hfRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9ID0+ICRWYWx1ZSwKICAgICAgICB9OwogICAgfQoKICAgIHJldHVybiAkVmFsdWU7Cgp9CgpzdWIgU2VhcmNoRmllbGRQYXJhbWV0ZXJCdWlsZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGZpZWxkIHZhbHVlCiAgICBteSAkVmFsdWUgPSAkU2VsZi0+U2VhcmNoRmllbGRWYWx1ZUdldCglUGFyYW0pOwoKICAgIG15ICREaXNwbGF5VmFsdWU7CgogICAgaWYgKCRWYWx1ZSkgewogICAgICAgIG15ICRWYWx1ZUxvb2t1cCA9ICRTZWxmLT5WYWx1ZUxvb2t1cCggJVBhcmFtLCBLZXkgPT4gJFZhbHVlICk7CiAgICAgICAgaWYgKCByZWYgJFZhbHVlTG9va3VwIGVxICdBUlJBWScgKSB7CgogICAgICAgICAgICAjIGNvbWJpbmUgZGlmZmVyZW50IHZhbHVlcyBpbnRvIG9uZSBzdHJpbmcKICAgICAgICAgICAgJERpc3BsYXlWYWx1ZSA9IGpvaW4gJyArICcsIEB7JFZhbHVlTG9va3VwfTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIHNldCB0aGUgZGlzcGxheSB2YWx1ZQogICAgICAgICAgICAkRGlzcGxheVZhbHVlID0gJFZhbHVlTG9va3VwOwogICAgICAgIH0KICAgIH0KCiAgICAjIHJldHVybiBzZWFyY2ggcGFyYW1ldGVyIHN0cnVjdHVyZQogICAgcmV0dXJuIHsKICAgICAgICBQYXJhbWV0ZXIgPT4gewogICAgICAgICAgICBFcXVhbHMgPT4gJFZhbHVlLAogICAgICAgIH0sCiAgICAgICAgRGlzcGxheSA9PiAkRGlzcGxheVZhbHVlLAogICAgfTsKfQoKc3ViIFN0YXRzRmllbGRQYXJhbWV0ZXJCdWlsZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRWYWx1ZXMgPSAkU2VsZi0+X0dldFBvc3NpYmxlVmFsdWVzKCVQYXJhbSk7CgogICAgIyBnZXQgaGlzdG9yaWNhbCB2YWx1ZXMgZnJvbSBkYXRhYmFzZQogICAgbXkgJEhpc3RvcmljYWxWYWx1ZXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkVmFsdWUnKS0+SGlzdG9yaWNhbFZhbHVlR2V0KAogICAgICAgIEZpZWxkSUQgICA9PiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0lEfSwKICAgICAgICBWYWx1ZVR5cGUgPT4gJ1RleHQsJywKICAgICk7CgogICAgIyBhZGQgaGlzdG9yaWMgdmFsdWVzIHRvIGN1cnJlbnQgdmFsdWVzIChpZiB0aGV5IGRvbid0IGV4aXN0IGFueW1vcmUpCiAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAleyRIaXN0b3JpY2FsVmFsdWVzfSApIHsKICAgICAgICBpZiAoICEkVmFsdWVzLT57JEtleX0gKSB7CiAgICAgICAgICAgICRWYWx1ZXMtPnskS2V5fSA9ICRIaXN0b3JpY2FsVmFsdWVzLT57JEtleX0KICAgICAgICB9CiAgICB9CgogICAgIyB1c2UgUG9zc2libGVWYWx1ZXNGaWx0ZXIgaWYgZGVmaW5lZAogICAgJFZhbHVlcyA9ICRQYXJhbXtQb3NzaWJsZVZhbHVlc0ZpbHRlcn0KICAgICAgICBpZiBkZWZpbmVkICRQYXJhbXtQb3NzaWJsZVZhbHVlc0ZpbHRlcn07CgogICAgcmV0dXJuIHsKICAgICAgICBWYWx1ZXMgICAgICAgICAgICAgPT4gJFZhbHVlcywKICAgICAgICBOYW1lICAgICAgICAgICAgICAgPT4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntMYWJlbH0sCiAgICAgICAgRWxlbWVudCAgICAgICAgICAgID0+ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX0sCiAgICAgICAgVHJhbnNsYXRhYmxlVmFsdWVzID0+IDAsCiAgICAgICAgQmxvY2sgICAgICAgICAgICAgID0+ICdNdWx0aVNlbGVjdEZpZWxkJywKICAgIH07Cn0KCnN1YiBDb21tb25TZWFyY2hGaWVsZFBhcmFtZXRlckJ1aWxkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJE9wZXJhdG9yID0gJ0VxdWFscyc7CiAgICBteSAkVmFsdWUgICAgPSAkUGFyYW17VmFsdWV9OwoKICAgIHJldHVybiB7CiAgICAgICAgJE9wZXJhdG9yID0+ICRWYWx1ZSwKICAgIH07Cn0KCnN1YiBSYW5kb21WYWx1ZVNldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRWYWx1ZSA9IGludCggcmFuZCg1MDApICk7CgogICAgbXkgJFN1Y2Nlc3MgPSAkU2VsZi0+VmFsdWVTZXQoCiAgICAgICAgJVBhcmFtLAogICAgICAgIFZhbHVlID0+ICRWYWx1ZSwKICAgICk7CgogICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgICAgIH07CiAgICB9CiAgICByZXR1cm4gewogICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgICAgICBWYWx1ZSAgID0+ICRWYWx1ZSwKICAgIH07Cn0KCnN1YiBIaXN0b3JpY2FsVmFsdWVzR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgaGlzdG9yaWNhbCB2YWx1ZXMgZnJvbSBkYXRhYmFzZQogICAgbXkgJEhpc3RvcmljYWxWYWx1ZXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkVmFsdWUnKS0+SGlzdG9yaWNhbFZhbHVlR2V0KAogICAgICAgIEZpZWxkSUQgICA9PiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0lEfSwKICAgICAgICBWYWx1ZVR5cGUgPT4gJ1RleHQnLAogICAgKTsKCiAgICAjIHJldHVybiB0aGUgaGlzdG9yaWNhbCB2YWx1ZXMgZnJvbSBkYXRhYmFzZQogICAgcmV0dXJuICRIaXN0b3JpY2FsVmFsdWVzOwp9CgpzdWIgVmFsdWVMb29rdXAgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gaWYgKCFkZWZpbmVkICgkUGFyYW17S2V5fSkpOwogICAgcmV0dXJuICcnIGlmICgkUGFyYW17S2V5fSBlcSAnJyk7CgogICAgIyByZXR1cm4gYXJyYXkgb3Igc2NhbGFyIGRlcGVuZGluZyBvbiAkUGFyYW17S2V5fQogICAgbXkgJFJlc3VsdDsKICAgIG15IEBLZXlzOwogICAgaWYgKCByZWYgJFBhcmFte0tleX0gZXEgJ0FSUkFZJyApIHsKICAgICAgICBAS2V5cyA9IEB7JFBhcmFte0tleX19OwogICAgICAgICRSZXN1bHQgPSBbXTsKICAgIH0KICAgIGVsc2V7CiAgICAgICAgcHVzaChAS2V5cywgJFBhcmFte0tleX0pOwogICAgICAgICRSZXN1bHQgPSAnJzsKICAgIH0KCiAgICBmb3IgbXkgJEtleSAoQEtleXMgKXsKCiAgICAgICAgbXkgJFZhbHVlOwoKICAgICAgICAkVmFsdWUgPSBkZWZpbmVkICRWYWx1ZSA/ICRWYWx1ZSA6ICRQYXJhbXtLZXl9OwoKICAgICAgICBpZiAoIHJlZiAkUmVzdWx0IGVxICdBUlJBWScgKSB7CiAgICAgICAgICAgIHB1c2goQHskUmVzdWx0fSwgJFZhbHVlKTsKICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgJFJlc3VsdD0gJFZhbHVlOwogICAgICAgIH0KCiAgICB9CgogICAgcmV0dXJuICRSZXN1bHQ7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==</File>
<File Location="Kernel/System/DynamicField/Driver/SegesTextArray.pm" Permission="664" Encode="Base64">IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9TZWdlc1RleHRBcnJheS5wbSAtIGJhc2VkIG9uIGV4aXN0aW5nIE9UUlMtQmFja2VuZHMgLSBEZWxlZ2F0ZSBmb3IgRHluYW1pY0ZpZWxkIFNlZ2VzVGV4dEFycmF5IGJhY2tlbmQKIyBDb3B5cmlnaHQgKEMpIDIwMTYgc2FtdWVsZGMsIGh0dHA6Ly93d3cuY2FtYXJhLmxlZy5icg0KIw0KIyB3cml0dGVuL2VkaXRlZCBieToNCiMgKiBuZWRtYWooYXQpeWFob28oZG90KWNvbQ0KIw0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQ0KIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91DQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuDQojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6U2VnZXNUZXh0QXJyYXk7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7DQoNCnVzZSBEYXRhOjpEdW1wZXI7Cgp1c2UgYmFzZSBxdyhLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OkJhc2VTZWdlc1RleHRBcnJheSk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkVmFsdWUnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6U2VnZXNUZXh0QXJyYXkKCj1oZWFkMSBTWU5PUFNJUwoKRHluYW1pY0ZpZWxkcyBTZWdlc1RleHRBcnJheSBiYWNrZW5kIGRlbGVnYXRlCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKVGhpcyBtb2R1bGUgaW1wbGVtZW50cyB0aGUgcHVibGljIGludGVyZmFjZSBvZiBMPEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQ+LgpQbGVhc2UgbG9vayB0aGVyZSBmb3IgYSBkZXRhaWxlZCByZWZlcmVuY2Ugb2YgdGhlIGZ1bmN0aW9ucy4KCj1vdmVyIDQKCj1pdGVtIG5ldygpCgp1c3VhbGx5LCB5b3Ugd2FudCB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgdGhpcwpieSB1c2luZyBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kLT5uZXcoKTsKCj1jdXQKCnN1YiBWYWx1ZUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRERlZhbHVlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZFZhbHVlJyktPlZhbHVlR2V0KAogICAgICAgIEZpZWxkSUQgID0+ICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57SUR9LAogICAgICAgIE9iamVjdElEID0+ICRQYXJhbXtPYmplY3RJRH0sCiAgICApOwoKICAgIHJldHVybiBpZiAhJERGVmFsdWU7CiAgICByZXR1cm4gaWYgIUlzQXJyYXlSZWZXaXRoRGF0YSgkREZWYWx1ZSk7CiAgICByZXR1cm4gaWYgIUlzSGFzaFJlZldpdGhEYXRhKCAkREZWYWx1ZS0+WzBdICk7CgogICAgIyBleHRyYWN0IHJlYWwgdmFsdWVzCiAgICBteSBAUmV0dXJuRGF0YTsKICAgIGZvciBteSAkSXRlbSAoIEB7JERGVmFsdWV9ICkgewogICAgICAgIHB1c2ggQFJldHVybkRhdGEsICRJdGVtLT57VmFsdWVUZXh0fTsKICAgIH0KCiAgICByZXR1cm4gXEBSZXR1cm5EYXRhOwp9CgpzdWIgVmFsdWVTZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIHZhbHVlCiAgICBteSBAVmFsdWVzOwogICAgaWYgKCByZWYgJFBhcmFte1ZhbHVlfSBlcSAnQVJSQVknICkgewogICAgICAgIEBWYWx1ZXMgPSBAeyAkUGFyYW17VmFsdWV9IH07CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBAVmFsdWVzID0gKCAkUGFyYW17VmFsdWV9ICk7CiAgICB9CgoJJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coDQoJICAgIFByaW9yaXR5ID0+ICdlcnJvcicsDQoJICAgIE1lc3NhZ2UgID0+IER1bXBlcihcQFZhbHVlcyksDQoJKTsNCg0KICAgIG15IEBWYWx1ZVRleHQ7CiAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSggXEBWYWx1ZXMgKSApIHsKICAgICAgICBmb3IgbXkgJEl0ZW0gKEBWYWx1ZXMpIHsKICAgICAgICAgICAgcHVzaCBAVmFsdWVUZXh0LCB7IFZhbHVlVGV4dCA9PiAkSXRlbSB9OwogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICAgIHB1c2ggQFZhbHVlVGV4dCwgeyBWYWx1ZVRleHQgPT4gJycgfTsKICAgIH0KCgkkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygNCgkgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywNCgkgICAgTWVzc2FnZSAgPT4gRHVtcGVyKFxAVmFsdWVUZXh0KSwNCgkpOw0KDQogICAgbXkgJFN1Y2Nlc3MgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkVmFsdWUnKS0+VmFsdWVTZXQoCiAgICAgICAgRmllbGRJRCAgPT4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntJRH0sCiAgICAgICAgT2JqZWN0SUQgPT4gJFBhcmFte09iamVjdElEfSwKICAgICAgICBWYWx1ZSAgICA9PiBcQFZhbHVlVGV4dCwKICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgcmV0dXJuICRTdWNjZXNzOwp9CgpzdWIgVmFsdWVWYWxpZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwogICAgbXkgJFN1Y2Nlc3M7CgogICAgIyBjaGVjayB2YWx1ZQogICAgbXkgQFZhbHVlczsKICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17VmFsdWV9ICkgKSB7CiAgICAgICAgQFZhbHVlcyA9IEB7ICRQYXJhbXtWYWx1ZX0gfTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIEBWYWx1ZXMgPSAoICRQYXJhbXtWYWx1ZX0gKTsKICAgIH0KCiAgICBmb3IgbXkgJEl0ZW0gKEBWYWx1ZXMpIHsKCiAgICAgICAgJFN1Y2Nlc3MgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkVmFsdWUnKS0+VmFsdWVWYWxpZGF0ZSgKICAgICAgICAgICAgVmFsdWUgPT4gewogICAgICAgICAgICAgICAgVmFsdWVUZXh0ID0+ICRJdGVtLAogICAgICAgICAgICB9LAogICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0KICAgICAgICApOwogICAgICAgIHJldHVybiBpZiAhJFN1Y2Nlc3MKICAgIH0KICAgIHJldHVybiAkU3VjY2VzczsKfQoKc3ViIEVkaXRGaWVsZFJlbmRlciB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgdGFrZSBjb25maWcgZnJvbSBmaWVsZCBjb25maWcKICAgIG15ICRGaWVsZENvbmZpZyA9ICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57Q29uZmlnfTsKICAgIG15ICRGaWVsZElEICAgICA9ICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57SUR9OwogICAgbXkgJEZpZWxkTmFtZSAgID0gJ0R5bmFtaWNGaWVsZF8nIC4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfTsKCiAgICBteSAkVmFsdWUgPSBbXTsKCiAgICAkVmFsdWUgPSAkUGFyYW17VmFsdWV9IGlmIGRlZmluZWQgJFBhcmFte1ZhbHVlfTsKCiAgICAjIGV4dHJhY3QgdGhlIGR5bmFtaWMgZmllbGQgdmFsdWUgZm9ybSB0aGUgd2ViIHJlcXVlc3QKICAgIG15ICRGaWVsZFZhbHVlID0gJFNlbGYtPkVkaXRGaWVsZFZhbHVlR2V0KAogICAgICAgICVQYXJhbSwKICAgICk7CgogICAgIyBzZXQgdmFsdWVzIGZyb20gUGFyYW1PYmplY3QgaWYgcHJlc2VudAogICAgaWYgKCBJc0FycmF5UmVmV2l0aERhdGEoJEZpZWxkVmFsdWUpICkgewogICAgICAgICRWYWx1ZSA9ICRGaWVsZFZhbHVlOwogICAgfQoKICAgICMgY2hlY2sgYW5kIHNldCBjbGFzcyBpZiBuZWNlc3NhcnkKICAgIG15ICRGaWVsZENsYXNzID0gJ0R5bmFtaWNGaWVsZFRleHQnOwogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtDbGFzc30gJiYgJFBhcmFte0NsYXNzfSBuZSAnJyApIHsKICAgICAgICAkRmllbGRDbGFzcyAuPSAnICcgLiAkUGFyYW17Q2xhc3N9OwogICAgfQoKICAgICMgc2V0IGZpZWxkIGFzIG1hbmRhdG9yeQogICAgJEZpZWxkQ2xhc3MgLj0gJyBWYWxpZGF0ZV9SZXF1aXJlZCcgaWYgJFBhcmFte01hbmRhdG9yeX07CgogICAgIyBzZXQgZXJyb3IgY3NzIGNsYXNzCiAgICAkRmllbGRDbGFzcyAuPSAnIFNlcnZlckVycm9yJyBpZiAkUGFyYW17U2VydmVyRXJyb3J9OwoKICAgIG15ICRBcnJheUVsZW1lbnRzID0gc2NhbGFyKCBAeyRWYWx1ZX0gKTsKICAgIG15ICRNYXhBcnJheVNpemUgPSAkRmllbGRDb25maWctPntNYXhBcnJheVNpemV9IHx8IDU7CgogICAgIyBzdG9yZSBmaWVsZCBIVE1MCiAgICBteSAkSFRNTFN0cmluZyA9ICcnOwoKICAgIG15ICRTZWxlY3Rpb25EYXRhOwoKICAgIGZvciBteSAkQ291bnQgKCAxIC4uICRBcnJheUVsZW1lbnRzICkgewoKICAgICAgICAkSFRNTFN0cmluZyAuPSA8PCJFT0YiOwo8ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOjJweDsiPgpFT0YKCiAgICAgICAgbXkgJEZpZWxkTmFtZUNvdW50ID0gJEZpZWxkTmFtZSAuICdfJyAuICRDb3VudDsKCgkJbXkgJERpc3BsYXlWYWx1ZSA9ICRTZWxmLT5WYWx1ZUxvb2t1cCggJVBhcmFtLCBLZXkgPT4gJFZhbHVlLT5bICRDb3VudCAtIDEgXSApOwoJCW15ICREaXNwbGF5VGl0bGUgPSAkRGlzcGxheVZhbHVlOwoJCW15ICREaXNwbGF5VmFsdWVIVE1MID0gJFBhcmFte0xheW91dE9iamVjdH0tPkFzY2lpMkh0bWwoCgkJCVRleHQgPT4gJERpc3BsYXlWYWx1ZSwKCQkpOwoJCW15ICREaXNwbGF5VGl0bGVIVE1MID0gJFBhcmFte0xheW91dE9iamVjdH0tPkFzY2lpMkh0bWwoCgkJCVRleHQgPT4gJERpc3BsYXlUaXRsZSwKCQkpOwoJCW15ICREaXNwbGF5RmllbGROYW1lICAgICAgPSAkRmllbGROYW1lIC4gJ0Rpc3BsYXknOwoJCW15ICREaXNwbGF5RmllbGROYW1lQ291bnQgPSAkRGlzcGxheUZpZWxkTmFtZSAuICdfJyAuICRDb3VudDsKCgkJJEhUTUxTdHJpbmcgLj0gPDwiRU9GIjsKPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSIkRmllbGRDbGFzcyIgaWQ9IiREaXNwbGF5RmllbGROYW1lQ291bnQiIG5hbWU9IiREaXNwbGF5RmllbGROYW1lIiB0aXRsZT0iJERpc3BsYXlUaXRsZUhUTUwiIHZhbHVlPSIkRGlzcGxheVZhbHVlSFRNTCIgc3R5bGU9IndpZHRoOiA1MCUiIC8+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSIkRmllbGROYW1lQ291bnQiIG5hbWU9IiRGaWVsZE5hbWUiIHZhbHVlPSIkVmFsdWUtPlskQ291bnQtMV0iIC8+CjxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0iUmVtb3ZlXyRGaWVsZE5hbWVDb3VudCIgY2xhc3M9IlJlbW92ZSBWYWx1ZVJlbW92ZSIgdmFsdWU9IlJlbW92ZSB2YWx1ZSI+XCRUZXh0eyJSZW1vdmUgdmFsdWUifTwvYnV0dG9uPgo8L2Rpdj4KRU9GCgogICAgICAgICRQYXJhbXtMYXlvdXRPYmplY3R9LT5BZGRKU09uRG9jdW1lbnRDb21wbGV0ZSggQ29kZSA9PiA8PCJFT0YiKTsKLy9iaW5kIGNsaWNrIGZ1bmN0aW9uIHRvIHJlbW92ZSBidXR0b24KXCQoJyNSZW1vdmVfJEZpZWxkTmFtZUNvdW50JykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgXCQoJyMkRGlzcGxheUZpZWxkTmFtZUNvdW50JykudmFsKCcnKTsKICBcJCgnIyREaXNwbGF5RmllbGROYW1lQ291bnQnKS5hdHRyKCJ0aXRsZSIsICcnKTsKICBcJCgnIyRGaWVsZE5hbWVDb3VudCcpLnZhbCgnJyk7CiAgXCQoJyMkRmllbGROYW1lQ291bnQnKS5kYXRhKCdEaXNwbGF5VmFsdWUnLCAnJyk7CiAgXCQoJyMkRmllbGROYW1lQ291bnQnKS5kYXRhKCdEaXNwbGF5VGl0bGUnLCAnJyk7CiAgXCQoJyMkRmllbGROYW1lQ291bnQnKS5hdHRyKCdkaXNhYmxlZCcsIHRydWUpLnBhcmVudCgpLmFkZENsYXNzKCdIaWRkZW4nKS5pbnNlcnRCZWZvcmUoXCQoJyNBZGRfJEZpZWxkTmFtZScpLnBhcmVudCgpKTsKICBpZiAoIFwkKCJbbmFtZT0nJEZpZWxkTmFtZSddOmVuYWJsZWQiKS5sZW5ndGggPCAkTWF4QXJyYXlTaXplICkgewogICAgXCQoJyNBZGRfJEZpZWxkTmFtZScpLnBhcmVudCgpLnJlbW92ZUNsYXNzKCdIaWRkZW4nKTsKICB9CiAgXCQoJyMkRmllbGROYW1lQ291bnQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICByZXR1cm4gZmFsc2U7Cn0pOwovL2JpbmQgY2hhbmdlIGZ1bmN0aW9uIHRvIGRpc3BsYXkgZmllbGQNClwkKCcjJERpc3BsYXlGaWVsZE5hbWVDb3VudCcpLmJpbmQoJ2NoYW5nZScsIGZ1bmN0aW9uICgpIHsNCiAgXCQoJyMkRmllbGROYW1lQ291bnQnKS52YWwoXCQoJyMkRGlzcGxheUZpZWxkTmFtZUNvdW50JykudmFsKCkpOw0KICByZXR1cm4gZmFsc2U7DQp9KTsNCkVPRgoKCiAgICB9CgogICAgZm9yIG15ICRDb3VudCAoICggJEFycmF5RWxlbWVudHMgKyAxICkgLi4gJE1heEFycmF5U2l6ZSApIHsKCiAgICAgICAgJEhUTUxTdHJpbmcgLj0gPDwiRU9GIjsKPGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbToycHg7Ij4KRU9GCgogICAgICAgIG15ICRGaWVsZE5hbWVDb3VudCA9ICRGaWVsZE5hbWUgLiAnXycgLiAkQ291bnQ7CgoJCW15ICREaXNwbGF5RmllbGROYW1lICAgICAgPSAkRmllbGROYW1lIC4gJ0Rpc3BsYXknOwoJCW15ICREaXNwbGF5RmllbGROYW1lQ291bnQgPSAkRGlzcGxheUZpZWxkTmFtZSAuICdfJyAuICRDb3VudDsKCgkJJEhUTUxTdHJpbmcgLj0gPDwiRU9GIjsKPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSIkRmllbGRDbGFzcyIgaWQ9IiREaXNwbGF5RmllbGROYW1lQ291bnQiIG5hbWU9IiREaXNwbGF5RmllbGROYW1lIiB0aXRsZT0iIiB2YWx1ZT0iIiBzdHlsZT0id2lkdGg6IDUwJSIgLz4KPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IiRGaWVsZE5hbWVDb3VudCIgbmFtZT0iJEZpZWxkTmFtZSIgdmFsdWU9IiIgLz4KPGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJSZW1vdmVfJEZpZWxkTmFtZUNvdW50IiBjbGFzcz0iUmVtb3ZlIFZhbHVlUmVtb3ZlIiB2YWx1ZT0iUmVtb3ZlIHZhbHVlIj5cJFRleHR7IlJlbW92ZSB2YWx1ZSJ9PC9idXR0b24+CjwvZGl2PgpFT0YKCgkJICRQYXJhbXtMYXlvdXRPYmplY3R9LT5BZGRKU09uRG9jdW1lbnRDb21wbGV0ZSggQ29kZSA9PiA8PCJFT0YiKTsKLy9iaW5kIGNsaWNrIGZ1bmN0aW9uIHRvIHJlbW92ZSBidXR0b24KXCQoJyNSZW1vdmVfJEZpZWxkTmFtZUNvdW50JykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgXCQoJyMkRGlzcGxheUZpZWxkTmFtZUNvdW50JykudmFsKCcnKTsKICBcJCgnIyREaXNwbGF5RmllbGROYW1lQ291bnQnKS5hdHRyKCJ0aXRsZSIsICcnKTsKICBcJCgnIyRGaWVsZE5hbWVDb3VudCcpLnZhbCgnJyk7CiAgXCQoJyMkRmllbGROYW1lQ291bnQnKS5kYXRhKCdEaXNwbGF5VmFsdWUnLCAnJyk7CiAgXCQoJyMkRmllbGROYW1lQ291bnQnKS5kYXRhKCdEaXNwbGF5VGl0bGUnLCAnJyk7CiAgXCQoJyMkRmllbGROYW1lQ291bnQnKS5hdHRyKCdkaXNhYmxlZCcsIHRydWUpLnBhcmVudCgpLmFkZENsYXNzKCdIaWRkZW4nKS5pbnNlcnRCZWZvcmUoXCQoJyNBZGRfJEZpZWxkTmFtZScpLnBhcmVudCgpKTsKICBpZiAoIFwkKCJbbmFtZT0nJEZpZWxkTmFtZSddOmVuYWJsZWQiKS5sZW5ndGggPCAkTWF4QXJyYXlTaXplICkgewogICAgXCQoJyNBZGRfJEZpZWxkTmFtZScpLnBhcmVudCgpLnJlbW92ZUNsYXNzKCdIaWRkZW4nKTsKICB9CiAgXCQoJyMkRmllbGROYW1lQ291bnQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICByZXR1cm4gZmFsc2U7Cn0pOwpcJCgnIyRGaWVsZE5hbWVDb3VudCcpLmF0dHIoJ2Rpc2FibGVkJywgdHJ1ZSkucGFyZW50KCkuYWRkQ2xhc3MoJ0hpZGRlbicpOwovL2JpbmQgY2hhbmdlIGZ1bmN0aW9uIHRvIGRpc3BsYXkgZmllbGQNClwkKCcjJERpc3BsYXlGaWVsZE5hbWVDb3VudCcpLmJpbmQoJ2NoYW5nZScsIGZ1bmN0aW9uICgpIHsNCiAgXCQoJyMkRmllbGROYW1lQ291bnQnKS52YWwoXCQoJyMkRGlzcGxheUZpZWxkTmFtZUNvdW50JykudmFsKCkpOw0KICByZXR1cm4gZmFsc2U7DQp9KTsNCkVPRgoKICAgIH0KCiAgICBteSAkQ2xhc3NIaWRkZW4gPSAnJzsKICAgIGlmICggJEFycmF5RWxlbWVudHMgPj0gJE1heEFycmF5U2l6ZSApIHsKICAgICAgICAkQ2xhc3NIaWRkZW4gPSAnSGlkZGVuJzsKICAgIH0KICAgICRIVE1MU3RyaW5nIC49IDw8IkVPRiI7CjxkaXYgY2xhc3M9IiRDbGFzc0hpZGRlbiI+CjxidXR0b24gaWQ9IkFkZF8kRmllbGROYW1lIiBjbGFzcz0iQWRkIiB0eXBlPSJidXR0b24iIHZhbHVlPSJBZGQgdmFsdWUiPlwkVGV4dHsiQWRkIHZhbHVlIn08L2J1dHRvbj4KPC9kaXY+CkVPRgoKJFBhcmFte0xheW91dE9iamVjdH0tPkFkZEpTT25Eb2N1bWVudENvbXBsZXRlKCBDb2RlID0+IDw8IkVPRiIpOwovL2JpbmQgY2xpY2sgZnVuY3Rpb24gdG8gYWRkIGJ1dHRvbgpcJCgnI0FkZF8kRmllbGROYW1lJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICBcJCgiW25hbWU9JyRGaWVsZE5hbWUnXTpkaXNhYmxlZCIpLmZpcnN0KCkuYXR0cignZGlzYWJsZWQnLCBmYWxzZSkucGFyZW50KCkucmVtb3ZlQ2xhc3MoJ0hpZGRlbicpOwogICAgaWYgKCBcJCgiW25hbWU9JyRGaWVsZE5hbWUnXTplbmFibGVkIikubGVuZ3RoID49ICRNYXhBcnJheVNpemUgKSB7CiAgICAgICAgXCQoJyNBZGRfJEZpZWxkTmFtZScpLnBhcmVudCgpLmFkZENsYXNzKCdIaWRkZW4nKTsKICAgIH0KICAgIHJldHVybiBmYWxzZTsKfSk7CkVPRgoKICAgIGlmICggJFBhcmFte01hbmRhdG9yeX0gKSB7CgogICAgICAgICMgZm9yIGNsaWVudCBzaWRlIHZhbGlkYXRpb24KICAgICAgICBteSAkRGl2SUQgPSAkRmllbGROYW1lIC4gJ0Vycm9yJzsKCiAgICAgICAgbXkgJEZpZWxkUmVxdWlyZWRNZXNzYWdlCiAgICAgICAgICAgID0gJFBhcmFte0xheW91dE9iamVjdH0tPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKTsKCiAgICAgICAgIyBmb3IgY2xpZW50IHNpZGUgdmFsaWRhdGlvbgogICAgICAgICRIVE1MU3RyaW5nIC49IDw8IkVPRiI7CgogICAgPGRpdiBpZD0iJERpdklEIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgPHA+CiAgICAgICAgICAgICRGaWVsZFJlcXVpcmVkTWVzc2FnZQogICAgICAgIDwvcD4KICAgIDwvZGl2PgpFT0YKICAgIH0KCiAgICBpZiAoICRQYXJhbXtTZXJ2ZXJFcnJvcn0gKSB7CgogICAgICAgIG15ICRFcnJvck1lc3NhZ2UgPSAkUGFyYW17RXJyb3JNZXNzYWdlfSB8fCAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nOwogICAgICAgICRFcnJvck1lc3NhZ2UgPSAkUGFyYW17TGF5b3V0T2JqZWN0fS0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRFcnJvck1lc3NhZ2UpOwoKICAgICAgICBteSAkRGl2SUQgPSAkRmllbGROYW1lIC4gJ1NlcnZlckVycm9yJzsKCiAgICAgICAgIyBmb3Igc2VydmVyIHNpZGUgdmFsaWRhdGlvbgogICAgICAgICRIVE1MU3RyaW5nIC49IDw8IkVPRiI7CiAgICA8ZGl2IGlkPSIkRGl2SUQiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICA8cD4KICAgICAgICAgICAgJEVycm9yTWVzc2FnZQogICAgICAgIDwvcD4KICAgIDwvZGl2PgpFT0YKICAgIH0KCiAgICAjIGNhbGwgRWRpdExhYmVsUmVuZGVyIG9uIHRoZSBjb21tb24gYmFja2VuZAogICAgbXkgJExhYmVsU3RyaW5nID0gJFNlbGYtPkVkaXRMYWJlbFJlbmRlcigKICAgICAgICAlUGFyYW0sCiAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+ICRQYXJhbXtNYW5kYXRvcnl9IHx8ICcwJywKICAgICAgICBGaWVsZE5hbWUgICAgICAgICAgPT4gJEZpZWxkTmFtZSwKICAgICk7CgogICAgbXkgJERhdGEgPSB7CiAgICAgICAgRmllbGQgPT4gJEhUTUxTdHJpbmcsCiAgICAgICAgTGFiZWwgPT4gJExhYmVsU3RyaW5nLAogICAgfTsKCiAgICByZXR1cm4gJERhdGE7Cn0KCnN1YiBFZGl0RmllbGRWYWx1ZUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRGaWVsZE5hbWUgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwoKICAgIG15ICRWYWx1ZTsKCiAgICAjIGNoZWNrIGlmIHRoZXJlIGlzIGEgVGVtcGxhdGUgYW5kIHJldHJlaXZlIHRoZSBkeW5hbWljIGZpZWxkIHZhbHVlIGZyb20gdGhlcmUKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRQYXJhbXtUZW1wbGF0ZX0gKSApIHsKICAgICAgICAkVmFsdWUgPSAkUGFyYW17VGVtcGxhdGV9LT57JEZpZWxkTmFtZX07CiAgICB9CgogICAgIyBvdGhlcndpc2UgZ2V0IGR5bmFtaWMgZmllbGQgdmFsdWUgZm9ybSBwYXJhbQogICAgZWxzZSB7CiAgICAgICAgbXkgQERhdGEgPSAkUGFyYW17UGFyYW1PYmplY3R9LT5HZXRBcnJheSggUGFyYW0gPT4gJEZpZWxkTmFtZSApOwogICAgICAgICRWYWx1ZSA9IFxARGF0YTsKICAgIH0KCiAgICBpZiAoIGRlZmluZWQgJFBhcmFte1JldHVyblRlbXBsYXRlU3RydWN0dXJlfSAmJiAkUGFyYW17UmV0dXJuVGVtcGxhdGVTdHJ1Y3R1cmV9IGVxICcxJyApIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICAkRmllbGROYW1lID0+ICRWYWx1ZSwKICAgICAgICB9OwogICAgfQoKICAgICMgZm9yIHRoaXMgZmllbGQgdGhlIG5vcm1hbCByZXR1cm4gYW4gdGhlIFJldHVyblZhbHVlU3RydWN0dXJlIGFyZSB0aGUgc2FtZQogICAgcmV0dXJuICRWYWx1ZTsKfQoKc3ViIEVkaXRGaWVsZFZhbHVlVmFsaWRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCB0aGUgZmllbGQgdmFsdWUgZnJvbSB0aGUgaHR0cCByZXF1ZXN0CiAgICBteSAkVmFsdWUgPSAkU2VsZi0+RWRpdEZpZWxkVmFsdWVHZXQoCiAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LAogICAgICAgIFBhcmFtT2JqZWN0ICAgICAgICA9PiAkUGFyYW17UGFyYW1PYmplY3R9LAoKICAgICAgICAjIG5vdCBuZWNlc3NhcnkgZm9yIHRoaXMgYmFja2VuZCBidXQgcGxhY2UgaXQgZm9yIGNvbnNpc3RlbmN5IHJlYXNvbnMKICAgICAgICBSZXR1cm5WYWx1ZVN0cnVjdHVyZSA9PiAxLAogICAgKTsKCiAgICBteSAkU2VydmVyRXJyb3I7CiAgICBteSAkRXJyb3JNZXNzYWdlOwoKICAgICMgcGVyZm9ybSBuZWNlc3NhcnkgdmFsaWRhdGlvbnMKICAgIGlmICggJFBhcmFte01hbmRhdG9yeX0gJiYgIUlzQXJyYXlSZWZXaXRoRGF0YSgkVmFsdWUpICkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yID0+IDEsCiAgICAgICAgfTsKICAgIH0KCiAgICAjIGNyZWF0ZSByZXN1bHRpbmcgc3RydWN0dXJlCiAgICBteSAkUmVzdWx0ID0gewogICAgICAgIFNlcnZlckVycm9yICA9PiAkU2VydmVyRXJyb3IsCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRFcnJvck1lc3NhZ2UsCiAgICB9OwoKICAgIHJldHVybiAkUmVzdWx0Owp9CgpzdWIgRGlzcGxheVZhbHVlUmVuZGVyIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBzZXQgSFRNTE91cHV0IGFzIGRlZmF1bHQgaWYgbm90IHNwZWNpZmllZAogICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17SFRNTE91dHB1dH0gKSB7CiAgICAgICAgJFBhcmFte0hUTUxPdXRwdXR9ID0gMTsKICAgIH0KCiAgICAjIGdldCByYXcgVmFsdWUgc3RyaW5ncyBmcm9tIGZpZWxkIHZhbHVlCiAgICBteSBAS2V5czsKICAgIGlmICggcmVmICRQYXJhbXtWYWx1ZX0gZXEgJ0FSUkFZJyApIHsKICAgICAgICBAS2V5cyA9IEB7ICRQYXJhbXtWYWx1ZX0gfTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIEBLZXlzID0gKCAkUGFyYW17VmFsdWVzfSApOwogICAgfQoKICAgIG15IEBWYWx1ZXM7CgogICAgZm9yIG15ICRLZXkgKEBLZXlzKSB7CgogICAgICAgICRLZXkgfHw9ICcnOwoKICAgICAgICBteSAkVmFsdWUgPSAkU2VsZi0+VmFsdWVMb29rdXAoICVQYXJhbSwgS2V5ID0+ICRLZXksICk7CgogICAgICAgICMgc2V0IHRpdGxlIGFzIHZhbHVlIGFmdGVyIHVwZGF0ZSBhbmQgYmVmb3JlIGxpbWl0CiAgICAgICAgbXkgJFRpdGxlID0gJFZhbHVlOwoKICAgICAgICAjIEhUTUxPdXB1dCB0cmFuc2Zvcm1hdGlvbnMKICAgICAgICBpZiAoICRQYXJhbXtIVE1MT3V0cHV0fSApIHsKICAgICAgICAgICAgJFZhbHVlID0gJFBhcmFte0xheW91dE9iamVjdH0tPkFzY2lpMkh0bWwoCiAgICAgICAgICAgICAgICBUZXh0ID0+ICRWYWx1ZSwKICAgICAgICAgICAgICAgIE1heCA9PiAkUGFyYW17VmFsdWVNYXhDaGFyc30gfHwgJycsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkVGl0bGUgPSAkUGFyYW17TGF5b3V0T2JqZWN0fS0+QXNjaWkySHRtbCgKICAgICAgICAgICAgICAgIFRleHQgPT4gJFRpdGxlLAogICAgICAgICAgICAgICAgTWF4ID0+ICRQYXJhbXtUaXRsZU1heENoYXJzfSB8fCAnJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgIyBzZXQgZmllbGQgbGluayBmb3JtIGNvbmZpZwogICAgICAgICAgICBteSAkSGFzTGluayA9IDA7CiAgICAgICAgICAgIG15ICRPbGRWYWx1ZTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGlmICggJFBhcmFte1ZhbHVlTWF4Q2hhcnN9ICYmIGxlbmd0aCgkVmFsdWUpID4gJFBhcmFte1ZhbHVlTWF4Q2hhcnN9ICkgewogICAgICAgICAgICAgICAgJFZhbHVlID0gc3Vic3RyKCAkVmFsdWUsIDAsICRQYXJhbXtWYWx1ZU1heENoYXJzfSApIC4gJy4uLic7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAkUGFyYW17VGl0bGVNYXhDaGFyc30gJiYgbGVuZ3RoKCRUaXRsZSkgPiAkUGFyYW17VGl0bGVNYXhDaGFyc30gKSB7CiAgICAgICAgICAgICAgICAkVGl0bGUgPSBzdWJzdHIoICRUaXRsZSwgMCwgJFBhcmFte1RpdGxlTWF4Q2hhcnN9ICkgLiAnLi4uJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBwdXNoIEBWYWx1ZXMsICRWYWx1ZTsKICAgIH0KCiAgICAjIHNldCBpdGVtIHNlcGFyYXRvcgogICAgbXkgJEl0ZW1TZXBhcmF0b3IgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ30tPntJdGVtU2VwYXJhdG9yfSB8fCAnLCAnOwoKICAgIG15ICRWYWx1ZSA9IGpvaW4oICRJdGVtU2VwYXJhdG9yLCBAVmFsdWVzICk7CgogICAgbXkgJERhdGEgPSB7CiAgICAgICAgVmFsdWUgPT4gJFZhbHVlLAogICAgICAgIFRpdGxlID0+ICcnLAogICAgICAgIExpbmsgID0+ICcnLAogICAgfTsKCiAgICByZXR1cm4gJERhdGE7Cn0KCnN1YiBSZWFkYWJsZVZhbHVlUmVuZGVyIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBzZXQgVmFsdWUgYW5kIFRpdGxlIHZhcmlhYmxlcwogICAgbXkgJFZhbHVlID0gJyc7CiAgICBteSAkVGl0bGUgPSAnJzsKCiAgICAjIGNoZWNrIHZhbHVlCiAgICBteSBAVmFsdWVzOwogICAgaWYgKCByZWYgJFBhcmFte1ZhbHVlfSBlcSAnQVJSQVknICkgewogICAgICAgIEBWYWx1ZXMgPSBAeyAkUGFyYW17VmFsdWV9IH07CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBAVmFsdWVzID0gKCAkUGFyYW17VmFsdWV9ICk7CiAgICB9CgogICAgbXkgQFJlYWRhYmxlVmFsdWVzOwoKICAgIFZBTFVFSVRFTToKICAgIGZvciBteSAkSXRlbSAoQFZhbHVlcykgewogICAgICAgIG5leHQgVkFMVUVJVEVNIGlmICEkSXRlbTsKCiAgICAgICAgcHVzaCBAUmVhZGFibGVWYWx1ZXMsICRJdGVtOwogICAgfQoKICAgICMgc2V0IGl0ZW0gc2VwYXJhdG9yCiAgICBteSAkSXRlbVNlcGFyYXRvciA9ICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57Q29uZmlnfS0+e0l0ZW1TZXBhcmF0b3J9IHx8ICcsICc7CgogICAgIyBPdXB1dCB0cmFuc2Zvcm1hdGlvbnMKICAgICRWYWx1ZSA9IGpvaW4oICRJdGVtU2VwYXJhdG9yLCBAUmVhZGFibGVWYWx1ZXMgKTsKICAgICRUaXRsZSA9ICRWYWx1ZTsKCiAgICAjIGN1dCBzdHJpbmdzIGlmIG5lZWRlZAogICAgaWYgKCAkUGFyYW17VmFsdWVNYXhDaGFyc30gJiYgbGVuZ3RoKCRWYWx1ZSkgPiAkUGFyYW17VmFsdWVNYXhDaGFyc30gKSB7CiAgICAgICAgJFZhbHVlID0gc3Vic3RyKCAkVmFsdWUsIDAsICRQYXJhbXtWYWx1ZU1heENoYXJzfSApIC4gJy4uLic7CiAgICB9CiAgICBpZiAoICRQYXJhbXtUaXRsZU1heENoYXJzfSAmJiBsZW5ndGgoJFRpdGxlKSA+ICRQYXJhbXtUaXRsZU1heENoYXJzfSApIHsKICAgICAgICAkVGl0bGUgPSBzdWJzdHIoICRUaXRsZSwgMCwgJFBhcmFte1RpdGxlTWF4Q2hhcnN9ICkgLiAnLi4uJzsKICAgIH0KCiAgICAjIGNyZWF0ZSByZXR1cm4gc3RydWN0dXJlCiAgICBteSAkRGF0YSA9IHsKICAgICAgICBWYWx1ZSA9PiAkVmFsdWUsCiAgICAgICAgVGl0bGUgPT4gJFRpdGxlLAogICAgfTsKCiAgICByZXR1cm4gJERhdGE7Cn0KCnN1YiBUZW1wbGF0ZVZhbHVlVHlwZUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRGaWVsZE5hbWUgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwoKICAgICMgc2V0IHRoZSBmaWVsZCB0eXBlcwogICAgbXkgJEVkaXRWYWx1ZVR5cGUgICA9ICdBUlJBWSc7CiAgICBteSAkU2VhcmNoVmFsdWVUeXBlID0gJ0FSUkFZJzsKCiAgICAjIHJldHVybiB0aGUgY29ycmVjdCBzdHJ1Y3R1cmUKICAgIGlmICggJFBhcmFte0ZpZWxkVHlwZX0gZXEgJ0VkaXQnICkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICRGaWVsZE5hbWUgPT4gJEVkaXRWYWx1ZVR5cGUsCiAgICAgICAgICAgIH0KICAgIH0KICAgIGVsc2lmICggJFBhcmFte0ZpZWxkVHlwZX0gZXEgJ1NlYXJjaCcgKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgJ1NlYXJjaF8nIC4gJEZpZWxkTmFtZSA9PiAkU2VhcmNoVmFsdWVUeXBlLAogICAgICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICAkRmllbGROYW1lICAgICAgICAgICAgID0+ICRFZGl0VmFsdWVUeXBlLAogICAgICAgICAgICAnU2VhcmNoXycgLiAkRmllbGROYW1lID0+ICRTZWFyY2hWYWx1ZVR5cGUsCiAgICAgICAgICAgIH0KICAgIH0KfQoKc3ViIE9iamVjdE1hdGNoIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEZpZWxkTmFtZSA9ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX07CgogICAgIyByZXR1cm4gZmFsc2UgaWYgZmllbGQgaXMgbm90IGRlZmluZWQKICAgIHJldHVybiAwIGlmICggIWRlZmluZWQgJFBhcmFte09iamVjdEF0dHJpYnV0ZXN9LT57JEZpZWxkTmFtZX0gKTsKCiAgICAjIHRoZSBhdHRyaWJ1dGUgbXVzdCBiZSBhbiBhcnJheQogICAgcmV0dXJuIDAgaWYgIUlzQXJyYXlSZWZXaXRoRGF0YSggJFBhcmFte09iamVjdEF0dHJpYnV0ZXN9LT57JEZpZWxkTmFtZX0gKTsKCiAgICBteSAkTWF0Y2g7CgogICAgIyBzZWFyY2ggaW4gYWxsIHZhbHVlcyBmb3IgdGhpcyBhdHRyaWJ1dGUKICAgIFZBTFVFOgogICAgZm9yIG15ICRBdHRyaWJ1dGVWYWx1ZSAoIEB7ICRQYXJhbXtPYmplY3RBdHRyaWJ1dGVzfS0+eyRGaWVsZE5hbWV9IH0gKSB7CgogICAgICAgIG5leHQgVkFMVUUgaWYgIWRlZmluZWQgJEF0dHJpYnV0ZVZhbHVlOwoKICAgICAgICAjIG9ubHkgbmVlZCB0byBtYXRjaCBvbmUKICAgICAgICBpZiAoICRQYXJhbXtWYWx1ZX0gZXEgJEF0dHJpYnV0ZVZhbHVlICkgewogICAgICAgICAgICAkTWF0Y2ggPSAxOwogICAgICAgICAgICBsYXN0IFZBTFVFOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAkTWF0Y2g7Cn0KCnN1YiBQb3NzaWJsZVZhbHVlc0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybjsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHA6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK</File>
<File Location="var/packagesetup/DynamicFieldSegesTextArray.pm" Permission="664" Encode="Base64">IyAtLQojIER5bmFtaWNGaWVsZFNlZ2VzVGV4dEFycmF5LnBtIC0gY29kZSBydW4gZHVyaW5nIHBhY2thZ2UgZGUtL2luc3RhbGxhdGlvbgojIENvcHlyaWdodCAoQykgMjAxNiBzYW11ZWxkYywgaHR0cDovL3d3dy5jYW1hcmEubGVnLmJyCiMKIyB3cml0dGVuL2VkaXRlZCBieToKIyAqIG5lZG1haihhdCl5YWhvbyhkb3QpY29tCiMKIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIHZhcjo6cGFja2FnZXNldHVwOjpEeW5hbWljRmllbGRTZWdlc1RleHRBcnJheTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKdXNlIExpc3Q6OlV0aWwgcXcobWluKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcsCik7Cgo9aGVhZDEgTkFNRQoKQ29yZGVzR3JhZWZlLnBtIC0gY29kZSB0byBleGNlY3V0ZSBkdXJpbmcgcGFja2FnZSBpbnN0YWxsYXRpb24KCj1oZWFkMSBTWU5PUFNJUwoKQWxsIGZ1bmN0aW9ucwoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6Q29uZmlnOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpMb2c7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok1haW47CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OlRpbWU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkRCOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpYTUw7CgogICAgbXkgJENvbmZpZ09iamVjdCA9IEtlcm5lbDo6Q29uZmlnLT5uZXcoKTsKICAgIG15ICRMb2dPYmplY3QgICAgPSBLZXJuZWw6OlN5c3RlbTo6TG9nLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICApOwogICAgbXkgJE1haW5PYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6TWFpbi0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgKTsKICAgIG15ICRUaW1lT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlRpbWUtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICk7CiAgICBteSAkREJPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6REItPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgPT4gJE1haW5PYmplY3QsCiAgICApOwogICAgbXkgJFhNTE9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpYTUwtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBEQk9iamVjdCAgICAgPT4gJERCT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICA9PiAkTWFpbk9iamVjdCwKICAgICk7CiAgICBteSAkQ29kZU9iamVjdCA9IHZhcjo6cGFja2FnZXNldHVwOjpDb3JkZXNHcmFlZmUtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgPT4gJE1haW5PYmplY3QsCiAgICAgICAgVGltZU9iamVjdCAgID0+ICRUaW1lT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgWE1MT2JqZWN0ICAgID0+ICRYTUxPYmplY3QsCiAgICApOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGNyZWF0ZSBhZGRpdGlvbmFsIG9iamVjdHMuLi4KICAgICRTZWxmLT57RHluYW1pY0ZpZWxkT2JqZWN0fSAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpOwogICAgJFNlbGYtPntWYWxpZE9iamVjdH0gICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKTsKCiAgICAjIGRlZmluZSB2YWxpZCBsaXN0CiAgICBteSAlVmFsaWRsaXN0ID0gJFNlbGYtPntWYWxpZE9iamVjdH0tPlZhbGlkTGlzdCgpOwogICAgbXkgJVRtcEhhc2gyICA9IHJldmVyc2UoJVZhbGlkbGlzdCk7CiAgICAkU2VsZi0+e1JldmVyc2VWYWxpZExpc3R9ID0gXCVUbXBIYXNoMjsKICAgICRTZWxmLT57VmFsaWRMaXN0fSAgICAgICAgPSBcJVZhbGlkbGlzdDsKCiAgICAjIGNyZWF0ZSBuZWVkZWQgc3lzY29uZmlnIG9iamVjdC4uLgogICAgJFNlbGYtPntTeXNDb25maWdPYmplY3R9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpOwogICAgJFNlbGYtPntTeXNDb25maWdPYmplY3R9LT5Xcml0ZURlZmF1bHQoKTsKICAgIG15IEBaWlpGaWxlcyA9ICgKICAgICAgICAnWlpaQUF1dG8ucG0nLAogICAgICAgICdaWlpBdXRvLnBtJywKICAgICk7CgogICAgIyByZWxvYWQgdGhlIFpaWiBmaWxlcyAobW9kX3Blcmwgd29ya2Fyb3VuZCkKICAgIGZvciBteSAkWlpaRmlsZSAoQFpaWkZpbGVzKSB7CiAgICAgICAgUFJFRklYOgogICAgICAgIGZvciBteSAkUHJlZml4IChASU5DKSB7CiAgICAgICAgICAgIG15ICRGaWxlID0gJFByZWZpeCAuICcvS2VybmVsL0NvbmZpZy9GaWxlcy8nIC4gJFpaWkZpbGU7CiAgICAgICAgICAgIGlmICggIS1mICRGaWxlICkgewogICAgICAgICAgICAgICAgbmV4dCBQUkVGSVgKICAgICAgICAgICAgfQogICAgICAgICAgICBkbyAkRmlsZTsKICAgICAgICAgICAgbGFzdCBQUkVGSVg7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBDb2RlSW5zdGFsbCgpCgpydW4gdGhlIGNvZGUgaW5zdGFsbCBwYXJ0CgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlSW5zdGFsbCgpOwoKPWN1dAoKc3ViIENvZGVJbnN0YWxsIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIENvZGVSZWluc3RhbGwoKQoKcnVuIHRoZSBjb2RlIHJlaW5zdGFsbCBwYXJ0CgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlUmVpbnN0YWxsKCk7Cgo9Y3V0CgpzdWIgQ29kZVJlaW5zdGFsbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBDb2RlVXBncmFkZSgpCgpydW4gdGhlIGNvZGUgdXBncmFkZSBwYXJ0CgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlVXBncmFkZSgpOwoKPWN1dAoKc3ViIENvZGVVcGdyYWRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIENvZGVVbmluc3RhbGwoKQoKcnVuIHRoZSBjb2RlIHVuaW5zdGFsbCBwYXJ0CgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlVW5pbnN0YWxsKCk7Cgo9Y3V0CgpzdWIgQ29kZVVuaW5zdGFsbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgcmVtb3ZlIER5bmFtaWMgRmllbGRzIGFuZCBpdHMgdmFsdWVzCiAgICAjJFNlbGYtPl9EeW5hbWljRmllbGRzRGVsZXRlKCk7CgogICAgcmV0dXJuIDE7Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgSW50ZXJuYWwgZnVuY3Rpb25zCgoKCj1pdGVtIF9EeW5hbWljRmllbGRzRGVsZXRlKCkKCmRlbGV0ZSBhbGwgZXhpc3RpbmcgZHluYW1pYyBmaWVsZHMgZm9yIEZBUQoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+X0R5bmFtaWNGaWVsZHNEZWxldGUoKTsKCj1jdXQKCnN1YiBfRHluYW1pY0ZpZWxkc0RlbGV0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICREeW5hbWljRmllbGRPYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKTsKICAgIG15ICREeW5hbWljRmllbGRWYWx1ZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGRWYWx1ZScpOwoKICAgICMgZ2V0IHRoZSBsaXN0IG9mIEZBUSBkeW5hbWljIGZpZWxkcyAodmFsaWQgYW5kIGludmFsaWQgb25lcykKICAgIG15ICREeW5hbWljRmllbGRMaXN0ID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgID0+IDAsCiAgICApOwoKICAgICMgZGVsZXRlIHRoZSBkeW5hbWljIGZpZWxkcwogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGQgKCBAeyREeW5hbWljRmllbGRMaXN0fSApIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAoCiAgICAgICAgICAgICREeW5hbWljRmllbGQtPntGaWVsZFR5cGV9IG5lICdTZWdlc1RleHRBcnJheScKICAgICAgICApOwoKICAgICAgICAjIGRlbGV0ZSBhbGwgZmllbGQgdmFsdWVzCiAgICAgICAgbXkgJFZhbHVlc0RlbGV0ZVN1Y2Nlc3MgPSAkRHluYW1pY0ZpZWxkVmFsdWVPYmplY3QtPkFsbFZhbHVlc0RlbGV0ZSgKICAgICAgICAgICAgRmllbGRJRCA9PiAkRHluYW1pY0ZpZWxkLT57SUR9LAogICAgICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyB2YWx1ZXMgY291bGQgYmUgZGVsZXRlZAogICAgICAgIGlmICgkVmFsdWVzRGVsZXRlU3VjY2VzcykgewoKICAgICAgICAgICAgIyBkZWxldGUgZmllbGQKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGREZWxldGUoCiAgICAgICAgICAgICAgICBJRCAgICAgPT4gJER5bmFtaWNGaWVsZC0+e0lEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBjaGVjayBlcnJvcgogICAgICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvdWxkIG5vdCBkZWxldGUgZHluYW1pYyBmaWVsZCAnJER5bmFtaWNGaWVsZC0+e05hbWV9JyEiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyB2YWx1ZXMgY291bGQgbm90IGJlIGRlbGV0ZWQKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvdWxkIG5vdCBkZWxldGUgdmFsdWVzIGZvciBkeW5hbWljIGZpZWxkICckRHluYW1pY0ZpZWxkLT57TmFtZX0nISIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAxOwp9CgojIEVPIEludGVybmFsIGZ1bmN0aW9ucwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgU29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgoKPWN1dAoK</File>
</Filelist>
<DatabaseInstall>
</DatabaseInstall>
<DatabaseUpgrade>
</DatabaseUpgrade>
<DatabaseReinstall>
</DatabaseReinstall>
<DatabaseUninstall>
</DatabaseUninstall>
</otrs_package>