@ 2013-06-30T19:40:30Z <?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 = ~((~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);
echo $A . "\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);
echo $A . "\n";
}
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);
echo $A . "\n";
}
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);
echo $A . "\n";
}
// 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 = $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;
}
public 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]);
}
// 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;
}
public 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.4 0.010 0.007 19.18 8.3.3 0.014 0.010 19.03 8.3.2 0.006 0.003 19.07 8.3.1 0.006 0.003 20.51 8.3.0 0.005 0.005 19.38 8.2.17 0.008 0.008 22.96 8.2.16 0.013 0.007 18.97 8.2.15 0.006 0.003 24.18 8.2.14 0.005 0.005 24.66 8.2.13 0.008 0.000 26.16 8.2.12 0.006 0.003 18.83 8.2.11 0.004 0.007 21.02 8.2.10 0.006 0.006 17.99 8.2.9 0.000 0.009 19.63 8.2.8 0.003 0.006 19.61 8.2.7 0.000 0.011 17.88 8.2.6 0.005 0.005 18.28 8.2.5 0.006 0.003 18.07 8.2.4 0.003 0.006 18.47 8.2.3 0.000 0.008 18.37 8.2.2 0.003 0.007 18.01 8.2.1 0.006 0.003 18.07 8.2.0 0.003 0.007 17.89 8.1.27 0.004 0.004 23.99 8.1.26 0.004 0.004 26.35 8.1.25 0.006 0.003 28.09 8.1.24 0.007 0.003 22.41 8.1.23 0.009 0.003 21.16 8.1.22 0.003 0.006 18.02 8.1.21 0.007 0.004 19.27 8.1.20 0.010 0.000 17.60 8.1.19 0.003 0.007 17.76 8.1.18 0.000 0.009 18.10 8.1.17 0.006 0.003 19.05 8.1.16 0.000 0.008 19.06 8.1.15 0.000 0.009 18.91 8.1.14 0.003 0.006 17.73 8.1.13 0.006 0.003 18.07 8.1.12 0.005 0.003 17.76 8.1.11 0.003 0.006 17.74 8.1.10 0.005 0.003 17.75 8.1.9 0.000 0.008 17.71 8.1.8 0.005 0.003 17.80 8.1.7 0.000 0.008 17.61 8.1.6 0.009 0.000 17.73 8.1.5 0.004 0.004 17.79 8.1.4 0.006 0.003 17.84 8.1.3 0.006 0.003 17.96 8.1.2 0.003 0.006 17.93 8.1.1 0.009 0.000 17.80 8.1.0 0.000 0.009 17.84 8.0.30 0.000 0.008 20.25 8.0.29 0.000 0.008 17.00 8.0.28 0.000 0.008 18.60 8.0.27 0.000 0.009 17.09 8.0.26 0.007 0.000 17.00 8.0.25 0.000 0.008 17.23 8.0.24 0.006 0.003 17.09 8.0.23 0.000 0.008 17.20 8.0.22 0.004 0.004 17.15 8.0.21 0.004 0.004 17.20 8.0.20 0.000 0.007 17.25 8.0.19 0.003 0.007 17.27 8.0.18 0.003 0.006 17.10 8.0.17 0.007 0.003 17.02 8.0.16 0.003 0.005 17.07 8.0.15 0.000 0.009 17.22 8.0.14 0.000 0.010 17.13 8.0.13 0.000 0.007 13.59 8.0.12 0.009 0.000 17.15 8.0.11 0.003 0.005 17.27 8.0.10 0.000 0.009 17.25 8.0.9 0.000 0.009 17.06 8.0.8 0.009 0.009 17.21 8.0.7 0.005 0.005 17.16 8.0.6 0.003 0.006 17.02 8.0.5 0.000 0.009 16.98 8.0.3 0.015 0.003 17.25 8.0.2 0.015 0.013 17.31 8.0.1 0.003 0.006 17.23 8.0.0 0.006 0.016 17.07 7.4.33 0.003 0.003 13.27 7.4.32 0.007 0.000 16.77 7.4.30 0.003 0.008 16.70 7.4.29 0.000 0.008 16.89 7.4.28 0.003 0.007 16.87 7.4.27 0.000 0.007 16.82 7.4.26 0.000 0.007 13.56 7.4.25 0.003 0.006 16.76 7.4.24 0.009 0.000 16.73 7.4.23 0.005 0.003 16.89 7.4.22 0.010 0.016 16.63 7.4.21 0.010 0.010 16.83 7.4.20 0.000 0.009 16.95 7.4.19 0.005 0.003 17.03 7.4.16 0.010 0.007 16.71 7.4.15 0.016 0.013 16.77 7.4.14 0.014 0.008 16.73 7.4.13 0.007 0.014 16.68 7.4.12 0.012 0.008 16.64 7.4.11 0.006 0.015 16.61 7.4.10 0.007 0.020 16.75 7.4.9 0.009 0.010 16.87 7.4.8 0.011 0.012 19.39 7.4.7 0.003 0.017 16.61 7.4.6 0.006 0.013 16.73 7.4.5 0.006 0.003 16.89 7.4.4 0.003 0.011 16.78 7.4.3 0.015 0.005 16.95 7.4.0 0.000 0.015 15.05 7.3.33 0.004 0.004 13.48 7.3.32 0.000 0.007 13.42 7.3.31 0.000 0.011 16.65 7.3.30 0.000 0.008 16.48 7.3.29 0.009 0.008 16.63 7.3.28 0.011 0.013 16.59 7.3.27 0.009 0.012 16.56 7.3.26 0.009 0.011 16.59 7.3.25 0.015 0.013 16.70 7.3.24 0.015 0.004 16.67 7.3.23 0.006 0.012 16.61 7.3.21 0.017 0.007 16.75 7.3.20 0.004 0.015 16.66 7.3.19 0.010 0.010 16.58 7.3.18 0.010 0.013 16.68 7.3.17 0.007 0.011 16.72 7.3.16 0.009 0.009 16.80 7.3.12 0.004 0.012 15.21 7.3.11 0.006 0.013 15.13 7.3.10 0.007 0.007 14.90 7.3.9 0.010 0.003 15.00 7.3.8 0.000 0.019 15.37 7.3.7 0.012 0.006 15.21 7.3.6 0.006 0.010 14.87 7.3.5 0.007 0.010 14.98 7.3.4 0.009 0.012 14.85 7.3.3 0.000 0.016 15.11 7.3.2 0.003 0.013 16.68 7.3.1 0.007 0.007 16.78 7.3.0 0.006 0.009 16.83 7.2.33 0.009 0.012 16.95 7.2.32 0.007 0.020 17.15 7.2.31 0.006 0.018 16.87 7.2.30 0.007 0.021 16.86 7.2.29 0.007 0.014 16.90 7.2.24 0.002 0.017 15.49 7.2.23 0.008 0.008 15.54 7.2.22 0.007 0.010 15.19 7.2.21 0.011 0.007 15.21 7.2.20 0.003 0.014 15.31 7.2.19 0.003 0.017 15.27 7.2.18 0.013 0.009 15.47 7.2.17 0.004 0.014 15.35 7.2.16 0.010 0.010 15.31 7.2.15 0.015 0.003 16.89 7.2.14 0.006 0.009 16.84 7.2.13 0.013 0.003 16.78 7.2.12 0.003 0.010 17.00 7.2.11 0.009 0.009 17.10 7.2.10 0.003 0.010 16.90 7.2.9 0.003 0.009 16.79 7.2.8 0.007 0.010 17.03 7.2.7 0.006 0.013 16.97 7.2.6 0.007 0.007 17.03 7.2.5 0.003 0.014 16.69 7.2.4 0.006 0.006 16.99 7.2.3 0.000 0.020 16.99 7.2.2 0.003 0.013 16.93 7.2.1 0.010 0.010 17.00 7.2.0 0.007 0.011 17.94 7.1.33 0.004 0.015 15.82 7.1.32 0.000 0.012 15.79 7.1.31 0.009 0.003 15.89 7.1.30 0.004 0.015 15.84 7.1.29 0.008 0.008 15.96 7.1.28 0.000 0.016 15.81 7.1.27 0.010 0.003 15.53 7.1.26 0.006 0.009 15.82 7.1.25 0.000 0.016 15.75 7.1.20 0.000 0.014 15.54 7.1.10 0.004 0.007 18.19 7.1.7 0.006 0.009 16.83 7.1.6 0.014 0.014 19.31 7.1.5 0.007 0.017 16.86 7.1.0 0.003 0.073 22.45 7.0.20 0.034 0.007 15.09 7.0.14 0.007 0.070 21.95 7.0.12 0.003 0.070 22.13 7.0.10 0.007 0.080 20.29 7.0.9 0.007 0.090 20.16 7.0.8 0.007 0.073 20.14 7.0.7 0.013 0.050 20.10 7.0.6 0.013 0.077 20.30 7.0.5 0.003 0.057 20.51 7.0.4 0.013 0.043 20.19 7.0.3 0.003 0.083 20.09 7.0.2 0.010 0.070 20.18 7.0.1 0.003 0.087 20.13 7.0.0 0.007 0.083 20.13 5.6.28 0.007 0.073 20.95 5.6.25 0.020 0.067 20.66 5.6.24 0.010 0.060 20.77 5.6.23 0.007 0.073 20.63 5.6.22 0.017 0.070 20.78 5.6.21 0.017 0.070 20.81 5.6.20 0.007 0.080 21.18 5.6.19 0.020 0.077 21.11 5.6.18 0.010 0.073 21.28 5.6.17 0.007 0.060 21.16 5.6.16 0.010 0.087 21.24 5.6.15 0.013 0.073 21.18 5.6.14 0.007 0.070 21.16 5.6.13 0.010 0.050 21.27 5.6.12 0.007 0.087 21.30 5.6.11 0.020 0.077 21.16 5.6.10 0.007 0.087 21.06 5.6.9 0.007 0.083 21.19 5.6.8 0.010 0.040 20.55 5.6.7 0.010 0.077 20.63 5.6.6 0.003 0.080 20.69 5.6.5 0.007 0.087 20.57 5.6.4 0.010 0.080 20.54 5.6.3 0.010 0.083 20.52 5.6.2 0.010 0.077 20.55 5.6.1 0.017 0.063 20.43 5.6.0 0.010 0.083 20.52 5.5.38 0.023 0.067 20.53 5.5.37 0.013 0.060 20.70 5.5.36 0.003 0.087 20.57 5.5.35 0.007 0.077 20.52 5.5.34 0.007 0.057 21.01 5.5.33 0.007 0.093 21.03 5.5.32 0.010 0.077 20.96 5.5.31 0.010 0.040 21.06 5.5.30 0.017 0.073 20.91 5.5.29 0.007 0.040 20.96 5.5.28 0.007 0.087 20.87 5.5.27 0.007 0.093 21.02 5.5.26 0.007 0.050 20.87 5.5.25 0.017 0.073 20.83 5.5.24 0.010 0.077 20.45 5.5.23 0.000 0.093 20.36 5.5.22 0.007 0.077 20.43 5.5.21 0.000 0.093 20.39 5.5.20 0.007 0.080 20.38 5.5.19 0.010 0.070 20.36 5.5.18 0.007 0.043 20.35 5.5.16 0.017 0.073 20.44 5.5.15 0.013 0.073 20.37 5.5.14 0.003 0.070 20.10 5.5.13 0.013 0.050 20.32 5.5.12 0.007 0.080 20.11 5.5.11 0.013 0.073 20.26 5.5.10 0.013 0.047 20.16 5.5.9 0.007 0.077 20.07 5.5.8 0.003 0.083 20.21 5.5.7 0.010 0.077 20.23 5.5.6 0.007 0.073 20.07 5.5.5 0.003 0.077 20.24 5.5.4 0.007 0.083 20.29 5.5.3 0.007 0.073 20.07 5.5.2 0.010 0.080 20.17 5.5.1 0.003 0.080 20.18 5.5.0 0.027 0.067 20.27 5.4.45 0.013 0.080 19.61 5.4.44 0.003 0.063 19.50 5.4.43 0.007 0.077 19.43 5.4.42 0.003 0.077 19.42 5.4.41 0.010 0.077 19.48 5.4.40 0.010 0.080 19.24 5.4.39 0.023 0.050 18.92 5.4.38 0.017 0.037 19.19 5.4.37 0.000 0.083 19.02 5.4.36 0.007 0.077 19.14 5.4.35 0.010 0.073 19.09 5.4.34 0.010 0.077 19.09 5.4.32 0.017 0.063 18.93 5.4.31 0.007 0.070 19.10 5.4.30 0.010 0.080 19.05 5.4.29 0.010 0.077 19.02 5.4.28 0.010 0.077 19.11 5.4.27 0.013 0.070 19.07 5.4.26 0.003 0.070 19.23 5.4.25 0.007 0.070 19.18 5.4.24 0.010 0.077 19.17 5.4.23 0.010 0.077 19.23 5.4.22 0.007 0.073 19.09 5.4.21 0.013 0.073 19.25 5.4.20 0.007 0.060 19.15 5.4.19 0.003 0.043 19.09 5.4.18 0.017 0.067 19.22 5.4.17 0.003 0.083 18.95 5.4.16 0.013 0.073 19.11 5.4.15 0.007 0.077 19.09 5.4.14 0.013 0.063 16.50 5.4.13 0.007 0.050 16.50 5.4.12 0.017 0.063 16.61 5.4.11 0.000 0.060 16.47 5.4.10 0.017 0.070 16.45 5.4.9 0.020 0.060 16.50 5.4.8 0.007 0.080 16.43 5.4.7 0.017 0.053 16.48 5.4.6 0.017 0.067 16.34 5.4.5 0.007 0.073 16.56 5.4.4 0.003 0.080 16.44 5.4.3 0.007 0.070 16.41 5.4.2 0.007 0.077 16.47 5.4.1 0.007 0.047 16.59 5.4.0 0.003 0.070 15.75 5.3.29 0.007 0.040 14.97 5.3.28 0.013 0.070 14.97 5.3.27 0.003 0.077 14.88 5.3.26 0.000 0.090 14.83 5.3.25 0.017 0.067 14.79 5.3.24 0.010 0.063 14.87 5.3.23 0.010 0.073 14.87 5.3.22 0.013 0.063 14.79 5.3.21 0.010 0.070 14.78 5.3.20 0.003 0.087 14.88 5.3.19 0.003 0.047 14.87 5.3.18 0.017 0.067 14.87 5.3.17 0.007 0.070 14.92 5.3.16 0.000 0.073 14.82 5.3.15 0.003 0.080 14.73 5.3.14 0.007 0.073 14.80 5.3.13 0.013 0.067 14.80 5.3.12 0.003 0.080 14.92 5.3.11 0.007 0.077 14.80 5.3.10 0.003 0.083 14.25 5.3.9 0.020 0.037 14.38 5.3.8 0.010 0.073 14.14 5.3.7 0.007 0.063 14.31 5.3.6 0.003 0.073 14.30 5.3.5 0.003 0.063 14.28 5.3.4 0.023 0.067 14.25 5.3.3 0.007 0.077 14.13 5.3.2 0.000 0.083 14.02 5.3.1 0.000 0.060 13.95 5.3.0 0.010 0.070 13.86
preferences:dark mode live preview
54.74 ms | 400 KiB | 5 Q