Files
smom-dbis-138/artifacts/contracts/bridge/adapters/non-evm/TONAdapter.sol/TONAdapter.json
2026-03-02 12:14:09 -08:00

702 lines
37 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "TONAdapter",
"sourceName": "contracts/bridge/adapters/non-evm/TONAdapter.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "admin",
"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": "ReentrancyGuardReentrantCall",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "SafeERC20FailedOperation",
"type": "error"
},
{
"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": "bytes32",
"name": "requestId",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "string",
"name": "txHash",
"type": "string"
}
],
"name": "TONBridgeConfirmed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "destination",
"type": "string"
}
],
"name": "TONBridgeInitiated",
"type": "event"
},
{
"inputs": [],
"name": "BRIDGE_OPERATOR_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": "ORACLE_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "destination",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "recipient",
"type": "bytes"
}
],
"name": "bridge",
"outputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "bridgeRequests",
"outputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "destinationData",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
},
{
"internalType": "enum IChainAdapter.BridgeStatus",
"name": "status",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "createdAt",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "completedAt",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
}
],
"name": "cancelBridge",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
},
{
"internalType": "string",
"name": "txHash",
"type": "string"
}
],
"name": "confirmTransaction",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "destination",
"type": "bytes"
}
],
"name": "estimateFee",
"outputs": [
{
"internalType": "uint256",
"name": "fee",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
}
],
"name": "getBridgeStatus",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "destinationData",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
},
{
"internalType": "enum IChainAdapter.BridgeStatus",
"name": "status",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "createdAt",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "completedAt",
"type": "uint256"
}
],
"internalType": "struct IChainAdapter.BridgeRequest",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getChainIdentifier",
"outputs": [
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"internalType": "string",
"name": "identifier",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "getChainType",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"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": "isActive",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "nonces",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"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": "bool",
"name": "_isActive",
"type": "bool"
}
],
"name": "setIsActive",
"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": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "txHashes",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "destination",
"type": "bytes"
}
],
"name": "validateDestination",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "pure",
"type": "function"
}
],
"bytecode": "0x6080346200009957601f620017d638819003918201601f19168301916001600160401b038311848410176200009e578084926020946040528339810103126200009957516001600160a01b038116810362000099576200007b90600180556200006881620000b4565b50620000748162000134565b50620001d6565b50600160ff1960025416176002556040516115429081620002748239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b031660008181527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205490919060ff166200013057818052816020526040822081835260205260408220600160ff198254161790553391600080516020620017b68339815191528180a4600190565b5090565b6001600160a01b031660008181527f0d4654aaffc87c2c9a3fd6a99770bc308fad799420104834ddcca8973d00903960205260408120549091907f7045adfe67d5f94dbfddcdb901e44bef55baacabb398c7cddda1bfd7620b15689060ff16620001d157808352826020526040832082845260205260408320600160ff19825416179055600080516020620017b6833981519152339380a4600190565b505090565b6001600160a01b031660008181527fa629f6981c2f6895a67dc766e8e03ff72d04a413d0d8773a3ca56e9e474032c160205260408120549091907f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef19060ff16620001d157808352826020526040832082845260205260408320600160ff19825416179055600080516020620017b6833981519152339380a460019056fe608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a714610fff5750806307e2cea514610fc457806322f3e2d414610fa1578063248a9ca314610f725780632750fc7814610eeb5780632b368ac214610e9f5780632f2ff15d14610e6057806336568abe14610e195780634be40fd114610dde57806360b4141114610d345780636cb4dfc014610cf657806370cf467114610ac85780637ecebe0014610a8e5780638d7514151461094a57806391d14854146108fd578063941b9682146108aa57806397e67c3b14610866578063a217fddf1461084a578063a8734a1314610770578063d046b4e2146105f8578063d547741f146105b75763f33ffba31461011157600080fd5b60803660031901126105b257610125611052565b6044356001600160401b0381116105b25761014490369060040161107e565b916064356001600160401b0381116105b25761016490369060040161107e565b50506002600154146105a057600260015560ff60025416156105685760243515610535576101933684846112a8565b3360005260056020526040600020805490600019821461051f5760018201905561021560a860405180933360601b60208301526bffffffffffffffffffffffff198760601b166034830152602435604883015285516101f9816068850160208a016111e2565b820190606882015242608882015203608881018452018261111c565b8051602090910120926001600160a01b0383166104bb57602435341061048357610268905b60405195610247876110e5565b3387526001600160a01b0385166020880152602435604088015236916112a8565b6060850152826080850152600160a08501524260c0850152600060e0850152826000526003602052604060002060018060a01b038551166bffffffffffffffffffffffff60a01b9081835416178255600182019060018060a01b03602088015116908254161790556040850151600282015560608501518051906001600160401b03821161046d5761030a8261030160038601546110ab565b60038601611237565b602090601f83116001146103fb5761033b9291600091836103f0575b50508160011b916000199060031b1c19161790565b60038201555b608085015160048201556005810160a086015160068110156103da5760209660079260e09260ff8019835416911617905560c081015160068501550151910155827f3e60eaa0cba76c67c5df97086220587ff7eed24c2f1ff4ba6eb1e36afd28333660405193602435855260408786015260018060a01b031693806103cb33956040830190611205565b0390a460018055604051908152f35b634e487b7160e01b600052602160045260246000fd5b015190503880610326565b9190600384016000526020600020906000935b601f1984168510610452576001945083601f19811610610439575b505050811b016003820155610341565b015160001960f88460031b161c19169055388080610429565b8181015183556020948501946001909301929091019061040e565b634e487b7160e01b600052604160045260246000fd5b60405162461bcd60e51b815260206004820152601060248201526f092dce6eaccccd2c6d2cadce8408aa8960831b6044820152606490fd5b604051906323b872dd60e01b60208301523360248301523060448301526024356064830152606482528160a08101106001600160401b0360a08401111761046d5760a082016040526102689161051a906001600160a01b0386166113f8565b61023a565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601060248201526f4164617074657220696e61637469766560801b6044820152606490fd5b604051633ee5aeb560e01b8152600490fd5b600080fd5b346105b25760403660031901126105b2576105f66004356105d6611068565b908060005260006020526105f16001604060002001546112df565b611383565b005b346105b2576020806003193601126105b257600435600052600381526040600020600581019060ff82541660068110156103da578015908115610765575b50156107305780546001600160a01b03908116338190036106f6576001830154821690816106a957505060008083600282959483955416910154908282156106a0575bf115610694575b805460ff1916600517905560405160018152f35b6040513d6000823e3d90fd5b506108fc610679565b915091600201546040519163a9059cbb60e01b86840152602483015260448201526044815260808101918183106001600160401b0384111761046d576106f1926040526113f8565b610680565b60405162461bcd60e51b81526004810186905260126024820152712737ba103932b8bab2b9ba1039b2b73232b960711b6044820152606490fd5b60405162461bcd60e51b815260048101849052600d60248201526c10d85b9b9bdd0818d85b98d95b609a1b6044820152606490fd5b600191501484610636565b346105b2576020806003193601126105b257600435600052600481526040600020906040519182600082546107a4816110ab565b93848452600191866001821691826000146108285750506001146107e9575b50506107d19250038361111c565b6107e5604051928284938452830190611205565b0390f35b85925060005281600020906000915b8583106108105750506107d1935082010185806107c3565b805483890185015287945086939092019181016107f8565b92509350506107d194915060ff191682840152151560051b82010185806107c3565b346105b25760003660031901126105b257602060405160008152f35b346105b25760003660031901126105b2576107e560405161088681611101565b60038152622a27a760e91b6020820152604051918291602083526020830190611205565b346105b25760003660031901126105b2576107e56040516108ca81611101565b600b81526a1513d38b53585a5b9b995d60aa1b602082015260405191829160008352604060208401526040830190611205565b346105b25760403660031901126105b257610916611068565b600435600052600060205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b346105b2576020806003193601126105b257600060e060405161096c816110e5565b82815282848201528260408201526060808201528260808201528260a08201528260c0820152015260043560005260038152604060002090604051906109b1826110e5565b82546001600160a01b0390811683526001840154811682840190815260028501546040850190815291949092906109ea6003820161113d565b93606086019485526004820154946080870195865260ff6005840154169460a088019560068110156103da57610a7f938a918852600760068701549660c08c0197885201549660e08b019788526040519b8c9b828d525116908b0152511660408901525160608801525193610a6d610100958660808a0152610120890190611205565b955160a08801525160c087019061122a565b5160e085015251908301520390f35b346105b25760203660031901126105b2576001600160a01b03610aaf611052565b1660005260056020526020604060002054604051908152f35b346105b25760403660031901126105b2576004356001600160401b036024358181116105b257610afc90369060040161107e565b3360009081527fa629f6981c2f6895a67dc766e8e03ff72d04a413d0d8773a3ca56e9e474032c160209081526040909120549193917f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef19060ff1615610cd857508460005260038152604060002090600582019182549260ff84169360068510156103da576001809503610ca25760029060ff19161790556007429101558560005260048152604060002092851161046d578491610bc383610bbd86546110ab565b86611237565b600091601f8411600114610c3d5750509080610bf592600091610c32575b508160011b916000199060031b1c19161790565b90555b816040519283928337810160008152039020907f1b2b8af99e262e15d1a81e1dcc8ccf3ba3f5cbf9b46de3e24fe15a88bc39e83a600080a3005b905084013587610be1565b60008581528181209492601f19841692905b838310610c885750505010610c6e575b5050600183811b019055610bf8565b830135600019600386901b60f8161c191690558480610c5f565b888601358755958601959481019489945091810191610c4f565b60405162461bcd60e51b815260048101859052600e60248201526d496e76616c69642073746174757360901b6044820152606490fd5b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346105b25760203660031901126105b2576004356001600160401b0381116105b257610d28602091369060040161107e565b90506040519015158152f35b346105b25760203660031901126105b2576004356000526003602052604060002060018060a01b0390818154169160018201541690600281015492610d7b6003830161113d565b91610dd0600482015493610dc060ff600585015416916007600686015495015495604051998a99610100928b5260208b015260408a01528060608a0152880190611205565b94608087015260a086019061122a565b60c084015260e08301520390f35b346105b25760003660031901126105b25760206040517f7045adfe67d5f94dbfddcdb901e44bef55baacabb398c7cddda1bfd7620b15688152f35b346105b25760403660031901126105b257610e32611068565b336001600160a01b03821603610e4e576105f690600435611383565b60405163334bd91960e11b8152600490fd5b346105b25760403660031901126105b2576105f6600435610e7f611068565b90806000526000602052610e9a6001604060002001546112df565b611305565b346105b25760603660031901126105b257610eb8611052565b506044356001600160401b0381116105b257610ed890369060040161107e565b5050602060405166038d7ea4c680008152f35b346105b25760203660031901126105b2576004358015158091036105b2573360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1615610f535760ff801960025416911617600255600080f35b60405163e2517d3f60e01b815233600482015260006024820152604490fd5b346105b25760203660031901126105b25760043560005260006020526020600160406000200154604051908152f35b346105b25760003660031901126105b257602060ff600254166040519015158152f35b346105b25760003660031901126105b25760206040517f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef18152f35b346105b25760203660031901126105b2576004359063ffffffff60e01b82168092036105b257602091637965db0b60e01b8114908115611041575b5015158152f35b6301ffc9a760e01b1490508361103a565b600435906001600160a01b03821682036105b257565b602435906001600160a01b03821682036105b257565b9181601f840112156105b2578235916001600160401b0383116105b257602083818601950101116105b257565b90600182811c921680156110db575b60208310146110c557565b634e487b7160e01b600052602260045260246000fd5b91607f16916110ba565b61010081019081106001600160401b0382111761046d57604052565b604081019081106001600160401b0382111761046d57604052565b90601f801991011681019081106001600160401b0382111761046d57604052565b90604051918260008254611150816110ab565b908184526020946001916001811690816000146111c05750600114611181575b50505061117f9250038361111c565b565b600090815285812095935091905b8183106111a857505061117f9350820101388080611170565b8554888401850152948501948794509183019161118f565b9250505061117f94925060ff191682840152151560051b820101388080611170565b60005b8381106111f55750506000910152565b81810151838201526020016111e5565b9060209161121e815180928185528580860191016111e2565b601f01601f1916010190565b9060068210156103da5752565b90601f811161124557505050565b6000916000526020600020906020601f850160051c83019410611283575b601f0160051c01915b82811061127857505050565b81815560010161126c565b9092508290611263565b6001600160401b03811161046d57601f01601f191660200190565b9291926112b48261128d565b916112c2604051938461111c565b8294818452818301116105b2578281602093846000960137010152565b80600052600060205260406000203360005260205260ff6040600020541615610cd85750565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054161560001461137e57808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff60408420541660001461137e5780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b60018060a01b031690611442600080836020829551910182875af13d156114a1573d906114248261128d565b91611432604051938461111c565b82523d84602084013e5b846114a9565b908151918215159283611472575b50505061145a5750565b60249060405190635274afe760e01b82526004820152fd5b81929350906020918101031261149d57602001519081159182150361149a5750388080611450565b80fd5b5080fd5b60609061143c565b906114d057508051156114be57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580611503575b6114e1575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156114d956fea2646970667358221220c95258628fcf37157b79c543a94060a744153ca2adea1952c4da37b9054e9e5764736f6c634300081600332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
"deployedBytecode": "0x608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a714610fff5750806307e2cea514610fc457806322f3e2d414610fa1578063248a9ca314610f725780632750fc7814610eeb5780632b368ac214610e9f5780632f2ff15d14610e6057806336568abe14610e195780634be40fd114610dde57806360b4141114610d345780636cb4dfc014610cf657806370cf467114610ac85780637ecebe0014610a8e5780638d7514151461094a57806391d14854146108fd578063941b9682146108aa57806397e67c3b14610866578063a217fddf1461084a578063a8734a1314610770578063d046b4e2146105f8578063d547741f146105b75763f33ffba31461011157600080fd5b60803660031901126105b257610125611052565b6044356001600160401b0381116105b25761014490369060040161107e565b916064356001600160401b0381116105b25761016490369060040161107e565b50506002600154146105a057600260015560ff60025416156105685760243515610535576101933684846112a8565b3360005260056020526040600020805490600019821461051f5760018201905561021560a860405180933360601b60208301526bffffffffffffffffffffffff198760601b166034830152602435604883015285516101f9816068850160208a016111e2565b820190606882015242608882015203608881018452018261111c565b8051602090910120926001600160a01b0383166104bb57602435341061048357610268905b60405195610247876110e5565b3387526001600160a01b0385166020880152602435604088015236916112a8565b6060850152826080850152600160a08501524260c0850152600060e0850152826000526003602052604060002060018060a01b038551166bffffffffffffffffffffffff60a01b9081835416178255600182019060018060a01b03602088015116908254161790556040850151600282015560608501518051906001600160401b03821161046d5761030a8261030160038601546110ab565b60038601611237565b602090601f83116001146103fb5761033b9291600091836103f0575b50508160011b916000199060031b1c19161790565b60038201555b608085015160048201556005810160a086015160068110156103da5760209660079260e09260ff8019835416911617905560c081015160068501550151910155827f3e60eaa0cba76c67c5df97086220587ff7eed24c2f1ff4ba6eb1e36afd28333660405193602435855260408786015260018060a01b031693806103cb33956040830190611205565b0390a460018055604051908152f35b634e487b7160e01b600052602160045260246000fd5b015190503880610326565b9190600384016000526020600020906000935b601f1984168510610452576001945083601f19811610610439575b505050811b016003820155610341565b015160001960f88460031b161c19169055388080610429565b8181015183556020948501946001909301929091019061040e565b634e487b7160e01b600052604160045260246000fd5b60405162461bcd60e51b815260206004820152601060248201526f092dce6eaccccd2c6d2cadce8408aa8960831b6044820152606490fd5b604051906323b872dd60e01b60208301523360248301523060448301526024356064830152606482528160a08101106001600160401b0360a08401111761046d5760a082016040526102689161051a906001600160a01b0386166113f8565b61023a565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601060248201526f4164617074657220696e61637469766560801b6044820152606490fd5b604051633ee5aeb560e01b8152600490fd5b600080fd5b346105b25760403660031901126105b2576105f66004356105d6611068565b908060005260006020526105f16001604060002001546112df565b611383565b005b346105b2576020806003193601126105b257600435600052600381526040600020600581019060ff82541660068110156103da578015908115610765575b50156107305780546001600160a01b03908116338190036106f6576001830154821690816106a957505060008083600282959483955416910154908282156106a0575bf115610694575b805460ff1916600517905560405160018152f35b6040513d6000823e3d90fd5b506108fc610679565b915091600201546040519163a9059cbb60e01b86840152602483015260448201526044815260808101918183106001600160401b0384111761046d576106f1926040526113f8565b610680565b60405162461bcd60e51b81526004810186905260126024820152712737ba103932b8bab2b9ba1039b2b73232b960711b6044820152606490fd5b60405162461bcd60e51b815260048101849052600d60248201526c10d85b9b9bdd0818d85b98d95b609a1b6044820152606490fd5b600191501484610636565b346105b2576020806003193601126105b257600435600052600481526040600020906040519182600082546107a4816110ab565b93848452600191866001821691826000146108285750506001146107e9575b50506107d19250038361111c565b6107e5604051928284938452830190611205565b0390f35b85925060005281600020906000915b8583106108105750506107d1935082010185806107c3565b805483890185015287945086939092019181016107f8565b92509350506107d194915060ff191682840152151560051b82010185806107c3565b346105b25760003660031901126105b257602060405160008152f35b346105b25760003660031901126105b2576107e560405161088681611101565b60038152622a27a760e91b6020820152604051918291602083526020830190611205565b346105b25760003660031901126105b2576107e56040516108ca81611101565b600b81526a1513d38b53585a5b9b995d60aa1b602082015260405191829160008352604060208401526040830190611205565b346105b25760403660031901126105b257610916611068565b600435600052600060205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b346105b2576020806003193601126105b257600060e060405161096c816110e5565b82815282848201528260408201526060808201528260808201528260a08201528260c0820152015260043560005260038152604060002090604051906109b1826110e5565b82546001600160a01b0390811683526001840154811682840190815260028501546040850190815291949092906109ea6003820161113d565b93606086019485526004820154946080870195865260ff6005840154169460a088019560068110156103da57610a7f938a918852600760068701549660c08c0197885201549660e08b019788526040519b8c9b828d525116908b0152511660408901525160608801525193610a6d610100958660808a0152610120890190611205565b955160a08801525160c087019061122a565b5160e085015251908301520390f35b346105b25760203660031901126105b2576001600160a01b03610aaf611052565b1660005260056020526020604060002054604051908152f35b346105b25760403660031901126105b2576004356001600160401b036024358181116105b257610afc90369060040161107e565b3360009081527fa629f6981c2f6895a67dc766e8e03ff72d04a413d0d8773a3ca56e9e474032c160209081526040909120549193917f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef19060ff1615610cd857508460005260038152604060002090600582019182549260ff84169360068510156103da576001809503610ca25760029060ff19161790556007429101558560005260048152604060002092851161046d578491610bc383610bbd86546110ab565b86611237565b600091601f8411600114610c3d5750509080610bf592600091610c32575b508160011b916000199060031b1c19161790565b90555b816040519283928337810160008152039020907f1b2b8af99e262e15d1a81e1dcc8ccf3ba3f5cbf9b46de3e24fe15a88bc39e83a600080a3005b905084013587610be1565b60008581528181209492601f19841692905b838310610c885750505010610c6e575b5050600183811b019055610bf8565b830135600019600386901b60f8161c191690558480610c5f565b888601358755958601959481019489945091810191610c4f565b60405162461bcd60e51b815260048101859052600e60248201526d496e76616c69642073746174757360901b6044820152606490fd5b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346105b25760203660031901126105b2576004356001600160401b0381116105b257610d28602091369060040161107e565b90506040519015158152f35b346105b25760203660031901126105b2576004356000526003602052604060002060018060a01b0390818154169160018201541690600281015492610d7b6003830161113d565b91610dd0600482015493610dc060ff600585015416916007600686015495015495604051998a99610100928b5260208b015260408a01528060608a0152880190611205565b94608087015260a086019061122a565b60c084015260e08301520390f35b346105b25760003660031901126105b25760206040517f7045adfe67d5f94dbfddcdb901e44bef55baacabb398c7cddda1bfd7620b15688152f35b346105b25760403660031901126105b257610e32611068565b336001600160a01b03821603610e4e576105f690600435611383565b60405163334bd91960e11b8152600490fd5b346105b25760403660031901126105b2576105f6600435610e7f611068565b90806000526000602052610e9a6001604060002001546112df565b611305565b346105b25760603660031901126105b257610eb8611052565b506044356001600160401b0381116105b257610ed890369060040161107e565b5050602060405166038d7ea4c680008152f35b346105b25760203660031901126105b2576004358015158091036105b2573360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1615610f535760ff801960025416911617600255600080f35b60405163e2517d3f60e01b815233600482015260006024820152604490fd5b346105b25760203660031901126105b25760043560005260006020526020600160406000200154604051908152f35b346105b25760003660031901126105b257602060ff600254166040519015158152f35b346105b25760003660031901126105b25760206040517f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef18152f35b346105b25760203660031901126105b2576004359063ffffffff60e01b82168092036105b257602091637965db0b60e01b8114908115611041575b5015158152f35b6301ffc9a760e01b1490508361103a565b600435906001600160a01b03821682036105b257565b602435906001600160a01b03821682036105b257565b9181601f840112156105b2578235916001600160401b0383116105b257602083818601950101116105b257565b90600182811c921680156110db575b60208310146110c557565b634e487b7160e01b600052602260045260246000fd5b91607f16916110ba565b61010081019081106001600160401b0382111761046d57604052565b604081019081106001600160401b0382111761046d57604052565b90601f801991011681019081106001600160401b0382111761046d57604052565b90604051918260008254611150816110ab565b908184526020946001916001811690816000146111c05750600114611181575b50505061117f9250038361111c565b565b600090815285812095935091905b8183106111a857505061117f9350820101388080611170565b8554888401850152948501948794509183019161118f565b9250505061117f94925060ff191682840152151560051b820101388080611170565b60005b8381106111f55750506000910152565b81810151838201526020016111e5565b9060209161121e815180928185528580860191016111e2565b601f01601f1916010190565b9060068210156103da5752565b90601f811161124557505050565b6000916000526020600020906020601f850160051c83019410611283575b601f0160051c01915b82811061127857505050565b81815560010161126c565b9092508290611263565b6001600160401b03811161046d57601f01601f191660200190565b9291926112b48261128d565b916112c2604051938461111c565b8294818452818301116105b2578281602093846000960137010152565b80600052600060205260406000203360005260205260ff6040600020541615610cd85750565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054161560001461137e57808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff60408420541660001461137e5780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b60018060a01b031690611442600080836020829551910182875af13d156114a1573d906114248261128d565b91611432604051938461111c565b82523d84602084013e5b846114a9565b908151918215159283611472575b50505061145a5750565b60249060405190635274afe760e01b82526004820152fd5b81929350906020918101031261149d57602001519081159182150361149a5750388080611450565b80fd5b5080fd5b60609061143c565b906114d057508051156114be57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580611503575b6114e1575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156114d956fea2646970667358221220c95258628fcf37157b79c543a94060a744153ca2adea1952c4da37b9054e9e5764736f6c63430008160033",
"linkReferences": {},
"deployedLinkReferences": {}
}