Merge remote-tracking branch 'origin/support/2.7' into support/3.0

# Conflicts:
#	core/config.class.inc.php
#	datamodels/2.x/installation.xml
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-adjust.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-administrative-tools.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-application-window.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-apps-tab.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-archive-folder.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-audit.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-automatic.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-bandage.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-book-error.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-calendar.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-cassette.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-change-approved.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-change-emergency.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-change-normal.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-change-routine.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-change.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-checkmark.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-cloud-file.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-conflict.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-contract.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-customer.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-database-custom.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-database.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-delete.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-department.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-desktop.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-discussion-forum.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-documents.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-electrical.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-electricity.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-electronics.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-enclosure-for-servers.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-export-csv.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-faq.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-farm.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-file.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-globe-cable.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-globe-fiber.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-globe-wire.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-hdd.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-hierarchy.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-hypervisor.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-import-csv.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-important-book.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-in-transit.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-laptop.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-licence.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-map-as-drive.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-map-marker.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-mobile.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-music-robot.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-nas.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-network.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-new-item.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-note.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-office-phone.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-old-vmware-logo.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-organization.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-person-female.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-phone.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-plug-socket.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-power-plant.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-print.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-process-improvement.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-puzzle.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-rack.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-server-custom.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-server-storage.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-server.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-service.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-services.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-smartphone-tablet.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-software-instance.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-software-license.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-software-other.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-software.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-solve.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-stack.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-switch-san.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-switch.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-tape-library.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-tasklist.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-team.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-telephone.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-time-limit.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-virtual-machine.svg
#	datamodels/2.x/itop-oauth-client/assets/img/icons8-web.svg
#	datamodels/2.x/itop-welcome-itil/datamodel.itop-welcome-itil.xml
#	dictionaries/cs.dictionary.itop.ui.php
#	dictionaries/da.dictionary.itop.ui.php
#	dictionaries/de.dictionary.itop.ui.php
#	dictionaries/en.dictionary.itop.ui.php
#	dictionaries/es_cr.dictionary.itop.ui.php
#	dictionaries/fr.dictionary.itop.ui.php
#	dictionaries/hu.dictionary.itop.ui.php
#	dictionaries/it.dictionary.itop.ui.php
#	dictionaries/ja.dictionary.itop.ui.php
#	dictionaries/nl.dictionary.itop.ui.php
#	dictionaries/pt_br.dictionary.itop.ui.php
#	dictionaries/ru.dictionary.itop.ui.php
#	dictionaries/sk.dictionary.itop.ui.php
#	dictionaries/tr.dictionary.itop.ui.php
#	dictionaries/zh_cn.dictionary.itop.ui.php
#	js/wizardhelper.js
#	lib/composer/autoload_classmap.php
#	lib/composer/autoload_real.php
#	lib/composer/autoload_static.php
#	templates/pages/backoffice/oauth/Wizard.html.twig
This commit is contained in:
Benjamin Dalsass
2022-06-27 08:11:28 +02:00
168 changed files with 2975 additions and 4432 deletions

View File

@@ -576,46 +576,6 @@ class Config
'source_of_value' => '',
'show_in_conf_sample' => false,
],
'email_transport_smtp.oauth.provider' => [
'type' => 'string',
'description' => 'Email OAuth provider',
'default' => '',
'value' => '',
'source_of_value' => '',
'show_in_conf_sample' => false,
],
'email_transport_smtp.oauth.client_id' => [
'type' => 'string',
'description' => 'Email OAuth client id',
'default' => '',
'value' => '',
'source_of_value' => '',
'show_in_conf_sample' => false,
],
'email_transport_smtp.oauth.client_secret' => [
'type' => 'string',
'description' => 'Email OAuth client secret',
'default' => '',
'value' => '',
'source_of_value' => '',
'show_in_conf_sample' => false,
],
'email_transport_smtp.oauth.access_token' => [
'type' => 'string',
'description' => 'Email OAuth access token',
'default' => '',
'value' => '',
'source_of_value' => '',
'show_in_conf_sample' => false,
],
'email_transport_smtp.oauth.refresh_token' => [
'type' => 'string',
'description' => 'Email OAuth refresh token',
'default' => '',
'value' => '',
'source_of_value' => '',
'show_in_conf_sample' => false,
],
'email_css' => [
'type' => 'string',
'description' => 'CSS that will override the standard stylesheet used for the notifications',

View File

@@ -21,6 +21,7 @@
<module>combodo-db-tools</module>
<module>itop-core-update</module>
<module>itop-hub-connector</module>
<module>itop-oauth-client</module>
<module>combodo-backoffice-darkmoon-theme</module>
<module>itop-themes-compat</module>
</modules>

View File

@@ -0,0 +1,2 @@
# Extension OAuth 2.0 client

View File

@@ -0,0 +1,24 @@
<?php
/**
* @copyright Copyright (C) 2010-2022 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
namespace Combodo\iTop\OAuthClient;
use Combodo\iTop\OAuthClient\Controller\AjaxOauthClientController;
require_once(APPROOT.'application/startup.inc.php');
if (version_compare(ITOP_DESIGN_LATEST_VERSION , '3.0') >= 0) {
$sTemplates = MODULESROOT.'itop-oauth-client/templates';
} else {
$sTemplates = MODULESROOT.'itop-oauth-client/templates/legacy';
}
$oUpdateController = new AjaxOauthClientController($sTemplates, 'itop-oauth-client');
$oUpdateController->AllowOnlyAdmin();
$oUpdateController->SetDefaultOperation('CreateMailbox');
$oUpdateController->HandleOperation();

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

Before

Width:  |  Height:  |  Size: 977 B

After

Width:  |  Height:  |  Size: 977 B

View File

@@ -0,0 +1,99 @@
/**
* @copyright Copyright (C) 2010-2022 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
// Function used to open OAuth popup
var oWindowObjectReference = null;
var sPreviousUrl = null;
var oListener = null;
var sOAuthAjaxURI = null;
var sOAuthObjClass = null;
var sOAuthObjKey = null;
var sOAuthReturnURI = null;
const oOnOauthSuccess = function (event) {
if (oListener !== null) {
clearInterval(oListener);
}
$.post(
sOAuthAjaxURI,
{
operation: 'GetDisplayAuthenticationResults',
class: sOAuthObjClass,
id: sOAuthObjKey,
redirect_url: event.data
},
function (oData) {
window.location = oData.data;
}
);
}
const oOpenSignInWindow = function (url, name) {
// Remove any existing event listener
window.removeEventListener('message', oOnOauthSuccess);
if (oListener !== null) {
clearInterval(oListener);
}
// Window features
const sWindowFeatures = 'toolbar=no, menubar=no, width=600, height=700, top=100, left=100';
if (oWindowObjectReference === null || oWindowObjectReference.closed) {
/* If the pointer to the window object in memory does not exist
or if such pointer exists but the window was closed */
oWindowObjectReference = window.open(url, name, sWindowFeatures);
} else if (sPreviousUrl !== url) {
/* If the resource to load is different,
then we load it in the already opened secondary window, and then
we bring such window back on top/in front of its parent window. */
oWindowObjectReference = window.open(url, name, sWindowFeatures);
oWindowObjectReference.focus();
} else {
/* Else the window reference must exist and the window
is not closed; therefore, we can bring it back on top of any other
window with the focus() method. There would be no need to re-create
the window or to reload the referenced resource. */
oWindowObjectReference.focus();
}
/* Let know every second our child window that we're waiting for it to complete,
once we reach our landing page, it'll send us a reply
*/
oListener = window.setInterval(function () {
if (oWindowObjectReference.closed) {
clearInterval(oListener);
}
oWindowObjectReference.postMessage('anyone', sOAuthReturnURI);
}, 1000);
/* Once we receive a response, transmit it to the server to get authenticate and display
results
*/
window.addEventListener('message', oOnOauthSuccess, false);
// Assign the previous URL
sPreviousUrl = url;
};
const OAuthConnect = function(sClass, sId, sAjaxUri, sReturnUri) {
sOAuthAjaxURI = sAjaxUri;
sOAuthObjClass = sClass;
sOAuthObjKey = sId;
sOAuthReturnURI = sReturnUri;
$.post(
sOAuthAjaxURI,
{
operation: 'GetOAuthAuthorizationUrl',
class: sOAuthObjClass,
id: sOAuthObjKey
},
function (oData) {
if (oData.status === 'success') {
oOpenSignInWindow(oData.data.authorization_url, 'OAuth authorization')
}
}
);
}

View File

@@ -0,0 +1,16 @@
{
"config": {
"classmap-authoritative": true
},
"autoload": {
"psr-4": {
"Combodo\\iTop\\OAuthClient\\": "src"
}
},
"name": "combodo/itop-oauth-client",
"type": "itop-extension",
"description": "Remote authentication for OAuth 2.0",
"require": {
"composer-runtime-api": "^2.0"
}
}

View File

@@ -0,0 +1,74 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2013 XXXXX
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('CS CZ', 'Czech', 'Čeština', [
'Menu:CreateMailbox' => 'Create a mailbox...~~',
'Menu:OAuthClient' => 'OAuth Client~~',
'Menu:OAuthClient+' => '~~',
'Menu:GenerateTokens' => 'Generate access tokens...~~',
'Menu:RegenerateTokens' => 'Regenerate access tokens...~~',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Mailbox creation~~',
'itop-oauth-client:UsedForSMTP' => 'This OAuth client is used for SMTP~~',
'itop-oauth-client:TestSMTP' => 'Email send test~~',
'itop-oauth-client:MissingOAuthClient' => 'Missing Oauth client for user name %1$s~~',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client~~',
'itop-oauth-client:Message:TokenCreated' => 'Access token created~~',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated~~',
]);
//
// Class: OAuthClient
//
Dict::Add('CS CZ', 'Czech', 'Čeština', [
'Class:OAuthClient' => 'Oauth Client~~',
'Class:OAuthClient/Attribute:provider' => 'Provider~~',
'Class:OAuthClient/Attribute:provider+' => '~~',
'Class:OAuthClient/Attribute:name' => 'Login~~',
'Class:OAuthClient/Attribute:name+' => '~~',
'Class:OAuthClient/Attribute:scope' => 'Scope~~',
'Class:OAuthClient/Attribute:scope+' => '~~',
'Class:OAuthClient/Attribute:description' => 'Description~~',
'Class:OAuthClient/Attribute:description+' => '~~',
'Class:OAuthClient/Attribute:client_id' => 'Client id~~',
'Class:OAuthClient/Attribute:client_id+' => '~~',
'Class:OAuthClient/Attribute:client_secret' => 'Client secret~~',
'Class:OAuthClient/Attribute:client_secret+' => '~~',
'Class:OAuthClient/Attribute:refresh_token' => 'Refresh token~~',
'Class:OAuthClient/Attribute:refresh_token+' => '~~',
'Class:OAuthClient/Attribute:refresh_token_expiration' => 'Refresh token expiration~~',
'Class:OAuthClient/Attribute:refresh_token_expiration+' => '~~',
'Class:OAuthClient/Attribute:token' => 'Access token~~',
'Class:OAuthClient/Attribute:token+' => '~~',
'Class:OAuthClient/Attribute:token_expiration' => 'Access token expiration~~',
'Class:OAuthClient/Attribute:token_expiration+' => '~~',
'Class:OAuthClient/Attribute:redirect_url' => 'Redirect url~~',
'Class:OAuthClient/Attribute:redirect_url+' => '~~',
'Class:OAuthClient/Attribute:mailbox_list' => 'Mailbox list~~',
'Class:OAuthClient/Attribute:mailbox_list+' => '~~',
]);
//
// Class: OAuthClientAzure
//
Dict::Add('CS CZ', 'Czech', 'Čeština', [
'Class:OAuthClientAzure' => 'OAuth client for Microsoft Azure~~',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~',
]);
//
// Class: OAuthClientGoogle
//
Dict::Add('CS CZ', 'Czech', 'Čeština', [
'Class:OAuthClientGoogle' => 'OAuth client for Google~~',
'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)~~',
]);

View File

@@ -0,0 +1,74 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2013 XXXXX
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('DA DA', 'Danish', 'Dansk', [
'Menu:CreateMailbox' => 'Create a mailbox...~~',
'Menu:OAuthClient' => 'OAuth Client~~',
'Menu:OAuthClient+' => '~~',
'Menu:GenerateTokens' => 'Generate access tokens...~~',
'Menu:RegenerateTokens' => 'Regenerate access tokens...~~',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Mailbox creation~~',
'itop-oauth-client:UsedForSMTP' => 'This OAuth client is used for SMTP~~',
'itop-oauth-client:TestSMTP' => 'Email send test~~',
'itop-oauth-client:MissingOAuthClient' => 'Missing Oauth client for user name %1$s~~',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client~~',
'itop-oauth-client:Message:TokenCreated' => 'Access token created~~',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated~~',
]);
//
// Class: OAuthClient
//
Dict::Add('DA DA', 'Danish', 'Dansk', [
'Class:OAuthClient' => 'Oauth Client~~',
'Class:OAuthClient/Attribute:provider' => 'Provider~~',
'Class:OAuthClient/Attribute:provider+' => '~~',
'Class:OAuthClient/Attribute:name' => 'Login~~',
'Class:OAuthClient/Attribute:name+' => '~~',
'Class:OAuthClient/Attribute:scope' => 'Scope~~',
'Class:OAuthClient/Attribute:scope+' => '~~',
'Class:OAuthClient/Attribute:description' => 'Description~~',
'Class:OAuthClient/Attribute:description+' => '~~',
'Class:OAuthClient/Attribute:client_id' => 'Client id~~',
'Class:OAuthClient/Attribute:client_id+' => '~~',
'Class:OAuthClient/Attribute:client_secret' => 'Client secret~~',
'Class:OAuthClient/Attribute:client_secret+' => '~~',
'Class:OAuthClient/Attribute:refresh_token' => 'Refresh token~~',
'Class:OAuthClient/Attribute:refresh_token+' => '~~',
'Class:OAuthClient/Attribute:refresh_token_expiration' => 'Refresh token expiration~~',
'Class:OAuthClient/Attribute:refresh_token_expiration+' => '~~',
'Class:OAuthClient/Attribute:token' => 'Access token~~',
'Class:OAuthClient/Attribute:token+' => '~~',
'Class:OAuthClient/Attribute:token_expiration' => 'Access token expiration~~',
'Class:OAuthClient/Attribute:token_expiration+' => '~~',
'Class:OAuthClient/Attribute:redirect_url' => 'Redirect url~~',
'Class:OAuthClient/Attribute:redirect_url+' => '~~',
'Class:OAuthClient/Attribute:mailbox_list' => 'Mailbox list~~',
'Class:OAuthClient/Attribute:mailbox_list+' => '~~',
]);
//
// Class: OAuthClientAzure
//
Dict::Add('DA DA', 'Danish', 'Dansk', [
'Class:OAuthClientAzure' => 'OAuth client for Microsoft Azure~~',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~',
]);
//
// Class: OAuthClientGoogle
//
Dict::Add('DA DA', 'Danish', 'Dansk', [
'Class:OAuthClientGoogle' => 'OAuth client for Google~~',
'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)~~',
]);

View File

@@ -0,0 +1,287 @@
<?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.7">
<constants/>
<classes>
<class id="OAuthClient" _delta="define">
<parent>cmdbAbstractObject</parent>
<properties>
<category>cloud,searchable</category>
<abstract>true</abstract>
<key_type>autoincrement</key_type>
<db_table>priv_oauth_client</db_table>
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<attributes>
<attribute id="provider"/>
<attribute id="name"/>
</attributes>
</naming>
<display_template/>
<icon/>
<reconciliation>
<attributes>
<attribute id="provider"/>
<attribute id="name"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field id="provider" xsi:type="AttributeString">
<sql>provider</sql>
<default_value/>
<is_null_allowed>false</is_null_allowed>
</field>
<field id="name" xsi:type="AttributeString">
<sql>name</sql>
<default_value/>
<is_null_allowed>false</is_null_allowed>
</field>
<field id="status" xsi:type="AttributeEnum">
<always_load_in_tables>true</always_load_in_tables>
<values>
<value id="active">active</value>
<value id="inactive">inactive</value>
</values>
<sql>status</sql>
<default_value>inactive</default_value>
<is_null_allowed>false</is_null_allowed>
</field>
<field id="description" xsi:type="AttributeText">
<sql>description</sql>
<default_value/>
<is_null_allowed>true</is_null_allowed>
</field>
<field id="client_id" xsi:type="AttributeText">
<sql>client_id</sql>
<default_value/>
<is_null_allowed>false</is_null_allowed>
</field>
<field id="client_secret" xsi:type="AttributeText">
<sql>client_secret</sql>
<default_value/>
<is_null_allowed>false</is_null_allowed>
</field>
<field id="refresh_token" xsi:type="AttributeText">
<sql>refresh_token</sql>
<default_value/>
<is_null_allowed>true</is_null_allowed>
<tracking_level>none</tracking_level>
</field>
<field id="refresh_token_expiration" xsi:type="AttributeDateTime">
<sql>refresh_token_expiration</sql>
<default_value/>
<is_null_allowed>true</is_null_allowed>
<tracking_level>none</tracking_level>
</field>
<field id="token" xsi:type="AttributeText">
<sql>token</sql>
<default_value/>
<is_null_allowed>true</is_null_allowed>
<tracking_level>none</tracking_level>
</field>
<field id="token_expiration" xsi:type="AttributeDateTime">
<sql>token_expiration</sql>
<default_value/>
<is_null_allowed>true</is_null_allowed>
<tracking_level>none</tracking_level>
</field>
<field id="redirect_url" xsi:type="AttributeURL">
<sql>redirect_url</sql>
<default_value/>
<target>_blank</target>
<is_null_allowed>true</is_null_allowed>
</field>
<field id="mailbox_list" xsi:type="AttributeLinkedSet">
<linked_class>MailInboxOAuth</linked_class>
<ext_key_to_me>oauth_client_id</ext_key_to_me>
<count_min>0</count_min>
<count_max>0</count_max>
</field>
</fields>
<methods>
<method id="DisplayBareHeader">
<static>false</static>
<access>public</access>
<type>Overload-DBObject</type>
<code><![CDATA[
public function DisplayBareHeader(WebPage $oPage, $bEditMode = false)
{
parent::DisplayBareHeader($oPage, $bEditMode);
if (!$bEditMode) {
$oConfig = utils::GetConfig();
$sScope = $this->Get('scope');
if ($this->Get('status') == 'inactive') {
$oPage->p('<b>'.Dict::S('itop-oauth-client:Message:MissingToken').'</b>');
} elseif (($sScope == 'SMTP' || $sScope == 'EMail') && $oConfig->Get('email_transport_smtp.username') == $this->Get('name')) {
$sLabel = Dict::S('itop-oauth-client:UsedForSMTP');
$sTestLabel = Dict::S('itop-oauth-client:TestSMTP');
$sTestURL = utils::GetAbsoluteUrlAppRoot().'setup/email.test.php';
$oPage->p("<b>$sLabel</b>&nbsp;<a href='$sTestURL' target='_blank'>$sTestLabel</a>");
}
}
}
]]></code>
</method>
<method id="GetAttributeFlags">
<static>false</static>
<access>public</access>
<type>Overload-DBObject</type>
<code><![CDATA[
public function GetAttributeFlags($sAttCode, &$aReasons = array(), $sTargetState = '')
{
if ($sAttCode == 'status') {
return OPT_ATT_READONLY;
}
return parent::GetAttributeFlags($sAttCode, $aReasons, $sTargetState);
}
]]></code>
</method>
<method id="GetInitialStateAttributeFlags">
<static>false</static>
<access>public</access>
<type>Overload-DBObject</type>
<code><![CDATA[
public function GetInitialStateAttributeFlags($sAttCode, &$aReasons = array())
{
if ($sAttCode == 'status') {
return OPT_ATT_READONLY;
}
return parent::GetInitialStateAttributeFlags($sAttCode, $aReasons);
}
]]></code>
</method>
<method id="GetDefaultMailServer">
<static>false</static>
<access>public</access>
<code><![CDATA[
public function GetDefaultMailServer()
{
return 'imap.'.$this->Get('provider').'.com';
}
]]></code>
</method>
<method id="GetDefaultMailServerPort">
<static>false</static>
<access>public</access>
<code><![CDATA[
public function GetDefaultMailServerPort()
{
return 993;
}
]]></code>
</method>
<method id="GetAccessToken">
<static>false</static>
<access>public</access>
<code><![CDATA[
public function GetAccessToken()
{
if ($this->Get('status') == 'active') {
return new \League\OAuth2\Client\Token\AccessToken([
'access_token' => $this->Get('token'),
'expires_in' => date_format(new DateTime($this->Get('token_expiration')), 'U') - time(),
'refresh_token' => $this->Get('refresh_token'),
'token_type' => 'Bearer',
]);
}
return null;
}
]]></code>
</method>
<method id="SetAccessToken">
<static>false</static>
<access>public</access>
<code><![CDATA[
public function SetAccessToken(\League\OAuth2\Client\Token\AccessTokenInterface $oAccessToken)
{
$this->Set('token', $oAccessToken->getToken());
$this->Set('token_expiration', date(AttributeDateTime::GetSQLFormat(), $oAccessToken->getExpires()));
if (!empty($oAccessToken->getRefreshToken())) {
$this->Set('refresh_token', $oAccessToken->getRefreshToken());
}
$this->Set('status', 'active');
$this->DBUpdate();
}
]]></code>
</method>
</methods>
<presentation>
<details>
<items>
<item id="name">
<rank>1</rank>
</item>
<item id="description">
<rank>2</rank>
</item>
<item id="provider">
<rank>3</rank>
</item>
<item id="redirect_url">
<rank>5</rank>
</item>
<item id="client_id">
<rank>6</rank>
</item>
<item id="client_secret">
<rank>7</rank>
</item>
<item id="mailbox_list">
<rank>8</rank>
</item>
</items>
</details>
<list>
<items>
<item id="status">
<rank>1</rank>
</item>
<item id="provider">
<rank>3</rank>
</item>
</items>
</list>
<search>
<items>
<item id="name">
<rank>1</rank>
</item>
<item id="provider">
<rank>2</rank>
</item>
</items>
</search>
<default_search>
<items>
<item id="name">
<rank>1</rank>
</item>
<item id="provider">
<rank>2</rank>
</item>
</items>
</default_search>
</presentation>
</class>
</classes>
<menus>
<menu id="OAuthClient" xsi:type="OQLMenuNode" _delta="define">
<rank>100</rank>
<parent>ConfigurationTools</parent>
<oql><![CDATA[SELECT OAuthClient]]></oql>
<do_search>1</do_search>
<enable_admin_only>0</enable_admin_only>
<enable_class>OAuthClient</enable_class>
<enable_action>UR_ACTION_READ</enable_action>
</menu>
</menus>
<user_rights>
<groups>
</groups>
<profiles>
</profiles>
</user_rights>
</itop_design>

View File

@@ -0,0 +1,74 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2013 XXXXX
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('DE DE', 'German', 'Deutsch', [
'Menu:CreateMailbox' => 'Create a mailbox...~~',
'Menu:OAuthClient' => 'OAuth Client~~',
'Menu:OAuthClient+' => '~~',
'Menu:GenerateTokens' => 'Generate access token...~~',
'Menu:RegenerateTokens' => 'Regenerate access token...~~',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Mailbox creation~~',
'itop-oauth-client:UsedForSMTP' => 'This OAuth client is used for SMTP~~',
'itop-oauth-client:TestSMTP' => 'Email send test~~',
'itop-oauth-client:MissingOAuthClient' => 'Missing Oauth client for user name %1$s~~',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client~~',
'itop-oauth-client:Message:TokenCreated' => 'Access token created~~',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated~~',
]);
//
// Class: OAuthClient
//
Dict::Add('DE DE', 'German', 'Deutsch', [
'Class:OAuthClient' => 'Oauth Client~~',
'Class:OAuthClient/Attribute:provider' => 'Provider~~',
'Class:OAuthClient/Attribute:provider+' => '~~',
'Class:OAuthClient/Attribute:name' => 'Login~~',
'Class:OAuthClient/Attribute:name+' => '~~',
'Class:OAuthClient/Attribute:scope' => 'Scope~~',
'Class:OAuthClient/Attribute:scope+' => '~~',
'Class:OAuthClient/Attribute:description' => 'Description~~',
'Class:OAuthClient/Attribute:description+' => '~~',
'Class:OAuthClient/Attribute:client_id' => 'Client id~~',
'Class:OAuthClient/Attribute:client_id+' => '~~',
'Class:OAuthClient/Attribute:client_secret' => 'Client secret~~',
'Class:OAuthClient/Attribute:client_secret+' => '~~',
'Class:OAuthClient/Attribute:refresh_token' => 'Refresh token~~',
'Class:OAuthClient/Attribute:refresh_token+' => '~~',
'Class:OAuthClient/Attribute:refresh_token_expiration' => 'Refresh token expiration~~',
'Class:OAuthClient/Attribute:refresh_token_expiration+' => '~~',
'Class:OAuthClient/Attribute:token' => 'Access token~~',
'Class:OAuthClient/Attribute:token+' => '~~',
'Class:OAuthClient/Attribute:token_expiration' => 'Access token expiration~~',
'Class:OAuthClient/Attribute:token_expiration+' => '~~',
'Class:OAuthClient/Attribute:redirect_url' => 'Redirect url~~',
'Class:OAuthClient/Attribute:redirect_url+' => '~~',
'Class:OAuthClient/Attribute:mailbox_list' => 'Mailbox list~~',
'Class:OAuthClient/Attribute:mailbox_list+' => '~~',
]);
//
// Class: OAuthClientAzure
//
Dict::Add('DE DE', 'German', 'Deutsch', [
'Class:OAuthClientAzure' => 'OAuth client for Microsoft Azure~~',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~',
]);
//
// Class: OAuthClientGoogle
//
Dict::Add('DE DE', 'German', 'Deutsch', [
'Class:OAuthClientGoogle' => 'OAuth client for Google~~',
'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)~~',
]);

View File

@@ -0,0 +1,78 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2013 XXXXX
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('EN US', 'English', 'English', [
'Menu:CreateMailbox' => 'Create a mailbox...',
'Menu:OAuthClient' => 'OAuth Client',
'Menu:OAuthClient+' => '',
'Menu:GenerateTokens' => 'Generate access token...',
'Menu:RegenerateTokens' => 'Regenerate access token...',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Mailbox creation',
'itop-oauth-client:UsedForSMTP' => 'This OAuth client is used for SMTP',
'itop-oauth-client:TestSMTP' => 'Email send test',
'itop-oauth-client:MissingOAuthClient' => 'Missing Oauth client for user name %1$s',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client',
'itop-oauth-client:Message:TokenCreated' => 'Access token created',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated',
]);
//
// Class: OAuthClient
//
Dict::Add('EN US', 'English', 'English', [
'Class:OAuthClient' => 'Oauth Client',
'Class:OAuthClient/Attribute:provider' => 'Provider',
'Class:OAuthClient/Attribute:provider+' => '',
'Class:OAuthClient/Attribute:name' => 'Login',
'Class:OAuthClient/Attribute:name+' => '',
'Class:OAuthClient/Attribute:scope' => 'Scope',
'Class:OAuthClient/Attribute:scope+' => '',
'Class:OAuthClient/Attribute:status' => 'Status',
'Class:OAuthClient/Attribute:status+' => '',
'Class:OAuthClient/Attribute:status/Value:active' => 'Access token generated',
'Class:OAuthClient/Attribute:status/Value:inactive' => 'No Access token',
'Class:OAuthClient/Attribute:description' => 'Description',
'Class:OAuthClient/Attribute:description+' => '',
'Class:OAuthClient/Attribute:client_id' => 'Client id',
'Class:OAuthClient/Attribute:client_id+' => '',
'Class:OAuthClient/Attribute:client_secret' => 'Client secret',
'Class:OAuthClient/Attribute:client_secret+' => '',
'Class:OAuthClient/Attribute:refresh_token' => 'Refresh token',
'Class:OAuthClient/Attribute:refresh_token+' => '',
'Class:OAuthClient/Attribute:refresh_token_expiration' => 'Refresh token expiration',
'Class:OAuthClient/Attribute:refresh_token_expiration+' => '',
'Class:OAuthClient/Attribute:token' => 'Access token',
'Class:OAuthClient/Attribute:token+' => '',
'Class:OAuthClient/Attribute:token_expiration' => 'Access token expiration',
'Class:OAuthClient/Attribute:token_expiration+' => '',
'Class:OAuthClient/Attribute:redirect_url' => 'Redirect url',
'Class:OAuthClient/Attribute:redirect_url+' => '',
'Class:OAuthClient/Attribute:mailbox_list' => 'Mailbox list',
'Class:OAuthClient/Attribute:mailbox_list+' => '',
]);
//
// Class: OAuthClientAzure
//
Dict::Add('EN US', 'English', 'English', [
'Class:OAuthClientAzure' => 'OAuth client for Microsoft Azure',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)',
]);
//
// Class: OAuthClientGoogle
//
Dict::Add('EN US', 'English', 'English', [
'Class:OAuthClientGoogle' => 'OAuth client for Google',
'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)',
]);

View File

@@ -0,0 +1,74 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2013 XXXXX
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', [
'Menu:CreateMailbox' => 'Create a mailbox...~~',
'Menu:OAuthClient' => 'OAuth Client~~',
'Menu:OAuthClient+' => '~~',
'Menu:GenerateTokens' => 'Generate access tokens...~~',
'Menu:RegenerateTokens' => 'Regenerate access tokens...~~',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Mailbox creation~~',
'itop-oauth-client:UsedForSMTP' => 'This OAuth client is used for SMTP~~',
'itop-oauth-client:TestSMTP' => 'Email send test~~',
'itop-oauth-client:MissingOAuthClient' => 'Missing Oauth client for user name %1$s~~',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client~~',
'itop-oauth-client:Message:TokenCreated' => 'Access token created~~',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated~~',
]);
//
// Class: OAuthClient
//
Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', [
'Class:OAuthClient' => 'Oauth Client~~',
'Class:OAuthClient/Attribute:provider' => 'Provider~~',
'Class:OAuthClient/Attribute:provider+' => '~~',
'Class:OAuthClient/Attribute:name' => 'Login~~',
'Class:OAuthClient/Attribute:name+' => '~~',
'Class:OAuthClient/Attribute:scope' => 'Scope~~',
'Class:OAuthClient/Attribute:scope+' => '~~',
'Class:OAuthClient/Attribute:description' => 'Description~~',
'Class:OAuthClient/Attribute:description+' => '~~',
'Class:OAuthClient/Attribute:client_id' => 'Client id~~',
'Class:OAuthClient/Attribute:client_id+' => '~~',
'Class:OAuthClient/Attribute:client_secret' => 'Client secret~~',
'Class:OAuthClient/Attribute:client_secret+' => '~~',
'Class:OAuthClient/Attribute:refresh_token' => 'Refresh token~~',
'Class:OAuthClient/Attribute:refresh_token+' => '~~',
'Class:OAuthClient/Attribute:refresh_token_expiration' => 'Refresh token expiration~~',
'Class:OAuthClient/Attribute:refresh_token_expiration+' => '~~',
'Class:OAuthClient/Attribute:token' => 'Access token~~',
'Class:OAuthClient/Attribute:token+' => '~~',
'Class:OAuthClient/Attribute:token_expiration' => 'Access token expiration~~',
'Class:OAuthClient/Attribute:token_expiration+' => '~~',
'Class:OAuthClient/Attribute:redirect_url' => 'Redirect url~~',
'Class:OAuthClient/Attribute:redirect_url+' => '~~',
'Class:OAuthClient/Attribute:mailbox_list' => 'Mailbox list~~',
'Class:OAuthClient/Attribute:mailbox_list+' => '~~',
]);
//
// Class: OAuthClientAzure
//
Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', [
'Class:OAuthClientAzure' => 'OAuth client for Microsoft Azure~~',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~',
]);
//
// Class: OAuthClientGoogle
//
Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', [
'Class:OAuthClientGoogle' => 'OAuth client for Google~~',
'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)~~',
]);

View File

@@ -0,0 +1,78 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2013 XXXXX
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('FR FR', 'French', 'Français', [
'Menu:CreateMailbox' => 'Créer une boite mail...',
'Menu:OAuthClient' => 'Client OAuth',
'Menu:OAuthClient+' => '',
'Menu:GenerateTokens' => 'Créer un jeton d\'accès...',
'Menu:RegenerateTokens' => 'Recréer un jeton d\'accès..',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Création de boite mail',
'itop-oauth-client:UsedForSMTP' => 'Ce client Oauth est utilisé pour SMTP',
'itop-oauth-client:TestSMTP' => 'Tester l\'envoi de mail',
'itop-oauth-client:MissingOAuthClient' => 'Il n\'y a pas de client OAuth pour l\'utilisateur %1$s',
'itop-oauth-client:Message:MissingToken' => 'Générez le jeton d\'accès avant d\'utiliser ce client OAuth',
'itop-oauth-client:Message:TokenCreated' => 'Le jeton d\'accès à été créé',
'itop-oauth-client:Message:TokenRecreated' => 'Le jeton d\'accès à été renouvelé',
]);
//
// Class: OAuthClient
//
Dict::Add('FR FR', 'French', 'Français', [
'Class:OAuthClient' => 'Client OAuth',
'Class:OAuthClient/Attribute:provider' => 'Fournisseur',
'Class:OAuthClient/Attribute:provider+' => '',
'Class:OAuthClient/Attribute:name' => 'Login',
'Class:OAuthClient/Attribute:name+' => '',
'Class:OAuthClient/Attribute:scope' => 'Niveaux d\'accès',
'Class:OAuthClient/Attribute:scope+' => '',
'Class:OAuthClient/Attribute:description' => 'Description',
'Class:OAuthClient/Attribute:description+' => '',
'Class:OAuthClient/Attribute:client_id' => 'ID Client',
'Class:OAuthClient/Attribute:client_id+' => '',
'Class:OAuthClient/Attribute:client_secret' => 'Code secret du client',
'Class:OAuthClient/Attribute:client_secret+' => '',
'Class:OAuthClient/Attribute:refresh_token' => 'Jeton de renouvellement',
'Class:OAuthClient/Attribute:refresh_token+' => '',
'Class:OAuthClient/Attribute:refresh_token_expiration' => 'Date d\'expiration du jeton de renouvellement',
'Class:OAuthClient/Attribute:refresh_token_expiration+' => '',
'Class:OAuthClient/Attribute:token' => 'Jeton d\'accès',
'Class:OAuthClient/Attribute:token+' => '',
'Class:OAuthClient/Attribute:token_expiration' => 'Date d\'expiration du jeton d\'accès',
'Class:OAuthClient/Attribute:token_expiration+' => '',
'Class:OAuthClient/Attribute:redirect_url' => 'URL de redirection',
'Class:OAuthClient/Attribute:redirect_url+' => '',
'Class:OAuthClient/Attribute:mailbox_list' => 'Mailbox list',
'Class:OAuthClient/Attribute:mailbox_list+' => '',
]);
//
// Class: OAuthClientAzure
//
Dict::Add('FR FR', 'French', 'Français', [
'Class:OAuthClientAzure' => 'Client OAuth pour Microsoft Azure',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)',
]);
//
// Class: OAuthClientGoogle
//
Dict::Add('FR FR', 'French', 'Français', [
'Class:OAuthClientGoogle' => 'Client OAuth pour Google',
'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)',
]);
// Additional language entries not present in English dict
Dict::Add('FR FR', 'French', 'Français', array(
'Class:OAuthClient/Name' => '%1$s-%%2$~',
));

View File

@@ -0,0 +1,74 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2013 XXXXX
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('HU HU', 'Hungarian', 'Magyar', [
'Menu:CreateMailbox' => 'Create a mailbox...~~',
'Menu:OAuthClient' => 'OAuth Client~~',
'Menu:OAuthClient+' => '~~',
'Menu:GenerateTokens' => 'Generate access tokens...~~',
'Menu:RegenerateTokens' => 'Regenerate access tokens...~~',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Mailbox creation~~',
'itop-oauth-client:UsedForSMTP' => 'This OAuth client is used for SMTP~~',
'itop-oauth-client:TestSMTP' => 'Email send test~~',
'itop-oauth-client:MissingOAuthClient' => 'Missing Oauth client for user name %1$s~~',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client~~',
'itop-oauth-client:Message:TokenCreated' => 'Access token created~~',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated~~',
]);
//
// Class: OAuthClient
//
Dict::Add('HU HU', 'Hungarian', 'Magyar', [
'Class:OAuthClient' => 'Oauth Client~~',
'Class:OAuthClient/Attribute:provider' => 'Provider~~',
'Class:OAuthClient/Attribute:provider+' => '~~',
'Class:OAuthClient/Attribute:name' => 'Login~~',
'Class:OAuthClient/Attribute:name+' => '~~',
'Class:OAuthClient/Attribute:scope' => 'Scope~~',
'Class:OAuthClient/Attribute:scope+' => '~~',
'Class:OAuthClient/Attribute:description' => 'Description~~',
'Class:OAuthClient/Attribute:description+' => '~~',
'Class:OAuthClient/Attribute:client_id' => 'Client id~~',
'Class:OAuthClient/Attribute:client_id+' => '~~',
'Class:OAuthClient/Attribute:client_secret' => 'Client secret~~',
'Class:OAuthClient/Attribute:client_secret+' => '~~',
'Class:OAuthClient/Attribute:refresh_token' => 'Refresh token~~',
'Class:OAuthClient/Attribute:refresh_token+' => '~~',
'Class:OAuthClient/Attribute:refresh_token_expiration' => 'Refresh token expiration~~',
'Class:OAuthClient/Attribute:refresh_token_expiration+' => '~~',
'Class:OAuthClient/Attribute:token' => 'Access token~~',
'Class:OAuthClient/Attribute:token+' => '~~',
'Class:OAuthClient/Attribute:token_expiration' => 'Access token expiration~~',
'Class:OAuthClient/Attribute:token_expiration+' => '~~',
'Class:OAuthClient/Attribute:redirect_url' => 'Redirect url~~',
'Class:OAuthClient/Attribute:redirect_url+' => '~~',
'Class:OAuthClient/Attribute:mailbox_list' => 'Mailbox list~~',
'Class:OAuthClient/Attribute:mailbox_list+' => '~~',
]);
//
// Class: OAuthClientAzure
//
Dict::Add('HU HU', 'Hungarian', 'Magyar', [
'Class:OAuthClientAzure' => 'OAuth client for Microsoft Azure~~',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~',
]);
//
// Class: OAuthClientGoogle
//
Dict::Add('HU HU', 'Hungarian', 'Magyar', [
'Class:OAuthClientGoogle' => 'OAuth client for Google~~',
'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)~~',
]);

View File

