3v4l.org

run code in 300+ PHP versions simultaneously
<?php class E_View_Helper { private $form_array_source = array(); /** * Standard contructor * * @param array $a_form_array_source * - controls container, must look like: * $form['form_name1']['label'] * $form['form_name1']['form'] * $form['form_name_2']['label'] * ... */ public function __construct(&$a_form_array_source) { if( !is_array($a_form_array_source) ) return FALSE; $this->form_array_source = &$a_form_array_source; } /** * Prints formatted input for datepicker with labels * * @param string $a_form_name * - name of input * @param string $a_align * - input alignment: right, left or center */ public function input_date_form($a_form_name, $a_align = FALSE) { if( isset($this->form_array_source[$a_form_name]['form']) ) { switch( $a_align ) { case 'right': case 'center': case 'left': $a_align = 'text-' . strtolower($a_align); break; default : $a_align = ''; } ?> <label for="<?php print $a_form_name; ?>" class="<?php print $a_align; ?>"> <?php print $this->form_array_source[$a_form_name]['label'];?> <?php print $this->form_array_source[$a_form_name]['form']; ?> </label> <?php } } /** * Prints formatted group of date range inputs ("from" and "to") * * @param string $a_form_title * - title (label) above all inputs * @param string $a_from_form_name * - "from" input name * @param string $a_to_form_name * - "to" input name */ public function date_range_group($a_form_title, $a_from_form_name, $a_to_form_name) { if( isset($this->form_array_source[$a_from_form_name]['form']) or isset($this->form_array_source[$a_to_form_name]['form']) ) { ?> <div class="datepicker_container"> <?php if ($a_form_title AND isset($this->form_array_source[$a_form_title]['title'])) { ?> <label><?php print $this->form_array_source[$a_form_title]['title'];?></label> <?php } else { ?> <label>&nbsp;</label> <?php } ?> <?php print $this->input_date_form($a_from_form_name, 'right'); ?> <?php print $this->input_date_form($a_to_form_name, 'right'); ?> </div> <?php } } /** * Prints standard input form * * @param string $a_form_name * - name of input * @param string $a_label_class * - CSS class of label above input */ public function input_form($a_form_name, $a_label_class = '') { if( isset($this->form_array_source[$a_form_name]['form']) ) { $mandatory = isset($this->form_array_source[$a_form_name]['label']['mandatory']) ? ' <span class="mandatory">&lowast;</span>' : ''; ?> <label class="<?php print $a_label_class?>" for="<?php print $a_form_name; ?>"> <?php print empty($this->form_array_source[$a_form_name]['label']) ? '&nbsp;' : $this->form_array_source[$a_form_name]['label'].$mandatory;?> </label> <?php print $this->form_array_source[$a_form_name]['form']; ?> <?php } } /** * Prints inline input like checkbox/radio * * @param string $a_form_name * - name of input * @param string $a_label_class * - CSS class of label above input */ public function input_inline($a_form_name, $label_class = 'radio') { if( isset($this->form_array_source[$a_form_name]['form']) ) { $mandatory = isset($this->form_array_source[$a_form_name]['label']['mandatory']) ? ' <span class="mandatory">&lowast;</span>' : ''; ?> <label class="<?php print $label_class?>" for="<?php print $a_form_name; ?>"> <?php print $this->form_array_source[$a_form_name]['form']; ?> <?php print empty($this->form_array_source[$a_form_name]['label']) ? '&nbsp;' : $this->form_array_source[$a_form_name]['label'].$mandatory;?> </label> <?php } } } /** * Provides unified display of index pages. * Base abstract class, to be inherited * * * @author Michal K. * */ abstract class Index_View_Helper extends Printable_Section { // optional custom table printer public $table_printer = NULL; // optional custom search box printer public $search_box_printer = NULL; // optional flags public $is_add_button_printed = true; public $is_message_printed = true; public $is_flash_message_printed = true; public $is_pagination_printed = true; /** * * @param array $data_array * - data array with standard variables: title, $flash_status, $flash etc * @param string $form_array_source * array with inputs for search box * @param string $table_array_source * array with elements for index table */ public function __construct(array $data_array) { // data for access inside functions parent::__construct($data_array); $this->search = $this->data['search']; } public function render_all() { $this->print_all(); } public function print_page_header() { if( isset($this->data['title']) ) { print '<div class="page-header"><h2>' . $this->data['title'] . '</h2></div>'; } } protected function print_message() { if( $this->is_message_printed ) print '<div id="message"></div>'; } protected function print_flash_message() { if( $this->is_flash_message_printed ) { if( isset($this->data->flash) and $this->data->flash ) { print '<input type="hidden" name="' . ( isset($this->data->flash_status) ? $this->data->flash_status : '' ) . '" id="flash" value="' . $this->data->flash . '" /> '; } } } public function print_search_form() { if( $this->search_box_printer != NULL ) { $this->search_box_printer->print_all(); } else { $this->search_box_printer = new Standard_Search_Form_Printer($this->data); $this->search_box_printer->print_all(); } } public function print_pagination() { if( $this->is_pagination_printed ) { print '<div class="row">' . ( $this->is_add_button_printed ? $this->data['add'] : '' ); print '<div class="total_records span">' . $this->lang->txt('total') . ' ' . $this->data['pagination_config']['total_rows'] . '</div>'; print '<div class="records_per_page pull-right">' . $this->data['limit'] . '</div>'; print '<div class="pull-right pagination_numbers">' . $this->data['pagination'] . '</div>'; print '</div>'; } } public function print_index_table() { if( $this->table_printer != NULL ) { $this->table_printer->print_all(); } else { $this->table_printer = new Standard_Table_Printer($this->data); $this->table_printer->print_all(); } } protected function print_information() { } } abstract class HTMlElement { public $css = 0, $name = 0, $id = 0; protected $tag; public function __construct($tag) { $this->tag = $tag; } public function begin() { $attrs = $this->_attrs(); if( $attrs != '' ) { print "<$this->tag $attrs >"; } else { print "<$this->tag>"; } } public function end() { print "</$this->tag>"; } public abstract function print_all(); protected function _attrs() { $attrs = ''; if( $this->name ) $attrs .= 'name="' . $this->name . '" '; if( $this->id ) $attrs .= 'id="' . $this->id . '" '; if( $this->css ) $attrs .= 'class="' . $this->css . '" '; return $attrs; } } abstract class Printable_Section extends HTMlElement { // helper variables protected $data = array(); protected $lang = false; protected $parent = false; public function __construct(array $data, $tag = 'div') { parent::__construct($tag); $this->data = $data; $this->parent = &get_instance(); $this->lang = $this->parent->lang; } public function print_all() { $this->before_content(); $this->begin(); $this->print_section_content(); $this->end(); $this->after_content(); } public abstract function print_section_content(); protected function before_content() { } protected function after_content() { } } class Standard_Table_Printer extends Printable_Section { // indexes of columns to be printed. empty = all // must be in correct format public $table_headers = array(); // optional flags public $is_num_printed = true; // helper variables protected $table = array(); public function __construct(array $data) { parent::__construct($data, 'table'); $this->table = $data['table']; $this->id = "records"; $this->css = "table table-striped table-hover"; } public function print_section_content() { if( count($this->table['elements']) > 0 ) { if( !empty($this->table_headers) ) { $this->table['headers'] = $this->table_headers; } $this->print_table_head(); $this->print_table_body(); } else { print '<div class="alert alert-error no_records">' . $this->lang->txt('no_records') . '</div>'; } } protected function print_table_head() { print '<thead>'; $this->print_table_headers(); print '</thead>'; } protected function print_table_headers() { print '<tr class="headers">'; if( $this->is_num_printed ) { print '<th class="header_nr">' . $this->lang->txt('nr') . '</th>'; } foreach( $this->table['headers'] as $header => $value ) { if( $value ) { $selected = $sortby = ''; $selected = ( $this->table['sorting']['sort'] == $header and $sortby = $this->table['sorting']['by'] ) ? 'selected' : ''; // print '<th class="header_'.$header.' '.$selected.'"><a onClick="javascript:sortby(\''.$header.'\')">'.$value.'</a> '.$sortby.'</th>'; print '<th class="header_' . $header . ' ' . $selected . ' "><a rel="' . $header . '" class="' . $selected . ' ' . $sortby . '">' . ( $value === 1 ? $this->lang->txt($header) : $value ) . '</a></th>'; } else print '<th class="header_' . $header . '">' . $this->lang->txt($header) . '</th>'; } print '</tr>'; } protected function print_table_body() { print '<tbody>'; $this->print_table_rows(); print '</tbody>'; } protected function print_table_rows() { $nr = $this->data['pagination_config']['cur_page'] + 1; foreach( $this->table['elements'] as $element ) { $this->print_formatted_row($element, $nr); $nr++; } } protected function print_formatted_row($element, $nr) { print '<tr>'; if( $this->is_num_printed ) { print '<td class="header_nr">' . $nr . '</td>'; } foreach( $this->table['headers'] as $header => $value ) { $element_value = ''; if( isset($element->$header) ) $element_value = $element->$header; if( $header == 'datecreated' or $header == 'dateupdated' ) $element_value = ( $element_value != 0 and $element_value != 1 ) ? format_date_local($element_value) : ''; else $element_value = ( in_array($element_value, array( '0', '1' )) ) ? $this->lang->txt(set_yesno($element_value)) : $element_value; $element_value = ( $element_value ) ? $element_value : '-'; if( $header == 'options' and isset($this->table['options']['links']) and is_array($this->table['options']['links']) ) { $links = array(); foreach( $this->table['options']['links'] as $key => $val ) { $links[$key] = $val . $element->rid; } $element_value = $this->generate_buttons($links, $this->table['options']['translations']); } $selected = ''; $selected = ( $this->table['sorting']['sort'] == $header ) ? 'td_selected' : ''; print '<td class="element_' . $header . ' ' . $selected . '">' . $element_value . '</td>'; } print '</tr>'; } protected function generate_buttons($links, $translations) { return set_options($links, $translations); } } class Standard_Search_Form_Printer extends Printable_Section { // helper variables protected $search = false; public function __construct(array $data) { parent::__construct($data, 'div'); $this->search = $data['search']; $this->id = ""; $this->css = "search well"; } public function print_section_content() { print '<div class="search_options_block row">'; // form start print $this->data['search']['open']; print '<fieldset>'; $this->print_search_fields(); print '</fieldset>'; // form end print $this->data['search']['close']; print '</div>'; } protected function print_search_fields() { print $this->search['hidden']; if( $this->search['options'] ) print '<div class="search_button span"><label>&nbsp;</label>' . $this->search['options'] . '</div>'; print '<div class="control-group span">'; foreach( $this->search['elements'] as $key => $element ) { if( isset($element['form']) ) { $mandatory = isset($element['label']['mandatory']) ? '<span class="mandatory">*</span>' : ''; print '<div class="span controls"><label class="control-label" for="' . $key . '">' . $element['label'] . '</label>' . $element['form'] . '</div>'; } } print '</div>'; } } // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** * Provides unified display of index pages. * How to use: * * $index = new Standard_Index_Page($this->data); * $index->render_all(); * * to customize extend this class and overwrite necessary methods. For example: * * class User_Index_Page extends Standard_Index_Page { * * protected function generate_buttons($links, $translations) * { * return button_dropdown($links, $translations, 'Action'); * } * * } * or add new functionality here. * * $index = new User_Index_Page($this->data); * $index->render_all(); * * @author Michal K. * */ class Standard_Index_Page extends Index_View_Helper { public function print_section_content() { // title / header $this->print_page_header(); // page body start print '<div class="page_body">'; // message container for javascript $this->print_message(); // flash message $this->print_flash_message(); // print search form, inputs, buttons $this->print_search_form(); print '<form id="sorting_form" action="' . current_url() . '" method="post">'; print '<input type="hidden" name="sorting" id="sorting" value="" />'; // print pagination and/or add button $this->print_pagination(); // print table with selected columns. no select = all columns $this->print_index_table(); print '</form>'; // page body end print '</div>'; $this->print_information(); } }

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).

