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

702 lines
37 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "AlgorandAdapter",
"sourceName": "contracts/bridge/adapters/non-evm/AlgorandAdapter.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": "requestId",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "string",
"name": "txHash",
"type": "string"
}
],
"name": "AlgorandBridgeConfirmed",
"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": "AlgorandBridgeInitiated",
"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"
},
{
"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": "0x6080346200009957601f620017e038819003918201601f19168301916001600160401b038311848410176200009e578084926020946040528339810103126200009957516001600160a01b038116810362000099576200007b90600180556200006881620000b4565b50620000748162000134565b50620001d6565b50600160ff19600254161760025560405161154c9081620002748239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b031660008181527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205490919060ff166200013057818052816020526040822081835260205260408220600160ff198254161790553391600080516020620017c08339815191528180a4600190565b5090565b6001600160a01b031660008181527f0d4654aaffc87c2c9a3fd6a99770bc308fad799420104834ddcca8973d00903960205260408120549091907f7045adfe67d5f94dbfddcdb901e44bef55baacabb398c7cddda1bfd7620b15689060ff16620001d157808352826020526040832082845260205260408320600160ff19825416179055600080516020620017c0833981519152339380a4600190565b505090565b6001600160a01b031660008181527fa629f6981c2f6895a67dc766e8e03ff72d04a413d0d8773a3ca56e9e474032c160205260408120549091907f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef19060ff16620001d157808352826020526040832082845260205260408320600160ff19825416179055600080516020620017c0833981519152339380a460019056fe608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a7146110095750806307e2cea514610fce57806322f3e2d414610fab578063248a9ca314610f7c5780632750fc7814610ef55780632b368ac214610ea95780632f2ff15d14610e6a57806336568abe14610e235780634be40fd114610de857806360b4141114610d3e5780636cb4dfc014610d0057806370cf467114610ad25780637ecebe0014610a985780638d7514151461095457806391d1485414610907578063941b9682146108af57806397e67c3b14610866578063a217fddf1461084a578063a8734a1314610770578063d046b4e2146105f8578063d547741f146105b75763f33ffba31461011157600080fd5b60803660031901126105b25761012561105c565b6044356001600160401b0381116105b257610144903690600401611088565b916064356001600160401b0381116105b257610164903690600401611088565b50506002600154146105a057600260015560ff60025416156105685760243515610535576101933684846112b2565b3360005260056020526040600020805490600019821461051f5760018201905561021560a860405180933360601b60208301526bffffffffffffffffffffffff198760601b166034830152602435604883015285516101f9816068850160208a016111ec565b8201906068820152426088820152036088810184520182611126565b8051602090910120926001600160a01b0383166104bb57602435341061048357610268905b60405195610247876110ef565b3387526001600160a01b0385166020880152602435604088015236916112b2565b6060850152826080850152600160a08501524260c0850152600060e0850152826000526003602052604060002060018060a01b038551166bffffffffffffffffffffffff60a01b9081835416178255600182019060018060a01b03602088015116908254161790556040850151600282015560608501518051906001600160401b03821161046d5761030a8261030160038601546110b5565b60038601611241565b602090601f83116001146103fb5761033b9291600091836103f0575b50508160011b916000199060031b1c19161790565b60038201555b608085015160048201556005810160a086015160068110156103da5760209660079260e09260ff8019835416911617905560c081015160068501550151910155827ffec10c879fb685b83f52de8b2478678c82eeb5da93bff1d8b2ae8b45d7631c7f60405193602435855260408786015260018060a01b031693806103cb3395604083019061120f565b0390a460018055604051908152f35b634e487b7160e01b600052602160045260246000fd5b015190503880610326565b9190600384016000526020600020906000935b601f1984168510610452576001945083601f19811610610439575b505050811b016003820155610341565b015160001960f88460031b161c19169055388080610429565b8181015183556020948501946001909301929091019061040e565b634e487b7160e01b600052604160045260246000fd5b60405162461bcd60e51b815260206004820152601060248201526f092dce6eaccccd2c6d2cadce8408aa8960831b6044820152606490fd5b604051906323b872dd60e01b60208301523360248301523060448301526024356064830152606482528160a08101106001600160401b0360a08401111761046d5760a082016040526102689161051a906001600160a01b038616611402565b61023a565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601060248201526f4164617074657220696e61637469766560801b6044820152606490fd5b604051633ee5aeb560e01b8152600490fd5b600080fd5b346105b25760403660031901126105b2576105f66004356105d6611072565b908060005260006020526105f16001604060002001546112e9565b61138d565b005b346105b2576020806003193601126105b257600435600052600381526040600020600581019060ff82541660068110156103da578015908115610765575b50156107305780546001600160a01b03908116338190036106f6576001830154821690816106a957505060008083600282959483955416910154908282156106a0575bf115610694575b805460ff1916600517905560405160018152f35b6040513d6000823e3d90fd5b506108fc610679565b915091600201546040519163a9059cbb60e01b86840152602483015260448201526044815260808101918183106001600160401b0384111761046d576106f192604052611402565b610680565b60405162461bcd60e51b81526004810186905260126024820152712737ba103932b8bab2b9ba1039b2b73232b960711b6044820152606490fd5b60405162461bcd60e51b815260048101849052600d60248201526c10d85b9b9bdd0818d85b98d95b609a1b6044820152606490fd5b600191501484610636565b346105b2576020806003193601126105b257600435600052600481526040600020906040519182600082546107a4816110b5565b93848452600191866001821691826000146108285750506001146107e9575b50506107d192500383611126565b6107e560405192828493845283019061120f565b0390f35b85925060005281600020906000915b8583106108105750506107d1935082010185806107c3565b805483890185015287945086939092019181016107f8565b92509350506107d194915060ff191682840152151560051b82010185806107c3565b346105b25760003660031901126105b257602060405160008152f35b346105b25760003660031901126105b2576107e56040516108868161110b565b6008815267105b19dbdc985b9960c21b602082015260405191829160208352602083019061120f565b346105b25760003660031901126105b2576107e56040516108cf8161110b565b601081526f105b19dbdc985b990b53585a5b9b995d60821b60208201526040519182916000835260406020840152604083019061120f565b346105b25760403660031901126105b257610920611072565b600435600052600060205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b346105b2576020806003193601126105b257600060e0604051610976816110ef565b82815282848201528260408201526060808201528260808201528260a08201528260c0820152015260043560005260038152604060002090604051906109bb826110ef565b82546001600160a01b0390811683526001840154811682840190815260028501546040850190815291949092906109f460038201611147565b93606086019485526004820154946080870195865260ff6005840154169460a088019560068110156103da57610a89938a918852600760068701549660c08c0197885201549660e08b019788526040519b8c9b828d525116908b0152511660408901525160608801525193610a77610100958660808a015261012089019061120f565b955160a08801525160c0870190611234565b5160e085015251908301520390f35b346105b25760203660031901126105b2576001600160a01b03610ab961105c565b1660005260056020526020604060002054604051908152f35b346105b25760403660031901126105b2576004356001600160401b036024358181116105b257610b06903690600401611088565b3360009081527fa629f6981c2f6895a67dc766e8e03ff72d04a413d0d8773a3ca56e9e474032c160209081526040909120549193917f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef19060ff1615610ce257508460005260038152604060002090600582019182549260ff84169360068510156103da576001809503610cac5760029060ff19161790556007429101558560005260048152604060002092851161046d578491610bcd83610bc786546110b5565b86611241565b600091601f8411600114610c475750509080610bff92600091610c3c575b508160011b916000199060031b1c19161790565b90555b816040519283928337810160008152039020907fb0b5d698c7600667a8f4cc394c6c3eb7ff3b8bb4fff74d23396a10678abc3b4c600080a3005b905084013587610beb565b60008581528181209492601f19841692905b838310610c925750505010610c78575b5050600183811b019055610c02565b830135600019600386901b60f8161c191690558480610c69565b888601358755958601959481019489945091810191610c59565b60405162461bcd60e51b815260048101859052600e60248201526d496e76616c69642073746174757360901b6044820152606490fd5b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346105b25760203660031901126105b2576004356001600160401b0381116105b257610d326020913690600401611088565b90506040519015158152f35b346105b25760203660031901126105b2576004356000526003602052604060002060018060a01b0390818154169160018201541690600281015492610d8560038301611147565b91610dda600482015493610dca60ff600585015416916007600686015495015495604051998a99610100928b5260208b015260408a01528060608a015288019061120f565b94608087015260a0860190611234565b60c084015260e08301520390f35b346105b25760003660031901126105b25760206040517f7045adfe67d5f94dbfddcdb901e44bef55baacabb398c7cddda1bfd7620b15688152f35b346105b25760403660031901126105b257610e3c611072565b336001600160a01b03821603610e58576105f69060043561138d565b60405163334bd91960e11b8152600490fd5b346105b25760403660031901126105b2576105f6600435610e89611072565b90806000526000602052610ea46001604060002001546112e9565b61130f565b346105b25760603660031901126105b257610ec261105c565b506044356001600160401b0381116105b257610ee2903690600401611088565b5050602060405166038d7ea4c680008152f35b346105b25760203660031901126105b2576004358015158091036105b2573360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1615610f5d5760ff801960025416911617600255600080f35b60405163e2517d3f60e01b815233600482015260006024820152604490fd5b346105b25760203660031901126105b25760043560005260006020526020600160406000200154604051908152f35b346105b25760003660031901126105b257602060ff600254166040519015158152f35b346105b25760003660031901126105b25760206040517f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef18152f35b346105b25760203660031901126105b2576004359063ffffffff60e01b82168092036105b257602091637965db0b60e01b811490811561104b575b5015158152f35b6301ffc9a760e01b14905083611044565b600435906001600160a01b03821682036105b257565b602435906001600160a01b03821682036105b257565b9181601f840112156105b2578235916001600160401b0383116105b257602083818601950101116105b257565b90600182811c921680156110e5575b60208310146110cf57565b634e487b7160e01b600052602260045260246000fd5b91607f16916110c4565b61010081019081106001600160401b0382111761046d57604052565b604081019081106001600160401b0382111761046d57604052565b90601f801991011681019081106001600160401b0382111761046d57604052565b9060405191826000825461115a816110b5565b908184526020946001916001811690816000146111ca575060011461118b575b50505061118992500383611126565b565b600090815285812095935091905b8183106111b2575050611189935082010138808061117a565b85548884018501529485019487945091830191611199565b9250505061118994925060ff191682840152151560051b82010138808061117a565b60005b8381106111ff5750506000910152565b81810151838201526020016111ef565b90602091611228815180928185528580860191016111ec565b601f01601f1916010190565b9060068210156103da5752565b90601f811161124f57505050565b6000916000526020600020906020601f850160051c8301941061128d575b601f0160051c01915b82811061128257505050565b818155600101611276565b909250829061126d565b6001600160401b03811161046d57601f01601f191660200190565b9291926112be82611297565b916112cc6040519384611126565b8294818452818301116105b2578281602093846000960137010152565b80600052600060205260406000203360005260205260ff6040600020541615610ce25750565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054161560001461138857808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054166000146113885780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b60018060a01b03169061144c600080836020829551910182875af13d156114ab573d9061142e82611297565b9161143c6040519384611126565b82523d84602084013e5b846114b3565b90815191821515928361147c575b5050506114645750565b60249060405190635274afe760e01b82526004820152fd5b8192935090602091810103126114a75760200151908115918215036114a4575038808061145a565b80fd5b5080fd5b606090611446565b906114da57508051156114c857805190602001fd5b604051630a12f52160e11b8152600490fd5b8151158061150d575b6114eb575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156114e356fea2646970667358221220af9ab87ac4eebee3040ddc687fc2a37c590b9dc22f0d65ab0ca52b5d72747ac364736f6c634300081600332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
"deployedBytecode": "0x608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a7146110095750806307e2cea514610fce57806322f3e2d414610fab578063248a9ca314610f7c5780632750fc7814610ef55780632b368ac214610ea95780632f2ff15d14610e6a57806336568abe14610e235780634be40fd114610de857806360b4141114610d3e5780636cb4dfc014610d0057806370cf467114610ad25780637ecebe0014610a985780638d7514151461095457806391d1485414610907578063941b9682146108af57806397e67c3b14610866578063a217fddf1461084a578063a8734a1314610770578063d046b4e2146105f8578063d547741f146105b75763f33ffba31461011157600080fd5b60803660031901126105b25761012561105c565b6044356001600160401b0381116105b257610144903690600401611088565b916064356001600160401b0381116105b257610164903690600401611088565b50506002600154146105a057600260015560ff60025416156105685760243515610535576101933684846112b2565b3360005260056020526040600020805490600019821461051f5760018201905561021560a860405180933360601b60208301526bffffffffffffffffffffffff198760601b166034830152602435604883015285516101f9816068850160208a016111ec565b8201906068820152426088820152036088810184520182611126565b8051602090910120926001600160a01b0383166104bb57602435341061048357610268905b60405195610247876110ef565b3387526001600160a01b0385166020880152602435604088015236916112b2565b6060850152826080850152600160a08501524260c0850152600060e0850152826000526003602052604060002060018060a01b038551166bffffffffffffffffffffffff60a01b9081835416178255600182019060018060a01b03602088015116908254161790556040850151600282015560608501518051906001600160401b03821161046d5761030a8261030160038601546110b5565b60038601611241565b602090601f83116001146103fb5761033b9291600091836103f0575b50508160011b916000199060031b1c19161790565b60038201555b608085015160048201556005810160a086015160068110156103da5760209660079260e09260ff8019835416911617905560c081015160068501550151910155827ffec10c879fb685b83f52de8b2478678c82eeb5da93bff1d8b2ae8b45d7631c7f60405193602435855260408786015260018060a01b031693806103cb3395604083019061120f565b0390a460018055604051908152f35b634e487b7160e01b600052602160045260246000fd5b015190503880610326565b9190600384016000526020600020906000935b601f1984168510610452576001945083601f19811610610439575b505050811b016003820155610341565b015160001960f88460031b161c19169055388080610429565b8181015183556020948501946001909301929091019061040e565b634e487b7160e01b600052604160045260246000fd5b60405162461bcd60e51b815260206004820152601060248201526f092dce6eaccccd2c6d2cadce8408aa8960831b6044820152606490fd5b604051906323b872dd60e01b60208301523360248301523060448301526024356064830152606482528160a08101106001600160401b0360a08401111761046d5760a082016040526102689161051a906001600160a01b038616611402565b61023a565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601060248201526f4164617074657220696e61637469766560801b6044820152606490fd5b604051633ee5aeb560e01b8152600490fd5b600080fd5b346105b25760403660031901126105b2576105f66004356105d6611072565b908060005260006020526105f16001604060002001546112e9565b61138d565b005b346105b2576020806003193601126105b257600435600052600381526040600020600581019060ff82541660068110156103da578015908115610765575b50156107305780546001600160a01b03908116338190036106f6576001830154821690816106a957505060008083600282959483955416910154908282156106a0575bf115610694575b805460ff1916600517905560405160018152f35b6040513d6000823e3d90fd5b506108fc610679565b915091600201546040519163a9059cbb60e01b86840152602483015260448201526044815260808101918183106001600160401b0384111761046d576106f192604052611402565b610680565b60405162461bcd60e51b81526004810186905260126024820152712737ba103932b8bab2b9ba1039b2b73232b960711b6044820152606490fd5b60405162461bcd60e51b815260048101849052600d60248201526c10d85b9b9bdd0818d85b98d95b609a1b6044820152606490fd5b600191501484610636565b346105b2576020806003193601126105b257600435600052600481526040600020906040519182600082546107a4816110b5565b93848452600191866001821691826000146108285750506001146107e9575b50506107d192500383611126565b6107e560405192828493845283019061120f565b0390f35b85925060005281600020906000915b8583106108105750506107d1935082010185806107c3565b805483890185015287945086939092019181016107f8565b92509350506107d194915060ff191682840152151560051b82010185806107c3565b346105b25760003660031901126105b257602060405160008152f35b346105b25760003660031901126105b2576107e56040516108868161110b565b6008815267105b19dbdc985b9960c21b602082015260405191829160208352602083019061120f565b346105b25760003660031901126105b2576107e56040516108cf8161110b565b601081526f105b19dbdc985b990b53585a5b9b995d60821b60208201526040519182916000835260406020840152604083019061120f565b346105b25760403660031901126105b257610920611072565b600435600052600060205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b346105b2576020806003193601126105b257600060e0604051610976816110ef565b82815282848201528260408201526060808201528260808201528260a08201528260c0820152015260043560005260038152604060002090604051906109bb826110ef565b82546001600160a01b0390811683526001840154811682840190815260028501546040850190815291949092906109f460038201611147565b93606086019485526004820154946080870195865260ff6005840154169460a088019560068110156103da57610a89938a918852600760068701549660c08c0197885201549660e08b019788526040519b8c9b828d525116908b0152511660408901525160608801525193610a77610100958660808a015261012089019061120f565b955160a08801525160c0870190611234565b5160e085015251908301520390f35b346105b25760203660031901126105b2576001600160a01b03610ab961105c565b1660005260056020526020604060002054604051908152f35b346105b25760403660031901126105b2576004356001600160401b036024358181116105b257610b06903690600401611088565b3360009081527fa629f6981c2f6895a67dc766e8e03ff72d04a413d0d8773a3ca56e9e474032c160209081526040909120549193917f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef19060ff1615610ce257508460005260038152604060002090600582019182549260ff84169360068510156103da576001809503610cac5760029060ff19161790556007429101558560005260048152604060002092851161046d578491610bcd83610bc786546110b5565b86611241565b600091601f8411600114610c475750509080610bff92600091610c3c575b508160011b916000199060031b1c19161790565b90555b816040519283928337810160008152039020907fb0b5d698c7600667a8f4cc394c6c3eb7ff3b8bb4fff74d23396a10678abc3b4c600080a3005b905084013587610beb565b60008581528181209492601f19841692905b838310610c925750505010610c78575b5050600183811b019055610c02565b830135600019600386901b60f8161c191690558480610c69565b888601358755958601959481019489945091810191610c59565b60405162461bcd60e51b815260048101859052600e60248201526d496e76616c69642073746174757360901b6044820152606490fd5b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346105b25760203660031901126105b2576004356001600160401b0381116105b257610d326020913690600401611088565b90506040519015158152f35b346105b25760203660031901126105b2576004356000526003602052604060002060018060a01b0390818154169160018201541690600281015492610d8560038301611147565b91610dda600482015493610dca60ff600585015416916007600686015495015495604051998a99610100928b5260208b015260408a01528060608a015288019061120f565b94608087015260a0860190611234565b60c084015260e08301520390f35b346105b25760003660031901126105b25760206040517f7045adfe67d5f94dbfddcdb901e44bef55baacabb398c7cddda1bfd7620b15688152f35b346105b25760403660031901126105b257610e3c611072565b336001600160a01b03821603610e58576105f69060043561138d565b60405163334bd91960e11b8152600490fd5b346105b25760403660031901126105b2576105f6600435610e89611072565b90806000526000602052610ea46001604060002001546112e9565b61130f565b346105b25760603660031901126105b257610ec261105c565b506044356001600160401b0381116105b257610ee2903690600401611088565b5050602060405166038d7ea4c680008152f35b346105b25760203660031901126105b2576004358015158091036105b2573360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1615610f5d5760ff801960025416911617600255600080f35b60405163e2517d3f60e01b815233600482015260006024820152604490fd5b346105b25760203660031901126105b25760043560005260006020526020600160406000200154604051908152f35b346105b25760003660031901126105b257602060ff600254166040519015158152f35b346105b25760003660031901126105b25760206040517f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef18152f35b346105b25760203660031901126105b2576004359063ffffffff60e01b82168092036105b257602091637965db0b60e01b811490811561104b575b5015158152f35b6301ffc9a760e01b14905083611044565b600435906001600160a01b03821682036105b257565b602435906001600160a01b03821682036105b257565b9181601f840112156105b2578235916001600160401b0383116105b257602083818601950101116105b257565b90600182811c921680156110e5575b60208310146110cf57565b634e487b7160e01b600052602260045260246000fd5b91607f16916110c4565b61010081019081106001600160401b0382111761046d57604052565b604081019081106001600160401b0382111761046d57604052565b90601f801991011681019081106001600160401b0382111761046d57604052565b9060405191826000825461115a816110b5565b908184526020946001916001811690816000146111ca575060011461118b575b50505061118992500383611126565b565b600090815285812095935091905b8183106111b2575050611189935082010138808061117a565b85548884018501529485019487945091830191611199565b9250505061118994925060ff191682840152151560051b82010138808061117a565b60005b8381106111ff5750506000910152565b81810151838201526020016111ef565b90602091611228815180928185528580860191016111ec565b601f01601f1916010190565b9060068210156103da5752565b90601f811161124f57505050565b6000916000526020600020906020601f850160051c8301941061128d575b601f0160051c01915b82811061128257505050565b818155600101611276565b909250829061126d565b6001600160401b03811161046d57601f01601f191660200190565b9291926112be82611297565b916112cc6040519384611126565b8294818452818301116105b2578281602093846000960137010152565b80600052600060205260406000203360005260205260ff6040600020541615610ce25750565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054161560001461138857808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054166000146113885780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b60018060a01b03169061144c600080836020829551910182875af13d156114ab573d9061142e82611297565b9161143c6040519384611126565b82523d84602084013e5b846114b3565b90815191821515928361147c575b5050506114645750565b60249060405190635274afe760e01b82526004820152fd5b8192935090602091810103126114a75760200151908115918215036114a4575038808061145a565b80fd5b5080fd5b606090611446565b906114da57508051156114c857805190602001fd5b604051630a12f52160e11b8152600490fd5b8151158061150d575b6114eb575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156114e356fea2646970667358221220af9ab87ac4eebee3040ddc687fc2a37c590b9dc22f0d65ab0ca52b5d72747ac364736f6c63430008160033",
"linkReferences": {},
"deployedLinkReferences": {}
}