1072 lines
83 KiB
JSON
1072 lines
83 KiB
JSON
{
|
|
"_format": "hh-sol-artifact-1",
|
|
"contractName": "EnhancedSwapRouter",
|
|
"sourceName": "contracts/bridge/trustless/EnhancedSwapRouter.sol",
|
|
"abi": [
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "_uniswapV3Router",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "_curve3Pool",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "_dodoexRouter",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "_balancerVault",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "_oneInchRouter",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "_weth",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "_usdt",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "_usdc",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "_dai",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "constructor"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "AccessControlBadConfirmation",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "neededRole",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "AccessControlUnauthorizedAccount",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "target",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "AddressEmptyCode",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "AddressInsufficientBalance",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "FailedInnerCall",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "InsufficientOutput",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "InvalidProvider",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "InvalidRoutingConfig",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "ProviderDisabled",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "ReentrancyGuardReentrantCall",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "token",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "SafeERC20FailedOperation",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "SwapFailed",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "ZeroAddress",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "ZeroAmount",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": false,
|
|
"internalType": "enum EnhancedSwapRouter.SwapProvider",
|
|
"name": "provider",
|
|
"type": "uint8"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "bool",
|
|
"name": "enabled",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"name": "ProviderToggled",
|
|
"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": false,
|
|
"internalType": "uint256",
|
|
"name": "sizeCategory",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "enum EnhancedSwapRouter.SwapProvider[]",
|
|
"name": "providers",
|
|
"type": "uint8[]"
|
|
}
|
|
],
|
|
"name": "RoutingConfigUpdated",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "enum EnhancedSwapRouter.SwapProvider",
|
|
"name": "provider",
|
|
"type": "uint8"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "enum LiquidityPoolETH.AssetType",
|
|
"name": "inputAsset",
|
|
"type": "uint8"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "tokenIn",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "tokenOut",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "amountIn",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "amountOut",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "gasUsed",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "SwapExecuted",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "COORDINATOR_ROLE",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "DEFAULT_ADMIN_ROLE",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "FEE_TIER_HIGH",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint24",
|
|
"name": "",
|
|
"type": "uint24"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "FEE_TIER_LOW",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint24",
|
|
"name": "",
|
|
"type": "uint24"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "FEE_TIER_MEDIUM",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint24",
|
|
"name": "",
|
|
"type": "uint24"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "MEDIUM_SWAP_THRESHOLD",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "ROUTING_MANAGER_ROLE",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "SMALL_SWAP_THRESHOLD",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "enum EnhancedSwapRouter.SwapProvider",
|
|
"name": "provider",
|
|
"type": "uint8"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "stablecoinToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amountIn",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amountOutMin",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "_executeSwap",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "stablecoinToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amountIn",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "_getBalancerQuote",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "stablecoinToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amountIn",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "_getDodoexQuote",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "stablecoinToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amountIn",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "_getUniswapV3Quote",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "balancerPoolIds",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "balancerVault",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "curve3Pool",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "dai",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "dodoPoolAddresses",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "dodoexRouter",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "stablecoinToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amountIn",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "getQuotes",
|
|
"outputs": [
|
|
{
|
|
"internalType": "enum EnhancedSwapRouter.SwapProvider[]",
|
|
"name": "providers",
|
|
"type": "uint8[]"
|
|
},
|
|
{
|
|
"internalType": "uint256[]",
|
|
"name": "amounts",
|
|
"type": "uint256[]"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"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": [],
|
|
"name": "oneInchRouter",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "enum EnhancedSwapRouter.SwapProvider",
|
|
"name": "",
|
|
"type": "uint8"
|
|
}
|
|
],
|
|
"name": "providerEnabled",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "role",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "callerConfirmation",
|
|
"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": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "tokenIn",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "tokenOut",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "poolId",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "setBalancerPoolId",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "tokenIn",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "tokenOut",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "poolAddress",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "setDodoPoolAddress",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "enum EnhancedSwapRouter.SwapProvider",
|
|
"name": "provider",
|
|
"type": "uint8"
|
|
},
|
|
{
|
|
"internalType": "bool",
|
|
"name": "enabled",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"name": "setProviderEnabled",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "sizeCategory",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "enum EnhancedSwapRouter.SwapProvider[]",
|
|
"name": "providers",
|
|
"type": "uint8[]"
|
|
}
|
|
],
|
|
"name": "setRoutingConfig",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "_quoter",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "setUniswapQuoter",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "sizeBasedRouting",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "enabled",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes4",
|
|
"name": "interfaceId",
|
|
"type": "bytes4"
|
|
}
|
|
],
|
|
"name": "supportsInterface",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "enum LiquidityPoolETH.AssetType",
|
|
"name": "inputAsset",
|
|
"type": "uint8"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "stablecoinToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amountIn",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amountOutMin",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "enum EnhancedSwapRouter.SwapProvider",
|
|
"name": "preferredProvider",
|
|
"type": "uint8"
|
|
}
|
|
],
|
|
"name": "swapToStablecoin",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amountOut",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "enum EnhancedSwapRouter.SwapProvider",
|
|
"name": "providerUsed",
|
|
"type": "uint8"
|
|
}
|
|
],
|
|
"stateMutability": "payable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "tokenIn",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "tokenOut",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amountIn",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amountOutMin",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "swapTokenToToken",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amountOut",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "uniswapQuoter",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "uniswapV3Router",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "usdc",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "usdt",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "weth",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"stateMutability": "payable",
|
|
"type": "receive"
|
|
}
|
|
],
|
|
"bytecode": "0x3462000ba55762004388388190036101a0601f8201601f19168101906001600160401b0382119082101762000780576101209282916040526101a0391262000ba5576200004e6101a062000c0a565b6200005b6101c062000c0a565b620000686101e062000c0a565b916200007661020062000c0a565b6200008361022062000c0a565b906200009161024062000c0a565b906200009f61026062000c0a565b95620000ad61028062000c0a565b95620000bb6102a062000c0a565b9560018055620000cb3362000c1f565b506001600160a01b03811615801562000b93575b801562000b81575b801562000b6f575b801562000b5d575b801562000b4b575b801562000b39575b801562000b27575b62000b155760805260a05260c05260e0526101008290526101205261014093845261016092835261018091825260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b8054600160ff1991821681179092557fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e080548216831790557f679795a0195a1b76cdebb7c51d74e058aee92919b8c3389af86ef24535e8a28c805482168317905560036000527f88601476d11616a71c5be67555bd1dff4b1cbf21533d2669b768b61518cfe1c380548216909217909155906001600160a01b031662000afb575b506200020e62000baa565b6002815260403660208301376000620002278262000cb0565b526002620002358262000cd4565b526200024062000bca565b600081526200024e62000baa565b918252602080830191909152600160408301526000805260039052805180517f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff92916001600160401b03821162000780576801000000000000000082116200078057602090845483865580841062000ac5575b5001908360005260206000209060005b8160051c811062000a735750601f19811680820362000a17575b50505050602081015180519060018401906001600160401b038311620007805768010000000000000000831162000780576020908254848455808510620009f7575b500190600052602060002060005b838110620009e25750505050906002604062000368930151151591019060ff801983541691151516179055565b6200037262000bea565b60038152606036602083013760026200038b8262000cb0565b526003620003998262000cd4565b526000620003a78262000ce5565b52620003b262000bca565b60008152620003c062000baa565b91825260208083019190915260016040830181905260005260039052805180517fa15bc60c955c405d20d9149c709e2460f1c2d9a497496a7f46004d1772c3054c92916001600160401b03821162000780576801000000000000000082116200078057602090845483865580841062000989575b5001908360005260206000209060005b8160051c8110620009375750601f198116808203620008db575b50505050602081015180519060018401906001600160401b038311620007805768010000000000000000831162000780576020908254848455808510620008bb575b500190600052602060002060005b838110620008a657505050509060026040620004db930151151591019060ff801983541691151516179055565b620004e562000bea565b6003815260603660208301376002620004fe8262000cb0565b5260016200050c8262000cd4565b5260036200051a8262000ce5565b526200052562000bca565b600081526200053362000baa565b918252602080830191825260016040840190815260026000526003909152915180517fc3a24b0501bd2c13a7e57f2db4369ec4c223447539fc0724a9d55ac4a06ebd4d9392916001600160401b03821162000780576801000000000000000082116200078057602090855483875580841062000855575b5001908460005260206000208160051c9160005b838110620008035750601f19811690038062000796575b50509151805192506001850191506001600160401b03831162000780576801000000000000000083116200078057602090825484845580851062000760575b500190600052602060002060005b8381106200074b57505050509060026200064c9251151591019060ff801983541691151516179055565b60405191613678938462000d1085396080518481816114c301528181611a820152611bd3015260a05184610a48015260c051848181610eed01528181610f99015281816111a00152611cc9015260e0518481816115a101528181611e9c0152818161205d015261242c015261010051848181610736015281816121b301526122f7015261012051848181610f51015281816110ab015281816117c001528181611abc01528181611b1401528181611c6c01528181611e400152818161220e015281816123810152818161283901526128c701525183818161143f0152612a250152518281816113b30152612a8501525181818161021a0152612a5d0152f35b60019060208451940193818401550162000622565b6200077990846000528584600020918201910162000cf6565b3862000614565b634e487b7160e01b600052604160045260246000fd5b9260009360005b818110620007b457505050015538808080620005d5565b90919485516005811015620007ed57620007e2602091846001949060ff809160031b9316831b921b19161790565b96019291016200079d565b634e487b7160e01b600052602160045260246000fd5b6000805b602081106200081e575083820155600101620005be565b959081516005811015620007ed576200084b602091896001949060ff809160031b9316831b921b19161790565b9201960162000807565b62000884908760005283600020601f80870160051c820192818816806200088b575b500160051c019062000cf6565b38620005aa565b60001990818601918254918a0360031b1c1690553862000877565b600190602084519401938184015501620004ae565b620008d490846000528584600020918201910162000cf6565b38620004a0565b9260009360005b8184038110620008fe5750505060051c0155388080806200045e565b90919485516005811015620007ed576200092c602091846001949060ff809160031b9316831b921b19161790565b9601929101620008e2565b6000805b602081106200095257508382015560010162000444565b949081516005811015620007ed576200097f602091886001949060ff809160031b9316831b921b19161790565b920195016200093b565b620009b99086600052601f846000209181871680620009c0575b500160051c810190601f860160051c0162000cf6565b3862000434565b6000199081848a0160051c86010191825491890360031b1c16905538620009a3565b6001906020845194019381840155016200033b565b62000a1090846000528584600020918201910162000cf6565b386200032d565b9260009360005b818403811062000a3a5750505060051c015538808080620002eb565b90919485516005811015620007ed5762000a68602091846001949060ff809160031b9316831b921b19161790565b960192910162000a1e565b6000805b6020811062000a8e575083820155600101620002d1565b949081516005811015620007ed5762000abb602091886001949060ff809160031b9316831b921b19161790565b9201950162000a77565b62000af49086600052601f846000209181871680620009c057500160051c810190601f860160051c0162000cf6565b38620002c1565b600460005260016040600020918254161790553862000203565b60405163d92e233d60e01b8152600490fd5b506001600160a01b038716156200010f565b506001600160a01b0388161562000107565b506001600160a01b03891615620000ff565b506001600160a01b03851615620000f7565b506001600160a01b03841615620000ef565b506001600160a01b03831615620000e7565b506001600160a01b03821615620000df565b600080fd5b60405190606082016001600160401b038111838210176200078057604052565b60405190602082016001600160401b038111838210176200078057604052565b60405190608082016001600160401b038111838210176200078057604052565b51906001600160a01b038216820362000ba557565b6001600160a01b031660008181527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205490919060ff1662000cac57818052816020526040822081835260205260408220600160ff1982541617905533917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b5090565b80511562000cbe5760200190565b634e487b7160e01b600052603260045260246000fd5b80516001101562000cbe5760400190565b80516002101562000cbe5760600190565b81811062000d02575050565b6000815560010162000cf656fe608080604052600436101561001d575b50361561001b57600080fd5b005b60003560e01c90816301ffc9a7146115d057508063158274a51461158b5780631c28242a14611564578063248a9ca31461153557806326158136146114f25780632c76d7a6146114ad5780632f2ff15d1461146e5780632f48ab7d1461142957806336568abe146113e25780633e413bee1461139d5780633ee2afc1146110da5780633fc8cef3146110955780634db4a3521461106c5780634f214fd31461101b57806352e25bce14610f1c57806355470d8714610ed75780635559294314610eb257806359fbc2d214610a7757806363a6b1da14610a3257806365a5292e146109f75780636b366cb5146109bc5780636c04a824146109335780637574d9a0146109165780637c47ddd01461089d57806381cfa7a01461086757806382cb9ae8146108425780638f40e8f51461082557806391d14854146107d857806395e42ded14610781578063a217fddf14610765578063ac3af20814610720578063b8ad530e146106e7578063c5b35f63146106b8578063cb29ac5c14610653578063d547741f14610614578063d713da52146105e0578063de56631414610590578063e785f45b14610249578063f4b9fa75146102045763f6b9ec7c146101e2573861000f565b346101ff5760003660031901126101ff5760206040516101f48152f35b600080fd5b346101ff5760003660031901126101ff576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101ff5760403660031901126101ff57610262611623565b60405160243591610272826116e2565b6005825260209260a036858501376040519161028d836116e2565b6005835260a0368685013784600092600080526002825260ff604060002054166104fb575b60026000526002825260ff60406000205416610466575b60036000526002825260ff604060002054166103cf575b5050506102ec816119fb565b916102f6826119fb565b9360005b83811061038c5786858760405192839260408401604085528151809152826060860192019060005b818110610368575050508381038285015281808451928381520193019160005b82811061035157505050500390f35b835185528695509381019392810192600101610342565b919495509183808261037d6001948951611668565b01950191019186959492610322565b806103b36103a461039f60019486611947565b611a44565b6103ae8389611947565b6129fd565b6103bd8185611947565b516103c88289611947565b52016102fa565b60405163c5b35f6360e01b81526001600160a01b03939093166004840152602483015281604481305afa60009181610437575b5061040f575b84816102e0565b906104319160036104208387611947565b5261042b8285611947565b52612a09565b84610408565b9091508581813d831161045f575b61044f81836116fd565b810103126101ff57519086610402565b503d610445565b6040516329712de760e11b81526001600160a01b0384166004820152602481018290528281604481305afa600091816104ca575b506104a6575b506102c9565b936104c3919460026104b8838a611947565b5261042b8288611947565b92876104a0565b8481959293503d83116104f4575b6104e281836116fd565b810103126101ff57879251908961049a565b503d6104d8565b604051630e14121560e11b81526001600160a01b0384166004820152602481018290528281604481305afa6000918161055f575b5061053b575b506102b2565b91509250600061054a86611924565b5261055484611924565b528460019287610535565b8481959293503d8311610589575b61057781836116fd565b810103126101ff57879251908961052f565b503d61056d565b346101ff5760403660031901126101ff5760206105ab611623565b6105b3611639565b60018060a01b03809216600052600583528160406000209116600052825260406000205416604051908152f35b346101ff5760203660031901126101ff576004356000526003602052602060ff600260406000200154166040519015158152f35b346101ff5760403660031901126101ff5761001b600435610633611639565b9080600052600060205261064e600160406000200154612b29565b612bcd565b60a03660031901126101ff5760043560028110156101ff57610673611639565b6084359160058310156101ff576040926106b6926106a092610693612c42565b60643591604435916126c9565b6001809392935583519283526020830190611668565bf35b346101ff5760403660031901126101ff5760206106df6106d6611623565b60243590612375565b604051908152f35b346101ff5760803660031901126101ff5760043560058110156101ff576106df602091610712611639565b906064359160443591611a51565b346101ff5760003660031901126101ff576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101ff5760003660031901126101ff57602060405160008152f35b346101ff5760603660031901126101ff5761079a611623565b6107a2611639565b906107ab612aaf565b60018060a01b03809116600052600460205260406000209116600052602052604435604060002055600080f35b346101ff5760403660031901126101ff576107f1611639565b600435600052600060205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b346101ff5760003660031901126101ff576020604051610bb88152f35b346101ff5760003660031901126101ff57602060405169152d02c7e14af68000008152f35b346101ff5760203660031901126101ff5760043560058110156101ff5760ff61089160209261164f565b54166040519015158152f35b346101ff5760603660031901126101ff576108b6611623565b6108be611639565b6001600160a01b0360443581811693908490036101ff5781906108df612aaf565b166000526005602052604060002091166000526020526040600020906bffffffffffffffffffffffff60a01b825416179055600080f35b346101ff5760003660031901126101ff5760206040516127108152f35b346101ff5760403660031901126101ff5760043560058110156101ff57602435801515918282036101ff577f6be7b5903863679a655e520a2395f264a654b5663f6ceb97c8a878f8983534cb926109a860409361098e612aaf565b6109978461164f565b9060ff801983541691151516179055565b6109b483518093611668565b6020820152a1005b346101ff5760003660031901126101ff5760206040517f2e8b98eef02e8df3bd27d1270ded3bea3d14db99c5234c7b14001a7fff957bcc8152f35b346101ff5760003660031901126101ff5760206040517fa842d0039ede86e50de3e76d5357314d987325eb17d7eb32afe0fdec2be0031e8152f35b346101ff5760003660031901126101ff576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101ff5760403660031901126101ff576024356001600160401b0381116101ff57366023820112156101ff576001600160401b038160040135116101ff576024816004013560051b8201013681116101ff57610ad2612aaf565b60036004351015610e5b57816004013515610e0a57604051610af3816116c7565b6000815260405191610b0483611691565b610b11846004013561190d565b90610b1f60405192836116fd565b600485013582526024850190602083015b818310610df1575050508252602082015260016040820152600435600052600360205260406000209080518051906001600160401b038211610cd557600160401b8211610cd5576020908454838655808410610da5575b5001908360005260206000209060005b8160051c8110610d585750601f198116808203610ceb575b50505050600182016020820151908151916001600160401b038311610cd557600160401b8311610cd5576020908254848455808510610cb8575b500190600052602060002060005b838110610ca45786610c1f8760026040890151151591019060ff801983541691151516179055565b6040516040810160043582526040602083015282600401359052606081019160248101906000905b80600401358210610c7a577f266370fe8933b3766025a9b1de987798164b818824e57c1057eeb8f9ae71ce3e84860385a1005b90919384359060058210156101ff57602081610c998293600195611668565b019501920190610c47565b600190602084519401938184015501610bf7565b610ccf908460005285846000209182019101611a2d565b87610be9565b634e487b7160e01b600052604160045260246000fd5b9260009360005b8184038110610d0c5750505060051c015583808080610baf565b90919485516005811015610d4257610d38602091846001949060ff809160031b9316831b921b19161790565b9601929101610cf2565b634e487b7160e01b600052602160045260246000fd5b6000805b60208110610d71575083820155600101610b97565b949081516005811015610d4257610d9c602091886001949060ff809160031b9316831b921b19161790565b92019501610d5c565b610dd1908660005283600020601f80870160051c82019281881680610dd7575b500160051c0190611a2d565b86610b87565b60001990818601918254918a0360031b1c1690558b610dc5565b823560058110156101ff57815260209283019201610b30565b60405162461bcd60e51b815260206004820152602360248201527f456e68616e63656453776170526f757465723a20656d7074792070726f76696460448201526265727360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602960248201527f456e68616e63656453776170526f757465723a20696e76616c69642073697a656044820152682063617465676f727960b81b6064820152608490fd5b346101ff5760003660031901126101ff57602060405169021e19e0c9bab24000008152f35b346101ff5760003660031901126101ff576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101ff5760403660031901126101ff57610f956020610f3a611623565b60405163137dbaf360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015290911660248083019190915235604482015291829081906064820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa801561100f57600090610fdc575b602090604051908152f35b506020813d602011611007575b81610ff6602093836116fd565b810103126101ff5760209051610fd1565b3d9150610fe9565b6040513d6000823e3d90fd5b346101ff5760403660031901126101ff57611034611623565b61103c611639565b9060018060a01b038091166000526004602052604060002091166000526020526020604060002054604051908152f35b346101ff5760003660031901126101ff576006546040516001600160a01b039091168152602090f35b346101ff5760003660031901126101ff576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101ff5760803660031901126101ff576110f3611623565b6110fb611639565b906044359160643561110b612c42565b831561138b576001600160a01b0392831680158015611381575b61136f578060005260209460058652846040600020941693846000528652846040600020541691611157831515611892565b6040516323b872dd60e01b88820152336024820152306044820152606480820184905281526111919061118b6084826116fd565b8261356d565b60405163095ea7b360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b038116600483015260248201849052919088816044816000865af1801561100f57611342575b50604051936111fa856116ac565b6001855288368187013761120d85611924565b5261012c420180421161132c578894611275946040519361122d85611675565b8452888785015260408401528660608401526080830152600060a0830152600060c083015260e08201526000604051978880958194630b5e801360e01b83526004830161195b565b0393165af192831561100f576000936112fd575b5082106112a8578161129c913390612c65565b60018055604051908152f35b60405162461bcd60e51b815260048101849052602760248201527f456e68616e63656453776170526f757465723a20696e73756666696369656e74604482015266081bdd5d1c1d5d60ca1b6064820152608490fd5b9092508381813d8311611325575b61131581836116fd565b810103126101ff57519184611289565b503d61130b565b634e487b7160e01b600052601160045260246000fd5b61136190893d8b11611368575b61135981836116fd565b8101906118f5565b50886111ec565b503d61134f565b60405163d92e233d60e01b8152600490fd5b5083831615611125565b604051631f2a200560e01b8152600490fd5b346101ff5760003660031901126101ff576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101ff5760403660031901126101ff576113fb611639565b336001600160a01b038216036114175761001b90600435612bcd565b60405163334bd91960e11b8152600490fd5b346101ff5760003660031901126101ff576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101ff5760403660031901126101ff5761001b60043561148d611639565b908060005260006020526114a8600160406000200154612b29565b612b4f565b346101ff5760003660031901126101ff576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101ff5760203660031901126101ff5761150b611623565b611513612aaf565b600680546001600160a01b0319166001600160a01b0392909216919091179055005b346101ff5760203660031901126101ff5760043560005260006020526020600160406000200154604051908152f35b346101ff5760403660031901126101ff5760206106df611582611623565b6024359061175d565b346101ff5760003660031901126101ff576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101ff5760203660031901126101ff576004359063ffffffff60e01b82168092036101ff57602091637965db0b60e01b8114908115611612575b5015158152f35b6301ffc9a760e01b1490508361160b565b600435906001600160a01b03821682036101ff57565b602435906001600160a01b03821682036101ff57565b6005811015610d42576000526002602052604060002090565b906005821015610d425752565b61010081019081106001600160401b03821117610cd557604052565b606081019081106001600160401b03821117610cd557604052565b604081019081106001600160401b03821117610cd557604052565b602081019081106001600160401b03821117610cd557604052565b60c081019081106001600160401b03821117610cd557604052565b90601f801991011681019081106001600160401b03821117610cd557604052565b3d15611758573d906001600160401b038211610cd5576040519161174c601f8201601f1916602001846116fd565b82523d6000602084013e565b606090565b6006546001600160a01b0390811680151580611883575b6117aa575b505061178490612a18565b61178e5750600090565b6126de9081810291818304149015171561132c57612710900490565b60405191602083019063f7729d4360e01b8252807f000000000000000000000000000000000000000000000000000000000000000016602485015284166044840152610bb860648401528460848401526000928360a482015260a4815260e081018181106001600160401b0382111761186f576040525183928392905afa9061183161171e565b9180611863575b15611779576020828051810103126118605750602001518061185a5780611779565b91505090565b80fd5b50602082511015611838565b634e487b7160e01b85526041600452602485fd5b5061188d83612a18565b611774565b1561189957565b60405162461bcd60e51b815260206004820152602e60248201527f456e68616e63656453776170526f757465723a20446f646f657820706f6f6c2060448201526d1b9bdd0818dbdb999a59dd5c995960921b6064820152608490fd5b908160209103126101ff575180151581036101ff5790565b6001600160401b038111610cd55760051b60200190565b8051156119315760200190565b634e487b7160e01b600052603260045260246000fd5b80518210156119315760209160051b010190565b602080825261012082019260018060a01b03808251168385015280838301511660408501526040820151606085015260608201516080850152608082015194610100938460a087015286518092528061014087019701926000905b8382106119e25750505050508060a060e092015160c085015260c0810151151582850152015191015290565b84518116895297820197938201936001909101906119b6565b90611a058261190d565b611a1260405191826116fd565b8281528092611a23601f199161190d565b0190602036910137565b818110611a38575050565b60008155600101611a2d565b516005811015610d425790565b92919092303303612326576005811015610d425780611c55575060405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166004820152602481018290526020818060448101038160007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561100f57611c36575b5061012c4201421161132c5760405192611b0a84611675565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811685529081166020808601918252610bb86040808801918252306060890190815261012c420160808a0190815260a08a0197885260c08a01988952600060e08b01818152935163414bf38960e01b81529a51881660048c01529551871660248b0152925162ffffff1660448a0152518516606489015290516084880152935160a4870152935160c48601529151811660e48501528391610104918391907f0000000000000000000000000000000000000000000000000000000000000000165af190811561100f57600091611c07575090565b90506020813d602011611c2e575b81611c22602093836116fd565b810103126101ff575190565b3d9150611c15565b611c4e9060203d6020116113685761135981836116fd565b5038611af1565b91929160028103611e2b575060018060a01b0391827f000000000000000000000000000000000000000000000000000000000000000016916000928084526020926005845260409686888720921691828752855286888720541690611cbb821515611892565b885163095ea7b360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b038116600483015260248201879052959087816044818c8a5af18015611e2157611e04575b50895192611d21846116ac565b60018452873681860137611d3484611924565b5261012c420193844211611df05791611d9a959391889795938c5195611d5987611675565b8652888601528b850152606084015260808301528660a08301528660c083015260e0820152858851978880958194630b5e801360e01b83526004830161195b565b0393165af1938415611de557508193611db4575b50505090565b9091809350813d8311611dde575b611dcc81836116fd565b81010312611860575051388080611dae565b503d611dc2565b51913d9150823e3d90fd5b634e487b7160e01b89526011600452602489fd5b611e1a90883d8a116113685761135981836116fd565b5038611d14565b8b513d8b823e3d90fd5b9092906003810361211e575060018060a01b037f0000000000000000000000000000000000000000000000000000000000000000169283600052600460205260406000209260018060a01b031692836000526020526040600020549283156120c95760405163095ea7b360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660048201526024810183905260208160448160008a5af1801561100f576120aa575b50604051946001600160401b039460c0870186811188821017610cd557604052865260006020870152604086015260608501526080840152604051611f2a816116c7565b6000815260a0840152604051916080830190811183821017610cd557604052308252600060208301523060408301526000606083015261012c4201421161132c579160a0926040519384926352bbbe2960e01b845260e06004850152805160e48501526020810151611f9b816126bf565b61010485015260408101516000196001841b019081166101248601526060820151166101448501526080810151610164850152015160c061018484015280516101a48401819052919060005b83811061209157505060006101c4838501810182905285516001600160a01b039081166024870152602080880151151560448801526040880151821660648801526060909701511515608487015260a486019390935261012c420160c4860152601f909301601f191684018490039092019183917f0000000000000000000000000000000000000000000000000000000000000000165af190811561100f57600091611c07575090565b60208282018101516101c4898401015287955001611fe7565b6120c29060203d6020116113685761135981836116fd565b5038611ee6565b60405162461bcd60e51b815260206004820152602760248201527f456e68616e63656453776170526f757465723a20706f6f6c206e6f7420636f6e604482015266199a59dd5c995960ca1b6064820152608490fd5b8390600181036121895760405162461bcd60e51b815260206004820152603360248201527f456e68616e63656453776170526f757465723a20437572766520646972656374604482015272081cddd85c081b9bdd081cdd5c1c1bdc9d1959606a1b6064820152608490fd5b600414806122f4575b6121a857604051633b136dc160e11b8152600490fd5b6001600160a01b03907f000000000000000000000000000000000000000000000000000000000000000090828216156122e25760405163095ea7b360e01b81526001600160a01b03929092166004830152602482015290602090829060449082906000907f0000000000000000000000000000000000000000000000000000000000000000165af1801561100f576122c3575b60405162461bcd60e51b815260206004820152605460248201527f456e68616e63656453776170526f757465723a2031696e63682072657175697260448201527f657320726f7574652063616c6c646174612066726f6d204150493b207573652060648201527331696e63682061676772656761746f722053444b60601b608482015260a490fd5b6122db9060203d6020116113685761135981836116fd565b508061223b565b604051631368c7cb60e21b8152600490fd5b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161515612192565b60405162461bcd60e51b815260206004820152602160248201527f456e68616e63656453776170526f757465723a20696e7465726e616c206f6e6c6044820152607960f81b6064820152608490fd5b9060018060a01b0391827f0000000000000000000000000000000000000000000000000000000000000000166000938185526020916004835260409182872091818616928389528552838820549384612412575b5050505050506123d890612a18565b6123e0575090565b906126de918281029281840414901517156123fe5750612710900490565b634e487b7160e01b81526011600452602490fd5b805194631f29a8cd60e31b865260048601528885602481867f0000000000000000000000000000000000000000000000000000000000000000165afa9485156126b55789968a9661259f575b50505060028551101580612593575b612478575b806123c9565b9397929691959094600019908198845b8b518110156124d45789898d8a826124a08684611947565b5116146124ca575b836124b291611947565b5116146124c2575b600101612488565b9950896124ba565b92955085926124a8565b509499509450945094509460001984141580612587575b80612574575b6124fd57808394612472565b81612509929350611947565b5192838102938185041490151715612560579061252591611947565b5190811561254c5704906126de918281029281840414901517156123fe5750612710900490565b634e487b7160e01b83526012600452602483fd5b634e487b7160e01b84526011600452602484fd5b5061257f8483611947565b5115156124f1565b506000198114156124eb565b5060028451101561246d565b9196509194503d808a843e6125b481846116fd565b82016060838203126126b15782516001600160401b03908181116126895784019382601f86011215612689578451946125ec8661190d565b956125f98b5197886116fd565b808752858088019160051b830101918583116126ad578601905b8282106126915750505083810151918211612689570181601f8201121561268d5780519061264c6126438361190d565b9951998a6116fd565b81895283808a019260051b820101928311612689578301905b82821061267a5750505050939238808061245e565b81518152908301908301612665565b8b80fd5b8a80fd5b815189811681036126a9578152908601908601612613565b8f80fd5b8e80fd5b8980fd5b81513d8b823e3d90fd5b60021115610d4257565b9492949391936000851561138b576001600160a01b039383851693841561136f576126f390612a18565b156129a957612701836126bf565b82156128bc575b6127129087612ca8565b93815b85518110156128aa5760ff61273561273061039f848a611947565b61164f565b5416156128a25761274961039f8288611947565b60408051635c56a98760e11b815291600491906127699083850190611668565b602488818501528b60448501528c606485015260209081856084818b305af1889581612873575b506127a45750505050506001905b01612715565b8d8510156127b957505050505060019061279e565b9091939c506127ce8d9c93959b9c338b612c65565b6127db61039f8c8c611947565b965a9560058910156128635750505093612860999795938c7f471477f254242ea7aad26ea1f3bd0deca99d48aa097615152bf8f64ec41f3bf2946080948a9861282761039f9e9c6126bf565b82519a8b528a015288015260608701527f00000000000000000000000000000000000000000000000000000000000000001694a4611947565b90565b634e487b7160e01b825260219052fd5b9095508281813d831161289b575b61288b81836116fd565b810103126101ff57519438612790565b503d612881565b60019061279e565b60405163081ceff360e41b8152600490fd5b9086340361295457847f000000000000000000000000000000000000000000000000000000000000000016803b1561295057818891600460405180948193630d0e30db60e41b83525af1801561294557612918575b5090612708565b6001600160401b03811161293157604052612712612911565b634e487b7160e01b82526041600452602482fd5b6040513d84823e3d90fd5b5080fd5b60405162461bcd60e51b815260206004820152602760248201527f456e68616e63656453776170526f757465723a2045544820616d6f756e74206d6044820152660d2e6dac2e8c6d60cb1b6064820152608490fd5b60405162461bcd60e51b815260206004820152602660248201527f456e68616e63656453776170526f757465723a20696e76616c696420737461626044820152653632b1b7b4b760d11b6064820152608490fd5b6005821015610d425752565b600019811461132c5760010190565b6001600160a01b039081167f000000000000000000000000000000000000000000000000000000000000000082168114918215612a83575b8215612a5b57505090565b7f00000000000000000000000000000000000000000000000000000000000000001614919050565b7f0000000000000000000000000000000000000000000000000000000000000000811682149250612a50565b3360009081527f17e306466f0d09a5f30cdc36b7cbca18c119dc1a4639b791678f67eca9a1571360205260409020547fa842d0039ede86e50de3e76d5357314d987325eb17d7eb32afe0fdec2be0031e9060ff1615612b0b5750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b80600052600060205260406000203360005260205260ff6040600020541615612b0b5750565b9060009180835282602052604083209160018060a01b03169182845260205260ff60408420541615600014612bc857808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff604084205416600014612bc85780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b600260015414612c53576002600155565b604051633ee5aeb560e01b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b03929092166024830152604480830193909352918152612ca691612ca16064836116fd565b61356d565b565b906005811015610d42578015158061355a575b613534575069021e19e0c9bab2400000811015613515575060005b600052602060038152604080600020815190612cf182611691565b825180818680855493848152018560005281600020936000905b80601f8301106132a157612e2795549184828210613287575b82821061326a575b82821061324d575b828210613230575b828210613214575b8282106131f7575b8282106131da575b8282106131bd575b8b8383106131a0575b50828210613183575b828210613166575b828210613149575b82821061312c575b82821061310f575b8282106130f2575b8282106130d5575b8282106130b8575b82821061309b575b82821061307e575b828210613061575b828210613044575b828210613027575b82821061300a575b828210612fed575b828210612fd0575b828210612fb3575b828210612f96575b828210612f79575b828210612f5c575b828210612f3f575b828210612f22575b5010612f0c575b50905003826116fd565b8252600180820184518092878354928381520192600052876000209160005b89828210612ef95750505050509181612e6560029360ff9503826116fd565b868501520154161515808383015280612eee575b612ee7575060a0815192612e8c846116e2565b6005845236908401376002612ea083611924565b52815160011015611931576000908201528051600210156119315760036060820152805160031015611931576001608082015280516004101561193157600460a082015290565b9150505190565b508051511515612e79565b8454865290940193928201928201612e46565b81612f199160f81c611668565b01879038612e1d565b84612f366001939660ff8760f01c16611668565b01930184612e16565b84612f536001939660ff8760e81c16611668565b01930184612e0e565b84612f706001939660ff8760e01c16611668565b01930184612e06565b84612f8d6001939660ff8760d81c16611668565b01930184612dfe565b84612faa6001939660ff8760d01c16611668565b01930184612df6565b84612fc76001939660ff8760c81c16611668565b01930184612dee565b84612fe46001939660ff8760c01c16611668565b01930184612de6565b846130016001939660ff8760b81c16611668565b01930184612dde565b8461301e6001939660ff8760b01c16611668565b01930184612dd6565b8461303b6001939660ff8760a81c16611668565b01930184612dce565b846130586001939660ff8760a01c16611668565b01930184612dc6565b846130756001939660ff8760981c16611668565b01930184612dbe565b846130926001939660ff8760901c16611668565b01930184612db6565b846130af6001939660ff8760881c16611668565b01930184612dae565b846130cc6001939660ff8760801c16611668565b01930184612da6565b846130e96001939660ff8760781c16611668565b01930184612d9e565b846131066001939660ff8760701c16611668565b01930184612d96565b846131236001939660ff8760681c16611668565b01930184612d8e565b846131406001939660ff8760601c16611668565b01930184612d86565b8461315d6001939660ff8760581c16611668565b01930184612d7e565b8461317a6001939660ff8760501c16611668565b01930184612d76565b846131976001939660ff8760481c16611668565b01930184612d6e565b946131b38160ff87600196991c16611668565b019301848b612d65565b846131d16001939660ff8760381c16611668565b01930184612d5c565b846131ee6001939660ff8760301c16611668565b01930184612d54565b8461320b6001939660ff8760281c16611668565b01930184612d4c565b846132276001939660ff87851c16611668565b01930184612d44565b846132446001939660ff8760181c16611668565b01930184612d3c565b846132616001939660ff8760101c16611668565b01930184612d34565b8461327e6001939660ff8760081c16611668565b01930184612d2c565b846132986001939660ff8716611668565b01930184612d24565b92916001919450610400906135058b6134f7866134d461336361348c8d5495613444896133fc60ff976132d6838a8d16611668565b6132e78184018a8d60081c16611668565b6132f88584018a8d60101c16611668565b888b610200606095613311878201858560181c16611668565b6133246080958585888501921c16611668565b6133ba60a09761333b898401878760281c16611668565b61337260c09b6133528d8601898960301c16611668565b60e09e8f8601898960381c16611668565b87876101008701921c16611668565b6133856101208401878760481c16611668565b6133986101408401878760501c16611668565b6133ab6101608401878760581c16611668565b85856101808501921c16611668565b6133cd6101a08201858560681c16611668565b6133e06101c08201858560701c16611668565b6133f36101e08201858560781c16611668565b01921c16611668565b61340f6102208c01888b60881c16611668565b6134226102408c01888b60901c16611668565b6134356102608c01888b60981c16611668565b86896102808d01921c16611668565b6134576102a08a01868960a81c16611668565b61346a6102c08a01868960b01c16611668565b61347d6102e08a01868960b81c16611668565b84876103008b01921c16611668565b61349f6103208801848760c81c16611668565b6134b26103408801848760d01c16611668565b6134c56103608801848760d81c16611668565b82856103808901921c16611668565b6134e76103a08601828560e81c16611668565b6103c08501908360f01c16611668565b6103e083019060f81c611668565b0194019201928492938992612d0b565b69152d02c7e14af6800000111561352d576001612cd6565b6002612cd6565b905061286060405191613546836116ac565b60018352602036818501376103ae83611924565b5060ff6135668261164f565b5416612cbb565b6000806135969260018060a01b03169360208151910182865af161358f61171e565b90836135df565b80519081151591826135c4575b50506135ac5750565b60249060405190635274afe760e01b82526004820152fd5b6135d792506020809183010191016118f5565b1538806135a3565b9061360657508051156135f457805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580613639575b613617575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561360f56fea2646970667358221220063b1897d754dea29746d3bd3b4b5fd38a33796524f8897dfe0385aaf534505664736f6c63430008160033",
|
|
"deployedBytecode": "0x608080604052600436101561001d575b50361561001b57600080fd5b005b60003560e01c90816301ffc9a7146115d057508063158274a51461158b5780631c28242a14611564578063248a9ca31461153557806326158136146114f25780632c76d7a6146114ad5780632f2ff15d1461146e5780632f48ab7d1461142957806336568abe146113e25780633e413bee1461139d5780633ee2afc1146110da5780633fc8cef3146110955780634db4a3521461106c5780634f214fd31461101b57806352e25bce14610f1c57806355470d8714610ed75780635559294314610eb257806359fbc2d214610a7757806363a6b1da14610a3257806365a5292e146109f75780636b366cb5146109bc5780636c04a824146109335780637574d9a0146109165780637c47ddd01461089d57806381cfa7a01461086757806382cb9ae8146108425780638f40e8f51461082557806391d14854146107d857806395e42ded14610781578063a217fddf14610765578063ac3af20814610720578063b8ad530e146106e7578063c5b35f63146106b8578063cb29ac5c14610653578063d547741f14610614578063d713da52146105e0578063de56631414610590578063e785f45b14610249578063f4b9fa75146102045763f6b9ec7c146101e2573861000f565b346101ff5760003660031901126101ff5760206040516101f48152f35b600080fd5b346101ff5760003660031901126101ff576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101ff5760403660031901126101ff57610262611623565b60405160243591610272826116e2565b6005825260209260a036858501376040519161028d836116e2565b6005835260a0368685013784600092600080526002825260ff604060002054166104fb575b60026000526002825260ff60406000205416610466575b60036000526002825260ff604060002054166103cf575b5050506102ec816119fb565b916102f6826119fb565b9360005b83811061038c5786858760405192839260408401604085528151809152826060860192019060005b818110610368575050508381038285015281808451928381520193019160005b82811061035157505050500390f35b835185528695509381019392810192600101610342565b919495509183808261037d6001948951611668565b01950191019186959492610322565b806103b36103a461039f60019486611947565b611a44565b6103ae8389611947565b6129fd565b6103bd8185611947565b516103c88289611947565b52016102fa565b60405163c5b35f6360e01b81526001600160a01b03939093166004840152602483015281604481305afa60009181610437575b5061040f575b84816102e0565b906104319160036104208387611947565b5261042b8285611947565b52612a09565b84610408565b9091508581813d831161045f575b61044f81836116fd565b810103126101ff57519086610402565b503d610445565b6040516329712de760e11b81526001600160a01b0384166004820152602481018290528281604481305afa600091816104ca575b506104a6575b506102c9565b936104c3919460026104b8838a611947565b5261042b8288611947565b92876104a0565b8481959293503d83116104f4575b6104e281836116fd565b810103126101ff57879251908961049a565b503d6104d8565b604051630e14121560e11b81526001600160a01b0384166004820152602481018290528281604481305afa6000918161055f575b5061053b575b506102b2565b91509250600061054a86611924565b5261055484611924565b528460019287610535565b8481959293503d8311610589575b61057781836116fd565b810103126101ff57879251908961052f565b503d61056d565b346101ff5760403660031901126101ff5760206105ab611623565b6105b3611639565b60018060a01b03809216600052600583528160406000209116600052825260406000205416604051908152f35b346101ff5760203660031901126101ff576004356000526003602052602060ff600260406000200154166040519015158152f35b346101ff5760403660031901126101ff5761001b600435610633611639565b9080600052600060205261064e600160406000200154612b29565b612bcd565b60a03660031901126101ff5760043560028110156101ff57610673611639565b6084359160058310156101ff576040926106b6926106a092610693612c42565b60643591604435916126c9565b6001809392935583519283526020830190611668565bf35b346101ff5760403660031901126101ff5760206106df6106d6611623565b60243590612375565b604051908152f35b346101ff5760803660031901126101ff5760043560058110156101ff576106df602091610712611639565b906064359160443591611a51565b346101ff5760003660031901126101ff576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101ff5760003660031901126101ff57602060405160008152f35b346101ff5760603660031901126101ff5761079a611623565b6107a2611639565b906107ab612aaf565b60018060a01b03809116600052600460205260406000209116600052602052604435604060002055600080f35b346101ff5760403660031901126101ff576107f1611639565b600435600052600060205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b346101ff5760003660031901126101ff576020604051610bb88152f35b346101ff5760003660031901126101ff57602060405169152d02c7e14af68000008152f35b346101ff5760203660031901126101ff5760043560058110156101ff5760ff61089160209261164f565b54166040519015158152f35b346101ff5760603660031901126101ff576108b6611623565b6108be611639565b6001600160a01b0360443581811693908490036101ff5781906108df612aaf565b166000526005602052604060002091166000526020526040600020906bffffffffffffffffffffffff60a01b825416179055600080f35b346101ff5760003660031901126101ff5760206040516127108152f35b346101ff5760403660031901126101ff5760043560058110156101ff57602435801515918282036101ff577f6be7b5903863679a655e520a2395f264a654b5663f6ceb97c8a878f8983534cb926109a860409361098e612aaf565b6109978461164f565b9060ff801983541691151516179055565b6109b483518093611668565b6020820152a1005b346101ff5760003660031901126101ff5760206040517f2e8b98eef02e8df3bd27d1270ded3bea3d14db99c5234c7b14001a7fff957bcc8152f35b346101ff5760003660031901126101ff5760206040517fa842d0039ede86e50de3e76d5357314d987325eb17d7eb32afe0fdec2be0031e8152f35b346101ff5760003660031901126101ff576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101ff5760403660031901126101ff576024356001600160401b0381116101ff57366023820112156101ff576001600160401b038160040135116101ff576024816004013560051b8201013681116101ff57610ad2612aaf565b60036004351015610e5b57816004013515610e0a57604051610af3816116c7565b6000815260405191610b0483611691565b610b11846004013561190d565b90610b1f60405192836116fd565b600485013582526024850190602083015b818310610df1575050508252602082015260016040820152600435600052600360205260406000209080518051906001600160401b038211610cd557600160401b8211610cd5576020908454838655808410610da5575b5001908360005260206000209060005b8160051c8110610d585750601f198116808203610ceb575b50505050600182016020820151908151916001600160401b038311610cd557600160401b8311610cd5576020908254848455808510610cb8575b500190600052602060002060005b838110610ca45786610c1f8760026040890151151591019060ff801983541691151516179055565b6040516040810160043582526040602083015282600401359052606081019160248101906000905b80600401358210610c7a577f266370fe8933b3766025a9b1de987798164b818824e57c1057eeb8f9ae71ce3e84860385a1005b90919384359060058210156101ff57602081610c998293600195611668565b019501920190610c47565b600190602084519401938184015501610bf7565b610ccf908460005285846000209182019101611a2d565b87610be9565b634e487b7160e01b600052604160045260246000fd5b9260009360005b8184038110610d0c5750505060051c015583808080610baf565b90919485516005811015610d4257610d38602091846001949060ff809160031b9316831b921b19161790565b9601929101610cf2565b634e487b7160e01b600052602160045260246000fd5b6000805b60208110610d71575083820155600101610b97565b949081516005811015610d4257610d9c602091886001949060ff809160031b9316831b921b19161790565b92019501610d5c565b610dd1908660005283600020601f80870160051c82019281881680610dd7575b500160051c0190611a2d565b86610b87565b60001990818601918254918a0360031b1c1690558b610dc5565b823560058110156101ff57815260209283019201610b30565b60405162461bcd60e51b815260206004820152602360248201527f456e68616e63656453776170526f757465723a20656d7074792070726f76696460448201526265727360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602960248201527f456e68616e63656453776170526f757465723a20696e76616c69642073697a656044820152682063617465676f727960b81b6064820152608490fd5b346101ff5760003660031901126101ff57602060405169021e19e0c9bab24000008152f35b346101ff5760003660031901126101ff576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101ff5760403660031901126101ff57610f956020610f3a611623565b60405163137dbaf360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015290911660248083019190915235604482015291829081906064820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa801561100f57600090610fdc575b602090604051908152f35b506020813d602011611007575b81610ff6602093836116fd565b810103126101ff5760209051610fd1565b3d9150610fe9565b6040513d6000823e3d90fd5b346101ff5760403660031901126101ff57611034611623565b61103c611639565b9060018060a01b038091166000526004602052604060002091166000526020526020604060002054604051908152f35b346101ff5760003660031901126101ff576006546040516001600160a01b039091168152602090f35b346101ff5760003660031901126101ff576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101ff5760803660031901126101ff576110f3611623565b6110fb611639565b906044359160643561110b612c42565b831561138b576001600160a01b0392831680158015611381575b61136f578060005260209460058652846040600020941693846000528652846040600020541691611157831515611892565b6040516323b872dd60e01b88820152336024820152306044820152606480820184905281526111919061118b6084826116fd565b8261356d565b60405163095ea7b360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b038116600483015260248201849052919088816044816000865af1801561100f57611342575b50604051936111fa856116ac565b6001855288368187013761120d85611924565b5261012c420180421161132c578894611275946040519361122d85611675565b8452888785015260408401528660608401526080830152600060a0830152600060c083015260e08201526000604051978880958194630b5e801360e01b83526004830161195b565b0393165af192831561100f576000936112fd575b5082106112a8578161129c913390612c65565b60018055604051908152f35b60405162461bcd60e51b815260048101849052602760248201527f456e68616e63656453776170526f757465723a20696e73756666696369656e74604482015266081bdd5d1c1d5d60ca1b6064820152608490fd5b9092508381813d8311611325575b61131581836116fd565b810103126101ff57519184611289565b503d61130b565b634e487b7160e01b600052601160045260246000fd5b61136190893d8b11611368575b61135981836116fd565b8101906118f5565b50886111ec565b503d61134f565b60405163d92e233d60e01b8152600490fd5b5083831615611125565b604051631f2a200560e01b8152600490fd5b346101ff5760003660031901126101ff576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101ff5760403660031901126101ff576113fb611639565b336001600160a01b038216036114175761001b90600435612bcd565b60405163334bd91960e11b8152600490fd5b346101ff5760003660031901126101ff576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101ff5760403660031901126101ff5761001b60043561148d611639565b908060005260006020526114a8600160406000200154612b29565b612b4f565b346101ff5760003660031901126101ff576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101ff5760203660031901126101ff5761150b611623565b611513612aaf565b600680546001600160a01b0319166001600160a01b0392909216919091179055005b346101ff5760203660031901126101ff5760043560005260006020526020600160406000200154604051908152f35b346101ff5760403660031901126101ff5760206106df611582611623565b6024359061175d565b346101ff5760003660031901126101ff576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101ff5760203660031901126101ff576004359063ffffffff60e01b82168092036101ff57602091637965db0b60e01b8114908115611612575b5015158152f35b6301ffc9a760e01b1490508361160b565b600435906001600160a01b03821682036101ff57565b602435906001600160a01b03821682036101ff57565b6005811015610d42576000526002602052604060002090565b906005821015610d425752565b61010081019081106001600160401b03821117610cd557604052565b606081019081106001600160401b03821117610cd557604052565b604081019081106001600160401b03821117610cd557604052565b602081019081106001600160401b03821117610cd557604052565b60c081019081106001600160401b03821117610cd557604052565b90601f801991011681019081106001600160401b03821117610cd557604052565b3d15611758573d906001600160401b038211610cd5576040519161174c601f8201601f1916602001846116fd565b82523d6000602084013e565b606090565b6006546001600160a01b0390811680151580611883575b6117aa575b505061178490612a18565b61178e5750600090565b6126de9081810291818304149015171561132c57612710900490565b60405191602083019063f7729d4360e01b8252807f000000000000000000000000000000000000000000000000000000000000000016602485015284166044840152610bb860648401528460848401526000928360a482015260a4815260e081018181106001600160401b0382111761186f576040525183928392905afa9061183161171e565b9180611863575b15611779576020828051810103126118605750602001518061185a5780611779565b91505090565b80fd5b50602082511015611838565b634e487b7160e01b85526041600452602485fd5b5061188d83612a18565b611774565b1561189957565b60405162461bcd60e51b815260206004820152602e60248201527f456e68616e63656453776170526f757465723a20446f646f657820706f6f6c2060448201526d1b9bdd0818dbdb999a59dd5c995960921b6064820152608490fd5b908160209103126101ff575180151581036101ff5790565b6001600160401b038111610cd55760051b60200190565b8051156119315760200190565b634e487b7160e01b600052603260045260246000fd5b80518210156119315760209160051b010190565b602080825261012082019260018060a01b03808251168385015280838301511660408501526040820151606085015260608201516080850152608082015194610100938460a087015286518092528061014087019701926000905b8382106119e25750505050508060a060e092015160c085015260c0810151151582850152015191015290565b84518116895297820197938201936001909101906119b6565b90611a058261190d565b611a1260405191826116fd565b8281528092611a23601f199161190d565b0190602036910137565b818110611a38575050565b60008155600101611a2d565b516005811015610d425790565b92919092303303612326576005811015610d425780611c55575060405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166004820152602481018290526020818060448101038160007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561100f57611c36575b5061012c4201421161132c5760405192611b0a84611675565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811685529081166020808601918252610bb86040808801918252306060890190815261012c420160808a0190815260a08a0197885260c08a01988952600060e08b01818152935163414bf38960e01b81529a51881660048c01529551871660248b0152925162ffffff1660448a0152518516606489015290516084880152935160a4870152935160c48601529151811660e48501528391610104918391907f0000000000000000000000000000000000000000000000000000000000000000165af190811561100f57600091611c07575090565b90506020813d602011611c2e575b81611c22602093836116fd565b810103126101ff575190565b3d9150611c15565b611c4e9060203d6020116113685761135981836116fd565b5038611af1565b91929160028103611e2b575060018060a01b0391827f000000000000000000000000000000000000000000000000000000000000000016916000928084526020926005845260409686888720921691828752855286888720541690611cbb821515611892565b885163095ea7b360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b038116600483015260248201879052959087816044818c8a5af18015611e2157611e04575b50895192611d21846116ac565b60018452873681860137611d3484611924565b5261012c420193844211611df05791611d9a959391889795938c5195611d5987611675565b8652888601528b850152606084015260808301528660a08301528660c083015260e0820152858851978880958194630b5e801360e01b83526004830161195b565b0393165af1938415611de557508193611db4575b50505090565b9091809350813d8311611dde575b611dcc81836116fd565b81010312611860575051388080611dae565b503d611dc2565b51913d9150823e3d90fd5b634e487b7160e01b89526011600452602489fd5b611e1a90883d8a116113685761135981836116fd565b5038611d14565b8b513d8b823e3d90fd5b9092906003810361211e575060018060a01b037f0000000000000000000000000000000000000000000000000000000000000000169283600052600460205260406000209260018060a01b031692836000526020526040600020549283156120c95760405163095ea7b360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660048201526024810183905260208160448160008a5af1801561100f576120aa575b50604051946001600160401b039460c0870186811188821017610cd557604052865260006020870152604086015260608501526080840152604051611f2a816116c7565b6000815260a0840152604051916080830190811183821017610cd557604052308252600060208301523060408301526000606083015261012c4201421161132c579160a0926040519384926352bbbe2960e01b845260e06004850152805160e48501526020810151611f9b816126bf565b61010485015260408101516000196001841b019081166101248601526060820151166101448501526080810151610164850152015160c061018484015280516101a48401819052919060005b83811061209157505060006101c4838501810182905285516001600160a01b039081166024870152602080880151151560448801526040880151821660648801526060909701511515608487015260a486019390935261012c420160c4860152601f909301601f191684018490039092019183917f0000000000000000000000000000000000000000000000000000000000000000165af190811561100f57600091611c07575090565b60208282018101516101c4898401015287955001611fe7565b6120c29060203d6020116113685761135981836116fd565b5038611ee6565b60405162461bcd60e51b815260206004820152602760248201527f456e68616e63656453776170526f757465723a20706f6f6c206e6f7420636f6e604482015266199a59dd5c995960ca1b6064820152608490fd5b8390600181036121895760405162461bcd60e51b815260206004820152603360248201527f456e68616e63656453776170526f757465723a20437572766520646972656374604482015272081cddd85c081b9bdd081cdd5c1c1bdc9d1959606a1b6064820152608490fd5b600414806122f4575b6121a857604051633b136dc160e11b8152600490fd5b6001600160a01b03907f000000000000000000000000000000000000000000000000000000000000000090828216156122e25760405163095ea7b360e01b81526001600160a01b03929092166004830152602482015290602090829060449082906000907f0000000000000000000000000000000000000000000000000000000000000000165af1801561100f576122c3575b60405162461bcd60e51b815260206004820152605460248201527f456e68616e63656453776170526f757465723a2031696e63682072657175697260448201527f657320726f7574652063616c6c646174612066726f6d204150493b207573652060648201527331696e63682061676772656761746f722053444b60601b608482015260a490fd5b6122db9060203d6020116113685761135981836116fd565b508061223b565b604051631368c7cb60e21b8152600490fd5b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161515612192565b60405162461bcd60e51b815260206004820152602160248201527f456e68616e63656453776170526f757465723a20696e7465726e616c206f6e6c6044820152607960f81b6064820152608490fd5b9060018060a01b0391827f0000000000000000000000000000000000000000000000000000000000000000166000938185526020916004835260409182872091818616928389528552838820549384612412575b5050505050506123d890612a18565b6123e0575090565b906126de918281029281840414901517156123fe5750612710900490565b634e487b7160e01b81526011600452602490fd5b805194631f29a8cd60e31b865260048601528885602481867f0000000000000000000000000000000000000000000000000000000000000000165afa9485156126b55789968a9661259f575b50505060028551101580612593575b612478575b806123c9565b9397929691959094600019908198845b8b518110156124d45789898d8a826124a08684611947565b5116146124ca575b836124b291611947565b5116146124c2575b600101612488565b9950896124ba565b92955085926124a8565b509499509450945094509460001984141580612587575b80612574575b6124fd57808394612472565b81612509929350611947565b5192838102938185041490151715612560579061252591611947565b5190811561254c5704906126de918281029281840414901517156123fe5750612710900490565b634e487b7160e01b83526012600452602483fd5b634e487b7160e01b84526011600452602484fd5b5061257f8483611947565b5115156124f1565b506000198114156124eb565b5060028451101561246d565b9196509194503d808a843e6125b481846116fd565b82016060838203126126b15782516001600160401b03908181116126895784019382601f86011215612689578451946125ec8661190d565b956125f98b5197886116fd565b808752858088019160051b830101918583116126ad578601905b8282106126915750505083810151918211612689570181601f8201121561268d5780519061264c6126438361190d565b9951998a6116fd565b81895283808a019260051b820101928311612689578301905b82821061267a5750505050939238808061245e565b81518152908301908301612665565b8b80fd5b8a80fd5b815189811681036126a9578152908601908601612613565b8f80fd5b8e80fd5b8980fd5b81513d8b823e3d90fd5b60021115610d4257565b9492949391936000851561138b576001600160a01b039383851693841561136f576126f390612a18565b156129a957612701836126bf565b82156128bc575b6127129087612ca8565b93815b85518110156128aa5760ff61273561273061039f848a611947565b61164f565b5416156128a25761274961039f8288611947565b60408051635c56a98760e11b815291600491906127699083850190611668565b602488818501528b60448501528c606485015260209081856084818b305af1889581612873575b506127a45750505050506001905b01612715565b8d8510156127b957505050505060019061279e565b9091939c506127ce8d9c93959b9c338b612c65565b6127db61039f8c8c611947565b965a9560058910156128635750505093612860999795938c7f471477f254242ea7aad26ea1f3bd0deca99d48aa097615152bf8f64ec41f3bf2946080948a9861282761039f9e9c6126bf565b82519a8b528a015288015260608701527f00000000000000000000000000000000000000000000000000000000000000001694a4611947565b90565b634e487b7160e01b825260219052fd5b9095508281813d831161289b575b61288b81836116fd565b810103126101ff57519438612790565b503d612881565b60019061279e565b60405163081ceff360e41b8152600490fd5b9086340361295457847f000000000000000000000000000000000000000000000000000000000000000016803b1561295057818891600460405180948193630d0e30db60e41b83525af1801561294557612918575b5090612708565b6001600160401b03811161293157604052612712612911565b634e487b7160e01b82526041600452602482fd5b6040513d84823e3d90fd5b5080fd5b60405162461bcd60e51b815260206004820152602760248201527f456e68616e63656453776170526f757465723a2045544820616d6f756e74206d6044820152660d2e6dac2e8c6d60cb1b6064820152608490fd5b60405162461bcd60e51b815260206004820152602660248201527f456e68616e63656453776170526f757465723a20696e76616c696420737461626044820152653632b1b7b4b760d11b6064820152608490fd5b6005821015610d425752565b600019811461132c5760010190565b6001600160a01b039081167f000000000000000000000000000000000000000000000000000000000000000082168114918215612a83575b8215612a5b57505090565b7f00000000000000000000000000000000000000000000000000000000000000001614919050565b7f0000000000000000000000000000000000000000000000000000000000000000811682149250612a50565b3360009081527f17e306466f0d09a5f30cdc36b7cbca18c119dc1a4639b791678f67eca9a1571360205260409020547fa842d0039ede86e50de3e76d5357314d987325eb17d7eb32afe0fdec2be0031e9060ff1615612b0b5750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b80600052600060205260406000203360005260205260ff6040600020541615612b0b5750565b9060009180835282602052604083209160018060a01b03169182845260205260ff60408420541615600014612bc857808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff604084205416600014612bc85780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b600260015414612c53576002600155565b604051633ee5aeb560e01b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b03929092166024830152604480830193909352918152612ca691612ca16064836116fd565b61356d565b565b906005811015610d42578015158061355a575b613534575069021e19e0c9bab2400000811015613515575060005b600052602060038152604080600020815190612cf182611691565b825180818680855493848152018560005281600020936000905b80601f8301106132a157612e2795549184828210613287575b82821061326a575b82821061324d575b828210613230575b828210613214575b8282106131f7575b8282106131da575b8282106131bd575b8b8383106131a0575b50828210613183575b828210613166575b828210613149575b82821061312c575b82821061310f575b8282106130f2575b8282106130d5575b8282106130b8575b82821061309b575b82821061307e575b828210613061575b828210613044575b828210613027575b82821061300a575b828210612fed575b828210612fd0575b828210612fb3575b828210612f96575b828210612f79575b828210612f5c575b828210612f3f575b828210612f22575b5010612f0c575b50905003826116fd565b8252600180820184518092878354928381520192600052876000209160005b89828210612ef95750505050509181612e6560029360ff9503826116fd565b868501520154161515808383015280612eee575b612ee7575060a0815192612e8c846116e2565b6005845236908401376002612ea083611924565b52815160011015611931576000908201528051600210156119315760036060820152805160031015611931576001608082015280516004101561193157600460a082015290565b9150505190565b508051511515612e79565b8454865290940193928201928201612e46565b81612f199160f81c611668565b01879038612e1d565b84612f366001939660ff8760f01c16611668565b01930184612e16565b84612f536001939660ff8760e81c16611668565b01930184612e0e565b84612f706001939660ff8760e01c16611668565b01930184612e06565b84612f8d6001939660ff8760d81c16611668565b01930184612dfe565b84612faa6001939660ff8760d01c16611668565b01930184612df6565b84612fc76001939660ff8760c81c16611668565b01930184612dee565b84612fe46001939660ff8760c01c16611668565b01930184612de6565b846130016001939660ff8760b81c16611668565b01930184612dde565b8461301e6001939660ff8760b01c16611668565b01930184612dd6565b8461303b6001939660ff8760a81c16611668565b01930184612dce565b846130586001939660ff8760a01c16611668565b01930184612dc6565b846130756001939660ff8760981c16611668565b01930184612dbe565b846130926001939660ff8760901c16611668565b01930184612db6565b846130af6001939660ff8760881c16611668565b01930184612dae565b846130cc6001939660ff8760801c16611668565b01930184612da6565b846130e96001939660ff8760781c16611668565b01930184612d9e565b846131066001939660ff8760701c16611668565b01930184612d96565b846131236001939660ff8760681c16611668565b01930184612d8e565b846131406001939660ff8760601c16611668565b01930184612d86565b8461315d6001939660ff8760581c16611668565b01930184612d7e565b8461317a6001939660ff8760501c16611668565b01930184612d76565b846131976001939660ff8760481c16611668565b01930184612d6e565b946131b38160ff87600196991c16611668565b019301848b612d65565b846131d16001939660ff8760381c16611668565b01930184612d5c565b846131ee6001939660ff8760301c16611668565b01930184612d54565b8461320b6001939660ff8760281c16611668565b01930184612d4c565b846132276001939660ff87851c16611668565b01930184612d44565b846132446001939660ff8760181c16611668565b01930184612d3c565b846132616001939660ff8760101c16611668565b01930184612d34565b8461327e6001939660ff8760081c16611668565b01930184612d2c565b846132986001939660ff8716611668565b01930184612d24565b92916001919450610400906135058b6134f7866134d461336361348c8d5495613444896133fc60ff976132d6838a8d16611668565b6132e78184018a8d60081c16611668565b6132f88584018a8d60101c16611668565b888b610200606095613311878201858560181c16611668565b6133246080958585888501921c16611668565b6133ba60a09761333b898401878760281c16611668565b61337260c09b6133528d8601898960301c16611668565b60e09e8f8601898960381c16611668565b87876101008701921c16611668565b6133856101208401878760481c16611668565b6133986101408401878760501c16611668565b6133ab6101608401878760581c16611668565b85856101808501921c16611668565b6133cd6101a08201858560681c16611668565b6133e06101c08201858560701c16611668565b6133f36101e08201858560781c16611668565b01921c16611668565b61340f6102208c01888b60881c16611668565b6134226102408c01888b60901c16611668565b6134356102608c01888b60981c16611668565b86896102808d01921c16611668565b6134576102a08a01868960a81c16611668565b61346a6102c08a01868960b01c16611668565b61347d6102e08a01868960b81c16611668565b84876103008b01921c16611668565b61349f6103208801848760c81c16611668565b6134b26103408801848760d01c16611668565b6134c56103608801848760d81c16611668565b82856103808901921c16611668565b6134e76103a08601828560e81c16611668565b6103c08501908360f01c16611668565b6103e083019060f81c611668565b0194019201928492938992612d0b565b69152d02c7e14af6800000111561352d576001612cd6565b6002612cd6565b905061286060405191613546836116ac565b60018352602036818501376103ae83611924565b5060ff6135668261164f565b5416612cbb565b6000806135969260018060a01b03169360208151910182865af161358f61171e565b90836135df565b80519081151591826135c4575b50506135ac5750565b60249060405190635274afe760e01b82526004820152fd5b6135d792506020809183010191016118f5565b1538806135a3565b9061360657508051156135f457805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580613639575b613617575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561360f56fea2646970667358221220063b1897d754dea29746d3bd3b4b5fd38a33796524f8897dfe0385aaf534505664736f6c63430008160033",
|
|
"linkReferences": {},
|
|
"deployedLinkReferences": {}
|
|
}
|