@@ -0,0 +1,24 @@
<?php
/**
* @copyright Copyright (C) 2010-2022 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
namespace Combodo\iTop\OAuthClient;
use Combodo\iTop\OAuthClient\Controller\OAuthClientController;
require_once(APPROOT.'application/startup.inc.php');
if (version_compare(ITOP_DESIGN_LATEST_VERSION , '3.0') >= 0) {
$sTemplates = MODULESROOT.'itop-oauth-client/templates';
} else {
$sTemplates = MODULESROOT.'itop-oauth-client/templates/legacy';
}
$oUpdateController = new OAuthClientController($sTemplates, 'itop-oauth-client');
$oUpdateController->AllowOnlyAdmin();
$oUpdateController->SetDefaultOperation('CreateMailbox');
$oUpdateController->HandleOperation();

View File

@@ -0,0 +1,74 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2013 XXXXX
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('IT IT', 'Italian', 'Italiano', [
'Menu:CreateMailbox' => 'Create a mailbox...~~',
'Menu:OAuthClient' => 'OAuth Client~~',
'Menu:OAuthClient+' => '~~',
'Menu:GenerateTokens' => 'Generate access tokens...~~',
'Menu:RegenerateTokens' => 'Regenerate access tokens...~~',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Mailbox creation~~',
'itop-oauth-client:UsedForSMTP' => 'This OAuth client is used for SMTP~~',
'itop-oauth-client:TestSMTP' => 'Email send test~~',
'itop-oauth-client:MissingOAuthClient' => 'Missing Oauth client for user name %1$s~~',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client~~',
'itop-oauth-client:Message:TokenCreated' => 'Access token created~~',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated~~',
]);
//
// Class: OAuthClient
//
Dict::Add('IT IT', 'Italian', 'Italiano', [
'Class:OAuthClient' => 'Oauth Client~~',
'Class:OAuthClient/Attribute:provider' => 'Provider~~',
'Class:OAuthClient/Attribute:provider+' => '~~',
'Class:OAuthClient/Attribute:name' => 'Login~~',
'Class:OAuthClient/Attribute:name+' => '~~',
'Class:OAuthClient/Attribute:scope' => 'Scope~~',
'Class:OAuthClient/Attribute:scope+' => '~~',
'Class:OAuthClient/Attribute:description' => 'Description~~',
'Class:OAuthClient/Attribute:description+' => '~~',
'Class:OAuthClient/Attribute:client_id' => 'Client id~~',
'Class:OAuthClient/Attribute:client_id+' => '~~',
'Class:OAuthClient/Attribute:client_secret' => 'Client secret~~',
'Class:OAuthClient/Attribute:client_secret+' => '~~',
'Class:OAuthClient/Attribute:refresh_token' => 'Refresh token~~',
'Class:OAuthClient/Attribute:refresh_token+' => '~~',
'Class:OAuthClient/Attribute:refresh_token_expiration' => 'Refresh token expiration~~',
'Class:OAuthClient/Attribute:refresh_token_expiration+' => '~~',
'Class:OAuthClient/Attribute:token' => 'Access token~~',
'Class:OAuthClient/Attribute:token+' => '~~',
'Class:OAuthClient/Attribute:token_expiration' => 'Access token expiration~~',
'Class:OAuthClient/Attribute:token_expiration+' => '~~',
'Class:OAuthClient/Attribute:redirect_url' => 'Redirect url~~',
'Class:OAuthClient/Attribute:redirect_url+' => '~~',
'Class:OAuthClient/Attribute:mailbox_list' => 'Mailbox list~~',
'Class:OAuthClient/Attribute:mailbox_list+' => '~~',
]);
//
// Class: OAuthClientAzure
//
Dict::Add('IT IT', 'Italian', 'Italiano', [
'Class:OAuthClientAzure' => 'OAuth client for Microsoft Azure~~',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~',
]);
//
// Class: OAuthClientGoogle
//
Dict::Add('IT IT', 'Italian', 'Italiano', [
'Class:OAuthClientGoogle' => 'OAuth client for Google~~',
'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)~~',
]);

View File

@@ -0,0 +1,74 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2013 XXXXX
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('JA JP', 'Japanese', '日本語', [
'Menu:CreateMailbox' => 'Create a mailbox...~~',
'Menu:OAuthClient' => 'OAuth Client~~',
'Menu:OAuthClient+' => '~~',
'Menu:GenerateTokens' => 'Generate access tokens...~~',
'Menu:RegenerateTokens' => 'Regenerate access tokens...~~',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Mailbox creation~~',
'itop-oauth-client:UsedForSMTP' => 'This OAuth client is used for SMTP~~',
'itop-oauth-client:TestSMTP' => 'Email send test~~',
'itop-oauth-client:MissingOAuthClient' => 'Missing Oauth client for user name %1$s~~',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client~~',
'itop-oauth-client:Message:TokenCreated' => 'Access token created~~',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated~~',
]);
//
// Class: OAuthClient
//
Dict::Add('JA JP', 'Japanese', '日本語', [
'Class:OAuthClient' => 'Oauth Client~~',
'Class:OAuthClient/Attribute:provider' => 'Provider~~',
'Class:OAuthClient/Attribute:provider+' => '~~',
'Class:OAuthClient/Attribute:name' => 'Login~~',
'Class:OAuthClient/Attribute:name+' => '~~',
'Class:OAuthClient/Attribute:scope' => 'Scope~~',
'Class:OAuthClient/Attribute:scope+' => '~~',
'Class:OAuthClient/Attribute:description' => 'Description~~',
'Class:OAuthClient/Attribute:description+' => '~~',
'Class:OAuthClient/Attribute:client_id' => 'Client id~~',
'Class:OAuthClient/Attribute:client_id+' => '~~',
'Class:OAuthClient/Attribute:client_secret' => 'Client secret~~',
'Class:OAuthClient/Attribute:client_secret+' => '~~',
'Class:OAuthClient/Attribute:refresh_token' => 'Refresh token~~',
'Class:OAuthClient/Attribute:refresh_token+' => '~~',
'Class:OAuthClient/Attribute:refresh_token_expiration' => 'Refresh token expiration~~',
'Class:OAuthClient/Attribute:refresh_token_expiration+' => '~~',
'Class:OAuthClient/Attribute:token' => 'Access token~~',
'Class:OAuthClient/Attribute:token+' => '~~',
'Class:OAuthClient/Attribute:token_expiration' => 'Access token expiration~~',
'Class:OAuthClient/Attribute:token_expiration+' => '~~',
'Class:OAuthClient/Attribute:redirect_url' => 'Redirect url~~',
'Class:OAuthClient/Attribute:redirect_url+' => '~~',
'Class:OAuthClient/Attribute:mailbox_list' => 'Mailbox list~~',
'Class:OAuthClient/Attribute:mailbox_list+' => '~~',
]);
//
// Class: OAuthClientAzure
//
Dict::Add('JA JP', 'Japanese', '日本語', [
'Class:OAuthClientAzure' => 'OAuth client for Microsoft Azure~~',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~',
]);
//
// Class: OAuthClientGoogle
//
Dict::Add('JA JP', 'Japanese', '日本語', [
'Class:OAuthClientGoogle' => 'OAuth client for Google~~',
'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)~~',
]);

View File

@@ -0,0 +1,54 @@
<?php
//
// iTop module definition file
//
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-oauth-client/2.7.7',
array(
// Identification
//
'label' => 'OAuth 2.0 client',
'category' => 'business',
// Setup
//
'dependencies' => array(
'itop-welcome-itil/2.7.7,'
),
'mandatory' => false,
'visible' => true,
// Components
//
'datamodel' => array(
'vendor/autoload.php',
'model.itop-oauth-client.php', // Contains the PHP code generated by the "compilation" of datamodel.remote-authent-oauth.xml
'src/Model/OAuthClientGoogle.php',
'src/Model/OAuthClientAzure.php',
'src/Service/PopupMenuExtension.php',
),
'webservice' => array(
),
'data.struct' => array(
// add your 'structure' definition XML files here,
),
'data.sample' => array(
// add your sample data XML files here,
),
// Documentation
//
'doc.manual_setup' => '', // hyperlink to manual setup documentation, if any
'doc.more_information' => '', // hyperlink to more information, if any
// Default settings
//
'settings' => array(
// Module specific settings go here, if any
),
)
);

View File

@@ -0,0 +1,74 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2013 XXXXX
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('NL NL', 'Dutch', 'Nederlands', [
'Menu:CreateMailbox' => 'Create a mailbox...~~',
'Menu:OAuthClient' => 'OAuth Client~~',
'Menu:OAuthClient+' => '~~',
'Menu:GenerateTokens' => 'Generate access tokens...~~',
'Menu:RegenerateTokens' => 'Regenerate access tokens...~~',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Mailbox creation~~',
'itop-oauth-client:UsedForSMTP' => 'This OAuth client is used for SMTP~~',
'itop-oauth-client:TestSMTP' => 'Email send test~~',
'itop-oauth-client:MissingOAuthClient' => 'Missing Oauth client for user name %1$s~~',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client~~',
'itop-oauth-client:Message:TokenCreated' => 'Access token created~~',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated~~',
]);
//
// Class: OAuthClient
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', [
'Class:OAuthClient' => 'Oauth Client~~',
'Class:OAuthClient/Attribute:provider' => 'Provider~~',
'Class:OAuthClient/Attribute:provider+' => '~~',
'Class:OAuthClient/Attribute:name' => 'Login~~',
'Class:OAuthClient/Attribute:name+' => '~~',
'Class:OAuthClient/Attribute:scope' => 'Scope~~',
'Class:OAuthClient/Attribute:scope+' => '~~',
'Class:OAuthClient/Attribute:description' => 'Description~~',
'Class:OAuthClient/Attribute:description+' => '~~',
'Class:OAuthClient/Attribute:client_id' => 'Client id~~',
'Class:OAuthClient/Attribute:client_id+' => '~~',
'Class:OAuthClient/Attribute:client_secret' => 'Client secret~~',
'Class:OAuthClient/Attribute:client_secret+' => '~~',
'Class:OAuthClient/Attribute:refresh_token' => 'Refresh token~~',
'Class:OAuthClient/Attribute:refresh_token+' => '~~',
'Class:OAuthClient/Attribute:refresh_token_expiration' => 'Refresh token expiration~~',
'Class:OAuthClient/Attribute:refresh_token_expiration+' => '~~',
'Class:OAuthClient/Attribute:token' => 'Access token~~',
'Class:OAuthClient/Attribute:token+' => '~~',
'Class:OAuthClient/Attribute:token_expiration' => 'Access token expiration~~',
'Class:OAuthClient/Attribute:token_expiration+' => '~~',
'Class:OAuthClient/Attribute:redirect_url' => 'Redirect url~~',
'Class:OAuthClient/Attribute:redirect_url+' => '~~',
'Class:OAuthClient/Attribute:mailbox_list' => 'Mailbox list~~',
'Class:OAuthClient/Attribute:mailbox_list+' => '~~',
]);
//
// Class: OAuthClientAzure
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', [
'Class:OAuthClientAzure' => 'OAuth client for Microsoft Azure~~',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~',
]);
//
// Class: OAuthClientGoogle
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', [
'Class:OAuthClientGoogle' => 'OAuth client for Google~~',
'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)~~',
]);

View File

@@ -0,0 +1,74 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2013 XXXXX
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('PT BR', 'Brazilian', 'Brazilian', [
'Menu:CreateMailbox' => 'Create a mailbox...~~',
'Menu:OAuthClient' => 'OAuth Client~~',
'Menu:OAuthClient+' => '~~',
'Menu:GenerateTokens' => 'Generate access tokens...~~',
'Menu:RegenerateTokens' => 'Regenerate access tokens...~~',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Mailbox creation~~',
'itop-oauth-client:UsedForSMTP' => 'This OAuth client is used for SMTP~~',
'itop-oauth-client:TestSMTP' => 'Email send test~~',
'itop-oauth-client:MissingOAuthClient' => 'Missing Oauth client for user name %1$s~~',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client~~',
'itop-oauth-client:Message:TokenCreated' => 'Access token created~~',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated~~',
]);
//
// Class: OAuthClient
//
Dict::Add('PT BR', 'Brazilian', 'Brazilian', [
'Class:OAuthClient' => 'Oauth Client~~',
'Class:OAuthClient/Attribute:provider' => 'Provider~~',
'Class:OAuthClient/Attribute:provider+' => '~~',
'Class:OAuthClient/Attribute:name' => 'Login~~',
'Class:OAuthClient/Attribute:name+' => '~~',
'Class:OAuthClient/Attribute:scope' => 'Scope~~',
'Class:OAuthClient/Attribute:scope+' => '~~',
'Class:OAuthClient/Attribute:description' => 'Description~~',
'Class:OAuthClient/Attribute:description+' => '~~',
'Class:OAuthClient/Attribute:client_id' => 'Client id~~',
'Class:OAuthClient/Attribute:client_id+' => '~~',
'Class:OAuthClient/Attribute:client_secret' => 'Client secret~~',
'Class:OAuthClient/Attribute:client_secret+' => '~~',
'Class:OAuthClient/Attribute:refresh_token' => 'Refresh token~~',
'Class:OAuthClient/Attribute:refresh_token+' => '~~',
'Class:OAuthClient/Attribute:refresh_token_expiration' => 'Refresh token expiration~~',
'Class:OAuthClient/Attribute:refresh_token_expiration+' => '~~',
'Class:OAuthClient/Attribute:token' => 'Access token~~',
'Class:OAuthClient/Attribute:token+' => '~~',
'Class:OAuthClient/Attribute:token_expiration' => 'Access token expiration~~',
'Class:OAuthClient/Attribute:token_expiration+' => '~~',
'Class:OAuthClient/Attribute:redirect_url' => 'Redirect url~~',
'Class:OAuthClient/Attribute:redirect_url+' => '~~',
'Class:OAuthClient/Attribute:mailbox_list' => 'Mailbox list~~',
'Class:OAuthClient/Attribute:mailbox_list+' => '~~',
]);
//
// Class: OAuthClientAzure
//
Dict::Add('PT BR', 'Brazilian', 'Brazilian', [
'Class:OAuthClientAzure' => 'OAuth client for Microsoft Azure~~',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~',
]);
//
// Class: OAuthClientGoogle
//
Dict::Add('PT BR', 'Brazilian', 'Brazilian', [
'Class:OAuthClientGoogle' => 'OAuth client for Google~~',
'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)~~',
]);

View File

@@ -0,0 +1,74 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2013 XXXXX
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('RU RU', 'Russian', 'Русский', [
'Menu:CreateMailbox' => 'Create a mailbox...~~',
'Menu:OAuthClient' => 'OAuth Client~~',
'Menu:OAuthClient+' => '~~',
'Menu:GenerateTokens' => 'Generate access tokens...~~',
'Menu:RegenerateTokens' => 'Regenerate access tokens...~~',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Mailbox creation~~',
'itop-oauth-client:UsedForSMTP' => 'This OAuth client is used for SMTP~~',
'itop-oauth-client:TestSMTP' => 'Email send test~~',
'itop-oauth-client:MissingOAuthClient' => 'Missing Oauth client for user name %1$s~~',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client~~',
'itop-oauth-client:Message:TokenCreated' => 'Access token created~~',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated~~',
]);
//
// Class: OAuthClient
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:OAuthClient' => 'Oauth Client~~',
'Class:OAuthClient/Attribute:provider' => 'Provider~~',
'Class:OAuthClient/Attribute:provider+' => '~~',
'Class:OAuthClient/Attribute:name' => 'Login~~',
'Class:OAuthClient/Attribute:name+' => '~~',
'Class:OAuthClient/Attribute:scope' => 'Scope~~',
'Class:OAuthClient/Attribute:scope+' => '~~',
'Class:OAuthClient/Attribute:description' => 'Description~~',
'Class:OAuthClient/Attribute:description+' => '~~',
'Class:OAuthClient/Attribute:client_id' => 'Client id~~',
'Class:OAuthClient/Attribute:client_id+' => '~~',
'Class:OAuthClient/Attribute:client_secret' => 'Client secret~~',
'Class:OAuthClient/Attribute:client_secret+' => '~~',
'Class:OAuthClient/Attribute:refresh_token' => 'Refresh token~~',
'Class:OAuthClient/Attribute:refresh_token+' => '~~',
'Class:OAuthClient/Attribute:refresh_token_expiration' => 'Refresh token expiration~~',
'Class:OAuthClient/Attribute:refresh_token_expiration+' => '~~',
'Class:OAuthClient/Attribute:token' => 'Access token~~',
'Class:OAuthClient/Attribute:token+' => '~~',
'Class:OAuthClient/Attribute:token_expiration' => 'Access token expiration~~',
'Class:OAuthClient/Attribute:token_expiration+' => '~~',
'Class:OAuthClient/Attribute:redirect_url' => 'Redirect url~~',
'Class:OAuthClient/Attribute:redirect_url+' => '~~',
'Class:OAuthClient/Attribute:mailbox_list' => 'Mailbox list~~',
'Class:OAuthClient/Attribute:mailbox_list+' => '~~',
]);
//
// Class: OAuthClientAzure
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:OAuthClientAzure' => 'OAuth client for Microsoft Azure~~',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~',
]);
//
// Class: OAuthClientGoogle
//
Dict::Add('RU RU', 'Russian', 'Русский', [
'Class:OAuthClientGoogle' => 'OAuth client for Google~~',
'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)~~',
]);

View File

@@ -0,0 +1,74 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2013 XXXXX
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('SK SK', 'Slovak', 'Slovenčina', [
'Menu:CreateMailbox' => 'Create a mailbox...~~',
'Menu:OAuthClient' => 'OAuth Client~~',
'Menu:OAuthClient+' => '~~',
'Menu:GenerateTokens' => 'Generate access tokens...~~',
'Menu:RegenerateTokens' => 'Regenerate access tokens...~~',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Mailbox creation~~',
'itop-oauth-client:UsedForSMTP' => 'This OAuth client is used for SMTP~~',
'itop-oauth-client:TestSMTP' => 'Email send test~~',
'itop-oauth-client:MissingOAuthClient' => 'Missing Oauth client for user name %1$s~~',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client~~',
'itop-oauth-client:Message:TokenCreated' => 'Access token created~~',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated~~',
]);
//
// Class: OAuthClient
//
Dict::Add('SK SK', 'Slovak', 'Slovenčina', [
'Class:OAuthClient' => 'Oauth Client~~',
'Class:OAuthClient/Attribute:provider' => 'Provider~~',
'Class:OAuthClient/Attribute:provider+' => '~~',
'Class:OAuthClient/Attribute:name' => 'Login~~',
'Class:OAuthClient/Attribute:name+' => '~~',
'Class:OAuthClient/Attribute:scope' => 'Scope~~',
'Class:OAuthClient/Attribute:scope+' => '~~',
'Class:OAuthClient/Attribute:description' => 'Description~~',
'Class:OAuthClient/Attribute:description+' => '~~',
'Class:OAuthClient/Attribute:client_id' => 'Client id~~',
'Class:OAuthClient/Attribute:client_id+' => '~~',
'Class:OAuthClient/Attribute:client_secret' => 'Client secret~~',
'Class:OAuthClient/Attribute:client_secret+' => '~~',
'Class:OAuthClient/Attribute:refresh_token' => 'Refresh token~~',
'Class:OAuthClient/Attribute:refresh_token+' => '~~',
'Class:OAuthClient/Attribute:refresh_token_expiration' => 'Refresh token expiration~~',
'Class:OAuthClient/Attribute:refresh_token_expiration+' => '~~',
'Class:OAuthClient/Attribute:token' => 'Access token~~',
'Class:OAuthClient/Attribute:token+' => '~~',
'Class:OAuthClient/Attribute:token_expiration' => 'Access token expiration~~',
'Class:OAuthClient/Attribute:token_expiration+' => '~~',
'Class:OAuthClient/Attribute:redirect_url' => 'Redirect url~~',
'Class:OAuthClient/Attribute:redirect_url+' => '~~',
'Class:OAuthClient/Attribute:mailbox_list' => 'Mailbox list~~',
'Class:OAuthClient/Attribute:mailbox_list+' => '~~',
]);
//
// Class: OAuthClientAzure
//
Dict::Add('SK SK', 'Slovak', 'Slovenčina', [
'Class:OAuthClientAzure' => 'OAuth client for Microsoft Azure~~',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~',
]);
//
// Class: OAuthClientGoogle
//
Dict::Add('SK SK', 'Slovak', 'Slovenčina', [
'Class:OAuthClientGoogle' => 'OAuth client for Google~~',
'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)~~',
]);

View File

@@ -0,0 +1,77 @@
<?php
/**
* @copyright Copyright (C) 2010-2022 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
namespace Combodo\iTop\OAuthClient\Controller;
use cmdbAbstractObject;
use Combodo\iTop\Application\TwigBase\Controller\Controller;
use Combodo\iTop\Core\Authentication\Client\OAuth\OAuthClientProviderFactory;
use Dict;
use IssueLog;
use MetaModel;
use utils;
class AjaxOauthClientController extends Controller
{
const LOG_CHANNEL = 'OAuth';
public function OperationGetOAuthAuthorizationUrl()
{
$sClass = utils::ReadParam('class');
$sId = utils::ReadParam('id');
IssueLog::Debug("GetAuthorizationUrl for $sClass::$sId", self::LOG_CHANNEL);
/** @var \OAuthClient $oOAuthClient */
$oOAuthClient = MetaModel::GetObject($sClass, $sId);
$aResult = ['status' => 'success', 'data' => []];
$sAuthorizationUrl = OAuthClientProviderFactory::GetAuthorizationUrl($oOAuthClient);
$aResult['data']['authorization_url'] = $sAuthorizationUrl;
$this->DisplayJSONPage($aResult);
}
public function OperationGetDisplayAuthenticationResults()
{
$sClass = utils::ReadParam('class');
$sId = utils::ReadParam('id');
IssueLog::Debug("GetDisplayAuthenticationResults for $sClass::$sId", self::LOG_CHANNEL);
/** @var \OAuthClient $oOAuthClient */
$oOAuthClient = MetaModel::GetObject($sClass, $sId);
$bIsCreation = empty($oOAuthClient->Get('token'));
$sRedirectUrl = utils::ReadParam('redirect_url', '', false, 'raw');
$sRedirectUrlQuery = parse_url($sRedirectUrl)['query'];
$aQuery = [];
parse_str($sRedirectUrlQuery, $aQuery);
$sCode = $aQuery['code'];
$oAccessToken = OAuthClientProviderFactory::GetAccessTokenFromCode($oOAuthClient, $sCode);
$oOAuthClient->SetAccessToken($oAccessToken);
cmdbAbstractObject::SetSessionMessage(
$sClass,
$sId,
"$sClass:$sId:TokenCreated",
$bIsCreation ? Dict::S('itop-oauth-client:Message:TokenCreated') : Dict::S('itop-oauth-client:Message:TokenRecreated'),
'ok',
1,
true
);
$aResult = ['status' => 'success'];
$aResult['data'] = utils::GetAbsoluteUrlAppRoot()."pages/UI.php?operation=details&class=$sClass&id=$sId";
$this->DisplayJSONPage($aResult);
}
}

View File

@@ -0,0 +1,41 @@
<?php
/**
* @copyright Copyright (C) 2010-2022 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
namespace Combodo\iTop\OAuthClient\Controller;
use Combodo\iTop\Application\TwigBase\Controller\Controller;
use IssueLog;
use MetaModel;
use utils;
class OAuthClientController extends Controller
{
const LOG_CHANNEL = 'OAuth';
public function OperationCreateMailbox()
{
$aParams = [];
$sClass = utils::ReadParam('class');
$sId = utils::ReadParam('id');
IssueLog::Debug("CreateMailbox for $sClass::$sId", self::LOG_CHANNEL);
$oOAuthClient = MetaModel::GetObject($sClass, $sId);
$sLogin = $oOAuthClient->Get('name');
$sDefaultServer = $oOAuthClient->GetDefaultMailServer();
$sDefaultPort = $oOAuthClient->GetDefaultMailServerPort();
$aParams['sURL'] = utils::GetAbsoluteUrlAppRoot().'pages/UI.php?operation=new&class=MailInboxOAuth'.
'&default[mailbox]=INBOX'.
'&default[server]='.$sDefaultServer.
'&default[port]='.$sDefaultPort.
'&default[oauth_client_id]='.$sId.
'&default[login]='.$sLogin;
$this->DisplayPage($aParams);
}
}

View File

@@ -0,0 +1,128 @@
<?php
/**
* @copyright Copyright (C) 2010-2022 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
use Combodo\iTop\Core\Authentication\Client\OAuth\OAuthClientProviderFactory;
class OAuthClientAzure extends OAuthClient
{
public static function Init()
{
$aParams = [
'category' => 'cloud',
'key_type' => 'autoincrement',
'name_attcode' => ['name', 'scope'],
'state_attcode' => '',
'reconc_keys' => ['provider', 'name'],
'db_table' => 'priv_oauth_client_azure',
'db_key_field' => 'id',
'icon' => utils::GetAbsoluteUrlModulesRoot().'itop-oauth-client/assets/img/icons8-azure.svg',
'db_finalclass_field' => '',
'uniqueness_rules' => [
'Username for scope' =>
[
'attributes' => ['name', 'scope'],
'filter' => null,
'disabled' => false,
'is_blocking' => true,
],
'OAuth Server' =>
[
'attributes' => ['provider', 'scope', 'client_id', 'client_secret'],
'filter' => null,
'disabled' => false,
'is_blocking' => true,
],
],
];
MetaModel::Init_Params($aParams);
MetaModel::Init_InheritAttributes();
MetaModel::Init_AddAttribute(new AttributeEnum('scope', [
'allowed_values' => new ValueSetEnum('EMail'),
'display_style' => 'list',
'sql' => 'scope',
'default_value' => 'EMail',
'is_null_allowed' => false,
'depends_on' => [],
'always_load_in_tables' => true,
]));
MetaModel::Init_SetZListItems('details', [
'name',
'status',
'description',
'provider',
'scope',
'redirect_url',
'client_id',
'client_secret',
'mailbox_list',
]);
MetaModel::Init_SetZListItems('standard_search', [
'name',
'provider',
'status',
]);
MetaModel::Init_SetZListItems('list', [
'status',
'provider',
]);
}
public function PrefillCreationForm(&$aContextParam)
{
$this->Set('provider', 'Azure');
$this->Set('redirect_url', OAuthClientProviderFactory::GetRedirectUri());
parent::PrefillCreationForm($aContextParam);
}
/**
* Compute read-only values
*
* @return void
* @throws \ArchivedObjectException
* @throws \CoreException
* @throws \CoreUnexpectedValue
*/
public function ComputeValues()
{
parent::ComputeValues();
if (empty($this->Get('provider'))) {
$this->Set('provider', 'Azure');
}
if (empty($this->Get('redirect_url'))) {
$this->Set('redirect_url', OAuthClientProviderFactory::GetRedirectUri());
}
}
public function GetAttributeFlags($sAttCode, &$aReasons = array(), $sTargetState = '')
{
if ($sAttCode == 'provider' || $sAttCode == 'redirect_url') {
return OPT_ATT_READONLY;
}
return parent::GetAttributeFlags($sAttCode, $aReasons, $sTargetState);
}
public function GetInitialStateAttributeFlags($sAttCode, &$aReasons = array())
{
if ($sAttCode == 'provider' || $sAttCode == 'redirect_url') {
return OPT_ATT_READONLY;
}
return parent::GetInitialStateAttributeFlags($sAttCode, $aReasons);
}
public function GetDefaultMailServer()
{
return 'outlook.office365.com';
}
public function GetScope()
{
return 'https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/SMTP.Send offline_access';
}
}

View File

@@ -0,0 +1,134 @@
<?php
/**
* @copyright Copyright (C) 2010-2022 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
use Combodo\iTop\Core\Authentication\Client\OAuth\OAuthClientProviderFactory;
class OAuthClientGoogle extends OAuthClient
{
public static function Init()
{
$aParams = array
(
'category' => 'cloud',
'key_type' => 'autoincrement',
'name_attcode' => ['name', 'scope'],
'state_attcode' => '',
'reconc_keys' => ['provider', 'name'],
'db_table' => 'priv_oauth_client_google',
'db_key_field' => 'id',
'icon' => utils::GetAbsoluteUrlModulesRoot().'itop-oauth-client/assets/img/icons8-google.svg',
'db_finalclass_field' => '',
'uniqueness_rules' => [
'Username for scope' =>
[
'attributes' => ['name', 'scope'],
'filter' => null,
'disabled' => false,
'is_blocking' => true,
],
'OAuth Server' =>
[
'attributes' => ['provider', 'scope', 'client_id', 'client_secret'],
'filter' => null,
'disabled' => false,
'is_blocking' => true,
],
],
);
MetaModel::Init_Params($aParams);
MetaModel::Init_InheritAttributes();
MetaModel::Init_AddAttribute(new AttributeEnum('scope', [
'allowed_values' => new ValueSetEnum('EMail'),
'display_style' => 'list',
'sql' => 'scope',
'default_value' => 'EMail',
'is_null_allowed' => false,
'depends_on' => [],
'always_load_in_tables' => true,
]));
MetaModel::Init_SetZListItems('details', [
'name',
'status',
'description',
'provider',
'scope',
'redirect_url',
'client_id',
'client_secret',
'mailbox_list',
]);
MetaModel::Init_SetZListItems('standard_search', [
'name',
'provider',
'status',
]);
MetaModel::Init_SetZListItems('list', [
'status',
'provider',
]);
}
public function PrefillCreationForm(&$aContextParam)
{
$this->Set('provider', 'Google');
$this->Set('scope', 'EMail');
$this->Set('redirect_url', OAuthClientProviderFactory::GetRedirectUri());
parent::PrefillCreationForm($aContextParam);
}
public function GetAttributeFlags($sAttCode, &$aReasons = array(), $sTargetState = '')
{
if ($sAttCode == 'provider' || $sAttCode == 'scope' || $sAttCode == 'redirect_url') {
return OPT_ATT_READONLY;
}
return parent::GetAttributeFlags($sAttCode, $aReasons, $sTargetState);
}
public function GetInitialStateAttributeFlags($sAttCode, &$aReasons = array())
{
if ($sAttCode == 'provider' || $sAttCode == 'scope' || $sAttCode == 'redirect_url') {
return OPT_ATT_READONLY;
}
return parent::GetInitialStateAttributeFlags($sAttCode, $aReasons);
}
/**
* Compute read-only values
*
* @return void
* @throws \ArchivedObjectException
* @throws \CoreException
* @throws \CoreUnexpectedValue
*/
public function ComputeValues()
{
parent::ComputeValues();
if (empty($this->Get('provider'))) {
$this->Set('provider', 'Google');
}
if (empty($this->Get('redirect_url'))) {
$this->Set('redirect_url', OAuthClientProviderFactory::GetRedirectUri());
}
if (empty($this->Get('scope'))) {
$this->Set('scope', 'EMail');
}
}
public function GetDefaultMailServer()
{
return 'imap.gmail.com';
}
public function GetScope()
{
return 'https://mail.google.com/';
}
}

View File

@@ -0,0 +1,79 @@
<?php
/**
* @copyright Copyright (C) 2010-2022 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
namespace Combodo\iTop\OAuthClient\Service;
use ApplicationContext;
use Combodo\iTop\Core\Authentication\Client\OAuth\OAuthClientProviderFactory;
use Dict;
use iPopupMenuExtension;
use JSPopupMenuItem;
use OAuthClient;
use SeparatorPopupMenuItem;
use URLPopupMenuItem;
use utils;
class PopupMenuExtension implements \iPopupMenuExtension
{
const MODULE_CODE = 'itop-oauth-client';
/**
* @inheritDoc
*/
public static function EnumItems($iMenuId, $param)
{
$aResult = [];
switch ($iMenuId) {
case iPopupMenuExtension::MENU_OBJDETAILS_ACTIONS:
$oObj = $param;
if ($oObj instanceof OAuthClient) {
$bHasToken = !empty($oObj->Get('token'));
$aResult[] = new SeparatorPopupMenuItem();
$oAppContext = new ApplicationContext();
$sMenu = $bHasToken ? 'Menu:RegenerateTokens' : 'Menu:GenerateTokens';
$sObjClass = get_class($oObj);
$sClass = $sObjClass;
$sId = $oObj->GetKey();
$sAjaxUri = utils::GetAbsoluteUrlModulePage(static::MODULE_CODE, 'ajax.php');
// Add a new menu item that triggers a custom JS function defined in our own javascript file: js/sample.js
$sJSFileUrl = utils::GetAbsoluteUrlModulesRoot().static::MODULE_CODE.'/assets/js/oauth_connect.js';
$sRedirectUri = OAuthClientProviderFactory::GetRedirectUri();
$aResult[] = new JSPopupMenuItem(
$sMenu.' from '.$sObjClass,
Dict::S($sMenu),
"OAuthConnect('$sClass', $sId, '$sAjaxUri', '$sRedirectUri')",
[$sJSFileUrl]
);
if ($bHasToken) {
$sScope = $oObj->Get('scope');
if ($sScope == 'EMail') {
$aParams = $oAppContext->GetAsHash();
$sMenu = 'Menu:CreateMailbox';
$sObjClass = get_class($oObj);
$aParams['class'] = $sObjClass;
$aParams['id'] = $oObj->GetKey();
$aParams['operation'] = 'CreateMailBox';
$aResult[] = new URLPopupMenuItem(
$sMenu.' from '.$sObjClass,
Dict::S($sMenu),
utils::GetAbsoluteUrlModulePage(static::MODULE_CODE, 'index.php', $aParams)
);
}
}
}
break;
default:
// Unknown type of menu, do nothing
break;
}
return $aResult;
}
}

View File

