@brillout/docpress 0.0.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.mjs +2 -0
- package/dist/cli/chunk-KZROB63P.js +8 -0
- package/dist/cli/configFile.js +6 -0
- package/dist/cli/devServer.js +31 -0
- package/dist/cli/index.js +37 -0
- package/index.ts +2 -0
- package/mdx.d.ts +6 -0
- package/package.json +73 -0
- package/readme.md +3 -0
- package/src/MobileHeader.tsx +68 -0
- package/src/PageLayout.css +32 -0
- package/src/PageLayout.tsx +43 -0
- package/src/algolia/DocSearch.css +29 -0
- package/src/algolia/DocSearch.ts +37 -0
- package/src/autoScrollNav.ts +22 -0
- package/src/components/ContactUs.tsx +19 -0
- package/src/components/DocLink.tsx +108 -0
- package/src/components/EditPageNote.tsx +18 -0
- package/src/components/HorizontalLine.tsx +20 -0
- package/src/components/ImportMeta.tsx +11 -0
- package/src/components/Info.tsx +12 -0
- package/src/components/Link.tsx +18 -0
- package/src/components/Note.tsx +31 -0
- package/src/components/P.css +8 -0
- package/src/components/P.tsx +8 -0
- package/src/components/ReadingRecommendation.tsx +53 -0
- package/src/components/RepoLink.tsx +24 -0
- package/src/components/Sponsors/companyLogos/ccoli-logo.svg +1 -0
- package/src/components/Sponsors/companyLogos/ccoli-text.svg +1 -0
- package/src/components/Sponsors/companyLogos/ccoli.svg +9 -0
- package/src/components/Sponsors/companyLogos/contra.svg +1 -0
- package/src/components/Sponsors/companyLogos/mfqs.svg +1 -0
- package/src/components/Sponsors/label.draft.svg +108 -0
- package/src/components/Sponsors/label.svg +5 -0
- package/src/components/Sponsors/medalBronze.svg +65 -0
- package/src/components/Sponsors/medalGold.svg +65 -0
- package/src/components/Sponsors/medalSilver.svg +65 -0
- package/src/components/Sponsors.tsx +240 -0
- package/src/components/TextContactUs.tsx +15 -0
- package/src/components/features/FeatureList.css +117 -0
- package/src/components/features/FeatureList.tsx +114 -0
- package/src/components/features/chevron.svg +7 -0
- package/src/components/features/initFeatureList.ts +61 -0
- package/src/components/index.ts +14 -0
- package/src/config/Config.ts +30 -0
- package/src/config/getConfig.ts +18 -0
- package/src/config/resolveConfig/resolveHeading.ts +0 -0
- package/src/config/resolvePageContext.ts +156 -0
- package/src/css/Inter-Var.ttf +0 -0
- package/src/css/button.css +7 -0
- package/src/css/code/block.css +36 -0
- package/src/css/code/inline.css +27 -0
- package/src/css/code.css +20 -0
- package/src/css/colorize-on-hover.css +29 -0
- package/src/css/font.css +19 -0
- package/src/css/heading.css +25 -0
- package/src/css/index.css +10 -0
- package/src/css/link.css +17 -0
- package/src/css/note.css +26 -0
- package/src/css/reset.css +12 -0
- package/src/css/table.css +14 -0
- package/src/css/tooltip.css +11 -0
- package/src/headings.ts +206 -0
- package/src/icons/changelog.svg +2 -0
- package/src/icons/discord.svg +10 -0
- package/src/icons/github.svg +74 -0
- package/src/icons/heart.svg +1 -0
- package/src/icons/twitter.svg +16 -0
- package/src/index.ts +3 -0
- package/src/installSectionUrlHashs.ts +50 -0
- package/src/navigation/Navigation-highlight.css +41 -0
- package/src/navigation/Navigation-items.css +122 -0
- package/src/navigation/Navigation-layout.css +119 -0
- package/src/navigation/Navigation.client.old.ts +303 -0
- package/src/navigation/Navigation.client.ts +19 -0
- package/src/navigation/Navigation.css +8 -0
- package/src/navigation/Navigation.tsx +228 -0
- package/src/navigation/NavigationHeader.tsx +97 -0
- package/src/navigation/navigation-fullscreen/NavigationFullscreenButton.css +32 -0
- package/src/navigation/navigation-fullscreen/NavigationFullscreenButton.tsx +44 -0
- package/src/navigation/navigation-fullscreen/chevron.svg +1 -0
- package/src/navigation/navigation-fullscreen/close.svg +4 -0
- package/src/navigation/navigation-fullscreen/initNavigationFullscreen.ts +115 -0
- package/src/parseEmojis.ts +33 -0
- package/src/renderer/_default.page.client.ts +7 -0
- package/src/renderer/_default.page.server.tsx +69 -0
- package/src/renderer/usePageContext.tsx +25 -0
- package/src/types.ts +2 -0
- package/src/utils/Emoji/Emoji.ts +216 -0
- package/src/utils/Emoji/assets.ts +9 -0
- package/src/utils/Emoji/compass.svg +1 -0
- package/src/utils/Emoji/engine.png +0 -0
- package/src/utils/Emoji/index.ts +1 -0
- package/src/utils/Emoji/mechanical-arm.svg +1 -0
- package/src/utils/Emoji/mountain.svg +1 -0
- package/src/utils/Emoji/road-fork.svg +17 -0
- package/src/utils/Emoji/shield.svg +1 -0
- package/src/utils/Emoji/typescript.svg +1 -0
- package/src/utils/assert.ts +39 -0
- package/src/utils/determineSectionUrlHash.ts +35 -0
- package/src/utils/filter.ts +12 -0
- package/src/utils/index.ts +6 -0
- package/src/utils/isBrowser.ts +5 -0
- package/src/utils/jsxToTextContent.ts +11 -0
- package/src/utils/objectAssign.ts +6 -0
- package/vite.config/markdownHeadings.ts +128 -0
- package/vite.config.ts +42 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export { NavigationFullscreenButton }
|
|
2
|
+
export { NavigationFullscreenClose }
|
|
3
|
+
|
|
4
|
+
import React from 'react'
|
|
5
|
+
import './NavigationFullscreenButton.css'
|
|
6
|
+
import closeIcon from './close.svg'
|
|
7
|
+
|
|
8
|
+
function NavigationFullscreenButton() {
|
|
9
|
+
return (
|
|
10
|
+
<>
|
|
11
|
+
<a id="navigation-fullscreen-button">
|
|
12
|
+
<div
|
|
13
|
+
style={{
|
|
14
|
+
position: 'fixed',
|
|
15
|
+
cursor: 'pointer',
|
|
16
|
+
height: '100vh',
|
|
17
|
+
width: 20,
|
|
18
|
+
overflow: 'hidden'
|
|
19
|
+
}}
|
|
20
|
+
>
|
|
21
|
+
<div></div>
|
|
22
|
+
</div>
|
|
23
|
+
<div
|
|
24
|
+
style={{ position: 'fixed', height: '100vh', width: 20 }}
|
|
25
|
+
aria-label="Press <Esc>"
|
|
26
|
+
data-balloon-pos="right"
|
|
27
|
+
></div>
|
|
28
|
+
</a>
|
|
29
|
+
</>
|
|
30
|
+
)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function NavigationFullscreenClose() {
|
|
34
|
+
return (
|
|
35
|
+
<a
|
|
36
|
+
id="navigation-fullscreen-close"
|
|
37
|
+
style={{ position: 'fixed', top: 11, right: 15, zIndex: 10 }}
|
|
38
|
+
aria-label="Press <Esc>"
|
|
39
|
+
data-balloon-pos="left"
|
|
40
|
+
>
|
|
41
|
+
<img src={closeIcon} height={50} width={50} style={{ display: 'block' }} />
|
|
42
|
+
</a>
|
|
43
|
+
)
|
|
44
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path stroke="#666" stroke-width="1" fill="#666" fill-rule="evenodd" d="M6.776 1.553a.5.5 0 0 1 .671.223l3 6a.5.5 0 0 1 0 .448l-3 6a.5.5 0 1 1-.894-.448L9.44 8L6.553 2.224a.5.5 0 0 1 .223-.671z"/></svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg width="48.855" height="48.855" version="1.1" viewBox="0 0 22.901 22.901" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<circle cx="11.45" cy="11.45" r="10.607" fill="#fff" stroke="#666" stroke-dashoffset="251.44" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.6875" style="paint-order:normal"/>
|
|
3
|
+
<path d="m7.5904 6.2204 3.86 3.86 3.84-3.84a0.92 0.92 0 0 1 0.66-0.29 1 1 0 0 1 1 1 0.9 0.9 0 0 1-0.27 0.66l-3.89 3.84 3.89 3.89a0.9 0.9 0 0 1 0.27 0.61 1 1 0 0 1-1 1 0.92 0.92 0 0 1-0.69-0.27l-3.81-3.86-3.85 3.85a0.92 0.92 0 0 1-0.65 0.28 1 1 0 0 1-1-1 0.9 0.9 0 0 1 0.27-0.66l3.89-3.84-3.89-3.89a0.9 0.9 0 0 1-0.27-0.61 1 1 0 0 1 1-1c0.24 3e-3 0.47 0.1 0.64 0.27z" fill="#666" stroke="#666" stroke-width=".11719"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
export { initNavigationFullscreen }
|
|
2
|
+
|
|
3
|
+
import { assert } from '../../utils'
|
|
4
|
+
|
|
5
|
+
let scrollPositionBeforeToggle: number = 0
|
|
6
|
+
|
|
7
|
+
function initNavigationFullscreen() {
|
|
8
|
+
updateColumnWidth()
|
|
9
|
+
window.addEventListener('resize', updateColumnWidth, { passive: true })
|
|
10
|
+
document.getElementById('navigation-fullscreen-button')!.onclick = toggleNavExpend
|
|
11
|
+
document.getElementById('navigation-fullscreen-close')!.onclick = toggleNavExpend
|
|
12
|
+
document.addEventListener(
|
|
13
|
+
// We don't use keydown to not interfere with user pressing `<Esc>` for closing the browser's `<Ctrl-F>` search diablog, see https://stackoverflow.com/questions/66595035/how-to-detect-escape-key-if-search-bar-of-browser-is-open
|
|
14
|
+
'keydown',
|
|
15
|
+
(ev) => {
|
|
16
|
+
if (ev.key === 'Escape') toggleNavExpend()
|
|
17
|
+
},
|
|
18
|
+
false
|
|
19
|
+
)
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function toggleNavExpend() {
|
|
23
|
+
const navContainer = document.getElementById('navigation-container')!
|
|
24
|
+
const scrollPos = navContainer.scrollTop
|
|
25
|
+
document.documentElement.classList.toggle('navigation-fullscreen')
|
|
26
|
+
if (scrollPositionBeforeToggle !== undefined) {
|
|
27
|
+
navContainer.scrollTop = scrollPositionBeforeToggle
|
|
28
|
+
}
|
|
29
|
+
scrollPositionBeforeToggle = scrollPos
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function updateColumnWidth() {
|
|
33
|
+
const navMinWidth = 299
|
|
34
|
+
const navH1Groups = Array.from(document.querySelectorAll('.nav-h1-group'))
|
|
35
|
+
const numberOfColumnsMax = navH1Groups.length
|
|
36
|
+
|
|
37
|
+
const widthAvailable = getViewportWidth()
|
|
38
|
+
const numberOfColumns = Math.max(1, Math.min(numberOfColumnsMax, Math.floor(widthAvailable / navMinWidth)))
|
|
39
|
+
|
|
40
|
+
let columns = navH1Groups.map((navH1Group) => {
|
|
41
|
+
const column = [
|
|
42
|
+
{
|
|
43
|
+
element: navH1Group,
|
|
44
|
+
elementHeight: navH1Group.children.length
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
return column
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
mergeColumns(columns, numberOfColumns)
|
|
51
|
+
|
|
52
|
+
const navContent = document.getElementById('navigation-content')!
|
|
53
|
+
|
|
54
|
+
Array.from(navContent.children).forEach((child) => {
|
|
55
|
+
assert(child.className === 'nav-column')
|
|
56
|
+
})
|
|
57
|
+
navContent.innerHTML = ''
|
|
58
|
+
|
|
59
|
+
columns.forEach((column) => {
|
|
60
|
+
const columnEl = document.createElement('div')
|
|
61
|
+
columnEl.className = 'nav-column'
|
|
62
|
+
column.forEach(({ element }) => {
|
|
63
|
+
columnEl.appendChild(element)
|
|
64
|
+
})
|
|
65
|
+
navContent.appendChild(columnEl)
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
const navItemMaxWidth = 350
|
|
69
|
+
navContent.style.maxWidth = `${numberOfColumns * navItemMaxWidth}px`
|
|
70
|
+
}
|
|
71
|
+
function getViewportWidth(): number {
|
|
72
|
+
// `window.innerWidth` inlcudes scrollbar width: https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes
|
|
73
|
+
return document.documentElement.clientWidth
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function mergeColumns<T>(columns: { element: T; elementHeight: number }[][], maxNumberOfColumns: number) {
|
|
77
|
+
assert(columns.length > 0)
|
|
78
|
+
assert(maxNumberOfColumns > 0)
|
|
79
|
+
if (columns.length <= maxNumberOfColumns) {
|
|
80
|
+
return columns
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
let mergeCandidate = {
|
|
84
|
+
i: -1,
|
|
85
|
+
mergeHeight: Infinity
|
|
86
|
+
}
|
|
87
|
+
for (let i = 0; i <= columns.length - 2; i++) {
|
|
88
|
+
const column1 = columns[i + 0]
|
|
89
|
+
const column2 = columns[i + 1]
|
|
90
|
+
const column1Height = sum(column1.map((c) => c.elementHeight))
|
|
91
|
+
const column2Height = sum(column2.map((c) => c.elementHeight))
|
|
92
|
+
const mergeHeight = column1Height + column2Height
|
|
93
|
+
if (mergeCandidate.mergeHeight > mergeHeight) {
|
|
94
|
+
mergeCandidate = {
|
|
95
|
+
i,
|
|
96
|
+
mergeHeight
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
{
|
|
102
|
+
const { i } = mergeCandidate
|
|
103
|
+
assert(-1 < i && i < columns.length - 1, { i, columnsLength: columns.length, maxNumberOfColumns })
|
|
104
|
+
columns[i] = [...columns[i], ...columns[i + 1]]
|
|
105
|
+
columns.splice(i + 1, 1)
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
mergeColumns(columns, maxNumberOfColumns)
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function sum(arr: number[]): number {
|
|
112
|
+
let total = 0
|
|
113
|
+
arr.forEach((n) => (total += n))
|
|
114
|
+
return total
|
|
115
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export { parseEmojis }
|
|
2
|
+
|
|
3
|
+
import twemoji from 'twemoji'
|
|
4
|
+
|
|
5
|
+
const emojiList = {
|
|
6
|
+
// https://emojipedia.org/no-entry/
|
|
7
|
+
':no_entry:': 0x26d4,
|
|
8
|
+
// https://emojipedia.org/warning/
|
|
9
|
+
':warning:': 0x26a0,
|
|
10
|
+
// https://emojipedia.org/trophy/
|
|
11
|
+
':trophy:': 0x1F3C6,
|
|
12
|
+
/*
|
|
13
|
+
// https://emojipedia.org/red-heart/
|
|
14
|
+
':heart:': 0x2764,
|
|
15
|
+
*/
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function parseEmojis(html: string) {
|
|
19
|
+
Object.entries(emojiList).forEach(([shortcode, codepoint]) => {
|
|
20
|
+
if (!html.includes(shortcode)) {
|
|
21
|
+
return
|
|
22
|
+
}
|
|
23
|
+
const emojiStr = twemoji.convert.fromCodePoint(codepoint)
|
|
24
|
+
let emojiImg: any = twemoji.parse(emojiStr, {
|
|
25
|
+
folder: 'svg',
|
|
26
|
+
ext: '.svg'
|
|
27
|
+
})
|
|
28
|
+
const style = 'height: 1.275em; width: 1.275em; vertical-align: -20%'
|
|
29
|
+
emojiImg = emojiImg.replace('<img class="emoji" ', `<img style="${style}" `)
|
|
30
|
+
html = html.split(shortcode).join(emojiImg)
|
|
31
|
+
})
|
|
32
|
+
return html
|
|
33
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import ReactDOMServer from 'react-dom/server'
|
|
2
|
+
import React from 'react'
|
|
3
|
+
import { escapeInject, dangerouslySkipEscape } from 'vite-plugin-ssr'
|
|
4
|
+
import { PageLayout } from '../PageLayout'
|
|
5
|
+
import { resolvePageContext, PageContextOriginal } from '../config/resolvePageContext'
|
|
6
|
+
import { getDocSearchJS, getDocSearchCSS } from '../algolia/DocSearch'
|
|
7
|
+
import { parseEmojis } from '../parseEmojis'
|
|
8
|
+
import { assert } from '../utils'
|
|
9
|
+
|
|
10
|
+
export { render }
|
|
11
|
+
|
|
12
|
+
async function render(pageContextOriginal: PageContextOriginal) {
|
|
13
|
+
const { Page } = pageContextOriginal
|
|
14
|
+
const pageContextResolved = resolvePageContext(pageContextOriginal)
|
|
15
|
+
|
|
16
|
+
const page = (
|
|
17
|
+
<PageLayout pageContext={pageContextResolved}>
|
|
18
|
+
<Page />
|
|
19
|
+
</PageLayout>
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
const descriptionTag = pageContextResolved.isLandingPage
|
|
23
|
+
? dangerouslySkipEscape(`<meta name="description" content="${pageContextResolved.meta.tagline}" />`)
|
|
24
|
+
: ''
|
|
25
|
+
|
|
26
|
+
const docSearchJS = getDocSearchJS(pageContextResolved)
|
|
27
|
+
const docSearchCSS = getDocSearchCSS(pageContextResolved)
|
|
28
|
+
|
|
29
|
+
let pageHtml = ReactDOMServer.renderToString(page)
|
|
30
|
+
pageHtml = parseEmojis(pageHtml)
|
|
31
|
+
|
|
32
|
+
return escapeInject`<!DOCTYPE html>
|
|
33
|
+
<html>
|
|
34
|
+
<head>
|
|
35
|
+
<meta charset="UTF-8" />
|
|
36
|
+
<link rel="icon" href="${pageContextResolved.meta.faviconUrl}" />
|
|
37
|
+
<title>${pageContextResolved.meta.title}</title>
|
|
38
|
+
${descriptionTag}
|
|
39
|
+
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no" />
|
|
40
|
+
${docSearchCSS}
|
|
41
|
+
${getOpenGraphTags(pageContextOriginal.urlPathname, pageContextResolved.meta)}
|
|
42
|
+
</head>
|
|
43
|
+
<body>
|
|
44
|
+
<div id="page-view">${dangerouslySkipEscape(pageHtml)}</div>
|
|
45
|
+
${docSearchJS}
|
|
46
|
+
</body>
|
|
47
|
+
</html>`
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function getOpenGraphTags(
|
|
51
|
+
url: string,
|
|
52
|
+
meta: { title: string; tagline: string; websiteUrl: string; twitterHandle: string; bannerUrl?: string }
|
|
53
|
+
) {
|
|
54
|
+
const { title, tagline, websiteUrl, twitterHandle, bannerUrl } = meta
|
|
55
|
+
|
|
56
|
+
assert(url.startsWith('/'))
|
|
57
|
+
if (url !== '/' || !bannerUrl) return ''
|
|
58
|
+
|
|
59
|
+
// See view-source:https://vitejs.dev/
|
|
60
|
+
return escapeInject`
|
|
61
|
+
<meta property="og:type" content="website">
|
|
62
|
+
<meta property="og:title" content="${title}">
|
|
63
|
+
<meta property="og:image" content="${bannerUrl}">
|
|
64
|
+
<meta property="og:url" content="${websiteUrl}">
|
|
65
|
+
<meta property="og:description" content="${tagline}">
|
|
66
|
+
<meta name="twitter:card" content="summary_large_image">
|
|
67
|
+
<meta name="twitter:site" content="${twitterHandle}">
|
|
68
|
+
`
|
|
69
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// `usePageContext` allows us to access `pageContext` in any React component.
|
|
2
|
+
// More infos: https://vite-plugin-ssr.com/pageContext-anywhere
|
|
3
|
+
|
|
4
|
+
import React, { useContext } from 'react'
|
|
5
|
+
import type { PageContextResolved } from '../config/resolvePageContext'
|
|
6
|
+
|
|
7
|
+
export { PageContextProvider }
|
|
8
|
+
export { usePageContext }
|
|
9
|
+
|
|
10
|
+
const Context = React.createContext<PageContextResolved>(undefined as any)
|
|
11
|
+
|
|
12
|
+
function PageContextProvider({
|
|
13
|
+
pageContext,
|
|
14
|
+
children
|
|
15
|
+
}: {
|
|
16
|
+
pageContext: PageContextResolved
|
|
17
|
+
children: React.ReactNode
|
|
18
|
+
}) {
|
|
19
|
+
return <Context.Provider value={pageContext}>{children}</Context.Provider>
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function usePageContext() {
|
|
23
|
+
const pageContext = useContext(Context)
|
|
24
|
+
return pageContext
|
|
25
|
+
}
|
package/src/types.ts
ADDED
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { assert } from '../assert'
|
|
3
|
+
|
|
4
|
+
import { iconMechanicalArm, iconCompass, iconRoadFork, iconShield, iconTypescript, iconEngine } from './assets'
|
|
5
|
+
|
|
6
|
+
export { Emoji }
|
|
7
|
+
export type { EmojiName }
|
|
8
|
+
|
|
9
|
+
type EmojiName =
|
|
10
|
+
| 'warning'
|
|
11
|
+
| 'typescript'
|
|
12
|
+
| 'shield'
|
|
13
|
+
| 'mechanical-arm'
|
|
14
|
+
| 'mountain'
|
|
15
|
+
| 'rocket'
|
|
16
|
+
| 'wrench'
|
|
17
|
+
| 'compass'
|
|
18
|
+
| 'seedling'
|
|
19
|
+
| 'books'
|
|
20
|
+
| 'plug'
|
|
21
|
+
| 'earth'
|
|
22
|
+
| 'gear'
|
|
23
|
+
| 'red-heart'
|
|
24
|
+
| 'high-voltage'
|
|
25
|
+
| 'gem-stone'
|
|
26
|
+
| 'dizzy'
|
|
27
|
+
| 'sparkles'
|
|
28
|
+
| 'writing-hang'
|
|
29
|
+
| 'road-fork'
|
|
30
|
+
| 'engine'
|
|
31
|
+
| 'red-circle'
|
|
32
|
+
| 'sparkling-heart'
|
|
33
|
+
| 'gift'
|
|
34
|
+
| 'package'
|
|
35
|
+
| 'info'
|
|
36
|
+
| 'lab'
|
|
37
|
+
| 'trophy'
|
|
38
|
+
|
|
39
|
+
function Emoji({ name, style }: { name: EmojiName; style?: React.CSSProperties }): JSX.Element {
|
|
40
|
+
const emoji =
|
|
41
|
+
// ***
|
|
42
|
+
// U+26A0
|
|
43
|
+
// https://emojipedia.org/warning/
|
|
44
|
+
// https://www.unicompat.com/26A0 => 94.1%
|
|
45
|
+
// https://www.unicompat.com/26A0-FE0F => 92.4%
|
|
46
|
+
// https://www.unicompat.com/2697 => 94.1%
|
|
47
|
+
(name === 'warning' && Unicode(0x26a0, { fontFamily: 'emoji' })) ||
|
|
48
|
+
// ***
|
|
49
|
+
// U+2697
|
|
50
|
+
// https://emojipedia.org/alembic/
|
|
51
|
+
// https://www.unicompat.com/2697 => 94.1%
|
|
52
|
+
(name === 'lab' && Unicode(0x2697)) ||
|
|
53
|
+
// ***
|
|
54
|
+
// U+2139
|
|
55
|
+
// https://emojipedia.org/information/
|
|
56
|
+
// https://www.unicompat.com/2139 => 94.8%
|
|
57
|
+
// https://www.unicompat.com/2139-FE0F => 92.4%
|
|
58
|
+
(name === 'info' && Unicode(0x2139, { fontFamily: 'emoji' })) ||
|
|
59
|
+
// ***
|
|
60
|
+
// U+1F4E6
|
|
61
|
+
// https://emojipedia.org/package/
|
|
62
|
+
// https://www.unicompat.com/1F4E6 => 94.1%
|
|
63
|
+
(name === 'package' && Unicode(0x1f4e6)) ||
|
|
64
|
+
// ***
|
|
65
|
+
// U+1F381
|
|
66
|
+
// https://emojipedia.org/wrapped-gift/
|
|
67
|
+
// https://www.unicompat.com/1F381 => 94.1%
|
|
68
|
+
(name === 'gift' && Unicode(0x1f381)) ||
|
|
69
|
+
// ***
|
|
70
|
+
// U+1F496
|
|
71
|
+
// https://emojipedia.org/sparkling-heart/
|
|
72
|
+
// https://www.unicompat.com/1F496 => 94.1%
|
|
73
|
+
(name === 'sparkling-heart' && Unicode(0x1f496)) ||
|
|
74
|
+
// ***
|
|
75
|
+
// U+2B55
|
|
76
|
+
// https://emojipedia.org/hollow-red-circle/
|
|
77
|
+
// https://www.unicompat.com/2B55 => 94.1%
|
|
78
|
+
(name === 'red-circle' && Unicode(0x2b55)) ||
|
|
79
|
+
// ***
|
|
80
|
+
(name === 'engine' && Img(iconEngine)) ||
|
|
81
|
+
// ***
|
|
82
|
+
// https://www.typescriptlang.org/branding/
|
|
83
|
+
(name === 'typescript' && Img(iconTypescript)) ||
|
|
84
|
+
// ***
|
|
85
|
+
// U+FE0F
|
|
86
|
+
// https://emojipedia.org/shield/
|
|
87
|
+
// https://www.unicompat.com/FE0F => 46.5%
|
|
88
|
+
// https://icon-sets.iconify.design/noto/shield/
|
|
89
|
+
(name === 'shield' && Img(iconShield)) ||
|
|
90
|
+
// ***
|
|
91
|
+
// Custom
|
|
92
|
+
(name === 'road-fork' && Img(iconRoadFork, '1.4em')) ||
|
|
93
|
+
// ***
|
|
94
|
+
// U+270D
|
|
95
|
+
// https://emojipedia.org/writing-hand/
|
|
96
|
+
// https://www.unicompat.com/270D => 93.8%
|
|
97
|
+
(name === 'writing-hang' && Unicode(0x270d)) ||
|
|
98
|
+
// ***
|
|
99
|
+
// U+1F4AB
|
|
100
|
+
// https://emojipedia.org/dizzy/
|
|
101
|
+
// https://www.unicompat.com/1F4AB => 94.1%
|
|
102
|
+
(name === 'dizzy' && Unicode(0x1f4ab)) ||
|
|
103
|
+
// ***
|
|
104
|
+
// U+1F9BE
|
|
105
|
+
// https://iconify.design/icon-sets/noto/mechanical-arm.html
|
|
106
|
+
// https://emojipedia.org/mechanical-arm/
|
|
107
|
+
// https://www.unicompat.com/1f9be => 65.5%
|
|
108
|
+
(name === 'mechanical-arm' && Img(iconMechanicalArm)) ||
|
|
109
|
+
// ***
|
|
110
|
+
// U+1F680
|
|
111
|
+
// https://www.unicompat.com/1F680 => 94.1
|
|
112
|
+
(name === 'rocket' && Unicode(0x1f680)) ||
|
|
113
|
+
// ***
|
|
114
|
+
// U+1F527
|
|
115
|
+
// https://emojipedia.org/wrench/
|
|
116
|
+
// https://www.unicompat.com/1F527 => 94.1%
|
|
117
|
+
(name === 'wrench' && Unicode(0x1f527)) ||
|
|
118
|
+
// ***
|
|
119
|
+
// U+1F9ED
|
|
120
|
+
// https://iconify.design/icon-sets/noto/compass.html
|
|
121
|
+
// https://www.unicompat.com/1F9ED => 67.1%
|
|
122
|
+
(name === 'compass' && Img(iconCompass, '1.4em')) ||
|
|
123
|
+
// ***
|
|
124
|
+
// U+1F331
|
|
125
|
+
// https://www.unicompat.com/1F331 => 94.1%
|
|
126
|
+
(name === 'seedling' && Unicode(0x1f331)) ||
|
|
127
|
+
// ***
|
|
128
|
+
// U+1F4DA
|
|
129
|
+
// https://www.unicompat.com/1F4DA => 94.1%
|
|
130
|
+
(name === 'books' && Unicode(0x1f4da)) ||
|
|
131
|
+
// ***
|
|
132
|
+
// U+1F50C
|
|
133
|
+
// https://www.unicompat.com/1F50C => 94.1%
|
|
134
|
+
(name === 'plug' && Unicode(0x1f50c)) ||
|
|
135
|
+
// ***
|
|
136
|
+
// U+1F30D
|
|
137
|
+
// https://www.unicompat.com/1F30D => 88.8%
|
|
138
|
+
(name === 'earth' && Unicode(0x1f30d)) ||
|
|
139
|
+
// ***
|
|
140
|
+
// U+2699
|
|
141
|
+
// https://www.unicompat.com/2699 => 94.1%
|
|
142
|
+
(name === 'gear' && Unicode(0x2699)) ||
|
|
143
|
+
// ***
|
|
144
|
+
// U+2764
|
|
145
|
+
// https://emojipedia.org/red-heart/
|
|
146
|
+
// https://www.unicompat.com/2764 => 94.4%
|
|
147
|
+
// https://www.unicompat.com/2764-FE0F => 92.4%
|
|
148
|
+
(name === 'red-heart' && Unicode(0x2764, { fontFamily: 'emoji' })) ||
|
|
149
|
+
// U+26A1
|
|
150
|
+
// https://www.unicompat.com/26A1 => 94.1%
|
|
151
|
+
(name === 'high-voltage' && Unicode(0x26a1)) ||
|
|
152
|
+
// U+2728
|
|
153
|
+
// https://emojipedia.org/sparkles/
|
|
154
|
+
// https://www.unicompat.com/2728 => 94.1%
|
|
155
|
+
(name === 'sparkles' && Unicode(0x2728)) ||
|
|
156
|
+
// ***
|
|
157
|
+
// U+1F48E
|
|
158
|
+
// https://emojipedia.org/gem-stone/
|
|
159
|
+
// https://www.unicompat.com/1F48E => 94.1%
|
|
160
|
+
(name === 'gem-stone' && Unicode(0x1f48e)) ||
|
|
161
|
+
// ***
|
|
162
|
+
// 0x1F3C6
|
|
163
|
+
// https://emojipedia.org/trophy/
|
|
164
|
+
// https://www.unicompat.com/1F3C6 => 94.1%
|
|
165
|
+
(name === 'trophy' && Unicode(0x1F3C6)) ||
|
|
166
|
+
false
|
|
167
|
+
/* ======= Unused ========
|
|
168
|
+
// ***
|
|
169
|
+
// U+1FAA8
|
|
170
|
+
// https://emojipedia.org/rock/
|
|
171
|
+
// https://www.unicompat.com/1faa8 => 20.7%
|
|
172
|
+
//
|
|
173
|
+
// ***
|
|
174
|
+
// U+26F0
|
|
175
|
+
// https://emojipedia.org/mountain/
|
|
176
|
+
// https://iconify.design/icon-sets/noto/mountain.html
|
|
177
|
+
// https://www.unicompat.com/26F0 => 89.3%
|
|
178
|
+
(name === 'mountain' && Img(iconMountain)) ||
|
|
179
|
+
//
|
|
180
|
+
// ***
|
|
181
|
+
// U+2194
|
|
182
|
+
// https://emojipedia.org/left-right-arrow/
|
|
183
|
+
// https://www.unicompat.com/2194 => 95.0%
|
|
184
|
+
// Couldn't manage to show colored version
|
|
185
|
+
(name === 'left-right-arrow' && Unicode(0x2194)) ||
|
|
186
|
+
(name === 'left-right-arrow' && Unicode(0x2194, { fontFamily: 'reset' })) ||
|
|
187
|
+
(name === 'left-right-arrow' && Unicode(0xFE0F)) ||
|
|
188
|
+
(name === 'left-right-arrow' && Unicode(0xFE0F, { fontFamily: 'reset' })) ||
|
|
189
|
+
======================== */
|
|
190
|
+
|
|
191
|
+
assert(emoji, { name })
|
|
192
|
+
|
|
193
|
+
return emoji
|
|
194
|
+
|
|
195
|
+
function Unicode(codePoint: number, styleAddendum?: React.CSSProperties) {
|
|
196
|
+
const text = String.fromCodePoint(codePoint)
|
|
197
|
+
if (style || styleAddendum) {
|
|
198
|
+
return React.createElement('span', { style: { ...style, ...styleAddendum } }, text)
|
|
199
|
+
} else {
|
|
200
|
+
return React.createElement(React.Fragment, null, text)
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
function Img(imgSrc: string, width: string = '1.15em') {
|
|
205
|
+
const props = {
|
|
206
|
+
src: imgSrc,
|
|
207
|
+
style: {
|
|
208
|
+
verticalAlign: 'text-top',
|
|
209
|
+
fontSize: '1em',
|
|
210
|
+
width,
|
|
211
|
+
...style
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return React.createElement('img', props)
|
|
215
|
+
}
|
|
216
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import iconMechanicalArm from './mechanical-arm.svg'
|
|
2
|
+
//import iconMountain from './mountain.svg'
|
|
3
|
+
import iconCompass from './compass.svg'
|
|
4
|
+
import iconRoadFork from './road-fork.svg'
|
|
5
|
+
import iconShield from './shield.svg'
|
|
6
|
+
import iconTypescript from './typescript.svg'
|
|
7
|
+
import iconEngine from './engine.png'
|
|
8
|
+
|
|
9
|
+
export { iconMechanicalArm, iconCompass, iconRoadFork, iconShield, iconTypescript, iconEngine }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" width="1em" height="1em" style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);" preserveAspectRatio="xMidYMid meet" viewBox="0 0 128 128"><linearGradient id="IconifyId-17a9a1bedc8-7759f1-57" x1="24.99" x2="112.35" y1="16.65" y2="122.69" gradientUnits="userSpaceOnUse"><stop stop-color="#FFE7AD" offset=".004"/><stop stop-color="#FFB200" offset=".261"/><stop stop-color="#FAAE00" offset=".475"/><stop stop-color="#EBA400" offset=".731"/><stop stop-color="#D49300" offset="1"/></linearGradient><circle cx="64" cy="64" r="60" fill="url(#IconifyId-17a9a1bedc8-7759f1-57)"/><linearGradient id="IconifyId-17a9a1bedc8-7759f1-58" x1="64" x2="64" y1="13.24" y2="126.59" gradientUnits="userSpaceOnUse"><stop stop-color="#543B0B" offset=".001"/><stop stop-color="#563D0B" offset=".016"/><stop stop-color="#785606" offset=".248"/><stop stop-color="#906703" offset=".468"/><stop stop-color="#9F7201" offset=".671"/><stop stop-color="#A47600" offset=".841"/></linearGradient><circle cx="64" cy="64" r="50.04" fill="url(#IconifyId-17a9a1bedc8-7759f1-58)"/><circle cx="64" cy="64" r="47.16" fill="#362C15"/><radialGradient id="IconifyId-17a9a1bedc8-7759f1-59" cx="64" cy="64" r="45.304" gradientUnits="userSpaceOnUse"><stop stop-color="#fff" offset=".001"/><stop stop-color="#FFFEFC" offset=".205"/><stop stop-color="#FFFBF2" offset=".373"/><stop stop-color="#FFF6E0" offset=".528"/><stop stop-color="#FFEFC9" offset=".673"/><stop stop-color="#FFE7AD" offset=".8"/><stop stop-color="#F0C560" offset="1"/></radialGradient><circle cx="64" cy="64" r="45.3" fill="url(#IconifyId-17a9a1bedc8-7759f1-59)"/><circle cx="64" cy="64" r="42.42" fill="none" stroke="#8A8C8E" stroke-miterlimit="10" stroke-width=".633"/><path d="M59.06 29.27c-15.49 2.2-27.74 14.55-29.81 30.08h.64c2.06-15.18 14.04-27.25 29.17-29.43v-.65z" fill="#8A8C8E"/><path d="M69.66 29.39v.64c14.8 2.46 26.43 14.38 28.46 29.32h.64c-2.04-15.29-13.95-27.49-29.1-29.96z" fill="#8A8C8E"/><path d="M59.06 98.06C45.33 96.08 34.19 85.99 30.7 72.8h-.66c3.51 13.54 14.93 23.9 29.01 25.9v-.64z" fill="#8A8C8E"/><path d="M97.3 72.8c-3.43 12.96-14.24 22.94-27.64 25.17v.64c13.75-2.24 24.84-12.49 28.3-25.8h-.66z" fill="#8A8C8E"/><path fill="#fff" d="M64.22 70.89v-5l17.76 17.75z"/><path d="M64.38 66.27l16.11 16.11l-16.11-11.57v-4.54m-.32-.76v5.47l19.4 13.93l-19.4-19.4z" fill="#A8A8A8"/><path fill="#393839" d="M83.46 84.91l-13.93-19.4h-5.47z"/><path fill="#fff" d="M46.1 47.39l17.75 12.76v5z"/><path d="M47.58 48.66L63.7 60.23v4.54L47.58 48.66m-2.97-2.53l19.4 19.4v-5.47l-19.4-13.93z" fill="#A8A8A8"/><path fill="#393839" d="M44.61 46.13l13.94 19.4h5.46z"/><path fill="#fff" d="M64.45 65.38L82.2 47.62L69.45 65.38z"/><path d="M80.94 49.1L69.37 65.22h-4.54L80.94 49.1m2.52-2.97l-19.4 19.4h5.47l13.93-19.4z" fill="#A8A8A8"/><path fill="#393839" d="M83.46 46.13l-19.4 13.94v5.46z"/><path fill="#fff" d="M58.68 65.71h5L45.92 83.47z"/><path d="M63.3 65.87L47.19 81.99l11.57-16.11h4.54m.76-.32H58.6l-13.93 19.4l19.39-19.4z" fill="#A8A8A8"/><path fill="#393839" d="M44.66 84.96l19.4-13.94v-5.46z"/><path fill="#fff" d="M60.37 61.58l3.54-21.57v25.11z"/><path d="M63.75 41.95v22.79l-3.21-3.21l3.21-19.58m.31-3.88L60.2 61.64l3.87 3.87V38.07h-.01z" fill="#A8A8A8"/><path fill="#616161" d="M64.06 38.07l3.87 23.57l-3.87 3.87z"/><path fill="#fff" d="M60.54 69.48l3.21-3.21v22.79z"/><path d="M63.43 67.03v18.14l-2.56-15.58l2.56-2.56m.63-1.52l-3.87 3.87l3.87 23.57V65.51z" fill="#A8A8A8"/><path fill="#616161" d="M64.06 92.94l3.87-23.57l-3.87-3.86z"/><path fill="#fff" d="M38.57 65.38l21.57-3.54l3.54 3.54z"/><path d="M60.09 62.01l3.21 3.21H40.51l19.58-3.21m.11-.34l-23.57 3.87h27.44l-3.87-3.87z" fill="#A8A8A8"/><path fill="#616161" d="M36.63 65.53L60.2 69.4l3.86-3.87z"/><path fill="#fff" d="M64.45 65.66h25.11L67.98 69.2z"/><path d="M87.61 65.82l-19.58 3.21l-3.21-3.21h22.79m3.89-.31H64.06l3.87 3.87l23.57-3.87z" fill="#A8A8A8"/><path fill="#616161" d="M91.5 65.51l-23.57-3.87l-3.87 3.87z"/><path fill="#ED0000" d="M49.05 26.9l11.29 39.94L67.66 64z"/><path fill="#00AEFF" d="M78.95 103.95L67.66 64l-7.32 2.84z"/><circle cx="64.06" cy="65.51" r="1.95" fill="#FFC800"/><path d="M59.26 53.27l6.56 13.07l3.98 14.08l-6.56-13.07l-3.98-14.08m-9.68-24.95l11.29 39.95l18.62 37.1l-11.3-39.95l-18.61-37.1z" fill="#424242" opacity=".2"/><path d="M62.57 23.96l4.77 6V25.8c0-.58-.08-.97-.25-1.18c-.23-.28-.61-.41-1.15-.4v-.26h3.2v.26c-.41.05-.68.12-.82.2s-.25.22-.33.41s-.12.51-.12.97v8.05h-.24l-6.54-8.05v6.15c0 .56.13.93.38 1.13s.55.29.87.29h.23v.26h-3.43v-.26c.53 0 .9-.11 1.11-.33c.21-.21.31-.58.31-1.09v-6.83l-.21-.26c-.2-.26-.39-.43-.54-.51c-.16-.08-.38-.13-.68-.14v-.26h3.44z" fill="#000"/><path d="M98.02 61.07v4.07h.2c.63 0 1.09-.2 1.38-.6s.47-.99.55-1.76h.28v5.24h-.28c-.06-.57-.18-1.04-.37-1.4s-.41-.61-.66-.73c-.25-.13-.61-.19-1.09-.19v2.82c0 .55.02.89.07 1.01s.13.22.26.3s.33.12.62.12h.6c.93 0 1.68-.22 2.25-.65s.97-1.09 1.21-1.98h.27l-.45 3.18h-8.64v-.27h.33c.29 0 .52-.05.7-.15c.13-.07.23-.19.29-.35c.05-.12.08-.43.08-.93v-6.6c0-.45-.01-.73-.04-.83a.756.756 0 0 0-.27-.4c-.19-.14-.44-.21-.77-.21h-.33v-.27h8.37v2.96h-.28c-.14-.72-.34-1.24-.6-1.56s-.62-.55-1.1-.69c-.27-.09-.79-.13-1.55-.13h-1.03z" fill="#000"/><path d="M66.94 93.88l.08 3.33h-.3c-.14-.83-.49-1.51-1.05-2.02s-1.16-.76-1.81-.76c-.5 0-.9.13-1.19.4s-.44.58-.44.92c0 .22.05.42.15.59c.14.23.37.46.69.69c.23.16.76.45 1.6.86c1.17.57 1.96 1.12 2.36 1.63s.6 1.1.6 1.75c0 .83-.33 1.55-.98 2.16c-.65.6-1.48.9-2.48.9c-.31 0-.61-.03-.89-.1c-.28-.06-.63-.18-1.05-.36c-.24-.1-.43-.15-.58-.15c-.13 0-.26.05-.41.15c-.14.1-.26.25-.35.45h-.27v-3.77h.27c.22 1.06.63 1.87 1.25 2.43s1.28.84 1.99.84c.55 0 .99-.15 1.32-.45s.49-.65.49-1.05c0-.24-.06-.46-.19-.69c-.13-.22-.32-.43-.57-.63s-.71-.46-1.36-.78c-.91-.45-1.56-.83-1.96-1.14s-.7-.66-.92-1.05s-.32-.82-.32-1.28c0-.8.29-1.47.88-2.03c.58-.56 1.32-.84 2.21-.84c.32 0 .64.04.94.12c.23.06.51.17.84.33s.56.24.7.24c.13 0 .23-.04.3-.12s.14-.27.21-.57h.24z" fill="#000"/><path d="M38.25 60.75v.27c-.18.01-.34.06-.46.15s-.24.22-.33.4c-.03.06-.18.43-.45 1.12l-3.06 8.07h-.28l-2.42-6.3l-2.67 6.3h-.28l-3.22-7.98c-.33-.8-.56-1.29-.68-1.46c-.13-.17-.35-.27-.66-.3v-.27h4.24v.27c-.34.01-.57.06-.68.16s-.17.21-.17.35c0 .18.12.57.35 1.16l1.92 4.74l1.54-3.71l-.4-1.04c-.22-.57-.39-.95-.51-1.14s-.26-.33-.41-.41s-.39-.12-.69-.12v-.27h4.74v.27c-.33 0-.57.03-.71.08a.463.463 0 0 0-.33.44c0 .11.11.45.32 1.02l1.78 4.63L36.32 63c.17-.43.27-.73.31-.89s.06-.31.06-.44c0-.2-.07-.35-.2-.47c-.14-.11-.39-.17-.77-.18v-.27h2.53z" fill="#000"/><path d="M64 7c31.43 0 57 25.57 57 57s-25.57 57-57 57S7 95.43 7 64S32.57 7 64 7m0-3C30.86 4 4 30.86 4 64s26.86 60 60 60s60-26.86 60-60S97.14 4 64 4z" fill="#424242" opacity=".2"/></svg>
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Emoji'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" width="1em" height="1em" style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);" preserveAspectRatio="xMidYMid meet" viewBox="0 0 128 128"><path d="M69.19 71.88c-19.34-.75-25.48 11.45-32.74 16.57c-5.57 3.93-14.76 3.28-14.76 3.28c-6.98 1.2-11.57 5.04-11.57 11.94c0 6.55 3.53 12.91 12.93 12.91l63.22-2.2s2.58-41.74-17.08-42.5z" fill="#d3cac3"/><path d="M9.96 84.32l19.91-50.01l13.81 5.3s-4.6 24.51-5.13 30.6c-.53 6.09 5.13 20.37 3.95 32.98c-1.32 14.13-6.89 17.83-17.52 19.04c-7.44.85-15.83-2.52-18.16-6.79c-3.44-6.3-4.43-14.18 3.14-31.12z" fill="#90a4ae"/><path d="M28.43 37.83c.77-.05 1.92-.37 3.97 2.11c1.52 1.84 4.92 4.98 8.9 5.19c.69-3.36 1.19-5.71 1.19-5.71l-12.63-5.1l-1.43 3.51z" fill="#466b7d"/><linearGradient id="IconifyId-17a99df72c5-49eee0-24" gradientUnits="userSpaceOnUse" x1="42.234" y1="41.429" x2="-3.656" y2="163.116"><stop offset=".308" stop-color="#d3cac3"/><stop offset=".744" stop-color="#6d94a5"/></linearGradient><path d="M14.13 98.73s15.13-45.62 21.08-62.25l-5.35-2.16l-19.9 50c-7.57 16.94-6.58 24.81-3.14 31.12c2.33 4.28 9.16 7.86 16.6 7.01c1.84-.21 3.48-.57 4.97-1.07c-5.3-8.63-14.26-22.65-14.26-22.65z" fill="url(#IconifyId-17a99df72c5-49eee0-24)"/><path d="M28.43 37.83c.77-.05 1.92-.37 3.97 2.11c1.52 1.84 6.11 5.86 10.09 6.07c.69-3.36 1.18-6.39 1.18-6.39l-13.81-5.3l-1.43 3.51z" fill="#466b7d"/><path d="M39.09 76.07s.06 5.87-4.94 10.17c-7.74 6.66-23.47 2.86-26.26 21.28c-.74 4.87-2.74 4.06-2.74 4.06s2.6 11.75 17.94 10.9c11.31-1.01 17.63-9.15 19.07-18.43c1.51-9.65-3.07-27.98-3.07-27.98z" fill="#466b7d"/><linearGradient id="IconifyId-17a99df72c5-49eee0-25" gradientUnits="userSpaceOnUse" x1="53.649" y1="100.495" x2="53.649" y2="122.038"><stop offset=".292" stop-color="#d3cac3"/><stop offset="1" stop-color="#6d94a5"/></linearGradient><path d="M81.58 71.13c-25.26 0-32.72 7.64-38.7 13.78c-2.92 3-5.23 5.37-9.31 6.43c-3.6.94-9.18 2.09-10.8 2.42c-.02 0-.04.01-.06.01c-7.86 1.36-12.54 6.85-12.54 14.68c0 3.93 1.31 7.35 3.79 9.87c1.95 1.99 5.64 4.35 12.1 4.35h.1l68.95-2.27s6.21-33.08-3.09-44.41c-2.62-3.18-6.23-4.86-10.44-4.86z" fill="url(#IconifyId-17a99df72c5-49eee0-25)"/><path d="M76.08 80.35C58.7 77.27 51.93 86.21 42.5 93.56c-4.28 3.34-15.86 4.56-15.86 4.56c-6.98 1.2-11.57 5.04-11.57 11.94c0 7.18 3.53 12.56 12.93 12.56l63.22-2.2c0 .01 4.23-36.64-15.14-40.07z" fill="#90a4ae"/><path d="M70.82 88.15c.03-4.01-.08-7.17-.16-9.47v-.12c-.1-2.86-.46-5.05-.93-6.75c-.2.03-.41.05-.61.08c-4.25-.27-8.48.6-8.48.6s4.87 1.23 5.41 9.04c.18 2.59.25 3.26.19 7.5c-.47 34.51 27.89 31.43 27.89 31.43l.31-1.71c-16.92-3.08-23.76-11.94-23.62-30.6z" fill="#466b7d"/><circle cx="28.27" cy="110.96" r="7.42" fill="#466b7d"/><circle cx="28.45" cy="109.74" r="6.55" fill="#a38e7a"/><radialGradient id="IconifyId-17a99df72c5-49eee0-26" cx="26.668" cy="105.722" r="10.024" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset=".921" stop-color="#cdd7db" stop-opacity="0"/></radialGradient><circle cx="28.45" cy="109.74" r="6.55" fill="url(#IconifyId-17a99df72c5-49eee0-26)"/><circle cx="29.39" cy="110.16" r="5.39" fill="#c6b3a1"/><path d="M121.79 88.89h.02c.01-17.13-14.62-28.3-31.06-27.66c-15.19.6-23.27 10.67-23.27 10.67s4.67 4.46 2.5 16.15l.02.02c-.08.32-.15.65-.22.98c-2.83 14.38 6.53 28.33 20.9 31.16c14.37 2.83 28.31-6.54 31.13-20.92c.7-3.55.66-7.07-.02-10.4z" fill="#90a4ae"/><linearGradient id="IconifyId-17a99df72c5-49eee0-27" gradientUnits="userSpaceOnUse" x1="67.478" y1="90.967" x2="123.505" y2="90.967"><stop offset=".292" stop-color="#d3cac3"/><stop offset="1" stop-color="#6d94a5"/></linearGradient><path d="M121.79 88.89l1.71.17c-.45-16.8-16.31-28.47-32.75-27.83c-15.19.6-23.27 10.67-23.27 10.67s.83.66 1.19 7.76c.12 2.37.19 5.45.16 9.47c-.12 16.06 7.49 28.25 21.86 31.08c14.37 2.83 29.3-6.08 32.12-20.46c.69-3.55-.34-7.53-1.02-10.86z" fill="url(#IconifyId-17a99df72c5-49eee0-27)"/><circle cx="98.03" cy="92.75" r="25.74" fill="#90a4ae"/><g><circle cx="100.55" cy="94.98" r="15.37" fill="#466b7d"/><circle cx="101.06" cy="92.86" r="14.25" fill="#a38e7a"/><radialGradient id="IconifyId-17a99df72c5-49eee0-28" cx="95.821" cy="81.892" r="20.256" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset=".921" stop-color="#cdd7db" stop-opacity="0"/></radialGradient><circle cx="101.06" cy="92.86" r="14.25" fill="url(#IconifyId-17a99df72c5-49eee0-28)"/><circle cx="102.82" cy="93.28" r="12.5" fill="#c6b3a1"/></g><g><path d="M68.35 20.1l-8.67-4.53l-7.93 8.47l-.25 6.79l12.76 4.65s6.56-3.38 6.83-3.51s-.11-5.54-.11-5.54l-2.63-6.33z" fill="#212121"/><path d="M57.25 22.24c1.38-3.39 2.68-3.27 4.19-2.84c1.54.44 2.57 2.24 1.38 4.89l-2.05 6.11l6.88-2.1l2.88 2.99l1.65 3.62s-6.4 2.36-10.42 2.52s-6.23-3.14-6.23-3.14l-2.82-1.3c.01 0 4.12-9.7 4.54-10.75z" fill="#466b7d"/><path d="M64.23 13.41c.12-2.62.26-5.99.26-6.06l-.06-.02c-.4-.08-3.03-.59-6.42-.98c-3.92-.45-6.04.24-7.96 2.45L38.9 20.09c-3.13 3.9-.64 9.19-.64 9.19l14.1 2.44s8.82-11.54 11.13-14.57c.13-.63.42-2.11.74-3.74z" fill="#6d94a5"/><path d="M38.26 29.28s-2.48-5.29.64-9.19l11.16-11.3c1.91-2.21 4.04-2.9 7.96-2.45c3.68.43 6.47.99 6.47.99s-.35 8.92-.45 9.08c-.11.16-11.68 15.3-11.68 15.3l-14.1-2.43z" fill="#d3cac3"/><path fill="#90a4ae" d="M45.97 22.63l14.59-14.7l1.65 11.34l-8.8 11.13l-4.92-4.76z"/><path d="M68.4 11.42c-.81-2.65-1.68-3.47-3.91-4.08c-4.32-1.19-7.45 3.49-4.81 8.23c2.87 5.16 7 13.66 7 13.66l6.36 5.09c.92-.34 1.97-1.95 1.19-4.57L68.4 11.42z" fill="#90a4ae"/><path d="M67.33 9.54c-.12-.11-.03-.76-.95-1.42c-.56-.4-1.24-.61-1.9-.79c-4.32-1.19-7.45 3.49-4.81 8.23c2.34 4.21 6.89 13.56 6.89 13.56s.68 2.4 1.12 2.52c.54.14 1.11-.2 1.39-.68c.28-.48.08-.95.05-1.5c0 0-6.37-13.02-7-14.21s4.22-6.61 5.21-5.71z" fill="#466b7d"/><circle cx="64.55" cy="12.72" r="4.6" fill="#466b7d"/><circle cx="64.94" cy="12.22" r="4.29" fill="#a38e7a"/><radialGradient id="IconifyId-17a99df72c5-49eee0-29" cx="61.144" cy="5.681" r="6.568" gradientTransform="rotate(12.17 45.284 22.59)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset=".921" stop-color="#cdd7db" stop-opacity="0"/></radialGradient><circle cx="64.94" cy="12.22" r="4.29" fill="url(#IconifyId-17a99df72c5-49eee0-29)"/><circle cx="65.7" cy="12.25" r="3.46" fill="#c6b3a1"/><circle cx="70.66" cy="31.29" r="3.96" fill="#466b7d"/><circle cx="70.86" cy="31.11" r="3.52" fill="#a38e7a"/><radialGradient id="IconifyId-17a99df72c5-49eee0-30" cx="71.125" cy="23.363" r="5.386" gradientTransform="rotate(12.17 45.284 22.59)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset=".921" stop-color="#cdd7db" stop-opacity="0"/></radialGradient><circle cx="70.86" cy="31.11" r="3.52" fill="url(#IconifyId-17a99df72c5-49eee0-30)"/><circle cx="71.58" cy="31.3" r="2.84" fill="#c6b3a1"/><path d="M27.73 27.46c1.25-6.16 6.84-8.05 12.21-7.55c4.69.43 7.59 1.15 7.59 1.15c-.57 2.14-.59 17.32-1.83 19.16c-1.38 2.03-8.15.61-12.48-2.65c-2.57-1.93-4.07-1.47-4.07-1.47s-2.19-4.88-1.42-8.64z" fill="#d9c6b6"/><ellipse transform="rotate(-75.072 43.516 30.68)" cx="43.51" cy="30.68" rx="10.44" ry="9.86" fill="#90a4ae"/><path d="M38.13 29.42c.8-3.18 4.02-5.63 8.01-4.38c3.17.99 18.86 6.8 18.86 6.8l.36 7.67s-18.16-.72-19.9-.92c-7.53-.87-8.14-5.95-7.33-9.17z" fill="#466b7d"/><path d="M67.91 36.95c.39-1.8-.69-3.56-2.42-4.08v-.03s-14.51-5.46-17.76-6.17a6.013 6.013 0 0 0-7.15 4.61a6.013 6.013 0 0 0 4.61 7.15c1.59.34 16.94 1.16 19.15 1.28c.04 0 .09.01.13.01c.09 0 .14.01.14.01v-.02c1.58-.08 2.95-1.17 3.3-2.76z" fill="#90a4ae"/><g><circle cx="47.29" cy="33.09" r="4.6" fill="#466b7d"/><circle cx="47.68" cy="32.6" r="4.29" fill="#a38e7a"/><radialGradient id="IconifyId-17a99df72c5-49eee0-31" cx="48.566" cy="29.233" r="6.568" gradientTransform="rotate(12.17 45.284 22.59)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset=".921" stop-color="#cdd7db" stop-opacity="0"/></radialGradient><circle cx="47.68" cy="32.6" r="4.29" fill="url(#IconifyId-17a99df72c5-49eee0-31)"/><circle cx="48.42" cy="32.86" r="3.46" fill="#c6b3a1"/></g></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" width="1em" height="1em" style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);" preserveAspectRatio="xMidYMid meet" viewBox="0 0 128 128"><linearGradient id="IconifyId-17a99f60578-807714-36" x1="43.401" x2="66.946" y1="35.388" y2="110.95" gradientUnits="userSpaceOnUse"><stop stop-color="#607D8B" offset="0"/><stop stop-color="#57727F" offset=".4"/><stop stop-color="#455A64" offset="1"/></linearGradient><path d="M119.04 73.55c-1.44-2.68-2.99-4.84-4.61-6.24v-.01c-.06-.06-.13-.1-.19-.16c-.13-.11-.26-.22-.39-.31c-.23-.17-.46-.33-.69-.47c-.44-.26-.87-.55-1.29-.85c-.12-.08-.24-.17-.35-.26c-7.1-5.26-12.5-15.94-16.52-22.86c-1.83-3.78-3.65-6.46-5.44-6.46c-.37 0-.81.19-1.29.48c-1.06.63-2.39 1.94-3.93 3.78c-5.27-3.29-5.44-20.97-10.08-20.97c-2.3 0-4.09-6.19-6.35-10.67c-.01-.01-.01-.02-.02-.03c-.17.21-.17.21 0 0c-.32-.63-.64-1.22-.98-1.76c-.67-1.08-1.39-1.93-2.18-2.39c-.39-.23-.8-.36-1.24-.37c-.82-.02-1.75.5-2.76 1.43c-.76.7-1.57 1.62-2.4 2.73c-.56.74-1.13 1.55-1.71 2.43c-.29.44-.58.89-.87 1.36c-.59.93-1.18 1.92-1.78 2.95c-5.95 10.28-12.1 24.38-13.87 26.26c-.51.54-1.02.95-1.55 1.27c-1.57.97-3.21 1.12-4.77 1.25c-.7.06-1.38.1-2.03.22c-1.03.18-2.02.58-2.94 1.18c-.46.3-.9.65-1.31 1.05c-.21.2-.41.41-.6.64c-.19.22-.38.46-.56.71c-.19.26-.38.53-.57.81c-.05.07-.1.15-.15.23c-.15.22-.3.44-.45.68l-.15.24c-.16.25-.33.52-.5.78l-.11.17c-.18.3-.37.6-.55.92c-.02.04-.04.07-.06.11c-.17.28-.34.57-.5.86c-4.43 7.69-9.74 19.58-14.49 31.05A62.077 62.077 0 0 0 4 107.28V116h120V93.87c0-7.07-1.6-14.1-4.96-20.32zm-31.23-8.47c-.1.17-.18.32-.28.48c.1-.16.18-.31.28-.48zm-.39 41.54c-.8.92-1.59 1.87-2.38 2.8c.8-.94 1.58-1.88 2.38-2.8c.38-.43.74-.86 1.1-1.28c-.35.42-.72.84-1.1 1.28zm.06-30.55zm5-31.33c-.09-.37-.18-.74-.28-1.1c.1.36.19.73.28 1.1l.12.51l-.12-.51zm6.58 43.57c.11-.53.17-1.02.19-1.49c-.02.47-.09.96-.19 1.49z" fill="url(#IconifyId-17a99f60578-807714-36)"/><path d="M91.45 101.77c-1.18 1.5-2.52 3.12-4.02 4.85c-.8.92-1.59 1.87-2.38 2.8c.79-.93 1.58-1.88 2.38-2.8c1.5-1.73 2.84-3.35 4.02-4.85z" fill="none"/><path d="M99.25 86.15c-.02-.44-.07-.85-.16-1.24c.09.39.15.8.16 1.24z" fill="none"/><path d="M98.19 82.86z" fill="none"/><path d="M99.06 88.31c.11-.53.17-1.02.19-1.49c-.02.47-.09.96-.19 1.49z" fill="none"/><path d="M97.85 91.87c.45-.99.79-1.9 1.01-2.74c-.23.83-.56 1.74-1.01 2.74z" fill="none"/><path d="M91.45 101.77c3.15-4.01 5.2-7.25 6.4-9.9c-1.21 2.65-3.25 5.89-6.4 9.9z" fill="none"/><linearGradient id="IconifyId-17a99f60578-807714-37" x1="27.284" x2="48.617" y1="52.926" y2="122.26" gradientTransform="matrix(-1 0 0 1 128 0)" gradientUnits="userSpaceOnUse"><stop stop-color="#78909C" offset="0"/><stop stop-color="#6C8490" offset=".427"/><stop stop-color="#546E7A" offset="1"/></linearGradient><path d="M79.6 116c1.79-2.21 3.6-4.41 5.45-6.58A306.38 306.38 0 0 0 79.6 116z" fill="url(#IconifyId-17a99f60578-807714-37)"/><linearGradient id="IconifyId-17a99f60578-807714-38" x1="52.004" x2="45.004" y1="58.942" y2="118.44" gradientTransform="matrix(-1 0 0 1 128 0)" gradientUnits="userSpaceOnUse"><stop stop-color="#546E7A" offset="0"/><stop stop-color="#4C636E" offset=".37"/><stop stop-color="#37474F" offset="1"/></linearGradient><path d="M79.6 116c1.79-2.21 3.6-4.41 5.45-6.58A306.38 306.38 0 0 0 79.6 116z" fill="url(#IconifyId-17a99f60578-807714-38)"/><linearGradient id="IconifyId-17a99f60578-807714-39" x1="59.148" x2="59.148" y1="3" y2="74.391" gradientTransform="matrix(-1 0 0 1 128 0)" gradientUnits="userSpaceOnUse"><stop stop-color="#E1F5FE" offset="0"/><stop stop-color="#D5F1FD" offset=".351"/><stop stop-color="#B4E5FC" offset=".991"/><stop stop-color="#B3E5FC" offset="1"/></linearGradient><path d="M23.78 51.4c.02-.04.04-.07.06-.11c.19-.31.37-.62.55-.92l.11-.17c.17-.27.33-.53.5-.78l.15-.24c.15-.23.3-.46.45-.68c.05-.07.1-.15.15-.23c.19-.28.38-.55.57-.81c.18-.25.37-.48.56-.71c.19-.22.4-.44.6-.64c.41-.4.85-.75 1.31-1.05c.92-.6 1.91-1 2.94-1.18c.66-.11 1.34-.16 2.03-.22c1.57-.12 3.2-.28 4.77-1.25c.52-.32 1.04-.74 1.55-1.27c1.77-1.88 7.92-15.98 13.87-26.26c.6-1.03 1.19-2.02 1.78-2.95c.29-.47.59-.92.87-1.36c.58-.88 1.15-1.69 1.71-2.43c.84-1.1 1.64-2.03 2.4-2.73c1.04-.91 1.97-1.43 2.78-1.41c.43.01.84.14 1.24.37c.79.46 1.51 1.32 2.18 2.39c.34.54.66 1.13.98 1.76c-.17.21-.17.21 0 0c.01.01.01.02.02.03c2.26 4.49 4.05 10.67 6.35 10.67c4.64 0 4.81 17.69 10.08 20.97c1.53-1.84 2.86-3.15 3.93-3.78c.48-.29.92-.48 1.29-.48c1.79 0 3.61 2.68 5.44 6.46c4.33 7.44 10.24 19.25 18.17 23.97c.43.26.85.57 1.27.93c-1.52 3.03-4.15 6.24-8.18 4.92c-7-2.3-10.45.11-14.01 4.71c-.4.51-.83.89-1.29 1.19c-3.63 2.4-8.84-1.37-10.88-2.8c-2.26-1.58-10.08-3.49-17.11-.59c-.02.01-.25.09-.34.13c-7.12 3.1-11.6-6.89-11.14-17.91s-5.4-9.87-9.07-7.12c-2.83 2.12-13.96 2.88-19.14 2.44c.16-.29.33-.57.5-.86z" fill="url(#IconifyId-17a99f60578-807714-39)"/><radialGradient id="IconifyId-17a99f60578-807714-40" cx="96.5" cy="50" r="37.832" gradientUnits="userSpaceOnUse"><stop stop-color="#546E7A" offset="0"/><stop stop-color="#4C636E" offset=".37"/><stop stop-color="#37474F" offset="1"/></radialGradient><path d="M85.04 109.42c.79-.93 1.58-1.88 2.38-2.8c1.51-1.73 2.84-3.34 4.02-4.85c3.15-4.01 5.2-7.25 6.4-9.9c.45-.99.79-1.9 1.01-2.74c.08-.28.14-.55.2-.81c.11-.53.17-1.02.19-1.49c.01-.23.01-.46 0-.68c-.02-.44-.07-.85-.16-1.24a6.04 6.04 0 0 0-.9-2.05c-.21-.3-.44-.58-.7-.85c-.77-.8-1.72-1.45-2.77-2.03c-.52-.29-1.06-.57-1.61-.83c-.72-.35-1.45-.69-2.16-1.03c-.36-.17-.72-.35-1.06-.53a15.107 15.107 0 0 1-1.32-.76c-.38-.24-.76-.49-1.09-.76c-.41-.34-.78-.7-1.09-1.1c-.21-.27-.39-.55-.54-.85a5.002 5.002 0 0 1-.47-1.49c-.11-.73-.07-1.55.15-2.49c.08-.33.18-.67.3-1.03c.1-.31.24-.63.37-.96c.02-.04.03-.08.05-.13c.33-.76.76-1.58 1.28-2.46c.1-.16.17-.31.28-.48c.56-.91 1.07-1.8 1.53-2.68c.69-1.31 1.27-2.57 1.74-3.79c.32-.81.59-1.61.82-2.38c.09-.31.18-.62.26-.92c.12-.45.23-.9.32-1.34c.23-1.1.37-2.16.45-3.17a21.958 21.958 0 0 0 .01-2.91c-.04-.62-.11-1.21-.2-1.79c-.05-.29-.1-.57-.15-.85l-.12-.51c-.09-.37-.18-.74-.28-1.1c-.23-.78-.5-1.51-.8-2.2c-.2-.46-.41-.9-.63-1.32s-.45-.82-.69-1.2s-.48-.74-.72-1.09c-.36-.51-.73-.98-1.09-1.41c.48-.29.92-.48 1.29-.48c1.79 0 3.61 2.68 5.44 6.46C99 49.32 104.4 60 111.5 65.26l.35.26c.43.3.85.59 1.29.85c.23.14.46.3.69.47c.13.1.26.21.39.31c.06.05.13.1.19.16v.01c1.63 1.41 3.17 3.57 4.61 6.24C122.4 79.77 124 86.8 124 93.87V116H79.6c1.78-2.21 3.6-4.41 5.44-6.58z" fill="url(#IconifyId-17a99f60578-807714-40)"/><radialGradient id="IconifyId-17a99f60578-807714-41" cx="51.5" cy="10.75" r="83.563" gradientUnits="userSpaceOnUse"><stop stop-color="#90A4AE" offset="0"/><stop stop-color="#849AA5" offset=".226"/><stop stop-color="#65818E" offset=".633"/><stop stop-color="#607D8B" offset=".686"/><stop stop-color="#5F7C8A" offset=".697"/><stop stop-color="#57717E" offset=".848"/><stop stop-color="#546E7A" offset="1"/></radialGradient><path d="M8.79 83.31c4.75-11.46 10.06-23.36 14.49-31.05c.17-.29.34-.58.5-.86c.02-.04.04-.07.06-.11c.19-.31.37-.62.55-.92l.11-.17c.17-.27.33-.53.5-.78l.15-.24c.15-.23.3-.46.45-.68c.05-.07.1-.15.15-.23c.19-.28.38-.55.57-.81c.18-.25.37-.48.56-.71c.19-.22.4-.44.6-.64c.41-.4.85-.75 1.31-1.05c.92-.6 1.91-1 2.94-1.18c.66-.11 1.34-.16 2.03-.22c1.57-.12 3.2-.28 4.77-1.25c.52-.32 1.04-.74 1.55-1.27c1.77-1.88 7.92-15.98 13.87-26.26c.6-1.03 1.19-2.02 1.78-2.95c.29-.47.59-.92.87-1.36c.58-.88 1.15-1.69 1.71-2.43c.84-1.1 1.64-2.03 2.4-2.73c1.04-.91 1.97-1.43 2.78-1.41c.43.01.84.14 1.24.37c.79.46 1.51 1.32 2.18 2.39c.34.54.66 1.13.98 1.76c-.17.21-.17.21 0 0c.01.01.01.02.02.03c-11.53 13.77-9.16 27.69-5.53 38.75c.41.5.8 1 1.16 1.53c1.82 2.67 3.09 5.71 5.52 7.93c.85.78 1.8 1.41 2.8 1.96c6.06-9.67 12.36-18.36 12.48-18.53c1.53-1.84 2.86-3.15 3.93-3.78a20.635 20.635 0 0 1 1.81 2.5c.24.38.47.78.69 1.2s.43.86.63 1.32c.3.69.57 1.42.8 2.2c.1.36.2.72.28 1.1l.12.51c.06.28.11.56.15.85a19.982 19.982 0 0 1 .24 2.73c.01.64 0 1.29-.05 1.97c-.07 1.01-.22 2.07-.45 3.17c-.09.44-.2.89-.32 1.34c-.08.3-.16.61-.26.92c-.23.77-.51 1.57-.82 2.38a37.81 37.81 0 0 1-1.74 3.79c-.46.87-.97 1.76-1.53 2.68c-.1.17-.18.32-.28.48c-.52.88-.95 1.7-1.28 2.46c-.02.04-.03.08-.05.13a12.777 12.777 0 0 0-.67 1.99c-.22.94-.26 1.76-.15 2.49c.03.18.06.36.11.53c.09.34.21.66.36.96s.33.58.54.85c.31.4.68.76 1.09 1.1c.33.27.71.52 1.09.76c.12.07.23.15.35.22c.31.19.64.36.97.54c.35.18.7.36 1.06.53c.71.34 1.44.68 2.16 1.03c.55.27 1.09.54 1.61.83c1.04.58 2 1.23 2.77 2.03c.26.27.49.55.7.85c.42.6.73 1.28.9 2.05c.09.39.14.8.16 1.24c.01.22.01.44 0 .68c-.02.47-.09.96-.19 1.49c-.05.26-.12.53-.2.81c-.23.84-.56 1.75-1.01 2.74c-1.2 2.65-3.25 5.89-6.4 9.9c-1.18 1.5-2.52 3.12-4.02 4.85c-.8.92-1.59 1.87-2.38 2.8c-1.84 2.17-3.66 4.37-5.45 6.58H4v-8.72c0-8.22 1.64-16.36 4.79-23.96z" fill="url(#IconifyId-17a99f60578-807714-41)"/><linearGradient id="IconifyId-17a99f60578-807714-42" x1="63.668" x2="74.418" y1="21.399" y2="55.899" gradientUnits="userSpaceOnUse"><stop stop-color="#607D8B" offset="0"/><stop stop-color="#57727F" offset=".4"/><stop stop-color="#455A64" offset="1"/></linearGradient><path d="M64.87 69.15c-.43.58-1.35.18-1.2-.53c.93-4.67 2.28-11.36.08-17.38c-4.22-11.58-8.79-27.23 4.15-42.69c2.26 4.49 4.05 10.67 6.35 10.67c4.64 0 4.81 17.69 10.08 20.97c-.14.21-14.5 22.18-19.46 28.96z" fill="url(#IconifyId-17a99f60578-807714-42)"/><linearGradient id="IconifyId-17a99f60578-807714-43" x1="64" x2="64" y1="105.17" y2="83.076" gradientUnits="userSpaceOnUse"><stop stop-color="#37474F" offset="0"/><stop stop-color="#37474F" stop-opacity="0" offset="1"/></linearGradient><path d="M119.04 73.55c-1.44-2.68-2.99-4.84-4.61-6.24v-.01c-.06-.06-.13-.1-.19-.16c-.13-.11-.26-.22-.39-.31c-.23-.17-.46-.33-.69-.47c-.44-.26-.87-.55-1.29-.85c-.12-.08-.24-.17-.35-.26c-7.1-5.26-12.5-15.94-16.52-22.86c-1.83-3.78-3.65-6.46-5.44-6.46c-.37 0-.81.19-1.29.48c-1.06.63-2.39 1.94-3.93 3.78c-.12.17-6.42 8.85-12.48 18.53c-.99-.56-1.94-1.18-2.8-1.96c-2.43-2.22-3.7-5.26-5.52-7.93c-.36-.53-.76-1.04-1.16-1.53c-3.64-11.06-6-24.98 5.53-38.75c-.01-.01-.01-.02-.02-.03c-.17.21-.17.21 0 0c-.32-.63-.64-1.22-.98-1.76c-.67-1.08-1.39-1.93-2.18-2.39c-.39-.23-.8-.36-1.24-.37c-.82-.02-1.75.5-2.76 1.43c-.76.7-1.57 1.62-2.4 2.73c-.56.74-1.13 1.55-1.71 2.43c-.29.44-.58.89-.87 1.36c-.59.93-1.18 1.92-1.78 2.95c-5.95 10.28-12.1 24.38-13.87 26.26c-.51.54-1.02.95-1.55 1.27c-1.57.97-3.21 1.12-4.77 1.25c-.7.06-1.38.1-2.03.22c-1.03.18-2.02.58-2.94 1.18c-.46.3-.9.65-1.31 1.05c-.21.2-.41.41-.6.64c-.19.22-.38.46-.56.71c-.19.26-.38.53-.57.81c-.05.07-.1.15-.15.23c-.15.22-.3.44-.45.68l-.15.24c-.16.25-.33.52-.5.78l-.11.17c-.18.3-.37.6-.55.92c-.02.04-.04.07-.06.11c-.17.28-.34.57-.5.86c-4.43 7.69-9.74 19.58-14.49 31.05A62.077 62.077 0 0 0 4 107.28V116h120V93.87c0-7.07-1.6-14.1-4.96-20.32zm-31.23-8.47c-.1.17-.18.32-.28.48c.1-.16.18-.31.28-.48zm-.39 41.54c-.8.92-1.59 1.87-2.38 2.8c.8-.94 1.58-1.88 2.38-2.8c.38-.43.74-.86 1.1-1.28c-.35.42-.72.84-1.1 1.28zm.06-30.55zm5-31.33c-.09-.37-.18-.74-.28-1.1c.1.36.19.73.28 1.1l.12.51l-.12-.51zm6.58 43.57c.11-.53.17-1.02.19-1.49c-.02.47-.09.96-.19 1.49z" fill="url(#IconifyId-17a99f60578-807714-43)" opacity=".7"/><path d="M63.42 7.12c.19.18.51.53.93 1.2c.05.09.17.36.24.52c.19.42.45 1.01.87 1.53c.5 1.03.98 2.16 1.46 3.27c1.89 4.39 3.53 8.21 6.84 8.56c.82 1.09 1.83 4.9 2.45 7.24c1.42 5.36 2.89 10.9 6.4 13.21l.03.03l.14.08l.03.02l.01.01l2.17 1.32l1.65-1.99c1.49-1.8 2.41-2.6 2.89-2.95c.47.48 1.38 1.67 2.76 4.53l.05.1l.06.1c.55.94 1.12 1.95 1.72 3.01c4 7.06 8.97 15.84 15.61 20.75c.13.1.27.2.4.29c.56.4 1.04.71 1.49.98c.12.07.26.17.44.3c.07.05.13.11.2.16l.06.05c.02.02.04.04.06.05l.08.07c1.27 1.1 2.59 2.92 3.94 5.4c3.01 5.58 4.6 12.11 4.6 18.89V113H7v-5.72c0-7.84 1.53-15.51 4.56-22.81c5.74-13.85 10.56-24.18 14.32-30.7l.42-.72c.02-.04.04-.07.07-.11l.14-.24c.15-.25.3-.5.45-.74l.07-.11l.04-.06c.16-.25.31-.5.47-.74l.01-.05l.11-.17c.14-.22.28-.43.42-.63l.07-.1l.08-.11c.18-.26.35-.5.52-.74c.13-.18.27-.35.41-.51s.28-.31.42-.45c.28-.27.57-.51.88-.71c.57-.38 1.18-.62 1.8-.73c.48-.08 1.04-.13 1.63-.17l.13-.01c1.64-.13 3.88-.31 6.11-1.69c.77-.48 1.49-1.07 2.15-1.77c1.14-1.21 2.62-4.14 5.84-10.64c2.45-4.94 5.5-11.09 8.44-16.17c.6-1.03 1.18-1.99 1.72-2.86c.28-.45.56-.88.84-1.3c.56-.84 1.1-1.61 1.6-2.27c.76-1 1.44-1.78 2.04-2.33c.29-.26.5-.42.66-.52M63.45 4c-.81 0-1.72.52-2.72 1.43c-.76.7-1.57 1.62-2.4 2.73c-.56.74-1.13 1.55-1.71 2.43c-.29.44-.58.89-.87 1.36c-.59.93-1.18 1.92-1.78 2.95c-5.95 10.28-12.1 24.38-13.87 26.26c-.51.54-1.02.95-1.55 1.27c-1.57.97-3.21 1.12-4.77 1.25c-.7.06-1.38.1-2.03.22c-1.03.18-2.02.58-2.94 1.18c-.46.3-.9.65-1.31 1.05c-.21.2-.41.41-.6.64c-.19.22-.38.46-.56.71c-.19.26-.38.53-.57.81c-.05.07-.1.15-.15.23c-.15.22-.3.44-.45.68l-.15.24c-.16.25-.33.52-.5.78l-.11.17c-.18.3-.37.6-.55.92c-.02.04-.04.07-.06.11c-.17.28-.34.57-.5.86c-4.43 7.69-9.74 19.58-14.49 31.05A62.077 62.077 0 0 0 4 107.28V116h120V93.87c0-7.07-1.6-14.1-4.96-20.32c-1.44-2.68-2.99-4.84-4.61-6.24v-.01c-.06-.06-.13-.1-.19-.16c-.13-.11-.26-.22-.39-.31c-.23-.17-.46-.33-.69-.47c-.44-.26-.87-.55-1.29-.85c-.12-.08-.24-.17-.35-.26c-7.1-5.26-12.5-15.94-16.52-22.86c-1.83-3.78-3.65-6.46-5.44-6.46c-.37 0-.81.19-1.29.48c-1.06.63-2.39 1.94-3.93 3.78c-5.27-3.29-5.44-20.97-10.08-20.97c-2.3 0-4.09-6.19-6.35-10.67c-.01-.01-.01-.02-.02-.03c-.01.01-.02.02-.04.02c-.19 0-.63-1.28-.94-1.78c-.67-1.08-1.39-1.93-2.18-2.39c-.39-.23-.8-.36-1.24-.37h-.04z" fill="#424242" opacity=".2"/><path d="M37.32 53.83c.07-.46-.57-.66-.77-.24c-2.66 5.64-13.77 22.19-17.77 29.25c-.39.69.44 1.42 1.07.95c1.93-1.43 5.72-4.78 5.93-5.78c.3-1.43 2.96-5.44 3.81-6.7c.17-.24.34-.48.52-.71l3.49-4.39c.68-.86 1.17-1.85 1.42-2.92l2.3-9.46z" fill="#eee" opacity=".2"/><path d="M49.45 42.23c.16-.34-.24-.67-.54-.45l-3.66 2.62c-.26.27-.45.6-.53.97l-2.87 11.42c0 .45.63.54.76.11l6.84-14.67z" fill="#eee" opacity=".2"/><path d="M61.64 72.67c.15-.41-.39-.7-.65-.35c-3.42 4.6-16.44 17.5-21.32 23.14c-.48.55.14 1.36.8 1.05c2-.94 6.02-3.27 6.39-4.14c.53-1.24 3.65-4.36 4.65-5.34c.19-.19.39-.37.6-.54l3.94-3.32c.77-.65 1.39-1.46 1.81-2.37l3.78-8.13z" fill="#eee" opacity=".2"/><path d="M45.2 82.13c.27-.21.09-.64-.25-.59l-4.1.58c-.33.11-.62.3-.84.57l-7.2 8.09c-.19.36.29.71.57.41l11.82-9.06z" fill="#eee" opacity=".2"/><path d="M109.19 86.06c.24.25.65-.04.49-.35c-2.17-4.11-7.06-18.14-9.48-23.69c-.24-.54-1.04-.37-1.04.22c-.01 1.79.29 5.55.79 6.12c.72.82 1.92 4.2 2.29 5.27c.07.21.13.41.19.63l1.06 4.04c.21.79.58 1.52 1.1 2.15l4.6 5.61z" fill="#424242" opacity=".2"/><path d="M109.32 71.78c-.07-.27.17-.27.4-.01l3.91 4.77c.31.26.58.64.72 1l3.16 8.4l-2.88-4.43c-.13-.2-.33-.26-.31-.09l.76 6.36c.02.28-.38.05-1.08-.27l-4.68-15.73z" fill="#424242" opacity=".2"/><path d="M86.41 46.15c.16-.19.46-.11.51.13l.71 4.17c.16.26.17.58.02.84l-3.47 6.13l.29-3.63c.01-.17-.18-.26-.31-.15l-4.71 4.12c-.23.17-.53-.09-1.13-.52l8.09-11.09z" fill="#424242" opacity=".2"/><path d="M65.54 18.5c-.07-.28.17-.28.41-.01l4.03 4.92c.32.27.6.66.74 1.03l3.26 8.66l-2.97-4.57c-.14-.21-.34-.27-.32-.09l.79 6.56c.02.28-.39.05-1.12-.28L65.54 18.5z" fill="#424242" opacity=".2"/><linearGradient id="IconifyId-17a99f60578-807714-44" x1="64" x2="64" y1="99" y2="123.52" gradientUnits="userSpaceOnUse"><stop stop-color="#4CAF50" offset="0"/><stop stop-color="#48A84C" offset=".267"/><stop stop-color="#3B933F" offset=".667"/><stop stop-color="#2E7D32" offset="1"/></linearGradient><path d="M124 92.57c0-1.9-2-3.16-3.7-2.32c-4.06 2-7.41 5.21-9.59 9.17c-.59.69-1.07 1.52-1.42 2.51c-.02.07-.05.14-.07.21c-.17.51-.7.78-1.23.65c-.32-.08-.64-.12-.98-.12c-1.34 0-2.57.63-3.57 1.7c-.71.76-1.91.79-2.73.15a12.53 12.53 0 0 0-7.69-2.64c-2.2 0-4.27.58-6.08 1.58c-.87.48-1.95.18-2.54-.62c-3.56-4.84-9.18-7.98-15.52-7.98c-4.8 0-9.18 1.8-12.58 4.77c-.38.34-.94.34-1.33.01c-.9-.78-1.95-1.23-3.08-1.23c-1.1 0-2.13.43-3.01 1.17c-.34.29-.82.3-1.2.06a13.87 13.87 0 0 0-7.54-2.23c-3.9 0-7.42 1.62-9.99 4.23c-.39.4-1.02.37-1.43-.02c-.95-.92-2.1-1.47-3.34-1.47c-1.36 0-2.61.65-3.61 1.74c-.39.43-1.06.47-1.45.05c-3.57-3.84-8.59-6.24-14.15-6.22C4.96 95.76 4 96.77 4 97.98V124h120V92.57z" fill="url(#IconifyId-17a99f60578-807714-44)"/><path d="M121 93.26V121H7V98.77c4.23.2 8.16 2.04 11.13 5.24c.74.8 1.79 1.26 2.88 1.26c1.12 0 2.21-.48 2.97-1.31c.32-.35.83-.77 1.4-.77c.4 0 .83.21 1.25.62a4.04 4.04 0 0 0 2.82 1.15c1.07 0 2.08-.42 2.83-1.18c2.12-2.15 4.91-3.34 7.85-3.34c2.09 0 4.13.61 5.91 1.75c.66.42 1.42.65 2.19.65c.94 0 1.84-.33 2.56-.93c.37-.31.74-.47 1.08-.47c.36 0 .74.17 1.12.5c.73.63 1.66.98 2.62.98c.97 0 1.91-.35 2.65-1c2.97-2.6 6.74-4.03 10.6-4.03c5.17 0 9.95 2.46 13.1 6.75c.96 1.3 2.48 2.08 4.07 2.08c.82 0 1.64-.21 2.35-.61c1.44-.8 2.99-1.2 4.62-1.2c2.13 0 4.15.7 5.86 2.01c.9.69 2.02 1.07 3.15 1.07c1.37 0 2.69-.57 3.61-1.55c.32-.34.82-.75 1.38-.75c.09 0 .18.01.27.03c.32.08.64.11.96.11c1.73 0 3.26-1.1 3.81-2.73l.06-.18c.21-.6.5-1.12.87-1.55l.2-.24l.15-.27a19.17 19.17 0 0 1 7.68-7.6m.42-3.27c-.37 0-.76.08-1.12.27c-4.06 2-7.41 5.21-9.59 9.17c-.59.69-1.07 1.52-1.42 2.51c-.02.07-.05.14-.07.21a1 1 0 0 1-.97.69c-.09 0-.17-.01-.26-.03c-.32-.08-.64-.12-.98-.12c-1.34 0-2.57.63-3.57 1.7c-.38.4-.89.6-1.42.6c-.46 0-.93-.15-1.31-.45a12.53 12.53 0 0 0-7.69-2.64c-2.2 0-4.27.58-6.08 1.58c-.28.16-.59.23-.9.23c-.63 0-1.25-.31-1.65-.85c-3.56-4.84-9.18-7.98-15.52-7.98c-4.8 0-9.18 1.8-12.58 4.77a.99.99 0 0 1-1.33.01c-.9-.78-1.95-1.23-3.08-1.23c-1.1 0-2.13.43-3.01 1.17c-.18.15-.4.23-.63.23c-.2 0-.39-.06-.57-.17a13.87 13.87 0 0 0-7.54-2.23c-3.9 0-7.42 1.62-9.99 4.23c-.19.19-.44.29-.69.29c-.26 0-.53-.1-.74-.3c-.95-.92-2.1-1.47-3.34-1.47c-1.36 0-2.61.65-3.61 1.74c-.21.22-.49.34-.77.34c-.25 0-.5-.1-.68-.3c-3.55-3.83-8.54-6.22-14.08-6.22h-.08C4.96 95.76 4 96.77 4 97.98V124h120V92.57c0-1.49-1.23-2.58-2.58-2.58z" fill="#424242" opacity=".2"/><path d="M50.2 106.91c3.02.93 4.54 3.57 4.13 6.64c-.28 2.14 3.07 2.2 3.35.08c.19-1.41.04-2.77-.37-4.01c4.74-.01 8.82 2.53 10.88 6.87c.93 1.95 3.87.36 2.95-1.59c-2.62-5.52-8.29-8.93-14.39-8.62c-.44.02-.79.19-1.06.43a9.616 9.616 0 0 0-4.57-3.02c-2.05-.64-2.98 2.58-.92 3.22z" fill="#424242" opacity=".2"/><path d="M106.05 111.43c2.1.71 3.11 2.58 2.77 4.72c-.24 1.49 2.1 1.59 2.34.12c.16-.98.08-1.93-.18-2.81c3.31.08 6.12 1.93 7.48 5c.61 1.38 2.7.32 2.09-1.05c-1.73-3.91-5.63-6.4-9.9-6.29c-.31.01-.56.12-.75.28a6.692 6.692 0 0 0-3.14-2.19c-1.43-.49-2.14 1.74-.71 2.22z" fill="#424242" opacity=".2"/><path d="M24.03 109.78c-4.55.1-8.07 2.94-9.2 7.37c-.47 1.84-3.33 1.16-2.87-.68c1.45-5.68 6.11-9.5 11.99-9.63c1.9-.04 1.98 2.9.08 2.94z" fill="#424242" opacity=".2"/></svg>
|