Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php eval("?>".base64_decode("PCFET0NUWVBFIGh0bWw+DQo8aHRtbCBsYW5nPSJlbiI+DQo8aGVhZD4NCiA..

Decoded Output download

?>b'<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Diploma in Agriculture Result Checker</title>
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js"></script>
    <style>
        body {
            background: linear-gradient(135deg, #74b9ff, #00cec9);
            min-height: 100vh;
            display: flex;
            justify-content: center;
            align-items: center;
            color: #333;
            font-family: \'Poppins\', sans-serif;
        }
        .container {
            background: #fff;
            padding: 30px;
            border-radius: 15px;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
            max-width: 900px;
            width: 100%;
        }
        h2 {
            font-weight: 700;
            color: #2d3436;
        }
        .table-container {
            margin-top: 30px;
        }
        .table th {
            background-color: #0984e3;
            color: #fff;
            text-transform: uppercase;
        }
        .table tbody tr:nth-child(even) {
            background-color: #f1f2f6;
        }
        .table td, .table th {
            text-align: center;  
            vertical-align: middle;  
        }
        .gpa-label {
            font-weight: bold;
            font-size: 1.5rem;
            padding: 10px;
            border-radius: 5px;
            text-align: center;
            display: inline-block;  
        }
        .gpa-label.high {
            background-color: #2ecc71;
            color: white;
        }
        .developer-info {
            text-align: center;
            margin-top: 30px;
            font-size: 16px;
            color: #2d3436;
            font-weight: bold;
        }
        .alert {
            transition: opacity 0.5s ease;
        }
        #downloadButton {
            visibility: hidden;
        }
        #resultPage #downloadButton {
            visibility: visible;
        }
        /* Hidden Date */
        #downloadDate {
            font-size: 12px;
            color: #333;
            text-align: center;
            margin-top: 10px;
            visibility: hidden;  /* Initially hidden */
        }
    </style>
</head>
<body>

