Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion packages/chains/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
},
"dependencies": {
"@kibisis/encoding": "workspace:^",
"axios": "^1.10.0"
"@stablelib/uuid": "^2.0.1",
"axios": "^1.11.0"
}
}
4 changes: 2 additions & 2 deletions packages/chains/src/chains/Algorand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { AVMChain } from '@/decorators';
import { CAIP002Namespace } from '@/enums';

// types
import type { NetworkConfiguration } from '@/types';
import type { Transports } from '@/types';

export default class Algorand extends AVMChain {
// public static variables
Expand All @@ -21,7 +21,7 @@ export default class Algorand extends AVMChain {
name: 'Algo',
symbol: 'ALGO',
};
public static readonly networkConfiguration: NetworkConfiguration<CAIP002Namespace.Algorand> = {
public static readonly transports: Transports<CAIP002Namespace.Algorand> = {
algods: {
default: 0,
nodes: [
Expand Down
4 changes: 2 additions & 2 deletions packages/chains/src/chains/AlgorandBetanet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { AVMChain } from '@/decorators';
import { CAIP002Namespace } from '@/enums';

// types
import type { NetworkConfiguration } from '@/types';
import type { Transports } from '@/types';

export default class AlgorandBetanet extends AVMChain {
// public static variables
Expand All @@ -21,7 +21,7 @@ export default class AlgorandBetanet extends AVMChain {
name: 'Algo',
symbol: 'ALGO',
};
public static readonly networkConfiguration: NetworkConfiguration<CAIP002Namespace.Algorand> = {
public static readonly transports: Transports<CAIP002Namespace.Algorand> = {
algods: {
default: 0,
nodes: [
Expand Down
4 changes: 2 additions & 2 deletions packages/chains/src/chains/AlgorandFNet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { AVMChain } from '@/decorators';
import { CAIP002Namespace } from '@/enums';

// types
import type { NetworkConfiguration } from '@/types';
import type { Transports } from '@/types';

export default class AlgorandFNet extends AVMChain {
// public static variables
Expand All @@ -21,7 +21,7 @@ export default class AlgorandFNet extends AVMChain {
name: 'Algo',
symbol: 'ALGO',
};
public static readonly networkConfiguration: NetworkConfiguration<CAIP002Namespace.Algorand> = {
public static readonly transports: Transports<CAIP002Namespace.Algorand> = {
algods: {
default: 0,
nodes: [
Expand Down
4 changes: 2 additions & 2 deletions packages/chains/src/chains/AlgorandTestnet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { AVMChain } from '@/decorators';
import { CAIP002Namespace } from '@/enums';

// types
import type { NetworkConfiguration } from '@/types';
import type { Transports } from '@/types';

export default class AlgorandTestnet extends AVMChain {
// public static variables
Expand All @@ -21,7 +21,7 @@ export default class AlgorandTestnet extends AVMChain {
name: 'Algo',
symbol: 'ALGO',
};
public static readonly networkConfiguration: NetworkConfiguration<CAIP002Namespace.Algorand> = {
public static readonly transports: Transports<CAIP002Namespace.Algorand> = {
algods: {
default: 0,
nodes: [
Expand Down
35 changes: 35 additions & 0 deletions packages/chains/src/chains/Ethereum.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// constants
import { ETHEREUM_CHAIN_LOGO_URI, ETHEREUM_CURRENCY_ICON_URI } from '@/constants';

// decorators
import { EVMChain } from '@/decorators';

// enums
import { CAIP002Namespace } from '@/enums';

// types
import type { Transports } from '@/types';

export default class Ethereum extends EVMChain {
// public static variables
public static readonly displayName = 'Ethereum';
public static readonly iconURI = ETHEREUM_CHAIN_LOGO_URI;
public static readonly namespace = CAIP002Namespace.EIP155;
public static readonly nativeCurrency = {
decimals: 18,
iconURI: ETHEREUM_CURRENCY_ICON_URI,
name: 'Ether',
symbol: 'ETH',
};
public static readonly transports: Transports<CAIP002Namespace.EIP155> = {
https: {
default: 0,
rpcURLs: ['https://eth-mainnet.public.blastapi.io'],
},
websockets: {
default: 0,
rpcURLs: ['wss://eth-mainnet.public.blastapi.io'],
},
};
public static readonly testnet = false;
}
35 changes: 35 additions & 0 deletions packages/chains/src/chains/EthereumSepolia.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// constants
import { ETHEREUM_CHAIN_LOGO_URI, ETHEREUM_CURRENCY_ICON_URI } from '@/constants';

// decorators
import { EVMChain } from '@/decorators';

// enums
import { CAIP002Namespace } from '@/enums';

// types
import type { Transports } from '@/types';

export default class EthereumSepolia extends EVMChain {
// public static variables
public static readonly displayName = 'Ethereum Sepolia';
public static readonly iconURI = ETHEREUM_CHAIN_LOGO_URI;
public static readonly namespace = CAIP002Namespace.EIP155;
public static readonly nativeCurrency = {
decimals: 18,
iconURI: ETHEREUM_CURRENCY_ICON_URI,
name: 'Ether',
symbol: 'ETH',
};
public static readonly transports: Transports<CAIP002Namespace.EIP155> = {
https: {
default: 0,
rpcURLs: ['https://eth-sepolia.public.blastapi.io'],
},
websockets: {
default: 0,
rpcURLs: ['wss://eth-sepolia.public.blastapi.io'],
},
};
public static readonly testnet = true;
}
4 changes: 2 additions & 2 deletions packages/chains/src/chains/Voi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { AVMChain } from '@/decorators';
import { CAIP002Namespace } from '@/enums';

// types
import type { NetworkConfiguration } from '@/types';
import type { Transports } from '@/types';

export default class Voi extends AVMChain {
// public static variables
Expand All @@ -21,7 +21,7 @@ export default class Voi extends AVMChain {
name: 'Voi',
symbol: 'VOI',
};
public static readonly networkConfiguration: NetworkConfiguration<CAIP002Namespace.AVM> = {
public static readonly transports: Transports<CAIP002Namespace.AVM> = {
algods: {
default: 0,
nodes: [
Expand Down
4 changes: 2 additions & 2 deletions packages/chains/src/chains/VoiTestnet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { AVMChain } from '@/decorators';
import { CAIP002Namespace } from '@/enums';

// types
import type { NetworkConfiguration } from '@/types';
import type { Transports } from '@/types';

export default class VoiTestnet extends AVMChain {
// public static variables
Expand All @@ -21,7 +21,7 @@ export default class VoiTestnet extends AVMChain {
name: 'Voi',
symbol: 'VOI',
};
public static readonly networkConfiguration: NetworkConfiguration<CAIP002Namespace.AVM> = {
public static readonly transports: Transports<CAIP002Namespace.AVM> = {
algods: {
default: 0,
nodes: [
Expand Down
4 changes: 4 additions & 0 deletions packages/chains/src/constants/AlgorandURIs.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
export const ALGORAND_CHAIN_LOGO_URI =
'data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxyZWN0IGZpbGw9IiMwMDAwMDAiIGhlaWdodD0iNTEyIiB4PSI1ZS0wNyIgd2lkdGg9IjUxMiIgeT0iNWUtMDciLz4KICA8cG9seWdvbiBmaWxsPSIjZmZmZmZmIiBwb2ludHM9IjQzMy44OCwyNjQuOTUgNDA4LjE0LDMwOS43MSA0NDQuMTgsNDQ0LjMyIDQwNi44MSw0NDQuMzIgMzgyLjU0LDM1NC4wNCAzMzAuMzYsNDQ0LjMzIDI4OC42NCw0NDQuMzMgMzY5LjI5LDMwNC41NyAzNTYuMzEsMjU2LjA1IDI0Ny41Niw0NDQuMzYgMjA1LjgyLDQ0NC4zNiAzNDMuNjQsMjA1LjY0IDM4MC4xOCwyMDUuNjQgMzk2LjE4LDI2NC45NSAiIHRyYW5zZm9ybT0ibWF0cml4KDEuMDc0MDE0MSwwLDAsMS4wNzQwMTQxLC05My4wNTQ1ODMsLTkzLjA1NDU4MykiLz4KPC9zdmc+Cg==';
export const ALGORAND_CURRENCY_ICON_URI =
'data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTIwMCAxMjAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoJPHBhdGgKCSAgICAgIGQ9Ik0gMy43OTI0ODAxLDExOTYuNzU0NyBDIDcuMzg4OTI2LDExOTAuNzg2OCAxNzIuNTQ4ODcsOTA0LjUzNjYzIDI2Mi43MTM5Miw3NDggMzM5LjQwNzIzLDYxNC44NTE4MyA0MDIuMzI1MzUsNTA1Ljg0MDM4IDY1MC4yODM0OCw3Ni41IDY3Mi44MzYxMywzNy40NSA2OTIuMTU0MDgsNC4yNjI1IDY5My4yMTIyNSwyLjc1IEwgNjk1LjEzNjE5LDAgaCA5MC4zMDAxMyA5MC4zMDAxMyBsIDEuNTgzMTksNS43NSBjIDAuODcwNzUsMy4xNjI1IDE0LjkwOTk2LDU1LjcgMzEuMTk4MjUsMTE2Ljc1IDMzLjM0NTM2LDEyNC45ODE0OCA0NC43MjU4NiwxNjcuMTc1MzkgNDYuNjYxNDMsMTczIGwgMS4zMjkyMyw0IDkzLjczNDE1LDAuNSA5My43MzQxLDAuNSAtNjMuNjM4OSwxMTAgYyAtMzUuMDAxNCw2MC41IC02My44MjA2LDExMC45IC02NC4wNDI2LDExMiAtMC4yMjIsMS4xIDMuODc3NiwxNy41MzgxNCA5LjExMDIsMzYuNTI5MjEgQyAxMDQyLjUwNDksNjIxLjA4OTQzIDExOTcsMTE5Ny4yNzQ4IDExOTcsMTE5OC45ODY0IGMgMCwwLjY3NzUgLTMwLjc1OTIsMS4wMTM2IC05Mi43NjgzLDEuMDEzNiBoIC05Mi43Njg0IEwgOTc0LjA4NDA4LDEwNjAuMjUgQyA5NDMuMjg5Niw5NDUuMTE4NTQgODkxLjY2MjM3LDc1My45ODQ5OSA4ODkuMzc0MjMsNzQ2LjYzODQ5IGMgLTAuNDg0ODIsLTEuNTU2NTkgLTAuNzg3MDYsLTEuNjM4NDkgLTEuODQ1MiwtMC41IC0wLjY5NTk3LDAuNzQ4ODMgLTMzLjIyMzg2LDU2LjcxMTUxIC03Mi4yODQxOSwxMjQuMzYxNTEgLTM5LjA2MDMzLDY3LjY1IC05Ny42NTA3MSwxNjkuMTI1IC0xMzAuMjAwODUsMjI1LjUgLTMyLjU1MDE0LDU2LjM3NSAtNTkuNTEzMTIsMTAyLjgzOTYgLTU5LjkxNzczLDEwMy4yNTQ3IC0wLjQwNDYxLDAuNDE1MSAtNDcuMTUzMTUsMC42NDAxIC0xMDMuODg1NjUsMC41IEwgNDE4LjA5MDYzLDExOTkuNSA1MDcuMzYxNjUsMTA0NCBDIDU1Ni40NjA3MSw5NTguNDc1IDYzNi45MjIzNCw4MTguOTc1IDY4Ni4xNjUyNiw3MzQgNzc2LjYwMjU3LDU3Ny45Mzg4MSA4MTkuNzMxNzcsNTAzLjM0MDc3IDgyMS44NjcwOCw0OTkuMjg0NTkgYyAwLjk5MDY2LC0xLjg4MTgzIC0zLjUxMjA1LC0xOS43MjUwMiAtMjkuOTAzMzIsLTExOC41IEMgNzU0Ljg4MDcxLDI0MS45OTMyOSA3NTcuODg0MjUsMjUzIDc1Ny4wOTM1MiwyNTMgNzU1Ljc5NTAzLDI1MyA3MjMuMjI4NTcsMzA4Ljg3MTg4IDY0MS45NzUyLDQ1MC41IDU5Ni4yMjE4OCw1MzAuMjUgNTE3LjQ1ODcsNjY2LjgyNSA0NjYuOTQ1OSw3NTQgNDE2LjQzMzEsODQxLjE3NSAzMzcuODE3ODksOTc3LjA3NSAyOTIuMjQ1NDMsMTA1NiBsIC04Mi44NTkwMSwxNDMuNSAtMTAzLjc3NzY1LDAuMjU0NyAtMTAzLjc3NzY1MDcsMC4yNTQ2IHoiIC8+Cjwvc3ZnPgo=';
3 changes: 3 additions & 0 deletions packages/chains/src/constants/EthereumURIs.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export const ETHEREUM_CHAIN_LOGO_URI = `data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Ik0gMCwwIEggNTEyIFYgNTEyIEggMCBaIiBmaWxsPSIjZWNlZmYwIi8+CiAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4yNjY2NjY2NywwLDAsMC4yNjY2NjY2Nyw2NC42MzIxMzMsMTA1LjI1NDYzKSI+CiAgICA8cGF0aCBkPSJNIDcxNy41MTkyNyw0MzkuMDIzMDggNDIwLDU3NC4yNzkxNSA3MTcuNTE5MjcsNzUwLjE1NjE0IDEwMTUuMDkzNyw1NzQuMjc5MTUgWiIgb3BhY2l0eT0iMC42Ii8+CiAgICA8cGF0aCBkPSJNIDQyMC4xMTAyMyw1NzQuMjc5MTUgNzE3LjYyOTUsNzUwLjE1NjE0IFYgNDM5LjAyMzA4IDgwLjYgWiIgb3BhY2l0eT0iMC40NSIvPgogICAgPHBhdGggZD0iTSA3MTcuNjI5NSw4MC42IFYgNDM5LjAyMzA4IDc1MC4xNTYxNCBMIDEwMTUuMTQ4OCw1NzQuMjc5MTUgWiIgb3BhY2l0eT0iMC44Ii8+CiAgICA8cGF0aCBkPSJNIDQyMCw2MzAuNzE4NTMgNzE3LjUxOTI3LDEwNDkuOTkwMyBWIDgwNi40ODUyOCBaIiBvcGFjaXR5PSIwLjQ1Ii8+CiAgICA8cGF0aCBkPSJNIDcxNy41MTkyNyw4MDYuNDg1MjggViAxMDQ5Ljk5MDMgTCAxMDE1LjI1OSw2MzAuNzE4NTMgWiIgb3BhY2l0eT0iMC44Ii8+CiAgPC9nPgo8L3N2Zz4K`;
export const ETHEREUM_CURRENCY_ICON_URI =
'data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Im0gMjUwLjc3NSw1MDQuNjAzMzggYyAtMi44Mjk3MSwtNC4wNjgxNSAtMTEuMDM3NiwtMTUuODI3NTMgLTE4LjIzOTc2LC0yNi4xMzE5NiAtNy4yMDIxNSwtMTAuMzA0NDMgLTE5LjY5MDE0LC0yOC4xNzUwNSAtMjcuNzUxMDcsLTM5LjcxMjQ4IC04LjA2MDkyLC0xMS41Mzc0NCAtMTguMjMyOTIsLTI2LjA5MzM1IC0yMi42MDQ0MywtMzIuMzQ2NDcgLTcuNjYyNTQsLTEwLjk2MDY3IC0xMC45ODczNiwtMTUuNzE4MzkgLTE4LjYwNDA0LC0yNi42MjE3NyAtMS45NTMzNywtMi43OTYzIC02LjM5NzAzLC05LjE1NTUgLTkuODc0NzgsLTE0LjEzMTU2IC0zLjQ3Nzc2LC00Ljk3NjA3IC03LjYzMjI0LC0xMC45MjA5MyAtOS4yMzIxNywtMTMuMjEwODEgLTEuNTk5OTMsLTIuMjg5ODggLTYuMjgyNzcsLTguOTkxMzYgLTEwLjQwNjMxLC0xNC44OTIxOCAtNC4xMjM1MywtNS45MDA4MyAtMTIuMDAzNDUsLTE3LjE3ODA1IC0xNy41MTA5MywtMjUuMDYwNTEgLTUuNTA3NDgsLTcuODgyNDQgLTEwLjkzNDcsLTE1LjY0NjggLTEyLjA2MDQ5LC0xNy4yNTQxMSAtMS4xMjU4LC0xLjYwNzMyIC0yLjAyMDcyLC0yLjkyMjQgLTEuOTg4NzEsLTIuOTIyNCAwLjAzMiwwIDMuOTAyOTgsMi40MDAxMiA4LjYwMjE3LDUuMzMzNTcgNC42OTkxOCwyLjkzMzQ2IDEzLjUxNjA0LDguNDM1OTYgMTkuNTkzMDEsMTIuMjI3NzggNi4wNzY5OCwzLjc5MTgzIDE3LjMxODE3LDEwLjgwNjQ5IDI0Ljk4MDQ0LDE1LjU4ODEyIDcuNjYyMjcsNC43ODE2NCAxNi4zODE0LDEwLjIyMTAxIDE5LjM3NTg1LDEyLjA4NzQ1IDIuOTk0NDUsMS44NjY0NiAxMC44MTI4NCw2Ljc0Mzg5IDE3LjM3NDIxLDEwLjgzODcyIDI3LjE3MDA1LDE2Ljk1NjQgNDkuOTg1MTEsMzEuMTkxNTIgNTYuNTY2MjgsMzUuMjkzNjcgbCA3LjAwNTczLDQuMzY2ODEgNy4wMDU3MiwtNC4zNjY4MSBjIDYuNTgxMTcsLTQuMTAyMTUgMjkuMzk2MjMsLTE4LjMzNzI3IDU2LjU2NjI4LC0zNS4yOTM2NyA2LjU2MTM3LC00LjA5NDgzIDE0LjM3OTc3LC04Ljk3MjI2IDE3LjM3NDIxLC0xMC44Mzg3MiAyLjk5NDQ1LC0xLjg2NjQ0IDExLjcxMzU4LC03LjMwNTgxIDE5LjM3NTg1LC0xMi4wODc0NSA3LjY2MjI3LC00Ljc4MTYzIDE4LjkwMzQ3LC0xMS43OTYyOSAyNC45ODA0NCwtMTUuNTg4MTIgNi4wNzY5NywtMy43OTE4MiAxNC44OTM4NCwtOS4yOTQzMiAxOS41OTMwMiwtMTIuMjI3NzggNC42OTkxOSwtMi45MzM0NSA4LjU3MDE2LC01LjMzMzU3IDguNjAyMTgsLTUuMzMzNTcgMC4wMzIsMCAtMC44NjI5MiwxLjMxNTA4IC0xLjk4ODcyLDIuOTIyNCAtMS4xMjU4LDEuNjA3MzEgLTYuNTUzMDMsOS4zNzE2NyAtMTIuMDYwNSwxNy4yNTQxMSAtNS41MDc0Nyw3Ljg4MjQ2IC0xMy4zODczOSwxOS4xNTk2OCAtMTcuNTEwOTIsMjUuMDYwNTEgLTQuMTIzNTQsNS45MDA4MiAtOC44MDYzNywxMi42MDIzIC0xMC40MDYzMSwxNC44OTIxOCAtMS41OTk5NSwyLjI4OTg4IC01Ljc1NDQyLDguMjM0NzQgLTkuMjMyMTgsMTMuMjEwODEgLTMuNDc3NzYsNC45NzYwNiAtNy45MDg4MiwxMS4zMTcyNSAtOS44NDY4MSwxNC4wOTE1MiAtNy41MDE5NiwxMC43MzkyMyAtMTAuOTU4MTcsMTUuNjg1IC0xOC42MzIsMjYuNjYxODEgLTQuMzcxNTIsNi4yNTMxMiAtMTQuNTQzNTIsMjAuODA5MDMgLTIyLjYwNDQ1LDMyLjM0NjQ3IC04LjA2MDkyLDExLjUzNzQzIC0yMC41NDg5MSwyOS40MDgwNSAtMjcuNzUxMDcsMzkuNzEyNDggLTcuMjAyMTQsMTAuMzA0NDMgLTE1LjQxMDA0LDIyLjA2MzgxIC0xOC4yMzk3NSwyNi4xMzE5NiBDIDI1OC4zOTUyOCw1MDguNjcxNTIgMjU2LjA0NDA0LDUxMiAyNTYsNTEyIGMgLTAuMDQ0LDAgLTIuMzk1MjksLTMuMzI4NDggLTUuMjI1LC03LjM5NjYyIHogTSAyMzkuNjY2NjMsMzQ2LjgzMzM5IGMgLTE2LjMyMDI3LC0xMC4xOTg0MyAtMjIuMzA0OTEsLTEzLjkzNDUgLTQ5LjI0MDI3LC0zMC43Mzk1OCAtMjUuMTk0NjgsLTE1LjcxOTA2IC0zNS40OTg0OSwtMjIuMTQ3OTMgLTQ4LjExOTM3LC0zMC4wMjMyMiAtNi43Mzc1MSwtNC4yMDQxMyAtMTguNDQ3MDksLTExLjUxMDM0IC0yNi4wMjEyOSwtMTYuMjM1OTkgLTcuNTc0MTksLTQuNzI1NjcgLTEzLjc5NDYzLC04LjY1OTcgLTEzLjgyMzE5LC04Ljc0MjMxIC0wLjAyODYsLTAuMDgyNiA2LjEwNDY4LC0xMC42MTg2NiAxMy42Mjk0NCwtMjMuNDEzNTEgNy41MjQ3NSwtMTIuNzk0ODYgMTguNjM3ODgsLTMxLjY5NDI2IDI0LjY5NTg1LC00MS45OTg2OSA2LjA1Nzk2LC0xMC4zMDQ0MyAxOS4xNzE0NCwtMzIuNjA2NjggMjkuMTQxMDYsLTQ5LjU2MDU1IDkuOTY5NjIsLTE2Ljk1Mzg4IDI1Ljc1MTczLC00My43OTU4MyAzNS4wNzEzNSwtNTkuNjQ4ODAxIEMgMjQ3LjYzNzM2LDEzLjk0MzY0NCAyNTUuODYxMjEsMS42NWUtNiAyNTYsMS42NWUtNiBjIDAuMTM4NzgsMCA4LjM2MjYzLDEzLjk0MzY0MjM1IDUwLjk5OTc4LDg2LjQ3MDczNzM1IDkuMzE5NjIsMTUuODUyOTcxIDI1LjEwMTczLDQyLjY5NDkyMSAzNS4wNzEzNiw1OS42NDg4MDEgOS45Njk2MSwxNi45NTM4NyAyMy4wODMwOSwzOS4yNTYxMiAyOS4xNDEwNiw0OS41NjA1NSA2LjA1Nzk2LDEwLjMwNDQzIDE3LjE3MTEsMjkuMjAzODMgMjQuNjk1ODUsNDEuOTk4NjkgNy41MjQ3NSwxMi43OTQ4NSAxMy42NTgwMSwyMy4zMzA5MyAxMy42Mjk0NCwyMy40MTM1MSAtMC4wMjg2LDAuMDgyNiAtNi4yNDksNC4wMTY1NiAtMTMuODIzMiw4Ljc0MjEzIC03LjU3NDE5LDQuNzI1NTggLTE4Ljk5NTU0LDExLjg1MTk2IC0yNS4zODA3NiwxNS44MzYzOSAtMjAuMTk5NTIsMTIuNjA0NjUgLTM1LjI1NjA5LDIxLjk5OTI3IC00Ny41NTg5MSwyOS42NzQ2NCAtMTYuMzQyNjIsMTAuMTk1NjkgLTMwLjg3NzI5LDE5LjI2NDQxIC01MC4zMjMxNywzMS4zOTg1MSAtOS4wNTA0OCw1LjY0NzQ1IC0xNi40NzI1NywxMC4yNjMxMiAtMTYuNDkzNDksMTAuMjU3MDQgLTAuMDIwOSwtMC4wMDYgLTcuMzUyMDIsLTQuNTgxNTEgLTE2LjI5MTMzLC0xMC4xNjc2MSB6Ii8+Cjwvc3ZnPgo=';
Loading