1 tx
99 calls
constructor
constructor()
functions
owner
viewfunction owner() view returns (address)
deployFundTokenStakingImplementation
nonpayablefunction deployFundTokenStakingImplementation() returns (address)
deployKosherCapitalV1Token
nonpayablefunction deployKosherCapitalV1Token(string name, string symbol, bytes32 salt) returns (address)
deployPersonalFundV1
nonpayablefunction deployPersonalFundV1(address kosherManager, address protocolAdmin, bool isCbBTCFund, address aiWallet, address cbBTCAddress) returns (address)
deployShekelLocker
nonpayablefunction deployShekelLocker(address shekelToken, address protocolAdmin, uint256 fundExpiry) returns (address)
deployWhitelistManager
nonpayablefunction deployWhitelistManager(address protocolAdmin, uint256 maxWhitelistAmount, address kosherManager) returns (address)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
creation bytecode
0x6080604052348015600f57600080fd5b503380603557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b603c816041565b506091565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b615064806100a06000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c342df661161005b578063c342df66146100db578063d9b3cbe8146100ee578063f2fde38b14610101578063fddaec491461011457600080fd5b8063715018a61461008d5780638da5cb5b14610097578063aded63bb146100c0578063bef8de1f146100c8575b600080fd5b610095610127565b005b6000546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b6100a461013b565b6100a46100d6366004610531565b61016d565b6100a46100e93660046105bf565b610210565b6100a46100fc36600461062b565b6102e7565b61009561010f366004610667565b61033f565b6100a4610122366004610689565b610382565b61012f6103ce565b61013960006103fb565b565b60008060405161014a9061044b565b604051809103906000f080158015610166573d6000803e3d6000fd5b5092915050565b60008082858560405161017f90610458565b61018a92919061070c565b8190604051809103906000f59050801580156101aa573d6000803e3d6000fd5b5060405163f2fde38b60e01b81523360048201529091506001600160a01b0382169063f2fde38b90602401600060405180830381600087803b1580156101ef57600080fd5b505af1158015610203573d6000803e3d6000fd5b5092979650505050505050565b6000806040518060a00160405280886001600160a01b03168152602001876001600160a01b031681526020018615158152602001856001600160a01b03168152602001846001600160a01b031681525090506000813360405161027290610465565b82516001600160a01b039081168252602080850151821690830152604080850151151590830152606080850151821690830152608093840151811693820193909352911660a082015260c001604051809103906000f0801580156102da573d6000803e3d6000fd5b5098975050505050505050565b6000808484846040516102f990610472565b6001600160a01b03938416815260208101929092529091166040820152606001604051809103906000f080158015610335573d6000803e3d6000fd5b5095945050505050565b6103476103ce565b6001600160a01b03811661037657604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61037f816103fb565b50565b6000808484846040516103949061047f565b6001600160a01b0393841681529290911660208301526040820152606001604051809103906000f0801580156101aa573d6000803e3d6000fd5b6000546001600160a01b031633146101395760405163118cdaa760e01b815233600482015260240161036d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6116408061073b83390190565b610c1c80611d7b83390190565b6112178061299783390190565b610a6d80613bae83390190565b610a148061461b83390190565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126104b357600080fd5b813567ffffffffffffffff8111156104cd576104cd61048c565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156104fc576104fc61048c565b60405281815283820160200185101561051457600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561054657600080fd5b833567ffffffffffffffff81111561055d57600080fd5b610569868287016104a2565b935050602084013567ffffffffffffffff81111561058657600080fd5b610592868287016104a2565b925050604084013590509250925092565b80356001600160a01b03811681146105ba57600080fd5b919050565b600080600080600060a086880312156105d757600080fd5b6105e0866105a3565b94506105ee602087016105a3565b93506040860135801515811461060357600080fd5b9250610611606087016105a3565b915061061f608087016105a3565b90509295509295909350565b60008060006060848603121561064057600080fd5b610649846105a3565b92506020840135915061065e604085016105a3565b90509250925092565b60006020828403121561067957600080fd5b610682826105a3565b9392505050565b60008060006060848603121561069e57600080fd5b6106a7846105a3565b92506106b5602085016105a3565b929592945050506040919091013590565b6000815180845260005b818110156106ec576020818501810151868301820152016106d0565b506000602082860101526020601f19601f83011685010191505092915050565b60408152600061071f60408301856106c6565b828103602084015261073181856106c6565b9594505050505056fe6080604052348015600f57600080fd5b506016601a565b60d7565b600054610100900460ff161560855760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161460d5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61155a806100e66000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c8063715018a6116100de5780638f2203f611610097578063eb990c5911610071578063eb990c591461039e578063ed4906c0146103b1578063f2fde38b146103dd578063f7c618c1146103f057600080fd5b80638f2203f614610374578063a694fc3a14610383578063db2e21bc1461039657600080fd5b8063715018a6146102c957806372f702f3146102d1578063817b1cd2146102fc5780638b0b30ce146103055780638d23fc611461030e5780638da5cb5b1461036357600080fd5b80634da6a556116101305780634da6a556146101e157806356311bda1461020a5780635c2235861461021d57806365edf56a14610277578063668038e0146102ae5780636a3d9251146102b657600080fd5b80630f91922b146101785780632113342d1461019e5780633243c791146101a7578063375b3c0a146101bc5780633cb802b9146101c55780633d28ab8e146101ce575b600080fd5b61018b6101863660046112fe565b610403565b6040519081526020015b60405180910390f35b61018b609c5481565b6101ba6101b5366004611320565b610486565b005b61018b609a5481565b61018b609d5481565b6101ba6101dc366004611339565b6105d2565b61018b6101ef3660046112fe565b6001600160a01b03166000908152609e602052604090205490565b6101ba610218366004611320565b610715565b61025a61022b3660046113b0565b609f60209081526000928352604080842090915290825290208054600182015460029092015490919060ff1683565b604080519384526020840192909252151590820152606001610195565b61028a6102853660046113b0565b61088d565b60408051825181526020808401519082015291810151151590820152606001610195565b6101ba610907565b6101ba6102c4366004611320565b6109c9565b6101ba610a5c565b6097546102e4906001600160a01b031681565b6040516001600160a01b039091168152602001610195565b61018b609b5481565b61018b60995481565b61034361031c3660046112fe565b609e6020526000908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610195565b6033546001600160a01b03166102e4565b61018b670de0b6b3a764000081565b6101ba610391366004611320565b610a6e565b6101ba610b68565b6101ba6103ac3660046113da565b610c4f565b61018b6103bf3660046112fe565b6001600160a01b03166000908152609e602052604090206001015490565b6101ba6103eb3660046112fe565b610ece565b6098546102e4906001600160a01b031681565b6001600160a01b0381166000908152609e60205260408120609c546002820154839061042f9083611432565b90506000670de0b6b3a764000082856000015461044c9190611445565b610456919061145c565b905060006104696402540be4008361145c565b905080856003015461047b919061147e565b979650505050505050565b61048e610f44565b6000609b54116104d85760405162461bcd60e51b815260206004820152601060248201526f4e6f207374616b656420746f6b656e7360801b60448201526064015b60405180910390fd5b600081116105195760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b60448201526064016104cf565b600061052a6402540be40083611445565b90506000609b54670de0b6b3a7640000836105459190611445565b61054f919061145c565b60985490915061056a906001600160a01b0316333086610f9e565b80609c600082825461057c919061147e565b9250508190555082609d6000828254610595919061147e565b90915550506040518381527f051019b59d3b24249903e46fd05b6def7f293fc3de54eca64b3d32743f27fc8e9060200160405180910390a1505050565b6105da61100b565b6000805b8281101561066957336000908152609f602052604081208186868581811061060857610608611491565b60209081029290920135835250810191909152604001600020600281015490915060ff1615801561063d575080600101544210155b1561066057805461064e908461147e565b60028201805460ff1916600117905592505b506001016105de565b50600081116106ba5760405162461bcd60e51b815260206004820152601e60248201527f4e6f20746f6b656e7320726561647920666f72207769746864726177616c000060448201526064016104cf565b6097546106d1906001600160a01b03163383611064565b60405181815233907f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d59060200160405180910390a2506107116001606555565b5050565b61071d61100b565b336000908152609e60205260409020805482111561077d5760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e74207374616b656420616d6f756e7400000000000060448201526064016104cf565b610786336110a1565b8181600001600082825461079a9190611432565b9250508190555081609b60008282546107b39190611432565b9091555050609c546002820155600181018054600091826107d3836114a7565b9190505590506000609954426107e9919061147e565b60408051606080820183528782526020808301858152600084860181815233808352609f85528783208b8452855291879020955186559151600186015590516002909401805460ff1916941515949094179093558351898152908101859052928301869052929350917ff265d6065ef1332d7a6da1a66115a5f51a6ffd1b5da52bcfff6510598b94ffb8910160405180910390a250505061088a6001606555565b50565b6108b3604051806060016040528060008152602001600081526020016000151581525090565b506001600160a01b0382166000908152609f602090815260408083208484528252918290208251606081018452815481526001820154928101929092526002015460ff161515918101919091525b92915050565b61090f61100b565b610918336110a1565b336000908152609e602052604090206003810154806109685760405162461bcd60e51b815260206004820152600c60248201526b4e6f206469766964656e647360a01b60448201526064016104cf565b60006003830155609854610986906001600160a01b03163383611064565b60405181815233907f16b8533c95f66ab8c192c98ddcf5031bcb3ee6f4022988bdadd57d3422da30739060200160405180910390a250506109c76001606555565b565b6109d1610f44565b60008111610a215760405162461bcd60e51b815260206004820152601a60248201527f556e626f6e64696e672074696d65206d757374206265203e203000000000000060448201526064016104cf565b60998190556040518181527fd8a43159bd7089803e737cde3c04fc38091766e96f67fb8f43df39416fde14fb9060200160405180910390a150565b610a64610f44565b6109c7600061116a565b610a7661100b565b609a54811015610abd5760405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e74207374616b6560701b60448201526064016104cf565b336000818152609e6020526040902090610ad6906110a1565b81816000016000828254610aea919061147e565b9250508190555081609b6000828254610b03919061147e565b9091555050609c546002820155609754610b28906001600160a01b0316333085610f9e565b60405182815233907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d9060200160405180910390a25061088a6001606555565b610b70610f44565b6097546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610bb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdd91906114c0565b905060008111610c275760405162461bcd60e51b81526020600482015260156024820152744e6f20746f6b656e7320746f20776974686472617760581b60448201526064016104cf565b61088a610c3c6033546001600160a01b031690565b6097546001600160a01b03169083611064565b600054610100900460ff1615808015610c6f5750600054600160ff909116105b80610c895750303b158015610c89575060005460ff166001145b610cec5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104cf565b6000805460ff191660011790558015610d0f576000805461ff0019166101001790555b6001600160a01b038516610d5d5760405162461bcd60e51b815260206004820152601560248201527424b73b30b634b21039ba30b5b4b733903a37b5b2b760591b60448201526064016104cf565b6001600160a01b038416610daa5760405162461bcd60e51b815260206004820152601460248201527324b73b30b634b2103932bbb0b932103a37b5b2b760611b60448201526064016104cf565b60008311610df35760405162461bcd60e51b8152602060048201526016602482015275496e76616c696420756e626f6e64696e672074696d6560501b60448201526064016104cf565b60008211610e375760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964206d696e207374616b6560781b60448201526064016104cf565b610e3f6111bc565b610e476111eb565b609780546001600160a01b038088166001600160a01b03199283161790925560988054928716929091169190911790556099839055609a8290558015610ec7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b610ed6610f44565b6001600160a01b038116610f3b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104cf565b61088a8161116a565b6033546001600160a01b031633146109c75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104cf565b6040516001600160a01b0384811660248301528381166044830152606482018390526110059186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505061121a565b50505050565b60026065540361105d5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016104cf565b6002606555565b6040516001600160a01b0383811660248301526044820183905261109591859182169063a9059cbb90606401610fd3565b505050565b6001606555565b6001600160a01b0381166000908152609e6020526040812080549091036110c6575050565b609c5460028201546000906110db9083611432565b9050806000036110eb5750505050565b6000670de0b6b3a76400008285600001546111069190611445565b611110919061145c565b905060006111236402540be4008361145c565b9050801561115e578085600301600082825461113f919061147e565b9250508190555080609d60008282546111589190611432565b90915550505b50505060029091015550565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166111e35760405162461bcd60e51b81526004016104cf906114d9565b6109c761128b565b600054610100900460ff166112125760405162461bcd60e51b81526004016104cf906114d9565b6109c76112bb565b600080602060008451602086016000885af18061123d576040513d6000823e3d81fd5b50506000513d91508115611255578060011415611262565b6001600160a01b0384163b155b1561100557604051635274afe760e01b81526001600160a01b03851660048201526024016104cf565b600054610100900460ff166112b25760405162461bcd60e51b81526004016104cf906114d9565b6109c73361116a565b600054610100900460ff1661109a5760405162461bcd60e51b81526004016104cf906114d9565b80356001600160a01b03811681146112f957600080fd5b919050565b60006020828403121561131057600080fd5b611319826112e2565b9392505050565b60006020828403121561133257600080fd5b5035919050565b6000806020838503121561134c57600080fd5b823567ffffffffffffffff81111561136357600080fd5b8301601f8101851361137457600080fd5b803567ffffffffffffffff81111561138b57600080fd5b8560208260051b84010111156113a057600080fd5b6020919091019590945092505050565b600080604083850312156113c357600080fd5b6113cc836112e2565b946020939093013593505050565b600080600080608085870312156113f057600080fd5b6113f9856112e2565b9350611407602086016112e2565b93969395505050506040820135916060013590565b634e487b7160e01b600052601160045260246000fd5b818103818111156109015761090161141c565b80820281158282048414176109015761090161141c565b60008261147957634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156109015761090161141c565b634e487b7160e01b600052603260045260246000fd5b6000600182016114b9576114b961141c565b5060010190565b6000602082840312156114d257600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea2646970667358221220baea6979bb0021834c7b4ce105e00e1ccc227a378ccec2892f473f18b025fdc064736f6c634300081c0033608060405234801561001057600080fd5b50604051610c1c380380610c1c83398101604081905261002f91610198565b338282600361003e838261028a565b50600461004b828261028a565b5050506001600160a01b03811661007c57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100858161008d565b505050610348565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261010657600080fd5b81516001600160401b0381111561011f5761011f6100df565b604051601f8201601f19908116603f011681016001600160401b038111828210171561014d5761014d6100df565b60405281815283820160200185101561016557600080fd5b60005b8281101561018457602081860181015183830182015201610168565b506000918101602001919091529392505050565b600080604083850312156101ab57600080fd5b82516001600160401b038111156101c157600080fd5b6101cd858286016100f5565b602085015190935090506001600160401b038111156101eb57600080fd5b6101f7858286016100f5565b9150509250929050565b600181811c9082168061021557607f821691505b60208210810361023557634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561028557806000526020600020601f840160051c810160208510156102625750805b601f840160051c820191505b81811015610282576000815560010161026e565b50505b505050565b81516001600160401b038111156102a3576102a36100df565b6102b7816102b18454610201565b8461023b565b6020601f8211600181146102eb57600083156102d35750848201515b600019600385901b1c1916600184901b178455610282565b600084815260208120601f198516915b8281101561031b57878501518255602094850194600190920191016102fb565b50848210156103395786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6108c5806103576000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b41146101aa578063a9059cbb146101b2578063dd62ed3e146101c5578063f2fde38b146101fe57600080fd5b806370a082311461015e578063715018a6146101875780638da5cb5b1461018f57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806340c10f1914610149575b600080fd5b6100dc610211565b6040516100e9919061070e565b60405180910390f35b610105610100366004610778565b6102a3565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107a2565b6102bd565b604051601281526020016100e9565b61015c610157366004610778565b6102e1565b005b61011961016c3660046107df565b6001600160a01b031660009081526020819052604090205490565b61015c6102f7565b6005546040516001600160a01b0390911681526020016100e9565b6100dc61030b565b6101056101c0366004610778565b61031a565b6101196101d3366004610801565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61015c61020c3660046107df565b610328565b60606003805461022090610834565b80601f016020809104026020016040519081016040528092919081815260200182805461024c90610834565b80156102995780601f1061026e57610100808354040283529160200191610299565b820191906000526020600020905b81548152906001019060200180831161027c57829003601f168201915b5050505050905090565b6000336102b181858561036b565b60019150505b92915050565b6000336102cb85828561037d565b6102d68585856103fb565b506001949350505050565b6102e961045a565b6102f38282610487565b5050565b6102ff61045a565b61030960006104bd565b565b60606004805461022090610834565b6000336102b18185856103fb565b61033061045a565b6001600160a01b03811661035f57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610368816104bd565b50565b610378838383600161050f565b505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146103f557818110156103e657604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610356565b6103f58484848403600061050f565b50505050565b6001600160a01b03831661042557604051634b637e8f60e11b815260006004820152602401610356565b6001600160a01b03821661044f5760405163ec442f0560e01b815260006004820152602401610356565b6103788383836105e4565b6005546001600160a01b031633146103095760405163118cdaa760e01b8152336004820152602401610356565b6001600160a01b0382166104b15760405163ec442f0560e01b815260006004820152602401610356565b6102f3600083836105e4565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0384166105395760405163e602df0560e01b815260006004820152602401610356565b6001600160a01b03831661056357604051634a1406b160e11b815260006004820152602401610356565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156103f557826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105d691815260200190565b60405180910390a350505050565b6001600160a01b03831661060f578060026000828254610604919061086e565b909155506106819050565b6001600160a01b038316600090815260208190526040902054818110156106625760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610356565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661069d576002805482900390556106bc565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161070191815260200190565b60405180910390a3505050565b602081526000825180602084015260005b8181101561073c576020818601810151604086840101520161071f565b506000604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461077357600080fd5b919050565b6000806040838503121561078b57600080fd5b6107948361075c565b946020939093013593505050565b6000806000606084860312156107b757600080fd5b6107c08461075c565b92506107ce6020850161075c565b929592945050506040919091013590565b6000602082840312156107f157600080fd5b6107fa8261075c565b9392505050565b6000806040838503121561081457600080fd5b61081d8361075c565b915061082b6020840161075c565b90509250929050565b600181811c9082168061084857607f821691505b60208210810361086857634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102b757634e487b7160e01b600052601160045260246000fdfea2646970667358221220eb714b401b41167a1733d37b7f7fb4919cb7fe6a8595671ffd03839b0aae18de64736f6c634300081c003360c060405234801561001057600080fd5b5060405161121738038061121783398101604081905261002f91610221565b81516001600160a01b03811661005f57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b610068816101a5565b506001805560608201516001600160a01b03166100985760405163e6c4247b60e01b815260040160405180910390fd5b60208201516001600160a01b03166100c35760405163e6c4247b60e01b815260040160405180910390fd5b816040015180156100df575060808201516001600160a01b0316155b156100fd5760405163e6c4247b60e01b815260040160405180910390fd5b60608201516001600160a01b0390811660a0526020830151600380546001600160a01b0319169183169190911790556040830151600580546080808701516001600160a81b0319909216931515610100600160a81b03191693909317610100918516919091021790819055918316905260ff161561019e57600554600280546101009092046001600160a01b03166001600160a01b03199092169190911790555b50506102dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b038116811461020c57600080fd5b919050565b8051801515811461020c57600080fd5b60008082840360c081121561023557600080fd5b60a081121561024357600080fd5b5060405160a081016001600160401b038111828210171561027457634e487b7160e01b600052604160045260246000fd5b604052610280846101f5565b815261028e602085016101f5565b602082015261029f60408501610211565b60408201526102b0606085016101f5565b60608201526102c1608085016101f5565b608082015291506102d460a084016101f5565b90509250929050565b60805160a051610f07610310600039600081816101ba01526107b20152600081816102da015261056e0152610f076000f3fe6080604052600436106100ec5760003560e01c8063715018a61161008a578063c1cbbca711610059578063c1cbbca714610295578063c2e5ec04146102a8578063c45a0155146102c8578063f2fde38b146102fc57600080fd5b8063715018a61461021f5780638da5cb5b14610234578063947fe8121461025257806397871fa21461027257600080fd5b80634ada218b116100c65780634ada218b14610187578063564bc3be146101a857806356e1b2cf146101dc57806357fbcda5146101f157600080fd5b806327c5425c1461010c5780632e1a7d4d146101355780632fb2c4af1461015557600080fd5b366101075760055460ff1661010557610105600061031c565b005b600080fd5b34801561011857600080fd5b5060055460ff165b60405190151581526020015b60405180910390f35b34801561014157600080fd5b50610105610150366004610c8c565b610416565b34801561016157600080fd5b506003546001600160a01b03165b6040516001600160a01b03909116815260200161012c565b34801561019357600080fd5b5060055461012090600160a81b900460ff1681565b3480156101b457600080fd5b5061016f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156101e857600080fd5b5061010561056c565b3480156101fd57600080fd5b5061021161020c366004610cba565b610758565b60405190815260200161012c565b34801561022b57600080fd5b5061010561077f565b34801561024057600080fd5b506000546001600160a01b031661016f565b34801561025e57600080fd5b5061010561026d366004610d2a565b610791565b34801561027e57600080fd5b5060055461010090046001600160a01b031661016f565b6101056102a3366004610c8c565b61031c565b3480156102b457600080fd5b506101056102c3366004610dd0565b610998565b3480156102d457600080fd5b5061016f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561030857600080fd5b50610105610317366004610cba565b6109f8565b610324610a33565b61032c610a5d565b60055460009060ff1615610399573415610358576040516248c6b960e61b815260040160405180910390fd5b816000036103795760405163244d19c360e21b815260040160405180910390fd5b506002548190610394906001600160a01b0316333084610a8a565b6103bd565b346000036103ba5760405163652122d960e01b815260040160405180910390fd5b50345b80600460008282546103cf9190610e08565b909155505060405181815233907f4d154d4aae216bed6d0926db77c00df2b57c6b5ba4eee05775de20facede3a7b9060200160405180910390a25061041360018055565b50565b61041e610a5d565b8060000361043f5760405163c945242d60e01b815260040160405180910390fd5b60055460ff16156104f2576002546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610492573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b69190610e1b565b8111156104d657604051631e9acf1760e31b815260040160405180910390fd5b6002546104ed906001600160a01b03163383610af7565b61051d565b4781111561051357604051631e9acf1760e31b815260040160405180910390fd5b61051d3382610b2d565b806004600082825461052f9190610e34565b909155505060405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a250565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ee9190610e47565b6001600160a01b0316336001600160a01b03161461061f5760405163ea8e4eb560e01b815260040160405180910390fd5b60055460ff16156106bc576002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610673573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106979190610e1b565b9050801561041357600354600254610413916001600160a01b03918216911683610af7565b6003546040516000916001600160a01b03169047908381818185875af1925050503d8060008114610709576040519150601f19603f3d011682016040523d82523d6000602084013e61070e565b606091505b50509050806104135760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064015b60405180910390fd5b565b600080546001600160a01b03838116911614610775576000610779565b6004545b92915050565b610787610a5d565b6107566000610bcb565b6000546001600160a01b031633148015906107d55750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b156107f35760405163ea8e4eb560e01b815260040160405180910390fd5b600554600160a81b900460ff1661081d5760405163bcb8b8fb60e01b815260040160405180910390fd5b848314158061082c5750828114155b1561084a57604051636ed7379360e11b815260040160405180910390fd5b60005b8581101561098f57600087878381811061086957610869610e64565b905060200201602081019061087e9190610cba565b6001600160a01b0316036108a55760405163e6c4247b60e01b815260040160405180910390fd5b60008787838181106108b9576108b9610e64565b90506020020160208101906108ce9190610cba565b6001600160a01b03168484848181106108e9576108e9610e64565b9050602002013587878581811061090257610902610e64565b90506020028101906109149190610e7a565b604051610922929190610ec1565b60006040518083038185875af1925050503d806000811461095f576040519150601f19603f3d011682016040523d82523d6000602084013e610964565b606091505b505090508061098657604051632b3f6d1160e21b815260040160405180910390fd5b5060010161084d565b50505050505050565b6109a0610a5d565b60058054821515600160a81b0260ff60a81b199091161790556040517f63e9bb35ae90a43113bc6f999f1c6395e88ee5f59560b46bd45815fe8560efae906109ed90831515815260200190565b60405180910390a150565b610a00610a5d565b6001600160a01b038116610a2a57604051631e4fbdf760e01b81526000600482015260240161074d565b61041381610bcb565b600260015403610a5657604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b6000546001600160a01b031633146107565760405163118cdaa760e01b815233600482015260240161074d565b6040516001600160a01b038481166024830152838116604483015260648201839052610af19186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050610c1b565b50505050565b6040516001600160a01b03838116602483015260448201839052610b2891859182169063a9059cbb90606401610abf565b505050565b80471015610b575760405163cf47918160e01b81524760048201526024810182905260440161074d565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610ba4576040519150601f19603f3d011682016040523d82523d6000602084013e610ba9565b606091505b5050905080610b285760405163d6bda27560e01b815260040160405180910390fd5b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080602060008451602086016000885af180610c3e576040513d6000823e3d81fd5b50506000513d91508115610c56578060011415610c63565b6001600160a01b0384163b155b15610af157604051635274afe760e01b81526001600160a01b038516600482015260240161074d565b600060208284031215610c9e57600080fd5b5035919050565b6001600160a01b038116811461041357600080fd5b600060208284031215610ccc57600080fd5b8135610cd781610ca5565b9392505050565b60008083601f840112610cf057600080fd5b50813567ffffffffffffffff811115610d0857600080fd5b6020830191508360208260051b8501011115610d2357600080fd5b9250929050565b60008060008060008060608789031215610d4357600080fd5b863567ffffffffffffffff811115610d5a57600080fd5b610d6689828a01610cde565b909750955050602087013567ffffffffffffffff811115610d8657600080fd5b610d9289828a01610cde565b909550935050604087013567ffffffffffffffff811115610db257600080fd5b610dbe89828a01610cde565b979a9699509497509295939492505050565b600060208284031215610de257600080fd5b81358015158114610cd757600080fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561077957610779610df2565b600060208284031215610e2d57600080fd5b5051919050565b8181038181111561077957610779610df2565b600060208284031215610e5957600080fd5b8151610cd781610ca5565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610e9157600080fd5b83018035915067ffffffffffffffff821115610eac57600080fd5b602001915036819003821315610d2357600080fd5b818382376000910190815291905056fea26469706673582212208cdadc6cbdbb58cd0aedc5a31293996c6b2626af4f6e6ea67263e183f4c3523364736f6c634300081c0033608060405234801561001057600080fd5b50604051610a6d380380610a6d83398101604081905261002f916100fe565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61006781610092565b5050600280546001600160a01b0319166001600160a01b03939093169290921790915560015561013a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146100f957600080fd5b919050565b60008060006060848603121561011357600080fd5b61011c846100e2565b925060208401519150610131604085016100e2565b90509250925092565b610924806101496000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063715018a611610071578063715018a61461014e5780637f649783146101565780638ab1d681146101695780638da5cb5b1461017c578063ec10172d1461018d578063f2fde38b146101a257600080fd5b806329d645d6146100ae578063343365f6146100c35780633af32abf146100df578063420f68611461011b5780634f2582ed14610146575b600080fd5b6100c16100bc36600461078f565b6101b5565b005b6100cc60015481565b6040519081526020015b60405180910390f35b61010b6100ed3660046107a8565b6001600160a01b031660009081526004602052604090205460ff1690565b60405190151581526020016100d6565b60025461012e906001600160a01b031681565b6040516001600160a01b0390911681526020016100d6565b6100cc60c881565b6100c161023e565b6100c16101643660046107d8565b610252565b6100c16101773660046107a8565b6104a1565b6000546001600160a01b031661012e565b610195610672565b6040516100d6919061084f565b6100c16101b03660046107a8565b6106d4565b6000546001600160a01b031633148015906101db57506002546001600160a01b03163314155b156101f95760405163ea8e4eb560e01b815260040160405180910390fd5b600180549082905560408051828152602081018490527fae4200b26276622797f1ebfb6806e3cbd1911c353e24ec22225126d015db9b92910160405180910390a15050565b610246610712565b610250600061073f565b565b6000546001600160a01b0316331480159061027857506002546001600160a01b03163314155b156102965760405163ea8e4eb560e01b815260040160405180910390fd5b60c88111156102c757604051632948bf5b60e21b81526004810182905260c860248201526044015b60405180910390fd5b60005b8181101561049c5760008383838181106102e6576102e661089b565b90506020020160208101906102fb91906107a8565b6001600160a01b0316036103225760405163e6c4247b60e01b815260040160405180910390fd5b600460008484848181106103385761033861089b565b905060200201602081019061034d91906107a8565b6001600160a01b0316815260208101919091526040016000205460ff161561038857604051630f084ddf60e31b815260040160405180910390fd5b6001600460008585858181106103a0576103a061089b565b90506020020160208101906103b591906107a8565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905560038383838181106103f1576103f161089b565b905060200201602081019061040691906107a8565b81546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b0390921691909117905582828281811061044a5761044a61089b565b905060200201602081019061045f91906107a8565b6001600160a01b03167fe463fa6bdecb16f96f58191d902152633214e760ea443684105a7eef1ad16b9d60405160405180910390a26001016102ca565b505050565b6000546001600160a01b031633148015906104c757506002546001600160a01b03163314155b156104e55760405163ea8e4eb560e01b815260040160405180910390fd5b6001600160a01b03811660009081526004602052604090205460ff1661051e5760405163ad7acb4760e01b815260040160405180910390fd5b6001600160a01b0381166000908152600460205260408120805460ff191690555b60035481101561063a57816001600160a01b0316600382815481106105665761056661089b565b6000918252602090912001546001600160a01b0316036106325760038054610590906001906108b1565b815481106105a0576105a061089b565b600091825260209091200154600380546001600160a01b0390921691839081106105cc576105cc61089b565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600380548061060b5761060b6108d8565b600082815260209020810160001990810180546001600160a01b031916905501905561063a565b60010161053f565b506040516001600160a01b038216907fa6667e187c57c5b0fa4e1122a695ed0754287513bcb4901fa6c1f44ba22c018790600090a250565b606060038054806020026020016040519081016040528092919081815260200182805480156106ca57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106ac575b5050505050905090565b6106dc610712565b6001600160a01b03811661070657604051631e4fbdf760e01b8152600060048201526024016102be565b61070f8161073f565b50565b6000546001600160a01b031633146102505760405163118cdaa760e01b81523360048201526024016102be565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156107a157600080fd5b5035919050565b6000602082840312156107ba57600080fd5b81356001600160a01b03811681146107d157600080fd5b9392505050565b600080602083850312156107eb57600080fd5b823567ffffffffffffffff81111561080257600080fd5b8301601f8101851361081357600080fd5b803567ffffffffffffffff81111561082a57600080fd5b8560208260051b840101111561083f57600080fd5b6020919091019590945092505050565b602080825282518282018190526000918401906040840190835b818110156108905783516001600160a01b0316835260209384019390920191600101610869565b509095945050505050565b634e487b7160e01b600052603260045260246000fd5b818103818111156108d257634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603160045260246000fdfea26469706673582212206c0730d269ae14dd2d8cb147f0b6b968272ceee25090c072fb954d850e5d19bf64736f6c634300081c003360c060405234801561001057600080fd5b50604051610a14380380610a1483398101604081905261002f916100ea565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e8161007e565b50600180556001600160a01b03928316608052911660a052600255610126565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146100e557600080fd5b919050565b6000806000606084860312156100ff57600080fd5b610108846100ce565b9250610116602085016100ce565b9150604084015190509250925092565b60805160a05161089f6101756000396000818161012301528181610216015281816102af01526102d60152600081816101c60152818161028d015281816103ab01526104b5015261089f6000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80637fabb2b21161008c578063a69df4b511610066578063a69df4b5146101b9578063b39c0bd6146101c1578063c4c77bda146101e8578063f2fde38b146101f057600080fd5b80637fabb2b21461017857806383694cf0146101955780638da5cb5b146101a857600080fd5b806359927044116100c8578063599270441461011e5780636ab28bc81461015d5780636e99d52f14610166578063715018a61461017057600080fd5b80631a8d949a146100ef578063251c1aa31461010b5780632526d96014610114575b600080fd5b6100f860025481565b6040519081526020015b60405180910390f35b6100f860045481565b61011c610203565b005b6101457f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610102565b6100f860035481565b6100f86212750081565b61011c610343565b6005546101859060ff1681565b6040519015158152602001610102565b61011c6101a33660046107f9565b610355565b6000546001600160a01b0316610145565b61011c610414565b6101457f000000000000000000000000000000000000000000000000000000000000000081565b61011c610522565b61011c6101fe366004610812565b6105fe565b61020b61063e565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461025457604051633146541560e01b815260040160405180910390fd5b60035460000361027757604051637821eecf60e11b815260040160405180910390fd5b6003805460009091556102d46001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083610668565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f7cc5928587a77e63d1ebaaf1787d7d3be3e99247fe1911f114df22196ec29af58260405161032f91815260200190565b60405180910390a25061034160018055565b565b61034b6106cc565b61034160006106f9565b61035d61063e565b6103656106cc565b8060000361038657604051637821eecf60e11b815260040160405180910390fd5b80600360008282546103989190610842565b909155506103d390506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084610749565b60405181815233907fbe5f14e7b1eb6f30fa11359637689973066e7022a639ac8da9d08a4ca76b4d8b9060200160405180910390a261041160018055565b50565b61041c61063e565b6104246106cc565b60055460ff1661044757604051635b89f32f60e11b815260040160405180910390fd5b60045442101561046a5760405163111bb2f160e31b815260040160405180910390fd5b60035460000361048d57604051637821eecf60e11b815260040160405180910390fd5b6003805460009091556104dc6104ab6000546001600160a01b031690565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169083610668565b6000546001600160a01b03166001600160a01b03167f526feae8b9544a85d85696362d5f52bef82535afe21eb9782f5a4c393cb789048260405161032f91815260200190565b61052a61063e565b6105326106cc565b6002544210156105555760405163f6bc0a2960e01b815260040160405180910390fd5b60055460ff1615610579576040516305d89a4360e11b815260040160405180910390fd5b60035460000361059c57604051637821eecf60e11b815260040160405180910390fd5b6105a96212750042610842565b60048190556005805460ff191660011790556040517f02901e853899654221af46795765afdc65d7990718f4d2cf344120c336d83bbb916105ed9190815260200190565b60405180910390a161034160018055565b6106066106cc565b6001600160a01b03811661063557604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610411816106f9565b60026001540361066157604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b6040516001600160a01b038381166024830152604482018390526106c791859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050610788565b505050565b6000546001600160a01b031633146103415760405163118cdaa760e01b815233600482015260240161062c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040516001600160a01b0384811660248301528381166044830152606482018390526107829186918216906323b872dd90608401610695565b50505050565b600080602060008451602086016000885af1806107ab576040513d6000823e3d81fd5b50506000513d915081156107c35780600114156107d0565b6001600160a01b0384163b155b1561078257604051635274afe760e01b81526001600160a01b038516600482015260240161062c565b60006020828403121561080b57600080fd5b5035919050565b60006020828403121561082457600080fd5b81356001600160a01b038116811461083b57600080fd5b9392505050565b8082018082111561086357634e487b7160e01b600052601160045260246000fd5b9291505056fea26469706673582212207e549f005df73b3cd1950c25a7281c9afb3a01eefc4179bc81547192ae6d4dfc64736f6c634300081c0033a2646970667358221220bd97aae9083506952914a60538728c92925667fb7bac6027281e4d6abb35f28364736f6c634300081c0033