@@ -0,0 +1,3 @@
{# @copyright Copyright (C) 2010-2022 Combodo SARL #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}

View File

@@ -0,0 +1,4 @@
{# @copyright Copyright (C) 2010-2022 Combodo SARL #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
window.location.href = '{{ sURL|raw }}'

View File

@@ -0,0 +1,74 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2013 XXXXX
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('TR TR', 'Turkish', 'Türkçe', [
'Menu:CreateMailbox' => 'Create a mailbox...~~',
'Menu:OAuthClient' => 'OAuth Client~~',
'Menu:OAuthClient+' => '~~',
'Menu:GenerateTokens' => 'Generate access tokens...~~',
'Menu:RegenerateTokens' => 'Regenerate access tokens...~~',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Mailbox creation~~',
'itop-oauth-client:UsedForSMTP' => 'This OAuth client is used for SMTP~~',
'itop-oauth-client:TestSMTP' => 'Email send test~~',
'itop-oauth-client:MissingOAuthClient' => 'Missing Oauth client for user name %1$s~~',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client~~',
'itop-oauth-client:Message:TokenCreated' => 'Access token created~~',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated~~',
]);
//
// Class: OAuthClient
//
Dict::Add('TR TR', 'Turkish', 'Türkçe', [
'Class:OAuthClient' => 'Oauth Client~~',
'Class:OAuthClient/Attribute:provider' => 'Provider~~',
'Class:OAuthClient/Attribute:provider+' => '~~',
'Class:OAuthClient/Attribute:name' => 'Login~~',
'Class:OAuthClient/Attribute:name+' => '~~',
'Class:OAuthClient/Attribute:scope' => 'Scope~~',
'Class:OAuthClient/Attribute:scope+' => '~~',
'Class:OAuthClient/Attribute:description' => 'Description~~',
'Class:OAuthClient/Attribute:description+' => '~~',
'Class:OAuthClient/Attribute:client_id' => 'Client id~~',
'Class:OAuthClient/Attribute:client_id+' => '~~',
'Class:OAuthClient/Attribute:client_secret' => 'Client secret~~',
'Class:OAuthClient/Attribute:client_secret+' => '~~',
'Class:OAuthClient/Attribute:refresh_token' => 'Refresh token~~',
'Class:OAuthClient/Attribute:refresh_token+' => '~~',
'Class:OAuthClient/Attribute:refresh_token_expiration' => 'Refresh token expiration~~',
'Class:OAuthClient/Attribute:refresh_token_expiration+' => '~~',
'Class:OAuthClient/Attribute:token' => 'Access token~~',
'Class:OAuthClient/Attribute:token+' => '~~',
'Class:OAuthClient/Attribute:token_expiration' => 'Access token expiration~~',
'Class:OAuthClient/Attribute:token_expiration+' => '~~',
'Class:OAuthClient/Attribute:redirect_url' => 'Redirect url~~',
'Class:OAuthClient/Attribute:redirect_url+' => '~~',
'Class:OAuthClient/Attribute:mailbox_list' => 'Mailbox list~~',
'Class:OAuthClient/Attribute:mailbox_list+' => '~~',
]);
//
// Class: OAuthClientAzure
//
Dict::Add('TR TR', 'Turkish', 'Türkçe', [
'Class:OAuthClientAzure' => 'OAuth client for Microsoft Azure~~',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~',
]);
//
// Class: OAuthClientGoogle
//
Dict::Add('TR TR', 'Turkish', 'Türkçe', [
'Class:OAuthClientGoogle' => 'OAuth client for Google~~',
'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)~~',
]);

View File

@@ -0,0 +1,7 @@
<?php
// autoload.php @generated by Composer
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInitd52424b43ff18219f2ec935428aff074::getLoader();

View File

@@ -0,0 +1,572 @@
<?php
/*
* This file is part of Composer.
*
* (c) Nils Adermann <naderman@naderman.de>
* Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Composer\Autoload;
/**
* ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
*
* $loader = new \Composer\Autoload\ClassLoader();
*
* // register classes with namespaces
* $loader->add('Symfony\Component', __DIR__.'/component');
* $loader->add('Symfony', __DIR__.'/framework');
*
* // activate the autoloader
* $loader->register();
*
* // to enable searching the include path (eg. for PEAR packages)
* $loader->setUseIncludePath(true);
*
* In this example, if you try to use a class in the Symfony\Component
* namespace or one of its children (Symfony\Component\Console for instance),
* the autoloader will first look for the class under the component/
* directory, and it will then fallback to the framework/ directory if not
* found before giving up.
*
* This class is loosely based on the Symfony UniversalClassLoader.
*
* @author Fabien Potencier <fabien@symfony.com>
* @author Jordi Boggiano <j.boggiano@seld.be>
* @see https://www.php-fig.org/psr/psr-0/
* @see https://www.php-fig.org/psr/psr-4/
*/
class ClassLoader
{
/** @var ?string */
private $vendorDir;
// PSR-4
/**
* @var array[]
* @psalm-var array<string, array<string, int>>
*/
private $prefixLengthsPsr4 = array();
/**
* @var array[]
* @psalm-var array<string, array<int, string>>
*/
private $prefixDirsPsr4 = array();
/**
* @var array[]
* @psalm-var array<string, string>
*/
private $fallbackDirsPsr4 = array();
// PSR-0
/**
* @var array[]
* @psalm-var array<string, array<string, string[]>>
*/
private $prefixesPsr0 = array();
/**
* @var array[]
* @psalm-var array<string, string>
*/
private $fallbackDirsPsr0 = array();
/** @var bool */
private $useIncludePath = false;
/**
* @var string[]
* @psalm-var array<string, string>
*/
private $classMap = array();
/** @var bool */
private $classMapAuthoritative = false;
/**
* @var bool[]
* @psalm-var array<string, bool>
*/
private $missingClasses = array();
/** @var ?string */
private $apcuPrefix;
/**
* @var self[]
*/
private static $registeredLoaders = array();
/**
* @param ?string $vendorDir
*/
public function __construct($vendorDir = null)
{
$this->vendorDir = $vendorDir;
}
/**
* @return string[]
*/
public function getPrefixes()
{
if (!empty($this->prefixesPsr0)) {
return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
}
return array();
}
/**
* @return array[]
* @psalm-return array<string, array<int, string>>
*/
public function getPrefixesPsr4()
{
return $this->prefixDirsPsr4;
}
/**
* @return array[]
* @psalm-return array<string, string>
*/
public function getFallbackDirs()
{
return $this->fallbackDirsPsr0;
}
/**
* @return array[]
* @psalm-return array<string, string>
*/
public function getFallbackDirsPsr4()
{
return $this->fallbackDirsPsr4;
}
/**
* @return string[] Array of classname => path
* @psalm-var array<string, string>
*/
public function getClassMap()
{
return $this->classMap;
}
/**
* @param string[] $classMap Class to filename map
* @psalm-param array<string, string> $classMap
*
* @return void
*/
public function addClassMap(array $classMap)
{
if ($this->classMap) {
$this->classMap = array_merge($this->classMap, $classMap);
} else {
$this->classMap = $classMap;
}
}
/**
* Registers a set of PSR-0 directories for a given prefix, either
* appending or prepending to the ones previously set for this prefix.
*
* @param string $prefix The prefix
* @param string[]|string $paths The PSR-0 root directories
* @param bool $prepend Whether to prepend the directories
*
* @return void
*/
public function add($prefix, $paths, $prepend = false)
{
if (!$prefix) {
if ($prepend) {
$this->fallbackDirsPsr0 = array_merge(
(array) $paths,
$this->fallbackDirsPsr0
);
} else {
$this->fallbackDirsPsr0 = array_merge(
$this->fallbackDirsPsr0,
(array) $paths
);
}
return;
}
$first = $prefix[0];
if (!isset($this->prefixesPsr0[$first][$prefix])) {
$this->prefixesPsr0[$first][$prefix] = (array) $paths;
return;
}
if ($prepend) {
$this->prefixesPsr0[$first][$prefix] = array_merge(
(array) $paths,
$this->prefixesPsr0[$first][$prefix]
);
} else {
$this->prefixesPsr0[$first][$prefix] = array_merge(
$this->prefixesPsr0[$first][$prefix],
(array) $paths
);
}
}
/**
* Registers a set of PSR-4 directories for a given namespace, either
* appending or prepending to the ones previously set for this namespace.
*
* @param string $prefix The prefix/namespace, with trailing '\\'
* @param string[]|string $paths The PSR-4 base directories
* @param bool $prepend Whether to prepend the directories
*
* @throws \InvalidArgumentException
*
* @return void
*/
public function addPsr4($prefix, $paths, $prepend = false)
{
if (!$prefix) {
// Register directories for the root namespace.
if ($prepend) {
$this->fallbackDirsPsr4 = array_merge(
(array) $paths,
$this->fallbackDirsPsr4
);
} else {
$this->fallbackDirsPsr4 = array_merge(
$this->fallbackDirsPsr4,
(array) $paths
);
}
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
// Register directories for a new namespace.
$length = strlen($prefix);
if ('\\' !== $prefix[$length - 1]) {
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
$this->prefixDirsPsr4[$prefix] = (array) $paths;
} elseif ($prepend) {
// Prepend directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
(array) $paths,
$this->prefixDirsPsr4[$prefix]
);
} else {
// Append directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
$this->prefixDirsPsr4[$prefix],
(array) $paths
);
}
}
/**
* Registers a set of PSR-0 directories for a given prefix,
* replacing any others previously set for this prefix.
*
* @param string $prefix The prefix
* @param string[]|string $paths The PSR-0 base directories
*
* @return void
*/
public function set($prefix, $paths)
{
if (!$prefix) {
$this->fallbackDirsPsr0 = (array) $paths;
} else {
$this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
}
}
/**
* Registers a set of PSR-4 directories for a given namespace,
* replacing any others previously set for this namespace.
*
* @param string $prefix The prefix/namespace, with trailing '\\'
* @param string[]|string $paths The PSR-4 base directories
*
* @throws \InvalidArgumentException
*
* @return void
*/
public function setPsr4($prefix, $paths)
{
if (!$prefix) {
$this->fallbackDirsPsr4 = (array) $paths;
} else {
$length = strlen($prefix);
if ('\\' !== $prefix[$length - 1]) {
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
$this->prefixDirsPsr4[$prefix] = (array) $paths;
}
}
/**
* Turns on searching the include path for class files.
*
* @param bool $useIncludePath
*
* @return void
*/
public function setUseIncludePath($useIncludePath)
{
$this->useIncludePath = $useIncludePath;
}
/**
* Can be used to check if the autoloader uses the include path to check
* for classes.
*
* @return bool
*/
public function getUseIncludePath()
{
return $this->useIncludePath;
}
/**
* Turns off searching the prefix and fallback directories for classes
* that have not been registered with the class map.
*
* @param bool $classMapAuthoritative
*
* @return void
*/
public function setClassMapAuthoritative($classMapAuthoritative)
{
$this->classMapAuthoritative = $classMapAuthoritative;
}
/**
* Should class lookup fail if not found in the current class map?
*
* @return bool
*/
public function isClassMapAuthoritative()
{
return $this->classMapAuthoritative;
}
/**
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
*
* @param string|null $apcuPrefix
*
* @return void
*/
public function setApcuPrefix($apcuPrefix)
{
$this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
}
/**
* The APCu prefix in use, or null if APCu caching is not enabled.
*
* @return string|null
*/
public function getApcuPrefix()
{
return $this->apcuPrefix;
}
/**
* Registers this instance as an autoloader.
*
* @param bool $prepend Whether to prepend the autoloader or not
*
* @return void
*/
public function register($prepend = false)
{
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
if (null === $this->vendorDir) {
return;
}
if ($prepend) {
self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
} else {
unset(self::$registeredLoaders[$this->vendorDir]);
self::$registeredLoaders[$this->vendorDir] = $this;
}
}
/**
* Unregisters this instance as an autoloader.
*
* @return void
*/
public function unregister()
{
spl_autoload_unregister(array($this, 'loadClass'));
if (null !== $this->vendorDir) {
unset(self::$registeredLoaders[$this->vendorDir]);
}
}
/**
* Loads the given class or interface.
*
* @param string $class The name of the class
* @return true|null True if loaded, null otherwise
*/
public function loadClass($class)
{
if ($file = $this->findFile($class)) {
includeFile($file);
return true;
}
return null;
}
/**
* Finds the path to the file where the class is defined.
*
* @param string $class The name of the class
*
* @return string|false The path if found, false otherwise
*/
public function findFile($class)
{
// class map lookup
if (isset($this->classMap[$class])) {
return $this->classMap[$class];
}
if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
return false;
}
if (null !== $this->apcuPrefix) {
$file = apcu_fetch($this->apcuPrefix.$class, $hit);
if ($hit) {
return $file;
}
}
$file = $this->findFileWithExtension($class, '.php');
// Search for Hack files if we are running on HHVM
if (false === $file && defined('HHVM_VERSION')) {
$file = $this->findFileWithExtension($class, '.hh');
}
if (null !== $this->apcuPrefix) {
apcu_add($this->apcuPrefix.$class, $file);
}
if (false === $file) {
// Remember that this class does not exist.
$this->missingClasses[$class] = true;
}
return $file;
}
/**
* Returns the currently registered loaders indexed by their corresponding vendor directories.
*
* @return self[]
*/
public static function getRegisteredLoaders()
{
return self::$registeredLoaders;
}
/**
* @param string $class
* @param string $ext
* @return string|false
*/
private function findFileWithExtension($class, $ext)
{
// PSR-4 lookup
$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
$first = $class[0];
if (isset($this->prefixLengthsPsr4[$first])) {
$subPath = $class;
while (false !== $lastPos = strrpos($subPath, '\\')) {
$subPath = substr($subPath, 0, $lastPos);
$search = $subPath . '\\';
if (isset($this->prefixDirsPsr4[$search])) {
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
foreach ($this->prefixDirsPsr4[$search] as $dir) {
if (file_exists($file = $dir . $pathEnd)) {
return $file;
}
}
}
}
}
// PSR-4 fallback dirs
foreach ($this->fallbackDirsPsr4 as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
return $file;
}
}
// PSR-0 lookup
if (false !== $pos = strrpos($class, '\\')) {
// namespaced class name
$logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
. strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
} else {
// PEAR-like class name
$logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
}
if (isset($this->prefixesPsr0[$first])) {
foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
if (0 === strpos($class, $prefix)) {
foreach ($dirs as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
return $file;
}
}
}
}
}
// PSR-0 fallback dirs
foreach ($this->fallbackDirsPsr0 as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
return $file;
}
}
// PSR-0 include paths.
if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
return $file;
}
return false;
}
}
/**
* Scope isolated include.
*
* Prevents access to $this/self from included files.
*
* @param string $file
* @return void
* @private
*/
function includeFile($file)
{
include $file;
}

View File

@@ -0,0 +1,21 @@
Copyright (c) Nils Adermann, Jordi Boggiano
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View File

@@ -0,0 +1,13 @@
<?php
// autoload_classmap.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'Combodo\\iTop\\OAuthClient\\Controller\\AjaxOauthClientController' => $baseDir . '/src/Controller/AjaxOauthClientController.php',
'Combodo\\iTop\\OAuthClient\\Controller\\OAuthClientController' => $baseDir . '/src/Controller/OAuthClientController.php',
'Combodo\\iTop\\OAuthClient\\Service\\PopupMenuExtension' => $baseDir . '/src/Service/PopupMenuExtension.php',
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
);

View File

@@ -0,0 +1,9 @@
<?php
// autoload_namespaces.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
);

View File

@@ -0,0 +1,10 @@
<?php
// autoload_psr4.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'Combodo\\iTop\\OAuthClient\\' => array($baseDir . '/src'),
);

View File

@@ -0,0 +1,46 @@
<?php
// autoload_real.php @generated by Composer
class ComposerAutoloaderInitd52424b43ff18219f2ec935428aff074
{
private static $loader;
public static function loadClassLoader($class)
{
if ('Composer\Autoload\ClassLoader' === $class) {
require __DIR__ . '/ClassLoader.php';
}
}
/**
* @return \Composer\Autoload\ClassLoader
*/
public static function getLoader()
{
if (null !== self::$loader) {
return self::$loader;
}
spl_autoload_register(array('ComposerAutoloaderInitd52424b43ff18219f2ec935428aff074', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
spl_autoload_unregister(array('ComposerAutoloaderInitd52424b43ff18219f2ec935428aff074', 'loadClassLoader'));
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
if ($useStaticLoader) {
require __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInitd52424b43ff18219f2ec935428aff074::getInitializer($loader));
} else {
$classMap = require __DIR__ . '/autoload_classmap.php';
if ($classMap) {
$loader->addClassMap($classMap);
}
}
$loader->setClassMapAuthoritative(true);
$loader->register(true);
return $loader;
}
}

View File

@@ -0,0 +1,39 @@
<?php
// autoload_static.php @generated by Composer
namespace Composer\Autoload;
class ComposerStaticInitd52424b43ff18219f2ec935428aff074
{
public static $prefixLengthsPsr4 = array (
'C' =>
array (
'Combodo\\iTop\\OAuthClient\\' => 25,
),
);
public static $prefixDirsPsr4 = array (
'Combodo\\iTop\\OAuthClient\\' =>
array (
0 => __DIR__ . '/../..' . '/src',
),
);
public static $classMap = array (
'Combodo\\iTop\\OAuthClient\\Controller\\AjaxOauthClientController' => __DIR__ . '/../..' . '/src/Controller/AjaxOauthClientController.php',
'Combodo\\iTop\\OAuthClient\\Controller\\OAuthClientController' => __DIR__ . '/../..' . '/src/Controller/OAuthClientController.php',
'Combodo\\iTop\\OAuthClient\\Service\\PopupMenuExtension' => __DIR__ . '/../..' . '/src/Service/PopupMenuExtension.php',
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
);
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInitd52424b43ff18219f2ec935428aff074::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInitd52424b43ff18219f2ec935428aff074::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInitd52424b43ff18219f2ec935428aff074::$classMap;
}, null, ClassLoader::class);
}
}

View File

@@ -0,0 +1,74 @@
<?php
/**
* Localized data
*
* @copyright Copyright (C) 2013 XXXXX
* @license http://opensource.org/licenses/AGPL-3.0
*/
Dict::Add('ZH CN', 'Chinese', '简体中文', [
'Menu:CreateMailbox' => 'Create a mailbox...~~',
'Menu:OAuthClient' => 'OAuth Client~~',
'Menu:OAuthClient+' => '~~',
'Menu:GenerateTokens' => 'Generate access tokens...~~',
'Menu:RegenerateTokens' => 'Regenerate access tokens...~~',
'itop-oauth-client/Operation:CreateMailBox/Title' => 'Mailbox creation~~',
'itop-oauth-client:UsedForSMTP' => 'This OAuth client is used for SMTP~~',
'itop-oauth-client:TestSMTP' => 'Email send test~~',
'itop-oauth-client:MissingOAuthClient' => 'Missing Oauth client for user name %1$s~~',
'itop-oauth-client:Message:MissingToken' => 'Generate access token before using this OAuth client~~',
'itop-oauth-client:Message:TokenCreated' => 'Access token created~~',
'itop-oauth-client:Message:TokenRecreated' => 'Access token regenerated~~',
]);
//
// Class: OAuthClient
//
Dict::Add('ZH CN', 'Chinese', '简体中文', [
'Class:OAuthClient' => 'Oauth Client~~',
'Class:OAuthClient/Attribute:provider' => 'Provider~~',
'Class:OAuthClient/Attribute:provider+' => '~~',
'Class:OAuthClient/Attribute:name' => 'Login~~',
'Class:OAuthClient/Attribute:name+' => '~~',
'Class:OAuthClient/Attribute:scope' => 'Scope~~',
'Class:OAuthClient/Attribute:scope+' => '~~',
'Class:OAuthClient/Attribute:description' => 'Description~~',
'Class:OAuthClient/Attribute:description+' => '~~',
'Class:OAuthClient/Attribute:client_id' => 'Client id~~',
'Class:OAuthClient/Attribute:client_id+' => '~~',
'Class:OAuthClient/Attribute:client_secret' => 'Client secret~~',
'Class:OAuthClient/Attribute:client_secret+' => '~~',
'Class:OAuthClient/Attribute:refresh_token' => 'Refresh token~~',
'Class:OAuthClient/Attribute:refresh_token+' => '~~',
'Class:OAuthClient/Attribute:refresh_token_expiration' => 'Refresh token expiration~~',
'Class:OAuthClient/Attribute:refresh_token_expiration+' => '~~',
'Class:OAuthClient/Attribute:token' => 'Access token~~',
'Class:OAuthClient/Attribute:token+' => '~~',
'Class:OAuthClient/Attribute:token_expiration' => 'Access token expiration~~',
'Class:OAuthClient/Attribute:token_expiration+' => '~~',
'Class:OAuthClient/Attribute:redirect_url' => 'Redirect url~~',
'Class:OAuthClient/Attribute:redirect_url+' => '~~',
'Class:OAuthClient/Attribute:mailbox_list' => 'Mailbox list~~',
'Class:OAuthClient/Attribute:mailbox_list+' => '~~',
]);
//
// Class: OAuthClientAzure
//
Dict::Add('ZH CN', 'Chinese', '简体中文', [
'Class:OAuthClientAzure' => 'OAuth client for Microsoft Azure~~',
'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~',
]);
//
// Class: OAuthClientGoogle
//
Dict::Add('ZH CN', 'Chinese', '简体中文', [
'Class:OAuthClientGoogle' => 'OAuth client for Google~~',
'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)~~',
]);

View File

@@ -29,10 +29,5 @@
</cells>
</definition>
</menu>
<menu id="OAuthWizardMenu" xsi:type="WebPageMenuNode" _delta="define">
<rank>45</rank>
<parent>ConfigurationTools</parent>
<url>$pages/oauth.wizard.php</url>
</menu>
</menus>
</itop_design>

View File

@@ -1676,22 +1676,6 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array(
'Menu:ConfigurationTools' => 'Configuration~~',
));
// OAuth
Dict::Add('CS CZ', 'Czech', 'Čeština', array(
'Menu:OAuthWizardMenu' => 'OAuth 2.0~~',
'core/Operation:Wizard/Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Page:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Panel:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Input:ClientId:Label' => 'Client Id~~',
'UI:OAuth:Wizard:Form:Input:ClientSecret:Label' => 'Client Secret~~',
'UI:OAuth:Wizard:Form:Input:Scope:Label' => 'Scope~~',
'UI:OAuth:Wizard:Form:Input:Additional:Label' => 'Additional parameters~~',
'UI:OAuth:Wizard:Form:Input:RedirectUri:Label' => 'Redirect Uri~~',
'UI:OAuth:Wizard:Form:Button:Submit:Label' => 'Authentication~~',
'UI:OAuth:Wizard:ResultConf:Panel:Title' => 'Configuration for SMTP~~',
'UI:OAuth:Wizard:ResultConf:Panel:Description' => 'Paste this content into your configuration file to use this OAuth connection for your outgoing emails~~',
));
// Additional language entries not present in English dict
Dict::Add('CS CZ', 'Czech', 'Čeština', array(
'UI:Toggle:StandardDashboard' => 'Standard~~',

View File

@@ -1667,22 +1667,6 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Menu:ConfigurationTools' => 'Configuration~~',
));
// OAuth
Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Menu:OAuthWizardMenu' => 'OAuth 2.0~~',
'core/Operation:Wizard/Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Page:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Panel:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Input:ClientId:Label' => 'Client Id~~',
'UI:OAuth:Wizard:Form:Input:ClientSecret:Label' => 'Client Secret~~',
'UI:OAuth:Wizard:Form:Input:Scope:Label' => 'Scope~~',
'UI:OAuth:Wizard:Form:Input:Additional:Label' => 'Additional parameters~~',
'UI:OAuth:Wizard:Form:Input:RedirectUri:Label' => 'Redirect Uri~~',
'UI:OAuth:Wizard:Form:Button:Submit:Label' => 'Authentication~~',
'UI:OAuth:Wizard:ResultConf:Panel:Title' => 'Configuration for SMTP~~',
'UI:OAuth:Wizard:ResultConf:Panel:Description' => 'Paste this content into your configuration file to use this OAuth connection for your outgoing emails~~',
));
// Additional language entries not present in English dict
Dict::Add('DA DA', 'Danish', 'Dansk', array(
'UI:Toggle:StandardDashboard' => 'Standard~~',

View File

@@ -1674,18 +1674,3 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'UI:Dashboard:Revert' => 'Auf Originalversion zurücksetzen...',
));
// OAuth
Dict::Add('DE DE', 'German', 'Deutsch', array(
'Menu:OAuthWizardMenu' => 'OAuth 2.0~~',
'core/Operation:Wizard/Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Page:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Panel:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Input:ClientId:Label' => 'Client Id~~',
'UI:OAuth:Wizard:Form:Input:ClientSecret:Label' => 'Client Secret~~',
'UI:OAuth:Wizard:Form:Input:Scope:Label' => 'Scope~~',
'UI:OAuth:Wizard:Form:Input:Additional:Label' => 'Additional parameters~~',
'UI:OAuth:Wizard:Form:Input:RedirectUri:Label' => 'Redirect Uri~~',
'UI:OAuth:Wizard:Form:Button:Submit:Label' => 'Authentication~~',
'UI:OAuth:Wizard:ResultConf:Panel:Title' => 'Configuration for SMTP~~',
'UI:OAuth:Wizard:ResultConf:Panel:Description' => 'Paste this content into your configuration file to use this OAuth connection for your outgoing emails~~',
));

View File

@@ -1684,19 +1684,3 @@ Dict::Add('EN US', 'English', 'English', array(
'Menu:Queries' => 'Queries',
'Menu:ConfigurationTools' => 'Configuration',
));
// OAuth
Dict::Add('EN US', 'English', 'English', array(
'Menu:OAuthWizardMenu' => 'OAuth 2.0',
'core/Operation:Wizard/Title' => 'OAuth 2.0 Configuration',
'UI:OAuth:Wizard:Page:Title' => 'OAuth 2.0 Configuration',
'UI:OAuth:Wizard:Form:Panel:Title' => 'OAuth 2.0 Configuration',
'UI:OAuth:Wizard:Form:Input:ClientId:Label' => 'Client Id',
'UI:OAuth:Wizard:Form:Input:ClientSecret:Label' => 'Client Secret',
'UI:OAuth:Wizard:Form:Input:Scope:Label' => 'Scope',
'UI:OAuth:Wizard:Form:Input:Additional:Label' => 'Additional parameters',
'UI:OAuth:Wizard:Form:Input:RedirectUri:Label' => 'Redirect Uri',
'UI:OAuth:Wizard:Form:Button:Submit:Label' => 'Authentication',
'UI:OAuth:Wizard:ResultConf:Panel:Title' => 'Configuration for SMTP',
'UI:OAuth:Wizard:ResultConf:Panel:Description' => 'Paste this content into your configuration file to use this OAuth connection for your outgoing emails',
));

View File

@@ -1682,22 +1682,6 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array(
'Menu:ConfigurationTools' => 'Configuración',
));
// OAuth
Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array(
'Menu:OAuthWizardMenu' => 'OAuth 2.0~~',
'core/Operation:Wizard/Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Page:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Panel:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Input:ClientId:Label' => 'Client Id~~',
'UI:OAuth:Wizard:Form:Input:ClientSecret:Label' => 'Client Secret~~',
'UI:OAuth:Wizard:Form:Input:Scope:Label' => 'Scope~~',
'UI:OAuth:Wizard:Form:Input:Additional:Label' => 'Additional parameters~~',
'UI:OAuth:Wizard:Form:Input:RedirectUri:Label' => 'Redirect Uri~~',
'UI:OAuth:Wizard:Form:Button:Submit:Label' => 'Authentication~~',
'UI:OAuth:Wizard:ResultConf:Panel:Title' => 'Configuration for SMTP~~',
'UI:OAuth:Wizard:ResultConf:Panel:Description' => 'Paste this content into your configuration file to use this OAuth connection for your outgoing emails~~',
));
// Additional language entries not present in English dict
Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array(
'UI:Toggle:StandardDashboard' => 'Standard~~',

View File

@@ -1665,19 +1665,3 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Menu:Queries' => 'Requêtes',
'Menu:ConfigurationTools' => 'Configuration',
));
// OAuth
Dict::Add('FR FR', 'French', 'Français', array(
'Menu:OAuthWizardMenu' => 'OAuth 2.0~~',
'core/Operation:Wizard/Title' => 'Configuration OAuth 2.0',
'UI:OAuth:Wizard:Page:Title' => 'Configuration OAuth 2.0',
'UI:OAuth:Wizard:Form:Panel:Title' => 'Configuration OAuth 2.0',
'UI:OAuth:Wizard:Form:Input:ClientId:Label' => 'Id client',
'UI:OAuth:Wizard:Form:Input:ClientSecret:Label' => 'Secret client',
'UI:OAuth:Wizard:Form:Input:Scope:Label' => 'Scope',
'UI:OAuth:Wizard:Form:Input:Additional:Label' => 'Paramètres additionnels',
'UI:OAuth:Wizard:Form:Input:RedirectUri:Label' => 'URI de redirection',
'UI:OAuth:Wizard:Form:Button:Submit:Label' => 'Authentification',
'UI:OAuth:Wizard:ResultConf:Panel:Title' => 'Configuration pour SMTP',
'UI:OAuth:Wizard:ResultConf:Panel:Description' => 'Copier ces lignes dans la configuration pour utiliser cette connexion OAyth 2.0 pour les mails sortants',
));

View File

@@ -1667,22 +1667,6 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
'Menu:ConfigurationTools' => 'Configuration~~',
));
// OAuth
Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
'Menu:OAuthWizardMenu' => 'OAuth 2.0~~',
'core/Operation:Wizard/Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Page:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Panel:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Input:ClientId:Label' => 'Client Id~~',
'UI:OAuth:Wizard:Form:Input:ClientSecret:Label' => 'Client Secret~~',
'UI:OAuth:Wizard:Form:Input:Scope:Label' => 'Scope~~',
'UI:OAuth:Wizard:Form:Input:Additional:Label' => 'Additional parameters~~',
'UI:OAuth:Wizard:Form:Input:RedirectUri:Label' => 'Redirect Uri~~',
'UI:OAuth:Wizard:Form:Button:Submit:Label' => 'Authentication~~',
'UI:OAuth:Wizard:ResultConf:Panel:Title' => 'Configuration for SMTP~~',
'UI:OAuth:Wizard:ResultConf:Panel:Description' => 'Paste this content into your configuration file to use this OAuth connection for your outgoing emails~~',
));
// Additional language entries not present in English dict
Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
'UI:Toggle:StandardDashboard' => 'Standard~~',

View File

@@ -1678,22 +1678,6 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array(
'Menu:ConfigurationTools' => 'configurazione',
));
// OAuth
Dict::Add('IT IT', 'Italian', 'Italiano', array(
'Menu:OAuthWizardMenu' => 'OAuth 2.0~~',
'core/Operation:Wizard/Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Page:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Panel:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Input:ClientId:Label' => 'Client Id~~',
'UI:OAuth:Wizard:Form:Input:ClientSecret:Label' => 'Client Secret~~',
'UI:OAuth:Wizard:Form:Input:Scope:Label' => 'Scope~~',
'UI:OAuth:Wizard:Form:Input:Additional:Label' => 'Additional parameters~~',
'UI:OAuth:Wizard:Form:Input:RedirectUri:Label' => 'Redirect Uri~~',
'UI:OAuth:Wizard:Form:Button:Submit:Label' => 'Authentication~~',
'UI:OAuth:Wizard:ResultConf:Panel:Title' => 'Configuration for SMTP~~',
'UI:OAuth:Wizard:ResultConf:Panel:Description' => 'Paste this content into your configuration file to use this OAuth connection for your outgoing emails~~',
));
// Additional language entries not present in English dict
Dict::Add('IT IT', 'Italian', 'Italiano', array(
'UI:Toggle:StandardDashboard' => 'Standard~~',

View File

@@ -1667,22 +1667,6 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Menu:ConfigurationTools' => 'Configuration~~',
));
// OAuth
Dict::Add('JA JP', 'Japanese', '日本語', array(
'Menu:OAuthWizardMenu' => 'OAuth 2.0~~',
'core/Operation:Wizard/Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Page:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Panel:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Input:ClientId:Label' => 'Client Id~~',
'UI:OAuth:Wizard:Form:Input:ClientSecret:Label' => 'Client Secret~~',
'UI:OAuth:Wizard:Form:Input:Scope:Label' => 'Scope~~',
'UI:OAuth:Wizard:Form:Input:Additional:Label' => 'Additional parameters~~',
'UI:OAuth:Wizard:Form:Input:RedirectUri:Label' => 'Redirect Uri~~',
'UI:OAuth:Wizard:Form:Button:Submit:Label' => 'Authentication~~',
'UI:OAuth:Wizard:ResultConf:Panel:Title' => 'Configuration for SMTP~~',
'UI:OAuth:Wizard:ResultConf:Panel:Description' => 'Paste this content into your configuration file to use this OAuth connection for your outgoing emails~~',
));
// Additional language entries not present in English dict
Dict::Add('JA JP', 'Japanese', '日本語', array(
'UI:Toggle:StandardDashboard' => 'Standard~~',

View File

@@ -1681,22 +1681,6 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Menu:ConfigurationTools' => 'Configuratie',
));
// OAuth
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Menu:OAuthWizardMenu' => 'OAuth 2.0~~',
'core/Operation:Wizard/Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Page:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Panel:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Input:ClientId:Label' => 'Client Id~~',
'UI:OAuth:Wizard:Form:Input:ClientSecret:Label' => 'Client Secret~~',
'UI:OAuth:Wizard:Form:Input:Scope:Label' => 'Scope~~',
'UI:OAuth:Wizard:Form:Input:Additional:Label' => 'Additional parameters~~',
'UI:OAuth:Wizard:Form:Input:RedirectUri:Label' => 'Redirect Uri~~',
'UI:OAuth:Wizard:Form:Button:Submit:Label' => 'Authentication~~',
'UI:OAuth:Wizard:ResultConf:Panel:Title' => 'Configuration for SMTP~~',
'UI:OAuth:Wizard:ResultConf:Panel:Description' => 'Paste this content into your configuration file to use this OAuth connection for your outgoing emails~~',
));
// Additional language entries not present in English dict
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'UI:Toggle:StandardDashboard' => 'Standaard',

View File

@@ -1678,22 +1678,6 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
'Menu:ConfigurationTools' => 'Configuração',
));
// OAuth
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
'Menu:OAuthWizardMenu' => 'OAuth 2.0~~',
'core/Operation:Wizard/Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Page:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Panel:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Input:ClientId:Label' => 'Client Id~~',
'UI:OAuth:Wizard:Form:Input:ClientSecret:Label' => 'Client Secret~~',
'UI:OAuth:Wizard:Form:Input:Scope:Label' => 'Scope~~',
'UI:OAuth:Wizard:Form:Input:Additional:Label' => 'Additional parameters~~',
'UI:OAuth:Wizard:Form:Input:RedirectUri:Label' => 'Redirect Uri~~',
'UI:OAuth:Wizard:Form:Button:Submit:Label' => 'Authentication~~',
'UI:OAuth:Wizard:ResultConf:Panel:Title' => 'Configuration for SMTP~~',
'UI:OAuth:Wizard:ResultConf:Panel:Description' => 'Paste this content into your configuration file to use this OAuth connection for your outgoing emails~~',
));
// Additional language entries not present in English dict
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
'UI:Toggle:StandardDashboard' => 'Padrão',

View File

@@ -1678,22 +1678,6 @@ Dict::Add('RU RU', 'Russian', 'Русский', array(
'Menu:ConfigurationTools' => 'Конфигурация',
));
// OAuth
Dict::Add('RU RU', 'Russian', 'Русский', array(
'Menu:OAuthWizardMenu' => 'OAuth 2.0~~',
'core/Operation:Wizard/Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Page:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Panel:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Input:ClientId:Label' => 'Client Id~~',
'UI:OAuth:Wizard:Form:Input:ClientSecret:Label' => 'Client Secret~~',
'UI:OAuth:Wizard:Form:Input:Scope:Label' => 'Scope~~',
'UI:OAuth:Wizard:Form:Input:Additional:Label' => 'Additional parameters~~',
'UI:OAuth:Wizard:Form:Input:RedirectUri:Label' => 'Redirect Uri~~',
'UI:OAuth:Wizard:Form:Button:Submit:Label' => 'Authentication~~',
'UI:OAuth:Wizard:ResultConf:Panel:Title' => 'Configuration for SMTP~~',
'UI:OAuth:Wizard:ResultConf:Panel:Description' => 'Paste this content into your configuration file to use this OAuth connection for your outgoing emails~~',
));
// Additional language entries not present in English dict
Dict::Add('RU RU', 'Russian', 'Русский', array(
'UI:CSVImport:ObjectsReчmainedUnchanged' => '%1$d объект(ов) не изменились.',

View File

@@ -1670,22 +1670,6 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Menu:ConfigurationTools' => 'Configuration~~',
));
// OAuth
Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Menu:OAuthWizardMenu' => 'OAuth 2.0~~',
'core/Operation:Wizard/Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Page:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Panel:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Input:ClientId:Label' => 'Client Id~~',
'UI:OAuth:Wizard:Form:Input:ClientSecret:Label' => 'Client Secret~~',
'UI:OAuth:Wizard:Form:Input:Scope:Label' => 'Scope~~',
'UI:OAuth:Wizard:Form:Input:Additional:Label' => 'Additional parameters~~',
'UI:OAuth:Wizard:Form:Input:RedirectUri:Label' => 'Redirect Uri~~',
'UI:OAuth:Wizard:Form:Button:Submit:Label' => 'Authentication~~',
'UI:OAuth:Wizard:ResultConf:Panel:Title' => 'Configuration for SMTP~~',
'UI:OAuth:Wizard:ResultConf:Panel:Description' => 'Paste this content into your configuration file to use this OAuth connection for your outgoing emails~~',
));
// Additional language entries not present in English dict
Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'UI:Toggle:StandardDashboard' => 'Standard~~',

View File

@@ -1716,22 +1716,6 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
'Menu:ConfigurationTools' => 'Configuration~~',
));
// OAuth
Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
'Menu:OAuthWizardMenu' => 'OAuth 2.0~~',
'core/Operation:Wizard/Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Page:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Panel:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Input:ClientId:Label' => 'Client Id~~',
'UI:OAuth:Wizard:Form:Input:ClientSecret:Label' => 'Client Secret~~',
'UI:OAuth:Wizard:Form:Input:Scope:Label' => 'Scope~~',
'UI:OAuth:Wizard:Form:Input:Additional:Label' => 'Additional parameters~~',
'UI:OAuth:Wizard:Form:Input:RedirectUri:Label' => 'Redirect Uri~~',
'UI:OAuth:Wizard:Form:Button:Submit:Label' => 'Authentication~~',
'UI:OAuth:Wizard:ResultConf:Panel:Title' => 'Configuration for SMTP~~',
'UI:OAuth:Wizard:ResultConf:Panel:Description' => 'Paste this content into your configuration file to use this OAuth connection for your outgoing emails~~',
));
// Additional language entries not present in English dict
Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
'UI:Toggle:StandardDashboard' => 'Standard~~',

View File

@@ -1683,22 +1683,6 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Menu:ConfigurationTools' => '配置',
));
// OAuth
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Menu:OAuthWizardMenu' => 'OAuth 2.0~~',
'core/Operation:Wizard/Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Page:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Panel:Title' => 'OAuth 2.0 Configuration~~',
'UI:OAuth:Wizard:Form:Input:ClientId:Label' => 'Client Id~~',
'UI:OAuth:Wizard:Form:Input:ClientSecret:Label' => 'Client Secret~~',
'UI:OAuth:Wizard:Form:Input:Scope:Label' => 'Scope~~',
'UI:OAuth:Wizard:Form:Input:Additional:Label' => 'Additional parameters~~',
'UI:OAuth:Wizard:Form:Input:RedirectUri:Label' => 'Redirect Uri~~',
'UI:OAuth:Wizard:Form:Button:Submit:Label' => 'Authentication~~',
'UI:OAuth:Wizard:ResultConf:Panel:Title' => 'Configuration for SMTP~~',
'UI:OAuth:Wizard:ResultConf:Panel:Description' => 'Paste this content into your configuration file to use this OAuth connection for your outgoing emails~~',
));
// Additional language entries not present in English dict
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'UI:Toggle:StandardDashboard' => '标准',

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><linearGradient id="g1836rkoZ71TUlKj~T~uia" x1="52.532" x2="37.34" y1="24" y2="24" gradientTransform="rotate(-90 24 24)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f9f9f9"/><stop offset=".966" stop-color="#c4c9cd"/><stop offset="1" stop-color="#c2c8cc"/></linearGradient><path fill="url(#g1836rkoZ71TUlKj~T~uia)" d="M22,11V6c0-0.552,0.448-1,1-1h2c0.552,0,1,0.448,1,1v5H22z"/><linearGradient id="g1836rkoZ71TUlKj~T~uib" x1="59.681" x2="27.823" y1="10" y2="10" gradientTransform="rotate(-90 24 24)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f9f9f9"/><stop offset=".966" stop-color="#c4c9cd"/><stop offset="1" stop-color="#c2c8cc"/></linearGradient><path fill="url(#g1836rkoZ71TUlKj~T~uib)" d="M8,20V6c0-0.552,0.448-1,1-1h2c0.552,0,1,0.448,1,1v14H8z"/><linearGradient id="g1836rkoZ71TUlKj~T~uic" x1="5" x2="25" y1="10" y2="10" gradientTransform="rotate(-90 24 24)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#2aa4f4"/><stop offset="1" stop-color="#007ad9"/></linearGradient><path fill="url(#g1836rkoZ71TUlKj~T~uic)" d="M8,23v19c0,0.552,0.448,1,1,1h2c0.552,0,1-0.448,1-1V23H8z"/><linearGradient id="g1836rkoZ71TUlKj~T~uid" x1="5" x2="35" y1="24" y2="24" gradientTransform="rotate(-90 24 24)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#2aa4f4"/><stop offset="1" stop-color="#007ad9"/></linearGradient><path fill="url(#g1836rkoZ71TUlKj~T~uid)" d="M22,13v29c0,0.552,0.448,1,1,1h2c0.552,0,1-0.448,1-1V13H22z"/><linearGradient id="g1836rkoZ71TUlKj~T~uie" x1="5" x2="18" y1="38" y2="38" gradientTransform="rotate(-90 24 24)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#2aa4f4"/><stop offset="1" stop-color="#007ad9"/></linearGradient><path fill="url(#g1836rkoZ71TUlKj~T~uie)" d="M36,30v12c0,0.552,0.448,1,1,1h2c0.552,0,1-0.448,1-1V30H36z"/><linearGradient id="g1836rkoZ71TUlKj~T~uif" x1="25.5" x2="25.5" y1=".787" y2="13.939" gradientTransform="rotate(-90 24 24)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#a3ffff"/><stop offset=".223" stop-color="#9dfbff"/><stop offset=".53" stop-color="#8bf1ff"/><stop offset=".885" stop-color="#6ee0ff"/><stop offset="1" stop-color="#63daff"/></linearGradient><path fill="url(#g1836rkoZ71TUlKj~T~uif)" d="M14,20.5v4c0,0.276-0.224,0.5-0.5,0.5h-7C6.224,25,6,24.776,6,24.5v-4 C6,20.224,6.224,20,6.5,20h7C13.776,20,14,20.224,14,20.5z"/><linearGradient id="g1836rkoZ71TUlKj~T~uig" x1="34.5" x2="34.5" y1="18.404" y2="27.724" gradientTransform="rotate(-90 24 24)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#a3ffff"/><stop offset=".223" stop-color="#9dfbff"/><stop offset=".53" stop-color="#8bf1ff"/><stop offset=".885" stop-color="#6ee0ff"/><stop offset="1" stop-color="#63daff"/></linearGradient><path fill="url(#g1836rkoZ71TUlKj~T~uig)" d="M28,11.5v4c0,0.276-0.224,0.5-0.5,0.5h-7c-0.276,0-0.5-0.224-0.5-0.5v-4 c0-0.276,0.224-0.5,0.5-0.5h7C27.776,11,28,11.224,28,11.5z"/><linearGradient id="g1836rkoZ71TUlKj~T~uih" x1="18.5" x2="18.5" y1="28.787" y2="41.939" gradientTransform="rotate(-90 24 24)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#a3ffff"/><stop offset=".223" stop-color="#9dfbff"/><stop offset=".53" stop-color="#8bf1ff"/><stop offset=".885" stop-color="#6ee0ff"/><stop offset="1" stop-color="#63daff"/></linearGradient><path fill="url(#g1836rkoZ71TUlKj~T~uih)" d="M42,27.5v4c0,0.276-0.224,0.5-0.5,0.5h-7c-0.276,0-0.5-0.224-0.5-0.5v-4 c0-0.276,0.224-0.5,0.5-0.5h7C41.776,27,42,27.224,42,27.5z"/><linearGradient id="g1836rkoZ71TUlKj~T~uii" x1="66.638" x2="21.441" y1="38" y2="38" gradientTransform="rotate(-90 24 24)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f9f9f9"/><stop offset=".966" stop-color="#c4c9cd"/><stop offset="1" stop-color="#c2c8cc"/></linearGradient><path fill="url(#g1836rkoZ71TUlKj~T~uii)" d="M36,27V6c0-0.552,0.448-1,1-1h2c0.552,0,1,0.448,1,1v21H36z"/></svg>

Before

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><linearGradient id="ELK8HmAtoO7unK~fXUzIXa" x1="30.845" x2="14.714" y1="31.129" y2="14.998" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset=".242" stop-color="#f2f2f2"/><stop offset="1" stop-color="#ccc"/></linearGradient><circle cx="22.833" cy="23.117" r="11.5" fill="url(#ELK8HmAtoO7unK~fXUzIXa)"/><linearGradient id="ELK8HmAtoO7unK~fXUzIXb" x1="16.283" x2="27.773" y1="16.567" y2="28.057" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#0d61a9"/><stop offset=".363" stop-color="#0e5fa4"/><stop offset=".78" stop-color="#135796"/><stop offset="1" stop-color="#16528c"/></linearGradient><circle cx="22.833" cy="23.117" r="7" fill="url(#ELK8HmAtoO7unK~fXUzIXb)"/><linearGradient id="ELK8HmAtoO7unK~fXUzIXc" x1="4.16" x2="36.915" y1="4.461" y2="37.217" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#889097"/><stop offset=".331" stop-color="#848c94"/><stop offset=".669" stop-color="#78828b"/><stop offset="1" stop-color="#64717c"/></linearGradient><path fill="url(#ELK8HmAtoO7unK~fXUzIXc)" d="M42.24,18.36c-2.389-0.029-4.702-1.274-5.983-3.493c-1.233-2.136-1.208-4.649-0.162-6.693 c-2.125-1.887-4.642-3.339-7.43-4.188c-1.254,1.886-3.397,3.131-5.831,3.131s-4.577-1.244-5.831-3.131 c-2.788,0.849-5.305,2.301-7.43,4.188c1.046,2.044,1.071,4.557-0.162,6.693c-1.281,2.219-3.594,3.464-5.983,3.493 c-0.373,1.527-0.593,3.115-0.593,4.757c0,1.284,0.133,2.535,0.364,3.752c2.469-0.051,4.891,1.208,6.213,3.498 c1.368,2.37,1.187,5.204-0.22,7.345c2.082,1.947,4.573,3.456,7.34,4.375c1.13-2.347,3.524-3.971,6.303-3.971 s5.173,1.624,6.303,3.971c2.767-0.919,5.258-2.428,7.34-4.375c-1.407-2.141-1.588-4.975-0.22-7.345 c1.322-2.29,3.743-3.549,6.213-3.498c0.231-1.217,0.364-2.468,0.364-3.752C42.833,21.475,42.613,19.887,42.24,18.36z M22.833,33.617c-5.799,0-10.5-4.701-10.5-10.5c0-5.799,4.701-10.5,10.5-10.5s10.5,4.701,10.5,10.5 C33.333,28.916,28.632,33.617,22.833,33.617z"/><linearGradient id="ELK8HmAtoO7unK~fXUzIXd" x1="26.885" x2="37.509" y1="25.964" y2="41.333" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#7dd8f3"/><stop offset="1" stop-color="#45b0d0"/></linearGradient><path fill="url(#ELK8HmAtoO7unK~fXUzIXd)" d="M22,41.5v-14h22v14c0,1.1-0.9,2-2,2H24C22.9,43.5,22,42.6,22,41.5z"/><linearGradient id="ELK8HmAtoO7unK~fXUzIXe" x1="22.465" x2="43.417" y1="23.541" y2="27.801" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#0077d2"/><stop offset="1" stop-color="#0b59a2"/></linearGradient><path fill="url(#ELK8HmAtoO7unK~fXUzIXe)" d="M44,25.5v2H22v-2c0-1.1,0.9-2,2-2h18C43.1,23.5,44,24.4,44,25.5z"/><path fill="#195bbc" d="M27.146,40.854l-2-2c-0.195-0.195-0.195-0.512,0-0.707l0.707-0.707c0.195-0.195,0.512-0.195,0.707,0 l0.939,0.939l2.939-2.939c0.195-0.195,0.512-0.195,0.707,0l0.707,0.707c0.195,0.195,0.195,0.512,0,0.707l-4,4 C27.658,41.049,27.342,41.049,27.146,40.854z"/><path fill="#195bbc" d="M27.146,34.854l-2-2c-0.195-0.195-0.195-0.512,0-0.707l0.707-0.707c0.195-0.195,0.512-0.195,0.707,0 l0.939,0.939l2.939-2.939c0.195-0.195,0.512-0.195,0.707,0l0.707,0.707c0.195,0.195,0.195,0.512,0,0.707l-4,4 C27.658,35.049,27.342,35.049,27.146,34.854z"/></svg>

Before

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><linearGradient id="ptXxEfJsTjPufOlJHBLyia" x1="13.48" x2="31.634" y1="106.407" y2="80.147" gradientTransform="matrix(1 0 0 -1 0 118)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#7dd8f3"/><stop offset="1" stop-color="#45b0d0"/></linearGradient><path fill="url(#ptXxEfJsTjPufOlJHBLyia)" d="M4,38V15h40v23c0,1.1-0.9,2-2,2H6C4.9,40,4,39.1,4,38z"/><linearGradient id="ptXxEfJsTjPufOlJHBLyib" x1="4.614" x2="42.936" y1="110.259" y2="102.467" gradientTransform="matrix(1 0 0 -1 0 118)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#0077d2"/><stop offset="1" stop-color="#0b59a2"/></linearGradient><path fill="url(#ptXxEfJsTjPufOlJHBLyib)" d="M44,10v5H4v-5c0-1.1,0.9-2,2-2h36C43.1,8,44,8.9,44,10z"/><linearGradient id="ptXxEfJsTjPufOlJHBLyic" x1="33.751" x2="35.032" y1="107.584" y2="105.731" gradientTransform="matrix(1 0 0 -1 0 118)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#75daff"/><stop offset="1" stop-color="#49bef1"/></linearGradient><circle cx="34.5" cy="11.5" r="1.5" fill="url(#ptXxEfJsTjPufOlJHBLyic)"/><linearGradient id="ptXxEfJsTjPufOlJHBLyid" x1="28.751" x2="30.032" y1="107.584" y2="105.731" gradientTransform="matrix(1 0 0 -1 0 118)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#75daff"/><stop offset="1" stop-color="#49bef1"/></linearGradient><circle cx="29.5" cy="11.5" r="1.5" fill="url(#ptXxEfJsTjPufOlJHBLyid)"/><linearGradient id="ptXxEfJsTjPufOlJHBLyie" x1="38.751" x2="40.032" y1="107.584" y2="105.731" gradientTransform="matrix(1 0 0 -1 0 118)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#75daff"/><stop offset="1" stop-color="#49bef1"/></linearGradient><circle cx="39.5" cy="11.5" r="1.5" fill="url(#ptXxEfJsTjPufOlJHBLyie)"/></svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48px" height="48px"><linearGradient id="ldLw80Wb5w9tTRcKjgX8Ga" x1="2.252" x2="34.131" y1="12.996" y2="42.423" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#0077d2"/><stop offset="1" stop-color="#0b59a2"/></linearGradient><path fill="url(#ldLw80Wb5w9tTRcKjgX8Ga)" d="M23.008,22.387L6.256,31.181c-1.523,0.8-1.523,2.98,0,3.779l16.752,8.795 c0.621,0.326,1.363,0.326,1.984,0l16.752-8.795c1.523-0.8,1.523-2.98,0-3.779l-16.752-8.795 C24.371,22.06,23.629,22.06,23.008,22.387z"/><path d="M25.457,35.569L37.78,29.1l-12.787-6.713c-0.621-0.326-1.363-0.326-1.984,0L10.22,29.1l12.322,6.469 c0.447,0.235,0.952,0.36,1.458,0.36S25.011,35.805,25.457,35.569z" opacity=".05"/><path d="M25.225,35.127l12.017-6.309l-12.25-6.431c-0.621-0.326-1.363-0.326-1.984,0l-12.25,6.431 l12.017,6.309c0.376,0.198,0.8,0.303,1.225,0.303S24.849,35.325,25.225,35.127z" opacity=".07"/><linearGradient id="ldLw80Wb5w9tTRcKjgX8Gb" x1="6.773" x2="38.652" y1="8.098" y2="37.525" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#2aa4f4"/><stop offset="1" stop-color="#007ad9"/></linearGradient><path fill="url(#ldLw80Wb5w9tTRcKjgX8Gb)" d="M23.008,13.316L6.256,22.11c-1.523,0.8-1.523,2.98,0,3.779l16.752,8.795 c0.621,0.326,1.363,0.326,1.984,0l16.752-8.795c1.523-0.8,1.523-2.98,0-3.779l-16.752-8.795 C24.371,12.989,23.629,12.989,23.008,13.316z"/><path d="M25.457,26.498l12.322-6.469l-12.787-6.713c-0.621-0.326-1.363-0.326-1.984,0l-12.787,6.713 l12.321,6.469c0.447,0.235,0.952,0.36,1.458,0.36S25.011,26.733,25.457,26.498z" opacity=".05"/><path d="M25.225,26.056l12.017-6.309l-12.25-6.431c-0.621-0.326-1.363-0.326-1.984,0l-12.25,6.431 l12.017,6.309c0.376,0.198,0.8,0.303,1.225,0.303S24.849,26.254,25.225,26.056z" opacity=".07"/><linearGradient id="ldLw80Wb5w9tTRcKjgX8Gc" x1="11.294" x2="43.173" y1="3.201" y2="32.627" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#75daff"/><stop offset="1" stop-color="#1ea2e4"/></linearGradient><path fill="url(#ldLw80Wb5w9tTRcKjgX8Gc)" d="M23.008,4.245L6.256,13.039c-1.523,0.8-1.523,2.98,0,3.779l16.752,8.795 c0.621,0.326,1.363,0.326,1.984,0l16.752-8.795c1.523-0.8,1.523-2.98,0-3.779L24.992,4.245C24.371,3.918,23.629,3.918,23.008,4.245z"/></svg>

Before

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48px" height="48px"><linearGradient id="bwc2gTApiQRdrgZvACv8Ha" x1="24" x2="24" y1="6.708" y2="14.977" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#eba600"/><stop offset="1" stop-color="#c28200"/></linearGradient><path fill="url(#bwc2gTApiQRdrgZvACv8Ha)" d="M24.414,10.414l-2.536-2.536C21.316,7.316,20.553,7,19.757,7L5,7C3.895,7,3,7.895,3,9l0,30 c0,1.105,0.895,2,2,2l38,0c1.105,0,2-0.895,2-2V13c0-1.105-0.895-2-2-2l-17.172,0C25.298,11,24.789,10.789,24.414,10.414z"/><linearGradient id="bwc2gTApiQRdrgZvACv8Hb" x1="24" x2="24" y1="10.854" y2="40.983" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffd869"/><stop offset="1" stop-color="#fec52b"/></linearGradient><path fill="url(#bwc2gTApiQRdrgZvACv8Hb)" d="M21.586,14.414l3.268-3.268C24.947,11.053,25.074,11,25.207,11H43c1.105,0,2,0.895,2,2v26 c0,1.105-0.895,2-2,2H5c-1.105,0-2-0.895-2-2V15.5C3,15.224,3.224,15,3.5,15h16.672C20.702,15,21.211,14.789,21.586,14.414z"/><path fill="#c28200" d="M36,11.5v1c0,0.276-0.224,0.5-0.5,0.5H34c-0.552,0-1-0.448-1-1c0-0.552,0.448-1,1-1h1.5 C35.776,11,36,11.224,36,11.5z M34,14c0-0.552-0.448-1-1-1h-1.5c-0.276,0-0.5,0.224-0.5,0.5v1c0,0.276,0.224,0.5,0.5,0.5H33 C33.552,15,34,14.552,34,14z M33,16c0,0.552,0.448,1,1,1h1.5c0.276,0,0.5-0.224,0.5-0.5v-1c0-0.276-0.224-0.5-0.5-0.5H34 C33.448,15,33,15.448,33,16z M34,18c0-0.552-0.448-1-1-1h-1.5c-0.276,0-0.5,0.224-0.5,0.5v1c0,0.276,0.224,0.5,0.5,0.5H33 C33.552,19,34,18.552,34,18z M33,20c0,0.552,0.448,1,1,1h1.5c0.276,0,0.5-0.224,0.5-0.5v-1c0-0.276-0.224-0.5-0.5-0.5H34 C33.448,19,33,19.448,33,20z M33,24c0,0.552,0.448,1,1,1h1.5c0.276,0,0.5-0.224,0.5-0.5v-1c0-0.276-0.224-0.5-0.5-0.5H34 C33.448,23,33,23.448,33,24z M34,22c0-0.552-0.448-1-1-1h-1.5c-0.276,0-0.5,0.224-0.5,0.5v1c0,0.276,0.224,0.5,0.5,0.5H33 C33.552,23,34,22.552,34,22z"/><linearGradient id="bwc2gTApiQRdrgZvACv8Hc" x1="33.5" x2="33.5" y1="25.944" y2="37.581" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#4b4b4b"/><stop offset="1" stop-color="#3b3b3b"/></linearGradient><path fill="url(#bwc2gTApiQRdrgZvACv8Hc)" d="M36.128,26.848C36.055,26.358,35.635,26,35.139,26h-3.279c-0.495,0-0.915,0.358-0.988,0.848 C30.603,28.65,30,32.761,30,33.5c0,1.933,1.567,3.5,3.5,3.5s3.5-1.567,3.5-3.5C37,32.761,36.397,28.65,36.128,26.848z M33.5,35 c-0.828,0-1.5-0.672-1.5-1.5s0.672-1.5,1.5-1.5s1.5,0.672,1.5,1.5S34.328,35,33.5,35z"/></svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="500px" height="500px"><linearGradient id="pt4CkO_jh7peTyLO1Gp1ka" x1="16.86" x2="29.576" y1="-427.533" y2="-467.546" gradientTransform="matrix(1 0 0 -1 0 -426)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#c77740"/><stop offset="1" stop-color="#b0622b"/></linearGradient><path fill="url(#pt4CkO_jh7peTyLO1Gp1ka)" d="M38,4H26c0,1.105-0.895,2-2,2s-2-0.895-2-2H10C8.895,4,8,4.895,8,6v36c0,1.105,0.895,2,2,2h28 c1.105,0,2-0.895,2-2V6C40,4.895,39.105,4,38,4z"/><linearGradient id="pt4CkO_jh7peTyLO1Gp1kb" x1="24" x2="24" y1="-462.966" y2="-466.893" gradientTransform="matrix(1 0 0 -1 0 -426)" gradientUnits="userSpaceOnUse"><stop offset=".442" stop-color="#878786"/><stop offset=".594" stop-color="#9f9f9e"/><stop offset=".859" stop-color="#c3c3c3"/><stop offset="1" stop-color="#d1d1d1"/></linearGradient><path fill="url(#pt4CkO_jh7peTyLO1Gp1kb)" d="M37,42H11c-0.552,0-1-0.448-1-1v-9h28v9C38,41.552,37.552,42,37,42z"/><path fill="#f3f3f3" d="M37,40H11c-0.552,0-1-0.448-1-1V7c0-0.552,0.448-1,1-1h26c0.552,0,1,0.448,1,1v32 C38,39.552,37.552,40,37,40z"/><linearGradient id="pt4CkO_jh7peTyLO1Gp1kc" x1="-42.93" x2="-41.046" y1="860.928" y2="853.091" gradientTransform="matrix(-1 0 0 1 -18 -851)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#c3cdd9"/><stop offset="1" stop-color="#9fa7b0"/></linearGradient><path fill="url(#pt4CkO_jh7peTyLO1Gp1kc)" d="M31,8V4h-4.184C26.403,2.837,25.304,2,24,2s-2.403,0.837-2.816,2H17v4c0,0.552,0.448,1,1,1h12 C30.552,9,31,8.552,31,8z M24,4c0.552,0,1,0.448,1,1s-0.448,1-1,1s-1-0.448-1-1S23.448,4,24,4z"/><path fill="#21a366" d="M21.49,31.771l-6.261-6.261c-0.306-0.306-0.306-0.801,0-1.107l1.107-1.107 c0.306-0.306,0.801-0.306,1.107,0l4.601,4.601l8.514-8.514c0.306-0.306,0.801-0.306,1.107,0l1.107,1.107 c0.306,0.306,0.306,0.801,0,1.107L22.597,31.771C22.291,32.076,21.796,32.076,21.49,31.771z"/></svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><linearGradient id="BJ7PJpP_dxRTT6N0zfZroa" x1="18.229" x2="29.223" y1="4.978" y2="41.216" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#0077d2"/><stop offset="1" stop-color="#0b59a2"/></linearGradient><path fill="url(#BJ7PJpP_dxRTT6N0zfZroa)" d="M40,42H8c-1.1,0-2-0.9-2-2V8c0-1.1,0.9-2,2-2h32c1.1,0,2,0.9,2,2v32C42,41.1,41.1,42,40,42z"/><path d="M38.521,20.519c-0.169-0.864-0.921-1.511-1.802-1.513c-0.934-0.002-1.603-0.173-2.262-1.316 c-0.644-1.115-0.457-1.785-0.02-2.606c0.398-0.746,0.217-1.684-0.42-2.24c-1.4-1.221-3.22-2.428-5.62-3.188 c-0.801-0.254-1.702,0.044-2.154,0.753c-0.491,0.769-0.964,1.243-2.243,1.243s-1.751-0.474-2.243-1.243 c-0.461-0.722-1.339-1.052-2.153-0.786c-1.921,0.628-4.062,1.887-5.584,3.169c-0.664,0.559-0.873,1.514-0.463,2.28 c0.442,0.826,0.633,1.497-0.014,2.617c-0.66,1.143-1.328,1.314-2.262,1.316c-0.88,0.002-1.633,0.649-1.802,1.513 C9.238,21.753,9,23.236,9,24.06c0,0.578,0.149,1.741,0.305,2.777c0.141,0.936,0.963,1.627,1.909,1.596 c0.937-0.031,1.633,0.132,2.292,1.273c0.736,1.274,0.46,2.026-0.144,2.94c-0.512,0.776-0.378,1.81,0.308,2.437 c1.564,1.427,3.688,2.533,5.576,3.224c0.899,0.329,1.928-0.042,2.347-0.903c0.475-0.978,1-1.601,2.459-1.601 c1.444,0,1.923,0.611,2.363,1.571c0.407,0.889,1.454,1.267,2.372,0.932c1.77-0.645,3.617-1.658,5.468-3.296 c0.705-0.624,0.817-1.682,0.297-2.467c-0.56-0.846-0.8-1.558-0.096-2.778c0.669-1.159,1.393-1.336,2.363-1.316 c0.933,0.019,1.733-0.673,1.873-1.596C38.85,25.813,39,24.641,39,24.06C39,23.236,38.762,21.753,38.521,20.519z" opacity=".05"/><path d="M37.56,20.673c-0.085-0.407-0.435-0.702-0.85-0.728c-1.329-0.083-2.35-0.425-3.119-1.756 c-0.74-1.281-0.55-2.315-0.02-3.485c0.165-0.364,0.085-0.8-0.214-1.066c-1.368-1.213-3.111-2.357-5.346-3.022 c-0.37-0.11-0.777,0.039-1.005,0.35c-0.751,1.026-1.539,1.684-3.006,1.684c-1.475,0-2.263-0.665-3.017-1.699 c-0.222-0.305-0.612-0.458-0.975-0.353c-1.883,0.544-3.958,1.765-5.381,3.04c-0.294,0.263-0.366,0.696-0.203,1.055 c0.534,1.174,0.727,2.211-0.015,3.496c-0.768,1.331-1.79,1.673-3.119,1.756c-0.415,0.026-0.765,0.321-0.85,0.728 C10.219,21.739,10,23.13,10,24.056c0,0.672,0.14,1.793,0.278,2.672c0.069,0.442,0.444,0.767,0.891,0.781 c1.363,0.044,2.436,0.365,3.222,1.726c0.833,1.443,0.541,2.615-0.197,3.882c-0.205,0.352-0.165,0.81,0.125,1.097 c1.444,1.426,3.49,2.515,5.324,3.149c0.43,0.149,0.903-0.026,1.125-0.423c0.715-1.281,1.59-2.137,3.259-2.137 c1.668,0,2.505,0.855,3.208,2.134c0.221,0.401,0.699,0.574,1.132,0.426c1.775-0.607,3.556-1.583,5.254-3.143 c0.316-0.29,0.377-0.773,0.161-1.144c-0.724-1.245-1.014-2.385-0.19-3.811c0.786-1.362,1.874-1.703,3.244-1.753 c0.445-0.016,0.818-0.341,0.887-0.781C37.86,25.851,38,24.729,38,24.056C38,23.13,37.781,21.739,37.56,20.673z" opacity=".07"/><linearGradient id="BJ7PJpP_dxRTT6N0zfZrob" x1="29.208" x2="18.723" y1="29.26" y2="18.774" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset=".242" stop-color="#f2f2f2"/><stop offset="1" stop-color="#ccc"/></linearGradient><circle cx="24" cy="24.052" r="7.475" fill="url(#BJ7PJpP_dxRTT6N0zfZrob)"/><linearGradient id="BJ7PJpP_dxRTT6N0zfZroc" x1="19.742" x2="27.211" y1="19.794" y2="27.263" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#0d61a9"/><stop offset=".363" stop-color="#0e5fa4"/><stop offset=".78" stop-color="#135796"/><stop offset="1" stop-color="#16528c"/></linearGradient><circle cx="24" cy="24.052" r="4.55" fill="url(#BJ7PJpP_dxRTT6N0zfZroc)"/><linearGradient id="BJ7PJpP_dxRTT6N0zfZrod" x1="11.862" x2="33.153" y1="11.925" y2="33.217" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#b1bbc4"/><stop offset=".28" stop-color="#adb7c1"/><stop offset=".566" stop-color="#a1adb8"/><stop offset=".854" stop-color="#8c9ba8"/><stop offset="1" stop-color="#7f909e"/></linearGradient><path fill="url(#BJ7PJpP_dxRTT6N0zfZrod)" d="M36.614,20.96c-1.553-0.019-3.056-0.828-3.889-2.27c-0.802-1.388-0.785-3.022-0.105-4.35 c-1.381-1.227-3.017-2.17-4.829-2.722c-0.815,1.226-2.208,2.035-3.79,2.035s-2.975-0.809-3.79-2.035 c-1.812,0.552-3.448,1.495-4.829,2.722c0.68,1.328,0.696,2.962-0.105,4.35c-0.833,1.442-2.336,2.251-3.889,2.27 C11.143,21.953,11,22.984,11,24.052c0,0.834,0.086,1.648,0.236,2.439c1.605-0.033,3.179,0.785,4.038,2.274 c0.889,1.541,0.771,3.383-0.143,4.775c1.353,1.266,2.973,2.246,4.771,2.844c0.735-1.526,2.291-2.581,4.097-2.581 s3.362,1.055,4.097,2.581c1.799-0.597,3.418-1.578,4.771-2.844c-0.914-1.392-1.032-3.234-0.143-4.775 c0.859-1.489,2.433-2.307,4.038-2.274C36.914,25.7,37,24.886,37,24.052C37,22.984,36.857,21.953,36.614,20.96z M24,30.877 c-3.769,0-6.825-3.056-6.825-6.825c0-3.769,3.056-6.825,6.825-6.825s6.825,3.056,6.825,6.825 C30.825,27.821,27.769,30.877,24,30.877z"/></svg>

Before

Width:  |  Height:  |  Size: 4.6 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><path fill="#FFCC80" d="M18.1,43.499c0,0-4.112,0.18-8.771-4.48c-4.66-4.659-4.481-8.772-4.481-8.772L30.592,4.501c0,0,4.111-0.181,8.771,4.48c4.66,4.66,4.481,8.772,4.481,8.772L18.1,43.499z"/><path fill="#FFA726" d="M25.193 31.949c-.763.76-1.997.76-2.758-.001l-5.727-5.728c-.762-.763-.762-1.996-.001-2.759l7.588-7.588c.761-.759 1.996-.76 2.757.003l5.688 5.688c.762.762.801 2.033.039 2.795L25.193 31.949zM13.4 27.929A1.5 1.5 0 1 0 13.4 30.929 1.5 1.5 0 1 0 13.4 27.929zM18.917 33.446A1.5 1.5 0 1 0 18.917 36.446 1.5 1.5 0 1 0 18.917 33.446zM14.46 36.007c-.585.586-1.538.587-2.12.001-.587-.586-.586-1.539 0-2.121.583-.586 1.535-.586 2.121 0C15.047 34.469 15.047 35.421 14.46 36.007zM35.468 16.895A1.5 1.5 0 1 0 35.468 19.895 1.5 1.5 0 1 0 35.468 16.895zM29.951 11.377A1.5 1.5 0 1 0 29.951 14.377 1.5 1.5 0 1 0 29.951 11.377zM35.469 11.377A1.5 1.5 0 1 0 35.469 14.377 1.5 1.5 0 1 0 35.469 11.377z"/></svg>

Before

Width:  |  Height:  |  Size: 988 B

View File

