Admin: Add promotional page for Grafana Enterprise (#21422)

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
This commit is contained in:
Emil Tullstedt 2020-01-15 14:50:44 +01:00 committed by GitHub
parent 32f055111c
commit 29687903f8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 493 additions and 27 deletions

View File

@ -4,7 +4,7 @@ import { Input } from './Input/Input';
import { Select } from './Select/Select';
import { Form } from './Form';
import { Field } from './Field';
import { Button } from './Button';
import { Button, LinkButton } from './Button';
const Forms = {
getFormStyles,
@ -13,6 +13,7 @@ const Forms = {
Form,
Field,
Button,
LinkButton,
Select,
};

View File

@ -4,6 +4,7 @@ import (
"encoding/hex"
"errors"
"fmt"
"github.com/grafana/grafana/pkg/services/licensing"
"io/ioutil"
"net/http"
"net/http/httptest"
@ -83,7 +84,7 @@ func TestLoginErrorCookieApiEndpoint(t *testing.T) {
sc := setupScenarioContext("/login")
hs := &HTTPServer{
Cfg: setting.NewCfg(),
License: models.OSSLicensingService{},
License: &licensing.OSSLicensingService{},
}
sc.defaultHandler = Wrap(func(w http.ResponseWriter, c *models.ReqContext) {
@ -133,7 +134,7 @@ func TestLoginViewRedirect(t *testing.T) {
sc := setupScenarioContext("/login")
hs := &HTTPServer{
Cfg: setting.NewCfg(),
License: models.OSSLicensingService{},
License: &licensing.OSSLicensingService{},
}
hs.Cfg.CookieSecure = true
@ -247,7 +248,7 @@ func TestLoginPostRedirect(t *testing.T) {
hs := &HTTPServer{
log: &FakeLogger{},
Cfg: setting.NewCfg(),
License: models.OSSLicensingService{},
License: &licensing.OSSLicensingService{},
AuthTokenService: auth.NewFakeUserAuthTokenService(),
}
hs.Cfg.CookieSecure = true
@ -350,7 +351,7 @@ func TestLoginOAuthRedirect(t *testing.T) {
sc := setupScenarioContext("/login")
hs := &HTTPServer{
Cfg: setting.NewCfg(),
License: models.OSSLicensingService{},
License: &licensing.OSSLicensingService{},
}
sc.defaultHandler = Wrap(func(c *models.ReqContext) {
@ -408,7 +409,7 @@ func setupAuthProxyLoginTest(enableLoginToken bool) *scenarioContext {
sc := setupScenarioContext("/login")
hs := &HTTPServer{
Cfg: setting.NewCfg(),
License: models.OSSLicensingService{},
License: &licensing.OSSLicensingService{},
AuthTokenService: auth.NewFakeUserAuthTokenService(),
log: log.New("hello"),
}

View File

@ -6,8 +6,8 @@ import (
_ "github.com/crewjam/saml"
_ "github.com/gobwas/glob"
"github.com/grafana/grafana/pkg/models"
"github.com/grafana/grafana/pkg/registry"
"github.com/grafana/grafana/pkg/services/licensing"
_ "github.com/jung-kurt/gofpdf"
_ "github.com/linkedin/goavro/v2"
_ "github.com/pkg/errors"
@ -18,7 +18,7 @@ import (
)
func init() {
registry.RegisterService(&models.OSSLicensingService{})
registry.RegisterService(&licensing.OSSLicensingService{})
}
var IsEnterprise bool = false

View File

@ -2,6 +2,7 @@ package usagestats
import (
"bytes"
"github.com/grafana/grafana/pkg/services/licensing"
"io/ioutil"
"runtime"
"sync"
@ -25,7 +26,7 @@ func TestMetrics(t *testing.T) {
uss := &UsageStatsService{
Bus: bus.New(),
SQLStore: sqlstore.InitTestDB(t),
License: models.OSSLicensingService{},
License: &licensing.OSSLicensingService{},
}
var getSystemStatsQuery *models.GetSystemStatsQuery

View File

@ -10,21 +10,3 @@ type Licensing interface {
// Expiry returns the unix epoch timestamp when the license expires, or 0 if no valid license is provided
Expiry() int64
}
type OSSLicensingService struct{}
func (OSSLicensingService) HasLicense() bool {
return false
}
func (OSSLicensingService) Expiry() int64 {
return 0
}
func (OSSLicensingService) Init() error {
return nil
}
func (OSSLicensingService) HasValidLicense() bool {
return false
}

View File

@ -0,0 +1,41 @@
package licensing
import (
"github.com/grafana/grafana/pkg/api/dtos"
"github.com/grafana/grafana/pkg/services/hooks"
"github.com/grafana/grafana/pkg/setting"
)
type OSSLicensingService struct {
Cfg *setting.Cfg `inject:""`
HooksService *hooks.HooksService `inject:""`
}
func (*OSSLicensingService) HasLicense() bool {
return false
}
func (*OSSLicensingService) Expiry() int64 {
return 0
}
func (l *OSSLicensingService) Init() error {
l.HooksService.AddIndexDataHook(func(indexData *dtos.IndexViewData) {
for _, node := range indexData.NavTree {
if node.Id == "admin" {
node.Children = append(node.Children, &dtos.NavLink{
Text: "Upgrade",
Id: "upgrading",
Url: l.Cfg.AppSubUrl + "/admin/upgrading",
Icon: "fa fa-fw fa-unlock-alt",
})
}
}
})
return nil
}
func (*OSSLicensingService) HasValidLicense() bool {
return false
}

View File

@ -0,0 +1,105 @@
import React from 'react';
import { stylesFactory, useTheme } from '@grafana/ui';
import { css } from 'emotion';
import { GrafanaTheme } from '@grafana/data';
const title = { fontWeight: 500, fontSize: '26px', lineHeight: '123%' };
const getStyles = stylesFactory((theme: GrafanaTheme) => {
const background = theme.colors.panelBg;
const backgroundUrl = theme.isDark
? '/public/img/licensing/header_dark.svg'
: '/public/img/licensing/header_light.svg';
const footerBg = theme.isDark ? theme.colors.dark9 : theme.colors.gray6;
return {
container: css`
display: grid;
grid-template-columns: 100%;
column-gap: 20px;
row-gap: 40px;
padding: 42px 20px 0 77px;
background-color: ${background};
@media (min-width: 1050px) {
grid-template-columns: 50% 50%;
}
`,
footer: css`
text-align: center;
padding: 16px;
background: ${footerBg};
`,
header: css`
height: 137px;
padding: 40px 0 0 79px;
position: relative;
background: url('${backgroundUrl}') right;
`,
};
});
interface Props {
header: string;
subheader?: string;
editionNotice?: string;
}
export const LicenseChrome: React.FC<Props> = ({ header, editionNotice, subheader, children }) => {
const theme = useTheme();
const styles = getStyles(theme);
return (
<>
<div className={styles.header}>
<h2 style={title}>{header}</h2>
{subheader && <h3>{subheader}</h3>}
<Circle
size="128px"
style={{
boxShadow: '0px 0px 24px rgba(24, 58, 110, 0.45)',
background: '#0A1C36',
position: 'absolute',
top: '19px',
left: '71%',
}}
>
<img
className="logo-icon"
src="/public/img/grafana_icon.svg"
alt="Grafana"
width="80px"
style={{ position: 'absolute', left: '23px', top: '20px' }}
/>
</Circle>
</div>
<div className={styles.container}>{children}</div>
{editionNotice && <div className={styles.footer}>{editionNotice}</div>}
</>
);
};
interface CircleProps {
size: string;
style?: React.CSSProperties;
}
export const Circle: React.FC<CircleProps> = ({ size, style, children }) => {
return (
<div
style={{
width: size,
height: size,
position: 'absolute',
bottom: 0,
right: 0,
borderRadius: '50%',
...style,
}}
>
{children}
</div>
);
};

View File

@ -0,0 +1,188 @@
import React from 'react';
import { css } from 'emotion';
import { NavModel } from '@grafana/data';
import Page from '../../core/components/Page/Page';
import { LicenseChrome } from './LicenseChrome';
import { Forms } from '@grafana/ui';
import { hot } from 'react-hot-loader';
import { StoreState } from '../../types';
import { getNavModel } from '../../core/selectors/navModel';
import { connect } from 'react-redux';
interface Props {
navModel: NavModel;
}
export const UpgradePage: React.FC<Props> = ({ navModel }) => {
return (
<Page navModel={navModel}>
<Page.Contents>
<UpgradeInfo
editionNotice="You are running the open-source version of Grafana.
You have to install the Enterprise edition in order enable Enterprise features."
/>
</Page.Contents>
</Page>
);
};
const titleStyles = { fontWeight: 500, fontSize: '26px', lineHeight: '123%' };
interface UpgradeInfoProps {
editionNotice?: string;
}
export const UpgradeInfo: React.FC<UpgradeInfoProps> = ({ editionNotice }) => {
return (
<LicenseChrome header="Grafana Enterprise" subheader="Get your free trial" editionNotice={editionNotice}>
<FeatureInfo />
<ServiceInfo />
</LicenseChrome>
);
};
const GetEnterprise: React.FC = () => {
return (
<div style={{ marginTop: '60px', marginBottom: '60px' }}>
<h2 style={titleStyles}>Get Grafana Enterprise</h2>
<CallToAction />
<p style={{ paddingTop: '12px' }}>
You can use the trial version for free for <strong>30 days</strong>. We will remind you about it{' '}
<strong>5 days before the trial period ends</strong>.
</p>
</div>
);
};
const CallToAction: React.FC = () => {
return (
<Forms.LinkButton
variant="primary"
size="lg"
href="https://grafana.com/contact?about=grafana-enterprise&utm_source=grafana-upgrade-page"
>
Contact us and get a free trial
</Forms.LinkButton>
);
};
const ServiceInfo: React.FC = () => {
return (
<div>
<h4>At your service</h4>
<List>
<Item title="Premium Plugins" image="/public/img/licensing/plugin_enterprise.svg" />
<Item title="Critical SLA: 2 hours" image="/public/img/licensing/sla.svg" />
<Item title="Unlimited Expert Support" image="/public/img/licensing/customer_support.svg">
24x7x365 support via
<List nested={true}>
<Item title="Email" />
<Item title="Private slack channel" />
<Item title="Phone" />
</List>
</Item>
<Item title="Hand-in-hand support" image="/public/img/licensing/handinhand_support.svg">
in the upgrade process
</Item>
</List>
<div style={{ marginTop: '20px' }}>
<strong>Also included:</strong>
<br />
Indemnification, working with Grafana Labs on future prioritization, and training from the core Grafana team.
</div>
</div>
);
};
const FeatureInfo: React.FC = () => {
return (
<div style={{ paddingRight: '11px' }}>
<h4>Enhanced Functionality</h4>
<FeatureListing />
<GetEnterprise />
</div>
);
};
const FeatureListing: React.FC = () => {
return (
<List>
<Item title="Data source permissions" />
<Item title="Reporting" />
<Item title="SAML Authentication" />
<Item title="Enhanced LDAP Integration" />
<Item title="Team Sync">LDAP, GitHub OAuth, Auth Proxy</Item>
<Item title="White labeling" />
<Item title="Premium Plugins">
<List nested={true}>
<Item title="Oracle" />
<Item title="Splunk" />
<Item title="Service Now" />
<Item title="Dynatrace" />
<Item title="DataDog" />
<Item title="AppDynamics" />
</List>
</Item>
</List>
);
};
interface ListProps {
nested?: boolean;
}
const List: React.FC<ListProps> = ({ children, nested }) => {
const listStyle = css`
display: flex;
flex-direction: column;
padding-top: 8px;
> div {
margin-bottom: ${nested ? 0 : 8}px;
}
`;
return <div className={listStyle}>{children}</div>;
};
interface ItemProps {
title: string;
image?: string;
}
const Item: React.FC<ItemProps> = ({ children, title, image }) => {
const imageUrl = image ? image : '/public/img/licensing/checkmark.svg';
const itemStyle = css`
display: flex;
> img {
display: block;
height: 22px;
flex-grow: 0;
padding-right: 12px;
}
`;
const titleStyle = css`
font-weight: 500;
line-height: 1.7;
`;
return (
<div className={itemStyle}>
<img src={imageUrl} />
<div>
<div className={titleStyle}>{title}</div>
{children}
</div>
</div>
);
};
const mapStateToProps = (state: StoreState) => ({
navModel: getNavModel(state.navIndex, 'upgrading'),
});
export default hot(module)(connect(mapStateToProps)(UpgradePage));

View File

@ -290,6 +290,12 @@ export function setupAngularRoutes($routeProvider: route.IRouteProvider, $locati
SafeDynamicImport(import(/* webpackChunkName: "AdminSettings" */ 'app/features/admin/AdminSettings')),
},
})
.when('/admin/upgrading', {
template: '<react-container />',
resolve: {
component: () => SafeDynamicImport(import('app/features/admin/UpgradePage')),
},
})
.when('/admin/users', {
templateUrl: 'public/app/features/admin/partials/users.html',
controller: 'AdminListUsersCtrl',

View File

@ -0,0 +1,3 @@
<svg width="16" height="12" viewBox="0 0 16 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.7099 1.2101C14.617 1.11638 14.5064 1.04198 14.3845 0.991213C14.2627 0.940445 14.132 0.914307 13.9999 0.914307C13.8679 0.914307 13.7372 0.940445 13.6154 0.991213C13.4935 1.04198 13.3829 1.11638 13.29 1.2101L5.83995 8.6701L2.70995 5.5301C2.61343 5.43687 2.49949 5.36355 2.37463 5.31435C2.24978 5.26514 2.11645 5.24101 1.98227 5.24334C1.84809 5.24566 1.71568 5.27438 1.5926 5.32788C1.46953 5.38137 1.35819 5.45858 1.26495 5.55511C1.17171 5.65163 1.0984 5.76557 1.04919 5.89042C0.999989 6.01528 0.975859 6.1486 0.97818 6.28278C0.980502 6.41696 1.00923 6.54937 1.06272 6.67245C1.11622 6.79553 1.19343 6.90687 1.28995 7.0001L5.12995 10.8401C5.22291 10.9338 5.33351 11.0082 5.45537 11.059C5.57723 11.1098 5.70794 11.1359 5.83995 11.1359C5.97196 11.1359 6.10267 11.1098 6.22453 11.059C6.34639 11.0082 6.45699 10.9338 6.54995 10.8401L14.7099 2.68011C14.8115 2.58646 14.8925 2.47281 14.9479 2.34631C15.0033 2.21981 15.0319 2.08321 15.0319 1.94511C15.0319 1.807 15.0033 1.6704 14.9479 1.5439C14.8925 1.4174 14.8115 1.30375 14.7099 1.2101Z" fill="#5794F2"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,5 @@
<svg width="22" height="22" viewBox="0 0 214 214" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M210.43 145.18L162.18 97.0002C163.189 92.0643 163.688 87.038 163.67 82.0002C163.655 68.2406 160.172 54.7067 153.544 42.6487C146.916 30.5907 137.356 20.3974 125.748 13.0105C114.139 5.62356 100.856 1.2812 87.126 0.384517C73.3956 -0.512163 59.6607 2.06576 47.19 7.88015C45.6184 8.59799 44.2443 9.68604 43.1853 11.0511C42.1262 12.4162 41.4138 14.0176 41.1091 15.7183C40.8044 17.4189 40.9164 19.168 41.4355 20.8159C41.9547 22.4638 42.8655 23.9613 44.09 25.1802L90.54 71.5102L71.32 90.7302L25 44.2902C23.7685 43.0915 22.2691 42.2034 20.6261 41.6995C18.9831 41.1956 17.2437 41.0902 15.5519 41.3922C13.8601 41.6942 12.2645 42.3949 10.8974 43.4362C9.53019 44.4775 8.43072 45.8294 7.68998 47.3802C1.85341 59.8978 -0.721932 73.6884 0.203603 87.4688C1.12914 101.249 5.52547 114.572 12.9835 126.196C20.4416 137.821 30.719 147.37 42.8594 153.955C54.9999 160.541 68.6088 163.948 82.42 163.86C87.458 163.883 92.4849 163.384 97.42 162.37L145.57 210.63C147.566 212.637 150.277 213.771 153.108 213.782C155.938 213.794 158.658 212.681 160.67 210.69L160.73 210.63C162.74 208.635 163.875 205.924 163.886 203.093C163.897 200.261 162.784 197.541 160.79 195.53L160.73 195.47L108.42 143.15C107.111 141.852 105.488 140.915 103.709 140.43C101.931 139.945 100.057 139.927 98.27 140.38C93.1151 141.758 87.8057 142.474 82.47 142.51C66.4153 142.651 50.962 136.409 39.5093 125.157C28.0566 113.905 21.5426 98.5648 21.4 82.5102V82.0802C21.3861 78.5056 21.6737 74.9363 22.26 71.4102L64.11 113.41C66.1034 115.421 68.8139 116.558 71.6455 116.571C74.4771 116.585 77.198 115.473 79.21 113.48L79.27 113.41L113.27 79.1402C115.193 77.1489 116.268 74.4886 116.268 71.7202C116.268 68.9517 115.193 66.2914 113.27 64.3002L71.64 22.4002C75.1671 21.8226 78.7359 21.5383 82.31 21.5501C98.347 21.574 113.719 27.9621 125.049 39.3114C136.38 50.6607 142.743 66.0431 142.74 82.0802C142.708 87.4162 141.993 92.7262 140.61 97.8801C140.163 99.6628 140.183 101.531 140.668 103.303C141.153 105.076 142.087 106.694 143.38 108L195.7 160.31C197.715 162.297 200.434 163.407 203.264 163.397C206.095 163.387 208.806 162.259 210.807 160.257C212.808 158.256 213.937 155.545 213.947 152.715C213.957 149.885 212.847 147.165 210.86 145.15L210.43 145.18Z" fill="#5794F2"/>
<path d="M191.25 45.5C203.814 45.5 214 35.3145 214 22.75C214 10.1855 203.814 0 191.25 0C178.686 0 168.5 10.1855 168.5 22.75C168.5 35.3145 178.686 45.5 191.25 45.5Z" fill="#FADE2A"/>
<path d="M22.75 214C35.3145 214 45.5 203.814 45.5 191.25C45.5 178.686 35.3145 168.5 22.75 168.5C10.1855 168.5 0 178.686 0 191.25C0 203.814 10.1855 214 22.75 214Z" fill="#1F60C4"/>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1,11 @@
<svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.136 0.045828L17.6027 1.86806C17.7837 1.92918 17.9409 2.04563 18.052 2.20095C18.1632 2.35627 18.2228 2.5426 18.2223 2.73361V13.2116L16.4001 13.7583V3.38962L12.7556 2.17783V13.011L15.6657 13.9786L12.6237 14.8912L11.8445 14.6236L6.65113 16.3548C6.46759 16.4146 6.26978 16.4146 6.08624 16.3548L0.61956 14.5325C0.438594 14.4714 0.281414 14.355 0.170237 14.1996C0.0590605 14.0443 -0.000490023 13.858 3.03723e-06 13.667V0.911386C0.000671449 0.766838 0.0357229 0.624523 0.102262 0.496198C0.168801 0.367873 0.264917 0.257221 0.382671 0.173384C0.49949 0.0887175 0.634746 0.0330034 0.777306 0.0108274C0.919867 -0.0113486 1.06566 0.00064727 1.20267 0.045828L6.3778 1.8225L11.5529 0.045828H11.6167H11.7351H11.9447C11.9871 0.0415655 12.0298 0.0415655 12.0723 0.045828H12.136ZM1.82223 13.011L5.46669 14.2228V3.38962L1.82223 2.17783V13.011ZM7.28891 14.2228L10.9334 13.011V2.17783L7.28891 3.38962V14.2228Z" fill="#5794F2"/>
<path d="M23.4468 11.5628C23.1985 11.3097 22.8835 11.1321 22.5384 11.0505C22.1933 10.9688 21.8322 10.9865 21.4967 11.1014L12.2987 14.175C11.9277 14.2964 11.6036 14.5299 11.371 14.8433C11.1385 15.1567 11.009 15.5345 11.0005 15.9246C10.9919 16.3147 11.1047 16.6978 11.3233 17.0211C11.5418 17.3444 11.8554 17.5919 12.2207 17.7294L15.6269 19.029C15.7044 19.0587 15.7751 19.104 15.8343 19.1621C15.8936 19.2202 15.9403 19.2899 15.9714 19.3669L17.2715 22.7783C17.4038 23.1383 17.6439 23.4488 17.9592 23.6674C18.2744 23.886 18.6494 24.0021 19.0331 24H19.0786C19.4693 23.9929 19.8479 23.8637 20.1615 23.6307C20.4751 23.3976 20.7078 23.0723 20.8272 22.7004L23.9018 13.4927C24.0137 13.1606 24.0303 12.8039 23.9499 12.4628C23.8695 12.1218 23.6952 11.81 23.4468 11.5628ZM22.6993 13.0833L19.5921 22.2975C19.556 22.4141 19.4836 22.5161 19.3853 22.5886C19.2871 22.6611 19.1682 22.7003 19.0461 22.7004C18.9247 22.7024 18.8056 22.6674 18.7045 22.6C18.6035 22.5327 18.5254 22.4363 18.4805 22.3235L17.1805 18.912C17.0862 18.6642 16.9408 18.4389 16.7538 18.2508C16.5668 18.0627 16.3423 17.9161 16.0949 17.8204L12.6822 16.5208C12.5671 16.4786 12.4681 16.4013 12.3993 16.2999C12.3305 16.1985 12.2953 16.078 12.2987 15.9554C12.2988 15.8334 12.338 15.7145 12.4105 15.6163C12.483 15.5181 12.585 15.4457 12.7017 15.4096L21.9192 12.3361C22.0251 12.2929 22.1411 12.2814 22.2534 12.3028C22.3656 12.3242 22.4693 12.3777 22.5518 12.4567C22.6343 12.5358 22.6921 12.637 22.7183 12.7482C22.7445 12.8594 22.7379 12.9758 22.6993 13.0833Z" fill="#F05A28" stroke="#F05A28"/>
</g>
<defs>
<clipPath id="clip0">
<path d="M0 0H25V25H0V0Z" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -0,0 +1,53 @@
<svg width="1440" height="137" viewBox="0 0 1440 137" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0)">
<path d="M1440 0H0V137H1440V0Z" fill="#021E40"/>
<path d="M1352.25 109.727H1336.5L1352.25 107.063V109.727Z" fill="#0D3875"/>
<path d="M1600.31 -120.523L1382.27 97.4689" stroke="url(#paint0_linear)" stroke-width="25" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M1213.25 378.265C1304.66 378.265 1378.76 304.162 1378.76 212.75C1378.76 121.339 1304.66 47.2354 1213.25 47.2354C1121.84 47.2354 1047.74 121.339 1047.74 212.75C1047.74 304.162 1121.84 378.265 1213.25 378.265Z" stroke="url(#paint1_linear)" stroke-width="3" stroke-miterlimit="10"/>
<path d="M1213.25 480.649C1361.21 480.649 1481.15 360.707 1481.15 212.75C1481.15 64.7939 1361.21 -55.1484 1213.25 -55.1484C1065.29 -55.1484 945.351 64.7939 945.351 212.75C945.351 360.707 1065.29 480.649 1213.25 480.649Z" stroke="#253D7F" stroke-width="3" stroke-miterlimit="10"/>
<path d="M1213.25 653.5C1456.67 653.5 1654 456.17 1654 212.75C1654 -30.6695 1456.67 -228 1213.25 -228C969.83 -228 772.5 -30.6695 772.5 212.75C772.5 456.17 969.83 653.5 1213.25 653.5Z" stroke="#253D7F" stroke-width="3" stroke-miterlimit="10"/>
<path d="M1213.25 404.48C1319.14 404.48 1404.98 318.64 1404.98 212.75C1404.98 106.86 1319.14 21.02 1213.25 21.02C1107.36 21.02 1021.52 106.86 1021.52 212.75C1021.52 318.64 1107.36 404.48 1213.25 404.48Z" stroke="#253D7F" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M1056.89 265.414C1050.96 248.358 1047.69 229.993 1047.69 210.881C1047.69 167.423 1064.46 127.843 1091.85 98.3101" stroke="#0D3875" stroke-width="9" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M1372.88 127.236C1384.26 127.236 1393.48 118.009 1393.48 106.628C1393.48 95.2468 1384.26 86.0205 1372.88 86.0205C1361.5 86.0205 1352.27 95.2468 1352.27 106.628C1352.27 118.009 1361.5 127.236 1372.88 127.236Z" fill="#021E40"/>
<path d="M1367.36 112.095C1370.4 115.132 1375.4 115.132 1378.44 112.095L1434.65 55.8797C1437.69 52.8423 1437.69 47.8423 1434.65 44.8049C1431.62 41.7675 1426.62 41.7675 1423.58 44.8049L1367.36 101.02C1364.28 104.058 1364.28 109.011 1367.36 112.095Z" fill="url(#paint2_linear)"/>
<path d="M788.622 95.7399C790.377 95.7399 791.799 94.3173 791.799 92.5623C791.799 90.8074 790.377 89.3848 788.622 89.3848C786.867 89.3848 785.444 90.8074 785.444 92.5623C785.444 94.3173 786.867 95.7399 788.622 95.7399Z" fill="#021E40"/>
<path d="M788.622 86.4878C785.257 86.4878 782.547 89.1981 782.547 92.5626C782.547 95.9271 785.257 98.6374 788.622 98.6374C791.986 98.6374 794.696 95.9271 794.696 92.5626C794.696 89.1981 791.986 86.4878 788.622 86.4878ZM788.622 95.3196C787.08 95.3196 785.865 94.1047 785.865 92.5626C785.865 91.0205 787.08 89.8056 788.622 89.8056C790.164 89.8056 791.379 91.0205 791.379 92.5626C791.379 94.1047 790.164 95.3196 788.622 95.3196Z" fill="#0D3875"/>
<path d="M1379.19 76.207C1379.89 76.207 1380.45 76.7678 1380.45 77.4687C1380.45 78.1697 1379.89 78.7304 1379.19 78.7304C1378.48 78.7304 1377.92 78.1697 1377.92 77.4687C1377.92 76.8145 1378.48 76.207 1379.19 76.207Z" fill="#0D3875"/>
<path d="M1384.93 70.5059C1385.63 70.5059 1386.2 71.0666 1386.2 71.7675C1386.2 72.4685 1385.63 73.0292 1384.93 73.0292C1384.23 73.0292 1383.67 72.4685 1383.67 71.7675C1383.67 71.0666 1384.23 70.5059 1384.93 70.5059Z" fill="#0D3875"/>
<path d="M1390.63 64.7583C1391.34 64.7583 1391.9 65.319 1391.9 66.02C1391.9 66.7209 1391.34 67.2817 1390.63 67.2817C1389.93 67.2817 1389.37 66.7209 1389.37 66.02C1389.37 65.319 1389.93 64.7583 1390.63 64.7583Z" fill="#0D3875"/>
<path d="M1213.25 332.47C1279.37 332.47 1332.97 278.87 1332.97 212.75C1332.97 146.63 1279.37 93.0298 1213.25 93.0298C1147.13 93.0298 1093.53 146.63 1093.53 212.75C1093.53 278.87 1147.13 332.47 1213.25 332.47Z" fill="#021E40"/>
<path d="M1014.14 55.9381C1025.75 55.9381 1035.16 46.5235 1035.16 34.91C1035.16 23.2965 1025.75 13.8818 1014.14 13.8818C1002.52 13.8818 993.109 23.2965 993.109 34.91C993.109 46.5235 1002.52 55.9381 1014.14 55.9381Z" fill="#021E40"/>
<path d="M1014.14 37.9474C1015.81 37.9474 1017.17 36.5875 1017.17 34.91C1017.17 33.2324 1015.81 31.8726 1014.14 31.8726C1012.46 31.8726 1011.1 33.2324 1011.1 34.91C1011.1 36.5875 1012.46 37.9474 1014.14 37.9474Z" fill="#021E40"/>
<path d="M1014.14 29.0688C1010.91 29.0688 1008.3 31.6857 1008.3 34.91C1008.3 38.1343 1010.91 40.7512 1014.14 40.7512C1017.36 40.7512 1019.98 38.1343 1019.98 34.91C1019.98 31.6857 1017.36 29.0688 1014.14 29.0688ZM1014.14 37.5736C1012.69 37.5736 1011.47 36.4053 1011.47 34.91C1011.47 33.4614 1012.64 32.2464 1014.14 32.2464C1015.59 32.2464 1016.8 33.4147 1016.8 34.91C1016.8 36.3586 1015.59 37.5736 1014.14 37.5736Z" fill="#144796"/>
<path d="M1111.65 71.4518C1123.27 71.4518 1132.68 62.0372 1132.68 50.4237C1132.68 38.8101 1123.27 29.3955 1111.65 29.3955C1100.04 29.3955 1090.62 38.8101 1090.62 50.4237C1090.62 62.0372 1100.04 71.4518 1111.65 71.4518Z" fill="#021E40" stroke="#144796" stroke-width="2" stroke-miterlimit="10"/>
<rect opacity="0.2" width="1440" height="137" fill="#1A56B3"/>
<path d="M1377.97 109.572C1376.38 112.329 1372.78 113.217 1369.98 111.581C1367.18 109.946 1366.19 106.394 1367.83 103.637C1369.42 100.88 1373.02 99.9924 1375.82 101.628C1378.62 103.263 1379.56 106.862 1377.97 109.572Z" fill="url(#paint3_linear)"/>
<path d="M1108.9 49.9561H1106.05V56.0309H1108.9V49.9561Z" fill="#FF9830"/>
<path d="M1113.05 47.3857H1110.2V56.0306H1113.05V47.3857Z" fill="#FF9830"/>
<path d="M1117.26 44.8159H1114.41V56.0309H1117.26V44.8159Z" fill="#FF9830"/>
</g>
<defs>
<linearGradient id="paint0_linear" x1="1376.44" y1="-11.5401" x2="1606.13" y2="-11.5401" gradientUnits="userSpaceOnUse">
<stop stop-color="#213368"/>
<stop offset="0.1398" stop-color="#152B59"/>
<stop offset="0.3353" stop-color="#0A244B"/>
<stop offset="0.5771" stop-color="#041F42"/>
<stop offset="1" stop-color="#021E40"/>
</linearGradient>
<linearGradient id="paint1_linear" x1="1047" y1="212.769" x2="1379.47" y2="212.769" gradientUnits="userSpaceOnUse">
<stop stop-color="#253D7F"/>
<stop offset="1" stop-color="#1F60C4"/>
</linearGradient>
<linearGradient id="paint2_linear" x1="1439.41" y1="40.8834" x2="1362.91" y2="115.765" gradientUnits="userSpaceOnUse">
<stop offset="0.2821" stop-opacity="0"/>
<stop offset="0.9979" stop-color="#144796"/>
</linearGradient>
<linearGradient id="paint3_linear" x1="1369.76" y1="111.295" x2="1375.77" y2="101.49" gradientUnits="userSpaceOnUse">
<stop stop-color="#FADE2A"/>
<stop offset="0.999" stop-color="#00E5B9"/>
</linearGradient>
<clipPath id="clip0">
<path d="M0 0H1440V137H0V0Z" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

@ -0,0 +1,52 @@
<svg width="1440" height="137" viewBox="0 0 1440 137" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0)">
<path d="M1440 0H0V137H1440V0Z" fill="#EDF4FE"/>
<path d="M1600.31 -120.523L1382.27 97.4689" stroke="url(#paint0_linear)" stroke-width="25" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M1213.25 378.265C1304.66 378.265 1378.76 304.162 1378.76 212.75C1378.76 121.339 1304.66 47.2354 1213.25 47.2354C1121.84 47.2354 1047.74 121.339 1047.74 212.75C1047.74 304.162 1121.84 378.265 1213.25 378.265Z" stroke="url(#paint1_linear)" stroke-width="3" stroke-miterlimit="10"/>
<path d="M1213.25 480.649C1361.21 480.649 1481.15 360.707 1481.15 212.75C1481.15 64.7939 1361.21 -55.1484 1213.25 -55.1484C1065.29 -55.1484 945.352 64.7939 945.352 212.75C945.352 360.707 1065.29 480.649 1213.25 480.649Z" stroke="#D4E1F4" stroke-width="3" stroke-miterlimit="10"/>
<path d="M1213.25 653.5C1456.67 653.5 1654 456.17 1654 212.75C1654 -30.6695 1456.67 -228 1213.25 -228C969.83 -228 772.5 -30.6695 772.5 212.75C772.5 456.17 969.83 653.5 1213.25 653.5Z" stroke="#D4E1F4" stroke-width="3" stroke-miterlimit="10"/>
<path d="M1213.25 404.48C1319.14 404.48 1404.98 318.64 1404.98 212.75C1404.98 106.86 1319.14 21.02 1213.25 21.02C1107.36 21.02 1021.52 106.86 1021.52 212.75C1021.52 318.64 1107.36 404.48 1213.25 404.48Z" stroke="#D4E1F4" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M1056.89 265.414C1050.96 248.358 1047.69 229.993 1047.69 210.881C1047.69 167.423 1064.46 127.843 1091.85 98.3101" stroke="#D4E1F4" stroke-width="9" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M1372.88 127.236C1384.26 127.236 1393.48 118.009 1393.48 106.628C1393.48 95.2468 1384.26 86.0205 1372.88 86.0205C1361.5 86.0205 1352.27 95.2468 1352.27 106.628C1352.27 118.009 1361.5 127.236 1372.88 127.236Z" fill="#EDF4FE"/>
<path d="M1367.36 112.095C1370.4 115.132 1375.4 115.132 1378.44 112.095L1434.65 55.8797C1437.69 52.8423 1437.69 47.8423 1434.65 44.8049C1431.62 41.7675 1426.62 41.7675 1423.58 44.8049L1367.36 101.02C1364.28 104.058 1364.28 109.011 1367.36 112.095Z" fill="url(#paint2_linear)"/>
<path d="M788.622 95.7399C790.377 95.7399 791.799 94.3173 791.799 92.5623C791.799 90.8074 790.377 89.3848 788.622 89.3848C786.867 89.3848 785.444 90.8074 785.444 92.5623C785.444 94.3173 786.867 95.7399 788.622 95.7399Z" fill="#EDF4FE"/>
<path d="M783.047 92.5626C783.047 89.4742 785.533 86.9878 788.622 86.9878C791.71 86.9878 794.196 89.4742 794.196 92.5626C794.196 95.651 791.71 98.1374 788.622 98.1374C785.533 98.1374 783.047 95.651 783.047 92.5626ZM785.365 92.5626C785.365 94.3808 786.803 95.8196 788.622 95.8196C790.44 95.8196 791.879 94.3808 791.879 92.5626C791.879 90.7444 790.44 89.3056 788.622 89.3056C786.803 89.3056 785.365 90.7444 785.365 92.5626Z" fill="#D4E1F4" stroke="#D4E1F4"/>
<path d="M1379.19 76.207C1379.89 76.207 1380.45 76.7678 1380.45 77.4687C1380.45 78.1697 1379.89 78.7304 1379.19 78.7304C1378.48 78.7304 1377.92 78.1697 1377.92 77.4687C1377.92 76.8145 1378.48 76.207 1379.19 76.207Z" fill="#5794F2"/>
<path d="M1384.93 70.5059C1385.63 70.5059 1386.2 71.0666 1386.2 71.7675C1386.2 72.4685 1385.63 73.0292 1384.93 73.0292C1384.23 73.0292 1383.67 72.4685 1383.67 71.7675C1383.67 71.0666 1384.23 70.5059 1384.93 70.5059Z" fill="#5794F2"/>
<path d="M1390.63 64.7583C1391.34 64.7583 1391.9 65.319 1391.9 66.02C1391.9 66.7209 1391.34 67.2817 1390.63 67.2817C1389.93 67.2817 1389.37 66.7209 1389.37 66.02C1389.37 65.319 1389.93 64.7583 1390.63 64.7583Z" fill="#5794F2"/>
<path d="M1213.25 332.47C1279.37 332.47 1332.97 278.87 1332.97 212.75C1332.97 146.63 1279.37 93.0298 1213.25 93.0298C1147.13 93.0298 1093.53 146.63 1093.53 212.75C1093.53 278.87 1147.13 332.47 1213.25 332.47Z" fill="#EDF4FE"/>
<path d="M1014.14 55.9381C1025.75 55.9381 1035.16 46.5235 1035.16 34.91C1035.16 23.2965 1025.75 13.8818 1014.14 13.8818C1002.52 13.8818 993.109 23.2965 993.109 34.91C993.109 46.5235 1002.52 55.9381 1014.14 55.9381Z" fill="#EDF4FE"/>
<path d="M1014.14 37.9474C1015.81 37.9474 1017.17 36.5875 1017.17 34.91C1017.17 33.2324 1015.81 31.8726 1014.14 31.8726C1012.46 31.8726 1011.1 33.2324 1011.1 34.91C1011.1 36.5875 1012.46 37.9474 1014.14 37.9474Z" fill="#EDF4FE"/>
<path d="M1008.8 34.91C1008.8 31.9618 1011.19 29.5688 1014.14 29.5688C1017.08 29.5688 1019.48 31.9618 1019.48 34.91C1019.48 37.8582 1017.08 40.2512 1014.14 40.2512C1011.19 40.2512 1008.8 37.8582 1008.8 34.91ZM1010.97 34.91C1010.97 36.6872 1012.42 38.0736 1014.14 38.0736C1015.86 38.0736 1017.3 36.6347 1017.3 34.91C1017.3 33.1328 1015.86 31.7464 1014.14 31.7464C1012.36 31.7464 1010.97 33.191 1010.97 34.91Z" fill="#D4E1F4" stroke="#D4E1F4"/>
<path d="M1111.65 71.4518C1123.27 71.4518 1132.68 62.0372 1132.68 50.4237C1132.68 38.8101 1123.27 29.3955 1111.65 29.3955C1100.04 29.3955 1090.62 38.8101 1090.62 50.4237C1090.62 62.0372 1100.04 71.4518 1111.65 71.4518Z" fill="#EDF4FE" stroke="#D4E1F4" stroke-width="2" stroke-miterlimit="10"/>
<path d="M1377.97 109.572C1376.38 112.329 1372.78 113.217 1369.98 111.581C1367.18 109.946 1366.19 106.394 1367.83 103.637C1369.42 100.88 1373.02 99.9924 1375.82 101.628C1378.62 103.263 1379.56 106.862 1377.97 109.572Z" fill="url(#paint3_linear)"/>
<path d="M1108.9 49.9561H1106.05V56.0309H1108.9V49.9561Z" fill="#FF9830"/>
<path d="M1113.05 47.3857H1110.2V56.0307H1113.05V47.3857Z" fill="#FF9830"/>
<path d="M1117.26 44.8159H1114.41V56.0309H1117.26V44.8159Z" fill="#FF9830"/>
</g>
<defs>
<linearGradient id="paint0_linear" x1="1376.44" y1="-11.5401" x2="1606.13" y2="-11.5401" gradientUnits="userSpaceOnUse">
<stop stop-color="#EDF4FE"/>
<stop offset="0.1398" stop-color="#EDF4FE"/>
<stop offset="0.3353" stop-color="#E4EAEF"/>
<stop offset="0.5771" stop-color="#D4E1F4"/>
<stop offset="1" stop-color="#C9D3DE"/>
</linearGradient>
<linearGradient id="paint1_linear" x1="1047" y1="212.769" x2="1379.47" y2="212.769" gradientUnits="userSpaceOnUse">
<stop stop-color="#C7D0D9"/>
<stop offset="1" stop-color="#D4E1F4"/>
</linearGradient>
<linearGradient id="paint2_linear" x1="1439.41" y1="40.8834" x2="1362.91" y2="115.765" gradientUnits="userSpaceOnUse">
<stop offset="0.2821" stop-color="#EDF4FE" stop-opacity="0"/>
<stop offset="0.9979" stop-color="#B8D4FF"/>
</linearGradient>
<linearGradient id="paint3_linear" x1="1369.76" y1="111.295" x2="1375.77" y2="101.49" gradientUnits="userSpaceOnUse">
<stop stop-color="#FADE2A"/>
<stop offset="0.999" stop-color="#00E5B9"/>
</linearGradient>
<clipPath id="clip0">
<path d="M0 0H1440V137H0V0Z" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 6.5 KiB

View File

@ -0,0 +1,5 @@
<svg width="22" height="22" viewBox="0 0 214 214" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M115.09 76.5299C114.779 75.9131 114.303 75.3943 113.715 75.0307C113.128 74.6672 112.451 74.4731 111.76 74.4699H93.0599V51.9999C93.0993 51.1946 92.8781 50.3981 92.4291 49.7285C91.9801 49.0589 91.3273 48.5518 90.5674 48.2824C89.8075 48.013 88.9811 47.9957 88.2106 48.233C87.4401 48.4704 86.7666 48.9497 86.2899 49.5999L56.3599 90.7799C55.9898 91.358 55.7746 92.0216 55.7351 92.7069C55.6957 93.3922 55.8332 94.0761 56.1346 94.6929C56.4359 95.3097 56.8909 95.8385 57.4558 96.2285C58.0207 96.6186 58.6764 96.8566 59.3599 96.9199H78.0999V119.36C78.0996 120.148 78.3491 120.917 78.8126 121.554C79.2762 122.192 79.9299 122.667 80.6799 122.91C81.0554 123.029 81.4461 123.093 81.8399 123.1C82.4242 123.094 82.9992 122.953 83.5197 122.687C84.0403 122.422 84.4922 122.039 84.8399 121.57L114.76 80.4199C115.168 79.8648 115.415 79.2078 115.473 78.5214C115.531 77.835 115.399 77.1458 115.09 76.5299Z" fill="#FA6400"/>
<path d="M139.1 0H32.1C23.5865 0 15.4218 3.38195 9.40187 9.40187C3.38195 15.4218 0 23.5865 0 32.1L0 139.1C0 147.613 3.38195 155.778 9.40187 161.798C15.4218 167.818 23.5865 171.2 32.1 171.2H139.1C147.613 171.2 155.778 167.818 161.798 161.798C167.818 155.778 171.2 147.613 171.2 139.1V32.1C171.2 23.5865 167.818 15.4218 161.798 9.40187C155.778 3.38195 147.613 0 139.1 0V0ZM149.8 139.1C149.8 141.938 148.673 144.659 146.666 146.666C144.659 148.673 141.938 149.8 139.1 149.8H32.1C29.2622 149.8 26.5406 148.673 24.534 146.666C22.5273 144.659 21.4 141.938 21.4 139.1V32.1C21.4 30.6949 21.6768 29.3035 22.2145 28.0053C22.7522 26.7071 23.5404 25.5275 24.534 24.534C26.5406 22.5273 29.2622 21.4 32.1 21.4H139.1C141.938 21.4 144.659 22.5273 146.666 24.534C148.673 26.5406 149.8 29.2622 149.8 32.1V139.1Z" fill="#5794F2"/>
<path d="M203.3 42.7998C201.895 42.7998 200.504 43.0766 199.205 43.6143C197.907 44.152 196.728 44.9402 195.734 45.9338C194.74 46.9273 193.952 48.1069 193.415 49.4051C192.877 50.7033 192.6 52.0947 192.6 53.4998V160.5C192.6 169.013 189.218 177.178 183.198 183.198C177.178 189.218 169.013 192.6 160.5 192.6H53.5C50.6622 192.6 47.9406 193.727 45.934 195.734C43.9274 197.74 42.8 200.462 42.8 203.3C42.8 206.138 43.9274 208.859 45.934 210.866C47.9406 212.872 50.6622 214 53.5 214H160.5C174.689 214 188.297 208.363 198.33 198.33C208.363 188.297 214 174.689 214 160.5V53.4998C214 52.0947 213.723 50.7033 213.186 49.4051C212.648 48.1069 211.86 46.9273 210.866 45.9338C209.872 44.9402 208.693 44.152 207.395 43.6143C206.097 43.0766 204.705 42.7998 203.3 42.7998Z" fill="#1F60C4"/>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -0,0 +1,12 @@
<svg width="22" height="22" viewBox="0 0 156 214" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0)">
<path d="M145.91 194.55H136.18V178.33C136.154 172.76 135.17 167.236 133.27 162C133.16 161.71 133.05 161.45 132.92 161.18C131.343 156.894 129.165 152.853 126.45 149.18L112.84 131C109.06 125.94 107.012 119.796 107 113.48V103.66C107.015 95.9176 110.084 88.4936 115.54 83.0001L121.94 76.6101C129.368 69.1423 134.139 59.4423 135.52 49.0001C135.52 48.8701 135.6 48.7501 135.6 48.6201V48.4801C135.938 46.4088 136.142 44.3178 136.21 42.2201V19.4501H145.94C147.243 19.4919 148.542 19.2713 149.758 18.8014C150.975 18.3315 152.084 17.6218 153.021 16.7147C153.958 15.8075 154.702 14.7213 155.211 13.5206C155.72 12.3198 155.982 11.0291 155.982 9.72512C155.982 8.4211 155.72 7.13039 155.211 5.92968C154.702 4.72896 153.958 3.64275 153.021 2.73557C152.084 1.82839 150.975 1.11876 149.758 0.648845C148.542 0.17893 147.243 -0.0416819 145.94 0.000117487H9.73C8.42665 -0.0416819 7.12821 0.17893 5.9118 0.648845C4.6954 1.11876 3.58587 1.82839 2.64913 2.73557C1.71239 3.64275 0.967559 4.72896 0.458895 5.92968C-0.0497699 7.13039 -0.31189 8.4211 -0.31189 9.72512C-0.31189 11.0291 -0.0497699 12.3198 0.458895 13.5206C0.967559 14.7213 1.71239 15.8075 2.64913 16.7147C3.58587 17.6218 4.6954 18.3315 5.9118 18.8014C7.12821 19.2713 8.42665 19.4919 9.73 19.4501H19.45V42.2401C19.5213 44.338 19.7284 46.429 20.07 48.5001V48.6401C20.07 48.7701 20.14 48.8901 20.15 49.0201C21.5226 59.4586 26.2828 69.1581 33.7 76.6301L40.09 83.0001C45.5403 88.4901 48.6115 95.9042 48.64 103.64V113.46C48.6257 119.782 46.5782 125.932 42.8 131L29.18 149.16C26.471 152.837 24.293 156.876 22.71 161.16C22.59 161.43 22.47 161.69 22.37 161.98C20.4731 167.214 19.4856 172.733 19.45 178.3V194.52H9.73C8.42665 194.478 7.12821 194.699 5.9118 195.169C4.6954 195.639 3.58587 196.348 2.64913 197.256C1.71239 198.163 0.967559 199.249 0.458895 200.45C-0.0497699 201.65 -0.31189 202.941 -0.31189 204.245C-0.31189 205.549 -0.0497699 206.84 0.458895 208.041C0.967559 209.241 1.71239 210.327 2.64913 211.235C3.58587 212.142 4.6954 212.851 5.9118 213.321C7.12821 213.791 8.42665 214.012 9.73 213.97H145.91C147.213 214.012 148.512 213.791 149.728 213.321C150.945 212.851 152.054 212.142 152.991 211.235C153.928 210.327 154.672 209.241 155.181 208.041C155.69 206.84 155.952 205.549 155.952 204.245C155.952 202.941 155.69 201.65 155.181 200.45C154.672 199.249 153.928 198.163 152.991 197.256C152.054 196.348 150.945 195.639 149.728 195.169C148.512 194.699 147.213 194.478 145.91 194.52V194.55ZM38.91 38.9101V19.4501H116.73V38.9101H38.91ZM47.45 62.9101C46.0785 61.5327 44.852 60.0181 43.79 58.3901H111.85C110.781 60.0161 109.552 61.5304 108.18 62.9101L101.79 69.3001C94.2228 76.8391 89.3725 86.677 88 97.2701H67.68C66.2985 86.6626 61.434 76.814 53.85 69.2701L47.45 62.9101ZM58.37 142.69C64.009 135.143 67.3525 126.129 68 116.73H87.65C88.3003 126.118 91.64 135.12 97.27 142.66L107 155.66H48.63L58.37 142.69ZM116.73 194.58H38.91V178.33C38.9366 177.246 39.0234 176.164 39.17 175.09H116.46C116.61 176.164 116.7 177.246 116.73 178.33V194.58Z" fill="#5794F2"/>
<path d="M101.79 69.2703L108.18 62.8804C109.552 61.5006 110.781 59.9863 111.85 58.3604H43.79C44.8521 59.9883 46.0785 61.503 47.45 62.8804L53.85 69.2703C61.434 76.8143 66.2985 86.6628 67.68 97.2703H88C89.3662 86.6665 94.217 76.8172 101.79 69.2703Z" fill="#1F60C4"/>
<path d="M38.91 178.33V194.55H116.73V178.33C116.7 177.246 116.61 176.164 116.46 175.09H39.17C39.0234 176.165 38.9366 177.246 38.91 178.33Z" fill="#FADE2A"/>
</g>
<defs>
<clipPath id="clip0">
<path d="M0 0H155.64V214H0V0Z" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB