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 $_F=__FILE__;$_C1353562110='Pz48P2pZagokamZDRV93TGIgPSBORTYgamZDRV9md3dFZWVfd0xiKCRv..
Decoded Output download
?><?php
$page_ctl = new page_access_ctl($db);
if ($page_ctl->hasPermission('456', $_SESSION[SESSION_VAR_NAME]['role'])) {
$Page = new page($db);
$userAccessRight = $Page->accesspermissions('456', $_SESSION[SESSION_VAR_NAME]['role']);
$no_userAccessRight = count($userAccessRight);
$access_type = array();
foreach ($userAccessRight as $p_ar) {
array_push($access_type, $p_ar['type']);
}
if (in_array('3', $access_type)) {
$ig_id = decrypt_url($_REQUEST['ig_id'], APP_ENCRYPTION_SALT);
$IndexMaster = new index_master($db);
$indexmaster_details = $IndexMaster->getIndexMaster_ById($ig_id);
$pid = decrypt_url($_REQUEST['pid'], APP_ENCRYPTION_SALT);
$id = decrypt_url($_REQUEST['id'], APP_ENCRYPTION_SALT);
$IndexMaster = new index_master($db);
$indexmasterf_details = $IndexMaster->getIndexField_ById($id);
$field_extend_details = $IndexMaster->getFieldExtend_ByFId($id);
$Project = new project($db);
$project_details = $Project->getProject_ById($pid);
//echo '*****************************************************************';
//print_r($field_extend_details);
?>
<script type="text/javascript" nonce=<?php echo $_SESSION[SESSION_VAR_NAME]['usernonce']; ?>>
/*====Select Box====*/
$(function () {
$(".chzn-select").chosen();
$(".chzn-select-deselect").chosen({
allow_single_deselect: true
});
jQuery.validator.addMethod("custom_validation", function (value, element)
{
return true;
}, "Please enter valid regular expression");
$(document).on('change', '#unique_f', function () {
var val = $(this).val();
var auto = $("#auto_inc").val();
$("input[name=required_f][value=0]").prop('disabled', false);
//alert("auto"+auto);
if (val == 1) {
$("input[name=required_f][value=1]").prop('checked', true);
$("input[name=redundant][value=0]").prop('checked', true);
$("input[name=status][value=1]").prop('checked', true);
$("input[name=auto_inc][value=0]").prop('checked', true);
$("input[name=redundant]").prop('disabled', true);
$('#auto_inc_name').val('');
$('#auto_inc_name').prop('type', 'hidden');
} else {
$("input[name=required_f][value=1]").prop('checked', true);
if (auto == 1) {
$("input[name=redundant]").prop('disabled', false);
}
}
});
$(document).on('change', '#required_f', function () {
var val = $(this).val();
if (val == 1) {
$("input[name=auto_inc][value=0]").prop('checked', true);
$('#auto_inc_name').val('');
$('#auto_inc_name').prop('type', 'hidden');
$("input[name=status][value=1]").prop('checked', true);
$("input[name=redundant]").prop('disabled', false);
} else {
$("input[name=unique_f][value=0]").prop('checked', true);
//$("input[name=required_f][value=0]").prop('checked', true);
$("input[name=redundant]").prop('disabled', false);
}
});
$(document).on('change', '#redundant', function () {
if ($(this).is(':checked')) {
$("input[name=redundant][value=1]").prop('checked', true);
// $("input[name=required_f][value=1]").prop('checked', true);
$("input[name=status][value=1]").prop('checked', true);
$("input[name=auto_inc][value=0]").prop('checked', true);
//$("input[name=required_f][value=0]").prop('disabled', false);
$('#auto_inc_name').val('');
$('#auto_inc_name').prop('type', 'hidden');
} else {
// $("input[name=redundant]").prop('checked', true)
// $("input[name=required_f][value=1]").prop('checked', true);
// $("input[name=required_f][value=0]").prop('disabled', true);
}
this.value = this.checked ? 1 : 0;
});
});
$(function () {
$('#extras tr td .minicolors').minicolors();
// validate signup form on keyup and submit
$('#txt_custom_validation').change(function () {
var val = $(this).val();
var val1 = val.replace("/^", "^");
var val2 = val1.replace("$/i", "$");
var val3 = val2.replace("$/", "$");
if (val3 != '')
{
jQuery.validator.addMethod("custom_validation", function (value, element)
{
if ($("#txt_test_custom_validation").val() != '') {
var regEx = new RegExp(val3);
return this.optional(element) || regEx.test(value);
} else {
return false;
}
}, "Please enter valid regular expression");
}
}).trigger('change');
jQuery.validator.addMethod("auto_inc_name_valid", function (value, element)
{
value = value.trim();
if (value == '') {
return false;
}
return this.optional(element) || /^[a-z]+$/i.test(value);
}, "Please enter prefix value");
$(document).on("click", '#imf_edit', function (e) {
event.preventDefault();
if ($("#EditForm").valid()) {
$("#EditForm").jCryption({formFieldsValid: true});
$("#EditForm").data('jCryption').doEncryption();
}
});
$("#EditForm").validate({
ignore: ":hidden:not(select)",
rules: {
field_name: "required",
field_type: "required",
auto_inc_name: "required",
// txt_test_custom_validation: {
// custom_validation: true
// }
auto_inc_name:{
auto_inc_name_valid: true,
},
},
messages: {
field_name: "Please enter Field Name",
field_type: "Please Select Field Type",
auto_inc_name: "Please enter prefix"
},
submitHandler: function (form) {
$("#txt_custom_validation").trigger('change');
basic_form_submit_msg('index_master/imasterf_edit.php', '', 'EditForm');
}
});
});
$(function () {
var container = $('div.error-container ');
// validate the form when it is submitted
var validator = $("#form2").validate({
errorContainer: container,
errorLabelContainer: $("ol", container),
wrapper: 'li',
meta: "validate"
});
$(".cancel").click(function () {
validator.resetForm();
});
$(document).on('change', '#auto_inc', function () {
var auto_inc = $("input[name='auto_inc']:checked").val();
var unique = $("#unique_f").val();
var field_type = $('.chk-field_valid').val();
//alert("unique"+unique);
if (auto_inc == 1) {
// if (field_type != '' && field_type == "Alpha/Numeric") {
var sel_ = "Alpha/Numeric";
$('.chk-field_valid').val(sel_).change().trigger('liszt:updated');
$('#auto_inc_name').val('');
$('#auto_inc_name').prop('type', 'text');
$("input[name=status][value=1]").prop('checked', true);
$("input[name=required_f][value=0]").prop('checked', true);
$("input[name=unique_f][value=0]").prop('checked', true);
$("input[name=redundant][value=0]").prop('checked', true);
$("input[name=redundant]").prop('disabled', true);
// $("input[name=required_f][value=0]").prop('disabled', false);
// } else {
// $("input[name=auto_inc][value=0]").prop('checked', true);
// $('#auto_inc_name').prop('type', 'hidden');
// $('#auto_inc_name').val('');
// $("input[name=status][value=0]").prop('checked', true);
// bootbox.alert("Please select field type as Alpha/Numeric.");
// }
} else {
$('#auto_inc_name').prop('type', 'hidden');
$('#auto_inc_name').val('');
$("input[name=status][value=0]").prop('checked', true);
if (unique == 1) {
$("input[name=redundant]").prop('disabled', false);
}
}
});
$(document).ready(function () {
var auto_inc = $("input[name='auto_inc']:checked").val();
var unique = $("input[name='unique_f']:checked").val();
var redundant = $("input[name='redundant']:checked").val();
if (auto_inc == 1) {
var result = "<?php echo trim($indexmasterf_details[0]['auto_inc_name']) ?>";
$('#auto_inc_name').prop('type', 'text');
$('#auto_inc_name').val(result);
}
if (unique == 1 || auto_inc == 1) {
$("input[name=redundant]").prop('disabled', true);
}
// if (!(unique == 1 || auto_inc == 1) && redundant != 1) {
// $("input[name=required_f][value=0]").prop('disabled', true);
// }
});
$(document).on('click', '#status', function () {
var status = $("input[name='status']:checked").val();
var auto_inc = $("input[name='auto_inc']:checked").val();
var unique_f = $("input[name='unique_f']:checked").val();
var required_f = $("input[name='required_f']:checked").val();
if (status == 0 && (auto_inc == 1 || unique_f == 1 || required_f == 1)) {
$("input[name=status][value=1]").prop('checked', true);
}
});
$(document).on('click', '.pagetag', function () {
if ($('.pagetag').is(':checked')) {
var cfrm = bootbox.confirm("Are you sure? As if this field is marked as checked, it will remove any other page tag field in this Index Master if its already been marked.", function (result) {
if (result) {
} else
{
$('#pagetag').prop('checked', false);
}
});
}
});
var field = "<?php echo $indexmasterf_details[0]['field_type']; ?>";
if (field == 'Date Range' || field == 'Checkbox Group' || field == 'Radio Group' || field == 'Select Menu' || field == 'Multi Select Menu')
{
$('#divValid').hide();
$('#extras').show();
$('#div1').show();
//$('#pagetagging').show();
} else
{
$('#extras').hide();
$('#div1').hide();
if (field == 'Date') {//|| field == 'Email'
$('#divValid').hide();
} else {
$('#divValid').show();
}
//$('#pagetagging').hide();
}
$('#divValid').hide();
});
$(document).on('click', '.btn-history', function () {
history.back(1);
});
$(document).on('change', '.chk-field', function () {
var val = $(this).val();
var auto_inc = $("input[name='auto_inc']:checked").val();
var unique = $("input[name='unique_f']:checked").val();
var redundant = $("input[name='redundant']:checked").val()
if (val != 'Alpha/Numeric') {
$("input[name=auto_inc][value=0]").prop('checked', true);
$('#auto_inc_name').val('');
$('#auto_inc_name').prop('type', 'hidden');
auto_inc = $("input[name='auto_inc']:checked").val();
unique = $("input[name='unique_f']:checked").val();
redundant = $("input[name='redundant']:checked").val();
}
if (val == 'Date Range' || val == 'Checkbox Group' || val == 'Radio Group' || val == 'Select Menu' || val == 'Multi Select Menu')
{
//$('#pagetagging').show();
$('#div1').show();
$('#extras').show();
$('#pagetagging').show();
if (auto_inc != 1 && unique != 1) {
$("input[name=redundant]").prop('disabled', false);
}
// if ((auto_inc != 1 && unique != 1) && redundant != 1) {
// $("input[name=required_f][value=1]").prop('checked', true);
// $("input[name=required_f][value=0]").prop('disabled', true);
// }
} else
{
$('#div1').hide();
$('#extras').hide();
$('#pagetagging').hide();
if ($('.chk-field_valid').val() == 'Select Menu') {
$('#div1').show();
$('#extras').show();
}
if (auto_inc != 1 && unique != 1) {
$("input[name=redundant]").prop('disabled', false);
}
if ((auto_inc != 1 && unique != 1) && redundant != 1) {
$("input[name=required_f][value=1]").prop('checked', true);
// $("input[name=required_f][value=0]").prop('disabled', true);
}
//$('#pagetagging').hide();
}
});
// $(document).on('change', '.chk-field', function () {
// var val = $(this).val();
//
// if (val != 'Alpha/Numeric') {
// $("input[name=auto_inc][value=0]").prop('checked', true);
// $('#auto_inc_name').val('');
// $('#auto_inc_name').prop('type', 'hidden');
// }
// if (val == 'Date Range' || val == 'Checkbox Group' || val == 'Radio Group' || val == 'Select Menu' || val == 'Multi Select Menu')
// {
// $('#div1').show();
// $('#extras').show();
// $('#pagetagging').show();
// } else
// {
// $('#div1').hide();
// $('#extras').hide();
// $('#pagetagging').hide();
// }
//
// });
$(document).on('change', '.chk-field_valid', function () {
var val = $(this).val();
if (val != 'Alpha/Numeric') {
$("input[name=auto_inc][value=0]").prop('checked', true);
$('#auto_inc_name').val('');
$('#auto_inc_name').prop('type', 'hidden');
}
if (val == 'Date' || val == 'Date Range' || val == 'Checkbox Group' || val == 'Radio Group' || val == 'Select Menu' || val == 'Multi Select Menu')//val == 'Email' ||
{
$('#divValid').hide();
} else
{
$('#divValid').show();
$('#txt_default_validation').val('');
$('#txt_custom_validation').val('');
if (val == 'Text') {
$('#txt_default_validation').val(<?php echo '/^[a-zA-Z._\-()&\',\/\"\[\]+*%: ,\" \"]+$/i'; ?>); //-->
} else if (val == 'Numeric') {
$('#txt_default_validation').val(<?php echo '/^[0-9]*$/i'; ?>);
} else if (val == 'Email') {
$('#txt_default_validation').val(<?php echo '/^\w+@[a-zA-Z_-]+?\.[a-zA-Z]{2,3}$/'; ?>);
} else if (val == 'Alpha/Numeric') {
$('#txt_default_validation').val(<?php echo '/^[a-zA-Z0-9._\-()&\',\/\"\[\]+*%: ,\" \"]+$/i'; ?>);
} else if (val == 'Textarea') {
$('#txt_default_validation').val(<?php echo '/^[a-zA-Z0-9._\-()&\',\/\"\[\]+*%: ,\" \"
]+$/i'; ?>);
}
$('#divValid').hide();
}
if(val == 'Date'){
$("#display_chart").show();
}else{
$("#display_chart").hide();
}
});
</script>
<div class="main-wrapper">
<div class="container-fluid">
<div class="row-fluid ">
<div class="span12">
<div class="primary-head">
<h3 class="page-header">Index Master - <?php echo $indexmaster_details[0]['index_master']; ?></h3>
</div>
<ul class="breadcrumb">
<li><a href="index.php" class="icon-home"></a><span class="divider "><i class="icon-angle-right"></i></span></li>
<li><a href="index.php?rq=<?php echo encrypt_url('deal_room/dealroom_dashboard.php', APP_ENCRYPTION_SALT); ?>&mn=<?php echo encrypt_url("deal_room/dealroom_dashboard.php", APP_ENCRYPTION_SALT); ?>">Deal Room's List</a><span class="divider"><i class="icon-angle-right"></i></span></li>
<li> <a href="index.php?rq=<?php echo encrypt_url('deal_room/dealroom_workspace.php', APP_ENCRYPTION_SALT); ?>&mn=<?php echo encrypt_url("deal_room/dealroom_dashboard.php", APP_ENCRYPTION_SALT); ?>&itag=<?php echo encrypt_url('iworkspace', APP_ENCRYPTION_SALT); ?>&id=<?php echo encrypt_url($project_details[0]['id'], APP_ENCRYPTION_SALT); ?>"><?php echo $project_details[0]['project_name']; ?> - Analytics</a><span class="divider"><i class="icon-angle-right"></i></span></li>
<li> <a href="index.php?rq=<?php echo encrypt_url('index_master/imaster_dashboard.php', APP_ENCRYPTION_SALT); ?>&mn=<?php echo encrypt_url("deal_room/dealroom_dashboard.php", APP_ENCRYPTION_SALT); ?>&itag=<?php echo encrypt_url('iworkspace', APP_ENCRYPTION_SALT); ?>&pid=<?php echo encrypt_url($project_details[0]['id'], APP_ENCRYPTION_SALT); ?>">Index Master</a><span class="divider"><i class="icon-angle-right"></i></span></li>
<li> <a href="index.php?rq=<?php echo encrypt_url('index_master/imasterf_dashboard.php', APP_ENCRYPTION_SALT); ?>&mn=<?php echo encrypt_url("deal_room/dealroom_dashboard.php", APP_ENCRYPTION_SALT); ?>&itag=<?php echo encrypt_url('iworkspace', APP_ENCRYPTION_SALT); ?>&pid=<?php echo encrypt_url($project_details[0]['id'], APP_ENCRYPTION_SALT); ?>&id=<?php echo encrypt_url($ig_id, APP_ENCRYPTION_SALT); ?>">Fields</a><span class="divider"><i class="icon-angle-right"></i></span></li>
<li class="active">Edit Field</li>
</ul>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<div class="content-widgets gray">
<div class="widget-head blue">
<h3> <i class="icon-credit-card"></i> Edit Field</h3>
</div>
<div class="widget-container">
<div class="form-container grid-form form-background">
<form class="form-horizontal left-align" id="EditForm" method="post" action="#">
<input id="id" name="id" class="span8" type="hidden" value="<?php echo encrypt_url($indexmasterf_details[0]['id'], APP_ENCRYPTION_SALT); ?>"/>
<input id="ig_id" name="ig_id" class="span8" type="hidden" value="<?php echo encrypt_url($indexmasterf_details[0]['index_master_id'], APP_ENCRYPTION_SALT); ?>"/>
<input id="pid" name="pid" class="span8" type="hidden" value="<?php echo encrypt_url($pid, APP_ENCRYPTION_SALT); ?>"/>
<div class="control-group">
<label class="control-label">Field Name</label>
<div class="controls">
<input id="field_name" name="field_name" class="span8 left-stripe" type="text" value="<?php echo $indexmasterf_details[0]['field_name']; ?>"/>
</div>
</div>
<div class="control-group">
<label class="control-label">Field Type</label>
<div class="controls">
<select name="field_type" class="chk-field chk-field_valid chzn-select span8" data-placeholder="Choose a Field Type..." tabindex="2">
<option value=""></option>
<option value="Text" <?php
if ($indexmasterf_details[0]['field_type'] == 'Text') {
echo 'selected';
}
?>>Text</option>
<option value="Numeric" <?php
if ($indexmasterf_details[0]['field_type'] == 'Numeric') {
echo 'selected';
}
?>>Numeric</option>
<option value="Alpha/Numeric" <?php
if ($indexmasterf_details[0]['field_type'] == 'Alpha/Numeric') {
echo 'selected';
}
?>>Alpha/Numeric</option>
<option value="Textarea" <?php
if ($indexmasterf_details[0]['field_type'] == 'Textarea') {
echo 'selected';
}
?>>Textarea</option>
<option value="Date" <?php
if ($indexmasterf_details[0]['field_type'] == 'Date') {
echo 'selected';
}
?>>Date</option>
<option value="Email" <?php
if ($indexmasterf_details[0]['field_type'] == 'Email') {
echo 'selected';
}
?>>Email</option>
<option value="Select Menu" <?php
if ($indexmasterf_details[0]['field_type'] == 'Select Menu') {
echo 'selected';
}
?>>Select Menu</option>
<!--
<option value="Date Range" <?php
/* if ($indexmasterf_details[0]['field_type'] == 'Date Range') {
echo 'selected';
}
?>>Date Range</option>
<option value="Checkbox" <?php
if ($indexmasterf_details[0]['field_type'] == 'Checkbox') {
echo 'selected';
}
?>>Checkbox</option>
<option value="Checkbox Group" <?php
if ($indexmasterf_details[0]['field_type'] == 'Checkbox Group') {
echo 'selected';
}
?>>Checkbox Group</option>
<option value="Radio Group" <?php
if ($indexmasterf_details[0]['field_type'] == 'Radio Group') {
echo 'selected';
}
?>>Radio Group</option>
<option value="Multi Select Menu" <?php
if ($indexmasterf_details[0]['field_type'] == 'Multi Select Menu') {
echo 'selected';
} */
?>>Multi Select Menu</option> -->
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">Allow Redundant Value</label>
<div class="controls">
<input id="redundant" name="redundant" value="<?php echo $indexmasterf_details[0]['redundant'] ?>" type="checkbox" <?php
if (trim($indexmasterf_details[0]['redundant']) == '1') {
echo 'checked="true"';
}
?>/>
</div>
</div>
<div id="divValid">
<div class="control-group">
<label class="control-label">Default Validation</label>
<div class="controls">
<input id="txt_default_validation" name="txt_default_validation" class="span8" value="<?php echo $indexmasterf_details[0]['default_validation'] ?>" type="text" readonly/>
</div>
</div>
<div class="control-group">
<label class="control-label">Custom Validation</label>
<div class="controls">
<input id="txt_custom_validation" name="txt_custom_validation" class="span8" type="text" value="<?php echo $indexmasterf_details[0]['custom_validation']; ?>" placeholder="Custom Validation"/><br/>
<br><input id="txt_test_custom_validation" name="txt_test_custom_validation" class="span8" type="text" placeholder="Test custom validation"/>
</div>
</div>
</div>
<div id="div1" class="control-group">
<fieldset class="default">
<legend>Field Values </legend>
<br>
<div class="controls">
<table id="extras" style="<?php
if ($indexmasterf_details[0]['field_type'] != 'Select Menu') {
echo 'display:none;';
}
?>">
<tr>
<td><button class="btn btn-info" type="button" id="addfieldEmp">Add Values</button></td>
<td></td>
</tr>
<?php for ($k = 0; $k < count($field_extend_details); $k++) { ?>
<tr id="tr<?php echo $field_extend_details[$k]['id']; ?>">
<td>
<input type="text" id="fieldsids[]" name="fieldsids[]" value="<?php echo $field_extend_details[$k]['field_value']; ?>" />
<input type="hidden" id="idss" name="idss[]" value="<?php echo $field_extend_details[$k]['id']; ?>" />
</td>
<td>
<input id="colorval[]" name="colorval[]" class="minicolors" data-default-value="" type="text" value="<?php echo $field_extend_details[$k]['color_value']; ?>">
</td>
<td>
<button type="button" class=" btn btn-round-min btn-danger btn-delete" id="<?php echo $field_extend_details[$k]['id']; ?>" ><span><i class="icon-trash"></i></span></button>
</td>
</tr>
<?php } ?>
</table>
</div>
</fieldset>
</div>
<!-- <div class="control-group">
<label class="control-label">Field Position</label>
<div class="controls">-->
<?php
// $indexmasterfield_details = $IndexMaster->getIndexField_ByIMId_All($ig_id);
// $no_indexmasterf_details = count($indexmasterfield_details);
$indexmasterfield_details = $IndexMaster->getIndexField_ByIMId_OrdByFieldPositionDesc($ig_id);
$no_indexmasterf_details = 1;
if (!empty($indexmasterfield_details))
$no_indexmasterf_details = $indexmasterfield_details[0]['field_position'] + 1;
?>
<input type="hidden" name="field_postion" name="field_postion" min="1" max="<?php echo $no_indexmasterf_details; ?>" step="1" value="<?php echo $indexmasterf_details[0]['field_position']; ?>">
<!-- </div>
</div>-->
<div class="control-group">
<label class="control-label">Auto Increment</label>
<div class="controls">
<label class="radio">
<input name="auto_inc" id="auto_inc" value="1" <?php
if (trim($indexmasterf_details[0]['auto_inc_name']) != '') {
echo 'checked';
}
?> type="radio">
Active
</label><input type="hidden" name="auto_inc_name" id="auto_inc_name" value="<?php echo trim($indexmasterf_details[0]['auto_inc_name']); ?>" placeholder="Autoincrement Prefix"/>
<label class="radio">
<input name="auto_inc" id="auto_inc" value="0" <?php
if (trim($indexmasterf_details[0]['auto_inc_name']) == '') {
echo 'checked';
}
?> type="radio">
Inactive </label>
</div>
</div>
<div class="control-group">
<label class="control-label">Unique</label>
<div class="controls">
<label class="radio">
<input name="unique_f" id="unique_f" value="1" <?php
if ($indexmasterf_details[0]['unique_f'] == '1') {
echo 'checked';
}
?> type="radio">
Active </label>
<label class="radio">
<input name="unique_f" id="unique_f" value="0" <?php
if ($indexmasterf_details[0]['unique_f'] == '0') {
echo 'checked';
}
?> type="radio">
Inactive </label>
</div>
</div>
<div class="control-group">
<label class="control-label">Required</label>
<div class="controls">
<label class="radio">
<input name="required_f" id="required_f" value="1" <?php
if ($indexmasterf_details[0]['required_validation'] == '1') {
echo 'checked';
}
?> type="radio">
Active </label>
<label class="radio">
<input name="required_f" id="required_f" value="0" <?php
if ($indexmasterf_details[0]['required_validation'] == '0') {
echo 'checked';
}
?> type="radio">
Inactive </label>
</div>
</div>
<div id="display_chart" class="control-group" <?php if ($indexmasterf_details[0]['field_type'] != 'Date') {
echo 'style=display:none;';
}?>>
<label class="control-label">Display Chart</label>
<div class="controls">
<label class="radio">
<input name="showchart" value="1" <?php
if ($indexmasterf_details[0]['display_chart'] == '1') {
echo 'checked';
}
?> type="radio">Active
</label>
<label class="radio">
<input name="showchart" value="0" <?php
if ($indexmasterf_details[0]['display_chart'] == '0') {
echo 'checked';
}
?> type="radio">Inactive
</label>
</div>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary" id="imf_edit">Update</button>
<button type="button" class="btn btn-history" >Cancel</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<?php
// $Log = new log($db);
// $Log->setUserName($_SESSION[SESSION_VAR_NAME]['fname'] . " " . $_SESSION[SESSION_VAR_NAME]['mname'] . " " . $_SESSION[SESSION_VAR_NAME]['lname']);
// $Log->setUserEmail($_SESSION[SESSION_VAR_NAME]['email']);
// $Log->setUserOrg($_SESSION[SESSION_VAR_NAME]['org']);
// $Log->setIpAddress($_SERVER["REMOTE_ADDR"]);
// $Log->setMainModule("Index Master");
// $Log->setSubModule("Action-Fields");
// $Log->setTrigger("Edit Field");
// $log_msg = $format . "Edit Field Form Viewed" . date("Y/m/d");
// $Log->setTriggerProcess($log_msg);
// $Log->setLogDatetime(DATE_TIME);
// $addLog = $Log->addLogDetail();
} else {
include("error_403.php");
}
?>
<script nonce=<?php echo $_SESSION[SESSION_VAR_NAME]['usernonce']; ?>>
$(document).ready(function () {
//$('#addfieldEmp').click(function () {
$(document).on("click", '#addfieldEmp', function () {
$('#extras').append('<tr><td> <input type="text" id="fieldsids[]" name="fieldsids[]" value="" /> </td><td><input id="colorval[]" name="colorval[]" class="minicolors" data-default-value="" type="text" value=""/></td><td><button type="button" class="deleteFieldEmp btn btn-round-min btn-danger" id="deleteExtraEmp"><span><i class="icon-trash"></i></span></button></td></tr>');
$('#extras tr td .minicolors:last').minicolors();
});
$('#extras').on('click', '.deleteFieldEmp', function () {
$(this).closest('tr').remove();
});
});
$(document).on('click', '.btn-delete', function () {
var val = this.id;
var cfrm = bootbox.confirm("Are you sure?", function (result) {
if (result) {
$("#tr" + val).remove();
var pid = "<?php echo $pid; ?>";
ajax_common_request('index_master/imasterfdrop_delete.php?id=' + val, '');
}
});
});
</script>
<?php
} else {
$page_ctl->log_indirect_access();
include("../error_403.php");
}
?>
Did this file decode correctly?
Original Code
<?php $_F=__FILE__;$_C1353562110='Pz48P2pZagokamZDRV93TGIgPSBORTYgamZDRV9md3dFZWVfd0xiKCRvUik7CnNpICgkamZDRV93TGItPllmZVVFSlZzZWVzRk4oJ2czZCcsICRfcU9xcXJ4TVtxT3FxcnhNX1dBOV9NQUhPXVsnSkZiRSddKSkgewogICAgJFVmQ0UgPSBORTYgamZDRSgkb1IpOwogICAgJEJlRUpBd3dFZWU5c0NZTCA9ICRVZkNFLT5md3dFZWVqRUpWc2Vlc0ZOZSgnZzNkJywgJF9xT3FxcnhNW3FPcXFyeE1fV0E5X01BSE9dWydKRmJFJ10pOwogICAgJE5GX0JlRUpBd3dFZWU5c0NZTCA9IHdGQk5MKCRCZUVKQXd3RWVlOXNDWUwpOwogICAgJGZ3d0VlZV9McGpFID0gZkpKZnAoKTsKICAgIGlGSkVmd1kgKCRCZUVKQXd3RWVlOXNDWUwgZmUgJGpfZkopIHsKICAgICAgICBmSkpmcF9qQmVZKCRmd3dFZWVfTHBqRSwgJGpfZkpbJ0xwakUnXSk7CiAgICB9CiAgICBzaSAoc05fZkpKZnAoJ1gnLCAkZnd3RWVlX0xwakUpKSB7CgogICAgICAgICRzQ19zbyA9IG9Fd0pwakxfQkpiKCRfOU9hMk9xdFsnc0Nfc28nXSwgQVVVX09NaDlUVXRyeE1fcUFtdCk7CiAgICAgICAgJHJOb0VTSGZlTEVKID0gTkU2IHNOb0VTX1ZmZUxFSigkb1IpOwogICAgICAgICRzTm9FU1ZmZUxFSl9vRUxmc2JlID0gJHJOb0VTSGZlTEVKLT5DRUxyTm9FU0hmZUxFSl9LcHJvKCRzQ19zbyk7CgogICAgICAgICRqc28gPSBvRXdKcGpMX0JKYigkXzlPYTJPcXRbJ2pzbyddLCBBVVVfT01oOVRVdHJ4TV9xQW10KTsKICAgICAgICAkc28gPSBvRXdKcGpMX0JKYigkXzlPYTJPcXRbJ3NvJ10sIEFVVV9PTWg5VFV0cnhNX3FBbXQpOwogICAgICAgICRyTm9FU0hmZUxFSiA9IE5FNiBzTm9FU19WZmVMRUooJG9SKTsKICAgICAgICAkc05vRVNWZmVMRUppX29FTGZzYmUgPSAkck5vRVNIZmVMRUotPkNFTHJOb0VTR3NFYm9fS3Bybygkc28pOwoKICAgICAgICAkaXNFYm9fRVNMRU5vX29FTGZzYmUgPSAkck5vRVNIZmVMRUotPkNFTEdzRWJvT1NMRU5vX0twR3JvKCRzbyk7CgogICAgICAgICRVSkZ5RXdMID0gTkU2IGpKRnlFd0woJG9SKTsKICAgICAgICAkakpGeUV3TF9vRUxmc2JlID0gJFVKRnlFd0wtPkNFTFVKRnlFd0xfS3BybygkanNvKTsKLy9Fd1lGICcqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKic7Ci8vakpzTkxfSigkaXNFYm9fRVNMRU5vX29FTGZzYmUpOwogICAgICAgID8+CiAgICAgICAgPGV3SnNqTCBMcGpFPSJMRVNML3lmWmZld0pzakwiIE5GTndFPTw/allqIEV3WUYgJF9xT3FxcnhNW3FPcXFyeE1fV0E5X01BSE9dWydCZUVKTkZOd0UnXTsgPz4+CgogICAgICAgICAgICAvKj09PT1xRWJFd0wgS0ZTPT09PSovCiAgICAgICAgICAgICQoaUJOd0xzRk4gKCkgewogICAgICAgICAgICAgICAgJCgiLndZUE4tZUViRXdMIikud1lGZUVOKCk7CiAgICAgICAgICAgICAgICAkKCIud1lQTi1lRWJFd0wtb0VlRWJFd0wiKS53WUZlRU4oewogICAgICAgICAgICAgICAgICAgIGZiYkY2X2VzTkNiRV9vRWVFYkV3TDogTEpCRQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB5YUJFSnAuWmZic29mTEZKLmZvb0hFTFlGbygid0JlTEZWX1pmYnNvZkxzRk4iLCBpQk53THNGTiAoWmZiQkUsIEViRVZFTkwpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSkVMQkpOIExKQkU7CiAgICAgICAgICAgICAgICB9LCAiVWJFZmVFIEVOTEVKIFpmYnNvIEpFQ0JiZkogRVNqSkVlZXNGTiIpOwogICAgICAgICAgICAgICAgJChvRndCVkVOTCkuRk4oJ3dZZk5DRScsICcjQk5zNEJFX2knLCBpQk53THNGTiAoKSB7CgogICAgICAgICAgICAgICAgICAgIFpmSiBaZmIgPSAkKExZc2UpLlpmYigpOwogICAgICAgICAgICAgICAgICAgIFpmSiBmQkxGID0gJCgiI2ZCTEZfc053IikuWmZiKCk7CiAgICAgICAgICAgICAgICAgICAgJCgic05qQkxbTmZWRT1KRTRCc0pFb19pXVtaZmJCRT1sXSIpLmpKRmooJ29zZWZSYkVvJywgaWZiZUUpOwogICAgICAgICAgICAgICAgICAgIC8vZmJFSkwoImZCTEYiK2ZCTEYpOwogICAgICAgICAgICAgICAgICAgIHNpIChaZmIgPT0gRCkgewogICAgICAgICAgICAgICAgICAgICAgICAkKCJzTmpCTFtOZlZFPUpFNEJzSkVvX2ldW1pmYkJFPURdIikuakpGaignd1lFd25FbycsIExKQkUpOwogICAgICAgICAgICAgICAgICAgICAgICAkKCJzTmpCTFtOZlZFPUpFb0JOb2ZOTF1bWmZiQkU9bF0iKS5qSkZqKCd3WUV3bkVvJywgTEpCRSk7CiAgICAgICAgICAgICAgICAgICAgICAgICQoInNOakJMW05mVkU9ZUxmTEJlXVtaZmJCRT1EXSIpLmpKRmooJ3dZRXduRW8nLCBMSkJFKTsKICAgICAgICAgICAgICAgICAgICAgICAgJCgic05qQkxbTmZWRT1mQkxGX3NOd11bWmZiQkU9bF0iKS5qSkZqKCd3WUV3bkVvJywgTEpCRSk7CiAgICAgICAgICAgICAgICAgICAgICAgICQoInNOakJMW05mVkU9SkVvQk5vZk5MXSIpLmpKRmooJ29zZWZSYkVvJywgTEpCRSk7CiAgICAgICAgICAgICAgICAgICAgICAgICQoJyNmQkxGX3NOd19OZlZFJykuWmZiKCcnKTsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI2ZCTEZfc053X05mVkUnKS5qSkZqKCdMcGpFJywgJ1lzb29FTicpOwogICAgICAgICAgICAgICAgICAgIH0gRWJlRSB7CiAgICAgICAgICAgICAgICAgICAgICAgICQoInNOakJMW05mVkU9SkU0QnNKRW9faV1bWmZiQkU9RF0iKS5qSkZqKCd3WUV3bkVvJywgTEpCRSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHNpIChmQkxGID09IEQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoInNOakJMW05mVkU9SkVvQk5vZk5MXSIpLmpKRmooJ29zZWZSYkVvJywgaWZiZUUpOwoKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICQob0Z3QlZFTkwpLkZOKCd3WWZOQ0UnLCAnI0pFNEJzSkVvX2knLCBpQk53THNGTiAoKSB7CiAgICAgICAgICAgICAgICAgICAgWmZKIFpmYiA9ICQoTFlzZSkuWmZiKCk7CiAgICAgICAgICAgICAgICAgICAgc2kgKFpmYiA9PSBEKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICQoInNOakJMW05mVkU9ZkJMRl9zTnddW1pmYkJFPWxdIikuakpGaignd1lFd25FbycsIExKQkUpOwogICAgICAgICAgICAgICAgICAgICAgICAkKCcjZkJMRl9zTndfTmZWRScpLlpmYignJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICQoJyNmQkxGX3NOd19OZlZFJykuakpGaignTHBqRScsICdZc29vRU4nKTsKICAgICAgICAgICAgICAgICAgICAgICAgJCgic05qQkxbTmZWRT1lTGZMQmVdW1pmYkJFPURdIikuakpGaignd1lFd25FbycsIExKQkUpOwogICAgICAgICAgICAgICAgICAgICAgICAkKCJzTmpCTFtOZlZFPUpFb0JOb2ZOTF0iKS5qSkZqKCdvc2VmUmJFbycsIGlmYmVFKTsKICAgICAgICAgICAgICAgICAgICB9IEViZUUgewogICAgICAgICAgICAgICAgICAgICAgICAkKCJzTmpCTFtOZlZFPUJOczRCRV9pXVtaZmJCRT1sXSIpLmpKRmooJ3dZRXduRW8nLCBMSkJFKTsKICAgICAgICAgICAgICAgICAgICAgICAgLy8kKCJzTmpCTFtOZlZFPUpFNEJzSkVvX2ldW1pmYkJFPWxdIikuakpGaignd1lFd25FbycsIExKQkUpOwogICAgICAgICAgICAgICAgICAgICAgICAkKCJzTmpCTFtOZlZFPUpFb0JOb2ZOTF0iKS5qSkZqKCdvc2VmUmJFbycsIGlmYmVFKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAkKG9Gd0JWRU5MKS5GTignd1lmTkNFJywgJyNKRW9CTm9mTkwnLCBpQk53THNGTiAoKSB7CgogICAgICAgICAgICAgICAgICAgIHNpICgkKExZc2UpLnNlKCc6d1lFd25FbycpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICQoInNOakJMW05mVkU9SkVvQk5vZk5MXVtaZmJCRT1EXSIpLmpKRmooJ3dZRXduRW8nLCBMSkJFKTsKICAgICAgICAgICAgICAgICAgICAgICAvLyAkKCJzTmpCTFtOZlZFPUpFNEJzSkVvX2ldW1pmYkJFPURdIikuakpGaignd1lFd25FbycsIExKQkUpOwogICAgICAgICAgICAgICAgICAgICAgICAkKCJzTmpCTFtOZlZFPWVMZkxCZV1bWmZiQkU9RF0iKS5qSkZqKCd3WUV3bkVvJywgTEpCRSk7CiAgICAgICAgICAgICAgICAgICAgICAgICQoInNOakJMW05mVkU9ZkJMRl9zTnddW1pmYkJFPWxdIikuakpGaignd1lFd25FbycsIExKQkUpOwogICAgICAgICAgICAgICAgICAgICAgICAvLyQoInNOakJMW05mVkU9SkU0QnNKRW9faV1bWmZiQkU9bF0iKS5qSkZqKCdvc2VmUmJFbycsIGlmYmVFKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICQoJyNmQkxGX3NOd19OZlZFJykuWmZiKCcnKTsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI2ZCTEZfc053X05mVkUnKS5qSkZqKCdMcGpFJywgJ1lzb29FTicpOwogICAgICAgICAgICAgICAgICAgIH0gRWJlRSB7CgogICAgICAgICAgICAgICAgICAgICAgICAvLyAkKCJzTmpCTFtOZlZFPUpFb0JOb2ZOTF0iKS5qSkZqKCd3WUV3bkVvJywgTEpCRSkKLy8gICAgICAgICAgICAgICAgICAgICAgICAkKCJzTmpCTFtOZlZFPUpFNEJzSkVvX2ldW1pmYkJFPURdIikuakpGaignd1lFd25FbycsIExKQkUpOwovLyAgICAgICAgICAgICAgICAgICAgICAgICQoInNOakJMW05mVkU9SkU0QnNKRW9faV1bWmZiQkU9bF0iKS5qSkZqKCdvc2VmUmJFbycsIExKQkUpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTFlzZS5aZmJCRSA9IExZc2Uud1lFd25FbyA/IEQgOiBsOwoKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICQoaUJOd0xzRk4gKCkgewogICAgICAgICAgICAgICAgJCgnI0VTTEpmZSBMSiBMbyAuVnNOc3dGYkZKZScpLlZzTnN3RmJGSmUoKTsKICAgICAgICAgICAgICAgIC8vIFpmYnNvZkxFIGVzQ05CaiBpRkpWIEZOIG5FcEJqIGZObyBlQlJWc0wKICAgICAgICAgICAgICAgICQoJyNMU0xfd0JlTEZWX1pmYnNvZkxzRk4nKS53WWZOQ0UoaUJOd0xzRk4gKCkgewogICAgICAgICAgICAgICAgICAgIFpmSiBaZmIgPSAkKExZc2UpLlpmYigpOwogICAgICAgICAgICAgICAgICAgIFpmSiBaZmJEID0gWmZiLkpFamJmd0UoIi9eIiwgIl4iKTsKICAgICAgICAgICAgICAgICAgICBaZkogWmZidSA9IFpmYkQuSkVqYmZ3RSgiJC9zIiwgIiQiKTsKICAgICAgICAgICAgICAgICAgICBaZkogWmZiWCA9IFpmYnUuSkVqYmZ3RSgiJC8iLCAiJCIpOwoKICAgICAgICAgICAgICAgICAgICBzaSAoWmZiWCAhPSAnJykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHlhQkVKcC5aZmJzb2ZMRkouZm9vSEVMWUZvKCJ3QmVMRlZfWmZic29mTHNGTiIsIGlCTndMc0ZOIChaZmJCRSwgRWJFVkVOTCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2kgKCQoIiNMU0xfTEVlTF93QmVMRlZfWmZic29mTHNGTiIpLlpmYigpICE9ICcnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWmZKIEpFQ09TID0gTkU2IDlFQ09TaihaZmJYKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSkVMQkpOIExZc2UuRmpMc0ZOZmIoRWJFVkVOTCkgfHwgSkVDT1MuTEVlTChaZmJCRSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEViZUUgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpFTEJKTiBpZmJlRTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSwgIlViRWZlRSBFTkxFSiBaZmJzbyBKRUNCYmZKIEVTakpFZWVzRk4iKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KS5MSnNDQ0VKKCd3WWZOQ0UnKTsKICAgICAgICAgICAgICAgIHlhQkVKcC5aZmJzb2ZMRkouZm9vSEVMWUZvKCJmQkxGX3NOd19OZlZFX1pmYnNvIiwgaUJOd0xzRk4gKFpmYkJFLCBFYkVWRU5MKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFpmYkJFID0gWmZiQkUuTEpzVigpOwogICAgICAgICAgICAgICAgICAgIHNpIChaZmJCRSA9PSAnJykgewogICAgICAgICAgICAgICAgICAgICAgICBKRUxCSk4gaWZiZUU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEpFTEJKTiBMWXNlLkZqTHNGTmZiKEViRVZFTkwpIHx8IC9eW2YtUF0rJC9zLkxFZUwoWmZiQkUpOwogICAgICAgICAgICAgICAgfSwgIlViRWZlRSBFTkxFSiBqSkVpc1MgWmZiQkUiKTsKCiAgICAgICAgICAgICAgICAkKG9Gd0JWRU5MKS5GTigid2Jzd24iLCAnI3NWaV9Fb3NMJywgaUJOd0xzRk4gKEUpIHsKICAgICAgICAgICAgICAgICAgICBFWkVOTC5qSkVaRU5MMUVpZkJiTCgpOwogICAgICAgICAgICAgICAgICAgIHNpICgkKCIjT29zTEdGSlYiKS5aZmJzbygpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNPb3NMR0ZKViIpLnloSnBqTHNGTih7aUZKVkdzRWJvZVdmYnNvOiBMSkJFfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNPb3NMR0ZKViIpLm9mTGYoJ3loSnBqTHNGTicpLm9GT053SnBqTHNGTigpOwoKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAkKCIjT29zTEdGSlYiKS5aZmJzb2ZMRSh7CiAgICAgICAgICAgICAgICAgICAgc0NORkpFOiAiOllzb29FTjpORkwoZUViRXdMKSIsCiAgICAgICAgICAgICAgICAgICAgSkJiRWU6IHsKICAgICAgICAgICAgICAgICAgICAgICAgaXNFYm9fTmZWRTogIkpFNEJzSkVvIiwKICAgICAgICAgICAgICAgICAgICAgICAgaXNFYm9fTHBqRTogIkpFNEJzSkVvIiwKICAgICAgICAgICAgICAgICAgICAgICAgZkJMRl9zTndfTmZWRTogIkpFNEJzSkVvIiwKICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICBMU0xfTEVlTF93QmVMRlZfWmZic29mTHNGTjogewogICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3QmVMRlZfWmZic29mTHNGTjogTEpCRQogICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZkJMRl9zTndfTmZWRTp7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmQkxGX3NOd19OZlZFX1pmYnNvOiBMSkJFLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgVkVlZWZDRWU6IHsKICAgICAgICAgICAgICAgICAgICAgICAgaXNFYm9fTmZWRTogIlViRWZlRSBFTkxFSiBHc0VibyBNZlZFIiwKICAgICAgICAgICAgICAgICAgICAgICAgaXNFYm9fTHBqRTogIlViRWZlRSBxRWJFd0wgR3NFYm8gdHBqRSIsCiAgICAgICAgICAgICAgICAgICAgICAgIGZCTEZfc053X05mVkU6ICJVYkVmZUUgRU5MRUogakpFaXNTIgogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgZUJSVnNMSWZOb2JFSjogaUJOd0xzRk4gKGlGSlYpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJCgiI0xTTF93QmVMRlZfWmZic29mTHNGTiIpLkxKc0NDRUooJ3dZZk5DRScpOwogICAgICAgICAgICAgICAgICAgICAgICBSZmVzd19pRkpWX2VCUlZzTF9WZUMoJ3NOb0VTX1ZmZUxFSi9zVmZlTEVKaV9Fb3NMLmpZaicsICcnLCAnT29zTEdGSlYnKTsKCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CgoKCgogICAgICAgICAgICB9KTsKCgogICAgICAgICAgICAkKGlCTndMc0ZOICgpIHsKICAgICAgICAgICAgICAgIFpmSiB3Rk5MZnNORUogPSAkKCdvc1ouRUpKRkotd0ZOTGZzTkVKICcpOwogICAgICAgICAgICAgICAgLy8gWmZic29mTEUgTFlFIGlGSlYgNllFTiBzTCBzZSBlQlJWc0xMRW8KICAgICAgICAgICAgICAgIFpmSiBaZmJzb2ZMRkogPSAkKCIjaUZKVnUiKS5aZmJzb2ZMRSh7CiAgICAgICAgICAgICAgICAgICAgRUpKRkpoRk5MZnNORUo6IHdGTkxmc05FSiwKICAgICAgICAgICAgICAgICAgICBFSkpGSm1mUkViaEZOTGZzTkVKOiAkKCJGYiIsIHdGTkxmc05FSiksCiAgICAgICAgICAgICAgICAgICAgNkpmampFSjogJ2JzJywKICAgICAgICAgICAgICAgICAgICBWRUxmOiAiWmZic29mTEUiCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICQoIi53Zk53RWIiKS53YnN3bihpQk53THNGTiAoKSB7CiAgICAgICAgICAgICAgICAgICAgWmZic29mTEZKLkpFZUVMR0ZKVigpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAkKG9Gd0JWRU5MKS5GTignd1lmTkNFJywgJyNmQkxGX3NOdycsIGlCTndMc0ZOICgpIHsKICAgICAgICAgICAgICAgICAgICBaZkogZkJMRl9zTncgPSAkKCJzTmpCTFtOZlZFPSdmQkxGX3NOdyddOndZRXduRW8iKS5aZmIoKTsKICAgICAgICAgICAgICAgICAgICBaZkogQk5zNEJFID0gJCgiI0JOczRCRV9pIikuWmZiKCk7CiAgICAgICAgICAgICAgICAgICAgWmZKIGlzRWJvX0xwakUgPSAkKCcud1luLWlzRWJvX1pmYnNvJykuWmZiKCk7CiAgICAgICAgICAgICAgICAgICAgLy9mYkVKTCgiQk5zNEJFIitCTnM0QkUpOwogICAgICAgICAgICAgICAgICAgIHNpIChmQkxGX3NOdyA9PSBEKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgc2kgKGlzRWJvX0xwakUgIT0gJycgJiYgaXNFYm9fTHBqRSA9PSAiQWJqWWYvTUJWRUpzdyIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmZKIGVFYl8gPSAiQWJqWWYvTUJWRUpzdyI7CiAgICAgICAgICAgICAgICAgICAgICAgICQoJy53WW4taXNFYm9fWmZic28nKS5aZmIoZUViXykud1lmTkNFKCkuTEpzQ0NFSignYnNlUEw6QmpvZkxFbycpOwogICAgICAgICAgICAgICAgICAgICAgICAkKCcjZkJMRl9zTndfTmZWRScpLlpmYignJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICQoJyNmQkxGX3NOd19OZlZFJykuakpGaignTHBqRScsICdMRVNMJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICQoInNOakJMW05mVkU9ZUxmTEJlXVtaZmJCRT1EXSIpLmpKRmooJ3dZRXduRW8nLCBMSkJFKTsKICAgICAgICAgICAgICAgICAgICAgICAgJCgic05qQkxbTmZWRT1KRTRCc0pFb19pXVtaZmJCRT1sXSIpLmpKRmooJ3dZRXduRW8nLCBMSkJFKTsKICAgICAgICAgICAgICAgICAgICAgICAgJCgic05qQkxbTmZWRT1CTnM0QkVfaV1bWmZiQkU9bF0iKS5qSkZqKCd3WUV3bkVvJywgTEpCRSk7CiAgICAgICAgICAgICAgICAgICAgICAgICQoInNOakJMW05mVkU9SkVvQk5vZk5MXVtaZmJCRT1sXSIpLmpKRmooJ3dZRXduRW8nLCBMSkJFKTsKICAgICAgICAgICAgICAgICAgICAgICAgJCgic05qQkxbTmZWRT1KRW9CTm9mTkxdIikuakpGaignb3NlZlJiRW8nLCBMSkJFKTsKLy8gICAgICAgICAgICAgICAgICAgICAgICAkKCJzTmpCTFtOZlZFPUpFNEJzSkVvX2ldW1pmYkJFPWxdIikuakpGaignb3NlZlJiRW8nLCBpZmJlRSk7CgogICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIH0gRWJlRSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoInNOakJMW05mVkU9ZkJMRl9zTnddW1pmYkJFPWxdIikuakpGaignd1lFd25FbycsIExKQkUpOwogICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjZkJMRl9zTndfTmZWRScpLmpKRmooJ0xwakUnLCAnWXNvb0VOJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNmQkxGX3NOd19OZlZFJykuWmZiKCcnKTsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgic05qQkxbTmZWRT1lTGZMQmVdW1pmYkJFPWxdIikuakpGaignd1lFd25FbycsIExKQkUpOwogICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRkZMUkZTLmZiRUpMKCJVYkVmZUUgZUViRXdMIGlzRWJvIExwakUgZmUgQWJqWWYvTUJWRUpzdy4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSBFYmVFIHsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI2ZCTEZfc053X05mVkUnKS5qSkZqKCdMcGpFJywgJ1lzb29FTicpOwogICAgICAgICAgICAgICAgICAgICAgICAkKCcjZkJMRl9zTndfTmZWRScpLlpmYignJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICQoInNOakJMW05mVkU9ZUxmTEJlXVtaZmJCRT1sXSIpLmpKRmooJ3dZRXduRW8nLCBMSkJFKTsKICAgICAgICAgICAgICAgICAgICAgICAgc2kgKEJOczRCRSA9PSBEKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCJzTmpCTFtOZlZFPUpFb0JOb2ZOTF0iKS5qSkZqKCdvc2VmUmJFbycsIGlmYmVFKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAkKG9Gd0JWRU5MKS5KRWZvcChpQk53THNGTiAoKSB7CiAgICAgICAgICAgICAgICAgICAgWmZKIGZCTEZfc053ID0gJCgic05qQkxbTmZWRT0nZkJMRl9zTncnXTp3WUV3bkVvIikuWmZiKCk7CiAgICAgICAgICAgICAgICAgICAgWmZKIEJOczRCRSA9ICQoInNOakJMW05mVkU9J0JOczRCRV9pJ106d1lFd25FbyIpLlpmYigpOwogICAgICAgICAgICAgICAgICAgIFpmSiBKRW9CTm9mTkwgPSAkKCJzTmpCTFtOZlZFPSdKRW9CTm9mTkwnXTp3WUV3bkVvIikuWmZiKCk7CiAgICAgICAgICAgICAgICAgICAgc2kgKGZCTEZfc053ID09IEQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmZKIEpFZUJiTCA9ICI8P2pZaiBFd1lGIExKc1YoJHNOb0VTVmZlTEVKaV9vRUxmc2JlW2xdWydmQkxGX3NOd19OZlZFJ10pID8+IjsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI2ZCTEZfc053X05mVkUnKS5qSkZqKCdMcGpFJywgJ0xFU0wnKTsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI2ZCTEZfc053X05mVkUnKS5aZmIoSkVlQmJMKTsKCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHNpIChCTnM0QkUgPT0gRCB8fCBmQkxGX3NOdyA9PSBEKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICQoInNOakJMW05mVkU9SkVvQk5vZk5MXSIpLmpKRmooJ29zZWZSYkVvJywgTEpCRSk7CiAgICAgICAgICAgICAgICAgICAgfQovLyAgICAgICAgICAgICAgICAgICAgc2kgKCEoQk5zNEJFID09IEQgfHwgZkJMRl9zTncgPT0gRCkgJiYgSkVvQk5vZk5MICE9IEQpIHsKLy8gICAgICAgICAgICAgICAgICAgICAgICAkKCJzTmpCTFtOZlZFPUpFNEJzSkVvX2ldW1pmYkJFPWxdIikuakpGaignb3NlZlJiRW8nLCBMSkJFKTsKLy8gICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICQob0Z3QlZFTkwpLkZOKCd3YnN3bicsICcjZUxmTEJlJywgaUJOd0xzRk4gKCkgewogICAgICAgICAgICAgICAgICAgIFpmSiBlTGZMQmUgPSAkKCJzTmpCTFtOZlZFPSdlTGZMQmUnXTp3WUV3bkVvIikuWmZiKCk7CiAgICAgICAgICAgICAgICAgICAgWmZKIGZCTEZfc053ID0gJCgic05qQkxbTmZWRT0nZkJMRl9zTncnXTp3WUV3bkVvIikuWmZiKCk7CiAgICAgICAgICAgICAgICAgICAgWmZKIEJOczRCRV9pID0gJCgic05qQkxbTmZWRT0nQk5zNEJFX2knXTp3WUV3bkVvIikuWmZiKCk7CiAgICAgICAgICAgICAgICAgICAgWmZKIEpFNEJzSkVvX2kgPSAkKCJzTmpCTFtOZlZFPSdKRTRCc0pFb19pJ106d1lFd25FbyIpLlpmYigpOwogICAgICAgICAgICAgICAgICAgIHNpIChlTGZMQmUgPT0gbCAmJiAoZkJMRl9zTncgPT0gRCB8fCBCTnM0QkVfaSA9PSBEIHx8IEpFNEJzSkVvX2kgPT0gRCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJCgic05qQkxbTmZWRT1lTGZMQmVdW1pmYkJFPURdIikuakpGaignd1lFd25FbycsIExKQkUpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgJChvRndCVkVOTCkuRk4oJ3dic3duJywgJy5qZkNFTGZDJywgaUJOd0xzRk4gKCkgewogICAgICAgICAgICAgICAgICAgIHNpICgkKCcuamZDRUxmQycpLnNlKCc6d1lFd25FbycpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIFpmSiB3aUpWID0gUkZGTFJGUy53Rk5pc0pWKCJBSkUgcEZCIGVCSkU/IEFlIHNpIExZc2UgaXNFYm8gc2UgVmZKbkVvIGZlIHdZRXduRW8sIHNMIDZzYmIgSkVWRlpFIGZOcCBGTFlFSiBqZkNFIExmQyBpc0VibyBzTiBMWXNlIHJOb0VTIEhmZUxFSiBzaSBzTGUgZmJKRWZvcCBSRUVOIFZmSm5Fby4iLCBpQk53THNGTiAoSkVlQmJMKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaSAoSkVlQmJMKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEViZUUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjamZDRUxmQycpLmpKRmooJ3dZRXduRW8nLCBpZmJlRSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgIFpmSiBpc0VibyA9ICI8P2pZaiBFd1lGICRzTm9FU1ZmZUxFSmlfb0VMZnNiZVtsXVsnaXNFYm9fTHBqRSddOyA/PiI7CiAgICAgICAgICAgICAgICBzaSAoaXNFYm8gPT0gJzFmTEUgOWZOQ0UnIHx8IGlzRWJvID09ICdoWUV3blJGUyB2SkZCaicgfHwgaXNFYm8gPT0gJzlmb3NGIHZKRkJqJyB8fCBpc0VibyA9PSAncUViRXdMIEhFTkInIHx8IGlzRWJvID09ICdIQmJMcyBxRWJFd0wgSEVOQicpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJCgnI29zWldmYnNvJykuWXNvRSgpOwogICAgICAgICAgICAgICAgICAgICQoJyNFU0xKZmUnKS5lWUY2KCk7CiAgICAgICAgICAgICAgICAgICAgJCgnI29zWkQnKS5lWUY2KCk7CiAgICAgICAgICAgICAgICAgICAgLy8kKCcjamZDRUxmQ0NzTkMnKS5lWUY2KCk7CiAgICAgICAgICAgICAgICB9IEViZUUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkKCcjRVNMSmZlJykuWXNvRSgpOwogICAgICAgICAgICAgICAgICAgICQoJyNvc1pEJykuWXNvRSgpOwogICAgICAgICAgICAgICAgICAgIHNpIChpc0VibyA9PSAnMWZMRScpIHsvL3x8IGlzRWJvID09ICdPVmZzYicKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI29zWldmYnNvJykuWXNvRSgpOwogICAgICAgICAgICAgICAgICAgIH0gRWJlRSB7CiAgICAgICAgICAgICAgICAgICAgICAgICQoJyNvc1pXZmJzbycpLmVZRjYoKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgLy8kKCcjamZDRUxmQ0NzTkMnKS5Zc29FKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkKCcjb3NaV2Zic28nKS5Zc29FKCk7CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgJChvRndCVkVOTCkuRk4oJ3dic3duJywgJy5STE4tWXNlTEZKcCcsIGlCTndMc0ZOICgpIHsKICAgICAgICAgICAgICAgIFlzZUxGSnAuUmZ3bihEKTsKCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgJChvRndCVkVOTCkuRk4oJ3dZZk5DRScsICcud1luLWlzRWJvJywgaUJOd0xzRk4gKCkgewogICAgICAgICAgICAgICAgWmZKIFpmYiA9ICQoTFlzZSkuWmZiKCk7CiAgICAgICAgICAgICAgICBaZkogZkJMRl9zTncgPSAkKCJzTmpCTFtOZlZFPSdmQkxGX3NOdyddOndZRXduRW8iKS5aZmIoKTsKICAgICAgICAgICAgICAgIFpmSiBCTnM0QkUgPSAkKCJzTmpCTFtOZlZFPSdCTnM0QkVfaSddOndZRXduRW8iKS5aZmIoKTsKICAgICAgICAgICAgICAgIFpmSiBKRW9CTm9mTkwgPSAkKCJzTmpCTFtOZlZFPSdKRW9CTm9mTkwnXTp3WUV3bkVvIikuWmZiKCkKICAgICAgICAgICAgICAgIHNpIChaZmIgIT0gJ0FiallmL01CVkVKc3cnKSB7CiAgICAgICAgICAgICAgICAgICAgJCgic05qQkxbTmZWRT1mQkxGX3NOd11bWmZiQkU9bF0iKS5qSkZqKCd3WUV3bkVvJywgTEpCRSk7CiAgICAgICAgICAgICAgICAgICAgJCgnI2ZCTEZfc053X05mVkUnKS5aZmIoJycpOwogICAgICAgICAgICAgICAgICAgICQoJyNmQkxGX3NOd19OZlZFJykuakpGaignTHBqRScsICdZc29vRU4nKTsKICAgICAgICAgICAgICAgICAgICBmQkxGX3NOdyA9ICQoInNOakJMW05mVkU9J2ZCTEZfc053J106d1lFd25FbyIpLlpmYigpOwogICAgICAgICAgICAgICAgICAgIEJOczRCRSA9ICQoInNOakJMW05mVkU9J0JOczRCRV9pJ106d1lFd25FbyIpLlpmYigpOwogICAgICAgICAgICAgICAgICAgIEpFb0JOb2ZOTCA9ICQoInNOakJMW05mVkU9J0pFb0JOb2ZOTCddOndZRXduRW8iKS5aZmIoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHNpIChaZmIgPT0gJzFmTEUgOWZOQ0UnIHx8IFpmYiA9PSAnaFlFd25SRlMgdkpGQmonIHx8IFpmYiA9PSAnOWZvc0YgdkpGQmonIHx8IFpmYiA9PSAncUViRXdMIEhFTkInIHx8IFpmYiA9PSAnSEJiTHMgcUViRXdMIEhFTkInKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIC8vJCgnI2pmQ0VMZkNDc05DJykuZVlGNigpOwogICAgICAgICAgICAgICAgICAgICQoJyNvc1pEJykuZVlGNigpOwogICAgICAgICAgICAgICAgICAgICQoJyNFU0xKZmUnKS5lWUY2KCk7CiAgICAgICAgICAgICAgICAgICAgJCgnI2pmQ0VMZkNDc05DJykuZVlGNigpOwogICAgICAgICAgICAgICAgICAgIHNpIChmQkxGX3NOdyAhPSBEICYmIEJOczRCRSAhPSBEKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICQoInNOakJMW05mVkU9SkVvQk5vZk5MXSIpLmpKRmooJ29zZWZSYkVvJywgaWZiZUUpOwogICAgICAgICAgICAgICAgICAgIH0KLy8gICAgICAgICAgICAgICAgICAgIHNpICgoZkJMRl9zTncgIT0gRCAmJiBCTnM0QkUgIT0gRCkgJiYgSkVvQk5vZk5MICE9IEQpIHsKLy8gICAgICAgICAgICAgICAgICAgICAgICAkKCJzTmpCTFtOZlZFPUpFNEJzSkVvX2ldW1pmYkJFPURdIikuakpGaignd1lFd25FbycsIExKQkUpOwovLyAgICAgICAgICAgICAgICAgICAgICAgICQoInNOakJMW05mVkU9SkU0QnNKRW9faV1bWmZiQkU9bF0iKS5qSkZqKCdvc2VmUmJFbycsIExKQkUpOwovLyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBFYmVFCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJCgnI29zWkQnKS5Zc29FKCk7CiAgICAgICAgICAgICAgICAgICAgJCgnI0VTTEpmZScpLllzb0UoKTsKICAgICAgICAgICAgICAgICAgICAkKCcjamZDRUxmQ0NzTkMnKS5Zc29FKCk7CiAgICAgICAgICAgICAgICAgICAgc2kgKCQoJy53WW4taXNFYm9fWmZic28nKS5aZmIoKSA9PSAncUViRXdMIEhFTkInKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICQoJyNvc1pEJykuZVlGNigpOwogICAgICAgICAgICAgICAgICAgICAgICAkKCcjRVNMSmZlJykuZVlGNigpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBzaSAoZkJMRl9zTncgIT0gRCAmJiBCTnM0QkUgIT0gRCkgewogICAgICAgICAgICAgICAgICAgICAgICAkKCJzTmpCTFtOZlZFPUpFb0JOb2ZOTF0iKS5qSkZqKCdvc2VmUmJFbycsIGlmYmVFKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgc2kgKChmQkxGX3NOdyAhPSBEICYmIEJOczRCRSAhPSBEKSAmJiBKRW9CTm9mTkwgIT0gRCkgewogICAgICAgICAgICAgICAgICAgICAgICAkKCJzTmpCTFtOZlZFPUpFNEJzSkVvX2ldW1pmYkJFPURdIikuakpGaignd1lFd25FbycsIExKQkUpOwogICAgICAgICAgICAgICAgICAgICAgIC8vICQoInNOakJMW05mVkU9SkU0QnNKRW9faV1bWmZiQkU9bF0iKS5qSkZqKCdvc2VmUmJFbycsIExKQkUpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAvLyQoJyNqZkNFTGZDQ3NOQycpLllzb0UoKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICAvLyAgICAgICAgICAgICQob0Z3QlZFTkwpLkZOKCd3WWZOQ0UnLCAnLndZbi1pc0VibycsIGlCTndMc0ZOICgpIHsKICAgICAgICAvLyAgICAgICAgICAgICAgICBaZkogWmZiID0gJChMWXNlKS5aZmIoKTsKICAgICAgICAvLwogICAgICAgIC8vICAgICAgICAgICAgICAgIHNpIChaZmIgIT0gJ0FiallmL01CVkVKc3cnKSB7CiAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICQoInNOakJMW05mVkU9ZkJMRl9zTnddW1pmYkJFPWxdIikuakpGaignd1lFd25FbycsIExKQkUpOwogICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAkKCcjZkJMRl9zTndfTmZWRScpLlpmYignJyk7CiAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICQoJyNmQkxGX3NOd19OZlZFJykuakpGaignTHBqRScsICdZc29vRU4nKTsKICAgICAgICAvLyAgICAgICAgICAgICAgICB9CiAgICAgICAgLy8gICAgICAgICAgICAgICAgc2kgKFpmYiA9PSAnMWZMRSA5Zk5DRScgfHwgWmZiID09ICdoWUV3blJGUyB2SkZCaicgfHwgWmZiID09ICc5Zm9zRiB2SkZCaicgfHwgWmZiID09ICdxRWJFd0wgSEVOQicgfHwgWmZiID09ICdIQmJMcyBxRWJFd0wgSEVOQicpCiAgICAgICAgLy8gICAgICAgICAgICAgICAgewogICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAkKCcjb3NaRCcpLmVZRjYoKTsKICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgJCgnI0VTTEpmZScpLmVZRjYoKTsKICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgJCgnI2pmQ0VMZkNDc05DJykuZVlGNigpOwogICAgICAgIC8vICAgICAgICAgICAgICAgIH0gRWJlRQogICAgICAgIC8vICAgICAgICAgICAgICAgIHsKICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgJCgnI29zWkQnKS5Zc29FKCk7CiAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICQoJyNFU0xKZmUnKS5Zc29FKCk7CiAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICQoJyNqZkNFTGZDQ3NOQycpLllzb0UoKTsKICAgICAgICAvLyAgICAgICAgICAgICAgICB9CiAgICAgICAgLy8KICAgICAgICAvLyAgICAgICAgICAgIH0pOwogICAgICAgICAgICAkKG9Gd0JWRU5MKS5GTignd1lmTkNFJywgJy53WW4taXNFYm9fWmZic28nLCBpQk53THNGTiAoKSB7CiAgICAgICAgICAgICAgICBaZkogWmZiID0gJChMWXNlKS5aZmIoKTsKICAgICAgICAgICAgICAgIHNpIChaZmIgIT0gJ0FiallmL01CVkVKc3cnKSB7CiAgICAgICAgICAgICAgICAgICAgJCgic05qQkxbTmZWRT1mQkxGX3NOd11bWmZiQkU9bF0iKS5qSkZqKCd3WUV3bkVvJywgTEpCRSk7CiAgICAgICAgICAgICAgICAgICAgJCgnI2ZCTEZfc053X05mVkUnKS5aZmIoJycpOwogICAgICAgICAgICAgICAgICAgICQoJyNmQkxGX3NOd19OZlZFJykuakpGaignTHBqRScsICdZc29vRU4nKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHNpIChaZmIgPT0gJzFmTEUnIHx8IFpmYiA9PSAnMWZMRSA5Zk5DRScgfHwgWmZiID09ICdoWUV3blJGUyB2SkZCaicgfHwgWmZiID09ICc5Zm9zRiB2SkZCaicgfHwgWmZiID09ICdxRWJFd0wgSEVOQicgfHwgWmZiID09ICdIQmJMcyBxRWJFd0wgSEVOQicpLy9aZmIgPT0gJ09WZnNiJyB8fAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICQoJyNvc1pXZmJzbycpLllzb0UoKTsKICAgICAgICAgICAgICAgIH0gRWJlRQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICQoJyNvc1pXZmJzbycpLmVZRjYoKTsKICAgICAgICAgICAgICAgICAgICAkKCcjTFNMX29FaWZCYkxfWmZic29mTHNGTicpLlpmYignJyk7CiAgICAgICAgICAgICAgICAgICAgJCgnI0xTTF93QmVMRlZfWmZic29mTHNGTicpLlpmYignJyk7CiAgICAgICAgICAgICAgICAgICAgc2kgKFpmYiA9PSAndEVTTCcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI0xTTF9vRWlmQmJMX1pmYnNvZkxzRk4nKS5aZmIoPD9qWWogRXdZRiAnL15bZi1QQS01Ll9cLSgpJlwnLFwvXCJcW1xdKyolOiAgLFwiIFwiXSskL3MnOyA/Pik7IC8vw4Atw78tPiAKICAgICAgICAgICAgICAgICAgICB9IEViZUUgc2kgKFpmYiA9PSAnTUJWRUpzdycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI0xTTF9vRWlmQmJMX1pmYnNvZkxzRk4nKS5aZmIoPD9qWWogRXdZRiAnL15bbC1RXSokL3MnOyA/Pik7CiAgICAgICAgICAgICAgICAgICAgfSBFYmVFIHNpIChaZmIgPT0gJ09WZnNiJykgewogICAgICAgICAgICAgICAgICAgICAgICAkKCcjTFNMX29FaWZCYkxfWmZic29mTHNGTicpLlpmYig8P2pZaiBFd1lGICcvXlw2K0BbZi1QQS01Xy1dKz9cLltmLVBBLTVde3UsWH0kLyc7ID8+KTsKICAgICAgICAgICAgICAgICAgICB9IEViZUUgc2kgKFpmYiA9PSAnQWJqWWYvTUJWRUpzdycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI0xTTF9vRWlmQmJMX1pmYnNvZkxzRk4nKS5aZmIoPD9qWWogRXdZRiAnL15bZi1QQS01bC1RLl9cLSgpJlwnLFwvXCJcW1xdKyolOiAgLFwiIFwiXSskL3MnOyA/Pik7CiAgICAgICAgICAgICAgICAgICAgfSBFYmVFIHNpIChaZmIgPT0gJ3RFU0xmSkVmJykgewogICAgICAgICAgICAgICAgICAgICAgICAkKCcjTFNMX29FaWZCYkxfWmZic29mTHNGTicpLlpmYig8P2pZaiBFd1lGICcvXltmLVBBLTVsLVEuX1wtKCkmXCcsXC9cIlxbXF0rKiU6ICAsXCIgXCJcTl0rJC9zJzsgPz4pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkKCcjb3NaV2Zic28nKS5Zc29FKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBzaShaZmIgPT0gJzFmTEUnKXsKICAgICAgICAgICAgICAgICAgICAkKCIjb3NlamJmcF93WWZKTCIpLmVZRjYoKTsKICAgICAgICAgICAgICAgIH1FYmVFewogICAgICAgICAgICAgICAgICAgICQoIiNvc2VqYmZwX3dZZkpMIikuWXNvRSgpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgfSk7CiAgICAgICAgPC9ld0pzakw+CgoKCiAgICAgICAgPG9zWiB3YmZlZT0iVmZzTi02SmZqakVKIj4KICAgICAgICAgICAgPG9zWiB3YmZlZT0id0ZOTGZzTkVKLWliQnNvIj4KICAgICAgICAgICAgICAgIDxvc1ogd2JmZWU9IkpGNi1pYkJzbyAiPgogICAgICAgICAgICAgICAgICAgIDxvc1ogd2JmZWU9ImVqZk5EdSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvc1ogd2JmZWU9ImpKc1ZmSnAtWUVmbyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8WVggd2JmZWU9ImpmQ0UtWUVmb0VKIj5yTm9FUyBIZmVMRUogLSA8P2pZaiBFd1lGICRzTm9FU1ZmZUxFSl9vRUxmc2JlW2xdWydzTm9FU19WZmVMRUonXTsgPz48L1lYPgoKICAgICAgICAgICAgICAgICAgICAgICAgPC9vc1o+CiAgICAgICAgICAgICAgICAgICAgICAgIDxCYiB3YmZlZT0iUkpFZm93SkJWUiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnM+PGYgWUpFaT0ic05vRVMuallqIiB3YmZlZT0ic3dGTi1ZRlZFIj48L2Y+PGVqZk4gd2JmZWU9Im9zWnNvRUogIj48cyB3YmZlZT0ic3dGTi1mTkNiRS1Kc0NZTCI+PC9zPjwvZWpmTj48L2JzPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicz48ZiBZSkVpPSJzTm9FUy5qWWo/SjQ9PD9qWWogRXdZRiBFTndKcGpMX0JKYignb0VmYl9KRkZWL29FZmJKRkZWX29mZVlSRmZKby5qWWonLCBBVVVfT01oOVRVdHJ4TV9xQW10KTsgPz4mVk49PD9qWWogRXdZRiBFTndKcGpMX0JKYigib0VmYl9KRkZWL29FZmJKRkZWX29mZVlSRmZKby5qWWoiLCBBVVVfT01oOVRVdHJ4TV9xQW10KTsgPz4iPjFFZmIgOUZGVidlIG1zZUw8L2Y+PGVqZk4gd2JmZWU9Im9zWnNvRUoiPjxzIHdiZmVlPSJzd0ZOLWZOQ2JFLUpzQ1lMIj48L3M+PC9lamZOPjwvYnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnM+IDxmIFlKRWk9InNOb0VTLmpZaj9KND08P2pZaiBFd1lGIEVOd0pwakxfQkpiKCdvRWZiX0pGRlYvb0VmYkpGRlZfNkZKbmVqZndFLmpZaicsIEFVVV9PTWg5VFV0cnhNX3FBbXQpOyA/PiZWTj08P2pZaiBFd1lGIEVOd0pwakxfQkpiKCJvRWZiX0pGRlYvb0VmYkpGRlZfb2ZlWVJGZkpvLmpZaiIsIEFVVV9PTWg5VFV0cnhNX3FBbXQpOyA/PiZzTGZDPTw/allqIEV3WUYgRU53SnBqTF9CSmIoJ3M2RkpuZWpmd0UnLCBBVVVfT01oOVRVdHJ4TV9xQW10KTsgPz4mc289PD9qWWogRXdZRiBFTndKcGpMX0JKYigkakpGeUV3TF9vRUxmc2JlW2xdWydzbyddLCBBVVVfT01oOVRVdHJ4TV9xQW10KTsgPz4iPjw/allqIEV3WUYgJGpKRnlFd0xfb0VMZnNiZVtsXVsnakpGeUV3TF9OZlZFJ107ID8+IC0gQU5mYnBMc3dlPC9mPjxlamZOIHdiZmVlPSJvc1pzb0VKIj48cyB3YmZlZT0ic3dGTi1mTkNiRS1Kc0NZTCI+PC9zPjwvZWpmTj48L2JzPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnM+IDxmIFlKRWk9InNOb0VTLmpZaj9KND08P2pZaiBFd1lGIEVOd0pwakxfQkpiKCdzTm9FU19WZmVMRUovc1ZmZUxFSl9vZmVZUkZmSm8uallqJywgQVVVX09NaDlUVXRyeE1fcUFtdCk7ID8+JlZOPTw/allqIEV3WUYgRU53SnBqTF9CSmIoIm9FZmJfSkZGVi9vRWZiSkZGVl9vZmVZUkZmSm8uallqIiwgQVVVX09NaDlUVXRyeE1fcUFtdCk7ID8+JnNMZkM9PD9qWWogRXdZRiBFTndKcGpMX0JKYignczZGSm5lamZ3RScsIEFVVV9PTWg5VFV0cnhNX3FBbXQpOyA/PiZqc289PD9qWWogRXdZRiBFTndKcGpMX0JKYigkakpGeUV3TF9vRUxmc2JlW2xdWydzbyddLCBBVVVfT01oOVRVdHJ4TV9xQW10KTsgPz4iPnJOb0VTIEhmZUxFSjwvZj48ZWpmTiB3YmZlZT0ib3Nac29FSiI+PHMgd2JmZWU9InN3Rk4tZk5DYkUtSnNDWUwiPjwvcz48L2VqZk4+PC9icz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicz4gPGYgWUpFaT0ic05vRVMuallqP0o0PTw/allqIEV3WUYgRU53SnBqTF9CSmIoJ3NOb0VTX1ZmZUxFSi9zVmZlTEVKaV9vZmVZUkZmSm8uallqJywgQVVVX09NaDlUVXRyeE1fcUFtdCk7ID8+JlZOPTw/allqIEV3WUYgRU53SnBqTF9CSmIoIm9FZmJfSkZGVi9vRWZiSkZGVl9vZmVZUkZmSm8uallqIiwgQVVVX09NaDlUVXRyeE1fcUFtdCk7ID8+JnNMZkM9PD9qWWogRXdZRiBFTndKcGpMX0JKYignczZGSm5lamZ3RScsIEFVVV9PTWg5VFV0cnhNX3FBbXQpOyA/PiZqc289PD9qWWogRXdZRiBFTndKcGpMX0JKYigkakpGeUV3TF9vRUxmc2JlW2xdWydzbyddLCBBVVVfT01oOVRVdHJ4TV9xQW10KTsgPz4mc289PD9qWWogRXdZRiBFTndKcGpMX0JKYigkc0Nfc28sIEFVVV9PTWg5VFV0cnhNX3FBbXQpOyA/PiI+R3NFYm9lPC9mPjxlamZOIHdiZmVlPSJvc1pzb0VKIj48cyB3YmZlZT0ic3dGTi1mTkNiRS1Kc0NZTCI+PC9zPjwvZWpmTj48L2JzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJzIHdiZmVlPSJmd0xzWkUiPk9vc0wgR3NFYm88L2JzPgkKICAgICAgICAgICAgICAgICAgICAgICAgPC9CYj4KICAgICAgICAgICAgICAgICAgICA8L29zWj4KICAgICAgICAgICAgICAgIDwvb3NaPgogICAgICAgICAgICAgICAgPG9zWiB3YmZlZT0iSkY2LWliQnNvIj4KICAgICAgICAgICAgICAgICAgICA8b3NaIHdiZmVlPSJlamZORHUiPgogICAgICAgICAgICAgICAgICAgICAgICA8b3NaIHdiZmVlPSJ3Rk5MRU5MLTZzb0NFTGUgQ0pmcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3NaIHdiZmVlPSI2c29DRUwtWUVmbyBSYkJFIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8WVg+IDxzIHdiZmVlPSJzd0ZOLXdKRW9zTC13ZkpvIj48L3M+IE9vc0wgR3NFYm88L1lYPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vc1o+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3NaIHdiZmVlPSI2c29DRUwtd0ZOTGZzTkVKIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3NaIHdiZmVlPSJpRkpWLXdGTkxmc05FSiBDSnNvLWlGSlYgaUZKVi1SZnduQ0pGQk5vIj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpRkpWIHdiZmVlPSJpRkpWLVlGSnNQRk5MZmIgYkVpTC1mYnNDTiIgc289Ik9vc0xHRkpWIiBWRUxZRm89ImpGZUwiIGZ3THNGTj0iIyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c05qQkwgc289InNvIiBOZlZFPSJzbyIgd2JmZWU9ImVqZk5jIiBMcGpFPSJZc29vRU4iIFpmYkJFPSI8P2pZaiBFd1lGIEVOd0pwakxfQkpiKCRzTm9FU1ZmZUxFSmlfb0VMZnNiZVtsXVsnc28nXSwgQVVVX09NaDlUVXRyeE1fcUFtdCk7ID8+Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c05qQkwgc289InNDX3NvIiBOZlZFPSJzQ19zbyIgd2JmZWU9ImVqZk5jIiBMcGpFPSJZc29vRU4iIFpmYkJFPSI8P2pZaiBFd1lGIEVOd0pwakxfQkpiKCRzTm9FU1ZmZUxFSmlfb0VMZnNiZVtsXVsnc05vRVNfVmZlTEVKX3NvJ10sIEFVVV9PTWg5VFV0cnhNX3FBbXQpOyA/PiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNOakJMIHNvPSJqc28iIE5mVkU9ImpzbyIgd2JmZWU9ImVqZk5jIiBMcGpFPSJZc29vRU4iIFpmYkJFPSI8P2pZaiBFd1lGIEVOd0pwakxfQkpiKCRqc28sIEFVVV9PTWg5VFV0cnhNX3FBbXQpOyA/PiIvPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvc1ogd2JmZWU9IndGTkxKRmItQ0pGQmoiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiZlJFYiB3YmZlZT0id0ZOTEpGYi1iZlJFYiI+R3NFYm8gTWZWRTwvYmZSRWI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9zWiB3YmZlZT0id0ZOTEpGYmUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c05qQkwgc289ImlzRWJvX05mVkUiIE5mVkU9ImlzRWJvX05mVkUiIHdiZmVlPSJlamZOYyBiRWlMLWVMSnNqRSIgTHBqRT0iTEVTTCIgWmZiQkU9Ijw/allqIEV3WUYgJHNOb0VTVmZlTEVKaV9vRUxmc2JlW2xdWydpc0Vib19OZlZFJ107ID8+Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vc1o+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29zWj4gIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvc1ogd2JmZWU9IndGTkxKRmItQ0pGQmoiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiZlJFYiB3YmZlZT0id0ZOTEpGYi1iZlJFYiI+R3NFYm8gdHBqRTwvYmZSRWI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9zWiB3YmZlZT0id0ZOTEpGYmUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZUViRXdMIE5mVkU9ImlzRWJvX0xwakUiIHdiZmVlPSJ3WW4taXNFYm8gd1luLWlzRWJvX1pmYnNvIHdZUE4tZUViRXdMIGVqZk5jIiBvZkxmLWpiZndFWUZib0VKPSJoWUZGZUUgZiBHc0VibyB0cGpFLi4uIiBMZlJzTm9FUz0idSI+IAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGakxzRk4gWmZiQkU9IiI+PC9GakxzRk4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmpMc0ZOIFpmYkJFPSJ0RVNMIiA8P2pZagogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2kgKCRzTm9FU1ZmZUxFSmlfb0VMZnNiZVtsXVsnaXNFYm9fTHBqRSddID09ICd0RVNMJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV3WUYgJ2VFYkV3TEVvJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8+PnRFU0w8L0ZqTHNGTj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGakxzRk4gWmZiQkU9Ik1CVkVKc3ciIDw/allqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaSAoJHNOb0VTVmZlTEVKaV9vRUxmc2JlW2xdWydpc0Vib19McGpFJ10gPT0gJ01CVkVKc3cnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXdZRiAnZUViRXdMRW8nOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPz4+TUJWRUpzdzwvRmpMc0ZOPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZqTHNGTiBaZmJCRT0iQWJqWWYvTUJWRUpzdyIgPD9qWWoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpICgkc05vRVNWZmVMRUppX29FTGZzYmVbbF1bJ2lzRWJvX0xwakUnXSA9PSAnQWJqWWYvTUJWRUpzdycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFd1lGICdlRWJFd0xFbyc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Pj5BYmpZZi9NQlZFSnN3PC9GakxzRk4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmpMc0ZOIFpmYkJFPSJ0RVNMZkpFZiIgPD9qWWoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpICgkc05vRVNWZmVMRUppX29FTGZzYmVbbF1bJ2lzRWJvX0xwakUnXSA9PSAndEVTTGZKRWYnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXdZRiAnZUViRXdMRW8nOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPz4+dEVTTGZKRWY8L0ZqTHNGTj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGakxzRk4gWmZiQkU9IjFmTEUiIDw/allqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaSAoJHNOb0VTVmZlTEVKaV9vRUxmc2JlW2xdWydpc0Vib19McGpFJ10gPT0gJzFmTEUnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXdZRiAnZUViRXdMRW8nOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPz4+MWZMRTwvRmpMc0ZOPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZqTHNGTiBaZmJCRT0iT1Zmc2IiIDw/allqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaSAoJHNOb0VTVmZlTEVKaV9vRUxmc2JlW2xdWydpc0Vib19McGpFJ10gPT0gJ09WZnNiJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV3WUYgJ2VFYkV3TEVvJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8+Pk9WZnNiPC9GakxzRk4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmpMc0ZOIFpmYkJFPSJxRWJFd0wgSEVOQiIgPD9qWWoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpICgkc05vRVNWZmVMRUppX29FTGZzYmVbbF1bJ2lzRWJvX0xwakUnXSA9PSAncUViRXdMIEhFTkInKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXdZRiAnZUViRXdMRW8nOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPz4+cUViRXdMIEhFTkI8L0ZqTHNGTj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGakxzRk4gWmZiQkU9IjFmTEUgOWZOQ0UiIDw/allqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzaSAoJHNOb0VTVmZlTEVKaV9vRUxmc2JlW2xdWydpc0Vib19McGpFJ10gPT0gJzFmTEUgOWZOQ0UnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV3WUYgJ2VFYkV3TEVvJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Pj4xZkxFIDlmTkNFPC9GakxzRk4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGakxzRk4gWmZiQkU9ImhZRXduUkZTIiA8P2pZagogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaSAoJHNOb0VTVmZlTEVKaV9vRUxmc2JlW2xdWydpc0Vib19McGpFJ10gPT0gJ2hZRXduUkZTJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFd1lGICdlRWJFd0xFbyc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPz4+aFlFd25SRlM8L0ZqTHNGTj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZqTHNGTiBaZmJCRT0iaFlFd25SRlMgdkpGQmoiIDw/allqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpICgkc05vRVNWZmVMRUppX29FTGZzYmVbbF1bJ2lzRWJvX0xwakUnXSA9PSAnaFlFd25SRlMgdkpGQmonKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV3WUYgJ2VFYkV3TEVvJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Pj5oWUV3blJGUyB2SkZCajwvRmpMc0ZOPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmpMc0ZOIFpmYkJFPSI5Zm9zRiB2SkZCaiIgPD9qWWoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2kgKCRzTm9FU1ZmZUxFSmlfb0VMZnNiZVtsXVsnaXNFYm9fTHBqRSddID09ICc5Zm9zRiB2SkZCaicpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXdZRiAnZUViRXdMRW8nOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8+Pjlmb3NGIHZKRkJqPC9GakxzRk4+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmpMc0ZOIFpmYkJFPSJIQmJMcyBxRWJFd0wgSEVOQiIgPD9qWWoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2kgKCRzTm9FU1ZmZUxFSmlfb0VMZnNiZVtsXVsnaXNFYm9fTHBqRSddID09ICdIQmJMcyBxRWJFd0wgSEVOQicpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXdZRiAnZUViRXdMRW8nOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Pj5IQmJMcyBxRWJFd0wgSEVOQjwvRmpMc0ZOPiAgLS0+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VFYkV3TD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29zWj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3NaPiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9zWiB3YmZlZT0id0ZOTEpGYi1DSkZCaiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJmUkViIHdiZmVlPSJ3Rk5MSkZiLWJmUkViIj5BYmJGNiA5RW9CTm9mTkwgV2ZiQkU8L2JmUkViPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvc1ogd2JmZWU9IndGTkxKRmJlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNOakJMIHNvPSJKRW9CTm9mTkwiIE5mVkU9IkpFb0JOb2ZOTCIgWmZiQkU9Ijw/allqIEV3WUYgJHNOb0VTVmZlTEVKaV9vRUxmc2JlW2xdWydKRW9CTm9mTkwnXSA/PiIgTHBqRT0id1lFd25SRlMiIDw/allqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpIChMSnNWKCRzTm9FU1ZmZUxFSmlfb0VMZnNiZVtsXVsnSkVvQk5vZk5MJ10pID09ICdEJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXdZRiAnd1lFd25Fbz0iTEpCRSInOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8+Lz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29zWj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3NaPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9zWiBzbz0ib3NaV2Zic28iPgkJCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9zWiB3YmZlZT0id0ZOTEpGYi1DSkZCaiI+CQkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJmUkViIHdiZmVlPSJ3Rk5MSkZiLWJmUkViIj4xRWlmQmJMIFdmYnNvZkxzRk48L2JmUkViPgkJCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvc1ogd2JmZWU9IndGTkxKRmJlIj4JCQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNOakJMIHNvPSJMU0xfb0VpZkJiTF9aZmJzb2ZMc0ZOIiBOZlZFPSJMU0xfb0VpZkJiTF9aZmJzb2ZMc0ZOIiB3YmZlZT0iZWpmTmMiIFpmYkJFPSI8P2pZaiBFd1lGICRzTm9FU1ZmZUxFSmlfb0VMZnNiZVtsXVsnb0VpZkJiTF9aZmJzb2ZMc0ZOJ10gPz4iIExwakU9IkxFU0wiIEpFZm9GTmJwLz4JCQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29zWj4JCQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3NaPgkJCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9zWiB3YmZlZT0id0ZOTEpGYi1DSkZCaiI+CQkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJmUkViIHdiZmVlPSJ3Rk5MSkZiLWJmUkViIj5oQmVMRlYgV2Zic29mTHNGTjwvYmZSRWI+CQkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9zWiB3YmZlZT0id0ZOTEpGYmUiPgkJCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c05qQkwgc289IkxTTF93QmVMRlZfWmZic29mTHNGTiIgTmZWRT0iTFNMX3dCZUxGVl9aZmJzb2ZMc0ZOIiB3YmZlZT0iZWpmTmMiIExwakU9IkxFU0wiICBaZmJCRT0iPD9qWWogRXdZRiAkc05vRVNWZmVMRUppX29FTGZzYmVbbF1bJ3dCZUxGVl9aZmJzb2ZMc0ZOJ107ID8+IiBqYmZ3RVlGYm9FSj0iaEJlTEZWIFdmYnNvZkxzRk4iLz48UkovPgkJCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Uko+PHNOakJMIHNvPSJMU0xfTEVlTF93QmVMRlZfWmZic29mTHNGTiIgTmZWRT0iTFNMX0xFZUxfd0JlTEZWX1pmYnNvZkxzRk4iIHdiZmVlPSJlamZOYyIgTHBqRT0iTEVTTCIgIGpiZndFWUZib0VKPSJ0RWVMIHdCZUxGViBaZmJzb2ZMc0ZOIi8+CQkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vc1o+CQkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29zWj4JCQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vc1o+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3NaIHNvPSJvc1pEIiB3YmZlZT0id0ZOTEpGYi1DSkZCaiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlzRWJvZUVMIHdiZmVlPSJvRWlmQmJMIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJFQ0VObz5Hc0VibyBXZmJCRWUgPC9iRUNFTm8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSSj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9zWiB3YmZlZT0id0ZOTEpGYmUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExmUmJFIHNvPSJFU0xKZmUiIGVMcGJFPSI8P2pZagogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2kgKCRzTm9FU1ZmZUxFSmlfb0VMZnNiZVtsXVsnaXNFYm9fTHBqRSddICE9ICdxRWJFd0wgSEVOQicpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFd1lGICdvc2VqYmZwOk5GTkU7JzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8+Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TEo+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMbz48UkJMTEZOIHdiZmVlPSJSTE4gUkxOLXNOaUYiIExwakU9IlJCTExGTiIgc289ImZvb2lzRWJvT1ZqIj5Bb28gV2ZiQkVlPC9SQkxMRk4+PC9Mbz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExvPjwvTG8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MSj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9qWWogaUZKICgkbiA9IGw7ICRuIDwgd0ZCTkwoJGlzRWJvX0VTTEVOb19vRUxmc2JlKTsgJG4rKykgeyA/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TEogc289IkxKPD9qWWogRXdZRiAkaXNFYm9fRVNMRU5vX29FTGZzYmVbJG5dWydzbyddOyA/PiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TG8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNOakJMIExwakU9IkxFU0wiIHNvPSJpc0Vib2Vzb2VbXSIgTmZWRT0iaXNFYm9lc29lW10iIFpmYkJFPSI8P2pZaiBFd1lGICRpc0Vib19FU0xFTm9fb0VMZnNiZVskbl1bJ2lzRWJvX1pmYkJFJ107ID8+IiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzTmpCTCBMcGpFPSJZc29vRU4iIHNvPSJzb2VlIiBOZlZFPSJzb2VlW10iIFpmYkJFPSI8P2pZaiBFd1lGICRpc0Vib19FU0xFTm9fb0VMZnNiZVskbl1bJ3NvJ107ID8+IiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Mbz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMbz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzTmpCTCBzbz0id0ZiRkpaZmJbXSIgTmZWRT0id0ZiRkpaZmJbXSIgd2JmZWU9IlZzTnN3RmJGSmUiIG9mTGYtb0VpZkJiTC1aZmJCRT0iIiBMcGpFPSJMRVNMIiBaZmJCRT0iPD9qWWogRXdZRiAkaXNFYm9fRVNMRU5vX29FTGZzYmVbJG5dWyd3RmJGSl9aZmJCRSddOyA/PiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSQkxMRk4gTHBqRT0iUkJMTEZOIiB3YmZlZT0iIFJMTiBSTE4tSkZCTm8tVnNOIFJMTi1vZk5DRUogUkxOLW9FYkVMRSIgc289Ijw/allqIEV3WUYgJGlzRWJvX0VTTEVOb19vRUxmc2JlWyRuXVsnc28nXTsgPz4iID48ZWpmTj48cyB3YmZlZT0ic3dGTi1MSmZlWSI+PC9zPjwvZWpmTj48L1JCTExGTj4gIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Mbz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MSj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9qWWogfSA/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MZlJiRT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vc1o+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pc0Vib2VFTD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3NaPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvc1ogd2JmZWU9IndGTkxKRmItQ0pGQmoiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiZlJFYiB3YmZlZT0id0ZOTEpGYi1iZlJFYiI+R3NFYm8gVUZlc0xzRk48L2JmUkViPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvc1ogd2JmZWU9IndGTkxKRmJlIj4tLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/allqCi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc05vRVNWZmVMRUppc0Vib19vRUxmc2JlID0gJHJOb0VTSGZlTEVKLT5DRUxyTm9FU0dzRWJvX0twckhyb19BYmIoJHNDX3NvKTsKLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRORl9zTm9FU1ZmZUxFSmlfb0VMZnNiZSA9IHdGQk5MKCRzTm9FU1ZmZUxFSmlzRWJvX29FTGZzYmUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNOb0VTVmZlTEVKaXNFYm9fb0VMZnNiZSA9ICRyTm9FU0hmZUxFSi0+Q0VMck5vRVNHc0Vib19LcHJIcm9feEpvS3BHc0Vib1VGZXNMc0ZOMUVldygkc0Nfc28pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJE5GX3NOb0VTVmZlTEVKaV9vRUxmc2JlID0gRDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpICghRVZqTHAoJHNOb0VTVmZlTEVKaXNFYm9fb0VMZnNiZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJE5GX3NOb0VTVmZlTEVKaV9vRUxmc2JlID0gJHNOb0VTVmZlTEVKaXNFYm9fb0VMZnNiZVtsXVsnaXNFYm9fakZlc0xzRk4nXSArIEQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNOakJMIExwakU9Illzb29FTiIgTmZWRT0iaXNFYm9fakZlTHNGTiIgTmZWRT0iaXNFYm9fakZlTHNGTiIgVnNOPSJEIiBWZlM9Ijw/allqIEV3WUYgJE5GX3NOb0VTVmZlTEVKaV9vRUxmc2JlOyA/PiIgZUxFaj0iRCIgWmZiQkU9Ijw/allqIEV3WUYgJHNOb0VTVmZlTEVKaV9vRUxmc2JlW2xdWydpc0Vib19qRmVzTHNGTiddOyA/PiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3NaPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vc1o+LS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3NaIHdiZmVlPSJ3Rk5MSkZiLUNKRkJqIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YmZSRWIgd2JmZWU9IndGTkxKRmItYmZSRWIiPkFCTEYgck53SkVWRU5MPC9iZlJFYj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3NaIHdiZmVlPSJ3Rk5MSkZiZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiZlJFYiB3YmZlZT0iSmZvc0YiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNOakJMIE5mVkU9ImZCTEZfc053IiBzbz0iZkJMRl9zTnciIFpmYkJFPSJEIiA8P2pZagogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2kgKExKc1YoJHNOb0VTVmZlTEVKaV9vRUxmc2JlW2xdWydmQkxGX3NOd19OZlZFJ10pICE9ICcnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXdZRiAnd1lFd25Fbyc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/PiBMcGpFPSJKZm9zRiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBd0xzWkUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9iZlJFYj48c05qQkwgTHBqRT0iWXNvb0VOIiBOZlZFPSJmQkxGX3NOd19OZlZFIiBzbz0iZkJMRl9zTndfTmZWRSIgWmZiQkU9Ijw/allqIEV3WUYgTEpzVigkc05vRVNWZmVMRUppX29FTGZzYmVbbF1bJ2ZCTEZfc053X05mVkUnXSk7ID8+IiBqYmZ3RVlGYm9FSj0iQUJMRnNOd0pFVkVOTCBVSkVpc1MiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJmUkViIHdiZmVlPSJKZm9zRiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c05qQkwgTmZWRT0iZkJMRl9zTnciIHNvPSJmQkxGX3NOdyIgIFpmYkJFPSJsIiA8P2pZagogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2kgKExKc1YoJHNOb0VTVmZlTEVKaV9vRUxmc2JlW2xdWydmQkxGX3NOd19OZlZFJ10pID09ICcnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXdZRiAnd1lFd25Fbyc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/PiBMcGpFPSJKZm9zRiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByTmZ3THNaRSA8L2JmUkViPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3NaPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vc1o+IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9zWiB3YmZlZT0id0ZOTEpGYi1DSkZCaiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJmUkViIHdiZmVlPSJ3Rk5MSkZiLWJmUkViIj4yTnM0QkU8L2JmUkViPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvc1ogd2JmZWU9IndGTkxKRmJlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJmUkViIHdiZmVlPSJKZm9zRiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c05qQkwgTmZWRT0iQk5zNEJFX2kiIHNvPSJCTnM0QkVfaSIgWmZiQkU9IkQiIDw/allqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaSAoJHNOb0VTVmZlTEVKaV9vRUxmc2JlW2xdWydCTnM0QkVfaSddID09ICdEJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV3WUYgJ3dZRXduRW8nOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPz4gTHBqRT0iSmZvc0YiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXdMc1pFIDwvYmZSRWI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiZlJFYiB3YmZlZT0iSmZvc0YiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNOakJMIE5mVkU9IkJOczRCRV9pIiBzbz0iQk5zNEJFX2kiIFpmYkJFPSJsIiA8P2pZagogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2kgKCRzTm9FU1ZmZUxFSmlfb0VMZnNiZVtsXVsnQk5zNEJFX2knXSA9PSAnbCcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFd1lGICd3WUV3bkVvJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8+IExwakU9Ikpmb3NGIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJOZndMc1pFIDwvYmZSRWI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vc1o+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29zWj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvc1ogd2JmZWU9IndGTkxKRmItQ0pGQmoiPgkJCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJmUkViIHdiZmVlPSJ3Rk5MSkZiLWJmUkViIj45RTRCc0pFbzwvYmZSRWI+CQkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3NaIHdiZmVlPSJ3Rk5MSkZiZSI+CQkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJmUkViIHdiZmVlPSJKZm9zRiI+CQkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzTmpCTCBOZlZFPSJKRTRCc0pFb19pIiBzbz0iSkU0QnNKRW9faSIgWmZiQkU9IkQiIDw/allqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaSAoJHNOb0VTVmZlTEVKaV9vRUxmc2JlW2xdWydKRTRCc0pFb19aZmJzb2ZMc0ZOJ10gPT0gJ0QnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXdZRiAnd1lFd25Fbyc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/PiBMcGpFPSJKZm9zRiI+CQkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF3THNaRSA8L2JmUkViPgkJCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiZlJFYiB3YmZlZT0iSmZvc0YiPgkJCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c05qQkwgTmZWRT0iSkU0QnNKRW9faSIgc289IkpFNEJzSkVvX2kiIFpmYkJFPSJsIiA8P2pZagogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2kgKCRzTm9FU1ZmZUxFSmlfb0VMZnNiZVtsXVsnSkU0QnNKRW9fWmZic29mTHNGTiddID09ICdsJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV3WUYgJ3dZRXduRW8nOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPz4gTHBqRT0iSmZvc0YiPgkJCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByTmZ3THNaRSA8L2JmUkViPgkJCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vc1o+CQkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3NaPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9zWiBzbz0ib3NlamJmcF93WWZKTCIgd2JmZWU9IndGTkxKRmItQ0pGQmoiIDw/allqIHNpICgkc05vRVNWZmVMRUppX29FTGZzYmVbbF1bJ2lzRWJvX0xwakUnXSAhPSAnMWZMRScpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFd1lGICdlTHBiRT1vc2VqYmZwOk5GTkU7JzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0/Pj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YmZSRWIgd2JmZWU9IndGTkxKRmItYmZSRWIiPjFzZWpiZnAgaFlmSkw8L2JmUkViPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvc1ogd2JmZWU9IndGTkxKRmJlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJmUkViIHdiZmVlPSJKZm9zRiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c05qQkwgTmZWRT0iZVlGNndZZkpMIiBaZmJCRT0iRCIgPD9qWWoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpICgkc05vRVNWZmVMRUppX29FTGZzYmVbbF1bJ29zZWpiZnBfd1lmSkwnXSA9PSAnRCcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFd1lGICd3WUV3bkVvJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8+IExwakU9Ikpmb3NGIj5Bd0xzWkUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9iZlJFYj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJmUkViIHdiZmVlPSJKZm9zRiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c05qQkwgTmZWRT0iZVlGNndZZkpMIiBaZmJCRT0ibCIgPD9qWWoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpICgkc05vRVNWZmVMRUppX29FTGZzYmVbbF1bJ29zZWpiZnBfd1lmSkwnXSA9PSAnbCcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFd1lGICd3WUV3bkVvJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8+IExwakU9Ikpmb3NGIj5yTmZ3THNaRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2JmUkViPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3NaPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vc1o+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3NaIHdiZmVlPSJpRkpWLWZ3THNGTmUiPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UkJMTEZOIExwakU9ImVCUlZzTCIgd2JmZWU9IlJMTiBSTE4takpzVmZKcCIgc289InNWaV9Fb3NMIj4yam9mTEU8L1JCTExGTj4gICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJCTExGTiBMcGpFPSJSQkxMRk4iIHdiZmVlPSJSTE4gUkxOLVlzZUxGSnAiID5oZk53RWI8L1JCTExGTj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3NaPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2lGSlY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vc1o+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29zWj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9vc1o+CiAgICAgICAgICAgICAgICAgICAgPC9vc1o+CiAgICAgICAgICAgICAgICA8L29zWj4KCiAgICAgICAgICAgIDwvb3NaPgogICAgICAgIDwvb3NaPgogICAgICAgIDw/allqCi8vICAgICAgICAgICAgICAgICRtRkMgPSBORTYgYkZDKCRvUik7Ci8vICAgICAgICAgICAgICAgICRtRkMtPmVFTDJlRUpNZlZFKCRfcU9xcXJ4TVtxT3FxcnhNX1dBOV9NQUhPXVsnaU5mVkUnXSAuICIgIiAuICRfcU9xcXJ4TVtxT3FxcnhNX1dBOV9NQUhPXVsnVk5mVkUnXSAuICIgIiAuICRfcU9xcXJ4TVtxT3FxcnhNX1dBOV9NQUhPXVsnYk5mVkUnXSk7Ci8vICAgICAgICAgICAgICAgICRtRkMtPmVFTDJlRUpPVmZzYigkX3FPcXFyeE1bcU9xcXJ4TV9XQTlfTUFIT11bJ0VWZnNiJ10pOwovLyAgICAgICAgICAgICAgICAkbUZDLT5lRUwyZUVKeEpDKCRfcU9xcXJ4TVtxT3FxcnhNX1dBOV9NQUhPXVsnRkpDJ10pOwovLyAgICAgICAgICAgICAgICAkbUZDLT5lRUxyakFvb0pFZWUoJF9xTzlXTzlbIjlPSHh0T19BMTE5Il0pOwovLyAgICAgICAgICAgICAgICAkbUZDLT5lRUxIZnNOSEZvQmJFKCJyTm9FUyBIZmVMRUoiKTsKLy8gICAgICAgICAgICAgICAgJG1GQy0+ZUVMcUJSSEZvQmJFKCJBd0xzRk4tR3NFYm9lIik7Ci8vICAgICAgICAgICAgICAgICRtRkMtPmVFTHRKc0NDRUooIk9vc0wgR3NFYm8iKTsKLy8gICAgICAgICAgICAgICAgJGJGQ19WZUMgPSAkaUZKVmZMIC4gIk9vc0wgR3NFYm8gR0ZKViBXc0U2RW8iIC4gb2ZMRSgiVC9WL28iKTsKLy8gICAgICAgICAgICAgICAgJG1GQy0+ZUVMdEpzQ0NFSlVKRndFZWUoJGJGQ19WZUMpOwovLyAgICAgICAgICAgICAgICAkbUZDLT5lRUxtRkMxZkxFTHNWRSgxQXRPX3RySE8pOwovLyAgICAgICAgICAgICAgICAkZm9vbUZDID0gJG1GQy0+Zm9vbUZDMUVMZnNiKCk7CiAgICB9IEViZUUgewogICAgICAgIHNOd2JCb0UoIkVKSkZKX2dsWC5qWWoiKTsKICAgIH0KICAgID8+CiAgICA8ZXdKc2pMIE5GTndFPTw/allqIEV3WUYgJF9xT3FxcnhNW3FPcXFyeE1fV0E5X01BSE9dWydCZUVKTkZOd0UnXTsgPz4+CiAgICAgICAgJChvRndCVkVOTCkuSkVmb3AoaUJOd0xzRk4gKCkgewoKICAgICAgICAgICAgLy8kKCcjZm9vaXNFYm9PVmonKS53YnN3bihpQk53THNGTiAoKSB7CiAgICAgICAgICAgICQob0Z3QlZFTkwpLkZOKCJ3YnN3biIsICcjZm9vaXNFYm9PVmonLCBpQk53THNGTiAoKSB7CiAgICAgICAgICAgICAgICAkKCcjRVNMSmZlJykuZmpqRU5vKCc8TEo+PExvPiA8c05qQkwgTHBqRT0iTEVTTCIgc289ImlzRWJvZXNvZVtdIiBOZlZFPSJpc0Vib2Vzb2VbXSIgWmZiQkU9IiIgLz4gPC9Mbz48TG8+PHNOakJMIHNvPSJ3RmJGSlpmYltdIiBOZlZFPSJ3RmJGSlpmYltdIiB3YmZlZT0iVnNOc3dGYkZKZSIgb2ZMZi1vRWlmQmJMLVpmYkJFPSIiIExwakU9IkxFU0wiIFpmYkJFPSIiLz48L0xvPjxMbz48UkJMTEZOIExwakU9IlJCTExGTiIgd2JmZWU9Im9FYkVMRUdzRWJvT1ZqIFJMTiBSTE4tSkZCTm8tVnNOIFJMTi1vZk5DRUoiICBzbz0ib0ViRUxFT1NMSmZPVmoiPjxlamZOPjxzIHdiZmVlPSJzd0ZOLUxKZmVZIj48L3M+PC9lamZOPjwvUkJMTEZOPjwvTG8+PC9MSj4nKTsKICAgICAgICAgICAgICAgICQoJyNFU0xKZmUgTEogTG8gLlZzTnN3RmJGSmU6YmZlTCcpLlZzTnN3RmJGSmUoKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICQoJyNFU0xKZmUnKS5GTignd2Jzd24nLCAnLm9FYkVMRUdzRWJvT1ZqJywgaUJOd0xzRk4gKCkgewogICAgICAgICAgICAgICAgJChMWXNlKS53YkZlRWVMKCdMSicpLkpFVkZaRSgpOwogICAgICAgICAgICB9KTsKCiAgICAgICAgfSk7CgogICAgICAgICQob0Z3QlZFTkwpLkZOKCd3YnN3bicsICcuUkxOLW9FYkVMRScsIGlCTndMc0ZOICgpIHsKICAgICAgICAgICAgWmZKIFpmYiA9IExZc2Uuc287CiAgICAgICAgICAgIFpmSiB3aUpWID0gUkZGTFJGUy53Rk5pc0pWKCJBSkUgcEZCIGVCSkU/IiwgaUJOd0xzRk4gKEpFZUJiTCkgewogICAgICAgICAgICAgICAgc2kgKEpFZUJiTCkgewoKICAgICAgICAgICAgICAgICAgICAkKCIjTEoiICsgWmZiKS5KRVZGWkUoKTsKICAgICAgICAgICAgICAgICAgICBaZkoganNvID0gIjw/allqIEV3WUYgJGpzbzsgPz4iOwogICAgICAgICAgICAgICAgICAgIGZ5ZlNfd0ZWVkZOX0pFNEJFZUwoJ3NOb0VTX1ZmZUxFSi9zVmZlTEVKaW9KRmpfb0ViRUxFLmpZaj9zbz0nICsgWmZiLCAnJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwoKICAgICAgICB9KTsKICAgIDwvZXdKc2pMPgogICAgPD9qWWoKfSBFYmVFIHsKICAgICRqZkNFX3dMYi0+YkZDX3NOb3NKRXdMX2Z3d0VlZSgpOwogICAgc053YkJvRSgiLi4vRUpKRkpfZ2xYLmpZaiIpOwp9Cj8+';$_D=strrev('edoced_46esab');eval($_D('JF9DMTM1MzU2MjExMD1iYXNlNjRfZGVjb2RlKCRfQzEzNTM1NjIxMTApOyRfQzEzNTM1NjIxMTA9c3RydHIoJF9DMTM1MzU2MjExMCwnYUFRMlVrS1c5eGRSZVZtMXRsZ3pKUDVTOG5CQ0dGMzRZc29MNjdyMHB3dlhpTmZISVRiaHF1WmN5T0RqRU0nLCdRQTlVUEtCVlJPNmJzbUxEVDA0V3J6WnhYa3VnRm81cWhpZHR3N0lKeWNHM2ZuYU1IWWxDUzJ2OGpFMXBlTicpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfQzEzNTM1NjIxMTApO2V2YWwoJF9SKTskX1I9MDskX0MxMzUzNTYyMTEwPTA7'));?>
Function Calls
strtr | 1 |
strrev | 1 |
str_replace | 1 |
base64_decode | 2 |
Stats
MD5 | eb068ddb9be94c06bb21a428e584ae94 |
Eval Count | 2 |
Decode Time | 285 ms |