@nockchain/rose 0.1.4-nightly.5
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/.github/workflows/artifacts.yml +33 -0
- package/.github/workflows/ci.yml +68 -0
- package/.github/workflows/publish-sdk.yml +35 -0
- package/.nvmrc +1 -0
- package/.prettierignore +5 -0
- package/.prettierrc +8 -0
- package/LICENSE +22 -0
- package/README.md +117 -0
- package/extension/background/index.ts +1500 -0
- package/extension/content/index.ts +59 -0
- package/extension/icons/rose.svg +27 -0
- package/extension/icons/rose128.png +0 -0
- package/extension/icons/rose16.png +0 -0
- package/extension/icons/rose256.png +0 -0
- package/extension/icons/rose32.png +0 -0
- package/extension/icons/rose48.png +0 -0
- package/extension/icons/rose512.png +0 -0
- package/extension/inpage/index.ts +86 -0
- package/extension/manifest.json +48 -0
- package/extension/popup/Popup.tsx +94 -0
- package/extension/popup/Router.tsx +121 -0
- package/extension/popup/assets/arrow-down-icon.svg +3 -0
- package/extension/popup/assets/arrow-left-icon.svg +3 -0
- package/extension/popup/assets/arrow-right-icon.svg +3 -0
- package/extension/popup/assets/arrow-up-icon.svg +3 -0
- package/extension/popup/assets/arrow-up-right-icon.svg +3 -0
- package/extension/popup/assets/checkmark-icon.svg +3 -0
- package/extension/popup/assets/checkmark-pencil-icon.svg +3 -0
- package/extension/popup/assets/checkmark-success-icon.svg +3 -0
- package/extension/popup/assets/clock-icon.svg +3 -0
- package/extension/popup/assets/close-x-icon.svg +3 -0
- package/extension/popup/assets/copy-icon.svg +6 -0
- package/extension/popup/assets/explorer-icon.svg +3 -0
- package/extension/popup/assets/eye-off-icon.svg +3 -0
- package/extension/popup/assets/eye-open-icon.svg +4 -0
- package/extension/popup/assets/feedback-icon.svg +3 -0
- package/extension/popup/assets/green-status-dot.svg +3 -0
- package/extension/popup/assets/info-icon.svg +3 -0
- package/extension/popup/assets/iris-logo-40.svg +27 -0
- package/extension/popup/assets/iris-logo-96.svg +27 -0
- package/extension/popup/assets/iris-logo-blue.svg +27 -0
- package/extension/popup/assets/iris-logo-no-eye.svg +27 -0
- package/extension/popup/assets/iris-logo-orange.svg +27 -0
- package/extension/popup/assets/iris-logo.svg +27 -0
- package/extension/popup/assets/key-icon.svg +3 -0
- package/extension/popup/assets/lock-icon-yellow.svg +3 -0
- package/extension/popup/assets/lock-icon.svg +3 -0
- package/extension/popup/assets/pencil-edit-icon.svg +3 -0
- package/extension/popup/assets/permissions-icon.svg +3 -0
- package/extension/popup/assets/receipt-icon.svg +5 -0
- package/extension/popup/assets/refresh-icon.svg +3 -0
- package/extension/popup/assets/settings-gear-icon.svg +8 -0
- package/extension/popup/assets/settings-icon.svg +3 -0
- package/extension/popup/assets/theme-icon.svg +3 -0
- package/extension/popup/assets/trash-bin-icon.svg +3 -0
- package/extension/popup/assets/trend-down-arrow.svg +5 -0
- package/extension/popup/assets/trend-up-arrow.svg +5 -0
- package/extension/popup/assets/user-account-icon.svg +3 -0
- package/extension/popup/assets/vector-bottom-left.svg +9 -0
- package/extension/popup/assets/vector-left.svg +9 -0
- package/extension/popup/assets/vector-right.svg +9 -0
- package/extension/popup/assets/vector-top-right-rotated.svg +8 -0
- package/extension/popup/assets/vector-top-right.svg +9 -0
- package/extension/popup/assets/wallet-dropdown-arrow.svg +5 -0
- package/extension/popup/assets/wallet-icon-style-1.svg +6 -0
- package/extension/popup/assets/wallet-icon-style-10.svg +8 -0
- package/extension/popup/assets/wallet-icon-style-11.svg +8 -0
- package/extension/popup/assets/wallet-icon-style-12.svg +8 -0
- package/extension/popup/assets/wallet-icon-style-13.svg +8 -0
- package/extension/popup/assets/wallet-icon-style-14.svg +8 -0
- package/extension/popup/assets/wallet-icon-style-15.svg +8 -0
- package/extension/popup/assets/wallet-icon-style-2.svg +8 -0
- package/extension/popup/assets/wallet-icon-style-3.svg +8 -0
- package/extension/popup/assets/wallet-icon-style-4.svg +8 -0
- package/extension/popup/assets/wallet-icon-style-5.svg +8 -0
- package/extension/popup/assets/wallet-icon-style-6.svg +8 -0
- package/extension/popup/assets/wallet-icon-style-7.svg +8 -0
- package/extension/popup/assets/wallet-icon-style-8.svg +8 -0
- package/extension/popup/assets/wallet-icon-style-9.svg +8 -0
- package/extension/popup/components/AccountIcon.tsx +78 -0
- package/extension/popup/components/AccountSelector.tsx +246 -0
- package/extension/popup/components/Alert.tsx +48 -0
- package/extension/popup/components/ConfirmModal.tsx +81 -0
- package/extension/popup/components/PasswordInput.tsx +49 -0
- package/extension/popup/components/ScreenContainer.tsx +17 -0
- package/extension/popup/components/SiteIcon.tsx +60 -0
- package/extension/popup/components/ThemeToggle.tsx +44 -0
- package/extension/popup/components/icons/ArrowDownLeftIcon.tsx +20 -0
- package/extension/popup/components/icons/ArrowUpRightIcon.tsx +20 -0
- package/extension/popup/components/icons/CheckIcon.tsx +20 -0
- package/extension/popup/components/icons/ChevronDownIcon.tsx +15 -0
- package/extension/popup/components/icons/ChevronLeftIcon.tsx +15 -0
- package/extension/popup/components/icons/ChevronRightIcon.tsx +15 -0
- package/extension/popup/components/icons/ChevronUpIcon.tsx +15 -0
- package/extension/popup/components/icons/CloseIcon.tsx +26 -0
- package/extension/popup/components/icons/CopyIcon.tsx +20 -0
- package/extension/popup/components/icons/EditIcon.tsx +20 -0
- package/extension/popup/components/icons/EyeIcon.tsx +13 -0
- package/extension/popup/components/icons/EyeOffIcon.tsx +13 -0
- package/extension/popup/components/icons/InfoIcon.tsx +20 -0
- package/extension/popup/components/icons/LockIcon.tsx +20 -0
- package/extension/popup/components/icons/PlusIcon.tsx +15 -0
- package/extension/popup/components/icons/ReceiveArrowIcon.tsx +14 -0
- package/extension/popup/components/icons/ReceiveCircleIcon.tsx +20 -0
- package/extension/popup/components/icons/SendPaperPlaneIcon.tsx +18 -0
- package/extension/popup/components/icons/SentArrowIcon.tsx +21 -0
- package/extension/popup/components/icons/SettingsIcon.tsx +26 -0
- package/extension/popup/components/icons/ShieldIcon.tsx +20 -0
- package/extension/popup/components/icons/UploadIcon.tsx +20 -0
- package/extension/popup/components/icons/WalletIcon.tsx +20 -0
- package/extension/popup/contexts/ThemeContext.tsx +105 -0
- package/extension/popup/hooks/useApprovalDetection.ts +128 -0
- package/extension/popup/hooks/useAutoFocus.ts +36 -0
- package/extension/popup/hooks/useAutoRejectOnClose.ts +25 -0
- package/extension/popup/hooks/useClickOutside.ts +33 -0
- package/extension/popup/hooks/useCopyToClipboard.ts +33 -0
- package/extension/popup/hooks/useFavicon.ts +64 -0
- package/extension/popup/hooks/useNumericInput.ts +93 -0
- package/extension/popup/index.html +13 -0
- package/extension/popup/index.tsx +24 -0
- package/extension/popup/screens/AboutScreen.tsx +118 -0
- package/extension/popup/screens/HomeScreen.tailwind.css +85 -0
- package/extension/popup/screens/HomeScreen.tsx +902 -0
- package/extension/popup/screens/KeySettingsPasswordScreen.tsx +164 -0
- package/extension/popup/screens/LockTimeScreen.tsx +155 -0
- package/extension/popup/screens/ReceiveScreen.tsx +149 -0
- package/extension/popup/screens/RecoveryPhraseScreen.tsx +183 -0
- package/extension/popup/screens/SendReviewScreen.tsx +308 -0
- package/extension/popup/screens/SendScreen.tsx +825 -0
- package/extension/popup/screens/SendSubmittedScreen.tsx +193 -0
- package/extension/popup/screens/SettingsScreen.tsx +116 -0
- package/extension/popup/screens/ThemeSettingsScreen.tsx +107 -0
- package/extension/popup/screens/TransactionDetailsScreen.tsx +346 -0
- package/extension/popup/screens/ViewSecretPhraseScreen.tsx +212 -0
- package/extension/popup/screens/WalletPermissionsScreen.tsx +123 -0
- package/extension/popup/screens/WalletSettingsScreen.tsx +381 -0
- package/extension/popup/screens/WalletStylingScreen.tsx +306 -0
- package/extension/popup/screens/approvals/ConnectApprovalScreen.tsx +136 -0
- package/extension/popup/screens/approvals/SignMessageScreen.tsx +140 -0
- package/extension/popup/screens/approvals/SignRawTxScreen.tsx +320 -0
- package/extension/popup/screens/approvals/TransactionApprovalScreen.tsx +167 -0
- package/extension/popup/screens/onboarding/BackupScreen.tsx +254 -0
- package/extension/popup/screens/onboarding/CreateScreen.tsx +273 -0
- package/extension/popup/screens/onboarding/ImportScreen.tsx +676 -0
- package/extension/popup/screens/onboarding/ImportScreenV0.tsx +678 -0
- package/extension/popup/screens/onboarding/ImportSuccessScreen.tsx +236 -0
- package/extension/popup/screens/onboarding/ResumeBackupScreen.tsx +166 -0
- package/extension/popup/screens/onboarding/StartScreen.tsx +142 -0
- package/extension/popup/screens/onboarding/SuccessScreen.tsx +193 -0
- package/extension/popup/screens/onboarding/VerifyScreen.tsx +220 -0
- package/extension/popup/screens/system/LockedScreen.tsx +288 -0
- package/extension/popup/screens/transactions/ReceiveScreen.tsx +84 -0
- package/extension/popup/screens/transactions/SentScreen.tsx +138 -0
- package/extension/popup/store.ts +482 -0
- package/extension/popup/styles.css +246 -0
- package/extension/popup/utils/format.ts +58 -0
- package/extension/popup/utils/formatWalletError.ts +36 -0
- package/extension/popup/utils/memo.ts +299 -0
- package/extension/popup/utils/messaging.ts +16 -0
- package/extension/shared/address-encoding.ts +69 -0
- package/extension/shared/balance-query.ts +123 -0
- package/extension/shared/constants.ts +386 -0
- package/extension/shared/currency.ts +128 -0
- package/extension/shared/first-name-derivation.ts +128 -0
- package/extension/shared/keyfile.ts +58 -0
- package/extension/shared/onboarding.ts +78 -0
- package/extension/shared/price-api.ts +79 -0
- package/extension/shared/rpc-client-browser.ts +315 -0
- package/extension/shared/transaction-builder.ts +443 -0
- package/extension/shared/types.ts +450 -0
- package/extension/shared/utxo-diff.ts +212 -0
- package/extension/shared/utxo-store.ts +548 -0
- package/extension/shared/utxo-sync.ts +343 -0
- package/extension/shared/validators.ts +26 -0
- package/extension/shared/vault.ts +1580 -0
- package/extension/shared/wallet-crypto.ts +77 -0
- package/extension/shared/wasm-utils.ts +76 -0
- package/extension/shared/webcrypto.ts +67 -0
- package/extension/types/wasm.d.ts +13 -0
- package/package.json +39 -0
- package/postcss.config.js +6 -0
- package/rose-extension-dist.zip +0 -0
- package/sdk/README.md +88 -0
- package/sdk/examples/app.ts +166 -0
- package/sdk/examples/index.html +51 -0
- package/sdk/examples/tsconfig.json +15 -0
- package/sdk/examples/tx-builder.html +532 -0
- package/sdk/examples/tx-builder.ts +1766 -0
- package/sdk/package-lock.json +424 -0
- package/sdk/package.json +68 -0
- package/sdk/src/constants.ts +28 -0
- package/sdk/src/errors.ts +74 -0
- package/sdk/src/hooks/index.ts +1 -0
- package/sdk/src/hooks/use-rose.ts +94 -0
- package/sdk/src/index.ts +12 -0
- package/sdk/src/provider.ts +396 -0
- package/sdk/src/transaction.ts +163 -0
- package/sdk/src/types/rose-wasm.d.ts +14 -0
- package/sdk/src/types.ts +97 -0
- package/sdk/src/wasm.ts +13 -0
- package/sdk/tsconfig.json +20 -0
- package/sdk/vite.config.examples.ts +32 -0
- package/tailwind.config.ts +38 -0
- package/tsconfig.json +20 -0
- package/vite.config.ts +60 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content Script: Bridge between page and service worker
|
|
3
|
+
* Relays messages between the inpage provider (running in MAIN world) and the service worker
|
|
4
|
+
*
|
|
5
|
+
* Note: The inpage provider is injected separately via manifest.json with "world": "MAIN"
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { MESSAGE_TARGETS } from '../shared/constants';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Bridge page <-> Service Worker
|
|
12
|
+
* Listens for messages from the injected provider and forwards to SW
|
|
13
|
+
*/
|
|
14
|
+
window.addEventListener('message', async (evt: MessageEvent) => {
|
|
15
|
+
const data = evt.data;
|
|
16
|
+
|
|
17
|
+
// Filter messages: must be for us and from the page
|
|
18
|
+
if (!data || data.target !== MESSAGE_TARGETS.WALLET_BRIDGE || evt.source !== window) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// Only forward request messages (with payload), not reply messages
|
|
23
|
+
if (!data.payload || data.reply !== undefined) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Forward to service worker and relay response back to page
|
|
28
|
+
const reply = await chrome.runtime.sendMessage(data);
|
|
29
|
+
|
|
30
|
+
const responseMessage = {
|
|
31
|
+
target: MESSAGE_TARGETS.WALLET_BRIDGE,
|
|
32
|
+
id: data.id,
|
|
33
|
+
reply,
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
window.postMessage(responseMessage, '*');
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Listen for wallet events from background script and relay to page
|
|
41
|
+
* These are emitted when wallet state changes (account switch, lock, etc.)
|
|
42
|
+
*/
|
|
43
|
+
chrome.runtime.onMessage.addListener((message, _sender, _sendResponse) => {
|
|
44
|
+
// Only handle wallet events
|
|
45
|
+
if (message.type !== 'WALLET_EVENT') {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Relay to page with __rose brand for security
|
|
50
|
+
// This prevents malicious scripts from forging wallet events
|
|
51
|
+
window.postMessage(
|
|
52
|
+
{
|
|
53
|
+
__rose: true,
|
|
54
|
+
type: `nockchain_${message.eventType}`,
|
|
55
|
+
data: message.data,
|
|
56
|
+
},
|
|
57
|
+
'*'
|
|
58
|
+
);
|
|
59
|
+
});
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2120 2120" width="32" height="32">
|
|
2
|
+
<style>
|
|
3
|
+
.s0 { fill: #ec1e24 }
|
|
4
|
+
.s1 { fill: #e51d25 }
|
|
5
|
+
.s2 { fill: #0f8945 }
|
|
6
|
+
.s3 { fill: #0a7e40 }
|
|
7
|
+
</style>
|
|
8
|
+
<g id="_Artboards_">
|
|
9
|
+
</g>
|
|
10
|
+
<g id="Layer 1">
|
|
11
|
+
<g id="<Group>">
|
|
12
|
+
<path id="<Path>" class="s0" d="m1141.12 574.61l-85.01 53.22c-20.3 10.36-40.1 22.84-60.16 30.45-49.08 18.59-96.03 40.49-147.89 59.18-54.93 18.09-54.19 13.65-66.34 49.66-6.4 17.8-18.35 39.63-17.9 58.38-12.06 66.85-20.4 114.97 3.28 189.1 2.69 8.89 3.96 14.2 8.36 19.43 2.58 6.12 7.4 14.5 10.07 19.59l14.59 23.44c4.02 5.55 3.11 4.08 6.38 10.26 2.99 5.45 4.22 7.29 8.61 12.53 25.19 33.02 7.94 56.12 129.82 68.81 61.46 6.39 80.86 6.35 136.09-7.21 8.64-3.75 15.56-7.65 25.89-10.91 9.99-3.29 16.25-7.59 25.64-11.97 40.4-18.31 72.77-51.87 100.64-85.47 22.49-27.49 69.69-96.14 83.16-127.53 3.94-9.36 3.95-13.51 8.57-22.81 40.75-82.03 73.22-220.2 71.51-315.97-0.38-35.37-1.11-62.81-4.49-95.67-1.3-12.93-4.7-29.51-7.89-44.68l-0.38-3.5q-0.68-4.22-1.53-6.37c-1.46-7.06-9.65-40.34-7.8-45.72-1.49-6.71-0.26-20.81-16.5-9.4-9.48 5.41-71.09 72.45-90.28 89.84-45.75 40.01-84.95 68.47-126.44 103.32z"/>
|
|
13
|
+
<path id="<Path>" class="s0" d="m1098.99 218.94c0.76 3.19 5.08 13.27 7.01 18.98 2.46 7.49 3.07 12.39 11.58 14.17 26.3 4.37 53.01 19.86 70.35 35.57 11.57 10.37 37.67 44.86 24.14 68.97-2.86 4.95-45.47 40.73-75.22 64.13-29.76 23.39-63.1 40.23-92.59 64.69-0.38 0.31-1.13 0.94-1.5 1.25l-48.74 34.56c-23.67 13.19-67.49 58.91-99.45 83.85-14.12 10.89-39.7 46.08-53.13 65.01-6.65 8.77-13.34 17.89-8.73 20.72 14.72 9.94 119.11-42.99 135.73-50.89 92.55-44.26 157.09-89.22 237.84-153.21 22.74-18.46 45.15-41.11 66-57.66 20.46-16.23 31.74-34.3 53.84-57.32 23.96-24.59 47.84-64.09 62-95.42 11.22-25.35 20.03-50.92 14.37-85.36-17.92-108.62-139.96-139.34-234.27-130.57-39.45 3.49-100.28 21.76-139.75 45.34-5.49 3.34-36.59 26.26-30.6 33.02 10.36 12.34 39.77 20.79 53.78 31.01 19.95 13.52 41.49 24.75 47.34 49.16z"/>
|
|
14
|
+
<path id="<Path>" class="s1" d="m439.19 941.01l30.52 23.44c74.07 44.56 58.38 41.81 128.59 90.88 8.81 6.31 28.69 16.7 41.95 19.59 12.23 2.8 5.87 0.17 15.08 5.82 28.94 17.76 78.14 29.67 114.33 31.78l-25.27-47.93c-9.61-12.97-1.61-5.34-11.69-24.93l-17.57-52.8c-9.67-20.24-6.17-76.41-3.66-97.32 3.84-36.05 21.13-123.23 42.07-152.94 4.33-5.86 10.5-17.1 13.07-22.76l13.34-25.87c18.92-30.22 49.31-57.02 63.52-92.86 12.01-30.48-182.26-127.07-214.23-145.8-26.4-15.11-88.44-34.72-121.84-25.15-14.23 12.27 34.44 81.98 32.68 145.92 4.39 29.14-2.94 65.57-2.13 96.13 0.41 19.09 10.22 117.3 15.07 133.31 3.51 11.39 4.85 27.79 9.11 38.56 10.48 26.89 35.39 78.95 52.17 101.2 8.69 11.49 17.96 24.43 27.6 37.05 11.21 14.48 80.59 81.15 79.56 97-41.1-25.41-67.26-51.24-97.02-87.44-40.43-48.9-65.43-64.24-91.12-123.3-22.82-52.22-29.51-102.69-32.92-159.11l3.76-130.63c-26.92 6.66-49.76-1.56-78.75 17.05-30.05 18.86-21.34 42.14-24.75 73.37-2.54 21.25-12.86 20.36-29.98 37.92-6.81 6.68-9.21 10.28-15.02 17.4-25.11 29.69-35.21 50.29-18.33 95.06 29.24 78.08 48.72 81.16 101.86 127.36z"/>
|
|
15
|
+
<path id="<Path>" class="s1" d="m1268.75 1062.43c-4.75 6.86-14.98 12.9-9.37 24.13 8.85 17.75 119.97 26.73 177.21 1.92 37.41-15.8 92.47-63.32 107.31-106.37 9.97-23.04 70.14-117.23 81.68-130.43 22.34-25.77 61.14-61.54 100.8-67.44 16.21-3.1 24.63-8.25 44.06-8.64 19.06-0.07 28.69 0.76 45.93-2.24-2.54-10.61-6.97-15.5-11.71-20.76l-60.83-81.17c-3.53-7.24-11.77-20.08-16.42-26.38-37.6-53.51-42.4-74.02-99.23-121.58-10.98-9.27-42.29-27.59-55.97-33.63-27.67-12.45-105.8-38.31-140.26-36.46-8.68 0.28-8.4 1-10.78 8.41-3.77 11.46-1.41 32.1 0.9 45.47 7.36 46.72 5.92 111.03 1.25 156.7-4.34 41.89-28.75 163.1-47.32 193.36-1.99 18.88-26.23 70.47-36.6 90.01-6.63 12.58-14.59 24.36-21.35 38.32-18.57 38.23-27.57 46.11-49.3 76.78z"/>
|
|
16
|
+
<path id="<Path>" class="s0" d="m377.2 272.16c-3.82 20.11 22.96 78.57 54.08 103.1 23.67 18.69 27.82 18.71 63.48 11.07 28.57-5.83 44.25 1.08 73.34 1.19 34.76 2.68 29.96 14.04 66.27 14.78 10.36-11.57 23.33-21.18 21.35-38.33-2.71-24.49-28.8-63.14 0.67-95.22 28.29-30.45 38.5-40.3 72.07-63.7 42.76-29.54 82.64-42 130.95-51.66 19.4-8.01 51.7-12.82 72.03-15.55 8.06-1.03 13.99-1.55 21.45-3.68 14.55-3.93-9.85-26.15-13.39-29.22-26.25-24.81-54.71-40.11-95.18-40.86-38.41 7.4-7.07-2.35-56.86 12.37-62.58 18.46-71.18 41.62-183.42 33.58-85.05-6.02-165.72 5.31-212.06 79.92-5.29 21.02-29.86 60.46-14.78 82.21z"/>
|
|
17
|
+
<path id="<Path>" class="s0" d="m970.39 307.18l-27.13 29.16c-9 15.85 5.6 27.17 5.63 26.82 0.4-0.65 1.29 1.16 1.91 1.9 9.48 2.56 25.91 16.81 33.55 20.59 22.72 9.6 52.84 49.64 75.4 49.18 14.22-0.15 57.28-33.12 66.56-48.25l22.68-17.77c29.72-23.05 42.03-25.1 22.43-50.71-22.05-29.29-48.13-36.06-94.89-40.14-35.76-3.11-79.52 2.09-106.14 29.22z"/>
|
|
18
|
+
<path id="<Path>" class="s2" d="m1113.77 1171.23l-24.83 10.66c-1.68 19.26 8.4 22.9 21.15 31.64 3.26 2.36 33.95 19.93 36.3 20.83 11.39 4.45 37.71 8.48 51.06 10.33 38.19-0.83 113.88 1.25 147.03 10.38 3.38 0.98 29.68 13.32 32.28 15.28 3.29 2.02 17.7 19.56 30.35 9.57 17.75-48.69-51.06-113.92-76.47-132.42-36.48-26.73-82.55-54.65-107.35-44.34-14.36 5.68-76.04 53.67-109.52 68.07z"/>
|
|
19
|
+
<path id="<Path>" class="s2" d="m697.4 1254.16l-14.22 16.08c-18.18 17.82-27.57 46.11-29.6 73.3-3.03 22.95 40.74-2.34 62.84-9.43 45.22-22.04 85.17-19.26 134.3-26.41 38.49-0.46 58.36-33.72 69.37-48.7 56.61-77.18 18.36-67.69-33.79-77.43-52.51-9.77-24.83-13.25-66.22-15.47-9.74 0.54-7.34 0.75-14.6 4.62-4.34 2.05-10.8 4.6-15.88 7.28-33.37 17.19-34.85 14.29-56.74 34.9-1.15 1.29-33.1 38-35.46 41.26z"/>
|
|
20
|
+
<path id="<Path>" class="s0" d="m954.89 282.27l14.21-11.93c29.48-20.3 99.85-12.78 109.04-18.91-6.1-77.1-114.98-95.93-173.69-86.15-23.23 4.22-46.12 16.43-65.8 19.57-68.6 20.01-117.63 53.85-154.24 96.39-19.63 14.57-8.53 34.25-4.3 45.36 0.26 1.06 0.85 2.15 1.11 3.21 8.58 28.81 15.93 23.91 42.72 10.65 15.99-12.47 57.99-17.47 88.78-16.87 25.9 0.87 74.88 19.34 96.51 5.63 14.31-9.14 11.77-27.73 45.66-46.95z"/>
|
|
21
|
+
<path id="<Path>" class="s0" d="m771.29 489.05c7.52 5.16 17.19 9.47 22.76 13.07l84.66 58.3c14.37-1.87 61.52-34.14 75.23-44.38l52.79-37.32c18.68-11.54 24.45-14.16 11.26-29.86-5.33-6.35-44.24-32.95-54.14-38.66-24.77-13.94-27.24-29.4-67.45-45.02-25.79-10.22-32.14-12.85-63.77-15.6-47.14-3.76-92.6 13.07-129.98 36.49-17.58 10.94-30.62 33.36-9.84 49.38 25.32 19.53 50.28 35.21 78.48 53.6z"/>
|
|
22
|
+
<path id="<Path>" class="s2" d="m955.62 1973c-106.1-273.57-315.02-189.91-404.23-263.5-48.89 223.36 215.85 429.68 374.1 366.89-11.75-16.26-12.68-29.51-28.08-43.67-32.67-30.56-36.47-18.76-80.89-29.91-33.59-8.12-64.44-19.81-93.31-34.45 31.34 6.19 65.45 20.25 98.91 17.96 20.03 0.71 9.52-9.91-8.82-18.09-33.28-15.71-85.27-55.23-129.47-108.62 31.63 26.66 99.11 79.3 127.06 84.51 2.89-29.2 1.82-24.79-23.5-60.25 35.09 26.61 37.83 46.95 47.11 63.69 6.7 18.6 19.48 34.96 32.09 33.28 3.95 2.43 14.97-8.74 4.03-50.23 18.78 15.15 16.39 70.37 19.65 72.73 22.62 14.79 32.17 28.44 50.27 55.31 16.75-17.25 17.86-53.88 15.08-85.65z"/>
|
|
23
|
+
<path id="<Path>" class="s3" d="m985.44 1204.75q31.91-2.42 63.82-4.83c152.67 562.41-158.23 1208.49-279.97 1584.18-47.44-16.26-63.24-21.79-110.67-38.04 147.3-327.05 482.61-955.06 326.82-1541.31z"/>
|
|
24
|
+
<path id="<Path>" class="s2" d="m1093.24 1677.69c64.2-92.81 162.31-69.71 305.86-94.98 61.58-10.92 93.27-44.54 79.19 17.64-10.87 49.29-15.12 82.17-48.76 118.39-42.45 45.85-86.83 93.95-144.62 113.17-84.23 28.35-172.3 25.19-229.12-18.56 15.61-12.15 20.15-24.57 38.65-34.05 39.88-20.43 40.56-8.25 86.12-6.36 34.54 1.27 67.37-1.76 99.06-7.66-31.63-2.75-68.37 1.33-99.97-9.74-19.3-5.15-6.2-12.32 13.47-15.46 36.51-5.48 97.14-29.3 154.26-68.68-37.87 17.15-116.89 49.42-145.4 46.59 5.29-28.99 5.25-24.49 39.14-51.68-40.9 16.19-49.11 34.87-62.41 48.27-11.78 15.95-28.45 28.35-40.47 23.15-4.27 1.36-11.73-12.46 10.19-49.35-22.31 9.49-34.98 63.47-38.88 64.52-25.65 8.16-19.19 5.6-25.55 10.94-11.33-21.08-2.34-56.67 9.24-86.15z"/>
|
|
25
|
+
</g>
|
|
26
|
+
</g>
|
|
27
|
+
</svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inpage Provider: Injected into web pages
|
|
3
|
+
* Exposes window.nockchain with EIP-1193-style API
|
|
4
|
+
*
|
|
5
|
+
* NOTE: This file runs in the MAIN world and cannot use any imports or Chrome APIs
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { InjectedNockchain, RpcRequest } from '@nockchain/sdk';
|
|
9
|
+
import { version } from '../../package.json';
|
|
10
|
+
|
|
11
|
+
// Inline constant to avoid imports
|
|
12
|
+
const MESSAGE_TARGET = 'ROSE';
|
|
13
|
+
|
|
14
|
+
class NockchainProvider implements InjectedNockchain {
|
|
15
|
+
name: string = 'rose';
|
|
16
|
+
version: string = version;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Make a request to the wallet
|
|
20
|
+
* @param args - Request arguments with method and params
|
|
21
|
+
*/
|
|
22
|
+
request<T = unknown>(args: RpcRequest): Promise<T> {
|
|
23
|
+
const id = Math.random().toString(36).slice(2);
|
|
24
|
+
|
|
25
|
+
// Post message to content script
|
|
26
|
+
window.postMessage(
|
|
27
|
+
{
|
|
28
|
+
target: MESSAGE_TARGET,
|
|
29
|
+
id,
|
|
30
|
+
payload: args,
|
|
31
|
+
},
|
|
32
|
+
'*'
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
// Wait for response with timeout
|
|
36
|
+
return new Promise((resolve, reject) => {
|
|
37
|
+
let timeoutId: number | undefined;
|
|
38
|
+
|
|
39
|
+
const handler = (evt: MessageEvent) => {
|
|
40
|
+
const data = evt.data;
|
|
41
|
+
|
|
42
|
+
// Check if this is our response (must have a reply field, not just the request)
|
|
43
|
+
if (data?.target === MESSAGE_TARGET && data.id === id && data.reply !== undefined) {
|
|
44
|
+
window.removeEventListener('message', handler);
|
|
45
|
+
if (timeoutId) {
|
|
46
|
+
clearTimeout(timeoutId);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if (data.reply?.error) {
|
|
50
|
+
reject(new Error(data.reply.error));
|
|
51
|
+
} else {
|
|
52
|
+
resolve(data.reply);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
if (args.timeout) {
|
|
58
|
+
timeoutId = window.setTimeout(() => {
|
|
59
|
+
window.removeEventListener('message', handler);
|
|
60
|
+
reject(
|
|
61
|
+
new Error(
|
|
62
|
+
'Extension is not responding.' +
|
|
63
|
+
'If you just reloaded the extension, you need to refresh this page.'
|
|
64
|
+
)
|
|
65
|
+
);
|
|
66
|
+
}, args.timeout);
|
|
67
|
+
}
|
|
68
|
+
window.addEventListener('message', handler);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Inject provider into window
|
|
74
|
+
const provider = new NockchainProvider();
|
|
75
|
+
const globalNockchain = (window as any).nockchain ?? {};
|
|
76
|
+
globalNockchain.providers = Array.isArray(globalNockchain.providers)
|
|
77
|
+
? globalNockchain.providers
|
|
78
|
+
: [];
|
|
79
|
+
if (!globalNockchain.providers.some((p: { name: string }) => p.name === provider.name)) {
|
|
80
|
+
globalNockchain.providers.push(provider);
|
|
81
|
+
}
|
|
82
|
+
// Preserve existing global while registering this provider
|
|
83
|
+
(window as any).nockchain = globalNockchain;
|
|
84
|
+
|
|
85
|
+
// Announce provider availability
|
|
86
|
+
window.dispatchEvent(new Event(`nockchain_${provider.name}#initialized`));
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"manifest_version": 3,
|
|
3
|
+
"name": "Rose Wallet",
|
|
4
|
+
"homepage_url": "https://nockchain.net",
|
|
5
|
+
"version": "0.1.4.5",
|
|
6
|
+
"description": "Rose Wallet - Browser Wallet for Nockchain",
|
|
7
|
+
"icons": {
|
|
8
|
+
"16": "icons/rose16.png",
|
|
9
|
+
"32": "icons/rose32.png",
|
|
10
|
+
"48": "icons/rose48.png",
|
|
11
|
+
"128": "icons/rose128.png",
|
|
12
|
+
"256": "icons/rose256.png",
|
|
13
|
+
"512": "icons/rose512.png"
|
|
14
|
+
},
|
|
15
|
+
"action": {
|
|
16
|
+
"default_popup": "popup/index.html",
|
|
17
|
+
"default_title": "Rose Wallet",
|
|
18
|
+
"default_icon": {
|
|
19
|
+
"16": "icons/rose16.png",
|
|
20
|
+
"32": "icons/rose32.png",
|
|
21
|
+
"48": "icons/rose48.png",
|
|
22
|
+
"128": "icons/rose128.png",
|
|
23
|
+
"256": "icons/rose256.png",
|
|
24
|
+
"512": "icons/rose512.png"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"background": {
|
|
28
|
+
"service_worker": "background/index.ts",
|
|
29
|
+
"type": "module"
|
|
30
|
+
},
|
|
31
|
+
"permissions": ["storage", "alarms"],
|
|
32
|
+
"content_security_policy": {
|
|
33
|
+
"extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self'"
|
|
34
|
+
},
|
|
35
|
+
"content_scripts": [
|
|
36
|
+
{
|
|
37
|
+
"matches": ["http://*/*", "https://*/*"],
|
|
38
|
+
"js": ["content/index.ts"],
|
|
39
|
+
"run_at": "document_start"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"matches": ["http://*/*", "https://*/*"],
|
|
43
|
+
"js": ["inpage/index.ts"],
|
|
44
|
+
"run_at": "document_start",
|
|
45
|
+
"world": "MAIN"
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Popup UI: App initialization and lifecycle management
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { useEffect } from 'react';
|
|
6
|
+
import { useStore } from './store';
|
|
7
|
+
import { send } from './utils/messaging';
|
|
8
|
+
import { INTERNAL_METHODS, UI_CONSTANTS } from '../shared/constants';
|
|
9
|
+
import { Account } from '../shared/types';
|
|
10
|
+
import { Router } from './Router';
|
|
11
|
+
import { useApprovalDetection } from './hooks/useApprovalDetection';
|
|
12
|
+
|
|
13
|
+
export function Popup() {
|
|
14
|
+
const {
|
|
15
|
+
currentScreen,
|
|
16
|
+
initialize,
|
|
17
|
+
wallet,
|
|
18
|
+
syncWallet,
|
|
19
|
+
navigate,
|
|
20
|
+
setPendingConnectRequest,
|
|
21
|
+
setPendingTransactionRequest,
|
|
22
|
+
setPendingSignRequest,
|
|
23
|
+
setPendingSignRawTxRequest,
|
|
24
|
+
} = useStore();
|
|
25
|
+
|
|
26
|
+
// Initialize app on mount
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
initialize();
|
|
29
|
+
}, [initialize]);
|
|
30
|
+
|
|
31
|
+
// Report activity when popup opens (resets auto-lock timer)
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
send(INTERNAL_METHODS.REPORT_ACTIVITY);
|
|
34
|
+
}, []);
|
|
35
|
+
|
|
36
|
+
// Handle approval requests from URL hash
|
|
37
|
+
useApprovalDetection({
|
|
38
|
+
walletAddress: wallet.address,
|
|
39
|
+
walletLocked: wallet.locked,
|
|
40
|
+
setPendingConnectRequest,
|
|
41
|
+
setPendingTransactionRequest,
|
|
42
|
+
setPendingSignRequest,
|
|
43
|
+
setPendingSignRawTxRequest,
|
|
44
|
+
navigate,
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
// Listen for wallet events (e.g., auto-lock)
|
|
48
|
+
useEffect(() => {
|
|
49
|
+
const handleMessage = (message: any) => {
|
|
50
|
+
if (message.type === 'WALLET_EVENT' && message.eventType === 'LOCKED') {
|
|
51
|
+
syncWallet({
|
|
52
|
+
...wallet,
|
|
53
|
+
locked: true,
|
|
54
|
+
});
|
|
55
|
+
navigate('locked');
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
chrome.runtime.onMessage.addListener(handleMessage);
|
|
60
|
+
return () => chrome.runtime.onMessage.removeListener(handleMessage);
|
|
61
|
+
}, [wallet, syncWallet, navigate]);
|
|
62
|
+
|
|
63
|
+
// Poll for vault state changes (e.g., auto-lock)
|
|
64
|
+
useEffect(() => {
|
|
65
|
+
const interval = setInterval(async () => {
|
|
66
|
+
// Only poll if we're not already on the locked screen
|
|
67
|
+
if (currentScreen === 'locked') return;
|
|
68
|
+
|
|
69
|
+
const state = await send<{
|
|
70
|
+
locked: boolean;
|
|
71
|
+
address: string;
|
|
72
|
+
accounts: Account[];
|
|
73
|
+
currentAccount: Account | null;
|
|
74
|
+
}>(INTERNAL_METHODS.GET_STATE);
|
|
75
|
+
|
|
76
|
+
// If vault became locked, navigate to locked screen
|
|
77
|
+
if (state.locked && !wallet.locked) {
|
|
78
|
+
syncWallet({
|
|
79
|
+
...wallet, // Preserve existing state including new balance fields
|
|
80
|
+
locked: true,
|
|
81
|
+
address: state.address || null,
|
|
82
|
+
accounts: state.accounts || [],
|
|
83
|
+
currentAccount: state.currentAccount || null,
|
|
84
|
+
});
|
|
85
|
+
navigate('locked');
|
|
86
|
+
}
|
|
87
|
+
}, UI_CONSTANTS.STATE_POLL_INTERVAL);
|
|
88
|
+
|
|
89
|
+
return () => clearInterval(interval);
|
|
90
|
+
}, [currentScreen, wallet.locked, wallet.balance, syncWallet, navigate]);
|
|
91
|
+
|
|
92
|
+
// Render current screen via router
|
|
93
|
+
return <Router />;
|
|
94
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Router - Screen routing based on navigation state
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { useStore } from './store';
|
|
6
|
+
|
|
7
|
+
// Screen components
|
|
8
|
+
import { LockedScreen } from './screens/system/LockedScreen';
|
|
9
|
+
import { StartScreen } from './screens/onboarding/StartScreen';
|
|
10
|
+
import { CreateScreen } from './screens/onboarding/CreateScreen';
|
|
11
|
+
import { BackupScreen } from './screens/onboarding/BackupScreen';
|
|
12
|
+
import { VerifyScreen } from './screens/onboarding/VerifyScreen';
|
|
13
|
+
import { SuccessScreen } from './screens/onboarding/SuccessScreen';
|
|
14
|
+
import { ImportScreen } from './screens/onboarding/ImportScreen';
|
|
15
|
+
import { ImportScreenV0 } from './screens/onboarding/ImportScreenV0';
|
|
16
|
+
import { ImportSuccessScreen } from './screens/onboarding/ImportSuccessScreen';
|
|
17
|
+
import { ResumeBackupScreen } from './screens/onboarding/ResumeBackupScreen';
|
|
18
|
+
import { HomeScreen } from './screens/HomeScreen';
|
|
19
|
+
import { SendScreen } from './screens/SendScreen';
|
|
20
|
+
import { SendReviewScreen } from './screens/SendReviewScreen';
|
|
21
|
+
import { SendSubmittedScreen } from './screens/SendSubmittedScreen';
|
|
22
|
+
import { SentScreen } from './screens/transactions/SentScreen';
|
|
23
|
+
import { TransactionDetailsScreen } from './screens/TransactionDetailsScreen';
|
|
24
|
+
import { ReceiveScreen } from './screens/ReceiveScreen';
|
|
25
|
+
import { ConnectApprovalScreen } from './screens/approvals/ConnectApprovalScreen';
|
|
26
|
+
import { SignMessageScreen } from './screens/approvals/SignMessageScreen';
|
|
27
|
+
import { TransactionApprovalScreen } from './screens/approvals/TransactionApprovalScreen';
|
|
28
|
+
import { SignRawTxScreen } from './screens/approvals/SignRawTxScreen';
|
|
29
|
+
import { SettingsScreen } from './screens/SettingsScreen';
|
|
30
|
+
import { ThemeSettingsScreen } from './screens/ThemeSettingsScreen';
|
|
31
|
+
import { LockTimeScreen } from './screens/LockTimeScreen';
|
|
32
|
+
import { KeySettingsPasswordScreen } from './screens/KeySettingsPasswordScreen';
|
|
33
|
+
import { ViewSecretPhraseScreen } from './screens/ViewSecretPhraseScreen';
|
|
34
|
+
import { WalletPermissionsScreen } from './screens/WalletPermissionsScreen';
|
|
35
|
+
import { WalletSettingsScreen } from './screens/WalletSettingsScreen';
|
|
36
|
+
import { WalletStylingScreen } from './screens/WalletStylingScreen';
|
|
37
|
+
import { AboutScreen } from './screens/AboutScreen';
|
|
38
|
+
import { RecoveryPhraseScreen } from './screens/RecoveryPhraseScreen';
|
|
39
|
+
|
|
40
|
+
export function Router() {
|
|
41
|
+
const { currentScreen } = useStore();
|
|
42
|
+
|
|
43
|
+
// Route to appropriate screen based on current state
|
|
44
|
+
switch (currentScreen) {
|
|
45
|
+
// Onboarding
|
|
46
|
+
case 'onboarding-start':
|
|
47
|
+
return <StartScreen />;
|
|
48
|
+
case 'onboarding-create':
|
|
49
|
+
return <CreateScreen />;
|
|
50
|
+
case 'onboarding-backup':
|
|
51
|
+
return <BackupScreen />;
|
|
52
|
+
case 'onboarding-verify':
|
|
53
|
+
return <VerifyScreen />;
|
|
54
|
+
case 'onboarding-success':
|
|
55
|
+
return <SuccessScreen />;
|
|
56
|
+
case 'onboarding-import':
|
|
57
|
+
return <ImportScreen />;
|
|
58
|
+
case 'onboarding-import-v0':
|
|
59
|
+
return <ImportScreenV0 />;
|
|
60
|
+
case 'onboarding-import-success':
|
|
61
|
+
return <ImportSuccessScreen />;
|
|
62
|
+
case 'onboarding-resume-backup':
|
|
63
|
+
return <ResumeBackupScreen />;
|
|
64
|
+
|
|
65
|
+
// Main app
|
|
66
|
+
case 'home':
|
|
67
|
+
return <HomeScreen />;
|
|
68
|
+
case 'settings':
|
|
69
|
+
return <SettingsScreen />;
|
|
70
|
+
case 'theme-settings':
|
|
71
|
+
return <ThemeSettingsScreen />;
|
|
72
|
+
case 'lock-time':
|
|
73
|
+
return <LockTimeScreen />;
|
|
74
|
+
case 'key-settings':
|
|
75
|
+
return <KeySettingsPasswordScreen />;
|
|
76
|
+
case 'view-secret-phrase':
|
|
77
|
+
return <ViewSecretPhraseScreen />;
|
|
78
|
+
case 'wallet-permissions':
|
|
79
|
+
return <WalletPermissionsScreen />;
|
|
80
|
+
case 'wallet-settings':
|
|
81
|
+
return <WalletSettingsScreen />;
|
|
82
|
+
case 'wallet-styling':
|
|
83
|
+
return <WalletStylingScreen />;
|
|
84
|
+
case 'about':
|
|
85
|
+
return <AboutScreen />;
|
|
86
|
+
case 'recovery-phrase':
|
|
87
|
+
return <RecoveryPhraseScreen />;
|
|
88
|
+
|
|
89
|
+
// Transactions
|
|
90
|
+
case 'send':
|
|
91
|
+
return <SendScreen />;
|
|
92
|
+
case 'send-review':
|
|
93
|
+
return <SendReviewScreen />;
|
|
94
|
+
case 'send-submitted':
|
|
95
|
+
return <SendSubmittedScreen />;
|
|
96
|
+
case 'sent':
|
|
97
|
+
return <SentScreen />;
|
|
98
|
+
case 'receive':
|
|
99
|
+
return <ReceiveScreen />;
|
|
100
|
+
case 'tx-details':
|
|
101
|
+
return <TransactionDetailsScreen />;
|
|
102
|
+
|
|
103
|
+
// Approvals
|
|
104
|
+
case 'connect-approval':
|
|
105
|
+
return <ConnectApprovalScreen />;
|
|
106
|
+
case 'sign-message':
|
|
107
|
+
return <SignMessageScreen />;
|
|
108
|
+
case 'approve-transaction':
|
|
109
|
+
return <TransactionApprovalScreen />;
|
|
110
|
+
case 'approve-sign-raw-tx':
|
|
111
|
+
return <SignRawTxScreen />;
|
|
112
|
+
|
|
113
|
+
// System
|
|
114
|
+
case 'locked':
|
|
115
|
+
return <LockedScreen />;
|
|
116
|
+
|
|
117
|
+
// Default fallback
|
|
118
|
+
default:
|
|
119
|
+
return <div>Unknown screen: {currentScreen}</div>;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg preserveAspectRatio="none" width="100%" height="100%" overflow="visible" style="display: block;" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path id="Vector" d="M6.24611 0V11.3137L1.17851 6.24611L0 7.42462L7.07107 14.4957L14.1421 7.42462L12.9636 6.24611L7.89603 11.3137L7.89603 4.21468e-07L6.24611 0Z" fill="var(--fill-0, #707070)"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg preserveAspectRatio="none" width="100%" height="100%" overflow="visible" style="display: block;" viewBox="0 0 11 11" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path id="Vector" d="M1.16667 10.8333L9.16667 2.83333L9.16667 10L10.8333 10V0H0.833333L0.833334 1.66667H8L0 9.66667L1.16667 10.8333Z" fill="var(--fill-0, #707070)"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg preserveAspectRatio="none" width="100%" height="100%" overflow="visible" style="display: block;" viewBox="0 0 11 11" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path id="Vector" d="M1.16667 10.8333L9.16667 2.83333L9.16667 10L10.8333 10V0H0.833333L0.833334 1.66667H8L0 9.66667L1.16667 10.8333Z" fill="black"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg preserveAspectRatio="none" width="100%" height="100%" overflow="visible" style="display: block;" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path id="vector" fill-rule="evenodd" clip-rule="evenodd" d="M20 0C31.0457 0 40 8.9543 40 20C40 31.0457 31.0457 40 20 40C8.9543 40 0 31.0457 0 20C0 8.9543 8.9543 0 20 0ZM28.1421 14.436C27.6283 13.9223 26.7956 13.9224 26.2817 14.436L17.8735 22.8418L14.1357 19.104C13.622 18.5906 12.7892 18.5906 12.2754 19.104C11.7621 19.6178 11.762 20.4506 12.2754 20.9644L16.9434 25.6348C17.1899 25.8808 17.5252 26.0179 17.8735 26.0181C18.2218 26.018 18.5571 25.8806 18.8037 25.6348L28.1421 16.2964C28.6554 15.7828 28.655 14.9499 28.1421 14.436Z" fill="var(--fill-0, #5968fb)"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M10 0C15.5228 0 20 4.47715 20 10C20 15.5228 15.5228 20 10 20C4.47715 20 0 15.5228 0 10C0 4.47715 4.47715 0 10 0ZM14.8669 7.04712C14.5425 6.7232 14.0159 6.72321 13.6914 7.04712L9.05273 11.6858L6.30981 8.94287C5.98534 8.6184 5.45772 8.61871 5.13306 8.94287C4.80866 9.26731 4.80902 9.79375 5.13306 10.1184L8.46436 13.4497C8.62025 13.6056 8.83227 13.6938 9.05273 13.6938C9.27303 13.6937 9.48533 13.6055 9.64111 13.4497L14.8669 8.22388C15.1911 7.89921 15.1914 7.37159 14.8669 7.04712Z" fill="#5968fb"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg preserveAspectRatio="none" width="100%" height="100%" overflow="visible" style="display: block;" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path id="vector" fill-rule="evenodd" clip-rule="evenodd" d="M20 0C31.0457 0 40 8.9543 40 20C40 31.0457 31.0457 40 20 40C8.9543 40 0 31.0457 0 20C0 8.9543 8.9543 0 20 0ZM28.1421 14.436C27.6283 13.9223 26.7956 13.9224 26.2817 14.436L17.8735 22.8418L14.1357 19.104C13.622 18.5906 12.7892 18.5906 12.2754 19.104C11.7621 19.6178 11.762 20.4506 12.2754 20.9644L16.9434 25.6348C17.1899 25.8808 17.5252 26.0179 17.8735 26.0181C18.2218 26.018 18.5571 25.8806 18.8037 25.6348L28.1421 16.2964C28.6554 15.7828 28.655 14.9499 28.1421 14.436Z" fill="var(--fill-0, #5968fb)"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="20" height="20" viewBox="0 0 14 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path id="vector" fill-rule="evenodd" clip-rule="evenodd" d="M7 0C9.76142 0 12 2.23858 12 5V7H13C13.5523 7 14 7.44772 14 8V17C14 17.5523 13.5523 18 13 18H1C0.447716 18 0 17.5523 0 17V8C0 7.44771 0.447715 7 1 7H2V5C2 2.23858 4.23858 0 7 0ZM7.00098 10C6.04931 10 5.27734 10.772 5.27734 11.7236C5.27751 12.3362 5.59838 12.8723 6.08008 13.1777V14.5791C6.08008 15.0877 6.49238 15.5 7.00098 15.5C7.50957 15.5 7.92188 15.0877 7.92188 14.5791V13.1777C8.40318 12.8722 8.72346 12.3359 8.72363 11.7236C8.72363 10.7721 7.95242 10.0003 7.00098 10ZM7 2.5C5.61929 2.5 4.5 3.61929 4.5 5V7H9.5V5C9.5 3.61929 8.38071 2.5 7 2.5Z" fill="#707070"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg preserveAspectRatio="none" width="100%" height="100%" overflow="visible" style="display: block;" viewBox="0 0 13 13" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path id="Vector (Stroke)" d="M12.8281 1.41406L7.82812 6.41406L12.8281 11.4141L11.4141 12.8281L6.41406 7.82812L1.41406 12.8281L0 11.4141L5 6.41406L0 1.41406L1.41406 0L6.41406 5L11.4141 0L12.8281 1.41406Z" fill="currentColor"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<svg preserveAspectRatio="none" width="100%" height="100%" overflow="visible" style="display: block;" viewBox="0 0 13 13" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g id="vector">
|
|
3
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.60059 3.13477C8.82855 3.18129 9 3.38329 9 3.625V11.625L8.99023 11.7256C8.95034 11.9211 8.79608 12.0753 8.60059 12.1152L8.5 12.125H0.5C0.258287 12.125 0.056292 11.9536 0.00976562 11.7256L0 11.625V3.625C1.28852e-07 3.34886 0.223858 3.125 0.5 3.125H8.5L8.60059 3.13477ZM1.25 10.875H7.75V4.375H1.25V10.875Z" fill="#707070"/>
|
|
4
|
+
<path d="M10.5 0C11.3975 0 12.125 0.727538 12.125 1.625V9.625C12.125 9.97018 11.8452 10.25 11.5 10.25C11.1548 10.25 10.875 9.97018 10.875 9.625V1.625C10.875 1.41789 10.7071 1.25 10.5 1.25H2.5C2.15482 1.25 1.875 0.970178 1.875 0.625C1.875 0.279822 2.15482 0 2.5 0H10.5Z" fill="#707070"/>
|
|
5
|
+
</g>
|
|
6
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg preserveAspectRatio="none" width="100%" height="100%" overflow="visible" style="display: block;" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path id="Vector" fill-rule="evenodd" clip-rule="evenodd" d="M0 2.91667C0 2.14312 0.307291 1.40125 0.854272 0.854272C1.40125 0.307291 2.14312 0 2.91667 0H14.5833C15.3569 0 16.0987 0.307291 16.6457 0.854272C17.1927 1.40125 17.5 2.14312 17.5 2.91667V14.5833C17.5 15.3569 17.1927 16.0987 16.6457 16.6457C16.0987 17.1927 15.3569 17.5 14.5833 17.5H2.91667C2.14312 17.5 1.40125 17.1927 0.854272 16.6457C0.307291 16.0987 0 15.3569 0 14.5833V2.91667ZM8.47222 3.19444C8.21437 3.19444 7.96708 3.29687 7.78476 3.4792C7.60243 3.66153 7.5 3.90882 7.5 4.16667C7.5 4.42452 7.60243 4.6718 7.78476 4.85413C7.96708 5.03646 8.21437 5.13889 8.47222 5.13889H10.9864L6.81264 9.31264C6.63554 9.496 6.53755 9.74159 6.53976 9.9965C6.54198 10.2514 6.64422 10.4953 6.82448 10.6755C7.00474 10.8558 7.24859 10.958 7.5035 10.9602C7.75841 10.9625 8.004 10.8645 8.18736 10.6874L12.3611 6.51361V9.02778C12.3611 9.28563 12.4635 9.53292 12.6459 9.71524C12.8282 9.89757 13.0755 10 13.3333 10C13.5912 10 13.8385 9.89757 14.0208 9.71524C14.2031 9.53292 14.3056 9.28563 14.3056 9.02778V4.16667C14.3056 3.90882 14.2031 3.66153 14.0208 3.4792C13.8385 3.29687 13.5912 3.19444 13.3333 3.19444H8.47222Z" fill="#707070"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="15" height="12" viewBox="0 0 15 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M0.942786 1.02604C0.707414 0.790669 0.708162 0.408825 0.944455 0.174377C1.17944 -0.0587734 1.55871 -0.0580296 1.79279 0.176041L12.0928 10.476C12.3268 10.7101 12.3276 11.0894 12.0944 11.3244C11.86 11.5607 11.4782 11.5614 11.2428 11.326L9.61612 9.69937C8.84945 9.95271 8.03612 10.086 7.18278 10.086C4.12831 10.086 1.48248 8.3451 0.173753 5.80193C-0.057443 5.35266 -0.0580675 4.81928 0.172782 4.36983C0.624505 3.49036 1.23772 2.7081 1.97612 2.05937L0.942786 1.02604ZM7.18278 3.08604C7.71322 3.08604 8.22192 3.29675 8.597 3.67182C8.97207 4.0469 9.18278 4.5556 9.18278 5.08604C9.18312 5.31308 9.14479 5.53853 9.06945 5.7527L6.51612 3.19937C6.73029 3.12403 6.95574 3.0857 7.18278 3.08604ZM7.18278 0.0860375C10.2366 0.0860375 12.8819 1.82621 14.1909 4.36846C14.4228 4.81868 14.4229 5.35333 14.1911 5.80356C13.6351 6.88352 12.8347 7.82343 11.8494 8.54604L10.9028 7.5927C11.6899 7.04825 12.347 6.33964 12.8301 5.51793C12.987 5.25113 12.9872 4.92083 12.8306 4.65387C12.2963 3.74283 11.548 2.97237 10.6477 2.41094C9.60824 1.76275 8.40778 1.41921 7.18278 1.41937C6.45612 1.41937 5.74278 1.53937 5.07612 1.7527L4.04945 0.732704C5.00945 0.319371 6.06945 0.0860375 7.18278 0.0860375ZM1.53544 4.65395C1.3787 4.92093 1.3784 5.2513 1.53503 5.51834C2.06937 6.42932 2.81759 7.19973 3.71787 7.76113C4.75733 8.40932 5.95779 8.75286 7.18278 8.7527C7.64278 8.7527 8.09612 8.70604 8.51612 8.61271L6.99612 7.08604C6.53222 7.03631 6.09933 6.82929 5.76943 6.49939C5.43953 6.16949 5.23251 5.7366 5.18278 5.2727L2.91612 2.99937C2.3759 3.4632 1.90714 4.02082 1.53544 4.65395Z" fill="#707070"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg width="15" height="10" viewBox="0 0 15 10" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M7.18187 3C8.28644 3 9.18187 3.89543 9.18187 5C9.18187 6.10457 8.28644 7 7.18187 7C6.07741 6.99987 5.18187 6.10449 5.18187 5C5.18187 3.89551 6.07741 3.00013 7.18187 3Z" fill="#707070"/>
|
|
3
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.47582 0.00488281C7.55818 0.00787518 7.64033 0.0130628 7.72191 0.0185547C7.73193 0.0192348 7.74218 0.0197926 7.75218 0.0205078C7.81618 0.0250629 7.88009 0.0310276 7.94359 0.0371094C7.98592 0.0411802 8.02842 0.0450675 8.07054 0.0498047C8.12307 0.0557027 8.17559 0.0623961 8.22777 0.0693359C8.27048 0.0750136 8.31322 0.0815289 8.3557 0.0878906C8.38069 0.0916417 8.40599 0.0946481 8.4309 0.0986328L8.57933 0.124023C8.60832 0.129224 8.63737 0.135106 8.66625 0.140625C8.7044 0.147967 8.74255 0.156155 8.78051 0.164062C8.85144 0.178717 8.9222 0.194386 8.99242 0.210938C9.01025 0.215187 9.02834 0.21926 9.04613 0.223633C10.9763 0.693054 12.6275 1.87403 13.7092 3.47363C13.718 3.48661 13.7269 3.49967 13.7356 3.5127C13.8099 3.62403 13.8817 3.73732 13.9504 3.85254C13.9675 3.88118 13.9835 3.91059 14.0002 3.93945C14.0656 4.05224 14.1298 4.166 14.1897 4.28223C14.2766 4.451 14.331 4.63182 14.3528 4.81543C14.3673 4.93802 14.3673 5.06198 14.3528 5.18457C14.331 5.36815 14.2766 5.54902 14.1897 5.71777C14.13 5.83375 14.0654 5.94702 14.0002 6.05957C13.984 6.08757 13.968 6.11577 13.9514 6.14355C13.8822 6.25969 13.8105 6.37415 13.7356 6.48633C13.7291 6.49605 13.7226 6.50593 13.7161 6.51562C12.6345 8.12052 10.9804 9.3049 9.04613 9.77539C9.02834 9.77976 9.01026 9.78384 8.99242 9.78809C8.92219 9.80464 8.85145 9.8203 8.78051 9.83496C8.74255 9.84287 8.70441 9.85106 8.66625 9.8584C8.61277 9.86862 8.55897 9.87857 8.50511 9.8877C8.45556 9.89613 8.40558 9.90364 8.3557 9.91113C8.31321 9.9175 8.27048 9.92401 8.22777 9.92969C8.17559 9.93663 8.12307 9.94332 8.07054 9.94922C8.02841 9.95396 7.98592 9.95784 7.94359 9.96191C7.88008 9.968 7.81619 9.97396 7.75218 9.97852C7.74218 9.97923 7.73193 9.97979 7.72191 9.98047C7.64032 9.98596 7.55819 9.99115 7.47582 9.99414C7.37817 9.99773 7.27942 10 7.1809 10C7.05656 9.99999 6.93272 9.99595 6.8098 9.99023C6.77693 9.98869 6.74394 9.98632 6.71117 9.98438C6.46648 9.96994 6.22472 9.94451 5.98656 9.9082C5.95957 9.90408 5.9324 9.8999 5.90551 9.89551C5.80727 9.87948 5.70951 9.86143 5.61254 9.8418C5.58656 9.83654 5.5603 9.83168 5.53441 9.82617C5.41491 9.8007 5.29637 9.77204 5.17894 9.74121C5.16893 9.73859 5.15867 9.73606 5.14867 9.7334C5.04693 9.70625 4.946 9.67659 4.84593 9.64551C4.81183 9.63497 4.7773 9.62524 4.7434 9.61426C4.64959 9.5837 4.55632 9.55153 4.4641 9.51758C4.39415 9.492 4.32509 9.46396 4.25609 9.43652C4.23308 9.4273 4.20965 9.41862 4.18676 9.40918C4.14066 9.39035 4.09373 9.37317 4.04808 9.35352L4.05004 9.35059C2.85173 8.82983 1.8075 8.02042 1.00609 7.00879C0.969582 6.96285 0.934152 6.9159 0.898669 6.86914C0.877368 6.84099 0.856124 6.81262 0.835193 6.78418C0.766296 6.69078 0.699753 6.59551 0.634997 6.49902C0.612157 6.46494 0.588959 6.43094 0.566638 6.39648C0.535072 6.34781 0.504367 6.29844 0.473865 6.24902C0.451731 6.21315 0.430009 6.17688 0.408435 6.14062C0.371552 6.07865 0.335237 6.01619 0.300037 5.95312C0.265771 5.89178 0.232116 5.82992 0.199451 5.76758C0.190417 5.75032 0.180034 5.73315 0.17113 5.71582C0.113559 5.60364 0.0699987 5.48623 0.0412475 5.36621C0.0267256 5.30596 0.0162941 5.24483 0.0090209 5.18359C-0.00248417 5.08531 -0.00206367 4.9863 0.00511465 4.8877C0.0198723 4.68009 0.0734717 4.47448 0.17113 4.28418C0.201688 4.22469 0.234807 4.16601 0.266833 4.10742C0.280313 4.08279 0.293142 4.05768 0.306872 4.0332C0.340989 3.97236 0.376657 3.91236 0.412341 3.85254C0.436356 3.81228 0.460877 3.77222 0.485583 3.73242C0.512505 3.68908 0.538897 3.64531 0.566638 3.60254C0.594808 3.55907 0.624556 3.51651 0.653552 3.47363C0.718925 3.37711 0.78617 3.28188 0.855701 3.18848C0.874269 3.16347 0.892511 3.13806 0.911365 3.11328C0.942745 3.07216 0.973915 3.03071 1.00609 2.99023C1.80752 1.97878 2.85182 1.16908 4.05004 0.648438L4.04808 0.646484C4.09384 0.626785 4.14055 0.608716 4.18676 0.589844C4.20965 0.580409 4.23309 0.57172 4.25609 0.5625C4.32565 0.534842 4.39553 0.507211 4.46605 0.481445C4.5577 0.447731 4.65019 0.415129 4.7434 0.384766C4.77729 0.373784 4.81184 0.364052 4.84593 0.353516C4.94599 0.322439 5.04695 0.29277 5.14867 0.265625C5.15867 0.262965 5.16893 0.260432 5.17894 0.257812C5.28899 0.228923 5.40008 0.20192 5.51195 0.177734L5.55687 0.167969C5.57528 0.164105 5.59408 0.160958 5.61254 0.157227C5.7095 0.137596 5.80728 0.119543 5.90551 0.103516C5.9324 0.0991216 5.95957 0.0949416 5.98656 0.0908203C6.22469 0.0545249 6.46651 0.0290807 6.71117 0.0146484C6.72965 0.0135522 6.74832 0.0117164 6.76683 0.0107422L6.89574 0.00488281C6.9903 0.00150815 7.08551 7.5732e-06 7.1809 0C7.27941 0 7.37818 0.00129315 7.47582 0.00488281ZM7.1809 1.33301C6.93616 1.33303 6.69281 1.3478 6.45238 1.37402C5.48397 1.48243 4.54812 1.80633 3.71605 2.3252C3.39223 2.52717 3.08846 2.75689 2.80687 3.00977C2.59301 3.20186 2.38979 3.40791 2.2014 3.62891C2.05374 3.80187 1.91549 3.98312 1.78636 4.1709C1.69794 4.29959 1.61415 4.43253 1.53441 4.56836C1.43664 4.73502 1.39982 4.92612 1.42406 5.11133C1.43387 5.18555 1.45325 5.25885 1.48265 5.3291C1.49731 5.36418 1.51486 5.39829 1.53441 5.43164C2.06865 6.34243 2.81602 7.11343 3.71605 7.6748C4.682 8.27715 5.7876 8.61629 6.92211 8.66113L7.1809 8.66699C7.38231 8.66699 7.58291 8.65559 7.77953 8.6377C7.82804 8.63325 7.87669 8.62857 7.92504 8.62305C8.12663 8.59992 8.32449 8.56867 8.51488 8.52637L8.51683 8.52832C9.26786 8.3719 9.98984 8.0844 10.6467 7.6748C10.7418 7.61548 10.8344 7.5522 10.926 7.48828C11.7019 6.94621 12.3505 6.24451 12.8284 5.43164C12.9852 5.16486 12.9849 4.8353 12.8284 4.56836C12.2941 3.65752 11.5468 2.88658 10.6467 2.3252C9.98978 1.91557 9.26793 1.62711 8.51683 1.4707L8.51488 1.47363C8.41901 1.45233 8.32093 1.43343 8.22191 1.41699C7.87922 1.36187 7.53077 1.33296 7.1809 1.33301Z" fill="#707070"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg preserveAspectRatio="none" width="100%" height="100%" overflow="visible" style="display: block;" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path id="Vector" d="M14.625 0H1.625C0.73125 0 0.00812499 0.73125 0.00812499 1.625L0 16.25L3.25 13H14.625C15.5188 13 16.25 12.2688 16.25 11.375V1.625C16.25 0.73125 15.5188 0 14.625 0ZM8.9375 9.75H7.3125V8.125H8.9375V9.75ZM8.9375 6.5H7.3125V3.25H8.9375V6.5Z" fill="#707070"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg preserveAspectRatio="none" width="100%" height="100%" overflow="visible" style="display: block;" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path id="Vector" d="M13.9912 7.74512C13.991 4.296 11.1943 1.5 7.74512 1.5C4.29611 1.50018 1.50018 4.29611 1.5 7.74512C1.5 11.1943 4.296 13.991 7.74512 13.9912C11.1944 13.9912 13.9912 11.1944 13.9912 7.74512ZM6.99512 10.5439V7.74512C6.99529 7.33116 7.33116 6.99529 7.74512 6.99512C8.15922 6.99512 8.49494 7.33105 8.49512 7.74512V10.5439C8.49494 10.958 8.15922 11.2939 7.74512 11.2939C7.33116 11.2938 6.99529 10.9579 6.99512 10.5439ZM7.75195 4.19727C8.16617 4.19727 8.50195 4.53305 8.50195 4.94727C8.50195 5.36148 8.16617 5.69727 7.75195 5.69727H7.74512C7.33105 5.69709 6.99512 5.36137 6.99512 4.94727C6.99512 4.53316 7.33105 4.19744 7.74512 4.19727H7.75195ZM15.4912 7.74512C15.4912 12.0228 12.0228 15.4912 7.74512 15.4912C3.46758 15.491 0 12.0227 0 7.74512C0.000176417 3.46769 3.46769 0.000176413 7.74512 0C12.0227 0 15.491 3.46758 15.4912 7.74512Z" fill="var(--fill-0, #707070)"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2120 2120" width="40" height="40">
|
|
2
|
+
<style>
|
|
3
|
+
.s0 { fill: #ec1e24 }
|
|
4
|
+
.s1 { fill: #e51d25 }
|
|
5
|
+
.s2 { fill: #0f8945 }
|
|
6
|
+
.s3 { fill: #0a7e40 }
|
|
7
|
+
</style>
|
|
8
|
+
<g id="_Artboards_">
|
|
9
|
+
</g>
|
|
10
|
+
<g id="Layer 1">
|
|
11
|
+
<g id="<Group>">
|
|
12
|
+
<path id="<Path>" class="s0" d="m1141.12 574.61l-85.01 53.22c-20.3 10.36-40.1 22.84-60.16 30.45-49.08 18.59-96.03 40.49-147.89 59.18-54.93 18.09-54.19 13.65-66.34 49.66-6.4 17.8-18.35 39.63-17.9 58.38-12.06 66.85-20.4 114.97 3.28 189.1 2.69 8.89 3.96 14.2 8.36 19.43 2.58 6.12 7.4 14.5 10.07 19.59l14.59 23.44c4.02 5.55 3.11 4.08 6.38 10.26 2.99 5.45 4.22 7.29 8.61 12.53 25.19 33.02 7.94 56.12 129.82 68.81 61.46 6.39 80.86 6.35 136.09-7.21 8.64-3.75 15.56-7.65 25.89-10.91 9.99-3.29 16.25-7.59 25.64-11.97 40.4-18.31 72.77-51.87 100.64-85.47 22.49-27.49 69.69-96.14 83.16-127.53 3.94-9.36 3.95-13.51 8.57-22.81 40.75-82.03 73.22-220.2 71.51-315.97-0.38-35.37-1.11-62.81-4.49-95.67-1.3-12.93-4.7-29.51-7.89-44.68l-0.38-3.5q-0.68-4.22-1.53-6.37c-1.46-7.06-9.65-40.34-7.8-45.72-1.49-6.71-0.26-20.81-16.5-9.4-9.48 5.41-71.09 72.45-90.28 89.84-45.75 40.01-84.95 68.47-126.44 103.32z"/>
|
|
13
|
+
<path id="<Path>" class="s0" d="m1098.99 218.94c0.76 3.19 5.08 13.27 7.01 18.98 2.46 7.49 3.07 12.39 11.58 14.17 26.3 4.37 53.01 19.86 70.35 35.57 11.57 10.37 37.67 44.86 24.14 68.97-2.86 4.95-45.47 40.73-75.22 64.13-29.76 23.39-63.1 40.23-92.59 64.69-0.38 0.31-1.13 0.94-1.5 1.25l-48.74 34.56c-23.67 13.19-67.49 58.91-99.45 83.85-14.12 10.89-39.7 46.08-53.13 65.01-6.65 8.77-13.34 17.89-8.73 20.72 14.72 9.94 119.11-42.99 135.73-50.89 92.55-44.26 157.09-89.22 237.84-153.21 22.74-18.46 45.15-41.11 66-57.66 20.46-16.23 31.74-34.3 53.84-57.32 23.96-24.59 47.84-64.09 62-95.42 11.22-25.35 20.03-50.92 14.37-85.36-17.92-108.62-139.96-139.34-234.27-130.57-39.45 3.49-100.28 21.76-139.75 45.34-5.49 3.34-36.59 26.26-30.6 33.02 10.36 12.34 39.77 20.79 53.78 31.01 19.95 13.52 41.49 24.75 47.34 49.16z"/>
|
|
14
|
+
<path id="<Path>" class="s1" d="m439.19 941.01l30.52 23.44c74.07 44.56 58.38 41.81 128.59 90.88 8.81 6.31 28.69 16.7 41.95 19.59 12.23 2.8 5.87 0.17 15.08 5.82 28.94 17.76 78.14 29.67 114.33 31.78l-25.27-47.93c-9.61-12.97-1.61-5.34-11.69-24.93l-17.57-52.8c-9.67-20.24-6.17-76.41-3.66-97.32 3.84-36.05 21.13-123.23 42.07-152.94 4.33-5.86 10.5-17.1 13.07-22.76l13.34-25.87c18.92-30.22 49.31-57.02 63.52-92.86 12.01-30.48-182.26-127.07-214.23-145.8-26.4-15.11-88.44-34.72-121.84-25.15-14.23 12.27 34.44 81.98 32.68 145.92 4.39 29.14-2.94 65.57-2.13 96.13 0.41 19.09 10.22 117.3 15.07 133.31 3.51 11.39 4.85 27.79 9.11 38.56 10.48 26.89 35.39 78.95 52.17 101.2 8.69 11.49 17.96 24.43 27.6 37.05 11.21 14.48 80.59 81.15 79.56 97-41.1-25.41-67.26-51.24-97.02-87.44-40.43-48.9-65.43-64.24-91.12-123.3-22.82-52.22-29.51-102.69-32.92-159.11l3.76-130.63c-26.92 6.66-49.76-1.56-78.75 17.05-30.05 18.86-21.34 42.14-24.75 73.37-2.54 21.25-12.86 20.36-29.98 37.92-6.81 6.68-9.21 10.28-15.02 17.4-25.11 29.69-35.21 50.29-18.33 95.06 29.24 78.08 48.72 81.16 101.86 127.36z"/>
|
|
15
|
+
<path id="<Path>" class="s1" d="m1268.75 1062.43c-4.75 6.86-14.98 12.9-9.37 24.13 8.85 17.75 119.97 26.73 177.21 1.92 37.41-15.8 92.47-63.32 107.31-106.37 9.97-23.04 70.14-117.23 81.68-130.43 22.34-25.77 61.14-61.54 100.8-67.44 16.21-3.1 24.63-8.25 44.06-8.64 19.06-0.07 28.69 0.76 45.93-2.24-2.54-10.61-6.97-15.5-11.71-20.76l-60.83-81.17c-3.53-7.24-11.77-20.08-16.42-26.38-37.6-53.51-42.4-74.02-99.23-121.58-10.98-9.27-42.29-27.59-55.97-33.63-27.67-12.45-105.8-38.31-140.26-36.46-8.68 0.28-8.4 1-10.78 8.41-3.77 11.46-1.41 32.1 0.9 45.47 7.36 46.72 5.92 111.03 1.25 156.7-4.34 41.89-28.75 163.1-47.32 193.36-1.99 18.88-26.23 70.47-36.6 90.01-6.63 12.58-14.59 24.36-21.35 38.32-18.57 38.23-27.57 46.11-49.3 76.78z"/>
|
|
16
|
+
<path id="<Path>" class="s0" d="m377.2 272.16c-3.82 20.11 22.96 78.57 54.08 103.1 23.67 18.69 27.82 18.71 63.48 11.07 28.57-5.83 44.25 1.08 73.34 1.19 34.76 2.68 29.96 14.04 66.27 14.78 10.36-11.57 23.33-21.18 21.35-38.33-2.71-24.49-28.8-63.14 0.67-95.22 28.29-30.45 38.5-40.3 72.07-63.7 42.76-29.54 82.64-42 130.95-51.66 19.4-8.01 51.7-12.82 72.03-15.55 8.06-1.03 13.99-1.55 21.45-3.68 14.55-3.93-9.85-26.15-13.39-29.22-26.25-24.81-54.71-40.11-95.18-40.86-38.41 7.4-7.07-2.35-56.86 12.37-62.58 18.46-71.18 41.62-183.42 33.58-85.05-6.02-165.72 5.31-212.06 79.92-5.29 21.02-29.86 60.46-14.78 82.21z"/>
|
|
17
|
+
<path id="<Path>" class="s0" d="m970.39 307.18l-27.13 29.16c-9 15.85 5.6 27.17 5.63 26.82 0.4-0.65 1.29 1.16 1.91 1.9 9.48 2.56 25.91 16.81 33.55 20.59 22.72 9.6 52.84 49.64 75.4 49.18 14.22-0.15 57.28-33.12 66.56-48.25l22.68-17.77c29.72-23.05 42.03-25.1 22.43-50.71-22.05-29.29-48.13-36.06-94.89-40.14-35.76-3.11-79.52 2.09-106.14 29.22z"/>
|
|
18
|
+
<path id="<Path>" class="s2" d="m1113.77 1171.23l-24.83 10.66c-1.68 19.26 8.4 22.9 21.15 31.64 3.26 2.36 33.95 19.93 36.3 20.83 11.39 4.45 37.71 8.48 51.06 10.33 38.19-0.83 113.88 1.25 147.03 10.38 3.38 0.98 29.68 13.32 32.28 15.28 3.29 2.02 17.7 19.56 30.35 9.57 17.75-48.69-51.06-113.92-76.47-132.42-36.48-26.73-82.55-54.65-107.35-44.34-14.36 5.68-76.04 53.67-109.52 68.07z"/>
|
|
19
|
+
<path id="<Path>" class="s2" d="m697.4 1254.16l-14.22 16.08c-18.18 17.82-27.57 46.11-29.6 73.3-3.03 22.95 40.74-2.34 62.84-9.43 45.22-22.04 85.17-19.26 134.3-26.41 38.49-0.46 58.36-33.72 69.37-48.7 56.61-77.18 18.36-67.69-33.79-77.43-52.51-9.77-24.83-13.25-66.22-15.47-9.74 0.54-7.34 0.75-14.6 4.62-4.34 2.05-10.8 4.6-15.88 7.28-33.37 17.19-34.85 14.29-56.74 34.9-1.15 1.29-33.1 38-35.46 41.26z"/>
|
|
20
|
+
<path id="<Path>" class="s0" d="m954.89 282.27l14.21-11.93c29.48-20.3 99.85-12.78 109.04-18.91-6.1-77.1-114.98-95.93-173.69-86.15-23.23 4.22-46.12 16.43-65.8 19.57-68.6 20.01-117.63 53.85-154.24 96.39-19.63 14.57-8.53 34.25-4.3 45.36 0.26 1.06 0.85 2.15 1.11 3.21 8.58 28.81 15.93 23.91 42.72 10.65 15.99-12.47 57.99-17.47 88.78-16.87 25.9 0.87 74.88 19.34 96.51 5.63 14.31-9.14 11.77-27.73 45.66-46.95z"/>
|
|
21
|
+
<path id="<Path>" class="s0" d="m771.29 489.05c7.52 5.16 17.19 9.47 22.76 13.07l84.66 58.3c14.37-1.87 61.52-34.14 75.23-44.38l52.79-37.32c18.68-11.54 24.45-14.16 11.26-29.86-5.33-6.35-44.24-32.95-54.14-38.66-24.77-13.94-27.24-29.4-67.45-45.02-25.79-10.22-32.14-12.85-63.77-15.6-47.14-3.76-92.6 13.07-129.98 36.49-17.58 10.94-30.62 33.36-9.84 49.38 25.32 19.53 50.28 35.21 78.48 53.6z"/>
|
|
22
|
+
<path id="<Path>" class="s2" d="m955.62 1973c-106.1-273.57-315.02-189.91-404.23-263.5-48.89 223.36 215.85 429.68 374.1 366.89-11.75-16.26-12.68-29.51-28.08-43.67-32.67-30.56-36.47-18.76-80.89-29.91-33.59-8.12-64.44-19.81-93.31-34.45 31.34 6.19 65.45 20.25 98.91 17.96 20.03 0.71 9.52-9.91-8.82-18.09-33.28-15.71-85.27-55.23-129.47-108.62 31.63 26.66 99.11 79.3 127.06 84.51 2.89-29.2 1.82-24.79-23.5-60.25 35.09 26.61 37.83 46.95 47.11 63.69 6.7 18.6 19.48 34.96 32.09 33.28 3.95 2.43 14.97-8.74 4.03-50.23 18.78 15.15 16.39 70.37 19.65 72.73 22.62 14.79 32.17 28.44 50.27 55.31 16.75-17.25 17.86-53.88 15.08-85.65z"/>
|
|
23
|
+
<path id="<Path>" class="s3" d="m985.44 1204.75q31.91-2.42 63.82-4.83c152.67 562.41-158.23 1208.49-279.97 1584.18-47.44-16.26-63.24-21.79-110.67-38.04 147.3-327.05 482.61-955.06 326.82-1541.31z"/>
|
|
24
|
+
<path id="<Path>" class="s2" d="m1093.24 1677.69c64.2-92.81 162.31-69.71 305.86-94.98 61.58-10.92 93.27-44.54 79.19 17.64-10.87 49.29-15.12 82.17-48.76 118.39-42.45 45.85-86.83 93.95-144.62 113.17-84.23 28.35-172.3 25.19-229.12-18.56 15.61-12.15 20.15-24.57 38.65-34.05 39.88-20.43 40.56-8.25 86.12-6.36 34.54 1.27 67.37-1.76 99.06-7.66-31.63-2.75-68.37 1.33-99.97-9.74-19.3-5.15-6.2-12.32 13.47-15.46 36.51-5.48 97.14-29.3 154.26-68.68-37.87 17.15-116.89 49.42-145.4 46.59 5.29-28.99 5.25-24.49 39.14-51.68-40.9 16.19-49.11 34.87-62.41 48.27-11.78 15.95-28.45 28.35-40.47 23.15-4.27 1.36-11.73-12.46 10.19-49.35-22.31 9.49-34.98 63.47-38.88 64.52-25.65 8.16-19.19 5.6-25.55 10.94-11.33-21.08-2.34-56.67 9.24-86.15z"/>
|
|
25
|
+
</g>
|
|
26
|
+
</g>
|
|
27
|
+
</svg>
|