@@ -1,37 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 240 240" width="240px" height="240px">
<defs>
<linearGradient id="linear0" gradientUnits="userSpaceOnUse" x1="125.31633" y1="86.003578" x2="136.575165" y2="86.003578" gradientTransform="matrix(1.395349,0,0,1.395349,0,0)">
<stop offset="0.441" style="stop-color:rgb(60.000002%,60.000002%,59.607846%);stop-opacity:1;"/>
<stop offset="0.653" style="stop-color:rgb(75.686276%,75.686276%,75.294119%);stop-opacity:1;"/>
<stop offset="0.88" style="stop-color:rgb(89.803922%,89.803922%,89.803922%);stop-opacity:1;"/>
<stop offset="1" style="stop-color:rgb(95.294118%,95.294118%,95.294118%);stop-opacity:1;"/>
</linearGradient>
<linearGradient id="linear1" gradientUnits="userSpaceOnUse" x1="13.03617" y1="30.71633" x2="56.226082" y2="148.36792" gradientTransform="matrix(1.395349,0,0,1.395349,0,0)">
<stop offset="0" style="stop-color:rgb(0.392157%,46.27451%,81.568629%);stop-opacity:1;"/>
<stop offset="1" style="stop-color:rgb(8.627451%,32.549021%,54.901963%);stop-opacity:1;"/>
</linearGradient>
<linearGradient id="linear2" gradientUnits="userSpaceOnUse" x1="60.12833" y1="18.4685" x2="111.853752" y2="159.368744" gradientTransform="matrix(1.395349,0,0,1.395349,0,0)">
<stop offset="0" style="stop-color:rgb(20%,74.509805%,94.117647%);stop-opacity:1;"/>
<stop offset="1" style="stop-color:rgb(13.333334%,64.705884%,88.627452%);stop-opacity:1;"/>
</linearGradient>
<linearGradient id="linear3" gradientUnits="userSpaceOnUse" x1="86.958878" y1="113.534607" x2="129.435745" y2="169.903625" gradientTransform="matrix(1.395349,0,0,1.395349,0,0)">
<stop offset="0" style="stop-color:rgb(100%,85.490197%,10.980392%);stop-opacity:1;"/>
<stop offset="1" style="stop-color:rgb(99.607843%,71.764708%,1.960784%);stop-opacity:1;"/>
</linearGradient>
<radialGradient id="radial0" gradientUnits="userSpaceOnUse" cx="107.282867" cy="115.277298" fx="107.282867" fy="115.277298" r="40.329319" gradientTransform="matrix(1.395349,0,0,1.395349,0,0)">
<stop offset="0" style="stop-color:rgb(29.411766%,29.411766%,29.411766%);stop-opacity:1;"/>
<stop offset="0.531" style="stop-color:rgb(22.352941%,22.352941%,22.352941%);stop-opacity:1;"/>
<stop offset="1" style="stop-color:rgb(14.509805%,14.509805%,14.509805%);stop-opacity:1;"/>
</radialGradient>
</defs>
<g id="surface38862647">
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(9.019608%,51.372552%,74.117649%);fill-opacity:1;" d="M 205 30 L 205 210 C 205 215.523438 200.523438 220 195 220 L 170 220 L 170 20 L 195 20 C 200.523438 20 205 24.476562 205 30 Z M 205 30 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear0);" d="M 195 30 L 195 210 C 195 215.523438 190.523438 220 185 220 L 155 220 L 155 20 L 185 20 C 190.523438 20 195 24.476562 195 30 Z M 195 30 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear1);" d="M 35 30 L 35 210 C 35 215.523438 39.476562 220 45 220 L 55 220 L 55 20 L 45 20 C 39.476562 20 35 24.476562 35 30 Z M 35 30 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear2);" d="M 175 20 L 55 20 L 55 220 L 175 220 C 180.523438 220 185 215.523438 185 210 L 185 30 C 185 24.476562 180.523438 20 175 20 Z M 175 20 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(10.588235%,61.56863%,88.627452%);fill-opacity:1;" d="M 80 70 L 160 70 L 160 80 L 80 80 Z M 80 70 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear3);" d="M 215.820312 228.835938 L 112.898438 228.835938 C 108.171875 228.835938 105.28125 223.640625 107.777344 219.628906 L 159.238281 136.75 C 161.597656 132.949219 167.128906 132.949219 169.484375 136.75 L 220.945312 219.628906 C 223.4375 223.640625 220.546875 228.835938 215.820312 228.835938 Z M 215.820312 228.835938 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:url(#radial0);" d="M 164.394531 217.609375 C 162.582031 217.609375 161.082031 217.054688 159.902344 215.953125 C 158.722656 214.855469 158.132812 213.523438 158.132812 211.953125 C 158.132812 210.320312 158.726562 208.984375 159.917969 207.941406 C 161.109375 206.894531 162.601562 206.371094 164.394531 206.371094 C 166.207031 206.371094 167.695312 206.902344 168.851562 207.957031 C 170.007812 209.011719 170.585938 210.34375 170.585938 211.953125 C 170.585938 213.589844 170.011719 214.933594 168.867188 216.003906 C 167.722656 217.074219 166.230469 217.609375 164.394531 217.609375 Z M 170.640625 163.539062 L 169.289062 198.824219 C 169.25 199.90625 168.390625 200.753906 167.34375 200.753906 L 161.222656 200.753906 C 160.179688 200.753906 159.316406 199.902344 159.28125 198.816406 L 158 163.527344 C 157.957031 162.394531 158.847656 161.445312 159.949219 161.445312 L 168.695312 161.445312 C 169.796875 161.449219 170.679688 162.398438 170.640625 163.539062 Z M 170.640625 163.539062 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.7 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><linearGradient id="WWZG4nXidbdKz8SNbGF5Za" x1="6.414" x2="41.774" y1="13.662" y2="39.488" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#28afea"/><stop offset="1" stop-color="#047ed6"/></linearGradient><path fill="url(#WWZG4nXidbdKz8SNbGF5Za)" d="M6,40V12h36v28c0,1.1-0.9,2-2,2H8C6.9,42,6,41.1,6,40z"/><linearGradient id="WWZG4nXidbdKz8SNbGF5Zb" x1="6.42" x2="41.198" y1="6.608" y2="13.68" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#0077d2"/><stop offset="1" stop-color="#0b59a2"/></linearGradient><path fill="url(#WWZG4nXidbdKz8SNbGF5Zb)" d="M42,8v6H6V8c0-1.1,0.9-2,2-2h32C41.1,6,42,6.9,42,8z"/><path d="M35.5,12.5L35.5,12.5c-1.657,0-3-1.343-3-3V6h6v3.5C38.5,11.157,37.157,12.5,35.5,12.5z" opacity=".05"/><path d="M35.5,11.75L35.5,11.75c-1.243,0-2.25-1.007-2.25-2.25V6h4.5v3.5 C37.75,10.743,36.743,11.75,35.5,11.75z" opacity=".07"/><path d="M12.5,12.5L12.5,12.5c-1.657,0-3-1.343-3-3V6h6v3.5C15.5,11.157,14.157,12.5,12.5,12.5z" opacity=".05"/><path d="M12.5,11.75L12.5,11.75c-1.243,0-2.25-1.007-2.25-2.25V6h4.5v3.5 C14.75,10.743,13.743,11.75,12.5,11.75z" opacity=".07"/><path fill="#3ccbf4" d="M12.5,11L12.5,11c-0.828,0-1.5-0.672-1.5-1.5v-4C11,4.672,11.672,4,12.5,4h0 C13.328,4,14,4.672,14,5.5v4C14,10.328,13.328,11,12.5,11z"/><path fill="#fff" d="M38,19.5v3c0,0.276-0.224,0.5-0.5,0.5h-3c-0.276,0-0.5-0.224-0.5-0.5v-3c0-0.276,0.224-0.5,0.5-0.5h3 C37.776,19,38,19.224,38,19.5z M30,19.5v3c0,0.276-0.224,0.5-0.5,0.5h-3c-0.276,0-0.5-0.224-0.5-0.5v-3c0-0.276,0.224-0.5,0.5-0.5h3 C29.776,19,30,19.224,30,19.5z M22,19.5v3c0,0.276-0.224,0.5-0.5,0.5h-3c-0.276,0-0.5-0.224-0.5-0.5v-3c0-0.276,0.224-0.5,0.5-0.5h3 C21.776,19,22,19.224,22,19.5z"/><path fill="#fff" d="M38,26.5v3c0,0.276-0.224,0.5-0.5,0.5h-3c-0.276,0-0.5-0.224-0.5-0.5v-3c0-0.276,0.224-0.5,0.5-0.5h3 C37.776,26,38,26.224,38,26.5z M30,26.5v3c0,0.276-0.224,0.5-0.5,0.5h-3c-0.276,0-0.5-0.224-0.5-0.5v-3c0-0.276,0.224-0.5,0.5-0.5h3 C29.776,26,30,26.224,30,26.5z M22,26.5v3c0,0.276-0.224,0.5-0.5,0.5h-3c-0.276,0-0.5-0.224-0.5-0.5v-3c0-0.276,0.224-0.5,0.5-0.5h3 C21.776,26,22,26.224,22,26.5z M14,26.5v3c0,0.276-0.224,0.5-0.5,0.5h-3c-0.276,0-0.5-0.224-0.5-0.5v-3c0-0.276,0.224-0.5,0.5-0.5h3 C13.776,26,14,26.224,14,26.5z"/><path fill="#fff" d="M30,33.5v3c0,0.276-0.224,0.5-0.5,0.5h-3c-0.276,0-0.5-0.224-0.5-0.5v-3c0-0.276,0.224-0.5,0.5-0.5h3 C29.776,33,30,33.224,30,33.5z M22,33.5v3c0,0.276-0.224,0.5-0.5,0.5h-3c-0.276,0-0.5-0.224-0.5-0.5v-3c0-0.276,0.224-0.5,0.5-0.5h3 C21.776,33,22,33.224,22,33.5z M14,33.5v3c0,0.276-0.224,0.5-0.5,0.5h-3c-0.276,0-0.5-0.224-0.5-0.5v-3c0-0.276,0.224-0.5,0.5-0.5h3 C13.776,33,14,33.224,14,33.5z"/><path fill="#3ccbf4" d="M35.5,11L35.5,11c-0.828,0-1.5-0.672-1.5-1.5v-4C34,4.672,34.672,4,35.5,4l0,0 C36.328,4,37,4.672,37,5.5v4C37,10.328,36.328,11,35.5,11z"/></svg>

Before

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><linearGradient id="Lg5oDFfBe9GBWmpogOGYxa" x1="24" x2="24" y1="41.471" y2="35.867" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#0d61a9"/><stop offset="1" stop-color="#16528c"/></linearGradient><rect width="34" height="5" x="7" y="34" fill="url(#Lg5oDFfBe9GBWmpogOGYxa)"/><linearGradient id="Lg5oDFfBe9GBWmpogOGYxb" x1="24" x2="24" y1="9.441" y2="41.23" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#199ae0"/><stop offset="1" stop-color="#0782d8"/></linearGradient><path fill="url(#Lg5oDFfBe9GBWmpogOGYxb)" d="M42,10H6c-1.1,0-2,0.89-2,2v11v1v13c0,1.1,0.9,2,2,2h2.048c0.602,0,1.172-0.271,1.552-0.739 l1.449-1.784c0.76-0.935,1.9-1.478,3.104-1.478h19.692c1.204,0,2.345,0.543,3.104,1.478l1.449,1.784 C38.779,38.729,39.35,39,39.952,39H42c1.1,0,2-0.9,2-2V24v-1V12C44,10.89,43.1,10,42,10z"/><linearGradient id="Lg5oDFfBe9GBWmpogOGYxc" x1="24" x2="24" y1="19.191" y2="32.875" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f9f9f9"/><stop offset=".276" stop-color="#eff0f1"/><stop offset=".746" stop-color="#d3d8da"/><stop offset="1" stop-color="#c2c8cc"/></linearGradient><path fill="url(#Lg5oDFfBe9GBWmpogOGYxc)" d="M28,25c0,1.54,0.58,2.94,1.54,4H18.46c0.96-1.06,1.54-2.46,1.54-4c0-1.54-0.58-2.94-1.54-4 h11.08C28.58,22.06,28,23.46,28,25z"/><linearGradient id="Lg5oDFfBe9GBWmpogOGYxd" x1="14.5" x2="14.5" y1="19.677" y2="33.049" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#4c4c4c"/><stop offset="1" stop-color="#343434"/></linearGradient><path fill="url(#Lg5oDFfBe9GBWmpogOGYxd)" d="M20,25c0,1.54-0.58,2.94-1.54,4H13c-2.21,0-4-1.79-4-4c0-1.1,0.45-2.1,1.17-2.83 C10.9,21.45,11.9,21,13,21h5.46C19.42,22.06,20,23.46,20,25z"/><circle cx="14" cy="25" r="2" fill="#fff"/><linearGradient id="Lg5oDFfBe9GBWmpogOGYxe" x1="33.5" x2="33.5" y1="19.677" y2="33.049" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#4c4c4c"/><stop offset="1" stop-color="#343434"/></linearGradient><path fill="url(#Lg5oDFfBe9GBWmpogOGYxe)" d="M28,25c0,1.54,0.58,2.94,1.54,4H35c2.21,0,4-1.79,4-4c0-1.1-0.45-2.1-1.17-2.83 C37.1,21.45,36.1,21,35,21h-5.46C28.58,22.06,28,23.46,28,25z"/><circle cx="34" cy="25" r="2" fill="#fff"/><path fill="#35c1f1" d="M31.5,17h-15c-0.276,0-0.5-0.224-0.5-0.5v-3c0-0.276,0.224-0.5,0.5-0.5h15c0.276,0,0.5,0.224,0.5,0.5 v3C32,16.776,31.776,17,31.5,17z"/></svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -1,19 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 240 240" width="240px" height="240px">
<defs>
<linearGradient id="linear0" gradientUnits="userSpaceOnUse" x1="111.083328" y1="0.688" x2="111.083328" y2="122.18808" gradientTransform="matrix(1.395349,0,0,1.395349,0,0)">
<stop offset="0" style="stop-color:rgb(9.803922%,60.392159%,87.843138%);stop-opacity:1;"/>
<stop offset="1" style="stop-color:rgb(2.745098%,50.980395%,84.705883%);stop-opacity:1;"/>
</linearGradient>
<linearGradient id="linear1" gradientUnits="userSpaceOnUse" x1="106.45356" y1="100.643089" x2="157.129776" y2="151.318588" gradientTransform="matrix(4.999995,0,0,4.999995,0,0)">
<stop offset="0" style="stop-color:rgb(12.941177%,67.843139%,39.215687%);stop-opacity:1;"/>
<stop offset="1" style="stop-color:rgb(3.137255%,50.980395%,25.882354%);stop-opacity:1;"/>
</linearGradient>
</defs>
<g id="surface37834655">
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear0);" d="M 223.535156 41.464844 L 183.535156 1.464844 C 181.578125 -0.488281 178.421875 -0.488281 176.464844 1.464844 L 136.464844 41.464844 C 135.035156 42.894531 134.605469 45.046875 135.378906 46.914062 C 136.15625 48.78125 137.980469 50 140 50 L 155 50 L 155 120 L 85 120 L 85 170 L 195 170 C 200.523438 170 205 165.523438 205 160 L 205 50 L 220 50 C 222.019531 50 223.84375 48.78125 224.621094 46.914062 C 225.394531 45.046875 224.964844 42.894531 223.535156 41.464844 Z M 223.535156 41.464844 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(20%,80.000001%,100%);fill-opacity:1;" d="M 155 120 L 155 70 L 45 70 C 39.476562 70 35 74.476562 35 80 L 35 190 L 20 190 C 17.980469 190 16.15625 191.21875 15.378906 193.085938 C 14.605469 194.953125 15.035156 197.105469 16.464844 198.535156 L 56.464844 238.535156 C 58.421875 240.488281 61.578125 240.488281 63.535156 238.535156 L 103.535156 198.535156 C 104.964844 197.105469 105.394531 194.953125 104.621094 193.085938 C 103.84375 191.21875 102.019531 190 100 190 L 85 190 L 85 120 Z M 155 120 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear1);" d="M 233.894531 175.785156 C 233.894531 203.402344 211.507812 225.785156 183.894531 225.785156 C 156.28125 225.785156 133.894531 203.402344 133.894531 175.785156 C 133.894531 148.171875 156.28125 125.785156 183.894531 125.785156 C 211.507812 125.785156 233.894531 148.171875 233.894531 175.785156 Z M 233.894531 175.785156 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 177.125 197.558594 L 157.125 177.558594 C 156.148438 176.582031 156.148438 174.996094 157.125 174.023438 L 160.660156 170.488281 C 161.636719 169.511719 163.21875 169.511719 164.195312 170.488281 L 178.894531 185.183594 L 206.089844 157.988281 C 207.066406 157.011719 208.648438 157.011719 209.625 157.988281 L 213.160156 161.523438 C 214.136719 162.496094 214.136719 164.082031 213.160156 165.058594 L 180.660156 197.558594 C 179.683594 198.53125 178.101562 198.53125 177.125 197.558594 Z M 177.125 197.558594 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 240 240" width="240px" height="240px">
<defs>
<linearGradient id="linear0" gradientUnits="userSpaceOnUse" x1="111.083328" y1="0.688" x2="111.083328" y2="122.18808" gradientTransform="matrix(1.395349,0,0,1.395349,0,0)">
<stop offset="0" style="stop-color:rgb(9.803922%,60.392159%,87.843138%);stop-opacity:1;"/>
<stop offset="1" style="stop-color:rgb(2.745098%,50.980395%,84.705883%);stop-opacity:1;"/>
</linearGradient>
<linearGradient id="linear1" gradientUnits="userSpaceOnUse" x1="107.386658" y1="101.508461" x2="157.444031" y2="151.565842" gradientTransform="matrix(1.395349,0,0,1.395349,0,0)">
<stop offset="0" style="stop-color:rgb(95.686275%,30.980393%,35.294119%);stop-opacity:1;"/>
<stop offset="0.4429" style="stop-color:rgb(93.333334%,23.921569%,29.019609%);stop-opacity:1;"/>
<stop offset="1" style="stop-color:rgb(89.803922%,12.54902%,18.82353%);stop-opacity:1;"/>
</linearGradient>
</defs>
<g id="surface32289518">
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear0);" d="M 223.535156 41.464844 L 183.535156 1.464844 C 181.578125 -0.488281 178.421875 -0.488281 176.464844 1.464844 L 136.464844 41.464844 C 135.035156 42.894531 134.605469 45.046875 135.378906 46.914062 C 136.15625 48.78125 137.980469 50 140 50 L 155 50 L 155 120 L 85 120 L 85 170 L 195 170 C 200.523438 170 205 165.523438 205 160 L 205 50 L 220 50 C 222.019531 50 223.84375 48.78125 224.621094 46.914062 C 225.394531 45.046875 224.964844 42.894531 223.535156 41.464844 Z M 223.535156 41.464844 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(20%,80.000001%,100%);fill-opacity:1;" d="M 155 120 L 155 70 L 45 70 C 39.476562 70 35 74.476562 35 80 L 35 190 L 20 190 C 17.980469 190 16.15625 191.21875 15.378906 193.085938 C 14.605469 194.953125 15.035156 197.105469 16.464844 198.535156 L 56.464844 238.535156 C 58.421875 240.488281 61.578125 240.488281 63.535156 238.535156 L 103.535156 198.535156 C 104.964844 197.105469 105.394531 194.953125 104.621094 193.085938 C 103.84375 191.21875 102.019531 190 100 190 L 85 190 L 85 120 Z M 155 120 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear1);" d="M 233.894531 175.789062 C 233.894531 203.289062 211.394531 225.789062 183.894531 225.789062 C 156.394531 225.789062 133.894531 203.289062 133.894531 175.789062 C 133.894531 148.289062 156.394531 125.789062 183.894531 125.789062 C 211.394531 125.789062 233.894531 147.789062 233.894531 175.789062 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 183.933594 204.789062 C 181.742188 204.789062 179.925781 204.121094 178.5 202.792969 C 177.070312 201.460938 176.359375 199.847656 176.359375 197.953125 C 176.359375 195.976562 177.082031 194.355469 178.519531 193.09375 C 179.960938 191.828125 181.765625 191.195312 183.933594 191.195312 C 186.128906 191.195312 187.929688 191.835938 189.332031 193.113281 C 190.730469 194.386719 191.429688 196.003906 191.429688 197.953125 C 191.429688 199.925781 190.734375 201.5625 189.351562 202.851562 C 187.964844 204.140625 186.160156 204.789062 183.933594 204.789062 Z M 190.605469 146.953125 L 189.164062 183.476562 C 189.121094 184.59375 188.207031 185.476562 187.085938 185.476562 L 180.546875 185.476562 C 179.425781 185.476562 178.503906 184.59375 178.464844 183.472656 L 177.101562 146.945312 C 177.054688 145.765625 178 144.789062 179.179688 144.789062 L 188.523438 144.789062 C 189.707031 144.789062 190.648438 145.765625 190.605469 146.953125 Z M 190.605469 146.953125 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -1,19 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 240 240" width="240px" height="240px">
<defs>
<linearGradient id="linear0" gradientUnits="userSpaceOnUse" x1="111.083328" y1="0.688" x2="111.083328" y2="122.18808" gradientTransform="matrix(1.395349,0,0,1.395349,0,0)">
<stop offset="0" style="stop-color:rgb(9.803922%,60.392159%,87.843138%);stop-opacity:1;"/>
<stop offset="1" style="stop-color:rgb(2.745098%,50.980395%,84.705883%);stop-opacity:1;"/>
</linearGradient>
<linearGradient id="linear1" gradientUnits="userSpaceOnUse" x1="106.454277" y1="100.64344" x2="157.129059" y2="151.318237" gradientTransform="matrix(1.395349,0,0,1.395349,0,0)">
<stop offset="0" style="stop-color:rgb(65.882355%,30.980393%,81.176472%);stop-opacity:1;"/>
<stop offset="1" style="stop-color:rgb(46.27451%,8.235294%,70.980394%);stop-opacity:1;"/>
</linearGradient>
</defs>
<g id="surface37841275">
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear0);" d="M 223.535156 41.464844 L 183.535156 1.464844 C 181.578125 -0.488281 178.421875 -0.488281 176.464844 1.464844 L 136.464844 41.464844 C 135.035156 42.894531 134.605469 45.046875 135.378906 46.914062 C 136.15625 48.78125 137.980469 50 140 50 L 155 50 L 155 120 L 85 120 L 85 170 L 195 170 C 200.523438 170 205 165.523438 205 160 L 205 50 L 220 50 C 222.019531 50 223.84375 48.78125 224.621094 46.914062 C 225.394531 45.046875 224.964844 42.894531 223.535156 41.464844 Z M 223.535156 41.464844 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(20%,80.000001%,100%);fill-opacity:1;" d="M 155 120 L 155 70 L 45 70 C 39.476562 70 35 74.476562 35 80 L 35 190 L 20 190 C 17.980469 190 16.15625 191.21875 15.378906 193.085938 C 14.605469 194.953125 15.035156 197.105469 16.464844 198.535156 L 56.464844 238.535156 C 58.421875 240.488281 61.578125 240.488281 63.535156 238.535156 L 103.535156 198.535156 C 104.964844 197.105469 105.394531 194.953125 104.621094 193.085938 C 103.84375 191.21875 102.019531 190 100 190 L 85 190 L 85 120 Z M 155 120 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear1);" d="M 233.894531 175.789062 C 233.894531 203.398438 211.503906 225.789062 183.894531 225.789062 C 156.285156 225.789062 133.894531 203.398438 133.894531 175.789062 C 133.894531 148.175781 156.28125 125.789062 183.894531 125.789062 C 211.511719 125.789062 233.894531 148.171875 233.894531 175.789062 Z M 233.894531 175.789062 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 183.894531 153.847656 L 183.894531 165.789062 L 163.894531 165.789062 C 161.136719 165.789062 158.894531 168.027344 158.894531 170.789062 L 158.894531 180.789062 C 158.894531 183.546875 161.136719 185.789062 163.894531 185.789062 L 183.894531 185.789062 L 183.894531 197.726562 C 183.894531 199.882812 186.441406 201.027344 188.054688 199.597656 L 211.945312 178.40625 C 213.515625 177.011719 213.515625 174.5625 211.945312 173.171875 L 188.054688 151.980469 C 186.441406 150.546875 183.894531 151.691406 183.894531 153.847656 Z M 183.894531 153.847656 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -1,44 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 240 240" width="240px" height="240px">
<defs>
<linearGradient id="linear0" gradientUnits="userSpaceOnUse" x1="111.083328" y1="0.688" x2="111.083328" y2="122.18808" gradientTransform="matrix(1.395349,0,0,1.395349,0,0)">
<stop offset="0" style="stop-color:rgb(9.803922%,60.392159%,87.843138%);stop-opacity:1;"/>
<stop offset="1" style="stop-color:rgb(2.745098%,50.980395%,84.705883%);stop-opacity:1;"/>
</linearGradient>
<linearGradient id="linear1" gradientUnits="userSpaceOnUse" x1="106.45356" y1="100.644157" x2="157.129776" y2="151.320374" gradientTransform="matrix(4.999995,0,0,4.999995,0,0)">
<stop offset="0" style="stop-color:rgb(53.333336%,56.470591%,59.215689%);stop-opacity:1;"/>
<stop offset="1" style="stop-color:rgb(39.215687%,44.313726%,48.627451%);stop-opacity:1;"/>
</linearGradient>
<filter id="alpha" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
<feColorMatrix type="matrix" in="SourceGraphic" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
</filter>
<mask id="mask0">
<g filter="url(#alpha)">
<rect x="0" y="0" width="240" height="240" style="fill:rgb(0%,0%,0%);fill-opacity:0.15;stroke:none;"/>
</g>
</mask>
<image id="image38921037" width="240" height="240" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPAAAADwCAYAAAA+VemSAAAABmJLR0QA/wD/AP+gvaeTAAAA9UlEQVR4nO3BAQEAAACCIP+vbkhAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBohR0AAXbPpmUAAAAASUVORK5CYII="/>
<radialGradient id="radial0" gradientUnits="userSpaceOnUse" cx="131.606766" cy="98.094261" fx="131.606766" fy="98.094261" r="63.62244" gradientTransform="matrix(4.999995,0,0,4.999995,0,0)">
<stop offset="0" style="stop-color:rgb(98.039216%,98.039216%,98.431373%);stop-opacity:1;"/>
<stop offset="1" style="stop-color:rgb(78.431374%,80.392158%,81.960785%);stop-opacity:1;"/>
</radialGradient>
<linearGradient id="linear2" gradientUnits="userSpaceOnUse" x1="127.419281" y1="101.866791" x2="136.164047" y2="101.866791" gradientTransform="matrix(1.395349,0,0,1.395349,0,0)">
<stop offset="0" style="stop-color:rgb(11.372549%,34.901962%,70.19608%);stop-opacity:1;"/>
<stop offset="1" style="stop-color:rgb(9.803922%,35.686275%,73.725492%);stop-opacity:1;"/>
</linearGradient>
<linearGradient id="linear3" gradientUnits="userSpaceOnUse" x1="119.679031" y1="107.791702" x2="124.386467" y2="131.063614" gradientTransform="matrix(1.395349,0,0,1.395349,0,0)">
<stop offset="0" style="stop-color:rgb(53.333336%,56.470591%,59.215689%);stop-opacity:1;"/>
<stop offset="1" style="stop-color:rgb(26.666668%,30.19608%,32.941177%);stop-opacity:1;"/>
</linearGradient>
</defs>
<g id="surface38921033">
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear0);" d="M 223.535156 41.464844 L 183.535156 1.464844 C 181.578125 -0.488281 178.421875 -0.488281 176.464844 1.464844 L 136.464844 41.464844 C 135.035156 42.894531 134.605469 45.046875 135.378906 46.914062 C 136.15625 48.78125 137.980469 50 140 50 L 155 50 L 155 120 L 85 120 L 85 170 L 195 170 C 200.523438 170 205 165.523438 205 160 L 205 50 L 220 50 C 222.019531 50 223.84375 48.78125 224.621094 46.914062 C 225.394531 45.046875 224.964844 42.894531 223.535156 41.464844 Z M 223.535156 41.464844 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(20%,80.000001%,100%);fill-opacity:1;" d="M 155 120 L 155 70 L 45 70 C 39.476562 70 35 74.476562 35 80 L 35 190 L 20 190 C 17.980469 190 16.15625 191.21875 15.378906 193.085938 C 14.605469 194.953125 15.035156 197.105469 16.464844 198.535156 L 56.464844 238.535156 C 58.421875 240.488281 61.578125 240.488281 63.535156 238.535156 L 103.535156 198.535156 C 104.964844 197.105469 105.394531 194.953125 104.621094 193.085938 C 103.84375 191.21875 102.019531 190 100 190 L 85 190 L 85 120 Z M 155 120 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear1);" d="M 233.894531 175.785156 C 233.894531 203.402344 211.507812 225.785156 183.894531 225.785156 C 156.28125 225.785156 133.894531 203.402344 133.894531 175.785156 C 133.894531 148.171875 156.28125 125.785156 183.894531 125.785156 C 211.507812 125.785156 233.894531 148.171875 233.894531 175.785156 Z M 233.894531 175.785156 "/>
<use xlink:href="#image38921037" mask="url(#mask0)"/>
<path style=" stroke:none;fill-rule:nonzero;fill:url(#radial0);" d="M 223.730469 175.785156 C 223.730469 197.789062 205.894531 215.621094 183.894531 215.621094 C 161.894531 215.621094 144.058594 197.789062 144.058594 175.785156 C 144.058594 153.785156 161.894531 135.953125 183.894531 135.953125 C 205.894531 135.953125 223.730469 153.785156 223.730469 175.785156 Z M 223.730469 175.785156 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(43.137255%,92.156863%,100%);fill-opacity:1;" d="M 183.894531 135.953125 L 183.894531 175.800781 L 150.695312 153.851562 C 150.695312 153.800781 150.695312 153.703125 150.746094 153.652344 C 150.695312 153.601562 150.695312 153.601562 150.746094 153.601562 C 157.894531 142.953125 170.09375 135.953125 183.894531 135.953125 Z M 183.894531 135.953125 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear2);" d="M 190.09375 136.503906 L 183.894531 148.300781 L 177.695312 136.503906 C 181.796875 135.800781 185.996094 135.800781 190.09375 136.503906 Z M 190.09375 136.503906 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear3);" d="M 188.019531 178.523438 C 186.460938 180.882812 183.519531 181.476562 181.160156 179.917969 C 178.800781 178.355469 150.671875 153.8125 150.671875 153.8125 C 150.671875 153.8125 184.265625 170.101562 186.625 171.664062 C 188.984375 173.222656 189.582031 176.164062 188.019531 178.523438 Z M 188.019531 178.523438 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.9 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><linearGradient id="fHH1575ypYIq9ckEi_Imra" x1="31" x2="31" y1=".192" y2="34.099" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#199ae0"/><stop offset="1" stop-color="#0782d8"/></linearGradient><path fill="url(#fHH1575ypYIq9ckEi_Imra)" d="M44.707,8.293l-8-8c-0.391-0.391-1.023-0.391-1.414,0l-8,8 c-0.286,0.286-0.372,0.716-0.217,1.09C27.231,9.756,27.596,10,28,10h3v14H17v10h22c1.105,0,2-0.895,2-2V10h3 c0.404,0,0.769-0.244,0.924-0.617C45.079,9.009,44.993,8.579,44.707,8.293z"/><path fill="#3cf" d="M31,24V14H9c-1.105,0-2,0.895-2,2v22H4c-0.404,0-0.769,0.244-0.924,0.617 c-0.155,0.374-0.069,0.804,0.217,1.09l8,8c0.391,0.391,1.023,0.391,1.414,0l8-8c0.286-0.286,0.372-0.716,0.217-1.09 C20.769,38.244,20.404,38,20,38h-3V24H31z"/></svg>

Before

Width:  |  Height:  |  Size: 833 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="500px" height="500px"><linearGradient id="HoiJCu43QtshzIrYCxOfCa" x1="21.241" x2="3.541" y1="39.241" y2="21.541" gradientUnits="userSpaceOnUse"><stop offset=".108" stop-color="#0d7044"/><stop offset=".433" stop-color="#11945a"/></linearGradient><path fill="url(#HoiJCu43QtshzIrYCxOfCa)" d="M16.599,41.42L1.58,26.401c-0.774-0.774-0.774-2.028,0-2.802l4.019-4.019 c0.774-0.774,2.028-0.774,2.802,0L23.42,34.599c0.774,0.774,0.774,2.028,0,2.802l-4.019,4.019 C18.627,42.193,17.373,42.193,16.599,41.42z"/><linearGradient id="HoiJCu43QtshzIrYCxOfCb" x1="-15.77" x2="26.403" y1="43.228" y2="43.228" gradientTransform="rotate(134.999 21.287 38.873)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#2ac782"/><stop offset="1" stop-color="#21b876"/></linearGradient><path fill="url(#HoiJCu43QtshzIrYCxOfCb)" d="M12.58,34.599L39.599,7.58c0.774-0.774,2.028-0.774,2.802,0l4.019,4.019 c0.774,0.774,0.774,2.028,0,2.802L19.401,41.42c-0.774,0.774-2.028,0.774-2.802,0l-4.019-4.019 C11.807,36.627,11.807,35.373,12.58,34.599z"/></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><path fill="#50e6ff" d="M39,16v25c0,1.105-0.895,2-2,2H11c-1.105,0-2-0.895-2-2V7c0-1.105,0.895-2,2-2h17L39,16z"/><linearGradient id="yQG7f8VwpLJvoA2grnf3Oa" x1="28.529" x2="33.6" y1="15.472" y2="10.4" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3079d6"/><stop offset="1" stop-color="#297cd2"/></linearGradient><path fill="url(#yQG7f8VwpLJvoA2grnf3Oa)" d="M28,5v9c0,1.105,0.895,2,2,2h9L28,5z"/><linearGradient id="yQG7f8VwpLJvoA2grnf3Ob" x1="21.312" x2="25.587" y1="23.547" y2="35.261" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#2aa4f4"/><stop offset="1" stop-color="#007ad9"/></linearGradient><path fill="url(#yQG7f8VwpLJvoA2grnf3Ob)" d="M29.236,26.074C28.209,24.241,26.251,23,24,23c-2.987,0-5.457,2.185-5.916,5.042 C16.349,28.25,15,29.71,15,31.5c0,1.933,1.567,3.5,3.5,3.5c0.901,0,9.253,0,10,0c2.485,0,4.5-2.015,4.5-4.5 C33,28.267,31.369,26.427,29.236,26.074z"/></svg>

Before

Width:  |  Height:  |  Size: 992 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><linearGradient id="5W~O5nGU7nOUp6vx_KxUVa" x1="24" x2="24" y1="5.834" y2="42.755" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fede00"/><stop offset="1" stop-color="#ffd000"/></linearGradient><path fill="url(#5W~O5nGU7nOUp6vx_KxUVa)" d="M24,40.869V28h-9.198c-1.308,0-2.176-1.356-1.628-2.544L21.85,6.659 C22.356,5.562,24,5.923,24,7.131V20h9.198c1.308,0,2.176,1.356,1.628,2.544L26.15,41.341C25.644,42.438,24,42.077,24,40.869z"/><line x1="43" x2="40" y1="24" y2="24" fill="none" stroke="#e36001" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/><line x1="8" x2="5" y1="24" y2="24" fill="none" stroke="#e36001" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/><line x1="37.435" x2="35.314" y1="10.565" y2="12.686" fill="none" stroke="#e36001" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/><line x1="12.686" x2="10.565" y1="35.314" y2="37.435" fill="none" stroke="#e36001" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/><line x1="37.435" x2="35.314" y1="37.435" y2="35.314" fill="none" stroke="#e36001" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/><line x1="12.686" x2="10.565" y1="12.686" y2="10.565" fill="none" stroke="#e36001" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2"/></svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><linearGradient id="t4bE4eYoXhY7BPNBuyOpta" x1="23" x2="23" y1="41.4" y2="8.382" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#199ae0"/><stop offset="1" stop-color="#0782d8"/></linearGradient><path fill="url(#t4bE4eYoXhY7BPNBuyOpta)" d="M36,6H10C8.895,6,8,6.895,8,8v32c0,1.105,0.895,2,2,2h26c1.105,0,2-0.895,2-2V8 C38,6.895,37.105,6,36,6z"/><linearGradient id="t4bE4eYoXhY7BPNBuyOptb" x1="20.5" x2="20.5" y1="6.145" y2="11.719" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#66d7ff"/><stop offset="1" stop-color="#42bcf1"/></linearGradient><path fill="url(#t4bE4eYoXhY7BPNBuyOptb)" d="M34,8v3c0,0.552-0.448,1-1,1H6c-0.552,0-1-0.448-1-1V8c0-1.105,0.895-2,2-2h29 C34.895,6,34,6.895,34,8z"/><path fill="#66d7ff" d="M32.5,23h-19c-0.276,0-0.5,0.224-0.5,0.5v2c0,0.276,0.224,0.5,0.5,0.5h19c0.276,0,0.5-0.224,0.5-0.5 v-2C33,23.224,32.776,23,32.5,23z"/><path fill="#66d7ff" d="M32.5,17h-19c-0.276,0-0.5,0.224-0.5,0.5v2c0,0.276,0.224,0.5,0.5,0.5h19c0.276,0,0.5-0.224,0.5-0.5 v-2C33,17.224,32.776,17,32.5,17z"/><linearGradient id="t4bE4eYoXhY7BPNBuyOptc" x1="28" x2="28" y1="35.433" y2="45.047" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#8c20e5"/><stop offset=".427" stop-color="#9e32eb"/><stop offset="1" stop-color="#bd4ff4"/></linearGradient><path fill="url(#t4bE4eYoXhY7BPNBuyOptc)" d="M30.223,44.915L28,43.433l-2.223,1.482C25.445,45.137,25,44.899,25,44.499v-9.066h6v9.066 C31,44.899,30.555,45.137,30.223,44.915z"/><linearGradient id="t4bE4eYoXhY7BPNBuyOptd" x1="25.458" x2="30.522" y1="29.582" y2="38.383" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffda1c"/><stop offset="1" stop-color="#feb705"/></linearGradient><path fill="url(#t4bE4eYoXhY7BPNBuyOptd)" d="M32.732,33.526l-0.35-0.21c-0.149-0.09-0.25-0.237-0.295-0.404 c-0.001-0.003-0.002-0.006-0.003-0.009c-0.047-0.169-0.033-0.349,0.053-0.502l0.198-0.357c0.203-0.365-0.057-0.814-0.474-0.821 l-0.412-0.007c-0.175-0.003-0.336-0.081-0.459-0.204c-0.001-0.002-0.002-0.003-0.004-0.004c-0.124-0.123-0.201-0.285-0.204-0.459 l-0.007-0.412c-0.007-0.417-0.456-0.676-0.821-0.474L29.6,29.863c-0.154,0.085-0.333,0.099-0.502,0.053 c-0.003-0.001-0.006-0.002-0.01-0.003c-0.168-0.046-0.315-0.146-0.404-0.295l-0.21-0.35c-0.215-0.358-0.733-0.358-0.948,0 l-0.209,0.348c-0.09,0.15-0.239,0.252-0.407,0.298c-0.002,0.001-0.003,0.001-0.005,0.002c-0.171,0.047-0.352,0.033-0.506-0.053 l-0.355-0.197c-0.365-0.203-0.814,0.057-0.821,0.474l-0.008,0.411c-0.003,0.174-0.081,0.336-0.204,0.459 c-0.002,0.001-0.003,0.003-0.004,0.004c-0.123,0.124-0.285,0.201-0.459,0.204l-0.412,0.007c-0.417,0.007-0.676,0.456-0.474,0.821 l0.198,0.357c0.085,0.154,0.099,0.333,0.053,0.502c-0.001,0.003-0.002,0.007-0.003,0.009c-0.046,0.168-0.147,0.315-0.295,0.404 l-0.35,0.21c-0.358,0.215-0.358,0.733,0,0.948l0.35,0.21c0.149,0.09,0.25,0.237,0.295,0.404c0.001,0.003,0.002,0.006,0.003,0.009 c0.047,0.169,0.033,0.349-0.053,0.502l-0.198,0.357c-0.203,0.365,0.057,0.814,0.474,0.821l0.412,0.007 c0.175,0.003,0.336,0.081,0.459,0.204c0.001,0.001,0.002,0.002,0.004,0.004c0.124,0.123,0.201,0.285,0.204,0.459l0.007,0.412 c0.007,0.417,0.456,0.676,0.821,0.474l0.357-0.198c0.154-0.085,0.333-0.099,0.502-0.053c0.003,0.001,0.007,0.001,0.01,0.002 c0.168,0.046,0.315,0.146,0.404,0.295l0.21,0.35c0.215,0.358,0.733,0.358,0.948,0l0.21-0.35c0.09-0.149,0.237-0.25,0.404-0.295 c0.003-0.001,0.007-0.001,0.01-0.002c0.169-0.047,0.349-0.033,0.502,0.053l0.357,0.198c0.365,0.203,0.814-0.057,0.821-0.474 l0.007-0.412c0.003-0.175,0.081-0.336,0.204-0.459c0.002-0.001,0.003-0.002,0.004-0.004c0.123-0.124,0.285-0.201,0.459-0.204 l0.412-0.007c0.417-0.007,0.676-0.456,0.474-0.821l-0.198-0.357c-0.085-0.154-0.099-0.333-0.053-0.502 c0.001-0.003,0.001-0.006,0.002-0.009c0.046-0.168,0.146-0.315,0.295-0.404l0.35-0.21C33.09,34.259,33.09,33.741,32.732,33.526z"/></svg>

Before

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><linearGradient id="jlYSOtDdslgAGokS0kAUha" x1="18.573" x2="29.735" y1="7.573" y2="18.735" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#32bdef"/><stop offset="1" stop-color="#1ea2e4"/></linearGradient><circle cx="24" cy="13" r="8" fill="url(#jlYSOtDdslgAGokS0kAUha)"/><linearGradient id="jlYSOtDdslgAGokS0kAUhb" x1="14.593" x2="33.266" y1="27.608" y2="46.281" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#32bdef"/><stop offset="1" stop-color="#1ea2e4"/></linearGradient><path fill="url(#jlYSOtDdslgAGokS0kAUhb)" d="M24,24c-7.732,0-14,6.268-14,14v3c0,1.105,0.895,2,2,2h24c1.105,0,2-0.895,2-2v-3 C38,30.268,31.732,24,24,24z"/></svg>

Before

Width:  |  Height:  |  Size: 752 B

View File

@@ -1,182 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 48 48"
width="240px"
height="240px"
version="1.1"
id="svg30"
sodipodi:docname="icons8-database-custom.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs34">
<linearGradient
id="aft_UDmLNVxsaRjydVUutb"
x1="27.35"
x2="42.650002"
y1="34.679001"
y2="34.679001"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.3921982,0,0,0.3921982,26.651246,26.195996)">
<stop
offset="0"
stop-color="#c965eb"
id="stop11-3" />
<stop
offset="1"
stop-color="#c767e5"
id="stop13" />
</linearGradient>
<linearGradient
id="aft_UDmLNVxsaRjydVUuta"
x1="28"
x2="42"
y1="13"
y2="13"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.3921982,0,0,0.3921982,26.651246,26.195996)">
<stop
offset="0"
stop-color="#42a3f2"
id="stop4-6" />
<stop
offset="1"
stop-color="#42a4eb"
id="stop6" />
</linearGradient>
</defs>
<sodipodi:namedview
id="namedview32"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="2.8416667"
inkscape:cx="120"
inkscape:cy="120"
inkscape:window-width="2560"
inkscape:window-height="1382"
inkscape:window-x="1920"
inkscape:window-y="314"
inkscape:window-maximized="1"
inkscape:current-layer="svg30" />
<linearGradient
id="LkaBH78Qy0LlLxZFYVKUda"
x1="8"
x2="40"
y1="35.5"
y2="35.5"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.91030302,0,0,0.91030302,1.9175758,0.4484849)">
<stop
offset="0"
stop-color="#11408a"
id="stop2" />
<stop
offset="1"
stop-color="#103f8f"
id="stop4" />
</linearGradient>
<path
fill="url(#LkaBH78Qy0LlLxZFYVKUda)"
d="M 38.329697,25.936969 H 9.2 c 0,0 0,9.349723 0,10.013334 0,2.010859 6.520501,3.641212 14.564848,3.641212 8.044348,0 14.564849,-1.630353 14.564849,-3.641212 0,-0.663611 0,-10.013334 0,-10.013334 z"
id="path7"
style="fill:url(#LkaBH78Qy0LlLxZFYVKUda);stroke-width:0.910303" />
<linearGradient
id="LkaBH78Qy0LlLxZFYVKUdb"
x1="8"
x2="40"
y1="25.5"
y2="25.5"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.91030302,0,0,0.91030302,1.9175758,0.4484849)">
<stop
offset="0"
stop-color="#1d59b3"
id="stop9" />
<stop
offset="1"
stop-color="#195bbc"
id="stop11" />
</linearGradient>
<path
fill="url(#LkaBH78Qy0LlLxZFYVKUdb)"
d="M 38.329697,16.833939 H 9.2 c 0,0 0,9.349723 0,10.013333 0,2.01086 6.520501,3.641213 14.564848,3.641213 8.044348,0 14.564849,-1.630353 14.564849,-3.641213 0,-0.66361 0,-10.013333 0,-10.013333 z"
id="path14"
style="fill:url(#LkaBH78Qy0LlLxZFYVKUdb);stroke-width:0.910303" />
<linearGradient
id="LkaBH78Qy0LlLxZFYVKUdc"
x1="8"
x2="40"
y1="15"
y2="15"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.91030302,0,0,0.91030302,1.9175758,0.4484849)">
<stop
offset="0"
stop-color="#3079d6"
id="stop16" />
<stop
offset="1"
stop-color="#297cd2"
id="stop18" />
</linearGradient>
<path
fill="url(#LkaBH78Qy0LlLxZFYVKUdc)"
d="M 38.329697,7.7309091 H 9.2 c 0,0 0,8.8809159 0,9.5581819 0,1.759616 6.520501,3.18606 14.564848,3.18606 8.044348,0 14.564849,-1.426444 14.564849,-3.18606 0,-0.677266 0,-9.5581819 0,-9.5581819 z"
id="path21"
style="fill:url(#LkaBH78Qy0LlLxZFYVKUdc);stroke-width:0.910303" />
<linearGradient
id="LkaBH78Qy0LlLxZFYVKUdd"
x1="8"
x2="40"
y1="8"
y2="8"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.91030302,0,0,0.91030302,1.9175758,0.4484849)">
<stop
offset="0"
stop-color="#42a3f2"
id="stop23" />
<stop
offset="1"
stop-color="#42a4eb"
id="stop25" />
</linearGradient>
<ellipse
cx="23.764847"
cy="7.7309089"
fill="url(#LkaBH78Qy0LlLxZFYVKUdd)"
rx="14.564848"
ry="2.7309091"
id="ellipse28"
style="fill:url(#LkaBH78Qy0LlLxZFYVKUdd);stroke-width:0.910303" />
<circle
cx="31.749821"
cy="31.294573"
r="2.7453873"
fill="#33c481"
id="circle2"
style="stroke-width:0.392198" />
<path
fill="url(#aft_UDmLNVxsaRjydVUuta)"
d="M 42.391337,34.03996 H 38.36503 c -0.404356,0 -0.732234,-0.327877 -0.732234,-0.732234 V 29.28142 c 0,-0.404357 0.327878,-0.732234 0.732234,-0.732234 h 4.026699 c 0.403964,0 0.731842,0.327877 0.731842,0.732234 v 4.026699 c 0,0.403964 -0.327878,0.731841 -0.732234,0.731841 z"
id="path9"
style="fill:url(#aft_UDmLNVxsaRjydVUuta);stroke-width:0.392198" />
<path
fill="url(#aft_UDmLNVxsaRjydVUutb)"
d="m 40.164043,36.995566 -2.635964,1.915104 c -0.127464,0.09256 -0.181195,0.257282 -0.132171,0.407102 l 1.006773,3.098758 c 0.04863,0.150212 0.188647,0.251791 0.346311,0.251791 h 3.258383 c 0.157663,0 0.297678,-0.101579 0.346311,-0.251791 l 1.006773,-3.098758 c 0.04863,-0.150212 -0.0047,-0.314543 -0.132171,-0.407102 l -2.635964,-1.915104 c -0.127857,-0.09295 -0.300424,-0.09295 -0.428281,0 z"
id="path16"
style="fill:url(#aft_UDmLNVxsaRjydVUutb);stroke-width:0.392198" />
<path
fill="#ed6c47"
d="m 31.245848,37.43875 -2.6995,4.685592 c -0.13923,0.241986 0.0353,0.543979 0.314543,0.543979 h 5.399 c 0.279246,0 0.453774,-0.301993 0.314151,-0.543979 l -2.6995,-4.685592 c -0.139623,-0.241986 -0.489071,-0.241986 -0.628694,0 z"
id="path18"
style="stroke-width:0.392198" />
</svg>

Before

