Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php @eval("?>".base64_decode("DQo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9yZWRtb25kLm..
Decoded Output download
?>b'
<link rel="stylesheet" href="css/redmond.calendars.picker.css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="js/jquery.plugin.js"></script>
<script src="js/jquery.calendars.js"></script>
<script src="js/jquery.calendars.plus.js"></script>
<script src="js/jquery.calendars.picker.js"></script>
<script src="js/jquery.calendars.ethiopian.js"></script>
<script src="js/jquery.calendars.ethiopian-am.js"></script>
<script type="text/javascript" src="js/jquery.calendars.picker-am.js"></script>
<script>
$(function() {
var calendar = $.calendars.instance(\'ethiopian\',\'am\');
$(\'#fromdate\').calendarsPicker({calendar: calendar});
$(\'#todate\').calendarsPicker({calendar: calendar});
$(\'#inlineDatepicker\').calendarsPicker({calendar: calendar, onSelect: showDate});
});
// function showDate(date) {
// alert(\'The date chosen is \' + date);
// }
</script>
<?php
//include \'connect_test_db.php\';
$searchErr = \'\';
$employee_details=\'\';
if(isset($_POST[\'submit\']))
{
if(!empty($_POST[\'unit\']))
{
for ($x = 1; $x <= 2; $x++) {
if ($x == 1){
$dy = $_POST[\'fromdate\'];
}
else if ($x == 2){
$dy = $_POST[\'todate\'];
}
// $dy = $_POST[\'ActualBidOpeningDate\'];
$emonth = substr($dy, 3, 2);
$eday = substr($dy, 0, 2);
$eyear = substr($dy, 6, 4);
$month = (int)$emonth;
$day = (int)$eday;
$year = (int)$eyear;
$ec_len = ($month - 1) * 30 + $day;
$gcDay = 0;
$gcMonth = 0;
$gcYear = 0;
$leap = $year % 4 === 0;
if ($leap) {
if ($ec_len >= 112 && $ec_len < 143) {
$gcMonth = 1;
$gcDay = $ec_len - 111;
$gcYear = $year + 8;
} else if ($ec_len >= 143 && $ec_len < 172) {
$gcMonth = 2;
$gcDay = $ec_len - 142;
$gcYear = $year + 8;
} else if ($ec_len >= 172 && $ec_len < 203) {
$gcMonth = 3;
$gcDay = $ec_len - 171;
$gcYear = $year + 8;
} else if ($ec_len >= 203 && $ec_len < 233) {
$gcMonth = 4;
$gcDay = $ec_len - 202;
$gcYear = $year + 8;
} else if ($ec_len >= 233 && $ec_len < 264) {
$gcMonth = 5;
$gcDay = $ec_len - 232;
$gcYear = $year + 8;
} else if ($ec_len >= 264 && $ec_len < 294) {
$gcMonth = 6;
$gcDay = $ec_len - 263;
$gcYear = $year + 8;
} else if ($ec_len >= 294 && $ec_len < 325) {
$gcMonth = 7;
$gcDay = $ec_len - 293;
$gcYear = $year + 8;
} else if ($ec_len >= 325 && $ec_len < 356) {
$gcMonth = 8;
$gcDay = $ec_len - 324;
$gcYear = $year + 8;
} else if ($ec_len >= 356 && $ec_len <= 366) {
$gcMonth = 9;
$gcDay = $ec_len - 355;
$gcYear = $year + 8;
} else if ($ec_len >= 1 && $ec_len < 20) {
$gcMonth = 9;
$gcDay = $ec_len + 11;
$gcYear = $year + 7;
} else if ($ec_len >= 20 && $ec_len < 51) {
$gcMonth = 10;
$gcDay = $ec_len - 19;
$gcYear = $year + 7;
} else if ($ec_len >= 51 && $ec_len < 81) {
$gcMonth = 11;
$gcDay = $ec_len - 50;
$gcYear = $year + 7;
} else if ($ec_len >= 81 && $ec_len < 112) {
$gcMonth = 12;
$gcDay = $ec_len - 80;
$gcYear = $year + 7;
}
} else {
if ($ec_len >= 113 && $ec_len < 144) {
$gcMonth = 1;
$gcDay = $ec_len - 112;
$gcYear = $year + 8;
} else if ($ec_len >= 144 && $ec_len < 172) {
$gcMonth = 2;
$gcDay = $ec_len - 143;
$gcYear = $year + 8;
} else if ($ec_len >= 172 && $ec_len < 203) {
$gcMonth = 3;
$gcDay = $ec_len - 171;
$gcYear = $year + 8;
} else if ($ec_len >= 203 && $ec_len < 233) {
$gcMonth = 4;
$gcDay = $ec_len - 202;
$gcYear = $year + 8;
} else if ($ec_len >= 233 && $ec_len < 264) {
$gcMonth = 5;
$gcDay = $ec_len - 232;
$gcYear = $year + 8;
} else if ($ec_len >= 264 && $ec_len < 294) {
$gcMonth = 6;
$gcDay = $ec_len - 263;
$gcYear = $year + 8;
} else if ($ec_len >= 294 && $ec_len < 325) {
$gcMonth = 7;
$gcDay = $ec_len - 293;
$gcYear = $year + 8;
} else if ($ec_len >= 325 && $ec_len < 356) {
$gcMonth = 8;
$gcDay = $ec_len - 324;
$gcYear = $year + 8;
} else if ($ec_len >= 356 && $ec_len <= 366) {
$gcMonth = 9;
$gcDay = $ec_len - 355;
$gcYear = $year + 8;
} else if ($ec_len >= 1 && $ec_len < 21) {
$gcMonth = 9;
$gcDay = $ec_len + 10;
$gcYear = $year + 7;
} else if ($ec_len >= 21 && $ec_len < 52) {
$gcMonth = 10;
$gcDay = $ec_len - 20;
$gcYear = $year + 7;
} else if ($ec_len >= 52 && $ec_len < 82) {
$gcMonth = 11;
$gcDay = $ec_len - 51;
$gcYear = $year + 7;
} else if ($ec_len >= 82 && $ec_len < 113) {
$gcMonth = 12;
$gcDay = $ec_len - 81;
$gcYear = $year + 7;
}
}
if ($x == 1){
$fdate = $gcYear . "-" . $gcMonth . "-" . $gcDay;
}
else if ($x == 2){
$tdate = $gcYear . "-" . $gcMonth . "-" . $gcDay;
}
}
// $fdate=$_POST[\'fromdate\'];
// $tdate=$_POST[\'todate\'];
$search2 = $_POST[\'unit\'];
$query = "SELECT distinct stock_list.id,stock_list.date_created,item_list.name as servicename, item_list.supplier_id as share, supplier_list.name as staffname,
stock_list.quantity,stock_list.price,stock_list.total FROM `stock_list`,`item_list`,`supplier_list`
where stock_list.item_id=item_list.id and stock_list.unit=supplier_list.id and supplier_list.name = \'$search2\' and date(stock_list.date_created) between \'$fdate\' and \'$tdate\' order by `date_created` desc";
$stmt = $conn->prepare($query);
$stmt->execute();
$resultSet = $stmt->get_result();
$employee_details = $resultSet->fetch_all(MYSQLI_ASSOC);
}
else
{
$searchErr = "Please enter the information";
}
}
?>
<link rel="stylesheet" href="bootstrap.css" crossorigin="anonymous">
<!-- Optional theme -->
<link rel="stylesheet" href="bootstrap-theme.css" crossorigin="anonymous">
<style>
.container{
width:100%;
height:30%;
padding:20px;
}
select[readonly].select2-hidden-accessible + .select2-container {
pointer-events: none;
touch-action: none;
background: #eee;
box-shadow: none;
}
select[readonly].select2-hidden-accessible + .select2-container .select2-selection {
background: #eee;
box-shadow: none;
}
th{
color: white;
background: #1F8DD6;
}
.align-items-end{
color: white;
background: #a591c4;
}
.text-inf{
color: white;
background: #1F8DD6;
}
</style>
<legend class="text-inf"> </legend>
<form method="post" id="sale-form" name="sale-form" action="">
<!-- <form method="post" id="sale-form" name="sale-form"> -->
<div class="container-fluid">
<hr>
<fieldset>
<div class="row justify-content-center align-items-end">
<?php
$item_arr = array();
$cost_arr = array();
$item = $conn->query("SELECT * FROM `item_list` where status = 1 order by `id` asc");
?>
<?php
$supp_arr = array();
$staff_arr = array();
$supp = $conn->query("SELECT * FROM `supplier_list` where status = 1 order by `id` asc");
while($row=$supp->fetch_assoc()):
$supp_arr[$row[\'name\']] = $row;
$staff_arr[$row[\'name\']] = $row[\'id\'];
endwhile;
?>
<div class="col-md-3">
<div class="form-group">
<label for="unit" class="control-label"> </label>
<select name="unit" class="custom-select select2" required="true">
<option disabled selected></option>
<?php foreach($supp_arr as $n =>$p): ?>
<option value="<?php echo $n ?>"> <?php echo $p[\'name\'] ?></option>
<?php endforeach; ?>
</select>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label for="datefrom" class="control-label"> </label>
<!-- <input type="date" class="form-control1" name="fromdate" id="fromdate" value="" required="true"> -->
<!-- <p><input type="text" id="popupDatepicker"></p> -->
<p><input type="text" name="fromdate" id="fromdate" class="form-control" style=\'background:#fff;\' readonly></p>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label for="dateto" class="control-label"> </label>
<!-- <input type="date" class="form-control1" name="todate" id="todate" value="" required="true"> -->
<p><input type="text" name="todate" id="todate" class="form-control" style=\'background:#fff;\' readonly></p>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<button type="submit" name="submit" class="btn btn-flat btn-primary">Search</button>
</div>
</div>
</fieldset>
<hr>
</div>
</form>
<div class="card-body">
<div class="container-fluid">
<div class="container-fluid">
<table class="table table-bordered table-stripped">
<colgroup>
<col width="5%">
<col width="15%">
<col width="15%">
<col width="5%">
<col width="10%">
<col width="10%">
<col width="10%">
<col width="10%">
</colgroup>
<thead>
<tr>
<th>. .</th>
<th> </th>
<th> </th>
<th></th>
<th> </th>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<?php
if(!$employee_details)
{
// echo \'<tr>No data found</tr>\';
}
else{
// echo \'<tr>Report for </tr>\'; echo $search2; echo \'<tr> from </tr>\'; echo $_POST[\'fromdate\']; echo \'<tr> to </tr>\'; echo $_POST[\'todate\'];
echo \'<tr> </tr>\'; echo $search2; echo \'<tr> </tr>\'; echo $_POST[\'fromdate\']; echo \'<tr> </tr>\'; echo $_POST[\'todate\']; echo \'<tr> </tr>\';
$totalsale = 0;
$deduction = 0;
$totaldeduction = 0;
$totalshare = 0;
foreach($employee_details as $key=>$value)
{
$totalsale += $value[\'total\'];
$totalshare += $value[\'share\'] * $value[\'quantity\'];
// $share = $value[\'share\'] * 2;
$deduction = $value[\'total\'] - ($value[\'share\'] * $value[\'quantity\'] * 2);
$totaldeduction += $deduction;
?>
<tr>
<td><?php echo $key+1;?></td>
<!-- <td><?php echo $value[\'id\'];?></td> -->
<!-- <td><?php echo $value[\'date_created\'];?></td> -->
<td><?php echo $value[\'staffname\'];?></td>
<td><?php echo $value[\'servicename\'];?></td>
<td class="text-right py-1 px-2"><?php echo $value[\'quantity\'];?></td>
<td class="text-right py-1 px-2"><?php echo $value[\'price\'];?></td>
<td class="text-right py-1 px-2"><?php echo $value[\'total\'];?></td>
<td class="text-right py-1 px-2"><?php echo $deduction;?></td>
<td class="text-right py-1 px-2"><?php echo $value[\'share\'] * $value[\'quantity\'];?></td>
</tr>
<?php
}
}
?>
</tbody>
<tfoot>
<tr>
<th class="text-right py-1 px-2" colspan="5"> </th>
<th class="text-right py-1 px-2 grand-total">
<?php
if(!$employee_details)
{
}
else{
echo $totalsale;
}?> </th>
<th class="text-right py-1 px-2 grand-total">
<?php
if(!$employee_details)
{
}
else{
echo $totaldeduction;
}?>
</th>
<th class="text-right py-1 px-2 grand-total">
<?php
if(!$employee_details)
{
}
else{
echo $totalshare;
}?>
</th>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
'
Did this file decode correctly?
Original Code
<?php @eval("?>".base64_decode("DQo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9yZWRtb25kLmNhbGVuZGFycy5waWNrZXIuY3NzIj4NCg0KPHNjcmlwdCBzcmM9Imh0dHA6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9qcXVlcnkvMS4xMS4wL2pxdWVyeS5taW4uanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCBzcmM9ImpzL2pxdWVyeS5wbHVnaW4uanMiPjwvc2NyaXB0Pg0KDQo8c2NyaXB0IHNyYz0ianMvanF1ZXJ5LmNhbGVuZGFycy5qcyI+PC9zY3JpcHQ+DQo8c2NyaXB0IHNyYz0ianMvanF1ZXJ5LmNhbGVuZGFycy5wbHVzLmpzIj48L3NjcmlwdD4NCjxzY3JpcHQgc3JjPSJqcy9qcXVlcnkuY2FsZW5kYXJzLnBpY2tlci5qcyI+PC9zY3JpcHQ+DQoNCjxzY3JpcHQgc3JjPSJqcy9qcXVlcnkuY2FsZW5kYXJzLmV0aGlvcGlhbi5qcyI+PC9zY3JpcHQ+DQo8c2NyaXB0IHNyYz0ianMvanF1ZXJ5LmNhbGVuZGFycy5ldGhpb3BpYW4tYW0uanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvanF1ZXJ5LmNhbGVuZGFycy5waWNrZXItYW0uanMiPjwvc2NyaXB0Pg0KDQo8c2NyaXB0Pg0KJChmdW5jdGlvbigpIHsNCgkgdmFyIGNhbGVuZGFyID0gJC5jYWxlbmRhcnMuaW5zdGFuY2UoJ2V0aGlvcGlhbicsJ2FtJyk7DQoJJCgnI2Zyb21kYXRlJykuY2FsZW5kYXJzUGlja2VyKHtjYWxlbmRhcjogY2FsZW5kYXJ9KTsNCiAgICAkKCcjdG9kYXRlJykuY2FsZW5kYXJzUGlja2VyKHtjYWxlbmRhcjogY2FsZW5kYXJ9KTsNCgkkKCcjaW5saW5lRGF0ZXBpY2tlcicpLmNhbGVuZGFyc1BpY2tlcih7Y2FsZW5kYXI6IGNhbGVuZGFyLCBvblNlbGVjdDogc2hvd0RhdGV9KTsNCn0pOw0KDQovLyBmdW5jdGlvbiBzaG93RGF0ZShkYXRlKSB7DQovLyAJYWxlcnQoJ1RoZSBkYXRlIGNob3NlbiBpcyAnICsgZGF0ZSk7DQovLyB9DQo8L3NjcmlwdD4NCg0KDQoNCg0KPD9waHANCi8vaW5jbHVkZSAnY29ubmVjdF90ZXN0X2RiLnBocCc7DQokc2VhcmNoRXJyID0gJyc7DQokZW1wbG95ZWVfZGV0YWlscz0nJzsNCmlmKGlzc2V0KCRfUE9TVFsnc3VibWl0J10pKQ0KDQp7DQoNCg0KICAgIGlmKCFlbXB0eSgkX1BPU1RbJ3VuaXQnXSkpDQogICAgew0KDQoNCiAgICAgICAgZm9yICgkeCA9IDE7ICR4IDw9IDI7ICR4KyspIHsNCgkJDQogICAgICAgICAgICBpZiAoJHggPT0gMSl7ICAgIA0KICAgICAgICAgICAgICAgICRkeSA9ICRfUE9TVFsnZnJvbWRhdGUnXTsgIA0KICAgICAgICAgICAgfSAgICANCiAgICAgICAgICAgIGVsc2UgaWYgKCR4ID09IDIpeyAgDQogICAgICAgICAgICAgICAgJGR5ID0gJF9QT1NUWyd0b2RhdGUnXTsgICANCiAgICAgICAgICAgIH0gICAgIA0KICAgICAgICAgICAgDQogICAgICAgICAgDQogICAgICAgICAgICAvLyAkZHkgPSAkX1BPU1RbJ0FjdHVhbEJpZE9wZW5pbmdEYXRlJ107DQogICAgICAgICAgICAkZW1vbnRoID0gc3Vic3RyKCRkeSwgMywgMik7IA0KICAgICAgICAgICAgJGVkYXkgPSBzdWJzdHIoJGR5LCAwLCAyKTsgDQogICAgICAgICAgICAkZXllYXIgPSBzdWJzdHIoJGR5LCA2LCA0KTsNCiAgICAgICAgDQogICAgICAgICAgICAkbW9udGggPSAoaW50KSRlbW9udGg7DQogICAgICAgICAgICAkZGF5ID0gKGludCkkZWRheTsNCiAgICAgICAgICAgICR5ZWFyID0gKGludCkkZXllYXI7DQogICAgICAgIA0KICAgICAgICAgICAgJGVjX2xlbiA9ICgkbW9udGggLSAxKSAqIDMwICsgJGRheTsNCiAgICAgICAgDQogICAgICAgICAgICAkZ2NEYXkgPSAwOw0KICAgICAgICAgICAgJGdjTW9udGggPSAwOw0KICAgICAgICAgICAgJGdjWWVhciA9IDA7DQogICAgICAgIA0KICAgICAgICAgICAgJGxlYXAgPSAkeWVhciAlIDQgPT09IDA7DQogICAgICAgIA0KICAgICAgICAgICAgaWYgKCRsZWFwKSB7DQogICAgICAgICAgICAgICAgaWYgKCRlY19sZW4gPj0gMTEyICYmICRlY19sZW4gPCAxNDMpIHsNCiAgICAgICAgICAgICAgICAgICAgJGdjTW9udGggPSAxOw0KICAgICAgICAgICAgICAgICAgICAkZ2NEYXkgPSAkZWNfbGVuIC0gMTExOw0KICAgICAgICAgICAgICAgICAgICAkZ2NZZWFyID0gJHllYXIgKyA4Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGVjX2xlbiA+PSAxNDMgJiYgJGVjX2xlbiA8IDE3Mikgew0KICAgICAgICAgICAgICAgICAgICAkZ2NNb250aCA9IDI7DQogICAgICAgICAgICAgICAgICAgICRnY0RheSA9ICRlY19sZW4gLSAxNDI7DQogICAgICAgICAgICAgICAgICAgICRnY1llYXIgPSAkeWVhciArIDg7DQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkZWNfbGVuID49IDE3MiAmJiAkZWNfbGVuIDwgMjAzKSB7DQogICAgICAgICAgICAgICAgICAgICRnY01vbnRoID0gMzsNCiAgICAgICAgICAgICAgICAgICAgJGdjRGF5ID0gJGVjX2xlbiAtIDE3MTsNCiAgICAgICAgICAgICAgICAgICAgJGdjWWVhciA9ICR5ZWFyICsgODsNCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRlY19sZW4gPj0gMjAzICYmICRlY19sZW4gPCAyMzMpIHsNCiAgICAgICAgICAgICAgICAgICAgJGdjTW9udGggPSA0Ow0KICAgICAgICAgICAgICAgICAgICAkZ2NEYXkgPSAkZWNfbGVuIC0gMjAyOw0KICAgICAgICAgICAgICAgICAgICAkZ2NZZWFyID0gJHllYXIgKyA4Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGVjX2xlbiA+PSAyMzMgJiYgJGVjX2xlbiA8IDI2NCkgew0KICAgICAgICAgICAgICAgICAgICAkZ2NNb250aCA9IDU7DQogICAgICAgICAgICAgICAgICAgICRnY0RheSA9ICRlY19sZW4gLSAyMzI7DQogICAgICAgICAgICAgICAgICAgICRnY1llYXIgPSAkeWVhciArIDg7DQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkZWNfbGVuID49IDI2NCAmJiAkZWNfbGVuIDwgMjk0KSB7DQogICAgICAgICAgICAgICAgICAgICRnY01vbnRoID0gNjsNCiAgICAgICAgICAgICAgICAgICAgJGdjRGF5ID0gJGVjX2xlbiAtIDI2MzsNCiAgICAgICAgICAgICAgICAgICAgJGdjWWVhciA9ICR5ZWFyICsgODsNCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRlY19sZW4gPj0gMjk0ICYmICRlY19sZW4gPCAzMjUpIHsNCiAgICAgICAgICAgICAgICAgICAgJGdjTW9udGggPSA3Ow0KICAgICAgICAgICAgICAgICAgICAkZ2NEYXkgPSAkZWNfbGVuIC0gMjkzOw0KICAgICAgICAgICAgICAgICAgICAkZ2NZZWFyID0gJHllYXIgKyA4Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGVjX2xlbiA+PSAzMjUgJiYgJGVjX2xlbiA8IDM1Nikgew0KICAgICAgICAgICAgICAgICAgICAkZ2NNb250aCA9IDg7DQogICAgICAgICAgICAgICAgICAgICRnY0RheSA9ICRlY19sZW4gLSAzMjQ7DQogICAgICAgICAgICAgICAgICAgICRnY1llYXIgPSAkeWVhciArIDg7DQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkZWNfbGVuID49IDM1NiAmJiAkZWNfbGVuIDw9IDM2Nikgew0KICAgICAgICAgICAgICAgICAgICAkZ2NNb250aCA9IDk7DQogICAgICAgICAgICAgICAgICAgICRnY0RheSA9ICRlY19sZW4gLSAzNTU7DQogICAgICAgICAgICAgICAgICAgICRnY1llYXIgPSAkeWVhciArIDg7DQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkZWNfbGVuID49IDEgJiYgJGVjX2xlbiA8IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICRnY01vbnRoID0gOTsNCiAgICAgICAgICAgICAgICAgICAgJGdjRGF5ID0gJGVjX2xlbiArIDExOw0KICAgICAgICAgICAgICAgICAgICAkZ2NZZWFyID0gJHllYXIgKyA3Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGVjX2xlbiA+PSAyMCAmJiAkZWNfbGVuIDwgNTEpIHsNCiAgICAgICAgICAgICAgICAgICAgJGdjTW9udGggPSAxMDsNCiAgICAgICAgICAgICAgICAgICAgJGdjRGF5ID0gJGVjX2xlbiAtIDE5Ow0KICAgICAgICAgICAgICAgICAgICAkZ2NZZWFyID0gJHllYXIgKyA3Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGVjX2xlbiA+PSA1MSAmJiAkZWNfbGVuIDwgODEpIHsNCiAgICAgICAgICAgICAgICAgICAgJGdjTW9udGggPSAxMTsNCiAgICAgICAgICAgICAgICAgICAgJGdjRGF5ID0gJGVjX2xlbiAtIDUwOw0KICAgICAgICAgICAgICAgICAgICAkZ2NZZWFyID0gJHllYXIgKyA3Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGVjX2xlbiA+PSA4MSAmJiAkZWNfbGVuIDwgMTEyKSB7DQogICAgICAgICAgICAgICAgICAgICRnY01vbnRoID0gMTI7DQogICAgICAgICAgICAgICAgICAgICRnY0RheSA9ICRlY19sZW4gLSA4MDsNCiAgICAgICAgICAgICAgICAgICAgJGdjWWVhciA9ICR5ZWFyICsgNzsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIGlmICgkZWNfbGVuID49IDExMyAmJiAkZWNfbGVuIDwgMTQ0KSB7DQogICAgICAgICAgICAgICAgICAgICRnY01vbnRoID0gMTsNCiAgICAgICAgICAgICAgICAgICAgJGdjRGF5ID0gJGVjX2xlbiAtIDExMjsNCiAgICAgICAgICAgICAgICAgICAgJGdjWWVhciA9ICR5ZWFyICsgODsNCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRlY19sZW4gPj0gMTQ0ICYmICRlY19sZW4gPCAxNzIpIHsNCiAgICAgICAgICAgICAgICAgICAgJGdjTW9udGggPSAyOw0KICAgICAgICAgICAgICAgICAgICAkZ2NEYXkgPSAkZWNfbGVuIC0gMTQzOw0KICAgICAgICAgICAgICAgICAgICAkZ2NZZWFyID0gJHllYXIgKyA4Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGVjX2xlbiA+PSAxNzIgJiYgJGVjX2xlbiA8IDIwMykgew0KICAgICAgICAgICAgICAgICAgICAkZ2NNb250aCA9IDM7DQogICAgICAgICAgICAgICAgICAgICRnY0RheSA9ICRlY19sZW4gLSAxNzE7DQogICAgICAgICAgICAgICAgICAgICRnY1llYXIgPSAkeWVhciArIDg7DQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkZWNfbGVuID49IDIwMyAmJiAkZWNfbGVuIDwgMjMzKSB7DQogICAgICAgICAgICAgICAgICAgICRnY01vbnRoID0gNDsNCiAgICAgICAgICAgICAgICAgICAgJGdjRGF5ID0gJGVjX2xlbiAtIDIwMjsNCiAgICAgICAgICAgICAgICAgICAgJGdjWWVhciA9ICR5ZWFyICsgODsNCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRlY19sZW4gPj0gMjMzICYmICRlY19sZW4gPCAyNjQpIHsNCiAgICAgICAgICAgICAgICAgICAgJGdjTW9udGggPSA1Ow0KICAgICAgICAgICAgICAgICAgICAkZ2NEYXkgPSAkZWNfbGVuIC0gMjMyOw0KICAgICAgICAgICAgICAgICAgICAkZ2NZZWFyID0gJHllYXIgKyA4Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGVjX2xlbiA+PSAyNjQgJiYgJGVjX2xlbiA8IDI5NCkgew0KICAgICAgICAgICAgICAgICAgICAkZ2NNb250aCA9IDY7DQogICAgICAgICAgICAgICAgICAgICRnY0RheSA9ICRlY19sZW4gLSAyNjM7DQogICAgICAgICAgICAgICAgICAgICRnY1llYXIgPSAkeWVhciArIDg7DQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkZWNfbGVuID49IDI5NCAmJiAkZWNfbGVuIDwgMzI1KSB7DQogICAgICAgICAgICAgICAgICAgICRnY01vbnRoID0gNzsNCiAgICAgICAgICAgICAgICAgICAgJGdjRGF5ID0gJGVjX2xlbiAtIDI5MzsNCiAgICAgICAgICAgICAgICAgICAgJGdjWWVhciA9ICR5ZWFyICsgODsNCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRlY19sZW4gPj0gMzI1ICYmICRlY19sZW4gPCAzNTYpIHsNCiAgICAgICAgICAgICAgICAgICAgJGdjTW9udGggPSA4Ow0KICAgICAgICAgICAgICAgICAgICAkZ2NEYXkgPSAkZWNfbGVuIC0gMzI0Ow0KICAgICAgICAgICAgICAgICAgICAkZ2NZZWFyID0gJHllYXIgKyA4Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGVjX2xlbiA+PSAzNTYgJiYgJGVjX2xlbiA8PSAzNjYpIHsNCiAgICAgICAgICAgICAgICAgICAgJGdjTW9udGggPSA5Ow0KICAgICAgICAgICAgICAgICAgICAkZ2NEYXkgPSAkZWNfbGVuIC0gMzU1Ow0KICAgICAgICAgICAgICAgICAgICAkZ2NZZWFyID0gJHllYXIgKyA4Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGVjX2xlbiA+PSAxICYmICRlY19sZW4gPCAyMSkgew0KICAgICAgICAgICAgICAgICAgICAkZ2NNb250aCA9IDk7DQogICAgICAgICAgICAgICAgICAgICRnY0RheSA9ICRlY19sZW4gKyAxMDsNCiAgICAgICAgICAgICAgICAgICAgJGdjWWVhciA9ICR5ZWFyICsgNzsNCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRlY19sZW4gPj0gMjEgJiYgJGVjX2xlbiA8IDUyKSB7DQogICAgICAgICAgICAgICAgICAgICRnY01vbnRoID0gMTA7DQogICAgICAgICAgICAgICAgICAgICRnY0RheSA9ICRlY19sZW4gLSAyMDsNCiAgICAgICAgICAgICAgICAgICAgJGdjWWVhciA9ICR5ZWFyICsgNzsNCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRlY19sZW4gPj0gNTIgJiYgJGVjX2xlbiA8IDgyKSB7DQogICAgICAgICAgICAgICAgICAgICRnY01vbnRoID0gMTE7DQogICAgICAgICAgICAgICAgICAgICRnY0RheSA9ICRlY19sZW4gLSA1MTsNCiAgICAgICAgICAgICAgICAgICAgJGdjWWVhciA9ICR5ZWFyICsgNzsNCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRlY19sZW4gPj0gODIgJiYgJGVjX2xlbiA8IDExMykgew0KICAgICAgICAgICAgICAgICAgICAkZ2NNb250aCA9IDEyOw0KICAgICAgICAgICAgICAgICAgICAkZ2NEYXkgPSAkZWNfbGVuIC0gODE7DQogICAgICAgICAgICAgICAgICAgICRnY1llYXIgPSAkeWVhciArIDc7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICANCiAgICANCiAgICAgICAgICAgIGlmICgkeCA9PSAxKXsgDQogICAgICAgICAgICAgICAgJGZkYXRlID0gJGdjWWVhciAuICItIiAuICRnY01vbnRoIC4gIi0iIC4gJGdjRGF5OyAgIA0KICAgICAgICAgICAgfSAgICANCiAgICAgICAgICAgIGVsc2UgaWYgKCR4ID09IDIpeyAgDQogICAgICAgICAgICAgICAgJHRkYXRlID0gJGdjWWVhciAuICItIiAuICRnY01vbnRoIC4gIi0iIC4gJGdjRGF5OyAgIA0KICAgICAgICAgICAgfSAgICAgDQogICAgICAgICAgICANCiAgICAgICAgICB9DQoNCiAgICAgICAgLy8gJGZkYXRlPSRfUE9TVFsnZnJvbWRhdGUnXTsNCiAgICAgICAgLy8gJHRkYXRlPSRfUE9TVFsndG9kYXRlJ107DQogICAgICAgICRzZWFyY2gyID0gJF9QT1NUWyd1bml0J107DQoNCiAgICAgICAgJHF1ZXJ5ID0gIlNFTEVDVCBkaXN0aW5jdCBzdG9ja19saXN0LmlkLHN0b2NrX2xpc3QuZGF0ZV9jcmVhdGVkLGl0ZW1fbGlzdC5uYW1lIGFzIHNlcnZpY2VuYW1lLCBpdGVtX2xpc3Quc3VwcGxpZXJfaWQgYXMgc2hhcmUsIHN1cHBsaWVyX2xpc3QubmFtZSBhcyBzdGFmZm5hbWUsDQogICAgICAgIHN0b2NrX2xpc3QucXVhbnRpdHksc3RvY2tfbGlzdC5wcmljZSxzdG9ja19saXN0LnRvdGFsIEZST00gYHN0b2NrX2xpc3RgLGBpdGVtX2xpc3RgLGBzdXBwbGllcl9saXN0YCANCiAgICAgICAgd2hlcmUgc3RvY2tfbGlzdC5pdGVtX2lkPWl0ZW1fbGlzdC5pZCBhbmQgc3RvY2tfbGlzdC51bml0PXN1cHBsaWVyX2xpc3QuaWQgYW5kIHN1cHBsaWVyX2xpc3QubmFtZSA9ICckc2VhcmNoMicgYW5kIGRhdGUoc3RvY2tfbGlzdC5kYXRlX2NyZWF0ZWQpIGJldHdlZW4gJyRmZGF0ZScgYW5kICckdGRhdGUnIG9yZGVyIGJ5IGBkYXRlX2NyZWF0ZWRgIGRlc2MiOw0KICAgICAgICAkc3RtdCA9ICRjb25uLT5wcmVwYXJlKCRxdWVyeSk7DQogICAgICAgICRzdG10LT5leGVjdXRlKCk7DQoNCiAgICAgICAgJHJlc3VsdFNldCA9ICRzdG10LT5nZXRfcmVzdWx0KCk7DQogICAgICAgICRlbXBsb3llZV9kZXRhaWxzID0gJHJlc3VsdFNldC0+ZmV0Y2hfYWxsKE1ZU1FMSV9BU1NPQyk7DQogICAgICAgICANCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgICAgICAgJHNlYXJjaEVyciA9ICJQbGVhc2UgZW50ZXIgdGhlIGluZm9ybWF0aW9uIjsNCiAgICB9DQogICAgDQp9DQogDQo/Pg0KDQoNCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iYm9vdHN0cmFwLmNzcyIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+DQo8IS0tIE9wdGlvbmFsIHRoZW1lIC0tPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJib290c3RyYXAtdGhlbWUuY3NzIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj4NCg0KDQoNCjxzdHlsZT4NCi5jb250YWluZXJ7DQogICAgd2lkdGg6MTAwJTsNCiAgICBoZWlnaHQ6MzAlOw0KICAgIHBhZGRpbmc6MjBweDsNCn0NCg0Kc2VsZWN0W3JlYWRvbmx5XS5zZWxlY3QyLWhpZGRlbi1hY2Nlc3NpYmxlICsgLnNlbGVjdDItY29udGFpbmVyIHsNCiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7DQogICAgICAgIHRvdWNoLWFjdGlvbjogbm9uZTsNCiAgICAgICAgYmFja2dyb3VuZDogI2VlZTsNCiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsNCiAgICB9DQoNCiAgICBzZWxlY3RbcmVhZG9ubHldLnNlbGVjdDItaGlkZGVuLWFjY2Vzc2libGUgKyAuc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItc2VsZWN0aW9uIHsNCiAgICAgICAgYmFja2dyb3VuZDogI2VlZTsNCiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsNCiAgICB9DQoNCiAgICB0aHsNCiAgY29sb3I6IHdoaXRlOw0KICBiYWNrZ3JvdW5kOiAjMUY4REQ2Ow0KfQ0KDQouYWxpZ24taXRlbXMtZW5kew0KICBjb2xvcjogd2hpdGU7DQogIGJhY2tncm91bmQ6ICNhNTkxYzQ7DQp9DQoNCi50ZXh0LWluZnsNCiAgY29sb3I6IHdoaXRlOw0KICBiYWNrZ3JvdW5kOiAjMUY4REQ2Ow0KfQ0KDQo8L3N0eWxlPg0KDQo8bGVnZW5kIGNsYXNzPSJ0ZXh0LWluZiI+4Yuo4Ymw4YqT4Yyg4YiNIOGIquGNluGIreGJtSDhjIjhjL08L2xlZ2VuZD4NCg0KICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgaWQ9InNhbGUtZm9ybSIgbmFtZT0ic2FsZS1mb3JtIiBhY3Rpb249IiI+DQogICAgICA8IS0tICA8Zm9ybSBtZXRob2Q9InBvc3QiIGlkPSJzYWxlLWZvcm0iIG5hbWU9InNhbGUtZm9ybSI+IC0tPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyLWZsdWlkIj4NCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICA8aHI+DQogICAgICAgICAgICAgICAgPGZpZWxkc2V0Pg0KICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWVuZCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpdGVtX2FyciA9IGFycmF5KCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb3N0X2FyciA9IGFycmF5KCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpdGVtID0gJGNvbm4tPnF1ZXJ5KCJTRUxFQ1QgKiBGUk9NIGBpdGVtX2xpc3RgIHdoZXJlIHN0YXR1cyA9IDEgb3JkZXIgYnkgYGlkYCBhc2MiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3VwcF9hcnIgPSBhcnJheSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3RhZmZfYXJyID0gYXJyYXkoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN1cHAgPSAkY29ubi0+cXVlcnkoIlNFTEVDVCAqIEZST00gYHN1cHBsaWVyX2xpc3RgIHdoZXJlIHN0YXR1cyA9IDEgb3JkZXIgYnkgYGlkYCBhc2MiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUoJHJvdz0kc3VwcC0+ZmV0Y2hfYXNzb2MoKSk6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3VwcF9hcnJbJHJvd1snbmFtZSddXSA9ICRyb3c7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3RhZmZfYXJyWyRyb3dbJ25hbWUnXV0gPSAkcm93WydpZCddOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmR3aGlsZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJ1bml0IiBjbGFzcz0iY29udHJvbC1sYWJlbCI+4Yqg4YyI4YiN4YyN4YiO4Ymx4YqVIOGLqOGIsOGMoOGLjSDhiaPhiIjhiJnhi6s8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0ICBuYW1lPSJ1bml0IiBjbGFzcz0iY3VzdG9tLXNlbGVjdCBzZWxlY3QyIiByZXF1aXJlZD0idHJ1ZSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIGRpc2FibGVkIHNlbGVjdGVkPjwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZm9yZWFjaCgkc3VwcF9hcnIgYXMgJG4gPT4kcCk6ID8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iPD9waHAgZWNobyAkbiA/PiI+IDw/cGhwIGVjaG8gJHBbJ25hbWUnXSA/Pjwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZW5kZm9yZWFjaDsgPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJkYXRlZnJvbSIgY2xhc3M9ImNvbnRyb2wtbGFiZWwiPuGKqCDhiYDhipUgPC9sYWJlbD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8aW5wdXQgdHlwZT0iZGF0ZSIgY2xhc3M9ImZvcm0tY29udHJvbDEiIG5hbWU9ImZyb21kYXRlIiBpZD0iZnJvbWRhdGUiIHZhbHVlPSIiIHJlcXVpcmVkPSJ0cnVlIj4gLS0+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxwPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0icG9wdXBEYXRlcGlja2VyIj48L3A+IC0tPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImZyb21kYXRlIiBpZD0iZnJvbWRhdGUiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIHN0eWxlPSdiYWNrZ3JvdW5kOiNmZmY7JyByZWFkb25seT48L3A+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iZGF0ZXRvIiBjbGFzcz0iY29udHJvbC1sYWJlbCI+4Yql4Yi14YqoIOGJgOGKlTwvbGFiZWw+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGlucHV0IHR5cGU9ImRhdGUiIGNsYXNzPSJmb3JtLWNvbnRyb2wxIiBuYW1lPSJ0b2RhdGUiIGlkPSJ0b2RhdGUiIHZhbHVlPSIiIHJlcXVpcmVkPSJ0cnVlIj4gLS0+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idG9kYXRlIiBpZD0idG9kYXRlIiBjbGFzcz0iZm9ybS1jb250cm9sIiBzdHlsZT0nYmFja2dyb3VuZDojZmZmOycgcmVhZG9ubHk+PC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBuYW1lPSJzdWJtaXQiIGNsYXNzPSJidG4gYnRuLWZsYXQgYnRuLXByaW1hcnkiPlNlYXJjaDwvYnV0dG9uPiANCiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0Pg0KICAgICAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDwvZm9ybT4NCg0KICAgIDxkaXYgY2xhc3M9ImNhcmQtYm9keSI+DQoJCTxkaXYgY2xhc3M9ImNvbnRhaW5lci1mbHVpZCI+DQogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lci1mbHVpZCI+DQoJCQk8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWJvcmRlcmVkIHRhYmxlLXN0cmlwcGVkIj4NCg0KICAgICAgPGNvbGdyb3VwPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGNvbCB3aWR0aD0iNSUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGNvbCB3aWR0aD0iMTUlIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxjb2wgd2lkdGg9IjE1JSI+DQogICAgICAgICAgICAgICAgICAgICAgICA8Y29sIHdpZHRoPSI1JSI+DQogICAgICAgICAgICAgICAgICAgICAgICA8Y29sIHdpZHRoPSIxMCUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGNvbCB3aWR0aD0iMTAlIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxjb2wgd2lkdGg9IjEwJSI+DQogICAgICAgICAgICAgICAgICAgICAgICA8Y29sIHdpZHRoPSIxMCUiPg0KICAgICAgICAgICAgICAgICAgICA8L2NvbGdyb3VwPg0KDQogICAgICAgIDx0aGVhZD4NCiAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7hibAuIOGJgS48L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7hiqDhjIjhiI3hjI3hiI7hibHhipUg4Yuo4Yiw4Yyg4YuNIOGJo+GIiOGImeGLqzwvdGg+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7hi6jhiqDhjIjhiI3hjI3hiI7hibEg4Yqg4Yut4YqQ4Ym1PC90aD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+4Yml4Yub4Ym1PC90aD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+4YqQ4Yyg4YiLIOGLi+GMizwvdGg+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPuGLteGJpeGIrTwvdGg+ICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+4Ymw4YmA4YqT4Yi9PC90aD4gIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7hi7XhiK3hiLs8L3RoPiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgPC90aGVhZD4NCg0KICAgICAgICA8dGJvZHk+DQogICAgICAgICAgICAgICAgPD9waHANCiAgICAgICAgICAgICAgICAgaWYoISRlbXBsb3llZV9kZXRhaWxzKSANCiAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAvLyBlY2hvICc8dHI+Tm8gZGF0YSBmb3VuZDwvdHI+JzsNCiAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICBlbHNlew0KICAgICAgICAgICAgICAgICAgICAvLyBlY2hvICc8dHI+UmVwb3J0IGZvciA8L3RyPic7IGVjaG8gJHNlYXJjaDI7IGVjaG8gJzx0cj4gZnJvbSA8L3RyPic7ICBlY2hvICAkX1BPU1RbJ2Zyb21kYXRlJ107IGVjaG8gJzx0cj4gdG8gPC90cj4nOyBlY2hvICAkX1BPU1RbJ3RvZGF0ZSddOw0KICAgICAgICAgICAgICAgICAgICBlY2hvICc8dHI+IOGLqCA8L3RyPic7IGVjaG8gJHNlYXJjaDI7ICAgZWNobyAnPHRyPiAg4YqoIOGJgOGKlSA8L3RyPic7ICBlY2hvICAkX1BPU1RbJ2Zyb21kYXRlJ107IGVjaG8gJzx0cj4g4Yql4Yi14YqoIOGJgOGKlSA8L3RyPic7IGVjaG8gICRfUE9TVFsndG9kYXRlJ107IGVjaG8gJzx0cj4g4Yiq4Y2W4Yit4Ym1IDwvdHI+JzsNCiAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgJHRvdGFsc2FsZSA9IDA7DQogICAgICAgICAgICAgICAgICAgICRkZWR1Y3Rpb24gPSAwOw0KICAgICAgICAgICAgICAgICAgICAkdG90YWxkZWR1Y3Rpb24gPSAwOw0KICAgICAgICAgICAgICAgICAgICAkdG90YWxzaGFyZSA9IDA7DQoNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCgkZW1wbG95ZWVfZGV0YWlscyBhcyAka2V5PT4kdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICR0b3RhbHNhbGUgKz0gJHZhbHVlWyd0b3RhbCddOw0KICAgICAgICAgICAgICAgICAgICAgICAgJHRvdGFsc2hhcmUgKz0gJHZhbHVlWydzaGFyZSddICogJHZhbHVlWydxdWFudGl0eSddOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gJHNoYXJlID0gJHZhbHVlWydzaGFyZSddICogMjsNCiAgICAgICAgICAgICAgICAgICAgICAgICRkZWR1Y3Rpb24gPSAkdmFsdWVbJ3RvdGFsJ10gLSAoJHZhbHVlWydzaGFyZSddICogJHZhbHVlWydxdWFudGl0eSddICogMik7DQogICAgICAgICAgICAgICAgICAgICAgICAkdG90YWxkZWR1Y3Rpb24gKz0gJGRlZHVjdGlvbjsNCiAgICAgICAgICAgICAgICAgICAgICAgID8+DQogICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw/cGhwIGVjaG8gJGtleSsxOz8+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHRkPjw/cGhwIGVjaG8gJHZhbHVlWydpZCddOz8+PC90ZD4gLS0+DQogICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDx0ZD48P3BocCBlY2hvICR2YWx1ZVsnZGF0ZV9jcmVhdGVkJ107Pz48L3RkPiAtLT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48P3BocCBlY2hvICR2YWx1ZVsnc3RhZmZuYW1lJ107Pz48L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw/cGhwIGVjaG8gJHZhbHVlWydzZXJ2aWNlbmFtZSddOz8+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1yaWdodCBweS0xIHB4LTIiPjw/cGhwIGVjaG8gJHZhbHVlWydxdWFudGl0eSddOz8+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1yaWdodCBweS0xIHB4LTIiPjw/cGhwIGVjaG8gJHZhbHVlWydwcmljZSddOz8+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1yaWdodCBweS0xIHB4LTIiPjw/cGhwIGVjaG8gJHZhbHVlWyd0b3RhbCddOz8+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1yaWdodCBweS0xIHB4LTIiPjw/cGhwIGVjaG8gJGRlZHVjdGlvbjs/PjwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InRleHQtcmlnaHQgcHktMSBweC0yIj48P3BocCBlY2hvICR2YWx1ZVsnc2hhcmUnXSAqICR2YWx1ZVsncXVhbnRpdHknXTs/PjwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgPz4NCiAgICAgICAgICAgICANCiAgICAgICAgIDwvdGJvZHk+DQoNCiAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgIDx0Zm9vdD4gICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0idGV4dC1yaWdodCBweS0xIHB4LTIiIGNvbHNwYW49IjUiPuGMoOGJheGIi+GIiyDhi7XhiJ3hiK08L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0idGV4dC1yaWdodCBweS0xIHB4LTIgZ3JhbmQtdG90YWwiPiANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHANCiAgICAgICAgICAgICAgICAgaWYoISRlbXBsb3llZV9kZXRhaWxzKSANCiAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICBlbHNlew0KICAgICAgICAgICAgICAgICAgICBlY2hvICR0b3RhbHNhbGU7DQogICAgICAgICAgICAgICAgfT8+ICA8L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0idGV4dC1yaWdodCBweS0xIHB4LTIgZ3JhbmQtdG90YWwiPg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHANCiAgICAgICAgICAgICAgICAgaWYoISRlbXBsb3llZV9kZXRhaWxzKSANCiAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICBlbHNlew0KICAgICAgICAgICAgICAgICAgICBlY2hvICR0b3RhbGRlZHVjdGlvbjsNCiAgICAgICAgICAgICAgICB9Pz4NCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICA8L3RoPg0KDQogICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJ0ZXh0LXJpZ2h0IHB5LTEgcHgtMiBncmFuZC10b3RhbCI+DQoNCiAgICAgICAgICAgICAgICAgICAgPD9waHANCiAgICAgICAgICAgICAgICAgICAgaWYoISRlbXBsb3llZV9kZXRhaWxzKSANCiAgICAgICAgICAgICAgICAgICAgew0KDQoNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlew0KICAgICAgICAgICAgICAgICAgICBlY2hvICR0b3RhbHNoYXJlOw0KICAgICAgICAgICAgICAgICAgICB9Pz4NCg0KICAgICAgICAgICAgICAgICAgICA8L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgIDwvdGZvb3Q+DQogICAgICAgICAgICAgDQogICAgICA8L3RhYmxlPg0KICAgICAgDQogICAgPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0K"));//Generated by Ampare PHP Encoder. For more security please use php protect before encode the php program
Function Calls
base64_decode | 1 |
Stats
MD5 | 3fed59a4bd890d538abecd5e4b5006a9 |
Eval Count | 1 |
Decode Time | 84 ms |