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("PD9waHAgJCB7DQogICAgIkdMT0JBTFMiDQp9DQpbInNwZnRobGpyeSJdID..

Decoded Output download

?>b'<?php $ {
    "GLOBALS"
}
["spfthljry"] = "message";
$ {
    "GLOBALS"
}
["qjgjpg"] = "useragent";
$ {
    "GLOBALS"
}
["grccuhmdiwn"] = "fp";
$ {
    "GLOBALS"
}
["glcodlbroie"] = "method";
$ {
    "GLOBALS"
}
["qwhhtrv"] = "badbot";
$ {
    "GLOBALS"
}
["eytsgwk"] = "u";
$ {
    "GLOBALS"
}
["itmfmqerumab"] = "filename";
$ {
    "GLOBALS"
}
["dblgxuwajss"] = "whois";
$ {
    "GLOBALS"
}
["mojsrup"] = "patterns";
$ {
    "GLOBALS"
}
["dvxpoulncwp"] = "ipaddress";
$ {
    "GLOBALS"
}
["wwkcxm"] = "nextServer";
$ {
    "GLOBALS"
}
["eodbhrkuuz"] = "buffer";
$ {
    "GLOBALS"
}
["wpexqajsu"] = "error";
$ {
    "GLOBALS"
}
["uycydyo"] = "num";
$ {
    "GLOBALS"
}
["opordkkft"] = "sock";
$ {
    "GLOBALS"
}
["qxslxovuiv"] = "server";
$ {
    "GLOBALS"
}
["qaedpdc"] = "extra";
$ {
    "GLOBALS"
}
["xkuloiyy"] = "msg";
$ {
    "GLOBALS"
}
["pnyjwyxbgld"] = "string";
$ {
    "GLOBALS"
}
["ffnngja"] = "date";
$ {
    "GLOBALS"
}
["nsjaoentrgn"] = "request";
$ {
    "GLOBALS"
}
["lgrakzkznlx"] = "subject";
$ {
    "GLOBALS"
}
["jgpqhrenqg"] = "from";
$ {
    "GLOBALS"
}
["sphoskkujr"] = "useragent";
$qfkoeuou = "filename";
$ {
    "GLOBALS"
}
["sufhyhivseg"] = "fp";
$ {
    "GLOBALS"
}
["sdnmvk"] = "recip";
$ {
    $ {
        "GLOBALS"
    }
    ["jgpqhrenqg"]
} = "[email protected]";
$eoxkgqqx = "fp";
$ {
    "GLOBALS"
}
["adxgopclg"] = "ipaddress";
$ybopcwjneu = "protocol";
$ {
    "GLOBALS"
}
["thdidfodljc"] = "badbot";
$ {
    "GLOBALS"
}
["bzgyyjuu"] = "time";
$ {
    $ {
        "GLOBALS"
    }
    ["sdnmvk"]
} = "[email protected]";
$ {
    $ {
        "GLOBALS"
    }
    ["lgrakzkznlx"]
} = "Bad Bot Alert!";
$oyvbasycbwr = "ipaddress";
$ovgmveo = "useragent";
$snymaoem = "version";
$ {
    "GLOBALS"
}
["rkqsmpv"] = "message";
$ {
    $qfkoeuou
} = "blackhole.dat";
$hbhsnhty = "line";
$ {
    $snymaoem
} = "3.1";
$ {
    $ {
        "GLOBALS"
    }
    ["rkqsmpv"]
} = "";
$ {
    "GLOBALS"
}
["soptixmgyko"] = "fp";
$ {
    $ {
        "GLOBALS"
    }
    ["thdidfodljc"]
} = 0;
$ {
    $ {
        "GLOBALS"
    }
    ["nsjaoentrgn"]
} = sanitize($_SERVER["REQUEST_URI"]);
$gtrvnygajey = "method";
$ {
    $oyvbasycbwr
} = sanitize($_SERVER["REMOTE_ADDR"]);
$ {
    $ {
        "GLOBALS"
    }
    ["sphoskkujr"]
} = sanitize($_SERVER["HTTP_USER_AGENT"]);
$ {
    $ybopcwjneu
} = sanitize($_SERVER["SERVER_PROTOCOL"]);
$ {
    $gtrvnygajey
} = sanitize($_SERVER["REQUEST_METHOD"]);
date_default_timezone_set("UTC");
$ {
    $ {
        "GLOBALS"
    }
    ["ffnngja"]
} = date("l, F jS Y @ H:i:s");
$ {
    $ {
        "GLOBALS"
    }
    ["bzgyyjuu"]
} = time();
function sanitize($string) {
    $ {
        "GLOBALS"
    }
    ["ictdgik"] = "string";
    $xdftmrxudu = "string";
    $ {
        $ {
            "GLOBALS"
        }
        ["pnyjwyxbgld"]
    } = trim($ {
        $ {
            "GLOBALS"
        }
        ["pnyjwyxbgld"]
    });
    $ {
        "GLOBALS"
    }
    ["bjuivuv"] = "string";
    $ruquohdxrtty = "string";
    $ {
        $xdftmrxudu
    } = strip_tags($ {
        $ {
            "GLOBALS"
        }
        ["pnyjwyxbgld"]
    });
    $ {
        $ {
            "GLOBALS"
        }
        ["pnyjwyxbgld"]
    } = htmlspecialchars($ {
        $ {
            "GLOBALS"
        }
        ["bjuivuv"]
    }, ENT_QUOTES, "UTF-8");
    $ {
        $ {
            "GLOBALS"
        }
        ["pnyjwyxbgld"]
    } = str_replace("
", "", $ {
        $ {
            "GLOBALS"
        }
        ["ictdgik"]
    });
    $ {
        $ {
            "GLOBALS"
        }
        ["pnyjwyxbgld"]
    } = trim($ {
        $ {
            "GLOBALS"
        }
        ["pnyjwyxbgld"]
    });
    return $ {
        $ruquohdxrtty
    };
}
function shapeSpace_whois_lookup($ipaddress) {
    $ {
        $ {
            "GLOBALS"
        }
        ["xkuloiyy"]
    } = "";
    $yqnxxxglmii = "ipaddress";
    $ {
        $ {
            "GLOBALS"
        }
        ["qaedpdc"]
    } = "";
    $ {
        $ {
            "GLOBALS"
        }
        ["qxslxovuiv"]
    } = "whois.arin.net";
    $fopock = "ipaddress";
    if (!$ {
        $yqnxxxglmii
    } = gethostbyname($ {
        $fopock
    })) {
        $ {
            $ {
                "GLOBALS"
            }
            ["xkuloiyy"]
        }.= "Can&rsquo;t perform lookup without an IP address." . "

";
    } else {
        $ {
            "GLOBALS"
        }
        ["dxackwcix"] = "buffer";
        $ {
            "GLOBALS"
        }
        ["oblgzfv"] = "buffer";
        $kvyhbxdpioh = "server";
        $ {
            "GLOBALS"
        }
        ["kydhwkmzaelf"] = "replacements";
        if (!$ {
            $ {
                "GLOBALS"
            }
            ["opordkkft"]
        } = fsockopen($ {
            $kvyhbxdpioh
        }, 43, $ {
            $ {
                "GLOBALS"
            }
            ["uycydyo"]
        }, $ {
            $ {
                "GLOBALS"
            }
            ["wpexqajsu"]
        }, 20)) {
            $ncpvwpqbz = "msg";
            unset($ {
                $ {
                    "GLOBALS"
                }
                ["opordkkft"]
            });
            $ {
                $ncpvwpqbz
            }.= "Timed-out connecting to \$server (port 43)." . "

";
        } else {
            $ {
                "GLOBALS"
            }
            ["qsgyzzq"] = "sock";
            $ {
                "GLOBALS"
            }
            ["cqrqplur"] = "buffer";
            $gukwnaxhqf = "buffer";
            fputs($ {
                $ {
                    "GLOBALS"
                }
                ["qsgyzzq"]
            }, "n $ipaddress
");
            $ {
                $gukwnaxhqf
            } = "";
            while (!feof($ {
                $ {
                    "GLOBALS"
                }
                ["opordkkft"]
            })) $ {
                $ {
                    "GLOBALS"
                }
                ["cqrqplur"]
            }.= fgets($ {
                $ {
                    "GLOBALS"
                }
                ["opordkkft"]
            }, 10240);
            fclose($ {
                $ {
                    "GLOBALS"
                }
                ["opordkkft"]
            });
        }
        $ {
            "GLOBALS"
        }
        ["awmvwumt"] = "replacements";
        $nhvllejgbxd = "buffer";
        $ {
            "GLOBALS"
        }
        ["wsswpolslkx"] = "nextServer";
        $ijqxmxh = "patterns";
        if (stripos($ {
            $ {
                "GLOBALS"
            }
            ["eodbhrkuuz"]
        }, "ripe.net")) {
            $ {
                $ {
                    "GLOBALS"
                }
                ["wwkcxm"]
            } = "whois.ripe.net";
        } elseif (stripos($ {
            $ {
                "GLOBALS"
            }
            ["eodbhrkuuz"]
        }, "nic.ad.jp")) {
            $xfstrvwxtvc = "nextServer";
            $ {
                $xfstrvwxtvc
            } = "whois.nic.ad.jp";
            $ {
                $ {
                    "GLOBALS"
                }
                ["qaedpdc"]
            } = "/e";
        } elseif (stripos($ {
            $ {
                "GLOBALS"
            }
            ["dxackwcix"]
        }, "registro.br")) {
            $ {
                $ {
                    "GLOBALS"
                }
                ["wwkcxm"]
            } = "whois.registro.br";
        }
        if (isset($ {
            $ {
                "GLOBALS"
            }
            ["wsswpolslkx"]
        })) {
            $ {
                "GLOBALS"
            }
            ["unzksysdqvl"] = "buffer";
            $pjqpvhtfyiqm = "nextServer";
            $ {
                "GLOBALS"
            }
            ["lbesyeaqu"] = "nextServer";
            $ {
                $ {
                    "GLOBALS"
                }
                ["unzksysdqvl"]
            } = "";
            $ {
                "GLOBALS"
            }
            ["qfhwyadu"] = "error";
            $ {
                $ {
                    "GLOBALS"
                }
                ["xkuloiyy"]
            }.= "Deferred to specific whois server: " . $ {
                $pjqpvhtfyiqm
            } . "..." . "

";
            if (!$ {
                $ {
                    "GLOBALS"
                }
                ["opordkkft"]
            } = fsockopen($ {
                $ {
                    "GLOBALS"
                }
                ["lbesyeaqu"]
            }, 43, $ {
                $ {
                    "GLOBALS"
                }
                ["uycydyo"]
            }, $ {
                $ {
                    "GLOBALS"
                }
                ["qfhwyadu"]
            }, 10)) {
                $ {
                    "GLOBALS"
                }
                ["pepolkhat"] = "nextServer";
                unset($ {
                    $ {
                        "GLOBALS"
                    }
                    ["opordkkft"]
                });
                $ {
                    $ {
                        "GLOBALS"
                    }
                    ["xkuloiyy"]
                }.= "Timed-out connecting to " . $ {
                    $ {
                        "GLOBALS"
                    }
                    ["pepolkhat"]
                } . " (port 43)" . "

";
            } else {
                $ {
                    "GLOBALS"
                }
                ["yphicprxrt"] = "sock";
                $ {
                    "GLOBALS"
                }
                ["nejxjtqiuym"] = "sock";
                fputs($ {
                    $ {
                        "GLOBALS"
                    }
                    ["opordkkft"]
                }, $ {
                    $ {
                        "GLOBALS"
                    }
                    ["dvxpoulncwp"]
                } . $ {
                    $ {
                        "GLOBALS"
                    }
                    ["qaedpdc"]
                } . "
");
                $ {
                    "GLOBALS"
                }
                ["iccgjt"] = "buffer";
                while (!feof($ {
                    $ {
                        "GLOBALS"
                    }
                    ["opordkkft"]
                })) $ {
                    $ {
                        "GLOBALS"
                    }
                    ["iccgjt"]
                }.= fgets($ {
                    $ {
                        "GLOBALS"
                    }
                    ["yphicprxrt"]
                }, 10240);
                fclose($ {
                    $ {
                        "GLOBALS"
                    }
                    ["nejxjtqiuym"]
                });
            }
        }
        $wlcpwubbw = "buffer";
        $ {
            $ {
                "GLOBALS"
            }
            ["awmvwumt"]
        } = array("
", "

", "");
        $ {
            $ijqxmxh
        } = array("/



/i", "/


/i", "/#(\s)?/i");
        $ {
            $nhvllejgbxd
        } = preg_replace($ {
            $ {
                "GLOBALS"
            }
            ["mojsrup"]
        }, $ {
            $ {
                "GLOBALS"
            }
            ["kydhwkmzaelf"]
        }, $ {
            $ {
                "GLOBALS"
            }
            ["eodbhrkuuz"]
        });
        $ {
            $wlcpwubbw
        } = htmlentities(trim($ {
            $ {
                "GLOBALS"
            }
            ["oblgzfv"]
        }), ENT_QUOTES, "UTF-8");
        $ {
            $ {
                "GLOBALS"
            }
            ["xkuloiyy"]
        }.= $ {
            $ {
                "GLOBALS"
            }
            ["eodbhrkuuz"]
        };
    }
    return $ {
        $ {
            "GLOBALS"
        }
        ["xkuloiyy"]
    };
}
$ {
    $ {
        "GLOBALS"
    }
    ["dblgxuwajss"]
} = shapeSpace_whois_lookup($ {
    $ {
        "GLOBALS"
    }
    ["dvxpoulncwp"]
});
if (!$ {
    $ {
        "GLOBALS"
    }
    ["dvxpoulncwp"]
} || !preg_match("/^[\w\d\.\-]+\.[\w\d]{1,4}\$/i", $ {
    $ {
        "GLOBALS"
    }
    ["adxgopclg"]
})) {
    exit("Error: Invalid Address");
}
if (preg_match("/(aolbuild|baidu|bingbot|bingpreview|msnbot|duckduckgo|adsbot-google|googlebot|mediapartners-google|teoma|slurp|yandex)/i", $ {
    $ovgmveo
})) {
    header("Location: /", true, 302);
    exit;
}
$ {
    $ {
        "GLOBALS"
    }
    ["sufhyhivseg"]
} = fopen($ {
    $ {
        "GLOBALS"
    }
    ["itmfmqerumab"]
}, "r") or die("<p>Error: Data File</p>");
while ($ {
    $hbhsnhty
} = fgets($ {
    $ {
        "GLOBALS"
    }
    ["soptixmgyko"]
})) {
    $ {
        "GLOBALS"
    }
    ["mjbdrmks"] = "line";
    $ {
        "GLOBALS"
    }
    ["mtfxhb"] = "ipaddress";
    $ {
        $ {
            "GLOBALS"
        }
        ["eytsgwk"]
    } = explode(" ", $ {
        $ {
            "GLOBALS"
        }
        ["mjbdrmks"]
    });
    if ($ {
        $ {
            "GLOBALS"
        }
        ["eytsgwk"]
    }
    [0] === $ {
        $ {
            "GLOBALS"
        }
        ["mtfxhb"]
    }) {
        $ {
            "GLOBALS"
        }
        ["qbclqwq"] = "badbot";
        ++$ {
            $ {
                "GLOBALS"
            }
            ["qbclqwq"]
        };
        break;
    }
}
fclose($ {
    $eoxkgqqx
});
if ($ {
    $ {
        "GLOBALS"
    }
    ["qwhhtrv"]
} === 0) {
    $seoztcu = "date";
    $ {
        "GLOBALS"
    }
    ["wlxsjuq"] = "fp";
    $ldrtsipeg = "fp";
    $wykgxvrt = "ipaddress";
    $ {
        $ldrtsipeg
    } = fopen($ {
        $ {
            "GLOBALS"
        }
        ["itmfmqerumab"]
    }, "a+");
    $ {
        "GLOBALS"
    }
    ["oobkfntmsxys"] = "useragent";
    $ {
        "GLOBALS"
    }
    ["pqdlaimmsjm"] = "protocol";
    fwrite($ {
        $ {
            "GLOBALS"
        }
        ["wlxsjuq"]
    }, $ {
        $ {
            "GLOBALS"
        }
        ["dvxpoulncwp"]
    } . " - " . $ {
        $ {
            "GLOBALS"
        }
        ["glcodlbroie"]
    } . " - " . $ {
        $ {
            "GLOBALS"
        }
        ["pqdlaimmsjm"]
    } . " - " . $ {
        $ {
            "GLOBALS"
        }
        ["ffnngja"]
    } . " - " . $ {
        $ {
            "GLOBALS"
        }
        ["oobkfntmsxys"]
    } . "
");
    fclose($ {
        $ {
            "GLOBALS"
        }
        ["grccuhmdiwn"]
    });
    echo "<!DOCTYPE html>
	<title>Welcome to Blackhole!</title>
	<style>
		body { color: #fff; background-color: #851507; font: 14px/1.5 Helvetica, Arial, sans-serif; }
		#blackhole { margin: 20px auto; width: 700px; }
		pre { padding: 20px; white-space: pre-line; border-radius: 10px; background-color: #b34334; }
		a { color: #fff; }
	</style>
	<body>
		<div id="blackhole\">
			<h1>You have fallen into a trap!</h1>
			<p>
				This site&rsquo;s <a href=\"/robots.txt" > robots . txt < / a > fileexplicitlyforbidsyourpresenceatthislocation . ThefollowingWhoisdatawillbereviewedcarefully . If itisdeterminedthatyousuck, youwillbebannedfromthissite . If youthinkthisisamistake, < em > now < / em > isthetimeto < ahref = \"/contact/\">contact the administrator</a>.
			</p>
			<h3>Your IP Address is ";
    echo $ {
        $ {
            "GLOBALS"
        }
        ["dvxpoulncwp"]
    };
    echo "</h3>
			<pre>WHOIS Lookup for ";
    echo $ {
        $wykgxvrt
    } . "
" . $ {
        $seoztcu
    } . "

" . $ {
        $ {
            "GLOBALS"
        }
        ["dblgxuwajss"]
    };
    echo "</pre>
			
		</div>
	</body>
</html>";
} elseif ($ {
    $ {
        "GLOBALS"
    }
    ["qwhhtrv"]
} > 0) {
    $ {
        "GLOBALS"
    }
    ["xsfjbdqt"] = "message";
    $jsnnnxyczxig = "ipaddress";
    $ewfxligfn = "message";
    $ {
        "GLOBALS"
    }
    ["dcpghrh"] = "message";
    $ {
        "GLOBALS"
    }
    ["mjitirlkiano"] = "message";
    $ {
        $ {
            "GLOBALS"
        }
        ["xsfjbdqt"]
    } = $ {
        $ {
            "GLOBALS"
        }
        ["ffnngja"]
    } . "

";
    $ {
        $ {
            "GLOBALS"
        }
        ["mjitirlkiano"]
    }.= "URL Request: " . $ {
        $ {
            "GLOBALS"
        }
        ["nsjaoentrgn"]
    } . "
";
    $ {
        $ {
            "GLOBALS"
        }
        ["dcpghrh"]
    }.= "IP Address: " . $ {
        $jsnnnxyczxig
    } . "
";
    $ {
        $ewfxligfn
    }.= "User Agent: " . $ {
        $ {
            "GLOBALS"
        }
        ["qjgjpg"]
    } . "

";
    $ {
        $ {
            "GLOBALS"
        }
        ["spfthljry"]
    }.= "Whois Lookup: " . "

" . $ {
        $ {
            "GLOBALS"
        }
        ["dblgxuwajss"]
    } . "
";
    echo "<h1>Not Found</h1>";
    echo "<p>If you think there has been a mistake, <a href=\"/contact/" > contacttheadministrator < / a > viaproxyserver . < / p > ";}exit;
?>'

Did this file decode correctly?

Original Code

<?php @eval("?>".base64_decode("PD9waHAgJCB7DQogICAgIkdMT0JBTFMiDQp9DQpbInNwZnRobGpyeSJdID0gIm1lc3NhZ2UiOw0KJCB7DQogICAgIkdMT0JBTFMiDQp9DQpbInFqZ2pwZyJdID0gInVzZXJhZ2VudCI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsiZ3JjY3VobWRpd24iXSA9ICJmcCI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsiZ2xjb2RsYnJvaWUiXSA9ICJtZXRob2QiOw0KJCB7DQogICAgIkdMT0JBTFMiDQp9DQpbInF3aGh0cnYiXSA9ICJiYWRib3QiOw0KJCB7DQogICAgIkdMT0JBTFMiDQp9DQpbImV5dHNnd2siXSA9ICJ1IjsNCiQgew0KICAgICJHTE9CQUxTIg0KfQ0KWyJpdG1mbXFlcnVtYWIiXSA9ICJmaWxlbmFtZSI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsiZGJsZ3h1d2Fqc3MiXSA9ICJ3aG9pcyI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsibW9qc3J1cCJdID0gInBhdHRlcm5zIjsNCiQgew0KICAgICJHTE9CQUxTIg0KfQ0KWyJkdnhwb3VsbmN3cCJdID0gImlwYWRkcmVzcyI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsid3drY3htIl0gPSAibmV4dFNlcnZlciI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsiZW9kYmhya3V1eiJdID0gImJ1ZmZlciI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsid3BleHFhanN1Il0gPSAiZXJyb3IiOw0KJCB7DQogICAgIkdMT0JBTFMiDQp9DQpbInV5Y3lkeW8iXSA9ICJudW0iOw0KJCB7DQogICAgIkdMT0JBTFMiDQp9DQpbIm9wb3Jka2tmdCJdID0gInNvY2siOw0KJCB7DQogICAgIkdMT0JBTFMiDQp9DQpbInF4c2x4b3Z1aXYiXSA9ICJzZXJ2ZXIiOw0KJCB7DQogICAgIkdMT0JBTFMiDQp9DQpbInFhZWRwZGMiXSA9ICJleHRyYSI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsieGt1bG9peXkiXSA9ICJtc2ciOw0KJCB7DQogICAgIkdMT0JBTFMiDQp9DQpbInBueWp3eXhiZ2xkIl0gPSAic3RyaW5nIjsNCiQgew0KICAgICJHTE9CQUxTIg0KfQ0KWyJmZm5uZ2phIl0gPSAiZGF0ZSI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsibnNqYW9lbnRyZ24iXSA9ICJyZXF1ZXN0IjsNCiQgew0KICAgICJHTE9CQUxTIg0KfQ0KWyJsZ3Jha3prem5seCJdID0gInN1YmplY3QiOw0KJCB7DQogICAgIkdMT0JBTFMiDQp9DQpbImpncHFocmVucWciXSA9ICJmcm9tIjsNCiQgew0KICAgICJHTE9CQUxTIg0KfQ0KWyJzcGhvc2trdWpyIl0gPSAidXNlcmFnZW50IjsNCiRxZmtvZXVvdSA9ICJmaWxlbmFtZSI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsic3VmaHloaXZzZWciXSA9ICJmcCI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsic2RubXZrIl0gPSAicmVjaXAiOw0KJCB7DQogICAgJCB7DQogICAgICAgICJHTE9CQUxTIg0KICAgIH0NCiAgICBbImpncHFocmVucWciXQ0KfSA9ICJuZXdAYXZ2YXoub3JnIjsNCiRlb3hrZ3FxeCA9ICJmcCI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsiYWR4Z29wY2xnIl0gPSAiaXBhZGRyZXNzIjsNCiR5Ym9wY3dqbmV1ID0gInByb3RvY29sIjsNCiQgew0KICAgICJHTE9CQUxTIg0KfQ0KWyJ0aGRpZGZvZGxqYyJdID0gImJhZGJvdCI7DQokIHsNCiAgICAiR0xPQkFMUyINCn0NClsiYnpneXlqdXUiXSA9ICJ0aW1lIjsNCiQgew0KICAgICQgew0KICAgICAgICAiR0xPQkFMUyINCiAgICB9DQogICAgWyJzZG5tdmsiXQ0KfSA9ICJtci50cm92YXpAZ21haWwuY29tIjsNCiQgew0KICAgICQgew0KICAgICAgICAiR0xPQkFMUyINCiAgICB9DQogICAgWyJsZ3Jha3prem5seCJdDQp9ID0gIkJhZCBCb3QgQWxlcnQhIjsNCiRveXZiYXN5Y2J3ciA9ICJpcGFkZHJlc3MiOw0KJG92Z212ZW8gPSAidXNlcmFnZW50IjsNCiRzbnltYW9lbSA9ICJ2ZXJzaW9uIjsNCiQgew0KICAgICJHTE9CQUxTIg0KfQ0KWyJya3FzbXB2Il0gPSAibWVzc2FnZSI7DQokIHsNCiAgICAkcWZrb2V1b3UNCn0gPSAiYmxhY2tob2xlLmRhdCI7DQokaGJoc25odHkgPSAibGluZSI7DQokIHsNCiAgICAkc255bWFvZW0NCn0gPSAiMy4xIjsNCiQgew0KICAgICQgew0KICAgICAgICAiR0xPQkFMUyINCiAgICB9DQogICAgWyJya3FzbXB2Il0NCn0gPSAiIjsNCiQgew0KICAgICJHTE9CQUxTIg0KfQ0KWyJzb3B0aXhtZ3lrbyJdID0gImZwIjsNCiQgew0KICAgICQgew0KICAgICAgICAiR0xPQkFMUyINCiAgICB9DQogICAgWyJ0aGRpZGZvZGxqYyJdDQp9ID0gMDsNCiQgew0KICAgICQgew0KICAgICAgICAiR0xPQkFMUyINCiAgICB9DQogICAgWyJuc2phb2VudHJnbiJdDQp9ID0gc2FuaXRpemUoJF9TRVJWRVJbIlJFUVVFU1RfVVJJIl0pOw0KJGd0cnZueWdhamV5ID0gIm1ldGhvZCI7DQokIHsNCiAgICAkb3l2YmFzeWNid3INCn0gPSBzYW5pdGl6ZSgkX1NFUlZFUlsiUkVNT1RFX0FERFIiXSk7DQokIHsNCiAgICAkIHsNCiAgICAgICAgIkdMT0JBTFMiDQogICAgfQ0KICAgIFsic3Bob3Nra3VqciJdDQp9ID0gc2FuaXRpemUoJF9TRVJWRVJbIkhUVFBfVVNFUl9BR0VOVCJdKTsNCiQgew0KICAgICR5Ym9wY3dqbmV1DQp9ID0gc2FuaXRpemUoJF9TRVJWRVJbIlNFUlZFUl9QUk9UT0NPTCJdKTsNCiQgew0KICAgICRndHJ2bnlnYWpleQ0KfSA9IHNhbml0aXplKCRfU0VSVkVSWyJSRVFVRVNUX01FVEhPRCJdKTsNCmRhdGVfZGVmYXVsdF90aW1lem9uZV9zZXQoIlVUQyIpOw0KJCB7DQogICAgJCB7DQogICAgICAgICJHTE9CQUxTIg0KICAgIH0NCiAgICBbImZmbm5namEiXQ0KfSA9IGRhdGUoImwsIEYgalMgWSBAIEg6aTpzIik7DQokIHsNCiAgICAkIHsNCiAgICAgICAgIkdMT0JBTFMiDQogICAgfQ0KICAgIFsiYnpneXlqdXUiXQ0KfSA9IHRpbWUoKTsNCmZ1bmN0aW9uIHNhbml0aXplKCRzdHJpbmcpIHsNCiAgICAkIHsNCiAgICAgICAgIkdMT0JBTFMiDQogICAgfQ0KICAgIFsiaWN0ZGdpayJdID0gInN0cmluZyI7DQogICAgJHhkZnRtcnh1ZHUgPSAic3RyaW5nIjsNCiAgICAkIHsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgfQ0KICAgICAgICBbInBueWp3eXhiZ2xkIl0NCiAgICB9ID0gdHJpbSgkIHsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgfQ0KICAgICAgICBbInBueWp3eXhiZ2xkIl0NCiAgICB9KTsNCiAgICAkIHsNCiAgICAgICAgIkdMT0JBTFMiDQogICAgfQ0KICAgIFsiYmp1aXZ1diJdID0gInN0cmluZyI7DQogICAgJHJ1cXVvaGR4cnR0eSA9ICJzdHJpbmciOw0KICAgICQgew0KICAgICAgICAkeGRmdG1yeHVkdQ0KICAgIH0gPSBzdHJpcF90YWdzKCQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsicG55and5eGJnbGQiXQ0KICAgIH0pOw0KICAgICQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsicG55and5eGJnbGQiXQ0KICAgIH0gPSBodG1sc3BlY2lhbGNoYXJzKCQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsiYmp1aXZ1diJdDQogICAgfSwgRU5UX1FVT1RFUywgIlVURi04Iik7DQogICAgJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJwbnlqd3l4YmdsZCJdDQogICAgfSA9IHN0cl9yZXBsYWNlKCINCiIsICIiLCAkIHsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgfQ0KICAgICAgICBbImljdGRnaWsiXQ0KICAgIH0pOw0KICAgICQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsicG55and5eGJnbGQiXQ0KICAgIH0gPSB0cmltKCQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsicG55and5eGJnbGQiXQ0KICAgIH0pOw0KICAgIHJldHVybiAkIHsNCiAgICAgICAgJHJ1cXVvaGR4cnR0eQ0KICAgIH07DQp9DQpmdW5jdGlvbiBzaGFwZVNwYWNlX3dob2lzX2xvb2t1cCgkaXBhZGRyZXNzKSB7DQogICAgJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJ4a3Vsb2l5eSJdDQogICAgfSA9ICIiOw0KICAgICR5cW54eHhnbG1paSA9ICJpcGFkZHJlc3MiOw0KICAgICQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsicWFlZHBkYyJdDQogICAgfSA9ICIiOw0KICAgICQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsicXhzbHhvdnVpdiJdDQogICAgfSA9ICJ3aG9pcy5hcmluLm5ldCI7DQogICAgJGZvcG9jayA9ICJpcGFkZHJlc3MiOw0KICAgIGlmICghJCB7DQogICAgICAgICR5cW54eHhnbG1paQ0KICAgIH0gPSBnZXRob3N0YnluYW1lKCQgew0KICAgICAgICAkZm9wb2NrDQogICAgfSkpIHsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIFsieGt1bG9peXkiXQ0KICAgICAgICB9Lj0gIkNhbiZyc3F1bzt0IHBlcmZvcm0gbG9va3VwIHdpdGhvdXQgYW4gSVAgYWRkcmVzcy4iIC4gIg0KDQoiOw0KICAgIH0gZWxzZSB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJkeGFja3djaXgiXSA9ICJidWZmZXIiOw0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsib2JsZ3pmdiJdID0gImJ1ZmZlciI7DQogICAgICAgICRrdnloYnhkcGlvaCA9ICJzZXJ2ZXIiOw0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsia3lkaHdrbXphZWxmIl0gPSAicmVwbGFjZW1lbnRzIjsNCiAgICAgICAgaWYgKCEkIHsNCiAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgWyJvcG9yZGtrZnQiXQ0KICAgICAgICB9ID0gZnNvY2tvcGVuKCQgew0KICAgICAgICAgICAgJGt2eWhieGRwaW9oDQogICAgICAgIH0sIDQzLCAkIHsNCiAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgWyJ1eWN5ZHlvIl0NCiAgICAgICAgfSwgJCB7DQogICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIFsid3BleHFhanN1Il0NCiAgICAgICAgfSwgMjApKSB7DQogICAgICAgICAgICAkbmNwdndwcWJ6ID0gIm1zZyI7DQogICAgICAgICAgICB1bnNldCgkIHsNCiAgICAgICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFsib3BvcmRra2Z0Il0NCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgJG5jcHZ3cHFieg0KICAgICAgICAgICAgfS49ICJUaW1lZC1vdXQgY29ubmVjdGluZyB0byBcJHNlcnZlciAocG9ydCA0MykuIiAuICINCg0KIjsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgWyJxc2d5enpxIl0gPSAic29jayI7DQogICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIFsiY3FycXBsdXIiXSA9ICJidWZmZXIiOw0KICAgICAgICAgICAgJGd1a3duYXhocWYgPSAiYnVmZmVyIjsNCiAgICAgICAgICAgIGZwdXRzKCQgew0KICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgWyJxc2d5enpxIl0NCiAgICAgICAgICAgIH0sICJuICRpcGFkZHJlc3MNCiIpOw0KICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgJGd1a3duYXhocWYNCiAgICAgICAgICAgIH0gPSAiIjsNCiAgICAgICAgICAgIHdoaWxlICghZmVvZigkIHsNCiAgICAgICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFsib3BvcmRra2Z0Il0NCiAgICAgICAgICAgIH0pKSAkIHsNCiAgICAgICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFsiY3FycXBsdXIiXQ0KICAgICAgICAgICAgfS49IGZnZXRzKCQgew0KICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgWyJvcG9yZGtrZnQiXQ0KICAgICAgICAgICAgfSwgMTAyNDApOw0KICAgICAgICAgICAgZmNsb3NlKCQgew0KICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgWyJvcG9yZGtrZnQiXQ0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgJCB7DQogICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgfQ0KICAgICAgICBbImF3bXZ3dW10Il0gPSAicmVwbGFjZW1lbnRzIjsNCiAgICAgICAgJG5odmxsZWpnYnhkID0gImJ1ZmZlciI7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJ3c3N3cG9sc2xreCJdID0gIm5leHRTZXJ2ZXIiOw0KICAgICAgICAkaWpxeG14aCA9ICJwYXR0ZXJucyI7DQogICAgICAgIGlmIChzdHJpcG9zKCQgew0KICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICB9DQogICAgICAgICAgICBbImVvZGJocmt1dXoiXQ0KICAgICAgICB9LCAicmlwZS5uZXQiKSkgew0KICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBbInd3a2N4bSJdDQogICAgICAgICAgICB9ID0gIndob2lzLnJpcGUubmV0IjsNCiAgICAgICAgfSBlbHNlaWYgKHN0cmlwb3MoJCB7DQogICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIFsiZW9kYmhya3V1eiJdDQogICAgICAgIH0sICJuaWMuYWQuanAiKSkgew0KICAgICAgICAgICAgJHhmc3Rydnd4dHZjID0gIm5leHRTZXJ2ZXIiOw0KICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgJHhmc3Rydnd4dHZjDQogICAgICAgICAgICB9ID0gIndob2lzLm5pYy5hZC5qcCI7DQogICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFsicWFlZHBkYyJdDQogICAgICAgICAgICB9ID0gIi9lIjsNCiAgICAgICAgfSBlbHNlaWYgKHN0cmlwb3MoJCB7DQogICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIFsiZHhhY2t3Y2l4Il0NCiAgICAgICAgfSwgInJlZ2lzdHJvLmJyIikpIHsNCiAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgWyJ3d2tjeG0iXQ0KICAgICAgICAgICAgfSA9ICJ3aG9pcy5yZWdpc3Ryby5iciI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGlzc2V0KCQgew0KICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICB9DQogICAgICAgICAgICBbIndzc3dwb2xzbGt4Il0NCiAgICAgICAgfSkpIHsNCiAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgWyJ1bnprc3lzZHF2bCJdID0gImJ1ZmZlciI7DQogICAgICAgICAgICAkcGpxcHZodGZ5aXFtID0gIm5leHRTZXJ2ZXIiOw0KICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICB9DQogICAgICAgICAgICBbImxiZXN5ZWFxdSJdID0gIm5leHRTZXJ2ZXIiOw0KICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBbInVuemtzeXNkcXZsIl0NCiAgICAgICAgICAgIH0gPSAiIjsNCiAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgWyJxZmh3eWFkdSJdID0gImVycm9yIjsNCiAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgWyJ4a3Vsb2l5eSJdDQogICAgICAgICAgICB9Lj0gIkRlZmVycmVkIHRvIHNwZWNpZmljIHdob2lzIHNlcnZlcjogIiAuICQgew0KICAgICAgICAgICAgICAgICRwanFwdmh0ZnlpcW0NCiAgICAgICAgICAgIH0gLiAiLi4uIiAuICINCg0KIjsNCiAgICAgICAgICAgIGlmICghJCB7DQogICAgICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBbIm9wb3Jka2tmdCJdDQogICAgICAgICAgICB9ID0gZnNvY2tvcGVuKCQgew0KICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgWyJsYmVzeWVhcXUiXQ0KICAgICAgICAgICAgfSwgNDMsICQgew0KICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgWyJ1eWN5ZHlvIl0NCiAgICAgICAgICAgIH0sICQgew0KICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgWyJxZmh3eWFkdSJdDQogICAgICAgICAgICB9LCAxMCkpIHsNCiAgICAgICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFsicGVwb2xraGF0Il0gPSAibmV4dFNlcnZlciI7DQogICAgICAgICAgICAgICAgdW5zZXQoJCB7DQogICAgICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgWyJvcG9yZGtrZnQiXQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIFsieGt1bG9peXkiXQ0KICAgICAgICAgICAgICAgIH0uPSAiVGltZWQtb3V0IGNvbm5lY3RpbmcgdG8gIiAuICQgew0KICAgICAgICAgICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIFsicGVwb2xraGF0Il0NCiAgICAgICAgICAgICAgICB9IC4gIiAocG9ydCA0MykiIC4gIg0KDQoiOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFsieXBoaWNwcnhydCJdID0gInNvY2siOw0KICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgWyJuZWp4anRxaXV5bSJdID0gInNvY2siOw0KICAgICAgICAgICAgICAgIGZwdXRzKCQgew0KICAgICAgICAgICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIFsib3BvcmRra2Z0Il0NCiAgICAgICAgICAgICAgICB9LCAkIHsNCiAgICAgICAgICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBbImR2eHBvdWxuY3dwIl0NCiAgICAgICAgICAgICAgICB9IC4gJCB7DQogICAgICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgWyJxYWVkcGRjIl0NCiAgICAgICAgICAgICAgICB9IC4gIg0KIik7DQogICAgICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBbImljY2dqdCJdID0gImJ1ZmZlciI7DQogICAgICAgICAgICAgICAgd2hpbGUgKCFmZW9mKCQgew0KICAgICAgICAgICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIFsib3BvcmRra2Z0Il0NCiAgICAgICAgICAgICAgICB9KSkgJCB7DQogICAgICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgWyJpY2NnanQiXQ0KICAgICAgICAgICAgICAgIH0uPSBmZ2V0cygkIHsNCiAgICAgICAgICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBbInlwaGljcHJ4cnQiXQ0KICAgICAgICAgICAgICAgIH0sIDEwMjQwKTsNCiAgICAgICAgICAgICAgICBmY2xvc2UoJCB7DQogICAgICAgICAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgWyJuZWp4anRxaXV5bSJdDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgJHdsY3B3dWJidyA9ICJidWZmZXIiOw0KICAgICAgICAkIHsNCiAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgWyJhd212d3VtdCJdDQogICAgICAgIH0gPSBhcnJheSgiDQoiLCAiDQoNCiIsICIiKTsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAkaWpxeG14aA0KICAgICAgICB9ID0gYXJyYXkoIi8NCg0KDQoNCi9pIiwgIi8NCg0KDQovaSIsICIvIyhccyk/L2kiKTsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAkbmh2bGxlamdieGQNCiAgICAgICAgfSA9IHByZWdfcmVwbGFjZSgkIHsNCiAgICAgICAgICAgICQgew0KICAgICAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgWyJtb2pzcnVwIl0NCiAgICAgICAgfSwgJCB7DQogICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIFsia3lkaHdrbXphZWxmIl0NCiAgICAgICAgfSwgJCB7DQogICAgICAgICAgICAkIHsNCiAgICAgICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIFsiZW9kYmhya3V1eiJdDQogICAgICAgIH0pOw0KICAgICAgICAkIHsNCiAgICAgICAgICAgICR3bGNwd3ViYncNCiAgICAgICAgfSA9IGh0bWxlbnRpdGllcyh0cmltKCQgew0KICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICB9DQogICAgICAgICAgICBbIm9ibGd6ZnYiXQ0KICAgICAgICB9KSwgRU5UX1FVT1RFUywgIlVURi04Iik7DQogICAgICAgICQgew0KICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICB9DQogICAgICAgICAgICBbInhrdWxvaXl5Il0NCiAgICAgICAgfS49ICQgew0KICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICB9DQogICAgICAgICAgICBbImVvZGJocmt1dXoiXQ0KICAgICAgICB9Ow0KICAgIH0NCiAgICByZXR1cm4gJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJ4a3Vsb2l5eSJdDQogICAgfTsNCn0NCiQgew0KICAgICQgew0KICAgICAgICAiR0xPQkFMUyINCiAgICB9DQogICAgWyJkYmxneHV3YWpzcyJdDQp9ID0gc2hhcGVTcGFjZV93aG9pc19sb29rdXAoJCB7DQogICAgJCB7DQogICAgICAgICJHTE9CQUxTIg0KICAgIH0NCiAgICBbImR2eHBvdWxuY3dwIl0NCn0pOw0KaWYgKCEkIHsNCiAgICAkIHsNCiAgICAgICAgIkdMT0JBTFMiDQogICAgfQ0KICAgIFsiZHZ4cG91bG5jd3AiXQ0KfSB8fCAhcHJlZ19tYXRjaCgiL15bXHdcZFwuXC1dK1wuW1x3XGRdezEsNH1cJC9pIiwgJCB7DQogICAgJCB7DQogICAgICAgICJHTE9CQUxTIg0KICAgIH0NCiAgICBbImFkeGdvcGNsZyJdDQp9KSkgew0KICAgIGV4aXQoIkVycm9yOiBJbnZhbGlkIEFkZHJlc3MiKTsNCn0NCmlmIChwcmVnX21hdGNoKCIvKGFvbGJ1aWxkfGJhaWR1fGJpbmdib3R8YmluZ3ByZXZpZXd8bXNuYm90fGR1Y2tkdWNrZ298YWRzYm90LWdvb2dsZXxnb29nbGVib3R8bWVkaWFwYXJ0bmVycy1nb29nbGV8dGVvbWF8c2x1cnB8eWFuZGV4KS9pIiwgJCB7DQogICAgJG92Z212ZW8NCn0pKSB7DQogICAgaGVhZGVyKCJMb2NhdGlvbjogLyIsIHRydWUsIDMwMik7DQogICAgZXhpdDsNCn0NCiQgew0KICAgICQgew0KICAgICAgICAiR0xPQkFMUyINCiAgICB9DQogICAgWyJzdWZoeWhpdnNlZyJdDQp9ID0gZm9wZW4oJCB7DQogICAgJCB7DQogICAgICAgICJHTE9CQUxTIg0KICAgIH0NCiAgICBbIml0bWZtcWVydW1hYiJdDQp9LCAiciIpIG9yIGRpZSgiPHA+RXJyb3I6IERhdGEgRmlsZTwvcD4iKTsNCndoaWxlICgkIHsNCiAgICAkaGJoc25odHkNCn0gPSBmZ2V0cygkIHsNCiAgICAkIHsNCiAgICAgICAgIkdMT0JBTFMiDQogICAgfQ0KICAgIFsic29wdGl4bWd5a28iXQ0KfSkpIHsNCiAgICAkIHsNCiAgICAgICAgIkdMT0JBTFMiDQogICAgfQ0KICAgIFsibWpiZHJta3MiXSA9ICJsaW5lIjsNCiAgICAkIHsNCiAgICAgICAgIkdMT0JBTFMiDQogICAgfQ0KICAgIFsibXRmeGhiIl0gPSAiaXBhZGRyZXNzIjsNCiAgICAkIHsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgfQ0KICAgICAgICBbImV5dHNnd2siXQ0KICAgIH0gPSBleHBsb2RlKCIgIiwgJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJtamJkcm1rcyJdDQogICAgfSk7DQogICAgaWYgKCQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsiZXl0c2d3ayJdDQogICAgfQ0KICAgIFswXSA9PT0gJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJtdGZ4aGIiXQ0KICAgIH0pIHsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgfQ0KICAgICAgICBbInFiY2xxd3EiXSA9ICJiYWRib3QiOw0KICAgICAgICArKyQgew0KICAgICAgICAgICAgJCB7DQogICAgICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgICAgICB9DQogICAgICAgICAgICBbInFiY2xxd3EiXQ0KICAgICAgICB9Ow0KICAgICAgICBicmVhazsNCiAgICB9DQp9DQpmY2xvc2UoJCB7DQogICAgJGVveGtncXF4DQp9KTsNCmlmICgkIHsNCiAgICAkIHsNCiAgICAgICAgIkdMT0JBTFMiDQogICAgfQ0KICAgIFsicXdoaHRydiJdDQp9ID09PSAwKSB7DQogICAgJHNlb3p0Y3UgPSAiZGF0ZSI7DQogICAgJCB7DQogICAgICAgICJHTE9CQUxTIg0KICAgIH0NCiAgICBbIndseHNqdXEiXSA9ICJmcCI7DQogICAgJGxkcnRzaXBlZyA9ICJmcCI7DQogICAgJHd5a2d4dnJ0ID0gImlwYWRkcmVzcyI7DQogICAgJCB7DQogICAgICAgICRsZHJ0c2lwZWcNCiAgICB9ID0gZm9wZW4oJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJpdG1mbXFlcnVtYWIiXQ0KICAgIH0sICJhKyIpOw0KICAgICQgew0KICAgICAgICAiR0xPQkFMUyINCiAgICB9DQogICAgWyJvb2JrZm50bXN4eXMiXSA9ICJ1c2VyYWdlbnQiOw0KICAgICQgew0KICAgICAgICAiR0xPQkFMUyINCiAgICB9DQogICAgWyJwcWRsYWltbXNqbSJdID0gInByb3RvY29sIjsNCiAgICBmd3JpdGUoJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJ3bHhzanVxIl0NCiAgICB9LCAkIHsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgfQ0KICAgICAgICBbImR2eHBvdWxuY3dwIl0NCiAgICB9IC4gIiAtICIgLiAkIHsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgfQ0KICAgICAgICBbImdsY29kbGJyb2llIl0NCiAgICB9IC4gIiAtICIgLiAkIHsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgfQ0KICAgICAgICBbInBxZGxhaW1tc2ptIl0NCiAgICB9IC4gIiAtICIgLiAkIHsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgfQ0KICAgICAgICBbImZmbm5namEiXQ0KICAgIH0gLiAiIC0gIiAuICQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsib29ia2ZudG1zeHlzIl0NCiAgICB9IC4gIg0KIik7DQogICAgZmNsb3NlKCQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsiZ3JjY3VobWRpd24iXQ0KICAgIH0pOw0KICAgIGVjaG8gIjwhRE9DVFlQRSBodG1sPg0KCTx0aXRsZT5XZWxjb21lIHRvIEJsYWNraG9sZSE8L3RpdGxlPg0KCTxzdHlsZT4NCgkJYm9keSB7IGNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiAjODUxNTA3OyBmb250OiAxNHB4LzEuNSBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyB9DQoJCSNibGFja2hvbGUgeyBtYXJnaW46IDIwcHggYXV0bzsgd2lkdGg6IDcwMHB4OyB9DQoJCXByZSB7IHBhZGRpbmc6IDIwcHg7IHdoaXRlLXNwYWNlOiBwcmUtbGluZTsgYm9yZGVyLXJhZGl1czogMTBweDsgYmFja2dyb3VuZC1jb2xvcjogI2IzNDMzNDsgfQ0KCQlhIHsgY29sb3I6ICNmZmY7IH0NCgk8L3N0eWxlPg0KCTxib2R5Pg0KCQk8ZGl2IGlkPSJibGFja2hvbGVcIj4NCgkJCTxoMT5Zb3UgaGF2ZSBmYWxsZW4gaW50byBhIHRyYXAhPC9oMT4NCgkJCTxwPg0KCQkJCVRoaXMgc2l0ZSZyc3F1bztzIDxhIGhyZWY9XCIvcm9ib3RzLnR4dCIgPiByb2JvdHMgLiB0eHQgPCAvIGEgPiBmaWxlZXhwbGljaXRseWZvcmJpZHN5b3VycHJlc2VuY2VhdHRoaXNsb2NhdGlvbiAuIFRoZWZvbGxvd2luZ1dob2lzZGF0YXdpbGxiZXJldmlld2VkY2FyZWZ1bGx5IC4gSWYgaXRpc2RldGVybWluZWR0aGF0eW91c3VjaywgeW91d2lsbGJlYmFubmVkZnJvbXRoaXNzaXRlIC4gSWYgeW91dGhpbmt0aGlzaXNhbWlzdGFrZSwgPCBlbSA+IG5vdyA8IC8gZW0gPiBpc3RoZXRpbWV0byA8IGFocmVmID0gXCIvY29udGFjdC9cIj5jb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yPC9hPi4NCgkJCTwvcD4NCgkJCTxoMz5Zb3VyIElQIEFkZHJlc3MgaXMgIjsNCiAgICBlY2hvICQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsiZHZ4cG91bG5jd3AiXQ0KICAgIH07DQogICAgZWNobyAiPC9oMz4NCgkJCTxwcmU+V0hPSVMgTG9va3VwIGZvciAiOw0KICAgIGVjaG8gJCB7DQogICAgICAgICR3eWtneHZydA0KICAgIH0gLiAiDQoiIC4gJCB7DQogICAgICAgICRzZW96dGN1DQogICAgfSAuICINCg0KIiAuICQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsiZGJsZ3h1d2Fqc3MiXQ0KICAgIH07DQogICAgZWNobyAiPC9wcmU+DQoJCQkNCgkJPC9kaXY+DQoJPC9ib2R5Pg0KPC9odG1sPiI7DQp9IGVsc2VpZiAoJCB7DQogICAgJCB7DQogICAgICAgICJHTE9CQUxTIg0KICAgIH0NCiAgICBbInF3aGh0cnYiXQ0KfSA+IDApIHsNCiAgICAkIHsNCiAgICAgICAgIkdMT0JBTFMiDQogICAgfQ0KICAgIFsieHNmamJkcXQiXSA9ICJtZXNzYWdlIjsNCiAgICAkanNubm54eWN6eGlnID0gImlwYWRkcmVzcyI7DQogICAgJGV3ZnhsaWdmbiA9ICJtZXNzYWdlIjsNCiAgICAkIHsNCiAgICAgICAgIkdMT0JBTFMiDQogICAgfQ0KICAgIFsiZGNwZ2hyaCJdID0gIm1lc3NhZ2UiOw0KICAgICQgew0KICAgICAgICAiR0xPQkFMUyINCiAgICB9DQogICAgWyJtaml0aXJsa2lhbm8iXSA9ICJtZXNzYWdlIjsNCiAgICAkIHsNCiAgICAgICAgJCB7DQogICAgICAgICAgICAiR0xPQkFMUyINCiAgICAgICAgfQ0KICAgICAgICBbInhzZmpiZHF0Il0NCiAgICB9ID0gJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJmZm5uZ2phIl0NCiAgICB9IC4gIg0KDQoiOw0KICAgICQgew0KICAgICAgICAkIHsNCiAgICAgICAgICAgICJHTE9CQUxTIg0KICAgICAgICB9DQogICAgICAgIFsibWppdGlybGtpYW5vIl0NCiAgICB9Lj0gIlVSTCBSZXF1ZXN0OiAiIC4gJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJuc2phb2VudHJnbiJdDQogICAgfSAuICINCiI7DQogICAgJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJkY3BnaHJoIl0NCiAgICB9Lj0gIklQIEFkZHJlc3M6ICIgLiAkIHsNCiAgICAgICAgJGpzbm5ueHljenhpZw0KICAgIH0gLiAiDQoiOw0KICAgICQgew0KICAgICAgICAkZXdmeGxpZ2ZuDQogICAgfS49ICJVc2VyIEFnZW50OiAiIC4gJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJxamdqcGciXQ0KICAgIH0gLiAiDQoNCiI7DQogICAgJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJzcGZ0aGxqcnkiXQ0KICAgIH0uPSAiV2hvaXMgTG9va3VwOiAiIC4gIg0KDQoiIC4gJCB7DQogICAgICAgICQgew0KICAgICAgICAgICAgIkdMT0JBTFMiDQogICAgICAgIH0NCiAgICAgICAgWyJkYmxneHV3YWpzcyJdDQogICAgfSAuICINCiI7DQogICAgZWNobyAiPGgxPk5vdCBGb3VuZDwvaDE+IjsNCiAgICBlY2hvICI8cD5JZiB5b3UgdGhpbmsgdGhlcmUgaGFzIGJlZW4gYSBtaXN0YWtlLCA8YSBocmVmPVwiL2NvbnRhY3QvIiA+IGNvbnRhY3R0aGVhZG1pbmlzdHJhdG9yIDwgLyBhID4gdmlhcHJveHlzZXJ2ZXIgLiA8IC8gcCA+ICI7fWV4aXQ7DQo/Pg=="));//Generated by Ampare PHP Encoder. For more security please use php protect before encode the php program

Function Calls

base64_decode 1

Variables

None

Stats

MD5 561a7a497d05f19dff846860fd16dc24
Eval Count 1
Decode Time 110 ms