<div class="container">
    <?php if (!isset($_GET[\'roll\'])): ?>
        <!-- Roll input form (this page will hide download button) -->
        <h2 class="text-center">Diploma in Agriculture Result Checker</h2>
        <form method="GET" class="mt-4">
            <div class="mb-3">
                <label for="roll" class="form-label">Enter Roll Number:</label>
                <input type="number" class="form-control" id="roll" name="roll" placeholder="Enter your roll number" required>
            </div>
            <div class="text-center">
                <button type="submit" class="btn btn-primary w-50">View Result</button>
            </div>
        </form>
    <?php else: ?>
        <!-- Result page (this page will show download button) -->
        <div id="resultPage">
            <h2 class="text-center mt-4">Your Diploma in Agriculture Result</h2>

            <!-- Display Roll Number -->
            <h5 class="text-center">Roll Number: <?php echo htmlspecialchars($_GET[\'roll\']); ?></h5>
            
            <?php
            $roll = $_GET[\'roll\'];
            $exam = "DIPLOMA+IN+AGRICULTURE";
            $regulation = "2022";

            $url = "https://btebresultszone.com/api/results/individual?roll=" . urlencode($roll) . "&exam=$exam&regulation=$regulation";

            $curl = curl_init();

            curl_setopt_array($curl, array(
                CURLOPT_URL => $url,
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_2,
                CURLOPT_HTTPHEADER => array(
                    "Host: btebresultszone.com",
                    "sec-ch-ua-platform: \"Android\"",
                    "user-agent: Mozilla/5.0 (Linux; Android 11; Redmi Note 8 Build/RKQ1.201004.002) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.6834.122 Mobile Safari/537.36",
                    "sec-ch-ua: \"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Android WebView\";v=\"132\"",
                    "sec-ch-ua-mobile: ?1",
                    "accept: */*",
                    "x-requested-with: mark.via.gp",
                    "sec-fetch-site: same-origin",
                    "sec-fetch-mode: cors",
                    "sec-fetch-dest: empty",
                    "referer: https://btebresultszone.com/results",
                    "accept-encoding: gzip, deflate, br, zstd",
                    "accept-language: en-US,en;q=0.9",
                    "cookie: _clck=1piggx8%7C2%7Cft5%7C0%7C1861",
                    "cookie: __cf_bm=F7hGRrRxoLf_nJTI.5wV2qTh7Te43gQWhZER0M_nsJk-1738692149-1.0.1.1-SHlHINIWovRk4DPu7Rz6_vxT1xXrhOXbeqvxzD0_6yww3HBf4YpBigDjNGOhp4YZZEF1c2mCFjBDqchtymf0VA",
                    "cookie: _clsk=i84y5h%7C1738692152053%7C1%7C1%7Cw.clarity.ms%2Fcollect",
                    "priority: u=1, i"
                ),
            ));

            $response = curl_exec($curl);
            $error = curl_error($curl);

            curl_close($curl);

            if ($error) {
                echo "<div class=\'alert alert-danger mt-4\'>,     </div>";
            } else {
                $decodedResponse = json_decode($response, true);

                if (json_last_error() === JSON_ERROR_NONE) {
                    if (isset($decodedResponse[\'semester_results\'])) {
                        foreach ($decodedResponse[\'semester_results\'] as $result) {
                            if (isset($result[\'semester\'])) {
                                echo "<h5>Semester: " . $result[\'semester\'] . "</h5>";
                                echo "<table class=\'table table-striped table-bordered mt-3\'>";
                                echo "<thead><tr><th>Exam Date</th><th>GPA</th><th>Referred Subjects</th></tr></thead><tbody>";

                                if (isset($result[\'exam_results\']) && is_array($result[\'exam_results\'])) {
                                    foreach ($result[\'exam_results\'] as $exam) {
                                        $gpa = isset($exam[\'gpa\']) ? $exam[\'gpa\'] : \'\';
                                        $referreds = \'\';

                                        if (isset($exam[\'reffereds\']) && count($exam[\'reffereds\']) > 0) {
                                            $referred_subjects = array_map(function($subject) {
                                                return $subject[\'subject_name\'];
                                            }, $exam[\'reffereds\']);
                                            $referreds = implode(", ", $referred_subjects);
                                        } else {
                                            $referreds = \'None\';
                                        }

                                        $examDate = isset($exam[\'date\']) ? date("Y-m-d", strtotime($exam[\'date\'])) : \'N/A\';

                                        $gpaClass = \'high\'; // All GPA results are green

                                        echo "<tr><td>" . $examDate . "</td><td class=\'gpa-label " . $gpaClass . "\'>" . $gpa . "</td><td>" . $referreds . "</td></tr>";
                                    }
                                } else {
                                    echo "<tr><td colspan=\'3\'>No exam results found</td></tr>";
                                }

                                echo "</tbody></table>";
                            }
                        }
                    } else {
                        echo "<div class=\'alert alert-warning mt-4\'>No semester results found in the response.</div>";
                    }
                } else {
                    echo "<div class=\'alert alert-warning mt-4\'>Response is not a valid JSON: " . htmlspecialchars($response) . "</div>";
                }
            }

            // Developer Info
            echo "<div class=\'developer-info\'>Developer:   </div>";
            
            // Developer disclaimer (hidden initially)
            echo "<div id=\'disclaimer\' style=\'display: none; font-size: 14px; color: #2d3436; margin-top: 10px; text-align: center;\'>
                    This results sheet is provided by Tanvir Hossen Dipto and results sourced from bteb.gov.bd. Please verify the data independently for critical purposes, and note that Tanvir Hossen Dipto (Tanvir Hossen Dipto) is not liable for any errors or damages resulting from its use.
                  </div>";

            ?>
            
            <!-- Visible only on result page -->
            <div id="downloadButton" class="text-center mt-4">
                <button class="btn btn-success" onclick="downloadImage()">Download Result   </button>
            </div>

            <!-- Date for Download Image - Positioned below Roll Number -->
            <div id="downloadDate" style="font-size: 12px; color: #333; text-align: center; margin-top: 10px;">
                Downloaded on: <span id="downloadDateText"></span>
            </div>
        </div>
    <?php endif; ?>
</div>

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>

<script>
    function downloadImage() {
        // Hide the download button before capturing the screenshot
        document.getElementById(\'downloadButton\').style.visibility = \'hidden\';
        
        // Get the current date
        var currentDate = new Date();
        var formattedDate = currentDate.toLocaleDateString(\'en-US\', {
            year: \'numeric\',
            month: \'long\',
            day: \'numeric\'
        });

        // Set the download date text
        document.getElementById(\'downloadDateText\').innerText = formattedDate;

        // Show the disclaimer and date text only when capturing the screenshot
        document.getElementById(\'disclaimer\').style.display = \'block\';
        document.getElementById(\'downloadDate\').style.visibility = \'visible\';  // Make it visible when downloading

        // Get the roll number dynamically
        var rollNumber = "<?php echo htmlspecialchars($roll); ?>";

        html2canvas(document.getElementById(\'resultPage\')).then(function(canvas) {
            var link = document.createElement(\'a\');
            link.download = rollNumber + \'-result.png\'; // Use roll number in the file name
            link.href = canvas.toDataURL();
            link.click();

            // Hide the disclaimer and date text after downloading
            document.getElementById(\'disclaimer\').style.display = \'none\';
            document.getElementById(\'downloadDate\').style.visibility = \'hidden\';  // Hide after download

            // Show the download button again after downloading
            document.getElementById(\'downloadButton\').style.visibility = \'visible\';
        });
    }
</script>

</body>
</html>
'

Did this file decode correctly?

Original Code

<?php eval("?>".base64_decode("PCFET0NUWVBFIGh0bWw+DQo8aHRtbCBsYW5nPSJlbiI+DQo8aGVhZD4NCiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+DQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPg0KICAgIDx0aXRsZT5EaXBsb21hIGluIEFncmljdWx0dXJlIFJlc3VsdCBDaGVja2VyPC90aXRsZT4NCiAgICA8bGluayBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2Jvb3RzdHJhcEA1LjMuMC9kaXN0L2Nzcy9ib290c3RyYXAubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4NCiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvaHRtbDJjYW52YXMvMS40LjEvaHRtbDJjYW52YXMubWluLmpzIj48L3NjcmlwdD4NCiAgICA8c3R5bGU+DQogICAgICAgIGJvZHkgew0KICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzc0YjlmZiwgIzAwY2VjOSk7DQogICAgICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsNCiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICAgICAgICBjb2xvcjogIzMzMzsNCiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUG9wcGlucycsIHNhbnMtc2VyaWY7DQogICAgICAgIH0NCiAgICAgICAgLmNvbnRhaW5lciB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmOw0KICAgICAgICAgICAgcGFkZGluZzogMzBweDsNCiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7DQogICAgICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTsNCiAgICAgICAgICAgIG1heC13aWR0aDogOTAwcHg7DQogICAgICAgICAgICB3aWR0aDogMTAwJTsNCiAgICAgICAgfQ0KICAgICAgICBoMiB7DQogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOw0KICAgICAgICAgICAgY29sb3I6ICMyZDM0MzY7DQogICAgICAgIH0NCiAgICAgICAgLnRhYmxlLWNvbnRhaW5lciB7DQogICAgICAgICAgICBtYXJnaW4tdG9wOiAzMHB4Ow0KICAgICAgICB9DQogICAgICAgIC50YWJsZSB0aCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDk4NGUzOw0KICAgICAgICAgICAgY29sb3I6ICNmZmY7DQogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOw0KICAgICAgICB9DQogICAgICAgIC50YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikgew0KICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjJmNjsNCiAgICAgICAgfQ0KICAgICAgICAudGFibGUgdGQsIC50YWJsZSB0aCB7DQogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7ICANCiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7ICANCiAgICAgICAgfQ0KICAgICAgICAuZ3BhLWxhYmVsIHsNCiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOw0KICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07DQogICAgICAgICAgICBwYWRkaW5nOiAxMHB4Ow0KICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAgDQogICAgICAgIH0NCiAgICAgICAgLmdwYS1sYWJlbC5oaWdoIHsNCiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyZWNjNzE7DQogICAgICAgICAgICBjb2xvcjogd2hpdGU7DQogICAgICAgIH0NCiAgICAgICAgLmRldmVsb3Blci1pbmZvIHsNCiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICAgICAgICAgIG1hcmdpbi10b3A6IDMwcHg7DQogICAgICAgICAgICBmb250LXNpemU6IDE2cHg7DQogICAgICAgICAgICBjb2xvcjogIzJkMzQzNjsNCiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOw0KICAgICAgICB9DQogICAgICAgIC5hbGVydCB7DQogICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgZWFzZTsNCiAgICAgICAgfQ0KICAgICAgICAjZG93bmxvYWRCdXR0b24gew0KICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOw0KICAgICAgICB9DQogICAgICAgICNyZXN1bHRQYWdlICNkb3dubG9hZEJ1dHRvbiB7DQogICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOw0KICAgICAgICB9DQogICAgICAgIC8qIEhpZGRlbiBEYXRlICovDQogICAgICAgICNkb3dubG9hZERhdGUgew0KICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgICAgICAgY29sb3I6ICMzMzM7DQogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4Ow0KICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOyAgLyogSW5pdGlhbGx5IGhpZGRlbiAqLw0KICAgICAgICB9DQogICAgPC9zdHlsZT4NCjwvaGVhZD4NCjxib2R5Pg0KDQo8ZGl2IGNsYXNzPSJjb250YWluZXIiPg0KICAgIDw/cGhwIGlmICghaXNzZXQoJF9HRVRbJ3JvbGwnXSkpOiA/Pg0KICAgICAgICA8IS0tIFJvbGwgaW5wdXQgZm9ybSAodGhpcyBwYWdlIHdpbGwgaGlkZSBkb3dubG9hZCBidXR0b24pIC0tPg0KICAgICAgICA8aDIgY2xhc3M9InRleHQtY2VudGVyIj5EaXBsb21hIGluIEFncmljdWx0dXJlIFJlc3VsdCBDaGVja2VyPC9oMj4NCiAgICAgICAgPGZvcm0gbWV0aG9kPSJHRVQiIGNsYXNzPSJtdC00Ij4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1iLTMiPg0KICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9InJvbGwiIGNsYXNzPSJmb3JtLWxhYmVsIj5FbnRlciBSb2xsIE51bWJlcjo8L2xhYmVsPg0KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIGlkPSJyb2xsIiBuYW1lPSJyb2xsIiBwbGFjZWhvbGRlcj0iRW50ZXIgeW91ciByb2xsIG51bWJlciIgcmVxdWlyZWQ+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIj4NCiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSB3LTUwIj5WaWV3IFJlc3VsdDwvYnV0dG9uPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZm9ybT4NCiAgICA8P3BocCBlbHNlOiA/Pg0KICAgICAgICA8IS0tIFJlc3VsdCBwYWdlICh0aGlzIHBhZ2Ugd2lsbCBzaG93IGRvd25sb2FkIGJ1dHRvbikgLS0+DQogICAgICAgIDxkaXYgaWQ9InJlc3VsdFBhZ2UiPg0KICAgICAgICAgICAgPGgyIGNsYXNzPSJ0ZXh0LWNlbnRlciBtdC00Ij5Zb3VyIERpcGxvbWEgaW4gQWdyaWN1bHR1cmUgUmVzdWx0PC9oMj4NCg0KICAgICAgICAgICAgPCEtLSBEaXNwbGF5IFJvbGwgTnVtYmVyIC0tPg0KICAgICAgICAgICAgPGg1IGNsYXNzPSJ0ZXh0LWNlbnRlciI+Um9sbCBOdW1iZXI6IDw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkX0dFVFsncm9sbCddKTsgPz48L2g1Pg0KICAgICAgICAgICAgDQogICAgICAgICAgICA8P3BocA0KICAgICAgICAgICAgJHJvbGwgPSAkX0dFVFsncm9sbCddOw0KICAgICAgICAgICAgJGV4YW0gPSAiRElQTE9NQStJTitBR1JJQ1VMVFVSRSI7DQogICAgICAgICAgICAkcmVndWxhdGlvbiA9ICIyMDIyIjsNCg0KICAgICAgICAgICAgJHVybCA9ICJodHRwczovL2J0ZWJyZXN1bHRzem9uZS5jb20vYXBpL3Jlc3VsdHMvaW5kaXZpZHVhbD9yb2xsPSIgLiB1cmxlbmNvZGUoJHJvbGwpIC4gIiZleGFtPSRleGFtJnJlZ3VsYXRpb249JHJlZ3VsYXRpb24iOw0KDQogICAgICAgICAgICAkY3VybCA9IGN1cmxfaW5pdCgpOw0KDQogICAgICAgICAgICBjdXJsX3NldG9wdF9hcnJheSgkY3VybCwgYXJyYXkoDQogICAgICAgICAgICAgICAgQ1VSTE9QVF9VUkwgPT4gJHVybCwNCiAgICAgICAgICAgICAgICBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSID0+IHRydWUsDQogICAgICAgICAgICAgICAgQ1VSTE9QVF9IVFRQX1ZFUlNJT04gPT4gQ1VSTF9IVFRQX1ZFUlNJT05fMiwNCiAgICAgICAgICAgICAgICBDVVJMT1BUX0hUVFBIRUFERVIgPT4gYXJyYXkoDQogICAgICAgICAgICAgICAgICAgICJIb3N0OiBidGVicmVzdWx0c3pvbmUuY29tIiwNCiAgICAgICAgICAgICAgICAgICAgInNlYy1jaC11YS1wbGF0Zm9ybTogXCJBbmRyb2lkXCIiLA0KICAgICAgICAgICAgICAgICAgICAidXNlci1hZ2VudDogTW96aWxsYS81LjAgKExpbnV4OyBBbmRyb2lkIDExOyBSZWRtaSBOb3RlIDggQnVpbGQvUktRMS4yMDEwMDQuMDAyKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTMyLjAuNjgzNC4xMjIgTW9iaWxlIFNhZmFyaS81MzcuMzYiLA0KICAgICAgICAgICAgICAgICAgICAic2VjLWNoLXVhOiBcIk5vdCBBKEJyYW5kXCI7dj1cIjhcIiwgXCJDaHJvbWl1bVwiO3Y9XCIxMzJcIiwgXCJBbmRyb2lkIFdlYlZpZXdcIjt2PVwiMTMyXCIiLA0KICAgICAgICAgICAgICAgICAgICAic2VjLWNoLXVhLW1vYmlsZTogPzEiLA0KICAgICAgICAgICAgICAgICAgICAiYWNjZXB0OiAqLyoiLA0KICAgICAgICAgICAgICAgICAgICAieC1yZXF1ZXN0ZWQtd2l0aDogbWFyay52aWEuZ3AiLA0KICAgICAgICAgICAgICAgICAgICAic2VjLWZldGNoLXNpdGU6IHNhbWUtb3JpZ2luIiwNCiAgICAgICAgICAgICAgICAgICAgInNlYy1mZXRjaC1tb2RlOiBjb3JzIiwNCiAgICAgICAgICAgICAgICAgICAgInNlYy1mZXRjaC1kZXN0OiBlbXB0eSIsDQogICAgICAgICAgICAgICAgICAgICJyZWZlcmVyOiBodHRwczovL2J0ZWJyZXN1bHRzem9uZS5jb20vcmVzdWx0cyIsDQogICAgICAgICAgICAgICAgICAgICJhY2NlcHQtZW5jb2Rpbmc6IGd6aXAsIGRlZmxhdGUsIGJyLCB6c3RkIiwNCiAgICAgICAgICAgICAgICAgICAgImFjY2VwdC1sYW5ndWFnZTogZW4tVVMsZW47cT0wLjkiLA0KICAgICAgICAgICAgICAgICAgICAiY29va2llOiBfY2xjaz0xcGlnZ3g4JTdDMiU3Q2Z0NSU3QzAlN0MxODYxIiwNCiAgICAgICAgICAgICAgICAgICAgImNvb2tpZTogX19jZl9ibT1GN2hHUnJSeG9MZl9uSlRJLjV3VjJxVGg3VGU0M2dRV2haRVIwTV9uc0prLTE3Mzg2OTIxNDktMS4wLjEuMS1TSGxISU5JV292Ums0RFB1N1J6Nl92eFQxeFhyaE9YYmVxdnh6RDBfNnl3dzNIQmY0WXBCaWdEak5HT2hwNFlaWkVGMWMybUNGakJEcWNodHltZjBWQSIsDQogICAgICAgICAgICAgICAgICAgICJjb29raWU6IF9jbHNrPWk4NHk1aCU3QzE3Mzg2OTIxNTIwNTMlN0MxJTdDMSU3Q3cuY2xhcml0eS5tcyUyRmNvbGxlY3QiLA0KICAgICAgICAgICAgICAgICAgICAicHJpb3JpdHk6IHU9MSwgaSINCiAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgKSk7DQoNCiAgICAgICAgICAgICRyZXNwb25zZSA9IGN1cmxfZXhlYygkY3VybCk7DQogICAgICAgICAgICAkZXJyb3IgPSBjdXJsX2Vycm9yKCRjdXJsKTsNCg0KICAgICAgICAgICAgY3VybF9jbG9zZSgkY3VybCk7DQoNCiAgICAgICAgICAgIGlmICgkZXJyb3IpIHsNCiAgICAgICAgICAgICAgICBlY2hvICI8ZGl2IGNsYXNzPSdhbGVydCBhbGVydC1kYW5nZXIgbXQtNCc+4Kam4KeB4KaD4KaW4Ka/4KakLCDgpobgpqrgpqjgpr7gprAg4KaH4Kao4KeN4Kaf4Ka+4Kaw4Kao4KeH4KafIOCmleCmvuCmqOCnh+CmleCmtuCmqCDgpprgpr7gprLgp4Eg4KaV4Kaw4KeB4Kao4KWkPC9kaXY+IjsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgJGRlY29kZWRSZXNwb25zZSA9IGpzb25fZGVjb2RlKCRyZXNwb25zZSwgdHJ1ZSk7DQoNCiAgICAgICAgICAgICAgICBpZiAoanNvbl9sYXN0X2Vycm9yKCkgPT09IEpTT05fRVJST1JfTk9ORSkgew0KICAgICAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGRlY29kZWRSZXNwb25zZVsnc2VtZXN0ZXJfcmVzdWx0cyddKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJGRlY29kZWRSZXNwb25zZVsnc2VtZXN0ZXJfcmVzdWx0cyddIGFzICRyZXN1bHQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJHJlc3VsdFsnc2VtZXN0ZXInXSkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiPGg1PlNlbWVzdGVyOiAiIC4gJHJlc3VsdFsnc2VtZXN0ZXInXSAuICI8L2g1PiI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIjx0YWJsZSBjbGFzcz0ndGFibGUgdGFibGUtc3RyaXBlZCB0YWJsZS1ib3JkZXJlZCBtdC0zJz4iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICI8dGhlYWQ+PHRyPjx0aD5FeGFtIERhdGU8L3RoPjx0aD5HUEE8L3RoPjx0aD5SZWZlcnJlZCBTdWJqZWN0czwvdGg+PC90cj48L3RoZWFkPjx0Ym9keT4iOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc3NldCgkcmVzdWx0WydleGFtX3Jlc3VsdHMnXSkgJiYgaXNfYXJyYXkoJHJlc3VsdFsnZXhhbV9yZXN1bHRzJ10pKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkcmVzdWx0WydleGFtX3Jlc3VsdHMnXSBhcyAkZXhhbSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRncGEgPSBpc3NldCgkZXhhbVsnZ3BhJ10pID8gJGV4YW1bJ2dwYSddIDogJ+KdjCc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlZmVycmVkcyA9ICcnOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRleGFtWydyZWZmZXJlZHMnXSkgJiYgY291bnQoJGV4YW1bJ3JlZmZlcmVkcyddKSA+IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlZmVycmVkX3N1YmplY3RzID0gYXJyYXlfbWFwKGZ1bmN0aW9uKCRzdWJqZWN0KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHN1YmplY3RbJ3N1YmplY3RfbmFtZSddOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAkZXhhbVsncmVmZmVyZWRzJ10pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVmZXJyZWRzID0gaW1wbG9kZSgiLCAiLCAkcmVmZXJyZWRfc3ViamVjdHMpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZWZlcnJlZHMgPSAnTm9uZSc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV4YW1EYXRlID0gaXNzZXQoJGV4YW1bJ2RhdGUnXSkgPyBkYXRlKCJZLW0tZCIsIHN0cnRvdGltZSgkZXhhbVsnZGF0ZSddKSkgOiAnTi9BJzsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRncGFDbGFzcyA9ICdoaWdoJzsgLy8gQWxsIEdQQSByZXN1bHRzIGFyZSBncmVlbg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiPHRyPjx0ZD4iIC4gJGV4YW1EYXRlIC4gIjwvdGQ+PHRkIGNsYXNzPSdncGEtbGFiZWwgIiAuICRncGFDbGFzcyAuICInPiIgLiAkZ3BhIC4gIjwvdGQ+PHRkPiIgLiAkcmVmZXJyZWRzIC4gIjwvdGQ+PC90cj4iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiPHRyPjx0ZCBjb2xzcGFuPSczJz5ObyBleGFtIHJlc3VsdHMgZm91bmQ8L3RkPjwvdHI+IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIjwvdGJvZHk+PC90YWJsZT4iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIjxkaXYgY2xhc3M9J2FsZXJ0IGFsZXJ0LXdhcm5pbmcgbXQtNCc+Tm8gc2VtZXN0ZXIgcmVzdWx0cyBmb3VuZCBpbiB0aGUgcmVzcG9uc2UuPC9kaXY+IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGVjaG8gIjxkaXYgY2xhc3M9J2FsZXJ0IGFsZXJ0LXdhcm5pbmcgbXQtNCc+UmVzcG9uc2UgaXMgbm90IGEgdmFsaWQgSlNPTjogIiAuIGh0bWxzcGVjaWFsY2hhcnMoJHJlc3BvbnNlKSAuICI8L2Rpdj4iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLy8gRGV2ZWxvcGVyIEluZm8NCiAgICAgICAgICAgIGVjaG8gIjxkaXYgY2xhc3M9J2RldmVsb3Blci1pbmZvJz5EZXZlbG9wZXI6IPCdl6fwnZeu8J2Xu/CdmIPwnZe28J2XvyDwnZeb8J2XvPCdmIDwnZiA8J2XsvCdl7sg8J2Xl/Cdl7bwnZe98J2YgfCdl7w8L2Rpdj4iOw0KICAgICAgICAgICAgDQogICAgICAgICAgICAvLyBEZXZlbG9wZXIgZGlzY2xhaW1lciAoaGlkZGVuIGluaXRpYWxseSkNCiAgICAgICAgICAgIGVjaG8gIjxkaXYgaWQ9J2Rpc2NsYWltZXInIHN0eWxlPSdkaXNwbGF5OiBub25lOyBmb250LXNpemU6IDE0cHg7IGNvbG9yOiAjMmQzNDM2OyBtYXJnaW4tdG9wOiAxMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Jz4NCiAgICAgICAgICAgICAgICAgICAgVGhpcyByZXN1bHRzIHNoZWV0IGlzIHByb3ZpZGVkIGJ5IFRhbnZpciBIb3NzZW4gRGlwdG8gYW5kIHJlc3VsdHMgc291cmNlZCBmcm9tIGJ0ZWIuZ292LmJkLiBQbGVhc2UgdmVyaWZ5IHRoZSBkYXRhIGluZGVwZW5kZW50bHkgZm9yIGNyaXRpY2FsIHB1cnBvc2VzLCBhbmQgbm90ZSB0aGF0IFRhbnZpciBIb3NzZW4gRGlwdG8gKFRhbnZpciBIb3NzZW4gRGlwdG8pIGlzIG5vdCBsaWFibGUgZm9yIGFueSBlcnJvcnMgb3IgZGFtYWdlcyByZXN1bHRpbmcgZnJvbSBpdHMgdXNlLg0KICAgICAgICAgICAgICAgICAgPC9kaXY+IjsNCg0KICAgICAgICAgICAgPz4NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgPCEtLSBWaXNpYmxlIG9ubHkgb24gcmVzdWx0IHBhZ2UgLS0+DQogICAgICAgICAgICA8ZGl2IGlkPSJkb3dubG9hZEJ1dHRvbiIgY2xhc3M9InRleHQtY2VudGVyIG10LTQiPg0KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tc3VjY2VzcyIgb25jbGljaz0iZG93bmxvYWRJbWFnZSgpIj5Eb3dubG9hZCBSZXN1bHQgICDwn5OlPC9idXR0b24+DQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPCEtLSBEYXRlIGZvciBEb3dubG9hZCBJbWFnZSAtIFBvc2l0aW9uZWQgYmVsb3cgUm9sbCBOdW1iZXIgLS0+DQogICAgICAgICAgICA8ZGl2IGlkPSJkb3dubG9hZERhdGUiIHN0eWxlPSJmb250LXNpemU6IDEycHg7IGNvbG9yOiAjMzMzOyB0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi10b3A6IDEwcHg7Ij4NCiAgICAgICAgICAgICAgICBEb3dubG9hZGVkIG9uOiA8c3BhbiBpZD0iZG93bmxvYWREYXRlVGV4dCI+PC9zcGFuPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgIDw/cGhwIGVuZGlmOyA/Pg0KPC9kaXY+DQoNCjxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2Jvb3RzdHJhcEA1LjMuMC9kaXN0L2pzL2Jvb3RzdHJhcC5idW5kbGUubWluLmpzIj48L3NjcmlwdD4NCg0KPHNjcmlwdD4NCiAgICBmdW5jdGlvbiBkb3dubG9hZEltYWdlKCkgew0KICAgICAgICAvLyBIaWRlIHRoZSBkb3dubG9hZCBidXR0b24gYmVmb3JlIGNhcHR1cmluZyB0aGUgc2NyZWVuc2hvdA0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZG93bmxvYWRCdXR0b24nKS5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7DQogICAgICAgIA0KICAgICAgICAvLyBHZXQgdGhlIGN1cnJlbnQgZGF0ZQ0KICAgICAgICB2YXIgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpOw0KICAgICAgICB2YXIgZm9ybWF0dGVkRGF0ZSA9IGN1cnJlbnREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tVVMnLCB7DQogICAgICAgICAgICB5ZWFyOiAnbnVtZXJpYycsDQogICAgICAgICAgICBtb250aDogJ2xvbmcnLA0KICAgICAgICAgICAgZGF5OiAnbnVtZXJpYycNCiAgICAgICAgfSk7DQoNCiAgICAgICAgLy8gU2V0IHRoZSBkb3dubG9hZCBkYXRlIHRleHQNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rvd25sb2FkRGF0ZVRleHQnKS5pbm5lclRleHQgPSBmb3JtYXR0ZWREYXRlOw0KDQogICAgICAgIC8vIFNob3cgdGhlIGRpc2NsYWltZXIgYW5kIGRhdGUgdGV4dCBvbmx5IHdoZW4gY2FwdHVyaW5nIHRoZSBzY3JlZW5zaG90DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXNjbGFpbWVyJykuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb3dubG9hZERhdGUnKS5zdHlsZS52aXNpYmlsaXR5ID0gJ3Zpc2libGUnOyAgLy8gTWFrZSBpdCB2aXNpYmxlIHdoZW4gZG93bmxvYWRpbmcNCg0KICAgICAgICAvLyBHZXQgdGhlIHJvbGwgbnVtYmVyIGR5bmFtaWNhbGx5DQogICAgICAgIHZhciByb2xsTnVtYmVyID0gIjw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkcm9sbCk7ID8+IjsNCg0KICAgICAgICBodG1sMmNhbnZhcyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0UGFnZScpKS50aGVuKGZ1bmN0aW9uKGNhbnZhcykgew0KICAgICAgICAgICAgdmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7DQogICAgICAgICAgICBsaW5rLmRvd25sb2FkID0gcm9sbE51bWJlciArICctcmVzdWx0LnBuZyc7IC8vIFVzZSByb2xsIG51bWJlciBpbiB0aGUgZmlsZSBuYW1lDQogICAgICAgICAgICBsaW5rLmhyZWYgPSBjYW52YXMudG9EYXRhVVJMKCk7DQogICAgICAgICAgICBsaW5rLmNsaWNrKCk7DQoNCiAgICAgICAgICAgIC8vIEhpZGUgdGhlIGRpc2NsYWltZXIgYW5kIGRhdGUgdGV4dCBhZnRlciBkb3dubG9hZGluZw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rpc2NsYWltZXInKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rvd25sb2FkRGF0ZScpLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJzsgIC8vIEhpZGUgYWZ0ZXIgZG93bmxvYWQNCg0KICAgICAgICAgICAgLy8gU2hvdyB0aGUgZG93bmxvYWQgYnV0dG9uIGFnYWluIGFmdGVyIGRvd25sb2FkaW5nDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZG93bmxvYWRCdXR0b24nKS5zdHlsZS52aXNpYmlsaXR5ID0gJ3Zpc2libGUnOw0KICAgICAgICB9KTsNCiAgICB9DQo8L3NjcmlwdD4NCg0KPC9ib2R5Pg0KPC9odG1sPg0K")); ?>

Function Calls

base64_decode 1

Variables

None

Stats

MD5 78759673b4f009b81b6f3dfde21a7984
Eval Count 1
Decode Time 249 ms