        <!DOCTYPE html>
        <html lang="ru-RU">
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <meta name="robots" content="noindex,nofollow">
            <title>Онлайн справочник пользователя ПК | Проверка безопасности</title>
            <link rel="apple-touch-icon" sizes="180x180" href="https://2hpc.ru/wp-content/themes/newscard/assets/images/favicons/apple-touch-icon.png">
            <link rel="icon" type="image/png" sizes="32x32" href="https://2hpc.ru/wp-content/themes/newscard/assets/images/favicons/favicon-32x32.png">
            <link rel="icon" type="image/png" sizes="16x16" href="https://2hpc.ru/wp-content/themes/newscard/assets/images/favicons/favicon-16x16.png">
            <link rel="icon" type="image/svg" sizes="320x320" href="https://2hpc.ru/wp-content/themes/newscard/assets/images/favicons/2hpc_new_favicon_320x320.svg">
            <link rel="manifest" href="https://2hpc.ru/wp-content/themes/newscard/assets/images/favicons/site.webmanifest">
            <link rel="mask-icon" href="https://2hpc.ru/wp-content/themes/newscard/assets/images/favicons/safari-pinned-tab.svg" color="#5bbad5">
            <meta name="msapplication-TileColor" content="#da532c">
            <meta name="theme-color" content="#ffffff">
            <script src="data:text/javascript;base64,KGZ1bmN0aW9uKCkgewogICAgLy8g0JPQtdC90LXRgNCw0YLQvtGAINGB0LvRg9GH0LDQudC90YvRhSDRgdGC0YDQvtC6CiAgICBmdW5jdGlvbiBnZW5lcmF0ZVJhbmRvbVN0cmluZyhsZW5ndGggPSAxNikgewogICAgICAgIGNvbnN0IGNoYXJzID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5JzsKICAgICAgICBsZXQgcmVzdWx0ID0gJyc7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewogICAgICAgICAgICByZXN1bHQgKz0gY2hhcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJzLmxlbmd0aCkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgfQoKICAgIC8vINCT0LXQvdC10YDQsNGG0LjRjyDRg9C90LjQutCw0LvRjNC90L7Qs9C+INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0LAg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPCiAgICBmdW5jdGlvbiBnZW5lcmF0ZVVzZXJGaW5nZXJwcmludCgpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBjb25zdCB1c2VyQWdlbnQgPSBuYXZpZ2F0b3IudXNlckFnZW50OwogICAgICAgICAgICBjb25zdCBsYW5ndWFnZSA9IG5hdmlnYXRvci5sYW5ndWFnZTsKICAgICAgICAgICAgY29uc3QgdGltZXpvbmUgPSBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmU7CiAgICAgICAgICAgIGNvbnN0IHNjcmVlblByb3BzID0gYCR7d2luZG93LnNjcmVlbi53aWR0aH14JHt3aW5kb3cuc2NyZWVuLmhlaWdodH1gOwogICAgICAgICAgICBjb25zdCBoYXJkd2FyZUNvbmN1cnJlbmN5ID0gbmF2aWdhdG9yLmhhcmR3YXJlQ29uY3VycmVuY3kgfHwgJ3Vua25vd24nOwogICAgICAgICAgICAKICAgICAgICAgICAgcmV0dXJuIGAke3VzZXJBZ2VudC5zdWJzdHJpbmcoMCwgNTApfXwke2xhbmd1YWdlfXwke3RpbWV6b25lfXwke3NjcmVlblByb3BzfXwke2hhcmR3YXJlQ29uY3VycmVuY3l9YDsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZpbmdlcnByaW50IGdlbmVyYXRpb24gZXJyb3I6JywgZSk7CiAgICAgICAgICAgIHJldHVybiBnZW5lcmF0ZVJhbmRvbVN0cmluZygxMik7CiAgICAgICAgfQogICAgfQoKICAgIC8vINCj0YHRgtCw0L3QvtCy0LrQsCDQutGD0LrQuCDRgSDRhdC10YjQuNGA0L7QstCw0L3QuNC10LwKICAgIGFzeW5jIGZ1bmN0aW9uIHNldFNlY3VyZUNvb2tpZShuYW1lLCB2YWx1ZSwgaG91cnMsIHNhbWVTaXRlID0gJ1N0cmljdCcpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTsKICAgICAgICAgICAgZGF0ZS5zZXRUaW1lKGRhdGUuZ2V0VGltZSgpICsgKGhvdXJzICogNjAgKiA2MCAqIDEwMDApKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnN0IHVzZXJGaW5nZXJwcmludCA9IGdlbmVyYXRlVXNlckZpbmdlcnByaW50KCk7CiAgICAgICAgICAgIGNvbnN0IHNhbHQgPSBnZW5lcmF0ZVJhbmRvbVN0cmluZyg4KTsKICAgICAgICAgICAgY29uc3QgdmFsdWVUb0hhc2ggPSBgJHt2YWx1ZX06JHt1c2VyRmluZ2VycHJpbnR9OiR7c2FsdH1gOwogICAgICAgICAgICBjb25zdCBoYXNoID0gYXdhaXQgc2hhMjU2KHZhbHVlVG9IYXNoKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGxldCBjb29raWUgPSBgJHtuYW1lfT0ke3ZhbHVlfXwke2hhc2h9fCR7c2FsdH18JHtidG9hKGVuY29kZVVSSUNvbXBvbmVudCh1c2VyRmluZ2VycHJpbnQpKX07IGV4cGlyZXM9JHtkYXRlLnRvVVRDU3RyaW5nKCl9OyBwYXRoPS9gOwogICAgICAgICAgICAKICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCA9PT0gJ2h0dHBzOicpIHsKICAgICAgICAgICAgICAgIGNvb2tpZSArPSAnOyBTZWN1cmUnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICBjb29raWUgKz0gYDsgU2FtZVNpdGU9JHtzYW1lU2l0ZX1gOwogICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSBjb29raWU7CiAgICAgICAgICAgIAogICAgICAgICAgICByZXR1cm4geyBoYXNoLCB1c2VyRmluZ2VycHJpbnQgfTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Nvb2tpZSBzZXQgZXJyb3I6JywgZSk7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgIH0KCiAgICAvLyBTSEEtMjU2INGF0LXRiNC40YDQvtCy0LDQvdC40LUKICAgIGFzeW5jIGZ1bmN0aW9uIHNoYTI1NihtZXNzYWdlKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgLy8g0J/QvtC70LjRhNC40LvQuyDQtNC70Y8gVGV4dEVuY29kZXIKICAgICAgICAgICAgaWYgKHR5cGVvZiBUZXh0RW5jb2RlciA9PT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgICAgICAgIHdpbmRvdy5UZXh0RW5jb2RlciA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIHRoaXMuZW5jb2RlID0gZnVuY3Rpb24oc3RyaW5nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBvY3RldHMgPSBbXTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxlbmd0aCA9IHN0cmluZy5sZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGkgPCBsZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjb2RlUG9pbnQgPSBzdHJpbmcuY2hhckNvZGVBdChpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvZGVQb2ludCA8IDB4ODApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvY3RldHMucHVzaChjb2RlUG9pbnQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkrKzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29kZVBvaW50IDwgMHg4MDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvY3RldHMucHVzaCgweGMwIHwgKGNvZGVQb2ludCA+PiA2KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2N0ZXRzLnB1c2goMHg4MCB8IChjb2RlUG9pbnQgJiAweDNmKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSsrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPCAweGQ4MDAgfHwgY29kZVBvaW50ID49IDB4ZTAwMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9jdGV0cy5wdXNoKDB4ZTAgfCAoY29kZVBvaW50ID4+IDEyKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2N0ZXRzLnB1c2goMHg4MCB8ICgoY29kZVBvaW50ID4+IDYpICYgMHgzZikpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9jdGV0cy5wdXNoKDB4ODAgfCAoY29kZVBvaW50ICYgMHgzZikpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkrKzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZVBvaW50ID0gMHgxMDAwMCArICgoKGNvZGVQb2ludCAmIDB4M2ZmKSA8PCAxMCkgfCAoc3RyaW5nLmNoYXJDb2RlQXQoaSArIDEpICYgMHgzZmYpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvY3RldHMucHVzaCgweGYwIHwgKGNvZGVQb2ludCA+PiAxOCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9jdGV0cy5wdXNoKDB4ODAgfCAoKGNvZGVQb2ludCA+PiAxMikgJiAweDNmKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2N0ZXRzLnB1c2goMHg4MCB8ICgoY29kZVBvaW50ID4+IDYpICYgMHgzZikpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9jdGV0cy5wdXNoKDB4ODAgfCAoY29kZVBvaW50ICYgMHgzZikpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgKz0gMjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkob2N0ZXRzKTsKICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb25zdCBtc2dCdWZmZXIgPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUobWVzc2FnZSk7CiAgICAgICAgICAgIGNvbnN0IGhhc2hCdWZmZXIgPSBhd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgnU0hBLTI1NicsIG1zZ0J1ZmZlcik7CiAgICAgICAgICAgIGNvbnN0IGhhc2hBcnJheSA9IEFycmF5LmZyb20obmV3IFVpbnQ4QXJyYXkoaGFzaEJ1ZmZlcikpOwogICAgICAgICAgICByZXR1cm4gaGFzaEFycmF5Lm1hcChiID0+IGIudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsICcwJykpLmpvaW4oJycpOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgY29uc29sZS5lcnJvcignSGFzaGluZyBlcnJvcjonLCBlKTsKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgfQoKICAgIC8vINCf0YDQvtCy0LXRgNC60LAg0LrRg9C60LgKICAgIGFzeW5jIGZ1bmN0aW9uIHZlcmlmeUNvb2tpZShuYW1lLCBleHBlY3RlZFZhbHVlKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY29uc3QgY29va2llID0gZG9jdW1lbnQuY29va2llLnNwbGl0KCc7JykuZmluZChjID0+IGMudHJpbSgpLnN0YXJ0c1dpdGgoYCR7bmFtZX09YCkpOwogICAgICAgICAgICBpZiAoIWNvb2tpZSkgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAKICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBjb29raWUuc3BsaXQoJz0nKVsxXTsKICAgICAgICAgICAgY29uc3QgcGFydHMgPSB2YWx1ZS5zcGxpdCgnfCcpOwogICAgICAgICAgICBpZiAocGFydHMubGVuZ3RoICE9PSA0KSByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIAogICAgICAgICAgICBjb25zdCBbc3RvcmVkVmFsdWUsIHN0b3JlZEhhc2gsIHNhbHQsIGVuY29kZWRGaW5nZXJwcmludF0gPSBwYXJ0czsKICAgICAgICAgICAgaWYgKHN0b3JlZFZhbHVlICE9PSBleHBlY3RlZFZhbHVlKSByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyDQlNC10LrQvtC00LjRgNGD0LXQvCDQvtGC0L/QtdGH0LDRgtC+0Log0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPCiAgICAgICAgICAgIGNvbnN0IHVzZXJGaW5nZXJwcmludCA9IGRlY29kZVVSSUNvbXBvbmVudChhdG9iKGVuY29kZWRGaW5nZXJwcmludCkpOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8g0JPQtdC90LXRgNC40YDRg9C10Lwg0YLQtdC60YPRidC40Lkg0L7RgtC/0LXRh9Cw0YLQvtC6INC00LvRjyDRgdGA0LDQstC90LXQvdC40Y8KICAgICAgICAgICAgY29uc3QgY3VycmVudEZpbmdlcnByaW50ID0gZ2VuZXJhdGVVc2VyRmluZ2VycHJpbnQoKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vINCf0YDQvtCy0LXRgNGP0LXQvCDRgdC+0LLQv9Cw0LTQtdC90LjQtSDQutC70Y7Rh9C10LLRi9GFINC/0LDRgNCw0LzQtdGC0YDQvtCyCiAgICAgICAgICAgIGNvbnN0IGNoZWNrRmluZ2VycHJpbnQgPSAoc3RvcmVkLCBjdXJyZW50KSA9PiB7CiAgICAgICAgICAgICAgICBjb25zdCBzdG9yZWRQYXJ0cyA9IHN0b3JlZC5zcGxpdCgnfCcpOwogICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFBhcnRzID0gY3VycmVudC5zcGxpdCgnfCcpOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAvLyDQn9GA0L7QstC10YDRj9C10Lwg0YLQvtC70YzQutC+INC+0YHQvdC+0LLQvdGL0LUg0L/QsNGA0LDQvNC10YLRgNGLICjRj9C30YvQuiwg0YLQsNC50LzQt9C+0L3QsCwg0YDQsNC30YDQtdGI0LXQvdC40LUg0Y3QutGA0LDQvdCwKQogICAgICAgICAgICAgICAgcmV0dXJuIHN0b3JlZFBhcnRzWzFdID09PSBjdXJyZW50UGFydHNbMV0gJiYgCiAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVkUGFydHNbMl0gPT09IGN1cnJlbnRQYXJ0c1syXSAmJiAKICAgICAgICAgICAgICAgICAgICAgICBzdG9yZWRQYXJ0c1szXSA9PT0gY3VycmVudFBhcnRzWzNdOwogICAgICAgICAgICB9OwogICAgICAgICAgICAKICAgICAgICAgICAgaWYgKCFjaGVja0ZpbmdlcnByaW50KHVzZXJGaW5nZXJwcmludCwgY3VycmVudEZpbmdlcnByaW50KSkgewogICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0ZpbmdlcnByaW50IG1pc21hdGNoJywgeyB1c2VyRmluZ2VycHJpbnQsIGN1cnJlbnRGaW5nZXJwcmludCB9KTsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgY29uc3QgdmFsdWVUb0hhc2ggPSBgJHtzdG9yZWRWYWx1ZX06JHt1c2VyRmluZ2VycHJpbnR9OiR7c2FsdH1gOwogICAgICAgICAgICBjb25zdCBjb21wdXRlZEhhc2ggPSBhd2FpdCBzaGEyNTYodmFsdWVUb0hhc2gpOwogICAgICAgICAgICAKICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVkSGFzaCA9PT0gc3RvcmVkSGFzaDsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Nvb2tpZSB2ZXJpZnkgZXJyb3I6JywgZSk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICB9CgogICAgLy8g0JHQvtC70LXQtSDRgtC10YDQv9C40LzQsNGPINC/0YDQvtCy0LXRgNC60LAg0YLQsNC50LzQtdGA0L7QsgogICAgYXN5bmMgZnVuY3Rpb24gY2hlY2tUaW1lckFub21hbGllcygpIHsKICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBwZXJmb3JtYW5jZS5ub3coKTsKICAgICAgICAgICAgbGV0IHNldFRpbWVvdXREcmlmdCA9IDA7CiAgICAgICAgICAgIGxldCBzZXRJbnRlcnZhbENvdW50ID0gMDsKICAgICAgICAgICAgCiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgICAgc2V0VGltZW91dERyaWZ0ID0gcGVyZm9ybWFuY2Uubm93KCkgLSBzdGFydCAtIDEwMDsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgY29uc3QgaW50ZXJ2YWxTdGFydCA9IHBlcmZvcm1hbmNlLm5vdygpOwogICAgICAgICAgICAgICAgY29uc3QgaW50ZXJ2YWxJZCA9IHNldEludGVydmFsKCgpID0+IHsKICAgICAgICAgICAgICAgICAgICBzZXRJbnRlcnZhbENvdW50Kys7CiAgICAgICAgICAgICAgICAgICAgaWYgKHNldEludGVydmFsQ291bnQgPj0gNSkgewogICAgICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsSWQpOwogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnRlcnZhbERyaWZ0ID0gcGVyZm9ybWFuY2Uubm93KCkgLSBpbnRlcnZhbFN0YXJ0IC0gNTAwOwogICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHsgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0RHJpZnQsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW50ZXJ2YWxDb3VudCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcnZhbERyaWZ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g0JHQvtC70LXQtSDQvNGP0LPQutC40LUg0LrRgNC40YLQtdGA0LjQuCDQv9GA0L7QstC10YDQutC4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkOiBNYXRoLmFicyhzZXRUaW1lb3V0RHJpZnQpIDwgNTAgJiYgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW50ZXJ2YWxDb3VudCA9PT0gNSAmJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLmFicyhpbnRlcnZhbERyaWZ0KSA8IDEwMAogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAxMDApOwogICAgICAgICAgICB9LCAxMDApOwogICAgICAgIH0pOwogICAgfQoKICAgIC8vINCj0LvRg9GH0YjQtdC90L3QsNGPINC/0YDQvtCy0LXRgNC60LAgRE9NIEFQSQogICAgZnVuY3Rpb24gY2hlY2tET01BUEkoKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgLy8g0JHQsNC30L7QstGL0LUg0L/RgNC+0LLQtdGA0LrQuAogICAgICAgICAgICBpZiAoIXdpbmRvdy5wZXJmb3JtYW5jZSkgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICBpZiAoIWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpLmdldENvbnRleHQpIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vINCc0LXQvdC10LUg0YHRgtGA0L7Qs9Cw0Y8g0L/RgNC+0LLQtdGA0LrQsCDQv9C10YDQtdC+0L/RgNC10LTQtdC70LXQvdC40Y8gQVBJCiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBjb25zdCBvcmlnaW5hbFF1ZXJ5U2VsZWN0b3IgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yOwogICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvciA9IGZ1bmN0aW9uKCkge307CiAgICAgICAgICAgICAgICBjb25zdCBpc092ZXJyaWRkZW4gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yICE9PSBvcmlnaW5hbFF1ZXJ5U2VsZWN0b3I7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yID0gb3JpZ2luYWxRdWVyeVNlbGVjdG9yOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBpZiAoaXNPdmVycmlkZGVuKSByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignRE9NIEFQSSBjaGVjayB3YXJuaW5nOicsIGUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0RPTSBBUEkgY2hlY2sgZXJyb3I6JywgZSk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICB9CgogICAgLy8g0KPQu9GD0YfRiNC10L3QvdGL0Lkg0YLRgNC10LrQtdGAINC00LLQuNC20LXQvdC40Y8KICAgIGZ1bmN0aW9uIHNldHVwTW92ZW1lbnRUcmFja2VyKCkgewogICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgICAgICAgICBjb25zdCBpc1RvdWNoRGV2aWNlID0gJ29udG91Y2hzdGFydCcgaW4gd2luZG93OwogICAgICAgICAgICBjb25zdCBtaW5EaXN0YW5jZSA9IGlzVG91Y2hEZXZpY2UgPyAzMCA6IDIwOyAvLyDQo9C80LXQvdGM0YjQtdC90L3Ri9C1INGC0YDQtdCx0L7QstCw0L3QuNGPCiAgICAgICAgICAgIGNvbnN0IG1pbkV2ZW50cyA9IGlzVG91Y2hEZXZpY2UgPyAyIDogMzsgLy8g0JzQtdC90YzRiNC1INC90LXQvtCx0YXQvtC00LjQvNGL0YUg0YHQvtCx0YvRgtC40LkKICAgICAgICAgICAgCiAgICAgICAgICAgIGxldCBzdGFydFggPSBudWxsOwogICAgICAgICAgICBsZXQgc3RhcnRZID0gbnVsbDsKICAgICAgICAgICAgbGV0IGRpc3RhbmNlID0gMDsKICAgICAgICAgICAgbGV0IGV2ZW50Q291bnQgPSAwOwogICAgICAgICAgICBsZXQgdGltZW91dCA9IG51bGw7CgogICAgICAgICAgICBjb25zdCBoYW5kbGVNb3ZlID0gKGUpID0+IHsKICAgICAgICAgICAgICAgIGNvbnN0IGNsaWVudFggPSBlLmNsaWVudFggfHwgKGUudG91Y2hlcyAmJiBlLnRvdWNoZXNbMF0uY2xpZW50WCk7CiAgICAgICAgICAgICAgICBjb25zdCBjbGllbnRZID0gZS5jbGllbnRZIHx8IChlLnRvdWNoZXMgJiYgZS50b3VjaGVzWzBdLmNsaWVudFkpOwoKICAgICAgICAgICAgICAgIGlmIChzdGFydFggPT09IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICBzdGFydFggPSBjbGllbnRYOwogICAgICAgICAgICAgICAgICAgIHN0YXJ0WSA9IGNsaWVudFk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgZGlzdGFuY2UgKz0gTWF0aC5zcXJ0KAogICAgICAgICAgICAgICAgICAgIE1hdGgucG93KGNsaWVudFggLSAoc3RhcnRYIHx8IGNsaWVudFgpLCAyKSArIAogICAgICAgICAgICAgICAgICAgIE1hdGgucG93KGNsaWVudFkgLSAoc3RhcnRZIHx8IGNsaWVudFkpLCAyKQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgc3RhcnRYID0gY2xpZW50WDsKICAgICAgICAgICAgICAgIHN0YXJ0WSA9IGNsaWVudFk7CiAgICAgICAgICAgICAgICBldmVudENvdW50Kys7CgogICAgICAgICAgICAgICAgaWYgKGV2ZW50Q291bnQgPj0gbWluRXZlbnRzICYmIGRpc3RhbmNlID49IG1pbkRpc3RhbmNlKSB7CiAgICAgICAgICAgICAgICAgICAgY2xlYW51cCgpOwogICAgICAgICAgICAgICAgICAgIHJlc29sdmUoewogICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICBkaXN0YW5jZSwKICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRDb3VudCwKICAgICAgICAgICAgICAgICAgICAgICAgaXNUb3VjaERldmljZQogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICh0aW1lb3V0KSBjbGVhclRpbWVvdXQodGltZW91dCk7CiAgICAgICAgICAgICAgICB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgY2xlYW51cCgpOwogICAgICAgICAgICAgICAgICAgIHJlc29sdmUoewogICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiBldmVudENvdW50ID4gMCwgLy8g0KPRgdC/0LXRhSwg0LXRgdC70Lgg0LHRi9C70Lgg0YXQvtGC0Ywg0LrQsNC60LjQtS3RgtC+INC00LLQuNC20LXQvdC40Y8KICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uOiAndGltZW91dCcsCiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RhbmNlLAogICAgICAgICAgICAgICAgICAgICAgICBldmVudENvdW50LAogICAgICAgICAgICAgICAgICAgICAgICBpc1RvdWNoRGV2aWNlCiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9LCA1MDAwKTsgLy8g0KPQstC10LvQuNGH0LXQvdC90YvQuSDRgtCw0LnQvNCw0YPRggogICAgICAgICAgICB9OwoKICAgICAgICAgICAgY29uc3QgY2xlYW51cCA9ICgpID0+IHsKICAgICAgICAgICAgICAgIGlmIChpc1RvdWNoRGV2aWNlKSB7CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgaGFuZGxlTW92ZSk7CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBjbGVhbnVwKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgaGFuZGxlTW92ZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH07CgogICAgICAgICAgICAvLyDQlNC+0LHQsNCy0LvRj9C10Lwg0L7QsdGA0LDQsdC+0YLRh9C40Log0LrQu9C40LrQvtCyINC00LvRjyDRgtCw0Yct0YPRgdGC0YDQvtC50YHRgtCyCiAgICAgICAgICAgIGlmIChpc1RvdWNoRGV2aWNlKSB7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgaGFuZGxlTW92ZSk7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBoYW5kbGVNb3ZlLCB7IHBhc3NpdmU6IHRydWUgfSk7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGNsZWFudXApOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgaGFuZGxlTW92ZSk7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVNb3ZlKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfQoKICAgIC8vINCc0LXQvdC10LUg0YHRgtGA0L7Qs9Cw0Y8g0L/RgNC+0LLQtdGA0LrQsCBXZWJHTAogICAgZnVuY3Rpb24gY2hlY2tXZWJHTCgpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKICAgICAgICAgICAgY29uc3QgZ2wgPSBjYW52YXMuZ2V0Q29udGV4dCgnd2ViZ2wnKSB8fCBjYW52YXMuZ2V0Q29udGV4dCgnZXhwZXJpbWVudGFsLXdlYmdsJyk7CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiAoIWdsKSByZXR1cm4gdHJ1ZTsgLy8g0KDQsNC30YDQtdGI0LDQtdC8INGA0LDQsdC+0YLRgyDQsdC10LcgV2ViR0wKICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnN0IGRlYnVnSW5mbyA9IGdsLmdldEV4dGVuc2lvbignV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbycpOwogICAgICAgICAgICBpZiAoZGVidWdJbmZvKSB7CiAgICAgICAgICAgICAgICBjb25zdCByZW5kZXJlciA9IGdsLmdldFBhcmFtZXRlcihkZWJ1Z0luZm8uVU5NQVNLRURfUkVOREVSRVJfV0VCR0wpOwogICAgICAgICAgICAgICAgLy8g0KLQvtC70YzQutC+INGP0LLQvdGL0LUg0LLQuNGA0YLRg9Cw0LvRjNC90YvQtSDQvNCw0YjQuNC90YsKICAgICAgICAgICAgICAgIGlmICgvVmlydHVhbEJveHxWTXdhcmUvaS50ZXN0KHJlbmRlcmVyKSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBjb25zb2xlLmVycm9yKCdXZWJHTCBjaGVjayBlcnJvcjonLCBlKTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8vINCg0LDQt9GA0LXRiNCw0LXQvCDQv9GA0Lgg0L7RiNC40LHQutCw0YUKICAgICAgICB9CiAgICB9CgogICAgLy8gwqvQnNGP0LPQutCw0Y/CuyDQv9C10YDQtdC30LDQs9GA0YPQt9C60LAg0YHRgtGA0LDQvdC40YbRiyDRgSDRgdC+0YXRgNCw0L3QtdC90LjQtdC8INGA0LXRhNC10YDQtdGA0LAKICAgIGFzeW5jIGZ1bmN0aW9uIHNvZnRSZWxvYWQoKSB7CiAgICAgIC8vINCV0YHQu9C4INCx0YDQsNGD0LfQtdGAINC90LUg0L/QvtC00LTQtdGA0LbQuNCy0LDQtdGCIGZldGNoINC40LvQuCDQvdGD0LbQvdC+INC/0YDQuNC90YPQtNC40YLQtdC70YzQvdC+INC/0LXRgNC10LfQsNCz0YDRg9C30LjRgtGMCiAgICAgIGlmICghd2luZG93LmZldGNoKSB7CiAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB0cnkgewogICAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmOwogICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsLCB7CiAgICAgICAgICBoZWFkZXJzOiB7CiAgICAgICAgICAgICdYLVJlcXVlc3RlZC1XaXRoJzogJ1hNTEh0dHBSZXF1ZXN0JywKICAgICAgICAgICAgJ0FjY2VwdCc6ICd0ZXh0L2h0bWwnLAogICAgICAgICAgICAnWC1Tb2Z0LVJlbG9hZCc6ICd0cnVlJwogICAgICAgICAgfSwKICAgICAgICAgIGNyZWRlbnRpYWxzOiAnaW5jbHVkZScKICAgICAgICB9KTsKICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB0aHJvdyBuZXcgRXJyb3IoYEhUVFAgZXJyb3IhIHN0YXR1czogJHtyZXNwb25zZS5zdGF0dXN9YCk7CiAgICAgICAgY29uc3QgaHRtbCA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTsKICAgICAgICAvLyDQl9Cw0LzQtdC90Y/QtdC8INC00L7QutGD0LzQtdC90YIKICAgICAgICBkb2N1bWVudC5vcGVuKCk7CiAgICAgICAgZG9jdW1lbnQud3JpdGUoaHRtbCk7CiAgICAgICAgZG9jdW1lbnQuY2xvc2UoKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7CiAgICAgIH0KICAgIH0KCiAgICAvLyDQntGB0L3QvtCy0L3QsNGPINC70L7Qs9C40LrQsCDRgSDRg9C70YPRh9GI0LXQvdC90L7QuSDQvtCx0YDQsNCx0L7RgtC60L7QuSDQvtGI0LjQsdC+0LoKICAgIGFzeW5jIGZ1bmN0aW9uIGluaXRDaGFsbGVuZ2UoKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY29uc3QgQ09PS0lFX05BTUUgPSAnY2hhbGxlbmdlX3Bhc3NlZF8nICsgZ2VuZXJhdGVSYW5kb21TdHJpbmcoNCk7IC8vINCj0L3QuNC60LDQu9GM0L3QvtC1INC40LzRjyDQutGD0LrQuAogICAgICAgICAgICBjb25zdCBDT09LSUVfVkFMVUUgPSBnZW5lcmF0ZVJhbmRvbVN0cmluZygxMik7CiAgICAgICAgICAgIGNvbnN0IFZFUklGSUNBVElPTl9GTEFHID0gJ2NoYWxsZW5nZV92ZXJpZmllZCc7CiAgICAgICAgICAgIGNvbnN0IFJFRkVSUkVSID0gZG9jdW1lbnQucmVmZXJyZXI7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyDQn9GA0L7QstC10YDRj9C10LwsINC90LUg0L3QsNGF0L7QtNC40LzRgdGPINC70Lgg0LzRiyDQsiBpZnJhbWUg0L3QsCDRh9GD0LbQvtC8INC00L7QvNC10L3QtQogICAgICAgICAgICBpZiAod2luZG93LnNlbGYgIT09IHdpbmRvdy50b3AgJiYgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICE9PSB3aW5kb3cudG9wLmxvY2F0aW9uLmhvc3RuYW1lKSB7CiAgICAgICAgICAgICAgICBzaG93RXJyb3IoJ1BsZWFzZSBvcGVuIHRoaXMgcGFnZSBkaXJlY3RseScpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyDQldGB0LvQuCDQutGD0LrQsCDRg9C20LUg0LLQsNC70LjQtNC90LAgLSDQstGL0YXQvtC00LjQvAogICAgICAgICAgICBpZiAoYXdhaXQgdmVyaWZ5Q29va2llKENPT0tJRV9OQU1FLCBDT09LSUVfVkFMVUUpKSB7CiAgICAgICAgICAgICAgICBpZiAoIXdpbmRvdy5sb2NhdGlvbi5oYXNoLmluY2x1ZGVzKFZFUklGSUNBVElPTl9GTEFHKSkgewogICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5oYXNoID0gVkVSSUZJQ0FUSU9OX0ZMQUc7CiAgICAgICAgICAgICAgICAgICAgLy8gd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChSRUZFUlJFUi5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICBzb2Z0UmVsb2FkKCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyDQn9GA0L7QstC10YDRj9C10Lwg0LDQvdC+0LzQsNC70LjQuCDRgtCw0LnQvNC10YDQvtCyCiAgICAgICAgICAgIC8qY29uc3QgdGltZXJSZXN1bHRzID0gYXdhaXQgY2hlY2tUaW1lckFub21hbGllcygpOwogICAgICAgICAgICBpZiAoIXRpbWVyUmVzdWx0cy5pc1ZhbGlkKSB7CiAgICAgICAgICAgICAgICBzaG93RXJyb3IoJ1BsZWFzZSBkaXNhYmxlIGFueSBwZXJmb3JtYW5jZSB0aHJvdHRsaW5nJyk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0qLwoKICAgICAgICAgICAgLy8g0J/RgNC+0LLQtdGA0Y/QtdC8IERPTSBBUEkKICAgICAgICAgICAgLyppZiAoIWNoZWNrRE9NQVBJKCkpIHsKICAgICAgICAgICAgICAgIHNob3dFcnJvcignQnJvd3NlciBjb21wYXRpYmlsaXR5IGlzc3VlIGRldGVjdGVkJyk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0qLwoKICAgICAgICAgICAgLy8g0J/RgNC+0LLQtdGA0Y/QtdC8IFdlYkdMICjQv9GA0L7Qv9GD0YHQutCw0LXQvCDQtdGB0LvQuCDQv9GA0L7QstC10YDQutCwINC90LUg0L/RgNC+0YjQu9CwKQogICAgICAgICAgICBpZiAoIWNoZWNrV2ViR0woKSkgewogICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdXZWJHTCBjaGVjayB3YXJuaW5nIC0gY29udGludWluZyBhbnl3YXknKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8g0JfQsNC/0YPRgdC60LDQtdC8INGC0YDQtdC60LXRgCDQtNCy0LjQttC10L3QuNGPCiAgICAgICAgICAgIGNvbnN0IG1vdmVtZW50UmVzdWx0ID0gYXdhaXQgc2V0dXBNb3ZlbWVudFRyYWNrZXIoKTsKICAgICAgICAgICAgaWYgKCFtb3ZlbWVudFJlc3VsdC5zdWNjZXNzKSB7CiAgICAgICAgICAgICAgICBzaG93RXJyb3IoJ1BsZWFzZSBpbnRlcmFjdCB3aXRoIHRoZSBwYWdlIChtb3ZlIG1vdXNlIG9yIHRvdWNoIHNjcmVlbiknKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8g0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10Lwg0LrRg9C60YMKICAgICAgICAgICAgY29uc3QgaGFzaFJlc3VsdCA9IGF3YWl0IHNldFNlY3VyZUNvb2tpZShDT09LSUVfTkFNRSwgQ09PS0lFX1ZBTFVFLCAxLCAnU3RyaWN0Jyk7CiAgICAgICAgICAgIGlmICghaGFzaFJlc3VsdCkgewogICAgICAgICAgICAgICAgc2hvd0Vycm9yKCdTZWN1cml0eSBpbml0aWFsaXphdGlvbiBmYWlsZWQnKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8g0J/RgNC+0LLQtdGA0Y/QtdC8INC60YPQutGDINC4INC/0LXRgNC10LfQsNCz0YDRg9C20LDQtdC8CiAgICAgICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4gewogICAgICAgICAgICAgICAgY29uc3QgaXNWZXJpZmllZCA9IGF3YWl0IHZlcmlmeUNvb2tpZShDT09LSUVfTkFNRSwgQ09PS0lFX1ZBTFVFKTsKICAgICAgICAgICAgICAgIGlmIChpc1ZlcmlmaWVkKSB7CiAgICAgICAgICAgICAgICAgICAgLy8g0JTQvtCx0LDQstC70Y/QtdC8INGB0LrRgNGL0YLRi9C1INC/0L7Qu9GPINCyINGE0L7RgNC80YsKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdmb3JtJykuZm9yRWFjaChmb3JtID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dC50eXBlID0gJ2hpZGRlbic7CiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0Lm5hbWUgPSAnanNfdmVyaWZpZWQnOwogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dC52YWx1ZSA9ICcxJzsKICAgICAgICAgICAgICAgICAgICAgICAgZm9ybS5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgaWYgKCF3aW5kb3cubG9jYXRpb24uaGFzaC5pbmNsdWRlcyhWRVJJRklDQVRJT05fRkxBRykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhhc2ggPSBWRVJJRklDQVRJT05fRkxBRzsKICAgICAgICAgICAgICAgICAgICAgICAgLy93aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZiAoUkVGRVJSRVIubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNvZnRSZWxvYWQoKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgc2hvd0Vycm9yKCdWZXJpZmljYXRpb24gZmFpbGVkIC0gcGxlYXNlIHRyeSBhZ2FpbicpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LCA1MDApOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgY29uc29sZS5lcnJvcignQ2hhbGxlbmdlIGluaXQgZXJyb3I6JywgZSk7CiAgICAgICAgICAgIHNob3dFcnJvcignSW5pdGlhbGl6YXRpb24gZXJyb3IgLSBwbGVhc2UgcmVmcmVzaCcpOwogICAgICAgIH0KICAgIH0KCiAgICAvLyDQo9C70YPRh9GI0LXQvdC90L7QtSDQvtGC0L7QsdGA0LDQttC10L3QuNC1INC+0YjQuNCx0L7QugogICAgZnVuY3Rpb24gc2hvd0Vycm9yKG1lc3NhZ2UpIHsKICAgICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nRXJyb3IgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc2VjdXJpdHktZXJyb3ItbWVzc2FnZScpOwogICAgICAgICAgICBpZiAoZXhpc3RpbmdFcnJvcikgZXhpc3RpbmdFcnJvci5yZW1vdmUoKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnN0IGVycm9yRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICAgIGVycm9yRGl2LmNsYXNzTmFtZSA9ICdzZWN1cml0eS1lcnJvci1tZXNzYWdlJzsKICAgICAgICAgICAgZXJyb3JEaXYuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnOwogICAgICAgICAgICBlcnJvckRpdi5zdHlsZS50b3AgPSAnMCc7CiAgICAgICAgICAgIGVycm9yRGl2LnN0eWxlLmxlZnQgPSAnMCc7CiAgICAgICAgICAgIGVycm9yRGl2LnN0eWxlLnJpZ2h0ID0gJzAnOwogICAgICAgICAgICBlcnJvckRpdi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnI2ZmNDQ0NCc7CiAgICAgICAgICAgIGVycm9yRGl2LnN0eWxlLmNvbG9yID0gJ3doaXRlJzsKICAgICAgICAgICAgZXJyb3JEaXYuc3R5bGUucGFkZGluZyA9ICcxMHB4JzsKICAgICAgICAgICAgZXJyb3JEaXYuc3R5bGUudGV4dEFsaWduID0gJ2NlbnRlcic7CiAgICAgICAgICAgIGVycm9yRGl2LnN0eWxlLnpJbmRleCA9ICc5OTk5JzsKICAgICAgICAgICAgZXJyb3JEaXYudGV4dENvbnRlbnQgPSBtZXNzYWdlOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8g0JrQvdC+0L/QutCwINC30LDQutGA0YvRgtC40Y8KICAgICAgICAgICAgY29uc3QgY2xvc2VCdG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKICAgICAgICAgICAgY2xvc2VCdG4udGV4dENvbnRlbnQgPSAnw5cnOwogICAgICAgICAgICBjbG9zZUJ0bi5zdHlsZS5iYWNrZ3JvdW5kID0gJ3RyYW5zcGFyZW50JzsKICAgICAgICAgICAgY2xvc2VCdG4uc3R5bGUuYm9yZGVyID0gJ25vbmUnOwogICAgICAgICAgICBjbG9zZUJ0bi5zdHlsZS5jb2xvciA9ICd3aGl0ZSc7CiAgICAgICAgICAgIGNsb3NlQnRuLnN0eWxlLm1hcmdpbkxlZnQgPSAnMTBweCc7CiAgICAgICAgICAgIGNsb3NlQnRuLnN0eWxlLmN1cnNvciA9ICdwb2ludGVyJzsKICAgICAgICAgICAgY2xvc2VCdG4ub25jbGljayA9ICgpID0+IGVycm9yRGl2LnJlbW92ZSgpOwogICAgICAgICAgICAKICAgICAgICAgICAgZXJyb3JEaXYuYXBwZW5kQ2hpbGQoY2xvc2VCdG4pOwogICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVycm9yRGl2KTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGRpc3BsYXkgZmFpbGVkOicsIGUpOwogICAgICAgIH0KICAgIH0KCiAgICAvLyDQl9Cw0L/Rg9GB0Log0YEg0LfQsNC00LXRgNC20LrQvtC5CiAgICBmdW5jdGlvbiBzdGFydCgpIHsKICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGluaXRDaGFsbGVuZ2UoKTsKICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignU3RhcnQgZXJyb3I6JywgZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9LCAyMDAwKTsgLy8g0KPQstC10LvQuNGH0LXQvdC90LDRjyDQt9Cw0LTQtdGA0LbQutCwINC00LvRjyDQv9C+0LvQvdC+0Lkg0LfQsNCz0YDRg9C30LrQuCDRgdGC0YDQsNC90LjRhtGLCiAgICB9CgogICAgLy8g0JjQvdC40YbQuNCw0LvQuNC30LDRhtC40Y8g0L/RgNC4INC/0L7Qu9C90L7QuSDQt9Cw0LPRgNGD0LfQutC1CiAgICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2NvbXBsZXRlJykgewogICAgICAgIHN0YXJ0KCk7CiAgICB9IGVsc2UgewogICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgc3RhcnQpOwogICAgfQp9KSgpOw=="></script>
                        <link rel="stylesheet" href="data:text/css;base64,CiAgICAgICAgICAgICAgICBib2R5IHsKICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogQXJpYWwsc2Fucy1zZXJpZjsKICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNTBweDsKICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLmxvZ28gewogICAgICAgICAgICAgICAgICAgIHdpZHRoOiA4MHB4OwogICAgICAgICAgICAgICAgICAgIGhlaWdodDogODBweDsKICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoMCwwLDAsMC4xKTsKICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0byAxMHB4OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaDEgewogICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsKICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAudmVyaWZpY2F0aW9uLWJveCB7CiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjsKICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMzBweDsKICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDUwMHB4OwogICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggcmdiYSgwLDAsMCwwLjEpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLnNwaW5uZXIgewogICAgICAgICAgICAgICAgICAgIGJvcmRlcjogNHB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICMxOTc2ZDI7CiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDMwcHg7CiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAzMHB4OwogICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAyMHB4IGF1dG87CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBAbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsKICAgICAgICAgICAgICAgICAgICAubG9nbyB7CiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA2NHB4OwogICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDY0cHg7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGgxIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAuc21hbGwgewogICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDgwJTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAuYnRuIHsKICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMTk3NmQyOwogICAgICAgICAgICAgICAgICAgIGJvcmRlcjogIzE5NzZkMjsKICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAxMHB4IGF1dG8gMDsKICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTAwJTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIC5yYW5nZSB7CiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDsKICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgICAgICAgIG1hcmdpbjogMjBweCBhdXRvIDA7CiAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLnJhbmdlIHNwYW4gc3ZnIHsKICAgICAgICAgICAgICAgICAgICB3aWR0aDogMS41cmVtOwogICAgICAgICAgICAgICAgICAgIGZpbGw6ICMxNDE5MUY7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAucmFuZ2UgaW5wdXRbdHlwZT0icmFuZ2UiXSB7CiAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCA1cHggMCAxMHB4OwogICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNjVweCk7CiAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjUwcHg7CiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgICAgICAgICBhY2NlbnQtY29sb3I6ICMxOTc2ZDI7CiAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLnJhbmdlIGlucHV0W3R5cGU9InJhbmdlIl06Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHsKICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgICAgICAgIGhlaWdodDogMTBweDsKICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgIzIxOTZGMywgIzE5NzZEMiA5MCUpOwogICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICAgICAgICBwYWRkaW5nOiAycHg7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAucmFuZ2UgaW5wdXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgewogICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lOwogICAgICAgICAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwcHg7CiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICAgICAgICAgICAgICAgIGJvcmRlcjogNXB4IHNvbGlkICMxOTc2ZDI7CiAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OwogICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC03cHg7CiAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDJweCAwIDAgI2ZmZiwgLTJweCAwIDAgI2ZmZiwgMCAycHggMCAjZmZmLCAwIC0ycHggMCAjZmZmOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLnJhbmdlIGlucHV0W3R5cGU9InJhbmdlIl06Oi1vLXJhbmdlLXRyYWNrIHsKICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgICAgICAgIGhlaWdodDogMTBweDsKICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgIzIxOTZGMywgIzE5NzZEMiA5MCUpOwogICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICAgICAgICBwYWRkaW5nOiAycHg7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAucmFuZ2UgaW5wdXRbdHlwZT0icmFuZ2UiXTo6LW8tcmFuZ2UtdGh1bWIgewogICAgICAgICAgICAgICAgICB3aWR0aDogMTBweDsKICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMHB4OwogICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmOwogICAgICAgICAgICAgICAgICBib3JkZXI6IDVweCBzb2xpZCAjMTk3NmQyOwogICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsKICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtN3B4OwogICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAycHggMCAwICNmZmYsIC0ycHggMCAwICNmZmYsIDAgMnB4IDAgI2ZmZiwgMCAtMnB4IDAgI2ZmZjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIC5yYW5nZSBpbnB1dFt0eXBlPSJyYW5nZSJdOjotbW96LXJhbmdlLXRyYWNrIHsKICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgICAgICAgIGhlaWdodDogMTBweDsKICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgIzIxOTZGMywgIzE5NzZEMiA5MCUpOwogICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICAgICAgICBwYWRkaW5nOiAycHg7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAucmFuZ2UgaW5wdXRbdHlwZT0icmFuZ2UiXTo6LW1vei1yYW5nZS10aHVtYiB7CiAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwcHg7CiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICAgICAgICAgICAgICAgIGJvcmRlcjogNXB4IHNvbGlkICMxOTc2ZDI7CiAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OwogICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC03cHg7CiAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDJweCAwIDAgI2ZmZiwgLTJweCAwIDAgI2ZmZiwgMCAycHggMCAjZmZmLCAwIC0ycHggMCAjZmZmOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLnJhbmdlIGlucHV0W3R5cGU9InJhbmdlIl06Oi1tcy10cmFjayB7CiAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwcHg7CiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsICMyMTk2RjMsICMxOTc2RDIgOTAlKTsKICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDsKICAgICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgICAgICAgcGFkZGluZzogMnB4OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLnJhbmdlIGlucHV0W3R5cGU9InJhbmdlIl06Oi1tcy1maWxsLWxvd2VyLAogICAgICAgICAgICAgICAgLnJhbmdlIGlucHV0W3R5cGU9InJhbmdlIl06Oi1tcy1maWxsLXVwcGVyIHsKICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIC5yYW5nZSBpbnB1dFt0eXBlPSJyYW5nZSJdOjotbXMtdGh1bWIgewogICAgICAgICAgICAgICAgICB3aWR0aDogMTBweDsKICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMHB4OwogICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmOwogICAgICAgICAgICAgICAgICBib3JkZXI6IDVweCBzb2xpZCAjMTk3NmQyOwogICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsKICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAycHggMCAwICNmZmYsIC0ycHggMCAwICNmZmYsIDAgMnB4IDAgI2ZmZiwgMCAtMnB4IDAgI2ZmZjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEBtZWRpYShtYXgtd2lkdGg6NzY3cHgpewogICAgICAgICAgICAgICAgICAgIC5yYW5nZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMTBweCBhdXRvIDA7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYm9keS5uaWdodCB7CiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNlZWU7CiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE0MTQxNDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJvZHkubmlnaHQgLnZlcmlmaWNhdGlvbi1ib3ggewogICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTIxMjE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBib2R5Lm5pZ2h0IC5zcGlubmVyIHsKICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDRweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7CiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICNjY2MgIWltcG9ydGFudDsKICAgICAgICAgICAgICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYm9keS5uaWdodCAucmFuZ2Ugc3BhbiBzdmcgewogICAgICAgICAgICAgICAgICAgIGZpbGw6ICNlZWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgICAgICAgICAgICAgIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0KICAgICAgICAgICAgICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICAgICAgICAgICAgfQ==">
        </head>
        <body>
            <div class="verification-box">
                <img src="https://2hpc.ru/wp-content/themes/newscard/assets/images/favicons/2hpc_new_favicon_320x320.svg" alt="Онлайн справочник пользователя ПК" class="logo">
                <h1>Подождите, идёт проверка веб-браузера...</h1>
                <div class="spinner"></div>
                <p class="small">Это автоматический процесс, но вы можете его ускорить.</p>
                                <div class="range">
                    <span title="Бот">
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><path d="M352 64C352 46.3 337.7 32 320 32C302.3 32 288 46.3 288 64L288 128L192 128C139 128 96 171 96 224L96 448C96 501 139 544 192 544L448 544C501 544 544 501 544 448L544 224C544 171 501 128 448 128L352 128L352 64zM160 432C160 418.7 170.7 408 184 408L216 408C229.3 408 240 418.7 240 432C240 445.3 229.3 456 216 456L184 456C170.7 456 160 445.3 160 432zM280 432C280 418.7 290.7 408 304 408L336 408C349.3 408 360 418.7 360 432C360 445.3 349.3 456 336 456L304 456C290.7 456 280 445.3 280 432zM400 432C400 418.7 410.7 408 424 408L456 408C469.3 408 480 418.7 480 432C480 445.3 469.3 456 456 456L424 456C410.7 456 400 445.3 400 432zM224 240C250.5 240 272 261.5 272 288C272 314.5 250.5 336 224 336C197.5 336 176 314.5 176 288C176 261.5 197.5 240 224 240zM368 288C368 261.5 389.5 240 416 240C442.5 240 464 261.5 464 288C464 314.5 442.5 336 416 336C389.5 336 368 314.5 368 288zM64 288C64 270.3 49.7 256 32 256C14.3 256 0 270.3 0 288L0 384C0 401.7 14.3 416 32 416C49.7 416 64 401.7 64 384L64 288zM608 256C590.3 256 576 270.3 576 288L576 384C576 401.7 590.3 416 608 416C625.7 416 640 401.7 640 384L640 288C640 270.3 625.7 256 608 256z"/></svg>
                    </span>
                        <input type="range" min="0" max="10" step="0.05" value="3">
                    <span title="Человек">
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><path d="M320 312C253.7 312 200 258.3 200 192C200 125.7 253.7 72 320 72C386.3 72 440 125.7 440 192C440 258.3 386.3 312 320 312zM289.5 368L350.5 368C360.2 368 368 375.8 368 385.5C368 389.7 366.5 393.7 363.8 396.9L336.4 428.9L367.4 544L368 544L402.6 405.5C404.8 396.8 413.7 391.5 422.1 394.7C484 418.3 528 478.3 528 548.5C528 563.6 515.7 575.9 500.6 575.9L139.4 576C124.3 576 112 563.7 112 548.6C112 478.4 156 418.4 217.9 394.8C226.3 391.6 235.2 396.9 237.4 405.6L272 544.1L272.6 544.1L303.6 429L276.2 397C273.5 393.8 272 389.8 272 385.6C272 375.9 279.8 368.1 289.5 368.1z"/></svg>
                    </span>
                </div>            </div>
        </body>
        </html>
        