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 $Activation = $_POST['activation-info']; $encodedrequest = new DOMDocument; ..

Decoded Output download

<?php 
 
	$Activation = $_POST['activation-info']; 
	$encodedrequest = new DOMDocument; 
	$encodedrequest->loadXML($Activation); 
 
	$activationDecoded= base64_decode($encodedrequest->getElementsByTagName('data')->item(0)->nodeValue); 
 
	$decodedrequest = new DOMDocument; 
	$decodedrequest->loadXML($activationDecoded); 
	$nodes = $decodedrequest->getElementsByTagName('dict')->item(0)->getElementsByTagName('*'); 
	for ($i = 0; $i < $nodes->length - 1; $i=$i+2) 
	{ 
	  ${$nodes->item($i)->nodeValue} = preg_match('/(true|false)/', $nodes->item($i + 1)->nodeName) ? $nodes->item($i + 1)->nodeName : $nodes->item($i + 1)->nodeValue; 
	    switch ($nodes->item($i)->nodeValue) 
	    { 
        case "ActivationState": $activationState = $nodes->item($i + 1)->nodeValue; break; 
        case "ActivationRandomness": $activationRandomness = $nodes->item($i + 1)->nodeValue; break; 
        case "DeviceCertRequest": $deviceCertRequest = $nodes->item($i + 1)->nodeValue; break; 
        case "DeviceClass": $deviceClass = $nodes->item($i + 1)->nodeValue; break; 
        case "BasebandChipID": $BasebandChipID = $nodes->item($i + 1)->nodeValue; break; 
        case "InternationalMobileEquipmentIdentity": $imei = $nodes->item($i + 1)->nodeValue; break; 
        case "MobileEquipmentIdentifier": $meid = $nodes->item($i + 1)->nodeValue; break; 
        case "ProductType": $ProductType = $nodes->item($i + 1)->nodeValue; break; 
        case "ProductVersion": $ProductVersion = $nodes->item($i + 1)->nodeValue; break; 
        case "OSType": $OSType = $nodes->item($i + 1)->nodeValue; break; 
        case "WifiAddress": $wifi = $nodes->item($i + 1)->nodeValue; break; 
        case "UniqueChipID": $UniqueChipID = $nodes->item($i + 1)->nodeValue; break; 
        case "ChipID": $chipID = $nodes->item($i + 1)->nodeValue; break; 
        case "BluetoothAddress": $BluetoothAddress = $nodes->item($i + 1)->nodeValue; break; 
        case "UniqueDeviceID": $UniqueDeviceID = $nodes->item($i + 1)->nodeValue; break; 
        case "SerialNumber": $serialNumber = $nodes->item($i + 1)->nodeValue; break; 
        case "BasebandMasterKeyHash": $BasebandMasterKeyHash = $nodes->item($i + 1)->nodeValue; break; 
        case "BasebandSerialNumber": $BasebandSerialNumber = $nodes->item($i + 1)->nodeValue; break; 
        case "BasebandChipID": $BasebandChipID = $nodes->item($i + 1)->nodeValue; break; 
        case "RegulatoryModelNumber": $RegulatoryModelNumber = $nodes->item($i + 1)->nodeValue; break; 
        case "ModelNumber": $ModelNumber = $nodes->item($i + 1)->nodeValue; break; 
        case "BuildVersion": $BuildVersion = $nodes->item($i + 1)->nodeValue; break; 
        case "mac_fg": $mac_fg = $nodes->item($i + 1)->nodeValue; break; 
        case "SIMStatus": $SIMStatus = $nodes->item($i + 1)->nodeValue; break; 
        case "UIKCertification": $UIKCertification = $nodes->item($i + 1)->nodeValue; break; 
        case "InternationalMobileSubscriberIdentity": $imsi = $nodes->item($i + 1)->nodeValue; break; 
        case "IntegratedCircuitCardIdentity": $iccid = $nodes->item($i + 1)->nodeValue; break; 
		} 
	} 
	 
	function ExplodeContent($Key, $String, $Inf) 
	{ 
		$Var = explode("<key>".$Key."</key>",  $Inf)[1]; 
		$Var1 = explode("<".$String.">", $Var)[1]; 
		$Var2 = explode("</".$String.">", $Var1)[0]; 
		return $Var2; 
	} 
	 
	function SignActivation($Key, $Information) 
	{ 
		$pkeyid = openssl_pkey_get_private($Key); 
		openssl_sign($Information, $signature, $pkeyid, 'sha1WithRSAEncryption'); 
		openssl_free_key($pkeyid); 
		return base64_encode($signature); 
	} 
	 
	function URLEncoded($Information) 
	{ 
		return urlencode($Information); 
	} 
	 
	function SendRequestToAlbert($Information) 
	{ 
        $ch = curl_init();  
        $url = 'https://albert.apple.com/WebObjects/ALUnbrick.woa/wa/deviceActivation'; 
        $post_data2 ="activation-info=".$Information; 
        curl_setopt($ch, CURLOPT_URL , $url );  
        curl_setopt($ch, CURLOPT_RETURNTRANSFER , 1);  
        curl_setopt($ch, CURLOPT_TIMEOUT , 60);  
        curl_setopt($ch, CURLOPT_VERBOSE, 0); 
        curl_setopt($ch, CURLOPT_HEADER, 0); 
        curl_setopt($ch, CURLOPT_HTTPHEADER, array("Host: albert.apple.com", "Content-Type: application/x-www-form-urlencoded", "Connection: keep-alive", "Accept: *", "Accept-Language: en-US", "Content-Length: ".strlen($post_data2))); 
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
        curl_setopt($ch, CURLOPT_USERAGENT , "iOS Device Activator (MobileActivation-353.200.48)" ); 
        curl_setopt($ch, CURLOPT_POST , 1);  
        curl_setopt($ch, CURLOPT_POSTFIELDS , $post_data2);   
        $xml_response2 = curl_exec($ch);  
    	return $xml_response2; 
	} 
	 
	$UCRTInfo = ExplodeContent("ActivationInfoXML", "data", $Activation); 
	$UCRTRkc = ExplodeContent("RKCertification", "data", $Activation); 
	$UCRTRks = ExplodeContent("RKSignature", "data", $Activation); 
	 
	$UCRTRequest = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