Width:  |  Height:  |  Size: 6.0 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><linearGradient id="LkaBH78Qy0LlLxZFYVKUda" x1="8" x2="40" y1="35.5" y2="35.5" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#11408a"/><stop offset="1" stop-color="#103f8f"/></linearGradient><path fill="url(#LkaBH78Qy0LlLxZFYVKUda)" d="M40,28H8c0,0,0,10.271,0,11c0,2.209,7.163,4,16,4s16-1.791,16-4C40,38.271,40,28,40,28z"/><linearGradient id="LkaBH78Qy0LlLxZFYVKUdb" x1="8" x2="40" y1="25.5" y2="25.5" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#1d59b3"/><stop offset="1" stop-color="#195bbc"/></linearGradient><path fill="url(#LkaBH78Qy0LlLxZFYVKUdb)" d="M40,18H8c0,0,0,10.271,0,11c0,2.209,7.163,4,16,4s16-1.791,16-4C40,28.271,40,18,40,18z"/><linearGradient id="LkaBH78Qy0LlLxZFYVKUdc" x1="8" x2="40" y1="15" y2="15" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3079d6"/><stop offset="1" stop-color="#297cd2"/></linearGradient><path fill="url(#LkaBH78Qy0LlLxZFYVKUdc)" d="M40,8H8c0,0,0,9.756,0,10.5c0,1.933,7.163,3.5,16,3.5s16-1.567,16-3.5C40,17.756,40,8,40,8z"/><linearGradient id="LkaBH78Qy0LlLxZFYVKUdd" x1="8" x2="40" y1="8" y2="8" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#42a3f2"/><stop offset="1" stop-color="#42a4eb"/></linearGradient><ellipse cx="24" cy="8" fill="url(#LkaBH78Qy0LlLxZFYVKUdd)" rx="16" ry="3"/></svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="500px" height="500px"><linearGradient id="hbE9Evnj3wAjjA2RX0We2a" x1="7.534" x2="27.557" y1="7.534" y2="27.557" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f44f5a"/><stop offset=".443" stop-color="#ee3d4a"/><stop offset="1" stop-color="#e52030"/></linearGradient><path fill="url(#hbE9Evnj3wAjjA2RX0We2a)" d="M42.42,12.401c0.774-0.774,0.774-2.028,0-2.802L38.401,5.58c-0.774-0.774-2.028-0.774-2.802,0 L24,17.179L12.401,5.58c-0.774-0.774-2.028-0.774-2.802,0L5.58,9.599c-0.774,0.774-0.774,2.028,0,2.802L17.179,24L5.58,35.599 c-0.774,0.774-0.774,2.028,0,2.802l4.019,4.019c0.774,0.774,2.028,0.774,2.802,0L42.42,12.401z"/><linearGradient id="hbE9Evnj3wAjjA2RX0We2b" x1="27.373" x2="40.507" y1="27.373" y2="40.507" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#a8142e"/><stop offset=".179" stop-color="#ba1632"/><stop offset=".243" stop-color="#c21734"/></linearGradient><path fill="url(#hbE9Evnj3wAjjA2RX0We2b)" d="M24,30.821L35.599,42.42c0.774,0.774,2.028,0.774,2.802,0l4.019-4.019 c0.774-0.774,0.774-2.028,0-2.802L30.821,24L24,30.821z"/></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><rect width="28" height="12" x="10" y="31" fill="#038387"/><path fill="#1a9ba1" d="M14,11.824h20V8.312c0-0.883-0.579-1.662-1.425-1.916l-7.425-2.228c-0.75-0.225-1.549-0.225-2.299,0 l-7.425,2.228C14.579,6.65,14,7.429,14,8.312V11.824z"/><path fill="#1a9ba1" d="M10,12v19h28V12L24,8L10,12z"/><rect width="4" height="4" x="14" y="35" fill="#026063"/><rect width="4" height="4" x="30" y="35" fill="#026063"/><rect width="6" height="8" x="21" y="35" fill="#026063"/><rect width="4" height="4" x="14" y="23" fill="#027175"/><rect width="4" height="4" x="22" y="23" fill="#027175"/><rect width="4" height="4" x="30" y="23" fill="#027175"/><rect width="4" height="4" x="14" y="15" fill="#027175"/><rect width="4" height="4" x="22" y="15" fill="#027175"/><rect width="4" height="4" x="30" y="15" fill="#027175"/><path fill="#37c6d0" d="M38,13c-0.091,0-0.184-0.013-0.275-0.038L24,9.04l-13.725,3.922 c-0.531,0.146-1.085-0.156-1.236-0.688c-0.152-0.53,0.156-1.084,0.687-1.236l14-4c0.18-0.051,0.37-0.051,0.55,0l14,4 c0.531,0.152,0.838,0.706,0.687,1.236C38.836,12.714,38.436,13,38,13z"/></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><radialGradient id="JbJPDQpzlQgFl0pQhERgYa" cx="232.47" cy="544.051" r="86.245" gradientTransform="matrix(.8571 0 0 -1.0782 -150.815 667.5)" gradientUnits="userSpaceOnUse"><stop offset=".323" stop-color="#23d9d6"/><stop offset=".427" stop-color="#23d4d7"/><stop offset=".542" stop-color="#21c7dc"/><stop offset=".664" stop-color="#1fb0e2"/><stop offset=".789" stop-color="#1c91ec"/><stop offset=".917" stop-color="#1969f8"/><stop offset=".944" stop-color="#1860fb"/></radialGradient><path fill="url(#JbJPDQpzlQgFl0pQhERgYa)" d="M8,6h32c1.105,0,2,0.895,2,2v32c0,1.105-0.895,2-2,2H8c-1.105,0-2-0.895-2-2V8 C6,6.895,6.895,6,8,6z"/><path fill="#184f85" d="M42,40v-4H6v4c0,1.105,0.895,2,2,2h32C41.105,42,42,41.105,42,40z"/><path d="M8.5,41C7.673,41,7,40.327,7,39.5v-1C7,37.673,7.673,37,8.5,37h1 c0.827,0,1.5,0.673,1.5,1.5v1c0,0.827-0.673,1.5-1.5,1.5H8.5z" opacity=".05"/><path d="M8.5,40.5c-0.551,0-1-0.449-1-1v-1c0-0.551,0.449-1,1-1h1 c0.551,0,1,0.449,1,1v1c0,0.551-0.449,1-1,1H8.5z" opacity=".07"/><path fill="#fff" d="M9.5,40h-1C8.224,40,8,39.776,8,39.5v-1C8,38.224,8.224,38,8.5,38h1c0.276,0,0.5,0.224,0.5,0.5v1 C10,39.776,9.776,40,9.5,40z"/><path d="M10.5,15C9.673,15,9,14.327,9,13.5v-3C9,9.673,9.673,9,10.5,9h3 c0.827,0,1.5,0.673,1.5,1.5v3c0,0.827-0.673,1.5-1.5,1.5H10.5z" opacity=".05"/><path d="M10.5,14.5c-0.551,0-1-0.449-1-1v-3c0-0.551,0.449-1,1-1h3 c0.551,0,1,0.449,1,1v3c0,0.551-0.449,1-1,1H10.5z" opacity=".07"/><path fill="#fff" d="M13.5,14h-3c-0.276,0-0.5-0.224-0.5-0.5v-3c0-0.276,0.224-0.5,0.5-0.5h3c0.276,0,0.5,0.224,0.5,0.5v3 C14,13.776,13.776,14,13.5,14z"/><path d="M10.5,23C9.673,23,9,22.327,9,21.5v-3c0-0.827,0.673-1.5,1.5-1.5h3 c0.827,0,1.5,0.673,1.5,1.5v3c0,0.827-0.673,1.5-1.5,1.5H10.5z" opacity=".05"/><path d="M10.5,22.5c-0.551,0-1-0.449-1-1v-3c0-0.551,0.449-1,1-1h3 c0.551,0,1,0.449,1,1v3c0,0.551-0.449,1-1,1H10.5z" opacity=".07"/><path fill="#fff" d="M13.5,22h-3c-0.276,0-0.5-0.224-0.5-0.5v-3c0-0.276,0.224-0.5,0.5-0.5h3c0.276,0,0.5,0.224,0.5,0.5v3 C14,21.776,13.776,22,13.5,22z"/></svg>

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48px" height="48px"><linearGradient id="dXHSUfh5hrWnbqlt~U9wLa" x1="16.293" x2="29.836" y1="5.793" y2="19.336" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#33bef0"/><stop offset="1" stop-color="#0a85d9"/></linearGradient><path fill="url(#dXHSUfh5hrWnbqlt~U9wLa)" d="M33,6H10C8.895,6,8,6.895,8,8v1H5.369C4.864,9,4.611,9.611,4.968,9.968L8,13v1 c0,1.105,0.895,2,2,2h23c1.105,0,2-0.895,2-2V8C35,6.895,34.105,6,33,6z"/><linearGradient id="dXHSUfh5hrWnbqlt~U9wLb" x1="23.069" x2="33.24" y1="21.569" y2="31.74" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#33bef0"/><stop offset="1" stop-color="#0a85d9"/></linearGradient><path fill="url(#dXHSUfh5hrWnbqlt~U9wLb)" d="M37,19H14c-1.105,0-2,0.895-2,2v1H9.369c-0.505,0-0.758,0.611-0.401,0.968L12,26v1 c0,1.105,0.895,2,2,2h23c1.105,0,2-0.895,2-2v-6C39,19.895,38.105,19,37,19z"/><linearGradient id="dXHSUfh5hrWnbqlt~U9wLc" x1="26.867" x2="39.133" y1="34.367" y2="46.633" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#33bef0"/><stop offset="1" stop-color="#0a85d9"/></linearGradient><path fill="url(#dXHSUfh5hrWnbqlt~U9wLc)" d="M41,32H18c-1.105,0-2,0.895-2,2v1h-2.631c-0.505,0-0.758,0.611-0.401,0.968L16,39v1 c0,1.105,0.895,2,2,2h23c1.105,0,2-0.895,2-2v-6C43,32.895,42.105,32,41,32z"/></svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><path fill="#199be2" d="M36,17v25c0,1.105-0.895,2-2,2H10c-1.105,0-2-0.895-2-2V10c0-1.105,0.895-2,2-2h17L36,17z"/><path d="M10,8h26v34H13.681C11.648,42,10,40.352,10,38.319V8z" opacity=".05"/><path d="M11,8h25v33H13.839C12.271,41,11,39.729,11,38.161V8z" opacity=".07"/><path fill="#50e6ff" d="M40,14v24c0,1.105-0.895,2-2,2H14c-1.105,0-2-0.895-2-2V6c0-1.105,0.895-2,2-2h16L40,14z"/><linearGradient id="gNtEU9h_94d3wCVJt6bIwa" x1="30.534" x2="35.09" y1="13.466" y2="8.91" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3079d6"/><stop offset="1" stop-color="#297cd2"/></linearGradient><path fill="url(#gNtEU9h_94d3wCVJt6bIwa)" d="M30,4v8c0,1.105,0.895,2,2,2h8L30,4z"/><path fill="#057093" d="M33.317,20.934h-15c-0.276,0-0.5-0.224-0.5-0.5v-1c0-0.276,0.224-0.5,0.5-0.5h15 c0.276,0,0.5,0.224,0.5,0.5v1C33.817,20.71,33.593,20.934,33.317,20.934z"/><path fill="#057093" d="M33.317,24.934h-15c-0.276,0-0.5-0.224-0.5-0.5v-1c0-0.276,0.224-0.5,0.5-0.5h15 c0.276,0,0.5,0.224,0.5,0.5v1C33.817,24.71,33.593,24.934,33.317,24.934z"/><path fill="#057093" d="M33.317,28.934h-15c-0.276,0-0.5-0.224-0.5-0.5v-1c0-0.276,0.224-0.5,0.5-0.5h15 c0.276,0,0.5,0.224,0.5,0.5v1C33.817,28.71,33.593,28.934,33.317,28.934z"/><path fill="#057093" d="M29.317,32.934h-11c-0.276,0-0.5-0.224-0.5-0.5v-1c0-0.276,0.224-0.5,0.5-0.5h11 c0.276,0,0.5,0.224,0.5,0.5v1C29.817,32.71,29.593,32.934,29.317,32.934z"/></svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><linearGradient id="3teSTP118OpAn_tuH~zXqa" x1="26.763" x2="26.763" y1="38.698" y2="41.778" gradientTransform="rotate(45.001 26 25)" gradientUnits="userSpaceOnUse"><stop offset=".051" stop-color="#c1c6c9"/><stop offset=".206" stop-color="#c9cdcf"/><stop offset=".388" stop-color="#d8dadc"/><stop offset=".534" stop-color="#e1e2e4"/><stop offset=".859" stop-color="#e4e4e6"/></linearGradient><path fill="url(#3teSTP118OpAn_tuH~zXqa)" d="M16.868,45.11l-8.132-8.132c-1.172-1.172-1.172-3.071,0-4.243l12.021-12.021l1.414,1.414 L10.151,34.149c-0.391,0.391-0.391,1.024,0,1.414l8.132,8.132c0.195,0.195,0.195,0.512,0,0.707l-0.707,0.707 C17.38,45.305,17.064,45.305,16.868,45.11z"/><linearGradient id="3teSTP118OpAn_tuH~zXqb" x1="20.263" x2="20.263" y1="19.166" y2="31.678" gradientTransform="rotate(45.001 26 25)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#899198"/><stop offset="1" stop-color="#787e85"/></linearGradient><path fill="url(#3teSTP118OpAn_tuH~zXqb)" d="M18.636,10.108l-4.973,4.973c-0.432,0.432-0.643,1.038-0.572,1.645l0.819,7.04l5.21,5.21 l7.04,0.819c0.607,0.071,1.213-0.14,1.645-0.572l4.973-4.973L18.636,10.108z"/><linearGradient id="3teSTP118OpAn_tuH~zXqc" x1="20.263" x2="20.263" y1="39.719" y2="32.732" gradientTransform="rotate(45.001 26 25)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#737b80"/><stop offset="1" stop-color="#575c61"/></linearGradient><path fill="url(#3teSTP118OpAn_tuH~zXqc)" d="M13.463,31.805l-2.382-2.382c-0.781-0.781-0.781-2.047,0-2.828l2.828-2.828l5.21,5.21 l-2.828,2.828C15.51,32.586,14.244,32.586,13.463,31.805z"/><linearGradient id="3teSTP118OpAn_tuH~zXqd" x1="14.763" x2="14.763" y1="13.219" y2="15.678" gradientTransform="rotate(45.001 26 25)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#eba600"/><stop offset="1" stop-color="#c28200"/></linearGradient><path fill="url(#3teSTP118OpAn_tuH~zXqd)" d="M24.293,11.522l-0.707-0.707c-0.391-0.391-0.391-1.024,0-1.414l6.364-6.364 c0.391-0.391,1.024-0.391,1.414,0l0.707,0.707c0.391,0.391,0.391,1.024,0,1.414l-6.364,6.364 C25.317,11.913,24.683,11.913,24.293,11.522z"/><linearGradient id="3teSTP118OpAn_tuH~zXqe" x1="25.763" x2="25.763" y1="13.219" y2="15.678" gradientTransform="rotate(45.001 26 25)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#eba600"/><stop offset="1" stop-color="#c28200"/></linearGradient><path fill="url(#3teSTP118OpAn_tuH~zXqe)" d="M32.071,19.3l-0.707-0.707c-0.391-0.391-0.391-1.024,0-1.414l6.364-6.364 c0.391-0.391,1.024-0.391,1.414,0l0.707,0.707c0.391,0.391,0.391,1.024,0,1.414L33.485,19.3 C33.095,19.691,32.462,19.691,32.071,19.3z"/><path fill="#ccc" d="M32.778,24.25L18.636,10.108l2.121-2.121c0.391-0.391,1.024-0.391,1.414,0l12.728,12.728 c0.391,0.391,0.391,1.024,0,1.414L32.778,24.25z"/></svg>

Before

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><path fill="#37c6d0" d="M26.4512,37l7.77646-15.55291a1,1,0,0,0-.89435-1.44722L22.9512,19.99925l6.336-13.57635A1,1,0,0,0,28.381,5H22.59639a1,1,0,0,0-.91111.58783l-8.59524,19A1,1,0,0,0,14.00115,26h10.45l-5.5,11Z"/><path fill="#37c6d0" d="M16.22286,37H29.86471a.55735.55735,0,0,1,.35815,1L19.96,44.367a1.03364,1.03364,0,0,1-1.49121-.42586L15.72286,37.75A.5045.5045,0,0,1,16.22286,37Z"/></svg>

Before

Width:  |  Height:  |  Size: 479 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48" width="240px" height="240px"><defs><linearGradient id="i_MajzVJ3zEzh1JeMh4MWh" x1="4" x2="8.967" y1="30" y2="30" gradientTransform="rotate(-90 7.5 30)" xlink:href="#i_MajzVJ3zEzh1JeMh4MWa"/><linearGradient id="i_MajzVJ3zEzh1JeMh4MWa" x1="24" x2="24" y1="4.087" y2="8.067" data-name="Безымянный градиент 129" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffd869"/><stop offset="1" stop-color="#fec52b"/></linearGradient><linearGradient id="i_MajzVJ3zEzh1JeMh4MWc" x1="18" x2="18" y1="4.087" y2="8.067" xlink:href="#i_MajzVJ3zEzh1JeMh4MWa"/><linearGradient id="i_MajzVJ3zEzh1JeMh4MWd" x2="24" y1="44.13" y2="39.232" xlink:href="#i_MajzVJ3zEzh1JeMh4MWa"/><linearGradient id="i_MajzVJ3zEzh1JeMh4MWe" x1="30" x2="30" y1="44.13" y2="39.232" xlink:href="#i_MajzVJ3zEzh1JeMh4MWa"/><linearGradient id="i_MajzVJ3zEzh1JeMh4MWf" x1="18" x2="18" y1="44.13" y2="39.232" xlink:href="#i_MajzVJ3zEzh1JeMh4MWa"/><linearGradient id="i_MajzVJ3zEzh1JeMh4MWg" x1="4" x2="8.967" y1="24.25" y2="24.25" gradientTransform="rotate(-90 7.5 24.25)" xlink:href="#i_MajzVJ3zEzh1JeMh4MWa"/><linearGradient id="i_MajzVJ3zEzh1JeMh4MWb" x1="30" x2="30" y1="4.087" y2="8.067" xlink:href="#i_MajzVJ3zEzh1JeMh4MWa"/><linearGradient id="i_MajzVJ3zEzh1JeMh4MWi" x1="4" x2="8.967" y1="18" y2="18" gradientTransform="rotate(-90 7.5 18)" xlink:href="#i_MajzVJ3zEzh1JeMh4MWa"/><linearGradient id="i_MajzVJ3zEzh1JeMh4MWj" x1="44.109" x2="38.842" y1="24" y2="24" gradientTransform="rotate(-90 40.5 24)" xlink:href="#i_MajzVJ3zEzh1JeMh4MWa"/><linearGradient id="i_MajzVJ3zEzh1JeMh4MWk" x1="44.109" x2="38.842" y1="30" y2="30" gradientTransform="rotate(-90 40.5 30)" xlink:href="#i_MajzVJ3zEzh1JeMh4MWa"/><linearGradient id="i_MajzVJ3zEzh1JeMh4MWl" x1="44.109" x2="38.842" y1="18" y2="18" gradientTransform="rotate(-90 40.5 18)" xlink:href="#i_MajzVJ3zEzh1JeMh4MWa"/><linearGradient id="i_MajzVJ3zEzh1JeMh4MWm" x1="14.535" x2="34.765" y1="-2.005" y2="53.577" data-name="Безымянный градиент 100" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#21ad64"/><stop offset="1" stop-color="#088242"/></linearGradient><linearGradient id="i_MajzVJ3zEzh1JeMh4MWn" x1="24" x2="24" y1="7.087" y2="27.416" data-name="Безымянный градиент 4" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#6d6d6d"/><stop offset=".126" stop-color="#626262"/><stop offset=".987" stop-color="#464646"/><stop offset=".998" stop-color="#454545"/></linearGradient></defs><path fill="url(#i_MajzVJ3zEzh1JeMh4MWa)" d="M24,4h0a1,1,0,0,1,1,1v6a0,0,0,0,1,0,0H23a0,0,0,0,1,0,0V5A1,1,0,0,1,24,4Z"/><path fill="url(#i_MajzVJ3zEzh1JeMh4MWb)" d="M30,4h0a1,1,0,0,1,1,1v6a0,0,0,0,1,0,0H29a0,0,0,0,1,0,0V5A1,1,0,0,1,30,4Z"/><path fill="url(#i_MajzVJ3zEzh1JeMh4MWc)" d="M18,4h0a1,1,0,0,1,1,1v6a0,0,0,0,1,0,0H17a0,0,0,0,1,0,0V5A1,1,0,0,1,18,4Z"/><path fill="url(#i_MajzVJ3zEzh1JeMh4MWd)" d="M23,37h2a0,0,0,0,1,0,0v6a1,1,0,0,1-1,1h0a1,1,0,0,1-1-1V37A0,0,0,0,1,23,37Z"/><path fill="url(#i_MajzVJ3zEzh1JeMh4MWe)" d="M29,37h2a0,0,0,0,1,0,0v6a1,1,0,0,1-1,1h0a1,1,0,0,1-1-1V37A0,0,0,0,1,29,37Z"/><path fill="url(#i_MajzVJ3zEzh1JeMh4MWf)" d="M17,37h2a0,0,0,0,1,0,0v6a1,1,0,0,1-1,1h0a1,1,0,0,1-1-1V37A0,0,0,0,1,17,37Z"/><path fill="url(#i_MajzVJ3zEzh1JeMh4MWg)" d="M6.5,20.75h2a0,0,0,0,1,0,0v6a1,1,0,0,1-1,1h0a1,1,0,0,1-1-1v-6A0,0,0,0,1,6.5,20.75Z" transform="rotate(90 7.5 24.25)"/><path fill="url(#i_MajzVJ3zEzh1JeMh4MWh)" d="M6.5,26.5h2a0,0,0,0,1,0,0v6a1,1,0,0,1-1,1h0a1,1,0,0,1-1-1v-6a0,0,0,0,1,0,0Z" transform="rotate(90 7.5 30)"/><path fill="url(#i_MajzVJ3zEzh1JeMh4MWi)" d="M6.5,14.5h2a0,0,0,0,1,0,0v6a1,1,0,0,1-1,1h0a1,1,0,0,1-1-1v-6a0,0,0,0,1,0,0Z" transform="rotate(90 7.5 18)"/><path fill="url(#i_MajzVJ3zEzh1JeMh4MWj)" d="M40.5,20.5h0a1,1,0,0,1,1,1v6a0,0,0,0,1,0,0h-2a0,0,0,0,1,0,0v-6A1,1,0,0,1,40.5,20.5Z" transform="rotate(90 40.5 24)"/><path fill="url(#i_MajzVJ3zEzh1JeMh4MWk)" d="M40.5,26.5h0a1,1,0,0,1,1,1v6a0,0,0,0,1,0,0h-2a0,0,0,0,1,0,0v-6A1,1,0,0,1,40.5,26.5Z" transform="rotate(90 40.5 30)"/><path fill="url(#i_MajzVJ3zEzh1JeMh4MWl)" d="M40.5,14.5h0a1,1,0,0,1,1,1v6a0,0,0,0,1,0,0h-2a0,0,0,0,1,0,0v-6A1,1,0,0,1,40.5,14.5Z" transform="rotate(90 40.5 18)"/><rect width="32" height="32" x="8" y="8" fill="url(#i_MajzVJ3zEzh1JeMh4MWm)" rx="2"/><path d="M31,17a2,2,0,0,1,2,2V29a2,2,0,0,1-2,2H17a2,2,0,0,1-2-2V19a2,2,0,0,1,2-2H31m0-1H17a3.00339,3.00339,0,0,0-3,3V29a3.00339,3.00339,0,0,0,3,3H31a3.00339,3.00339,0,0,0,3-3V19a3.00339,3.00339,0,0,0-3-3Z" opacity=".05"/><path d="M31,17a2,2,0,0,1,2,2V29a2,2,0,0,1-2,2H17a2,2,0,0,1-2-2V19a2,2,0,0,1,2-2H31m0-.5H17A2.50284,2.50284,0,0,0,14.5,19V29A2.50284,2.50284,0,0,0,17,31.5H31A2.50283,2.50283,0,0,0,33.5,29V19A2.50283,2.50283,0,0,0,31,16.5Z" opacity=".07"/><rect width="18" height="14" x="15" y="17" fill="url(#i_MajzVJ3zEzh1JeMh4MWn)" rx="2"/></svg>

Before

Width:  |  Height:  |  Size: 4.8 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><radialGradient id="kMYpY04mz2P2Ir82W-WmNa" cx="16.085" cy="10.234" r="36.479" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fafafb"/><stop offset="1" stop-color="#c8cdd1"/></radialGradient><path fill="url(#kMYpY04mz2P2Ir82W-WmNa)" d="M35,44H13c-0.552,0-1-0.448-1-1V3c0-0.552,0.448-1,1-1h22c0.552,0,1,0.448,1,1v40 C36,43.552,35.552,44,35,44z"/><linearGradient id="kMYpY04mz2P2Ir82W-WmNb" x1="10.615" x2="36.53" y1="-.605" y2="45.097" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#75daff"/><stop offset="1" stop-color="#1ea2e4"/></linearGradient><rect width="18" height="36" x="15" y="5" fill="url(#kMYpY04mz2P2Ir82W-WmNb)"/><linearGradient id="kMYpY04mz2P2Ir82W-WmNc" x1="13.563" x2="13.563" y1="18.489" y2="28.198" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#a1aab3"/><stop offset="1" stop-color="#8f979e"/></linearGradient><path fill="url(#kMYpY04mz2P2Ir82W-WmNc)" d="M13.563,26.875L13.563,26.875c-0.311,0-0.563-0.252-0.563-0.563v-6.625 c0-0.311,0.252-0.563,0.562-0.563h0c0.311,0,0.562,0.252,0.562,0.563v6.625C14.125,26.623,13.873,26.875,13.563,26.875z"/><linearGradient id="kMYpY04mz2P2Ir82W-WmNd" x1="16.5" x2="16.5" y1="45.957" y2="44.063" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#a1aab3"/><stop offset="1" stop-color="#8f979e"/></linearGradient><path fill="url(#kMYpY04mz2P2Ir82W-WmNd)" d="M17,46h-1c-0.552,0-1-0.448-1-1v-1h3v1C18,45.552,17.552,46,17,46z"/><linearGradient id="kMYpY04mz2P2Ir82W-WmNe" x1="31.5" x2="31.5" y1="45.957" y2="44.063" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#a1aab3"/><stop offset="1" stop-color="#8f979e"/></linearGradient><path fill="url(#kMYpY04mz2P2Ir82W-WmNe)" d="M32,46h-1c-0.552,0-1-0.448-1-1v-1h3v1C33,45.552,32.552,46,32,46z"/></svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="480px" height="480px"><path fill="#e1f5fe" d="M38.5 14L29 14 29 4.5z"/><path fill="#c8e6c9" d="M40 45L8 45 8 3 30 3 40 13z"/><path fill="#f1f8e9" d="M38.5 14L29 14 29 4.5z"/><path fill="#a5d6a7" d="M13 8H19V10H13zM21 8H27V10H21zM13 12H19V14H13zM21 12H27V14H21zM13 34H19V36H13zM21 34H27V36H21zM13 38H19V40H13zM21 38H27V40H21zM29 34H35V36H29zM29 38H35V40H29z"/><path fill="#5e9c76" d="M8 16H40V32H8z"/><path fill="#455a64" d="M48,38H32l8,10L48,38z"/><path fill="#455a64" d="M37 29H43V43H37z"/><path fill="#fff" d="M18.801 25.602c0 1.098-.402 2-.902 2.5C17.301 28.699 16.5 29 15.5 29c-1.102 0-1.898-.398-2.5-1.102-.602-.699-.898-1.797-.898-3.098v-1.602c0-1.301.297-2.398.898-3.098C13.602 19.398 14.398 19 15.5 19s1.898.301 2.398.898c.602.602.902 1.402.902 2.602h-2c0-.699-.102-1.199-.301-1.398-.199-.301-.5-.402-1.102-.402-.5 0-.898.199-1.098.602-.199.398-.301 1-.301 1.801v1.797c0 1 .102 1.602.301 2 .199.402.598.5 1.098.5.5 0 .902-.098 1.102-.398s.301-.699.301-1.398H18.801zM24.98 26.391c0-.406-.105-.715-.313-.922s-.582-.422-1.133-.645c-.996-.379-1.715-.82-2.152-1.332-.438-.508-.656-1.105-.656-1.801 0-.836.297-1.512.895-2.02.594-.508 1.352-.762 2.266-.762.609 0 1.156.129 1.633.387.48.258.848.621 1.105 1.09s.387 1.004.387 1.602h-2.004c0-.465-.102-.82-.297-1.063-.199-.246-.484-.367-.859-.367-.348 0-.621.105-.82.313-.195.207-.293.484-.293.836 0 .273.109.523.328.742.219.223.605.449 1.164.688.969.352 1.676.781 2.113 1.293.441.512.66 1.16.66 1.949 0 .863-.273 1.543-.828 2.027-.551.488-1.301.73-2.246.73-.645 0-1.23-.129-1.758-.395s-.941-.645-1.242-1.137c-.297-.492-.445-1.07-.445-1.742H22.5c0 .574.113.992.336 1.25.223.262.586.391 1.094.391C24.629 27.504 24.98 27.133 24.98 26.391zM32.066 26.266l1.676-7.219h2.242L33.113 29H31.02l-2.852-9.953h2.23L32.066 26.266z"/></svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><linearGradient id="wvGVdeqK1wyL1PvDjvN74a" x1="25.193" x2="32.706" y1="19.887" y2="44.278" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#0176d0"/><stop offset="1" stop-color="#16538c"/></linearGradient><path fill="url(#wvGVdeqK1wyL1PvDjvN74a)" d="M16,20h24c1.105,0,2,0.895,2,2v14c0,1.105-0.895,2-2,2h-1v6.082 c0,0.553-0.724,0.76-1.016,0.291L34,38H16c-1.105,0-2-0.895-2-2V22C14,20.895,14.895,20,16,20z"/><path fill="#fff" d="M31.587,33h-1.241c-0.216,0-0.407-0.14-0.473-0.346l-0.459-1.434h-2.845l-0.454,1.433 C26.05,32.86,25.858,33,25.642,33h-1.226c-0.176,0-0.299-0.175-0.239-0.341l2.668-7.33c0.072-0.198,0.26-0.329,0.47-0.329h1.434 c0.212,0,0.4,0.133,0.471,0.333l2.606,7.328C31.885,32.826,31.763,33,31.587,33z M29.001,29.837c0,0-0.967-3.13-0.993-3.409h-0.045 c-0.019,0.234-1.01,3.409-1.01,3.409H29.001z"/><path d="M33,25H14v-5h21v3C35,24.105,34.105,25,33,25z" opacity=".05"/><path d="M32.5,24.5H14V20h20.5v2.5C34.5,23.605,33.605,24.5,32.5,24.5z" opacity=".07"/><linearGradient id="wvGVdeqK1wyL1PvDjvN74b" x1="12.177" x2="26.673" y1="3.749" y2="27.335" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#33bef0"/><stop offset="1" stop-color="#22a5e2"/></linearGradient><path fill="url(#wvGVdeqK1wyL1PvDjvN74b)" d="M32,6H8C6.895,6,6,6.895,6,8v14c0,1.105,0.895,2,2,2h1v6.257c0,0.502,0.658,0.691,0.924,0.265 L14,24h18c1.105,0,2-0.895,2-2V8C34,6.895,33.105,6,32,6z"/><path fill="#fff" d="M21.548,18.12c1.143,1.304,2.451,1.146,2.975,1.01c0.109-0.028,0.213,0.055,0.213,0.167v1.176 c0,0.11-0.073,0.205-0.181,0.228c-0.221,0.049-0.608,0.113-1.143,0.113c-1.936,0-3.174-1.901-3.715-2.408 c-1.916,0-3.809-1.52-3.809-4.219c0-3.109,2.075-4.453,4.225-4.453c3.141,0,4.008,2.5,4.008,4.283 C24.121,16.79,22.412,17.844,21.548,18.12z M20.048,11.364c-1.15,0-2.168,0.886-2.168,2.725c0,1.898,1.019,2.701,2.121,2.701 c1.158,0,2.127-0.797,2.127-2.666C22.128,12.202,21.199,11.364,20.048,11.364z"/></svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -1,426 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 240 240"
width="240px"
height="240px"
version="1.1"
id="svg48"
sodipodi:docname="icons8-farm.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview50"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="2.8416667"
inkscape:cx="120"
inkscape:cy="120"
inkscape:window-width="2560"
inkscape:window-height="1382"
inkscape:window-x="1920"
inkscape:window-y="314"
inkscape:window-maximized="1"
inkscape:current-layer="svg48" />
<defs
id="defs27">
<linearGradient
id="linear0"
gradientUnits="userSpaceOnUse"
x1="37.685921"
y1="19.14217"
x2="130.956497"
y2="148.210251"
gradientTransform="scale(1.395349)">
<stop
offset="0"
style="stop-color:rgb(16.470589%,64.313728%,95.686275%);stop-opacity:1;"
id="stop2" />
<stop
offset="1"
style="stop-color:rgb(0%,47.843137%,85.09804%);stop-opacity:1;"
id="stop4" />
</linearGradient>
<radialGradient
id="radial0"
gradientUnits="userSpaceOnUse"
cx="86"
cy="132.583328"
fx="86"
fy="132.583328"
r="10.75"
gradientTransform="scale(4.999995)">
<stop
offset="0.582"
style="stop-color:rgb(0%,0%,0%);stop-opacity:0.2;"
id="stop7" />
<stop
offset="1"
style="stop-color:rgb(0%,0%,0%);stop-opacity:0;"
id="stop9" />
</radialGradient>
<linearGradient
id="linear1"
gradientUnits="userSpaceOnUse"
x1="50.166672"
y1="39.416672"
x2="121.833328"
y2="39.416672"
gradientTransform="scale(1.395349)">
<stop
offset="0"
style="stop-color:rgb(11.372549%,34.901962%,70.19608%);stop-opacity:1;"
id="stop12" />
<stop
offset="1"
style="stop-color:rgb(9.803922%,35.686275%,73.725492%);stop-opacity:1;"
id="stop14" />
</linearGradient>
<linearGradient
id="linear2"
gradientUnits="userSpaceOnUse"
x1="50.166672"
y1="68.083328"
x2="121.833328"
y2="68.083328"
gradientTransform="scale(1.395349)">
<stop
offset="0"
style="stop-color:rgb(11.372549%,34.901962%,70.19608%);stop-opacity:1;"
id="stop17" />
<stop
offset="1"
style="stop-color:rgb(9.803922%,35.686275%,73.725492%);stop-opacity:1;"
id="stop19" />
</linearGradient>
<linearGradient
id="linear3"
gradientUnits="userSpaceOnUse"
x1="50.166672"
y1="96.75"
x2="121.833328"
y2="96.75"
gradientTransform="scale(1.395349)">
<stop
offset="0"
style="stop-color:rgb(11.372549%,34.901962%,70.19608%);stop-opacity:1;"
id="stop22" />
<stop
offset="1"
style="stop-color:rgb(9.803922%,35.686275%,73.725492%);stop-opacity:1;"
id="stop24" />
</linearGradient>
<linearGradient
id="linear0-3"
gradientUnits="userSpaceOnUse"
x1="37.685921"
y1="19.14217"
x2="130.9565"
y2="148.21025"
gradientTransform="scale(1.395349)">
<stop
offset="0"
style="stop-color:rgb(69.803923%,16.470589%,95.686275%);stop-opacity:1;"
id="stop2-6" />
<stop
offset="1"
style="stop-color:rgb(52.549022%,0%,85.09804%);stop-opacity:1;"
id="stop4-7" />
</linearGradient>
<radialGradient
id="radial0-5"
gradientUnits="userSpaceOnUse"
cx="86"
cy="132.58333"
fx="86"
fy="132.58333"
r="10.75"
gradientTransform="scale(4.999995)">
<stop
offset="0.582"
style="stop-color:rgb(0%,0%,0%);stop-opacity:0.2;"
id="stop7-3" />
<stop
offset="1"
style="stop-color:rgb(0%,0%,0%);stop-opacity:0;"
id="stop9-5" />
</radialGradient>
<linearGradient
id="linear1-6"
gradientUnits="userSpaceOnUse"
x1="50.166672"
y1="39.416672"
x2="121.83333"
y2="39.416672"
gradientTransform="scale(1.395349)">
<stop
offset="0"
style="stop-color:rgb(46.27451%,8.627451%,56.078434%);stop-opacity:1;"
id="stop12-2" />
<stop
offset="1"
style="stop-color:rgb(44.313726%,5.490196%,62.352943%);stop-opacity:1;"
id="stop14-9" />
</linearGradient>
<linearGradient
id="linear2-1"
gradientUnits="userSpaceOnUse"
x1="50.166672"
y1="68.083328"
x2="121.83333"
y2="68.083328"
gradientTransform="scale(1.395349)">
<stop
offset="0"
style="stop-color:rgb(46.27451%,8.627451%,56.078434%);stop-opacity:1;"
id="stop17-2" />
<stop
offset="1"
style="stop-color:rgb(44.313726%,5.490196%,62.352943%);stop-opacity:1;"
id="stop19-7" />
</linearGradient>
<linearGradient
id="linear3-0"
gradientUnits="userSpaceOnUse"
x1="50.166672"
y1="96.75"
x2="121.83333"
y2="96.75"
gradientTransform="scale(1.395349)">
<stop
offset="0"
style="stop-color:rgb(46.27451%,8.627451%,56.078434%);stop-opacity:1;"
id="stop22-9" />
<stop
offset="1"
style="stop-color:rgb(44.313726%,5.490196%,62.352943%);stop-opacity:1;"
id="stop24-3" />
</linearGradient>
<radialGradient
id="radial0-2"
gradientUnits="userSpaceOnUse"
cx="86"
cy="132.58333"
fx="86"
fy="132.58333"
r="10.75"
gradientTransform="scale(4.999995)">
<stop
offset="0.582"
style="stop-color:rgb(0%,0%,0%);stop-opacity:0.2;"
id="stop7-37" />
<stop
offset="1"
style="stop-color:rgb(0%,0%,0%);stop-opacity:0;"
id="stop9-59" />
</radialGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linear0"
id="linearGradient251"
gradientUnits="userSpaceOnUse"
gradientTransform="scale(1.395349)"
x1="37.685921"
y1="19.14217"
x2="130.956497"
y2="148.210251" />
<linearGradient
inkscape:collect="always"
xlink:href="#linear1"
id="linearGradient253"
gradientUnits="userSpaceOnUse"
gradientTransform="scale(1.395349)"
x1="50.166672"
y1="39.416672"
x2="121.833328"
y2="39.416672" />
<linearGradient
inkscape:collect="always"
xlink:href="#linear2"
id="linearGradient255"
gradientUnits="userSpaceOnUse"
gradientTransform="scale(1.395349)"
x1="50.166672"
y1="68.083328"
x2="121.833328"
y2="68.083328" />
<linearGradient
inkscape:collect="always"
xlink:href="#linear3"
id="linearGradient257"
gradientUnits="userSpaceOnUse"
gradientTransform="scale(1.395349)"
x1="50.166672"
y1="96.75"
x2="121.833328"
y2="96.75" />
<linearGradient
inkscape:collect="always"
xlink:href="#linear0"
id="linearGradient269"
gradientUnits="userSpaceOnUse"
gradientTransform="scale(1.395349)"
x1="37.685921"
y1="19.14217"
x2="130.956497"
y2="148.210251" />
<linearGradient
inkscape:collect="always"
xlink:href="#linear1"
id="linearGradient271"
gradientUnits="userSpaceOnUse"
gradientTransform="scale(1.395349)"
x1="50.166672"
y1="39.416672"
x2="121.833328"
y2="39.416672" />
<linearGradient
inkscape:collect="always"
xlink:href="#linear2"
id="linearGradient273"
gradientUnits="userSpaceOnUse"
gradientTransform="scale(1.395349)"
x1="50.166672"
y1="68.083328"
x2="121.833328"
y2="68.083328" />
<linearGradient
inkscape:collect="always"
xlink:href="#linear3"
id="linearGradient275"
gradientUnits="userSpaceOnUse"
gradientTransform="scale(1.395349)"
x1="50.166672"
y1="96.75"
x2="121.833328"
y2="96.75" />
</defs>
<g
id="surface37962620"
transform="matrix(0.82175668,0,0,0.82175668,-17.622212,13.072905)">
<path
style="fill:url(#linearGradient269);fill-rule:nonzero;stroke:none"
d="M 180,20 H 60 c -5.523438,0 -10,4.476562 -10,10 v 180 c 0,5.52344 4.476562,10 10,10 h 120 c 5.52344,0 10,-4.47656 10,-10 V 30 c 0,-5.523438 -4.47656,-10 -10,-10 z m 0,0"
id="path29" />
<path
style="fill:url(#radial0);fill-rule:nonzero;stroke:none"
d="m 135,185 c 0,8.28516 -6.71484,15 -15,15 -8.28516,0 -15,-6.71484 -15,-15 0,-8.28516 6.71484,-15 15,-15 8.28516,0 15,6.71484 15,15 z m 0,0"
id="path31" />
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 130,185 c 0,5.52344 -4.47656,10 -10,10 -5.52344,0 -10,-4.47656 -10,-10 0,-5.52344 4.47656,-10 10,-10 5.52344,0 10,4.47656 10,10 z m 0,0"
id="path33" />
<path
style="fill:url(#linearGradient271);fill-rule:nonzero;stroke:none"
d="m 167.5,70 h -95 C 71.121094,70 70,68.878906 70,67.5 v -25 C 70,41.121094 71.121094,40 72.5,40 h 95 c 1.37891,0 2.5,1.121094 2.5,2.5 v 25 c 0,1.378906 -1.12109,2.5 -2.5,2.5 z m 0,0"
id="path35" />
<path
style="fill:#4fe6ff;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 160,55 c 0,2.761719 -2.23828,5 -5,5 -2.76172,0 -5,-2.238281 -5,-5 0,-2.761719 2.23828,-5 5,-5 2.76172,0 5,2.238281 5,5 z m 0,0"
id="path37" />
<path
style="fill:url(#linearGradient273);fill-rule:nonzero;stroke:none"
d="m 167.5,110 h -95 c -1.378906,0 -2.5,-1.12109 -2.5,-2.5 v -25 C 70,81.121094 71.121094,80 72.5,80 h 95 c 1.37891,0 2.5,1.121094 2.5,2.5 v 25 c 0,1.37891 -1.12109,2.5 -2.5,2.5 z m 0,0"
id="path39" />
<path
style="fill:#4fe6ff;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 160,95 c 0,2.761719 -2.23828,5 -5,5 -2.76172,0 -5,-2.238281 -5,-5 0,-2.761719 2.23828,-5 5,-5 2.76172,0 5,2.238281 5,5 z m 0,0"
id="path41" />
<path
style="fill:url(#linearGradient275);fill-rule:nonzero;stroke:none"
d="m 167.5,150 h -95 c -1.378906,0 -2.5,-1.12109 -2.5,-2.5 v -25 c 0,-1.37891 1.121094,-2.5 2.5,-2.5 h 95 c 1.37891,0 2.5,1.12109 2.5,2.5 v 25 c 0,1.37891 -1.12109,2.5 -2.5,2.5 z m 0,0"
id="path43" />
<path
style="fill:#4fe6ff;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 160,135 c 0,2.76172 -2.23828,5 -5,5 -2.76172,0 -5,-2.23828 -5,-5 0,-2.76172 2.23828,-5 5,-5 2.76172,0 5,2.23828 5,5 z m 0,0"
id="path45" />
</g>
<g
id="surface39050914"
transform="matrix(0.82604367,0,0,0.82604367,21.431732,23.360068)">
<path
style="fill:url(#linear0-3);fill-rule:nonzero;stroke:none"
d="M 180,20 H 60 c -5.523438,0 -10,4.476562 -10,10 v 180 c 0,5.52344 4.476562,10 10,10 h 120 c 5.52344,0 10,-4.47656 10,-10 V 30 c 0,-5.523438 -4.47656,-10 -10,-10 z m 0,0"
id="path29-6" />
<path
style="fill:url(#radial0-5);fill-rule:nonzero;stroke:none"
d="m 135,185 c 0,8.28516 -6.71484,15 -15,15 -8.28516,0 -15,-6.71484 -15,-15 0,-8.28516 6.71484,-15 15,-15 8.28516,0 15,6.71484 15,15 z m 0,0"
id="path31-0" />
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 130,185 c 0,5.52344 -4.47656,10 -10,10 -5.52344,0 -10,-4.47656 -10,-10 0,-5.52344 4.47656,-10 10,-10 5.52344,0 10,4.47656 10,10 z m 0,0"
id="path33-6" />
<path
style="fill:url(#linear1-6);fill-rule:nonzero;stroke:none"
d="m 167.5,70 h -95 C 71.121094,70 70,68.878906 70,67.5 v -25 C 70,41.121094 71.121094,40 72.5,40 h 95 c 1.37891,0 2.5,1.121094 2.5,2.5 v 25 c 0,1.378906 -1.12109,2.5 -2.5,2.5 z m 0,0"
id="path35-2" />
<path
style="fill:#f530ff;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 160,55 c 0,2.761719 -2.23828,5 -5,5 -2.76172,0 -5,-2.238281 -5,-5 0,-2.761719 2.23828,-5 5,-5 2.76172,0 5,2.238281 5,5 z m 0,0"
id="path37-6" />
<path
style="fill:url(#linear2-1);fill-rule:nonzero;stroke:none"
d="m 167.5,110 h -95 c -1.378906,0 -2.5,-1.12109 -2.5,-2.5 v -25 C 70,81.121094 71.121094,80 72.5,80 h 95 c 1.37891,0 2.5,1.121094 2.5,2.5 v 25 c 0,1.37891 -1.12109,2.5 -2.5,2.5 z m 0,0"
id="path39-1" />
<path
style="fill:#f530ff;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 160,95 c 0,2.761719 -2.23828,5 -5,5 -2.76172,0 -5,-2.238281 -5,-5 0,-2.761719 2.23828,-5 5,-5 2.76172,0 5,2.238281 5,5 z m 0,0"
id="path41-8" />
<path
style="fill:url(#linear3-0);fill-rule:nonzero;stroke:none"
d="m 167.5,150 h -95 c -1.378906,0 -2.5,-1.12109 -2.5,-2.5 v -25 c 0,-1.37891 1.121094,-2.5 2.5,-2.5 h 95 c 1.37891,0 2.5,1.12109 2.5,2.5 v 25 c 0,1.37891 -1.12109,2.5 -2.5,2.5 z m 0,0"
id="path43-7" />
<path
style="fill:#f530ff;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 160,135 c 0,2.76172 -2.23828,5 -5,5 -2.76172,0 -5,-2.23828 -5,-5 0,-2.76172 2.23828,-5 5,-5 2.76172,0 5,2.23828 5,5 z m 0,0"
id="path45-9" />
</g>
<g
id="surface37962620-2"
transform="matrix(0.82175668,0,0,0.82175668,69.215354,34.47747)">
<path
style="fill:url(#linearGradient251);fill-rule:nonzero;stroke:none"
d="M 180,20 H 60 c -5.523438,0 -10,4.476562 -10,10 v 180 c 0,5.52344 4.476562,10 10,10 h 120 c 5.52344,0 10,-4.47656 10,-10 V 30 c 0,-5.523438 -4.47656,-10 -10,-10 z m 0,0"
id="path29-9" />
<path
style="fill:url(#radial0-2);fill-rule:nonzero;stroke:none"
d="m 135,185 c 0,8.28516 -6.71484,15 -15,15 -8.28516,0 -15,-6.71484 -15,-15 0,-8.28516 6.71484,-15 15,-15 8.28516,0 15,6.71484 15,15 z m 0,0"
id="path31-3" />
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 130,185 c 0,5.52344 -4.47656,10 -10,10 -5.52344,0 -10,-4.47656 -10,-10 0,-5.52344 4.47656,-10 10,-10 5.52344,0 10,4.47656 10,10 z m 0,0"
id="path33-1" />
<path
style="fill:url(#linearGradient253);fill-rule:nonzero;stroke:none"
d="m 167.5,70 h -95 C 71.121094,70 70,68.878906 70,67.5 v -25 C 70,41.121094 71.121094,40 72.5,40 h 95 c 1.37891,0 2.5,1.121094 2.5,2.5 v 25 c 0,1.378906 -1.12109,2.5 -2.5,2.5 z m 0,0"
id="path35-9" />
<path
style="fill:#4fe6ff;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 160,55 c 0,2.761719 -2.23828,5 -5,5 -2.76172,0 -5,-2.238281 -5,-5 0,-2.761719 2.23828,-5 5,-5 2.76172,0 5,2.238281 5,5 z m 0,0"
id="path37-4" />
<path
style="fill:url(#linearGradient255);fill-rule:nonzero;stroke:none"
d="m 167.5,110 h -95 c -1.378906,0 -2.5,-1.12109 -2.5,-2.5 v -25 C 70,81.121094 71.121094,80 72.5,80 h 95 c 1.37891,0 2.5,1.121094 2.5,2.5 v 25 c 0,1.37891 -1.12109,2.5 -2.5,2.5 z m 0,0"
id="path39-7" />
<path
style="fill:#4fe6ff;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 160,95 c 0,2.761719 -2.23828,5 -5,5 -2.76172,0 -5,-2.238281 -5,-5 0,-2.761719 2.23828,-5 5,-5 2.76172,0 5,2.238281 5,5 z m 0,0"
id="path41-84" />
<path
style="fill:url(#linearGradient257);fill-rule:nonzero;stroke:none"
d="m 167.5,150 h -95 c -1.378906,0 -2.5,-1.12109 -2.5,-2.5 v -25 c 0,-1.37891 1.121094,-2.5 2.5,-2.5 h 95 c 1.37891,0 2.5,1.12109 2.5,2.5 v 25 c 0,1.37891 -1.12109,2.5 -2.5,2.5 z m 0,0"
id="path43-5" />
<path
style="fill:#4fe6ff;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 160,135 c 0,2.76172 -2.23828,5 -5,5 -2.76172,0 -5,-2.23828 -5,-5 0,-2.76172 2.23828,-5 5,-5 2.76172,0 5,2.23828 5,5 z m 0,0"
id="path45-0" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><path fill="#50e6ff" d="M39,16v25c0,1.105-0.895,2-2,2H11c-1.105,0-2-0.895-2-2V7c0-1.105,0.895-2,2-2h17L39,16z"/><linearGradient id="F8F33TU9HxDNWNbQYRyY3a" x1="28.529" x2="33.6" y1="15.472" y2="10.4" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3079d6"/><stop offset="1" stop-color="#297cd2"/></linearGradient><path fill="url(#F8F33TU9HxDNWNbQYRyY3a)" d="M28,5v9c0,1.105,0.895,2,2,2h9L28,5z"/></svg>

