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("PD9waHANCnNlc3Npb25fc3RhcnQoKTsNCnJlcXVpcmVfb25jZSgiY29udH..
Decoded Output download
?>b'<?php
session_start();
require_once("controles/usuarios.php");
require_once("controles/links.php");
require_once ("controles/novidades.php");
require_once("controles/categorias.php");
include \'pagination.class.php\';
if (checarUsuario()) {
require_once("cabecalho.php");
if($_SESSION[\'admin\']){
}
$links = listarlinks();
$categorias = listarCategorias();
?>
<style id="checkme">
.page-2content {
padding-left: 240px !important;
padding-right: 240px !important;
}
</style>
<div id="conteudo-painel" style="padding-left: 0px;" class="table-responsive container">
<div id="conteudo-painel" class="container">
<div class="mb-5 form-group float-left">
<input type="text" class="pesquisar form-control" placeholder="Pesquisar...">
</div>
<div class="h3 mt-5 row align-items-center justify-content-end">
<button onclick="$(\'#cadastro\').modal()" class="btn btn-success text-white fas fa-plus"> Adicionar</button>
</div>
<table class=\'table table-striped table-hover\'>
<caption>Canais</caption>
<tr align="center">
<thead class="thead-dark">
<th class=\'nomecol\' style="width: 2%" scope="col" ><font color="white"><i class="fa fa-connectdevelop"> Id</th>
<th class=\'nomecol\' style="width: 2%" scope="col" ><font color="white"><i class="fa fa-photo"></i> Logo</th>
<th class=\'nomecol\' style="width: 20%" scope="col" ><font color="white"><i class="fa fa-address-card"> Titulo</th>
<th class=\'nomecol\' scope="col" ><font color="white"><i class="fa fa-box"> Categoria</th>
<th class=\'nomecol\' scope="col" ><font color="white"><i class="fa fa-link"></i> Link</th>
<th class=\'nomecol\' style="width: 2%" scope="col">Deletar</th>
<th class=\'nomecol\' style="width: 2%" scope="col">Editar</th>
<!-- <th class=\'nomecol\' style="width: 2%" scope="col">Play</th> -->
<th class=\'semresultado\' scope=\'col\'>Nenhum resultado</th>
</tr>
</thead>
<?php
////PRECISO FILTRAR UM VALOR DA TABELA COM ESSE VALOR
///VALOR QUE VEIO DA TABELA VEIO VARIAVEL $LINKS ///
if ($links){
foreach($links as $link) {
$dados[] = array(
\'id_link\' => $link[\'id_link\'],
\'logo_link\' => $link[\'logo\'],
\'nome_link\' => $link[\'nome_link\'], ////////EXEMPLO NO TABELA DE DADOS /// RAFAEL 1 RAFAEL 2 E EDUADOR
\'link_link\' => $link[\'link_link\'],
\'id_categoria\' => $link[\'id_categoria\'],
\'nome_categoria\' => nomeCategoria($link[\'id_categoria\'])
);
}
if (count($dados)) {
$pagination = new pagination($dados, (isset($_GET[\'page\']) ? $_GET[\'page\'] : 1), 50);
$pagination->setShowFirstAndLast(false);
$pagination->setMainSeperator(\' | \');
$dadosPages = $pagination->getResults();
echo \'<tbody id="conteudo">\';
if (count($dadosPages) != 0) {
$pageNumbers = \'<div class="numbers">\'.$pagination->getLinks($_GET).\'</div>\';
foreach ($dadosPages as $dadosArray) {
echo \'<tr class="post" align="center">\';
//// QUERO QUE EXIBAR SO RAFAEL DAS array O EDUARDO NAO DE ECHO///
echo \'<td style="text-align: center; vertical-align: middle;">\'.$dadosArray[\'id_link\'].\'</td>\';
echo \'<td><img src=\'.\'"\'.$dadosArray[\'logo_link\'].\'"\'.\'style="text-align:center; vertical-align:middle; width:45px; height:45px;" /></td>\';
echo \'<td style="text-align: center; vertical-align: middle;">\'.$dadosArray[\'nome_link\'].\'</td>\';
echo \'<td style="text-align: center; vertical-align: middle;">[ \'.$dadosArray[\'nome_categoria\'].\' ]</td>\';
echo \'<td style="text-align: center; vertical-align: middle;">\'.$dadosArray[\'link_link\'].\'</td>\';
echo \'<td><button class="btn btn-danger" onclick="removerConfirma(\'."\'".$dadosArray[\'id_link\']."\'".\',\'."\'".$dadosArray[\'nome_link\']."\'".\')"><i class="far fa-trash-alt"></i></button></td>\';
echo \'<td><button class="btn btn-primary" onclick="editarConfirma(\'."\'".$dadosArray[\'id_link\']."\'".\',\'."\'".$dadosArray[\'nome_link\']."\'".\',\'."\'".$dadosArray[\'link_link\']."\'".\',\'."\'".$dadosArray[\'id_categoria\']."\'".\',\'."\'".$dadosArray[\'logo_link\']."\'".\')"><i class="fas fa-edit"></i></button></td>\';
/// echo \'<td><button class="btn btn-success" onclick="Play(\'."\'".$dadosArray[\'id_link\']."\'".\',\'."\'".$dadosArray[\'nome_link\']."\'".\',\'."\'".$dadosArray[\'link_link\']."\'".\',\'."\'".$dadosArray[\'id_categoria\']."\'".\',\'."\'".$dadosArray[\'logo_link\']."\'".\')"><i class="fas fa-play"></i></button></td>\';//
echo \'</tr>\';
}
echo \'</tbody>\';
}else{
$pagina = $_GET[\'page\'];
$pagina = $pagina - 1;
if($pagina >= 1){
$pagina = (string)$pagina;
echo \'<script>history.go(-1)</script>\';
}
}
}
}
?>
</table>
<?php echo $pageNumbers; ?>
</div>
</div>
</main>
<!-- page-content" -->
<!-- Cadastro Inicio -->
<div class="modal fade" id="cadastro" tabindex="-1" role="dialog" aria-labelledby="Cadastrar" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Adicionar Link</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Fechar">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form id="cadastro-form">
<div class="container">
<div class="form-group">
<label>Nome:</label>
<input type="text" class="form-control" name="nome" placeholder="Nome do Link" required autofocus>
<small class="form-text text-muted">Campo nico!</small>
</div>
<div class="form-group">
<label>Logo:</label>
<input type="text" class="form-control" name="logo" placeholder="Link da Imagem" required>
</div>
<div class="form-group">
<label>Url:</label>
<input type="text" class="form-control" name="link" placeholder="Url do Link" required>
</div>
<div class="form-group">
<label>Categora:</label>
<div class="ml-0 row">
<select class="selectpicker" title="Categoria" name="categoria" required>
<?php if ($categorias) {
foreach($categorias as $categoria) {?>
<option value="<?= $categoria[\'id\']?>" > <?= $categoria[\'nome\']?> </option>
<?php } } ?>
</select>
</div>
</div>
<button type="submit" class="btn btn-danger">Adicionar</button>
</div>
</form>
</div>
</div>
</div>
</div>
<!-- Cadastro Fim-->
<!-- Remove Inicio -->
<div class="modal fade" id="remover" tabindex="-1" role="dialog" aria-labelledby="Cadastrar" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Tem certeza?</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Fechar">
<span aria-hidden="true">×</span>
</button>
</div>
<div id="remover-conteudo" class="modal-body"></div>
</div>
</div>
</div>
<!-- Remove Fim-->
<!-- Edita Inicio -->
<div class="modal fade" id="editar" tabindex="-1" role="dialog" aria-labelledby="Cadastrar" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Editar Link</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Fechar">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form id="editar-form">
<div class="container">
<input type="hidden" name="id" id="idE">
<div class="form-group">
<label>Nome:</label>
<input type="text" class="form-control" id="nomeE" name="nome" placeholder="Nome do Link" required autofocus>
<small class="form-text text-muted">Campo nico!</small>
</div>
<div class="form-group">
<label>Logo:</label>
<input type="text" class="form-control" id="logoE" name="logo" placeholder="Link da Imagem" required>
</div>
<div class="form-group">
<label>Url:</label>
<input type="text" class="form-control" id="linkE" name="link" placeholder="Url do Link" required>
</div>
<div class="form-group">
<label>Categora:</label>
<div class="ml-0 row">
<select class="selectpicker" title="Categora" id="categoriaE" name="categoria" required>
<?php if ($categorias) {
foreach($categorias as $categoria) {?>
<option value="<?= $categoria[\'id\']?>" > <?= $categoria[\'nome\']?> </option>
<?php } } ?>
</select>
</div>
</div>
<button type="submit" class="btn btn-danger">Salvar</button>
</div>
</form>
</div>
</div>
</div>
</div>
<!-- Edita Fim-->
</body>
<script>
function Play(id,nome, link, categoria, logo) {
$(\'#idE\').val(id);
$(\'#linkEurl\').val(link);
if (categoria !== "") {
$(\'#categoriaE\').val(categoria);
$(\'#categoriaE\').selectpicker(\'render\');
}
$(\'#play\').modal();
}
function editarConfirma(id,nome, link, categoria, logo) {
$(\'#idE\').val(id);
$(\'#nomeE\').val(nome);
$(\'#logoE\').val(logo);
$(\'#linkE\').val(link);
if (categoria !== "") {
$(\'#categoriaE\').val(categoria);
$(\'#categoriaE\').selectpicker(\'render\');
}
$(\'#editar\').modal();
}
function removerConfirma(id,nome) {
$(\'#remover-conteudo\').html(\'<div class="alert alert-danger" role="alert"><strong> Remover </strong>\' + nome + \'?</div><button onclick="remover(\' + id + \')" type="submit" class="btn btn-danger float-right">Remover</button>\');
$(\'#remover\').modal();
}
function editarConfirma(id,nome, link, categoria, logo) {
$(\'#idE\').val(id);
$(\'#nomeE\').val(nome);
$(\'#logoE\').val(logo);
$(\'#linkE\').val(link);
if (categoria !== "") {
$(\'#categoriaE\').val(categoria);
$(\'#categoriaE\').selectpicker(\'render\');
}
$(\'#editar\').modal();
}
function remover(id) {
$.ajax({
type: "POST",
url: "controles/remover-link.php",
data: {id: id},
success: function(data) {
location.reload();
}
});
}
$( "#cadastro-form" ).submit(function( event ) {
$.ajax({
type: "POST",
url: "controles/adicionar-link.php",
data: $("#cadastro-form").serialize(),
success: function(data) {
location.reload();
},
error: function (data) {
resultado(data.responseText);
}
});
event.preventDefault();
});
$( "#editar-form" ).submit(function( event ) {
$.ajax({
type: "POST",
url: "controles/editar-link.php",
data: $("#editar-form").serialize(),
success: function(data) {
location.reload();
},
error: function (data) {
resultado(data.responseText);
}
});
event.preventDefault();
});
</script>
<?php require_once("comum.php");
require_once("alerta.php"); ?>
</html>
<?php
} else {
header("Location: index.php");
die();
}
?>'
Did this file decode correctly?
Original Code
<?php @eval("?>".base64_decode("PD9waHANCnNlc3Npb25fc3RhcnQoKTsNCnJlcXVpcmVfb25jZSgiY29udHJvbGVzL3VzdWFyaW9zLnBocCIpOw0KcmVxdWlyZV9vbmNlKCJjb250cm9sZXMvbGlua3MucGhwIik7DQpyZXF1aXJlX29uY2UgKCJjb250cm9sZXMvbm92aWRhZGVzLnBocCIpOw0KcmVxdWlyZV9vbmNlKCJjb250cm9sZXMvY2F0ZWdvcmlhcy5waHAiKTsNCmluY2x1ZGUgJ3BhZ2luYXRpb24uY2xhc3MucGhwJzsNCmlmIChjaGVjYXJVc3VhcmlvKCkpIHsNCnJlcXVpcmVfb25jZSgiY2FiZWNhbGhvLnBocCIpOw0KaWYoJF9TRVNTSU9OWydhZG1pbiddKXsNCn0NCiRsaW5rcyA9IGxpc3RhcmxpbmtzKCk7DQokY2F0ZWdvcmlhcyA9IGxpc3RhckNhdGVnb3JpYXMoKTsNCj8+DQo8c3R5bGUgaWQ9ImNoZWNrbWUiPg0KCS5wYWdlLTJjb250ZW50IHsNCgkgICAgcGFkZGluZy1sZWZ0OiAyNDBweCAhaW1wb3J0YW50Ow0KCQlwYWRkaW5nLXJpZ2h0OiAyNDBweCAhaW1wb3J0YW50Ow0KCX0NCgk8L3N0eWxlPg0KCQ0KCQ0KCSA8ZGl2IGlkPSJjb250ZXVkby1wYWluZWwiIHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDBweDsiIGNsYXNzPSJ0YWJsZS1yZXNwb25zaXZlIGNvbnRhaW5lciI+DQoJIA0KCSANCiAgICAgICAgPGRpdiBpZD0iY29udGV1ZG8tcGFpbmVsIiBjbGFzcz0iY29udGFpbmVyIj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1iLTUgZm9ybS1ncm91cCBmbG9hdC1sZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJwZXNxdWlzYXIgZm9ybS1jb250cm9sIiBwbGFjZWhvbGRlcj0iUGVzcXVpc2FyLi4uIj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KCQkJPGRpdiBjbGFzcz0iaDMgbXQtNSByb3cgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1lbmQiPg0KICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iJCgnI2NhZGFzdHJvJykubW9kYWwoKSIgY2xhc3M9ImJ0biBidG4tc3VjY2VzcyB0ZXh0LXdoaXRlIGZhcyBmYS1wbHVzIj4gQWRpY2lvbmFyPC9idXR0b24+DQogICAgICAgICAgICA8L2Rpdj4NCgkJCQ0KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0ndGFibGUgdGFibGUtc3RyaXBlZCB0YWJsZS1ob3Zlcic+DQogICAgICAgICAgICAgICAgICAgIDxjYXB0aW9uPkNhbmFpczwvY2FwdGlvbj4NCgkJCQkJDQoJCQkJCTx0ciBhbGlnbj0iY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgPHRoZWFkIGNsYXNzPSJ0aGVhZC1kYXJrIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9J25vbWVjb2wnIHN0eWxlPSJ3aWR0aDogMiUiIHNjb3BlPSJjb2wiID48Zm9udCAgY29sb3I9IndoaXRlIj48aSBjbGFzcz0iZmEgZmEtY29ubmVjdGRldmVsb3AiPiBJZDwvdGg+DQoJCQkJCQkgICAgPHRoIGNsYXNzPSdub21lY29sJyBzdHlsZT0id2lkdGg6IDIlIiBzY29wZT0iY29sIiA+PGZvbnQgIGNvbG9yPSJ3aGl0ZSI+PGkgY2xhc3M9ImZhIGZhLXBob3RvIj48L2k+IExvZ288L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0nbm9tZWNvbCcgc3R5bGU9IndpZHRoOiAyMCUiIHNjb3BlPSJjb2wiID48Zm9udCAgY29sb3I9IndoaXRlIj48aSBjbGFzcz0iZmEgZmEtYWRkcmVzcy1jYXJkIj4gVGl0dWxvPC90aD4NCgkJCQkJCQk8dGggY2xhc3M9J25vbWVjb2wnIHNjb3BlPSJjb2wiID48Zm9udCAgY29sb3I9IndoaXRlIj48aSBjbGFzcz0iZmEgZmEtYm94Ij4gQ2F0ZWdvcmlhPC90aD4NCgkJCQkJCQk8dGggY2xhc3M9J25vbWVjb2wnIHNjb3BlPSJjb2wiID48Zm9udCAgY29sb3I9IndoaXRlIj48aSBjbGFzcz0iZmEgZmEtbGluayI+PC9pPiBMaW5rPC90aD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9J25vbWVjb2wnIHN0eWxlPSJ3aWR0aDogMiUiIHNjb3BlPSJjb2wiPkRlbGV0YXI8L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0nbm9tZWNvbCcgc3R5bGU9IndpZHRoOiAyJSIgc2NvcGU9ImNvbCI+RWRpdGFyPC90aD4NCgkJCQkJCTwhLS0JPHRoIGNsYXNzPSdub21lY29sJyBzdHlsZT0id2lkdGg6IDIlIiBzY29wZT0iY29sIj5QbGF5PC90aD4gIC0tPg0KCQkJCQkJCQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0nc2VtcmVzdWx0YWRvJyBzY29wZT0nY29sJz5OZW5odW0gcmVzdWx0YWRvPC90aD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+DQoJCQkJCQ0KICAgICAgICAgICAgICAgICA8P3BocCAgIA0KCQkJCSAvLy8vUFJFQ0lTTyBGSUxUUkFSIFVNIFZBTE9SIERBIFRBQkVMQSBDT00gRVNTRSBWQUxPUg0KCQkJCSAgLy8vVkFMT1IgUVVFIFZFSU8gREEgVEFCRUxBIFZFSU8gVkFSSUFWRUwgJExJTktTIC8vLw0KCQkJCSBpZiAoJGxpbmtzKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoKCRsaW5rcyBhcyAkbGluaykgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRhZG9zW10gPSBhcnJheSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpZF9saW5rJyAgICAgICAgPT4gJGxpbmtbJ2lkX2xpbmsnXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsb2dvX2xpbmsnICAgICAgPT4gJGxpbmtbJ2xvZ28nXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdub21lX2xpbmsnICAgICAgPT4gJGxpbmtbJ25vbWVfbGluayddLCAvLy8vLy8vL0VYRU1QTE8gTk8gVEFCRUxBIERFIERBRE9TIC8vLyAgUkFGQUVMIDEgUkFGQUVMIDIgRSBFRFVBRE9SDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGlua19saW5rJyAgICAgID0+ICRsaW5rWydsaW5rX2xpbmsnXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpZF9jYXRlZ29yaWEnICAgPT4gJGxpbmtbJ2lkX2NhdGVnb3JpYSddLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vbWVfY2F0ZWdvcmlhJyA9PiBub21lQ2F0ZWdvcmlhKCRsaW5rWydpZF9jYXRlZ29yaWEnXSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoJCQkJCQkJDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQoJGRhZG9zKSkgew0KCQkJCQkJCQkkcGFnaW5hdGlvbiA9IG5ldyBwYWdpbmF0aW9uKCRkYWRvcywgKGlzc2V0KCRfR0VUWydwYWdlJ10pID8gJF9HRVRbJ3BhZ2UnXSA6IDEpLCA1MCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWdpbmF0aW9uLT5zZXRTaG93Rmlyc3RBbmRMYXN0KGZhbHNlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhZ2luYXRpb24tPnNldE1haW5TZXBlcmF0b3IoJyB8ICcpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGFkb3NQYWdlcyA9ICRwYWdpbmF0aW9uLT5nZXRSZXN1bHRzKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICc8dGJvZHkgaWQ9ImNvbnRldWRvIj4nOw0KCQkJCQkJCQkJaWYgKGNvdW50KCRkYWRvc1BhZ2VzKSAhPSAwKSB7DQoJCQkJCQkJCQkkcGFnZU51bWJlcnMgPSAnPGRpdiBjbGFzcz0ibnVtYmVycyI+Jy4kcGFnaW5hdGlvbi0+Z2V0TGlua3MoJF9HRVQpLic8L2Rpdj4nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRkYWRvc1BhZ2VzIGFzICRkYWRvc0FycmF5KSB7DQoJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICc8dHIgY2xhc3M9InBvc3QiIGFsaWduPSJjZW50ZXIiPic7DQoJCQkJCQkJCQkJCS8vLy8gUVVFUk8gUVVFIEVYSUJBUiBTTyBSQUZBRUwgREFTIGFycmF5IE8gRURVQVJETyBOQU8gREUgRUNITy8vLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAnPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Ij4nLiRkYWRvc0FycmF5WydpZF9saW5rJ10uJzwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzx0ZD48aW1nIHNyYz0nLiciJy4kZGFkb3NBcnJheVsnbG9nb19saW5rJ10uJyInLidzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgd2lkdGg6NDVweDsgaGVpZ2h0OjQ1cHg7IiAvPjwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyI+Jy4kZGFkb3NBcnJheVsnbm9tZV9saW5rJ10uJzwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyI+WyAnLiRkYWRvc0FycmF5Wydub21lX2NhdGVnb3JpYSddLicgXTwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyI+Jy4kZGFkb3NBcnJheVsnbGlua19saW5rJ10uJzwvdGQ+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzx0ZD48YnV0dG9uIGNsYXNzPSJidG4gYnRuLWRhbmdlciIgb25jbGljaz0icmVtb3ZlckNvbmZpcm1hKCcuIiciLiRkYWRvc0FycmF5WydpZF9saW5rJ10uIiciLicsJy4iJyIuJGRhZG9zQXJyYXlbJ25vbWVfbGluayddLiInIi4nKSI+PGkgY2xhc3M9ImZhciBmYS10cmFzaC1hbHQiPjwvaT48L2J1dHRvbj48L3RkPic7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICc8dGQ+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IiBvbmNsaWNrPSJlZGl0YXJDb25maXJtYSgnLiInIi4kZGFkb3NBcnJheVsnaWRfbGluayddLiInIi4nLCcuIiciLiRkYWRvc0FycmF5Wydub21lX2xpbmsnXS4iJyIuJywnLiInIi4kZGFkb3NBcnJheVsnbGlua19saW5rJ10uIiciLicsJy4iJyIuJGRhZG9zQXJyYXlbJ2lkX2NhdGVnb3JpYSddLiInIi4nLCcuIiciLiRkYWRvc0FycmF5Wydsb2dvX2xpbmsnXS4iJyIuJykiPjxpIGNsYXNzPSJmYXMgZmEtZWRpdCI+PC9pPjwvYnV0dG9uPjwvdGQ+JzsNCgkJCQkJCQkJCQkJLy8vCWVjaG8gJzx0ZD48YnV0dG9uIGNsYXNzPSJidG4gYnRuLXN1Y2Nlc3MiIG9uY2xpY2s9IlBsYXkoJy4iJyIuJGRhZG9zQXJyYXlbJ2lkX2xpbmsnXS4iJyIuJywnLiInIi4kZGFkb3NBcnJheVsnbm9tZV9saW5rJ10uIiciLicsJy4iJyIuJGRhZG9zQXJyYXlbJ2xpbmtfbGluayddLiInIi4nLCcuIiciLiRkYWRvc0FycmF5WydpZF9jYXRlZ29yaWEnXS4iJyIuJywnLiInIi4kZGFkb3NBcnJheVsnbG9nb19saW5rJ10uIiciLicpIj48aSBjbGFzcz0iZmFzIGZhLXBsYXkiPjwvaT48L2J1dHRvbj48L3RkPic7Ly8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KCQkJCQkJCQkJCQllY2hvICc8L3RyPic7DQoJCQkJCQkJCQkJfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAnPC90Ym9keT4nOw0KCQkJCQkgICAgICAgICAgICAgICAgICAgICAgDQoJCQkJCQkJCQkJfWVsc2V7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFnaW5hID0gJF9HRVRbJ3BhZ2UnXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWdpbmEgPSAkcGFnaW5hIC0gMTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRwYWdpbmEgPj0gMSl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhZ2luYSA9IChzdHJpbmcpJHBhZ2luYTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAnPHNjcmlwdD5oaXN0b3J5LmdvKC0xKTwvc2NyaXB0Pic7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0JICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KCQkJCQkJCX0NCg0KCQkJCSAgICAgICAgIH0NCg0KDQoJCQkJCSAgIA0KICAgICAgICAgICAgICAgICAgICA/Pg0KICAgICAgICAgICAgICAgIDwvdGFibGU+DQoJCQkJPD9waHAgZWNobyAkcGFnZU51bWJlcnM7ID8+DQogICAgICAgICAgPC9kaXY+ICANCiAgICAgICANCgkJPC9kaXY+DQogICAgDQoNCiAgPC9tYWluPg0KICA8IS0tIHBhZ2UtY29udGVudCIgLS0+DQoNCjwhLS0gQ2FkYXN0cm8gSW5pY2lvIC0tPg0KPGRpdiBjbGFzcz0ibW9kYWwgZmFkZSIgaWQ9ImNhZGFzdHJvIiB0YWJpbmRleD0iLTEiIHJvbGU9ImRpYWxvZyIgYXJpYS1sYWJlbGxlZGJ5PSJDYWRhc3RyYXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj4NCiAgPGRpdiBjbGFzcz0ibW9kYWwtZGlhbG9nIiByb2xlPSJkb2N1bWVudCI+DQogICAgPGRpdiBjbGFzcz0ibW9kYWwtY29udGVudCI+DQogICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPg0KICAgICAgICA8aDUgY2xhc3M9Im1vZGFsLXRpdGxlIj5BZGljaW9uYXIgTGluazwvaDU+DQogICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iY2xvc2UiIGRhdGEtZGlzbWlzcz0ibW9kYWwiIGFyaWEtbGFiZWw9IkZlY2hhciI+DQogICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPiZ0aW1lczs8L3NwYW4+DQogICAgICAgIDwvYnV0dG9uPg0KICAgICAgPC9kaXY+DQogICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij4NCiAgICAgICAgPGZvcm0gaWQ9ImNhZGFzdHJvLWZvcm0iPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPk5vbWU6PC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIG5hbWU9Im5vbWUiIHBsYWNlaG9sZGVyPSJOb21lIGRvIExpbmsiIHJlcXVpcmVkIGF1dG9mb2N1cz4NCiAgICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPSJmb3JtLXRleHQgdGV4dC1tdXRlZCI+Q2FtcG8gw7puaWNvITwvc21hbGw+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+DQogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5Mb2dvOjwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sIiBuYW1lPSJsb2dvIiBwbGFjZWhvbGRlcj0iTGluayBkYSBJbWFnZW0iIHJlcXVpcmVkPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgICA8bGFiZWw+VXJsOjwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sIiBuYW1lPSJsaW5rIiBwbGFjZWhvbGRlcj0iVXJsIGRvIExpbmsiIHJlcXVpcmVkPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgPGxhYmVsPkNhdGVnb3LDrWE6PC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1sLTAgcm93Ij4NCiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz0ic2VsZWN0cGlja2VyIiB0aXRsZT0iQ2F0ZWdvcmlhIiBuYW1lPSJjYXRlZ29yaWEiIHJlcXVpcmVkPg0KICAgICAgICAgICAgICAgICAgICA8P3BocCBpZiAoJGNhdGVnb3JpYXMpIHsNCiAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoKCRjYXRlZ29yaWFzIGFzICRjYXRlZ29yaWEpIHs/Pg0KICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ijw/PSAkY2F0ZWdvcmlhWydpZCddPz4iID4gPD89ICRjYXRlZ29yaWFbJ25vbWUnXT8+IDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8P3BocCB9IH0gPz4NCiAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+DQogICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImJ0biBidG4tZGFuZ2VyIj5BZGljaW9uYXI8L2J1dHRvbj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Zvcm0+DQogICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCiAgPC9kaXY+DQo8L2Rpdj4NCjwhLS0gQ2FkYXN0cm8gRmltLS0+DQo8IS0tIFJlbW92ZSBJbmljaW8gLS0+DQo8ZGl2IGNsYXNzPSJtb2RhbCBmYWRlIiBpZD0icmVtb3ZlciIgdGFiaW5kZXg9Ii0xIiByb2xlPSJkaWFsb2ciIGFyaWEtbGFiZWxsZWRieT0iQ2FkYXN0cmFyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+DQogIDxkaXYgY2xhc3M9Im1vZGFsLWRpYWxvZyIgcm9sZT0iZG9jdW1lbnQiPg0KICAgIDxkaXYgY2xhc3M9Im1vZGFsLWNvbnRlbnQiPg0KICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj4NCiAgICAgICAgPGg1IGNsYXNzPSJtb2RhbC10aXRsZSI+VGVtIGNlcnRlemE/PC9oNT4NCiAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjbG9zZSIgZGF0YS1kaXNtaXNzPSJtb2RhbCIgYXJpYS1sYWJlbD0iRmVjaGFyIj4NCiAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSI+JnRpbWVzOzwvc3Bhbj4NCiAgICAgICAgPC9idXR0b24+DQogICAgICA8L2Rpdj4NCiAgICAgIDxkaXYgaWQ9InJlbW92ZXItY29udGV1ZG8iIGNsYXNzPSJtb2RhbC1ib2R5Ij48L2Rpdj4NCiAgICA8L2Rpdj4NCiAgPC9kaXY+DQo8L2Rpdj4NCjwhLS0gUmVtb3ZlIEZpbS0tPg0KDQoNCg0KDQo8IS0tIEVkaXRhIEluaWNpbyAtLT4NCjxkaXYgY2xhc3M9Im1vZGFsIGZhZGUiIGlkPSJlZGl0YXIiIHRhYmluZGV4PSItMSIgcm9sZT0iZGlhbG9nIiBhcmlhLWxhYmVsbGVkYnk9IkNhZGFzdHJhciIgYXJpYS1oaWRkZW49InRydWUiPg0KICA8ZGl2IGNsYXNzPSJtb2RhbC1kaWFsb2ciIHJvbGU9ImRvY3VtZW50Ij4NCiAgICA8ZGl2IGNsYXNzPSJtb2RhbC1jb250ZW50Ij4NCiAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+DQogICAgICAgIDxoNSBjbGFzcz0ibW9kYWwtdGl0bGUiPkVkaXRhciBMaW5rPC9oNT4NCiAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjbG9zZSIgZGF0YS1kaXNtaXNzPSJtb2RhbCIgYXJpYS1sYWJlbD0iRmVjaGFyIj4NCiAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSI+JnRpbWVzOzwvc3Bhbj4NCiAgICAgICAgPC9idXR0b24+DQogICAgICA8L2Rpdj4NCiAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiPg0KICAgICAgICA8Zm9ybSBpZD0iZWRpdGFyLWZvcm0iPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4NCiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlkIiBpZD0iaWRFIj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPk5vbWU6PC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIGlkPSJub21lRSIgbmFtZT0ibm9tZSIgcGxhY2Vob2xkZXI9Ik5vbWUgZG8gTGluayIgcmVxdWlyZWQgYXV0b2ZvY3VzPg0KICAgICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9ImZvcm0tdGV4dCB0ZXh0LW11dGVkIj5DYW1wbyDDum5pY28hPC9zbWFsbD4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkxvZ286PC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIGlkPSJsb2dvRSIgbmFtZT0ibG9nbyIgcGxhY2Vob2xkZXI9IkxpbmsgZGEgSW1hZ2VtIiByZXF1aXJlZD4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlVybDo8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImZvcm0tY29udHJvbCIgaWQ9ImxpbmtFIiBuYW1lPSJsaW5rIiBwbGFjZWhvbGRlcj0iVXJsIGRvIExpbmsiIHJlcXVpcmVkPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgPGxhYmVsPkNhdGVnb3LDrWE6PC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1sLTAgcm93Ij4NCiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz0ic2VsZWN0cGlja2VyIiB0aXRsZT0iQ2F0ZWdvcsOtYSIgaWQ9ImNhdGVnb3JpYUUiIG5hbWU9ImNhdGVnb3JpYSIgcmVxdWlyZWQ+DQogICAgICAgICAgICAgICAgICA8P3BocCAgaWYgKCRjYXRlZ29yaWFzKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoKCRjYXRlZ29yaWFzIGFzICRjYXRlZ29yaWEpIHs/Pg0KICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ijw/PSAkY2F0ZWdvcmlhWydpZCddPz4iID4gPD89ICRjYXRlZ29yaWFbJ25vbWUnXT8+IDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8P3BocCB9IH0gPz4NCiAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+DQogICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImJ0biBidG4tZGFuZ2VyIj5TYWx2YXI8L2J1dHRvbj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Zvcm0+DQogICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCiAgPC9kaXY+DQo8L2Rpdj4NCjwhLS0gRWRpdGEgRmltLS0+DQo8L2JvZHk+DQo8c2NyaXB0Pg0KDQoNCg0KDQpmdW5jdGlvbiBQbGF5KGlkLG5vbWUsIGxpbmssIGNhdGVnb3JpYSwgbG9nbykgew0KICAgICAgICAkKCcjaWRFJykudmFsKGlkKTsNCgkJJCgnI2xpbmtFdXJsJykudmFsKGxpbmspOw0KCQlpZiAoY2F0ZWdvcmlhICE9PSAiIikgew0KICAgICAgICAgICQoJyNjYXRlZ29yaWFFJykudmFsKGNhdGVnb3JpYSk7DQogICAgICAgICAgJCgnI2NhdGVnb3JpYUUnKS5zZWxlY3RwaWNrZXIoJ3JlbmRlcicpOw0KICAgICAgICB9DQogICAgICAgICQoJyNwbGF5JykubW9kYWwoKTsNCiAgICB9DQoNCg0KDQoNCg0KDQpmdW5jdGlvbiBlZGl0YXJDb25maXJtYShpZCxub21lLCBsaW5rLCBjYXRlZ29yaWEsIGxvZ28pIHsNCiAgICAgICAgJCgnI2lkRScpLnZhbChpZCk7DQogICAgICAgICQoJyNub21lRScpLnZhbChub21lKTsNCiAgICAgICAgJCgnI2xvZ29FJykudmFsKGxvZ28pOw0KICAgICAgICAkKCcjbGlua0UnKS52YWwobGluayk7DQogICAgICAgIGlmIChjYXRlZ29yaWEgIT09ICIiKSB7DQogICAgICAgICAgJCgnI2NhdGVnb3JpYUUnKS52YWwoY2F0ZWdvcmlhKTsNCiAgICAgICAgICAkKCcjY2F0ZWdvcmlhRScpLnNlbGVjdHBpY2tlcigncmVuZGVyJyk7DQogICAgICAgIH0NCiAgICAgICAgJCgnI2VkaXRhcicpLm1vZGFsKCk7DQogICAgfQ0KCQ0KCQ0KICAgIGZ1bmN0aW9uIHJlbW92ZXJDb25maXJtYShpZCxub21lKSB7DQogICAgICAgICQoJyNyZW1vdmVyLWNvbnRldWRvJykuaHRtbCgnPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtZGFuZ2VyIiByb2xlPSJhbGVydCI+PHN0cm9uZz4gUmVtb3ZlciA8L3N0cm9uZz4nICsgbm9tZSArICc/PC9kaXY+PGJ1dHRvbiBvbmNsaWNrPSJyZW1vdmVyKCcgKyBpZCArICcpIiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJidG4gYnRuLWRhbmdlciBmbG9hdC1yaWdodCI+UmVtb3ZlcjwvYnV0dG9uPicpOw0KICAgICAgICAkKCcjcmVtb3ZlcicpLm1vZGFsKCk7DQogICAgfQ0KCQ0KCQ0KDQogICAgZnVuY3Rpb24gZWRpdGFyQ29uZmlybWEoaWQsbm9tZSwgbGluaywgY2F0ZWdvcmlhLCBsb2dvKSB7DQogICAgICAgICQoJyNpZEUnKS52YWwoaWQpOw0KICAgICAgICAkKCcjbm9tZUUnKS52YWwobm9tZSk7DQogICAgICAgICQoJyNsb2dvRScpLnZhbChsb2dvKTsNCiAgICAgICAgJCgnI2xpbmtFJykudmFsKGxpbmspOw0KICAgICAgICBpZiAoY2F0ZWdvcmlhICE9PSAiIikgew0KICAgICAgICAgICQoJyNjYXRlZ29yaWFFJykudmFsKGNhdGVnb3JpYSk7DQogICAgICAgICAgJCgnI2NhdGVnb3JpYUUnKS5zZWxlY3RwaWNrZXIoJ3JlbmRlcicpOw0KICAgICAgICB9DQogICAgICAgICQoJyNlZGl0YXInKS5tb2RhbCgpOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIHJlbW92ZXIoaWQpIHsNCiAgICAgICAgJC5hamF4KHsNCiAgICAgICAgICAgIHR5cGU6ICJQT1NUIiwNCiAgICAgICAgICAgIHVybDogImNvbnRyb2xlcy9yZW1vdmVyLWxpbmsucGhwIiwNCiAgICAgICAgICAgIGRhdGE6IHtpZDogaWR9LA0KICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24oZGF0YSkgew0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9DQoNCiAgICAkKCAiI2NhZGFzdHJvLWZvcm0iICkuc3VibWl0KGZ1bmN0aW9uKCBldmVudCApIHsNCiAgICAgICAgJC5hamF4KHsNCiAgICAgICAgICAgIHR5cGU6ICJQT1NUIiwNCiAgICAgICAgICAgIHVybDogImNvbnRyb2xlcy9hZGljaW9uYXItbGluay5waHAiLA0KICAgICAgICAgICAgZGF0YTogJCgiI2NhZGFzdHJvLWZvcm0iKS5zZXJpYWxpemUoKSwNCiAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsNCiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24gKGRhdGEpIHsNCiAgICAgICAgICAgICAgcmVzdWx0YWRvKGRhdGEucmVzcG9uc2VUZXh0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQogICAgfSk7DQoNCiAgICAkKCAiI2VkaXRhci1mb3JtIiApLnN1Ym1pdChmdW5jdGlvbiggZXZlbnQgKSB7DQogICAgICAgICQuYWpheCh7DQogICAgICAgICAgICB0eXBlOiAiUE9TVCIsDQogICAgICAgICAgICB1cmw6ICJjb250cm9sZXMvZWRpdGFyLWxpbmsucGhwIiwNCiAgICAgICAgICAgIGRhdGE6ICQoIiNlZGl0YXItZm9ybSIpLnNlcmlhbGl6ZSgpLA0KICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24oZGF0YSkgew0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbiAoZGF0YSkgew0KICAgICAgICAgICAgICByZXN1bHRhZG8oZGF0YS5yZXNwb25zZVRleHQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsNCiAgICB9KTsNCgkNCgkNCgkNCg0KPC9zY3JpcHQ+DQo8P3BocCByZXF1aXJlX29uY2UoImNvbXVtLnBocCIpOw0KcmVxdWlyZV9vbmNlKCJhbGVydGEucGhwIik7ID8+DQo8L2h0bWw+DQo8P3BocCANCn0gZWxzZSB7DQogICAgaGVhZGVyKCJMb2NhdGlvbjogaW5kZXgucGhwIik7DQogICAgZGllKCk7DQp9DQo/Pg=="));//Generated by Ampare PHP Encoder. For more security please use php protect before encode the php program
Function Calls
base64_decode | 1 |
Stats
MD5 | 32730c6f4fafc5d6189b16fd3bd640db |
Eval Count | 1 |
Decode Time | 59 ms |