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 namespace Drupal\miniorange_saml; use DOMElement; use DOMNode; use DOMXPat..

Decoded Output download

<?php 
 
 
namespace Drupal\miniorange_saml; 
 
use DOMElement; 
use DOMNode; 
use DOMXPath; 
use DOMDocument; 
use Drupal\Core\Render\Markup; 
use Drupal\Component\Utility\Xss; 
class Utilities 
{ 
    public static function isCustomerRegistered(&$form, $form_state) 
    { 
        global $base_url; 
        $mF = $base_url . "/admin/config/people/miniorange_saml/customer_setup/"; 
        if (\Drupal::config("miniorange_saml.settings")->get("miniorange_saml_customer_admin_email") == NULL || \Drupal::config("miniorange_saml.settings")->get("miniorange_saml_customer_id") == NULL || \Drupal::config("miniorange_saml.settings")->get("miniorange_saml_customer_admin_token") == NULL || \Drupal::config("miniorange_saml.settings")->get("miniorange_saml_customer_api_key") == NULL) { 
            goto Yh; 
        } 
        if (\Drupal::config("miniorange_saml.settings")->get("miniorange_saml_license_key") == NULL) { 
            goto DW; 
        } 
        return FALSE; 
        goto b2; 
        DW: 
        $form["markup_msg"] = array("#markup" => "<div class="mo_saml_register_message">You need to <a href="" . $mF . "" >verify your license</a> key before using this module.</div>"); 
        return TRUE; 
        b2: 
        goto nV; 
        Yh: 
        $form["markup_reg_msg"] = array("#markup" => "<div class="mo_saml_register_message">You need to <a href="" . $mF . "" >Login</a> using miniOrange account before using this module.</div>"); 
        return TRUE; 
        nV: 
    } 
    public static function spConfigGuide(array &$form, \Drupal\Core\Form\FormStateInterface $form_state) 
    { 
        $form["miniorange_idp_guide_link"] = array("#markup" => "<div class="mo_saml_table_layout mo_saml_sp_container_2" id="mo_guide_vt">"); 
        $form["miniorange_idp_guide_link1"] = array("#markup" => "<div style="font-size: 15px;">To see detailed documentation of how to configure Drupal SAML SP with any Identity Provider</div></br>"); 
        $KR = Markup::create("<strong><a href="https://plugins.miniorange.com/drupal-single-sign-sso-using-azure-ad-idp/" class="mo_guide_text-color" target="_blank">Azure AD</a></strong>"); 
        $LI = Markup::create("<strong><a href="https://plugins.miniorange.com/drupal-single-sign-sso-using-adfs-idp" class="mo_guide_text-color" target="_blank">ADFS</a></strong>"); 
        $ss = Markup::create("<strong><a class="mo_guide_text-color" href="https://plugins.miniorange.com/drupal-single-sign-sso-using-okta-idp/" target="_blank">Okta</a></strong>"); 
        $x1 = Markup::create("<strong><a href="https://plugins.miniorange.com/drupal-single-sign-sso-using-google-apps-idp/" class="mo_guide_text-color" target="_blank">Google Apps</a></strong>"); 
        $SC = Markup::create("<strong><a href="https://plugins.miniorange.com/drupal-single-sign-sso-using-salesforce-idp/" class="mo_guide_text-color" target="_blank">Salesforce</a></strong>"); 
        $KN = Markup::create("<strong><a class="mo_guide_text-color" href="https://plugins.miniorange.com/drupal-single-sign-sso-using-miniorange-idp/" target="_blank">miniOrange</a></strong>"); 
        $YA = Markup::create("<strong><a class="mo_guide_text-color" href="https://plugins.miniorange.com/guide-for-drupal-single-sign-on-using-pingone-as-identity-provider" target="_blank">PingOne</a></strong>"); 
        $cF = Markup::create("<strong><a href="https://plugins.miniorange.com/drupal-single-sign-sso-using-onelogin-idp/" class="mo_guide_text-color" target="_blank">Onelogin</a></strong>"); 
        $ja = Markup::create("<strong><a href="https://plugins.miniorange.com/drupal-single-sign-sso-using-bitium-idp" class="mo_guide_text-color" target="_blank">Bitium</a></strong>"); 
        $fQ = Markup::create("<strong><a href="https://plugins.miniorange.com/drupal-single-sign-sso-using-centrify-idp/" class="mo_guide_text-color" target="_blank">Centrify</a></strong>"); 
        $wd = Markup::create("<strong><a href="https://plugins.miniorange.com/guide-to-configure-oracle-access-manager-as-idp-and-drupal-as-sp" class="mo_guide_text-color" target="_blank">Oracle</a></strong>"); 
        $sp = Markup::create("<strong><a href="https://plugins.miniorange.com/drupal-single-sign-on-sso-using-jboss-keycloak-as-idp" class="mo_guide_text-color" target="_blank">Jboss Keycloak</a></strong>"); 
        $hp = Markup::create("<strong><a href="https://plugins.miniorange.com/guide-for-pingfederate-as-idp-with-drupal" class="mo_guide_text-color" target="_blank">Ping Federate</a></strong>"); 
        $Ds = Markup::create("<strong><a href="https://plugins.miniorange.com/guide-for-openam-as-idp-with-drupal" class="mo_guide_text-color" target="_blank">OpenAM</a></strong>"); 
        $bO = Markup::create("<strong><a href="https://plugins.miniorange.com/drupal-single-sign-on-sso-using-authanvil-as-idp" class="mo_guide_text-color" target="_blank">AuthAnvil</a></strong>"); 
        $pZ = Markup::create("<strong><a href="https://plugins.miniorange.com/guide-for-auth0-as-idp-with-drupal" class="mo_guide_text-color" target="_blank">auth0</a></strong>"); 
        $rn = Markup::create("<strong><a href="https://plugins.miniorange.com/guide-for-drupal-single-sign-on-sso-using-rsa-securid-as-idp" class="mo_guide_text-color" target="_blank">RSA SecurID</a></strong>"); 
        $T4 = Markup::create("<strong><a href="https://plugins.miniorange.com/configure-drupal-saml-single-sign-on" class="mo_guide_text-color" target="_blank">Other IDP</a></strong>"); 
        $Ru = array(array($KR, $LI), array($ss, $x1), array($SC, $cF), array($wd, $sp), array($fQ, $YA), array($hp, $Ds), array($bO, $pZ), array($KN, $rn)); 
        $ij = array(array("data" => t("Identity Provider Setup Guides"), "colspan" => 2, "style" => "text-align: center")); 
        $form["modules"] = array("#type" => "table", "#header" => $ij, "#rows" => $Ru, "#attributes" => ["class" => ["mo_guide_table"]]); 
        $form["modules"][8][0] = ["#markup" => $T4, "#wrapper_attributes" => ["colspan" => 2]]; 
        self::faq($form, $form_state); 
        $form["miniorange_sp_guide_link_end"] = array("#markup" => "</div>"); 
    } 
    public static function faq(&$form, &$form_state) 
    { 
        $form["miniorange_faq"] = array("#markup" => "<div class="mo_guide_text-center"><b></b>
                            <a class="button button--primary button--small" href="https://faq.miniorange.com/kb/drupal/saml-drupal/" target="_blank">FAQs</a>
                            <b></b><a class="button button--primary button--small" href="https://forum.miniorange.com/" target="_blank">Ask questions on forum</a>
                          </div>"); 
    } 
    public static function send_support_query($Nx, $nL, $Au, $hb) 
    { 
        $aI = new MiniorangeSamlSupport($Nx, $nL, $Au, $hb); 
        $Zo = $aI->sendSupportQuery(); 
        if ($Zo) { 
            goto Bv; 
        } 
        return false; 
        goto ga; 
        Bv: 
        return true; 
        ga: 
    } 
    public static function getClassNameForImport_Export() 
    { 
        $CN = array("Identity_Provider" => "mo_options_enum_identity_provider", "Service_Provider" => "mo_options_enum_service_provider", "Signin_Settings" => "mo_options_enum_signin_settings", "Mapping" => "mo_options_enum_mapping"); 
        return $CN; 
    } 
    public static function getVariableArrayForImport_Export($i4) 
    { 
        if ($i4 == "mo_options_enum_identity_provider") { 
            goto rp; 
        } 
        if ($i4 == "mo_options_enum_service_provider") { 
            goto NI; 
        } 
        if ($i4 == "mo_options_enum_signin_settings") { 
            goto Zl; 
        } 
        if (!($i4 == "mo_options_enum_mapping")) { 
            goto Ya; 
        } 
        $Bl = array("Username_attribute" => "miniorange_saml_username_attribute", "Email_aatribute" => "miniorange_saml_email_attribute", "Enable_Role_maaping" => "miniorange_saml_enable_rolemapping", "Default_group_for_new_users" => "miniorange_saml_default_role"); 
        Ya: 
        goto Ce; 
        Zl: 
        $Bl = array("Auto_cteation_user" => "miniorange_saml_disable_autocreate_users", "Protect_whole_site" => "miniorange_saml_force_auth", "Auto_redirect" => "miniorange_saml_auto_redirect_to_idp", "Backdoor_Login" => "miniorange_saml_enable_backdoor", "Default_redirect_URL" => "miniorange_saml_default_relaystate"); 
        Ce: 
        goto Y_; 
        NI: 
        $Bl = array("Identity_name" => "miniorange_saml_idp_name", "Issuer" => "miniorange_saml_idp_issuer", "Name_ID_format" => "miniorange_saml_nameid_format", "http_binding" => "miniorange_saml_http_binding", "Login_URL" => "miniorange_saml_idp_login_url", "Logout_URL" => "miniorange_saml_idp_logout_url", "X509_certificate" => "miniorange_saml_idp_certificate", "Sign_request" => "miniorange_saml_request_signed", "Enable_login_with_SAML" => "miniorange_saml_enable_login"); 
        Y_: 
        goto Dk; 
        rp: 
        $Bl = array("SP_Base_Url" => "miniorange_saml_base", "SP_Entity_ID" => "miniorange_saml_entity_id"); 
        Dk: 
        return $Bl; 
    } 
    public static function moStoreDomainInDatabase($fy, $Ms = 0) 
    { 
        global $base_url; 
        global $C1; 
        $v5 = \Drupal::configFactory()->getEditable("miniorange_saml.settings"); 
        $EU = \Drupal::request()->server->get("DOCUMENT_ROOT") . $C1; 
        $Dl = trim($base_url, "/"); 
        if (preg_match("#^http(s)?://#", $Dl)) { 
            goto MF; 
        } 
        $Dl = "http://" . $Dl; 
        MF: 
        $aJ = parse_url($Dl); 
        $Wq = isset($aJ["path"]) ? $aJ["path"] : ''; 
        $xA = preg_replace("/^www\./", '', $aJ["host"] . $Wq); 
        $G6 = $EU . $xA; 
        if ($Ms == 0) { 
            goto Fb; 
        } 
        return $G6; 
        goto KV; 
        Fb: 
        $v5->set("minorange_saml_customer_admin_fraud_check", AESEncryption::encrypt_data($G6, $fy))->save(); 
        KV: 
    } 
    public static function isCurlInstalled() 
    { 
        if (!in_array("curl", get_loaded_extensions())) { 
            goto I_; 
        } 
        return 1; 
        I_: 
        return 0; 
    } 
    public static function generateID() 
    { 
        return "_" . self::stringToHex(self::generateRandomBytes(21)); 
    } 
    public static function stringToHex($u3) 
    { 
        $dA = ''; 
        $H7 = 0; 
        xT: 
        if (!($H7 < strlen($u3))) { 
            goto LX; 
        } 
        $dA .= sprintf("%02x", ord($u3[$H7])); 
        iV: 
        $H7++; 
        goto xT; 
        LX: 
        return $dA; 
    } 
    public static function generateRandomBytes($lj, $ST = TRUE) 
    { 
        return openssl_random_pseudo_bytes($lj); 
    } 
    public static function insertSignature(XMLSecurityKey $fy, array $JY, DOMElement $fe = NULL, DOMNode $Zd = NULL) 
    { 
        $h0 = new XMLSecurityDSig(); 
        $h0->setCanonicalMethod(XMLSecurityDSig::EXC_C14N); 
        switch ($fy->type) { 
            case XMLSecurityKey::RSA_SHA256: 
                $a8 = XMLSecurityDSig::SHA256; 
                goto lP; 
            case XMLSecurityKey::RSA_SHA384: 
                $a8 = XMLSecurityDSig::SHA384; 
                goto lP; 
            case XMLSecurityKey::RSA_SHA512: 
                $a8 = XMLSecurityDSig::SHA512; 
                goto lP; 
            default: 
                $a8 = XMLSecurityDSig::SHA1; 
        } 
        uB: 
        lP: 
        $h0->addReferenceList(array($fe), $a8, array("http://www.w3.org/2000/09/xmldsig#enveloped-signature", XMLSecurityDSig::EXC_C14N), array("id_name" => "ID", "overwrite" => FALSE)); 
        $h0->sign($fy); 
        foreach ($JY as $Ii) { 
            $h0->add509Cert($Ii, TRUE); 
            YO: 
        } 
        tv: 
        $h0->insertSignature($fe, $Zd); 
    } 
    public static function postSAMLRequest($ff, $CG, $U_) 
    { 
        echo "<html><head><script src='https://code.jquery.com/jquery-1.11.3.min.js'></script><script type="text/javascript">$(function(){document.forms['saml-request-form'].submit();});</script></head><body>Please wait...<form action="" . $ff . "" method="post" id="saml-request-form"><input type="hidden" name="SAMLRequest" value="" . $CG . "" /><input type="hidden" name="RelayState" value="" . htmlentities($U_) . "" /></form></body></html>"; 
        exit; 
    } 
    public static function createAuthnRequest($EA, $Fs, $qy, $zU, $S5, $ZW = "false") 
    { 
        $cv = "<?xml version="1.0" encoding="UTF-8"?>" . "<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="" . self::generateID() . "" Version="2.0" IssueInstant="" . self::generateTimestamp() . """; 
        if (!($ZW == "true")) { 
            goto Ir; 
        } 
        $cv .= " ForceAuthn="true""; 
        Ir: 
        $cv .= " ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AssertionConsumerServiceURL="" . $EA . "" Destination="" . $zU . ""><saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">" . $Fs . "</saml:Issuer><samlp:NameIDPolicy AllowCreate="true" Format="" . $qy . ""
                        /></samlp:AuthnRequest>"; 
        if (!(empty($S5) || $S5 == "HTTP-Redirect")) { 
            goto HY; 
        } 
        $pP = gzdeflate($cv); 
        $QI = base64_encode($pP); 
        $wo = urlencode($QI); 
        $cv = $wo; 
        HY: 
        return $cv; 
    } 
    public static function createSAMLRequest($EA, $Fs, $zU, $qy, $ZW = "false") 
    { 
        $cv = "<?xml version="1.0" encoding="UTF-8"?>" . "<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns="urn:oasis:names:tc:SAML:2.0:assertion" ID="" . self::generateID() . "" Version="2.0" IssueInstant="" . self::generateTimestamp() . """; 
        if (!($ZW == "true")) { 
            goto K7; 
        } 
        $cv .= " ForceAuthn="true""; 
        K7: 
        $cv .= " ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AssertionConsumerServiceURL="" . $EA . "" Destination="" . htmlspecialchars($zU) . ""><saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">" . $Fs . "</saml:Issuer><samlp:NameIDPolicy AllowCreate="true" Format="" . $qy . ""/></samlp:AuthnRequest>"; 
        return $cv; 
    } 
    public static function signXML($Rq, $w5, $jW, $pB = '') 
    { 
        $TB = array("type" => "private"); 
        $fy = new XMLSecurityKey(XMLSecurityKey::RSA_SHA256, $TB); 
        $fy->loadKey($jW, FALSE); 
        $dX = new DOMDocument(); 
        $dX->loadXML($Rq); 
        $dC = $dX->firstChild; 
        if (!empty($pB)) { 
            goto XJ; 
        } 
        self::insertSignature($fy, array($w5), $dC); 
        goto U2; 
        XJ: 
        $Gw = $dX->getElementsByTagName($pB)->item(0); 
        self::insertSignature($fy, array($w5), $dC, $Gw); 
        U2: 
        $eq = $dC->ownerDocument->saveXML($dC); 
        $n4 = base64_encode($eq); 
        return $n4; 
    } 
    public static function generateTimestamp($DE = NULL) 
    { 
        if (!($DE === NULL)) { 
            goto Ti; 
        } 
        $DE = time(); 
        Ti: 
        return gmdate("Y-m-d\TH:i:s\Z", $DE); 
    } 
    public static function xpQuery(DOMNode $OX, $Au) 
    { 
        static $Ei = NULL; 
        if ($OX instanceof DOMDocument) { 
            goto AV; 
        } 
        $WI = $OX->ownerDocument; 
        goto Sh; 
        AV: 
        $WI = $OX; 
        Sh: 
        if (!($Ei === NULL || !$Ei->document->isSameNode($WI))) { 
            goto Lb; 
        } 
        $Ei = new DOMXPath($WI); 
        $Ei->registerNamespace("soap-env", "http://schemas.xmlsoap.org/soap/envelope/"); 
        $Ei->registerNamespace("saml_protocol", "urn:oasis:names:tc:SAML:2.0:protocol"); 
        $Ei->registerNamespace("saml_assertion", "urn:oasis:names:tc:SAML:2.0:assertion"); 
        $Ei->registerNamespace("saml_metadata", "urn:oasis:names:tc:SAML:2.0:metadata"); 
        $Ei->registerNamespace("ds", "http://www.w3.org/2000/09/xmldsig#"); 
        $Ei->registerNamespace("xenc", "http://www.w3.org/2001/04/xmlenc#"); 
        Lb: 
        $GU = $Ei->query($Au, $OX); 
        $dA = array(); 
        $H7 = 0; 
        Kf: 
        if (!($H7 < $GU->length)) { 
            goto cy; 
        } 
        $dA[$H7] = $GU->item($H7); 
        Ap: 
        $H7++; 
        goto Kf; 
        cy: 
        return $dA; 
    } 
    public static function parseNameId(DOMElement $Rq) 
    { 
        $dA = array("Value" => trim($Rq->textContent)); 
        foreach (array("NameQualifier", "SPNameQualifier", "Format") as $qi) { 
            if (!$Rq->hasAttribute($qi)) { 
                goto Pu; 
            } 
            $dA[$qi] = $Rq->getAttribute($qi); 
            Pu: 
            wL: 
        } 
        nT: 
        return $dA; 
    } 
    public static function xsDateTimeToTimestamp($t4) 
    { 
        $iP = array(); 
        $H4 = "/^(\d\d\d\d)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)(?:\.\d+)?Z$/D"; 
        if (!(preg_match($H4, $t4, $iP) == 0)) { 
            goto a4; 
        } 
        echo sprintf("nvalid SAML2 timestamp passed to xsDateTimeToTimestamp: " . xss::filter($t4)); 
        exit; 
        a4: 
        $KS = intval($iP[1]); 
        $CU = intval($iP[2]); 
        $Jd = intval($iP[3]); 
        $Y8 = intval($iP[4]); 
        $mk = intval($iP[5]); 
        $QC = intval($iP[6]); 
        $m0 = gmmktime($Y8, $mk, $QC, $CU, $Jd, $KS); 
        return $m0; 
    } 
    public static function extractStrings(DOMElement $Cd, $IQ, $vc) 
    { 
        $dA = array(); 
        $OX = $Cd->firstChild; 
        E2: 
        if (!($OX !== NULL)) { 
            goto kq; 
        } 
        if (!($OX->namespaceURI !== $IQ || $OX->localName !== $vc)) { 
            goto Bz; 
        } 
        goto co; 
        Bz: 
        $dA[] = trim($OX->textContent); 
        co: 
        $OX = $OX->nextSibling; 
        goto E2; 
        kq: 
        return $dA; 
    } 
    public static function validateElement(DOMElement $fe) 
    { 
        $h0 = new XMLSecurityDSig(); 
        $h0->idKeys[] = "ID"; 
        $RC = self::xpQuery($fe, "./ds:Signature"); 
        if (count($RC) === 0) { 
            goto BL; 
        } 
        if (count($RC) > 1) { 
            goto YH; 
        } 
        goto qY; 
        BL: 
        return FALSE; 
        goto qY; 
        YH: 
        echo sprintf("XMLSec: more than one signature element in root."); 
        exit; 
        qY: 
        $RC = $RC[0]; 
        $h0->sigNode = $RC; 
        $h0->canonicalizeSignedInfo(); 
        if ($h0->validateReference()) { 
            goto gn; 
        } 
        echo sprintf("XMLsec: digest validation failed"); 
        exit; 
        gn: 
        $jc = FALSE; 
        foreach ($h0->getValidatedNodes() as $p_) { 
            if ($p_->isSameNode($fe)) { 
                goto Tk; 
            } 
            if ($fe->parentNode instanceof DOMElement && $p_->isSameNode($fe->ownerDocument)) { 
                goto uv; 
            } 
            goto l3; 
            Tk: 
            $jc = TRUE; 
            goto MI; 
            goto l3; 
            uv: 
            $jc = TRUE; 
            goto MI; 
            l3: 
            sT: 
        } 
        MI: 
        if ($jc) { 
            goto Kt; 
        } 
        echo sprintf("XMLSec: The root element is not signed."); 
        exit; 
        Kt: 
        $JY = array(); 
        foreach (self::xpQuery($RC, "./ds:KeyInfo/ds:X509Data/ds:X509Certificate") as $DX) { 
            $Qz = trim($DX->textContent); 
            $Qz = str_replace(array("
", "\xa", "\x9", " "), '', $Qz); 
            $JY[] = $Qz; 
            a0: 
        } 
        jr: 
        $dA = array("Signature" => $h0, "Certificates" => $JY); 
        return $dA; 
    } 
    public static function validateSignature(array $aw, XMLSecurityKey $fy) 
    { 
        $h0 = $aw["Signature"]; 
        $A4 = self::xpQuery($h0->sigNode, "./ds:SignedInfo/ds:SignatureMethod"); 
        if (!empty($A4)) { 
            goto PZ; 
        } 
        echo sprintf("Missing SignatureMethod element"); 
        exit; 
        PZ: 
        $A4 = $A4[0]; 
        if ($A4->hasAttribute("Algorithm")) { 
            goto jd; 
        } 
        echo sprintf("Missing Algorithm-attribute on SignatureMethod element."); 
        exit; 
        jd: 
        $SV = $A4->getAttribute("Algorithm"); 
        if (!($fy->type === XMLSecurityKey::RSA_SHA1 && $SV !== $fy->type)) { 
            goto Jf; 
        } 
        $fy = self::castKey($fy, $SV); 
        Jf: 
        if ($h0->verify($fy)) { 
            goto Y3; 
        } 
        echo sprintf("Unable to validate Sgnature"); 
        exit; 
        Y3: 
    } 
    public static function castKey(XMLSecurityKey $fy, $XK, $a8 = "public") 
    { 
        if (!($fy->type === $XK)) { 
            goto yv; 
        } 
        return $fy; 
        yv: 
        $f8 = openssl_pkey_get_details($fy->key); 
        if (!($f8 === FALSE)) { 
            goto lJ; 
        } 
        echo sprintf("Unable to get key details from XMLSecurityKey."); 
        exit; 
        lJ: 
        if (isset($f8["key"])) { 
            goto Zp; 
        } 
        echo sprintf("Missing key in public key details."); 
        exit; 
        Zp: 
        $kw = new XMLSecurityKey($XK, array("type" => $a8)); 
        $kw->loadKey($f8["key"]); 
        return $kw; 
    } 
    public static function processResponse($R7, $Ij, $D9, SAML2_Response $v9) 
    { 
        $c2 = $D9["Certificates"][0]; 
        $R8 = $v9->getDestination(); 
        if (!($R8 !== NULL && $R8 !== $R7)) { 
            goto o7; 
        } 
        echo sprintf("Destination in response doesn't match the current URL. Destination is "" . xss::filter($R8) . "", current URL is "" . xss::filter($R7) . ""."); 
        exit; 
        o7: 
        $ID = self::checkSign($Ij, $D9, $c2); 
        return $ID; 
    } 
    public static function checkSign($Ij, $D9, $c2) 
    { 
        $JY = $D9["Certificates"]; 
        if (!(count($JY) === 0)) { 
            goto eV; 
        } 
        return FALSE; 
        eV: 
        $Ue = self::findCertificate($Ij, $JY, $c2); 
        $HH = NULL; 
        $fy = new XMLSecurityKey(XMLSecurityKey::RSA_SHA1, array("type" => "public")); 
        $fy->loadKey($Ue); 
        try { 
            self::validateSignature($D9, $fy); 
            return TRUE; 
        } catch (Exception $Nt) { 
            $HH = $Nt; 
        } 
        if ($HH !== NULL) { 
            goto hN; 
        } 
        return FALSE; 
        goto vu; 
        hN: 
        throw $HH; 
        vu: 
    } 
    private static function findCertificate($nE, $JY, $c2) 
    { 
        foreach ($JY as $Y_) { 
            $fa = strtolower(sha1(base64_decode($Y_))); 
            if (!($fa == $nE)) { 
                goto DF; 
            } 
            $TX = "-----BEGIN CERTIFICATE-----\xa" . chunk_split($Y_, 64) . "-----END CERTIFICATE-----
"; 
            return $TX; 
            DF: 
            Mf: 
        } 
        JJ: 
        if (array_key_exists("RelayState", $_REQUEST) && $_REQUEST["RelayState"] == "testValidate") { 
            goto RU; 
        } 
        echo " <div style="color: #a94442;font-size:14pt; margin-bottom:20px;"><p><b>Error: </b>We could not sign you in. Please contact your Administrator.</p></div>"; 
        goto Sm; 
        RU: 
        echo "<div style="font-family:Calibri;padding:0 3%;">"; 
        echo "<div style="color: #a94442;background-color: #f2dede;padding: 15px;margin-bottom: 20px;text-align:center;border:1px solid #E6B3B2;font-size:18pt;"> ERROR</div>
\x9\x9\x9\x9<div style="color: #a94442;font-size:14pt; margin-bottom:20px;"><p><strong>Error: </strong>Unable to find a certificate matching the configured fingerprint.</p>\xa	\x9		<p><strong>Possible Cause: </strong>Content of 'X.509 Certificate' field in Service Provider Settings is incorrect</p>
\x9\x9		<p><b>Expected value:</b>" . $c2 . "</p>"; 
        echo str_repeat("&nbsp;", 15); 
        echo "</div>\xa\x9\x9		<div style="margin:3%;display:block;text-align:center;">
\x9	\x9\x9<form action="index.php">\xa		\x9	<div style="margin:3%;display:block;text-align:center;"><input style="padding:1%;width:100px;background: #0091CD none repeat scroll 0% 0%;cursor: pointer;font-size:15px;border-width: 1px;border-style: solid;border-radius: 3px;white-space: nowrap;box-sizing: border-box;border-color: #0073AA;box-shadow: 0px 1px 0px rgba(120, 200, 230, 0.6) inset;color: #FFF;"type="button" value="Done" onClick="self.close();"></div>"; 
        Sm: 
        exit; 
    } 
    public static function validateIssuerAndAudience($zQ, $vT, $MQ, $base_url) 
    { 
        $Fs = current($zQ->getAssertions())->getIssuer(); 
        $IM = current(current($zQ->getAssertions())->getValidAudiences()); 
        if (strcmp($MQ, $Fs) === 0) { 
            goto Q2; 
        } 
        if (array_key_exists("RelayState", $_REQUEST) && $_REQUEST["RelayState"] == "testValidate") { 
            goto LR; 
        } 
        echo "<div style="color: #a94442;font-size:14pt; margin-bottom:20px;"><p><b>Error: </b>We could not sign you in. Please contact your Administrator.</p></div>"; 
        goto fO; 
        LR: 
        echo "<div style="font-family:Calibri;padding:0 3%;">"; 
        echo "<div style="color: #a94442;background-color: #f2dede;padding: 15px;margin-bottom: 20px;text-align:center;border:1px solid #E6B3B2;font-size:18pt;"> ERROR</div>
			\x9\x9<div style="color: #a94442;font-size:14pt; margin-bottom:20px;"><p><strong>Error: </strong>Issuer cannot be verified.</p>
\x9	\x9\x9	<p>Please contact your administrator and report the following error:</p>
			\x9\x9<p><strong>Possible Cause: </strong>The value in 'IdP Entity ID or Issuer' field in Service Provider Settings is incorrect</p>\xa\x9	\x9\x9	<p><strong>Expected Entity ID: </strong>" . $Fs . "<p>\xa				\x9<p><strong>Entity ID Found: </strong>" . $MQ . "</p>
\x9\x9\x9	\x9</div>\xa	\x9		\x9<div style="margin:3%;display:block;text-align:center;">\xa			\x9\x9<div style="margin:3%;display:block;text-align:center;"><input style="padding:1%;width:100px;background: #0091CD none repeat scroll 0% 0%;cursor: pointer;font-size:15px;border-width: 1px;border-style: solid;border-radius: 3px;white-space: nowrap;box-sizing: border-box;border-color: #0073AA;box-shadow: 0px 1px 0px rgba(120, 200, 230, 0.6) inset;color: #FFF;"type="button" value="Done" onClick="self.close();"></div>"; 
        fO: 
        exit; 
        goto O9; 
        Q2: 
        if (strcmp($IM, $vT) === 0) { 
            goto z5; 
        } 
        if (array_key_exists("RelayState", $_REQUEST) && $_REQUEST["RelayState"] == "testValidate") { 
            goto mf; 
        } 
        echo "<div style="color: #a94442;font-size:14pt; margin-bottom:20px;"><p><b>Error: </b>We could not sign you in. Please contact your Administrator.</p></div>"; 
        goto Qi; 
        mf: 
        echo "<div style="font-family:Calibri;padding:0 3%;">"; 
        echo "<div style="color: #a94442;background-color: #f2dede;padding: 15px;margin-bottom: 20px;text-align:center;border:1px solid #E6B3B2;font-size:18pt;"> ERROR</div>
                    <div style="color: #a94442;font-size:14pt; margin-bottom:20px;"><p><strong>Error: </strong>Invalid Audience URI.</p>\xa                    <p>Please contact your administrator and report the following error:</p>
                    <p><strong>Possible Cause: </strong>The value of 'Audience URI' field on Identity Provider's side is incorrect</p>
                    <p>Expected one of the Audiences to be: " . $vT . "<p>
                    </div>\xa                    <div style="margin:3%;display:block;text-align:center;">\xa                    <div style="margin:3%;display:block;text-align:center;"><input style="padding:1%;width:100px;background: #0091CD none repeat scroll 0% 0%;cursor: pointer;font-size:15px;border-width: 1px;border-style: solid;border-radius: 3px;white-space: nowrap;box-sizing: border-box;border-color: #0073AA;box-shadow: 0px 1px 0px rgba(120, 200, 230, 0.6) inset;color: #FFF;"type="button" value="Done" onClick="self.close();"></div>"; 
        Qi: 
        exit; 
        goto Ef; 
        z5: 
        return TRUE; 
        Ef: 
        O9: 
    } 
    private static function doDecryptElement(DOMElement $tL, XMLSecurityKey $Yy, array &$sB) 
    { 
        $g0 = new XMLSecEnc(); 
        $g0->setNode($tL); 
        $g0->type = $tL->getAttribute("Type"); 
        $mT = $g0->locateKey($tL); 
        if ($mT) { 
            goto HW; 
        } 
        echo sprintf("Could not locate key algorithm in encrypted data."); 
        exit; 
        HW: 
        $zZ = $g0->locateKeyInfo($mT); 
        if ($zZ) { 
            goto dr; 
        } 
        echo sprintf("Could not locate <dsig:KeyInfo> for the encrypted key."); 
        exit; 
        dr: 
        $Ie = $Yy->getAlgorithm(); 
        if ($zZ->isEncrypted) { 
            goto AU; 
        } 
        $bh = $mT->getAlgorithm(); 
        if (!($Ie !== $bh)) { 
            goto Xk; 
        } 
        echo sprintf("Algorithm mismatch between input key and key in message. " . "Key was: " . xss::filter(var_export($Ie, TRUE)) . "; message was: " . xss::filter(var_export($bh, TRUE))); 
        exit; 
        Xk: 
        $mT = $Yy; 
        goto id; 
        AU: 
        $X7 = $zZ->getAlgorithm(); 
        if (!in_array($X7, $sB, TRUE)) { 
            goto BR; 
        } 
        echo sprintf("Algorithm disabled: " . xss::filter(var_export($X7, TRUE))); 
        exit; 
        BR: 
        if (!($X7 === XMLSecurityKey::RSA_OAEP_MGF1P && $Ie === XMLSecurityKey::RSA_1_5)) { 
            goto R3; 
        } 
        $Ie = XMLSecurityKey::RSA_OAEP_MGF1P; 
        R3: 
        if (!($Ie !== $X7)) { 
            goto Gz; 
        } 
        echo sprintf("Algorithm mismatch between input key and key used to encrypt " . " the symmetric key for the message. Key was: " . xss::filter(var_export($Ie, TRUE)) . "; message was: " . xss::filter(var_export($X7, TRUE))); 
        exit; 
        Gz: 
        $Ll = $zZ->encryptedCtx; 
        $zZ->key = $Yy->key; 
        $id = $mT->getSymmetricKeySize(); 
        if (!($id === NULL)) { 
            goto Dl; 
        } 
        echo sprintf("Unknown key size for encryption algorithm: " . xss::filter(var_export($mT->type, TRUE))); 
        exit; 
        Dl: 
        try { 
            $fy = $Ll->decryptKey($zZ); 
            if (!(strlen($fy) != $id)) { 
                goto nu; 
            } 
            echo sprintf("Unexpected key size (" . strlen($fy) * 8 . "bits) for encryption algorithm: " . xss::filter(var_export($mT->type, TRUE))); 
            exit; 
            nu: 
        } catch (Exception $Nt) { 
            $NU = $Ll->getCipherValue(); 
            $hv = openssl_pkey_get_details($zZ->key); 
            $hv = sha1(serialize($hv), TRUE); 
            $fy = sha1($NU . $hv, TRUE); 
            if (strlen($fy) > $id) { 
                goto qp; 
            } 
            if (strlen($fy) < $id) { 
                goto w9; 
            } 
            goto cK; 
            qp: 
            $fy = substr($fy, 0, $id); 
            goto cK; 
            w9: 
            $fy = str_pad($fy, $id); 
            cK: 
        } 
        $mT->loadkey($fy); 
        id: 
        $XK = $mT->getAlgorithm(); 
        if (!in_array($XK, $sB, TRUE)) { 
            goto eJ; 
        } 
        echo sprintf("Algorithm disabled: " . xss::filter(var_export($XK, TRUE))); 
        exit; 
        eJ: 
        $fq = $g0->decryptNode($mT, FALSE); 
        $Rq = "<root xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" " . "xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">" . $fq . "</root>"; 
        $fs = new DOMDocument(); 
        if (@$fs->loadXML($Rq)) { 
            goto Z9; 
        } 
        echo sprintf("Failed to parse decrypted XML. Maybe the wrong sharedkey was used?"); 
        throw new Exception("Failed to parse decrypted XML. Maybe the wrong sharedkey was used?"); 
        Z9: 
        $K9 = $fs->firstChild->firstChild; 
        if (!($K9 === NULL)) { 
            goto DL; 
        } 
        echo sprintf("Missing encrypted element."); 
        throw new Exception("Missing encrypted element."); 
        DL: 
        if ($K9 instanceof DOMElement) { 
            goto cG; 
        } 
        echo sprintf("Decrypted element was not actually a DOMElement."); 
        cG: 
        return $K9; 
    } 
    public static function decryptElement(DOMElement $tL, XMLSecurityKey $Yy, array $sB = array(), XMLSecurityKey $El = NULL) 
    { 
        try { 
            return self::doDecryptElement($tL, $Yy, $sB); 
        } catch (Exception $Nt) { 
            if (is_null($El)) { 
                goto kw; 
            } 
            try { 
                return self::doDecryptElement($tL, $El, $sB); 
            } catch (Exception $Qk) { 
            } 
            kw: 
            echo sprintf("Failed to decrypt XML element."); 
            exit; 
        } 
    } 
    public static function showErrorMessage($q6, $Kq, $EK) 
    { 
        echo "<div style="font-family:Calibri;padding:0 3%;">"; 
        echo "<div style="color: #a94442;background-color: #f2dede;padding: 15px;margin-bottom: 20px;text-align:center;border:1px solid #E6B3B2;font-size:18pt;"> ERROR</div>
                                <div style="color: #a94442;font-size:14pt; margin-bottom:20px;"><p><strong>Error: </strong>" . xss::filter($q6) . "</p>
                                    <p>" . xss::filter($Kq) . "</p>\xa                                    <p><strong>Possible Cause: </strong>" . xss::filter($EK) . "</p>
                                </div>
                                <div style="margin:3%;display:block;text-align:center;"></div>
                                <div style="margin:3%;display:block;text-align:center;">\xa                                </div>"; 
        exit; 
    } 
    public static function get_mapped_groups($Tn, $Rx) 
    { 
        $Uz = array(); 
        if (empty($Rx)) { 
            goto MJ; 
        } 
        $AE = array(); 
        $H7 = 1; 
        B0: 
        if (!($H7 < 10)) { 
            goto JF; 
        } 
        $yi = $Tn->get("group" . $H7 . "_map"); 
        $AE[$H7] = explode(";", $yi); 
        $H7++; 
        goto B0; 
        JF: 
        MJ: 
        foreach ($Rx as $sX) { 
            if (empty($sX)) { 
                goto MC; 
            } 
            $H7 = 0; 
            $x6 = false; 
            uA: 
            if (!($H7 < 9 && !$x6)) { 
                goto FZ; 
            } 
            if (!(!empty($AE[$H7]) && in_array($sX, $AE[$H7]))) { 
                goto Jx; 
            } 
            $Uz[] = $Tn->get("group" . $H7); 
            $x6 = true; 
            Jx: 
            $H7++; 
            goto uA; 
            FZ: 
            MC: 
            e4: 
        } 
        fy: 
        return array_unique($Uz); 
    } 
    public static function getEncryptionAlgorithm($OC) 
    { 
        switch ($OC) { 
            case "http://www.w3.org/2001/04/xmlenc#tripledes-cbc": 
                return XMLSecurityKey::TRIPLEDES_CBC; 
                goto Jm; 
            case "http://www.w3.org/2001/04/xmlenc#aes128-cbc": 
                return XMLSecurityKey::AES128_CBC; 
            case "http://www.w3.org/2001/04/xmlenc#aes192-cbc": 
                return XMLSecurityKey::AES192_CBC; 
                goto Jm; 
            case "http://www.w3.org/2001/04/xmlenc#aes256-cbc": 
                return XMLSecurityKey::AES256_CBC; 
                goto Jm; 
            case "http://www.w3.org/2001/04/xmlenc#rsa-1_5": 
                return XMLSecurityKey::RSA_1_5; 
                goto Jm; 
            case "http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p": 
                return XMLSecurityKey::RSA_OAEP_MGF1P; 
                goto Jm; 
            case "http://www.w3.org/2000/09/xmldsig#dsa-sha1": 
                return XMLSecurityKey::DSA_SHA1; 
                goto Jm; 
            case "http://www.w3.org/2000/09/xmldsig#rsa-sha1": 
                return XMLSecurityKey::RSA_SHA1; 
                goto Jm; 
            case "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256": 
                return XMLSecurityKey::RSA_SHA256; 
                goto Jm; 
            case "http://www.w3.org/2001/04/xmldsig-more#rsa-sha384": 
                return XMLSecurityKey::RSA_SHA384; 
                goto Jm; 
            case "http://www.w3.org/2001/04/xmldsig-more#rsa-sha512": 
                return XMLSecurityKey::RSA_SHA512; 
                goto Jm; 
            default: 
                echo sprintf("Invalid Encryption Method: " . xss::filter($OC)); 
                exit; 
                goto Jm; 
        } 
        Rn: 
        Jm: 
    } 
    public static function sanitize_certificate($Ii) 
    { 
        $Ii = preg_replace("/[
\xa]+/", '', $Ii); 
        $Ii = str_replace("-", '', $Ii); 
        $Ii = str_replace("BEGIN CERTIFICATE", '', $Ii); 
        $Ii = str_replace("END CERTIFICATE", '', $Ii); 
        $Ii = str_replace(" ", '', $Ii); 
        $Ii = chunk_split($Ii, 64, "
\xa"); 
        $Ii = "-----BEGIN CERTIFICATE-----
\xa" . $Ii . "-----END CERTIFICATE-----"; 
        return $Ii; 
    } 
    public static function upload_metadata($r_, $A0 = false) 
    { 
        if (!empty(\Drupal::config("miniorange_saml.settings")->get("miniorange_saml_idp_name"))) { 
            goto lX; 
        } 
        \Drupal::configFactory()->getEditable("miniorange_saml.settings")->set("miniorange_saml_idp_name", "Identity Provider")->save(); 
        lX: 
        global $base_url; 
        $dX = new \DOMDocument(); 
        @$dX->loadXML($r_); 
        restore_error_handler(); 
        $WS = $dX->firstChild; 
        if (!empty($WS)) { 
            goto w1; 
        } 
        \Drupal::messenger()->addError(t("Please provide a valid metadata file.")); 
        return; 
        goto LS; 
        w1: 
        $Oy = new MetadataReader($dX); 
        $ve = $Oy->getIdentityProviders(); 
        if (!empty($ve)) { 
            goto gx; 
        } 
        \Drupal::messenger()->addMessage(t("Please provide a valid metadata file."), "error"); 
        return; 
        gx: 
        foreach ($ve as $fy => $ol) { 
            $L6 = $ol->getLoginURL("HTTP-Redirect"); 
            $FN = $ol->getLogoutURL("HTTP-Redirect"); 
            if (!empty($L6)) { 
                goto ke; 
            } 
            $L6 = $ol->getLoginURL("HTTP-POST"); 
            ke: 
            $K7 = $ol->getEntityID(); 
            $MO = $ol->getSigningCertificate(); 
            $Q7 = $base_url; 
            if (!($A0 == true)) { 
                goto Pp; 
            } 
            \Drupal::configFactory()->getEditable("miniorange_saml.settings")->set("miniorange_saml_sp_issuer", $Q7)->save(); 
            \Drupal::configFactory()->getEditable("miniorange_saml.settings")->set("miniorange_saml_idp_login_url", $L6)->save(); 
            Pp: 
            \Drupal::configFactory()->getEditable("miniorange_saml.settings")->set("miniorange_saml_idp_issuer", $K7)->save(); 
            \Drupal::configFactory()->getEditable("miniorange_saml.settings")->set("miniorange_saml_idp_certificate", $MO[0])->save(); 
            CZ: 
        } 
        Ts: 
        if (!($A0 == true)) { 
            goto zo; 
        } 
        \Drupal::messenger()->addStatus(t("Identity Provider Configuration successfully saved.")); 
        return; 
        zo: 
        LS: 
    } 
    public static function Print_SAML_Request($q5, $a8) 
    { 
        header("Content-Type: text/html"); 
        $WI = new \DOMDocument(); 
        $WI->preserveWhiteSpace = false; 
        $WI->formatOutput = true; 
        $WI->loadXML($q5); 
        if ($a8 == "displaySAMLRequest") { 
            goto nv; 
        } 
        $dn = "SAML Response"; 
        goto sq; 
        nv: 
        $dn = "SAML Request"; 
        sq: 
        $uc = $WI->saveXML(); 
        $EX = htmlentities($uc); 
        $EX = rtrim($EX); 
        $Rq = simplexml_load_string($uc); 
        $a4 = json_encode($Rq); 
        $cy = json_decode($a4); 
        $ff = Utilities::getModulePath() . "/css/miniorange_saml.module.css"; 
        $es = Utilities::getModulePath() . "/js/showSAMLResponse.js"; 
        echo "<link rel='stylesheet' id='mo_saml_admin_settings_style-css'  href='" . xss::filter($ff) . "' type='text/css' media='all' />\xa            <script src="" . xss::filter($es) . ""></script>
		\x9<div class="mo-display-logs" ><p type="text"   id="SAML_type">" . xss::filter($dn) . "</p></div>

\x9\x9\x9<div type="text" id="SAML_display" class="mo-display-block"><pre class='brush: xml;'>" . xss::filter($EX) . "</pre></div>
\x9		<br>
	\x9\x9<div style="margin:3%;display:block;text-align:center;">

\x9\x9	<div style="margin:3%;display:block;text-align:center;" >

            </div>\xa	\x9\x9<button id="copy" onclick="copyDivToClipboard()"  style="padding:1%;width:100px;background: #0091CD none repeat scroll 0% 0%;cursor: pointer;font-size:15px;border-width: 1px;border-style: solid;border-radius: 3px;white-space: nowrap;box-sizing: border-box;border-color: #0073AA;box-shadow: 0px 1px 0px rgba(120, 200, 230, 0.6) inset;color: #FFF;" >Copy</button>
	\x9	&nbsp;
               <button id="dwn-btn" onclick="download()" style="padding:1%;width:100px;background: #0091CD none repeat scroll 0% 0%;cursor: pointer;font-size:15px;border-width: 1px;border-style: solid;border-radius: 3px;white-space: nowrap;box-sizing: border-box;border-color: #0073AA;box-shadow: 0px 1px 0px rgba(120, 200, 230, 0.6) inset;color: #FFF;">Download</button>\xa\x9\x9\x9</div>\xa\x9\x9\x9</div>\xa	\x9\x9"; 
        ob_end_flush(); 
        exit; 
    } 
    public static function getBaseUrl() 
    { 
        global $base_url; 
        $ff = \Drupal::config("miniorange_saml.settings")->get("miniorange_saml_base_url"); 
        return isset($ff) && !empty($ff) ? $ff : $base_url; 
    } 
    public static function getSpIssuer() 
    { 
        $Fs = \Drupal::config("miniorange_saml.settings")->get("miniorange_saml_entity_id"); 
        return isset($Fs) && !empty($Fs) ? $Fs : self::getBaseUrl(); 
    } 
    public static function getSamlRequestPlanName() 
    { 
        return "drupal8_miniorange_saml_standard_plan"; 
    } 
    public static function getSamlRequestPlanType() 
    { 
        return "DRUPAL8_SAML_SP_STANDARD_MODULE"; 
    } 
    public static function mo_add_premium_tag($qt) 
    { 
        global $base_url; 
        $ff = $base_url . "/admin/config/people/miniorange_saml/Licensing"; 
        $Aa = "<a href= "" . $ff . "" style="color: red; font-weight: lighter;">[" . $qt . "]</a>"; 
        return $Aa; 
    } 
    public static function mo_get_drupal_core_version() 
    { 
        return \DRUPAL::VERSION; 
    } 
    public static function mo_add_loggers($xP, $A0, $a8) 
    { 
        \Drupal::logger("miniorange_saml")->{$a8}(" CODE:" . $xP . " | " . $A0); 
    } 
    public static function mo_save_expiry_details($wj) 
    { 
        $YG = isset($wj["licenseExpiry"]) ? date("l, jS F Y g:i A", strtotime($wj["licenseExpiry"])) : "-"; 
        $r3 = isset($wj["supportExpiry"]) ? date("l, jS F Y g:i A", strtotime($wj["supportExpiry"])) : "-"; 
        $T5 = isset($wj["licenseType"]) ? $wj["licenseType"] : "-"; 
        $Tu = isset($wj["licensePlan"]) ? $wj["licensePlan"] : "-"; 
        $v5 = \Drupal::configFactory()->getEditable("miniorange_saml.settings"); 
        $v5->set("miniorange_maintenance_expiry", $YG)->save(); 
        $v5->set("miniorange_support_expiry", $r3)->save(); 
        $v5->set("miniorange_license_type", $T5)->save(); 
        $v5->set("miniorange_license_plan", $Tu)->save(); 
    } 
    public static function getMetadataValidationTime() 
    { 
        $BN = time() + MiniorangeSAMLConstants::TIME_VALID; 
        return gmdate("Y-m-d\TH:i:s\Z", $BN); 
    } 
    public static function getUpgradeURL($YC) 
    { 
        $kZ = \Drupal::config("miniorange_saml.settings")->get("miniorange_saml_customer_admin_email"); 
        return "https://login.xecurify.com/moas/login?username=" . $kZ . "&redirectUrl=https://login.xecurify.com/moas/admin/customer/licenserenewals?renewalrequest=" . $YC; 
    } 
    public static function getIsLicenseExpired($hn) 
    { 
        if (!($hn != null && $hn != "-")) { 
            goto Zk; 
        } 
        $Tt = intval((strtotime($hn) - time()) / (60 * 60 * 24)); 
        $jN = array(); 
        $jN["LicenseGoingToExpire"] = $Tt < 35 ? TRUE : FALSE; 
        $jN["LicenseAlreadyExpired"] = $Tt < 0 ? TRUE : FALSE; 
        return $jN; 
        Zk: 
    } 
    public static function getModulePath() 
    { 
        return \Drupal::service("module_handler")->getModule("miniorange_saml")->getPath(); 
    } 
} 
 ?>

Did this file decode correctly?

Original Code

<?php


namespace Drupal\miniorange_saml;

use DOMElement;
use DOMNode;
use DOMXPath;
use DOMDocument;
use Drupal\Core\Render\Markup;
use Drupal\Component\Utility\Xss;
class Utilities
{
    public static function isCustomerRegistered(&$form, $form_state)
    {
        global $base_url;
        $mF = $base_url . "\x2f\x61\x64\x6d\151\156\x2f\x63\x6f\x6e\146\x69\147\57\x70\145\157\x70\154\x65\x2f\155\x69\156\151\x6f\162\x61\x6e\x67\145\137\163\141\155\x6c\x2f\143\165\x73\164\157\x6d\x65\x72\x5f\x73\x65\164\165\160\57";
        if (\Drupal::config("\x6d\151\156\x69\x6f\x72\x61\x6e\147\145\x5f\x73\x61\155\154\56\163\x65\x74\164\151\x6e\x67\x73")->get("\x6d\x69\x6e\151\x6f\162\x61\x6e\x67\145\x5f\x73\141\x6d\x6c\137\x63\165\x73\164\157\155\145\x72\x5f\141\144\x6d\151\x6e\137\x65\155\141\151\154") == NULL || \Drupal::config("\155\x69\x6e\x69\x6f\162\141\156\x67\x65\137\x73\x61\x6d\x6c\x2e\163\145\x74\x74\x69\156\x67\163")->get("\155\151\156\x69\157\x72\141\156\x67\x65\137\163\141\x6d\x6c\137\143\165\163\164\157\x6d\145\162\137\151\x64") == NULL || \Drupal::config("\155\x69\x6e\x69\157\x72\141\x6e\x67\145\x5f\x73\x61\x6d\x6c\x2e\x73\145\x74\x74\x69\x6e\x67\163")->get("\x6d\x69\156\x69\157\x72\x61\156\x67\x65\137\163\x61\x6d\154\x5f\x63\165\163\164\157\155\x65\x72\137\141\144\x6d\x69\156\x5f\x74\x6f\153\x65\x6e") == NULL || \Drupal::config("\155\151\156\x69\157\162\141\156\147\x65\137\163\x61\x6d\154\x2e\x73\x65\164\164\151\156\x67\x73")->get("\x6d\x69\156\x69\157\x72\141\156\147\x65\137\163\x61\x6d\154\x5f\143\165\163\164\x6f\155\145\162\x5f\141\160\151\137\x6b\x65\x79") == NULL) {
            goto Yh;
        }
        if (\Drupal::config("\x6d\151\156\151\157\162\141\x6e\x67\145\137\163\141\x6d\154\56\163\145\x74\x74\x69\156\x67\x73")->get("\x6d\151\x6e\x69\x6f\x72\141\x6e\x67\x65\137\x73\x61\x6d\154\x5f\x6c\x69\x63\x65\x6e\163\x65\x5f\x6b\145\171") == NULL) {
            goto DW;
        }
        return FALSE;
        goto b2;
        DW:
        $form["\155\x61\x72\153\x75\x70\x5f\155\x73\147"] = array("\x23\155\141\x72\153\165\160" => "\x3c\x64\151\x76\40\143\x6c\x61\x73\163\75\x22\155\157\137\x73\141\155\154\x5f\162\x65\x67\x69\x73\164\145\162\137\155\x65\163\163\x61\x67\145\x22\x3e\x59\x6f\x75\40\156\x65\x65\x64\x20\x74\157\x20\74\141\40\x68\x72\145\x66\x3d\x22" . $mF . "\42\x20\x3e\x76\145\162\151\146\x79\x20\171\x6f\165\162\x20\x6c\x69\143\x65\x6e\163\145\x3c\57\141\x3e\40\153\x65\171\40\x62\145\x66\157\162\145\40\x75\163\x69\x6e\x67\40\164\x68\151\x73\40\x6d\157\144\x75\154\x65\56\x3c\57\x64\x69\166\x3e");
        return TRUE;
        b2:
        goto nV;
        Yh:
        $form["\x6d\x61\162\x6b\x75\160\x5f\162\x65\147\x5f\155\x73\147"] = array("\x23\155\x61\162\x6b\165\160" => "\x3c\144\151\166\40\143\154\x61\x73\x73\x3d\42\155\157\x5f\163\141\x6d\x6c\137\x72\x65\147\x69\163\164\x65\x72\x5f\155\145\x73\x73\x61\x67\x65\42\76\x59\x6f\x75\40\x6e\x65\x65\x64\x20\164\157\40\x3c\x61\40\x68\162\145\146\x3d\42" . $mF . "\x22\40\x3e\114\x6f\x67\x69\x6e\74\x2f\x61\76\x20\165\163\x69\156\147\40\x6d\151\x6e\x69\117\x72\141\x6e\147\145\40\141\143\143\157\x75\156\164\x20\x62\145\146\157\162\145\40\165\163\151\156\147\x20\x74\150\151\163\x20\x6d\x6f\x64\165\x6c\145\x2e\74\x2f\x64\151\166\76");
        return TRUE;
        nV:
    }
    public static function spConfigGuide(array &$form, \Drupal\Core\Form\FormStateInterface $form_state)
    {
        $form["\x6d\x69\x6e\x69\157\162\141\156\x67\x65\137\151\144\x70\137\147\165\x69\144\145\137\x6c\151\x6e\x6b"] = array("\x23\x6d\141\162\x6b\165\160" => "\x3c\144\151\166\40\143\x6c\x61\163\163\75\42\x6d\x6f\x5f\163\x61\155\x6c\x5f\164\141\x62\154\x65\x5f\154\141\171\157\x75\164\40\155\157\137\x73\x61\x6d\x6c\x5f\x73\x70\x5f\x63\157\156\x74\x61\151\156\145\x72\x5f\x32\x22\40\151\x64\x3d\x22\155\157\137\147\165\151\x64\x65\137\166\x74\x22\x3e");
        $form["\x6d\151\x6e\x69\x6f\x72\141\x6e\147\145\137\x69\x64\160\137\147\x75\151\x64\x65\137\154\151\156\x6b\x31"] = array("\x23\155\x61\x72\153\165\x70" => "\74\x64\151\166\x20\163\x74\x79\x6c\145\x3d\x22\x66\157\156\164\x2d\163\x69\x7a\x65\x3a\40\61\x35\160\170\73\x22\76\x54\x6f\x20\x73\x65\x65\x20\144\x65\x74\141\151\154\x65\x64\x20\144\157\143\165\x6d\x65\156\164\x61\164\151\x6f\156\x20\x6f\x66\40\x68\x6f\x77\x20\x74\157\x20\143\x6f\156\146\151\x67\x75\x72\x65\40\104\162\x75\x70\x61\154\x20\123\101\x4d\x4c\40\123\120\40\x77\151\x74\x68\x20\141\156\171\x20\x49\x64\x65\x6e\164\151\x74\171\x20\120\162\x6f\166\x69\x64\x65\162\74\57\x64\x69\x76\x3e\74\57\x62\x72\76");
        $KR = Markup::create("\74\163\x74\x72\x6f\156\147\76\74\x61\x20\150\x72\x65\146\x3d\42\150\x74\164\160\163\72\57\57\160\x6c\165\x67\x69\x6e\163\56\x6d\151\156\151\x6f\162\x61\156\147\x65\56\143\x6f\155\57\144\x72\x75\160\x61\x6c\x2d\163\x69\156\x67\x6c\x65\55\x73\x69\147\156\x2d\x73\163\157\55\165\x73\151\156\147\x2d\141\x7a\x75\x72\x65\x2d\141\x64\55\x69\x64\x70\x2f\42\x20\x63\x6c\x61\x73\x73\75\x22\155\157\137\147\165\151\144\x65\137\x74\x65\170\164\55\x63\x6f\154\x6f\x72\42\40\x74\x61\x72\147\x65\164\75\x22\x5f\142\154\141\156\153\x22\76\x41\172\165\x72\145\x20\101\x44\74\x2f\x61\76\x3c\57\163\164\162\x6f\x6e\147\76");
        $LI = Markup::create("\x3c\163\164\x72\x6f\156\147\x3e\x3c\141\40\150\162\x65\x66\x3d\42\x68\164\x74\x70\163\72\x2f\57\160\154\165\x67\151\156\x73\56\155\151\x6e\x69\x6f\162\x61\156\x67\x65\x2e\143\x6f\155\x2f\144\162\165\160\141\154\x2d\163\151\x6e\147\x6c\x65\x2d\x73\x69\x67\156\55\x73\163\x6f\55\x75\x73\x69\x6e\x67\55\x61\144\x66\x73\55\151\144\x70\x22\x20\143\154\x61\x73\163\75\x22\x6d\157\x5f\x67\165\151\x64\145\x5f\164\145\x78\164\x2d\x63\x6f\154\157\162\x22\x20\164\x61\162\147\x65\x74\75\x22\137\x62\x6c\x61\156\153\42\x3e\101\x44\x46\123\x3c\57\141\76\x3c\x2f\x73\x74\x72\157\x6e\x67\x3e");
        $ss = Markup::create("\x3c\x73\x74\162\x6f\x6e\147\76\74\141\x20\x63\154\x61\x73\163\75\x22\x6d\157\137\147\x75\x69\x64\145\x5f\x74\145\170\164\x2d\143\157\154\x6f\162\x22\40\x68\x72\x65\146\x3d\x22\150\x74\x74\160\163\72\57\57\x70\x6c\x75\x67\x69\x6e\x73\x2e\x6d\x69\156\x69\x6f\162\141\x6e\147\145\56\143\157\x6d\x2f\x64\x72\x75\160\x61\154\55\163\151\156\x67\154\145\x2d\163\x69\x67\156\x2d\x73\163\157\x2d\x75\x73\151\x6e\x67\x2d\x6f\x6b\164\x61\55\151\x64\160\x2f\42\40\x74\x61\x72\147\145\x74\x3d\x22\137\x62\x6c\x61\156\153\42\x3e\x4f\x6b\x74\x61\74\x2f\x61\76\x3c\x2f\163\x74\162\157\156\147\x3e");
        $x1 = Markup::create("\74\x73\164\162\157\x6e\147\76\74\x61\40\x68\x72\145\x66\75\x22\x68\x74\164\x70\163\x3a\57\x2f\160\x6c\x75\147\x69\x6e\x73\x2e\155\x69\156\x69\x6f\x72\x61\x6e\147\145\56\x63\x6f\x6d\x2f\x64\162\x75\160\141\x6c\55\x73\151\156\x67\x6c\x65\55\x73\151\x67\156\x2d\x73\163\157\55\x75\163\151\x6e\x67\55\x67\x6f\x6f\147\154\x65\55\x61\160\160\x73\x2d\151\x64\x70\x2f\x22\40\143\x6c\141\x73\163\75\42\155\157\x5f\x67\165\x69\144\x65\x5f\164\x65\170\164\x2d\x63\157\154\157\x72\x22\x20\x74\141\162\x67\145\x74\x3d\x22\137\x62\x6c\141\156\x6b\x22\76\x47\x6f\157\147\154\x65\x20\x41\x70\160\x73\74\57\141\x3e\x3c\x2f\x73\164\x72\x6f\x6e\147\x3e");
        $SC = Markup::create("\x3c\163\164\162\x6f\x6e\147\76\x3c\141\40\150\162\x65\x66\75\42\x68\x74\x74\160\163\72\x2f\x2f\160\x6c\165\147\151\156\x73\56\x6d\x69\x6e\151\157\162\x61\x6e\x67\145\56\x63\x6f\155\x2f\144\x72\x75\x70\x61\154\x2d\163\151\156\147\154\x65\x2d\163\151\x67\x6e\x2d\x73\x73\x6f\55\x75\x73\x69\x6e\x67\x2d\x73\x61\x6c\x65\x73\146\157\x72\x63\145\55\x69\x64\x70\x2f\42\x20\x63\154\141\163\x73\x3d\42\x6d\157\x5f\147\165\x69\144\x65\x5f\x74\x65\x78\164\55\143\157\154\157\x72\42\x20\164\141\x72\147\x65\x74\75\x22\137\142\154\141\x6e\153\x22\x3e\x53\x61\154\145\163\x66\x6f\162\x63\145\74\x2f\x61\x3e\74\57\x73\164\x72\x6f\156\x67\76");
        $KN = Markup::create("\74\163\x74\x72\157\x6e\147\76\x3c\141\x20\x63\154\141\163\x73\75\42\x6d\157\x5f\x67\x75\151\144\145\137\x74\145\x78\x74\55\x63\x6f\x6c\x6f\162\x22\x20\x68\162\x65\x66\x3d\x22\150\164\x74\x70\163\x3a\x2f\x2f\x70\154\165\147\151\156\163\x2e\155\151\x6e\x69\157\x72\x61\156\147\145\x2e\x63\157\155\57\x64\162\165\x70\x61\154\x2d\x73\151\156\x67\x6c\145\55\x73\151\x67\x6e\55\163\x73\x6f\x2d\x75\x73\151\x6e\147\55\x6d\151\x6e\x69\x6f\x72\x61\x6e\147\x65\x2d\x69\x64\x70\x2f\42\x20\164\141\x72\147\145\x74\75\42\x5f\142\x6c\141\156\153\x22\76\155\x69\156\151\117\x72\x61\156\147\x65\x3c\57\141\x3e\74\57\x73\x74\162\x6f\x6e\147\x3e");
        $YA = Markup::create("\74\163\x74\162\x6f\x6e\147\76\74\141\x20\x63\x6c\141\163\x73\75\42\155\157\x5f\147\x75\x69\x64\145\x5f\x74\x65\170\164\55\143\x6f\x6c\157\162\42\40\x68\162\145\x66\75\42\150\x74\164\x70\x73\x3a\57\x2f\160\154\x75\147\x69\156\163\56\x6d\x69\x6e\x69\157\x72\141\156\x67\145\56\143\157\x6d\x2f\147\165\x69\144\x65\55\146\157\162\55\144\162\165\x70\141\x6c\x2d\x73\x69\156\147\154\x65\x2d\163\x69\147\x6e\x2d\157\156\55\x75\163\151\x6e\147\x2d\x70\151\x6e\x67\x6f\156\145\x2d\x61\x73\x2d\x69\x64\x65\x6e\164\x69\x74\171\x2d\160\162\x6f\166\x69\144\x65\162\42\40\164\141\162\147\145\x74\x3d\x22\x5f\142\154\141\156\153\x22\x3e\120\151\156\147\x4f\x6e\145\x3c\57\141\x3e\74\57\x73\x74\x72\157\156\147\x3e");
        $cF = Markup::create("\74\163\x74\x72\x6f\x6e\x67\x3e\74\x61\x20\150\162\x65\146\x3d\x22\x68\x74\x74\160\x73\x3a\x2f\57\x70\x6c\x75\147\151\x6e\x73\x2e\155\x69\x6e\151\x6f\162\x61\156\x67\x65\x2e\143\157\x6d\57\144\162\165\x70\x61\x6c\x2d\x73\151\156\x67\154\145\55\163\x69\147\x6e\x2d\163\x73\157\55\x75\x73\x69\x6e\x67\x2d\157\x6e\x65\154\157\x67\151\x6e\55\x69\144\x70\x2f\42\x20\143\154\141\x73\x73\x3d\42\155\157\x5f\147\165\151\144\145\x5f\164\x65\x78\164\55\x63\157\154\157\162\42\40\x74\x61\162\147\x65\x74\75\x22\x5f\x62\154\x61\156\x6b\x22\x3e\117\156\145\154\x6f\x67\151\156\74\x2f\x61\x3e\74\x2f\163\x74\162\x6f\156\147\76");
        $ja = Markup::create("\x3c\x73\164\162\157\156\147\76\x3c\141\x20\150\162\145\x66\75\x22\150\x74\x74\160\x73\72\x2f\x2f\160\x6c\165\x67\151\156\x73\56\x6d\151\156\x69\x6f\x72\x61\156\x67\145\x2e\x63\157\155\57\144\x72\165\x70\x61\154\55\163\x69\156\147\154\145\55\163\x69\x67\x6e\x2d\x73\x73\x6f\55\x75\x73\x69\156\x67\x2d\142\x69\x74\x69\165\155\x2d\151\144\160\x22\x20\143\x6c\x61\163\163\75\42\x6d\x6f\137\147\165\x69\144\x65\137\x74\x65\x78\x74\55\x63\157\154\157\162\x22\x20\164\141\162\x67\x65\x74\75\42\137\x62\x6c\x61\x6e\x6b\x22\76\x42\x69\x74\151\x75\155\74\57\x61\76\74\x2f\163\164\x72\157\x6e\x67\76");
        $fQ = Markup::create("\x3c\163\x74\162\x6f\156\147\76\74\x61\x20\x68\162\145\146\75\x22\x68\164\164\160\163\x3a\57\x2f\x70\154\x75\147\151\x6e\x73\x2e\x6d\151\x6e\x69\157\162\141\156\x67\145\x2e\143\x6f\x6d\57\x64\162\x75\160\x61\154\55\163\x69\156\x67\x6c\x65\55\x73\x69\x67\156\55\163\163\x6f\x2d\x75\163\151\156\x67\x2d\x63\x65\x6e\x74\162\x69\146\x79\x2d\151\x64\160\x2f\x22\40\143\154\x61\163\163\x3d\x22\x6d\157\x5f\x67\165\x69\x64\x65\137\x74\145\170\x74\x2d\x63\157\x6c\157\162\42\x20\x74\141\x72\x67\x65\x74\75\x22\137\x62\x6c\x61\156\153\42\x3e\103\x65\156\164\162\x69\146\171\74\57\141\x3e\x3c\57\163\x74\162\x6f\x6e\147\x3e");
        $wd = Markup::create("\74\163\164\162\157\x6e\x67\x3e\x3c\x61\40\150\x72\x65\x66\75\x22\150\164\x74\x70\x73\72\x2f\57\160\x6c\165\x67\x69\156\x73\x2e\x6d\151\x6e\151\157\x72\141\156\x67\x65\x2e\x63\x6f\x6d\x2f\x67\165\151\144\145\x2d\x74\157\x2d\x63\x6f\156\146\151\147\165\x72\x65\55\157\x72\141\143\154\145\55\141\143\143\x65\x73\163\55\155\x61\156\141\147\x65\x72\55\x61\x73\55\x69\144\x70\55\141\x6e\x64\55\x64\x72\x75\160\141\154\55\141\163\55\x73\160\x22\x20\x63\154\x61\163\163\x3d\42\155\x6f\137\147\165\x69\144\x65\x5f\164\145\x78\x74\x2d\143\x6f\154\x6f\162\42\40\x74\x61\162\147\x65\x74\x3d\x22\137\142\154\141\156\153\42\76\x4f\162\141\x63\154\145\x3c\57\x61\x3e\x3c\57\163\x74\162\157\156\x67\x3e");
        $sp = Markup::create("\x3c\x73\164\x72\157\x6e\147\76\x3c\141\x20\150\x72\x65\146\75\x22\x68\164\x74\x70\163\x3a\x2f\x2f\x70\x6c\165\147\151\x6e\163\x2e\x6d\151\156\x69\x6f\162\x61\156\147\145\56\x63\x6f\x6d\57\x64\x72\165\x70\141\154\x2d\163\151\x6e\147\x6c\145\x2d\163\x69\147\156\x2d\157\x6e\55\163\x73\x6f\x2d\x75\x73\151\156\x67\55\x6a\x62\157\163\163\x2d\x6b\145\x79\143\x6c\157\141\153\55\141\163\55\x69\x64\160\x22\40\x63\x6c\x61\163\x73\x3d\42\x6d\157\x5f\x67\x75\x69\x64\x65\137\164\145\170\x74\x2d\x63\x6f\154\157\162\x22\x20\x74\x61\x72\x67\x65\164\x3d\42\x5f\x62\154\141\156\x6b\x22\76\112\142\x6f\163\x73\40\x4b\145\171\143\154\x6f\x61\153\74\57\x61\76\74\x2f\x73\x74\162\x6f\x6e\147\76");
        $hp = Markup::create("\74\x73\164\162\x6f\156\147\76\74\141\x20\150\162\145\146\x3d\42\150\x74\164\160\163\x3a\57\x2f\160\154\x75\x67\x69\x6e\163\56\x6d\x69\x6e\151\157\x72\141\156\x67\x65\x2e\143\157\x6d\57\x67\165\151\x64\x65\x2d\x66\x6f\162\55\x70\151\x6e\x67\146\145\x64\x65\x72\141\x74\145\x2d\x61\x73\x2d\151\x64\x70\x2d\167\x69\164\150\55\x64\x72\x75\160\x61\154\x22\40\143\x6c\x61\x73\x73\75\42\x6d\157\137\147\x75\151\x64\145\137\x74\x65\170\x74\x2d\143\x6f\x6c\157\162\42\40\x74\x61\162\147\x65\164\75\x22\x5f\x62\154\141\x6e\153\42\76\x50\151\156\147\40\106\145\144\145\x72\141\x74\x65\74\x2f\141\x3e\74\x2f\x73\164\x72\157\x6e\147\x3e");
        $Ds = Markup::create("\74\163\164\162\157\156\x67\x3e\x3c\x61\40\x68\x72\x65\x66\75\42\150\164\164\160\163\x3a\x2f\x2f\160\154\x75\147\x69\156\x73\x2e\x6d\151\156\x69\x6f\162\x61\156\147\x65\x2e\x63\x6f\155\x2f\x67\165\x69\144\x65\x2d\x66\x6f\x72\55\x6f\x70\x65\x6e\x61\155\55\x61\163\x2d\x69\x64\x70\x2d\x77\151\164\150\55\144\x72\165\x70\141\154\42\40\143\x6c\x61\163\x73\x3d\42\155\157\x5f\x67\x75\x69\x64\x65\x5f\x74\x65\170\164\x2d\x63\x6f\x6c\x6f\162\x22\40\164\141\x72\147\x65\x74\x3d\x22\137\142\154\141\x6e\153\42\x3e\x4f\160\x65\156\x41\x4d\x3c\57\x61\76\74\57\163\x74\x72\x6f\156\147\76");
        $bO = Markup::create("\74\x73\x74\x72\x6f\x6e\x67\76\x3c\141\40\150\162\x65\x66\x3d\42\150\164\x74\x70\x73\72\x2f\57\160\x6c\x75\x67\151\x6e\163\56\155\151\x6e\151\157\x72\141\156\147\145\56\143\157\155\57\144\x72\x75\160\141\x6c\55\x73\151\x6e\147\154\145\x2d\x73\151\147\x6e\55\157\156\55\x73\x73\157\55\165\163\151\156\x67\x2d\141\x75\164\150\141\x6e\166\151\154\55\x61\x73\55\151\x64\160\x22\40\143\x6c\x61\x73\163\75\42\x6d\x6f\x5f\x67\x75\151\x64\145\137\x74\x65\x78\164\x2d\x63\x6f\154\x6f\x72\x22\40\164\x61\x72\147\x65\164\75\x22\137\x62\x6c\x61\156\x6b\42\x3e\101\x75\164\150\101\156\x76\151\x6c\74\x2f\141\76\74\x2f\x73\164\162\157\156\x67\x3e");
        $pZ = Markup::create("\74\163\164\x72\x6f\156\147\x3e\74\141\x20\x68\162\145\x66\x3d\x22\150\164\x74\x70\163\72\x2f\57\x70\154\x75\147\151\x6e\x73\x2e\155\151\156\151\157\x72\x61\x6e\147\x65\56\x63\157\x6d\x2f\147\165\x69\144\145\x2d\146\x6f\x72\x2d\141\x75\164\150\x30\x2d\x61\163\x2d\151\144\x70\x2d\x77\x69\x74\150\55\x64\162\x75\x70\141\x6c\42\x20\143\x6c\x61\163\163\75\42\x6d\x6f\137\147\x75\x69\x64\x65\x5f\164\145\170\164\55\143\157\x6c\x6f\162\42\x20\x74\141\x72\x67\x65\164\75\x22\137\x62\x6c\x61\156\153\x22\x3e\141\165\x74\x68\x30\x3c\x2f\141\76\74\x2f\163\164\162\157\x6e\147\x3e");
        $rn = Markup::create("\74\163\164\x72\157\156\147\76\x3c\141\40\150\162\145\x66\75\x22\150\164\x74\x70\x73\x3a\x2f\57\160\x6c\165\147\151\x6e\163\56\x6d\x69\x6e\151\x6f\x72\x61\x6e\x67\145\x2e\143\x6f\155\x2f\x67\x75\151\144\145\x2d\x66\x6f\162\55\x64\x72\165\x70\x61\154\55\163\151\x6e\x67\x6c\x65\x2d\x73\x69\147\156\x2d\x6f\156\x2d\163\163\x6f\x2d\165\x73\151\156\x67\55\162\x73\141\x2d\x73\145\x63\x75\162\x69\144\x2d\141\x73\x2d\x69\144\x70\42\x20\x63\x6c\x61\x73\x73\75\x22\x6d\x6f\x5f\147\165\151\144\x65\137\164\x65\170\x74\x2d\143\x6f\x6c\157\x72\42\x20\x74\x61\x72\147\145\164\x3d\x22\x5f\x62\x6c\141\x6e\153\x22\x3e\122\123\x41\40\123\145\143\165\x72\111\x44\74\57\x61\76\x3c\x2f\x73\164\162\x6f\156\147\x3e");
        $T4 = Markup::create("\x3c\x73\x74\162\x6f\x6e\x67\x3e\x3c\141\x20\150\162\x65\x66\x3d\x22\150\164\164\x70\x73\72\57\57\160\154\165\147\151\156\x73\x2e\155\151\x6e\151\x6f\162\141\156\x67\x65\x2e\143\x6f\155\57\143\x6f\x6e\x66\151\147\165\x72\145\55\x64\x72\x75\160\x61\x6c\x2d\163\141\x6d\x6c\x2d\163\x69\x6e\147\154\145\x2d\x73\x69\x67\156\55\x6f\x6e\x22\x20\x63\x6c\x61\x73\x73\75\x22\x6d\x6f\137\147\165\x69\144\145\137\164\145\170\x74\x2d\143\x6f\x6c\157\162\42\x20\164\x61\162\147\145\x74\x3d\42\137\x62\x6c\141\x6e\153\x22\76\117\x74\150\145\x72\x20\111\x44\120\x3c\57\141\x3e\74\57\163\164\x72\x6f\156\x67\76");
        $Ru = array(array($KR, $LI), array($ss, $x1), array($SC, $cF), array($wd, $sp), array($fQ, $YA), array($hp, $Ds), array($bO, $pZ), array($KN, $rn));
        $ij = array(array("\x64\x61\x74\141" => t("\111\144\145\156\x74\x69\164\x79\40\120\162\x6f\x76\151\x64\145\x72\40\x53\145\x74\165\160\40\x47\165\x69\144\145\x73"), "\x63\157\154\x73\x70\141\x6e" => 2, "\x73\x74\x79\154\145" => "\x74\x65\x78\164\55\x61\x6c\151\x67\156\x3a\x20\x63\x65\156\x74\145\162"));
        $form["\155\157\x64\x75\x6c\145\163"] = array("\x23\x74\171\x70\145" => "\x74\x61\x62\x6c\145", "\43\x68\x65\x61\144\145\162" => $ij, "\x23\x72\157\x77\x73" => $Ru, "\43\141\x74\164\x72\x69\142\x75\164\145\x73" => ["\143\x6c\141\163\x73" => ["\155\157\x5f\x67\165\151\x64\x65\x5f\164\x61\x62\154\x65"]]);
        $form["\155\x6f\x64\x75\154\145\163"][8][0] = ["\43\155\141\x72\x6b\x75\160" => $T4, "\43\167\x72\x61\x70\x70\x65\162\x5f\141\x74\x74\x72\x69\x62\165\x74\x65\163" => ["\x63\x6f\x6c\x73\160\x61\x6e" => 2]];
        self::faq($form, $form_state);
        $form["\155\x69\x6e\x69\x6f\162\141\x6e\147\x65\x5f\x73\x70\137\147\165\151\x64\x65\x5f\154\x69\x6e\x6b\x5f\145\156\144"] = array("\x23\155\141\x72\x6b\165\160" => "\x3c\x2f\x64\x69\166\x3e");
    }
    public static function faq(&$form, &$form_state)
    {
        $form["\x6d\151\x6e\x69\x6f\x72\x61\156\147\x65\137\x66\x61\x71"] = array("\43\155\x61\x72\x6b\x75\160" => "\74\144\x69\x76\40\143\x6c\x61\163\163\75\x22\155\x6f\x5f\x67\165\151\x64\145\x5f\x74\x65\170\x74\x2d\143\x65\x6e\164\145\x72\42\x3e\x3c\x62\76\x3c\x2f\142\76\12\40\40\40\40\40\40\40\40\x20\40\x20\40\40\x20\x20\40\x20\40\x20\x20\40\x20\x20\x20\x20\40\40\40\x3c\x61\40\x63\154\x61\163\163\x3d\x22\142\165\164\x74\x6f\x6e\x20\x62\x75\164\164\157\156\55\x2d\x70\x72\151\x6d\x61\162\x79\x20\x62\165\x74\x74\x6f\x6e\x2d\x2d\x73\x6d\141\x6c\x6c\42\40\x68\x72\x65\x66\75\42\150\164\164\x70\163\72\x2f\x2f\146\x61\x71\x2e\x6d\x69\156\151\157\x72\x61\x6e\x67\x65\56\143\157\x6d\57\153\142\x2f\x64\162\x75\x70\x61\x6c\x2f\163\x61\x6d\x6c\55\144\x72\165\160\141\154\57\x22\x20\x74\141\162\147\x65\164\x3d\x22\x5f\x62\x6c\141\156\x6b\42\76\x46\x41\x51\163\x3c\57\141\x3e\12\40\x20\40\40\x20\x20\x20\40\40\x20\x20\40\x20\40\x20\x20\x20\40\40\x20\40\40\40\x20\x20\x20\x20\x20\74\x62\76\74\x2f\142\76\74\x61\x20\143\x6c\141\x73\163\x3d\42\x62\x75\x74\164\x6f\156\40\142\165\x74\164\157\x6e\55\55\160\x72\x69\155\141\x72\x79\x20\142\165\x74\x74\157\x6e\55\55\x73\155\141\x6c\154\x22\x20\x68\x72\x65\146\75\42\150\x74\164\160\x73\x3a\57\57\x66\x6f\162\x75\155\x2e\155\151\x6e\151\x6f\162\x61\x6e\x67\x65\56\143\157\155\57\x22\x20\x74\x61\x72\147\145\x74\75\42\137\142\x6c\x61\156\x6b\42\x3e\x41\163\x6b\x20\x71\x75\145\x73\x74\x69\x6f\x6e\163\40\157\x6e\x20\x66\x6f\x72\x75\x6d\x3c\57\x61\x3e\12\x20\40\x20\40\x20\40\x20\x20\40\x20\40\40\40\x20\x20\40\x20\40\40\x20\x20\x20\x20\40\40\40\74\57\x64\x69\x76\76");
    }
    public static function send_support_query($Nx, $nL, $Au, $hb)
    {
        $aI = new MiniorangeSamlSupport($Nx, $nL, $Au, $hb);
        $Zo = $aI->sendSupportQuery();
        if ($Zo) {
            goto Bv;
        }
        return false;
        goto ga;
        Bv:
        return true;
        ga:
    }
    public static function getClassNameForImport_Export()
    {
        $CN = array("\111\144\145\x6e\164\x69\x74\171\137\x50\162\x6f\166\x69\x64\x65\162" => "\x6d\157\x5f\x6f\x70\x74\151\x6f\156\163\137\x65\x6e\x75\155\137\x69\x64\x65\x6e\x74\x69\164\171\137\160\x72\157\x76\151\144\145\162", "\x53\x65\162\x76\x69\x63\x65\137\120\162\157\166\x69\x64\145\162" => "\x6d\x6f\137\x6f\x70\164\151\x6f\x6e\163\x5f\145\x6e\x75\155\x5f\163\x65\162\x76\151\x63\145\x5f\x70\162\157\166\151\144\x65\162", "\x53\151\x67\156\x69\156\x5f\123\145\164\164\x69\156\147\163" => "\155\157\x5f\157\160\x74\x69\x6f\156\x73\137\145\156\165\x6d\x5f\x73\151\147\156\151\156\x5f\163\145\164\x74\151\156\x67\x73", "\x4d\x61\160\x70\x69\x6e\x67" => "\155\x6f\x5f\157\x70\164\x69\157\x6e\163\137\x65\x6e\x75\x6d\137\155\141\x70\160\151\156\x67");
        return $CN;
    }
    public static function getVariableArrayForImport_Export($i4)
    {
        if ($i4 == "\x6d\x6f\137\x6f\160\x74\x69\157\156\163\137\x65\x6e\x75\155\x5f\151\144\145\x6e\164\x69\x74\x79\137\160\x72\x6f\166\x69\144\145\162") {
            goto rp;
        }
        if ($i4 == "\x6d\x6f\x5f\157\x70\164\x69\x6f\156\x73\137\145\x6e\x75\x6d\x5f\163\x65\162\x76\151\x63\x65\137\160\x72\x6f\166\151\144\x65\162") {
            goto NI;
        }
        if ($i4 == "\155\157\137\157\160\164\151\157\156\x73\137\x65\x6e\x75\155\x5f\163\151\147\156\151\156\x5f\x73\145\164\164\151\156\147\x73") {
            goto Zl;
        }
        if (!($i4 == "\x6d\x6f\x5f\157\160\x74\x69\x6f\x6e\x73\x5f\x65\156\165\x6d\x5f\155\141\x70\160\x69\x6e\147")) {
            goto Ya;
        }
        $Bl = array("\x55\x73\145\x72\x6e\x61\x6d\x65\137\141\164\x74\162\x69\142\165\x74\145" => "\x6d\151\x6e\x69\157\162\141\x6e\x67\145\137\x73\141\155\154\x5f\x75\x73\145\162\x6e\141\155\x65\x5f\141\164\x74\x72\151\142\x75\164\145", "\105\155\x61\x69\x6c\x5f\141\x61\x74\162\151\x62\165\x74\x65" => "\155\151\x6e\x69\x6f\162\141\156\x67\145\137\x73\141\x6d\154\x5f\x65\x6d\x61\151\x6c\x5f\141\x74\x74\x72\151\142\x75\x74\145", "\105\156\141\142\x6c\x65\137\122\x6f\154\145\x5f\155\x61\141\x70\151\x6e\147" => "\x6d\x69\x6e\x69\x6f\x72\x61\x6e\x67\x65\137\163\x61\155\154\137\x65\x6e\x61\142\154\x65\x5f\x72\x6f\154\145\x6d\x61\160\x70\151\x6e\147", "\104\x65\x66\x61\x75\x6c\x74\x5f\x67\162\x6f\x75\160\137\146\157\162\137\x6e\145\167\137\x75\x73\x65\x72\x73" => "\x6d\151\156\x69\x6f\162\141\156\x67\145\137\x73\141\x6d\x6c\x5f\x64\145\146\141\165\x6c\164\137\x72\157\x6c\145");
        Ya:
        goto Ce;
        Zl:
        $Bl = array("\101\165\164\157\x5f\143\x74\145\141\164\x69\157\156\137\165\x73\145\x72" => "\x6d\x69\156\151\157\162\141\156\147\145\x5f\x73\x61\155\154\137\x64\x69\163\x61\x62\x6c\145\137\141\165\x74\157\x63\x72\145\141\164\145\x5f\x75\x73\145\162\x73", "\x50\162\157\x74\x65\x63\164\137\167\150\x6f\x6c\145\x5f\x73\x69\x74\145" => "\155\x69\x6e\x69\x6f\x72\141\156\147\x65\137\x73\x61\x6d\154\x5f\x66\x6f\162\x63\x65\137\x61\165\164\x68", "\x41\x75\x74\x6f\137\162\145\144\151\x72\x65\x63\164" => "\155\x69\x6e\x69\x6f\162\x61\156\x67\x65\x5f\163\141\155\x6c\137\x61\x75\164\157\x5f\162\145\x64\x69\x72\145\x63\164\x5f\x74\x6f\x5f\151\x64\160", "\x42\x61\143\153\144\x6f\x6f\162\x5f\114\157\147\x69\x6e" => "\155\x69\156\x69\157\x72\141\x6e\x67\x65\137\163\141\x6d\x6c\x5f\145\x6e\141\142\154\x65\x5f\x62\x61\143\x6b\x64\157\157\162", "\x44\145\146\141\x75\154\x74\137\x72\145\x64\151\x72\145\x63\164\x5f\x55\x52\114" => "\x6d\151\156\x69\157\162\141\x6e\147\x65\x5f\x73\x61\x6d\x6c\x5f\x64\x65\146\x61\x75\154\x74\137\162\x65\154\x61\171\x73\x74\141\x74\x65");
        Ce:
        goto Y_;
        NI:
        $Bl = array("\111\144\145\x6e\164\151\x74\171\137\x6e\141\x6d\x65" => "\x6d\x69\x6e\x69\x6f\162\x61\x6e\147\145\137\163\141\155\154\x5f\151\x64\x70\x5f\156\x61\155\145", "\x49\x73\x73\x75\x65\162" => "\x6d\151\x6e\151\157\162\x61\x6e\147\145\137\163\x61\155\x6c\137\x69\144\160\x5f\151\163\x73\165\145\x72", "\x4e\x61\x6d\145\x5f\x49\104\x5f\x66\x6f\x72\x6d\x61\x74" => "\x6d\151\x6e\151\x6f\x72\141\x6e\x67\145\137\x73\141\x6d\x6c\137\x6e\141\155\145\151\x64\x5f\x66\157\x72\155\x61\164", "\150\x74\164\x70\137\142\151\156\x64\x69\156\x67" => "\155\151\156\151\157\x72\141\x6e\x67\145\x5f\163\141\155\x6c\x5f\x68\164\164\160\137\x62\x69\x6e\144\151\156\x67", "\x4c\x6f\147\x69\156\137\x55\x52\x4c" => "\155\151\x6e\x69\157\x72\141\x6e\147\145\x5f\163\x61\155\x6c\x5f\x69\x64\160\x5f\x6c\157\147\151\156\137\165\x72\154", "\x4c\157\147\157\x75\164\x5f\x55\122\x4c" => "\x6d\x69\156\x69\157\162\x61\156\147\x65\137\x73\x61\155\x6c\x5f\x69\144\160\x5f\154\157\x67\157\x75\x74\137\x75\162\154", "\130\65\x30\71\x5f\143\x65\162\164\x69\146\151\x63\141\x74\x65" => "\155\x69\156\x69\157\x72\x61\156\x67\145\x5f\x73\141\155\154\x5f\x69\x64\x70\137\x63\x65\162\164\151\x66\x69\143\141\x74\x65", "\x53\x69\147\x6e\x5f\x72\x65\161\165\145\x73\164" => "\x6d\151\x6e\x69\157\x72\141\x6e\x67\145\137\163\141\x6d\154\137\162\145\x71\165\x65\163\164\x5f\x73\151\x67\x6e\x65\144", "\105\156\141\x62\154\x65\137\x6c\x6f\147\x69\156\137\167\x69\x74\x68\x5f\123\x41\115\114" => "\155\151\156\151\157\162\x61\x6e\147\x65\137\x73\x61\x6d\154\x5f\145\x6e\x61\x62\154\145\x5f\x6c\x6f\147\151\156");
        Y_:
        goto Dk;
        rp:
        $Bl = array("\123\120\x5f\102\141\163\145\x5f\x55\x72\x6c" => "\155\151\x6e\x69\157\162\x61\x6e\147\x65\137\x73\x61\155\154\137\142\x61\x73\x65", "\x53\x50\x5f\x45\156\164\x69\164\171\137\x49\x44" => "\x6d\151\x6e\151\157\x72\x61\156\x67\145\137\163\x61\x6d\x6c\x5f\145\156\x74\x69\x74\171\x5f\151\144");
        Dk:
        return $Bl;
    }
    public static function moStoreDomainInDatabase($fy, $Ms = 0)
    {
        global $base_url;
        global $C1;
        $v5 = \Drupal::configFactory()->getEditable("\x6d\151\x6e\x69\x6f\162\141\x6e\x67\x65\x5f\163\141\155\154\x2e\163\145\164\164\151\156\147\163");
        $EU = \Drupal::request()->server->get("\x44\x4f\103\125\x4d\105\x4e\124\137\x52\x4f\117\x54") . $C1;
        $Dl = trim($base_url, "\x2f");
        if (preg_match("\x23\136\x68\164\x74\x70\x28\163\51\77\x3a\57\x2f\43", $Dl)) {
            goto MF;
        }
        $Dl = "\150\164\x74\160\72\57\57" . $Dl;
        MF:
        $aJ = parse_url($Dl);
        $Wq = isset($aJ["\160\141\164\x68"]) ? $aJ["\160\141\x74\x68"] : '';
        $xA = preg_replace("\57\x5e\167\x77\x77\x5c\56\x2f", '', $aJ["\150\x6f\x73\x74"] . $Wq);
        $G6 = $EU . $xA;
        if ($Ms == 0) {
            goto Fb;
        }
        return $G6;
        goto KV;
        Fb:
        $v5->set("\155\x69\156\x6f\162\x61\156\147\x65\x5f\x73\x61\155\154\x5f\x63\x75\x73\x74\157\155\x65\x72\x5f\x61\144\x6d\151\x6e\x5f\146\x72\x61\x75\x64\137\x63\150\x65\x63\153", AESEncryption::encrypt_data($G6, $fy))->save();
        KV:
    }
    public static function isCurlInstalled()
    {
        if (!in_array("\143\165\x72\x6c", get_loaded_extensions())) {
            goto I_;
        }
        return 1;
        I_:
        return 0;
    }
    public static function generateID()
    {
        return "\137" . self::stringToHex(self::generateRandomBytes(21));
    }
    public static function stringToHex($u3)
    {
        $dA = '';
        $H7 = 0;
        xT:
        if (!($H7 < strlen($u3))) {
            goto LX;
        }
        $dA .= sprintf("\45\x30\x32\x78", ord($u3[$H7]));
        iV:
        $H7++;
        goto xT;
        LX:
        return $dA;
    }
    public static function generateRandomBytes($lj, $ST = TRUE)
    {
        return openssl_random_pseudo_bytes($lj);
    }
    public static function insertSignature(XMLSecurityKey $fy, array $JY, DOMElement $fe = NULL, DOMNode $Zd = NULL)
    {
        $h0 = new XMLSecurityDSig();
        $h0->setCanonicalMethod(XMLSecurityDSig::EXC_C14N);
        switch ($fy->type) {
            case XMLSecurityKey::RSA_SHA256:
                $a8 = XMLSecurityDSig::SHA256;
                goto lP;
            case XMLSecurityKey::RSA_SHA384:
                $a8 = XMLSecurityDSig::SHA384;
                goto lP;
            case XMLSecurityKey::RSA_SHA512:
                $a8 = XMLSecurityDSig::SHA512;
                goto lP;
            default:
                $a8 = XMLSecurityDSig::SHA1;
        }
        uB:
        lP:
        $h0->addReferenceList(array($fe), $a8, array("\150\164\x74\160\72\57\57\x77\x77\167\x2e\167\x33\56\157\x72\x67\57\x32\x30\x30\60\57\60\71\57\x78\x6d\154\144\163\x69\x67\43\145\156\x76\145\x6c\x6f\x70\x65\x64\x2d\163\151\x67\156\x61\164\165\162\145", XMLSecurityDSig::EXC_C14N), array("\151\x64\x5f\156\x61\155\x65" => "\111\104", "\x6f\166\x65\162\x77\162\x69\x74\x65" => FALSE));
        $h0->sign($fy);
        foreach ($JY as $Ii) {
            $h0->add509Cert($Ii, TRUE);
            YO:
        }
        tv:
        $h0->insertSignature($fe, $Zd);
    }
    public static function postSAMLRequest($ff, $CG, $U_)
    {
        echo "\x3c\150\x74\x6d\x6c\76\x3c\x68\x65\141\144\x3e\x3c\163\x63\162\151\160\164\x20\x73\162\x63\x3d\47\x68\164\x74\x70\163\x3a\57\x2f\143\x6f\144\x65\56\152\x71\165\145\x72\171\56\x63\157\x6d\57\152\161\x75\x65\x72\x79\55\x31\56\61\61\56\x33\x2e\x6d\x69\156\x2e\152\x73\x27\76\x3c\57\163\143\162\151\x70\x74\x3e\x3c\163\x63\162\151\x70\x74\x20\x74\x79\160\145\75\42\164\145\170\x74\57\x6a\141\x76\x61\x73\x63\x72\151\160\164\x22\x3e\x24\x28\146\x75\156\143\x74\151\x6f\156\50\x29\x7b\x64\x6f\x63\165\x6d\x65\x6e\x74\x2e\146\x6f\x72\155\x73\x5b\x27\163\141\155\x6c\55\162\x65\x71\165\x65\163\x74\x2d\x66\x6f\162\x6d\x27\x5d\x2e\163\165\142\155\x69\x74\x28\x29\73\175\51\x3b\x3c\57\x73\143\162\151\x70\x74\76\74\57\150\x65\141\144\x3e\74\x62\157\x64\x79\76\120\x6c\145\141\x73\x65\40\x77\x61\x69\164\56\x2e\x2e\74\x66\x6f\x72\155\40\x61\x63\164\151\157\156\x3d\42" . $ff . "\x22\x20\x6d\x65\x74\x68\157\144\x3d\42\160\157\163\164\42\40\151\144\x3d\x22\163\141\155\x6c\x2d\162\145\x71\x75\x65\163\x74\x2d\146\x6f\162\155\x22\x3e\x3c\x69\x6e\160\165\164\40\x74\171\x70\145\x3d\x22\x68\x69\144\144\145\156\x22\40\x6e\141\x6d\145\75\42\123\x41\x4d\114\x52\x65\161\x75\145\x73\164\x22\40\166\141\x6c\165\145\75\42" . $CG . "\42\x20\57\76\74\x69\x6e\x70\x75\x74\40\164\171\160\145\75\42\150\x69\144\144\x65\x6e\42\40\156\141\x6d\x65\75\42\122\x65\154\141\x79\x53\x74\141\x74\145\x22\x20\166\141\154\165\145\75\x22" . htmlentities($U_) . "\42\40\57\76\x3c\x2f\x66\x6f\x72\x6d\x3e\x3c\x2f\142\157\144\171\x3e\74\57\x68\x74\155\x6c\76";
        exit;
    }
    public static function createAuthnRequest($EA, $Fs, $qy, $zU, $S5, $ZW = "\x66\x61\x6c\x73\x65")
    {
        $cv = "\74\77\170\x6d\154\40\166\x65\162\x73\x69\157\156\x3d\x22\61\x2e\x30\42\x20\x65\x6e\x63\x6f\x64\x69\x6e\147\75\42\125\124\x46\55\x38\x22\x3f\x3e" . "\74\x73\141\155\154\x70\72\x41\x75\164\x68\x6e\122\x65\161\x75\145\x73\x74\40\170\155\154\x6e\163\x3a\x73\x61\155\x6c\x70\x3d\x22\x75\x72\156\72\x6f\x61\163\151\x73\x3a\156\141\x6d\x65\163\72\164\x63\x3a\123\101\x4d\x4c\x3a\62\x2e\60\72\160\162\x6f\164\x6f\143\157\154\x22\x20\111\104\x3d\42" . self::generateID() . "\x22\x20\x56\x65\x72\163\x69\157\x6e\x3d\x22\62\x2e\x30\42\40\111\x73\163\x75\x65\111\x6e\x73\164\x61\x6e\164\75\42" . self::generateTimestamp() . "\x22";
        if (!($ZW == "\164\162\x75\x65")) {
            goto Ir;
        }
        $cv .= "\x20\106\x6f\162\143\x65\x41\x75\x74\150\156\x3d\42\x74\x72\165\145\x22";
        Ir:
        $cv .= "\40\x50\162\x6f\164\x6f\x63\x6f\154\x42\x69\156\x64\151\156\x67\75\42\165\x72\156\x3a\157\141\x73\151\x73\x3a\x6e\x61\x6d\x65\163\x3a\x74\143\72\x53\101\115\x4c\x3a\62\x2e\60\x3a\142\151\156\x64\x69\x6e\x67\163\72\x48\124\x54\120\x2d\120\117\123\124\x22\x20\x41\x73\163\145\162\164\151\157\156\x43\x6f\x6e\163\x75\155\x65\x72\123\x65\x72\x76\x69\x63\145\x55\122\114\75\42" . $EA . "\x22\40\x44\x65\x73\x74\151\156\x61\x74\x69\x6f\x6e\75\x22" . $zU . "\x22\x3e\74\x73\x61\155\x6c\x3a\111\x73\x73\x75\145\x72\x20\x78\155\154\156\163\72\163\x61\155\154\75\42\165\162\x6e\72\157\x61\x73\x69\x73\x3a\156\141\155\x65\163\x3a\x74\143\x3a\x53\101\x4d\114\x3a\62\x2e\x30\x3a\x61\163\x73\145\x72\164\x69\157\156\x22\76" . $Fs . "\74\57\x73\141\x6d\x6c\x3a\111\x73\x73\165\x65\162\76\74\163\x61\x6d\x6c\x70\x3a\x4e\x61\155\145\x49\104\x50\157\154\x69\143\171\40\101\154\x6c\x6f\167\x43\x72\x65\x61\x74\x65\75\42\x74\162\165\x65\42\x20\106\x6f\162\x6d\x61\164\75\42" . $qy . "\x22\12\x20\40\x20\x20\x20\x20\40\40\40\40\40\40\x20\x20\40\x20\x20\x20\x20\x20\x20\x20\40\x20\x2f\76\74\57\x73\141\155\154\160\72\x41\165\x74\x68\x6e\122\x65\x71\x75\x65\163\x74\76";
        if (!(empty($S5) || $S5 == "\110\124\124\120\55\x52\x65\x64\x69\162\145\x63\164")) {
            goto HY;
        }
        $pP = gzdeflate($cv);
        $QI = base64_encode($pP);
        $wo = urlencode($QI);
        $cv = $wo;
        HY:
        return $cv;
    }
    public static function createSAMLRequest($EA, $Fs, $zU, $qy, $ZW = "\146\x61\154\x73\145")
    {
        $cv = "\x3c\77\x78\155\x6c\x20\x76\x65\x72\163\151\x6f\x6e\x3d\x22\x31\56\x30\42\x20\x65\x6e\143\157\144\151\x6e\x67\75\x22\x55\124\x46\55\70\x22\77\76" . "\74\x73\x61\x6d\x6c\x70\72\101\165\164\150\x6e\122\x65\x71\165\145\x73\x74\x20\x78\155\x6c\156\163\x3a\x73\x61\155\154\160\75\x22\x75\x72\x6e\72\157\141\x73\151\163\x3a\x6e\141\x6d\145\x73\x3a\164\x63\72\123\101\115\114\x3a\x32\x2e\x30\72\160\x72\157\x74\x6f\x63\x6f\154\x22\x20\x78\x6d\x6c\156\x73\x3d\42\x75\162\156\72\157\141\x73\x69\x73\72\156\x61\155\145\163\72\x74\143\72\123\x41\115\x4c\x3a\62\x2e\x30\x3a\141\163\163\x65\162\164\151\x6f\x6e\x22\40\x49\104\75\x22" . self::generateID() . "\42\x20\126\x65\162\x73\x69\157\156\75\x22\x32\x2e\60\x22\x20\x49\163\163\165\x65\111\x6e\163\164\141\x6e\x74\75\x22" . self::generateTimestamp() . "\x22";
        if (!($ZW == "\x74\162\165\x65")) {
            goto K7;
        }
        $cv .= "\x20\106\157\x72\x63\145\x41\165\164\150\156\x3d\42\x74\x72\x75\x65\42";
        K7:
        $cv .= "\40\x50\x72\157\164\x6f\x63\x6f\154\102\151\156\144\151\156\x67\75\42\x75\162\156\x3a\157\141\x73\x69\x73\x3a\x6e\x61\x6d\145\x73\x3a\164\143\72\x53\x41\x4d\114\72\62\x2e\60\x3a\x62\x69\156\x64\x69\156\x67\x73\72\x48\x54\124\x50\x2d\120\x4f\x53\x54\x22\x20\101\163\163\145\x72\x74\x69\157\x6e\x43\157\x6e\163\x75\x6d\145\x72\123\145\x72\166\151\143\x65\125\x52\114\x3d\42" . $EA . "\42\40\104\x65\x73\164\151\156\141\164\151\x6f\156\75\42" . htmlspecialchars($zU) . "\x22\x3e\x3c\x73\141\x6d\154\x3a\x49\x73\x73\165\145\162\40\x78\x6d\x6c\x6e\163\72\163\x61\155\x6c\x3d\x22\165\x72\156\72\x6f\x61\x73\151\x73\x3a\156\x61\x6d\145\x73\72\164\x63\x3a\123\101\115\114\72\x32\x2e\x30\x3a\141\x73\163\145\x72\164\151\x6f\156\42\76" . $Fs . "\74\x2f\x73\141\x6d\x6c\x3a\x49\x73\163\x75\x65\x72\x3e\x3c\163\x61\155\154\x70\x3a\116\x61\x6d\x65\111\x44\x50\157\154\x69\143\x79\40\101\x6c\154\157\x77\x43\162\x65\141\164\x65\x3d\42\x74\162\x75\x65\x22\x20\x46\x6f\x72\x6d\141\x74\x3d\42" . $qy . "\42\x2f\76\x3c\x2f\163\141\x6d\x6c\x70\x3a\101\x75\164\x68\x6e\122\x65\161\x75\x65\x73\x74\x3e";
        return $cv;
    }
    public static function signXML($Rq, $w5, $jW, $pB = '')
    {
        $TB = array("\x74\x79\160\145" => "\x70\x72\x69\x76\141\x74\x65");
        $fy = new XMLSecurityKey(XMLSecurityKey::RSA_SHA256, $TB);
        $fy->loadKey($jW, FALSE);
        $dX = new DOMDocument();
        $dX->loadXML($Rq);
        $dC = $dX->firstChild;
        if (!empty($pB)) {
            goto XJ;
        }
        self::insertSignature($fy, array($w5), $dC);
        goto U2;
        XJ:
        $Gw = $dX->getElementsByTagName($pB)->item(0);
        self::insertSignature($fy, array($w5), $dC, $Gw);
        U2:
        $eq = $dC->ownerDocument->saveXML($dC);
        $n4 = base64_encode($eq);
        return $n4;
    }
    public static function generateTimestamp($DE = NULL)
    {
        if (!($DE === NULL)) {
            goto Ti;
        }
        $DE = time();
        Ti:
        return gmdate("\131\x2d\x6d\55\144\134\124\110\72\151\72\163\134\x5a", $DE);
    }
    public static function xpQuery(DOMNode $OX, $Au)
    {
        static $Ei = NULL;
        if ($OX instanceof DOMDocument) {
            goto AV;
        }
        $WI = $OX->ownerDocument;
        goto Sh;
        AV:
        $WI = $OX;
        Sh:
        if (!($Ei === NULL || !$Ei->document->isSameNode($WI))) {
            goto Lb;
        }
        $Ei = new DOMXPath($WI);
        $Ei->registerNamespace("\163\157\141\160\55\x65\x6e\166", "\150\164\x74\160\72\57\x2f\x73\143\x68\145\x6d\x61\x73\56\x78\155\x6c\163\157\141\160\x2e\x6f\162\x67\x2f\x73\x6f\141\160\x2f\x65\x6e\166\x65\x6c\157\x70\145\57");
        $Ei->registerNamespace("\x73\141\155\x6c\137\160\162\x6f\x74\x6f\x63\157\154", "\165\162\x6e\x3a\157\141\x73\x69\163\x3a\x6e\141\x6d\x65\x73\72\164\143\72\x53\101\115\114\x3a\x32\56\60\72\x70\162\x6f\164\x6f\x63\x6f\x6c");
        $Ei->registerNamespace("\x73\x61\155\x6c\x5f\x61\163\163\x65\x72\x74\151\x6f\x6e", "\165\x72\x6e\72\157\141\163\x69\163\x3a\x6e\141\x6d\x65\163\72\164\143\x3a\x53\101\115\114\72\x32\56\x30\72\141\x73\x73\x65\x72\164\151\157\156");
        $Ei->registerNamespace("\163\x61\155\154\x5f\x6d\x65\164\x61\x64\x61\164\x61", "\165\x72\156\72\x6f\x61\163\151\163\72\x6e\141\x6d\145\163\72\164\x63\x3a\123\101\115\x4c\72\x32\x2e\60\72\x6d\145\x74\141\x64\141\164\141");
        $Ei->registerNamespace("\x64\x73", "\x68\164\164\x70\x3a\x2f\x2f\x77\167\167\56\167\x33\x2e\157\x72\x67\57\62\60\x30\60\x2f\60\71\57\x78\155\154\144\x73\151\x67\x23");
        $Ei->registerNamespace("\170\145\x6e\x63", "\150\164\x74\x70\72\x2f\57\x77\x77\167\56\x77\x33\x2e\x6f\x72\x67\57\x32\60\x30\61\57\60\64\57\170\155\x6c\145\156\143\x23");
        Lb:
        $GU = $Ei->query($Au, $OX);
        $dA = array();
        $H7 = 0;
        Kf:
        if (!($H7 < $GU->length)) {
            goto cy;
        }
        $dA[$H7] = $GU->item($H7);
        Ap:
        $H7++;
        goto Kf;
        cy:
        return $dA;
    }
    public static function parseNameId(DOMElement $Rq)
    {
        $dA = array("\126\x61\x6c\165\145" => trim($Rq->textContent));
        foreach (array("\x4e\141\x6d\145\x51\x75\x61\154\151\x66\151\x65\x72", "\x53\120\116\x61\x6d\x65\x51\x75\141\154\x69\x66\x69\145\x72", "\106\157\x72\x6d\141\164") as $qi) {
            if (!$Rq->hasAttribute($qi)) {
                goto Pu;
            }
            $dA[$qi] = $Rq->getAttribute($qi);
            Pu:
            wL:
        }
        nT:
        return $dA;
    }
    public static function xsDateTimeToTimestamp($t4)
    {
        $iP = array();
        $H4 = "\x2f\x5e\x28\x5c\144\x5c\144\134\x64\134\x64\x29\x2d\50\x5c\144\x5c\x64\x29\x2d\50\x5c\144\x5c\144\x29\124\x28\134\144\x5c\x64\x29\x3a\50\x5c\x64\134\144\x29\x3a\x28\x5c\x64\x5c\x64\x29\x28\77\x3a\x5c\x2e\134\x64\x2b\51\x3f\132\x24\57\x44";
        if (!(preg_match($H4, $t4, $iP) == 0)) {
            goto a4;
        }
        echo sprintf("\156\166\141\154\151\144\40\123\101\x4d\114\62\40\164\x69\155\145\163\164\x61\155\160\40\x70\141\x73\x73\x65\144\x20\x74\x6f\x20\170\x73\x44\141\164\145\124\x69\155\x65\x54\157\124\151\x6d\x65\x73\x74\x61\x6d\x70\72\x20" . xss::filter($t4));
        exit;
        a4:
        $KS = intval($iP[1]);
        $CU = intval($iP[2]);
        $Jd = intval($iP[3]);
        $Y8 = intval($iP[4]);
        $mk = intval($iP[5]);
        $QC = intval($iP[6]);
        $m0 = gmmktime($Y8, $mk, $QC, $CU, $Jd, $KS);
        return $m0;
    }
    public static function extractStrings(DOMElement $Cd, $IQ, $vc)
    {
        $dA = array();
        $OX = $Cd->firstChild;
        E2:
        if (!($OX !== NULL)) {
            goto kq;
        }
        if (!($OX->namespaceURI !== $IQ || $OX->localName !== $vc)) {
            goto Bz;
        }
        goto co;
        Bz:
        $dA[] = trim($OX->textContent);
        co:
        $OX = $OX->nextSibling;
        goto E2;
        kq:
        return $dA;
    }
    public static function validateElement(DOMElement $fe)
    {
        $h0 = new XMLSecurityDSig();
        $h0->idKeys[] = "\111\104";
        $RC = self::xpQuery($fe, "\x2e\57\144\x73\x3a\123\151\147\x6e\141\x74\x75\x72\145");
        if (count($RC) === 0) {
            goto BL;
        }
        if (count($RC) > 1) {
            goto YH;
        }
        goto qY;
        BL:
        return FALSE;
        goto qY;
        YH:
        echo sprintf("\130\x4d\114\123\x65\143\72\x20\x6d\157\162\145\x20\164\x68\141\x6e\x20\x6f\x6e\x65\x20\163\151\147\x6e\141\x74\165\x72\x65\40\145\154\x65\x6d\145\x6e\164\40\151\x6e\x20\x72\157\x6f\x74\x2e");
        exit;
        qY:
        $RC = $RC[0];
        $h0->sigNode = $RC;
        $h0->canonicalizeSignedInfo();
        if ($h0->validateReference()) {
            goto gn;
        }
        echo sprintf("\130\x4d\114\x73\x65\x63\x3a\x20\144\151\147\x65\x73\164\x20\166\x61\x6c\x69\144\x61\164\x69\x6f\156\40\146\141\151\x6c\x65\x64");
        exit;
        gn:
        $jc = FALSE;
        foreach ($h0->getValidatedNodes() as $p_) {
            if ($p_->isSameNode($fe)) {
                goto Tk;
            }
            if ($fe->parentNode instanceof DOMElement && $p_->isSameNode($fe->ownerDocument)) {
                goto uv;
            }
            goto l3;
            Tk:
            $jc = TRUE;
            goto MI;
            goto l3;
            uv:
            $jc = TRUE;
            goto MI;
            l3:
            sT:
        }
        MI:
        if ($jc) {
            goto Kt;
        }
        echo sprintf("\130\115\114\123\x65\143\72\40\x54\x68\145\x20\162\x6f\x6f\164\x20\145\154\145\x6d\145\156\164\x20\x69\x73\40\156\157\x74\x20\163\151\147\x6e\x65\x64\x2e");
        exit;
        Kt:
        $JY = array();
        foreach (self::xpQuery($RC, "\56\57\144\x73\x3a\113\145\x79\x49\x6e\x66\x6f\x2f\144\163\72\x58\x35\60\x39\x44\141\x74\141\57\x64\163\72\130\x35\x30\x39\103\145\x72\x74\151\146\x69\x63\x61\x74\x65") as $DX) {
            $Qz = trim($DX->textContent);
            $Qz = str_replace(array("\15", "\xa", "\x9", "\x20"), '', $Qz);
            $JY[] = $Qz;
            a0:
        }
        jr:
        $dA = array("\123\x69\x67\x6e\x61\164\x75\162\145" => $h0, "\x43\145\x72\164\151\x66\151\143\141\164\145\x73" => $JY);
        return $dA;
    }
    public static function validateSignature(array $aw, XMLSecurityKey $fy)
    {
        $h0 = $aw["\x53\151\147\156\x61\164\x75\x72\x65"];
        $A4 = self::xpQuery($h0->sigNode, "\x2e\x2f\x64\x73\72\123\151\147\156\145\x64\x49\x6e\146\x6f\57\x64\163\72\123\x69\147\156\141\x74\165\x72\x65\115\x65\164\x68\157\144");
        if (!empty($A4)) {
            goto PZ;
        }
        echo sprintf("\x4d\x69\163\163\x69\x6e\147\40\123\151\x67\x6e\141\x74\x75\162\145\x4d\x65\x74\150\x6f\144\x20\145\154\x65\x6d\x65\156\x74");
        exit;
        PZ:
        $A4 = $A4[0];
        if ($A4->hasAttribute("\101\x6c\x67\157\x72\x69\164\150\155")) {
            goto jd;
        }
        echo sprintf("\x4d\x69\x73\163\151\x6e\x67\40\x41\x6c\147\157\162\x69\x74\150\155\x2d\x61\x74\x74\x72\x69\x62\x75\x74\x65\40\x6f\156\x20\123\x69\147\156\x61\164\x75\x72\x65\x4d\x65\164\150\157\144\40\145\x6c\x65\155\x65\x6e\164\56");
        exit;
        jd:
        $SV = $A4->getAttribute("\101\x6c\147\x6f\162\x69\x74\150\155");
        if (!($fy->type === XMLSecurityKey::RSA_SHA1 && $SV !== $fy->type)) {
            goto Jf;
        }
        $fy = self::castKey($fy, $SV);
        Jf:
        if ($h0->verify($fy)) {
            goto Y3;
        }
        echo sprintf("\125\156\x61\x62\x6c\145\x20\x74\157\x20\166\141\154\151\x64\141\164\145\x20\x53\x67\x6e\x61\x74\x75\x72\145");
        exit;
        Y3:
    }
    public static function castKey(XMLSecurityKey $fy, $XK, $a8 = "\160\x75\x62\154\151\x63")
    {
        if (!($fy->type === $XK)) {
            goto yv;
        }
        return $fy;
        yv:
        $f8 = openssl_pkey_get_details($fy->key);
        if (!($f8 === FALSE)) {
            goto lJ;
        }
        echo sprintf("\x55\156\141\x62\154\145\40\164\x6f\x20\x67\145\164\x20\153\x65\x79\40\x64\x65\x74\x61\151\x6c\163\40\x66\x72\157\155\40\x58\x4d\x4c\x53\x65\143\x75\162\x69\x74\x79\113\145\x79\56");
        exit;
        lJ:
        if (isset($f8["\x6b\x65\171"])) {
            goto Zp;
        }
        echo sprintf("\115\x69\x73\163\151\x6e\x67\40\x6b\x65\x79\40\151\x6e\x20\x70\165\x62\154\x69\x63\x20\x6b\x65\171\40\144\145\x74\x61\x69\x6c\x73\56");
        exit;
        Zp:
        $kw = new XMLSecurityKey($XK, array("\x74\x79\x70\145" => $a8));
        $kw->loadKey($f8["\x6b\x65\x79"]);
        return $kw;
    }
    public static function processResponse($R7, $Ij, $D9, SAML2_Response $v9)
    {
        $c2 = $D9["\103\145\x72\x74\151\146\151\143\141\x74\x65\163"][0];
        $R8 = $v9->getDestination();
        if (!($R8 !== NULL && $R8 !== $R7)) {
            goto o7;
        }
        echo sprintf("\x44\145\x73\164\x69\156\x61\x74\151\157\156\40\x69\156\x20\162\x65\x73\160\157\x6e\163\145\40\144\157\145\163\x6e\x27\x74\40\x6d\141\x74\x63\x68\40\164\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74\40\x55\x52\114\x2e\x20\104\x65\163\x74\x69\x6e\x61\164\151\157\x6e\x20\151\x73\x20\42" . xss::filter($R8) . "\x22\54\40\143\165\x72\162\x65\156\164\40\125\122\x4c\x20\x69\163\x20\42" . xss::filter($R7) . "\42\56");
        exit;
        o7:
        $ID = self::checkSign($Ij, $D9, $c2);
        return $ID;
    }
    public static function checkSign($Ij, $D9, $c2)
    {
        $JY = $D9["\x43\145\x72\x74\x69\x66\x69\143\141\164\145\x73"];
        if (!(count($JY) === 0)) {
            goto eV;
        }
        return FALSE;
        eV:
        $Ue = self::findCertificate($Ij, $JY, $c2);
        $HH = NULL;
        $fy = new XMLSecurityKey(XMLSecurityKey::RSA_SHA1, array("\164\171\160\x65" => "\x70\165\x62\154\x69\143"));
        $fy->loadKey($Ue);
        try {
            self::validateSignature($D9, $fy);
            return TRUE;
        } catch (Exception $Nt) {
            $HH = $Nt;
        }
        if ($HH !== NULL) {
            goto hN;
        }
        return FALSE;
        goto vu;
        hN:
        throw $HH;
        vu:
    }
    private static function findCertificate($nE, $JY, $c2)
    {
        foreach ($JY as $Y_) {
            $fa = strtolower(sha1(base64_decode($Y_)));
            if (!($fa == $nE)) {
                goto DF;
            }
            $TX = "\x2d\55\x2d\x2d\55\x42\105\x47\x49\116\x20\103\105\122\x54\111\106\111\103\101\124\x45\x2d\x2d\x2d\55\55\xa" . chunk_split($Y_, 64) . "\55\55\x2d\55\55\x45\116\104\40\x43\105\x52\x54\111\x46\x49\x43\101\124\x45\x2d\x2d\55\x2d\x2d\12";
            return $TX;
            DF:
            Mf:
        }
        JJ:
        if (array_key_exists("\x52\145\154\141\171\x53\164\141\164\145", $_REQUEST) && $_REQUEST["\x52\x65\x6c\141\x79\123\164\141\x74\x65"] == "\x74\x65\x73\x74\x56\x61\154\x69\144\141\x74\x65") {
            goto RU;
        }
        echo "\x20\x3c\x64\151\166\x20\x73\164\171\x6c\145\75\42\143\157\154\157\x72\x3a\40\x23\x61\71\x34\64\64\x32\x3b\x66\x6f\x6e\x74\55\163\151\172\x65\72\x31\x34\x70\x74\73\x20\x6d\x61\x72\x67\151\156\x2d\142\x6f\x74\x74\x6f\155\72\x32\60\x70\170\x3b\x22\76\74\x70\x3e\74\x62\76\x45\162\162\157\162\x3a\x20\74\57\142\x3e\x57\145\40\x63\157\x75\154\144\x20\156\157\164\40\163\151\147\156\40\x79\157\165\x20\x69\156\56\x20\x50\x6c\x65\141\163\x65\x20\143\x6f\x6e\164\141\x63\x74\40\x79\157\x75\x72\x20\x41\144\155\151\x6e\151\163\x74\162\x61\x74\157\x72\x2e\x3c\x2f\x70\x3e\x3c\x2f\144\151\166\x3e";
        goto Sm;
        RU:
        echo "\x3c\x64\x69\x76\x20\163\x74\x79\x6c\x65\x3d\42\146\157\156\164\55\146\x61\155\151\x6c\171\x3a\103\x61\154\x69\x62\162\x69\x3b\x70\141\144\x64\151\156\x67\x3a\60\40\63\45\x3b\x22\x3e";
        echo "\74\x64\x69\166\40\163\x74\x79\154\145\75\x22\143\157\x6c\x6f\x72\72\x20\43\x61\x39\x34\64\64\62\x3b\x62\x61\x63\x6b\x67\162\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\162\x3a\x20\x23\x66\62\x64\145\x64\x65\73\x70\x61\144\x64\151\x6e\147\72\x20\61\65\x70\170\73\x6d\141\162\147\x69\156\55\x62\x6f\164\164\157\155\x3a\x20\62\60\x70\170\73\164\x65\x78\164\x2d\141\x6c\x69\147\156\x3a\x63\145\156\x74\x65\162\73\x62\157\162\144\145\x72\72\61\160\x78\40\163\157\154\151\144\40\43\105\66\102\63\x42\62\x3b\146\157\x6e\x74\55\x73\151\172\145\72\x31\70\160\164\73\x22\76\40\x45\x52\x52\117\122\x3c\57\144\151\166\x3e\12\x9\x9\x9\x9\74\144\x69\166\40\x73\164\x79\154\x65\x3d\42\x63\157\x6c\157\162\x3a\40\x23\x61\71\64\x34\x34\62\73\x66\x6f\x6e\164\55\x73\x69\172\x65\x3a\x31\64\160\164\x3b\x20\155\x61\x72\x67\151\156\55\142\x6f\x74\x74\x6f\155\x3a\x32\60\160\x78\73\42\x3e\74\x70\76\x3c\163\164\x72\x6f\156\147\76\x45\x72\162\x6f\x72\72\40\74\x2f\x73\x74\x72\x6f\156\147\76\125\156\x61\142\x6c\145\x20\x74\157\x20\x66\151\156\144\40\x61\40\143\x65\162\164\x69\146\151\143\141\x74\x65\x20\x6d\x61\x74\x63\x68\x69\156\147\x20\x74\x68\x65\x20\143\157\156\146\x69\x67\165\162\x65\144\40\146\x69\156\x67\145\x72\x70\x72\151\x6e\164\56\74\57\160\x3e\xa\11\x9\11\11\x3c\160\76\x3c\163\x74\x72\x6f\156\x67\x3e\120\157\x73\x73\x69\142\154\145\40\103\141\x75\163\145\x3a\x20\74\x2f\163\x74\162\157\156\147\x3e\103\157\x6e\164\x65\156\x74\x20\x6f\x66\40\47\x58\56\65\x30\71\x20\x43\x65\x72\164\x69\146\151\143\141\164\145\47\x20\146\x69\x65\154\144\x20\x69\x6e\40\123\145\162\166\x69\143\x65\40\120\x72\x6f\x76\x69\x64\145\162\x20\x53\x65\x74\x74\151\156\x67\163\x20\x69\x73\x20\x69\156\x63\157\162\x72\145\x63\164\74\x2f\x70\x3e\12\x9\x9\11\11\74\160\x3e\x3c\142\76\x45\x78\160\145\x63\x74\x65\x64\40\166\x61\x6c\165\145\72\x3c\57\x62\x3e" . $c2 . "\74\x2f\x70\x3e";
        echo str_repeat("\46\156\x62\163\x70\73", 15);
        echo "\74\57\144\151\166\76\xa\x9\x9\11\11\x3c\144\151\166\x20\163\164\171\154\145\75\42\x6d\x61\x72\147\x69\x6e\x3a\63\45\73\144\x69\163\x70\x6c\x61\x79\72\142\x6c\157\x63\153\73\x74\x65\170\x74\x2d\x61\x6c\151\x67\x6e\x3a\143\145\x6e\x74\x65\162\x3b\42\76\12\x9\11\x9\x9\x3c\x66\157\162\x6d\40\141\143\164\151\x6f\156\75\42\151\x6e\x64\145\170\56\x70\150\160\42\76\xa\11\11\x9\11\x3c\x64\151\166\40\163\164\171\154\145\x3d\42\x6d\141\162\147\151\x6e\72\63\45\73\x64\151\163\x70\x6c\141\x79\72\142\x6c\x6f\143\153\73\x74\145\170\x74\x2d\x61\154\151\x67\x6e\x3a\x63\145\156\x74\x65\x72\x3b\42\x3e\74\151\156\x70\165\164\40\x73\x74\x79\154\x65\x3d\x22\x70\x61\x64\x64\151\156\x67\72\61\45\73\167\151\x64\x74\150\72\61\60\x30\x70\x78\73\x62\141\143\x6b\147\162\157\x75\156\x64\x3a\x20\x23\x30\60\71\x31\x43\104\x20\156\157\156\145\40\162\145\x70\145\141\x74\40\163\x63\162\x6f\x6c\x6c\x20\x30\x25\40\x30\x25\x3b\143\165\162\x73\x6f\162\x3a\x20\x70\x6f\x69\x6e\x74\x65\162\x3b\146\157\156\x74\x2d\x73\151\x7a\145\x3a\x31\x35\160\170\73\x62\x6f\x72\144\145\x72\55\x77\151\x64\164\150\x3a\x20\61\x70\x78\x3b\142\157\162\144\x65\162\x2d\163\x74\x79\154\145\x3a\40\163\x6f\154\x69\144\73\x62\x6f\162\x64\x65\x72\55\162\141\144\x69\165\163\72\x20\63\160\170\73\x77\150\x69\164\x65\55\x73\160\141\143\145\72\x20\156\x6f\167\162\x61\x70\73\142\157\x78\55\x73\151\x7a\151\x6e\147\72\x20\x62\157\162\x64\145\x72\x2d\142\x6f\170\73\x62\x6f\x72\x64\x65\x72\x2d\143\x6f\x6c\x6f\x72\x3a\x20\43\60\60\x37\x33\x41\x41\73\x62\x6f\170\x2d\x73\150\141\x64\157\167\72\x20\60\x70\x78\40\x31\160\170\x20\60\160\170\40\x72\147\142\141\x28\61\x32\60\54\40\62\x30\60\x2c\40\62\x33\x30\54\40\x30\56\66\x29\x20\x69\x6e\163\x65\164\73\x63\x6f\154\x6f\162\72\x20\43\x46\106\106\73\42\x74\x79\x70\145\75\42\x62\x75\x74\x74\157\156\x22\x20\x76\x61\154\x75\x65\75\x22\104\157\x6e\145\42\40\x6f\156\x43\154\151\143\153\75\42\x73\145\x6c\x66\56\143\154\157\x73\145\50\51\73\42\x3e\74\57\x64\x69\166\x3e";
        Sm:
        exit;
    }
    public static function validateIssuerAndAudience($zQ, $vT, $MQ, $base_url)
    {
        $Fs = current($zQ->getAssertions())->getIssuer();
        $IM = current(current($zQ->getAssertions())->getValidAudiences());
        if (strcmp($MQ, $Fs) === 0) {
            goto Q2;
        }
        if (array_key_exists("\122\145\154\141\171\123\x74\141\x74\x65", $_REQUEST) && $_REQUEST["\x52\145\x6c\x61\x79\123\164\141\x74\x65"] == "\164\x65\x73\x74\x56\141\154\151\x64\x61\164\x65") {
            goto LR;
        }
        echo "\74\x64\x69\x76\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\157\162\x3a\40\x23\x61\x39\64\x34\64\x32\x3b\x66\157\x6e\x74\55\x73\151\x7a\145\72\x31\x34\160\x74\73\40\155\141\x72\147\x69\156\x2d\x62\x6f\x74\x74\x6f\x6d\72\x32\60\160\170\73\x22\76\74\x70\x3e\74\x62\x3e\x45\x72\x72\x6f\162\72\40\74\x2f\x62\76\127\145\40\143\x6f\x75\154\x64\40\156\157\164\x20\163\x69\147\156\x20\171\x6f\x75\40\151\156\56\40\120\154\x65\x61\x73\x65\x20\143\157\156\164\141\x63\x74\40\171\157\x75\162\x20\x41\x64\x6d\151\x6e\x69\x73\x74\x72\141\164\x6f\162\x2e\74\57\160\76\74\57\x64\x69\166\76";
        goto fO;
        LR:
        echo "\74\144\x69\x76\40\163\x74\171\x6c\x65\75\x22\x66\157\156\x74\x2d\146\x61\x6d\151\154\171\72\x43\141\x6c\x69\142\x72\151\x3b\160\141\144\x64\x69\156\147\x3a\60\40\x33\x25\x3b\x22\x3e";
        echo "\x3c\x64\x69\166\x20\x73\164\171\154\145\75\x22\x63\157\x6c\x6f\x72\x3a\40\x23\141\x39\x34\x34\x34\x32\x3b\x62\x61\143\x6b\x67\x72\157\x75\156\144\55\143\x6f\x6c\x6f\x72\x3a\x20\x23\146\62\144\x65\144\145\x3b\160\141\x64\144\151\x6e\147\x3a\40\61\65\x70\x78\x3b\155\x61\162\x67\x69\156\x2d\x62\157\x74\x74\x6f\x6d\x3a\x20\62\x30\x70\170\73\x74\145\x78\164\x2d\x61\154\x69\x67\156\72\143\145\156\x74\x65\162\73\x62\x6f\x72\144\145\162\x3a\x31\x70\170\x20\163\157\x6c\151\144\40\x23\105\x36\x42\x33\102\62\x3b\x66\x6f\156\x74\55\163\x69\172\x65\72\x31\x38\x70\164\x3b\x22\x3e\x20\105\122\122\117\122\74\x2f\144\x69\166\x3e\12\11\11\11\x9\x9\x3c\x64\x69\x76\x20\x73\164\x79\x6c\x65\75\42\143\x6f\154\x6f\x72\x3a\x20\x23\141\x39\x34\64\64\62\x3b\146\x6f\x6e\x74\x2d\163\x69\x7a\145\x3a\61\64\x70\x74\x3b\40\x6d\x61\x72\x67\151\x6e\55\x62\157\x74\x74\157\x6d\72\62\x30\x70\x78\73\42\76\x3c\x70\76\x3c\163\164\x72\x6f\x6e\147\x3e\x45\x72\162\157\162\x3a\x20\x3c\x2f\163\x74\x72\x6f\156\147\76\111\x73\x73\165\x65\x72\x20\143\x61\156\x6e\157\164\x20\142\x65\x20\x76\x65\162\x69\146\x69\145\x64\56\74\57\160\76\12\x9\11\x9\x9\11\74\x70\x3e\x50\154\145\x61\x73\x65\40\x63\x6f\156\164\x61\x63\164\x20\171\x6f\165\x72\40\141\144\x6d\x69\x6e\x69\163\x74\162\141\x74\x6f\162\x20\141\x6e\144\40\162\145\160\157\162\x74\x20\x74\x68\145\40\146\x6f\154\154\157\x77\151\x6e\x67\40\x65\x72\x72\x6f\x72\x3a\x3c\x2f\x70\76\12\11\11\11\x9\x9\74\160\76\74\x73\164\x72\157\x6e\147\76\120\x6f\x73\163\151\142\154\x65\x20\x43\141\165\163\145\72\40\74\x2f\163\164\x72\157\x6e\x67\x3e\124\x68\145\x20\x76\141\154\x75\x65\x20\151\156\40\x27\111\144\x50\40\x45\x6e\164\x69\x74\x79\40\x49\104\40\157\x72\40\111\163\x73\x75\x65\162\47\x20\146\x69\145\154\x64\x20\151\x6e\40\123\x65\x72\x76\x69\x63\x65\40\120\162\x6f\x76\x69\144\x65\x72\x20\123\x65\164\164\x69\x6e\x67\x73\x20\x69\163\x20\151\156\x63\x6f\x72\162\x65\x63\164\74\57\160\76\xa\x9\11\x9\x9\11\x3c\x70\x3e\x3c\163\x74\162\157\x6e\147\76\105\170\x70\x65\x63\x74\x65\144\x20\105\156\164\151\164\171\x20\111\x44\72\x20\x3c\x2f\x73\164\162\157\x6e\x67\76" . $Fs . "\x3c\160\76\xa\11\11\11\11\x9\x3c\x70\x3e\74\x73\164\162\157\x6e\147\x3e\105\x6e\164\151\164\x79\40\x49\104\x20\106\157\x75\x6e\x64\x3a\40\x3c\57\163\x74\x72\157\x6e\147\76" . $MQ . "\x3c\57\160\x3e\12\x9\x9\x9\11\x9\x3c\57\144\x69\x76\76\xa\11\x9\11\11\x9\74\x64\151\166\x20\x73\x74\171\154\145\75\42\155\x61\162\147\x69\156\72\x33\x25\x3b\x64\151\x73\160\154\141\x79\72\x62\154\157\143\x6b\73\x74\145\170\x74\55\x61\154\x69\x67\x6e\x3a\x63\x65\x6e\x74\x65\162\73\x22\x3e\xa\11\11\11\x9\x9\74\144\x69\166\x20\163\x74\171\x6c\x65\75\x22\155\x61\162\147\151\x6e\x3a\x33\x25\x3b\144\x69\163\160\x6c\x61\x79\x3a\142\x6c\x6f\143\x6b\x3b\x74\x65\170\x74\55\x61\x6c\x69\147\x6e\72\x63\145\x6e\x74\x65\162\73\42\76\x3c\x69\x6e\160\x75\x74\x20\163\x74\171\x6c\x65\x3d\x22\160\141\x64\x64\x69\x6e\x67\x3a\x31\45\x3b\x77\x69\x64\x74\150\72\x31\x30\60\x70\x78\73\142\141\x63\153\147\162\x6f\165\156\144\72\x20\x23\60\x30\71\x31\x43\104\x20\156\157\x6e\x65\x20\162\145\160\145\141\x74\x20\163\x63\162\x6f\x6c\154\40\60\x25\40\x30\x25\x3b\143\x75\162\x73\157\162\x3a\40\160\157\151\x6e\164\145\162\x3b\146\x6f\x6e\x74\x2d\163\151\x7a\145\x3a\x31\x35\160\x78\73\142\157\x72\x64\x65\162\55\x77\x69\144\164\x68\72\x20\61\160\170\x3b\x62\157\162\x64\x65\162\x2d\163\164\x79\x6c\x65\x3a\40\x73\x6f\x6c\151\144\73\142\157\x72\144\x65\162\x2d\x72\141\x64\x69\165\x73\72\x20\63\x70\x78\73\x77\x68\x69\x74\145\x2d\163\160\x61\x63\145\x3a\x20\156\x6f\167\x72\141\x70\x3b\x62\157\x78\55\x73\151\x7a\151\156\147\72\40\142\x6f\162\x64\145\x72\55\142\x6f\x78\73\142\x6f\162\144\x65\x72\x2d\x63\x6f\154\157\x72\x3a\40\43\60\60\67\63\x41\101\73\x62\x6f\170\55\x73\150\141\x64\x6f\167\x3a\40\x30\160\x78\40\61\160\x78\x20\x30\x70\x78\40\x72\x67\x62\141\x28\x31\62\x30\x2c\x20\x32\x30\x30\54\40\62\63\x30\x2c\x20\60\x2e\x36\51\x20\151\x6e\x73\x65\164\73\143\x6f\x6c\x6f\162\x3a\x20\x23\106\x46\106\x3b\42\164\x79\x70\145\x3d\x22\x62\165\x74\164\157\156\42\40\166\141\154\165\x65\75\x22\x44\157\156\x65\x22\40\157\x6e\x43\154\151\x63\x6b\x3d\x22\x73\x65\154\x66\x2e\143\x6c\x6f\x73\x65\x28\x29\73\42\76\x3c\57\144\x69\166\76";
        fO:
        exit;
        goto O9;
        Q2:
        if (strcmp($IM, $vT) === 0) {
            goto z5;
        }
        if (array_key_exists("\122\x65\154\141\x79\123\164\141\164\x65", $_REQUEST) && $_REQUEST["\122\x65\x6c\141\171\x53\x74\x61\164\x65"] == "\164\145\163\x74\126\x61\154\151\144\x61\164\x65") {
            goto mf;
        }
        echo "\x3c\x64\x69\166\x20\163\x74\171\154\145\x3d\42\x63\157\154\157\162\x3a\x20\x23\x61\x39\64\64\x34\x32\73\x66\157\156\x74\55\x73\151\172\145\x3a\61\64\160\x74\x3b\40\155\x61\162\x67\151\x6e\x2d\142\x6f\x74\x74\157\155\x3a\x32\60\x70\170\x3b\42\76\x3c\x70\x3e\x3c\142\x3e\x45\x72\162\157\x72\72\x20\x3c\x2f\x62\x3e\127\145\x20\x63\157\165\x6c\144\x20\x6e\x6f\164\40\x73\151\x67\x6e\x20\x79\157\165\40\151\156\56\40\120\x6c\145\x61\x73\145\40\x63\157\x6e\x74\141\143\x74\x20\171\x6f\x75\x72\x20\101\144\155\151\156\x69\163\x74\x72\x61\164\x6f\162\56\74\x2f\160\x3e\74\x2f\x64\151\166\76";
        goto Qi;
        mf:
        echo "\x3c\x64\151\x76\40\x73\164\x79\154\145\75\42\146\x6f\x6e\164\55\x66\x61\x6d\x69\x6c\171\x3a\103\141\x6c\151\142\162\151\73\x70\141\144\x64\x69\156\x67\x3a\x30\40\63\45\73\x22\x3e";
        echo "\x3c\144\151\x76\x20\x73\x74\171\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\162\x3a\40\x23\141\71\x34\64\x34\62\73\142\141\x63\x6b\x67\162\x6f\165\x6e\x64\x2d\x63\x6f\154\157\x72\x3a\x20\43\x66\x32\144\x65\144\x65\73\160\x61\144\x64\151\x6e\x67\72\x20\61\65\x70\x78\x3b\155\141\x72\147\x69\156\55\x62\157\x74\164\157\155\x3a\40\x32\x30\x70\x78\73\164\145\170\164\55\x61\154\x69\x67\x6e\x3a\x63\145\156\164\145\x72\x3b\x62\x6f\x72\144\145\162\x3a\x31\x70\x78\x20\163\157\x6c\151\144\40\43\105\66\102\63\102\x32\73\x66\x6f\156\x74\x2d\163\x69\172\145\72\x31\70\x70\x74\x3b\x22\x3e\40\x45\x52\122\x4f\122\x3c\57\144\151\x76\x3e\12\x20\x20\x20\40\40\x20\40\x20\40\x20\40\40\40\x20\40\x20\x20\x20\x20\x20\x3c\144\x69\x76\40\163\164\x79\x6c\145\x3d\42\x63\157\x6c\157\x72\x3a\x20\43\141\x39\x34\64\x34\x32\x3b\x66\157\x6e\x74\55\163\151\172\x65\72\61\64\160\x74\73\x20\155\x61\x72\147\x69\x6e\55\142\157\164\164\157\155\x3a\62\60\160\x78\x3b\x22\x3e\x3c\160\x3e\74\163\164\x72\157\x6e\x67\76\x45\x72\162\157\162\x3a\x20\74\x2f\163\164\x72\157\156\147\76\x49\156\x76\141\154\151\x64\40\x41\x75\x64\151\x65\x6e\143\145\40\125\122\111\x2e\74\x2f\160\x3e\xa\40\x20\40\40\x20\40\40\40\40\x20\x20\x20\40\40\x20\40\x20\40\x20\x20\x3c\160\76\x50\154\x65\141\163\x65\40\x63\157\x6e\x74\x61\143\x74\40\171\157\165\162\40\x61\144\155\151\156\151\x73\x74\162\141\164\x6f\x72\40\141\156\x64\40\162\x65\160\157\162\164\40\x74\x68\145\40\x66\x6f\154\x6c\x6f\167\151\x6e\147\x20\145\x72\162\157\x72\72\x3c\57\x70\76\12\40\40\40\40\40\40\x20\x20\40\40\x20\x20\40\40\40\x20\x20\40\x20\x20\x3c\x70\x3e\x3c\163\164\162\x6f\x6e\147\76\x50\x6f\163\x73\x69\142\x6c\145\40\x43\x61\x75\163\x65\72\x20\74\57\163\164\162\157\x6e\147\x3e\x54\x68\x65\x20\166\141\154\165\x65\x20\x6f\146\x20\47\101\x75\x64\x69\x65\x6e\143\x65\x20\125\x52\x49\x27\x20\x66\151\145\154\144\x20\157\156\x20\111\144\145\x6e\x74\151\164\x79\x20\x50\x72\157\166\151\x64\x65\162\x27\163\40\x73\x69\144\145\x20\151\x73\x20\151\x6e\143\157\x72\x72\x65\x63\164\74\57\160\x3e\12\x20\40\40\x20\x20\40\40\x20\x20\40\40\x20\40\40\40\40\x20\x20\40\40\74\160\x3e\105\170\160\x65\143\x74\145\x64\x20\x6f\x6e\145\40\157\146\40\164\x68\x65\x20\x41\165\x64\x69\x65\x6e\143\145\163\40\x74\157\40\142\145\72\x20" . $vT . "\74\160\x3e\12\40\x20\x20\40\x20\40\40\40\40\x20\40\x20\x20\40\x20\40\x20\x20\x20\x20\x3c\x2f\x64\x69\166\x3e\xa\x20\x20\40\x20\40\40\40\x20\40\x20\x20\40\x20\x20\x20\x20\x20\x20\40\x20\x3c\x64\151\166\x20\163\164\x79\x6c\145\75\x22\x6d\141\x72\147\x69\156\x3a\63\x25\x3b\144\151\x73\160\x6c\141\x79\72\x62\x6c\x6f\143\x6b\x3b\x74\x65\170\164\55\x61\x6c\x69\x67\x6e\72\x63\145\156\164\x65\162\73\42\x3e\xa\40\x20\40\x20\40\x20\x20\40\40\x20\40\40\x20\40\40\40\40\x20\40\x20\x3c\x64\x69\166\x20\163\x74\171\154\145\75\x22\x6d\141\x72\147\151\156\x3a\x33\x25\73\x64\151\x73\x70\154\x61\x79\x3a\142\x6c\x6f\x63\153\73\x74\145\170\164\55\x61\x6c\x69\x67\156\x3a\143\x65\156\164\x65\162\73\42\76\x3c\151\156\160\x75\x74\x20\163\164\171\154\145\75\x22\160\141\x64\x64\x69\156\147\x3a\x31\x25\x3b\x77\x69\x64\164\x68\72\61\60\60\x70\170\x3b\142\141\x63\153\147\x72\157\x75\x6e\x64\72\x20\x23\x30\x30\x39\61\x43\x44\x20\156\157\156\145\40\162\x65\x70\x65\141\x74\40\163\143\162\157\154\x6c\40\x30\x25\x20\x30\45\73\x63\x75\162\163\157\162\x3a\40\160\x6f\x69\x6e\x74\145\162\x3b\x66\157\x6e\x74\x2d\163\151\x7a\x65\x3a\61\x35\x70\170\x3b\142\157\162\x64\x65\x72\x2d\167\151\144\x74\150\x3a\x20\x31\160\x78\73\x62\x6f\x72\144\145\x72\55\x73\164\x79\x6c\x65\72\40\x73\x6f\x6c\x69\x64\73\142\157\162\144\x65\162\55\162\x61\144\151\165\163\x3a\x20\63\160\x78\x3b\x77\150\x69\x74\x65\x2d\163\x70\x61\x63\145\72\40\156\x6f\x77\x72\141\x70\73\142\x6f\170\x2d\x73\x69\172\x69\156\147\x3a\x20\142\x6f\162\144\145\x72\x2d\142\x6f\x78\x3b\142\157\x72\144\145\x72\x2d\x63\x6f\154\157\x72\72\40\43\x30\60\x37\x33\x41\101\x3b\x62\157\x78\55\163\150\x61\x64\157\x77\72\40\60\160\170\x20\x31\x70\170\x20\x30\x70\x78\40\162\147\x62\141\x28\x31\62\x30\x2c\x20\x32\60\x30\x2c\40\62\63\x30\54\x20\60\56\x36\x29\40\151\x6e\163\145\x74\x3b\x63\157\154\157\162\72\x20\x23\x46\x46\106\73\x22\164\x79\160\145\75\x22\x62\165\x74\x74\157\156\x22\x20\166\x61\x6c\165\x65\75\x22\x44\157\x6e\145\x22\x20\157\156\x43\x6c\151\x63\153\75\42\x73\145\x6c\x66\x2e\x63\154\157\x73\x65\x28\x29\73\x22\76\74\57\x64\x69\166\76";
        Qi:
        exit;
        goto Ef;
        z5:
        return TRUE;
        Ef:
        O9:
    }
    private static function doDecryptElement(DOMElement $tL, XMLSecurityKey $Yy, array &$sB)
    {
        $g0 = new XMLSecEnc();
        $g0->setNode($tL);
        $g0->type = $tL->getAttribute("\124\171\x70\x65");
        $mT = $g0->locateKey($tL);
        if ($mT) {
            goto HW;
        }
        echo sprintf("\x43\x6f\x75\x6c\144\x20\156\157\x74\x20\154\157\143\141\x74\145\40\x6b\x65\x79\x20\141\154\x67\157\x72\151\x74\x68\155\x20\x69\156\40\145\156\x63\162\x79\160\x74\145\144\40\144\x61\164\x61\x2e");
        exit;
        HW:
        $zZ = $g0->locateKeyInfo($mT);
        if ($zZ) {
            goto dr;
        }
        echo sprintf("\103\x6f\x75\154\144\40\x6e\x6f\164\40\x6c\x6f\x63\x61\164\x65\40\x3c\x64\163\x69\147\x3a\113\x65\171\x49\156\146\x6f\76\40\x66\157\162\x20\x74\x68\x65\x20\x65\x6e\x63\x72\x79\160\x74\x65\144\40\153\x65\171\56");
        exit;
        dr:
        $Ie = $Yy->getAlgorithm();
        if ($zZ->isEncrypted) {
            goto AU;
        }
        $bh = $mT->getAlgorithm();
        if (!($Ie !== $bh)) {
            goto Xk;
        }
        echo sprintf("\101\154\x67\157\162\151\164\x68\155\40\x6d\151\x73\x6d\x61\164\x63\150\x20\142\145\164\x77\x65\x65\156\40\151\156\x70\x75\x74\x20\x6b\x65\171\40\141\x6e\144\x20\x6b\x65\171\40\x69\x6e\x20\x6d\145\x73\163\141\147\x65\x2e\x20" . "\x4b\145\x79\40\167\141\x73\x3a\x20" . xss::filter(var_export($Ie, TRUE)) . "\73\40\155\145\163\163\141\x67\145\40\x77\x61\x73\x3a\x20" . xss::filter(var_export($bh, TRUE)));
        exit;
        Xk:
        $mT = $Yy;
        goto id;
        AU:
        $X7 = $zZ->getAlgorithm();
        if (!in_array($X7, $sB, TRUE)) {
            goto BR;
        }
        echo sprintf("\x41\x6c\x67\x6f\x72\x69\x74\x68\155\40\x64\151\x73\x61\142\154\145\x64\72\x20" . xss::filter(var_export($X7, TRUE)));
        exit;
        BR:
        if (!($X7 === XMLSecurityKey::RSA_OAEP_MGF1P && $Ie === XMLSecurityKey::RSA_1_5)) {
            goto R3;
        }
        $Ie = XMLSecurityKey::RSA_OAEP_MGF1P;
        R3:
        if (!($Ie !== $X7)) {
            goto Gz;
        }
        echo sprintf("\x41\x6c\x67\x6f\x72\151\x74\150\x6d\x20\x6d\151\163\x6d\141\x74\143\150\40\142\145\164\167\145\x65\156\40\151\x6e\160\165\164\x20\153\x65\x79\x20\x61\156\144\x20\153\x65\x79\x20\x75\163\x65\144\40\164\157\40\x65\x6e\x63\x72\x79\x70\164\x20" . "\x20\x74\150\145\x20\x73\x79\x6d\x6d\145\164\162\x69\143\x20\153\145\x79\x20\146\157\162\x20\x74\150\x65\x20\x6d\x65\x73\163\x61\147\145\x2e\40\113\x65\x79\40\167\141\163\x3a\40" . xss::filter(var_export($Ie, TRUE)) . "\x3b\x20\155\x65\163\163\x61\x67\145\x20\167\141\x73\x3a\40" . xss::filter(var_export($X7, TRUE)));
        exit;
        Gz:
        $Ll = $zZ->encryptedCtx;
        $zZ->key = $Yy->key;
        $id = $mT->getSymmetricKeySize();
        if (!($id === NULL)) {
            goto Dl;
        }
        echo sprintf("\125\x6e\x6b\156\157\x77\156\x20\153\x65\x79\40\163\151\x7a\145\x20\146\x6f\x72\x20\x65\x6e\143\162\171\x70\x74\x69\157\156\40\x61\x6c\x67\x6f\x72\x69\x74\x68\x6d\x3a\x20" . xss::filter(var_export($mT->type, TRUE)));
        exit;
        Dl:
        try {
            $fy = $Ll->decryptKey($zZ);
            if (!(strlen($fy) != $id)) {
                goto nu;
            }
            echo sprintf("\125\x6e\x65\170\160\145\143\164\x65\144\x20\153\145\x79\40\x73\x69\x7a\145\40\50" . strlen($fy) * 8 . "\142\x69\x74\x73\x29\40\x66\157\x72\x20\145\156\x63\162\x79\160\164\x69\x6f\x6e\x20\141\x6c\x67\157\162\151\x74\150\x6d\x3a\40" . xss::filter(var_export($mT->type, TRUE)));
            exit;
            nu:
        } catch (Exception $Nt) {
            $NU = $Ll->getCipherValue();
            $hv = openssl_pkey_get_details($zZ->key);
            $hv = sha1(serialize($hv), TRUE);
            $fy = sha1($NU . $hv, TRUE);
            if (strlen($fy) > $id) {
                goto qp;
            }
            if (strlen($fy) < $id) {
                goto w9;
            }
            goto cK;
            qp:
            $fy = substr($fy, 0, $id);
            goto cK;
            w9:
            $fy = str_pad($fy, $id);
            cK:
        }
        $mT->loadkey($fy);
        id:
        $XK = $mT->getAlgorithm();
        if (!in_array($XK, $sB, TRUE)) {
            goto eJ;
        }
        echo sprintf("\101\x6c\x67\x6f\x72\x69\x74\x68\155\40\x64\151\163\141\142\x6c\145\x64\x3a\40" . xss::filter(var_export($XK, TRUE)));
        exit;
        eJ:
        $fq = $g0->decryptNode($mT, FALSE);
        $Rq = "\x3c\162\x6f\x6f\164\x20\x78\155\x6c\156\163\72\x73\141\x6d\x6c\x3d\x22\165\162\x6e\x3a\157\141\x73\x69\163\x3a\x6e\x61\x6d\145\x73\72\164\x63\x3a\x53\x41\x4d\x4c\x3a\x32\x2e\60\x3a\x61\x73\x73\x65\162\x74\x69\x6f\156\x22\x20" . "\170\x6d\x6c\x6e\x73\x3a\170\x73\151\x3d\x22\150\x74\x74\x70\72\x2f\57\167\x77\167\x2e\x77\63\x2e\157\x72\147\x2f\62\x30\60\61\x2f\130\115\x4c\x53\x63\150\145\x6d\141\x2d\151\156\163\x74\141\156\x63\145\x22\76" . $fq . "\x3c\x2f\x72\157\157\164\x3e";
        $fs = new DOMDocument();
        if (@$fs->loadXML($Rq)) {
            goto Z9;
        }
        echo sprintf("\106\141\x69\x6c\x65\144\x20\x74\x6f\40\160\141\x72\163\x65\x20\144\145\x63\x72\171\x70\x74\x65\x64\x20\130\x4d\114\x2e\x20\115\141\171\x62\145\40\x74\150\145\40\x77\x72\x6f\x6e\x67\x20\163\150\141\x72\x65\144\x6b\x65\x79\x20\167\141\163\x20\x75\163\x65\x64\77");
        throw new Exception("\106\x61\151\x6c\145\144\x20\164\x6f\x20\x70\141\162\163\145\40\144\145\x63\162\x79\160\164\x65\144\40\x58\115\x4c\56\x20\x4d\x61\171\142\145\40\x74\x68\x65\x20\167\x72\157\156\x67\x20\163\x68\141\x72\x65\x64\x6b\145\x79\40\x77\141\163\40\165\163\145\144\77");
        Z9:
        $K9 = $fs->firstChild->firstChild;
        if (!($K9 === NULL)) {
            goto DL;
        }
        echo sprintf("\115\x69\163\163\151\156\147\40\x65\x6e\x63\162\x79\160\164\145\144\x20\x65\x6c\x65\x6d\x65\x6e\x74\x2e");
        throw new Exception("\x4d\x69\163\163\151\x6e\x67\40\x65\156\143\162\171\160\164\145\144\x20\145\154\x65\x6d\145\x6e\x74\x2e");
        DL:
        if ($K9 instanceof DOMElement) {
            goto cG;
        }
        echo sprintf("\x44\145\143\x72\x79\160\x74\145\144\x20\145\154\145\155\x65\x6e\x74\40\167\141\x73\x20\156\x6f\x74\x20\141\x63\164\165\141\x6c\154\x79\x20\141\x20\x44\x4f\x4d\x45\154\145\155\x65\156\x74\x2e");
        cG:
        return $K9;
    }
    public static function decryptElement(DOMElement $tL, XMLSecurityKey $Yy, array $sB = array(), XMLSecurityKey $El = NULL)
    {
        try {
            return self::doDecryptElement($tL, $Yy, $sB);
        } catch (Exception $Nt) {
            if (is_null($El)) {
                goto kw;
            }
            try {
                return self::doDecryptElement($tL, $El, $sB);
            } catch (Exception $Qk) {
            }
            kw:
            echo sprintf("\x46\x61\151\154\145\x64\x20\164\157\40\x64\x65\x63\x72\x79\160\164\40\x58\x4d\x4c\x20\x65\x6c\x65\155\145\156\164\x2e");
            exit;
        }
    }
    public static function showErrorMessage($q6, $Kq, $EK)
    {
        echo "\74\x64\151\x76\40\163\x74\x79\x6c\x65\x3d\x22\146\x6f\156\x74\x2d\x66\x61\x6d\151\154\x79\72\103\x61\x6c\151\x62\162\x69\x3b\x70\141\144\144\151\x6e\147\72\60\x20\x33\x25\x3b\42\76";
        echo "\x3c\x64\x69\x76\40\163\x74\171\x6c\145\75\x22\143\157\x6c\157\162\72\x20\43\141\x39\x34\x34\64\x32\73\x62\141\143\153\147\162\157\165\156\x64\x2d\143\x6f\x6c\157\162\72\x20\x23\146\x32\x64\x65\144\145\73\160\141\x64\144\x69\156\147\72\x20\61\65\160\x78\73\155\x61\x72\x67\151\x6e\55\142\x6f\164\x74\x6f\x6d\72\x20\x32\60\x70\x78\73\164\145\x78\164\x2d\x61\154\x69\x67\x6e\x3a\143\145\156\x74\x65\162\73\142\157\x72\x64\x65\162\72\x31\160\x78\x20\x73\157\x6c\x69\x64\40\x23\x45\x36\102\x33\x42\62\x3b\146\x6f\156\x74\55\163\151\172\145\x3a\x31\70\x70\x74\73\42\x3e\x20\105\122\122\x4f\x52\74\57\144\151\166\76\12\40\40\40\x20\x20\40\40\x20\x20\40\x20\x20\x20\40\40\40\40\x20\40\x20\x20\x20\x20\x20\x20\40\x20\40\x20\x20\40\40\x3c\x64\151\x76\40\163\164\171\x6c\x65\x3d\42\143\x6f\x6c\x6f\x72\72\40\43\x61\x39\64\x34\x34\62\73\146\157\x6e\x74\x2d\163\151\x7a\x65\x3a\x31\64\x70\x74\73\x20\x6d\141\162\x67\151\x6e\x2d\x62\157\x74\164\x6f\x6d\x3a\62\x30\160\170\x3b\42\x3e\74\160\x3e\x3c\163\x74\x72\157\x6e\x67\76\x45\162\162\x6f\162\x3a\40\x3c\x2f\x73\x74\162\x6f\x6e\147\x3e" . xss::filter($q6) . "\74\x2f\160\x3e\12\40\x20\x20\x20\40\40\40\x20\40\x20\40\40\40\40\x20\x20\x20\40\x20\x20\x20\40\40\x20\40\40\x20\x20\40\x20\x20\x20\40\40\40\x20\x3c\160\x3e" . xss::filter($Kq) . "\x3c\57\x70\76\xa\40\x20\x20\x20\x20\40\x20\x20\x20\x20\x20\x20\40\40\40\40\40\x20\40\40\40\40\40\40\x20\x20\40\x20\x20\x20\x20\x20\x20\x20\x20\40\x3c\160\x3e\x3c\x73\x74\x72\x6f\x6e\x67\76\120\157\x73\x73\x69\142\x6c\145\x20\x43\141\165\x73\145\x3a\x20\x3c\57\x73\164\162\157\156\x67\x3e" . xss::filter($EK) . "\74\x2f\160\x3e\12\40\40\40\x20\x20\40\x20\x20\x20\40\40\x20\40\40\40\40\x20\40\40\x20\40\x20\40\40\x20\40\40\x20\x20\40\x20\x20\74\x2f\x64\x69\166\x3e\12\x20\40\x20\40\40\40\x20\40\40\40\x20\40\x20\40\x20\x20\x20\40\40\40\40\x20\40\x20\40\x20\x20\x20\x20\x20\x20\40\x3c\144\151\x76\40\x73\x74\x79\154\145\x3d\x22\155\x61\162\147\151\x6e\x3a\63\45\73\x64\x69\163\160\x6c\141\x79\72\142\154\x6f\x63\153\x3b\x74\x65\170\x74\55\141\x6c\x69\x67\156\72\143\145\156\x74\x65\x72\73\x22\76\74\x2f\144\151\x76\x3e\12\40\40\x20\x20\x20\x20\x20\40\40\x20\40\x20\x20\40\40\x20\40\40\40\x20\40\x20\40\40\40\x20\40\x20\x20\x20\x20\x20\x3c\144\x69\166\40\163\164\x79\154\x65\x3d\x22\x6d\141\162\x67\x69\x6e\72\x33\45\x3b\x64\151\x73\x70\154\x61\x79\72\x62\x6c\157\143\153\73\x74\x65\x78\x74\x2d\x61\x6c\x69\x67\156\72\x63\x65\x6e\164\x65\x72\73\x22\76\xa\40\40\40\x20\40\x20\40\40\x20\x20\40\x20\40\x20\40\40\x20\x20\40\x20\x20\x20\40\x20\40\x20\x20\x20\x20\40\40\x20\74\57\144\x69\166\x3e";
        exit;
    }
    public static function get_mapped_groups($Tn, $Rx)
    {
        $Uz = array();
        if (empty($Rx)) {
            goto MJ;
        }
        $AE = array();
        $H7 = 1;
        B0:
        if (!($H7 < 10)) {
            goto JF;
        }
        $yi = $Tn->get("\x67\162\157\x75\160" . $H7 . "\137\x6d\x61\160");
        $AE[$H7] = explode("\73", $yi);
        $H7++;
        goto B0;
        JF:
        MJ:
        foreach ($Rx as $sX) {
            if (empty($sX)) {
                goto MC;
            }
            $H7 = 0;
            $x6 = false;
            uA:
            if (!($H7 < 9 && !$x6)) {
                goto FZ;
            }
            if (!(!empty($AE[$H7]) && in_array($sX, $AE[$H7]))) {
                goto Jx;
            }
            $Uz[] = $Tn->get("\x67\x72\157\x75\160" . $H7);
            $x6 = true;
            Jx:
            $H7++;
            goto uA;
            FZ:
            MC:
            e4:
        }
        fy:
        return array_unique($Uz);
    }
    public static function getEncryptionAlgorithm($OC)
    {
        switch ($OC) {
            case "\150\x74\x74\160\x3a\x2f\x2f\x77\x77\167\x2e\x77\x33\x2e\157\162\147\57\62\x30\x30\61\x2f\x30\x34\x2f\x78\155\154\x65\x6e\143\43\x74\x72\151\x70\x6c\145\x64\145\163\x2d\143\142\x63":
                return XMLSecurityKey::TRIPLEDES_CBC;
                goto Jm;
            case "\150\164\x74\x70\x3a\x2f\x2f\167\167\x77\56\x77\63\x2e\x6f\x72\x67\57\62\x30\x30\x31\x2f\x30\x34\x2f\170\x6d\x6c\x65\x6e\143\x23\x61\145\163\61\x32\70\55\x63\142\143":
                return XMLSecurityKey::AES128_CBC;
            case "\150\164\x74\160\x3a\x2f\x2f\x77\167\167\56\x77\63\x2e\157\x72\x67\57\x32\60\x30\61\57\x30\64\x2f\170\x6d\154\145\156\143\43\141\145\x73\61\71\62\x2d\x63\x62\143":
                return XMLSecurityKey::AES192_CBC;
                goto Jm;
            case "\x68\x74\x74\160\72\x2f\57\x77\167\x77\56\167\63\x2e\157\162\147\x2f\x32\x30\60\x31\57\x30\64\57\170\155\x6c\x65\156\143\43\x61\x65\x73\x32\x35\66\x2d\143\142\143":
                return XMLSecurityKey::AES256_CBC;
                goto Jm;
            case "\x68\164\x74\x70\x3a\x2f\x2f\167\x77\x77\x2e\167\x33\56\157\162\x67\x2f\x32\60\x30\61\x2f\60\x34\x2f\170\x6d\x6c\145\x6e\143\43\162\163\x61\55\61\x5f\x35":
                return XMLSecurityKey::RSA_1_5;
                goto Jm;
            case "\x68\x74\x74\160\72\57\57\167\x77\167\x2e\167\63\x2e\157\x72\x67\x2f\62\60\60\61\x2f\x30\x34\x2f\x78\155\x6c\x65\x6e\143\x23\162\163\x61\x2d\157\x61\145\x70\55\x6d\147\x66\61\x70":
                return XMLSecurityKey::RSA_OAEP_MGF1P;
                goto Jm;
            case "\x68\x74\164\x70\72\x2f\57\167\x77\x77\x2e\167\x33\x2e\x6f\162\147\x2f\62\60\60\60\x2f\x30\71\57\170\155\154\x64\163\151\x67\43\144\x73\x61\x2d\x73\x68\x61\61":
                return XMLSecurityKey::DSA_SHA1;
                goto Jm;
            case "\150\164\x74\x70\72\57\x2f\x77\167\167\56\x77\63\x2e\157\162\x67\57\62\x30\60\60\x2f\x30\x39\x2f\170\155\154\144\x73\x69\147\x23\162\x73\141\55\163\150\141\61":
                return XMLSecurityKey::RSA_SHA1;
                goto Jm;
            case "\150\x74\x74\160\x3a\x2f\x2f\167\x77\x77\56\x77\x33\56\157\x72\147\57\62\x30\x30\x31\57\x30\64\57\x78\x6d\x6c\144\163\151\147\55\x6d\157\x72\x65\43\x72\x73\x61\x2d\x73\150\141\62\x35\66":
                return XMLSecurityKey::RSA_SHA256;
                goto Jm;
            case "\150\164\164\x70\x3a\x2f\x2f\167\x77\x77\56\167\x33\56\x6f\x72\x67\x2f\62\60\60\x31\57\x30\x34\x2f\x78\x6d\154\144\x73\151\147\55\x6d\157\x72\x65\43\x72\x73\141\x2d\163\150\141\x33\70\64":
                return XMLSecurityKey::RSA_SHA384;
                goto Jm;
            case "\150\x74\164\160\x3a\57\57\x77\x77\x77\56\167\63\x2e\157\x72\147\x2f\62\60\60\61\57\60\x34\57\170\x6d\154\144\x73\x69\x67\x2d\x6d\x6f\x72\145\x23\x72\x73\141\x2d\x73\x68\141\x35\61\62":
                return XMLSecurityKey::RSA_SHA512;
                goto Jm;
            default:
                echo sprintf("\111\156\166\x61\x6c\151\x64\40\x45\x6e\x63\162\x79\160\164\x69\x6f\x6e\40\115\x65\164\x68\x6f\144\x3a\40" . xss::filter($OC));
                exit;
                goto Jm;
        }
        Rn:
        Jm:
    }
    public static function sanitize_certificate($Ii)
    {
        $Ii = preg_replace("\x2f\x5b\15\xa\135\x2b\57", '', $Ii);
        $Ii = str_replace("\55", '', $Ii);
        $Ii = str_replace("\x42\105\107\111\116\40\x43\x45\x52\x54\x49\x46\111\103\101\x54\105", '', $Ii);
        $Ii = str_replace("\x45\x4e\104\40\x43\x45\122\124\x49\106\111\103\x41\x54\105", '', $Ii);
        $Ii = str_replace("\x20", '', $Ii);
        $Ii = chunk_split($Ii, 64, "\15\xa");
        $Ii = "\55\x2d\x2d\55\x2d\102\x45\107\x49\x4e\40\103\x45\122\x54\x49\106\x49\103\101\x54\x45\55\x2d\x2d\55\55\15\xa" . $Ii . "\x2d\55\x2d\x2d\x2d\x45\116\104\x20\x43\105\122\x54\111\106\x49\103\101\x54\105\x2d\x2d\x2d\55\55";
        return $Ii;
    }
    public static function upload_metadata($r_, $A0 = false)
    {
        if (!empty(\Drupal::config("\155\151\x6e\151\157\162\x61\156\147\x65\137\x73\x61\155\154\x2e\x73\x65\x74\x74\x69\156\x67\163")->get("\155\151\x6e\151\x6f\162\x61\156\x67\145\137\163\141\155\154\137\x69\144\160\x5f\156\141\x6d\145"))) {
            goto lX;
        }
        \Drupal::configFactory()->getEditable("\155\x69\x6e\151\157\x72\141\156\147\x65\137\163\x61\155\x6c\56\163\145\x74\x74\x69\156\x67\163")->set("\155\x69\x6e\x69\157\162\141\156\x67\x65\137\x73\x61\x6d\x6c\x5f\x69\144\160\137\x6e\x61\x6d\145", "\111\x64\145\156\x74\x69\164\171\x20\x50\x72\x6f\166\151\144\145\162")->save();
        lX:
        global $base_url;
        $dX = new \DOMDocument();
        @$dX->loadXML($r_);
        restore_error_handler();
        $WS = $dX->firstChild;
        if (!empty($WS)) {
            goto w1;
        }
        \Drupal::messenger()->addError(t("\120\x6c\145\x61\163\x65\x20\160\x72\157\x76\151\144\145\40\x61\40\x76\x61\154\x69\144\40\x6d\x65\164\x61\144\x61\164\141\x20\x66\x69\x6c\x65\56"));
        return;
        goto LS;
        w1:
        $Oy = new MetadataReader($dX);
        $ve = $Oy->getIdentityProviders();
        if (!empty($ve)) {
            goto gx;
        }
        \Drupal::messenger()->addMessage(t("\120\154\x65\x61\x73\x65\x20\160\162\157\166\151\x64\145\40\x61\x20\166\x61\154\x69\x64\40\x6d\x65\x74\x61\x64\141\164\x61\x20\x66\x69\x6c\145\x2e"), "\145\162\162\x6f\x72");
        return;
        gx:
        foreach ($ve as $fy => $ol) {
            $L6 = $ol->getLoginURL("\110\x54\x54\120\x2d\x52\x65\x64\151\x72\x65\143\164");
            $FN = $ol->getLogoutURL("\x48\124\124\x50\x2d\x52\x65\x64\151\162\x65\143\x74");
            if (!empty($L6)) {
                goto ke;
            }
            $L6 = $ol->getLoginURL("\110\124\124\120\55\120\117\x53\x54");
            ke:
            $K7 = $ol->getEntityID();
            $MO = $ol->getSigningCertificate();
            $Q7 = $base_url;
            if (!($A0 == true)) {
                goto Pp;
            }
            \Drupal::configFactory()->getEditable("\155\x69\x6e\x69\x6f\162\141\x6e\x67\x65\x5f\163\x61\x6d\x6c\x2e\x73\145\x74\x74\x69\x6e\147\163")->set("\x6d\151\x6e\x69\x6f\x72\141\156\x67\x65\x5f\x73\x61\x6d\x6c\137\x73\x70\137\x69\x73\163\165\x65\162", $Q7)->save();
            \Drupal::configFactory()->getEditable("\155\151\x6e\x69\157\x72\x61\x6e\147\x65\x5f\x73\141\155\x6c\x2e\163\x65\164\164\151\156\x67\163")->set("\155\151\156\151\157\x72\141\x6e\147\x65\137\x73\x61\x6d\x6c\137\x69\144\160\137\154\x6f\147\151\156\x5f\165\x72\154", $L6)->save();
            Pp:
            \Drupal::configFactory()->getEditable("\x6d\151\156\151\157\x72\141\x6e\x67\145\137\163\x61\x6d\154\56\163\x65\164\x74\x69\156\147\x73")->set("\x6d\151\x6e\151\x6f\x72\x61\156\147\145\x5f\x73\x61\x6d\154\x5f\x69\144\160\x5f\x69\x73\x73\x75\145\162", $K7)->save();
            \Drupal::configFactory()->getEditable("\155\151\x6e\x69\x6f\162\x61\x6e\147\x65\x5f\x73\x61\155\154\56\x73\145\164\164\x69\x6e\x67\163")->set("\155\x69\156\x69\157\x72\141\x6e\x67\x65\137\163\x61\x6d\154\x5f\x69\144\160\x5f\143\x65\x72\x74\151\x66\x69\143\141\x74\x65", $MO[0])->save();
            CZ:
        }
        Ts:
        if (!($A0 == true)) {
            goto zo;
        }
        \Drupal::messenger()->addStatus(t("\x49\144\x65\x6e\x74\151\x74\x79\x20\x50\x72\157\166\x69\x64\145\162\40\103\x6f\156\146\x69\x67\x75\x72\x61\x74\x69\x6f\x6e\40\x73\x75\x63\x63\x65\x73\163\x66\165\x6c\x6c\171\x20\x73\141\166\x65\x64\x2e"));
        return;
        zo:
        LS:
    }
    public static function Print_SAML_Request($q5, $a8)
    {
        header("\103\157\x6e\x74\x65\156\x74\55\x54\x79\x70\x65\72\40\164\145\170\x74\x2f\150\164\155\x6c");
        $WI = new \DOMDocument();
        $WI->preserveWhiteSpace = false;
        $WI->formatOutput = true;
        $WI->loadXML($q5);
        if ($a8 == "\144\151\x73\x70\x6c\x61\x79\x53\x41\115\x4c\122\145\x71\x75\145\163\x74") {
            goto nv;
        }
        $dn = "\x53\101\x4d\114\x20\122\145\163\160\x6f\x6e\163\145";
        goto sq;
        nv:
        $dn = "\x53\101\x4d\x4c\40\122\x65\x71\x75\x65\163\164";
        sq:
        $uc = $WI->saveXML();
        $EX = htmlentities($uc);
        $EX = rtrim($EX);
        $Rq = simplexml_load_string($uc);
        $a4 = json_encode($Rq);
        $cy = json_decode($a4);
        $ff = Utilities::getModulePath() . "\57\x63\163\x73\x2f\x6d\151\156\x69\x6f\162\x61\x6e\x67\x65\137\x73\141\155\x6c\x2e\155\157\144\165\154\145\56\143\x73\163";
        $es = Utilities::getModulePath() . "\57\x6a\163\x2f\x73\x68\x6f\167\123\101\115\114\x52\x65\163\160\157\x6e\163\145\56\152\163";
        echo "\74\x6c\x69\156\153\x20\x72\x65\154\75\x27\163\164\171\154\x65\163\150\x65\145\x74\x27\x20\x69\144\x3d\47\x6d\157\x5f\163\141\x6d\154\x5f\141\x64\155\151\x6e\x5f\x73\145\164\x74\x69\x6e\x67\x73\x5f\163\x74\x79\154\x65\x2d\x63\163\x73\x27\x20\x20\x68\x72\x65\x66\75\47" . xss::filter($ff) . "\47\x20\x74\x79\160\x65\75\47\x74\x65\170\x74\57\143\x73\163\x27\40\x6d\145\144\x69\141\x3d\47\141\154\x6c\47\x20\x2f\x3e\xa\x20\x20\40\x20\x20\x20\40\40\40\40\x20\40\74\x73\x63\162\151\x70\164\x20\x73\x72\x63\x3d\x22" . xss::filter($es) . "\42\76\74\x2f\163\143\x72\151\x70\x74\76\12\11\11\x9\x3c\144\151\166\40\x63\x6c\141\x73\x73\x3d\x22\x6d\x6f\x2d\144\151\x73\x70\154\x61\x79\x2d\x6c\157\147\163\x22\x20\x3e\x3c\x70\40\x74\x79\160\x65\x3d\x22\164\145\170\164\x22\40\x20\40\151\x64\75\x22\123\101\x4d\114\137\164\x79\160\x65\x22\76" . xss::filter($dn) . "\x3c\x2f\x70\76\x3c\x2f\144\151\x76\76\12\12\x9\x9\x9\74\x64\x69\x76\x20\x74\171\x70\x65\x3d\42\164\145\x78\164\42\40\151\144\x3d\x22\x53\101\115\114\137\144\x69\x73\x70\154\141\171\42\40\x63\x6c\x61\x73\163\x3d\x22\x6d\x6f\55\x64\151\163\x70\154\141\x79\x2d\x62\x6c\157\x63\153\x22\x3e\x3c\160\162\x65\x20\x63\x6c\x61\163\x73\x3d\47\x62\162\165\163\x68\x3a\x20\170\x6d\154\73\x27\x3e" . xss::filter($EX) . "\x3c\57\160\x72\145\76\x3c\57\x64\x69\166\x3e\12\x9\11\11\74\142\162\x3e\12\11\x9\x9\74\x64\151\x76\x20\x73\x74\171\x6c\x65\75\42\x6d\141\x72\x67\x69\156\x3a\x33\45\73\x64\151\x73\160\x6c\141\171\72\142\154\x6f\x63\x6b\x3b\x74\x65\170\x74\x2d\141\154\x69\147\156\72\143\145\156\164\145\162\73\x22\76\12\12\x9\x9\11\x3c\x64\151\166\40\163\x74\x79\154\145\75\42\155\141\x72\x67\x69\x6e\72\63\45\73\144\x69\163\160\154\141\x79\x3a\142\x6c\157\x63\153\x3b\x74\145\170\x74\55\141\x6c\x69\x67\x6e\72\x63\x65\156\164\145\162\x3b\42\x20\76\12\12\x20\x20\40\40\40\x20\x20\40\40\40\x20\40\x3c\57\x64\151\x76\x3e\xa\11\x9\x9\74\x62\x75\x74\164\x6f\x6e\x20\151\144\75\x22\x63\157\160\171\42\40\x6f\156\x63\x6c\x69\143\x6b\x3d\42\143\x6f\x70\x79\x44\x69\166\x54\x6f\x43\x6c\151\x70\142\157\141\x72\144\50\51\x22\x20\x20\163\x74\x79\154\x65\75\42\x70\x61\144\144\151\156\147\72\61\x25\73\x77\x69\x64\x74\x68\72\61\60\60\x70\170\73\x62\x61\143\153\147\x72\157\165\x6e\144\x3a\40\x23\x30\60\x39\x31\103\104\40\x6e\x6f\156\x65\x20\x72\145\160\145\141\x74\40\x73\x63\162\x6f\154\x6c\40\60\x25\40\x30\x25\x3b\x63\165\162\163\157\x72\72\40\160\157\x69\x6e\164\145\162\73\146\157\156\x74\x2d\x73\151\x7a\x65\x3a\61\65\160\x78\73\x62\157\162\x64\x65\x72\x2d\x77\151\x64\x74\x68\72\40\61\x70\x78\x3b\142\x6f\162\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\72\40\x73\x6f\x6c\151\x64\73\x62\157\x72\144\x65\x72\55\x72\x61\144\x69\x75\163\x3a\40\x33\160\170\x3b\167\150\151\164\145\x2d\x73\160\141\x63\x65\72\x20\156\157\x77\x72\141\160\73\x62\x6f\x78\55\163\x69\x7a\151\x6e\x67\72\40\142\x6f\x72\x64\145\x72\x2d\x62\x6f\x78\x3b\x62\x6f\x72\144\145\162\55\x63\x6f\154\x6f\162\72\40\43\x30\60\67\x33\101\x41\73\x62\x6f\170\x2d\x73\x68\141\x64\x6f\167\x3a\40\60\160\170\40\61\x70\x78\x20\x30\x70\170\x20\x72\x67\142\x61\50\61\62\x30\54\x20\62\x30\60\x2c\40\62\x33\60\x2c\x20\x30\56\66\51\40\151\x6e\163\145\x74\73\x63\x6f\154\157\x72\72\40\43\106\106\106\x3b\42\40\x3e\103\x6f\x70\171\x3c\x2f\142\x75\x74\164\157\156\x3e\12\11\x9\11\x26\x6e\142\x73\160\x3b\12\x20\40\40\40\x20\40\40\x20\x20\40\40\40\x20\x20\40\74\x62\165\164\164\x6f\x6e\40\151\x64\x3d\42\144\x77\x6e\55\142\164\156\x22\40\157\x6e\143\x6c\x69\143\153\75\42\x64\157\167\156\x6c\157\141\x64\50\x29\42\x20\163\164\x79\x6c\x65\75\42\x70\x61\x64\x64\x69\156\x67\72\x31\x25\73\x77\x69\x64\x74\x68\x3a\x31\x30\x30\160\x78\x3b\142\141\143\153\147\162\x6f\x75\x6e\x64\72\40\x23\60\60\x39\x31\103\x44\x20\156\x6f\x6e\x65\x20\162\x65\x70\145\x61\x74\x20\x73\x63\162\157\x6c\154\x20\60\45\40\60\45\x3b\x63\165\x72\x73\x6f\x72\72\40\x70\157\x69\156\164\x65\162\x3b\146\x6f\156\x74\x2d\x73\x69\172\x65\x3a\x31\x35\160\170\73\x62\157\x72\x64\145\x72\55\x77\151\x64\x74\x68\72\x20\61\160\x78\x3b\142\157\162\144\145\x72\55\163\164\x79\154\145\72\40\x73\157\154\151\x64\x3b\142\157\x72\144\x65\162\55\x72\x61\x64\151\165\163\72\x20\63\x70\170\73\167\150\x69\x74\x65\55\x73\160\x61\143\145\72\40\x6e\157\x77\162\x61\x70\x3b\142\157\170\55\163\151\x7a\x69\x6e\x67\72\40\142\x6f\x72\144\x65\x72\x2d\x62\157\170\73\x62\x6f\x72\144\x65\x72\x2d\x63\157\x6c\157\162\72\40\43\x30\60\x37\63\101\101\x3b\x62\x6f\x78\x2d\x73\x68\141\x64\x6f\x77\72\x20\60\x70\170\x20\x31\x70\170\40\x30\x70\170\x20\x72\x67\x62\141\x28\x31\x32\x30\54\x20\62\60\x30\54\x20\x32\63\x30\54\40\x30\x2e\x36\51\x20\151\156\163\x65\x74\73\143\157\154\x6f\x72\72\x20\43\x46\x46\x46\73\x22\76\x44\x6f\x77\x6e\154\x6f\x61\144\x3c\x2f\x62\x75\x74\164\x6f\156\76\xa\x9\x9\x9\74\x2f\144\x69\166\x3e\xa\x9\x9\x9\74\x2f\144\x69\166\76\xa\11\x9\x9";
        ob_end_flush();
        exit;
    }
    public static function getBaseUrl()
    {
        global $base_url;
        $ff = \Drupal::config("\x6d\x69\x6e\x69\x6f\162\x61\156\x67\145\137\x73\x61\x6d\154\56\x73\x65\164\x74\x69\156\x67\163")->get("\x6d\151\156\x69\157\x72\x61\156\147\x65\x5f\163\141\155\x6c\137\142\x61\163\145\x5f\x75\x72\154");
        return isset($ff) && !empty($ff) ? $ff : $base_url;
    }
    public static function getSpIssuer()
    {
        $Fs = \Drupal::config("\155\x69\156\x69\x6f\x72\x61\x6e\147\x65\x5f\163\141\x6d\154\56\163\145\x74\164\151\156\147\x73")->get("\155\151\x6e\151\x6f\162\x61\x6e\147\x65\137\163\x61\x6d\154\137\x65\156\164\151\x74\171\x5f\151\144");
        return isset($Fs) && !empty($Fs) ? $Fs : self::getBaseUrl();
    }
    public static function getSamlRequestPlanName()
    {
        return "\x64\x72\165\x70\141\154\70\x5f\155\x69\x6e\151\157\162\x61\x6e\x67\145\137\163\x61\155\154\x5f\x73\164\141\x6e\x64\x61\162\144\x5f\x70\154\x61\156";
    }
    public static function getSamlRequestPlanType()
    {
        return "\x44\x52\x55\x50\101\114\70\x5f\123\101\x4d\114\137\123\120\x5f\123\x54\x41\x4e\104\101\122\x44\137\x4d\x4f\x44\125\x4c\105";
    }
    public static function mo_add_premium_tag($qt)
    {
        global $base_url;
        $ff = $base_url . "\57\x61\144\155\151\x6e\x2f\143\x6f\156\x66\151\x67\x2f\160\145\157\x70\x6c\145\x2f\x6d\151\156\151\x6f\162\x61\x6e\147\145\137\163\x61\155\154\57\114\151\x63\x65\x6e\x73\x69\156\x67";
        $Aa = "\x3c\x61\x20\150\162\x65\x66\x3d\40\x22" . $ff . "\42\40\163\x74\x79\x6c\x65\x3d\42\143\157\x6c\x6f\x72\x3a\40\162\145\144\73\x20\146\157\156\x74\x2d\x77\x65\x69\147\x68\x74\x3a\x20\154\x69\x67\x68\164\145\162\x3b\42\76\x5b" . $qt . "\135\74\x2f\x61\76";
        return $Aa;
    }
    public static function mo_get_drupal_core_version()
    {
        return \DRUPAL::VERSION;
    }
    public static function mo_add_loggers($xP, $A0, $a8)
    {
        \Drupal::logger("\155\151\x6e\x69\x6f\162\x61\156\147\x65\137\x73\x61\155\x6c")->{$a8}("\40\103\117\104\x45\x3a" . $xP . "\x20\x7c\40" . $A0);
    }
    public static function mo_save_expiry_details($wj)
    {
        $YG = isset($wj["\x6c\x69\143\145\156\163\145\x45\x78\160\x69\162\x79"]) ? date("\x6c\x2c\40\x6a\123\x20\x46\40\x59\x20\147\x3a\151\40\x41", strtotime($wj["\154\x69\143\145\156\x73\x65\105\170\x70\x69\162\x79"])) : "\x2d";
        $r3 = isset($wj["\x73\x75\160\160\157\x72\x74\105\170\160\x69\x72\171"]) ? date("\x6c\x2c\x20\x6a\x53\x20\106\40\131\x20\x67\x3a\151\x20\x41", strtotime($wj["\163\x75\160\160\157\162\x74\x45\x78\160\x69\162\x79"])) : "\x2d";
        $T5 = isset($wj["\x6c\x69\x63\145\156\163\145\x54\x79\160\145"]) ? $wj["\x6c\x69\x63\145\x6e\163\x65\x54\171\x70\145"] : "\55";
        $Tu = isset($wj["\x6c\151\143\145\x6e\163\145\x50\154\141\156"]) ? $wj["\154\x69\x63\145\x6e\163\145\120\154\141\156"] : "\55";
        $v5 = \Drupal::configFactory()->getEditable("\155\x69\x6e\x69\x6f\162\x61\x6e\x67\x65\x5f\x73\141\155\154\x2e\163\145\164\x74\151\156\147\163");
        $v5->set("\x6d\x69\x6e\x69\157\162\x61\x6e\147\145\137\x6d\141\x69\156\164\x65\x6e\x61\156\x63\145\x5f\145\170\x70\x69\162\x79", $YG)->save();
        $v5->set("\155\x69\156\x69\157\162\141\156\x67\145\x5f\x73\165\x70\160\x6f\x72\x74\137\145\170\160\151\x72\x79", $r3)->save();
        $v5->set("\155\x69\x6e\151\157\162\141\156\147\145\137\x6c\x69\143\145\x6e\x73\145\x5f\x74\x79\x70\x65", $T5)->save();
        $v5->set("\x6d\151\x6e\151\x6f\162\x61\156\147\x65\x5f\154\x69\x63\x65\x6e\x73\145\x5f\160\154\x61\156", $Tu)->save();
    }
    public static function getMetadataValidationTime()
    {
        $BN = time() + MiniorangeSAMLConstants::TIME_VALID;
        return gmdate("\x59\55\x6d\55\x64\x5c\x54\110\x3a\151\x3a\163\134\132", $BN);
    }
    public static function getUpgradeURL($YC)
    {
        $kZ = \Drupal::config("\x6d\x69\x6e\151\x6f\162\x61\x6e\x67\x65\x5f\163\141\155\154\x2e\163\x65\164\x74\151\156\147\163")->get("\x6d\x69\156\151\157\x72\x61\x6e\147\x65\x5f\x73\x61\155\154\x5f\x63\165\163\164\157\155\x65\162\x5f\141\x64\155\151\x6e\x5f\145\x6d\141\x69\154");
        return "\150\164\164\160\x73\72\x2f\x2f\154\x6f\x67\151\156\x2e\170\x65\x63\x75\x72\151\146\x79\56\143\x6f\155\57\x6d\157\141\163\57\x6c\x6f\x67\x69\x6e\x3f\165\x73\145\162\156\141\155\145\75" . $kZ . "\46\162\145\x64\x69\162\x65\143\x74\x55\x72\x6c\x3d\x68\x74\164\x70\163\x3a\57\57\x6c\x6f\x67\151\x6e\56\x78\145\143\x75\162\151\x66\171\56\x63\157\x6d\x2f\155\x6f\141\x73\x2f\x61\144\x6d\151\x6e\x2f\x63\165\163\x74\157\155\145\162\57\154\x69\143\145\156\x73\145\x72\145\156\x65\x77\x61\x6c\x73\77\162\x65\156\145\x77\x61\x6c\x72\x65\161\x75\x65\x73\x74\75" . $YC;
    }
    public static function getIsLicenseExpired($hn)
    {
        if (!($hn != null && $hn != "\55")) {
            goto Zk;
        }
        $Tt = intval((strtotime($hn) - time()) / (60 * 60 * 24));
        $jN = array();
        $jN["\114\151\143\145\x6e\163\x65\107\157\x69\156\147\124\157\x45\x78\160\x69\x72\x65"] = $Tt < 35 ? TRUE : FALSE;
        $jN["\x4c\x69\x63\x65\156\x73\145\101\154\x72\x65\x61\144\x79\105\x78\160\x69\x72\x65\144"] = $Tt < 0 ? TRUE : FALSE;
        return $jN;
        Zk:
    }
    public static function getModulePath()
    {
        return \Drupal::service("\155\157\144\x75\154\145\x5f\x68\x61\156\x64\154\145\x72")->getModule("\x6d\151\156\x69\x6f\162\x61\x6e\147\x65\137\x73\141\155\x6c")->getPath();
    }
}

Function Calls

None

Variables

None

Stats

MD5 19dcf020759e5341dee8b410000ee546
Eval Count 0
Decode Time 98 ms