0 txs
0 calls
constructor
constructor(address _inbox, address _bondingManagerAddr, address _ticketBrokerAddr, address _tokenAddr, address _l1LPTGatewayAddr, address _l2MigratorAddr)
functions
bondingManagerAddr
viewfunction bondingManagerAddr() view returns (address)
bridgeMinterAddr
viewfunction bridgeMinterAddr() view returns (address)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getMigrateDelegatorParams
viewfunction getMigrateDelegatorParams(address _l1Addr, address _l2Addr) view returns (bytes data, tuple params)
getMigrateSenderParams
viewfunction getMigrateSenderParams(address _l1Addr, address _l2Addr) view returns (bytes data, tuple params)
getMigrateUnbondingLocksParams
viewfunction getMigrateUnbondingLocksParams(address _l1Addr, address _l2Addr, uint256[] _unbondingLockIds) view returns (bytes data, tuple params)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
inbox
viewfunction inbox() view returns (address)
l1LPTGatewayAddr
viewfunction l1LPTGatewayAddr() view returns (address)
l2MigratorAddr
viewfunction l2MigratorAddr() view returns (address)
paused
viewfunction paused() view returns (bool)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
ticketBrokerAddr
viewfunction ticketBrokerAddr() view returns (address)
tokenAddr
viewfunction tokenAddr() view returns (address)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
migrateDelegator
payablefunction migrateDelegator(address _l1Addr, address _l2Addr, bytes _sig, uint256 _maxGas, uint256 _gasPriceBid, uint256 _maxSubmissionCost) payable
migrateETH
payablefunction migrateETH(uint256 _maxGas, uint256 _gasPriceBid, uint256 _maxSubmissionCost) payable
migrateLPT
payablefunction migrateLPT(uint256 _maxGas, uint256 _gasPriceBid, uint256 _maxSubmissionCost) payable
migrateSender
payablefunction migrateSender(address _l1Addr, address _l2Addr, bytes _sig, uint256 _maxGas, uint256 _gasPriceBid, uint256 _maxSubmissionCost) payable
migrateUnbondingLocks
payablefunction migrateUnbondingLocks(address _l1Addr, address _l2Addr, uint256[] _unbondingLockIds, bytes _sig, uint256 _maxGas, uint256 _gasPriceBid, uint256 _maxSubmissionCost) payable
pause
nonpayablefunction pause()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setBridgeMinter
nonpayablefunction setBridgeMinter(address _bridgeMinterAddr)
setL2Migrator
nonpayablefunction setL2Migrator(address _l2MigratorAddr)
unpause
nonpayablefunction unpause()
events
BridgeMinterUpdate
event BridgeMinterUpdate(address bridgeMinter)
L2MigratorUpdate
event L2MigratorUpdate(address l2Migrator)
MigrateDelegatorInitiated
event MigrateDelegatorInitiated(uint256 indexed seqNo, (address l1Addr, address l2Addr, uint256 stake, uint256 delegatedStake, uint256 fees, address delegate) params)
MigrateSenderInitiated
event MigrateSenderInitiated(uint256 indexed seqNo, (address l1Addr, address l2Addr, uint256 deposit, uint256 reserve) params)
MigrateUnbondingLocksInitiated
event MigrateUnbondingLocksInitiated(uint256 indexed seqNo, (address l1Addr, address l2Addr, uint256 total, uint256[] unbondingLockIds, address delegate) params)
Paused
event Paused(address account)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
TxToL2
event TxToL2(address indexed from, address indexed to, uint256 indexed seqNum, bytes data)
Unpaused
event Unpaused(address account)
errors
No errors.
creation bytecode
0x6102406040527f0988862b47ed3bbfb4a6ca37401c7f403b193459aeac85ae89b67007a66b7a8f6101e0908152507f61aed36780e7480ed685cb5ea394df4fb8da267b9f97daeb24db6c660f711697610200908152507f028d23c953a67a525f843967e7e61f06d72d4a0aed8e3133159bee065e32f81f610220908152503480156200008a57600080fd5b5060405162004d6338038062004d638339818101604052810190620000b091906200063d565b6040518060400160405280601381526020017f4c69766570656572204c314d69677261746f72000000000000000000000000008152506040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250878073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250505060008280519060200120905060008280519060200120905060007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f90508261010081815250508161012081815250504660c08181525050620001bc8184846200036660201b60201c565b60a081815250503073ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff168152505080610140818152505050505050506000600160006101000a81548160ff021916908315150217905550620002356000801b33620003a260201b60201c565b8473ffffffffffffffffffffffffffffffffffffffff166101608173ffffffffffffffffffffffffffffffffffffffff16815250508373ffffffffffffffffffffffffffffffffffffffff166101808173ffffffffffffffffffffffffffffffffffffffff16815250508273ffffffffffffffffffffffffffffffffffffffff166101a08173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff166101c08173ffffffffffffffffffffffffffffffffffffffff168152505080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200035a6200049360201b60201c565b5050505050506200081d565b600083838346306040516020016200038395949392919062000720565b6040516020818303038152906040528051906020012090509392505050565b620003b482826200054a60201b60201c565b6200048f57600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000434620005b460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b620004a3620005bc60201b60201c565b15620004e6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004dd90620007de565b60405180910390fd5b60018060006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25862000531620005b460201b60201c565b60405162000540919062000800565b60405180910390a1565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b6000600160009054906101000a900460ff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200060582620005d8565b9050919050565b6200061781620005f8565b81146200062357600080fd5b50565b60008151905062000637816200060c565b92915050565b60008060008060008060c087890312156200065d576200065c620005d3565b5b60006200066d89828a0162000626565b96505060206200068089828a0162000626565b95505060406200069389828a0162000626565b9450506060620006a689828a0162000626565b9350506080620006b989828a0162000626565b92505060a0620006cc89828a0162000626565b9150509295509295509295565b6000819050919050565b620006ee81620006d9565b82525050565b6000819050919050565b6200070981620006f4565b82525050565b6200071a81620005f8565b82525050565b600060a082019050620007376000830188620006e3565b620007466020830187620006e3565b620007556040830186620006e3565b620007646060830185620006fe565b6200077360808301846200070f565b9695505050505050565b600082825260208201905092915050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000620007c66010836200077d565b9150620007d3826200078e565b602082019050919050565b60006020820190508181036000830152620007f981620007b7565b9050919050565b60006020820190506200081760008301846200070f565b92915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e0516102005161022051614466620008fd6000396000611915015260006107330152600061111c0152600081816110700152818161165401526116c50152600081816110ab01528181611618015261170201526000818161125a01526112f40152600081816108f401528181610c8e0152611a33015260006124500152600061249201526000612471015260006123a6015260006123fc01526000612425015260008181611a570152611f3201526144666000f3fe6080604052600436106101a05760003560e01c806378da3574116100ec578063a375fa521161008a578063de1ec2d611610064578063de1ec2d61461058a578063e40309ca146105b5578063e89320e5146105d1578063fb0e722b146105fc576101a7565b8063a375fa521461051c578063d547741f14610538578063d98ef07014610561576101a7565b806391d14854116100c657806391d148541461044d5780639ca228bc1461048a5780639cb88aa6146104c8578063a217fddf146104f1576101a7565b806378da3574146103ef5780638456cb591461040b5780638f2c17ed14610422576101a7565b806336568abe11610159578063518fe44611610133578063518fe4461461035257806359d959151461036e5780635c975abb146103995780635fbe4d1d146103c4576101a7565b806336568abe146102d457806336e9feb9146102fd5780633f4ba83a1461033b576101a7565b806301ffc9a7146101ac578063236cc70c146101e9578063248a9ca31461021457806328293d51146102515780632f2ff15d1461026d578063329b114e14610296576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101d360048036038101906101ce9190612a85565b610627565b6040516101e09190612acd565b60405180910390f35b3480156101f557600080fd5b506101fe6106a1565b60405161020b9190612b29565b60405180910390f35b34801561022057600080fd5b5061023b60048036038101906102369190612b7a565b6106c5565b6040516102489190612bb6565b60405180910390f35b61026b60048036038101906102669190612cee565b6106e4565b005b34801561027957600080fd5b50610294600480360381019061028f9190612dd0565b6108bd565b005b3480156102a257600080fd5b506102bd60048036038101906102b89190612e10565b6108e6565b6040516102cb929190612f82565b60405180910390f35b3480156102e057600080fd5b506102fb60048036038101906102f69190612dd0565b610bfd565b005b34801561030957600080fd5b50610324600480360381019061031f91906130f0565b610c80565b604051610332929190613284565b60405180910390f35b34801561034757600080fd5b50610350610f0f565b005b61036c600480360381019061036791906132bb565b610f2f565b005b34801561037a57600080fd5b5061038361106e565b6040516103909190612b29565b60405180910390f35b3480156103a557600080fd5b506103ae611092565b6040516103bb9190612acd565b60405180910390f35b3480156103d057600080fd5b506103d96110a9565b6040516103e69190612b29565b60405180910390f35b6104096004803603810190610404919061330e565b6110cd565b005b34801561041757600080fd5b50610420611238565b005b34801561042e57600080fd5b50610437611258565b6040516104449190612b29565b60405180910390f35b34801561045957600080fd5b50610474600480360381019061046f9190612dd0565b61127c565b6040516104819190612acd565b60405180910390f35b34801561049657600080fd5b506104b160048036038101906104ac9190612e10565b6112e6565b6040516104bf929190613412565b60405180910390f35b3480156104d457600080fd5b506104ef60048036038101906104ea9190613442565b61147e565b005b3480156104fd57600080fd5b5061050661150e565b6040516105139190612bb6565b60405180910390f35b610536600480360381019061053191906132bb565b611515565b005b34801561054457600080fd5b5061055f600480360381019061055a9190612dd0565b6117e7565b005b34801561056d57600080fd5b5061058860048036038101906105839190613442565b611810565b005b34801561059657600080fd5b5061059f6118a0565b6040516105ac9190612b29565b60405180910390f35b6105cf60048036038101906105ca919061330e565b6118c6565b005b3480156105dd57600080fd5b506105e6611a31565b6040516105f39190612b29565b60405180910390f35b34801561060857600080fd5b50610611611a55565b60405161061e91906134ce565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061069a575061069982611a79565b5b9050919050565b60018054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000838152602001908152602001600020600101549050919050565b6106ec611092565b1561072c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072390613546565b60405180910390fd5b6107f089897f00000000000000000000000000000000000000000000000000000000000000008c8c8c8c6040516020016107679291906135e1565b6040516020818303038152906040528051906020012060405160200161079094939291906135fa565b6040516020818303038152906040528051906020012088888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611ae3565b60008061083f8b8b8b8b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050610c80565b915091506000610875600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168c86898988611c06565b9050807f68d9b81e798c334d0daecab33df19f49cbc17c77cc19f4bcb772318e19316595836040516108a7919061363f565b60405180910390a2505050505050505050505050565b6108c6826106c5565b6108d7816108d2611c25565b611c2d565b6108e18383611cca565b505050565b60606108f06128dc565b60007f0000000000000000000000000000000000000000000000000000000000000000905060008173ffffffffffffffffffffffffffffffffffffffff16639d0b2c7a877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610972929190613670565b60206040518083038186803b15801561098a57600080fd5b505afa15801561099e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c291906136ae565b905060008273ffffffffffffffffffffffffffffffffffffffff1663f595f1cc887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610a21929190613670565b60206040518083038186803b158015610a3957600080fd5b505afa158015610a4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7191906136ae565b90506000808473ffffffffffffffffffffffffffffffffffffffff1663a64ad5958a6040518263ffffffff1660e01b8152600401610aaf9190612b29565b60e06040518083038186803b158015610ac757600080fd5b505afa158015610adb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aff91906136f0565b5050509350935050506040518060c001604052808a73ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018281526020018481526020018373ffffffffffffffffffffffffffffffffffffffff168152509550631a0725d860e01b86604051602401610b929190613792565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050965050505050509250929050565b610c05611c25565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c699061381f565b60405180910390fd5b610c7c8282611daa565b5050565b6060610c8a612954565b60007f000000000000000000000000000000000000000000000000000000000000000090506000808551905060005b81811015610d8c5760008473ffffffffffffffffffffffffffffffffffffffff1663412f83b68b8a8581518110610cf357610cf261383f565b5b60200260200101516040518363ffffffff1660e01b8152600401610d18929190613670565b604080518083038186803b158015610d2f57600080fd5b505afa158015610d43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d67919061386e565b5090508084610d7691906138dd565b9350508080610d8490613933565b915050610cb9565b5060008373ffffffffffffffffffffffffffffffffffffffff1663a64ad5958a6040518263ffffffff1660e01b8152600401610dc89190612b29565b60e06040518083038186803b158015610de057600080fd5b505afa158015610df4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1891906136f0565b50505050925050506040518060a001604052808a73ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018881526020018273ffffffffffffffffffffffffffffffffffffffff16815250945063cc14c98860e01b85604051602401610ea4919061363f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050955050505050935093915050565b6000801b610f2481610f1f611c25565b611c2d565b610f2c611e8b565b50565b610f37611092565b15610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e90613546565b60405180910390fd5b600060018054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663aa0946cd6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610fe157600080fd5b505af1158015610ff5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101991906136ae565b9050611067600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1630833461104e91906138dd565b8486898960405180602001604052806000815250611f2d565b5050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600160009054906101000a900460ff16905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6110d5611092565b15611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110c90613546565b60405180910390fd5b6111af87877f00000000000000000000000000000000000000000000000000000000000000008a8a60405160200161114f9392919061397c565b6040516020818303038152906040528051906020012088888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611ae3565b6000806111bc89896108e6565b9150915060006111f2600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a86898988611c06565b9050807f5dde64de6b2af2aa82b195f67a162a4f870e84c1416562735f6653c614a099eb836040516112249190613792565b60405180910390a250505050505050505050565b6000801b61124d81611248611c25565b611c2d565b611255612062565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60606112f06129c5565b60007f000000000000000000000000000000000000000000000000000000000000000090506000808273ffffffffffffffffffffffffffffffffffffffff1663e1a589da886040518263ffffffff1660e01b81526004016113519190612b29565b60806040518083038186803b15801561136957600080fd5b505afa15801561137d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a19190613a58565b9150915060405180608001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff168152602001836000015181526020018260000151815250935063b3f5ccae60e01b846040516024016114159190613a98565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505094505050509250929050565b6000801b6114938161148e611c25565b611c2d565b816001806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f929a2735967d16cbb920d0b381d4f7702b4a860c893eecd7c1dc79a61643779f826040516115029190612b29565b60405180910390a15050565b6000801b81565b61151d611092565b1561155d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155490613546565b60405180910390fd5b6000801b6115728161156d611c25565b611c2d565b600060018054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634235dfbc6040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156115dc57600080fd5b505af11580156115f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161491906136ae565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b8152600401611691929190613670565b600060405180830381600087803b1580156116ab57600080fd5b505af11580156116bf573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d2ce7d65347f0000000000000000000000000000000000000000000000000000000000000000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16858a8a8a6040516020016117589190613ad9565b6040516020818303038152906040526040518863ffffffff1660e01b815260040161178896959493929190613b07565b6000604051808303818588803b1580156117a157600080fd5b505af11580156117b5573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f820116820180604052508101906117df9190613c15565b505050505050565b6117f0826106c5565b611801816117fc611c25565b611c2d565b61180b8383611daa565b505050565b6000801b61182581611820611c25565b611c2d565b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ea3e68d24bc6eb4dd4990f8ed051d3def10558c0165ac8a9a61535fdd5af390826040516118949190612b29565b60405180910390a15050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6118ce611092565b1561190e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190590613546565b60405180910390fd5b6119a887877f00000000000000000000000000000000000000000000000000000000000000008a8a6040516020016119489392919061397c565b6040516020818303038152906040528051906020012088888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611ae3565b6000806119b589896112e6565b9150915060006119eb600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a86898988611c06565b9050807f53a728d7c49e850e9b34c39a448454863a6fbfc7afe9fbaf257f9dd5fd1663b383604051611a1d9190613a98565b60405180910390a250505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4a90613caa565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611bc157508373ffffffffffffffffffffffffffffffffffffffff16611ba98383612104565b73ffffffffffffffffffffffffffffffffffffffff16145b611c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf790613d16565b60405180910390fd5b50505050565b6000611c19878734600089898989611f2d565b90509695505050505050565b600033905090565b611c37828261127c565b611cc657611c5c8173ffffffffffffffffffffffffffffffffffffffff166014612125565b611c6a8360001c6020612125565b604051602001611c7b929190613e15565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbd9190613e88565b60405180910390fd5b5050565b611cd4828261127c565b611da657600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611d4b611c25565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b611db4828261127c565b15611e8757600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611e2c611c25565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b611e93611092565b611ed2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec990613ef6565b60405180910390fd5b6000600160006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611f16611c25565b604051611f239190612b29565b60405180910390a1565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663679b6ded898c8a8a8e8f8c8c8c6040518a63ffffffff1660e01b8152600401611f98989796959493929190613f16565b6020604051808303818588803b158015611fb157600080fd5b505af1158015611fc5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fea91906136ae565b9050808a73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fc1d1490cf25c3b40d600dfb27c7680340ed1ab901b7e8f3551280968a3b372b08660405161204a9190613f9b565b60405180910390a48091505098975050505050505050565b61206a611092565b156120aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a190613546565b60405180910390fd5b60018060006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586120ed611c25565b6040516120fa9190612b29565b60405180910390a1565b60008061211084612361565b905061211c818461237b565b91505092915050565b6060600060028360026121389190613fbd565b61214291906138dd565b67ffffffffffffffff81111561215b5761215a612fb2565b5b6040519080825280601f01601f19166020018201604052801561218d5781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106121c5576121c461383f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106122295761222861383f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018460026122699190613fbd565b61227391906138dd565b90505b6001811115612313577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106122b5576122b461383f565b5b1a60f81b8282815181106122cc576122cb61383f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061230c90614017565b9050612276565b5060008414612357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234e9061408d565b60405180910390fd5b8091505092915050565b600061237461236e6123a2565b836124bc565b9050919050565b600080600061238a85856124ef565b9150915061239781612572565b819250505092915050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614801561241e57507f000000000000000000000000000000000000000000000000000000000000000046145b1561244b577f000000000000000000000000000000000000000000000000000000000000000090506124b9565b6124b67f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612747565b90505b90565b600082826040516020016124d192919061411a565b60405160208183030381529060405280519060200120905092915050565b6000806041835114156125315760008060006020860151925060408601519150606086015160001a905061252587828585612781565b9450945050505061256b565b60408351141561256257600080602085015191506040850151905061255786838361288e565b93509350505061256b565b60006002915091505b9250929050565b6000600481111561258657612585614151565b5b81600481111561259957612598614151565b5b14156125a457612744565b600160048111156125b8576125b7614151565b5b8160048111156125cb576125ca614151565b5b141561260c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612603906141cc565b60405180910390fd5b600260048111156126205761261f614151565b5b81600481111561263357612632614151565b5b1415612674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266b90614238565b60405180910390fd5b6003600481111561268857612687614151565b5b81600481111561269b5761269a614151565b5b14156126dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d3906142ca565b60405180910390fd5b6004808111156126ef576126ee614151565b5b81600481111561270257612701614151565b5b1415612743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273a9061435c565b60405180910390fd5b5b50565b6000838383463060405160200161276295949392919061437c565b6040516020818303038152906040528051906020012090509392505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c11156127bc576000600391509150612885565b601b8560ff16141580156127d45750601c8560ff1614155b156127e6576000600491509150612885565b60006001878787876040516000815260200160405260405161280b94939291906143eb565b6020604051602081039080840390855afa15801561282d573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561287c57600060019250925050612885565b80600092509250505b94509492505050565b6000806000807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85169150601b8560ff1c0190506128ce87828885612781565b935093505050935093915050565b6040518060c00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060800160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612a6281612a2d565b8114612a6d57600080fd5b50565b600081359050612a7f81612a59565b92915050565b600060208284031215612a9b57612a9a612a23565b5b6000612aa984828501612a70565b91505092915050565b60008115159050919050565b612ac781612ab2565b82525050565b6000602082019050612ae26000830184612abe565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b1382612ae8565b9050919050565b612b2381612b08565b82525050565b6000602082019050612b3e6000830184612b1a565b92915050565b6000819050919050565b612b5781612b44565b8114612b6257600080fd5b50565b600081359050612b7481612b4e565b92915050565b600060208284031215612b9057612b8f612a23565b5b6000612b9e84828501612b65565b91505092915050565b612bb081612b44565b82525050565b6000602082019050612bcb6000830184612ba7565b92915050565b612bda81612b08565b8114612be557600080fd5b50565b600081359050612bf781612bd1565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612c2257612c21612bfd565b5b8235905067ffffffffffffffff811115612c3f57612c3e612c02565b5b602083019150836020820283011115612c5b57612c5a612c07565b5b9250929050565b60008083601f840112612c7857612c77612bfd565b5b8235905067ffffffffffffffff811115612c9557612c94612c02565b5b602083019150836001820283011115612cb157612cb0612c07565b5b9250929050565b6000819050919050565b612ccb81612cb8565b8114612cd657600080fd5b50565b600081359050612ce881612cc2565b92915050565b600080600080600080600080600060e08a8c031215612d1057612d0f612a23565b5b6000612d1e8c828d01612be8565b9950506020612d2f8c828d01612be8565b98505060408a013567ffffffffffffffff811115612d5057612d4f612a28565b5b612d5c8c828d01612c0c565b975097505060608a013567ffffffffffffffff811115612d7f57612d7e612a28565b5b612d8b8c828d01612c62565b95509550506080612d9e8c828d01612cd9565b93505060a0612daf8c828d01612cd9565b92505060c0612dc08c828d01612cd9565b9150509295985092959850929598565b60008060408385031215612de757612de6612a23565b5b6000612df585828601612b65565b9250506020612e0685828601612be8565b9150509250929050565b60008060408385031215612e2757612e26612a23565b5b6000612e3585828601612be8565b9250506020612e4685828601612be8565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e8a578082015181840152602081019050612e6f565b83811115612e99576000848401525b50505050565b6000601f19601f8301169050919050565b6000612ebb82612e50565b612ec58185612e5b565b9350612ed5818560208601612e6c565b612ede81612e9f565b840191505092915050565b612ef281612b08565b82525050565b612f0181612cb8565b82525050565b60c082016000820151612f1d6000850182612ee9565b506020820151612f306020850182612ee9565b506040820151612f436040850182612ef8565b506060820151612f566060850182612ef8565b506080820151612f696080850182612ef8565b5060a0820151612f7c60a0850182612ee9565b50505050565b600060e0820190508181036000830152612f9c8185612eb0565b9050612fab6020830184612f07565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612fea82612e9f565b810181811067ffffffffffffffff8211171561300957613008612fb2565b5b80604052505050565b600061301c612a19565b90506130288282612fe1565b919050565b600067ffffffffffffffff82111561304857613047612fb2565b5b602082029050602081019050919050565b600061306c6130678461302d565b613012565b9050808382526020820190506020840283018581111561308f5761308e612c07565b5b835b818110156130b857806130a48882612cd9565b845260208401935050602081019050613091565b5050509392505050565b600082601f8301126130d7576130d6612bfd565b5b81356130e7848260208601613059565b91505092915050565b60008060006060848603121561310957613108612a23565b5b600061311786828701612be8565b935050602061312886828701612be8565b925050604084013567ffffffffffffffff81111561314957613148612a28565b5b613155868287016130c2565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60006131978383612ef8565b60208301905092915050565b6000602082019050919050565b60006131bb8261315f565b6131c5818561316a565b93506131d08361317b565b8060005b838110156132015781516131e8888261318b565b97506131f3836131a3565b9250506001810190506131d4565b5085935050505092915050565b600060a0830160008301516132266000860182612ee9565b5060208301516132396020860182612ee9565b50604083015161324c6040860182612ef8565b506060830151848203606086015261326482826131b0565b91505060808301516132796080860182612ee9565b508091505092915050565b6000604082019050818103600083015261329e8185612eb0565b905081810360208301526132b2818461320e565b90509392505050565b6000806000606084860312156132d4576132d3612a23565b5b60006132e286828701612cd9565b93505060206132f386828701612cd9565b925050604061330486828701612cd9565b9150509250925092565b600080600080600080600060c0888a03121561332d5761332c612a23565b5b600061333b8a828b01612be8565b975050602061334c8a828b01612be8565b965050604088013567ffffffffffffffff81111561336d5761336c612a28565b5b6133798a828b01612c62565b9550955050606061338c8a828b01612cd9565b935050608061339d8a828b01612cd9565b92505060a06133ae8a828b01612cd9565b91505092959891949750929550565b6080820160008201516133d36000850182612ee9565b5060208201516133e66020850182612ee9565b5060408201516133f96040850182612ef8565b50606082015161340c6060850182612ef8565b50505050565b600060a082019050818103600083015261342c8185612eb0565b905061343b60208301846133bd565b9392505050565b60006020828403121561345857613457612a23565b5b600061346684828501612be8565b91505092915050565b6000819050919050565b600061349461348f61348a84612ae8565b61346f565b612ae8565b9050919050565b60006134a682613479565b9050919050565b60006134b88261349b565b9050919050565b6134c8816134ad565b82525050565b60006020820190506134e360008301846134bf565b92915050565b600082825260208201905092915050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b60006135306010836134e9565b915061353b826134fa565b602082019050919050565b6000602082019050818103600083015261355f81613523565b9050919050565b600081905092915050565b600080fd5b82818337600083830152505050565b60006135918385613566565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156135c4576135c3613571565b5b6020830292506135d5838584613576565b82840190509392505050565b60006135ee828486613585565b91508190509392505050565b600060808201905061360f6000830187612ba7565b61361c6020830186612b1a565b6136296040830185612b1a565b6136366060830184612ba7565b95945050505050565b60006020820190508181036000830152613659818461320e565b905092915050565b61366a81612cb8565b82525050565b60006040820190506136856000830185612b1a565b6136926020830184613661565b9392505050565b6000815190506136a881612cc2565b92915050565b6000602082840312156136c4576136c3612a23565b5b60006136d284828501613699565b91505092915050565b6000815190506136ea81612bd1565b92915050565b600080600080600080600060e0888a03121561370f5761370e612a23565b5b600061371d8a828b01613699565b975050602061372e8a828b01613699565b965050604061373f8a828b016136db565b95505060606137508a828b01613699565b94505060806137618a828b01613699565b93505060a06137728a828b01613699565b92505060c06137838a828b01613699565b91505092959891949750929550565b600060c0820190506137a76000830184612f07565b92915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000613809602f836134e9565b9150613814826137ad565b604082019050919050565b60006020820190508181036000830152613838816137fc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000806040838503121561388557613884612a23565b5b600061389385828601613699565b92505060206138a485828601613699565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138e882612cb8565b91506138f383612cb8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613928576139276138ae565b5b828201905092915050565b600061393e82612cb8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613971576139706138ae565b5b600182019050919050565b60006060820190506139916000830186612ba7565b61399e6020830185612b1a565b6139ab6040830184612b1a565b949350505050565b600080fd5b6000604082840312156139ce576139cd6139b3565b5b6139d86040613012565b905060006139e884828501613699565b60008301525060206139fc84828501613699565b60208301525092915050565b600060408284031215613a1e57613a1d6139b3565b5b613a286040613012565b90506000613a3884828501613699565b6000830152506020613a4c84828501613699565b60208301525092915050565b60008060808385031215613a6f57613a6e612a23565b5b6000613a7d858286016139b8565b9250506040613a8e85828601613a08565b9150509250929050565b6000608082019050613aad60008301846133bd565b92915050565b50565b6000613ac36000836134e9565b9150613ace82613ab3565b600082019050919050565b6000604082019050613aee6000830184613661565b8181036020830152613aff81613ab6565b905092915050565b600060c082019050613b1c6000830189612b1a565b613b296020830188612b1a565b613b366040830187613661565b613b436060830186613661565b613b506080830185613661565b81810360a0830152613b628184612eb0565b9050979650505050505050565b600080fd5b600067ffffffffffffffff821115613b8f57613b8e612fb2565b5b613b9882612e9f565b9050602081019050919050565b6000613bb8613bb384613b74565b613012565b905082815260208101848484011115613bd457613bd3613b6f565b5b613bdf848285612e6c565b509392505050565b600082601f830112613bfc57613bfb612bfd565b5b8151613c0c848260208601613ba5565b91505092915050565b600060208284031215613c2b57613c2a612a23565b5b600082015167ffffffffffffffff811115613c4957613c48612a28565b5b613c5584828501613be7565b91505092915050565b7f494e56414c49445f4c325f414444520000000000000000000000000000000000600082015250565b6000613c94600f836134e9565b9150613c9f82613c5e565b602082019050919050565b60006020820190508181036000830152613cc381613c87565b9050919050565b7f4641494c5f415554480000000000000000000000000000000000000000000000600082015250565b6000613d006009836134e9565b9150613d0b82613cca565b602082019050919050565b60006020820190508181036000830152613d2f81613cf3565b9050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000613d77601783613d36565b9150613d8282613d41565b601782019050919050565b600081519050919050565b6000613da382613d8d565b613dad8185613d36565b9350613dbd818560208601612e6c565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000613dff601183613d36565b9150613e0a82613dc9565b601182019050919050565b6000613e2082613d6a565b9150613e2c8285613d98565b9150613e3782613df2565b9150613e438284613d98565b91508190509392505050565b6000613e5a82613d8d565b613e6481856134e9565b9350613e74818560208601612e6c565b613e7d81612e9f565b840191505092915050565b60006020820190508181036000830152613ea28184613e4f565b905092915050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613ee06014836134e9565b9150613eeb82613eaa565b602082019050919050565b60006020820190508181036000830152613f0f81613ed3565b9050919050565b600061010082019050613f2c600083018b612b1a565b613f39602083018a613661565b613f466040830189613661565b613f536060830188612b1a565b613f606080830187612b1a565b613f6d60a0830186613661565b613f7a60c0830185613661565b81810360e0830152613f8c8184612eb0565b90509998505050505050505050565b60006020820190508181036000830152613fb58184612eb0565b905092915050565b6000613fc882612cb8565b9150613fd383612cb8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561400c5761400b6138ae565b5b828202905092915050565b600061402282612cb8565b91506000821415614036576140356138ae565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006140776020836134e9565b915061408282614041565b602082019050919050565b600060208201905081810360008301526140a68161406a565b9050919050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b60006140e3600283613d36565b91506140ee826140ad565b600282019050919050565b6000819050919050565b61411461410f82612b44565b6140f9565b82525050565b6000614125826140d6565b91506141318285614103565b6020820191506141418284614103565b6020820191508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b60006141b66018836134e9565b91506141c182614180565b602082019050919050565b600060208201905081810360008301526141e5816141a9565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b6000614222601f836134e9565b915061422d826141ec565b602082019050919050565b6000602082019050818103600083015261425181614215565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b60006142b46022836134e9565b91506142bf82614258565b604082019050919050565b600060208201905081810360008301526142e3816142a7565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202776272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b60006143466022836134e9565b9150614351826142ea565b604082019050919050565b6000602082019050818103600083015261437581614339565b9050919050565b600060a0820190506143916000830188612ba7565b61439e6020830187612ba7565b6143ab6040830186612ba7565b6143b86060830185613661565b6143c56080830184612b1a565b9695505050505050565b600060ff82169050919050565b6143e5816143cf565b82525050565b60006080820190506144006000830187612ba7565b61440d60208301866143dc565b61441a6040830185612ba7565b6144276060830184612ba7565b9594505050505056fea26469706673582212208972cfdf673c4db6ea6e1c5b9c61b8c2c65bd07628c26e2eec9ebd9c7ebdabfe64736f6c634300080900330000000000000000000000004c6f947ae67f572afa4ae0730947de7c874f95ef000000000000000000000000511bc4556d823ae99630ae8de28b9b80df90ea2e0000000000000000000000005b1ce829384eebfa30286f12d1e7a695ca45f5d200000000000000000000000058b6a8a3302369daec383334672404ee733ab239000000000000000000000000d82c27966ebb293b2d8646d8eacb293bc260698e000000000000000000000000148d5b6b4df9530c7c76a810bd1cdf69ec4c2085