23 txs
58 calls
constructor
constructor(string name_, string symbol_, address PRDX)
functions
_baseURI
viewfunction _baseURI() view returns (string)
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
baseURI
viewfunction baseURI() view returns (string)
composite_hash
viewfunction composite_hash() view returns (uint256)
ERC712_VERSION
viewfunction ERC712_VERSION() view returns (string)
genesis
viewfunction genesis(uint256) view returns (bool)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getChainId
purefunction getChainId() pure returns (uint256)
getDomainSeperator
viewfunction getDomainSeperator() view returns (bytes32)
getNonce
viewfunction getNonce(address user) view returns (uint256 nonce)
isApprovedForAll
viewfunction isApprovedForAll(address _owner, address _operator) view returns (bool isOperator)
max_SHIBES_ever
viewfunction max_SHIBES_ever() view returns (uint32)
minting_enabled
viewfunction minting_enabled() view returns (bool)
name
viewfunction name() view returns (string)
OpenSeaRegistry_address
viewfunction OpenSeaRegistry_address() view returns (address)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
PRDX_token
viewfunction PRDX_token() view returns (address)
rename_PRDX_cost
viewfunction rename_PRDX_cost() view returns (uint256)
stage1
viewfunction stage1() view returns (uint16)
stage2
viewfunction stage2() view returns (uint16)
stage3
viewfunction stage3() view returns (uint16)
stage4
viewfunction stage4() view returns (uint16)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenByIndex
viewfunction tokenByIndex(uint256 index) view returns (uint256)
tokenOfOwnerByIndex
viewfunction tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
upgrade1_PRDX_cost
viewfunction upgrade1_PRDX_cost() view returns (uint256)
upgrade2_PRDX_cost
viewfunction upgrade2_PRDX_cost() view returns (uint256)
upgrading_enabled
viewfunction upgrading_enabled() view returns (bool)
approve
nonpayablefunction approve(address to, uint256 tokenId)
bulkMint
nonpayablefunction bulkMint(address[] to, uint256[] tokenID, uint256 _len)
buy_NFT
payablefunction buy_NFT(uint256 _amount, address ref_addr) payable
disable_minting
nonpayablefunction disable_minting()
enable_upgrading
nonpayablefunction enable_upgrading()
executeMetaTransaction
payablefunction executeMetaTransaction(address userAddress, bytes functionSignature, bytes32 sigR, bytes32 sigS, uint8 sigV) payable returns (bytes)
mint
nonpayablefunction mint(address to, uint256 tokenId)
rename_NFT
nonpayablefunction rename_NFT(uint256 tokenID, string new_name)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes _data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId)
set_PRDX_contract
nonpayablefunction set_PRDX_contract(address _addr)
set_registry_address
nonpayablefunction set_registry_address(address _addr)
set_upgrade_costs
nonpayablefunction set_upgrade_costs(uint256 _upgrade1_costs, uint256 _upgrade_2_costs, uint256 _rename_costs)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setBaseTokenURI
nonpayablefunction setBaseTokenURI(string new_baseURI) returns (bool success)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
upgrade_NFT
nonpayablefunction upgrade_NFT(uint256 tokenID, string attribute)
withdraw_ETH
nonpayablefunction withdraw_ETH(address _receiver)
withdraw_token
nonpayablefunction withdraw_token(address _receiver, address contract_address)
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
MetaTransactionExecuted
event MetaTransactionExecuted(address userAddress, address relayerAddress, bytes functionSignature)
NFTRenamed
event NFTRenamed(address owner, uint256 NFT_ID, string new_name)
NFTUpgraded
event NFTUpgraded(address owner, uint256 NFT_ID, string attribute)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
errors
No errors.
creation bytecode
0x60806040526000600a60006101000a81548160ff02191690831515021790555073207fa8df3a17d96ca7ea4f2893fcdcb78a304101600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610898600e60146101000a81548163ffffffff021916908363ffffffff160217905550681b1ae4d6e2ef500000600f55683635c9adc5dea00000601055680d8d726b7177a8000060115560016013556101f4601460006101000a81548161ffff021916908361ffff160217905550610514601460026101000a81548161ffff021916908361ffff1602179055506106a4601460046101000a81548161ffff021916908361ffff16021790555061079e601460066101000a81548161ffff021916908361ffff1602179055506000601460086101000a81548160ff0219169083151502179055506001601460096101000a81548160ff0219169083151502179055503480156200018257600080fd5b50604051620062f5380380620062f583398181016040526060811015620001a857600080fd5b8101908080516040519392919084640100000000821115620001c957600080fd5b83820191506020820185811115620001e057600080fd5b8251866001820283011164010000000082111715620001fe57600080fd5b8083526020830192505050908051906020019080838360005b838110156200023457808201518184015260208101905062000217565b50505050905090810190601f168015620002625780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200028657600080fd5b838201915060208201858111156200029d57600080fd5b8251866001820283011164010000000082111715620002bb57600080fd5b8083526020830192505050908051906020019080838360005b83811015620002f1578082015181840152602081019050620002d4565b50505050905090810190601f1680156200031f5780820380516001836020036101000a031916815260200191505b506040526020018051906020019092919050505082826200034d6301ffc9a760e01b6200046560201b60201c565b81600690805190602001906200036592919062000709565b5080600790805190602001906200037e92919062000709565b50620003976380ac58cd60e01b6200046560201b60201c565b620003af635b5e139f60e01b6200046560201b60201c565b620003c763780e9d6360e01b6200046560201b60201c565b5050620003da836200056e60201b60201c565b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050620007af565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141562000502576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600a60009054906101000a900460ff1615620005f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f616c726561647920696e6974656400000000000000000000000000000000000081525060200191505060405180910390fd5b62000603816200062160201b60201c565b6001600a60006101000a81548160ff02191690831515021790555050565b6040518060800160405280604f8152602001620062a6604f91398051906020012081805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001203062000698620006fc60201b60201c565b60001b604051602001808681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019550505050505060405160208183030381529060405280519060200120600b8190555050565b6000804690508091505090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200074c57805160ff19168380011785556200077d565b828001600101855582156200077d579182015b828111156200077c5782518255916020019190600101906200075f565b5b5090506200078c919062000790565b5090565b5b80821115620007ab57600081600090555060010162000791565b5090565b615ae780620007bf6000396000f3fe6080604052600436106102e85760003560e01c80635783bf7f1161019057806399c1c0da116100dc578063bbcaed1511610095578063c87b56dd1161006f578063c87b56dd1461151c578063cd3882d5146115d0578063cff3d4d8146115ff578063e985e9c51461162e576102fb565b8063bbcaed1514611472578063bc9c1c011461149d578063be803396146114eb576102fb565b806399c1c0da146111485780639c18307a1461122d578063a1fcc3bc146112bd578063a22cb465146112ec578063b339e64f14611349578063b88d4fde14611360576102fb565b80636c0360eb116101495780638da5cb5b116101235780638da5cb5b1461100757806394bee9091461104857806394e0d3711461108957806395d89b41146110b8576102fb565b80636c0360eb14610e8257806370a0823114610f12578063743976a014610f77576102fb565b80635783bf7f14610cec57806361e9442414610d035780636352211e14610d2e5780636486f11114610d9357806369e150e014610e045780636b6bb39814610e55576102fb565b80631d9bf59b1161024f5780632d37efbd116102085780633408e470116101e25780633408e47014610b9c57806340c10f1914610bc757806342842e0e14610c225780634f6ccce714610c9d576102fb565b80632d37efbd14610a015780632f745c5914610a9157806330176e1314610b00576102fb565b80631d9bf59b146108375780631ef708ef1461087857806320379ee5146108a5578063206be28f146108d057806323b872dd146109215780632d0335ab1461099c576102fb565b8063095ea7b3116102a1578063095ea7b3146105325780630c53c51c1461058d5780630c9022f1146107025780630f7e597014610751578063155b8324146107e157806318160ddd1461080c576102fb565b8063013e390b1461030057806301ffc9a7146103515780630309aee4146103c157806306fdde031461041257806307820daa146104a2578063081812fc146104cd576102fb565b366102fb576102f9600160006116b5565b005b600080fd5b34801561030c57600080fd5b506103396004803603602081101561032357600080fd5b8101908080359060200190929190505050611b96565b60405180821515815260200191505060405180910390f35b34801561035d57600080fd5b506103a96004803603602081101561037457600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611bb6565b60405180821515815260200191505060405180910390f35b3480156103cd57600080fd5b50610410600480360360208110156103e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c1d565b005b34801561041e57600080fd5b50610427611d24565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561046757808201518184015260208101905061044c565b50505050905090810190601f1680156104945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104ae57600080fd5b506104b7611dc6565b6040518082815260200191505060405180910390f35b3480156104d957600080fd5b50610506600480360360208110156104f057600080fd5b8101908080359060200190929190505050611dcc565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053e57600080fd5b5061058b6004803603604081101561055557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e67565b005b610687600480360360a08110156105a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156105e057600080fd5b8201836020820111156105f257600080fd5b8035906020019184600183028401116401000000008311171561061457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919080359060200190929190803560ff169060200190929190505050611fab565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106c75780820151818401526020810190506106ac565b50505050905090810190601f1680156106f45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561070e57600080fd5b5061074f6004803603606081101561072557600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506123bf565b005b34801561075d57600080fd5b5061076661249c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107a657808201518184015260208101905061078b565b50505050905090810190601f1680156107d35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156107ed57600080fd5b506107f66124d5565b6040518082815260200191505060405180910390f35b34801561081857600080fd5b506108216124db565b6040518082815260200191505060405180910390f35b34801561084357600080fd5b5061084c6124ec565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561088457600080fd5b5061088d612512565b60405180821515815260200191505060405180910390f35b3480156108b157600080fd5b506108ba612525565b6040518082815260200191505060405180910390f35b3480156108dc57600080fd5b5061091f600480360360208110156108f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061252f565b005b34801561092d57600080fd5b5061099a6004803603606081101561094457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612636565b005b3480156109a857600080fd5b506109eb600480360360208110156109bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126ac565b6040518082815260200191505060405180910390f35b348015610a0d57600080fd5b50610a8f60048036036040811015610a2457600080fd5b810190808035906020019092919080359060200190640100000000811115610a4b57600080fd5b820183602082011115610a5d57600080fd5b80359060200191846001830284011164010000000083111715610a7f57600080fd5b90919293919293905050506126f5565b005b348015610a9d57600080fd5b50610aea60048036036040811015610ab457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612a68565b6040518082815260200191505060405180910390f35b348015610b0c57600080fd5b50610b8460048036036020811015610b2357600080fd5b8101908080359060200190640100000000811115610b4057600080fd5b820183602082011115610b5257600080fd5b80359060200191846001830284011164010000000083111715610b7457600080fd5b9091929391929390505050612ac3565b60405180821515815260200191505060405180910390f35b348015610ba857600080fd5b50610bb1612ba4565b6040518082815260200191505060405180910390f35b348015610bd357600080fd5b50610c2060048036036040811015610bea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612bb1565b005b348015610c2e57600080fd5b50610c9b60048036036060811015610c4557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612d04565b005b348015610ca957600080fd5b50610cd660048036036020811015610cc057600080fd5b8101908080359060200190929190505050612d24565b6040518082815260200191505060405180910390f35b348015610cf857600080fd5b50610d01612d47565b005b348015610d0f57600080fd5b50610d18612e27565b6040518082815260200191505060405180910390f35b348015610d3a57600080fd5b50610d6760048036036020811015610d5157600080fd5b8101908080359060200190929190505050612e2d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d9f57600080fd5b50610e0260048036036040811015610db657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e64565b005b348015610e1057600080fd5b50610e5360048036036020811015610e2757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613079565b005b348015610e6157600080fd5b50610e6a613186565b60405180821515815260200191505060405180910390f35b348015610e8e57600080fd5b50610e97613199565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ed7578082015181840152602081019050610ebc565b50505050905090810190601f168015610f045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610f1e57600080fd5b50610f6160048036036020811015610f3557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061323b565b6040518082815260200191505060405180910390f35b348015610f8357600080fd5b50610f8c613310565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610fcc578082015181840152602081019050610fb1565b50505050905090810190601f168015610ff95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561101357600080fd5b5061101c6133ae565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561105457600080fd5b5061105d6133d4565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561109557600080fd5b5061109e6133fa565b604051808261ffff16815260200191505060405180910390f35b3480156110c457600080fd5b506110cd61340e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561110d5780820151818401526020810190506110f2565b50505050905090810190601f16801561113a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561115457600080fd5b5061122b6004803603606081101561116b57600080fd5b810190808035906020019064010000000081111561118857600080fd5b82018360208201111561119a57600080fd5b803590602001918460208302840111640100000000831117156111bc57600080fd5b9091929391929390803590602001906401000000008111156111dd57600080fd5b8201836020820111156111ef57600080fd5b8035906020019184602083028401116401000000008311171561121157600080fd5b9091929391929390803590602001909291905050506134b0565b005b34801561123957600080fd5b506112bb6004803603604081101561125057600080fd5b81019080803590602001909291908035906020019064010000000081111561127757600080fd5b82018360208201111561128957600080fd5b803590602001918460018302840111640100000000831117156112ab57600080fd5b90919293919293905050506135d7565b005b3480156112c957600080fd5b506112d26138b6565b604051808261ffff16815260200191505060405180910390f35b3480156112f857600080fd5b506113476004803603604081101561130f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506138ca565b005b34801561135557600080fd5b5061135e613a80565b005b34801561136c57600080fd5b506114706004803603608081101561138357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156113ea57600080fd5b8201836020820111156113fc57600080fd5b8035906020019184600183028401116401000000008311171561141e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050613b60565b005b34801561147e57600080fd5b50611487613bd8565b6040518082815260200191505060405180910390f35b6114e9600480360360408110156114b357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116b5565b005b3480156114f757600080fd5b50611500613bde565b604051808263ffffffff16815260200191505060405180910390f35b34801561152857600080fd5b506115556004803603602081101561153f57600080fd5b8101908080359060200190929190505050613bf4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561159557808201518184015260208101905061157a565b50505050905090810190601f1680156115c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156115dc57600080fd5b506115e5613ec5565b604051808261ffff16815260200191505060405180910390f35b34801561160b57600080fd5b50611614613ed9565b604051808261ffff16815260200191505060405180910390f35b34801561163a57600080fd5b5061169d6004803603604081101561165157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613eed565b60405180821515815260200191505060405180910390f35b600e60149054906101000a900463ffffffff1663ffffffff16826116d76124db565b01111561174c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416c6c205368696265732068617665206265656e206d696e74656421203a280081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156117ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616e6e6f742072656620796f757273656c6621203b2900000000000000000081525060200191505060405180910390fd5b6014821115611848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180615a25603a913960400191505060405180910390fd5b6000805b83811015611a4657600061185e6124db565b101580156118865750601460009054906101000a900461ffff1661ffff166118846124db565b105b156118ad5761189c336118976124db565b613f61565b66b1a2bc2ec5000082019150611a39565b601460009054906101000a900461ffff1661ffff166118ca6124db565b101580156118f25750601460029054906101000a900461ffff1661ffff166118f06124db565b105b1561191a57611908336119036124db565b613f61565b67016345785d8a000082019150611a38565b601460029054906101000a900461ffff1661ffff166119376124db565b1015801561195f5750601460049054906101000a900461ffff1661ffff1661195d6124db565b105b1561198757611975336119706124db565b613f61565b670214e8348c4f000082019150611a37565b601460049054906101000a900461ffff1661ffff166119a46124db565b101580156119cc5750601460069054906101000a900461ffff1661ffff166119ca6124db565b105b156119f4576119e2336119dd6124db565b613f61565b6702c68af0bb14000082019150611a36565b601460069054906101000a900461ffff1661ffff16611a116124db565b10611a3557611a2733611a226124db565b613f61565b67058d15e176280000820191505b5b5b5b5b808060010191505061184c565b50600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611b37578173ffffffffffffffffffffffffffffffffffffffff166108fc60288381611a9f57fe5b049081150290604051600060405180830381858888f19350505050158015611acb573d6000803e3d6000fd5b5060286027820281611ad957fe5b04341015611b32576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806157f86022913960400191505060405180910390fd5b611b91565b80341015611b90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061591c6021913960400191505060405180910390fd5b5b505050565b60156020528060005260406000206000915054906101000a900460ff1681565b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ce0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611dbc5780601f10611d9157610100808354040283529160200191611dbc565b820191906000526020600020905b815481529060010190602001808311611d9f57829003601f168201915b5050505050905090565b60105481565b6000611dd782613f7f565b611e2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061595f602c913960400191505060405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000611e7282612e2d565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615a046021913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16611f18613f9c565b73ffffffffffffffffffffffffffffffffffffffff161480611f475750611f4681611f41613f9c565b613fab565b5b611f9c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806158916038913960400191505060405180910390fd5b611fa6838361403f565b505050565b6060611fb5615630565b6040518060600160405280600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481526020018873ffffffffffffffffffffffffffffffffffffffff16815260200187815250905061203487828787876140f8565b612089576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806159b46021913960400191505060405180910390fd5b6120dc6001600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461422c90919063ffffffff16565b600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b873388604051808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156121bb5780820151818401526020810190506121a0565b50505050905090810190601f1680156121e85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1600060603073ffffffffffffffffffffffffffffffffffffffff16888a6040516020018083805190602001908083835b6020831061224a5780518252602082019150602081019050602083039250612227565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401925050506040516020818303038152906040526040518082805190602001908083835b602083106122d157805182526020820191506020810190506020830392506122ae565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612333576040519150601f19603f3d011682016040523d82523d6000602084013e612338565b606091505b5091509150816123b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f46756e6374696f6e2063616c6c206e6f74207375636365737366756c0000000081525060200191505060405180910390fd5b80935050505095945050505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612482576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b82600f819055508160108190555080601181905550505050565b6040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525081565b600f5481565b60006124e760026142b4565b905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460089054906101000a900460ff1681565b6000600b54905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146125f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612647612641613f9c565b826142c9565b61269c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180615a5f6031913960400191505060405180910390fd5b6126a78383836143bd565b505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606a83101561276c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616e6e6f7420757067726164652067656e657369732100000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff1661278c84612e2d565b73ffffffffffffffffffffffffffffffffffffffff1614612815576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f53656e64657220646f6573206e6f74206f776e204e465400000000000000000081525060200191505060405180910390fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330600f546040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156128c857600080fd5b505af11580156128dc573d6000803e3d6000fd5b505050506040513d60208110156128f257600080fd5b8101908080519060200190929190505050612975576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f50524458207472616e73666572206661696c656421203a28000000000000000081525060200191505060405180910390fd5b601460089054906101000a900460ff166129da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018061579c6038913960400191505060405180910390fd5b7f0f63ca4b73c1b208a99deedb03254ed8f8d8c8b1b164a53602130ee21399283c33848484604051808573ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060405180910390a1505050565b6000612abb82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061460090919063ffffffff16565b905092915050565b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612b88576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b828260099190612b99929190615667565b506001905092915050565b6000804690508091505090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612c74576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b601460099054906101000a900460ff16612cf6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f43616e6e6f74206d696e74206d6f72650000000000000000000000000000000081525060200191505060405180910390fd5b612d008282613f61565b5050565b612d1f83838360405180602001604052806000815250613b60565b505050565b600080612d3b83600261461a90919063ffffffff16565b50905080915050919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612e0a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000601460096101000a81548160ff021916908315150217905550565b60115481565b6000612e5d826040518060600160405280602981526020016158f36029913960026146469092919063ffffffff16565b9050919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612f27576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb838373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612fab57600080fd5b505afa158015612fbf573d6000803e3d6000fd5b505050506040513d6020811015612fd557600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561303957600080fd5b505af115801561304d573d6000803e3d6000fd5b505050506040513d602081101561306357600080fd5b8101908080519060200190929190505050505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461313c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015613182573d6000803e3d6000fd5b5050565b601460099054906101000a900460ff1681565b606060098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132315780601f1061320657610100808354040283529160200191613231565b820191906000526020600020905b81548152906001019060200180831161321457829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156132c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806158c9602a913960400191505060405180910390fd5b613309600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020614665565b9050919050565b60098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133a65780601f1061337b576101008083540402835291602001916133a6565b820191906000526020600020905b81548152906001019060200180831161338957829003601f168201915b505050505081565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460049054906101000a900461ffff1681565b606060078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156134a65780601f1061347b576101008083540402835291602001916134a6565b820191906000526020600020905b81548152906001019060200180831161348957829003601f168201915b5050505050905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613573576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60005b818110156135cf576135c286868381811061358d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168585848181106135b657fe5b90506020020135612bb1565b8080600101915050613576565b505050505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33306011546040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561368a57600080fd5b505af115801561369e573d6000803e3d6000fd5b505050506040513d60208110156136b457600080fd5b8101908080519060200190929190505050613737576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f50524458207472616e73666572206661696c656421203a28000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff1661375784612e2d565b73ffffffffffffffffffffffffffffffffffffffff16146137c3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615a906022913960400191505060405180910390fd5b601460089054906101000a900460ff16613828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018061579c6038913960400191505060405180910390fd5b7f21574772a41feb022e278660fd5997bebdb0929d8d31e861320d2bfb4b14954433848484604051808573ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060405180910390a1505050565b601460029054906101000a900461ffff1681565b6138d2613f9c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613973576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b8060056000613980613f9c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16613a2d613f9c565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613b43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001601460086101000a81548160ff021916908315150217905550565b613b71613b6b613f9c565b836142c9565b613bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180615a5f6031913960400191505060405180910390fd5b613bd28484848461467a565b50505050565b60135481565b600e60149054906101000a900463ffffffff1681565b6060613bff82613f7f565b613c54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806159d5602f913960400191505060405180910390fd5b6060600860008481526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613cfd5780601f10613cd257610100808354040283529160200191613cfd565b820191906000526020600020905b815481529060010190602001808311613ce057829003601f168201915b505050505090506060613d0e613199565b9050600081511415613d24578192505050613ec0565b600082511115613df55780826040516020018083805190602001908083835b60208310613d665780518252602082019150602081019050602083039250613d43565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310613db75780518252602082019150602081019050602083039250613d94565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405292505050613ec0565b80613dff856146ec565b6040516020018083805190602001908083835b60208310613e355780518252602082019150602081019050602083039250613e12565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310613e865780518252602082019150602081019050602083039250613e63565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052925050505b919050565b601460069054906101000a900461ffff1681565b601460009054906101000a900461ffff1681565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613f4e5760019050613f5b565b613f588383613fab565b90505b92915050565b613f7b828260405180602001604052806000815250614833565b5050565b6000613f958260026148a490919063ffffffff16565b9050919050565b6000613fa66148be565b905090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166140b283612e2d565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561417f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061586c6025913960400191505060405180910390fd5b600161419261418d87614970565b614a00565b83868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156141e9573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614905095945050505050565b6000808284019050838110156142aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60006142c282600001614a67565b9050919050565b60006142d482613f7f565b614329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615840602c913960400191505060405180910390fd5b600061433483612e2d565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806143a357508373ffffffffffffffffffffffffffffffffffffffff1661438b84611dcc565b73ffffffffffffffffffffffffffffffffffffffff16145b806143b457506143b38185613fab565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166143dd82612e2d565b73ffffffffffffffffffffffffffffffffffffffff1614614449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602981526020018061598b6029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156144cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806157d46024913960400191505060405180910390fd5b6144da838383614a78565b6144e560008261403f565b61453681600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020614a7d90919063ffffffff16565b5061458881600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020614a9790919063ffffffff16565b5061459f81836002614ab19092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600061460f8360000183614ae6565b60001c905092915050565b60008060008061462d8660000186614b69565b915091508160001c8160001c9350935050509250929050565b6000614659846000018460001b84614c02565b60001c90509392505050565b600061467382600001614cf8565b9050919050565b6146858484846143bd565b61469184848484614d09565b6146e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806157276032913960400191505060405180910390fd5b50505050565b60606000821415614734576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061482e565b600082905060005b6000821461475e578080600101915050600a828161475657fe5b04915061473c565b60608167ffffffffffffffff8111801561477757600080fd5b506040519080825280601f01601f1916602001820160405280156147aa5781602001600182028036833780820191505090505b50905060006001830390508593505b6000841461482657600a84816147cb57fe5b0660300160f81b828280600190039350815181106147e557fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a848161481e57fe5b0493506147b9565b819450505050505b919050565b61483d8383614f22565b61484a6000848484614d09565b61489f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806157276032913960400191505060405180910390fd5b505050565b60006148b6836000018360001b615116565b905092915050565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156149695760606000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050600080369050905073ffffffffffffffffffffffffffffffffffffffff81830151169250505061496d565b3390505b90565b6000604051806080016040528060438152602001615759604391398051906020012082600001518360200151846040015180519060200120604051602001808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001945050505050604051602081830303815290604052805190602001209050919050565b6000614a0a612525565b8260405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b600081600001805490509050919050565b505050565b6000614a8f836000018360001b615139565b905092915050565b6000614aa9836000018360001b615221565b905092915050565b6000614add846000018460001b8473ffffffffffffffffffffffffffffffffffffffff1660001b615291565b90509392505050565b600081836000018054905011614b47576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806157056022913960400191505060405180910390fd5b826000018281548110614b5657fe5b9060005260206000200154905092915050565b60008082846000018054905011614bcb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061593d6022913960400191505060405180910390fd5b6000846000018481548110614bdc57fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b60008084600101600085815260200190815260200160002054905060008114158390614cc9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614c8e578082015181840152602081019050614c73565b50505050905090810190601f168015614cbb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50846000016001820381548110614cdc57fe5b9060005260206000209060020201600101549150509392505050565b600081600001805490509050919050565b6000614d2a8473ffffffffffffffffffffffffffffffffffffffff1661536d565b614d375760019050614f1a565b6060614ea163150b7a0260e01b614d4c613f9c565b888787604051602401808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614dd0578082015181840152602081019050614db5565b50505050905090810190601f168015614dfd5780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051806060016040528060328152602001615727603291398773ffffffffffffffffffffffffffffffffffffffff166153809092919063ffffffff16565b90506000818060200190516020811015614eba57600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614925050505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614fc5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433732313a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b614fce81613f7f565b15615041576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000081525060200191505060405180910390fd5b61504d60008383614a78565b61509e81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020614a9790919063ffffffff16565b506150b581836002614ab19092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080836001016000848152602001908152602001600020541415905092915050565b60008083600101600084815260200190815260200160002054905060008114615215576000600182039050600060018660000180549050039050600086600001828154811061518457fe5b90600052602060002001549050808760000184815481106151a157fe5b90600052602060002001819055506001830187600101600083815260200190815260200160002081905550866000018054806151d957fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061521b565b60009150505b92915050565b600061522d8383615398565b61528657826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905061528b565b600090505b92915050565b600080846001016000858152602001908152602001600020549050600081141561533857846000016040518060400160405280868152602001858152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508460000180549050856001016000868152602001908152602001600020819055506001915050615366565b8285600001600183038154811061534b57fe5b90600052602060002090600202016001018190555060009150505b9392505050565b600080823b905060008111915050919050565b606061538f84846000856153bb565b90509392505050565b600080836001016000848152602001908152602001600020541415905092915050565b606082471015615416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061581a6026913960400191505060405180910390fd5b61541f8561536d565b615491576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106154e157805182526020820191506020810190506020830392506154be565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114615543576040519150601f19603f3d011682016040523d82523d6000602084013e615548565b606091505b5091509150615558828286615564565b92505050949350505050565b6060831561557457829050615629565b6000835111156155875782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156155ee5780820151818401526020810190506155d3565b50505050905090810190601f16801561561b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b9392505050565b604051806060016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106156a857803560ff19168380011785556156d6565b828001600101855582156156d6579182015b828111156156d55782358255916020019190600101906156ba565b5b5090506156e391906156e7565b5090565b5b808211156157005760008160009055506001016156e8565b509056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e6174757265294f682068656c6c6f2074686572652c206e6572642120557067726164696e67206973206e6f7420617661696c61626c652e2e2e20796574214552433732313a207472616e7366657220746f20746865207a65726f20616464726573734e6f7420656e6f7567682066756e647320746f2062757920536869626573203a2728416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5349474e45524552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4e6f7420656e6f7567682066756e647320746f2062757920536869626573203a28456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e5369676e657220616e64207369676e617475726520646f206e6f74206d617463684552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572486579206865792c20736c6f7720646f776e20746865726521204c6561766520736f6d6520666f72207468652072657374206f66207573203a444552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564596f75206d757374206f776e20746865204e465420746f2072656e616d6520697421a26469706673582212203bd05e6286e208db5723c98e990d54e8baccd20459e37a22c2c0ed031ae7f62f64736f6c63430007030033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c7429000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000556148562d5ddeb72545d7ec4b3ec8edc8f55ba7000000000000000000000000000000000000000000000000000000000000000b537061636553686962657300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055348494245000000000000000000000000000000000000000000000000000000