0 txs
0 calls
constructor
constructor(address _token, uint256 _chainid, address _targetToken, uint256 _targetChain)
functions
batches
viewfunction batches(uint256) view returns (uint64 start, uint64 end, uint64 departureTime, uint64 status, bytes32 hash)
cancelled
viewfunction cancelled(uint256) view returns (bool)
captain
viewfunction captain() view returns (address)
chainid
viewfunction chainid() view returns (uint256)
crewmembers
viewfunction crewmembers(address) view returns (bool)
executeIndex
viewfunction executeIndex() view returns (uint256)
fee_exempt_addrs
viewfunction fee_exempt_addrs(address) view returns (bool)
FEE_MAX
viewfunction FEE_MAX() view returns (uint256)
FEE_MIN
viewfunction FEE_MIN() view returns (uint256)
FEE_RATE
viewfunction FEE_RATE() view returns (uint256)
firstOfficer
viewfunction firstOfficer() view returns (address)
getBatchAmount
viewfunction getBatchAmount(uint256 start, uint256 end) view returns (uint256 totalAmount)
getBatchData
viewfunction getBatchData(uint256 start, uint256 end) view returns (tuple data)
getNextBatch
viewfunction getNextBatch(uint256 _start, uint256 max) view returns (uint256 start, uint256 end, bytes32 hash)
getTransactionsHash
viewfunction getTransactionsHash(uint256 start, uint256 end) view returns (bytes32)
MIN_WAIT_PERIOD_ADD
viewfunction MIN_WAIT_PERIOD_ADD() view returns (uint256)
MIN_WAIT_PERIOD_EXECUTE
viewfunction MIN_WAIT_PERIOD_EXECUTE() view returns (uint256)
noBatches
viewfunction noBatches() view returns (uint256)
nominatedOwner
viewfunction nominatedOwner() view returns (address)
noTransactions
viewfunction noTransactions() view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
REDUCED_DECIMALS
viewfunction REDUCED_DECIMALS() view returns (uint256)
targetChain
viewfunction targetChain() view returns (uint256)
targetToken
viewfunction targetToken() view returns (address)
token
viewfunction token() view returns (address)
transactions
viewfunction transactions(uint256) view returns (address user, uint64 amount, uint32 timestamp)
acceptOwnership
nonpayablefunction acceptOwnership()
depart
nonpayablefunction depart(uint256 start, uint256 end, bytes32 hash)
disembark
nonpayablefunction disembark(tuple batchData)
disputeBatch
nonpayablefunction disputeBatch(uint256 batchNo, bytes32 hash)
embark
nonpayablefunction embark(uint256 amount)
embarkWithRecipient
nonpayablefunction embarkWithRecipient(uint256 amount, address recipient)
embarkWithSignature
nonpayablefunction embarkWithSignature(uint256 _amount, address recipient, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s)
execute
nonpayablefunction execute(address _to, uint256 _value, bytes _data) returns (bool, bytes)
jettison
nonpayablefunction jettison(uint256 index, bool cancel)
jettisonGroup
nonpayablefunction jettisonGroup(uint256[] indexes, bool cancel)
nominateNewOwner
nonpayablefunction nominateNewOwner(address newOwner)
pause
nonpayablefunction pause()
removeBatches
nonpayablefunction removeBatches(uint256 batchNo)
sendTokens
nonpayablefunction sendTokens(address receiver, uint256 amount)
setCaptain
nonpayablefunction setCaptain(address newCaptain)
setCrewmember
nonpayablefunction setCrewmember(address crewmember, bool set)
setFee
nonpayablefunction setFee(uint256 _FEE_RATE, uint256 _FEE_MIN, uint256 _FEE_MAX)
setFirstOfficer
nonpayablefunction setFirstOfficer(address newFirstOfficer)
setMinWaitPeriods
nonpayablefunction setMinWaitPeriods(uint256 _MIN_WAIT_PERIOD_ADD, uint256 _MIN_WAIT_PERIOD_EXECUTE)
toggleFeeExemptAddr
nonpayablefunction toggleFeeExemptAddr(address addr)
unPause
nonpayablefunction unPause()
events
Cancelled
event Cancelled(uint256 index, bool cancel)
Depart
event Depart(uint256 batchNo, uint256 start, uint256 end, bytes32 hash)
Disembark
event Disembark(uint256 start, uint256 end, bytes32 hash)
DisputeBatch
event DisputeBatch(uint256 batchNo, bytes32 hash)
Embark
event Embark(address indexed sender, uint256 index, uint256 amount, uint256 amountAfterFee, uint256 timestamp)
FeeExemptToggled
event FeeExemptToggled(address addr, bool is_fee_exempt)
OwnerChanged
event OwnerChanged(address indexed previousOwner, address indexed newOwner)
OwnerNominated
event OwnerNominated(address indexed newOwner)
Pause
event Pause(bool paused)
RemoveBatch
event RemoveBatch(uint256 batchNo)
SetCaptain
event SetCaptain(address indexed previousCaptain, address indexed newCaptain)
SetCrewmember
event SetCrewmember(address indexed crewmember, bool set)
SetFee
event SetFee(uint256 previousFeeRate, uint256 feeRate, uint256 previousFeeMin, uint256 feeMin, uint256 previousFeeMax, uint256 feeMax)
SetFirstOfficer
event SetFirstOfficer(address indexed previousFirstOfficer, address indexed newFirstOfficer)
SetMinWaitPeriods
event SetMinWaitPeriods(uint256 previousMinWaitAdd, uint256 previousMinWaitExecute, uint256 minWaitAdd, uint256 minWaitExecute)
errors
No errors.
creation bytecode
0x610100604052610e1060075562013560600855600a600955674563918244f40000600a5568056bc75e2d63100000600b553480156200003d57600080fd5b5060405162003ea938038062003ea98339810160408190526200006091620000b2565b60c0929092526001600160a01b0392831660805290911660a052600080546001600160a01b0319163317905560e052620000fb565b80516001600160a01b0381168114620000ad57600080fd5b919050565b60008060008060808587031215620000c957600080fd5b620000d48562000095565b935060208501519250620000eb6040860162000095565b6060959095015193969295505050565b60805160a05160c05160e051613d2062000189600039600081816105350152818161137c0152611bbc0152600081816106ce015281816113c00152611b450152600081816103c30152818161139e0152611be20152600081816107b1015281816108ee01528181610ae5015281816113e2015281816114e201528181611b9001526128c90152613d206000f3fe608060405234801561001057600080fd5b50600436106103205760003560e01c80638456cb59116101a7578063c2f6afe5116100ee578063e050be5711610097578063f7b188a511610071578063f7b188a5146107a4578063fc0c546a146107ac578063fd433ec0146107d357600080fd5b8063e050be571461074e578063f40e349f14610771578063f55ebb8f1461078457600080fd5b8063d2c1626c116100c8578063d2c1626c146106f8578063d9fb265d1461070b578063de7974a41461072e57600080fd5b8063c2f6afe5146106b6578063cd84980e146106c9578063cdbdfdc2146106f057600080fd5b80639b8c624a11610150578063b61325cd1161012a578063b61325cd14610683578063b61d27f61461068c578063c2624e1e146106ad57600080fd5b80639b8c624a1461060e578063a3a6d9e814610621578063b32c4d8d1461063457600080fd5b80638e714a72116101815780638e714a7214610587578063907c6c2e1461059a5780639ace38c2146105ba57600080fd5b80638456cb59146105575780638b928bd31461055f5780638da5cb5b1461056757600080fd5b80633beaf5261161026b5780635c975abb1161021457806366e64f97116101ee57806366e64f971461051c57806379ba5097146105285780638304e6d21461053057600080fd5b80635c975abb146104c95780635f62fa6f146104e6578063652dfc3b1461050957600080fd5b806353a47bb71161024557806353a47bb71461048d57806359c13403146104ad5780635b65b9ab146104b657600080fd5b80633beaf526146104395780634a474aa31461044c578063525862f91461045f57600080fd5b8063165282c3116102cd57806333032dd0116102a757806333032dd01461040a57806333efa2b21461041357806336f734c11461042657600080fd5b8063165282c3146103a25780632d11c58a146103b5578063327107f7146103be57600080fd5b806307cca166116102fe57806307cca16614610369578063081c46241461037c5780631627540c1461038f57600080fd5b8063024faa8c1461032557806305ab421d1461034157806305c211d214610356575b600080fd5b61032e60085481565b6040519081526020015b60405180910390f35b61035461034f366004613633565b6107e6565b005b61035461036436600461365d565b610918565b610354610377366004613697565b610cb7565b61035461038a3660046136ce565b610dc2565b61035461039d3660046136f3565b610e4d565b61032e6103b036600461370e565b610f3d565b61032e60095481565b6103e57f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610338565b61032e60075481565b610354610421366004613730565b610fbc565b61035461043436600461376b565b611752565b61032e61044736600461370e565b611b3f565b61035461045a366004613797565b611d67565b61047261046d36600461370e565b611ee7565b60408051938452602084019290925290820152606001610338565b6001546103e59073ffffffffffffffffffffffffffffffffffffffff1681565b61032e600a5481565b6103546104c436600461376b565b612000565b6006546104d69060ff1681565b6040519015158152602001610338565b6104d66104f43660046136f3565b60056020526000908152604090205460ff1681565b6103546105173660046137b0565b612123565b61032e6402540be40081565b6103546121e7565b61032e7f000000000000000000000000000000000000000000000000000000000000000081565b610354612324565b600f5461032e565b6000546103e59073ffffffffffffffffffffffffffffffffffffffff1681565b6103546105953660046136f3565b61240f565b6105ad6105a836600461370e565b61251e565b6040516103389190613836565b6105cd6105c8366004613797565b6126ae565b6040805173ffffffffffffffffffffffffffffffffffffffff909416845267ffffffffffffffff909216602084015263ffffffff1690820152606001610338565b61035461061c3660046136f3565b61272f565b61035461062f3660046138cd565b61283e565b610647610642366004613797565b61294e565b6040805167ffffffffffffffff96871681529486166020860152928516928401929092529092166060820152608081019190915260a001610338565b61032e600e5481565b61069f61069a366004613942565b6129ce565b6040516103389291906139ed565b61032e600b5481565b6103546106c436600461370e565b612b5a565b61032e7f000000000000000000000000000000000000000000000000000000000000000081565b600c5461032e565b6103546107063660046136f3565b612cae565b6104d66107193660046136f3565b60046020526000908152604090205460ff1681565b6003546103e59073ffffffffffffffffffffffffffffffffffffffff1681565b6104d661075c366004613797565b600d6020526000908152604090205460ff1681565b61035461077f36600461370e565b612dbd565b6002546103e59073ffffffffffffffffffffffffffffffffffffffff1681565b6103546130da565b6103e57f000000000000000000000000000000000000000000000000000000000000000081565b6103546107e1366004613797565b613165565b60005473ffffffffffffffffffffffffffffffffffffffff16331461086c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f74206f776e6572000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166108e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f5a65726f2061646472657373206e6f7420616c6c6f77656400000000000000006044820152606401610863565b6109147f00000000000000000000000000000000000000000000000000000000000000008383613172565b5050565b60065460ff1615610985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f50617573656400000000000000000000000000000000000000000000000000006044820152606401610863565b6402540be4006109958184613a76565b61099f9190613ab1565b336000908152600560205260408120549193509060ff16156109c3575060006109f7565b6109f46109ec600a54612710600954876109dd9190613ab1565b6109e79190613a76565b6132e2565b600b546132f8565b90505b808311610a60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f416d6f756e7420746f6f206c6f770000000000000000000000000000000000006044820152606401610863565b67ffffffffffffffff610a786402540be40085613a76565b1115610ae0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f416d6f756e7420746f6f206869676800000000000000000000000000000000006044820152606401610863565b610b0c7f0000000000000000000000000000000000000000000000000000000000000000333086613307565b60006402540be400610b1e8386613ac8565b610b289190613a76565b600c5490915073ffffffffffffffffffffffffffffffffffffffff8416907f0250c838bae2cda1e214f0925d41846180714450539039d6fd90a4121d98738e9086610b826402540be40067ffffffffffffffff8716613ab1565b6040805193845260208401929092529082015242606082015260800160405180910390a26040805160608101825273ffffffffffffffffffffffffffffffffffffffff948516815267ffffffffffffffff9283166020820190815263ffffffff428116938301938452600c805460018101825560009190915292517fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c79093018054925194519091167c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff9490951674010000000000000000000000000000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090921692909616919091171716179091555050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610d38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f74206f776e657200000000000000000000000000000000000000000000006044820152606401610863565b73ffffffffffffffffffffffffffffffffffffffff821660008181526004602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f6a5f1fd939b33c2480886a44e0780806ce19041ef2c91734cb752c54288ca5ac910160405180910390a25050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610e43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f74206f776e657200000000000000000000000000000000000000000000006044820152606401610863565b6109148282613480565b60005473ffffffffffffffffffffffffffffffffffffffff163314610ece576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f74206f776e657200000000000000000000000000000000000000000000006044820152606401610863565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290600090a250565b6000825b828111610fa557600c8181548110610f5b57610f5b613adb565b600091825260209091200154610f939074010000000000000000000000000000000000000000900467ffffffffffffffff1683613b0a565b9150610f9e81613b1d565b9050610f41565b50610fb56402540be40082613ab1565b9392505050565b60065460ff1615611029576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f50617573656400000000000000000000000000000000000000000000000000006044820152606401610863565b60035473ffffffffffffffffffffffffffffffffffffffff1633146110aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e6f74206669727374206f6666696365720000000000000000000000000000006044820152606401610863565b600e8054600091600f9190836110bf83613b1d565b91905055815481106110d3576110d3613adb565b60009182526020918290206040805160a0810182526002909302909101805467ffffffffffffffff8082168552680100000000000000008204811695850195909552700100000000000000000000000000000000810485169284019290925278010000000000000000000000000000000000000000000000009091049092166060820181905260019092015460808201529150156111cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f42617463682064697370757465640000000000000000000000000000000000006044820152606401610863565b805167ffffffffffffffff16823514611242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f57726f6e672073746172740000000000000000000000000000000000000000006044820152606401610863565b806020015167ffffffffffffffff1660018380602001906112639190613b55565b8451611279925067ffffffffffffffff16613b0a565b6112839190613ac8565b146112ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f57726f6e672073697a65000000000000000000000000000000000000000000006044820152606401610863565b60085460408201516113069067ffffffffffffffff1642613ac8565b101561136e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f546f6f20736f6f6e0000000000000000000000000000000000000000000000006044820152606401610863565b8051604051600091611476917f0000000000000000000000000000000000000000000000000000000000000000917f0000000000000000000000000000000000000000000000000000000000000000917f0000000000000000000000000000000000000000000000000000000000000000917f000000000000000000000000000000000000000000000000000000000000000091602001948552606093841b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090811660208701526034860193909352921b16605483015260c01b7fffffffffffffffff00000000000000000000000000000000000000000000000016606882015260700190565b60405160208183030381529060405280519060200120905060005b61149e6020850185613b55565b905081101561168757600d600082856000015167ffffffffffffffff166114c59190613b0a565b815260208101919091526040016000205460ff16611588576115887f000000000000000000000000000000000000000000000000000000000000000061150e6020870187613b55565b8481811061151e5761151e613adb565b61153492602060609092020190810191506136f3565b6402540be4006115476020890189613b55565b8681811061155757611557613adb565b905060600201602001602081019061156f9190613bc3565b67ffffffffffffffff166115839190613ab1565b613172565b816115966020860186613b55565b838181106115a6576115a6613adb565b6115bc92602060609092020190810191506136f3565b6115c96020870187613b55565b848181106115d9576115d9613adb565b90506060020160200160208101906115f19190613bc3565b60405160200161165e9392919092835260609190911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602083015260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166034820152603c0190565b6040516020818303038152906040528051906020012091508061168090613b1d565b9050611491565b50808260800151146116f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f57726f6e672068617368000000000000000000000000000000000000000000006044820152606401610863565b81516020808401516040805167ffffffffffffffff9485168152939091169183019190915281018290527fce67cdf2a5dbd123a7aa5e9fd21b2136e06d33eb30e024ee5c491a6ec934a48b906060015b60405180910390a1505050565b60065460ff16156117bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f50617573656400000000000000000000000000000000000000000000000000006044820152606401610863565b60025473ffffffffffffffffffffffffffffffffffffffff163314611840576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4e6f74206361707461696e0000000000000000000000000000000000000000006044820152606401610863565b600f5415801561184e575082155b806118bf5750600f54158015906118bf5750600f805461187090600190613ac8565b8154811061188057611880613adb565b60009182526020909120600290910201546118b29068010000000000000000900467ffffffffffffffff166001613bed565b67ffffffffffffffff1683145b611925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f57726f6e672073746172740000000000000000000000000000000000000000006044820152606401610863565b82821015801561193c575067ffffffffffffffff82105b6119a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f57726f6e6720656e6400000000000000000000000000000000000000000000006044820152606401610863565b6040805160a08101825267ffffffffffffffff80861682528481166020830190815242821693830193845260006060840181815260808501878152600f80546001818101835594829052965160029097027f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80281018054965199519451881678010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff95891670010000000000000000000000000000000002959095166fffffffffffffffffffffffffffffffff9a891668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000000000000000000090981699909816989098179590951797909716949094171790935590517f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8039091015590547fe078fb854f34cd8ca5f749fe2e680b692ef7df5e057026369a30c8965a3219ca91611b1d91613ac8565b6040805191825260208201869052810184905260608101839052608001611745565b604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000606090811b8216848601527f000000000000000000000000000000000000000000000000000000000000000060548501527f0000000000000000000000000000000000000000000000000000000000000000901b1660748301527fffffffffffffffff00000000000000000000000000000000000000000000000060c086901b1660888301528251808303607001815260909092019092528051910120600090835b838111611d5d5781600c8281548110611c6c57611c6c613adb565b600091825260209091200154600c805473ffffffffffffffffffffffffffffffffffffffff9092169184908110611ca557611ca5613adb565b9060005260206000200160000160149054906101000a900467ffffffffffffffff16604051602001611d349392919092835260609190911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602083015260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166034820152603c0190565b60405160208183030381529060405280519060200120915080611d5690613b1d565b9050611c51565b5090505b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611de8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f74206f776e657200000000000000000000000000000000000000000000006044820152606401610863565b80600e541115611e54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f426174636820616c7265616479206578656375746564000000000000000000006044820152606401610863565b600f54811015611eb057600f805480611e6f57611e6f613c0e565b60008281526020812060027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90930192830201818155600101559055611e54565b6040518181527f992e817214d6c9aa9d52b4faf1913b1d1321ce1a6ff98258e88a5d78e71a0183906020015b60405180910390a150565b60008060008060075442611efb9190613ac8565b600c5490915086108015611f52575080600c8781548110611f1e57611f1e613adb565b6000918252602090912001547c0100000000000000000000000000000000000000000000000000000000900463ffffffff16105b15611ff8578593506001611f668686613b0a565b611f709190613ac8565b600c549093508310611f8e57600c54611f8b90600190613ac8565b92505b80600c8481548110611fa257611fa2613adb565b6000918252602090912001547c0100000000000000000000000000000000000000000000000000000000900463ffffffff1610611feb5782611fe381613c3d565b935050611f8e565b611ff58484611b3f565b91505b509250925092565b60005473ffffffffffffffffffffffffffffffffffffffff163314612081576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f74206f776e657200000000000000000000000000000000000000000000006044820152606401610863565b6064831061208e57600080fd5b68056bc75e2d6310000082106120a357600080fd5b683635c9adc5dea0000081106120b857600080fd5b600954600a54600b54604080519384526020840187905283019190915260608201849052608082015260a081018290527f0bc992b511038194430d3b93b01ed9d312562944591645c91130b33b0d920d139060c00160405180910390a1600992909255600a55600b55565b60005473ffffffffffffffffffffffffffffffffffffffff1633146121a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f74206f776e657200000000000000000000000000000000000000000000006044820152606401610863565b60005b828110156121e1576121d18484838181106121c4576121c4613adb565b9050602002013583613480565b6121da81613b1d565b90506121a7565b50505050565b60015473ffffffffffffffffffffffffffffffffffffffff16331461228e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527f2063616e20616363657074206f776e65727368697000000000000000000000006064820152608401610863565b6001546000805460405173ffffffffffffffffffffffffffffffffffffffff93841693909116917fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91a360018054600080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff841617909155169055565b3360009081526004602052604090205460ff1680612359575060005473ffffffffffffffffffffffffffffffffffffffff1633145b8061237b575060025473ffffffffffffffffffffffffffffffffffffffff1633145b8061239d575060035473ffffffffffffffffffffffffffffffffffffffff1633145b612403576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e6f7420637265776d656d6265720000000000000000000000000000000000006044820152606401610863565b61240d60016135ab565b565b60005473ffffffffffffffffffffffffffffffffffffffff163314612490576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f74206f776e657200000000000000000000000000000000000000000000006044820152606401610863565b60025460405173ffffffffffffffffffffffffffffffffffffffff8084169216907ff18effac70e61c427eeb822dabc8c030ad0d6178e38899b5436e10f9b599028f90600090a3600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b604080518082019091526060602082015282815261253c8383613ac8565b612547906001613b0a565b67ffffffffffffffff81111561255f5761255f613c72565b6040519080825280602002602001820160405280156125c857816020015b60408051606081018252600080825260208083018290529282015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191018161257d5790505b506020820152825b8281116126a757600c81815481106125ea576125ea613adb565b600091825260209182902060408051606081018252929091015473ffffffffffffffffffffffffffffffffffffffff8116835274010000000000000000000000000000000000000000810467ffffffffffffffff16838501527c0100000000000000000000000000000000000000000000000000000000900463ffffffff16908201529083015161267b8684613ac8565b8151811061268b5761268b613adb565b6020026020010181905250806126a090613b1d565b90506125d0565b5092915050565b600c81815481106126be57600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff8116915074010000000000000000000000000000000000000000810467ffffffffffffffff16907c0100000000000000000000000000000000000000000000000000000000900463ffffffff1683565b60005473ffffffffffffffffffffffffffffffffffffffff1633146127b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f74206f776e657200000000000000000000000000000000000000000000006044820152606401610863565b60035460405173ffffffffffffffffffffffffffffffffffffffff8084169216907fd64fbe94bc529b7e39db059497f4956a94c5ade6b2df42325818876b1c013bcd90600090a3600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008461284b578761286d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b6040517fd505accf000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018290526064810188905260ff8616608482015260a4810185905260c481018490529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063d505accf9060e401600060405180830381600087803b15801561292257600080fd5b505af1158015612936573d6000803e3d6000fd5b505050506129448188610918565b5050505050505050565b600f818154811061295e57600080fd5b60009182526020909120600290910201805460019091015467ffffffffffffffff8083169350680100000000000000008304811692700100000000000000000000000000000000810482169278010000000000000000000000000000000000000000000000009091049091169085565b6000805460609073ffffffffffffffffffffffffffffffffffffffff163314612a53576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f74206f776e657200000000000000000000000000000000000000000000006044820152606401610863565b821580612a77575060008673ffffffffffffffffffffffffffffffffffffffff163b115b612add576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f43616e206e6f742063616c6c20612066756e6374696f6e206f6e206120454f416044820152606401610863565b6000808773ffffffffffffffffffffffffffffffffffffffff16878787604051612b08929190613ca1565b60006040518083038185875af1925050503d8060008114612b45576040519150601f19603f3d011682016040523d82523d6000602084013e612b4a565b606091505b5090999098509650505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314612bdb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f74206f776e657200000000000000000000000000000000000000000000006044820152606401610863565b610e108210158015612bef5750610e108110155b612c55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f506572696f6420746f6f2073686f7274000000000000000000000000000000006044820152606401610863565b6007546008546040805192835260208301919091528101839052606081018290527f7e8d6c37faafc79578015f383c6a5d31a846c93210a9d639e01843943e9fd5f89060800160405180910390a1600791909155600855565b60005473ffffffffffffffffffffffffffffffffffffffff163314612d2f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f74206f776e657200000000000000000000000000000000000000000000006044820152606401610863565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260056020908152604091829020805460ff808216157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090921682179092558351948552161515908301527f017149285d09d144b60699c89d370abbf31f058fc660d50c3881391f93af1bd79101611edc565b3360009081526004602052604090205460ff1680612df2575060005473ffffffffffffffffffffffffffffffffffffffff1633145b80612e14575060025473ffffffffffffffffffffffffffffffffffffffff1633145b80612e36575060035473ffffffffffffffffffffffffffffffffffffffff1633145b612e9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e6f7420637265776d656d6265720000000000000000000000000000000000006044820152606401610863565b80600f8381548110612eb057612eb0613adb565b90600052602060002090600202016001015414612f29576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f57726f6e672068617368000000000000000000000000000000000000000000006044820152606401610863565b81600e541115612f95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f426174636820616c7265616479206578656375746564000000000000000000006044820152606401610863565b600f8281548110612fa857612fa8613adb565b60009182526020909120600290910201547801000000000000000000000000000000000000000000000000900467ffffffffffffffff1615613046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f426174636820616c7265616479206469737075746564000000000000000000006044820152606401610863565b6001600f838154811061305b5761305b613adb565b906000526020600020906002020160000160186101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555061309c60016135ab565b60408051838152602081018390527f2292bdbb5281fd856c02c8a97b23b28fd9c47e895224d5262ef02c9647c1ebc091015b60405180910390a15050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461315b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f74206f776e657200000000000000000000000000000000000000000000006044820152606401610863565b61240d60006135ab565b61316f8133610918565b50565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905291516000928392908716916132099190613cb1565b6000604051808303816000865af19150503d8060008114613246576040519150601f19603f3d011682016040523d82523d6000602084013e61324b565b606091505b50915091508180156132755750805115806132755750808060200190518101906132759190613ccd565b6132db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f53540000000000000000000000000000000000000000000000000000000000006044820152606401610863565b5050505050565b60008183116132f15781610fb5565b5090919050565b60008183106132f15781610fb5565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905291516000928392908816916133a69190613cb1565b6000604051808303816000865af19150503d80600081146133e3576040519150601f19603f3d011682016040523d82523d6000602084013e6133e8565b606091505b50915091508180156134125750805115806134125750808060200190518101906134129190613ccd565b613478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f53544600000000000000000000000000000000000000000000000000000000006044820152606401610863565b505050505050565b600e5415806134d55750600f6001600e5461349b9190613ac8565b815481106134ab576134ab613adb565b600091825260209091206002909102015468010000000000000000900467ffffffffffffffff1682115b61353b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f5472616e73616374696f6e20616c7265616479206578656375746564000000006044820152606401610863565b6000828152600d602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168415159081179091558251858152918201527fdf11c22eefc5804dfbf9c567c2522c17e93416278a0f8a6f8e8f327ee6cb032e91016130ce565b600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168215159081179091556040519081527f9422424b175dda897495a07b091ef74a3ef715cf6d866fc972954c1c7f45930490602001611edc565b803573ffffffffffffffffffffffffffffffffffffffff8116811461362e57600080fd5b919050565b6000806040838503121561364657600080fd5b61364f8361360a565b946020939093013593505050565b6000806040838503121561367057600080fd5b823591506136806020840161360a565b90509250929050565b801515811461316f57600080fd5b600080604083850312156136aa57600080fd5b6136b38361360a565b915060208301356136c381613689565b809150509250929050565b600080604083850312156136e157600080fd5b8235915060208301356136c381613689565b60006020828403121561370557600080fd5b610fb58261360a565b6000806040838503121561372157600080fd5b50508035926020909101359150565b60006020828403121561374257600080fd5b813567ffffffffffffffff81111561375957600080fd5b820160408185031215610fb557600080fd5b60008060006060848603121561378057600080fd5b505081359360208301359350604090920135919050565b6000602082840312156137a957600080fd5b5035919050565b6000806000604084860312156137c557600080fd5b833567ffffffffffffffff808211156137dd57600080fd5b818601915086601f8301126137f157600080fd5b81358181111561380057600080fd5b8760208260051b850101111561381557600080fd5b6020928301955093505084013561382b81613689565b809150509250925092565b60006020808352606080840185518386015282860151604080818801528282518085526080890191508684019450600093505b808410156138c0578451805173ffffffffffffffffffffffffffffffffffffffff1683528781015167ffffffffffffffff168884015283015163ffffffff1683830152938601936001939093019290850190613869565b5098975050505050505050565b600080600080600080600060e0888a0312156138e857600080fd5b873596506138f86020890161360a565b955060408801359450606088013561390f81613689565b9350608088013560ff8116811461392557600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806000806060858703121561395857600080fd5b6139618561360a565b935060208501359250604085013567ffffffffffffffff8082111561398557600080fd5b818701915087601f83011261399957600080fd5b8135818111156139a857600080fd5b8860208285010111156139ba57600080fd5b95989497505060200194505050565b60005b838110156139e45781810151838201526020016139cc565b50506000910152565b82151581526040602082015260008251806040840152613a148160608501602087016139c9565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082613aac577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8082028115828204841417611d6157611d61613a47565b81810381811115611d6157611d61613a47565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80820180821115611d6157611d61613a47565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b4e57613b4e613a47565b5060010190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613b8a57600080fd5b83018035915067ffffffffffffffff821115613ba557600080fd5b6020019150606081023603821315613bbc57600080fd5b9250929050565b600060208284031215613bd557600080fd5b813567ffffffffffffffff81168114610fb557600080fd5b67ffffffffffffffff8181168382160190808211156126a7576126a7613a47565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600081613c4c57613c4c613a47565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b8183823760009101908152919050565b60008251613cc38184602087016139c9565b9190910192915050565b600060208284031215613cdf57600080fd5b8151610fb58161368956fea264697066735822122069e7c5f063e7a539f17de9d4599662f3a8e3777ea146d5d6195727dcb75e03ee64736f6c63430008110033000000000000000000000000853d955acef822db058eb8505911ed77f175b99e0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000b4c1544cb4163f4c2eca1ae9ce999f63892d912a0000000000000000000000000000000000000000000000000000000000000144