0 txs
1 call
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)
deployPersonalFundV2
nonpayablefunction deployPersonalFundV2(address kosherManager, address protocolAdmin, bool isTokenFund, address aiWallet, address frTokenAddress) 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
0x6080604052348015600f57600080fd5b503380603557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b603c816041565b506091565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b615076806100a06000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063d9b3cbe81161005b578063d9b3cbe8146100db578063f2fde38b146100ee578063fddaec4914610101578063ff38569e1461011457600080fd5b8063715018a61461008d5780638da5cb5b14610097578063aded63bb146100c0578063bef8de1f146100c8575b600080fd5b610095610127565b005b6000546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b6100a461013b565b6100a46100d6366004610531565b61016d565b6100a46100e93660046105bf565b610210565b6100956100fc3660046105fb565b610268565b6100a461010f36600461061d565b6102ab565b6100a461012236600461065a565b6102f7565b61012f6103ce565b61013960006103fb565b565b60008060405161014a9061044b565b604051809103906000f080158015610166573d6000803e3d6000fd5b5092915050565b60008082858560405161017f90610458565b61018a92919061070c565b8190604051809103906000f59050801580156101aa573d6000803e3d6000fd5b5060405163f2fde38b60e01b81523360048201529091506001600160a01b0382169063f2fde38b90602401600060405180830381600087803b1580156101ef57600080fd5b505af1158015610203573d6000803e3d6000fd5b5092979650505050505050565b60008084848460405161022290610465565b6001600160a01b03938416815260208101929092529091166040820152606001604051809103906000f08015801561025e573d6000803e3d6000fd5b5095945050505050565b6102706103ce565b6001600160a01b03811661029f57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6102a8816103fb565b50565b6000808484846040516102bd90610472565b6001600160a01b0393841681529290911660208301526040820152606001604051809103906000f0801580156101aa573d6000803e3d6000fd5b6000806040518060a00160405280886001600160a01b03168152602001876001600160a01b031681526020018615158152602001856001600160a01b03168152602001846001600160a01b03168152509050600081336040516103599061047f565b82516001600160a01b039081168252602080850151821690830152604080850151151590830152606080850151821690830152608093840151811693820193909352911660a082015260c001604051809103906000f0801580156103c1573d6000803e3d6000fd5b5098975050505050505050565b6000546001600160a01b031633146101395760405163118cdaa760e01b8152336004820152602401610296565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61164e8061073b83390190565b610c1c80611d8983390190565b610a6d806129a583390190565b610a148061341283390190565b61121b80613e2683390190565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126104b357600080fd5b813567ffffffffffffffff8111156104cd576104cd61048c565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156104fc576104fc61048c565b60405281815283820160200185101561051457600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561054657600080fd5b833567ffffffffffffffff81111561055d57600080fd5b610569868287016104a2565b935050602084013567ffffffffffffffff81111561058657600080fd5b610592868287016104a2565b925050604084013590509250925092565b80356001600160a01b03811681146105ba57600080fd5b919050565b6000806000606084860312156105d457600080fd5b6105dd846105a3565b9250602084013591506105f2604085016105a3565b90509250925092565b60006020828403121561060d57600080fd5b610616826105a3565b9392505050565b60008060006060848603121561063257600080fd5b61063b846105a3565b9250610649602085016105a3565b929592945050506040919091013590565b600080600080600060a0868803121561067257600080fd5b61067b866105a3565b9450610689602087016105a3565b93506040860135801515811461069e57600080fd5b92506106ac606087016105a3565b91506106ba608087016105a3565b90509295509295909350565b6000815180845260005b818110156106ec576020818501810151868301820152016106d0565b506000602082860101526020601f19601f83011685010191505092915050565b60408152600061071f60408301856106c6565b828103602084015261073181856106c6565b9594505050505056fe6080604052348015600f57600080fd5b506016601a565b60d7565b600054610100900460ff161560855760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161460d5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611568806100e66000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c8063715018a6116100de5780638f2203f611610097578063eb990c5911610071578063eb990c591461039e578063ed4906c0146103b1578063f2fde38b146103dd578063f7c618c1146103f057600080fd5b80638f2203f614610374578063a694fc3a14610383578063db2e21bc1461039657600080fd5b8063715018a6146102c957806372f702f3146102d1578063817b1cd2146102fc5780638b0b30ce146103055780638d23fc611461030e5780638da5cb5b1461036357600080fd5b80634da6a556116101305780634da6a556146101e157806356311bda1461020a5780635c2235861461021d57806365edf56a14610277578063668038e0146102ae5780636a3d9251146102b657600080fd5b80630f91922b146101785780632113342d1461019e5780633243c791146101a7578063375b3c0a146101bc5780633cb802b9146101c55780633d28ab8e146101ce575b600080fd5b61018b61018636600461130c565b610403565b6040519081526020015b60405180910390f35b61018b609c5481565b6101ba6101b536600461132e565b610486565b005b61018b609a5481565b61018b609d5481565b6101ba6101dc366004611347565b6105e3565b61018b6101ef36600461130c565b6001600160a01b03166000908152609e602052604090205490565b6101ba61021836600461132e565b610726565b61025a61022b3660046113be565b609f60209081526000928352604080842090915290825290208054600182015460029092015490919060ff1683565b604080519384526020840192909252151590820152606001610195565b61028a6102853660046113be565b61089b565b60408051825181526020808401519082015291810151151590820152606001610195565b6101ba610915565b6101ba6102c436600461132e565b6109d7565b6101ba610a6a565b6097546102e4906001600160a01b031681565b6040516001600160a01b039091168152602001610195565b61018b609b5481565b61018b60995481565b61034361031c36600461130c565b609e6020526000908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610195565b6033546001600160a01b03166102e4565b61018b670de0b6b3a764000081565b6101ba61039136600461132e565b610a7c565b6101ba610b76565b6101ba6103ac3660046113e8565b610c5d565b61018b6103bf36600461130c565b6001600160a01b03166000908152609e602052604090206001015490565b6101ba6103eb36600461130c565b610edc565b6098546102e4906001600160a01b031681565b6001600160a01b0381166000908152609e60205260408120609c546002820154839061042f9083611440565b90506000670de0b6b3a764000082856000015461044c9190611453565b610456919061146a565b905060006104696402540be4008361146a565b905080856003015461047b919061148c565b979650505050505050565b61048e610f52565b610496610fac565b6000609b54116104e05760405162461bcd60e51b815260206004820152601060248201526f4e6f207374616b656420746f6b656e7360801b60448201526064015b60405180910390fd5b600081116105215760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b60448201526064016104d7565b60006105326402540be40083611453565b90506000609b54670de0b6b3a76400008361054d9190611453565b610557919061146a565b905080609c600082825461056b919061148c565b9250508190555082609d6000828254610584919061148c565b90915550506098546105a1906001600160a01b0316333086611005565b6040518381527f051019b59d3b24249903e46fd05b6def7f293fc3de54eca64b3d32743f27fc8e9060200160405180910390a150506105e06001606555565b50565b6105eb610fac565b6000805b8281101561067a57336000908152609f60205260408120818686858181106106195761061961149f565b60209081029290920135835250810191909152604001600020600281015490915060ff1615801561064e575080600101544210155b1561067157805461065f908461148c565b60028201805460ff1916600117905592505b506001016105ef565b50600081116106cb5760405162461bcd60e51b815260206004820152601e60248201527f4e6f20746f6b656e7320726561647920666f72207769746864726177616c000060448201526064016104d7565b6097546106e2906001600160a01b03163383611079565b60405181815233907f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d59060200160405180910390a2506107226001606555565b5050565b61072e610fac565b336000908152609e60205260409020805482111561078e5760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e74207374616b656420616d6f756e7400000000000060448201526064016104d7565b610797336110af565b818160000160008282546107ab9190611440565b9250508190555081609b60008282546107c49190611440565b9091555050609c546002820155600181018054600091826107e4836114b5565b9190505590506000609954426107fa919061148c565b60408051606080820183528782526020808301858152600084860181815233808352609f85528783208b8452855291879020955186559151600186015590516002909401805460ff1916941515949094179093558351898152908101859052928301869052929350917ff265d6065ef1332d7a6da1a66115a5f51a6ffd1b5da52bcfff6510598b94ffb8910160405180910390a25050506105e06001606555565b6108c1604051806060016040528060008152602001600081526020016000151581525090565b506001600160a01b0382166000908152609f602090815260408083208484528252918290208251606081018452815481526001820154928101929092526002015460ff161515918101919091525b92915050565b61091d610fac565b610926336110af565b336000908152609e602052604090206003810154806109765760405162461bcd60e51b815260206004820152600c60248201526b4e6f206469766964656e647360a01b60448201526064016104d7565b60006003830155609854610994906001600160a01b03163383611079565b60405181815233907f16b8533c95f66ab8c192c98ddcf5031bcb3ee6f4022988bdadd57d3422da30739060200160405180910390a250506109d56001606555565b565b6109df610f52565b60008111610a2f5760405162461bcd60e51b815260206004820152601a60248201527f556e626f6e64696e672074696d65206d757374206265203e203000000000000060448201526064016104d7565b60998190556040518181527fd8a43159bd7089803e737cde3c04fc38091766e96f67fb8f43df39416fde14fb9060200160405180910390a150565b610a72610f52565b6109d56000611178565b610a84610fac565b609a54811015610acb5760405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e74207374616b6560701b60448201526064016104d7565b336000818152609e6020526040902090610ae4906110af565b81816000016000828254610af8919061148c565b9250508190555081609b6000828254610b11919061148c565b9091555050609c546002820155609754610b36906001600160a01b0316333085611005565b60405182815233907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d9060200160405180910390a2506105e06001606555565b610b7e610f52565b6097546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610bc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610beb91906114ce565b905060008111610c355760405162461bcd60e51b81526020600482015260156024820152744e6f20746f6b656e7320746f20776974686472617760581b60448201526064016104d7565b6105e0610c4a6033546001600160a01b031690565b6097546001600160a01b03169083611079565b600054610100900460ff1615808015610c7d5750600054600160ff909116105b80610c975750303b158015610c97575060005460ff166001145b610cfa5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104d7565b6000805460ff191660011790558015610d1d576000805461ff0019166101001790555b6001600160a01b038516610d6b5760405162461bcd60e51b815260206004820152601560248201527424b73b30b634b21039ba30b5b4b733903a37b5b2b760591b60448201526064016104d7565b6001600160a01b038416610db85760405162461bcd60e51b815260206004820152601460248201527324b73b30b634b2103932bbb0b932103a37b5b2b760611b60448201526064016104d7565b60008311610e015760405162461bcd60e51b8152602060048201526016602482015275496e76616c696420756e626f6e64696e672074696d6560501b60448201526064016104d7565b60008211610e455760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964206d696e207374616b6560781b60448201526064016104d7565b610e4d6111ca565b610e556111f9565b609780546001600160a01b038088166001600160a01b03199283161790925560988054928716929091169190911790556099839055609a8290558015610ed5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b610ee4610f52565b6001600160a01b038116610f495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104d7565b6105e081611178565b6033546001600160a01b031633146109d55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104d7565b600260655403610ffe5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016104d7565b6002606555565b6040516001600160a01b03848116602483015283811660448301526064820183905261106c9186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611228565b50505050565b6001606555565b6040516001600160a01b038381166024830152604482018390526110aa91859182169063a9059cbb9060640161103a565b505050565b6001600160a01b0381166000908152609e6020526040812080549091036110d4575050565b609c5460028201546000906110e99083611440565b9050806000036110f95750505050565b6000670de0b6b3a76400008285600001546111149190611453565b61111e919061146a565b905060006111316402540be4008361146a565b9050801561116c578085600301600082825461114d919061148c565b9250508190555080609d60008282546111669190611440565b90915550505b50505060029091015550565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166111f15760405162461bcd60e51b81526004016104d7906114e7565b6109d5611299565b600054610100900460ff166112205760405162461bcd60e51b81526004016104d7906114e7565b6109d56112c9565b600080602060008451602086016000885af18061124b576040513d6000823e3d81fd5b50506000513d91508115611263578060011415611270565b6001600160a01b0384163b155b1561106c57604051635274afe760e01b81526001600160a01b03851660048201526024016104d7565b600054610100900460ff166112c05760405162461bcd60e51b81526004016104d7906114e7565b6109d533611178565b600054610100900460ff166110725760405162461bcd60e51b81526004016104d7906114e7565b80356001600160a01b038116811461130757600080fd5b919050565b60006020828403121561131e57600080fd5b611327826112f0565b9392505050565b60006020828403121561134057600080fd5b5035919050565b6000806020838503121561135a57600080fd5b823567ffffffffffffffff81111561137157600080fd5b8301601f8101851361138257600080fd5b803567ffffffffffffffff81111561139957600080fd5b8560208260051b84010111156113ae57600080fd5b6020919091019590945092505050565b600080604083850312156113d157600080fd5b6113da836112f0565b946020939093013593505050565b600080600080608085870312156113fe57600080fd5b611407856112f0565b9350611415602086016112f0565b93969395505050506040820135916060013590565b634e487b7160e01b600052601160045260246000fd5b8181038181111561090f5761090f61142a565b808202811582820484141761090f5761090f61142a565b60008261148757634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090f5761090f61142a565b634e487b7160e01b600052603260045260246000fd5b6000600182016114c7576114c761142a565b5060010190565b6000602082840312156114e057600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea2646970667358221220121482d21b99de96ad9015c36cda210370c877f86b449a2073c6c93b1accd83864736f6c634300081c0033608060405234801561001057600080fd5b50604051610c1c380380610c1c83398101604081905261002f91610198565b338282600361003e838261028a565b50600461004b828261028a565b5050506001600160a01b03811661007c57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100858161008d565b505050610348565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261010657600080fd5b81516001600160401b0381111561011f5761011f6100df565b604051601f8201601f19908116603f011681016001600160401b038111828210171561014d5761014d6100df565b60405281815283820160200185101561016557600080fd5b60005b8281101561018457602081860181015183830182015201610168565b506000918101602001919091529392505050565b600080604083850312156101ab57600080fd5b82516001600160401b038111156101c157600080fd5b6101cd858286016100f5565b602085015190935090506001600160401b038111156101eb57600080fd5b6101f7858286016100f5565b9150509250929050565b600181811c9082168061021557607f821691505b60208210810361023557634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561028557806000526020600020601f840160051c810160208510156102625750805b601f840160051c820191505b81811015610282576000815560010161026e565b50505b505050565b81516001600160401b038111156102a3576102a36100df565b6102b7816102b18454610201565b8461023b565b6020601f8211600181146102eb57600083156102d35750848201515b600019600385901b1c1916600184901b178455610282565b600084815260208120601f198516915b8281101561031b57878501518255602094850194600190920191016102fb565b50848210156103395786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6108c5806103576000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b41146101aa578063a9059cbb146101b2578063dd62ed3e146101c5578063f2fde38b146101fe57600080fd5b806370a082311461015e578063715018a6146101875780638da5cb5b1461018f57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806340c10f1914610149575b600080fd5b6100dc610211565b6040516100e9919061070e565b60405180910390f35b610105610100366004610778565b6102a3565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107a2565b6102bd565b604051601281526020016100e9565b61015c610157366004610778565b6102e1565b005b61011961016c3660046107df565b6001600160a01b031660009081526020819052604090205490565b61015c6102f7565b6005546040516001600160a01b0390911681526020016100e9565b6100dc61030b565b6101056101c0366004610778565b61031a565b6101196101d3366004610801565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61015c61020c3660046107df565b610328565b60606003805461022090610834565b80601f016020809104026020016040519081016040528092919081815260200182805461024c90610834565b80156102995780601f1061026e57610100808354040283529160200191610299565b820191906000526020600020905b81548152906001019060200180831161027c57829003601f168201915b5050505050905090565b6000336102b181858561036b565b60019150505b92915050565b6000336102cb85828561037d565b6102d68585856103fb565b506001949350505050565b6102e961045a565b6102f38282610487565b5050565b6102ff61045a565b61030960006104bd565b565b60606004805461022090610834565b6000336102b18185856103fb565b61033061045a565b6001600160a01b03811661035f57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610368816104bd565b50565b610378838383600161050f565b505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146103f557818110156103e657604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610356565b6103f58484848403600061050f565b50505050565b6001600160a01b03831661042557604051634b637e8f60e11b815260006004820152602401610356565b6001600160a01b03821661044f5760405163ec442f0560e01b815260006004820152602401610356565b6103788383836105e4565b6005546001600160a01b031633146103095760405163118cdaa760e01b8152336004820152602401610356565b6001600160a01b0382166104b15760405163ec442f0560e01b815260006004820152602401610356565b6102f3600083836105e4565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0384166105395760405163e602df0560e01b815260006004820152602401610356565b6001600160a01b03831661056357604051634a1406b160e11b815260006004820152602401610356565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156103f557826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105d691815260200190565b60405180910390a350505050565b6001600160a01b03831661060f578060026000828254610604919061086e565b909155506106819050565b6001600160a01b038316600090815260208190526040902054818110156106625760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610356565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661069d576002805482900390556106bc565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161070191815260200190565b60405180910390a3505050565b602081526000825180602084015260005b8181101561073c576020818601810151604086840101520161071f565b506000604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461077357600080fd5b919050565b6000806040838503121561078b57600080fd5b6107948361075c565b946020939093013593505050565b6000806000606084860312156107b757600080fd5b6107c08461075c565b92506107ce6020850161075c565b929592945050506040919091013590565b6000602082840312156107f157600080fd5b6107fa8261075c565b9392505050565b6000806040838503121561081457600080fd5b61081d8361075c565b915061082b6020840161075c565b90509250929050565b600181811c9082168061084857607f821691505b60208210810361086857634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102b757634e487b7160e01b600052601160045260246000fdfea26469706673582212203bc1892684ec73618fb2d788cf87e3d4fa330851f12204fd757a6728f669d54164736f6c634300081c0033608060405234801561001057600080fd5b50604051610a6d380380610a6d83398101604081905261002f916100fe565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61006781610092565b5050600280546001600160a01b0319166001600160a01b03939093169290921790915560015561013a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146100f957600080fd5b919050565b60008060006060848603121561011357600080fd5b61011c846100e2565b925060208401519150610131604085016100e2565b90509250925092565b610924806101496000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063715018a611610071578063715018a61461014e5780637f649783146101565780638ab1d681146101695780638da5cb5b1461017c578063ec10172d1461018d578063f2fde38b146101a257600080fd5b806329d645d6146100ae578063343365f6146100c35780633af32abf146100df578063420f68611461011b5780634f2582ed14610146575b600080fd5b6100c16100bc36600461078f565b6101b5565b005b6100cc60015481565b6040519081526020015b60405180910390f35b61010b6100ed3660046107a8565b6001600160a01b031660009081526004602052604090205460ff1690565b60405190151581526020016100d6565b60025461012e906001600160a01b031681565b6040516001600160a01b0390911681526020016100d6565b6100cc60c881565b6100c161023e565b6100c16101643660046107d8565b610252565b6100c16101773660046107a8565b6104a1565b6000546001600160a01b031661012e565b610195610672565b6040516100d6919061084f565b6100c16101b03660046107a8565b6106d4565b6000546001600160a01b031633148015906101db57506002546001600160a01b03163314155b156101f95760405163ea8e4eb560e01b815260040160405180910390fd5b600180549082905560408051828152602081018490527fae4200b26276622797f1ebfb6806e3cbd1911c353e24ec22225126d015db9b92910160405180910390a15050565b610246610712565b610250600061073f565b565b6000546001600160a01b0316331480159061027857506002546001600160a01b03163314155b156102965760405163ea8e4eb560e01b815260040160405180910390fd5b60c88111156102c757604051632948bf5b60e21b81526004810182905260c860248201526044015b60405180910390fd5b60005b8181101561049c5760008383838181106102e6576102e661089b565b90506020020160208101906102fb91906107a8565b6001600160a01b0316036103225760405163e6c4247b60e01b815260040160405180910390fd5b600460008484848181106103385761033861089b565b905060200201602081019061034d91906107a8565b6001600160a01b0316815260208101919091526040016000205460ff161561038857604051630f084ddf60e31b815260040160405180910390fd5b6001600460008585858181106103a0576103a061089b565b90506020020160208101906103b591906107a8565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905560038383838181106103f1576103f161089b565b905060200201602081019061040691906107a8565b81546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b0390921691909117905582828281811061044a5761044a61089b565b905060200201602081019061045f91906107a8565b6001600160a01b03167fe463fa6bdecb16f96f58191d902152633214e760ea443684105a7eef1ad16b9d60405160405180910390a26001016102ca565b505050565b6000546001600160a01b031633148015906104c757506002546001600160a01b03163314155b156104e55760405163ea8e4eb560e01b815260040160405180910390fd5b6001600160a01b03811660009081526004602052604090205460ff1661051e5760405163ad7acb4760e01b815260040160405180910390fd5b6001600160a01b0381166000908152600460205260408120805460ff191690555b60035481101561063a57816001600160a01b0316600382815481106105665761056661089b565b6000918252602090912001546001600160a01b0316036106325760038054610590906001906108b1565b815481106105a0576105a061089b565b600091825260209091200154600380546001600160a01b0390921691839081106105cc576105cc61089b565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600380548061060b5761060b6108d8565b600082815260209020810160001990810180546001600160a01b031916905501905561063a565b60010161053f565b506040516001600160a01b038216907fa6667e187c57c5b0fa4e1122a695ed0754287513bcb4901fa6c1f44ba22c018790600090a250565b606060038054806020026020016040519081016040528092919081815260200182805480156106ca57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106ac575b5050505050905090565b6106dc610712565b6001600160a01b03811661070657604051631e4fbdf760e01b8152600060048201526024016102be565b61070f8161073f565b50565b6000546001600160a01b031633146102505760405163118cdaa760e01b81523360048201526024016102be565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156107a157600080fd5b5035919050565b6000602082840312156107ba57600080fd5b81356001600160a01b03811681146107d157600080fd5b9392505050565b600080602083850312156107eb57600080fd5b823567ffffffffffffffff81111561080257600080fd5b8301601f8101851361081357600080fd5b803567ffffffffffffffff81111561082a57600080fd5b8560208260051b840101111561083f57600080fd5b6020919091019590945092505050565b602080825282518282018190526000918401906040840190835b818110156108905783516001600160a01b0316835260209384019390920191600101610869565b509095945050505050565b634e487b7160e01b600052603260045260246000fd5b818103818111156108d257634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220ba50c2e743c77cfc5ccb096f40b478309dd6ef15bbd20de9ec72c2873524d3b364736f6c634300081c003360c060405234801561001057600080fd5b50604051610a14380380610a1483398101604081905261002f916100ea565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e8161007e565b50600180556001600160a01b03928316608052911660a052600255610126565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146100e557600080fd5b919050565b6000806000606084860312156100ff57600080fd5b610108846100ce565b9250610116602085016100ce565b9150604084015190509250925092565b60805160a05161089f6101756000396000818161012301528181610216015281816102af01526102d60152600081816101c60152818161028d015281816103ab01526104b5015261089f6000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80637fabb2b21161008c578063a69df4b511610066578063a69df4b5146101b9578063b39c0bd6146101c1578063c4c77bda146101e8578063f2fde38b146101f057600080fd5b80637fabb2b21461017857806383694cf0146101955780638da5cb5b146101a857600080fd5b806359927044116100c8578063599270441461011e5780636ab28bc81461015d5780636e99d52f14610166578063715018a61461017057600080fd5b80631a8d949a146100ef578063251c1aa31461010b5780632526d96014610114575b600080fd5b6100f860025481565b6040519081526020015b60405180910390f35b6100f860045481565b61011c610203565b005b6101457f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610102565b6100f860035481565b6100f86212750081565b61011c610343565b6005546101859060ff1681565b6040519015158152602001610102565b61011c6101a33660046107f9565b610355565b6000546001600160a01b0316610145565b61011c610414565b6101457f000000000000000000000000000000000000000000000000000000000000000081565b61011c610522565b61011c6101fe366004610812565b6105fe565b61020b61063e565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461025457604051633146541560e01b815260040160405180910390fd5b60035460000361027757604051637821eecf60e11b815260040160405180910390fd5b6003805460009091556102d46001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083610668565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f7cc5928587a77e63d1ebaaf1787d7d3be3e99247fe1911f114df22196ec29af58260405161032f91815260200190565b60405180910390a25061034160018055565b565b61034b6106cc565b61034160006106f9565b61035d61063e565b6103656106cc565b8060000361038657604051637821eecf60e11b815260040160405180910390fd5b80600360008282546103989190610842565b909155506103d390506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084610749565b60405181815233907fbe5f14e7b1eb6f30fa11359637689973066e7022a639ac8da9d08a4ca76b4d8b9060200160405180910390a261041160018055565b50565b61041c61063e565b6104246106cc565b60055460ff1661044757604051635b89f32f60e11b815260040160405180910390fd5b60045442101561046a5760405163111bb2f160e31b815260040160405180910390fd5b60035460000361048d57604051637821eecf60e11b815260040160405180910390fd5b6003805460009091556104dc6104ab6000546001600160a01b031690565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169083610668565b6000546001600160a01b03166001600160a01b03167f526feae8b9544a85d85696362d5f52bef82535afe21eb9782f5a4c393cb789048260405161032f91815260200190565b61052a61063e565b6105326106cc565b6002544210156105555760405163f6bc0a2960e01b815260040160405180910390fd5b60055460ff1615610579576040516305d89a4360e11b815260040160405180910390fd5b60035460000361059c57604051637821eecf60e11b815260040160405180910390fd5b6105a96212750042610842565b60048190556005805460ff191660011790556040517f02901e853899654221af46795765afdc65d7990718f4d2cf344120c336d83bbb916105ed9190815260200190565b60405180910390a161034160018055565b6106066106cc565b6001600160a01b03811661063557604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610411816106f9565b60026001540361066157604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b6040516001600160a01b038381166024830152604482018390526106c791859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050610788565b505050565b6000546001600160a01b031633146103415760405163118cdaa760e01b815233600482015260240161062c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040516001600160a01b0384811660248301528381166044830152606482018390526107829186918216906323b872dd90608401610695565b50505050565b600080602060008451602086016000885af1806107ab576040513d6000823e3d81fd5b50506000513d915081156107c35780600114156107d0565b6001600160a01b0384163b155b1561078257604051635274afe760e01b81526001600160a01b038516600482015260240161062c565b60006020828403121561080b57600080fd5b5035919050565b60006020828403121561082457600080fd5b81356001600160a01b038116811461083b57600080fd5b9392505050565b8082018082111561086357634e487b7160e01b600052601160045260246000fd5b9291505056fea2646970667358221220f0322c6b511274640966b14bcd2dee01c49d78f51d56643782726fd7ed8ad0ea64736f6c634300081c003360c060405234801561001057600080fd5b5060405161121b38038061121b83398101604081905261002f91610221565b81516001600160a01b03811661005f57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b610068816101a5565b506001805560608201516001600160a01b03166100985760405163e6c4247b60e01b815260040160405180910390fd5b60208201516001600160a01b03166100c35760405163e6c4247b60e01b815260040160405180910390fd5b816040015180156100df575060808201516001600160a01b0316155b156100fd5760405163e6c4247b60e01b815260040160405180910390fd5b60608201516001600160a01b0390811660a0526020830151600380546001600160a01b0319169183169190911790556040830151600580546080808701516001600160a81b0319909216931515610100600160a81b03191693909317610100918516919091021790819055918316905260ff161561019e57600554600280546101009092046001600160a01b03166001600160a01b03199092169190911790555b50506102dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b038116811461020c57600080fd5b919050565b8051801515811461020c57600080fd5b60008082840360c081121561023557600080fd5b60a081121561024357600080fd5b5060405160a081016001600160401b038111828210171561027457634e487b7160e01b600052604160045260246000fd5b604052610280846101f5565b815261028e602085016101f5565b602082015261029f60408501610211565b60408201526102b0606085016101f5565b60608201526102c1608085016101f5565b608082015291506102d460a084016101f5565b90509250929050565b60805160a051610f0b610310600039600081816101a601526107b60152600081816102de01526105720152610f0b6000f3fe6080604052600436106100ec5760003560e01c8063715018a61161008a578063c1cbbca711610059578063c1cbbca714610299578063c2e5ec04146102ac578063c45a0155146102cc578063f2fde38b1461030057600080fd5b8063715018a61461022357806374967ff2146102385780638da5cb5b1461025b578063947fe8121461027957600080fd5b8063564bc3be116100c6578063564bc3be1461019457806356e1b2cf146101c857806357fbcda5146101dd5780636feae2b51461020b57600080fd5b80632e1a7d4d1461010c5780632fb2c4af1461012c5780634ada218b1461016357600080fd5b366101075760055460ff16610105576101056000610320565b005b600080fd5b34801561011857600080fd5b50610105610127366004610c90565b61041a565b34801561013857600080fd5b506003546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561016f57600080fd5b5060055461018490600160a81b900460ff1681565b604051901515815260200161015a565b3480156101a057600080fd5b506101467f000000000000000000000000000000000000000000000000000000000000000081565b3480156101d457600080fd5b50610105610570565b3480156101e957600080fd5b506101fd6101f8366004610cbe565b61075c565b60405190815260200161015a565b34801561021757600080fd5b5060055460ff16610184565b34801561022f57600080fd5b50610105610783565b34801561024457600080fd5b5060055461010090046001600160a01b0316610146565b34801561026757600080fd5b506000546001600160a01b0316610146565b34801561028557600080fd5b50610105610294366004610d2e565b610795565b6101056102a7366004610c90565b610320565b3480156102b857600080fd5b506101056102c7366004610dd4565b61099c565b3480156102d857600080fd5b506101467f000000000000000000000000000000000000000000000000000000000000000081565b34801561030c57600080fd5b5061010561031b366004610cbe565b6109fc565b610328610a37565b610330610a61565b60055460009060ff161561039d57341561035c576040516248c6b960e61b815260040160405180910390fd5b8160000361037d5760405163363f1b5160e11b815260040160405180910390fd5b506002548190610398906001600160a01b0316333084610a8e565b6103c1565b346000036103be5760405163652122d960e01b815260040160405180910390fd5b50345b80600460008282546103d39190610e0c565b909155505060405181815233907f4d154d4aae216bed6d0926db77c00df2b57c6b5ba4eee05775de20facede3a7b9060200160405180910390a25061041760018055565b50565b610422610a61565b806000036104435760405163c945242d60e01b815260040160405180910390fd5b60055460ff16156104f6576002546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ba9190610e1f565b8111156104da57604051631e9acf1760e31b815260040160405180910390fd5b6002546104f1906001600160a01b03163383610afb565b610521565b4781111561051757604051631e9acf1760e31b815260040160405180910390fd5b6105213382610b31565b80600460008282546105339190610e38565b909155505060405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a250565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f29190610e4b565b6001600160a01b0316336001600160a01b0316146106235760405163ea8e4eb560e01b815260040160405180910390fd5b60055460ff16156106c0576002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069b9190610e1f565b9050801561041757600354600254610417916001600160a01b03918216911683610afb565b6003546040516000916001600160a01b03169047908381818185875af1925050503d806000811461070d576040519150601f19603f3d011682016040523d82523d6000602084013e610712565b606091505b50509050806104175760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064015b60405180910390fd5b565b600080546001600160a01b0383811691161461077957600061077d565b6004545b92915050565b61078b610a61565b61075a6000610bcf565b6000546001600160a01b031633148015906107d95750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b156107f75760405163ea8e4eb560e01b815260040160405180910390fd5b600554600160a81b900460ff166108215760405163bcb8b8fb60e01b815260040160405180910390fd5b84831415806108305750828114155b1561084e57604051636ed7379360e11b815260040160405180910390fd5b60005b8581101561099357600087878381811061086d5761086d610e68565b90506020020160208101906108829190610cbe565b6001600160a01b0316036108a95760405163e6c4247b60e01b815260040160405180910390fd5b60008787838181106108bd576108bd610e68565b90506020020160208101906108d29190610cbe565b6001600160a01b03168484848181106108ed576108ed610e68565b9050602002013587878581811061090657610906610e68565b90506020028101906109189190610e7e565b604051610926929190610ec5565b60006040518083038185875af1925050503d8060008114610963576040519150601f19603f3d011682016040523d82523d6000602084013e610968565b606091505b505090508061098a57604051632b3f6d1160e21b815260040160405180910390fd5b50600101610851565b50505050505050565b6109a4610a61565b60058054821515600160a81b0260ff60a81b199091161790556040517f63e9bb35ae90a43113bc6f999f1c6395e88ee5f59560b46bd45815fe8560efae906109f190831515815260200190565b60405180910390a150565b610a04610a61565b6001600160a01b038116610a2e57604051631e4fbdf760e01b815260006004820152602401610751565b61041781610bcf565b600260015403610a5a57604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b6000546001600160a01b0316331461075a5760405163118cdaa760e01b8152336004820152602401610751565b6040516001600160a01b038481166024830152838116604483015260648201839052610af59186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050610c1f565b50505050565b6040516001600160a01b03838116602483015260448201839052610b2c91859182169063a9059cbb90606401610ac3565b505050565b80471015610b5b5760405163cf47918160e01b815247600482015260248101829052604401610751565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610ba8576040519150601f19603f3d011682016040523d82523d6000602084013e610bad565b606091505b5050905080610b2c5760405163d6bda27560e01b815260040160405180910390fd5b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080602060008451602086016000885af180610c42576040513d6000823e3d81fd5b50506000513d91508115610c5a578060011415610c67565b6001600160a01b0384163b155b15610af557604051635274afe760e01b81526001600160a01b0385166004820152602401610751565b600060208284031215610ca257600080fd5b5035919050565b6001600160a01b038116811461041757600080fd5b600060208284031215610cd057600080fd5b8135610cdb81610ca9565b9392505050565b60008083601f840112610cf457600080fd5b50813567ffffffffffffffff811115610d0c57600080fd5b6020830191508360208260051b8501011115610d2757600080fd5b9250929050565b60008060008060008060608789031215610d4757600080fd5b863567ffffffffffffffff811115610d5e57600080fd5b610d6a89828a01610ce2565b909750955050602087013567ffffffffffffffff811115610d8a57600080fd5b610d9689828a01610ce2565b909550935050604087013567ffffffffffffffff811115610db657600080fd5b610dc289828a01610ce2565b979a9699509497509295939492505050565b600060208284031215610de657600080fd5b81358015158114610cdb57600080fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561077d5761077d610df6565b600060208284031215610e3157600080fd5b5051919050565b8181038181111561077d5761077d610df6565b600060208284031215610e5d57600080fd5b8151610cdb81610ca9565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610e9557600080fd5b83018035915067ffffffffffffffff821115610eb057600080fd5b602001915036819003821315610d2757600080fd5b818382376000910190815291905056fea264697066735822122064fa9c048ab3cc392bcd7feb8f548408c348c4cec59d6905415d005fffb178bf64736f6c634300081c0033a2646970667358221220ed2e4e24fbd0990e62eeb80408930398d75f0bfa9a5b8f02e0a1ad5a9d6fc09564736f6c634300081c0033