8 txs
96 calls
constructor
constructor()
functions
currIFOAddress
viewfunction currIFOAddress() view returns (address)
MAX_BUFFER_SECONDS_VESTING
viewfunction MAX_BUFFER_SECONDS_VESTING() view returns (uint256)
MAX_BUFFER_SECONDS
viewfunction MAX_BUFFER_SECONDS() view returns (uint256)
owner
viewfunction owner() view returns (address)
createIFO
nonpayablefunction createIFO(address[] _addresses, uint256[] _startAndEndTimestamps, uint8 _maxPoolId, uint256 _pointThreshold, uint256 _vestingStartTime)
recoverWrongTokens
nonpayablefunction recoverWrongTokens(address _tokenAddress)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateMaxBuffer
nonpayablefunction updateMaxBuffer(uint256 newMaxBuffer)
events
AdminTokenRecovery
event AdminTokenRecovery(address indexed tokenRecovered, uint256 amount)
NewIFOContract
event NewIFOContract(address indexed ifoAddress)
NewMaxBuffer
event NewMaxBuffer(uint256 maxBuffer)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
AdminAddressIsNull
error AdminAddressIsNull()
EndTimeTooFar
error EndTimeTooFar()
LpTokenSameWithOfferingToken
error LpTokenSameWithOfferingToken()
StartTimeMustGreaterThanCurrentBlockTime
error StartTimeMustGreaterThanCurrentBlockTime()
StartTimeMustInferiorToEndTime
error StartTimeMustInferiorToEndTime()
VestingStartTimeMustGreaterThanEndTime
error VestingStartTimeMustGreaterThanEndTime()
VestingStartTimeTooFar
error VestingStartTimeTooFar()
creation bytecode
0x608060405234801561001057600080fd5b5061001a33610026565b62278d00600155610076565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b615de7806100856000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c806387b7db5c11610076578063d04cbeb31161005b578063d04cbeb314610130578063eec784bd1461013a578063f2fde38b1461014d57600080fd5b806387b7db5c1461010c5780638da5cb5b1461011f57600080fd5b8063114c0fa8146100a857806354070e39146100d8578063715018a6146100ef578063746268cc146100f9575b600080fd5b6002546100bb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e160015481565b6040519081526020016100cf565b6100f7610160565b005b6100f7610107366004610e56565b6101cb565b6100f761011a366004610e71565b610356565b6000546001600160a01b03166100bb565b6100e162278d0081565b6100f7610148366004610ed6565b6103eb565b6100f761015b366004610e56565b6109ea565b6000546001600160a01b031633146101bf5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6101c96000610acc565b565b6000546001600160a01b031633146102255760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101b6565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610285573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a99190610f72565b9050600081116102fb5760405162461bcd60e51b815260206004820152601f60248201527f4f7065726174696f6e733a2042616c616e6365206d757374206265203e20300060448201526064016101b6565b61030f6001600160a01b0383163383610b29565b816001600160a01b03167f74545154aac348a3eac92596bd1971957ca94795f4e954ec5f613b55fab781298260405161034a91815260200190565b60405180910390a25050565b6000546001600160a01b031633146103b05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101b6565b60018190556040518181527f6d0e750dce5e074f2672f12d0fd1de4bab34323530b02e094e59481a0850df609060200160405180910390a150565b6000546001600160a01b031633146104455760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101b6565b60008787600081811061045a5761045a610f8b565b905060200201602081019061046f9190610e56565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d09190610f72565b10156104db57600080fd5b6000878760018181106104f0576104f0610f8b565b90506020020160208101906105059190610e56565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610542573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105669190610f72565b101561057157600080fd5b8686600181811061058457610584610f8b565b90506020020160208101906105999190610e56565b6001600160a01b0316878760008181106105b5576105b5610f8b565b90506020020160208101906105ca9190610e56565b6001600160a01b0316141561060b576040517fe53320e600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008787600481811061062057610620610f8b565b90506020020160208101906106359190610e56565b6001600160a01b03161415610676576040517f3a3d9dd400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546106839042610fa1565b8585600181811061069657610696610f8b565b90506020020135106106d4576040517feb47c4f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b848460018181106106e7576106e7610f8b565b905060200201358585600081811061070157610701610f8b565b905060200201351061073f576040517f46bdc21400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b428585600081811061075357610753610f8b565b9050602002013511610791576040517fb04629aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80156107f85762278d00858560018181106107ae576107ae610f8b565b905060200201356107bf9190610fa1565b8111156107f8576040517f934d841500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040518060200161080a90610e2d565b601f1982820381018352601f90910116604052905060008888828161083157610831610f8b565b90506020020160208101906108469190610e56565b8989600181811061085957610859610f8b565b905060200201602081019061086e9190610e56565b8888600081811061088157610881610f8b565b6040516bffffffffffffffffffffffff19606096871b81166020838101919091529590961b90951660348601529290920201356048830152506068016040516020818303038152906040528051906020012090506000818351602085016000f56001546040517f6865f6e90000000000000000000000000000000000000000000000000000000081529192506001600160a01b03831691636865f6e991610938918e918e918e918e918e908e908e90600401610fc7565b600060405180830381600087803b15801561095257600080fd5b505af1158015610966573d6000803e3d6000fd5b50506002546001600160a01b0384811691161491506109aa9050576002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383161790555b6040516001600160a01b038216907f3b823f91f23e8f12a60f36282813ffed043efcb2101731734672a4726c08645490600090a250505050505050505050565b6000546001600160a01b03163314610a445760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101b6565b6001600160a01b038116610ac05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016101b6565b610ac981610acc565b50565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610ba9908490610bae565b505050565b6000610c03826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610c939092919063ffffffff16565b805190915015610ba95780806020019051810190610c219190611086565b610ba95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016101b6565b6060610ca28484600085610cac565b90505b9392505050565b606082471015610d245760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016101b6565b6001600160a01b0385163b610d7b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101b6565b600080866001600160a01b03168587604051610d9791906110d8565b60006040518083038185875af1925050503d8060008114610dd4576040519150601f19603f3d011682016040523d82523d6000602084013e610dd9565b606091505b5091509150610de9828286610df4565b979650505050505050565b60608315610e03575081610ca5565b825115610e135782518084602001fd5b8160405162461bcd60e51b81526004016101b691906110f4565b614c8a8061112883390190565b80356001600160a01b0381168114610e5157600080fd5b919050565b600060208284031215610e6857600080fd5b610ca582610e3a565b600060208284031215610e8357600080fd5b5035919050565b60008083601f840112610e9c57600080fd5b50813567ffffffffffffffff811115610eb457600080fd5b6020830191508360208260051b8501011115610ecf57600080fd5b9250929050565b600080600080600080600060a0888a031215610ef157600080fd5b873567ffffffffffffffff80821115610f0957600080fd5b610f158b838c01610e8a565b909950975060208a0135915080821115610f2e57600080fd5b50610f3b8a828b01610e8a565b909650945050604088013560ff81168114610f5557600080fd5b969995985093969295946060840135945060809093013592915050565b600060208284031215610f8457600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60008219821115610fc257634e487b7160e01b600052601160045260246000fd5b500190565b60c0808252810188905260008960e08301825b8b811015611008576001600160a01b03610ff384610e3a565b16825260209283019290910190600101610fda565b5083810360208501528881527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff89111561104157600080fd5b8860051b9150818a602083013760009101602001908152604083018790529050611070606083018660ff169052565b608082019390935260a001529695505050505050565b60006020828403121561109857600080fd5b81518015158114610ca557600080fd5b60005b838110156110c35781810151838201526020016110ab565b838111156110d2576000848401525b50505050565b600082516110ea8184602087016110a8565b9190910192915050565b60208152600082518060208401526111138160408501602087016110a8565b601f01601f1916919091016040019291505056fe60a06040523480156200001157600080fd5b50600160005562000022336200002c565b336080526200007e565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b608051614bf06200009a60003960006115bd0152614bf06000f3fe608060405234801561001057600080fd5b506004361061032b5760003560e01c80638da5cb5b116101b2578063ca463ca4116100f9578063ea1bb3d5116100a2578063f51321d71161007c578063f51321d714610811578063f7c469f014610824578063f9cd5c1214610837578063feebf5291461085757600080fd5b8063ea1bb3d5146107d8578063edf26d9b146107eb578063f2fde38b146107fe57600080fd5b8063e2ec6ec3116100d3578063e2ec6ec3146107a9578063e6fd48bc146107bc578063e9050763146107c557600080fd5b8063ca463ca414610763578063caa7f23214610783578063d04dac151461079657600080fd5b8063ae8973a01161015b578063b6549f7511610135578063b6549f7514610715578063b86c6f141461071d578063c02977371461075057600080fd5b8063ae8973a0146106da578063b0adb220146106ed578063b1ced5e7146106f657600080fd5b8063a47ff7e51161018c578063a47ff7e51461069b578063a85adeab146106c8578063a8660a78146106d157600080fd5b80638da5cb5b1461058a5780639ef346b41461059b5780639f1b52481461068857600080fd5b806349032cdb11610276578063760b31801161021f5780637f1bdd76116101f95780637f1bdd76146104e15780638518b3c5146104f45780638af104da1461053557600080fd5b8063760b3180146104bd57806379795108146104c65780637b9417c8146104ce57600080fd5b806367d42a8b1161025057806367d42a8b1461048f5780636865f6e9146104a2578063715018a6146104b557600080fd5b806349032cdb146104455780634af3c9b71461046557806354070e391461048657600080fd5b806328fddfaf116102d85780633f138d4b116102b25780633f138d4b1461040457806346ab91bf1461041757806348deb4711461043d57600080fd5b806328fddfaf146103b857806337f859b8146103c55780633af32abf146103d857600080fd5b80632374876c116103095780632374876c1461037d57806324953eaa14610392578063286dd3f5146103a557600080fd5b806306cec8571461033057806313083617146103585780631e3bba081461036a575b600080fd5b61034361033e3660046143ce565b610877565b60405190151581526020015b60405180910390f35b6032545b60405190815260200161034f565b61035c6103783660046143fc565b61089a565b61039061038b366004614431565b6109bf565b005b6103906103a0366004614498565b610db2565b6103906103b33660046143ce565b610edf565b6031546103439060ff1681565b61035c6103d33660046144da565b610f82565b6103436103e63660046143ce565b6001600160a01b031660009081526002602052604090205460ff1690565b6103906104123660046144f3565b611033565b61042a6104253660046144da565b611126565b60405161034f9796959493929190614535565b60345461035c565b61035c6104533660046143ce565b602f6020526000908152604090205481565b610478610473366004614590565b611209565b60405161034f929190614620565b61035c600c5481565b61039061049d3660046144da565b6113a8565b6103906104b0366004614679565b6115b1565b6103906118c0565b61035c60125481565b61035c611926565b6103906104dc3660046143ce565b6119a6565b6103906104ef366004614715565b611a4c565b61051d6105023660046144da565b602e602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161034f565b61035c6105433660046144f3565b6040516bffffffffffffffffffffffff19606084901b1660208201526034810182905260009060540160405160208183030381529060405280519060200120905092915050565b6001546001600160a01b031661051d565b6106386105a93660046144da565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260336020908152604091829020825160a081018452815460ff808216151583526001600160a01b0361010083041694830194909452600160a81b90049092169282019290925260018201546060820152600290910154608082015290565b60405161034f9190600060a0820190508251151582526001600160a01b03602084015116602083015260ff6040840151166040830152606083015160608301526080830151608083015292915050565b610390610696366004614738565b612086565b600f546010546011546106ad92919083565b6040805193845260208401929092529082015260600161034f565b61035c600b5481565b61035c60305481565b6103906106e836600461475a565b6121d0565b61035c600e5481565b600d546107039060ff1681565b60405160ff909116815260200161034f565b610390612241565b61073061072b3660046144da565b6122be565b60408051948552602085019390935291830152606082015260800161034f565b61034361075e3660046143ce565b61234b565b610776610771366004614590565b612466565b60405161034f9190614772565b610390610791366004614498565b6125b2565b6103436107a43660046143ce565b6126a8565b6103906107b7366004614498565b6127ca565b61035c600a5481565b6103906107d33660046147ea565b6128f2565b61035c6107e63660046144da565b612b57565b61051d6107f93660046144da565b612bdb565b61039061080c3660046143ce565b612bfb565b61063861081f3660046144f3565b612cdd565b61035c6108323660046143ce565b612d4e565b61084a610845366004614590565b612da7565b60405161034f9190614879565b61035c6108653660046143ce565b602d6020526000908152604090205481565b6001600160a01b03811660009081526002602052604081205460ff165b92915050565b600d5460009060ff90811690831611156108b657506000610894565b60408051606085901b6bffffffffffffffffffffffff1916602080830191909152600060348084018290528451808503909101815260549093019093528151910120600081815260336020908152604091829020825160a081018452815460ff808216151583526001600160a01b0361010083041694830194909452600160a81b900483169381018490526001820154606082015260029091015460808201529293508516141561096957509050610894565b6109b68560016040516bffffffffffffffffffffffff19606084901b1660208201526034810182905260009060540160405160208183030381529060405280519060200120905092915050565b95945050505050565b60026000541415610a175760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b6002600055610a2581612e63565b600b54336000908152602c6020908152604080832060ff868116855292529091208054600190910154610a59939216612ea6565b336000908152602f602052604090205415610b5857600654604051634c3f70ab60e11b8152336004820152600091829182916001600160a01b03169063987ee1569060240160c060405180830381865afa158015610abb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adf91906148a2565b955095509550505050801580610b0357506009546001600160a01b03848116911614155b80610b1d5750336000908152602f60205260409020548214155b15610b54576040517f19a9a2ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505b610b6133612f35565b336000908152602c6020908152604080832060ff8516845290915290206001908101805460ff19169091179055603054610b9a57426030555b6000806000610ba93385613084565b919450925090508015610c01578060138560ff1660028110610bcd57610bcd61488c565b600c020160060154610bdf9190614917565b60138560ff1660028110610bf557610bf561488c565b600c0201600601819055505b8215610d9357600060138560ff1660028110610c1f57610c1f61488c565b600c0201600801600001546064610c36919061492f565b1115610ce1576000606460138660ff1660028110610c5657610c5661488c565b600c0201600801600001546064610c6d919061492f565b610c779086614946565b610c819190614965565b9050610c9f3382600460015b01546001600160a01b031691906132c5565b604080518281526020810185905260ff87169133917f51524c2e5edfedf8b01b29719c661e4fbe27e71734e7cd773dabb7cb712fb3b3910160405180910390a3505b600060138560ff1660028110610cf957610cf961488c565b600c0201600801600001541115610d93576000606460138660ff1660028110610d2457610d2461488c565b600c02016008016000015485610d3a9190614946565b610d449190614965565b9050610d5133868361336e565b604080518281526020810185905260ff87169133917f4b386667138d87683f75b2e46ad8ac192b053af4c8875da8689415997663a950910160405180910390a3505b8115610da757610da7338360046000610c8d565b505060016000555050565b6001546001600160a01b03163314610e0c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a0e565b60005b81811015610eda57600060026000858585818110610e2f57610e2f61488c565b9050602002016020810190610e4491906143ce565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055828282818110610e7e57610e7e61488c565b9050602002016020810190610e9391906143ce565b6001600160a01b03167ff1abf01a1043b7c244d128e8595cf0c1d10743b022b03a02dffd8ca3bf729f5a60405160405180910390a280610ed281614987565b915050610e0f565b505050565b6001546001600160a01b03163314610f395760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a0e565b6001600160a01b038116600081815260026020526040808220805460ff19169055517ff1abf01a1043b7c244d128e8595cf0c1d10743b022b03a02dffd8ca3bf729f5a9190a250565b600060138260028110610f9757610f9761488c565b600c02016003015460ff16610fae57506000919050565b600060138360028110610fc357610fc361488c565b600c0201600401541115610ff35760138260028110610fe457610fe461488c565b600c0201600401549050919050565b610894601383600281106110095761100961488c565b600c020160050154601384600281106110245761102461488c565b600c0201546135e3565b919050565b61103b613681565b6004546001600160a01b0383811691161415611083576040517f10da472300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005546001600160a01b03838116911614156110cb576040517fa8dfadb900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110df6001600160a01b03831633836132c5565b604080516001600160a01b0384168152602081018390527f74545154aac348a3eac92596bd1971957ca94795f4e954ec5f613b55fab7812991015b60405180910390a15050565b6000806000806000806000601388600281106111445761114461488c565b600c0201546013896002811061115c5761115c61488c565b600c02016001015460138a600281106111775761117761488c565b600c02016002015460138b600281106111925761119261488c565b600c02016003015460ff1660138c600281106111b0576111b061488c565b600c02016005015460138d600281106111cb576111cb61488c565b600c02016006015460138e600281106111e6576111e661488c565b600c020160070154959e949d50929b509099509750955060ff9091169350915050565b60608060008367ffffffffffffffff811115611227576112276149a2565b604051908082528060200260200182016040528015611250578160200160208202803683370190505b50905060008467ffffffffffffffff81111561126e5761126e6149a2565b604051908082528060200260200182016040528015611297578160200160208202803683370190505b50905060005b60ff811686111561139b57600087878360ff168181106112bf576112bf61488c565b90506020020160208101906112d49190614431565b600d5490915060ff90811690821611611388576001600160a01b0389166000908152602c6020908152604080832060ff80861685529252909120548551909186919085169081106113275761132761488c565b6020908102919091018101919091526001600160a01b038a166000908152602c8252604080822060ff8086168452935290206001015484519082169185919085169081106113775761137761488c565b911515602092830291909101909101525b5080611393816149b8565b91505061129d565b5090969095509350505050565b600260005414156113fb5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a0e565b600260009081558181526033602052604090205461141b9060ff166136d4565b60008181526033602052604090208054600154336001600160a01b03610100909304831681149290911614811582611451575080155b15611488576040517f61c042c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160a081018252845460ff808216151583526001600160a01b036101008304166020840152600160a81b909104169181019190915260018401546060820152600284015460808201526000906114e09061370b565b90506000811161151c576040517f5b2e7e9a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80846002015461152c9190614917565b600285015560345461153f90829061492f565b60345583546115609061010090046001600160a01b03168260046001610c8d565b83546040518281526101009091046001600160a01b0316907fb21fb52d5749b80f3182f8c6992236b5e5576681880914484d7f4c9b062e619e9060200160405180910390a250506001600055505050565b6003546115e49060ff167f0000000000000000000000000000000000000000000000000000000000000000898887613860565b6003805460ff191660011790556000888860028181106116065761160661488c565b905060200201602081019061161b91906143ce565b6001600160a01b0316146116df578787600281811061163c5761163c61488c565b905060200201602081019061165191906143ce565b6040517faee2f47f000000000000000000000000000000000000000000000000000000008152600160048201526001600160a01b03919091169063aee2f47f90602401600060405180830381865afa1580156116b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116d99190810190614a8c565b50505050505b6000888860038181106116f4576116f461488c565b905060200201602081019061170991906143ce565b6001600160a01b0316146117a2578787600381811061172a5761172a61488c565b905060200201602081019061173f91906143ce565b6001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381865afa15801561177c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a09190614b18565b505b60005b60ff811688111561182e5788888260ff168181106117c5576117c561488c565b90506020020160208101906117da91906143ce565b60048260ff16600681106117f0576117f061488c565b01805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905580611826816149b8565b9150506117a5565b50858560008181106118425761184261488c565b6020029190910135600a5550858560018181106118615761186161488c565b6020029190910135600b5550600c849055600d805460ff191660ff8516179055600e82905560308190556118b6888860048181106118a1576118a161488c565b905060200201602081019061080c91906143ce565b5050505050505050565b6001546001600160a01b0316331461191a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a0e565b6119246000613979565b565b6034546005546040516370a0823160e01b8152306004820152600092916001600160a01b0316906370a0823190602401602060405180830381865afa158015611973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119979190614b35565b6119a1919061492f565b905090565b6001546001600160a01b03163314611a005760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a0e565b6001600160a01b038116600081815260026020526040808220805460ff19166001179055517fd1bba68c128cc3f427e5831b3c6f99f480b6efa6b9e80c757768f6124158cc3f9190a250565b60026000541415611a9f5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a0e565b6002600055611aad81612e63565b611b2f826004600201546001600160a01b0316601360ff851660028110611ad657611ad661488c565b600c020160070160009054906101000a900460ff1660138560ff1660028110611b0157611b0161488c565b600c02016001015460138660ff1660028110611b1f57611b1f61488c565b600c020154600a54600b546139d8565b6012546005546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611b7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b9e9190614b35565b1015611bd6576040517fe4db4faa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060138260ff1660028110611bee57611bee61488c565b600c02016007015460ff166002811115611c0a57611c0a61451f565b1480611c475750600260138260ff1660028110611c2957611c2961488c565b600c02016007015460ff166002811115611c4557611c4561451f565b145b15611df8576007546001600160a01b031615801590611c985750600260138260ff1660028110611c7957611c7961488c565b600c02016007015460ff166002811115611c9557611c9561451f565b14155b15611d7d576007546040517fdad6f0dc0000000000000000000000000000000000000000000000000000000081523360048201526000916001600160a01b03169063dad6f0dc90602401602060405180830381865afa158015611cff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d239190614b35565b336000908152602d60205260409020549091508190611d43908590614917565b1115611d7b576040517f112290ac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b611d878282613b81565b600060138260ff1660028110611d9f57611d9f61488c565b600c02016007015460ff166002811115611dbb57611dbb61451f565b14611dc7576000611dc9565b815b336000908152602d6020526040902054611de39190614917565b336000908152602d602052604090205561207d565b6006546001600160a01b031615612073576000808080600460020154604051634c3f70ab60e11b81523360048201526001600160a01b039091169063987ee1569060240160c060405180830381865afa158015611e59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7d91906148a2565b9550955095505094505080611ebe576040517ff7bd660700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611ec784613d0e565b158015611eda5750611ed833610877565b155b8015611eee5750611eec338484613d27565b155b15611f25576040517f4d18c7d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f2e84613d0e565b158015611f415750611f3f33610877565b155b8015611f5a57506009546001600160a01b038481169116145b1561206e576000828152602e60205260409020546001600160a01b0316611fab576000828152602e60205260409020805473ffffffffffffffffffffffffffffffffffffffff191633179055611ffb565b6000828152602e60205260409020546001600160a01b03163314611ffb576040517fd69933c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152602f602052604090205461202657336000908152602f6020526040902082905561206e565b336000908152602f6020526040902054821461206e576040517f46d88c6000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505b61207d8282613b81565b50506001600055565b61208e613681565b612172826004600001546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156120dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121019190614b35565b6005546040516370a0823160e01b815230600482015285916001600160a01b0316906370a0823190602401602060405180830381865afa158015612149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216d9190614b35565b613d88565b811561218657612186338360046000610c8d565b801561219a5761219a338260046001610c8d565b60408051838152602081018390527f94ebb62a252249c867ecb758d386f50a95be7e8df9e1c52917c9cf494327dd7d910161111a565b6121d8613681565b6121e3600b54613e02565b60208181013560108190558235600f819055604080850135601181905581519283529382019290925280820192909252517f2058a318dbdfd2edd92a32cfa0ee233a30b165b83b421830109cb22ae86f67459181900360600190a150565b612249613681565b60315460ff1615612286576040517f11db525400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6031805460ff191660011790556040517f44825a4b2df8acb19ce4e1afba9aa850c8b65cdb7942e2078f27d0b0960efee690600090a1565b600080600080601385600281106122d7576122d761488c565b600c020160080160000154601386600281106122f5576122f561488c565b600c020160080160010154601387600281106123135761231361488c565b600c020160080160020154601388600281106123315761233161488c565b600c02016008016003015493509350935093509193509193565b6006546000906001600160a01b031661236657506001919050565b60065460405163ea0d5dcd60e01b81526001600160a01b0384811660048301529091169063ea0d5dcd90602401602060405180830381865afa1580156123b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123d49190614b4e565b6123e057506000919050565b600654604051634c3f70ab60e11b81526001600160a01b038481166004830152600092169063987ee1569060240160c060405180830381865afa15801561242b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061244f91906148a2565b5050505091505061245f81613d0e565b9392505050565b606060008267ffffffffffffffff811115612483576124836149a2565b6040519080825280602002602001820160405280156124bc57816020015b6124a961439b565b8152602001906001900390816124a15790505b50905060005b60ff81168411156125a957600080600080601389898760ff168181106124ea576124ea61488c565b90506020020160208101906124ff9190614431565b60ff16600281106125125761251261488c565b600c0201541115612558576125508989898760ff168181106125365761253661488c565b905060200201602081019061254b9190614431565b613084565b919450925090505b604051806060016040528084815260200183815260200182815250858560ff16815181106125885761258861488c565b602002602001018190525050505080806125a1906149b8565b9150506124c2565b50949350505050565b6125ba613681565b612600600c5483839050600a54858560008181106125da576125da61488c565b90506020020135868660018181106125f4576125f461488c565b90506020020135613e3b565b818160008181106126135761261361488c565b6020029190910135600a5550818160018181106126325761263261488c565b6020029190910135600b55507f57df350cfad05a64accd73700fee8a7febd6d8430e035e45f0599ca62494aa8b82826000816126705761267061488c565b905060200201358383600181811061268a5761268a61488c565b9050602002013560405161111a929190918252602082015260400190565b6006546000906001600160a01b03166126c357506001919050565b60065460405163ea0d5dcd60e01b81526001600160a01b0384811660048301529091169063ea0d5dcd90602401602060405180830381865afa15801561270d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127319190614b4e565b61273d57506000919050565b600654604051634c3f70ab60e11b81526001600160a01b038481166004830152600092839291169063987ee1569060240160c060405180830381865afa15801561278b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127af91906148a2565b50945094505050506127c2848383613d27565b949350505050565b6001546001600160a01b031633146128245760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a0e565b60005b81811015610eda576001600260008585858181106128475761284761488c565b905060200201602081019061285c91906143ce565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558282828181106128965761289661488c565b90506020020160208101906128ab91906143ce565b6001600160a01b03167fd1bba68c128cc3f427e5831b3c6f99f480b6efa6b9e80c757768f6124158cc3f60405160405180910390a2806128ea81614987565b915050612827565b6128fa613681565b61290383612e63565b600a5461291d908686843560408601356060870135613f30565b8760138460ff16600281106129345761293461488c565b600c0201600101819055508660138460ff16600281106129565761295661488c565b600c02015585601360ff8516600281106129725761297261488c565b600c0201600201819055508460138460ff16600281106129945761299461488c565b600c020160030160006101000a81548160ff0219169083151502179055508360138460ff16600281106129c9576129c961488c565b600c0201600401819055508160138460ff16600281106129eb576129eb61488c565b600c020160070160006101000a81548160ff02191690836002811115612a1357612a1361451f565b02179055508035601360ff851660028110612a3057612a3061488c565b600c020160080160000181905550806020013560138460ff1660028110612a5957612a5961488c565b600c020160080160010181905550806040013560138460ff1660028110612a8257612a8261488c565b600c020160080160020181905550806060013560138460ff1660028110612aab57612aab61488c565b600c0201600b01556000805b600d5460ff90811690821611612b045760138160ff1660028110612add57612add61488c565b600c02016001015482612af09190614917565b915080612afc816149b8565b915050612ab7565b506012819055604080518a8152602081018a905260ff86168183015290517fddaf243a142670be60c19ff7116b5d8b124717b29bb4cc03cead42161614105b9181900360600190a1505050505050505050565b600081815260336020526040812054612b729060ff166136d4565b600082815260336020908152604091829020825160a081018452815460ff808216151583526001600160a01b0361010083041694830194909452600160a81b9004909216928201929092526001820154606082015260029091015460808201526108949061370b565b60048160068110612beb57600080fd5b01546001600160a01b0316905081565b6001546001600160a01b03163314612c555760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a0e565b6001600160a01b038116612cd15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a0e565b612cda81613979565b50565b6040805160a081018252600080825260208083018290528284018290526060808401839052608084019290925283519186901b6bffffffffffffffffffffffff1916828201526034808301869052845180840390910181526054909201909352805192019190912061245f906105a9565b6001600160a01b0381166000908152603560209081526040808320548151606086901b6bffffffffffffffffffffffff191681850152603480820192909252825180820390920182526054019091528051910120610894565b606060008267ffffffffffffffff811115612dc457612dc46149a2565b604051908082528060200260200182016040528015612ded578160200160208202803683370190505b50905060005b60ff81168411156125a957612e318686868460ff16818110612e1757612e1761488c565b9050602002016020810190612e2c9190614431565b6140b2565b828260ff1681518110612e4657612e4661488c565b602090810291909101015280612e5b816149b8565b915050612df3565b600d5460ff9081169082161115612cda576040517f5136512800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b824211612ec65760405163085de62560e01b815260040160405180910390fd5b81612efd576040517fdc646a1400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8015610eda576040517f0b3394dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006546001600160a01b031615612cda576001600160a01b0381166000908152602b602052604090205460ff16158015612f70575060105415155b15612cda576000805b600d5460ff90811690821611612fc557336000908152602c6020908152604080832060ff85168452909152902054612fb19083614917565b915080612fbd816149b8565b915050612f79565b50601154811115613080576001600160a01b0382166000908152602b60205260409020805460ff19166001179055600460020154601054600f546040517f1bdc17f6000000000000000000000000000000000000000000000000000000008152336004820152602481019290925260448201526001600160a01b0390911690631bdc17f690606401600060405180830381600087803b15801561306757600080fd5b505af115801561307b573d6000803e3d6000fd5b505050505b5050565b60008060008060008060138760ff16600281106130a3576130a361488c565b600c020154601360ff8916600281106130be576130be61488c565b600c02016005015411156132405760006130d889896140b2565b905064e8d4a510008160138a60ff16600281106130f7576130f761488c565b600c0201600101546131099190614946565b6131139190614965565b9350600064e8d4a510008260138b60ff16600281106131345761313461488c565b600c0201546131439190614946565b61314d9190614965565b6001600160a01b038b166000908152602c6020908152604080832060ff8e16845290915290205490915061318290829061492f565b935060138960ff166002811061319a5761319a61488c565b600c02016003015460ff161561323957600060138a60ff16600281106131c2576131c261488c565b600c0201600401549050806000141561320f5761320c60138b60ff16600281106131ee576131ee61488c565b600c02016005015460138c60ff16600281106110245761102461488c565b90505b64e8d4a5100061321f8287614946565b6132299190614965565b9350613235848661492f565b9450505b50506132b7565b60138760ff16600281106132565761325661488c565b600c020154601360ff8916600281106132715761327161488c565b600c0201600101546001600160a01b038a166000908152602c6020908152604080832060ff8d1684529091529020546132aa9190614946565b6132b49190614965565b92505b919450925090509250925092565b6040516001600160a01b038316602482015260448101829052610eda9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152614161565b80613377611926565b10156133eb5760405162461bcd60e51b815260206004820152603660248201527f63616e206e6f74206372656174652076657374696e67207363686564756c652060448201527f776974682073756666696369656e7420746f6b656e73000000000000000000006064820152608401610a0e565b60006133f684612d4e565b60008181526033602052604090205490915061010090046001600160a01b0316156134895760405162461bcd60e51b815260206004820152602160248201527f76657374696e675363686564756c654964206973206265656e2063726561746560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a0e565b6040805160a08101825260018082526001600160a01b03878116602080850191825260ff898116868801908152606087018a81526000608089018181528b825260339095529890982096518754945191517fffffffffffffffffffffff0000000000000000000000000000000000000000009095169015157fffffffffffffffffffffff0000000000000000000000000000000000000000ff16176101009190951602939093177fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16600160a81b92909316919091029190911783559251908201559051600290910155603454613581908390614917565b60345560328054600181019091557f11df491316f14931039edfd4f8964c9a443b862f02d4c7611d18c2bc4e6ff697018190556001600160a01b03841660009081526035602052604081208054916135d883614987565b919050555050505050565b6000806135f08385614965565b90506105dc811061360857630ee6b280915050610894565b6103e8811061361e57631dcd6500915050610894565b6101f4811061363457633b9aca00915050610894565b60fa811061364957634a817c80915050610894565b6064811061365e576359682f00915050610894565b6032811061367357639502f900915050610894565b64012a05f200915050610894565b336136946001546001600160a01b031690565b6001600160a01b031614611924576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80612cda576040517f8bc0c80500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006013826040015160ff16600281106137275761372761488c565b600c02016008016001015460305461373f9190614917565b42101561374e57506000919050565b6013826040015160ff16600281106137685761376861488c565b600c0201600801600201546030546137809190614917565b42101580613790575060315460ff165b156137a95781608001518260600151610894919061492f565b6000603054426137b9919061492f565b905060006013846040015160ff16600281106137d7576137d761488c565b600c0201600801600301549050600081836137f29190614965565b905060006138008383614946565b905060006013876040015160ff166002811061381e5761381e61488c565b600c0201600801600201548288606001516138399190614946565b6138439190614965565b9050866080015181613855919061492f565b979650505050505050565b8415613898576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336001600160a01b038516146138da576040517f32cc723600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82600614613914576040517f3b9b621f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160021461393557604051631397ee3560e31b815260040160405180910390fd5b60028160ff1610613972576040517fa854b3bd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b600180546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03861615801590613a02575060028560028111156139ff576139ff61451f565b14155b15613aa55760405163ea0d5dcd60e01b81523360048201526001600160a01b0387169063ea0d5dcd90602401602060405180830381865afa158015613a4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a6f9190614b4e565b613aa5576040517fc8b7637a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b831580613ab0575082155b15613ae7576040517f3c67586300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b814211613b075760405163085de62560e01b815260040160405180910390fd5b80421115613b41576040517fecdd1c2900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b86613b78576040517f9e6c689500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505050565b600454613b99906001600160a01b0316333085614246565b336000908152602c6020908152604080832060ff85168452909152902054613bc2908390614917565b336000908152602c6020908152604080832060ff861680855292528220929092559060139060028110613bf757613bf761488c565b600c0201600201541115613c795760138160ff1660028110613c1b57613c1b61488c565b600c020160020154336000908152602c6020908152604080832060ff861684529091529020541115613c79576040517f06e6a3a600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160138260ff1660028110613c9057613c9061488c565b600c020160050154613ca29190614917565b60138260ff1660028110613cb857613cb861488c565b600c0201600501819055508060ff16336001600160a01b03167ff763e680fce25a97ffd55d8b705370c98b47b2285f7b3b2900c43606fd41804584604051613d0291815260200190565b60405180910390a35050565b6000600e54600014158015610894575050600e54111590565b60006004600501546001600160a01b0384811691161480156127c257506000828152602e60205260409020546001600160a01b031615806127c257506000828152602e60205260409020546001600160a01b03858116911614949350505050565b82841115613dc2576040517fc28e092400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80821115613dfc576040517f2af9b86100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b804210612cda576040517f3ff9af5400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83600214613e5c57604051631397ee3560e31b815260040160405180910390fd5b613e668542614917565b8110613e9e576040517feb47c4f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b824210613ebe576040516365be5cfd60e11b815260040160405180910390fd5b808210613ef7576040517f46bdc21400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b814210613972576040517fb04629aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b854210613f50576040516365be5cfd60e11b815260040160405180910390fd5b64e8d4a510008410613f8e576040517f892888c200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6064831115613fc9576040517f0e07a92f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81614000576040517f914cb9d000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600181101561403b576040517f2030ecea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81811115614075576040517f0cdbeed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8461307b57831561307b576040517f55d8bb6700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d5460009060ff90811690831611156140ce57506000610894565b600060138360ff16600281106140e6576140e661488c565b600c02016005015411156141595760138260ff166002811061410a5761410a61488c565b600c0201600501546001600160a01b0384166000908152602c6020908152604080832060ff871684529091529020546141489064e8d4a51000614946565b6141529190614965565b9050610894565b506000610894565b60006141b6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166142979092919063ffffffff16565b805190915015610eda57808060200190518101906141d49190614b4e565b610eda5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610a0e565b6040516001600160a01b0380851660248301528316604482015260648101829052613dfc9085907f23b872dd000000000000000000000000000000000000000000000000000000009060840161330a565b60606127c28484600085856001600160a01b0385163b6142f95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a0e565b600080866001600160a01b031685876040516143159190614b6b565b60006040518083038185875af1925050503d8060008114614352576040519150601f19603f3d011682016040523d82523d6000602084013e614357565b606091505b50915091506138558282866060831561437157508161245f565b8251156143815782518084602001fd5b8160405162461bcd60e51b8152600401610a0e9190614b87565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b0381168114612cda57600080fd5b6000602082840312156143e057600080fd5b813561245f816143b9565b803560ff8116811461102e57600080fd5b6000806040838503121561440f57600080fd5b823561441a816143b9565b9150614428602084016143eb565b90509250929050565b60006020828403121561444357600080fd5b61245f826143eb565b60008083601f84011261445e57600080fd5b50813567ffffffffffffffff81111561447657600080fd5b6020830191508360208260051b850101111561449157600080fd5b9250929050565b600080602083850312156144ab57600080fd5b823567ffffffffffffffff8111156144c257600080fd5b6144ce8582860161444c565b90969095509350505050565b6000602082840312156144ec57600080fd5b5035919050565b6000806040838503121561450657600080fd5b8235614511816143b9565b946020939093013593505050565b634e487b7160e01b600052602160045260246000fd5b600060e08201905088825287602083015286604083015285151560608301528460808301528360a08301526003831061457e57634e487b7160e01b600052602160045260246000fd5b8260c083015298975050505050505050565b6000806000604084860312156145a557600080fd5b83356145b0816143b9565b9250602084013567ffffffffffffffff8111156145cc57600080fd5b6145d88682870161444c565b9497909650939450505050565b600081518084526020808501945080840160005b83811015614615578151875295820195908201906001016145f9565b509495945050505050565b60408152600061463360408301856145e5565b82810360208481019190915284518083528582019282019060005b8181101561466c57845115158352938301939183019160010161464e565b5090979650505050505050565b60008060008060008060008060c0898b03121561469557600080fd5b883567ffffffffffffffff808211156146ad57600080fd5b6146b98c838d0161444c565b909a50985060208b01359150808211156146d257600080fd5b506146df8b828c0161444c565b909750955050604089013593506146f860608a016143eb565b92506080890135915060a089013590509295985092959890939650565b6000806040838503121561472857600080fd5b82359150614428602084016143eb565b6000806040838503121561474b57600080fd5b50508035926020909101359150565b60006060828403121561476c57600080fd5b50919050565b602080825282518282018190526000919084820190604085019084805b828110156147cf57845184835b60038110156147b95782518252918801919088019060010161479c565b505050938501936060939093019260010161478f565b5091979650505050505050565b8015158114612cda57600080fd5b600080600080600080600080888a0361016081121561480857600080fd5b8935985060208a0135975060408a0135965060608a0135614828816147dc565b955060808a0135945061483d60a08b016143eb565b935060c08a01356003811061485157600080fd5b9250608060df198201121561486557600080fd5b5060e0890190509295985092959890939650565b60208152600061245f60208301846145e5565b634e487b7160e01b600052603260045260246000fd5b60008060008060008060c087890312156148bb57600080fd5b86519550602087015194506040870151935060608701516148db816143b9565b608088015160a089015191945092506148f3816147dc565b809150509295509295509295565b634e487b7160e01b600052601160045260246000fd5b6000821982111561492a5761492a614901565b500190565b60008282101561494157614941614901565b500390565b600081600019048311821515161561496057614960614901565b500290565b60008261498257634e487b7160e01b600052601260045260246000fd5b500490565b600060001982141561499b5761499b614901565b5060010190565b634e487b7160e01b600052604160045260246000fd5b600060ff821660ff8114156149cf576149cf614901565b60010192915050565b60005b838110156149f35781810151838201526020016149db565b83811115613dfc5750506000910152565b600082601f830112614a1557600080fd5b815167ffffffffffffffff80821115614a3057614a306149a2565b604051601f8301601f19908116603f01168101908282118183101715614a5857614a586149a2565b81604052838152866020858801011115614a7157600080fd5b614a828460208301602089016149d8565b9695505050505050565b600080600080600060a08688031215614aa457600080fd5b855167ffffffffffffffff80821115614abc57600080fd5b614ac889838a01614a04565b96506020880151915080821115614ade57600080fd5b50614aeb88828901614a04565b94505060408601519250606086015191506080860151614b0a816147dc565b809150509295509295909350565b600060208284031215614b2a57600080fd5b815161245f816143b9565b600060208284031215614b4757600080fd5b5051919050565b600060208284031215614b6057600080fd5b815161245f816147dc565b60008251614b7d8184602087016149d8565b9190910192915050565b6020815260008251806020840152614ba68160408501602087016149d8565b601f01601f1916919091016040019291505056fea2646970667358221220739af44fffe07af9390e88502a06564d30878b948732a43f4e756f462c85e90c64736f6c634300080a0033a2646970667358221220ba75a7eaf346f0df491e93e13a6fdfb52432ec7917eea18921fcd8cd4b727b4764736f6c634300080a0033