0 txs
0 calls
constructor
constructor((address orderBook, ((address interpreter, address store, bytes bytecode) evaluable, (address signer, bytes32[] context, bytes signature)[] signedContext) task, bytes implementationData) config)
functions
iTaskHash
viewfunction iTaskHash() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
arb3
payablefunction arb3(address orderBook, tuple takeOrders, bytes exchangeData, tuple task) payable
onFlashLoan
nonpayablefunction onFlashLoan(address initiator, address, uint256, uint256, bytes data) returns (bytes32)
events
Construct
event Construct(address sender, (address orderBook, ((address interpreter, address store, bytes bytecode) evaluable, (address signer, bytes32[] context, bytes signature)[] signedContext) task, bytes implementationData) config)
errors
BadInitiator
error BadInitiator(address badInitiator)
CoefficientOverflow
error CoefficientOverflow(int256 signedCoefficient, int256 exponent)
ExponentOverflow
error ExponentOverflow(int256 signedCoefficient, int256 exponent)
FlashLoanFailed
error FlashLoanFailed()
InvalidSignature
error InvalidSignature(uint256 i)
LossyConversionFromFloat
error LossyConversionFromFloat(int256 signedCoefficient, int256 exponent)
NegativeFixedDecimalConversion
error NegativeFixedDecimalConversion(int256 signedCoefficient, int256 exponent)
NoOrders
error NoOrders()
TokenDecimalsReadFailure
error TokenDecimalsReadFailure(address token, uint8 tofuOutcome)
WrongTask
error WrongTask()
creation bytecode
0x60a0604052600060805234801561001557600080fd5b50604051613bd7380380613bd78339810160408190526100349161036e565b808060016000819055507f3a5f92e1700a303557ddae1bed800da2d50036e5b24950a948611540f0928e79338260405161006f9291906105e7565b60405180910390a16020810151516040015151156100b65760208082015160405161009a9201610647565b60408051601f1981840301815291905280516020909101206080525b505050610661565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b03811182821017156100f6576100f66100be565b60405290565b604080519081016001600160401b03811182821017156100f6576100f66100be565b604051601f8201601f191681016001600160401b0381118282101715610146576101466100be565b604052919050565b6001600160a01b038116811461016357600080fd5b50565b60005b83811015610181578181015183820152602001610169565b50506000910152565b600082601f83011261019b57600080fd5b81516001600160401b038111156101b4576101b46100be565b6101c7601f8201601f191660200161011e565b8181528460208386010111156101dc57600080fd5b6101ed826020830160208701610166565b949350505050565b60006001600160401b0382111561020e5761020e6100be565b5060051b60200190565b600082601f83011261022957600080fd5b8151602061023e610239836101f5565b61011e565b82815260059290921b8401810191818101908684111561025d57600080fd5b8286015b848110156103635780516001600160401b038082111561028057600080fd5b908801906060828b03601f190112156102995760008081fd5b6102a16100d4565b868301516102ae8161014e565b8152604083810151838111156102c45760008081fd5b8401603f81018d136102d65760008081fd5b888101516102e6610239826101f5565b81815260059190911b82018301908a8101908f8311156103065760008081fd5b928401925b828410156103245783518252928b0192908b019061030b565b858c015250505060608401518381111561033e5760008081fd5b61034c8d8a8388010161018a565b918301919091525085525050918301918301610261565b509695505050505050565b6000602080838503121561038157600080fd5b82516001600160401b038082111561039857600080fd5b90840190606082870312156103ac57600080fd5b6103b46100d4565b82516103bf8161014e565b815282840151828111156103d257600080fd5b8301604081890312156103e457600080fd5b6103ec6100fc565b8151848111156103fb57600080fd5b82016060818b03121561040d57600080fd5b6104156100d4565b81516104208161014e565b81528188015161042f8161014e565b8189015260408201518681111561044557600080fd5b6104518c82850161018a565b604083015250825250818601518481111561046b57600080fd5b6104778a828501610218565b878301525080868401525050604083015193508184111561049757600080fd5b6104a38785850161018a565b60408201529695505050505050565b600081518084526104ca816020860160208601610166565b601f01601f19169290920160200192915050565b6000604082516040855260018060a01b03808251166040870152602080830151606083821660608a015260408501519450606060808a015261052360a08a01866104b2565b888401518a82038b86015280518083529196508401925083860190600581901b870185016000805b838110156105d557898303601f19018552865180518a168452888101518985018890528051888601819052908a0190849060808701905b808310156105a25783518252928c019260019290920191908c0190610582565b508e84015193508681038f8801526105ba81856104b2565b9650505050508787019650878501945060018101905061054b565b50909c9b505050505050505050505050565b6001600160a01b0383811682526040602080840182905284519092169083015282015160608083015260009061062060a08401826104de565b90506040840151603f1984830301608085015261063d82826104b2565b9695505050505050565b60208152600061065a60208301846104de565b9392505050565b60805161354e6106896000396000818160d5015281816102c9015261031a015261354e6000f3fe60806040526004361061003f5760003560e01c806301ffc9a71461004d57806323e30c8b14610082578063640b48c3146100b057806393be095e146100c3575b34801561004b57600080fd5b005b34801561005957600080fd5b5061006d610068366004611ea0565b6100f7565b60405190151581526020015b60405180910390f35b34801561008e57600080fd5b506100a261009d366004611f53565b610190565b604051908152602001610079565b61004b6100be366004611fcf565b6102b6565b3480156100cf57600080fd5b506100a27f000000000000000000000000000000000000000000000000000000000000000081565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f23e30c8b00000000000000000000000000000000000000000000000000000000148061018a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60006001600160a01b03871630146101e4576040517f8b1f7c640000000000000000000000000000000000000000000000000000000081526001600160a01b03881660048201526024015b60405180910390fd5b6000806101f384860186612442565b91509150610201828261068c565b6040517fd0f7a8620000000000000000000000000000000000000000000000000000000081526000908190339063d0f7a8629061024290879060040161285e565b60408051808303816000875af1158015610260573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028491906129ce565b507f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd99c9b505050505050505050505050565b6102be610776565b6102c7816129f2565b7f00000000000000000000000000000000000000000000000000000000000000001580159061033c5750806040516020016103029190612a5f565b604051602081830303815290604052805190602001207f000000000000000000000000000000000000000000000000000000000000000014155b15610373576040517f8812562900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103806060860186612a98565b90506000036103bb576040517f9c95219f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008585856040516020016103d293929190612d54565b60408051601f19818403018152919052905060006103f36060880188612a98565b600081811061040457610404612f84565b90506020028101906104169190612f9a565b6104209080612fba565b61042e906060810190612fd0565b61043b60608a018a612a98565b600081811061044c5761044c612f84565b905060200281019061045e9190612f9a565b6040013581811061047157610471612f84565b610487926020604090920201908101915061301a565b905060006104986060890189612a98565b60008181106104a9576104a9612f84565b90506020028101906104bb9190612f9a565b6104c59080612fba565b6104d3906040810190612fd0565b6104e060608b018b612a98565b60008181106104f1576104f1612f84565b90506020028101906105039190612f9a565b6020013581811061051657610516612f84565b61052c926020604090920201908101915061301a565b9050600061053b6001836107cf565b9050600061054a6001856107cf565b905060006105598b358461085a565b90506105706001600160a01b0385168d6000610897565b6105866001600160a01b0385168d600019610897565b6040517f5cffe9de0000000000000000000000000000000000000000000000000000000081526001600160a01b038d1690635cffe9de906105d1903090899086908c90600401613037565b6020604051808303816000875af11580156105f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106149190613069565b61064a576040517f92111eb200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61065f6001600160a01b0385168d6000610897565b61067461066b896129f2565b85858886610a4a565b505050505050506106856001600055565b5050505050565b6000806000838060200190518101906106a5919061308b565b925092509250600085606001516000815181106106c4576106c4612f84565b6020026020010151600001516060015186606001516000815181106106eb576106eb612f84565b6020026020010151604001518151811061070757610707612f84565b602090810291909101015151905061072a6001600160a01b038216856000610897565b6107406001600160a01b03821685600019610897565b60006107566001600160a01b0385168447610d44565b905061076d6001600160a01b038316866000610897565b50505050505050565b6002600054036107c85760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016101db565b6002600055565b60008060006107de8585610d6a565b909250905060018260038111156107f7576107f761312b565b14158015610817575060008260038111156108145761081461312b565b14155b156108525783826040517fee07877f0000000000000000000000000000000000000000000000000000000081526004016101db929190613141565b949350505050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8316601b0b60e084901d61088e828286610e38565b95945050505050565b80158061092a57506040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015610904573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610928919061317c565b155b61099c5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e63650000000000000000000060648201526084016101db565b6040516001600160a01b038316602482015260448101829052610a459084907f095ea7b300000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610e96565b505050565b604080516001808252818301909252600091816020015b6060815260200190600190039081610a61575050604080516003808252608082019092529192506000919060208201606080368337019050506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091506000906001600160a01b038816906370a0823190602401602060405180830381865afa158015610afd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b21919061317c565b90508015610b3d57610b3d6001600160a01b0388163383610f7e565b600080610b4a8389610fc7565b915091508184600081518110610b6257610b62612f84565b602090810291909101015250506040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600091506001600160a01b038616906370a0823190602401602060405180830381865afa158015610bd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf4919061317c565b90508015610c1057610c106001600160a01b0386163383610f7e565b600080610c1d8387610fc7565b915091508184600181518110610c3557610c35612f84565b602090810291909101015250479150610c509050338261100b565b610c7a817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee611124565b82600281518110610c8d57610c8d612f84565b602002602001018181525050508082600081518110610cae57610cae612f84565b6020908102919091010152604080516001808252818301909252600091816020015b6040805160a08101825260009181018281526060808301939093526080820183905281526020810191909152815260200190600190039081610cd05790505090508781600081518110610d2557610d25612f84565b6020026020010181905250610d3a8382611180565b5050505050505050565b606061085284848460405180606001604052806029815260200161352560299139611371565b600080600080610d7a8686611463565b90925090506000826003811115610d9357610d9361312b565b03610e2b576040805180820182526001815260ff83811660208084019182526001600160a01b038a166000908152908b9052939093209151825493517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009094169015157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff161761010093909116929092029190911790555b90925090505b9250929050565b6000806000610e488686866115c5565b9150915080610e8d576040517f05e4767800000000000000000000000000000000000000000000000000000000815260048101879052602481018690526044016101db565b50949350505050565b6000610eeb826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661171d9092919063ffffffff16565b9050805160001480610f0c575080806020019051810190610f0c9190613069565b610a455760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016101db565b6040516001600160a01b038316602482015260448101829052610a459084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064016109e1565b6000806000806000610fd9878761172c565b925092509250600080610fec858561178a565b9150915081838015610ffb5750815b9650965050505050509250929050565b8047101561105b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016101db565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146110a8576040519150601f19603f3d011682016040523d82523d6000602084013e6110ad565b606091505b5050905080610a455760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016101db565b6000806000611133858561178a565b9150915080611178576040517f22c9f7bb00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016101db565b509392505050565b3360008181523060209081526040808320815160a0810183528083018581526060808301879052608083018190529082528185015282518581529384018581528484019093529093909291905b8651811015610d3a578681815181106111e8576111e8612f84565b602002602001015193506000846000015160400151511115611369576000808560000151600001516001600160a01b031663d04dfe236040518060e001604052808960000151602001516001600160a01b031681526020018a81526020018960000151604001518152602001600081526020016112698e8b6020015161185e565b8152602001888152602001878152506040518263ffffffff1660e01b815260040161129491906131e2565b600060405180830381865afa1580156112b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112d991908101906132de565b8051919350915015611366578551602001516040517f04b19db40000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906304b19db490611333908b90859060040161339a565b600060405180830381600087803b15801561134d57600080fd5b505af1158015611361573d6000803e3d6000fd5b505050505b50505b6001016111cd565b6060824710156113e95760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016101db565b600080866001600160a01b0316858760405161140591906133b3565b60006040518083038185875af1925050503d8060008114611442576040519150601f19603f3d011682016040523d82523d6000602084013e611447565b606091505b509150915061145887838387611b64565b979650505050505050565b6001600160a01b03811660008181526020848152604080832081518083018352905460ff80821615158352610100909104168184015281518083018352600481527f313ce5670000000000000000000000000000000000000000000000000000000093810193909352905192938493919284928392916114e2916133b3565b600060405180830381855afa9150503d806000811461151d576040519150601f19603f3d011682016040523d82523d6000602084013e611522565b606091505b509150915081158061153657508051602014155b1561154c57505060200151600392509050610e31565b600081806020019051810190611562919061317c565b905060ff81111561157f5750505060200151600392509050610e31565b8351819061159757600096509450610e319350505050565b846020015160ff168160ff16146115af5760026115b2565b60015b8560200151965096505050505050610e31565b600080600085121561160d576040517f4a7d166b00000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016101db565b846000036116215750600090506001611715565b8460ff841685018581121561166c576040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101889052602481018790526044016101db565b60008060008312156116da577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb38312156116b0576000809550955050505050611715565b82600003600a0a91508184816116c8576116c86133c5565b04955050840290911491506117159050565b600083131561170a576116ee83600a6134d5565b91506116fa82856134e1565b9550600194506117159350505050565b509193506001925050505b935093915050565b60606108528484600085611371565b6000808060ff841681037f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff86111561177957600a860460018201600a880660001493509350935050611783565b8593509150600190505b9250925092565b6000601b83900b8314806117e8577d90e40fbeea1d3a4abc8955e946fe31cdcf66f634e10000000000000000008405156117cd57620186a0840593506005830192505b8384601b0b146117e857600a840593508260010192506117cd565b828360030b1461182e576040517fd556b11100000000000000000000000000000000000000000000000000000000815260048101859052602481018490526044016101db565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff9390931660e09290921b91909117929050565b60606000825167ffffffffffffffff81111561187c5761187c61207f565b6040519080825280602002602001820160405280156118a5578160200160208202803683370190505b5090506000808451116118b95760006118bf565b83516001015b855160010101905060008167ffffffffffffffff8111156118e2576118e261207f565b60405190808252806020026020018201604052801561191557816020015b60608152602001906001900390816119005790505b509050600061193a604080516002815233602082015230818301526060810190915290565b82828151811061194c5761194c612f84565b602002602001018190525060005b87518110156119aa57818060010192505087818151811061197d5761197d612f84565b602002602001015183838151811061199757611997612f84565b602090810291909101015260010161195a565b50855115611b5a578080600101915050838282815181106119cd576119cd612f84565b602002602001018190525060005b8651811015611b5857611a8c8782815181106119f9576119f9612f84565b602002602001015160000151611a69611a368a8581518110611a1d57611a1d612f84565b6020026020010151602001518051602090810291012090565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b898481518110611a7b57611a7b612f84565b602002602001015160400151611bdd565b611ac5576040517f52bf9848000000000000000000000000000000000000000000000000000000008152600481018290526024016101db565b868181518110611ad757611ad7612f84565b6020026020010151600001516001600160a01b031660001b858281518110611b0157611b01612f84565b6020026020010181815250508180600101925050868181518110611b2757611b27612f84565b602002602001015160200151838381518110611b4557611b45612f84565b60209081029190910101526001016119db565b505b5095945050505050565b60608315611bd3578251600003611bcc576001600160a01b0385163b611bcc5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101db565b5081610852565b6108528383611c3e565b6000806000611bec8585611c68565b90925090506000816004811115611c0557611c0561312b565b148015611c235750856001600160a01b0316826001600160a01b0316145b80611c345750611c34868686611caa565b9695505050505050565b815115611c4e5781518083602001fd5b8060405162461bcd60e51b81526004016101db91906134f8565b6000808251604103611c9e5760208301516040840151606085015160001a611c9287828585611ddc565b94509450505050610e31565b50600090506002610e31565b6000806000856001600160a01b0316631626ba7e60e01b8686604051602401611cd492919061350b565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051611d3f91906133b3565b600060405180830381855afa9150503d8060008114611d7a576040519150601f19603f3d011682016040523d82523d6000602084013e611d7f565b606091505b5091509150818015611d9357506020815110155b8015611c34575080517f1626ba7e0000000000000000000000000000000000000000000000000000000090611dd1908301602090810190840161317c565b149695505050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611e135750600090506003611e97565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611e67573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611e9057600060019250925050611e97565b9150600090505b94509492505050565b600060208284031215611eb257600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611ee257600080fd5b9392505050565b6001600160a01b0381168114611efe57600080fd5b50565b8035611f0c81611ee9565b919050565b60008083601f840112611f2357600080fd5b50813567ffffffffffffffff811115611f3b57600080fd5b602083019150836020828501011115610e3157600080fd5b60008060008060008060a08789031215611f6c57600080fd5b8635611f7781611ee9565b95506020870135611f8781611ee9565b94506040870135935060608701359250608087013567ffffffffffffffff811115611fb157600080fd5b611fbd89828a01611f11565b979a9699509497509295939492505050565b600080600080600060808688031215611fe757600080fd5b8535611ff281611ee9565b9450602086013567ffffffffffffffff8082111561200f57600080fd5b9087019060a0828a03121561202357600080fd5b9094506040870135908082111561203957600080fd5b61204589838a01611f11565b9095509350606088013591508082111561205e57600080fd5b5086016040818903121561207157600080fd5b809150509295509295909350565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156120b8576120b861207f565b60405290565b6040805190810167ffffffffffffffff811182821017156120b8576120b861207f565b60405160a0810167ffffffffffffffff811182821017156120b8576120b861207f565b6040516080810167ffffffffffffffff811182821017156120b8576120b861207f565b604051601f8201601f1916810167ffffffffffffffff811182821017156121505761215061207f565b604052919050565b600067ffffffffffffffff8211156121725761217261207f565b5060051b60200190565b600067ffffffffffffffff8211156121965761219661207f565b50601f01601f191660200190565b600082601f8301126121b557600080fd5b81356121c86121c38261217c565b612127565b8181528460208386010111156121dd57600080fd5b816020850160208301376000918101602001919091529392505050565b60006060828403121561220c57600080fd5b612214612095565b9050813561222181611ee9565b8152602082013561223181611ee9565b6020820152604082013567ffffffffffffffff81111561225057600080fd5b61225c848285016121a4565b60408301525092915050565b600082601f83011261227957600080fd5b813560206122896121c383612158565b82815260069290921b840181019181810190868411156122a857600080fd5b8286015b848110156122f057604081890312156122c55760008081fd5b6122cd6120be565b81356122d881611ee9565b815281850135858201528352918301916040016122ac565b509695505050505050565b600082601f83011261230c57600080fd5b8135602061231c6121c383612158565b82815260059290921b8401810191818101908684111561233b57600080fd5b8286015b848110156122f057803567ffffffffffffffff8082111561235f57600080fd5b908801906060828b03601f190112156123785760008081fd5b612380612095565b8683013561238d81611ee9565b8152604083810135838111156123a35760008081fd5b8401603f81018d136123b55760008081fd5b888101356123c56121c382612158565b81815260059190911b82018301908a8101908f8311156123e55760008081fd5b928401925b828410156124035783358252928b0192908b01906123ea565b858c015250505060608401358381111561241d5760008081fd5b61242b8d8a838801016121a4565b91830191909152508552505091830191830161233f565b6000806040838503121561245557600080fd5b67ffffffffffffffff808435111561246c57600080fd5b60a0843585018603121561247f57600080fd5b6124876120e1565b84358501803582526020808201359083015260408082013590830152606001358210156124b357600080fd5b84358501606081013501601f810187136124cc57600080fd5b6124d96121c38235612158565b81358082526020808301929160051b8401018910156124f757600080fd5b602083015b6020843560051b85010181101561266457858135111561251b57600080fd5b601f19608081833587018d0301121561253357600080fd5b61253b612104565b876020843588010135111561254f57600080fd5b8235860160208101350160a0818e038401121561256b57600080fd5b6125736120e1565b925061258160208201611f01565b8352886040820135111561259457600080fd5b6125a78d602060408401358401016121fa565b602084015288606082013511156125bd57600080fd5b6125d08d60206060840135840101612268565b604084015288608082013511156125e657600080fd5b6125f98d60206080840135840101612268565b606084015260a08101356080840152508181526040833587010135602082015260608335870101356040820152876080843588010135111561263a57600080fd5b6126508c843588016080810135016020016122fb565b6060820152845250602092830192016124fc565b5060608401525050843585016080013582101561268057600080fd5b61269386863587016080810135016121a4565b6080820152925060208401358110156126ab57600080fd5b506126bc84602085013585016121a4565b90509250929050565b60005b838110156126e05781810151838201526020016126c8565b50506000910152565b600081518084526127018160208601602086016126c5565b601f01601f19169290920160200192915050565b60006001600160a01b038083511684528060208401511660208501525060408201516060604085015261085260608501826126e9565b60008151808452602080850194506020840160005b8381101561279057815180516001600160a01b031688528301518388015260409096019590820190600101612760565b509495945050505050565b60008151808452602080850194506020840160005b83811015612790578151875295820195908201906001016127b0565b600082825180855260208086019550808260051b84010181860160005b8481101561285157601f19868403018952815160606001600160a01b0382511685528582015181878701526128208287018261279b565b9150506040808301519250858203818701525061283d81836126e9565b9a86019a94505050908301906001016127e9565b5090979650505050505050565b6000602080835260c083018451828501528185015160408160408701526040870151915060608260608801526060880151925060a0608060a060808a015285855180885260e0975060e08b01915060e08160051b8c0101898801975060005b8281101561299f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff208d8303018452885180518684526001600160a01b03815116878501528c8101518889860152612919610120860182612715565b90508a820151607f19808784030160c0880152612936838361274b565b92508b840151915080878403018f88015250612952828261274b565b915050878201516101008601528d8301518e8601528a8301518b8601528983015192508481038a86015261298681846127cc565b9b8e019b968e01969450505060019190910190506128bd565b5060808d01519950601f198c82030160a08d01526129bd818b6126e9565b9d9c50505050505050505050505050565b600080604083850312156129e157600080fd5b505080516020909101519092909150565b600060408236031215612a0457600080fd5b612a0c6120be565b823567ffffffffffffffff80821115612a2457600080fd5b612a30368387016121fa565b83526020850135915080821115612a4657600080fd5b50612a53368286016122fb565b60208301525092915050565b602081526000825160406020840152612a7b6060840182612715565b90506020840151601f1984830301604085015261088e82826127cc565b6000808335601e19843603018112612aaf57600080fd5b83018035915067ffffffffffffffff821115612aca57600080fd5b6020019150600581901b3603821315610e3157600080fd5b6000808335601e19843603018112612af957600080fd5b830160208101925035905067ffffffffffffffff811115612b1957600080fd5b8060051b3603821315610e3157600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112612b5f57600080fd5b90910192915050565b6000808335601e19843603018112612b7f57600080fd5b830160208101925035905067ffffffffffffffff811115612b9f57600080fd5b803603821315610e3157600080fd5b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b6000808335601e19843603018112612bf057600080fd5b830160208101925035905067ffffffffffffffff811115612c1057600080fd5b8060061b3603821315610e3157600080fd5b8183526000602080850194508260005b85811015612790578135612c4581611ee9565b6001600160a01b03168752818301358388015260409687019690910190600101612c32565b818352602080840193600091600585811b830182018585805b89811015612d4557601f19878503018b52612c9e838a612b2b565b60608135612cab81611ee9565b6001600160a01b03168652612cc282890183612ae2565b828a8901528083890152608092507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811115612cfc578586fd5b881b808289850137870190506040612d1684820185612b68565b94508389840301828a0152612d2e8484018683612bae565b9f8b019f9850505094880194505050600101612c83565b50919998505050505050505050565b6000604080835260e08301863582850152602060608189013581870152838901356080870152612d86818a018a612ae2565b60a0888101529384905261010093848801600582901b890186018360005b84811015612f21577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008c84030184528135607e19873603018112612de757600080fd5b8601803536829003609e19018112612dfe57600080fd5b6080855281018035612e0f81611ee9565b6001600160a01b038082166080880152612e2b8c840184612b2b565b915060a0808801528135612e3e81611ee9565b8116610120880152818c0135612e5381611ee9565b16610140870152612e66818e0182612b68565b91508a610160880152612e7e61018088018383612bae565b915050612e8d8d830183612bd9565b607f19808985030160c08a0152612ea5848385612c22565b9350612eb38d860186612bd9565b93509150808985030160e08a015250612ecd838383612c22565b9250505060808201358c8701528a8301358b8701528c8301358d870152612ef68a840184612ae2565b935091508581038a870152612f0c818484612c6a565b968b0196955050509188019150600101612da4565b5050612f3060808e018e612b68565b985096507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08a82030160c08b0152612f69818989612bae565b97505050505050848303818601525050611c34818587612bae565b634e487b7160e01b600052603260045260246000fd5b60008235607e19833603018112612fb057600080fd5b9190910192915050565b60008235609e19833603018112612fb057600080fd5b6000808335601e19843603018112612fe757600080fd5b83018035915067ffffffffffffffff82111561300257600080fd5b6020019150600681901b3603821315610e3157600080fd5b60006020828403121561302c57600080fd5b8135611ee281611ee9565b60006001600160a01b03808716835280861660208401525083604083015260806060830152611c3460808301846126e9565b60006020828403121561307b57600080fd5b81518015158114611ee257600080fd5b6000806000606084860312156130a057600080fd5b83516130ab81611ee9565b60208501519093506130bc81611ee9565b604085015190925067ffffffffffffffff8111156130d957600080fd5b8401601f810186136130ea57600080fd5b80516130f86121c38261217c565b81815287602083850101111561310d57600080fd5b61311e8260208301602086016126c5565b8093505050509250925092565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b0383168152604081016004831061316f57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b60006020828403121561318e57600080fd5b5051919050565b60008282518085526020808601955060208260051b8401016020860160005b8481101561285157601f198684030189526131d083835161279b565b988401989250908301906001016131b4565b602081526001600160a01b038251166020820152602082015160408201526000604083015160e0606084015261321c6101008401826126e9565b9050606084015160808401526080840151601f19808584030160a08601526132448383613195565b925060a08601519150808584030160c0860152613261838361279b565b925060c08601519150808584030160e08601525061088e828261279b565b600082601f83011261329057600080fd5b815160206132a06121c383612158565b8083825260208201915060208460051b8701019350868411156132c257600080fd5b602086015b848110156122f057805183529183019183016132c7565b600080604083850312156132f157600080fd5b825167ffffffffffffffff8082111561330957600080fd5b818501915085601f83011261331d57600080fd5b8151602061332d6121c383612158565b82815260059290921b8401810191818101908984111561334c57600080fd5b948201945b8386101561336a57855182529482019490820190613351565b9188015191965090935050508082111561338357600080fd5b506133908582860161327f565b9150509250929050565b828152604060208201526000610852604083018461279b565b60008251612fb08184602087016126c5565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561342c578160001904821115613412576134126133db565b8085161561341f57918102915b93841c93908002906133f6565b509250929050565b6000826134435750600161018a565b816134505750600061018a565b816001811461346657600281146134705761348c565b600191505061018a565b60ff841115613481576134816133db565b50506001821b61018a565b5060208310610133831016604e8410600b84101617156134af575081810a61018a565b6134b983836133f1565b80600019048211156134cd576134cd6133db565b029392505050565b6000611ee28383613434565b808202811582820484141761018a5761018a6133db565b602081526000611ee260208301846126e9565b82815260406020820152600061085260408301846126e956fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564000000000000000000000000000000000000000000000000000000000000002000000000000000000000000093e7298a2c7d05c151ba4572140b8b52e06792bd00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000