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('CiBnb3RvIEJXR2s4OyBUNVhQZDogZWNobyBodG1sX2VzY2FwZSgkdGhpcy0+c3lz..
Decoded Output download
goto BWGk8; T5XPd: echo html_escape($this->system->produk->{$trx->op_produk}->nama); goto wU7Or; kGPVh: echo $trx->vo_nominal; goto znMMq; meBFK: ?>
</label>-->
<label><?php goto YpczO; RRd33: ?>
<div style="
font-family: Merchant-copy, 'Courier New';
font-size: 9px;
color: #000;
grid-template-columns: 25% 5% 70%;
display: grid;
text-align: left;
margin-top: 0px;
">
HARGA <label>:</label> <b><label id="hrga3"><?php goto LBRt9; Qklza: ?>
</label></b>
</div>
</div>
<div style="
width: 90%;
text-align: center;
font-family: Merchant-copy, 'Courier New';
font-weight: 600 !important;
font-size: 9px;
color: #000;
margin-top: -5px;
margin-bottom: px;
">
<?php goto DXRiJ; BdpjN: ?>
</label></b>
</div>
<?php goto BSVz3; l0Gkx: if ($trx->tr_status == "sukses" && isset($opsi["sn"]) && !empty($opsi["sn"])) { ?>
-->
<!-- <div>-->
<!-- <strong>SN / REF : <?php echo $opsi["sn"]; ?>
</strong>-->
<!-- </div>-->
<!-- <?php } else { ?>
-->
<!-- <div>-->
<!-- <strong>SN / REF : N/A</strong>-->
<!-- </div>-->
<!-- <?php } goto K8aVg; OV0rY: ?>
</div>
</div><br>
<div style="width: 90%;text-align: center;font-family: Merchant-copy, 'Courier New';font-size: 11px;color: #000; margin-top:20px;">
<strong>STRUK PEMBELIAN <?php goto yNiu0; e1869: if ($trx->tr_id_plgn) { ?>
<div style="
font-family: Merchant-copy, 'Courier New';
font-size: 9px;
color: #000;
grid-template-columns: 35% 10% 55%;;
display: grid;font-size: 12px;
text-align: left;
margin-top: 5px;margin-bottom:10px;
">
ID PEL <label>:</label> <b><?php echo $trx->tr_id_plgn; ?>
</b>
</div>
<?php } else { ?>
<div style="
font-family: Merchant-copy, 'Courier New';
font-size: 9px;
color: #000;
grid-template-columns: 35% 10% 55%;;
display: grid;
text-align: left;font-size: 12px;
margin-top: 5px;margin-bottom:10px;
">
NOMOR <label>:</label> <b><?php echo $trx->tr_no_hp; ?>
</b>
</div>
<?php } goto VSpQo; HsBfh: echo $trx->tr_id; goto eVYku; HqmbB: echo base_url(); goto Rsf_L; Rsf_L: ?>
assets/js/printarea.js"></script>
<script src="https://html2canvas.hertzen.com/dist/html2canvas.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#printNow").click(function(){
$("#printarea").printArea();
});
});
</script>
<script>
function ScreenCapture() {
const captureElement = document.querySelector('#StrukDownload')
html2canvas(captureElement)
.then(canvas => {
canvas.style.display = 'none'
document.body.appendChild(canvas)
return canvas
})
.then(canvas => {
const image = canvas.toDataURL('image/png').replace('image/png', 'image/octet-stream')
const a = document.createElement('a')
a.setAttribute('download', 'Struk_transaksi#<?php goto HsBfh; qMQRg: ?>
</strong>
</div>
</div>
<div style="float: ;font-family: Merchant-copy, 'Courier New';font-size: 12px; font-weight:700;"><b><?php goto uAFAB; LIazp: ?>
</label>
</div>
</div>
<div class="spacer"></div>
<div class="spacer"></div>
<div style="width: 100%;text-align: center;margin-top: px;font-family: Merchant-copy, 'Courier New';font-size: 11px;color: #000;">
<?php goto YjwDa; YpczO: echo html_escape($this->system->produk->{$trx->op_produk}->nama); goto uVh4V; lSINA: ?>
</b></div>
<div style="
display: grid;
grid-template-columns: auto;
text-align: left;
margin-top: 0px;padding:5px; font-size: 12px; margin-bottom:5px;
">
<div style="font-family: Merchant-copy, 'Courier New';
font-size: 9px;
color: #000;
grid-template-columns: 35% 10% 55%;;
display: grid;
text-align: left;font-size: 12px;margin-bottom:5px;
margin-top: 0px;
">
JENIS <label>:</label> <b><label ><?php goto T5XPd; SdmA6: echo $this->user->us_name; goto lvVAj; BYtSB: echo base_url(); goto WnMUM; oN39M: ?>
</label></b>-->
<!-- </div>-->
<!-- </div>-->
<!-- <div style="width: 100%;text-align: center;font-family: Merchant-copy, 'Courier New';font-weight:600 !important; font-size: 11px;color: #000; margin-top:15px;">-->
<!-- <?php goto l0Gkx; FK1ba: ?>
</strong>
</div>
<div style="float: right;font-family: Merchant-copy, 'Courier New';font-size: 9px;color: #000;">
<?php goto Jqlu3; uDPKi: ?>
</div>
<div style="width: 35%;text-align: center;float: left;">
<div style="width: 40%;float: left;text-align: left;line-height: ;font-family: Merchant-copy, 'Courier New';font-size: 10px;color: #000;">
NOMINAL
</div>
<div style="width: 2%;float: left;text-align: left;line-height: ;font-family: Merchant-copy, 'Courier New';font-size: 10px;color: #000;">
:
</div>
<div style="width: 48%;float: left;text-align: left; display: contents;line-height: ;font-family: Merchant-copy, 'Courier New';font-size: 10px;color: #000; margin-left: 8px;">
<!--<label style=" float: left;margin-left: 8px;">-->
<label><?php goto IfUNs; wDDZz: ?>
</label></b>
</div>
<?php goto e1869; R7cZy: ?>
</div>
<div style="width: 100%;text-align: center;font-family: Merchant-copy, 'Courier New';font-size: 11px;color: #000; margin-bottom:18px; ">
<b>Terimakasih telah Belanja di Toko <span style="font-weight:900;"><?php goto vncsV; Jqlu3: echo format_tanggal($trx->tr_tanggal); goto OV0rY; wd8ba: echo base_url(); goto xhY9A; quqpR: echo strtoupper(html_escape($trx->op_nama)); goto D2LQJ; uAFAB: echo format_tanggal($trx->tr_tanggal); goto VdbAh; KHeJ9: echo $trx->vo_nominal; goto BdpjN; nFmON: echo format_uang2($trx->tr_harga2, 0); goto GX6Rz; gTHtt: ?>
</span></b>
</div>
<div style="border-bottom:1px dashed;"> </div>
</div><br>
</div>
<script>
function ganti() {
var element = document.getElementById("satu");
element.classList.remove("kocrid");
}
function close() {
var element = document.getElementById("satu");
element.classList.add("kocrid");
}
function printSatu() {
var element = document.getElementsByClassName("printSatu");
printSatu.addAttribute('printarea');
var element = document.getElementsByClassName("landscape");
landscape.removeAttribute('printarea');
}
</script>
<script type="text/javascript" src="<?php goto wd8ba; vncsV: echo $this->user->us_name; goto gTHtt; hgyqp: ?>
</strong>
</div>
</div>
<div style="float: ;font-family: Merchant-copy, 'Courier New';font-size: 12px; font-weight:700;"><b><?php goto RIFHR; u7hqu: ?>
</title>
<link rel="shortcut icon" href="<?php goto BYtSB; NSU1U: if ($trx->tr_id_plgn) { ?>
-->
<!-- <div style="font-family: Merchant-copy, 'Courier New';font-size: 10px;color: #000;">-->
<!-- ID PEL : <b><?php echo $trx->tr_id_plgn; ?>
</b>-->
<!-- </div>-->
<!-- <?php } else { ?>
-->
<!-- <div style="font-family: Merchant-copy, 'Courier New';font-size: 10px;color: #000;">-->
<!-- NOMOR : <b><?php echo $trx->tr_no_hp; ?>
</b>-->
<!-- </div> -->
<!-- <?php } goto ihtXo; lvVAj: ?>
</span></b>
</div>
<div style="border-bottom:1px dashed;"> </div>
</div>
</div>
</section><br>
<div style="margin-left: 10px;">
<div class="dropdown" class="btn btn-primary w-min-sm mb-0-10 waves-effect waves-light" style="width: 10%; display: inline;">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown" onclick="return printArea3('area3')">Cetak
<!-- <span class="caret"></span></button>-->
<!-- <ul class="dropdown-menu" style="font-size:12px;-->
<!-- padding: 10px;-->
<!-- background-color: #286090;-->
<!--}">-->
<!--<li style="background-color: #286090; border-radius:3px; box-shadow: margin-bottom: 5px;"><a style="color:white;" href="javascript:void(0);" id="printNow"> 1/4 A4 = Horizontal (Lancape) </a></li>-->
<!-- <li style="background-color: #286090; border-radius:3px; color:white; "><a style="color:white;" href="javascript:void(0);" onclick="return printArea2('area2')">58/80mm = Horizontal (Lancape)</a></li>-->
<!-- <li style="background-color: #286090; border-radius:3px; color:white; "><a style="color:white;" href="javascript:void(0);" onclick="return printArea3('area3')">80/58mm = Vertikal (Portrait)</a></li>-->
<!-- </ul>-->
</div>
<a href="javascript:void(0);" id="downloadStruk" class="btn btn-warning w-min-sm mb-0-25 waves-effect waves-light">
<i class="mdi mdi-download"></i> Download
</a>
<div onclick="ganti()" class="btn btn-danger w-min-sm mb-0-25 waves-effect waves-light">
<i class="mdi mdi-keyboard-backspace"></i> Ubah Harga
</div>
<a href="<?php goto VwTZX; BYzoO: echo html_escape($this->system->produk->{$trx->op_produk}->nama); goto VLKpt; LBRt9: echo format_uang2($trx->tr_harga2, 0); goto Qklza; VLKpt: ?>
</label></b>
</div>
<div style="
font-family: Merchant-copy, 'Courier New';
font-size: 9px;
color: #000;
grid-template-columns: 25% 5% 80%;
display: grid;
text-align: left;
margin-top: 5px;
gap: 6px;
">
NOMINAL <label> : </label> <b><label><?php goto wUChA; K8aVg: ?>
-->
<!-- </div>-->
<!-- <div style="width: 100%;text-align: center;font-family: Merchant-copy, 'Courier New';font-size: 9px;color: #000;">-->
<!-- Informasi Hubungi Call Center-->
<!-- </div> -->
<!-- </div>-->
<!-- </div><br>-->
<!-- </div>-->
<div style="visibility:hidden; ">
<div id="area2" class="landscape" style="
position: absolute;
width: 186mm;
border: 0px;
background-color: white;
z-index: 9999;
padding: 10px;
">
<div style=" border-right: 1px dashed whitesmoke; padding: 10px; width: 196mm;">
<div style="margin-top:5px; width:180mm;">
<div style="float: left;font-family: Merchant-copy, 'Courier New';font-size: 10px;color: #000;">
<strong><?php goto crz2d; NuCC8: echo strtoupper(html_escape($trx->op_nama)); goto hgyqp; wUChA: echo $trx->vo_nominal; goto Z1s0P; xhY9A: ?>
assets/js/jquery.min.js"></script>
<script type="text/javascript" src="<?php goto HqmbB; sT6w1: ?>
"><br>
<!--<h5 style="font-size:12px; color:darkgrey;">Kosongkan jika tidak perlu update harga.</h5>-->
<h5 style="font-size:12px; color:darkgrey;">update harga hanya untuk menganti harga saat dicetak tidak mempengaruhi harga sistem <br><i style="color:#d9534f; font-size:10px;"> (ganti harga pada kotak yang disediakan)</i></h5>
<button type="submit" class="btn btn-primary" onclick="updataeharga()">Update</button>
<button type="submit" class="btn btn-danger" onclick="updataeharga()">Tutup</button>
</div>
</div>
<br>
<section class="sheet padding-5mm " id="printarea" style="width:200vh; display:none;">
<div style="padding: 20px;" class="article" id="StrukDownload">
<div style="float: left;font-family: Merchant-copy, 'Courier New';font-size: 10px;color: #000; ">
<strong><?php goto rRToS; VdbAh: ?>
</b></div>
<div style="
display: grid;
grid-template-columns: auto;
text-align: left;
margin-top: 15px;padding:5px; font-size: 12px; margin-bottom:10px;
">
<div style="font-family: Merchant-copy, 'Courier New';
font-size: 9px;
color: #000;
grid-template-columns: 35% 10% 55%;;
display: grid;
text-align: left;font-size: 12px;margin-bottom:10px;
margin-top: 5px;
">
JENIS <label>:</label> <b><label ><?php goto VD0U3; FIOvk: echo strtoupper(html_escape($this->system->produk->{$trx->op_produk}->nama)); goto u7hqu; Rzgo1: ?>
akun/riwayat-transaksi" class="btn btn-success w-min-sm mb-0-25 waves-effect waves-light">
<i class="mdi mdi-keyboard-backspace"></i> Kembali
</a>
</div>
</div>
<br>
<!-- <div style="visibility:;">-->
<!-- <div id="area2" class="landscape" style="-->
<!-- position: absolute;-->
<!-- background-color: white;-->
<!-- z-index: 9999;-->
<!-- padding: 15px;-->
<!-- margin-right:15px;-->
<!-- visibility: ;-->
<!-- border-right: 1px dashed !important;-->
<!-- ">-->
<!-- <div style="-->
<!--display: grid;-->
<!-- grid-template-columns: auto auto;-->
<!-- justify-content: space-between;-->
<!-- margin-top: 5px;-->
<!-- text-align-last: left;-->
<!-- padding:5px;-->
<!-- margin-top:10px;-->
<!-- width :330vh;-->
<!-- ">-->
<!-- <div style="display:grid; grid-template-columns: auto auto; justify-content: space-between; margin-bottom:15px; width: 330vh;">-->
<!-- <div style="float: left;font-family: Merchant-copy, 'Courier New';font-size: 10px;color: #000;">-->
<!-- <strong><?php goto m_FEy; Kb8eC: echo $trx->vo_nominal; goto wDDZz; hy4Qn: echo strtoupper(html_escape($trx->op_nama)); goto qMQRg; UrVoO: ?>
</label></b>
</div>
<div style="
font-family: Merchant-copy, 'Courier New';
font-size: 9px;
color: #000;
grid-template-columns: 35% 10% 55%;;
display: grid;
text-align: left;font-size: 12px;
margin-top: 5px; margin-bottom:10px;
">
NOMINAL <label>:</label> <b><label><?php goto Kb8eC; ibLuJ: echo base_url(); goto BhO2A; OjeqS: ?>
</label>
</div>
<div style="width: 40%;float: left;text-align: left;line-height: ;font-family: Merchant-copy, 'Courier New';font-size: 10px;color: #000;">
HARGA
</div>
<div style="width: 2%;float: left;text-align: left;line-height: ;font-family: Merchant-copy, 'Courier New';font-size: 10px;color: #000;">
:
</div>
<div style="width: 48%;float: left;text-align: left;line-height: ;font-family: Merchant-copy, 'Courier New';font-size: 10px;color: #000;margin-left: 8px;">
<label id="hrga2"><?php goto VG2dX; RIFHR: echo format_tanggal($trx->tr_tanggal); goto lSINA; m_FEy: echo $this->user->us_name; goto KncxA; EROMn: echo strtoupper($trx->vo_nominal); goto meBFK; fUd3y: ?>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="Cetak Struk">
<title>Cetak Struk - <?php goto FIOvk; p9K95: if ($trx->tr_status == "sukses" && isset($opsi["sn"]) && !empty($opsi["sn"])) { ?>
<div>
<strong>SN / REF : <br> <?php echo $opsi["sn"]; ?>
</strong>
</div>
<?php } else { ?>
<div>
<strong>SN / REF : <br> N/A</strong>
</div>
<?php } goto R7cZy; ihtXo: ?>
-->
<!-- <div style="float: right; font-family: Merchant-copy, 'Courier New';font-size: 10px;color: #000;">-->
<!-- HARGA : <b><label id="hrga3"><?php goto qx3x1; uRjPG: if ($trx->tr_id_plgn) { ?>
<div style="width: 25%;float: left;text-align: left;line-height: ;font-family: Merchant-copy, 'Courier New';font-size: 10px;color: #000;">
ID PEL
</div>
<div style="width: 75%;float: left;text-align: left;line-height: ;font-family: Merchant-copy, 'Courier New';font-size: 10px;color: #000;">
:
<label><?php echo $trx->tr_id_plgn; ?>
</label>
</div>
<?php } else { ?>
<div style="width: 25%;float: left;text-align: left;line-height: ;font-family: Merchant-copy, 'Courier New';font-size: 10px;color: #000;">
NOMOR
</div>
<div style="width: 75%;float: left;text-align: left;line-height: ;font-family: Merchant-copy, 'Courier New';font-size: 10px;color: #000;">
:
<label><?php echo $trx->tr_no_hp; ?>
</label>
</div>
<?php } goto uDPKi; BSVz3: if ($trx->tr_id_plgn) { ?>
<div style="
font-family: Merchant-copy, 'Courier New';
font-size: 9px;
color: #000;
grid-template-columns: 35% 10% 55%;;
display: grid;font-size: 12px;
text-align: left;
margin-top: 0px;margin-bottom:5px;
">
ID PEL <label>:</label> <b><?php echo $trx->tr_id_plgn; ?>
</b>
</div>
<?php } else { ?>
<div style="
font-family: Merchant-copy, 'Courier New';
font-size: 9px;
color: #000;
grid-template-columns: 35% 10% 55%;;
display: grid;
text-align: left;font-size: 12px;
margin-top: 0px;margin-bottom:5px;
">
NOMOR <label>:</label> <b><?php echo $trx->tr_no_hp; ?>
</b>
</div>
<?php } goto yv6hv; YjwDa: if ($trx->tr_status == "sukses" && isset($opsi["sn"]) && !empty($opsi["sn"])) { ?>
<div>
<strong>SN / REF : <br> <?php echo $opsi["sn"]; ?>
</strong>
</div>
<?php } else { ?>
<div>
<strong>SN / REF : <br> N/A</strong>
</div>
<?php } goto FXFtX; IfUNs: echo $trx->vo_nominal; goto OjeqS; N5afJ: echo strtoupper($trx->vo_nominal); goto aM6AJ; yv6hv: ?>
<div style="
font-family: Merchant-copy, 'Courier New';
font-size: 9px;
color: #000;
grid-template-columns: 35% 10% 55%;
display: grid;
text-align: left;font-size: 12px;
margin-top: 0px;margin-bottom:5px;
">
HARGA <label>:</label> <b><label id="hrga6"><?php goto l6HCr; eSjHv: if ($trx->tr_status == "sukses" && isset($opsi["sn"]) && !empty($opsi["sn"])) { ?>
<div>
<strong>SN / REF : <br> <?php echo $opsi["sn"]; ?>
</strong>
</div>
<?php } else { ?>
<div>
<strong>SN / REF : <br> N/A</strong>
</div>
<?php } goto f9XnN; crz2d: echo $this->user->us_name; goto FK1ba; aM6AJ: ?>
</label></b>-->
<!-- </div>-->
<!-- <div style=" float: right; font-family: Merchant-copy, 'Courier New';font-size: 10px;color: #000;">-->
<!-- NOMINAL : <b><label><?php goto kGPVh; l6HCr: echo format_uang2($trx->tr_harga2, 0); goto v9Qpw; v9Qpw: ?>
</label></b>
</div>
</div>
<div style="
width: 90%;
text-align: center;
font-family: Merchant-copy, 'Courier New';
font-weight: 600 !important;
font-size: 9px;
color: #000;font-size: 13px;
margin-top: 7px;
margin-bottom: 5px;
">
<?php goto p9K95; rRToS: echo $this->user->us_name; goto YvqZi; VwTZX: echo base_url(); goto Rzgo1; uVh4V: ?>
</label>
</div>
<?php goto uRjPG; WNhoh: ?>
</div>
<div style="width: 90%;text-align: center;font-family: Merchant-copy, 'Courier New';font-size: 8px;color: #000; margin-bottom:5px; ">
Informasi Hubungi Call Center
</div>
</div>
</div><br>
</div>
</div>
<div style="visibility:hidden;">
<div id="area3" class="landscape" style="
position: absolute;
width: 30vh;
height: 100vh
border: 0px;
background-color: white;
z-index: 9999;
padding: 10px;
visibility: ;
padding:3px;
">
<div style="margin-top:0px; width:90%;">
<div style="width: 90%;text-align: center;font-family: Merchant-copy, 'Courier New';font-size: 13px;color: #000; margin-top:0px; margin-left:-10px;">
<strong>STRUK PEMBELIAN <br>
<?php goto NuCC8; FXFtX: ?>
</div>
<div class="spacer"></div>
<div style="width: 100%;text-align: center;font-family: Merchant-copy, 'Courier New';font-size: 9px;color: #000;">
Informasi Hubungi Call Center
</div>
</div>
</section>
<section class="sheet padding-5mm " id="printarea" style="width:200vh; width: 70mm !important;
border-right: 1px dashed white !important;">
<div style="margin-top:5px; width:100%;">
<div style="width: 100%;text-align: center;font-family: Merchant-copy, 'Courier New';font-size: 13px;color: #000; margin-top:0px;">
<strong>STRUK PEMBELIAN <br>
<?php goto hy4Qn; QK8Fp: ?>
</div>
<div class="spacer"></div>
<div style="width: 90%;text-align: center;font-family: Merchant-copy, 'Courier New';font-size: 12px;color: #000;margin-bottom: ">
<strong>STRUK PEMBELIAN <?php goto quqpR; YvqZi: ?>
</strong>
</div>
<div style="float: right;font-family: Merchant-copy, 'Courier New';font-size: 10px;color: #000; border-right:">
<?php goto LpY8A; z8ixH: ?>
</strong>
</div>
<div style="
display: grid;
grid-template-columns: auto auto;
text-align: left;
margin-top: 15px;
justify-content: space-between;
width:180mm;
">
<div style="font-family: Merchant-copy, 'Courier New';
font-size: 9px;
color: #000;
grid-template-columns: 25% 5% 80%;
display: grid;
text-align: left;
margin-top: 5px;
gap: 6px;
">
JENIS <label> : </label> <b><label><?php goto BYzoO; BWGk8: defined("BASEPATH") or die("No direct script access allowed"); goto fUd3y; DXRiJ: if ($trx->tr_status == "sukses" && isset($opsi["sn"]) && !empty($opsi["sn"])) { ?>
<div>
<strong>SN / REF : <br> <?php echo $opsi["sn"]; ?>
</strong>
</div>
<?php } else { ?>
<div>
<strong>SN / REF : <br> N/A</strong>
</div>
<?php } goto WNhoh; cBq3c: echo format_tanggal($trx->tr_tanggal); goto qz0hb; wU7Or: ?>
</label></b>
</div>
<div style="
font-family: Merchant-copy, 'Courier New';
font-size: 9px;
color: #000;
grid-template-columns: 35% 10% 55%;;
display: grid;
text-align: left;font-size: 12px;
margin-top: 0px; margin-bottom:5px;
">
NOMINAL <label>:</label> <b><label><?php goto KHeJ9; BhO2A: ?>
assets/css/bootstrap.min.css" id="bootstrap-style" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="https://kocridcell.net/assets/css/mdk_cetak.css">
<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<script>
function printArea1(area1){
var printPage = document.getElementById(area1).innerHTML;
var oriPage = document.body.innerHTML;
document.body.innerHTML = printPage;
window.print();
document.body.innerHTML = oriPage;
}
function printArea2(area2){
var printPage = document.getElementById(area2).innerHTML;
var oriPage = document.body.innerHTML;
document.body.innerHTML = printPage;
window.print();
document.body.innerHTML = oriPage;
}
function printArea3(area3){
var printPage = document.getElementById(area3).innerHTML;
var oriPage = document.body.innerHTML;
document.body.innerHTML = printPage;
window.print();
document.body.innerHTML = oriPage;
}
</script>
<style>
@media screen {
@page {
size:A4;
size:210mm 287mm;
}
.kocrid{
display: none;
}
.page{
-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
filter: prog.id:DXImageTransform.Microsoft.BasicImage(rotation=3);
}
.sheet{
border-right: 1px dashed !important; width:210mm !important;
}
.dropdown-menu>li>a:focus, .dropdown-menu>li>a:hover {
text-decoration: none;
color: black !important;
background-color: white;
border-radius: 3px;
font-weight: bold;
}
.landscape{
width: 150vh;
}
}
</style>
</head>
<body class="" style="text-align: -webkit-center;">
<div>
<div class="kocrid" style="background: white;padding: 20px;
background: white;
padding: 20px;
width: 30%;
position: absolute;
z-index: 99999;
border: 2px solid;
top: 20vh;
left: 75vh;
text-align: center;
text-align-last: center;
box-shadow: 1px 1px 3px 1px rgb(142 142 142 / 80%);
" id="satu">
<label style="font-size:24px; font-weight:700;">UPDATE HARGA</label><br>
<input style="
border: 2.5px solid black;
width: inherit;
padding: 5px;
border-radius: 5px;
font-weight: 600;
background-color: black;
color: white;
"
type="text" id="updharga" name="updharga" value="<?php goto Jf7JF; KncxA: ?>
</strong>-->
<!-- </div>-->
<!-- <div style="float: right;font-family: Merchant-copy, 'Courier New';font-size: 10px;color: #000;">-->
<!-- <?php goto cBq3c; GX6Rz: ?>
</label></b>
</div>
</div>
<div style="
width: 90%;
text-align: center;
font-family: Merchant-copy, 'Courier New';
font-weight: 600 !important;
font-size: 9px;
color: #000;font-size: 13px;
margin-top: 15px;
margin-bottom: 5px;margin-bottom:15px;
">
<?php goto eSjHv; Z1s0P: ?>
</label></b>
</div>
<?php goto XvQEf; XvQEf: if ($trx->tr_id_plgn) { ?>
<div style="
font-family: Merchant-copy, 'Courier New';
font-size: 9px;
color: #000;
grid-template-columns: 25% 5% 70%;
display: grid;
text-align: left;
margin-top: 0px;
gap: 6px;
">
ID PEL : <b><?php echo $trx->tr_id_plgn; ?>
</b>
</div>
<?php } else { ?>
<div style="
font-family: Merchant-copy, 'Courier New';
font-size: 9px;
color: #000;
grid-template-columns: 25% 5% 80%;
display: grid;
text-align: left;
margin-top: 0px;
gap: 6px;
">
NOMOR <label>:</label> <b><?php echo $trx->tr_no_hp; ?>
</b>
</div>
<?php } goto RRd33; znMMq: ?>
</label></b>-->
<!-- </div>-->
<!-- <?php goto NSU1U; yNiu0: echo strtoupper(html_escape($trx->op_nama)); goto z8ixH; WnMUM: ?>
template/images/favicon.ico">
<link href="<?php goto ibLuJ; qz0hb: ?>
-->
<!-- </div>-->
<!-- </div>-->
<!-- <div style="font-family: Merchant-copy, 'Courier New';font-size: 10px;color: #000;">-->
<!-- JENIS : <b><label><?php goto N5afJ; f9XnN: ?>
</div>
<div style="width: 100%;text-align: center;font-family: Merchant-copy, 'Courier New';font-size: 11px;color: #000; margin-bottom:18px; ">
<b>Terimakasih telah Belanja di Toko <span style="font-weight:900;"><?php goto SdmA6; qx3x1: echo format_uang2($trx->tr_harga2, 0); goto oN39M; Jf7JF: echo format_uang2($trx->tr_harga2, 0); goto sT6w1; LpY8A: echo format_tanggal($trx->tr_tanggal); goto QK8Fp; VD0U3: echo html_escape($this->system->produk->{$trx->op_produk}->nama); goto UrVoO; VG2dX: echo format_uang2($trx->tr_harga2, 0); goto LIazp; VSpQo: ?>
<div style="
font-family: Merchant-copy, 'Courier New';
font-size: 9px;
color: #000;
grid-template-columns: 35% 10% 55%;
display: grid;
text-align: left;font-size: 12px;
margin-top: 5px;margin-bottom:10px;
">
HARGA <label>:</label> <b><label id="hrga4"><?php goto nFmON; D2LQJ: ?>
</strong>
</div>
<div class="spacer"></div><br><br>
<div style="width: 65%;text-align: center;float: left; ">
<div style="width: 25%;float: left;text-align: left;line-height: px;font-family: Merchant-copy, 'Courier New';font-size: 10px;color: #000;">
JENIS
</div>
<div style="width: 75%;float: left;text-align: left;line-height: px;font-family: Merchant-copy, 'Courier New';font-size: 10px;color: #000;">
:
<!--<label><?php goto EROMn; eVYku: ?>
.png')
a.setAttribute('href', image)
a.click()
canvas.remove()
})
}
const downloadStruk = document.querySelector('#downloadStruk')
downloadStruk.addEventListener('click', ScreenCapture)
</script>
<script type ="text/javascript">
function updataeharga(){
var hrga = $("#updharga").val();
document.getElementById("hrga2").innerHTML = hrga;
document.getElementById("hrga3").innerHTML = hrga;
document.getElementById("hrga4").innerHTML = hrga;
document.getElementById("hrga6").innerHTML = hrga;
var element = document.getElementById("satu");
element.classList.add("kocrid");
}
</script>
<script>
var isNS = (navigator.appName == "Netscape") ? 1 : 0;
if(navigator.appName == "Netscape") document.captureEvents(Event.MOUSEDOWN||Event.MOUSEUP);
function mischandler(){
return false;
}
function mousehandler(e){
var myevent = (isNS) ? e : event;
var eventbutton = (isNS) ? myevent.which : myevent.button;
if((eventbutton==2)||(eventbutton==3)) return false;
}
document.oncontextmenu = mischandler;
document.onmousedown = mousehandler;
document.onmouseup = mousehandler;
</script>
</body>
</htm
Did this file decode correctly?
Original Code
<?php eval(base64_decode('CiBnb3RvIEJXR2s4OyBUNVhQZDogZWNobyBodG1sX2VzY2FwZSgkdGhpcy0+c3lzdGVtLT5wcm9kdWstPnskdHJ4LT5vcF9wcm9kdWt9LT5uYW1hKTsgZ290byB3VTdPcjsga0dQVmg6IGVjaG8gJHRyeC0+dm9fbm9taW5hbDsgZ290byB6bk1NcTsgbWVCRks6ID8+CjwvbGFiZWw+LS0+CiAgICAgICAgICAgIDxsYWJlbD48P3BocCAgZ290byBZcGN6TzsgUlJkMzM6ID8+CgogICAgICAgICAgPGRpdiBzdHlsZT0iCiAgICAgICAgICBmb250LWZhbWlseTogTWVyY2hhbnQtY29weSwgJ0NvdXJpZXIgTmV3JzsKICAgIGZvbnQtc2l6ZTogOXB4OwogICAgY29sb3I6ICMwMDA7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDI1JSA1JSA3MCU7CiAgICBkaXNwbGF5OiBncmlkOwogICAgdGV4dC1hbGlnbjogbGVmdDsKICAgIG1hcmdpbi10b3A6IDBweDsKICAgICAgICAgICI+CiAgICAgICAgICAgIEhBUkdBIDxsYWJlbD46PC9sYWJlbD4gPGI+PGxhYmVsIGlkPSJocmdhMyI+PD9waHAgIGdvdG8gTEJSdDk7IFFrbHphOiA/Pgo8L2xhYmVsPjwvYj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iCiAgICAgICAgICAgICAgICAgIHdpZHRoOiA5MCU7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBmb250LWZhbWlseTogTWVyY2hhbnQtY29weSwgJ0NvdXJpZXIgTmV3JzsKICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDsKICAgIGZvbnQtc2l6ZTogOXB4OwogICAgY29sb3I6ICMwMDA7CiAgICBtYXJnaW4tdG9wOiAtNXB4OwogICAgbWFyZ2luLWJvdHRvbTogcHg7CiAgICAgICAgICAgICAgICAgICI+CiAgICAgICAgICA8P3BocCAgZ290byBEWFJpSjsgQmRwak46ID8+CjwvbGFiZWw+PC9iPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgIDw/cGhwICBnb3RvIEJTVnozOyBsMEdreDogaWYgKCR0cngtPnRyX3N0YXR1cyA9PSAiXHg3M1x4NzVceDZiXHg3M1x4NjVceDczIiAmJiBpc3NldCgkb3BzaVsiXHg3M1x4NmUiXSkgJiYgIWVtcHR5KCRvcHNpWyJceDczXHg2ZSJdKSkgeyA/PgotLT4KPCEtLSAgICAgICAgICA8ZGl2Pi0tPgo8IS0tICAgICAgICAgICAgPHN0cm9uZz5TTiAvIFJFRiA6IDw/cGhwICBlY2hvICRvcHNpWyJceDczXHg2ZSJdOyA/Pgo8L3N0cm9uZz4tLT4KPCEtLSAgICAgICAgICA8L2Rpdj4tLT4KPCEtLSAgICAgICAgICA8P3BocCAgfSBlbHNlIHsgPz4KLS0+CjwhLS0gICAgICAgICAgPGRpdj4tLT4KPCEtLSAgICAgICAgICAgIDxzdHJvbmc+U04gLyBSRUYgOiBOL0E8L3N0cm9uZz4tLT4KPCEtLSAgICAgICAgICA8L2Rpdj4tLT4KPCEtLSAgICAgICAgICA8P3BocCAgfSBnb3RvIEs4YVZnOyBPVjByWTogPz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj48YnI+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogOTAlO3RleHQtYWxpZ246IGNlbnRlcjtmb250LWZhbWlseTogTWVyY2hhbnQtY29weSwgJ0NvdXJpZXIgTmV3Jztmb250LXNpemU6IDExcHg7Y29sb3I6ICMwMDA7IG1hcmdpbi10b3A6MjBweDsiPgogICAgICAgICAgPHN0cm9uZz5TVFJVSyBQRU1CRUxJQU4gPD9waHAgIGdvdG8geU5pdTA7IGUxODY5OiBpZiAoJHRyeC0+dHJfaWRfcGxnbikgeyA/PgogICAgICAgICAgPGRpdiBzdHlsZT0iCiAgICAgICAgICBmb250LWZhbWlseTogTWVyY2hhbnQtY29weSwgJ0NvdXJpZXIgTmV3JzsKICAgIGZvbnQtc2l6ZTogOXB4OwogICAgY29sb3I6ICMwMDA7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDM1JSAxMCUgNTUlOzsKICAgIGRpc3BsYXk6IGdyaWQ7Zm9udC1zaXplOiAxMnB4OwogICAgdGV4dC1hbGlnbjogbGVmdDsKICAgIG1hcmdpbi10b3A6IDVweDttYXJnaW4tYm90dG9tOjEwcHg7CiAgICAgICAgICAKICAgICAgICAgICI+CiAgICAgICAgICAgIElEIFBFTCA8bGFiZWw+OjwvbGFiZWw+IDxiPjw/cGhwICBlY2hvICR0cngtPnRyX2lkX3BsZ247ID8+CjwvYj4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDw/cGhwICB9IGVsc2UgeyA/PgogICAgICAgICAgPGRpdiBzdHlsZT0iCiAgICAgICAgICBmb250LWZhbWlseTogTWVyY2hhbnQtY29weSwgJ0NvdXJpZXIgTmV3JzsKICAgIGZvbnQtc2l6ZTogOXB4OwogICAgY29sb3I6ICMwMDA7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDM1JSAxMCUgNTUlOzsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICB0ZXh0LWFsaWduOiBsZWZ0O2ZvbnQtc2l6ZTogMTJweDsKICAgIG1hcmdpbi10b3A6IDVweDttYXJnaW4tYm90dG9tOjEwcHg7CiAgICAgICAgICAiPgogICAgICAgICAgICBOT01PUiA8bGFiZWw+OjwvbGFiZWw+IDxiPjw/cGhwICBlY2hvICR0cngtPnRyX25vX2hwOyA/Pgo8L2I+CiAgICAgICAgICA8L2Rpdj4gCgogICAgICAgICAgPD9waHAgIH0gZ290byBWU3BRbzsgSHNCZmg6IGVjaG8gJHRyeC0+dHJfaWQ7IGdvdG8gZVZZa3U7IEhxbWJCOiBlY2hvIGJhc2VfdXJsKCk7IGdvdG8gUnNmX0w7IFJzZl9MOiA/Pgphc3NldHMvanMvcHJpbnRhcmVhLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2h0bWwyY2FudmFzLmhlcnR6ZW4uY29tL2Rpc3QvaHRtbDJjYW52YXMubWluLmpzIj48L3NjcmlwdD4KICAgIAogICAgCiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewogICAgICAgICQoIiNwcmludE5vdyIpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICAgICAgICAkKCIjcHJpbnRhcmVhIikucHJpbnRBcmVhKCk7CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgPC9zY3JpcHQ+CiAgICAKICAgIAogICAgCiAgICA8c2NyaXB0PgogICAgICBmdW5jdGlvbiBTY3JlZW5DYXB0dXJlKCkgewogICAgICAgIGNvbnN0IGNhcHR1cmVFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI1N0cnVrRG93bmxvYWQnKQogICAgICAgIGh0bWwyY2FudmFzKGNhcHR1cmVFbGVtZW50KQogICAgICAgICAgLnRoZW4oY2FudmFzID0+IHsKICAgICAgICAgIGNhbnZhcy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnCiAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNhbnZhcykKICAgICAgICAgIHJldHVybiBjYW52YXMKICAgICAgICB9KQogICAgICAgICAgLnRoZW4oY2FudmFzID0+IHsKICAgICAgICAgIGNvbnN0IGltYWdlID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJykucmVwbGFjZSgnaW1hZ2UvcG5nJywgJ2ltYWdlL29jdGV0LXN0cmVhbScpCiAgICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpCiAgICAgICAgICBhLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCAnU3RydWtfdHJhbnNha3NpIzw/cGhwICBnb3RvIEhzQmZoOyBxTVFSZzogPz4KPC9zdHJvbmc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZsb2F0OiA7Zm9udC1mYW1pbHk6IE1lcmNoYW50LWNvcHksICdDb3VyaWVyIE5ldyc7Zm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDo3MDA7Ij48Yj48P3BocCAgZ290byB1QUZBQjsgTElhenA6ID8+CjwvbGFiZWw+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgogICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiAxMDAlO3RleHQtYWxpZ246IGNlbnRlcjttYXJnaW4tdG9wOiBweDtmb250LWZhbWlseTogTWVyY2hhbnQtY29weSwgJ0NvdXJpZXIgTmV3Jztmb250LXNpemU6IDExcHg7Y29sb3I6ICMwMDA7Ij4KICAgICAgICAgIDw/cGhwICBnb3RvIFlqd0RhOyBZcGN6TzogZWNobyBodG1sX2VzY2FwZSgkdGhpcy0+c3lzdGVtLT5wcm9kdWstPnskdHJ4LT5vcF9wcm9kdWt9LT5uYW1hKTsgZ290byB1Vmg0VjsgbFNJTkE6ID8+CjwvYj48L2Rpdj4KICAgICAgICA8ZGl2IHN0eWxlPSIKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG87CiAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgbWFyZ2luLXRvcDogMHB4O3BhZGRpbmc6NXB4OyAgZm9udC1zaXplOiAxMnB4OyBtYXJnaW4tYm90dG9tOjVweDsKICAgICAgICAKICAgICAgICAiPgoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lcmNoYW50LWNvcHksICdDb3VyaWVyIE5ldyc7CiAgICBmb250LXNpemU6IDlweDsKICAgIGNvbG9yOiAjMDAwOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzNSUgMTAlIDU1JTs7CiAgICBkaXNwbGF5OiBncmlkOwogICAgdGV4dC1hbGlnbjogbGVmdDtmb250LXNpemU6IDEycHg7bWFyZ2luLWJvdHRvbTo1cHg7CiAgICBtYXJnaW4tdG9wOiAwcHg7CiI+CiAgICAgICAgICAgIEpFTklTIDxsYWJlbD46PC9sYWJlbD4gPGI+PGxhYmVsID48P3BocCAgZ290byBUNVhQZDsgU2RtQTY6IGVjaG8gJHRoaXMtPnVzZXItPnVzX25hbWU7IGdvdG8gbHZWQWo7IEJZdFNCOiBlY2hvIGJhc2VfdXJsKCk7IGdvdG8gV25NVU07IG9OMzlNOiA/Pgo8L2xhYmVsPjwvYj4tLT4KPCEtLSAgICAgICAgICA8L2Rpdj4tLT4KICAgICAgICAgIAo8IS0tICAgICAgICAgIDwvZGl2Pi0tPgo8IS0tICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDEwMCU7dGV4dC1hbGlnbjogY2VudGVyO2ZvbnQtZmFtaWx5OiBNZXJjaGFudC1jb3B5LCAnQ291cmllciBOZXcnO2ZvbnQtd2VpZ2h0OjYwMCAhaW1wb3J0YW50OyBmb250LXNpemU6IDExcHg7Y29sb3I6ICMwMDA7IG1hcmdpbi10b3A6MTVweDsiPi0tPgo8IS0tICAgICAgICAgIDw/cGhwICBnb3RvIGwwR2t4OyBGSzFiYTogPz4KPC9zdHJvbmc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0O2ZvbnQtZmFtaWx5OiBNZXJjaGFudC1jb3B5LCAnQ291cmllciBOZXcnO2ZvbnQtc2l6ZTogOXB4O2NvbG9yOiAjMDAwOyI+CiAgICAgICAgICA8P3BocCAgZ290byBKcWx1MzsgdURQS2k6ID8+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDM1JTt0ZXh0LWFsaWduOiBjZW50ZXI7ZmxvYXQ6IGxlZnQ7Ij4KICAgICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiA0MCU7ZmxvYXQ6IGxlZnQ7dGV4dC1hbGlnbjogbGVmdDtsaW5lLWhlaWdodDogO2ZvbnQtZmFtaWx5OiBNZXJjaGFudC1jb3B5LCAnQ291cmllciBOZXcnO2ZvbnQtc2l6ZTogMTBweDtjb2xvcjogIzAwMDsiPgogICAgICAgICAgICBOT01JTkFMCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiAyJTtmbG9hdDogbGVmdDt0ZXh0LWFsaWduOiBsZWZ0O2xpbmUtaGVpZ2h0OiA7Zm9udC1mYW1pbHk6IE1lcmNoYW50LWNvcHksICdDb3VyaWVyIE5ldyc7Zm9udC1zaXplOiAxMHB4O2NvbG9yOiAjMDAwOyI+CiAgICAgICAgICAgIDoKICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDQ4JTtmbG9hdDogbGVmdDt0ZXh0LWFsaWduOiBsZWZ0OyBkaXNwbGF5OiBjb250ZW50cztsaW5lLWhlaWdodDogO2ZvbnQtZmFtaWx5OiBNZXJjaGFudC1jb3B5LCAnQ291cmllciBOZXcnO2ZvbnQtc2l6ZTogMTBweDtjb2xvcjogIzAwMDsgICAgIG1hcmdpbi1sZWZ0OiA4cHg7Ij4KICAgICAgICAgICAgPCEtLTxsYWJlbCBzdHlsZT0iICAgIGZsb2F0OiBsZWZ0O21hcmdpbi1sZWZ0OiA4cHg7Ij4tLT4KICAgICAgICAgICAgPGxhYmVsPjw/cGhwICBnb3RvIElmVU5zOyB3RERaejogPz4KPC9sYWJlbD48L2I+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIAogICAgICAgICAgPD9waHAgIGdvdG8gZTE4Njk7IFI3Y1p5OiA/PgoKICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDEwMCU7dGV4dC1hbGlnbjogY2VudGVyO2ZvbnQtZmFtaWx5OiBNZXJjaGFudC1jb3B5LCAnQ291cmllciBOZXcnO2ZvbnQtc2l6ZTogMTFweDtjb2xvcjogIzAwMDsgbWFyZ2luLWJvdHRvbToxOHB4OyAiPgogICAgICAgICAgPGI+VGVyaW1ha2FzaWggdGVsYWggQmVsYW5qYSBkaSBUb2tvIDxzcGFuIHN0eWxlPSJmb250LXdlaWdodDo5MDA7Ij48P3BocCAgZ290byB2bmNzVjsgSnFsdTM6IGVjaG8gZm9ybWF0X3RhbmdnYWwoJHRyeC0+dHJfdGFuZ2dhbCk7IGdvdG8gT1Ywclk7IHdkOGJhOiBlY2hvIGJhc2VfdXJsKCk7IGdvdG8geGhZOUE7IHF1cXBSOiBlY2hvIHN0cnRvdXBwZXIoaHRtbF9lc2NhcGUoJHRyeC0+b3BfbmFtYSkpOyBnb3RvIEQyTFFKOyB1QUZBQjogZWNobyBmb3JtYXRfdGFuZ2dhbCgkdHJ4LT50cl90YW5nZ2FsKTsgZ290byBWZGJBaDsgS0hlSjk6IGVjaG8gJHRyeC0+dm9fbm9taW5hbDsgZ290byBCZHBqTjsgbkZtT046IGVjaG8gZm9ybWF0X3VhbmcyKCR0cngtPnRyX2hhcmdhMiwgMCk7IGdvdG8gR1g2Uno7IGdUSHR0OiA/Pgo8L3NwYW4+PC9iPgogICAgICAgIDwvZGl2PiAKICAgICAgICAgICAgPGRpdiBzdHlsZT0iYm9yZGVyLWJvdHRvbToxcHggZGFzaGVkOyI+IDwvZGl2PgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgPC9kaXY+PGJyPgogICAgPC9kaXY+CiAgICAKICAgIAogICAgCiAgICAKICAgIAogICAgCiAgICAKICAgIAogICAgCiAgICAKICAgIAogICAgCiAgICAKICAgIAogICAgCiAgICAKICAgIAogICAgCiAgICAKICAgIAogICAgPHNjcmlwdD4KCiAgICAKICAgIAogICAgCiAgICAKICAgIAogICAgCiAgICAKICAgIAogICAgCiAgICAKIAogICAgCiAgICAgICAgZnVuY3Rpb24gZ2FudGkoKSB7CiAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdHUiKTsKICAgZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJrb2NyaWQiKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgICAgICAgICBmdW5jdGlvbiBjbG9zZSgpIHsKICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2F0dSIpOwogICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoImtvY3JpZCIpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHByaW50U2F0dSgpIHsKICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJwcmludFNhdHUiKTsKICAgcHJpbnRTYXR1LmFkZEF0dHJpYnV0ZSgncHJpbnRhcmVhJyk7CiAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgibGFuZHNjYXBlIik7CiAgIGxhbmRzY2FwZS5yZW1vdmVBdHRyaWJ1dGUoJ3ByaW50YXJlYScpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAKICAgIDwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iPD9waHAgIGdvdG8gd2Q4YmE7IHZuY3NWOiBlY2hvICR0aGlzLT51c2VyLT51c19uYW1lOyBnb3RvIGdUSHR0OyBoZ3lxcDogPz4KPC9zdHJvbmc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZsb2F0OiA7Zm9udC1mYW1pbHk6IE1lcmNoYW50LWNvcHksICdDb3VyaWVyIE5ldyc7Zm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDo3MDA7Ij48Yj48P3BocCAgZ290byBSSUZIUjsgdTdocXU6ID8+CjwvdGl0bGU+CiAgICA8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Ijw/cGhwICBnb3RvIEJZdFNCOyBOU1UxVTogaWYgKCR0cngtPnRyX2lkX3BsZ24pIHsgPz4KLS0+CjwhLS0gICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lcmNoYW50LWNvcHksICdDb3VyaWVyIE5ldyc7Zm9udC1zaXplOiAxMHB4O2NvbG9yOiAjMDAwOyI+LS0+CjwhLS0gICAgICAgICAgICBJRCBQRUwgOiA8Yj48P3BocCAgZWNobyAkdHJ4LT50cl9pZF9wbGduOyA/Pgo8L2I+LS0+CjwhLS0gICAgICAgICAgPC9kaXY+LS0+Cgo8IS0tICAgICAgICAgIDw/cGhwICB9IGVsc2UgeyA/PgotLT4KPCEtLSAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTogTWVyY2hhbnQtY29weSwgJ0NvdXJpZXIgTmV3Jztmb250LXNpemU6IDEwcHg7Y29sb3I6ICMwMDA7Ij4tLT4KPCEtLSAgICAgICAgICAgIE5PTU9SIDogPGI+PD9waHAgIGVjaG8gJHRyeC0+dHJfbm9faHA7ID8+CjwvYj4tLT4KPCEtLSAgICAgICAgICA8L2Rpdj4gLS0+Cgo8IS0tICAgICAgICAgIDw/cGhwICB9IGdvdG8gaWh0WG87IGx2VkFqOiA/Pgo8L3NwYW4+PC9iPgogICAgICAgIDwvZGl2PiAKICAgICAgICAgICAgPGRpdiBzdHlsZT0iYm9yZGVyLWJvdHRvbToxcHggZGFzaGVkOyI+IDwvZGl2PgogICAgICAgICAgICAKICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+PGJyPiAgICAKICAgIAogICAgCiAgICAKICAgIAogICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDEwcHg7Ij4KCjxkaXYgY2xhc3M9ImRyb3Bkb3duIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IHctbWluLXNtIG1iLTAtMTAgd2F2ZXMtZWZmZWN0IHdhdmVzLWxpZ2h0IiBzdHlsZT0id2lkdGg6IDEwJTsgZGlzcGxheTogaW5saW5lOyI+CiAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IGRyb3Bkb3duLXRvZ2dsZSIgdHlwZT0iYnV0dG9uIiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iIG9uY2xpY2s9InJldHVybiBwcmludEFyZWEzKCdhcmVhMycpIj5DZXRhawo8IS0tICA8c3BhbiBjbGFzcz0iY2FyZXQiPjwvc3Bhbj48L2J1dHRvbj4tLT4KPCEtLSAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51IiBzdHlsZT0iZm9udC1zaXplOjEycHg7LS0+CjwhLS0gICAgcGFkZGluZzogMTBweDstLT4KPCEtLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjg2MDkwOy0tPgo8IS0tfSI+LS0+CiAgICAgIAogICAgICAKICAgICAgCiAgICAgIAogICAgPCEtLTxsaSBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogIzI4NjA5MDsgYm9yZGVyLXJhZGl1czozcHg7IGJveC1zaGFkb3c6ICAgICBtYXJnaW4tYm90dG9tOiA1cHg7Ij48YSBzdHlsZT0iY29sb3I6d2hpdGU7IiBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBpZD0icHJpbnROb3ciPiAxLzQgQTQgPSBIb3Jpem9udGFsIChMYW5jYXBlKSA8L2E+PC9saT4tLT4KICAgIAogICAgCjwhLS0gICAgICAgIDxsaSBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogIzI4NjA5MDsgYm9yZGVyLXJhZGl1czozcHg7IGNvbG9yOndoaXRlOyAiPjxhIHN0eWxlPSJjb2xvcjp3aGl0ZTsiIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIG9uY2xpY2s9InJldHVybiBwcmludEFyZWEyKCdhcmVhMicpIj41OC84MG1tID0gSG9yaXpvbnRhbCAoTGFuY2FwZSk8L2E+PC9saT4tLT4KICAgIAogICAgCjwhLS0gICAgPGxpIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjMjg2MDkwOyBib3JkZXItcmFkaXVzOjNweDsgY29sb3I6d2hpdGU7ICI+PGEgc3R5bGU9ImNvbG9yOndoaXRlOyIgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0icmV0dXJuIHByaW50QXJlYTMoJ2FyZWEzJykiPjgwLzU4bW0gPSBWZXJ0aWthbCAoUG9ydHJhaXQpPC9hPjwvbGk+LS0+CjwhLS0gIDwvdWw+LS0+CjwvZGl2PgoKICAgICAgCiAgICAgIAogICAgICAKICAgICAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgaWQ9ImRvd25sb2FkU3RydWsiIGNsYXNzPSJidG4gYnRuLXdhcm5pbmcgdy1taW4tc20gbWItMC0yNSB3YXZlcy1lZmZlY3Qgd2F2ZXMtbGlnaHQiPgogICAgICAgIDxpIGNsYXNzPSJtZGkgbWRpLWRvd25sb2FkIj48L2k+IERvd25sb2FkCiAgICAgIDwvYT4gCiAgICAgICAgICAgIDxkaXYgb25jbGljaz0iZ2FudGkoKSIgY2xhc3M9ImJ0biBidG4tZGFuZ2VyIHctbWluLXNtIG1iLTAtMjUgd2F2ZXMtZWZmZWN0IHdhdmVzLWxpZ2h0Ij4KICAgICAgICA8aSBjbGFzcz0ibWRpIG1kaS1rZXlib2FyZC1iYWNrc3BhY2UiPjwvaT4gVWJhaCBIYXJnYQogICAgICA8L2Rpdj4KICAgICAgPGEgaHJlZj0iPD9waHAgIGdvdG8gVndUWlg7IEJZem9POiBlY2hvIGh0bWxfZXNjYXBlKCR0aGlzLT5zeXN0ZW0tPnByb2R1ay0+eyR0cngtPm9wX3Byb2R1a30tPm5hbWEpOyBnb3RvIFZMS3B0OyBMQlJ0OTogZWNobyBmb3JtYXRfdWFuZzIoJHRyeC0+dHJfaGFyZ2EyLCAwKTsgZ290byBRa2x6YTsgVkxLcHQ6ID8+CjwvbGFiZWw+PC9iPgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iIAogZm9udC1mYW1pbHk6IE1lcmNoYW50LWNvcHksICdDb3VyaWVyIE5ldyc7CiAgICBmb250LXNpemU6IDlweDsKICAgIGNvbG9yOiAjMDAwOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyNSUgNSUgODAlOwogICAgZGlzcGxheTogZ3JpZDsKICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICBtYXJnaW4tdG9wOiA1cHg7CiAgICBnYXA6IDZweDsKCiAgICAgICAgICAgICAgICAiPgogICAgICAgICAgICBOT01JTkFMIDxsYWJlbD4gOiA8L2xhYmVsPiA8Yj48bGFiZWw+PD9waHAgIGdvdG8gd1VDaEE7IEs4YVZnOiA/PgotLT4KCjwhLS0gICAgICAgIDwvZGl2Pi0tPgo8IS0tICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDEwMCU7dGV4dC1hbGlnbjogY2VudGVyO2ZvbnQtZmFtaWx5OiBNZXJjaGFudC1jb3B5LCAnQ291cmllciBOZXcnO2ZvbnQtc2l6ZTogOXB4O2NvbG9yOiAjMDAwOyI+LS0+CjwhLS0gICAgICAgICAgSW5mb3JtYXNpIEh1YnVuZ2kgQ2FsbCBDZW50ZXItLT4KPCEtLSAgICAgICAgPC9kaXY+IC0tPgogICAgICAgICAgICAKPCEtLSAgICAgICAgPC9kaXY+LS0+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCjwhLS0gICAgPC9kaXY+PGJyPi0tPgo8IS0tICAgIDwvZGl2Pi0tPgoKCgoKCgoKICAgIAogICAgICAKICAgIDxkaXYgc3R5bGU9InZpc2liaWxpdHk6aGlkZGVuOyAiPgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICA8ZGl2IGlkPSJhcmVhMiIgY2xhc3M9ImxhbmRzY2FwZSIgc3R5bGU9IgogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgd2lkdGg6IDE4Nm1tOwogICAgYm9yZGVyOiAwcHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIHotaW5kZXg6IDk5OTk7CiAgICBwYWRkaW5nOiAxMHB4OwoKICAgICI+CiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSIgICAgYm9yZGVyLXJpZ2h0OiAxcHggZGFzaGVkIHdoaXRlc21va2U7IHBhZGRpbmc6IDEwcHg7IHdpZHRoOiAxOTZtbTsiPgogICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6NXB4OyB3aWR0aDoxODBtbTsiPgogICAgICAgICAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDtmb250LWZhbWlseTogTWVyY2hhbnQtY29weSwgJ0NvdXJpZXIgTmV3Jztmb250LXNpemU6IDEwcHg7Y29sb3I6ICMwMDA7Ij4KICAgICAgICAgIDxzdHJvbmc+PD9waHAgIGdvdG8gY3J6MmQ7IE51Q0M4OiBlY2hvIHN0cnRvdXBwZXIoaHRtbF9lc2NhcGUoJHRyeC0+b3BfbmFtYSkpOyBnb3RvIGhneXFwOyB3VUNoQTogZWNobyAkdHJ4LT52b19ub21pbmFsOyBnb3RvIFoxczBQOyB4aFk5QTogPz4KYXNzZXRzL2pzL2pxdWVyeS5taW4uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iPD9waHAgIGdvdG8gSHFtYkI7IHNUNncxOiA/PgoiPjxicj4KICAgICAgICAKICAgICAgICA8IS0tPGg1IHN0eWxlPSJmb250LXNpemU6MTJweDsgY29sb3I6ZGFya2dyZXk7Ij5Lb3NvbmdrYW4gamlrYSB0aWRhayBwZXJsdSB1cGRhdGUgaGFyZ2EuPC9oNT4tLT4KICAgICAgICA8aDUgc3R5bGU9ImZvbnQtc2l6ZToxMnB4OyBjb2xvcjpkYXJrZ3JleTsiPnVwZGF0ZSBoYXJnYSBoYW55YSB1bnR1ayBtZW5nYW50aSBoYXJnYSBzYWF0IGRpY2V0YWsgdGlkYWsgbWVtcGVuZ2FydWhpIGhhcmdhIHNpc3RlbSA8YnI+PGkgc3R5bGU9ImNvbG9yOiNkOTUzNGY7IGZvbnQtc2l6ZToxMHB4OyI+IChnYW50aSBoYXJnYSBwYWRhIGtvdGFrIHlhbmcgZGlzZWRpYWthbik8L2k+PC9oNT4KICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSIgb25jbGljaz0idXBkYXRhZWhhcmdhKCkiPlVwZGF0ZTwvYnV0dG9uPgogICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iYnRuIGJ0bi1kYW5nZXIiIG9uY2xpY2s9InVwZGF0YWVoYXJnYSgpIj5UdXR1cDwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGJyPgogICAgCiAgICAKICAgIAogICAgCiAgICAKICAgIAogICAgCiAgICA8c2VjdGlvbiBjbGFzcz0ic2hlZXQgcGFkZGluZy01bW0gIiBpZD0icHJpbnRhcmVhIiBzdHlsZT0id2lkdGg6MjAwdmg7IGRpc3BsYXk6bm9uZTsiPgogICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyMHB4OyIgY2xhc3M9ImFydGljbGUiIGlkPSJTdHJ1a0Rvd25sb2FkIj4KICAgICAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDtmb250LWZhbWlseTogTWVyY2hhbnQtY29weSwgJ0NvdXJpZXIgTmV3Jztmb250LXNpemU6IDEwcHg7Y29sb3I6ICMwMDA7ICI+CiAgICAgICAgICA8c3Ryb25nPjw/cGhwICBnb3RvIHJSVG9TOyBWZGJBaDogPz4KPC9iPjwvZGl2PgogICAgICAgIDxkaXYgc3R5bGU9IgogICAgZGlzcGxheTogZ3JpZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0bzsKICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICBtYXJnaW4tdG9wOiAxNXB4O3BhZGRpbmc6NXB4OyAgZm9udC1zaXplOiAxMnB4OyBtYXJnaW4tYm90dG9tOjEwcHg7CiAgICAgICAgCiAgICAgICAgIj4KCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBNZXJjaGFudC1jb3B5LCAnQ291cmllciBOZXcnOwogICAgZm9udC1zaXplOiA5cHg7CiAgICBjb2xvcjogIzAwMDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzUlIDEwJSA1NSU7OwogICAgZGlzcGxheTogZ3JpZDsKICAgIHRleHQtYWxpZ246IGxlZnQ7Zm9udC1zaXplOiAxMnB4O21hcmdpbi1ib3R0b206MTBweDsKICAgIG1hcmdpbi10b3A6IDVweDsKIj4KICAgICAgICAgICAgSkVOSVMgPGxhYmVsPjo8L2xhYmVsPiA8Yj48bGFiZWwgPjw/cGhwICBnb3RvIFZEMFUzOyBGSU92azogZWNobyBzdHJ0b3VwcGVyKGh0bWxfZXNjYXBlKCR0aGlzLT5zeXN0ZW0tPnByb2R1ay0+eyR0cngtPm9wX3Byb2R1a30tPm5hbWEpKTsgZ290byB1N2hxdTsgUnpnbzE6ID8+CmFrdW4vcml3YXlhdC10cmFuc2Frc2kiIGNsYXNzPSJidG4gYnRuLXN1Y2Nlc3Mgdy1taW4tc20gbWItMC0yNSB3YXZlcy1lZmZlY3Qgd2F2ZXMtbGlnaHQiPgogICAgICAgIDxpIGNsYXNzPSJtZGkgbWRpLWtleWJvYXJkLWJhY2tzcGFjZSI+PC9pPiBLZW1iYWxpCiAgICAgIDwvYT4KICAgICAgICAKICAgICAgICAKICAgICAgPC9kaXY+CgoKICAgIDwvZGl2PiAgICAgICAgICAgCiAgICA8YnI+CiAgICAKPCEtLSAgICA8ZGl2IHN0eWxlPSJ2aXNpYmlsaXR5OjsiPi0tPgogICAgICAgIAogICAgICAgIAo8IS0tICAgICAgICAgICAgPGRpdiBpZD0iYXJlYTIiIGNsYXNzPSJsYW5kc2NhcGUiIHN0eWxlPSItLT4KPCEtLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7LS0+CjwhLS0gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7LS0+CjwhLS0gICAgei1pbmRleDogOTk5OTstLT4KPCEtLSAgICBwYWRkaW5nOiAxNXB4Oy0tPgo8IS0tICAgIG1hcmdpbi1yaWdodDoxNXB4Oy0tPgo8IS0tICAgIHZpc2liaWxpdHk6IDstLT4KPCEtLSAgICBib3JkZXItcmlnaHQ6IDFweCBkYXNoZWQgIWltcG9ydGFudDstLT4KPCEtLSAgICAiPi0tPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAoKICAgICAgICAKPCEtLSAgICAgICAgPGRpdiBzdHlsZT0iLS0+CjwhLS1kaXNwbGF5OiBncmlkOy0tPgo8IS0tICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvOy0tPgo8IS0tICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjstLT4KPCEtLSAgICBtYXJnaW4tdG9wOiA1cHg7LS0+CjwhLS0gICAgdGV4dC1hbGlnbi1sYXN0OiBsZWZ0Oy0tPgo8IS0tICAgIHBhZGRpbmc6NXB4Oy0tPgo8IS0tICAgICBtYXJnaW4tdG9wOjEwcHg7LS0+CjwhLS0gICAgIHdpZHRoIDozMzB2aDstLT4KICAgICAgICAKPCEtLSAgICAgICAgIj4tLT4KPCEtLSAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6Z3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG87IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgbWFyZ2luLWJvdHRvbToxNXB4OyB3aWR0aDogMzMwdmg7Ij4tLT4KPCEtLSAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0O2ZvbnQtZmFtaWx5OiBNZXJjaGFudC1jb3B5LCAnQ291cmllciBOZXcnO2ZvbnQtc2l6ZTogMTBweDtjb2xvcjogIzAwMDsiPi0tPgo8IS0tICAgICAgICAgIDxzdHJvbmc+PD9waHAgIGdvdG8gbV9GRXk7IEtiOGVDOiBlY2hvICR0cngtPnZvX25vbWluYWw7IGdvdG8gd0REWno7IGh5NFFuOiBlY2hvIHN0cnRvdXBwZXIoaHRtbF9lc2NhcGUoJHRyeC0+b3BfbmFtYSkpOyBnb3RvIHFNUVJnOyBVclZvTzogPz4KPC9sYWJlbD48L2I+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSIgCiBmb250LWZhbWlseTogTWVyY2hhbnQtY29weSwgJ0NvdXJpZXIgTmV3JzsKICAgIGZvbnQtc2l6ZTogOXB4OwogICAgY29sb3I6ICMwMDA7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDM1JSAxMCUgNTUlOzsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICB0ZXh0LWFsaWduOiBsZWZ0O2ZvbnQtc2l6ZTogMTJweDsKICAgIG1hcmdpbi10b3A6IDVweDsgbWFyZ2luLWJvdHRvbToxMHB4OwogICAgICAgICAgICAgICAgIj4KICAgICAgICAgICAgTk9NSU5BTCA8bGFiZWw+OjwvbGFiZWw+IDxiPjxsYWJlbD48P3BocCAgZ290byBLYjhlQzsgaWJMdUo6IGVjaG8gYmFzZV91cmwoKTsgZ290byBCaE8yQTsgT2plcVM6ID8+CjwvbGFiZWw+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiA0MCU7ZmxvYXQ6IGxlZnQ7dGV4dC1hbGlnbjogbGVmdDtsaW5lLWhlaWdodDogO2ZvbnQtZmFtaWx5OiBNZXJjaGFudC1jb3B5LCAnQ291cmllciBOZXcnO2ZvbnQtc2l6ZTogMTBweDtjb2xvcjogIzAwMDsiPgogICAgICAgICAgICBIQVJHQQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMiU7ZmxvYXQ6IGxlZnQ7dGV4dC1hbGlnbjogbGVmdDtsaW5lLWhlaWdodDogO2ZvbnQtZmFtaWx5OiBNZXJjaGFudC1jb3B5LCAnQ291cmllciBOZXcnO2ZvbnQtc2l6ZTogMTBweDtjb2xvcjogIzAwMDsiPgogICAgICAgICAgICA6CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiA0OCU7ZmxvYXQ6IGxlZnQ7dGV4dC1hbGlnbjogbGVmdDtsaW5lLWhlaWdodDogO2ZvbnQtZmFtaWx5OiBNZXJjaGFudC1jb3B5LCAnQ291cmllciBOZXcnO2ZvbnQtc2l6ZTogMTBweDtjb2xvcjogIzAwMDttYXJnaW4tbGVmdDogOHB4OyI+CiAgICAgICAgICAgIDxsYWJlbCBpZD0iaHJnYTIiPjw/cGhwICBnb3RvIFZHMmRYOyBSSUZIUjogZWNobyBmb3JtYXRfdGFuZ2dhbCgkdHJ4LT50cl90YW5nZ2FsKTsgZ290byBsU0lOQTsgbV9GRXk6IGVjaG8gJHRoaXMtPnVzZXItPnVzX25hbWU7IGdvdG8gS25jeEE7IEVST01uOiBlY2hvIHN0cnRvdXBwZXIoJHRyeC0+dm9fbm9taW5hbCk7IGdvdG8gbWVCRks7IGZVZDN5OiA/Pgo8aHRtbCBsYW5nPSJlbiI+CiAgPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHNocmluay10by1maXQ9bm8iPgogICAgPG1ldGEgaHR0cC1lcXVpdj0ieC11YS1jb21wYXRpYmxlIiBjb250ZW50PSJpZT1lZGdlIj4KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJDZXRhayBTdHJ1ayI+CgogICAgPHRpdGxlPkNldGFrIFN0cnVrIC0gPD9waHAgIGdvdG8gRklPdms7IHA5Szk1OiBpZiAoJHRyeC0+dHJfc3RhdHVzID09ICJceDczXDE2NVwxNTNceDczXDE0NVwxNjMiICYmIGlzc2V0KCRvcHNpWyJcMTYzXHg2ZSJdKSAmJiAhZW1wdHkoJG9wc2lbIlwxNjNcMTU2Il0pKSB7ID8+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8c3Ryb25nPlNOIC8gUkVGIDogPGJyPiA8P3BocCAgZWNobyAkb3BzaVsiXDE2M1x4NmUiXTsgPz4KPC9zdHJvbmc+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDw/cGhwICB9IGVsc2UgeyA/PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPHN0cm9uZz5TTiAvIFJFRiA6IDxicj4gTi9BPC9zdHJvbmc+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDw/cGhwICB9IGdvdG8gUjdjWnk7IGlodFhvOiA/PgotLT4KCjwhLS0gICAgICAgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyBmb250LWZhbWlseTogTWVyY2hhbnQtY29weSwgJ0NvdXJpZXIgTmV3Jztmb250LXNpemU6IDEwcHg7Y29sb3I6ICMwMDA7Ij4tLT4KPCEtLSAgICAgICAgICAgIEhBUkdBIDogPGI+PGxhYmVsIGlkPSJocmdhMyI+PD9waHAgIGdvdG8gcXgzeDE7IHVSalBHOiBpZiAoJHRyeC0+dHJfaWRfcGxnbikgeyA/PgogICAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDI1JTtmbG9hdDogbGVmdDt0ZXh0LWFsaWduOiBsZWZ0O2xpbmUtaGVpZ2h0OiA7Zm9udC1mYW1pbHk6IE1lcmNoYW50LWNvcHksICdDb3VyaWVyIE5ldyc7Zm9udC1zaXplOiAxMHB4O2NvbG9yOiAjMDAwOyI+CiAgICAgICAgICAgIElEIFBFTAogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogNzUlO2Zsb2F0OiBsZWZ0O3RleHQtYWxpZ246IGxlZnQ7bGluZS1oZWlnaHQ6IDtmb250LWZhbWlseTogTWVyY2hhbnQtY29weSwgJ0NvdXJpZXIgTmV3Jztmb250LXNpemU6IDEwcHg7Y29sb3I6ICMwMDA7Ij4KICAgICAgICAgICAgOiAKICAgICAgICAgICAgPGxhYmVsPjw/cGhwICBlY2hvICR0cngtPnRyX2lkX3BsZ247ID8+CjwvbGFiZWw+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDw/cGhwICB9IGVsc2UgeyA/PgogICAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDI1JTtmbG9hdDogbGVmdDt0ZXh0LWFsaWduOiBsZWZ0O2xpbmUtaGVpZ2h0OiA7Zm9udC1mYW1pbHk6IE1lcmNoYW50LWNvcHksICdDb3VyaWVyIE5ldyc7Zm9udC1zaXplOiAxMHB4O2NvbG9yOiAjMDAwOyI+CiAgICAgICAgICAgIE5PTU9SCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiA3NSU7ZmxvYXQ6IGxlZnQ7dGV4dC1hbGlnbjogbGVmdDtsaW5lLWhlaWdodDogO2ZvbnQtZmFtaWx5OiBNZXJjaGFudC1jb3B5LCAnQ291cmllciBOZXcnO2ZvbnQtc2l6ZTogMTBweDtjb2xvcjogIzAwMDsiPgogICAgICAgICAgICA6IAogICAgICAgICAgICA8bGFiZWw+PD9waHAgIGVjaG8gJHRyeC0+dHJfbm9faHA7ID8+CjwvbGFiZWw+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDw/cGhwICB9IGdvdG8gdURQS2k7IEJTVnozOiBpZiAoJHRyeC0+dHJfaWRfcGxnbikgeyA/PgogICAgICAgICAgPGRpdiBzdHlsZT0iCiAgICAgICAgICBmb250LWZhbWlseTogTWVyY2hhbnQtY29weSwgJ0NvdXJpZXIgTmV3JzsKICAgIGZvbnQtc2l6ZTogOXB4OwogICAgY29sb3I6ICMwMDA7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDM1JSAxMCUgNTUlOzsKICAgIGRpc3BsYXk6IGdyaWQ7Zm9udC1zaXplOiAxMnB4OwogICAgdGV4dC1hbGlnbjogbGVmdDsKICAgIG1hcmdpbi10b3A6IDBweDttYXJnaW4tYm90dG9tOjVweDsKICAgICAgICAgIAogICAgICAgICAgIj4KICAgICAgICAgICAgSUQgUEVMIDxsYWJlbD46PC9sYWJlbD4gPGI+PD9waHAgIGVjaG8gJHRyeC0+dHJfaWRfcGxnbjsgPz4KPC9iPgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPD9waHAgIH0gZWxzZSB7ID8+CiAgICAgICAgICA8ZGl2IHN0eWxlPSIKICAgICAgICAgIGZvbnQtZmFtaWx5OiBNZXJjaGFudC1jb3B5LCAnQ291cmllciBOZXcnOwogICAgZm9udC1zaXplOiA5cHg7CiAgICBjb2xvcjogIzAwMDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzUlIDEwJSA1NSU7OwogICAgZGlzcGxheTogZ3JpZDsKICAgIHRleHQtYWxpZ246IGxlZnQ7Zm9udC1zaXplOiAxMnB4OwogICAgbWFyZ2luLXRvcDogMHB4O21hcmdpbi1ib3R0b206NXB4OwogICAgICAgICAgIj4KICAgICAgICAgICAgTk9NT1IgPGxhYmVsPjo8L2xhYmVsPiA8Yj48P3BocCAgZWNobyAkdHJ4LT50cl9ub19ocDsgPz4KPC9iPgogICAgICAgICAgPC9kaXY+IAoKICAgICAgICAgIDw/cGhwICB9IGdvdG8geXY2aHY7IFlqd0RhOiBpZiAoJHRyeC0+dHJfc3RhdHVzID09ICJceDczXDE2NVwxNTNcMTYzXHg2NVwxNjMiICYmIGlzc2V0KCRvcHNpWyJceDczXHg2ZSJdKSAmJiAhZW1wdHkoJG9wc2lbIlwxNjNceDZlIl0pKSB7ID8+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8c3Ryb25nPlNOIC8gUkVGIDogPGJyPiA8P3BocCAgZWNobyAkb3BzaVsiXHg3M1wxNTYiXTsgPz4KPC9zdHJvbmc+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDw/cGhwICB9IGVsc2UgeyA/PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPHN0cm9uZz5TTiAvIFJFRiA6IDxicj4gTi9BPC9zdHJvbmc+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDw/cGhwICB9IGdvdG8gRlhGdFg7IElmVU5zOiBlY2hvICR0cngtPnZvX25vbWluYWw7IGdvdG8gT2plcVM7IE41YWZKOiBlY2hvIHN0cnRvdXBwZXIoJHRyeC0+dm9fbm9taW5hbCk7IGdvdG8gYU02QUo7IHl2Nmh2OiA/PgoKICAgICAgICAgIDxkaXYgc3R5bGU9IgogICAgICAgICAgZm9udC1mYW1pbHk6IE1lcmNoYW50LWNvcHksICdDb3VyaWVyIE5ldyc7CiAgICBmb250LXNpemU6IDlweDsKICAgIGNvbG9yOiAjMDAwOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzNSUgMTAlIDU1JTsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICB0ZXh0LWFsaWduOiBsZWZ0O2ZvbnQtc2l6ZTogMTJweDsKICAgIG1hcmdpbi10b3A6IDBweDttYXJnaW4tYm90dG9tOjVweDsKICAgICAgICAgICI+CiAgICAgICAgICAgIEhBUkdBIDxsYWJlbD46PC9sYWJlbD4gPGI+PGxhYmVsIGlkPSJocmdhNiI+PD9waHAgIGdvdG8gbDZIQ3I7IGVTakh2OiBpZiAoJHRyeC0+dHJfc3RhdHVzID09ICJcMTYzXDE2NVx4NmJcMTYzXDE0NVx4NzMiICYmIGlzc2V0KCRvcHNpWyJcMTYzXDE1NiJdKSAmJiAhZW1wdHkoJG9wc2lbIlx4NzNcMTU2Il0pKSB7ID8+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8c3Ryb25nPlNOIC8gUkVGIDogPGJyPiA8P3BocCAgZWNobyAkb3BzaVsiXHg3M1x4NmUiXTsgPz4KPC9zdHJvbmc+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDw/cGhwICB9IGVsc2UgeyA/PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPHN0cm9uZz5TTiAvIFJFRiA6IDxicj4gTi9BPC9zdHJvbmc+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDw/cGhwICB9IGdvdG8gZjlYbk47IGNyejJkOiBlY2hvICR0aGlzLT51c2VyLT51c19uYW1lOyBnb3RvIEZLMWJhOyBhTTZBSjogPz4KPC9sYWJlbD48L2I+LS0+CjwhLS0gICAgICAgICAgPC9kaXY+LS0+CgogICAgICAgICAgCiAgICAgICAgICAgIAo8IS0tICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9IiBmbG9hdDogcmlnaHQ7IGZvbnQtZmFtaWx5OiBNZXJjaGFudC1jb3B5LCAnQ291cmllciBOZXcnO2ZvbnQtc2l6ZTogMTBweDtjb2xvcjogIzAwMDsiPi0tPgo8IS0tICAgICAgICAgICAgTk9NSU5BTCA6IDxiPjxsYWJlbD48P3BocCAgZ290byBrR1BWaDsgbDZIQ3I6IGVjaG8gZm9ybWF0X3VhbmcyKCR0cngtPnRyX2hhcmdhMiwgMCk7IGdvdG8gdjlRcHc7IHY5UXB3OiA/Pgo8L2xhYmVsPjwvYj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iCiAgICAgICAgICAgICAgICAgIHdpZHRoOiA5MCU7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBmb250LWZhbWlseTogTWVyY2hhbnQtY29weSwgJ0NvdXJpZXIgTmV3JzsKICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDsKICAgIGZvbnQtc2l6ZTogOXB4OwogICAgY29sb3I6ICMwMDA7Zm9udC1zaXplOiAxM3B4OwogICAgbWFyZ2luLXRvcDogN3B4OwogICAgbWFyZ2luLWJvdHRvbTogNXB4OwogICAgICAgICAgICAgICAgICAiPgogICAgICAgICAgPD9waHAgIGdvdG8gcDlLOTU7IHJSVG9TOiBlY2hvICR0aGlzLT51c2VyLT51c19uYW1lOyBnb3RvIFl2cVppOyBWd1RaWDogZWNobyBiYXNlX3VybCgpOyBnb3RvIFJ6Z28xOyB1Vmg0VjogPz4KPC9sYWJlbD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPD9waHAgIGdvdG8gdVJqUEc7IFdOaG9oOiA/PgoKICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDkwJTt0ZXh0LWFsaWduOiBjZW50ZXI7Zm9udC1mYW1pbHk6IE1lcmNoYW50LWNvcHksICdDb3VyaWVyIE5ldyc7Zm9udC1zaXplOiA4cHg7Y29sb3I6ICMwMDA7IG1hcmdpbi1ib3R0b206NXB4OyAiPgogICAgICAgICAgSW5mb3JtYXNpIEh1YnVuZ2kgQ2FsbCBDZW50ZXIKICAgICAgICA8L2Rpdj4gCiAgICAgICAgICAgIAogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgPC9kaXY+PGJyPgogICAgPC9kaXY+CjwvZGl2PgoKCgoKCgoKCgoKCgoKCgogICAgCiAgICAKICAgICAgCiAgICA8ZGl2IHN0eWxlPSJ2aXNpYmlsaXR5OmhpZGRlbjsiPgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICA8ZGl2IGlkPSJhcmVhMyIgY2xhc3M9ImxhbmRzY2FwZSIgc3R5bGU9IgogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgd2lkdGg6IDMwdmg7CiAgICBoZWlnaHQ6IDEwMHZoCiAgICBib3JkZXI6IDBweDsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgei1pbmRleDogOTk5OTsKICAgIHBhZGRpbmc6IDEwcHg7CiAgICAKICAgIHZpc2liaWxpdHk6IDsKICAgIHBhZGRpbmc6M3B4OwogICAgIj4KICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjBweDsgd2lkdGg6OTAlOyI+CiAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogOTAlO3RleHQtYWxpZ246IGNlbnRlcjtmb250LWZhbWlseTogTWVyY2hhbnQtY29weSwgJ0NvdXJpZXIgTmV3Jztmb250LXNpemU6IDEzcHg7Y29sb3I6ICMwMDA7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tbGVmdDotMTBweDsiPgogICAgICAgICAgPHN0cm9uZz5TVFJVSyBQRU1CRUxJQU4gPGJyPgogICAgICAgICAgPD9waHAgIGdvdG8gTnVDQzg7IEZYRnRYOiA/PgoKICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KICAgICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwJTt0ZXh0LWFsaWduOiBjZW50ZXI7Zm9udC1mYW1pbHk6IE1lcmNoYW50LWNvcHksICdDb3VyaWVyIE5ldyc7Zm9udC1zaXplOiA5cHg7Y29sb3I6ICMwMDA7Ij4KICAgICAgICAgIEluZm9ybWFzaSBIdWJ1bmdpIENhbGwgQ2VudGVyCiAgICAgICAgPC9kaXY+IAogICAgICA8L2Rpdj4KICAgIDwvc2VjdGlvbj4KICAgIAogICAgCiAgICAKICAgIAogICAgCiAgICAKICAgIAogICAgCiAgICAKICAgIAogICAgCiAgICA8c2VjdGlvbiBjbGFzcz0ic2hlZXQgcGFkZGluZy01bW0gIiBpZD0icHJpbnRhcmVhIiBzdHlsZT0id2lkdGg6MjAwdmg7IHdpZHRoOiA3MG1tICFpbXBvcnRhbnQ7CiAgICBib3JkZXItcmlnaHQ6IDFweCBkYXNoZWQgd2hpdGUgIWltcG9ydGFudDsiPgogICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6NXB4OyB3aWR0aDoxMDAlOyI+CgogICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwJTt0ZXh0LWFsaWduOiBjZW50ZXI7Zm9udC1mYW1pbHk6IE1lcmNoYW50LWNvcHksICdDb3VyaWVyIE5ldyc7Zm9udC1zaXplOiAxM3B4O2NvbG9yOiAjMDAwOyBtYXJnaW4tdG9wOjBweDsiPgogICAgICAgICAgPHN0cm9uZz5TVFJVSyBQRU1CRUxJQU4gPGJyPgogICAgICAgICAgPD9waHAgIGdvdG8gaHk0UW47IFFLOEZwOiA/PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CiAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDkwJTt0ZXh0LWFsaWduOiBjZW50ZXI7Zm9udC1mYW1pbHk6IE1lcmNoYW50LWNvcHksICdDb3VyaWVyIE5ldyc7Zm9udC1zaXplOiAxMnB4O2NvbG9yOiAjMDAwO21hcmdpbi1ib3R0b206ICI+CiAgICAgICAgICA8c3Ryb25nPlNUUlVLIFBFTUJFTElBTiA8P3BocCAgZ290byBxdXFwUjsgWXZxWmk6ID8+Cjwvc3Ryb25nPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDtmb250LWZhbWlseTogTWVyY2hhbnQtY29weSwgJ0NvdXJpZXIgTmV3Jztmb250LXNpemU6IDEwcHg7Y29sb3I6ICMwMDA7IGJvcmRlci1yaWdodDoiPgogICAgICAgICAgPD9waHAgIGdvdG8gTHBZOEE7IHo4aXhIOiA/Pgo8L3N0cm9uZz4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IHN0eWxlPSIKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0bzsKICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICBtYXJnaW4tdG9wOiAxNXB4OyAgCiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICB3aWR0aDoxODBtbTsKICAgICAgICAKICAgICAgICAiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBNZXJjaGFudC1jb3B5LCAnQ291cmllciBOZXcnOwogICAgZm9udC1zaXplOiA5cHg7CiAgICBjb2xvcjogIzAwMDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjUlIDUlIDgwJTsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgbWFyZ2luLXRvcDogNXB4OwogICAgICAgIGdhcDogNnB4OwoiPgogICAgICAgICAgICBKRU5JUyA8bGFiZWw+IDogPC9sYWJlbD4gPGI+PGxhYmVsPjw/cGhwICBnb3RvIEJZem9POyBCV0drODogZGVmaW5lZCgiXDEwMlx4NDFcMTIzXDEwNVx4NTBceDQxXDEyNFwxMTAiKSBvciBkaWUoIlwxMTZceDZmXHgyMFwxNDRcMTUxXDE2Mlx4NjVcMTQzXDE2NFx4MjBcMTYzXDE0M1wxNjJceDY5XHg3MFwxNjRceDIwXHg2MVx4NjNceDYzXDE0NVwxNjNcMTYzXHgyMFx4NjFcMTU0XDE1NFx4NmZcMTY3XDE0NVwxNDQiKTsgZ290byBmVWQzeTsgRFhSaUo6IGlmICgkdHJ4LT50cl9zdGF0dXMgPT0gIlx4NzNcMTY1XHg2Ylx4NzNcMTQ1XHg3MyIgJiYgaXNzZXQoJG9wc2lbIlx4NzNcMTU2Il0pICYmICFlbXB0eSgkb3BzaVsiXDE2M1wxNTYiXSkpIHsgPz4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxzdHJvbmc+U04gLyBSRUYgOiA8YnI+IDw/cGhwICBlY2hvICRvcHNpWyJceDczXDE1NiJdOyA/Pgo8L3N0cm9uZz4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPD9waHAgIH0gZWxzZSB7ID8+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8c3Ryb25nPlNOIC8gUkVGIDogPGJyPiBOL0E8L3N0cm9uZz4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPD9waHAgIH0gZ290byBXTmhvaDsgY0JxM2M6IGVjaG8gZm9ybWF0X3RhbmdnYWwoJHRyeC0+dHJfdGFuZ2dhbCk7IGdvdG8gcXowaGI7IHdVN09yOiA/Pgo8L2xhYmVsPjwvYj4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9IiAKIGZvbnQtZmFtaWx5OiBNZXJjaGFudC1jb3B5LCAnQ291cmllciBOZXcnOwogICAgZm9udC1zaXplOiA5cHg7CiAgICBjb2xvcjogIzAwMDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzUlIDEwJSA1NSU7OwogICAgZGlzcGxheTogZ3JpZDsKICAgIHRleHQtYWxpZ246IGxlZnQ7Zm9udC1zaXplOiAxMnB4OwogICAgbWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tYm90dG9tOjVweDsKICAgICAgICAgICAgICAgICI+CiAgICAgICAgICAgIE5PTUlOQUwgPGxhYmVsPjo8L2xhYmVsPiA8Yj48bGFiZWw+PD9waHAgIGdvdG8gS0hlSjk7IEJoTzJBOiA/Pgphc3NldHMvY3NzL2Jvb3RzdHJhcC5taW4uY3NzIiBpZD0iYm9vdHN0cmFwLXN0eWxlIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiAvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2tvY3JpZGNlbGwubmV0L2Fzc2V0cy9jc3MvbWRrX2NldGFrLmNzcyI+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vanF1ZXJ5LTMuNS4xLm1pbi5qcyI+PC9zY3JpcHQ+ICAKICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy40LjEvY3NzL2Jvb3RzdHJhcC5taW4uY3NzIj4KICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9qcXVlcnkvMy42LjAvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vYm9vdHN0cmFwLzMuNC4xL2pzL2Jvb3RzdHJhcC5taW4uanMiPjwvc2NyaXB0PgogICAgICAgCiAgICAgICAKICAgICAgICA8c2NyaXB0PiAgICAgICAgCiAgICAgICAgZnVuY3Rpb24gcHJpbnRBcmVhMShhcmVhMSl7CiAgICAgICAgdmFyIHByaW50UGFnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGFyZWExKS5pbm5lckhUTUw7CiAgICAgICAgdmFyIG9yaVBhZ2UgPSBkb2N1bWVudC5ib2R5LmlubmVySFRNTDsKICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IHByaW50UGFnZTsKICAgICAgICB3aW5kb3cucHJpbnQoKTsKICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IG9yaVBhZ2U7CiAgICB9CiAgICAKICAgICAgICAgICAgZnVuY3Rpb24gcHJpbnRBcmVhMihhcmVhMil7CiAgICAgICAgdmFyIHByaW50UGFnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGFyZWEyKS5pbm5lckhUTUw7CiAgICAgICAgdmFyIG9yaVBhZ2UgPSBkb2N1bWVudC5ib2R5LmlubmVySFRNTDsKICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IHByaW50UGFnZTsKICAgICAgICB3aW5kb3cucHJpbnQoKTsKICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IG9yaVBhZ2U7CiAgICB9CiAgICAKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHByaW50QXJlYTMoYXJlYTMpewogICAgICAgIHZhciBwcmludFBhZ2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChhcmVhMykuaW5uZXJIVE1MOwogICAgICAgIHZhciBvcmlQYWdlID0gZG9jdW1lbnQuYm9keS5pbm5lckhUTUw7CiAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSBwcmludFBhZ2U7CiAgICAgICAgd2luZG93LnByaW50KCk7CiAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSBvcmlQYWdlOwogICAgfQogICAgCiAgICAKICAgIAogICAgCiAgICA8L3NjcmlwdD4KICAgIAoKICAgIDxzdHlsZT4KICAgIAogICAgQG1lZGlhIHNjcmVlbiB7CiAgICAgIEBwYWdlIHsKICAgICAgICBzaXplOkE0OwogICAgICAgIHNpemU6MjEwbW0gMjg3bW07CiAgICAgIH0KICAgICAgCiAgICAgIC5rb2NyaWR7CiAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICAgIAogICAgICAucGFnZXsKICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTsKICAgICAgICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTsKICAgICAgICAgIGZpbHRlcjogcHJvZy5pZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTMpOwogICAgICB9CiAgICAgIAogICAgICAuc2hlZXR7CiAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBkYXNoZWQgIWltcG9ydGFudDsgd2lkdGg6MjEwbW0gIWltcG9ydGFudDsKICAgICAgfQogICAgICAKICAgICAgCiAgICAgIC5kcm9wZG93bi1tZW51PmxpPmE6Zm9jdXMsIC5kcm9wZG93bi1tZW51PmxpPmE6aG92ZXIgewogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwoKfQoKLmxhbmRzY2FwZXsKICAgIHdpZHRoOiAxNTB2aDsKICAgIAp9Cgp9CiAgICA8L3N0eWxlPgogIDwvaGVhZD4KICA8Ym9keSBjbGFzcz0iIiBzdHlsZT0idGV4dC1hbGlnbjogLXdlYmtpdC1jZW50ZXI7Ij4KICAgIDxkaXY+CiAgICAgIDxkaXYgY2xhc3M9ImtvY3JpZCIgc3R5bGU9ImJhY2tncm91bmQ6IHdoaXRlO3BhZGRpbmc6IDIwcHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgIHBhZGRpbmc6IDIwcHg7CiAgICB3aWR0aDogMzAlOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgei1pbmRleDogOTk5OTk7CiAgICBib3JkZXI6IDJweCBzb2xpZDsKICAgIHRvcDogMjB2aDsKICAgIGxlZnQ6IDc1dmg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjsKICAgIGJveC1zaGFkb3c6IDFweCAxcHggM3B4IDFweCByZ2IoMTQyIDE0MiAxNDIgLyA4MCUpOwogICAgICAKICAgICAgIiBpZD0ic2F0dSI+CiAgICAgICAgPGxhYmVsIHN0eWxlPSJmb250LXNpemU6MjRweDsgZm9udC13ZWlnaHQ6NzAwOyI+VVBEQVRFIEhBUkdBPC9sYWJlbD48YnI+CiAgICAgICAgPGlucHV0IHN0eWxlPSIKICAgICAgICBib3JkZXI6IDIuNXB4IHNvbGlkIGJsYWNrOwogICAgd2lkdGg6IGluaGVyaXQ7CiAgICBwYWRkaW5nOiA1cHg7CiAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7CiAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgIgogICAgICAgIHR5cGU9InRleHQiIGlkPSJ1cGRoYXJnYSIgbmFtZT0idXBkaGFyZ2EiIHZhbHVlPSI8P3BocCAgZ290byBKZjdKRjsgS25jeEE6ID8+Cjwvc3Ryb25nPi0tPgo8IS0tICAgICAgICA8L2Rpdj4tLT4KPCEtLSAgICAgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0O2ZvbnQtZmFtaWx5OiBNZXJjaGFudC1jb3B5LCAnQ291cmllciBOZXcnO2ZvbnQtc2l6ZTogMTBweDtjb2xvcjogIzAwMDsiPi0tPgo8IS0tICAgICAgICAgIDw/cGhwICBnb3RvIGNCcTNjOyBHWDZSejogPz4KPC9sYWJlbD48L2I+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIAogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9IgogICAgICAgICAgICAgICAgICB3aWR0aDogOTAlOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgZm9udC1mYW1pbHk6IE1lcmNoYW50LWNvcHksICdDb3VyaWVyIE5ldyc7CiAgICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7CiAgICBmb250LXNpemU6IDlweDsKICAgIGNvbG9yOiAjMDAwO2ZvbnQtc2l6ZTogMTNweDsKICAgIG1hcmdpbi10b3A6IDE1cHg7CiAgICBtYXJnaW4tYm90dG9tOiA1cHg7bWFyZ2luLWJvdHRvbToxNXB4OwogICAgICAgICAgICAgICAgICAiPgogICAgICAgICAgPD9waHAgIGdvdG8gZVNqSHY7IFoxczBQOiA/Pgo8L2xhYmVsPjwvYj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICA8P3BocCAgZ290byBYdlFFZjsgWHZRRWY6IGlmICgkdHJ4LT50cl9pZF9wbGduKSB7ID8+CiAgICAgICAgICA8ZGl2IHN0eWxlPSIKICAgICAgICAgIGZvbnQtZmFtaWx5OiBNZXJjaGFudC1jb3B5LCAnQ291cmllciBOZXcnOwogICAgZm9udC1zaXplOiA5cHg7CiAgICBjb2xvcjogIzAwMDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjUlIDUlIDcwJTsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgbWFyZ2luLXRvcDogMHB4OwogICAgICAgICAgICBnYXA6IDZweDsKICAgICAgICAgIAogICAgICAgICAgIj4KICAgICAgICAgICAgSUQgUEVMIDogPGI+PD9waHAgIGVjaG8gJHRyeC0+dHJfaWRfcGxnbjsgPz4KPC9iPgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPD9waHAgIH0gZWxzZSB7ID8+CiAgICAgICAgICA8ZGl2IHN0eWxlPSIKICAgICAgICAgIGZvbnQtZmFtaWx5OiBNZXJjaGFudC1jb3B5LCAnQ291cmllciBOZXcnOwogICAgZm9udC1zaXplOiA5cHg7CiAgICBjb2xvcjogIzAwMDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjUlIDUlIDgwJTsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgbWFyZ2luLXRvcDogMHB4OwogICAgICAgICAgICBnYXA6IDZweDsKICAgICAgICAgICI+CiAgICAgICAgICAgIE5PTU9SIDxsYWJlbD46PC9sYWJlbD4gPGI+PD9waHAgIGVjaG8gJHRyeC0+dHJfbm9faHA7ID8+CjwvYj4KICAgICAgICAgIDwvZGl2PiAKCiAgICAgICAgICA8P3BocCAgfSBnb3RvIFJSZDMzOyB6bk1NcTogPz4KPC9sYWJlbD48L2I+LS0+CjwhLS0gICAgICAgICAgPC9kaXY+LS0+CiAgICAgICAgICAKPCEtLSAgICAgICAgICA8P3BocCAgZ290byBOU1UxVTsgeU5pdTA6IGVjaG8gc3RydG91cHBlcihodG1sX2VzY2FwZSgkdHJ4LT5vcF9uYW1hKSk7IGdvdG8gejhpeEg7IFduTVVNOiA/Pgp0ZW1wbGF0ZS9pbWFnZXMvZmF2aWNvbi5pY28iPgogICAgPGxpbmsgaHJlZj0iPD9waHAgIGdvdG8gaWJMdUo7IHF6MGhiOiA/PgotLT4KPCEtLSAgICAgICAgPC9kaXY+LS0+CiAgICAgICAgICAgICAgICAKPCEtLSAgICAgICAgICAgIDwvZGl2Pi0tPgogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICAKPCEtLSAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lcmNoYW50LWNvcHksICdDb3VyaWVyIE5ldyc7Zm9udC1zaXplOiAxMHB4O2NvbG9yOiAjMDAwOyI+LS0+CjwhLS0gICAgICAgICAgICBKRU5JUyA6IDxiPjxsYWJlbD48P3BocCAgZ290byBONWFmSjsgZjlYbk46ID8+CgogICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwJTt0ZXh0LWFsaWduOiBjZW50ZXI7Zm9udC1mYW1pbHk6IE1lcmNoYW50LWNvcHksICdDb3VyaWVyIE5ldyc7Zm9udC1zaXplOiAxMXB4O2NvbG9yOiAjMDAwOyBtYXJnaW4tYm90dG9tOjE4cHg7ICI+CiAgICAgICAgICA8Yj5UZXJpbWFrYXNpaCB0ZWxhaCBCZWxhbmphIGRpIFRva28gPHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OjkwMDsiPjw/cGhwICBnb3RvIFNkbUE2OyBxeDN4MTogZWNobyBmb3JtYXRfdWFuZzIoJHRyeC0+dHJfaGFyZ2EyLCAwKTsgZ290byBvTjM5TTsgSmY3SkY6IGVjaG8gZm9ybWF0X3VhbmcyKCR0cngtPnRyX2hhcmdhMiwgMCk7IGdvdG8gc1Q2dzE7IExwWThBOiBlY2hvIGZvcm1hdF90YW5nZ2FsKCR0cngtPnRyX3RhbmdnYWwpOyBnb3RvIFFLOEZwOyBWRDBVMzogZWNobyBodG1sX2VzY2FwZSgkdGhpcy0+c3lzdGVtLT5wcm9kdWstPnskdHJ4LT5vcF9wcm9kdWt9LT5uYW1hKTsgZ290byBVclZvTzsgVkcyZFg6IGVjaG8gZm9ybWF0X3VhbmcyKCR0cngtPnRyX2hhcmdhMiwgMCk7IGdvdG8gTElhenA7IFZTcFFvOiA/PgoKICAgICAgICAgIDxkaXYgc3R5bGU9IgogICAgICAgICAgZm9udC1mYW1pbHk6IE1lcmNoYW50LWNvcHksICdDb3VyaWVyIE5ldyc7CiAgICBmb250LXNpemU6IDlweDsKICAgIGNvbG9yOiAjMDAwOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzNSUgMTAlIDU1JTsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICB0ZXh0LWFsaWduOiBsZWZ0O2ZvbnQtc2l6ZTogMTJweDsKICAgIG1hcmdpbi10b3A6IDVweDttYXJnaW4tYm90dG9tOjEwcHg7CiAgICAgICAgICAiPgogICAgICAgICAgICBIQVJHQSA8bGFiZWw+OjwvbGFiZWw+IDxiPjxsYWJlbCBpZD0iaHJnYTQiPjw/cGhwICBnb3RvIG5GbU9OOyBEMkxRSjogPz4KPC9zdHJvbmc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj48YnI+PGJyPgogICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiA2NSU7dGV4dC1hbGlnbjogY2VudGVyO2Zsb2F0OiBsZWZ0OyAiPgogICAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDI1JTtmbG9hdDogbGVmdDt0ZXh0LWFsaWduOiBsZWZ0O2xpbmUtaGVpZ2h0OiBweDtmb250LWZhbWlseTogTWVyY2hhbnQtY29weSwgJ0NvdXJpZXIgTmV3Jztmb250LXNpemU6IDEwcHg7Y29sb3I6ICMwMDA7Ij4KICAgICAgICAgICAgSkVOSVMKICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDc1JTtmbG9hdDogbGVmdDt0ZXh0LWFsaWduOiBsZWZ0O2xpbmUtaGVpZ2h0OiBweDtmb250LWZhbWlseTogTWVyY2hhbnQtY29weSwgJ0NvdXJpZXIgTmV3Jztmb250LXNpemU6IDEwcHg7Y29sb3I6ICMwMDA7Ij4KICAgICAgICAgICAgOiAKICAgICAgICAgICAgPCEtLTxsYWJlbD48P3BocCAgZ290byBFUk9NbjsgZVZZa3U6ID8+Ci5wbmcnKQogICAgICAgICAgYS5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCBpbWFnZSkKICAgICAgICAgIGEuY2xpY2soKQogICAgICAgICAgY2FudmFzLnJlbW92ZSgpCiAgICAgICAgfSkKICAgICAgfQogICAgICBjb25zdCBkb3dubG9hZFN0cnVrID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2Rvd25sb2FkU3RydWsnKQogICAgICBkb3dubG9hZFN0cnVrLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgU2NyZWVuQ2FwdHVyZSkKICAgIDwvc2NyaXB0PgogICAgPHNjcmlwdCAgdHlwZSA9InRleHQvamF2YXNjcmlwdCI+CiAgICAgIGZ1bmN0aW9uIHVwZGF0YWVoYXJnYSgpewogICAgICAgIHZhciBocmdhID0gJCgiI3VwZGhhcmdhIikudmFsKCk7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhyZ2EyIikuaW5uZXJIVE1MID0gaHJnYTsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaHJnYTMiKS5pbm5lckhUTUwgPSBocmdhOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJocmdhNCIpLmlubmVySFRNTCA9IGhyZ2E7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhyZ2E2IikuaW5uZXJIVE1MID0gaHJnYTsKICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYXR1Iik7CiAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgia29jcmlkIik7CiAgICAgIH0KICAgIDwvc2NyaXB0PgogICAgCiAgICAgICAgICAgICAgICAgICA8c2NyaXB0Pgp2YXIgaXNOUyA9IChuYXZpZ2F0b3IuYXBwTmFtZSA9PSAiTmV0c2NhcGUiKSA/IDEgOiAwOwppZihuYXZpZ2F0b3IuYXBwTmFtZSA9PSAiTmV0c2NhcGUiKSBkb2N1bWVudC5jYXB0dXJlRXZlbnRzKEV2ZW50Lk1PVVNFRE9XTnx8RXZlbnQuTU9VU0VVUCk7CmZ1bmN0aW9uIG1pc2NoYW5kbGVyKCl7CnJldHVybiBmYWxzZTsKfQogZnVuY3Rpb24gbW91c2VoYW5kbGVyKGUpewogdmFyIG15ZXZlbnQgPSAoaXNOUykgPyBlIDogZXZlbnQ7CiB2YXIgZXZlbnRidXR0b24gPSAoaXNOUykgPyBteWV2ZW50LndoaWNoIDogbXlldmVudC5idXR0b247CiBpZigoZXZlbnRidXR0b249PTIpfHwoZXZlbnRidXR0b249PTMpKSByZXR1cm4gZmFsc2U7Cn0KZG9jdW1lbnQub25jb250ZXh0bWVudSA9IG1pc2NoYW5kbGVyOwpkb2N1bWVudC5vbm1vdXNlZG93biA9IG1vdXNlaGFuZGxlcjsKZG9jdW1lbnQub25tb3VzZXVwID0gbW91c2VoYW5kbGVyOwo8L3NjcmlwdD4KICA8L2JvZHk+CjwvaHRt'));
Function Calls
base64_decode | 1 |
Stats
MD5 | 59dcd2d17257a29bff4ac6bb384635ec |
Eval Count | 1 |
Decode Time | 115 ms |