0 txs
0 calls
constructor
constructor()
functions
addressList
viewfunction addressList(uint256) view returns (address)
FEE_DENOM
viewfunction FEE_DENOM() view returns (uint256)
owner
viewfunction owner() view returns (address)
swapMultiFee
viewfunction swapMultiFee() view returns (uint256)
renounceOwnership
nonpayablefunction renounceOwnership()
setSwapMultiFee
nonpayablefunction setSwapMultiFee(uint256 _swapMultiFee)
swap
payablefunction swap(tuple tokenInfo, bytes pathDefinition, address executor) payable returns (uint256 amountOut)
swapMulti
payablefunction swapMulti(tuple[] inputs, tuple[] outputs, uint256 valueOutMin, bytes pathDefinition, address executor) payable returns (uint256[] amountsOut)
swapMultiPermit2
payablefunction swapMultiPermit2(tuple permit2, tuple[] inputs, tuple[] outputs, uint256 valueOutMin, bytes pathDefinition, address executor) payable returns (uint256[] amountsOut)
swapPermit2
nonpayablefunction swapPermit2(tuple permit2, tuple tokenInfo, bytes pathDefinition, address executor) returns (uint256 amountOut)
swapRouterFunds
nonpayablefunction swapRouterFunds(tuple[] inputs, tuple[] outputs, uint256 valueOutMin, bytes pathDefinition, address executor) returns (uint256[] amountsOut)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferRouterFunds
nonpayablefunction transferRouterFunds(address[] tokens, uint256[] amounts, address dest)
writeAddressList
nonpayablefunction writeAddressList(address[] addresses)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Swap
event Swap(address sender, uint256 inputAmount, address inputToken, uint256 amountOut, address outputToken, int256 slippage)
SwapMulti
event SwapMulti(address sender, uint256[] amountsIn, address[] tokensIn, uint256[] amountsOut, address[] tokensOut)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b5062000032620000266200004060201b60201c565b6200004860201b60201c565b60006002819055506200010c565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6147d4806200011c6000396000f3fe6080604052600436106100e15760003560e01c80638da5cb5b1161007f578063a2814d7d11610059578063a2814d7d146102a2578063b810fb43146102df578063e7d3fc601461031c578063f2fde38b14610347576100e8565b80638da5cb5b1461021e5780639286b93d1461024957806396f2064714610272576100e8565b80634886c675116100bb5780634886c6751461017c5780634fb90a97146101a75780635c8f00fc146101d7578063715018a614610207576100e8565b8063174da621146100ed57806328be42f4146101165780633596f9a214610153576100e8565b366100e857005b600080fd5b3480156100f957600080fd5b50610114600480360381019061010f9190612bb7565b610370565b005b34801561012257600080fd5b5061013d60048036038101906101389190612fbc565b61048b565b60405161014a919061314c565b60405180910390f35b34801561015f57600080fd5b5061017a6004803603810190610175919061316e565b610a9c565b005b34801561018857600080fd5b50610191610b54565b60405161019e91906131ca565b60405180910390f35b6101c160048036038101906101bc9190612fbc565b610b60565b6040516101ce919061314c565b60405180910390f35b6101f160048036038101906101ec919061332e565b610b7c565b6040516101fe919061314c565b60405180910390f35b34801561021357600080fd5b5061021c6110b6565b005b34801561022a57600080fd5b506102336110ca565b6040516102409190613440565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b919061345b565b6110f3565b005b61028c6004803603810190610287919061353c565b61115c565b60405161029991906131ca565b60405180910390f35b3480156102ae57600080fd5b506102c960048036038101906102c491906135b2565b611174565b6040516102d691906131ca565b60405180910390f35b3480156102eb57600080fd5b506103066004803603810190610301919061345b565b61128c565b6040516103139190613440565b60405180910390f35b34801561032857600080fd5b506103316112cb565b60405161033e91906131ca565b60405180910390f35b34801561035357600080fd5b5061036e60048036038101906103699190613659565b6112d1565b005b610378611355565b8282905085859050146103c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b7906136e3565b60405180910390fd5b60005b85859050811015610483576104708686838181106103e4576103e3613703565b5b90506020020160208101906103f99190613659565b83600087878681811061040f5761040e613703565b5b905060200201351461043a5786868581811061042e5761042d613703565b5b9050602002013561046b565b61046a8989868181106104505761044f613703565b5b90506020020160208101906104659190613659565b6113d3565b5b6114a2565b808061047b90613761565b9150506103c3565b505050505050565b6060610495611355565b6000875167ffffffffffffffff8111156104b2576104b1612c5d565b5b6040519080825280602002602001820160405280156104e05781602001602082028036833780820191505090505b5090506000885167ffffffffffffffff811115610500576104ff612c5d565b5b60405190808252806020026020018201604052801561052e5781602001602082028036833780820191505090505b50905060005b89518110156106a6578981815181106105505761054f613703565b5b60200260200101516000015182828151811061056f5761056e613703565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060008a82815181106105be576105bd613703565b5b602002602001015160200151146105f3578981815181106105e2576105e1613703565b5b602002602001015160200151610617565b61061682828151811061060957610608613703565b5b60200260200101516113d3565b5b83828151811061062a57610629613703565b5b60200260200101818152505061069382828151811061064c5761064b613703565b5b60200260200101518b838151811061066757610666613703565b5b60200260200101516040015185848151811061068657610685613703565b5b60200260200101516114a2565b808061069e90613761565b915050610534565b506000885167ffffffffffffffff8111156106c4576106c3612c5d565b5b6040519080825280602002602001820160405280156106f25781602001602082028036833780820191505090505b5090506000895167ffffffffffffffff81111561071257610711612c5d565b5b6040519080825280602002602001820160405280156107405781602001602082028036833780820191505090505b50905060005b8a51811015610810578a818151811061076257610761613703565b5b60200260200101516000015182828151811061078157610780613703565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506107de8282815181106107d1576107d0613703565b5b60200260200101516113d3565b8382815181106107f1576107f0613703565b5b602002602001018181525050808061080890613761565b915050610746565b508573ffffffffffffffffffffffffffffffffffffffff1663cb70e27360008a8a88336040518663ffffffff1660e01b815260040161085294939291906137e8565b6000604051808303818588803b15801561086b57600080fd5b505af115801561087f573d6000803e3d6000fd5b505050505060008a5167ffffffffffffffff8111156108a1576108a0612c5d565b5b6040519080825280602002602001820160405280156108cf5781602001602082028036833780820191505090505b50955060005b8b51811015610a0a578381815181106108f1576108f0613703565b5b602002602001015161091c84838151811061090f5761090e613703565b5b60200260200101516113d3565b610926919061382f565b87828151811061093957610938613703565b5b6020026020010181815250506109a68c828151811061095b5761095a613703565b5b6020026020010151600001518d838151811061097a57610979613703565b5b60200260200101516040015189848151811061099957610998613703565b5b60200260200101516114a2565b8b81815181106109b9576109b8613703565b5b6020026020010151602001518782815181106109d8576109d7613703565b5b60200260200101516109ea9190613863565b826109f591906138bd565b91508080610a0290613761565b9150506108d5565b5089811015610a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a459061395f565b60405180910390fd5b7f6c7bada887c71a173e09f2aff5726684d397ccd09b66f973f3787b499aceaf013386868986604051610a85959493929190613a3d565b60405180910390a150505050509695505050505050565b610aa4611355565b60005b82829050811015610b4f576001838383818110610ac757610ac6613703565b5b9050602002016020810190610adc9190613659565b9080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508080610b4790613761565b915050610aa7565b505050565b670de0b6b3a764000081565b6060610b708787878787876115ba565b90509695505050505050565b6060610b86612a09565b60606000803411610b98578951610ba7565b60018a51610ba6919061382f565b5b905060405180606001604052808267ffffffffffffffff811115610bce57610bcd612c5d565b5b604051908082528060200260200182016040528015610c0757816020015b610bf4612a2a565b815260200190600190039081610bec5790505b5081526020018c6020015181526020018c6040015181525092508067ffffffffffffffff811115610c3b57610c3a612c5d565b5b604051908082528060200260200182016040528015610c7457816020015b610c61612a5a565b815260200190600190039081610c595790505b509150506000805b8a51811015610fdc57600073ffffffffffffffffffffffffffffffffffffffff168b8281518110610cb057610caf613703565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff161415610d4a5760008b8281518110610ced57610cec613703565b5b6020026020010151602001511415610d2457348b8281518110610d1357610d12613703565b5b602002602001015160200181815250505b8a8181518110610d3757610d36613703565b5b6020026020010151602001519150610fc9565b60008b8281518110610d5f57610d5e613703565b5b6020026020010151602001511415610e3c578a8181518110610d8457610d83613703565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401610dc89190613440565b60206040518083038186803b158015610de057600080fd5b505afa158015610df4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e189190613ac1565b8b8281518110610e2b57610e2a613703565b5b602002602001015160200181815250505b6000808314610e5757600182610e52919061382f565b610e59565b815b90508b8281518110610e6e57610e6d613703565b5b60200260200101516000015185600001518281518110610e9157610e90613703565b5b60200260200101516000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508b8281518110610ee257610ee1613703565b5b60200260200101516020015185600001518281518110610f0557610f04613703565b5b602002602001015160200181815250508b8281518110610f2857610f27613703565b5b602002602001015160400151848281518110610f4757610f46613703565b5b60200260200101516000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508b8281518110610f9857610f97613703565b5b602002602001015160200151848281518110610fb757610fb6613703565b5b60200260200101516020018181525050505b8080610fd490613761565b915050610c7c565b5080341461101f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101690613b3a565b60405180910390fd5b50896000015173ffffffffffffffffffffffffffffffffffffffff1663edd9444b8383338e606001516040518563ffffffff1660e01b81526004016110679493929190613ddd565b600060405180830381600087803b15801561108157600080fd5b505af1158015611095573d6000803e3d6000fd5b505050506110a7898989898989611879565b92505050979650505050505050565b6110be611355565b6110c86000612111565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110fb611355565b60c8670de0b6b3a76400006111109190613e66565b811115611152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114990613ee3565b60405180910390fd5b8060028190555050565b600061116a858585856121d5565b9050949350505050565b6000856000015173ffffffffffffffffffffffffffffffffffffffff166330f28b7a604051806060016040528060405180604001604052808a6000015173ffffffffffffffffffffffffffffffffffffffff1681526020018a6020015181525081526020018960200151815260200189604001518152506040518060400160405280896040015173ffffffffffffffffffffffffffffffffffffffff1681526020018960200151815250338a606001516040518563ffffffff1660e01b81526004016112439493929190613f74565b600060405180830381600087803b15801561125d57600080fd5b505af1158015611271573d6000803e3d6000fd5b505050506112818585858561236b565b905095945050505050565b6001818154811061129c57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b6112d9611355565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611349576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134090614033565b60405180910390fd5b61135281612111565b50565b61135d61265d565b73ffffffffffffffffffffffffffffffffffffffff1661137b6110ca565b73ffffffffffffffffffffffffffffffffffffffff16146113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c89061409f565b60405180910390fd5b565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114115747905061149d565b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161144a9190613440565b60206040518083038186803b15801561146257600080fd5b505afa158015611476573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149a9190613ac1565b90505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115895760008273ffffffffffffffffffffffffffffffffffffffff16826040516114fd906140f0565b60006040518083038185875af1925050503d806000811461153a576040519150601f19603f3d011682016040523d82523d6000602084013e61153f565b606091505b5050905080611583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157a90614151565b60405180910390fd5b506115b5565b6115b482828573ffffffffffffffffffffffffffffffffffffffff166126659092919063ffffffff16565b5b505050565b60606000805b885181101561181b57600073ffffffffffffffffffffffffffffffffffffffff168982815181106115f4576115f3613703565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff16141561168e57600089828151811061163157611630613703565b5b6020026020010151602001511415611668573489828151811061165757611656613703565b5b602002602001015160200181815250505b88818151811061167b5761167a613703565b5b6020026020010151602001519150611808565b60008982815181106116a3576116a2613703565b5b6020026020010151602001511415611780578881815181106116c8576116c7613703565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b815260040161170c9190613440565b60206040518083038186803b15801561172457600080fd5b505afa158015611738573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175c9190613ac1565b89828151811061176f5761176e613703565b5b602002602001015160200181815250505b611807338a838151811061179757611796613703565b5b6020026020010151604001518b84815181106117b6576117b5613703565b5b6020026020010151602001518c85815181106117d5576117d4613703565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff166126eb909392919063ffffffff16565b5b808061181390613761565b9150506115c0565b5080341461185e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185590613b3a565b60405180910390fd5b61186c888888888888611879565b9150509695505050505050565b6060600085116118be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b5906141bd565b60405180910390fd5b6000875167ffffffffffffffff8111156118db576118da612c5d565b5b6040519080825280602002602001820160405280156119095781602001602082028036833780820191505090505b5090506000885167ffffffffffffffff81111561192957611928612c5d565b5b6040519080825280602002602001820160405280156119575781602001602082028036833780820191505090505b50905060005b8951811015611bb85789818151811061197957611978613703565b5b60200260200101516020015183828151811061199857611997613703565b5b6020026020010181815250508981815181106119b7576119b6613703565b5b6020026020010151600001518282815181106119d6576119d5613703565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060005b81811015611ad9578a8181518110611a2e57611a2d613703565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168b8381518110611a6357611a62613703565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff161415611ac6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abd90614229565b60405180910390fd5b8080611ad190613761565b915050611a13565b5060005b8951811015611ba457898181518110611af957611af8613703565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168b8381518110611b2e57611b2d613703565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff161415611b91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8890614295565b60405180910390fd5b8080611b9c90613761565b915050611add565b508080611bb090613761565b91505061195d565b506000885167ffffffffffffffff811115611bd657611bd5612c5d565b5b604051908082528060200260200182016040528015611c045781602001602082028036833780820191505090505b50905060005b8951811015611d365760005b81811015611cdc578a8181518110611c3157611c30613703565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168b8381518110611c6657611c65613703565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff161415611cc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc090614301565b60405180910390fd5b8080611cd490613761565b915050611c16565b50611d048a8281518110611cf357611cf2613703565b5b6020026020010151600001516113d3565b828281518110611d1757611d16613703565b5b6020026020010181815250508080611d2e90613761565b915050611c0a565b508473ffffffffffffffffffffffffffffffffffffffff1663cb70e27334898987336040518663ffffffff1660e01b8152600401611d7794939291906137e8565b6000604051808303818588803b158015611d9057600080fd5b505af1158015611da4573d6000803e3d6000fd5b505050505060008060025490508a5167ffffffffffffffff811115611dcc57611dcb612c5d565b5b604051908082528060200260200182016040528015611dfa5781602001602082028036833780820191505090505b50955060005b8b51811015611fa457838181518110611e1c57611e1b613703565b5b6020026020010151611e4b8d8381518110611e3a57611e39613703565b5b6020026020010151600001516113d3565b611e55919061382f565b878281518110611e6857611e67613703565b5b602002602001018181525050670de0b6b3a764000082670de0b6b3a7640000611e91919061382f565b888381518110611ea457611ea3613703565b5b6020026020010151611eb69190613863565b611ec09190613e66565b878281518110611ed357611ed2613703565b5b602002602001018181525050611f408c8281518110611ef557611ef4613703565b5b6020026020010151600001518d8381518110611f1457611f13613703565b5b602002602001015160400151898481518110611f3357611f32613703565b5b60200260200101516114a2565b8b8181518110611f5357611f52613703565b5b602002602001015160200151878281518110611f7257611f71613703565b5b6020026020010151611f849190613863565b83611f8f91906138bd565b92508080611f9c90613761565b915050611e00565b5089821015611fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdf9061395f565b60405180910390fd5b50506000895167ffffffffffffffff81111561200757612006612c5d565b5b6040519080825280602002602001820160405280156120355781602001602082028036833780820191505090505b50905060005b8a518110156120c3578a818151811061205757612056613703565b5b60200260200101516000015182828151811061207657612075613703565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505080806120bb90613761565b91505061203b565b507f6c7bada887c71a173e09f2aff5726684d397ccd09b66f973f3787b499aceaf0133858588856040516120fb959493929190613a3d565b60405180910390a1505050509695505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff16856000015173ffffffffffffffffffffffffffffffffffffffff1614156122775760008560200151141561222b5734856020018181525050612272565b84602001513414612271576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226890613b3a565b60405180910390fd5b5b612355565b60008560200151141561231b57846000015173ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016122c19190613440565b60206040518083038186803b1580156122d957600080fd5b505afa1580156122ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123119190613ac1565b8560200181815250505b6123543386604001518760200151886000015173ffffffffffffffffffffffffffffffffffffffff166126eb909392919063ffffffff16565b5b6123618585858561236b565b9050949350505050565b600084608001518560a0015111156123b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123af9061436d565b60405180910390fd5b60008560a00151116123ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f6906141bd565b60405180910390fd5b846060015173ffffffffffffffffffffffffffffffffffffffff16856000015173ffffffffffffffffffffffffffffffffffffffff161415612476576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246d90614295565b60405180910390fd5b600061248586606001516113d3565b90506000600167ffffffffffffffff8111156124a4576124a3612c5d565b5b6040519080825280602002602001820160405280156124d25781602001602082028036833780820191505090505b5090508660200151816000815181106124ee576124ed613703565b5b6020026020010181815250508373ffffffffffffffffffffffffffffffffffffffff1663cb70e27334888885336040518663ffffffff1660e01b815260040161253a94939291906137e8565b6000604051808303818588803b15801561255357600080fd5b505af1158015612567573d6000803e3d6000fd5b50505050508161257a88606001516113d3565b612584919061382f565b925060008760800151846125989190614397565b905060008113156125ab57876080015193505b8760a001518410156125f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e99061395f565b60405180910390fd5b61260588606001518960c00151866114a2565b7f72c24367077ee479595babb965051fc188b59b5dda2a64df2fc6e3f1dbc113113389602001518a60000151878c606001518660405161264a9695949392919061443a565b60405180910390a1505050949350505050565b600033905090565b6126e68363a9059cbb60e01b848460405160240161268492919061449b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612774565b505050565b61276e846323b872dd60e01b85858560405160240161270c939291906144c4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612774565b50505050565b60006127d6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661283b9092919063ffffffff16565b905060008151111561283657808060200190518101906127f69190614533565b612835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282c906145d2565b60405180910390fd5b5b505050565b606061284a8484600085612853565b90509392505050565b606082471015612898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288f90614664565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516128c191906146b5565b60006040518083038185875af1925050503d80600081146128fe576040519150601f19603f3d011682016040523d82523d6000602084013e612903565b606091505b509150915061291487838387612920565b92505050949350505050565b606083156129835760008351141561297b5761293b85612996565b61297a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297190614718565b60405180910390fd5b5b82905061298e565b61298d83836129b9565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156129cc5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a00919061477c565b60405180910390fd5b60405180606001604052806060815260200160008152602001600081525090565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112612ac357612ac2612a9e565b5b8235905067ffffffffffffffff811115612ae057612adf612aa3565b5b602083019150836020820283011115612afc57612afb612aa8565b5b9250929050565b60008083601f840112612b1957612b18612a9e565b5b8235905067ffffffffffffffff811115612b3657612b35612aa3565b5b602083019150836020820283011115612b5257612b51612aa8565b5b9250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b8482612b59565b9050919050565b612b9481612b79565b8114612b9f57600080fd5b50565b600081359050612bb181612b8b565b92915050565b600080600080600060608688031215612bd357612bd2612a94565b5b600086013567ffffffffffffffff811115612bf157612bf0612a99565b5b612bfd88828901612aad565b9550955050602086013567ffffffffffffffff811115612c2057612c1f612a99565b5b612c2c88828901612b03565b93509350506040612c3f88828901612ba2565b9150509295509295909350565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612c9582612c4c565b810181811067ffffffffffffffff82111715612cb457612cb3612c5d565b5b80604052505050565b6000612cc7612a8a565b9050612cd38282612c8c565b919050565b600067ffffffffffffffff821115612cf357612cf2612c5d565b5b602082029050602081019050919050565b600080fd5b600080fd5b6000819050919050565b612d2181612d0e565b8114612d2c57600080fd5b50565b600081359050612d3e81612d18565b92915050565b600060608284031215612d5a57612d59612d04565b5b612d646060612cbd565b90506000612d7484828501612ba2565b6000830152506020612d8884828501612d2f565b6020830152506040612d9c84828501612ba2565b60408301525092915050565b6000612dbb612db684612cd8565b612cbd565b90508083825260208201905060608402830185811115612dde57612ddd612aa8565b5b835b81811015612e075780612df38882612d44565b845260208401935050606081019050612de0565b5050509392505050565b600082601f830112612e2657612e25612a9e565b5b8135612e36848260208601612da8565b91505092915050565b600067ffffffffffffffff821115612e5a57612e59612c5d565b5b602082029050602081019050919050565b600060608284031215612e8157612e80612d04565b5b612e8b6060612cbd565b90506000612e9b84828501612ba2565b6000830152506020612eaf84828501612d2f565b6020830152506040612ec384828501612ba2565b60408301525092915050565b6000612ee2612edd84612e3f565b612cbd565b90508083825260208201905060608402830185811115612f0557612f04612aa8565b5b835b81811015612f2e5780612f1a8882612e6b565b845260208401935050606081019050612f07565b5050509392505050565b600082601f830112612f4d57612f4c612a9e565b5b8135612f5d848260208601612ecf565b91505092915050565b60008083601f840112612f7c57612f7b612a9e565b5b8235905067ffffffffffffffff811115612f9957612f98612aa3565b5b602083019150836001820283011115612fb557612fb4612aa8565b5b9250929050565b60008060008060008060a08789031215612fd957612fd8612a94565b5b600087013567ffffffffffffffff811115612ff757612ff6612a99565b5b61300389828a01612e11565b965050602087013567ffffffffffffffff81111561302457613023612a99565b5b61303089828a01612f38565b955050604061304189828a01612d2f565b945050606087013567ffffffffffffffff81111561306257613061612a99565b5b61306e89828a01612f66565b9350935050608061308189828a01612ba2565b9150509295509295509295565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6130c381612d0e565b82525050565b60006130d583836130ba565b60208301905092915050565b6000602082019050919050565b60006130f98261308e565b6131038185613099565b935061310e836130aa565b8060005b8381101561313f57815161312688826130c9565b9750613131836130e1565b925050600181019050613112565b5085935050505092915050565b6000602082019050818103600083015261316681846130ee565b905092915050565b6000806020838503121561318557613184612a94565b5b600083013567ffffffffffffffff8111156131a3576131a2612a99565b5b6131af85828601612aad565b92509250509250929050565b6131c481612d0e565b82525050565b60006020820190506131df60008301846131bb565b92915050565b600080fd5b600067ffffffffffffffff82111561320557613204612c5d565b5b61320e82612c4c565b9050602081019050919050565b82818337600083830152505050565b600061323d613238846131ea565b612cbd565b905082815260208101848484011115613259576132586131e5565b5b61326484828561321b565b509392505050565b600082601f83011261328157613280612a9e565b5b813561329184826020860161322a565b91505092915050565b6000608082840312156132b0576132af612d04565b5b6132ba6080612cbd565b905060006132ca84828501612ba2565b60008301525060206132de84828501612d2f565b60208301525060406132f284828501612d2f565b604083015250606082013567ffffffffffffffff81111561331657613315612d09565b5b6133228482850161326c565b60608301525092915050565b600080600080600080600060c0888a03121561334d5761334c612a94565b5b600088013567ffffffffffffffff81111561336b5761336a612a99565b5b6133778a828b0161329a565b975050602088013567ffffffffffffffff81111561339857613397612a99565b5b6133a48a828b01612e11565b965050604088013567ffffffffffffffff8111156133c5576133c4612a99565b5b6133d18a828b01612f38565b95505060606133e28a828b01612d2f565b945050608088013567ffffffffffffffff81111561340357613402612a99565b5b61340f8a828b01612f66565b935093505060a06134228a828b01612ba2565b91505092959891949750929550565b61343a81612b79565b82525050565b60006020820190506134556000830184613431565b92915050565b60006020828403121561347157613470612a94565b5b600061347f84828501612d2f565b91505092915050565b600060e0828403121561349e5761349d612d04565b5b6134a860e0612cbd565b905060006134b884828501612ba2565b60008301525060206134cc84828501612d2f565b60208301525060406134e084828501612ba2565b60408301525060606134f484828501612ba2565b606083015250608061350884828501612d2f565b60808301525060a061351c84828501612d2f565b60a08301525060c061353084828501612ba2565b60c08301525092915050565b600080600080610120858703121561355757613556612a94565b5b600061356587828801613488565b94505060e085013567ffffffffffffffff81111561358657613585612a99565b5b61359287828801612f66565b93509350506101006135a687828801612ba2565b91505092959194509250565b600080600080600061014086880312156135cf576135ce612a94565b5b600086013567ffffffffffffffff8111156135ed576135ec612a99565b5b6135f98882890161329a565b955050602061360a88828901613488565b94505061010086013567ffffffffffffffff81111561362c5761362b612a99565b5b61363888828901612f66565b935093505061012061364c88828901612ba2565b9150509295509295909350565b60006020828403121561366f5761366e612a94565b5b600061367d84828501612ba2565b91505092915050565b600082825260208201905092915050565b7f496e76616c69642066756e6473207472616e7366657200000000000000000000600082015250565b60006136cd601683613686565b91506136d882613697565b602082019050919050565b600060208201905081810360008301526136fc816136c0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061376c82612d0e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561379f5761379e613732565b5b600182019050919050565b600082825260208201905092915050565b60006137c783856137aa565b93506137d483858461321b565b6137dd83612c4c565b840190509392505050565b600060608201905081810360008301526138038186886137bb565b9050818103602083015261381781856130ee565b90506138266040830184613431565b95945050505050565b600061383a82612d0e565b915061384583612d0e565b92508282101561385857613857613732565b5b828203905092915050565b600061386e82612d0e565b915061387983612d0e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156138b2576138b1613732565b5b828202905092915050565b60006138c882612d0e565b91506138d383612d0e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561390857613907613732565b5b828201905092915050565b7f536c697070616765204c696d6974204578636565646564000000000000000000600082015250565b6000613949601783613686565b915061395482613913565b602082019050919050565b600060208201905081810360008301526139788161393c565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6139b481612b79565b82525050565b60006139c683836139ab565b60208301905092915050565b6000602082019050919050565b60006139ea8261397f565b6139f4818561398a565b93506139ff8361399b565b8060005b83811015613a30578151613a1788826139ba565b9750613a22836139d2565b925050600181019050613a03565b5085935050505092915050565b600060a082019050613a526000830188613431565b8181036020830152613a6481876130ee565b90508181036040830152613a7881866139df565b90508181036060830152613a8c81856130ee565b90508181036080830152613aa081846139df565b90509695505050505050565b600081519050613abb81612d18565b92915050565b600060208284031215613ad757613ad6612a94565b5b6000613ae584828501613aac565b91505092915050565b7f57726f6e67206d73672e76616c75650000000000000000000000000000000000600082015250565b6000613b24600f83613686565b9150613b2f82613aee565b602082019050919050565b60006020820190508181036000830152613b5381613b17565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b604082016000820151613b9c60008501826139ab565b506020820151613baf60208501826130ba565b50505050565b6000613bc18383613b86565b60408301905092915050565b6000602082019050919050565b6000613be582613b5a565b613bef8185613b65565b9350613bfa83613b76565b8060005b83811015613c2b578151613c128882613bb5565b9750613c1d83613bcd565b925050600181019050613bfe565b5085935050505092915050565b60006060830160008301518482036000860152613c558282613bda565b9150506020830151613c6a60208601826130ba565b506040830151613c7d60408601826130ba565b508091505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b604082016000820151613cca60008501826139ab565b506020820151613cdd60208501826130ba565b50505050565b6000613cef8383613cb4565b60408301905092915050565b6000602082019050919050565b6000613d1382613c88565b613d1d8185613c93565b9350613d2883613ca4565b8060005b83811015613d59578151613d408882613ce3565b9750613d4b83613cfb565b925050600181019050613d2c565b5085935050505092915050565b600081519050919050565b60005b83811015613d8f578082015181840152602081019050613d74565b83811115613d9e576000848401525b50505050565b6000613daf82613d66565b613db981856137aa565b9350613dc9818560208601613d71565b613dd281612c4c565b840191505092915050565b60006080820190508181036000830152613df78187613c38565b90508181036020830152613e0b8186613d08565b9050613e1a6040830185613431565b8181036060830152613e2c8184613da4565b905095945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e7182612d0e565b9150613e7c83612d0e565b925082613e8c57613e8b613e37565b5b828204905092915050565b7f46656520746f6f20686967680000000000000000000000000000000000000000600082015250565b6000613ecd600c83613686565b9150613ed882613e97565b602082019050919050565b60006020820190508181036000830152613efc81613ec0565b9050919050565b608082016000820151613f196000850182613b86565b506020820151613f2c60408501826130ba565b506040820151613f3f60608501826130ba565b50505050565b604082016000820151613f5b60008501826139ab565b506020820151613f6e60208501826130ba565b50505050565b600061010082019050613f8a6000830187613f03565b613f976080830186613f45565b613fa460c0830185613431565b81810360e0830152613fb68184613da4565b905095945050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061401d602683613686565b915061402882613fc1565b604082019050919050565b6000602082019050818103600083015261404c81614010565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614089602083613686565b915061409482614053565b602082019050919050565b600060208201905081810360008301526140b88161407c565b9050919050565b600081905092915050565b50565b60006140da6000836140bf565b91506140e5826140ca565b600082019050919050565b60006140fb826140cd565b9150819050919050565b7f455448207472616e73666572206661696c656400000000000000000000000000600082015250565b600061413b601383613686565b915061414682614105565b602082019050919050565b6000602082019050818103600083015261416a8161412e565b9050919050565b7f536c697070616765206c696d697420746f6f206c6f7700000000000000000000600082015250565b60006141a7601683613686565b91506141b282614171565b602082019050919050565b600060208201905081810360008301526141d68161419a565b9050919050565b7f4475706c696361746520736f7572636520746f6b656e73000000000000000000600082015250565b6000614213601783613686565b915061421e826141dd565b602082019050919050565b6000602082019050818103600083015261424281614206565b9050919050565b7f417262697472616765206e6f7420737570706f72746564000000000000000000600082015250565b600061427f601783613686565b915061428a82614249565b602082019050919050565b600060208201905081810360008301526142ae81614272565b9050919050565b7f4475706c69636174652064657374696e6174696f6e20746f6b656e7300000000600082015250565b60006142eb601c83613686565b91506142f6826142b5565b602082019050919050565b6000602082019050818103600083015261431a816142de565b9050919050565b7f4d696e696d756d2067726561746572207468616e2071756f7465000000000000600082015250565b6000614357601a83613686565b915061436282614321565b602082019050919050565b600060208201905081810360008301526143868161434a565b9050919050565b6000819050919050565b60006143a28261438d565b91506143ad8361438d565b9250827f8000000000000000000000000000000000000000000000000000000000000000018212600084121516156143e8576143e7613732565b5b827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0182136000841216156144205761441f613732565b5b828203905092915050565b6144348161438d565b82525050565b600060c08201905061444f6000830189613431565b61445c60208301886131bb565b6144696040830187613431565b61447660608301866131bb565b6144836080830185613431565b61449060a083018461442b565b979650505050505050565b60006040820190506144b06000830185613431565b6144bd60208301846131bb565b9392505050565b60006060820190506144d96000830186613431565b6144e66020830185613431565b6144f360408301846131bb565b949350505050565b60008115159050919050565b614510816144fb565b811461451b57600080fd5b50565b60008151905061452d81614507565b92915050565b60006020828403121561454957614548612a94565b5b60006145578482850161451e565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b60006145bc602a83613686565b91506145c782614560565b604082019050919050565b600060208201905081810360008301526145eb816145af565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b600061464e602683613686565b9150614659826145f2565b604082019050919050565b6000602082019050818103600083015261467d81614641565b9050919050565b600061468f82613d66565b61469981856140bf565b93506146a9818560208601613d71565b80840191505092915050565b60006146c18284614684565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000614702601d83613686565b915061470d826146cc565b602082019050919050565b60006020820190508181036000830152614731816146f5565b9050919050565b600081519050919050565b600061474e82614738565b6147588185613686565b9350614768818560208601613d71565b61477181612c4c565b840191505092915050565b600060208201905081810360008301526147968184614743565b90509291505056fea264697066735822122086945b7d03877f79da66357838a776dface85d213e9f53a02237a1c1bd2a49dc64736f6c63430008080033