Compare commits

..

1 Commits

Author SHA1 Message Date
fa8a702a67 commit version 23.9.13005 2023-11-29 23:53:32 -05:00
3952 changed files with 561199 additions and 2270653 deletions

View File

@ -1 +1 @@
Observium CE 24.12
Observium CE 23.9

View File

@ -5,17 +5,20 @@
*
* This file is part of Observium.
*
* @package observium
* @subpackage cli
* @copyright (C) Adam Armstrong
* @package observium
* @subpackage cli
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/
/// FIXME. This is mostly DERP arguments parsing
/// FIXME. This is mostly DERP arguments parsing, new cmd will be soon
chdir(dirname($argv[0]));
$options = getopt("dhpt", [], $opt_index);
$options = getopt("dhpt");
if (isset($options['d'])) {
array_shift($argv);
}
include("includes/observium.inc.php");
include("includes/discovery/functions.inc.php");
@ -32,32 +35,33 @@ if (isset($options['h'])) {
}
$snmp_options = [];
// Just test, do not add a device
// Just test, do not add device
if (isset($options['t'])) {
$snmp_options['test'] = TRUE;
array_shift($argv);
}
// Add skip pingable checks if argument -p passed
if (isset($options['p'])) {
$snmp_options['ping_skip'] = 1;
array_shift($argv);
}
// Remove options and script name from argv
$argv = array_slice($argv, $opt_index);
$added = 0;
$add_array = [];
if (!empty($argv[0])) {
if (is_file($argv[0])) {
// Parse file into an array with devices to add
foreach (new SplFileObject($argv[0]) as $line) {
$added = 0;
if (!empty($argv[1])) {
$add_array = [];
if (is_file($argv[1])) {
// Parse file into array with devices to add
foreach (new SplFileObject($argv[1]) as $line) {
$d = preg_split('/\s/', $line, -1, PREG_SPLIT_NO_EMPTY);
if (empty($d) || str_starts_with($d[0], '#')) {
// Skip empty lines or commented
if (empty($d) || strpos(reset($d), '#') === 0) {
continue;
}
$add_array[] = $d;
}
} else {
$add_array[] = $argv;
$add_array[0] = $argv;
array_shift($add_array[0]);
}
// Save base SNMP v3 credentials and v2c/v1 community
@ -65,40 +69,156 @@ if (!empty($argv[0])) {
$snmp_config_community = $config['snmp']['community'];
foreach ($add_array as $add) {
$snmp = get_device_snmp_argv($add, $snmp_options);
if (!$snmp) {
//print_error("Try to add $hostname:");
continue;
}
$hostname = $snmp['hostname'];
$snmp_version = $snmp['snmp_version'];
$snmp_transport = $snmp['snmp_transport'];
$snmp_port = $snmp['snmp_port'];
$hostname = strtolower($add[0]);
$snmp_community = $add[1];
$snmp_version = strtolower($add[2]);
$snmp_port = 161;
if (str_contains($hostname, ':') && get_ip_version($hostname) !== 6) {
// Allow pass common hostname:port
[$host_tmp, $port_tmp] = explode(':', $hostname, 2);
if (is_valid_param($port_tmp, 'port')) {
$hostname = $host_tmp;
$snmp_port = $port_tmp;
}
unset($host_tmp, $port_tmp);
}
$snmp_transport = 'udp';
// FIXME. Still used hard set v2c/v3 auth by config
if ($snmp_version === "v3") {
// v3
$config['snmp']['v3'] = $snmp['snmp_v3_auth'];
} elseif (!empty($snmp_version)) {
$config['snmp']['v3'] = $snmp_config_v3; // Restore base SNMP v3 credentials
$snmp_v3_seclevel = $snmp_community;
// These values are the same as in defaults.inc.php
$snmp_v3_auth = [
'authlevel' => "noAuthNoPriv",
'authname' => "observium",
'authpass' => "",
'authalgo' => "MD5",
'cryptopass' => "",
'cryptoalgo' => "AES"
];
$add_context = FALSE; // Derp, last arg after transport is context
if ($snmp_v3_seclevel === "nanp" || $snmp_v3_seclevel === "any" || $snmp_v3_seclevel === "noAuthNoPriv") {
$snmp_v3_auth['authlevel'] = "noAuthNoPriv";
$snmp_v3_args = array_slice($add, 3);
while ($arg = array_shift($snmp_v3_args)) {
// parse all remaining args
if (is_valid_param($arg, 'port')) {
$snmp_port = $arg;
} elseif (preg_match('/^(' . implode("|", $config['snmp']['transports']) . ')$/', $arg)) {
$snmp_transport = $arg;
$add_context = TRUE; // Derp, last arg after transport is context
} elseif ($add_context && strlen($arg)) {
$snmp_context = $arg;
break;
} else {
// FIXME: should add a sanity check of chars allowed in user
$user = $arg;
}
}
if ($snmp_v3_seclevel !== "any") {
$config['snmp']['v3'] = [$snmp_v3_auth];
}
} elseif ($snmp_v3_seclevel === "anp" || $snmp_v3_seclevel === "authNoPriv") {
$snmp_v3_auth['authlevel'] = "authNoPriv";
$snmp_v3_args = array_slice($argv, 4);
$snmp_v3_auth['authname'] = array_shift($snmp_v3_args);
$snmp_v3_auth['authpass'] = array_shift($snmp_v3_args);
while ($arg = array_shift($snmp_v3_args)) {
// parse all remaining args
if (is_valid_param($arg, 'port')) {
$snmp_port = $arg;
} elseif (preg_match('/^(' . implode("|", $config['snmp']['transports']) . ')$/i', $arg)) {
$snmp_transport = $arg;
$add_context = TRUE; // Derp, last arg after transport is context
} elseif (is_valid_param($arg, 'snmp_authalgo')) {
$snmp_v3_auth['authalgo'] = $arg;
} elseif ($add_context && strlen($arg)) {
$snmp_context = $arg;
break;
}
}
$config['snmp']['v3'] = [$snmp_v3_auth];
} elseif ($snmp_v3_seclevel === "ap" || $snmp_v3_seclevel === "authPriv") {
$snmp_v3_auth['authlevel'] = "authPriv";
$snmp_v3_args = array_slice($argv, 4);
$snmp_v3_auth['authname'] = array_shift($snmp_v3_args);
$snmp_v3_auth['authpass'] = array_shift($snmp_v3_args);
$snmp_v3_auth['cryptopass'] = array_shift($snmp_v3_args);
while ($arg = array_shift($snmp_v3_args)) {
// parse all remaining args
if (is_valid_param($arg, 'port')) {
$snmp_port = $arg;
} elseif (preg_match('/^(' . implode("|", $config['snmp']['transports']) . ')$/i', $arg)) {
$snmp_transport = $arg;
$add_context = TRUE; // Derp, last arg after transport is context
} elseif (is_valid_param($arg, 'snmp_authalgo')) {
$snmp_v3_auth['authalgo'] = $arg;
} elseif (is_valid_param($arg, 'snmp_cryptoalgo')) {
$snmp_v3_auth['cryptoalgo'] = $arg;
} elseif ($add_context && strlen($arg)) {
$snmp_context = $arg;
break;
}
}
$config['snmp']['v3'] = [$snmp_v3_auth];
}
//print_debug_vars($snmp_v3_auth);
//print_debug_vars($config['snmp']['v3']);
} else {
// v1 or v2c
$config['snmp']['community'] = $snmp['snmp_community'];
$snmp_v2_args = array_slice($argv, 2);
$add_context = FALSE; // Derp, last arg after transport is context
while ($arg = array_shift($snmp_v2_args)) {
// parse all remaining args
if (is_valid_param($arg, 'port')) {
$snmp_port = $arg;
} elseif (preg_match('/(' . implode("|", $config['snmp']['transports']) . ')/i', $arg)) {
$snmp_transport = $arg;
$add_context = TRUE; // Derp, last arg after transport is context
} elseif (preg_match('/^(v1|v2c)$/i', $arg)) {
$snmp_version = $arg;
} elseif ($add_context && strlen($arg)) {
$snmp_context = $arg;
break;
}
}
$config['snmp']['community'] = ($snmp_community ? [$snmp_community] : $snmp_config_community);
}
// Add snmp context to params
if (isset($snmp_context)) {
$snmp_options['snmp_context'] = $snmp_context;
unset($snmp_context);
}
print_message("Try to add $hostname:");
if (in_array($snmp_version, ['v1', 'v2c', 'v3'])) {
// If snmp version passed in arguments, then use the exact version
$device_id = add_device($hostname, $snmp_version, $snmp_port, $snmp_transport, $snmp_options);
} else {
// If snmp version unknown check all possible snmp versions and auth options
$device_id = add_device($hostname, NULL, $snmp_port, $snmp_transport, $snmp_options);
}
// If a known snmp version passed in arguments, then use the exact version (v1, v2c, v3)
// otherwise checks all possible snmp versions and auth options
if ($device_id = add_device($hostname, $snmp_version, $snmp_port, $snmp_transport, $snmp_options)) {
if (!isset($snmp_options['test'])) {
if ($device_id) {
if (!isset($options['t'])) {
$device = device_by_id_cache($device_id);
print_success("Added device " . $device['hostname'] . " (" . $device_id . ").");
} // Else this is device testing, success message already written by add_device()
$added++;
}
// Restore base SNMP v1/2c/3 credentials (need for add multiple devices)
$config['snmp']['community'] = $snmp_config_community;
$config['snmp']['v3'] = $snmp_config_v3;
}
}
@ -116,7 +236,8 @@ if ($added) {
print_help(OBS_SCRIPT_NAME);
}
function print_help($scriptname) {
function print_help($scriptname)
{
global $config;
$snmp_version = get_versions('snmp');

View File

@ -7,7 +7,7 @@
*
* @package observium
* @subpackage cli
* @copyright (C) Adam Armstrong
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/
@ -38,38 +38,36 @@ if (is_file($auth_file)) {
exit();
}
if (!auth_usermanagement()) {
print_error("Auth module does not allow adding users!");
exit();
}
if (isset($argv[1], $argv[2], $argv[3])) {
if (!auth_user_exists($argv[1])) {
if (adduser($argv[1], $argv[2], $argv[3], @$argv[4])) {
print_success("User " . $argv[1] . " added successfully.");
if (auth_usermanagement()) {
if (isset($argv[1]) && isset($argv[2]) && isset($argv[3])) {
if (!auth_user_exists($argv[1])) {
if (adduser($argv[1], $argv[2], $argv[3], @$argv[4])) {
print_success("User " . $argv[1] . " added successfully.");
} else {
print_error("User " . $argv[1] . " creation failed!");
}
} else {
print_error("User " . $argv[1] . " creation failed!");
print_warning("User " . $argv[1] . " already exists!");
}
} else {
print_warning("User " . $argv[1] . " already exists!");
}
} else {
$msg = "%n
$msg = "%n
USAGE:
$scriptname <username> <password> <level 1-10>
$scriptname <username> <password> <level 1-10> [email]
EXAMPLE:
%WADMIN%n: $scriptname <username> <password> 10
%WADMIN%n: $scriptname <username> <password> 10 [email]
USER LEVELS:" . PHP_EOL;
foreach ($GLOBALS['config']['user_level'] as $level => $entry) {
$msg .= ' ' . $level . ' - %W' . $entry['name'] . '%n (' . $entry['subtext'] . ')' . PHP_EOL;
}
$msg .= PHP_EOL . "%rInvalid arguments!%n";
foreach ($GLOBALS['config']['user_level'] as $level => $entry) {
$msg .= ' ' . $level . ' - %W' . $entry['name'] . '%n (' . $entry['subtext'] . ')' . PHP_EOL;
}
$msg .= PHP_EOL . "%rInvalid arguments!%n";
print_message($msg, 'color', FALSE);
print_message($msg, 'color', FALSE);
}
} else {
print_error("Auth module does not allow adding users!");
}
// EOF

View File

@ -7,7 +7,7 @@
*
* @package observium
* @subpackage cli
* @copyright (C) Adam Armstrong
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/

58
check-errors.php Executable file
View File

@ -0,0 +1,58 @@
#!/usr/bin/env php
<?php
/**
* Observium
*
* This file is part of Observium.
*
* @package observium
* @subpackage cli
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/
chdir(dirname($argv[0]));
$options = getopt("d");
if (isset($options['d'])) {
array_shift($argv);
} // for compatibility
include("includes/observium.inc.php");
// Check all of our interface RRD files for errors
if ($argv[1]) {
$where = "AND `port_id` = ?";
$params = [$argv[1]];
}
$i = 0;
$errored = 0;
foreach (dbFetchRows("SELECT * FROM `ports` AS I, `devices` AS D WHERE I.device_id = D.device_id $where", $params) as $interface) {
$errors = $interface['ifInErrors_delta'] + $interface['ifOutErrors_delta'];
if ($errors > '1') {
$errored[] = generate_device_link($interface, $interface['hostname'] . " - " . $interface['ifDescr'] . " - " . $interface['ifAlias'] . " - " . $interface['ifInErrors_delta'] . " - " . $interface['ifOutErrors_delta']);
$errored++;
}
$i++;
}
echo("Checked $i interfaces\n");
if (is_array($errored)) { // If there are errored ports
$i = 0;
$msg = "Interfaces with errors : \n\n";
foreach ($errored as $int) {
$msg .= "$int\n"; // Add a line to the report email warning about them
$i++;
}
// Send the alert email
//notify($device, "Observium detected errors on $i interface" . ($i != 1 ? 's' : ''), $msg);
}
echo("$errored interfaces with errors over the past 5 minutes.\n");
// EOF

View File

@ -6,7 +6,7 @@
*
* @package observium
* @subpackage poller
* @copyright (C) Adam Armstrong
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/
@ -15,30 +15,20 @@
chdir(dirname($argv[0]));
// Get options before definitions!
$options = getopt("o:dt");
$cload_time = microtime(TRUE);
$options = getopt("o:d");
if (isset($options['o'])) {
// Skip load full definitions, while not required on initial config
define('OBS_DEFINITIONS_SKIP', TRUE);
}
require_once("includes/observium.inc.php");
if (!is_cli()) {
return;
}
if (isset($options['t'])) {
print_cli(OBS_PROCESS_NAME . ' Load time: ' . elapsed_time($cload_time, 4) . PHP_EOL);
exit;
}
if (isset($options['o'])) {
// get filtered options
get_config_json($options['o']);
} else {
// All config options
get_config_json();
if (is_cli()) {
if (isset($options['o'])) {
// get filtered options
get_config_json($options['o']);
//print_vars($options);
} else {
// All config options
get_config_json();
//print(safe_json_encode($config));
}
}
// EOF

View File

@ -7,7 +7,7 @@
*
* @package observium
* @subpackage cli
* @copyright (C) Adam Armstrong
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/

View File

@ -5,16 +5,16 @@
*
* This file is part of Observium.
*
* @package observium
* @subpackage discovery
* @copyright (C) Adam Armstrong
* @package observium
* @subpackage discovery
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/
chdir(dirname($argv[0]));
// Get options before definitions!
$options = getopt("h:i:m:n:p:U:dfquaMV");
$options = getopt("h:i:m:n:p:U:dquaMV");
include("includes/observium.inc.php");
include("includes/discovery/functions.inc.php");
@ -27,15 +27,12 @@ $start = utime();
$runtime_stats = [];
if (isset($options['V'])) {
print_message(OBSERVIUM_PRODUCT . " " . OBSERVIUM_VERSION);
if (is_array($options['V'])) {
// Show more detailed Observium version and installed software versions
print_versions();
} else {
print_message(OBSERVIUM_PRODUCT . " " . OBSERVIUM_VERSION_LONG);
}
exit;
}
if (isset($options['M'])) {
print_message(OBSERVIUM_PRODUCT . " " . OBSERVIUM_VERSION);
@ -69,22 +66,10 @@ if (!isset($options['q'])) {
}
if (isset($options['u']) || isset($options['U']) ||
(isset($options['h']) && in_array($options['h'], [ 'all', 'odd', 'even', 'none' ]))) {
(isset($options['h']) && in_array($options['h'], ['all', 'odd', 'even', 'none']))) {
$options['u'] = TRUE;
if (isset($options['f'])) {
//$options['U'] = TRUE;
}
include($config['install_dir'] . '/includes/update/update.php');
if ($updating) {
// DB schema updated. force alert/groups update
$options['a'] = TRUE;
}
// check remote poller params
if (OBS_DISTRIBUTED) {
check_local_poller();
}
} elseif (!isset($options['q'])) {
// Warn about need DB schema update
$db_version = get_db_version();
@ -169,13 +154,12 @@ OPTIONS:
-i Discovery instance.
-n Discovery number.
-q Quiet output.
-a Update Groups/Alerts table
-a Force update Groups/Alerts table
-u Upgrade DB schema
-M Show globally enabled/disabled modules and exit.
-V Show version and exit.
DEBUGGING OPTIONS:
-f Force requested option
-d Enable debugging output.
-dd More verbose debugging output.
-m Specify modules (separated by commas) to be run.
@ -188,19 +172,17 @@ if ($config['version_check'] && ($options['h'] !== 'new' || $options['u'])) {
}
if (!$where) {
// Only update Group/Alert tables
if (isset($options['a'])) {
// Distributed handling doesn't make sense here. It's just database action.
// if (OBS_DISTRIBUTED && function_exists('run_action_queue')) {
if (OBS_DISTRIBUTED && function_exists('run_action_queue')) {
//run_action_queue('device_add');
//run_action_queue('device_rename');
//run_action_queue('device_delete');
// Update alert and group tables
// run_action_queue('tables_update', $options);
// } else {
run_action_queue('tables_update');
} else {
$silent = isset($options['q']);
if (function_exists('update_group_tables')) {
update_group_tables($silent);
@ -208,19 +190,18 @@ if (!$where) {
if (function_exists('update_alert_tables')) {
update_alert_tables($silent);
}
// }
}
}
exit;
}
// For not new devices discovery, skip down devices
if ($options['h'] !== 'new' && !isset($options['f'])) {
if ($options['h'] !== 'new') {
$where .= ' AND `status` = ?';
$params[] = 1;
}
// Discovered device counter
$discovered_devices = 0;
print_cli_heading("%WStarting discovery run at " . date("Y-m-d H:i:s"), 0);
@ -230,24 +211,21 @@ $params[] = $config['poller_id'];
foreach (dbFetchRows("SELECT * FROM `devices` WHERE `disabled` = 0 $where ORDER BY `last_discovered_timetaken` ASC", $params) as $device) {
// Additional check if device SNMPable, because during
// discovery many devices (long time), some device can be switched off
// discovery many devices (long time), the some device can be switched off
if ($options['h'] === 'new' || is_snmpable($device)) {
$discover_status = discover_device($device, $options);
discover_device($device, $options);
} else {
$string = "Device '" . $device['hostname'] . "' skipped, because switched off during runtime discovery process.";
print_debug($string);
logfile($argv[0] . ": $string");
$discover_status = FALSE;
}
if ($discover_status !== FALSE) {
$discovered_devices++;
}
}
print_cli_heading("%WFinished discovery run at " . date("Y-m-d H:i:s"), 0);
$discovery_time = elapsed_time($start, 4);
$end = utime();
$run = $end - $start;
$discovery_time = substr($run, 0, 5);
// Update Group/Alert tables
if (($discovered_devices && !isset($options['m'])) || isset($options['a'])) {
@ -257,11 +235,9 @@ if (($discovered_devices && !isset($options['m'])) || isset($options['a'])) {
print_message("Update alert and group tables added to queue [$action_id].");
//log_event("Device with hostname '$hostname' added to queue [$action_id] for addition on remote Poller [{$vars['poller_id']}].", NULL, 'info', NULL, 7);
} else {
// Not exist in CE
if (function_exists('update_group_tables')) {
// update_group_tables($silent);
update_group_tables();
}
update_group_tables($silent);
} // Not exist in CE
if (function_exists('update_alert_tables')) {
update_alert_tables($silent);
}
@ -274,8 +250,22 @@ if ($discovered_devices) {
$doing = $device['hostname'];
// This discovery passed from wrapper and with process id
if (OBS_DISTRIBUTED && !$options['u']) {
check_local_poller();
if ($config['poller_id'] > 0 &&
$poller = dbFetchRow('SELECT * FROM `pollers` WHERE `poller_id` = ?', [$config['poller_id']])) {
print_debug_vars($poller, 1);
$host_id = get_local_id();
$update = [];
if ($poller['host_id'] != $host_id) {
$update['host_id'] = $host_id;
log_event("Poller " . $config['poller_id'] . " host ID changed: '" . $poller['host_id'] . "' -> '" . $host_id . "'");
}
if ($poller['host_uname'] != php_uname()) {
$update['host_uname'] = php_uname();
log_event("Poller " . $config['poller_id'] . " host uname changed: '" . $poller['host_uname'] . "' -> '" . $update['host_uname'] . "'");
}
if (count($update)) {
dbUpdate($update, 'pollers', '`poller_id` = ?', [$config['poller_id']]);
}
}
}
} elseif (!isset($options['q']) && !$options['u']) {
@ -288,8 +278,8 @@ logfile($string);
// Clean stale observium processes
$process_sql = "SELECT * FROM `observium_processes` WHERE `poller_id` = ? AND `process_start` < ?";
foreach (dbFetchRows($process_sql, [ $config['poller_id'], get_time('fourhour') ]) as $process) {
// We found processes in DB, check if it exists on a system
foreach (dbFetchRows($process_sql, [$config['poller_id'], $config['time']['fourhour']]) as $process) {
// We found processes in DB, check if it exist on system
print_debug_vars($process);
$pid_info = get_pid_info($process['process_pid']);
if (is_array($pid_info) && str_contains($pid_info['COMMAND'], $process['process_name'])) {

View File

@ -5,15 +5,15 @@
*
* This file is part of Observium.
*
* @package observium
* @subpackage cli
* @copyright (C) Adam Armstrong
* @package observium
* @subpackage cli
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/
chdir(dirname($argv[0]));
$options = getopt("A:VyaselurpdbitxT");
$options = getopt("A:VyaselurpdbiT");
include("includes/observium.inc.php");
@ -28,12 +28,12 @@ if (isset($options['V'])) {
}
// Prevent running housekeeping on remote pollers (not needed, won't work properly, potential data loss vector)
if (!isset($options['f']) && $config['poller_id'] !== 0) {
if ($config['poller_id'] !== 0) {
print_message("%yHousekeeping only needs to be run on the main node. Do not run housekeeping on partitioned pollers.%n\n", 'color');
exit;
}
print_message("%g" . OBSERVIUM_PRODUCT . " " . OBSERVIUM_VERSION . "\n%WHousekeeping%n\n", 'color');
print_message("%g" . OBSERVIUM_PRODUCT . " " . OBSERVIUM_VERSION . "\n%WHouseKeeping%n\n", 'color');
if (OBS_DEBUG) {
print_versions();
}
@ -73,10 +73,6 @@ if (isset($options['a']) || isset($options['i'])) {
if (isset($options['a']) || isset($options['r'])) {
$modules[] = 'rrd';
}
if (isset($options['x'])) {
$modules[] = 'billing_data';
}
// Get age from command line
if (isset($options['A'])) {
@ -107,7 +103,7 @@ NOTE, by default $scriptname asks 'Are you sure want to delete (y/N)?'.
OPTIONS:
-V Show version and exit.
-y Automatically answer 'yes' to prompts
-a Maintain all modules except billing as specified below.
-a Maintain all modules as specified below.
-s Clean up syslog
-e Clean up event log
-l Clean up alert log
@ -117,9 +113,6 @@ OPTIONS:
-p Clean up deleted ports
-b Clean up stale database entries
-A <age> Specifies maximum age for all modules (overrides configuration)
-f Force run Housekeeping on Poller ID other than 0 (main)
-x Clean up billing data
DEBUGGING OPTIONS:
-T Testing, not do any actions, only show counts.

View File

@ -6,7 +6,7 @@
*
* @package observium
* @subpackage ajax
* @copyright (C) Adam Armstrong
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/

View File

@ -6,7 +6,7 @@
*
* @package observium
* @subpackage ajax
* @copyright (C) Adam Armstrong
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/

View File

@ -5,8 +5,8 @@
* This file is part of Observium.
*
* @package observium
* @subpackage web
* @copyright (C) Adam Armstrong
* @subpackage ajax
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/
@ -17,15 +17,15 @@ if (!$limitwrite) {
}
$ok = TRUE;
foreach ([ 'entity_type', 'alert_name', 'alert_severity', 'alert_conditions' ] as $var) {
if (safe_empty($vars[$var])) {
foreach (['entity_type', 'alert_name', 'alert_severity', 'alert_conditions'] as $var) {
if (!isset($vars[$var]) || strlen($vars[$var]) == '0') {
$ok = FALSE;
$failed[] = $var;
}
}
if ($ok) {
if (dbExist('alert_tests', '`entity_type` = ? AND `alert_name` = ?', [ $vars['entity_type'], $vars['alert_name'] ])) {
if (dbExist('alert_tests', '`entity_type` = ? AND `alert_name` = ?', [$vars['entity_type'], $vars['alert_name']])) {
print_json_status('failed', "Alert Checker '{$vars['alert_name']}' already exist.");
return;
}
@ -34,16 +34,8 @@ if ($ok) {
$conditions = [];
foreach (explode("\n", trim($vars['alert_conditions'])) as $cond) {
if (preg_match(OBS_PATTERN_XSS, $cond)) {
print_json_status('failed', "Prevent XSS payload.");
return;
}
$condition = [];
[ $condition['metric'], $condition['condition'], $condition['value'] ] = explode(" ", trim($cond), 3);
if (!is_alpha($condition['metric'])) {
print_json_status('failed', "Incorrect condition metric '" . escape_html($condition['metric']) . "'");
return;
}
[$condition['metric'], $condition['condition'], $condition['value']] = explode(" ", trim($cond), 3);
$conditions[] = $condition;
}
$check_array['conditions'] = safe_json_encode($conditions);

View File

@ -1,37 +0,0 @@
<?php
if ($_SESSION['userlevel'] >= 8) {
if (is_intnum($vars['value'])) {
$alert_entry = get_alert_entry_by_id($vars['value']);
if(!count($alert_entry)) {
print_json_status('failed', 'Alert entry not found. No update performed.');
die;
}
$update_array = [];
if ($alert_entry['ignore_until_ok'] != 1) {
$update_array['ignore_until_ok'] = '1';
}
if ($alert_entry['alert_status'] == 0) {
$update_array['alert_status'] = '3';
}
if (count($update_array)) {
//r($alert_entry);
dbUpdate($update_array, 'alert_table', 'alert_table_id = ?', [$alert_entry['alert_table_id']]);
$alert_device = device_by_id_cache($alert_entry['device_id']);
//print_message("Alert entry [{$vars['form_alert_table_id']}] for device '{$alert_device['hostname']}' suppressed.");
print_json_status('ok', 'alert '.$vars['form_alert_table_id'].' ignored until ok. status updated.', ['update_array' => $update_array]);
}
unset($update_array);
// FIXME - eventlog? audit log?
}
} else {
print_json_status('failed', 'Action not permitted. Not performed.');
}

View File

@ -6,7 +6,7 @@
*
* @package observium
* @subpackage ajax
* @copyright (C) Adam Armstrong
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/

View File

@ -6,7 +6,7 @@
*
* @package observium
* @subpackage ajax
* @copyright (C) Adam Armstrong
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/

View File

@ -6,7 +6,7 @@
*
* @package observium
* @subpackage web
* @copyright (C) Adam Armstrong
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/

View File

@ -6,7 +6,7 @@
*
* @package observium
* @subpackage ajax
* @copyright (C) Adam Armstrong
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/

View File

@ -6,7 +6,7 @@
*
* @package observium
* @subpackage web
* @copyright (C) Adam Armstrong
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/

View File

@ -6,7 +6,7 @@
*
* @package observium
* @subpackage web
* @copyright (C) Adam Armstrong
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/

View File

@ -6,7 +6,7 @@
*
* @package observium
* @subpackage ajax
* @copyright (C) Adam Armstrong
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/

View File

@ -1,12 +1,14 @@
<?php
/**
* Observium
*
* This file is part of Observium.
*
* @package observium
* @subpackage ajax
* @copyright (C) Adam Armstrong
* @package observium
* @subpackage ajax
* @author Adam Armstrong <adama@observium.org>
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/
@ -24,7 +26,7 @@ if ($_SESSION['userlevel'] >= '5') {
switch ($_GET['entity_type']) {
case "sensor":
foreach (dbFetchRows("SELECT * FROM `sensors` WHERE device_id = ?", [$_GET['device_id']]) as $sensor) {
foreach (dbFetch("SELECT * FROM `sensors` WHERE device_id = ?", [$_GET['device_id']]) as $sensor) {
if (is_entity_permitted($sensor, 'sensor')) {
$string = addslashes($sensor['sensor_descr']);
echo("obj.options[obj.options.length] = new Option('" . $string . "','" . $sensor['sensor_id'] . "');\n");
@ -33,7 +35,7 @@ if ($_SESSION['userlevel'] >= '5') {
break;
case "netscalervsvr":
foreach (dbFetchRows("SELECT * FROM `netscaler_vservers` WHERE `device_id` = ?", [$_GET['device_id']]) as $entity) {
foreach (dbFetch("SELECT * FROM `netscaler_vservers` WHERE `device_id` = ?", [$_GET['device_id']]) as $entity) {
$string = addslashes($entity['vsvr_label']);
echo("obj.options[obj.options.length] = new Option('" . $string . "','" . $entity['vsvr_id'] . "');\n");
}
@ -41,7 +43,7 @@ if ($_SESSION['userlevel'] >= '5') {
case "port":
foreach (dbFetchRows("SELECT * FROM `ports` WHERE `device_id` = ? AND `deleted` = '0'", [$_GET['device_id']]) as $port) {
foreach (dbFetch("SELECT * FROM `ports` WHERE `device_id` = ? AND `deleted` = '0'", [$_GET['device_id']]) as $port) {
$string = addslashes($port['port_label_short'] . " - " . $port['ifAlias']);
echo("obj.options[obj.options.length] = new Option('" . $string . "','" . $port['port_id'] . "');\n");
}
@ -50,4 +52,4 @@ if ($_SESSION['userlevel'] >= '5') {
}
// EOF
?>

View File

@ -8,7 +8,7 @@
* @package observium
* @subpackage ajax
* @author Adam Armstrong <adama@observium.org>
* @copyright (C) Adam Armstrong
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/

View File

@ -8,7 +8,7 @@
* @package observium
* @subpackage ajax
* @author Adam Armstrong <adama@observium.org>
* @copyright (C) Adam Armstrong
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/

View File

@ -6,7 +6,7 @@
*
* @package observium
* @subpackage web
* @copyright (C) Adam Armstrong
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/
@ -76,8 +76,11 @@ switch ($vars['entity_type']) {
case "mac":
if (preg_match('/^' . OBS_PATTERN_MAC . '$/i', $vars['entity_id'])) {
$mac = format_mac($vars['entity_id']);
// Other way by using Pear::Net_MAC, see here: http://pear.php.net/manual/en/package.networking.net-mac.importvendors.php
if ($response = get_http_def('macvendors_mac', [ 'mac' => format_mac($vars['entity_id']) ])) {
$url = 'https://api.macvendors.com/' . urlencode($mac);
$response = get_http_request($url);
if ($response) {
echo 'MAC vendor: ' . escape_html($response);
} else {
echo 'Not Found';
@ -101,15 +104,97 @@ switch ($vars['entity_type']) {
}
$response = '';
if ($reverse_dns = gethostbyaddr6($ip)) {
$response .= '<h4>' . escape_html($reverse_dns) . '</h4><hr />' . PHP_EOL;
$reverse_dns = gethostbyaddr6($ip);
if ($reverse_dns) {
$response .= '<h4>' . $reverse_dns . '</h4><hr />' . PHP_EOL;
}
// WHOIS
$response .= escape_html(ip_whois($ip));
if (!isset($config['http_proxy']) && is_executable($config['whois'])) {
// Use direct whois cmd query (preferred)
// NOTE, for now not tested and not supported for KRNIC, ie: 202.30.50.0, 2001:02B8:00A2::
$cmd = $config['whois'] . ' ' . $ip;
$whois = external_exec($cmd);
$multi_whois = explode('# start', $whois); // Some time whois return multiple (ie: whois 8.8.8.8), than use last
if (safe_count($multi_whois) > 1) {
$whois = array_pop($multi_whois);
}
$org = 0;
foreach (explode("\n", $whois) as $line) {
if (preg_match('/^(\w[\w\s\-\/]+):.*$/', $line, $matches)) {
if (in_array($matches[1], ['Ref', 'source', 'nic-hdl-br'])) {
if ($org === 1) {
$response .= PHP_EOL;
$org++;
continue;
}
break;
}
if (in_array($matches[1], ['Organization', 'org', 'mnt-irt'])) {
$org++; // has org info
} elseif ($matches[1] === 'Comment') {
continue; // skip comments
}
$response .= $line . PHP_EOL;
}
}
} else {
// Use RIPE whois API query
$whois_url = 'https://stat.ripe.net/data/whois/data.json?';
$whois_url .= 'sourceapp=' . urlencode(OBSERVIUM_PRODUCT . '-' . get_unique_id());
$whois_url .= '&resource=' . urlencode($ip);
if ($request = get_http_request($whois_url)) {
$request = safe_json_decode($request); // Convert to array
if ($request['status'] === 'ok' && safe_count($request['data']['records'])) {
$whois_parts = [];
foreach ($request['data']['records'] as $i => $parts) {
$key = $parts[0]['key'];
if (in_array($key, ['NetRange', 'inetnum', 'inet6num'])) {
$org = 0;
$whois_parts[0] = '';
foreach ($parts as $part) {
if (in_array($part['key'], ['Ref', 'source', 'nic-hdl-br'])) {
break;
}
if (in_array($part['key'], ['Organization', 'org', 'mnt-irt'])) {
$org = 1; // has org info
$org_name = $part['value'];
} elseif ($part['key'] === 'Comment') {
continue; // skip comments
}
$whois_parts[0] .= sprintf('%-16s %s' . PHP_EOL, $part['key'] . ':', $part['value']);
}
} elseif ($org === 1 && $key === 'OrgName' && strpos($org_name, $parts[0]['value']) === 0) {
$whois_parts[1] = '';
foreach ($parts as $part) {
if (in_array($part['key'], ['Ref', 'source', 'nic-hdl-br'])) {
break;
}
if ($part['key'] === 'Comment') {
continue; // skip comments
}
$whois_parts[1] .= sprintf('%-16s %s' . PHP_EOL, $part['key'] . ':', $part['value']);
}
break;
}
}
$response .= implode(PHP_EOL, $whois_parts);
//print_vars($request['data']['records']);
}
}
}
if ($response) {
$cache_entry = '<pre class="small">' . $response . '</pre>';
$cache_entry = '<pre class="small">' . escape_html($response) . '</pre>';
// @session_start();
// $_SESSION['cache']['response_' . $vars['entity_type'] . '_' . $ip] = '<pre class="small">' . $response . '</pre>';
// session_commit();

View File

@ -6,7 +6,7 @@
*
* @package observium
* @subpackage web
* @copyright (C) Adam Armstrong
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/

View File

@ -1,93 +0,0 @@
<?php
/**
* Observium
*
* This file is part of Observium.
*
* @package observium
* @subpackage ajax
* @author Adam Armstrong <adama@observium.org>
* @copyright (C) Adam Armstrong
*
*/
include_once("../../includes/observium.inc.php");
include($config['html_dir'] . "/includes/authenticate.inc.php");
if (!$_SESSION['authenticated']) {
echo("unauthenticated");
exit;
}
if ($_SESSION['userlevel'] >= '5') {
$options = [];
$device_id = filter_input(INPUT_GET, 'device_id', FILTER_SANITIZE_NUMBER_INT);
$entity_type = filter_input(INPUT_GET, 'entity_type', FILTER_SANITIZE_STRING);
switch ($entity_type) {
case "device":
include($config['html_dir'] . '/includes/cache-data.inc.php');
$options = generate_device_form_values(NULL, NULL, [ 'filter_mode' => 'exclude', 'subtext' => '%location%', 'show_disabled' => TRUE, 'show_icon' => TRUE ]);
break;
case "sensor":
foreach (dbFetchRows("SELECT * FROM `sensors` WHERE device_id = ?", [ $device_id ]) as $sensor) {
if (is_entity_permitted($sensor, 'sensor')) {
$nice_class = nicecase($sensor['sensor_class']);
$symbol = str_replace('&deg;', '°', $config['sensor_types'][$sensor['sensor_class']]['symbol']);
$options[] = [
'value' => $sensor['sensor_id'],
'group' => $nice_class,
'name' => addslashes($sensor['sensor_descr']),
'subtext' => round($sensor['sensor_value'],2) . $symbol,
'icon' => $config['sensor_types'][$sensor['sensor_class']]['icon'],
//'class' => 'bg-info'
];
}
}
break;
case "netscalervsvr":
// Example for netscalervsvr type
foreach (dbFetchRows("SELECT * FROM `netscaler_vservers` WHERE device_id = ?", [ $device_id ]) as $entity) {
$options[] = [
'value' => $entity['vsvr_id'],
'name' => addslashes($entity['vsvr_label']),
//'subtext' => 'Extra details for netscalervsvr',
//'icon' => 'netscaler-icon',
//'class' => 'custom-class'
];
}
break;
case "port":
// Example for port type
foreach (dbFetchRows("SELECT * FROM `ports` WHERE device_id = ? AND deleted = 0", [$_GET['device_id']]) as $port) {
humanize_port($port);
$port_type = $port['human_type'];
$options[] = [
'value' => $port['port_id'],
'group' => $port_type,
'name' => addslashes($port['port_label_short']),
//'content' => addslashes($port['port_label_short']) . ' <span class="label">'.format_si($port['ifSpeed']).'bps</span> ',
'subtext' => '['.format_si($port['ifSpeed']).'bps] ' . addslashes($port['ifAlias']),
'icon' => $port['icon'],
//'class' => 'port-class'
];
}
break;
}
echo json_encode($options, JSON_UNESCAPED_UNICODE); // Return JSON encoded data
}

View File

@ -4,9 +4,9 @@
*
* This file is part of Observium.
*
* @package observium
* @subpackage ajax
* @copyright (C) Adam Armstrong
* @package observium
* @subpackage ajax
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/
@ -42,31 +42,27 @@ if ($cache_key && $options = get_cache_session($cache_key)) {
//echo safe_json_encode(array('options' => $_SESSION['cache'][$cache_key]));
//$options = $_SESSION['cache'][$cache_key];
} else {
$where = [];
$params = [];
//print_vars($vars);
switch ($vars['field']) {
case 'ipv4_network':
case 'ipv6_network':
$ip_version = explode('_', $vars['field'])[0];
$query_permitted = generate_query_permitted_ng('ports');
$network_permitted = dbFetchColumn('SELECT DISTINCT(`' . $ip_version . '_network_id`) FROM `' . $ip_version . '_addresses` WHERE ' . $query_permitted);
$where[] = generate_query_values($network_permitted, $ip_version . '_network_id');
[$ip_version] = explode('_', $vars['field']);
$query_permitted = generate_query_permitted('ports');
$network_permitted = dbFetchColumn('SELECT DISTINCT(`' . $ip_version . '_network_id`) FROM `' . $ip_version . '_addresses` WHERE 1' . $query_permitted);
$query = 'SELECT `' . $ip_version . '_network` FROM `' . $ip_version . '_networks` WHERE 1 ' . generate_query_values_and($network_permitted, $ip_version . '_network_id');
if (!safe_empty($vars['query'])) {
//$query .= ' AND `' . $ip_version . '_network` LIKE ?';
//$params[] = '%' . $vars['query'] . '%';
$where[] = generate_query_values($vars['query'], $vars['field'], '%LIKE%');
$query .= generate_query_values_and($vars['query'], $vars['field'], '%LIKE%');
}
$query = 'SELECT `' . $ip_version . '_network` FROM `' . $ip_version . '_networks` ';
$query .= generate_where_clause($where);
$query .= ' ORDER BY `' . $ip_version . '_network`;';
//print_vars($query);
break;
case 'ifspeed':
$query_permitted = generate_query_permitted('ports');
$query = 'SELECT `ifSpeed`, COUNT(`ifSpeed`) as `count` FROM `ports` WHERE `ifSpeed` > 0 ' .
$query_permitted . ' GROUP BY ifSpeed ORDER BY `count` DESC';
$query = 'SELECT `ifSpeed`, COUNT(`ifSpeed`) as `count` FROM `ports` WHERE `ifSpeed` > 0 ' . $query_permitted . ' GROUP BY ifSpeed ORDER BY `count` DESC';
$call_function = 'formatRates';
$call_params = [4, 4];
break;
@ -75,7 +71,7 @@ if ($cache_key && $options = get_cache_session($cache_key)) {
//$query_permitted = generate_query_permitted();
$query = 'SELECT DISTINCT `program` FROM `syslog`';
if (is_intnum($vars['device_id'])) {
$query .= ' WHERE ' . generate_query_values($vars['device_id'], 'device_id');
$query .= ' WHERE ' . generate_query_values_ng($vars['device_id'], 'device_id');
}
$array_filter = TRUE; // Search query string in array instead sql query (when this faster)
break;
@ -101,18 +97,18 @@ if ($cache_key && $options = get_cache_session($cache_key)) {
'peer_ip' => 'bgpPeerRemoteAddr'];
$param = str_replace('bgp_', '', $vars['field']);
$column = $columns[$param];
$query_permitted = generate_query_permitted('devices');
$query = 'SELECT DISTINCT `' . $column . '` FROM `bgpPeers` WHERE 1 ' . $query_permitted;
if (!safe_empty($vars['query'])) {
$where[] = generate_query_values($vars['query'], $column, '%LIKE%');
$query .= generate_query_values_and($vars['query'], $column, '%LIKE%');
}
$query = 'SELECT DISTINCT `' . $column . '` FROM `bgpPeers`';
$query .= generate_where_clause($where, generate_query_permitted_ng('devices'));
break;
default:
json_output('error', 'Search type unknown');
}
if (!safe_empty($query)) {
if (strlen($query)) {
$options = dbFetchColumn($query, $params);
if (safe_count($options)) {
if (isset($call_function)) {

View File

@ -6,7 +6,7 @@
*
* @package observium
* @subpackage web
* @copyright (C) Adam Armstrong
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/

View File

@ -6,7 +6,7 @@
*
* @package observium
* @subpackage ajax
* @copyright (C) Adam Armstrong
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/
@ -21,21 +21,23 @@ if (!$_SESSION['authenticated']) {
include_dir($config['html_dir'] . "/includes/widgets/");
$widget = dbFetchRow("SELECT * FROM `dash_widgets` WHERE `widget_id` = ?", [ $_POST['id'] ]);
$widget = dbFetchRow("SELECT * FROM `dash_widgets` WHERE widget_id = ?", [$_POST['id']]);
$widget['height'] = is_numeric($_POST['height']) ? $_POST['height'] : 3;
$widget['width'] = is_numeric($_POST['width']) ? $_POST['width'] : 4;
$widget['height'] = (is_numeric($_POST['height']) ? $_POST['height'] : '3');
$widget['width'] = (is_numeric($_POST['width']) ? $_POST['width'] : '4');
print_dash_mod($widget);
function print_dash_mod($mod) {
function print_dash_mod($mod)
{
global $config, $cache;
global $config;
global $cache;
$mod['vars'] = safe_json_decode($mod['widget_config']);
$mod['vars'] = json_decode($mod['widget_config'], TRUE);
$width = is_numeric($mod['width']) ? $mod['width'] : 1240;
$height = is_numeric($mod['height']) ? $mod['height'] : 80;
$width = (is_numeric($mod['width']) ? $mod['width'] : 1240);
$height = (is_numeric($mod['height']) ? $mod['height'] : 80);
switch ($mod['widget_type']) {
@ -55,15 +57,16 @@ function print_dash_mod($mod) {
echo '<div class="box box-solid do-not-update">';
$wmap = dbFetchRow("SELECT * FROM `weathermaps` WHERE `wmap_name` = ?", [ $mod['vars']['mapname'] ]);
$wmap = dbFetchRow("SELECT * FROM `weathermaps` WHERE `wmap_name` = ?", [$mod['vars']['mapname']]);
echo ' <div class="hover-hide widget-title" style="z-index: 900; position: absolute; overflow: hidden;" class="widget-title"><h4 style="wwriting-mode: vertical-lr; ttext-orientation: mixed;" class="box-title">' .
escape_html($wmap['wmap_name']) . '</h4></div>' . PHP_EOL;
'' . htmlentities($wmap['wmap_name']) . '</h4>' .
'</div>' . PHP_EOL;
echo ' <div class="box-content" style="overflow: hidden">';
echo '<div style="height:100%; overflow:hidden; width: 110%;">';
echo '<a href="' . generate_url([ 'page' => 'wmap', 'mapname' => $wmap['map_name'] ]) . '">';
echo '<img src="/weathermap.php?mapname=' . escape_html($wmap['wmap_name']) . '&action=draw&unique=' . time() . '&width=' . $width . '&height=' . $height . '">';
echo '<a href="' . generate_url(['page' => 'wmap', 'mapname' => $wmap['map_name']]) . '">';
echo '<img src="/weathermap.php?mapname=' . htmlentities($wmap['wmap_name']) . '&action=draw&unique=' . time() . '&width=' . $width . '&height=' . $height . '">';
echo '</a>';
echo '</div>';
@ -76,7 +79,6 @@ function print_dash_mod($mod) {
echo '<div class="box box-solid do-not-update">';
print_dash_map($mod, $width, $height);
echo '</div>';
break;
case "port_percent":
@ -101,14 +103,13 @@ function print_dash_mod($mod) {
echo ' <div class="box-content" style="height: ' . ($height - 40) . 'px; overflow: auto;">';
//echo ' <div class="box-content" style="overflow: scroll; overflow-x:scroll;">';
//echo ' <div class="box-content" style="overflow:auto;">';
$short = !($width > 1000);
print_alert_table([ 'status' => 'failed', 'pagination' => FALSE, 'short' => $short ]);
print_alert_table(['status' => 'failed',
'pagination' => FALSE,
'short' => TRUE]
);
echo ' </div>';
echo ' </div>';
echo '</div>';
break;
case "status_summary":
@ -163,10 +164,8 @@ function print_dash_mod($mod) {
echo ' <div class="box-header" style="cursor: hand;"><h3 class="box-title"><a href="/syslog/">Syslog</a></h3></div>';
echo ' <div class="box-content" style="overflow: hidden; overflow-x:scroll;">';
$short = !($width > 1000);
$syslog_vars = array_merge($mod['vars'], [ 'short' => $short, 'pagesize' => ($height - 36) / 26,
'priority' => $config['frontpage']['syslog']['priority'] ]);
$syslog_vars = array_merge($mod['vars'], ['short' => TRUE, 'pagesize' => ($height - 36) / 26,
'priority' => $config['frontpage']['syslog']['priority']]);
print_syslogs($syslog_vars);
@ -179,9 +178,7 @@ function print_dash_mod($mod) {
echo ' <div class="box-header" style="cursor: hand;"><h3 class="box-title"><a href="/syslog_alerts/">Syslog Alerts</a></h3></div>';
echo ' <div class="box-content" style="overflow: hidden; overflow-x:scroll;">';
$short = !($width > 1000);
$alertlog_vars = array_merge($mod['vars'], [ 'short' => $short, 'pagesize' => ($height - 36) / 26 ]);
$alertlog_vars = array_merge($mod['vars'], ['short' => TRUE, 'pagesize' => ($height - 36) / 26]);
print_logalert_log($alertlog_vars);
@ -194,10 +191,7 @@ function print_dash_mod($mod) {
echo ' <div class="box-header" style="cursor: hand;"><h3 class="box-title"><a href="/alert_log/">Alert Log</a></h3></div>';
echo ' <div class="box-content" style="overflow: hidden; overflow-x:scroll;">';
$short = !($width > 1000);
$alertlog_vars = array_merge($mod['vars'], [ 'short' => $short, 'pagesize' => ($height - 36) / 26 ]);
$alertlog_vars = array_merge($mod['vars'], ['short' => TRUE, 'pagesize' => ($height - 36) / 26]);
print_alert_log($alertlog_vars);
echo ' </div>';
@ -210,11 +204,11 @@ function print_dash_mod($mod) {
echo ' <div class="box-content" style="overflow: hidden; overflow-x:scroll;">';
$pagesize = floor(($height - 36) / 26);
//if($width > 1000) { $pagesize -= 3; $short = FALSE; } else { $short = TRUE; }
$short = !($width > 1000);
$eventlog_vars = array_merge($mod['vars'], [ 'short' => $short, 'pagesize' => $pagesize, 'pageno' => 1,
'severity' => $config['frontpage']['eventlog']['severity'] ]);
$eventlog_vars = array_merge($mod['vars'], ['short' => TRUE, 'pagesize' => $pagesize, 'pageno' => 1,
'severity' => $config['frontpage']['eventlog']['severity']]);
print_events($eventlog_vars);

View File

@ -4,9 +4,10 @@
*
* This file is part of Observium.
*
* @package observium
* @subpackage web
* @copyright (C) Adam Armstrong
* @package observium
* @subpackage webinterface
* @author Adam Armstrong <adama@observium.org>
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/
@ -68,8 +69,8 @@ $ysize = (is_numeric($vars['y']) ? $vars['y'] : "250");
//$dur = $end - $start;
//$datefrom = date('Ymthis', $start);
//$dateto = date('Ymthis', $end);
$imgtype = $vars['type'] ?? "historical";
$imgbill = $vars['imgbill'] ?? FALSE;
$imgtype = (isset($vars['type']) ? $vars['type'] : "historical");
$imgbill = (isset($vars['imgbill']) ? $vars['imgbill'] : FALSE);
$yaxistitle = "Bytes";
$in_data = [];
@ -80,7 +81,7 @@ $ave_data = [];
$overuse_data = [];
$ticklabels = [];
if ($imgtype === "historical") {
if ($imgtype == "historical") {
$i = "0";
foreach (dbFetchRows("SELECT * FROM `bill_history` WHERE `bill_id` = ? ORDER BY `bill_datefrom` DESC LIMIT 12", [$bill_id]) as $data) {
@ -91,7 +92,7 @@ if ($imgtype === "historical") {
$traf['out'] = $data['traf_out'];
$traf['total'] = $data['traf_total'];
if ($data['bill_type'] === "Quota") {
if ($data['bill_type'] == "Quota") {
$traf['allowed'] = $data['bill_allowed'];
$traf['overuse'] = $data['bill_overuse'];
} else {
@ -99,12 +100,12 @@ if ($imgtype === "historical") {
$traf['overuse'] = "0";
}
$ticklabels[] = $datelabel;
$in_data[] = $traf['in'];
$out_data[] = $traf['out'];
$tot_data[] = $traf['total'];
$allow_data[] = $traf['allowed'];
$overuse_data[] = $traf['overuse'];
array_push($ticklabels, $datelabel);
array_push($in_data, $traf['in']);
array_push($out_data, $traf['out']);
array_push($tot_data, $traf['total']);
array_push($allow_data, $traf['allowed']);
array_push($overuse_data, $traf['overuse']);
$i++;
//print_vars($data);
}
@ -112,13 +113,13 @@ if ($imgtype === "historical") {
if ($i < 12) {
$y = 12 - $i;
for ($x = 0; $x < $y; $x++) {
$allowed = (($x == "0") ? $traf['allowed'] : "0");
$in_data[] = "0";
$out_data[] = "0";
$tot_data[] = "0";
$allow_data[] = $allowed;
$overuse_data[] = "0";
$ticklabels[] = "";
$allowed = (($x == "0") ? $traf['allowed'] : "0");
array_push($in_data, "0");
array_push($out_data, "0");
array_push($tot_data, "0");
array_push($allow_data, $allowed);
array_push($overuse_data, "0");
array_push($ticklabels, "");
}
}
$yaxistitle = "Gigabytes";
@ -126,49 +127,47 @@ if ($imgtype === "historical") {
} else {
$data = [];
$average = 0;
if ($imgtype === "day") {
foreach (dbFetchRows("SELECT DISTINCT UNIX_TIMESTAMP(timestamp) as timestamp, SUM(delta) as traf_total, SUM(in_delta) as traf_in, SUM(out_delta) as traf_out FROM bill_data WHERE `bill_id` = ? AND `timestamp` >= FROM_UNIXTIME(?) AND `timestamp` <= FROM_UNIXTIME(?) GROUP BY DATE(timestamp) ORDER BY timestamp ASC", [$bill_id, $start, $end]) as $data) {
$traf['in'] = $data['traf_in'] ?? 0;
$traf['out'] = $data['traf_out'] ?? 0;
$traf['total'] = $data['traf_total'] ?? 0;
if ($imgtype == "day") {
foreach (dbFetch("SELECT DISTINCT UNIX_TIMESTAMP(timestamp) as timestamp, SUM(delta) as traf_total, SUM(in_delta) as traf_in, SUM(out_delta) as traf_out FROM bill_data WHERE `bill_id` = ? AND `timestamp` >= FROM_UNIXTIME(?) AND `timestamp` <= FROM_UNIXTIME(?) GROUP BY DATE(timestamp) ORDER BY timestamp ASC", [$bill_id, $start, $end]) as $data) {
$traf['in'] = (isset($data['traf_in']) ? $data['traf_in'] : 0);
$traf['out'] = (isset($data['traf_out']) ? $data['traf_out'] : 0);
$traf['total'] = (isset($data['traf_total']) ? $data['traf_total'] : 0);
$datelabel = strftime("%e\n%b", $data['timestamp']);
$ticklabels[] = $datelabel;
$in_data[] = $traf['in'];
$out_data[] = $traf['out'];
$tot_data[] = $traf['total'];
array_push($ticklabels, $datelabel);
array_push($in_data, $traf['in']);
array_push($out_data, $traf['out']);
array_push($tot_data, $traf['total']);
$average += $data['traf_total'];
}
$ave_count = safe_count($tot_data);
if ($imgbill) {
$ave_count = count($tot_data);
if ($imgbill != FALSE) {
$days = strftime("%e", date($end - $start)) - $ave_count - 1;
for ($x = 0; $x < $days; $x++) {
$ticklabels[] = "";
$in_data[] = 0;
$out_data[] = 0;
$tot_data[] = 0;
array_push($ticklabels, "");
array_push($in_data, 0);
array_push($out_data, 0);
array_push($tot_data, 0);
}
}
} elseif ($imgtype === "hour") {
foreach (dbFetchRows("SELECT DISTINCT UNIX_TIMESTAMP(timestamp) as timestamp, SUM(delta) as traf_total, SUM(in_delta) as traf_in, SUM(out_delta) as traf_out FROM bill_data WHERE `bill_id` = ? AND `timestamp` >= FROM_UNIXTIME(?) AND `timestamp` <= FROM_UNIXTIME(?) GROUP BY HOUR(timestamp) ORDER BY timestamp ASC", [$bill_id, $start, $end]) as $data) {
$traf['in'] = $data['traf_in'] ?? 0;
$traf['out'] = $data['traf_out'] ?? 0;
$traf['total'] = $data['traf_total'] ?? 0;
} elseif ($imgtype == "hour") {
foreach (dbFetch("SELECT DISTINCT UNIX_TIMESTAMP(timestamp) as timestamp, SUM(delta) as traf_total, SUM(in_delta) as traf_in, SUM(out_delta) as traf_out FROM bill_data WHERE `bill_id` = ? AND `timestamp` >= FROM_UNIXTIME(?) AND `timestamp` <= FROM_UNIXTIME(?) GROUP BY HOUR(timestamp) ORDER BY timestamp ASC", [$bill_id, $start, $end]) as $data) {
$traf['in'] = (isset($data['traf_in']) ? $data['traf_in'] : 0);
$traf['out'] = (isset($data['traf_out']) ? $data['traf_out'] : 0);
$traf['total'] = (isset($data['traf_total']) ? $data['traf_total'] : 0);
$datelabel = strftime("%H:%M", $data['timestamp']);
$ticklabels[] = $datelabel;
$in_data[] = $traf['in'];
$out_data[] = $traf['out'];
$tot_data[] = $traf['total'];
array_push($ticklabels, $datelabel);
array_push($in_data, $traf['in']);
array_push($out_data, $traf['out']);
array_push($tot_data, $traf['total']);
$average += $data['traf_total'];
}
$ave_count = safe_count($tot_data);
$ave_count = count($tot_data);
}
$decimal = 0;
$average = float_div($average, $ave_count);
for ($x = 0, $x_max = safe_count($tot_data); $x <= $x_max; $x++) {
$ave_data[] = $average;
$average = $average / $ave_count;
for ($x = 0; $x <= count($tot_data); $x++) {
array_push($ave_data, $average);
}
$graph_name = date('M j g:ia', $start) . " - " . date('M j g:ia', $end);
}
@ -223,7 +222,7 @@ $barplot_out -> SetColor('#' . $config['graph_colours']['blues'][0]);
$barplot_out -> SetFillColor('#' . $config['graph_colours']['blues'][1]);
$barplot_out -> SetWeight(1);
if ($imgtype === "historical") {
if ($imgtype == "historical") {
$barplot_over = new BarPlot($overuse_data);
$barplot_over -> SetLegend("Traffic Overusage");
$barplot_over -> SetColor('darkred');

30
html/css/bootstrap-toggle.min.css vendored Normal file
View File

@ -0,0 +1,30 @@
/*! ========================================================================
* Bootstrap Toggle: bootstrap-toggle.css v2.2.0
* http://www.bootstraptoggle.com
* ========================================================================
* Copyright 2014 Min Hur, The New York Times Company
* Licensed under MIT
* ======================================================================== */
.checkbox label .toggle,.checkbox-inline .toggle{margin-left:-20px;margin-right:5px}
.toggle{position:relative;overflow:hidden}
.toggle input[type=checkbox]{display:none}
.toggle-group{position:absolute;width:200%;top:0;bottom:0;left:0;transition:left .35s;-webkit-transition:left .35s;-moz-user-select:none;-webkit-user-select:none}
.toggle.off .toggle-group{left:-100%}
.toggle.inactive{opacity:.65;}
.toggle.disabled .toggle-on, .toggle.disabled .toggle-off, .toggle.disabled .toggle-handle{cursor:not-allowed;}
.toggle-on{position:absolute;top:0;bottom:0;left:0;right:50%;margin:0;border:0;border-radius:0}
.toggle-off{position:absolute;top:0;bottom:0;left:50%;right:0;margin:0;border:0;border-radius:0}
.toggle-handle{position:relative;vertical-align:baseline;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px}
.toggle.btn{min-width:46px;min-height:30px}
.toggle-on.btn{padding-right:24px}
.toggle-off.btn{padding-left:18px}
.toggle.btn-lg{min-width:79px;min-height:40px}
.toggle-on.btn-lg{padding-right:31px}
.toggle-off.btn-lg{padding-left:27px}
.toggle-handle.btn-lg{width:40px}
.toggle.btn-sm{min-width:50px;min-height:26px}
.toggle-on.btn-sm{padding-right:20px}
.toggle-off.btn-sm{padding-left:14px}
.toggle.btn-xs{min-width:35px;min-height:20px}
.toggle-on.btn-xs{padding-right:12px}
.toggle-off.btn-xs{padding-left:8px}

11743
html/css/bootstrap.css vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,168 +0,0 @@
/* Copyright Notice
* bootstrap5-toggle v3.7.4
* https://palcarazm.github.io/bootstrap5-toggle/
* @author 2011-2014 Min Hur (https://github.com/minhur)
* @author 2018-2019 Brent Ely (https://github.com/gitbrent)
* @author 2022 Pablo Alcaraz Martínez (https://github.com/palcarazm)
* @funding GitHub Sponsors
* @see https://github.com/sponsors/palcarazm
* @license MIT
* @see https://github.com/palcarazm/bootstrap5-toggle/blob/master/LICENSE
*/
/*
* @added 3.0.0: Return support for "*-xs" removed in Bootstrap-4
* @see: [Comment](https://github.com/twbs/bootstrap/issues/21881#issuecomment-341972830)
*/
/*.btn-group-xs > .btn, .btn-xs {*/
/* padding: .35rem .4rem .25rem .4rem;*/
/* font-size: .875rem;*/
/* line-height: .5;*/
/* border-radius: .2rem;*/
/*}*/
.checkbox label .toggle, .checkbox-inline .toggle {
margin-left: -1.25rem;
margin-right: .35rem;
}
.toggle {
position: relative;
overflow: hidden;
}
.toggle:hover > .toggle-group > .toggle-handle,
.toggle:focus > .toggle-group > .toggle-handle {
background-color: var(--light);
opacity: 0.5;
}
.toggle > input[type="checkbox"] {
display: none;
}
.toggle > .toggle-group {
position: absolute;
width: 200%;
top: 0;
bottom: 0;
left: 0;
transition: left 0.35s;
-webkit-transition: left 0.35s;
user-select: none;
-moz-user-select: none;
-webkit-user-select: none;
}
.toggle.btn:not(.disabled) { cursor: pointer; }
.toggle.btn.disabled{ cursor:not-allowed; }
.toggle >.toggle-group >.btn { cursor: inherit; }
.toggle.off > .toggle-group {
left: -100%;
}
.toggle.indeterminate > .toggle-group {
left: -50%;
}
.toggle > .toggle-group > .toggle-on {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 50%;
margin: 0;
border: 0;
border-radius: 0;
}
.toggle > .toggle-group > .toggle-off {
position: absolute;
top: 0;
bottom: 0;
left: 50%;
right: 0;
margin: 0;
border: 0;
border-radius: 0;
box-shadow: none; /* Bootstrap 4.0 Support via (Issue #186)[https://github.com/minhur/bootstrap-toggle/issues/186]) */
}
.toggle > .toggle-group > .toggle-handle {
position: relative;
margin: 0 auto;
padding-top: 0px;
padding-bottom: 0px;
height: 100%;
width: 0px;
border-width: 0 1px;
background-color: var(--light);
border-color: var(--light);
}
/** Support for input-group
* @author (bryan-brancotte)[https://github.com/bryan-brancotte]
* @see https://github.com/gitbrent/bootstrap4-toggle/issues/32#issuecomment-616974580
*/
.input-group .toggle > .toggle-group > .toggle-on,
.input-group .toggle > .toggle-group > .toggle-off{
position: absolute;
}
.input-group:not(.has-validation)>:not(:last-child).toggle,
.input-group.has-validation>:nth-last-child(n+3).toggle{
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.input-group>:not(:first-child).toggle{
margin-left: -1px;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.toggle:not(:hover):not(:focus).btn-outline-primary > .toggle-group > .toggle-handle {
background-color: var(--primary);
border-color: var(--primary);
}
.toggle:not(:hover):not(:focus).btn-outline-secondary > .toggle-group > .toggle-handle {
background-color: var(--secondary);
border-color: var(--secondary);
}
.toggle:not(:hover):not(:focus).btn-outline-success > .toggle-group > .toggle-handle {
background-color: var(--success);
border-color: var(--success);
}
.toggle:not(:hover):not(:focus).btn-outline-danger > .toggle-group > .toggle-handle {
background-color: var(--danger);
border-color: var(--danger);
}
.toggle:not(:hover):not(:focus).btn-outline-warning > .toggle-group > .toggle-handle {
background-color: var(--warning);
border-color: var(--warning);
}
.toggle:not(:hover):not(:focus).btn-outline-info > .toggle-group > .toggle-handle {
background-color: var(--info);
border-color: var(--info);
}
.toggle:not(:hover):not(:focus).btn-outline-light > .toggle-group > .toggle-handle {
background-color: var(--light);
border-color: var(--light);
}
.toggle:not(:hover):not(:focus).btn-outline-dark > .toggle-group > .toggle-handle {
background-color: var(--dark);
border-color: var(--dark);
}
/* NOTE: Must come first, so classes below override as needed */
/* [default] (bootstrap-4.1.3 - .btn - h:38px) */
.toggle.btn { min-width: 3.7rem; min-height: 2.15rem; }
.toggle > .toggle-group > .toggle-on.btn { padding-right: 1.5rem; }
.toggle > .toggle-group > .toggle-off.btn { padding-left: 1.5rem; }
/* `lg` (bootstrap-4.1.3 - .btn - h:48px) */
.toggle.btn-lg { min-width: 5rem; min-height: 2.815rem; }
.toggle > .toggle-group > .toggle-on.btn-lg { padding-right: 2rem; }
.toggle > .toggle-group > .toggle-off.btn-lg { padding-left: 2rem; }
.toggle > .toggle-group > .toggle-handle.btn-lg { width: 2.5rem; }
/* `sm` (bootstrap-4.1.3 - .btn - h:31px) */
.toggle.btn-sm { min-width: 3.125rem; min-height: 1.938rem; }
.toggle > .toggle-group > .toggle-on.btn-sm { padding-right: 1rem; }
.toggle > .toggle-group > .toggle-off.btn-sm { padding-left: 1rem; }
/* `xs` (bootstrap-3.3 - .btn - h:22px) */
.toggle.btn-xs { min-width: 2.19rem; min-height: 1.375rem; }
.toggle > .toggle-group > .toggle-on.btn-xs { padding-right: .8rem; }
.toggle > .toggle-group > .toggle-off.btn-xs { padding-left: .8rem; }

View File

@ -1,14 +0,0 @@
/* Copyright Notice
* bootstrap5-toggle v3.7.4
* https://palcarazm.github.io/bootstrap5-toggle/
* @author 2011-2014 Min Hur (https://github.com/minhur)
* @author 2018-2019 Brent Ely (https://github.com/gitbrent)
* @author 2022 Pablo Alcaraz Martínez (https://github.com/palcarazm)
* @funding GitHub Sponsors
* @see https://github.com/sponsors/palcarazm
* @license MIT
* @see https://github.com/palcarazm/bootstrap5-toggle/blob/master/LICENSE
*/
.checkbox label .toggle,.checkbox-inline .toggle{margin-left:-1.25rem;margin-right:.35rem}.toggle{position:relative;overflow:hidden}.toggle:focus>.toggle-group>.toggle-handle,.toggle:hover>.toggle-group>.toggle-handle{background-color:var(--light);opacity:.5}.toggle>input[type=checkbox]{display:none}.toggle>.toggle-group{position:absolute;width:200%;top:0;bottom:0;left:0;transition:left .35s;-webkit-transition:left .35s;user-select:none;-moz-user-select:none;-webkit-user-select:none}.toggle.btn:not(.disabled){cursor:pointer}.toggle.btn.disabled{cursor:not-allowed}.toggle>.toggle-group>.btn{cursor:inherit}.toggle.off>.toggle-group{left:-100%}.toggle.indeterminate>.toggle-group{left:-50%}.toggle>.toggle-group>.toggle-on{position:absolute;top:0;bottom:0;left:0;right:50%;margin:0;border:0;border-radius:0}.toggle>.toggle-group>.toggle-off{position:absolute;top:0;bottom:0;left:50%;right:0;margin:0;border:0;border-radius:0;box-shadow:none}.toggle>.toggle-group>.toggle-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px;background-color:var(--light);border-color:var(--light)}.input-group .toggle>.toggle-group>.toggle-off,.input-group .toggle>.toggle-group>.toggle-on{position:absolute}.input-group.has-validation>:nth-last-child(n+3).toggle,.input-group:not(.has-validation)>:not(:last-child).toggle{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child).toggle{margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.toggle:not(:hover):not(:focus).btn-outline-primary>.toggle-group>.toggle-handle{background-color:var(--primary);border-color:var(--primary)}.toggle:not(:hover):not(:focus).btn-outline-secondary>.toggle-group>.toggle-handle{background-color:var(--secondary);border-color:var(--secondary)}.toggle:not(:hover):not(:focus).btn-outline-success>.toggle-group>.toggle-handle{background-color:var(--success);border-color:var(--success)}.toggle:not(:hover):not(:focus).btn-outline-danger>.toggle-group>.toggle-handle{background-color:var(--danger);border-color:var(--danger)}.toggle:not(:hover):not(:focus).btn-outline-warning>.toggle-group>.toggle-handle{background-color:var(--warning);border-color:var(--warning)}.toggle:not(:hover):not(:focus).btn-outline-info>.toggle-group>.toggle-handle{background-color:var(--info);border-color:var(--info)}.toggle:not(:hover):not(:focus).btn-outline-light>.toggle-group>.toggle-handle{background-color:var(--light);border-color:var(--light)}.toggle:not(:hover):not(:focus).btn-outline-dark>.toggle-group>.toggle-handle{background-color:var(--dark);border-color:var(--dark)}.toggle.btn{min-width:3.7rem;min-height:2.15rem}.toggle>.toggle-group>.toggle-on.btn{padding-right:1.5rem}.toggle>.toggle-group>.toggle-off.btn{padding-left:1.5rem}.toggle.btn-lg{min-width:5rem;min-height:2.815rem}.toggle>.toggle-group>.toggle-on.btn-lg{padding-right:2rem}.toggle>.toggle-group>.toggle-off.btn-lg{padding-left:2rem}.toggle>.toggle-group>.toggle-handle.btn-lg{width:2.5rem}.toggle.btn-sm{min-width:3.125rem;min-height:1.938rem}.toggle>.toggle-group>.toggle-on.btn-sm{padding-right:1rem}.toggle>.toggle-group>.toggle-off.btn-sm{padding-left:1rem}.toggle.btn-xs{min-width:2.19rem;min-height:1.375rem}.toggle>.toggle-group>.toggle-on.btn-xs{padding-right:.8rem}.toggle>.toggle-group>.toggle-off.btn-xs{padding-left:.8rem}
/*# sourceMappingURL=bootstrap5-toggle.min.css.map */

View File

@ -67,36 +67,6 @@
-moz-box-sizing: border-box;
box-sizing: border-box;
}
:root {
--blue: #2196F3;
--indigo: #3F51B5;
--purple: #9C27B0;
--pink: #E91E63;
--red: #b71c1c;
--orange: #FF9800;
--yellow: #FFEB3B;
--green: #4CAF50;
--teal: #20c997;
--cyan: #17a2b8;
--white: #fff;
--gray: #555555;
--gray-dark: #333333;
--primary: #116894;
--secondary: #6c757d;
--success: #4d9221;
--info: #4bb1cf;
--warning: #f0ad4e;
--danger: #b71c1c;
--light: #F5F7FA;
--dark: #434A54;
--breakpoint-xs: 0;
--breakpoint-sm: 576px;
--breakpoint-md: 768px;
--breakpoint-lg: 992px;
--breakpoint-xl: 1200px;
--font-family-sans-serif: 'Source Sans 3', 'Helvetica Neue', Helvetica, Arial, sans-serif;
--font-family-monospace: Monaco, Menlo, Consolas, "Courier New", monospace;
}
article,
aside,
details,
@ -2074,7 +2044,7 @@ pre code {
}
.pre-scrollable {
max-height: 340px;
overflow-y: auto;
overflow-y: scroll;
}
form {
margin: 0 0 10px;
@ -6916,20 +6886,17 @@ i.menu-icon,
}
.login-box {
padding: 50px;
background: url('../images/brand-observium.svg');
background-size: 162px 34px;
background: url('../images/brand-observium.png');
background-position: right 10px bottom 10px;
background-repeat: no-repeat;
}
.shadow-box {
position: relative;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
padding: 10px;
margin-bottom: 10px;
width: 100%;
box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 4px rgba(0, 0, 0, 0.24);
@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and ( min--moz-device-pixel-ratio: 2), only screen and ( min-device-pixel-ratio: 2), only screen and ( min-resolution: 144dpi), only screen and ( min-resolution: 2dppx) {
.login-box {
background: url('../images/brand-observium-x2.png');
background-size: 162px 30px;
background-position: right 10px bottom 10px;
background-repeat: no-repeat;
}
}
.box-content {
/*scrollbar-width: thin;
@ -8615,8 +8582,7 @@ input[type="button"].btn-block {
text-decoration: none;
}
.navbar .brand-observium {
background: url('../images/brand-observium.svg');
background-size: 162px 30px;
background: url('../images/brand-observium.png');
display: inline-block;
width: 162px;
height: 30px;
@ -8625,6 +8591,12 @@ input[type="button"].btn-block {
margin: 5px;
margin-right: 20px;
}
@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and ( min--moz-device-pixel-ratio: 2), only screen and ( min-device-pixel-ratio: 2), only screen and ( min-resolution: 144dpi), only screen and ( min-resolution: 2dppx) {
.navbar .brand-observium {
background: url('../images/brand-observium-x2.png');
background-size: 162px 30px;
}
}
.navbar-text {
margin-bottom: 0;
line-height: 40px;
@ -9626,7 +9598,7 @@ a.thumbnail:focus {
}
.label {
display: inline;
padding: 0.1em 0.5em 0.1em;
padding: 0.1em 0.5em 0.2em;
font-size: 80%;
font-weight: 600;
line-height: 1;
@ -10979,7 +10951,7 @@ select.selectpicker {
.bootstrap-select .dropdown-menu > .inner:focus {
outline: none !important;
}
.bootstrap-select .dropdown-menu .inner {
.bootstrap-select .dropdown-menu.inner {
position: static;
float: none;
border: 0;
@ -10988,25 +10960,6 @@ select.selectpicker {
border-radius: 0;
-webkit-box-shadow: none;
box-shadow: none;
/*scrollbar-width: thin;
scrollbar-color: rgba(128, 128, 128, 0.2) @brand-border;*/
}
.bootstrap-select .dropdown-menu .inner::-webkit-scrollbar-track {
background-color: #f9f9f9;
}
.bootstrap-select .dropdown-menu .inner::-webkit-scrollbar-corner {
background-color: #f9f9f9;
}
.bootstrap-select .dropdown-menu .inner::-webkit-scrollbar {
width: 10px;
height: 10px;
/* background-color: @box-header-bg; */
}
.bootstrap-select .dropdown-menu .inner::-webkit-scrollbar-thumb {
border-radius: 2px;
background-color: #dddddd;
border: 2px solid #f9f9f9;
/*border: 2px solid @box-header-bg;*/
}
.bootstrap-select .dropdown-menu li {
position: relative;
@ -11851,10 +11804,6 @@ svg.leaflet-image-layer.leaflet-interactive path {
.bootstrap-select ul.inner > li.divider {
margin: 2px 1px;
}
/* funny label background */
.label-rainbow {
background-image: linear-gradient(to right, gray, red, orange, yellow, green, blue, indigo, violet);
}
/* Remove hover line under links */
a [class^="icon-"],
a [class*=" icon-"] {
@ -11887,12 +11836,6 @@ a [class*=" icon-"] {
justify-content: center;
/* Optional, to align inner flex-items horizontally within the column */
}
.confirmation-buttons > .btn-group {
display: flex;
/* Do not wrap confirmation buttons */
align-items: center;
justify-content: center;
}
.editing-only {
display: none;
}
@ -12086,6 +12029,15 @@ form > button.btn-icon {
margin-right: 5px;
margin-top: 1px;
}
[class^="sprite-"],
[class*=" sprite-"] {
display: inline-block;
height: 16px;
width: 16px;
margin-top: 2px;
margin-right: 0.4em;
vertical-align: text-top;
}
h3 > [class*=" sprite-"],
h3 > [class^="sprite-"] {
margin-top: 3px;

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 339 KiB

View File

@ -1,484 +0,0 @@
<?php
// ******************************************
// sensible defaults
$mapdir = 'configs';
$observium_base = '../../';
$observium_url = '/';
$ignore_observium = FALSE;
$config['base_url'] = $observium_url;
include_once("../includes/observium.inc.php");
include($config['html_dir'] . "/includes/authenticate.inc.php");
// Don't run if weathermap isn't enabled
if (!$config['weathermap']['enable'] || $_SESSION['userlevel'] < 7) {
die();
}
$config['base_url'] = $config['url_path'] ?? $observium_url;
$observium_found = TRUE;
// ******************************************
function js_escape($str) {
$str = str_replace([ '\\', "'" ], [ '\\\\', "\\\'" ], $str);
return ("'" . $str . "'");
}
if (isset($_REQUEST['command']) && $_REQUEST["command"] == 'link_step2') {
$dataid = (int)$_REQUEST['dataid'];
?>
<html>
<head>
<script type="text/javascript">
function update_source_step2(graphid) {
var graph_url, hover_url;
var base_url = '<?php echo isset($config['base_url']) ? $config['base_url'] : ''; ?>';
if (typeof window.opener == "object") {
graph_url = base_url + 'graph.php?height=100&width=512&device=' + graphid + '&type=device_bits&legend=no';
info_url = base_url + 'device/device=' + graphid + '/';
opener.document.forms["frmMain"].node_new_name.value = 'test';
opener.document.forms["frmMain"].node_label.value = 'testing';
opener.document.forms["frmMain"].link_infourl.value = info_url;
opener.document.forms["frmMain"].link_hover.value = graph_url;
}
self.close();
}
window.onload = update_source_step2(<?php echo $graphid; ?>);
</script>
</head>
<body>
This window should disappear in a moment.
</body>
</html>
<?php
// end of link step 2
}
if (isset($_REQUEST['command']) && $_REQUEST["command"] == 'link_step1') {
?>
<html>
<head>
<script type="text/javascript" src="editor-resources/jquery-latest.min.js"></script>
<script type="text/javascript">
function filterlist(previous) {
var filterstring = $('input#filterstring').val();
if (filterstring == '') {
$('ul#dslist > li').show();
if ($('#ignore_desc').is(':checked')) {
$("ul#dslist > li:contains('Desc::')").hide();
}
} else if (filterstring != previous) {
$('ul#dslist > li').hide();
$("ul#dslist > li:contains('" + filterstring + "')").show();
if ($('#ignore_desc').is(':checked')) {
$("ul#dslist > li:contains('Desc::')").hide();
}
} else if (filterstring == previous) {
if ($('#ignore_desc').is(':checked')) {
$("ul#dslist > li:contains('Desc::')").hide();
} else {
$('ul#dslist > li').hide();
$("ul#dslist > li:contains('" + filterstring + "')").show();
}
}
}
function filterignore() {
if ($('#ignore_desc').is(':checked')) {
$("ul#dslist > li:contains('Desc::')").hide();
} else {
//$('ul#dslist > li').hide();
$("ul#dslist > li:contains('" + previous + "')").show();
}
}
$(document).ready(function () {
$('span.filter').keyup(function () {
var previous = $('input#filterstring').val();
setTimeout(function () {
filterlist(previous)
}, 500);
}).show();
$('span.ignore').click(function () {
var previous = $('input#filterstring').val();
setTimeout(function () {
filterlist(previous)
}, 500);
});
});
function update_source_step2(graphid, name, portid, ifAlias, ifDesc, ifIndex) {
var graph_url, hover_url;
var base_url = '<?php echo isset($config['base_url']) ? $config['base_url'] : ''; ?>';
if (typeof window.opener == "object") {
graph_url = base_url + 'graph.php?height=100&width=512&id=' + portid + '&type=port_bits&legend=no';
info_url = base_url + 'graphs/type=port_bits/id=' + portid + '/';
opener.document.forms["frmMain"].node_new_name.value = 'test';
opener.document.forms["frmMain"].node_label.value = 'testing';
opener.document.forms["frmMain"].link_infourl.value = info_url;
opener.document.forms["frmMain"].link_hover.value = graph_url;
}
self.close();
}
function update_source_step1(dataid, name, portid, ifAlias, ifDesc, ifIndex) {
// This must be the section that looks after link properties
var newlocation;
var fullpath;
var rra_path = <?php echo js_escape($config['install_dir'] . '/rrd/'); ?>+name + '/port-';
if (typeof window.opener == "object") {
//fullpath = rra_path + ifIndex + '.rrd:INOCTETS:OUTOCTETS';
fullpath = 'obs_port:'+portid;
//if (document.forms['mini'].aggregate.checked) {
// opener.document.forms["frmMain"].link_target.value = opener.document.forms["frmMain"].link_target.value + " " + fullpath;
//} else {
opener.document.forms["frmMain"].link_target.value = fullpath;
//}
}
if (document.forms['mini'].overlib.checked) {
window.onload = update_source_step2(dataid, name, portid, ifAlias, ifDesc, ifIndex);
} else {
self.close();
}
}
function applyDSFilterChange(objForm) {
strURL = '?host_id=' + objForm.host_id.value;
strURL = strURL + '&command=link_step1';
if (objForm.overlib.checked) {
strURL = strURL + "&overlib=1";
} else {
strURL = strURL + "&overlib=0";
}
// document.frmMain.link_bandwidth_out_cb.checked
if (objForm.aggregate.checked) {
strURL = strURL + "&aggregate=1";
} else {
strURL = strURL + "&aggregate=0";
}
document.location = strURL;
}
</script>
<style type="text/css">
body {
font-family: sans-serif;
font-size: 10pt;
}
ul {
list-style: none;
margin: 0;
padding: 0;
}
ul {
border: 1px solid black;
}
ul li.row0 {
background: #ddd;
}
ul li.row1 {
background: #ccc;
}
ul li {
border-bottom: 1px solid #aaa;
border-top: 1px solid #eee;
padding: 2px;
}
ul li a {
text-decoration: none;
color: black;
}
</style>
<title>Pick a data source</title>
</head>
<body>
<?php
$host_id = -1;
$overlib = TRUE;
$aggregate = FALSE;
if (isset($_REQUEST['aggregate'])) {
$aggregate = ($_REQUEST['aggregate'] == 0 ? FALSE : TRUE);
}
if (isset($_REQUEST['overlib'])) {
$overlib = ($_REQUEST['overlib'] == 0 ? FALSE : TRUE);
}
if (isset($_REQUEST['host_id'])) {
$host_id = (int)$_REQUEST['host_id'];
}
$hosts = dbFetchRows("SELECT `device_id`,`hostname` FROM `devices` ORDER BY `hostname`");
?>
<h3>Pick an Observium port:</h3>
<form name="mini">
<?php
if (!safe_empty($hosts)) {
print 'Host: <select name="host_id" onChange="applyDSFilterChange(document.mini)">';
print '<option ' . ($host_id == -1 ? 'SELECTED' : '') . ' value="-1">Any</option>';
print '<option ' . ($host_id == 0 ? 'SELECTED' : '') . ' value="0">None</option>';
foreach ($hosts as $host) {
print '<option ';
if ($host_id == $host['device_id']) {
print " SELECTED ";
}
print 'value="' . $host['device_id'] . '">' . $host['hostname'] . '</option>';
}
print '</select><br />';
}
print '<span class="filter" style="display: none;">Filter: <input id="filterstring" name="filterstring" size="20"> (case-sensitive)<br /></span>';
print '<input id="overlib" name="overlib" type="checkbox" value="yes" ' . ($overlib ? 'CHECKED' : '') . '> <label for="overlib">Also set OVERLIBGRAPH and INFOURL.</label><br />';
print '<input id="aggregate" name="aggregate" type="checkbox" value="yes" ' . ($aggregate ? 'CHECKED' : '') . '> <label for="aggregate">Append TARGET to existing one (Aggregate)</label><br />';
print '<span class="ignore"><input id="ignore_desc" name="ignore_desc" type="checkbox" value="yes"> <label for="ignore_desc">Ignore blank interface descriptions</label></span>';
print '</form><div class="listcontainer"><ul id="dslist">';
$query = "SELECT devices.device_id,hostname,ports.port_id,ports.ifAlias,ports.ifIndex,ports.ifDescr FROM devices LEFT JOIN ports ON devices.device_id=ports.device_id WHERE ports.disabled=0";
if ($host_id > 0) {
$query .= " AND devices.device_id='$host_id'";
}
$query .= " ORDER BY hostname,ports.ifAlias";
$ports = dbFetchRows($query);
$i = 0;
if (count($ports) > 0) {
foreach ($ports as $port) {
echo "<li class=\"row" . ($i % 2) . "\">";
$key = $port['device_id'] . "','" . $port['hostname'] . "','" . $port['port_id'] . "','" . addslashes($port['ifAlias']) . "','" . addslashes($port['ifDescr']) . "','" . $port['ifIndex'];
echo "<a href=\"#\" onclick=\"update_source_step1('$key')\">
<span style='color:darkred'>" . $port['hostname'] . "</span> <b>|</b>
<span style='color:darkblue'>" . $port['ifDescr'] . "</span> <b>|</b> " .
$port['ifAlias'] . "</a>";
echo "</li>\n";
$i++;
}
} else {
print "<li>No results...</li>";
}
?>
</ul>
</div>
</body>
</html>
<?php
} // end of link step 1
if (isset($_REQUEST['command']) && $_REQUEST["command"] == 'node_step1') {
$host_id = -1;
$overlib = TRUE;
$aggregate = FALSE;
if (isset($_REQUEST['aggregate'])) {
$aggregate = ($_REQUEST['aggregate'] == 0 ? FALSE : TRUE);
}
if (isset($_REQUEST['overlib'])) {
$overlib = ($_REQUEST['overlib'] == 0 ? FALSE : TRUE);
}
if (isset($_REQUEST['host_id'])) {
$host_id = (int)$_REQUEST['host_id'];
}
$hosts = dbFetchRows("SELECT `device_id` AS `id`,`hostname` as `name` FROM `devices` ORDER BY `hostname`");
?>
<html>
<head>
<script type="text/javascript" src="editor-resources/jquery-latest.min.js"></script>
<script type="text/javascript">
function filterlist(previous) {
var filterstring = $('input#filterstring').val();
if (filterstring == '') {
$('ul#dslist > li').show();
return;
}
if (filterstring != previous) {
$('ul#dslist > li').hide();
$("ul#dslist > li:contains('" + filterstring + "')").show();
//$('ul#dslist > li').contains(filterstring).show();
}
}
$(document).ready(function () {
$('span.filter').keyup(function () {
var previous = $('input#filterstring').val();
setTimeout(function () {
filterlist(previous)
}, 500);
}).show();
});
function applyDSFilterChange(objForm) {
strURL = '?host_id=' + objForm.host_id.value;
strURL = strURL + '&command=node_step1';
if (objForm.overlib.checked) {
strURL = strURL + "&overlib=1";
} else {
strURL = strURL + "&overlib=0";
}
document.location = strURL;
}
</script>
<script type="text/javascript">
function update_source_step1(graphid, name) {
// This is the section that sets the Node Properties
var graph_url, hover_url;
var base_url = '<?php echo($config['base_url'] ?? ''); ?>';
if (typeof window.opener == "object") {
graph_url = base_url + 'graph.php?height=100&width=512&device=' + graphid + '&type=device_bits&legend=no';
info_url = base_url + 'device/device=' + graphid + '/';
// only set the overlib URL unless the box is checked
if (document.forms['mini'].overlib.checked) {
opener.document.forms["frmMain"].node_infourl.value = info_url;
}
opener.document.forms["frmMain"].node_hover.value = graph_url;
opener.document.forms["frmMain"].node_new_name.value = name;
opener.document.forms["frmMain"].node_label.value = name;
}
self.close();
}
</script>
<style type="text/css">
body {
font-family: sans-serif;
font-size: 10pt;
}
ul {
list-style: none;
margin: 0;
padding: 0;
}
ul {
border: 1px solid black;
}
ul li.row0 {
background: #ddd;
}
ul li.row1 {
background: #ccc;
}
ul li {
border-bottom: 1px solid #aaa;
border-top: 1px solid #eee;
padding: 2px;
}
ul li a {
text-decoration: none;
color: black;
}
</style>
<title>Pick a graph</title>
</head>
<body>
<h3>Pick a graph:</h3>
<form name="mini">
<?php
if (!safe_empty($hosts)) {
print 'Host: <select name="host_id" onChange="applyDSFilterChange(document.mini)">';
print '<option ' . ($host_id == -1 ? 'SELECTED' : '') . ' value="-1">Any</option>';
print '<option ' . ($host_id == 0 ? 'SELECTED' : '') . ' value="0">None</option>';
foreach ($hosts as $host) {
print '<option ';
if ($host_id == $host['id']) {
print " SELECTED ";
}
print 'value="' . $host['id'] . '">' . $host['name'] . '</option>';
}
print '</select><br />';
}
print '<span class="filter" style="display: none;">Filter: <input id="filterstring" name="filterstring" size="20"> (case-sensitive)<br /></span>';
print '<input id="overlib" name="overlib" type="checkbox" value="yes" ' . ($overlib ? 'CHECKED' : '') . '> <label for="overlib">Set both OVERLIBGRAPH and INFOURL.</label><br />';
print '</form><div class="listcontainer"><ul id="dslist">';
if (!empty($SQL_picklist)) {
foreach (dbFetchRows($SQL_picklist) as $queryrows) {
echo "<li>";
$key = $queryrows['id'];
$name = $queryrows['name'];
echo "<a href=\"#\" onclick=\"update_source_step1('$key','$name')\">" . $queryrows['name'] . "</a>";
echo "</li>\n";
$i++;
}
}
//..} else {
// print "No results...";
// }
?>
</ul>
</body>
</html>
<?php
} // end of node step 1
// EOF

View File

@ -6,7 +6,7 @@
*
* @package observium
* @subpackage web
* @copyright (C) Adam Armstrong
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/
@ -26,19 +26,12 @@ if (is_numeric($_GET['id']) && ($config['allow_unauth_graphs'] || port_permitted
//$title .= " :: Port ".generate_port_link($port);
$auth = TRUE;
if ($device['os'] === 'netapp' && is_device_mib($device, "NETAPP-MIB")) {
$oid_in_octets = 'if64InOctets';
$oid_out_octets = 'if64OutOctets';
$mib = "NETAPP-MIB";
} else {
$oid_in_octets = $port['port_64bit'] ? 'ifHCInOctets' : 'ifInOctets';
$oid_out_octets = $port['port_64bit'] ? 'ifHCOutOctets' : 'ifOutOctets';
$mib = "IF-MIB";
}
$time = time();
$HC = $port['port_64bit'] ? 'HC' : '';
$data = snmp_get_multi_oid($device, [ $oid_in_octets . '.' . $port['ifIndex'], $oid_out_octets . '.' . $port['ifIndex'] ], [], $mib);
$data = snmp_get_multi_oid($device, "if{$HC}InOctets." . $port['ifIndex'] . " if{$HC}OutOctets." . $port['ifIndex'], [], "IF-MIB");
printf("%lf|%s|%s\n", snmp_endtime(), $data[$port['ifIndex']][$oid_in_octets], $data[$port['ifIndex']][$oid_out_octets]);
printf("%lf|%s|%s\n", $time, $data[$port['ifIndex']]["if{$HC}InOctets"], $data[$port['ifIndex']]["if{$HC}OutOctets"]);
} else {
// not authenticated
die("Unauthenticated");

View File

@ -6,7 +6,7 @@
*
* @package observium
* @subpackage web
* @copyright (C) Adam Armstrong
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/

View File

@ -6,7 +6,7 @@
*
* @package observium
* @subpackage feed
* @copyright (C) Adam Armstrong
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/

View File

@ -4,9 +4,9 @@
*
* This file is part of Observium.
*
* @package observium
* @subpackage graphs
* @copyright (C) Adam Armstrong
* @package observium
* @subpackage graphs
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2023 Observium Limited
*
*/
@ -15,7 +15,7 @@
// Define this is graph
define('OBS_GRAPH', TRUE);
$gstart = microtime(TRUE); // Needs common.php
$start = microtime(TRUE); // Needs common.php
include_once("../includes/observium.inc.php");
@ -44,7 +44,7 @@ $vars = get_vars('GET', $auth);
include($config['html_dir'] . "/includes/graphs/graph.inc.php");
$runtime = elapsed_time($gstart);
$runtime = microtime(TRUE) - $start;
print_debug("Runtime " . $runtime . " secs");

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 37 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 37 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@ -1 +0,0 @@
<svg viewBox="-.03 -.02 269.8 68.07" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><clipPath id="a"><path d="m830.552 500.702h202.313v51.015h-202.313z"/></clipPath><g clip-path="url(#a)" fill="#00a0c8" transform="matrix(1.3333333 0 0 -1.3333333 -1107.4026 735.62171)"><path d="m0 0c2.213-2.456 5.118-3.683 8.713-3.683 3.594 0 6.499 1.227 8.713 3.683 2.213 2.455 3.321 5.48 3.321 9.075 0 3.507-1.108 6.488-3.321 8.943-2.214 2.455-5.119 3.683-8.713 3.683-3.595 0-6.5-1.228-8.713-3.683-2.215-2.455-3.321-5.436-3.321-8.943 0-3.595 1.106-6.62 3.321-9.075m24.25 40.961h.136c1.761 0 3.188-1.428 3.188-3.188l-.029-43.688c0-1.799-1.458-3.257-3.256-3.257s-3.256 1.458-3.256 3.257v1.338c-3.942-3.636-7.418-5.477-12.618-5.477-5.291 0-9.667 1.843-13.127 5.529s-5.189 8.219-5.189 13.602c0 5.291 1.729 9.779 5.189 13.466 3.46 3.686 7.79 5.529 12.991 5.529 5.2 0 8.758-1.753 12.754-5.434l.029 15.135c0 1.76 1.427 3.188 3.188 3.188" transform="translate(884.8704 510.7553)"/><path d="m0 0c.701-1.44.114-3.191-1.329-3.887-2.105-1.013-4.514-1.52-7.226-1.52-3.845 0-6.74 1.187-8.684 3.562-1.945 2.374-2.917 5.732-2.917 10.074v18.044l.068 5.563.005 10.513c0 1.76 1.428 3.188 3.189 3.188 1.76 0 3.188-1.428 3.188-3.188l-.005-10.513h9.121c1.536 0 2.782-1.245 2.782-2.781s-1.246-2.782-2.782-2.782h-9.121v-18.519c0-4.795 1.967-7.191 5.902-7.191 1.333 0 2.703.288 4.111.864 1.412.577 3.03-.055 3.698-1.427" transform="translate(936.8406 506.1089)"/><path d="m0 0v30.019c0 1.704 1.382 3.086 3.087 3.086 1.704 0 3.086-1.382 3.086-3.086v-1.533c2.023 3.259 5.824 5.569 10.447 5.569.361 0 .721-.011 1.079-.034 1.764-.111 3.083-1.665 2.913-3.423-.163-1.686-1.64-2.932-3.33-2.812-.268.019-.534.028-.797.028-2.895 0-5.035-.995-6.911-2.985-1.877-1.991-3.062-5.177-3.062-9.066v-15.763c0-1.798-1.457-3.256-3.256-3.256-1.798 0-3.256 1.458-3.256 3.256" transform="translate(940.2513 504.84)"/><path d="m0 0c2.193-2.457 5.088-3.685 8.686-3.685 3.597 0 6.515 1.228 8.752 3.685 2.238 2.457 3.356 5.484 3.356 9.081 0 3.51-1.118 6.493-3.356 8.95-2.237 2.456-5.155 3.685-8.752 3.685-3.598 0-6.493-1.229-8.686-3.685-2.194-2.457-3.29-5.462-3.29-9.015 0-3.554 1.096-6.559 3.29-9.016m24.252 27.196c1.723 0 3.12-1.397 3.12-3.12v-30.121c0-1.723-1.397-3.12-3.12-3.12s-3.121 1.397-3.121 3.12v1.542c-3.325-3.487-7.529-5.544-12.821-5.544-5.201 0-9.531 1.853-12.991 5.562-3.46 3.708-5.19 8.299-5.19 13.772 0 5.427 1.718 9.915 5.156 13.466 3.437 3.55 7.778 5.325 13.025 5.325 5.155 0 9.007-1.862 12.821-5.433v1.431c0 1.723 1.398 3.12 3.121 3.12" transform="translate(969.137 510.749)"/><path d="m0 0v30.12c0 1.724 1.397 3.121 3.12 3.121h.136c1.723 0 3.121-1.397 3.121-3.121v-1.295c2.747 3.49 6.15 5.366 11.532 5.366 4.07 0 7.485-1.313 10.244-3.935 2.758-2.623 4.138-6.4 4.138-11.329v-18.927c0-1.723-1.397-3.12-3.121-3.12h-.203c-1.724 0-3.121 1.397-3.121 3.12v17.096c0 3.527-.859 6.251-2.577 8.174-1.72 1.922-3.712 2.883-6.47 2.883-2.94 0-5.349-1.041-7.225-3.12-1.877-2.081-3.062-4.996-3.062-8.252v-16.781c0-1.723-1.397-3.12-3.12-3.12h-.272c-1.723 0-3.12 1.397-3.12 3.12" transform="translate(1000.5729 504.7043)"/><path d="m0 0c-2.102 0-4.043-1.515-4.831-3.463l-1.97-4.437c-.997-2.244.569-4.694 3.225-4.694 1.543 0 2.928.862 3.489 2.171l4.715 10.423z" transform="translate(837.6549 514.1779)"/><path d="m0 0-18.965 43.345c-1.188 2.715-5.042 2.708-6.219-.012l-9.641-22.271c-1.372-3.39.815-6.119 4.473-6.119h.419l7.871 18.703 15.321-36.157c.562-1.31 1.947-2.172 3.489-2.172h.021c2.651-0 4.217 2.441 3.231 4.683" transform="translate(875.0256 506.2664)"/><path d="m0 0c0-2.591-2.1-4.691-4.691-4.691s-4.691 2.1-4.691 4.691 2.1 4.691 4.691 4.691 4.691-2.1 4.691-4.691" transform="translate(857.6281 517.6935)"/></g></svg>

Before

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -1 +0,0 @@
<svg viewBox="0 0 271.5 315.5" xmlns="http://www.w3.org/2000/svg"><g fill="#ffc007" transform="matrix(8.75125 0 0 8.75125 -104.882721 -109.257248)"><path d="m27.186 12.717c.082-.144.189-.216.297-.217-.188 0-.375.041-.517.124l-14.449 8.393c-.284.166-.517.574-.517.907v17.152c0 .125.04.258.096.387z"/><path d="m27.781 12.717 15.09 26.747c.056-.129.096-.262.096-.387v-17.153c0-.333-.233-.741-.517-.906l-14.449-8.393c-.142-.083-.33-.124-.517-.124.108-.001.215.071.297.216z"/><path d="m27.484 19.475-11.96 21.216c-.243.432-.096.982.329 1.229l11.113 6.456c.285.165.75.165 1.035 0l11.113-6.456c.425-.247.572-.797.329-1.229z"/></g></svg>

Before

Width:  |  Height:  |  Size: 629 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 9.2 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 9.3 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 30 KiB

View File

@ -1 +0,0 @@
<svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg"><path d="m0 0c0-7.826-6.348-14.174-14.177-14.174-7.827 0-14.171 6.348-14.171 14.174 0 7.829 6.344 14.174 14.171 14.174 7.829 0 14.177-6.345 14.177-14.174" fill="#6b489d" transform="matrix(10.58275266606 0 0 -10.58275266606 300.00056020513 149.99996329761)"/><path d="m0 0c-1.36-1.579-2.911-2.561-4.067-3.038-1.197-.489-1.73-.505-1.784.835-.102 2.579 1.045 7.362 2.221 11.656 1.016 3.72 1.156 4.365-.61 4.94-1.337.429-2.287.133-4.25-1.676-2.536-2.335-6.396-7.638-8.338-11.676.497-.441 1.048-.875 1.458-1.172.441-.318.79-.219 1.115.284 1.439 2.238 3.833 4.631 6.602 6.31.128.457.263.909.398 1.349-2.29-1.079-4.164-2.47-4.164-2.47 2.37 4.347 5.804 7.867 6.432 7.591.402-.173-.974-3.678-1.959-7.251-1.129-4.091-1.699-7.211-1.523-9.495.162-2.078 1.792-2.63 4.222-1.566 1.829.805 3.559 2.368 4.823 4.274l-.551 1.128c-.005-.006-.015-.019-.025-.023m-.698 9.1c-.662.126-1.351.152-2.078.08-.052-.183-.111-.399-.173-.641 1.828.422 3.485.174 4.58-1.397 1.073-1.55.415-3.963-.674-5.801l.476-.946c.005.013.015.021.019.035 2.958 6.117-.337 8.337-2.15 8.67" fill="#fff" transform="matrix(10.58275266606 0 0 -10.58275266606 216.68568487273 192.1754486416)"/></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -1 +0,0 @@
<svg viewBox="0 0 61.028259 59.731277" xmlns="http://www.w3.org/2000/svg"><path d="m56.11382 33.731278c2.6-.2 4.7 1.5 4.9 4.1.2 2.7-1.7 4.9-4.3 5.1-2.5.2-4.7-1.7-4.9-4.2-.2-2.7 1.6-4.7 4.3-5z" fill="#86da2f"/><path d="m24.51382 55.031278c0-2.6 2-4.6 4.4-4.6s4.7 2.2 4.7 4.7c0 2.4-2 4.5-4.3 4.6-2.9 0-4.8-1.8-4.8-4.7z" fill="#24c2ff"/><path d="m31.61382 25.831278c-.4.2-.6-.1-.7-.4-3.7-6.9-2.6-15.6000004 3.9-20.8000004 1.7-1.4 4.9-1.7 6.3-.3.6.5.7 1.1.8 1.8.2 1.5.5 3 1.5 4.2000004 1.1 1.3 2.5 1.8 4.1 1.7 1.4 0 2.8-.2 3.7 1.4.5.9.3 4.4-.5 5.1-.4.3-.7.1-1 0-2.3-.9-4.7-.9-7.1-.5-.8.1-1.2-.1-1.2-1-.1-1.5-.4-2.9-1.2-4.2-1.5-2.7-4.3-2.8-6.1-.3-1.5 2-1.9 4.4-2.3 6.8-.4 2.1-.3 4.3-.2 6.5z" fill="#ffcb12"/><path d="m34.11382 27.331278c-.2-.3-.1-.6.2-.8 5.7-5.2 14.2-6.2 20.8-1.1 1.7 1.4 2.8 4.3 1.9 6-.4.7-.9 1-1.5 1.2-1.4.6-2.7 1.2-3.6 2.5s-1.1 2.8-.7 4.4c.3 1.3.8 2.7-.5 3.9-.7.7-4.1 1.3-5 .7-.4-.3-.3-.6-.2-1 .3-2.5-.3-4.8-1.2-7-.3-.8-.2-1.2.6-1.4 1.4-.4 2.7-1.1 3.7-2.1 2.2-2.1 1.7-4.8-1.2-6-2.3-1-4.7-.8-7-.6-2.2.1-4.3.7-6.3 1.3z" fill="#86da2f"/><path d="m32.81382 29.931278c.3-.3.5-.2.8 0 6.6 4 10 11.9 7 19.6-.8 2-3.4 4-5.3 3.5-.8-.2-1.2-.6-1.6-1.1-.9-1.2-1.9-2.3-3.4-2.8-1.6-.5-3-.2-4.4.6-1.2.7-2.4 1.6-3.9.7-.9-.5-2.4-3.6-2.1-4.6.2-.4.6-.4 1-.4 2.5-.4 4.5-1.6 6.4-3.2.6-.5 1.1-.5 1.6.2.8 1.2 1.8 2.2 3.1 2.9 2.6 1.5 5.1.2 5.4-2.8.3-2.5-.6-4.7-1.4-6.9-.9-2-2-3.9-3.2-5.7z" fill="#24c2ff"/><path d="m29.61382 30.531278c-.4 2-1.3 3.9-2.5 5.6-3.6 5.4-8.8 7.6-15.2 7-2.2999997-.2-4.1999997-2.1-4.3999997-4-.1-.8.1-1.4.6-2 .7-.9 1.3-1.7 1.6-2.8.5999997-2.2-.2-4-1.8-5.6-2.2-2.2-1.9-4.2.7-5.8.3-.2.7-.4 1.1-.6.5999997-.3 1.0999997-.3 1.2999997.4.9 2.3 2.7 4 4.7 5.4.7.6.7 1 .1 1.7-1.2 1.3-1.9 2.9-2 4.7-.2 2.2 1.1 3.6 3.3 3.6 1.4 0 2.7-.5 3.9-1.1 3.1-1.6 5.5-3.9 7.8-6.3.3-.1.4-.3.8-.2z" fill="#0069da"/><path d="m13.21382 9.5312776c.2 0 .7.1 1.2.2 3.7.7000004 6-.6 7.2-4.1.8-2.3 2.5-3 4.7-1.8.1 0 .1.1.2.1 2.3 1.3 2.3 1.5.9 3.5-1.2 1.6-1.8 3.4000004-2.1 5.3000004-.2 1.1-.6 1.3-1.6.9-1.6-.6-3.3-.6-5 0-1.9.6-2.7 2.3-2.1 4.2.8 2.5 3 3.6 4.9 4.9s4.1 2 6.2 2.9c.3.1.8.1.7.6-.1.3-.5.3-.9.3-4.5.2-8.8-.5-12.3-3.5-3.3-2.7-5.6999997-6-5.2999997-10.6.2999997-1.5 1.3999997-2.6000004 3.2999997-2.9000004z" fill="#ff4649"/><path d="m5.0138203 37.631278c-2.4.3-4.80000003-1.7-5.00000003-4.2-.2-2.4 1.80000003-4.8 4.10000003-5 2.6-.3 5 1.5 5.2 3.9.1 2.3-1.4 5.1-4.3 5.3z" fill="#0069da"/><path d="m47.01382 2.0312776c2.5-.2 4.9 1.8 5.1 4.3.2 2.4-1.8 4.7000004-4.2 4.9000004-2.6.2-4.9-1.7000004-5.1-4.2000004s1.6-4.8 4.2-5z" fill="#ffcb12"/><path d="m20.91382 3.9312776c.3 2.6-1.5 4.8-4.2 5.2-2.3.3-4.7-1.6-5-3.8-.3-2.9 1.3-4.99999996 4-5.29999996 2.5-.3 4.9 1.59999996 5.2 3.89999996z" fill="#ff4649"/></svg>

Before

Width:  |  Height:  |  Size: 2.6 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 8.1 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@ -1 +0,0 @@
<svg height="256" width="256" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientTransform="matrix(-.3937741 0 0 .393752 978.34969 416.9815)" gradientUnits="userSpaceOnUse" x1="541.33502" x2="606.91248" y1="104.50665" y2="303.14029"><stop offset="0" stop-color="#fff" stop-opacity="0"/><stop offset="1" stop-color="#fff" stop-opacity=".27451"/></linearGradient><g fill-rule="evenodd" transform="matrix(1.3473684 0 0 1.3473684 -902.40019 -586.944907)"><path d="m128 0c-11.39482 27.937051-18.31337 46.237163-31 73.34375 7.7785 8.245207 17.33826 17.811753 32.84375 28.65625-16.66992-6.859577-28.03357-13.728504-36.53125-20.875-16.236461 33.87989-41.690855 82.12139-93.3125 174.875 40.562707-23.41756 72.007597-37.86167 101.3125-43.375-1.25376-5.40435-1.923505-11.27752-1.875-17.375l.03125-1.28125c.64379-25.99398 14.16934-45.98224 30.1875-44.625 16.01815 1.35723 28.48754 23.53727 27.84375 49.53125-.12127 4.89622-.6905 9.60082-1.65625 13.96875 28.98953 5.67316 60.13787 20.05292 100.15625 43.15625-7.89193-14.52962-14.96051-27.61983-21.6875-40.09375-10.59609-8.21269-21.64301-18.89743-44.1875-30.46875 15.4958 4.02645 26.60184 8.6825 35.25 13.875-68.39515-127.339832-73.92078-144.272124-97.375-199.3125z" fill="#1793d1" transform="matrix(.7421875 0 0 .7421875 669.75015 435.62318)"/><path d="m818.22607 548.55277c-41.18143-55.89508-50.72685-100.94481-53.14467-111.70015 21.96737 50.6686 21.81733 51.28995 53.14467 111.70015z" fill="#fff" fill-opacity=".16568"/><path d="m765.09805 436.43495c-1.05641 2.59705-2.08559 5.1172-3.06152 7.51465-1.08115 2.65585-2.10928 5.19128-3.13111 7.677-1.02174 2.48575-2.03439 4.91156-3.03833 7.30591-1.00398 2.39446-2.01068 4.76169-3.03833 7.14355-1.02758 2.38177-2.06156 4.78845-3.15429 7.23633-1.09273 2.44796-2.23335 4.94504-3.43262 7.53784-1.19937 2.59282-2.45641 5.27815-3.80371 8.09448-.18662.39008-.41312.83402-.60303 1.22925 5.75521 6.09563 12.84133 13.14976 24.28345 21.15234-12.34021-5.07792-20.76511-10.15751-27.06665-15.44677-.32717.66791-.61387 1.26431-.95093 1.94824-.44365.90024-.97632 1.92315-1.43799 2.85278-.80967 1.66032-1.65574 3.36576-2.52807 5.12574-.33524.66652-.62948 1.24283-.97413 1.92504-5.50733 11.05265-12.33962 24.28304-21.12915 40.72754 24.09557-13.57581 50.08533-33.16242 97.29615-16.30493-2.36708-4.48319-4.54319-8.68756-6.58692-12.64038-2.0437-3.95294-3.94246-7.6555-5.70556-11.15601-1.76297-3.50043-3.39212-6.80069-4.917-9.92675-1.52486-3.12599-2.93832-6.0765-4.26757-8.90625-1.32934-2.8297-2.58106-5.55264-3.75733-8.16407-1.17634-2.6114-2.29708-5.11315-3.36304-7.58422-1.06607-2.4712-2.08657-4.89718-3.08471-7.30591-.99823-2.4088-1.97267-4.81178-2.94556-7.23633-.34772-.86638-.69553-1.7689-1.0437-2.64404-2.66339-6.25269-5.3982-12.73163-8.55835-20.15503z" fill="url(#a)"/></g></svg>

Before

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-42 -258 1200 800"><path d="M391.027 103.426c36.994 0 55.491-25.688 55.491-51.378 0-25.688-18.498-50.353-57.546-50.353C360.199.666 254.355.666 254.355.666v173.668h32.879V28.413h103.79c18.496 0 27.745 6.163 27.745 23.635 0 14.385-9.247 22.606-26.718 22.606h-86.315l102.761 98.648h40.078l-73.991-71.932c7.196 2.056 15.416 2.056 16.443 2.056M480.429.669h31.856v173.665h-31.856zM916.137 27.387V.669H759.938l-18.497 26.718h75.016v146.947h31.856V27.387zM678.756 72.6h-81.182c-16.438 0-25.689-7.192-25.689-21.58 0-16.44 11.305-23.633 25.689-23.633h110.98L722.941.669H596.546c-28.775 0-52.407 21.577-52.407 51.382 0 26.715 22.608 48.294 53.434 48.294h81.182c18.5 0 28.775 8.224 28.775 23.637 0 13.357-11.305 22.608-28.775 22.608H566.748l-16.44 27.744h132.558c33.912 0 52.406-24.658 52.406-52.404.003-25.697-21.577-49.33-56.516-49.33M104.325 11.972C97.133 23.272 1.564 174.334 1.564 174.334h33.91l31.858-51.381h67.822l17.47-27.746H84.8l36.993-59.602 86.321 137.697h33.911S147.483 24.301 139.26 10.943c-9.247-13.356-25.686-12.33-34.935 1.029M1079.523 174.334h33.912s-94.539-149.003-102.764-162.362c-9.244-15.415-25.689-14.385-34.938-1.028-7.195 11.301-102.762 162.359-102.762 162.359h33.91l31.855-51.378h68.852l17.467-27.746h-67.82l36.996-59.603z" style="fill:#fff"/></svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-42 -258 1200 800"><g fill="#16325B"><path d="M391.027 103.426c36.994 0 55.491-25.688 55.491-51.378 0-25.688-18.498-50.353-57.546-50.353C360.199.666 254.355.666 254.355.666v173.668h32.879V28.413h103.79c18.496 0 27.745 6.163 27.745 23.635 0 14.385-9.247 22.606-26.718 22.606h-86.315l102.761 98.648h40.078l-73.991-71.932c7.196 2.056 15.416 2.056 16.443 2.056M480.429.669h31.856v173.665h-31.856zM916.137 27.387V.669H759.938l-18.497 26.718h75.016v146.947h31.856V27.387zM678.756 72.6h-81.182c-16.438 0-25.689-7.192-25.689-21.58 0-16.44 11.305-23.633 25.689-23.633h110.98L722.941.669H596.546c-28.775 0-52.407 21.577-52.407 51.382 0 26.715 22.608 48.294 53.434 48.294h81.182c18.5 0 28.775 8.224 28.775 23.637 0 13.357-11.305 22.608-28.775 22.608H566.748l-16.44 27.744h132.558c33.912 0 52.406-24.658 52.406-52.404.003-25.697-21.577-49.33-56.516-49.33M104.325 11.972C97.133 23.272 1.564 174.334 1.564 174.334h33.91l31.858-51.381h67.822l17.47-27.746H84.8l36.993-59.602 86.321 137.697h33.911S147.483 24.301 139.26 10.943c-9.247-13.356-25.686-12.33-34.935 1.029M1079.523 174.334h33.912s-94.539-149.003-102.764-162.362c-9.244-15.415-25.689-14.385-34.938-1.028-7.195 11.301-102.762 162.359-102.762 162.359h33.91l31.855-51.378h68.852l17.467-27.746h-67.82l36.996-59.603z"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 7.3 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -1 +0,0 @@
<svg enable-background="new 0 0 652 652" viewBox="0 0 205 205" xmlns="http://www.w3.org/2000/svg"><g fill="#074576" transform="translate(-15.9 -221.425003)"><path d="m57.1 403.9 93.5-7.5-1-2.5-86.9-3.8-.8-1.9 82.8-7.1-1-2.5-87.1-3.4-.7-1.8 83.3-6.4-1-2.5-87.8-4.6-.8-2 83.8-6-.9-2.3-87.8-3.9-.8-1.8 83.9-6.4-1-2.6-88.5-4.7-.8-2 84.1-6.8-.9-2.4-99.8-3.6z"/><path d="m160 260.4 56 145.4h-47.2l-41.6-107.6-5.2 11.7h-47.8l19.6-49.5c11.4-29.3 55.2-29.3 66.2 0"/></g></svg>

Before

Width:  |  Height:  |  Size: 467 B

View File

@ -1 +0,0 @@
<svg height="161" viewBox="0 -23 212 212" xmlns="http://www.w3.org/2000/svg"><g transform="translate(-144.999557)"><g fill="#967e72"><path d="m356.098 98.226c-68.38-36.052-142.045-31.709-170.14 10.412 10.255 11.888 23.439 22.912 38.977 31.932 50.54 29.315 106.939 26.447 125.983-6.403 6.174-10.607 7.639-23.023 5.18-35.941"/><path d="m167.333 26.651c-8.842 15.173-8.11 34.104.157 52.951 27.467 3.062 51.324-4.9 62.05-23.385 9.26-15.952 6.853-36.498-4.5-56.208-25.688-.334-47.296 8.658-57.707 26.642"/><path d="m352.122 81.495c-9.313-22.494-29.56-45.1-57.446-61.275-20.457-11.859-41.907-18.457-61.422-19.905 6.592 22.745 26.212 46.548 54.516 62.973 21.66 12.555 44.523 18.569 64.352 18.207"/></g><path d="m173.192 98.644c-.732-2.673-2.772-4.733-5.755-5.819-6.278-2.31-15.067.502-19.671 6.264-2.407 3.035-3.296 6.487-2.459 9.466.785 2.672 2.825 4.732 5.755 5.818 6.278 2.283 15.12-.529 19.672-6.264 2.406-3.034 3.296-6.486 2.458-9.465" fill="#e32739"/></g></svg>

Before

Width:  |  Height:  |  Size: 960 B

View File

@ -1 +0,0 @@
<svg viewBox="0 -32 239 239" xmlns="http://www.w3.org/2000/svg"><g fill="#fff" transform="translate(-42.1 -31.6)"><path d="m107.9 209.7c-20.2-49.5-42.5-99.1-65.8-148.7 51.9-13.1 106-24.7 169.6-29.4l6.4 10.8c-47.5 10.1-81.5 27.1-101.1 69.5-12.2 30-11.1 63.5-9.1 97.8"/><path d="m117.7 206.8 21.1-15.1c-17.8-83.2 29.2-133.3 81.6-146.6-66.8 8-116.6 57.7-102.7 161.7"/><path d="m147.7 185.9 20.1-12.8c-12.2-58.6 4.3-101.2 55.5-125.5-51.4 14.2-90.6 62-75.6 138.3"/><path d="m176.8 167.7 22-12.2c-13-48.8-7.1-79.7 26.7-105-36.1 16.5-60.1 57-48.7 117.2"/><path d="m206.2 151.6 20.6-9.8c-22.2-34.6-19-63.2.9-88.3-27.6 18.2-38.5 59.4-21.5 98.1"/><path d="m230 55.2c-3.6 25.5.2 50.5 23.4 75.6l-19.6 7.9c-22.1-39.7-19.9-64.5-3.8-83.5"/><path d="m280.6 122.3-47.6-63.9a50.2 50.2 0 0 0 5 35.4c6.4 11.3 14.7 22.5 23.4 34.3z"/></g></svg>

Before

Width:  |  Height:  |  Size: 822 B

View File

@ -1 +0,0 @@
<svg viewBox="0 -32 239 239" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><radialGradient id="a" cx="82.4933" cy="74.7889" gradientUnits="userSpaceOnUse" r="180.8648"><stop offset="0" stop-color="#fff"/><stop offset="0" stop-color="#fefeff"/><stop offset=".12" stop-color="#c6cfe5"/><stop offset=".24" stop-color="#95a5ce"/><stop offset=".36" stop-color="#6a81bb"/><stop offset=".48" stop-color="#4864ab"/><stop offset=".61" stop-color="#2d4e9f"/><stop offset=".73" stop-color="#1a3e96"/><stop offset=".86" stop-color="#0f3491"/><stop offset="1" stop-color="#0b318f"/></radialGradient><path d="m107.9 209.7c-20.2-49.5-42.5-99.1-65.8-148.7 51.9-13.1 106-24.7 169.6-29.4l6.4 10.8c-47.5 10.1-81.5 27.1-101.1 69.5-12.2 30-11.1 63.5-9.1 97.8" fill="url(#a)" transform="translate(-42.1 -31.6)"/><g fill="#231815"><path d="m75.6 175.2 21.1-15.1c-17.8-83.2 29.2-133.3 81.6-146.6-66.8 8-116.6 57.7-102.7 161.7"/><path d="m105.6 154.3 20.1-12.8c-12.2-58.6 4.3-101.2 55.5-125.5-51.4 14.2-90.6 62-75.6 138.3"/><path d="m134.7 136.1 22-12.2c-13-48.8-7.1-79.7 26.7-105-36.1 16.5-60.1 57-48.7 117.2"/><path d="m164.1 120 20.6-9.8c-22.2-34.6-19-63.2.9-88.3-27.6 18.2-38.5 59.4-21.5 98.1"/><path d="m187.9 23.6c-3.6 25.5.2 50.5 23.4 75.6l-19.6 7.9c-22.1-39.7-19.9-64.5-3.8-83.5"/><path d="m238.5 90.7-47.6-63.9a50.2 50.2 0 0 0 5 35.4c6.4 11.3 14.7 22.5 23.4 34.3z"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1 +0,0 @@
<svg fill="none" viewBox="0 -31 200 200" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(3.986299 0 0 3.986299 -38.282467 -2.658829)"><path d="m44.4199 32.1438h-2.1287c-.0893 0-.152-.086-.126-.1713 1.9667-6.4967-.8373-13.674-5.196-13.4487-4.214.216-12.7653 8.7773-17.246 13.578-.0254.0273-.06.0413-.0967.0413h-2.912c-.1167 0-.178-.138-.0987-.2233 4.5061-4.8767 14.8427-15.1893 20.2574-15.468 2.788-.1447 5.028 1.4727 6.64 4.432 1.5653 2.8767 1.8787 7.3253 1.0393 11.154-.0146.062-.07.106-.1326.106z" fill="#4dafb6"/><path d="m37.8108 32.1438h-2.2073c-.1014 0-.1647-.1087-.116-.198 1.1953-2.1807 1.852-4.442 1.3173-5.2207-.0933-.1393-.3847-.5613-1.596-.4413-1.8527.186-5.1073 2.9033-8.0933 5.822-.0247.024-.058.038-.0927.038h-2.7993c-.1187 0-.18-.142-.0967-.226 2.1353-2.1527 7.814-7.5894 11.0873-7.9194 3.874-.3906 4.6974 3.6374 2.72 8.0647-.0213.0487-.07.0807-.1233.0807z" fill="#6d67a8"/><path d="m47.5357 9.97956c-.1027-.48467-.1367-.98067-.1167-1.482v.09667c-.0006.47.0394.93466.1167 1.38533z" fill="#00b7c2"/><path d="m52.7978.666992c-.0173.033999-.0313.068664-.0453.102663-.0113.002667-.02.006-.0313.014.0306-.036665.0566-.073997.0766-.116663z" fill="#00b7c2"/><path d="m59.5677 16.6155c-.9007 3.6314-4.4694 10.082-4.4694 10.082l-5.6813-.1626s-3.124-12.99-9.1927-15.6947c-5.2933-2.35734-19.124 10.6207-27.214 21.242-.0313.04-.0766.06-.1253.06h-3.124c-.13133 0-.20534-.1513-.12267-.2533 4.23597-5.3047 10.29067-11.5334 14.71467-15.6207 7.488-6.91534 13.098-9.612 16.6727-8.02134 5.724 2.54864 8.882 12.53334 9.92 16.44204l3.01.0853c1.5453-2.8993 2.8393-5.7807 3.472-7.6707.2966-.878.4506-1.5393.4193-1.89-.282-.824-1.562-1.8326-2.6967-2.7253-1.072-.8407-2.1806-1.71-2.97-2.75067-.1426-.18533-.2906-.368-.436-.54733-.7526-.92067-1.3966-1.836-1.7186-2.96467-.9747 2.346-1.1914 3.734.7353 5.63267l.348.3393c.7467.744 1.348 1.334 1.824 1.844 1.026.8014 1.0093 1.8274.6953 2.6994-.3593 1.006-1.1146 1.8013-1.1146 1.8013.1226-1.16.2166-1.6247-.288-2.366-.422-.6187-1.26-1.428-2.842-2.99-.8507-.838-1.4234-1.7473-1.7227-2.7193-.0513-.1594-.0913-.322-.1253-.48737-.0767-.45067-.1167-.91533-.1167-1.38533v-.09667c0-.00867 0-.01733.0027-.026.0486-3.426 2.2093-6.36533 5.2993-7.687998.0113-.008667.02-.011334.0313-.014001-2.1493 4.837329-.3933 6.037329.978 7.841999 1.588 2.08397 5.2734 3.75137 5.9807 6.10597.1273.4267.0587 1.094-.1433 1.898z" fill="#6d67a8"/></g></svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -1 +0,0 @@
<svg height="213.1" viewBox="14.5 220.1 203.7 213.1" width="203.7" xmlns="http://www.w3.org/2000/svg"><g><path d="m67.3 326.6c0-26.7 21.7-48.3 48.4-48.3 13.4 0 25.5 5.4 34.2 14.2l40.5-41.2c-19.3-19.3-45.9-31.2-75.4-31.2-46.4 0-85.9 29.7-100.5 71.1 21.5 27.4 52.5 35.3 52.8 35.4" fill="#574b88"/><path d="m150.2 360.5c-8.8 8.9-21 14.5-34.5 14.5-26.7 0-48.3-21.6-48.4-48.3-.3.1-31.3 8-52.8 35.4 14.6 41.4 54.1 71.1 100.5 71.1 29.7 0 56.6-12.2 75.9-31.8z" fill="#574b88"/><path d="m159.1 326.8c.3.1 32.2 9.4 52.8 38.5 4-12.1 6.3-25.8 6.3-38.4 0-13.7-2.1-26.1-6.3-38.4-21.2 29.6-52.5 38.2-52.8 38.3" fill="#eb9d00"/></g></svg>

Before

Width:  |  Height:  |  Size: 622 B

View File

@ -1 +0,0 @@
<svg height="1537" viewBox="0 0 1540 1537" width="1540" xmlns="http://www.w3.org/2000/svg"><path d="m1243.5 345c68.3 0 134.9 16.3 195.1 45.5 65 110.3 100.7 240.2 100.7 378.1 0 163.9-52 316.4-139.7 441.4-48.8 17.9-100.8 27.6-154.4 27.6-162.6 0-312.1-87.6-391.7-228.8-58.5-103.9-73.2-224-40.7-339.2 30.9-113.6 107.3-209.3 211.3-267.8 66.7-37.3 141.4-56.8 219.4-56.8zm-762.2-288.8c82.9-34.1 173.9-53.6 268.1-55.2-331.5 209.3-443.7 644.3-250.2 989.9q31.6 58.4 73.1 107.1c-61.8-55.1-113.8-120.1-154.4-193.1-156-277.5-120.3-610.2 63.4-848.7zm612.7 1340.4c43.9 0 87.8-3.2 130-9.7-126.7 94.1-284.4 149.3-455.1 149.3-424.1 0-768.7-344-768.7-767.6 0-251.5 121.9-475.5 308.8-615.1-118.6 245.1-118.6 543.7 24.4 798.5 154.4 274.2 445.3 444.6 760.6 444.6zm102.4-1225.2c21.1 0 42.2 1.6 61.8 3.2 30.8 24.4 58.5 52 84.5 81.2-32.5-6.5-66.7-9.8-100.8-9.8-92.6 0-183.7 24.4-264.9 69.8-126.8 69.8-219.4 186.6-258.4 326.2-34.2 123.3-24.4 251.6 26 366.8-6.5-11.4-13-21.1-19.5-32.5-71.5-124.9-87.8-271-48.8-410.6 39-137.9 130-254.7 256.8-324.5 79.6-45.5 172.3-68.2 263.3-69.8zm-364.1-108.7c32.5-17.9 66.7-32.5 100.8-45.5 63.4 14.6 123.5 35.7 178.8 63.3-79.7 11.4-157.7 37.3-227.6 76.3-147.9 82.7-255.1 219.1-302.3 383-47.1 163.9-26 335.9 56.9 485.2 1.7 3.2 4.9 6.5 6.5 9.7-22.7-27.6-43.9-58.4-61.7-90.8-173.9-311.6-61.8-706 248.6-881.2z" fill="#003d79"/><path d="m1217.5 1386.9c-42.2 6.5-86.1 9.7-130 9.7-315.3 0-606.2-170.4-760.6-444.6-143-254.8-141.4-551.8-24.4-798.5 52-40.5 110.5-73 172.3-97.3-182.1 238.5-217.8 571.2-61.8 848.7 42.3 73 94.3 138 154.4 193.1q-41.4-51.1-73.1-107.1c-193.4-345.6-79.7-780.6 250.3-989.9q9.7 0 19.5 0c56.9 0 112.1 6.5 165.7 17.8-34.1 13-68.2 27.6-100.7 45.5-312.1 175.2-422.6 569.6-248.7 881.2 17.9 32.4 39 63.3 61.8 90.9-1.6-3.3-4.9-6.5-6.5-9.8-82.9-149.3-104-321.3-56.9-485.2 45.5-163.9 152.8-300.2 302.3-383 71.5-40.6 147.9-64.9 227.5-76.3 52 26 102.4 56.8 146.3 94.2-21.1-1.7-40.6-3.3-61.8-3.3-91 0-182 24.4-263.3 69.8-126.7 69.8-217.7 185-256.7 324.6-39.1 137.9-21.2 284 48.7 410.5 6.5 11.4 13 22.8 19.5 32.5-52-115.2-60.1-243.4-26-366.8 40.6-139.5 131.7-254.8 258.4-326.2 81.3-45.4 172.3-69.7 264.9-69.7 34.2 0 68.3 3.2 100.8 9.7 37.4 40.6 68.3 86 95.9 133.1-60.1-29.2-126.8-45.5-195-45.5-76.4 0-151.2 19.5-217.8 56.8-104 58.5-178.8 152.6-211.3 267.8s-17.9 235.3 40.6 339.2c79.7 141.2 229.2 228.8 391.7 228.8 52 0 104-9.7 154.4-27.6-48.7 68.2-107.2 128.2-180.4 176.9z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -1 +0,0 @@
<svg height="209.158" width="1000.04" xmlns="http://www.w3.org/2000/svg"><g fill="#bf1920" transform="matrix(1.2500506 0 0 1.2500506 0 -.002468)"><path d="m130.62 151.03c-37.195 0-67.339-30.16-67.339-67.362 0-37.204 30.144-67.335 67.339-67.335 13.11 0 25.35 3.739 35.69 10.22l-35.69 57.115 67.19-38.796c-7.3-11.631-17.77-21.653-30.43-29.258-16.11-9.645-38.52-15.614-63.3-15.614-35.348 0-66.359 12.845-83.653 32.081-12.804 14.22-20.427 32.117-20.427 51.586 0 19.483 7.623 37.393 20.427 51.623 17.339 19.26 47.888 32.03 82.653 32.03 34.76 0 65.3-12.78 82.65-32.03.95-1.06 1.87-2.13 2.74-3.24l-2.62-9.82c-12.19 17.4-32.38 28.8-55.23 28.8"/><path d="m353.38 163.27-28.2-105.2c-4.53-17-20.01-29.495-38.44-29.495-4.78 0-9.36.854-13.61 2.4l-60.71 22.076h62.44l10.67 39.848c-10.35-8.908-23.83-14.328-38.59-14.328-29.31 0-53.04 19.641-53.04 43.869 0 24.23 23.73 43.9 53.04 43.9 21.1 0 39.76-10.33 51.27-26.2l6.19 23.13zm-86.02-16.34c-13.52 0-24.48-10.95-24.48-24.49 0-13.52 10.96-24.48 24.48-24.48s24.49 10.96 24.49 24.48c0 13.54-10.97 24.49-24.49 24.49z"/><path d="m468.36 28.593c-3.7 0-7.2.818-10.32 2.283l-38.98 18.166c-1.93-11.604-12.01-20.449-24.17-20.449-3.68 0-7.19.818-10.35 2.283l-47.59 22.175h33.46v110.22h48.98v-97.958c0-6.759 5.47-12.261 12.25-12.261 6.74 0 12.25 5.502 12.25 12.261v97.958h48.96v-110.22c0-13.517-10.97-24.457-24.49-24.457"/><path d="m775.52 28.593c-3.71 0-7.23.818-10.4 2.283l-38.94 18.166c-1.92-11.604-12-20.449-24.16-20.449-3.68 0-7.19.818-10.36 2.283l-47.57 22.175h33.45v110.22h48.97v-97.958c0-6.759 5.48-12.261 12.26-12.261 6.76 0 12.23 5.502 12.23 12.261v97.958h49v-110.22c-0-13.517-10.98-24.457-24.48-24.457"/><path d="m652.01 97.959c0 38.311-31.05 69.361-69.35 69.361-38.33 0-69.4-31.05-69.4-69.361 0-38.301 31.07-69.366 69.4-69.366 38.3 0 69.35 31.066 69.35 69.366m-66.48-48.314c-2.18-8.162-10.57-13.007-18.73-10.813-8.15 2.185-13.02 10.58-10.83 18.741l23.79 88.697c2.2 8.17 10.57 13.01 18.73 10.85 8.16-2.21 13.01-10.6 10.82-18.76z"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -1 +0,0 @@
<svg viewBox="-1 41 260 174" xmlns="http://www.w3.org/2000/svg"><g fill-rule="evenodd"><g fill="#fff"><path d="m52.669 91.494c-5.315-2.126-9.566-2.835-15.236-2.835-21.26 0-33.307 12.048-33.307 32.953 0 21.614 11.338 33.661 31.535 33.661 6.733 0 10.631-1.062 17.008-3.897v-8.504c-5.669 4.961-9.566 6.732-15.236 6.732-13.11 0-21.614-10.984-21.614-27.992s8.15-27.638 21.26-27.638c6.024 0 9.921 1.772 15.59 6.378z"/><path d="m70.032 134.013h23.74l6.378 17.363c.354 1.417.354 1.772.354 2.835h12.756c-1.063-1.063-1.418-1.772-1.772-2.835l-21.614-59.528c-.355-.708-.355-1.417-.709-2.126h-9.213c0 .709 0 1.418-.354 2.481l-21.26 59.173c-.354 1.063-.708 1.772-1.063 2.835h6.024c0-1.063 0-1.772.354-2.835zm1.417-4.605 10.275-29.056 10.276 29.056z"/><path d="m130.976 124.447 19.488 26.929c.709 1.063 1.064 1.772 1.418 2.835h14.172c-1.416-.709-1.416-1.063-2.833-2.481l-21.26-27.991c3.543-.709 5.315-1.064 7.44-1.772 6.379-2.481 10.276-7.796 10.276-14.883 0-10.274-8.504-17.362-20.197-17.362h-19.842c.354 1.418.354 2.126.354 3.189v58.111c0 1.417 0 2.126-.354 3.189h11.692c-.354-1.063-.354-1.772-.354-3.189zm0-3.897v-26.222h4.252c4.252 0 6.733 1.063 8.858 2.835 2.835 2.48 4.607 6.377 4.607 10.631 0 7.44-5.315 12.756-12.756 12.756z"/><path d="m171.724 89.722c.354 1.064.354 1.772.354 3.189v58.111c0 1.417 0 2.126-.354 3.189h33.661v-5.669c-1.771.354-2.48.354-3.898.354h-18.425v-25.157h18.78c1.772 0 2.127 0 3.543.353v-5.314c-1.416.353-1.771.353-3.543.353h-18.78v-24.803h19.135c1.417 0 1.772.355 2.834.71v-5.316z"/><path d="m249.322 154.211v-5.669c-1.063.354-1.417.354-3.189.354h-18.424v-55.985c0-1.417.353-2.125.353-3.189h-11.339c.355 1.418.355 2.126.355 3.189v58.465c0 .709 0 1.772-.355 2.835z"/><path d="m176.685 164.132v6.023h-169.725v-6.023z"/></g><path d="m204.677 164.132v6.023h-25.866v-6.023z" fill="#ed1c24"/><path d="m253.574 164.132v6.023h-46.417v-6.023z" fill="#fff"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1 +0,0 @@
<svg viewBox="-1 41 260 174" xmlns="http://www.w3.org/2000/svg"><g fill-rule="evenodd"><g fill="#231f20"><path d="m52.669 91.494c-5.315-2.126-9.566-2.835-15.236-2.835-21.26 0-33.307 12.048-33.307 32.953 0 21.614 11.338 33.661 31.535 33.661 6.733 0 10.631-1.062 17.008-3.897v-8.504c-5.669 4.961-9.566 6.732-15.236 6.732-13.11 0-21.614-10.984-21.614-27.992s8.15-27.638 21.26-27.638c6.024 0 9.921 1.772 15.59 6.378z"/><path d="m70.032 134.013h23.74l6.378 17.363c.354 1.417.354 1.772.354 2.835h12.756c-1.063-1.063-1.418-1.772-1.772-2.835l-21.614-59.528c-.355-.708-.355-1.417-.709-2.126h-9.213c0 .709 0 1.418-.354 2.481l-21.26 59.173c-.354 1.063-.708 1.772-1.063 2.835h6.024c0-1.063 0-1.772.354-2.835zm1.417-4.605 10.275-29.056 10.276 29.056z"/><path d="m130.976 124.447 19.488 26.929c.709 1.063 1.064 1.772 1.418 2.835h14.172c-1.416-.709-1.416-1.063-2.833-2.481l-21.26-27.991c3.543-.709 5.315-1.064 7.44-1.772 6.379-2.481 10.276-7.796 10.276-14.883 0-10.274-8.504-17.362-20.197-17.362h-19.842c.354 1.418.354 2.126.354 3.189v58.111c0 1.417 0 2.126-.354 3.189h11.692c-.354-1.063-.354-1.772-.354-3.189zm0-3.897v-26.222h4.252c4.252 0 6.733 1.063 8.858 2.835 2.835 2.48 4.607 6.377 4.607 10.631 0 7.44-5.315 12.756-12.756 12.756z"/><path d="m171.724 89.722c.354 1.064.354 1.772.354 3.189v58.111c0 1.417 0 2.126-.354 3.189h33.661v-5.669c-1.771.354-2.48.354-3.898.354h-18.425v-25.157h18.78c1.772 0 2.127 0 3.543.353v-5.314c-1.416.353-1.771.353-3.543.353h-18.78v-24.803h19.135c1.417 0 1.772.355 2.834.71v-5.316z"/><path d="m249.322 154.211v-5.669c-1.063.354-1.417.354-3.189.354h-18.424v-55.985c0-1.417.353-2.125.353-3.189h-11.339c.355 1.418.355 2.126.355 3.189v58.465c0 .709 0 1.772-.355 2.835z"/><path d="m176.685 164.132v6.023h-169.725v-6.023z"/></g><path d="m204.677 164.132v6.023h-25.866v-6.023z" fill="#ed1c24"/><path d="m253.574 164.132v6.023h-46.417v-6.023z" fill="#231f20"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1 +0,0 @@
<svg height="256" preserveAspectRatio="xMidYMid" viewBox="0 0 256 256" width="256" xmlns="http://www.w3.org/2000/svg"><path d="m107.860446 118.641168 9.228199 9.176743-9.228199 9.174969h-64.9593484v30.571402l-39.61507118-39.746371 39.61507118-39.0792287v29.9024857zm28.554008-78.067968h78.92851v78.930284h-78.92851z" fill="#932279"/><path d="m137.274996 107.860446-9.174969 9.228199-9.174969-9.228199v-64.9593484h-30.5731759l39.7481449-39.61507118 39.077454 39.61507118h-29.902485zm-.860542 28.554008h78.92851v78.930284h-78.92851z" fill="#efa724"/><path d="m148.057492 137.274996-9.229973-9.174969 9.229973-9.174969h64.957575v-30.5731759l39.616844 39.7481449-39.616844 39.077454v-29.902485zm-107.484292-.860542h78.928509v78.930284h-78.928509z" fill="#262577"/><path d="m118.641168 148.057492 9.174969-9.229973 9.176743 9.229973v64.959349h30.571402l-39.748145 39.61507-39.0756805-39.61507h29.9007115zm-78.067968-107.484292h78.928509v78.930284h-78.928509z" fill="#9ccd2a"/><g fill="#fff"><path d="m37.7538176 37.7538176h84.5672744v84.5672744h-84.5672744zm5.6369902 78.9302834h73.2915192v-73.2915188h-73.2915192zm90.2060382-78.9302834h84.567275v84.5672744h-84.567275zm5.636991 78.9302834h73.291519v-73.2915188h-73.291519zm-5.636991 16.912745h84.567275v84.569049h-84.567275zm5.636991 78.92851h73.291519v-73.291519h-73.291519zm-101.4800194-78.92851h84.5672744v84.569049h-84.5672744zm5.6369902 78.92851h73.2915192v-73.291519h-73.2915192z"/><path d="m60.1882226 187.75773-59.7996482-59.799648 59.797874-59.797874 59.7996486 59.797874zm-51.82588861-59.799648 51.82588861 51.825888 51.8241144-51.825888-51.8258886-51.8241145zm119.59574801-7.971985-59.797874-59.7978744 59.797874-59.7996482 59.797874 59.7996482zm-51.8241145-59.7978744 51.8241145 51.8241144 51.825888-51.8241144-51.825888-51.82588861zm119.5957485 127.5695074-59.797875-59.799648 59.797875-59.797874 59.797873 59.797874zm-51.825889-59.799648 51.825889 51.825888 51.824113-51.825888-51.824113-51.8241145zm-15.945745 127.569507-59.797874-59.797873 59.797874-59.797875 59.797874 59.797875zm-51.8241145-59.797873 51.8241145 51.824113 51.825888-51.824113-51.825888-51.824115z"/></g></svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 16 KiB

View File

@ -1 +0,0 @@
<svg height="338" viewBox="-.714 -.474 112.814 38.745" width="1024" xmlns="http://www.w3.org/2000/svg"><path d="m27.375 0c-2.516 0-4.563 2.047-4.562 4.563 0 2.518 2.046 4.562 4.562 4.562 2.515 0 4.563-2.044 4.563-4.562 0-2.516-2.048-4.563-4.563-4.563zm21.438 10.781c-7.246 0-12.76 6.344-12.875 13.438-.036 2.227.44 4.318 1.281 6.062-4.786 1.396-5.713-.898-5.875-5.218-.197-5.204-.219-12.563-.219-12.563h-7.656v15.125c0 3.136.762 8.002 6.187 8.969 3.38.603 6.679-.063 11.094-2.063 2.113 1.512 4.928 2.5 8.031 2.5 4.288 0 7.78-1.888 10.375-3.625v-4.781c-3.225 2.076-7.95 3.577-10.875 1.438 2.988-2.076 5.844-4.571 7.719-7.563 2.991-4.769 1.039-11.719-7.187-11.719zm-35.125.719c-7.55 0-13.688 4.611-13.688 12.906 0 8.436 5.944 12.75 13.031 12.75 2.053 0 5.262-.411 7.125-1.343v-6.5c-1.613.625-3.506.875-5 .875-3.061 0-6.656-1.807-6.656-5.625 0-4.364 3.397-6 6.781-6 1.632 0 3.484.496 4.875.906v-6.906c-1.924-.577-4.641-1.063-6.468-1.063zm85.875.063c-3.576.009-6.883.919-10.063 1.968v6.157c2.751-1.023 6.074-1.5 8.656-1.5 3.307 0 4.875 1.436 4.875 3.968v.407c-1.403-.5-3.61-.938-5.875-.938-5.753 0-9.593 2.614-9.593 7.688v.093c-.001 4.893 3.549 7.563 8.218 7.563 3.216 0 5.541-1.204 7.219-3.063v2.532h8.313v-14.094c-.001-3.445-.581-5.971-2.438-7.781-1.945-1.95-4.92-3.01-9.312-3zm-22.157.031c-3.402 0-5.618 1.922-7.187 3.937l-.344.438v-3.719h-8.219v24.188h8.219v-13.25c0-2.765 1.608-4.313 3.813-4.313 2.167 0 3.624 1.561 3.625 4.313v13.25h8.25v-16c0-5.486-3.067-8.844-8.157-8.844zm-28.125 6.031c2.094.04 3.501 2.083 1.032 5.219-1.138 1.441-2.821 2.832-4.813 4.125-2.781-5.102.668-8.703 2.875-9.219.158-.037.315-.077.469-.094.144-.015.298-.034.437-.031zm50.5 8.156c1.272 0 2.401.37 3.344.782.003 3.138-1.759 5.031-4.25 5.031-1.765 0-3.031-1.012-3.031-2.688v-.093c0-1.81 1.448-3.032 3.937-3.032z" fill="#da1415" fill-rule="evenodd"/></svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1 +0,0 @@
<svg viewBox="0 0 66 37.062" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(1.829218 0 0 1.829218 .000001 0)"><path d="m.052 6.506h35.927v13.702h-35.927z" fill="#00546c"/><path d="m9.088 11.175h.483v9.049h-.483zm-2.687 5.126h.483v3.907h-.483zm1.328-2.24h.482v6.147h-.482zm-2.67 3.667h.483v2.48h-.483zm-1.343.968h.483v1.513h-.483zm-1.328.452h.483v1.061h-.483zm-1.349.222h.482v.848h-.482zm10.724-3.063h.482v3.907h-.482zm-1.328-2.241h.483v6.148h-.483zm2.67 3.668h.482v2.48h-.482zm1.343.968h.482v1.513h-.482zm1.328.452h.483v1.061h-.483zm1.349.221h.483v.848h-.483zm9.377-8.203h.483v9.048h-.483zm-2.687 5.141h.483v3.907h-.483zm1.329-2.24h.483v6.147h-.483zm-2.671 3.668h.483v2.479h-.483zm-1.343.967h.483v1.513h-.483zm-1.327.453h.482v1.06h-.482zm-1.35.206h.482v.848h-.482zm10.724-3.064h.482v3.907h-.482zm-1.328-2.24h.483v6.147h-.483zm2.671 3.668h.482v2.479h-.482zm1.342.967h.483v1.513h-.483zm1.328.453h.482v1.06h-.482zm1.35.221h.482v.848h-.482z" fill="#fff"/><path d="m3.4 5.418v-3.91h.734l.008 3.91zm4.868-1.987c0-1.017.019-1.976.862-1.978.613 0 .818.591.798 1.417l-.646-.009c0-.483-.026-.654-.151-.654-.109 0-.209.239-.201 1.224.008.989.048 1.291.226 1.291.136 0 .142-.444.148-.748h.648c0 1.027-.204 1.47-.824 1.47-.843 0-.86-1.006-.86-2.013zm2.808.017c0-1.017-.011-1.964.876-1.964.874 0 .893.947.893 1.964 0 1.082-.047 1.994-.891 1.995-.882.001-.878-.979-.878-1.995zm1.115.025c0-.984-.059-1.274-.235-1.274-.167 0-.227.248-.227 1.232 0 .985.067 1.308.235 1.291.126-.012.227-.209.227-1.249zm7.705.554-.637-2.499.737-.008.269 1.333.285-1.333.712.008-.67 2.482v1.375h-.705zm3.071 1.417c-.742 0-.816-.741-.791-1.375l.646.008c0 .351-.017.646.22.646.099 0 .149-.098.149-.346 0-.593-.981-.7-.981-1.79 0-.573.177-1.108.864-1.108.569 0 .778.5.746 1.266l-.638-.008c0-.274.009-.545-.159-.545-.084 0-.159.057-.159.31 0 .638.98.628.98 1.779 0 .947-.447 1.163-.877 1.163zm3.694-3.917-.009.792h-.536v3.052h-.677v-3.053h-.543v-.798zm1.17 3.841v-3.826h1.438v.724h-.771l-.009.741h.722v.726h-.731v.907h.813l.008.728zm2.862.017v-3.851l.881.003.327 2.188.352-2.188.855-.008v3.848l-.57.008-.009-2.289-.36 2.289h-.545l-.335-2.28-.009 2.271zm4.511.059c-.743 0-.817-.741-.791-1.375l.646.008c0 .351-.017.646.22.646.099 0 .148-.098.148-.346 0-.593-.98-.7-.98-1.79 0-.573.176-1.108.864-1.108.569 0 .777.5.745 1.266l-.637-.008c0-.274.008-.545-.159-.545-.084 0-.159.057-.159.31 0 .638.98.628.98 1.779 0 .947-.446 1.163-.877 1.163zm-29.032.008c-.743 0-.817-.741-.792-1.375l.646.009c0 .35-.017.646.22.646.099 0 .148-.098.148-.347 0-.593-.98-.699-.98-1.79 0-.572.176-1.107.864-1.107.569 0 .777.5.745 1.266l-.636-.01c0-.273.008-.545-.16-.545-.083 0-.16.057-.16.311 0 .637.981.628.981 1.779.001.948-.445 1.163-.876 1.163zm-6.172-2.7c0-1.383 0-2.702 1.147-2.702.71 0 .996.616.968 1.738h-.681c0-.695-.079-.956-.286-.956-.392 0-.442.58-.442 1.92s.051 1.92.442 1.92c.323 0 .309-.652.318-1.065h.687c0 1.398-.354 1.848-1.005 1.848-1.148 0-1.148-1.333-1.148-2.703zm17.247 2.652c-.862 0-1.023-.797-.986-1.702h.695c0 .5.015.92.396.92.235 0 .351-.239.351-.594 0-.941-1.401-1-1.401-2.558 0-.818.249-1.47 1.098-1.47.678 0 1.014.478.968 1.572h-.678c0-.391-.041-.789-.322-.789-.227 0-.36.195-.36.558 0 .992 1.401.905 1.401 2.55-.001 1.354-.632 1.513-1.162 1.513z" fill="#a5333a"/></g></svg>

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -1 +0,0 @@
<svg fill="#049fd9" viewBox="-34 -20 280 160" xmlns="http://www.w3.org/2000/svg"><path d="m106.48 76.238c-.282-.077-4.621-1.196-9.232-1.196-8.73 0-13.986 4.714-13.986 11.734 0 6.214 4.397 9.313 9.674 10.98.585.193 1.447.463 2.021.653 2.349.739 4.224 1.837 4.224 3.739 0 2.127-2.167 3.504-6.878 3.504-4.14 0-8.109-1.184-8.945-1.395v8.637c.466.099 5.183 1.025 10.222 1.025 7.248 0 15.539-3.167 15.539-12.595 0-4.573-2.8-8.783-8.947-10.737l-2.613-.832c-1.559-.492-4.342-1.289-4.342-3.574 0-1.805 2.062-3.076 5.859-3.076 3.276 0 7.263 1.101 7.404 1.145zm80.041 18.243c0 5.461-4.183 9.879-9.796 9.879-5.619 0-9.791-4.418-9.791-9.879 0-5.45 4.172-9.87 9.791-9.87 5.613 0 9.796 4.42 9.796 9.87m-9.796-19.427c-11.544 0-19.823 8.707-19.823 19.427 0 10.737 8.279 19.438 19.823 19.438 11.543 0 19.834-8.701 19.834-19.438 0-10.72-8.291-19.427-19.834-19.427m-106.164 38.197h-9.472v-37.532h9.472"/><path d="m48.07 76.399c-.89-.264-4.18-1.345-8.636-1.345-11.526 0-19.987 8.218-19.987 19.427 0 12.093 9.34 19.438 19.987 19.438 4.23 0 7.459-1.002 8.636-1.336v-10.075c-.407.226-3.503 1.992-7.957 1.992-6.31 0-10.38-4.441-10.38-10.019 0-5.748 4.246-10.011 10.38-10.011 4.53 0 7.576 1.805 7.957 2.004"/><path d="m48.07 76.399c-.89-.264-4.18-1.345-8.636-1.345-11.526 0-19.987 8.218-19.987 19.427 0 12.093 9.34 19.438 19.987 19.438 4.23 0 7.459-1.002 8.636-1.336v-10.075c-.407.226-3.503 1.992-7.957 1.992-6.31 0-10.38-4.441-10.38-10.019 0-5.748 4.246-10.011 10.38-10.011 4.53 0 7.576 1.805 7.957 2.004" transform="translate(98.860001)"/><path d="m61.061 4.759c0-2.587-2.113-4.685-4.703-4.685-2.589 0-4.702 2.098-4.702 4.685v49.84c0 2.602 2.113 4.699 4.702 4.699 2.59 0 4.703-2.097 4.703-4.699zm-25.829 17.692c0-2.586-2.112-4.687-4.702-4.687s-4.702 2.101-4.702 4.687v22.785c0 2.601 2.112 4.699 4.702 4.699s4.702-2.098 4.702-4.699zm-25.828 12.932c0-2.587-2.112-4.684-4.702-4.684-2.587 0-4.702 2.097-4.702 4.684v9.853c0 2.601 2.115 4.699 4.702 4.699 2.59 0 4.702-2.098 4.702-4.699"/><path d="m61.061 4.759c0-2.587-2.113-4.685-4.703-4.685-2.589 0-4.702 2.098-4.702 4.685v49.84c0 2.602 2.113 4.699 4.702 4.699 2.59 0 4.703-2.097 4.703-4.699zm-25.829 17.692c0-2.586-2.112-4.687-4.702-4.687s-4.702 2.101-4.702 4.687v22.785c0 2.601 2.112 4.699 4.702 4.699s4.702-2.098 4.702-4.699zm-25.828 12.932c0-2.587-2.112-4.684-4.702-4.684-2.587 0-4.702 2.097-4.702 4.684v9.853c0 2.601 2.115 4.699 4.702 4.699 2.59 0 4.702-2.098 4.702-4.699" transform="matrix(-1 0 0 1 112.717003 0)"/><g transform="matrix(-1 0 0 1 216 0)"><path d="m61.061 4.759c0-2.587-2.113-4.685-4.703-4.685-2.589 0-4.702 2.098-4.702 4.685v49.84c0 2.602 2.113 4.699 4.702 4.699 2.59 0 4.703-2.097 4.703-4.699zm-25.829 17.692c0-2.586-2.112-4.687-4.702-4.687s-4.702 2.101-4.702 4.687v22.785c0 2.601 2.112 4.699 4.702 4.699s4.702-2.098 4.702-4.699zm-25.828 12.932c0-2.587-2.112-4.684-4.702-4.684-2.587 0-4.702 2.097-4.702 4.684v9.853c0 2.601 2.115 4.699 4.702 4.699 2.59 0 4.702-2.098 4.702-4.699"/><path d="m61.061 4.759c0-2.587-2.113-4.685-4.703-4.685-2.589 0-4.702 2.098-4.702 4.685v49.84c0 2.602 2.113 4.699 4.702 4.699 2.59 0 4.703-2.097 4.703-4.699zm-25.829 17.692c0-2.586-2.112-4.687-4.702-4.687s-4.702 2.101-4.702 4.687v22.785c0 2.601 2.112 4.699 4.702 4.699s4.702-2.098 4.702-4.699zm-25.828 12.932c0-2.587-2.112-4.684-4.702-4.684-2.587 0-4.702 2.097-4.702 4.684v9.853c0 2.601 2.115 4.699 4.702 4.699 2.59 0 4.702-2.098 4.702-4.699" transform="matrix(-1 0 0 1 112.717003 0)"/></g></svg>

Before

Width:  |  Height:  |  Size: 3.3 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 7.7 KiB

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-8.3 -57 242 162"><g fill="#d50c32"><path d="M25.21 23.59a1.65 1.65 0 0 0-.54-1.2 2.5 2.5 0 0 0-1.85-.63 2 2 0 0 0-2 1.91v.75c0 3.51-2.54 5.69-6.63 5.69-3.87 0-6.79-2.45-6.79-5.69V10.2c0-3.25 2.92-5.69 6.79-5.69 4.35 0 7.16 2.24 7.16 5.69v.8a1.95 1.95 0 0 0 3.88 0v-.8C25.21 4.58 19.56 0 12.61 0S0 4.58 0 10.2v14.22c0 5.58 5.66 10.2 12.61 10.2s12.6-4.58 12.6-10.2z"/><path d="M43.18 13.31a2.61 2.61 0 0 0-2.52 1.44l-3.18 7.06a1 1 0 0 1-.72.57c-.14 0-.31 0-.64-.65l-3.4-6.29a3.51 3.51 0 0 0-3.59-2.1A3.94 3.94 0 0 0 25.69 15a2.44 2.44 0 0 0-.05 2.46l5 8.55c1.68 2.88 2.14 5.25 1.43 7.24-.78 2.15-3 3.86-6.67 5.23L24 39a2 2 0 0 0-1.41 2.45C23 42.81 24.71 43.33 26 43l1.26-.33C33.46 41 37.55 37.39 39.45 32l5.65-16.34a1.8 1.8 0 0 0-.27-1.6 2 2 0 0 0-1.64-.76zM58.62 13.22A9.4 9.4 0 0 0 54 14.55v-11A3.43 3.43 0 0 0 50.3 0c-2.3 0-3.72 1.33-3.72 3.55v29.28a1.79 1.79 0 0 0 1.89 2 2.3 2.3 0 0 0 1.41-.56l.17-.12 2.36-1.89a8.26 8.26 0 0 0 6.2 2.57c4.63 0 9-3.65 9-7.52v-6.57c0-3.87-4.38-7.52-9-7.52zm1.62 8.4v5.65c0 1.77-2.1 2.85-3.61 2.85-.84 0-3.6-.2-3.6-2.85v-6.53c0-2.48 2.49-2.85 4-2.85 2.12 0 3.24 1.88 3.24 3.73zM79.8 13.39c-5.12 0-10.41 2.8-10.41 7.35v6.53c0 4.4 5.78 7.35 11.19 7.35h2.73c1.78 0 2.41-.88 2.41-1.71s-.63-1.71-2.41-1.71h-2.73a4.28 4.28 0 0 1-4.28-3.94v-1.87c0-.11 0-.38.67-.38h9.83c2.06 0 3.62-1.14 3.62-2.66V20.7a6 6 0 0 0-1.86-4.33c-1.91-1.9-5.19-3-8.77-3zm3.2 6.43v.54c0 .24-.06.63-.52.63h-5c-.4 0-.67-.24-.67-.46v-.67s0-2.31 3-2.31c2.5.01 3.19 1.45 3.19 2.27M106.15 13.39h-1.35A8.13 8.13 0 0 0 99.51 16l-.74.76-3.41-2.73a2.63 2.63 0 0 0-1.66-.71 1.72 1.72 0 0 0-1.79 1.84v16.37c0 1.7 1.67 3.09 3.72 3.09s3.72-1.39 3.72-3.09V20.65l1-.79a6.22 6.22 0 0 1 3.82-1.13h2a3 3 0 0 0 3.2-2.67 3 3 0 0 0-3.2-2.67zM120.27 34h-8.91V5.35h11.71c2.81 0 5.94.08 8.41 1.5a8.71 8.71 0 0 1 4.27 7.53 8.87 8.87 0 0 1-3.17 7c-2.23 1.8-5.07 2.22-7.83 2.22h-4.47V34m2.3-16.56c2 0 4.44-.13 4.44-2.8s-2.18-2.77-4.19-2.77h-2.55v5.57zM158.2 23.55c0 6.48-5.22 10.92-11.75 10.92S134.7 30 134.7 23.55c0-6.86 5.06-11.3 11.76-11.3s11.75 4.43 11.75 11.3m-14.64-.29c0 5.73 1.39 6.15 2.89 6.15s2.89-.42 2.89-6.15c0-2.05-.05-5.77-2.89-5.77s-2.89 3.72-2.89 5.77M181.5 34.04h-6.03l-2.76-11.58h-.08l-2.88 11.58h-5.94l-6.91-21.37h8.25l2.76 10.46h.08l2.64-10.46h6.19l2.68 10.46 2.96-10.46h5.82zM210.15 26.89c-1.3 5.19-5.9 7.57-11 7.57a12.55 12.55 0 0 1-8.61-2.8 10.67 10.67 0 0 1-3.52-8 11.9 11.9 0 0 1 3.14-8.08 11.87 11.87 0 0 1 8.48-3.3c7.12 0 11.47 4.6 11.47 11.63V25h-14.27c-.12 2.29.71 4 3.22 4 1.88 0 2.93-.75 3.26-2.59l7.82.5m-8.36-6.06c0-2.09-.68-3.69-3-3.69-2.18 0-3.05 1.72-3 3.69zM219.13 17.07c.71-3 2.26-5.07 5.57-4.82l1.13.09v7.48a7 7 0 0 0-1.59-.21c-1.34 0-2.72.25-3.38 1.47a7.7 7.7 0 0 0-.58 3.68V34H212V12.67h7.07v4.4z"/></g></svg>

Before

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -1 +0,0 @@
<svg enable-background="new 0 0 800 160.8" viewBox="0 0 800 160.8" xmlns="http://www.w3.org/2000/svg"><g fill="#2b8ca1"><path d="m206.2 69.5h44.7c3.1 0 3.7 3.2 1.3 7.1l-9 14.8c-2.4 3.9-6.9 7.1-10 7.1h-44.7c-3.1 0-3.7-3.2-1.3-7.1l9-14.8c2.4-3.9 6.9-7.1 10-7.1"/><path d="m419.9.1c16.4-1.5 35.9 11.4 26.3 28.3-9.2 15.3-42.5 19.2-52.5 18.3-3.2-.3-8.4-2.3-8.3-7.4.1-3.6 2.1-16.2 9-26.1 7.2-9.7 17.8-12.6 25.5-13.1"/><path d="m522.3 32.8c5.1-2.3 5.6 3.3 5.4 5v13c0 2.5 2.1 1.3 3.2.9 15.4-6.5 31-16.2 50.8-15.7 17.6.4 22.9 14.3 22.8 30.3v68.1c0 6 .5 7.4 3.3 9.7.9.5 5.6.9 7.4.9 1.9 0 1.9 1.4 1.4 2.8l-4.2 10.7c-.9 1.8-2.8 2.3-4.2 2.3h-40c-13.9-.5-18.1-10.9-17.9-16.2v-64.8c0-13.3-21.7-14.3-21.7 3.6v54.6c.2 2.6-.6 6 6.4 6.5 4.6 0 7.9-.5 5.6 5.1l-3.4 8.6c-.8 1.6-2.7 2.6-4.5 2.5h-66.1c-1.4 0-2.5-1.6-2.3-2.8l4.7-12.1c.2-.5.7-1.4 1.3-1.4 2.2-.1 3.7-1.2 4.1-7.4v-71c0-5.8-5.3-5.1-9.3-5.1-1.8 0-2.8-.5-2.3-2.8l3.7-7.9c.5-1.9 1.4-2.6 2.8-2.8 21.8-3.3 34.4-4.8 53-14.6"/><path d="m683.7 2.9c3.8-.6 6 1.7 6 5.9v68c.5 3.7 3.2 1.2 4 .1l23.5-29.8c2.5-3.1 8.5-3.7 12.2-3.7h51.2c.9 0 1.4 1.1.5 2.3l-6.5 8.8c-.6.8-1.1 1.8-4.2 1.8h-2.5c-2.3.1-2.8.9-3.7 1.4l-26.3 29.5c-5.5 6.6-4.2 9.4.7 14.1l36.1 37c8 5.6 15.3 6 23.6 6.5 2.2.1 1.7 1.9.9 2.8l-9.3 10.7c-.9 1.4-5 2.3-7.3 2.3h-35.8c-4.6 0-12.9-1.4-19.4-5.6-13-10.7-21.2-24.2-33.9-36.2-2.2-2.1-4-1.1-4 .7v15.5c0 7 2.9 8.8 13.1 9.3 3.9.2 2.8 2.3 1.9 4.6l-3.4 8.8c-1 2.1-2.3 2.8-4.1 2.8h-74c-2.3 0-3.8-.7-3.3-2.1l4.1-10.9c.9-2.1 1.5-2.6 4.6-2.8 5.1-.3 7-2 7.1-9.6v-100c0-3.4-.8-4.7-3.2-4.4l-9.4 1.3c-2.8.4-3.3-1.7-2.2-3.7l5.8-9.7c1.1-1.9 3.1-2.1 5.3-2.5 18.9-3.1 38-8.6 49.7-13 .7.2 1.3-.1 2.2-.2"/><path d="m444.9 43c2.3-.9 5.1.9 4.6 6v88.1c1.2 6.2 3.2 7.7 8.7 8.3 0 0 3.8.1 2.8 2.8l-3.6 9.3c-1.4 2.8-2.3 3.3-5.6 3.3h-68.9c-1.8-.1-2.5-1.3-1.9-3.3l3.4-8.8c.6-1.2.9-2.4 3.2-2.8 7-1.9 7.4-2.8 7.4-12.1v-52.7c0-8.8-1.4-8.4-11.6-7.4-1.8-.5-1.7-2.2-1.4-2.8l5.1-9.7c1.4-2.8 3.2-2.8 3.2-2.8 19.6-1.5 39.1-6.4 54.6-15.4"/><path d="m97.1 160.7c15 .2 33.1 1 49.9-12.1 12-7.9 26.4-39.9 31.6-53.1 2.6-6.9 3.3-16 0-22.9-9.1-20.6-22.3-43.6-31-52.9-12.5-11.5-24.2-12.5-43.7-12.5h-83.2c-3.5 0-7.4.9-8.8 3.3l-6 11.1c-.9 4.6 4.6 5.1 4.6 5.1h8.5c2.3 0 2.8 1.8 2.8 3.7v103c0 4.6-5.2 7.4-9.4 8.3-1.9.5-4.6 1-6 3.3l-6 11.6c-.9 2.3.9 4.2 2.8 4.2 32.7 0 61.1.1 93.9-.1m-21.1-19.1v-110.7c0-2.8.5-4.2 3.2-4.6h8.1c2.9 0 7.1-.6 9.7 4l27.9 48.7c2.3 5.1 1.6 7.2 0 10.7l-28.3 47.8c-3.4 4.7-5 3.8-9.3 4.1-.1 0 .1 0 0 0z"/><path d="m334.6 8.3c3.6 0 4.9 2.1 4.2 3.5l-7.4 13.5s-.9 2.8-7.4 2.8h-.7c-4.2 0-7.5 0-7.9 8.4v97.8c0 4.2 1.8 7.7 6.9 7.9h10.1c16.5-.2 16.1-17.2 19.8-32 .9-2.3 1.4-3.7 4.2-5.1l14.6-5.1c1.9 0 3.7 0 4.2 3.2v49.2c.5 4.6-3.7 8.8-9.3 8.3h-125.6c-4.6 0-5.6-1.4-4.6-4.2l4.6-10.2s1.4-2.8 5.6-2.8c9.3-.5 15.1-.6 15-14.8v-91.4c0-6-1.4-9.7-7.5-9.7-2.4 0-4.7 0-7.1 0-4.6 0-7.1-1.6-6-4.2l6.5-12.1c1.5-2.7 2.8-3.1 5.1-3.1h82.7"/></g></svg>

Before

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -1 +0,0 @@
<svg viewBox="-60 -75 210 260" xmlns="http://www.w3.org/2000/svg"><g fill="#d70751"><path d="m64.525 62.053c-4.125.058.78 2.125 6.165 2.954 1.488-1.161 2.838-2.336 4.04-3.479-3.354.821-6.765.838-10.205.525m22.14-5.52c2.457-3.389 4.246-7.102 4.878-10.939-.551 2.736-2.035 5.099-3.435 7.592-7.711 4.854-.726-2.883-.004-5.824-8.29 10.436-1.138 6.257-1.439 9.171m8.174-21.265c.497-7.428-1.462-5.08-2.121-2.245.766.4 1.377 5.237 2.121 2.245m-45.956-101.532c2.201.395 4.757.698 4.398 1.224 2.407-.528 2.954-1.015-4.398-1.224"/><path d="m53.281-65.04-1.556.32 1.448-.127z"/><path d="m121.93 38.085c.247 6.671-1.95 9.907-3.932 15.637l-3.564 1.781c-2.919 5.666.282 3.598-1.807 8.105-4.556 4.049-13.823 12.67-16.789 13.457-2.163-.047 1.469-2.554 1.943-3.537-6.097 4.188-4.894 6.285-14.217 8.83l-.273-.607c-23.001 10.818-54.947-10.622-54.526-39.876-.246 1.857-.698 1.393-1.208 2.144-1.186-15.052 6.952-30.17 20.675-36.343 13.427-6.646 29.163-3.918 38.78 5.044-5.282-6.92-15.795-14.254-28.255-13.568-12.208.193-23.625 7.95-27.436 16.369-6.253 3.938-6.979 15.177-9.704 17.233-3.665 26.943 6.896 38.583 24.762 52.275 2.812 1.896.792 2.184 1.173 3.627-5.936-2.779-11.372-6.976-15.841-12.114 2.372 3.473 4.931 6.847 8.239 9.499-5.596-1.897-13.074-13.563-15.256-14.038 9.647 17.274 39.142 30.295 54.587 23.836-7.146.263-16.226.146-24.256-2.822-3.371-1.734-7.958-5.331-7.14-6.003 21.079 7.875 42.854 5.965 61.09-8.655 4.641-3.614 9.709-9.761 11.173-9.846-2.206 3.317.377 1.596-1.318 4.523 4.625-7.456-2.008-3.035 4.779-12.877l2.507 3.453c-.931-6.188 7.687-13.704 6.813-23.492 1.975-2.994 2.206 3.22.107 10.107 2.912-7.64.767-8.867 1.516-15.171.81 2.118 1.867 4.37 2.412 6.606-1.895-7.382 1.948-12.433 2.898-16.724-.937-.415-2.928 3.264-3.383-5.457.065-3.788 1.054-1.985 1.435-2.917-.744-.427-2.694-3.33-3.88-8.9.86-1.308 2.3 3.393 3.47 3.586-.753-4.429-2.049-7.805-2.103-11.202-3.421-7.149-1.211.953-3.985-3.069-3.641-11.357 3.021-2.637 3.47-7.796 5.52 7.995 8.667 20.387 10.11 25.519-1.103-6.258-2.883-12.32-5.058-18.185 1.677.705-2.699-12.875 2.18-3.882-5.21-19.172-22.302-37.087-38.025-45.493 1.924 1.76 4.354 3.971 3.481 4.317-7.819-4.656-6.444-5.018-7.565-6.985-6.369-2.591-6.788.208-11.007.004-12.005-6.368-14.318-5.69-25.368-9.681l.502 2.349c-7.953-2.649-9.265 1.005-17.862.009-.523-.409 2.753-1.479 5.452-1.871-7.69 1.015-7.329-1.515-14.854.279 1.855-1.301 3.815-2.162 5.793-3.269-6.271.381-14.971 3.649-12.286.677-10.235 4.569-28.403 10.976-38.597 20.535l-.321-2.142c-4.672 5.608-20.371 16.748-21.622 24.011l-1.249.291c-2.431 4.116-4.004 8.781-5.932 13.016-3.18 5.417-4.661 2.085-4.208 2.934-6.253 12.679-9.359 23.332-12.043 32.069 1.912 2.858.046 17.206.769 28.688-3.141 56.709 39.8 111.77 86.737 124.48 6.88 2.459 17.11 2.364 25.813 2.618-10.268-2.937-11.595-1.556-21.595-5.044-7.215-3.398-8.797-7.277-13.907-11.711l2.022 3.573c-10.021-3.547-5.829-4.39-13.982-6.972l2.16-2.82c-3.249-.246-8.604-5.475-10.069-8.371l-3.553.14c-4.27-5.269-6.545-9.063-6.379-12.005l-1.148 2.047c-1.301-2.235-15.709-19.759-8.234-15.679-1.389-1.271-3.235-2.067-5.237-5.703l1.522-1.739c-3.597-4.627-6.621-10.562-6.391-12.536 1.919 2.592 3.25 3.075 4.568 3.52-9.083-22.539-9.593-1.242-16.474-22.942l1.456-.116c-1.116-1.682-1.793-3.506-2.69-5.298l.633-6.313c-6.541-7.562-1.829-32.151-.887-45.637.655-5.485 5.459-11.322 9.114-20.477l-2.227-.384c4.256-7.423 24.301-29.814 33.583-28.662 4.499-5.649-.892-.02-1.772-1.443 9.878-10.223 12.984-7.222 19.65-9.061 7.19-4.268-6.17 1.664-2.761-1.628 12.427-3.174 8.808-7.216 25.021-8.828 1.71.973-3.969 1.503-5.395 2.766 10.354-5.066 32.769-3.914 47.326 2.811 16.895 7.896 35.873 31.232 36.622 53.189l.852.229c-.431 8.729 1.336 18.822-1.727 28.094l2.1-4.385"/><path d="m19.5 67.715-.578 2.893c2.71 3.683 4.861 7.673 8.323 10.552-2.49-4.863-4.341-6.872-7.745-13.445m6.409-.251c-1.435-1.587-2.284-3.497-3.235-5.4.909 3.345 2.771 6.219 4.504 9.143zm113.411-24.65-.605 1.52c-1.111 7.892-3.511 15.701-7.189 22.941 4.06-7.639 6.69-15.995 7.79-24.461m-89.618-111.057c2.789-1.022 6.855-.56 9.814-1.233-3.855.324-7.693.517-11.484 1.005zm-97.917 52.067c.642 5.951-4.477 8.26 1.134 4.337 3.007-6.773-1.175-1.87-1.134-4.337m-6.593 27.538c1.292-3.967 1.526-6.349 2.02-8.645-3.571 4.566-1.643 5.539-2.02 8.645"/></g></svg>

Before

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -1 +0,0 @@
<svg height="300" viewBox="0 0 300 300" width="300" xmlns="http://www.w3.org/2000/svg"><g fill="#007db8"><path d="m0 0c-8.01 0-15.264-3.249-20.516-8.505-5.254-5.244-8.501-12.502-8.501-20.516 0-8.008 3.247-15.261 8.501-20.507 5.252-5.249 12.506-8.504 20.516-8.504 8.012 0 15.27 3.255 20.514 8.504 5.252 5.246 8.492 12.499 8.492 20.507 0 8.014-3.24 15.272-8.492 20.516-5.244 5.256-12.502 8.505-20.514 8.505m0 3.516c17.965 0 32.531-14.568 32.531-32.537 0-17.963-14.566-32.529-32.531-32.529-17.963 0-32.535 14.566-32.535 32.529 0 17.969 14.572 32.537 32.535 32.537" transform="matrix(4.579965 0 0 -4.579965 150.00916 17.10316)"/><path d="m0 0c0 1.896-1.258 2.973-3.039 2.973h-1.09v-5.948h1.059c1.656 0 3.07.9 3.07 2.975m19.389-2.14-8.03-6.323-7.339 5.778c-1.059-2.544-3.618-4.311-6.565-4.311h-6.281v13.992h6.281c3.293 0 5.666-2.094 6.563-4.325l7.341 5.772 2.719-2.14-6.728-5.288 1.293-1.012 6.726 5.285 2.723-2.134-6.727-5.294 1.291-1.014 6.733 5.295v4.855h4.881v-9.908h4.869v-4.101h-9.75v4.873zm15.933-.774h4.867v-4.099h-9.753v14.009h4.886z" transform="matrix(4.579965 0 0 -4.579965 79.53863 148.80419)"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<svg enable-background="new 0 0 841.89 595.28" viewBox="-1.3 -144 678 678" xmlns="http://www.w3.org/2000/svg">
<path d="m674.99 172.162v39.374h-128.526v-198.099h45.251v158.715h83.275zm-594.241 39.362c46.364 0 85.32-31.485 96.429-74.106l112.717 87.533 112.645-87.501v74.074h128.532v-39.372h-83.268v-158.715h-45.254v74.058l-108.036 83.921-24.153-18.772 51.702-40.182 56.313-43.747-32.135-24.997-108.058 83.938-24.148-18.771 108.038-83.919-32.178-24.966-112.717 87.547c-11.099-42.62-50.065-74.11-96.429-74.11h-80.749v198.087zm-35.507-39.372v-119.344h35.507c30.02 0 54.353 26.72 54.353 59.686 0 32.959-24.343 59.678-54.353 59.678h-35.507zm629.748 167.167c0-11.85-6.626-17.095-19.854-19.757-13.233-2.649-21.181-3.95-21.181-13.156 0-6.586 5.295-10.52 14.565-10.52 11.917 0 15.87 5.275 15.87 11.852l1.31 1.309h5.305l1.312-1.309c0-13.162-10.601-18.434-23.818-18.434-14.564 0-22.501 7.893-22.501 17.122 0 10.518 7.937 15.788 21.18 18.41 13.239 2.621 19.864 3.953 19.864 14.483 0 6.582-3.954 11.845-17.202 11.845-11.922 0-17.206-6.582-17.206-14.477l-1.311-1.312h-5.295l-1.306 1.312c0 11.845 9.263 21.063 25.139 21.063 17.201 0 25.139-7.896 25.139-18.431zm-56.915-13.141 1.31-1.311v-3.933c0-18.431-10.578-31.588-29.116-31.588-18.534 0-29.114 13.157-29.114 31.588v2.631c0 18.418 9.268 34.226 30.445 34.226 18.516 0 25.144-11.845 26.475-19.752l-1.311-1.312h-5.306l-1.31 1.312c-2.643 7.896-7.938 13.156-18.514 13.156-17.226 0-22.5-15.788-22.5-23.686l1.309-1.31h47.642c-.01 0-.01-.021-.01-.021zm-7.937-6.586h-39.695l-1.309-1.305c0-9.208 5.294-22.369 21.18-22.369 15.879 0 21.176 13.161 21.176 22.369l-1.342 1.305zm-58.236 35.535v-63.168l-1.312-1.313h-5.305l-1.31 1.313v63.168l1.31 1.312h5.305zm0-76.351v-7.897l-1.312-1.312h-5.305l-1.31 1.312v7.897l1.31 1.312h5.305zm-50.305 72.388c-13.238 0-21.175-9.203-21.175-27.639 0-18.431 7.937-27.639 21.175-27.639 13.243 0 21.179 9.208 21.179 27.639 0 18.436-7.936 27.639-21.179 27.639zm21.179-3.952c0 17.114-3.983 30.27-19.858 30.27-11.92 0-15.869-5.273-17.201-11.845l-1.31-1.311h-5.306l-1.311 1.311c1.311 10.515 9.269 18.412 25.138 18.412 17.227 0 27.803-10.521 27.803-36.849v-55.277l-1.311-1.307h-3.983l-1.309 1.307-1.309 7.917h-1.312c-2.642-5.274-9.269-10.546-21.18-10.546-18.512 0-27.802 14.479-27.802 34.221 0 19.748 9.27 34.225 27.802 34.225 11.923 0 18.538-5.254 21.18-10.518h1.312zm-86.041-51.326c13.244 0 22.496 10.52 22.496 27.639 0 17.126-9.264 27.639-22.496 27.639s-22.496-10.513-22.496-27.639c0-17.119 9.264-27.639 22.496-27.639zm0 61.864c17.207 0 30.443-11.849 30.443-34.225 0-22.374-13.236-34.221-30.443-34.221-17.201 0-30.443 11.847-30.443 34.221.01 22.376 13.252 34.225 30.443 34.225zm-39.693-2.623v-89.497l-1.332-1.312h-5.293l-1.312 1.312v89.497l1.312 1.312h5.293zm-47.657-59.241c13.239 0 22.498 10.52 22.498 27.639 0 17.126-9.269 27.639-22.498 27.639-13.232 0-22.5-10.513-22.5-27.639 0-17.119 9.268-27.639 22.5-27.639zm0 61.864c17.202 0 30.445-11.849 30.445-34.225 0-22.374-13.243-34.221-30.445-34.221-17.207 0-30.443 11.847-30.443 34.221 0 22.376 13.248 34.225 30.443 34.225zm-38.381-2.623v-39.485c0-17.093-9.269-26.328-23.822-26.328-9.265 0-17.222 3.95-21.177 10.546h-1.31l-1.311-7.912-1.311-1.312h-3.985l-1.31 1.312v63.169l1.31 1.312h5.306l1.311-1.312v-35.535c0-14.478 6.627-23.686 21.181-23.686 10.574 0 17.201 6.585 17.201 19.758v39.485l1.311 1.31h5.295l1.311-1.31zm-67.515 0v-39.485c0-17.093-9.269-26.328-23.822-26.328-9.265 0-17.202 3.95-21.177 10.546h-1.312v-34.221l-1.309-1.311h-5.306l-1.312 1.311v89.5l1.312 1.31h5.306l1.309-1.31v-35.534c0-14.481 6.629-23.687 21.18-23.687 10.577 0 17.204 6.585 17.204 19.756v39.495l1.311 1.31h5.295l1.311-1.34zm-113.826-31.602c0-18.431 9.27-27.639 22.499-27.639 13.231 0 18.516 7.897 19.868 15.793l1.311 1.312h5.306l1.31-1.312c-1.31-13.16-11.92-22.365-27.805-22.365-17.202 0-30.446 10.546-30.446 34.221 0 23.687 13.244 34.225 30.446 34.225 15.885 0 26.475-9.208 27.805-22.363l-1.31-1.311h-5.306l-1.311 1.311c-1.31 7.895-6.627 15.788-19.868 15.788-13.239 0-22.499-9.202-22.499-27.64zm-14.558 2.643 1.307-1.311v-3.933c0-18.431-10.596-31.588-29.114-31.588-18.511 0-29.113 13.145-29.113 31.578v2.631c0 18.416 9.27 34.226 30.445 34.226 18.517 0 25.143-11.85 26.475-19.752l-1.312-1.312h-5.283l-1.312 1.312c-2.641 7.892-7.938 13.156-18.516 13.156-17.202 0-22.499-15.79-22.499-23.686l1.312-1.311h47.601v-.02h.009zm-7.937-6.586h-39.733l-1.312-1.305c0-9.208 5.295-22.369 21.175-22.369 15.885 0 21.181 13.161 21.181 22.369zm-35.678-50.015v-3.948l-1.312-1.311h-68.866l-1.312 1.331v3.95l1.312 1.31h29.111l1.312 1.312v82.916l1.312 1.312h5.294l1.311-1.312v-82.916l1.312-1.312h29.112l1.342-1.31z" fill="#0076ce"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -1 +0,0 @@
<svg enable-background="new -153 -46 652 652" viewBox="-133.24 173.997 603.588 202.23" xmlns="http://www.w3.org/2000/svg"><path d="m-131 337.7h599.4v2.4h-599.4zm526.4-129.6 23.3 61.1h-54.7l23.7-61.1zm3.3 49.2-7.3-18.9-7.3 18.9zm35.7 53.5h-9.4c-4.1 0-7.1-2.3-8.3-5.4l-4.3-11.4h-42l-4.3 11.4c-1.1 3-4.1 5.4-8.3 5.4h-9l12-31.1h61.6zm26.6 0h-4.9l-47.4-120.6h-35.1l-46.9 120.6h-4.9c-4 0-7.1-3.1-7.1-7.1 0-.9.1-1.6.4-2.3l45.1-116.1c2.3-5.4 7.6-9.1 13.9-9.1h17.4 18.1c6.3 0 11.6 3.9 13.9 9.1l44.5 116.1c.3.7.3 1.4.3 2.3-.2 4-3.3 7.1-7.3 7.1zm-148.7-47.5h-27c-6.9 0-12.4-5.9-12.4-13v-12.1c0-7.1 5.6-13 12.4-13h27c6.9 0 12.4 5.9 12.4 13v12.1c0 7.1-5.6 13-12.4 13zm-1.7-23.9h-23.4v10.6h23.4zm-24.5-24.7h-24.3v83.6c0 7-5.6 12.6-12.3 12.6h-12.7-.1-12.7c-6.7 0-12.3-5.6-12.3-12.6v-83.6h-24.3c-6.9 0-12.3-5.6-12.3-12.6v-13.4c0-6.9 5.6-12.6 12.3-12.6h49.3 49.4c6.9 0 12.3 5.6 12.3 12.6v1.6h-61.6-.1-47.6v10.1h37v96h21v-96h51.1v1.7c.4 7-5.2 12.6-12.1 12.6zm-84.8 23.4v12.1c0 7.1-5.6 13-12.4 13h-27c-6.9 0-12.4-5.9-12.4-13v-12.1c0-7.1 5.6-13 12.4-13h27.1c6.7.2 12.3 5.9 12.3 13zm-14.2 1.3h-23.4v10.6h23.4zm-61.4 23.9h-27.8v10.4h27.9c7.4 0 13.3 6 13.4 13.3h-56.2v-37h41.4v-10.6h-41.4v-39h56.3v1.1c0 7.4-6 13.4-13.4 13.4h-27.9v10.4h27.9c7.4 0 13.4 6 13.4 13.4v11c-.2 7.6-6.2 13.6-13.6 13.6zm-65.6 33.1h79.1v1c0 7.4-6 13.4-13.4 13.4h-66.5c-7.4 0-13.4-6-13.4-13.4v-107.8c0-7.4 6-13.4 13.4-13.4h66.6c7.4 0 13.4 6 13.4 13.4v.7h-79.2zm-122.5 15.6c-37.9 0-68.6-30.7-68.6-68.6 0-37.7 30.7-68.4 68.6-68.4s68.6 30.7 68.6 68.4c-.1 37.9-30.8 68.6-68.6 68.6zm12.4-122.9-12.4 12.6h-25.7c-2.1-2.7-5.4-4.4-9.1-4.4-6.4 0-11.6 5.1-11.6 11.6 0 6.4 5.1 11.6 11.6 11.6 3.7 0 7-1.7 9.1-4.4h31.6l16.7-16.7zm16.1 16.2-19.4 19.4h-33.3l-30.7 30.7 10.1 10 26.4-26.4h33.3l23.6-23.6zm16.2 16.1-26.6 26.6h-33.3l-23.6 23.6 10.1 10 19.4-19.4h33.3l30.7-30.6zm-10 68.3c6.4 0 11.6-5.1 11.6-11.6 0-6.4-5.1-11.6-11.6-11.6-3.7 0-7 1.7-9.1 4.4h-31.4l-16.8 16.8 10.1 10 12.4-12.4h25.7c2.1 2.7 5.4 4.4 9.1 4.4zm-85.9 71h-14.1v3.6h9.9v3h-9.9v4.3h14.9v3h-18.2v-16.9h17.4zm26.9 11v-14h3.3v16.9h-4.9l-11.4-14v14h-3.3v-16.9h4.9zm25-14.6c3.7 0 6.9 1.3 9.3 3.9l-3.1 1.6c-1.7-1.7-3.9-2.4-6.3-2.4-2.3 0-4 .6-5.6 1.7-1.4 1.1-2.1 2.6-2.1 4.3s.7 3.1 2.1 4.3c1.4 1.1 3.3 1.7 5.6 1.7 3.4 0 5.7-1.3 6.9-3.7h-7.6v-3h11.5v.6c0 2.7-1 5-3 6.6-2 1.7-4.7 2.6-8 2.6-3 0-5.4-.7-7.6-2.1-2.3-1.7-3.6-4-3.6-6.7s1.1-5 3.6-6.7c2.2-2 4.7-2.7 7.9-2.7zm24.4 17.4h-3.3v-16.9h3.3zm27.9-2.8v-14h3.3v16.9h-4.9l-11.4-14v14h-3.3v-16.9h4.9zm32.1-11h-14.1v3.6h9.9v3h-9.9v4.3h14.7v3h-18v-16.9h17.4zm28 0h-14.1v3.6h9.9v3h-9.9v4.3h14.9v3h-18.2v-16.9h17.4zm28.4-1.6c1 1 1.6 2.3 1.6 3.9 0 2.9-1.4 4.4-4.1 5.1l4.6 6.4h-3.7l-4.4-6.1h-8.3v6.1h-3.3v-16.9h13.5c1.7.1 3.1.5 4.1 1.5zm-14.5 1.6v4.7h9.9c2 0 3-.7 3-2.3s-1-2.4-3.1-2.4zm30.1 13.8h-3.3v-16.9h3.3zm27.7-2.8v-14h3.3v16.9h-4.9l-11.4-14v14h-3.3v-16.9h4.9zm25-14.6c3.7 0 6.9 1.3 9.3 3.9l-3.1 1.6c-1.7-1.7-3.9-2.4-6.3-2.4-2.3 0-4 .6-5.6 1.7-1.4 1.1-2.1 2.6-2.1 4.3s.7 3.1 2.1 4.3c1.4 1.1 3.3 1.7 5.6 1.7 3.4 0 5.7-1.3 6.9-3.7h-7.6v-3h11.7v.6c0 2.7-1 5-3 6.6-2 1.7-4.7 2.6-8 2.6-3 0-5.4-.7-7.6-2.1-2.3-1.7-3.6-4-3.6-6.7s1.1-5 3.6-6.7c2-2 4.6-2.7 7.7-2.7zm52.3 3.6h-8v13.9h-3.3v-13.9h-8v-3h19.4v3zm26.7 0h-14.1v3.6h9.9v3h-9.9v4.3h14.9v3h-18.2v-16.9h17.4zm20.6-3.6c4.1 0 7.6 1.6 10.1 4.6l-3 1c-1.9-1.7-4.1-2.7-6.9-2.7-2.4 0-4.3.6-5.7 1.7s-2.1 2.6-2.1 4.3c0 1.9.7 3.3 2.1 4.3 1.4 1.1 3.3 1.6 5.7 1.6 2.9 0 5.1-.9 6.9-2.7l2.9 1.6c-2.4 2.9-5.7 4.1-9.7 4.1-3.4 0-6-.9-8.1-2.6s-3.1-3.9-3.1-6.4c0-2.7 1.1-4.9 3.6-6.6 1.7-1.5 4.3-2.2 7.3-2.2zm23.6 7.2h13v-6.6h3.3v16.9h-3.3v-7.3h-13v7.3h-3.3v-16.9h3.3zm44.1 7.4v-14h3.3v16.9h-4.9l-11.4-14v14h-3.3v-16.9h4.9zm24.7-14.6c2.9 0 5.4.7 7.4 2.3 2.4 1.7 3.6 4 3.6 6.7s-1.1 5-3.6 6.7c-2 1.4-4.6 2.1-7.6 2.1s-5.6-.7-7.6-2.1c-2.3-1.7-3.6-4-3.6-6.7s1.1-5 3.6-6.7c2.4-1.6 4.8-2.3 7.8-2.3zm-5.5 13.3c1.4 1.1 3.3 1.7 5.6 1.7s4.1-.6 5.6-1.7c1.4-1.1 2.1-2.6 2.1-4.3s-.7-3.1-2.1-4.3c-1.4-1.1-3.3-1.7-5.6-1.7s-4.1.6-5.6 1.7c-1.4 1.1-2.1 2.6-2.1 4.3-.1 1.7.6 3.2 2.1 4.3zm30.2 1.2h13v3h-16.3v-16.9h3.3zm32.3-14.5c2.9 0 5.4.7 7.4 2.3 2.4 1.7 3.6 4 3.6 6.7s-1.1 5-3.6 6.7c-2 1.4-4.6 2.1-7.6 2.1s-5.6-.7-7.6-2.1c-2.3-1.7-3.6-4-3.6-6.7s1.1-5 3.6-6.7c2.4-1.6 5-2.3 7.8-2.3zm-5.5 13.3c1.4 1.1 3.3 1.7 5.6 1.7s4.1-.6 5.6-1.7c1.4-1.1 2.1-2.6 2.1-4.3s-.7-3.1-2.1-4.3c-1.4-1.1-3.3-1.7-5.6-1.7s-4.1.6-5.6 1.7c-1.4 1.1-2.1 2.6-2.1 4.3-.1 1.7.6 3.2 2.1 4.3zm37.2-13.3c3.7 0 6.9 1.3 9.3 3.9l-3.1 1.6c-1.7-1.7-3.9-2.4-6.3-2.4-2.3 0-4 .6-5.6 1.7-1.4 1.1-2.1 2.6-2.1 4.3s.7 3.1 2.1 4.3c1.4 1.1 3.3 1.7 5.6 1.7 3.4 0 5.7-1.3 6.9-3.7h-7.6v-3h11.7v.6c0 2.7-1 5-3 6.6-2 1.7-4.7 2.6-8 2.6-3 0-5.4-.7-7.6-2.1-2.3-1.7-3.6-4-3.6-6.7s1.1-5 3.6-6.7c2.2-2 4.7-2.7 7.7-2.7zm29.8 8.3 7.1-7.7h4l-9.6 10.1v6.6h-3.3v-6.6l-9.6-10.1h4z" fill="#0896cf"/></svg>

Before

Width:  |  Height:  |  Size: 4.6 KiB

View File

@ -1 +0,0 @@
<svg viewBox="-9 -52 270 180" xmlns="http://www.w3.org/2000/svg"><path d="m81.858 13.225 6.132 22.039h-12.694zm-11.134 37.489-5.581 18.286h32.611l-5.244-18.286zm85.088-50.714h-62.586v19.646h19.744v49.354h31.782c-1.971-1.217-15.447-11.918-15.447-31.883 0-16.61 10.075-32.849 26.507-37.117m10.843 51.332c7.386 0 13.316-6.134 13.316-13.872 0-7.706-5.549-14.673-13.04-14.673-7.517 0-13.416 6.967-13.416 14.673 0 7.738 5.54 13.872 13.14 13.872m65.653-7.952-12.702-43.38h-32.533v69h20.322v-43.253h.142l12.583 43.253h32.811v-69h-20.514v43.38zm-192.933 25.62 5.87-19.339h-21.771v-5.856h23.538l5.611-18.55h-29.149v-5.609h30.759l5.936-19.646h-60.169v69zm0 0" fill="#1175c7"/></svg>

Before

Width:  |  Height:  |  Size: 671 B

View File

@ -1 +0,0 @@
<svg enable-background="new -108.3 154.3 800 205" viewBox="0 0 223 203" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a"><stop offset="0" stop-color="#38c4f2"/><stop offset="1" stop-color="#3783c4"/></linearGradient><linearGradient id="b" gradientTransform="matrix(1 0 0 -1 0 514.8)" gradientUnits="userSpaceOnUse" x1="-72.3122" x2="655.364" xlink:href="#a" y1="204.2994" y2="325.2602"/><linearGradient id="c" gradientTransform="matrix(1 0 0 -1 0 514.8)" gradientUnits="userSpaceOnUse" x1="-72.8685" x2="654.8085" xlink:href="#a" y1="207.6483" y2="328.6094"/><linearGradient id="d" gradientTransform="matrix(1 0 0 -1 0 514.8)" gradientUnits="userSpaceOnUse" x1="-83.8252" x2="643.8511" xlink:href="#a" y1="273.5586" y2="394.5196"/><g transform="matrix(1.322319 0 0 1.322319 98.909523 -239.03714)"><path d="m-25.3 288.2c-7.6-9-20-12.4-31.1-8.4s-18.4 14.6-18.4 26.4 7.4 22.4 18.6 26.4c11.1 4 23.6.7 31.1-8.4 13-15.4 34.7-20.4 53.1-12.3-.6-3.9-.6-7.7 0-11.6-18.6 8.5-40.3 3.4-53.3-12.1z" fill="url(#b)"/><path d="m70.6 278.7c-19.9-3.4-35-19.7-37.1-39.9-3 2.4-6.4 4.4-10 5.7 16.3 11.9 22.9 33.1 15.9 52.1-4 11.1-.7 23.6 8.3 31.1 9 7.6 21.9 8.7 32.1 2.9s15.7-17.6 13.6-29.3c-2.1-11.5-11.2-20.6-22.8-22.6z" fill="url(#c)"/><path d="m14.3 236.7c11.6-2 20.7-11.1 22.9-22.9 2-11.6-3.4-23.3-13.6-29.3-10.3-5.9-23.1-4.7-32.1 2.9s-12.4 20-8.3 31.1c7 19 .4 40.3-15.9 52.1 3.6 1.4 7 3.3 10 5.7 1.9-19.9 17.1-36.2 37-39.6z" fill="url(#d)"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1 +0,0 @@
<svg enable-background="new 0 0 652 652" viewBox="80.19 262.794 126 126" xmlns="http://www.w3.org/2000/svg"><path d="m175 372.3-21.8-48.1 28.7-38h-20.1l-16.2 21.3-16.5-36.5s-2.1-4.4-9.1-4.5h-.7c-.9 0-1.8.1-2.8.2-10.5 1.6-80.8 8.1-80.8 8.1l-.4.6h77.1l21 47.9-29.3 38.4h20.6l16.1-21.4 17.8 40.7s2.8 6 12.2 5.3c15.5-1.2 426-13 426-13l.9-1.1h-422.7z" fill="#33a93d"/></svg>

Before

Width:  |  Height:  |  Size: 369 B

View File

@ -1 +0,0 @@
<svg viewBox="238 431 117 117" xmlns="http://www.w3.org/2000/svg"><g fill="#2e087e"><path d="m270.996 499.344v-39.253h73.334v-20.996h-94.33v81.245l20.692 20.084h73.638l.575-20.527h-93.868z"/><path d="m291.208 479.414h40.116v20.372h-40.116z"/></g></svg>

Before

Width:  |  Height:  |  Size: 252 B

View File

@ -1 +0,0 @@
<svg height="256" preserveAspectRatio="xMidYMid" viewBox="0 0 256 256" width="256" xmlns="http://www.w3.org/2000/svg"><path d="m256 128.004c0-70.694-57.309-128.004-128.002-128.004-70.662 0-127.948 57.262-127.998 127.914v99.054c.038 16.042 13.049 29.029 29.101 29.029h98.949c70.67-.028 127.95-57.318 127.95-127.993" fill="#294172"/><path d="m165.58 30.307c-33.109 0-60.045 26.935-60.045 60.045v31.87h-31.738c-33.109 0-60.045 26.937-60.045 60.046 0 33.108 26.936 60.045 60.045 60.045s60.045-26.937 60.045-60.045v-31.871h31.738c33.109 0 60.046-26.936 60.046-60.045 0-33.11-26.937-60.045-60.046-60.045zm-59.823 151.961c0 17.622-14.337 31.959-31.96 31.959s-31.96-14.337-31.96-31.959c0-17.623 14.337-31.96 31.96-31.96h31.738v.089h.222zm59.823-59.956h-31.738v-.09h-.221v-31.87c0-17.623 14.337-31.96 31.959-31.96s31.96 14.337 31.96 31.96-14.338 31.96-31.96 31.96z" fill="#3c6eb4"/><path d="m178.851 32.128c-4.66-1.218-8.238-1.786-13.271-1.786-33.177 0-60.075 26.899-60.075 60.074v31.842h-25.16c-7.845 0-14.185 6.165-14.18 13.996 0 7.782 6.27 13.973 14.032 13.973l20.831.004c2.473 0 4.479 2 4.479 4.469v27.553c-.031 17.491-14.219 31.659-31.71 31.659-5.925 0-7.392-.776-11.437-.776-8.497 0-14.182 5.696-14.182 13.528.002 6.479 5.554 12.049 12.348 13.827 4.66 1.218 8.238 1.787 13.271 1.787 33.177 0 60.075-26.899 60.075-60.075v-31.841h25.16c7.845 0 14.185-6.165 14.18-13.996 0-7.783-6.27-13.973-14.032-13.973l-20.831-.004c-2.473 0-4.479-2.001-4.479-4.47v-27.553c.031-17.491 14.219-31.659 31.71-31.659 5.925 0 7.392.777 11.437.777 8.497 0 14.182-5.697 14.182-13.528-.002-6.48-5.554-12.05-12.348-13.828" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -1 +0,0 @@
<svg height="103.536" viewBox="0 0 103.536 103.536" width="103.536" xmlns="http://www.w3.org/2000/svg"><circle cx="51.768" cy="51.768" fill="#bd1220" r="51.768"/><circle cx="51.768" cy="51.768" fill="#fff" r="50.743"/><circle cx="51.768" cy="51.768" fill="#bd1220" r="47.155"/><path d="m20.227 77.001v-35.116c0-8.478 6.872-15.35 15.35-15.35h32.382c11.816 0 19.201 12.792 13.293 23.025-.45.78-.968 1.519-1.548 2.208 7.608 9.041 2.575 22.928-9.059 24.996-.887.157-1.786.237-2.686.237h-26.705v-10.094h26.705c4.046-.002 6.574-4.383 4.548-7.887-.938-1.624-2.672-2.625-4.548-2.626h-26.705v-9.252h26.705c4.046-.002 6.574-4.383 4.549-7.887-.939-1.625-2.673-2.626-4.549-2.627h-32.382c-2.904 0-5.257 2.354-5.257 5.257v35.116z" fill="none" stroke-width="2.051232"/><g transform="matrix(.157692 0 0 .157692 115.015839 21.455097)"><path d="m-583.86817 338.41477v-203.49843a88.954402 88.954402 0 0 1 88.9544-88.954399h187.65724a88.954402 88.954402 0 0 1 68.06469 146.226409 88.954402 88.954402 0 0 1 -68.06469 146.22642z" fill="#fff"/><path d="m-462.01284 338.4917v-58.50981h154.75631a30.463835 30.473852 0 0 0 0-60.9477h-154.75631v-53.63398h154.75631a30.463835 30.473855 0 0 0 0-60.9477h-187.65724a30.463835 30.473852 0 0 0 -30.46384 30.47385v203.56534z" fill="#bd1220"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -1 +0,0 @@
<svg viewBox="-29 -3 300 50" xmlns="http://www.w3.org/2000/svg"><path d="m.173 32.838c0 .538.543.652 1.381.652 1.817 0 4.381-.114 5.509-.316-.142-2.914-.211-6.01-.192-10.343h13.221c2.629 0 4.404-.254 4.934-2.416h-18.147l.035-8.97h12.176c3.067 0 4.515-.029 5.3-.319.802-.393 1.546-.992 2.034-2.102-3.237 0-15.688 0-20.048 0-2.416.12-5.04.338-6.376.533.154.901.25 2.134.244 4.16zm47.381-22.11c6.671 0 14.156 3.221 14.132 10.38-.03 6.956-5.975 10.442-13.71 10.442-7.188 0-14.234-3.652-14.207-10.445.026-6.703 6.156-10.35 13.724-10.377zm.247-2.284c-12.24 0-19.938 5.56-19.965 13.002-.02 5.253 5.64 12.391 19.841 12.391 12.977 0 19.851-6.24 19.877-12.908.023-6.099-6.637-12.485-19.685-12.485zm29.321 2.788c1.194-.14 3.006-.19 4.666-.19 4.94 0 9.908 1.278 9.894 5.008-.011 2.786-3.185 4.329-5.666 4.753-1.084.21-7.348.21-8.929.095zm-6.619 15.189c-.014 3.23-.123 5.512-.286 7.069.918 0 3.294-.015 5.428-.132 1.032-.077 1.397-.258 1.399-.956l.035-9.336c1.546-.011 3.121 0 4.605 0 1.759.012 2.352.222 3.48 1.194 5.657 4.574 8.117 6.452 10.183 7.772 1.941 1.223 3.542 1.53 5.645 1.53 1.816 0 3.871-.138 4.519-.347l.094-.209c-1.646-.818-3.734-2.007-8.262-5.4-3.776-2.791-5.595-4.267-6.928-5.366 2.116-.614 8.22-2.481 8.236-6.363.021-5.196-6.771-7.047-17.082-7.047-4.235 0-8.942.322-11.157.568.148 1.231.145 2.158.138 4.058zm64.249 3.859c-1.787.47-5.925 1.072-9.737 1.072-11.198 0-17.156-4.369-17.136-10.259.025-6.624 7.51-10.228 16.003-10.228 3.526 0 6.387.462 8.398 1.11 1.052.292 1.941.381 2.449.054.52-.3.884-.88.947-1.551-1.108-.76-5.531-2.034-11.433-2.034-5.859 0-11.098.911-15.509 3.282-5.007 2.687-7.237 6.308-7.251 9.585-.026 7.301 8.125 12.526 22.462 12.526 4.335 0 7.738-.57 9.12-1.138.997-.52 1.702-1.295 1.946-2.311zm4.451 2.042 1.17.778c1.86.218 6.913.39 13.3.39 5.412 0 7.938-.081 8.935-.172 1.727-.312 3-1.228 3.615-2.349l-.153-.082c-2.964.158-7.622.182-11.132.182-3.755 0-7.476-.077-9.071-.308l.032-8.759h12.549c2.567.007 3.889-.158 4.859-2.418h-17.4l.031-8.14h10.168c3.398 0 4.817 0 5.779-.261.935-.441 1.763-1.159 2.059-2.159-5.688 0-13.75 0-19.012 0-2.084.086-4.369.326-5.856.545.206 1.46.198 3.054.19 4.885zm104.245-11.441c-1.127 6.391-11.89 11.791-23.085 12.062-11.197.275-19.357-4.683-18.227-11.07 1.131-6.391 11.124-11.791 22.316-12.066 8.817-.215 16.457 2.877 18.454 7.293.275.714.679 1.778.642 2.725-.006.347-.037.698-.1 1.056zm-4.518 10.174c-7.488 4.894-19.564 8.127-31.36 8.127-8.147 0-16.206-1.768-21.678-4.389 0 0 .136.012.159-.024.02-.037 17.876-29.059 17.876-29.059s-2.448-.824-4.051.601c-.935.802-3.692 1.937-6.01 2.563-3.974 1.11-4.22 1.096-5.785 1.541-1.918.545-2.736 2.902-2.736 2.902s8.09-1.493 8.159-1.508c.069-.018.23-.092.23-.092s-.129.104-.167.164c-.04.06-12.144 20.075-12.173 20.121-.031.046.04.142.04.142-4.048-3.02-7.023-6.848-6.665-10.934.87-9.927 17.324-17.973 35.947-17.973 7.467 0 14.236 1.307 19.614 3.509.178.071.71.254.884.327-.197-.026-.752-.158-.952-.181-2.058-.236-4.281-.325-6.648-.265-14.03.35-26.555 7.293-27.972 15.502-1.415 8.213 8.81 14.586 22.845 14.235 7.517-.188 15.037-2.203 20.4-5.365.294-.174 1.385-.897 1.799-1.166-.213.208-1.26.9-1.756 1.222zm-27.973-31.055c-22.534 0-41.607 9.798-42.603 21.174-.996 11.375 16.466 21.175 38.999 21.175 22.534 0 41.613-9.8 42.607-21.175.996-11.376-16.467-21.174-39.003-21.174" fill="#cfd0d3"/></svg>

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -1 +0,0 @@
<svg viewBox="-29 -3 300 50" xmlns="http://www.w3.org/2000/svg"><path d="m.173 32.838c0 .538.543.652 1.381.652 1.817 0 4.381-.114 5.509-.316-.142-2.914-.211-6.01-.192-10.343h13.221c2.629 0 4.404-.254 4.934-2.416h-18.147l.035-8.97h12.176c3.067 0 4.515-.029 5.3-.319.802-.393 1.546-.992 2.034-2.102-3.237 0-15.688 0-20.048 0-2.416.12-5.04.338-6.376.533.154.901.25 2.134.244 4.16zm47.381-22.11c6.671 0 14.156 3.221 14.132 10.38-.03 6.956-5.975 10.442-13.71 10.442-7.188 0-14.234-3.652-14.207-10.445.026-6.703 6.156-10.35 13.724-10.377zm.247-2.284c-12.24 0-19.938 5.56-19.965 13.002-.02 5.253 5.64 12.391 19.841 12.391 12.977 0 19.851-6.24 19.877-12.908.023-6.099-6.637-12.485-19.685-12.485zm29.321 2.788c1.194-.14 3.006-.19 4.666-.19 4.94 0 9.908 1.278 9.894 5.008-.011 2.786-3.185 4.329-5.666 4.753-1.084.21-7.348.21-8.929.095zm-6.619 15.189c-.014 3.23-.123 5.512-.286 7.069.918 0 3.294-.015 5.428-.132 1.032-.077 1.397-.258 1.399-.956l.035-9.336c1.546-.011 3.121 0 4.605 0 1.759.012 2.352.222 3.48 1.194 5.657 4.574 8.117 6.452 10.183 7.772 1.941 1.223 3.542 1.53 5.645 1.53 1.816 0 3.871-.138 4.519-.347l.094-.209c-1.646-.818-3.734-2.007-8.262-5.4-3.776-2.791-5.595-4.267-6.928-5.366 2.116-.614 8.22-2.481 8.236-6.363.021-5.196-6.771-7.047-17.082-7.047-4.235 0-8.942.322-11.157.568.148 1.231.145 2.158.138 4.058zm64.249 3.859c-1.787.47-5.925 1.072-9.737 1.072-11.198 0-17.156-4.369-17.136-10.259.025-6.624 7.51-10.228 16.003-10.228 3.526 0 6.387.462 8.398 1.11 1.052.292 1.941.381 2.449.054.52-.3.884-.88.947-1.551-1.108-.76-5.531-2.034-11.433-2.034-5.859 0-11.098.911-15.509 3.282-5.007 2.687-7.237 6.308-7.251 9.585-.026 7.301 8.125 12.526 22.462 12.526 4.335 0 7.738-.57 9.12-1.138.997-.52 1.702-1.295 1.946-2.311zm4.451 2.042 1.17.778c1.86.218 6.913.39 13.3.39 5.412 0 7.938-.081 8.935-.172 1.727-.312 3-1.228 3.615-2.349l-.153-.082c-2.964.158-7.622.182-11.132.182-3.755 0-7.476-.077-9.071-.308l.032-8.759h12.549c2.567.007 3.889-.158 4.859-2.418h-17.4l.031-8.14h10.168c3.398 0 4.817 0 5.779-.261.935-.441 1.763-1.159 2.059-2.159-5.688 0-13.75 0-19.012 0-2.084.086-4.369.326-5.856.545.206 1.46.198 3.054.19 4.885zm104.245-11.441c-1.127 6.391-11.89 11.791-23.085 12.062-11.197.275-19.357-4.683-18.227-11.07 1.131-6.391 11.124-11.791 22.316-12.066 8.817-.215 16.457 2.877 18.454 7.293.275.714.679 1.778.642 2.725-.006.347-.037.698-.1 1.056zm-4.518 10.174c-7.488 4.894-19.564 8.127-31.36 8.127-8.147 0-16.206-1.768-21.678-4.389 0 0 .136.012.159-.024.02-.037 17.876-29.059 17.876-29.059s-2.448-.824-4.051.601c-.935.802-3.692 1.937-6.01 2.563-3.974 1.11-4.22 1.096-5.785 1.541-1.918.545-2.736 2.902-2.736 2.902s8.09-1.493 8.159-1.508c.069-.018.23-.092.23-.092s-.129.104-.167.164c-.04.06-12.144 20.075-12.173 20.121-.031.046.04.142.04.142-4.048-3.02-7.023-6.848-6.665-10.934.87-9.927 17.324-17.973 35.947-17.973 7.467 0 14.236 1.307 19.614 3.509.178.071.71.254.884.327-.197-.026-.752-.158-.952-.181-2.058-.236-4.281-.325-6.648-.265-14.03.35-26.555 7.293-27.972 15.502-1.415 8.213 8.81 14.586 22.845 14.235 7.517-.188 15.037-2.203 20.4-5.365.294-.174 1.385-.897 1.799-1.166-.213.208-1.26.9-1.756 1.222zm-27.973-31.055c-22.534 0-41.607 9.798-42.603 21.174-.996 11.375 16.466 21.175 38.999 21.175 22.534 0 41.613-9.8 42.607-21.175.996-11.376-16.467-21.174-39.003-21.174" fill="#231f20"/></svg>

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -1 +0,0 @@
<svg viewBox="-1 -28 201 201" xmlns="http://www.w3.org/2000/svg"><path d="m177.282 141.968c11.026-3.747 19.609-16.445 21.669-32.409v-4.619h-56.531v37.035h34.854zm21.677-104.914v-4.179c-2.164-16.66-11.385-29.788-23.14-32.872h-33.391v37.043h56.531zm-198.959 67.894v4.571c2.046 15.981 10.629 28.702 21.685 32.456h34.679v-37.035h-56.364zm23.133-104.912c-11.738 3.083-20.983 16.219-23.133 32.902v4.149h56.364v-37.043h-33.231zm175.867 52.464h-56.532v37.043h56.532zm-127.208 89.492h55.303v-37.027h-55.303zm55.303-141.989h-55.303v37.043h55.303zm-127.046 89.492h56.363v-37.043h-56.363z" fill="#ee2e24"/></svg>

Before

Width:  |  Height:  |  Size: 600 B

View File

@ -1 +0,0 @@
<svg viewBox="-.436 -.226 120.879 119.114" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><clipPath id="a"><path d="m0 0h58.240002v28h-58.240002z"/></clipPath><g clip-path="url(#a)" transform="matrix(4.298098 0 0 4.298098 -.591827 -.983784)"><path d="m25.76099531 9.45930858h-3.0537-11.5718c-1.26279 0-2.29598-1.0332-2.29598-2.296s1.03319-2.29599 2.29598-2.29599h11.5718 1.4006c-2.5256-2.80111-6.1762-4.56903-10.2402-4.56903-7.57674 0-13.73 6.15326-13.73 13.73 0 7.5768 6.15326 13.7301 13.73 13.7301 7.5768 0 13.7301-6.1533 13.7301-13.7301 0-1.676-.2985-3.3062-.8725-4.79859-.2755.13776-.6199.22961-.9643.22961zm-12.1458 13.27088h-3.67361c-1.01024 0-1.83679-.8266-1.83679-1.8368 0-1.0103.82655-1.8368 1.83679-1.8368h3.65061c1.0103 0 1.8368.8265 1.8368 1.8368 0 1.0102-.8036 1.8368-1.8138 1.8368zm5.6022-6.4059h-8.7018c-1.12505 0-2.0664-.9184-2.0664-2.0664 0-1.125.91839-2.0664 2.0664-2.0664h8.7018c1.125 0 2.0664.9184 2.0664 2.0664 0 1.1251-.9414 2.0664-2.0664 2.0664z" fill="#c00000"/><path d="m19.21741875 12.19184327h-8.70181c-1.125033 0-2.06639.918397-2.06639 2.06639 0 1.12504.918397 2.0664 2.06639 2.0664h8.70181c1.125 0 2.0664-.9184 2.0664-2.0664 0-1.125032-.9414-2.06639-2.0664-2.06639z" fill="#fff"/><path d="m13.61536047 19.05658937h-3.67359c-1.010233 0-1.83679.826557-1.83679 1.83679 0 1.01024.826557 1.8368 1.83679 1.8368h3.65063c1.01024 0 1.8368-.82656 1.8368-1.8368 0-1.010233-.8036-1.83679-1.81384-1.83679z" fill="#fff"/><path d="m28.05702016 7.16361452c0-1.26279-1.0332-2.29599-2.296-2.29599h-1.65311c1.12504 1.2628 2.04343 2.73223 2.64039 4.36239.75768-.36736 1.30872-1.148 1.30872-2.0664z" fill="#c00000"/><path d="m22.70739961 4.86762452h-11.57181c-1.26279 0-2.29599 1.0332-2.29599 2.29599 0 1.2628 1.0332 2.296 2.29599 2.296h11.57181 3.0537c.3444 0 .6658-.06888.9643-.2296-.597-1.63016-1.5154-3.09959-2.6404-4.36239z" fill="#fff"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

Some files were not shown because too many files have changed in this diff Show More