4 txs
5 calls
constructor
constructor(address _rolesManager, address _initialOwner)
functions
ACCOUNT_MANAGER
viewfunction ACCOUNT_MANAGER() view returns (address)
getMyDirectSponsorAddress
viewfunction getMyDirectSponsorAddress(address _address) view returns (address)
getMyNFTIds
viewfunction getMyNFTIds(address _address) view returns (uint96[])
getMySponsorNFTId
viewfunction getMySponsorNFTId(uint96 _myNFTId) view returns (uint96)
getNFTAccountById
viewfunction getNFTAccountById(uint96 _id) view returns (tuple)
getNftIPFSLinkBulk
viewfunction getNftIPFSLinkBulk(uint96[] _nftIds) view returns (string[])
getNFTLastImageUsed
viewfunction getNFTLastImageUsed() view returns (uint256)
getPOIWalletsWithPOI
viewfunction getPOIWalletsWithPOI() view returns (address[])
getSponsorAddressByReferralLink
viewfunction getSponsorAddressByReferralLink(string _link) view returns (address)
getSponsorDataByAddress
viewfunction getSponsorDataByAddress(address _address) view returns (address[])
getSponsorNFTIdByRefLink
viewfunction getSponsorNFTIdByRefLink(string _link) view returns (uint256)
getTotalUserRegistered
viewfunction getTotalUserRegistered() view returns (uint256)
getUserNftAccDataBulk
viewfunction getUserNftAccDataBulk(uint96[] _ids) view returns (tuple[])
getUserPOIData
viewfunction getUserPOIData(address _address) view returns (tuple)
getUserPOIDataBulk
viewfunction getUserPOIDataBulk(address[] _walletAddresses) view returns (tuple[])
getUsersRegisteredBulk
viewfunction getUsersRegisteredBulk(uint96 _fromIndex, uint96 _limit) view returns (address[])
isPaused
viewfunction isPaused() view returns (bool)
isUserRegistered
viewfunction isUserRegistered(address _address) view returns (bool)
MEMBERSHIP_CONTRACT_ADDRESS
viewfunction MEMBERSHIP_CONTRACT_ADDRESS() view returns (address)
NFT_ID_COUNTER
viewfunction NFT_ID_COUNTER() view returns (uint96)
NFT_STORAGE
viewfunction NFT_STORAGE() view returns (address)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
POI_CONTRACT_ADDRESS
viewfunction POI_CONTRACT_ADDRESS() view returns (address)
POI_STORAGE
viewfunction POI_STORAGE() view returns (address)
ROLES_MANAGER
viewfunction ROLES_MANAGER() view returns (address)
userExists
viewfunction userExists(address _address) view returns (bool)
createNFTAccount
nonpayablefunction createNFTAccount(tuple _data, address _sponsorAddress, uint96 _sponsorNFTId, string _referralLink, uint8 _side, string _ipfsLink)
createPOIUser
nonpayablefunction createPOIUser(tuple _user, address _userAddress)
emergencyPause
nonpayablefunction emergencyPause()
emergencyUnpause
nonpayablefunction emergencyUnpause()
renounceOwnership
nonpayablefunction renounceOwnership()
setContractsAddress
nonpayablefunction setContractsAddress(address _address, uint8 _contract)
transferNFT
nonpayablefunction transferNFT(address _oldOwner, address _newOwner, uint96 _tokenId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updatePOIUserData
nonpayablefunction updatePOIUserData(tuple _userData, address _address)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
Unpaused
event Unpaused(address account)
errors
AccessDenied
error AccessDenied()
EnforcedPause
error EnforcedPause()
ExpectedPause
error ExpectedPause()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
V1
error V1()
V8
error V8()
creation bytecode
0x60806040523480156200001157600080fd5b5060405162004c3238038062004c3283398181016040528101906200003791906200023f565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000ad5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000a4919062000297565b60405180910390fd5b620000be816200010f60201b60201c565b506001600881905550816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620002b4565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200020782620001da565b9050919050565b6200021981620001fa565b81146200022557600080fd5b50565b60008151905062000239816200020e565b92915050565b60008060408385031215620002595762000258620001d5565b5b6000620002698582860162000228565b92505060206200027c8582860162000228565b9150509250929050565b6200029181620001fa565b82525050565b6000602082019050620002ae600083018462000286565b92915050565b61496e80620002c46000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c8063624afeb011610125578063a25eb596116100ad578063ed6a98b31161007c578063ed6a98b314610643578063efb8d49d14610673578063f2fde38b146106a3578063f95cb040146106bf578063ffa2abff146106dd5761021c565b8063a25eb596146105bb578063a8def318146105d9578063b187bd26146105f5578063d5463067146106135761021c565b80636ee2e7d9116100f45780636ee2e7d91461053b578063715018a61461055957806376a6bf2c146105635780638690e43b1461057f5780638da5cb5b1461059d5761021c565b8063624afeb0146104b557806367eb8560146104d1578063684581c7146105015780636b01e7511461051d5761021c565b80633ea7e783116101a8578063527d0b4811610177578063527d0b481461040d57806355c9bcff1461042b5780635c975abb1461045b5780635de87bff146104795780635e92e3ed146104975761021c565b80633ea7e783146103ab5780634a4e3bd5146103c95780634fffd0b9146103d357806351858e27146104035761021c565b80631c9851fc116101ef5780631c9851fc146102cd578063243717e0146102eb5780632ab1c1881461031b5780632e57096e1461034b5780633c8bc14c1461037b5761021c565b8063085a512f146102215780630e666e49146102515780630eea54d614610281578063163f75221461029d575b600080fd5b61023b60048036038101906102369190612440565b61070d565b604051610248919061252b565b60405180910390f35b61026b60048036038101906102669190612440565b6107b7565b6040516102789190612568565b60405180910390f35b61029b600480360381019061029691906125c7565b61085c565b005b6102b760048036038101906102b29190612440565b610925565b6040516102c49190612568565b60405180910390f35b6102d56109ca565b6040516102e2919061252b565b60405180910390f35b6103056004803603810190610300919061261a565b610a67565b60405161031291906128b2565b60405180910390f35b6103356004803603810190610330919061261a565b610b17565b60405161034291906128e3565b60405180910390f35b61036560048036038101906103609190612a33565b610bbc565b6040516103729190612a8b565b60405180910390f35b61039560048036038101906103909190612b06565b610c6f565b6040516103a29190612d98565b60405180910390f35b6103b3610d01565b6040516103c09190612e19565b60405180910390f35b6103d1610d27565b005b6103ed60048036038101906103e89190612440565b610dc2565b6040516103fa9190612ea3565b60405180910390f35b61040b610e6c565b005b610415610f07565b6040516104229190612a8b565b60405180910390f35b61044560048036038101906104409190612f1b565b610f9f565b604051610452919061302a565b60405180910390f35b610463611031565b6040516104709190612568565b60405180910390f35b610481611048565b60405161048e9190612a8b565b60405180910390f35b61049f6110ee565b6040516104ac919061305b565b60405180910390f35b6104cf60048036038101906104ca919061337a565b611114565b005b6104eb60048036038101906104e69190612440565b611134565b6040516104f8919061305b565b60405180910390f35b61051b60048036038101906105169190613486565b6111d9565b005b61052561129f565b60405161053291906128e3565b60405180910390f35b6105436112bd565b604051610550919061305b565b60405180910390f35b6105616112e3565b005b61057d60048036038101906105789190613507565b6112f7565b005b6105876113cc565b604051610594919061305b565b60405180910390f35b6105a56113f0565b6040516105b2919061305b565b60405180910390f35b6105c361141a565b6040516105d09190613568565b60405180910390f35b6105f360048036038101906105ee91906135a3565b611440565b005b6105fd611509565b60405161060a9190612568565b60405180910390f35b61062d600480360381019061062891906135ff565b611518565b60405161063a919061305b565b60405180910390f35b61065d60048036038101906106589190612f1b565b6115c0565b60405161066a9190613812565b60405180910390f35b61068d60048036038101906106889190613834565b611652565b60405161069a919061252b565b60405180910390f35b6106bd60048036038101906106b89190612440565b6116ff565b005b6106c7611785565b6040516106d4919061305b565b60405180910390f35b6106f760048036038101906106f29190612440565b6117ab565b604051610704919061397f565b60405180910390f35b6060600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663085a512f836040518263ffffffff1660e01b815260040161076a919061305b565b600060405180830381865afa158015610787573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906107b09190613a79565b9050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630e666e49836040518263ffffffff1660e01b8152600401610814919061305b565b602060405180830381865afa158015610831573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108559190613aee565b9050919050565b61086461185b565b61088f600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661189c565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630eea54d68484846040518463ffffffff1660e01b81526004016108ee93929190613b1b565b600060405180830381600087803b15801561090857600080fd5b505af115801561091c573d6000803e3d6000fd5b50505050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663163f7522836040518263ffffffff1660e01b8152600401610982919061305b565b602060405180830381865afa15801561099f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c39190613aee565b9050919050565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9c99c306040518163ffffffff1660e01b8152600401600060405180830381865afa158015610a39573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610a629190613a79565b905090565b610a6f6122a5565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663243717e0836040518263ffffffff1660e01b8152600401610aca91906128e3565b600060405180830381865afa158015610ae7573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610b109190613dff565b9050919050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ab1c188836040518263ffffffff1660e01b8152600401610b7491906128e3565b602060405180830381865afa158015610b91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb59190613e48565b9050919050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638bf7e6c7836040518263ffffffff1660e01b8152600401610c199190613ebf565b602060405180830381865afa158015610c36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5a9190613e48565b6bffffffffffffffffffffffff169050919050565b6060610cf9838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffa2abff611904565b905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d2f611a4b565b732ee70f0585d83f523ae876f86b8df2c6c8677a9973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610da8576040517f84806c3300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610db0611ab2565b610db8611af8565b610dc0611b5b565b565b6060600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634fffd0b9836040518263ffffffff1660e01b8152600401610e1f919061305b565b600060405180830381865afa158015610e3c573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610e659190613ee1565b9050919050565b610e74611a4b565b732ee70f0585d83f523ae876f86b8df2c6c8677a9973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610eed576040517f84806c3300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ef5611ab2565b610efd611b65565b610f05611b5b565b565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166359c606136040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9a9190613f2a565b905090565b6060611029838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663927ae7c5611bc8565b905092915050565b6000600960009054906101000a900460ff16905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630d82cfa16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110db9190613e48565b6bffffffffffffffffffffffff16905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61111c61185b565b61112b87878787878787611d09565b50505050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166367eb8560836040518263ffffffff1660e01b8152600401611191919061305b565b602060405180830381865afa1580156111ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d29190613f57565b9050919050565b6111e161185b565b61120c600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661189c565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e572d21583836040518363ffffffff1660e01b815260040161126992919061424e565b600060405180830381600087803b15801561128357600080fd5b505af1158015611297573d6000803e3d6000fd5b505050505050565b600560149054906101000a90046bffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112eb611e2f565b6112f56000611eb6565b565b61135760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518060400160405280600a81526020017f535550455241444d494e00000000000000000000000000000000000000000000815250611f7c565b61135f611a4b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113c5576040517f3ee569bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61144861185b565b611473600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661189c565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634e839aee838360016040518463ffffffff1660e01b81526004016114d3939291906143e7565b600060405180830381600087803b1580156114ed57600080fd5b505af1158015611501573d6000803e3d6000fd5b505050505050565b6000611513611031565b905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d546306784846040518363ffffffff1660e01b8152600401611577929190614452565b602060405180830381865afa158015611594573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b89190613f57565b905092915050565b606061164a838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663243717e0611fc2565b905092915050565b6060600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663efb8d49d84846040518363ffffffff1660e01b81526004016116b1929190614476565b600060405180830381865afa1580156116ce573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906116f79190613a79565b905092915050565b611707611e2f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117795760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401611770919061305b565b60405180910390fd5b61178281611eb6565b50565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117b361234d565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffa2abff836040518263ffffffff1660e01b815260040161180e919061305b565b600060405180830381865afa15801561182b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611854919061475d565b9050919050565b611863611031565b1561189a576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611901576040517f4ca8886700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6060835167ffffffffffffffff81111561192157611920612908565b5b60405190808252806020026020018201604052801561195a57816020015b61194761234d565b81526020019060019003908161193f5790505b50905060005b8451816bffffffffffffffffffffffff161015611a4357838386836bffffffffffffffffffffffff168151811061199a576119996147a6565b5b60200260200101516040518263ffffffff1660e01b81526004016119be919061305b565b600060405180830381865afa1580156119db573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611a04919061475d565b82826bffffffffffffffffffffffff1681518110611a2557611a246147a6565b5b60200260200101819052508080611a3b90614804565b915050611960565b509392505050565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611ab0576040517f4ca8886700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600260085403611aee576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600881905550565b611b00612109565b6000600960006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611b44612149565b604051611b51919061305b565b60405180910390a1565b6001600881905550565b611b6d61185b565b6001600960006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611bb1612149565b604051611bbe919061305b565b60405180910390a1565b6060835167ffffffffffffffff811115611be557611be4612908565b5b604051908082528060200260200182016040528015611c1857816020015b6060815260200190600190039081611c035790505b50905060005b8451816bffffffffffffffffffffffff161015611d0157838386836bffffffffffffffffffffffff1681518110611c5857611c576147a6565b5b60200260200101516040518263ffffffff1660e01b8152600401611c7c91906128e3565b600060405180830381865afa158015611c99573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611cc29190614838565b82826bffffffffffffffffffffffff1681518110611ce357611ce26147a6565b5b60200260200101819052508080611cf990614804565b915050611c1e565b509392505050565b611d34600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661189c565b6005601481819054906101000a90046bffffffffffffffffffffffff1680929190611d5e90614804565b91906101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e14a3910888888888888886040518863ffffffff1660e01b8152600401611df49796959493929190614890565b600060405180830381600087803b158015611e0e57600080fd5b505af1158015611e22573d6000803e3d6000fd5b5050505050505050505050565b611e37612149565b73ffffffffffffffffffffffffffffffffffffffff16611e556113f0565b73ffffffffffffffffffffffffffffffffffffffff1614611eb457611e78612149565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611eab919061305b565b60405180910390fd5b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611f87838383612151565b611fbd576040517f4ca8886700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6060835167ffffffffffffffff811115611fdf57611fde612908565b5b60405190808252806020026020018201604052801561201857816020015b6120056122a5565b815260200190600190039081611ffd5790505b50905060005b8451816bffffffffffffffffffffffff16101561210157838386836bffffffffffffffffffffffff1681518110612058576120576147a6565b5b60200260200101516040518263ffffffff1660e01b815260040161207c91906128e3565b600060405180830381865afa158015612099573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906120c29190613dff565b82826bffffffffffffffffffffffff16815181106120e3576120e26147a6565b5b602002602001018190525080806120f990614804565b91505061201e565b509392505050565b612111611031565b612147576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600033905090565b6000808473ffffffffffffffffffffffffffffffffffffffff16637909185185856040518363ffffffff1660e01b815260040161218f929190614908565b6020604051808303816000875af11580156121ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121d29190613aee565b90508015801561220e57508373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614155b15612299578473ffffffffffffffffffffffffffffffffffffffff16637909185132856040518363ffffffff1660e01b815260040161224e929190614908565b6020604051808303816000875af115801561226d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122919190613aee565b91505061229e565b809150505b9392505050565b6040518061016001604052806060815260200160006bffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001606081526020016060815260200160006bffffffffffffffffffffffff16815260200160008152602001600081525090565b60405180610140016040528060608152602001606081526020016060815260200160608152602001606081526020016060815260200160008152602001606081526020016123996123a6565b8152602001600081525090565b6040518060800160405280606081526020016060815260200160608152602001606081525090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061240d826123e2565b9050919050565b61241d81612402565b811461242857600080fd5b50565b60008135905061243a81612414565b92915050565b600060208284031215612456576124556123d8565b5b60006124648482850161242b565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6124a281612402565b82525050565b60006124b48383612499565b60208301905092915050565b6000602082019050919050565b60006124d88261246d565b6124e28185612478565b93506124ed83612489565b8060005b8381101561251e57815161250588826124a8565b9750612510836124c0565b9250506001810190506124f1565b5085935050505092915050565b6000602082019050818103600083015261254581846124cd565b905092915050565b60008115159050919050565b6125628161254d565b82525050565b600060208201905061257d6000830184612559565b92915050565b60006bffffffffffffffffffffffff82169050919050565b6125a481612583565b81146125af57600080fd5b50565b6000813590506125c18161259b565b92915050565b6000806000606084860312156125e0576125df6123d8565b5b60006125ee8682870161242b565b93505060206125ff8682870161242b565b9250506040612610868287016125b2565b9150509250925092565b6000602082840312156126305761262f6123d8565b5b600061263e848285016125b2565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612681578082015181840152602081019050612666565b60008484015250505050565b6000601f19601f8301169050919050565b60006126a982612647565b6126b38185612652565b93506126c3818560208601612663565b6126cc8161268d565b840191505092915050565b6126e081612583565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600061271e83836126d7565b60208301905092915050565b6000602082019050919050565b6000612742826126e6565b61274c81856126f1565b935061275783612702565b8060005b8381101561278857815161276f8882612712565b975061277a8361272a565b92505060018101905061275b565b5085935050505092915050565b6000819050919050565b6127a881612795565b82525050565b60006101608301600083015184820360008601526127cc828261269e565b91505060208301516127e160208601826126d7565b5060408301516127f460408601826126d7565b50606083015161280760608601826126d7565b50608083015161281a6080860182612499565b5060a083015184820360a0860152612832828261269e565b91505060c083015184820360c086015261284c8282612737565b91505060e083015184820360e08601526128668282612737565b91505061010083015161287d6101008601826126d7565b5061012083015161289261012086018261279f565b506101408301516128a761014086018261279f565b508091505092915050565b600060208201905081810360008301526128cc81846127ae565b905092915050565b6128dd81612583565b82525050565b60006020820190506128f860008301846128d4565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6129408261268d565b810181811067ffffffffffffffff8211171561295f5761295e612908565b5b80604052505050565b60006129726123ce565b905061297e8282612937565b919050565b600067ffffffffffffffff82111561299e5761299d612908565b5b6129a78261268d565b9050602081019050919050565b82818337600083830152505050565b60006129d66129d184612983565b612968565b9050828152602081018484840111156129f2576129f1612903565b5b6129fd8482856129b4565b509392505050565b600082601f830112612a1a57612a196128fe565b5b8135612a2a8482602086016129c3565b91505092915050565b600060208284031215612a4957612a486123d8565b5b600082013567ffffffffffffffff811115612a6757612a666123dd565b5b612a7384828501612a05565b91505092915050565b612a8581612795565b82525050565b6000602082019050612aa06000830184612a7c565b92915050565b600080fd5b600080fd5b60008083601f840112612ac657612ac56128fe565b5b8235905067ffffffffffffffff811115612ae357612ae2612aa6565b5b602083019150836020820283011115612aff57612afe612aab565b5b9250929050565b60008060208385031215612b1d57612b1c6123d8565b5b600083013567ffffffffffffffff811115612b3b57612b3a6123dd565b5b612b4785828601612ab0565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60006080830160008301518482036000860152612b9c828261269e565b91505060208301518482036020860152612bb6828261269e565b91505060408301518482036040860152612bd0828261269e565b91505060608301518482036060860152612bea828261269e565b9150508091505092915050565b6000610140830160008301518482036000860152612c15828261269e565b91505060208301518482036020860152612c2f828261269e565b91505060408301518482036040860152612c49828261269e565b91505060608301518482036060860152612c63828261269e565b91505060808301518482036080860152612c7d828261269e565b91505060a083015184820360a0860152612c97828261269e565b91505060c0830151612cac60c086018261279f565b5060e083015184820360e0860152612cc4828261269e565b915050610100830151848203610100860152612ce08282612b7f565b915050610120830151612cf761012086018261279f565b508091505092915050565b6000612d0e8383612bf7565b905092915050565b6000602082019050919050565b6000612d2e82612b53565b612d388185612b5e565b935083602082028501612d4a85612b6f565b8060005b85811015612d865784840389528151612d678582612d02565b9450612d7283612d16565b925060208a01995050600181019050612d4e565b50829750879550505050505092915050565b60006020820190508181036000830152612db28184612d23565b905092915050565b6000819050919050565b6000612ddf612dda612dd5846123e2565b612dba565b6123e2565b9050919050565b6000612df182612dc4565b9050919050565b6000612e0382612de6565b9050919050565b612e1381612df8565b82525050565b6000602082019050612e2e6000830184612e0a565b92915050565b600082825260208201905092915050565b6000612e50826126e6565b612e5a8185612e34565b9350612e6583612702565b8060005b83811015612e96578151612e7d8882612712565b9750612e888361272a565b925050600181019050612e69565b5085935050505092915050565b60006020820190508181036000830152612ebd8184612e45565b905092915050565b60008083601f840112612edb57612eda6128fe565b5b8235905067ffffffffffffffff811115612ef857612ef7612aa6565b5b602083019150836020820283011115612f1457612f13612aab565b5b9250929050565b60008060208385031215612f3257612f316123d8565b5b600083013567ffffffffffffffff811115612f5057612f4f6123dd565b5b612f5c85828601612ec5565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000612fa0838361269e565b905092915050565b6000602082019050919050565b6000612fc082612f68565b612fca8185612f73565b935083602082028501612fdc85612f84565b8060005b858110156130185784840389528151612ff98582612f94565b945061300483612fa8565b925060208a01995050600181019050612fe0565b50829750879550505050505092915050565b600060208201905081810360008301526130448184612fb5565b905092915050565b61305581612402565b82525050565b6000602082019050613070600083018461304c565b92915050565b600080fd5b600080fd5b600067ffffffffffffffff82111561309b5761309a612908565b5b602082029050602081019050919050565b60006130bf6130ba84613080565b612968565b905080838252602082019050602084028301858111156130e2576130e1612aab565b5b835b8181101561310b57806130f788826125b2565b8452602084019350506020810190506130e4565b5050509392505050565b600082601f83011261312a576131296128fe565b5b813561313a8482602086016130ac565b91505092915050565b61314c81612795565b811461315757600080fd5b50565b60008135905061316981613143565b92915050565b6000610160828403121561318657613185613076565b5b613191610160612968565b9050600082013567ffffffffffffffff8111156131b1576131b061307b565b5b6131bd84828501612a05565b60008301525060206131d1848285016125b2565b60208301525060406131e5848285016125b2565b60408301525060606131f9848285016125b2565b606083015250608061320d8482850161242b565b60808301525060a082013567ffffffffffffffff8111156132315761323061307b565b5b61323d84828501612a05565b60a08301525060c082013567ffffffffffffffff8111156132615761326061307b565b5b61326d84828501613115565b60c08301525060e082013567ffffffffffffffff8111156132915761329061307b565b5b61329d84828501613115565b60e0830152506101006132b2848285016125b2565b610100830152506101206132c88482850161315a565b610120830152506101406132de8482850161315a565b6101408301525092915050565b60008083601f840112613301576133006128fe565b5b8235905067ffffffffffffffff81111561331e5761331d612aa6565b5b60208301915083600182028301111561333a57613339612aab565b5b9250929050565b600060ff82169050919050565b61335781613341565b811461336257600080fd5b50565b6000813590506133748161334e565b92915050565b600080600080600080600060c0888a031215613399576133986123d8565b5b600088013567ffffffffffffffff8111156133b7576133b66123dd565b5b6133c38a828b0161316f565b97505060206133d48a828b0161242b565b96505060406133e58a828b016125b2565b955050606088013567ffffffffffffffff811115613406576134056123dd565b5b6134128a828b016132eb565b945094505060806134258a828b01613365565b92505060a088013567ffffffffffffffff811115613446576134456123dd565b5b6134528a828b01612a05565b91505092959891949750929550565b600080fd5b6000610120828403121561347d5761347c613461565b5b81905092915050565b6000806040838503121561349d5761349c6123d8565b5b600083013567ffffffffffffffff8111156134bb576134ba6123dd565b5b6134c785828601613466565b92505060206134d88582860161242b565b9150509250929050565b600581106134ef57600080fd5b50565b600081359050613501816134e2565b92915050565b6000806040838503121561351e5761351d6123d8565b5b600061352c8582860161242b565b925050602061353d858286016134f2565b9150509250929050565b600061355282612de6565b9050919050565b61356281613547565b82525050565b600060208201905061357d6000830184613559565b92915050565b6000610140828403121561359a57613599613461565b5b81905092915050565b600080604083850312156135ba576135b96123d8565b5b600083013567ffffffffffffffff8111156135d8576135d76123dd565b5b6135e485828601613583565b92505060206135f58582860161242b565b9150509250929050565b60008060208385031215613616576136156123d8565b5b600083013567ffffffffffffffff811115613634576136336123dd565b5b613640858286016132eb565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000610160830160008301518482036000860152613696828261269e565b91505060208301516136ab60208601826126d7565b5060408301516136be60408601826126d7565b5060608301516136d160608601826126d7565b5060808301516136e46080860182612499565b5060a083015184820360a08601526136fc828261269e565b91505060c083015184820360c08601526137168282612737565b91505060e083015184820360e08601526137308282612737565b9150506101008301516137476101008601826126d7565b5061012083015161375c61012086018261279f565b5061014083015161377161014086018261279f565b508091505092915050565b60006137888383613678565b905092915050565b6000602082019050919050565b60006137a88261364c565b6137b28185613657565b9350836020820285016137c485613668565b8060005b8581101561380057848403895281516137e1858261377c565b94506137ec83613790565b925060208a019950506001810190506137c8565b50829750879550505050505092915050565b6000602082019050818103600083015261382c818461379d565b905092915050565b6000806040838503121561384b5761384a6123d8565b5b6000613859858286016125b2565b925050602061386a858286016125b2565b9150509250929050565b6000610140830160008301518482036000860152613892828261269e565b915050602083015184820360208601526138ac828261269e565b915050604083015184820360408601526138c6828261269e565b915050606083015184820360608601526138e0828261269e565b915050608083015184820360808601526138fa828261269e565b91505060a083015184820360a0860152613914828261269e565b91505060c083015161392960c086018261279f565b5060e083015184820360e0860152613941828261269e565b91505061010083015184820361010086015261395d8282612b7f565b91505061012083015161397461012086018261279f565b508091505092915050565b600060208201905081810360008301526139998184613874565b905092915050565b600067ffffffffffffffff8211156139bc576139bb612908565b5b602082029050602081019050919050565b6000815190506139dc81612414565b92915050565b60006139f56139f0846139a1565b612968565b90508083825260208201905060208402830185811115613a1857613a17612aab565b5b835b81811015613a415780613a2d88826139cd565b845260208401935050602081019050613a1a565b5050509392505050565b600082601f830112613a6057613a5f6128fe565b5b8151613a708482602086016139e2565b91505092915050565b600060208284031215613a8f57613a8e6123d8565b5b600082015167ffffffffffffffff811115613aad57613aac6123dd565b5b613ab984828501613a4b565b91505092915050565b613acb8161254d565b8114613ad657600080fd5b50565b600081519050613ae881613ac2565b92915050565b600060208284031215613b0457613b036123d8565b5b6000613b1284828501613ad9565b91505092915050565b6000606082019050613b30600083018661304c565b613b3d602083018561304c565b613b4a60408301846128d4565b949350505050565b6000613b65613b6084612983565b612968565b905082815260208101848484011115613b8157613b80612903565b5b613b8c848285612663565b509392505050565b600082601f830112613ba957613ba86128fe565b5b8151613bb9848260208601613b52565b91505092915050565b600081519050613bd18161259b565b92915050565b6000613bea613be584613080565b612968565b90508083825260208201905060208402830185811115613c0d57613c0c612aab565b5b835b81811015613c365780613c228882613bc2565b845260208401935050602081019050613c0f565b5050509392505050565b600082601f830112613c5557613c546128fe565b5b8151613c65848260208601613bd7565b91505092915050565b600081519050613c7d81613143565b92915050565b60006101608284031215613c9a57613c99613076565b5b613ca5610160612968565b9050600082015167ffffffffffffffff811115613cc557613cc461307b565b5b613cd184828501613b94565b6000830152506020613ce584828501613bc2565b6020830152506040613cf984828501613bc2565b6040830152506060613d0d84828501613bc2565b6060830152506080613d21848285016139cd565b60808301525060a082015167ffffffffffffffff811115613d4557613d4461307b565b5b613d5184828501613b94565b60a08301525060c082015167ffffffffffffffff811115613d7557613d7461307b565b5b613d8184828501613c40565b60c08301525060e082015167ffffffffffffffff811115613da557613da461307b565b5b613db184828501613c40565b60e083015250610100613dc684828501613bc2565b61010083015250610120613ddc84828501613c6e565b61012083015250610140613df284828501613c6e565b6101408301525092915050565b600060208284031215613e1557613e146123d8565b5b600082015167ffffffffffffffff811115613e3357613e326123dd565b5b613e3f84828501613c83565b91505092915050565b600060208284031215613e5e57613e5d6123d8565b5b6000613e6c84828501613bc2565b91505092915050565b600082825260208201905092915050565b6000613e9182612647565b613e9b8185613e75565b9350613eab818560208601612663565b613eb48161268d565b840191505092915050565b60006020820190508181036000830152613ed98184613e86565b905092915050565b600060208284031215613ef757613ef66123d8565b5b600082015167ffffffffffffffff811115613f1557613f146123dd565b5b613f2184828501613c40565b91505092915050565b600060208284031215613f4057613f3f6123d8565b5b6000613f4e84828501613c6e565b91505092915050565b600060208284031215613f6d57613f6c6123d8565b5b6000613f7b848285016139cd565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112613fb057613faf613f8e565b5b83810192508235915060208301925067ffffffffffffffff821115613fd857613fd7613f84565b5b600182023603831315613fee57613fed613f89565b5b509250929050565b60006140028385612652565b935061400f8385846129b4565b6140188361268d565b840190509392505050565b6000614032602084018461315a565b905092915050565b60008235600160800383360303811261405657614055613f8e565b5b82810191505092915050565b6000608083016140756000840184613f93565b8583036000870152614088838284613ff6565b925050506140996020840184613f93565b85830360208701526140ac838284613ff6565b925050506140bd6040840184613f93565b85830360408701526140d0838284613ff6565b925050506140e16060840184613f93565b85830360608701526140f4838284613ff6565b925050508091505092915050565b600061012083016141166000840184613f93565b8583036000870152614129838284613ff6565b9250505061413a6020840184613f93565b858303602087015261414d838284613ff6565b9250505061415e6040840184613f93565b8583036040870152614171838284613ff6565b925050506141826060840184613f93565b8583036060870152614195838284613ff6565b925050506141a66080840184613f93565b85830360808701526141b9838284613ff6565b925050506141ca60a0840184613f93565b85830360a08701526141dd838284613ff6565b925050506141ee60c0840184614023565b6141fb60c086018261279f565b5061420960e0840184613f93565b85830360e087015261421c838284613ff6565b9250505061422e61010084018461403a565b8482036101008601526142418282614062565b9150508091505092915050565b600060408201905081810360008301526142688185614102565b9050614277602083018461304c565b9392505050565b600061014083016142926000840184613f93565b85830360008701526142a5838284613ff6565b925050506142b66020840184613f93565b85830360208701526142c9838284613ff6565b925050506142da6040840184613f93565b85830360408701526142ed838284613ff6565b925050506142fe6060840184613f93565b8583036060870152614311838284613ff6565b925050506143226080840184613f93565b8583036080870152614335838284613ff6565b9250505061434660a0840184613f93565b85830360a0870152614359838284613ff6565b9250505061436a60c0840184614023565b61437760c086018261279f565b5061438560e0840184613f93565b85830360e0870152614398838284613ff6565b925050506143aa61010084018461403a565b8482036101008601526143bd8282614062565b9150506143ce610120840184614023565b6143dc61012086018261279f565b508091505092915050565b60006060820190508181036000830152614401818661427e565b9050614410602083018561304c565b61441d6040830184612559565b949350505050565b60006144318385613e75565b935061443e8385846129b4565b6144478361268d565b840190509392505050565b6000602082019050818103600083015261446d818486614425565b90509392505050565b600060408201905061448b60008301856128d4565b61449860208301846128d4565b9392505050565b6000608082840312156144b5576144b4613076565b5b6144bf6080612968565b9050600082015167ffffffffffffffff8111156144df576144de61307b565b5b6144eb84828501613b94565b600083015250602082015167ffffffffffffffff81111561450f5761450e61307b565b5b61451b84828501613b94565b602083015250604082015167ffffffffffffffff81111561453f5761453e61307b565b5b61454b84828501613b94565b604083015250606082015167ffffffffffffffff81111561456f5761456e61307b565b5b61457b84828501613b94565b60608301525092915050565b6000610140828403121561459e5761459d613076565b5b6145a9610140612968565b9050600082015167ffffffffffffffff8111156145c9576145c861307b565b5b6145d584828501613b94565b600083015250602082015167ffffffffffffffff8111156145f9576145f861307b565b5b61460584828501613b94565b602083015250604082015167ffffffffffffffff8111156146295761462861307b565b5b61463584828501613b94565b604083015250606082015167ffffffffffffffff8111156146595761465861307b565b5b61466584828501613b94565b606083015250608082015167ffffffffffffffff8111156146895761468861307b565b5b61469584828501613b94565b60808301525060a082015167ffffffffffffffff8111156146b9576146b861307b565b5b6146c584828501613b94565b60a08301525060c06146d984828501613c6e565b60c08301525060e082015167ffffffffffffffff8111156146fd576146fc61307b565b5b61470984828501613b94565b60e08301525061010082015167ffffffffffffffff81111561472e5761472d61307b565b5b61473a8482850161449f565b6101008301525061012061475084828501613c6e565b6101208301525092915050565b600060208284031215614773576147726123d8565b5b600082015167ffffffffffffffff811115614791576147906123dd565b5b61479d84828501614587565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061480f82612583565b91506bffffffffffffffffffffffff820361482d5761482c6147d5565b5b600182019050919050565b60006020828403121561484e5761484d6123d8565b5b600082015167ffffffffffffffff81111561486c5761486b6123dd565b5b61487884828501613b94565b91505092915050565b61488a81613341565b82525050565b600060c08201905081810360008301526148aa818a6127ae565b90506148b9602083018961304c565b6148c660408301886128d4565b81810360608301526148d9818688614425565b90506148e86080830185614881565b81810360a08301526148fa8184613e86565b905098975050505050505050565b600060408201905061491d600083018561304c565b818103602083015261492f8184613e86565b9050939250505056fea264697066735822122012815e2cefdd1c13cb90ecda890f92cfef44c3a0d65ee358285025b8ff769adc64736f6c6343000818003300000000000000000000000039572b7c375a4be0be74fcf1ce33080a001f09a40000000000000000000000001bd41c988fd8807a73e79cfb465df488e73d6c0d