VersionSystem time (s)User time (s)Memory (MiB)
8.3.60.0120.00916.75
8.3.50.0110.01216.61
8.3.40.0070.01018.85
8.3.30.0190.00318.71
8.3.20.0160.00318.59
8.3.10.0050.00320.29
8.3.00.0050.00517.22
8.2.180.0190.00318.18
8.2.170.0120.00322.96
8.2.160.0040.01120.92
8.2.150.0030.00624.18
8.2.140.0030.00524.66
8.2.130.0040.00426.16
8.2.120.0070.01119.85
8.2.110.0030.00621.11
8.2.100.0090.00317.91
8.2.90.0060.00319.36
8.2.80.0110.00018.03
8.2.70.0000.00917.50
8.2.60.0030.00618.16
8.2.50.0030.00518.07
8.2.40.0000.00818.34
8.2.30.0080.00018.14
8.2.20.0000.00917.70
8.2.10.0030.00517.80
8.2.00.0030.00517.86
8.1.280.0080.00825.92
8.1.270.0030.00524.66
8.1.260.0000.00826.35
8.1.250.0060.00328.09
8.1.240.0100.00320.70
8.1.230.0070.00421.10
8.1.220.0050.00317.77
8.1.210.0040.00419.16
8.1.200.0030.00617.48
8.1.190.0080.00017.78
8.1.180.0070.00318.10
8.1.170.0050.00319.05
8.1.160.0000.00918.91
8.1.150.0040.00418.76
8.1.140.0000.01217.48
8.1.130.0040.00418.05
8.1.120.0000.00817.59
8.1.110.0080.00017.48
8.1.100.0000.00717.50
8.1.90.0040.00417.47
8.1.80.0040.00417.51
8.1.70.0000.00717.60
8.1.60.0080.00017.64
8.1.50.0030.00517.57
8.1.40.0040.00417.67
8.1.30.0030.00617.71
8.1.20.0080.00417.70
8.1.10.0000.00817.50
8.1.00.0000.00817.48
8.0.300.0030.00520.19
8.0.290.0000.00817.00
8.0.280.0000.00818.63
8.0.270.0040.00417.38
8.0.260.0000.00716.94
8.0.250.0040.00417.11
8.0.240.0040.00417.10
8.0.230.0000.00817.05
8.0.220.0040.00416.98
8.0.210.0000.00717.01
8.0.200.0080.00416.97
8.0.190.0040.00417.07
8.0.180.0000.00816.93
8.0.170.0030.00617.07
8.0.160.0050.00217.02
8.0.150.0040.00417.07
8.0.140.0040.00716.96
8.0.130.0030.00313.49
8.0.120.0040.00416.91
8.0.110.0030.00516.83
8.0.100.0030.00517.05
8.0.90.0040.00417.08
8.0.80.0140.00316.97
8.0.70.0030.00516.99
8.0.60.0030.00516.91
8.0.50.0040.00417.02
8.0.30.0090.01117.20
8.0.20.0150.00517.24
8.0.10.0030.00516.91
8.0.00.0100.01316.92
7.4.330.0030.00313.04
7.4.320.0000.00616.64
7.4.300.0070.00016.65
7.4.290.0000.00816.55
7.4.280.0060.00316.73
7.4.270.0040.00416.64
7.4.260.0030.00313.46
7.4.250.0030.00616.76
7.4.240.0050.00316.62
7.4.230.0000.00816.54
7.4.220.0060.01316.58
7.4.210.0060.01016.77
7.4.200.0020.00516.68
7.4.190.0000.00816.78
7.4.160.0160.00316.46
7.4.150.0060.01316.57
7.4.140.0110.01116.60
7.4.130.0080.01216.73
7.4.120.0070.01216.57
7.4.110.0130.00516.57
7.4.100.0170.00016.43
7.4.90.0160.00316.57
7.4.80.0120.00616.57
7.4.70.0050.01116.43
7.4.60.0050.01316.64
7.4.50.0040.00416.50
7.4.40.0120.00316.64
7.4.30.0090.00916.52
7.4.10.0060.01015.21
7.4.00.0070.00915.05
7.3.330.0000.00713.21
7.3.320.0000.00613.31
7.3.310.0030.00516.24
7.3.300.0040.00416.29
7.3.290.0080.01016.48
7.3.280.0070.00916.40
7.3.270.0140.01016.55
7.3.260.0150.00516.38
7.3.250.0080.01216.66
7.3.240.0070.01116.43
7.3.230.0100.01016.41
7.3.210.0110.00816.40
7.3.200.0070.01319.39
7.3.190.0070.01416.43
7.3.180.0100.00616.43
7.3.170.0080.01016.45
7.3.160.0070.01016.53
7.3.130.0080.01115.15
7.3.120.0050.01314.84
7.3.110.0020.01814.73
7.3.100.0050.01015.01
7.3.90.0070.01215.11
7.3.80.0050.00814.84
7.3.70.0040.00914.88
7.3.60.0020.00914.79
7.3.50.0050.00614.87
7.3.40.0060.00814.95
7.3.30.0080.00814.91
7.3.20.0030.01016.60
7.3.10.0040.01116.20
7.3.00.0060.00816.36
7.2.330.0070.01116.74
7.2.320.0150.00316.43
7.2.310.0190.00616.58
7.2.300.0130.01016.46
7.2.290.0130.00516.48
7.2.260.0070.01414.98
7.2.250.0080.01115.00
7.2.240.0090.00715.09
7.2.230.0030.01515.18
7.2.220.0130.00614.96
7.2.210.0040.00815.15
7.2.200.0080.00414.91
7.2.190.0060.00614.78
7.2.180.0060.00814.89
7.2.170.0030.00614.95
7.2.160.0050.00915.08
7.2.150.0050.01116.83
7.2.140.0050.00516.60
7.2.130.0090.00716.71
7.2.120.0080.00916.51
7.2.110.0080.00516.50
7.2.100.0090.00516.54
7.2.90.0070.01116.63
7.2.80.0060.00916.59
7.2.70.0090.00816.65
7.2.60.0140.00516.57
7.2.50.0100.00916.73
7.2.40.0080.00916.80
7.2.30.0060.01116.38
7.2.20.0050.01216.63
7.2.10.0080.00916.63
7.2.00.0070.01117.29
7.1.330.0050.00915.69
7.1.320.0050.01315.69
7.1.310.0080.00615.76
7.1.300.0060.00815.64
7.1.290.0040.00915.69
7.1.280.0030.00815.46
7.1.270.0020.01015.75
7.1.260.0030.00815.67
7.1.250.0040.01115.44
7.1.240.0020.01315.65
7.1.230.0040.01015.31
7.1.220.0020.01015.43
7.1.210.0030.01215.62
7.1.200.0030.00915.72
7.1.190.0070.00415.71
7.1.180.0050.00915.60
7.1.170.0050.01215.78
7.1.160.0050.00815.51
7.1.150.0080.00615.71
7.1.140.0050.00915.56
7.1.130.0110.00215.61
7.1.120.0070.00615.72
7.1.110.0080.00715.79
7.1.100.0040.00716.27
7.1.90.0080.00615.82
7.1.80.0050.00915.83
7.1.70.0050.00616.08
7.1.60.0050.01116.97
7.1.50.0080.00921.73
7.1.40.0050.01015.47
7.1.30.0020.01215.70
7.1.20.0030.01315.61
7.1.10.0050.01015.78
7.1.00.0050.02817.84
7.0.330.0040.00915.24
7.0.320.0040.01015.19
7.0.310.0110.00015.28
7.0.300.0030.01015.23
7.0.290.0040.00815.13
7.0.280.0100.00415.24
7.0.270.0040.00715.15
7.0.260.0050.01115.32
7.0.250.0070.00815.30
7.0.240.0030.01015.38
7.0.230.0020.01415.32
7.0.220.0040.00615.23
7.0.210.0080.00415.41
7.0.200.0050.00515.80
7.0.190.0040.00715.21
7.0.180.0030.01015.34
7.0.170.0100.00315.44
7.0.160.0060.00715.28
7.0.150.0070.00915.25
7.0.140.0050.02917.51
7.0.130.0070.00615.21
7.0.120.0050.03217.53
7.0.110.0070.00515.29
7.0.100.0200.02916.90
7.0.90.0130.02916.82
7.0.80.0140.03416.84
7.0.70.0130.03416.82
7.0.60.0160.02916.93
7.0.50.0210.03217.08
7.0.40.0110.02515.66
7.0.30.0040.03615.56
7.0.20.0090.03215.65
7.0.10.0050.03515.62
7.0.00.0080.03115.51
5.6.400.0070.00614.11
5.6.390.0000.01314.37
5.6.380.0060.01014.17
5.6.370.0060.00914.30
5.6.360.0100.00514.39
5.6.350.0100.00514.32
5.6.340.0060.00814.11
5.6.330.0040.01114.37
5.6.320.0030.01414.32
5.6.310.0070.00614.32
5.6.300.0050.00414.27
5.6.290.0130.00314.34
5.6.280.0050.02016.67
5.6.270.0040.01014.32
5.6.260.0090.00514.22
5.6.250.0070.03216.29
5.6.240.0080.01916.47
5.6.230.0050.02916.31
5.6.220.0030.02916.36
5.6.210.0040.02216.38
5.6.200.0070.03216.61
5.6.190.0030.03316.66
5.6.180.0060.03216.47
5.6.170.0100.02916.65
5.6.160.0050.03416.54
5.6.150.0050.03416.64
5.6.140.0080.03316.59
5.6.130.0090.03116.59
5.6.120.0080.03016.63
5.6.110.0020.03216.58
5.6.100.0100.03116.61
5.6.90.0080.03416.51
5.6.80.0070.02316.31
5.6.70.0030.03216.29
5.6.60.0080.01816.16
5.6.50.0030.03616.50
5.6.40.0020.03116.25
5.6.30.0110.02716.13
5.6.20.0130.02616.44
5.6.10.0070.02016.26
5.6.00.0100.03016.24
5.5.380.0020.02916.33
5.5.370.0040.02916.31
5.5.360.0100.02616.08
5.5.350.0050.03616.19
5.5.340.0060.02716.33
5.5.330.0100.02816.44
5.5.320.0070.02616.47
5.5.310.0070.03216.40
5.5.300.0060.03316.52
5.5.290.0040.03516.50
5.5.280.0090.03216.42
5.5.270.0070.02216.48
5.5.260.0050.03716.33
5.5.250.0060.02516.44
5.5.240.0070.03316.11
5.5.230.0040.03616.02
5.5.220.0030.03516.01
5.5.210.0060.03016.28
5.5.200.0090.03016.25
5.5.190.0050.03116.20
5.5.180.0060.03416.20
5.5.170.0080.00614.17
5.5.160.0050.03216.15
5.5.150.0080.03316.03
5.5.140.0080.03216.11
5.5.130.0040.02916.11
5.5.120.0070.02416.20
5.5.110.0110.03116.23
5.5.100.0100.02916.10
5.5.90.0110.02616.26
5.5.80.0100.03016.01
5.5.70.0060.03416.19
5.5.60.0090.03216.00
5.5.50.0120.03016.10
5.5.40.0100.03116.16
5.5.30.0080.02816.08
5.5.20.0080.02916.12
5.5.10.0100.02316.06
5.5.00.0080.03016.08
5.4.450.0010.02414.80
5.4.440.0030.03214.77
5.4.430.0060.03114.72
5.4.420.0070.02014.79
5.4.410.0050.03414.74
5.4.400.0080.01814.69
5.4.390.0080.01914.60
5.4.380.0070.02514.65
5.4.370.0070.02814.66
5.4.360.0080.02714.63
5.4.350.0080.01714.66
5.4.340.0040.02014.62
5.4.330.0070.00512.45
5.4.320.0050.03014.68
5.4.310.0020.03514.60
5.4.300.0060.02514.71
5.4.290.0040.02914.69
5.4.280.0040.03214.61
5.4.270.0080.02514.61
5.4.260.0080.02414.67
5.4.250.0030.02314.69
5.4.240.0110.02314.61
5.4.230.0090.03114.67
5.4.220.0090.02514.68
5.4.210.0080.03114.66
5.4.200.0050.02814.67
5.4.190.0040.02714.66
5.4.180.0030.03414.68
5.4.170.0040.02714.68
5.4.160.0010.03314.61
5.4.150.0040.02114.66
5.4.140.0080.02813.77
5.4.130.0060.01913.77
5.4.120.0060.02713.74
5.4.110.0070.02413.79
5.4.100.0040.03213.77
5.4.90.0060.02913.81
5.4.80.0060.01913.81
5.4.70.0060.03013.77
5.4.60.0060.02713.77
5.4.50.0040.03113.82
5.4.40.0040.01813.76
5.4.30.0090.02913.77
5.4.20.0040.02913.80
5.4.10.0070.01813.76
5.4.00.0080.02113.61
5.3.290.0060.03213.22
5.3.280.0080.03013.20
5.3.270.0060.02913.24
5.3.260.0030.03513.24
5.3.250.0030.02513.21
5.3.240.0060.03413.22
5.3.230.0030.03313.21
5.3.220.0040.03213.23
5.3.210.0030.02913.22
5.3.200.0080.02513.21
5.3.190.0070.02813.25
5.3.180.0070.02913.24
5.3.170.0060.02613.22
5.3.160.0050.01713.21
5.3.150.0040.03013.20
5.3.140.0080.02413.24
5.3.130.0060.02313.19
5.3.120.0030.03013.20
5.3.110.0020.02413.21
5.3.100.0050.03013.01
5.3.90.0040.02613.04
5.3.80.0070.03012.99
5.3.70.0050.03013.02
5.3.60.0090.02813.02
5.3.50.0020.02112.98
5.3.40.0040.02213.00
5.3.30.0010.02313.02
5.3.20.0050.01912.92
5.3.10.0050.03112.94
5.3.00.0060.03112.86

preferences:
48.42 ms | 401 KiB | 5 Q