@ 2013-06-30T19:15:34Z <?php
class EAHashor {
private $right32;
//initialise the class
public function __construct() {
// This is a 32- and 64-bit safe way to get an integer with only the
// right-most 32-bits set
$this->right32 = ~((-1 << 16) << 16);
}
public function eaEncode($string){
$a = "67452301";
$b = "EFCDAB89";
$c = "98BADCFE";
$d = "10325476";
$words = $this->init($string);
for($i = 0; $i <= count($words)/16-1; $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 = hexdec($X);
$Y = hexdec($Y);
$Z = hexdec($Z);
$calc = (($X & $Y) | ((~ $X) & $Z)); // X AND Y OR NOT X AND Z
return $calc;
}
private function G($X, $Y, $Z){
$X = hexdec($X);
$Y = hexdec($Y);
$Z = hexdec($Z);
$calc = (($X & $Z) | ($Y & (~ $Z))); // X AND Z OR Y AND NOT Z
return $calc;
}
private function H($X, $Y, $Z){
$X = hexdec($X);
$Y = hexdec($Y);
$Z = hexdec($Z);
$calc = ($X ^ $Y ^ $Z); // X XOR Y XOR Z
return $calc;
}
private function I($X, $Y, $Z){
$X = hexdec($X);
$Y = hexdec($Y);
$Z = hexdec($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 = hexdec($A);
$t = hexdec($t);
$M = bindec($M);
$A = $this->add($A, $this->F($B, $C, $D), $M, $t) & $this->right32; //decimal
$A = $this->rotate($A, $s);
$A = dechex($this->add(hexdec($B), hexdec($A)) & $this->right32);
}
private function GG(&$A, $B, $C, $D, $M, $s, $t){
$A = hexdec($A);
$t = hexdec($t);
$M = bindec($M);
$A = $this->add($A, $this->G($B, $C, $D), $M, $t) & $this->right32; //decimal
$A = $this->rotate($A, $s);
$A = dechex($this->add(hexdec($B), hexdec($A)) & $this->right32);
}
private function HH(&$A, $B, $C, $D, $M, $s, $t){
$A = hexdec($A);
$t = hexdec($t);
$M = bindec($M);
$A = $this->add($A, $this->H($B, $C, $D), $M, $t) & $this->right32; //decimal
$A = $this->rotate($A, $s);
$A = dechex($this->add(hexdec($B), hexdec($A)) & $this->right32);
}
private function II(&$A, $B, $C, $D, $M, $s, $t){
$A = hexdec($A);
$t = hexdec($t);
$M = bindec($M);
$A = $this->add($A, $this->I($B, $C, $D), $M, $t) & $this->right32; //decimal
$A = $this->rotate($A, $s);
$A = dechex($this->add(hexdec($B), hexdec($A)) & $this->right32);
}
// shift
private function rotate ($decimal, $bits) { //returns hex
return dechex((($decimal << $bits) | ($decimal >> (32 - $bits))) & $this->right32);
}
private function addVars(&$a, &$b, &$c, &$d, $A, $B, $C, $D){
$A = hexdec($A);
$B = hexdec($B);
$C = hexdec($C);
$D = hexdec($D);
$aa = hexdec($a);
$bb = hexdec($b);
$cc = hexdec($c);
$dd = hexdec($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;
}
// shamelessly stolen from http://stackoverflow.com/a/4068918/889949
private function binarySafeAddition($a, $b) {
$carry = $a & $b;
$result = $a ^ $b;
while($carry != 0) {
$shiftedcarry = $carry << 1;
$carry = $result & $shiftedcarry;
$result ^= $shiftedcarry;
}
return $result;
}
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.012 0.004 16.88 8.3.5 0.016 0.005 21.98 8.3.4 0.006 0.009 19.04 8.3.3 0.012 0.003 19.43 8.3.2 0.004 0.004 20.45 8.3.1 0.005 0.003 23.28 8.3.0 0.007 0.003 19.51 8.2.18 0.006 0.009 18.54 8.2.17 0.012 0.012 22.96 8.2.16 0.009 0.006 20.42 8.2.15 0.004 0.004 24.18 8.2.14 0.008 0.000 24.66 8.2.13 0.004 0.004 26.16 8.2.12 0.006 0.003 22.26 8.2.11 0.009 0.000 19.52 8.2.10 0.004 0.008 17.97 8.2.9 0.000 0.009 19.45 8.2.8 0.003 0.009 17.97 8.2.7 0.009 0.000 18.00 8.2.6 0.008 0.000 18.18 8.2.5 0.009 0.000 18.10 8.2.4 0.005 0.003 18.41 8.2.3 0.006 0.003 18.48 8.2.2 0.005 0.003 17.88 8.2.1 0.000 0.008 18.25 8.2.0 0.008 0.005 18.05 8.1.28 0.007 0.007 25.92 8.1.27 0.009 0.000 22.30 8.1.26 0.003 0.005 26.35 8.1.25 0.006 0.003 28.09 8.1.24 0.006 0.003 22.60 8.1.23 0.009 0.006 21.15 8.1.22 0.008 0.000 17.91 8.1.21 0.003 0.006 18.77 8.1.20 0.004 0.004 17.60 8.1.19 0.003 0.006 17.60 8.1.18 0.003 0.006 18.10 8.1.17 0.008 0.004 18.58 8.1.16 0.000 0.010 22.20 8.1.15 0.000 0.008 18.91 8.1.14 0.000 0.008 17.71 8.1.13 0.009 0.000 17.99 8.1.12 0.000 0.007 17.77 8.1.11 0.008 0.000 17.59 8.1.10 0.000 0.008 17.75 8.1.9 0.005 0.003 17.71 8.1.8 0.000 0.007 17.70 8.1.7 0.005 0.003 17.67 8.1.6 0.009 0.000 17.85 8.1.5 0.006 0.003 17.80 8.1.4 0.006 0.003 17.70 8.1.3 0.004 0.004 17.86 8.1.2 0.008 0.000 17.86 8.1.1 0.006 0.003 17.72 8.1.0 0.005 0.003 17.75 8.0.30 0.008 0.000 20.27 8.0.29 0.005 0.003 16.88 8.0.28 0.003 0.005 18.70 8.0.27 0.002 0.005 17.51 8.0.26 0.007 0.000 17.53 8.0.25 0.000 0.007 17.26 8.0.24 0.006 0.003 17.12 8.0.23 0.003 0.005 17.17 8.0.22 0.000 0.008 17.16 8.0.21 0.003 0.005 17.15 8.0.20 0.003 0.003 17.14 8.0.19 0.000 0.009 17.20 8.0.18 0.005 0.003 17.12 8.0.17 0.004 0.004 17.07 8.0.16 0.004 0.004 17.09 8.0.15 0.004 0.004 17.22 8.0.14 0.004 0.004 17.08 8.0.13 0.007 0.000 13.61 8.0.12 0.004 0.004 17.02 8.0.11 0.008 0.000 17.05 8.0.10 0.003 0.006 17.09 8.0.9 0.003 0.006 17.05 8.0.8 0.003 0.013 17.13 8.0.7 0.006 0.003 17.00 8.0.6 0.003 0.005 17.02 8.0.5 0.004 0.004 16.94 8.0.3 0.009 0.011 17.44 8.0.2 0.011 0.009 17.40 8.0.1 0.000 0.009 17.09 8.0.0 0.009 0.010 16.90 7.4.33 0.007 0.000 15.00 7.4.32 0.003 0.003 16.78 7.4.30 0.000 0.007 16.78 7.4.29 0.004 0.004 16.90 7.4.28 0.000 0.008 16.77 7.4.27 0.006 0.003 16.86 7.4.26 0.006 0.003 16.74 7.4.25 0.004 0.004 16.70 7.4.24 0.000 0.007 16.87 7.4.23 0.004 0.004 16.66 7.4.22 0.008 0.012 16.66 7.4.21 0.002 0.014 16.88 7.4.20 0.000 0.007 16.57 7.4.19 0.004 0.004 16.80 7.4.16 0.006 0.012 16.54 7.4.15 0.003 0.017 17.40 7.4.14 0.011 0.008 17.86 7.4.13 0.013 0.005 16.77 7.4.12 0.007 0.010 16.86 7.4.11 0.011 0.007 16.59 7.4.10 0.010 0.010 16.66 7.4.9 0.006 0.013 16.75 7.4.8 0.008 0.012 19.39 7.4.7 0.007 0.011 16.76 7.4.6 0.013 0.005 16.74 7.4.5 0.004 0.004 16.82 7.4.4 0.004 0.009 22.77 7.4.3 0.006 0.012 16.68 7.4.0 0.000 0.018 15.30 7.3.33 0.000 0.006 13.61 7.3.32 0.006 0.003 13.59 7.3.31 0.005 0.003 16.62 7.3.30 0.000 0.008 16.61 7.3.29 0.007 0.014 16.53 7.3.28 0.009 0.010 16.58 7.3.27 0.009 0.010 17.40 7.3.26 0.004 0.015 16.69 7.3.25 0.010 0.009 16.64 7.3.24 0.006 0.012 16.56 7.3.23 0.012 0.006 16.87 7.3.21 0.006 0.012 16.63 7.3.20 0.004 0.020 19.39 7.3.19 0.009 0.013 16.77 7.3.18 0.007 0.010 16.77 7.3.17 0.006 0.012 16.81 7.3.16 0.000 0.016 16.59 7.3.12 0.006 0.009 15.25 7.2.33 0.009 0.009 17.16 7.2.32 0.009 0.009 17.14 7.2.31 0.006 0.013 16.75 7.2.30 0.011 0.007 16.73 7.2.29 0.009 0.009 16.86 7.2.6 0.000 0.015 17.15 7.2.0 0.000 0.018 19.57 7.1.20 0.006 0.009 15.60 7.1.10 0.009 0.006 18.14 7.1.7 0.006 0.012 17.26 7.1.6 0.007 0.013 19.33 7.1.5 0.020 0.016 34.66 7.1.0 0.010 0.073 22.38 7.0.20 0.009 0.006 16.86 7.0.14 0.003 0.073 22.18 7.0.10 0.010 0.077 20.31 7.0.9 0.023 0.063 20.10 7.0.8 0.007 0.040 20.12 7.0.7 0.000 0.040 20.25 7.0.6 0.000 0.043 20.29 7.0.5 0.003 0.063 20.46 7.0.4 0.003 0.063 20.09 7.0.3 0.003 0.043 20.04 7.0.2 0.000 0.050 20.15 7.0.1 0.013 0.057 20.14 7.0.0 0.007 0.040 20.09 5.6.28 0.013 0.067 21.26 5.6.25 0.017 0.077 20.82 5.6.24 0.010 0.080 20.89 5.6.23 0.010 0.083 20.70 5.6.22 0.007 0.040 20.87 5.6.21 0.003 0.050 20.63 5.6.20 0.003 0.063 21.27 5.6.19 0.003 0.047 21.16 5.6.18 0.007 0.040 21.15 5.6.17 0.010 0.047 21.30 5.6.16 0.007 0.040 21.10 5.6.15 0.010 0.040 21.14 5.6.14 0.007 0.040 21.23 5.6.13 0.007 0.040 21.26 5.6.12 0.013 0.043 21.17 5.6.11 0.017 0.043 21.20 5.6.10 0.007 0.083 21.15 5.6.9 0.007 0.063 21.24 5.6.8 0.007 0.033 20.63 5.6.7 0.003 0.047 20.61 5.6.6 0.003 0.047 20.67 5.6.5 0.007 0.037 20.53 5.6.4 0.010 0.067 20.55 5.6.3 0.013 0.033 20.51 5.6.2 0.003 0.047 20.41 5.6.1 0.003 0.037 20.55 5.6.0 0.013 0.070 20.48 5.5.38 0.010 0.083 20.51 5.5.37 0.010 0.043 20.48 5.5.36 0.003 0.047 20.50 5.5.35 0.003 0.047 20.50 5.5.34 0.000 0.047 20.78 5.5.33 0.003 0.043 20.93 5.5.32 0.000 0.043 20.97 5.5.31 0.003 0.043 21.01 5.5.30 0.007 0.040 20.90 5.5.29 0.007 0.040 21.02 5.5.28 0.000 0.047 20.93 5.5.27 0.003 0.043 20.89 5.5.26 0.010 0.057 20.96 5.5.25 0.013 0.030 20.83 5.5.24 0.003 0.040 20.32 5.5.23 0.007 0.037 20.25 5.5.22 0.010 0.030 20.39 5.5.21 0.007 0.070 20.34 5.5.20 0.000 0.040 20.40 5.5.19 0.007 0.057 20.34 5.5.18 0.013 0.073 20.28 5.5.16 0.010 0.077 20.39 5.5.15 0.003 0.050 20.30 5.5.14 0.003 0.050 20.31 5.5.13 0.013 0.043 20.25 5.5.12 0.013 0.073 20.34 5.5.11 0.010 0.043 20.39 5.5.10 0.010 0.080 20.08 5.5.9 0.007 0.060 20.05 5.5.8 0.010 0.067 20.11 5.5.7 0.007 0.047 20.29 5.5.6 0.007 0.070 20.25 5.5.5 0.003 0.083 20.27 5.5.4 0.010 0.067 20.09 5.5.3 0.007 0.037 20.09 5.5.2 0.010 0.073 20.09 5.5.1 0.007 0.073 20.24 5.5.0 0.007 0.077 20.16 5.4.45 0.000 0.043 19.28 5.4.44 0.003 0.040 19.28 5.4.43 0.000 0.047 19.24 5.4.42 0.007 0.077 19.43 5.4.41 0.000 0.043 19.42 5.4.40 0.007 0.037 19.18 5.4.39 0.003 0.040 19.08 5.4.38 0.003 0.043 19.04 5.4.37 0.010 0.067 19.21 5.4.36 0.010 0.043 19.08 5.4.35 0.000 0.043 19.10 5.4.34 0.010 0.070 18.92 5.4.32 0.013 0.050 18.94 5.4.31 0.000 0.077 19.18 5.4.30 0.000 0.083 19.27 5.4.29 0.010 0.077 19.01 5.4.28 0.010 0.053 19.13 5.4.27 0.017 0.063 18.95 5.4.26 0.010 0.073 19.17 5.4.25 0.010 0.060 18.93 5.4.24 0.010 0.063 19.20 5.4.23 0.000 0.073 19.21 5.4.22 0.003 0.073 19.24 5.4.21 0.007 0.073 19.24 5.4.20 0.000 0.077 19.16 5.4.19 0.013 0.067 19.00 5.4.18 0.007 0.050 19.16 5.4.17 0.000 0.043 19.07 5.4.16 0.007 0.077 18.93 5.4.15 0.010 0.070 19.20 5.4.14 0.007 0.070 16.36 5.4.13 0.003 0.073 16.50 5.4.12 0.007 0.073 16.48 5.4.11 0.003 0.077 16.45 5.4.10 0.017 0.067 16.39 5.4.9 0.013 0.070 16.45 5.4.8 0.007 0.057 16.54 5.4.7 0.013 0.067 16.52 5.4.6 0.010 0.070 16.48 5.4.5 0.003 0.043 16.46 5.4.4 0.007 0.077 16.57 5.4.3 0.010 0.070 16.50 5.4.2 0.017 0.063 16.36 5.4.1 0.003 0.077 16.57 5.4.0 0.007 0.047 15.83 5.3.29 0.010 0.057 14.87 5.3.28 0.003 0.040 14.82 5.3.27 0.007 0.040 14.86 5.3.26 0.020 0.070 14.95 5.3.25 0.007 0.080 14.82 5.3.24 0.010 0.070 14.93 5.3.23 0.007 0.077 14.85 5.3.22 0.003 0.047 14.86 5.3.21 0.000 0.077 14.74 5.3.20 0.013 0.073 14.86 5.3.19 0.000 0.067 14.88 5.3.18 0.010 0.077 14.76 5.3.17 0.007 0.070 14.77 5.3.16 0.010 0.073 14.84 5.3.15 0.003 0.063 14.74 5.3.14 0.003 0.073 14.70 5.3.13 0.007 0.077 14.76 5.3.12 0.007 0.080 14.79 5.3.11 0.000 0.077 14.70 5.3.10 0.007 0.077 14.32 5.3.9 0.007 0.073 14.30 5.3.8 0.007 0.073 14.29 5.3.7 0.007 0.067 14.25 5.3.6 0.003 0.077 14.28 5.3.5 0.007 0.073 14.25 5.3.4 0.003 0.057 14.25 5.3.3 0.003 0.047 14.25 5.3.2 0.010 0.057 14.25 5.3.1 0.013 0.063 14.25 5.3.0 0.010 0.070 14.25
preferences:dark mode live preview
41.84 ms | 401 KiB | 5 Q