Before

Width:  |  Height:  |  Size: 505 B

View File

@@ -1,338 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 48 48"
width="240px"
height="240px"
version="1.1"
id="svg16"
sodipodi:docname="icons8-globe-wired2.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs20">
<linearGradient
id="gdLL2FB7VtbBMLliRKBSLb"
x1="29.028"
x2="32.015999"
y1="42.352001"
y2="30.365"
gradientTransform="matrix(0.40350215,0,0,-0.45710877,27.208522,59.376218)"
gradientUnits="userSpaceOnUse">
<stop
offset="0"
stop-color="#2aa4f4"
id="stop15" />
<stop
offset="1"
stop-color="#007ad9"
id="stop17" />
</linearGradient>
<linearGradient
id="gdLL2FB7VtbBMLliRKBSLa"
x1="33.27"
x2="44.384998"
y1="37.389999"
y2="37.389999"
gradientTransform="matrix(0.40350215,0,0,-0.45710877,27.621359,59.457029)"
gradientUnits="userSpaceOnUse">
<stop
offset=".128"
stop-color="#c9cdcf"
id="stop2-3" />
<stop
offset=".141"
stop-color="#cbced0"
id="stop4-6" />
<stop
offset=".331"
stop-color="#e1e2e4"
id="stop6" />
<stop
offset=".859"
stop-color="#e4e4e6"
id="stop8" />
</linearGradient>
<linearGradient
id="linear0"
gradientUnits="userSpaceOnUse"
x1="96.513496"
y1="32.522331"
x2="107.52508"
y2="76.694077"
gradientTransform="scale(1.395349)">
<stop
offset="0"
style="stop-color:rgb(90.588236%,42.745098%,23.529412%);stop-opacity:1;"
id="stop748" />
<stop
offset="1"
style="stop-color:rgb(71.372551%,20%,15.294118%);stop-opacity:1;"
id="stop750" />
</linearGradient>
<linearGradient
id="linear1"
gradientUnits="userSpaceOnUse"
x1="143.95325"
y1="67.796669"
x2="129.91733"
y2="47.00975"
gradientTransform="scale(4.999995)">
<stop
offset="0"
style="stop-color:rgb(41.176471%,3.529412%,3.529412%);stop-opacity:1;"
id="stop753" />
<stop
offset="1"
style="stop-color:rgb(71.372551%,20%,15.294118%);stop-opacity:1;"
id="stop755" />
</linearGradient>
<linearGradient
id="linear2"
gradientUnits="userSpaceOnUse"
x1="121.83333"
y1="43"
x2="132.58333"
y2="43"
gradientTransform="scale(4.999995)">
<stop
offset="0"
style="stop-color:rgb(82.352942%,80.392158%,80.392158%);stop-opacity:1;"
id="stop758" />
<stop
offset="1"
style="stop-color:rgb(100%,100%,100%);stop-opacity:1;"
id="stop760" />
</linearGradient>
<linearGradient
id="linear0-6"
gradientUnits="userSpaceOnUse"
x1="119.2175"
y1="37.625"
x2="150.28453"
y2="37.396008"
gradientTransform="matrix(0.13504871,0,0,0.13504871,22.367593,18.30681)">
<stop
offset="0.128"
style="stop-color:rgb(78.823531%,80.392158%,81.176472%);stop-opacity:1;"
id="stop1052" />
<stop
offset="0.141"
style="stop-color:rgb(79.607844%,80.784315%,81.568629%);stop-opacity:1;"
id="stop1054" />
<stop
offset="0.331"
style="stop-color:rgb(88.235295%,88.627452%,89.411765%);stop-opacity:1;"
id="stop1056" />
<stop
offset="0.859"
style="stop-color:rgb(88.235295%,88.235295%,88.235295%);stop-opacity:1;"
id="stop1058" />
</linearGradient>
<linearGradient
id="linear1-2"
gradientUnits="userSpaceOnUse"
x1="104.017"
y1="19.8445"
x2="114.724"
y2="62.79792"
gradientTransform="matrix(0.13504871,0,0,0.13504871,22.367593,18.30681)">
<stop
offset="0"
style="stop-color:rgb(94.509804%,76.862746%,5.882353%);stop-opacity:1;"
id="stop1061" />
<stop
offset="1"
style="stop-color:rgb(88.235295%,64.313728%,3.137255%);stop-opacity:1;"
id="stop1063" />
</linearGradient>
<linearGradient
id="linear0-62"
gradientUnits="userSpaceOnUse"
x1="96.513496"
y1="32.522331"
x2="107.52508"
y2="76.694077"
gradientTransform="scale(1.395349)">
<stop
offset="0"
style="stop-color:rgb(90.588236%,42.745098%,23.529412%);stop-opacity:1;"
id="stop748-6" />
<stop
offset="1"
style="stop-color:rgb(71.372551%,20%,15.294118%);stop-opacity:1;"
id="stop750-1" />
</linearGradient>
<linearGradient
id="linear1-8"
gradientUnits="userSpaceOnUse"
x1="143.95325"
y1="67.796669"
x2="129.91733"
y2="47.00975"
gradientTransform="scale(4.999995)">
<stop
offset="0"
style="stop-color:rgb(41.176471%,3.529412%,3.529412%);stop-opacity:1;"
id="stop753-7" />
<stop
offset="1"
style="stop-color:rgb(71.372551%,20%,15.294118%);stop-opacity:1;"
id="stop755-9" />
</linearGradient>
<linearGradient
id="linear2-2"
gradientUnits="userSpaceOnUse"
x1="121.83333"
y1="43"
x2="132.58333"
y2="43"
gradientTransform="scale(4.999995)">
<stop
offset="0"
style="stop-color:rgb(82.352942%,80.392158%,80.392158%);stop-opacity:1;"
id="stop758-0" />
<stop
offset="1"
style="stop-color:rgb(100%,100%,100%);stop-opacity:1;"
id="stop760-2" />
</linearGradient>
<linearGradient
id="linear1-7"
gradientUnits="userSpaceOnUse"
x1="104.017"
y1="19.8445"
x2="114.724"
y2="62.79792"
gradientTransform="matrix(0.1281016,0,0,-0.1281016,25.655164,48.484091)">
<stop
offset="0"
style="stop-color:rgb(94.509804%,76.862746%,5.882353%);stop-opacity:1;"
id="stop1061-3" />
<stop
offset="1"
style="stop-color:rgb(88.235295%,64.313728%,3.137255%);stop-opacity:1;"
id="stop1063-6" />
</linearGradient>
<linearGradient
id="linear0-1"
gradientUnits="userSpaceOnUse"
x1="119.2175"
y1="37.625"
x2="150.28453"
y2="37.396008"
gradientTransform="matrix(0.1281016,0,0,-0.1281016,25.655164,48.484091)">
<stop
offset="0.128"
style="stop-color:rgb(78.823531%,80.392158%,81.176472%);stop-opacity:1;"
id="stop1052-2" />
<stop
offset="0.141"
style="stop-color:rgb(79.607844%,80.784315%,81.568629%);stop-opacity:1;"
id="stop1054-9" />
<stop
offset="0.331"
style="stop-color:rgb(88.235295%,88.627452%,89.411765%);stop-opacity:1;"
id="stop1056-3" />
<stop
offset="0.859"
style="stop-color:rgb(88.235295%,88.235295%,88.235295%);stop-opacity:1;"
id="stop1058-1" />
</linearGradient>
</defs>
<sodipodi:namedview
id="namedview18"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="2.0093618"
inkscape:cx="11.695256"
inkscape:cy="106.99915"
inkscape:window-width="2560"
inkscape:window-height="1382"
inkscape:window-x="1920"
inkscape:window-y="314"
inkscape:window-maximized="1"
inkscape:current-layer="layer10" />
<linearGradient
id="NOym_MWXn_NqLuEERx94Ya"
x1="9.858"
x2="38.387"
y1="9.858"
y2="38.387"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.89251916,0,0,0.89251916,0.02992325,-1.4708132)">
<stop
offset="0"
stop-color="#00bffe"
id="stop2" />
<stop
offset="1"
stop-color="#1d55c4"
id="stop4" />
</linearGradient>
<linearGradient
id="NOym_MWXn_NqLuEERx94Yb"
x1="10.205"
x2="38.625"
y1="9.68"
y2="38.1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.89251916,0,0,0.89251916,0.02992325,-1.4708132)">
<stop
offset="0"
stop-color="#84e1fe"
id="stop9" />
<stop
offset="1"
stop-color="#167cf7"
id="stop11" />
</linearGradient>
<g
inkscape:groupmode="layer"
id="layer10"
inkscape:label="Layer 1"
style="display:inline">
<path
style="fill:url(#linear0-1);fill-rule:nonzero;stroke:none;stroke-width:0.0918063"
d="m 44.080656,44.352814 h -3.73651 V 41.59863 h 3.73651 c 0.253543,0 0.459031,0.205489 0.459031,0.459031 v 1.90158 c -0.006,0.240686 -0.205269,0.39063 -0.459031,0.393573 z"
id="path1068"
sodipodi:nodetypes="cccsscc" />
<path
style="fill:#f3d900;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.0918063"
d="M 41.721239,29.204802 H 29.327411 c -0.506728,0 -0.918063,0.411335 -0.918063,0.918061 0,0.506727 0.411335,0.918062 0.918063,0.918062 h 12.393828 c 1.265562,0 2.295154,1.029591 2.295154,2.295153 0,1.265562 -1.029592,2.295154 -2.295154,2.295154 H 31.622563 c -2.277581,0 -4.131276,1.852977 -4.131276,4.131276 0,2.278298 1.853695,4.131276 4.131276,4.131276 h 2.754184 c 0.506728,0 0.918062,-0.411335 0.918062,-0.918061 0,-0.506727 -0.411334,-0.918062 -0.918062,-0.918062 h -2.754184 c -1.265561,0 -2.295152,-1.029592 -2.295152,-2.295153 0,-1.265562 1.029591,-2.295154 2.295152,-2.295154 h 10.098676 c 2.27758,0 4.131275,-1.852977 4.131275,-4.131276 0,-2.278298 -1.853695,-4.131276 -4.131275,-4.131276 z"
id="path1070"
sodipodi:nodetypes="sssssssssssssssssss" />
<path
style="fill:url(#linear1-7);fill-rule:nonzero;stroke:none;stroke-width:0.0918063"
d="M 41.262208,45.270876 H 36.51411 c -0.487004,0 -0.954283,-0.193654 -1.298555,-0.537926 l -0.838808,-0.839166 v -1.836123 l 0.838808,-0.839165 c 0.344272,-0.344274 0.811551,-0.537927 1.298555,-0.537927 h 4.748098 c 0.253543,0 0.459765,0.20549 0.459031,0.459031 l -0.01072,3.696614 c -0.0019,0.239104 -0.181534,0.436396 -0.448319,0.434662 z"
id="path1072"
sodipodi:nodetypes="csccccssscc" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Layer 2">
<path
fill="url(#NOym_MWXn_NqLuEERx94Ya)"
d="m 39.300768,19.949647 c 0,9.857875 -7.99251,17.850384 -17.850385,17.850384 C 11.592509,37.800031 3.6,29.807522 3.6,19.949647 3.6,10.091773 11.592509,2.099263 21.450383,2.099263 c 9.857875,0 17.850385,7.99251 17.850385,17.850384 z"
id="path7"
style="fill:url(#NOym_MWXn_NqLuEERx94Ya);stroke-width:0.892519" />
</g>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="Layer 3">
<path
fill="url(#NOym_MWXn_NqLuEERx94Yb)"
d="m 21.245104,29.328239 c 0.205279,0.60959 0,1.424461 -0.204387,1.834127 -0.200816,0.610483 -0.405203,1.425352 -0.81487,1.830557 -0.405203,0.409666 -0.814869,0.614945 -1.220074,0.818439 -0.610482,0.405205 -1.019257,1.220074 -1.629739,1.834128 0,0.200816 -0.814871,1.237031 -1.019257,1.237031 -0.07587,0.04017 -0.148158,0.07676 -0.221345,0.11335 -1.203116,-0.374858 -2.34554,-0.881809 -3.424596,-1.489614 -0.0071,-0.02142 -0.01518,-0.04194 -0.02321,-0.06426 0,-0.204386 -0.200816,-1.42803 -0.200816,-1.629739 -0.204388,-0.613161 -0.409667,-1.428032 -0.613161,-2.038514 -0.405204,-1.019257 -1.220074,-2.038514 -1.220074,-3.258588 0,-1.02015 0.200817,-2.034944 -0.409666,-2.853384 C 9.429043,24.642514 7.7993027,24.642514 6.9844327,24.03203 5.7598965,23.21716 4.5398227,21.997086 3.9293396,20.77255 3.783859,20.53157 3.6856819,20.307548 3.6053551,20.087096 3.6062476,20.039792 3.6,19.996058 3.6,19.949647 3.6,15.169314 5.4903556,10.837027 8.5516965,7.6328828 10.226063,6.2789306 13.491791,5.6559521 15.474075,6.2539406 c 0.610484,0.2008162 2.806973,1.5146043 2.806973,2.1250878 0,0.2043872 0,0.2043872 -0.204386,0.4096664 -0.200818,0.2043872 -0.406097,0.2043872 -0.610484,0.2043872 -0.610484,0 -2.533862,-0.4435824 -2.739141,-0.6488616 -1.224536,-0.4087744 -3.055093,2.2402226 -3.258588,3.0550926 -0.204386,0.613161 -0.204386,2.038514 0.814871,2.242901 0.610482,0 3.404067,-2.370531 3.813734,-2.574918 1.629739,-0.200816 2.889084,1.195976 3.298751,2.624899 0.610482,1.62974 -2.833749,3.205037 -4.058285,3.614703 -0.405204,0.204386 -0.60959,-0.204387 -1.019257,0 -1.015687,0.405204 -1.616352,1.315573 -1.737735,2.533861 -0.102635,1.03086 -0.204386,2.035837 -0.405204,3.055094 -0.204387,0 -0.622978,-0.0027 -0.622978,-0.207064 v -0.405205 c 0,-0.614945 -0.204387,-1.428923 -0.81487,-1.633309 -0.204387,-0.199924 -0.49267,0.121382 -0.697057,0.121382 -0.610484,0 -1.2200743,-0.61316 -1.8305574,-0.204387 -0.4096663,0.405204 -0.81487,1.019257 -0.81487,1.62974 0,0.20528 0,0.409667 0.2008168,0.610484 0.4096663,0.204386 0.8148701,-0.200817 1.2245363,0 0.4052038,0 0.4052038,0.409666 0.4052038,0.61316 0.4096667,0.610483 0.8148705,1.425354 1.4280305,1.62974 h 4.073458 c 0.610483,0.204387 1.62974,0.405204 2.038513,0.814871 0.199925,0.405203 0.199925,0.814869 0.405204,1.220073 1.019258,1.019256 2.239331,1.019256 3.462975,1.428031 0.406988,0.204387 0.612268,0.405203 0.611375,0.81487 z M 32.628294,6.0441984 c -0.09014,0.02678 -0.180289,0.050875 -0.268648,0.08925 -0.610484,0.2043861 -2.20363,3.1461297 -2.611511,3.7557202 -0.204388,0.2043874 -0.405204,0.6104834 -0.204388,0.8148694 0,0.204388 0.204388,0.204388 0.409667,0.204388 0.405204,0.204387 0.46054,0.289176 0.869314,0.489993 0.204387,0 0.405204,0.204387 0.204387,0.409666 0,0 0,0.204387 -0.204387,0.204387 -1.019257,1.019256 -2.038514,1.834127 -3.055093,2.849814 -0.20528,0.206172 -0.341835,0.615838 -0.341835,0.815763 0,0.204386 0.136555,0.204386 0.136555,0.409666 0,0.205279 -0.204386,0.204386 -0.409667,0.405203 -0.405203,0.204388 -0.814869,0.409667 -1.019257,0.613161 -0.200816,0.405203 0,1.019257 -0.200816,1.425353 -0.205279,1.019257 -0.81844,1.834127 -1.224537,2.853384 -0.409665,0.610483 -0.774705,1.220074 -1.184372,1.834127 0,0.81487 -0.204387,1.425353 0.204386,2.034944 1.019257,1.42803 3.059556,0.06159 4.484909,0.671174 0.405205,0.204387 0.754179,0.241873 1.019257,0.610483 0.506059,0.702413 0.567643,2.18221 0.772922,2.796262 0.200817,0.814871 0.405204,1.629741 0.814871,2.444611 0.202601,1.010331 0.60245,2.01977 0.808621,2.826608 4.63396,-3.225565 7.672096,-8.581572 7.672096,-14.65338 0,-5.623763 -2.607049,-10.6334739 -6.672474,-13.9054487 z M 25.563112,6.8804892 C 26.170026,6.4904578 26.576122,5.7130731 26.779616,5.1302586 26.978647,4.7393353 27.589131,3.9628436 27.386529,3.3800281 27.228553,3.0765719 26.585939,2.8944977 26.116474,2.7365226 24.625967,2.3339962 23.067629,2.099263 21.450383,2.099263 c -0.410558,0 -0.813084,0.03392 -1.216503,0.061585 -0.34005,0.1178131 -0.632796,0.3177373 -0.743468,0.6372585 -0.203494,0.9719539 0.606912,0.7764917 1.415535,0.9719539 0,0 0.203494,1.5547683 0.203494,1.7502305 0.203494,0.9719528 -0.406096,1.5547684 -0.406096,2.5240442 0,0.5854925 0,1.5574453 0.406096,1.9456917 h 0.203494 c 0.203496,0 0.402527,-0.1954622 0.809516,-0.3864614 0.606913,-0.3909233 1.216503,-0.9719528 1.822524,-1.3628761 0.60602,-0.3873534 1.212041,-0.9728459 1.618137,-1.3602001 z"
id="path14"
style="fill:url(#NOym_MWXn_NqLuEERx94Yb);stroke-width:0.892519" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -1,300 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 48 48"
width="240px"
height="240px"
version="1.1"
id="svg16"
sodipodi:docname="icons8-globe-fibre.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs20">
<linearGradient
id="gdLL2FB7VtbBMLliRKBSLb"
x1="29.028"
x2="32.015999"
y1="42.352001"
y2="30.365"
gradientTransform="matrix(0.40350215,0,0,-0.45710877,27.208522,59.376218)"
gradientUnits="userSpaceOnUse">
<stop
offset="0"
stop-color="#2aa4f4"
id="stop15" />
<stop
offset="1"
stop-color="#007ad9"
id="stop17" />
</linearGradient>
<linearGradient
id="gdLL2FB7VtbBMLliRKBSLa"
x1="33.27"
x2="44.384998"
y1="37.389999"
y2="37.389999"
gradientTransform="matrix(0.40350215,0,0,-0.45710877,27.621359,59.457029)"
gradientUnits="userSpaceOnUse">
<stop
offset=".128"
stop-color="#c9cdcf"
id="stop2-3" />
<stop
offset=".141"
stop-color="#cbced0"
id="stop4-6" />
<stop
offset=".331"
stop-color="#e1e2e4"
id="stop6" />
<stop
offset=".859"
stop-color="#e4e4e6"
id="stop8" />
</linearGradient>
<linearGradient
id="linear0"
gradientUnits="userSpaceOnUse"
x1="96.513496"
y1="32.522331"
x2="107.52508"
y2="76.694077"
gradientTransform="scale(1.395349)">
<stop
offset="0"
style="stop-color:rgb(90.588236%,42.745098%,23.529412%);stop-opacity:1;"
id="stop748" />
<stop
offset="1"
style="stop-color:rgb(71.372551%,20%,15.294118%);stop-opacity:1;"
id="stop750" />
</linearGradient>
<linearGradient
id="linear1"
gradientUnits="userSpaceOnUse"
x1="143.95325"
y1="67.796669"
x2="129.91733"
y2="47.00975"
gradientTransform="scale(4.999995)">
<stop
offset="0"
style="stop-color:rgb(41.176471%,3.529412%,3.529412%);stop-opacity:1;"
id="stop753" />
<stop
offset="1"
style="stop-color:rgb(71.372551%,20%,15.294118%);stop-opacity:1;"
id="stop755" />
</linearGradient>
<linearGradient
id="linear2"
gradientUnits="userSpaceOnUse"
x1="121.83333"
y1="43"
x2="132.58333"
y2="43"
gradientTransform="scale(4.999995)">
<stop
offset="0"
style="stop-color:rgb(82.352942%,80.392158%,80.392158%);stop-opacity:1;"
id="stop758" />
<stop
offset="1"
style="stop-color:rgb(100%,100%,100%);stop-opacity:1;"
id="stop760" />
</linearGradient>
<linearGradient
id="linear0-6"
gradientUnits="userSpaceOnUse"
x1="119.2175"
y1="37.625"
x2="150.28453"
y2="37.396008"
gradientTransform="matrix(0.13504871,0,0,0.13504871,22.367593,18.30681)">
<stop
offset="0.128"
style="stop-color:rgb(78.823531%,80.392158%,81.176472%);stop-opacity:1;"
id="stop1052" />
<stop
offset="0.141"
style="stop-color:rgb(79.607844%,80.784315%,81.568629%);stop-opacity:1;"
id="stop1054" />
<stop
offset="0.331"
style="stop-color:rgb(88.235295%,88.627452%,89.411765%);stop-opacity:1;"
id="stop1056" />
<stop
offset="0.859"
style="stop-color:rgb(88.235295%,88.235295%,88.235295%);stop-opacity:1;"
id="stop1058" />
</linearGradient>
<linearGradient
id="linear1-2"
gradientUnits="userSpaceOnUse"
x1="104.017"
y1="19.8445"
x2="114.724"
y2="62.79792"
gradientTransform="matrix(0.13504871,0,0,0.13504871,22.367593,18.30681)">
<stop
offset="0"
style="stop-color:rgb(94.509804%,76.862746%,5.882353%);stop-opacity:1;"
id="stop1061" />
<stop
offset="1"
style="stop-color:rgb(88.235295%,64.313728%,3.137255%);stop-opacity:1;"
id="stop1063" />
</linearGradient>
<linearGradient
id="linear0-62"
gradientUnits="userSpaceOnUse"
x1="96.513496"
y1="32.522331"
x2="107.52508"
y2="76.694077"
gradientTransform="scale(1.395349)">
<stop
offset="0"
style="stop-color:rgb(90.588236%,42.745098%,23.529412%);stop-opacity:1;"
id="stop748-6" />
<stop
offset="1"
style="stop-color:rgb(71.372551%,20%,15.294118%);stop-opacity:1;"
id="stop750-1" />
</linearGradient>
<linearGradient
id="linear1-8"
gradientUnits="userSpaceOnUse"
x1="143.95325"
y1="67.796669"
x2="129.91733"
y2="47.00975"
gradientTransform="scale(4.999995)">
<stop
offset="0"
style="stop-color:rgb(41.176471%,3.529412%,3.529412%);stop-opacity:1;"
id="stop753-7" />
<stop
offset="1"
style="stop-color:rgb(71.372551%,20%,15.294118%);stop-opacity:1;"
id="stop755-9" />
</linearGradient>
<linearGradient
id="linear2-2"
gradientUnits="userSpaceOnUse"
x1="121.83333"
y1="43"
x2="132.58333"
y2="43"
gradientTransform="scale(4.999995)">
<stop
offset="0"
style="stop-color:rgb(82.352942%,80.392158%,80.392158%);stop-opacity:1;"
id="stop758-0" />
<stop
offset="1"
style="stop-color:rgb(100%,100%,100%);stop-opacity:1;"
id="stop760-2" />
</linearGradient>
</defs>
<sodipodi:namedview
id="namedview18"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="2.8416667"
inkscape:cx="76.891496"
inkscape:cy="147.09677"
inkscape:window-width="2560"
inkscape:window-height="1382"
inkscape:window-x="1920"
inkscape:window-y="314"
inkscape:window-maximized="1"
inkscape:current-layer="surface58844133" />
<linearGradient
id="NOym_MWXn_NqLuEERx94Ya"
x1="9.858"
x2="38.387"
y1="9.858"
y2="38.387"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.89251916,0,0,0.89251916,0.02992325,-1.4708132)">
<stop
offset="0"
stop-color="#00bffe"
id="stop2" />
<stop
offset="1"
stop-color="#1d55c4"
id="stop4" />
</linearGradient>
<linearGradient
id="NOym_MWXn_NqLuEERx94Yb"
x1="10.205"
x2="38.625"
y1="9.68"
y2="38.1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.89251916,0,0,0.89251916,0.02992325,-1.4708132)">
<stop
offset="0"
stop-color="#84e1fe"
id="stop9" />
<stop
offset="1"
stop-color="#167cf7"
id="stop11" />
</linearGradient>
<g
inkscape:groupmode="layer"
id="layer9"
inkscape:label="Layer 4">
<g
id="surface58844133"
transform="matrix(0.09067475,0,0,-0.09067475,25.736323,48.2465)">
<path
style="fill:#e6613a;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 175,210 H 40 c -5.519531,0 -10,-4.48047 -10,-10 0,-5.51953 4.480469,-10 10,-10 h 135 c 13.78516,0 25,-11.21484 25,-25 0,-13.78516 -11.21484,-25 -25,-25 H 65 C 40.191406,140 20,119.81641 20,95 20,70.183594 40.191406,50 65,50 h 30 c 5.51953,0 10,4.480469 10,10 0,5.519531 -4.48047,10 -10,10 H 65 c -13.785156,0 -25,11.214844 -25,25 0,13.78516 11.214844,25 25,25 h 110 c 24.80859,0 45,20.18359 45,45 0,24.81641 -20.19141,45 -45,45 z m 0,0"
id="path765" />
<path
style="fill:url(#linear0-62);fill-rule:nonzero;stroke:none"
d="M 177.85937,34.878906 C 177.48437,34.910156 177.125,35 176.75,35 h -58.46875 c -5.30469,0 -10.39453,2.109375 -14.14453,5.859375 L 95,50 v 20 l 9.13672,9.140625 c 3.75,3.75 8.83984,5.859375 14.14453,5.859375 h 59.57812 z m 0,0"
id="path767" />
<path
style="fill:url(#linear1-8);fill-rule:nonzero;stroke:none"
d="m 195,60 c 0,13.808594 -7.83594,25 -17.5,25 -9.66406,0 -17.5,-11.191406 -17.5,-25 0,-13.808594 7.83594,-25 17.5,-25 9.66406,0 17.5,11.191406 17.5,25 z m 0,0"
id="path769" />
<path
style="fill:#ffffff;fill-rule:nonzero;stroke:none"
d="m 185,60 c 0,5.523438 -3.35938,10 -7.5,10 -4.14063,0 -7.5,-4.476562 -7.5,-10 0,-5.523438 3.35937,-10 7.5,-10 4.14062,0 7.5,4.476562 7.5,10 z m 0,0"
id="path771" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Layer 2">
<path
fill="url(#NOym_MWXn_NqLuEERx94Ya)"
d="m 39.300768,19.949647 c 0,9.857875 -7.99251,17.850384 -17.850385,17.850384 C 11.592509,37.800031 3.6,29.807522 3.6,19.949647 3.6,10.091773 11.592509,2.099263 21.450383,2.099263 c 9.857875,0 17.850385,7.99251 17.850385,17.850384 z"
id="path7"
style="fill:url(#NOym_MWXn_NqLuEERx94Ya);stroke-width:0.892519" />
</g>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="Layer 3">
<path
fill="url(#NOym_MWXn_NqLuEERx94Yb)"
d="m 21.245104,29.328239 c 0.205279,0.60959 0,1.424461 -0.204387,1.834127 -0.200816,0.610483 -0.405203,1.425352 -0.81487,1.830557 -0.405203,0.409666 -0.814869,0.614945 -1.220074,0.818439 -0.610482,0.405205 -1.019257,1.220074 -1.629739,1.834128 0,0.200816 -0.814871,1.237031 -1.019257,1.237031 -0.07587,0.04017 -0.148158,0.07676 -0.221345,0.11335 -1.203116,-0.374858 -2.34554,-0.881809 -3.424596,-1.489614 -0.0071,-0.02142 -0.01518,-0.04194 -0.02321,-0.06426 0,-0.204386 -0.200816,-1.42803 -0.200816,-1.629739 -0.204388,-0.613161 -0.409667,-1.428032 -0.613161,-2.038514 -0.405204,-1.019257 -1.220074,-2.038514 -1.220074,-3.258588 0,-1.02015 0.200817,-2.034944 -0.409666,-2.853384 C 9.429043,24.642514 7.7993027,24.642514 6.9844327,24.03203 5.7598965,23.21716 4.5398227,21.997086 3.9293396,20.77255 3.783859,20.53157 3.6856819,20.307548 3.6053551,20.087096 3.6062476,20.039792 3.6,19.996058 3.6,19.949647 3.6,15.169314 5.4903556,10.837027 8.5516965,7.6328828 10.226063,6.2789306 13.491791,5.6559521 15.474075,6.2539406 c 0.610484,0.2008162 2.806973,1.5146043 2.806973,2.1250878 0,0.2043872 0,0.2043872 -0.204386,0.4096664 -0.200818,0.2043872 -0.406097,0.2043872 -0.610484,0.2043872 -0.610484,0 -2.533862,-0.4435824 -2.739141,-0.6488616 -1.224536,-0.4087744 -3.055093,2.2402226 -3.258588,3.0550926 -0.204386,0.613161 -0.204386,2.038514 0.814871,2.242901 0.610482,0 3.404067,-2.370531 3.813734,-2.574918 1.629739,-0.200816 2.889084,1.195976 3.298751,2.624899 0.610482,1.62974 -2.833749,3.205037 -4.058285,3.614703 -0.405204,0.204386 -0.60959,-0.204387 -1.019257,0 -1.015687,0.405204 -1.616352,1.315573 -1.737735,2.533861 -0.102635,1.03086 -0.204386,2.035837 -0.405204,3.055094 -0.204387,0 -0.622978,-0.0027 -0.622978,-0.207064 v -0.405205 c 0,-0.614945 -0.204387,-1.428923 -0.81487,-1.633309 -0.204387,-0.199924 -0.49267,0.121382 -0.697057,0.121382 -0.610484,0 -1.2200743,-0.61316 -1.8305574,-0.204387 -0.4096663,0.405204 -0.81487,1.019257 -0.81487,1.62974 0,0.20528 0,0.409667 0.2008168,0.610484 0.4096663,0.204386 0.8148701,-0.200817 1.2245363,0 0.4052038,0 0.4052038,0.409666 0.4052038,0.61316 0.4096667,0.610483 0.8148705,1.425354 1.4280305,1.62974 h 4.073458 c 0.610483,0.204387 1.62974,0.405204 2.038513,0.814871 0.199925,0.405203 0.199925,0.814869 0.405204,1.220073 1.019258,1.019256 2.239331,1.019256 3.462975,1.428031 0.406988,0.204387 0.612268,0.405203 0.611375,0.81487 z M 32.628294,6.0441984 c -0.09014,0.02678 -0.180289,0.050875 -0.268648,0.08925 -0.610484,0.2043861 -2.20363,3.1461297 -2.611511,3.7557202 -0.204388,0.2043874 -0.405204,0.6104834 -0.204388,0.8148694 0,0.204388 0.204388,0.204388 0.409667,0.204388 0.405204,0.204387 0.46054,0.289176 0.869314,0.489993 0.204387,0 0.405204,0.204387 0.204387,0.409666 0,0 0,0.204387 -0.204387,0.204387 -1.019257,1.019256 -2.038514,1.834127 -3.055093,2.849814 -0.20528,0.206172 -0.341835,0.615838 -0.341835,0.815763 0,0.204386 0.136555,0.204386 0.136555,0.409666 0,0.205279 -0.204386,0.204386 -0.409667,0.405203 -0.405203,0.204388 -0.814869,0.409667 -1.019257,0.613161 -0.200816,0.405203 0,1.019257 -0.200816,1.425353 -0.205279,1.019257 -0.81844,1.834127 -1.224537,2.853384 -0.409665,0.610483 -0.774705,1.220074 -1.184372,1.834127 0,0.81487 -0.204387,1.425353 0.204386,2.034944 1.019257,1.42803 3.059556,0.06159 4.484909,0.671174 0.405205,0.204387 0.754179,0.241873 1.019257,0.610483 0.506059,0.702413 0.567643,2.18221 0.772922,2.796262 0.200817,0.814871 0.405204,1.629741 0.814871,2.444611 0.202601,1.010331 0.60245,2.01977 0.808621,2.826608 4.63396,-3.225565 7.672096,-8.581572 7.672096,-14.65338 0,-5.623763 -2.607049,-10.6334739 -6.672474,-13.9054487 z M 25.563112,6.8804892 C 26.170026,6.4904578 26.576122,5.7130731 26.779616,5.1302586 26.978647,4.7393353 27.589131,3.9628436 27.386529,3.3800281 27.228553,3.0765719 26.585939,2.8944977 26.116474,2.7365226 24.625967,2.3339962 23.067629,2.099263 21.450383,2.099263 c -0.410558,0 -0.813084,0.03392 -1.216503,0.061585 -0.34005,0.1178131 -0.632796,0.3177373 -0.743468,0.6372585 -0.203494,0.9719539 0.606912,0.7764917 1.415535,0.9719539 0,0 0.203494,1.5547683 0.203494,1.7502305 0.203494,0.9719528 -0.406096,1.5547684 -0.406096,2.5240442 0,0.5854925 0,1.5574453 0.406096,1.9456917 h 0.203494 c 0.203496,0 0.402527,-0.1954622 0.809516,-0.3864614 0.606913,-0.3909233 1.216503,-0.9719528 1.822524,-1.3628761 0.60602,-0.3873534 1.212041,-0.9728459 1.618137,-1.3602001 z"
id="path14"
style="fill:url(#NOym_MWXn_NqLuEERx94Yb);stroke-width:0.892519" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -1,245 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 48 48"
width="240px"
height="240px"
version="1.1"
id="svg16"
sodipodi:docname="icons8-globe-wired.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs20">
<linearGradient
id="gdLL2FB7VtbBMLliRKBSLb"
x1="29.028"
x2="32.015999"
y1="42.352001"
y2="30.365"
gradientTransform="matrix(0.40350215,0,0,-0.45710877,27.208522,59.376218)"
gradientUnits="userSpaceOnUse">
<stop
offset="0"
stop-color="#2aa4f4"
id="stop15" />
<stop
offset="1"
stop-color="#007ad9"
id="stop17" />
</linearGradient>
<linearGradient
id="gdLL2FB7VtbBMLliRKBSLa"
x1="33.27"
x2="44.384998"
y1="37.389999"
y2="37.389999"
gradientTransform="matrix(0.40350215,0,0,-0.45710877,27.621359,59.457029)"
gradientUnits="userSpaceOnUse">
<stop
offset=".128"
stop-color="#c9cdcf"
id="stop2-3" />
<stop
offset=".141"
stop-color="#cbced0"
id="stop4-6" />
<stop
offset=".331"
stop-color="#e1e2e4"
id="stop6" />
<stop
offset=".859"
stop-color="#e4e4e6"
id="stop8" />
</linearGradient>
<linearGradient
id="linear0"
gradientUnits="userSpaceOnUse"
x1="96.513496"
y1="32.522331"
x2="107.52508"
y2="76.694077"
gradientTransform="scale(1.395349)">
<stop
offset="0"
style="stop-color:rgb(90.588236%,42.745098%,23.529412%);stop-opacity:1;"
id="stop748" />
<stop
offset="1"
style="stop-color:rgb(71.372551%,20%,15.294118%);stop-opacity:1;"
id="stop750" />
</linearGradient>
<linearGradient
id="linear1"
gradientUnits="userSpaceOnUse"
x1="143.95325"
y1="67.796669"
x2="129.91733"
y2="47.00975"
gradientTransform="scale(4.999995)">
<stop
offset="0"
style="stop-color:rgb(41.176471%,3.529412%,3.529412%);stop-opacity:1;"
id="stop753" />
<stop
offset="1"
style="stop-color:rgb(71.372551%,20%,15.294118%);stop-opacity:1;"
id="stop755" />
</linearGradient>
<linearGradient
id="linear2"
gradientUnits="userSpaceOnUse"
x1="121.83333"
y1="43"
x2="132.58333"
y2="43"
gradientTransform="scale(4.999995)">
<stop
offset="0"
style="stop-color:rgb(82.352942%,80.392158%,80.392158%);stop-opacity:1;"
id="stop758" />
<stop
offset="1"
style="stop-color:rgb(100%,100%,100%);stop-opacity:1;"
id="stop760" />
</linearGradient>
<linearGradient
id="linear0-6"
gradientUnits="userSpaceOnUse"
x1="119.2175"
y1="37.625"
x2="150.28453"
y2="37.396008"
gradientTransform="matrix(0.13504871,0,0,0.13504871,22.367593,18.30681)">
<stop
offset="0.128"
style="stop-color:rgb(78.823531%,80.392158%,81.176472%);stop-opacity:1;"
id="stop1052" />
<stop
offset="0.141"
style="stop-color:rgb(79.607844%,80.784315%,81.568629%);stop-opacity:1;"
id="stop1054" />
<stop
offset="0.331"
style="stop-color:rgb(88.235295%,88.627452%,89.411765%);stop-opacity:1;"
id="stop1056" />
<stop
offset="0.859"
style="stop-color:rgb(88.235295%,88.235295%,88.235295%);stop-opacity:1;"
id="stop1058" />
</linearGradient>
<linearGradient
id="linear1-2"
gradientUnits="userSpaceOnUse"
x1="104.017"
y1="19.8445"
x2="114.724"
y2="62.79792"
gradientTransform="matrix(0.13504871,0,0,0.13504871,22.367593,18.30681)">
<stop
offset="0"
style="stop-color:rgb(94.509804%,76.862746%,5.882353%);stop-opacity:1;"
id="stop1061" />
<stop
offset="1"
style="stop-color:rgb(88.235295%,64.313728%,3.137255%);stop-opacity:1;"
id="stop1063" />
</linearGradient>
</defs>
<sodipodi:namedview
id="namedview18"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="2.8416667"
inkscape:cx="28.680352"
inkscape:cy="44.692082"
inkscape:window-width="2560"
inkscape:window-height="1382"
inkscape:window-x="1920"
inkscape:window-y="314"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<linearGradient
id="NOym_MWXn_NqLuEERx94Ya"
x1="9.858"
x2="38.387"
y1="9.858"
y2="38.387"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.89251916,0,0,0.89251916,0.02992325,-1.4708132)">
<stop
offset="0"
stop-color="#00bffe"
id="stop2" />
<stop
offset="1"
stop-color="#1d55c4"
id="stop4" />
</linearGradient>
<linearGradient
id="NOym_MWXn_NqLuEERx94Yb"
x1="10.205"
x2="38.625"
y1="9.68"
y2="38.1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.89251916,0,0,0.89251916,0.02992325,-1.4708132)">
<stop
offset="0"
stop-color="#84e1fe"
id="stop9" />
<stop
offset="1"
stop-color="#167cf7"
id="stop11" />
</linearGradient>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Layer 1"
style="display:inline;opacity:1">
<path
fill="url(#gdLL2FB7VtbBMLliRKBSLa)"
d="m 45.27135,41.140681 -1.763707,-0.799483 c -0.205383,-0.09279 -0.441835,0.02011 -0.524553,0.25461 -0.08272,0.234496 0.01816,0.500534 0.225153,0.594241 l 1.08058,0.49002 h -3.755395 v 2.742652 h 4.842026 c 0.222732,0 0.403502,-0.204784 0.403502,-0.457108 0,-0.158159 0,-1.874603 0,-1.976081 0,-0.376201 -0.19933,-0.709433 -0.507606,-0.848851 z"
id="path11"
style="fill:url(#gdLL2FB7VtbBMLliRKBSLa);stroke-width:0.42947" />
<path
fill="#0078d4"
d="M 41.324504,29.250406 H 30.429946 c -0.445466,0 -0.807004,0.40957 -0.807004,0.914219 0,0.504647 0.361538,0.914216 0.807004,0.914216 h 10.894558 c 1.112455,0 2.017511,1.025296 2.017511,2.285545 0,1.260249 -0.905056,2.285543 -2.017511,2.285543 h -8.877047 c -2.002178,0 -3.63152,1.845348 -3.63152,4.113979 0,2.26863 1.629342,4.113979 3.63152,4.113979 h 2.421013 c 0.445466,0 0.807003,-0.40957 0.807003,-0.914218 0,-0.504648 -0.361537,-0.914217 -0.807003,-0.914217 h -2.421013 c -1.112455,0 -2.017511,-1.025295 -2.017511,-2.285544 0,-1.260249 0.905056,-2.285544 2.017511,-2.285544 h 8.877047 c 2.002177,0 3.631519,-1.845348 3.631519,-4.113978 0,-2.268631 -1.629342,-4.11398 -3.631519,-4.11398 z"
id="path13"
style="stroke-width:0.42947" />
<path
fill="url(#gdLL2FB7VtbBMLliRKBSLb)"
d="m 43.348609,39.313714 h -0.685954 c -0.706936,0 -1.378767,0.350146 -1.839163,0.958557 v 0 c -0.19812,0.261923 -0.487835,0.41277 -0.792478,0.41277 h -3.277245 c -0.428116,0 -0.83888,0.192899 -1.141507,0.535731 l -0.737198,0.835595 v 1.828435 l 0.737198,0.835595 c 0.302627,0.342831 0.713391,0.535731 1.141507,0.535731 h 4.173827 c 0.222733,0 0.403502,-0.204784 0.403502,-0.457109 v -3.608872 c 0,-0.118849 0.03752,-0.233583 0.105717,-0.323634 v 0 c 0.306662,-0.405455 0.754146,-0.638581 1.225437,-0.638581 h 0.686357 c 0.223136,0 0.403501,-0.204785 0.403501,-0.457108 0,-0.252325 -0.180365,-0.45711 -0.403501,-0.45711 z"
id="path20"
style="fill:url(#gdLL2FB7VtbBMLliRKBSLb);stroke-width:0.42947" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Layer 2">
<path
fill="url(#NOym_MWXn_NqLuEERx94Ya)"
d="m 39.300768,19.949647 c 0,9.857875 -7.99251,17.850384 -17.850385,17.850384 C 11.592509,37.800031 3.6,29.807522 3.6,19.949647 3.6,10.091773 11.592509,2.099263 21.450383,2.099263 c 9.857875,0 17.850385,7.99251 17.850385,17.850384 z"
id="path7"
style="fill:url(#NOym_MWXn_NqLuEERx94Ya);stroke-width:0.892519" />
</g>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="Layer 3">
<path
fill="url(#NOym_MWXn_NqLuEERx94Yb)"
d="m 21.245104,29.328239 c 0.205279,0.60959 0,1.424461 -0.204387,1.834127 -0.200816,0.610483 -0.405203,1.425352 -0.81487,1.830557 -0.405203,0.409666 -0.814869,0.614945 -1.220074,0.818439 -0.610482,0.405205 -1.019257,1.220074 -1.629739,1.834128 0,0.200816 -0.814871,1.237031 -1.019257,1.237031 -0.07587,0.04017 -0.148158,0.07676 -0.221345,0.11335 -1.203116,-0.374858 -2.34554,-0.881809 -3.424596,-1.489614 -0.0071,-0.02142 -0.01518,-0.04194 -0.02321,-0.06426 0,-0.204386 -0.200816,-1.42803 -0.200816,-1.629739 -0.204388,-0.613161 -0.409667,-1.428032 -0.613161,-2.038514 -0.405204,-1.019257 -1.220074,-2.038514 -1.220074,-3.258588 0,-1.02015 0.200817,-2.034944 -0.409666,-2.853384 C 9.429043,24.642514 7.7993027,24.642514 6.9844327,24.03203 5.7598965,23.21716 4.5398227,21.997086 3.9293396,20.77255 3.783859,20.53157 3.6856819,20.307548 3.6053551,20.087096 3.6062476,20.039792 3.6,19.996058 3.6,19.949647 3.6,15.169314 5.4903556,10.837027 8.5516965,7.6328828 10.226063,6.2789306 13.491791,5.6559521 15.474075,6.2539406 c 0.610484,0.2008162 2.806973,1.5146043 2.806973,2.1250878 0,0.2043872 0,0.2043872 -0.204386,0.4096664 -0.200818,0.2043872 -0.406097,0.2043872 -0.610484,0.2043872 -0.610484,0 -2.533862,-0.4435824 -2.739141,-0.6488616 -1.224536,-0.4087744 -3.055093,2.2402226 -3.258588,3.0550926 -0.204386,0.613161 -0.204386,2.038514 0.814871,2.242901 0.610482,0 3.404067,-2.370531 3.813734,-2.574918 1.629739,-0.200816 2.889084,1.195976 3.298751,2.624899 0.610482,1.62974 -2.833749,3.205037 -4.058285,3.614703 -0.405204,0.204386 -0.60959,-0.204387 -1.019257,0 -1.015687,0.405204 -1.616352,1.315573 -1.737735,2.533861 -0.102635,1.03086 -0.204386,2.035837 -0.405204,3.055094 -0.204387,0 -0.622978,-0.0027 -0.622978,-0.207064 v -0.405205 c 0,-0.614945 -0.204387,-1.428923 -0.81487,-1.633309 -0.204387,-0.199924 -0.49267,0.121382 -0.697057,0.121382 -0.610484,0 -1.2200743,-0.61316 -1.8305574,-0.204387 -0.4096663,0.405204 -0.81487,1.019257 -0.81487,1.62974 0,0.20528 0,0.409667 0.2008168,0.610484 0.4096663,0.204386 0.8148701,-0.200817 1.2245363,0 0.4052038,0 0.4052038,0.409666 0.4052038,0.61316 0.4096667,0.610483 0.8148705,1.425354 1.4280305,1.62974 h 4.073458 c 0.610483,0.204387 1.62974,0.405204 2.038513,0.814871 0.199925,0.405203 0.199925,0.814869 0.405204,1.220073 1.019258,1.019256 2.239331,1.019256 3.462975,1.428031 0.406988,0.204387 0.612268,0.405203 0.611375,0.81487 z M 32.628294,6.0441984 c -0.09014,0.02678 -0.180289,0.050875 -0.268648,0.08925 -0.610484,0.2043861 -2.20363,3.1461297 -2.611511,3.7557202 -0.204388,0.2043874 -0.405204,0.6104834 -0.204388,0.8148694 0,0.204388 0.204388,0.204388 0.409667,0.204388 0.405204,0.204387 0.46054,0.289176 0.869314,0.489993 0.204387,0 0.405204,0.204387 0.204387,0.409666 0,0 0,0.204387 -0.204387,0.204387 -1.019257,1.019256 -2.038514,1.834127 -3.055093,2.849814 -0.20528,0.206172 -0.341835,0.615838 -0.341835,0.815763 0,0.204386 0.136555,0.204386 0.136555,0.409666 0,0.205279 -0.204386,0.204386 -0.409667,0.405203 -0.405203,0.204388 -0.814869,0.409667 -1.019257,0.613161 -0.200816,0.405203 0,1.019257 -0.200816,1.425353 -0.205279,1.019257 -0.81844,1.834127 -1.224537,2.853384 -0.409665,0.610483 -0.774705,1.220074 -1.184372,1.834127 0,0.81487 -0.204387,1.425353 0.204386,2.034944 1.019257,1.42803 3.059556,0.06159 4.484909,0.671174 0.405205,0.204387 0.754179,0.241873 1.019257,0.610483 0.506059,0.702413 0.567643,2.18221 0.772922,2.796262 0.200817,0.814871 0.405204,1.629741 0.814871,2.444611 0.202601,1.010331 0.60245,2.01977 0.808621,2.826608 4.63396,-3.225565 7.672096,-8.581572 7.672096,-14.65338 0,-5.623763 -2.607049,-10.6334739 -6.672474,-13.9054487 z M 25.563112,6.8804892 C 26.170026,6.4904578 26.576122,5.7130731 26.779616,5.1302586 26.978647,4.7393353 27.589131,3.9628436 27.386529,3.3800281 27.228553,3.0765719 26.585939,2.8944977 26.116474,2.7365226 24.625967,2.3339962 23.067629,2.099263 21.450383,2.099263 c -0.410558,0 -0.813084,0.03392 -1.216503,0.061585 -0.34005,0.1178131 -0.632796,0.3177373 -0.743468,0.6372585 -0.203494,0.9719539 0.606912,0.7764917 1.415535,0.9719539 0,0 0.203494,1.5547683 0.203494,1.7502305 0.203494,0.9719528 -0.406096,1.5547684 -0.406096,2.5240442 0,0.5854925 0,1.5574453 0.406096,1.9456917 h 0.203494 c 0.203496,0 0.402527,-0.1954622 0.809516,-0.3864614 0.606913,-0.3909233 1.216503,-0.9719528 1.822524,-1.3628761 0.60602,-0.3873534 1.212041,-0.9728459 1.618137,-1.3602001 z"
id="path14"
style="fill:url(#NOym_MWXn_NqLuEERx94Yb);stroke-width:0.892519" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><linearGradient id="yOIoQFQSxgltO8Uv2xJFsa" x1="24" x2="24" y1="30.083" y2="42.5" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#c3cdd9"/><stop offset="1" stop-color="#9fa7b0"/></linearGradient><path fill="url(#yOIoQFQSxgltO8Uv2xJFsa)" d="M42,30H6v10c0,1.105,0.895,2,2,2h32c1.105,0,2-0.895,2-2V30z"/><linearGradient id="yOIoQFQSxgltO8Uv2xJFsb" x1="24" x2="24" y1="6" y2="31.799" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#737b80"/><stop offset="1" stop-color="#575c61"/></linearGradient><path fill="url(#yOIoQFQSxgltO8Uv2xJFsb)" d="M10.764,6h26.471c1.008,0,1.859,0.75,1.984,1.751l2.767,22.02C42.124,30.958,41.195,32,40,32 H8c-1.195,0-2.124-1.042-1.987-2.229L8.78,7.751C8.906,6.75,9.756,6,10.764,6z"/><path d="M35,35c1.105,0,2,0.895,2,2s-0.895,2-2,2s-2-0.895-2-2S33.895,35,35,35 M35,34c-1.654,0-3,1.346-3,3s1.346,3,3,3 s3-1.346,3-3S36.654,34,35,34L35,34z" opacity=".05"/><path d="M35,35c1.105,0,2,0.895,2,2s-0.895,2-2,2s-2-0.895-2-2S33.895,35,35,35 M35,34.5c-1.379,0-2.5,1.121-2.5,2.5 s1.121,2.5,2.5,2.5s2.5-1.121,2.5-2.5S36.379,34.5,35,34.5L35,34.5z" opacity=".07"/><linearGradient id="yOIoQFQSxgltO8Uv2xJFsc" x1="35" x2="35" y1="34.667" y2="39.007" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#75ff8a"/><stop offset="1" stop-color="#1ee446"/></linearGradient><circle cx="35" cy="37" r="2" fill="url(#yOIoQFQSxgltO8Uv2xJFsc)"/><path d="M24,10c6.627,0,12,3.582,12,8s-5.373,8-12,8s-12-3.582-12-8S17.373,10,24,10 M24,20c2.209,0,4-0.895,4-2 c0-1.105-1.791-2-4-2s-4,0.895-4,2C20,19.105,21.791,20,24,20 M24,9c-7.168,0-13,4.037-13,9s5.832,9,13,9s13-4.037,13-9 S31.168,9,24,9L24,9z M24,19c-1.936,0-3-0.751-3-1s1.064-1,3-1s3,0.751,3,1S25.936,19,24,19L24,19z" opacity=".05"/><path d="M24,10c6.627,0,12,3.582,12,8s-5.373,8-12,8s-12-3.582-12-8S17.373,10,24,10 M24,20c2.209,0,4-0.895,4-2 c0-1.105-1.791-2-4-2s-4,0.895-4,2C20,19.105,21.791,20,24,20 M24,9.5c-6.893,0-12.5,3.813-12.5,8.5s5.607,8.5,12.5,8.5 s12.5-3.813,12.5-8.5S30.893,9.5,24,9.5L24,9.5z M24,19.5c-2.003,0-3.5-0.792-3.5-1.5s1.497-1.5,3.5-1.5s3.5,0.792,3.5,1.5 S26.003,19.5,24,19.5L24,19.5z" opacity=".07"/><linearGradient id="yOIoQFQSxgltO8Uv2xJFsd" x1="24" x2="24" y1="8.75" y2="29.408" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#75daff"/><stop offset="1" stop-color="#1ea2e4"/></linearGradient><path fill="url(#yOIoQFQSxgltO8Uv2xJFsd)" d="M24,10c-6.627,0-12,3.582-12,8s5.373,8,12,8s12-3.582,12-8S30.627,10,24,10z M24,20 c-2.209,0-4-0.895-4-2c0-1.105,1.791-2,4-2s4,0.895,4,2C28,19.105,26.209,20,24,20z"/><path d="M31.83,31.56L26.6,22.5C26.06,21.56,25.08,21,24,21s-2.06,0.56-2.6,1.5l-5.23,9.06L15.91,32h1.16 l5.2-9c0.38-0.67,1.06-1,1.73-1s1.35,0.33,1.73,1l5.2,9h1.16L31.83,31.56z" opacity=".05"/><path d="M31.4,31.81l-5.23-9.06C25.71,21.97,24.9,21.5,24,21.5s-1.71,0.47-2.17,1.25l-5.23,9.06L16.49,32 h0.58l5.2-9c0.38-0.67,1.06-1,1.73-1s1.35,0.33,1.73,1l5.2,9h0.58L31.4,31.81z" opacity=".07"/><linearGradient id="yOIoQFQSxgltO8Uv2xJFse" x1="24" x2="24" y1="22.938" y2="31.81" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#899198"/><stop offset="1" stop-color="#787e85"/></linearGradient><path fill="url(#yOIoQFQSxgltO8Uv2xJFse)" d="M22.268,22.938L17.036,32h13.928l-5.232-9.062C24.962,21.604,23.038,21.604,22.268,22.938z"/></svg>

