@ 2013-06-30T21:44:37Z <?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);
echo "A: $A\nt: $t\nM: $m\n";
$A = $this->add($A, $this->F($B, $C, $D), $M, $t) & $this->right32; //decimal
echo "4: $A\n";
$A = $this->rotate($A, $s);
echo "5: $A\n";
$A = dechex($this->add($this->binarysafehexdec($B), $this->binarysafehexdec($A)) & $this->right32);
echo "Result: $A\n\n";
}
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)) & (~(~0 << $bits) & $this->right32)));
}
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.013 0.003 16.88 8.3.5 0.015 0.012 18.33 8.3.4 0.010 0.013 19.21 8.3.3 0.006 0.010 19.04 8.3.2 0.006 0.003 19.09 8.3.1 0.003 0.007 20.59 8.3.0 0.006 0.006 18.13 8.2.18 0.016 0.003 17.00 8.2.17 0.010 0.007 22.96 8.2.16 0.010 0.006 21.02 8.2.15 0.006 0.003 24.18 8.2.14 0.006 0.003 24.66 8.2.13 0.008 0.000 26.16 8.2.12 0.005 0.005 19.61 8.2.11 0.011 0.007 22.31 8.2.10 0.010 0.003 18.16 8.2.9 0.008 0.003 19.71 8.2.8 0.000 0.011 19.59 8.2.7 0.003 0.007 17.88 8.2.6 0.009 0.000 18.05 8.2.5 0.010 0.000 18.07 8.2.4 0.009 0.000 18.37 8.2.3 0.004 0.004 18.37 8.2.2 0.007 0.003 17.96 8.2.1 0.003 0.007 18.14 8.2.0 0.000 0.009 18.08 8.1.28 0.013 0.006 25.92 8.1.27 0.004 0.004 24.66 8.1.26 0.009 0.000 26.35 8.1.25 0.000 0.009 28.09 8.1.24 0.004 0.007 23.73 8.1.23 0.004 0.008 23.88 8.1.22 0.003 0.006 17.80 8.1.21 0.003 0.006 19.14 8.1.20 0.007 0.004 17.73 8.1.19 0.005 0.005 17.77 8.1.18 0.003 0.007 18.10 8.1.17 0.000 0.011 19.21 8.1.16 0.005 0.005 19.16 8.1.15 0.003 0.006 18.96 8.1.14 0.003 0.006 17.73 8.1.13 0.000 0.009 18.12 8.1.12 0.007 0.003 17.80 8.1.11 0.000 0.008 17.73 8.1.10 0.006 0.003 17.76 8.1.9 0.006 0.003 17.71 8.1.8 0.008 0.000 17.75 8.1.7 0.003 0.006 17.70 8.1.6 0.007 0.003 17.75 8.1.5 0.000 0.009 17.73 8.1.4 0.005 0.005 17.77 8.1.3 0.003 0.006 17.92 8.1.2 0.000 0.010 17.84 8.1.1 0.000 0.010 17.85 8.1.0 0.003 0.006 17.83 8.0.30 0.005 0.005 20.18 8.0.29 0.000 0.010 17.13 8.0.28 0.003 0.006 18.72 8.0.27 0.000 0.008 17.52 8.0.26 0.006 0.003 17.16 8.0.25 0.003 0.007 17.33 8.0.24 0.009 0.000 17.29 8.0.23 0.004 0.004 17.23 8.0.22 0.004 0.009 17.25 8.0.21 0.006 0.003 17.26 8.0.20 0.004 0.004 17.36 8.0.19 0.007 0.003 17.29 8.0.18 0.006 0.003 17.25 8.0.17 0.003 0.009 17.14 8.0.16 0.003 0.006 17.16 8.0.15 0.000 0.010 17.11 8.0.14 0.007 0.007 17.09 8.0.13 0.004 0.004 13.63 8.0.12 0.000 0.010 17.08 8.0.11 0.006 0.003 17.11 8.0.10 0.000 0.009 17.29 8.0.9 0.006 0.003 17.13 8.0.8 0.012 0.006 17.23 8.0.7 0.003 0.006 17.10 8.0.6 0.006 0.003 17.21 8.0.5 0.003 0.006 17.23 8.0.3 0.010 0.016 17.28 8.0.2 0.010 0.013 17.46 8.0.1 0.000 0.009 17.19 8.0.0 0.009 0.014 17.34 7.4.33 0.007 0.000 13.28 7.4.32 0.000 0.008 16.86 7.4.30 0.000 0.009 16.86 7.4.29 0.000 0.008 16.89 7.4.28 0.003 0.007 16.89 7.4.27 0.004 0.004 16.83 7.4.26 0.003 0.003 13.55 7.4.25 0.000 0.010 16.78 7.4.24 0.003 0.006 16.85 7.4.23 0.009 0.000 16.88 7.4.22 0.008 0.020 16.66 7.4.21 0.008 0.012 16.88 7.4.20 0.003 0.006 16.90 7.4.19 0.000 0.009 16.94 7.4.16 0.007 0.011 16.75 7.4.15 0.020 0.003 16.67 7.4.14 0.009 0.017 16.92 7.4.13 0.008 0.013 16.73 7.4.12 0.010 0.012 16.74 7.4.11 0.012 0.015 16.85 7.4.10 0.014 0.007 16.83 7.4.9 0.007 0.014 16.55 7.4.8 0.012 0.016 19.39 7.4.7 0.016 0.012 17.02 7.4.6 0.012 0.010 16.84 7.4.5 0.003 0.006 16.70 7.4.4 0.006 0.013 16.83 7.4.3 0.000 0.020 16.74 7.4.0 0.007 0.013 15.35 7.3.33 0.004 0.004 13.61 7.3.32 0.003 0.003 13.68 7.3.31 0.004 0.004 16.58 7.3.30 0.003 0.005 16.60 7.3.29 0.006 0.013 16.67 7.3.28 0.004 0.015 16.63 7.3.27 0.012 0.009 16.58 7.3.26 0.014 0.007 16.64 7.3.25 0.014 0.008 16.67 7.3.24 0.019 0.009 16.60 7.3.23 0.010 0.010 16.85 7.3.21 0.029 0.018 16.66 7.3.20 0.006 0.017 16.93 7.3.19 0.012 0.009 16.56 7.3.18 0.004 0.016 16.68 7.3.17 0.017 0.003 16.64 7.3.16 0.015 0.006 17.04 7.3.12 0.003 0.015 15.32 7.2.33 0.010 0.018 16.66 7.2.32 0.017 0.005 17.07 7.2.31 0.006 0.016 16.75 7.2.30 0.006 0.016 16.87 7.2.29 0.010 0.010 16.85 7.2.0 0.007 0.010 19.51 7.1.10 0.004 0.011 18.10 7.1.7 0.007 0.003 17.22 7.1.6 0.000 0.014 19.40 7.1.5 0.003 0.023 16.99 7.1.0 0.003 0.063 22.54 7.0.20 0.000 0.009 16.77 7.0.14 0.000 0.080 22.02 7.0.12 0.000 0.080 22.05 7.0.10 0.040 0.087 20.08 7.0.9 0.060 0.047 20.21 7.0.8 0.040 0.080 20.14 7.0.7 0.033 0.077 20.12 7.0.6 0.053 0.070 20.11 7.0.5 0.047 0.080 20.48 7.0.4 0.000 0.087 19.90 7.0.3 0.010 0.073 20.10 7.0.2 0.010 0.050 20.01 7.0.1 0.007 0.090 20.02 7.0.0 0.020 0.067 20.05 5.6.28 0.000 0.083 21.29 5.6.25 0.000 0.073 20.80 5.6.24 0.010 0.080 20.68 5.6.23 0.007 0.083 20.58 5.6.22 0.010 0.083 20.73 5.6.21 0.007 0.087 20.52 5.6.20 0.003 0.090 21.13 5.6.19 0.003 0.087 21.23 5.6.18 0.010 0.080 21.13 5.6.17 0.003 0.090 21.10 5.6.16 0.010 0.077 21.05 5.6.15 0.010 0.080 21.11 5.6.14 0.007 0.083 21.12 5.6.13 0.003 0.097 21.23 5.6.12 0.013 0.070 21.25 5.6.11 0.000 0.080 21.10 5.6.10 0.013 0.080 21.11 5.6.9 0.003 0.070 21.11 5.6.8 0.010 0.070 20.53 5.6.7 0.013 0.073 20.43 5.6.6 0.010 0.080 20.41 5.6.5 0.010 0.047 20.42 5.6.4 0.010 0.080 20.50 5.6.3 0.010 0.080 20.41 5.6.2 0.017 0.070 20.39 5.6.1 0.003 0.080 20.48 5.6.0 0.003 0.087 20.47 5.5.38 0.007 0.090 20.44 5.5.37 0.013 0.080 20.42 5.5.36 0.003 0.060 20.63 5.5.35 0.010 0.080 20.51 5.5.34 0.007 0.083 20.86 5.5.33 0.003 0.080 20.87 5.5.32 0.003 0.087 21.02 5.5.31 0.017 0.073 20.99 5.5.30 0.003 0.083 20.87 5.5.29 0.003 0.100 20.97 5.5.28 0.010 0.080 20.85 5.5.27 0.007 0.087 20.86 5.5.26 0.010 0.043 20.84 5.5.25 0.010 0.083 20.77 5.5.24 0.017 0.067 20.30 5.5.23 0.020 0.077 20.23 5.5.22 0.010 0.080 20.41 5.5.21 0.013 0.073 20.40 5.5.20 0.007 0.053 20.37 5.5.19 0.023 0.040 20.27 5.5.18 0.003 0.090 20.30 5.5.16 0.003 0.077 20.25 5.5.15 0.010 0.077 20.33 5.5.14 0.013 0.077 20.17 5.5.13 0.007 0.067 20.37 5.5.12 0.010 0.053 20.24 5.5.11 0.010 0.047 20.30 5.5.10 0.013 0.067 20.21 5.5.9 0.013 0.043 20.06 5.5.8 0.007 0.047 20.16 5.5.7 0.003 0.080 20.15 5.5.6 0.003 0.083 20.25 5.5.5 0.007 0.077 20.15 5.5.4 0.007 0.077 20.21 5.5.3 0.007 0.080 20.17 5.5.2 0.003 0.083 20.14 5.5.1 0.013 0.073 20.15 5.5.0 0.003 0.087 20.19 5.4.45 0.007 0.070 19.30 5.4.44 0.000 0.090 19.57 5.4.43 0.010 0.070 19.35 5.4.42 0.003 0.047 19.27 5.4.41 0.000 0.090 19.32 5.4.40 0.007 0.050 19.29 5.4.39 0.013 0.070 19.10 5.4.38 0.003 0.080 19.23 5.4.37 0.013 0.070 19.19 5.4.36 0.007 0.080 19.26 5.4.35 0.003 0.090 19.17 5.4.34 0.010 0.080 19.29 5.4.32 0.007 0.063 19.26 5.4.31 0.010 0.080 19.25 5.4.30 0.007 0.043 19.10 5.4.29 0.003 0.080 19.02 5.4.28 0.007 0.083 19.02 5.4.27 0.003 0.070 19.09 5.4.26 0.000 0.083 19.33 5.4.25 0.007 0.080 19.09 5.4.24 0.003 0.080 19.18 5.4.23 0.007 0.067 19.18 5.4.22 0.003 0.060 19.02 5.4.21 0.000 0.080 18.96 5.4.20 0.020 0.067 19.09 5.4.19 0.003 0.050 18.95 5.4.18 0.003 0.080 19.25 5.4.17 0.007 0.083 19.22 5.4.16 0.007 0.087 19.20 5.4.15 0.010 0.080 19.01 5.4.14 0.007 0.070 16.41 5.4.13 0.010 0.080 16.45 5.4.12 0.000 0.083 16.41 5.4.11 0.010 0.077 16.54 5.4.10 0.017 0.063 16.57 5.4.9 0.010 0.077 16.57 5.4.8 0.010 0.053 16.45 5.4.7 0.007 0.067 16.46 5.4.6 0.007 0.067 16.39 5.4.5 0.007 0.080 16.41 5.4.4 0.010 0.077 16.42 5.4.3 0.007 0.073 16.59 5.4.2 0.000 0.080 16.54 5.4.1 0.013 0.063 16.52 5.4.0 0.007 0.080 15.95 5.3.29 0.007 0.083 14.90 5.3.28 0.007 0.087 14.98 5.3.27 0.017 0.070 14.96 5.3.26 0.003 0.080 14.83 5.3.25 0.003 0.053 14.87 5.3.24 0.010 0.070 14.92 5.3.23 0.010 0.073 14.85 5.3.22 0.007 0.083 14.84 5.3.21 0.017 0.067 14.86 5.3.20 0.007 0.073 14.88 5.3.19 0.007 0.080 14.88 5.3.18 0.007 0.083 14.79 5.3.17 0.007 0.047 14.79 5.3.16 0.007 0.077 14.86 5.3.15 0.003 0.083 14.81 5.3.14 0.003 0.083 14.76 5.3.13 0.010 0.073 14.74 5.3.12 0.007 0.087 14.86 5.3.11 0.013 0.080 14.86 5.3.10 0.003 0.083 14.25 5.3.9 0.007 0.080 14.25 5.3.8 0.013 0.070 14.38 5.3.7 0.013 0.077 14.38 5.3.6 0.010 0.053 14.30 5.3.5 0.000 0.050 14.11 5.3.4 0.007 0.073 14.25 5.3.3 0.013 0.067 14.21 5.3.2 0.010 0.070 13.96 5.3.1 0.013 0.077 13.83 5.3.0 0.013 0.073 13.77
preferences:dark mode live preview
39.25 ms | 401 KiB | 5 Q