29 txs
30 calls
constructor
constructor(address initialOwner, address _auctioneer, address _permit2, address _stablecoin, address _collateralToken)
functions
auctioneer
viewfunction auctioneer() view returns (address)
collateralToken
viewfunction collateralToken() view returns (address)
eip712Domain
viewfunction eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)
lockedStablecoins
viewfunction lockedStablecoins(bytes32) view returns (uint256)
orderData
viewfunction orderData(bytes32 orderHash) view returns (tuple)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
permit2
viewfunction permit2() view returns (address)
stablecoin
viewfunction stablecoin() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
cancelOrder
nonpayablefunction cancelOrder(tuple orderInfo)
claimTokens
nonpayablefunction claimTokens(tuple orderInfo, tuple successConfirmation, bytes successConfirmationSignature, address recoverTokensReceiver)
createOrder
nonpayablefunction createOrder(tuple orderInfo)
renounceOwnership
nonpayablefunction renounceOwnership()
setAuctioneer
nonpayablefunction setAuctioneer(address newAuctioneer)
startOrderExecution
nonpayablefunction startOrderExecution(tuple orderInfo, bytes userSignature, tuple solverPermission, bytes auctioneerSignature)
startOrderExecutionWithSwap
nonpayablefunction startOrderExecutionWithSwap(tuple orderInfo, bytes userSignature, tuple solverPermission, bytes auctioneerSignature, address swapper, bytes swapData)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
AuctioneerSet
event AuctioneerSet(address newAuctioneer)
DcaOrderSuccessfullyFulfilled
event DcaOrderSuccessfullyFulfilled(bytes32 indexed orderHash)
EIP712DomainChanged
event EIP712DomainChanged()
ExecutionStart
event ExecutionStart(bytes32 indexed orderHash, address indexed solver, uint24 intervalNumber, uint32 deadline, uint128 protocolFee, uint128 collateralAmount)
FailedIntervalExecution
event FailedIntervalExecution(bytes32 indexed orderHash, uint24 intervalNumber, uint24 intervalIndex)
NewOrder
event NewOrder(bytes32 indexed orderHash, address indexed user, address tokenIn, uint32 startTime, uint32 deadline, uint24 totalIntervals, uint32 intervalDuration, uint128 amountInPerInterval, uint128 minStablecoinsAmountPerInterval, bytes32 executionDetailsHash, uint256 nonce)
OrderCancelledByUser
event OrderCancelledByUser(bytes32 indexed orderHash)
OrderIntervalSuccessfullyFulfilled
event OrderIntervalSuccessfullyFulfilled(bytes32 indexed orderHash, address indexed solver, uint24 intervalNumber, address recoverTokensReceiver)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
ProtocolFeesCollected
event ProtocolFeesCollected(address feeReceiver, uint256 amount)
SwappedToStablecoins
event SwappedToStablecoins(bytes32 indexed orderHash, uint24 intervalNumber, uint256 stablecoinsAmount)
TokensAreFullyRecovered
event TokensAreFullyRecovered(bytes32 indexed orderHash)
errors
AlreadyInitialized
error AlreadyInitialized()
AlreadySwapped
error AlreadySwapped()
BelowMinStablecoinsAmount
error BelowMinStablecoinsAmount(uint256)
CantStartOrderExecutionDuringThisInterval
error CantStartOrderExecutionDuringThisInterval()
FeeOnTransferTokensNotSupported
error FeeOnTransferTokensNotSupported()
IntervalWasAlreadyClaimed
error IntervalWasAlreadyClaimed()
InvalidAddress
error InvalidAddress()
InvalidAuctioneerSignature
error InvalidAuctioneerSignature()
InvalidIntervalDuration
error InvalidIntervalDuration()
InvalidOrder
error InvalidOrder()
InvalidPermission
error InvalidPermission()
InvalidShortString
error InvalidShortString()
InvalidSignature
error InvalidSignature()
InvalidSolverDeadline
error InvalidSolverDeadline()
InvalidSuccessConfirmation
error InvalidSuccessConfirmation()
NoReentrancy
error NoReentrancy()
NotAllowed
error NotAllowed()
NotSolver
error NotSolver()
NotUser
error NotUser()
OrderIsBeingProcessed
error OrderIsBeingProcessed()
OrderIsNotActive
error OrderIsNotActive()
OverdueDeadline
error OverdueDeadline()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeCastOverflowedUintDowncast
error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
StringTooLong
error StringTooLong(string str)
SwapIsNotAllowed
error SwapIsNotAllowed()
creation bytecode
0x6101c060405234801561001157600080fd5b506040516154f73803806154f783398101604081905261003091610315565b604080518082018252601081526f14dbdd5c98d950da185a5b91dd585c9960821b602080830191909152825180840190935260018352603160f81b908301529085876001600160a01b0381166100a157604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6100aa81610223565b506001600160a01b0381166100d25760405163e6c4247b60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b03929092169190911790556100fd82600361023f565b6101205261010c81600461023f565b61014052815160208084019190912060e052815190820120610100524660a05261019960e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c0526001600160a01b03821615806101bf57506001600160a01b038116155b806101d157506001600160a01b038516155b806101e357506001600160a01b038316155b156102015760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b039182166101805281166101a0521661016052506105599050565b600180546001600160a01b031916905561023c81610272565b50565b600060208351101561025b57610254836102c2565b905061026c565b816102668482610429565b5060ff90505b92915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080829050601f815111156102ed578260405163305a27a960e01b815260040161009891906104e7565b80516102f882610535565b179392505050565b6001600160a01b038116811461023c57600080fd5b600080600080600060a0868803121561032d57600080fd5b855161033881610300565b602087015190955061034981610300565b604087015190945061035a81610300565b606087015190935061036b81610300565b608087015190925061037c81610300565b809150509295509295909350565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806103b457607f821691505b6020821081036103d457634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561042457806000526020600020601f840160051c810160208510156104015750805b601f840160051c820191505b81811015610421576000815560010161040d565b50505b505050565b81516001600160401b038111156104425761044261038a565b6104568161045084546103a0565b846103da565b6020601f82116001811461048a57600083156104725750848201515b600019600385901b1c1916600184901b178455610421565b600084815260208120601f198516915b828110156104ba578785015182556020948501946001909201910161049a565b50848210156104d85786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b602081526000825180602084015260005b8181101561051557602081860181015160408684010152016104f8565b506000604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156103d45760001960209190910360031b1b16919050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a051614ee461061360003960008181610287015281816116660152818161209b015281816124a90152612e0d01526000818161048601528181610830015281816108f6015281816109c5015261284101526000818161018601526132db015260006128a10152600061286f01526000613f9501526000613f6d01526000613ec801526000613ef201526000613f1c0152614ee46000f3fe608060405234801561001057600080fd5b50600436106101345760003560e01c806384b0196e116100b2578063c4cd9ed311610081578063e9cbd82211610066578063e9cbd82214610481578063f26426a6146104a8578063f2fde38b146104bb57600080fd5b8063c4cd9ed3146102a9578063e30c39781461046357600080fd5b806384b0196e146102365780638da5cb5b14610251578063a78872c51461026f578063b2016bd41461028257600080fd5b80635e63c57f11610109578063715018a6116100ee578063715018a61461021357806379ba50971461021b5780637b89c1d71461022357600080fd5b80635e63c57f146101e05780635ec2c7bf146101f357600080fd5b80626973b814610139578062ede7e41461016c57806312261ee7146101815780632699fea0146101cd575b600080fd5b610159610147366004613fe6565b60066020526000908152604090205481565b6040519081526020015b60405180910390f35b61017f61017a366004614031565b6104ce565b005b6101a87f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610163565b61017f6101db3660046140b0565b61059c565b61017f6101ee366004614195565b610b11565b6002546101a89073ffffffffffffffffffffffffffffffffffffffff1681565b61017f61122b565b61017f61123f565b61017f610231366004614195565b6112b6565b61023e6117b5565b6040516101639796959493929190614220565b60005473ffffffffffffffffffffffffffffffffffffffff166101a8565b61017f61027d3660046142e1565b611817565b6101a87f000000000000000000000000000000000000000000000000000000000000000081565b6104566102b7366004613fe6565b604080516101008082018352600080835260208084018290528385018290526060808501839052608080860184905260a080870185905260c080880186905260e088018690528986526005855294889020885195860189525460ff811686526fffffffffffffffffffffffffffffffff878204168686015263ffffffff7101000000000000000000000000000000000082048116878b015275010000000000000000000000000000000000000000008204169386019390935262ffffff79010000000000000000000000000000000000000000000000000084048116928601929092527c010000000000000000000000000000000000000000000000000000000090920416908301528451928301855281516001908116151584528251811c81161515918401919091528151939491939183019160021c161515815260200182602001516fffffffffffffffffffffffffffffffff168152602001826040015163ffffffff168152602001826060015163ffffffff168152602001826080015162ffffff1681526020018260a0015162ffffff16815250915050919050565b604051610163919061437e565b60015473ffffffffffffffffffffffffffffffffffffffff166101a8565b6101a87f000000000000000000000000000000000000000000000000000000000000000081565b61017f6104b636600461442d565b611967565b61017f6104c9366004614031565b611c55565b6104d6611d05565b73ffffffffffffffffffffffffffffffffffffffff8116610523576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f4ee0985a129917c72eab0afe7ec6060bf6c6e0796bedc42de903d9dbbadfc51d9060200160405180910390a150565b60006105b56105b0368c90038c018c61456d565b611d58565b600081815260056020908152604091829020825160c081018452905460ff811682526fffffffffffffffffffffffffffffffff6101008204169282019290925263ffffffff71010000000000000000000000000000000000830481169382019390935275010000000000000000000000000000000000000000008204909216606083015262ffffff7901000000000000000000000000000000000000000000000000008204811660808401527c010000000000000000000000000000000000000000000000000000000082041660a083015291925090600190811c16156106c8576040517f8f61709900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106d6828c8a8a8a86611e7e565b805160021c60011615610715576040517f757d07f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61072560e0890160c08a0161463e565b61075b576040517f07365cfc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61076d6101208c016101008d01614660565b6fffffffffffffffffffffffffffffffff166107906101008a0160e08b01614660565b6fffffffffffffffffffffffffffffffff1610156107da576040517f868a64de00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80516107e99060ff1660041790565b60ff1681526107ff82828d8d8d8d60018c612200565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa15801561088c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b0919061467b565b90508573ffffffffffffffffffffffffffffffffffffffff1663778922688d60200160208101906108e19190614031565b8e60e00160208101906108f49190614660565b7f00000000000000000000000000000000000000000000000000000000000000008d60e00160208101906109289190614660565b8a8a6040518763ffffffff1660e01b815260040161094b969594939291906146dd565b600060405180830381600087803b15801561096557600080fd5b505af1158015610979573d6000803e3d6000fd5b50506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000925083915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a30919061467b565b610a3a9190614794565b9050610a4d6101008b0160e08c01614660565b6fffffffffffffffffffffffffffffffff16811015610aa0576040517f8d56ec22000000000000000000000000000000000000000000000000000000008152600481018290526024015b60405180910390fd5b6000848152600660205260409020819055608083015184907ffb8087611589a3c5360970dbf024c7b0ffcb96a491b677829bd033be3d1903f590610ae59060016147a7565b6040805162ffffff9092168252602082018590520160405180910390a250505050505050505050505050565b6000610b256105b03684900384018461456d565b600081815260056020908152604091829020825160c081018452905460ff811682526fffffffffffffffffffffffffffffffff6101008204169282019290925263ffffffff71010000000000000000000000000000000000830481169382019390935275010000000000000000000000000000000000000000008204909216606083015262ffffff7901000000000000000000000000000000000000000000000000008204811660808401527c010000000000000000000000000000000000000000000000000000000082041660a08301529192509060011615610c35576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b46610c436020850185614031565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ca7576040517f7aafae9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cb760608501604086016147c2565b63ffffffff1681141580610ceb5750610cd7610100850160e08601614660565b6fffffffffffffffffffffffffffffffff16155b80610d0a57506002610d0360c0860160a087016147dd565b62ffffff16105b80610d775750610d2060a08501608086016147c2565b63ffffffff16610d3660e0860160c087016147c2565b610d4660c0870160a088016147dd565b62ffffff16610d5591906147f8565b610d6560808701606088016147c2565b610d6f9190614817565b63ffffffff16115b15610dae576040517faf61069300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b42610dbf60a08601608087016147c2565b63ffffffff1611610dfc576040517fa99f132a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e0c60e0850160c086016147c2565b63ffffffff16600003610e4b576040517fb534741d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610e5d60c0860160a087016147dd565b62ffffff16610e73610100870160e08801614660565b610e7d9190614833565b6fffffffffffffffffffffffffffffffff1690506000610ea36040870160208801614031565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610f0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f33919061467b565b9050610f69333084610f4b60408b0160208c01614031565b73ffffffffffffffffffffffffffffffffffffffff169291906125c5565b6000610f7b6040880160208901614031565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610fe7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100b919061467b565b9050826110188383614794565b1015611050576040517fe1628f7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040518060c0016040528061106c876000015160ff1660011790565b60ff90811682526000602080840182905260408085018390526060808601849052608080870185905260a09687018590528d8552600584529382902087518154948901519389015192890151958901519890970151969095167fffffffffffffffffffffffffffffff0000000000000000000000000000000000909316929092176101006fffffffffffffffffffffffffffffffff90921691909102177fffffffffffffff0000000000000000ffffffffffffffffffffffffffffffffff167101000000000000000000000000000000000063ffffffff928316027fffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffff161775010000000000000000000000000000000000000000009190921602177fff000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff1679010000000000000000000000000000000000000000000000000062ffffff948516027fff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16177c010000000000000000000000000000000000000000000000000000000093909216929092021790556112228688612654565b50505050505050565b611233611d05565b61123d600061279a565b565b600154339073ffffffffffffffffffffffffffffffffffffffff1681146112aa576040517f118cdaa700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610a97565b6112b38161279a565b50565b6112c36020820182614031565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611327576040517f7aafae9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061133b6105b03684900384018461456d565b600081815260056020908152604091829020825160c081018452905460ff811682526fffffffffffffffffffffffffffffffff6101008204169282019290925263ffffffff71010000000000000000000000000000000000830481169382019390935275010000000000000000000000000000000000000000008204909216606083015262ffffff7901000000000000000000000000000000000000000000000000008204811660808401527c010000000000000000000000000000000000000000000000000000000082041660a083015291925090600116158061144b57508051600190811c16801561144b575061143a60c0840160a085016147dd565b62ffffff16816080015162ffffff16145b15611482576040517f8f61709900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80516114919060ff1660021790565b600083815260056020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff939093169290921790915560808201516114e560c0860160a087016147dd565b6114ef919061485e565b6040830151835162ffffff9290921692504263ffffffff909116101590600090600190811c16801561153e575061152c60c0870160a088016147dd565b62ffffff16846080015162ffffff1614155b905081801561154a5750805b15611581576040517fa5445e8f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b801561158c57600192505b818015611597575080155b156115ae576115a7600184614794565b92506116cf565b6115be60c0870160a088016147dd565b6000868152600560209081526040909120805462ffffff93909316790100000000000000000000000000000000000000000000000000027fffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffff909316929092179091558401516fffffffffffffffffffffffffffffffff161561169f5761169f61164a6020880188614031565b602086015173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001691906fffffffffffffffffffffffffffffffff166127cb565b835160021c600116156116cf576116b7600184614794565b92506116cf856116ca6020890189614031565b61280e565b60006116e2610100880160e08901614660565b6116fe906fffffffffffffffffffffffffffffffff1685614879565b90508015611744576117446117166020890189614031565b8261172760408b0160208c01614031565b73ffffffffffffffffffffffffffffffffffffffff1691906127cb565b8451600190811c1661177c5760405186907ff1122a55049cac4b6fb786a4e5e82db7ceb712dd52fe67e22a8de56069d2999590600090a25b826112225760405186907f1bafeefb747f0c12e25d9d80cecafc04efcac9bf573e4843c03933eb2eea2a4890600090a250505050505050565b6000606080600080600060606117c9612868565b6117d161289a565b604080516000808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b600061182b6105b03689900389018961456d565b600081815260056020908152604091829020825160c081018452905460ff811682526fffffffffffffffffffffffffffffffff6101008204169282019290925263ffffffff71010000000000000000000000000000000000830481169382019390935275010000000000000000000000000000000000000000008204909216606083015262ffffff7901000000000000000000000000000000000000000000000000008204811660808401527c010000000000000000000000000000000000000000000000000000000082041660a083015291925090600190811c161561193e576040517f8f61709900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61194c828987878786611e7e565b61195d82828a8a8a8a600080612200565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff81166119b4576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006119c86105b03688900388018861456d565b600081815260056020908152604091829020825160c081018452905460ff811682526fffffffffffffffffffffffffffffffff6101008204169282019290925263ffffffff7101000000000000000000000000000000000083048116938201939093527501000000000000000000000000000000000000000000820490921660608084019190915262ffffff790100000000000000000000000000000000000000000000000000830481166080808601919091527c01000000000000000000000000000000000000000000000000000000009093041660a08401529293509091611ab6918801908801614031565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b1a576040517fc139eabd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611b25886128c7565b9050863583141580611b4f5750611b4260608801604089016147dd565b62ffffff168162ffffff16105b15611b86576040517f636b27ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b9660408801602089016147dd565b62ffffff1682608001516001611bac91906147a7565b62ffffff1614611be8576040517fbc461ef100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611bf38787876128f7565b611c29576040517f070f548200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61195d83611c3d60608a0160408b016147dd565b8a85611c4f60808d0160608e01614031565b8961298f565b611c5d611d05565b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155611cc060005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60005473ffffffffffffffffffffffffffffffffffffffff16331461123d576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610a97565b6000604051602001611d6990614890565b60405160208183030381529060405280519060200120826000015183602001518460400151856060015186608001518760a001518860c001518960e001518a61010001518b61012001518c6101400151604051602001611e619c9b9a999897969594939291909b8c5273ffffffffffffffffffffffffffffffffffffffff9a8b1660208d01529890991660408b015263ffffffff96871660608b015294861660808a015292851660a089015262ffffff9190911660c088015290921660e08601526fffffffffffffffffffffffffffffffff918216610100860152166101208401526101408301919091526101608201526101800190565b604051602081830303815290604052805190602001209050919050565b611e89848484612e47565b611ebf576040517f070f548200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b608081015162ffffff1615801590611efe57506000611ee661014086016101208701614031565b73ffffffffffffffffffffffffffffffffffffffff16145b80611f27575060a081015162ffffff16611f20610120860161010087016147dd565b62ffffff16105b15611f5e576040517f868a64de00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015163ffffffff161580159081611f9f57506000611f8761014087016101208801614031565b73ffffffffffffffffffffffffffffffffffffffff16145b15611faa57506121f8565b506000611fb6866128c7565b905062ffffff8116611fd0610120870161010088016147dd565b62ffffff16101580611ff057508062ffffff168260a0015162ffffff1610155b15612027576040517faee5e47000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061203b610120870161010088016147dd565b62ffffff168360a0015162ffffff1614905080156121a65760208301516fffffffffffffffffffffffffffffffff16156120d4576120d461207f6020890189614031565b602085015173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001691906fffffffffffffffffffffffffffffffff166127cb565b825160021c600116156121a15760006120f788856060015163ffffffff16612e56565b90508062ffffff168362ffffff161461219f5760018460800181815161211d91906147a7565b62ffffff908116909152821660a086015250835160fb168452612147896116ca60208b018b614031565b6121596105b0368a90038a018a61456d565b60808501516040805162ffffff928316815291841660208301527f844c9c96529bacbb10eee246bd9452d36efffdb1d0c2eeab05c0721d43ef31c9910160405180910390a25b505b61195d565b61195d6121bb6105b0368a90038a018a61456d565b6121cd61012089016101008a016147dd565b89866121e16101408c016101208d01614031565b6121f36101408d016101208e01614031565b61298f565b505050505050565b61220c8689858a612e88565b6040518060c00160405280612228896000015160ff1660011790565b60ff1681526020016122406080860160608701614660565b6fffffffffffffffffffffffffffffffff168152602001612269610160860161014087016147c2565b63ffffffff1681526020014263ffffffff168152602001886080015162ffffff1681526020018860a0015162ffffff16815250600560008a815260200190815260200160002060008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060408201518160000160116101000a81548163ffffffff021916908363ffffffff16021790555060608201518160000160156101000a81548163ffffffff021916908363ffffffff16021790555060808201518160000160196101000a81548162ffffff021916908362ffffff16021790555060a082015181600001601c6101000a81548162ffffff021916908362ffffff16021790555090505042876060015163ffffffff16036123ed576040517f583fe88600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b865160011661240d576124038686868b3061321e565b61240d8887612654565b811561244a5761244a81612428610100890160e08a01614660565b6fffffffffffffffffffffffffffffffff1661172760408a0160208b01614031565b61245a6080840160608501614660565b6fffffffffffffffffffffffffffffffff16156124e3576124e36124816020850185614031565b306124926080870160608801614660565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169291906fffffffffffffffffffffffffffffffff166125c5565b6124f360a0840160808501614660565b6fffffffffffffffffffffffffffffffff16156125bc5761253a61251a6020850185614031565b61252a60c0860160a08701614031565b61249260a0870160808801614660565b7fd72df92d2a1deb61bf4978dfd140c21dcb0a449bd22cb16af2cd7a853d25052661256b60c0850160a08601614031565b61257b60a0860160808701614660565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526fffffffffffffffffffffffffffffffff90911660208301520160405180910390a15b61195d83613536565b60405173ffffffffffffffffffffffffffffffffffffffff848116602483015283811660448301526064820183905261264e9186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613608565b50505050565b6126616020820182614031565b73ffffffffffffffffffffffffffffffffffffffff16827fa2e2b4ef099d9abd35ad56ef479a02c214b5b2ca6667e7e103cb791b89f4b8826126a96040850160208601614031565b6126b960808601606087016147c2565b6126c960a08701608088016147c2565b6126d960c0880160a089016147dd565b6126e960e0890160c08a016147c2565b6126fa6101008a0160e08b01614660565b61270c6101208b016101008c01614660565b6040805173ffffffffffffffffffffffffffffffffffffffff909816885263ffffffff96871660208901529486169487019490945262ffffff90921660608601529290921660808401526fffffffffffffffffffffffffffffffff91821660a08401521660c08201526101208086013560e08301526101408601356101008301520160405180910390a35050565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556112b3816136ac565b60405173ffffffffffffffffffffffffffffffffffffffff83811660248301526044820183905261280991859182169063a9059cbb90606401612607565b505050565b6000828152600660205260408120805491905580156128095761280973ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001683836127cb565b60606128957f00000000000000000000000000000000000000000000000000000000000000006003613721565b905090565b60606128957f00000000000000000000000000000000000000000000000000000000000000006004613721565b60006128f16128dc60808401606085016147c2565b6128ec60e0850160c086016147c2565b6137cc565b92915050565b600080612942612906866137d9565b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061395592505050565b509091505073ffffffffffffffffffffffffffffffffffffffff811615801590612986575060025473ffffffffffffffffffffffffffffffffffffffff8281169116145b95945050505050565b8462ffffff168360a0015162ffffff16106129d6576040517fbc461ef100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82516001161580612a1257508251600190811c168015612a125750612a0160c0850160a086016147dd565b62ffffff16836080015162ffffff16145b15612a49576040517f8f61709900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825160009060021c60011690508273ffffffffffffffffffffffffffffffffffffffff16877f928d463a5aa8abdd8664f3f26e205ff32717c976d957c1c4e02635c78223da0e86608001516001612aa091906147a7565b6040805162ffffff909216825273ffffffffffffffffffffffffffffffffffffffff871660208301520160405180910390a38351600190811c1615612afe57612aef60c0860160a087016147dd565b62ffffff166080850152612b1a565b600184608001818151612b1191906147a7565b62ffffff169052505b62ffffff861660a0850152835160fb1660ff168452612b3f60c0860160a087016147dd565b62ffffff16846080015162ffffff1603612b93578351612b629060ff1660021790565b60ff16845260405187907f4142b076724d4009f5a0d566e1d246c57e1b417a32283b72b792c389dc9f101b90600090a25b8562ffffff16612bad86866040015163ffffffff16612e56565b62ffffff161115612c0a57600162ffffff8716612bd060e0880160c089016147c2565b612bda91906147f8565b612bea60808801606089016147c2565b612bf49190614817565b612bfe9190614a91565b63ffffffff1660408501525b6040518060c00160405280856000015160ff16815260200160006fffffffffffffffffffffffffffffffff168152602001856040015163ffffffff168152602001856060015163ffffffff168152602001856080015162ffffff1681526020018560a0015162ffffff168152506005600089815260200190815260200160002060008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060408201518160000160116101000a81548163ffffffff021916908363ffffffff16021790555060608201518160000160156101000a81548163ffffffff021916908363ffffffff16021790555060808201518160000160196101000a81548162ffffff021916908362ffffff16021790555060a082015181600001601c6101000a81548162ffffff021916908362ffffff1602179055509050508015612d9a57612d95878361280e565b612dd1565b612dd182612daf610100880160e08901614660565b6fffffffffffffffffffffffffffffffff166117276040890160208a01614031565b60208401516fffffffffffffffffffffffffffffffff16156112225760208401516112229073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169085906fffffffffffffffffffffffffffffffff166127cb565b600080612942612906866139a2565b6000612e81612e6b60808501606086016147c2565b612e7b60e0860160c087016147c2565b84613b34565b9392505050565b46612e9960608601604087016147c2565b63ffffffff1681141580612ecd5750612eb9610100860160e08701614660565b6fffffffffffffffffffffffffffffffff16155b80612eec57506002612ee560c0870160a088016147dd565b62ffffff16105b80612f595750612f0260a08601608087016147c2565b63ffffffff16612f1860e0870160c088016147c2565b612f2860c0880160a089016147dd565b62ffffff16612f3791906147f8565b612f4760808801606089016147c2565b612f519190614817565b63ffffffff16115b15612f90576040517faf61069300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81516001168015612fab575042826040015163ffffffff1610155b15612fe2576040517fa5445e8f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b42612ff360a08701608088016147c2565b63ffffffff1611613030576040517fa99f132a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61304060e0860160c087016147c2565b63ffffffff1660000361307f576040517fb534741d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61308c6020840184614031565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146130f0576040517fc139eabd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61310060a08601608087016147c2565b63ffffffff16613118610160850161014086016147c2565b63ffffffff1610613155576040517f87e08d4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b42613168610160850161014086016147c2565b63ffffffff16116131a5576040517fa99f132a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8383602001351415806131e0575060808201516131c39060016147a7565b62ffffff166131d860608501604086016147dd565b62ffffff1614155b15613217576040517f868a64de00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b60006132306040870160208801614031565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015291909116906370a0823190602401602060405180830381865afa15801561329e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132c2919061467b565b905073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663137c29fe613317613312368a90038a018a61456d565b613b74565b6133308561332a368c90038c018c61456d565b90613c2d565b61333d60208b018b614031565b8760405160200161334d90614890565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815260608301909152602e808352909190614e8160208301396040516020016133a0929190614aad565b6040516020818303038152906040528b8b6040518863ffffffff1660e01b81526004016133d39796959493929190614b08565b600060405180830381600087803b1580156133ed57600080fd5b505af1158015613401573d6000803e3d6000fd5b50600092506134199150506040880160208901614031565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015291909116906370a0823190602401602060405180830381865afa158015613487573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134ab919061467b565b905060006134bf60c0890160a08a016147dd565b62ffffff166134d56101008a0160e08b01614660565b6134df9190614833565b6fffffffffffffffffffffffffffffffff169050806134fe8484614794565b101561195d576040517fe1628f7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6135436020820182614031565b73ffffffffffffffffffffffffffffffffffffffff1660208201357f7ff8529bb78e1d9e687e59a83511e62c706d3074227318c758da4a582d93276361358f60608501604086016147dd565b6135a1610160860161014087016147c2565b6135b160a0870160808801614660565b6135c16080880160608901614660565b6040805162ffffff95909516855263ffffffff9390931660208501526fffffffffffffffffffffffffffffffff91821684840152166060830152519081900360800190a350565b600080602060008451602086016000885af18061362b576040513d6000823e3d81fd5b50506000513d9150811561364357806001141561365d565b73ffffffffffffffffffffffffffffffffffffffff84163b155b1561264e576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610a97565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606060ff831461373b5761373483613c9f565b90506128f1565b81805461374790614bd1565b80601f016020809104026020016040519081016040528092919081815260200182805461377390614bd1565b80156137c05780601f10613795576101008083540402835291602001916137c0565b820191906000526020600020905b8154815290600101906020018083116137a357829003601f168201915b505050505090506128f1565b6000612e81838342613b34565b60006128f16040516020016138a9907f44636153756363657373436f6e6669726d6174696f6e2800000000000000000081527f62797465733332206f72646572486173682c000000000000000000000000000060178201527f75696e74323420696e74657276616c4e756d6265722c0000000000000000000060298201527f75696e74323420696e74657276616c496e6465782c0000000000000000000000603f8201527f6164647265737320736f6c766572290000000000000000000000000000000000605482015260630190565b6040516020818303038152906040528051906020012083600001358460200160208101906138d791906147dd565b6138e760608701604088016147dd565b6138f76080880160608901614031565b60408051602081019690965285019390935262ffffff918216606085015216608083015273ffffffffffffffffffffffffffffffffffffffff1660a082015260c0015b60405160208183030381529060405280519060200120613cde565b6000806000835160410361398f5760208401516040850151606086015160001a61398188828585613d26565b95509550955050505061399b565b50508151600091506002905b9250925092565b60006128f16040516020016139b690614c1e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602091820120906139f990850185614031565b6020850135613a0e60608701604088016147dd565b613a1e6080880160608901614660565b613a2e60a0890160808a01614660565b613a3e60c08a0160a08b01614031565b613a4e60e08b0160c08c0161463e565b613a5f6101008c0160e08d01614660565b613a716101208d016101008e016147dd565b613a836101408e016101208f01614031565b8d610140016020810190613a9791906147c2565b60408051602081019d909d5273ffffffffffffffffffffffffffffffffffffffff9b8c16908d015260608c019990995262ffffff97881660808c01526fffffffffffffffffffffffffffffffff96871660a08c015294861660c08b015292881660e08a0152901515610100890152909216610120870152911661014085015290911661016083015263ffffffff166101808201526101a00161393a565b6000613b618363ffffffff168563ffffffff1684613b529190614794565b613b5c9190614e45565b613e20565b613b6c9060016147a7565b949350505050565b6040805160a081018252600060608201818152608083018290528252602082018190529181019190915260008260a0015162ffffff168360e00151613bb99190614833565b6fffffffffffffffffffffffffffffffff16905060405180606001604052806040518060400160405280866020015173ffffffffffffffffffffffffffffffffffffffff1681526020018481525081526020018461014001518152602001846080015163ffffffff16815250915050919050565b604080518082019091526000808252602082015260008360a0015162ffffff168460e00151613c5c9190614833565b6040805180820190915273ffffffffffffffffffffffffffffffffffffffff90941684526fffffffffffffffffffffffffffffffff166020840152509092915050565b60606000613cac83613e6d565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b60006128f1613ceb613eae565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115613d615750600091506003905082613e16565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613db5573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116613e0c57506000925060019150829050613e16565b9250600091508190505b9450945094915050565b600062ffffff821115613e69576040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526018600482015260248101839052604401610a97565b5090565b600060ff8216601f8111156128f1576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148015613f1457507f000000000000000000000000000000000000000000000000000000000000000046145b15613f3e57507f000000000000000000000000000000000000000000000000000000000000000090565b612895604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b600060208284031215613ff857600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff811681146112b357600080fd5b803561402c81613fff565b919050565b60006020828403121561404357600080fd5b8135612e8181613fff565b6000610160828403121561406157600080fd5b50919050565b60008083601f84011261407957600080fd5b50813567ffffffffffffffff81111561409157600080fd5b6020830191508360208285010111156140a957600080fd5b9250929050565b60008060008060008060008060006103408a8c0312156140cf57600080fd5b6140d98b8b61404e565b98506101608a013567ffffffffffffffff8111156140f657600080fd5b6141028c828d01614067565b909950975061411790508b6101808c0161404e565b95506102e08a013567ffffffffffffffff81111561413457600080fd5b6141408c828d01614067565b9096509450506103008a013561415581613fff565b92506103208a013567ffffffffffffffff81111561417257600080fd5b61417e8c828d01614067565b915080935050809150509295985092959850929598565b600061016082840312156141a857600080fd5b612e81838361404e565b60005b838110156141cd5781810151838201526020016141b5565b50506000910152565b600081518084526141ee8160208601602086016141b2565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b7fff000000000000000000000000000000000000000000000000000000000000008816815260e06020820152600061425b60e08301896141d6565b828103604084015261426d81896141d6565b6060840188905273ffffffffffffffffffffffffffffffffffffffff8716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b818110156142d05783518352602093840193909201916001016142b2565b50909b9a5050505050505050505050565b60008060008060008061030087890312156142fb57600080fd5b614305888861404e565b955061016087013567ffffffffffffffff81111561432257600080fd5b61432e89828a01614067565b9096509450614343905088610180890161404e565b92506102e087013567ffffffffffffffff81111561436057600080fd5b61436c89828a01614067565b979a9699509497509295939492505050565b60006101008201905082511515825260208301511515602083015260408301511515604083015260608301516143c860608401826fffffffffffffffffffffffffffffffff169052565b5060808301516143e0608084018263ffffffff169052565b5060a08301516143f860a084018263ffffffff169052565b5060c083015161440f60c084018262ffffff169052565b5060e083015161442660e084018262ffffff169052565b5092915050565b600080600080600085870361022081121561444757600080fd5b614451888861404e565b955060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea08201121561448357600080fd5b50610160860193506101e086013567ffffffffffffffff8111156144a657600080fd5b6144b288828901614067565b9094509250506102008601356144c781613fff565b809150509295509295909350565b604051610160810167ffffffffffffffff81118282101715614520577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b803563ffffffff8116811461402c57600080fd5b803562ffffff8116811461402c57600080fd5b80356fffffffffffffffffffffffffffffffff8116811461402c57600080fd5b600061016082840312801561458157600080fd5b5061458a6144d5565b61459383614021565b81526145a160208401614021565b60208201526145b260408401614526565b60408201526145c360608401614526565b60608201526145d460808401614526565b60808201526145e560a0840161453a565b60a08201526145f660c08401614526565b60c082015261460760e0840161454d565b60e0820152614619610100840161454d565b6101008201526101208381013590820152610140928301359281019290925250919050565b60006020828403121561465057600080fd5b81358015158114612e8157600080fd5b60006020828403121561467257600080fd5b612e818261454d565b60006020828403121561468d57600080fd5b5051919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff871681526fffffffffffffffffffffffffffffffff8616602082015273ffffffffffffffffffffffffffffffffffffffff851660408201526fffffffffffffffffffffffffffffffff8416606082015260a06080820152600061475960a083018486614694565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156128f1576128f1614765565b62ffffff81811683821601908111156128f1576128f1614765565b6000602082840312156147d457600080fd5b612e8182614526565b6000602082840312156147ef57600080fd5b612e818261453a565b63ffffffff818116838216029081169081811461442657614426614765565b63ffffffff81811683821601908111156128f1576128f1614765565b6fffffffffffffffffffffffffffffffff818116838216029081169081811461442657614426614765565b62ffffff82811682821603908111156128f1576128f1614765565b80820281158282048414176128f1576128f1614765565b7f4463614f72646572496e666f280000000000000000000000000000000000000081527f6164647265737320757365722c00000000000000000000000000000000000000600d8201527f6164647265737320746f6b656e496e2c00000000000000000000000000000000601a8201527f75696e74333220737263436861696e49642c0000000000000000000000000000602a8201527f75696e74333220737461727454696d652c000000000000000000000000000000603c8201527f75696e74333220646561646c696e652c00000000000000000000000000000000604d8201527f75696e74323420746f74616c496e74657276616c732c00000000000000000000605d8201527f75696e74333220696e74657276616c4475726174696f6e2c000000000000000060738201527f75696e7431323820616d6f756e74496e506572496e74657276616c2c00000000608b8201527f75696e74313238206d696e537461626c65636f696e73416d6f756e745065724960a782019081527f6e74657276616c2c00000000000000000000000000000000000000000000000060c783015260009060cf8301613b6c614a68827f6279746573333220657865637574696f6e44657461696c73486173682c0000008152601d0190565b7f75696e74323536206e6f6e6365290000000000000000000000000000000000008152600e0190565b63ffffffff82811682821603908111156128f1576128f1614765565b7f4463614f72646572496e666f207769746e657373290000000000000000000000815260008351614ae58160158501602088016141b2565b835190830190614afc8160158401602088016141b2565b01601501949350505050565b614b33818951805173ffffffffffffffffffffffffffffffffffffffff168252602090810151910152565b6020880151604082015260408801516060820152614b746080820188805173ffffffffffffffffffffffffffffffffffffffff168252602090810151910152565b73ffffffffffffffffffffffffffffffffffffffff861660c08201528460e08201526101406101008201526000614baf6101408301866141d6565b828103610120840152614bc3818587614694565b9a9950505050505050505050565b600181811c90821680614be557607f821691505b602082108103614061577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f446361536f75726365436861696e536f6c7665725065726d697373696f6e280081527f6164647265737320736f6c7665722c0000000000000000000000000000000000601f8201527f62797465733332206f72646572486173682c0000000000000000000000000000602e8201527f75696e74323420696e74657276616c4e756d626572546f457865637574652c0060408201527f75696e7431323820636f6c6c61746572616c416d6f756e742c00000000000000605f8201527f75696e743132382070726f746f636f6c4665652c00000000000000000000000060788201527f616464726573732070726f746f636f6c46656552656365697665722c00000000608c8201527f626f6f6c20616c6c6f77537761702c000000000000000000000000000000000060a88201527f75696e74313238206d696e537461626c65636f696e73416d6f756e742c00000060b78201527f75696e7432342070726576696f75734578656375746564496e74657276616c4960d482019081527f6e6465782c00000000000000000000000000000000000000000000000000000060f483015260009060f98301613b6c614e1c827f616464726573732070726576696f75734578656375746564496e74657276616c81527f536f6c7665722c00000000000000000000000000000000000000000000000000602082015260270190565b7f75696e74333220646561646c696e652900000000000000000000000000000000815260100190565b600082614e7b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fe546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c75696e7432353620616d6f756e7429a2646970667358221220a8027628a5ce90c8e900dbe90eecf08da2030b7e697eea946425e0135c54c40e64736f6c634300081c0033000000000000000000000000d8655d1154a74748ac48f673264efba5c369f4bd0000000000000000000000007a66eb9f5b2808a3039442ab3155734b78ff4b91000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913