@ 2013-06-30T21:41:57Z <?php
class EAHashor {
private $right32;
public function __construct()
{
$this->right32 = ~((~0 << 16) << 16);
}
public function eaEncode($string){
$a = "67452301";
$b = "EFCDAB89";
$c = "98BADCFE";
$d = "10325476";
$words = $this->init($string);
for($i = 0, $l = count($words) / 16 - 1; $i <= $l; $i++){
$A = $a;
$B = $b;
$C = $c;
$D = $d;
/* ROUND 1 */
$this->FF ($A, $B, $C, $D, $words[0 + ($i * 16)], 7, "d76aa478");
$this->FF ($D, $A, $B, $C, $words[1 + ($i * 16)], 12, "e8c7b756");
$this->FF ($C, $D, $A, $B, $words[2 + ($i * 16)], 17, "242070db");
$this->FF ($B, $C, $D, $A, $words[3 + ($i * 16)], 22, "c1bdceee");
$this->FF ($A, $B, $C, $D, $words[4 + ($i * 16)], 7, "f57c0faf");
$this->FF ($D, $A, $B, $C, $words[5 + ($i * 16)], 12, "4787c62a");
$this->FF ($C, $D, $A, $B, $words[6 + ($i * 16)], 17, "a8304613");
$this->FF ($B, $C, $D, $A, $words[7 + ($i * 16)], 22, "fd469501");
$this->FF ($A, $B, $C, $D, $words[8 + ($i * 16)], 7, "698098d8");
$this->FF ($D, $A, $B, $C, $words[9 + ($i * 16)], 12, "8b44f7af");
$this->FF ($C, $D, $A, $B, $words[10 + ($i * 16)], 17, "ffff5bb1");
$this->FF ($B, $C, $D, $A, $words[11 + ($i * 16)], 22, "895cd7be");
$this->FF ($A, $B, $C, $D, $words[12 + ($i * 16)], 7, "6b901122");
$this->FF ($D, $A, $B, $C, $words[13 + ($i * 16)], 12, "fd987193");
$this->FF ($C, $D, $A, $B, $words[14 + ($i * 16)], 17, "a679438e");
$this->FF ($B, $C, $D, $A, $words[15 + ($i * 16)], 22, "49b40821");
/* ROUND 2 */
$this->GG ($A, $B, $C, $D, $words[1 + ($i * 16)], 5, "f61e2562");
$this->GG ($D, $A, $B, $C, $words[6 + ($i * 16)], 9, "c040b340");
$this->GG ($C, $D, $A, $B, $words[11 + ($i * 16)], 14, "265e5a51");
$this->GG ($B, $C, $D, $A, $words[0 + ($i * 16)], 20, "e9b6c7aa");
$this->GG ($A, $B, $C, $D, $words[5 + ($i * 16)], 5, "d62f105d");
$this->GG ($D, $A, $B, $C, $words[10 + ($i * 16)], 9, "02441453");
$this->GG ($C, $D, $A, $B, $words[15 + ($i * 16)], 14, "d8a1e681");
$this->GG ($B, $C, $D, $A, $words[4 + ($i * 16)], 20, "e7d3fbc8");
$this->GG ($A, $B, $C, $D, $words[9 + ($i * 16)], 5, "21e1cde6");
$this->GG ($D, $A, $B, $C, $words[14 + ($i * 16)], 9, "c33707d6");
$this->GG ($C, $D, $A, $B, $words[3 + ($i * 16)], 14, "f4d50d87");
$this->GG ($B, $C, $D, $A, $words[8 + ($i * 16)], 20, "455a14ed");
$this->GG ($A, $B, $C, $D, $words[13 + ($i * 16)], 5, "a9e3e905");
$this->GG ($D, $A, $B, $C, $words[2 + ($i * 16)], 9, "fcefa3f8");
$this->GG ($C, $D, $A, $B, $words[7 + ($i * 16)], 14, "676f02d9");
$this->GG ($B, $C, $D, $A, $words[12 + ($i * 16)], 20, "8d2a4c8a");
/* ROUND 3 */
$this->HH ($A, $B, $C, $D, $words[5 + ($i * 16)], 4, "fffa3942");
$this->HH ($D, $A, $B, $C, $words[8 + ($i * 16)], 11, "8771f681");
//HH ($C, $D, $A, $B, $words[11 + ($i * 16)], 16, "6d9d6122");
//the line below has been changed to use 14 rather than 16 as seen in the commented line
$this->HH ($C, $D, $A, $B, $words[11 + ($i * 16)], 14, "6d9d6122");
$this->HH ($B, $C, $D, $A, $words[14 + ($i * 16)], 23, "fde5380c");
$this->HH ($A, $B, $C, $D, $words[1 + ($i * 16)], 4, "a4beea44");
$this->HH ($D, $A, $B, $C, $words[4 + ($i * 16)], 11, "4bdecfa9");
$this->HH ($C, $D, $A, $B, $words[7 + ($i * 16)], 16, "f6bb4b60");
$this->HH ($B, $C, $D, $A, $words[10 + ($i * 16)], 23, "bebfbc70");
$this->HH ($A, $B, $C, $D, $words[13 + ($i * 16)], 4, "289b7ec6");
$this->HH ($D, $A, $B, $C, $words[0 + ($i * 16)], 11, "eaa127fa");
$this->HH ($C, $D, $A, $B, $words[3 + ($i * 16)], 16, "d4ef3085");
$this->HH ($B, $C, $D, $A, $words[6 + ($i * 16)], 23, "04881d05");
$this->HH ($A, $B, $C, $D, $words[9 + ($i * 16)], 4, "d9d4d039");
$this->HH ($D, $A, $B, $C, $words[12 + ($i * 16)], 11, "e6db99e5");
$this->HH ($C, $D, $A, $B, $words[15 + ($i * 16)], 16, "1fa27cf8");
$this->HH ($B, $C, $D, $A, $words[2 + ($i * 16)], 23, "c4ac5665");
/* ROUND 4 */
$this->II ($A, $B, $C, $D, $words[0 + ($i * 16)], 6, "f4292244");
$this->II ($D, $A, $B, $C, $words[7 + ($i * 16)], 10, "432aff97");
$this->II ($C, $D, $A, $B, $words[14 + ($i * 16)], 15, "ab9423a7");
$this->II ($B, $C, $D, $A, $words[5 + ($i * 16)], 21, "fc93a039");
$this->II ($A, $B, $C, $D, $words[12 + ($i * 16)], 6, "655b59c3");
$this->II ($D, $A, $B, $C, $words[3 + ($i * 16)], 10, "8f0ccc92");
$this->II ($C, $D, $A, $B, $words[10 + ($i * 16)], 15, "ffeff47d");
$this->II ($B, $C, $D, $A, $words[1 + ($i * 16)], 21, "85845dd1");
$this->II ($A, $B, $C, $D, $words[8 + ($i * 16)], 6, "6fa87e4f");
$this->II ($D, $A, $B, $C, $words[15 + ($i * 16)], 10, "fe2ce6e0");
$this->II ($C, $D, $A, $B, $words[6 + ($i * 16)], 15, "a3014314");
$this->II ($B, $C, $D, $A, $words[13 + ($i * 16)], 21, "4e0811a1");
$this->II ($A, $B, $C, $D, $words[4 + ($i * 16)], 6, "f7537e82");
$this->II ($D, $A, $B, $C, $words[11 + ($i * 16)], 10, "bd3af235");
$this->II ($C, $D, $A, $B, $words[2 + ($i * 16)], 15, "2ad7d2bb");
$this->II ($B, $C, $D, $A, $words[9 + ($i * 16)], 21, "eb86d391");
//this last line is used twice
$this->II ($B, $C, $D, $A, $words[9 + ($i * 16)], 21, "eb86d391");
$this->addVars($a, $b, $c, $d, $A, $B, $C, $D);
}
$MD5 = '';
foreach (array($a, $b, $c, $d) as $x) {
$MD5 .= implode('', array_reverse(str_split($this->leftpad($x, 8), 2)));
}
return $MD5;
}
/* General functions */
private function hexbin($str){
$hexbinmap = array( "0" => "0000",
"1" => "0001",
"2" => "0010",
"3" => "0011"
, "4" => "0100"
, "5" => "0101"
, "6" => "0110"
, "7" => "0111"
, "8" => "1000"
, "9" => "1001"
, "A" => "1010"
, "a" => "1010"
, "B" => "1011"
, "b" => "1011"
, "C" => "1100"
, "c" => "1100"
, "D" => "1101"
, "d" => "1101"
, "E" => "1110"
, "e" => "1110"
, "F" => "1111"
, "f" => "1111");
$bin = "";
for ($i = 0; $i < strlen($str); $i++){
$bin .= $hexbinmap[$str[$i]];
}
$bin = ltrim($bin, '0');
// echo "Original: ".$str." New: ".$bin."<br />";
return $bin;
}
private function strhex($str){
$hex = "";
for ($i = 0; $i < strlen($str); $i++){
$hex = $hex.$this->leftpad(dechex(ord($str[$i])), 2);
}
return $hex;
}
/* MD5-specific functions */
private function init($string){
$len = strlen($string) * 8;
$hex = $this->strhex($string); // convert ascii string to hex
$bin = $this->leftpad($this->hexbin($hex), $len); // convert hex string to bin
$padded = $this->pad($bin);
$padded = $this->pad($padded, 1, $len);
$block = str_split($padded, 32);
foreach ($block as &$b) {
$b = implode('', array_reverse(str_split($b, 8)));
}
return $block;
}
private function pad($bin, $type=0, $len = 0){
if($type == 0){
$bin = $bin."1";
$buff = strlen($bin) % 512;
if($buff != 448){
while(strlen($bin) % 512 != 448){
$bin = $bin."0";
}
}
}
// append length (b) of string to latter 64 bits
elseif($type == 1){
$bLen = $this->leftpad(decbin($len), 64);
$bin .= implode('', array_reverse(str_split($bLen, 8)));
}
return $bin;
}
/* MD5 base functions */
private function F($X, $Y, $Z){
$X = $this->binarySafeHexDec($X);
$Y = $this->binarysafehexdec($Y);
$Z = $this->binarysafehexdec($Z);
$calc = (($X & $Y) | ((~ $X) & $Z)); // X AND Y OR NOT X AND Z
return $calc;
}
private function G($X, $Y, $Z){
$X = $this->binarysafehexdec($X);
$Y = $this->binarysafehexdec($Y);
$Z = $this->binarysafehexdec($Z);
$calc = (($X & $Z) | ($Y & (~ $Z))); // X AND Z OR Y AND NOT Z
return $calc;
}
private function H($X, $Y, $Z){
$X = $this->binarysafehexdec($X);
$Y = $this->binarysafehexdec($Y);
$Z = $this->binarysafehexdec($Z);
$calc = ($X ^ $Y ^ $Z); // X XOR Y XOR Z
return $calc;
}
private function I($X, $Y, $Z){
$X = $this->binarysafehexdec($X);
$Y = $this->binarysafehexdec($Y);
$Z = $this->binarysafehexdec($Z);
$calc = ($Y ^ ($X | (~ $Z))) ; // Y XOR (X OR NOT Z)
return $calc;
}
/* MD5 round functions */
/* $A - hex, $B - hex, $C - hex, $D - hex (F - dec)
$M - binary
$s - decimal
$t - hex
*/
private function FF(&$A, $B, $C, $D, $M, $s, $t){
$A = $this->binarysafehexdec($A);
$t = $this->binarysafehexdec($t);
$M = $this->binarysafebindec($M);
$A = $this->add($A, $this->F($B, $C, $D), $M, $t) & $this->right32; //decimal
$A = $this->rotate($A, $s);
$A = dechex($this->add($this->binarysafehexdec($B), $this->binarysafehexdec($A)) & $this->right32);
}
private function GG(&$A, $B, $C, $D, $M, $s, $t){
$A = $this->binarysafehexdec($A);
$t = $this->binarysafehexdec($t);
$M = $this->binarysafebindec($M);
$A = $this->add($A, $this->G($B, $C, $D), $M, $t) & $this->right32; //decimal
$A = $this->rotate($A, $s);
$A = dechex($this->add($this->binarysafehexdec($B), $this->binarysafehexdec($A)) & $this->right32);
}
private function HH(&$A, $B, $C, $D, $M, $s, $t){
$A = $this->binarysafehexdec($A);
$t = $this->binarysafehexdec($t);
$M = $this->binarysafebindec($M);
$A = $this->add($A, $this->H($B, $C, $D), $M, $t) & $this->right32; //decimal
$A = $this->rotate($A, $s);
$A = dechex($this->add($this->binarysafehexdec($B), $this->binarysafehexdec($A)) & $this->right32);
}
private function II(&$A, $B, $C, $D, $M, $s, $t){
$A = $this->binarysafehexdec($A);
$t = $this->binarysafehexdec($t);
$M = $this->binarysafebindec($M);
$A = $this->add($A, $this->I($B, $C, $D), $M, $t) & $this->right32; //decimal
$A = $this->rotate($A, $s);
$A = dechex($this->add($this->binarysafehexdec($B), $this->binarysafehexdec($A)) & $this->right32);
}
private function rotate ($decimal, $bits)
{
return dechex(($decimal << $bits) | ($decimal >> (32 - $bits)));
}
private function addVars(&$a, &$b, &$c, &$d, $A, $B, $C, $D){
$A = $this->binarysafehexdec($A);
$B = $this->binarysafehexdec($B);
$C = $this->binarysafehexdec($C);
$D = $this->binarysafehexdec($D);
$aa = $this->binarysafehexdec($a);
$bb = $this->binarysafehexdec($b);
$cc = $this->binarysafehexdec($c);
$dd = $this->binarysafehexdec($d);
$aa = $this->add($aa, $A) & $this->right32;
$bb = $this->add($bb, $B) & $this->right32;
$cc = $this->add($cc, $C) & $this->right32;
$dd = $this->add($dd, $D) & $this->right32;
$a = dechex($aa);
$b = dechex($bb);
$c = dechex($cc);
$d = dechex($dd);
}
private function leftpad($needs_padding, $alignment) {
if (strlen($needs_padding) % $alignment) {
$pad_amount = $alignment - strlen($needs_padding) % $alignment;
$left_pad = implode('', array_fill(0, $pad_amount, '0'));
$needs_padding = $left_pad . $needs_padding;
}
return $needs_padding;
}
private function binarySafeBinDec($bin)
{
$bits = array_reverse(str_split($bin, 1));
$result = 0;
foreach ($bits as $position => $bit) {
$result |= ((int) $bit) << $position;
}
return $result;
}
private function binarySafeHexDec($hex)
{
$h = str_split(str_pad($hex, 8, '0', STR_PAD_LEFT), 2);
return (hexdec($h[0]) << 24) | (hexdec($h[1]) << 16) | (hexdec($h[2]) << 8) | hexdec($h[3]);
}
private function leftShiftByOne($intAsStr)
{
$p = unpack('N2', $intAsStr);
return pack('N2', ($p[1] << 1) | (($p[2] >> 31) & 0x00000001), $p[2] << 1);
}
private function binarySafeAddition($a, $b)
{
// NB: we don't actually need 64 bits, but 40 bit integers are confusing
$a = "\x00\x00\x00\x00" . pack('N', $a);
$b = "\x00\x00\x00\x00" . pack('N', $b);
$carry = $a & $b;
$result = $a ^ $b;
while ($carry != "\x00\x00\x00\x00\x00\x00\x00\x00") {
$shiftedcarry = $this->leftShiftByOne($carry);
$carry = $result & $shiftedcarry;
$result ^= $shiftedcarry;
}
return current(unpack('N', substr($result, 4)));
}
private function add()
{
$result = 0;
foreach (func_get_args() as $int) {
$result = $this->binarySafeAddition($result, $int);
}
return $result;
}
}
$eahashor = new EAHashor();
$hash = $eahashor->eaEncode('test');
echo $hash;
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).
Version System time (s) User time (s) Memory (MiB) 8.3.6 0.000 0.019 18.56 8.3.5 0.010 0.017 22.10 8.3.4 0.011 0.007 19.12 8.3.3 0.009 0.006 19.38 8.3.2 0.004 0.004 20.64 8.3.1 0.005 0.003 23.61 8.3.0 0.010 0.003 17.63 8.2.18 0.007 0.010 18.16 8.2.17 0.010 0.006 22.96 8.2.16 0.014 0.004 20.64 8.2.15 0.005 0.005 24.18 8.2.14 0.003 0.006 24.66 8.2.13 0.008 0.000 26.16 8.2.12 0.008 0.000 21.00 8.2.11 0.005 0.005 22.27 8.2.10 0.010 0.003 18.28 8.2.9 0.000 0.009 19.59 8.2.8 0.003 0.006 18.15 8.2.7 0.006 0.006 17.75 8.2.6 0.000 0.009 18.28 8.2.5 0.005 0.005 18.07 8.2.4 0.006 0.003 18.41 8.2.3 0.000 0.009 18.28 8.2.2 0.003 0.006 17.93 8.2.1 0.004 0.008 18.24 8.2.0 0.004 0.008 18.02 8.1.28 0.009 0.006 25.92 8.1.27 0.007 0.003 22.27 8.1.26 0.003 0.006 26.35 8.1.25 0.006 0.003 28.09 8.1.24 0.000 0.010 23.85 8.1.23 0.012 0.000 19.26 8.1.22 0.009 0.000 18.04 8.1.21 0.006 0.003 18.77 8.1.20 0.000 0.010 17.75 8.1.19 0.000 0.009 17.91 8.1.18 0.007 0.003 18.10 8.1.17 0.003 0.007 18.81 8.1.16 0.003 0.006 22.29 8.1.15 0.004 0.004 18.85 8.1.14 0.006 0.003 17.60 8.1.13 0.004 0.004 18.01 8.1.12 0.009 0.000 17.70 8.1.11 0.000 0.010 17.65 8.1.10 0.003 0.006 17.64 8.1.9 0.006 0.003 17.77 8.1.8 0.004 0.004 17.75 8.1.7 0.004 0.004 17.68 8.1.6 0.008 0.008 17.84 8.1.5 0.003 0.006 17.70 8.1.4 0.003 0.006 17.73 8.1.3 0.000 0.010 17.87 8.1.2 0.000 0.009 17.95 8.1.1 0.003 0.006 17.90 8.1.0 0.004 0.004 17.70 8.0.30 0.004 0.004 18.77 8.0.29 0.004 0.004 17.43 8.0.28 0.004 0.004 18.64 8.0.27 0.006 0.003 17.57 8.0.26 0.000 0.008 17.52 8.0.25 0.004 0.004 17.25 8.0.24 0.004 0.008 17.23 8.0.23 0.003 0.006 17.13 8.0.22 0.006 0.003 17.13 8.0.21 0.004 0.004 17.07 8.0.20 0.000 0.009 17.26 8.0.19 0.005 0.005 17.20 8.0.18 0.000 0.009 17.19 8.0.17 0.006 0.003 17.20 8.0.16 0.004 0.004 17.06 8.0.15 0.006 0.003 17.06 8.0.14 0.000 0.009 17.13 8.0.13 0.003 0.007 13.59 8.0.12 0.010 0.000 17.00 8.0.11 0.000 0.010 17.00 8.0.10 0.004 0.004 17.16 8.0.9 0.004 0.004 17.05 8.0.8 0.013 0.012 17.14 8.0.7 0.006 0.003 17.22 8.0.6 0.000 0.009 17.11 8.0.5 0.000 0.009 17.11 8.0.3 0.013 0.010 17.42 8.0.2 0.012 0.009 17.58 8.0.1 0.004 0.004 17.18 8.0.0 0.014 0.006 17.25 7.4.33 0.000 0.006 15.00 7.4.32 0.005 0.005 16.77 7.4.30 0.000 0.008 16.91 7.4.29 0.003 0.006 16.91 7.4.28 0.003 0.006 16.62 7.4.27 0.003 0.007 16.77 7.4.26 0.008 0.003 16.88 7.4.25 0.000 0.009 16.88 7.4.24 0.002 0.006 16.74 7.4.23 0.004 0.004 16.91 7.4.22 0.010 0.016 16.90 7.4.21 0.008 0.009 16.78 7.4.20 0.006 0.003 16.52 7.4.19 0.009 0.000 16.74 7.4.16 0.016 0.010 16.57 7.4.15 0.014 0.007 17.40 7.4.14 0.005 0.015 17.86 7.4.13 0.007 0.013 16.83 7.4.12 0.010 0.010 16.87 7.4.11 0.010 0.010 16.78 7.4.10 0.010 0.010 16.64 7.4.9 0.010 0.010 16.78 7.4.8 0.006 0.013 19.39 7.4.7 0.011 0.009 16.58 7.4.6 0.006 0.014 16.94 7.4.5 0.007 0.004 16.79 7.4.4 0.008 0.012 22.77 7.4.3 0.011 0.008 16.73 7.4.0 0.009 0.009 15.02 7.3.33 0.004 0.004 13.48 7.3.32 0.004 0.004 13.48 7.3.31 0.003 0.006 16.39 7.3.30 0.004 0.004 16.49 7.3.29 0.007 0.013 16.61 7.3.28 0.015 0.012 16.63 7.3.27 0.010 0.010 17.40 7.3.26 0.006 0.013 16.75 7.3.25 0.011 0.008 16.72 7.3.24 0.012 0.008 16.90 7.3.23 0.012 0.006 16.63 7.3.21 0.006 0.013 16.79 7.3.20 0.010 0.017 19.39 7.3.19 0.014 0.013 16.55 7.3.18 0.007 0.011 16.83 7.3.17 0.013 0.006 16.73 7.3.16 0.007 0.011 16.61 7.3.12 0.000 0.017 15.20 7.3.1 0.004 0.015 16.79 7.3.0 0.011 0.006 16.41 7.2.33 0.009 0.011 17.02 7.2.32 0.007 0.013 16.84 7.2.31 0.004 0.015 17.11 7.2.30 0.010 0.010 16.63 7.2.29 0.008 0.011 16.97 7.2.13 0.006 0.013 16.72 7.2.12 0.004 0.008 17.00 7.2.11 0.006 0.009 16.78 7.2.10 0.004 0.007 16.82 7.2.9 0.007 0.010 17.14 7.2.8 0.009 0.009 16.89 7.2.7 0.003 0.013 16.97 7.2.6 0.014 0.003 16.85 7.2.5 0.003 0.015 17.09 7.2.4 0.010 0.003 16.84 7.2.3 0.010 0.010 16.78 7.2.2 0.003 0.014 17.17 7.2.1 0.010 0.003 17.02 7.2.0 0.004 0.014 16.70 7.1.25 0.010 0.006 16.00 7.1.7 0.003 0.010 17.34 7.1.6 0.011 0.018 19.33 7.1.5 0.013 0.013 17.04 7.1.0 0.000 0.083 22.54 7.0.20 0.056 0.010 15.04 7.0.14 0.003 0.077 22.09 7.0.10 0.040 0.087 20.43 7.0.9 0.060 0.073 20.18 7.0.8 0.037 0.080 20.25 7.0.7 0.040 0.080 20.25 7.0.6 0.043 0.073 20.19 7.0.5 0.013 0.070 20.57 7.0.4 0.003 0.043 20.20 7.0.3 0.010 0.040 19.99 7.0.2 0.003 0.047 20.16 7.0.1 0.000 0.060 20.13 7.0.0 0.003 0.047 20.19 5.6.28 0.010 0.073 21.05 5.6.25 0.013 0.073 20.64 5.6.24 0.013 0.083 20.82 5.6.23 0.013 0.087 20.78 5.6.22 0.010 0.053 20.64 5.6.21 0.007 0.053 20.81 5.6.20 0.007 0.053 21.11 5.6.19 0.017 0.080 21.26 5.6.18 0.007 0.053 21.26 5.6.17 0.007 0.043 21.16 5.6.16 0.007 0.053 21.20 5.6.15 0.003 0.047 21.11 5.6.14 0.010 0.037 21.19 5.6.13 0.010 0.063 21.20 5.6.12 0.003 0.047 21.15 5.6.11 0.007 0.043 21.24 5.6.10 0.010 0.040 21.18 5.6.9 0.000 0.047 21.08 5.6.8 0.003 0.043 20.64 5.6.7 0.007 0.040 20.57 5.6.6 0.000 0.047 20.60 5.6.5 0.003 0.043 20.57 5.6.4 0.007 0.053 20.58 5.6.3 0.007 0.047 20.56 5.6.2 0.007 0.040 20.51 5.6.1 0.010 0.053 20.54 5.6.0 0.000 0.050 20.57 5.5.38 0.010 0.050 20.56 5.5.37 0.003 0.077 20.64 5.5.36 0.020 0.073 20.69 5.5.35 0.007 0.083 20.57 5.5.34 0.017 0.060 21.04 5.5.33 0.013 0.047 20.93 5.5.32 0.003 0.053 21.04 5.5.31 0.013 0.037 21.02 5.5.30 0.003 0.047 20.78 5.5.29 0.003 0.047 21.04 5.5.28 0.013 0.053 20.92 5.5.27 0.000 0.050 21.02 5.5.26 0.000 0.053 20.97 5.5.25 0.000 0.060 20.85 5.5.24 0.010 0.037 20.44 5.5.23 0.007 0.037 20.45 5.5.22 0.003 0.043 20.39 5.5.21 0.003 0.047 20.43 5.5.20 0.013 0.037 20.39 5.5.19 0.010 0.037 20.30 5.5.18 0.007 0.040 20.28 5.5.16 0.010 0.050 20.13 5.5.15 0.010 0.047 20.38 5.5.14 0.007 0.050 20.39 5.5.13 0.003 0.070 20.39 5.5.12 0.010 0.050 20.13 5.5.11 0.010 0.083 20.39 5.5.10 0.000 0.087 20.25 5.5.9 0.017 0.073 20.30 5.5.8 0.017 0.040 20.09 5.5.7 0.007 0.073 20.24 5.5.6 0.007 0.077 20.05 5.5.5 0.013 0.083 20.23 5.5.4 0.017 0.073 20.03 5.5.3 0.003 0.083 20.23 5.5.2 0.010 0.083 20.30 5.5.1 0.013 0.073 20.16 5.5.0 0.007 0.043 20.22 5.4.45 0.003 0.047 19.45 5.4.44 0.010 0.067 19.43 5.4.43 0.007 0.060 19.25 5.4.42 0.003 0.050 19.52 5.4.41 0.003 0.043 19.43 5.4.40 0.003 0.040 19.10 5.4.39 0.013 0.033 19.26 5.4.38 0.007 0.037 19.09 5.4.37 0.003 0.040 19.26 5.4.36 0.000 0.057 19.10 5.4.35 0.003 0.040 19.29 5.4.34 0.007 0.040 19.26 5.4.32 0.007 0.060 19.23 5.4.31 0.017 0.067 19.12 5.4.30 0.000 0.043 19.18 5.4.29 0.000 0.043 19.21 5.4.28 0.010 0.067 19.13 5.4.27 0.003 0.080 19.03 5.4.26 0.007 0.080 19.12 5.4.25 0.017 0.073 19.09 5.4.24 0.000 0.073 19.25 5.4.23 0.003 0.067 18.95 5.4.22 0.010 0.077 19.09 5.4.21 0.010 0.073 19.09 5.4.20 0.010 0.080 18.92 5.4.19 0.010 0.070 19.01 5.4.18 0.010 0.083 19.11 5.4.17 0.007 0.047 19.27 5.4.16 0.003 0.073 19.09 5.4.15 0.007 0.083 18.91 5.4.14 0.010 0.053 16.57 5.4.13 0.010 0.077 16.48 5.4.12 0.010 0.073 16.49 5.4.11 0.003 0.073 16.48 5.4.10 0.010 0.077 16.48 5.4.9 0.003 0.060 16.70 5.4.8 0.010 0.073 16.48 5.4.7 0.000 0.063 16.55 5.4.6 0.007 0.067 16.43 5.4.5 0.007 0.077 16.67 5.4.4 0.010 0.070 16.42 5.4.3 0.010 0.077 16.58 5.4.2 0.007 0.073 16.47 5.4.1 0.013 0.047 16.54 5.4.0 0.007 0.077 15.94 5.3.29 0.010 0.037 15.00 5.3.28 0.003 0.080 14.90 5.3.27 0.017 0.057 14.78 5.3.26 0.017 0.037 14.98 5.3.25 0.013 0.077 14.87 5.3.24 0.003 0.080 14.97 5.3.23 0.003 0.077 14.98 5.3.22 0.010 0.067 14.73 5.3.21 0.007 0.080 14.91 5.3.20 0.007 0.080 14.88 5.3.19 0.003 0.083 14.79 5.3.18 0.007 0.070 14.95 5.3.17 0.007 0.077 14.80 5.3.16 0.007 0.073 14.91 5.3.15 0.013 0.060 14.79 5.3.14 0.013 0.087 14.83 5.3.13 0.007 0.083 14.90 5.3.12 0.013 0.070 14.80 5.3.11 0.003 0.083 14.88 5.3.10 0.013 0.073 14.23 5.3.9 0.010 0.077 14.26 5.3.8 0.003 0.077 14.25 5.3.7 0.010 0.073 14.27 5.3.6 0.017 0.067 14.30 5.3.5 0.010 0.077 14.31 5.3.4 0.013 0.050 14.19 5.3.3 0.013 0.067 14.19 5.3.2 0.017 0.070 14.19 5.3.1 0.000 0.083 14.19 5.3.0 0.013 0.073 14.19
preferences:dark mode live preview
44.6 ms | 401 KiB | 5 Q