7 txs
14 calls
constructor
constructor()
functions
getBytecode
purefunction getBytecode(address _aspTKN, bytes _requiredImmutables, bytes _optionalImmutables) pure returns (bytes)
getNewCaAddress
viewfunction getNewCaAddress(bytes _bytecode, uint96 _salt) view returns (address)
getNewCaFromParams
viewfunction getNewCaFromParams(address _aspTKN, bytes _requiredImmutables, bytes _optionalImmutables, uint96 _salt) view returns (address)
owner
viewfunction owner() view returns (address)
create
nonpayablefunction create(address _aspTKN, bytes _requiredImmutables, bytes _optionalImmutables, uint96 _salt) returns (address _oracleAddress)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Create
event Create(address newOracle)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
creation bytecode
0x6080604052348015600e575f5ffd5b503380603357604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b603a81603f565b50608e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b613c9c8061009b5f395ff3fe608060405234801561000f575f5ffd5b506004361061007a575f3560e01c80638da5cb5b116100585780638da5cb5b146100d8578063a1458ce5146100e8578063c6446618146100fb578063f2fde38b1461010e575f5ffd5b80633691bbf01461007e57806349815834146100ae578063715018a6146100ce575b5f5ffd5b61009161008c3660046104f8565b610121565b6040516001600160a01b0390911681526020015b60405180910390f35b6100c16100bc36600461057d565b610144565b6040516100a5919061061f565b6100d66101ba565b005b5f546001600160a01b0316610091565b6100916100f63660046104f8565b6101cd565b610091610109366004610638565b6102a5565b6100d661011c366004610683565b61032b565b5f5f61012e868686610144565b905061013a81846102a5565b9695505050505050565b60605f6040518060200161015790610416565b6020820181038252601f19601f820116604052509050808585856040516020016101839392919061069c565b60408051601f19818403018152908290526101a192916020016106e8565b6040516020818303038152906040529150509392505050565b6101c261036d565b6101cb5f610399565b565b5f6101ea6101dc868686610144565b6101e5846103e8565b610401565b9050806001600160a01b031663f2fde38b61020c5f546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b15801561024a575f5ffd5b505af115801561025c573d5f5f3e3d5ffd5b50506040516001600160a01b03841681527fe3758539c1bd6726422843471b2886c2d2cefd3b4aead6778386283e20a32a809250602001905060405180910390a1949350505050565b5f806001600160f81b0319306102ba856103e8565b868051906020012060405160200161030994939291906001600160f81b031994909416845260609290921b6bffffffffffffffffffffffff191660018401526015830152603582015260550190565b60408051601f1981840301815291905280516020909101209150505b92915050565b61033361036d565b6001600160a01b03811661036157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61036a81610399565b50565b5f546001600160a01b031633146101cb5760405163118cdaa760e01b8152336004820152602401610358565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6103256bffffffffffffffffffffffff831630610704565b5f8183516020850134f5905080610325575f5ffd5b6135438061072483390190565b80356001600160a01b0381168114610439575f5ffd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610461575f5ffd5b813567ffffffffffffffff81111561047b5761047b61043e565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156104aa576104aa61043e565b6040528181528382016020018510156104c1575f5ffd5b816020850160208301375f918101602001919091529392505050565b80356bffffffffffffffffffffffff81168114610439575f5ffd5b5f5f5f5f6080858703121561050b575f5ffd5b61051485610423565b9350602085013567ffffffffffffffff81111561052f575f5ffd5b61053b87828801610452565b935050604085013567ffffffffffffffff811115610557575f5ffd5b61056387828801610452565b925050610572606086016104dd565b905092959194509250565b5f5f5f6060848603121561058f575f5ffd5b61059884610423565b9250602084013567ffffffffffffffff8111156105b3575f5ffd5b6105bf86828701610452565b925050604084013567ffffffffffffffff8111156105db575f5ffd5b6105e786828701610452565b9150509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61063160208301846105f1565b9392505050565b5f5f60408385031215610649575f5ffd5b823567ffffffffffffffff81111561065f575f5ffd5b61066b85828601610452565b92505061067a602084016104dd565b90509250929050565b5f60208284031215610693575f5ffd5b61063182610423565b6001600160a01b03841681526060602082018190525f906106bf908301856105f1565b828103604084015261013a81856105f1565b5f81518060208401855e5f93019283525090919050565b5f6106fc6106f683866106d1565b846106d1565b949350505050565b8082018082111561032557634e487b7160e01b5f52601160045260245ffdfe6102806040526004805463ffffffff60a01b1916604b60a31b179055348015610026575f5ffd5b5060405161354338038061354383398101604081905261004591610924565b8181338061006c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100758161063b565b505f5f8380602001905181019061008c91906109af565b6001600160a01b039081166101005291151560c05291151560a052918216608052918116610220529182166102005291166101e05283519092506100d99084016020908101908501610a53565b6001600160a01b039182166101c0529181166101a08190529281166101805292831661016052928216610140529281166101205281166102405291501580159061012d5750610180516001600160a01b0316155b8061015857506101a0516001600160a01b03161580156101585750610180516001600160a01b031615155b15610176576040516328628d9560e21b815260040160405180910390fd5b610100516001600160a01b03161561026057604080516080810182525f808252610200516001600160a01b0390811660208401526101005116928201929092526060810182905260018054808201825592819052815160039093025f5160206135235f395f51905f52018054929390929091839160ff19169083600281111561020157610201610aea565b021790555060208201518154610100600160a81b0319166101006001600160a01b039283160217825560408301516001830180546001600160a01b03199081169284169290921790556060909301516002909201805490931691161790555b6101a0516001600160a01b03161561034f576040805160808101825260018082526101e0516001600160a01b0390811660208401526101a051811693830193909352610180519092166060820152815480830183555f839052815160039091025f5160206135235f395f51905f5201805492939092839160ff19909116908360028111156102f0576102f0610aea565b021790555060208201518154610100600160a81b0319166101006001600160a01b039283160217825560408301516001830180546001600160a01b03199081169284169290921790556060909301516002909201805490931691161790555b6101c0516001600160a01b03161561043a57604080516080810182526002808252610220516001600160a01b0390811660208401526101c05116928201929092525f6060820181905260018054808201825591819052825160039092025f5160206135235f395f51905f5201805493949093849260ff199091169184908111156103db576103db610aea565b021790555060208201518154610100600160a81b0319166101006001600160a01b039283160217825560408301516001830180546001600160a01b03199081169284169290921790556060909301516002909201805490931691161790555b5f6001600160a01b031660015f8154811061045757610457610afe565b5f9182526020909120600160039092020101546001600160a01b0316148061048157506001546002105b1561049f5760405163c459eea560e01b815260040160405180910390fd5b610160515f906001600160a01b03166104bb57610140516104c0565b610160515b610120519091506001600160a01b0316158015906104e657506001600160a01b03811615155b1561050457604051634b26727360e11b815260040160405180910390fd5b60805160a0511561059b575f6080516001600160a01b0316632acada4d6040518163ffffffff1660e01b81526004015f60405180830381865afa15801561054d573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105749190810190610b12565b9050805f8151811061058857610588610afe565b60200260200101515f0151915050610608565b60c05115610608576080516001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105e1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106059190610c11565b90505b6001600160a01b03811660e05261061e8461068a565b5050506001600160a01b039095166102605250610c339350505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811661069b5750565b6002546001600160a01b0316156106c557604051634af85cf560e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b03831690811790915560408051632aa6a85160e21b8152905163aa9aa144916004808201926020929091908290030181865afa15801561071c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107409190610c11565b600380546001600160a01b0319166001600160a01b0392909216918217905560408051632acada4d60e01b815290515f9291632acada4d91600480830192869291908290030181865afa158015610799573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526107c09190810190610b12565b9050805f815181106107d4576107d4610afe565b60209081029190910181015151600480546001600160a01b0319166001600160a01b03928316179055600354604051911681527f02176273ef1668d41059376b23ac9b35710fdc7c4f5672098d43162c71b88cc2910160405180910390a15050565b6001600160a01b038116811461084a575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b60405160a081016001600160401b03811182821017156108835761088361084d565b60405290565b604051601f8201601f191681016001600160401b03811182821017156108b1576108b161084d565b604052919050565b5f82601f8301126108c8575f5ffd5b81516001600160401b038111156108e1576108e161084d565b6108f4601f8201601f1916602001610889565b818152846020838601011115610908575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f5f5f60608486031215610936575f5ffd5b835161094181610836565b60208501519093506001600160401b0381111561095c575f5ffd5b610968868287016108b9565b604086015190935090506001600160401b03811115610985575f5ffd5b610991868287016108b9565b9150509250925092565b805180151581146109aa575f5ffd5b919050565b5f5f5f5f5f5f5f5f610100898b0312156109c7575f5ffd5b88516109d281610836565b60208a01519098506109e381610836565b60408a01519097506109f481610836565b60608a0151909650610a0581610836565b9450610a1360808a0161099b565b9350610a2160a08a0161099b565b925060c0890151610a3181610836565b60e08a0151909250610a4281610836565b809150509295985092959890939650565b5f5f5f5f5f5f5f60e0888a031215610a69575f5ffd5b8751610a7481610836565b6020890151909750610a8581610836565b6040890151909650610a9681610836565b6060890151909550610aa781610836565b6080890151909450610ab881610836565b60a0890151909350610ac981610836565b60c0890151909250610ada81610836565b8091505092959891949750929550565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215610b22575f5ffd5b81516001600160401b03811115610b37575f5ffd5b8201601f81018413610b47575f5ffd5b80516001600160401b03811115610b6057610b6061084d565b610b6f60208260051b01610889565b80828252602082019150602060a08402850101925086831115610b90575f5ffd5b6020840193505b82841015610c075760a08488031215610bae575f5ffd5b610bb6610861565b8451610bc181610836565b815260208581015190820152604080860151908201526060850151610be581610836565b606082015260808581015190820152825260a090930192602090910190610b97565b9695505050505050565b5f60208284031215610c21575f5ffd5b8151610c2c81610836565b9392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051612788610d9b5f395f81816101e3015261063601525f8181610346015261173501525f818161026f01528181610aa60152611eda01525f818161048f015261202101525f81816103e001528181611c7b0152611d9b01525f61036d01525f81816104b601528181611caa0152611dca01525f818161042e01528181611ccb0152611deb01525f818161040701528181611ea90152611f2b01525f818161039401528181611f6c0152611fe401525f818161029601528181610ad5015281816111210152611d6701525f61030c01525f8181611f0a0152611fb301525f81816102c50152611bb901525f81816104680152611b8301525f8181610232015281816108410152818161139c015281816117c601528181611bf30152818161219301526121bd01526127885ff3fe608060405234801561000f575f5ffd5b5060043610610187575f3560e01c8063a88dbb36116100d9578063cc88250111610093578063d401178e1161006e578063d401178e14610463578063eb33bd3c1461048a578063ef88dac1146104b1578063f2fde38b146104d8575f5ffd5b8063cc88250114610402578063cdbb0e6914610429578063cf5aae1914610450575f5ffd5b8063a88dbb361461032e578063aa0effc514610341578063b1ce6aff14610368578063b235c94b1461038f578063bd9a548b146103b6578063ca5ed14c146103db575f5ffd5b8063329ea9b111610144578063715018a61161011f578063715018a6146102b857806385295c49146102c05780638da5cb5b146102f75780638dd7941714610307575f5ffd5b8063329ea9b11461025457806343ed99111461026a57806346eeb01a14610291575f5ffd5b80630738831b1461018b57806310c7f0b9146101bb578063163f2c54146101de57806318f932c2146102055780631d27050f14610218578063210663e41461022d575b5f5ffd5b60025461019e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101ce6101c9366004612261565b6104eb565b6040516101b2949392919061228c565b61019e7f000000000000000000000000000000000000000000000000000000000000000081565b60045461019e906001600160a01b031681565b61022b6102263660046122d3565b610534565b005b61019e7f000000000000000000000000000000000000000000000000000000000000000081565b61025c6105cc565b6040519081526020016101b2565b61019e7f000000000000000000000000000000000000000000000000000000000000000081565b61019e7f000000000000000000000000000000000000000000000000000000000000000081565b61022b6105f4565b6102e77f000000000000000000000000000000000000000000000000000000000000000081565b60405190151581526020016101b2565b5f546001600160a01b031661019e565b61019e7f000000000000000000000000000000000000000000000000000000000000000081565b60035461019e906001600160a01b031681565b61019e7f000000000000000000000000000000000000000000000000000000000000000081565b61019e7f000000000000000000000000000000000000000000000000000000000000000081565b61019e7f000000000000000000000000000000000000000000000000000000000000000081565b6103be610607565b6040805193151584526020840192909252908201526060016101b2565b61019e7f000000000000000000000000000000000000000000000000000000000000000081565b61019e7f000000000000000000000000000000000000000000000000000000000000000081565b61019e7f000000000000000000000000000000000000000000000000000000000000000081565b61022b61045e366004612311565b6106e5565b6102e77f000000000000000000000000000000000000000000000000000000000000000081565b61019e7f000000000000000000000000000000000000000000000000000000000000000081565b61019e7f000000000000000000000000000000000000000000000000000000000000000081565b61022b6104e6366004612311565b610720565b600181815481106104fa575f80fd5b5f91825260209091206003909102018054600182015460029092015460ff821693506001600160a01b036101009092048216928216911684565b61053c61075f565b8063ffffffff165f036105625760405163cad929df60e01b815260040160405180910390fd5b6004805463ffffffff838116600160a01b81810263ffffffff60a01b1985161790945560408051949093049091168084526020840191909152917f86139943149914833c057d2c24f3a3967cce8e6aba2eb12e422500d8a51ffc7b91015b60405180910390a15050565b5f6105d65f61078b565b6105ef906ec097ce7bc90715b34b9f1000000000612340565b905090565b6105fc61075f565b6106055f6107ec565b565b6040516363737ac960e11b8152670de0b6b3a7640000600482018190525f918291829182906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c6e6f59290602401602060405180830381865afa15801561067b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061069f919061235f565b90506106a961083b565b91965094509250816106bb8286612376565b6106c59190612340565b9350816106d28285612376565b6106dc9190612340565b92505050909192565b6106ed61075f565b6001600160a01b03811661071457604051631b1689ab60e11b815260040160405180910390fd5b61071d81610dfa565b50565b61072861075f565b6001600160a01b03811661075657604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61071d816107ec565b5f546001600160a01b031633146106055760405163118cdaa760e01b815233600482015260240161074d565b5f815f036107b0575f61079c610f9f565b9350905080156107ae57505f92915050565b505b6003546004546107cd916001600160a01b03908116911684611217565b6003549091506107e6906001600160a01b0316826115f1565b92915050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561089b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108bf919061238d565b6040805160028082526060820183529293505f9290916020830190803683370190505090505f5b600154811015610c35575f60018281548110610904576109046123c1565b5f91825260209091206003909102015460ff16600281111561092857610928612278565b036109a4575f6109375f611682565b90508680610943575080155b965060128460ff16116109605761095b8460126123d5565b61096b565b61096b6012856123d5565b61097690600a6124d1565b6109809082612376565b838381518110610992576109926123c1565b60200260200101818152505050610c2d565b60018082815481106109b8576109b86123c1565b5f91825260209091206003909102015460ff1660028111156109dc576109dc612278565b03610a64575f6109ea611c76565b90505f6109f682611682565b905060128560ff1611610a1357610a0e8560126123d5565b610a1e565b610a1e6012866123d5565b610a2990600a6124d1565b610a339082612376565b848481518110610a4557610a456123c1565b6020026020010181815250508780610a5b575081155b97505050610c2d565b600260018281548110610a7957610a796123c1565b5f91825260209091206003909102015460ff166002811115610a9d57610a9d612278565b03610c2d575f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630807aa917f000000000000000000000000000000000000000000000000000000000000000060045f9054906101000a90046001600160a01b031660018781548110610b1c57610b1c6123c1565b5f91825260208220600160039092020101546040516001600160e01b031960e087901b168152610b5d9493926001600160a01b0390921691906004016124df565b6040805180830381865afa158015610b77573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b9b9190612509565b915091505f5f610bab835f611d5b565b915091505f610bb982611682565b905060128860ff1611610bd657610bd18860126123d5565b610be1565b610be16012896123d5565b610bec90600a6124d1565b610bf69082612376565b878781518110610c0857610c086123c1565b6020026020010181815250508a80610c1d5750845b80610c255750825b9a5050505050505b6001016108e6565b50805f81518110610c4857610c486123c1565b60200260200101515f148015610c77575080600181518110610c6c57610c6c6123c1565b60200260200101515f145b15610c955760405163340d2cbf60e11b815260040160405180910390fd5b805f81518110610ca757610ca76123c1565b60200260200101515f03610cf45780600181518110610cc857610cc86123c1565b6020026020010151935080600181518110610ce557610ce56123c1565b60200260200101519250610df3565b80600181518110610d0757610d076123c1565b60200260200101515f03610d4357805f81518110610d2757610d276123c1565b60200260200101519350805f81518110610ce557610ce56123c1565b80600181518110610d5657610d566123c1565b6020026020010151815f81518110610d7057610d706123c1565b602002602001015111610db757805f81518110610d8f57610d8f6123c1565b602002602001015181600181518110610daa57610daa6123c1565b6020026020010151610ded565b80600181518110610dca57610dca6123c1565b6020026020010151815f81518110610de457610de46123c1565b60200260200101515b90945092505b5050909192565b6001600160a01b038116610e0b5750565b6002546001600160a01b031615610e3557604051634af85cf560e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b03831690811790915560408051632aa6a85160e21b8152905163aa9aa144916004808201926020929091908290030181865afa158015610e8c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eb09190612539565b600380546001600160a01b0319166001600160a01b0392909216918217905560408051632acada4d60e01b815290515f9291632acada4d91600480830192869291908290030181865afa158015610f09573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f3091908101906125ae565b9050805f81518110610f4457610f446123c1565b60209081029190910181015151600480546001600160a01b0319166001600160a01b03928316179055600354604051911681527f02176273ef1668d41059376b23ac9b35710fdc7c4f5672098d43162c71b88cc291016105c0565b5f806001805f81548110610fb557610fb56123c1565b5f91825260209091206003909102015460ff166002811115610fd957610fd9612278565b036110df5760015f81548110610ff157610ff16123c1565b5f918252602082206003919091020154600180546101009092046001600160a01b031692630807aa9192611027576110276123c1565b5f91825260208220600160039092020181015481546001600160a01b039091169290611055576110556123c1565b5f91825260208220600260039092020101546040516001600160e01b031960e086901b16815261109793926001600160a01b03909216919081906004016124df565b6040805180830381865afa1580156110b1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d59190612509565b90925090506111f5565b60015f815481106110f2576110f26123c1565b5f9182526020822060039091020154600454600180546001600160a01b03610100909404841694630807aa91947f000000000000000000000000000000000000000000000000000000000000000094169291611150576111506123c1565b5f9182526020909120600390910201600101546004805460405160e087901b6001600160e01b03191681526001600160a01b0395861692810192909252928416602482015292166044830152600160a01b900463ffffffff1660648201526084016040805180830381865afa1580156111cb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ef9190612509565b90925090505b811561120457506001915f9150565b61120e815f611d5b565b90939092509050565b5f6001600160a01b0383166112ac575f846001600160a01b0316632acada4d6040518163ffffffff1660e01b81526004015f60405180830381865afa158015611262573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261128991908101906125ae565b9050805f8151811061129d5761129d6123c1565b60200260200101515f01519350505b5f836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112e9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061130d919061238d565b61131890600a6124d1565b856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611354573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611378919061238d565b61138390600a6124d1565b61138d9085612376565b6113979190612340565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b031614801561143d5750856001600160a01b0316635ca8861f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611412573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611436919061238d565b60ff166001145b156114b1576040516359339af360e11b8152600481018390526001600160a01b0387169063b26735e6906024015b602060405180830381865afa158015611486573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114aa919061235f565b9050611561565b856001600160a01b0316636a5e26506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114ed573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611511919061238d565b60ff16600103611548576040516303d1689d60e11b8152600481018390526001600160a01b038716906307a2d13a9060240161146b565b604051634f10a27f60e11b815260040160405180910390fd5b856001600160a01b031663bdc8d0606040518163ffffffff1660e01b8152600401602060405180830381865afa15801561159d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115c191906126a5565b6115cd906127106126c6565b61ffff166115dd82612710612376565b6115e79190612340565b9695505050505050565b5f5f836001600160a01b031663bdc8d0606040518163ffffffff1660e01b8152600401602060405180830381865afa15801561162f573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061165391906126a5565b905061271061166661ffff831685612376565b6116709190612340565b61167a90846126e0565b949350505050565b5f5f61168d8361078b565b90505f6116986120ca565b90505f60035f9054906101000a90046001600160a01b03166001600160a01b0316634f4ce61d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116eb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061170f9190612539565b604051630fa6707960e21b81526001600160a01b0384811660048301529192505f9182917f000000000000000000000000000000000000000000000000000000000000000090911690633e99c1e4906024016040805180830381865afa15801561177b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061179f919061270e565b915091505f816001600160701b0316836001600160701b03166117c29190612376565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614611867576040516303d1689d60e11b8152600481018290526001600160a01b038516906307a2d13a90602401602060405180830381865afa158015611840573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611864919061235f565b90505b5f856001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118a4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118c89190612539565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611903573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611927919061238d565b61193290600a6124d1565b866001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561196e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119929190612539565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119cd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119f1919061238d565b6119fc90600a6124d1565b611a069190612376565b90505f611a2682611a17858b612376565b611a219190612340565b612135565b611a3890670de0b6b3a7640000612376565b90505f876001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a77573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a9b919061235f565b9050805f03611ab457505f9a9950505050505050505050565b5f81896001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611af2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b16919061238d565b611b2190600a6124d1565b611b2c856002612376565b611b369190612376565b611b409190612340565b9050805f03611b625760405163e9c8240960e01b815260040160405180910390fd5b611b7f81722cd76fe086b93ce2f768a00b22a00000000000612340565b9a507f000000000000000000000000000000000000000000000000000000000000000015611bb757611bb08b61218d565b9a50611c67565b7f000000000000000000000000000000000000000000000000000000000000000015611c67576040516303d1689d60e11b8152600481018c90527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307a2d13a90602401602060405180830381865afa158015611c40573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c64919061235f565b9a505b50505050505050505050919050565b5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630807aa917f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000005f5f6040518563ffffffff1660e01b8152600401611d0b94939291906124df565b6040805180830381865afa158015611d25573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d499190612509565b9150915081156107e6575f9250505090565b5f82828015611d9257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615155b15611ea7575f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630807aa917f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000005f5f6040518563ffffffff1660e01b8152600401611e2b94939291906124df565b6040805180830381865afa158015611e45573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e699190612509565b915091508115611e815760015f9350935050506120c3565b80611e9484670de0b6b3a7640000612376565b611e9e9190612340565b925050506120c3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615611f6a575f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630807aa915f7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000005f6040518563ffffffff1660e01b8152600401611e2b94939291906124df565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316156120c35760048054604051630807aa9160e01b81525f9281018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811660248301527f000000000000000000000000000000000000000000000000000000000000000081166044830152600160a01b90920463ffffffff16606482015282917f00000000000000000000000000000000000000000000000000000000000000001690630807aa91906084016040805180830381865afa158015612065573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120899190612509565b9150915081156120a15760015f9350935050506120c3565b806120b484670de0b6b3a7640000612376565b6120be9190612340565b925050505b9250929050565b600254604080516372f702f360e01b815290515f926001600160a01b0316916372f702f39160048083019260209291908290030181865afa158015612111573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ef9190612539565b5f80600261214484600161273f565b61214e9190612340565b90508291505b818110156121875790508060028161216c8186612340565b612176919061273f565b6121809190612340565b9050612154565b50919050565b5f6121b97f00000000000000000000000000000000000000000000000000000000000000005f84611217565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ff140ca66040518163ffffffff1660e01b8152600401602060405180830381865afa158015612217573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061223b91906126a5565b612247906127106126c6565b61ffff1661225782612710612376565b6107e69190612340565b5f60208284031215612271575f5ffd5b5035919050565b634e487b7160e01b5f52602160045260245ffd5b60808101600386106122ac57634e487b7160e01b5f52602160045260245ffd5b9481526001600160a01b039384166020820152918316604083015290911660609091015290565b5f602082840312156122e3575f5ffd5b813563ffffffff811681146122f6575f5ffd5b9392505050565b6001600160a01b038116811461071d575f5ffd5b5f60208284031215612321575f5ffd5b81356122f6816122fd565b634e487b7160e01b5f52601160045260245ffd5b5f8261235a57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561236f575f5ffd5b5051919050565b80820281158282048414176107e6576107e661232c565b5f6020828403121561239d575f5ffd5b815160ff811681146122f6575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b60ff82811682821603908111156107e6576107e661232c565b6001815b60018411156124295780850481111561240d5761240d61232c565b600184161561241b57908102905b60019390931c9280026123f2565b935093915050565b5f8261243f575060016107e6565b8161244b57505f6107e6565b8160018114612461576002811461246b57612487565b60019150506107e6565b60ff84111561247c5761247c61232c565b50506001821b6107e6565b5060208310610133831016604e8410600b84101617156124aa575081810a6107e6565b6124b65f1984846123ee565b805f19048211156124c9576124c961232c565b029392505050565b5f6122f660ff841683612431565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b5f5f6040838503121561251a575f5ffd5b82518015158114612529575f5ffd5b6020939093015192949293505050565b5f60208284031215612549575f5ffd5b81516122f6816122fd565b60405160a0810167ffffffffffffffff81118282101715612577576125776123ad565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156125a6576125a66123ad565b604052919050565b5f602082840312156125be575f5ffd5b815167ffffffffffffffff8111156125d4575f5ffd5b8201601f810184136125e4575f5ffd5b805167ffffffffffffffff8111156125fe576125fe6123ad565b61260d60208260051b0161257d565b80828252602082019150602060a0840285010192508683111561262e575f5ffd5b6020840193505b828410156115e75760a0848803121561264c575f5ffd5b612654612554565b845161265f816122fd565b815260208581015190820152604080860151908201526060850151612683816122fd565b606082015260808581015190820152825260a090930192602090910190612635565b5f602082840312156126b5575f5ffd5b815161ffff811681146122f6575f5ffd5b61ffff82811682821603908111156107e6576107e661232c565b818103818111156107e6576107e661232c565b80516001600160701b0381168114612709575f5ffd5b919050565b5f5f6040838503121561271f575f5ffd5b612728836126f3565b9150612736602084016126f3565b90509250929050565b808201808211156107e6576107e661232c56fea2646970667358221220dca74dc7ec338da48d34cb342ae3abd8d1b73d132c08219d6ebce2baf1aa424364736f6c634300081c0033b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6a2646970667358221220ba9034e938e6f8506e7750b5d7258475e2269c9952830c71a6aa9962ea5bd9aa64736f6c634300081c0033