Before

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><linearGradient id="fPvdG1ZNQTM4UETTntuoUa" x1="23.5" x2="23.5" y1="14.459" y2="5" gradientTransform="rotate(-90 24 23.5)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#42a3f2"/><stop offset="1" stop-color="#42a4eb"/></linearGradient><path fill="url(#fPvdG1ZNQTM4UETTntuoUa)" d="M5,17v14c0,0.552,0.448,1,1,1h8c0.552,0,1-0.448,1-1V17c0-0.552-0.448-1-1-1H6 C5.448,16,5,16.448,5,17z"/><linearGradient id="fPvdG1ZNQTM4UETTntuoUb" x1="23.5" x2="23.5" y1="41.459" y2="32" gradientTransform="rotate(-90 24 23.5)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3079d6"/><stop offset="1" stop-color="#297cd2"/></linearGradient><path fill="url(#fPvdG1ZNQTM4UETTntuoUb)" d="M32,19v10c0,0.552,0.448,1,1,1h8c0.552,0,1-0.448,1-1V19c0-0.552-0.448-1-1-1h-8 C32.448,18,32,18.448,32,19z"/><linearGradient id="fPvdG1ZNQTM4UETTntuoUc" x1="39.5" x2="39.5" y1="41.459" y2="32" gradientTransform="rotate(-90 24 23.5)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3079d6"/><stop offset="1" stop-color="#297cd2"/></linearGradient><path fill="url(#fPvdG1ZNQTM4UETTntuoUc)" d="M32,3v10c0,0.552,0.448,1,1,1h8c0.552,0,1-0.448,1-1V3c0-0.552-0.448-1-1-1h-8 C32.448,2,32,2.448,32,3z"/><linearGradient id="fPvdG1ZNQTM4UETTntuoUd" x1="7.5" x2="7.5" y1="41.459" y2="32" gradientTransform="rotate(-90 24 23.5)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3079d6"/><stop offset="1" stop-color="#297cd2"/></linearGradient><path fill="url(#fPvdG1ZNQTM4UETTntuoUd)" d="M32,35v10c0,0.552,0.448,1,1,1h8c0.552,0,1-0.448,1-1V35c0-0.552-0.448-1-1-1h-8 C32.448,34,32,34.448,32,35z"/><rect width="17" height="2" x="15" y="23" fill="#64717c"/><path fill="#64717c" d="M32,7v2h-8c-0.551,0-1,0.449-1,1v28c0,0.551,0.449,1,1,1h8v2h-8c-1.654,0-3-1.346-3-3V10 c0-1.654,1.346-3,3-3H32z"/></svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -1,181 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 48 48"
width="240px"
height="240px"
version="1.1"
id="svg1633"
sodipodi:docname="icons8-hypervisor.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1637" />
<sodipodi:namedview
id="namedview1635"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="2.8416667"
inkscape:cx="124.22287"
inkscape:cy="161.52493"
inkscape:window-width="2560"
inkscape:window-height="1382"
inkscape:window-x="1920"
inkscape:window-y="314"
inkscape:window-maximized="1"
inkscape:current-layer="svg1633" />
<linearGradient
id="H5zWGZDzzYRltSZyl6Krha"
x1="10.517"
x2="36.546"
y1="5.342"
y2="41.361"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.79016159,0,0,0.79016159,4.2796009,2.6739179)">
<stop
offset="0"
stop-color="#2aa4f4"
id="stop1590" />
<stop
offset="1"
stop-color="#007ad9"
id="stop1592" />
</linearGradient>
<path
fill="url(#H5zWGZDzzYRltSZyl6Krha)"
d="M 32.725418,5.8345643 H 13.76154 c -0.873128,0 -1.580323,0.7071946 -1.580323,1.5803232 V 35.860705 c 0,0.873128 0.707195,1.580323 1.580323,1.580323 h 18.963878 c 0.873129,0 1.580324,-0.707195 1.580324,-1.580323 V 7.4148875 c 0,-0.8731286 -0.707195,-1.5803232 -1.580324,-1.5803232 z"
id="path1595"
style="fill:url(#H5zWGZDzzYRltSZyl6Krha);stroke-width:0.790162" />
<radialGradient
id="H5zWGZDzzYRltSZyl6Krhb"
cx="24"
cy="37"
r="3"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.79016159,0,0,0.79016159,4.2796009,2.6739179)">
<stop
offset=".582"
stop-opacity=".2"
id="stop1597" />
<stop
offset="1"
stop-opacity="0"
id="stop1599" />
</radialGradient>
<circle
cx="23.243479"
cy="31.909897"
r="2.3704848"
fill="url(#H5zWGZDzzYRltSZyl6Krhb)"
id="circle1602"
style="fill:url(#H5zWGZDzzYRltSZyl6Krhb);stroke-width:0.790162" />
<circle
cx="23.243479"
cy="31.909897"
r="1.5803232"
fill="#ffffff"
id="circle1604"
style="stroke-width:0.790162" />
<linearGradient
id="H5zWGZDzzYRltSZyl6Krhc"
x1="14"
x2="34"
y1="11"
y2="11"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.79016159,0,0,0.79016159,4.2796009,2.6739179)">
<stop
offset="0"
stop-color="#1d59b3"
id="stop1606" />
<stop
offset="1"
stop-color="#195bbc"
id="stop1608" />
</linearGradient>
<path
fill="url(#H5zWGZDzzYRltSZyl6Krhc)"
d="m 30.750014,13.73618 h -15.01307 c -0.218084,0 -0.395081,-0.176996 -0.395081,-0.395081 V 9.3902915 c 0,-0.2180846 0.176997,-0.3950808 0.395081,-0.3950808 h 15.01307 c 0.218085,0 0.395081,0.1769962 0.395081,0.3950808 v 3.9508075 c 0,0.218085 -0.176996,0.395081 -0.395081,0.395081 z"
id="path1611"
style="fill:url(#H5zWGZDzzYRltSZyl6Krhc);stroke-width:0.790162" />
<circle
cx="28.774611"
cy="11.365695"
r="0.79016161"
fill="#50e6ff"
id="circle1613"
style="stroke-width:0.790162" />
<linearGradient
id="H5zWGZDzzYRltSZyl6Krhd"
x1="14"
x2="34"
y1="19"
y2="19"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.79016159,0,0,0.79016159,4.2796009,2.6739179)">
<stop
offset="0"
stop-color="#1d59b3"
id="stop1615" />
<stop
offset="1"
stop-color="#195bbc"
id="stop1617" />
</linearGradient>
<path
fill="url(#H5zWGZDzzYRltSZyl6Krhd)"
d="m 30.750014,20.057473 h -15.01307 c -0.218084,0 -0.395081,-0.176997 -0.395081,-0.395081 v -3.950808 c 0,-0.218085 0.176997,-0.395081 0.395081,-0.395081 h 15.01307 c 0.218085,0 0.395081,0.176996 0.395081,0.395081 v 3.950808 c 0,0.218084 -0.176996,0.395081 -0.395081,0.395081 z"
id="path1620"
style="fill:url(#H5zWGZDzzYRltSZyl6Krhd);stroke-width:0.790162" />
<circle
cx="28.774611"
cy="17.686989"
r="0.79016161"
fill="#50e6ff"
id="circle1622"
style="stroke-width:0.790162" />
<linearGradient
id="H5zWGZDzzYRltSZyl6Krhe"
x1="14"
x2="34"
y1="27"
y2="27"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.79016159,0,0,0.79016159,4.2796009,2.6739179)">
<stop
offset="0"
stop-color="#1d59b3"
id="stop1624" />
<stop
offset="1"
stop-color="#195bbc"
id="stop1626" />
</linearGradient>
<path
fill="url(#H5zWGZDzzYRltSZyl6Krhe)"
d="m 30.750014,26.378765 h -15.01307 c -0.218084,0 -0.395081,-0.176996 -0.395081,-0.39508 v -3.950808 c 0,-0.218085 0.176997,-0.395081 0.395081,-0.395081 h 15.01307 c 0.218085,0 0.395081,0.176996 0.395081,0.395081 v 3.950808 c 0,0.218084 -0.176996,0.39508 -0.395081,0.39508 z"
id="path1629"
style="fill:url(#H5zWGZDzzYRltSZyl6Krhe);stroke-width:0.790162" />
<circle
cx="28.774611"
cy="24.008282"
r="0.79016161"
fill="#50e6ff"
id="circle1631"
style="stroke-width:0.790162" />
<path
style="fill:#ff8700;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.0935741"
d="m 37.923349,43.305897 h -9.825278 c -1.033702,0 -1.871482,-0.837781 -1.871482,-1.871482 v -9.825278 c 0,-1.033701 0.83778,-1.871482 1.871482,-1.871482 h 9.825278 c 1.033701,0 1.871482,0.837781 1.871482,1.871482 v 9.825278 c 0,1.033701 -0.837781,1.871482 -1.871482,1.871482 z m -0.935741,-4.210834 v -5.146574 c 0,-0.775276 -0.628335,-1.403611 -1.403611,-1.403611 h -5.146574 c -0.775276,0 -1.403612,0.628335 -1.403612,1.403611 v 5.146574 c 0,0.775277 0.628336,1.403612 1.403612,1.403612 h 5.146574 c 0.775276,0 1.403611,-0.628335 1.403611,-1.403612 z m 0,0"
id="path718" />
<path
style="fill:#23a1e3;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.0935741"
d="m 42.134183,25.526821 h -9.825279 c -1.034066,0 -1.871481,0.837415 -1.871481,1.871482 v 2.339352 h 2.807222 c 0,-0.776738 0.626874,-1.403611 1.403611,-1.403611 h 5.146575 c 0.77674,0 1.403611,0.626873 1.403611,1.403611 v 5.146575 c 0,0.776737 -0.626871,1.403611 -1.403611,1.403611 h -5.146575 c -0.776737,0 -1.403611,-0.626874 -1.403611,-1.403611 v -2.339352 h -2.807222 v 4.678704 c 0,1.034066 0.837415,1.871481 1.871481,1.871481 h 9.825279 c 1.034068,0 1.871482,-0.837415 1.871482,-1.871481 v -9.825279 c 0,-1.034067 -0.837414,-1.871482 -1.871482,-1.871482 z m 0,0"
id="path724" />
</svg>

Before

Width:  |  Height:  |  Size: 6.8 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="480px" height="480px"><path fill="#e1f5fe" d="M38.5 14L29 14 29 4.5z"/><path fill="#c8e6c9" d="M40 45L8 45 8 3 30 3 40 13z"/><path fill="#f1f8e9" d="M38.5 14L29 14 29 4.5z"/><path fill="#a5d6a7" d="M13 8H19V10H13zM21 8H27V10H21zM13 12H19V14H13zM21 12H27V14H21zM13 34H19V36H13zM21 34H27V36H21zM13 38H19V40H13zM21 38H27V40H21zM29 34H35V36H29zM29 38H35V40H29z"/><path fill="#5e9c76" d="M8 16H40V32H8z"/><path fill="#455a64" d="M32,39h16l-8-10L32,39z"/><path fill="#455a64" d="M37 34H43V48H37z"/><path fill="#fff" d="M18.801 25.602c0 1.098-.402 2-.902 2.5C17.301 28.699 16.5 29 15.5 29c-1.102 0-1.898-.398-2.5-1.102-.602-.699-.898-1.797-.898-3.098v-1.602c0-1.301.297-2.398.898-3.098C13.602 19.398 14.398 19 15.5 19s1.898.301 2.398.898c.602.602.902 1.402.902 2.602h-2c0-.699-.102-1.199-.301-1.398-.199-.301-.5-.402-1.102-.402-.5 0-.898.199-1.098.602-.199.398-.301 1-.301 1.801v1.797c0 1 .102 1.602.301 2 .199.402.598.5 1.098.5.5 0 .902-.098 1.102-.398s.301-.699.301-1.398H18.801zM24.98 26.391c0-.406-.105-.715-.313-.922s-.582-.422-1.133-.645c-.996-.379-1.715-.82-2.152-1.332-.438-.508-.656-1.105-.656-1.801 0-.836.297-1.512.895-2.02.594-.508 1.352-.762 2.266-.762.609 0 1.156.129 1.633.387.48.258.848.621 1.105 1.09s.387 1.004.387 1.602h-2.004c0-.465-.102-.82-.297-1.063-.199-.246-.484-.367-.859-.367-.348 0-.621.105-.82.313-.195.207-.293.484-.293.836 0 .273.109.523.328.742.219.223.605.449 1.164.688.969.352 1.676.781 2.113 1.293.441.512.66 1.16.66 1.949 0 .863-.273 1.543-.828 2.027-.551.488-1.301.73-2.246.73-.645 0-1.23-.129-1.758-.395s-.941-.645-1.242-1.137c-.297-.492-.445-1.07-.445-1.742H22.5c0 .574.113.992.336 1.25.223.262.586.391 1.094.391C24.629 27.504 24.98 27.133 24.98 26.391zM32.066 26.266l1.676-7.219h2.242L33.113 29H31.02l-2.852-9.953h2.23L32.066 26.266z"/></svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

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