<plist version=\"1.0\">
<dict>
	<key>ActivationInfoXML</key>
	<data>
	".$UCRTInfo."
	</data>
	<key>RKCertification</key>
	<data>
	".$UCRTRkc."
	</data>
	<key>RKSignature</key>
	<data>
	".$UCRTRks."
	</data>
</dict>
</plist>"; 
	 
	$url = "https://tbsc.apple.com/oob/vend"; 
	$curl = curl_init($url); 
	curl_setopt($curl, CURLOPT_URL, $url); 
	curl_setopt($curl, CURLOPT_POST, true); 
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
	$headers = array( 
	   "Content-Type: application/xml", 
	); 
	curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); 
	curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); 
	curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
	curl_setopt($curl, CURLOPT_POSTFIELDS, $UCRTRequest); 
	$UCRT = curl_exec($curl); 
	file_put_contents("file", $UCRT); 
	curl_close($curl); 
	$UCRTCertificate = base64_encode($UCRT); 
	 
	$FactoryKey = "-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKBgQC3BKrLPIBabhpr+4SvuQHnbF0ssqRIQ67/1bTfArVuUF6p9sdc
v70N+r8yFxesDmpTmKitLP06szKNAO1k5JVk9/P1ejz08BMe9eAb4juAhVWdfAIy
aJ7sGFjeSL015mAvrxTFcOM10F/qSlARBiccxHjPXtuWVr0fLGrhM+/AMQIDAQAB
AoGACGW3bHHPNdb9cVzt/p4Pf03SjJ15ujMY0XY9wUm/h1s6rLO8+/10MDMEGMlE
dcmHiWRkwOVijRHxzNRxEAMI87AruofhjddbNVLt6ppW2nLCK7cEDQJFahTW9GQF
zpVRQXXfxr4cs1X3kutlB6uY2VGltxQFYsj5djv7D+A72A0CQQDZj1RGdxbeOo4X
zxfA6n42GpZavTlM3QzGFoBJgCqqVu1JQOzooAMRT+NPfgoE8+usIVVB4Io0bCUT
WLpkEytTAkEA11rzIpGIhFkPtNc/33fvBFgwUbsjTs1V5G6z5ly/XnG9ENfLblgE
obLmSmz3irvBRWADiwUx5zY6FN/Dmti56wJAdiScakufcnyvzwQZ7Rwp/61+erYJ
GNFtb2Cmt8NO6AOehcopHMZQBCWy1ecm/7uJ/oZ3avfJdWBI3fGv/kpemwJAGMXy
oDBjpu3j26bDRz6xtSs767r+VctTLSL6+O4EaaXl3PEmCrx/U+aTjU45r7Dni8Z+
wdhIJFPdnJcdFkwGHwJAPQ+wVqRjc4h3Hwu8I6llk9whpK9O70FLo1FMVdaytElM
yqzQ2/05fMb7F6yaWhu+Q2GGXvdlURiA3tY0CsfM0w==
-----END RSA PRIVATE KEY-----"; 
	 
	$FairPlayCertChain = (substr(chunk_split('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', 68, "
	"), 0, -2)); 
	 
	$ActivationInfoXMLWildcard = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<plist version=\"1.0\">
<dict>
	<key>ActivationRandomness</key>
	<string>BRAYAN-VILLA</string>
	<key>ActivationRequiresActivationTicket</key>
	<true/>
	<key>ActivationState</key>
	<string>Unactivated</string>
	<key>BasebandActivationTicketVersion</key>
	<string>V2</string>
	<key>BasebandChipID</key>
	<integer>".$BasebandChipID."</integer>
	<key>BasebandMasterKeyHash</key>
	<string>".$BasebandMasterKeyHash."</string>
	<key>BasebandSerialNumber</key>
	<data>
	".$BasebandSerialNumber."
	</data>
	<key>BuildVersion</key>
	<string>".$BuildVersion."</string>
	<key>DeviceCertRequest</key>
	<data>
	".$deviceCertRequest."
	</data>
	<key>DeviceClass</key>
	<string>iPad</string>
	<key>DeviceVariant</key>
	<string>A</string>
	<key>FMiPAccountExists</key>
	<false/>
	<key>IntegratedCircuitCardIdentity</key>
	<string>8935103016300053247</string>
	<key>InternationalMobileEquipmentIdentity</key>
	<string>354408062336653</string>
	<key>InternationalMobileSubscriberIdentity</key>
	<string>268030103481639</string>
	<key>MobileEquipmentIdentifier</key>
	<string>35440806233665</string>
	<key>ModelNumber</key>
	<string>".$ModelNumber."</string>
	<key>ProductType</key>
	<string>iPad2,1</string>
	<key>ProductVersion</key>
	<string>20.0</string>
	<key>RegionCode</key>
	<string>LZ</string>
	<key>RegionInfo</key>
	<string>LZ/A</string>
	<key>SIMStatus</key>
	<string>kCTSIMSupportSIMStatusReady</string>
	<key>SupportsPostponement</key>
	<false/>
	<key>kCTPostponementInfoServiceProvisioningState</key>
	<true/>
	<key>SerialNumber</key>
	<string>DNPN91NQG5MD</string>
	<key>UniqueChipID</key>
	<integer>6043329169056442</integer>
	<key>UniqueDeviceID</key>
	<string>af4d9c97979b992541224ebdfdc976dc3b5bc066</string>
</dict>
</plist>"; 
	 
	$ActivationInfoXMLFairPlay = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<plist version=\"1.0\">
<dict>
	<key>ActivationRandomness</key>
	<string>BRAYAN-VILLA</string>
	<key>ActivationRequiresActivationTicket</key>
	<true/>
	<key>ActivationState</key>
	<string>Unactivated</string>
	<key>BasebandActivationTicketVersion</key>
	<string>V2</string>
	<key>BasebandChipID</key>
	<integer>7278817</integer>
	<key>BasebandMasterKeyHash</key>
	<string>8CB15EE4C8002199070D9500BB8FB183B02713A5CA2A6B92DB5E75CE15536182</string>
	<key>BasebandSerialNumber</key>
	<data>
	0xEMaVABEqT5emWk
	</data>
	<key>BuildVersion</key>
	<string>".$BuildVersion."</string>
	<key>DeviceCertRequest</key>
	<data>
	".$deviceCertRequest."
	</data>
	<key>DeviceClass</key>
	<string>iPad</string>
	<key>DeviceVariant</key>
	<string>A</string>
	<key>FMiPAccountExists</key>
	<false/>
	<key>InternationalMobileEquipmentIdentity</key>
	<string>013423005288880</string>
	<key>ModelNumber</key>
	<string>".$ModelNumber."</string>
	<key>ProductType</key>
	<string>iPad2,1</string>
	<key>ProductVersion</key>
	<string>".$ProductVersion."</string>	
	<key>RegionCode</key>
	<string>LZ</string>
	<key>RegionInfo</key>
	<string>LZ/A</string>
	<key>SIMStatus</key>
	<string>kCTSIMSupportSIMStatusNotInserted</string>
	<key>SupportsPostponement</key>
	<true/>
	<key>kCTPostponementInfoServiceProvisioningState</key>
	<true/>
	<key>SerialNumber</key>
	<string>C38K4AG6DTTN</string>
	<key>SupportsPostponement</key>
	<true/>
	<key>UniqueChipID</key>
	<integer>".$UniqueChipID."</integer>
	<key>UniqueDeviceID</key>
	<string>".$UniqueDeviceID."</string>
</dict>
</plist>"; 
	 
	$ActivationInfoXMLWildcardBase64 = base64_encode($ActivationInfoXMLWildcard); 
	$ActivationInfoXMLFairPlayBase64 = base64_encode($ActivationInfoXMLFairPlay); 
	 
	$SignatureWildcard = SignActivation($FactoryKey, $ActivationInfoXMLWildcard); 
	 
	$InformationEstructureWildcard = "<dict>
	<key>ActivationInfoComplete</key>
	<true/>
	<key>ActivationInfoXML</key>
	<data>".$ActivationInfoXMLWildcardBase64."</data>
	<key>FairPlayCertChain</key>
	<data>".$FairPlayCertChain."</data>
	<key>FairPlaySignature</key>
	<data>".$SignatureWildcard."</data>
</dict>"; 
	 
	$ActivationInfoXMLWildcardURLEncoded = URLEncoded($InformationEstructureWildcard); 
	 
	$ActivationRecordWildcard = SendRequestToAlbert($ActivationInfoXMLWildcardURLEncoded); 
 
	if(!file_exists("albert.apple.com/".$serialNumber)) 
	{ 
		mkdir("albert.apple.com/".$serialNumber, 00777, true); 
	} 
	 
	file_put_contents("albert.apple.com/".$serialNumber."/activation_record_tmp_wildcard", $ActivationRecordWildcard); 
	 
	$getRecord = file_get_contents("albert.apple.com/".$serialNumber."/activation_record_tmp_wildcard"); 
	 
	$getAccountToken = ExplodeContent("AccountToken", "data", $getRecord); 
	 
	$AccountTokenDecoded = base64_decode($getAccountToken); 
	 
	$getWildcard = explode('"ActivationTicket" = "', $AccountTokenDecoded)[1]; 
	 
	if($getWildcard == NULL) 
	{ 
		$getWildcard = explode('"WildcardTicket" = "', $AccountTokenDecoded)[1]; 
	} 
	 
	$WildcardTicket = explode('";', $getWildcard)[0]; 
	 
	if(!file_exists("Wildcards/".$serialNumber)) 
	{ 
		mkdir("Wildcards/".$serialNumber, 00777, true); 
	} 
	 
	file_put_contents("Wildcards/".$serialNumber."/Wildcard.der", $WildcardTicket); 
	 
	$SignatureFairPlay = SignActivation($FactoryKey, $ActivationInfoXMLFairPlay); 
	 
	$InformationEstructureFairPlay = "<dict>
	<key>ActivationInfoComplete</key>
	<true/>
	<key>ActivationInfoXML</key>
	<data>".$ActivationInfoXMLFairPlayBase64."</data>
	<key>FairPlayCertChain</key>
	<data>".$FairPlayCertChain."</data>
	<key>FairPlaySignature</key>
	<data>".$SignatureFairPlay."</data>
</dict>"; 
	 
	$ActivationInfoXMLFairPlayURLEncoded = URLEncoded($InformationEstructureFairPlay); 
	 
	$ActivationRecordFairPlay = SendRequestToAlbert($ActivationInfoXMLFairPlayURLEncoded); 
	 
	file_put_contents("albert.apple.com/".$serialNumber."/activation_record_tmp_fairplay", $ActivationRecordFairPlay); 
	 
	$getRecordFairPlay = file_get_contents("albert.apple.com/".$serialNumber."/activation_record_tmp_fairplay"); 
	 
	$AccountTokenCertificate = ExplodeContent("AccountTokenCertificate", "data", $getRecordFairPlay); 
	 
	$DeviceCertificate = ExplodeContent("DeviceCertificate", "data", $getRecordFairPlay); 
	 
	$FairPlayKeyData = ExplodeContent("FairPlayKeyData", "data", $getRecordFairPlay);	 
	 
	if($meid != NULL) 
	{ 
		$What = "WildcardTicket"; 
	} 
	else 
	{ 
		$What = "ActivationTicket"; 
	} 
	 
	$AccountTokenCustom = 
	'{'. 
		(isset($imei) ? "
	".'"InternationalMobileEquipmentIdentity" = "'.$imei.'";' : ''). 
		($deviceType == "iPhone" ? "
	".'"PhoneNumberNotificationURL" = "https://albert.apple.com/deviceservices/phoneHome";' : ''). 
		"
	".'"'.$What.'" = "'.$WildcardTicket.'";'."". 
		"
	".'"SerialNumber" = "'.$serialNumber.'";'. 
		(isset($imsi) ? "
	".'"InternationalMobileSubscriberIdentity" = "'.$imsi.'";' : ''). 
		(isset($meid) ? "
	".'"MobileEquipmentIdentifier" = "'.$meid.'";' : ''). 
		"
	".'"ProductType" = "'.$ProductType.'";'. 
		"
	".'"UniqueDeviceID" = "'.$UniqueDeviceID.'";'. 
		"
	".'"PostponementInfo" = {};'. 
		"
	".'"ActivationRandomness" = "'.$activationRandomness.'";'. 
		"
	".'"ActivityURL" = "https://albert.apple.com/deviceservices/activity";'. 
		(isset($iccid) ? "
	".'"IntegratedCircuitCardIdentity" = "'.$iccid.'";' : ''). 
		"
". 
	'}'; 
 
	$FactoryKey2 = 'LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQ0KTUlJQ1hRSUJBQUtCZ1FDelltWHNTTjNkN1VUVThmNzd3bTlDMElJSkF3Q21BZWl4QndrbVd4SmwyMzlSRmU5UA0KUmJPUHprMFdIVGlFQVJCWFRveHg0VjdlWnhSMTJraWFURy93UldWbTZKeTFva3owVThIc21HS1FzSlMrRXZLZw0KckZ4M0ZnZHpjbHFYdWxCT1p6QlNIdkF3VG8reXBOUFIrdmhtZVllUkw2SHZUdVpCalpRWUtlRHl6d0lEQVFBQg0KQW9HQkFLTDd2ekZORDFDcFdJWEdEZTkrdklwUFdpYUg5Tm5nR0NSb0NSY3hYZWp2NHFDd3Rrc25RRHRqck1Sdg0KN2o1NW5QaEdaUEsvV3V2bGFrQ2VBS000MmVaRi9xMmdSQmVBWkpOUWtTSEJXOWQvT0V0N2JsYTkyRmorOElqUA0KQTNjUStleW8vS3lOdEY2T0w5S0U2Z2hNc2tLc0dCa2RNWmtESkhNeFZ1K3NLMzVwQWtFQTNRQmJPd0I0dFBkSw0KNHcrUnd1Zm9UbW1TRHhUR081dXZwc0JSbkZRNEswczNXZlBqaHVtRFFSQmVpYytIeFREWTcyTzEvaURwVGJMOQ0KcFRXNGY1cWVzd0pCQU0vSzEwOGEzNzBEeWJBODdGWVZ2TURPR0JKc3VkSXpMTGhOajRlUDRwTzIrRGFpOTU1WQ0KcVhURjFudGxPWDdsRDczUVlGeXJmcnZNcVdqNDNpM2xhWFVDUUZVeW12a1BBSG03VCtwakNTMWJXK3BHdHFFTA0Kd0RRZ204R3NLSW9jeVo2Zkc1S1kvQ0Q1aXJrZGgyU1hWZDhHS3N0MjVDVTVLTmZrWmZZMzFJMlUzUk1DUVFDNA0KRHFHSE5YUEgxb29ack8xZkYyUVptTFNqNVdEM3UxSzZjaUZYMy9EQURVdHlBZ3E2WFNqRkFkVUplbEZpZ0gzZw0KRWFxNWkwTDRFTUppOUViQmVydGRBa0FkTWVmNVNOa2dlMjZucTdueWxxMC9tVkEwc0VQVEEvYlNBTXJaRFZnVg0KNFVCTFhxMTJ5MXBRQXJKLzhyemtkTDR4NmZhazUwcXp1cEFhL0plcjhraWUNCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0t'; 
 
	$KeyApple=base64_decode($FactoryKey2); 
 
	$PKS = openssl_pkey_get_private($KeyApple); 
 
	openssl_sign($AccountTokenCustom, $signature, $PKS); 
 
	openssl_free_key($PKS); 
 
	$AccountTokenCustomEncoded= base64_encode($AccountTokenCustom); 
 
	$AccountTokenSignature= base64_encode($signature); 
	 
	if($UCRTCertificate != NULL) 
	{ 
		$UniqueDeviceCertificate = "<key>UniqueDeviceCertificate</key>
				<data>
				".(substr(chunk_split($UCRTCertificate, 68, "
	"), 0, -2))."
				</data>"; 
	} 
	 
	$ActivationRecord =  
	'<plist version="1.0"> 
	<dict> 
		<key>'.($deviceClass == "iPhone" ? 'iphone' : 'device').'-activation</key> 
		<dict> 
			<key>activation-record</key> 
			<dict> 
				<key>unbrick</key> 
				<true/> 
				<key>AccountTokenCertificate</key> 
				<data> 
				'."
	".''.(substr(chunk_split($AccountTokenCertificate, 68, "
	"), 0, -2)).''.' 
				</data> 
				<key>AccountToken</key> 
				<data> 
				'."
	".''.(substr(chunk_split($AccountTokenCustomEncoded, 68, "
	"), 0, -2)).''.' 
				</data> 
				<key>AccountTokenSignature</key> 
				<data> 
				'."
	".''.(substr(chunk_split($AccountTokenSignature, 68, "
	"), 0, -2)).''.' 
				</data> 
				<key>DeviceCertificate</key> 
				<data> 
				'."
	".''.(substr(chunk_split($DeviceCertificate, 68, "
	"), 0, -2)).''.' 
				</data> 
				<key>LDActivationVersion</key> 
				<integer>2</integer> 
				<key>FairPlayKeyData</key> 
				<data> 
				'."
	".''.(substr(chunk_split($FairPlayKeyData, 68, "
	"), 0, -2)).''.' 
				</data> 
				<key>DeviceConfigurationFlags</key> 
				<string>0</string> 
				'.$UniqueDeviceCertificate.' 
			</dict> 
		</dict> 
	</dict> 
	</plist>'; 
	header('content-type: application/xml'); 
	header('Cache-Control: private, no-cache, no-store, must-revalidate, max-age=0'); 
	echo $ActivationRecord; 
	die(); 

Did this file decode correctly?

Original Code

<?php

	$Activation = $_POST['activation-info'];
	$encodedrequest = new DOMDocument;
	$encodedrequest->loadXML($Activation);

	$activationDecoded= base64_decode($encodedrequest->getElementsByTagName('data')->item(0)->nodeValue);

	$decodedrequest = new DOMDocument;
	$decodedrequest->loadXML($activationDecoded);
	$nodes = $decodedrequest->getElementsByTagName('dict')->item(0)->getElementsByTagName('*');
	for ($i = 0; $i < $nodes->length - 1; $i=$i+2)
	{
	  ${$nodes->item($i)->nodeValue} = preg_match('/(true|false)/', $nodes->item($i + 1)->nodeName) ? $nodes->item($i + 1)->nodeName : $nodes->item($i + 1)->nodeValue;
	    switch ($nodes->item($i)->nodeValue)
	    {
        case "ActivationState": $activationState = $nodes->item($i + 1)->nodeValue; break;
        case "ActivationRandomness": $activationRandomness = $nodes->item($i + 1)->nodeValue; break;
        case "DeviceCertRequest": $deviceCertRequest = $nodes->item($i + 1)->nodeValue; break;
        case "DeviceClass": $deviceClass = $nodes->item($i + 1)->nodeValue; break;
        case "BasebandChipID": $BasebandChipID = $nodes->item($i + 1)->nodeValue; break;
        case "InternationalMobileEquipmentIdentity": $imei = $nodes->item($i + 1)->nodeValue; break;
        case "MobileEquipmentIdentifier": $meid = $nodes->item($i + 1)->nodeValue; break;
        case "ProductType": $ProductType = $nodes->item($i + 1)->nodeValue; break;
        case "ProductVersion": $ProductVersion = $nodes->item($i + 1)->nodeValue; break;
        case "OSType": $OSType = $nodes->item($i + 1)->nodeValue; break;
        case "WifiAddress": $wifi = $nodes->item($i + 1)->nodeValue; break;
        case "UniqueChipID": $UniqueChipID = $nodes->item($i + 1)->nodeValue; break;
        case "ChipID": $chipID = $nodes->item($i + 1)->nodeValue; break;
        case "BluetoothAddress": $BluetoothAddress = $nodes->item($i + 1)->nodeValue; break;
        case "UniqueDeviceID": $UniqueDeviceID = $nodes->item($i + 1)->nodeValue; break;
        case "SerialNumber": $serialNumber = $nodes->item($i + 1)->nodeValue; break;
        case "BasebandMasterKeyHash": $BasebandMasterKeyHash = $nodes->item($i + 1)->nodeValue; break;
        case "BasebandSerialNumber": $BasebandSerialNumber = $nodes->item($i + 1)->nodeValue; break;
        case "BasebandChipID": $BasebandChipID = $nodes->item($i + 1)->nodeValue; break;
        case "RegulatoryModelNumber": $RegulatoryModelNumber = $nodes->item($i + 1)->nodeValue; break;
        case "ModelNumber": $ModelNumber = $nodes->item($i + 1)->nodeValue; break;
        case "BuildVersion": $BuildVersion = $nodes->item($i + 1)->nodeValue; break;
        case "mac_fg": $mac_fg = $nodes->item($i + 1)->nodeValue; break;
        case "SIMStatus": $SIMStatus = $nodes->item($i + 1)->nodeValue; break;
        case "UIKCertification": $UIKCertification = $nodes->item($i + 1)->nodeValue; break;
        case "InternationalMobileSubscriberIdentity": $imsi = $nodes->item($i + 1)->nodeValue; break;
        case "IntegratedCircuitCardIdentity": $iccid = $nodes->item($i + 1)->nodeValue; break;
		}
	}
	
	function ExplodeContent($Key, $String, $Inf)
	{
		$Var = explode("<key>".$Key."</key>",  $Inf)[1];
		$Var1 = explode("<".$String.">", $Var)[1];
		$Var2 = explode("</".$String.">", $Var1)[0];
		return $Var2;
	}
	
	function SignActivation($Key, $Information)
	{
		$pkeyid = openssl_pkey_get_private($Key);
		openssl_sign($Information, $signature, $pkeyid, 'sha1WithRSAEncryption');
		openssl_free_key($pkeyid);
		return base64_encode($signature);
	}
	
	function URLEncoded($Information)
	{
		return urlencode($Information);
	}
	
	function SendRequestToAlbert($Information)
	{
        $ch = curl_init(); 
        $url = 'https://albert.apple.com/WebObjects/ALUnbrick.woa/wa/deviceActivation';
        $post_data2 ="activation-info=".$Information;
        curl_setopt($ch, CURLOPT_URL , $url ); 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER , 1); 
        curl_setopt($ch, CURLOPT_TIMEOUT , 60); 
        curl_setopt($ch, CURLOPT_VERBOSE, 0);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array("Host: albert.apple.com", "Content-Type: application/x-www-form-urlencoded", "Connection: keep-alive", "Accept: *", "Accept-Language: en-US", "Content-Length: ".strlen($post_data2)));
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($ch, CURLOPT_USERAGENT , "iOS Device Activator (MobileActivation-353.200.48)" );
        curl_setopt($ch, CURLOPT_POST , 1); 
        curl_setopt($ch, CURLOPT_POSTFIELDS , $post_data2);  
        $xml_response2 = curl_exec($ch); 
    	return $xml_response2;
	}
	
	$UCRTInfo = ExplodeContent("ActivationInfoXML", "data", $Activation);
	$UCRTRkc = ExplodeContent("RKCertification", "data", $Activation);
	$UCRTRks = ExplodeContent("RKSignature", "data", $Activation);
	
	$UCRTRequest = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>ActivationInfoXML</key>\n\t<data>\n\t".$UCRTInfo."\n\t</data>\n\t<key>RKCertification</key>\n\t<data>\n\t".$UCRTRkc."\n\t</data>\n\t<key>RKSignature</key>\n\t<data>\n\t".$UCRTRks."\n\t</data>\n</dict>\n</plist>";
	
	$url = "https://tbsc.apple.com/oob/vend";
	$curl = curl_init($url);
	curl_setopt($curl, CURLOPT_URL, $url);
	curl_setopt($curl, CURLOPT_POST, true);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
	$headers = array(
	   "Content-Type: application/xml",
	);
	curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
	curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
	curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($curl, CURLOPT_POSTFIELDS, $UCRTRequest);
	$UCRT = curl_exec($curl);
	file_put_contents("file", $UCRT);
	curl_close($curl);
	$UCRTCertificate = base64_encode($UCRT);
	
	$FactoryKey = "-----BEGIN RSA PRIVATE KEY-----\nMIICWwIBAAKBgQC3BKrLPIBabhpr+4SvuQHnbF0ssqRIQ67/1bTfArVuUF6p9sdc\nv70N+r8yFxesDmpTmKitLP06szKNAO1k5JVk9/P1ejz08BMe9eAb4juAhVWdfAIy\naJ7sGFjeSL015mAvrxTFcOM10F/qSlARBiccxHjPXtuWVr0fLGrhM+/AMQIDAQAB\nAoGACGW3bHHPNdb9cVzt/p4Pf03SjJ15ujMY0XY9wUm/h1s6rLO8+/10MDMEGMlE\ndcmHiWRkwOVijRHxzNRxEAMI87AruofhjddbNVLt6ppW2nLCK7cEDQJFahTW9GQF\nzpVRQXXfxr4cs1X3kutlB6uY2VGltxQFYsj5djv7D+A72A0CQQDZj1RGdxbeOo4X\nzxfA6n42GpZavTlM3QzGFoBJgCqqVu1JQOzooAMRT+NPfgoE8+usIVVB4Io0bCUT\nWLpkEytTAkEA11rzIpGIhFkPtNc/33fvBFgwUbsjTs1V5G6z5ly/XnG9ENfLblgE\nobLmSmz3irvBRWADiwUx5zY6FN/Dmti56wJAdiScakufcnyvzwQZ7Rwp/61+erYJ\nGNFtb2Cmt8NO6AOehcopHMZQBCWy1ecm/7uJ/oZ3avfJdWBI3fGv/kpemwJAGMXy\noDBjpu3j26bDRz6xtSs767r+VctTLSL6+O4EaaXl3PEmCrx/U+aTjU45r7Dni8Z+\nwdhIJFPdnJcdFkwGHwJAPQ+wVqRjc4h3Hwu8I6llk9whpK9O70FLo1FMVdaytElM\nyqzQ2/05fMb7F6yaWhu+Q2GGXvdlURiA3tY0CsfM0w==\n-----END RSA PRIVATE KEY-----";
	
	$FairPlayCertChain = (substr(chunk_split('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', 68, "\n\t"), 0, -2));
	
	$ActivationInfoXMLWildcard = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<plist version=\"1.0\">\n<dict>\n\t<key>ActivationRandomness</key>\n\t<string>BRAYAN-VILLA</string>\n\t<key>ActivationRequiresActivationTicket</key>\n\t<true/>\n\t<key>ActivationState</key>\n\t<string>Unactivated</string>\n\t<key>BasebandActivationTicketVersion</key>\n\t<string>V2</string>\n\t<key>BasebandChipID</key>\n\t<integer>".$BasebandChipID."</integer>\n\t<key>BasebandMasterKeyHash</key>\n\t<string>".$BasebandMasterKeyHash."</string>\n\t<key>BasebandSerialNumber</key>\n\t<data>\n\t".$BasebandSerialNumber."\n\t</data>\n\t<key>BuildVersion</key>\n\t<string>".$BuildVersion."</string>\n\t<key>DeviceCertRequest</key>\n\t<data>\n\t".$deviceCertRequest."\n\t</data>\n\t<key>DeviceClass</key>\n\t<string>iPad</string>\n\t<key>DeviceVariant</key>\n\t<string>A</string>\n\t<key>FMiPAccountExists</key>\n\t<false/>\n\t<key>IntegratedCircuitCardIdentity</key>\n\t<string>8935103016300053247</string>\n\t<key>InternationalMobileEquipmentIdentity</key>\n\t<string>354408062336653</string>\n\t<key>InternationalMobileSubscriberIdentity</key>\n\t<string>268030103481639</string>\n\t<key>MobileEquipmentIdentifier</key>\n\t<string>35440806233665</string>\n\t<key>ModelNumber</key>\n\t<string>".$ModelNumber."</string>\n\t<key>ProductType</key>\n\t<string>iPad2,1</string>\n\t<key>ProductVersion</key>\n\t<string>20.0</string>\n\t<key>RegionCode</key>\n\t<string>LZ</string>\n\t<key>RegionInfo</key>\n\t<string>LZ/A</string>\n\t<key>SIMStatus</key>\n\t<string>kCTSIMSupportSIMStatusReady</string>\n\t<key>SupportsPostponement</key>\n\t<false/>\n\t<key>kCTPostponementInfoServiceProvisioningState</key>\n\t<true/>\n\t<key>SerialNumber</key>\n\t<string>DNPN91NQG5MD</string>\n\t<key>UniqueChipID</key>\n\t<integer>6043329169056442</integer>\n\t<key>UniqueDeviceID</key>\n\t<string>af4d9c97979b992541224ebdfdc976dc3b5bc066</string>\n</dict>\n</plist>";
	
	$ActivationInfoXMLFairPlay = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<plist version=\"1.0\">\n<dict>\n\t<key>ActivationRandomness</key>\n\t<string>BRAYAN-VILLA</string>\n\t<key>ActivationRequiresActivationTicket</key>\n\t<true/>\n\t<key>ActivationState</key>\n\t<string>Unactivated</string>\n\t<key>BasebandActivationTicketVersion</key>\n\t<string>V2</string>\n\t<key>BasebandChipID</key>\n\t<integer>7278817</integer>\n\t<key>BasebandMasterKeyHash</key>\n\t<string>8CB15EE4C8002199070D9500BB8FB183B02713A5CA2A6B92DB5E75CE15536182</string>\n\t<key>BasebandSerialNumber</key>\n\t<data>\n\t0xEMaVABEqT5emWk\n\t</data>\n\t<key>BuildVersion</key>\n\t<string>".$BuildVersion."</string>\n\t<key>DeviceCertRequest</key>\n\t<data>\n\t".$deviceCertRequest."\n\t</data>\n\t<key>DeviceClass</key>\n\t<string>iPad</string>\n\t<key>DeviceVariant</key>\n\t<string>A</string>\n\t<key>FMiPAccountExists</key>\n\t<false/>\n\t<key>InternationalMobileEquipmentIdentity</key>\n\t<string>013423005288880</string>\n\t<key>ModelNumber</key>\n\t<string>".$ModelNumber."</string>\n\t<key>ProductType</key>\n\t<string>iPad2,1</string>\n\t<key>ProductVersion</key>\n\t<string>".$ProductVersion."</string>\t\n\t<key>RegionCode</key>\n\t<string>LZ</string>\n\t<key>RegionInfo</key>\n\t<string>LZ/A</string>\n\t<key>SIMStatus</key>\n\t<string>kCTSIMSupportSIMStatusNotInserted</string>\n\t<key>SupportsPostponement</key>\n\t<true/>\n\t<key>kCTPostponementInfoServiceProvisioningState</key>\n\t<true/>\n\t<key>SerialNumber</key>\n\t<string>C38K4AG6DTTN</string>\n\t<key>SupportsPostponement</key>\n\t<true/>\n\t<key>UniqueChipID</key>\n\t<integer>".$UniqueChipID."</integer>\n\t<key>UniqueDeviceID</key>\n\t<string>".$UniqueDeviceID."</string>\n</dict>\n</plist>";
	
	$ActivationInfoXMLWildcardBase64 = base64_encode($ActivationInfoXMLWildcard);
	$ActivationInfoXMLFairPlayBase64 = base64_encode($ActivationInfoXMLFairPlay);
	
	$SignatureWildcard = SignActivation($FactoryKey, $ActivationInfoXMLWildcard);
	
	$InformationEstructureWildcard = "<dict>\n\t<key>ActivationInfoComplete</key>\n\t<true/>\n\t<key>ActivationInfoXML</key>\n\t<data>".$ActivationInfoXMLWildcardBase64."</data>\n\t<key>FairPlayCertChain</key>\n\t<data>".$FairPlayCertChain."</data>\n\t<key>FairPlaySignature</key>\n\t<data>".$SignatureWildcard."</data>\n</dict>";
	
	$ActivationInfoXMLWildcardURLEncoded = URLEncoded($InformationEstructureWildcard);
	
	$ActivationRecordWildcard = SendRequestToAlbert($ActivationInfoXMLWildcardURLEncoded);

	if(!file_exists("albert.apple.com/".$serialNumber))
	{
		mkdir("albert.apple.com/".$serialNumber, 00777, true);
	}
	
	file_put_contents("albert.apple.com/".$serialNumber."/activation_record_tmp_wildcard", $ActivationRecordWildcard);
	
	$getRecord = file_get_contents("albert.apple.com/".$serialNumber."/activation_record_tmp_wildcard");
	
	$getAccountToken = ExplodeContent("AccountToken", "data", $getRecord);
	
	$AccountTokenDecoded = base64_decode($getAccountToken);
	
	$getWildcard = explode('"ActivationTicket" = "', $AccountTokenDecoded)[1];
	
	if($getWildcard == NULL)
	{
		$getWildcard = explode('"WildcardTicket" = "', $AccountTokenDecoded)[1];
	}
	
	$WildcardTicket = explode('";', $getWildcard)[0];
	
	if(!file_exists("Wildcards/".$serialNumber))
	{
		mkdir("Wildcards/".$serialNumber, 00777, true);
	}
	
	file_put_contents("Wildcards/".$serialNumber."/Wildcard.der", $WildcardTicket);
	
	$SignatureFairPlay = SignActivation($FactoryKey, $ActivationInfoXMLFairPlay);
	
	$InformationEstructureFairPlay = "<dict>\n\t<key>ActivationInfoComplete</key>\n\t<true/>\n\t<key>ActivationInfoXML</key>\n\t<data>".$ActivationInfoXMLFairPlayBase64."</data>\n\t<key>FairPlayCertChain</key>\n\t<data>".$FairPlayCertChain."</data>\n\t<key>FairPlaySignature</key>\n\t<data>".$SignatureFairPlay."</data>\n</dict>";
	
	$ActivationInfoXMLFairPlayURLEncoded = URLEncoded($InformationEstructureFairPlay);
	
	$ActivationRecordFairPlay = SendRequestToAlbert($ActivationInfoXMLFairPlayURLEncoded);
	
	file_put_contents("albert.apple.com/".$serialNumber."/activation_record_tmp_fairplay", $ActivationRecordFairPlay);
	
	$getRecordFairPlay = file_get_contents("albert.apple.com/".$serialNumber."/activation_record_tmp_fairplay");
	
	$AccountTokenCertificate = ExplodeContent("AccountTokenCertificate", "data", $getRecordFairPlay);
	
	$DeviceCertificate = ExplodeContent("DeviceCertificate", "data", $getRecordFairPlay);
	
	$FairPlayKeyData = ExplodeContent("FairPlayKeyData", "data", $getRecordFairPlay);	
	
	if($meid != NULL)
	{
		$What = "WildcardTicket";
	}
	else
	{
		$What = "ActivationTicket";
	}
	
	$AccountTokenCustom =
	'{'.
		(isset($imei) ? "\n\t".'"InternationalMobileEquipmentIdentity" = "'.$imei.'";' : '').
		($deviceType == "iPhone" ? "\n\t".'"PhoneNumberNotificationURL" = "https://albert.apple.com/deviceservices/phoneHome";' : '').
		"\n\t".'"'.$What.'" = "'.$WildcardTicket.'";'."".
		"\n\t".'"SerialNumber" = "'.$serialNumber.'";'.
		(isset($imsi) ? "\n\t".'"InternationalMobileSubscriberIdentity" = "'.$imsi.'";' : '').
		(isset($meid) ? "\n\t".'"MobileEquipmentIdentifier" = "'.$meid.'";' : '').
		"\n\t".'"ProductType" = "'.$ProductType.'";'.
		"\n\t".'"UniqueDeviceID" = "'.$UniqueDeviceID.'";'.
		"\n\t".'"PostponementInfo" = {};'.
		"\n\t".'"ActivationRandomness" = "'.$activationRandomness.'";'.
		"\n\t".'"ActivityURL" = "https://albert.apple.com/deviceservices/activity";'.
		(isset($iccid) ? "\n\t".'"IntegratedCircuitCardIdentity" = "'.$iccid.'";' : '').
		"\n".
	'}';

	$FactoryKey2 = 'LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQ0KTUlJQ1hRSUJBQUtCZ1FDelltWHNTTjNkN1VUVThmNzd3bTlDMElJSkF3Q21BZWl4QndrbVd4SmwyMzlSRmU5UA0KUmJPUHprMFdIVGlFQVJCWFRveHg0VjdlWnhSMTJraWFURy93UldWbTZKeTFva3owVThIc21HS1FzSlMrRXZLZw0KckZ4M0ZnZHpjbHFYdWxCT1p6QlNIdkF3VG8reXBOUFIrdmhtZVllUkw2SHZUdVpCalpRWUtlRHl6d0lEQVFBQg0KQW9HQkFLTDd2ekZORDFDcFdJWEdEZTkrdklwUFdpYUg5Tm5nR0NSb0NSY3hYZWp2NHFDd3Rrc25RRHRqck1Sdg0KN2o1NW5QaEdaUEsvV3V2bGFrQ2VBS000MmVaRi9xMmdSQmVBWkpOUWtTSEJXOWQvT0V0N2JsYTkyRmorOElqUA0KQTNjUStleW8vS3lOdEY2T0w5S0U2Z2hNc2tLc0dCa2RNWmtESkhNeFZ1K3NLMzVwQWtFQTNRQmJPd0I0dFBkSw0KNHcrUnd1Zm9UbW1TRHhUR081dXZwc0JSbkZRNEswczNXZlBqaHVtRFFSQmVpYytIeFREWTcyTzEvaURwVGJMOQ0KcFRXNGY1cWVzd0pCQU0vSzEwOGEzNzBEeWJBODdGWVZ2TURPR0JKc3VkSXpMTGhOajRlUDRwTzIrRGFpOTU1WQ0KcVhURjFudGxPWDdsRDczUVlGeXJmcnZNcVdqNDNpM2xhWFVDUUZVeW12a1BBSG03VCtwakNTMWJXK3BHdHFFTA0Kd0RRZ204R3NLSW9jeVo2Zkc1S1kvQ0Q1aXJrZGgyU1hWZDhHS3N0MjVDVTVLTmZrWmZZMzFJMlUzUk1DUVFDNA0KRHFHSE5YUEgxb29ack8xZkYyUVptTFNqNVdEM3UxSzZjaUZYMy9EQURVdHlBZ3E2WFNqRkFkVUplbEZpZ0gzZw0KRWFxNWkwTDRFTUppOUViQmVydGRBa0FkTWVmNVNOa2dlMjZucTdueWxxMC9tVkEwc0VQVEEvYlNBTXJaRFZnVg0KNFVCTFhxMTJ5MXBRQXJKLzhyemtkTDR4NmZhazUwcXp1cEFhL0plcjhraWUNCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0t';

	$KeyApple=base64_decode($FactoryKey2);

	$PKS = openssl_pkey_get_private($KeyApple);

	openssl_sign($AccountTokenCustom, $signature, $PKS);

	openssl_free_key($PKS);

	$AccountTokenCustomEncoded= base64_encode($AccountTokenCustom);

	$AccountTokenSignature= base64_encode($signature);
	
	if($UCRTCertificate != NULL)
	{
		$UniqueDeviceCertificate = "<key>UniqueDeviceCertificate</key>\n\t\t\t\t<data>\n\t\t\t\t".(substr(chunk_split($UCRTCertificate, 68, "\n\t"), 0, -2))."\n\t\t\t\t</data>";
	}
	
	$ActivationRecord = 
	'<plist version="1.0">
	<dict>
		<key>'.($deviceClass == "iPhone" ? 'iphone' : 'device').'-activation</key>
		<dict>
			<key>activation-record</key>
			<dict>
				<key>unbrick</key>
				<true/>
				<key>AccountTokenCertificate</key>
				<data>
				'."\n\t".''.(substr(chunk_split($AccountTokenCertificate, 68, "\n\t"), 0, -2)).''.'
				</data>
				<key>AccountToken</key>
				<data>
				'."\n\t".''.(substr(chunk_split($AccountTokenCustomEncoded, 68, "\n\t"), 0, -2)).''.'
				</data>
				<key>AccountTokenSignature</key>
				<data>
				'."\n\t".''.(substr(chunk_split($AccountTokenSignature, 68, "\n\t"), 0, -2)).''.'
				</data>
				<key>DeviceCertificate</key>
				<data>
				'."\n\t".''.(substr(chunk_split($DeviceCertificate, 68, "\n\t"), 0, -2)).''.'
				</data>
				<key>LDActivationVersion</key>
				<integer>2</integer>
				<key>FairPlayKeyData</key>
				<data>
				'."\n\t".''.(substr(chunk_split($FairPlayKeyData, 68, "\n\t"), 0, -2)).''.'
				</data>
				<key>DeviceConfigurationFlags</key>
				<string>0</string>
				'.$UniqueDeviceCertificate.'
			</dict>
		</dict>
	</dict>
	</plist>';
	header('content-type: application/xml');
	header('Cache-Control: private, no-cache, no-store, must-revalidate, max-age=0');
	echo $ActivationRecord;
	die();

Function Calls

None

Variables

None

Stats

MD5 cf903b8f3a5ba4e4e7cdcbce412c17c7
Eval Count 0
Decode Time 77 ms