@descent-protocol/sdk
Version:
A Typescript library for interacting with the Descent Protocol
674 lines • 223 kB
JSON
{
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "name_",
"type": "string"
},
{
"internalType": "string",
"name": "symbol_",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "AllowanceOverflow",
"type": "error"
},
{
"inputs": [],
"name": "AllowanceUnderflow",
"type": "error"
},
{
"inputs": [],
"name": "AlreadyInitialized",
"type": "error"
},
{
"inputs": [],
"name": "InsufficientAllowance",
"type": "error"
},
{
"inputs": [],
"name": "InsufficientBalance",
"type": "error"
},
{
"inputs": [],
"name": "InvalidPermit",
"type": "error"
},
{
"inputs": [],
"name": "NewOwnerIsZeroAddress",
"type": "error"
},
{
"inputs": [],
"name": "NoHandoverRequest",
"type": "error"
},
{
"inputs": [],
"name": "NotMinter",
"type": "error"
},
{
"inputs": [],
"name": "PermitExpired",
"type": "error"
},
{
"inputs": [],
"name": "TotalSupplyOverflow",
"type": "error"
},
{
"inputs": [],
"name": "Unauthorized",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "pendingOwner",
"type": "address"
}
],
"name": "OwnershipHandoverCanceled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "pendingOwner",
"type": "address"
}
],
"name": "OwnershipHandoverRequested",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "oldOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bool",
"name": "enabled",
"type": "bool"
}
],
"name": "Permit2AllowanceUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [],
"name": "DOMAIN_SEPARATOR",
"outputs": [
{
"internalType": "bytes32",
"name": "result",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "PERMIT2",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "result",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "burn",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "cancelOwnershipHandover",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "pendingOwner",
"type": "address"
}
],
"name": "completeOwnershipHandover",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "mint",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "minterRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "nonces",
"outputs": [
{
"internalType": "uint256",
"name": "result",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "result",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "pendingOwner",
"type": "address"
}
],
"name": "ownershipHandoverExpiresAt",
"outputs": [
{
"internalType": "uint256",
"name": "result",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "permit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "permit2Enabled",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract ERC20Token",
"name": "token",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
}
],
"name": "recoverToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "requestOwnershipHandover",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "bool",
"name": "isMinter",
"type": "bool"
}
],
"name": "setMinterRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "result",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "enabled",
"type": "bool"
}
],
"name": "updatePermit2Allowance",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": {
"object": "0x60806040523480156200001157600080fd5b506040516200160938038062001609833981016040819052620000349162000173565b6200003f3362000072565b60006200004d83826200026c565b5060016200005c82826200026c565b50506002805460ff191660011790555062000338565b6001600160a01b0316638b78c6d8198190558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000d657600080fd5b81516001600160401b0380821115620000f357620000f3620000ae565b604051601f8301601f19908116603f011681019082821181831017156200011e576200011e620000ae565b816040528381526020925086838588010111156200013b57600080fd5b600091505b838210156200015f578582018301518183018401529082019062000140565b600093810190920192909252949350505050565b600080604083850312156200018757600080fd5b82516001600160401b03808211156200019f57600080fd5b620001ad86838701620000c4565b93506020850151915080821115620001c457600080fd5b50620001d385828601620000c4565b9150509250929050565b600181811c90821680620001f257607f821691505b6020821081036200021357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200026757600081815260208120601f850160051c81016020861015620002425750805b601f850160051c820191505b8181101562000263578281556001016200024e565b5050505b505050565b81516001600160401b03811115620002885762000288620000ae565b620002a081620002998454620001dd565b8462000219565b602080601f831160018114620002d85760008415620002bf5750858301515b600019600386901b1c1916600185901b17855562000263565b600085815260208120601f198616915b828110156200030957888601518255948401946001909101908401620002e8565b5085821015620003285787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6112c180620003486000396000f3fe6080604052600436106101ac5760003560e01c8063715018a6116100ec578063cb177b1e1161008a578063f04e283e11610064578063f04e283e146104bf578063f2fde38b146104d2578063feaea586146104e5578063fee81cf41461050557600080fd5b8063cb177b1e1461045f578063d505accf1461047f578063dd62ed3e1461049f57600080fd5b806395d89b41116100c657806395d89b41146103da5780639dc29fac146103ef578063a9059cbb1461040f578063ad0e7d8c1461042f57600080fd5b8063715018a61461036b5780637ecebe00146103735780638da5cb5b146103a657600080fd5b80633644e5151161015957806354d1f13d1161013357806354d1f13d146102c85780636afdd850146102d0578063705e6a5b1461031857806370a082311461033857600080fd5b80633644e51514610279578063407c48b41461028e57806340c10f19146102a857600080fd5b806323b872dd1161018a57806323b872dd146102335780632569296214610253578063313ce5671461025d57600080fd5b806306fdde03146101b1578063095ea7b3146101dc57806318160ddd1461020c575b600080fd5b3480156101bd57600080fd5b506101c6610538565b6040516101d39190611028565b60405180910390f35b3480156101e857600080fd5b506101fc6101f73660046110b6565b6105ca565b60405190151581526020016101d3565b34801561021857600080fd5b506805345cdf77eb68f44c545b6040519081526020016101d3565b34801561023f57600080fd5b506101fc61024e3660046110e2565b61061e565b61025b6106dc565b005b34801561026957600080fd5b50604051601281526020016101d3565b34801561028557600080fd5b5061022561072c565b34801561029a57600080fd5b506002546101fc9060ff1681565b3480156102b457600080fd5b506101fc6102c33660046110b6565b6107a9565b61025b610805565b3480156102dc57600080fd5b506102f36e22d473030f116ddee9f6b43ac78ba381565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d3565b34801561032457600080fd5b5061025b610333366004611138565b610841565b34801561034457600080fd5b50610225610353366004611153565b6387a211a2600c908152600091909152602090205490565b61025b6108af565b34801561037f57600080fd5b5061022561038e366004611153565b6338377508600c908152600091909152602090205490565b3480156103b257600080fd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927546102f3565b3480156103e657600080fd5b506101c66108c3565b3480156103fb57600080fd5b506101fc61040a3660046110b6565b6108d2565b34801561041b57600080fd5b506101fc61042a3660046110b6565b610906565b34801561043b57600080fd5b506101fc61044a366004611153565b60036020526000908152604090205460ff1681565b34801561046b57600080fd5b5061025b61047a366004611170565b61097d565b34801561048b57600080fd5b5061025b61049a3660046111a5565b6109db565b3480156104ab57600080fd5b506102256104ba36600461121c565b610b75565b61025b6104cd366004611153565b610bfa565b61025b6104e0366004611153565b610c3a565b3480156104f157600080fd5b5061025b61050036600461121c565b610c61565b34801561051157600080fd5b50610225610520366004611153565b63389a75e1600c908152600091909152602090205490565b60606000805461054790611255565b80601f016020809104026020016040519081016040528092919081815260200182805461057390611255565b80156105c05780601f10610595576101008083540402835291602001916105c0565b820191906000526020600020905b8154815290600101906020018083116105a357829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a35060015b92915050565b60008360601b33602052637f5e9f208117600c526034600c208054600181011561065e5780851115610658576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106875763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b60006202a30067ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b600080610737610538565b8051906020012090506040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81528160208201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a081209250505090565b3360009081526003602052604081205460ff166107f2576040517ff8d2906c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107fc8383610df7565b50600192915050565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b610849610e76565b60405181151581527f383d8f27281deff0ab982f76ad2feac76f0cb5d922008a4642d8765c748591329060200160405180910390a1600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6108b7610e76565b6108c16000610eac565b565b60606001805461054790611255565b600073ffffffffffffffffffffffffffffffffffffffff831633146108fc576108fc833384610f12565b6107fc8383610f55565b60006387a211a2600c52336000526020600c208054808411156109315763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a36107fc565b610985610e76565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60006109e5610538565b80519060200120905084421115610a0457631a15a3cc6000526004601cfd5b6040518860601b60601c98508760601b60601c975065383775081901600e52886000526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83528360208401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a60208401528960408401528860608401528060808401528760a084015260c08320604e526042602c206000528660ff1660205285604052846060526020806080600060015afa8b3d5114610b105763ddafbaef6000526004601cfd5b019055777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82166e22d473030f116ddee9f6b43ac78ba3148015610bad575060025460ff165b15610bd957507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610618565b6020829052637f5e9f20600c908152600084905260349020545b9392505050565b610c02610e76565b63389a75e1600c52806000526020600c208054421115610c2a57636f5e88186000526004601cfd5b60009055610c3781610eac565b50565b610c42610e76565b8060601b610c5857637448fbae6000526004601cfd5b610c3781610eac565b610c69610e76565b73ffffffffffffffffffffffffffffffffffffffff821615610d24576040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152610d20908390839073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401602060405180830381865afa158015610cf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1b91906112a8565b610fd9565b5050565b60008173ffffffffffffffffffffffffffffffffffffffff164760405160006040518083038185875af1925050503d8060008114610d7e576040519150601f19603f3d011682016040523d82523d6000602084013e610d83565b606091505b5050905080610df2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f7769746864726177206661696c65640000000000000000000000000000000000604482015260640160405180910390fd5b505050565b6805345cdf77eb68f44c5481810181811015610e1b5763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146108c1576382b429006000526004601cfd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b81602052637f5e9f20600c52826000526034600c2080546001810115610f4e5780831115610f48576313be252b6000526004601cfd5b82810382555b5050505050565b6387a211a2600c52816000526020600c20805480831115610f7e5763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d15600160005114171661101e576390b8ec186000526004601cfd5b6000603452505050565b600060208083528351808285015260005b8181101561105557858101830151858201604001528201611039565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b73ffffffffffffffffffffffffffffffffffffffff81168114610c3757600080fd5b600080604083850312156110c957600080fd5b82356110d481611094565b946020939093013593505050565b6000806000606084860312156110f757600080fd5b833561110281611094565b9250602084013561111281611094565b929592945050506040919091013590565b8035801515811461113357600080fd5b919050565b60006020828403121561114a57600080fd5b610bf382611123565b60006020828403121561116557600080fd5b8135610bf381611094565b6000806040838503121561118357600080fd5b823561118e81611094565b915061119c60208401611123565b90509250929050565b600080600080600080600060e0888a0312156111c057600080fd5b87356111cb81611094565b965060208801356111db81611094565b95506040880135945060608801359350608088013560ff811681146111ff57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561122f57600080fd5b823561123a81611094565b9150602083013561124a81611094565b809150509250929050565b600181811c9082168061126957607f821691505b6020821081036112a2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6000602082840312156112ba57600080fd5b505191905056",
"sourceMap": "376:3092:28:-:0;;;719:183;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;785:28;802:10;785:16;:28::i;:::-;823:5;:13;831:5;823;:13;:::i;:::-;-1:-1:-1;846:7:28;:17;856:7;846;:17;:::i;:::-;-1:-1:-1;;874:14:28;:21;;-1:-1:-1;;874:21:28;891:4;874:21;;;-1:-1:-1;376:3092:28;;4883:1190:22;-1:-1:-1;;;;;5793:26:22;-1:-1:-1;;5876:29:22;;;5793:26;6031:1;5991:38;6031:1;;5980:63;4883:1190;:::o;14:127:61:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:61;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:61;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:61:o;991:562::-;1090:6;1098;1151:2;1139:9;1130:7;1126:23;1122:32;1119:52;;;1167:1;1164;1157:12;1119:52;1194:16;;-1:-1:-1;;;;;1259:14:61;;;1256:34;;;1286:1;1283;1276:12;1256:34;1309:61;1362:7;1353:6;1342:9;1338:22;1309:61;:::i;:::-;1299:71;;1416:2;1405:9;1401:18;1395:25;1379:41;;1445:2;1435:8;1432:16;1429:36;;;1461:1;1458;1451:12;1429:36;;1484:63;1539:7;1528:8;1517:9;1513:24;1484:63;:::i;:::-;1474:73;;;991:562;;;;;:::o;1558:380::-;1637:1;1633:12;;;;1680;;;1701:61;;1755:4;1747:6;1743:17;1733:27;;1701:61;1808:2;1800:6;1797:14;1777:18;1774:38;1771:161;;1854:10;1849:3;1845:20;1842:1;1835:31;1889:4;1886:1;1879:15;1917:4;1914:1;1907:15;1771:161;;1558:380;;;:::o;2069:545::-;2171:2;2166:3;2163:11;2160:448;;;2207:1;2232:5;2228:2;2221:17;2277:4;2273:2;2263:19;2347:2;2335:10;2331:19;2328:1;2324:27;2318:4;2314:38;2383:4;2371:10;2368:20;2365:47;;;-1:-1:-1;2406:4:61;2365:47;2461:2;2456:3;2452:12;2449:1;2445:20;2439:4;2435:31;2425:41;;2516:82;2534:2;2527:5;2524:13;2516:82;;;2579:17;;;2560:1;2549:13;2516:82;;;2520:3;;;2160:448;2069:545;;;:::o;2790:1352::-;2910:10;;-1:-1:-1;;;;;2932:30:61;;2929:56;;;2965:18;;:::i;:::-;2994:97;3084:6;3044:38;3076:4;3070:11;3044:38;:::i;:::-;3038:4;2994:97;:::i;:::-;3146:4;;3210:2;3199:14;;3227:1;3222:663;;;;3929:1;3946:6;3943:89;;;-1:-1:-1;3998:19:61;;;3992:26;3943:89;-1:-1:-1;;2747:1:61;2743:11;;;2739:24;2735:29;2725:40;2771:1;2767:11;;;2722:57;4045:81;;3192:944;;3222:663;2016:1;2009:14;;;2053:4;2040:18;;-1:-1:-1;;3258:20:61;;;3376:236;3390:7;3387:1;3384:14;3376:236;;;3479:19;;;3473:26;3458:42;;3571:27;;;;3539:1;3527:14;;;;3406:19;;3376:236;;;3380:3;3640:6;3631:7;3628:19;3625:201;;;3701:19;;;3695:26;-1:-1:-1;;3784:1:61;3780:14;;;3796:3;3776:24;3772:37;3768:42;3753:58;3738:74;;3625:201;-1:-1:-1;;;;;3872:1:61;3856:14;;;3852:22;3839:36;;-1:-1:-1;2790:1352:61:o;:::-;376:3092:28;;;;;;",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x6080604052600436106101ac5760003560e01c8063715018a6116100ec578063cb177b1e1161008a578063f04e283e11610064578063f04e283e146104bf578063f2fde38b146104d2578063feaea586146104e5578063fee81cf41461050557600080fd5b8063cb177b1e1461045f578063d505accf1461047f578063dd62ed3e1461049f57600080fd5b806395d89b41116100c657806395d89b41146103da5780639dc29fac146103ef578063a9059cbb1461040f578063ad0e7d8c1461042f57600080fd5b8063715018a61461036b5780637ecebe00146103735780638da5cb5b146103a657600080fd5b80633644e5151161015957806354d1f13d1161013357806354d1f13d146102c85780636afdd850146102d0578063705e6a5b1461031857806370a082311461033857600080fd5b80633644e51514610279578063407c48b41461028e57806340c10f19146102a857600080fd5b806323b872dd1161018a57806323b872dd146102335780632569296214610253578063313ce5671461025d57600080fd5b806306fdde03146101b1578063095ea7b3146101dc57806318160ddd1461020c575b600080fd5b3480156101bd57600080fd5b506101c6610538565b6040516101d39190611028565b60405180910390f35b3480156101e857600080fd5b506101fc6101f73660046110b6565b6105ca565b60405190151581526020016101d3565b34801561021857600080fd5b506805345cdf77eb68f44c545b6040519081526020016101d3565b34801561023f57600080fd5b506101fc61024e3660046110e2565b61061e565b61025b6106dc565b005b34801561026957600080fd5b50604051601281526020016101d3565b34801561028557600080fd5b5061022561072c565b34801561029a57600080fd5b506002546101fc9060ff1681565b3480156102b457600080fd5b506101fc6102c33660046110b6565b6107a9565b61025b610805565b3480156102dc57600080fd5b506102f36e22d473030f116ddee9f6b43ac78ba381565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d3565b34801561032457600080fd5b5061025b610333366004611138565b610841565b34801561034457600080fd5b50610225610353366004611153565b6387a211a2600c908152600091909152602090205490565b61025b6108af565b34801561037f57600080fd5b5061022561038e366004611153565b6338377508600c908152600091909152602090205490565b3480156103b257600080fd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927546102f3565b3480156103e657600080fd5b506101c66108c3565b3480156103fb57600080fd5b506101fc61040a3660046110b6565b6108d2565b34801561041b57600080fd5b506101fc61042a3660046110b6565b610906565b34801561043b57600080fd5b506101fc61044a366004611153565b60036020526000908152604090205460ff1681565b34801561046b57600080fd5b5061025b61047a366004611170565b61097d565b34801561048b57600080fd5b5061025b61049a3660046111a5565b6109db565b3480156104ab57600080fd5b506102256104ba36600461121c565b610b75565b61025b6104cd366004611153565b610bfa565b61025b6104e0366004611153565b610c3a565b3480156104f157600080fd5b5061025b61050036600461121c565b610c61565b34801561051157600080fd5b50610225610520366004611153565b63389a75e1600c908152600091909152602090205490565b60606000805461054790611255565b80601f016020809104026020016040519081016040528092919081815260200182805461057390611255565b80156105c05780601f10610595576101008083540402835291602001916105c0565b820191906000526020600020905b8154815290600101906020018083116105a357829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a35060015b92915050565b60008360601b33602052637f5e9f208117600c526034600c208054600181011561065e5780851115610658576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106875763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b60006202a30067ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b600080610737610538565b8051906020012090506040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81528160208201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a081209250505090565b3360009081526003602052604081205460ff166107f2576040517ff8d2906c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107fc8383610df7565b50600192915050565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b610849610e76565b60405181151581527f383d8f27281deff0ab982f76ad2feac76f0cb5d922008a4642d8765c748591329060200160405180910390a1600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6108b7610e76565b6108c16000610eac565b565b60606001805461054790611255565b600073ffffffffffffffffffffffffffffffffffffffff831633146108fc576108fc833384610f12565b6107fc8383610f55565b60006387a211a2600c52336000526020600c208054808411156109315763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a36107fc565b610985610e76565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60006109e5610538565b80519060200120905084421115610a0457631a15a3cc6000526004601cfd5b6040518860601b60601c98508760601b60601c975065383775081901600e52886000526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83528360208401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a60208401528960408401528860608401528060808401528760a084015260c08320604e526042602c206000528660ff1660205285604052846060526020806080600060015afa8b3d5114610b105763ddafbaef6000526004601cfd5b019055777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82166e22d473030f116ddee9f6b43ac78ba3148015610bad575060025460ff165b15610bd957507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610618565b6020829052637f5e9f20600c908152600084905260349020545b9392505050565b610c02610e76565b63389a75e1600c52806000526020600c208054421115610c2a57636f5e88186000526004601cfd5b60009055610c3781610eac565b50565b610c42610e76565b8060601b610c5857637448fbae6000526004601cfd5b610c3781610eac565b610c69610e76565b73ffffffffffffffffffffffffffffffffffffffff821615610d24576040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152610d20908390839073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401602060405180830381865afa158015610cf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1b91906112a8565b610fd9565b5050565b60008173ffffffffffffffffffffffffffffffffffffffff164760405160006040518083038185875af1925050503d8060008114610d7e576040519150601f19603f3d011682016040523d82523d6000602084013e610d83565b606091505b5050905080610df2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f7769746864726177206661696c65640000000000000000000000000000000000604482015260640160405180910390fd5b505050565b6805345cdf77eb68f44c5481810181811015610e1b5763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146108c1576382b429006000526004601cfd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b81602052637f5e9f20600c52826000526034600c2080546001810115610f4e5780831115610f48576313be252b6000526004601cfd5b82810382555b5050505050565b6387a211a2600c52816000526020600c20805480831115610f7e5763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d15600160005114171661101e576390b8ec186000526004601cfd5b6000603452505050565b600060208083528351808285015260005b8181101561105557858101830151858201604001528201611039565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b73ffffffffffffffffffffffffffffffffffffffff81168114610c3757600080fd5b600080604083850312156110c957600080fd5b82356110d481611094565b946020939093013593505050565b6000806000606084860312156110f757600080fd5b833561110281611094565b9250602084013561111281611094565b929592945050506040919091013590565b8035801515811461113357600080fd5b919050565b60006020828403121561114a57600080fd5b610bf382611123565b60006020828403121561116557600080fd5b8135610bf381611094565b6000806040838503121561118357600080fd5b823561118e81611094565b915061119c60208401611123565b90509250929050565b600080600080600080600060e0888a0312156111c057600080fd5b87356111cb81611094565b965060208801356111db81611094565b95506040880135945060608801359350608088013560ff811681146111ff57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561122f57600080fd5b823561123a81611094565b9150602083013561124a81611094565b809150509250929050565b600181811c9082168061126957607f821691505b6020821081036112a2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6000602082840312156112ba57600080fd5b505191905056",
"sourceMap": "376:3092:28:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;997:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7435:573:23;;;;;;;;;;-1:-1:-1;7435:573:23;;;;;:::i;:::-;;:::i;:::-;;;1270:14:61;;1263:22;1245:41;;1233:2;1218:18;7435:573:23;1105:187:61;6287:195:23;;;;;;;;;;-1:-1:-1;6447:18:23;6441:25;6287:195;;;1443:25:61;;;1431:2;1416:18;6287:195:23;1297:177:61;9969:2191:23;;;;;;;;;;-1:-1:-1;9969:2191:23;;;;;:::i;:::-;;:::i;9021:617:22:-;;;:::i;:::-;;908:83:28;;;;;;;;;;-1:-1:-1;908:83:28;;982:2;2082:36:61;;2070:2;2055:18;908:83:28;1940:184:61;16620:693:23;;;;;;;;;;;;;:::i;594:26:28:-;;;;;;;;;;-1:-1:-1;594:26:28;;;;;;;;1671:142;;;;;;;;;;-1:-1:-1;1671:142:28;;;;;:::i;:::-;;:::i;9720:456:22:-;;;:::i;453:76:28:-;;;;;;;;;;;;487:42;453:76;;;;;2487:42:61;2475:55;;;2457:74;;2445:2;2430:18;453:76:28;2311:226:61;2367:153:28;;;;;;;;;;-1:-1:-1;2367:153:28;;;;;:::i;:::-;;:::i;6548:286:23:-;;;;;;;;;;-1:-1:-1;6548:286:23;;;;;:::i;:::-;6716:18;6710:4;6703:32;;;6611:14;6748:19;;;;6812:4;6796:21;;6790:28;;6548:286;8762:100:22;;;:::i;12800:340:23:-;;;;;;;;;;-1:-1:-1;12800:340:23;;;;;:::i;:::-;13023:17;13017:4;13010:31;;;12860:14;13054:19;;;;13118:4;13102:21;;13096:28;;12800:340;11408:182:22;;;;;;;;;;-1:-1:-1;11562:11:22;11556:18;11408:182;;1093:94:28;;;;;;;;;;;;;:::i;1958:236::-;;;;;;;;;;-1:-1:-1;1958:236:28;;;;;:::i;:::-;;:::i;8195:1406:23:-;;;;;;;;;;-1:-1:-1;8195:1406:23;;;;;:::i;:::-;;:::i;670:42:28:-;;;;;;;;;;-1:-1:-1;670:42:28;;;;;:::i;:::-;;;;;;;;;;;;;;;;1393:121;;;;;;;;;;-1:-1:-1;1393:121:28;;;;;:::i;:::-;;:::i;13324:3215:23:-;;;;;;;;;;-1:-1:-1;13324:3215:23;;;;;:::i;:::-;;:::i;2653:223:28:-;;;;;;;;;;-1:-1:-1;2653:223:28;;;;;:::i;:::-;;:::i;10363:708:22:-;;;;;;:::i;:::-;;:::i;8348:349::-;;;;;;:::i;:::-;;:::i;3094:372:28:-;;;;;;;;;;-1:-1:-1;3094:372:28;;;;;:::i;:::-;;:::i;11693:435:22:-;;;;;;;;;;-1:-1:-1;11693:435:22;;;;;:::i;:::-;11963:19;11957:4;11950:33;;;11812:14;11996:26;;;;12106:4;12090:21;;12084:28;;11693:435;997:90:28;1043:13;1075:5;1068:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;997:90;:::o;7435:573:23:-;7509:4;7668:7;7662:4;7655:21;7702:20;7696:4;7689:34;7749:8;7743:4;7736:22;7801:6;7794:4;7788;7778:21;7771:37;7876:6;7870:4;7863:20;7964:4;7958:11;7954:2;7950:20;7940:8;7913:25;7907:4;7901;7896:75;-1:-1:-1;7997:4:23;7435:573;;;;;:::o;9969:2191::-;10057:4;10208;10204:2;10200:13;10301:8;10295:4;10288:22;10346:20;10339:5;10336:31;10330:4;10323:45;10418:4;10412;10402:21;10460:13;10454:20;10572:1;10560:10;10556:18;10553:418;;;10688:10;10680:6;10677:22;10674:159;;;10735:10;10729:4;10722:24;10810:4;10804;10797:18;10674:159;10949:6;10937:10;10933:23;10918:13;10911:46;10553:418;;;11067:18;11060:5;11057:29;11051:4;11044:43;11139:4;11133;11123:21;11182:15;11176:22;11272:11;11264:6;11261:23;11258:146;;;11316:10;11310:4;11303:24;11385:4;11379;11372:18;11258:146;11513:6;11500:11;11496:24;11479:15;11472:49;;;11596:2;11590:4;11583:16;11649:4;11643;11633:21;11899:6;11883:13;11877:20;11873:33;11858:13;11851:56;;11975:6;11969:4;11962:20;12069:4;12063:11;12059:2;12055:20;12047:5;12043:2;12039:14;12012:25;12006:4;12000;11995:81;;-1:-1:-1;12149:4:23;9969:2191;;;;;:::o;9021:617:22:-;9114:15;7972:9;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;16620:693:23:-;16677:14;;16900:6;:4;:6::i;:::-;16884:24;;;;;;16873:35;;16999:4;16993:11;17060:16;17057:1;17050:27;17111:8;17104:4;17101:1;17097:12;17090:30;17154:13;17147:4;17144:1;17140:12;17133:35;17202:9;17195:4;17192:1;17188:12;17181:31;17246:9;17239:4;17236:1;17232:12;17225:31;17292:4;17289:1;17279:18;17269:28;;;16970:337;16620:693;:::o;1671:142:28:-;1241:10;1747:4;1230:22;;;:10;:22;;;;;;;;1225:47;;1261:11;;;;;;;;;;;;;;1225:47;1763:22:::1;1769:7;1778:6;1763:5;:22::i;:::-;-1:-1:-1::0;1802:4:28::1;1671:142:::0;;;;:::o;9720:456:22:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;2367:153:28:-;12517:13:22;:11;:13::i;:::-;2447:32:28::1;::::0;1270:14:61;;1263:22;1245:41;;2447:32:28::1;::::0;1233:2:61;1218:18;2447:32:28::1;;;;;;;2489:14;:24:::0;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;2367:153::o;8762:100:22:-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;1093:94:28:-;1141:13;1173:7;1166:14;;;;;:::i;1958:236::-;2023:4;2043:21;;;2054:10;2043:21;2039:96;;2080:44;2096:7;2105:10;2117:6;2080:15;:44::i;:::-;2144:22;2150:7;2159:6;2144:5;:22::i;8195:1406:23:-;8265:4;8474:18;8468:4;8461:32;8519:8;8513:4;8506:22;8580:4;8574;8564:21;8623:15;8617:22;8713:11;8705:6;8702:23;8699:146;;;8757:10;8751:4;8744:24;8826:4;8820;8813:18;8699:146;8954:6;8941:11;8937:24;8920:15;8913:49;;;9037:2;9031:4;9024:16;9090:4;9084;9074:21;9340:6;9324:13;9318:20;9314:33;9299:13;9292:56;;9416:6;9410:4;9403:20;9504:4;9498:11;9494:2;9490:20;9480:8;9453:25;9447:4;9441;9436:75;9530:43;3094:372:28;1393:121;12517:13:22;:11;:13::i;:::-;1477:19:28::1;::::0;;;::::1;;::::0;;;:10:::1;:19;::::0;;;;:30;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;1393:121::o;13324:3215:23:-;13523:16;13720:6;:4;:6::i;:::-;13704:24;;;;;;13693:35;;13896:8;13883:11;13880:25;13877:142;;;13937:10;13931:4;13924:24;14000:4;13994;13987:18;13877:142;14047:4;14041:11;14163:5;14159:2;14155:14;14151:2;14147:23;14138:32;;14210:7;14206:2;14202:16;14198:2;14194:25;14183:36;;14303:39;14297:4;14290:53;14369:5;14363:4;14356:19;14421:4;14415;14405:21;14463:9;14457:16;14541;14538:1;14531:27;14592:8;14585:4;14582:1;14578:12;14571:30;14635:13;14628:4;14625:1;14621:12;14614:35;14683:9;14676:4;14673:1;14669:12;14662:31;14727:9;14720:4;14717:1;14713:12;14706:31;14776:4;14773:1;14763:18;14757:4;14750:32;14845:16;14842:1;14835:27;14896:5;14889:4;14886:1;14882:12;14875:27;14936:7;14929:4;14926:1;14922:12;14915:29;14978:5;14971:4;14968:1;14964:12;14957:27;15018:10;15011:4;15008:1;15004:12;14997:32;15063:8;15056:4;15053:1;15049:12;15042:30;15111:4;15108:1;15098:18;15092:4;15085:32;15206:4;15200;15190:21;15184:4;15177:35;15248:1;15242:4;15238:12;15232:4;15225:26;15277:1;15271:4;15264:15;15305:1;15299:4;15292:15;15365:4;15359;15353;15350:1;15347;15340:5;15329:41;15786:5;15767:16;15761:23;15758:34;15748:159;;15825:10;15819:4;15812:24;15888:4;15882;15875:18;15748:159;15992:18;15974:37;;16190:30;16187:43;;16181:4;16174:57;16267:4;16261;16251:21;16244:36;;;16222:7;16387:5;16360:25;-1:-1:-1;16347:4:23;16340:12;;16335:67;16422:4;16415:15;-1:-1:-1;;16492:1:23;16486:4;16479:15;-1:-1:-1;;;;;;13324:3215:23:o;2653:223:28:-;2735:7;2758:18;;;487:42;2758:18;:36;;;;-1:-1:-1;2780:14:28;;;;2758:36;2754:66;;;-1:-1:-1;2803:17:28;2796:24;;2754:66;7144:4:23;7137:21;;;7184:20;7178:4;7171:34;;;7041:14;7218:19;;;7282:4;7266:21;;7260:28;2837:32:28;2830:39;2653:223;-1:-1:-1;;;2653:223:28:o;10363:708:22:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;10999:23:::0;;11041::::1;11051:12:::0;11041:9:::1;:23::i;:::-;10363:708:::0;:::o;8348:349::-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;3094:372:28:-:0;12517:13:22;:11;:13::i;:::-;3177:28:28::1;::::0;::::1;::::0;3173:287:::1;;3270:30;::::0;;;;3294:4:::1;3270:30;::::0;::::1;2457:74:61::0;3221:80:28::1;::::0;3258:5;;3266:2;;3270:15:::1;::::0;::::1;::::0;::::1;::::0;2430:18:61;;3270:30:28::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3221:28;:80::i;:::-;3094:372:::0;;:::o;3173:287::-:1;3333:12;3358:2;3350:16;;3374:21;3350:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3332:68;;;3422:7;3414:35;;;::::0;::::1;::::0;;6147:2:61;3414:35:28::1;::::0;::::1;6129:21:61::0;6186:2;6166:18;;;6159:30;6225:17;6205:18;;;6198:45;6260:18;;3414:35:28::1;;;;;;;;3318:142;3094:372:::0;;:::o;17717:1172:23:-;17938:18;17932:25;18017:6;17998:17;17994:30;18114:17;18096:16;18093:39;18090:162;;;18164:10;18158:4;18151:24;18233:4;18227;18220:18;18090:162;18339:16;18319:18;18312:44;;;18442:18;18436:4;18429:32;18487:2;18481:4;18474:16;18540:4;18534;18524:21;18656:6;18640:13;18634:20;18630:33;18615:13;18608:56;;18732:6;18726:4;18719:20;18813:4;18807:11;18803:2;18799:20;18796:1;18769:25;18763:4;18757;18752:68;3094:372:28;;:::o;7292:355:22:-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;6145:1089;6857:11;7093:16;;6941:26;;;;;;;7053:38;7050:1;;7042:78;7177:27;6145:1089::o;22532:947:23:-;22773:7;22767:4;22760:21;22807:20;22801:4;22794:34;22854:5;22848:4;22841:19;22910:4;22904;22894:21;22952:13;22946:20;23064:1;23052:10;23048:18;23045:418;;;23180:10;23172:6;23169:22;23166:159;;;23227:10;23221:4;23214:24;23302:4;23296;23289:18;23166:159;23441:6;23429:10;23425:23;23410:13;23403:46;23045:418;;;22532:947;;;:::o;19295:1119::-;19562:18;19556:4;19549:32;19607:4;19601;19594:18;19664:4;19658;19648:21;19707:15;19701:22;19797:11;19789:6;19786:23;19783:146;;;19841:10;19835:4;19828:24;19910:4;19904;19897:18;19783:146;20021:24;;;19997:49;;20156:18;20150:25;;20146:38;;;20119:66;;-1:-1:-1;20240:20:23;;;20317:22;;;20290:25;20284:4;-1:-1:-1;20273:70:23;3094:372:28;;:::o;11375:939:24:-;11538:2;11532:4;11525:16;11595:6;11589:4;11582:20;11660:34;11654:4;11647:48;12049:4;12043;12037;12031;12028:1;12021:5;12014;12009:45;11943:16;11936:24;11932:1;11925:4;11919:11;11916:18;11913:48;11828:244;11801:400;;12118:10;12112:4;12105:24;12182:4;12176;12169:18;11801:400;12227:1;12221:4;12214:15;11375:939;;;:::o;14:607:61:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;612:2;542:66;537:2;529:6;525:15;521:88;510:9;506:104;502:113;494:121;;;;14:607;;;;:::o;626:154::-;712:42;705:5;701:54;694:5;691:65;681:93;;770:1;767;760:12;785:315;853:6;861;914:2;902:9;893:7;889:23;885:32;882:52;;;930:1;927;920:12;882:52;969:9;956:23;988:31;1013:5;988:31;:::i;:::-;1038:5;1090:2;1075:18;;;;1062:32;;-1:-1:-1;;;785:315:61:o;1479:456::-;1556:6;1564;1572;1625:2;1613:9;1604:7;1600:23;1596:32;1593:52;;;1641:1;1638;1631:12;1593:52;1680:9;1667:23;1699:31;1724:5;1699:31;:::i;:::-;1749:5;-1:-1:-1;1806:2:61;1791:18;;1778:32;1819:33;1778:32;1819:33;:::i;:::-;1479:456;;1871:7;;-1:-1:-1;;;1925:2:61;1910:18;;;;1897:32;;1479:456::o;2542:160::-;2607:20;;2663:13;;2656:21;2646:32;;2636:60;;2692:1;2689;2682:12;2636:60;2542:160;;;:::o;2707:180::-;2763:6;2816:2;2804:9;2795:7;2791:23;2787:32;2784:52;;;2832:1;2829;2822:12;2784:52;2855:26;2871:9;2855:26;:::i;2892:247::-;2951:6;3004:2;2992:9;2983:7;2979:23;2975:32;2972:52;;;3020:1;3017;3010:12;2972:52;3059:9;3046:23;3078:31;3103:5;3078:31;:::i;3144:315::-;3209:6;3217;3270:2;3258:9;3249:7;3245:23;3241:32;3238:52;;;3286:1;3283;3276:12;3238:52;3325:9;3312:23;3344:31;3369:5;3344:31;:::i;:::-;3394:5;-1:-1:-1;3418:35:61;3449:2;3434:18;;3418:35;:::i;:::-;3408:45;;3144:315;;;;;:::o;3464:829::-;3575:6;3583;3591;3599;3607;3615;3623;3676:3;3664:9;3655:7;3651:23;3647:33;3644:53;;;3693:1;3690;3683:12;3644:53;3732:9;3719:23;3751:31;3776:5;3751:31;:::i;:::-;3801:5;-1:-1:-1;3858:2:61;3843:18;;3830:32;3871:33;3830:32;3871:33;:::i;:::-;3923:7;-1:-1:-1;3977:2:61;3962:18;;3949:32;;-1:-1:-1;4028:2:61;4013:18;;4000:32;;-1:-1:-1;4084:3:61;4069:19;;4056:33;4133:4;4120:18;;4108:31;;4098:59;;4153:1;4150;4143:12;4098:59;3464:829;;;;-1:-1:-1;3464:829:61;;;;4176:7;4230:3;4215:19;;4202:33;;-1:-1:-1;4282:3:61;4267:19;;;4254:33;;3464:829;-1:-1:-1;;3464:829:61:o;4298:388::-;4366:6;4374;4427:2;4415:9;4406:7;4402:23;4398:32;4395:52;;;4443:1;4440;4433:12;4395:52;4482:9;4469:23;4501:31;4526:5;4501:31;:::i;:::-;4551:5;-1:-1:-1;4608:2:61;4593:18;;4580:32;4621:33;4580:32;4621:33;:::i;:::-;4673:7;4663:17;;;4298:388;;;;;:::o;5104:437::-;5183:1;5179:12;;;;5226;;;5247:61;;5301:4;5293:6;5289:17;5279:27;;5247:61;5354:2;5346:6;5343:14;5323:18;5320:38;5317:218;;5391:77;5388:1;5381:88;5492:4;5489:1;5482:15;5520:4;5517:1;5510:15;5317:218;;5104:437;;;:::o;5546:184::-;5616:6;5669:2;5657:9;5648:7;5644:23;5640:32;5637:52;;;5685:1;5682;5675:12;5637:52;-1:-1:-1;5708:16:61;;5546:184;-1:-1:-1;5546:184:61:o",
"linkReferences": {}
},
"methodIdentifiers": {
"DOMAIN_SEPARATOR()": "3644e515",
"PERMIT2()": "6afdd850",
"allowance(address,address)": "dd62ed3e",
"approve(address,uint256)": "095ea7b3",
"balanceOf(address)": "70a08231",
"burn(address,uint256)": "9dc29fac",
"cancelOwnershipHandover()": "54d1f13d",
"completeOwnershipHandover(address)": "f04e283e",